<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.3/ http://www.mediawiki.org/xml/export-0.3.xsd" version="0.3" xml:lang="en">
  <siteinfo>
    <sitename>maemo.org wiki</sitename>
    <base>http://wiki.maemo.org/Main_Page</base>
    <generator>MediaWiki 1.15.5-2squeeze4</generator>
    <case>first-letter</case>
    <namespaces>
      <namespace key="-2">Media</namespace>
      <namespace key="-1">Special</namespace>
      <namespace key="0" />
      <namespace key="1">Talk</namespace>
      <namespace key="2">User</namespace>
      <namespace key="3">User talk</namespace>
      <namespace key="4">maemo.org wiki</namespace>
      <namespace key="5">maemo.org wiki talk</namespace>
      <namespace key="6">File</namespace>
      <namespace key="7">File talk</namespace>
      <namespace key="8">MediaWiki</namespace>
      <namespace key="9">MediaWiki talk</namespace>
      <namespace key="10">Template</namespace>
      <namespace key="11">Template talk</namespace>
      <namespace key="12">Help</namespace>
      <namespace key="13">Help talk</namespace>
      <namespace key="14">Category</namespace>
      <namespace key="15">Category talk</namespace>
    </namespaces>
  </siteinfo>
  <page>
    <title>100Days</title>
    <id>2962</id>
    <revision>
      <id>22163</id>
      <timestamp>2009-11-08T21:36:04Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[100Days]] moved to [[Task:100Days]]: This is a Task</comment>
      <text xml:space="preserve">#REDIRECT [[Task:100Days]]</text>
    </revision>
  </page>
  <page>
    <title>100Days/October08Sprint</title>
    <id>1230</id>
    <revision>
      <id>20997</id>
      <timestamp>2009-10-26T01:52:02Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <comment>fix double redir</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo.org Sprints/October 08]]</text>
    </revision>
  </page>
  <page>
    <title>100Days/October 08 Sprint</title>
    <id>1240</id>
    <revision>
      <id>7537</id>
      <timestamp>2008-10-01T05:31:24Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[100Days/October 08 Sprint]] moved to [[Maemo.org Sprints/October 08]]: Moving away of 100 Days namespace</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo.org Sprints/October 08]]</text>
    </revision>
  </page>
  <page>
    <title>100Days/Sprint2</title>
    <id>540</id>
    <revision>
      <id>33794</id>
      <timestamp>2010-05-04T09:36:51Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}

==Planning==
* Kick-off meeting organized in the Freenode #maemo-meeting IRC channel on 2008/06/30 at [http://www.timeanddate.com/worldclock/fixedtime.html?year=2008&amp;month=6&amp;day=30&amp;hour=18&amp;min=0&amp;sec=0 18:00 UTC].
* The '''[http://maemo.org/maemo-meeting/maemo-meeting-2008-06-30.html meeting log]''' contains also the  [https://garage.maemo.org/plugins/wiki/index.php?June2008Sprint&amp;id=106&amp;type=g review of the last sprint]. 
* [[100Days/Sprint3#Backlog|Backlog]] and [[100Days/Sprint3#Proposals|Proposals]] available in the [[100Days/Sprint3|Sprint3]] page.
* Sprint2 review meeting scheduled on 2008/07/22 together with the [[100Days/Sprint3|Sprint3]] planning meeting.

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

==Tasks==
{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:Tomato&quot;
| 2008-05-10 || Who's who in Maemo || Dave || % || Discussion on implementation details pending
|- style=&quot;background:Tomato&quot;
| 2008-05-10 || [[Companies in Maemo development]] || Dave || 60% || Initial group of companies defined, need logos &amp; descriptions, and have list checked
|- style=&quot;background:Tomato&quot;
| 2008-06-10 || [[Task:Consolidation of Extras|Consolidation of Extras]] || Niels || 0% || Niels must specify what goes in this sprint
|- style=&quot;background:Tomato&quot;
| 2008-06-10 || Extras % maemo.org/downloads integration || Niels || % || Complete and/or document in wiki page
|- style=&quot;background:Tomato&quot;
| 2006-06-10 || Registration and sponsorship for [[Maemo Summit 2008]] || Oskari/Bergie || 90% || Working, some bugs left
|- style=&quot;background:LightGreen&quot;
| 2008-06-10 || [[User:Peterschneider|Update maemo.org/intro]] || Dave || '''DONE''' || Just few pages waiting to be moved - links to be added
|- style=&quot;background:Tomato&quot;
| 2008-06-10 || Better extras categories and debtags || Niels || % || Proposal needs to be drafted in wiki page
|- style=&quot;background:Tomato&quot;
| 2008-06-10 || Put the [[Bugsquad]] in place || Andre/Karsten || 40% || See [http://lists.maemo.org/pipermail//maemo-developers/2008-June/033719.html this mail] - Done: [https://wiki.maemo.org/Bugs:Triage_guide Triage guide in place]
|- style=&quot;background:Tomato&quot;
| 2008-06-10 || Forum interface to mailing lists released || Oskari/Bergie || % || Beta to be made public for testing
|- style=&quot;background:Tomato&quot;
| 2008-06-10 || User profile improvements defined and started || Oskari/Bergie || 70% || Revamped, [https://bugs.maemo.org/show_bug.cgi?id=2224 some bugs left]
|- style=&quot;background:LightBlue&quot;
| 2008-06-10 || No pages remaining in [[:Category:Midgard wiki]] || Dave || 20% || Decided to discontinue this task
|- style=&quot;background:LightGreen&quot;
| 2008-06-30 || [[Task:Maemo brand|Maemo brand]] || Quim || '''DONE''' || Considering this OK. Formal approval before the next sprint meeting unless someone finds a bug.
|- style=&quot;background:LightGreen&quot;
| 2008-06-30 || [[Task:Sprint progress|Sprint progress]] || Quim || '''DONE''' || The process is setup, now it's up to everybody to do their part.
|- style=&quot;background:LightGreen&quot;
| 2008-06-30 || [[Task:Components and packages|Components and packages]] || Soumya || '''DONE''' || Table ready, problems uploading
|- style=&quot;background:Tomato&quot;
| 2008-06-30 || [[Maemo.org_logo_contest]] selection process || Dave || % || Agreed that needs to be selection and not voting
|- style=&quot;background:LightGreen&quot;
| 2008-06-30 || [[Maemo Summit 2008/Organization|Maemo Summit 2008 organization]] || Quim || '''DONE''' || In sync with c-base and all tasks listed - objectives of the sprint completed
|- style=&quot;background:LightGreen&quot;
| 2008-06-30 || All components of product Website in good hands || Andre || '''DONE''' || All bugs triaged, missing only component owners list in this wiki
|}

==Bugs==
{| class=&quot;wikitable sortable&quot;
|-
! Created
! Bug
! Component
! Assigned
! %
! Highlights
|- style=&quot;background:LightGreen&quot;
| 2005-09-18 || [https://bugs.maemo.org/show_bug.cgi?id=95 desktop-files documented poorly] || Documentation || Dave || '''DONE''' || 
|- style=&quot;background:LightGreen&quot;
| 2005-10-10 || [https://bugs.maemo.org/show_bug.cgi?id=101 Use the wiki for developer documentation] || Documentation || Dave || '''DONE''' || Now in the hands of Maemo SW team.
|-
| 2006-06-26 || [https://bugs.maemo.org/show_bug.cgi?id=630 Increased Bugzilla transparency - get the developers involved!] || Bugzilla || Andre/Karsten || 10% || In (long-term) progress
|- style=&quot;background:LightGreen&quot;
| 2007-06-26 || [https://bugs.maemo.org/show_bug.cgi?id=1587 Cleaning the community wiki from official docs] || Documentation || Dave || 100% || Not the same as [&quot;No pages left in [[:Category:Midgard wiki]]
|-
| 2007-11-05 || [https://bugs.maemo.org/show_bug.cgi?id=2212 Karma system should allow more e-mail addresses] || Profile || Bergie || % || 
|- style=&quot;background:LightBlue&quot;
| 2007-11-06 || [https://bugs.maemo.org/show_bug.cgi?id=2224 Maemo user profile public formatting isn't nice] || Profile || Bergie || 70% || Depedent bugs open 
|-
| 2008-01-24 || [https://bugs.maemo.org/show_bug.cgi?id=2828 It took a week to announcement to appear in maemo.org front page] || General || Bergie || % || Depends on [[Task:Fast Server]]
|-
| 2008-06-05 || [https://bugs.maemo.org/show_bug.cgi?id=3220 Midgard access control for folders and pages does not work] || Documentation || Bergie || % || Demoted to Medium
|-
| 2008-06-18 || [https://bugs.maemo.org/show_bug.cgi?id=3262 Defining company and role in profiles] || Profile || Oskari || % || HIGH because of Summit registration and Who is Who 
|- style=&quot;background:LightGreen&quot;
| 2008-06-18 || [https://bugs.maemo.org/show_bug.cgi?id=3264 Garage is (re)sending a &quot;maemo logo competition&quot; mail every hour] || Garage || Ferenc || '''DONE''' || 
|-
|-style=&quot;background:Tomato&quot;
| 2008-06-23 || [https://bugs.maemo.org/show_bug.cgi?id=3280 Wiki pages sometimes fail to load with &quot;lost network connection&quot;] || Wiki || Ferenc || 50% || need an apache expert to see why it is crashin during high load (perhaps related to Midgard as well)
|-
|- style=&quot;background:LightGreen&quot;
| 2008-06-23 || [https://bugs.maemo.org/show_bug.cgi?id=3283 Install the citation extension for the wiki] || Wiki || Ferenc || '''DONE''' ||  
|-
| 2008-06-29 || [https://bugs.maemo.org/show_bug.cgi?id=3339 MediaBox Media Center appears as developed by Nokia when it's not] || Downloads || Bergie || 50% || Bug seems to be in midcom/datamanager, reassigning to bergie
|-
|- style=&quot;background:LightGreen&quot;
| 2008-06-29 || [https://bugs.maemo.org/show_bug.cgi?id=3341 Install the Category Tree extension for the wiki] || Wiki || Ferenc || '''DONE''' || 
|-
|- style=&quot;background:LightGreen&quot;
| 2008-06-29 || [https://bugs.maemo.org/show_bug.cgi?id=3342 Install the Dynamic Page List extension for the wiki] || Wiki || Ferenc || '''DONE''' ||
|-
|- 
|-style=&quot;background:Tomato&quot;
| 2008-06-30 || [https://bugs.maemo.org/show_bug.cgi?id=3354 Publishing packages to garage.maemo.org often results in &quot;lost connection&quot; and &quot;permission denied&quot; from scp] || Garage || Ferenc || 0% ||  '''This bug is still there and is a major problem!'''--[[User:xfade|xfade]] 08:04, 21 July 2008 (UTC); I can not reproduce it [[User:feri|feri]] 18:02, 22 July 2008 (UTC) ||
|-
|- style=&quot;background:LightGreen&quot;
| 2008-06-06 || [https://bugs.maemo.org/show_bug.cgi?id=3228 found = format_regex.match(data_string) : TypeError: expected string or buffer] || Garage || Ferenc || '''DONE''' ||  
|}

The bugs assigned in the last sprint meeting are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=High&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= HIGH]. The bugs proposed for the next sprint are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=Medium&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= MEDIUM]. Only product/component maintainers can change this status. Comment on a bug if you want to push it up. Check also those marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=easyfix&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= EASYFIX].

==Activity log==
Latest activity report goes on top.

; Tuesday 2008-07-22

* Dave
** Yesterday: Conference - wrote &amp; gave GNOME Mobile presentation at OMX.
** Today: Sprint meeting &amp; attending OSCON.

* Andre
** Yesterday: Triage new bugs, (bug)mail followup, published initial version of [https://wiki.maemo.org/Bugsquad Bugsquad Triage Guide]
** Today: Triage the few new bugs, start improving [https://maemo.org/bugzilla/page.cgi?id=bug-writing.html Bugwriting How-to], triage old bugs, prepare tonight's Sprint2 and Bugzilla Meeting

* Niels
** Yesterday: Fixed wiki ssl problem, worked on wiki problems, worked on application comments bugs/enhancements.
** Today: Check repository queue manager problems, application comments bugs, prepare for meeting.

* Marcell
** Yesterday: cleaned my inbox after the holidays
** Today: Contacted the ISP about [https://bugs.maemo.org/show_bug.cgi?id=3127 3127] and a RAM upgrade to garage.maemo.org, contacted Nokia FDP about [https://bugs.maemo.org/show_bug.cgi?id=2350 2350] and the missing extras dl statistics.

; Monday 2008-07-21

* Dave
** Yesterday: Attended FLOSS Foundations day 2. Called for volunteers for logo contest.
** Today: Attending Open Mobile Exchange at OSCON. Giving a presentation on GNOME Mobile. Will keep on contest judging today.
** Problems: Timezone issue - I don't know when the sprint meeting is on. ''[http://www.timeanddate.com/worldclock/fixedtime.html?month=7&amp;day=22&amp;year=2008&amp;hour=19&amp;min=0&amp;sec=0&amp;p1=0 timeanddate.com is your friend] --[[User:xfade|xfade]] 08:09, 22 July 2008 (UTC)''

* Andre
** Yesterday: Triage Website bugs, continue triage old bugs, work on [[Bugsquad|Bugsquad Triage Guide]]
** Today: Triage new bugs, (bug)mail followup, trigae some old bugs, work on [[Bugsquad|Bugsquad Triage Guide]]

* Niels
** Thursday: Bugzilla wiki plugin testing and some garage maintenance.
** Today: Triage and work on bugs that have been assigned to me over the weekend.

* Quim
** Yesterday: [http://lists.maemo.org/pipermail/maemo-community/2008-July/000480.html Summit budget situation explained]. [http://maemo.org/news/events/ maemo.org events updated]. Created [[Pushing_a_maemo.org_task]], [[Task:Publishing_API_docs]] and [[Objective:Release_soon_and_often]]. Added new proposals to [[100Days/Sprint3]].
** Today: Nothing until the Sprint planning meeting.
** Problems: [http://lists.maemo.org/pipermail/maemo-community/2008-July/000479.html Unable to upload a file to the wiki]

; Sunday 2008-07-20

* Quim
** Yesterday: Asking sponsored participants to hurry up with bookings. Triage Website bugs. Pushing plan for a GNOME hackfest.
** Today: Will work instead of Tuesday. Explaining the Summit budget situation. Update maemo.org events. Prepare Sprint3 meeting.

* Dave
** Yesterday: Attended FLOSS Foundations meeting. Made first draft of [[companies in Maemo development]]
** Today: Attending [http://flossfoundations.org FLOSS Foundations meeting] day 2. Start looking for a jury for the logo contest.

; Saturday 2008-07-19

* Quim
** Yesterday: Sponsorship requests up to date. [[Maemo_Summit_2008/Accommodation|Accommodation]] recommendations made. Pushing plan for a GNOME hackfest.
** Today: Will work instead of Monday. Asking sponsored participants to hurry up with bookings. Triage Website bugs.
** Problems: Can't decide on all sponsorship requests while having big items undefined in the budget. High season in Berlin in September, many hotels/Hostels quite booked those days, this increases average price of accommodation. 

* Dave
** Yesterday: Travelling to Portland
** Today: Attending [http://flossfoundations.org FLOSS Foundations meeting]. Will work on list of companies &amp; recruiting/identifying logo competition judges too.

; Friday 2008-07-18

* Dave
** Yesterday: As expected, not much time for Maemo stuff.
** Today: Travelling to OSCon all day.

* Andre
** Yesterday: Triaged some older bugs
** Today: Triage Website bugs, continue triage old bugs, work on [https://wiki.maemo.org/Bugsquad Bugsquad Triage Guide]

* Quim
** Yesterday: Visited c-base: cool people, great space! We started discussing about the details. They agreed to send a modular budget by the end of next week.
** Today: Clean queue of sponsorship requests. Have a look to accommodation in Berlin Mitte and surroundings (although it's raining...)
** Problems: imo we are starting to get many sponsorship requests not very reasonable, perhaps a &quot;device discount&quot; fever is starting. Hopefully not since I have better things to do than triaging requests from unknown people trying out. In any case this is a better problem than the lack of awareness we had just 3 days ago.  :)

; Thursday 2008-07-17

* Dave
** Yesterday: Wrote a presentation for OSCon 2008 (next week), spent all afternoon on administrative stuff (bank, accountant, post office, phone calls), spent quite a while answering email.
** Today: Some phone calls, wrapping up GUADEC/GNOME stuff, will not make much progress on maemo stuff. Plan to kick-start the selection team for logo contest.
** Problems: July is the month of conferences. I'm only back &amp; I'm leaving again. Need to learn how to get work done on the road.

* Niels
** Yesterday: MySQL upgrade preparation for Bugzilla, installed fixes for profiles. Requested new certificate for wiki. Worked on garage performance issues and monitored the massmailer.
** Today: Fix some bugs related to mediawiki Bugzilla plugin, work on Extras changes.
** Problems: Can't seem to find anybody whom can handle my SSL renewal request due to holidays.

* Ferenc
** Yesterday: fixed twice :) [https://bugs.maemo.org/show_bug.cgi?id=3264 mail bug on garage]
** Today: nothing
** Problems: none

* Quim
** Yesterday: Help Soumya getting a first draft of [[Task:Components_and_packages]] out. Complete 1st (and last?) wave of Summit promotion with a mass mailing that is working quite well. GNOME Hackfest could be based on GStreamer. OSiM registration, agreed to wait until August 1st to define the group package.
** Today: Fly to Berlin and agree the basics with the c-base guys. If time permits, have a look to hostels in the area.
** Problems: Couldn't upload Soumya's table. Wiki won't allow uploading OOo docs. Sent to maemo-community but retained because of 40kb limit (the mail had 46kb). In Ferenc's hands now.

; Wednesday 2008-07-16

* Ferenc
** Yesterday: viewvc install started on garage
** Today: complete viewvc install on garage, fix [https://bugs.maemo.org/show_bug.cgi?id=3264 mail bug on garage]
** Problems: garage is slow and overloaded. from time to time the svn commit hook script makes the server very busy. the qt4 team is using the garage web space to maintain their Debian repo there. they should move to extras-devel.

* Quim
** Yesterday: Split [[Maemo_Summit_2008/Organization|tasks and roles]] of the Summit + instructions for travel sent. Agreed with Soumya first draft of components and packages. More Summit promo in [http://www.internettablettalk.com/forums/showthread.php?p=203493 ITt] and got some good names (yay!). Details on possible GNOME Hackfest in Berlin.
** Today: Help Soumya getting a first draft of [[Task:Components_and_packages]] out, even if it's still a bit messy and not very nice-looking (Markitechture is a complex art!). OSiM developer session plan.
** Problems: Not a big one but OSiM discount is on their side now. Waiting.

* Niels
** Yesterday: Worked on performance issues on garage (Added php caching, smarter reindexing of repositories), setup non-free distribution for extras-devel and testing with etrunko, fixed some repository reindexing issues.
** Today: Fix wiki ssl certificate, fix non-free cron issues, get garage performance issues sorted out.
** Problems: Wiki ssl certificate expired.

* Dave
** Yesterday: Cleared email backlog (yay!). No-one on #maemo bit for the [[Integrate Bluetooth networks into Connection Manager | wiki page of the day]] - looks like I'll be cleaning it up myself. Talked to Quim about &quot;Who's who&quot; (see, reporting Problems does work) - looks like I'm blocking on [https://bugs.maemo.org/show_bug.cgi?id=3262 bug #3262], and will be bumping to [[100Days/Sprint3]]. Didn't get round to creating the wiki page with companies &amp; logos - will do it today.
** Today: Create wiki page with list of companies working on maemo, plus logos. Presentation to finish for OSCon next week, and some outstanding GUADEC/GNOME stuff, must see accountant too, rest of the day in the wiki - goal: 3 pages.
** Problems: Not enough hours in the day. Quim: Can you put in a request with management for days to be extended to 28 hours, please?

; Tuesday 2008-07-15
* Andre
** Yesterday: Catch up with incoming bugs of the last week and follow-up mail and bugmail; sync statuses with Nokia's internal Tracker 
** Today: Clean up more old bugs; work on Bugsquad proposal and wiki pages
** Problems: only non-technical (flu) ;-)

* Dave
** Yesterday: French bank holiday. Fixed up &quot;Wiki page of the Day&quot;, and caught up with part of my mail backlog. Also did some GNOME stuff.
** Today: Finish catching up with email backlog. List companies involved in maemo development and send list to maemo-community. Fix up 2 wiki pages, and push people on #maemo to fix up the Wiki page of the Day.
** Problems: I don't know what to do with the list of companies working on maemo when it's done. We should put logos somewhere, figure out what a company needs to do to get on the list, and link this into someplace sensible. Not sure if this is best as a new Midgard page or a living Wiki page.
 
* Ferenc
** Today: [https://bugs.maemo.org/show_bug.cgi?id=3264 mail bug on garage], viewvc install on garage to reduce the load
** Problems: none

* Niels
** Yesterday: Debugged repository problems, tuned repository tools to lower load on garage, tested registration, installed bugzilla plugin for mediawiki (Doesn't work yet because of firewall issues)
** Today: Try to get new things done instead of trying to fix random things breaking.
** Problems: Insane server load on multiple machines, lack of access to machines, lack of response from ISP and people on vacation, but apart from that everything is OK.

* Quim
** Yesterday: [http://flors.wordpress.com/2008/07/15/that-gnome-week-in-istanbul/ Blog notes about GUADEC]. More Summit promotion (#maemo &amp; GNOME Foundation) + [[Maemo_Summit_2008/Accommodation|instructions for accommodation]]. Assist Soumya on [[Task:Components_and_packages]].
** Today: Split tasks and roles of the Summit + instructions for travel + OSiM discount. Agree with Soumya first draft of components and packages?
** Problems: Reaching the right audience for sponsorship requests is harder than I thought e.g. penguinbait knew just yesterday about all this and now it's too late for him. I wonder if there are more cases like him. I want to have the sponsored guys decided asap for efficiency and to avoid last minute stress.

; Monday 2008-07-14

* Karsten
** Last week: GUADEC (Discussions, meetings, socializing, some talks. No mail, VPN was blocked.)
** Today: Triaging last weeks bug reports.

* Niels
** Friday, Weekend: Garage work and extras support, registration debugging/testing.
** Today: Investigate registration problem, look into repository problems and work on open bugs.
** Problems: High server load on garage.

* Andre
** Last week: GUADEC (talks, GNOME meetings, socializing. had problems to access my mail and irc)
** Today: Catch up with incoming bugs of the last week and follow-up mail and bugmail; sync statuses with Nokia's internal Tracker

* Quim
** Last week: Promoting the Maemo Summit in GUADEC and ITt. Testing the buggy registration/sponsorship.
** Today: Blog notes about GUADEC. Split tasks and roles of the Summit + more promotion + instructions to book flights. Assist Soumya on [[Task:Components_and_packages]].
** Problems: Unsure whether Dave is waiting for me to push &quot;Who's who in Maemo - Discussion on implementation details pending&quot;.

; Sunday 2008-07-13

* Dave
** Since Wednesday: Attended GUADEC, patchy internet access, updated WPotD, but a little disappointed in community response (with the exception of GeneralAntilles)
** Tomorrow: Update [[modifying the root image]] and [[using Valgrind and gdb in Scratchbox]]

; Friday 2008-07-11
* Niels
** Yesterday: Worked on [[Task:Providing_changes_since_last_version_of_a_package]], created a [http://wiki.maemo.org/index.php?title=Main_Page&amp;useskin=monobookmaemo Maemo skin] for the wiki, helped some Extras users.
** Today: Work on .install files for Diablo Extras, look into registration problems.

; Thursday 2008-07-10
* Niels
** Yesterday: Added a non-free queue for diablo extras, so we can test adding packages there. Fixed garage svn stats and a chinook repository corruption.
** Today: Look into how to easily record changes for packages and work on [[Task:Consolidation_of_Extras]] 

; Wednesday 2008-07-09
* Niels
** Yesterday: [https://bugs.maemo.org/show_bug.cgi?id=3225 Fixed] screenshots in /downloads, some wiki work and extras user help.

; Tuesday 2008-07-08
* Dave
** Yesterday: Finished migrating new Intro. Cleaned up [[partitioning a flash card]]. Finished a GNOME press release. Travelled to Istanbul.
** Today: Ran GNOME Mobile BOF. Will play in FreeFA World Cup this afternoon.

* Quim
** Yesterday: Had the ''Maemo &amp; Nokia BOF'' at [http://guadec.org GUADEC]. Met Andre &amp; Karsten + many others. Socializing.
** Today: Upload audio file of the session and blog about it. Review Summit registrations. Invite upstream maintainers to the Maemo Summit.
** Problems: None

* Niels
** Yesterday: Assisted extras users, [http://communitizer.blogspot.com/2008/07/maemoorgdownloads-automatic-updates.html blogged] about downloads auto updating, installed and tested the new profile pages, fixed [https://bugs.maemo.org/show_bug.cgi?id=3412 bug #3412]: permalink for downloads broken, installed and tested patch for memcached related issues on maemo.org.
** Today: Work on Extras related documentation and plans. Add link on /downloads to Extras upload documentation.
** Problems: None

; Monday 2008-07-07
* Niels
** Friday: Worked on some repository dependency problems for extras and DP team. Added automatic version updating to /downloads with data from the extras repositories. Worked on some bugs and did some user support for extras.
** Today: Blog automatic version update, Work on [[Task:Consolidation_of_Extras]]
** Problems: None

* Dave
** Yesterday: Cleaned up [[USB networking]], set [[booting from a flash card]] as Wiki page of the day, and when that got fixed, set [[partitioning a flash card]] as WPotD.
** Today: Migrate the rest of [[User:Peterschneider| the new Intro page]], clean up [[partitioning a flash card]], revisit GUADEC presentation, travel to Istanbul.
** Problems: None

; Friday 2008-07-04
* Andre
** Yesterday: follow-up mail and bugmail; ITT and mailing list postings 
** Today: follow-up mail and bugmail; triaging incoming bug reports and reproducing/forwarding issues
** Problems: None

* Dave
** Today: Caught up on 2 days email. Sick baby. Not much progress.
** Problems: No babysitter :(

* Niels
** Yesterday: Worked on extras dependency problem and tried to get more info about the SSU dependencies. Tested registration interface and did some fixes. Test automatic version update script for downloads on the internal test machine.
** Today: Work on open bugs and downloads version updates.
** Problems: None

* Quim
** Yesterday: Launched the Maemo Summit + feedback on registration related bugs + promotion in [http://flors.wordpress.com/2008/07/03/maemo-summit-registration-open-free/ planets] and [http://www.internettablettalk.com/forums/showthread.php?t=21569 ITt].
** Today: Clarify OSiM registration for Summit participants and little else since I'm [http://live.gnome.org/GUADEC/2008/Travel flying to Istanbul].
** Problems: [https://bugs.maemo.org/show_bug.cgi?id=3264 Bug 3264] impedes better Summit promotion in maemo.org. I can't find the way in Midgard to approve sponsorship requests.

; Thursday 2008-07-03
* Dave
** Yesterday and Today: Attended a conference (RMLL 2008) yesterday and today, and prepared presentations most of the day Tuesday. Renewed usb_networking as Wiki page of the Day - unfortunately, no improvements to the page so far. I plan to work on it tomorrow to kick-start the effort.
** Problems: None of note.
* Niels
** Yesterday: Tested garage svn commit mail problems, worked on repository dependency issues, worked on .install files and library problems for extras, [http://communitizer.blogspot.com/2008/07/application-in-extras-devel-ok-promote.html blogged about promotion interface] and checked some autobuilder problems.
** Today: A bit more dependency problems, make sure registration interface works today. Add more documentation to the wiki about Extras.
** Problems: Reporting system for download stats lags, so I can't update the stats in /downloads

* Quim
** Yesterday: [[Task:Sprint_progress]] ready to go. Talked with Soumya about [[Task:Components_and_packages]] + Development Platform team participation in [[Maemo_Summit_2008]].
** Today: Whatever is needed to launch the Summit registration. Define tasks around [[Maemo_Summit_2008]].
** Problems: Impatient about the Summit registration. [http://www.tllts.org/ Got interviewed] till early morning and DP team celebrates 4.1 release, so not much work expected.

; Wednesday 2008-07-02

* Ferenc
** Yesterday: Accepting bugs for this sprint
** Today: Working on the bugs shown with light blue. Expected fix for those are early tomorrow.
** Problems: None

* Quim
** Yesterday: Feedback to Summit registration. Kicked off the [[Task:Sprint_progress]]. [http://flors.wordpress.com/2008/07/02/maemo-x-10/ Blogged] about [[Task:Maemo_brand]] review and misc stuff about maemo.org. 
** Today: Fine tune [[Task:Sprint_progress]] and define tasks around [[Maemo_Summit_2008]].--[[User:qgil|qgil]] 09:43, 2 July 2008 (UTC)
** Problems: I stayed at home and couldn't test registration in internal server. 

* Niels
** Activities: Yesterday I added IRC log of sprint meeting, extras support, committed promotion interface changes, checked connection problems builder, tried to fix libglade2 dependency problems in extras-devel for diablo, user support for autobuilder (mostly build-depends problems), autobuilder bug hunting, #maemo contact change requested, fixed problem in maemo profile, notified about .install files missing for diablo. 
** Problems: Autobuilder connection problem with proxy (need others to fix this issue), .install files not available for diablo. (Need changes in promoter for that) [Plan for today:] Fix and check libglade dependency problems in diablo extras-devel, find a solution for .install files --[[User:xfade|xfade]] 08:42, 2 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>100Days/Sprint3</title>
    <id>654</id>
    <revision>
      <id>33795</id>
      <timestamp>2010-05-04T09:37:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}

==Sprint 3 planning==
* Planning meeting organized in the [[IRC|#maemo-meeting IRC channel]] on Tuesday 2008/07/22 at [http://www.timeanddate.com/worldclock/fixedtime.html?month=7&amp;day=22&amp;year=2008&amp;hour=19&amp;min=0&amp;sec=0&amp;p1=0 19:00 UTC]. 
* The '''[http://maemo.org/maemo-meeting/maemo-meeting-2008-07-22.html meeting log]''' contains also the  [[100Days/Sprint2]] review. 
* Holidays: Quim (9-31/aug), Dave (15-31/aug with no internet), Niels (14 aug/6 sept probably no internet, No activity expected in Sprint 4)

There will be an IRC review meeting of this sprint on Tuesday 2008/08/12 at [http://www.timeanddate.com/worldclock/fixedtime.html?month=8&amp;day=12&amp;year=2008&amp;hour=19&amp;min=0&amp;sec=0&amp;p1=0 19:00 UTC]. See also [[100Days/Sprint4]].

==Tasks==
[[: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 [[:Category:Accepted|accepted]] in the Backlog or [[:Category:Proposed|(re)new(ed)]] proposals.

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightBlue&quot;
| 2008-05-10 || Who's who in Maemo || Dave || 90% || Awaiting deployment of new profile list to announce changes in profiles. Need to find a final home for [[People#Module_maintainers|the maintainer list]] 
|- style=&quot;background:LightGreen&quot;
| 2008-05-10 || [[Companies in Maemo development]] || Dave || '''DONE''' || Task completed.
|- style=&quot;background:LightGreen&quot;
| 2008-06-10 || Extras &amp; maemo.org/downloads integration || Niels || '''DONE''' || Complete. Extra features should be filed as enhancement.
|- style=&quot;background:LightGreen&quot;
| 2006-06-10 || Registration and sponsorship for [[Maemo Summit 2008]] || Oskari ||  '''DONE''' || Working
|- style=&quot;background:Orange&quot;
| 2008-06-10 || [[Package_Categories|Better extras categories and debtags]] || Niels || 50% || Proposal drafted in wiki page, need to discuss on maemo-developers.
|- style=&quot;background:LightGreen&quot;
| 2008-06-10 || Put the [[Bugsquad]] in place || Andre/Karsten || '''DONE''' || See [http://lists.maemo.org/pipermail//maemo-developers/2008-June/033719.html this mail], [[Bugs:Triage_guide|Triage Guide]], Bug [https://bugs.maemo.org/show_bug.cgi?id=1288 1288] and [https://bugs.maemo.org/show_bug.cgi?id=2365 2365]
|- style=&quot;background:Tomato&quot;
| 2008-06-10 || Forum interface to mailing lists released || Bergie || 0% || Beta to be made public for testing
|- style=&quot;background:LightGreen&quot;
| 2008-06-10 || User profile improvements defined and started || Lauri/Bergie || '''DONE''' || New profiles, and profile lists ready]
|- style=&quot;background:LightGreen&quot;
| 2008-06-30 || Get a [[Maemo.org_logo_contest]] winner || Dave || '''DONE''' || Winner announced: [[:Image:Maemo.org_logo_contest_glaoliver_1.png]]
|-style=&quot;background:LightGreen&quot;
| 2008-07-22 || [[Task:Remarkable community projects]] around Maemo || Dave || '''DONE''' || Use Pearls mechanism to set [[Task:Remarkable community projects|remarkable community projects]]. Need to be able to navigate, since the list of apps is longer than 25.
|- style=&quot;background:LightGreen&quot;
| 2008-07-22 || [[Task:Upstream projects]] Maemo relies upon || Dave || '''DONE''' || List in place. Categorised by umbrella projects. Logos added by group.
|- style=&quot;background:LightGreen&quot;
| 2008-07-22 || Complete the [[2010 Agenda]] community proposal || Quim || '''DONE''' || Proposal of objectives left for commmunity discussion and approval. I had expected more discussion during the cleaning of the page (there was none).
|- style=&quot;background:Tomato&quot;
| 2008-07-22 || [[Task:Using garage.maemo.org]] || Ferenc || 0% || Ran out of time, must be pushed to Sprint4.
|- style=&quot;background:LightGreen&quot;
| 2008-07-22 || [[Maemo_Summit_2008/Organization#Infrastructure|Maemo Summit infrastructure defined]] || Quim || '''DONE''' || Some details left, someone can resolve them or I'll complete them in Sprint5
|- style=&quot;background:LightGreen&quot;
| 2008-07-22 || [[Maemo_Summit_2008/Organization#Sponsored_participants|Summit sponsored participants decided]] || Quim || '''DONE''' || Program closed. New &quot;Accepted&quot; will appear when [[Desktop_Search_Hackfest]] approved participants register.
|- style=&quot;background:LightGreen&quot;
| 2008-07-22 || [[Maemo_Summit_2008/Organization#OSiM|Maemo community in OSiM]] || Quim || '''DONE''' || [[Maemo_Summit_2008/Organization#OSiM]]
|}

==Bugs in product Website==
The bugs assigned in the last sprint meeting are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=High&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= HIGH]. The bugs proposed for the next sprint are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=Medium&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= MEDIUM]. Only product/component maintainers can change this status. Comment on a bug if you want to push it up. Check also those marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=easyfix&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= EASYFIX].

What follows are the bugs that need special attention/progress.

For the record: 

{{#bugzilla:id=630,1288,1545,1805,2179,2350,2365,2985,3002,3076,3102,3127,3164,3222,3235,3241,3262,3280,3354,3363,3389,3432,3465
  |order=priority
  |columns=id, priority, severity, modified,  product,  status, summary, to
}}

==Activity log==
Latest activity report goes on top.

; Tuesday 2008-08-12

* Andre
** Today: bugmail followup, Internal report, work on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]], prepare and have [[100Days/Sprint4]] meeting
** Yesterday: bugmail followup and syncing, taking a look at the bugzilla svn code, testing and updating reports after SSU update, IRC conversation about [[Task:Getting_Nokia_involved_in_bugs.maemo.org]], ITt posts

; Monday 2008-08-11

* Andre
** Today: bugmail followup and syncing, taking a look at the bugzilla svn code, testing and updating reports after SSU update.
** Friday: New bugs, bugmail followup and syncing, getting an overview of enhancement requests (especially trivial ones and ones with patches)

* Dave
** Friday: Finish remarkable community projects task - used http://maemo.org/downloads/featured/OS2008/50, follow change of logo for maemo.org, updated sections on the front page to link to some of the new 100Days produced material.
** Today: Work on [[Task:Content_Cleanup]]. Do the translation/edit postponed from Friday.

* Karsten
** Today: Push the &quot;Bugsquad&quot; Task.
** Last couple days: Work on the &quot;Bugsquad&quot; Task. Evaluate bugzilla customizations and improvements to be implemented the next sprint. Hacking.

* Niels
** Friday, Saturday: Added new logo to maemo.org, found a solution for disk space problem on builder (Additional disk space coming), had a meeting with Bergie about maemo.org tasks @ aKademy and also talked with Gnuton about qt4 builds @ aKademy.
** Today: Autobuilder work, work on Sprint 3 tasks. Prepare for the [[100Days/Sprint4]] meeting.

; Friday 2008-08-07

* Quim
** Yesterday: Closing details about [[Maemo_Summit_2008/Organization]] and budget. Closing also details about OSiM participation. Delegating the rest of OSiM stand &amp; Summit exhibit to Teemu.
** Today (leaving here my report of the day since I go on holidays): Complete the [[2010 Agenda]] community proposal, [[Maemo_Summit_2008/Organization#Infrastructure|Maemo Summit infrastructure]], [[Maemo_Summit_2008/Organization#OSiM|Maemo community in OSiM]]. Sent briefing to maemo-community about my Sprint3-4 since I won't attend the meeting (starting holidays *now*).
** Problems: Didn't have time to dal with the invitation letters for visa processing of Evgeny and Vlad. Sent email to them &amp; Teemu &amp; Urho in the hope that they can continue and get the visas.

* Dave
** Yesterday: Moved logo deployment along. Should be finished today. Made a submission for the Maemo Summit.
** Today: Finish remarkable community projects task - no need for new features in website. Update Development and Community front-page sections to point to all the great new stuff to come out of the 100 Days. Continue review of maemo.org content for [[Task:Improving maemo.org]] Translate the paper I wrote for Wengo on community building &amp; roadmaps.

* Andre
** Today: New bugs, bugmail followup and syncing, getting an overview of enhancement requests (especially trivial ones and ones with patches)
** Tuesday: Internal report, read about Bugzilla::Hooks, bugmail followup, work on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]]

* Niels
** Yesterday: Worked on repository issues. Configured internal machine for mailing list forum.
** Today: Add new logo to the website, will be away most of the day.
** Problems: The autobuilder is still running out of disk space.

; Thursday 2008-08-07

* Quim
** Yesterday: Closing details about [[Maemo_Summit_2008/Organization]], budget and schedule. Closing also details about OSiM participation.
** Today: Same as yesterday.

* Niels
** Yesterday: Worked on repository incoming queue issues and repository corruption, qt4 build issues.
** Today: Work on maemo.org, add new logo and banners. Try to fix repository problems. Test forum feature on internal.

* Dave
** Yesterday: More or less finished &quot;Who's who&quot; - some small details left to work out, and still need to announce profile updates. I mailed maintainers whose profile I couldn't find to ask them to point me to their profile. Started pushing the logo replacement. Started working on &quot;Remarkable community projects&quot;.
** Today: Buckle down &amp; review maemo.org/development content seriously. I've been long-fingering it. Keep the logo rework moving along. Come up with a proposal for &quot;Remarkable community projects&quot;.

; Wednesday 2008-08-06

* Quim
** Yesterday: Sponsorship program closed - new &quot;accepted&quot; will appear from [[Desktop_Search_Hackfest]] participants already approved. Sent list of sponsored community members to OSiM organization. Completed Summit Friday 19 agenda. Spent a lot of time in front of the Summit budget spreadsheet. Started delegation of OSiM Stand + exhibit to Teemu. 
** Today: Preparing OSiM. Fine tuning details with Maemo SW developers active in the Summit. 

* Dave
** Yesterday: Finished [[Task:Upstream projects]] - feedback welcome whether this page is complete as-is. I wonder whether I should list every single .tar.gz that we ship and/or patch in Maemo, or only major packages which feature in the architecture diagram (this is what I've done). Moved along &quot;Who's who&quot; with Soumya's help.
** Today: Finish &quot;Who's Who&quot;. I need to chase down a few of the people involved to ask them to create maemo.org profiles, and we still need to have the profile list changes rolled out. Start working on updating the website with the new logo. Move that whole discussion to maemo-community. Finally make a decent go of reviewing http://maemo.org/development
** Problems: I have zero visibility on when the new profile list will be rolled out, I was expecting it at the end of last week.

; Tuesday 2008-08-05

* Andre
** Today: Internal report, read about Bugzilla::Hooks, bugmail followup, work on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]]
** Yesterday: Triage the new bugs and (bug)mail followup and syncing

* Niels
** Yesterday: Fixed a repository queuemanager problem, worked on autobuilder issues, started to work on [[Package_Categories]].
** Today: More work on [[Package_Categories]], find out what I can do for OSiM and summit.

* Dave
** Yesterday: No real progress on anything. Lost most of the day to administrative tasks &amp; phone calls.
** Today: Finish [[Task:Upstream projects]], start cleaning up [[Task:Remarkable community projects]] work on who's who and revised [http://maemo.org/development Maemo development pages]

* Quim
** Friday: Booked travel for [[Desktop_Search_Hackfest]]. Worked on Summit Friday 19 agenda. Finished sponsorship approvals, only a couple of bloggers left.
** Today: OSiM registration for sponsored participants. Delegate to Teemu stand/exhibit responsibility. Steps to close the Summit program (except lightning). Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]].

; Monday 2008-08-04

* Dave
** Friday: Moved Who's who along, created initial version of [[Task:Upstream projects]]. Finished tour of [http://maemo.org/intro Maemo intro pages] and added a bunch of links.
** Weekend: Went walking in the Alps for a couple of days - spent the night at the Lac de Presset, highly recommended.
** Today: Catch up after weekend. Finish [[Task:Upstream projects]] page (logos &amp; descriptions) - we could collect stories of collaboration &amp; contributions for each project, but it's not required in first draft. Review intro &amp; development on maemo.org (dropped from Friday).

* Andre
** Today: Triage the new bugs and (bug)mail followup and syncing
** Friday &amp; weekend: (bug)mail followup and sync; Triage the few new bugs; ITT

* Quim
** Friday: Help coordinating how new logo comes to maemo.org. Feedback to c-base about budget proposal.
** Today: Book travel for [[Desktop_Search_Hackfest]]. Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]].

* Karsten
** Evaluate bugzilla customizations and improvements to be implemented this sprint.

* Niels
** Friday: Worked on autobuilder issues, tried to get qt4 in extras-devel and looked for infrastructure improvements.
** Today: Check repository queue handling issue and work on Extras category task.

; Friday 2008-08-01

* Andre
** Yesterday: (bug)mail followup and sync; Triage the few new bugs &amp; older bugs
** Today: (bug)mail followup and sync; Triage the few new bugs &amp; older bugs

* Niels
** Yesterday,Wednesday: Work on autobuilder and repository issues. Identify perceived performance for all services and proposed solutions.
** Today: Find out what proposed solutions cost. Work on my tasks for this sprint.

* Quim
** Yesterday: Booked accommodation for [[Desktop_Search_Hackfest]]. Dealing with Summit budget and sponsored participants. 
** Today: Book travel for [[Desktop_Search_Hackfest]]. Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]]. Help coordinating how new logo comes to maemo.org.

* Dave
** Yesterday: Selected and announced new maemo.org logo with help from Tim Samoff, David Greaves and Peter Schneider. Reviewed most of Intro (one page left to review) and added links where useful. Continue on putting names to components of platform. Mailed everyone in Nokia about updating their maemo.org profiles.
** Today: Bringing the family to the mountains for their holidays, but should have a full day anyway. Create wiki.maemo.org page listing components of platform &amp; names of maintainers I know to start collaborating with Soumya on this in public. Finish reviewing intro. Suggest improvements to intro/platform. Create upstream projects page listing upstream projects (details of work sent upstream to follow later).
** Problems: I don't want to announce the updated profiles in maemo.org until the profile list is updated, and I don't know when that's going to happen exactly. Not sure if I should wait.

; Thursday 2008-07-31

* Andre
** Tuesday: Internal report; (bug)mail followup and sync; triage older bugs
** Today: (bug)mail followup and sync; Triage the few new bugs &amp; older bugs

* Dave
** Yesterday: Gathered comments on shortlist of new maemo.org logos &amp; organised IRC meeting to finalise decision, completed [[Companies in Maemo development]], got about half way through adding links where appropriate for Intro section. Contacted Soumya about &quot;who's who?&quot;
** Today: Decide on new logo, finish adding links to Intro, follow up with Soumya to get a list of owners of components, and mail everyone to update their maemo.org profiles (also announce on planet.maemo and maemo.org the changes to profiles).

* Quim
** Yesterday: Got list of people sponsored at [[Desktop_Search_Hackfest]]. Dealing with Summit budget and sponsored participants. Created [[Objective:Best community for mobile Linux innovation]].
** Today: Book travel and accommodation [[Desktop_Search_Hackfest]]. Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]]. Preparations for [[Task:Maemo_public_roadmapping_process]]. 


; Wednesday 2008-07-30

* Dave
** Yesterday: Made good progress on logo selection.
** Today: Get shortlist and organise IRC meeting to decide winner. Finish [[Companies in Maemo development]] at last (contact everyone for a logo, and if I don't have an answer by the end of the afternoon, take them from websites). Do the tour of the intro to add links that I've been putting on the long finger.
 
* Niels
** Yesterday: Worked on autobuilder issues and gave support for it to developers. Worked on dak setup on our test machine and managed to import the first package in the test repository. So far it looks promising.
** Today: SDK repository cache issues, more dak testing, test rollout of new profile list pages.

* Quim
** Yesterday: Details to book accommodation of [[Desktop_Search_Hackfest]] participants. Another call for costs details from sponsored participants. Created [[Objective:Maemo variants]].
** Today: Push details on [[Desktop_Search_Hackfest]]. Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]]. Preparations for [[Task:Maemo_public_roadmapping_process]]. 

; Tuesday 2008-07-29

* Dave
** Yesterday: Cleared backlog, made good progress on getting a logo team together, launched a community call for comments, requested travel for Berlin.
** Today: Finalise judging panel for logo contest, announce it, choose my favourites, finish working on &quot;Communities involved in Maemo&quot;

* Andre
** Yesterday: Triage the few new bugs, (bug)mail followup and sync; fix bug 2365; triage older bugs
** Today: Internal report; (bug)mail followup and sync; triage older bugs; Thinking on [[Task:Getting_Nokia_involved_in_bugs.maemo.org|Getting Nokia involved in bugs.maemo.org]]

* Niels
** Yesterday: Started investigating using [http://ftp-master.debian.org/git/dak.git/ dak] for repository management and started test install to see if it can work for us.
** Today: Try to resolve more repository issues and work on dak setup on test server.

* Quim
** Yesterday: [[Desktop_Search_Hackfest]] coordination Vincent (GNOME) &amp; Urho (Nokia) + accommodation. Delegated some Summit work to [http://maemo.org/profile/view/luovanto.html Jussi]. Created [[Objective:Community localization]].
** Today: Push details on [[Desktop_Search_Hackfest]]. Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]].

; Monday 2008-07-28

* Dave
** Last week: OSCON. Flew back to France Saturday, couple of days with family.
** Today: Close logo contest, finalise selection team, clear (most of) backlog of requests &amp; email.

* Niels
** Friday: Fix comments on applications and install moderation feature for all comments. Worked on repository caching issues. Looked into some wiki styling issues.
** Today: Try to split up Extras tasks and work on repository cleaning options.

* Andre
** Friday: Triage new bugs, (bug)mail followup.
** Today: Triage the few new bugs, (bug)mail followup and sync; fix bug 2365; triage older bugs

* Quim
** Friday: Updated Summit budget estimations with numbers available and review sponsorship requests. Cleaned [[2010_Agenda]] page. Sent Summit invitations to most visible Maemo application developers.
** Today: Push details on [[Desktop_Search_Hackfest]]. Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]].

; Friday 2008-07-25

* Niels
** Yesterday: Add [http://maemo.org/maemo-meeting/maemo-bugzilla-meeting-2008-07-22.html bugzilla meeting log], worked on wiki styling and fixed comments notification. Investigated repository cleanup.
** Today: Work on repository issues.

* Andre
** Tuesday: Triage the few new bugs, start improving [https://maemo.org/bugzilla/page.cgi?id=bug-writing.html Bugwriting How-to], prepare tonight's Sprint2 and Bugzilla Meeting
** Today: Triage new bugs, (bug)mail followup, triage old bugs.

* Quim
** Yesterday: Created [[Objective:One_place_to_track_feedback]], [[Task:Brainstorming_new_features]] and [[Talk:Task:Getting_Nokia_involved_in_bugs.maemo.org]]. Chat with Urho and Iván about [[Desktop_Search_Hackfest]]. Got first numbers from c-base.
** Today: Update Summit budget estimations with numbers available and review sponsorship requests. Push [[2010_Agenda]].
** Problems: [http://www.internettablettalk.com/forums/showpost.php?p=206639&amp;postcount=132 Surprised] about the poor / lack of response when asking help for [[Maemo_Summit_2008/Organization]].

; Thursday 2008-07-24

* Niels
** Yesterday: Fixed planet corruption and corrected statistics for extras. Fixed repository corruption issues.
** Today: Try to find a solution for autobuilder related bugs.
** Problem: Lack of access to autobuilder build server, so bugs like [https://bugs.maemo.org/show_bug.cgi?id=3486 Bug 3486] drag on for months while I can fix this in less than 5 minutes.

* Quim
** Yesterday: Uploaded new version of [[Task:Components_and_packages]] file with LOC. 101 bug triaging little tasks. Push details on [[Desktop_Search_Hackfest]]. Update Summit budget with sponsorship costs known.
** Today: Push [[2010_Agenda]]. Push details on [[Desktop_Search_Hackfest]].

; Wednesday 2008-07-23

* Dave
** Yesterday: Attended the Sprint meeting, OSCON.
** Today: OSCON all day. Presentations, meeting, hallway track.

* Quim
** Yesterday: Facilitated the Sprint planning meeting.
** Today: Upload new version of [[Task:Components_and_packages]] file with LOC. 101 bug triaging little tasks pending. Push details on [[Desktop_Search_Hackfest]]. Update Summit budget with sponsorship costs known.

* Niels
** Yesterday: Did some wiki plugin fixing, updated extras stats. Worked on repository rejection problem. Tested diablo extras non-free with Canola2. Sprint meeting, put [http://maemo.org/maemo-meeting/maemo-meeting-2008-07-22.html irc log] online.
** Today: Work on HIGH bugs and tasks.

== Backlog ==
Moved to [[maemo.org backlog]].

== Proposals ==
Moved to [[maemo.org proposals]]</text>
    </revision>
  </page>
  <page>
    <title>100Days/Sprint3</title>
    <id>654</id>
    <revision>
      <id>33795</id>
      <timestamp>2010-05-04T09:37:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}

==Sprint 3 planning==
* Planning meeting organized in the [[IRC|#maemo-meeting IRC channel]] on Tuesday 2008/07/22 at [http://www.timeanddate.com/worldclock/fixedtime.html?month=7&amp;day=22&amp;year=2008&amp;hour=19&amp;min=0&amp;sec=0&amp;p1=0 19:00 UTC]. 
* The '''[http://maemo.org/maemo-meeting/maemo-meeting-2008-07-22.html meeting log]''' contains also the  [[100Days/Sprint2]] review. 
* Holidays: Quim (9-31/aug), Dave (15-31/aug with no internet), Niels (14 aug/6 sept probably no internet, No activity expected in Sprint 4)

There will be an IRC review meeting of this sprint on Tuesday 2008/08/12 at [http://www.timeanddate.com/worldclock/fixedtime.html?month=8&amp;day=12&amp;year=2008&amp;hour=19&amp;min=0&amp;sec=0&amp;p1=0 19:00 UTC]. See also [[100Days/Sprint4]].

==Tasks==
[[: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 [[:Category:Accepted|accepted]] in the Backlog or [[:Category:Proposed|(re)new(ed)]] proposals.

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightBlue&quot;
| 2008-05-10 || Who's who in Maemo || Dave || 90% || Awaiting deployment of new profile list to announce changes in profiles. Need to find a final home for [[People#Module_maintainers|the maintainer list]] 
|- style=&quot;background:LightGreen&quot;
| 2008-05-10 || [[Companies in Maemo development]] || Dave || '''DONE''' || Task completed.
|- style=&quot;background:LightGreen&quot;
| 2008-06-10 || Extras &amp; maemo.org/downloads integration || Niels || '''DONE''' || Complete. Extra features should be filed as enhancement.
|- style=&quot;background:LightGreen&quot;
| 2006-06-10 || Registration and sponsorship for [[Maemo Summit 2008]] || Oskari ||  '''DONE''' || Working
|- style=&quot;background:Orange&quot;
| 2008-06-10 || [[Package_Categories|Better extras categories and debtags]] || Niels || 50% || Proposal drafted in wiki page, need to discuss on maemo-developers.
|- style=&quot;background:LightGreen&quot;
| 2008-06-10 || Put the [[Bugsquad]] in place || Andre/Karsten || '''DONE''' || See [http://lists.maemo.org/pipermail//maemo-developers/2008-June/033719.html this mail], [[Bugs:Triage_guide|Triage Guide]], Bug [https://bugs.maemo.org/show_bug.cgi?id=1288 1288] and [https://bugs.maemo.org/show_bug.cgi?id=2365 2365]
|- style=&quot;background:Tomato&quot;
| 2008-06-10 || Forum interface to mailing lists released || Bergie || 0% || Beta to be made public for testing
|- style=&quot;background:LightGreen&quot;
| 2008-06-10 || User profile improvements defined and started || Lauri/Bergie || '''DONE''' || New profiles, and profile lists ready]
|- style=&quot;background:LightGreen&quot;
| 2008-06-30 || Get a [[Maemo.org_logo_contest]] winner || Dave || '''DONE''' || Winner announced: [[:Image:Maemo.org_logo_contest_glaoliver_1.png]]
|-style=&quot;background:LightGreen&quot;
| 2008-07-22 || [[Task:Remarkable community projects]] around Maemo || Dave || '''DONE''' || Use Pearls mechanism to set [[Task:Remarkable community projects|remarkable community projects]]. Need to be able to navigate, since the list of apps is longer than 25.
|- style=&quot;background:LightGreen&quot;
| 2008-07-22 || [[Task:Upstream projects]] Maemo relies upon || Dave || '''DONE''' || List in place. Categorised by umbrella projects. Logos added by group.
|- style=&quot;background:LightGreen&quot;
| 2008-07-22 || Complete the [[2010 Agenda]] community proposal || Quim || '''DONE''' || Proposal of objectives left for commmunity discussion and approval. I had expected more discussion during the cleaning of the page (there was none).
|- style=&quot;background:Tomato&quot;
| 2008-07-22 || [[Task:Using garage.maemo.org]] || Ferenc || 0% || Ran out of time, must be pushed to Sprint4.
|- style=&quot;background:LightGreen&quot;
| 2008-07-22 || [[Maemo_Summit_2008/Organization#Infrastructure|Maemo Summit infrastructure defined]] || Quim || '''DONE''' || Some details left, someone can resolve them or I'll complete them in Sprint5
|- style=&quot;background:LightGreen&quot;
| 2008-07-22 || [[Maemo_Summit_2008/Organization#Sponsored_participants|Summit sponsored participants decided]] || Quim || '''DONE''' || Program closed. New &quot;Accepted&quot; will appear when [[Desktop_Search_Hackfest]] approved participants register.
|- style=&quot;background:LightGreen&quot;
| 2008-07-22 || [[Maemo_Summit_2008/Organization#OSiM|Maemo community in OSiM]] || Quim || '''DONE''' || [[Maemo_Summit_2008/Organization#OSiM]]
|}

==Bugs in product Website==
The bugs assigned in the last sprint meeting are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=High&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= HIGH]. The bugs proposed for the next sprint are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=Medium&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= MEDIUM]. Only product/component maintainers can change this status. Comment on a bug if you want to push it up. Check also those marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=easyfix&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= EASYFIX].

What follows are the bugs that need special attention/progress.

For the record: 

{{#bugzilla:id=630,1288,1545,1805,2179,2350,2365,2985,3002,3076,3102,3127,3164,3222,3235,3241,3262,3280,3354,3363,3389,3432,3465
  |order=priority
  |columns=id, priority, severity, modified,  product,  status, summary, to
}}

==Activity log==
Latest activity report goes on top.

; Tuesday 2008-08-12

* Andre
** Today: bugmail followup, Internal report, work on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]], prepare and have [[100Days/Sprint4]] meeting
** Yesterday: bugmail followup and syncing, taking a look at the bugzilla svn code, testing and updating reports after SSU update, IRC conversation about [[Task:Getting_Nokia_involved_in_bugs.maemo.org]], ITt posts

; Monday 2008-08-11

* Andre
** Today: bugmail followup and syncing, taking a look at the bugzilla svn code, testing and updating reports after SSU update.
** Friday: New bugs, bugmail followup and syncing, getting an overview of enhancement requests (especially trivial ones and ones with patches)

* Dave
** Friday: Finish remarkable community projects task - used http://maemo.org/downloads/featured/OS2008/50, follow change of logo for maemo.org, updated sections on the front page to link to some of the new 100Days produced material.
** Today: Work on [[Task:Content_Cleanup]]. Do the translation/edit postponed from Friday.

* Karsten
** Today: Push the &quot;Bugsquad&quot; Task.
** Last couple days: Work on the &quot;Bugsquad&quot; Task. Evaluate bugzilla customizations and improvements to be implemented the next sprint. Hacking.

* Niels
** Friday, Saturday: Added new logo to maemo.org, found a solution for disk space problem on builder (Additional disk space coming), had a meeting with Bergie about maemo.org tasks @ aKademy and also talked with Gnuton about qt4 builds @ aKademy.
** Today: Autobuilder work, work on Sprint 3 tasks. Prepare for the [[100Days/Sprint4]] meeting.

; Friday 2008-08-07

* Quim
** Yesterday: Closing details about [[Maemo_Summit_2008/Organization]] and budget. Closing also details about OSiM participation. Delegating the rest of OSiM stand &amp; Summit exhibit to Teemu.
** Today (leaving here my report of the day since I go on holidays): Complete the [[2010 Agenda]] community proposal, [[Maemo_Summit_2008/Organization#Infrastructure|Maemo Summit infrastructure]], [[Maemo_Summit_2008/Organization#OSiM|Maemo community in OSiM]]. Sent briefing to maemo-community about my Sprint3-4 since I won't attend the meeting (starting holidays *now*).
** Problems: Didn't have time to dal with the invitation letters for visa processing of Evgeny and Vlad. Sent email to them &amp; Teemu &amp; Urho in the hope that they can continue and get the visas.

* Dave
** Yesterday: Moved logo deployment along. Should be finished today. Made a submission for the Maemo Summit.
** Today: Finish remarkable community projects task - no need for new features in website. Update Development and Community front-page sections to point to all the great new stuff to come out of the 100 Days. Continue review of maemo.org content for [[Task:Improving maemo.org]] Translate the paper I wrote for Wengo on community building &amp; roadmaps.

* Andre
** Today: New bugs, bugmail followup and syncing, getting an overview of enhancement requests (especially trivial ones and ones with patches)
** Tuesday: Internal report, read about Bugzilla::Hooks, bugmail followup, work on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]]

* Niels
** Yesterday: Worked on repository issues. Configured internal machine for mailing list forum.
** Today: Add new logo to the website, will be away most of the day.
** Problems: The autobuilder is still running out of disk space.

; Thursday 2008-08-07

* Quim
** Yesterday: Closing details about [[Maemo_Summit_2008/Organization]], budget and schedule. Closing also details about OSiM participation.
** Today: Same as yesterday.

* Niels
** Yesterday: Worked on repository incoming queue issues and repository corruption, qt4 build issues.
** Today: Work on maemo.org, add new logo and banners. Try to fix repository problems. Test forum feature on internal.

* Dave
** Yesterday: More or less finished &quot;Who's who&quot; - some small details left to work out, and still need to announce profile updates. I mailed maintainers whose profile I couldn't find to ask them to point me to their profile. Started pushing the logo replacement. Started working on &quot;Remarkable community projects&quot;.
** Today: Buckle down &amp; review maemo.org/development content seriously. I've been long-fingering it. Keep the logo rework moving along. Come up with a proposal for &quot;Remarkable community projects&quot;.

; Wednesday 2008-08-06

* Quim
** Yesterday: Sponsorship program closed - new &quot;accepted&quot; will appear from [[Desktop_Search_Hackfest]] participants already approved. Sent list of sponsored community members to OSiM organization. Completed Summit Friday 19 agenda. Spent a lot of time in front of the Summit budget spreadsheet. Started delegation of OSiM Stand + exhibit to Teemu. 
** Today: Preparing OSiM. Fine tuning details with Maemo SW developers active in the Summit. 

* Dave
** Yesterday: Finished [[Task:Upstream projects]] - feedback welcome whether this page is complete as-is. I wonder whether I should list every single .tar.gz that we ship and/or patch in Maemo, or only major packages which feature in the architecture diagram (this is what I've done). Moved along &quot;Who's who&quot; with Soumya's help.
** Today: Finish &quot;Who's Who&quot;. I need to chase down a few of the people involved to ask them to create maemo.org profiles, and we still need to have the profile list changes rolled out. Start working on updating the website with the new logo. Move that whole discussion to maemo-community. Finally make a decent go of reviewing http://maemo.org/development
** Problems: I have zero visibility on when the new profile list will be rolled out, I was expecting it at the end of last week.

; Tuesday 2008-08-05

* Andre
** Today: Internal report, read about Bugzilla::Hooks, bugmail followup, work on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]]
** Yesterday: Triage the new bugs and (bug)mail followup and syncing

* Niels
** Yesterday: Fixed a repository queuemanager problem, worked on autobuilder issues, started to work on [[Package_Categories]].
** Today: More work on [[Package_Categories]], find out what I can do for OSiM and summit.

* Dave
** Yesterday: No real progress on anything. Lost most of the day to administrative tasks &amp; phone calls.
** Today: Finish [[Task:Upstream projects]], start cleaning up [[Task:Remarkable community projects]] work on who's who and revised [http://maemo.org/development Maemo development pages]

* Quim
** Friday: Booked travel for [[Desktop_Search_Hackfest]]. Worked on Summit Friday 19 agenda. Finished sponsorship approvals, only a couple of bloggers left.
** Today: OSiM registration for sponsored participants. Delegate to Teemu stand/exhibit responsibility. Steps to close the Summit program (except lightning). Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]].

; Monday 2008-08-04

* Dave
** Friday: Moved Who's who along, created initial version of [[Task:Upstream projects]]. Finished tour of [http://maemo.org/intro Maemo intro pages] and added a bunch of links.
** Weekend: Went walking in the Alps for a couple of days - spent the night at the Lac de Presset, highly recommended.
** Today: Catch up after weekend. Finish [[Task:Upstream projects]] page (logos &amp; descriptions) - we could collect stories of collaboration &amp; contributions for each project, but it's not required in first draft. Review intro &amp; development on maemo.org (dropped from Friday).

* Andre
** Today: Triage the new bugs and (bug)mail followup and syncing
** Friday &amp; weekend: (bug)mail followup and sync; Triage the few new bugs; ITT

* Quim
** Friday: Help coordinating how new logo comes to maemo.org. Feedback to c-base about budget proposal.
** Today: Book travel for [[Desktop_Search_Hackfest]]. Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]].

* Karsten
** Evaluate bugzilla customizations and improvements to be implemented this sprint.

* Niels
** Friday: Worked on autobuilder issues, tried to get qt4 in extras-devel and looked for infrastructure improvements.
** Today: Check repository queue handling issue and work on Extras category task.

; Friday 2008-08-01

* Andre
** Yesterday: (bug)mail followup and sync; Triage the few new bugs &amp; older bugs
** Today: (bug)mail followup and sync; Triage the few new bugs &amp; older bugs

* Niels
** Yesterday,Wednesday: Work on autobuilder and repository issues. Identify perceived performance for all services and proposed solutions.
** Today: Find out what proposed solutions cost. Work on my tasks for this sprint.

* Quim
** Yesterday: Booked accommodation for [[Desktop_Search_Hackfest]]. Dealing with Summit budget and sponsored participants. 
** Today: Book travel for [[Desktop_Search_Hackfest]]. Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]]. Help coordinating how new logo comes to maemo.org.

* Dave
** Yesterday: Selected and announced new maemo.org logo with help from Tim Samoff, David Greaves and Peter Schneider. Reviewed most of Intro (one page left to review) and added links where useful. Continue on putting names to components of platform. Mailed everyone in Nokia about updating their maemo.org profiles.
** Today: Bringing the family to the mountains for their holidays, but should have a full day anyway. Create wiki.maemo.org page listing components of platform &amp; names of maintainers I know to start collaborating with Soumya on this in public. Finish reviewing intro. Suggest improvements to intro/platform. Create upstream projects page listing upstream projects (details of work sent upstream to follow later).
** Problems: I don't want to announce the updated profiles in maemo.org until the profile list is updated, and I don't know when that's going to happen exactly. Not sure if I should wait.

; Thursday 2008-07-31

* Andre
** Tuesday: Internal report; (bug)mail followup and sync; triage older bugs
** Today: (bug)mail followup and sync; Triage the few new bugs &amp; older bugs

* Dave
** Yesterday: Gathered comments on shortlist of new maemo.org logos &amp; organised IRC meeting to finalise decision, completed [[Companies in Maemo development]], got about half way through adding links where appropriate for Intro section. Contacted Soumya about &quot;who's who?&quot;
** Today: Decide on new logo, finish adding links to Intro, follow up with Soumya to get a list of owners of components, and mail everyone to update their maemo.org profiles (also announce on planet.maemo and maemo.org the changes to profiles).

* Quim
** Yesterday: Got list of people sponsored at [[Desktop_Search_Hackfest]]. Dealing with Summit budget and sponsored participants. Created [[Objective:Best community for mobile Linux innovation]].
** Today: Book travel and accommodation [[Desktop_Search_Hackfest]]. Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]]. Preparations for [[Task:Maemo_public_roadmapping_process]]. 


; Wednesday 2008-07-30

* Dave
** Yesterday: Made good progress on logo selection.
** Today: Get shortlist and organise IRC meeting to decide winner. Finish [[Companies in Maemo development]] at last (contact everyone for a logo, and if I don't have an answer by the end of the afternoon, take them from websites). Do the tour of the intro to add links that I've been putting on the long finger.
 
* Niels
** Yesterday: Worked on autobuilder issues and gave support for it to developers. Worked on dak setup on our test machine and managed to import the first package in the test repository. So far it looks promising.
** Today: SDK repository cache issues, more dak testing, test rollout of new profile list pages.

* Quim
** Yesterday: Details to book accommodation of [[Desktop_Search_Hackfest]] participants. Another call for costs details from sponsored participants. Created [[Objective:Maemo variants]].
** Today: Push details on [[Desktop_Search_Hackfest]]. Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]]. Preparations for [[Task:Maemo_public_roadmapping_process]]. 

; Tuesday 2008-07-29

* Dave
** Yesterday: Cleared backlog, made good progress on getting a logo team together, launched a community call for comments, requested travel for Berlin.
** Today: Finalise judging panel for logo contest, announce it, choose my favourites, finish working on &quot;Communities involved in Maemo&quot;

* Andre
** Yesterday: Triage the few new bugs, (bug)mail followup and sync; fix bug 2365; triage older bugs
** Today: Internal report; (bug)mail followup and sync; triage older bugs; Thinking on [[Task:Getting_Nokia_involved_in_bugs.maemo.org|Getting Nokia involved in bugs.maemo.org]]

* Niels
** Yesterday: Started investigating using [http://ftp-master.debian.org/git/dak.git/ dak] for repository management and started test install to see if it can work for us.
** Today: Try to resolve more repository issues and work on dak setup on test server.

* Quim
** Yesterday: [[Desktop_Search_Hackfest]] coordination Vincent (GNOME) &amp; Urho (Nokia) + accommodation. Delegated some Summit work to [http://maemo.org/profile/view/luovanto.html Jussi]. Created [[Objective:Community localization]].
** Today: Push details on [[Desktop_Search_Hackfest]]. Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]].

; Monday 2008-07-28

* Dave
** Last week: OSCON. Flew back to France Saturday, couple of days with family.
** Today: Close logo contest, finalise selection team, clear (most of) backlog of requests &amp; email.

* Niels
** Friday: Fix comments on applications and install moderation feature for all comments. Worked on repository caching issues. Looked into some wiki styling issues.
** Today: Try to split up Extras tasks and work on repository cleaning options.

* Andre
** Friday: Triage new bugs, (bug)mail followup.
** Today: Triage the few new bugs, (bug)mail followup and sync; fix bug 2365; triage older bugs

* Quim
** Friday: Updated Summit budget estimations with numbers available and review sponsorship requests. Cleaned [[2010_Agenda]] page. Sent Summit invitations to most visible Maemo application developers.
** Today: Push details on [[Desktop_Search_Hackfest]]. Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]].

; Friday 2008-07-25

* Niels
** Yesterday: Add [http://maemo.org/maemo-meeting/maemo-bugzilla-meeting-2008-07-22.html bugzilla meeting log], worked on wiki styling and fixed comments notification. Investigated repository cleanup.
** Today: Work on repository issues.

* Andre
** Tuesday: Triage the few new bugs, start improving [https://maemo.org/bugzilla/page.cgi?id=bug-writing.html Bugwriting How-to], prepare tonight's Sprint2 and Bugzilla Meeting
** Today: Triage new bugs, (bug)mail followup, triage old bugs.

* Quim
** Yesterday: Created [[Objective:One_place_to_track_feedback]], [[Task:Brainstorming_new_features]] and [[Talk:Task:Getting_Nokia_involved_in_bugs.maemo.org]]. Chat with Urho and Iván about [[Desktop_Search_Hackfest]]. Got first numbers from c-base.
** Today: Update Summit budget estimations with numbers available and review sponsorship requests. Push [[2010_Agenda]].
** Problems: [http://www.internettablettalk.com/forums/showpost.php?p=206639&amp;postcount=132 Surprised] about the poor / lack of response when asking help for [[Maemo_Summit_2008/Organization]].

; Thursday 2008-07-24

* Niels
** Yesterday: Fixed planet corruption and corrected statistics for extras. Fixed repository corruption issues.
** Today: Try to find a solution for autobuilder related bugs.
** Problem: Lack of access to autobuilder build server, so bugs like [https://bugs.maemo.org/show_bug.cgi?id=3486 Bug 3486] drag on for months while I can fix this in less than 5 minutes.

* Quim
** Yesterday: Uploaded new version of [[Task:Components_and_packages]] file with LOC. 101 bug triaging little tasks. Push details on [[Desktop_Search_Hackfest]]. Update Summit budget with sponsorship costs known.
** Today: Push [[2010_Agenda]]. Push details on [[Desktop_Search_Hackfest]].

; Wednesday 2008-07-23

* Dave
** Yesterday: Attended the Sprint meeting, OSCON.
** Today: OSCON all day. Presentations, meeting, hallway track.

* Quim
** Yesterday: Facilitated the Sprint planning meeting.
** Today: Upload new version of [[Task:Components_and_packages]] file with LOC. 101 bug triaging little tasks pending. Push details on [[Desktop_Search_Hackfest]]. Update Summit budget with sponsorship costs known.

* Niels
** Yesterday: Did some wiki plugin fixing, updated extras stats. Worked on repository rejection problem. Tested diablo extras non-free with Canola2. Sprint meeting, put [http://maemo.org/maemo-meeting/maemo-meeting-2008-07-22.html irc log] online.
** Today: Work on HIGH bugs and tasks.

== Backlog ==
Moved to [[maemo.org backlog]].

== Proposals ==
Moved to [[maemo.org proposals]]</text>
    </revision>
  </page>
  <page>
    <title>100Days/Sprint3</title>
    <id>654</id>
    <revision>
      <id>33795</id>
      <timestamp>2010-05-04T09:37:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}

==Sprint 3 planning==
* Planning meeting organized in the [[IRC|#maemo-meeting IRC channel]] on Tuesday 2008/07/22 at [http://www.timeanddate.com/worldclock/fixedtime.html?month=7&amp;day=22&amp;year=2008&amp;hour=19&amp;min=0&amp;sec=0&amp;p1=0 19:00 UTC]. 
* The '''[http://maemo.org/maemo-meeting/maemo-meeting-2008-07-22.html meeting log]''' contains also the  [[100Days/Sprint2]] review. 
* Holidays: Quim (9-31/aug), Dave (15-31/aug with no internet), Niels (14 aug/6 sept probably no internet, No activity expected in Sprint 4)

There will be an IRC review meeting of this sprint on Tuesday 2008/08/12 at [http://www.timeanddate.com/worldclock/fixedtime.html?month=8&amp;day=12&amp;year=2008&amp;hour=19&amp;min=0&amp;sec=0&amp;p1=0 19:00 UTC]. See also [[100Days/Sprint4]].

==Tasks==
[[: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 [[:Category:Accepted|accepted]] in the Backlog or [[:Category:Proposed|(re)new(ed)]] proposals.

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightBlue&quot;
| 2008-05-10 || Who's who in Maemo || Dave || 90% || Awaiting deployment of new profile list to announce changes in profiles. Need to find a final home for [[People#Module_maintainers|the maintainer list]] 
|- style=&quot;background:LightGreen&quot;
| 2008-05-10 || [[Companies in Maemo development]] || Dave || '''DONE''' || Task completed.
|- style=&quot;background:LightGreen&quot;
| 2008-06-10 || Extras &amp; maemo.org/downloads integration || Niels || '''DONE''' || Complete. Extra features should be filed as enhancement.
|- style=&quot;background:LightGreen&quot;
| 2006-06-10 || Registration and sponsorship for [[Maemo Summit 2008]] || Oskari ||  '''DONE''' || Working
|- style=&quot;background:Orange&quot;
| 2008-06-10 || [[Package_Categories|Better extras categories and debtags]] || Niels || 50% || Proposal drafted in wiki page, need to discuss on maemo-developers.
|- style=&quot;background:LightGreen&quot;
| 2008-06-10 || Put the [[Bugsquad]] in place || Andre/Karsten || '''DONE''' || See [http://lists.maemo.org/pipermail//maemo-developers/2008-June/033719.html this mail], [[Bugs:Triage_guide|Triage Guide]], Bug [https://bugs.maemo.org/show_bug.cgi?id=1288 1288] and [https://bugs.maemo.org/show_bug.cgi?id=2365 2365]
|- style=&quot;background:Tomato&quot;
| 2008-06-10 || Forum interface to mailing lists released || Bergie || 0% || Beta to be made public for testing
|- style=&quot;background:LightGreen&quot;
| 2008-06-10 || User profile improvements defined and started || Lauri/Bergie || '''DONE''' || New profiles, and profile lists ready]
|- style=&quot;background:LightGreen&quot;
| 2008-06-30 || Get a [[Maemo.org_logo_contest]] winner || Dave || '''DONE''' || Winner announced: [[:Image:Maemo.org_logo_contest_glaoliver_1.png]]
|-style=&quot;background:LightGreen&quot;
| 2008-07-22 || [[Task:Remarkable community projects]] around Maemo || Dave || '''DONE''' || Use Pearls mechanism to set [[Task:Remarkable community projects|remarkable community projects]]. Need to be able to navigate, since the list of apps is longer than 25.
|- style=&quot;background:LightGreen&quot;
| 2008-07-22 || [[Task:Upstream projects]] Maemo relies upon || Dave || '''DONE''' || List in place. Categorised by umbrella projects. Logos added by group.
|- style=&quot;background:LightGreen&quot;
| 2008-07-22 || Complete the [[2010 Agenda]] community proposal || Quim || '''DONE''' || Proposal of objectives left for commmunity discussion and approval. I had expected more discussion during the cleaning of the page (there was none).
|- style=&quot;background:Tomato&quot;
| 2008-07-22 || [[Task:Using garage.maemo.org]] || Ferenc || 0% || Ran out of time, must be pushed to Sprint4.
|- style=&quot;background:LightGreen&quot;
| 2008-07-22 || [[Maemo_Summit_2008/Organization#Infrastructure|Maemo Summit infrastructure defined]] || Quim || '''DONE''' || Some details left, someone can resolve them or I'll complete them in Sprint5
|- style=&quot;background:LightGreen&quot;
| 2008-07-22 || [[Maemo_Summit_2008/Organization#Sponsored_participants|Summit sponsored participants decided]] || Quim || '''DONE''' || Program closed. New &quot;Accepted&quot; will appear when [[Desktop_Search_Hackfest]] approved participants register.
|- style=&quot;background:LightGreen&quot;
| 2008-07-22 || [[Maemo_Summit_2008/Organization#OSiM|Maemo community in OSiM]] || Quim || '''DONE''' || [[Maemo_Summit_2008/Organization#OSiM]]
|}

==Bugs in product Website==
The bugs assigned in the last sprint meeting are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=High&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= HIGH]. The bugs proposed for the next sprint are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=Medium&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= MEDIUM]. Only product/component maintainers can change this status. Comment on a bug if you want to push it up. Check also those marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=easyfix&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= EASYFIX].

What follows are the bugs that need special attention/progress.

For the record: 

{{#bugzilla:id=630,1288,1545,1805,2179,2350,2365,2985,3002,3076,3102,3127,3164,3222,3235,3241,3262,3280,3354,3363,3389,3432,3465
  |order=priority
  |columns=id, priority, severity, modified,  product,  status, summary, to
}}

==Activity log==
Latest activity report goes on top.

; Tuesday 2008-08-12

* Andre
** Today: bugmail followup, Internal report, work on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]], prepare and have [[100Days/Sprint4]] meeting
** Yesterday: bugmail followup and syncing, taking a look at the bugzilla svn code, testing and updating reports after SSU update, IRC conversation about [[Task:Getting_Nokia_involved_in_bugs.maemo.org]], ITt posts

; Monday 2008-08-11

* Andre
** Today: bugmail followup and syncing, taking a look at the bugzilla svn code, testing and updating reports after SSU update.
** Friday: New bugs, bugmail followup and syncing, getting an overview of enhancement requests (especially trivial ones and ones with patches)

* Dave
** Friday: Finish remarkable community projects task - used http://maemo.org/downloads/featured/OS2008/50, follow change of logo for maemo.org, updated sections on the front page to link to some of the new 100Days produced material.
** Today: Work on [[Task:Content_Cleanup]]. Do the translation/edit postponed from Friday.

* Karsten
** Today: Push the &quot;Bugsquad&quot; Task.
** Last couple days: Work on the &quot;Bugsquad&quot; Task. Evaluate bugzilla customizations and improvements to be implemented the next sprint. Hacking.

* Niels
** Friday, Saturday: Added new logo to maemo.org, found a solution for disk space problem on builder (Additional disk space coming), had a meeting with Bergie about maemo.org tasks @ aKademy and also talked with Gnuton about qt4 builds @ aKademy.
** Today: Autobuilder work, work on Sprint 3 tasks. Prepare for the [[100Days/Sprint4]] meeting.

; Friday 2008-08-07

* Quim
** Yesterday: Closing details about [[Maemo_Summit_2008/Organization]] and budget. Closing also details about OSiM participation. Delegating the rest of OSiM stand &amp; Summit exhibit to Teemu.
** Today (leaving here my report of the day since I go on holidays): Complete the [[2010 Agenda]] community proposal, [[Maemo_Summit_2008/Organization#Infrastructure|Maemo Summit infrastructure]], [[Maemo_Summit_2008/Organization#OSiM|Maemo community in OSiM]]. Sent briefing to maemo-community about my Sprint3-4 since I won't attend the meeting (starting holidays *now*).
** Problems: Didn't have time to dal with the invitation letters for visa processing of Evgeny and Vlad. Sent email to them &amp; Teemu &amp; Urho in the hope that they can continue and get the visas.

* Dave
** Yesterday: Moved logo deployment along. Should be finished today. Made a submission for the Maemo Summit.
** Today: Finish remarkable community projects task - no need for new features in website. Update Development and Community front-page sections to point to all the great new stuff to come out of the 100 Days. Continue review of maemo.org content for [[Task:Improving maemo.org]] Translate the paper I wrote for Wengo on community building &amp; roadmaps.

* Andre
** Today: New bugs, bugmail followup and syncing, getting an overview of enhancement requests (especially trivial ones and ones with patches)
** Tuesday: Internal report, read about Bugzilla::Hooks, bugmail followup, work on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]]

* Niels
** Yesterday: Worked on repository issues. Configured internal machine for mailing list forum.
** Today: Add new logo to the website, will be away most of the day.
** Problems: The autobuilder is still running out of disk space.

; Thursday 2008-08-07

* Quim
** Yesterday: Closing details about [[Maemo_Summit_2008/Organization]], budget and schedule. Closing also details about OSiM participation.
** Today: Same as yesterday.

* Niels
** Yesterday: Worked on repository incoming queue issues and repository corruption, qt4 build issues.
** Today: Work on maemo.org, add new logo and banners. Try to fix repository problems. Test forum feature on internal.

* Dave
** Yesterday: More or less finished &quot;Who's who&quot; - some small details left to work out, and still need to announce profile updates. I mailed maintainers whose profile I couldn't find to ask them to point me to their profile. Started pushing the logo replacement. Started working on &quot;Remarkable community projects&quot;.
** Today: Buckle down &amp; review maemo.org/development content seriously. I've been long-fingering it. Keep the logo rework moving along. Come up with a proposal for &quot;Remarkable community projects&quot;.

; Wednesday 2008-08-06

* Quim
** Yesterday: Sponsorship program closed - new &quot;accepted&quot; will appear from [[Desktop_Search_Hackfest]] participants already approved. Sent list of sponsored community members to OSiM organization. Completed Summit Friday 19 agenda. Spent a lot of time in front of the Summit budget spreadsheet. Started delegation of OSiM Stand + exhibit to Teemu. 
** Today: Preparing OSiM. Fine tuning details with Maemo SW developers active in the Summit. 

* Dave
** Yesterday: Finished [[Task:Upstream projects]] - feedback welcome whether this page is complete as-is. I wonder whether I should list every single .tar.gz that we ship and/or patch in Maemo, or only major packages which feature in the architecture diagram (this is what I've done). Moved along &quot;Who's who&quot; with Soumya's help.
** Today: Finish &quot;Who's Who&quot;. I need to chase down a few of the people involved to ask them to create maemo.org profiles, and we still need to have the profile list changes rolled out. Start working on updating the website with the new logo. Move that whole discussion to maemo-community. Finally make a decent go of reviewing http://maemo.org/development
** Problems: I have zero visibility on when the new profile list will be rolled out, I was expecting it at the end of last week.

; Tuesday 2008-08-05

* Andre
** Today: Internal report, read about Bugzilla::Hooks, bugmail followup, work on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]]
** Yesterday: Triage the new bugs and (bug)mail followup and syncing

* Niels
** Yesterday: Fixed a repository queuemanager problem, worked on autobuilder issues, started to work on [[Package_Categories]].
** Today: More work on [[Package_Categories]], find out what I can do for OSiM and summit.

* Dave
** Yesterday: No real progress on anything. Lost most of the day to administrative tasks &amp; phone calls.
** Today: Finish [[Task:Upstream projects]], start cleaning up [[Task:Remarkable community projects]] work on who's who and revised [http://maemo.org/development Maemo development pages]

* Quim
** Friday: Booked travel for [[Desktop_Search_Hackfest]]. Worked on Summit Friday 19 agenda. Finished sponsorship approvals, only a couple of bloggers left.
** Today: OSiM registration for sponsored participants. Delegate to Teemu stand/exhibit responsibility. Steps to close the Summit program (except lightning). Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]].

; Monday 2008-08-04

* Dave
** Friday: Moved Who's who along, created initial version of [[Task:Upstream projects]]. Finished tour of [http://maemo.org/intro Maemo intro pages] and added a bunch of links.
** Weekend: Went walking in the Alps for a couple of days - spent the night at the Lac de Presset, highly recommended.
** Today: Catch up after weekend. Finish [[Task:Upstream projects]] page (logos &amp; descriptions) - we could collect stories of collaboration &amp; contributions for each project, but it's not required in first draft. Review intro &amp; development on maemo.org (dropped from Friday).

* Andre
** Today: Triage the new bugs and (bug)mail followup and syncing
** Friday &amp; weekend: (bug)mail followup and sync; Triage the few new bugs; ITT

* Quim
** Friday: Help coordinating how new logo comes to maemo.org. Feedback to c-base about budget proposal.
** Today: Book travel for [[Desktop_Search_Hackfest]]. Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]].

* Karsten
** Evaluate bugzilla customizations and improvements to be implemented this sprint.

* Niels
** Friday: Worked on autobuilder issues, tried to get qt4 in extras-devel and looked for infrastructure improvements.
** Today: Check repository queue handling issue and work on Extras category task.

; Friday 2008-08-01

* Andre
** Yesterday: (bug)mail followup and sync; Triage the few new bugs &amp; older bugs
** Today: (bug)mail followup and sync; Triage the few new bugs &amp; older bugs

* Niels
** Yesterday,Wednesday: Work on autobuilder and repository issues. Identify perceived performance for all services and proposed solutions.
** Today: Find out what proposed solutions cost. Work on my tasks for this sprint.

* Quim
** Yesterday: Booked accommodation for [[Desktop_Search_Hackfest]]. Dealing with Summit budget and sponsored participants. 
** Today: Book travel for [[Desktop_Search_Hackfest]]. Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]]. Help coordinating how new logo comes to maemo.org.

* Dave
** Yesterday: Selected and announced new maemo.org logo with help from Tim Samoff, David Greaves and Peter Schneider. Reviewed most of Intro (one page left to review) and added links where useful. Continue on putting names to components of platform. Mailed everyone in Nokia about updating their maemo.org profiles.
** Today: Bringing the family to the mountains for their holidays, but should have a full day anyway. Create wiki.maemo.org page listing components of platform &amp; names of maintainers I know to start collaborating with Soumya on this in public. Finish reviewing intro. Suggest improvements to intro/platform. Create upstream projects page listing upstream projects (details of work sent upstream to follow later).
** Problems: I don't want to announce the updated profiles in maemo.org until the profile list is updated, and I don't know when that's going to happen exactly. Not sure if I should wait.

; Thursday 2008-07-31

* Andre
** Tuesday: Internal report; (bug)mail followup and sync; triage older bugs
** Today: (bug)mail followup and sync; Triage the few new bugs &amp; older bugs

* Dave
** Yesterday: Gathered comments on shortlist of new maemo.org logos &amp; organised IRC meeting to finalise decision, completed [[Companies in Maemo development]], got about half way through adding links where appropriate for Intro section. Contacted Soumya about &quot;who's who?&quot;
** Today: Decide on new logo, finish adding links to Intro, follow up with Soumya to get a list of owners of components, and mail everyone to update their maemo.org profiles (also announce on planet.maemo and maemo.org the changes to profiles).

* Quim
** Yesterday: Got list of people sponsored at [[Desktop_Search_Hackfest]]. Dealing with Summit budget and sponsored participants. Created [[Objective:Best community for mobile Linux innovation]].
** Today: Book travel and accommodation [[Desktop_Search_Hackfest]]. Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]]. Preparations for [[Task:Maemo_public_roadmapping_process]]. 


; Wednesday 2008-07-30

* Dave
** Yesterday: Made good progress on logo selection.
** Today: Get shortlist and organise IRC meeting to decide winner. Finish [[Companies in Maemo development]] at last (contact everyone for a logo, and if I don't have an answer by the end of the afternoon, take them from websites). Do the tour of the intro to add links that I've been putting on the long finger.
 
* Niels
** Yesterday: Worked on autobuilder issues and gave support for it to developers. Worked on dak setup on our test machine and managed to import the first package in the test repository. So far it looks promising.
** Today: SDK repository cache issues, more dak testing, test rollout of new profile list pages.

* Quim
** Yesterday: Details to book accommodation of [[Desktop_Search_Hackfest]] participants. Another call for costs details from sponsored participants. Created [[Objective:Maemo variants]].
** Today: Push details on [[Desktop_Search_Hackfest]]. Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]]. Preparations for [[Task:Maemo_public_roadmapping_process]]. 

; Tuesday 2008-07-29

* Dave
** Yesterday: Cleared backlog, made good progress on getting a logo team together, launched a community call for comments, requested travel for Berlin.
** Today: Finalise judging panel for logo contest, announce it, choose my favourites, finish working on &quot;Communities involved in Maemo&quot;

* Andre
** Yesterday: Triage the few new bugs, (bug)mail followup and sync; fix bug 2365; triage older bugs
** Today: Internal report; (bug)mail followup and sync; triage older bugs; Thinking on [[Task:Getting_Nokia_involved_in_bugs.maemo.org|Getting Nokia involved in bugs.maemo.org]]

* Niels
** Yesterday: Started investigating using [http://ftp-master.debian.org/git/dak.git/ dak] for repository management and started test install to see if it can work for us.
** Today: Try to resolve more repository issues and work on dak setup on test server.

* Quim
** Yesterday: [[Desktop_Search_Hackfest]] coordination Vincent (GNOME) &amp; Urho (Nokia) + accommodation. Delegated some Summit work to [http://maemo.org/profile/view/luovanto.html Jussi]. Created [[Objective:Community localization]].
** Today: Push details on [[Desktop_Search_Hackfest]]. Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]].

; Monday 2008-07-28

* Dave
** Last week: OSCON. Flew back to France Saturday, couple of days with family.
** Today: Close logo contest, finalise selection team, clear (most of) backlog of requests &amp; email.

* Niels
** Friday: Fix comments on applications and install moderation feature for all comments. Worked on repository caching issues. Looked into some wiki styling issues.
** Today: Try to split up Extras tasks and work on repository cleaning options.

* Andre
** Friday: Triage new bugs, (bug)mail followup.
** Today: Triage the few new bugs, (bug)mail followup and sync; fix bug 2365; triage older bugs

* Quim
** Friday: Updated Summit budget estimations with numbers available and review sponsorship requests. Cleaned [[2010_Agenda]] page. Sent Summit invitations to most visible Maemo application developers.
** Today: Push details on [[Desktop_Search_Hackfest]]. Push details on Summit venue and infrastructure costs. Extract one more item of [[2010_Agenda]].

; Friday 2008-07-25

* Niels
** Yesterday: Add [http://maemo.org/maemo-meeting/maemo-bugzilla-meeting-2008-07-22.html bugzilla meeting log], worked on wiki styling and fixed comments notification. Investigated repository cleanup.
** Today: Work on repository issues.

* Andre
** Tuesday: Triage the few new bugs, start improving [https://maemo.org/bugzilla/page.cgi?id=bug-writing.html Bugwriting How-to], prepare tonight's Sprint2 and Bugzilla Meeting
** Today: Triage new bugs, (bug)mail followup, triage old bugs.

* Quim
** Yesterday: Created [[Objective:One_place_to_track_feedback]], [[Task:Brainstorming_new_features]] and [[Talk:Task:Getting_Nokia_involved_in_bugs.maemo.org]]. Chat with Urho and Iván about [[Desktop_Search_Hackfest]]. Got first numbers from c-base.
** Today: Update Summit budget estimations with numbers available and review sponsorship requests. Push [[2010_Agenda]].
** Problems: [http://www.internettablettalk.com/forums/showpost.php?p=206639&amp;postcount=132 Surprised] about the poor / lack of response when asking help for [[Maemo_Summit_2008/Organization]].

; Thursday 2008-07-24

* Niels
** Yesterday: Fixed planet corruption and corrected statistics for extras. Fixed repository corruption issues.
** Today: Try to find a solution for autobuilder related bugs.
** Problem: Lack of access to autobuilder build server, so bugs like [https://bugs.maemo.org/show_bug.cgi?id=3486 Bug 3486] drag on for months while I can fix this in less than 5 minutes.

* Quim
** Yesterday: Uploaded new version of [[Task:Components_and_packages]] file with LOC. 101 bug triaging little tasks. Push details on [[Desktop_Search_Hackfest]]. Update Summit budget with sponsorship costs known.
** Today: Push [[2010_Agenda]]. Push details on [[Desktop_Search_Hackfest]].

; Wednesday 2008-07-23

* Dave
** Yesterday: Attended the Sprint meeting, OSCON.
** Today: OSCON all day. Presentations, meeting, hallway track.

* Quim
** Yesterday: Facilitated the Sprint planning meeting.
** Today: Upload new version of [[Task:Components_and_packages]] file with LOC. 101 bug triaging little tasks pending. Push details on [[Desktop_Search_Hackfest]]. Update Summit budget with sponsorship costs known.

* Niels
** Yesterday: Did some wiki plugin fixing, updated extras stats. Worked on repository rejection problem. Tested diablo extras non-free with Canola2. Sprint meeting, put [http://maemo.org/maemo-meeting/maemo-meeting-2008-07-22.html irc log] online.
** Today: Work on HIGH bugs and tasks.

== Backlog ==
Moved to [[maemo.org backlog]].

== Proposals ==
Moved to [[maemo.org proposals]]</text>
    </revision>
  </page>
  <page>
    <title>100Days/Sprint4</title>
    <id>1030</id>
    <revision>
      <id>33796</id>
      <timestamp>2010-05-04T09:38:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}

==Sprint 4 planning==
* Planning meeting organized in the [[IRC|#maemo-meeting IRC channel]] on Tuesday 2008/08/12 at [http://www.timeanddate.com/worldclock/fixedtime.html?month=8&amp;day=12&amp;year=2008&amp;hour=19&amp;min=0&amp;sec=0&amp;p1=0 19:00 UTC].
* Right after [[100Days/Sprint3]] review. 
* Holidays: Quim (9-31/aug), Niels (14 aug/6 sept probably no internet, No activity expected in Sprint 4), Dave (15 aug/31 aug, no internet).

There will be an IRC review meeting of this sprint on Tuesday 2008/09/02 [http://www.timeanddate.com/worldclock/fixedtime.html?month=9&amp;day=2&amp;year=2008&amp;hour=19&amp;min=0&amp;sec=0&amp;p1=0 19:00 UTC].

==Tasks==
[[: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 [[:Category:Accepted|accepted]] in the Backlog or [[:Category:Proposed|(re)new(ed)]] proposals.

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightGreen&quot;
| 2008-05-10 || Who's who in Maemo || Dave || '''DONE''' || Need to find a final home for [[People#Module_maintainers|the maintainer list]] 
|- style=&quot;background:Orange&quot;
| 2008-06-10 || [[Package_Categories|Better extras categories and debtags]] || Niels || 50% || Proposal drafted in wiki page, need to discuss on maemo-developers. (No progress will be made by me in Sprint4, need help!)
|- style=&quot;background:LightGreen&quot;
| 2008-06-10 || Forum interface to mailing lists released || Bergie || '''DONE''' || Forums are now in beta
|- style=&quot;background:Tomato&quot;
| 2008-07-22 || [[Task:Using garage.maemo.org]] || Ferenc || 0% || No progress
|- 
| 2008-08-12 || [[Task:Getting Nokia involved in bugs.maemo.org]] || Andre || 30% || Work on better organization of components in some products to fit better the scope of the corresponding Nokia developer teams, see [https://bugs.maemo.org/show_bug.cgi?id=3562 bug 3562] - still drawing the big picture and trying to link all components between Maemo Bugzilla and internal bug tracker and its affiliated development teams. Hopefully done for Sprint5.
|- 
| 2008-08-12 || [https://bugs.maemo.org/show_bug.cgi?id=3553 Work on Bugzilla weekly summary functionality] || Karsten || 20% || Progressing slowly.
|- style=&quot;background:LightBlue&quot;
| 2008-08-12 || Several smaller Bugzilla enhancements || Karsten || 70% || See [https://bugs.maemo.org/show_bug.cgi?id=1417 bug 1417], [https://bugs.maemo.org/show_bug.cgi?id=2463 bug 2463], [https://bugs.maemo.org/show_bug.cgi?id=3350 bug 3350] and some more, minor issues. Guided submission form pending, needs cleanup first.
|-
| 2008-08-13 || [[Task:Maemo brainstorm]] || Oskari || 0% || New feature to the site.
|- style=&quot;background:LightBlue&quot;
| 2008-08-13 || [[Task:Community Council]] || Henri || 80% || Dave handed off to Henri who to deployed election software. Database has been populated with electorate. Electorate list is up on wiki. Election announced on opt-in &quot;Community updates&quot; with mass mailer. Next up: some copywriting and actually processing the election.
|}

==Bugs in product Website==
The bugs assigned in the last sprint meeting are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=High&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= HIGH]. The bugs proposed for the next sprint are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=Medium&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= MEDIUM]. Only product/component maintainers can change this status. Comment on a bug if you want to push it up. Check also those marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=easyfix&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= EASYFIX].

What follows are the bugs that need special attention/progress.

For the record:

{{#bugzilla:
  |product=Website
  |status=!(Closed,Resolved,Fixed,Verified)
  |priority=High
  |order=priority
  |columns=id, priority, severity, modified,  product,  status, summary, to
}}

Proposed bugs for Sprint 4 (Medium priority):

{{#bugzilla:
  |product=Website
  |status=!(Closed,Resolved,Fixed,Verified)
  |priority=Medium
  |order=priority
  |columns=id, priority, severity, modified,  product,  status, summary, to
}}

==Activity log==
Latest activity report goes on top.

; Tuesday 2008-09-02

* Karsten
** Today: Prioritize remaining bugzilla issues, that need to be done before the Summit. Start working on them. And like everyone else, prepare Sprint meeting.
** Yesterday: Finalized some bugzilla patches.

* Andre
** Today: triaging new bugs, (mail problems), work on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]] (reorganizing components), prepare Sprint meeting, internal report
** Monday: triaging new bugs and syncing/forwarding,  porting a greasemonkey script to quickly insert prepared bug comments, start retriaging RESOLVED LATER bugs to get rid of that resolution

* Dave
** Yesterday: Got inbox down to 60 mails. The ones that each need more time &amp; effort.
** Today: Bring kids to their first day in their new schools, catch up on holiday backlog, prepare Sprint5 meeting for tonight, and ensure I have all the access I need to run the election from tomorrow.

* Quim
** Today: More email. Prepare my tasks for sprint meeting this evening.
** Yesterday: Landing. Email. Glad to see there was nothing really burning waiting for me.

; Monday 2008-09-01

* Karsten
** More bugzilla hacking the last days. Another dead bug, another feature implemented. Need to blog.

* Andre
** Today: triaging new bugs and syncing/forwarding, continue hacking on greasemonkey script and working a bit on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]] (reorganizing components), preparing Sprint meeting
** Friday&amp;Weekend: [[Task:Getting_Nokia_involved_in_bugs.maemo.org]] (reorganizing components), started porting a greasemonkey script to quickly insert prepared bug comments

* Dave
** Back from holidays too. Woot! Posted a reminder about the election yesterday, noticed that there are not many candidates.
** Today: Similarly burgeoning in-box. Catch up on election. Clear backlog &amp; plan the next 2 weeks.

* Quim
** Back from holidays!
** Today: Go through 1001 pending emails. Please resend if there is something really urgent.


; Friday 2008-08-29

* Andre
** Today: triaging new bugs and syncing, working on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]] (reorganizing components), maybe start porting a greasemonkey script to quickly insert prepared bug comments that I used in gnome bugzilla already
** Wednesday: More discussions with Nokia, triaging new bugs and syncing, getting on a plane

* Bergie
** Today: Publishing forums beta, fixing the half-finished developer list import, deploying the election software
** Yesterday: Imported user and community lists completely, went through the election software

; Thursday 2008-08-28

* Bergie
** Today: Upgrading bunch of packages, continuing email imports
** Yesterday: Imported community list successfully 

; Wednesday 2008-08-27

* Andre
** Today: More discussions with Nokia, triaging new bugs and syncing, getting on a plane
** Yesterday: Internal meeting about Error management, presentation about the maemo.org Bugmaster work; removed useless &quot;Next&quot; Target Milestone; internal weekly report
* Bergie
** Today: Starting the email imports

; Tuesday 2008-08-26

* Bergie
** Today: Multiple email support for forums, preparing for email import tomorrow.

; Monday 2008-08-25

* Karsten
** Today: Hacking bugzilla, tackle the weekly reports.

* Andre
** Today: Discussions with Nokia on workflows/processes and process, triaging new bugs/syncing, more preparing for internal meeting
** Friday: Preparing for internal meeting, looking at Bugzilla code, triaging/syncing bugs

; Sunday 2008-08-24

* Karsten
** Today: Cold, headache. Need to blog.
** Last couple days: Hacking bugzilla, working on fixes and customizations.

; Friday 2008-08-22

* Andre
** Today: Preparing for internal meeting, looking at Bugzilla code, triaging/syncing bugs
** Tuesday: Syncing and reproducing issues, add moreinfo-closing policy to [[Bugs:Triage_guide]], internal report

; Tuesday 2008-08-19

* Andre
** Today: Syncing and reproducing issues, add moreinfo-closing policy to [[Bugs:Triage_guide]], internal report
** Yesterday: Reproducing issues, triage new bugs and syncing

* Karsten
** More bugs. More bugzilla.

* Andre
** Today: Reproducing issues, triage new bugs and syncing, work on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]]
** Friday: Sync reports and triage new ones; bugmail followup

* Bergie
** Today: Packaging changes made for karma, QB pager functionalities and maemo.org layout for deployment
** Friday: Karma debugging, preparing for the community elections

* Rambo
** Today: Quick look at the new virtual servers based on info from Ixonos &amp; Marcell, commented to Marcell.

; Sunday 2008-08-17

* Karsten
** Today, yesterday: Hacking bugzilla, working on fixes and customization.
** Attempting to become a laywer, just to understand branding policies. IANAL.

; Saturday 2008-08-16

* Dave
** Yesterday: (I'm cheating to report progress here before I go on holiday) Published and announced list of eligible voters in [[Task:Community_Council/Eligible_voters]]. Published scripts I used to extract eligible voters from list, and also some interesting karma stats (over 80% of maemo users have under 5 karma points). Populated a mysql database with the electorate, got all of the details of the GNOME election process, and published scripts, database schema and web app. Passed off deploying it to Henri, but it should be pretty much done - need only a host with a working local MTA to send voting tokens, and a web server with PHP enabled to host voting application. Also need to maemo theme the 3 web pages involved.
** Until 2008-08-31: On holiday.

; Friday 2008-08-15

* Andre
** Sync reports and triage new ones; bugmail followup
** Yesterday: Add Bugzilla version and Target Milestone &quot;4.1.1&quot; for 4.2008.30-2 and set fixed bugs correctly, work on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]]

* Dave
** Yesterday: Got list of accounts, resolved some karma issues, published final list of eligible candidates, pushed forward the council elections, announced profile changes and community council elections.
** Today: Test-run &amp; deploy election software, publish list of eligible voters, go on holiday.

; Thursday 2008-08-14

* Dave
** Yesterday: Pushed Community council elections, generate list of elligible candidates. Not helped by flaky maemo.org. Got voting software. 
** Today: Get list of maemo.org accounts + creation date. Publish list of elligible voters. Get voting software working. Try to get accurate karma counts for eligible candidate list. I have a couple of articles to write too. Announce profile updates and council elections.
Problems: Karma has been a problematic measure - some obvious people did not meet the karma requirement. Propose dropping karma requirement for voting for this first election, but bringing it back for future elections when karma is improved. 

* Andre
** Add Bugzilla version and Target Milestone &quot;4.1.1&quot; for 4.2008.30-2 and set fixed bugs correctly, work on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]]
** Tuesday: bugmail followup, Internal report, work on Task:Getting_Nokia_involved_in_bugs.maemo.org, prepare and have 100Days/Sprint4 meeting 

* Bergie
** Tracked site slowness and crashes, and missed user imports, karma recounts and social news updates to ISP's watchdog script that had gone out of control. Fixed the situation with Ferenc.
** Generated favicon.ico for the new logo and deployed it in Midgard style

; Wednesday 2008-08-13

* Dave
** Yesterday: Prepare &amp; attend Sprint meeting
** Today: Push community council election, get election software, nail down election rules, and announce the election. Announce updates to profile lists and ask people to update profiles.

* Bergie
** Installed new discussion forum version to internal and upgraded database structure

==Tasks==
To be committed in the sprint meeting from those listed in the [[maemo.org backlog]] or [[maemo.org proposals]].</text>
    </revision>
  </page>
  <page>
    <title>100Days/Sprint4</title>
    <id>1030</id>
    <revision>
      <id>33796</id>
      <timestamp>2010-05-04T09:38:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}

==Sprint 4 planning==
* Planning meeting organized in the [[IRC|#maemo-meeting IRC channel]] on Tuesday 2008/08/12 at [http://www.timeanddate.com/worldclock/fixedtime.html?month=8&amp;day=12&amp;year=2008&amp;hour=19&amp;min=0&amp;sec=0&amp;p1=0 19:00 UTC].
* Right after [[100Days/Sprint3]] review. 
* Holidays: Quim (9-31/aug), Niels (14 aug/6 sept probably no internet, No activity expected in Sprint 4), Dave (15 aug/31 aug, no internet).

There will be an IRC review meeting of this sprint on Tuesday 2008/09/02 [http://www.timeanddate.com/worldclock/fixedtime.html?month=9&amp;day=2&amp;year=2008&amp;hour=19&amp;min=0&amp;sec=0&amp;p1=0 19:00 UTC].

==Tasks==
[[: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 [[:Category:Accepted|accepted]] in the Backlog or [[:Category:Proposed|(re)new(ed)]] proposals.

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightGreen&quot;
| 2008-05-10 || Who's who in Maemo || Dave || '''DONE''' || Need to find a final home for [[People#Module_maintainers|the maintainer list]] 
|- style=&quot;background:Orange&quot;
| 2008-06-10 || [[Package_Categories|Better extras categories and debtags]] || Niels || 50% || Proposal drafted in wiki page, need to discuss on maemo-developers. (No progress will be made by me in Sprint4, need help!)
|- style=&quot;background:LightGreen&quot;
| 2008-06-10 || Forum interface to mailing lists released || Bergie || '''DONE''' || Forums are now in beta
|- style=&quot;background:Tomato&quot;
| 2008-07-22 || [[Task:Using garage.maemo.org]] || Ferenc || 0% || No progress
|- 
| 2008-08-12 || [[Task:Getting Nokia involved in bugs.maemo.org]] || Andre || 30% || Work on better organization of components in some products to fit better the scope of the corresponding Nokia developer teams, see [https://bugs.maemo.org/show_bug.cgi?id=3562 bug 3562] - still drawing the big picture and trying to link all components between Maemo Bugzilla and internal bug tracker and its affiliated development teams. Hopefully done for Sprint5.
|- 
| 2008-08-12 || [https://bugs.maemo.org/show_bug.cgi?id=3553 Work on Bugzilla weekly summary functionality] || Karsten || 20% || Progressing slowly.
|- style=&quot;background:LightBlue&quot;
| 2008-08-12 || Several smaller Bugzilla enhancements || Karsten || 70% || See [https://bugs.maemo.org/show_bug.cgi?id=1417 bug 1417], [https://bugs.maemo.org/show_bug.cgi?id=2463 bug 2463], [https://bugs.maemo.org/show_bug.cgi?id=3350 bug 3350] and some more, minor issues. Guided submission form pending, needs cleanup first.
|-
| 2008-08-13 || [[Task:Maemo brainstorm]] || Oskari || 0% || New feature to the site.
|- style=&quot;background:LightBlue&quot;
| 2008-08-13 || [[Task:Community Council]] || Henri || 80% || Dave handed off to Henri who to deployed election software. Database has been populated with electorate. Electorate list is up on wiki. Election announced on opt-in &quot;Community updates&quot; with mass mailer. Next up: some copywriting and actually processing the election.
|}

==Bugs in product Website==
The bugs assigned in the last sprint meeting are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=High&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= HIGH]. The bugs proposed for the next sprint are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=Medium&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= MEDIUM]. Only product/component maintainers can change this status. Comment on a bug if you want to push it up. Check also those marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=easyfix&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= EASYFIX].

What follows are the bugs that need special attention/progress.

For the record:

{{#bugzilla:
  |product=Website
  |status=!(Closed,Resolved,Fixed,Verified)
  |priority=High
  |order=priority
  |columns=id, priority, severity, modified,  product,  status, summary, to
}}

Proposed bugs for Sprint 4 (Medium priority):

{{#bugzilla:
  |product=Website
  |status=!(Closed,Resolved,Fixed,Verified)
  |priority=Medium
  |order=priority
  |columns=id, priority, severity, modified,  product,  status, summary, to
}}

==Activity log==
Latest activity report goes on top.

; Tuesday 2008-09-02

* Karsten
** Today: Prioritize remaining bugzilla issues, that need to be done before the Summit. Start working on them. And like everyone else, prepare Sprint meeting.
** Yesterday: Finalized some bugzilla patches.

* Andre
** Today: triaging new bugs, (mail problems), work on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]] (reorganizing components), prepare Sprint meeting, internal report
** Monday: triaging new bugs and syncing/forwarding,  porting a greasemonkey script to quickly insert prepared bug comments, start retriaging RESOLVED LATER bugs to get rid of that resolution

* Dave
** Yesterday: Got inbox down to 60 mails. The ones that each need more time &amp; effort.
** Today: Bring kids to their first day in their new schools, catch up on holiday backlog, prepare Sprint5 meeting for tonight, and ensure I have all the access I need to run the election from tomorrow.

* Quim
** Today: More email. Prepare my tasks for sprint meeting this evening.
** Yesterday: Landing. Email. Glad to see there was nothing really burning waiting for me.

; Monday 2008-09-01

* Karsten
** More bugzilla hacking the last days. Another dead bug, another feature implemented. Need to blog.

* Andre
** Today: triaging new bugs and syncing/forwarding, continue hacking on greasemonkey script and working a bit on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]] (reorganizing components), preparing Sprint meeting
** Friday&amp;Weekend: [[Task:Getting_Nokia_involved_in_bugs.maemo.org]] (reorganizing components), started porting a greasemonkey script to quickly insert prepared bug comments

* Dave
** Back from holidays too. Woot! Posted a reminder about the election yesterday, noticed that there are not many candidates.
** Today: Similarly burgeoning in-box. Catch up on election. Clear backlog &amp; plan the next 2 weeks.

* Quim
** Back from holidays!
** Today: Go through 1001 pending emails. Please resend if there is something really urgent.


; Friday 2008-08-29

* Andre
** Today: triaging new bugs and syncing, working on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]] (reorganizing components), maybe start porting a greasemonkey script to quickly insert prepared bug comments that I used in gnome bugzilla already
** Wednesday: More discussions with Nokia, triaging new bugs and syncing, getting on a plane

* Bergie
** Today: Publishing forums beta, fixing the half-finished developer list import, deploying the election software
** Yesterday: Imported user and community lists completely, went through the election software

; Thursday 2008-08-28

* Bergie
** Today: Upgrading bunch of packages, continuing email imports
** Yesterday: Imported community list successfully 

; Wednesday 2008-08-27

* Andre
** Today: More discussions with Nokia, triaging new bugs and syncing, getting on a plane
** Yesterday: Internal meeting about Error management, presentation about the maemo.org Bugmaster work; removed useless &quot;Next&quot; Target Milestone; internal weekly report
* Bergie
** Today: Starting the email imports

; Tuesday 2008-08-26

* Bergie
** Today: Multiple email support for forums, preparing for email import tomorrow.

; Monday 2008-08-25

* Karsten
** Today: Hacking bugzilla, tackle the weekly reports.

* Andre
** Today: Discussions with Nokia on workflows/processes and process, triaging new bugs/syncing, more preparing for internal meeting
** Friday: Preparing for internal meeting, looking at Bugzilla code, triaging/syncing bugs

; Sunday 2008-08-24

* Karsten
** Today: Cold, headache. Need to blog.
** Last couple days: Hacking bugzilla, working on fixes and customizations.

; Friday 2008-08-22

* Andre
** Today: Preparing for internal meeting, looking at Bugzilla code, triaging/syncing bugs
** Tuesday: Syncing and reproducing issues, add moreinfo-closing policy to [[Bugs:Triage_guide]], internal report

; Tuesday 2008-08-19

* Andre
** Today: Syncing and reproducing issues, add moreinfo-closing policy to [[Bugs:Triage_guide]], internal report
** Yesterday: Reproducing issues, triage new bugs and syncing

* Karsten
** More bugs. More bugzilla.

* Andre
** Today: Reproducing issues, triage new bugs and syncing, work on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]]
** Friday: Sync reports and triage new ones; bugmail followup

* Bergie
** Today: Packaging changes made for karma, QB pager functionalities and maemo.org layout for deployment
** Friday: Karma debugging, preparing for the community elections

* Rambo
** Today: Quick look at the new virtual servers based on info from Ixonos &amp; Marcell, commented to Marcell.

; Sunday 2008-08-17

* Karsten
** Today, yesterday: Hacking bugzilla, working on fixes and customization.
** Attempting to become a laywer, just to understand branding policies. IANAL.

; Saturday 2008-08-16

* Dave
** Yesterday: (I'm cheating to report progress here before I go on holiday) Published and announced list of eligible voters in [[Task:Community_Council/Eligible_voters]]. Published scripts I used to extract eligible voters from list, and also some interesting karma stats (over 80% of maemo users have under 5 karma points). Populated a mysql database with the electorate, got all of the details of the GNOME election process, and published scripts, database schema and web app. Passed off deploying it to Henri, but it should be pretty much done - need only a host with a working local MTA to send voting tokens, and a web server with PHP enabled to host voting application. Also need to maemo theme the 3 web pages involved.
** Until 2008-08-31: On holiday.

; Friday 2008-08-15

* Andre
** Sync reports and triage new ones; bugmail followup
** Yesterday: Add Bugzilla version and Target Milestone &quot;4.1.1&quot; for 4.2008.30-2 and set fixed bugs correctly, work on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]]

* Dave
** Yesterday: Got list of accounts, resolved some karma issues, published final list of eligible candidates, pushed forward the council elections, announced profile changes and community council elections.
** Today: Test-run &amp; deploy election software, publish list of eligible voters, go on holiday.

; Thursday 2008-08-14

* Dave
** Yesterday: Pushed Community council elections, generate list of elligible candidates. Not helped by flaky maemo.org. Got voting software. 
** Today: Get list of maemo.org accounts + creation date. Publish list of elligible voters. Get voting software working. Try to get accurate karma counts for eligible candidate list. I have a couple of articles to write too. Announce profile updates and council elections.
Problems: Karma has been a problematic measure - some obvious people did not meet the karma requirement. Propose dropping karma requirement for voting for this first election, but bringing it back for future elections when karma is improved. 

* Andre
** Add Bugzilla version and Target Milestone &quot;4.1.1&quot; for 4.2008.30-2 and set fixed bugs correctly, work on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]]
** Tuesday: bugmail followup, Internal report, work on Task:Getting_Nokia_involved_in_bugs.maemo.org, prepare and have 100Days/Sprint4 meeting 

* Bergie
** Tracked site slowness and crashes, and missed user imports, karma recounts and social news updates to ISP's watchdog script that had gone out of control. Fixed the situation with Ferenc.
** Generated favicon.ico for the new logo and deployed it in Midgard style

; Wednesday 2008-08-13

* Dave
** Yesterday: Prepare &amp; attend Sprint meeting
** Today: Push community council election, get election software, nail down election rules, and announce the election. Announce updates to profile lists and ask people to update profiles.

* Bergie
** Installed new discussion forum version to internal and upgraded database structure

==Tasks==
To be committed in the sprint meeting from those listed in the [[maemo.org backlog]] or [[maemo.org proposals]].</text>
    </revision>
  </page>
  <page>
    <title>100Days/Sprint5</title>
    <id>1172</id>
    <revision>
      <id>33797</id>
      <timestamp>2010-05-04T09:40:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}

==Sprint 5 planning==
* Planning meeting organized in the [[IRC|#maemo-meeting IRC channel]] on Tuesday 2008/09/02 at [http://www.timeanddate.com/worldclock/fixedtime.html?month=8&amp;day=12&amp;year=2008&amp;hour=19&amp;min=0&amp;sec=0&amp;p1=0 19:00 UTC].
* Right after [[100Days/Sprint4]] review.
* This sprint was reviewed on 2008-09-30 and is followed by [[Maemo.org Sprints/October 08]].

==Tasks==
[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:Orange&quot;
| 2008-06-10 || [[Package_Categories|Better extras categories and debtags]] || Niels || 50% || Proposal drafted in wiki page, need to discuss on maemo-developers. (No progress will be made by me in Sprint4, need help!)
|- style=&quot;background:white&quot;
| 2008-07-22 || [[Task:Using garage.maemo.org]] || Ferenc || 0% ||
|- 
| 2008-08-12 || [[Task:Getting Nokia involved in bugs.maemo.org|Better organization of bugs.maemo.org components]] || Andre || 30% || Work on better organization of components in some products to fit better the scope of the corresponding Nokia developer teams, see [https://bugs.maemo.org/show_bug.cgi?id=3562 bug 3562] - still drawing the big picture and trying to link all components between Maemo Bugzilla and internal bug tracker and its affiliated development teams. Hopefully done for Sprint5.
|- 
| 2008-08-12 || [https://bugs.maemo.org/show_bug.cgi?id=3553 Work on Bugzilla weekly summary functionality] || Karsten || 25% || Progressing... Slowly.
|- style=&quot;background:LightBlue&quot;
| 2008-08-12 || Several Bugzilla enhancements || Karsten || 90% || See [https://bugs.maemo.org/show_bug.cgi?id=1417 bug 1417], [https://bugs.maemo.org/show_bug.cgi?id=3350 bug 3350], [https://bugs.maemo.org/show_bug.cgi?id=3577 bug 3577] and some minor issues. Guided submission form pending, needs cleanup first.
|-
| 2008-08-13 || Plan for [[Task:Brainstorming new features]] || Oskari || 0% || Specification needs to be added to wiki.
|- style=&quot;background:LightGreen&quot;
| 2008-08-13 || [[Task:Community Council]] || Dave || '''DONE''' || Election kicked off, announced. All that's left is to stimulate debate, and declare winners.
|-
| 2008-09-02 || [[Task:Fast Server]] || Marcell || 0% || 
|- style=&quot;background:Orange&quot;
| 2008-09-02 || [[Task:Maemo_contributions]] to open source projects || Quim || 50% || Core projects identified
|- style=&quot;background:Tomato&quot; | Really stuck/delayed
| 2008-09-02 || [[Task:Maemo_public_roadmapping_process]] || Quim || 0% || I don't expect to have time to go through this in the current sprint. fwiw Fremantle roadmap to be shared, see &quot;Announce the Fremantle plans and libraries changes&quot; task below
|- style=&quot;background:LightGreen&quot;
| 2008-09-02 || Document explaining the open source positioning and strategy of Nokia in Maemo || Quim || '''DONE''' || Material ready, will be presented on Saturday
|- style=&quot;background:LightBlue&quot;
| 2008-09-02 || Explanation of the reasons why the closed source packages are closed || Quim || 50% || Working on draft of reasons
|-
| 2008-09-02 || [[Task:ITt_Collaboration]] || Henri || 10% || Started discussing the karma plugin Reggie
|- style=&quot;background:Orange&quot;
| 2008-09-02 || High plan for[[Task:Improving maemo.org]] || Dave || 20% || IRC meeting on maemo.org clarified goals, and we've been collecting design proposals since. The roles of maemo.nokia.com, Forum Nokia and maemo.org need to be clarified, we need to decide on a final design for the front page and move on to content reorganisation. Need to move forward with the community section and propose something for the developer section. Should get designers involved early.
|- style=&quot;background:LightGreen&quot;
| 2008-09-02 || [[Maemo_Summit_2008/Organization#Program|Summit program defined]] || Quim || '''DONE''' || Remaining details to be ''healed'' themelves
|- style=&quot;background:LightGreen&quot;
| 2008-09-02 || [[Maemo_Summit_2008/Organization#Merchandising|Maemo merchandising ready]] || Jussi || '''DONE''' || Merchandising landed in OSiM &amp; Summit venues
|- style=&quot;background:LightGreen&quot;
| 2008-09-02 || [[Maemo_Summit_2008/Organization#Marketing_.26_coverage|Marketing &amp; coverage]] || Quim || '''DONE''' || Whatever was done, was done already
|- style=&quot;background:LightGreen&quot;
| 2008-09-02 || [[Maemo_Summit_2008/Organization#Social_events|Summit social events]] || Who? || '''DONE''' || Whatever was done, was done already
|- style=&quot;background:LightGreen&quot;
| 2008-09-02 || Announce the Fremantle plans and libraries changes || Quim || '''DONE''' || Delivered through the week, a summary is still needed though
|}

==Bugs in product Website==
The bugs assigned in the last sprint meeting are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=High&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= HIGH]. The bugs proposed for the next sprint are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=Medium&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= MEDIUM]. Only product/component maintainers can change this status. Comment on a bug if you want to push it up. Check also those marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=easyfix&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= EASYFIX].

What follows are the bugs that need special attention/progress.

For the record:

{{#bugzilla:
  |product=Website
  |status=!(Closed,Resolved,Fixed,Verified)
  |priority=High
  |order=priority
  |columns=id, priority, severity, modified,  product,  status, summary, to
}}

==Activity log==
Latest activity report goes on top.

; Tuesday 2008-09-30
* Andre
** Today: triage Browser bugs, discuss about 4.1.1 vs 4.1.2 mess (bug 3747), triage new bugs, sync/forward bugs, verifying reports fixed for SSU2, internal report, Sprint meeting
** Yesterday: triaged Browser bugs, add Target Milestones and Versions for 4.2008.36-5, syncing Target Milestones (4.1.2 vs 4.1+) to provide basic ChangeLog functionality

* Dave
** Yesterday: Worked on a mock-up for the front page that I'm not quite happy with, attended maemo.org meeting on Saturday (and sent notes from summit)
** Today: Refine my mock-up based on other ideas from people, and start working with Tim on getting his community pages ready to deploy. Contact Marcelo to see if he can propose a layout for the community page which uses Tim's work

* Niels
** Yesterday: Worked on [[Task:Reducing_number_of_external_repositories]], testing of new servers
** Today: Work more on [[Task:Reducing_number_of_external_repositories]], prepare for meeting.

* Quim
** Yesterday: [[:Image:2898548020_f296152527_b.jpg|maemo.org homepage mockup]]
** Today: Publish reasons why closed. Prepare my proposed tasks and bugs for today's sprint planning meeting.

; Monday 2008-09-29
* Andre
** Today: triage Browser bugs, add Target Milestones and Versions for 4.2008.36-5 in Bugzilla
** Last day: clean up &quot;System software/General&quot; in Maemo Bugzilla, [[Task:Getting_Nokia_involved_in_bugs.maemo.org]] (reorganizing components), mailer bugs, Maemo meeting on Saturday

* Niels
** Friday &amp; weekend: Worked on extras, attended improving maemo.org meeting
** Today: Try to get some external repositories closed which have the same packages as extras or are almost similar. Contact council to help me on this. Do some testing and tuning on new servers.

* Quim
** Friday &amp; weekend: Reasons why the closed source packages almost ready to go. Participation in Improving maemo.org meeting + first dirty mockup on paper.
** Today: Hopefully publish reasons why closed + maemo.org homepage mockup.

; Friday 2008-09-26
* Niels
** Yesterday: Worked a bit on the external repositories task and some general maintenance work.
** Today: Work on external repositories task and Extras tasks.
* Dave
** Yesterday: Started to get back in the rhythm, cleared most of backlog from Berlin (still need to write up notes from maemo.org discussions).
** Today: I'm giving a lecture this afternoon on starting a company, and need to prepare some material. I don't anticipate getting much done on Maemo today, outside writing up my notes.
* Quim
** Yesterday: Full day meeting. Not much related to my tasks here.
** Today: drafting Explanation of the reasons why the closed source packages are closed.

; Thursday 2008-09-25
* Andre
** Today: triage/sync (new) bugs, go through applet bugs in Bugzilla Desktop component and if required, compare with/move to corresponding Applications' components (e.g. Clock, Contacts etc - Seems to be confusing to reporters).
** Tuesday: clean up &quot;System software/General&quot; in Maemo Bugzilla, [[Task:Getting_Nokia_involved_in_bugs.maemo.org]] (reorganizing components), internal report
* Dave
** Today: Get back in the habit of Sprint summaries. Publish slides &amp; notes from Maemo summit website session, blog IRC meeting, short day with Anne doing her exams &amp; me dropping off &amp; picking up the kids.
** Earlier this week: Follow up contacts from OSiM World and Maemo Summit, paperwork, [http://twitter.com/nearyd/statuses/931831894 lost a day] trying to fix performance issues in my computer
* Niels
** Yesterday: Worked on new servers, blogged about external repositories, worked on status script for external repositories, moved downloads stats to new servers.
** Today: Work on external repositories task and Extras tasks.

* Quim
** Yesterday: drafting Explanation of the reasons why the closed source packages are closed.
** Today: drafting Explanation of the reasons why the closed source packages are closed.

; Tuesday 2008-09-23

* Andre
** Yesterday: syncing a lot of reports, triage the new reports, setting up scratchbox environment on my laptop
** Today: clean up &quot;System software/General&quot; in Maemo Bugzilla, [[Task:Getting_Nokia_involved_in_bugs.maemo.org]] (reorganizing components), internal report

* Niels
** Yesterday: Lot of emails processed, accounts created, user help etc.
** Today: Work on Extras/autobuilder related issues and help with maemo.org move.

* Quim
** Last days: Had an amazing time at OSiM and Maemo Summit.
** Today: Landing at office, not much real perfomrance expected.

; Monday 2008-09-22

* Niels
** Last week: Had an amazing time at OSiM and Maemo Summit.
** Today: Wade through huge amount of email and do a lot of small tasks I have neglected while in Berlin. Try to make concrete plans out of the discussions I have had the last few days.

; Tuesday 2008-09-16

* Karsten
** More bugzilla. Finished another few patches, hacks and custom tweaks. Working with community members on interoperability with an #maemo IRC bot.
** Fixed Quim in this log. ;) &amp;nbsp; No shirt.

* Quim
** Friday and Monday: Got Fremantle plans announcement to final draft + 101 last minute Summit little details. Got my maemo.org alternative shirt for Friday night.  :)
** Today: Info for Summit speakers, blog post OSiM &amp; Summit + flight to Berlin.

; Monday 2008-09-15

* Karsten
** Today: Same. Plus, need to blog.
** Last days: Continued bugzilla hacking. Got the hang of branding policies, still not a lawyer, though. Fixed some issues, some good lizard wrangling left. Need more root passwords. ;)

*Ryan
** Today: Finish my part of the Summit presentation, bug Niels about a few issues with the blog, propose first community issue for the council, bring Eduardo up to speed.
** Weekend: First blog announcement, council chair selection finished (me), began campaign to harass council members. ;)

* Andre
** Today: Triage new bugs, mail, retriage Desktop &gt; User Interface bugs.

; Friday 2008-09-12
* Ryan
** Yesterday: Council votes in, many thanks to everybody involved and congratulations to my fellow members!
** Today: Kick off the new [http://maemo.org/community/council/ council blog] (thanks, Niels!), look into getting the basic organization structures set up for the council, maybe pick up the first community issue to help with that.

* Dave
** Yesterday: Paperwork :( Announced election results. Congratulations &amp; good luck to new community council.
** Today: Publish a first rough draft of a plan for maemo.org - not pretty, but a start.

* Niels
** Yesterday: Worked on new servers, brought over a backup of the live system for testing. Worked on plan for Extras and summit
** Today: Work on Extras plan and more summit preparation. Setup council pages.

* Quim
** Wednesday &amp; Thursday: Fremantle plans announcement. Completed draft document explaining the open source positioning and strategy of Nokia in Maemo.
** Today: Start completing Fremantle plans announcement.

; Thursday 2008-09-11

* Andre
** Yesterday: Hack on Greasemonkey script to save time forwarding/syncing reports, sync
** Today: Hack on Greasemonkey script to save time forwarding/syncing reports, [[Task:Getting_Nokia_involved_in_bugs.maemo.org]] (reorganizing components), forward some bugs

* Niels
** Yesterday: Worked on the new server cluster, prepared for summit.
** Today: More work on new cluster, work on plans for Extras, summit preparations.

; Wednesday 2008-09-10

* Dave
** Yesterday: Started working on maemo.org revamp planning.
** Today: Carry on. I want to get something in draft form into the wiki today.

; Tuesday 2008-09-09

* Andre
** Yesterday: Triaged new bugs, triaged all remaining RESOLVED LATER bugs, [[Task:Getting_Nokia_involved_in_bugs.maemo.org]] (reorganizing components)
** Today:  Mostly syncing/forwarding stuff and getting through old mail, internal report

* Niels
** Yesterday: Tried to catch up on mail and urgent matters. Helped out autobuilder users who were waiting for me to fix things. Updated download statics.
** Today: Add log of sprint meeting to maemo-meeting page. More catching up on email. Prepare talk for OSiM.

* Dave
** Yesterday: Handle a couple more election issues, GNOME release notes.
** Today: Web-site: categorise areas where work needs doing, identify resources definitely available, start working on breaking down tasks to manageable chunks

* Quim
** Yesterday: Fremantle plans announcement.
** Today: Fremantle plans announcement. Document explaining the open source positioning and strategy of Nokia in Maemo.

; Monday 2008-09-08

* Dave
** End of last week: get election running, announce it on mailing lists, issue ballots, break web app &amp; fix it. Tried to defuse Darius issue, didn't have a positive effect.
** Today: Re-issue some voting tokens. Start working on proposal for website revamp. Also work on GNOME Mobile release notes (on my own time).

* Andre
** Friday:  Triaged new bugs/syncing/forwarding
** Today: Triaged new bugs, triage RESOLVED LATER bugs, [[Task:Getting_Nokia_involved_in_bugs.maemo.org]] (reorganizing components)

* Bergie
** Today: Ran some voter counts for Dave, wrote workaround for Quim's broken RSS feed.

* Quim
** Friday: Details on Summit schedule. Fremantle plans announcement.
** Today: Fremantle plans announcement.

* Niels
** Today: Try to catch up on email and urgent matters after holiday.

; Friday 2008-09-05

* Bergie
** Yesterday: Fixed Dave's broken voting commit, ran some voter counts
** Today: Started ITT Karma API discussion with Reggie, fixed lost comments from application catalogue

* Quim
** Yesterday: Working on Fremantle plans announcement. Sorted out lightning sessions in Summit schedule and contacted Eric for final review.
** Today: Close Summit schedule. Fremantle plans announcement

; Thursday 2008-09-04

* Quim
** Yesterday: [[100Days/Sprint5]] page updated. Mail. OSiM related: invoices and ad.
** Today: Planning OSiM DevSesh. Summit schedule.

; Wednesday 2008-09-03

* Rambo
** Yesterday: Sprint5 meeting, explanatory and status mails about new servers
** Today: Testing LB monitoring URL with new servers, set up to answer with IP as hostname as well
* Bergie
** Yesterday: Working on some Medium bugs, Sprint5 meeting
** Today: Help Dave get elections running, getin in contact with Reggie from ITT
* Quim
** Yesterday: Scanned pending email in maemo.org lists. More email. Facilitated Sprint5 planning meeting. Minor tasks for OSiM organization: logos, bios, invoices.
** Today: Update the [[100Days/Sprint5]] page reflecting agreements in the planning meeting. Organize my (many) committed tasks for this sprint. More mail.</text>
    </revision>
  </page>
  <page>
    <title>2010 Agenda</title>
    <id>2960</id>
    <revision>
      <id>22159</id>
      <timestamp>2009-11-08T21:35:34Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[2010 Agenda]] moved to [[Task:2010 Agenda]]: this is a Task</comment>
      <text xml:space="preserve">#REDIRECT [[Task:2010 Agenda]]</text>
    </revision>
  </page>
  <page>
    <title>2012 Device Program</title>
    <id>5168</id>
    <revision>
      <id>48509</id>
      <timestamp>2012-06-17T06:12:19Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>/* New Apps for Nokia Store */</comment>
      <text xml:space="preserve">Nokia is sponsoring a maemo.org device program consisting of 60 Nokia N9 + 40 Nokia N950 with free delivery.

One of the goals of this program is to help reducing the list of [http://www.developer.nokia.com/Community/Wiki/Apps_Missing missing apps] (or alternatives &amp; related features).

The devices will be distributed through 4 activities:

* 11 N9 + 14 N950 for the maemo.org Coding Competition.
* 15 N9 + 10 N950 for the maemo.org Community Awards.
* 17 N9 + 8 N950 devices for existing community apps being published at the Nokia Store.
* 17 N9 + 8 N950 devices for Qt 5 mobile projects.

75% of these devices should be in the hands of their new owners by the end of June. The Coding Competition runs through the Summer and the prizes will be awarded at the end.

The details of each of these programs are being [http://talk.maemo.org/showthread.php?t=84322 discussed] as we speak. Watch this wiki page and follow the related threads for details and involvement.

== Coding Competition ==
{{Main|maemo.org Coding Competition 2012}}
* [http://talk.maemo.org/showthread.php?t=83761 planning forum thread]

== Community Awards ==
{{Main|Community Awards}}
Community Awards (short. CA) are meant to be way of recognising people, that, for months/years contributed - and continuously contribute - to Maemo Community. Unlike other programs, target audience of CA aren't only developers - suitable candidates include (also) dedicated testers, helpers, hardware modders, contributing participants of brainstorms and so goes on. Usually, it's a mix of all presented above.

== New Apps for Nokia Store - COMPLETE ==
{{Main|Summer'12 Device Program/New Apps for Nokia Store|}}
There are many interesting applications for the Nokia N9 that can be found in the community channels but no at the Nokia Store. Some of them would be well received by the N9 users at large, don't you think? This activity brings an incentive for community developers to cover that last mile.

== Qt 5 Mobile Projects - COMPLETE ==
{{Main|Summer'12 Device Program/Qt 5 Mobile Projects}}
We are looking for brave &amp; experienced developers willing to port or develop apps running on top of Qt 5 before its finally release. Currently [http://qt-project.org/wiki/Qt-5-Alpha Qt 5 alpha] is released, the beta version is expected during June and the final in August/September.</text>
    </revision>
  </page>
  <page>
    <title>3G modem</title>
    <id>2866</id>
    <revision>
      <id>21243</id>
      <timestamp>2009-10-29T13:39:25Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[3G modem]] moved to [[USB GPRS]]: given N900 hardware feature of GPRS this page has horrible name, proposal for alternative</comment>
      <text xml:space="preserve">#REDIRECT [[USB GPRS]]</text>
    </revision>
  </page>
  <page>
    <title>ALARMED Commands List</title>
    <id>4805</id>
    <revision>
      <id>45794</id>
      <timestamp>2011-11-22T02:47:10Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45770 by [[Special:Contributions/70.135.114.247|70.135.114.247]] ([[User talk:70.135.114.247|Talk]]) SPAM</comment>
      <text xml:space="preserve">The purpose of this article is to collect a list of [http://maemo.org/packages/view/alarmed/ Alarmed] codes for beginners to use. The idea came from a [http://talk.maemo.org/showthread.php?t=64519 talk.maemo org thread] which contained the instructions for setting up an [[#Radio1 Alarm Clock|Internet radio alarm clock]]

They should be put in the following format:

* Name
* Description
* Code

Which should be all the information we need.

==List of Phone Control commands==

A comprehensive list of commands for Phone Control that work as commands from Alarmed can be found in the [[phone control]] article.

==Radio1 Alarm Clock==

This code will make your phone startup the [[Nokia N900|N900]] stock media player and connect to Radio 1 (UK station) using your wi-fi (wi-fi is recommended for connection to be made). It is a good idea to set up a regular alarm clock for 5 mins after just in case there is an internet connection error ... wouldn't want you to be late for work.

 dbus-send --print-reply --dest=com.nokia.mediaplayer /com/nokia/mediaplayer com.nokia.mediaplayer.mime_open string:http://www.bbc.co.uk/radio/listen/live/r1.asx &gt; /dev/null

==Internet Radio Alarm Clock using KMPlayer==

If you have KMPlayer installed, you may find it less prone to halting from buffering issues than the stock Media Player.  Add this as a Command Execution string in Alarmed to play an internet radio stream's URL (in this case, the stream for WCLV):

 /opt/kmplayer/bin/kmplayer http://auggie.wclv.com/wclvmp3

==Set Speaker Volume==

You may want to set the speaker volume to a certain level before starting an internet radio station.  50 in the command below sets the volume level to 50%, replace 50 with whatever % volume is desired (0 - 99).

 dbus-send --type=method_call --dest=com.nokia.mafw.renderer.Mafw-Gst-Renderer-Plugin.gstrenderer /com/nokia/mafw/renderer/gstrenderer com.nokia.mafw.extension.set_extension_property string:volume variant:uint32:50

==Play a sound file==

This uses the play-sound command to play a sound file.

'''Important note:  play-sound always plays a sound file at full volume, regardless of the volume set by command or by use of the volume rocker.'''  Therefore it is essential when calling a file with play-sound to be sure the file is recorded at the volume that is desired for playback.  Typical sound files will be at the level of 0 or -3 dB attenuation, which can blow speakers at full volume.  If you call a sound file with play-sound, it's best to make a new copy of the file at much lower volume using sound editing software such as GoldWave (or audacity on Linux+Mac+Windows, or 'sox' on the command line for any of those systems with &quot;-v &lt;ratio&gt;&quot; option)
 play-sound ''/path/filename.wav''

[[Category:Beginners]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>A message to the Maemo Community</title>
    <id>4405</id>
    <revision>
      <id>45787</id>
      <timestamp>2011-11-22T02:42:59Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45762 by [[Special:Contributions/70.135.114.247|70.135.114.247]] ([[User talk:70.135.114.247|Talk]]) SPAM</comment>
      <text xml:space="preserve">This profanity-infused epic rant was included in a closed-source binary [http://talk.maemo.org/showthread.php?t=59700 released] earlier this month by one of the top (ranked fourth in [http://maemo.org/profile/list/ total karma], and second place in [http://maemo.org/profile/list/category/products/ product karma]) members of the Maemo community. I thought it was funny and sad and, aside from its homophobic and misogynistic language, largely justified and therefore worth republishing to a larger audience here on the Maemo wiki.

'''If &quot;profanity-infused epic rant&quot; doesn't sound like something you want to read, [http://talk.maemo.org/showpost.php?p=775543&amp;amp;postcount=37 here is a good summary] you can read instead.'''

:Ah, the Maemo Community... In a time where Nokia's support for the N900 is shit, the community is said to be many members' reason for still keeping their N900. Why?
:It's overrun with bitch-ass fanboys who can't even see over the bullshit in their posts. You're the Nokia equivalent of Apple's iTards, 'cept you defend a device that can only dream of selling as much as the iPhone has. And I don't even fucking like Apple!
:This is mainly due to your habit of rimming Nokia; how can you see anything else with ass in your fugly faces? I guess giving it to Nokia makes you still think you can get some.
:The Community Council (henceforth referred to as Benedict Arnold). Ah, a fucking joke if I ever heard one.
:'The Council's mission is to &quot;represent the Maemo community's best interests to Nokia[...]&quot;'.
:Right, what improvements from Nokia have they brought you?
:Instead, all they do is defend Nokia in cases where it does not deserve to be defended.
:Yep, that's a Benedict Arnold for you: To Serve Nokia and Spread Nokia Bullshit.
:The Member defending Nokia in the case of Flash: It's hard to see whilst you're bumming Nokia, but they're not delivering an official update to MeeGo.
:Sorry if it comes as a surprise. Why would Nokia bother with Flash, even, in that case?
:And when Adobe seem to be offering it for other platforms, guess what? It's Nokia's fault - not Adobe's, idiot.
:Oh, and congrats on your vapourware project: Shepherd. I have to give you credit there - that is the best karma-whoring scheme I've seen in a while. Just like your &quot;Qt Tablet Encoder&quot; (which, FWIW, did look good on paper), eh?
:Of course, I can't defend Adobe since Flash Player is closed - the same thing I'm berating Nokia for - but it's hard not to call you out on your bullshit.
:To another: Your article was a good start, but you soon went back to lubricating that Nokia cock that's jammed up your ass.
:Like the last time when they laid you off (loyalty, eh? God knows you seem to be a glutton for punishment),
:they're still fucking you now, like a little bitch.
:Ah, the self-proclaimed &quot;Super Testers&quot;.
:Plainly put: You suck.
:I won't extend that sentiment as it'd be unclear who'd be more offended: you or genitalia for being placed in the same sentence as you.
:There's nothing &quot;super&quot; about you; my balls are more super than you, dickless cunts.
:The last time I uploaded an app there, none of you touched it and nor did you even mention it in your reports.
:It's skets like you and the idiotic QA rules devised by retards that is resulting in everyone heading for Extras-Devel.
:I'm not sure what's more sad, that or the fact those rules were devised so that Extras could be enabled by default.
:The funny thing here is that Nokia are having doubts about doing the same in MeeGo (and there was me thinking it was meant to be open... decisions and code... We'll see just exactly what you choose to open in your variant, Nokia) and that their own repository, Ovi, happens to be way more lax when it comes to requirements and rules.
:Naturally, this one's gonna stay in Extras-Devel to encourage its use and because I don't want it being reviewed by spastics, many of whom wouldn't have the first idea where to start in Scratchbox but get all wet when they see &quot;Super Tester&quot; next to their name.
:Ah, Nokia, I seem to remember you touting an &quot;open&quot; device. If so, why are most of your components closed and requests to have source to said component either ignored or WONTFIX? In fact during the install of this program, I had to modify the volume applet with sed to stop it from interfering because it's closed!
:And then there are those posting on Talk that it is open and then tens and tens of these tiny-dicked fanboys/pussyholes with no knowledge of the platform for shit jump on the Thanks! button in hope that Nokia will cum in their mouths.
:Fuck you, cunts; it's spastics like you fucking up the community. Go back to sucking a Nokia dick in private, fucking knobjockey wastemen, and repeating their bullshit. Do tell your experience in a Talk post; I'm sure many other like-minded retards will hit the Thanks! button on your posts.
:Another group that brings me laughs: Those saying that Nokia &amp;gt; Google in terms of both privacy and openness. Bitches, please. Read up on &quot;My Nokia&quot;. Openness? Haha, even the largely populated Nokia Binaries repository only has a fraction of what's on your &quot;open&quot; device.
:Oh, to that guy demanding donations in his signature and then whining he's only recieved a few: YOU DON'T FUCKING DESERVE THEM. Your package just Depends on others' hard work and consists of running a few commands in its postinst, and even those aren't original - they were posted a long while back.
:You're a fucking insult to those making proper programs (not vapourware ones), you know, with GUIs an' all.
:And to that Frenchman on IRC who feels the need to add a comment about me everytime my name is mentioned: Fuck off.
:Despite my apologising to you for my undeserved comments towards you, you still feel the need to make them about me, now, esp. when I'm not there.
:Sure... I'm no looker, I skip instead of walking and I lack social skills.
:But, still, do tell me: How the fuck do *you* manage to get girls? The only time I ever saw you (thank God),... well, put it this way: You wouldn't be Weight Watchers' first choice when it came to picking a rep. What happened? You couldn't locate your knob amidst all that flab when trying to stick it into a blow-up doll? Gave up and attached a strap-on to it and took it in the back? A shame it's had to come to this, as I did like you, believe it or not.
:If any of you feel offended by the above, feel free to remove my programs (incl. rootsh - yes, bitches, that also happens to be mine), but know that this message is being displayed everytime this is run. I'd feel better knowing that my programs weren't being used by bellends who can't tell their ass from their mouth.
:Consider this message and program (my last, incidentially) to be a present to a shitty community. (The picture by Russian exiles in Switzerland talking of how the tsars run everything and how the Church mislead you could be applied to this community, with Nokia at the top and the Benedict Arnolds with their tosser fanboys underneath.)
:Oh, how liberating it's been to leave this community and its accumulated collection of wankers and fuckwads who smile their jizz-covered teeth in anticipation of recieving a creampie from Nokia in the ass after they write their post defending them - be it on Flash or their supposed openness. Please feel free to pass on this message when you see it.
:Call me motherfuckin' Santa Claus, 'cause I leave your mums with a white chin. Skeet skeet skeet.
:If you are able to look at both sides of the coin; see Nokia's bad as well as bad consistently, then please know that the above doesn't apply to you. After all, they have been known to make good decisions (hint: GTK).
:P.S. Thank you to the few friends who didn't give Nokia head at every chance they got I did make.
:P.P.S. To those stating &quot;I'm no fanboy!&quot;, whilst still managing to get tiny hard-ons at the mention of Nokia putting Angryman 2 into the Ovi Store, you are, bitches, right down to that Nokia dick you're humping. Have fun, and don't forget to check for diseases.

[[Category:Community]][[Category:Community Council]][[Category:Talk]]</text>
    </revision>
  </page>
  <page>
    <title>Accelerating www</title>
    <id>2760</id>
    <revision>
      <id>20476</id>
      <timestamp>2009-10-19T15:18:34Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Accelerating www]] moved to [[Speed up web browsing]]: Move to a more descriptive name</comment>
      <text xml:space="preserve">#REDIRECT [[Speed up web browsing]]</text>
    </revision>
  </page>
  <page>
    <title>Accelerometers</title>
    <id>1874</id>
    <revision>
      <id>35885</id>
      <timestamp>2010-06-16T14:12:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[N900 accelerometer]]</text>
    </revision>
  </page>
  <page>
    <title>Accessing Windows CIFS</title>
    <id>48</id>
    <revision>
      <id>45789</id>
      <timestamp>2011-11-22T02:44:39Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45765 by [[Special:Contributions/70.135.114.247|70.135.114.247]] ([[User talk:70.135.114.247|Talk]]) SPAM</comment>
      <text xml:space="preserve">==Device Support==

===N900===

{{wikify|1=http://talk.maemo.org/showthread.php?t=38536}}
The [[Nokia N900|N900]] does not support CIFS/SMB by default but you can add support for CIFS. 

===N800 / N810===

{{ambox|
text=This just works out of the box if you've got a [[Nokia N800|N800]] or a [[Nokia N810|N810]] with a recent OS2008 version (the very first one did not have CIFS/SMB support). Open the File Manager and after a while you will see Shared folders in the tree on the left.}}

===770===

Accessing files on a Windows PC from the Nokia 770. Your PC is accessible through Wifi—either it is on a LAN (with a Wifi access point or router), or it can establish an ad-hoc connection (e.g. a laptop). You would like to share files in a directory on that PC with the 770 through the wireless LAN, without having to link them up with the USB cable or extract the MMC.

==Step by Step tutorial for beginners==

{{wikify|1=http://talk.maemo.org/showthread.php?t=38536}}

===On the PC===

Find out or configure the PC's network setup. We must have :

# an IP address, existing or invented. Here we will use &lt;code&gt;10.10.10.10&lt;/code&gt; 
# the name of the workgroup (or domain, on an enterprise LAN) in which the PC participates. Here we will use &lt;code&gt;noworknogroup&lt;/code&gt; 
# the name of the user in the active session (generally shown in the start menu). Here we will use &lt;code&gt;urbancowboy&lt;/code&gt;
# the password for that account, if there is one. Here we will use &lt;code&gt;secretpassword&lt;/code&gt;

Now we must create a 'network share', a directory that will be accessible through the network.

Here we create a directory named &lt;code&gt;C:\Nokia770&lt;/code&gt;. Right-click this directory in Explorer and choose ''&quot;Sharing and security&quot;'' (''or something like that, I don't have an English Windows version, please correct if wrong'' !)

In the &quot;Network share&quot; frame you need to check &quot;Share this directory on the network&quot;.

Then you will need to enter a name under which the share will appear on the network. It doesn't need to be the same as the directory name. Here we will keep the default &lt;code&gt;Nokia770&lt;/code&gt;.

There is also a checkbox that specifies if the share will be 'read-only' from the network or if other machines will also be allowed to write to your PC. The choice is yours...

After you confirm the dialog box the icon for the directory in Explorer will change to show that it is &quot;served&quot;. Now we are ready on the PC side.

===In between===

We are going to add a small bit of software to the tablet, made available by itT user 'fanoush' at the following address:

* [http://handhelds.org/~fanoush/maemo/cifs.1.2006.26-8.tar.gz  770 first OS2006 release]
* [http://handhelds.org/~fanoush/maemo/cifs.2.2006.39-14.tar.gz 770 second OS2006 release]
* [http://handhelds.org/~fanoush/maemo/cifs.N800.2.2006.51-6.tar.gz N800 second OS2007 release]

In case of problems I have also made it available on my own site :

* [http://fredp.lautre.net/770/cifs.tgz  for first OS2006 release]

It is not a fast server but is unrestricted and the file is small (105 kB).

Either way we will suppose that the file ends up in the usual '''Documents''' directory that you see in the Maemo File Manager.

===On the Nokia===

You must have Xterm installed and some way to become &quot;root&quot; (and not flinch at the command line...).

Establish the Wifi link between Nokia and network or PC.

As root in xterm we must now :

&lt;ol&gt;
&lt;li&gt;
Go to the actual directory that shows up as 'Documents':
&lt;pre&gt;
cd /home/users/MyDocs/.documents
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Create a directory in which we will &quot;see&quot; the network share:
&lt;pre&gt;
mkdir myPC
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Extract the contents of &lt;code&gt;cifs.tgz&lt;/code&gt;, which creates the file &lt;code&gt;cifs.ko&lt;/code&gt; in the current directory (you can check by typing &lt;code&gt;ls&lt;/code&gt;).
&lt;pre&gt;
tar xvzf cifs.tgz
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
All of the above needs to be done only once. Now comes the fun part of actually connecting the two machines, which takes two commands. The first one loads the cifs.ko kernel module, &quot;teaching&quot; the system how to understand this kind of network share, this should yield a message like &quot;Now using cifs.ko&quot;:
&lt;pre&gt;
insmod ./cifs.ko
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
If there is no error, we can proceed to &quot;mount&quot; the network share into our guest directory, so that the files on our PC will appear to be also on our tablet. This is a long, detailed command and all the pieces need to be just right, so double-check it, again, if there is no error message, you can type:
&lt;pre&gt;
ls myPC
&lt;/pre&gt;
to check if your PC's files appear on the tablet. (replace the italic parts with your own details of course - type as one single line.)
&lt;pre&gt;
mount -t cifs //_10.10.10.10/''Nokia770_ myPC -o domain=noworknogroup,user=urbancowboy,password=secretpassword
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

If the mount command does not respond, check that any firewall on your PC allows devices on the local network to access it. With ZoneAlarm, for example, you'll need to add the IP number of the 770, or your whole DHCP number range, to your &quot;trusted&quot; zone. With MS XP's build-in Internet Connection Firewall, for another example, you can add port 445 (TCP) for cifs.

Now your share will appear as the &lt;code&gt;myPC&lt;/code&gt; directory under &lt;code&gt;Documents&lt;/code&gt; in the Maemo File Manager.

''Note'': these last two commands will need to be issued again each and every time you reboot your tablet. If you are going to use this often it might pay to read a Linux tutorial and learn how these two commands can be saved to a two-line script, to save future typing...

''Note'': If you are in a network, if you do &lt;code&gt;smbtree&lt;/code&gt; you will see all sharing hosts, if you need to connect to it (and you want to use cifs) you will type &lt;code&gt;smbtree -d 3&lt;/code&gt; and read at the line where: &quot;Connection to xx.xx.xx.xx&quot; and this is the wanted ip.

[[Category:Connectivity]]
[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Actman</title>
    <id>4647</id>
    <revision>
      <id>45790</id>
      <timestamp>2011-11-22T02:45:03Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45766 by [[Special:Contributions/70.135.114.247|70.135.114.247]] ([[User talk:70.135.114.247|Talk]]) SPAM</comment>
      <text xml:space="preserve">Desktop Activity Manager, or D-A-M, or DAM, or actman, is a command line tool and a status menu widget that allows saving and restoring of the desktop. There can be multiple saved desktops so it is possible to have different activities (desktop profiles) and switch between them by saving the current one and loading another.

For discussion about actman visit [http://talk.maemo.org/showthread.php?t=47373 this thread].

== Status menu widget ==
The status menu widget is a front-end to the command line tool. While it doesn't have all its features it is easier to use and handles all common user actions.

[[Image:actman-screenshot1.png|thumb|300px|alt=Screenshot of Actman main page|Main page]]

The main page includes the following actions:
* Select: Saves the current activity and switches to the selected (highlighted) activity.
* New: Create a new activity that is a duplicate of the current one
* Rename: Renames the selected activity
* Delete: Deletes the selected activity. It is not possible to delete the current activity
* More: Shows more actions

[[Image:actman-ss-more.png|thumb|300px|alt=Screenshot of Actman more actions|More actions]]

When clicking &quot;more&quot;, some more actions are shown:

* Store current: Saves the current activity without switching to a new one
* Reload current: Reloads the current activity
{{clear}}

== Command line tool ==
The command line tool is named &quot;activity&quot; and is installed in &lt;code&gt;/usr/bin&lt;/code&gt;. It should be run as user (and not as root!) and it includes a help screen:

&lt;pre&gt;
~ $ /usr/bin/activity help  
Activity manager 1.1

Available commands:

  change DEST		Store current activity and load DEST.
  clone ACT1 ACT2	Create activity ACT2 as a clone of ACT1. Current
  			activity will not be changed.
  create ACTIVITY	Create a new (empty) activity.
  current		Print the current activity name.
  delete [-f] ACTIVITY	Same as remove.
  help			This help.
  list			List available activities.
  load [-f] SRC		Load activity SRC. If -f is used then it will be
  			allowed to re-load the current activity.
  new ACTIVITY		Same as create.
  reload		Reload current activity without storing first.
  remove [-f] ACTIVITY	Remove activity ACTIVITY. If -f is used then there
  			will be no questions asked.
  rename ACT1 ACT2	Rename activity ACT1 to ACT2.
  runstart [ACTIVITY]	Run scripts of entering an activity
  runend [ACTIVITY]	Run scripts of ending an activity
  store DEST		Store current activity as DEST.
  version		Print the version
&lt;/pre&gt;

Activities are stored under &lt;code&gt;/home/user/.activities&lt;/code&gt;

To get a list of available activities use &quot;list&quot;:

&lt;pre&gt;
~ $ /usr/bin/activity list 
car
clean
empty
main
main2
main3
Tei
Test
test2
&lt;/pre&gt;

To save the current activity and switch to a new one use &quot;change&quot;, etc.

== How it works ==
Actman (Activity Manager) works by:

- dumping (on store) and restoring gconf entries for each activity.

- copying (on store) and pasting (on switching/restore)the contents of $HOME/.config/hildon-desktop/home.plugins.

- copying (on store) and pasting (on switching/restore) the contents of $HOME/.bookmarks/home-thumbnails.

- killing hildon-home whenever the user decides to change their activities.

Such gconf that are dumped and restored are:
- appletbase (widgets and shortcuts for each home screen and their positions)

- viewsbase (the amount of home screens the user has and the background images 
for each home screens)

- hildon-home (bookmarks and shortcuts the user has for this particular activity)

- contacts (contacts that the user has placed on the home screens)

Individual files and directories are copied and pasted such as:

- homeplugins (widgets used)

- thumbnails (bookmarks to web pages the user has for this particular activity)

In addition to what it does above, actman allows users to place scripts to be executed before and/or after the switch across to this activity, it also allows cloning of activities, restoring without saving changes, renaming as well as listing of the activities already stored.

These activies are usually stored in ~/.activities/activities/&lt;name_of_activity_the_user_chooses_to_name&gt;/. The only exception is the root user and in almost all cases ~ would be /home/user (unless one decides to login through another username for instance).

== Running user scripts ==
Since versions 1.1, actman has the ability to run user scripts.

The scripts are stored under &lt;code&gt;/home/user/.activities/scripts&lt;/code&gt; (which does not exist by default).

There are two kind of scripts:
* Scripts that are associated with an activity (kindA)
* Scripts that are not associated with an activity (kindB)

There are two kind of script invocations &quot;start&quot; and &quot;stop&quot;:
* start: is used when entering the corresponding activity
* end: is used when leaving the corresponding activity

The rationale behind this is to have initscript-like scripts that may start or stop services (kindA) or save/restore a widget's configuration (kindB).

=== Scripts associated with an activity ===
Those scripts are installed in a directory named as the activity. For example, for the activity 'main' one can place scripts in &lt;code&gt;/home/user/.activities/scripts/main&lt;/code&gt;. They will be ran when switching to or from that activity.

=== Scripts not associated with an activity ===
They are installed in &lt;code&gt;/home/user/.activities/scripts/always&lt;/code&gt; and are ran whenever an activity is switched.

=== Invocation ===
Scripts are ran with the parameter &quot;start&quot; or &quot;stop&quot; depending on the invocation type. For example it is possible to create a script that connects/disconnects from the Internet when entering/leaving an activity:

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh

if [ &quot;$1&quot; = &quot;start&quot; ] ; then
  # Commands to connect to the internet
elif [ &quot;$1&quot; = &quot;stop&quot; ] ; then
  # Commands to disconnect from the internet
fi
&lt;/source&gt;

Putting the above in &lt;code&gt;/home/user/.activities/scripts/internet&lt;/code&gt; and having an activity named &quot;internet&quot; (watch for the case) will result in auto connecting/disconnecting to/from the Internet when entering/leaving that activity.

For desktop widgets that want to implement per-activity settings and are not already handled by actman it is possible to put a script in &lt;code&gt;/home/user/.activities/scripts/always&lt;/code&gt; like this:

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh

# This is where actman stores the settings of the activities
# ACTMAN_ACTIVITY contains the name of the corresponding activity and it is
# set by actman
DEST=/home/user/.activities/$ACTMAN_ACTIVITY

if [ &quot;$1&quot; = &quot;start&quot; ] ; then
  OLDSETTINGS=&quot;$DEST/myapp.tar&quot;
  if [ -e &quot;$OLDSETTINGS&quot; ] ; then
    ( cd /home/user
      rm -rf .mywidget
      mkdir .mywidget
      tar -xf $OLDSETTINGS )
  fi
elif [ &quot;$1&quot; = &quot;stop&quot; ] ; then
  ( cd /home/user;
    tar -cf $DEST/myapp.tar .mywidget
    rm -rf .mywidget
  )
fi
&lt;/source&gt;

The idea is to store the configuration files in the same location where actman stores each activity's settings (&lt;code&gt;/home/user/.activities/&lt;activity name&gt;/&lt;/code&gt;) as a tar (or even better as a tgz). &lt;code&gt;$ACTMAN_ACTIVITY&lt;/code&gt; will always have the name of the current activity and can be used as such.

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Ad blocking</title>
    <id>1111</id>
    <revision>
      <id>45791</id>
      <timestamp>2011-11-22T02:45:53Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45767 by [[Special:Contributions/70.135.114.247|70.135.114.247]] ([[User talk:70.135.114.247|Talk]]) SPAM</comment>
      <text xml:space="preserve">Not only does blocking ads remove their annoyance and distraction, it often frees screen real estate for the actual content that you are trying to read, and depending on the technique used it may also reduce bandwidth usage and CPU load. These are important profits on machines with limited processing power and screen size. There are a number of methods for blocking ads, each with their own set of pros and cons. All of these methods can be combined to create the optimal solution.

== External ==
Various points in the route from your device to the internet, may provide ad blocking methods. Think about your [http://dd-wrt.com router]/gateway/modem, an external proxy, your internet service provider, and your [http://opendns.org DNS server]. All of these ''may'' provide various levels of filtering, though it is still not common.

When available, this is the preferred method, as it has no performance impact on the machine used for browsing.

Pros:
* No performance impact on browsing device.
Cons:
* Often less advanced and effective routines.
* Only available where you can configure elements of your internet route.
* May be hard to find and configure.
* Blocking is performed at the connection level, so other network applications may be affected.
* It affects everybody that uses the same internet connection (this may also be a advantage)

== Hosts file ==
The hosts file works by blocking access to a large number of known advertising servers, thus preventing the browser from loading content from those servers. Although the hosts file prevents advertising content from being loaded, it does not remove those elements from the page, so you may see warnings about missing pages, images, and scripts. This method can be used in conjunction with the [[#CSS|CSS method]] for element hiding.

The rules for these blocks are put into &lt;code&gt;/etc/hosts&lt;/code&gt;. Simply append the contents of [http://www.mvps.org/winhelp2002/hosts.htm one of the example hosts files] to the end of your hosts file. To edit it you need [[root access]]. Be careful to add it to the existing contents instead of overwriting them, as these are necessary for normal operation of the tablet.

Of particular use in doing this is the program &quot;Advoid&quot;, which can be found in one of the repositories.  (Just search the OS2008 downloads and you should find it.)  This program can download the latest hosts file from http://www.mvps.org and update your tablet's hosts file, thus eliminating the need for becoming root and manually editing the hosts file yourself.  

Of the device-based solutions, this is the recommended method, as the performance impact of the other methods is non-trivial.


Pros:
* Lowest performance impact (effectively zero).
Cons:
* Less thorough and effective than the other methods.
* Requires having [[root access]] and using XTerm to configure.
* Time consuming to temporarily disable. (See below for a solution)
* The 'hosts' file may block network access from some applications as the rules in it are used by all applications accessing the network.

== CSS ==
The CSS method uses a custom stylesheet that the browser will apply to all pages. This stylesheet has rules for removing advertising elements from the page, it does however '''not''' prevent the advertisements from downloading. Any of the other solutions on this page can be used to prevent downloading advertisements and save bandwidth. The CSS method does provide very advanced options to adjust the rendering of webpages, for example not only for removing ads but also for adjusting the layout to your internet tablet.

For an example for such a CSS file, see [http://floppymoose.com Floppymoose.com]. Place this &lt;code&gt;userContent.css&lt;/code&gt; file into &lt;code&gt;/home/user/.mozilla/microb/chrome/userContent.css&lt;/code&gt; and restart MicroB.

Pros
* The most advanced solution for modifying the layout of webpages.
Cons
* Ads are still downloaded, they are just not displayed. So there is no bandwidth saving.
* Complex CSS files may have a performance impact.

=== Quick Toggling ===

There is now a Perl script to allow you to quickly toggle on and off the hosts and CSS files. Grab [http://www.singingtree.com/~kyle/blog/archives/00000328.htm this hosts_css_toggler.txt] file and rename it to &lt;code&gt;hosts_css_toggler.pl&lt;/code&gt; and make it executable.  Then just run it as root to toggle the Hosts/CSS method of ad-blocking on and off.  You will have to restart the browser for the changes to take effect.  Detailed information and instructions are available on the link provided for the script.

== Privoxy ==
{{main|Privoxy}}
[http://www.privoxy.org Privoxy] is an application that can function, among other things, as an ad filtering proxy server. That means that instead of directly connecting to the internet the connection is filtered through Privoxy, which cleanses it of advertising. 

Pros:
* Lower performance impact than Adblock Plus, but ''may'' be higher than the hosts/CSS combination.
* Fairly easy to install.
* Can perform on-the-fly content modifications, for example to reformat webpages for the smaller screen.
Cons:
* Small performance impact.
* Works only for the saved connections where it is configured.
* Configuration can be difficult.
* May block some applications from network when in use.
* Not available on the N900 from the Extras repository

To install Privoxy:

# Make sure [[Extras]] is enabled and install Privoxy from the Application Manager. After installing you won't see Privoxy in the menu. It just works in the background while it is installed.
# Close the network connection on the tablet.
# Go to Settings -&gt; Control Panel -&gt; Connectivity -&gt;Connections
# Select the connection to use Privoxy with. 
# Tap 'Edit', 'Next', 'Next', 'Next', 'Advanced'.
# At the 'Proxies' tab select 'Use Proxy'.
# For 'HTTP proxy' and 'HTTPS proxy' use ''127.0.0.1''.
# For 'Port Number' under  'HTTP proxy' and 'HTTPS proxy' use ''8118''.
# Tap 'OK', 'Finish','Done', 'OK'.
# Connect to the network again with the connection you just changed.

Now this connection uses Privoxy and ads should be blocked. For each saved connection with which you want to use Privoxy you need to edit the proxy settings as shown above. Although you can change the ad-blocking settings by editing the configuration files in &lt;code&gt;/etc/privoxy&lt;/code&gt;, the default settings will work for most people. Editing requires root permissions. 

It is possible that Privoxy stops some applications from connecting to the network as all applications are now forced to go via Privoxy for http and https access. The Wayfinder Map application for example cannot download maps via a connetion with Privoxy. A simple solution is to make another network connection via Settings that does not use Privoxy and switch between them when necessary. Or, if you know the exact domain(s) the application tries to access, you could add the domain to Privoxy's whitelist. To do so edit &lt;code&gt;/etc/privoxy/user.action&lt;/code&gt; and put it under the section ' { -block }'.

== Adblock Plus ==

The popular Mozilla plugin Adblock Plus has been ported to work with MicroB.

Pros:
* Easy to install.
* Fairly easy to configure.
* Has no influence on other applications than the browser.
* Is more thorough and effective than the hosts/CSS method.
Cons:
* Significant performance impact that often offsets the benefits of blocking ads.

It is available from the Browser Extras repository.

You can save time building up your block list by copying your existing &lt;code&gt;patterns.ini&lt;/code&gt; to your tablet here: &lt;code&gt;/home/user/.mozilla/microb/adblockplus&lt;/code&gt;. For example, on Windows XP it can be found in &lt;code&gt;C:\Documents and Settings\User\Application Data\Mozilla\Firefox\Profiles\xxxxxxx.default\adblockplus&lt;/code&gt;.

Works great in compliment with Flashblock, also available in Browser Extras.

[[Category:Web]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Ad blocking in MicroB</title>
    <id>1286</id>
    <revision>
      <id>7944</id>
      <timestamp>2008-10-27T03:46:24Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Ad blocking in MicroB]] moved to [[Ad blocking]]</comment>
      <text xml:space="preserve">#REDIRECT [[Ad blocking]]</text>
    </revision>
  </page>
  <page>
    <title>Adding holidays to Calendar</title>
    <id>4046</id>
    <revision>
      <id>45408</id>
      <timestamp>2011-09-25T10:43:09Z</timestamp>
      <contributor>
        <username>tomj</username>
        <id>2261</id>
      </contributor>
      <minor/>
      <comment>tidying errant punctuation</comment>
      <text xml:space="preserve">It is possible to add public holidays to your [[Nokia N900|N900]] calendar by importing an appropriate file in iCalendar (.ics) format.

# Go to [http://www.mozilla.org/projects/calendar/holidays.html the Holidays page on Mozilla], or any other site from which you can download an iCalendar file with the data you require.
# Select the link for the nation of your choice.
# Select Open with Calendar.
# Decide whether to add to an existing calendar or create a new one; the latter allows you to delete en bloc and replace with more up-to-date versions should that become necessary.
# Observe your calendar populated with holidays.

[[Category:Beginners]][[Category:Calendar]]</text>
    </revision>
  </page>
  <page>
    <title>Adding proxy server information for a connection</title>
    <id>1893</id>
    <revision>
      <id>45792</id>
      <timestamp>2011-11-22T02:46:20Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45768 by [[Special:Contributions/70.135.114.247|70.135.114.247]] ([[User talk:70.135.114.247|Talk]]) SPAM</comment>
      <text xml:space="preserve">{{Out of date}}

# Disconnect from the WiFi network if connected.
# Open the Application menu.
# Tap &quot;Settings&quot;.
# In the Settings sub-menu, tap &quot;Control panel&quot;.
# In the Control panel application that opens, double-tap &quot;Connectivity&quot; in the &quot;Connectivity&quot; section.
# In the &quot;Connectivity&quot; window that opens, tap the &quot;Connections&quot; button.
# In the &quot;Connections&quot; window that opens, tap the name of the WiFi connection to select it.
# Tap the &quot;Edit&quot; button.
# In the &quot;Connection setup: Name and type&quot; window that opens, tap the &quot;Next&quot; button.
# After the window updates to &quot;Connection setup: WLAN&quot;, tap the &quot;Next&quot; button again.
# After the window updates to &quot;Connection setup: Complete&quot;, tap the &quot;Advanced&quot; button on the far right.
# In the &quot;Connection setup: Advanced settings&quot; window that opens, tap the box next to &quot;Use proxy&quot;.
# Enter the proxy information for the WiFi connection in the appropriate HTTP proxy, Port number, HTTPS proxy, and Port number fields.
# Tap the &quot;OK&quot; button to close the &quot;Connection setup: Advanced settings&quot; window.
# Tap the &quot;Finish&quot; button to close the Connection setup: Complete&quot; window.
# Tap the &quot;Done&quot; button to close the &quot;Connections&quot; window.
# Tap the &quot;OK&quot; button to close the &quot;Connectivity&quot; window.
# Close the Control panel.
# Connect to the WiFi network and test the connection.

[[Category:Connectivity]]
[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>AdminHolidays</title>
    <id>1386</id>
    <revision>
      <id>9367</id>
      <timestamp>2008-12-18T16:02:15Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[AdminHolidays]] moved to [[Administrator holidays]]: No camelCase ;)</comment>
      <text xml:space="preserve">#REDIRECT [[Administrator holidays]]</text>
    </revision>
  </page>
  <page>
    <title>Administrator holidays</title>
    <id>1385</id>
    <revision>
      <id>45554</id>
      <timestamp>2011-10-11T20:29:10Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <text xml:space="preserve">Upcoming vacations for [[Maemo.org team|maemo.org staff]] and related people with admin rights:

{| class=&quot;wikitable&quot;
|- 
| '''Person''' || '''Time away (format dd-mm-yyyy)'''
|-
| Niels || 
|-
| Andre (no access to most servers) || 15-10-2011 - 24-10-2011
|-
| Ferenc || 
|-
| Stefano || 
|-
| Marcell (absolutely last resort) || 
|}


[[Category:Community]]
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Adobe-flashplayer</title>
    <id>5129</id>
    <revision>
      <id>47129</id>
      <timestamp>2012-04-04T19:34:44Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>[[Adobe-flashplayer]] moved to [[Fremantle closed packages/Adobe-flashplayer-package]]</comment>
      <text xml:space="preserve">#REDIRECT [[Fremantle closed packages/Adobe-flashplayer-package]]</text>
    </revision>
  </page>
  <page>
    <title>Advanced booting</title>
    <id>1097</id>
    <revision>
      <id>45793</id>
      <timestamp>2011-11-22T02:46:43Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45769 by [[Special:Contributions/70.135.114.247|70.135.114.247]] ([[User talk:70.135.114.247|Talk]]) SPAM</comment>
      <text xml:space="preserve">{{out of date}}

This article covers advanced booting procedures and configuration options. For the vast majority of people [[booting from a flash card]] will cover everything they need to know.

== Multi-boot ==

The process for setting up a multi-boot is similar to [[Booting from a flash card]].
It's a good idea to ensure that the first partition is a FAT/data partition - this keeps things simple.

A sample partition layout on an 8Gb card might be:
* 2GB primary vfat data
* 2GB primary everyday
* 2GB primary debian
* 512MB logical test1 (diablo)
* 512MB logical test2 (chinook)
* 512MB logical test3 (diablo)

Be aware that the kernel initfs supports a limited number of partitions; this can be extended to 6 but no further. This requires editing /home/user/local/bin/initfs_flasher/initfs.bootmenu.jffs2 to add the dev nodes using mknod
(eg: mknod -m600 initfs/dev/mmcblk0p5 b 254 5)

When cloning, you may edit nupgrade.sh to remove the '''TARGET=''' line and then run it as follows:
 TARGET=/dev/mmcblk0p5 ./nupgrade.sh 1

To create pristine images of Diablo/Chinook, follow the instructions for [[Modifying the root image]], but once you have the rootfs.jffs2 image extracted, you can follow the mount instructions and rsync the rootfs to the tablet.

I used this script (which now works fine)
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/bash

# This script connects to the tablet and sends the selected rootfs to the selected partition

FLASHER3=/everything/Downloads/Hardware/nokia_n800/flasher-3.0 
F_IMAGE=/everything/Downloads/Hardware/nokia_n800/RX-34_2008SE_2.2007.51-3_PR_COMBINED_MR0_ARM.bin
IMAGE_DIR=chinook_fiasco
PART=/dev/mmcblk0p6

mkdir -p $IMAGE_DIR

# unpack fiasco
(cd $IMAGE_DIR; $FLASHER3 -F $F_IMAGE -u)

# https://wiki.maemo.org/Modifying_the_root_image
mknod /tmp/mtdblock0 b 31 0
modprobe loop
losetup /dev/loop0 $IMAGE_DIR/rootfs.jffs2 
modprobe block2mtd
modprobe mtdblock
# Note that on a host running 2.6.27-rc2 (and probably *much* earlier), the ,128KiB sets the erase size.
echo &quot;/dev/loop0,128KiB&quot; &gt; /sys/module/block2mtd/parameters/block2mtd
modprobe jffs2
mkdir /tmp/jffs2
# mount the rootfs ro
mount -t jffs2 -o ro /tmp/mtdblock0 /tmp/jffs2

# copy files
ssh root@nut insmod /mnt/initfs/lib/modules/2.6.21-omap1/ext2.ko \; mkdir /tst \; mount $PART -o noatime /tst
(cd /tmp/jffs2;tar cf - . | ssh root@nut cd /tst\;tar xf -)
# rsync may not work
# rsync -av /tmp/jffs2/ root@nut:/tst/
ssh root@nut umount /tst \; rmdir /tst

#clean up
umount /tmp/jffs2
rmmod jffs2
rmmod mtdblock
rmmod block2mtd
losetup -d /dev/loop0
rm -f /tmp/mtdblock0
rmdir /tmp/jffs2
rm -rf $IMAGE_DIR
&lt;/source&gt;

== Boot messages ==

So if you want to see the kernel boot log or dmesg type output when you boot here's how (thanks to [[User:qwerty12|qwerty12]] for the pointers)

Check you have an up-to-date initfs - does this file exist:
 /mnt/initfs/usr/bin/fb_update_mode
If not then install fanoush's bootmenu/initfs.

Log into the tablet and remount initfs so you can edit it directly. (If this '''doesn't''' make you nervous then you should stop now!)
 mount -o remount,rw /mnt/initfs

Now grab some kernel modules from here:
 http://fanoush.wz.cz/maemo/modules-diablo-2.6.21-200842maemo1.tar.gz

and copy the 4 modules you find in
 ./drivers/video/console/
to
 /mnt/initfs/lib/modules/`uname -r`/

I extracted them on my host and did:
 scp drivers/video/console/* root@nut:/mnt/initfs/lib/modules/2.6.21-omap1/

Now, for each bootmenu where you want a bootlog, edit &lt;code&gt;/mnt/initfs/bootmenu.sh&lt;/code&gt; and add
 softcursor bitblit font fbcon
to any MENU_N_MODULES= lines
Also add a line like this (where MENU_2 will differ for you):
 MENU_2_FBMODE=&quot;auto&quot;

eg:
 MENU_4_NAME=&quot;Diablo Test&quot;
 MENU_4_ID=&quot;mmc5&quot;
 MENU_4_DEVICE=&quot;${INT_CARD}p5&quot;
 MENU_4_MODULES=&quot;mbcache ext2 softcursor bitblit font fbcon&quot;
 MENU_4_FSTYPE=&quot;ext2&quot;
 MENU_4_FSOPTIONS=&quot;noatime&quot;
 MENU_4_FBMODE=&quot;auto&quot;
 [ -d &quot;/sys/block/${INT_CARD}/${MENU_4_DEVICE}&quot; ] || MENU_4_NAME=&quot;(${MENU_4_NAME}) N/A&quot;

Finally, remount the initfs as ro and reboot.
 mount -oremount,ro /mnt/initfs/

Once your system starts, don't forget to run
 /mnt/initfs/usr/bin/fb_update_mode manual
or the display will run slowly.

== Initfs hacking ==

Work in progress - move along

In case it isn't '''blindingly obvious''' - messing with the initfs and your tablet flash can burn you.

Note: The tools and data used whilst flashing must be stored on linux filesystems - not FAT/FAT32.

If you are brave you can edit your initfs directly if you mount initfs read-write:
 mount -oremount,rw /mnt/initfs
 vi $random_files

Don't forget to put it back:
 mount -oremount,ro /mnt/initfs

This can be randomly dangerous if initfs partition is almost full (true for anything before Diablo) because your initfs can run out space whilst you are saving due to the way jffs2/flash systems work. Basically you may end in situation when even 'rm file' returns 'no space left on device'. Diablo update enlarged initfs partition from 2MB to 4MB so there is enough free space to make jffs2 garbage collector work properly (unless you fill it up again).

A safer approach (taken from fanoush's script) is:
 cd somewhere_on_a_linux_fs
 mkdir initfs.orig
 mount -t jffs2 /dev/mtdblock3 initfs.orig
 cp -a initfs.orig initfs
 umount initfs.orig
 # edit intifs/...

Then, once it's all edited and ready, you create a jffs2 and burn it.
 mkfs.jffs2 -r initfs -o my_initfs.jffs2 -e 128 -l -n
 sync
 chroot /mnt/initfs mount -t jffs2 -o remount,ro /dev/mtdblock3 /
 echo &quot; *** caching old initfs to memory (for crash prevention)&quot;
 # block level, probably useless
 dd if=/dev/mtdblock3 of=/dev/null bs=65536 2&gt;/dev/null
 # file level, read all interesting stuff (should be enough to cache dsme and bme)
 tar cf - /mnt/initfs/usr /mnt/initfs/lib /mnt/initfs/bin /mnt/initfs/sbin &gt;/dev/null 2&gt;/dev/null
 flash_eraseall -j /dev/mtd3
 echo &quot; *** flashing $1 image ...&quot;
 nandwrite -a -p /dev/mtd3 $1
Then reboot (&lt;code&gt;/sbin/reboot&lt;/code&gt;) as soon as possible. dsme and bme daemons are running from (old) initfs and by reflashing underlying filesystem you just cut the branch they are sitting on. Caching done before flashing does not solve it completely.

At this point you will probably realise that grabbing fanoush's script and inserting a few extra commands to drop you to a shell etc is a lot easier than doing it all by hand. Or you may start another shell while initfs_flash script is waiting for your answer (include telnet/dropbear/bootmenu.conf?) and modify stuff in initfs_flasher/initfs/.

===Devices===

The standard initfs is missing some devices that may be useful on sd cards with lots of partitions so:

&lt;pre&gt;
mknod -m600 initfs/dev/mmcblk0p3 b 254 3 2&gt;/dev/null
mknod -m600 initfs/dev/mmcblk0p4 b 254 4 2&gt;/dev/null
mknod -m600 initfs/dev/mmcblk0p5 b 254 5 2&gt;/dev/null
mknod -m600 initfs/dev/mmcblk0p6 b 254 6 2&gt;/dev/null
mknod -m600 initfs/dev/mmcblk0p7 b 254 7 2&gt;/dev/null

mknod -m600 initfs/dev/mmcblk1p3 b 254 11 2&gt;/dev/null
mknod -m600 initfs/dev/mmcblk1p4 b 254 12 2&gt;/dev/null
mknod -m600 initfs/dev/mmcblk1p5 b 254 13 2&gt;/dev/null
mknod -m600 initfs/dev/mmcblk1p6 b 254 14 2&gt;/dev/null
mknod -m600 initfs/dev/mmcblk1p7 b 254 15 2&gt;/dev/null
&lt;/pre&gt;

[[Category:Power users]]
[[Category:Diablo]]</text>
    </revision>
  </page>
  <page>
    <title>Adventures with D-BUS</title>
    <id>4461</id>
    <revision>
      <id>43745</id>
      <timestamp>2011-06-03T08:07:24Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[User:Magick777/Adventures with D-Bus]]</text>
    </revision>
  </page>
  <page>
    <title>Adventures with D-Bus</title>
    <id>4885</id>
    <revision>
      <id>43726</id>
      <timestamp>2011-06-02T07:07:02Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Adventures with D-Bus]] moved to [[User:Magick777/Adventures with D-Bus]]</comment>
      <text xml:space="preserve">#REDIRECT [[User:Magick777/Adventures with D-Bus]]</text>
    </revision>
  </page>
  <page>
    <title>Allegro</title>
    <id>4930</id>
    <revision>
      <id>44835</id>
      <timestamp>2011-08-11T15:43:39Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>two images added</comment>
      <text xml:space="preserve">Allegro-4.4.2 on extras-devel for N900.

''Allegro 4 and Allegro 5 are cross-platform, libraries mainly aimed at video game and multimedia programming. They handle common, low-level tasks such as creating windows, accepting user input, loading data, drawing images, playing sounds, etc. and generally abstracting away the underlying platform. However, Allegro is not a game engine: you are free to design and structure your program as you like.''

http://www.allegro.cc/

TMO Discuss: http://talk.maemo.org/showthread.php?p=1050896

Discuss on Upstream http://www.allegro.cc/forums/thread/607818

==Issues==
*In fullscreen Allegro grabs the keyboard
'Grabs' = system wide shortcuts e.g. ctrl+backspace nor screenshots with ctrl+shift+p are not working. And you can't even answer phone calls!
These are working in windowed mode.

*Sounds use too much processing power
Rename/remove file /usr/lib/allegro/4.4.2/alleg-alsadigi.so to disable sounds.

*Fullscreen is not fullscreen. Window manager's top-panel is still visible, but not focusable. Check image: 
[[Image:Allegro442maemo5fullscr.png]]

*Can't start from menu icon if there are any other application running, because started application stay bottom than 'dashboard' -&gt; nobody has focus. Check image: Vgolf (uses Allegro) is started from menu icon, but there were one running application (X Terminal) and then no application have focus! 

[[Image:Allegro_from_menu.jpg]]
There are couple of ways to survive this: 
 *ssh server already running on phone
 *Open camera shutter and Allegro-app will get focus (if you close shutter, focus is lost again)</text>
    </revision>
  </page>
  <page>
    <title>Alsa-policy-enforcement</title>
    <id>5128</id>
    <revision>
      <id>47127</id>
      <timestamp>2012-04-04T19:34:36Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>[[Alsa-policy-enforcement]] moved to [[Fremantle closed packages/Alsa-policy-enforcement-package]]</comment>
      <text xml:space="preserve">#REDIRECT [[Fremantle closed packages/Alsa-policy-enforcement-package]]</text>
    </revision>
  </page>
  <page>
    <title>Alternative desktop environments</title>
    <id>1837</id>
    <revision>
      <id>45795</id>
      <timestamp>2011-11-22T02:47:38Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45771 by [[Special:Contributions/70.135.114.247|70.135.114.247]] ([[User talk:70.135.114.247|Talk]]) SPAM</comment>
      <text xml:space="preserve">Desktop Environments are not full Operating Systems; they provide a graphical interface to the applications (usually with both a window manager and desktop manager of some kind), and a consistent look and feel to all the applications running within the environment. 

An alternate Desktop Environment can replace the Hildon Desktop of the Maemo OS, while still allowing Maemo applications to run on the alternate desktop. Some hacking may be necessary to make Maemo applications look correct, and some desktops are more suited to the small, high-resolution touchscreen hardware of the tablets than others.

Each of the following desktop environments has a list of tablet-compatible distributions that currently have a version of that desktop.

== KDE ==
'''Distros:''' [[Maemo]], [[Debian]], [[:wikipedia:Ubuntu (operating system)|Ubuntu]], [[Mer]]?

KDE was one of the first full &quot;Desktop Environments&quot; available under Linux. A version of the KDE 3 environment to replace the Hildon Desktop was released by Penguinbait.  To find the latest information on running KDE 3.5.8 within Maemo, please visit the [http://talk.maemo.org/showthread.php?t=20317 Active forum thread] or [http://tablethacker.com Penguinbait's blog site]

[[Image:Zelda.jpg|thumb|right|Penguinbait's KDE 3.5.8 for Maemo]]

== FVWM ==
'''Distros:''' Maemo, Debian, Ubuntu, Mer

A very simple, stripped-down desktop environment, and the ancestor to many modern desktops, including Enlightenment.

== LXDE ==
'''Distros:''' Debian, Ubuntu, Mer

A new desktop environment that focuses on being fast and lightweight, LXDE is ideal for devices with limited resources. It is based on the GTK+ toolkit, making it very compatible with Maemo applications.

== GNOME ==
'''Distros:''' Debian, Ubuntu

GNOME is the full-featured big brother to Maemo. It doesn't run very quickly on the tablets, but it is very familiar to many people who have used it on their home and work computers.

== Enlightenment (E17) ==
'''Distros:''' None, must be compiled from source

The Illume desktop in E17 is the most tablet friendly.


[[Category:Users]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Alternative operating systems</title>
    <id>760</id>
    <revision>
      <id>47013</id>
      <timestamp>2012-03-20T13:23:20Z</timestamp>
      <contributor>
        <username>giostark</username>
        <id>5075</id>
      </contributor>
      <comment>/* Android */</comment>
      <text xml:space="preserve">Several '''alternative operating systems''' using the Linux kernel have been ported to the tablets. They are derived from Debian, OpenEmbedded or Fedora; Android is a clear exception. All of these alternatives can be booted on the tablets. Because they all use the Linux kernel, most can also be used in a chroot, allowing users to use applications from the alternatives without leaving Maemo.

== Not Covered Here ==

These alternatives are not covered here because the operating systems do not run natively on the tablets (Virtual Machines) or they are not operating systems (Alternate Desktops).

=== Virtual Machines ===
{{main|Emulators}}
There have been several [[emulators]] or virtual machines ported to the tablets that can run alternative operating systems. The best known operating system emulators are the [http://www.access-company.com/products/gvm/ Garnet VM] (Palm OS), [http://talk.maemo.org/showthread.php?t=16306 Basilisk II] (Macintosh OS up to 8.1) and DosBox/[[RubyBox]] (MS-DOS and Windows 3.1). Emulation often introduces a large amount of overhead, so emulators tend to be limited to older operating systems that were designed to run on old, limited hardware.

=== Alternate Desktops ===
{{main|Alternative desktop environments}}
[[Alternative desktop environments]] and window managers have also been ported to the tablets, most notably penguinbait's KDE, but they are not full operating systems; they are intended to replace the Hildon desktop only, they don't require a reboot, and they use varying amounts of the Maemo infrastructure underneath the alternative desktop.

== Debian ==
{{main|Debian}}
[http://debian.org/ Debian], one of the oldest and most respected Linux distributions, began, in 2007, [http://wiki.debian.org/ArmEabiPort porting to armel] for its 5.0 (&quot;Lenny&quot;) release. This port is now an officially supported architecture.

Several users managed to get Debian to boot on the tablets. The project that became known as [http://trac.tspre.org/projects/deblet Deblet] created a robust installer to automate the process, making it much more accessible to end users. Deblet uses proprietary closed-source binaries, downloaded from Nokia's repositories, to achieve some functionality.

== Gentoo ==

[http://gentoo.org Gentoo] is mostly functional on N8x0 tablets.
Setup instructions can be found [http://slonopotamus.org/gentoo-on-n8x0 here].
For assistance or binary packages, including Qt and KDE (which cannot be built natively on the N8x0 due to memory shortage), ask around in #Gentoo-Embedded (FreeNode).

== Ubuntu ==

The Nokia-sponsored [http://mojo.handhelds.org/ Handhelds Mojo project] began porting Ubuntu to the armel architecture in 2007. It's interesting for its compilation entirely on native ARM hardware.

In late 2008, Canonical [http://www.desktoplinux.com/news/NS8395222090.html announced] an official armel port of its Ubuntu 9.04 &quot;Jaunty&quot; release. As with the rest of the Ubuntu distribution, the armel port leveraged the work already done by the Debian team to produce a very workable port, and the repositories rapidly filled up with a large percentage of the apps available to other architectures. As with Debian armel, there were several reports of successfully booting Ubuntu on the tablets, but the most well known bootable version of &quot;vanilla&quot; Ubuntu Jaunty was the port by [[User:b-man|b-man]].

It appears that a more recent version has been worked on by user:Mohammad7410. 
See [[User:Mohammad7410/Ubuntu]] for instructions on loading Ubuntu 9.10.

== Mer ==
{{main|Mer}}
[[Mer]] is a new Linux operating system, built upon a thin base of Ubuntu Jaunty combined with the best open-source elements of Nokia's Maemo platform, such as the Hildon desktop.

Mer began as an idea that, due to Nokia's push to make most of Maemo open source, it should be possible to &quot;reconstruct&quot; Maemo using only open source elements. The &quot;Maemo Reconstructed&quot; proof of concept developed into Mer as it became clear to the developers that this was a viable environment for both developers and end-users.

Unlike its predecessor, Deblet, Mer avoids using proprietary closed-source binaries to achieve functionality. Consequently, there are still some missing pieces (such as drivers) to achieve full functionality on a pure Mer system.

Development status: There was no release since October 2009.

== Mamona ==

Mamona is an embedded Linux distribution for armel, based on [http://wiki.openembedded.net/index.php/Main_Page Open Embedded]. The main goal of the Mamona Project is to offer a completely open source alternative/experimental platform for Maemo using only free and open source components.

Mamona is still fairly immature at this point, and their last release, 0.2, was in September 2008. There's more information available and you may be interested in getting involved on their [http://dev.openbossa.org/trac/mamona/ Trac page].

== Poky Linux ==

[http://pokylinux.org/ Poky Linux] is a handheld-targeted distribution, also based on [http://wiki.openembedded.net/index.php/Main_Page Open Embedded], that provides an open environment, a build platform (much like the Maemo SDK and the Mamona SDK), and a finger-friendly desktop environment known as &quot;Sato&quot;.

While still immature on the tablets, and without an official release in over a year, Poky is still an interesting project, and their [http://www.pimlico-project.org/ Pimlico PIM suite], in particular, may interest some users. You can get it from their [http://www.pokylinux.org/getit/ website].

== Red Hat Fedora ==

There is an [http://fedoraproject.org/wiki/Architectures/ARM Arm version] of Fedora 8, 10 and 12. A [https://www.redhat.com/archives/fedora-arm/2009-April/msg00009.html bug in Yum] specific to the N8x0 tablets' processor (armv6l), and a very small selection of applications in the Fedora repositories, among other things, made this distribution slow to gain traction in the tablet community. 

With the introduction of the N900, some interest in Fedora [http://talk.maemo.org/showthread.php?t=38987 has re-emerged].

== Android ==

[[:wikipedia:Google_Android|Android]] is a new operating system by Google and the Open Handset Alliance, based on the Linux kernel, but using custom Java libraries to run all applications.

There have been several successful attempts to boot Android on the tablets, starting with the earliest Android SDK, which was booted from a chroot. When the Android source code became available in late 2008, several teams, working in parallel, managed to get Android booting.

The [https://sites.google.com/site/nitdroid/home NITdroid] project is a kernel and userspace port from scratch, and it is currently the most advanced port. 

[[Category:Users]]
[[Category:Development]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Apkenv</title>
    <id>5279</id>
    <revision>
      <id>50628</id>
      <timestamp>2012-11-03T14:23:05Z</timestamp>
      <contributor>
        <ip>210.187.199.240</ip>
      </contributor>
      <comment>/* apkenv Downtime News */</comment>
      <text xml:space="preserve">Apkenv is a compatibility layer for applications packaged as &quot;.apk&quot;, runs on Harmattan (N9) and Fremantle (N900).

''&quot;This project is a proof-of-concept on how applications targetting one platform can be made compatible with not so much effort as initially thought.&quot;'' 

[http://thp.io/2012/apkenv/ Official apkenv page (Details and download)]


== apkenv Downtime News ==


'''2012-11-03'''
 The old binaries are outdated and should not be used anymore. A new release is in the works and will be released when it's done. As always, please don't publish / upload old versions of apkenv. Use common sense and caution when downloading / running random binaries from the web.

== Installation/Usage Instructions ==

=== N9/N950 ===

1. Download the latest apkenv.harmattan binary from http://thp.io/2012/apkenv/ (currently not available use link below)

Current version for Harmattan [http://talk.maemo.org/showpost.php?p=1284909&amp;postcount=326 link] (note that zip includes Bionic binaries mentioned below, skip step 4 if you use this file)


2. With the zip file above, extract it to MyDocs (default view when phone in Mass storage-mode).

3. In terminal do:
 mkdir -p /home/user/apkenv
 cp -R /home/user/MyDocs/apkenv/* /home/user/apkenv/
 chmod 775 /home/user/apkenv/apkenv
 devel-su
 (default pasword: rootme)
 apt-get install libsdl1.2 libsdl-mixer1.2 libgles1-sgx-img


4. Download the Bionic binaries from http://thp.io/2012/apkenv/ and place them in /home/user/apkenv/ or '''copy them from /home/nitdroid/system/lib only if you are running NiTDroid Alpha 4!''' 


4-1. Incase of extreme laziness to read nitdroid forum, download nitdroid binary (http://downloads.nitdroid.com/e-yes/n9/nitdroid_n9_ics_alpha4.tar.bz2), extract it and go to /system/lib path.

The libraries required:
 libc.so
 liblog.so
 libm.so
 libstdc++.so
 libz.so


5. If you have a .apk file in /home/user/MyDocs/, run it as follows in terminal:
 cd /home/user/apkenv/
 ./apkenv /home/user/MyDocs/APK_NAME

=== N900 ===

1. Download the latest apkenv.fremantle binary from http://thp.io/2012/apkenv/ (not currently available)


2. Save the downloaded binary to /home/user/MyDocs


3. In terminal do:
 mkdir -p /home/user/apkenv
 cp -R /home/user/MyDocs/apkenv.fremantle.VERSION_DATE /home/user/apkenv/apkenv
 chmod 775 /home/user/apkenv/apkenv
 apt-get install libsdl1.2 libsdl-mixer1.2 libgles1-sgx-img libsdl-gles1.2-1


4. Download the Bionic binaries from http://thp.io/2012/apkenv/ and place them in /home/user/apkenv/


The libraries required:
 libc.so
 liblog.so
 libm.so
 libstdc++.so
 libz.so


5. If you have a .apk file in /home/user/MyDocs/, run it as follows in terminal:
 cd /home/user/apkenv/
 ./apkenv /home/user/MyDocs/APK_NAME.apk

== Frequently asked questions ==
'''1. Do I need NITdroid?'''

Nope. But you may need Bİonic libraries, download them from thp.io or [http://talk.maemo.org/showpost.php?p=1284909&amp;postcount=326 here] 
and place them on the same folder you placed apkenv.


'''2. &quot;Permission denied&quot; message'''

Run this: &quot;chmod +x apkenv&quot;, then ./apkenv, It should work now.

Also if you used some app as root you might need to run this:
chmod 777 /home/user/.apkenv


'''3. Im getting &quot;/home/user/ is not ours&quot; error.

That's because of you ran it as root, you should run the binary as user


'''4. Im getting &quot;./apkenv not found&quot; error.

Make sure you have changed to the binary directory using &quot;cd&quot; command

== Android Games Compatibility ==

Kindly update the [[Apkenv/Game Compatibility|Games Compatibility wiki]] with your results when running an .apk regardless of success rate!


== Links ==

* [http://thp.io/2012/apkenv/ Official apkenv page (Details and download)]
* [[Apkenv/Game Compatibility|Game Compatibility]]
* [[Apkenv/Apps Compatibility|Apps Compatibility]]
* [http://talk.maemo.org/showthread.php?p=1283353 Apkenv thread on Maemo Talk]
* [http://www.youtube.com/watch?v=ahsDNPrPSDU First look Youtube video]
* [http://www.youtube.com/watch?v=djUMaoGDAz8 Angry Birds Space on N9 with Apkenv Youtube video]
[[Category:Software]]
[[Category:N900]]
[[Category:N9]]
[[Category:N950]]</text>
    </revision>
  </page>
  <page>
    <title>Apkenv/Apps Compatibility</title>
    <id>5281</id>
    <revision>
      <id>50569</id>
      <timestamp>2012-10-30T16:51:58Z</timestamp>
      <contributor>
        <username>eccenux</username>
        <id>5499</id>
      </contributor>
      <comment>PhoenGap doesn't work :-(</comment>
      <text xml:space="preserve">All [https://build.phonegap.com/ PhoneGap Build Apps] give &quot;Not a native .apk&quot;.

{| class=&quot;wikitable sortable&quot;
! width=&quot;125&quot; | SoftwareFullName
! width=&quot;100&quot; | Version
! width=&quot;100&quot; | Status
! width=&quot;300&quot; | Bug(s)
! width=&quot;175&quot; | Apkenv version
|-
|Google Sky Map aka Stardroid || 1.6.4 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Samsung SmartView || 3.2.0 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet || harmattan.2012-10-21b
|-
|Tapatalk || 2.4 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|TeamViewer|| N\A || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet || harmattan.2012-10-21b
|-
|Navitel|| 5.5.1.0 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet || harmattan.2012-10-21b
|-
|ICS File Explorer Doggie || 1.2 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|WhatsApp || 2.8.6298 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b 
|-
|Skype || 2.1.0.46 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || harmattan.2012-10-21b
|-
|Facebook Messenger || 2.0.4 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || harmattan.2012-10-21b
|-
|Instagram || 3.2.0 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || harmattan.2012-10-21b
|-
|Netflix || 2.0.2 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet || harmattan.2012-10-21b
|-
|Google Play Store || 3.9.16 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Amazon App Store ||  || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet || harmattan.2012-10-21b
|-
|Viber || 2.1.2.116554 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet || harmattan.2012-10-21b
|-
|Polskie Radio || 1.2.1 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Adobe Photoshop Express|| 1.3.2 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|YouTube|| 4.1.23 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt;&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|M-Indicator|| 6.1 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Boid|| 0.8.8 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Gmail|| 4.2 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Foliant||7.0|| style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Yandex.Maps||3.02|| style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || harmattan.2012-10-21b
|-
|Google Search||2.0.5.443668|| style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Google Maps||6.12.0|| style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|}</text>
    </revision>
  </page>
  <page>
    <title>Apkenv/Game Compatibility</title>
    <id>5280</id>
    <revision>
      <id>50592</id>
      <timestamp>2012-11-01T16:36:51Z</timestamp>
      <contributor>
        <ip>88.238.23.196</ip>
      </contributor>
      <text xml:space="preserve">{| class=&quot;wikitable sortable&quot;
! width=&quot;125&quot; | SoftwareFullName
! width=&quot;100&quot; | Version
! width=&quot;100&quot; | Status
! width=&quot;300&quot; | Bug(s)
! width=&quot;175&quot; | Apkenv version
|-
|Angry Birds || 2.3.0 || style=&quot;background-color:lime;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Game works! multitouch zooming supported || harmattan.2012-10-21b
|-
|Angry Birds Seasons || 2.5.0 || style=&quot;background-color:lime;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Game works! multitouch zooming supported || harmattan.2012-10-21b
|-
|Angry Birds Space Premium/HD || 1.0.1-1.3.0 || style=&quot;background-color:lime;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Game works! multitouch zooming supported. || harmattan.2012-10-21b fremantle.2012-10-21
|-
|Angry Birds Rio || 1.4.2-1.4.4 || style=&quot;background-color:lime;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Game works! multitouch zooming supported || harmattan.2012-10-21b fremantle.2012-10-21
|-
|Fruit Ninja || 1.5.4 || style=&quot;background-color:skyblue;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Playable || Crashes when game over at classic and zen mode. Works fine on arcade mode. No background music, log says: open /dev/sequencer or /dev/snd/seq: No such file or directory || harmattan.2012-10-21b fremantle.2012-10-21
|-
|Fruit Ninja || 1.5.2 || style=&quot;background-color:lime;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Works Ok, no crashes on N900 and N9. No background music. ||  harmattan.2012-10-21b fremantle.2012-10-21
|-
|Age of Zombies || 1.0.7 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet || harmattan.2012-10-21b
|-
|Anomaly ||  || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || Fremantle.2012-10-21
|-
|Amazing Alex || 1.0.0-1.0.4 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || All fail with &quot;Segmentation fault&quot;, 1.0.0 and 1.0.1 get to Splash-screen || harmattan.2012-10-21b
|-
|Asphalt 5 || 3.0.9 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || Fremantle.2012-10-21
|-
|Bad Piggies || 1.0.0 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Bad Piggies HD || 1.0.0 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Bad Piggies ARMv6 || 1.0.0 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet || harmattan.2012-10-21b
|-
|Bejeweled II || 2.0.11 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || harmattan.2012-10-21b
|-
|Tank Hero || 1.4-1.5.6 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || harmattan.2012-10-21b
|-
|Can Knockdown 2 || 1.0.6 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk  || harmattan.2012-10-21b
|-
|Cordy Sky || v11943 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Cut The Rope|| 1.0.0-1.4.4 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet  || harmattan.2012-10-21b
|-
|Crazy Taxi ||    || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Deathmetal HD ||  || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Deathworm || 1.06 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || harmattan.2012-10-21b
|-
|Doodle Jump || 1.3.11 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Draw Something by OMG POP|| 1.7.31 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies  || harmattan.2012-10-21b
|-
|Edge ||  || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || Fremantle.2012-10-21
|-
|Empire Story ||  || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet || harmattan.2012-10-21b
|-
|Epic Truck ||   || style=&quot;background-color:red;&quot; = |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Fantashooting || 1.0 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Fruit Ninja Free/Premium|| 1.6.2-1.6.5 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || open /dev/sequencer or /dev/snd/seq: No such file or directory; Segmentation Fault || harmattan.2012-10-21b
|-
|Fruit Ninja Free/Premium|| 1.7.5-1.7.6 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not Supported yet || harmattan.2012-10-21b
|-
|Highway Rider || 1.3.1 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|I Must Run || 1.0.0 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || harmattan.2012-10-21b
|-
|I Must Run || 1.0.5-1.0.6 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Jetpack Joyride || 1.3.5 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies
|| harmattan.2012-10-21b
|-
|Kingdoms At War || 2.14 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Lane Splitter || 1.6 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet || harmattan.2012-10-21b
|-
|Logo Quiz || 8.1 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Minecraft Pocket Edition || 0.3.3 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || Fremantle.2012-10-21
|-
|Monster Joyride ||  || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || harmattan.2012-10-21b
|-
|Mortal Combat 2 ||  || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || Fremantle.2012-10-21
|-
|Ninja Bounce ||  || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Osmos tablet version ||  || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || Fremantle.2012-10-21
|-
|Osmos handset version ||  || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || Fremantle.2012-10-21
|-
|Paradise Island ||  || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet || harmattan.2012-10-21b
|-
|Plants vs Zombies ||  || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet  || harmattan.2012-10-21b
|-
|Puffle Launch || 1.3 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet  || harmattan.2012-10-21b
|-
|Raging Thunder 2 || 1.0.10 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet  || harmattan.2012-10-21b
|-
|Real Football 2013 || 1.0.3 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Rebuild || 3.01 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Resident Evil 4 Mobile || 1.19 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || harmattan.2012-10-21b
|-
|Shoot The Zombirds|| 1.08 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Sky Force Reloaded|| 1.1.0 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet || harmattan.2012-10-21b
|-
|Smurf's Village || 1.1.5a || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing Library Dependencies || harmattan.2012-10-21b
|-
|Sudoku Free || 1.412 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet || harmattan.2012-10-21b
|-
|Solitaire Double-Deck HD || 1.0 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Spirits || 1.1.0 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || harmattan.2012-10-21b
|-
|Star Wars Superhero Returns || 1.1.0 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || harmattan.2012-10-21b
|-
|Strikefleet Omega ||  || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || harmattan.2012-10-21b
|-
|Swing Shot || 1.00.06 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || harmattan.2012-10-21b
|-
|Temple Run || 1.0.6 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk  || harmattan.2012-10-21b
|-
|Temple Run Brave || 1.1 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet  || harmattan.2012-10-21b
|-
|What's My IQ Pro ||  || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Minecraft Pocket Edition || 0.4.0 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Where's My Perry? || 1.0.2 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || harmattan.2012-10-21b
|-
|Where's My Perry? || 1.0.6 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet || harmattan.2012-10-21b
|-
|Where's My Water? || 1.8.1 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not supported yet || harmattan.2012-10-21b
|-
|Wind-up Knight || 1.7.1 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Wordfeud || 1.2.11 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|World of Goo ||  || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || Fremantle.2012-10-21
|-
|Words With Friends || 4.91 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Zenonia 4 (Offline Mod) || 4.1.0.8 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing Library Dependencies || harmattan.2012-10-21b
|-
|Zombie Cafe ||  || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || harmattan.2012-10-21b
|-
|Zombie Frontier || 1.03 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|-
|Zombie panic in wonderland || 1.2 || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Missing library dependencies || harmattan.2012-10-21b
|-
|Asphalt 6 Adrenaline || ~ || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Not a native .apk || harmattan.2012-10-21b
|}</text>
    </revision>
  </page>
  <page>
    <title>Applet-datetime</title>
    <id>5123</id>
    <revision>
      <id>47116</id>
      <timestamp>2012-04-04T19:10:48Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>[[Applet-datetime]] moved to [[Fremantle closed packages/Applet-datetime]]</comment>
      <text xml:space="preserve">#REDIRECT [[Fremantle closed packages/Applet-datetime]]</text>
    </revision>
  </page>
  <page>
    <title>Application Menu</title>
    <id>1329</id>
    <revision>
      <id>45797</id>
      <timestamp>2011-11-22T02:48:28Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45773 by [[Special:Contributions/70.135.114.247|70.135.114.247]] ([[User talk:70.135.114.247|Talk]]) SPAM</comment>
      <text xml:space="preserve">== Menu structure ==

Different OS versions have different menu structure.

=== Menu file ===
A Menu file describes how shortcuts are shown in the menu.

=== .desktop files ===
The application entries in the Application menu are generated from .desktop files that are added when an application is installed.

The syntax for .desktop -files can be found in article [[Desktop file format]]

== Maemo 5 ==
Folder rearrangment can be done by editing the file found in:
 /etc/xdg/menus/hildon.menu

The &lt;Filename&gt; tags in the &lt;Include&gt; section set the menu items, editing them will result in the menu being changed. Adding more Menu sections will add additional folders.

=== Releases before PR1.2 ===

In releases of Maemo 5 prior to [[Maemo 5/PR1.2|PR1.2]], note that the &quot;Applications&quot; menu is the &quot;More...&quot; folder, and it is set to contain every application that is not shown by other menus, therefore it is recommended to keep it for using recently installed apps.

==== Apmefo ====
[http://maemo.org/packages/view/apmefo/ Apmefo] presently in [[extras-devel]]. Automates the process of creating folders in the application menu by editing hildon.menu. Apmefo utilises similar icons found on Microsoft Windows folder icon. 

Discussion thread can be found [http://talk.maemo.org/showthread.php?t=56844 here].

Please note that sometimes when switching from Catorise Plus/ Catorise / Catorise GUI to Apmefo and/or vice-versa, you may encounter instance where applications in application menu is no longer group and cannot be grouped even if set manually. This is the result of currupted hildon.menu file and maybe fixable via [http://talk.maemo.org/showpost.php?p=715223&amp;postcount=108 here].  

==== Catorise Plus/ Catorise / Catorise GUI ====
[http://maemo.org/packages/view/catoriseplus/ Catorise Plus] is an alternative to Apmefo, also currently available in [[extras-devel]]. Catorise Plus utilises the same set of group icons found in [http://maemo.org/packages/view/hildon-application-manager/ Hildon application manager (also known as &quot;ham&quot; for abbreviated variant)] when one installs applications to personalise their device. It will also automatically group applications according to the section noted within individual application packages but preferences to which group can be changed by the user. Changes to a new group only applies on catorise level, it does not change individual application packages.

Catorise Plus is currently recommendend over using Catorise and Catorise GUI as not only does it combine both applications together, it merges any potential conflicts with running either seperately into one (thus eradicating conflicts altogether) as well as allowing the end user to place literally any installed applications (only the ones that have icons within application menu) into whichever group of their choice unlike its predecessors (Catorise and Catorise GUI).

Discussion thread can be found [http://talk.maemo.org/showthread.php?t=73443 here].

== OS 2008 and older ==
The '''Application menu''' is Maemo's version of the Windows Start menu. It is made up of folders which contain all of your installed applications.

=== Menu structure ===
By default, the menu is made up of 6 folders which contain all of your installed applications: My selection, Internet, Communication, Utilities, Settings, and Extras. You can rearrange these applications, and create, rename and delete folders in the &quot;Panels&quot; control panel.

Advanced users can also edit the XML menu file directly. This is not recommended, as careless editing can damage the menu to the point where it no longer works. The XML file name is:

 ~/.osso/menus/applications.menu

=== Alternatives ===
There are a number of alternatives to the Application menu for launching applications. They are all available in [[Extras]].

==== Personal Launcher ====
[http://maemo.org/downloads/product/OS2008/personal-launch/ Personal Launcher] is a desktop applet that is visible from your home screen. You can add application (and command) shortcuts to it for one-tap access to your favorite programs.

==== Personal Menu ====
[http://maemo.org/downloads/product/OS2008/personal-menu/ Personal Menu] is very similar to Personal Launcher, except it's a menu instead of a desktop applet. This makes it a more direct replacement for the Application menu.

==See also==
*[[User:Jebba/Tweaks|A tutorial for Maemo 5 by Jebba]]

[[Category:Power users]]
[[Category:Fremantle]]
[[Category:Diablo]]</text>
    </revision>
  </page>
  <page>
    <title>Application list</title>
    <id>3033</id>
    <revision>
      <id>33606</id>
      <timestamp>2010-04-28T11:42:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Software]]</comment>
      <text xml:space="preserve">#REDIRECT [[Software]]</text>
    </revision>
  </page>
  <page>
    <title>Application menu</title>
    <id>3284</id>
    <revision>
      <id>25440</id>
      <timestamp>2009-12-31T11:04:25Z</timestamp>
      <contributor>
        <username>jayford</username>
        <id>1718</id>
      </contributor>
      <comment>[[Application menu]] moved to [[Application Menu]]: Title should be all capital letters</comment>
      <text xml:space="preserve">#REDIRECT [[Application Menu]]</text>
    </revision>
  </page>
  <page>
    <title>Applications you wish were ported from other platforms</title>
    <id>2280</id>
    <revision>
      <id>50581</id>
      <timestamp>2012-10-31T10:45:34Z</timestamp>
      <contributor>
        <ip>79.3.226.106</ip>
      </contributor>
      <comment>/* Communication */</comment>
      <text xml:space="preserve">Please list all those apps from other platforms (Symbian, Palm, iPhone, Java etc.) you can't live without, and you wish were available on your new ''maemo convergence device''.

Please list the product name here, also including the operating system, the developer's site (if you know it), and a brief summary of the functionality. 

You should include '''only already existing apps which are today available for other mainstream pocketable devices''', not generic &quot;rants&quot; for some generic fancy functionality, or applications meant for desktop computers. This way, we can keep high the signal-to-noise ratio and maybe select a number of developers we should convince to work on the new maemo platform.

Note: See the [[community wish-list]] for more general software requests.

== Closed Source ==

=== Communication ===

{| class=&quot;wikitable sortable&quot;
! Application !! class=&quot;unsortable&quot; | Description !! class=&quot;unsortable&quot; | Current platforms
|-
| [http://na.blackberry.com/eng/ataglance/connect/ BlackBerry Connect/Messenger] || connect to Blackberry services from non-Blackberry devices || Symbian
|-
| [http://nokia-5800-software.smartphoneware.com/blacklist.php Blacklist] || an application which blocks calls and SMSs from all the numbers in a black list. Optionally it should also be able to send custom messages when a blocked number calls or sends an SMS || Symbian
|-
| [http://www.abbyy.com/bcr/ Business Card Reader] || scans business cards using camera and populates an addressbook entry automatically || Symbian
|-
| [http://nokia-5800-software.smartphoneware.com/callrecorder.php Call Recorder] || a call recording application with rules for saving conversations for incoming/outgoing calls from known/unknown numbers. It should be able to record call automatically or manually by pressing a button. [[Recaller]] is a possible solution in [[extras]] ([http://maemo.org/downloads/product/Maemo5/recaller/ download page]) || Symbian
|-
| [http://wap.psiloc.com/en/Application,65540,Psiloc+Extended+Log Extend Log] || Extend the possibilities of the built-in Log. It also gives you much more possibilities, especially by enabling current cost calculations. Extended Log contains two independent modules: Reports and Billing scheme. || Symbian
|-
| [http://www.mobileways.de Gravity] || THE Twitter App for S60. [http://maemo.org/downloads/product/Maemo5/witter/ Witter] or [http://maemo.org/downloads/product/Maemo5/mauku/ Mauku] are possible solutions, in [[extras]]. || Symbian
|-
| [http://www.epocware.com/promo/handy_safe_pro.html Handy Safe Pro] || password and others manager, also with PC versions for backup/easy maintenance. Possible solutions are [http://maemo.org/packages/view/pwsafe/ Password Safe] in [[extras]] and [http://maemo.org/packages/view/Portabase/ Portabase] in [[extras-testing]] || Symbian
|-
| [http://thinkchange.cn/products/index/shakesms Shake SMS] || deals with SMS and Phone Lock using the Accelerometers technology, to make you use the phone in an easier way! || Symbian
|-
| [http://www.skebby.it/ Skebby] || send sms messages at low prices or for free. Possible solutions are [http://maemo.org/packages/view/www2sms/ Www2sms] in [[extras-testing]] and [http://maemo.org/packages/view/web2sms/ Web2SMS] in [[extras-devel]] || Symbian
|-
| [http://sms-spam-manager-s60-3rd-edition.softonic.de/symbian Sms spammanager] || blocks sms without giving a signal of the reciving sms, no notification of a new sms. Criteria for blocking is a phonenumber or a word recognizer (case intensive). The sms are not deleted, they are only moved inside the program, so it may be everytime checked if there is a sms which does not belong there. || Symbian
|-
| [http://www.mobimonster2.com/SMS_Timer.as SMS Timer] || an application which sends SMSs at a time scheduled earlier || Symbian
|-
| [http://www.teamspeak.com/?page=teamspeak3 Teamspeak 3] || communication system || Linux, Mac OS X, Windows
|-
| [http://www.truphone.com/  TruPhone] || send SMS at low price and allow cheap VoIP calls (at better than standard SIP quality || Symbian
|-
| [http://www.viber.com/  Viber] || Free calls, text and picture sharing || Symbian, iOS, Android, WP, Blackberry, Bada
|-
| [http://www.whatsapp.com/ WhatsApp] || cross-platform mobile messenger that replaces SMS which uses internet data ||  iPhone, BlackBerry, Android, Symbian
|}

=== Education and Reference ===

{| class=&quot;wikitable sortable&quot;
! Application !! class=&quot;unsortable&quot; | Description !! class=&quot;unsortable&quot; | Current platforms
|-
| [http://www.pleco.com/ Pleco] || Chinese dictionary and tools || iPhone, Android, Windows Mobile, Palm
|-
| [http://www.wenlin.com/ Wenlin] || Chinese wordprocessor and dictionary || Windows Mobile
|-
| [http://www.watchtower.org/ Watchtower Library] || Bible research library (JW publications) || Windows Mobile
|}

=== Games ===

{| class=&quot;wikitable sortable&quot;
! Application !! class=&quot;unsortable&quot; | Description !! class=&quot;unsortable&quot; | Current platforms
|-
| [http://www.thewayoftheninja.org/n_downloads.html N Game] || Be warned, N is a highly addictive, sometimes very frustrating game || Linux, Mac OS X, Windows
|-
| [http://www.spheresofchaos.com/index.php Spheres of Chaos] || insane asteroids clone || Linux, Windows
|-
| [http://www.gnu.org/software/liquidwar6/ LiquidWar6] || replacement of LiquidWar5 in maemo|| Desktop PC
|-
| [http://en.wikipedia.org/wiki/Aquaria_%28video_game%29 Aquaria] || Open-Sourced cross-platform 2D underwater Adventure || iOS, PSP, OpenGL
|- 
| [http://www.sticksports.com/mobile/ Stick Cricket] || Chart-topping… Award-winning… GDP-reducing… Need we say more? Stick Cricket, the world's most popular cricket game || iPhone, iPod Touch, iPad, Android
|-
|}

=== Multimedia ===


{| class=&quot;wikitable sortable&quot;
! Application !! class=&quot;unsortable&quot; | Description !! class=&quot;unsortable&quot; | Current platforms
|-
| [http://www.ttpod.com/ TTPod Musicplayer] || Java-based musicplayer for symbian with many posibilitys. || Symbian
|-
| [http://amazon.com/mp3 Amazon MP3 mobile] || App to buy and manage mp3 downloads from Amazon MP3 store || iPhone, Android
|-
| [http://audials.com/ Audials mobile] || searches for author or genre, leeches MP3 files from online social radios || Symbian
|-
| [http://www.audio-surf.com/ Audiosurf] || a music-adapting puzzle racer where one uses their own music collection to create their own experience. The shape, speed, and mood of each race is determined by the chosen song || Windows
|-
| [http://www.coreplayer.com/ Coreplayer] || Multimedia playback ||  Symbian, Symbian UIQ, Windows Mobile, Palm, WinCE
|-
| Gforce || open source version of GForce visualization plugin. Only old libvisual plugin available. Portability unknown || Linux
|-
| [http://localhost.nl/~synap/libvisual-wiki libvisual] ||  portable visualization abstraction layer for *NIX. Portable to ARMEL. May not support PA || Linux
|-
| [http://www.midomi.com/index.php?action=main.mobile Midomi] || audio recognition software akin to Shazam ID but can also recognise from humming/singing || Symbian, iPhone, Windows Mobile, Android
|-
| [http://projectm.sf.net projectM] || port of Winamp Milkdrop, uses OpenGL. Portable to ARMEL || Linux
|-
| [http://spotify.com/ Spotify client] || Client for streaming music from Spotify service. ([https://garage.maemo.org/projects/qtify Qtify] is [http://maemo.org/packages/view/qtify/ available from Extras-devel repo]) || Android, iPhone, Symbian
|-
| [http://www.shazam.com/ Shazam ID] || listens to music and recognizes author and title || Symbian, Iphone, Blackberry, Android
|}

=== Location Aware ===

{| class=&quot;wikitable sortable&quot;
! Applications !! class=&quot;unsortable&quot; | Description !! class=&quot;unsortable&quot; | Current platforms
|-
| [http://itunes.apple.com/au/app/aroundme/id290051590?mt=8 AroundMe] || Based on your location, shows shops, services, facilities etc. Can even search for a specific item and will show you the ones closest to you. Also integrates with maps/GPS for directions to get there. A partial solution is [http://maemo.org/downloads/product/Maemo5/cservices/ Casual Services] in [[extras]] || iPhone
|-
| [http://buddycloud.com/ BuddyCloud] || enables users to broadcast their personality and their location to friends and find location specific information || Symbian
|-
| [http://www.alk.com/copilot/ CoPilot] || GPS navigation system. A solution is [http://www.sygic.com/index.php/en/mobile-maps-overview.html Sygic Mobile Maps]: 1-week free demo version of application and maps is available on [http://store.ovi.com/publisher/Sygic/ Ovi Store], full version can be purchased from company website. || Symbian, iPhone, Android
|-
| [http://www8.garmin.com/mobile/mobilext/ Garmin] || GPS navigation system. A solution is [http://www.sygic.com/index.php/en/mobile-maps-overview.html Sygic Mobile Maps]: 1-week free demo version of application and maps is available on [http://store.ovi.com/publisher/Sygic/ Ovi Store], full version can be purchased from company website. || Symbian, Windows Mobile, Blackberry
|-
| [http://www.geolives.com GeoLives] || Topographic mapping and offroad navigation GPS || Symbian, Windows Mobile
|-
| [http://www.google.com/mobile/products/maps.html#p=default Google maps for mobile] ||  maps application with points-of-interest taken from the Google search engine || Symbian, iPhone, Android, Blackberry, WebOS, Java MIDP, Windows Mobile
|-
| [http://www.twofortyfouram.com/ Locale] || Location based profile settings for phone (specific locations trigger events for ringtone, volume, brightness, GPS/Wifi/Blutooth to be on off) || Android
|-
| [http://maps.ovi.com OVI Maps] || GPS navigation system (exists but with reduced feature set) || Symbian
|-
| [http://www.66.com Route66 Maps] || GPS door-to-door navigation. A solution is [http://www.sygic.com/index.php/en/mobile-maps-overview.html Sygic Mobile Maps]: 1-week free demo version of application and maps is available on [http://store.ovi.com/publisher/Sygic/ Ovi Store], full version can be purchased from company website. || Symbian, Windows Mobile
|-
| [http://www.tomtom.com/products/category.php?ID=2&amp;Lid=1 TomTom Navigator] || GPS door-to-door navigation with accurate maps and spoken instructions. A solution is [http://www.sygic.com/index.php/en/mobile-maps-overview.html Sygic Mobile Maps]: 1-week free demo version of application and maps is available on [http://store.ovi.com/publisher/Sygic/ Ovi Store], full version can be purchased from company website. || Symbian, Windows Mobile, iPhone
|-
| [http://trapster.com/download_phones.php Trapster] || Speed camera tracking and warning || Symbian, iPhone, Windows Mobile, Blackberry, Android, WebOS
|-
| [http://www.viewranger.com ViewRanger] || Topographic mapping and offroad navigation GPS || Symbian
|-
| [http://www.waze.com/homepage/ Waze] || crowd sourced mapping &amp; traffic alerts, navigation and location based pac-man like game || Symbian, iPhone, Windows Mobile, Blackberry, Android
|-
| [http://www.worldmate.com/ WorldMate] || Travel information || Symbian, iPhone, Blackberry, Windows Mobile
|}

=== Sports/Exercise ===

{| class=&quot;wikitable sortable&quot;
! Application !! class=&quot;unsortable&quot; | Description !! class=&quot;unsortable&quot; | Current platforms
|-
| [http://www.igolfscorer.com/ iGolf Scorer] || An application dedicated to Golfers || Symbian
|-
| [http://www.runkeeper.com/ RunKeeper] || tracks running through GPS. A possible solution is [http://maemo.org/downloads/product/Maemo5/ecoach/ eCoach] in [[extras]]. || iPhone
|-
| [http://sportstracker.nokia.com/ SportsTracker] || GPS based activity tracker. A possible solution is [http://maemo.org/downloads/product/Maemo5/ecoach/ eCoach] in [[extras]]. || Symbian
|-
| [http://betalabs.nokia.com/betas/view/nokia-step-counter StepCounter] || Counts your steps, determines the distance you have covered and your energy expenditure, records data. || Symbian
|-
| [http://betalabs.nokia.com/betas/view/wellness-diary Wellness Diary] || Monitor and track a ranger of health related parameters || Symbian
|}

=== Misc ===

{| class=&quot;wikitable sortable&quot;
! Application !! class=&quot;unsortable&quot; | Description !! class=&quot;unsortable&quot; | Current platforms
|-
| [http://www.abbyy.com/lingvomobile ABBYY Lingvo Mobile] || multilingual translation dictionary for mobile devices || Symbian, Windows Mobile
|-
| [http://www.aka-aki.com/ Aka Aki] || a social mobile network using bluetooth || iPhone
|-
| [http://www.amazon.com/gp/feature.html?ie=UTF8&amp;docId=1000291661 Amazon Mobile] || ebook reader for Amazon books || iPhone
|-
| [http://nokia-5800-software.smartphoneware.com/profiles.php Automatic profile switcher] || the profile, theme, wallpaper, audio and all user customizable content can be set automatically based on user location(gps/GSM cell id), time, calendar entry, etc. || Symbian
|-
| [http://nokia-5800-software.smartphoneware.com/birthday.php Birthday Reminder] || an application that helps organizing and viewing birthdays and anniversaries in a handy way: monthly view of anniversaries found in Contacts applications. It also puts an appointment in the native calendar and sends greeting automaticaly(if user wishes so) || Symbian
|-
| [http://webgate.mobi/advanced_device_locks_pro/ Device Lock] || Mobile security - restrict access to apps, secure data storage, remotely lock/wipe data || Symbian
|-
| [http://www.epocrates.com Epocrates] || medical drug reference || WebOS, Windows Mobile, iPhone, BlackBerry
|-
| [http://www.flyingbirdsoft.com/products/flyingmoney.html Expense Tracker] || an application to track day-to-day expenses. It should also give nice reports of all the expenses || Symbian
|-
| [[:wikipedia:Getting_Things_Done|Getting Things Done]] || like [http://www.omnigroup.com/applications/omnifocus/ ominfocus] - with sync capabilities (at least with) the N900 calendar application || iPhone, Mac OS X
|-
| [http://www.lingvosoft.com/LingvoSoft-Arabic-Platinum-Pack Lingvosoft PhraseBook Arabic-English] || multilingual translation Pharasebooks and Dictionaries. an excellent keep for travelers || Blackberry, Windows Mobile
|-
| [http://talk.maemo.org/showthread.php?t=32512 Mode Switch] || changes active standby (shortcuts not necessary!), themes and maybe also display light brightness, gsm alerting profile, im status and so on || Symbian
|-
| [http://mymobilesite.net/ Mobile Web Server] || makes your device accessible on the Internet. You can access phone features and data via a browser and share your life through a personalized mobsite || Symbian
|-
| [http://www.bit-side.com/ Panoman (dead link)] || Make and view panorama images with phone. Company bought by Nokia. A possible solution si Morpho QuickPanorama: both [http://store.ovi.com/content/23154 free trial] and [http://store.ovi.com/content/32678 paid Pro version] are available on Ovi Store. || Symbian
|-
| [http://www.pulse.me/ Pulse News] || news reading application that changes your favorite websites into an attractive mosaic of info. || Android, iPhone
|- 
| [http://www.devtoaster.com/products/rev/ REV] || reads information straight from the OBD-II port on your car and displays it on your iPhone. Rev can display things like vehicle speed, RPM, fuel consumption, calculated engine load, and a host of other parameters. You'll even be able to check and reset engine and error codes. || iPhone
|-
| [http://iphone.toughturtle.com/stockwatch/ StockWatch] || financial app to monitor a list of user defined stocks and portfolio's and all financial graphs and data associated with the said stocks. [http://maemo.org/downloads/product/Maemo5/stockthis/ StockThis] in [[extras]] is a possible solution || iPhone
|-
| [http://www.t9nav.com/ T9 Nav] || find anything on mobile device instantly || Symbian
|-
| [http://www.vlingo.com/ Vlingo] || control mobile phone by voice || Symbian, Windows Mobile, Blackberry, iPhone
|-
| [https://www.wavesecure.com/ WaveSecure] || allows remote backup, tracking and locking of a stolen phone || Symbian
|-
| [http://www.lexcycle.com/ Stanza] || ebook reader able toread many ebook format. A possible solution is [http://maemo.org/downloads/product/Maemo5/fbreader/ FBReader] in [[extras]] || iPhone
|-
| [http://spb.com/pocketpc-software/mobileshell/ SPB shell] || mobileshell || Windows Mobile (touchscreens),Symbian
|-
| [http://spb.com/symbian-software/weather/ SPB weather] || weather forecast || 
Windows Mobile (touchscreens),Symbian
|
|-
| [http://www.Unity3d.com Unity3D] || a plugin for displaying 3d content || 
Windows / MacOS
|
|-
| [http://www.iambic.com/agendus/palmos/ Agendus] || a real usable calendar application || 
PalmOS, iOS
|
|-
| [http://www.pimlicosoftware.com/ Pimlical] || a real usable calendar application with SyncML or Activesync || 
PalmOS, Android
|}

== Open Source ==

Insert here, instead, those '''free and open-source application''' you wish on your maemo 5 device. Being non commercial software, with source available, they might be more straightforward to port, needing only (!) good-will, time and energy.

=== Office ===

{| class=&quot;wikitable sortable&quot;
! Application !! class=&quot;unsortable&quot; | Description !! class=&quot;unsortable&quot; | Current platforms
|-
| [http://basket.kde.org/index.php BasKet Note Pads] || A powerful Outliner with which you can organize all your notes easily. || Linux
|-
| [http://www.gimp.org/ GIMP] || GNU image manipulation program. Preinstalled within [http://maemo.org/downloads/product/Maemo5/easy-deb-chroot/ Easy Debian] in [[extras]]. || Linux, Mac OS X, Windows
|-
| [http://www.inkscape.org/ Inkscape] || scalable vector graphics editor.  It can be installed within [http://maemo.org/downloads/product/Maemo5/easy-deb-chroot/ Easy Debian] in [[extras]]. || Linux, Mac OS X, Windows
|-
| [http://www.lyx.org/ Lyx] || excellent word processor, well suited to use with a small screen. Uses Qt toolkit, so should be a straightforward port. || Linux, Mac OS X, Windows
|-
| [http://www.openoffice.org Openoffice.org] || open-source, free office suite. Already available for armel architecture in Debian. Preinstalled within [http://maemo.org/downloads/product/Maemo5/easy-deb-chroot/ Easy Debian] in [[extras]]. || Linux, Mac OS X, Windows
|-
| [http://siag.nu/ Siag Office] || tightly integrated, free office package || Linux
|}

=== Communication ===

{| class=&quot;wikitable sortable&quot;
! Application !! class=&quot;unsortable&quot; | Description !! class=&quot;unsortable&quot; | Current platforms
|-
| [http://cabbagetexter.com/ Cabbage] || Send free txts via SMS.  Irish only and Java, so unsure if it should be here, but a more sophisticated version would be nice. [http://maemo.org/packages/view/webtexter/ WebTexter] is based on Cabbage || Java
|-
| [http://www.mcleaner.com/ mcleaner] || SMS and phone call blacklisting || Symbian, iPhone
|-
| [https://github.com/WhisperSystems/TextSecure TextSecure] || Send and recieve encrypted SMS messages via OTR || Android
|-
| [http://code.google.com/p/microblog-purple/ microblog-purple] || microblogging support for libpurble clients, for example Pidgin || Linux, Windows
|}

=== Games ===

{| class=&quot;wikitable sortable&quot;
! Application !! class=&quot;unsortable&quot; | Description !! class=&quot;unsortable&quot; | Current platforms
|-
| [http://rephial.org/ Angband] || Nethack-like || Linux, Mac OS X, Windows
|-
| [http://www.armagetronad.net/ Armegatron advanced] || a tron clone in 3D || Linux, Mac OS X, Windows
|-
| [http://bub-n-bros.sourceforge.net/ Bub's Brothers] || Bubble Bobble clone || Linux
|-
| [http://www.bergo.eng.br/eboard/ Eboard] || Chess board interface to ICS (Internet Chess Servers) like FICS and to chess engines like GNU Chess, Sjeng and Crafty || Linux, [[Open development/Maemo roadmap/Diablo|Diablo]]
|-
| [http://exult.sourceforge.net/ Exult Game engine] ||  An engine for Ultima 7 BlackGate and SerpentIsle, also available for symbian from anotherguest.se || Linux, Windows, Symbian
|-
| [http://sourceforge.net/projects/freecnc FreeCNC] / [http://freera.sourceforge.net/ FreeRA] || Free and open source engines for Command and Conquer and Red Alert. [http://sourceforge.net/projects/openredalert/ OpenRedAlert] is a fork of FreeRA and a preliminary (rather unstable) version for N900 is available. Installation instructions [http://talk.maemo.org/showpost.php?p=563097&amp;postcount=4 here]. Note: the original Red Alert has been released as freeware in 2008, so it is legal to use the original game files. || Linux, Windows
|-
| [http://www.flightgear.org/ FlightGear] || Free open source flight simulator || Linux, Mac OS X, Windows, Solaris, sgi, FreeBSD
|-
| [http://freesynd.sourceforge.net/ FreeSynd] || A critically-acclaimed RPG with online play || Linux, Windows
|-
| [http://fretsonfire.sourceforge.net/ Frets on Fire] || Free open source variant on Guitar Hero || Linux, Mac OS X, Windows
|-
| [http://www.hedgewars.org/ Hedgewars] || Worms clone.  || Linux, Mac OS X, Windows
|-
| [http://neverball.org/index.php Neverball] || Similar game to Bounce, excellent graphics and very nice levels. [http://blog.mardy.it/search/label/neverball IN PROGRESS]|| Linux
|-
| Quake 1 || http://koti.mbnet.fi/hinkka/Download.html - not fully open source but ported on as many platforms as it gets. || Linux, Mac OS X, Windows, Symbian
|-
| [http://www.artsoft.org/rocksndiamonds/ Rocks 'n' diamonds] || Boulderdash clone || Linux, Mac OS X, Windows
|-
| [http://scid.sourceforge.net/ Scid] || Chess database application || Linux, Mac OS X, Windows
|-
| [http://wargus.sourceforge.net/ Wargus] / Stratagus || Wargus is a Warcraft2 Mod that allows you to play Warcraft2 (original DOS version required) with the Stratagus engine, also available for symbian from anotherguest.se. [http://maemo.org/packages/view/wargus/ IN PROGRESS, in extras-devel] || Linux, Windows, Symbian
|}

=== Misc ===

{| class=&quot;wikitable sortable&quot;
! Application !! class=&quot;unsortable&quot; | Description !! class=&quot;unsortable&quot; | Current platforms
|-
| [http://aeskulap.nongnu.org/ Aeskulap] || radiology viewer (or any other that works, for that matter) || Linux, Windows
|-
| [http://alexandria.rubyforge.org/ Alexandria] || Book collection manager || Linux
|-
| [http://www.blender.org/ Blender] || 3D modelling || Linux, Mac OS X, Windows
|-
| [http://dooble.sourceforge.net/ dooble] || web browser || Linux, Mac OS X, Windows (and any ARMEL platform, including N900 and untested iPhone)
|-
| [http://freemind.sourceforge.net/wiki/index.php/Main_Page Freemind] || Mind-mapping application || Java
|-
| [http://gcstar.org/ GCStar] || collection management || Linux, Mac OS X, Windows
|-
| [http://grecipe-manager.sourceforge.net/ Gourmet recipe manager] || recipe manager. [http://pyrecipe.garage.maemo.org Pyrecipe] is a good alternative || Linux, Windows
|-
| [http://code.google.com/p/hpcalc-iphone/ hpcalc] || HP Calculator (HP-11c Scientific, HP-15c Scientific, HP-12c Financial, HP-16c Programmer) Emulator || Iphone
|-
| [http://symbianresources.com/projects/hourpower.php Hour Power] || speaks the current time (see Ovi). An alternative: [https://garage.maemo.org/projects/espeaktime eSpeaktime] || Symbian
|-
| [http://hugin.sourceforge.net/ Hugin] ||  Panorama photo stitcher, With Hugin you can assemble a mosaic of photographs into a complete immersive panorama, stitch any series of overlapping pictures and much more. Check the [http://talk.maemo.org/showthread.php?t=63215 Panorama application], available in the Ovi Store || Linux
|-
| [[Java]] || virtual machine for running Java applications. [http://maemo.org/downloads/product/Maemo5/icedtea6/ IcedTea6] version of the OpenJDK is available in [[extras]]. || Linux, Mac OS X, Windows, others
|-
| [[:wikipedia:Java_Platform,_Micro_Edition|J2ME]] || virtual machine for running 'mobile' (actually micro) edition Java applications. [http://maemo.org/packages/view/microemulator/ MicroEmulator] is available in [[extras-testing]].  || 
|-
| [http://musicbrainz.org/ Musicbrainz Picard] || MP3 tagger || Linux, Mac OS X, Windows
|-
| [http://www.pulseaudio.org/wiki/SystemEqualizer PulseAudio Equalizer] || provides system-wide equalizer via PA || Linux
|-
| [http://puppylinux.org/wikka/PuppyBasic PuppyBasic] || BASIC programming language || Linux
|-
| [http://pyjs.org/ Pyjamas] || write your own AJAX framework || Linux, Mac OS X, Windows
|-
| [http://www.qgis.org/ Quantum GIS] || geographic information system || Linux, Mac OS X, Windows
|-
| [http://code.google.com/p/remuco Remuco-Client] || duplex remote control system for Linux media players and mobile phones equipped with Bluetooth or WiFi || Java
|-
| [http://code.google.com/p/android-shuffle/ Shuffle] || Android GTD application, similar to [http://www.omnigroup.com/applications/omnifocus/ OmniFocus] || Android
|-
| [http://www.taskcoach.org/ Task Coach] || task management || Linux, Mac OS X, Windows, iPhone
|-
| [http://tellico-project.org/ Tellico] || Collection manager, books, videos, etc. || Linux
|-
| [http://www.truecrypt.org/ TrueCrypt] || Cross platform Disk Encryption, allows encrypted containers or partitions. Command-line port exists, GUI port wanted || Linux, Mac OS X, Windows
|-
| [http://x48.berlios.de/ x48] || HP 48 calculator emulator || Linux
|-
| [http://xoscope.sourceforge.net/ xoscope] || digital oscilloscope || Linux
|
|-
|  [http://www.qsl.net/n1vtn/petittrack.html Petittrack] || A great free/OSS satellite prediction and sky tracking application using NASA TLE elements, designed for handhelds. used mostly for portable amateur radio satellite communications|| Trolltech Linux, Sharp Zaurus QTopia
|}

[[Category:Fremantle]]
[[Category:Users]]</text>
    </revision>
  </page>
  <page>
    <title>Apt-mirror</title>
    <id>5216</id>
    <revision>
      <id>50259</id>
      <timestamp>2012-10-19T12:35:42Z</timestamp>
      <contributor>
        <username>pali</username>
        <id>2764</id>
      </contributor>
      <comment>/* mirror.list for Maemo 2.0 Mistral */ Remove extras-devel which not exist</comment>
      <text xml:space="preserve">Apt-mirror is perl script which mirroring apt repositories. It can be used to mirror Maemo repositories.

Mirroring downloads.maemo.nokia.com is not possible with current apt-mirror version because nokia server needs to receive Basic HTTP Authentication via HTTPS protocol and apt-mirror does not support it.

This problem was reported in ubuntu bug [https://bugs.launchpad.net/ubuntu/+source/apt-mirror/+bug/1015131 #1015131] with patch [https://bugs.launchpad.net/ubuntu/+source/apt-mirror/+bug/1015131/+attachment/3195994/+files/apt-mirror-https.patch apt-mirror-https.patch]

=Steps to configure apt-mirror on local linux machine=

* Download and install '''apt-mirror''' from http://apt-mirror.sourceforge.net/
On Ubuntu can be installed via apt-get
 apt-get install apt-mirror


* Apply patch [https://bugs.launchpad.net/ubuntu/+source/apt-mirror/+bug/1015131/+attachment/3195994/+files/apt-mirror-https.patch apt-mirror-https.patch] from launchpad bug [https://bugs.launchpad.net/ubuntu/+source/apt-mirror/+bug/1015131 #1015131]
On Ubuntu apt-mirror is installed in /usr/bin
 cd /usr/bin &amp;&amp; sudo patch -p0 -i /path/to/apt-mirror-https.patch


* Create apt-mirror config file '''mirror.list'''
Copy [[Apt-mirror#mirror.list_for_Maemo_5_Fremantle|Maemo 5 Fremantle mirror.list]] file.

base_path - path where will be all files downloaded

nthreads - number of maximal parallel downloads

On Ubuntu default '''mirror.list''' is /etc/apt/mirror.list


* Run apt-mirror manually:
 apt-mirror /path/to/mirror.list
On Ubuntu if file argument is not specified default /etc/apt/mirror.list is used


* Run apt-mirror automatically:
Install cron and configre file /etc/cron.d/apt-mirror

 #
 # Regular cron jobs for the apt-mirror package
 #
 0 4	* * *	apt-mirror	/usr/bin/apt-mirror &gt; /var/spool/apt-mirror/var/cron.log

=mirror.list for Harmattan=

 ### System configuration (this can be changed) ###
 set base_path             /var/spool/apt-mirror
 set nthreads              20
 
 ### Repositories configuration ###
 set defaultarch           armel
 set auth_no_challenge     1
 set no-check-certificate  1
 
 ### Official Nokia/Maemo repositories ###
 
 # Nokia Applications
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/harmattan/apps/ ./
 
 # Nokia Tools
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/harmattan/tools/ ./
 
 # Nokia System Software Updates
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/harmattan/001/ ./
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/harmattan/003/ ./
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/harmattan/005/ ./
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/harmattan/006/ ./
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/harmattan/007/ ./
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/harmattan/009/ ./
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/harmattan/rm680/ ./
 
 # SDK repository
 deb http://harmattan-dev.nokia.com/ harmattan/sdk free non-free
 deb-i386 http://harmattan-dev.nokia.com/ harmattan/sdk free non-free
 deb-src http://harmattan-dev.nokia.com/ harmattan/sdk free
 
 # Nokia-binaries
 deb http://harmattan-dev.nokia.com/ harmattan/41667a5bd857be02f487c2ce806fbf85 nokia-binaries
 deb-i386 http://harmattan-dev.nokia.com/ harmattan/41667a5bd857be02f487c2ce806fbf85 nokia-binaries
 
 # Apps for MeeGo
 deb http://repo.apps.formeego.org/harmattan/apps/ ./
 
 # Apps for MeeGo (testing)
 deb http://repo.apps.formeego.org/harmattan/apps-testing/ ./
 
 ### Other 3rd repositories ###
 
 # MohammadAG's repo
 deb http://mohammadag.xceleo.org/n9inceptedrepo/ harmattan-incepted free non-free
 deb-src http://mohammadag.xceleo.org/n9inceptedrepo/ harmattan-incepted free non-free

=mirror.list for Maemo 5 Fremantle=

 ### System configuration (this can be changed) ###
 set base_path             /var/spool/apt-mirror
 set nthreads              20
 
 ### Repositories configuration ###
 set defaultarch           armel
 set auth_no_challenge     1
 set no-check-certificate  1
 
 ### Official Nokia/Maemo repositories ###
 
 # Nokia Applications
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/fremantle/apps/ ./
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/fremantle/ssu/apps/ ./
 
 # Nokia System Software Updates (Global)
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/fremantle/ssu/mr0 ./
 
 # Nokia System Software Updates (USA)
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/fremantle/ssu/002 ./
 
 # Nokia System Software Updates (Middle East and North Africa)
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/fremantle/ssu/003 ./
 
 # Nokia System Software Updates (India)
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/fremantle/ssu/004 ./
 
 # Nokia System Software Updates (UK)
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/fremantle/ssu/203 ./
 
 # Nokia System Software Updates (Portuguese)
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/fremantle/ssu/204 ./
 
 # Nokia System Software Updates (Vodafone UK)
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/fremantle/ssu/205 ./
 
 # Nokia System Software Updates (Poland)
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/fremantle/ssu/206 ./
 
 # Nokia System Software Updates (Taiwan)
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/fremantle/ssu/207 ./
 
 # Nokia System Software Updates (Hongkong)
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/fremantle/ssu/208 ./
 
 # Nokia System Software Updates (Brasil)
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/fremantle/ssu/210 ./
 
 # Ovi
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/fremantle/ovi/ ./
 deb https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/fremantle1.2/ovi/ ./
 
 # SDK repository
 deb http://repository.maemo.org/ fremantle/sdk free non-free
 deb-i386 http://repository.maemo.org/ fremantle/sdk free non-free
 deb-src http://repository.maemo.org/ fremantle/sdk free
 
 # Tools repository
 deb http://repository.maemo.org/ fremantle/tools free non-free
 deb-i386 http://repository.maemo.org/ fremantle/tools free non-free
 deb-src http://repository.maemo.org/ fremantle/tools free
 
 # Nokia-binaries
 deb http://repository.maemo.org/ fremantle/4bc37c7c77ebe90177c050b805a8dc79 nokia-binaries
 deb-i386 http://repository.maemo.org/ fremantle/4bc37c7c77ebe90177c050b805a8dc79 nokia-binaries
 
 # Extras
 deb http://repository.maemo.org/extras/ fremantle free non-free
 deb-i386 http://repository.maemo.org/extras/ fremantle free non-free
 deb-src http://repository.maemo.org/extras/ fremantle free
 
 # Extras-testing
 deb http://repository.maemo.org/extras-testing/ fremantle free non-free
 deb-i386 http://repository.maemo.org/extras-testing/ fremantle free non-free
 deb-src http://repository.maemo.org/extras-testing/ fremantle free
 
 # Extras-devel
 deb http://repository.maemo.org/extras-devel/ fremantle free non-free
 deb-i386 http://repository.maemo.org/extras-devel/ fremantle free non-free
 deb-src http://repository.maemo.org/extras-devel/ fremantle free
 
 # Community SSU
 deb http://repository.maemo.org/community/ fremantle free
 deb-src http://repository.maemo.org/community/ fremantle free
 
 # Community SSU (testing)
 deb http://repository.maemo.org/community-testing/ fremantle free
 deb-src http://repository.maemo.org/community-testing/ fremantle free
 
 # Community SSU (devel)
 deb http://maemo.merlin1991.at/cssu/community-devel/ fremantle free
 deb-src http://maemo.merlin1991.at/cssu/community-devel/ fremantle free
 
 # Community SSU (testing-thumb)
 deb http://maemo.merlin1991.at/cssu/community-thumb/ fremantle free
 deb-src http://maemo.merlin1991.at/cssu/community-thumb/ fremantle free
 
 ### Other 3rd repositories ###
 
 # Jacekowski (chromium and code-reset)
 deb http://maemo.jacekowski.org/ fremantle free
 deb-src http://maemo.jacekowski.org/ fremantle free
 
 # Opera Catalog
 deb http://deb.opera.com/maemo/ fremantle non-free
 
 # Sygic Mobile Maps
 deb http://repository.sygic.com/maemo/ fremantle non-free
 
 # Joikusoft Products
 deb http://www.joikushop.com/maemospot/ /
 
 # VideoLAN
 deb http://download.videolan.org/pub/videolan/maemo/ fremantle free
 
 # aMSN
 deb http://www.amsn-project.net/maemo/ fremantle amsn tcltk
 
 # Kontact Mobile Testing
 deb http://files.kolab.org/local/maemo/ fremantle testing extras
 deb-src http://files.kolab.org/local/maemo/ fremantle testing extras
 
 # KDEPIM Mobile Experimental
 deb http://files.kolab.org/local/maemo/ fremantle experimental unstable
 deb-src http://files.kolab.org/local/maemo/ fremantle experimental unstable

=mirror.list for Maemo 4.1 Diablo=

 ### System configuration (this can be changed) ###
 set base_path             /var/spool/apt-mirror
 set nthreads              20
 
 ### Repositories configuration ###
 set defaultarch           armel
 
 ### Official Nokia/Maemo repositories ###
 
 # Nokia System Software Updates
 deb http://catalogue.tableteer.nokia.com/updates/diablo/ ./
 deb http://catalogue.tableteer.nokia.com/updates/diablo-1/ ./
 deb http://catalogue.tableteer.nokia.com/updates/diablo-2/ ./
 
 # Nokia Catalogue
 deb http://catalogue.tableteer.nokia.com/certified/ diablo user
 deb-i386 http://catalogue.tableteer.nokia.com/certified/ diablo user
 deb-src http://catalogue.tableteer.nokia.com/certified/ diablo user
 
 # Nokia Catalogue (3rd party applications)
 deb http://catalogue.tableteer.nokia.com/non-certified/ diablo user
 deb-i386 http://catalogue.tableteer.nokia.com/non-certified/ diablo user
 deb-src http://catalogue.tableteer.nokia.com/non-certified/ diablo user
 
 # SDK repository
 deb http://repository.maemo.org/ maemo4.1/sdk free non-free
 deb http://repository.maemo.org/ maemo4.1.1/sdk free non-free
 deb http://repository.maemo.org/ maemo4.1.2/sdk free non-free
 deb-i386 http://repository.maemo.org/ maemo4.1/sdk free non-free
 deb-i386 http://repository.maemo.org/ maemo4.1.1/sdk free non-free
 deb-i386 http://repository.maemo.org/ maemo4.1.2/sdk free non-free
 deb-src http://repository.maemo.org/ maemo4.1/sdk free
 deb-src http://repository.maemo.org/ maemo4.1.1/sdk free
 deb-src http://repository.maemo.org/ maemo4.1.2/sdk free
 
 # Tools repository
 deb http://repository.maemo.org/ maemo4.1/tools free non-free
 deb http://repository.maemo.org/ maemo4.1.1/tools free non-free
 deb http://repository.maemo.org/ maemo4.1.2/tools free non-free
 deb-i386 http://repository.maemo.org/ maemo4.1/tools free non-free
 deb-i386 http://repository.maemo.org/ maemo4.1.1/tools free non-free
 deb-i386 http://repository.maemo.org/ maemo4.1.2/tools free non-free
 deb-src http://repository.maemo.org/ maemo4.1/tools free
 deb-src http://repository.maemo.org/ maemo4.1.1/tools free
 deb-src http://repository.maemo.org/ maemo4.1.2/tools free
 
 # Nokia binaries
 # apt reposiory is stored in shell script tarball on:
 #  http://repository.maemo.org/stable/4.1/maemo-sdk-nokia-binaries_4.1.sh
 #  http://repository.maemo.org/stable/4.1.1/maemo-sdk-nokia-binaries_4.1.1.sh
 #  http://repository.maemo.org/stable/4.1.2/maemo-sdk-nokia-binaries_4.1.2.sh
 # shell script tarball can be extracted by these commands:
 #  FILE=maemo-sdk-nokia-binaries_4.1.2
 #  LINE=$((`grep -an '^__END__$' &quot;$FILE.sh&quot; | head -1 | cut -f1 -d:`+1))
 #  tail -n +$LINE $FILE.sh &gt; $FILE.tar.gz
 #  tar -xvf $FILE.tar.gz
 
 # Rtcomm beta
 deb http://repository.maemo.org/rtcomm/ diablo free non-free
 deb-i386 http://repository.maemo.org/rtcomm/ diablo free non-free
 deb-src http://repository.maemo.org/rtcomm/ diablo free
 
 # Extras
 deb http://repository.maemo.org/extras/ diablo free non-free
 deb-i386 http://repository.maemo.org/extras/ diablo free non-free
 deb-src http://repository.maemo.org/extras/ diablo free
 
 # Extras-devel
 deb http://repository.maemo.org/extras-devel/ diablo free non-free
 deb-i386 http://repository.maemo.org/extras-devel/ diablo free non-free
 deb-src http://repository.maemo.org/extras-devel/ diablo free
 
 # Community SSU
 deb http://repository.maemo.org/community/ diablo free
 deb-src http://repository.maemo.org/community/ diablo free
 
 # Community SSU (testing)
 deb http://repository.maemo.org/community-testing/ diablo free
 deb-src http://repository.maemo.org/community-testing/ diablo free
 
 ### Other 3rd repositories ###
 
 # Opera Catalog
 deb http://deb.opera.com/maemo/ diablo non-free


=mirror.list for Maemo 4.0 Chinook=

 ### System configuration (this can be changed) ###
 set base_path             /var/spool/apt-mirror
 set nthreads              20
 
 ### Repositories configuration ###
 set defaultarch           armel
 
 ### Official Nokia/Maemo repositories ###
 
 # Nokia System Software Updates
 deb http://catalogue.tableteer.nokia.com/updates/chinook/ ./
 
 # Nokia Catalogue
 deb http://catalogue.tableteer.nokia.com/certified/ chinook user
 deb-i386 http://catalogue.tableteer.nokia.com/certified/ chinook user
 deb-src http://catalogue.tableteer.nokia.com/certified/ chinook user
 
 # Nokia Catalogue (3rd party applications)
 deb http://catalogue.tableteer.nokia.com/non-certified/ chinook user
 deb-i386 http://catalogue.tableteer.nokia.com/non-certified/ chinook user
 deb-src http://catalogue.tableteer.nokia.com/non-certified/ chinook user
 
 # SDK repository
 deb http://repository.maemo.org/ maemo4.0-beta free non-free
 deb http://repository.maemo.org/ maemo4.0 free non-free
 deb http://repository.maemo.org/ maemo4.0.1 free non-free
 deb-i386 http://repository.maemo.org/ maemo4.0-beta free non-free
 deb-i386 http://repository.maemo.org/ maemo4.0 free non-free
 deb-i386 http://repository.maemo.org/ maemo4.0.1 free non-free
 deb-src http://repository.maemo.org/ maemo4.0-beta free
 deb-src http://repository.maemo.org/ maemo4.0 free
 deb-src http://repository.maemo.org/ maemo4.0.1 free
 
 # Nokia binaries
 # apt reposiory is stored in shell script tarball on:
 #  http://repository.maemo.org/stable/4.0/maemo-sdk-nokia-binaries_4.0.sh
 #  http://repository.maemo.org/stable/4.0.1/maemo-sdk-nokia-binaries_4.0.1.sh
 # shell script tarball can be extracted by these commands:
 #  FILE=maemo-sdk-nokia-binaries_4.0.1
 #  LINE=$((`grep -an '^__END__$' &quot;$FILE.sh&quot; | head -1 | cut -f1 -d:`+1))
 #  tail -n +$LINE $FILE.sh &gt; $FILE.tar.gz
 #  tar -xvf $FILE.tar.gz
 
 # Rtcomm beta
 deb http://repository.maemo.org/rtcomm/ chinook free non-free
 deb-i386 http://repository.maemo.org/rtcomm/ chinook free non-free
 deb-src http://repository.maemo.org/rtcomm/ chinook free
 
 # Extras
 deb http://repository.maemo.org/extras/ chinook free non-free
 deb-i386 http://repository.maemo.org/extras/ chinook free non-free
 deb-src http://repository.maemo.org/extras/ chinook free
 
 # Extras-devel
 deb http://repository.maemo.org/extras-devel/ chinook free non-free
 deb-i386 http://repository.maemo.org/extras-devel/ chinook free non-free
 deb-src http://repository.maemo.org/extras-devel/ chinook free


=mirror.list for Maemo 3.x Bora=

 ### System configuration (this can be changed) ###
 set base_path             /var/spool/apt-mirror
 set nthreads              20
 
 ### Repositories configuration ###
 set defaultarch           armel
 
 ### Official Nokia/Maemo repositories ###
 
 # Nokia Catalogue
 deb http://catalogue.tableteer.nokia.com/certified/ bora user
 deb-i386 http://catalogue.tableteer.nokia.com/certified/ bora user
 deb-src http://catalogue.tableteer.nokia.com/certified/ bora user
 
 # Nokia Catalogue (3rd party software)
 deb http://catalogue.tableteer.nokia.com/non-certified/ bora user
 deb-i386 http://catalogue.tableteer.nokia.com/non-certified/ bora user
 deb-src http://catalogue.tableteer.nokia.com/non-certified/ bora user
 
 # SDK repository
 deb http://repository.maemo.org/ maemo3.0 free non-free
 deb http://repository.maemo.org/ maemo3.1 free non-free
 deb http://repository.maemo.org/ maemo3.2 free non-free
 deb-i386 http://repository.maemo.org/ maemo3.0 free non-free
 deb-i386 http://repository.maemo.org/ maemo3.1 free non-free
 deb-i386 http://repository.maemo.org/ maemo3.2 free non-free
 deb-src http://repository.maemo.org/ maemo3.0 free
 deb-src http://repository.maemo.org/ maemo3.1 free
 deb-src http://repository.maemo.org/ maemo3.2 free
 
 # Nokia binaries
 # apt reposiory is stored in shell script tarball on:
 #  http://repository.maemo.org/stable/3.0/maemo-sdk-nokia-binaries_3.0.sh
 #  http://repository.maemo.org/stable/3.1/maemo-sdk-nokia-binaries_3.1.sh
 #  http://repository.maemo.org/stable/3.2/maemo-sdk-nokia-binaries_3.2.sh
 # shell script tarball can be extracted by these commands:
 #  FILE=maemo-sdk-nokia-binaries_3.2
 #  LINE=$((`grep -an '^__END__$' &quot;$FILE.sh&quot; | head -1 | cut -f1 -d:`+1))
 #  tail -n +$LINE $FILE.sh &gt; $FILE.tar.gz
 #  tar -xvf $FILE.tar.gz
 
 # Rtcomm beta
 deb http://repository.maemo.org/rtcomm/ bora free non-free
 deb-i386 http://repository.maemo.org/rtcomm/ bora free non-free
 deb-src http://repository.maemo.org/rtcomm/ bora free
 
 # Extras
 deb http://repository.maemo.org/extras/ bora free non-free
 deb-i386 http://repository.maemo.org/extras/ bora free non-free
 deb-src http://repository.maemo.org/extras/ bora free
 
 # Extras-devel
 deb http://repository.maemo.org/extras-devel/ bora free non-free
 deb-i386 http://repository.maemo.org/extras-devel/ bora free non-free
 deb-src http://repository.maemo.org/extras-devel/ bora free


=mirror.list for Maemo 2.2 Gregale=

 ### System configuration (this can be changed) ###
 set base_path             /var/spool/apt-mirror
 set nthreads              20
 
 ### Repositories configuration ###
 set defaultarch           armel
 
 ### Official Nokia/Maemo repositories ###
 
 # SDK repository
 deb http://repository.maemo.org/ gregale free non-free
 deb-arm http://repository.maemo.org/ gregale free non-free
 deb-i386 http://repository.maemo.org/ gregale free non-free
 deb-src http://repository.maemo.org/ gregale free
 
 # Extras
 deb http://repository.maemo.org/extras/ gregale free non-free
 deb-i386 http://repository.maemo.org/extras/ gregale free non-free
 deb-src http://repository.maemo.org/extras/ gregale free
 
 # Extras-devel
 deb http://repository.maemo.org/extras-devel/ gregale free non-free
 deb-i386 http://repository.maemo.org/extras-devel/ gregale free non-free
 deb-src http://repository.maemo.org/extras-devel/ gregale free


=mirror.list for Maemo 2.1 Scirocco=

 ### System configuration (this can be changed) ###
 set base_path             /var/spool/apt-mirror
 set nthreads              20
 
 ### Repositories configuration ###
 set defaultarch           armel
 
 ### Official Nokia/Maemo repositories ###
 
 # SDK repository
 deb http://repository.maemo.org/ scirocco free non-free
 deb-arm http://repository.maemo.org/ scirocco free non-free
 deb-i386 http://repository.maemo.org/ scirocco free non-free
 deb-src http://repository.maemo.org/ scirocco free
 
 # Extras
 deb http://repository.maemo.org/extras/ scirocco free non-free
 deb-i386 http://repository.maemo.org/extras/ scirocco free non-free
 deb-src http://repository.maemo.org/extras/ scirocco free

=mirror.list for Maemo 2.0 Mistral=

 ### System configuration (this can be changed) ###
 set base_path             /var/spool/apt-mirror
 set nthreads              20
 
 ### Repositories configuration ###
 set defaultarch           armel
 
 ### Official Nokia/Maemo repositories ###
 
 # SDK repository
 deb http://repository.maemo.org/ mistral free non-free
 deb-arm http://repository.maemo.org/ mistral free non-free
 deb-i386 http://repository.maemo.org/ mistral free non-free
 deb-src http://repository.maemo.org/ mistral free
 
 # Extras
 deb http://repository.maemo.org/extras/ mistral free non-free
 deb-i386 http://repository.maemo.org/extras/ mistral free non-free
 deb-src http://repository.maemo.org/extras/ mistral free

=mirror.list for Maemo 1.1=

 ### System configuration (this can be changed) ###
 set base_path             /var/spool/apt-mirror
 set nthreads              20
 
 ### Repositories configuration ###
 set defaultarch           armel
 
 ### Official Nokia/Maemo repositories ###
 
 # SDK repository
 deb-arm http://repository.maemo.org/ maemo1.1 free non-free
 deb-i386 http://repository.maemo.org/ maemo1.1 free non-free
 deb-src http://repository.maemo.org/ maemo1.1 free
 
 # Extras
 deb-arm http://repository.maemo.org/ maemo1.1-extras free non-free
 deb-i386 http://repository.maemo.org/ maemo1.1-extras free non-free
 deb-src http://repository.maemo.org/ maemo1.1-extras free


=mirror.list for Maemo 1.0=

 ### System configuration (this can be changed) ###
 set base_path             /var/spool/apt-mirror
 set nthreads              20
 
 ### Repositories configuration ###
 set defaultarch           armel
 
 ### Official Nokia/Maemo repositories ###
 
 # SDK repository
 deb-arm http://repository.maemo.org/ maemo ossw
 deb-i386 http://repository.maemo.org/ maemo ossw
 deb-src http://repository.maemo.org/ maemo ossw</text>
    </revision>
  </page>
  <page>
    <title>As-config-applet-0</title>
    <id>5124</id>
    <revision>
      <id>47118</id>
      <timestamp>2012-04-04T19:11:00Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>[[As-config-applet-0]] moved to [[Fremantle closed packages/As-config-applet-0]]</comment>
      <text xml:space="preserve">#REDIRECT [[Fremantle closed packages/As-config-applet-0]]</text>
    </revision>
  </page>
  <page>
    <title>AutoDisconnect</title>
    <id>4215</id>
    <revision>
      <id>49349</id>
      <timestamp>2012-09-01T11:07:33Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 49324 by [[Special:Contributions/83.149.48.47|83.149.48.47]] ([[User talk:83.149.48.47|Talk]]) vandalism</comment>
      <text xml:space="preserve">This application automatically closes your idle connections ('''Wifi + 3G/GPRS + Bluetooth''') and switches the network mode of your [[Nokia N900|N900]] to 2G when 3G is not used, in order for your batteries to last much longer. 

Analysis made with one automatic sync (calendar &amp; contacts) running on a unused device every hour using Wifi Access Point : '''your batteries will last up to 5x longer with AutoDisconnect enabled.'''

The package is available on the extras repository for the stable version, and on the extras-devel repository for the testing version.

==Interface==

To manage the application, you can launch the program 'AutoDisconnect' which is available in Settings &gt; Connectivity. You will find 5 tabs :

* General [http:///www.dev-it.net/files/autodisconnect-ui-general.png Screenshot]
* Network - General [http:///www.dev-it.net/files/autodisconnect-ui-network-general Screenshot]
* Network - GPRS [http:///www.dev-it.net/files/autodisconnect-ui-network-gprs Screenshot]
* Network - Wifi [http:///www.dev-it.net/files/autodisconnect-ui-network-wifi Screenshot]
* Bluetooth [http:///www.dev-it.net/files/autodisconnect-ui-bluetooth.png Screenshot]

==Network Settings==

You can choose which connections to check : GPRS (2G/3G) and Wifi. For each of these connections, you have a tab with similar settings.

Ex : 
* Interval : 5 minutes after 30 seconds
* Traffic : 2 KB/min

The previous settings means that AutoDisconnect will begin to record the connection traffic 30 seconds after its launch. If 5 minutes later, the total traffic is higher than 5x2KB = 10KB, then AutoDisconnect will consider the connection as used and won't disconnect the device. The next check will happen 5 minutes later.

==Auto-Switch 2G / 3G-Dual==

'''Please note that this functionality does not depend of the setting &quot;When should AutoDisconnect be active&quot;.''' So if you enable it, it will work no matter what.

This functionality switches the network mode of your phone automatically to 2G when 3G is not used. So how does it work ?

Every time you launch a new GPRS connection, the network mode will be switched to 3G or Dual Mode depending on your settings. After the disconnection, the network mode will be switched back to 2G.

The drawback of this method is that the connection phase takes more time than in classic mode because of the network mode change. So some of your applications which initiates the internet connection (like [[OMWeather]]) could believe it to be a timeout. The switch to the Dual Mode required more time than the classic 3G switch, so use it only when you are in a area where the 3G coverage is bad. 
You can select the duration of the switch, which will depends of your phone/area.  The lowest value is the better.

Note : the network mode won't be changed if you are making a call at the same time.

==Possible issues==

===Automatic MFE synchronizations (calendar, task, email) are not working anymore===

An application which required Internet doesn't connect to Internet automatically if the device is not connected (See [https://bugs.maemo.org/show_bug.cgi?id=7180 Bug 7180]), except if the author has manually implemented that functionality. So how to keep MFE or my widgets working?

* In Settings &gt; Internet Connections, Use &quot;Connect automatically&quot; to any network or a specified connection and set the &quot;Search Interval&quot; to some value.
* [http://talk.maemo.org/showthread.php?t=46594 Alarmed] is an application which allows you to run scripts periodically. Install it and create a periodic run of the following script, which will initiate an Internet connection and run a sync :
&lt;source lang=&quot;bash&quot;&gt;
 #!/bin/sh
 
 dbus-send --print-reply --type=method_call --session --dest=com.nokia.asdbus /com/nokia/asdbus com.nokia.asdbus.sync
&lt;/source&gt;
===My Widgets are not refreshing anymore===

See [[#Automatic MFE synchronizations (calendar, task, email) are not working anymore|Automatic MFE synchronizations (calendar, task, email) are not working anymore]] above.

See [[#Auto-Switch 2G / 3G-Dual|Auto-Switch 2G / 3G-Dual]] above

==Notes==

Please report any bugs or suggestions [https://garage.maemo.org/tracker/?group_id=1353 here]. For a bug submission, please include the AutoDisconnect log file with your post. Its location on your phone is &lt;code&gt;/var/log/autodisconnect.log&lt;/code&gt;.

AutoDisconnect is under GPL license so you can get the full source on github [http://github.com/abrisse/AutoDisconnect http://github.com/abrisse/AutoDisconnect].

==Changelog==

===0.4.8 [12-21-10]===

* Fix [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=6380&amp;group_id=1353&amp;atid=5016 #6380]] : Disconnect fails when interface traffic exceeds 2 GiB
* Fix [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=6705&amp;group_id=1353&amp;atid=5016 #6705]] : Multiple connections support for the same interface
* New feature [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=6012&amp;group_id=1353&amp;atid=5016 #6102]] : Exception for Mobile Hotspot/JoikuSpot
* New feature [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=6709&amp;group_id=1353&amp;atid=5016 #6709]] : IPV6 Support

===0.4.7 [07-21-10]===

* Fix [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=6028&amp;group_id=1353&amp;atid=5019 #6028]] Need longer &quot;switch last&quot; durations - Reporter juhas
* Fix [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=6070&amp;group_id=1353&amp;atid=5019 #6070]] Add Exception for Pidgin Plugin - Reporter NokiaRocks

* MinorEnhancement : Notification labels changed

===0.4.6 [06-14-10]===

* Fix [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5923&amp;group_id=1353&amp;atid=5016 #5923]] Cannot disable the auto-switch 2G/3G - Reporter dagee04
* Enhancement : Add a link to the Wiki

===0.4.5 [06-12-10]===

* Enhancement of AutoSwitch [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5861&amp;group_id=1353&amp;atid=5016 #5861]] : 3G/Dual option  - Reporter jaguilar / Active only when 3G is on - Special thanks to maddler / Others enhancements
* Fix [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5918&amp;group_id=1353&amp;atid=5016 #5918]] : The minus button on the SpinBox on the bluetooth tab was defective - Reporter hironico
* New feature [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5870&amp;group_id=1353&amp;atid=5016 #5870]] : Add an option: &quot;Do not disconnect while using the device&quot; - Reporter c1fs2aom
* New feature [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5919&amp;group_id=1353&amp;atid=5016 #5919]] : Add a grace period for each connection

===0.4 [06-01-10]===

* New feature [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5732&amp;group_id=1353&amp;atid=5016 #5732]] : Switch automatically 2G &lt;-&gt; 3G - Reporter : automagic68  
* New feature [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5700&amp;group_id=1353&amp;atid=5016 #5700]] : Do not disconnect when openvpn is running - Reporter : maddler
* New feature [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5738&amp;group_id=1353&amp;atid=5016 #5738]] : Do not disconnect when VoIP or an IM Account (Google  Talk, Skype) is used
* New feature [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5310&amp;group_id=1353&amp;atid=5016 #5310]] : Each connection (gprs and wlan) has its own settings
* New feature [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5221&amp;group_id=1353&amp;atid=5016 #5221]] : Control Panel Applet - Reporter : pillar
* Fix [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5733&amp;group_id=1353&amp;atid=5016 #5733]] : Bluetooth is disconnected when the FM Radio is used - Reporter DaSilva
* Enhancement : Bluetooth manager has been updated and is not loaded anymore when not activated
* Change default settings &amp; Others enhancements
* Use of PR 1.2 Qt libraries

===0.3.1 [05-03-10]===

* Enhancement : Bluetooth settings changes are now taken in account at the next check

===0.3 [05-03-10]===

* New feature [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5260&amp;group_id=1353&amp;atid=5016 #5260]] : Add option &quot;Disable when plugged in&quot; - Reporter : phedders
* New feature [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5662&amp;group_id=1353&amp;atid=5016 #5662]] : Add option &quot;Disable Bluetooth if no device is connected&quot; - Reporter : DaSilva
* New feature [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5233&amp;group_id=1353&amp;atid=5016 #5233]] : Add option &quot;Do not disconnect if ssh connections are active&quot; - Reporter : fred123
* New feature [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5659&amp;group_id=1353&amp;atid=5659 #5659]] : Limit can now be set in B/KB/MB
* Fix : New Installer (AutoDisconnect didn't work  anymore when reinstalled)
* Enhancement : UI has been reorganized an now uses tabs

===0.2.2 [02-22-10]===

* Fix : Max Idle Traffic was a value per second instead of minute
* Minor Fix : UI Interface - Spelling Traffic instead of Trafic (french)

===0.2.1 [02-22-10]===

* Fix [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5236&amp;group_id=1353&amp;atid=5016 #5236]] : Disconnection always happens when interface is up since more than 10MB
* Small enhancement : display notification when settings are saved.

===0.2 [02-19-10]===

* Fix [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5214&amp;group_id=1353&amp;atid=5016 #5214]] : Connection delay - Reporter : amorek13 - Many thanks to mclarson for solving the problem
* Fix [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5216&amp;group_id=1353&amp;atid=5016 #5216]] : Increase the digits visible in the input fields - Reporter : jakiman
* Fix [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5222&amp;group_id=1353&amp;atid=5016 #5222]] : Configure Uninstaller &amp; Installer
* Fix [[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=5225&amp;group_id=1353&amp;atid=5016 #5225]] : Prevent 2 instances of AutoDisconnect to be run at the same time
* Enhancement : Punctual connections (~20 seconds) will be closed during the next interval check instead of the second next one.
* Note : the upgrade from 0.1 to 0.2 will remove your current settings.

[[Category:Software]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Autobuilder FAQ</title>
    <id>1376</id>
    <revision>
      <id>22452</id>
      <timestamp>2009-11-11T17:52:08Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Developer FAQ#Autobuilder]]</comment>
      <text xml:space="preserve">#REDIRECT [[Developer FAQ#Autobuilder]]</text>
    </revision>
  </page>
  <page>
    <title>BUGS:Stock answers</title>
    <id>242</id>
    <revision>
      <id>1604</id>
      <timestamp>2008-06-13T15:44:40Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[BUGS:Stock answers]] moved to [[Bugs:Stock answers]]: Please avoid block caps in namespaces</comment>
      <text xml:space="preserve">#REDIRECT [[Bugs:Stock answers]]</text>
    </revision>
  </page>
  <page>
    <title>Back up your applications</title>
    <id>3207</id>
    <revision>
      <id>45801</id>
      <timestamp>2011-11-22T02:51:24Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45777 by [[Special:Contributions/70.135.114.247|70.135.114.247]] ([[User talk:70.135.114.247|Talk]]) SPAM</comment>
      <text xml:space="preserve">== Scenario ==

Let us suppose that you are using a very special application. It may be possible that after a long time of use, the repository from where you downloaded your application is not available any more. It may also be possible that, after a long use, something happened to your device, and you need to reinstall your favorite application. 

We are going to explain you a way to keep a copy of the DEB package of your favorite application, so that you can install it again even if the package is not available any more from the repositories.

WARNING: Downloading deb files for all the installed packages may cause the root file-system to be exhausted thereby &quot;bricking&quot; the device. Proceed with caution.

== Needed Tools and Skills ==

To follow this tutorial, you need root access on your device and the following tools:
*Terminal emulator (X Terminal or SSH)
*VIM editor (Available in [[Extras]])

== Create the Archive folder ==
* Open a terminal emulator and create the required folders using the following command:
&lt;pre&gt;
$ mkdir /home/user/MyDocs/apt-archive-cache
$ mkdir /home/user/MyDocs/apt-archive-cache/archives
$ mkdir /home/user/MyDocs/apt-archive-cache/archives/partial
&lt;/pre&gt;
or the equivalent
&lt;pre&gt;
$ mkdir -p /home/user/MyDocs/apt-archive-cache/archives/partial
&lt;/pre&gt;
If you wish to use a different folder, substitute /home/user/MyDocs with the desired path.

== Create Package-List ==

*As a normal user type the following command to create a file (package.list) that contains a list of all the packages installed on the device:
&lt;pre&gt;$ dpkg --get-selections|grep install|grep -v deinstall&gt;/home/user/package.list
&lt;/pre&gt;

In case you just want to download a selection of packages from that list, you should edit it and remove the lines you do not need.

For example, if you just want to download a copy of the package ''abiword'', then you should:
*As a normal user type the following command:
&lt;pre&gt;$ cat /home/user/package.list|grep abiword&gt;/home/user/package-abiword.list&lt;/pre&gt;

If you want to download all packages, except one of them: ''debconf'', for example. Then you should:
*As a normal user type the following command:
&lt;pre&gt;$ cat /home/user/package.list|grep -v debconf&gt;/home/user/package-without-debconf.list&lt;/pre&gt;

== Edit Package-List ==

After previous steps, you have a list with all the desired packages you want to download to your device. In our previous examples this list could be any one of these:
*package.list
*package-abiword.list
*package-without-debconf.list

Now you just need to edit this list in order to use it with ''apt-get'':
*As a normal user type the following command:
&lt;pre&gt;$ vim /home/user/package.list &lt;/pre&gt;
*After ''vi'' editor is running, then type the following command:
&lt;pre&gt; :%s!install!! &lt;/pre&gt;
*This last command will clean the lines, removing the word ''install'' and leaving just the name of the packages. Now we want to add an order for ''apt-get'' to download the desired packages, so type the following command:
&lt;pre&gt; :%s!^!apt-get --force-yes -yy -d install --reinstall -o dir::cache=/home/user/MyDocs/apt-archive-cache ! &lt;/pre&gt;
*This last command will add to the beginning of each line the needed instructions for ''apt-get'' to only download the packages: ''-d install --reinstall''. In order to prevent the script from stopping at any question we have inserted the ''--force-yes -yy'' option. Now we just need to save the file typing the following command:
&lt;pre&gt; ZZ &lt;/pre&gt;
== Download Packages ==
Executing the package-list script will download the packages.
*To execute the script we need first to get ROOT access.
*Then as ROOT type the following command:
&lt;pre&gt; # sh&lt;/home/user/package.list &lt;/pre&gt;

You should now see the downloads in progress. 
&lt;pre&gt;
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
Need to get 213kB of archives.
After this operation, 0B of additional disk space will be used.
Get:1 http://repository.maemo.org fremantle/free 100boxes 0.5.0-4 [213kB]
Fetched 213kB in 0s (538kB/s)
Download complete and in download only mode
&lt;/pre&gt;
Depending on the size of the list, this could take a long time. After it is completed, the downloaded packages can be listed with the following command:
&lt;pre&gt;$ ls /home/user/MyDocs/apt-archive-cache/archives|grep deb 

Nokia-N900-42-11:/home/user# ls /home/user/MyDocs/apt-archive-cache/archives|grep deb
100boxes_0.5.0-4_armel.deb
accdisplay_1.0_armel.deb
adblock-plus-1.0_1maemo0-8_all.deb
ati85_1.4.1-1_armel.deb
battlegweled_0.9-4_armel.deb
bluetooth-dun_1.0-2_armel.deb
&lt;/pre&gt;

== Install Package-List ==
With previous steps you have downloaded all your favourite applications, for backup purposes. Now just imagine that you need to install them again from scratch, then you will need to proceed as follows:

To install all the packages from the list:
* open the package.list file in VIM
* remove the -d option from each of the lines (:%s!-d!!) 
* save and execute the file again as root (# sh&lt;/home/user/package.list)

If you wish to install an individual package, execute the apt-get command separately for that package by using the specific line from the packages.list file.
&lt;pre&gt;
Nokia-N900-42-11:/home/user# apt-get --force-yes -yy  install --reinstall -o dir::cache=/home/user/MyDocs/apt-archive-cache 100boxes   
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
Need to get 0B/213kB of archives.
After this operation, 0B of additional disk space will be used.
(Reading database ... 36360 files and directories currently installed.)
Preparing to replace 100boxes 0.5.0-4 (using .../100boxes_0.5.0-4_armel.deb) ...
Unpacking replacement 100boxes ...
Setting up 100boxes (0.5.0-4) ...
&lt;/pre&gt;

== Dependencies ==
* executing package.list will only download the package, not the dependencies. This may create problems during restore when the package dependencies are not available in the archive. Of course, this would only be a problem if the package list was a selection of the entire system package list. When downloading the entire system package list, all packages would be available and dependecies would not be an issue.
* safe way would be to remove the application via 'apt-get remove' and 'apt-get autoremove' and then use the apt-get with the -d and -o option to download the package with the dependencies.

== Further Questions ==

If you have further questions, do not hesitate to place the question here in this section, and it will be answered in short.

You may also ask for help sending me an [mailto:n900@academia-online.org e-mail]

[[Category:Power users]]
[[Category:HowTo]]</text>
    </revision>
  </page>
  <page>
    <title>Backing up N900 to a Linux PC</title>
    <id>4342</id>
    <revision>
      <id>40616</id>
      <timestamp>2010-12-08T10:15:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Manual backup and restore]]</comment>
      <text xml:space="preserve">#REDIRECT [[Manual backup and restore]]</text>
    </revision>
  </page>
  <page>
    <title>Batteries</title>
    <id>1245</id>
    <revision>
      <id>45802</id>
      <timestamp>2011-11-22T02:51:43Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45778 by [[Special:Contributions/70.135.114.247|70.135.114.247]] ([[User talk:70.135.114.247|Talk]]) SPAM</comment>
      <text xml:space="preserve">All the Nokia tablets use [[:wikipedia:Lithium-ion battery|lithium-ion batteries]], which have specific requirements for care to maintain optimal battery longevity.

__TOC__

''Warning: do not buy cheap replacement Nokia batteries from ebay or other such sites. Most of these batteries are fakes and come with a much lower capacity than advertised.'' 

==Li-ion Battery Summary==
===Charging, Storage and Usage===
====Memory Effect====

Li-ion batteries do not suffer from the memory effect. They have a low self-discharge rate of approximately 5% per month, compared with over 30% per month in nickel metal hydride batteries and 10% per month in nickel cadmium batteries.

====Lifetime &amp; Capacity Loss====

The battery can be charged and discharged hundreds of times but it will eventually wear out. When the operating time (talk-time and standby time) is noticeably shorter than normal, it is time to buy a new battery.

Capacity loss is a function of number of full-discharge cycles since manufacturing, and other stress factors, including over-/under-voltage, over-current, and over-/under-temperature.
 
====Temperature====

Leaving the battery in hot or cold places, such as in a closed car in summer or winter conditions, will reduce the capacity and lifetime of the battery. Always try to keep the battery between 15°C and 25°C (59°F and 77°F). A phone with a hot or cold battery may temporarily not work, even when the battery is fully charged.

Batteries' performance is particularly limited in temperatures well below freezing.

====Storage====

Heat affects capacity loss during storage. &quot;Different storage temperatures produce different loss results: 6% loss at 0 °C/32 °F, 20% at 25 °C/77 °F, and 35% at 40 °C/104 °F. When stored at 40% charge level, these figures are reduced to 2%, 4%, 15% at 0, 25 and 40 degrees Celsius respectively.&quot;

====Voltage====

Voltage ranges from 3.0V (discharged) to 4.2V (charged). 3.7V nominal voltage

====Disposal====

Dispose of batteries according to local regulations (e.g. recycling). Do not dispose as household waste.

===Extend Battery Lifetime===

*For good operation times with Li-Ion batteries, discharge the battery from time to time by leaving the product switched on until it turns itself off.
*Stay 40-60% charged for storage - around 3.6-3.8V. Unlike Ni-Cd batteries, lithium-ion batteries should be charged early and often. However, if they are not used for a longer time, they should be brought to a charge level of around 40%. Lithium-ion batteries should never be &quot;deep-cycled&quot; like Ni-Cd batteries
*Stay cool. Li-ion batteries should be kept cool. Ideally they are stored in a refrigerator. Aging will take its toll much faster at high temperatures. The high temperatures found in cars cause lithium-ion batteries to degrade rapidly.
*Only buy new batteries when you need them.
*When buying new batteries, try to check the manufacturing date to make sure they really are new.

==Extend Device Run Time==

See [[Make your battery last longer]] for tips on extending running time on your device.

==Battery Status==

There is much more information available about the battery than the charge indicator icon. To get a more precise description of the battery's charge, type

 lshal | grep percentage

in the [[terminal]] (Open xterm with Ctrl-Shift-x). The lshal (list hardware abstraction layer) command returns a long printout of information about the hardware. Grep is a linux user command that searches input for a specific string and prints the line that it is found in.

To get any information about the battery, type:

 lshal -u /org/freedesktop/Hal/devices/bme

The percentage that is returned is relative to the fullest charge the battery has ever sustained, so it will be less than 100 even after recharging, and the highest value it can reach will decrease over time as the battery wears.([https://bugs.maemo.org/show_bug.cgi?id=7636 See the comments].)

[[Category:Hardware]]
[[Category:Users]]</text>
    </revision>
  </page>
  <page>
    <title>Batteries</title>
    <id>1245</id>
    <revision>
      <id>45802</id>
      <timestamp>2011-11-22T02:51:43Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45778 by [[Special:Contributions/70.135.114.247|70.135.114.247]] ([[User talk:70.135.114.247|Talk]]) SPAM</comment>
      <text xml:space="preserve">All the Nokia tablets use [[:wikipedia:Lithium-ion battery|lithium-ion batteries]], which have specific requirements for care to maintain optimal battery longevity.

__TOC__

''Warning: do not buy cheap replacement Nokia batteries from ebay or other such sites. Most of these batteries are fakes and come with a much lower capacity than advertised.'' 

==Li-ion Battery Summary==
===Charging, Storage and Usage===
====Memory Effect====

Li-ion batteries do not suffer from the memory effect. They have a low self-discharge rate of approximately 5% per month, compared with over 30% per month in nickel metal hydride batteries and 10% per month in nickel cadmium batteries.

====Lifetime &amp; Capacity Loss====

The battery can be charged and discharged hundreds of times but it will eventually wear out. When the operating time (talk-time and standby time) is noticeably shorter than normal, it is time to buy a new battery.

Capacity loss is a function of number of full-discharge cycles since manufacturing, and other stress factors, including over-/under-voltage, over-current, and over-/under-temperature.
 
====Temperature====

Leaving the battery in hot or cold places, such as in a closed car in summer or winter conditions, will reduce the capacity and lifetime of the battery. Always try to keep the battery between 15°C and 25°C (59°F and 77°F). A phone with a hot or cold battery may temporarily not work, even when the battery is fully charged.

Batteries' performance is particularly limited in temperatures well below freezing.

====Storage====

Heat affects capacity loss during storage. &quot;Different storage temperatures produce different loss results: 6% loss at 0 °C/32 °F, 20% at 25 °C/77 °F, and 35% at 40 °C/104 °F. When stored at 40% charge level, these figures are reduced to 2%, 4%, 15% at 0, 25 and 40 degrees Celsius respectively.&quot;

====Voltage====

Voltage ranges from 3.0V (discharged) to 4.2V (charged). 3.7V nominal voltage

====Disposal====

Dispose of batteries according to local regulations (e.g. recycling). Do not dispose as household waste.

===Extend Battery Lifetime===

*For good operation times with Li-Ion batteries, discharge the battery from time to time by leaving the product switched on until it turns itself off.
*Stay 40-60% charged for storage - around 3.6-3.8V. Unlike Ni-Cd batteries, lithium-ion batteries should be charged early and often. However, if they are not used for a longer time, they should be brought to a charge level of around 40%. Lithium-ion batteries should never be &quot;deep-cycled&quot; like Ni-Cd batteries
*Stay cool. Li-ion batteries should be kept cool. Ideally they are stored in a refrigerator. Aging will take its toll much faster at high temperatures. The high temperatures found in cars cause lithium-ion batteries to degrade rapidly.
*Only buy new batteries when you need them.
*When buying new batteries, try to check the manufacturing date to make sure they really are new.

==Extend Device Run Time==

See [[Make your battery last longer]] for tips on extending running time on your device.

==Battery Status==

There is much more information available about the battery than the charge indicator icon. To get a more precise description of the battery's charge, type

 lshal | grep percentage

in the [[terminal]] (Open xterm with Ctrl-Shift-x). The lshal (list hardware abstraction layer) command returns a long printout of information about the hardware. Grep is a linux user command that searches input for a specific string and prints the line that it is found in.

To get any information about the battery, type:

 lshal -u /org/freedesktop/Hal/devices/bme

The percentage that is returned is relative to the fullest charge the battery has ever sustained, so it will be less than 100 even after recharging, and the highest value it can reach will decrease over time as the battery wears.([https://bugs.maemo.org/show_bug.cgi?id=7636 See the comments].)

[[Category:Hardware]]
[[Category:Users]]</text>
    </revision>
  </page>
  <page>
    <title>Battery Saving</title>
    <id>4864</id>
    <revision>
      <id>43703</id>
      <timestamp>2011-05-31T13:40:23Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Make your battery last longer]]</comment>
      <text xml:space="preserve">#REDIRECT [[Make your battery last longer]]</text>
    </revision>
  </page>
  <page>
    <title>Battery consuming and memory leaking applications</title>
    <id>4551</id>
    <revision>
      <id>39943</id>
      <timestamp>2010-11-03T01:17:22Z</timestamp>
      <contributor>
        <username>valos</username>
        <id>3576</id>
      </contributor>
      <text xml:space="preserve">The reason of this wiki is for use members to post applications, widgets or applets which cause battery drain or slowdown on our device. 

Just [http://talk.maemo.org/showthread.php?t=64944 post] what applications you have already used which caused the specified problems, and if you have a solution, share it!

{| class=&quot;wikitable sortable&quot;
! width=&quot;170&quot; | Software Name
! width=&quot;100&quot; | PR Version
! width=&quot;250&quot; | Comments
! width=&quot;250&quot; | Fix
|-
|Catorise/MyMenu|| 1.2 || This problem is not Catorise or MyMenu's fault. It's a bug in hildon desktop triggered by these apps.|| To avoid battery leak you have to install MohammadAG's hildon-desktop mod.
|-
|Flashlight|| ? || Causes [http://talk.maemo.org/showthread.php?p=813516#post813516 ohmd] to drain the battery.||''None''
|-
|Flashlight-extra|| 1.3 || ||''None''
|}</text>
    </revision>
  </page>
  <page>
    <title>BlackBerryJamWorldTour2012</title>
    <id>5196</id>
    <revision>
      <id>48121</id>
      <timestamp>2012-06-04T09:19:46Z</timestamp>
      <contributor>
        <username>mrsellout</username>
        <id>3603</id>
      </contributor>
      <comment>[[BlackBerryJamWorldTour2012]] moved to [[BlackBerry Jam World Tour 2012]]: Include spaces in title</comment>
      <text xml:space="preserve">#REDIRECT [[BlackBerry Jam World Tour 2012]]</text>
    </revision>
  </page>
  <page>
    <title>BlackBerry Jam World Tour 2012</title>
    <id>5177</id>
    <revision>
      <id>48573</id>
      <timestamp>2012-06-21T06:55:50Z</timestamp>
      <contributor>
        <username>svn</username>
        <id>5337</id>
      </contributor>
      <comment>/* Europe */</comment>
      <text xml:space="preserve">This is a Info Page which maemo members are attending the currently organized [http://www.blackberryjamworldtour.com/ BlackBerry Jam World Tour] events.

Since BlackBerry will use Qt and qml as one of their main development frameworks for BB10 some maemo developers are perhaps interested in this events. A good chance for small local maemo meet and greets around the world! :)


Visit [http://talk.maemo.org/showthread.php?t=84505 talk.maemo.org] to discuss before and review later the BlackBerry events.

== North America ==

June 5 – Austin, TX, USA
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Nickname'''
! Twitter Account
|}

June 7 – Santa Clara, CA, USA
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Nickname'''
! Twitter Account
|}

June 19 – New York, NY, USA
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Nickname'''
! Twitter Account
|}

June 21 – Toronto, ON, Canada 
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Nickname'''
! Twitter Account
|}

== Europe ==
May 29 – Milan, Italy
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Nickname'''
! Twitter Account
|}

May 31 – Barcelona, Spain
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Nickname'''
! Twitter Account
|-
|[http://talk.maemo.org/member.php?u=56087 inean]||[http://twitter.com/#!/artecoids artecoids]
|-
|[http://talk.maemo.org/member.php?u=19644 bulfaiter]||[http://twitter.com/#!/spenap spenap]
|}

June 12 – Paris, France
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Nickname'''
! Twitter Account
|}

June 14 – London, UK
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Nickname'''
! Twitter Account
|-
|[http://maemo.org/profile/view/jaffa Jaffa]||[http://twitter.com/jaffa2 Jaffa2]
|-
|[http://talk.maemo.org/member.php?u=28712 VitaminJ]||[http://twitter.com/stephenspencer stephenspencer]
|}

June 26 – Moscow, Russia
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Nickname'''
! Twitter Account
|}

June 28 – Berlin, Germany
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Nickname'''
! Twitter Account
|-
|[http://talk.maemo.org/member.php?u=38083 helex]||[http://twitter.com/#!/QtHelex QtHelex]
|-
|[http://talk.maemo.org/member.php?u=12571 zehjotkah]||[http://twitter.com/#!/zehjotkah zehjotkah]
|-
|[http://talk.maemo.org/member.php?u=9673 thp]||[http://twitter.com/#!/thp4 thp4]
|-
|[http://talk.maemo.org/member.php?u=21446 conny]||[http://twitter.com/#!/corneliushald corneliushald]
|-
|[http://talk.maemo.org/member.php?u=29528 Wonko]||--
|-
|[http://talk.maemo.org/member.php?u=54894 micke.prag]||[https://twitter.com/#!/MickePrag MickePrag]
|-
|[http://talk.maemo.org/member.php?u=44155 xengi]||[http://twitter.com/#!/XenGi_ XenGi_]
|-
|[http://talk.maemo.org/member.php?u=18259 attila77]||[http://twitter.com/#!/achipa achipa]
|-
|svn||[http://twitter.com/#!/esvauen svn]
|}

''Not maemo, but perhaps interesting to meet BB developer and technical Evangelist folks at the event in Berlin:

*[http://twitter.com/#!/blackberryluca blackberryluca]  
*[http://twitter.com/#!/ardiri ardiri]''



July 3 – Warsaw, Poland 
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Nickname'''
! Twitter Account
|-
||[http://talk.maemo.org/member.php?u=23905 kdrozd]||[http://twitter.com/krzysiekdrozd krzysiekdrozd]
|}

== Asia ==
July 4 – Delhi, India
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Nickname'''
! Twitter Account
|}

July 6 – Beijing, China
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Nickname'''
! Twitter Account
|}

July 9 – Singapore
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Nickname'''
! Twitter Account
|}

July 10 – Jakarta, Indonesia
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Nickname'''
! Twitter Account
|}

July 12 – Sydney, Australia 
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Nickname'''
! Twitter Account
|}

== Latin America ==
August – Buenos Aires, Argentina
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Nickname'''
! Twitter Account
|}

August – Mexico City, Mexico
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Nickname'''
! Twitter Account
|}</text>
    </revision>
  </page>
  <page>
    <title>Bluemaemo</title>
    <id>3276</id>
    <revision>
      <id>48724</id>
      <timestamp>2012-07-11T09:07:19Z</timestamp>
      <contributor>
        <ip>88.113.8.226</ip>
      </contributor>
      <comment>/* Mac OSX */</comment>
      <text xml:space="preserve">BlueMaemo is a remote controller application for Maemo-powered devices. With BlueMaemo you can turn your Maemo-powered device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile. 

== Downloads ==

* [http://maemo.org/downloads/product/OS2008/bluemaemo/ OS2008]
* [http://maemo.org/packages/view/bluemaemo/ Maemo 5] - Coming soon, alpha version available in the [[Extras-devel]] repository.

== How to connect for the first time ==

For legacy versions of BlueMaemo (&lt; 0.3.7), see instructions [http://www.valeriovalerio.org/?page_id=174 here].

=== Linux ===

* Remove any existing pairings between your phone/tablet and your computer (in both devices).
* Start BlueMaemo and select &quot;Establish Connection&quot;.
* Select and pair your phone/tablet with your computer.
* Select yes in the &quot;Connect to&quot; dialog, a authorization dialog will appear, check &quot;always grant access&quot; to allow future reconnections.
* You can then use the reconnect button on BlueMaemo to connect to an already paired computer.

=== Windows XP ===
*tbd

=== Mac OSX ===
* Remove any existing pairings between your phone/tablet and your Mac (in both devices).
* Start bluetooth on your Mac. Set it to be discoverable.
* Start BlueMaemo and select &quot;Establish Connection&quot;.
* Select your Mac and pair with your phone/tablet. Click yes on the pairing dialog on the mac first before pressing the &quot;Pair&quot; button on your phone/tablet.
* Select yes in the &quot;Connect to&quot; dialog, a &quot;Connecting to &quot;Mac&quot;&quot; dialog should appear.
* You can then use the reconnect button on BlueMaemo to connect to an already paired Mac.

=== Playstation 3 ===

* Remove any existing pairings between your phone/tablet and your Playstation 3 (in both devices).
* Start BlueMaemo and select &quot;Wait for connection&quot;.
* On the PS3 go to the menu Settings &gt; Accessory Settings &gt; Manage Bluetooth Devices and press Register New Device and Start Scanning.
* Pair the devices.

== Tested Devices ==

* N800
* N810
* N900

== Tested Bluetooth stacks ==

=== Working ===

* Linux BlueZ.
* Windows XP SP2 and SP3 – default stack and blue soleil stack.
* Windows XP Media Center Edition – default stack and Toshiba Bluetooth stack.
* Windows Vista
* Windows 7 - default stack
* Mac OSX 10.5.6, 10.6.2
* PlayStation 3

=== Not working ===

* Nokia’s S60 – tested with an Nokia Navigator.
* Mac OS X 10.4.11

== Known issues ==

* [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=BlueMaemo&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= Full list of open bugs &amp; enhancement].
* [https://bugs.maemo.org/show_bug.cgi?id=7500 Hardware keyboard doesn't work in Maemo5].

== Report a bug ==

You can report bugs [https://bugs.maemo.org/enter_bug.cgi?product=BlueMaemo here].

== Request a feature ==

You can request new features [https://bugs.maemo.org/enter_bug.cgi?product=BlueMaemo here] (select ‘enhancement’ in the severity field)

== Videos ==

* [http://www.youtube.com/watch?v=0pEoaCVgygg BlueMaemo]
* [http://www.youtube.com/watch?v=aAZh0BBOfs8 Playing Quake on an 5800 with BlueMaemo]
* [http://www.youtube.com/watch?v=Z8bMNEHVBxE Using BlueMaemo on N810 as a bluetooth keyboard for PS3]
* [http://www.youtube.com/watch?v=huzCCdMH5SY Controlla PS3 con Nokia N900 e Bluemaemo]
* [http://www.youtube.com/watch?v=zWV-Xv_R5g8 How To - Turn Your Nokia N900 into a PS3 Controller]
* [http://www.youtube.com/watch?v=gOTpmRKHTLY BlueMaemo - playing games with the accelerometer]
* 'Add your video here'

== News ==

Add here articles about BlueMaemo.

* [http://www.valeriovalerio.org/?p=177 BlueMaemo 0.1 released] - Valerio Valerio's Blog
* [http://www.valeriovalerio.org/?p=208 BlueMaemo controlling a PS3] - Valerio Valerio's Blog
* [http://www.valeriovalerio.org/?p=215 BlueMaemo 0.2 released – in extras now] - Valerio Valerio's Blog
* [http://www.valeriovalerio.org/?p=238 BlueMaemo 0.3] - Valerio Valerio's Blog
* [http://www.valeriovalerio.org/?p=242 Playing Quake on an 5800 with BlueMaemo] - Valerio Valerio's Blog
* [http://www.christeck.de/wp/2009/02/28/having-fun-with-bluemaemo/ Having fun with BlueMaemo] - Points of Interest 
* [http://gizmodo.com/5068103/bluemaemo-turns-your-nokia-tablet-into-a-wireless-mouse-keyboard BlueMaemo Turns Your Nokia Tablet Into a Wireless Mouse, Keyboard] Gizmodo
* [http://www.multicellphone.com/bluemaemo-turns-maemo-powered-devices-into-a-remote-control-for-your-computer/ BlueMaemo turns Maemo-powered devices into a remote control for your computer] - MultiCellPhone
* [http://www.brighthand.com/default.asp?newsID=14486 BlueMaemo Turns Internet Tablets into Input Devices] brighthand.com
* [http://dailymobile.se/2009/07/10/playing-quake-on-an-nokia-5800-with-bluemaemo/ Playing Quake on an Nokia 5800 with BlueMaemo] -  Daily Mobile
* [http://tabletui.wordpress.com/2009/07/12/preview-bluemaemo/ Preview: BlueMaemo] - Maemo UI improvements blog.
* [http://www.maemoitalia.com/controlla-la-ps3-con-il-tuo-nokia-n900-e-bluemaemo-video-guida/ Controlla la PS3 con il tuo Nokia N900 e BlueMaemo! (video guida)] - MaemoItalia.com
*[http://maemocentral.com/2009/12/29/turn-your-n900-into-a-ps3-controller-more-with-bluemaemo/ Turn Your N900 Into A PS3 Controller &amp; More With BlueMaemo] - Maemo Central
* [http://www.engadget.com/2009/12/30/n900-turned-into-ps3-controller-courtesy-of-bluemaemo-emulator/ N900 turned into PS3 controller courtesy of BlueMaemo emulator] - Engadget 
* [http://www.valeriovalerio.org/?p=333 Video: BlueMaemo – playing games with the accelerometer] - Valerio Valerio's Blog
* 'Add your article here'.

[[Category:Software]]
[[Category:Bluetooth]]</text>
    </revision>
  </page>
  <page>
    <title>Bluetooth</title>
    <id>1149</id>
    <revision>
      <id>45804</id>
      <timestamp>2011-11-22T02:52:19Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45780 by [[Special:Contributions/70.135.114.247|70.135.114.247]] ([[User talk:70.135.114.247|Talk]]) SPAM</comment>
      <text xml:space="preserve">Maemo devices have a built-in '''Bluetooth''' radio that allows you to do things like tether to a cellphone for a data connection, transfer files between devices, and connect input devices.

== Bluetooth Under Fremantle ==

Some Bluetooth profiles have been disabled or removed from Fremantle, but can be &quot;hacked&quot; to work. Please see [[Fremantle Unsupported Bluetooth profiles]] for more details. Maemo Bluetooth capability is based on the Linux [http://www.bluez.org/ BlueZ] software stack

== Networking ==

There are two Bluetooth networking protocols. The first, DUN, is well-supported in Maemo and is the recommended method for tethering to a cellular device. The second, PAN, does not have official support, but is well-supported by the community. PAN is faster and more versatile, but supported by fewer devices than DUN.

=== Dial-Up Networking ===
{{main|Bluetooth DUN}}
DUN is the primary method for tethering to cellular devices. It is easy to set up and easy to use, but slower than PAN in many cases.

=== Personal Area Network ===
{{main|Bluetooth PAN}}
PAN is faster and more versatile than DUN, though supported by fewer devices, and not officially supported in Maemo, but support is provided by the community package [http://garage.maemo.org/projects/maemo-pan maemo-pan]. PAN is particularly useful for setting up Bluetooth networks between your computer and your tablet.

== Input devices ==
{{main|Bluetooth HID}}

Input devices are probably the most common use of Bluetooth. Keyboards are what most people will use, but Bluetooth mice are also an option, as well as interesting accessories like Wiimotes.

A Bluetooth keyboard will work out-of-the-box without only a little setup.

A Bluetooth mouse are more problematic, as, by default, the mouse pointer is invisible in Maemo, but they can be used with just a little configuration. A description how to get it work can be found [http://talk.maemo.org/showthread.php?p=734576 here].

== File transfers ==
{{main|Bluetooth OBEX}}

To utilize Bluetooth for file transfers to or from a Bluetooth device the OBEX profile is used. Many mobile devices support this profile.

== Voice over Bluetooth ==
Voice over bluetooth can be done but it isn't easy. If you are interested enough, please read [[Bluetooth stereo audio with XMMS]].

[[Category:Users]]
[[Category:Bluetooth]]
[[Category:Connectivity]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Bluetooth-sysinfo</title>
    <id>5125</id>
    <revision>
      <id>47120</id>
      <timestamp>2012-04-04T19:11:10Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>[[Bluetooth-sysinfo]] moved to [[Fremantle closed packages/Bluetooth-sysinfo]]</comment>
      <text xml:space="preserve">#REDIRECT [[Fremantle closed packages/Bluetooth-sysinfo]]</text>
    </revision>
  </page>
  <page>
    <title>Bluetooth DUN</title>
    <id>2868</id>
    <revision>
      <id>45805</id>
      <timestamp>2011-11-22T02:52:35Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45781 by [[Special:Contributions/70.135.114.247|70.135.114.247]] ([[User talk:70.135.114.247|Talk]]) SPAM</comment>
      <text xml:space="preserve">[[Bluetooth]] DUN (dial-up networking) allows one to set up Bluetooth networking using a cellular device and a device supporting Bluetooth SPP/DUN profile.

While [[Bluetooth PAN]] offers slightly faster connection speeds than DUN, but DUN does not require having to install any extra software packages. This method also works for software versions older than OS2008.

=== Nokia N900 ===
As the N900 now has its own GSM/3G capability, Bluetooth DUN may have two different meanings for this device :

# if the N900 has net access itself, another Bluetooth-equipped device (such as a PC or laptop) may use it as a modem. In this case it plays the role of the mobile phone in the previous scenarios, and act as a Bluetooth DUN server
# if the N900 is not equipped with a data SIM, it may use another GSM/3G phone as a modem to access the network, and act as a Bluetooth DUN client

==== Bluetooth DUN server ====

This does not work out of the box (at least in early versions of Maemo5, as of December 2009). A tweak is needed to enable it, which has been described and packaged by [http://intr.overt.org/blog/?p=91 Philip Langdale] as “''[http://maemo.org/packages/view/bluetooth-dun/ Bluetooth Dial-up Networking]''”. Installing this package from the Extras repository is all that is required.

If the device that's being tethered runs Windows, there may be additional complications. Installing a recent version of Nokia PC Suite (with partial N900 support), and connecting it to the N900, may be necessary to create the relevant &quot;Bluetooth Modem&quot; in Network Connections; for others, simply pairing the N900 with the Windows Bluetooth stack is enough.

Additionally, the &quot;modem&quot; may need to have an &quot;init string&quot; set. In the Control Panel, choose phone and modem options, bring up properties for the bluetooth modem under the modems tab, and then go to advanced. In the init command field enter something like this:

:'''at+cgdcont=1,&quot;IP&quot;,&quot;your_apn&quot;'''

...where ''your_apn'' is the APN for your carrier that you can get from the network connections list in your N900 settings.

If the dial-up connection goes through most of the steps: find port, dial number, log in, but stalls at the very end (on &quot;Registering your computer on the network&quot;), setting the init string is probably the last missing part. Thanks to [http://talk.maemo.org/showpost.php?p=436634&amp;postcount=7 Kyle] for that one!

==== Setting up the Computer which Tethers the N900 ====

* Linux
** [[Debian-Tethering|Debian]]

=== Nokia N8x0 ===

# Goto 'Menu → Tools → Control Panel → Bluetooth → Devices → New'
# You should see your phone or PC, pair up with it. I recommend using a 10-digit or greater pairing code
# Set it as a &quot;Trusted Device&quot;... I haven't tried it the other way yet
# Goto 'Connectivity → Connections → New' in the Control Panel
# Choose GPRS → Next
# Leave Access Point and Tel# at defaults, leave user/pass blank → Next
# IF you chose not to specify the remote IP on the PC side (see above) THEN choose Advanced → IP Addresses and put in an appropriate IP and DNS servers.
# Goto 'Phone' in the Control Panel
# Choose your new Device from step 2. It is now 'selected'. If you don't do this then it won't show up in the Connection Manager.

=== Nokia 770 ===

# Goto 'Menu → Tools → Control Panel → Phone → New'
# You should see your PC. Make a pairing with it. I recommend a PIN of at least 10 characters.
# You will get a warning that you can only use the phone for Dial-Up Networking, not transferring files. Use class 0x120108 in /etc/bluetooth/hcid.conf and set up OBEX if you want file sharing, see http://www.mulliner.org/bluetooth/sobexsrv.php
# Goto 'Connectivity → Connections → New' in the Control Panel
# Choose 'Packet Data' → Next
# Leave Access Point and Tel# at defaults, leave user/pass blank → Next
# IF you chose not to specify the remote IP on the PC side (see above) THEN choose Advanced → IP Addresses and put in an appropriate IP and DNS servers.

[[Category:Users]]
[[Category:Connectivity]]
[[Category:Bluetooth]]
[[Category:Cellular]]

[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>Bluetooth HID</title>
    <id>181</id>
    <revision>
      <id>45806</id>
      <timestamp>2011-11-22T02:52:56Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45782 by [[Special:Contributions/70.135.114.247|70.135.114.247]] ([[User talk:70.135.114.247|Talk]]) SPAM</comment>
      <text xml:space="preserve">== Keyboards ==

=== Nokia SU-8W ===

Of course Nokia's own [[Bluetooth]] keyboard plays with Maemo very well, but in some cases, as in Brazilian Portuguese (pt_BR) language, some accents don't work. There's a workaround in [http://labs.danilocesar.com/blog/2008/06/30/su-w8-accents-on-n800/].

=== The Apple Bluetooth Keyboard ===

Apple's keyboard works out of the box if you set the keyboard type to &quot;Generic 105-key PC&quot; and the layout to &quot;English (USA)&quot;.

An extensive discussion about customizing this keyboard for Maemo (adding page-up/page-down, lots more keys and functionality, etc.) [http://cs.gmu.edu/~sean/stuff/n800/keyboard/ may be found here].  Much of this information is applicable to other keyboards as well, particularly discussion about &lt;code&gt;xmodmap&lt;/code&gt;.

=== Cygnet (&quot;Smart&quot;) Keyboards ===

A large number of [http://www.cygnetuk.com Cygnet] Bluetooth keyboards are currently showing up around eBay for very reasonable prices. The good news is that they are indeed Maemo-compatible. The bad news is that they're not HID keyboards, they're serial keyboards, which means that setting them up is currently a little more work. (We're working on making this easier).

There are two types of Cygnet keyboard, both rebranded [http://www.chainpus.com/ Chainpus] (&quot;Smart&quot;) keyboards:

* The keyboard currently advertised on the Cygnet website is a rebranded [http://www.chainpus.com/products/keyboard/bk600.html BK-600], a nice clamshell serial keyboard. The key travel is a bit squidgy, but altogether it feels like a very well-put-together unit.
* There is also another keyboard being sold, branded as Cygnet - it's the BK-300 (currently only available on the Chainpus [http://www.chainpus.com/ home page]). I got one by mistake - they're gratifyingly thin and tiny, but I didn't like the equally tiny calculator-style buttons, and exchanged mine. It claims to be HID-compatible, so you shouldn't have any problems.

The BK-600 is supported by [http://fanoush.wz.cz/maemo/ kbdd] ([http://www.handhelds.org/moin/moin.cgi/kbdd source code]), the serial-port keyboard daemon, using the &quot;smartbt&quot; driver. You will need a version of kbdd built for Maemo, and the uinput.ko kernel module. Binaries of both of these for Maemo v1.1 are available at http://fanoush.webpark.cz/maemo/

Both he and I have also succeeded in building them for v2.0, and a similar binary tarball should be posted on that website by the time you read this. Failing which, email the site maintainer, as he is known to have a working version with some extra patches.

=== Installing Non-HID Bluetooth Keyboards ===

Keyboards such as the HP iPAQ Bluetooth Foldable or the Freedom Keyboard will need the [http://fanoush.wz.cz/maemo/ kbdd driver] for the 770, N800, and N810.  (original source [http://www.handhelds.org/moin/moin.cgi/kbdd here]).

== Maemo Devices ==

N800 and N810 devices have Bluetooth HID out of the box.

The N900 does not officially support Bluetooth HID.  However, you can enable Bluetooth keyboards with some hacking: see [[Fremantle Bluetooth Keyboard Layout]].

[[Category:Users]]
[[Category:Bluetooth]]</text>
    </revision>
  </page>
  <page>
    <title>Bluetooth Network Enabled Cell Phones</title>
    <id>1792</id>
    <revision>
      <id>12743</id>
      <timestamp>2009-04-23T11:10:00Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Bluetooth Network Enabled Cell Phones]] moved to [[Bluetooth network enabled cell phones]]: Sentence case</comment>
      <text xml:space="preserve">#REDIRECT [[Bluetooth network enabled cell phones]]</text>
    </revision>
  </page>
  <page>
    <title>Bluetooth PAN</title>
    <id>1265</id>
    <revision>
      <id>45807</id>
      <timestamp>2011-11-22T02:53:19Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45783 by [[Special:Contributions/70.135.114.247|70.135.114.247]] ([[User talk:70.135.114.247|Talk]]) SPAM</comment>
      <text xml:space="preserve">This allows you to use your Maemo device to use [[Bluetooth]] PAN to connect via another device to another network such as the Internet.

The Connection manager is used for this purpose, exactly the same way as you connect to a WLAN network or to a cell phone dial-up connection ([[Bluetooth DUN]]). Most Windows Smartphones use this method of connection when used as a modem via Bluetooth.

If you have [[Nokia N900]] you may instead use it as PAN server to allow an other device such as a Nokia N8x0 to utilize Bluetooth PAN.

== Prerequisites ==

* maemo-pan

== Installing ==

Install maemo-pan through the Application manager. You may need to restart your tablet after installation in order to force a dependency on maemo-pan (libicd-network-dummy package) being loaded.

Tap on the Connectivity icon in your status bar and either &quot;Select a connection&quot; or &quot;Change connection&quot; to see a list of available network access points. You should see one called &quot;Dummy Network&quot; (this name will likely change in future versions of maemo-pan, see [https://bugs.maemo.org/show_bug.cgi?id=3306 bug #3306] for details).

To connect to the Internet through this connection you must make sure the &quot;Internet Connection Sharing&quot; application is running on your phone and has a connection. Select the &quot;Dummy Network&quot; from the tablet network list and enjoy anywhere Internet!

=== Using PAN on older releases ===

It is possible to use PAN to share Internet connections via PAN between two Nokia devices. However, on older devices it is recommended to use [[Bluetooth DUN]] (dial-up networking), since this is the normal method which smartphones use to share Internet access over Bluetooth.

[[Category:Bluetooth]]
[[Category:Connectivity]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Bluetooth PBAP</title>
    <id>5271</id>
    <revision>
      <id>50693</id>
      <timestamp>2012-11-06T12:35:31Z</timestamp>
      <contributor>
        <username>don_falcone</username>
        <id>5161</id>
      </contributor>
      <comment>corrected information about Alpine CDA-137BTi</comment>
      <text xml:space="preserve">'''Original page for older versions of obexd was moved to [[Bluetooth PBAP pre 0.46]]'''


The following is based on two threads on talk.maemo.org and can be applied only on '''obexd version 0.46''' (and maybe later):

* [http://talk.maemo.org/showthread.php?t=36272 &quot;Car kit can not access contact information&quot;]
* [http://talk.maemo.org/showthread.php?t=59114 Announce - Bluetooth PBAP and IrMC / Carkit support is coming to N900...].

You can contact current  maintainer (luf) on IRC #maemo-ssu or in the second TMO thread to get support and share your experiences with  this solution there as well!!!
 
== General Information ==

=== PBAP ===

The Bluetooth Phone Book Access Profile (PBAP) allows to exchange Phone Book objects and call history between carkits and mobile devices. In other words, PBAP profile gives your car unit read access to your mobile phone book (to be exact: to both, the phonebook stored on SIM card and the phone book stored on internal memory. But for the N900 only second one is relevant). You're also able to browse call history using car unit aswell.

Described in a more specific way, whenever a connection between your carkit and your PBAP enabled phone is established, your phone book will be transfered to your carkit automatically. What happens from now with the transfered phone book of course depends on the features of your carkit. Typical use cases are browse and dial (voice-dial if supported by carkit) your contacts and show caller names for incoming calls. With an integrated In-Car Infotainment/Phone/Navigation/Whatever system it is even possible to use the contacts addresses as target for the navigation system.

By default N900 does NOT support PBAP and thus the in-car use cases described above are either not possible or require manual workarounds as the in other threads described &quot;Petrovich workaround&quot; (manual sending of vCards via Bluetooth) or OPP (Object Push Profile - A Bluetooth profile that enables a Bluetooth device to transfer (push) an object (e.g. contact) to another Bluetooth device).

=== IrMC ===

This project also aims to provide IrMC support. IrMC is another method to transfer the phone book to e. g. a car kit via Bluetooth which is by default not supported by N900.

=== MAP ===

The Message Access Profile (MAP) allows to exchange messages objects between carkits and mobile devices. Now only SMS (GSM) are supported. In other words, MAP profile gives your car unit read access to your SMS.

MAP is not supported by default by N900.

Here comes the good news: '''Now you can have PBAB and IrMC and MAP on your N900 !!!'''

== Credits ==

Credits for the achieved so far go to those who contributed in the old thread [http://talk.maemo.org/showthread.php?t=36272 &quot;Car kit can not access contact information&quot;] as well as the new thread [http://talk.maemo.org/showthread.php?t=59114 Announce - Bluetooth PBAP and IrMC / Carkit support is coming to N900...]:

Especially the developers: drdrewusaf, tuxy, jarmo2, hschmitt, Ossman, mirakels..., but of course also all the others who helped with testing and troubleshooting!

== Disclaimer ==

Before you start playing with your phone, you should check if your carkit does support PBAP / IrMC / MAP.

If it does not, this solution can not help you - Sorry!

''There is a TODO to write support for AT commands but don't hold your breath.''

(Note: Carkits older than 2007 probably do NOT support PBAP)

==''' Known issues / problems '''==

* Sometimes contacts synced from other devices (e.g. using PC Suite) with special characters in names/details are not transferred (correctly). Recreating these contacts on your N900 ''should'' solve this issue. - ''I don't know if this is still valid. Please report it if this problem persist''
* MAP implementation in N900 doesn't support neither notifications nor the push methods yet

==''' Installation Guide '''==

This installation is based on obexd-0.46 and provides
* PBAP support
* IrMC support
* MAP support
* PC Suite support
* Multiple phone numbers per contact
* Skip SIM contact requests (means contacts are not shown twice)
* vCards are separated correctly with CRLF between END:VCARD and BEGIN:VCARD.

=== CSSU-testing (the easiest way) ===

Unfortunately obexd 0.46 isn't in stable branch of CSSU so you can obtain it easily only from CSSU-testing. Please read carefully CSSU information and follow CSSU installation instructions if you want to obtain obexd. You can find all neccesary information on [http://wiki.maemo.org/Community_SSU CSSU page]

Downsides:
* CSSU-T has longer release cycle so it doesn't contain the newest version.
* There is no map support in latest CSSU-T
* It contains configuration bug which prevents synchronize contacts using SyncML over BT. You need to disable ''syncevolution'' plugin to fix the problem (see below in Configuration chapter).
* The last known issue in CSSU-T is missing dependency (only affects call history feature). You need to install ''rtcom-eventlogger-async'' package (using HAM or apt).

=== Manual installation ===

This needs using command line (e.g. xterm).

* Download following packages (version of your choise - recommended is the latest one) from [http://merlin1991.at/~luf/obexd/ http://merlin1991.at/~luf/obexd/]:
** obexd
** librtcom-eventlogger1-async
** rtcom-eventlogger-async (even if a car kit asks for call history, the N900 won't reply if this package is missing, so no call history would be transferred)
** evolution-data-server-addressbook *)
** libebook *)
** libedata-book *)
** libedataserver *)
*: ''*) It's recommended to also upgrade evolution-data-server to avoid empty vcard fields.''

* Place them in a folder on the N900, say &lt;code&gt;/home/user/mypackages&lt;/code&gt;

* As root run (replace /home/user/mypackages with the path to the folder where you placed the files):
&lt;source lang=&quot;bash&quot;&gt;
cd /home/user/mypackages
dpkg -i *.deb&lt;/source&gt;

* Reboot the phone.

Test and ENJOY - hopefully ;-)

'''-&gt; Please share your results !!!'''

== Configuration ==

This is handy for some configuration fixes and debugging.


The obexd is started under user '''user''' using D-Bus (no idea why because it doesn't restart when fail). So the command to start is defined in:

/usr/share/dbus-1/services/obexd.service

&lt;source lang=&quot;properties&quot;&gt;
[D-BUS Service]
Name=org.openobex
Exec=/usr/lib/obex/obexd --nodaemon --noplugin=mas,syncevolution --symlinks --root .obex-root --root-setup /usr/bin/obex-root-setup --capability '!/usr/bin/gen-obex-capability.sh'
&lt;/source&gt;

: ''Note: this is fixed version for CSSU-T version of obexd''


&lt;source lang=&quot;properties&quot;&gt;
[D-BUS Service]
Name=org.openobex
Exec=/usr/lib/obex/obexd --nodaemon --debug='*' --noplugin=syncevolution --symlinks --root .obex-root --root-setup /usr/bin/obex-root-setup --capability '!/usr/bin/gen-obex-capability.sh'
&lt;/source&gt;

: ''Note: this is for debugging due to some troubleshooting or recognizing what Profile is used (PBAP or IrMC)''


Some useful arguments:
&lt;source lang=&quot;bash&quot;&gt;
  -d, --debug=DEBUG           Enable debug information output
  -P, --noplugin=NAME,...     Specify plugins not to load
&lt;/source&gt;
: ''The most used DEBUG is '*' (--debug='*') to debug everything''
:* ''plugin names:''
:** ''ftp - File Transfer Profile for exchanging files''
:** ''irmc - IrMC profile for synchronizing contacts and call history''
:** ''map - Message Access Profile for SMS''
:** ''opp - Object Push Profile for pushing file to the N900''
:** ''pbap - Phone Book Access Profile for contacts and call history''
:** ''pcsuite - Nokia PC Suite services''
:** ''syncevolution - SyncML obex profile conflicting with nokia SyncML'' - should be disabled


All possibilities:
&lt;source lang=&quot;bash&quot;&gt;
$ /usr/lib/obex/obexd --help
Usage:
  obexd [OPTION...]

Help Options:
  -?, --help                  Show help options

Application Options:
  -n, --nodaemon              Do not run as daemon in background
  -d, --debug=DEBUG           Enable debug information output
  -r, --root=PATH             Specify root folder location. Both absolute and relative can be used, but relative paths are assumed to be relative to user $HOME folder
  -S, --root-setup=SCRIPT     Root folder setup script
  -l, --symlinks              Allow symlinks leading outside of the root folder
  -c, --capability=FILE       Specify capability file, use '!' mark for scripts
  -a, --auto-accept           Automatically accept push requests
  -p, --plugin=NAME,...       Specify plugins to load
  -P, --noplugin=NAME,...     Specify plugins not to load
&lt;/source&gt;

== Troubleshooting ==

You should obtain debug log using syslog and also you can sniff the communication using hcidump.

=== Get debug messages ===

For obtain debug information you need to enable obexd syslog debugging messages:

# Install sysklogd package. As root run &lt;source lang=&quot;bash&quot;&gt;apt-get install sysklogd&lt;/source&gt;
#* Temporary:
#*# Kill running obexd process. As user run &lt;source lang=&quot;bash&quot;&gt;killall obexd&lt;/source&gt;
#*# Get the necessary command line from file ''/usr/share/dbus-1/services/obexd.service'', line &quot;Exec=&quot; (only the part behind Exec=) -&gt; it's probably best to put it in a shell script, this also enables you to quickly switch between f.e. IrMC and PBAP test cases using dedicated scripts
#*# Restart obexd with enabled debug option as user. You need to add ''--debug='*' '' (see Configuration chapter for example)
#* Permanent till next upgrade of obexd:
#*# Add the ''--debug='*' '' option into the ''/usr/share/dbus-1/services/obexd.service'' file (see Configuration chapter for example)
#*# Reboot N900
# Make you test case
# Get the debug from syslog
#* syslogd will create a file &lt;code&gt;/var/log/syslog&lt;/code&gt;
#* After your test copy this file to some other location (do not delete the original) and edit out the relevant part
# Uninstall sysklogd package. As root run &lt;source lang=&quot;bash&quot;&gt;apt-get remove sysklogd&lt;/source&gt;

=== Get the communication dump ===
   
First you need to add the developer repository, see [[Documentation/devtools/maemo5#Installation the devtools installation instructions]].

After adding the repository, run the following command as root:

&lt;source lang=&quot;bash&quot;&gt;
apt-get install bluez-hcidump&lt;/source&gt;

OR if the above fails, try the following steps:

# Download the deb-package containing hcidump from here: [http://repository.maemo.org/pool/fremantle/free/b/bluez-hcidump/bluez-hcidump_1.42-0maemo2_armel.deb hcidump download]
# Unpack it (alien on Linux, 7-zip on Windows)
# Copy &lt;code&gt;/usr/sbin/hcidump&lt;/code&gt; to the N900
# In xTerm as root:&lt;source lang=&quot;bash&quot;&gt;chmod a+x /usr/sbin/hcidump&lt;/source&gt;

=== Usage of hcidump ===

For testing/debugging with hcidump, run the following command (where &quot;/some/path/somefilename&quot; is a real path and any name you choose for your output file.)

&lt;source lang=&quot;bash&quot;&gt;
hcidump -w /some/path/somefilename
&lt;/source&gt;

right before turning your head unit/car on. Then, do what you would normally do to get contacts to show up and wait for it to finish/fail. Then, press ctrl+c on the phone to exit hcidump. Finally, you can view the output/dump file with Wireshark or upload your dump files so we can see what's going on.

'''-&gt; Please share your results !!!'''

== Downgrade to Original State ==

To reinstall the original packages you can use several ways.

=== Using apt ===

As root run:

&lt;source lang=&quot;bash&quot;&gt;
apt-get update
apt-get install libopenobex1=1.4-0maemo3+0m5
apt-get install obexd=0.18-0maemo6+0m5
&lt;/source&gt;

Reboot the phone.

=== Manual dpkg ===

* Download these 2 .deb packages: &lt;br/&gt;
*# [http://repository.maemo.org/pool/fremantle/free/libo/libopenobex1/libopenobex1_1.4-0maemo3+0m5_armel.deb libopenobex1 1.4]
*# [http://repository.maemo.org/pool/fremantle/free/o/obexd/obexd_0.18-0maemo6+0m5_armel.deb obexd 0.18]

* Place them in a folder on the N900, say &lt;code&gt;/home/user/mypackages&lt;/code&gt;

* As root run (replace /home/user/mypackages with the path to the folder where you placed the files):
&lt;source lang=&quot;bash&quot;&gt;
apt-get remove openobex-apps
cd /home/user/mypackages
dpkg -i *.deb&lt;/source&gt;

* Reboot the phone.

==''' Supported Carkits '''==

So far, successful phonebook transfers were reported for the following carkits:

(If you are able to successfully transfer your phonebook to any carkit not listed here, please let us know or just add to following list!):

==='''Via PBAP:'''===


====Built-In Carkits:====
=====Acura=====
* Acura TL -2010- SH-AWD w/Technology Package

=====Audi=====
* Audi -2009- with RNS-E
* Audi A3 -2009- (Facelift) with Radio Concert and bluetooth preparation
* Audi A3 -2010- with RNS-E and bluetooth preparation
* Audi A3 -2011- with Radio Concert and bluetooth preparation
* Audi A4 -2010- with MMI (usable, BUT reads double entries, looks like phonebook is both on N900 and on SIM-card)

=====BMW=====
* BMW 1series -2008- (E81/E82/E87/E88)
* BMW 1series -2010- (E81/E82/E87/E88)
* BMW 3series -2007- (E90/E91/E92/E93)
* BMW 3series -2008- (E90/E91/E92/E93)
* BMW 3series -2009- (E90/E91/E92/E93)
* BMW 3series -2011- (E90/E91/E92/E93)
* BMW 5series -2009- (E60/E61)
* BMW 5series -2010- (F10/F11)
* BMW X1 -2010- (E84)
* BMW X5 -2007- (E70)

* BMW 3 Series -2012- (E92) - All works, except transfering photo contact.

=====Chrysler=====
* Town and Country 2010 (Limited)

=====Citroen=====
* Citroen C5 (2006) with RD4 audio / Bluetooth system (phone book access works and outgoing calls can be made, but no caller ID and no phone number is shown on incoming calls; missed/dialed/received lists aren't available, either)
* Citroen (Model unknown)
* Citroen DS3 (2011) with MyWay audio/navigation/Bluetooth system (Phone book access direct from phone available, outgoing calls can be made, caller ID with phone number is shown on incoming calls, missed/dialed/received lists are available but this are only the calls that were made whilst connected with the MyWay-system)

=====Dodge=====
* Durango 2012 with RHR UConnect (Citadel)

=====Fiat=====
* Fiar Scudo Panorama - 2007 - car kit bluetooth

=====Ford=====
* Ford Mondeo -2007- Navigationsystem NX with Touchscreen
* Ford Galaxy -2010- Navigation with Touchscreen
* Ford Focus -2010- with Ford 6000CD
* Ford Escape -2011- Limited with Touchscreen
* Ford Mondeo -2011- Navigationsystem Travelpilot NX with Touchscreen

=====Honda=====
* Honda Accord -2009- (EU) HFT system with SatNav
* Honda CRV -2010- (EU) HFT system with SatNav
* Honda Civic 2012 EX,Si. HandsFreeLink HFL

=====Hyundai=====
* Hyundai Sonata -2011- SE Stock Bluetooth

=====Infinity=====
* Infinity FX37 -2010-

=====Land Rover=====
* Land Rover Discovery 3 -2007-

=====Lexus=====
* IS 220d -2011-

=====Mahindra and Mahindra=====
XUV 5OO (Only phone book Not call logs and SMS)

=====Mercedes=====
* Mercedes E-class &gt; 09/2010- Audio 50 APS
* Mercedes E-class &gt; 09/2010- Audio 20
* Mercedes C-class &gt; 03/2011- all
* Mercedes GLK- class &gt;09/2010- Audio 50 APS and Audio 20

=====MINI=====
* MINI -2010- (R55/R56/R57)

=====Nissan=====
* 370Z -2011- HD-Navi

=====Opel=====
* Insignia -2009- DVD800 (Same as [http://wiki.maemo.org/Bluetooth_PBAP#Vauxhall Vauxhall])

=====Peugeot=====
* Peugeot 207 GTI 2010
* Peugeot 307 (2007) - Default RD4 Audio Equipment
* Peugeot 3008 - Built-In NAV Carkit
* Peugeot 5008 -2010- Connect Nav carkit
* Peugeot 407SW 2008

=====Renault=====
* Renault Megane 3 Coupé / Hatchback - 3D Sound by Arkamys
* Renault Scenic XMOD Live (2012)

=====SAAB=====
* SAAB 9-3 -2011- with built-in TEL4

=====Seat=====
* Seat Exeo -2009-

=====Skoda=====
* Skoda Oktavia -2010-
* Skoda Octavia -2010- with built-in &quot;Bolero&quot; radio/CD player and BT car kit
* Skoda Oktavia 04.2008 does not work with latest instructions
* Skoda Octavia 06.2010 mit Amundsen und Skoda BT (nur Phonebook funktioniert good)
* Skoda Superb -2011- with built-in &quot;Columbus&quot; and BT car kit without rSAP

=====Toyota=====
* Toyota Prius MY -2010-

=====Vauxhall=====
* Vauxhall (Model unknown)
* Vauxhall (Insignia - DVD 800 Navi)

=====Volvo=====
* Volvo S60 -2011- (BT version 5.00.17H)
* Volvo V60 -2011- (BT version 5.00.17H)
* Volvo XC60 2011- (BT version 5.00.17Q - pair again after installation deb-files)
* Volvo XC60 2012- (BT version 5.00.17Q - pair again after installation deb-files)

=====VW=====
* VW Passat -2008- with RNS 300 and Bluetooth Touch Adapter
* VW Golf -2011- with 9ZB Bluetooth and RNS-510 navigation
* VW Golf Variant -2008- with RNS 300 and Bluetooth Touch Adapter
* VW Golf -2012- TDI with RNS 315 navigation (tech package build option in US)
* VW New Beetle 2012 - TSI with RNS 315 navigation (EU/The Netherlands)

====Stand alone devices:====
=====Alpine=====
* Alpine CDE-103BT (has an inbuilt Parrot module)
* Alpine CDA-137BTi (has an inbuilt Parrot Bluetooth Plus module) (FW 1.14) (no PB sync over PBAP, use IrMC!)

=====Blaupunkt=====
* Blaupunkt Hamburg MP68

=====Bury=====
* Bury AD9060
* Bury CC9060 plus
* Bury CC9056

=====Garmin=====
* Garmin Nuvi 715
* Garmin Nuvi 265w
* Garmin Zumo 660 

=====JVC=====
* JVC KD-R811

=====Kenwood=====
* Kenwood DNX6140
* Kenwood DNX9960
* Kenwood HD942U (with KCA-BT200 bluetooth module)
* Kenwood KDC-BT50U (upgrade Kenwood-BT-Firmware to 3.30.4 for more reliability)

=====Navigon=====
* Navigon 8410 

=====Nokia=====
* Nokia CK-15W 

=====Parrot=====
* Parrot MKi9000 v1.70
* Parrot MKi9100
* Parrot MKi9200
* Parrot CK3100
* Parrot CK3200LS
* Parrot CK3200 LS-COLOR
* Parrot LG 3200
* Parrot LS 3200
* Parrot Minikit Slim

=====Pioneer=====
* Pioneer AVH-3200BT
* Pioneer AVH-P8400BH
* Pioneer DEH-6200BT
* Pioneer DEH-P7100BT
* Pioneer DEH-7300BT
* Pioneer MVH-8200BT

=====Sony=====
* Sony MEX-BT3900U
* Sony DSX-S300BTX

==='''Via IrMC'''===
====Built-In Carkits:====
* Citroen C4 hatch 2010
* Citroen C4 picasso
* Renault Megane Scenic 2010

====Stand alone devices:====
* Alpine CDA-137BTi (has an inbuilt Parrot Bluetooth Plus module) (FW 1.14) (no PB sync over PBAP, use IrMC!)
* Kenwood DNX6140
* Parrot MK6000

[[Category:N900]]
[[Category:Bluetooth]]</text>
    </revision>
  </page>
  <page>
    <title>Bluetooth PBAP</title>
    <id>5271</id>
    <revision>
      <id>50693</id>
      <timestamp>2012-11-06T12:35:31Z</timestamp>
      <contributor>
        <username>don_falcone</username>
        <id>5161</id>
      </contributor>
      <comment>corrected information about Alpine CDA-137BTi</comment>
      <text xml:space="preserve">'''Original page for older versions of obexd was moved to [[Bluetooth PBAP pre 0.46]]'''


The following is based on two threads on talk.maemo.org and can be applied only on '''obexd version 0.46''' (and maybe later):

* [http://talk.maemo.org/showthread.php?t=36272 &quot;Car kit can not access contact information&quot;]
* [http://talk.maemo.org/showthread.php?t=59114 Announce - Bluetooth PBAP and IrMC / Carkit support is coming to N900...].

You can contact current  maintainer (luf) on IRC #maemo-ssu or in the second TMO thread to get support and share your experiences with  this solution there as well!!!
 
== General Information ==

=== PBAP ===

The Bluetooth Phone Book Access Profile (PBAP) allows to exchange Phone Book objects and call history between carkits and mobile devices. In other words, PBAP profile gives your car unit read access to your mobile phone book (to be exact: to both, the phonebook stored on SIM card and the phone book stored on internal memory. But for the N900 only second one is relevant). You're also able to browse call history using car unit aswell.

Described in a more specific way, whenever a connection between your carkit and your PBAP enabled phone is established, your phone book will be transfered to your carkit automatically. What happens from now with the transfered phone book of course depends on the features of your carkit. Typical use cases are browse and dial (voice-dial if supported by carkit) your contacts and show caller names for incoming calls. With an integrated In-Car Infotainment/Phone/Navigation/Whatever system it is even possible to use the contacts addresses as target for the navigation system.

By default N900 does NOT support PBAP and thus the in-car use cases described above are either not possible or require manual workarounds as the in other threads described &quot;Petrovich workaround&quot; (manual sending of vCards via Bluetooth) or OPP (Object Push Profile - A Bluetooth profile that enables a Bluetooth device to transfer (push) an object (e.g. contact) to another Bluetooth device).

=== IrMC ===

This project also aims to provide IrMC support. IrMC is another method to transfer the phone book to e. g. a car kit via Bluetooth which is by default not supported by N900.

=== MAP ===

The Message Access Profile (MAP) allows to exchange messages objects between carkits and mobile devices. Now only SMS (GSM) are supported. In other words, MAP profile gives your car unit read access to your SMS.

MAP is not supported by default by N900.

Here comes the good news: '''Now you can have PBAB and IrMC and MAP on your N900 !!!'''

== Credits ==

Credits for the achieved so far go to those who contributed in the old thread [http://talk.maemo.org/showthread.php?t=36272 &quot;Car kit can not access contact information&quot;] as well as the new thread [http://talk.maemo.org/showthread.php?t=59114 Announce - Bluetooth PBAP and IrMC / Carkit support is coming to N900...]:

Especially the developers: drdrewusaf, tuxy, jarmo2, hschmitt, Ossman, mirakels..., but of course also all the others who helped with testing and troubleshooting!

== Disclaimer ==

Before you start playing with your phone, you should check if your carkit does support PBAP / IrMC / MAP.

If it does not, this solution can not help you - Sorry!

''There is a TODO to write support for AT commands but don't hold your breath.''

(Note: Carkits older than 2007 probably do NOT support PBAP)

==''' Known issues / problems '''==

* Sometimes contacts synced from other devices (e.g. using PC Suite) with special characters in names/details are not transferred (correctly). Recreating these contacts on your N900 ''should'' solve this issue. - ''I don't know if this is still valid. Please report it if this problem persist''
* MAP implementation in N900 doesn't support neither notifications nor the push methods yet

==''' Installation Guide '''==

This installation is based on obexd-0.46 and provides
* PBAP support
* IrMC support
* MAP support
* PC Suite support
* Multiple phone numbers per contact
* Skip SIM contact requests (means contacts are not shown twice)
* vCards are separated correctly with CRLF between END:VCARD and BEGIN:VCARD.

=== CSSU-testing (the easiest way) ===

Unfortunately obexd 0.46 isn't in stable branch of CSSU so you can obtain it easily only from CSSU-testing. Please read carefully CSSU information and follow CSSU installation instructions if you want to obtain obexd. You can find all neccesary information on [http://wiki.maemo.org/Community_SSU CSSU page]

Downsides:
* CSSU-T has longer release cycle so it doesn't contain the newest version.
* There is no map support in latest CSSU-T
* It contains configuration bug which prevents synchronize contacts using SyncML over BT. You need to disable ''syncevolution'' plugin to fix the problem (see below in Configuration chapter).
* The last known issue in CSSU-T is missing dependency (only affects call history feature). You need to install ''rtcom-eventlogger-async'' package (using HAM or apt).

=== Manual installation ===

This needs using command line (e.g. xterm).

* Download following packages (version of your choise - recommended is the latest one) from [http://merlin1991.at/~luf/obexd/ http://merlin1991.at/~luf/obexd/]:
** obexd
** librtcom-eventlogger1-async
** rtcom-eventlogger-async (even if a car kit asks for call history, the N900 won't reply if this package is missing, so no call history would be transferred)
** evolution-data-server-addressbook *)
** libebook *)
** libedata-book *)
** libedataserver *)
*: ''*) It's recommended to also upgrade evolution-data-server to avoid empty vcard fields.''

* Place them in a folder on the N900, say &lt;code&gt;/home/user/mypackages&lt;/code&gt;

* As root run (replace /home/user/mypackages with the path to the folder where you placed the files):
&lt;source lang=&quot;bash&quot;&gt;
cd /home/user/mypackages
dpkg -i *.deb&lt;/source&gt;

* Reboot the phone.

Test and ENJOY - hopefully ;-)

'''-&gt; Please share your results !!!'''

== Configuration ==

This is handy for some configuration fixes and debugging.


The obexd is started under user '''user''' using D-Bus (no idea why because it doesn't restart when fail). So the command to start is defined in:

/usr/share/dbus-1/services/obexd.service

&lt;source lang=&quot;properties&quot;&gt;
[D-BUS Service]
Name=org.openobex
Exec=/usr/lib/obex/obexd --nodaemon --noplugin=mas,syncevolution --symlinks --root .obex-root --root-setup /usr/bin/obex-root-setup --capability '!/usr/bin/gen-obex-capability.sh'
&lt;/source&gt;

: ''Note: this is fixed version for CSSU-T version of obexd''


&lt;source lang=&quot;properties&quot;&gt;
[D-BUS Service]
Name=org.openobex
Exec=/usr/lib/obex/obexd --nodaemon --debug='*' --noplugin=syncevolution --symlinks --root .obex-root --root-setup /usr/bin/obex-root-setup --capability '!/usr/bin/gen-obex-capability.sh'
&lt;/source&gt;

: ''Note: this is for debugging due to some troubleshooting or recognizing what Profile is used (PBAP or IrMC)''


Some useful arguments:
&lt;source lang=&quot;bash&quot;&gt;
  -d, --debug=DEBUG           Enable debug information output
  -P, --noplugin=NAME,...     Specify plugins not to load
&lt;/source&gt;
: ''The most used DEBUG is '*' (--debug='*') to debug everything''
:* ''plugin names:''
:** ''ftp - File Transfer Profile for exchanging files''
:** ''irmc - IrMC profile for synchronizing contacts and call history''
:** ''map - Message Access Profile for SMS''
:** ''opp - Object Push Profile for pushing file to the N900''
:** ''pbap - Phone Book Access Profile for contacts and call history''
:** ''pcsuite - Nokia PC Suite services''
:** ''syncevolution - SyncML obex profile conflicting with nokia SyncML'' - should be disabled


All possibilities:
&lt;source lang=&quot;bash&quot;&gt;
$ /usr/lib/obex/obexd --help
Usage:
  obexd [OPTION...]

Help Options:
  -?, --help                  Show help options

Application Options:
  -n, --nodaemon              Do not run as daemon in background
  -d, --debug=DEBUG           Enable debug information output
  -r, --root=PATH             Specify root folder location. Both absolute and relative can be used, but relative paths are assumed to be relative to user $HOME folder
  -S, --root-setup=SCRIPT     Root folder setup script
  -l, --symlinks              Allow symlinks leading outside of the root folder
  -c, --capability=FILE       Specify capability file, use '!' mark for scripts
  -a, --auto-accept           Automatically accept push requests
  -p, --plugin=NAME,...       Specify plugins to load
  -P, --noplugin=NAME,...     Specify plugins not to load
&lt;/source&gt;

== Troubleshooting ==

You should obtain debug log using syslog and also you can sniff the communication using hcidump.

=== Get debug messages ===

For obtain debug information you need to enable obexd syslog debugging messages:

# Install sysklogd package. As root run &lt;source lang=&quot;bash&quot;&gt;apt-get install sysklogd&lt;/source&gt;
#* Temporary:
#*# Kill running obexd process. As user run &lt;source lang=&quot;bash&quot;&gt;killall obexd&lt;/source&gt;
#*# Get the necessary command line from file ''/usr/share/dbus-1/services/obexd.service'', line &quot;Exec=&quot; (only the part behind Exec=) -&gt; it's probably best to put it in a shell script, this also enables you to quickly switch between f.e. IrMC and PBAP test cases using dedicated scripts
#*# Restart obexd with enabled debug option as user. You need to add ''--debug='*' '' (see Configuration chapter for example)
#* Permanent till next upgrade of obexd:
#*# Add the ''--debug='*' '' option into the ''/usr/share/dbus-1/services/obexd.service'' file (see Configuration chapter for example)
#*# Reboot N900
# Make you test case
# Get the debug from syslog
#* syslogd will create a file &lt;code&gt;/var/log/syslog&lt;/code&gt;
#* After your test copy this file to some other location (do not delete the original) and edit out the relevant part
# Uninstall sysklogd package. As root run &lt;source lang=&quot;bash&quot;&gt;apt-get remove sysklogd&lt;/source&gt;

=== Get the communication dump ===
   
First you need to add the developer repository, see [[Documentation/devtools/maemo5#Installation the devtools installation instructions]].

After adding the repository, run the following command as root:

&lt;source lang=&quot;bash&quot;&gt;
apt-get install bluez-hcidump&lt;/source&gt;

OR if the above fails, try the following steps:

# Download the deb-package containing hcidump from here: [http://repository.maemo.org/pool/fremantle/free/b/bluez-hcidump/bluez-hcidump_1.42-0maemo2_armel.deb hcidump download]
# Unpack it (alien on Linux, 7-zip on Windows)
# Copy &lt;code&gt;/usr/sbin/hcidump&lt;/code&gt; to the N900
# In xTerm as root:&lt;source lang=&quot;bash&quot;&gt;chmod a+x /usr/sbin/hcidump&lt;/source&gt;

=== Usage of hcidump ===

For testing/debugging with hcidump, run the following command (where &quot;/some/path/somefilename&quot; is a real path and any name you choose for your output file.)

&lt;source lang=&quot;bash&quot;&gt;
hcidump -w /some/path/somefilename
&lt;/source&gt;

right before turning your head unit/car on. Then, do what you would normally do to get contacts to show up and wait for it to finish/fail. Then, press ctrl+c on the phone to exit hcidump. Finally, you can view the output/dump file with Wireshark or upload your dump files so we can see what's going on.

'''-&gt; Please share your results !!!'''

== Downgrade to Original State ==

To reinstall the original packages you can use several ways.

=== Using apt ===

As root run:

&lt;source lang=&quot;bash&quot;&gt;
apt-get update
apt-get install libopenobex1=1.4-0maemo3+0m5
apt-get install obexd=0.18-0maemo6+0m5
&lt;/source&gt;

Reboot the phone.

=== Manual dpkg ===

* Download these 2 .deb packages: &lt;br/&gt;
*# [http://repository.maemo.org/pool/fremantle/free/libo/libopenobex1/libopenobex1_1.4-0maemo3+0m5_armel.deb libopenobex1 1.4]
*# [http://repository.maemo.org/pool/fremantle/free/o/obexd/obexd_0.18-0maemo6+0m5_armel.deb obexd 0.18]

* Place them in a folder on the N900, say &lt;code&gt;/home/user/mypackages&lt;/code&gt;

* As root run (replace /home/user/mypackages with the path to the folder where you placed the files):
&lt;source lang=&quot;bash&quot;&gt;
apt-get remove openobex-apps
cd /home/user/mypackages
dpkg -i *.deb&lt;/source&gt;

* Reboot the phone.

==''' Supported Carkits '''==

So far, successful phonebook transfers were reported for the following carkits:

(If you are able to successfully transfer your phonebook to any carkit not listed here, please let us know or just add to following list!):

==='''Via PBAP:'''===


====Built-In Carkits:====
=====Acura=====
* Acura TL -2010- SH-AWD w/Technology Package

=====Audi=====
* Audi -2009- with RNS-E
* Audi A3 -2009- (Facelift) with Radio Concert and bluetooth preparation
* Audi A3 -2010- with RNS-E and bluetooth preparation
* Audi A3 -2011- with Radio Concert and bluetooth preparation
* Audi A4 -2010- with MMI (usable, BUT reads double entries, looks like phonebook is both on N900 and on SIM-card)

=====BMW=====
* BMW 1series -2008- (E81/E82/E87/E88)
* BMW 1series -2010- (E81/E82/E87/E88)
* BMW 3series -2007- (E90/E91/E92/E93)
* BMW 3series -2008- (E90/E91/E92/E93)
* BMW 3series -2009- (E90/E91/E92/E93)
* BMW 3series -2011- (E90/E91/E92/E93)
* BMW 5series -2009- (E60/E61)
* BMW 5series -2010- (F10/F11)
* BMW X1 -2010- (E84)
* BMW X5 -2007- (E70)

* BMW 3 Series -2012- (E92) - All works, except transfering photo contact.

=====Chrysler=====
* Town and Country 2010 (Limited)

=====Citroen=====
* Citroen C5 (2006) with RD4 audio / Bluetooth system (phone book access works and outgoing calls can be made, but no caller ID and no phone number is shown on incoming calls; missed/dialed/received lists aren't available, either)
* Citroen (Model unknown)
* Citroen DS3 (2011) with MyWay audio/navigation/Bluetooth system (Phone book access direct from phone available, outgoing calls can be made, caller ID with phone number is shown on incoming calls, missed/dialed/received lists are available but this are only the calls that were made whilst connected with the MyWay-system)

=====Dodge=====
* Durango 2012 with RHR UConnect (Citadel)

=====Fiat=====
* Fiar Scudo Panorama - 2007 - car kit bluetooth

=====Ford=====
* Ford Mondeo -2007- Navigationsystem NX with Touchscreen
* Ford Galaxy -2010- Navigation with Touchscreen
* Ford Focus -2010- with Ford 6000CD
* Ford Escape -2011- Limited with Touchscreen
* Ford Mondeo -2011- Navigationsystem Travelpilot NX with Touchscreen

=====Honda=====
* Honda Accord -2009- (EU) HFT system with SatNav
* Honda CRV -2010- (EU) HFT system with SatNav
* Honda Civic 2012 EX,Si. HandsFreeLink HFL

=====Hyundai=====
* Hyundai Sonata -2011- SE Stock Bluetooth

=====Infinity=====
* Infinity FX37 -2010-

=====Land Rover=====
* Land Rover Discovery 3 -2007-

=====Lexus=====
* IS 220d -2011-

=====Mahindra and Mahindra=====
XUV 5OO (Only phone book Not call logs and SMS)

=====Mercedes=====
* Mercedes E-class &gt; 09/2010- Audio 50 APS
* Mercedes E-class &gt; 09/2010- Audio 20
* Mercedes C-class &gt; 03/2011- all
* Mercedes GLK- class &gt;09/2010- Audio 50 APS and Audio 20

=====MINI=====
* MINI -2010- (R55/R56/R57)

=====Nissan=====
* 370Z -2011- HD-Navi

=====Opel=====
* Insignia -2009- DVD800 (Same as [http://wiki.maemo.org/Bluetooth_PBAP#Vauxhall Vauxhall])

=====Peugeot=====
* Peugeot 207 GTI 2010
* Peugeot 307 (2007) - Default RD4 Audio Equipment
* Peugeot 3008 - Built-In NAV Carkit
* Peugeot 5008 -2010- Connect Nav carkit
* Peugeot 407SW 2008

=====Renault=====
* Renault Megane 3 Coupé / Hatchback - 3D Sound by Arkamys
* Renault Scenic XMOD Live (2012)

=====SAAB=====
* SAAB 9-3 -2011- with built-in TEL4

=====Seat=====
* Seat Exeo -2009-

=====Skoda=====
* Skoda Oktavia -2010-
* Skoda Octavia -2010- with built-in &quot;Bolero&quot; radio/CD player and BT car kit
* Skoda Oktavia 04.2008 does not work with latest instructions
* Skoda Octavia 06.2010 mit Amundsen und Skoda BT (nur Phonebook funktioniert good)
* Skoda Superb -2011- with built-in &quot;Columbus&quot; and BT car kit without rSAP

=====Toyota=====
* Toyota Prius MY -2010-

=====Vauxhall=====
* Vauxhall (Model unknown)
* Vauxhall (Insignia - DVD 800 Navi)

=====Volvo=====
* Volvo S60 -2011- (BT version 5.00.17H)
* Volvo V60 -2011- (BT version 5.00.17H)
* Volvo XC60 2011- (BT version 5.00.17Q - pair again after installation deb-files)
* Volvo XC60 2012- (BT version 5.00.17Q - pair again after installation deb-files)

=====VW=====
* VW Passat -2008- with RNS 300 and Bluetooth Touch Adapter
* VW Golf -2011- with 9ZB Bluetooth and RNS-510 navigation
* VW Golf Variant -2008- with RNS 300 and Bluetooth Touch Adapter
* VW Golf -2012- TDI with RNS 315 navigation (tech package build option in US)
* VW New Beetle 2012 - TSI with RNS 315 navigation (EU/The Netherlands)

====Stand alone devices:====
=====Alpine=====
* Alpine CDE-103BT (has an inbuilt Parrot module)
* Alpine CDA-137BTi (has an inbuilt Parrot Bluetooth Plus module) (FW 1.14) (no PB sync over PBAP, use IrMC!)

=====Blaupunkt=====
* Blaupunkt Hamburg MP68

=====Bury=====
* Bury AD9060
* Bury CC9060 plus
* Bury CC9056

=====Garmin=====
* Garmin Nuvi 715
* Garmin Nuvi 265w
* Garmin Zumo 660 

=====JVC=====
* JVC KD-R811

=====Kenwood=====
* Kenwood DNX6140
* Kenwood DNX9960
* Kenwood HD942U (with KCA-BT200 bluetooth module)
* Kenwood KDC-BT50U (upgrade Kenwood-BT-Firmware to 3.30.4 for more reliability)

=====Navigon=====
* Navigon 8410 

=====Nokia=====
* Nokia CK-15W 

=====Parrot=====
* Parrot MKi9000 v1.70
* Parrot MKi9100
* Parrot MKi9200
* Parrot CK3100
* Parrot CK3200LS
* Parrot CK3200 LS-COLOR
* Parrot LG 3200
* Parrot LS 3200
* Parrot Minikit Slim

=====Pioneer=====
* Pioneer AVH-3200BT
* Pioneer AVH-P8400BH
* Pioneer DEH-6200BT
* Pioneer DEH-P7100BT
* Pioneer DEH-7300BT
* Pioneer MVH-8200BT

=====Sony=====
* Sony MEX-BT3900U
* Sony DSX-S300BTX

==='''Via IrMC'''===
====Built-In Carkits:====
* Citroen C4 hatch 2010
* Citroen C4 picasso
* Renault Megane Scenic 2010

====Stand alone devices:====
* Alpine CDA-137BTi (has an inbuilt Parrot Bluetooth Plus module) (FW 1.14) (no PB sync over PBAP, use IrMC!)
* Kenwood DNX6140
* Parrot MK6000

[[Category:N900]]
[[Category:Bluetooth]]</text>
    </revision>
  </page>
  <page>
    <title>Bluetooth PBAP pre 0.46</title>
    <id>4374</id>
    <revision>
      <id>50063</id>
      <timestamp>2012-10-03T18:54:14Z</timestamp>
      <contributor>
        <username>luf</username>
        <id>5206</id>
      </contributor>
      <minor/>
      <comment>[[Bluetooth PBAP]] moved to [[Bluetooth PBAP pre 0.46]]: Newer version needs different description.</comment>
      <text xml:space="preserve">The following is a summary of those two threads on talk.maemo.org:

* [http://talk.maemo.org/showthread.php?t=36272 &quot;Car kit can not access contact information&quot;]
* [http://talk.maemo.org/showthread.php?t=59114 Announce - Bluetooth PBAP and IrMC / Carkit support is coming to N900...].

For further information you might want to check these threads.

Please post to the second one to get support and share your experiences with  this solution there as well!!!
 
== General Information ==

=== PBAP ===

The Bluetooth Phone Book Access Profile (PBAP) allows to exchange Phone Book objects between carkits and mobile devices. In other words, PBAP profile gives your car unit read access to your mobile phone book (to be exact: to both, the phonebook stored on SIM card and the phone book stored on internal memory. But for the N900 only second one is relevant). 

Described in a more specific way, whenever a connection between your carkit and your PBAP enabled phone is established, your phone book will be transfered to your carkit automatically. What happens from now with the transfered phone book of course depends on the features of your carkit. Typical use cases are browse and dial (voice-dial if supported by carkit) your contacts and show caller names for incoming calls. With an integrated In-Car Infotainment/Phone/Navigation/Whatever system it is even possible to use the contacts addresses as target for the navigation system.

By default N900 does NOT support PBAP and thus the in-car use cases described above are either not possible or require manual workarounds as the in other threads described &quot;Petrovich workaround&quot; (manual sending of vCards via Bluetooth) or OPP (Object Push Profile - A Bluetooth profile that enables a Bluetooth device to transfer (push) an object (e.g. contact) to another Bluetooth device).

=== IrMC ===

This project also aims to provide IrMC support. IrMC is another method to transfer the phone book to e. g. a car kit via Bluetooth which is by default not supported by N900.

Here comes the good news: 
&lt;div style=&quot;text-align:center;&quot;&gt;'''NOW YOU CAN HAVE PBAB and IrMC ON YOUR N900 !!!'''&lt;/div&gt;

== Credits ==

Credits for the achieved so far go to those who contributed in the old thread [http://talk.maemo.org/showthread.php?t=36272 &quot;Car kit can not access contact information&quot;] as well as the new thread [http://talk.maemo.org/showthread.php?t=59114 Announce - Bluetooth PBAP and IrMC / Carkit support is coming to N900...]:

Especially the developers: drdrewusaf, tuxy, jarmo2, hschmitt, Ossman, mirakels..., but of course also all the others who helped with testing and troubleshooting!

== Disclaimer ==

&lt;font color=red&gt;'''!!! CAUTION !!!'''

This project is still in development stage, which means there are still some risks, downsides and issues to be solved before PBAB on N900 is ready for the average user...(see below).

Please read this summary carefully and evaluate the risks involved for yourself!
(Keep in mind that this can cause problems for the phone. Backup your data, backup your config (apps &gt; system &gt; backup) and know how to reflash)

'''Whatever you do, you are doing it at your own risk!'''&lt;/font&gt;

However, if you want to have PBAB / IrMC and want to help out here - 

'''You are more than welcome as a tester or even developer.'''

Of course, before you start playing with your phone, you should check if your carkit does support PBAP / IrMC. 

If it does not, this solution can not help you - Sorry!

(Note: Carkits older than 2007 probably do NOT support PBAP)

== Current Project Status: ==

===''' Supported Carkits '''===

So far, successful phonebook transfers were reported for the following carkits:

(If you are able to successfully transfer your phonebook to any carkit not listed here, please let us know or just add to following list!):

===='''Via PBAP:'''====


=====Built-In Carkits:=====
======Acura======
* Acura TL -2010- SH-AWD w/Technology Package

======Audi======
* Audi -2009- with RNS-E
* Audi A3 -2009- (Facelift) with Radio Concert and bluetooth preparation
* Audi A3 -2010- with RNS-E and bluetooth preparation
* Audi A3 -2011- with Radio Concert and bluetooth preparation
* Audi A4 -2010- with MMI (usable, BUT reads double entries, looks like phonebook is both on N900 and on SIM-card)

======BMW======
* BMW 1series -2008- (E81/E82/E87/E88)
* BMW 1series -2010- (E81/E82/E87/E88)
* BMW 3series -2007- (E90/E91/E92/E93)
* BMW 3series -2008- (E90/E91/E92/E93)
* BMW 3series -2009- (E90/E91/E92/E93)
* BMW 3series -2011- (E90/E91/E92/E93)
* BMW 5series -2009- (E60/E61)
* BMW 5series -2010- (F10/F11)
* BMW X1 -2010- (E84)
* BMW X5 -2007- (E70)

======Chrysler======
* Town and Country 2010 (Limited)


======Citroen======
* Citroen C5 (2006) with RD4 audio / Bluetooth system (phone book access works and outgoing calls can be made, but no caller ID and no phone number is shown on incoming calls; missed/dialed/received lists aren't available, either)
* Citroen (Model unknown)
* Citroen DS3 (2011) with MyWay audio/navigation/Bluetooth system (Phone book access direct from phone available, outgoing calls can be made, caller ID with phone number is shown on incoming calls, missed/dialed/received lists are available but this are only the calls that were made whilst connected with the MyWay-system)

======Dodge======
* Durango 2012 with RHR UConnect (Citadel)

======Fiat======
* Fiar Scudo Panorama - 2007 - car kit bluetooth

======Ford======
* Ford Mondeo -2007- Navigationsystem NX with Touchscreen
* Ford Galaxy -2010- Navigation with Touchscreen
* Ford Focus -2010- with Ford 6000CD
* Ford Escape -2011- Limited with Touchscreen
* Ford Mondeo -2011- Navigationsystem Travelpilot NX with Touchscreen

======Honda======
* Honda Accord -2009- (EU) HFT system with SatNav
* Honda CRV -2010- (EU) HFT system with SatNav
* Honda Civic 2012 EX,Si. HandsFreeLink HFL

======Hyundai======
* Hyundai Sonata -2011- SE Stock Bluetooth
======Infinity======
* Infinity FX37 -2010-
======Land Rover======
* Land Rover Discovery 3 -2007-
======Lexus======
* IS 220d -2011-
======Mercedes======
* Mercedes E-class &gt; 09/2010- Audio 50 APS
* Mercedes E-class &gt; 09/2010- Audio 20
* Mercedes C-class &gt; 03/2011- all
* Mercedes GLK- class &gt;09/2010- Audio 50 APS and Audio 20

======MINI======
* MINI -2010- (R55/R56/R57)
======Nissan======
* 370Z -2011- HD-Navi
======Opel======
* Insignia -2009- DVD800 (Same as [http://wiki.maemo.org/Bluetooth_PBAP#Vauxhall Vauxhall])
======Peugeot======
* Peugeot 207 GTI 2010
* Peugeot 307 (2007) - Default RD4 Audio Equipment
* Peugeot 3008 - Built-In NAV Carkit
* Peugeot 5008 -2010- Connect Nav carkit
* Peugeot 407SW 2008

======Renault======
* Renault Megane 3 Coupé / Hatchback - 3D Sound by Arkamys
* Renault Scenic XMOD Live (2012)

======SAAB======
* SAAB 9-3 -2011- with built-in TEL4
======Seat======
* Seat Exeo -2009-
======Skoda======
* Skoda Oktavia -2010-
* Skoda Octavia -2010- with built-in &quot;Bolero&quot; radio/CD player and BT car kit
* Skoda Oktavia 04.2008 does not work with latest instructions
* Skoda Octavia 06.2010 mit Amundsen und Skoda BT (nur Phonebook funktioniert good)
* Skoda Superb -2011- with built-in &quot;Columbus&quot; and BT car kit without rSAP

======Toyota======
* Toyota Prius MY -2010-
======Vauxhall======
* Vauxhall (Model unknown)
* Vauxhall (Insignia - DVD 800 Navi)

======Volvo======
* Volvo S60 -2011- (BT version 5.00.17H)
* Volvo V60 -2011- (BT version 5.00.17H)
* Volvo XC60 2011- (BT version 5.00.17Q - pair again after installation deb-files)
* Volvo XC60 2012- (BT version 5.00.17Q - pair again after installation deb-files)

======VW======
* VW Passat -2008- with RNS 300 and Bluetooth Touch Adapter
* VW Golf -2011- with 9ZB Bluetooth and RNS-510 navigation
* VW Golf Variant -2008- with RNS 300 and Bluetooth Touch Adapter
* VW Golf -2012- TDI with RNS 315 navigation (tech package build option in US)
* VW New Beetle 2012 - TSI with RNS 315 navigation (EU/The Netherlands)

=====Stand alone devices:=====
======Alpine======
* Alpine CDE-103BT (has an inbuilt parrot module) 
======Blaupunkt======
* Blaupunkt Hamburg MP68
======Bury======
* Bury AD9060
* Bury CC9060 plus
* Bury CC9056

======Garmin======
* Garmin Nuvi 715
* Garmin Nuvi 265w
* Garmin Zumo 660 

======JVC======
* JVC KD-R811

======Kenwood======
* Kenwood DNX6140
* Kenwood DNX9960
* Kenwood HD942U (with KCA-BT200 bluetooth module)
* Kenwood KDC-BT50U (upgrade Kenwood-BT-Firmware to 3.30.4 for more reliability)

======Navigon======
* Navigon 8410 
======Nokia======
* Nokia CK-15W 
======Parrot======
* Parrot MKi9000 v1.70
* Parrot MKi9100
* Parrot MKi9200
* Parrot CK3100
* Parrot CK3200LS
* Parrot CK3200 LS-COLOR
* Parrot LG 3200
* Parrot LS 3200
* Parrot Minikit Slim

======Pioneer======
* Pioneer AVH-3200BT
* Pioneer AVH-P8400BH
* Pioneer DEH-6200BT
* Pioneer DEH-P7100BT
* Pioneer DEH-7300BT
* Pioneer MVH-8200BT

======Sony======
* Sony MEX-BT3900U
* Sony DSX-S300BTX

===='''Via IrMC'''====

 
=====Built-In Carkits:=====

* Citroen C4 hatch 2010
* Citroen C4 picasso
* Renault Megane Scenic 2010

=====Stand alone devices:=====

* Kenwood DNX6140
* Parrot MK6000

===''' Known issues / problems '''===

* &lt;s&gt;Broken PC Suite connectivity&lt;/s&gt; 
* &lt;s&gt;False Maemo 5 update announcement in App Manager&lt;/s&gt; *)
* &lt;s&gt;In some cases broken file transfer via BT to certain devices&lt;/s&gt; 
* Sometimes contacts synced from other devices (e.g. using PC Suite) with special characters in names/details are not transferred (correctly). Recreating these contacts on your N900 ''should'' solve this issue.
* &lt;s&gt;Lists for outgoing/incoming/missed calls are not supported (some carkits maintain own lists)&lt;/s&gt; **)
* &lt;s&gt;PBAP working but buggy, after copying contacts to some handsfree devices only some of them are visible, incoming calls show wrong name from some other contact.&lt;/s&gt; **)
* &lt;s&gt;Installing/Removing requires manual steps in xTerm&lt;/s&gt;


'' *) Please note, this problem is related to initial versions of the PBAP implementation. With the latest .deb-files this problem should be solved!''

''(The false Maemo5 update in app manager with early versions of PBAP/IrMC solution was related to the mp-fremantle-205-pr package.''
''Removing this package solved this problem, but removal of mp-fremantle-205-pr *might* cause trouble with future Maemo updates. Unfortunately keeping the package prevents uninstalling the initial PBAP implementation...(you might want to search the two threads for more information on this...).)''
''Any information on how to uninstall without removing the package or how to reinstall the package is very welcome!''

'' **) Please note, this feature was added in version 0.46-1maemo2.''

==''' Installation Guide '''==

Mirakels created two deb-files in order to make the installation more user friendly.
This installation is based on obexd-0.30 and provides
* PBAP support
* IrMC support
* PC Suite support
* Multiple phone numbers per contact
* Skip SIM contact requests (means contacts are not shown twice)
* vCards are separated correctly with CRLF between ENV:VCARD and BEGIN:VCARD.

=== Step 0 ===

In case you played with obex on your phone before / had previous versions of this project installed, please perform a downgrade to original version first by following the steps described in section [http://wiki.maemo.org/Bluetooth_PBAP#Downgrade_to_Original_State Downgrade to Original State]

=== Step 1 ===

Download these 2 .deb packages provided by mirakels:

[http://talk.maemo.org/attachment.php?attachmentid=12973&amp;d=1281827814 libopenobex2_1.5_armel.deb]

[http://talk.maemo.org/attachment.php?attachmentid=12986&amp;d=1281878114 obexd2_0.30-0maemo1_armel.deb]

or use the newer obexd2 version updated to the latest obexd repository and build against the pr1.3 sdk:

[http://talk.maemo.org/attachment.php?attachmentid=15356&amp;stc=1&amp;d=1289056159 obexd2_0.35-0maemo1_armel.deb]

Even more recent versions.

[http://talk.maemo.org/attachment.php?attachmentid=18181&amp;d=1299055571 obexd2_0.37-0maemo1_armel.deb]

[http://talk.maemo.org/attachment.php?attachmentid=18183&amp;d=1299056116 libopenobex2-1.5-0maemo3_armel.deb]


Packages provided by luf:

New patched version of obexd droped the dependency to openobex. So you need just obexd package.

[http://talk.maemo.org/attachment.php?attachmentid=27460&amp;d=1342981511 obexd_0.46-1maemo2+cssu1_armel.deb]

Standard evolution-data-server in Maemo N900 returns even empty fields in VCARD what isn't supported in some handsfree devices. There is patched version which you can use in such situation.

[http://talk.maemo.org/attachment.php?attachmentid=27461&amp;d=1342981527 evolution-data-server-addressbook_1.4.2.1-20120717-maemo1+cssu1_armel.deb]

[http://talk.maemo.org/attachment.php?attachmentid=27462&amp;d=1342981545 libebook_1.4.2.1-20120717-maemo1+cssu1_armel.deb]

[http://talk.maemo.org/attachment.php?attachmentid=27464&amp;d=1342981585 libedata-book_1.4.2.1-20120717-maemo1+cssu1_armel.deb]

[http://talk.maemo.org/attachment.php?attachmentid=27465&amp;d=1342981599 libedataserver_1.4.2.1-20120717-maemo1+cssu1_armel.deb]

This may hopefully get into CSSU.

If you want to take look at sources you can [http://merlin1991.at/~luf/pbap/ Packages and sources for PBAP]

=== Step 2 ===

Place them in a folder on the N900, say &lt;code&gt;/home/user/mypackages&lt;/code&gt;

=== Step 3 ===

As root run (replace /home/user/mypackages with the path to the folder where you placed the files):

&lt;source lang=&quot;bash&quot;&gt;
cd /home/user/mypackages
dpkg -i *.deb&lt;/source&gt;

=== Step 4 ===

Reboot the phone.
Test and ENJOY - hopefully ;-)

'''-&gt; Please share your results !!!'''

Worked fine with Audi A4 (2011) MMI, accept the incoming, outgoing, etc shows irrelevant contacts.

&lt;s&gt;PBAP working but buggy, after copying contacts to Nokia Speakerphone HF-510 only some of them are visible, incoming calls show wrong name from some other contact.&lt;/s&gt;

This buggy behaviour is fixed in version 0.46-1maemo2. Please give it a try.

&lt;font color=grey&gt;

=== Old/Obsolete Installation Guide ===

Note: The following installation steps are not necessary anymore and just kept for better understanding of what was going on so far.

Step 1

Download the following 3 files and copy them to your phone (provided by drdrewusaf):

* [http://ftp.us.debian.org/debian/pool/main/libo/libopenobex/libopenobex1_1.5-2_armel.deb Openobex 1.5-2 libraries]
* [http://ftp.us.debian.org/debian/pool/main/libo/libopenobex/openobex-apps_1.5-2_armel.deb Openobex 1.5-2 apps]
* [http://forums.internettablettalk.com/attachment.php?attachmentid=11779&amp;stc=1&amp;d=1278357528 obexd]

Step 2

Open a root terminal and navigate to the folder you saved the 3 files in (where &quot;/path/to/files&quot; is the real path to your downloaded files): 

&lt;source lang=&quot;bash&quot;&gt;
cd /path/to/files
&lt;/source&gt;

Step 3

Install the packages. 
As root run: 

&lt;source lang=&quot;bash&quot;&gt;
dpkg -i libopenobex1_1.5-2_armel.deb openobex-apps_1.5-2_armel.deb obexd_0.28-0maemo3_armel.deb
&lt;/source&gt;

Step 4

Download the latest version of obexd zipped binary provided by mirakels from here

[http://talk.maemo.org/attachment.php?attachmentid=12612&amp;d=1280519142 obex download] 

This version provides:
* &lt;font color=grey&gt;PBAP support (actually the plain PBAP that is in the 0.29 repo)&lt;/font&gt;
* &lt;font color=grey&gt;IRMC sync support (only full phonebook retrieves)&lt;/font&gt;
* &lt;font color=grey&gt;extra CR/LF between contacts&lt;/font&gt;
* &lt;font color=grey&gt;support for multiple phone numbers per contact&lt;/font&gt;
* &lt;font color=grey&gt;PC-Suite support (based on the patch test from hschmitt)&lt;/font&gt;


BUGS: pbap sends phonebook twice.

Step 5

Replace the current obexd in &lt;code&gt;/usr/lib/obex/obexd&lt;/code&gt; with the new one from mirakels, 
as root run:

&lt;source lang=&quot;bash&quot;&gt;
cd &lt;where your new version is&gt;
gunzip obexd.gz
mv obexd /usr/lib/obex/obexd
&lt;/source&gt;

Make sure that it is excecutable

&lt;source lang=&quot;bash&quot;&gt;
chmod a+x /usr/lib/obex/obexd
&lt;/source&gt;

Step 6

Edit the obex start command in ''/usr/share/dbus-1/services/obexd.service'':
* &lt;font color=grey&gt;for PBAB include the option ''--pbap'' (already added after previous steps),&lt;/font&gt;
* &lt;font color=grey&gt;for IRMC include the option ''--irmc'' (both is possible too),&lt;/font&gt; 
* &lt;font color=grey&gt;for PC Suite connection add ''--capability !/usr/bin/gen-obex-capability.sh''&lt;/font&gt; 

Step 7

Reboot, test and ENJOY - hopefully ;-)

'''-&gt; Please share your results !!!'''
&lt;/font&gt;

== Troubleshooting ==

For troubleshooting install and use hcidump and/or syslog

=== Download and install hcidump ===
   
First you need to add the developer repository, see [[Documentation/devtools/maemo5#Installation the devtools installation instructions]].

After adding the repository, run the following command as root:

&lt;source lang=&quot;bash&quot;&gt;
apt-get install bluez-hcidump&lt;/source&gt;

OR if the above fails, try the following steps:

# Download the deb-package containing hcidump from here: [http://repository.maemo.org/pool/fremantle/free/b/bluez-hcidump/bluez-hcidump_1.42-0maemo2_armel.deb hcidump download]
# Unpack it (alien on Linux, 7-zip on Windows)
# Copy &lt;code&gt;/usr/sbin/hcidump&lt;/code&gt; to the N900
# In xTerm as root:&lt;source lang=&quot;bash&quot;&gt;chmod a+x /usr/sbin/hcidump&lt;/source&gt;

=== Usage of hcidump ===

For testing/debugging with hcidump, run the following command (where &quot;/some/path/somefilename&quot; is a real path and any name you choose for your output file.)

&lt;source lang=&quot;bash&quot;&gt;
hcidump -w /some/path/somefilename
&lt;/source&gt;

right before turning your head unit/car on. Then, do what you would normally do to get contacts to show up and wait for it to finish/fail. Then, press ctrl+c on the phone to exit hcidump. Finally, you can view the output/dump file with Wireshark or upload your dump files so we can see what's going on.

'''-&gt; Please share your results !!!
'''

=== Install syslogd and enable obexd debug option ===

For further troubleshooting information you may also want to try to enable obexd syslog debugging messages:

Step 1) 
Install syslogd. As root run &lt;source lang=&quot;bash&quot;&gt;apt-get install sysklogd&lt;/source&gt;
Step 2) 
Kill running obexd process. As root run &lt;source lang=&quot;bash&quot;&gt;killall obexd&lt;/source&gt;
Step 3) 
Restart obexd with enabled debug option. As root run:&lt;source lang=&quot;bash&quot;&gt;/usr/lib/obex/obexd --debug --opp --ftp --pcsuite --pbap --symlinks --root .obex-root --root-setup /usr/bin/obex-root-setup --capability !/usr/bin/gen-obex-capability.sh&lt;/source&gt; 
OR

Add the '''--debug''' option 
in the ''/usr/share/dbus-1/services/obexd2.service'' file (for example just before the --nodaemon option).

Step 4) 

Sysklogd will create a file &lt;code&gt;/var/log/syslog&lt;/code&gt;

After your test copy this file to some other location (do not delete the original) and edit out the relevant part and post it [http://talk.maemo.org/showthread.php?t=59114 here].

== Downgrade to Original State ==

To reinstall the original packages: 

=== Step 1 ===

Download these 2 .deb packages:

[http://repository.maemo.org/pool/fremantle/free/libo/libopenobex1/libopenobex1_1.4-0maemo3+0m5_armel.deb libopenobex1 1.4]

[http://repository.maemo.org/pool/fremantle/free/o/obexd/obexd_0.18-0maemo5+0m5_armel.deb obexd 0.18]

=== Step 2 ===

Place them in a folder on the N900, say &lt;code&gt;/home/user/mypackages&lt;/code&gt;

=== Step 3 ===

As root run (replace /home/user/mypackages with the path to the folder where you placed the files):

&lt;source lang=&quot;bash&quot;&gt;
apt-get remove openobex-apps
cd /home/user/mypackages
dpkg -i *.deb&lt;/source&gt;

=== Step 4 ===

Reboot the phone.

OR run as root 

&lt;source lang=&quot;bash&quot;&gt;
apt-get install libopenobex1=1.4-0maemo3+0m5
apt-get install obexd=0.18-0maemo5+0m5
&lt;/source&gt;

Reboot the phone.

OR run as root

&lt;source lang=&quot;bash&quot;&gt;
apt-get update
apt-get install --reinstall obexd libopenobex1 openobex-apps
&lt;/source&gt;

Reboot the phone.

[[Category:N900]]
[[Category:Bluetooth]]</text>
    </revision>
  </page>
  <page>
    <title>Bluetooth keyboard</title>
    <id>1150</id>
    <revision>
      <id>27652</id>
      <timestamp>2010-01-28T14:04:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Bluetooth HID]]</text>
    </revision>
  </page>
  <page>
    <title>Bluetooth keyboards</title>
    <id>2869</id>
    <revision>
      <id>21263</id>
      <timestamp>2009-10-29T14:14:53Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Bluetooth keyboards]] moved to [[Bluetooth HID]]</comment>
      <text xml:space="preserve">#REDIRECT [[Bluetooth HID]]</text>
    </revision>
  </page>
  <page>
    <title>Bluetooth network enabled cell phones</title>
    <id>120</id>
    <revision>
      <id>42243</id>
      <timestamp>2011-02-28T13:16:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>make text into table caption</comment>
      <text xml:space="preserve">{|class=&quot;wikitable&quot;
|+ [[Bluetooth]] network enabled cell phones
|-
!Phones
!Bands
!DUN
!Browse Files?
!Memory Card
!Networks
!Uses Same Charger?
!Issues?
|-
|Audiovox SMT5600           ||900/1800/1900                        ||Yes         ||No                   ||Mini-SD          ||GPRS           || No                      ||Needs testing with MPX220 Fix  
|-
|Cingular 2125              ||850/900/1800/1900                    ||Yes   ||No            ||Mini-SD     ||EDGE     || No                ||Needs testing with MPX220 Fix  
|-
|Cingular 8125              ||850/900/1800/1900                    ||Yes   ||No            ||Mini-SD     ||EDGE     || No                ||Needs testing with MPX220 Fix  
|-
|Ericsson T39m              ||900/1800/1900                        ||No    ||No            ||None        ||GPRS     || No                ||T39M Pairing fails  
|-
|HTC Wizard (e.g. Qtek 9100)||850/900/1800/1900                    ||Yes ||No || ? ||EDGE         ||No || Change GPRS authentication to PAP in HTC. Make sure that dial number (in GPRS IAP) is &quot;*99#&quot; instead of &quot;*99***1#&quot;. 
|-
|LG PM-325                  || 850/ 1900                           ||Yes ||No   ||No || CDMA || No ||Connection idles out very quickly 
|-
|LG KU990 &quot;Viewty&quot;          || 900/1800/1900 + 900/2100 3G         ||Yes || Yes || Micro-SD || GPRS EDGE 3G/UMTS HSDPA     || No || No problems 
|-
|LG VX9800                  || 800/ 1900                           ||Yes ||No   ||Mini-SD || CDMA 1xRTT/ EV-DO || No || Disable CHAP per on N800 in /etc/ppp/options, then disable EVDO on LG handset per post at .  
|-
|LG vx8100                  || 800/ 1900                           || Yes || No   ||No || CDMA 1xRTT/ EV-DO || No ||   
|-
|LG CU500                   || 850/ 900/ 1800/ 1900 + 850/ 1900/ 2100? (3G)|| Yes ||Yes ||TransFlash/ Micro-SD || GSM GPRS/ EDGE + WCDMA UMTS/ HSDPA (3G) || No || Cingular (USA) locked/ branded phone with DUN and ObEx enabled - Requires voice plan +20/month &quot;Media Max 200&quot; media plan (for unlimited data) - Megabit/ second capable  
|-
|Motorola A780             ||850/ 900/ 1800/ 1900                  ||Yes ||No || || GPRS/EDGE || No || You can use the Modem app or manually bind via SPP using rfcomm and pppd (in this case, phone must have Mack Connectivity tools and LeoPPP) - see this) post  
|-
|Motorola MPX220           || 850/ 900/ 1800/ 1900                 ||Yes ||No ||Mini-SD || GPRS || No || * see issues 
|-
|Motorola E680i            || 800/ 1800/ 1900                      ||Yes || ||  || || No || The first procedure in this MotorolaFans post (using the Modem app) worked for me.  
|-
|Motorola ROKR E2          ||900/ 1800/ 1900                       ||Yes || || SD ||GPRS || No || BT DUN works when using the same fix as E680i (ie add &quot;:192.168.0.254&quot; to the /etc/ppp/options file  
|-
|Motorola E1000            ||800/ 1800/ 1900                       ||No ||Yes || || GPRS, 3G || No || DUN doesn't seem to work. Perhaps it needs to be unlocked via SEEM. Pairing works fine though.  
|-
|Motorola E815             ||800/ 1900                             ||Yes ||Yes|| TransFlash/ Micro-SD || CDMA 1xRTT/ EV-DO || No || Verizon Wireless (USA) locked/branded phone with DUN and ObEx] disabled - Type ##DIALUP quickly on phone to permanently enable DUN, flex editing required to enable ObEx - [Details - Requires voice plan +15/month &quot;VCast&quot; media plan (for unlimited data)  
|-
|Motorola i870            || 800                                  ||Yes ||No ||microSD || iDEN/WiDEN || No || On an N810: Connection Type = GPRS, Access point name = &quot;&quot;, Dial-up number=&quot; &quot;, Supplementary commands = &quot;atdt s=2&quot;  
|-
|Motorola i605            ||?                                     ||No ||No ||None || iDen || ||(Nextel) No osso-ic comes close to making this phone work, but fails when phone won't recognize the AT+GCAP command; see bug #1149  
|-
|Motorola KRZR k1m        || 800/ 1900                           ||Yes ||Yes || MicroSD || CDMA2000 1xRTT/ CDMA2000 1xEV-DO || No ||    
|-
|Motorola L7 SLVR/v360    ||850/ 900/ 1800/ 1900                 ||Yes ||Yes ||TransFlash/ Micro-SD || GPRS || No || 
|-
|Motorola V3 RAZR         || 850/ 900/ 1800/ 1900                ||Yes ||Yes ||No || GPRS || No || 
|-
|Motorola V3c RAZR        ||850/ 1900                            || Yes ||Yes ||No || CDMA  || No || Alltel V3c/ No Seem editing needed 
|-
|Motorola V3c RAZR        ||850/ 1900                       ||Yes ||Yes || No || EVDO || No || Verizon BroadbandAccess Connect service 
|-
|Motorola V3x RAZR        ||850/ 1900                       ||Yes ||Yes || Micro-SD/ Transflash || 3G || No || Cingular PDA Connect
|-
|Motorola V195            ||850/ 900/ 1800/ 1900            ||Yes ||Yes ||No || GPRS || No || Flawlessly! 
|-
|Motorola V330            ||850/ 900/ 1800/ 1900            ||Yes ||Yes ||No || GPRS/ EDGE || No ||    
|-
|Motorola V555            ||850/ 900/ 1800/ 1900            ||Yes ||Yes ||No || GPRS/ EDGE || No ||    
|-
|Motorola W490            ||850/ 900/ 1800/ 1900            ||Yes ||Yes ||Micro-SD ||GPRS/EDGE ||No || Perfect 
|-
|Nokia 2630               ||?                               ||Yes ||? ||None || GPRS || Yes ||
|-
|Nokia 3650               ||900/ 1800/ 1900                 ||Yes ||No ||MMC || GPRS || No || 
|-
|Nokia 6021               ||900/ 1800/ 1900                 ||Yes ||Yes ||None || EDGE Adapter || ||  
|-
|Nokia 6103               ||850/ 1800/ 1900                 ||Yes ||Yes ||None || GPRS/ EDGE || Yes || purchased from T-Mobile w/data plan, call required for setup. IR SMS works with Palm, IR DUN does not. (02/15/07) 
|-
|Nokia 6110 Navigator      ||850/900/1800/1900               ||Yes ||Yes || Micro-SD || UMTS/HSDPA || Yes || Can act as Bluetooth-GPS-device for 770/N800 with additional software 
|-
|Nokia 6111                ||900/ 1800/ 1900                 ||Yes ||Yes || None || EDGE || Yes ||   
|-
|Nokia 6125                ||850/ 900/ 1800/ 1900            ||Yes ||Yes ||TransFlash/ Micro-SD || EDGE || Yes ||    
|-
|Nokia 6230a               ||900/ 1800/ 1900                 ||Yes ||Yes? ||MMC || EDGE Adapter || || 
|-
|Nokia 6230b               ||850/ 1800/ 1900                 ||Yes ||Yes? ||MMC || EDGE Adapter || || 
|-
|Nokia 6233                ||900/ 1800/ 1900                 ||Yes ||Yes ||Micro-SD || GPRS, EDGE, 3G || Yes || 
|-
|Nokia 6280                ||?                               ||Yes ||Yes ||miniSD || G3 Adapter || Yes || 
|-
|Nokia 6230i               ||900/ 1800/ 1900                 ||Yes ||Yes? ||MMC || EDGE || || Adapter #6230i Bluetooth difficulties
|-
|Nokia 6255i               ||800/ 1900                       ||Yes ||Yes ||MMC || CDMA 1xRTT Adapter || || Manual setup required for dialup, since CDMA carriers not in wizard 
|-
|Nokia 6256i               ||800/ 1900                       ||Yes ||Yes|| MMC || CDMA 1xRTT || || Adapter (See 6255i) 
|-
|Nokia 6270                ||900/ 1800/ 1900                 ||Yes ||Yes ||mini-SD || GPRS/EDGE || Yes || 170 kbit/s measured with N770 (thru EDGE)
|-
|Nokia 6280                ||900/ 1800/ 1900                 ||Yes ||Yes ||mini-SD || GPRS/ EDGE/ 3G || Yes || 330 kbit/s measured with N770 (thru 3G) 
|-
|Nokia 6310i               ||900/ 1800/ 1900                 ||Yes ||No || No || GPRS, HSCSD, Data call || No || 
|-
|Nokia 6600                ||900/ 1800/ 1900                 ||Yes || ||MMC || GPRS, Data call Adapter  || || 
|-
|Nokia 6620                ||                                ||Yes ||Yes ||MMC || GPRS, EDGE Adapter || || 
|-
|Nokia 6670                ||                                ||Yes ||Yes ||RS-MMC || GPRS,EDGE Adapter || || 
|-
|Nokia 6630                ||                                ||Yes ||Yes ||RS-MMC || GPRS, EDGE,3G Adapter || || 
|-
|Nokia 6680                ||                                ||Yes ||Yes ||RS-MMC || EDGE,3G Adapter || || 
|-
|Nokia 6682                ||850/ 1800/ 1900                 ||Yes ||Yes ||RS-MMC || EDGE Adapter || || 
|-
|Nokia 7610                ||                                ||Yes || ||RS-MMC ||GPRS Adapter || || 
|-
|Nokia 8800                ||                                ||Yes || ||None || EDGE Adapter || || 
|-
|Nokia 8910i               ||                                ||Yes || || || GPRS Adapter || || 
|-
|Nokia E71                 ||850/ 900/ 1800/ 1900/ 2100      || Yes || Yes || MicroSD || GPRS, EDGE, WCDMA (UMTS), HSDPA || Yes || 
|-
|Nokia N70                 ||900/ 1800/ 1900                 || Yes ||Yes || RS-MMC || EDGE,3G || Yes || Cannot play video directly from phone memory 
|-
|Nokia N73                 ||900/ 1800/ 1900                 || Yes ||Yes ||Mini SD || EDGE,3G || Yes || Cannot play video directly from phone memory or SD Memory 
|-
|Nokia N80                 ||850/ 900/ 1800/ 1900 + 2100 (3G)|| Yes ||Yes ||Mini-SD || GSM GPRS/ EDGE + WCDMA UMTS (3G) || Yes || 
|-
|Nokia N90                 ||900/ 1800/ 1900                 || Yes ||Yes ||RS-MMC  || EDGE,3G ||Yes || #N90 bluetooth instability 
|-
|Nokia N91                 ||900/ 1800/ 1900                 || Yes ||Yes ||RS-MMC ||EDGE,3G ||Yes || Works very well with N770 
|-
|Nokia N95-4               ||850/ 900/ 1800/ 1900            || Yes ||Yes ||8GB || EDGE,3G ||Yes || No problems with N810 
|-
|Nokia n-gage (original)   ||900/ 1800/ 1900                 || Yes ||no|| MMC ||GPRS Adapter || || 
|-
|Nokia N-GageQD (US)       ||850/ 1900                       ||Yes ||No ||MMC ||GPRS Adapter  || || 
|-
|PalmOne Treo 650 (Sprint) ||850/ 1900                       ||Yes ||No ||SD ||CDMA 1xRTT ||No || Works w/OS2006 - #t650 See issues for OS 2005  
|-
|PalmOne Treo 650 GSM      ||850/ 900/ 1800/ 1900            || Yes ||No ||SD ||EDGE || No || Works w/OS2006 - #t650 See issues for OS 2005  
|-
|PalmOne Treo 700P (Verizon) || 850/ 1900                       ||Yes ||No ||SD ||CDMA 1xRTT/EVDO ||No || Works w/OS2008 - Requires hacked PhoneInterface.prc. First connection tends to fail but 2nd seems reliable. Just retry.
|-
|Panasonic X800            ||?                               ||Yes ||No ||miniSD ||GPRS || No || files can only be sent to the phone as a bluetooth file transfer message  
|-
|Samsung SGH-P300          ||900/ 1800                       || Yes ||No ||No|| GPRS || No || Easy done!  
|-
|Samsung SGH-Z500          ||900/ 1800/ 1900                 || Yes ||Yes ||TransFlash/ MicroSD || EDGE, 3G || No ||   
|-
|Samsung S??-M500          ||900/ 1800/ 1900|| Yes ||Yes ||TransFlash/ MicroSD ||CDMA / EV-DO || No || Seems to work well. Takes about 60 seconds to establish full connection 
|-
|Samsung SPH-A900          ||850/ 1900|| Yes ||Yes ||No || CDMA / EV-DO|| No || Phone forgets pairing after reboot (others not experiencing this problem on newest Samsung update)  
|-
|Samsung SPH-A920          ||850/ 1900 ||Yes ||No ||TransFlash/ MicroSD|| CDMA / EV-DO || No || Must enable DUN on phone first
|-
|Samsung SPH-A960          ||850/ 1900 ||Yes ||No ||TransFlash/ MicroSD|| CDMA / EV-DO || No ||   
|-
|Samsung T509              ||850/ 1800/ 1900|| Yes ||Yes ||None ||EDGE|| No || 
|-
|Samsung T629              ||850/ 900/ 1800/ 1900|| Yes || ? ||MicroSD || GSM GPRS/ EDGE || No || Same problem with the SGH-X820, need to add receive-all into _/etc/ppp/options_;  
|-
|Samsung SGH-D807          ||850/ 900/ 1800/ 1900 ||Yes ||Yes ||TransFlash/ Micro-SD || GSM GPRS/EDGE || No || Flawlessly with N800! Cingular (USA). Another person: Yep, easy tether with my N810. Blackberry sucks, tried for hours and gave up. Cingular/AT&amp;T. Search for &quot;CINGULAR1, wap&quot; and you'll find lots of setup help. 
|-
|Samsung SGH-T809          ||850/ 900/ 1800/ 1900 ||Yes ||Yes ||TransFlash/ Micro-SD || GSM GPRS/ EDGE || No || Flawlessly! T-Mobile (USA) locked/branded version of Samsung SGH-D820  
|-
|Samsung SGH-D820          ||850/ 900/ 1800/ 1900 ||Yes ||Yes ||TransFlash/ Micro-SD || GSM GPRS/ EDGE || No ||  
|-
|Samsung SGH-E730          ||900/ 1800/ 1900 ||Yes ||Yes ||No (95MB Internal) || GSM GPRS|| No || Flawlessly!
|-
|Samsung SGH-D830          ||900/ 1800/ 1900|| Yes ||Yes ||TransFlash/ Micro-SD || GSM GPRS/ EDGE || No || See Samsung SGH-X820 
|-
|Samsung SGH-X820          ||900/ 1800 /1900|| Yes ||Yes ||No ||GSM GPRS/ EDGE || No || DUN seems to be broken, PPP connection is failing. Power users can fix this manually by adding receive-all flag. Add 'receive-all' to '/etc/ppp/options'. You may or may not want to disable PPP compression.  
|-
|Samsung SPH-M620 UpStage  ||800/ 1900 ||Yes ||Yes ||MicroSD || CDMA 1xRTT/ EV-DO || No || 
|-
|Samsung T629              ||850/ 900/ 1800/ 1900|| Yes || ? || ? || GSM GPRS/ EDGE || No || Same problem with the SGH-X820, need to add receive-all into &quot;/etc/ppp/options&quot; 
|-
|Sanyo SCP-8400           ||800/ 1900|| Yes|| Yes ||MicroSD || CDMA2000 1xRTT/ CDMA2000 1xEV-DO || No ||   
|-
|Sendo X                  ||900/ 1800/ 1900|| Yes ||Partial || SD/MMC || GPRS || No || Mildly unstable (Phone firmware issue) 
|-
|Siemens CX75/M75         ||900/ 1800/ 1900|| Yes ||Yes ||RS-MMC || GPRS || No || if connecting fails, restart phone. 
|-
|Siemens S55/S56          ||900/ 1800/ 1900 ||Yes|| Yes ||None|| GPRS || ||  
|-
|Siemens S65              ||900/ 1800/ 1900|| Yes ||Yes ||RS-MMC ||GPRS ||  || if connecting fails, restart phone.  
|-
|Siemens SL75             ||900/ 1800/ 1900 ||Yes ||Yes ||No ||EDGE ||No ||
|-
|Siemens SX1              ||900/ 1800/ 1900 ||Yes ||No ||MMC ||GPRS ||No ||
|-
|SonyEricsson K600i       ||900/ 1800/ 1900 ||Yes ||Yes ||None ||GSM GPRS 3G || No ||
|-
|SonyEricsson K608i       ||900/ 1800/ 1900 ||Yes ||Yes ||None ||GSM GPRS 3G || No ||
|-
|SonyEricsson K610i       ||900/ 1800/ 1900 ||Yes ||Yes ||Memory Stick Micro || GSM GPRS 3G (UMTS) || No ||   
|-
|SonyEricsson K630/V640i  || 900/ 1800/ 1900 || Yes (Also PAN) || Yes || Memory Stick Micro || GSM GPRS 3G (UMTS) 3G+ (HSDPA) || No ||
|-
|SonyEricsson K700i       ||900/ 1800/ 1900|| Yes ||Yes ||None|| GSM GPRS || No || Tested with mobistar in Belgium (0495953333, mobistar/mobistar) 
|-
|SonyEricsson K750i       ||900/ 1800/ 1900|| Yes || Yes|| Memory Stick Duo Pro || GSM GPRS || No ||   
|-
|SonyEricsson K800i       ||900/ 1800/ 1900|| Yes ||Yes ||Memory Stick Micro (M2) || GSM GPRS UTMS || No ||  
|-
|SonyEricsson M600i       ||900/ 1800/ 1900|| Yes ||Yes ||Memory Stick Micro (M2) || GSM GPRS UTMS || No || Major Problems in connecting to n770. once connected works  
|-
|SonyEricsson P800        ||900/ 1800/ 1900|| Yes || || Memory stick Duo || GPRS || No ||  
|-
|SonyEricsson P900        ||900/ 1800/ 1900|| Yes || || Memory stick Duo || GPRS || No ||   
|-
|SonyEricsson P910        ||900/ 1800/ 1900|| Yes ||Yes ||Memory stick Duo || GPRS || No || It may work after the firmware upgrade (R4E001) - For devices that can't be upgraded or will not pair try this.  
|-
|SonyEricsson P990        ||GSM 900 GSM 1800 GSM 1900 UMTS 2100|| Yes ||Yes ||Memory stick Duo || GPRS, 3G || No || Can't have &quot;Enable power saving&quot; active in the bluetooth setup for the phone. When the phone is in power saving mode the tablet can't find the phone. Tested with a brand new N810. 
|-
|SonyEricsson P1i        ||GSM 900/GSM 1800/GSM 1900/UMTS 2100 ||Yes || Yes|| Memory stick Duo || GPRS, 3G || No || Very stable Tested on N810. 
|-
|SonyEricsson T68i       ||900/ 1800/ 1900 ||Yes|| No|| None ||GPRS || No ||  
|-
|SonyEricsson T608       ||850/ 1900 ||Yes ||No|| None || 1xRTT ||No ||
|-
|SonyEricsson T610       ||900/ 1800 ||Yes ||Yes ||None ||GPRS || No ||
|-
|SonyEricsson T630       ||900/ 1800/ 1900 ||Yes ||Yes ||None ||GPRS|| No ||   
|-
|SonyEricsson V600i      ||900/ 1800/ 1900 ||Yes ||Yes  || || GPRS,3G|| No ||
|-
|SonyEricsson W600i      ||900/ 1800/ 1900 ||Yes ||Yes ||None ||GSM GPRS|| No ||
|-
|SonyEricsson W800i      ||900/ 1800/ 1900 ||Yes ||Yes ||Memory Stick Duo Pro || GSM GPRS || No ||   
|-
|SonyEricsson W810i      ||850/ 900/ 1800/ 1900 ||Yes ||Yes ||Memory Stick Duo Pro || GSM GPRS EDGE|| No ||   
|-
|SonyEricsson W950i      ||900/ 1800/ 1900 ||No  ||No  ||None ||GSM GPRS || No || Incompatible with sdp-query upto and including f/w 3.2006.49-2. See [https://bugs.maemo.org/show_bug.cgi?id=865 bug #865] for details and patch.
|-
|SonyEricsson Z530i      ||900/ 1800/ 1900 ||Yes ||Yes ||Memory Stick Micro || GPRS || No ||  
|-
|SonyEricsson Z1010      ||900/ 1800 2100  ||Yes ||Yes ||Memory stick Duo || GSM GPRS 3G || No ||   
|-
|T-Mobile SDA ( iMate SP5-m) ||850/ 900/ 1800/ 1900 ||Yes ||No ||Mini-SD || EDGE/ GPRS || No ||   
|-
|UTStarCom Verizon XV6700 ||? ||Yes|| No|| No ||EVDO ||No ||Okay BT to DUN with SoftModem App  
|}

[[Category:Users]]
[[Category:Bluetooth]]
[[Category:Cellular]]
[[Category:Connectivity]]</text>
    </revision>
  </page>
  <page>
    <title>Bluetooth stereo audio with XMMS</title>
    <id>1131</id>
    <revision>
      <id>45808</id>
      <timestamp>2011-11-22T02:53:37Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45784 by [[Special:Contributions/70.135.114.247|70.135.114.247]] ([[User talk:70.135.114.247|Talk]]) SPAM</comment>
      <text xml:space="preserve">{{out of date}}

This howto for getting [[Bluetooth]] stereo audio with XMMS makes the assumption that you are comfortable with the command line and the vi editor.  The user them self is responsible for the quality of their work, and although I'm enjoying my BT headphones with my N800 it doesn't mean it will work for everyone.  Never underestimate the power of a Geek to out think their self.  For now this tutorial only works on the [[Nokia N800|N800]] due to the fact that the 770 doesn't have enough oompf for XMMS.  However I'm convinced that some of the information herein can be used with any mplayer based (like kagu) media player or mplayer itself, though I've not tested it. (I'm using my 770 for other tests, I'm playing with) 

==Get Software==

Get XMMS [http://www.internettablettalk.com/forums/showthread.php?t=11892 here]

You will also find that with XMMS you will need a different kind of keyboard (it isn't Hildon aware.)  and that is also available in the debfarm repo.  It's called xvkbd.   Get xmms + any extra's you want (like infinity) and procede.  '''NOTE:''' Due to the way crossfade works you can't use it + the Alsa plugin so no crossfade for BT headphones.

==Bluetooth setup==

First step is of course to properly setup your headphones.  Follow your particular headphones instructions and pair your n8XX with the headphones.  Don't bother going any further till this is done.   Once completed the real fun begins.

Now we go [http://www.internettablettalk.com/forums/showthread.php?t=13468&amp;highlight=a2dp here] and follow the first post and it's instructions on how to enable a2dp.  In my case I did all of this by hand, but this post seems to make life much easier so, why not? 

Next step involves two additional edits to a file.  These edits I've found improve, or rather decrease the number of dropouts especially in a bluetooth rich environment (like my office) 

Using vi open the file /etc/bluetooth/hcid.conf  

# vi /etc/hcid.conf

now look for this section:

        # Default link mode
        #   none   - no specific policy
        #   accept - always accept incoming connections
        #   master - become master on incoming connections,
        #            deny role switch on outgoing connections
        lm accept;

you need to change the last line to:

        lm accept,master;  

Notice that there is no space around the comma, this is important as the list is comma delineated, not space.  What this doesm, is tells the IT that it can be the master, and control the connection.  This seems to decrease the tendency of BT devices to be disturbed by a stronger signal from another device (like someone with a BT phone in their pocket, walking up to talk to you.) 

Next we need to find this section, which should be the very next section:

        # Default link policy
        #   none    - no specific policy
        #   rswitch - allow role switch
        #   hold    - allow hold mode
        #   sniff   - allow sniff mode
        #   park    - allow park mode
        lp rswitch,hold,sniff,park;

Now edit it and remove the words rswitch and sniff.  so that it looks like this:

        lp hold,park;

The rswitch is for a device that can switch roles between the lower quality headphone protocol and the higher quality a2dp one.  It's in our interest to stay high quality.  The sniff allows the IT to search for other devices while connected to you.  Not desirable in a BT rich environment.  

Restart the IT in order to get all of the BT changes picked up.  It seems that just restarting the service doesn't quite do the Linux thing and pick up all the changes, so you have to do it win style.  

At this point you should have a set of BT headphones that can talk with your IT.    If you have mplayer installed the instructions listed above for installing a2dp list a way from the command line to play an individual mp3 with mplayer.  
----
'''XMMS Setup'''

The worst is over,  Now is time to get XMMS rocking and rolling.   Step one is to turn on your headphones and connect to the IT.  Once we make the config edits in XMMS we will lock up if it cannot find the bluetooth device.   

Open XMMS, then click to open the menu (upper left hand corner of the main xmms 'window') scroll down to Options =&gt; Preferences once that window opens choose the first tab labeled &quot;Audio I/O Plugins&quot;  Near the bottom you will see a long bar/button click on it and choose the &quot;Alsa 1.2.10 Output Plugin (libALSA.so)&quot;  Once you do the 'Configure' button will ungrey click this a new window will open.  This is where you will need the xvkbd I mentioned above.  

Now using the xvkbd keyboard you installed earlier.  click in the small window that says default and enter the word bluetooth.  (if you didn't install the xvkbd follow the next few steps till you see the alternate for this.) 

Just below this there is a section called mixer.  In this section click the box that says &quot;Use software volume control&quot;   Now close all the windows using the 'OK' buttons.  If you didn't install xvkbd close XMMS, otherwise skip the next step.  

For those who didn't use xvkbd, once XMMS has closed open the file .xmms/config and look for the ALSA section and change the line

     pcm_device=default

and make it read

     pcm_device=bluetooth

''NOTE'' some have found that sometimes it takes a couple of re-edits because XMMS changed things back.  I've not seen that but, this is a computer and anything can happen.  You'll know it happened when sound comes out the IT, and not your headphones.  
----
'''Last Setup:'''

For whatever reason, it seems that although BT stereo needs all of the CPU room it can grab it isn't capable of over ridding the power saving features in the IT.  The next step will over ride this and  stop the drops.  

I created a small shell script below.  open vi and copy &amp; paste or type this in.  (much easier than typing it new every time you need it.)  I called the script blues using the vi editor:

# vi blues
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
# CPU power mode changer linuxrebel 2008
# Ask what we are to do
echo &quot;bluetooth use state: 1 on; 2 off&quot;
read ans
# take action based on that request
if [ $ans -eq &quot;1&quot; ]; then
       # go into a mode where the cpu is always at full speed
       echo performance &gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
elif [ $ans -eq &quot;2&quot; ]; then
        # Go into the normal demand driven mode
        echo ondemand  &gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
else
       # in case you typed wrong you won't think something happened that didn't
       echo &quot;Try again hombre $ans is not an option&quot;
fi
&lt;/source&gt;

I then save it, chmod it 755 and through sudo, run it.  choose 1, load up XMMS and enjoy as I am hours of near dropout free music.    

'''Post:'''

When you are done just re-run blues and choose 2, this will put it back into the normal ondemand mode, and ensure the highest power saving mode.  

[[Category:Media]]
[[Category:Bluetooth]]
[[Category:Power users]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>Bluezwitch</title>
    <id>3737</id>
    <revision>
      <id>45809</id>
      <timestamp>2011-11-22T02:53:52Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45785 by [[Special:Contributions/70.135.114.247|70.135.114.247]] ([[User talk:70.135.114.247|Talk]]) SPAM</comment>
      <text xml:space="preserve">[http://maemo.org/packages/view/bluezwitch/ bluezwitch] is a widget for the Maemo desktop which allows you to quicky switch [[Bluetooth]] on/off. It simply toggles between the two states., saving you quite a few clicks compared to the original Maemo way :-)

==Help==

You can use the settings dialogue to enter your own Switch Off message.
If the widget isn't show after installation, please reboot the phone and add it again (through the Desktop Edit mode &gt; Add Widget)

==Screenshot==

Nothing to see, just a simple 

==Authors==

* Main author: [http://maemo.org/profile/view/twaelti/ twaelti]
* Thanks to Google and the WWW for a treasure trove of information helping me bring this together

==ChangeLog==

The [http://maemo.org/packages/view/bluezwitch/ current changelog] is available through the package viewer.

==Roadmap==

* End of roadmap, all of its very simple functionality implemented.

==Wishlist==

Use this space to add possible feature wishes:
* Indication whether bt on/off in icon (jgbreezer). ''I know I can click the status to find out though, Im just lazy and want to see with one glance instead of a touch and then another to cancel the dialog. Should update if something else turns it on/off too (can it be notified by dbus?)'' '''DECLINED (twaelti) Won't be implemented, as you can just glance at the statusbar area and see the bluetooth icon visible if BT is up and running :-)'''
* Timed 'on' status (jgbreezer). ''eg. just for pairing, so I don't forget to turn it off again for battery/security. Can't think how UI would work without disrupting the quick on/off usual operation though. Maybe this is one more for the system's BT settings dialog to handle.''
*Can you add more customizable options to icon. ex. icon appearance, icon colour.
* add an option in the settings menu to connect with a special device/mac when enabling bluetooth

==Bugs==

Use this paragraph to report possible bugs:
* None known for now (YOUR NAME)

[[Category:Software]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Booting from MMC card</title>
    <id>711</id>
    <revision>
      <id>4103</id>
      <timestamp>2008-07-05T10:53:38Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Booting from MMC card]] moved to [[Booting from a flash card]]: Renaming to a more generic title</comment>
      <text xml:space="preserve">#REDIRECT [[Booting from a flash card]]</text>
    </revision>
  </page>
  <page>
    <title>Booting from a flash card</title>
    <id>39</id>
    <revision>
      <id>41772</id>
      <timestamp>2011-02-10T13:40:55Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>clarify that article is for N8x0 users</comment>
      <text xml:space="preserve">This article covers the steps you need to follow to boot from a flash card with an [[Nokia N800|N800]] on [[Nokia N810|N810]]. The process is somewhat involved, so some familiarity with the command line is recommended.

Advanced users may wish to read [[advanced booting]] as well, for more advanced booting-related configuration and setup information.

== Why would we want to boot from a flash card? ==

* For more space to install applications.
* An easy-to-use bootable backup.
* To improve performance (note, this is dependent on the quality of your flash card).

== Gain root access ==

First of all you need to be able to gain [[root access]].

== Partition your card ==

Follow the instructions to [[partitioning a flash card|partition your card]].

== Install the necessary tools ==

First, we need to install wget, so open [[terminal|Xterm]] and, '''as root''', run:

 apt-get install wget

Then run:

 mkdir -p /home/user/bin
 cd /home/user/bin
 wget &lt;nowiki&gt;http://www.nmacleod.com/nokia/bin/nupgrade.sh&lt;/nowiki&gt;
 wget &lt;nowiki&gt;http://www.nmacleod.com/nokia/bin/tar&lt;/nowiki&gt;
 chmod +x nupgrade.sh tar

Then, to install the proper filesystem tools, temporarily add [[Extras-devel]] and run:

 apt-get install e2fsprogs

'''NOTE: Do not upgrade existing packages with Extras-devel enabled as this may break things in new and interesting ways.'''


Remove Extras-devel when finished.

== Install bootmenu ==

Now we need to download and install fanoush's [http://fanoush.wz.cz/maemo/#initfs initfs flasher], so, '''as root''', run:&lt;br /&gt;
&lt;small&gt;''Note, although putting initfs_flasher in the directory given is not required, it ''cannot'' be placed on a FAT partition (i.e., one of the cards).''&lt;/small&gt;

 cd /home/user/bin
 wget &lt;nowiki&gt;http://fanoush.wz.cz/maemo/initfs_flasher.tgz&lt;/nowiki&gt;
 tar zxvf initfs_flasher.tgz
 cd /home/user/bin/initfs_flasher/

=== Configuration ===

This is an optional step, but if you want to customize the bootmenu to properly reflect your partitioning setup, change the partition labels, and a number of other options, then you'll need to rename the appropriate &lt;code&gt;bootmenu.conf.''device''.example&lt;/code&gt; file to &lt;code&gt;bootmenu.conf&lt;/code&gt; and edit it to your liking. The README included with flasher and the comments in the configuration file should be enough to tell you what everything is.

The [[flasher]] will ask you if you want to include your &lt;code&gt;bootmenu.conf&lt;/code&gt; file if you renamed it properly.

=== Flash the initfs ===

 cd /home/user/bin/initfs_flasher/
 ./initfs_flash

Follow the onscreen instructions. You can answer yes to all of these questions if you don't understand what they mean.

=== Set the default boot device ===

Once the initfs is flashed, you may wish to change to default boot device so the tablet will boot into your preferred partition without intervention. To do this, '''as root''', run:

 chroot /mnt/initfs cal-tool --set-root-device ask:mmc2

To set the default to partition 2 on the internal card. If you would like to set the default to something else, the device is &lt;code&gt;mmc''#''&lt;/code&gt; (where # is the partition number) for the internal card, and &lt;code&gt;mmc1''#''&lt;/code&gt; for the external card. To set it back the default behavior of booting from the built-in flash, use &lt;code&gt;flash&lt;/code&gt;.

On the [[Nokia N810|N810]] with latest [[Open development/Maemo roadmap/Diablo|Diablo]] version (5.2008.43-7), the device name is slightly different: &lt;code&gt;immc''#''&lt;/code&gt; for the internal card and &lt;code&gt;mmc''#''&lt;/code&gt; for the external one. For details see inside bootmenu.conf (or bootmenu.sh). The name is customizable and corresponds to the MENU_x_ID=&quot;name&quot; line of the item x you want to select.

== Clone to the card ==

&lt;small&gt;''Many thanks to milhouse for writing and maintaining this script.''&lt;/small&gt;

Now it's time to clone your install over to partition 2 of the internal card. The script works in stages to allow better control and error detection, and should take about 10 minutes to complete:

* 0 - Create ext2 filesystem on partition 2 of the Internal memory card
* 1 - Mount partition 2 as /opt
* 2 - Mount rootfs as /floppy
* 3 - Perform cloning process
* 4 - Commit filesystem updates and unmount /floppy and /opt

So, '''as root''', run:

 cd /home/user/bin
 ./nupgrade.sh 0

If the following error occurs: &quot;''Unable to locate mbcache.ko - aborting''&quot;
follow the instructions per this link:  [http://www.internettablettalk.com/forums/showpost.php?p=174911&amp;postcount=336]
 
 ./nupgrade.sh 1
If the following error occurs:
&lt;br&gt;&quot;Installing ext2.ko module and mounting Internal Flash card, second partition...
insmod: can't open '/mnt/initfs/lib/modules/current/ext2.ko': No such file or directory
mount: mounting /dev/mmcblk0p2 on /opt failed''&quot;&lt;br&gt;
do the following (similar to the above remedy during error of &quot;./nupgrade.sh 0&quot;) &lt;br&gt;cp /mnt/initfs/lib/modules/$(uname -r)/ext2.ko /lib/modules/$(uname -r)/ &lt;br&gt;and repeat &quot;./nupgrade.sh 1&quot;

 ./nupgrade.sh 2
 ./nupgrade.sh 3
 ./nupgrade.sh 4
 reboot

Your device will reboot when done, and you can select the partition you want to boot from from the bootmenu.

== Remove the menu ==

If you decide you do not wish to see the bootmenu any longer, you can uninstall it by either [[updating the firmware|reflashing the whole OS image]], or just flashing the initfs (in Linux and OS X) by running:

 sudo ./flasher-3.0 -F &lt;FIASCO image&gt; --flash-only=initfs -R

== Advanced booting ==

For more advanced configuration and setup information for booting-related stuff, please see [[advanced booting]].

[[Category:Power users]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>Booting from a flash card</title>
    <id>39</id>
    <revision>
      <id>41772</id>
      <timestamp>2011-02-10T13:40:55Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>clarify that article is for N8x0 users</comment>
      <text xml:space="preserve">This article covers the steps you need to follow to boot from a flash card with an [[Nokia N800|N800]] on [[Nokia N810|N810]]. The process is somewhat involved, so some familiarity with the command line is recommended.

Advanced users may wish to read [[advanced booting]] as well, for more advanced booting-related configuration and setup information.

== Why would we want to boot from a flash card? ==

* For more space to install applications.
* An easy-to-use bootable backup.
* To improve performance (note, this is dependent on the quality of your flash card).

== Gain root access ==

First of all you need to be able to gain [[root access]].

== Partition your card ==

Follow the instructions to [[partitioning a flash card|partition your card]].

== Install the necessary tools ==

First, we need to install wget, so open [[terminal|Xterm]] and, '''as root''', run:

 apt-get install wget

Then run:

 mkdir -p /home/user/bin
 cd /home/user/bin
 wget &lt;nowiki&gt;http://www.nmacleod.com/nokia/bin/nupgrade.sh&lt;/nowiki&gt;
 wget &lt;nowiki&gt;http://www.nmacleod.com/nokia/bin/tar&lt;/nowiki&gt;
 chmod +x nupgrade.sh tar

Then, to install the proper filesystem tools, temporarily add [[Extras-devel]] and run:

 apt-get install e2fsprogs

'''NOTE: Do not upgrade existing packages with Extras-devel enabled as this may break things in new and interesting ways.'''


Remove Extras-devel when finished.

== Install bootmenu ==

Now we need to download and install fanoush's [http://fanoush.wz.cz/maemo/#initfs initfs flasher], so, '''as root''', run:&lt;br /&gt;
&lt;small&gt;''Note, although putting initfs_flasher in the directory given is not required, it ''cannot'' be placed on a FAT partition (i.e., one of the cards).''&lt;/small&gt;

 cd /home/user/bin
 wget &lt;nowiki&gt;http://fanoush.wz.cz/maemo/initfs_flasher.tgz&lt;/nowiki&gt;
 tar zxvf initfs_flasher.tgz
 cd /home/user/bin/initfs_flasher/

=== Configuration ===

This is an optional step, but if you want to customize the bootmenu to properly reflect your partitioning setup, change the partition labels, and a number of other options, then you'll need to rename the appropriate &lt;code&gt;bootmenu.conf.''device''.example&lt;/code&gt; file to &lt;code&gt;bootmenu.conf&lt;/code&gt; and edit it to your liking. The README included with flasher and the comments in the configuration file should be enough to tell you what everything is.

The [[flasher]] will ask you if you want to include your &lt;code&gt;bootmenu.conf&lt;/code&gt; file if you renamed it properly.

=== Flash the initfs ===

 cd /home/user/bin/initfs_flasher/
 ./initfs_flash

Follow the onscreen instructions. You can answer yes to all of these questions if you don't understand what they mean.

=== Set the default boot device ===

Once the initfs is flashed, you may wish to change to default boot device so the tablet will boot into your preferred partition without intervention. To do this, '''as root''', run:

 chroot /mnt/initfs cal-tool --set-root-device ask:mmc2

To set the default to partition 2 on the internal card. If you would like to set the default to something else, the device is &lt;code&gt;mmc''#''&lt;/code&gt; (where # is the partition number) for the internal card, and &lt;code&gt;mmc1''#''&lt;/code&gt; for the external card. To set it back the default behavior of booting from the built-in flash, use &lt;code&gt;flash&lt;/code&gt;.

On the [[Nokia N810|N810]] with latest [[Open development/Maemo roadmap/Diablo|Diablo]] version (5.2008.43-7), the device name is slightly different: &lt;code&gt;immc''#''&lt;/code&gt; for the internal card and &lt;code&gt;mmc''#''&lt;/code&gt; for the external one. For details see inside bootmenu.conf (or bootmenu.sh). The name is customizable and corresponds to the MENU_x_ID=&quot;name&quot; line of the item x you want to select.

== Clone to the card ==

&lt;small&gt;''Many thanks to milhouse for writing and maintaining this script.''&lt;/small&gt;

Now it's time to clone your install over to partition 2 of the internal card. The script works in stages to allow better control and error detection, and should take about 10 minutes to complete:

* 0 - Create ext2 filesystem on partition 2 of the Internal memory card
* 1 - Mount partition 2 as /opt
* 2 - Mount rootfs as /floppy
* 3 - Perform cloning process
* 4 - Commit filesystem updates and unmount /floppy and /opt

So, '''as root''', run:

 cd /home/user/bin
 ./nupgrade.sh 0

If the following error occurs: &quot;''Unable to locate mbcache.ko - aborting''&quot;
follow the instructions per this link:  [http://www.internettablettalk.com/forums/showpost.php?p=174911&amp;postcount=336]
 
 ./nupgrade.sh 1
If the following error occurs:
&lt;br&gt;&quot;Installing ext2.ko module and mounting Internal Flash card, second partition...
insmod: can't open '/mnt/initfs/lib/modules/current/ext2.ko': No such file or directory
mount: mounting /dev/mmcblk0p2 on /opt failed''&quot;&lt;br&gt;
do the following (similar to the above remedy during error of &quot;./nupgrade.sh 0&quot;) &lt;br&gt;cp /mnt/initfs/lib/modules/$(uname -r)/ext2.ko /lib/modules/$(uname -r)/ &lt;br&gt;and repeat &quot;./nupgrade.sh 1&quot;

 ./nupgrade.sh 2
 ./nupgrade.sh 3
 ./nupgrade.sh 4
 reboot

Your device will reboot when done, and you can select the partition you want to boot from from the bootmenu.

== Remove the menu ==

If you decide you do not wish to see the bootmenu any longer, you can uninstall it by either [[updating the firmware|reflashing the whole OS image]], or just flashing the initfs (in Linux and OS X) by running:

 sudo ./flasher-3.0 -F &lt;FIASCO image&gt; --flash-only=initfs -R

== Advanced booting ==

For more advanced configuration and setup information for booting-related stuff, please see [[advanced booting]].

[[Category:Power users]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>Brainstorm</title>
    <id>3355</id>
    <revision>
      <id>26210</id>
      <timestamp>2010-01-09T21:09:59Z</timestamp>
      <contributor>
        <username>pepitoe</username>
        <id>62</id>
      </contributor>
      <comment>[[Brainstorm]] moved to [[Brainstorm Intro]]: more specific page name</comment>
      <text xml:space="preserve">#REDIRECT [[Brainstorm Intro]]</text>
    </revision>
  </page>
  <page>
    <title>Brainstorm 2010</title>
    <id>4100</id>
    <revision>
      <id>45159</id>
      <timestamp>2011-09-06T15:14:42Z</timestamp>
      <contributor>
        <ip>206.210.225.243</ip>
      </contributor>
      <comment>/* Brainstorm areas */</comment>
      <text xml:space="preserve">{{Brainstorm 2010}}

What should maemo.org and the Maemo Community look like in six months? What are the top priorities of the Maemo project? What should the maemo.org staff be concentrating on?
 
We need to set some bigger, more concrete and measurable goals for Maemo for the coming months. To help gather ideas and prioritise them, we are running a one-week brainstorming session, similar to [http://maemo.org/news/announcements/maemo-brainstorm/ the one in 2008] which led to [[100Days]], to set some near-term direction and priorities for the Maemo project. To do this, we are announcing the [http://talk.maemo.org/showthread.php?p=664650 Great Maemo Brainstorm 2010]

Brainstorm ideas are being discussed on Talk, and should be gathered here and synthesized, summarized and prioritized for the community to set our agenda for the next six months.

I might be beating a dead horse, but thank you for psoitng this!

== Brainstorm priorities ==

On June 2nd 2010, there was a meeting to close the 2010 Brainstorm, and set the priorities in each area for the coming six months.

Here are the main decisions to come out of that meeting:

'''Agenda'''

# Review feedback from brainstorm
# Identify top priorities based on the feedback

Reminder of brainstorm categories:

# [[/Downloads]]
# [[/Packages]]
# [[/Wiki]]
# [[/Talk and mailing lists]]
# [[/Bugzilla]]
# [[/News and Planet]]
# [[/Garage and developer services]]
# [[/Community workings]]


Agreement that the main goal is to focus on things which can provide long-term support for existing Maemo users, given that there will be no official Nokia release of MeeGo for N900.

Here are the general top priorities we agreed in the meeting (subject,
of course, to discussion in case there is violent disagreement):

=== Overall priority for maemo.org ===

* SSO for all maemo.org services (main site, wiki, bugzilla, talk)
*# CAS and the user directory service up
*# Midgard talking with CAS
*# MediaWiki talking with CAS
*# etc

=== Garage ===

* Propose putting it into maintenance mode
* Disable project registration once similar services exist for MeeGo and align with them
* Could shut down Garage Bugtracker &amp; send everyone to Bugzilla
* Same for mailing lists - everyone to Mailman
* Shutting it down would require providing a migration path to gitorious (or similar services)

=== Packages and downloads ===

* Switch from autobuilder to OBS
* Move Downloads web interface on top of Packages
* Release the Maemo app installer
* Enable donations through Downloads pages of applications

=== Bugzilla ===

* Upgrade to Bugzilla 3.4
* Triage all the PR 1.2 related bugs coming in

=== Wiki ===

* Version wiki pages with categories according to which devices/OS version they apply to
* Get rid of (or at least hide better) documentation for Maemo versions &lt;= 4
* Infrastructure to allow easy wikification of individual Talk posts
* Collect Maemo 5 Use cases
* Improve search and identification of related pages for Wiki to reduce overlap

=== Planet &amp; News ===

* View comments (expandable) in Planet
* Include tweets/identica/qaiku in social news

Basically no suggestions for news &amp; planet outside of planned Nemein work

=== Talk ===

* Allow thread creators to change subject line
* Enable email to forum bridge
* Add RSS feeds of posts per thread, and per forum (currently the RSS feed is &quot;new threads in forum&quot;)

No suggestions for mailing lists

=== Community workings ===

The topic was deferred, because the meeting ran long, and there were not
many people there to discuss it.


[[Category:Community]]
[[Category:Brainstorm]]</text>
    </revision>
  </page>
  <page>
    <title>Brainstorm 2010/Bugzilla</title>
    <id>4107</id>
    <revision>
      <id>38522</id>
      <timestamp>2010-09-13T12:05:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add links</comment>
      <text xml:space="preserve">{{Brainstorm 2010}}


== Bugzilla ==

Can we improve the organisation of [https://bugs.maemo.org/ Maemo Bugzilla]? Grow the [[bugsquad]]? What can we do to ensure continuity after MeeGo?</text>
    </revision>
  </page>
  <page>
    <title>Brainstorm 2010/Community workings</title>
    <id>4109</id>
    <revision>
      <id>34763</id>
      <timestamp>2010-05-24T16:21:36Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Community workings */</comment>
      <text xml:space="preserve">{{Brainstorm 2010}}


== Community workings ==

What needs doing to improve the productivity, efficiency and transparency of the [[maemo.org team]]? How can the community be more productive working on community-driven tasks?

* Assign high-level goals to contributors, who are responsible for detailed monthly reporting (Jaffa)
* Lighten reporting overhead for contributors, and encourage continuous updates on mailing lists &amp; more detailed break-down of tasks in wiki (Dneary)
* Reduce number of places where one must track discussions and potentially report progress (Currently Qaiku, mailing lists, Talk, Bugzilla, wiki task page, wiki sprint page) (Dneary)
* Reduce the number of Talk forums (Dneary)</text>
    </revision>
  </page>
  <page>
    <title>Brainstorm 2010/Downloads</title>
    <id>4102</id>
    <revision>
      <id>38524</id>
      <timestamp>2010-09-13T12:34:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add link</comment>
      <text xml:space="preserve">{{Brainstorm 2010}}

== Downloads ==

What can we improve between now and six months from now in the [http://maemo.org/downloads/ application downloads interface] for Maemo to ensure that it stays relevant in the MeeGo world?</text>
    </revision>
  </page>
  <page>
    <title>Brainstorm 2010/Garage and developer services</title>
    <id>4108</id>
    <revision>
      <id>34777</id>
      <timestamp>2010-05-24T17:35:37Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>summarize http://talk.maemo.org/showthread.php?t=53003</comment>
      <text xml:space="preserve">{{Brainstorm 2010}}


== Garage and developer services ==

Garage, subversion and git repositories, autobuilders, issue trackers, mailing lists... what can be done to improve the Maemo application developer experience by the community?


* requests for improvements
** do not auto-upload to public repo on succeeding build, give developer a method to check the actual result prior to &quot;publishing&quot; the package (gri)
** have a purge button, so a successfully built package that doesn't look like intended, can be removed/overwritten by a modified version, without need for incrementing version number (synt: bundyo, nicolai)

* debate about alternatives
** qgil says there are better alternatives nowadays, so why put effort into improvements of the current service
** Ferenc Szekely points to functions of garage that are hard to implement in any of the alternative services, like upload privileges to extras
** Jaffa about the current setup:
*** #advantages:
*** familiarity between projects
*** cross-project collaboration
*** streamlined tools for Maemo
*** single authentication/authorisation point
*** svn
*** #disadvantages / requests for improvement:
*** poor communication in the past (move to vcs.maemo.org and drop.maemo.org)
*** concerns about qgil's suggestion to go into &quot;maintenance mode&quot; might cause bit rot
** qgil calls for staying on topic, which is &quot;what are the top priority tasks at maemo for the next 6 months&quot;. Then he claims maemo developer services has pretty much all it needs, and most of the developers will migrate to meego in a short while, so we shouldn't waste effort on improving maemo developer services
** Jaffa (and Tekojo) disagrees on the meego part of qgil. In the scope of this brainstorm impact of meego on maemo still unclear.
** Tekojo nicely summarizes: &quot;''What it needs to do it does it already.'' Here I agree. Garage has been a fairly low maintenance, reliable service for a long time. Don't poke at it without a good reason. And if such reasons come up, Ferenc knows where to poke&quot;</text>
    </revision>
  </page>
  <page>
    <title>Brainstorm 2010/News and Planet</title>
    <id>4106</id>
    <revision>
      <id>34758</id>
      <timestamp>2010-05-24T15:30:30Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* News and Planet */</comment>
      <text xml:space="preserve">{{Brainstorm 2010}}


== News and Planet ==

What can we do to improve the news experience for casual Maemo followers?

The same Planet and Social News software will be also used on meego.com so advances in these areas will benefit both communities.

=== Things being worked on ===

Nemein are working on the following features already:
* Better abstracts, as the current text shortening system leaves too much of the story unshown
* Reading blog comments through Planet, with blog systems that provide comment feeds
** Regg

=== Future ideas ===

* Adding more sources for news relevancy calculation: Twitter, Google realtime search, ... (bergie)
* Some feel that the current options are insufficient, and [http://talk.maemo.org/showthread.php?t=52604 are working to revive Tableteer] (Texrat)
* Would be nice to distinguish different authors from stories in a single feed (All About Maemo) (GeneralAntilles)</text>
    </revision>
  </page>
  <page>
    <title>Brainstorm 2010/Packages</title>
    <id>4103</id>
    <revision>
      <id>34759</id>
      <timestamp>2010-05-24T15:50:19Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Packages */</comment>
      <text xml:space="preserve">{{Brainstorm 2010}}

== Packages ==

What can be improved in the packaging &amp; testing processes and interfaces for Maemo application developers?

* Make it easy for developers to support older hardware (Naranek)
* Align testing and publishing processes with MeeGo (Qgil)
** Solve main use-case of an application developer using the Qt SDK and OBS to go from source code to packages ready for Maemo 5, MeeGo (rpm) and Harmattan (deb)
* Ensure that it's possible to build packages locally without having to go through OBS - need independence from builder for freedom (javispedro)
* Provide automated hooks to a developer providing easy hints for improving packaging (eg. &quot;We noticed you use *po files for Italian and German. The N900 currently also supports French, Spanish, &lt;add official languages here&gt;. You may want to actively use community resources like talk.maemo.org or transifex.net to add more languages to your project. More here: wiki-link&quot;) (benny1967)
* Allow easy mirroring of package repository (ZogG, [http://talk.maemo.org/showthread.php?t=53400 in this thread])</text>
    </revision>
  </page>
  <page>
    <title>Brainstorm 2010/Talk and mailing lists</title>
    <id>4105</id>
    <revision>
      <id>34768</id>
      <timestamp>2010-05-24T16:39:10Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">{{Brainstorm 2010}}

== Talk and mailing lists ==

Can we improve the quality, the organisation, the behaviour, the guidelines for talk.maemo.org and the Maemo mailing lists?

* Restructure the forums so that it is possible to read 'by platform/OS' (silvermountain)
* Implement SSO &amp; make it cover forums (silvermountain)
*  Simple way to file bugs (silvermountain)
*: Bugzilla is anything but user friendly. Maybe develop an optional 'end-user' front-end with a simpler i/f feeding bugzilla
** Should be moved to [[../Bugzilla]]
* Implement Andrew Black's Moderator structure suggestion (link needed!!!) (silvermountain)
* Swap the default Seach-tool to Advanced Search (silvermountain)
** Where?
* Retire the Karma system
** Or split &quot;Thanks&quot; into &quot;Like&quot; and &quot;Useful&quot; (buurmas)
* Implement 'thumbs-down' for posts
* Public/better site change tracker
*: Post a much more publicly visible page showing what site-changes are being worked on, their status and ETC - and with more meaningful status-updates (read: no more &quot;did some work on it&quot;, 'should be ready soon&quot;, etc).
** Should be moved to [[../Community workings]]
* Allow thread-creators to change their thread's subject lines
* Add an option to filter specific threads (nicola.mfb)
* Provide rss feeds for forums (individual threads, new posts, subforums) (rmerren)</text>
    </revision>
  </page>
  <page>
    <title>Brainstorm 2010/Wiki</title>
    <id>4104</id>
    <revision>
      <id>34765</id>
      <timestamp>2010-05-24T16:30:30Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">{{Brainstorm 2010}}
== Wiki ==

What processes can be put in place to ensure high quality wiki content? What documentation is needed? How should it be organised?

* [https://bugs.maemo.org/show_bug.cgi?id=10092 Fix maemo.org search] (ChoMar)
* Organise Maemo documentation better across versions (Jaffa)
*: Example for Python docs:
** Maemo 3 had Python documentation, but the canonical place for that now is the wiki ([s]http://pymaemo.garage.maemo.org/[s])
** Maemo 4 had lots of PDF documentation so isn't easy to search
** Maemo 5 has docs spread across the wiki (both current and archive), Forum Nokia tutorials and the Info Center.
* Difficult to know whether wiki content is valid or not for a given OS. Need to make it clear which versions a Wiki page applies to (juise-)
* Prepare Style guidelines - a set of rules for creating pages eg. a Q&amp;A page should be different from an API page. But every Q&amp;A page should look the same. (other styles: About (something, eg. history about N900), Tutorial, Summary page, Application description/use etc. (Robb)
* Appoint Style maintainer (auditor) - someone(/or group) who maintains the styles and assess pages for readibility (Robb)
** See [[Wiki gardeners]]
* Category + summary pages - need to organize a bit, to reach useful pages. (Robb)
** Suggestions welcome at [[wiki gardeners]]</text>
    </revision>
  </page>
  <page>
    <title>Brainstorm Intro</title>
    <id>3155</id>
    <revision>
      <id>27442</id>
      <timestamp>2010-01-26T14:24:22Z</timestamp>
      <contributor>
        <username>chemist</username>
        <id>1885</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">The [http://maemo.org/community/brainstorm/ maemo.org Brainstorm] is a community tool to propose ideas and evaluate solutions to implement them. Anybody can propose ideas and solutions, rate them up or down. Thanks to this brainstorming the Maemo team at Nokia and other developers can prioritize better their tasks and select the most appropriate solutions.

Any non-trivial feature requests should go in Brainstorm, not in Maemo Bugzilla.  However, bug reports should still go in the [http://bugzilla.maemo.org Maemo Bugzilla]; please don't report bugs via Brainstorm.  If you have any doubt, ask, or just go ahead and post in whichever one seems the most appropriate.

For developer information about the Brainstorm tool, see the [[Task:Maemo_brainstorm|development wiki page]]

We use [http://talk.maemo.org/forumdisplay.php?f=47 this Talk forum] to discuss Brainstorm proposals. At some point the connection between Brainstorm proposals and discussion threads will be automatic. There is no automation yet so this will require Brainstormers to employ the following protocol manually:

# Member creates Brainstorm proposal (along with any solutions) [http://maemo.org/community/brainstorm/create/default/ Create new Brainstorm proposal]
# Member captures link of that proposal and starts a new thread in the Brainstorm forum, pasting that link into the first post along with a synopsis (or perhaps the entire text of the proposal as a quote, for example)
# Member captures link of new Talk Brainstorm subforum thread, and edits Brainstorm proposal to include it. Cross pollination complete!

Threads in the Brainstorm forum '''must''' have a ''related Brainstorm proposal linked''. You have the rest of Talk to have free-form discussion.

Brainstorm proposals '''must''' have a ''linked thread in the Brainstorm Talk forum''. Commenting directly in Brainstorm has now been disabled to avoid duplication, and work is ongoing to improve the integration of Brainstorm with Talk.

When a Brainstorm proposal is first created it will have a status of 'Waiting'  and voting will apply only to the proposal itself.  Once the proposal reaches 10 votes it will automatically become 'Under consideration' and voting switches to the proposed solutions.  At present there is no way to get notification of changes to brainstorm but this is also being worked on.

[[Category:Community]]
[[Category:Brainstorm]]</text>
    </revision>
  </page>
  <page>
    <title>BrowserBenchmarks</title>
    <id>4971</id>
    <revision>
      <id>48681</id>
      <timestamp>2012-07-04T20:01:23Z</timestamp>
      <contributor>
        <username>freemangordon</username>
        <id>3619</id>
      </contributor>
      <comment>/* N900 */</comment>
      <text xml:space="preserve">== Browser benchmarks ==
This is a consolidation of sunspider and other browser tests on the NIT's and other devices for comparison

=== N900 ===
&lt;pre&gt;
browser    cpu freq milliseconds
microb     stock    #####################################################&gt;[33417ms]
microb     1000mhz  #################################################&gt;21104ms
opera 11   stock    #########################################: 8302ms
opera 11   1000mhz  ########################### 5419ms
chromium5  stock    ############################################ 8796ms
chromium5  1000mhz  ###########################: 5502ms
fennec9a1  stock    #########################: 5140ms
fennec9a1  1000mhz  ################ 3207ms
fennec16a1 stock    ############################## 6133ms
&lt;/pre&gt;

=== N9 ===
&lt;pre&gt;
fennec13   stock    ########################: 4973ms
stock      stock    #################: 3521ms
&lt;/pre&gt;

=== N950 ===
&lt;pre&gt;
fennec13   stock    #####################: 4328ms
opera11.5  stock    ############################## 6003ms
stock      stock    #################: 3508ms
&lt;/pre&gt;

=== i8910 ===
&lt;pre&gt;
opera 11   stock    #################################################### 10410ms
(value not verified)
&lt;/pre&gt;


=== Galaxy Note ===
&lt;pre&gt;
fennec 14  stock    #######: 1539ms
chrome     stock    #######  1402ms
stock      stock    #######  1450ms
&lt;/pre&gt;

=== legend ===
&lt;pre&gt;
# 200ms
: 100ms
&gt; continues
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>Bugs:Adding Extra products</title>
    <id>1975</id>
    <revision>
      <id>43711</id>
      <timestamp>2011-05-31T22:40:59Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <comment>/* Where to provide the information? */</comment>
      <text xml:space="preserve">This guide is for maintainers of applications/packages in Extras that want their package to be listed in [https://bugs.maemo.org maemo.org Bugzilla].
(Note: If you have a small package, do not expect many bug reports and if you in general think that Bugzilla might be overkill for your package, you are of course free to set the [[Packaging#Bugtracker_location|XSBC-Bugtracker field]] in the Debian/control file to your email address instead.)

== Required information and procedure ==

When Bugzilla administrators create new products, some information is required to create them properly.

# Provide the name of your product.
# Which subcomponents would you like to have? See for example [https://bugs.maemo.org/describecomponents.cgi?product=Canola Canola], but if you don't need that I will just recreate a &quot;General&quot; one.
# Provide a short description of your application. See [https://bugs.maemo.org/enter_bug.cgi?classification=Extras the current list of packages] for examples.
# Do you want to have a &quot;Default Assignee&quot; (a real email address of one person)? We recommend this as it is easier for reporters to see who is &quot;responsible&quot; for a product. If so, please make sure that you have an account with that exact address in maemo.org Bugzilla. If you are more developers it is probably better to not set it and instead to use the nobody@maemo.org default. If you have one person triaging all the incoming bug reports it might be useful to assign to this person by default so the triager can reassign after triaging.
# The &quot;Default QA contact&quot; will be general-bugs@applicationname.garage.bugs (the &quot;general-&quot; at the beginning depends on the name of the subcomponent) and everybody who is interested in the product's bug reports can add this virtual email address to his/her watchlist at the bottom of https://bugs.maemo.org/userprefs.cgi?tab=email .
# Which Versions and which Target Milestones would you like to have? If it's not important for you they can just be kept as undefined.
# Any users (=email addresses) in maemo.org Bugzilla that need appropriate rights (&quot;canconfirm&quot;/&quot;editbugs&quot;) for editing/closing bug reports of your product?

Of course this can all still be changed later on.

===Where to provide the information?===
Send an email to &quot;bugzilla at maemo.org&quot; and replace the &quot;at&quot; by &quot;@&quot;.

[[Category:Community]]
[[Category:Bugzilla]]</text>
    </revision>
  </page>
  <page>
    <title>Bugs:Administration guide</title>
    <id>1650</id>
    <revision>
      <id>45109</id>
      <timestamp>2011-08-31T10:23:13Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <comment>/* Creating products */</comment>
      <text xml:space="preserve">This guide is for Bugzilla administrators.

== Creating products ==

When creating new products, certain steps must be followed to create them properly.

# Create a new [https://bugs.maemo.org/editproducts.cgi?action=add&amp;classification=Extras Extras product].
# Check 'Create chart datasets for this product'.
# Set vote/votes/votes (20/1/3).
# Fill in product/description following the template from [https://bugs.maemo.org/editproducts.cgi?action=edit&amp;product=Advanced%20Backlight&amp;classification=Extras other products].
# Optionally fill in URL for milestones.
# Click 'Add'.
# Next you pick the link to edit the product.
# Click 'Edit Group Access Controls'.
# Somewhere in the list you'll see Default NA for the product you're editing, change that to NA NA
#* If you don't do this, then people cannot file bugs if they are not a member of that group.
# Submit
# Back in the editproduct, click editcomponents.
# Set up the components according to your template.
# Update

The product and its components should now be visible and in working order.

== Creating virtual users ==

Virtual users are used to create watchable QA contacts for components.

# Create a [https://bugs.maemo.org/editusers.cgi?action=add new user].
# Pick a user to use as a template (e.g., [https://bugs.maemo.org/editusers.cgi?action=list&amp;matchstr=www@&amp;matchtype=substr&amp;groupid=6 one of these]).
# The login should follow the format (for Extras products) of &lt;component&gt;@&lt;product&gt;.garage.bugs. So, for Canola's website component, it would be www@canola.garage.bugs.
# Randomly mash the keyboard for the password.
# Include the word 'watchable' as the disable text.
# Then create the user.


[[Category:Community]]
[[Category:Bugzilla]]</text>
    </revision>
  </page>
  <page>
    <title>Bugs:Bugdays</title>
    <id>3699</id>
    <revision>
      <id>37814</id>
      <timestamp>2010-08-16T13:11:42Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>/* When and where? */</comment>
      <text xml:space="preserve">==Next Bugday==
===When and where?===
The next bugday is unplanned. Feel free to join #maemo-bugs on Freenode IRC though at any time.

===Topics to discuss===
#How to divide watched areas in bugzilla for more effective triaging?
#Testingsquad vs. Bugsquad: What are differences and what could be done together?
#Applications in Extras:
##Discussion about the requirements.
###Bugtracker-Link discussion and [[Bugtracker|wiki page]]. Could we remove the &quot;work in progress&quot; hint there?
#feel free to add you own topics
===Protocol===
Meeting minut...err...hours :)

*Will there be bot?

==Bugdays in past==
[[Category:Quality Assurance]][[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Bugs:Cloning</title>
    <id>1942</id>
    <revision>
      <id>29792</id>
      <timestamp>2010-02-19T09:46:17Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* When to set Target Milestone or Resolution in maemo.org Bugzilla */ Fremantle link</comment>
      <text xml:space="preserve">== Information for people having access to Nokia's internal non-public Bugtracker ==

=== How to clone bugs from [https://bugs.maemo.org maemo.org Bugzilla] to internal Bugtracker ===

* If needed, summarize/improve the external report to save developers' time
* Add the full maemo.org Bugzilla URL to the internal URL field
* Add ''aklapper /at/ openismus /dot/ com'' to the internal CC list
* Submit the internal report with number xxxxx
* Add &quot;int-xxxxx&quot; to the Alias field in maemo.org Bugzilla. If needed, overwrite non &quot;int-&quot; Alias fields. If an &quot;int-&quot; Alias already exists, add a second one by &quot;/int-xxxxx&quot; (use common sense here)
* Add ''aklapper /at/ openismus /dot/ com'' to the maemo.org Bugzilla CC list

=== Exceptions ===
Do not clone by default:
* Issues in Development platform (normally handled in public)
* Issues in Desktop platform\hildon-widgets (whether to clone is up to the developers themselves active in public Bugzilla)

=== When to set Target Milestone or Resolution in maemo.org Bugzilla ===
These instructions only apply for bug reports. For enhancement requests, see [http://wiki.maemo.org/Bugsquad#Resolution_guidelines here].
* Set Target Milestone to &quot;[[Open development/Maemo roadmap/Fremantle|Fremantle]]&quot; in maemo.org Bugzilla when a bug has been fixed internally
* Set Resolution to FIXED/WONTFIX/INVALID when a bug has been verified internally. Ask public reporter to verify '''if''' technically possible (fixed code available for public).

[[Category:Quality Assurance]]
[[Category:Bugzilla]]</text>
    </revision>
  </page>
  <page>
    <title>Bugs:Stock answers</title>
    <id>239</id>
    <revision>
      <id>43608</id>
      <timestamp>2011-05-24T14:20:49Z</timestamp>
      <contributor>
        <username>chemist</username>
        <id>1885</id>
      </contributor>
      <comment>/* Mail for Exchange */</comment>
      <text xml:space="preserve">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]]

==General==

===Too vague or a generally bad report===

Hi there!

Thanks for reporting this, but unfortunately this report isn't very useful because it doesn'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.

===Version number===

Hi there!

Thanks for reporting this. Can you please tell us exactly which version you are using (Control Panel &gt; General &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't up to date.

===Software hangs with 100% CPU===

To find out what is causing the issue, first check &quot;top&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.

If others aren'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:
* If D-BUS server or Tracker is using noticeable amount of CPU, run &quot;dbus-monitor --session&quot; and &quot;dbus-monitor --system&quot; commands.
* If X server is using noticeable amount of CPU, install &quot;xresponse&quot;[1] and run &quot;xresponse -w 0 -a '*'&quot; (this must be done from SSH console) to see which applications are updating their windows.
* Otherwise install &quot;strace&quot;[1] and trace the syscalls from the CPU consuming process with &quot;strace -f -p &lt;PID&gt;&quot;.
* If even strace isn't telling enough, install &quot;oprofile&quot;[1] and provide Oprofile data on the issue.

[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).

===Need a syslog===

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.
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:
* Starting X Terminal
* cp /var/log/syslog /home/user/MyDocs/.documents/
After that you can find the file in the Maemo File Manager by going to Nokia N900 &gt; Documents.

===Need a crash coredump===

Can you please install Crash Reporter from the SDK Tools repository in order to send coredumps directly to Nokia?
See http://wiki.maemo.org/Extras-testing#Tools_for_testers for a how-to.
If you are offered to add a comment for sending the coredump file, please mention this bug number (like &quot;see bugs.maemo.org bug number xxxx&quot;).
Also, a filename will be displayed after uploading the coredump. Please add the name of that file here in the bug report.

===Need a crash stacktrace (for Notes)===

Is there error message when it crashes?

Can you please run Notes in a terminal window (Applications Menu -&gt; Utilities &gt; X Terminal, then enter the command &quot;maemo-summoner /usr/bin/osso_notes.launch &gt; log 2&gt;&amp;1&quot; and hit the Enter key) and attach the resulting &quot;log&quot; file here after it has crashed?

Having a core dump could be even more useful. It requires installing the &quot;sp-rich-core&quot; package from the tools repository[1] and creating a &quot;core-dumps&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-*).

[1] http://maemo.org/development/tools/ (Diablo) / http://wiki.maemo.org/Documentation/devtools/maemo5 (Fremantle)
(also features information about valgrind and strace)

===Old Software version===

Hi there!

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.

===Memory issues===

Please install ''sp-memusage'' package from the tools repository according to the instructions here: http://wiki.maemo.org/Documentation/devtools/maemo5.

''mem-smaps-private'' script from that package can be used to get most accurate values on process memory usage.  ''mem-cpu-monitor'' tool can be used to track system and specified processes memory and CPU usage changes (most relevant values).

To track changes in usage of all device resources (not just memory) over longer period of time, install the ''sp-endurance'' package.  The data its ''save-incremental-endurance-stats'' script stores, can be post-processed to a HTML report (with some bar graphs) using the ''parse-endurance-measurements'' script from the sp-endurance-postproc package.

Then attach the information provided by these tools to the corresponding bug.

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.

===Duplicate===

Thanks for reporting this.
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.

Please feel free to search for existing reports first to avoid filing duplicates.

===One report for each bug===

Hi there!

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.

Thanks!

===Incomplete (after moreinfo keyword set)===

Hi there!

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'm resolving the report as INVALID.

Please feel free to reopen this bug if you can provide the information asked for, or if you can still reproduce this.

Thanks!

===Become root===

To do this, you have to become root first. Please see http://wiki.maemo.org/Root_access for instructions.

===Untidy patch provided===

Thanks for the patch. Can you please clean it up and reattach it? See http://wiki.maemo.org/The_Good_Patch for more information.

===Third party applications===

Please list your third party applications installed. You can get a list of them by running &quot;maemo-list-user-packages&quot; in the terminal.

==Potential Product specific answers==

===Browser===

====Maemo4 only====

* Can you please create a browser logfile? Enter about:config?prefname=browser.consolelogfile&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 &quot;more /tmp/browserlog&quot; and copy the output to this bug report).

===Calendar===

===Chat &amp; Call &amp; SMS===

====Chat====

Please see http://telepathy.freedesktop.org/wiki/Debugging for information how to debug.

====Google Talk / XMPP====

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):
 export GABBLE_PERSIST=1
 export GABBLE_DEBUG=all
 export LM_DEBUB=net
 killall telepathy-gabble; /usr/lib/telepathy/telepathy-gabble &gt;gabble.log 2&gt;&amp;1 &amp;

====SIP/rtcom/Internet Call====

* Do you use NAT?
* If it's a SIP account, what are the account parameters? Is transport set to UDP in the Advanced settings of your SIP account?
* 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.
**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).
For WiFi/Wlan:
 tcpdump -n -w sip.pcap -s 1500 -i wlan0
For mobile data connections:
 tcpdump -n -w sip.pcap -s 1500 -i gprs0
* 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.

===Connectivity===

====Bluetooth and car sets (only in Fremantle)====

There are two different logs that would be useful. The first is bluetoothd debug logs and the second is a HCI-level trace.

For the first you'd need to:
 1. install the klogd and sysklogd debian packages (and probably reboot the device afterwards)
 2. after booting and before doing anything with bluetooth do &quot;killall -USR2 bluetoothd&quot; (as root) to enable bluetoothd debug logs
 3. after reproducing the issue &quot;grep bluetoothd /var/log/syslog &gt; bluetoothd-log.txt&quot; and attach the file here.

For a HCI trace do:
 1. install the bluez-hcidump debian package
 2. (as root) run &quot;hcidump -B -w hci-trace.log while reproducing the issue
 3. attach the hci-trace.log (or whatever filename you chose) here

See http://wiki.maemo.org/Documentation/devtools/maemo5 for more information on how to install the requested packages.

====Bluetooth DUN issues (Diablo only)====

Is there any error message displayed?
Could you provide a syslog and a hcidump (package &quot;bluez-hcidump&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/ )?
For general information: http://www.cellular-store.com/categorybluetooth.aspx provides a list of Bluetooth Compatible Cell Phones Models.

====Bluetooth DUN issues (Fremantle only)====

This is not officially supported - see http://wiki.maemo.org/Fremantle_Unsupported_Bluetooth_profiles for more information.

====Bluetooth OBEX PUSH issues====

If you have time it would be useful to also get an HCI log of the issue.

This is done by installing the hcidump package and running &quot;hcidump -XVt&quot; as root when performing the transfer. Please start hcidump before making the Bluetooth connection to get proper parsing of the OBEX packets.

To enable obexd and bluetoothd syslog output execute
&quot;killall -USR2 obexd&quot; and &quot;killall -USR2 bluetoothd&quot; (as root).

====Bluetooth OBEX (File transfer) issues (Maemo4 only)====

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 &quot;sdptool search --bdaddr &lt;bt address of phone&gt; FTP&quot;?

====GPRS/3G issues====

* Do you see this with any other operator's SIM?
* Do you see this if you force the device to 2G? (Phone settings - you need to wait until the dialog lets you to save the setting)
* Do you see this when tethering (Bluetooth DUN or USB cable) from a laptop, with a similar network usage pattern (web browsing, etc.)?
* Have you contacted the operator in question, whether they have any known issues or any restrictions in place? (Like, traffic shaping of some sort)
* Please provide the SIM status by opening the X Terminal and entering:
 dbus-send --system --print-reply --dest=com.nokia.phone.SIM /com/nokia/phone/SIM Phone.Sim.get_sim_status
* Please provide the Network registration status by opening the X Terminal and entering:
 dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_registration_status

====Operator Setup Wizard====

* In case of missing cellular operators or similar issues, please provide MCC and MNC which are part of the IMSI. To do this, please open the X Terminal, and post the first six digits of the output of &quot;string&quot; after entering the command
 dbus-send --system --print-reply --dest=com.nokia.phone.SIM /com/nokia/phone/SIM Phone.Sim.get_imsi

=====Cannot access any webpage (DNS issue from bug 8339)=====

 Is the H3G connection DNS server setting (Settings -&gt; Internet connections -&gt; Connections -&gt; H3G -&gt; Edit -&gt; Next -&gt; Next -&gt; Advanced -&gt; IP Addresses) correct?
 Also, try the following:
 1. Establish cellular IP connection.
 2. Open terminal.
 3. Run &quot;cat /var/run/resolv.conf.gprs&quot; and note the nameserver(s) listed there.
 4. Run &quot;nslookup www.google.it XXX.XXX.XXX.XXX&quot; where XXX.XXX.XXX.XXX is one of the nameservers from step 3.
 Does it resolve successfully when using the provider's servers directly?

====ICD====

As ICD does not print anything to syslog and in order to get some logging, please become root (see http://wiki.maemo.org/Root_access ) to manually turn logging on using following command:
 icd2-rotate-loglevel.sh DEBUG

====Wifi/WLAN====

=====Connection problems=====

If you are able to reproduce this, 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) and then enable the wlancond debugging with the two commands
 gconftool-2 --set --type int '/system/osso/connectivity/IAP/wlancond_debug_level' '2'
 killall wlancond
and after this if you are able to reproduce this attach the /var/log/syslog file
from the device here.
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:
  * Starting X Terminal
  * cp /var/log/syslog /home/user/MyDocs/.documents/
After that you can find the file in the Maemo File Manager by going to Nokia N900 &gt; Documents.

=====Misc=====

Does running &quot;/etc/init.d/networking restart&quot; update the list of networks?

Asking for more information:
* What router do you have?
** Make and model?
** Firmware version?
** Hardware revision?
** What are the encryption settings? (open/WEP/WPA/WPA2)
* How far are you from your router?
* How many WiFi access points do you have?

PSM problems:
* Does setting Power Saving to &quot;Off&quot; help? (Settings &gt; Internet Connections &gt; Connections &gt; Edit &gt; Next &gt; Next &gt; Next &gt; Advanced &gt; Other &gt; Power saving)
* Router settings:
** What's the beacon interval?
** What's the DTIM period?

===Contacts===

===Core===

====Busybox====

Do you have a 3rd party version of Busybox installed?

====Charger issues====

Are you using the original Nokia charger or something else?
If you have another compatible charger, does the problem occur also with that? 
Can you please start X Terminal and provide the output of the commands:
 cat /sys/devices/platform/musb_hdrc/mode 
 cat /sys/devices/platform/musb_hdrc/charger
Can you please provide a syslog as described on http://wiki.maemo.org/Documentation/devtools/maemo5/syslog ?

====Power management====

https://maemo.org/community/wiki/poweranddevicemanagement/

Battery drain can have many potential reasons:
* bad 3rd party applet/application not idling when not used
* buggy WLAN access point (not implementing power management properly)
** setting device to offline mode when not in use helps
* Keeping device in RD mode
* Corrupted memory card
* Metalayer crawler related bugs (only currently known is about gstreamer/WMA)
* etc.

====Reboot related====

http://wiki.maemo.org/Troubleshooting_boot_issues

===Data===

====Meta Tracker====

Please provide the output of &quot;tracker-stats&quot; in X Terminal. It lists the number of documents by type on your device.

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}
The logs are stored in $HOME/.local/share/tracker/ .

===Desktop platform===

====Application Menu====

Please check http://wiki.maemo.org/Troubleshooting_menu_issues and report back.

====Input Methods====
Virtual keyboard: When this happens please start X Terminal and provide the output of
 gconftool-2 -g /system/osso/af/slide-open

===Desktop Widgets===

====Widgets/Applets (debugging)====

The easiest way to debug your applets is to run the hildon-desktop on scratchbox currently: 
&lt;code&gt;run-standalone.sh /usr/bin/hildon-desktop&lt;/code&gt;
From [[Terminal|console]] you can see then the printouts. Debugging on the device is a bit harder.
For Python applets you might want to check pyphantom.

With Valgrind on x86-scratchbox one can debug applet problems (e.g. memory leaks):
  af-sb-init.sh start
&lt;wait until desktop starts&gt;
  kill $(pidof maemo_af_desktop)
  export G_SLICE=&quot;always-malloc&quot;
  run-standalone.sh valgrind --tool=memcheck --num-callers=60 --leak-check=yes /usr/bin/maemo-summoner /usr/bin/maemo_af_desktop.launch

====Restarting the Desktop (in Fremantle)====

Run &quot;killall hildon-home&quot; if for example the device becomes unresponsive (high memory usage) and you suspect some Desktop widgets to be the root cause of this.

===Development Platform===

===Email===

Does starting
  /usr/bin/maemo-summoner /usr/bin/modest.launch -s (in Maemo5) or
  /usr/bin/maemo-summoner /usr/bin/modest.launch showui (in Maemo4)
provide some output?

====Debugging the connection to the mail server====

Can you please start an X Terminal window and enter
    export &quot;CAMEL_DEBUG&quot;=&quot;all&quot;
to enable the debug mode of the mail library, and after that
* Diablo:
    /usr/bin/maemo-summoner /usr/bin/modest.launch showui &gt; /home/user/MyDocs/.documents/log 2&gt;&amp;1

* Fremantle:
    /usr/bin/maemo-summoner /usr/bin/modest.launch -s &gt; /home/user/MyDocs/.documents/log 2&gt;&amp;1
to start the email application. Then try to connect to the mailserver.
Attach the logfile named &quot;log&quot; here which will be in your Home directory (please check for confidential data before attaching).

====Modest getting stuck (strace)====

Is Modest using any CPU?
What is the output if you strace it?
  strace -p $(pidof modest|cut -d' ' -f1)
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.

====Modest not exiting but eating CPU====

I assume you waited for 10 minutes to make sure that this wasn't any time taking resource freeing? Does this also happen if you are not using SSL?
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. 
Can you kill the hanging process with signal=11 to provide us with a core dump?

===Flasher===

====Windows====

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 -&gt; Add or Remove Programs)?

===Games===

===Images and Camera===

===Location===

===Map===

===Media player===

===Multimedia===

====Wrong file type====

If an audio file is played as video or the other way round:
* Please provide a testcase file
* If you have a linux desktop machine available, please provide the output of the following commands (and replace the filename accordingly):
 gvfs-info filename.type
 file filename.type
 mp4info filename.type
 gst-launch -t -m playbin uri=file:/path/to/file/filename.type

===Office Viewers===

===RSS feed reader===

* Can you please attach the contents of your device &quot;/home/user/.osso_rss_feed_reader/&quot; directory.
* Can you please install &quot;strace&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: &quot;strace -p $(pidof osso_rss_feed_reader|cut -d' ' -f1)&quot; if it is already running, or &quot;strace -f maemo-summoner /usr/bin/osso_rss_feed_reader.launch&quot; to start it in strace.

===Settings and Maintenance===

====Application manager / Installing====

Hopefully some information will be in &quot;Tools &gt; Log&quot; in the Application manager.
If you are familiar with apt you can also get a detailed error message by trying to install any package using &quot;apt-get install&quot; in the terminal window.

===Sharing===

===Statusbar Widgets===

===Synchronization===

====Mail for Exchange====

Can you please:
1) Check the &quot;Known issues&quot; section in http://wiki.maemo.org/Mail_for_Exchange
If this does not help:
2) Install syslog (see http://wiki.maemo.org/Documentation/devtools/maemo5/syslog ) and reboot
3) Open X Terminal
'''[optional steps begin]'''
3A. Enter &quot;sudo gainroot&quot; (to do that make sure that you have installed &quot;rootfs&quot; from the Application Manager)
3B. cat /dev/null &gt; /var/log/syslog
'''[optional steps end]'''
4) Provide the output the following commands:
 gconftool-2 -s --type=int /apps/activesync/AsDaemon/Syslog/MinLogLevel 0
 gconftool-2 -s --type=int /apps/activesync/modest/Syslog/MinLogLevel 0
 gconftool-2 -s --type=int /apps/activesync/AsProvider/Syslog/MinLogLevel 0
 gconftool-2 -s --type=int /apps/activesync/AsBackup/Syslog/MinLogLevel 0
 gconftool-2 -s --type=int /apps/activesync/asapplet/Syslog/MinLogLevel 0
 gconftool-2 -s --type=int /apps/activesync/AsStatusApplet/Syslog/MinLogLevel 0
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/  )

===System Analysis===

===System software===

====MMC/SD card related (Product &quot;System software/mmc-and-usb&quot;)====

Has this happened with any other card? What is your card manufacturer, model and size?

===Telephony===

===Translations===

===UI Specification===

===User guide &amp; Help content===

===Utilities===

===X-Graveyard (discontinued===

====Internet Tablet Video Converter====

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!
Are there any error messages when the crash happens?
Did the application install cleanly with no problems? Could you try to uninstall and reinstall again from a clean download please?


[[Category:Community]]
[[Category:maemo.org]]
[[Category:Bugzilla]]
[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Bugs:Tasks</title>
    <id>3118</id>
    <revision>
      <id>30770</id>
      <timestamp>2010-03-08T17:28:43Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <comment>add UNCONFIRMED section</comment>
      <text xml:space="preserve">There are a number of ways to start triaging:

==Triage a single application==
Pick up the product or component that interest you, or which you know about, or are willing to learn, or happen to use. You can [https://bugs.maemo.org/query.cgi?format=advanced query] for existing open reports and take a look at issues that interest you, for example in order to update them by updating the Version field, or noting that they have been already fixed in the version you use (please mention the exact version that you use in a comment). If you want to constantly be informed about any changes, set up user watching by adding the [https://bugs.maemo.org/describecomponents.cgi &quot;QA Default Contact&quot;] email address to your [https://bugs.maemo.org/userprefs.cgi?tab=email &quot;User Watching&quot;] list. See [http://blogs.gnome.org/aklapper/2008/12/18/watching-products-in-maemoorg-bugzilla/ here for a longer explanation about how this works].

==Triage the Extras category==
maemo.org Bugzilla does not only host official Nokia software, but also many non-Nokia products. Their maintainers are always happy about a helping hand.
The steps explained in &quot;Triage a single application&quot; also apply here.
You can explicitly search for bug reports on applications in Extras by [https://bugs.maemo.org/query.cgi?classification=Extras setting the Classification to Extras on Bugzilla's Query website].

==Triage the latest incoming reports==
Take a look at the latest [https://bugs.maemo.org/buglist.cgi?bug_file_loc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_id=&amp;bugidtype=include&amp;chfield=%5BBug%20creation%5D&amp;chfieldfrom=-14d&amp;chfieldto=Now&amp;chfieldvalue=&amp;email1=&amp;email2=&amp;emailassigned_to1=1&amp;emailassigned_to2=1&amp;emailcc2=1&amp;emailqa_contact2=1&amp;emailreporter2=1&amp;emailtype1=substring&amp;emailtype2=substring&amp;field0-0-0=noop&amp;keywords=&amp;keywords_type=allwords&amp;long_desc=&amp;long_desc_type=substring&amp;query_format=advanced&amp;remaction=&amp;short_desc=&amp;short_desc_type=allwordssubstr&amp;status_whiteboard=&amp;status_whiteboard_type=allwordssubstr&amp;type0-0-0=noop&amp;value0-0-0=&amp;votes=&amp;order=bugs.bug_id&amp;query_based_on= incoming reports of the last two weeks] and try to reproduce them, or ask for missing information, or add additional information. See the [http://wiki.maemo.org/Bugs:Triage_guide Triage Guide].

==Try to reproduce reports that are UNCONFIRMED==
Many reported problems cannot be easily reproduced.
[https://bugs.maemo.org/buglist.cgi?status_whiteboard_type=allwordssubstr&amp;keywords_type=allwords&amp;bug_status=UNCONFIRMED&amp;field0-0-0=alias&amp;type0-0-0=notsubstring&amp;value0-0-0=int- Take a look at bug reports in UNCONFIRMED state], try to reproduce them, and feel free to add a comment either with instructions to reproduce or that you could not reproduce it and mention the version that you use.
Please do not add such comments for reports in NEW status though.

==Update reports of older versions==
Take a look at old bug reports and try to reproduce them with the latest software release to find out whether the reports are still valid. If they have been fixed in the meantime, you can set them to RESOLVED FIXED and set the Target Milestone to the version that works fine, plus adding a comment about it. [https://bugs.maemo.org/buglist.cgi?classification=Maemo+Official+Applications&amp;classification=Maemo+Official+Platform&amp;version=0.11&amp;version=0.12&amp;version=0.13&amp;version=1.0&amp;version=1.0.1&amp;version=1.0.2&amp;version=1.1&amp;version=1.1rc5&amp;version=1.1rc6&amp;version=1.2&amp;version=2.0&amp;version=2.1&amp;version=2.2&amp;version=3.0&amp;version=3.1&amp;version=3.2&amp;version=4.0&amp;version=4.1&amp;version=4.1+(4.2008.23-14)&amp;version=4.1.1+(4.2008.30-2)&amp;version=4.1.1+(4.2008.36-5)&amp;version=4.1.2+(4.2008.36-5)&amp;version=4.1.2+(5.2008.43-7)&amp;version=4.1.3+(5.2008.43-7)&amp;status_whiteboard_type=allwordssubstr&amp;keywords_type=allwords&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED List of open reports for Maemo version 4.1 or earlier].

==Clean up reports that need more information==
Clean up [https://bugs.maemo.org/buglist.cgi?keywords_type=allwords&amp;keywords=moreinfo&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;chfieldfrom=-6m&amp;chfieldto=Now bugs with moreinfo keyword that have not been changed for 6 months]. This means that more information had been requested from the reporter but has not been provided. These bugs should be closed as WORKSFORME if you are not able to reproduce. If there is simply not enough information to be a useful report, then close the bug as INVALID. Please always explain your decision by adding a nice comment and in the latter case, ask the reporter to provide the information asked for, if he can, and reopen the bug. The [[Bugsquad#How_everybody_can_help Greasemonkey triage helper script]] can help you here.

==Update the stock answers==
In order to help tracking down an issue, we share some technical knowledge as [[Bugs:Stock_answers|Stock answers]]. These answers are partially still from [[Open development/Maemo roadmap/Diablo|Maemo 4]], and things have changed for [[Open development/Maemo roadmap/Fremantle|Maemo 5]], plus new functionality and products have been added. If you have some knowledge that you would like to share, [[Bugs:Stock_answers]] is the place to do it.

==Update your own reports==
Most of us have submitted bugs in the past and forgotten about them. Take a look at them and check whether they still apply in the latest software version.
Go to the [https://bugs.maemo.org/query.cgi?format=advanced Query website] and make sure that under &quot;Status&quot; UNCONFIRMED, NEW, ASSIGNED and REOPENED are checked. Under &quot;Email and Numbering&quot;, enable &quot;the reporter&quot; and enter your email address below in the text field.

[[Category:Bugzilla]]
[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Bugs:Triage guide</title>
    <id>853</id>
    <revision>
      <id>39658</id>
      <timestamp>2010-10-22T17:17:02Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>s/#maemo/#maemo-bugs</comment>
      <text xml:space="preserve">This article is for anyone who wants to help triaging the incoming and existing bug reports in Maemo Bugzilla. This article is not for bug reporters, but those people taking a look at the reports after they have been submitted.

Following the techniques listed and explained here will help important bugs get fixed, as well as optimize precious developer time.

== How can I help? ==

# [https://bugs.maemo.org/createaccount.cgi Create an account.]
# Read the [https://wiki.maemo.org/index.php?title=Bugs:Stock_answers Stock answers]. These stock responses are general examples of the kinds of comments that triagers should add to bug reports. There are even a surprising number of bug reports for which you can simply use these responses. Please always add a comment when changing the bug status to RESOLVED or adding the &quot;moreinfo&quot; keyword, so the user can comprehend your decision.
# Find what should be changed. Read the [https://wiki.maemo.org/Bugs:Triage_guide#Steps_of_Triaging Steps of Triaging] to determine what should be changed (if anything) and how.
# Add yourself to the CC list of the reports you triage so you will receive updates and notifications on changes.
# Ask someone to verify your changes. In #maemo-bugs on irc.freenode.net mention the bug number you are looking at and the changes that you think should be made. (If no one is around, it is perfectly okay to leave a comment in the relevant bug with information that could be useful to others, e.g. &quot;I think this bug report is a duplicate of bug 1234&quot;). 

As time goes by and you become more familiar with Bugzilla, please ask the [https://wiki.maemo.org/index.php?title=Bugsquad#Members Bugsquad members] to provide [http://www.bugzilla.org/docs/2.22/html/useradmin.html#modifyusers editbugs permissions] to you so you have gain much more power to change things and work efficiently in the bug database.

=== Potential tasks ===

Please take a look at [[Bugs:Tasks | some ideas here]].

== Steps of Triaging ==

This guide should make triaging a bug as easy and simple as possible. Remember, if in doubt, ask! Also, remember that you may not be able to find anything to change for some bugs since not all bugs are filed incorrectly or incompletely.

=== Is there already something like &quot;int-123456&quot; in the Alias field? ===

If so, the report already has been triaged and imported into Nokia's internal bug tracking system. Nothing to do here anymore...
(Note that many reporters set an Alias like &quot;mybug&quot; as they think that it is required when writing a report. The planned update of Bugzilla to a newer version will fix this behaviour.)

=== Is it part of Maemo Bugzilla? ===

Some pieces of software that users think of as part of Maemo are 3rd party software and have their bug tracking systems elsewhere. If the bug relates to one of these components, please close the bug as INVALID and ask the reporter to report it to the correct tracking system.

==== Hardware problems and Hardware enhancement requests ====

Maemo is a software platform, hence bug reports about hardware bugs are invalid in bugs.maemo.org. Please ask the reporter to either contact Nokia Care services via www.nokia.com or to contact the company who sold the product to them.
If the report is about an enhancement idea for the hardware, please close the report as invalid and kindly ask the reporter to file a ticket in the [http://maemo.org/community/brainstorm/ Maemo Brainstorm] at http://maemo.org/community/brainstorm/ instead as hardware is out of scope for maemo.org Bugzilla. Also there is http://conversations.nokia.com/design-by-community/.

==== Is it a valid, but wide and non-specific feature request? ====

Some reporters have great ideas and visions. They want to improve the User Experience in general or change behaviour of several applications at once.
These ideas are very hard to handle in Bugzilla as they require extensive brainstorming, discussing and involvement of several people/teams. Such reports should be closed as INVALID and reporters should be kindly asked to file a report in [http://maemo.org/community/brainstorm/ maemo.org Brainstorm] instead.

=== Does it make sense? ===

Does it have enough information? Common sense rules here - &quot;this sucks&quot; or &quot;this crashed&quot; should get the &quot;moreinfo&quot; keyword with a polite message, as should other things that are too ambiguous to be useful.
In many cases asking for a URL or attachment will help. If you need help making changes to bug fields ([http://www.bugzilla.org/docs/2.22/html/useradmin.html#modifyusers &quot;editbugs&quot;]), just comment describing what changes you want made, or ask for help from the #maemo-bugs channel on Freenode IRC (especially the bugmaster andre is good contact), or send an email to bugzilla@maemo.org.

=== Is the bug a duplicate? ===

Some bugs in Bugzilla have been reported before. Finding them is more of an art than a science :-) This is an important step, but don't spend too long over it; if a bug is filed twice, someone else will mark the duplicate later. Be creative, e.g. searching for &quot;delet&quot; will bring up all bugs that have &quot;delete&quot; or &quot;deleting&quot; in the report.
If the bug is a duplicate, mark it as a duplicate in the resolution box at the bottom of bugzilla and add a polite comment explaining that this bug/request has been filed before. You don't need to carry on triaging it if it's a duplicate; press the Save Changes button and go onto your next bug! 

=== Can you reproduce it? ===

If you can, please try to reproduce the problem. If you think the problem is not reproducable, write a comment indicating the version you tested, the steps you took, the results you got, and why you think the bug WORKSFORME.
If you can reproduce the bug running the latest publically available software version and if it is well-reported, change the status from UNCONFIRMED to NEW (You need [http://www.bugzilla.org/docs/2.22/html/useradmin.html#modifyusers canconfirm permissions] for this).

=== Is the version set correctly? ===

See http://en.wikipedia.org/wiki/Internet_Tablet_OS for a mapping between the SDK version information used in Maemo Bugzilla and the name of the software images. In general we always ask people to run the latest available software release, because nobody works on fixing ancient and obsolete releases anymore.

=== Is it in the right place? ===

If you think the bug was filed against the wrong product, look for a better alternative in the drop-down list box. Make sure to mark the &quot;Reassign bug to default assignee and QA contact of selected component&quot; radio button (forgetting to do this is a common mistake that results in the new owner not getting email about the bug).

=== What severity/priority should be set? ===
Finding the correct severity and priority takes some experience, and you will get a feel for it after triaging several bugs. Here are some guidelines for the most commonly reported bugs. You should read the severity and priority guidelines at least once.

Please note that ''only'' changing severity and/or priority ''slightly'' may do more fuss than good. It causes an extra email to the maintainers and consumes their precious time and attention. If other changes are done as well then there is only little additional impact when changing severity and/or priority.

* '''Crasher bugs'''
Should have Severity=Critical, Priority=High.
Add the &quot;moreinfo&quot; keyword if they don't have a stack trace, and ask the reporter to get a decent stack trace (see https://wiki.maemo.org/index.php?title=Bugs:Stock_answers for more information). If there is no information about how it is triggered you should ask the original reporter how to reproduce the bug.
* '''Something not working as expected'''
Severity=Low or Medium depending on how much it breaks the application.
* '''Incorrect strings, typos, etc.'''
Severity=Low, Priority=Normal or High depending on how user-visible it is.
* '''Feature requests'''
If it really is a new feature, and not an improvement to something already in the product, set Severity=Enhancement, Priority=Low.
If you're unsure about your Severity/Priority triage, add a comment in the bug explaining why you triaged it as you did. You can also add yourself to the Cc field, so if someone retriages it differently you can find out why.

=== What keywords should be set? ===

The available few keywords are listed [https://bugs.maemo.org/describekeywords.cgi here]. Get familiar with them. For example, if the bug is most probably trivial to fix, add the &quot;easyfix&quot; keyword. If a patch has been added that fixes the issue, add the &quot;patch&quot; keyword.

== Specific areas ==
=== Documentation bugs ===
Specific API documentation bugs must be filed against the corresponding product. Also please add the [https://bugs.maemo.org/describekeywords.cgi &quot;docs&quot; keyword].

Generic documentation bugs and HIG issues must be filed against the &quot;Documentation&quot; component in the &quot;Development Platform&quot; product. This does not require the docs keyword.

== Acknowledgment ==

Kudos to [http://browser.garage.maemo.org/news/8/ timeless], the [http://wiki.mozilla.org/MozillaQualityAssurance:Triage Mozilla Triage Team] and the [http://live.gnome.org/Bugsquad/TriageGuide GNOME Bugsquad]. I shamelessly copied huge parts from them.


[[Category:Community]]
[[Category:maemo.org]]
[[Category:Bugzilla]]
[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Bugsquad</title>
    <id>238</id>
    <revision>
      <id>47380</id>
      <timestamp>2012-04-30T17:22:45Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>/* Future plans */</comment>
      <text xml:space="preserve">This is the startpage for everybody interesting in dealing with bug reports in [https://bugs.maemo.org maemo.org Bugzilla].

[[Image:Bugsquad-logo-wazd-small.png]]

==What is a Bugsquad?==
The maemo.org Bugsquad is a team that takes a look at the incoming and existing bug reports in maemo.org Bugzilla to make sure that they are in good shape before a developer spends time on the reports.

==How everybody can help==
=== Triaging ===
Triaging means to make sure that a problem has not already been reported before and that it has correct, enough and recent information.
* [[Bugs:Triage_guide|Triage guide]]: A guide ''for triagers'' that explains good practices when triaging bug reports.
* [[Bugs:Stock answers|Stock answers]]: List of stock replies to use for various types of bug reports. We collect and provide product-specific information and knowledge ''for triagers'' that can be used as a first feedback for reports that are too vague to be helpful or interesting for developers.
* Greasemonkey triage helper script: A small helper script is available. After installing the [https://addons.mozilla.org/firefox/addon/748 Greasemonkey Add-on] in a Mozilla browser (e.g. Firefox), [http://home.arcor.de/ak-47/pub/bugsmaemoorg_triage_help.user.js click here] to install it. It provides common stock answers that can be inserted by one click from the list above the comment field in maemo.org Bugzilla. Just play with it a bit (You can reload a bug report website by using Control+F5). Enhancements and patches are welcome and should be sent to aklapper at openismus dot com.
* Tasks: You can take a look at new reports, reproduce reports in your favorite application, or clean up old &quot;moreinfo&quot; reports. Just pick your favourite area. The section &quot;[[Bugs:Triage_guide#Potential_tasks|Potential Tasks]]&quot; of the Triage Guide lists some ideas.

=== Reporting ===
* Useful and valuable reports: Provide a good quality report by taking a look at [https://bugs.maemo.org/page.cgi?id=bug-writing.html Bugzilla's Bug-writing page].

==How to join the Bugsquad==
* Read the &quot;[[Bugsquad#How_everybody_can_help|How everybody can help]]&quot; section above again in case you skipped the link to the Triage Guide.
* Send an email to bugzilla@maemo.org or chat with us (e.g. andre__) in the #maemo channel on Freenode IRC and ask for triaging permissions.
* Add yourself to the &quot;[[Bugsquad#Bugsquad_Members|Bugsquad Members]]&quot; list below.
* Welcome to the team! :-)

==Bugdays==
The Bugsquad sometimes has a Bugday where we look through old Bugzilla reports to clean up. Of course we don't just do this on bugdays, but it's more fun together and a cool way to introduce new people.

The next bugday is unplanned.

Potential tasks, not only for bugdays, are listed [[Bugs:Tasks|here]]. Future plans are to have this on a monthly basis with different topics that we concentrate on.

*Topics to discuss at the next [[Bugs:Bugdays|Bugday]].

==What everybody should know==
=== Bug and Feature Jars ===
* Stephen Gadsby provides weekly [http://www.octofish.net/bugjar/ Maemo Bug and Feature Jars].
* Additionally, Andre Klapper provides monthly [http://talk.maemo.org/showthread.php?t=27833 Feature Jars].

===Bug resolutions and what they mean===
* In general: https://bugs.maemo.org/page.cgi?id=fields.html#resolution
* RESOLVED FIXED:
** '''Bugs''' are closed as RESOLVED FIXED when the code has been internally written and verified to fix the issue.
** '''Enhancements''' can be closed as RESOLVED FIXED when the issue has been added to the Roadmap or Specification for a next version.

==What applications maintainers should know==
* [[Bugs:Adding_Extra_products|Adding Extra products]]: A guide ''for Extras maintainers of packages in the Extras repository'' what information to provide for getting added in Bugzilla.

==What Nokia developers should know==
* [[Bugs:Cloning|Information for people that also have access to Nokia's non-public Bugtracker]]

==What Bugzilla administrators should know==
* [[Bugs:Administration_guide|Administration guide]]: A guide ''for administrators'' for creating products, components and virtual users.

==Bugsquad Members==
The following list contains everybody who is (or was) part of the bugsquad. The column &quot;Categories of major interest&quot; is showing the parts of bugs.maemo.org which are watched regularly. The column &quot;Categories of minor interest&quot; is showing the parts of bugs.maemo.org which are watched irregularly (but more often than never).

The intention of this list is to see which places in bugs.maemo.org are monitored often (or by many Bugsquad members) and which categories are watched rarely (or by André only ;)).
  

{| class=&quot;sortable&quot; width=&quot;100%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;1&quot; border=&quot;1&quot;
|-
! Member
! Status
! Categories of major interest
! Categories of minor interest
|-
| [[User:Andre|Andre]] (maemo.org bugmaster)
| active
|
*Everything in Maemo Official Apps
*Everything in Maemo Official Platform
*Everything under maemo.org Website &gt; Bugzilla
|
*Everything else
|-
|[[User:generalantilles|GeneralAntilles]]
|
|
|
|-
|[[User:sjgadsby|sjgadsby]]
|
|
|
|-
|[[User:brontide|brontide]]
|
|
|
|-
|[[User:timsamoff|Tim Samoff]]
|
|
|
|-
|[[User:lma|lma]]
|semi-active
|
* diablo-community-updates.
* The open-standard parts of modest and rtcomm (ie IMAP, POP, SMTP, XMPP, SIP but not Nokia Messaging, Mail for Exchange, Skype etc).
* Busybox
* Input methods
* SDK
* Anything with &quot;patch&quot;, &quot;security&quot; or &quot;use-time&quot; keywords.
|
*Everything else in Official Platform / Official Apps
|-
|Uwe '[[User:jukey|jukey]]' Kaminski
|active
|
*browser-bugs@maemo.bugs (microb Browser)
*modest-bugs@maemo.bugs (Mail Application)
*general@miniature.garage.bugs (Miniature Chess)
|
*documentation@maemo.org
*rtcomm@maemo.org
*general-bugs@canola.garage.bugs
*general-bugs@mer.garage.bugs
|-
|[[User:yerga|yerga]]
|taking a break, but will return
|
*Multimedia related (mafw, camera, media-player, image-viewer, etc.)
*Modest
*Application manager
*Hildon and GTK+
*Pymaemo
*My apps have lots of bugs too
|
*Website related (downloads, garage, repositories, etc.)
*MicroB
*Communication and PIM (telepathy, im-chat, contacts, calendar, etc.)
*Location (framework and maps)
|-
|[[User:zerojay|zerojay]]
|
|
|
|-
|[[User:arnims|arnims]]
|
|
|
|-
|[[User:prometoys|prometoys]]
|
|
|
|-
|[[User:qwerty12|qwerty12]]
|
|
|
|-
|[[User:venomrush|venomrush]]
|
|
|
|-
|[[User:mohammad7410|MohammadAG]]
|
|
|
|-
| [http://wiki.maemo.org/index.php?title=Bugsquad&amp;action=edit&amp;section=13 Add Bugsquad member...]
|
|
|
|}

== Future plans ==
None.

== Documentation ==
''Please use the &quot;Bugs:&quot; namespace for any subpages to keep consistency with other namespace schemes used in this wiki.

== Acknowledgement ==
* [http://live.gnome.org/Bugsquad GNOME Bugsquad]
* [http://techbase.kde.org/Contribute/Bugsquad KDE Bugsquad]
* The [[FIXED in Fremantle Hall of Fame]]

[[Category:Community]]
[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Bugsquad/StockAnswers</title>
    <id>240</id>
    <revision>
      <id>21026</id>
      <timestamp>2009-10-26T09:23:08Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <minor/>
      <comment>Redirecting to [[Bugs:Stock answers]]</comment>
      <text xml:space="preserve">#REDIRECT [[Bugs:Stock answers]]</text>
    </revision>
  </page>
  <page>
    <title>Bugtracker</title>
    <id>3738</id>
    <revision>
      <id>30851</id>
      <timestamp>2010-03-09T09:50:43Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Bugtracker]] moved to [[Tracking bugs in Extras]]: Make it clear that this is about Extras (3rd party apps) and not strictly Maemo bugzilla</comment>
      <text xml:space="preserve">#REDIRECT [[Tracking bugs in Extras]]</text>
    </revision>
  </page>
  <page>
    <title>BuildNotesFremantle</title>
    <id>2030</id>
    <revision>
      <id>14552</id>
      <timestamp>2009-06-22T10:53:40Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[BuildNotesFremantle]] moved to [[Fremantle build notes]]: Rename page to conform to [[Maemowiki Action Group#Midgard migration | wiki page naming conventions]]</comment>
      <text xml:space="preserve">#REDIRECT [[Fremantle build notes]]</text>
    </revision>
  </page>
  <page>
    <title>Building packages with sbdmock</title>
    <id>2125</id>
    <revision>
      <id>41617</id>
      <timestamp>2011-02-04T13:05:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">''sbdmock'' builds binary &quot;deb&quot; packages from source, it is part of Maemo's automatic build chain. 

''sbdmock'' is a tool which provides a clean scratchbox environment, allowing you to test that your package can build in that environment before submitting it to the autobuilder. It can either be used manually, or it can be used as part of an automatic script (for example, I use for my nightly builds of GPE, OpenSync and Xsisusb).

The sbdmock home page is: http://bifh.org/wiki/sbdmock

The sbdmock git source tree can be accessed at: http://github.com/kad/sbdmock/tree/master

== Why use sbdmock? ==

Before submitting a package to the autobuilder, it is important to test that it will build.  The first step of that is to use ''dpkg-buildpackage'' in the scratchbox environment to create the packages (or a tool like [http://mud-builder.garage.maemo.org/ mud-builder] can be used, which automatically calls ''dpkg-buildpackage'').

However, just because a package builds in your normal scratchbox development environment is no guarantee that it will build in the autobuilder.  The most common problem is that the autobuilder starts with no packages installed and only installs the packages defined in your package control file (using the ''Build-Depends:'' line).

''sbdmock'' allows you to test your build in a clean scratchbox target, just like the autobuilder uses.  Of course, if the build in sbdmock fails you will need to debug it.  sbdmock can be used for that as well.

== Getting sbdmock ==

This is the procedure I used, using Debian squeeze.  Packages for sbdmock may be available for your platform, however I wanted to use the latest development version and, as I expected to make changes to it, I did not want to install it into system directories.

&lt;ol&gt;
&lt;li&gt;
Install Debian packages for ''git-core'', ''python-pip'', ''python-setuptools'' and ''python-virtualenv'' using:&lt;pre&gt;sudo aptitude install git-core python-pip python-setuptools python-virtualenv&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Create the Python virtual environment:&lt;pre&gt;virtualenv sbdmock&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Install minideblib, which is a prerequisite for using sbdmock:&lt;pre&gt;pip install -E sbdmock minideblib&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Install sbdmock from the git repository:&lt;pre&gt;pip install -E sbdmock -e git://github.com/kad/sbdmock.git#egg=sbdmock&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Copy the config files to your sbdmock config directory:
&lt;pre&gt;
mkdir ~/.sbdmock/
cp sbdmock/src/sbdmock/etc/*.cfg ~/.sbdmock/
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Test the sbdmock installation:&lt;pre&gt;sbdmock/bin/sbdmock --help&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

Alternatively, if you are on a Debian based system, you might prefer to build and install Debian packages instead:

&lt;ol&gt;
&lt;li&gt;
Install ''git-core'', ''python-setuptools'' and ''dpkg-dev'':&lt;pre&gt;sudo aptitude install git-core python-setuptools dpkg-dev&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Download latest minideblib tarball from http://pypi.python.org/pypi/minideblib
&lt;/li&gt;
&lt;li&gt;
Unpack it and build the .deb package:
&lt;pre&gt;
tar -xvzf minideblib-*.tar.gz
cd minideblib-*/
dpkg-buildpackage -us -uc -rfakeroot
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Download sbdmock sources:&lt;pre&gt;git clone git://github.com/kad/sbdmock.git sbdmock&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Build sbdmock .deb package:&lt;pre&gt;dpkg-buildpackage -us -uc -rfakeroot -i.git -I.git&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Install the built .deb packages:&lt;pre&gt;dpkg -i python-minideblib*.deb sbdmock*.deb&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Copy the config files to your sbdmock config directory:
&lt;pre&gt;
mkdir ~/.sbdmock/
cp /usr/share/doc/sbdmock/examples/*.cfg ~/.sbdmock/
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Test the sbdmock installation:&lt;pre&gt;sbdmock --help&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

== sbdmock documentation ==

There is no documentation.  ''sbdmock --help'' gives:

&lt;pre&gt;
Usage: 
    usage: sbdmock [options] /path/to/dsc
    optional commands:
        clean - clean out the specified chroot
        init - initialize the chroot, do not build anything

Options:
  -h, --help            show this help message and exit
  -r TARGET             compilation target name/config file name default: default
  --no-clean            do not clean chroot before building
  --debug               Output copious debugging information
  --resultdir=RESULTDIR
                        path for resulting files to be put
  --statedir=STATEDIR   path for state dirresulting files to be put
  --sbtarget=SBTARGET   Overrides scratchbox target name from configuration file
  --addrepo=ADDREPO     Additional repository to sources.list
  --insertrepo=INSERTREPO
                        Additional repository to sources.list. Will be added on first place
  --uniqueext=UNIQUEEXT
                        Arbitrary, unique extension to append to target name
  -u                    Generate unique extension (based on package name)
  -b                    indicates that no source files are to be built
  -B                    same as '-b', but no architecture-independent binary package files are to be build either
  -S                    only the source should be build and no binary packages need to be made
  --dbo=DBO             Modifiers for DEB_BUILD_OPTIONS (e.g. '+debug,-parallel')
  --define=DEFINE       Define variables which might be used in other variables. Format: name=value
&lt;/pre&gt;

== sbdmock configuration ==

The most important part of the configuration is to put the rootstraps where sbdmock can find them.  

The rootstrap file names are specified in the configuration files (for example the standard chinook configuration file specifies ''maemo-sdk-rootstrap_4.0_armel.tgz'' as the rootstrap file name). Be aware that the rootstrap file names are relative to your scratchbox home directory. So, you have three options:

# Put the rootstrap files in your scratchbox home directory.  This is easiest and means no changes to the configuration files. However, depending on how you installed the SDK, they are almost certainly not in that directory at the moment.
# Put a softlink in the scratchbox home directory by logging in to Scratchbox and using something like:&lt;pre&gt;ln -s /some/directory/maemo-sdk-rootstrap_4.0_armel.tgz&lt;/pre&gt;Note that this directory has to be accessible from within the Scratchbox environment, of course.
# Edit the configuration file to change the location.  The configuration file is in the &lt;code&gt;~/.sbdmock&lt;/code&gt; directory and the line to change is the one which defines ''&lt;nowiki&gt;config_opts['rootstrap']&lt;/nowiki&gt;''.  Again, the file has to be accessible from within the scratchbox environment.

Currently the following config files are shipped with sbdmock, although others may be added soon:

{| class=&quot;wikitable&quot;
! Configuration name !! SDK version !! Architecture !! Repository !! Rootstrap
|-
! maemo-chinook-armel-extras-devel
| Chinook (Maemo 4.0) || armel (Internet Tablet) || extras-devel
| maemo-sdk-rootstrap_4.0_armel.tgz
|-
! maemo-chinook-armel-extras
| Chinook (Maemo 4.0) || armel (Internet Tablet) || extras
| maemo-sdk-rootstrap_4.0_armel.tgz
|-
! maemo-chinook-i386-extras-devel
| Chinook (Maemo 4.0) || i386 (scratchbox PC) || extras-devel
| maemo-sdk-rootstrap_4.0_i386.tgz
|-
! maemo-chinook-i386-extras
| Chinook (Maemo 4.0) || i386 (scratchbox PC) || extras
| maemo-sdk-rootstrap_4.0_i386.tgz
|}

'''Note:''' the ''extras'' configurations are not used by the autobuilder: all building is done in extras-devel.

== Test build ==

To test the package defined in ''something.dsc'' will build using the chinook autobuilder use the following command:

 sbdmock/bin/sbdmock -r maemo-chinook-armel-extras-devel -u ''something.dsc''

This command must be issued from '''outside''' the scratchbox environment.

''sbdmock'' displays a message at the end of the build saying where the results (including logs) can be found.  That filespec is designed to be used from outside the scratchbox environment.  From inside the scratchbox environment the results are in ''&lt;nowiki&gt;~/maemo-chinook-armel-extras-devel/results&lt;/nowiki&gt;''.

Once the ''-armel-extras-devel'' build is working, it is worth testing ''-i386-extras-devel'', which the autobuilder will build automatically unless your package defines that it is only for armel. Note that the autobuilder never uses the ''-extras'' configurations.

== Debugging build problems ==

The test builds described above use the ''sbdmock -u'' option.  This option causes sbdmock to create a completely new scratchbox target, with a unique name, run the build and delete the target again.  This is ideal for automatic builds and test builds but it is not useful when you want to debug a failing build.  In that case, you would like the scratchbox target to remain around so that you can select it and do debugging to see why your build failed, and fix it.

To do this, use the ''sbdmock --sbtarget'' command to specify a target to use.  This should be a target which already exists but one which you do not mind sbdmock cleaning.  Cleaning involves re-initialising the target so things like changes to /etc/apt/sources.list and packages you have installed will be lost. But don't worry, no files in your home directory will be modified.

For example:

 sbdmock/bin/sbdmock -r maemo-chinook-armel-extras-devel --sbtarget TEST_40_ARMEL ''something.dsc''

'''Note:''' currently sbdmock does not actually recreate the target completely, so it is important that you specify a target which has the correct compiler, devkit and CPU transparency settings for the configuration you are using.  In other words, use a target which was set up for the correct version of the SDK and the correct architecture.

If the build fails you can go into scratchbox, select the target (if necessary) and debug the problem.  You can then use ''dpkg-buildpackage'' to recreate the package files and re-try the build in ''sbdmock''.

== Example ==

'''Todo:''' create a worked example showing how to debug and fix a missing build dependency.

'''''Note: this page is work in progress documenting my experiments with sbdmock'''''  -- [[User:gcobb|gcobb]] 22:04, 16 July 2009 (UTC)


[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Bylaws</title>
    <id>5295</id>
    <revision>
      <id>50606</id>
      <timestamp>2012-11-02T20:42:02Z</timestamp>
      <contributor>
        <username>woody14619</username>
        <id>1579</id>
      </contributor>
      <comment>/* Actual revision of bylaws document */</comment>
      <text xml:space="preserve">=== Purpose of Bylaws ===
By law, and for practical reasons, upcoming non-profit Foundation need Bylaws. Foundation's Board is scheduled to accept bylaws during first meeting. After that, only way to change/improve bylaws, is defined in bylaws itself - thus, it's very important to start with as much &quot;bulletproof&quot; document, as possible.

=== Suggesting changes ===
To suggest changes, use maemo-community@maemo.org mailing list, or Bylaws thread on TMO:
http://talk.maemo.org/showthread.php?t=86290

= Actual revision of bylaws document =
Revisions:

1. Internal to Council, no external links available.

2. Posted to the Maemo Community Mailing list [http://lists.maemo.org/pipermail/maemo-community/2012-July/005552.html 2012-07-10]

3. Posted to TMO thread, ML, and Blog [http://talk.maemo.org/showpost.php?t=86290 2012-08-24]

4. Posted in TMO thread [http://talk.maemo.org/showpost.php?p=1268568&amp;postcount=37 2012-09-18]

5. Posted in TMO thread [http://talk.maemo.org/showpost.php?p=1272724&amp;postcount=60 2012-09-26]

6. Posted in TMO thread &amp; second Blog/ML announcement made. [http://talk.maemo.org/showpost.php?p=1281432&amp;postcount=99 2012-10-16]

7. Posted in TMO thread [http://talk.maemo.org/showpost.php?p=1281934&amp;postcount=109 2012-10-18]

=== Unresolved Controversies ===
1. How much power should Council have over Board, and vice versa?
Original question [http://talk.maemo.org/showpost.php?p=1282556&amp;postcount=128 here]. Replied to [http://talk.maemo.org/showpost.php?p=1285484&amp;postcount=133 here].

2.

3.</text>
    </revision>
  </page>
  <page>
    <title>CFSONID</title>
    <id>199</id>
    <revision>
      <id>39428</id>
      <timestamp>2010-10-06T11:09:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Open development#Open Source and open development strategy]]</text>
    </revision>
  </page>
  <page>
    <title>CSSU</title>
    <id>4745</id>
    <revision>
      <id>41931</id>
      <timestamp>2011-02-22T09:45:03Z</timestamp>
      <contributor>
        <username>mece</username>
        <id>1328</id>
      </contributor>
      <comment>Redirecting to [[Community SSU]]</comment>
      <text xml:space="preserve">#REDIRECT [[Community_SSU]]</text>
    </revision>
  </page>
  <page>
    <title>CSSU-thumb toolchain setup (gcc4.7.2-linaro)</title>
    <id>5246</id>
    <revision>
      <id>49781</id>
      <timestamp>2012-09-21T21:22:56Z</timestamp>
      <contributor>
        <username>adek</username>
        <id>5414</id>
      </contributor>
      <text xml:space="preserve">This document describes how to setup the CSSU-thumb toolchain (gcc4.7.2-linaro) in scratchbox.


''GCC 4.7.2 does '''not''' produce thumb binaries by default, you should pass -mthumb if you want thumb resulting executables! without -mthumb it produces regular ARM ELFs''


1. You need to have [http://wiki.maemo.org/Documentation/Maemo_5_Final_SDK_Installation ScratchBox] environment already set up.

2. Download [http://maemo.merlin1991.at/cssu/develdebs/gcc-4.7.2_fremantle_armel/linaro-4.7-2012.07-fremantle-armv7a.tar.bz2 gcc-4.7.2-linaro toolchain] and extract it under /scratchbox/compilers (may need root privileges for extracting there)
 tar xvf linaro-4.7-2012.07-fremantle-armv7a.tar.bz2

3. Create new ScratchBox target FREMANTLE_ARMEL_GCC472

- Login to ScratchBox 

 $ /scratchbox/login

- Create new ScratchBox target

 [sbox-&gt;:~]sb-conf st FREMANTLE_ARMEL_GCC472 -c linaro-4.7-2012.07-fremantle-armv7a -d qemu:perl:debian-etch:doctools:svn:git -t qemu-arm-sb

 [sbox-&gt;:~]sb-conf se FREMANTLE_ARMEL_GCC472

 [sbox-FREMANTLE_ARMEL_GCC472: ~] &gt; sb-conf rs maemo-sdk-rootstrap_5.0_20.2010.36-2_armel.tgz

 [sbox-FREMANTLE_ARMEL_GCC472: ~] &gt; sb-conf in -edL

 [sbox-FREMANTLE_ARMEL_GCC472: ~] &gt; apt-get update
 [sbox-FREMANTLE_ARMEL_GCC472: ~] &gt; fakeroot apt-get install maemo-sdk-debug

- Accept [http://tablets-dev.nokia.com/eula/index.php Maemo5 SDK EULA] and copy the URL. Add nokia-binaries repository URL to /etc/apt/sources.list 

 [sbox-FREMANTLE_ARMEL_GCC472: ~] &gt;apt-get update
 [sbox-FREMANTLE_ARMEL_GCC472: ~] &gt;fakeroot apt-get install nokia-binaries nokia-apps

 [sbox-FREMANTLE_ARMEL_GCC472: ~] &gt;rm -rf /targets/FREMANTLE_ARMEL_GCC472/opt
 [sbox-FREMANTLE_ARMEL_GCC472: ~] &gt;mkdir /targets/FREMANTLE_ARMEL_GCC472/opt

- Download ScratchBox errata dependency provider package [http://maemo.merlin1991.at/cssu/develdebs/gcc-4.7.2_fremantle_armel/sb-thumb-errata-provider_0.1-1_armel.deb sb-thumb-errata-provider_0.1-1_armel.deb] and install it

 dpkg -i sb-thumb-errata-provider_0.1-1_armel.deb

- Add CSSU-testing and CSSU-thumb repos to your /etc/apt/sources.list

 echo &quot;deb http://repository.maemo.org/community-testing/ fremantle free non-free&quot; &gt;&gt; /etc/apt/sources.list
 echo &quot;deb-src http://repository.maemo.org/community-testing/ fremantle free&quot; &gt;&gt; /etc/apt/sources.list

 echo &quot;deb http://maemo.merlin1991.at/cssu/community-thumb/ fremantle free non-free&quot; &gt;&gt; /etc/apt/sources.list
 echo &quot;deb-src http://maemo.merlin1991.at/cssu/community-thumb/ fremantle free&quot; &gt;&gt; /etc/apt/sources.list

Remove unneeded package maemo-core-debug
 apt-get remove maemo-core-debug

Upgrade your target to latest CSSU-thumb

 [sbox-FREMANTLE_ARMEL_GCC472: ~] &gt;apt-get update
 [sbox-FREMANTLE_ARMEL_GCC472: ~] &gt;fakeroot apt-get upgrade

Download and install [http://maemo.merlin1991.at/cssu/develdebs/gcc-4.7.2_fremantle_armel/packages/libstdc%2b%2b6-dev_4.7.2-0%2bcssu0_armel.deb libstdc++6-dev_4.7.2-0+cssu0_armel.deb]
 dpkg -i libstdc++6-dev_4.7.2-0+cssu0_armel.deb

''It can complain about libstdc++6 on system is 4.2.1-4maemo13+0m5.''

 apt-get -f install

''can fix that by installing the proper libstdc++6 afterwards.''


Create FREMANTLE_ARMEL_GCC472.environment in your /targets directory

 echo &quot;export DEB_BUILD_OPTIONS=maemo-launcher,thumb,vfp&quot; &gt; /targets/FREMANTLE_ARMEL_GCC472.environment

Your target should be ok at that point. Make sure to reenter the target, so updated FREMANTLE_ARMEL_GCC472.environment to take effect


Interesting new flags can be: &lt;nowiki&gt;-mfpu=neon -ftree-vectorize -fgraphite -lto&lt;/nowiki&gt;

The compiler will give the following warning:
 /scratchbox/compilers/linaro-4.7-2012.07-fremantle-armv7a/bin/../lib/gcc/arm-none-linux-gnueabi/4.7.2/../../../../arm-none-linux-gnueabi/bin/ld: BFD (GNU Binutils) 2.22 assertion fail ../../../sources/binutils-2.22/bfd/elf32-arm.c:11467
These warnings can be ignored. For some reason, the linker thinks that the object is hardfp, but as it is softfp the assertion fails.</text>
    </revision>
  </page>
  <page>
    <title>CSSU Feature Requests</title>
    <id>4761</id>
    <revision>
      <id>42211</id>
      <timestamp>2011-02-28T04:35:08Z</timestamp>
      <contributor>
        <username>ejasmudar</username>
        <id>3997</id>
      </contributor>
      <comment>[[CSSU Feature Requests]] moved to [[Community SSU/Feature Requests]]</comment>
      <text xml:space="preserve">#REDIRECT [[Community SSU/Feature Requests]]</text>
    </revision>
  </page>
  <page>
    <title>CSSU Features Configuration Editor</title>
    <id>4811</id>
    <revision>
      <id>46787</id>
      <timestamp>2012-02-21T23:48:58Z</timestamp>
      <contributor>
        <ip>91.39.107.254</ip>
      </contributor>
      <comment>/* Button functions */ markup fix</comment>
      <text xml:space="preserve">The '''CSSU Features Configuration Editor''' is a user interface to the configuration of several parameters enabled by the [[Community SSU]] updates.

It has been built using the PyQt libraries and the Python language. 

It provides the ability to change a number of parameters in the transitions.ini configuration file as well as the relevant GConf entries' values. The options are described in the [[Community SSU/Features]] wiki page.
Additional information on the usage, settings and implications could be found below.

==Installation==

The application is hosted in the [[Extras]] repositories. Its status can be seen at the [http://maemo.org/packages/view/cssufeatures/ packages page]

The latest stable version can be found also in the [http://maemo.org/downloads/product/Maemo5/cssufeatures/ Downloads page]

The project is also hosted in [https://garage.maemo.org/projects/cssufeatures/ Maemo Garage]

===Dependencies===

The application depends to the following packages:
 * python2.5
 * python2.5-qt4-gui
 * python2.5-qt4-core 
 * python2.5-qt4-maemo5

==Usage info==

===Start-Up===

On the application start-up the &lt;code&gt;transition.ini&lt;/code&gt; file and the relevant GConf key entries are read. 

Their values are shown in the corresponding UI elements.
  
[[Image:CSSUfeaturesConfiguration_main1.png|500px]]

Depending on the orientation of the device one gets a different view.

The application uses the accelerometer to provide landscape or portrait modes.  

Both modes are fully usable without the need of a keyboard.

[[Image:CSSUfeaturesConfiguration_main1p.png|250px]]
[[Image:CSSUfeaturesConfiguration_main2p.png|250px]]

===Errors===

When the application starts it checks first if the [[Community SSU]] is installed.
In the case it does not finds it an error message is displayed.

'''Note''': In the latest versions the application does not exit but continues allowing custom/partial installations of the CSSU to have the ability to edit their options using this application.     

[[Image:CSSUfeaturesConfiguration_error1.png|350px]]

Subsequently, a check is made if the options in the &lt;code&gt;transition.ini&lt;/code&gt; file are available for editing. 

In the case of their unavailability, a new window opens which provides information and two ways to resolve this.

[[Image:CSSUfeaturesConfiguration_fixWindow.png|500px]]

The options are to either try to fix by adding the missing variables in the configuration file or restore the complete file by replacing it with a default.

The messages given in either case are similar to those:

[[Image:CSSUfeaturesConfiguration_fixWindow_optionFix.png|350px]]
[[Image:CSSUfeaturesConfiguration_fixWindow_optionDefault.png|350px]]

''NOTE:'' After the completion of either operation the application exits.
 
In the case the file is corrupted and cannot still be read an error banner is displayed for user information. In this case, the application exits.

[[Image:CSSUfeaturesConfiguration_error1.jpg|350px]]

===Changing Options===

The operation of the application is simple: 
* Choose the options you would like to have (for info on the options look in the [[Community SSU/Features]] page).
* Press the &quot;Update&quot; button to register in the system your choice.

[[Image:CSSUfeaturesConfiguration_edit1.jpg|250px]]
[[Image:CSSUfeaturesConfiguration_edit2.jpg|250px]]

'''''Note''''': Options like the &quot;tactile feedback&quot; will be '''disabled''' if the relevant package is not installed.

===Button functions===

* The &quot;Current&quot; button sets the current options the system is using in the options (which are shown also in the startup of the application)
* The &quot;Default&quot; button sets the values in UI equal to those shipped with the Community SSU.
* The &quot;Update&quot; button registers the choices seen in the UI to the system. 

[[Image:CSSUfeaturesConfiguration_current.png|350px]]
[[Image:CSSUfeaturesConfiguration_default.png|350px]]

'''''Note''''': Neither of those buttons propagate any changes to the system. They will only set the UI elements. The options visible in the UI will be applied only after pressing the &quot;Update&quot; button.

===Restoring the original transitions.ini file===

 '''''Note''''': This will restore to the shipped version of the transitions.ini and will not have any effect on the similar file in &lt;code&gt;/etc/hildon/theme/&lt;/code&gt; that might be used by theming.

If for some reason the transitions.ini file becomes messed up it is possible to restore the default:

 * Open the application menu. 
 * Choose the &quot;Restore Defaults&quot; option. 

[[Image:CSSUfeaturesConfiguration_restore.png|350px]]


If the application exits immediately when started the same operation can be done from the command line:

 * Open the xterm (shortcut: shift [arrow up] + ctrl + x)
 * type the following: 

 &lt;code&gt;sudo /opt/CSSUfeatures/updateTransitions copyDefault&lt;/code&gt;

===Applying changes to the system===

 * Some of the options get immediately active as soon as you press the &quot;Update&quot; button. 
 * Others need the hildon-desktop to be restarted. For those a menu option is available &quot;Restart hildon-destop&quot;.

[[Image:CSSUfeaturesConfiguration_update.png|350px]]

===Power Key Menu entry===

By default an entry is added in the Power Key Menu. 

[[Image:CSSUfeaturesConfiguration_powerkeyentry.png|350px]]

This entry can be removed or added any time from the application's menu.
 * Open the application menu. 
 * Choose the &quot;Remove PowerKey Entry&quot; option.
 '''''Note''''': If the entry has already been removed the option will be &quot;Add PowerKey Entry&quot; 

[[Image:CSSUfeaturesConfiguration_restore.png|350px]]
[[Image:CSSUfeaturesConfiguration_removedpowerkeyentry.png|350px]]

===About window===

In the About window, apart from the application version and description, one can find a button pointing to this page.

[[Image:CSSUfeaturesConfiguration_about1.png|350px]]
[[Image:CSSUfeaturesConfiguration_about2.png|350px]]

==Issues &amp; ToDo==

'''Feel free to add requests below''' (optionally adding also your username for reference):


* &lt;strike&gt;It only edits transitions.ini located under /usr/share/hildon-desktop/. Thus, will fail if you have more transitions.ini files (e.g. using the theme-customizer).&lt;/strike&gt; fixed in version [[#0.3-1]]
* &lt;strike&gt;Current button is not yet implemented.&lt;/strike&gt; fixed in version [[#1.0-1]]
* &lt;strike&gt;The application when it opens shows the default options - in a future update will show the system's current options.&lt;/strike&gt; fixed in version [[#1.0-1]]
* &lt;strike&gt;'''BLOCKER''': In the &quot;parallax&quot; field the values need to be float, i.e. &quot;2.0&quot; and not &quot;2&quot;, otherwise the GUI fails to open.&lt;/strike&gt; fixed in version [[#1.1-1]]
* &lt;strike&gt;MINOR: if &quot;tactile&quot; package is installed and disable option if it's not.&lt;/strike&gt; fixed in version [[#1.2-1]]
* &lt;strike&gt;MINOR: Add rotation support.&lt;/strike&gt; fixed in version [[#2.1-1]]
* Enhancement: The application should reside in the Settings under Personalisation. At the moment it is in the applications.

==Versions==

===2.5-6 '''[http://maemo.org/downloads/product/Maemo5/cssufeatures/ Stable]'''===
Availability: [[Extras]]

&lt;!--'''[http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/cssufeatures/2.5-6/ Next]'''===
Availability: [[Extras-devel]], [[Extras-testing]]
--&gt;
Changes: 
   * Added new option to the missing variables window for restoring the transitions.ini file.

===2.5-5===

Changes: 
   * Added option to add missing variables in the transitions.ini file.
   * Fix write of settings issue when no space between variable and value.
   * Added better support for the transitions.ini at theme folders.
   * Added new and improved WARNING and ERROR messages.
   * Added new icon.

===2.4-1===

Changes: 
   Added support for CSSU version 20.2010.36-maemo16.
    * added new blurless_saturation variable
    * added new scroll_vertical gconf entry

===2.3-3===

Changes: 
   * Modified the .desktop to have a shorter name in the app menu
   * Modified the UI to expand on all the available screen estate.

===2.3-2===

Changes: 
   * UI beatifications - set max height of fields.
   * UI beatifications - rename of some fields.

===2.3-1===

Changes: 
   * Removed some redundant information messages.
   * Cleanup of the code.
   * UI beatifications - organised options in groups.

===2.1-1===

Changes: 
   * Major modification in the UI.
   * Added portrait/landscape support.
   * Removed exit condition if CSSU is not installed.

===2.0-1===

Changes: 
   * Added the gconf key options of CSSU version 14.1 (FMTX applet, status menu rows, app menu edit).
   * Added one gconf option from previous CSSU version (desktop menu edit).
   * Update of the wiki link to point in the new page.
   * Changes in the postinstall script.

===1.6-1===

Changes: 
   * Added a dynamic button in the application menu to add/remove the entry in the Power Key menu.
   * Added a postrm script to remove settings made by the application when uninstalled.
   * Added new entries in the update script.

===1.5-1===

Changes: 
   * Added code in the postinstall to compile the python code.
   * Removed the menu button for restarting hildon-desktop (crashes other Qt apps).
   * Added menu button for rebooting the device.
   * Added note for option that requires reboot.
   * Several UI modifications for usability.
   * Modified icon.

===1.3-1===

Changes:
   * Fix for the application freeze when restarting hildon-desktop.

===1.2-1===

Changes: 
   * Added a menu button for restarting hildon-desktop (e.g. needed for blurless update).
   * Added check if the Community SSU is installed.
   * Added check if the transitions.ini file used has all new features available.
   * Added check if the tactile package is installed and enable/disable accordingly the selection.

===1.1-1===

Changes:
   * Corrections in the postinstall script.
   * Fix in configuration readout for case where string could be read as integer.
   * Modified the way the app starts, it's name in the window and application menu.

===1.0-1===

Changes: 
   * Implemented the CURRENT button. Additionally when app opens shows the current values.
   * Added rotation support in the About panel (does not need forced rotation).
   * Added better banner messages for actions taken.
   * Several GUI beautifications.

===0.4-1===

Changes:
   * Removed desktop file from the hildon-control-panel. It doesn't work yet.
   * Added messages for which configuration file will be used.

===0.3-1===

Changes:
   * Implemented the DEFAULT button to revert all values in the GUI back to system's defaults.
   * If an update is requested, the system checks if a transitions.ini file exists in /etc/hildon/theme/ (used by theming) and updates that too.
   * Update in the sudoers file to accept the new command for the additional update.

===0.2-1===

Changes:
   *Some small beautifications in the GUI.

===0.1-1===

Changes:
   * Initial version.

==License==
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
by the Free Software Foundation; version 2 only.

==Disclaimer==
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

[[Category:Software]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>CSSU Requests</title>
    <id>4972</id>
    <revision>
      <id>46840</id>
      <timestamp>2012-02-26T10:23:16Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">This is to serve as a placeholder to record all suggestions for CSSU features. 

'''For Developers:''' Please feel free to incorporate these in upcoming CSSU. Please also add practical challenges to implementation where possible in remarks.

'''For Community in general:''' Please add inputs into what new features would be great. If needed update the impact on Remarks, so that Developers, and the rest of us can understand why the feature is important. Note that manpower is limited so please avoid false hopes.


== Feature Requests ==


{{ambox | text =Please file well-defined feature requests in [https://bugs.maemo.org/enter_bug.cgi?product=Maemo%205%20Community%20SSU bugzilla] instead of adding them here. Please read http://talk.maemo.org/showpost.php?p=957141 for details before filing them.}}

{{ambox | text ='''Important note:''' Follow up from the  [http://talk.maemo.org/showthread.php?p=1074474#post1074474 discussion thread in TMO]. Please post there if you cant edit this wiki.}}
{| class=&quot;wikitable sortable&quot;
! width=&quot;125&quot; | Category
! width=&quot;50&quot; | S.No.
! width=&quot;300&quot; | Request
! width=&quot;300&quot; | Remarks
! width=&quot;10&quot; | Done?
|-
|Hildon Desktop || 1 || Up or down swipe to launch preconfigured application || Currently swiping left and right in the landscape homescreen changes desktops. On the other hand swiping up and down has no functionality. The request is to add functionality so that a downswipe can bring the menu, and an upswipe can bring x-term or whatever || No
|-
|Hildon Desktop || 1 || Move application menu button to top right corner in portrait || 70-90% of world population are right-handed, when in portrait make application menu button appear in top right corner for easier right handed portrait usage || No
|-
|Modest|| 1 || Select location of Sent or Draft folder || Store sent or draft messages in custom IMAP folders instead of local ones. || No
|-
|Calendar|| 1 || Remove default alarm || No alarm for new events by default, or config option to set the default alarm option. || No
|-
|Calendar|| 1 || Custom action || Use event notes for custom scripting action when alarm triggers. And select (silent) profile for the duration of an event.|| No
|-
|Contacts || 1 || Searchbox functionality in contacts app || To help search using virtual keyboard, instead of having open HW keyboard each time || No
|-
|Maps|| 1 || Fix for voice guidance || Currently patches exist to configure it. Not required. || No
|-
|Maps|| 1 || Save user locations || Importing/exporting KML would be very neat addition. :-) || No
|-
|phone|| 1 || fix for better call support || camera key dedicated for answering and disconnecting call || No
|-
|proxmity sensor|| 1 || fix for proximity sensor related problems || while calling proximity sensor turns display dark in sunlight || No
|-
|call|| 1 || support for 3G video call || application for 3G video call || No
|-
|media player|| 1 || fix for media player || playing 720p videos || No
|-
|Camera App|| 1 || JPEG quality selection || It would be great if I will be able to choose JPEG quality level so I can choose between picture quality vs size &quot;in situ&quot;|| No
|-
|Image viewer|| 1 || Draw circle to zoom in/out || Draw a small circle on the screen to zoom in (clockwise) or out (counter-clockwise) when viewing photos, exactly like the N900 web browser. || No
|-
|Modest|| 1 || Encrypt stored passwords || For security reasons, Modest should save stored passwords encrypted. A general password manager like seahorse for Maemo would be a great feature too! || No
|}
[[Category:Community]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>CSSU kernel assess</title>
    <id>5296</id>
    <revision>
      <id>50640</id>
      <timestamp>2012-11-03T16:30:59Z</timestamp>
      <contributor>
        <username>pali</username>
        <id>2764</id>
      </contributor>
      <text xml:space="preserve">Purpose of this page and table is to evaluate the risk and thus decide about fitness for CSSU kernel, of all patches available from latest KP

 Changes:
 2012-11-03 - [freemangordon] Initial draft 
 2012-11-03 - [Joerg_rw] major restructuring to sortable true table, 
                         added coloumns .ko (means only kernel module domain) and 
                         zImg (means massive impact and risk due to edits in kernel core)  
 2012-11-03 - [Pali] added info about Nokia patches and patches disabled in KP


&lt;!--Note to future editors: Please leave these extra blank lines in place at the beginning of the page in order to prevent the oversized table from covering up and preventing the use of the wiki menu on the right side of the page--&gt;


'''Scroll down!''' Table is over-width and will cover right side panel if not moved little bit down.



































{| class=&quot;wikitable sortable&quot;
! .ko || '''zImg''' || Patch !! Impact !! Notes [please_enlarge_this_col_thaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat_much] !! Include in CSSU

&lt;!-- 
EXAMPLE:
|-
|
||
||Mail (Modest)             || [http://gitorious.org/community-ssu/modest Yes] || [http://bugs.maemo.org/buglist.cgi?classification=Extras&amp;component=modest&amp;product=Maemo%205%20Community%20SSU Yes] || Fixes: [[Community_SSU/Changelog#modest|1]], [[Community_SSU/Changelog#Modest|2]], [[Community_SSU/Changelog#modest_2|3]]. Discussion [http://talk.maemo.org/showthread.php?t=63291&amp;highlight=modest here]
--&gt;

|-
&lt;!-- change previious line to |- style=&quot;background-color:#A0E75A;&quot;  for modules accepted for CSSU, i.e when last col is 'Y' --&gt; 
|
||
||0001-mtd-fix-a-huge-latency-problem-in-the-MTD-CFI-flash-.diff 
|| 
|| This patch caused problems in kernel-power, it was disabled
|| '''N'''


|-
|
||
||0002-mtd-change-struct-flchip_shared-spinlock-locking-int.diff
||
|| This patch caused problems in kernel-power, it was disabled
|| '''N'''


|- style=&quot;background-color:#A0E75A;&quot;
|
||
||2.6.28-omap1.diff 		
||
||This patch is part of Nokia stock kernel
||'''Y'''


|-
|
||
||2.6.28.10.diff 		
||
|| This is upstream patch which update kernel from 2.6.28.0 to 2.6.28.10 (last 2.6.28 version)
||

|- style=&quot;background-color:#A0E75A;&quot;
|'''Y'''
||
||adding-ramzswap-driver.diff 		
||None, kernel module
||
||'''Y'''


|-
|
||
||anti-io-stalling.diff 		
||
||
||

|-
|
||
||ARM_6066_1_Fix_BUG_scheduling_while_atomic_swapper_0_0x00000002.diff 		
||
|| 
||

|-
|
||
||armthumb.diff 		
||Could slowdown the system
|| Needed to workaround ARM errata 430973
|| '''Y'''

|-
|
||
||block2mtd-yoush.diff 		
|| 
|| 
|| 

|-
|
||
||bluetooth-fix-potential-bad-memory-access-with-sysfs-files.diff 		
|| CVS fix
|| This is an upstream fix
|| '''Y'''

|-
|
||
||bluetooth_scheduling_while_atomic_bug_fix.diff 		
|| 
|| 
|| 

|-
|
||
||bq24150-sniff.diff 		
|| 
|| This patch is for debugging only and is disabled in kernel-power
|| '''N'''

|-
|
||
||bq2415x_charger.patch 		
|| 
|| 
|| 

|-
|
||
||bq2415x_kconfig.patch 		
|| 
|| 
|| 

|-
|
||
||bq2415x_rx51.patch 		
|| 
|| 
|| 

|-
|
||
||bq27x00-maemo.diff 		
|| 
|| 
|| 

|-
|
||
||bq27x00-rx51-board.diff 		
|| 
|| 
|| 

|-
|
||
||bq27x00-sysfs-registers.diff 		
|| 
|| 
|| 

|-
|
||
||bq27x00-upstream.diff 		
|| 
|| 
|| 

|-
|
||
||bt-mice.diff 		
|| Needed for some HID devices to work properly
|| None
|| '''Y'''

|-
|
||
||class10sd_dto14_fix.diff 		
|| Needed for some uSD cards to work
|| 
|| '''Y'''

|-
|
||
||clear_the_it_state_when_invoking_a_thumb_2_signal_handler.diff 		
|| needed for thumb userspace binaries
|| backported from upstream
|| '''Y'''

|-
|
||
||dm-loop.diff 		
|| 
|| 
|| 

|-
|
||
||dspbridge.diff 		
|| 
|| 
|| 

|-
|
||
||ext4-data-corruption.diff 		
|| 
|| 
|| 

|-
|
||
||fmtx.unlock.diff 		
|| Reverts Nokia locked fmtx power level
|| This patch is obsolated by radio-si4713.diff and disabled in kernel-power
||

|-
|
||
||gentoo-fsfixes.diff 		
|| 
|| 
|| 

|-
|
||
||gethercharge.diff 		
|| 
|| 
|| 

|-
|
||
||i2c-battery.diff 		
|| 
|| !!!THIS PATCH IS DANGEROUS!!! It is disabled in kernel-power
|| '''N'''

|-
|
||
||iphb-matan.diff 		
|| 
|| 
|| 

|-
|
||
||joikuspot.diff 		
|| 
|| 
|| 

|-
|
||
||kexec.diff 		
|| 
|| 
|| 

|-
|
||
||l2cap_parent.diff 		
|| 
|| 
|| 

|-
|
||
||led_dbrightness.diff 		
|| 
|| 
|| 

|-
|
||
||mac80211_fix_allocation_in_mesh_queue_preq.diff 		
|| 
|| 
|| 

|-
|
||
||madde.diff 		
|| 
|| 
|| 

|-
|
||
||minstrel-aziwoqpa.diff 		
|| 
|| 
|| 

|-
|
||
||mmcnames-fanoush.diff 		
|| 
|| 
|| 

|-
|
||'''Y'''
||musb_sysfs_hostdevice.diff 		
|| 
|| 
|| 

|-
|
||
||musb_sysfs_notify.diff 		
|| 
|| 
|| 

|-
|
||
||nilfs2-2.0.18.diff 		
|| 
|| 
|| 

|- style=&quot;background-color:#A0E75A;&quot;
|
||
||nokia-20093908+0m5.diff 		
|| 
||This patch is part of Nokia stock kernel
||'''Y'''

|- style=&quot;background-color:#A0E75A;&quot;
|
||
||nokia-20094102.3+0m5.diff 		
|| 
||This patch is part of Nokia stock kernel
||'''Y'''

|- style=&quot;background-color:#A0E75A;&quot;
|
||
||nokia-20094102.6+0m5.diff 		
|| 
||This patch is part of Nokia stock kernel
||'''Y'''

|- style=&quot;background-color:#A0E75A;&quot;
|
||
||nokia-20094803.3+0m5.diff 		
|| 
||This patch is part of Nokia stock kernel
||'''Y'''

|- style=&quot;background-color:#A0E75A;&quot;
|
||
||nokia-20100903+0m5.diff 		
|| 
||This patch is part of Nokia stock kernel
||'''Y'''

|-
|
||
||nokia-20101501+0m5-nosmart.diff 		
|| 
||This patch is part of Nokia stock kernel, but disabled in kernel-power
||

|- style=&quot;background-color:#A0E75A;&quot;
|
||
||nokia-20101501+0m5.diff 		
|| 
||This patch is part of Nokia stock kernel
||'''Y'''

|- style=&quot;background-color:#A0E75A;&quot;
|
||
||nokia-20103103+0m5.diff 		
|| 
||This patch is part of Nokia stock kernel
||'''Y'''

|-
|
||
||nokia-20103103+0m5_usb.diff 		
|| 
||This patch is part of Nokia stock kernel, but disabled in kernel-power
|| 

|-
|
||
||ondemand-avoid.diff 		
|| 
|| 
|| 

|-
|
||
||option_disable_indicator_led.diff 		
|| 
|| 
|| 

|-
|
||
||overclock.diff 		
|| 
|| 
|| 

|-
|
||
||overclock_smartreflex_900.diff 		
|| 
|| 
|| 

|-
|
||
||patch_swap_notify_core_support_2.6.28.diff 		
|| 
|| 
|| 

|-
|
||
||patch_swap_notify_core_support_2_2.6.28.diff 		
|| 
|| 
|| 

|-
|
||
||phys_to_page.diff 		
|| 
|| 
|| 

|-
|
||
||power-supply-ignore-enodata.diff 		
|| 
|| 
|| 

|-
|
||
||power-supply-no-verbose.diff 		
|| 
|| 
|| 

|-
|
||
||ppp_async_matan.diff 		
|| 
|| 
|| 

|-
|
||
||radio-bcm2048.diff 		
|| 
|| 
|| 

|-
|
||
||radio-si4713.diff 		
|| 
|| This patch modify default power level to 120 and add ability to unlock power level (new version of patch fmtx.unlock.diff)
|| 

|-
|
||
||rx51_add_secure_ppa_api.diff 		
|| Needed to workaround ARM errata 430973
|| 
|| '''Y'''

|-
|
||
||rx51_arm_errata_430973.diff 		
|| Needed to workaround ARM errata 430973
|| 
|| '''Y'''

|-
|
||
||rx51_defconfig.diff 		
|| 
|| 
|| 

|-
|
||
||shutdown-reboot-patch.diff 		
|| Fixes an issue in hostmode - device reboots instead of shutdown
|| 
|| '''Y'''

|-
|
||
||squashfs.diff 		
|| 
|| 
|| 

|-
|
||
||Support-for-tlv320aic3x-codec-highpass-filter-needed.diff 		
|| 
|| This patch is incomplete and unfinfished yet, it is disabled in kernel-power
|| '''N'''

|-
|
||
||support-non-page-aligned-buffers-in-iommu_vmap.diff 		
|| 
|| 
|| 

|-
|
||
||tif_restore_sigmask-syscalls-arm.patch 		
|| Implements ppoll/pselect in kernel
|| 
|| '''Y'''

|-
|
||
||trig-keyb.diff 		
|| 
|| 
|| 

|-
|
||
||twl-scrollock.diff 		
|| 
|| 
|| 

|-
|
||
||unionfs-2.5.3.diff 		
|| 
|| 
|| 

|-
|
||
||update_mmu_cache_arm.diff 		
|| 
|| 
|| 

|-
|
||
||USB-fix-kernel-oops-with-g_ether-and-windows.diff 		
|| Fixes a bug when USB networking is enabled
|| 
|| '''Y'''

|-
|
||
||USB-g_serial-don-t-set-low_latency-flag.diff 		
|| 
|| 
|| 

|-
|
||
||usbhostmode.diff 		
|| 
|| 
|| 

|-
|
||
||usbip.diff 		
|| 
|| 
|| 

|-
|
||
||videobuf-dma-sg-support-non-pagable-user-memory.diff 		
|| 
|| 
|| 

|-
|
||
||wl1251-monitor-mode.diff 		
|| 
|| 
|| 

|-
|
||
||wl12xx-rx-fix.diff 		
|| 
|| 
|| 

|-
|
||
||wl12xx_rohar.diff
|| 
|| 
|| 

|-
|}</text>
    </revision>
  </page>
  <page>
    <title>Calendar Database</title>
    <id>4674</id>
    <revision>
      <id>41440</id>
      <timestamp>2011-01-26T11:21:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Calendar Database]] moved to [[Calendar database]]: capitalisation</comment>
      <text xml:space="preserve">#REDIRECT [[Calendar database]]</text>
    </revision>
  </page>
  <page>
    <title>Calendar database</title>
    <id>4460</id>
    <revision>
      <id>50558</id>
      <timestamp>2012-10-29T16:19:44Z</timestamp>
      <contributor>
        <username>krayon</username>
        <id>5498</id>
      </contributor>
      <minor/>
      <comment>/* Components */ Added flags</comment>
      <text xml:space="preserve">The [[Open development/Maemo roadmap/Fremantle|Maemo 5]] calendar database can be found in &lt;code&gt;/home/user/.calendar/calendardb&lt;/code&gt;. The goal of this article is to provide enough information on the calendar database in order to implement mass modifying/adding/deleting events verifying some criterias (string match in title, locations, comments for example). It could be easy then to write a small shell script using zenity and sqlite3 to perform this tasks.

If you want to help editing this article and writing useful informations on fields or new scripts, feel free to copy your own database on your computer and analyze it with some tools like &quot;SQLite Database Browser&quot; (Linux/Debian). The datatypes are those listed in the [http://www.sqlite.org/datatype3.html SQLite documentation].

== [[#toc|Structure]] ==
=== [[#toc|Tables &amp; fields]] ===

==== [[#toc|ALARM]] ====

===== Id =====
===== Trigger =====
===== Repeat =====
===== Duration =====
===== Action =====
===== CookieId =====
===== Attach =====

==== [[#toc|Birthdays]] ====

{| class=&quot;wikitable&quot;
|+ Birthdays table
|-
! Field !! Type !! Description
|-
| Id || integer || primary key
|-
| DayMonth || integer || Day and month as a combined integer. Calculated as: month*100+day (day with a leading zero). 1102 means November 2
|-
| Year || integer || Year as a number.
|}

==== [[#toc|Calendars]] ====

{| class=&quot;wikitable&quot;
|+ Calendars table
|-
! Field !! Type !! Description
|-
| CalendarId || integer || primary key
|-
| Name || text || name of the calendar
|-
| Colour || integer || 0 = dark blue, 1 = green, 2 = dark pink, 3 = orange, 4 = purple, 5 = yellow, 6 = white, 7 = light blue, 8 = light pink, 9 = yellow-green
|-
| isVisible || integer || 0 = not visible, 1 = visible
|-
| isReadonly || integer || 0 = writeable, 1 = not writeable
|-
| CalendarType || integer || 0 = local, 1 = intelligent, 2 = ?, 3 = private, 4 = synchronized
|-
| CalendarTune || text || Path to the calendar alarm sound. Default path: &lt;code&gt;/usr/share/sounds/ui-calendar_alarm_default.aac&lt;/code&gt;
|-
| CalendarVersion || ||
|-
| CalendarProfile || ||
|}

==== [[#toc|ComponentDetails]] ====

===== Id =====
===== ComponentType =====
===== Class =====
===== Geo =====
===== Priority =====
===== DateStamp =====
===== Sequence =====
===== Transparency =====
===== Uid =====
===== Url =====
===== Attach =====
===== Category =====
===== Comment =====
===== Contact =====
===== Related =====
===== Resources =====
===== Percent =====
===== Completed =====

==== [[#toc|Components]] ====

{| class=&quot;wikitable&quot;
|+ Components table
|-
! Field !! Type !! Description
|-
| Id || integer || primary key
|-
| CalendarId || integer || association with the corresponding [[#Calendar|calender]]
|-
| ComponentType || integer || 1 = event, 2 = task, 3 = note, 4 = birthday
|-
| Flags || integer || 3 = has recursive entry, 4 = has alarm, 5 = has both
|-
| DateStart || integer || UTC start date in Unix Time Format (number of seconds since 01/01/1970)
|-
| DateEnd || integer || -1 = undefined, otherwise UTC end date in Unix Time Format (number of seconds since 01/01/1970)
|-
| Summary || text || title [event, task, note, birthday]
|-
| Location || text || location [event]
|-
| Description || text || comments [event, task, note]
|-
| Status || integer || -1 = undefined [event, note]. 0 = incomplete [task], 1 = complete [task], yyyy = year [birthday]
|-
| Uid || ||
|-
| Until || integer || -1 = none [event, tastk, note], 2145913199 = end of calendar / limit of the Unix Time Format, other integer = end date of a recurrence [event, birthday]
|-
| AllDay || integer || 0 = in limited time [event, task, note], 1 = all day [event, birthday]
|-
| CreatedTime || integer || date of creation
|-
| ModifiedTime || integer || last date of modification
|-
| Tzid || text || time zone identifier, for example &quot;&lt;code&gt;Europe/Paris&lt;/code&gt;&quot;
|-
| TzOffset || text || time zone offset in seconds compared to UTC, for example &quot;&lt;code&gt;7200&lt;/code&gt;&quot; (2 hours)
|}

==== [[#toc|IDMAP]] ====

===== LocalId =====
===== ExternalId =====

==== [[#toc|Instances]] ====

===== Id =====
===== DateStart =====
===== DateEnd =====

==== [[#toc|Parameters]] ====

===== ComponentId =====
===== PropertyType =====
===== PropertyValue =====
===== ParamName =====
===== ParamValue =====

==== [[#toc|RECURSIVE]] ====

===== Id =====
===== Rrule =====
===== Rdates =====
===== Exdates =====
===== Exrule =====
===== RecurrenceId =====
===== Rtype =====

==== [[#toc|TIMEZONE]] ====

===== Location =====
===== Tzid =====
===== DtStartStd =====
===== DtStartDst =====
===== TzOffsetStd =====
===== TzOffsetDst =====
===== RRuleStd =====
===== RRuleDst =====
===== TzName =====
===== DSTFlag =====


==== [[#toc|Trash]] ====

===== ComponentId =====
===== CalendarId =====
===== ComponentType =====
===== DeletedTime =====
===== CreatedTime =====

==== [[#toc|XProperties]] ====

===== ComponentId =====
===== XPropertyName =====
===== XPropertyValue =====

==== [[#toc|sqlite_sequence]] ====

===== name =====
===== seq =====

=== [[#toc|Indices]] ===
==== IDX_ALARM ====
==== IDX_BIRTHDAYS_DATE ====
==== IDX_BIRTHDAYS_IDS ====
==== IDX_CALENDAR ====
==== IDX_COMPONENT ====
==== IDX_DETAILS ====
==== IDX_INST ====
==== IDX_RECURSIVE ====
==== IDX_TIMEZONE ====
==== IDX_TRASH ====

[[Category:Fremantle]]
[[Category:Calendar]]</text>
    </revision>
  </page>
  <page>
    <title>CamSWL OpenJDK on N900</title>
    <id>3522</id>
    <revision>
      <id>28372</id>
      <timestamp>2010-02-04T20:12:48Z</timestamp>
      <contributor>
        <username>mcbrown</username>
        <id>2050</id>
      </contributor>
      <comment>[[CamSWL OpenJDK on N900]] moved to [[OpenJDK 6.0 0 (Cambridge Software Labs) on N900]]: Put OpenJDK to the beginning of the WikiName in order to make it easier to be found</comment>
      <text xml:space="preserve">#REDIRECT [[OpenJDK 6.0 0 (Cambridge Software Labs) on N900]]</text>
    </revision>
  </page>
  <page>
    <title>Cannot install firmware update</title>
    <id>3607</id>
    <revision>
      <id>41697</id>
      <timestamp>2011-02-08T10:24:14Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>move information from [[OTA to PR1.1 troubleshooting]]</comment>
      <text xml:space="preserve">This article is for troubleshooting problems with [[Seamless Software Update|seamless software updates]] (also known as SSU or firmware updates).

[[PR1.2_compulsory_My_Nokia_subscription|Due to privacy concerns]], it might be wise to remove microSD and SIM cards prior to updating to [[Maemo 5/PR1.2|PR1.2]] or above.

== Before you start ==

* Make sure you have a fully charged battery or the device plugged in before starting.
* Make sure you make a backup prior to the update, just in case

== Possible problems ==

=== Not enough space? ===

There are reports that at least 45 MB of free rootfs is needed for the PR1.2 update (and 42 MB for [[Maemo 5/PR1.1|PR1.1]]). You have probably installed unstable software from [[extras-devel]] or other source with weak quality control. The simple solution is to uninstall anything not coming from Ovi and [[extras|maemo.org Extras]]. You can Backup the &quot;Application list&quot; before and restore it after the update. &lt;code&gt;ioquake3&lt;/code&gt; ''must'' be uninstalled prior to updating, no matter your free space.

If you do not have enough space for the upgrade, &lt;code&gt;apt-get dist-upgrade&lt;/code&gt; will display an error:

 E: You don't have enough free space in /var/cache/apt/archives/

There are some tips on how to [[Free up rootfs space|free up space in rootfs]]: 

=== Not possible over the air? ===

If the Application Manager asks you to connect the device to your PC it's probably because: 
* You have missed the PR1.0.1 update between PR1.0 and PR1.1.
** If this is the case, there is nothing to do but to reflash. You have missed the intermediate step towards PR1.1 from PR1.0 and your device will not be able to guarantee you a proper OTA update.
* You have manually installed some Debian package through &lt;code&gt;apt-get&lt;/code&gt; or &lt;code&gt;dpkg&lt;/code&gt;, perhaps bypassing the sanity checks and special controls that HAM (Hildon Application Manager) provides to guarantee a proper OTA update.
* You somehow got the device into a state so it would be needed to remove some package to perform the OTA update (which is something that the extra-defensive Application Manager won't ever do)

The easiest solution is to backup and [[Updating the firmware|flash your device]]. Power users might be interested in troubleshooting the Linux way.

== Troubleshooting installation ==

There are some packages that conflict with updating, causing it to tell you to use the PC Suite to update instead. This can happen because:
* They are breaking the [[Extras/3rd Party Package Policy|third party packaging policy]]
* They are different versions (newer versions, most likely) than the expected by the OTA update package to properly work. Think that the OTA package is a metapackage expecting '''exact''' versions of package to be installed in the system before the upgrade and you'll get the point here :-): just one dependency of the OTA package in a different version than the expected one is enough to break the process, hence asking the user to reflash.
If this is the case you'd need to somehow restore the device to the proper state first by removing those packages and/or restoring them to the expected versions.

If you open the update in the Application Manager, and open the Details dialog, you will see the Problems tab. This will tell you the names of any conflicting packages, that can be unistalled in the [[terminal]], by using:
 apt-get remove &lt;package name&gt;

You can get some more information about why you have a specific package by typing:
 apt-cache depends &lt;package name&gt;
and/or:
 apt-get -s remove &lt;package name&gt;
The latter will simulate removing a package, and will tell you which other programs will be affected. It is also possible to try to perform an &lt;code&gt;apt-get upgrade&lt;/code&gt; from the command line (without confirming!) and see the output. If you find some message like the following one, then you'll have a good spot on which package is blocking the OTA update and why:
&lt;pre&gt;
# apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run `apt-get -f install' to correct these.
The following packages have unmet dependencies:
  mp-fremantle-generic-pr: Depends: package (= 1.0) but 1.1 is installed
E: Unmet dependencies. Try using -f.
&lt;/pre&gt;
In the case above you'd have installed a newer version of 'package' than the expected by OTA, so the solution would be to restore it to the expected version before continuing. Another solution would be to upgrade the package (with &lt;code&gt;apt-get upgrade&lt;/code&gt;, assuming that it is available in repository.

If you did not get any conflict but get some message saying that no package will be upgraded (or at least no package related to the &lt;code&gt;mp-fremantle-generic-pr&lt;/code&gt; metapackage), then try:
 apt-get dist-upgrade
and see if you get something like this:
&lt;pre&gt;
# apt-get dist-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be REMOVED:
  package-1 package-2 package-3
...
After this operation, 4620kB disk space will be freed.
Do you want to continue [Y/n]?
&lt;/pre&gt;
If that is the case then there you have the conflicting packages you will have to manually remove before trying again with the Application Manager, in case you do not want (and you '''should not''') continue with the &lt;code&gt;apt-get dist-upgrade&lt;/code&gt; command.

Both &lt;code&gt;apt-get update&lt;/code&gt; and &lt;code&gt;apt-get dist-upgrade&lt;/code&gt; might not show any conflicting packages but still the Application Manager refuses to install the update.

=== Possible conflicting packages ===

* libqt4-test
* libqt4-phonon
* libqt4-webkit
* libgles1-sgx-img (possibly used by brainparty, gltron or tuxracer, [http://talk.maemo.org/showthread.php?p=850743 ref])
* hildon-home-dbg (unconfirmed)
* battery-eye
* ioquake3

[[Category:Firmware update]]
[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Canola</title>
    <id>4112</id>
    <revision>
      <id>40417</id>
      <timestamp>2010-12-01T06:21:54Z</timestamp>
      <contributor>
        <username>kdunn926</username>
        <id>3676</id>
      </contributor>
      <comment>/* Current Issues */</comment>
      <text xml:space="preserve">''This article is work in progress. Please help to improve it.''
{{wikify|1=http://openbossa.indt.org/canola/}}

This page should contain relevant information regarding Canola2 for maemo4 and maemo5. The [http://openbossa.indt.org/canola/ &quot;official&quot;] website seems to be very outdated so we should collect any relevant information in &quot;our&quot; community wiki.

Bringing Canola to maemo5 and meego also is a [http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/maemo/t127230760962 Google Summer of Code project in 2010]. Please have a look into the GSoC-developers [http://andrei1089.blogspot.com/2010/05/gsoc-2010-porting-canola-to-maemo-5-and.html announcements] too.

==Canola or Canola2?==
Canola2 was the last version released but most people simply talking about &quot;canola&quot;. Hence canola2 is an real open source project now it seems to be a good idea to clarify how to call the project in future exactly.

==Canola==
''Some words about the canola project history would be great here.''
===Project details===
*Main Developers: Eduardo Lima, Andrei Mirestean (GSoC)
*Mailing List (canola-devel): [https://garage.maemo.org/mailman/listinfo/canola-devel Info page] and [https://garage.maemo.org/pipermail/canola-devel/ web archive]
*Bug Tracker is [http://bugs.maemo.org bugs.maemo.org] and not the one at the garage page! A list of open bugs can be found here: [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;classification=Extras&amp;product=Canola&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= here]

===Current Issues===
*Source tree @ code.openbossa.org is unavailable (as of 27-Nov-2010)
*Core plugins using Etk (no longer supported - migrate to Elementary):
**notify/ui
**settings/media_library/ui
**settings/media_library/renderers
**settings/media_library/album_cover
**settings/ui/renderers
**settings/internet_media/ui
**widgets/modal

===canola plugins===
*[[GSoC 2009/Projects/Twitter Plugin And Twitpic Support For Canola|Twitter Plugin And Twitpic Support For Canola]]
*[[GSoC 2009/Projects/Picasa plugin for Canola|Picasa plugin for Canola]]
*[[GSoC 2009/Projects/BitTorrent plugin for Canola|BitTorrent plugin for Canola]]
*[[GSoC 2009/Projects/Remember The Milk plugin for Canola|Remember The Milk plugin for Canola]]
*[[GSoC 2009/Projects/IM Client For Canola|IM Client For Canola]]
*[http://maemo.org/packages/view/canola2-lastfm-plugin/ canola2-lastfm-plugin]
*[http://maemo.org/packages/view/canola2-upnp-plugin/ canola2-upnp-plugin] / [http://maemo.org/packages/view/python2.5-brisa-media-server-plugin-canola/ python2.5-brisa-media-server-plugin-canola]
*[http://maemo.org/packages/view/canola2-youtube-plugin/ canola2-youtube-plugin]

==canola themes==
*[http://maemo.org/packages/view/canola2-theme-deepblue/ Theme Deepblue]
*[http://maemo.org/packages/view/canola2-theme-flatblack/ Theme Flatblack]
*[http://maemo.org/packages/view/canola2-theme-flatred/ Theme Flatred]
*[http://maemo.org/packages/view/canola2-theme-graphite/ Theme Graphite]

==canola tuning==
* [http://maemo.org/packages/view/canola2-cleanup/ canola2-cleanup]
* [http://maemo.org/packages/view/canola2-tuning-plugin/ canola2-tuning-plugin]


==canola into the wild==

===Ubuntu===
* [http://ubuntu-tweak.com/source/canola-ppa/ Ubuntu-tweak ]
* [https://launchpad.net/~canola/+archive/ppa Canola on launchpad ]

[[Category:Software]][[Category:Media]][[Category:N900]][[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>Category:770</title>
    <id>4476</id>
    <revision>
      <id>39343</id>
      <timestamp>2010-10-04T13:55:41Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">Collection of web pages relevant to 770 owners (Maemo 3 and before).

[[Category:Devices]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Accepted</title>
    <id>609</id>
    <revision>
      <id>3179</id>
      <timestamp>2008-06-28T10:59:03Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>New page: [[Category:Tasks]]</comment>
      <text xml:space="preserve">[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Articles in need of expansion</title>
    <id>2767</id>
    <revision>
      <id>20526</id>
      <timestamp>2009-10-19T21:10:55Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <comment>New page: [[Category:Wiki]]</comment>
      <text xml:space="preserve">[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Articles marked for deletion</title>
    <id>848</id>
    <revision>
      <id>20527</id>
      <timestamp>2009-10-19T21:11:08Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <text xml:space="preserve">[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Beginners</title>
    <id>2883</id>
    <revision>
      <id>33768</id>
      <timestamp>2010-05-03T14:43:58Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify links</comment>
      <text xml:space="preserve">Welcome to the maemo.org wiki for beginners. The wiki category [[:Category:Users|Users]] is divided into two subcategories:
[[:Category:Beginners|Beginners]] (this page) and [[:Category:Power_users|Power users]]. This subcategory is targeted toward people who are new and those who don't want to tweak their devices. It is a supplement for the user manual that hopefully will help with little problems.

If you are looking for a basic description of Maemo and the Maemo community (maemo.org) and what it can do for you (and what you can do for it), see [[Maemo basics]]. If you would like a walk-through of the programs and features of your N900 device, [[Maemo5 101]] is the place to go next.

'''NO ARTICLES THAT REQUIRE TERMINAL USAGE ARE ALLOWED IN THIS CATEGORY'''

[[Category:Users]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Bluetooth</title>
    <id>1274</id>
    <revision>
      <id>20565</id>
      <timestamp>2009-10-19T22:32:31Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <text xml:space="preserve">Articles about Bluetooth accessories and Bluetooth connectivity.
[[Category:Connectivity]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Brainstorm</title>
    <id>2841</id>
    <revision>
      <id>29824</id>
      <timestamp>2010-02-19T11:02:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Community]]</comment>
      <text xml:space="preserve">Articles related to brainstorming.

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Bugzilla</title>
    <id>1297</id>
    <revision>
      <id>8013</id>
      <timestamp>2008-10-28T04:39:17Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <minor/>
      <comment>Categorization</comment>
      <text xml:space="preserve">http://bugs.maemo.org is maemo.org's bug tracker. It is where bugs about the website, Maemo, and certain 3rd party applications should be filed.


[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Calendar</title>
    <id>4050</id>
    <revision>
      <id>33825</id>
      <timestamp>2010-05-04T10:14:58Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <text xml:space="preserve">This page lists wiki pages containing information about calendar usage and tuning.
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Cellular</title>
    <id>1273</id>
    <revision>
      <id>7822</id>
      <timestamp>2008-10-20T23:24:24Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>New page: Articles relating to cellphones and cellular connectivity.   [[Category:Connectivity]]</comment>
      <text xml:space="preserve">Articles relating to cellphones and cellular connectivity.


[[Category:Connectivity]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Community</title>
    <id>24</id>
    <revision>
      <id>20552</id>
      <timestamp>2009-10-19T22:11:08Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <text xml:space="preserve">[[Category:Content]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Community Council</title>
    <id>2770</id>
    <revision>
      <id>20536</id>
      <timestamp>2009-10-19T21:45:55Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <comment>New page: [[Category:Community]]</comment>
      <text xml:space="preserve">[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Completed</title>
    <id>611</id>
    <revision>
      <id>3181</id>
      <timestamp>2008-06-28T10:59:51Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>New page: [[Category:Tasks]]</comment>
      <text xml:space="preserve">[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Connectivity</title>
    <id>1269</id>
    <revision>
      <id>20564</id>
      <timestamp>2009-10-19T22:32:03Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <text xml:space="preserve">Articles relating to connectivity and networking.
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Content</title>
    <id>2769</id>
    <revision>
      <id>20535</id>
      <timestamp>2009-10-19T21:43:58Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <comment>Initial page, mother of all categories</comment>
      <text xml:space="preserve">This is the  top level of the maemo wiki's category system. The subcategories contain various types of &quot;encyclopaedic&quot; content (e.g. articles and glossaries about maemo), content that assists with the navigation of the wiki (e.g. indexes and portals), as well as pages related to the maintenance of maemo.org (site contents, bugzilla, wiki administration etc.)</text>
    </revision>
  </page>
  <page>
    <title>Category:Design</title>
    <id>2731</id>
    <revision>
      <id>46016</id>
      <timestamp>2011-12-15T06:22:38Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45986 by [[Special:Contributions/141.51.76.28|141.51.76.28]] ([[User talk:141.51.76.28|Talk]]) vandalism/spam</comment>
      <text xml:space="preserve">Topics about Themes and UI Design.

[[Category:Content]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Development</title>
    <id>23</id>
    <revision>
      <id>29825</id>
      <timestamp>2010-02-19T11:03:31Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>category and link</comment>
      <text xml:space="preserve">Developer documentation for maemo can be found in several places.

* Starting with [[Open development/Maemo roadmap/Fremantle|Maemo 5]] ([[Nokia N900|N900]]), all official support docs are published in the wiki in the [[documentation]] section, or in [http://forum.nokia.com/maemo Forum Nokia].

* For the older versions such as OS2008 and OS2007 various documentation can still be found in this wiki and on the maemo.org site itself in the [http://maemo.org/development/ development section]:
** [http://maemo.org/development/documentation/tutorials/maemo_4-0_tutorial.html Maemo 4.x tutorial]
** [http://maemo.org/maemo_release_documentation/maemo4.1.x/node13.html Porting your application to Maemo]
** [http://maemo.org/development/tools/ Maemo development tools]
** [http://maemo.org/development/training/ Maemo training material]

A lot of  additional material can be found on [http://library.gnome.org GNOME's developer site]. That link contains reference material and tutorials for GNOME libraries.

In the category &quot;Development&quot;, this wiki includes additional topics not covered by the above documents.

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Devices</title>
    <id>2771</id>
    <revision>
      <id>20538</id>
      <timestamp>2009-10-19T21:50:22Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <comment>New page: [[Category:Hardware]]</comment>
      <text xml:space="preserve">[[Category:Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Devtools</title>
    <id>3584</id>
    <revision>
      <id>29246</id>
      <timestamp>2010-02-12T11:02:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>new category</comment>
      <text xml:space="preserve">Development tools for Maemo, available from repository.maemo.org.

[[Category:Development]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Diablo</title>
    <id>3570</id>
    <revision>
      <id>28796</id>
      <timestamp>2010-02-10T11:25:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>move to [[Category:OS2008]]</comment>
      <text xml:space="preserve">[[Category:OS2008]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Documentation</title>
    <id>2850</id>
    <revision>
      <id>21057</id>
      <timestamp>2009-10-26T09:44:43Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <comment>[[Category:Content]]</comment>
      <text xml:space="preserve">[[Category:Content]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Eclipse</title>
    <id>2852</id>
    <revision>
      <id>21055</id>
      <timestamp>2009-10-26T09:43:47Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <comment>[[Category:Development]]</comment>
      <text xml:space="preserve">[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Events</title>
    <id>137</id>
    <revision>
      <id>904</id>
      <timestamp>2008-06-05T16:07:38Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">The maemo community regularly tries to meet in the flesh to talk about linux, tablets, software development and more.

The first maemo meeting was in [[LinuxTag 2008]].

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Firmware update</title>
    <id>3615</id>
    <revision>
      <id>30450</id>
      <timestamp>2010-03-03T15:46:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Documentation]]</comment>
      <text xml:space="preserve">Firmware update resources, such as changelogs and troubleshooting information.

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Fremantle</title>
    <id>1992</id>
    <revision>
      <id>30453</id>
      <timestamp>2010-03-03T16:27:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>[[Category:Operating System]] to [[Category:Operating system]]</comment>
      <text xml:space="preserve">[[Category:Operating system]]</text>
    </revision>
  </page>
  <page>
    <title>Category:GPS</title>
    <id>3548</id>
    <revision>
      <id>38514</id>
      <timestamp>2010-09-13T10:44:37Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">This category includes everything related to Global Positioning System in Maemo devices.

[[Category:Hardware]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Games</title>
    <id>3418</id>
    <revision>
      <id>26894</id>
      <timestamp>2010-01-19T04:01:18Z</timestamp>
      <contributor>
        <username>hypoxic</username>
        <id>1618</id>
      </contributor>
      <text xml:space="preserve">
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Google Summer of Code</title>
    <id>3583</id>
    <revision>
      <id>29209</id>
      <timestamp>2010-02-12T09:55:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>new category</comment>
      <text xml:space="preserve">Pages relating to Google Summer of Code.

[[Category:Community]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Hardware</title>
    <id>2774</id>
    <revision>
      <id>20549</id>
      <timestamp>2009-10-19T22:07:58Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <comment>New page: [[Category:Content]]</comment>
      <text xml:space="preserve">[[Category:Content]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Harmattan</title>
    <id>3693</id>
    <revision>
      <id>30457</id>
      <timestamp>2010-03-03T16:31:32Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Operating system]]</comment>
      <text xml:space="preserve">[[Category:Operating system]]</text>
    </revision>
  </page>
  <page>
    <title>Category:HowTo</title>
    <id>14</id>
    <revision>
      <id>21215</id>
      <timestamp>2009-10-29T13:03:06Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <text xml:space="preserve">General HowTos
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Imported from LaTeX via HTML</title>
    <id>1483</id>
    <revision>
      <id>29826</id>
      <timestamp>2010-02-19T11:07:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Wiki]]</comment>
      <text xml:space="preserve">Articles in this category were originally imported from HTML generated by latex2html with the help of HTML::WikiConvert -tool. Because of the limitations of them, some formatting might not be displayed as it should.

[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Internationalization</title>
    <id>2776</id>
    <revision>
      <id>20557</id>
      <timestamp>2009-10-19T22:27:40Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <comment>New page: [[Category:Development]]</comment>
      <text xml:space="preserve">[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Legacy documentation</title>
    <id>3582</id>
    <revision>
      <id>29191</id>
      <timestamp>2010-02-12T09:38:16Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Out of date]] from [[Category:Documentation]]</comment>
      <text xml:space="preserve">[[Category:Out of date]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Localization</title>
    <id>5244</id>
    <revision>
      <id>49622</id>
      <timestamp>2012-09-11T00:03:54Z</timestamp>
      <contributor>
        <username>martink</username>
        <id>3162</id>
      </contributor>
      <text xml:space="preserve">Category for all Localization related articles.</text>
    </revision>
  </page>
  <page>
    <title>Category:MADDE</title>
    <id>3974</id>
    <revision>
      <id>33254</id>
      <timestamp>2010-04-21T14:50:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>[[Category:Development]]</comment>
      <text xml:space="preserve">Articles relating to the Maemo Application Development and Debugging Environment, MADDE.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Maemo-Barcelona Long Weekend</title>
    <id>3575</id>
    <revision>
      <id>29095</id>
      <timestamp>2010-02-11T16:21:55Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>new category for Maemo-Barcelona_Long_Weekend</comment>
      <text xml:space="preserve">[[Category:Events]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Maemo.org</title>
    <id>1294</id>
    <revision>
      <id>20551</id>
      <timestamp>2009-10-19T22:10:28Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <text xml:space="preserve">{{lowercase}}
Maemo.org is the official community website. The following articles dealing maemo.org and maemo.org-related issues (website development, services, documentation, accounts / profiles / karma)
[[Category:Content]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Maemo Italian Long Weekend</title>
    <id>3579</id>
    <revision>
      <id>29153</id>
      <timestamp>2010-02-11T17:01:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>new category for [[Category:Maemo Italian Long Weekend]]</comment>
      <text xml:space="preserve">[[Category:Events]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Maemo Summit 2008</title>
    <id>3576</id>
    <revision>
      <id>29108</id>
      <timestamp>2010-02-11T16:31:38Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>new [[Category:Maemo Summit 2008]]</comment>
      <text xml:space="preserve">[[Category:Events]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Maemo Summit 2009</title>
    <id>3577</id>
    <revision>
      <id>29116</id>
      <timestamp>2010-02-11T16:38:05Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>new category for Maemo SUmmit 2009 content</comment>
      <text xml:space="preserve">[[Category:Events]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Media</title>
    <id>1272</id>
    <revision>
      <id>21214</id>
      <timestamp>2009-10-29T13:02:46Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <text xml:space="preserve">Multimedia related articles. Video streaming, video encoding, music, pictures, etc.
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Mer</title>
    <id>1781</id>
    <revision>
      <id>38874</id>
      <timestamp>2010-09-22T09:29:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Out of date]]</comment>
      <text xml:space="preserve">Alphabetic list of all wiki pages which contain Mer stuff.

[[Category:Operating system]]
[[Category:Out of date]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Midgard wiki</title>
    <id>147</id>
    <revision>
      <id>20525</id>
      <timestamp>2009-10-19T21:10:28Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <text xml:space="preserve">This category is kind of a staging area - it contains all pages migrated from the Midgard wiki at https://maemo.org/community/wiki but not yet reviewed for content, syntax and editorial standards.

Once pages are reviewed, categorized and edited, they should be removed from this category.
[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Miniature</title>
    <id>3419</id>
    <revision>
      <id>26890</id>
      <timestamp>2010-01-19T03:54:16Z</timestamp>
      <contributor>
        <username>hypoxic</username>
        <id>1618</id>
      </contributor>
      <comment>New page: [[Category:Games]]</comment>
      <text xml:space="preserve">[[Category:Games]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Mobile Dev Camp 2010</title>
    <id>3617</id>
    <revision>
      <id>29713</id>
      <timestamp>2010-02-18T10:50:32Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>New page: [[Category:Events]]</comment>
      <text xml:space="preserve">[[Category:Events]]</text>
    </revision>
  </page>
  <page>
    <title>Category:ModRana</title>
    <id>5243</id>
    <revision>
      <id>49616</id>
      <timestamp>2012-09-10T23:58:54Z</timestamp>
      <contributor>
        <username>martink</username>
        <id>3162</id>
      </contributor>
      <comment>New page: This is a category for all modRana related articles.</comment>
      <text xml:space="preserve">This is a category for all modRana related articles.</text>
    </revision>
  </page>
  <page>
    <title>Category:Mozilla Maemo Danish Weekend</title>
    <id>3578</id>
    <revision>
      <id>29145</id>
      <timestamp>2010-02-11T16:48:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add to [[Category:Events]]</comment>
      <text xml:space="preserve">[[Category:Events]]</text>
    </revision>
  </page>
  <page>
    <title>Category:N8x0</title>
    <id>3213</id>
    <revision>
      <id>24913</id>
      <timestamp>2009-12-22T01:24:41Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <comment>New page: [[Category:devices]]</comment>
      <text xml:space="preserve">[[Category:devices]]</text>
    </revision>
  </page>
  <page>
    <title>Category:N9</title>
    <id>5081</id>
    <revision>
      <id>50548</id>
      <timestamp>2012-10-29T01:31:35Z</timestamp>
      <contributor>
        <username>wikiwide</username>
        <id>3163</id>
      </contributor>
      <minor/>
      <comment>[[Category:Devices]]</comment>
      <text xml:space="preserve">[[Category:Devices]]</text>
    </revision>
  </page>
  <page>
    <title>Category:N900</title>
    <id>3194</id>
    <revision>
      <id>24669</id>
      <timestamp>2009-12-15T22:27:17Z</timestamp>
      <contributor>
        <username>cas07</username>
        <id>1601</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">List of articles written pertaining to the Nokia N900:

[[Category:Devices]]</text>
    </revision>
  </page>
  <page>
    <title>Category:N900 Additional Hardware</title>
    <id>3628</id>
    <revision>
      <id>29970</id>
      <timestamp>2010-02-22T12:44:04Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <text xml:space="preserve">This category lists hardware that could be potentially added to the n900 by some means.

Specifically, items such as sensors, other interfaces, or any device that may require some degree of modification to function.

The related category N900 Hardware is for documentation of existing devices or interfaces of the n900.

[[category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>Category:N900 Hardware</title>
    <id>3237</id>
    <revision>
      <id>35791</id>
      <timestamp>2010-06-14T13:25:55Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add [[Category:Hardware]]</comment>
      <text xml:space="preserve">This is a category listing pages detailing the hardware of the [[Nokia N900|N900]].
Including speculation on detailed hardware design, possible useful functionality not exposed by current software and hardware limitations that cannot be overcome.

[[Category:N900]]
[[Category:Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>Category:N950</title>
    <id>5292</id>
    <revision>
      <id>50550</id>
      <timestamp>2012-10-29T01:32:21Z</timestamp>
      <contributor>
        <username>wikiwide</username>
        <id>3163</id>
      </contributor>
      <minor/>
      <comment>++[[Category:Devices]]</comment>
      <text xml:space="preserve">[[Category:Devices]]</text>
    </revision>
  </page>
  <page>
    <title>Category:N950 Hardware</title>
    <id>4904</id>
    <revision>
      <id>50552</id>
      <timestamp>2012-10-29T01:34:52Z</timestamp>
      <contributor>
        <username>wikiwide</username>
        <id>3163</id>
      </contributor>
      <minor/>
      <comment>++[[Category:N950]]</comment>
      <text xml:space="preserve">This is a category detailing the hardware of the [[Nokia N950|N950]]

Many of the pages in this category will also apply to the N9.

Missing pages: (with prefix &quot;N950 Hardware&quot;)

(hw comments based on kernel drivers' names found in rootfs)
*CPU
*Audio Codec
*Autofocus
  AD58xx A/D converter driver chip
*Battery Charger
*Bluetooth
*Bus I2c
*Charge Meter
*Chipset
*Flash Torch
  white LED flash driver for 1x720 mA or 2x500 mA  AS3645A http://www.austriamicrosystems.com/eng/Products/Lighting-Management/Camera-Flash-LED-Drivers/AS3645A
*GPS
  using a bcm4751 http://www.broadcom.com/products/GPS/GPS-Silicon-Solutions/BCM4751
*Hacking
*Hacking/serial dump
*LED
  using LP5523 as N900
*Phone
  audio via cmt-speech.ko ISS driver like in N900
  control via phonet (incl f_bus?)
*Power Consumption
*Power management
*Schematic
*Subsystems
*Wifi BT FMT/RX
  using a wl1271 b/g/n [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;navigationId=12762&amp;contentId=29993&amp;DCMP=wtbu_connectivity&amp;HQS=Other+OT+wilink6] ; JoikuSpot for AP-mode
*(NearFieldCommunication - probably in anticipation on N9)
  NXP PN544 http://www.nxp.com/infocus/topics/google_nfc/
*LCD panel
  touchpanel: &lt;s&gt;http://focus.ti.com/docs/prod/folders/print/ads7846.html&lt;/s&gt;
  /sys/devices/platform/i2c_omap.2/i2c-2/2-004b/driver -&gt; ../../../../../bus/i2c/drivers/atmel_mxt
  seems to suggest it's AT42QT602240/ATMXT224 http://www.atmel.com/dyn/products/product_card.asp?category_id=170&amp;family_id=701&amp;subfamily_id=2105&amp;part_id=4620
*Software BME
*VGA camera
*accelerometer
  lis3lv02 as in N900
*compass
  ak8974 http://cfile10.uf.tistory.com/attach/20418A044C7330720F6435 3axis compass chip (background article: http://memsblog.wordpress.com/2009/12/03/nokia-beats-apple-to-compass-in-phone/ ) driver: http://lkml.org/lkml/2010/8/27/182
*camera sensor
*headphone amplifier
*light meter
   Avago APDS990X combined ALS and proximity sensor https://lkml.org/lkml/2010/10/11/102
*USB

[[Category:N950]]</text>
    </revision>
  </page>
  <page>
    <title>Category:N9 Hardware</title>
    <id>4916</id>
    <revision>
      <id>50553</id>
      <timestamp>2012-10-29T01:35:18Z</timestamp>
      <contributor>
        <username>wikiwide</username>
        <id>3163</id>
      </contributor>
      <minor/>
      <comment>++[[Category:N9]]</comment>
      <text xml:space="preserve">This page is to detail hardware of the N9.
Much hardware is shared by the [[N950]], though some differs.

[[Category:N9]]</text>
    </revision>
  </page>
  <page>
    <title>Category:OS2008</title>
    <id>2777</id>
    <revision>
      <id>30455</id>
      <timestamp>2010-03-03T16:29:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>[[Category:Operating System]] to [[Category:Operating system]]</comment>
      <text xml:space="preserve">OS2008 denotes the Maemo 4.x releases which primarily serve the [[Nokia N810]] internet tablet. [http://www.internettablettalk.com/tablet101/ ITT has a good rundown on OS2008].

This page lists all Maemo Wiki articles categorised as relevant to OS2008.

[[Category:Operating system]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Ongoing</title>
    <id>610</id>
    <revision>
      <id>28081</id>
      <timestamp>2010-02-02T11:05:58Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">This page lists tasks which are ongoing. Some of these tasks could perhaps be reclassified &quot;Business as usual&quot;.


[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Category:OpenSuse build service</title>
    <id>4283</id>
    <revision>
      <id>36069</id>
      <timestamp>2010-06-18T13:31:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>New page: [[Category:Development]]</comment>
      <text xml:space="preserve">[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Operating system</title>
    <id>3692</id>
    <revision>
      <id>30456</id>
      <timestamp>2010-03-03T16:31:18Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Content]]</comment>
      <text xml:space="preserve">[[Category:Content]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Out of date</title>
    <id>1991</id>
    <revision>
      <id>49256</id>
      <timestamp>2012-08-28T10:59:41Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Category:Out of date]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">List of &quot;out of date&quot; articles. Feel free to update them!

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Packaging</title>
    <id>3563</id>
    <revision>
      <id>28722</id>
      <timestamp>2010-02-09T12:58:17Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>Development category</comment>
      <text xml:space="preserve">Packaging-related documentation for developers.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Power users</title>
    <id>2884</id>
    <revision>
      <id>33022</id>
      <timestamp>2010-04-19T10:14:58Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify links</comment>
      <text xml:space="preserve">Welcome to the maemo.org wiki for Power Users. 

The wiki category [[:Category:Users|Users]] is divided into two subcategories:
[[:Category:Power users|Power users]] (this page) and [[:Category:Beginners|Beginners]]. 

'''Disclaimer:'''
''The power users category is targeted at advanced and adventurous users who are willing to try interesting, but potentially dangerous things.''

[[Category:Users]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Proposed</title>
    <id>608</id>
    <revision>
      <id>3178</id>
      <timestamp>2008-06-28T10:58:36Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>New page: [[Category:Tasks]]</comment>
      <text xml:space="preserve">[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Python</title>
    <id>2790</id>
    <revision>
      <id>35903</id>
      <timestamp>2010-06-16T14:29:03Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <minor/>
      <comment>Gone</comment>
      <text xml:space="preserve">Articles about Python development for Maemo.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Qt</title>
    <id>1303</id>
    <revision>
      <id>20559</id>
      <timestamp>2009-10-19T22:28:51Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <text xml:space="preserve">Articles about the Qt toolkit for Maemo.
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Quality Assurance</title>
    <id>3435</id>
    <revision>
      <id>33949</id>
      <timestamp>2010-05-06T12:12:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">This list contains QA related wiki pages.

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Scratchbox</title>
    <id>2839</id>
    <revision>
      <id>20984</id>
      <timestamp>2009-10-25T21:56:03Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <minor/>
      <comment>[[Category:Development]]</comment>
      <text xml:space="preserve">[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Software</title>
    <id>2773</id>
    <revision>
      <id>28807</id>
      <timestamp>2010-02-10T14:35:24Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>stop including [[Software]]</comment>
      <text xml:space="preserve">A number of projects which are available for Maemo have wiki pages describing their features - other projects even use the wiki for their main web pages. This page is a catalog of those pages.

[[Category:Content]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Sprints</title>
    <id>1328</id>
    <revision>
      <id>33791</id>
      <timestamp>2010-05-04T09:23:04Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>direct link</comment>
      <text xml:space="preserve">The [[maemo.org sprints]] are listed here.
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Talk</title>
    <id>2813</id>
    <revision>
      <id>20804</id>
      <timestamp>2009-10-22T08:34:47Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <comment>New page: [[Category:Maemo.org]]</comment>
      <text xml:space="preserve">[[Category:Maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Tasks</title>
    <id>669</id>
    <revision>
      <id>20528</id>
      <timestamp>2009-10-19T21:16:30Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <text xml:space="preserve">A lot of the work done in http://maemo.org is organized around tasks that are documented in wiki pages. The usual workflow of a task is to start as a [[:Category:Proposed|proposal]], then be [[:Category:Accepted|accepted]] in the backlog and finally be [[:Category:Ongoing|committed]] to a development sprint. Eventually they get [[:Category:Completed|completed]]

'''All the tasks welcome your contributions and feedback at any time!'''
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Template</title>
    <id>142</id>
    <revision>
      <id>20523</id>
      <timestamp>2009-10-19T21:09:21Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <text xml:space="preserve">This category contains all templates.
[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Themes</title>
    <id>3785</id>
    <revision>
      <id>33482</id>
      <timestamp>2010-04-26T13:23:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Design]]</comment>
      <text xml:space="preserve">This category includes everything related to Themes and Wallpapers.

[[Category:Design]]</text>
    </revision>
  </page>
  <page>
    <title>Category:USB</title>
    <id>1271</id>
    <revision>
      <id>20558</id>
      <timestamp>2009-10-19T22:28:36Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <text xml:space="preserve">Articles relating to USB.
[[Category:Connectivity]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Users</title>
    <id>171</id>
    <revision>
      <id>22974</id>
      <timestamp>2009-11-19T05:28:26Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <text xml:space="preserve">This category contains all information for intermediate and advanced users of the Nokia Maemo devices.

Typcial topics are how-tos on installing more software, configuring your applications to add new services or anything else which involves getting the most out of your device without hacking or compiling code.

Users -category will be split to two sections: [http://wiki.maemo.org/Category:Beginners Beginners] and [http://wiki.maemo.org/Category:Power_users Power users].

If you dont know which category a page you created/modified should belong, you can use ''Users'' - category for it.

{| class=&quot;wikitable&quot; border=&quot;1&quot;
|-
!width=&quot;200&quot;|Beginners:
!width=&quot;200&quot;|Power users:
|-
|{{Beginners}}
{{More topics|Beginners}}
|{{Power users}}
{{More topics|Power users}}
|}

[[Category:Content]]</text>
    </revision>
  </page>
  <page>
    <title>Category:VertSMS</title>
    <id>4061</id>
    <revision>
      <id>33924</id>
      <timestamp>2010-05-06T07:26:17Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>new category</comment>
      <text xml:space="preserve">Pages relating to the vertical SMS application VertSMS.

[[Category:Software]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Web</title>
    <id>2778</id>
    <revision>
      <id>21216</id>
      <timestamp>2009-10-29T13:03:23Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <text xml:space="preserve">[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Category:WiFi</title>
    <id>1270</id>
    <revision>
      <id>7806</id>
      <timestamp>2008-10-20T23:11:35Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>New page: Connectivity articles relating to WiFi   [[Category:Connectivity]]</comment>
      <text xml:space="preserve">Connectivity articles relating to WiFi


[[Category:Connectivity]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Wiki</title>
    <id>2768</id>
    <revision>
      <id>20529</id>
      <timestamp>2009-10-19T21:17:38Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <comment>New page: [[Category:maemo.org]]</comment>
      <text xml:space="preserve">[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Wiki page of the day</title>
    <id>655</id>
    <revision>
      <id>20524</id>
      <timestamp>2009-10-19T21:10:11Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <text xml:space="preserve">Throughout the month of July 2008, we will be improving one wiki page per day on average, with the goal of having the wiki in tip top shape by the end of the [[100Days|100 days sprints]].

This category will collect all the pages which have previously been Wiki pages of the day.
[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>Category:Wikify</title>
    <id>4063</id>
    <revision>
      <id>34320</id>
      <timestamp>2010-05-12T20:45:46Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">Pages listed in this category should have external documentation copied to them. See [[Wiki gardeners#Planting]] for more details.

[[Category:Talk]]
[[Category:wiki]]</text>
    </revision>
  </page>
  <page>
    <title>Category talk:Articles marked for deletion</title>
    <id>867</id>
    <revision>
      <id>5116</id>
      <timestamp>2008-07-22T10:36:00Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>/* general guidelines */</comment>
      <text xml:space="preserve">== general guidelines ==

I had written this line

this page should contain some guidelines for authors and censors, so that it is clear what is the kind of content that will be marked for deletion

on the page Category:Articles marked for deletion and it was removed and I was asked to put discussion about deletion in the Talk, that is: here.  obviously each deletion has to be discussed, but I'm looking for some general guidelines that will help me write things which will '''not''' be removed from this wiki.  what is accepted and what can be expected to be marked for removal.  where can I find these guidelines?  I thougth Category:Articles marked for deletion would be the best place for it, since I will be pointed to this page if my page is marked for deletion.

by the way, is it possible, when adding a comment, to have it automatically signed?  [[user:mfrasca]]
:No, sign with —&lt;nowiki&gt;~~~~&lt;/nowiki&gt;. This is a very new wiki, deletion guidelines don't develop overnight. At the moment, it would be a consensus issue. So, if somebody proposes deleting a page and most of the people who respond agree with that proposal, then the page is deleted. With your case in particular, the two biggest issues are style and formatting (no capitalization? C'mon now. . . .), and the suitability of the content. —[[User:generalantilles|GeneralAntilles]] 10:36, 22 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Category talk:Power users</title>
    <id>3404</id>
    <revision>
      <id>26725</id>
      <timestamp>2010-01-16T18:29:16Z</timestamp>
      <contributor>
        <username>cas07</username>
        <id>1601</id>
      </contributor>
      <comment>Category rename?</comment>
      <text xml:space="preserve">I notice this category is not named properly, I think it should be Power User and not Power users. Initial capitalising all words and removing the plurality. Is there a way to makes this change to all pages? --[[User:cas07|cas07]] 18:29, 16 January 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Category talk:Users</title>
    <id>2986</id>
    <revision>
      <id>47468</id>
      <timestamp>2012-05-10T12:32:57Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/83.21.235.84|83.21.235.84]] ([[User talk:83.21.235.84|Talk]]); changed back to last version by [[User:Mrsellout|Mrsellout]]</comment>
      <text xml:space="preserve">I need opinions with this categorization. is users and its subclasses beginners &amp; power users a logical way to divide articles?!? --[[User:ossipena|ossipena]] 07:15, 10 November 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Changing the NAND filesystem</title>
    <id>4838</id>
    <revision>
      <id>42996</id>
      <timestamp>2011-04-10T17:54:23Z</timestamp>
      <contributor>
        <username>idont</username>
        <id>3617</id>
      </contributor>
      <comment>[[Changing the NAND filesystem]] moved to [[Changing the eMMC filesystem]]: Used the wrong term</comment>
      <text xml:space="preserve">#REDIRECT [[Changing the eMMC filesystem]]</text>
    </revision>
  </page>
  <page>
    <title>Changing the eMMC filesystem</title>
    <id>4836</id>
    <revision>
      <id>49914</id>
      <timestamp>2012-09-26T23:33:20Z</timestamp>
      <contributor>
        <username>estel</username>
        <id>4426</id>
      </contributor>
      <comment>Included info about modification needed, if using latest CSSU.</comment>
      <text xml:space="preserve">As with most computers, the speed of the N900's internal storage often poses a bottleneck, slowing down the device during heavy reads/writes. Changing the filesystem can mitigate the impact of this.

By choosing an appropriate filesystem for the content of your disk, you are able to speed things up. Vice versa, a bad filesystem choice can negatively impact performance. A different reason to switch filesystems besides performance reasons can be because of the feature set offered by different filesystems. For example, ext3 is considered mostly as a very stable filesystem while Reiser4 offers transparent compression.

Each filesystem got its own pros and cons. There is no 'one size fits all' type of filesystem; only filesystems each with their own use-cases. Therefore: do some extensive research before deciding to change your filesystem!

This wiki page is focused on changing the filesystem of the &lt;code&gt;/home&lt;/code&gt; partition. 

Prerequisites:
*The kernel you're running should support the filesystem you want to use. Either use [[Kernel Power|kernel-power]] or compile a kernel yourself.
*Willingness to mess with Maemo's boot process (reflash risk!)

== How to do it ==
Basically, you need to move &lt;code&gt;/home&lt;/code&gt; to a temporary location, reformat its original partition with the filesystem of your choice, copy &lt;code&gt;/home&lt;/code&gt; back and finally edit &lt;code&gt;/etc/event.d/rcS-late&lt;/code&gt;. This can be a challenge as Maemo gets into a reboot loop when &lt;code&gt;/home&lt;/code&gt; can't be mounted. Back up all your data!

=== Solution #1: Do everything on-device ===
This solution is based on Solution #8 in [[Repartitioning_the_flash]].

&lt;ol&gt;
&lt;li&gt;
Move &lt;code&gt;/home&lt;/code&gt; as described in Solution #8 in [[Repartitioning_the_flash]]. Follow the described steps strictly until you reach the command which would actually repartition the flash (the sfdisk command). You don't need to follow any other steps from the mentioned solution from now onwards.
&lt;/li&gt;
&lt;li&gt;
Assuming you've successfully moved &lt;code&gt;/home&lt;/code&gt; (e.g. you got a fully booted phone with &lt;code&gt;/home&lt;/code&gt; on a different partition), format &lt;code&gt;/home&lt;/code&gt; its original partition to your filesystem of choice and mount it. For example:
&lt;pre&gt;
mkfs.ext4 /dev/mmcblk0p2
mount -t ext4 -o rw,noatime,commit=1,data=writeback /dev/mmcblk0p2 /mnt
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Copy your &lt;code&gt;/home&lt;/code&gt; back to (now its reformatted) original partition:
&lt;pre&gt;
cp -a /home/* /mnt
&lt;/pre&gt;
Don't forget to unmount &lt;code&gt;/home/user/MyDocs&lt;/code&gt; prior to copying!
&lt;/li&gt;
&lt;li&gt;
Now you should edit &lt;code&gt;/etc/event.d/rcS-late&lt;/code&gt; to make Maemo use &lt;code&gt;/home&lt;/code&gt; its original partition again and accept its new filesystem type. 
&lt;ol&gt;
&lt;li&gt;
''Making Maemo use &lt;code&gt;/home&lt;/code&gt; its original partition again.''

In step 1, you've added two lines:
&lt;pre&gt;
echo &quot;/dev/mmcblk1p1 /home ext3 rw,noatime,errors=continue,commit=1,data=writeback 0 0&quot; &gt;&gt; $tmp_fstab
echo &quot;/home/opt /opt none bind&quot; &gt;&gt; $tmp_fstab

&lt;/pre&gt;
to &lt;code&gt;/etc/event.d/rcS-late&lt;/code&gt;. For ext4 (or any ext), remove both lines.

For other filesystems, remove only second line (containing /opt) and modify first one, to include appropriate mount options for filesystem of Your choose: 
&lt;pre&gt;
#Reiser4 example
echo &quot;/dev/mmcblk0p2 /home reiser4 rw,noatime 0 0&quot; &gt;&gt; $tmp_fstab
&lt;/pre&gt;
Make sure you add no invalid mount options! Mount failure results in a reboot-loop. You can test the mount options by trying to mount the partition manually prior to making it permanent.
&lt;/li&gt;
&lt;li&gt;
''Making Maemo accept the new filesystem type.''

Line no. 12, 17, 22, 23 and 25 of rcS-late got &quot;ext3&quot; hard-coded in it (line 9 contains ext3 in comment, but this don't affect funcionality of script - You can change it if You want). We need to edit these lines to represent our new filesystem. 
Ext4 example:
&lt;pre&gt;
##Begin of snippet
script
    #mount /home; fix ext4 and retry mounting if 1st attempt fails
    mount_home ()
    {
    /bin/mount /home &amp;&amp; grep -q &quot;/home ext4 rw&quot; /proc/mounts
    if [ $? -eq 0 ]
    then
      return 0
    else
      grep -q &quot;/home ext4 ro&quot; /proc/mounts
      if [ $? -eq 0 ]
      then
        umount /home
      fi
      HOME_DEV=`grep &quot;/home ext4&quot; /etc/fstab | cut -d' ' -f1`
      fsck.ext4 -y $HOME_DEV &gt;&gt; /var/lib/fsck_ext4_home.log 2&gt;&amp;1
      sync
      /bin/mount /home &amp;&amp; grep -q &quot;/home ext4 rw&quot; /proc/mounts
      return $?
    fi
    }
##End of snippet
&lt;/pre&gt;
Make sure line 23 contains a valid fsck.X command. Try running the command with all its parameters manually before making it permanent.

File &lt;code&gt;/usr/lib/genfstab.awk&lt;/code&gt; also contain ext3 hardcoded in it (line 19 in vanilla Maemo, line 20 in latest CSSU-Testing). For switching to another ext filesystem (like ext4) change it to appropriate value.

&lt;code&gt;//Note for Geeks:&lt;/code&gt;
Original creator of this article didn't mention that You need to modify &lt;code&gt;/usr/lib/genfstab.awk&lt;/code&gt; - instead, he suggested to keep 1st line added to &lt;code&gt;/etc/event.d/rcS-late&lt;/code&gt;. This probably allowed to go around omitted modification of &lt;code&gt;/usr/lib/genfstab.awk&lt;/code&gt;, but approach proposed now is more accurate to native way how Maemo do it. Ho ever, i only tested it using ext4 filesystem - that have identical mount options (except stating that it's ext4) as ext3. I don't know if editing &lt;code&gt;/usr/lib/genfstab.awk&lt;/code&gt; will work with filesystems other than ext family (like reiser4), that's why I stated in instruction to modify - instead of delete - line in rcS-late, containing mount options for reiser4. The same apply for genfstab.awk - I stated it should be only modified for ext filesystem family. So, for reiser4 and other no ext filesystems, instructions remain same as made by original author.

If someone have experience with changing filesystem other to ext4 (or any ext), and/or like to experiment with setting genfstab.awk, please update this article with Your findings.
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
Reboot your phone. You're done now.
&lt;/li&gt;
&lt;/ol&gt;

=== Solution #2: Easier GUI solution, need another PC + linux live CD===

Coming soon - will write instructions based on use of gParted,Aptosid, or any other Linux liveCD and backupmenu (or backupmenu-multiboot). Inspired by main (GUI) solution in &quot;repartitioning the flash&quot; article.

== Some initial benchmarks ==
''Note from author: The benchmarks below are pretty limited, feel free to substitute them with more extended/reliable ones.''

How the benchmarks were performed: Reflashed &amp; repartitioned phone in offline mode, SSH over usb. Used script (first round out of five dismissed in the averaged result):
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
for run in `seq 1 5`
do
sync
echo 3 &gt; /proc/sys/vm/drop_caches
sleep 1
time sh -c &quot;cp [FILE/DIRECTORY] /mnt &amp;&amp; sync&quot;
done

df | grep /mnt
&lt;/source&gt;

The files were copied from &lt;code&gt;/dev/mmcblk0p1&lt;/code&gt; (FS: reiser4, LZO compression) to &lt;code&gt;/dev/mmcblk0p2&lt;/code&gt; (FS: depends on test)

Used ext3 options:
 mkfs.ext3 /dev/mmcblk0p2
 mount -t ext3 -o rw,noatime,errors=continue,commit=1,data=writeback /dev/mmcblk0p2 /mnt

Used ext4 options:
 mkfs.ext4 /dev/mmcblk0p2
 mount -t ext4 -o rw,noatime,errors=continue,commit=1,data=writeback /dev/mmcblk0p2 /mnt

Used reiser4 options:
 mkfs.reiser4 -o create=ccreg40,compress=lzo1,cluster=8K,formatting=smart /dev/mmcblk0p2
 mount -t reiser4 -o noatime /dev/mmcblk0p2 /mnt

Averaged values of the &quot;real time&quot; as reported by time
{| class=&quot;wikitable&quot;
! Filesystem
! linux-2.6.28.tar.bz2 @ 50.2MiB
! 500 (mostly text) files @ 4MiB
! 83 (mostly text) files @ 14.6MiB
|-
|Ext3|| 14.3725s || 7.205s || 7.1025s
|-
|Ext4|| 9.9725s || 7.115s || 6.1625s
|-
|Reiser4|| 10.015s || 5.6625s || 5.365s
|}

Space reported by df after each benchmark (in total 747264 1K blocks available)
{| class=&quot;wikitable&quot;
! Filesystem
! linux-2.6.28.tar.bz2 @ 50.2MiB
! 500 (mostly text) files @ 4MiB
! 83 (mostly text) files @ 14.6MiB
|-
|Ext3|| 68668 (9%) || 22748 (3%) || 32368 (4%)
|-
|Ext4|| 68592 (9%) || 22700 (3%) || 32292 (4%)
|-
|Reiser4|| 51568 (7%) || 2420 (0%) || 13500 (2%)
|}

Do note that both the stock Maemo kernel and kernel-power lack Reiser4 support; you'll have to compile a kernel with Reiser4 support yourself.

== Remarks about filesystems ==
''Please extend this text as you encounter stuff worthy to take note of.''
*Reiser4 has some problems with both cluster=8K and cluster=16K on the N900 (&quot;&lt;code&gt;Wrong level found in node&lt;/code&gt;&quot; warnings in dmesg). The parameters cluster=32K and cluster=64K (the default value) work without error. Use these values to prevent potential data loss.

The following options have been tested by creating a tarball of /home/opt (~400MiB), extracting it once mounted, removing the original tar and then repeating for a tarball of the SDK (~500MiB). Originally cluster=8K was attempted but a reboot produced the dreaded &lt;code&gt;Wrong level found in node&lt;/code&gt; error again so reverting to 32K

'''Take note of the fsck.reiser4 stage which should be executed before the first mount.''' It creates lost+found directory and inserts an entry for &quot;.&quot;, amongst other fixes.

 mkfs.reiser4 -y -o create=ccreg40,compress=lzo1,compressMode=ultim,cluster=32K,fibration=ext_3_fibre,formatting=smart /dev/mmcblkXpY
 fsck.reiser4 -y --build-fs /dev/mmcblkXpY
 mount -t reiser4 -o rw,noatime,nodiratime /dev/mmcblkXpY /path/to/mount

== Different filesystem in action ==
[[Image:screenshot_reiser4.png|Reiser4 in action]]

[[Category:N900]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Checkinstall on Maemo</title>
    <id>4690</id>
    <revision>
      <id>41773</id>
      <timestamp>2011-02-11T10:17:17Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize, wikify slightly</comment>
      <text xml:space="preserve">[http://www.asic-linux.com.mx/~izto/checkinstall/index.php checkinstall] is a tool which helps to create Debian packages. (It also could help to create RedHat's and Slackware's packages). Instead of typing &quot;make install&quot; user can just write &quot;checkinstall&quot; and build .deb package for a software.

Building Debian package, instead of just installing software to a prefix, has several advantages: 
* you may put the package into your own package repository and share with other people.
* you have advantages of package management, like ability to list package files, check which package installed a particular file, and, package manager won't allow to overwrite existing files, while &quot;make install&quot; does not care about this.

As far as I know, you cannot commit packages generated in this way into official Maemo repositories.

== Instructions ==

'''ATTENTION! ACHTUNG!'''
'''Doing things described in this manual is dangerous. Don't follow these instructions unless you are confident GNU/Linux user, have a backup of a running system and know how to reflash bricked phone.
'''

First, let's get the source:
&lt;pre&gt;
wget http://www.asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz
&lt;/pre&gt;
Untar it:
&lt;pre&gt;tar -jxvf checkinstall-1.6.2.tar.gz&lt;/pre&gt;
cd to the directory and modify Makefile:
&lt;pre&gt;
#PREFIX=/usr/local
PREFIX=/opt/checkinstall
&lt;/pre&gt;

Also, change the &lt;code&gt;Makefile&lt;/code&gt; in the &lt;code&gt;installwatch&lt;/code&gt; directory&quot;
&lt;pre&gt;
#PREFIX=/usr/local
PREFIX=/opt/checkinstall
&lt;/pre&gt;

Now you also need to install &lt;code&gt;gettext&lt;/code&gt;. For that, temporarily add the SDK repository to the custom apt list:
&lt;pre&gt;vi /etc/apt/sources.list.d/dev.list&lt;/pre&gt;
and add the line:
&lt;pre&gt;deb http://repository.maemo.org fremantle/sdk free non-free&lt;/pre&gt;
DO NOT UPGRADE YOUR SYSTEM WITH THIS CONFIG LINE ENABLED!
&lt;pre&gt;
apt-get update
apt-get install gettext
&lt;/pre&gt;
You also need to install &lt;code&gt;sed-gnu&lt;/code&gt;. It's in &lt;code&gt;fremantle/free&lt;/code&gt; repository
&lt;pre&gt;
apt-get install sed-gnu
&lt;/pre&gt;
The GNU sed binary is now located in &lt;code&gt;/usr/bin/gnu&lt;/code&gt;, so we need to have that directory in the path first, otherwise &lt;code&gt;/bin/sed&lt;/code&gt; from busybox will be executed
&lt;pre&gt;
export PATH=/usr/bin/gnu:$PATH
&lt;/pre&gt;
At the moment of successful compilation I also have in the system following packages with the &lt;code&gt;gnu&lt;/code&gt; ending:
&lt;pre&gt;
dpkg -l | grep gnu
ii  coreutils-gnu                                       8.4-2maemo1                      GNU core utilities
ii  diffutils-gnu                                       1:2.8.1-18maemo3                 File comparison utilities
ii  sed-gnu                                             4.2.1-6maemo5                    The GNU sed stream editor
ii  tar-gnu                                             1.22-2maemo5                     GNU version of the tar archiving utility
&lt;/pre&gt;

I also have GCC and GNU make installed. We will need bash; I always have it as my defailt shell:
&lt;pre&gt;
apt-get install bash3&lt;/pre&gt;
&lt;br&gt;
So, now it's time to type &quot;make&quot;
&lt;pre&gt;
make
for file in locale/checkinstall-*.po ; do \
	case ${file} in \
		locale/checkinstall-template.po)  ;; \
		*) \
			out=`echo $file | sed -s 's/po/mo/'` ; \
			msgfmt -o ${out} ${file} ; \
			if [ $? != 0 ] ; then \
				exit 1 ; \
			fi ; \
		;; \
	esac ; \
done	
make -C installwatch
make[1]: Entering directory `/media/mmc1/noch/src0/checkinstall-1.6.2/installwatch'
./create-localdecls
Checking truncate argument type... off_t
Checking readlinkat result type... ssize_t
Checking libc version... libc.so.6
Checking glibc subversion... gcc -Wall -c -D_GNU_SOURCE -DPIC -fPIC -D_REENTRANT -DVERSION=\&quot;0.7.0beta7\&quot; installwatch.c
ld -shared -o installwatch.so installwatch.o -ldl -lc
make[1]: Leaving directory `/media/mmc1/noch/src0/checkinstall-1.6.2/installwatch'
&lt;/pre&gt;

Now we can use checkinstall which we installed in the prefix:
&lt;pre&gt;
export PATH=/opt/checkinstall/bin:/opt/checkinstall/sbin:$PATH
&lt;/pre&gt;

We need &lt;code&gt;findutils-gnu&lt;/code&gt; for checkinstall to work.
&lt;pre&gt;
apt-get install findutils-gnu
&lt;/pre&gt;

In order to build a package well, you also need to install &lt;code&gt;debianutils&lt;/code&gt;. However, you cannot install &lt;code&gt;debianutils&lt;/code&gt;, because it conflicts with &lt;code&gt;busybox&lt;/code&gt;. This is a dirty hack I suggest to use:
&lt;pre&gt;
cp /var/lib/dpkg/status /var/lib/dpkg/status.bak
vi /var/lib/dpkg/status
&lt;/pre&gt;
Find in this file the &quot;busybox&quot; section.
&lt;pre&gt;
Package: busybox                                             
Status: install ok installed                                          
Priority: optional                                                  
Section: utils                                                       
Installed-Size: 500                                                      
Maintainer: Yauheni Kaliuta &lt;yauheni.kaliuta@nokia.com&gt;              
Architecture: armel                                             
Version: 3:1.10.2.legal-1osso30+0m5     
Replaces: ash, bsdutils, coreutils, debianutils, diff, findutils, grep, gzip, hostname, login, mktemp, mount, ncurses-bin, sed, sysvinit-utils, tar,
Provides: ash, awk, bsdutils, coreutils, debianutils, diff, editor, findutils, grep, gzip, hostname, login, mktemp, mount, ncurses-bin, sed, sysvini
Depends: libc6 (&gt;= 2.5.0-1), libgcc1 (&gt;= 1:4.2.1), busybox-symlinks-busybox (= 3:1.10.2.legal-1osso30+0m5)                             
Conflicts: ash, bsdutils, coreutils, debianutils, diff, findutils, grep, gzip, hostname, login, mktemp, mount, ncurses-bin, sed, sysvinit-utils, tar
Description: Tiny utilities for small and embedded systems
 BusyBox combines tiny versions of many common UNIX utilities into a single
 small executable. It provides minimalist replacements for the most common
 utilities you would usually find on your desktop system (i.e., ls, cp, mv,
 mount, tar, etc.). The utilities in BusyBox generally have fewer options than
 their full-featured GNU cousins; however, the options that are included
 provide the expected functionality and behave very much like their GNU
 counterparts.                                               
...
&lt;/pre&gt;
Remove &quot;debianutils&quot; from the Replaces and Conflicts sections.

Now let's change apt configuration in order to allow to overwrite busybox links:
&lt;pre&gt;
vi /etc/apt/apt.conf.d/23overwrite
&lt;/pre&gt;
This file did not exist.

Paste there following lines:
&lt;pre&gt;
APT {
             Get {
               Fix-Broken &quot;true&quot;;
             };
};
DPkg
{
  Options {&quot;--force-overwrite&quot;;}
}
&lt;/pre&gt;
Otherwise you will need to download package yourself, and install it with:
 dpkg --force-overwrite.

&lt;pre&gt;
apt-get install debianutils
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  debianutils
0 upgraded, 1 newly installed, 0 to remove and 21 not upgraded.
Need to get 55,3kB of archives.
After this operation, 279kB of additional disk space will be used.
Get:1 http://repository.maemo.org fremantle/free debianutils 2.30 [55,3kB]
Fetched 55,3kB in 0s (94,7kB/s)
Selecting previously deselected package debianutils.
(Reading database ... 44101 files and directories currently installed.)
Unpacking debianutils (from .../debianutils_2.30_armel.deb) ...
dpkg - warning, overriding problem because --force enabled:
 trying to overwrite `/bin/tempfile', which is also in package busybox
dpkg - warning, overriding problem because --force enabled:
 trying to overwrite `/bin/which', which is also in package busybox
dpkg - warning, overriding problem because --force enabled:
 trying to overwrite `/bin/run-parts', which is also in package busybox
dpkg - warning, overriding problem because --force enabled:
 trying to overwrite `/usr/bin/which', which is also in package busybox
Setting up debianutils (2.30) ...
/usr/bin/which: line 22: getopts: not found
/usr/bin/which: shift: line 23: Illegal number: -1
&lt;/pre&gt;

As you see, &lt;code&gt;/usr/bin/which&lt;/code&gt; does not work, because it cannot find getopts. However, &lt;code&gt;getopts&lt;/code&gt; is a bash command, so we can fix it by changing interpreter in the &lt;code&gt;/usr/bin/which&lt;/code&gt; script from &lt;code&gt;#!/bin/sh&lt;/code&gt; (which is a symlink to busybox) to &lt;code&gt;#!/bin/bash&lt;/code&gt;. Then, also change the interpreter in the following scripts
&lt;pre&gt;
/usr/bin/sensible-pager
/usr/bin/savelog
/usr/bin/sensible-browser
/usr/bin/sensible-editor
&lt;/pre&gt;

Now, type checkinstall:
&lt;pre&gt;
checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
           This software is released under the GNU GPL.

The checkinstallrc file was not found at:
/opt/checkinstall/sbin/../checkinstallrc

Assuming default values.

The package documentation directory ./doc-pak does not exist. 
Should I create a default set of package docs?  [y]: 

Preparing package documentation...OK

Please choose the packaging method you want to use.
Slackware [S], RPM [R] or Debian [D]? D

****************************************
**** Debian package creation selected ***
*****************************************
/opt/checkinstall/sbin/checkinstall: line 1272: rev: command not found
/opt/checkinstall/sbin/checkinstall: line 1272: rev: command not found
/opt/checkinstall/sbin/checkinstall: line 1299: rev: command not found
/opt/checkinstall/sbin/checkinstall: line 1299: rev: command not found

This package will be built according to these values: 

0 -  Maintainer: [ root@Nokia-N900 ]
1 -  Summary: [ CheckInstall installations tracker, version 1.6.2 ]
2 -  Name:    [  ]
3 -  Version: [  ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ armel ]
8 -  Source location: [ checkinstall-1.6.2 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [  ]
12 - Conflicts: [  ]
13 - Replaces: [  ]
&lt;/pre&gt;

&quot;rev&quot; utility is a part of util-linux. We can safely ignore the warning. However, checkinstall won't build a package unless we explicitly specify Name and Version of the package.

This is it
&lt;pre&gt;
Enter a number to change any of them or press ENTER to continue: 2
Enter new name: 
&gt;&gt; checkinstall
/opt/checkinstall/sbin/checkinstall: line 1299: rev: command not found
/opt/checkinstall/sbin/checkinstall: line 1299: rev: command not found

This package will be built according to these values: 

0 -  Maintainer: [ root@Nokia-N900 ]
1 -  Summary: [ CheckInstall installations tracker, version 1.6.2 ]
2 -  Name:    [ checkinstall ]
3 -  Version: [  ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ armel ]
8 -  Source location: [ checkinstall-1.6.2 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ checkinstall ]
12 - Conflicts: [  ]
13 - Replaces: [  ]

Enter a number to change any of them or press ENTER to continue: 3
Enter new version: 
&gt;&gt; 1.6.2

This package will be built according to these values: 

0 -  Maintainer: [ root@Nokia-N900 ]
1 -  Summary: [ CheckInstall installations tracker, version 1.6.2 ]
2 -  Name:    [ checkinstall ]
3 -  Version: [ 1.6.2 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ armel ]
8 -  Source location: [ checkinstall-1.6.2 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ checkinstall ]
12 - Conflicts: [  ]
13 - Replaces: [  ]

Enter a number to change any of them or press ENTER to continue: 

Installing with make install...

========================= Installation results ===========================
for file in locale/checkinstall-*.po ; do \
	case ${file} in \
		locale/checkinstall-template.po)  ;; \
		*) \
			out=`echo $file | sed -s 's/po/mo/'` ; \
			msgfmt -o ${out} ${file} ; \
			if [ $? != 0 ] ; then \
				exit 1 ; \
			fi ; \
		;; \
	esac ; \
done	
make -C installwatch
make[1]: Entering directory `/media/mmc1/noch/src0/checkinstall-1.6.2/installwatch'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/media/mmc1/noch/src0/checkinstall-1.6.2/installwatch'
export
export AF_DEFINES_SOURCED='1'
export AF_INIT_DIR='/etc/osso-af-init'
export AF_PIDDIR='/tmp/af-piddir'
export DBUS_SESSION_BUS_ADDRESS='unix:abstract=/tmp/dbus-eWtibmqbgo,guid=8e2b2d5d9dbd2e469e4db2720000000f'
export DISABLE_GATEWAY='1'
export DISPLAY=':0.0'
export GTK2_RC_FILES='/etc/hildon/theme/gtk-2.0/gtkrc'
export HILDON_FM_OBEX_ROOT='obex://'
export HOME='/root'
export ILLEGAL_FAT_CHARS='\/:*?&lt;&gt;|'
export INSTW_BACKUP='1'
export INSTW_DBGFILE='/var/tmp/tmp.wti2T1hGGv/dbgfile'
export INSTW_DBGLVL='0'
export INSTW_EXCLUDE='/dev,/media/mmc1/noch/src0/checkinstall-1.6.2,/proc,/tmp,/var/tmp,'
export INSTW_LOGFILE='/var/tmp/tmp.wti2T1hGGv/newfiles.tmp'
export INSTW_ROOTPATH='/var/tmp/tmp.wti2T1hGGv'
export INSTW_TRANSL='1'
export INTERNAL_MMC_MOUNTPOINT='/home/user/MyDocs'
export INTERNAL_MMC_SWAP_LOCATION='/home/user/MyDocs'
export LANG='en_US'
export LAUNCHWRAPPER='/etc/osso-af-init/launch-wrapper.sh'
export LAUNCHWRAPPER_NICE='/etc/osso-af-init/nice-launch-wrapper.sh'
export LAUNCHWRAPPER_NICE_KILL='/etc/osso-af-init/nice-kill-launch-wrapper.sh'
export LAUNCHWRAPPER_NICE_TRYRESTART='/etc/osso-af-init/nice-launch-wrapper-tryrestart.sh'
export LAUNCHWRAPPER_TRYRESTART='/etc/osso-af-init/launch-wrapper-tryrestart.sh'
export LC_ADDRESS='de_DE'
export LC_IDENTIFICATION='de_DE'
export LC_MEASUREMENT='de_DE'
export LC_MESSAGES='en_US'
export LC_MONETARY='de_DE'
export LC_NAME='de_DE'
export LC_NUMERIC='de_DE'
export LC_PAPER='de_DE'
export LC_TELEPHONE='de_DE'
export LC_TIME='en_US'
export LD_PRELOAD='/opt/checkinstall/lib/installwatch.so'
export LOGNAME='root'
export MAIL='/var/mail/root'
export MAKEFLAGS=''
export MAKELEVEL='1'
export MAX_FILENAME_LENGTH='255'
export MFLAGS=''
export MMC_DEVICE_FILE='/dev/mmcblk0p1'
export MMC_MOUNTPOINT='/media/mmc1'
export MMC_SWAP_LOCATION='/media/mmc1'
export MYDOCSDIR='/home/user/MyDocs'
export OLDPWD='/media/mmc1/noch/src0/checkinstall-1.6.2'
export OSSO_PRODUCT_FULL_NAME='Nokia N900'
export OSSO_PRODUCT_HARDWARE='RX-51'
export OSSO_PRODUCT_KEYBOARD='English, Dutch'
export OSSO_PRODUCT_NAME='N900'
export OSSO_PRODUCT_REGION='English America'
export OSSO_PRODUCT_RELEASE_FULL_NAME='Maemo 5'
export OSSO_PRODUCT_RELEASE_NAME='Maemo 5'
export OSSO_PRODUCT_RELEASE_VERSION='20.2010.36-2.003'
export OSSO_PRODUCT_SHORT_NAME='Nokia N900'
export OSSO_PRODUCT_WLAN_CHANNEL='fcc/us'
export OSSO_SWAP='/home/user/MyDocs'
export OSSO_VERSION='RX-51_2009SE_20.2010.36-2.003_PR_003'
export PATH='/opt/checkinstall/bin:/opt/checkinstall/sbin:/usr/bin/gnu:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11'
export PWD='/media/mmc1/noch/src0/checkinstall-1.6.2'
export SDL_AUDIODRIVER='pulse'
export SESSION_BUS_ADDRESS_FILE='/tmp/session_bus_address.user'
export SESSION_BUS_PID_FILE='/tmp/dbus_session_bus.pid.user'
export SHELL='/bin/sh'
export SHLVL='3'
export SSH_CLIENT='10.0.0.1 56492 22'
export SSH_CONNECTION='10.0.0.1 56492 10.0.0.3 22'
export SSH_TTY='/dev/pts/1'
export STATESAVEDIR='/tmp/osso-appl-states'
export TERM='xterm'
export TEXTDOMAIN='checkinstall'
export TEXTDOMAINDIR='/opt/checkinstall/sbin/../lib/checkinstall/locale'
export TMPDIR='/var/tmp'
export UPNP_ROOT='upnpav://'
export USER='root'
export _='/var/tmp/tmp.wti2T1hGGv/installscript.sh'
make -C installwatch install
make[1]: Entering directory `/media/mmc1/noch/src0/checkinstall-1.6.2/installwatch'
mkdir -p /opt/checkinstall/lib
mkdir -p /opt/checkinstall/bin
if [ -r /opt/checkinstall/lib/installwatch.so ]; then \
	rm -f  /opt/checkinstall/lib/installwatch.so; \
fi
install installwatch.so /opt/checkinstall/lib
sed -e &quot;s|#PREFIX#|/opt/checkinstall|&quot; &lt; installwatch &gt; /opt/checkinstall/bin/installwatch
chmod 755 /opt/checkinstall/bin/installwatch
make[1]: Leaving directory `/media/mmc1/noch/src0/checkinstall-1.6.2/installwatch'
mkdir -p /opt/checkinstall/sbin
install checkinstall makepak /opt/checkinstall/sbin
for file in locale/*.mo ; do \
	LANG=`echo $file | sed -e 's|locale/checkinstall-||' \
		-e 's|\.mo||'` &amp;&amp; \
	mkdir -p /opt/checkinstall/lib/checkinstall/locale/${LANG}/LC_MESSAGES &amp;&amp; \
	cp $file /opt/checkinstall/lib/checkinstall/locale/${LANG}/LC_MESSAGES/checkinstall.mo || \
	exit 1 ; \
done
mkdir -p /opt/checkinstall/lib/checkinstall
install -m644  checkinstallrc-dist /opt/checkinstall/lib/checkinstall
if ! [ -f /opt/checkinstall/lib/checkinstall/checkinstallrc ]; then \
	cp /opt/checkinstall/lib/checkinstall/checkinstallrc-dist /opt/checkinstall/lib/checkinstall/checkinstallrc; \
else \
	echo; \
	echo; \
	echo ======================================================== ;\
	echo; \
	echo An existing checkinstallrc file has been found. ;\
	echo The one from this distribution can be found at: ; \
	echo; \
	echo -e \\t/opt/checkinstall/lib/checkinstall/checkinstallrc-dist ; \
	echo; \
	echo; \
	echo ======================================================== ;\
	echo; \
fi


========================================================

An existing checkinstallrc file has been found.
The one from this distribution can be found at:

	/opt/checkinstall/lib/checkinstall/checkinstallrc-dist


========================================================


======================== Installation successful ==========================

Copying documentation directory...
./
./TODO
./INSTALL
./README
./COPYING
./RELNOTES
./BUGS
./Changelog
./FAQ
./CREDITS

Copying files to the temporary directory...OK

Stripping ELF binaries...OK

Compressing man pages...OK

Building file list...OK

Building Debian package...OK

NOTE: The package will not be installed

Erasing temporary files...OK

Deleting doc-pak directory...OK

Writing backup package...OK
OK

Deleting temp dir...OK


**********************************************************************

 Done. The new package has been saved to

 /media/mmc1/noch/src0/checkinstall-1.6.2/checkinstall_1.6.2-1_armel.deb
 You can install it in your system anytime using: 

      dpkg -i checkinstall_1.6.2-1_armel.deb

**********************************************************************
&lt;/pre&gt;

Now, you can use checkinstall in order to create Debian packages for Maemo.

[[Category:Packaging]]</text>
    </revision>
  </page>
  <page>
    <title>Chess</title>
    <id>2988</id>
    <revision>
      <id>47240</id>
      <timestamp>2012-04-12T17:11:32Z</timestamp>
      <contributor>
        <username>helihyv</username>
        <id>3021</id>
      </contributor>
      <comment>/* Maemo 5 */</comment>
      <text xml:space="preserve">[[Category:Games]]
Just an invitation for further edits.

List here all the Chess projects you are aware of running or planning to run in Maemo devices. Please provide URLs pointing to Downloads pages, project pages or debian packages if there is not anything else. Opinions about the stability of the software and the fun it brings are also appreciated.

Let's see how this page grows!
==Ongoing discussions about chess stuff in Maemo (not OS specific)==
*[http://talk.maemo.org/showthread.php?t=34886&amp;highlight=game+clock Scid thread]
*[http://talk.maemo.org/showthread.php?t=34219&amp;highlight=chess+thread The chess thread]
* [http://pacaq.sourceforge.net/ pacaq] is a chess game visualizing and analysis tool done with the Maemo 4.1 Qt4 port - [http://talk.maemo.org/showthread.php?t=21793 Talk thread].
* [http://talk.maemo.org/showthread.php?t=34886 Proposal for a Chess (or Game) Clock]

== Maemo 5 ==
* Offline Chess game pre-installed.
* Eboard is not in repository (yet) but [[/Eboard|installable]] via command line
* Rumours of Crafty running.
* [http://talk.maemo.org/showpost.php?p=364101&amp;postcount=58 Chessmonk] is coming.
* [[Miniature]] is coming. Also see the [http://talk.maemo.org/showthread.php?t=34242 talk thread].
* Chess Clock (a game clock application) available from extras repository. Website: http://chessclock.garage.maemo.org/

== OS2008 ==
* Offline Chess game pre-installed.
* [http://maemo.org/downloads/product/OS2008/eboard/ Eboard] port for playing against FICS and chess engines - [http://talk.maemo.org/showthread.php?t=35018 Talk thread].
** [http://www.v7f.eu/public/n800/chess/ EBoard and Crafty] for OS2007, mostly deprecated now - [http://maemo.org/downloads/product/OS2007/chess OS2007 Downloads page].
* [http://talk.maemo.org/showthread.php?t=34518 Scid] port on the works, still unstable and installable via debs and command line tool.

== OS2006 ==
* Offline Chess game pre-installed.</text>
    </revision>
  </page>
  <page>
    <title>Chess/Eboard</title>
    <id>3199</id>
    <revision>
      <id>31463</id>
      <timestamp>2010-03-23T13:07:41Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <minor/>
      <comment>/* Maemo 5 (Fremantle) */</comment>
      <text xml:space="preserve">[[Category:Games]]
[[Category:Power users]]

==Installation==
===Maemo 4 ([[Open development/Maemo roadmap/Diablo|Diablo]])===
Simply activate the [[extras]] repository and select it from the list of installable applications in th application manager.

===Maemo 5 ([[Open development/Maemo roadmap/Fremantle|Fremantle]])===
# Download [http://repository.maemo.org/extras/pool/diablo/free/e/eboard/ eboard from diablo repository] and save it in the folder &quot;N900&quot; (root folder in the filemanager). Attention! Do not add the diablo extras repository to the N900 application manager.
# Make sure that [[extras-testing]] repository is activated.
# Start X-Term and become root
# Input: &lt;code&gt;apt-get install libesd0&lt;/code&gt;
# Input: &lt;code&gt;dpkg -i /home/user/MyDocs/[Name of eboard .deb file downloaded in Step 1.]&lt;/code&gt;
&lt;br&gt;
Start eboard from application list (&quot;more&quot; section)

''It would be great if somebody could bring eboard to the fremantle extras repository''</text>
    </revision>
  </page>
  <page>
    <title>Cifs</title>
    <id>3384</id>
    <revision>
      <id>26421</id>
      <timestamp>2010-01-12T20:49:47Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <comment>Redirecting to [[Accessing Windows CIFS]]</comment>
      <text xml:space="preserve">#REDIRECT [[Accessing Windows CIFS]]</text>
    </revision>
  </page>
  <page>
    <title>Citrix Receiver</title>
    <id>4414</id>
    <revision>
      <id>38019</id>
      <timestamp>2010-08-23T18:35:09Z</timestamp>
      <contributor>
        <username>subcore</username>
        <id>1306</id>
      </contributor>
      <minor/>
      <comment>switching back to Maemo; and the title should probably stay b/c it's for n900 only</comment>
      <text xml:space="preserve">= Citrix Receiver 11.1 on the N900 =

== What you need ==

# Citrix Receiver 11.1 for Linux ARM Version, .tar.gz (try [http://www.citrix.com/English/ss/downloads/details.asp?downloadId=3323&amp;productId=186&amp;c1=sot2755 this direct link], but it's easily found anyhow.)
# [[Extras-devel]] enabled - this is only needed for [http://maemo.org/packages/view/dbus-switchboard/ dbus-switchboard]. The usual disclaimers apply, please read the wiki page. Also make sure you have the default Repositories &quot;Nokia Applications&quot; and &quot;Nokia System Software Updates&quot; set up and enabled.
# [http://packages.debian.org/squeeze/libmotif3 libmotif3] and [http://packages.debian.org/squeeze/libxp6 libxp6] from the Debian Squeeze ARM repository - this is only required for the Connection Manager, if you don't plan on using it, you can skip these. The client works just as well without them and you'll save some precious space (around 1,2 MB) on your [[Rootfs]]. Be sure to get the armel packages!

== How to install ==

Put the file you downloaded from the Citrix page and those from Debian somewhere on the Device, e.g. MyDocs (the 32GB on-device storage area). Proceed as follows inside an [[Terminal|XTerm]] (substitute the correct filenames if your versions or paths differ):

&lt;source lang=&quot;bash&quot;&gt;
# become root
sudo gainroot

# get prerequisites
apt-get install dbus-switchboard libxinerama1 libxaw7 libxmu6 libxpm4
# add mime type for .ica files, associate with dbus-switchboard
echo &quot;application/x-ica=hildon-dbus-switchboard.desktop&quot; &gt;&gt; /usr/share/applications/defaults.list

# these 2 are only needed for Connection Manager
dpkg --force-depends -i /home/user/MyDocs/libxp6_1.0.0.xsf1-2_armel.deb
dpkg --force-depends -i /home/user/MyDocs/libmotif3_2.2.3-4_armel.deb

# create source directory in /opt, extract icaclient and run setup script
cd /opt
mkdir icaclient.src
cd icaclient.src
tar -xzvf /home/user/MyDocs/linuxarm-11.100.158406.tar.gz
./setupwfc
&lt;/source&gt;

When you're asked for a directory, type in:
&lt;source lang=&quot;bash&quot;&gt;
/opt/icaclient
&lt;/source&gt;

Confirm the next question by entering &quot;y&quot;. This way, the installation will reside on the larger &lt;code&gt;/opt&lt;/code&gt; partition and not fill up your rootfs.

Say &quot;n&quot; to the other questions, they won't work anyways, and no reason in letting the script change some non-existent (because non-Maemo) places.

After setup has finished you can delete the source directory:

&lt;source lang=&quot;bash&quot;&gt;
cd ..
rm -rf icaclient.src
&lt;/source&gt;

Now start &lt;code&gt;dbus-switchboard&lt;/code&gt; from the launch menu, tap on the title bar and select &quot;new handler&quot; from the menu, name it &quot;Icaclient&quot; and enter this command:

&lt;source lang=&quot;bash&quot;&gt;
/opt/icaclient/wfica %realparams2%
&lt;/source&gt;

Then create a &quot;new Xref&quot; the same way, type in &lt;code&gt;.ica&lt;/code&gt; as protocol and select &quot;Icaclient&quot; as handler. Finally, select &quot;save&quot; from the menu to write your changes. There is probably a more scriptable solution, feel free to add it if you know!


Phase 3: Profit! :)

You should now be able to directly launch ica sessions from within Microb by selecting &quot;open with dbus-switchboard&quot;.


To start the connection manager, you can either do so directly via Xterm (&lt;code&gt;/opt/icaclient/wfcmgr&lt;/code&gt;), or create a Desktop entry.

To switch back to your Maemo session, you have to press the power button and select &quot;phone&quot; from the menu.

I have the best experience on XenApp Servers (under Windows Server 2008) in a Fullscreen session, with the on-screen keyboard set to start automatically. This way you have a full 800x480 desktop, and you can use the &quot;properties&quot; key as a sort of right-click substitute. It's a bit clunky but better than nothing :)

== Known Issues ==

* No Sound.
* Citrix Receiver will always report an English Input Layout, so you'll have to use Windows' Languagebar to change the Layout for non-english devices.
* Fn+Sym does not work, you have to rely on Windows' on-screen keyboard for special characters other than the ones directly accessible by Fn+Key.

[[Category:Software]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Cleven</title>
    <id>4935</id>
    <revision>
      <id>49176</id>
      <timestamp>2012-08-20T19:05:29Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>update of stable version</comment>
      <text xml:space="preserve">''NOTE: This page is currently being updated to reflect the latest stable version. Some information here might be out of date. 

--[[User:saturn|saturn]] 19:05, 20 August 2012 (UTC)

----

The Cleven application is a user interface to the aircrack-ng for the [[Nokia N900|N900]] device. 

It provides the ability to easily configure the injection drivers, scan for surrounding stations, and, using injection and authentication or deauthentication, capture Identification Vector keys.

In addition, it provides interfaces to decrypt the captured files and manage the successful attacks.

It has been created with PyQT (PyQt v4.7.5 for Python v2.6) and the functionality is provided by Python.

==Installation==

The application can be installed directly by the Application Manager (HAM) from the [[Extras]] repositories (check [http://maemo.org/packages/view/cleven/ here] for its status).  

&lt;!--You can also find the latest version in the [https://garage.maemo.org/projects/cleven/ garage project page].
--&gt;
===Dependencies===

====Included====

The application depends on:

* python2.5
* python2.5-qt4-gui
* python2.5-qt4-core 
* python2.5-qt4-maemo5
* aircrack-ng 
* macchanger
* libpcap0.8

====Expected====

In order to load the bleeding edge drivers it expects a kernel that can support it. 
The application on startup checks and reports possible inability of correct function if one of the following power kernels (KP) are not used:

* 46-wl1
* 47
* 48 (unconfirmed; same issues with the drivers have been reported)
* 49
* 50

Note: the version in [[extras-devel]] will check and expect KP51 or higher. Due to the large amount of changes in the latest KP series, the support of older versions has been dropped.

====Suggested====

The application optionally supports the Reaver and Wash implementations of the WPS attack.

Quote: ''Reaver implements a brute force attack against Wifi Protected Setup (WPS) registrar PINs in order to recover WPA/WPA2 passphrases, as described in [http://sviehb.files.wordpress.com/2011/12/viehboeck_wps.pdf viehboeck_wps.pdf].''

The following binaries need to be available for relevant options to become visible:

* reaver 
* wash

(atm the support is for ''versions 1.4'' as of [http://code.google.com/p/reaver-wps/downloads/detail?name=reaver-1.4.tar.gz&amp;can=2&amp;q= reaver-wps]; read also the release changelog for additional info).


'''INSTRUCTIONS''' for adding ''reaver'' and ''wash'' support in the application:
Copy &lt;code&gt;reaver&lt;/code&gt;, &lt;code&gt;reaven.db&lt;/code&gt; and &lt;code&gt;wash&lt;/code&gt; binaries in &lt;code&gt;/home/user/.reaver/&lt;/code&gt; and re-start Cleven for the links to be created.

==Key features==

* Includes the injection drivers (courtesy of lxp; see [http://david.gnedt.eu/blog/wl1251/ here] for more info and if you like it consider donating to him.).
* Original MAC is stored and restored on drivers load/unload.
* Handles correctly spaces and special characters in the Network names
* The Network names are sorted by name (note: hidden APs are not supported/shown).
* Decryption can be done for data captured over multiple sessions.
* Successful decrypted keys are stored in a separate folder.
* Supports Reaver and Walsh WPS attacks.

==Usage==



===Startup Dialog===

Starting the application shows a splash screen.

[[Image:cleven_startup.png|280px|Application start-up]]

In the background, a check is been made if the kernel available supports the injection drivers. In the error case, a warning message is displayed for the incompatibility.

[[Image:cleven_startupError.png|280px|Kernel Error]]

After all checks and the loading completes the main window appears that provides all available options.
 
[[Image:cleven_main.png|380px|Application Main Window]]

===Drivers Configuration Dialog===
 
As soon as the application starts the ''System Configuration'' dialog is shown.

It is recommended to set the Internet Connection Setting to ''ASK'' so that the system does not try to connect while the system tries to use the monitor mode.

The next steps will be to load the injection drivers and enable the monitor mode.

The MAC address can be also changed to a random one or in the case of MAC filtering by the ''Access Point'' to an already connected by typing the value and pressing ''SET''.
   
[[Image:cleven_systemConfiguration.png|280px]]

''Note 1'': The same configuration dialog can be accessed at the end of the session (i.e. from the [[#Drop down menu|Drop down menu]]) to revert the settings. 

''Note 2'': The default system MAC address will be restored automatically when the drivers get unloaded.

===Scan Window===
 
[[Image:cleven_mainWindow.png|280px]]

===Decryption Window===

The &quot;Decryption Window&quot; sorts files alphabetically and by security type. 

Using the &quot;All Common&quot; button it instructs the decryption to consider all files captured from the same network on different sessions.
 
[[Image:cleven_decrypt.png|200px]]
[[Image:cleven_decrypt_common.png|160px]]

When the WPA security type is chosen then also a button for selecting a dictionary appears.

Pressing this button a dialog appears that shows the dictionaries stored in &lt;pre&gt;/home/user/.cleven/dictionaries&lt;/pre&gt; and allows the selection of the dictionary to be used for the decryption. 


[[Image:cleven_decrypt_WPA.png|200px]]
[[Image:cleven_decrypt_dictionary.png|160px]]

===Deletion of files===

From the Decryption window, pressing the menubar will provide the option to enable the &quot;Deletion Mode&quot;. While in this mode, pressing the menubar again will give the opposite option, i.e. exit from the mode.

[[Image:cleven_delete_enable.png|140px]]
[[Image:cleven_delete_disable.png|140px]]

The &quot;Deletion Mode&quot; keeps the same appearance as the parent window and sorts files alphabetically and by security type.

Using the &quot;All Common&quot; button it is possible to delete all files captured from the same network.

[[Image:cleven_delete.png|200px]]
[[Image:cleven_delete_common.png|160px]]

===Keys Management Window===
 
[[Image:cleven_keysManagement.png|280px]]



===About===

In the about window one can find the version of the application running as well as buttons to connect to additional documentation 
(like all the rest of the windows it supports rotation).
 
[[Image:cleven_about1.png|280px]]
[[Image:cleven_about2.png|280px]]

==Versions==
&lt;!--
'''([http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cleven/2.4-8/ Development])'''===

'''([http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/cleven/2.5-2/ Testing])'''
--&gt;

---------------------------------------------
===4.1-1 '''([http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cleven/4.1-1/ Development])'''===
 NEW: Added dependency to the newly distributed reaver package.
 CHANGE: Removed earlier workaround code to copy and configure reaver binaries.
 CHANGE: Modified the postintall and postremove scripts to remove workarounds in the setup.
 CHANGE: Modified calls to execute reaver and wash binaries.
 NEW: Added Pali in the credits. Thanks.
  
 INSTRUCTIONS:
 * To override the autodiscovery of the drivers location and use the default, create an empty file in /home/user/.cleven/skipKernelCheck
 * To skip the kernel check in the startup, create an empty file in /home/user/.cleven/skipVersionCheck

===3.3-1===
 CHANGE: Update of recommended kernel - KP51 is expected.
 CHANGE: Removed the dependency on the wlan drivers - KP51 comes with them.
 
 INSTRUCTIONS:
 * To override the autodiscovery of the drivers location and use the default, create an empty file in /home/user/.cleven/skipKernelCheck
 * To skip the kernel check in the startup, create an empty file in /home/user/.cleven/skipVersionCheck

===3.2-1===
 NEW: Additions in the load.sh script for checking the new driver files existence before unloading the default ones.
 NEW: Addition of a check to skip the startup kernel check (and thus avoid error message for those with custom working setups).
 NEW: Addition of a check to skip the autodiscovery of kernel version (and set it manually).
 NEW: Added freemangordon in the about/thanks section of the application.
 
 INSTRUCTIONS:
 * To override the autodiscovery of the drivers location and use the default, create an empty file in /home/user/.cleven/skipKernelCheck
 * To skip the kernel check in the startup, create an empty file in /home/user/.cleven/skipVersionCheck

===3.1-1===
 WARNING: This version will work only with Kernel-Power version 50 and above.
 CHANGE: Modified reaver to accept the spoofed mac address (contributor: Goran see: http://talk.maemo.org/showpost.php?p=1203232&amp;postcount=592)
  
===3.0-1===
 WARNING: This version will work only with Kernel-Power version 50 and above.
 NEW: Added dependency to linux-backports-modules-power package.
 NEW: removed all binaries of the bleeding edge wireless drivers.
 CHANGE: Modified load.sh script for the new drivers selection.

===2.5-2 '''([http://maemo.org/downloads/product/Maemo5/cleven/ Stable])'''===
	
 NEW: Added support for KP50.
 NEW: Include binaries of version 0.2 of the bleeding edge wireless drivers.
 CHANGE: Moved load.sh and unload.sh scripts to main folder.
 CHANGE: Modified load.sh to accept options for the driver selection.
 CHANGE: Updated the sudoers file for the new location of the load/unload scripts.

===2.4-8 ===
	
 CHANGE: Support for the latest wash (&gt; r100) output file readout.
 NEW: Added reaver option &quot;--dh-small&quot;; seems to help not overloading/crashing some AP too fast.
 CHANGE: Removed reaver option &quot;--essid&quot;; avoid problem with special characters in the name.
 CHANGE: Replaced reaver option &quot;-vv&quot; with the less verbose &quot;-v&quot;.
 CHANGE: Redone keys window; new logic:
  - Added &quot;Delete&quot; and &quot;Copy&quot; buttons, i.e. file remove and copy to clipboard.
  - Removed &quot;Read Keys&quot; button; action is triggered automatically.
 NEW: Removed menu items; the About is accessible from the main window through a new button.
 CHANGE: Modification of labels in the main window.
 CHANGE: Modification of the About window text; added few words on reaver.
 NEW: Added option and rules for the deletion of the &quot;replay_arp&quot; leftover files.

 ** INSTRUCTIONS for new features:
 Add reaver, reaven.db and wash binaries in /home/user/.reaver/ and re-start Cleven for the links to be created.
 This version of Cleven was designed to work with versions up to release r100 of reaver and wash.	

===2.4-7===

 FIX: Dialog with keys was closing too fast.
 CHANGE: Removed channel option from the reaver call.

 ** INSTRUCTIONS for new features:
 Add reaver, reaven.db and wash binaries in /home/user/.reaver/ and re-start Cleven for the links to be created.
 This version of Cleven was designed to work with versions up to release r90 of reaver and wash.

===2.4-6===

 FIX: Authentication command mismatch between the UI and script.
 FIX: Capture could fail in some cases if initiated from the WPS selection.
 NEW: Added detection on AP names for the single and double quote characters as well as a few more symbols like brackets etc.

 ** INSTRUCTIONS for new features:
 Add reaver, reaven.db and wash binaries in /home/user/.reaver/ and re-start Cleven for the links to be created.
 This version of Cleven was designed to work with versions up to release r90 of reaver and wash.

===2.4-5===

 CHANGE:  Added logging for the Authentication and Capture command in /tmp/cleven.log
 CHANGE:  Removed the -essid option from the authentication (credits: StefanL, g0r)
 CHANGE:  Update for latest (r90) of reaven and wash; walsh has been deprecated.
 NEW:     Added reaven.db support

===2.4-3===

 FIX: Further correction in the creation of the symbolic links for reaver and walsh.
 FIX: walsh output file would persist; now it is removed explicitly after each scan.
 CHANGE: Added build number in main and about windows.
 
 ** INSTRUCTIONS for new features:
 Add reaver and walsh binaries in /home/user/.reaver/ and re-start Cleven for the links to be created.
 This version of Cleven was designed to work with up to version 1.3 of reaver and walsh.

===2.4-2===

 FIX: Correction for missing symbolic links creation for reaver and walsh.

 ** INSTRUCTIONS for new features:
 Add reaver and walsh binaries in /home/user/.reaver/ and re-start Cleven for the links to be created.

===2.4-1===

 ** Merge with EXPERIMENTAL version of Cleven.
 CHANGE: Removed wpscrack.py and related dependencies.
 CHANGE: Removed connect_reaver.sh; not needed any more.
 NEW: If during installation, upgrade or start up of the application it finds reaver and/or walsh in the folder /home/user/.reaver then it makes copies and links them with the program.
 CHANGE: Added in the call for reaver option &quot;-a&quot;; it will restore previous session automatically.
 CHANGE: Modification of the Capture UI.
 NEW: Addition of a WPS button; the option will become available if walsh is operational, otherwise the option will be hidden.
 NEW: If walsh is available it will be used to sort WPS compliant APs only;
 NEW: If reaver is available and operational the option to test AP with will become visible.

 ** INSTRUCTIONS for new features:
 Add reaver and walsh binaries in /home/user/.reaver/ and re-start Cleven for the links to be created.	

===2.2-1===

 NEW: Information on the power of an AP.
 CHANGE: Modification in the main window (minor).
 CHANGE: Update and cleanup of the debian install scripts.	

===2.1-4===

 * Added preinstall script to clean up old files.
 * Fix in the start-up window.
 * Modification in the main window to give better names to the buttons.
 * Update in the disclaimer.

===...some version logs missing...===

===2.1-1===	

 * New Main window to provide faster and easier access to features.
 * Modifications of classes to be called from the main window.
 * Deprecation of &quot;Delete captured files&quot; menu option.
 * Fix in the WPA deauthentication.
 * Refactoring and code cleanup in multiple places.

Issues 
 * WPA deauthentication does not collect client's MAC.

===1.12-6===	

 * Fix several regression issues introduced in version 1.12-5 due to mishandling of move and merge commands in SVN.

===1.12-5===	

 * Fix in the filename manipulations (avoid errors when AP names include &quot;-&quot; characters). [patch from mikemorrison]
 * improved the startup screen.
 * fix in the About window.
 * addition of kernel-power v49 as a valid configuration.

===1.11-2===	

 * Fix (proper) for WAP authentication to accept spaces in network names.
 * Addition to store only IVs when in WEP capture (and save space).

===1.10-1 '''Previous stable version''' ===

 * Workarournd for WAP authentication to accept spaces in network names.

Issues 
 * WPA deauthentication does not collect client's MAC.

===1.9-1===	

 * Fixed check for the compatible kernel versions.
 * Redesign of the decryption window. Added new dialog and button for selecting the dictionary for the WPA decryption.	

Issues 
 * WAP authentication do not accept spaces in network names.
 * WPA deauthentication does not collect client's MAC.

===1.8-2===	

 * Fixed check for the compatible kernel versions.	

===1.8-1===	

 * Added skip button for the intro page.
 * Added check for compatible kernel version.	

===1.7-1===	

First public release...
 Key dependencies and features:
 * The package depends on aircrack-ng, macchanger and expects power kernel &gt;= 46.
 * Includes the injection drivers (courtesy of lxp)
 * Original MAC is stored and restored on exit.
 * Handles correctly spaces and special characters in the ESSID names
 * The ESSID names are sorted and the hidden are not shown.
 * Decryption can be done for data captured over multiple sessions.
 * Successful decrypted keys are stored in a seperate folder.
 * Management of captured files.

==License==

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 only.

==Disclaimer==

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

Also, the application provided is to be used for educational purposes only. The application creator is in no way responsible for any misuse of the information provided. All of the information in this application is meant to help develop a hacker defence attitude in order to prevent the attacks discussed. In no way should you use the information to cause any kind of damage directly or indirectly. The word &quot;Hack&quot; or &quot;Hacking&quot; should be regarded as &quot;Ethical Hack&quot; or &quot;Ethical Hacking&quot; respectively. You implement the information given at your own risk. 

[[Category:Software]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Clock replacement</title>
    <id>5239</id>
    <revision>
      <id>49472</id>
      <timestamp>2012-09-06T17:05:12Z</timestamp>
      <contributor>
        <username>adek</username>
        <id>5414</id>
      </contributor>
      <comment>New page: == Clock replacement ==  The &quot;clock replacement&quot; is a substitute for the stock/default clock in Maemo 5. It's TMO thread can be found here: http://talk.maemo.org/showthread.php?t=81582  ==...</comment>
      <text xml:space="preserve">== Clock replacement ==

The &quot;clock replacement&quot; is a substitute for the stock/default clock in Maemo 5.
It's TMO thread can be found here: http://talk.maemo.org/showthread.php?t=81582

===Why?===

It was initially created by [http://talk.maemo.org/member.php?u=34540 Cepiperez] in order to have an opensource replacement for the stock clock, which would also bring portrait mode support. In that way it has some resemblance to the [http://wiki.maemo.org/Open_Media_Player OpenMediaPlayer (OMP)] project, although OMP has more extra options added.


===Later development===

Cepiperez abandoned the project, leaving it with some unsolved issues. Eventually [http://talk.maemo.org/member.php?u=53057 Ade] took over, initially for some bug fixing.


===Technical differences===

The stock clock (named worldclock) is started by calling maemo-invoker/-launcher via a symlink in /usr/bin. The stock clock is a kind of shared library (like many default maemo products) and has a GTK origin.
The replacement clock is a standalone executable, created in Qt. This makes the memory footprint (both executable and memory usage) bigger. The replacement clock executable replaces the worldclock link to maemo-invoker in the current install setup.


===Functional differences===


====Unique to the stock clock====
* It uses a graphical worldmap for adding a city to the worldclock screen. The replacement clock goes directly to the &quot;Search city&quot; popup (this is selectable from the worldmap in the stock clock).
* It shows small clock pictograms in the worldclock screen displaying the localtime.


====Different approaches====
* New alarms default have the current time in the replacement clock. The stock clock comes up with the time of the previous alarm.
* The replacement clock can add a city to the worldclock even if it is localtime
* The replacement clock sorts the citylist by cityname (stock clock most likely by city id)
* The replacement clock also uses it's own config file for some config items (/home/user/.config/worldclock/worldclock.conf). The default clock only uses gconf (entry /apps/clock). Where the default clock stores it's selected worldclocks is unknown (?).


====Unique to the replacement clock====
* It support portrait mode
* It can display seconds in the current clock time (selectable from the status menu)
* It can disable the background image
* It can display the current UTC in the worldclock list


===The config file (example)===
&lt;pre&gt;/home/user/.config/worldclock/worldclock.conf 
[General]
Cities=235, 999
SecondsAdded=true
Background=false
&lt;/pre&gt;
''Cities'' are the id's from cities shown in the worldclock part.

''SecondsAdded'' determines the display of seconds (configurable in worldclock itself).

''Background'' will show or hide the background image in landscape mode. You will have to edit this file to change this.


===New developments===
The latest &quot;experimental&quot; version also supports setting alarms on specific dates. The stock clock only supports one time alarms and alarms repeating within a week sequence.</text>
    </revision>
  </page>
  <page>
    <title>CloudGPS</title>
    <id>5031</id>
    <revision>
      <id>45923</id>
      <timestamp>2011-12-03T21:59:33Z</timestamp>
      <contributor>
        <ip>89.77.218.77</ip>
      </contributor>
      <comment>/* Features List */</comment>
      <text xml:space="preserve">&lt;div class=&quot;messagebox&quot; style=&quot;border: 1px black dashed; float: right; width: 250px; margin-left: 10px; padding:10px;&quot;&gt;'''CloudGPS'''&lt;br&gt;[[Image:Cloudgps_icon.png]]
Smoothest tile maps for N900 with great user experience.&lt;br&gt;&lt;br&gt;
Section: user/navigation &lt;br&gt;
Maintainers: Damian Waradzyn &lt;br&gt;
TMO-Thread: [http://talk.maemo.org/showthread.php?t=58402  Link] &lt;br&gt;
Package: [http://maemo.org/packages/view/cloudgps/ Link] &lt;br&gt;
Bugtracker: [https://garage.maemo.org/tracker/?group_id=1753 Link] &lt;br&gt;
&lt;/div&gt;

==Overview==

CloudGPS is a mapping application that aims to provide great user experience. It is working very smoothly and it is full of nice transitions and animations and a very nice kinetic scrolling.

[[image:Cloudgps 01.png|thumb|480px|CloudGPS screenshot from 2D map view with openstreetmap layer]]

===Videos===
* [http://vimeo.com/16748976 Version 0.3.9 preview]
* [http://vimeo.com/27126585 Version 0.5.5 preview]

===Features List===

* Intuitively browse the maps using touchscreen kinetic scrolling, accelerometer and/or keys
* Show current position using GPS
* Display satellite information in a way that does not take much of screen estate
* Display current speed, altitude, battery percentage
* Rotate the map using built-in compass (N950/N9 only)
* Multitouch map zooming and rotation (N950/N9 only)
* Support for numerous maps by default:
** OpenStreetMap I
** OpenStreetMap II
** OpenCycleMap
** Google Maps
** Google Satellite
** Google Hybrid
** UK OS Maps
** Virtual Earth Maps
** Virtual Earth Satellite
** Virtual Earth Hybrid
* Support for searching by using:
** Google Address Search
** Google Maps Search
** Google Maps Local Search
** CloudMade geocoding
* Support for routing by using:
** Google Maps
** CloudMade
* Route overview flyby - the camera flies smoothly over a route
* 2D and 3D map view
* Experimental 3D buildings (using CloudMade)
* Changing the zoom levels very quickly is possible (try using the zoom knot)
* When current positions is to be changed a great distance the camera will zoom out and dive in to target location
* Support for landscape and portrait with very fancy transition animation
* Double-pixel mode support: go to desired zoom + 1 and use shift + tap on zoom out on N900. On N9/N950 use multitouch to zoom out a little.

==Using CloudGPS==
Your current location is shown as blue dot on screen. The dot turns green when GPS is fixed. The bars in upper right section of the screen show signal strenght of GPS satellites. They turn brighter for satellites that are currently active.

Touchscreen controls:
Tap zoom in/zoom out buttons to change zoom level by 1 or hold to change by few levels. Hold shift while touching zoom buttons to change zoom level by a fraction. Tap &quot;my location&quot; button (the one with blue dot) to toggle following your current location (and direction in 3D mode and when rotation is enabled in 2D mode). Goggles icon is used for searching. Compass icon shows current view direction and toggles rotation mode in 2D. Rest of screen is used for kinetic scrolling.

You can tap and hold anywhere on map to invoke popup menu. By choosing &quot;Directions from here&quot; or &quot;Directions to here&quot; you can start routing. Route has a green marker with letter &quot;A&quot; on starting point and green marker with letter &quot;B&quot; on destination. You can tap and hold one of those markers and then drag it (if you are near screen edge the map will scroll for you) to another place. This will trigger route recalculation.

Route is saved locally and when it was displayed during last CloudGPS session it will be restored without using network on next startup. Turn by turn instructions are displayed when current position is near route. Also distance to destination and distance to next instruction is displayed.

In 3D mode and when rotation mode is enabled upper part of screen is used to rotate view.

When search bar is active keys are used as text input. Only ASCII characters supported right now. Use Enter to search query.

Tap on any map marker on screen to get it center.

===Basic Keyboard controls===
{| class=&quot;wikitable&quot; width=&quot;500&quot;
! Key(s) !! Action
|-
|Arrows || scroll/rotate the map
|-
| Dot || zoom out
|-
|Enter || zoom in
|-
|Space || toggle &quot;follow me&quot; mode
|-
|Q || quit application
|-
|N || switch to next tile provider. ''See /opt/cloudgps/providers.ini file.''
|-
|Shift + N || switch previous tile provider.
|-
|R || next routing provider
|-
|Shift + R || previous routing provider
|-
|}

===Additional keyboard controls===
{| class=&quot;wikitable&quot; width=&quot;500&quot;
! Key(s)!! Action
|-
|B || [very experimental, new in 0.3.9] download (blocking operation) and show 3D buildings in near area, will work properly only for zoom 17 and higher,
|-
|G || [debug] toggle grid
|-
|C || [debug] toggle current latitude and longitude and distance from current GPS position.
|-
|H || [debug] show tile arrays with states and visibility range 
|-
|Shift || zooming behavior change.
|-
|X || toggle accelerometer usage. Accelerometer is calibrated in the moment it is enabled.
|-
|S || switch to next search provider (currently CloudMade and Google addres search are supported)
|-
|O || add temporary marker on screen centre. 
|-
|Backspace || return to previous position after pressing &quot;my location&quot; button.
|-
|Z || toggle offline mode.
|-
|U || [debug] route me here
|-
|D || route overview flyby. The camera will go to route start and then follow route till the end. Use at high zoom levels (17+).
|-
|M || toggle mipmapping (display quality)
|-
|P || force orientation change
|-
|V || show app version
|-
|}

===Battery drainage===

CloudGPS can cause your battery to drain very quickly. It can utilise all the power hungry elements of your smartphone at the same time (like GPS, GPU and WiFi).

When CloudGPS is not the active application it will limit the frames produced to make the overall device performance acceptable. Currently it will not turn off GPS when you turn off screen.

==Bug and feature request reporting==

Please use the project [https://garage.maemo.org/tracker/?group_id=1753 CloudGPS bugtracker] to report bugs.

==Changelog==
===Version 0.5.7===
 * Fixed: crash for some search results when using Cloudmade
 * Fixed: distance to destination was not accurate
 * Fixed: popup misaligned/not showing when map is rotated
 * Fixed: markers lying on ground in 3D
 * Fixed: route flickered when used together with gps
 * Fixed: map was sometimes not shown due to arithmetic error saved in config file
 * Fixed: message display time on statusbar was too short
===Version 0.5.5===
 * Route calculation using CloudMade and Google Maps (press R to cycle): press and hold on map to invoke popup menu, select Directions from/to here. You can also tap and drag route start or end and route will be recalculated.
 * Turn by turn instructions are displayed on locations near route (within 30 meters). Distance to next turn by turn direction is calculated as well as distance to route destination (this one is not accurate due to some bug).
 * Route is rendered with rounded lines. Line thickness is calculated automatically based on current zoom level.
 * Last calculated route is stored locally and reloaded (without using network) on next startup.
 * Route overview flyby – camera will follow route drom start to end. Press D to activate.
 * Off-line mode (press Z to toggle).
 * Added UNICODE to ASCII conversion on every string returned from search and routing providers.

== Links ==

* [http://maemo.org/packages/view/cloudgps/ CloudGPS Package]
* [https://garage.maemo.org/tracker/?group_id=1753 CloudGPS bugtracker]
* [http://talk.maemo.org/showthread.php?t=58402 CloudGPS on Talk Maemo Discussion]
* [[Navigation Tools]]


[[Category:N900]]
[[Category:Software]]
[[Category:GPS]]</text>
    </revision>
  </page>
  <page>
    <title>Codenames</title>
    <id>227</id>
    <revision>
      <id>50183</id>
      <timestamp>2012-10-14T16:31:53Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <comment>/* Hardware */ Link My Nokia Blog article</comment>
      <text xml:space="preserve">Nokia hardware and software components have lots of codenames and abbreviations, this page describes what we know about these names.

== Release Table ==
{{Release history table}}

== Maemo ==
Starting from Bora the release names will be alphabetical, E and G have been excluded from this progression for various reasons (see [http://www.slideshare.net/qgil/nokia-and-Maemo-in-the-new-gnome-mobile-context/3 Presentation by Quim Gil at LinuxTag 2007]).

=== OS2006 ===
; Mistral - Maemo 2.0 : 1.2006.26-8
; Scirocco - Maemo 2.1 : Mainly bugfixes and some other enhancements. 2.2006.39-14
; Gregale - Maemo 2.2 : Bugfixes and enhancements.

=== OS2007 ===
; Bora - Maemo : 3.x 1.2006.47-20 (3.0), 3.2007.10-7 (3.1).

=== [[:Category:OS2008|OS2008]] ===
; Chinook - Maemo 4.0 : 1.2007.42-18, 1.2007.42-19, 2.2007.50-2 and 2.2007.51-3
; [[Open development/Maemo roadmap/Diablo|Diablo]] - Maemo 4.1 : 4.2008.23-14, 4.2008.30-2

=== Maemo 5 ===
; [[Open development/Maemo roadmap/Fremantle|Fremantle]] : current Maemo release

=== Announced releases ===

; [[Open development/Maemo roadmap/Harmattan|Harmattan]] : future Maemo release, to include bundled officially-supported Qt libraries

=== Historic names ===

; Sardine : Similar to Debian's Sid/Unstable, Sardine was an experimental distribution of the Hildon Application Framework for the OS2006 and OS2007, primarily of interest to developers who wish to test &quot;bleeding edge&quot; features that are being developed for future releases of Maemo. As components from Sardine stabilized, they moved into Herring. More information on the [http://sardine.garage.Maemo.org/ Sardine web page]. Sardine was [http://lists.maemo.org/pipermail/maemo-developers/2008-June/016119.html declared dead in June 2008].

; Herring : Was to Sardine as Debian Testing is to Debian's Sid/Stable, Herring was the stable branch of Sardine. Components were moved here to be prepared for release once they were feature complete.

; Elephanta : This would have been a release between Diablo and Fremantle, which was skipped in favor of bringing Maemo 5 out earlier (note the alphabetical order of releases starting with &quot;Bora&quot;, &quot;G&quot; was skipped because of &quot;Gregale&quot;) - some pages still mention it, for example [http://maemo.org/news/announcements/1184675758/] and [http://maemo.org/development/documentation/maemo-quick-start-guide.pdf]; [http://talk.maemo.org/showpost.php?p=374918&amp;postcount=2 Explanation in the forums], [http://www.google.at/search?q=site:maemo.org+elephanta Google search of &quot;elephanta&quot; on maemo.org]

== Hardware ==

; Sputnik : Codename for 770 device. Reported [http://www.gossamer-threads.com/lists/maemo/developers/296?search_string=sputnik;#296 here] and [http://www.gossamer-threads.com/lists/maemo/developers/953?search_string=sputnik;#953 here]
; Soyuz : Codename for mysterious unreleased device, possibly slightly improved 770 (made obsolete by N800?). Mentioned in 2.6.16 linux kernel source for 770 when some support were added for newer hardware - 4 bit SD/MMC mode with faster 24MHz bus speed (with comment &quot;Use faster MMC frequency on Soyuz&quot;) and LS0413Y LCD (used later in N800). So possibly this device had 770 features but full SD/MMC slot and better display.
; Gagarin : Codename for N800.
; Selene : Codename for N810.
; Rover : Codename for N900.
; Dali : Codename for N950, previously &quot;N9-00&quot;. (Source: [http://talk.maemo.org/showthread.php?t=67371 TMO thread], [http://taskumuro.com/artikkelit/the-story-of-nokia-meego The story of Nokia MeeGo])
; Lankku : Codename for N9, previously &quot;N9-01&quot;. (Source: [http://taskumuro.com/artikkelit/the-story-of-nokia-meego The story of Nokia MeeGo])
; SU-18 : 770
; RX-34 : N800
; RX-44 : N810
; RX-48 : [[Nokia N810WME|N810 WiMAX Edition]]
; RX-51 : [[Nokia N900|N900]]
; RX-71 : Not yet known.  Device powered by an OMAP3. Possibly less keys (phone?). ([http://talk.maemo.org/showpost.php?p=268833&amp;postcount=15 related TMO post])
; RM-581 : Columbus, cancelled Harmattan device, N8-ish design ([http://taskumuro.com/artikkelit/the-story-of-nokia-meego The story of Nokia MeeGo], [http://mynokiablog.com/2012/09/02/exclusive-leaked-images-of-rm-581-columbus-harmattan-prototype-n8-esque-from-2009/ Original My Nokia Blog Story])
; RM-660 : Unknown. [http://nokiagadgets.com/2012/09/02/rm-581-columbus-harmattan-prototype-from-2009-pictures-included/ Mentioned here]
; RM-680 : [[N950]], Harmattan developer device [https://fjallfoss.fcc.gov/oetcf/eas/reports/ViewExhibitReport.cfm?mode=Exhibits&amp;RequestTimeout=500&amp;calledFromFrame=N&amp;application_id=233837&amp;fcc_id=%27LJPRM-680%27 FCC Link]
; RM-690 : Unknown. Found in harmattan MCE: http://meego.gitorious.org/meego-middleware/mce/blobs/master/mce-hal.h
; RM-696 : N9
; RM-716 : from [http://taskumuro.com/artikkelit/the-story-of-nokia-meego The story of Nokia MeeGo]: ''&quot;Nokia was developing a version of N9 with Qualcomm Snapdragon SoC to US market (most likely RM-716) in the beginning of 2011&quot;'' and also ''&quot;Apparently another version of N9 was in development for Verizon, codenamed RM-716.&quot;''; Found in harmattan MCE: http://meego.gitorious.org/meego-middleware/mce/blobs/master/mce-hal.h
; RM-742 : Cancelled N9 Successor, Lauta, basically a N9 with hardware keyboard (Source: [http://taskumuro.com/artikkelit/the-story-of-nokia-meego The story of Nokia MeeGo], [http://mynokiablog.com/2012/09/04/leaked-prototype-nokia-lauta-rm-742-cancelled-immediate-n9-successor/ Original My Nokia Blog article])
; N00 : Nokia OMAP3 development board, see: http://meego.gitorious.org/qemu-maemo/qemu/blobs/master/hw/n00.c

== Software ==

; bme (Battery Management Entity) : Is proxied to D-Bus via the bme-dbus-proxy daemon
; dsme (Device State Management Entity) : DSME mentions: [http://www.internettablettalk.com/forums/printthread.php?t=3129&amp;pp=40] [http://maemo.org/platform/docs/howtos/howto_connectivity_guide.html]
; mce (Mode Control Entity)
; Retu and Tahvo (Fred and Barney) : &quot;Retu&quot; and &quot;Tahvo&quot; are apparently the Finnish equivalent of Fred and Barney from The Flintstones cartoon ([http://www.tsfs.fi/spin/leffat/flintstones2.shtml]/[http://www.imdb.com/title/tt0158622/]). Various sources indicate Retu is a custom ASIC chip that includes (at least) pseudo real-time clock control, GPIO/userspace interaction(?), power button control and a watchdog timer. The watchdog can be disabled by way of the &lt;code&gt;no-retu-wd&lt;/code&gt; flag accessible from the [http://maemo.org/maemowiki/Flasher_tool_usage]. Tahvo is another ASIC(?) related to USB functionality. Retu mentions: [http://maemo.org/pipermail/maemo-users/2006-July/001553.html] [http://maemo.org/pipermail/maemo-developers/2006-January/002445.html][http://repository.maemo.org/sardine/armel/sardine/logs/6995-buildpackage] [http://www.internettablettalk.com/forums/printthread.php?t=3129&amp;pp=40] [http://lists.freedesktop.org/archives/hal/2006-October/006437.html] [http://news.nopcode.org/doc/REN770] [http://www.math.ucla.edu/~jimc/nokia770/physical.html] Tahvo mentions: [http://repository.maemo.org/sardine/armel/sardine/logs/6995-buildpackage][http://www.internettablettalk.com/forums/printthread.php?t=3129&amp;pp=40] [http://lists.freedesktop.org/archives/hal/2006-October/006437.html] [http://news.nopcode.org/doc/REN770] [http://www.math.ucla.edu/~jimc/nokia770/physical.html]
; wd (watchdog) : There are both hardware and software watchdogs / lifeguards that reboot the device in certain circumstances, e.g. excessive CPU usage; important process crashes; system lock up. If the watchdog does not receive a signal within a certain time, the watchdog triggers a system reboot. Some (all?) watchdogs can be disabled in [[R&amp;D mode]].
; OSSO (Open Source Software Operations) : It was a department inside Nokia responsible for producing Maemo. It has been replaced by [[Task:Maemo brand#Definitions|Maemo Software]].
; NOLO (''No''kia boot''lo''ader) : The nolo appears to have a small built-in debug shell.

[[Category:Devices]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Codenames</title>
    <id>227</id>
    <revision>
      <id>50183</id>
      <timestamp>2012-10-14T16:31:53Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <comment>/* Hardware */ Link My Nokia Blog article</comment>
      <text xml:space="preserve">Nokia hardware and software components have lots of codenames and abbreviations, this page describes what we know about these names.

== Release Table ==
{{Release history table}}

== Maemo ==
Starting from Bora the release names will be alphabetical, E and G have been excluded from this progression for various reasons (see [http://www.slideshare.net/qgil/nokia-and-Maemo-in-the-new-gnome-mobile-context/3 Presentation by Quim Gil at LinuxTag 2007]).

=== OS2006 ===
; Mistral - Maemo 2.0 : 1.2006.26-8
; Scirocco - Maemo 2.1 : Mainly bugfixes and some other enhancements. 2.2006.39-14
; Gregale - Maemo 2.2 : Bugfixes and enhancements.

=== OS2007 ===
; Bora - Maemo : 3.x 1.2006.47-20 (3.0), 3.2007.10-7 (3.1).

=== [[:Category:OS2008|OS2008]] ===
; Chinook - Maemo 4.0 : 1.2007.42-18, 1.2007.42-19, 2.2007.50-2 and 2.2007.51-3
; [[Open development/Maemo roadmap/Diablo|Diablo]] - Maemo 4.1 : 4.2008.23-14, 4.2008.30-2

=== Maemo 5 ===
; [[Open development/Maemo roadmap/Fremantle|Fremantle]] : current Maemo release

=== Announced releases ===

; [[Open development/Maemo roadmap/Harmattan|Harmattan]] : future Maemo release, to include bundled officially-supported Qt libraries

=== Historic names ===

; Sardine : Similar to Debian's Sid/Unstable, Sardine was an experimental distribution of the Hildon Application Framework for the OS2006 and OS2007, primarily of interest to developers who wish to test &quot;bleeding edge&quot; features that are being developed for future releases of Maemo. As components from Sardine stabilized, they moved into Herring. More information on the [http://sardine.garage.Maemo.org/ Sardine web page]. Sardine was [http://lists.maemo.org/pipermail/maemo-developers/2008-June/016119.html declared dead in June 2008].

; Herring : Was to Sardine as Debian Testing is to Debian's Sid/Stable, Herring was the stable branch of Sardine. Components were moved here to be prepared for release once they were feature complete.

; Elephanta : This would have been a release between Diablo and Fremantle, which was skipped in favor of bringing Maemo 5 out earlier (note the alphabetical order of releases starting with &quot;Bora&quot;, &quot;G&quot; was skipped because of &quot;Gregale&quot;) - some pages still mention it, for example [http://maemo.org/news/announcements/1184675758/] and [http://maemo.org/development/documentation/maemo-quick-start-guide.pdf]; [http://talk.maemo.org/showpost.php?p=374918&amp;postcount=2 Explanation in the forums], [http://www.google.at/search?q=site:maemo.org+elephanta Google search of &quot;elephanta&quot; on maemo.org]

== Hardware ==

; Sputnik : Codename for 770 device. Reported [http://www.gossamer-threads.com/lists/maemo/developers/296?search_string=sputnik;#296 here] and [http://www.gossamer-threads.com/lists/maemo/developers/953?search_string=sputnik;#953 here]
; Soyuz : Codename for mysterious unreleased device, possibly slightly improved 770 (made obsolete by N800?). Mentioned in 2.6.16 linux kernel source for 770 when some support were added for newer hardware - 4 bit SD/MMC mode with faster 24MHz bus speed (with comment &quot;Use faster MMC frequency on Soyuz&quot;) and LS0413Y LCD (used later in N800). So possibly this device had 770 features but full SD/MMC slot and better display.
; Gagarin : Codename for N800.
; Selene : Codename for N810.
; Rover : Codename for N900.
; Dali : Codename for N950, previously &quot;N9-00&quot;. (Source: [http://talk.maemo.org/showthread.php?t=67371 TMO thread], [http://taskumuro.com/artikkelit/the-story-of-nokia-meego The story of Nokia MeeGo])
; Lankku : Codename for N9, previously &quot;N9-01&quot;. (Source: [http://taskumuro.com/artikkelit/the-story-of-nokia-meego The story of Nokia MeeGo])
; SU-18 : 770
; RX-34 : N800
; RX-44 : N810
; RX-48 : [[Nokia N810WME|N810 WiMAX Edition]]
; RX-51 : [[Nokia N900|N900]]
; RX-71 : Not yet known.  Device powered by an OMAP3. Possibly less keys (phone?). ([http://talk.maemo.org/showpost.php?p=268833&amp;postcount=15 related TMO post])
; RM-581 : Columbus, cancelled Harmattan device, N8-ish design ([http://taskumuro.com/artikkelit/the-story-of-nokia-meego The story of Nokia MeeGo], [http://mynokiablog.com/2012/09/02/exclusive-leaked-images-of-rm-581-columbus-harmattan-prototype-n8-esque-from-2009/ Original My Nokia Blog Story])
; RM-660 : Unknown. [http://nokiagadgets.com/2012/09/02/rm-581-columbus-harmattan-prototype-from-2009-pictures-included/ Mentioned here]
; RM-680 : [[N950]], Harmattan developer device [https://fjallfoss.fcc.gov/oetcf/eas/reports/ViewExhibitReport.cfm?mode=Exhibits&amp;RequestTimeout=500&amp;calledFromFrame=N&amp;application_id=233837&amp;fcc_id=%27LJPRM-680%27 FCC Link]
; RM-690 : Unknown. Found in harmattan MCE: http://meego.gitorious.org/meego-middleware/mce/blobs/master/mce-hal.h
; RM-696 : N9
; RM-716 : from [http://taskumuro.com/artikkelit/the-story-of-nokia-meego The story of Nokia MeeGo]: ''&quot;Nokia was developing a version of N9 with Qualcomm Snapdragon SoC to US market (most likely RM-716) in the beginning of 2011&quot;'' and also ''&quot;Apparently another version of N9 was in development for Verizon, codenamed RM-716.&quot;''; Found in harmattan MCE: http://meego.gitorious.org/meego-middleware/mce/blobs/master/mce-hal.h
; RM-742 : Cancelled N9 Successor, Lauta, basically a N9 with hardware keyboard (Source: [http://taskumuro.com/artikkelit/the-story-of-nokia-meego The story of Nokia MeeGo], [http://mynokiablog.com/2012/09/04/leaked-prototype-nokia-lauta-rm-742-cancelled-immediate-n9-successor/ Original My Nokia Blog article])
; N00 : Nokia OMAP3 development board, see: http://meego.gitorious.org/qemu-maemo/qemu/blobs/master/hw/n00.c

== Software ==

; bme (Battery Management Entity) : Is proxied to D-Bus via the bme-dbus-proxy daemon
; dsme (Device State Management Entity) : DSME mentions: [http://www.internettablettalk.com/forums/printthread.php?t=3129&amp;pp=40] [http://maemo.org/platform/docs/howtos/howto_connectivity_guide.html]
; mce (Mode Control Entity)
; Retu and Tahvo (Fred and Barney) : &quot;Retu&quot; and &quot;Tahvo&quot; are apparently the Finnish equivalent of Fred and Barney from The Flintstones cartoon ([http://www.tsfs.fi/spin/leffat/flintstones2.shtml]/[http://www.imdb.com/title/tt0158622/]). Various sources indicate Retu is a custom ASIC chip that includes (at least) pseudo real-time clock control, GPIO/userspace interaction(?), power button control and a watchdog timer. The watchdog can be disabled by way of the &lt;code&gt;no-retu-wd&lt;/code&gt; flag accessible from the [http://maemo.org/maemowiki/Flasher_tool_usage]. Tahvo is another ASIC(?) related to USB functionality. Retu mentions: [http://maemo.org/pipermail/maemo-users/2006-July/001553.html] [http://maemo.org/pipermail/maemo-developers/2006-January/002445.html][http://repository.maemo.org/sardine/armel/sardine/logs/6995-buildpackage] [http://www.internettablettalk.com/forums/printthread.php?t=3129&amp;pp=40] [http://lists.freedesktop.org/archives/hal/2006-October/006437.html] [http://news.nopcode.org/doc/REN770] [http://www.math.ucla.edu/~jimc/nokia770/physical.html] Tahvo mentions: [http://repository.maemo.org/sardine/armel/sardine/logs/6995-buildpackage][http://www.internettablettalk.com/forums/printthread.php?t=3129&amp;pp=40] [http://lists.freedesktop.org/archives/hal/2006-October/006437.html] [http://news.nopcode.org/doc/REN770] [http://www.math.ucla.edu/~jimc/nokia770/physical.html]
; wd (watchdog) : There are both hardware and software watchdogs / lifeguards that reboot the device in certain circumstances, e.g. excessive CPU usage; important process crashes; system lock up. If the watchdog does not receive a signal within a certain time, the watchdog triggers a system reboot. Some (all?) watchdogs can be disabled in [[R&amp;D mode]].
; OSSO (Open Source Software Operations) : It was a department inside Nokia responsible for producing Maemo. It has been replaced by [[Task:Maemo brand#Definitions|Maemo Software]].
; NOLO (''No''kia boot''lo''ader) : The nolo appears to have a small built-in debug shell.

[[Category:Devices]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Codenames</title>
    <id>227</id>
    <revision>
      <id>50183</id>
      <timestamp>2012-10-14T16:31:53Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <comment>/* Hardware */ Link My Nokia Blog article</comment>
      <text xml:space="preserve">Nokia hardware and software components have lots of codenames and abbreviations, this page describes what we know about these names.

== Release Table ==
{{Release history table}}

== Maemo ==
Starting from Bora the release names will be alphabetical, E and G have been excluded from this progression for various reasons (see [http://www.slideshare.net/qgil/nokia-and-Maemo-in-the-new-gnome-mobile-context/3 Presentation by Quim Gil at LinuxTag 2007]).

=== OS2006 ===
; Mistral - Maemo 2.0 : 1.2006.26-8
; Scirocco - Maemo 2.1 : Mainly bugfixes and some other enhancements. 2.2006.39-14
; Gregale - Maemo 2.2 : Bugfixes and enhancements.

=== OS2007 ===
; Bora - Maemo : 3.x 1.2006.47-20 (3.0), 3.2007.10-7 (3.1).

=== [[:Category:OS2008|OS2008]] ===
; Chinook - Maemo 4.0 : 1.2007.42-18, 1.2007.42-19, 2.2007.50-2 and 2.2007.51-3
; [[Open development/Maemo roadmap/Diablo|Diablo]] - Maemo 4.1 : 4.2008.23-14, 4.2008.30-2

=== Maemo 5 ===
; [[Open development/Maemo roadmap/Fremantle|Fremantle]] : current Maemo release

=== Announced releases ===

; [[Open development/Maemo roadmap/Harmattan|Harmattan]] : future Maemo release, to include bundled officially-supported Qt libraries

=== Historic names ===

; Sardine : Similar to Debian's Sid/Unstable, Sardine was an experimental distribution of the Hildon Application Framework for the OS2006 and OS2007, primarily of interest to developers who wish to test &quot;bleeding edge&quot; features that are being developed for future releases of Maemo. As components from Sardine stabilized, they moved into Herring. More information on the [http://sardine.garage.Maemo.org/ Sardine web page]. Sardine was [http://lists.maemo.org/pipermail/maemo-developers/2008-June/016119.html declared dead in June 2008].

; Herring : Was to Sardine as Debian Testing is to Debian's Sid/Stable, Herring was the stable branch of Sardine. Components were moved here to be prepared for release once they were feature complete.

; Elephanta : This would have been a release between Diablo and Fremantle, which was skipped in favor of bringing Maemo 5 out earlier (note the alphabetical order of releases starting with &quot;Bora&quot;, &quot;G&quot; was skipped because of &quot;Gregale&quot;) - some pages still mention it, for example [http://maemo.org/news/announcements/1184675758/] and [http://maemo.org/development/documentation/maemo-quick-start-guide.pdf]; [http://talk.maemo.org/showpost.php?p=374918&amp;postcount=2 Explanation in the forums], [http://www.google.at/search?q=site:maemo.org+elephanta Google search of &quot;elephanta&quot; on maemo.org]

== Hardware ==

; Sputnik : Codename for 770 device. Reported [http://www.gossamer-threads.com/lists/maemo/developers/296?search_string=sputnik;#296 here] and [http://www.gossamer-threads.com/lists/maemo/developers/953?search_string=sputnik;#953 here]
; Soyuz : Codename for mysterious unreleased device, possibly slightly improved 770 (made obsolete by N800?). Mentioned in 2.6.16 linux kernel source for 770 when some support were added for newer hardware - 4 bit SD/MMC mode with faster 24MHz bus speed (with comment &quot;Use faster MMC frequency on Soyuz&quot;) and LS0413Y LCD (used later in N800). So possibly this device had 770 features but full SD/MMC slot and better display.
; Gagarin : Codename for N800.
; Selene : Codename for N810.
; Rover : Codename for N900.
; Dali : Codename for N950, previously &quot;N9-00&quot;. (Source: [http://talk.maemo.org/showthread.php?t=67371 TMO thread], [http://taskumuro.com/artikkelit/the-story-of-nokia-meego The story of Nokia MeeGo])
; Lankku : Codename for N9, previously &quot;N9-01&quot;. (Source: [http://taskumuro.com/artikkelit/the-story-of-nokia-meego The story of Nokia MeeGo])
; SU-18 : 770
; RX-34 : N800
; RX-44 : N810
; RX-48 : [[Nokia N810WME|N810 WiMAX Edition]]
; RX-51 : [[Nokia N900|N900]]
; RX-71 : Not yet known.  Device powered by an OMAP3. Possibly less keys (phone?). ([http://talk.maemo.org/showpost.php?p=268833&amp;postcount=15 related TMO post])
; RM-581 : Columbus, cancelled Harmattan device, N8-ish design ([http://taskumuro.com/artikkelit/the-story-of-nokia-meego The story of Nokia MeeGo], [http://mynokiablog.com/2012/09/02/exclusive-leaked-images-of-rm-581-columbus-harmattan-prototype-n8-esque-from-2009/ Original My Nokia Blog Story])
; RM-660 : Unknown. [http://nokiagadgets.com/2012/09/02/rm-581-columbus-harmattan-prototype-from-2009-pictures-included/ Mentioned here]
; RM-680 : [[N950]], Harmattan developer device [https://fjallfoss.fcc.gov/oetcf/eas/reports/ViewExhibitReport.cfm?mode=Exhibits&amp;RequestTimeout=500&amp;calledFromFrame=N&amp;application_id=233837&amp;fcc_id=%27LJPRM-680%27 FCC Link]
; RM-690 : Unknown. Found in harmattan MCE: http://meego.gitorious.org/meego-middleware/mce/blobs/master/mce-hal.h
; RM-696 : N9
; RM-716 : from [http://taskumuro.com/artikkelit/the-story-of-nokia-meego The story of Nokia MeeGo]: ''&quot;Nokia was developing a version of N9 with Qualcomm Snapdragon SoC to US market (most likely RM-716) in the beginning of 2011&quot;'' and also ''&quot;Apparently another version of N9 was in development for Verizon, codenamed RM-716.&quot;''; Found in harmattan MCE: http://meego.gitorious.org/meego-middleware/mce/blobs/master/mce-hal.h
; RM-742 : Cancelled N9 Successor, Lauta, basically a N9 with hardware keyboard (Source: [http://taskumuro.com/artikkelit/the-story-of-nokia-meego The story of Nokia MeeGo], [http://mynokiablog.com/2012/09/04/leaked-prototype-nokia-lauta-rm-742-cancelled-immediate-n9-successor/ Original My Nokia Blog article])
; N00 : Nokia OMAP3 development board, see: http://meego.gitorious.org/qemu-maemo/qemu/blobs/master/hw/n00.c

== Software ==

; bme (Battery Management Entity) : Is proxied to D-Bus via the bme-dbus-proxy daemon
; dsme (Device State Management Entity) : DSME mentions: [http://www.internettablettalk.com/forums/printthread.php?t=3129&amp;pp=40] [http://maemo.org/platform/docs/howtos/howto_connectivity_guide.html]
; mce (Mode Control Entity)
; Retu and Tahvo (Fred and Barney) : &quot;Retu&quot; and &quot;Tahvo&quot; are apparently the Finnish equivalent of Fred and Barney from The Flintstones cartoon ([http://www.tsfs.fi/spin/leffat/flintstones2.shtml]/[http://www.imdb.com/title/tt0158622/]). Various sources indicate Retu is a custom ASIC chip that includes (at least) pseudo real-time clock control, GPIO/userspace interaction(?), power button control and a watchdog timer. The watchdog can be disabled by way of the &lt;code&gt;no-retu-wd&lt;/code&gt; flag accessible from the [http://maemo.org/maemowiki/Flasher_tool_usage]. Tahvo is another ASIC(?) related to USB functionality. Retu mentions: [http://maemo.org/pipermail/maemo-users/2006-July/001553.html] [http://maemo.org/pipermail/maemo-developers/2006-January/002445.html][http://repository.maemo.org/sardine/armel/sardine/logs/6995-buildpackage] [http://www.internettablettalk.com/forums/printthread.php?t=3129&amp;pp=40] [http://lists.freedesktop.org/archives/hal/2006-October/006437.html] [http://news.nopcode.org/doc/REN770] [http://www.math.ucla.edu/~jimc/nokia770/physical.html] Tahvo mentions: [http://repository.maemo.org/sardine/armel/sardine/logs/6995-buildpackage][http://www.internettablettalk.com/forums/printthread.php?t=3129&amp;pp=40] [http://lists.freedesktop.org/archives/hal/2006-October/006437.html] [http://news.nopcode.org/doc/REN770] [http://www.math.ucla.edu/~jimc/nokia770/physical.html]
; wd (watchdog) : There are both hardware and software watchdogs / lifeguards that reboot the device in certain circumstances, e.g. excessive CPU usage; important process crashes; system lock up. If the watchdog does not receive a signal within a certain time, the watchdog triggers a system reboot. Some (all?) watchdogs can be disabled in [[R&amp;D mode]].
; OSSO (Open Source Software Operations) : It was a department inside Nokia responsible for producing Maemo. It has been replaced by [[Task:Maemo brand#Definitions|Maemo Software]].
; NOLO (''No''kia boot''lo''ader) : The nolo appears to have a small built-in debug shell.

[[Category:Devices]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Community</title>
    <id>2853</id>
    <revision>
      <id>21062</id>
      <timestamp>2009-10-26T09:48:41Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <comment>#redirect [[:Category:Community]]</comment>
      <text xml:space="preserve">#redirect [[:Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community/Application Catalog</title>
    <id>1177</id>
    <revision>
      <id>27960</id>
      <timestamp>2010-02-01T20:04:39Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Extras]]</comment>
      <text xml:space="preserve">#REDIRECT [[Extras]]</text>
    </revision>
  </page>
  <page>
    <title>Community/Community Projects</title>
    <id>1181</id>
    <revision>
      <id>34401</id>
      <timestamp>2010-05-17T09:21:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Community Projects */ link to [[Getting started with Maemo Garage]]</comment>
      <text xml:space="preserve">== Community Projects ==

If you’re a programmer, or someone who wants to start developing software for the Internet Tablet, you should consider starting a community project. Community projects are those applications that are [[Getting started with Maemo Garage|hosted in the Garage]]. There’s a great guide to starting a new community project [http://maemo.org/community/community-projects/getting-started/ here]. If you’d like to view several official presentations about topics discussing the Maemo software platform, go to the [http://maemo.org/community/presentations/ Presentations] section of maemo.org. Here you will find workshops led by Nokia/Maemo employees.


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community/Contribute</title>
    <id>1182</id>
    <revision>
      <id>27912</id>
      <timestamp>2010-02-01T11:17:00Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Getting involved]]</comment>
      <text xml:space="preserve">#REDIRECT [[Getting involved]]</text>
    </revision>
  </page>
  <page>
    <title>Community/Get Involved</title>
    <id>1179</id>
    <revision>
      <id>27962</id>
      <timestamp>2010-02-01T20:05:37Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Getting involved]]</comment>
      <text xml:space="preserve">#REDIRECT [[Getting involved]]</text>
    </revision>
  </page>
  <page>
    <title>Community/Mailing Lists</title>
    <id>1183</id>
    <revision>
      <id>28730</id>
      <timestamp>2010-02-09T14:04:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>Move content to [[Community mailing lists]], redirect there</comment>
      <text xml:space="preserve">#REDIRECT [[Community mailing lists]]</text>
    </revision>
  </page>
  <page>
    <title>Community/News</title>
    <id>1312</id>
    <revision>
      <id>41682</id>
      <timestamp>2011-02-07T15:35:51Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Community news]]</comment>
      <text xml:space="preserve">#REDIRECT [[Community news]]</text>
    </revision>
  </page>
  <page>
    <title>Community/Security Issues</title>
    <id>1186</id>
    <revision>
      <id>8201</id>
      <timestamp>2008-10-30T17:56:06Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve">== Security Issues ==

Security issues for any software platform are a very serious matter. If you discover or become aware of a security issue in any Maemo software (consisting of the Maemo software platform and upstream projects whose software is used within the Maemo software platform), please report it [http://maemo.org/community/security/ here].


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community/The Garage</title>
    <id>1178</id>
    <revision>
      <id>27963</id>
      <timestamp>2010-02-01T20:06:19Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Getting started with Maemo Garage]]</comment>
      <text xml:space="preserve">#REDIRECT [[Getting started with Maemo Garage]]</text>
    </revision>
  </page>
  <page>
    <title>Community/Wiki</title>
    <id>1180</id>
    <revision>
      <id>28161</id>
      <timestamp>2010-02-02T16:34:53Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[maemo.org wiki:About]]</comment>
      <text xml:space="preserve">#REDIRECT [[maemo.org wiki:About]]</text>
    </revision>
  </page>
  <page>
    <title>Community Awards</title>
    <id>5183</id>
    <revision>
      <id>48586</id>
      <timestamp>2012-06-22T16:22:39Z</timestamp>
      <contributor>
        <username>ivgalvez</username>
        <id>2039</id>
      </contributor>
      <comment>/* Winners */</comment>
      <text xml:space="preserve">=== Purpose ===
Thanks to [[Summer%2712_Device_Program|Nokia's '12 Device Program]] (see [http://talk.maemo.org/showthread.php?t=84322 TMO thread]), we have 25 devices for Community Awards (10 N950's and 15 N9's).

The purpose of these awards is to recognize people that, for months/years have contributed, and continuously contribute, to Maemo Community.

A [http://talk.maemo.org/showthread.php?t=84533 TMO thread] is open to comment about this initiative.

=== Candidates ===
Unlike other programs, target audience of Community Awards aren't only developers. Suitable candidates include (also) dedicated testers, helpers, hardware modders, contributing participants of brainstorms and so goes on. Usually, it's a mix of all presented above.

Please, bear in mind, that this is not a lottery and only people whose merits are well proven, have chances for receiving device.

=== Submissions ===
Any member of maemo.org can self-nominate to receive one device, from the Community Awards program. Accepting submissions will start at '''Monday, 28 May, 00:00 UTC''', and will last for '''3 weeks'''.

Only self-submissions are allowed, and they will be valid only if made via [[Community_mailing_lists|community mailing list]]. Submissions may contain rationale - short description of Your deeds for Community - but it's not required, as the Council will check history of candidate's contributions.

Submission must specify if someone is interested only in N950 or N9 (so, in case of not enough devices of preferred type, he/she will receive no prize), or will be satisfied by any type of prize.

People that already received N950s in any form before (dev programs, etc) can't submit for / receive another one, but they can submit for N9.

Please, include in the mail with your self-nomination your username at maemo.org.

=== Criteria ===
Council will choose winners in its discretion, in no more than a week time (so winners will be announced no more than 4 weeks after starting receiving submissions) - could be less.

Community Awards are granted for past deeds, so no future projects/promises, etc will be taken into account by Council.




----

=== Submissions ===
List of people submitting to program is updated at least once per week. Actual list include:

* [http://talk.maemo.org/member.php?u=48018 Niel Nielsen] ([http://maemo.org/profile/view/nieldk/ nieldk]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005301.html applies] for N950.
* [http://talk.maemo.org/member.php?u=51399 Kenneth Kasilag] ([http://maemo.org/profile/view/Hurrian/ Hurrian]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005302.html applies] for any device.
* [http://talk.maemo.org/member.php?u=49449 Paolo Iommarini] ([http://maemo.org/profile/view/sakya/ sakya]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005311.html applies] for N950 (will also accept N9).
* [http://talk.maemo.org/member.php?u=16543 Roman Moravcik] ([http://maemo.org/profile/view/rmoravcik/ rmoravcik]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005320.html applies] for N9.
* [http://talk.maemo.org/member.php?u=39316 Pavol Rohár] ([http://maemo.org/profile/view/pali/ pali]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005325.html applies] for N950.
* [http://talk.maemo.org/member.php?u=3094 Aniello Del Sorbo] ([http://maemo.org/profile/view/anidel/ anidel]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005329.html applies] for N9.
* [http://talk.maemo.org/member.php?u=25578 Mohammad Abu-Garbeyyeh] ([http://maemo.org/profile/view/mohammad7410/ MohammadAG]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005332.html applies] for N9.
* [http://talk.maemo.org/member.php?u=46967 Andy Hagon] ([http://maemo.org/profile/view/AndyNokia232/ AndyNokia232]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005335.html applies] for N950.
* [http://talk.maemo.org/member.php?u=19644 Simón Pena Placer] ([http://maemo.org/profile/view/spenap/ Bulfaiter]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005336.html applies] for N9.
* [http://talk.maemo.org/member.php?u=33969 Christian Ratzenhofer] ([http://maemo.org/profile/view/merlin1991/ merlin1991]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005337.html applies] for N950.
* [http://talk.maemo.org/member.php?u=22395 Luke Jr] ([http://maemo.org/profile/view/luke-jr/ luke-jr]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005339.html applies] for N950 (would also accept N9).
* [http://talk.maemo.org/member.php?u=25441 Daniele Maio] ([http://maemo.org/profile/view/b0unc3/ b0unc3]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005342.html applies] for N9.
* [http://talk.maemo.org/member.php?u=138 Fred Lefévère-Laoide] ([http://maemo.org/profile/view/fredoll/ fredoll]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005344.html applies] for N9.
* [http://talk.maemo.org/member.php?u=24295 Ilya Skriblovsky] ([http://maemo.org/profile/view/mitrandir/ Mitrandir]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005346.html applies] for N9.
* [http://talk.maemo.org/member.php?u=35969 Ivaylo Dimitrov] ([http://maemo.org/profile/view/freemangordon freemangordon]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005347.html applies] for N950.
* [http://talk.maemo.org/member.php?u=38507 Felipe Crochik] ([http://maemo.org/profile/view/fcrochik/ fcrochik]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005345.html applies] for N9.
* [http://talk.maemo.org/member.php?u=36356 Mikko Koskenranta] ([http://maemo.org/profile/view/mik546/ MiK546]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005349.html applies] for any device.
* [http://talk.maemo.org/member.php?u=6503 Vlad Vasilyeu] ([http://maemo.org/profile/view/vasvlad/ vasvlad]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005359.html applies] for N9.
* [http://talk.maemo.org/member.php?u=24567 Ruediger Schiller], ([http://maemo.org/profile/view/chemist/ chemist]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005361.html applies] for any device.
* [http://talk.maemo.org/member.php?u=59834 Holger Nahrstaedt] ([http://maemo.org/profile/view/holgern/ HolgerN]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005367.html applies] for any device.
* [http://talk.maemo.org/member.php?u=15867 Koos Vriezen] ([http://maemo.org/profile/view/koos/ koos]) [http://lists.maemo.org/pipermail/maemo-community/2012-May/005371.html applies] for N9.
* [http://talk.maemo.org/member.php?u=17664 Assaf Paz] ([http://maemo.org/profile/view/damagedspline/ damagedspline]) [http://lists.maemo.org/pipermail/maemo-community/2012-May/005372.html applies] for N9.
* [http://talk.maemo.org/member.php?u=6957 Kimitake] ([http://maemo.org/profile/view/kimitake/ Kimitake]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005375.html applies] for N9.
* [http://talk.maemo.org/member.php?u=44234 Akos Polster] ([http://maemo.org/profile/view/pipacs/ pipacs]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005378.html applies] for N9.
* [http://talk.maemo.org/member.php?u=8068 Matan Ziv-Av] ([http://maemo.org/profile/view/matan/ matan]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005380.html applies] for N950 (would also accept N9).
* [http://talk.maemo.org/member.php?u=50163 Paul Sleggs] ([http://maemo.org/profile/view/vee/ vi_]) [http://lists.maemo.org/pipermail/maemo-community/2012-May/005398.html applies] for N950.
* [http://talk.maemo.org/member.php?u=51653 Karsten van Herwaarden] ([http://maemo.org/profile/view/mr_pingu/ MrPingu]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005401.html applies] for N950 (would also accept N9).
* [http://talk.maemo.org/member.php?u=10410 Alan Bruce] ([http://maemo.org/profile/view/qole/ qole]) [http://lists.maemo.org/pipermail/maemo-community/2012-June/005402.html applies] for N9.
* [http://talk.maemo.org/member.php?u=2121 Robert Bauer] ([http://maemo.org/profile/view/sd69/ SD69]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005413.html applies] for N950 (would also accept N9).
* [http://talk.maemo.org/member.php?u=23051 Danilo Luvizotto] ([http://maemo.org/profile/view/traysh/ traysh]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005425.html applies] for N950 (would also accept N9).
* [http://talk.maemo.org/member.php?u=3954 Ed Bartosh] ([http://maemo.org/profile/view/ed_/ ed_]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005426.html applies] for N9 (would also accept N950).
* [http://talk.maemo.org/member.php?u=45467 Ejas Mudar] ([http://maemo.org/profile/view/ejasmudar/ ejasmudar]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005427.html applies] for N950 (would also accept N9).
* [http://talk.maemo.org/member.php?u=22759 Simon La Rose] ([http://maemo.org/profile/view/hawaii/ hawaii]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005428.html applies] for N9.
* [http://talk.maemo.org/member.php?u=25907 Michael Cronenworth] ([http://maemo.org/profile/view/mooninite/ mooninite]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005432.html applies] for N9.
* [http://talk.maemo.org/member.php?u=9460 Sanjeev Visvanatha] ([http://maemo.org/profile/view/eipi/ eipi]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005437.html applies] for N9.
* [http://talk.maemo.org/member.php?u=25149 Max Usachev] ([http://maemo.org/profile/view/plastun/ plastun]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005441.html applies] for any device.
* [http://talk.maemo.org/member.php?u=27137 Ivan Galvez Junquera] ([http://maemo.org/profile/view/ivgalvez/ ivgalvez]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005451.html applies] for N9.
* [http://talk.maemo.org/member.php?u=40462 Rob Simpson] ([http://maemo.org/profile/view/robbiethe1st/ Robbiethe1st]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005453.html applies] for N9.
* [http://talk.maemo.org/member.php?u=53550 Marcin Mielniczuk] ([http://maemo.org/profile/view/marmistrz/ marmistrz]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005455.html applies] for any device.
* [http://talk.maemo.org/member.php?u=26017 Harald Schmitt], ([http://maemo.org/profile/view/hschmitt/ hschmitt]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005458.html applies] for any device.
* [http://talk.maemo.org/member.php?u=39604 Dennis Groenen] ([http://maemo.org/profile/view/idont/ iDont]) [http://lists.maemo.org/pipermail/maemo-community/2012-June/005459.html applies] for N950 (would also accept N9).
* [http://talk.maemo.org/member.php?u=31300 Ahcene Boubekki] ([http://maemo.org/profile/view/opax/ opax]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005461.html applies] for N950 (would also accept N9).
* [http://talk.maemo.org/member.php?u=10131 Erik Hovland] ([http://maemo.org/profile/view/microe/ microe]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005462.html applies] for N950 (would also accept N9).
* [http://talk.maemo.org/member.php?u=10214 Rainer Dorsch] ([http://maemo.org/profile/view/rdorsch/ rdorsch]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005463.html applies] for any device.
* [http://talk.maemo.org/member.php?u=39727 Alexey Roslyakov] (e-yes), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005465.html applies] for N950.
* [http://talk.maemo.org/member.php?u=35942 Mikhail Ramalho], ([http://maemo.org/profile/view/mikhail_ramalho/ mikhail_ramalho]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005467.html applies] for N9.
* [http://talk.maemo.org/member.php?u=40706 Xabier Rodríguez]  ([http://maemo.org/profile/view/calvaris/ calvaris]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005470.html applies] for N9.
* [http://talk.maemo.org/member.php?u=20627 Philippe &quot;RzR&quot; Coval] ([http://maemo.org/profile/view/rzr/ www.rzr.online.fr]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005472.html applies] for N950.
* [http://talk.maemo.org/member.php?u=52130 Piotr Jawidzyk] ([http://maemo.org/profile/view/estel/ Estel]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005473.html applies] for N950.
* [http://talk.maemo.org/member.php?u=25567 Jed Leahy] (jalyst), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005479.html applies] for N950 (would also accept N9).
* [http://talk.maemo.org/member.php?u=58159 Marco Geiger] ([http://maemo.org/profile/view/almamo/ almamo]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005484.html applies] for N9 (would also accept N950).
* [http://talk.maemo.org/member.php?u=59809 Node One] ([http://maemo.org/profile/view/itsnotabigtruck/ itsnotabigtruck]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005482.html applies] for N950 (would also accept N9).

Submissions already discarded after a first review:
* [http://talk.maemo.org/member.php?u=39177 Kent Madarcos] (kent_autistic), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005300.html applies] for N9.
* [http://talk.maemo.org/member.php?u=58519 Indri Puspita W] (ibrakalifa), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005315.html applies] for N950.
* [http://talk.maemo.org/member.php?u=39300 Praveen Chand] (praveenchand), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005322.html applies] for N950.
* [http://talk.maemo.org/member.php?u=45783 Gregory Kovelman] (drucula), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005341.html applies] for any device.
* [http://talk.maemo.org/member.php?u=48393 Tiago Lopes] (trlopes1974), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005350.html applies] for any device.
* [http://talk.maemo.org/member.php?u=54577 Jesús Carballo] (jecargo22), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005360.html applies] for N9.
* [http://talk.maemo.org/member.php?u=56711 Sonv Dubey] ([http://maemo.org/profile/view/sourav/ Sourav.Dubey]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005364.html applies] for any device.
* [http://talk.maemo.org/member.php?u=34187&amp;tab=aboutme&amp;simple=1 zimon] ([http://maemo.org/profile/view/zimon/ zimon]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005370.html applies] for any device.
* [http://talk.maemo.org/member.php?u=38405 Tobias Merk] (Dr.Heyde), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005376.html applies] for N950.
* [http://talk.maemo.org/member.php?u=57107 Sifo] (Sifo) [http://lists.maemo.org/pipermail/maemo-community/2012-May/005397.html applies] for any device.
* [http://talk.maemo.org/member.php?u=62006 Francesco Vollero] (Fvollero), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005388.html applies] for any device.
* [http://talk.maemo.org/member.php?u=52396 Roland Sennrich] (nicetux), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005435.html applies] for any device.

Submissions already discarded after a second review:
* [http://talk.maemo.org/member.php?u=14243 Timo Pelkonen] ([http://maemo.org/profile/view/ossipena/ ossipena]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005310.html applies] for N9.
* [http://talk.maemo.org/member.php?u=24787 Kathy Smith] ([http://maemo.org/profile/view/revdkathy/ RevdKathy]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005348.html applies] for any device.
* [http://talk.maemo.org/member.php?u=58544 Maurice Fakhry] ([http://maemo.org/profile/view/myname24/ myname24]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005334.html applies] for N950.
* [http://talk.maemo.org/member.php?u=36321 Daniel Persson] (toxaris) [http://lists.maemo.org/pipermail/maemo-community/2012-May/005368.html applies] for N950 (would also accept N9).
* [http://talk.maemo.org/member.php?u=34156 Misha Ketslah] (ZogG), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005390.html applies] for N950.
* [http://talk.maemo.org/member.php?u=59020 Jonni Rainisto] ([http://maemo.org/profile/view/jonni/ jonni]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005321.html applies] for N950 (would also accept N9).
* [http://talk.maemo.org/member.php?u=24349 Ashish Chapagain] ([http://maemo.org/profile/view/somedude/ somedude]), [http://lists.maemo.org/pipermail/maemo-community/2012-May/005331.html applies] for N9.
* [http://talk.maemo.org/member.php?u=54146 Arto Jalkanen] ([http://maemo.org/profile/view/ajalkane/ ajalkane]), [http://lists.maemo.org/pipermail/maemo-community/2012-June/005443.html applies] for N9.

Self discarded submissions:
* [http://talk.maemo.org/member.php?u=30054 Michael Demetriou] ([http://maemo.org/profile/view/qwazix/ qwazix]) [http://lists.maemo.org/pipermail/maemo-community/2012-May/005373.html applies] for N950 (would also accept N9).
----

=== Winners ===
In order to receive the prize, it's mandatory that all awarded create an account at [http://www.developer.nokia.com/ Nokia Developers]. Once created, you need to add your postal information to your profile (otherwise Nokia won't know where to send the device). 

Then we need to know your Nokia Developer ID (the login name at Nokia Developers that you have created). All the winners will receive a notification email, please respond to council@maemo.org including the following data:
* Full name
* ID at Nokia Developers
* Email address.

Please send this data before next Monday, June 25th, as we need to provide the full list to Nokia to start sending the devices.

Final list of winners:

* [http://talk.maemo.org/member.php?u=33969 Christian Ratzenhofer] ([http://maemo.org/profile/view/merlin1991/ merlin1991]) will receive N950.
* [http://talk.maemo.org/member.php?u=39604 Dennis Groenen] ([http://maemo.org/profile/view/idont/ iDont]) will receive N950.
* [http://talk.maemo.org/member.php?u=35969 Ivaylo Dimitrov] ([http://maemo.org/profile/view/freemangordon freemangordon]) will receive N950.
* [http://talk.maemo.org/member.php?u=25578 Mohammad Abu-Garbeyyeh] ([http://maemo.org/profile/view/mohammad7410/ MohammadAG]) will receive N9.
* [http://talk.maemo.org/member.php?u=49449 Paolo Iommarini] ([http://maemo.org/profile/view/sakya/ sakya]) will receive N950.
* [http://talk.maemo.org/member.php?u=50163 Paul Sleggs] ([http://maemo.org/profile/view/vee/ vi_]) will receive N950.
* [http://talk.maemo.org/member.php?u=39316 Pavol Rohár] ([http://maemo.org/profile/view/pali/ pali]) will receive N950.
* [http://talk.maemo.org/member.php?u=27137 Ivan Galvez Junquera] ([http://maemo.org/profile/view/ivgalvez/ ivgalvez] will receive N9.
* [http://talk.maemo.org/member.php?u=2121 Robert Bauer] ([http://maemo.org/profile/view/sd69/ SD69]) will receive N950.
* [http://talk.maemo.org/member.php?u=3954 Ed Bartosh] ([http://maemo.org/profile/view/ed_/ ed_]) will receive N9.
* [http://talk.maemo.org/member.php?u=26017 Harald Schmitt], ([http://maemo.org/profile/view/hschmitt/ hschmitt]) will receive N9.
* [http://talk.maemo.org/member.php?u=53550 Marcin Mielniczuk] ([http://maemo.org/profile/view/marmistrz/ marmistrz]) will receive N9..
* [http://talk.maemo.org/member.php?u=8068 Matan Ziv-Av] ([http://maemo.org/profile/view/matan/ matan]) will receive N950.
* [http://talk.maemo.org/member.php?u=16543 Roman Moravcik] ([http://maemo.org/profile/view/rmoravcik/ rmoravcik]) will receive N9.
* [http://talk.maemo.org/member.php?u=40706 Xabier Rodríguez]  ([http://maemo.org/profile/view/calvaris/ calvaris]) will receive N9.
* [http://talk.maemo.org/member.php?u=24567 Ruediger Schiller], ([http://maemo.org/profile/view/chemist/ chemist]) will receive N9.
* [http://talk.maemo.org/member.php?u=48018 Niel Nielsen] ([http://maemo.org/profile/view/nieldk/ nieldk]) will receive N950.
* [http://talk.maemo.org/member.php?u=52130 Piotr Jawidzyk] ([http://maemo.org/profile/view/estel/ Estel] will receive N950.
* [http://talk.maemo.org/member.php?u=59834 Holger Nahrstaedt] ([http://maemo.org/profile/view/holgern/ HolgerN]) will receive N9.
* [http://talk.maemo.org/member.php?u=24295 Ilya Skriblovsky] ([http://maemo.org/profile/view/mitrandir/ Mitrandir]) will receive N9.
* [http://talk.maemo.org/member.php?u=38507 Felipe Crochik] ([http://maemo.org/profile/view/fcrochik/ fcrochik]) would receive N9, but he has generously donated it to the [http://wiki.maemo.org/Maemo.org_coding_competition_2012 Coding Competition].
* [http://talk.maemo.org/member.php?u=6503 Vlad Vasilyeu] ([http://maemo.org/profile/view/vasvlad/ vasvlad]) will receive N9.
* [http://talk.maemo.org/member.php?u=35942 Mikhail Ramalho], ([http://maemo.org/profile/view/mikhail_ramalho/ mikhail_ramalho]) will receive N9.
* [http://talk.maemo.org/member.php?u=40462 Rob Simpson] ([http://maemo.org/profile/view/robbiethe1st/ Robbiethe1st]) will receive N9.
* [http://talk.maemo.org/member.php?u=51399 Kenneth Kasilag] ([http://maemo.org/profile/view/Hurrian/ Hurrian]) will receive N9.</text>
    </revision>
  </page>
  <page>
    <title>Community Council</title>
    <id>212</id>
    <revision>
      <id>48743</id>
      <timestamp>2012-07-13T19:59:36Z</timestamp>
      <contributor>
        <username>estel</username>
        <id>4426</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">&lt;div style=&quot;border: 1em solid #888888; background: #888888; border-radius: 1em; -moz-border-radius: 1em; color: #f8f8f8; font-size: 120%; font-style: italic; font-family: Times New Roman, Droid Serif, Nokia Serif, serif; line-height: 140%&quot;&gt;The Maemo Community Council is a five-person body chosen by the Maemo community. The Council's mission is to &quot;'''represent the Maemo community's best interests, and to act as a community conduit for Nokia-generated information.'''&quot;&lt;/div&gt;

{| width=&quot;100%&quot; style=&quot;text-align: center&quot; 
!colspan=&quot;5&quot; | Current: May 2012 - October 2012 &lt;br /&gt;[[Community_Council/Council_election_May_2012/Candidate_declarations]]&lt;br /&gt;&lt;small&gt;Candidates | * ''Chair'' | ^ &lt;strike&gt;Stepped down&lt;/strike&gt;&lt;/small&gt;
|-
!width=&quot;20%&quot;| [[Image:estel.jpg|72px]]
!width=&quot;20%&quot;| [[Image:No_image.gif|72px]]
!width=&quot;20%&quot;| [[Image:No_image.gif|72px]]
!width=&quot;20%&quot;| [[Image:Mcc-woody14619.png|72px]]
!width=&quot;20%&quot;| [[Image:3D03C5DC-655D-418C-98F0-919B1EAF4FAB.JPG|72px]]
|-
| Piotr Jawidzyk^&lt;br/&gt; &lt;strike&gt;([[User:Estel|Estel]])&lt;/strike&gt;
| RM Bauer&lt;br/&gt; ([[User:sd69|sd69]])
| Ivan Galvez Junquera&lt;br/&gt; ([[User:ivgalvez|ivgalvez]])
| Craig Woodward*&lt;br/&gt; ([[User:woody14619|woody14619]])
| Niel Nielsen&lt;br/&gt; ([[User:nieldk|nieldk]])
|-
|colspan=&quot;5&quot; |
|-
! colspan=&quot;2&quot; style=&quot;font-size: smaller; vertical-align: top; padding: 10px&quot; | October 2011 - May 2012 &lt;br /&gt;&lt;small&gt;[[Community_Council/Council_election_Q3_2011/Candidate_declarations|Candidates]]&lt;/small&gt;
| colspan=&quot;3&quot; style=&quot;font-size: smaller; text-align: left&quot; |
&lt;div style=&quot;inline-block; float: left; width: 20em&quot;&gt;[[Image:No_image.gif|30px]] RM Bauer ([[User:sd69|sd69]])*&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:No_image.gif|30px]] Momcilo Majic ([[User:momcilo|momcilo]])&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:No_image.gif|30px]] Jeremiah Foster ([[User:jeremiah|jeremiah]])&lt;/div&gt;
|-
! colspan=&quot;2&quot; style=&quot;font-size: smaller; vertical-align: top; padding: 10px&quot; | March 2011 - October 2011 &lt;br /&gt;&lt;small&gt;[[Community_Council/Council_election_Q1_2011/Candidate_declarations|Candidates]]&lt;/small&gt;
| colspan=&quot;3&quot; style=&quot;font-size: smaller; text-align: left&quot; |
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Rga2.png|30px]] Randall Arnold ([[User:Texrat|Texrat]])&lt;/div&gt;
&lt;div style=&quot;inline-block; float: left; width: 20em&quot;&gt;[[Image:No_image.gif|30px]] RM Bauer ([[User:sd69|sd69]])&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-alan_bruce.png|30px]] Alan Bruce ([[User:qole|qole]])&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:No_image.gif|30px]] Felipe Crochik ([[User:fcrochik|fcrochik]])*&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-attila_csipa-square.png|30px]] Attila Csipa ([[User:achipa|Achipa/Attila77]])&lt;/div&gt;
|-
! colspan=&quot;2&quot; style=&quot;font-size: smaller; vertical-align: top; padding: 10px&quot; | September 2010 - March 2011 &lt;br /&gt;&lt;small&gt;[[Community_Council/Council_election_Q3_2010/Candidate_declarations|Candidates]]&lt;/small&gt;
| colspan=&quot;3&quot; style=&quot;font-size: smaller; text-align: left&quot; |
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-attila_csipa-square.png|30px]] Attila Csipa ([[User:Achipa|Achipa/Attila77]])&lt;/div&gt;
&lt;div style=&quot;inline-block; float: left; width: 20em&quot;&gt;[[Image:Mcc-andrew_flegg.jpg|30px]] Andrew Flegg ([[User:jaffa|Jaffa]])&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Andy80_Amsterdam_256x256.jpg|30px]] Andrea Grandi ([[User:Andy80|andy80]])&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-tim_samoff.jpg|30px]] Tim Samoff ([[User:timsamoff|timsamoff]])*&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Kathy.jpg|30px]] Kathy Smith ([[User:Revdkathy|revdkathy]])&lt;/div&gt;
|-
! colspan=&quot;2&quot; style=&quot;font-size: smaller; vertical-align: top; padding: 10px&quot; | March 2010 - September 2010 &lt;br /&gt;&lt;small&gt;[[Community_Council/Candidate_declarations_for_March_2010|Candidates]]&lt;/small&gt;
| colspan=&quot;3&quot; style=&quot;font-size: smaller; text-align: left&quot; |
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-ryan_abel.jpg|30px]] Ryan Abel ([[User:Generalantilles|GeneralAntilles]])&lt;/div&gt;
&lt;div style=&quot;inline-block; float: left; width: 20em&quot;&gt;[[Image:Rga2.png|30px]] Randall Arnold ([[User:Texrat|Texrat]])&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-attila_csipa-square.png|30px]] Attila Csipa ([[User:Achipa|Achipa/Attila77]])&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-andrew_flegg.jpg|30px]] Andrew Flegg ([[User:jaffa|Jaffa]])*&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-javispedro.jpeg|30px]] Javier S. Pedro ([[User:Javispedro|javispedro]])&lt;/div&gt;
|-
! colspan=&quot;2&quot; style=&quot;font-size: smaller; vertical-align: top; padding: 10px&quot; | September 2009 - March 2010 &lt;br /&gt;&lt;small&gt;[[Community_Council/Candidate_declarations_for_September_2009|Candidates]]&lt;/small&gt;
| colspan=&quot;3&quot; style=&quot;font-size: smaller; text-align: left&quot; |
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Rga2.png|30px]] Randall Arnold ([[User:Texrat|Texrat]])&lt;/div&gt;
&lt;div style=&quot;inline-block; float: left; width: 20em&quot;&gt;[[Image:Mcc-alan_bruce.png|30px]] Alan Bruce ([[User:qole|qole]])&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-Graham Cobb.jpg|30px]] Graham Cobb ([[User:gcobb|gcobb]])&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-Matthew_Lewis.png|30px]] Matthew Lewis ([[User:penguinbait|penguinbait]])&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-Valerio_valerio.png|30px]] Valério Valério ([[User:Vdvsx|VDVsx]])*&lt;/div&gt;
|-
! colspan=&quot;2&quot; style=&quot;font-size: smaller; vertical-align: top; padding: 10px&quot; | March 2009 - September 2009 &lt;br /&gt;&lt;small&gt;[[Task:Community_Council/Candidate_declarations_for_March_2009|Candidates]]&lt;/small&gt;
| colspan=&quot;3&quot; style=&quot;font-size: smaller; text-align: left&quot; |
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-ryan_abel.jpg|30px]] Ryan Abel ([[User:Generalantilles|GeneralAntilles]])&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-alan_bruce.png|30px]] Alan Bruce ([[User:qole|qole]])&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-andrew_flegg.jpg|30px]] Andrew Flegg ([[User:Jaffa|Jaffa]])*&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-kees_jongenburger.jpg|30px]] Kees Jongenburger ([[User:keesj|keesj]])&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-tim_samoff.jpg|30px]] Tim Samoff ([[User:timsamoff|timsamoff]])&lt;/div&gt;
|-
!colspan=&quot;2&quot; style=&quot;font-size: smaller; vertical-align: top; padding: 10px&quot; | Inaugral: September 2008 - February 2009
| colspan=&quot;3&quot; valign=&quot;top&quot; style=&quot;font-size: smaller; text-align: left&quot; |
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-ryan_abel.jpg|30px]] Ryan Abel ([[User:Generalantilles|GeneralAntilles]])*&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-andrew_flegg.jpg|30px]] Andrew Flegg ([[User:Jaffa|Jaffa]])&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-eduardo_lima.jpg|30px]] Eduardo Lima ([[User:etrunko|etrunko]])&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-simon_pickering.jpg|30px]] Simon Pickering ([[User:lardman|lardman]])&lt;/div&gt;
&lt;div style=&quot;float: left; width: 20em&quot;&gt;[[Image:Mcc-tim_samoff.jpg|30px]] Tim Samoff ([[User:timsamoff|timsamoff]])&lt;/div&gt;
|}


== Get in contact ==
Open communication is one of the core values of the Maemo Community Council, both to serve as an example to Nokia and because it's the right thing to do. All communication is open by default.

* Community-related news, announcements, and calls for participation are summarized in the [http://maemo.org/community/council Council blog].
* Council blog posts are syndicated to the [http://talk.maemo.org/forumdisplay.php?f=16 Community subforum] at [http://talk.maemo.org/ Talk] with a [Council] tag.
* If you have a community-related idea or issue, please post it in the Community subforum at Talk.
* Finally, Council members are usually present over IRC at freenode.net/maemo and are always happy to chat with you.

If you've posted something and want to ensure the council sees it; please email council@maemo.org.

== FAQ ==
{{Main|Community Council/FAQ}}
Maemo Community Council members are unpaid volunteers who are '''not''' employed by Nokia Corporation. Likewise, the Council has not signed a non-disclosure agreement NDA with Nokia. Maemo Community Council elections are held every six months.

== Council work ==
In addition to being committed community members (and all that entails), some of the specific responsibilities of the council include:
* Facilitation: making sure that one portion of the community knows what is going on in another
* Representing the community with regards to the paid maemo.org contributors
* Hiring of maemo.org staff
* Pushing to expand the community through organic growth
* Being able to represent the community to Nokia, especially when dealing with sensitive information; for example, attendance at N900 launch as community reps.
* Backup mentors for the [[GSoC_2009|Google Summer of Code]] participation.

To keep track of the ongoing work, see the [http://maemo.org/community/council/ council blog] and the summary below.

The remit of the council revolves around the issues of the Maemo community. The council is not a consumer advocacy group (save for exceptional circumstances) as Nokia believes they have comprehensive consumer feedback mechanisms already. For example, the council ''can'':

* Decide who gets sponsored to annual events like the [http://conference2010.meego.com MeeGo Conference] and [[Maemo Summit 2009|Maemo Summit]].
* Be involved in budgetary decisions around maemo.org
* Organise the [[Fremantle Developer Device Queue|developer device queue]]
* Represent Maemo users and community at meego.com

The council ''cannot'':

* Change Nokia's commercial decisions regarding end-user commercial grade MeeGo support on the N900.
* Force Adobe/Nokia to release Flash 10.1.

=== Current hot topics ===
{| class=&quot;wikitable&quot;
! Issue
! Point of contact
|-
| [[Extras-testing/QA_Checklist/QA_Improvements|QA improvements]]
| [http://maemo.org/profile/view/achipa/ Attila Csipa]
|-
| [[Fremantle Developer Device Queue]]
| [[User:generalantilles|Ryan Abel]]
|-
| [http://maemo.org/community/council/open_letter_of_support_for_python_on_the_maemo-meego_platform/ Extras-Ovi collaboration] (i.e. Python in Ovi)
| [http://maemo.org/profile/view/achipa/ Attila Csipa]
|-
| [[Community SSU]]
| [[User:Jaffa|Andrew Flegg]]
|-
| [[Community Council/Community fund|Community fund]]
| [[User:Jaffa|Andrew Flegg]]
|-
| [[Community Awards|Community Awards]]
| [[User:Estel|Piotr Jawidzyk]]
|}

If you think a specific, high-level topic is missing from this table, please get in touch.

==== Recent blog posts ====
&lt;rss&gt;http://maemo.org/community/council/rss.xml&lt;/rss&gt;

=== Past Highlights ===
* [[Opt_Problem|Auto-optification]]
* [http://maemo.org/community/council/nokia_response_to_mynokia_subscription_in_pr1-2/ MyNokia in PR1.2]
* [http://achipa.blogspot.com/2010/04/operation-qt-shuffle.html Qt package migration in extras-devel]
* [http://talk.maemo.org/showthread.php?t=52994 Maemo Brainstorm 2010]
* [[Task:PR1.2_autobuilder|PR1.2 SDK in autobuilder]]
* [[Task:Improving_maemo.org|maemo.org redesign]]
* [[Bugsquad]]
* [[Mer]]
* [[GSoC_2010|Google Summer of Code]]
* [[Maemo_Summit_2009|Maemo Summit 2009]]

== Election Process ==
{{main|Community Council/Election process}}
The 5 council members will be elected by the community. Elections are open to community members with an account over 3 months old and karma of 10 or more. Candidates can be anyone with a karma of 100 or above.

A list of eligible candidates will be published a few weeks before the elections. Based on this, a list of candidate declarations is put together.

Changes to the process require a referendum, a list of community referenda can be found on the above page.


== Media ==
# 2008-09-20: [[Media:Maemo_Summit_Community_Council_Presentation.pdf|Presentation]] used at [[Maemo_Summit_2008|Maemo Summit 2008]]: &quot;Introducing the Maemo Community Council&quot;
# 2010-04-02: [[Media:Mcc-avatar.png|Avatar]]: Maemo Community Council avatar for talk.maemo.org

[[Category:Community]]
[[Category:Community_Council]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Candidate declarations for March 2010</title>
    <id>3752</id>
    <revision>
      <id>31621</id>
      <timestamp>2010-03-26T13:55:08Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>Add third Q&amp;A responses</comment>
      <text xml:space="preserve">== Introduction ==
This page lists every candidate in the [[Community_Council/Council_election_Q1_2010|March 2010]] Maemo [[Community Council]] election, in alphabetical order. A brief summary of their declaration is given, along with a link to their full position and a link to individual Q&amp;A responses where appropriate.

There is also a [http://mobiletablets.blogspot.com/2010/03/maemo-community-council-candidates.html Q&amp;A #2 with all candidates] available at mobiletablets.blogspot.com.


== Ryan Abel / [http://maemo.org/profile/view/generalantilles/ GeneralAntilles] ==

&quot;I've been involved with Maemo in one way or another since the earliest days of the 770, I love this platform, I love this community, and I'd like to help make it the best it can be.&quot;&lt;ref&gt;[http://lists.maemo.org/pipermail/maemo-community/2010-March/004127.html '''Ryan Abel's''' nomination]&lt;/ref&gt;

[http://lists.maemo.org/pipermail/maemo-community/2010-March/004128.html Q&amp;A response #1] | [http://talk.maemo.org/showpost.php?p=580636&amp;postcount=9 Q&amp;A response #3]

== Randall Arnold / [http://maemo.org/profile/view/texrat/ Texrat] ==

&quot;As a council member I championed the welcoming of new members and rolled out a volunteer program called Maemo Greeters with a very simple goal: ask members to include helpful links in their talk.maemo.org signatures, thus easily propogating helpful info throughout the forum. The program was more successful than I had even imagined, growing through user suggestions to include multiple languages and a variety of resources and approaches. I see value in continuing this at MeeGo.&quot;&lt;ref&gt;[http://lists.maemo.org/pipermail/maemo-community/2010-March/003993.html '''Randall Arnold's''' nomination]&lt;/ref&gt;

[http://lists.maemo.org/pipermail/maemo-community/2010-March/004013.html Q&amp;A response #1]

== Andrew Black / [http://maemo.org/profile/view/andrewfblack andrewfblack] ==

&quot;I have been in the Maemo Community for about two(2) years now and I have jumped right in wanting to find a way to give back. I found this way in theme making. In the past year I have created and released over a dozen themes. I have released themes for every Maemo device including the 770 which I did not get until after I already had my N810. I have tried to help get more people interested in theming for Maemo by publishing how-to guides and helping answer any questions I get from new theme makers.&quot;&lt;ref&gt;[http://lists.maemo.org/pipermail/maemo-community/2010-March/004011.html '''Andrew Black's''' nomination]&lt;/ref&gt;

== Attila Csipa / [http://maemo.org/profile/view/achipa/ achipa/attila77] ==

&quot;I'm mostly known for my activities relating to Python and Qt (which was also the object of my talk on the last Summit), but am also a member of the Testing squad and have a dozen or so applications and libraries in the repositories (like AppWatch, QuickBrownFox, PyQt, support libraries for Easy Debian on Diablo, etc).&quot;&lt;ref&gt;[http://lists.maemo.org/pipermail/maemo-community/2010-March/004126.html '''Attila Csipa's''' nomination]&lt;/ref&gt;

[http://lists.maemo.org/pipermail/maemo-community/2010-March/004126.html Q&amp;A response #1]

== Andrew Flegg / [http://maemo.org/profile/view/jaffa/ Jaffa] ==

&quot;Having moved up through each generation, I've tried to be active and involved in all aspects of the Maemo community. The last six months, having stepped back from the council, have given me a new perspective. The biggest issue I've seen is one of communication and clear facilitation. We need to reduce the overhead and streamline community action.&quot;&lt;ref&gt;[http://lists.maemo.org/pipermail/maemo-community/2010-March/004118.html '''Andrew Flegg's''' nomination]&lt;/ref&gt;

[http://lists.maemo.org/pipermail/maemo-community/2010-March/004121.html Q&amp;A response #1] | [http://talk.maemo.org/showpost.php?p=581016&amp;postcount=10 Q&amp;A response #3]

== Andrea Grandi / [http://maemo.org/profile/view/andy80/ andy80] ==

&quot;I joined the Maemo Community since the first Maemo device was out (Nokia 770) and I've been always so excited for being able to contribute to this project. In the past I've attended at both Maemo Summit doing a short talk. During last summer I collaborated with PyMaemo team during a stage at Igalia and at the moment I'm developing a couple of applications using Python and Qt.&quot;&lt;ref&gt;[http://lists.maemo.org/pipermail/maemo-community/2010-March/004035.html '''Andrea Grandi's''' nomination]&lt;/ref&gt;

[http://lists.maemo.org/pipermail/maemo-community/2010-March/004055.html Q&amp;A response #1]

== Cosimo Kroll / [http://maemo.org/profile/view/zehjotkah/ zehjotkah] ==

&quot;I see myself as an interface between the average user and the developers/advanced user, because I understand, what developers/advanced users say, and can translate this into simple language. I can't code myself, so this is the best way to help the community in my opinion.&quot;&lt;ref&gt;[http://lists.maemo.org/pipermail/maemo-community/2010-March/004125.html '''Cosimo Kroll's''' nomination]&lt;/ref&gt;

[http://lists.maemo.org/pipermail/maemo-community/2010-March/004125.html Q&amp;A response #1] | [http://talk.maemo.org/showpost.php?p=576028&amp;postcount=6 Q&amp;A response #3]

== Javier S. Pedro / [http://maemo.org/profile/view/javispedro/ javispedro] ==

&quot;The biggest issue to solve when you have a set of volunteers is how to make the most of the limited amount of time they are willing to contribute to a project. However, instead of attacking this problem, one can decide to try to increase this amount of time -- developers (and I guess most people :) ) tend to &quot;always find more time&quot; for tasks they like.&quot;&lt;ref&gt;[http://lists.maemo.org/pipermail/maemo-community/2010-March/004109.html '''Javier Pedro's''' nomination]&lt;/ref&gt;

[http://lists.maemo.org/pipermail/maemo-community/2010-March/004109.html Q&amp;A response #1]

== Arek Stopczynski / [http://maemo.org/profile/view/hopbeat/ hopbeat] ==

&quot;Why I would like to become part of the council? I can provide user&amp;developer insight plus I don't often get emotional: I believe in listening to others (and telling them they have no idea what they are talking about, if this is the case; but not before they are heard)&quot;&lt;ref&gt;[http://lists.maemo.org/pipermail/maemo-community/2010-March/004104.html '''Arek Stopczynski's''' nomination]&lt;/ref&gt;

[http://lists.maemo.org/pipermail/maemo-community/2010-March/004107.html Q&amp;A response #1] | [http://talk.maemo.org/showpost.php?p=576283&amp;postcount=7 Q&amp;A response #3]

== Steven Yeager / [http://maemo.org/profile/view/yodude/ YoDude] ==

&quot;I believe that the Community Council we elect should have some representation from the average customer/user base. I also believe that the forums are, and will continue to be the communication means of choice for many engaged users. I also believe that some of the future leaders of our community will come from within the ranks of these engaged users.&quot;&lt;ref&gt;[http://lists.maemo.org/pipermail/maemo-community/2010-March/004098.html '''Steven Yeager's''' nomination]&lt;/ref&gt;

[http://talk.maemo.org/showpost.php?p=570079&amp;postcount=96 Q&amp;A response #1] | [http://talk.maemo.org/showpost.php?p=582805&amp;postcount=12 Q&amp;A response #3]

== References ==

&lt;references /&gt;
[[Category:Community]][[Category:Community Council]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Candidate declarations for September 2009</title>
    <id>2436</id>
    <revision>
      <id>20322</id>
      <timestamp>2009-10-18T11:50:42Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <text xml:space="preserve">== Randall Arnold ==

'''maemo.org Profile:''' [http://maemo.org/profile/view/texrat/ texrat]

First some history.  As the QA engineer for tablet products in 2006 I worked tirelessly to ensure quality of N800 devices, developing test and training plans above and beyond what the program had provided.  When I discovered that a growing community of developers was hungry for Nokia interaction, I began volunteering my time to help where I could.  As many know that partially consisted of dropping hints to maintain community interest, but it also included providing support to the community as well as communicating community concerns to the proper Nokia channels.  I ran an internal blog called &quot;The Long Tail&quot; that frequently highlighted tablet issues.  When our factory shut down, I intercepted N800 faceplates destined for scrap and provided them free to interested community members.

I also have many years experience in programming and product design which I believe helps me identify with consumer needs.

These are various examples describing my interest in the products and the high desire for them to succeed.  As a council member I will continue to devote my energies to improving the community-corporate relationship and advocating the product line to the general public (while also working to ensure the average user does not get lost in the process).  As a former Nokia employee I understand the culture and motivations behind many product decisions but at the same time I strive to be objective enough not to always accept them as excuses.  ; )

== Gary Birkett ==

'''maemo.org Profile:''' [http://maemo.org/profile/view/lcuk/ lcuk]

I have decided to stand for the council this time round after having my ear bent from many people.
I have been active in the community for the last 18 months and have been hanging out in irc and the regular channels and hacking away at my liqbase software during this time.
During this time I have spoken with lots of people in the community and have tried to create simple and personal computing apps which connect us at a human level.

There has always been a strong desire to use the best software we can find/create/use on all our maemo devices and give the best experience possible on each of them.
Coupled with this, has always been a strong need for optimization in the mobile devices platform and have always been on hand to help and assist with projects and mechanisms.
My experiences with liqbase allows me to help people get the most out of with GTK and QT and SDL or PYGAME to find the best path through a problem.

I am a firm believer in core solid basic principles and help and encourage anybody hacking on the platform, creating new and innovative apps and hacks makes it interesting for all.
Coaxing these hacks and lessons into the general community is a practical useful thing and will help the platform to florish over the coming years :)

A further aspect of my candidature is collaborative commercial work.
I recently took part in the onedotzero adventures in motion festival where I was asked to construct a remote control device for their identity installation.
Whilst at the festival there was a great deal of interest in using the platform to create bespoke custom applications for installations and projects people have.

I would like to further this commercial interest and create a mechanism for other interested parties to connect developers with commercial entities to bring their ideas and bespoke applications to life whilst putting food on the table of the extremely hard working developers within the community.

== Andrew Black ==

'''maemo.org Profile:''' [http://maemo.org/profile/view/AndrewFBlack/ AndrewFBlack]

I decided to run for the Council this time I have considered it the first two times but never followed thru on signing up I think its time I go for it.  I really want to see the community grow and get bigger.  I also want to make sure the people who stick with the N8x0 and 770s don't get left behind.  That is one of my biggest things.  I for one will keep releasing all my themes for all the devices I can. 

== Alan Bruce ==

'''maemo.org Profile:''' [http://maemo.org/profile/view/qole/ qole]

Pros:

* I have the [http://maemo.org/profile/list/category/itt_thanks/ highest number of &quot;thanks&quot;] on talk.maemo.org: Either I'm helpful, or I know how to &quot;game&quot; the system.  Or both.
* I survived a term on the council, and I now &quot;know the ropes&quot; a bit better. I can help bring some continuity to the council.
* I am a good bridge between the &quot;power users&quot; and the &quot;developers&quot; since I'm a bit of both (but mostly a &quot;power user&quot;).
* I stay current on the forums, and I think that I have a fairly good sense of what the issues are in the community.
* I believe that I am a good writer.
* I love the Internet Tablets, Maemo and open source software.
* As a Canadian, I can understand how cold weather and a harsh environment can shape the mindset of the Finnish people. I therefore can understand how Nokia thinks. ;-)
* I have a good sense of humour... And nice eyes.

Cons:

* I'm not a good administrator. I could draw up an agenda or chair a sprint meeting only under emergency circumstances. ;-)
* I have been known to be incautious in my phrasing. My inflammitory posts have upset some central people in the Maemo community. This may happen again.
* I am on the west coast of Canada. If I wish to attend an IRC meeting with European participants, [http://www.timeanddate.com/worldclock/city.html?n=256 I have to be up very early and the meeting has to start in the late afternoon].

So that's what I think about myself. If you want to form your own opinions, please peruse [http://talk.maemo.org/search.php?do=finduser&amp;u=10410 my] [http://talk.maemo.org/search.php?do=finduser&amp;u=10410&amp;starteronly=1 posts] on talk.maemo.org or the mailing lists. My personality is there, in all its glory and horror.

== Jay Carter ==

'''maemo.org Profile:''' [http://maemo.org/profile/view/zerojay/ zerojay]

I'm a 30 year old married father of one that has been working in the video game industry for 4 years this coming Halloween. A lot of my work within Maemo has mirrored the kind of work that I have ended up doing professionally: quality assurance, production and... well... all the dirty jobs no one else seems to want to do. I've applied the skills I've learned professionally over to Maemo repeatedly, as one can see through the many bugs I've filed against Maemo and surrounding software as well as recently spearheading the movement for community involvement with Nokia's translation teams. We use agile software development at work (SCRUM) just as Nokia and the council appears to, so I feel that I'll be extremely comfortable within this environment.

This wouldn't be the first time that I've been involved in leading a community as I've been involved as a community liason between a company I do not work for and a community I love. I know what to expect and how things typically work when trying to interact with commercial entities as a community member as well as the other way around.

Like you, I love these tablets and I want to do everything possible to not only keep them alive, but make them a true success. Help me make the most of this platform.

== Graham Cobb ==

'''maemo.org Profile:''' [http://maemo.org/profile/view/gcobb/ gcobb]

I am one of the oldest members of the community but I hope you won't count that against me!  By day I work in marketing, for a software company.  But I used to be a professional software developer, for about 15 years, before I turned to the dark side.  My background was in real-time software in data networking (routers and similar devices) -- so I really don't know much about GUIs!

I am a strong supporter of open source and am proud to consider myself (a small) part of that community, having made modest contributions to a few OS communities before (Tivo, OpenWRT, Linux kernel, Rex 6000).  Of course, the Maemo community is the leading community for open source development on personal devices so I am very excited to be part of it.

I have been an active developer on the Internet Tablets since soon after the 770 came out.  I work on things that I need for myself but try to make them useful for as many people as possible.  I am currently the most active maintainer in the GPE project and maintain the various Maemo ports (I still support gregale, bora and chinook/diablo as well as porting to Fremantle).  I enjoy fixing bugs as well as helping users.

I follow the -users, -developers and -community mailing lists closely and often contribute (you hadn't noticed?).  I am not as active in ITT/talk or on 
IRC.

If elected, my focus will be on empowering and further building the developer community.  I think that with the arrival of the N900 this is going to be a very exciting time for Maemo and I want to make sure that '''both''' commercial and hobbyist developers feel at home and can make an active contribution to the community.  My goal will be to do what I can to help make Maemo become the platform of choice for all the neat new applications because of its openness and its community as well as its devices.

My strengths for this role are:

* my experience of working in large companies, both in development and in marketing, so I can relate to Nokia and to the new breed of commercial developers who will be attracted to the platform, as well as other hobbyists like myself
* my interest in providing tools for developers to allow them to create and manage both large and small applications and ensuring they are well supported by Nokia and the Maemo council and staff
* my concern for the users, who are the people who will ultimately decide whether the Maemo platform is successful

One of my weaknesses is that my emails are too long!

== Stephen Gadsby ==

'''maemo.org Profile:''' [http://maemo.org/profile/view/sjgadsby/ sjgadsby]

About me:

* I'm a mid-thirties-ish father of three who is a technology generalist by trade and by nature.
* I joined the Maemo community--via itT--shortly after purchasing an N800 in February of 2007.
* Since the spring of 2008, I've been publishing weekly &quot;Bug Jars&quot; to summarize activity within maemo.org Bugzilla. Initially, this was to help end users begin to understand that complex system, but the bug reports quickly evolved to aid developers also.
* I follow all the maemo.org mailing lists and attend sprint meetings to keep abreast of community activity and maemo.org development.
* I'm active on talk.maemo.org--for years as a user and now as a super moderator. (I've yet to receive my cape though.) I enjoy answering user questions there, and I now also work to organize threads and eliminate spam.
* I can make a kazoo sound with my teeth.

My goals:

In short: to give back more to this community that gives so much.

I don't have an agenda beyond a desire and intention to work as I can
to help our community continue to improve as it grows. Really, I'll do
that whether selected for the council or not though.

Thank you for your time, and I welcome your questions. Well, some
questions. I don't know where you left your car keys.

== Matthew Lewis ==

'''maemo.org Profile:''' [http://maemo.org/profile/view/penguinbait/ penguinbait]

Hello, I am penguinbait. I have been using maemo since the 770 was new. I own the 800 and 810. I love all things linux, which is what drew me to Nokia hardware to begin with. My first attempt into compiling a window manger &quot;Window Maker&quot; for n800 proved successful. Further attempts into Openbox WM and ROX also produced a fast usable desktop, although buggy. KDE came next and proved to be pretty cool with support for BT mouse and CUPS allowing network printing. XFCE made a appearance briefly. CD/DVD burning on KDE.  Lots of tools scripted tools for cloning maemo OS.  Known to be occasionally vocal .........

== Valerio Valerio ==

'''maemo.org Profile:''' [http://maemo.org/profile/view/vdvsx/ VDVsx]

About me:

* Currently I'm a MSc researcher at University of Évora, Portugal, and in the last years I have actively participated in several OSS projects and community's.
* I joined the Maemo Community about an year ago. After the development of BlueMaemo, I received some very positive feedback from the community, that made me stick around.
* During my studies, I've done facilitator roles, that in my opinion can help me and the community if I'm elected. I also have a passion for organizing events/initiatives and make things happen.
* I consider myself a normal guy, in my free time I like to watch football, cinema, listen rock music and do some sports.

My past participation and future goals:

In the last year, I actively contributed to our community as a programmer, but also organized some initiatives as Andrew said. The big one's were the Google Summer of Code participation and more recently the schedule of the community days of the Maemo Summit (I really like to organize things :) ).

I'm not that 'vocal' as some of the other candidates. I like to have good discussions and believe that some talk is needed in order to reach good decisions for the community, but I don't like to ramble too much. Actually my philosophy of work is &quot;more action and less talk&quot; ;).

I'm a coder not a politic, so I also don't have a agenda ;) , but I do have a strong willing of help our community that gave me so much. I can promise that If I'm selected I will work as I can to help our community to improve even more.

Selected or not, I intend to continue among our community, developing new initiatives and help the grow of the community.

Questions about me or my intentions are welcome :) .
[[Category:Community_Council]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Community fund</title>
    <id>4759</id>
    <revision>
      <id>42829</id>
      <timestamp>2011-03-26T13:40:36Z</timestamp>
      <contributor>
        <username>sd69</username>
        <id>677</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">{{ambox|text=This is still a proposal. 
}}


== Background ==

Nokia has moved MeeGo to an R&amp;D project, and is committing to only release a single device. It has transferred day-to-day control of maemo.org to the community, with Nemein acting as contractors on behalf of the Community Council.

maemo.org provides the [http://talk.maemo.org/showthread.php?p=819111 following services]:

* Forum (talk.maemo.org)
* Online environment (Midgard)
** content management system
** Planet
** News
** Downloads
** Packages &amp; QA infrastructure
** User profiles
** Brainstorm
* Auto-builder
* apt repositories
* maemo-* mailing lists &amp; archives
* Email aliases (for example, council@maemo.org)
* Bug Reports (bugs.maemo.org)
* Wiki (wiki.maemo.org)
* Development Support (garage.maemo.org)
** VCS (git, svn)
** Web hosting
** Bug tracking
** Mailing lists &amp; archives

== Proposal ==

Alternative sponsorships and funding mechanisms would be sought (e.g. The Linux Foundation). However, in the event that no funding could be sourced externally, the Community would attempt to provide it.

Have a PayPal account, managed by a Council &quot;treasurer&quot;, for use at the Council's discretion. Funds may be donated one-off, or regularly, by anyone. The general purpose of the fund will be, in order of priority and non-exhaustively:

# Continuing the provision of the core maemo.org services.
# Purchasing hardware, if Nokia cannot provide it, for particular community projects.
# Rewarding key maemo.org contributors.

=== Detail ===

* Use PayPal's &quot;[https://merchant.paypal.com/cgi-bin/marketingweb?cmd=_render-content&amp;content_ID=merchant/donations Donations for non-profit organisations]&quot;.
* Donations could be made by anyone as one-off or regular donations. These would be non-refundable.
* The fund would be managed by the [[Community Council]].
* Upon being elected, the Council would select a Treasurer for their term. This must be completed within four weeks of the election.
* The outgoing Chair and Treasurer will transfer the fund to the incoming Chair and Treasurer. The new Chair and Treasurer will email maemo-community when this occurs, and confirm that the previous Chair &amp; Treasurer no longer have access.
* A majority of the Council will have to agree to the withdrawal of funds.
* Within the first week of every calendar month, the Treasurer will email maemo-community with the state of the fund, including debits &amp; credits.

=== Outstanding questions ===

* Does a legally recognised committee or entity need to be establised? In what jurisdiction? Without a registered US non-profit with 501(c)(3) status, normal business rates are charged by PayPal.
* Does PayPal support completely changing the ownership of an account? If not, could it be signed up as &quot;council-fund@maemo.org&quot; which is an email alias for the Chair &amp; Treasurer?
* Should the Council term be increased to 12 months? Is it orthogonal to this proposal, or encourages greater accountability?

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Council election May 2012/Candidate declarations</title>
    <id>5130</id>
    <revision>
      <id>47557</id>
      <timestamp>2012-05-24T18:04:37Z</timestamp>
      <contributor>
        <username>woody14619</username>
        <id>1579</id>
      </contributor>
      <minor/>
      <comment>/* Candidates for May 2012 Maemo Community Council elections */</comment>
      <text xml:space="preserve">== Candidates for May 2012 Maemo Community Council elections ==

The following candidates intend to stand for election to the Maemo [[Community Council]]. 

# [http://maemo.org/profile/view/ivgalvez/ Iván Gálvez Junquera / ivgalvez]
# [http://maemo.org/profile/view/estel/ Piotr Jawidzyk / Estel]
# [http://maemo.org/profile/view/jcharpak/ Joseph Charpak / jcharpak]
# [http://maemo.org/profile/view/Woody14619/ Craig Woodward / woody14619]
# [http://maemo.org/profile/view/Aries/ Arie Mark / Aries]
# [http://maemo.org/profile/view/Nieldk/ Niel Nielsen / NielDK]
# [http://maemo.org/profile/view/SD69/ R Bauer / SD69]


[http://maemo.org/vote/results.php?election_id=20 Election results ]

== Candidate declarations ==


=== Iván Gálvez Junquera ===

Nomination made on the [https://lists.maemo.org/mailman/listinfo/maemo-community/ maemo-community mailing list] at http://lists.maemo.org/pipermail/maemo-community/2012-April/005043.html

We have seen hard times recently with Nokia change of strategy, aging Maemo platform and devices and lack of maintenance of Maemo.org infrastructure.

To deal with all these problems I think it's mandatory to have a Council with enough members to attend the community problems, developers needs and communication with all parts involved. 

So, this is the primary reason I'm running for Council. We cannot afford to have again a one man Council, more people has to be involved. 

My spare time is limited, but I'll try to help as much as possible even if not elected.

Regarding some questions raised in in the mailing list and listed below in the Wiki:

''1. What are your thoughts on integrating Harmattan and potentially even Meltemi/other-open-Qt+Linux Nokia/other manufacturer devices into the Maemo community and maemo.org?'' 

Indeed I'd wish to see more cooperation between different projects, specially Harmattan and Mer/Nemo or Mer/Plasma Active. For sure that sharing infrastructure (such as Community OBS and forums) would be a win for all the projects involved, moreover considering that none of them are really widespread.

It is unfortunate that Harmattan community is split between different places and is not using the same infrastructure than Maemo. This is in my opinion the root cause of a lot of the problems we are facing right now, such us lack of maintenance, fear for future support from Nokia, etc.

I would like to push for embracing Harmattan in this community. A shared repository infrastructure could be a second step to Community OBS.

I don't care about vapourware (Meltemi, Tizen) driven by private companies and prefer to align with real community projects such as Mer/Nemo and Mer/Plasma Active.

''2. There is a thread on TMO highlighting some of the problems the current council has had. Do you agree with the assertions in that thread that there's been a breakdown in communication between Nokia, Nemein and the council; and the council and the community? If so, how do we fix it?[2]''

I have myself seen the lack of response from Nemein regarding questions about the QA process. However, it seems that communication has been re-established now and some of the problems are being solved, so I prefer to focus now on how to continue in that way.

''3. Do You agree, that lack of devices (hardware) is one of major roadblocks for Open mobility we would like to have? If yes, which way should Council focus on supporting:
a) Cooperation with big companies (Nokia?), hoping that they'll finally release &quot;device of our dreams&quot; (or thing close to)?
''
I don't care/don't expect anything like that.

''b) Starting hard, demanding and somewhat costly (without guarantee of success) path of creating own device via donations, which - if succeed - may result in totally, or almost totally open device (way of Open Pandora, Raspberry Pi, etc)?'' 

I will support Mer/Nemo and Mer/Plasma Active projects and devices such as the Vivaldi or other 'real' community/open source projects.
----

=== Piotr Jawidzyk ===

Nomination made on the [https://lists.maemo.org/mailman/listinfo/maemo-community/ maemo-community mailing list] at http://lists.maemo.org/pipermail/maemo-community/2012-April/005019.html

''&quot;As for myself, I would like to try my best @ helping to organize '''infrastructure governed by community''', without Nokia's roadblocks. Don't get me wrong - despite my personal opinion about our &quot;Nokia friends&quot;, I don't plan to go into &quot;war&quot; with them. I realize, that &quot;friendly divorce&quot; is much better for both parties, and would like to '''negotiate best terms''' of it.

''Here we come to another thing - despite common opinions, Council doesn't have any &quot;special tools&quot;. Really. The only difference from regular users that we have, is '''community mandate''' to talk with Nokia at Community behalf, and respect'n'trust - or lack of - from Community, that helps (or not, in second case) to coordinate projects, find solutions, settle small argues etc.&quot;''


'''Roadmap''' I would like Community to take:

'''1st priority'''
Fix issues with infrastructure maintainership. I would like to hear '''Nokia''' position here - if cooperation between people maintaining infrastructure and Council is going to be so unsatisfying, is Nokia going to accept community will of changing infrastructure tech staff? IMO, problem of &quot;hands tied&quot; (Nokia paying bills, yet not demanding real work in return, Council not paying bills, so tech staff having Council in... '''*deep*''' respect, as history shows) is first hot potato to take care of.

'''2nd priority'''
Determining, if cooperation with Nokia (overall, including tech staff payed by Nokia) is to Community benefit or not, in long term. This is going to be open question, answered again and again, as time passes and situation change.

''Variant '''a''' - positive effects of cooperation with Nokia''

'''3.a'''
Keeping to make infrastructure better and better for developers, overcoming existing problems with infrastructure maintainer's help.

'''4.a (same for both both Nokia-cooperation scenarios)'''
Clarification of confusing statement from '''Nokia''' about community governance. '''SD69''' was asking this via e-letters, quoting previous statements, and statements made my '''marias''' (Nokia representative) during last meeting with Council - results were totally opposite. He haven't got any answer from '''Nokia''' up to date.

Overall, I think that passing maintainership to Community - like it happened with QT - is most profitable scenario to both parties. Would like to negotiate that with Nokia.

'''5.a (same for both Nokia-cooperation scenarios)'''
Working with other platform's teams - both hardware'ish and software'ish (Mer, Vivaldi, Spark, Raspberry Pi, to name a few) - to share their experiences and knowledge. Preparing plans for fund-raising and developing '''own, independent device''' (hardware), powered by OS of our choice. If desirable by Community, transforming Maemo Community to self-governed, independent entity (foundation). Last one would require a referendum, obviously.

''Variant '''b''' -  non-satisfying results of cooperation with Nokia''

'''3.b'''
Getting info about current resources used by '''Maemo infrastructure'''. Sounds trivial, yet, when '''SD69''' asked it, '''Nokia's representative''' wasn't able to give more precise answers than &quot;I have no idea&quot;.

'''4.b (same for both both Nokia-cooperation scenarios)'''
Clarification of confusing statement from '''Nokia''' about community governance. '''SD69''' was asking this via e-letters, quoting previous statements, and statements made my '''marias''' (Nokia representative) during last meeting with Council - results were totally opposite. He haven't got any answer from '''Nokia''' up to date.

Overall, I think that passing maintainership to Community - like it happened with QT - is most profitable scenario to both parties. Would like to negotiate that with Nokia.

'''5.b'''
Steady preparing infrastructure migration, solving issues of creating legal entity (foundation), dropping trademarks, etc. At the same time, negotiating with Nokia about lifetime of closed source binary repositories (PR's, and so goes on), and possibility to allow us redistributing it (still in closed way), when Nokia decide to shut down Fremantle repos.

'''6.b (same for both Nokia-cooperation scenarios)'''
Working with other platform's teams - both hardware'ish and software'ish (Mer, Vivaldi, Spark, Raspberry Pi, to name a few) - to share their experiences and knowledge. Preparing plans for fund-raising and developing '''own, independent device''' (hardware), powered by OS of our choice. If desirable by Community, transforming Maemo Community to self-governed, independent entity (foundation). Last one would require a referendum, obviously.

I think I doesn't need to add, that variant '''&quot;a&quot;''' fit's my liking much more, but in my opinion, it's council responsibility to be prepared for both scenarios.

----

=== Joseph Charpak ===

Nomination made on the [https://lists.maemo.org/mailman/listinfo/maemo-community/ maemo-community mailing list] at http://lists.maemo.org/pipermail/maemo-community/2012-April/005051.html

''&quot;I've been a maemo user from the N800 days, although I actually started with the 770 when it dropped in price due to the release of the N800.. I've been an avid follower of TMO since its ITT days. As a council member I would strive for more transparency in council actions. As a starting point I would ensure that announcements would be made weekly through the council blog, with a new post to the ask a council thread on TMO as well.&quot;

----

=== Craig Woodward ===

Nomination made on the [https://lists.maemo.org/mailman/listinfo/maemo-community/ maemo-community mailing list] at http://lists.maemo.org/pipermail/maemo-community/2012-April/005063.html

'''Statement on my priorities as a Council member'''


As an active Council member, my primary focus would be on communications and clarity, both in documenting/echoing what the community desires are to be sure we as Council understand issues in the community, and with infrastructure support (Nokia/Nemein).  My primary concern would be to see that Maemo.com continues and that the infrastructure we enjoy is both preserved and maintained in a way that promotes continued development and growth in all project spaces.

''Replies to questions posed''

'''Thoughts on integrating Harmattan / Meltemi'''

Personally, I feel Harmattan users should be welcomed in the Maemo community, since in large part they can and often do identify as being part of the Maemo family.  The N9/N950 discussion areas show a good deal of activity, and for the most part many are already well integrated.  I would work toward finding a way to integrate the Harmattan community, and creating a stable home for that group here at Maemo.com.

As for other projects (Meltemi and more), I would say that has to depend on the group and how they are perceived, both by the community here and within their own community (if any).  Without knowing the structure and makeup of both core elements of the platform and/or it's target community, that question is impossible to answer.

In short, I do foresee the possibility of other groups merging into the Maemo family over time, even those that may not have had a direct relational tie to Maemo. (OpenMoko for example, would be a reasonable fit.) But both communities would have to have a ''desire'' to be together in order for it to work, and subsequently to see support on my part for a merging.

'''Fixing communication between the community, Council, Nokia, and Nemein'''

While I do feel there's been a breakdown of communication over the past term or two, I'm not sure it's clear that any one party in particular was to blame.  The view I've had leads me to believe that there were several factors in the breakdown, which are reasonably fixed with the following steps (now that there seems to be a rather clear focus from all parties because of elections):

First, we need to verify and record the proper channel used to communicate between parties, ad preferably at least 2 back-up channels per contact.  Be that e-mail, IRC, a bug-tack system, pager number, etc.  Those should be documented somewhere accessible to all Council members and contact points at Nokia and Nemein. 

Second, we need to have in place a standard location where Council will post all communications (or attempts at communicating) at least in summary. This should include not just meeting minutes but external communications as well, including summaries of issues raised by the community, and summaries of any communications or issues raised with or from Nokia/Nemein.  This will facilitate transparency for all groups involved, and allow for a single place where all parties can verify they're on the same page.

Third, we need to re-establish some form of regularity to the communications between the groups.  Be that a quick 10 minute meeting once a month, or a semi-weekly e-mail ping just to make sure everyone is still in the loop.  On-demand contact is great, but I feel that having a formal schedule, even if only a few times a term, will help prevent a total dropping of the ball by any group involved.  I'd rather have an issue sit in a bin for a week before someone sees it and picks it up than to see one request get answered in a day and a follow-up sit for 3 months for lack of a regular check-in.

Finally, we need to get a solid commitment on level of effort from each group involved.  We need to revisit that regularly, get feedback on effort required for each item in the work queue for each group, and establish priorities on those items.  I don't think this needs to be a huge undertaking, but currently there's nothing in place to indicate what items are priority, and how much work is involved for any specific item to bring it to fruition.  I feel that working out those two key bits of information may save lots of effort and frustration on all sides over the next several cycles.

'''On lack of future hardware and Open mobility'''

While I like the question as posed, I'm not clear that Council has the position or right to determine any of these paths for the community.  The community at large should be responsible for choosing this direction.  In some regards I see the answer to question one being reflective of this, since without new projects joining our family, there will be a fall-off over time.  While I'm excited that some other communities I follow (like OpenMoko) have taken steps to renew their momentum with community hardware projects, I'm not sure it's as feasible for the Council to chose of invoke that here without direct prompting by the community.  That said, I would be quite happy to see such efforts, and would be happy to facilitate both support and integration into the community at a social and technological level where feasible.
----

=== Arie Mark ===

Nomination made on the [https://lists.maemo.org/mailman/listinfo/maemo-community/ maemo-community mailing list] at http://lists.maemo.org/pipermail/maemo-community/2012-April/005175.html

Regarding questions raised in this forum:

'''1. What are your thoughts on integrating Harmattan and potentially even Meltemi/other-open-Qt+Linux Nokia/other manufacturer devices into the Maemo community and maemo.org?
'''
Regarding Harmattan, it is maemo and maemo.org needs to be treated for what it is - a hub for all maemo devices including Harmattan.  It [maemo.org] wasn't supposed to end up the way it is today, but a lot of things have happened in the past year that weren’t supposed to.  Maemo.org needs to adapt to the users, this means anyone that shows up, we need to be welcoming and accepting of everyone, from Mer/Nemo project users to even Iphone users.  Another problem is we need to get all of the Harmattan users in one place as it is clear that forum.meego.com is slowly becoming a ghost town.  We should help the migration from fmc to tmo be a user friendly and welcoming one.
One major aspect of the Harmattan side that I’d like to change is how the Harmattan apps and forums are dealt with and used.  Harmattan needs a separate forum for apps so it doesn’t get mixed in with other threads that have nothing to do with applications for Harmattan.
In regards to other projects, I am all for having projects such as Mer/Nemo and Mer/Plasma Active being involved with each other.  The amount of progress that these projects could have together vs. separately will make a major difference in their success.  In regards to projects that I haven't mentioned so far, I am fully supportive of them (the groups and persons involved in the projects) coming to tmo, but before we do that we must be a welcoming community.  TMO treats its own brother Harmattan like a child it didn't want.  If this is the case with siblings, how will we treat people that aren't even related to us?  This is the biggest change that needs to happen in maemo.org at the moment.
I am sure with a little bit of time and effort we at tmo can be the welcoming community we were back in 2009.

'''2. There is a thread on TMO highlighting some of the problems the current council has had. Do you agree with the assertions in that thread that there's been a breakdown in communication between Nokia, Nemein and the council; and the council and the community? If so, how do we fix it?'''

I have seen a breakdown in communication with Nemein and Nokia in regards to different things.  From what I understand channels have been opened and efforts are being made to rectify the situation.  I understand that it was a turbulent time for Nokia, Nemein, and the maemo community for the past year.  Now that communications have restarted again I want to leave the past as the past and move forward to do our best to make a difference by keeping these communications ongoing and helping all parties involved reach agreeable outcomes on all fronts.

'''3. Do You agree, that lack of devices (hardware) is one of major roadblocks for Open mobility we would like to have? If yes, which way should Council focus on supporting
a) Cooperation with big companies (Nokia?), hoping that they'll finally release &quot;device of our dreams&quot; (or thing close to)?'''

This is not our responsibility, this is beyond our reach as a community and we should focus on what we do have vs. what we don't. 

'''b) Starting hard, demanding and somewhat costly (without guarantee of success) path of creating own device via donations, which - if succeed - may result in totally, or almost totally open device (way of Open Pandora, Raspberry Pi, etc)?'''

I am fully supportive of all open source projects.  That aside, once again, it is not our responsibility to create our own devices.

My biggest goal for the council is transparency with end users of tmo (to the extent that we can give).  We need tmo users to know what is going on so that they can voice their opinions and be involved with the council to help make tmo a more user friendly place.

----

=== Niel Nielsen ===

http://maemo.org/profile/view/nieldk/

Nomination made on the [https://lists.maemo.org/mailman/listinfo/maemo-community/ maemo-community mailing list] at http://lists.maemo.org/pipermail/maemo-community/2012-April/005178.html

My thoughts on &quot;Questions a candidate might want to answer&quot;

'''1. What are your thoughts on integrating Harmattan and potentially even Meltemi/other-open-Qt+Linux Nokia/other manufacturer devices into the Maemo community and maemo.org?''' 

''This community should be open to all Nokia platforms, and should work on creating better relations with Nokia on all of the platforms, I believe there is room for all.'' 

'''2. There is a thread on TMO highlighting some of the problems the current council has had. Do you agree with the assertions in that thread that there's been a breakdown in communication between Nokia, Nemein and the council; and the council and the community? If so, how do we fix it?'''
''
Actually I feel the community and council are quite open and accepting, but surely there is room to improve. Council needs to open ears, and listen to the community input for improvements or changes. '' 

'''3. Do You agree, that lack of devices (hardware) is one of major roadblocks for Open mobility we would like to have? If yes, which way should Council focus on supporting:'''

''Creating better connections with Nokia hopefully can make this better.''

'''a) Cooperation with big companies (Nokia?), hoping that they'll finally release &quot;device of our dreams&quot; (or thing close to)?'''

''This is needed, and what I will try to accomplish'' 

'''b) Starting hard, demanding and somewhat costly (without guarantee of success) path of creating own device via donations, which - if succeed - may result in totally, or almost totally open device (way of Open Pandora, Raspberry Pi, etc)?''' 

''I think this road is doomed for failure, better connections with Nokia, is the way to help.'' 

Sponsoring is the only feasible way forward, either by Nokia supporting us, letting the community in the development process (design ideas, platform, HW etc), or by obtaining sponsorships by funding. Now second one may be harder, we need to think quite deep on where it is feasible and likely to get sponsored, there are many options.
The most likely in my point of view, is sponsoring by Nokia. (please do start commenting LOL) as hard as this may seem, I do not think it is unobtainable. But we need to think out a win-win situation.
I believe Nokia would likely be open to design ideas, and also input for a platform that would attract not only the devs of the community, but also, through unique UI ideas, the general user. now, in order to develop a new device.
this is practically possible, without zillions of $$. Prototyping boards with all the necessary HW is available.
Now, when it comes to finish the product (design, custom mainboard, chips, screen etc) to a smaller, usable device, this is where it will start costing, probably hunfreds of thousands $.
THAT is where we need to look for sponsoring. Chip manufacturers, cell phone manufacturers or whoever would be interrested in sponsoring. 

If you believe I am 'only talking' I don't really blame you. Those who might have seen me on other forums for other platforms will know this is not the case.
As for Nokia as a registered charity company, no they are not, but they are one of two who are (somwewhat) open for input.
In other platforms community have a great cooperation with the phone manufacturers. Allowing some openness, but surely not complete (other companies play the hinder here - Nokia can not release sources for eg wireless network cards).
This does NOT stand in the way for a more open platform, but we need Nokia to be up to speed (Sony is a pretty good example here) and actively help us developing binary blobs for where it is needed.
So yes, I still say it is possible. And I will do my best to take part of the discussions with Nokia (also my employment situation makes this the more likely place for me to participate)
I will try this no matter the election fall-out. But surely to speak on the behalf of the community, this election is the proper way to go. Otherwise it would only be 'me' single person speaking, making it much harder (still, not impossible) 

----

=== Rob Bauer ===

When I first ran for Community Council one year ago, I did so because of the challenges I saw posed by Nokia's embrace of WP7.  While others declared this community dead and encouraged people to migrate to MeeGo, I was one of the loudest voices asking people to stay the course with maemo.  I am proud of what the community has accomplished since last summer, and of the many people who have helped to build the momentum of today despite the people who have left.  The number of &quot;doers&quot; may be drastically less than years ago, but I believe that most of the people who are still here are dedicated to having maemo-related OSS available in the future for mobile devices.  The last council period was time intensive for me, but I decided to run again because the turnaround is unfinished and several of the other candidates have asked me to continue to work with them.

In my opinion, the most important thing for the community to do is to decide and clearly state what it wants to do - a mission statement - I suggest &quot;to promote and progress the future availability of maemo-related OSS for pocketable devices&quot;; and then plan to accomplish that mission.  There are many hurdles to this and I realize that some may believe that it cannot be accomplished, but the things worth doing are rarely easy to do.

I believe that the maemo community can and should organize itself better in order to achieve its goals.  The organizational structure that the community had five years ago when Nokia was pushing out a series of maemo devices is not the optimal structure for today.  Maemo is in survival mode and the idea that the community should just sit back and let happen what will happen is dangerous.  This is not to say that every maemo project should not be supported, but that there should be some management - nothing overwhelming but perhaps something like what is seen in other OSS projects.  And everytime something is proposed, we ask ourselves - &quot;how does the proposal further the mission statement?&quot;

I realize that there are those who are nostalgic for the old days and want the Council to have a limited role of interfacing with Nokia.  But that won't work, at least not to accomplish the mission that I propose, not when Nokia has made no indication that they will be providing any more devices for maemo-related software.  The various comments about communication are a distraction from the real significant challenges, such as how to deal with Nokia and its surrogates whose goals are laudable and overlapping, but slightly different the mission statement I have proposed.  When there was silence or non-cooperation, that was not for lack of communication skills, but because of underlying, background concerns.  The important thing is that the challenges have been beat back over the last six months, maemo did not die after all and can move forward again. 

As to other related projects and parties, I think they should be viewed in light of whether they further the mission statement.  Obviously, projects like Mer/Nemo and Qt are complementary.  There is the problem that maemo is partially closed, and the next software step is not maemo in a pure sense but some mashup of maemo with Mer or other projects.  Other projects and parties, such as Nokia, are not quite so clearly complementary.  If there is a new Nokia &quot;meltemi&quot; or other device that fits well with the community goals, then that will be something we work together to promote.  I do believe that the lack of maemo-suitable hardware is a big hurdle for the community.  Council should address this challenge proactively wherever the solutions may lie, and not have a laissez-faire approach.  


----

== Questions candidates might like to answer ==

The following questions have been asked of candidates, feel free to add to them.

'''1.''' What are your thoughts on integrating Harmattan and potentially even
Meltemi/other-open-Qt+Linux Nokia/other manufacturer devices into the Maemo community and maemo.org? [http://lists.maemo.org/pipermail/maemo-community/2012-April/005055.html]

'''2.''' There is [http://talk.maemo.org/showthread.php?p=1187362#post1187362 a thread on TMO] highlighting some of the problems the current council has had. Do you agree with the assertions in that thread that there's been a breakdown in communication between Nokia, Nemein and the council; and the council and the community? If so, how do we fix it?[http://lists.maemo.org/pipermail/maemo-community/2012-April/005044.html]

'''3.'''
Do You agree, that lack of devices (hardware) is one of major roadblocks for Open mobility we would like to have? If yes, which way should Council focus on supporting:

a) Cooperation with big companies (Nokia?), hoping that they'll finally release &quot;device of our dreams&quot; (or thing close to)?

b) Starting hard, demanding and somewhat costly (without guarantee of success) path of creating own device via donations, which - if succeed - may result in totally, or almost totally open device (way of Open Pandora, Raspberry Pi, etc)?

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Council election Q1/2 2012</title>
    <id>5132</id>
    <revision>
      <id>49255</id>
      <timestamp>2012-08-28T10:58:56Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Community Council/Council election Q1/2 2012]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">The [[Community Council | Maemo Community Council]] will have its next election in May 2012, electing a new council for a 6 month term.

The election page will eventually be available [http://maemo.org/vote here].

== Election Details ==

Initially pencilled in for April 2012, the Election was postponed for a month and the nomination period extended for that period.

== Election timetable ==

All deadlines are set at 23:59 UTC.

* March 17: Election announced, nomination period opened [http://lists.maemo.org/pipermail/maemo-community/2012-March/005009.html]
* April 1: Nomination period extended [http://lists.maemo.org/pipermail/maemo-community/2012-April/005011.html] [http://lists.maemo.org/pipermail/maemo-community/2012-April/005049.html]
* April 30: Nominations close
* May 1: List of candidates announced
* May 16: Voting opens  [http://maemo.org/vote/vote.php?election_id=20]
* May 23: Voting closes
* May 25: Results announced [http://talk.maemo.org/showpost.php?p=1211808&amp;postcount=399]

== Eligibility ==

The election processes are described in detail at [[Community Council/Election process]].

'''In order to vote''', a community member must have had maemo.org account for over 3 months, '''(a maemo.org account is NOT a talk.maemo.org account)''' and have [[karma]] of 10 or above. Candidates need to have a [[karma]] of 100 or higher. [[/Eligible candidates | List of potential candidates]] Karma is earned through a variety of mechanisms, but to earn points for contributions on [http://talk.maemo.org/ talk.maemo.org], you need to [[link talk.maemo.org account with maemo.org profile]].

== Election material ==

Here you will find lists of potential candidates, statements from candidates, and other material related to the May 2012 elections.

* [[/Eligible candidates | Maemo members eligible to run for the council]]
* [http://wiki.maemo.org/Community_Council/Council_election_May_2012/Candidate_declarations Candidate declarations]

== Results ==

The Maemo Community Council elected in May 2012 is as follows: 

# [http://maemo.org/profile/view/ivgalvez/ Iván Gálvez Junquera / ivgalvez]
# [http://maemo.org/profile/view/estel/ Piotr Jawidzyk / Estel]
# [http://maemo.org/profile/view/Woody14619/ Craig Woodward / woody14619]
# [http://maemo.org/profile/view/Nieldk/ Niel Nielsen / NielDK]
# [http://maemo.org/profile/view/SD69/ R Bauer / SD69]
[http://talk.maemo.org/showpost.php?p=1211808&amp;postcount=399]

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Council election Q1/2 2012/Eligible candidates</title>
    <id>5133</id>
    <revision>
      <id>47150</id>
      <timestamp>2012-04-06T17:01:07Z</timestamp>
      <contributor>
        <username>mrsellout</username>
        <id>3603</id>
      </contributor>
      <minor/>
      <comment>Added Community &amp; Community Council links</comment>
      <text xml:space="preserve">== List of eligible candidates ==

The following is the list of eligible candidates for the community council elections to be held in May 2012, according to the criteria laid out in [[Community Council]]. Karma totals are as they were on 2012-04-06.

{| class=&quot;wikitable&quot;
|-
! Username
! Real name
! Company
! Karma
|-
| sjgadsby ||Stephen Gadsby||Millersville University of Pennsylvania||3987
|-
| jaffa ||Andrew Flegg||||2926
|-
| qgil ||Quim Gil||Nokia||2560
|-
| thp ||Thomas Perl||||2414
|-
| mikkov ||||||2203
|-
| qwerty12 ||||||2146
|-
| krisse ||Krisse Juorunen||||2017
|-
| d-iivil ||Ricky Tournee||IVK Music Finland LTD||1983
|-
| texrat ||Randall Arnold||||1939
|-
| yerga ||Daniel MartÃ­n Yerga||||1711
|-
| fms ||Marat Fayzullin||||1621
|-
| timsamoff ||Tim Samoff||Moorpark College||1583
|-
| generalantilles ||Ryan Abel||||1489
|-
| achipa ||Attila Csipa||Nokia||1426
|-
| vdvsx ||ValÃ©rio ValÃ©rio||||1414
|-
| framstag ||Tim Teulings||||1352
|-
| khertan ||BenoÃ®t HERVIER||||1297
|-
| andre ||Andre Klapper||||1231
|-
| stskeeps ||||||1228
|-
| qole ||alan bruce||||1227
|-
| dneary ||Dave Neary||Neary Consulting||1191
|-
| vasvlad ||||||1188
|-
| bergie ||Henri Bergius||Nemein||1163
|-
| mohammad7410 ||Mohammad Abu-Garbeyyeh||||1150
|-
| pycage ||Martin Grimme||Lintegra||1142
|-
| nicolai ||||||1136
|-
| thoughtfix ||Daniel Gentleman||ThoughtFix LLC||1129
|-
| wazd ||Andrew Zhilin||||1083
|-
| epage ||Ed Page||||1049
|-
| vaibhavsharma ||Vaibhav Sharma||TheHandheldBlog.com||1008
|-
| thenokiablog ||Mark Guim||thenokiablog.com||1008
|-
| archebyte ||Mustali Dalal||||995
|-
| tanner ||Tom Tanner||||985
|-
| torpedo48 ||Emanuele Cassioli||||982
|-
| javispedro ||Javier S. Pedro||||883
|-
| rsuplido ||Reggie Suplido||talk.maemo.org / Maemo Talk||879
|-
| konttori ||Urho Konttori||Nokia||879
|-
| gcobb ||Graham Cobb||||872
|-
| saturn ||Christos Saturn||||858
|-
| ossi1967 ||Oskar Welzl||||847
|-
| ossipena ||Timo P||||830
|-
| anidel ||Aniello Del Sorbo||Orbis UK Ltd||823
|-
| marxian ||Stuart Howarth||||822
|-
| twaelti ||Tom Waelti||IT (Consulting / eGov / Healthcare)||816
|-
| apocalypso ||||||804
|-
| xfade ||Niels Breet||||799
|-
| w00t ||Robin Burchell||Collabora||776
|-
| lardman ||Simon Pickering||||767
|-
| gerbick ||William McBee||||756
|-
| smoku ||Tomasz Sterna||Opera Software ASA||746
|-
| pali ||||||746
|-
| pvanhoof ||Philip Van Hoof||Codeminded BVBA||734
|-
| lcuk ||Gary Birkett||||731
|-
| bundyo ||Kamen Bundev||||724
|-
| venomrush ||Venomrush .||Experian||720
|-
| zerojay ||Jason Carter||Longtail Studios/Ubisoft||719
|-
| hschmitt ||Harald Schmitt||||714
|-
| revdkathy ||Kathy Smith||||710
|-
| palmsolo ||Matthew Miller||||701
|-
| pipeline ||||||700
|-
| lbt ||David Greaves||Freelance (Nomovok/Nokia)||700
|-
| baloo ||Jamie Bennett||Canonical||693
|-
| flandry ||David Falkayn||MIT||689
|-
| agarcia ||Alberto Garcia||Igalia||675
|-
| ysss ||Leo Sutedja||||668
|-
| joerg_rw ||Joerg Reisenweber||||666
|-
| ed_ ||Ed Bartosh||||663
|-
| eipi ||Sanjeev Visvanatha||||662
|-
| harbaum ||Till Harbaum||||662
|-
| danramos ||||||654
|-
| andy80 ||Andrea Grandi||||646
|-
| fanoush ||Frantisek Dufka||||641
|-
| fiferboy ||Andrew Olmsted||||635
|-
| frals ||Nick LeppÃ¤nen Larsson||||632
|-
| andrewfblack ||Andrew Black||||631
|-
| rcadden ||||||629
|-
| fatalsaint ||||||629
|-
| nokian900freak ||||||621
|-
| mece ||Marcus WikstrÃ¶m||||614
|-
| freemangordon ||||||611
|-
| fredoll ||||||610
|-
| kulve ||Tuomas Kulve||Elektrobit||604
|-
| mikecy ||mike choy||||603
|-
| rmoravcik ||Roman Moravcik||||600
|-
| hrw ||Marcin Juszkiewicz||||600
|-
| danielwilms ||||||598
|-
| tekojo ||Tero Kojo||||596
|-
| tomaszd ||Tomasz Dominikowski||||596
|-
| murrayc ||Murray Cumming||Openismus GmbH||596
|-
| cepiperez ||||||593
|-
| jeremiah ||Jeremiah Foster||||593
|-
| onion ||Kaj-Michael Lang||||589
|-
| amigadave ||David King||Openismus GmbH||586
|-
| matan ||Matan Ziv-Av||||580
|-
| v13 ||Stefanos Harhalakis||||569
|-
| zehjotkah ||Cosimo Kroll||||568
|-
| mtraceur ||||||565
|-
| conny ||Cornelius Hald||||563
|-
| penguinbait ||||||556
|-
| b0unc3 ||Daniele Maio||||554
|-
| wonko ||Ruediger Gad||||552
|-
| zeenix ||Zeeshan Ali||Nokia Oyj||551
|-
| mgedmin ||Marius Gedminas||Programmers of Vilnius||536
|-
| vpsych ||||||533
|-
| aisu ||Tyler Longwell||||527
|-
| ian_r ||||||525
|-
| florian ||Florian Boor||kernel concepts||523
|-
| geneven ||||||517
|-
| debernardis ||Ernesto de Bernardis||||517
|-
| speedevil ||||||512
|-
| fpp ||||||511
|-
| brentdc ||Brent Chiodo||||507
|-
| lucianomw ||Luciano Wolf||INdT - Instituto Nokia de Tecnologia||506
|-
| estel ||Piotr Jawidzyk||||504
|-
| barbieri ||Gustavo Barbieri||||504
|-
| tswindell ||Tom Swindell||||502
|-
| rob1n ||||||499
|-
| benson ||Benson Mitchell||||496
|-
| joppu ||Johannes Siipola||||491
|-
| milhouse ||Neil MacLeod||||490
|-
| daperl ||||||488
|-
| nix_nix ||Gabriel Schulhof||Nokia||486
|-
| etrunko ||Eduardo Lima||openBossa/INdT||484
|-
| jebba ||Jeff Moe||Self unemployed||482
|-
| pelago ||||||481
|-
| jukey ||Uwe Kaminski||||476
|-
| sd69 ||||||476
|-
| kristiina ||||||475
|-
| mikhas ||Michael Hasselmann||Openismus GmbH||472
|-
| spirit-iddqd ||Kirill Plyashkevich||||471
|-
| noobmonkey ||||NHS||470
|-
| bun ||||||460
|-
| redex ||||||459
|-
| frankusb ||Frank Banul||||458
|-
| felipec ||Felipe Contreras||Nokia||442
|-
| fcrochik ||Felipe Crochik||||437
|-
| bunanson ||||||437
|-
| aapo ||Aapo Rantalainen||University of Oulu||436
|-
| allnameswereout ||Jeroen Huizinga||||434
|-
| jatikka ||Jarmo Tikka||||431
|-
| ph5 ||Philipp Zabel||||430
|-
| leif ||||||430
|-
| ndi ||||||429
|-
| m750 ||Marco Poletto||||426
|-
| gnuite ||||||425
|-
| feri ||||||423
|-
| nvyus ||||||420
|-
| yodude ||||Yoyodyne||418
|-
| rauha ||||||413
|-
| tso ||||||413
|-
| krk969 ||||||413
|-
| chemist ||||||411
|-
| jrocha ||Joaquim Rocha||Igalia||410
|-
| atmasphere ||||||404
|-
| morphbr ||||||403
|-
| hqh ||||||400
|-
| kate ||Kate Alhola||||396
|-
| venemo ||Timur KristÃ³f||||394
|-
| nathanael ||||||392
|-
| dwould ||||||391
|-
| bforsberg ||Bruce Forsberg||||390
|-
| handful ||||||388
|-
| rambo ||Eero af Heurlin||||386
|-
| mitrandir ||Ilya Skriblovsky||||383
|-
| disq ||||||383
|-
| kojacker ||Ryan Faulkner||||380
|-
| lorelei ||||||376
|-
| sasler ||||||368
|-
| jlbrd ||||||365
|-
| sampp ||Sampo Savola||||363
|-
| mardy ||Alberto Mardegan||||362
|-
| hopbeat ||||||359
|-
| fgs ||Floriano Scioscia||||359
|-
| tor ||||||357
|-
| creamyg ||||||356
|-
| timeless ||timeless -||||356
|-
| jolouis ||||||355
|-
| nido ||Alex Easter||||355
|-
| tuminoid ||Tuomo Tanskanen||Nomovok Ltd||353
|-
| geraldko ||||||352
|-
| tahitibob35 ||David Hautbois||Prologue||352
|-
| rcolistete ||Roberto Colistete Jr||||351
|-
| antimirov ||Eugene Antimirov||AND Automotive Navigation Data||351
|-
| qwazix ||||||350
|-
| andrei1089 ||Andrei Mirestean||||343
|-
| martink ||||||340
|-
| koos ||||||339
|-
| sachin007 ||||||338
|-
| truejournals ||Bobby Graese||||338
|-
| zchydem ||||||335
|-
| maacruz ||||||334
|-
| arcean ||||||333
|-
| jaaksi ||||||333
|-
| ejasmudar ||||||331
|-
| caco3 ||||||330
|-
| laasonen ||||||327
|-
| ivgalvez ||IvÃ¡n GÃ¡lvez Junquera||||324
|-
| collin ||||||323
|-
| hhedberg ||||||323
|-
| barisione ||Marco Barisione||Collabora Ltd.||319
|-
| realsportcars ||Davide Aimone||||319
|-
| christexaport ||||StreetzMart Media Group||315
|-
| robbiethe1st ||Rob Simpson||||314
|-
| brontide ||Eric Warnke||||313
|-
| evad ||Dawid Lorenz||Tangent Labs||313
|-
| fnordianslip ||||||312
|-
| subcore ||Claus Feichtinger||||312
|-
| vern ||Ian Lawrence||||311
|-
| kenyoung ||Ken Young||||310
|-
| williepre ||Willie Pretorius||||309
|-
| kibergus ||Guseynov Alexey||||309
|-
| zap ||||||308
|-
| dwaradzyn ||||||308
|-
| ahynes1 ||Aldon Hynes||Orient Lodge||308
|-
| jer006 ||||||308
|-
| marcell ||Marcell Lengyel||Nokia||306
|-
| timoph ||||||305
|-
| zaheerm ||||||303
|-
| mve ||Marko Vertainen||||302
|-
| wwp ||Tristan Chabredier||||302
|-
| tak ||||||299
|-
| mrojas ||Mario Rojas||||297
|-
| idont ||Dennis Groenen||||297
|-
| monkeyiq ||||||293
|-
| vivainio ||||||292
|-
| johnkzin ||||||292
|-
| cpulvermacher ||||||292
|-
| donaggio ||Luca Donaggio||||292
|-
| lemmyslender ||||||291
|-
| momcilo ||||||290
|-
| johnx ||John Bloom||The Driver Training Group||287
|-
| cddiede ||||||286
|-
| bonapart ||roman deninberg||||286
|-
| mmlado ||Mladen Milankovic||||285
|-
| pupnik ||Arnim Sauerbier||||283
|-
| cfh11 ||||||283
|-
| ukki ||Janne MÃ¤kinen||||279
|-
| webhamster ||||||278
|-
| tusinaniger ||Pasi Norolampi||||277
|-
| slocan ||Yves Marcoz||||277
|-
| divan ||Ivan Daniluk||||276
|-
| axique ||Christoph WÃ¼rstle||||275
|-
| mike_morrison ||mike morrison||||273
|-
| philipl ||||||273
|-
| crashanddie ||Sebastiaan Lauwers||||272
|-
| olivluca ||Luca Olivetti||||270
|-
| msameer ||Mohammed Hassan||||270
|-
| loki ||Massimo Mund||||268
|-
| gionni88 ||Giovanni Grammatico||||268
|-
| serge ||||||266
|-
| oriolj ||||||265
|-
| dragly ||||||265
|-
| tz1 ||||||264
|-
| rlinfati ||Rodrigo Linfati||||263
|-
| jknutar ||Jan Knutar||||263
|-
| aranelsurion ||Aranel Surion||||262
|-
| jku ||Jussi Kukkonen||Intel||262
|-
| silvermountain ||||||260
|-
| karoliina ||Karoliina Salminen||Nokia Corporation||259
|-
| ifrade ||||||259
|-
| gnuton ||||||259
|-
| javicq ||Javier Campo||||258
|-
| aanckar ||Andreas Anckar||||258
|-
| colinleroy ||Colin Leroy||||257
|-
| beermad ||||||257
|-
| eiffel ||Roger Browne||||257
|-
| abbra ||Alexander Bokovoy||||257
|-
| kaltsi ||Juha Kallioinen||||256
|-
| erendorn ||||||255
|-
| steven676 ||||||254
|-
| kimitake ||Kimitake .||||253
|-
| matsavol ||Matti Savolainen||Nokia Siemens Networks||252
|-
| chelli ||||||251
|-
| codemonkey ||||||251
|-
| edgar2 ||thomas p||Oculex||250
|-
| tthurman ||||||249
|-
| nononoyes ||||||249
|-
| tigert ||Tuomas Kuosmanen||Nokia||248
|-
| buurmas ||Joel Buursma||||248
|-
| xomm ||Andy Pham||||247
|-
| jpavelek ||Jakub Pavelek||Nokia||247
|-
| nilchak ||Nilanjan Chaks||||241
|-
| tvogel ||Tilman Vogel||||240
|-
| xan ||||||239
|-
| parasight ||||||239
|-
| merlin1991 ||Christian Ratzenhofer||||238
|-
| firebird8 ||Wilson Tang||||237
|-
| aboaboit ||Andrea Borgia||||237
|-
| rsperberg ||Roger Sperberg||||236
|-
| emesem ||M S||||235
|-
| kgronholm ||Kaj GrÃ¶nholm||||235
|-
| mishas ||Mikhail Sobolev||||233
|-
| speculatrix ||Paul M||||232
|-
| renatofilho ||||||232
|-
| jayonthabeat ||||||231
|-
| gabrielnava ||Gabriel Nava Vazquez||||230
|-
| kroll ||Dmitriy Chirva||||230
|-
| somedude ||||||230
|-
| claesbas ||Claes Norin||||229
|-
| torshind ||||||229
|-
| meizirkki ||Roope Kuisma||||229
|-
| scriptkiller ||||||228
|-
| lma ||||||226
|-
| gazza_d ||gary dawes||NHS||226
|-
| zwer ||Aleksandar Mancic||WhiteCity Soft||225
|-
| tonikitoo ||||||225
|-
| zerionseven ||||||224
|-
| b-man ||||||223
|-
| mobiledivide ||||||223
|-
| jbenc ||||||223
|-
| cpscotti ||||||222
|-
| davep1 ||||||222
|-
| tbergstr ||||||222
|-
| matrim ||||||221
|-
| madman2k ||||||220
|-
| jaeezzy ||||||220
|-
| schendstok ||Bernard Schendstok||||219
|-
| detective ||Max Maher||||219
|-
| danielb ||||Openismus GmbH||219
|-
| calvin_42 ||Aymeric Brisse||||218
|-
| lizardo ||Anderson Lizardo||INdT||217
|-
| embedded ||||||217
|-
| yablacky ||||||216
|-
| miker ||Mike Rowehl||||216
|-
| mrsellout ||ritesh patel||||216
|-
| jaem ||Jeffery MacEachern||||216
|-
| tzsm98 ||||Oklahoma City Public Schools||216
|-
| vkvraju ||Kasi Viswanath||||214
|-
| lxp ||David Gnedt||||214
|-
| code177 ||Jonathan Blake||||214
|-
| smegheadz ||stephen reinhardt||||212
|-
| jsmanrique ||Manrique Lopez||ANDAGO||212
|-
| joshuamaverick ||||||211
|-
| rm_you ||Adam Harwell||||211
|-
| discus-axel ||Axel Pauli||||210
|-
| juise- ||Jussi Holm||||210
|-
| jsa ||||||209
|-
| tonymaro ||||||209
|-
| pamadio ||Pierre Amadio||||209
|-
| demolition ||||||208
|-
| marmistrz ||Marcin Mielniczuk||||208
|-
| sakya ||||||205
|-
| blubbi ||Bjoern Olausson||||204
|-
| raul ||Raul Herbster||Signove||203
|-
| jlu ||Julius Luukko||||202
|-
| tomppas ||||||201
|-
| bones ||||||201
|-
| tanya ||||||201
|-
| pronkko ||||||199
|-
| jasuarez ||||||198
|-
| reinob ||||||198
|-
| ciroip ||||||196
|-
| mikhmv ||||||195
|-
| chri_ke ||Kenneth Rohde Christiansen||Nokia Technology Institute, INdT||194
|-
| kozzi ||||||194
|-
| lostinmirkwood ||Kristopher Kantor||||194
|-
| tim_edmonds ||||||192
|-
| firstfan ||||||191
|-
| terrencegf ||||||191
|-
| rickcull ||Rick Cull||||191
|-
| suihkulokki ||||||190
|-
| m2cm2c ||||||190
|-
| globster ||||||190
|-
| joorin ||Peter Flystam||||190
|-
| rickybrent ||Ricky Brent||||190
|-
| itkach ||||||189
|-
| labaudio ||||||188
|-
| thesandlord ||||||188
|-
| cashclientel ||Cash Clientel||||188
|-
| ovk ||Otto-Ville Kaukoniemi||||186
|-
| tomj ||||||186
|-
| toja92 ||Tobias Jansson||||186
|-
| r-r ||||||186
|-
| mullf ||||||185
|-
| josh ||Josh Triplett||||184
|-
| sbir ||Alexander R.||||184
|-
| jkq ||||||184
|-
| matt ||||||184
|-
| matija ||Matija Simeunovic||||183
|-
| ihmis-suski ||Susanna Huhtanen||||183
|-
| iancumihai ||mihai iancu||||182
|-
| igagis ||Ivan Gagis||||182
|-
| craftyguy ||Clayton Craft||||182
|-
| igor_stoppa ||Igor Stoppa||||181
|-
| arnims ||||||181
|-
| rebhana ||||||181
|-
| klinglerware ||||||181
|-
| alexatkinuk ||||||181
|-
| pav ||||||180
|-
| vre ||||||180
|-
| srn ||||||180
|-
| wdehoog ||||||180
|-
| trevarthan ||Jesse Guardiani||||179
|-
| kolos ||||||179
|-
| harick ||Harick Shurdaer||||178
|-
| manuel ||||||178
|-
| jott ||||||178
|-
| mr_pingu ||Karsten -||||178
|-
| ciron810 ||||||177
|-
| anapospastos ||Theofilos Hatziaristeras||||177
|-
| misterc ||||||177
|-
| karstenb ||||||177
|-
| vinc17 ||Vincent LefÃ¨vre||||176
|-
| amh ||||||176
|-
| peterschneider ||Peter Schneider||Nokia||175
|-
| marciom ||||||175
|-
| gri ||Christoph Keller||||175
|-
| mvo ||Marius Vollmer||||174
|-
| petur ||Peter D\'Hoye||||174
|-
| maddler ||William Maddler||||173
|-
| varunkrish ||||||173
|-
| fragos ||||||173
|-
| fieldofcows ||||||172
|-
| xur17 ||||||172
|-
| puelocesar ||Paulo Cesar||||172
|-
| jurop88 ||||||171
|-
| inidrog ||||||171
|-
| neal ||Neal Walfield||||170
|-
| klausr ||Klaus Rotter||||170
|-
| smarsh ||Steve Marsh||Communications Research Centre||170
|-
| ivanzorkic ||||||169
|-
| plastun ||Max Usachev||||169
|-
| antman8969 ||||||169
|-
| melunko ||||||169
|-
| guaka ||||||168
|-
| ruskie ||AndraÅ¾ Levstik||||168
|-
| v6sa ||Lauri VÃµsandi||Estonian IT College||165
|-
| mthmob ||||||165
|-
| jandmdickerson ||||||165
|-
| ivyking ||||||165
|-
| cthx ||CtHx Ðª||||164
|-
| mr_jrt ||||||164
|-
| nnod ||Donn Morrison||University of Geneva||164
|-
| homac ||Holger Macht||||164
|-
| keesj ||Kees Jongenburger||||164
|-
| bijjal ||Soumya Bijjal||||164
|-
| nwerneck ||||||163
|-
| jtukkine ||Juha Tukkinen||Nokia||163
|-
| msoini ||||Palmu Inc||162
|-
| jakunnar ||||||162
|-
| jacktanner ||||||161
|-
| nakkebar ||Eero Tamminen||||161
|-
| snatcher ||||||160
|-
| kevloral ||JosÃ© Manuel Arnesto||Telvent||160
|-
| d0b3rm4n ||||||159
|-
| ywwg ||Owen Williams||||159
|-
| dkwatts ||dk watts||||159
|-
| jait ||||||159
|-
| jessi3k3 ||||||159
|-
| djcb ||Dirk-Jan Binnema||||158
|-
| digitalvoid ||||||157
|-
| n820ftw ||AG Sopwith||||157
|-
| slobodsky ||Nick Slobodsky||||157
|-
| mr_id ||Dru Moore||||157
|-
| shashurup ||||||157
|-
| svillar ||||||156
|-
| csaavedra ||Claudio Saavedra||Igalia||156
|-
| inz ||Santtu Lakkala||Nomovok||156
|-
| range ||Ralph Angenendt||||156
|-
| dotblank ||||||155
|-
| shin ||||||155
|-
| mbo ||Martin Borho||||155
|-
| chrisp7 ||||||154
|-
| nikosapi ||||||154
|-
| boxofsnoo ||||||154
|-
| tmarki ||||||153
|-
| lm2 ||||||153
|-
| deadmalc ||||||153
|-
| x-lette ||||||153
|-
| slvr32 ||||||153
|-
| blessn900 ||||||152
|-
| rotoflex ||William Hooper||||152
|-
| casketizer ||Casket Crew||self||152
|-
| technut ||||||152
|-
| nymajoak ||||||151
|-
| techie ||||||151
|-
| damagedspline ||||||150
|-
| mjn ||||||150
|-
| mase ||||||150
|-
| setanta ||||||150
|-
| harryf ||Harald Fernengel||Nokia||150
|-
| helex ||Michael Muth||||149
|-
| seadog ||Giorgos Logiotatidis||||149
|-
| bge ||||||149
|-
| munky261 ||||||149
|-
| japieb ||Jaap Braam||||148
|-
| corwin ||||||147
|-
| spenap ||SimÃ³n Pena Placer||||146
|-
| mooninite ||Michael Cronenworth||||146
|-
| lapa ||||||145
|-
| pillar ||||||145
|-
| nhanquy ||||||144
|-
| mikal ||||||144
|-
| coldfusion ||||||144
|-
| newca12 ||||||143
|-
| edgedemon ||||||143
|-
| detlef ||||||142
|-
| andree ||Andrej Krutak||||142
|-
| hasselmm ||Mathias Hasselmann||Openismus||142
|-
| romaxa_xz ||||||141
|-
| onutz ||Onutz Buruga||utestme.com||141
|-
| josefdk ||Josef Assad||||141
|-
| corsac ||||||140
|-
| danilo ||Danilo Cesar Lemes de Paula||||140
|-
| larux ||||||140
|-
| qnetman ||Anatoliy Kozlov||||140
|-
| claudius ||Claudius Henrichs||||140
|-
| hogwash ||Hogwash .||||140
|-
| alan_peery ||||||139
|-
| dannym ||||||139
|-
| cas07 ||||||139
|-
| peterleinchen ||||||138
|-
| helihyv ||Heli HyvÃ¤ttinen||||138
|-
| fbergeron ||Frederic Bergeron||||138
|-
| rabbitrun84 ||Miaoqing Tan||Nokia||137
|-
| kup ||Peter Kupietz||||137
|-
| chilitechno ||Chris Burris||Chili Technologies LLC||137
|-
| marieke ||Marieke Streefkerk||Fronteer Strategy||136
|-
| mountainx ||||||136
|-
| xmob ||Pete Foster||||136
|-
| richie ||||||136
|-
| navsin ||navneet singh||||135
|-
| lmoura ||Lauro Moura||Instituto Nokia de Tecnologia||135
|-
| pierlux ||Pierre-Luc Beaudoin||Novopia||135
|-
| almehdi ||||||134
|-
| megabyte405 ||Ryan Pavlik||||134
|-
| jdapena ||JosÃ© Dapena Paz||||134
|-
| pepitoe ||||||133
|-
| bunansonli ||||||132
|-
| pincushionqueen ||||||131
|-
| tpaixao ||||||131
|-
| luogni ||Luca Ognibene||||131
|-
| fw190 ||||||131
|-
| svlasov ||Sergey Vlasov||||130
|-
| mmurfin87 ||||||130
|-
| lemody ||||||129
|-
| eocanha ||Enrique OcaÃ±a GonzÃ¡lez||||129
|-
| gryedouge ||||||129
|-
| jonnylamb ||||||129
|-
| humanpenguin ||||||129
|-
| snoshrk ||||||129
|-
| mwiktowy ||Michael Wiktowy||||128
|-
| bdogg64 ||||||128
|-
| solarion ||Joseph Pingenot||||128
|-
| lancewex ||||||127
|-
| baksiidaa ||Matt Turner||||127
|-
| mehdi ||Mehdi El Gueddari||||127
|-
| kunal_the_one ||||||126
|-
| brucel ||||||126
|-
| theflew ||||||126
|-
| briand ||||||126
|-
| osemutech ||||||125
|-
| hns ||Hannes Wallnoefer||||125
|-
| raulherbster ||Raul Fernandes Herbster||||125
|-
| jtorra ||Josep Torra||||124
|-
| calvaris ||||||124
|-
| rip ||||||124
|-
| lfelipe ||||||124
|-
| dmj726 ||||||124
|-
| sadfist ||Alex Beck||||123
|-
| bigbrovar ||||||123
|-
| jaark ||Dave Sexton||||122
|-
| emjayes ||||||122
|-
| shinghei ||||||122
|-
| mdk ||||New Wild||122
|-
| icebox ||||||122
|-
| yabbas ||||||122
|-
| gemniii42 ||||||121
|-
| momchil ||||||121
|-
| pavel ||||||121
|-
| rdorsch ||||||121
|-
| earthwings ||Dennis NienhÃ¼ser||||120
|-
| shep ||Stephen Lacey||||120
|-
| jfk ||||||120
|-
| rapante ||||||120
|-
| kvalo ||Kalle Valo||||119
|-
| alevinsn ||||||119
|-
| convulted ||||||118
|-
| jyro ||||||118
|-
| leandro ||Leandro Sales||||118
|-
| alephito ||||||118
|-
| floffe ||||||118
|-
| amandalam ||||||118
|-
| direx ||Daniel Klaffenbach||||118
|-
| nikolajhendel ||Nikolaj Hendel||||118
|-
| unique311 ||||||117
|-
| neatojones ||||||117
|-
| maddogg ||Stefano Badoino||||117
|-
| joenix ||||||116
|-
| terminal3 ||||||116
|-
| thopiekar ||||||116
|-
| vlg ||Vladislav Grinchenko||3rdShift Software, Inc.||116
|-
| magomez ||||||116
|-
| simon ||||||116
|-
| microphobic ||||||115
|-
| juhar ||Juha RÃ¶nkkÃ¶||||115
|-
| skatebiker ||||||115
|-
| locusf ||||||114
|-
| mones ||||||114
|-
| claws ||||||114
|-
| anunakin ||Marcus Fazzi||||114
|-
| feurigel ||Andre Musiol||||113
|-
| oxpo ||||||113
|-
| hardaker ||Wes Hardaker||||113
|-
| phi ||||||113
|-
| yann_b ||||||113
|-
| too ||||||112
|-
| renegadefanboy ||Renegade Fanboy||||112
|-
| tony2001 ||Antony Dovgal||||112
|-
| aratorn ||Charles ClÃ©ment||||112
|-
| dschmicker ||||||111
|-
| delaroca ||||||111
|-
| vivijim ||||||110
|-
| viqsi ||||||110
|-
| generationally ||||||110
|-
| sho ||Eike Hein||||110
|-
| thecursedfly ||Cursed Fly||||110
|-
| hartti ||||||109
|-
| nicolamfb ||||||109
|-
| zgold550 ||Zachary Goldberg||University of Pennsylvania||109
|-
| mrp ||||||109
|-
| ttt ||Tuukka Turunen||Digia Plc||108
|-
| nux ||||||108
|-
| pancake ||||||108
|-
| architengi ||Art Gi||||108
|-
| glauber ||||||108
|-
| norayr ||Norayr Chilingaryan||||108
|-
| trx ||||||108
|-
| zulla ||||||107
|-
| jperez2008 ||||||107
|-
| dantonic ||||||107
|-
| smancke ||Sebastian Mancke||||106
|-
| wolfg1969 ||||||106
|-
| sandybeach ||||||106
|-
| masterzap ||Zap Andesson||||106
|-
| underscore ||||||105
|-
| nite_man ||||||105
|-
| spartan563 ||Benjamin Pannell||||105
|-
| andy1210 ||||||105
|-
| mikel ||||||105
|-
| vjaquez ||||||105
|-
| alban ||||||105
|-
| hox ||||||105
|-
| fredrik_wendt ||Fredrik Wendt||Iptor Konsult AB||104
|-
| harri ||||||104
|-
| trollo ||||||104
|-
| rbrewer123 ||||||104
|-
| duncan ||||||104
|-
| antoarts ||||||104
|-
| henkka ||Henri W.||||103
|-
| etalvala ||||||103
|-
| soeiro ||||||103
|-
| moonshine ||||||103
|-
| jperez2009 ||||||103
|-
| kotczarny ||||||103
|-
| mtron ||||||103
|-
| faz ||Faz Z||||102
|-
| tvijlbrief ||||||102
|-
| scudderfish ||David Smith||||102
|-
| sxc ||||||102
|-
| romaxa ||Oleg Romashin||||102
|-
| pronvit ||||||102
|-
| naabi ||||||102
|-
| pguise ||||||102
|-
| wesgreen ||andy friedberg||||102
|-
| ajf ||||||102
|-
| jcharpak ||||||102
|-
| karatchov ||||||102
|-
| andybehr ||Andreas Behr||||102
|-
| dik ||dik .||||102
|-
| vitaly_repin ||||||101
|-
| jamiefuller ||||||101
|-
| funkmunk ||Ashley Fernandes||||101
|-
| werewolf ||||||101
|-
| ikneadough ||||||101
|-
| mymaemo ||||||100
|-
| rzr ||||||100
|-
| willem_liu ||||||100
|-
| asys3 ||Uwe Koch||||100
|}

[[Category:Community]]
[[Category:Community_Council]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Council election Q1 2009</title>
    <id>4033</id>
    <revision>
      <id>33580</id>
      <timestamp>2010-04-27T17:33:22Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>New page: This page is to collect material related to the [http://maemo.org/vote/results.php?election_id=6 Q1 2009 Maemo Community Council election].  * [http://maemo.org/community/council/996cbe4a0...</comment>
      <text xml:space="preserve">This page is to collect material related to the [http://maemo.org/vote/results.php?election_id=6 Q1 2009 Maemo Community Council election].

* [http://maemo.org/community/council/996cbe4a032c11de828a4110ce25015a015a/ Election announcement]
* [[Community Council/Eligible candidates Q1 2009 | Eligible to be candidates]]
* [[Task:Community Council/Candidate declarations for March 2009 | Candidate declarations]]
* [http://maemo.org/vote/results.php?election_id=6 Results]

The elected council was:
* Andrew Flegg (Jaffa)
* Ryan Abel (GeneralAntilles)
* Tim Samoff (timsamoff)
* Kees Jongenburger (keesj)
* Alan Bruce (qole)

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Council election Q1 2010</title>
    <id>3564</id>
    <revision>
      <id>31776</id>
      <timestamp>2010-03-31T13:32:48Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">The [[Community Council | Maemo Community Council]] will have its next election in March 2010, electing a new council for a 6 month term.

The election page will eventually be available [http://maemo.org/vote here].

== Election timetable ==

All deadlines are set at 23:59 UTC.

* February 10: Election announced
* March 2: Deadline for karma for electorate
* March 2: [[/Eligible candidates | List of potential candidates]] published
* March 2: Nominations open
* March 16: Nominations close
* March 17: [[Community Council/Candidate declarations for March 2010 | List of candidates announced]]
* March 23: [http://maemo.org/vote/vote.php?election_id=9 Voting opens]
* March 30: Voting closes
* March 31: [http://maemo.org/vote/results.php?election_id=9 Results announced]

== Eligibility ==

The election processes are described in detail at [[Community Council/Election process]].

Candidates need to have a [[karma]] of 100 or higher; voters need to have a karma of 10 or more. Karma is earned through a variety of mechanisms, but to earn points for contributions on [http://talk.maemo.org/ talk.maemo.org], you need to [[link talk.maemo.org account with maemo.org profile]].

== Election material ==

Here you will find lists of potential candidates, statements from candidates, and other material related to the March 2010 elections.

* [[/Eligible candidates | Maemo members eligible to run for the council]]
* [[../Candidate declarations for March 2010 | Candidate declarations]]

== Results ==

The Maemo community council [http://maemo.org/vote/results.php?election_id=9 elected in March 2010] is as follows: 

* Randall Arnold (texrat)
* Andrew Flegg (Jaffa)
* Attila Csipa (Attila77/achipa)
* Javier S. Pedro (JaviSPedro)
* Ryan Abel (GeneralAntilles)

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Council election Q1 2010/Eligible candidates</title>
    <id>3690</id>
    <revision>
      <id>33878</id>
      <timestamp>2010-05-05T10:20:10Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>categorise</comment>
      <text xml:space="preserve">== List of eligible candidates ==

The following is the list of eligible candidates for the community council elections to be held in March 2010, according to the criteria laid out in [[Community Council]]. Karma totals are as they were on 2010-03-02.
{| class=&quot;wikitable&quot;
|-
! Username
! Name
! Company
! Total Karma
|-
| [http://maemo.org/profile/view/qgil.html qgil]
| Quim Gil
| Nokia
| 2331
|-
| [http://maemo.org/profile/view/sjgadsby.html sjgadsby]
| Stephen Gadsby
| Millersville University of Pennsylvania
| 2231
|-
| [http://maemo.org/profile/view/qwerty12.html qwerty12]
| Faheem Pervez
| 
| 1954
|-
| [http://maemo.org/profile/view/mikkov.html mikkov]
| Mikko Vartiainen
| 
| 1930
|-
| [http://maemo.org/profile/view/yerga.html yerga]
| Daniel Martín Yerga
| 
| 1732
|-
| [http://maemo.org/profile/view/jaffa.html jaffa]
| Andrew Flegg
| 
| 1556
|-
| [http://maemo.org/profile/view/fms.html fms]
| Marat Fayzullin
|
| 1437
|-
| [http://maemo.org/profile/view/generalantilles.html generalantilles]
| Ryan Abel
| 
| 1432
|-
| [http://maemo.org/profile/view/timsamoff.html timsamoff]
| Tim Samoff
| 
| 1392
|-
| [http://maemo.org/profile/view/thp.html thp]
| Thomas Perl
| 
| 1259
|-
| [http://maemo.org/profile/view/vdvsx.html vdvsx]
| Valério Valério
| 
| 1255
|-
| [http://maemo.org/profile/view/texrat.html texrat]
| Randall Arnold
| 
| 1210
|-
| [http://maemo.org/profile/view/thoughtfix.html thoughtfix]
| Daniel Gentleman
| ThoughtFix LLC
| 1131
|-
| [http://maemo.org/profile/view/framstag.html framstag]
| Tim Teulings
| IT Services Germany (Deutsche Post DHL)
| 1085
|-
| [http://maemo.org/profile/view/qole.html qole]
| alan bruce
| 
| 1054
|-
| [http://maemo.org/profile/view/khertan.html khertan]
| Benoît HERVIER
| 
| 1011
|-
| [http://maemo.org/profile/view/wazd.html wazd]
| Andrew Zhilin
| None
| 1006
|-
| [http://maemo.org/profile/view/andre.html andre]
| Andre Klapper
| Openismus
| 1001
|-
| [http://maemo.org/profile/view/pycage.html pycage]
| Martin Grimme
| Lintegra
| 937
|-
| [http://maemo.org/profile/view/dneary.html dneary]
| Dave Neary
| Neary Consulting
| 932
|-
| [http://maemo.org/profile/view/stskeeps.html stskeeps]
| Carsten Munk
| Imogen Software
| 884
|-
| [http://maemo.org/profile/view/bergie.html bergie]
| Henri Bergius
| Nemein
| 826
|-
| [http://maemo.org/profile/view/thenokiablog.html thenokiablog]
| Mark Guim
| thenokiablog.com
| 798
|-
| [http://maemo.org/profile/view/konttori.html konttori]
| Urho Konttori
| Nokia
| 795
|-
| [http://maemo.org/profile/view/krisse.html krisse]
| Krisse Juorunen
| 
| 792
|-
| [http://maemo.org/profile/view/rsuplido.html rsuplido]
| Reggie Suplido
| talk.maemo.org / Maemo Talk
| 766
|-
| [http://maemo.org/profile/view/vasvlad.html vasvlad]
| Vlad Vasiliev
| Gas company
| 753
|-
| [http://maemo.org/profile/view/xfade.html xfade]
| Niels Breet
| maemo.org
| 739
|-
| [http://maemo.org/profile/view/anidel.html anidel]
| Aniello Del Sorbo
| Orbis UK Ltd
| 730
|-
| [http://maemo.org/profile/view/pipeline.html pipeline]
| pipe line
| 
| 723
|-
| [http://maemo.org/profile/view/achipa.html achipa]
| Attila Csipa
| -
| 723
|-
| [http://maemo.org/profile/view/zerojay.html zerojay]
| Jason Carter
| Longtail Studios/Ubisoft
| 707
|-
| [http://maemo.org/profile/view/baloo.html baloo]
| Jamie Bennett
| Canonical
| 691
|-
| [http://maemo.org/profile/view/ed_.html ed_]
| Ed Bartosh
| Nokia
| 676
|-
| [http://maemo.org/profile/view/gcobb.html gcobb]
| Graham Cobb
| 
| 668
|-
| [http://maemo.org/profile/view/epage.html epage]
| Ed Page
| 
| 660
|-
| [http://maemo.org/profile/view/ossi1967.html ossi1967]
| Oskar Welzl
| 
| 659
|-
| [http://maemo.org/profile/view/lcuk.html lcuk]
| Gary Birkett
| Collabora
| 648
|-
| [http://maemo.org/profile/view/twaelti.html twaelti]
| Tom Waelti
| IT (Consulting / eGov / Healthcare)
| 641
|-
| [http://maemo.org/profile/view/venomrush.html venomrush]
| Venomrush .
| Experian
| 639
|-
| [http://maemo.org/profile/view/fiferboy.html fiferboy]
| Andrew Olmsted
| 
| 622
|-
| [http://maemo.org/profile/view/rcadden.html rcadden]
| Ricky Cadden
| MobileBurn.com
| 609
|-
| [http://maemo.org/profile/view/apocalypso.html apocalypso]
| Teo Bartulovic
| 
| 591
|-
| [http://maemo.org/profile/view/bundyo.html bundyo]
| Kamen Bundev
| Telerik
| 585
|-
| [http://maemo.org/profile/view/fanoush.html fanoush]
| Frantisek Dufka
| 
| 584
|-
| [http://maemo.org/profile/view/jeremiah.html jeremiah]
| Jeremiah Foster
| Nokia / Maemo.org
| 580
|-
| [http://maemo.org/profile/view/fredoll.html fredoll]
| Fred Lefévère-Laoide
| 
| 576
|-
| [http://maemo.org/profile/view/agarcia.html agarcia]
| Alberto Garcia
| Igalia
| 567
|-
| [http://maemo.org/profile/view/revdkathy.html revdkathy]
| Kathy Smith
| NHS
| 561
|-
| [http://maemo.org/profile/view/tekojo.html tekojo]
| Tero Kojo
| Nokia
| 554
|-
| [http://maemo.org/profile/view/flandry.html flandry]
| David Falkayn
| MIT
| 549
|-
| [http://maemo.org/profile/view/harbaum.html harbaum]
| Till Harbaum
| Harman International
| 546
|-
| [http://maemo.org/profile/view/kulve.html kulve]
| Tuomas Kulve
| Movial
| 542
|-
| [http://maemo.org/profile/view/lbt.html lbt]
| David Greaves
| Freelance (Nomovok/Nokia)
| 540
|-
| [http://maemo.org/profile/view/aisu.html aisu]
| Tyler Longwell
| 
| 527
|-
| [http://maemo.org/profile/view/penguinbait.html penguinbait]
| Matthew Lewis
| 
| 519
|-
| [http://maemo.org/profile/view/ossipena.html ossipena]
| Timo P
| 
| 510
|-
| [http://maemo.org/profile/view/lucianomw.html lucianomw]
| Luciano Wolf
| 
| 505
|-
| [http://maemo.org/profile/view/murrayc.html murrayc]
| Murray Cumming
| Openismus GmbH
| 502
|-
| [http://maemo.org/profile/view/lardman.html lardman]
| Simon Pickering
| 
| 499
|-
| [http://maemo.org/profile/view/javispedro.html javispedro]
| Javier S. Pedro
| 
| 494
|-
| [http://maemo.org/profile/view/eipi.html eipi]
| Sanjeev Visvanatha
| 
| 490
|-
| [http://maemo.org/profile/view/andy80.html andy80]
| Andrea Grandi
| 
| 490
|-
| [http://maemo.org/profile/view/palmsolo.html palmsolo]
| Matthew Miller
| 
| 489
|-
| [http://maemo.org/profile/view/mgedmin.html mgedmin]
| Marius Gedminas
| Programmers of Vilnius
| 482
|-
| [http://maemo.org/profile/view/conny.html conny]
| Cornelius Hald
| 
| 473
|-
| [http://maemo.org/profile/view/hrw.html hrw]
| Marcin Juszkiewicz
| own company
| 471
|-
| [http://maemo.org/profile/view/etrunko.html etrunko]
| Eduardo Lima
| openBossa/INdT
| 470
|-
| [http://maemo.org/profile/view/andrewfblack.html andrewfblack]
| Andrew Black
| 
| 470
|-
| [http://maemo.org/profile/view/danielwilms.html danielwilms]
| daniel wilms
| Nokia
| 468
|-
| [http://maemo.org/profile/view/benson.html benson]
| Benson Mitchell
| 
| 464
|-
| [http://maemo.org/profile/view/archebyte.html archebyte]
| Mustali Dalal
| 
| 461
|-
| [http://maemo.org/profile/view/brentdc.html brentdc]
| Brent Chiodo
| 
| 461
|-
| [http://maemo.org/profile/view/pvanhoof.html pvanhoof]
| Philip Van Hoof
| Codeminded BVBA
| 455
|-
| [http://maemo.org/profile/view/jebba.html jebba]
| Jeff Moe
| Self unemployed
| 454
|-
| [http://maemo.org/profile/view/barbieri.html barbieri]
| Gustavo Barbieri
| ProFUSION embedded systems
| 437
|-
| [http://maemo.org/profile/view/zeenix.html zeenix]
| Zeeshan Ali
| Nokia Oyj
| 431
|-
| [http://maemo.org/profile/view/tomaszd.html tomaszd]
| Tomasz Dominikowski
| Aviary.pl
| 429
|-
| [http://maemo.org/profile/view/torpedo48.html torpedo48]
| Emanuele Cassioli
| 
| 426
|-
| [http://maemo.org/profile/view/fpp.html fpp]
| Fred Pacquier
| 
| 425
|-
| [http://maemo.org/profile/view/jatikka.html jatikka]
| Jarmo Tikka
| Nokia Corporation
| 424
|-
| [http://maemo.org/profile/view/allnameswereout.html allnameswereout]
| Jeroen Huizinga
| 
| 419
|-
| [http://maemo.org/profile/view/nix_nix.html nix_nix]
| Gabriel Schulhof
| Nokia
| 416
|-
| [http://maemo.org/profile/view/florian.html florian]
| Florian Boor
| kernel concepts
| 408
|-
| [http://maemo.org/profile/view/milhouse.html milhouse]
| Neil MacLeod
| 
| 407
|-
| [http://maemo.org/profile/view/matan.html matan]
| Matan Ziv-Av
| 
| 405
|-
| [http://maemo.org/profile/view/atmasphere.html atmasphere]
| Jonathan Greene
| 
| 402
|-
| [http://maemo.org/profile/view/ian_r.html ian_r]
| Ian Ryge
| 
| 397
|-
| [http://maemo.org/profile/view/disq.html disq]
| Kemal Hadimli
| 
| 396
|-
| [http://maemo.org/profile/view/bforsberg.html bforsberg]
| Bruce Forsberg
| 
| 390
|-
| [http://maemo.org/profile/view/handful.html handful]
| Marcelo Eduardo
| INDT
| 387
|-
| [http://maemo.org/profile/view/gnuite.html gnuite]
| John Costigan
| Google, Inc.
| 387
|-
| [http://maemo.org/profile/view/bun.html bun]
| anson li
| 
| 386
|-
| [http://maemo.org/profile/view/mikecy.html mikecy]
| mike choy
| 
| 377
|-
| [http://maemo.org/profile/view/frals.html frals]
| Nick Leppänen Larsson
| 
| 372
|-
| [http://maemo.org/profile/view/jlbrd.html jlbrd]
| Jean-Luc Biord
| 
| 372
|-
| [http://maemo.org/profile/view/bunanson.html bunanson]
| anson bun
| Wilson Surgical Associates
| 371
|-
| [http://maemo.org/profile/view/tso.html tso]
| kenneth marken
| 
| 364
|-
| [http://maemo.org/profile/view/jukey.html jukey]
| Uwe Kaminski
| STRATO AG
| 361
|-
| [http://maemo.org/profile/view/sasler.html sasler]
| Sascha Makela
| 
| 358
|-
| [http://maemo.org/profile/view/fatalsaint.html fatalsaint]
| FatalSaint Alucard
| 
| 358
|-
| [http://maemo.org/profile/view/feri.html feri]
| Ferenc Szekely
| Nemein
| 355
|-
| [http://maemo.org/profile/view/collin.html collin]
| Collin Mulliner
| 
| 351
|-
| [http://maemo.org/profile/view/antimirov.html antimirov]
| Eugene Antimirov
| AND Automotive Navigation Data
| 349
|-
| [http://maemo.org/profile/view/yodude.html yodude]
| Steven Yeager
| Yoyodyne
| 348
|-
| [http://maemo.org/profile/view/nathanael.html nathanael]
| Nathanael Anderson
| 
| 348
|-
| [http://maemo.org/profile/view/morphbr.html morphbr]
| Artur Souza
| openBossa
| 345
|-
| [http://maemo.org/profile/view/hhedberg.html hhedberg]
| Henrik Hedberg
| mauku.innologies.com
| 345
|-
| [http://maemo.org/profile/view/frankusb.html frankusb]
| Frank Banul
| 
| 344
|-
| [http://maemo.org/profile/view/timeless.html timeless]
| timeless -
| Nokia
| 344
|-
| [http://maemo.org/profile/view/leif.html leif]
| Leif Ryge
| 
| 341
|-
| [http://maemo.org/profile/view/truejournals.html truejournals]
| Bobby Graese
| 
| 337
|-
| [http://maemo.org/profile/view/tor.html tor]
| Tor Arntsen
| 
| 334
|-
| [http://maemo.org/profile/view/kate.html kate]
| Kate Alhola
| Nokia
| 333
|-
| [http://maemo.org/profile/view/jolouis.html jolouis]
| Rob Williams
| 
| 332
|-
| [http://maemo.org/profile/view/rmoravcik.html rmoravcik]
| Roman Moravcik
| 
| 331
|-
| [http://maemo.org/profile/view/geraldko.html geraldko]
| Gerald Koblentz
| 
| 330
|-
| [http://maemo.org/profile/view/lorelei.html lorelei]
| Pascal Jermini
| 
| 326
|-
| [http://maemo.org/profile/view/spirit-iddqd.html spirit-iddqd]
| Kirill Plyashkevich
| 
| 319
|-
| [http://maemo.org/profile/view/hopbeat.html hopbeat]
| Arek Stopczynski
| Danmarks Tekniske Universitet
| 315
|-
| [http://maemo.org/profile/view/brontide.html brontide]
| Eric Warnke
| 
| 311
|-
| [http://maemo.org/profile/view/vpsych.html vpsych]
| Victor Quach
| 
| 311
|-
| [http://maemo.org/profile/view/sampp.html sampp]
| Sampo Savola
| 
| 310
|-
| [http://maemo.org/profile/view/wwp.html wwp]
| Tristan Chabredier
| 
| 309
|-
| [http://maemo.org/profile/view/b0unc3.html b0unc3]
| Daniele Maio
| 
| 308
|-
| [http://maemo.org/profile/view/tak.html tak]
| Levi Bard
| 
| 306
|-
| [http://maemo.org/profile/view/loki.html loki]
| Massimo Mund
| 
| 303
|-
| [http://maemo.org/profile/view/koos.html koos]
| Koos Vriezen
| froglogic Hamburg
| 301
|-
| [http://maemo.org/profile/view/daperl.html daperl]
| Da Perl
| 
| 299
|-
| [http://maemo.org/profile/view/amigadave.html amigadave]
| David King
| Openismus GmbH
| 299
|-
| [http://maemo.org/profile/view/pelago.html pelago]
| John Veness
| 
| 298
|-
| [http://maemo.org/profile/view/axique.html axique]
| Christoph Würstle
| 
| 296
|-
| [http://maemo.org/profile/view/debernardis.html debernardis]
| Ernesto de Bernardis
| 
| 295
|-
| [http://maemo.org/profile/view/christexaport.html christexaport]
| Marcus McFann
| StreetzMart Media Group
| 289
|-
| [http://maemo.org/profile/view/johnkzin.html johnkzin]
| John Rudd
| 
| 288
|-
| [http://maemo.org/profile/view/sachin007.html sachin007]
| vamsi kanumuri
| 
| 287
|-
| [http://maemo.org/profile/view/ysss.html ysss]
| Leo S
| 
| 284
|-
| [http://maemo.org/profile/view/johnx.html johnx]
| John Bloom
| The Driver Training Group
| 284
|-
| [http://maemo.org/profile/view/joppu.html joppu]
| Johannes Siipola
| 
| 279
|-
| [http://maemo.org/profile/view/mike_morrison.html mike_morrison]
| mike morrison
| 
| 277
|-
| [http://maemo.org/profile/view/jaaksi.html jaaksi]
| Ari Jaaksi
| 
| 277
|-
| [http://maemo.org/profile/view/geneven.html geneven]
| Gene Venable
| Unemployed at the time
| 275
|-
| [http://maemo.org/profile/view/rob1n.html rob1n]
| Robin Hill
| 
| 272
|-
| [http://maemo.org/profile/view/beermad.html beermad]
| Tony Green
| 
| 269
|-
| [http://maemo.org/profile/view/marcell.html marcell]
| Marcell Lengyel
| Nokia
| 268
|-
| [http://maemo.org/profile/view/zaheerm.html zaheerm]
| Zaheer Merali
| Flumotion Services S.A.
| 267
|-
| [http://maemo.org/profile/view/noobmonkey.html noobmonkey]
| Greg Roberts
| 
| 265
|-
| [http://maemo.org/profile/view/philipl.html philipl]
| Philip Langdale
| 
| 265
|-
| [http://maemo.org/profile/view/tz1.html tz1]
| t z
| 
| 264
|-
| [http://maemo.org/profile/view/colinleroy.html colinleroy]
| Colin Leroy
| 
| 264
|-
| [http://maemo.org/profile/view/jku.html jku]
| Jussi Kukkonen
| Intel
| 262
|-
| [http://maemo.org/profile/view/tuminoid.html tuminoid]
| Tuomo Tanskanen
| Nomovok Ltd
| 261
|-
| [http://maemo.org/profile/view/jpavelek.html jpavelek]
| Jakub Pavelek
| Nokia
| 261
|-
| [http://maemo.org/profile/view/serge.html serge]
| Siarhei Siamashka
| 
| 260
|-
| [http://maemo.org/profile/view/felipec.html felipec]
| Felipe Contreras
| Nokia
| 260
|-
| [http://maemo.org/profile/view/oriolj.html oriolj]
| Oriol Jiménez
| CilcTel SL
| 258
|-
| [http://maemo.org/profile/view/pupnik.html pupnik]
| Arnim Sauerbier
| 
| 252
|-
| [http://maemo.org/profile/view/dwould.html dwould]
| Daniel Would
| 
| 250
|-
| [http://maemo.org/profile/view/nokian900freak.html nokian900freak]
| Muhammad Satar
| 
| 248
|-
| [http://maemo.org/profile/view/subcore.html subcore]
| Claus Feichtinger
| 
| 248
|-
| [http://maemo.org/profile/view/mikhas.html mikhas]
| Michael Hasselmann
| 
| 246
|-
| [http://maemo.org/profile/view/tigert.html tigert]
| Tuomas Kuosmanen
| Nokia
| 245
|-
| [http://maemo.org/profile/view/kaltsi.html kaltsi]
| Juha Kallioinen
| Nokia
| 245
|-
| [http://maemo.org/profile/view/mishas.html mishas]
| Mikhail Sobolev
| 
| 240
|-
| [http://maemo.org/profile/view/eiffel.html eiffel]
| Roger Browne
| 
| 239
|-
| [http://maemo.org/profile/view/scriptkiller.html scriptkiller]
| Michael Arndt
| 
| 239
|-
| [http://maemo.org/profile/view/andrei1089.html andrei1089]
| Andrei Mirestean
| 
| 238
|-
| [http://maemo.org/profile/view/tvogel.html tvogel]
| Tilman Vogel
| 
| 237
|-
| [http://maemo.org/profile/view/tahitibob35.html tahitibob35]
| David Hautbois
| Prologue
| 237
|-
| [http://maemo.org/profile/view/rsperberg.html rsperberg]
| Roger Sperberg
| S Press
| 236
|-
| [http://maemo.org/profile/view/matsavol.html matsavol]
| Matti Savolainen
| Nokia Siemens Networks
| 235
|-
| [http://maemo.org/profile/view/crashanddie.html crashanddie]
| Sebastiaan Lauwers
| ActivIdentity
| 234
|-
| [http://maemo.org/profile/view/olivluca.html olivluca]
| Luca Olivetti
| 
| 233
|-
| [http://maemo.org/profile/view/ukki.html ukki]
| Janne Mäkinen
| 
| 233
|-
| [http://maemo.org/profile/view/chemist.html chemist]
| Rüdiger Schiller
| 
| 230
|-
| [http://maemo.org/profile/view/jayonthabeat.html jayonthabeat]
| Jay Haltom
| 
| 230
|-
| [http://maemo.org/profile/view/jrocha.html jrocha]
| Joaquim Rocha
| Igalia
| 229
|-
| [http://maemo.org/profile/view/aboaboit.html aboaboit]
| Andrea Borgia
| 
| 229
|-
| [http://maemo.org/profile/view/meizirkki.html meizirkki]
| Roope Kuisma
| 
| 226
|-
| [http://maemo.org/profile/view/tonikitoo.html tonikitoo]
| Antonio Gomes
| 
| 225
|-
| [http://maemo.org/profile/view/cpscotti.html cpscotti]
| Clovis Peruchi Scotti
| 
| 222
|-
| [http://maemo.org/profile/view/tonymaro.html tonymaro]
| Tony Maro
| 
| 221
|-
| [http://maemo.org/profile/view/firebird8.html firebird8]
| Wilson Tang
| 
| 220
|-
| [http://maemo.org/profile/view/danramos.html danramos]
| Dan Ramos
| 
| 220
|-
| [http://maemo.org/profile/view/karoliina.html karoliina]
| Karoliina Salminen
| Nokia Corporation
| 219
|-
| [http://maemo.org/profile/view/detective.html detective]
| Max Maher
| 
| 218
|-
| [http://maemo.org/profile/view/codemonkey.html codemonkey]
| Andy Dunmore
| 
| 218
|-
| [http://maemo.org/profile/view/zerionseven.html zerionseven]
| Tero Hietanen
| 
| 217
|-
| [http://maemo.org/profile/view/edgar2.html edgar2]
| thomas p
| Oculex
| 216
|-
| [http://maemo.org/profile/view/claesbas.html claesbas]
| Claes Norin
| 
| 216
|-
| [http://maemo.org/profile/view/nvyus.html nvyus]
| craig holland
| 
| 216
|-
| [http://maemo.org/profile/view/davep1.html davep1]
| Dave Pat
| 
| 215
|-
| [http://maemo.org/profile/view/tbergstr.html tbergstr]
| Terje Bergström
| 
| 215
|-
| [http://maemo.org/profile/view/fnordianslip.html fnordianslip]
| Darren Long
| 
| 214
|-
| [http://maemo.org/profile/view/sd69.html sd69]
| RM Bauer
| 
| 212
|-
| [http://maemo.org/profile/view/renatofilho.html renatofilho]
| renato filho
| INdT - Instituto nokia de tecnologia
| 211
|-
| [http://maemo.org/profile/view/chelli.html chelli]
| Thomas Schmidt
| Freelancer
| 209
|-
| [http://maemo.org/profile/view/speculatrix.html speculatrix]
| Paul M
| 
| 209
|-
| [http://maemo.org/profile/view/jbenc.html jbenc]
| Jiri Benc
| 
| 209
|-
| [http://maemo.org/profile/view/gnuton.html gnuton]
| Antonio Aloisio
| Nokia
| 209
|-
| [http://maemo.org/profile/view/vern.html vern]
| Ian Lawrence
| INdT
| 207
|-
| [http://maemo.org/profile/view/redex.html redex]
| Helmuth M.
| 
| 206
|-
| [http://maemo.org/profile/view/jsmanrique.html jsmanrique]
| Manrique Lopez
| ANDAGO
| 206
|-
| [http://maemo.org/profile/view/kimitake.html kimitake]
| Kimitake .
| 
| 206
|-
| [http://maemo.org/profile/view/madman2k.html madman2k]
| Pavel Rojtberg
| 
| 205
|-
| [http://maemo.org/profile/view/mrojas.html mrojas]
| Mario Rojas
| 
| 205
|-
| [http://maemo.org/profile/view/fgs.html fgs]
| Floriano Scioscia
| 
| 203
|-
| [http://maemo.org/profile/view/code177.html code177]
| Jonathan Blake
| 
| 203
|-
| [http://maemo.org/profile/view/mve.html mve]
| Marko Vertainen
| 
| 202
|-
| [http://maemo.org/profile/view/saturn.html saturn]
| Christos Saturn
| 
| 202
|-
| [http://maemo.org/profile/view/zehjotkah.html zehjotkah]
| Cosimo Kroll
| 
| 202
|-
| [http://maemo.org/profile/view/bones.html bones]
| Sergio Melas
| Solvay Chemicals
| 201
|-
| [http://maemo.org/profile/view/krk969.html krk969]
| rama kurvakat
| 
| 201
|-
| [http://maemo.org/profile/view/lma.html lma]
| Lucas Maneos
| 
| 200
|-
| [http://maemo.org/profile/view/rm_you.html rm_you]
| Adam Harwell
| DVM Solutions
| 200
|-
| [http://maemo.org/profile/view/zap.html zap]
| Andrew Zabolotny
| 
| 198
|-
| [http://maemo.org/profile/view/joshuamaverick.html joshuamaverick]
| Joshua Richards
| 
| 198
|-
| [http://maemo.org/profile/view/w00t.html w00t]
| Robin Burchell
| 
| 197
|-
| [http://maemo.org/profile/view/zchydem.html zchydem]
| Marko Mattila
| Cybercom Finland
| 196
|-
| [http://maemo.org/profile/view/ciroip.html ciroip]
| Ciro Ippolito
| 
| 196
|-
| [http://maemo.org/profile/view/rauha.html rauha]
| Matti Nummila
| 
| 195
|-
| [http://maemo.org/profile/view/raul.html raul]
| Raul Herbster
| Signove
| 195
|-
| [http://maemo.org/profile/view/b-man.html b-man]
| Brian McKenzie
| 
| 194
|-
| [http://maemo.org/profile/view/pamadio.html pamadio]
| Pierre Amadio
| 
| 193
|-
| [http://maemo.org/profile/view/steven676.html steven676]
| Steven Luo
| 
| 192
|-
| [http://maemo.org/profile/view/evad.html evad]
| Dawid Lorenz
| Tangent Labs
| 190
|-
| [http://maemo.org/profile/view/tim_edmonds.html tim_edmonds]
| Tim Edmonds
| 
| 190
|-
| [http://maemo.org/profile/view/donaggio.html donaggio]
| Luca Donaggio
| 
| 189
|-
| [http://maemo.org/profile/view/lizardo.html lizardo]
| Anderson Lizardo
| INdT
| 188
|-
| [http://maemo.org/profile/view/mobiledivide.html mobiledivide]
| Itai Kaitano
| NYU
| 188
|-
| [http://maemo.org/profile/view/terrencegf.html terrencegf]
| Terrence Fleury
| 
| 187
|-
| [http://maemo.org/profile/view/trevarthan.html trevarthan]
| Jesse Guardiani
| 
| 186
|-
| [http://maemo.org/profile/view/nilchak.html nilchak]
| Nilanjan Chaks
| 
| 186
|-
| [http://maemo.org/profile/view/itkach.html itkach]
| Igor Tkach
| 
| 185
|-
| [http://maemo.org/profile/view/pronkko.html pronkko]
| Pekka Rönkkö
| 
| 185
|-
| [http://maemo.org/profile/view/jaem.html jaem]
| Jeffery MacEachern
| 
| 184
|-
| [http://maemo.org/profile/view/matt.html matt]
| Matt Johnston
| 
| 182
|-
| [http://maemo.org/profile/view/pav.html pav]
| Pauli Virtanen
| 
| 180
|-
| [http://maemo.org/profile/view/mullf.html mullf]
| Fred Mull
| 
| 179
|-
| [http://maemo.org/profile/view/arnims.html arnims]
| Arnim Sauerbier
| 
| 178
|-
| [http://maemo.org/profile/view/lemmyslender.html lemmyslender]
| Len Palmer
| 
| 178
|-
| [http://maemo.org/profile/view/iancumihai.html iancumihai]
| mihai iancu
| 
| 178
|-
| [http://maemo.org/profile/view/thesandlord.html thesandlord]
| Sandeep Dinesh
| 
| 178
|-
| [http://maemo.org/profile/view/vre.html vre]
| Ville Reijonen
| 
| 177
|-
| [http://maemo.org/profile/view/ciron810.html ciron810]
| Ciro Ippolito
| 
| 177
|-
| [http://maemo.org/profile/view/rickcull.html rickcull]
| Rick Cull
| MOD
| 177
|-
| [http://maemo.org/profile/view/igor_stoppa.html igor_stoppa]
| Igor Stoppa
| Nokia
| 176
|-
| [http://maemo.org/profile/view/mikhmv.html mikhmv]
| Max Mikh
| upmc
| 176
|-
| [http://maemo.org/profile/view/rlinfati.html rlinfati]
| Rodrigo Linfati
| 
| 176
|-
| [http://maemo.org/profile/view/peterschneider.html peterschneider]
| Peter Schneider
| Nokia
| 175
|-
| [http://maemo.org/profile/view/mvo.html mvo]
| Marius Vollmer
| Nokia
| 172
|-
| [http://maemo.org/profile/view/jkq.html jkq]
| Justin Quek
| 
| 172
|-
| [http://maemo.org/profile/view/chri_ke.html chri_ke]
| Kenneth Rohde Christiansen
| Nokia Technology Institute, INdT
| 171
|-
| [http://maemo.org/profile/view/r-r.html r-r]
| Alex .
| 
| 171
|-
| [http://maemo.org/profile/view/melunko.html melunko]
| Hallyson Melo
| 
| 169
|-
| [http://maemo.org/profile/view/puelocesar.html puelocesar]
| Paulo Cesar
| 
| 169
|-
| [http://maemo.org/profile/view/smarsh.html smarsh]
| Steve Marsh
| Communications Research Centre
| 168
|-
| [http://maemo.org/profile/view/guaka.html guaka]
| Kasper Souren
| self
| 167
|-
| [http://maemo.org/profile/view/matija.html matija]
| Matija Simeunovic
| 
| 167
|-
| [http://maemo.org/profile/view/monkeyiq.html monkeyiq]
| Ben Martin
| my own
| 167
|-
| [http://maemo.org/profile/view/hqh.html hqh]
| Heikki Holstila
| 
| 167
|-
| [http://maemo.org/profile/view/lapa.html lapa]
| Luis Lorenzo
| 
| 166
|-
| [http://maemo.org/profile/view/jandmdickerson.html jandmdickerson]
| John Dickerson
| 
| 165
|-
| [http://maemo.org/profile/view/karstenb.html karstenb]
| Karsten Bräckelmann
| Openismus
| 165
|-
| [http://maemo.org/profile/view/buurmas.html buurmas]
| Joel Buursma
| 
| 164
|-
| [http://maemo.org/profile/view/bijjal.html bijjal]
| Soumya Bijjal
| Nokia
| 164
|-
| [http://maemo.org/profile/view/jtukkine.html jtukkine]
| Juha Tukkinen
| Nokia
| 163
|-
| [http://maemo.org/profile/view/ndi.html ndi]
| Ndi Ndi
| 
| 162
|-
| [http://maemo.org/profile/view/nnod.html nnod]
| Donn Morrison
| University of Geneva
| 162
|-
| [http://maemo.org/profile/view/homac.html homac]
| Holger Macht
| 
| 162
|-
| [http://maemo.org/profile/view/jlu.html jlu]
| Julius Luukko
| 
| 162
|-
| [http://maemo.org/profile/view/jakunnar.html jakunnar]
| Jake Kunnari
| 
| 162
|-
| [http://maemo.org/profile/view/msoini.html msoini]
| Mox Soini
| Palmu Inc
| 161
|-
| [http://maemo.org/profile/view/fragos.html fragos]
| George Fragos
| 
| 161
|-
| [http://maemo.org/profile/view/newca12.html newca12]
| Olivier ROLAND
| 
| 160
|-
| [http://maemo.org/profile/view/ruskie.html ruskie]
| Andraž Levstik
| 
| 160
|-
| [http://maemo.org/profile/view/kgronholm.html kgronholm]
| Kaj Grönholm
| Nomovok
| 160
|-
| [http://maemo.org/profile/view/jait.html jait]
| Jari Tenhunen
| 
| 159
|-
| [http://maemo.org/profile/view/timoph.html timoph]
| Timo Härkönen
| 
| 159
|-
| [http://maemo.org/profile/view/ywwg.html ywwg]
| Owen Williams
| 
| 158
|-
| [http://maemo.org/profile/view/silvermountain.html silvermountain]
| Silver Mountain
| 
| 158
|-
| [http://maemo.org/profile/view/djcb.html djcb]
| Dirk-Jan Binnema
| Nokia
| 158
|-
| [http://maemo.org/profile/view/dkwatts.html dkwatts]
| dk watts
| 
| 157
|-
| [http://maemo.org/profile/view/vkvraju.html vkvraju]
| Kasi Viswanath
| 
| 157
|-
| [http://maemo.org/profile/view/range.html range]
| Ralph Angenendt
| 
| 156
|-
| [http://maemo.org/profile/view/xan.html xan]
| Xan Lopez
| 
| 155
|-
| [http://maemo.org/profile/view/abbra.html abbra]
| Alexander Bokovoy
| Nokia
| 155
|-
| [http://maemo.org/profile/view/nakkebar.html nakkebar]
| Eero Tamminen
| Nokia
| 154
|-
| [http://maemo.org/profile/view/boxofsnoo.html boxofsnoo]
| Jonathan Markevich
| 
| 154
|-
| [http://maemo.org/profile/view/keesj.html keesj]
| Kees Jongenburger
| TomTom B.V.
| 154
|-
| [http://maemo.org/profile/view/v13.html v13]
| Stefanos Harhalakis
| 
| 154
|-
| [http://maemo.org/profile/view/josh.html josh]
| Josh Triplett
| 
| 153
|-
| [http://maemo.org/profile/view/onion.html onion]
| Kaj-Michael Lang
| City of Turku
| 153
|-
| [http://maemo.org/profile/view/igagis.html igagis]
| Ivan Gagis
| Motorola
| 153
|-
| [http://maemo.org/profile/view/technut.html technut]
| technut .
| 
| 152
|-
| [http://maemo.org/profile/view/lm2.html lm2]
| lm2 isme
| 
| 151
|-
| [http://maemo.org/profile/view/danielb.html danielb]
| Daniel Borgmann
| 
| 151
|-
| [http://maemo.org/profile/view/mjn.html mjn]
| Marko Nykanen
| 
| 150
|-
| [http://maemo.org/profile/view/nikosapi.html nikosapi]
| Nick Nobody
| 
| 150
|-
| [http://maemo.org/profile/view/nymajoak.html nymajoak]
| J N
| 
| 150
|-
| [http://maemo.org/profile/view/setanta.html setanta]
| Marcelo Lira
| Instituto Nokia de Tecnologia (INdT)
| 150
|-
| [http://maemo.org/profile/view/inz.html inz]
| Santtu Lakkala
| Nomovok
| 149
|-
| [http://maemo.org/profile/view/wdehoog.html wdehoog]
| Willem-Jan de Hoog
| 
| 149
|-
| [http://maemo.org/profile/view/munky261.html munky261]
| adam baker
| 
| 149
|-
| [http://maemo.org/profile/view/globster.html globster]
| Arkadiy Glazov
| 
| 146
|-
| [http://maemo.org/profile/view/maacruz.html maacruz]
| Miguel Angel Alvarez
| 
| 145
|-
| [http://maemo.org/profile/view/mikal.html mikal]
| Mika Luostarinen
| 
| 144
|-
| [http://maemo.org/profile/view/vinc17.html vinc17]
| Vincent Lefèvre
| INRIA
| 143
|-
| [http://maemo.org/profile/view/coldfusion.html coldfusion]
| Stefan Kochev
| 
| 143
|-
| [http://maemo.org/profile/view/rickybrent.html rickybrent]
| Ricky Brent
| BountyJobs
| 143
|-
| [http://maemo.org/profile/view/nhanquy.html nhanquy]
| Nhan Tran
| 
| 142
|-
| [http://maemo.org/profile/view/speedevil.html speedevil]
| Ian Stirling
| 
| 141
|-
| [http://maemo.org/profile/view/josefdk.html josefdk]
| Josef Assad
| 
| 141
|-
| [http://maemo.org/profile/view/marciom.html marciom]
| Marcio Macedo
| INdT
| 140
|-
| [http://maemo.org/profile/view/detlef.html detlef]
| Detlef Schmicker
| 
| 139
|-
| [http://maemo.org/profile/view/hogwash.html hogwash]
| Hogwash .
| 
| 139
|-
| [http://maemo.org/profile/view/tswindell.html tswindell]
| Tom Swindell
| Tyco Integrated Solutions
| 136
|-
| [http://maemo.org/profile/view/marieke.html marieke]
| Marieke Streefkerk
| Fronteer Strategy
| 136
|-
| [http://maemo.org/profile/view/ifrade.html ifrade]
| Ivan Frade
| Nokia
| 136
|-
| [http://maemo.org/profile/view/jknutar.html jknutar]
| Jan Knutar
| 
| 135
|-
| [http://maemo.org/profile/view/msameer.html msameer]
| Mohammed Hassan
| 
| 135
|-
| [http://maemo.org/profile/view/pierlux.html pierlux]
| Pierre-Luc Beaudoin
| Novopia
| 135
|-
| [http://maemo.org/profile/view/ph5.html ph5]
| Philipp Zabel
| 
| 134
|-
| [http://maemo.org/profile/view/megabyte405.html megabyte405]
| Ryan Pavlik
| 
| 134
|-
| [http://maemo.org/profile/view/maddler.html maddler]
| William Maddler
| Komputika s.a.s.
| 134
|-
| [http://maemo.org/profile/view/smoku.html smoku]
| Tomasz Sterna
| Opera Software ASA
| 133
|-
| [http://maemo.org/profile/view/zwer.html zwer]
| Aleksandar Mancic
| WhiteCity Soft
| 133
|-
| [http://maemo.org/profile/view/andree.html andree]
| Andrej Krutak
| 
| 133
|-
| [http://maemo.org/profile/view/rambo.html rambo]
| Eero af Heurlin
| Nemein Oy
| 133
|-
| [http://maemo.org/profile/view/mountainx.html mountainx]
| Dave Mountain
| 
| 132
|-
| [http://maemo.org/profile/view/dannym.html dannym]
| Danny Milosavljevic
| 
| 132
|-
| [http://maemo.org/profile/view/bunansonli.html bunansonli]
| bun anson
| 
| 132
|-
| [http://maemo.org/profile/view/pincushionqueen.html pincushionqueen]
| Heather Sloan
| 
| 130
|-
| [http://maemo.org/profile/view/klausr.html klausr]
| Klaus Rotter
| 
| 130
|-
| [http://maemo.org/profile/view/kup.html kup]
| Peter Kupietz
| 
| 130
|-
| [http://maemo.org/profile/view/jsa.html jsa]
| Jarkko Savolainen
| 
| 129
|-
| [http://maemo.org/profile/view/d-iivil.html d-iivil]
| Ricky Tournee
| IVK Music Finland LTD
| 128
|-
| [http://maemo.org/profile/view/slocan.html slocan]
| Yves Marcoz
| 
| 128
|-
| [http://maemo.org/profile/view/solarion.html solarion]
| Joseph Pingenot
| The University of Oklahoma
| 127
|-
| [http://maemo.org/profile/view/chrisp7.html chrisp7]
| Chris Phillips
| 
| 127
|-
| [http://maemo.org/profile/view/luogni.html luogni]
| Luca Ognibene
| Antek
| 126
|-
| [http://maemo.org/profile/view/labaudio.html labaudio]
| eric king
| 
| 126
|-
| [http://maemo.org/profile/view/kibergus.html kibergus]
| Guseynov Alexey
| 
| 126
|-
| [http://maemo.org/profile/view/mwiktowy.html mwiktowy]
| Michael Wiktowy
| 
| 125
|-
| [http://maemo.org/profile/view/deadmalc.html deadmalc]
| Malcolm Hussain-Gambles
| 
| 125
|-
| [http://maemo.org/profile/view/briand.html briand]
| Brian Dunworth
| 
| 125
|-
| [http://maemo.org/profile/view/osemutech.html osemutech]
| James Watters
| 
| 124
|-
| [http://maemo.org/profile/view/hns.html hns]
| Hannes Wallnoefer
| 
| 124
|-
| [http://maemo.org/profile/view/jtorra.html jtorra]
| Josep Torra
| Fluendo, S.A
| 124
|-
| [http://maemo.org/profile/view/rabbitrun84.html rabbitrun84]
| Miaoqing Tan
| Nokia
| 124
|-
| [http://maemo.org/profile/view/juhar.html juhar]
| Juha Rönkkö
| 
| 124
|-
| [http://maemo.org/profile/view/pepitoe.html pepitoe]
| David Martel
| 
| 124
|-
| [http://maemo.org/profile/view/pavel.html pavel]
| Pavel Fialko
| 
| 124
|-
| [http://maemo.org/profile/view/raulherbster.html raulherbster]
| Raul Fernandes Herbster
| Embedded Lab - Federal University of Campina Grande
| 124
|-
| [http://maemo.org/profile/view/corwin.html corwin]
| Corwin Amber
| 
| 123
|-
| [http://maemo.org/profile/view/emjayes.html emjayes]
| Mika Saarela
| 
| 122
|-
| [http://maemo.org/profile/view/sbir.html sbir]
| Alexander R.
| 
| 122
|-
| [http://maemo.org/profile/view/alan_peery.html alan_peery]
| Alan Peery
| 
| 122
|-
| [http://maemo.org/profile/view/rip.html rip]
| adam p
| 
| 122
|-
| [http://maemo.org/profile/view/eocanha.html eocanha]
| Enrique Ocaña González
| 
| 122
|-
| [http://maemo.org/profile/view/cas07.html cas07]
| Calum Lind
| 
| 122
|-
| [http://maemo.org/profile/view/mdk.html mdk]
| Michael Dominic K.
| New Wild
| 122
|-
| [http://maemo.org/profile/view/richie.html richie]
| Richard Booth
| 
| 122
|-
| [http://maemo.org/profile/view/jaark.html jaark]
| Dave Sexton
| 
| 121
|-
| [http://maemo.org/profile/view/lfelipe.html lfelipe]
| Luis Felipe Moraes
| ProFUSION Embedded Devices
| 121
|-
| [http://maemo.org/profile/view/mones.html mones]
| Ricardo Mones
| 
| 121
|-
| [http://maemo.org/profile/view/claws.html claws]
| Paul Mangan
| 
| 121
|-
| [http://maemo.org/profile/view/edgedemon.html edgedemon]
| Edge demon
| 
| 121
|-
| [http://maemo.org/profile/view/yabbas.html yabbas]
| Yasin Abbas
| 
| 121
|-
| [http://maemo.org/profile/view/baksiidaa.html baksiidaa]
| Matt Turner
| 
| 120
|-
| [http://maemo.org/profile/view/unique311.html unique311]
| stan one
| 
| 120
|-
| [http://maemo.org/profile/view/gemniii42.html gemniii42]
| george newbury
| 
| 120
|-
| [http://maemo.org/profile/view/pillar.html pillar]
| Juha Linnanen
| 
| 120
|-
| [http://maemo.org/profile/view/shashurup.html shashurup]
| George Kibardin
| 
| 120
|-
| [http://maemo.org/profile/view/wolfg1969.html wolfg1969]
| Yong Guo
| 
| 120
|-
| [http://maemo.org/profile/view/kvalo.html kvalo]
| Kalle Valo
| Nokia
| 119
|-
| [http://maemo.org/profile/view/tthurman.html tthurman]
| Thomas Thurman
| 
| 119
|-
| [http://maemo.org/profile/view/corsac.html corsac]
| Yves-Alexis Perez
| 
| 119
|-
| [http://maemo.org/profile/view/momchil.html momchil]
| momchil karabulev
| 
| 119
|-
| [http://maemo.org/profile/view/suihkulokki.html suihkulokki]
| Riku Voipio
| Nokia
| 118
|-
| [http://maemo.org/profile/view/leandro.html leandro]
| Leandro Sales
| Federal University of Campina Grande
| 118
|-
| [http://maemo.org/profile/view/bigbrovar.html bigbrovar]
| Bobby Adesuyan
| 
| 117
|-
| [http://maemo.org/profile/view/joenix.html joenix]
| Jeroen Wouters
| 
| 116
|-
| [http://maemo.org/profile/view/neatojones.html neatojones]
| Nathan Jones
| 
| 116
|-
| [http://maemo.org/profile/view/jasuarez.html jasuarez]
| Juan A. Suarez
| 
| 115
|-
| [http://maemo.org/profile/view/bdogg64.html bdogg64]
| B R
| 
| 115
|-
| [http://maemo.org/profile/view/jdapena.html jdapena]
| José Dapena Paz
| Igalia
| 114
|-
| [http://maemo.org/profile/view/vaibhavsharma.html vaibhavsharma]
| Vaibhav Sharma
| 
| 113
|-
| [http://maemo.org/profile/view/alevinsn.html alevinsn]
| Aaron Levinson
| 
| 113
|-
| [http://maemo.org/profile/view/convulted.html convulted]
| André Xuereb
| 
| 112
|-
| [http://maemo.org/profile/view/svlasov.html svlasov]
| Sergey Vlasov
| 
| 112
|-
| [http://maemo.org/profile/view/locusf.html locusf]
| Aleksi Suomalainen
| 
| 112
|-
| [http://maemo.org/profile/view/srn.html srn]
| Sarah Newman
| 
| 112
|-
| [http://maemo.org/profile/view/gabrielnava.html gabrielnava]
| Gabriel Nava Vazquez
| 
| 112
|-
| [http://maemo.org/profile/view/mooninite.html mooninite]
| Michael Cronenworth
| 
| 112
|-
| [http://maemo.org/profile/view/nwerneck.html nwerneck]
| Nicolau Werneck
| USP
| 111
|-
| [http://maemo.org/profile/view/jyro.html jyro]
| Jayesh Salvi
| 
| 111
|-
| [http://maemo.org/profile/view/stranger.html stranger]
| Dariusz Wiechecki
| ComArch S.A.
| 110
|-
| [http://maemo.org/profile/view/tanner.html tanner]
| Tom Tanner
| 
| 110
|-
| [http://maemo.org/profile/view/sho.html sho]
| Eike Hein
| 
| 110
|-
| [http://maemo.org/profile/view/phi.html phi]
| Phi D
| 
| 110
|-
| [http://maemo.org/profile/view/simon.html simon]
| Simon Budig
| kernel concepts
| 110
|-
| [http://maemo.org/profile/view/dschmicker.html dschmicker]
| Detlef Schmicker
| 
| 109
|-
| [http://maemo.org/profile/view/jessi3k3.html jessi3k3]
| Jesus Pulido
| 
| 109
|-
| [http://maemo.org/profile/view/tusinaniger.html tusinaniger]
| Pasi Norolampi
| 
| 109
|-
| [http://maemo.org/profile/view/bge.html bge]
| Benoit Goudreault-Emond
| 
| 109
|-
| [http://maemo.org/profile/view/jer006.html jer006]
| jeremy gillespie
| 
| 109
|-
| [http://maemo.org/profile/view/gazza_d.html gazza_d]
| gary dawes
| NHS
| 109
|-
| [http://maemo.org/profile/view/plastun.html plastun]
| Max Usachev
| 
| 108
|-
| [http://maemo.org/profile/view/glauber.html glauber]
| Glauber Ferreira
| 
| 108
|-
| [http://maemo.org/profile/view/craftyguy.html craftyguy]
| Clayton Craft
| 
| 108
|-
| [http://maemo.org/profile/view/onutz.html onutz]
| Onutz Buruga
| utestme.com
| 108
|-
| [http://maemo.org/profile/view/skatebiker.html skatebiker]
| skate biker
| 
| 108
|-
| [http://maemo.org/profile/view/zulla.html zulla]
| Hanno Zulla
| 
| 107
|-
| [http://maemo.org/profile/view/microphobic.html microphobic]
| Plamen Tonev
| 
| 107
|-
| [http://maemo.org/profile/view/rapante.html rapante]
| Oliver Janoschek
| 
| 107
|-
| [http://maemo.org/profile/view/xmob.html xmob]
| Pete Foster
| 
| 107
|-
| [http://maemo.org/profile/view/architengi.html architengi]
| Art Gi
| 
| 106
|-
| [http://maemo.org/profile/view/pancake.html pancake]
| pancake nopcode
| Fluendo
| 105
|-
| [http://maemo.org/profile/view/brucel.html brucel]
| Bruce Long
| 
| 105
|-
| [http://maemo.org/profile/view/mikel.html mikel]
| Michael Leeson
| 
| 105
|-
| [http://maemo.org/profile/view/shep.html shep]
| Stephen Lacey
| 
| 105
|-
| [http://maemo.org/profile/view/tony2001.html tony2001]
| Antony Dovgal
| 
| 105
|-
| [http://maemo.org/profile/view/somedude.html somedude]
| Ashish Chapagain
| 
| 105
|-
| [http://maemo.org/profile/view/yann_b.html yann_b]
| Yann Benigot
| 
| 105
|-
| [http://maemo.org/profile/view/underscore.html underscore]
| Henry Weathersbee
| 
| 104
|-
| [http://maemo.org/profile/view/alephito.html alephito]
| Diego Ruiz
| 
| 104
|-
| [http://maemo.org/profile/view/miker.html miker]
| Mike Rowehl
| 
| 104
|-
| [http://maemo.org/profile/view/renegadefanboy.html renegadefanboy]
| Renegade Fanboy
| 
| 104
|-
| [http://maemo.org/profile/view/moonshine.html moonshine]
| James Pooton
| 
| 103
|-
| [http://maemo.org/profile/view/rbrewer123.html rbrewer123]
| Rob Brewer
| 
| 103
|-
| [http://maemo.org/profile/view/kenyoung.html kenyoung]
| Ken Young
| 
| 102
|-
| [http://maemo.org/profile/view/tvijlbrief.html tvijlbrief]
| Tom Vijlbrief
| 
| 102
|-
| [http://maemo.org/profile/view/romaxa.html romaxa]
| Oleg Romashin
| 
| 102
|-
| [http://maemo.org/profile/view/trollo.html trollo]
| Troy Rollo
| 
| 102
|-
| [http://maemo.org/profile/view/pronvit.html pronvit]
| Vitaliy Pronkin
| 
| 102
|-
| [http://maemo.org/profile/view/floffe.html floffe]
| Olof Persson
| 
| 102
|-
| [http://maemo.org/profile/view/klinglerware.html klinglerware]
| Ryan Cristal
| 
| 102
|-
| [http://maemo.org/profile/view/hartti.html hartti]
| Hartti Suomela
| Nokia
| 101
|-
| [http://maemo.org/profile/view/skyostil.html skyostil]
| Sami Kyöstilä
| 
| 101
|-
| [http://maemo.org/profile/view/ajf.html ajf]
| Alfredo J. Fabretti
| 
| 101
|-
| [http://maemo.org/profile/view/mtron.html mtron]
| 
| 
| 101
|-
| [http://maemo.org/profile/view/ivanzorkic.html ivanzorkic]
| Ivan Zorkic
| 
| 100
|-
| [http://maemo.org/profile/view/svillar.html svillar]
| Sergio Villar Senin
| 
| 100
|-
| [http://maemo.org/profile/view/smancke.html smancke]
| Sebastian Mancke
| Tarent GmbH
| 100
|-
| [http://maemo.org/profile/view/nikolajhendel.html nikolajhendel]
| Nikolaj Hendel
| 
| 100
|-
| [http://maemo.org/profile/view/hasselmm.html hasselmm]
| Mathias Hasselmann
| Openismus
| 100
|-
| [http://maemo.org/profile/view/pguise.html pguise]
| Paul Guise
| 
| 100
|-
| [http://maemo.org/profile/view/theflew.html theflew]
| Mark Flewellen
| 
| 100
|}

[[Category:Community Council]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Council election Q1 2011</title>
    <id>4780</id>
    <revision>
      <id>42443</id>
      <timestamp>2011-03-07T21:10:54Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <minor/>
      <comment>/* Election material */</comment>
      <text xml:space="preserve">The [[Community Council | Maemo Community Council]] will have its next election in March 2011, electing a new council for a 6 month term.

The election page will eventually be available [http://maemo.org/vote here].

== Election timetable ==

All deadlines are set at 23:59 UTC.

* February 23: Election announced
* March 6: [[/Eligible candidates | List of potential candidates]] published
* March 7: Nominations open
* March 14: Nominations close
* March 15: List of candidates announced
* March 22: Voting opens
* March 29: Voting closes
* March 31: Results announced

== Eligibility ==

The election processes are described in detail at [[Community Council/Election process]].

Candidates need to have a [[karma]] of 100 or higher; voters need to have a karma of 10 or more. Karma is earned through a variety of mechanisms, but to earn points for contributions on [http://talk.maemo.org/ talk.maemo.org], you need to [[link talk.maemo.org account with maemo.org profile]].

== Election material ==

Here you will find lists of potential candidates, statements from candidates, and other material related to the March 2011 elections.

* [[/Eligible candidates | Maemo members eligible to run for the council]]
* Candidate declarations

== Results ==

The Maemo Community Council elected in March 2010 is as follows: 

* To be announced

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Council election Q1 2011/Eligible candidates</title>
    <id>4773</id>
    <revision>
      <id>43277</id>
      <timestamp>2011-04-29T14:21:51Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify table, add blurb</comment>
      <text xml:space="preserve">The following Maemo community members are eligible to be nominated for the 2011 Q1 Maemo [[Community Council]] elections.

{| class=&quot;wikitable&quot;
|-
! Username
! Real name
! Karma
|-
| [http://maemo.org/profile/view/inidrog.html inidrog]
| inidrog 
| 168
|-
| [http://maemo.org/profile/view/mtron.html mtron]
|  
| 103
|-
| [http://maemo.org/profile/view/timeless.html timeless]
| timeless -
| 356
|-
| [http://maemo.org/profile/view/r-r.html r-r]
| Alex .
| 183
|-
| [http://maemo.org/profile/view/dik.html dik]
| dik .
| 102
|-
| [http://maemo.org/profile/view/kimitake.html kimitake]
| Kimitake .
| 251
|-
| [http://maemo.org/profile/view/technut.html technut]
| technut .
| 152
|-
| [http://maemo.org/profile/view/venomrush.html venomrush]
| Venomrush .
| 720
|-
| [http://maemo.org/profile/view/hogwash.html hogwash]
| Hogwash .
| 140
|-
| [http://maemo.org/profile/view/yabbas.html yabbas]
| Yasin Abbas
| 121
|-
| [http://maemo.org/profile/view/generalantilles.html generalantilles]
| Ryan Abel
| 1486
|-
| [http://maemo.org/profile/view/mohammad7410.html mohammad7410]
| Mohammad Abu-Garbeyyeh
| 910
|-
| [http://maemo.org/profile/view/bigbrovar.html bigbrovar]
| Bobby Adesuyan
| 123
|-
| [http://maemo.org/profile/view/rambo.html rambo]
| Eero af Heurlin
| 381
|-
| [http://maemo.org/profile/view/kibergus.html kibergus]
| Guseynov Alexey
| 280
|-
| [http://maemo.org/profile/view/kate.html kate]
| Kate Alhola
| 367
|-
| [http://maemo.org/profile/view/zeenix.html zeenix]
| Zeeshan Ali
| 551
|-
| [http://maemo.org/profile/view/gnuton.html gnuton]
| Antonio Aloisio
| 258
|-
| [http://maemo.org/profile/view/fatalsaint.html fatalsaint]
| FatalSaint Alucard
| 605
|-
| [http://maemo.org/profile/view/maacruz.html maacruz]
| Miguel Angel Alvarez
| 239
|-
| [http://maemo.org/profile/view/pamadio.html pamadio]
| Pierre Amadio
| 209
|-
| [http://maemo.org/profile/view/corwin.html corwin]
| Corwin Amber
| 146
|-
| [http://maemo.org/profile/view/aanckar.html aanckar]
| Andreas Anckar
| 240
|-
| [http://maemo.org/profile/view/nathanael.html nathanael]
| Nathanael Anderson
| 391
|-
| [http://maemo.org/profile/view/range.html range]
| Ralph Angenendt
| 156
|-
| [http://maemo.org/profile/view/bunansonli.html bunansonli]
| bun anson
| 132
|-
| [http://maemo.org/profile/view/antimirov.html antimirov]
| Eugene Antimirov
| 351
|-
| [http://maemo.org/profile/view/dantonic.html dantonic]
| Davide Antonicelli
| 106
|-
| [http://maemo.org/profile/view/scriptkiller.html scriptkiller]
| Michael Arndt
| 228
|-
| [http://maemo.org/profile/view/kevloral.html kevloral]
| José Manuel Arnesto
| 130
|-
| [http://maemo.org/profile/view/texrat.html texrat]
| Randall Arnold
| 1705
|-
| [http://maemo.org/profile/view/tor.html tor]
| Tor Arntsen
| 355
|-
| [http://maemo.org/profile/view/snoshrk.html snoshrk]
| m arrowood
| 106
|-
| [http://maemo.org/profile/view/antoarts.html antoarts]
| anto arts
| 104
|-
| [http://maemo.org/profile/view/josefdk.html josefdk]
| Josef Assad
| 141
|-
| [http://maemo.org/profile/view/alexatkinuk.html alexatkinuk]
| Alexander Atkin
| 178
|-
| [http://maemo.org/profile/view/sandybeach.html sandybeach]
| David B
| 106
|-
| [http://maemo.org/profile/view/munky261.html munky261]
| adam baker
| 149
|-
| [http://maemo.org/profile/view/frankusb.html frankusb]
| Frank Banul
| 456
|-
| [http://maemo.org/profile/view/barbieri.html barbieri]
| Gustavo Barbieri
| 460
|-
| [http://maemo.org/profile/view/tak.html tak]
| Levi Bard
| 299
|-
| [http://maemo.org/profile/view/barisione.html barisione]
| Marco Barisione
| 313
|-
| [http://maemo.org/profile/view/ed_.html ed_]
| Ed Bartosh
| 663
|-
| [http://maemo.org/profile/view/apocalypso.html apocalypso]
| Teo Bartulovic
| 804
|-
| [http://maemo.org/profile/view/sd69.html sd69]
| RM Bauer
| 260
|-
| [http://maemo.org/profile/view/pierlux.html pierlux]
| Pierre-Luc Beaudoin
| 135
|-
| [http://maemo.org/profile/view/sadfist.html sadfist]
| Alex Beck
| 123
|-
| [http://maemo.org/profile/view/jbenc.html jbenc]
| Jiri Benc
| 188
|-
| [http://maemo.org/profile/view/yann_b.html yann_b]
| Yann Benigot
| 111
|-
| [http://maemo.org/profile/view/baloo.html baloo]
| Jamie Bennett
| 690
|-
| [http://maemo.org/profile/view/fbergeron.html fbergeron]
| Frederic Bergeron
| 138
|-
| [http://maemo.org/profile/view/bergie.html bergie]
| Henri Bergius
| 1051
|-
| [http://maemo.org/profile/view/tbergstr.html tbergstr]
| Terje Bergström
| 222
|-
| [http://maemo.org/profile/view/bijjal.html bijjal]
| Soumya Bijjal
| 164
|-
| [http://maemo.org/profile/view/skatebiker.html skatebiker]
| skate biker
| 114
|-
| [http://maemo.org/profile/view/djcb.html djcb]
| Dirk-Jan Binnema
| 158
|-
| [http://maemo.org/profile/view/jlbrd.html jlbrd]
| Jean-Luc Biord
| 365
|-
| [http://maemo.org/profile/view/lcuk.html lcuk]
| Gary Birkett
| 718
|-
| [http://maemo.org/profile/view/andrewfblack.html andrewfblack]
| Andrew Black
| 629
|-
| [http://maemo.org/profile/view/code177.html code177]
| Jonathan Blake
| 212
|-
| [http://maemo.org/profile/view/johnx.html johnx]
| John Bloom
| 287
|-
| [http://maemo.org/profile/view/snatcher.html snatcher]
| Stephan Bockhorst
| 106
|-
| [http://maemo.org/profile/view/abbra.html abbra]
| Alexander Bokovoy
| 163
|-
| [http://maemo.org/profile/view/florian.html florian]
| Florian Boor
| 523
|-
| [http://maemo.org/profile/view/duncan.html duncan]
| Duncan Booth
| 104
|-
| [http://maemo.org/profile/view/richie.html richie]
| Richard Booth
| 131
|-
| [http://maemo.org/profile/view/aboaboit.html aboaboit]
| Andrea Borgia
| 237
|-
| [http://maemo.org/profile/view/danielb.html danielb]
| Daniel Borgmann
| 152
|-
| [http://maemo.org/profile/view/mbo.html mbo]
| Martin Borho
| 141
|-
| [http://maemo.org/profile/view/karatchov.html karatchov]
| Malek Boughattas
| 102
|-
| [http://maemo.org/profile/view/icebox.html icebox]
| ice box
| 114
|-
| [http://maemo.org/profile/view/japieb.html japieb]
| Jaap Braam
| 126
|-
| [http://maemo.org/profile/view/karstenb.html karstenb]
| Karsten Bräckelmann
| 177
|-
| [http://maemo.org/profile/view/xfade.html xfade]
| Niels Breet
| 771
|-
| [http://maemo.org/profile/view/rickybrent.html rickybrent]
| Ricky Brent
| 190
|-
| [http://maemo.org/profile/view/rbrewer123.html rbrewer123]
| Rob Brewer
| 104
|-
| [http://maemo.org/profile/view/calvin_42.html calvin_42]
| Aymeric Brisse
| 217
|-
| [http://maemo.org/profile/view/eiffel.html eiffel]
| Roger Browne
| 256
|-
| [http://maemo.org/profile/view/qole.html qole]
| alan bruce
| 1145
|-
| [http://maemo.org/profile/view/simon.html simon]
| Simon Budig
| 114
|-
| [http://maemo.org/profile/view/bunanson.html bunanson]
| anson bun
| 425
|-
| [http://maemo.org/profile/view/bundyo.html bundyo]
| Kamen Bundev
| 684
|-
| [http://maemo.org/profile/view/w00t.html w00t]
| Robin Burchell
| 668
|-
| [http://maemo.org/profile/view/chilitechno.html chilitechno]
| Chris Burris
| 136
|-
| [http://maemo.org/profile/view/onutz.html onutz]
| Onutz Buruga
| 116
|-
| [http://maemo.org/profile/view/buurmas.html buurmas]
| Joel Buursma
| 232
|-
| [http://maemo.org/profile/view/slvr32.html slvr32]
| Jason Byrne
| 130
|-
| [http://maemo.org/profile/view/rcadden.html rcadden]
| Ricky Cadden
| 629
|-
| [http://maemo.org/profile/view/javicq.html javicq]
| Javier Campo
| 257
|-
| [http://maemo.org/profile/view/hox.html hox]
| Andrea Carron
| 104
|-
| [http://maemo.org/profile/view/zerojay.html zerojay]
| Jason Carter
| 719
|-
| [http://maemo.org/profile/view/torpedo48.html torpedo48]
| Emanuele Cassioli
| 917
|-
| [http://maemo.org/profile/view/puelocesar.html puelocesar]
| Paulo Cesar
| 172
|-
| [http://maemo.org/profile/view/wwp.html wwp]
| Tristan Chabredier
| 302
|-
| [http://maemo.org/profile/view/nilchak.html nilchak]
| Nilanjan Chaks
| 227
|-
| [http://maemo.org/profile/view/tzsm98.html tzsm98]
| Robert Chambers
| 185
|-
| [http://maemo.org/profile/view/somedude.html somedude]
| Ashish Chapagain
| 159
|-
| [http://maemo.org/profile/view/norayr.html norayr]
| Norayr Chilingaryan
| 101
|-
| [http://maemo.org/profile/view/brentdc.html brentdc]
| Brent Chiodo
| 506
|-
| [http://maemo.org/profile/view/kroll.html kroll]
| Dmitriy Chirva
| 207
|-
| [http://maemo.org/profile/view/mikecy.html mikecy]
| mike choy
| 601
|-
| [http://maemo.org/profile/view/aratorn.html aratorn]
| Charles Clément
| 112
|-
| [http://maemo.org/profile/view/cashclientel.html cashclientel]
| Cash Clientel
| 186
|-
| [http://maemo.org/profile/view/gcobb.html gcobb]
| Graham Cobb
| 858
|-
| [http://maemo.org/profile/view/creamyg.html creamyg]
| lance colton
| 252
|-
| [http://maemo.org/profile/view/felipec.html felipec]
| Felipe Contreras
| 352
|-
| [http://maemo.org/profile/view/gnuite.html gnuite]
| John Costigan
| 424
|-
| [http://maemo.org/profile/view/embedded.html embedded]
| Luigi Cotignano
| 217
|-
| [http://maemo.org/profile/view/craftyguy.html craftyguy]
| Clayton Craft
| 182
|-
| [http://maemo.org/profile/view/alban.html alban]
| Alban Crequy
| 101
|-
| [http://maemo.org/profile/view/klinglerware.html klinglerware]
| Ryan Cristal
| 141
|-
| [http://maemo.org/profile/view/fcrochik.html fcrochik]
| Felipe Crochik
| 390
|-
| [http://maemo.org/profile/view/mooninite.html mooninite]
| Michael Cronenworth
| 136
|-
| [http://maemo.org/profile/view/achipa.html achipa]
| Attila Csipa
| 1370
|-
| [http://maemo.org/profile/view/rickcull.html rickcull]
| Rick Cull
| 186
|-
| [http://maemo.org/profile/view/murrayc.html murrayc]
| Murray Cumming
| 567
|-
| [http://maemo.org/profile/view/kotczarny.html kotczarny]
| Kot Czarny
| 101
|-
| [http://maemo.org/profile/view/x-lette.html x-lette]
| B D
| 142
|-
| [http://maemo.org/profile/view/phi.html phi]
| Phi D
| 112
|-
| [http://maemo.org/profile/view/xur17.html xur17]
| Tom D
| 110
|-
| [http://maemo.org/profile/view/petur.html petur]
| Peter D'Hoye
| 110
|-
| [http://maemo.org/profile/view/archebyte.html archebyte]
| Mustali Dalal
| 895
|-
| [http://maemo.org/profile/view/jdapena.html jdapena]
| José Dapena Paz
| 131
|-
| [http://maemo.org/profile/view/gazza_d.html gazza_d]
| gary dawes
| 192
|-
| [http://maemo.org/profile/view/debernardis.html debernardis]
| Ernesto de Bernardis
| 417
|-
| [http://maemo.org/profile/view/wdehoog.html wdehoog]
| Willem-Jan de Hoog
| 166
|-
| [http://maemo.org/profile/view/anidel.html anidel]
| Aniello Del Sorbo
| 803
|-
| [http://maemo.org/profile/view/delaroca.html delaroca]
| Denis DeLaRoca
| 110
|-
| [http://maemo.org/profile/view/qwazix.html qwazix]
| Michael Demetriou
| 106
|-
| [http://maemo.org/profile/view/edgedemon.html edgedemon]
| Edge demon
| 142
|-
| [http://maemo.org/profile/view/jandmdickerson.html jandmdickerson]
| John Dickerson
| 165
|-
| [http://maemo.org/profile/view/cddiede.html cddiede]
| Chad Diederichs
| 223
|-
| [http://maemo.org/profile/view/freemangordon.html freemangordon]
| Ivaylo Dimitrov
| 164
|-
| [http://maemo.org/profile/view/thesandlord.html thesandlord]
| Sandeep Dinesh
| 188
|-
| [http://maemo.org/profile/view/tomaszd.html tomaszd]
| Tomasz Dominikowski
| 595
|-
| [http://maemo.org/profile/view/donaggio.html donaggio]
| Luca Donaggio
| 288
|-
| [http://maemo.org/profile/view/rdorsch.html rdorsch]
| Rainer Dorsch
| 108
|-
| [http://maemo.org/profile/view/tony2001.html tony2001]
| Antony Dovgal
| 112
|-
| [http://maemo.org/profile/view/fanoush.html fanoush]
| Frantisek Dufka
| 640
|-
| [http://maemo.org/profile/view/codemonkey.html codemonkey]
| Andy Dunmore
| 248
|-
| [http://maemo.org/profile/view/briand.html briand]
| Brian Dunworth
| 125
|-
| [http://maemo.org/profile/view/cthx.html cthx]
| CtHx Ъ
| 135
|-
| [http://maemo.org/profile/view/nido.html nido]
| Alex Easter
| 353
|-
| [http://maemo.org/profile/view/tim_edmonds.html tim_edmonds]
| Tim Edmonds
| 192
|-
| [http://maemo.org/profile/view/handful.html handful]
| Marcelo Eduardo
| 388
|-
| [http://maemo.org/profile/view/mehdi.html mehdi]
| Mehdi El Gueddari
| 126
|-
| [http://maemo.org/profile/view/ajf.html ajf]
| Alfredo J. Fabretti
| 101
|-
| [http://maemo.org/profile/view/flandry.html flandry]
| David Falkayn
| 681
|-
| [http://maemo.org/profile/view/renegadefanboy.html renegadefanboy]
| Renegade Fanboy
| 112
|-
| [http://maemo.org/profile/view/kojacker.html kojacker]
| Ryan Faulkner
| 323
|-
| [http://maemo.org/profile/view/fms.html fms]
| Marat Fayzullin
| 1564
|-
| [http://maemo.org/profile/view/anunakin.html anunakin]
| Marcus Fazzi
| 114
|-
| [http://maemo.org/profile/view/subcore.html subcore]
| Claus Feichtinger
| 296
|-
| [http://maemo.org/profile/view/raulherbster.html raulherbster]
| Raul Fernandes Herbster
| 125
|-
| [http://maemo.org/profile/view/harryf.html harryf]
| Harald Fernengel
| 145
|-
| [http://maemo.org/profile/view/glauber.html glauber]
| Glauber Ferreira
| 108
|-
| [http://maemo.org/profile/view/webhamster.html webhamster]
| Daniel Fett
| 225
|-
| [http://maemo.org/profile/view/pavel.html pavel]
| Pavel Fialko
| 128
|-
| [http://maemo.org/profile/view/renatofilho.html renatofilho]
| renato filho
| 226
|-
| [http://maemo.org/profile/view/jaffa.html jaffa]
| Andrew Flegg
| 2416
|-
| [http://maemo.org/profile/view/terrencegf.html terrencegf]
| Terrence Fleury
| 189
|-
| [http://maemo.org/profile/view/theflew.html theflew]
| Mark Flewellen
| 126
|-
| [http://maemo.org/profile/view/thecursedfly.html thecursedfly]
| Cursed Fly
| 108
|-
| [http://maemo.org/profile/view/joorin.html joorin]
| Peter Flystam
| 179
|-
| [http://maemo.org/profile/view/bforsberg.html bforsberg]
| Bruce Forsberg
| 390
|-
| [http://maemo.org/profile/view/xmob.html xmob]
| Pete Foster
| 136
|-
| [http://maemo.org/profile/view/jeremiah.html jeremiah]
| Jeremiah Foster
| 585
|-
| [http://maemo.org/profile/view/ifrade.html ifrade]
| Ivan Frade
| 163
|-
| [http://maemo.org/profile/view/fragos.html fragos]
| George Fragos
| 171
|-
| [http://maemo.org/profile/view/wesgreen.html wesgreen]
| andy friedberg
| 102
|-
| [http://maemo.org/profile/view/wonko.html wonko]
| Ruediger Gad
| 491
|-
| [http://maemo.org/profile/view/sjgadsby.html sjgadsby]
| Stephen Gadsby
| 3645
|-
| [http://maemo.org/profile/view/igagis.html igagis]
| Ivan Gagis
| 182
|-
| [http://maemo.org/profile/view/agarcia.html agarcia]
| Alberto Garcia
| 642
|-
| [http://maemo.org/profile/view/ivgalvez.html ivgalvez]
| Iván Gálvez Junquera
| 147
|-
| [http://maemo.org/profile/view/mgedmin.html mgedmin]
| Marius Gedminas
| 522
|-
| [http://maemo.org/profile/view/thoughtfix.html thoughtfix]
| Daniel Gentleman
| 1129
|-
| [http://maemo.org/profile/view/architengi.html architengi]
| Art Gi
| 107
|-
| [http://maemo.org/profile/view/qgil.html qgil]
| Quim Gil
| 2505
|-
| [http://maemo.org/profile/view/jer006.html jer006]
| jeremy gillespie
| 260
|-
| [http://maemo.org/profile/view/jurop88.html jurop88]
| Michele Giorgini
| 120
|-
| [http://maemo.org/profile/view/globster.html globster]
| Arkadiy Glazov
| 190
|-
| [http://maemo.org/profile/view/lxp.html lxp]
| David Gnedt
| 192
|-
| [http://maemo.org/profile/view/zgold550.html zgold550]
| Zachary Goldberg
| 109
|-
| [http://maemo.org/profile/view/tonikitoo.html tonikitoo]
| Antonio Gomes
| 225
|-
| [http://maemo.org/profile/view/magomez.html magomez]
| Miguel Gomez
| 111
|-
| [http://maemo.org/profile/view/bge.html bge]
| Benoit Goudreault-Emond
| 139
|-
| [http://maemo.org/profile/view/truejournals.html truejournals]
| Bobby Graese
| 338
|-
| [http://maemo.org/profile/view/andy80.html andy80]
| Andrea Grandi
| 602
|-
| [http://maemo.org/profile/view/kgronholm.html kgronholm]
| Kaj Grönholm
| 203
|-
| [http://maemo.org/profile/view/lbt.html lbt]
| David Greaves
| 663
|-
| [http://maemo.org/profile/view/beermad.html beermad]
| Tony Green
| 254
|-
| [http://maemo.org/profile/view/atmasphere.html atmasphere]
| Jonathan Greene
| 404
|-
| [http://maemo.org/profile/view/pycage.html pycage]
| Martin Grimme
| 1091
|-
| [http://maemo.org/profile/view/vlg.html vlg]
| Vladislav Grinchenko
| 115
|-
| [http://maemo.org/profile/view/trevarthan.html trevarthan]
| Jesse Guardiani
| 179
|-
| [http://maemo.org/profile/view/thenokiablog.html thenokiablog]
| Mark Guim
| 1008
|-
| [http://maemo.org/profile/view/pguise.html pguise]
| Paul Guise
| 102
|-
| [http://maemo.org/profile/view/wolfg1969.html wolfg1969]
| Yong Guo
| 106
|-
| [http://maemo.org/profile/view/disq.html disq]
| Kemal Hadimli
| 383
|-
| [http://maemo.org/profile/view/conny.html conny]
| Cornelius Hald
| 512
|-
| [http://maemo.org/profile/view/humanpenguin.html humanpenguin]
| Dave Hall
| 128
|-
| [http://maemo.org/profile/view/jayonthabeat.html jayonthabeat]
| Jay Haltom
| 231
|-
| [http://maemo.org/profile/view/harbaum.html harbaum]
| Till Harbaum
| 652
|-
| [http://maemo.org/profile/view/v13.html v13]
| Stefanos Harhalakis
| 553
|-
| [http://maemo.org/profile/view/rm_you.html rm_you]
| Adam Harwell
| 200
|-
| [http://maemo.org/profile/view/msameer.html msameer]
| Mohammed Hassan
| 153
|-
| [http://maemo.org/profile/view/mikhas.html mikhas]
| Michael Hasselmann
| 270
|-
| [http://maemo.org/profile/view/hasselmm.html hasselmm]
| Mathias Hasselmann
| 130
|-
| [http://maemo.org/profile/view/anapospastos.html anapospastos]
| Theofilos Hatziaristeras
| 131
|-
| [http://maemo.org/profile/view/tahitibob35.html tahitibob35]
| David Hautbois
| 323
|-
| [http://maemo.org/profile/view/timoph.html timoph]
| Timo Härkönen
| 254
|-
| [http://maemo.org/profile/view/oxpo.html oxpo]
| Thomas Höglund
| 101
|-
| [http://maemo.org/profile/view/hhedberg.html hhedberg]
| Henrik Hedberg
| 323
|-
| [http://maemo.org/profile/view/sho.html sho]
| Eike Hein
| 110
|-
| [http://maemo.org/profile/view/nikolajhendel.html nikolajhendel]
| Nikolaj Hendel
| 118
|-
| [http://maemo.org/profile/view/claudius.html claudius]
| Claudius Henrichs
| 121
|-
| [http://maemo.org/profile/view/raul.html raul]
| Raul Herbster
| 203
|-
| [http://maemo.org/profile/view/khertan.html khertan]
| Benoît HERVIER
| 1243
|-
| [http://maemo.org/profile/view/nicolai.html nicolai]
| Nicolai Hess
| 868
|-
| [http://maemo.org/profile/view/zerionseven.html zerionseven]
| Tero Hietanen
| 196
|-
| [http://maemo.org/profile/view/rob1n.html rob1n]
| Robin Hill
| 462
|-
| [http://maemo.org/profile/view/nvyus.html nvyus]
| craig holland
| 337
|-
| [http://maemo.org/profile/view/juise-.html juise-]
| Jussi Holm
| 200
|-
| [http://maemo.org/profile/view/hqh.html hqh]
| Heikki Holstila
| 396
|-
| [http://maemo.org/profile/view/fieldofcows.html fieldofcows]
| Roy Hopkins
| 169
|-
| [http://maemo.org/profile/view/amh.html amh]
| Alan Howard
| 172
|-
| [http://maemo.org/profile/view/marxian.html marxian]
| Stuart Howarth
| 334
|-
| [http://maemo.org/profile/view/ihmis-suski.html ihmis-suski]
| Susanna Huhtanen
| 183
|-
| [http://maemo.org/profile/view/allnameswereout.html allnameswereout]
| Jeroen Huizinga
| 433
|-
| [http://maemo.org/profile/view/deadmalc.html deadmalc]
| Malcolm Hussain-Gambles
| 143
|-
| [http://maemo.org/profile/view/ahynes1.html ahynes1]
| Aldon Hynes
| 308
|-
| [http://maemo.org/profile/view/iancumihai.html iancumihai]
| mihai iancu
| 181
|-
| [http://maemo.org/profile/view/blessn900.html blessn900]
| Almalence Inc
| 110
|-
| [http://maemo.org/profile/view/ciroip.html ciroip]
| Ciro Ippolito
| 196
|-
| [http://maemo.org/profile/view/ciron810.html ciron810]
| Ciro Ippolito
| 177
|-
| [http://maemo.org/profile/view/lm2.html lm2]
| lm2 isme
| 153
|-
| [http://maemo.org/profile/view/techie.html techie]
| techie J
| 144
|-
| [http://maemo.org/profile/view/jaaksi.html jaaksi]
| Ari Jaaksi
| 333
|-
| [http://maemo.org/profile/view/rapante.html rapante]
| Oliver Janoschek
| 110
|-
| [http://maemo.org/profile/view/toja92.html toja92]
| Tobias Jansson
| 182
|-
| [http://maemo.org/profile/view/parasight.html parasight]
| Juhana Jauhiainen
| 204
|-
| [http://maemo.org/profile/view/vjaquez.html vjaquez]
| Víctor Manuel Jáquez Leal
| 101
|-
| [http://maemo.org/profile/view/lorelei.html lorelei]
| Pascal Jermini
| 374
|-
| [http://maemo.org/profile/view/firstfan.html firstfan]
| Evan JIANG
| 183
|-
| [http://maemo.org/profile/view/oriolj.html oriolj]
| Oriol Jiménez
| 265
|-
| [http://maemo.org/profile/view/matt.html matt]
| Matt Johnston
| 184
|-
| [http://maemo.org/profile/view/neatojones.html neatojones]
| Nathan Jones
| 116
|-
| [http://maemo.org/profile/view/keesj.html keesj]
| Kees Jongenburger
| 164
|-
| [http://maemo.org/profile/view/dmj726.html dmj726]
| David Jordan
| 121
|-
| [http://maemo.org/profile/view/tomj.html tomj]
| Tom Joyce
| 176
|-
| [http://maemo.org/profile/view/krisse.html krisse]
| Krisse Juorunen
| 1694
|-
| [http://maemo.org/profile/view/hrw.html hrw]
| Marcin Juszkiewicz
| 590
|-
| [http://maemo.org/profile/view/mdk.html mdk]
| Michael Dominic K.
| 122
|-
| [http://maemo.org/profile/view/jfk.html jfk]
| Johannes K.
| 118
|-
| [http://maemo.org/profile/view/mobiledivide.html mobiledivide]
| Itai Kaitano
| 217
|-
| [http://maemo.org/profile/view/kaltsi.html kaltsi]
| Juha Kallioinen
| 256
|-
| [http://maemo.org/profile/view/jukey.html jukey]
| Uwe Kaminski
| 453
|-
| [http://maemo.org/profile/view/lostinmirkwood.html lostinmirkwood]
| Kristopher Kantor
| 191
|-
| [http://maemo.org/profile/view/sachin007.html sachin007]
| vamsi kanumuri
| 331
|-
| [http://maemo.org/profile/view/momchil.html momchil]
| momchil karabulev
| 121
|-
| [http://maemo.org/profile/view/gri.html gri]
| Christoph Keller
| 162
|-
| [http://maemo.org/profile/view/shashurup.html shashurup]
| George Kibardin
| 157
|-
| [http://maemo.org/profile/view/amigadave.html amigadave]
| David King
| 560
|-
| [http://maemo.org/profile/view/labaudio.html labaudio]
| eric king
| 188
|-
| [http://maemo.org/profile/view/manuel.html manuel]
| Manuel Kirsch
| 168
|-
| [http://maemo.org/profile/view/direx.html direx]
| Daniel Klaffenbach
| 117
|-
| [http://maemo.org/profile/view/andre.html andre]
| Andre Klapper
| 1175
|-
| [http://maemo.org/profile/view/jknutar.html jknutar]
| Jan Knutar
| 225
|-
| [http://maemo.org/profile/view/geraldko.html geraldko]
| Gerald Koblentz
| 347
|-
| [http://maemo.org/profile/view/coldfusion.html coldfusion]
| Stefan Kochev
| 144
|-
| [http://maemo.org/profile/view/tekojo.html tekojo]
| Tero Kojo
| 599
|-
| [http://maemo.org/profile/view/konttori.html konttori]
| Urho Konttori
| 842
|-
| [http://maemo.org/profile/view/varunkrish.html varunkrish]
| varun krish
| 162
|-
| [http://maemo.org/profile/view/venemo.html venemo]
| Timur Kristóf
| 376
|-
| [http://maemo.org/profile/view/zehjotkah.html zehjotkah]
| Cosimo Kroll
| 382
|-
| [http://maemo.org/profile/view/andree.html andree]
| Andrej Krutak
| 141
|-
| [http://maemo.org/profile/view/meizirkki.html meizirkki]
| Roope Kuisma
| 228
|-
| [http://maemo.org/profile/view/jku.html jku]
| Jussi Kukkonen
| 262
|-
| [http://maemo.org/profile/view/kulve.html kulve]
| Tuomas Kulve
| 578
|-
| [http://maemo.org/profile/view/shin.html shin]
| Manoj Kumar
| 155
|-
| [http://maemo.org/profile/view/jakunnar.html jakunnar]
| Jake Kunnari
| 162
|-
| [http://maemo.org/profile/view/tigert.html tigert]
| Tuomas Kuosmanen
| 247
|-
| [http://maemo.org/profile/view/kup.html kup]
| Peter Kupietz
| 137
|-
| [http://maemo.org/profile/view/krk969.html krk969]
| rama kurvakat
| 407
|-
| [http://maemo.org/profile/view/shep.html shep]
| Stephen Lacey
| 119
|-
| [http://maemo.org/profile/view/inz.html inz]
| Santtu Lakkala
| 155
|-
| [http://maemo.org/profile/view/jonnylamb.html jonnylamb]
| Jonny Lamb
| 129
|-
| [http://maemo.org/profile/view/onion.html onion]
| Kaj-Michael Lang
| 437
|-
| [http://maemo.org/profile/view/philipl.html philipl]
| Philip Langdale
| 265
|-
| [http://maemo.org/profile/view/crashanddie.html crashanddie]
| Sebastiaan Lauwers
| 272
|-
| [http://maemo.org/profile/view/vern.html vern]
| Ian Lawrence
| 283
|-
| [http://maemo.org/profile/view/mikel.html mikel]
| Michael Leeson
| 105
|-
| [http://maemo.org/profile/view/vinc17.html vinc17]
| Vincent Lefèvre
| 165
|-
| [http://maemo.org/profile/view/fredoll.html fredoll]
| Fred Lefévère-Laoide
| 587
|-
| [http://maemo.org/profile/view/danilo.html danilo]
| Danilo Cesar Lemes de Paula
| 128
|-
| [http://maemo.org/profile/view/marcell.html marcell]
| Marcell Lengyel
| 306
|-
| [http://maemo.org/profile/view/frals.html frals]
| Nick Leppänen Larsson
| 626
|-
| [http://maemo.org/profile/view/colinleroy.html colinleroy]
| Colin Leroy
| 257
|-
| [http://maemo.org/profile/view/alevinsn.html alevinsn]
| Aaron Levinson
| 119
|-
| [http://maemo.org/profile/view/ruskie.html ruskie]
| Andraž Levstik
| 165
|-
| [http://maemo.org/profile/view/penguinbait.html penguinbait]
| Matthew Lewis
| 545
|-
| [http://maemo.org/profile/view/bun.html bun]
| anson li
| 448
|-
| [http://maemo.org/profile/view/etrunko.html etrunko]
| Eduardo Lima
| 484
|-
| [http://maemo.org/profile/view/cas07.html cas07]
| Calum Lind
| 138
|-
| [http://maemo.org/profile/view/pipeline.html pipeline]
| pipe line
| 699
|-
| [http://maemo.org/profile/view/rlinfati.html rlinfati]
| Rodrigo Linfati
| 251
|-
| [http://maemo.org/profile/view/pillar.html pillar]
| Juha Linnanen
| 144
|-
| [http://maemo.org/profile/view/setanta.html setanta]
| Marcelo Lira
| 150
|-
| [http://maemo.org/profile/view/willem_liu.html willem_liu]
| Willem Liu
| 102
|-
| [http://maemo.org/profile/view/lizardo.html lizardo]
| Anderson Lizardo
| 217
|-
| [http://maemo.org/profile/view/seadog.html seadog]
| Giorgos Logiotatidis
| 147
|-
| [http://maemo.org/profile/view/fnordianslip.html fnordianslip]
| Darren Long
| 311
|-
| [http://maemo.org/profile/view/brucel.html brucel]
| Bruce Long
| 126
|-
| [http://maemo.org/profile/view/aisu.html aisu]
| Tyler Longwell
| 527
|-
| [http://maemo.org/profile/view/xan.html xan]
| Xan Lopez
| 210
|-
| [http://maemo.org/profile/view/jsmanrique.html jsmanrique]
| Manrique Lopez
| 212
|-
| [http://maemo.org/profile/view/evad.html evad]
| Dawid Lorenz
| 308
|-
| [http://maemo.org/profile/view/lapa.html lapa]
| Luis Lorenzo
| 145
|-
| [http://maemo.org/profile/view/steven676.html steven676]
| Steven Luo
| 250
|-
| [http://maemo.org/profile/view/mikal.html mikal]
| Mika Luostarinen
| 144
|-
| [http://maemo.org/profile/view/jlu.html jlu]
| Julius Luukko
| 198
|-
| [http://maemo.org/profile/view/speculatrix.html speculatrix]
| Paul M
| 225
|-
| [http://maemo.org/profile/view/redex.html redex]
| Helmuth M.
| 352
|-
| [http://maemo.org/profile/view/m2cm2c.html m2cm2c]
| m2c m2c
| 187
|-
| [http://maemo.org/profile/view/jaem.html jaem]
| Jeffery MacEachern
| 213
|-
| [http://maemo.org/profile/view/marciom.html marciom]
| Marcio Macedo
| 175
|-
| [http://maemo.org/profile/view/homac.html homac]
| Holger Macht
| 163
|-
| [http://maemo.org/profile/view/milhouse.html milhouse]
| Neil MacLeod
| 473
|-
| [http://maemo.org/profile/view/maddler.html maddler]
| William Maddler
| 173
|-
| [http://maemo.org/profile/view/detective.html detective]
| Max Maher
| 219
|-
| [http://maemo.org/profile/view/b0unc3.html b0unc3]
| Daniele Maio
| 502
|-
| [http://maemo.org/profile/view/sasler.html sasler]
| Sascha Makela
| 363
|-
| [http://maemo.org/profile/view/tanya.html tanya]
| Tanya Makova
| 168
|-
| [http://maemo.org/profile/view/zwer.html zwer]
| Aleksandar Mancic
| 205
|-
| [http://maemo.org/profile/view/smancke.html smancke]
| Sebastian Mancke
| 106
|-
| [http://maemo.org/profile/view/lma.html lma]
| Lucas Maneos
| 224
|-
| [http://maemo.org/profile/view/claws.html claws]
| Paul Mangan
| 114
|-
| [http://maemo.org/profile/view/torshind.html torshind]
| Marcello Mansueto
| 229
|-
| [http://maemo.org/profile/view/slocan.html slocan]
| Yves Marcoz
| 203
|-
| [http://maemo.org/profile/view/mardy.html mardy]
| Alberto Mardegan
| 243
|-
| [http://maemo.org/profile/view/tso.html tso]
| kenneth marken
| 397
|-
| [http://maemo.org/profile/view/boxofsnoo.html boxofsnoo]
| Jonathan Markevich
| 154
|-
| [http://maemo.org/profile/view/tmarki.html tmarki]
| Tamas Marki
| 150
|-
| [http://maemo.org/profile/view/tonymaro.html tonymaro]
| Tony Maro
| 209
|-
| [http://maemo.org/profile/view/smarsh.html smarsh]
| Steve Marsh
| 169
|-
| [http://maemo.org/profile/view/yerga.html yerga]
| Daniel Martín Yerga
| 1704
|-
| [http://maemo.org/profile/view/pepitoe.html pepitoe]
| David Martel
| 133
|-
| [http://maemo.org/profile/view/monkeyiq.html monkeyiq]
| Ben Martin
| 252
|-
| [http://maemo.org/profile/view/zchydem.html zchydem]
| Marko Mattila
| 334
|-
| [http://maemo.org/profile/view/ukki.html ukki]
| Janne Mäkinen
| 590
|-
| [http://maemo.org/profile/view/gerbick.html gerbick]
| William McBee
| 535
|-
| [http://maemo.org/profile/view/christexaport.html christexaport]
| Marcus McFann
| 311
|-
| [http://maemo.org/profile/view/b-man.html b-man]
| Brian McKenzie
| 218
|-
| [http://maemo.org/profile/view/bones.html bones]
| Sergio Melas
| 201
|-
| [http://maemo.org/profile/view/melunko.html melunko]
| Hallyson Melo
| 169
|-
| [http://maemo.org/profile/view/zaheerm.html zaheerm]
| Zaheer Merali
| 303
|-
| [http://maemo.org/profile/view/mikhmv.html mikhmv]
| Max Mikh
| 192
|-
| [http://maemo.org/profile/view/mmlado.html mmlado]
| Mladen Milankovic
| 190
|-
| [http://maemo.org/profile/view/palmsolo.html palmsolo]
| Matthew Miller
| 701
|-
| [http://maemo.org/profile/view/dannym.html dannym]
| Danny Milosavljevic
| 139
|-
| [http://maemo.org/profile/view/andrei1089.html andrei1089]
| Andrei Mirestean
| 342
|-
| [http://maemo.org/profile/view/benson.html benson]
| Benson Mitchell
| 489
|-
| [http://maemo.org/profile/view/jebba.html jebba]
| Jeff Moe
| 477
|-
| [http://maemo.org/profile/view/mones.html mones]
| Ricardo Mones
| 114
|-
| [http://maemo.org/profile/view/lfelipe.html lfelipe]
| Luis Felipe Moraes
| 124
|-
| [http://maemo.org/profile/view/rmoravcik.html rmoravcik]
| Roman Moravcik
| 580
|-
| [http://maemo.org/profile/view/nnod.html nnod]
| Donn Morrison
| 164
|-
| [http://maemo.org/profile/view/mike_morrison.html mike_morrison]
| mike morrison
| 273
|-
| [http://maemo.org/profile/view/silvermountain.html silvermountain]
| Silver Mountain
| 259
|-
| [http://maemo.org/profile/view/mountainx.html mountainx]
| Dave Mountain
| 135
|-
| [http://maemo.org/profile/view/lmoura.html lmoura]
| Lauro Moura
| 127
|-
| [http://maemo.org/profile/view/mullf.html mullf]
| Fred Mull
| 185
|-
| [http://maemo.org/profile/view/collin.html collin]
| Collin Mulliner
| 323
|-
| [http://maemo.org/profile/view/loki.html loki]
| Massimo Mund
| 268
|-
| [http://maemo.org/profile/view/stskeeps.html stskeeps]
| Carsten Munk
| 1090
|-
| [http://maemo.org/profile/view/mmurfin87.html mmurfin87]
| Mark Murfin III
| 128
|-
| [http://maemo.org/profile/view/nymajoak.html nymajoak]
| J N
| 150
|-
| [http://maemo.org/profile/view/gabrielnava.html gabrielnava]
| Gabriel Nava Vazquez
| 229
|-
| [http://maemo.org/profile/view/ndi.html ndi]
| Ndi Ndi
| 368
|-
| [http://maemo.org/profile/view/dneary.html dneary]
| Dave Neary
| 1172
|-
| [http://maemo.org/profile/view/gemniii42.html gemniii42]
| george newbury
| 120
|-
| [http://maemo.org/profile/view/srn.html srn]
| Sarah Newman
| 179
|-
| [http://maemo.org/profile/view/nikosapi.html nikosapi]
| Nick Nobody
| 152
|-
| [http://maemo.org/profile/view/pancake.html pancake]
| pancake nopcode
| 108
|-
| [http://maemo.org/profile/view/claesbas.html claesbas]
| Claes Norin
| 226
|-
| [http://maemo.org/profile/view/tusinaniger.html tusinaniger]
| Pasi Norolampi
| 275
|-
| [http://maemo.org/profile/view/nux.html nux]
| Ahto Nukki
| 105
|-
| [http://maemo.org/profile/view/rauha.html rauha]
| Matti Nummila
| 341
|-
| [http://maemo.org/profile/view/mjn.html mjn]
| Marko Nykanen
| 150
|-
| [http://maemo.org/profile/view/eocanha.html eocanha]
| Enrique Ocaña González
| 129
|-
| [http://maemo.org/profile/view/luogni.html luogni]
| Luca Ognibene
| 131
|-
| [http://maemo.org/profile/view/blubbi.html blubbi]
| Bjoern Olausson
| 194
|-
| [http://maemo.org/profile/view/olivluca.html olivluca]
| Luca Olivetti
| 258
|-
| [http://maemo.org/profile/view/too.html too]
| Tomi Ollila
| 112
|-
| [http://maemo.org/profile/view/fiferboy.html fiferboy]
| Andrew Olmsted
| 637
|-
| [http://maemo.org/profile/view/unique311.html unique311]
| stan one
| 117
|-
| [http://maemo.org/profile/view/ossipena.html ossipena]
| Timo P
| 815
|-
| [http://maemo.org/profile/view/edgar2.html edgar2]
| thomas p
| 229
|-
| [http://maemo.org/profile/view/rip.html rip]
| adam p
| 123
|-
| [http://maemo.org/profile/view/fpp.html fpp]
| Fred Pacquier
| 484
|-
| [http://maemo.org/profile/view/epage.html epage]
| Ed Page
| 999
|-
| [http://maemo.org/profile/view/tpaixao.html tpaixao]
| Tiago Paixao
| 130
|-
| [http://maemo.org/profile/view/cfh11.html cfh11]
| Chris Palfrey
| 244
|-
| [http://maemo.org/profile/view/lemmyslender.html lemmyslender]
| Len Palmer
| 246
|-
| [http://maemo.org/profile/view/jaeezzy.html jaeezzy]
| Jay Pangmi
| 213
|-
| [http://maemo.org/profile/view/davep1.html davep1]
| Dave Pat
| 222
|-
| [http://maemo.org/profile/view/discus-axel.html discus-axel]
| Axel Pauli
| 152
|-
| [http://maemo.org/profile/view/jpavelek.html jpavelek]
| Jakub Pavelek
| 240
|-
| [http://maemo.org/profile/view/megabyte405.html megabyte405]
| Ryan Pavlik
| 134
|-
| [http://maemo.org/profile/view/lemody.html lemody]
| Tapani Pälli
| 129
|-
| [http://maemo.org/profile/view/alan_peery.html alan_peery]
| Alan Peery
| 138
|-
| [http://maemo.org/profile/view/nononoyes.html nononoyes]
| Alessandro Peralma
| 240
|-
| [http://maemo.org/profile/view/cepiperez.html cepiperez]
| Matias Perez
| 276
|-
| [http://maemo.org/profile/view/corsac.html corsac]
| Yves-Alexis Perez
| 127
|-
| [http://maemo.org/profile/view/daperl.html daperl]
| Da Perl
| 402
|-
| [http://maemo.org/profile/view/thp.html thp]
| Thomas Perl
| 2068
|-
| [http://maemo.org/profile/view/floffe.html floffe]
| Olof Persson
| 118
|-
| [http://maemo.org/profile/view/qwerty12.html qwerty12]
| Faheem Pervez
| 2141
|-
| [http://maemo.org/profile/view/xomm.html xomm]
| Andy Pham
| 245
|-
| [http://maemo.org/profile/view/chrisp7.html chrisp7]
| Chris Phillips
| 140
|-
| [http://maemo.org/profile/view/lardman.html lardman]
| Simon Pickering
| 586
|-
| [http://maemo.org/profile/view/arcean.html arcean]
| Tomasz Pieniazek
| 166
|-
| [http://maemo.org/profile/view/solarion.html solarion]
| Joseph Pingenot
| 128
|-
| [http://maemo.org/profile/view/spirit-iddqd.html spirit-iddqd]
| Kirill Plyashkevich
| 443
|-
| [http://maemo.org/profile/view/m750.html m750]
| Marco Poletto
| 167
|-
| [http://maemo.org/profile/view/moonshine.html moonshine]
| James Pooton
| 103
|-
| [http://maemo.org/profile/view/williepre.html williepre]
| Willie Pretorius
| 264
|-
| [http://maemo.org/profile/view/pronvit.html pronvit]
| Vitaliy Pronkin
| 102
|-
| [http://maemo.org/profile/view/jessi3k3.html jessi3k3]
| Jesus Pulido
| 148
|-
| [http://maemo.org/profile/view/cpulvermacher.html cpulvermacher]
| Christian Pulvermacher
| 257
|-
| [http://maemo.org/profile/view/vpsych.html vpsych]
| Victor Quach
| 526
|-
| [http://maemo.org/profile/view/jkq.html jkq]
| Justin Quek
| 197
|-
| [http://maemo.org/profile/view/bdogg64.html bdogg64]
| B R
| 128
|-
| [http://maemo.org/profile/view/sbir.html sbir]
| Alexander R.
| 180
|-
| [http://maemo.org/profile/view/danramos.html danramos]
| Dan Ramos
| 451
|-
| [http://maemo.org/profile/view/nicolamfb.html nicolamfb]
| Nicola Ranaldo
| 108
|-
| [http://maemo.org/profile/view/aapo.html aapo]
| Aapo Rantalainen
| 223
|-
| [http://maemo.org/profile/view/pronkko.html pronkko]
| Pekka Rönkkö
| 192
|-
| [http://maemo.org/profile/view/juhar.html juhar]
| Juha Rönkkö
| 114
|-
| [http://maemo.org/profile/view/rebhana.html rebhana]
| Anton Rebhan
| 170
|-
| [http://maemo.org/profile/view/vre.html vre]
| Ville Reijonen
| 180
|-
| [http://maemo.org/profile/view/joerg_rw.html joerg_rw]
| Joerg Reisenweber
| 514
|-
| [http://maemo.org/profile/view/vitaly_repin.html vitaly_repin]
| Vitaly Repin
| 101
|-
| [http://maemo.org/profile/view/terminal3.html terminal3]
| Nathan Reynolds
| 102
|-
| [http://maemo.org/profile/view/joshuamaverick.html joshuamaverick]
| Joshua Richards
| 210
|-
| [http://maemo.org/profile/view/noobmonkey.html noobmonkey]
| Greg Roberts
| 452
|-
| [http://maemo.org/profile/view/jrocha.html jrocha]
| Joaquim Rocha
| 358
|-
| [http://maemo.org/profile/view/calvaris.html calvaris]
| Xabier Rodriguez Calvar
| 110
|-
| [http://maemo.org/profile/view/chri_ke.html chri_ke]
| Kenneth Rohde Christiansen
| 194
|-
| [http://maemo.org/profile/view/mrojas.html mrojas]
| Mario Rojas
| 280
|-
| [http://maemo.org/profile/view/madman2k.html madman2k]
| Pavel Rojtberg
| 215
|-
| [http://maemo.org/profile/view/newca12.html newca12]
| Olivier ROLAND
| 143
|-
| [http://maemo.org/profile/view/trollo.html trollo]
| Troy Rollo
| 104
|-
| [http://maemo.org/profile/view/romaxa.html romaxa]
| Oleg Romashin
| 102
|-
| [http://maemo.org/profile/view/klausr.html klausr]
| Klaus Rotter
| 169
|-
| [http://maemo.org/profile/view/miker.html miker]
| Mike Rowehl
| 216
|-
| [http://maemo.org/profile/view/johnkzin.html johnkzin]
| John Rudd
| 291
|-
| [http://maemo.org/profile/view/caco3.html caco3]
| George Ruinelli
| 115
|-
| [http://maemo.org/profile/view/alephito.html alephito]
| Diego Ruiz
| 107
|-
| [http://maemo.org/profile/view/leif.html leif]
| Leif Ryge
| 430
|-
| [http://maemo.org/profile/view/ian_r.html ian_r]
| Ian Ryge
| 523
|-
| [http://maemo.org/profile/view/emesem.html emesem]
| M S
| 177
|-
| [http://maemo.org/profile/view/shinghei.html shinghei]
| Cheung S. H.
| 122
|-
| [http://maemo.org/profile/view/javispedro.html javispedro]
| Javier S. Pedro
| 784
|-
| [http://maemo.org/profile/view/emjayes.html emjayes]
| Mika Saarela
| 122
|-
| [http://maemo.org/profile/view/kristiina.html kristiina]
| Kristiina Saaristo
| 475
|-
| [http://maemo.org/profile/view/csaavedra.html csaavedra]
| Claudio Saavedra
| 150
|-
| [http://maemo.org/profile/view/leandro.html leandro]
| Leandro Sales
| 118
|-
| [http://maemo.org/profile/view/karoliina.html karoliina]
| Karoliina Salminen
| 245
|-
| [http://maemo.org/profile/view/jyro.html jyro]
| Jayesh Salvi
| 118
|-
| [http://maemo.org/profile/view/timsamoff.html timsamoff]
| Tim Samoff
| 1474
|-
| [http://maemo.org/profile/view/sxc.html sxc]
| Christian Sarrasin
| 102
|-
| [http://maemo.org/profile/view/nokian900freak.html nokian900freak]
| Muhammad Satar
| 486
|-
| [http://maemo.org/profile/view/saturn.html saturn]
| Christos Saturn
| 527
|-
| [http://maemo.org/profile/view/arnims.html arnims]
| Arnim Sauerbier
| 181
|-
| [http://maemo.org/profile/view/pupnik.html pupnik]
| Arnim Sauerbier
| 269
|-
| [http://maemo.org/profile/view/sampp.html sampp]
| Sampo Savola
| 383
|-
| [http://maemo.org/profile/view/jsa.html jsa]
| Jarkko Savolainen
| 209
|-
| [http://maemo.org/profile/view/matsavol.html matsavol]
| Matti Savolainen
| 246
|-
| [http://maemo.org/profile/view/schendstok.html schendstok]
| Bernard Schendstok
| 107
|-
| [http://maemo.org/profile/view/chemist.html chemist]
| Rüdiger Schiller
| 359
|-
| [http://maemo.org/profile/view/detlef.html detlef]
| Detlef Schmicker
| 142
|-
| [http://maemo.org/profile/view/dschmicker.html dschmicker]
| Detlef Schmicker
| 111
|-
| [http://maemo.org/profile/view/chelli.html chelli]
| Thomas Schmidt
| 251
|-
| [http://maemo.org/profile/view/hschmitt.html hschmitt]
| Harald Schmitt
| 504
|-
| [http://maemo.org/profile/view/peterschneider.html peterschneider]
| Peter Schneider
| 175
|-
| [http://maemo.org/profile/view/nix_nix.html nix_nix]
| Gabriel Schulhof
| 486
|-
| [http://maemo.org/profile/view/fgs.html fgs]
| Floriano Scioscia
| 355
|-
| [http://maemo.org/profile/view/cpscotti.html cpscotti]
| Clovis Peruchi Scotti
| 219
|-
| [http://maemo.org/profile/view/jaark.html jaark]
| Dave Sexton
| 122
|-
| [http://maemo.org/profile/view/vaibhavsharma.html vaibhavsharma]
| Vaibhav Sharma
| 714
|-
| [http://maemo.org/profile/view/serge.html serge]
| Siarhei Siamashka
| 265
|-
| [http://maemo.org/profile/view/joppu.html joppu]
| Johannes Siipola
| 472
|-
| [http://maemo.org/profile/view/tomppas.html tomppas]
| Tuomas Siipola
| 144
|-
| [http://maemo.org/profile/view/matija.html matija]
| Matija Simeunovic
| 182
|-
| [http://maemo.org/profile/view/robbiethe1st.html robbiethe1st]
| Rob Simpson
| 265
|-
| [http://maemo.org/profile/view/navsin.html navsin]
| navneet singh
| 131
|-
| [http://maemo.org/profile/view/mitrandir.html mitrandir]
| Ilya Skriblovsky
| 359
|-
| [http://maemo.org/profile/view/pincushionqueen.html pincushionqueen]
| Heather Sloan
| 131
|-
| [http://maemo.org/profile/view/slobodsky.html slobodsky]
| Nick Slobodsky
| 128
|-
| [http://maemo.org/profile/view/scudderfish.html scudderfish]
| David Smith
| 101
|-
| [http://maemo.org/profile/view/revdkathy.html revdkathy]
| Kathy Smith
| 661
|-
| [http://maemo.org/profile/view/mishas.html mishas]
| Mikhail Sobolev
| 233
|-
| [http://maemo.org/profile/view/soeiro.html soeiro]
| Luis Soeiro
| 101
|-
| [http://maemo.org/profile/view/msoini.html msoini]
| Mox Soini
| 162
|-
| [http://maemo.org/profile/view/n820ftw.html n820ftw]
| AG Sopwith
| 144
|-
| [http://maemo.org/profile/view/guaka.html guaka]
| Kasper Souren
| 168
|-
| [http://maemo.org/profile/view/morphbr.html morphbr]
| Artur Souza
| 396
|-
| [http://maemo.org/profile/view/rsperberg.html rsperberg]
| Roger Sperberg
| 236
|-
| [http://maemo.org/profile/view/smoku.html smoku]
| Tomasz Sterna
| 687
|-
| [http://maemo.org/profile/view/speedevil.html speedevil]
| Ian Stirling
| 501
|-
| [http://maemo.org/profile/view/hopbeat.html hopbeat]
| Arek Stopczynski
| 358
|-
| [http://maemo.org/profile/view/igor_stoppa.html igor_stoppa]
| Igor Stoppa
| 181
|-
| [http://maemo.org/profile/view/marieke.html marieke]
| Marieke Streefkerk
| 136
|-
| [http://maemo.org/profile/view/jasuarez.html jasuarez]
| Juan A. Suarez
| 198
|-
| [http://maemo.org/profile/view/locusf.html locusf]
| Aleksi Suomalainen
| 114
|-
| [http://maemo.org/profile/view/hartti.html hartti]
| Hartti Suomela
| 106
|-
| [http://maemo.org/profile/view/rsuplido.html rsuplido]
| Reggie Suplido
| 834
|-
| [http://maemo.org/profile/view/aranelsurion.html aranelsurion]
| Aranel Surion
| 208
|-
| [http://maemo.org/profile/view/ysss.html ysss]
| Leo Sutedja
| 548
|-
| [http://maemo.org/profile/view/tswindell.html tswindell]
| Tom Swindell
| 433
|-
| [http://maemo.org/profile/view/feri.html feri]
| Ferenc Szekely
| 419
|-
| [http://maemo.org/profile/view/mthmob.html mthmob]
| Mads Tagmose
| 164
|-
| [http://maemo.org/profile/view/etalvala.html etalvala]
| Eino-Ville Talvala
| 110
|-
| [http://maemo.org/profile/view/nakkebar.html nakkebar]
| Eero Tamminen
| 161
|-
| [http://maemo.org/profile/view/rabbitrun84.html rabbitrun84]
| Miaoqing Tan
| 133
|-
| [http://maemo.org/profile/view/firebird8.html firebird8]
| Wilson Tang
| 231
|-
| [http://maemo.org/profile/view/tanner.html tanner]
| Tom Tanner
| 971
|-
| [http://maemo.org/profile/view/jacktanner.html jacktanner]
| Jack Tanner
| 150
|-
| [http://maemo.org/profile/view/tuminoid.html tuminoid]
| Tuomo Tanskanen
| 352
|-
| [http://maemo.org/profile/view/jait.html jait]
| Jari Tenhunen
| 158
|-
| [http://maemo.org/profile/view/framstag.html framstag]
| Tim Teulings
| 1359
|-
| [http://maemo.org/profile/view/tthurman.html tthurman]
| Thomas Thurman
| 245
|-
| [http://maemo.org/profile/view/jatikka.html jatikka]
| Jarmo Tikka
| 431
|-
| [http://maemo.org/profile/view/itkach.html itkach]
| Igor Tkach
| 186
|-
| [http://maemo.org/profile/view/microphobic.html microphobic]
| Plamen Tonev
| 110
|-
| [http://maemo.org/profile/view/jtorra.html jtorra]
| Josep Torra
| 124
|-
| [http://maemo.org/profile/view/d-iivil.html d-iivil]
| Ricky Tournee
| 1777
|-
| [http://maemo.org/profile/view/nhanquy.html nhanquy]
| Nhan Tran
| 144
|-
| [http://maemo.org/profile/view/josh.html josh]
| Josh Triplett
| 182
|-
| [http://maemo.org/profile/view/matrim.html matrim]
| Thom Troy
| 217
|-
| [http://maemo.org/profile/view/jtukkine.html jtukkine]
| Juha Tukkinen
| 163
|-
| [http://maemo.org/profile/view/baksiidaa.html baksiidaa]
| Matt Turner
| 126
|-
| [http://maemo.org/profile/view/ttt.html ttt]
| Tuukka Turunen
| 108
|-
| [http://maemo.org/profile/view/plastun.html plastun]
| Max Usachev
| 167
|-
| [http://maemo.org/profile/view/vivainio.html vivainio]
| Ville Vainio
| 257
|-
| [http://maemo.org/profile/view/vdvsx.html vdvsx]
| Valério Valério
| 1399
|-
| [http://maemo.org/profile/view/viqsi.html viqsi]
| Jo Valentine-Cooper
| 104
|-
| [http://maemo.org/profile/view/kvalo.html kvalo]
| Kalle Valo
| 119
|-
| [http://maemo.org/profile/view/pvanhoof.html pvanhoof]
| Philip Van Hoof
| 669
|-
| [http://maemo.org/profile/view/mikkov.html mikkov]
| Mikko Vartiainen
| 2197
|-
| [http://maemo.org/profile/view/vasvlad.html vasvlad]
| Vlad Vasiliev
| 1058
|-
| [http://maemo.org/profile/view/harri.html harri]
| Harri Vattulainen
| 103
|-
| [http://maemo.org/profile/view/v6sa.html v6sa]
| Lauri Võsandi
| 165
|-
| [http://maemo.org/profile/view/geneven.html geneven]
| Gene Venable
| 438
|-
| [http://maemo.org/profile/view/pelago.html pelago]
| John Veness
| 438
|-
| [http://maemo.org/profile/view/mve.html mve]
| Marko Vertainen
| 300
|-
| [http://maemo.org/profile/view/tvijlbrief.html tvijlbrief]
| Tom Vijlbrief
| 102
|-
| [http://maemo.org/profile/view/svillar.html svillar]
| Sergio Villar Senin
| 151
|-
| [http://maemo.org/profile/view/pav.html pav]
| Pauli Virtanen
| 180
|-
| [http://maemo.org/profile/view/digitalvoid.html digitalvoid]
| Frank Visser
| 146
|-
| [http://maemo.org/profile/view/eipi.html eipi]
| Sanjeev Visvanatha
| 629
|-
| [http://maemo.org/profile/view/vkvraju.html vkvraju]
| Kasi Viswanath
| 206
|-
| [http://maemo.org/profile/view/vivijim.html vivijim]
| Rodrigo Vivi
| 107
|-
| [http://maemo.org/profile/view/svlasov.html svlasov]
| Sergey Vlasov
| 127
|-
| [http://maemo.org/profile/view/tvogel.html tvogel]
| Tilman Vogel
| 237
|-
| [http://maemo.org/profile/view/suihkulokki.html suihkulokki]
| Riku Voipio
| 183
|-
| [http://maemo.org/profile/view/mvo.html mvo]
| Marius Vollmer
| 174
|-
| [http://maemo.org/profile/view/koos.html koos]
| Koos Vriezen
| 323
|-
| [http://maemo.org/profile/view/twaelti.html twaelti]
| Tom Waelti
| 814
|-
| [http://maemo.org/profile/view/hns.html hns]
| Hannes Wallnoefer
| 125
|-
| [http://maemo.org/profile/view/dwaradzyn.html dwaradzyn]
| Damian Waradzyn
| 172
|-
| [http://maemo.org/profile/view/brontide.html brontide]
| Eric Warnke
| 313
|-
| [http://maemo.org/profile/view/osemutech.html osemutech]
| James Watters
| 125
|-
| [http://maemo.org/profile/view/dkwatts.html dkwatts]
| dk watts
| 159
|-
| [http://maemo.org/profile/view/axique.html axique]
| Christoph Würstle
| 275
|-
| [http://maemo.org/profile/view/underscore.html underscore]
| Henry Weathersbee
| 104
|-
| [http://maemo.org/profile/view/ossi1967.html ossi1967]
| Oskar Welzl
| 814
|-
| [http://maemo.org/profile/view/fredrik_wendt.html fredrik_wendt]
| Fredrik Wendt
| 104
|-
| [http://maemo.org/profile/view/nwerneck.html nwerneck]
| Nicolau Werneck
| 128
|-
| [http://maemo.org/profile/view/lancewex.html lancewex]
| Lance Wex
| 105
|-
| [http://maemo.org/profile/view/mece.html mece]
| Marcus Wikström
| 497
|-
| [http://maemo.org/profile/view/mwiktowy.html mwiktowy]
| Michael Wiktowy
| 128
|-
| [http://maemo.org/profile/view/jolouis.html jolouis]
| Rob Williams
| 355
|-
| [http://maemo.org/profile/view/ywwg.html ywwg]
| Owen Williams
| 159
|-
| [http://maemo.org/profile/view/danielwilms.html danielwilms]
| daniel wilms
| 597
|-
| [http://maemo.org/profile/view/lucianomw.html lucianomw]
| Luciano Wolf
| 506
|-
| [http://maemo.org/profile/view/dotblank.html dotblank]
| Elias Woods
| 143
|-
| [http://maemo.org/profile/view/dwould.html dwould]
| Daniel Would
| 388
|-
| [http://maemo.org/profile/view/joenix.html joenix]
| Jeroen Wouters
| 116
|-
| [http://maemo.org/profile/view/convulted.html convulted]
| André Xuereb
| 118
|-
| [http://maemo.org/profile/view/yodude.html yodude]
| Steven Yeager
| 419
|-
| [http://maemo.org/profile/view/kenyoung.html kenyoung]
| Ken Young
| 224
|-
| [http://maemo.org/profile/view/tz1.html tz1]
| t z
| 264
|-
| [http://maemo.org/profile/view/ph5.html ph5]
| Philipp Zabel
| 367
|-
| [http://maemo.org/profile/view/zap.html zap]
| Andrew Zabolotny
| 307
|-
| [http://maemo.org/profile/view/wazd.html wazd]
| Andrew Zhilin
| 1037
|-
| [http://maemo.org/profile/view/d0b3rm4n.html d0b3rm4n]
| Reto Zingg
| 159
|-
| [http://maemo.org/profile/view/matan.html matan]
| Matan Ziv-Av
| 575
|-
| [http://maemo.org/profile/view/ivanzorkic.html ivanzorkic]
| Ivan Zorkic
| 169
|-
| [http://maemo.org/profile/view/zulla.html zulla]
| Hanno Zulla
| 107
|}

[[Category:Community Council]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Council election Q3 2008</title>
    <id>4029</id>
    <revision>
      <id>33550</id>
      <timestamp>2010-04-27T09:19:39Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Collect Sept 2008 election material</comment>
      <text xml:space="preserve">This is a collection of the election materials from the [[Community Council | Maemo Community Council]] election held in September 2008.

The election results are available [http://maemo.org/vote/results.php?election_id=1 here].

For the inaugural election, all holders of a maemo.org account were given a vote.

== Election timetable ==

All deadlines are set at 23:59 UTC.

* August 13: [http://lists.maemo.org/pipermail/maemo-community/2008-August/000644.html Election announced]
* August 14: Nominations open
* September 2: Nominations close
* September 3: [[Task:Community Council/Candidate declarations for September 2008 | List of candidates announced]]
* September 3: [http://maemo.org/vote/vote.php?election_id=1 Voting opens]
* September 10: Voting closes
* September 11: [http://lists.maemo.org/pipermail/maemo-community/2008-September/000869.html Results announced]

== Eligibility ==

The election processes are described in detail at [[Community Council/Election process]]. For the September 2008 election, the karma requirement for voting eligibility was dropped on popular demand.

Candidates needed to have a [[karma]] of 100 or higher.

== Election material ==

Here you will find lists of potential candidates, statements from candidates, and other material related to the March 2010 elections.

* [[Task:Community Council/Candidate declarations for September 2008 | Candidate declarations]]

== Results ==

The Maemo community council [http://maemo.org/vote/results.php?election_id=1 elected in September 2008] was as follows: 

* Eduardo Lima (etrunko)
* Andrew Flegg (Jaffa)
* Ryan Abel (GeneralAntilles)
* Simon Pickering (lardman)
* Tim Samoff (timsamoff)

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Council election Q3 2009</title>
    <id>4032</id>
    <revision>
      <id>33579</id>
      <timestamp>2010-04-27T17:33:12Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>New page: This page is to collect material related to the [http://maemo.org/vote/results.php?election_id=7 Q3 2009 Maemo Community Council election].  * [http://www.forums.internettablettalk.com/sho...</comment>
      <text xml:space="preserve">This page is to collect material related to the [http://maemo.org/vote/results.php?election_id=7 Q3 2009 Maemo Community Council election].

* [http://www.forums.internettablettalk.com/showthread.php?t=30754 Election announcement]
* [[Community_Council/Eligible_candidates_Q3_2009 | Eligible to be candidates]]
* [[Community Council/Candidate declarations for September 2009 | Candidate declarations]]
* [http://maemo.org/vote/results.php?election_id=7 Results]

The elected council was:
* Randall Arnold (Texrat)
* Matthew Lewis(penguinbait)
* Alan Bruce (qole)
* Valerio Valerio (VDVsx)
* Graham Cobb (gcobb)

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Council election Q3 2010</title>
    <id>4421</id>
    <revision>
      <id>38535</id>
      <timestamp>2010-09-13T14:17:44Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Election timetable */</comment>
      <text xml:space="preserve">The [[Community Council | Maemo Community Council]] will have its next election in September 2010, electing a new council for a 6 month term.

The election page will eventually be available [http://maemo.org/vote here].

== Election timetable ==

Unless otherwise noted, all dates are 23:59 UTC.

 
* August 22: Election announced
* August 26: [[/Eligible candidates | List of potential candidates]] published
* August 26 00:00 UTC: Nominations open
* September 8: Nominations close
* September 8: Deadline for karma for electorate
* September 8: [[/Candidate declarations | List of candidates announced]]
* September 8 - September 15: Hustings - ask your candidates questions
* September 16 00:00 UTC: [http://maemo.org/vote/vote.php?election_id=10 Voting opens]
* September 22: Voting closes
* September 23: Results announced

== Eligibility ==

The election processes are described in detail at [[Community Council/Election process]].

Candidates need to have a [[karma]] of 100 or higher; voters need to have a karma of 10 or more. Karma is earned through a variety of mechanisms, but to earn points for contributions on [http://talk.maemo.org/ talk.maemo.org], you need to [[link talk.maemo.org account with maemo.org profile]].

== Election material ==

Here you will find lists of potential candidates, statements from candidates, and other material related to the March 2010 elections.

* [[/Eligible candidates | Maemo members eligible to run for the council]]

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Council election Q3 2010/Candidate declarations</title>
    <id>4427</id>
    <revision>
      <id>43278</id>
      <timestamp>2011-04-29T14:24:55Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>add link</comment>
      <text xml:space="preserve">== Candidates for Q3 2010 Maemo Community Council elections ==

The following candidates have been nominated for the Maemo [[Community Council]]. 

# [http://maemo.org/profile/view/andy80/ Andrea Grandi / andy80]
# [http://maemo.org/profile/view/timsamoff/ Tim Samoff / timsamoff]
# [http://maemo.org/profile/view/chemist/ Rüdiger Schiller / chemist]
# [http://maemo.org/profile/view/zehjotkah/ Cosimo Kroll / zehjotkah]
# [http://maemo.org/profile/view/jaffa/ Andrew Flegg / jaffa] (incumbent)
# [http://maemo.org/profile/view/sjgadsby/ Stephen Gadsby / sjgadsby]
# [http://maemo.org/profile/view/fcrochik/ Felipe Crochik / fcrochik]
# [http://maemo.org/profile/view/w00t/ Robin Burchell / w00t]
# [http://maemo.org/profile/view/revdkathy/ Kathy Smith / RevdKathy]
# [http://maemo.org/profile/view/achipa/ Attila Csipa / attila77] (incumbent)

== Candidate declarations ==


=== Andrea Grandi ===

My name is Andrea Grandi, from Italy. Most of you probably already know me, but I'll introduce myself for people who joined later.

I'm a computer science student at Università degli Studi di Firenze and I've worked in the past as software developer for some companies. I also lead the Linux user group of my city (PtLUG), and for this reason my programming interests are directed to opensource development.

Working for PtLUG I've also gained a lot of experience about how to relate to a community and how to organize events.

==== Past and present in Maemo Community ====

I joined the Maemo Community since the first Maemo device was out (Nokia 770) and I've been always so excited for being able to contribute to this project.

In the past I've attended at both Maemo Summit doing a short talk. During last summer I collaborated with PyMaemo team during a stage at Igalia and at the moment I'm developing a couple of applications using Python and Qt.

==== Areas where I could help in the council ====

In the Maemo Council I could help mainly for two things. First of all I could help for the organization of the events. Finding a strategic place to organize an event and selecting interesting contents to attract more people is not an easy task. I think that there are still some areas where we can work better to give to the Community a better Summit.

Being a developer too I think I could help improving tools that Maemo developers use. For example a lot of work could be done to improve the Maemo Garage (did you notice that main Maemo project have their code in Gitorius, mailing list on Maemo Garage, website on another hosting service etc...... ?!).

==== What I would like to do in the Council ====

* Maemo(MeeGo) Summit organization: as I already said, there are some areas that we could improve and I'm going to work in this direction.
* Promoting developers contests: a nice way to attract developers is challenging them. We could organize a contest and I'm sure that a lot of interesting applications could be created by community.
* Improving the &quot;getting started&quot; part of all areas: I've noticed that for a new developers or users has never been easy to find where to start from. I think that a lot could be done to improve this.

Of course I've also other ideas for the Community, but first of all let's see how this Maemo+Moblin fusion will evolve. We are no more just &quot;Maemo&quot; now, we are a larger community so I think it's better to start as soon as possible working together to create the best community ever  :) 

=== Tim Samoff ===

It's funny to think that I've been laying low in such a way that many people within the Maemo Community might not know me. For my absence, I apologize -- although, my absence has not been without just cause. In any case, I feel like my life is coming back into a place where I might be able to lend a hand -- and a voice -- in much more of a deliberate capacity.

That being said, I would like to nominate myself (again) for this esteemed position within our amazing community of software rebels... Even so, this is not to say that I wouldn't like some of the newer blood to demolish me in the elections. But, for that to happen, we need the newer blood to nominate themselves -- or nominate others -- and make this an important election... Not just one that was left by the wayside.

These are important times for our community. Not only are we on the verge of another community conference, but the community dynamic and infrastructure is about to take a dramatic shift. With the advent of Meego, we, as a community, must forge a path in which the community (members new and old) have a say in the future of our development framework and operating system. Enough said.

I am not going to make my nomination a history of what I have contributed to the community. There are plenty of forum threads, blog posts, etc. to prove my worth. But, this is the forum, I think, to stress the importance of having a Community Council and of remaining diligent in expressing out beliefs, our ideals, and our desires to Nokia and Intel.

We are the voice. That's what Maemo was built upon. Don't let laziness, shyness, or some sort of self-imposed form of self-motivation get in your way.

This is my self-nomination. But, I'm an old hand. Nominate yourself and become a pivotal force in Maemo and Meego.

=== Rüdiger Schiller ===

In the first place, I nominated myself to encourage more former or active council members to volunteer.

In the 2nd, I offer my heart and my soul to stand a ground for developers who cannot or do not want to do it (also for the whole community but I think the developers come a bit short regarding the masses of users in the commmunity). I like doing the background work (heavy lifting) as well as I like to communicate and fight for opinions, sometimes even if it is only for the better good and not my own opinion. 
I like to question behavior and reflect situations differently as other people.
I think I may do a good job in supporting the old council members and give some fresh air to the dungeons down below and light up the secret pathes to nokia's embassy. (I was asked to not declare war...)
May you support my self nomination? Let a vote decide!

=== Cosimo Kroll ===
You can also watch a video about me here:
http://www.youtube.com/watch?v=eYdRMBwjKfM

Many of you know me already from a maemo summit or another event like the Linux Tag or my own event, the mobile freidae.

For those who don't know me: my real name is Cosimo Jeremy Kroll. My nickname is coming from the initial letters of my names spoken in German (C J K = zeh jot kah, in English that would be see djay kay).
I'm 21 years young and therefore full of energy.

I have a long history regarding mobile devices and Linux in general. As far as I remember I installed my first Linux with 10 years on a 33mhz PC (&quot;boostable&quot; to 66mhz).
After coming to maemo with the Nokia N810 I knew that this operating system will be my/the future of mobile devices.

I'm kind of tech freak, for example I'm building at the moment the biggest, private multitouch table in Germany.

Currently I'm spending my free time on my own site http://meetmeego.org.
We provide news, videos and tutorials around maemo and MeeGo.
Speaking of videos, most of you probably know also my youtube channel http://youtube.com/zehjotkah where I post video reviews and tutorials around the N900 and future devices.

We are also organizing the mobile fridae berlin, which takes place one time per month at the c-base. (http://mobilefreidae.org). It is very successful and thanks to our contacts we have speakers from Nokia, Qt and Neofonie (which are making the WeTab) for example.

'''Organizing the mobile freidae and everything around meetmeego.org, taught me how to organize things.'''

My aim for the next six month is to keep the maemo community on talk.maemo.org alive, which won't be a simple task.
There is no denying that many will move on to new devices and spend most of their time on meego.com.
But there are so many (on t.m.o still not active) N900 users outside, who maybe will need help one day.
Therefore I plan to create different new positions and functions around t.m.o. One of the firsts things will be a treasurer and a community PayPal account.
Then it would be possible to donate money to that account which will be (for example) spend then to the &quot;developer of the month&quot;.
The community account will be also useful for future coding competitions like kojacker and I achieved some month ago. These should be organized every six month.

There are also other positions to be filled, like someone who takes care of the wiki.
These time-intensive positions should be rewarded by Nokia with for example new devices and T-Shirts for example. This is possible as seen on the flights and accommodation to the MeeGo conference for the six winners of the coding competition.

Also we need more moderators from different timezones.
Sometimes a thread wasn't moderated because the responsible moderator simply had to work in that moment.

Of course there is also time to be spend on the meego.com forums, as MeeGo will be the future of many devices in our hands.
This council, elected for the next six month is responsible regarding the future merge or the future continuation as two entities of t.m.o and meego.com
I think both communities should NOT merge because then there would be a similar &quot;disaster&quot; as it was with the N810 and N800 - the users would feel abandoned, and that should not be the case!

Thanks for your time.

=== Andrew Flegg ===

As with Tim, I'm an old hand and the current chair of the council. The last 6 months have been interesting and challenging for the community, coming as they did after the announcement of the merger of Moblin and Maemo teams at Intel and Nokia and to form MeeGo.

The thing I've learned is that Nokia's planning didn't seem to extend to the community and Intel (not having much of a Moblin community) didn't think much of it either. This has resulted in fear, uncertainty and doubt. The new MeeGo community is also making wholly new mistakes, for which we need to bring our extensive experience of maemo.org and the Maemo Community to bear; for example, the ability of community packages to depend on each other. It's also entirely unclear whether meego.com should be the home for MeeGo device discussions, let alone Harmattan or MeeGo-Harmattan HE on N900.

The MeeGo community is forming, however the Maemo community feels like it's stagnating. There are a few reasons for this, however the big one is that of fear &amp; uncertainty, as I mentioned above. We all want a continual updates to our device's OS, a steady stream of enhancements and a vibrant ecosystem. What's unclear is the best way of achieving that:

* Core MeeGo Handset port to N900
* MeeGo-Harmattan port to N900
* Maemo 5 Community SSU

Certainly in the short term, the last one is the easiest to achieve and can even provide benefits whilst waiting for (hopefully) PR1.3. That's what I support MohammadAG's efforts in this area; and hope we can get some real traction there. Hopefully the other two will contribute to each other and they will become realistic day-to-day alternatives to Maemo 5. But they're not there yet.

The budget for maemo.org is being reduced and the number of hours contracted for the paid staff is decreasing. Nokia are also less interested in Maemo and its community. Therefore, if elected, I plan to:

* Clarify the position of the paid team and what we can expect from them (a task which is currently underway[1])
* Hold a referendum in this term, no later than February 2011 on the topic of whether the Community Council needs to continue for a future term, and have discussions about the governance of maemo.org.

Hopefully, by January a new device will be out and we will be able to see the effect of consumer-quality MeeGo devices on the Maemo community; and it'll be clearer how the MeeGo community is operating.

Since making the decision to run again (I was in the founding council, chaired the following council and am chair again now) we've had a set of new candidates come forward; so I revisited this decision. I think, however, some form of continuity would be useful at this critical time.

If you have any questions for me, please don't hesitate to ask. I also encourage people to come up with questions for the other candidates.

=== Stephen Gadsby ===

While I'm pleased to see enough community members have now stepped forward that the election can proceed and the full, five member council can be filled, I'd be happier still to see a larger pool of candidates during such an important time for this community. To that end, I add my own name to the candidate list, and I encourage others to please step forward.

The time period covered by this next council term promises to be an interesting one. I support the decision not to forcibly merge the maemo.org community into MeeGo. However, even without that, MeeGo already casts a large shadow over our community, and the impending release of a MeeGo (or at least, MeeGo-ish) handset by Nokia promises to draw away an as yet unknown, but potentially large, quantity of people, talent, and resources.

Communication will be key. The current council, and councils past, have established good communication channels, and MWKN has proven to be a wonderful asset. In the turbulent times ahead though, I see a need for even greater coordination and sharing of information.

There's widespread, and growing, anxiety in the community regarding MeeGo. What does MeeGo mean, offer, and not offer to owners of current devices? And what of the community members who choose to stay with Maemo and maemo.org? What can be done to best position Fremantle and Diablo, at a minimum, for continued community support and enhancement, and how can the maemo.org resources the upon which our community has come to rely be continued into the future?

It will be essential that the next council assist the community in disseminating the information we have, and finding answers to the questions that remain. More than technical skills, the next council will need communication skills and a willingness to seek answers. And yes, that's a direct hint to bears and others who fear they're insufficiently code-savvy to stand for election to the council.

I'll be doing my best to help.

=== Felipe Crochik ===

I don’t expect anybody to vote for me with so many good and well known candidates but I have had such a good experience with this community that I would like to get more involved with it.

All the community/open source experience I have I owe to this community.  I am an independent software developer and started writing software long ago when the “new kids on the block” were talking about windows.

I own an n800 and couldn’t wait to get my hands on the n900 after I heard about it. I have to say that got disappointed but finding this community has made all the difference.

One common complaint I hear about maemo is the supposedly small number of applications. While I don’t agree this is necessary true, it is clear that maemo has failed to attract “commercial” applications. I don’t see why an “open platform” based on open source has necessary to scare off “commercial” applications. One common subject among consumers is how the n900 compares to android and the iphone – the applications available always end up being the most important maemo disadvantage. Also, how many times have you read about how bad/useless the “ovi” store is for maemo?

It is obvious that the hardware will not evolve but the software can. We may get a chance or two to update the OS with “plain vanilla meego” but eventually that will also stop. I believe that the ability to get new applications to be the most important aspect of keeping our devices/community alive. We must make sure that Qt and Qt Mobility packages will continue to evolve/exist on the n900, I would even say that we have to invest on getting the latest qt back ported to the Diablo as well – n800 owners are a big part of this community.

More important than my candidacy I would like to offer some questions for the candidates and future council:

* Is meego a “suitable” replacement for the maemo community? We have debian but there is also the ubuntu community. All this assuming that at some point it will make sense to replace fremantle with some meego flavor. 
* Can we find sponsors for the maemo so we can continue to exist? Can’t we talk Nokia into making maemo the house for the new nokia “meego” devices? I am quite sure Nokia will also have a “meego by nokia community” of some sort.
* Can we figure out some model where the device owners will contribute money so their devices don’t get obsolete? Anybody that had to pay for the device will probably not mind paying to get better/more software. Maybe bringing somehow the “ovi store for the n900” to the maemo community will be enough to justify maintaining it.
* Unrelated but important: Security and Privacy. Shouldn’t this be an important issue? How can we just ignore all the current vulnerabilities?

My name is Felipe Crochik, I was born in Brazil and live in the U.S.  I have created [http://talk.maemo.org/showthread.php?t=57162 MyContacts], [http://talk.maemo.org/showthread.php?t=52058 WakeOnLan], ported (and enhanced) [http://talk.maemo.org/showthread.php?t=51487 Macuco] and tried to help other developers with my experience.

If there is any room for a “fresh/green” candidate I believe my experience with “consumer software” development can be useful to the community as the “community experience” has been very useful to me.

I hope my ignorance will help bring some new arguments/ideas to the table. Please forgive me for being so “naive”.

=== Robin Burchell ===

First, in the interests for full disclosure, the primary reason I wasn't sure I wanted to stand was due to time. I don't have a huge amount of it thanks to work commitments currently keeping me fairly busy, and other commitments outside of work.

Once I start thinking about my outside commitments, though, I realise they're fairly well related to this anyway: occasional Qt patches/PR/stuff, keeping up with MeeGo/Maemo (a difficult task in itself nowdays), and the various bits and pieces of code I write or contribute to (see [http://github.com/rburchell GitHub] and [http://gitorious.org/~w00t gitorious] for an overview of some of it if you don't know of me)

My primary agenda would be to try to help facilitate Maemo in the context of ongoing and future development, to try to ensure that application developers can smoothly and easily target Maemo as well as MeeGo (and whatever else) through the means of Qt and other technologies, as well as helping educate developers old and new.

This isn't something new: I've been working on it (with varying amounts of success) both in terms of helping individual developers with learning Qt, and other problems, as well as the [http://wiki.meego.com/DeveloperEngagement MeeGo developer engagement project] - which has, admittedly, due to my time constraints, regrettably been less successful so far.

Finally, I'd like to end my navel gazing, and thank Andrew for helping me to reconsider my position on not standing for election, by pointing out with his nomination mail just how important an issue this term (and indeed the last) have been, and how it would be a mistake to _not_ make my stand right now.

''I am employed by Collabora Ltd. Amongst Collabora's clients is Nokia.''

=== Kathy Smith ===

After a great deal of consideration, and a LOT of persuasion on this list, twitter, IRC and even the phone, I'd like to rescind my rejection and accept Texrat's nomination, if that's permitted.
 
I'm still very unconvinced about my usefulness to the Council, but since others seem to think I can be of value, I'm prepared to try my best if that's what  people want.

Please understand, I have limited knowledge of modern business practices, though I did work for many years in organisations almost entirely run by volunteers, so  have some idea how volunteer communities work. But I don't have the first clue of the modern 'business speak'.

Equally, I have no experience of coding - I can just about knock up a page of html, and that's my limit!
 
So what do I bring?

* Enthusiasm a-plenty
* Willingness to have a go - at most things, including technical stuff with a bit of support
* Concern for the 'average bears' in community, which doesn't mean the outspoken angry people demanding stuff on principle, but people who're trying to get the best out of their device with limited tech skills.
* People and communication skills - including presentation skills if you ever need them, and English language skills.
* Commitment to bridging maemo and meego - and a determination that us bears of very little brain will still have our own corner in meego somewhere.

If any of that can be of use for the next 6 months, I'll stand.

=== Attila Csipa ===

It seems that it is becoming a tradition that most nominations turn up on the last day. I was almost getting worried that the dreaded alternative clauses of lack of interest might be invoked, but, just like last term, in the end it seems that there is a very good 'offer' to the community. My view of the importance of the next term have already [http://lists.maemo.org/pipermail/maemo-community/2010-September/004410.html been summarized here], but I would like to emphasize once more - barring the financials, it's up to the community where (and in what form) maemo.org will or will not go - and there is no better representative than the Community Council to have a legitimate representation. That's why I would like to see people with a can-do approach on the Council, trying to solve/deal with hot and not too pleasant topics (and I feel the next term will not be in short supply). Remember, anyone can rant, but it takes a special kind of talent to turn discontent into constructive action, and I'm glad the list of candidates is in no shortage of such folks. I must note that recently there were a lot of question of what a Council's role really is - something [http://talk.maemo.org/showthread.php?p=782684 I wrote about before]  so I would really like if things like this get a bit more visibility during the candidate question/grilling part so these things become more apparent to people who only recently became eligible voters - the future Council won't be able to bring a new Flash 10 to our N900s any more or less than the current one can.

Personally - apart from responding to any 'routine' formal candidate questionnaires - I plan on blogging (as promised) a retrospection on what issues the current Council encountered, how it dealt with it and what was achieved ([http://talk.maemo.org/showthread.php?p=784034 an example]). I must say I thought quite a bit whether I should accept the nomination or not, considering my professional interests, but in the end I think that the community itself is the best judge to say whether what I do/did benefits it and if it requires my services for a second term or not.

Thus, to formally round the number of candidates to 10, I accept Randall's nomination. Also, as per Council nomination rules I'm stating that I'm currently working at Forum Nokia in a developer support/consultancy role.

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Council election Q3 2010/Eligible candidates</title>
    <id>4422</id>
    <revision>
      <id>43276</id>
      <timestamp>2011-04-29T13:57:31Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikitable</comment>
      <text xml:space="preserve">The following Maemo community members are eligible to be nominated for the September 2010 Maemo [[Community Council]] elections.
 
{| class=&quot;wikitable&quot;
|-
! Username
! Real name
! Company
! Karma
|-
| [http://maemo.org/profile/view/sjgadsby.html sjgadsby]
| Stephen Gadsby
| Millersville University of Pennsylvania
| 3044
|-
| [http://maemo.org/profile/view/qgil.html qgil]
| Quim Gil
| Nokia
| 2458
|-
| [http://maemo.org/profile/view/mikkov.html mikkov]
| Mikko Vartiainen
| 
| 2152
|-
| [http://maemo.org/profile/view/qwerty12.html qwerty12]
| Faheem Pervez
| 
| 2141
|-
| [http://maemo.org/profile/view/jaffa.html jaffa]
| Andrew Flegg
| 
| 2015
|-
| [http://maemo.org/profile/view/yerga.html yerga]
| Daniel Martín Yerga
| 
| 1703
|-
| [http://maemo.org/profile/view/thp.html thp]
| Thomas Perl
| 
| 1649
|-
| [http://maemo.org/profile/view/texrat.html texrat]
| Randall Arnold
| 
| 1550
|-
| [http://maemo.org/profile/view/generalantilles.html generalantilles]
| Ryan Abel
| 
| 1481
|-
| [http://maemo.org/profile/view/d-iivil.html d-iivil]
| Ricky Tournee
| IVK Music Finland LTD
| 1475
|-
| [http://maemo.org/profile/view/fms.html fms]
| Marat Fayzullin
| 
| 1447
|-
| [http://maemo.org/profile/view/vdvsx.html vdvsx]
| Valério Valério
| 
| 1395
|-
| [http://maemo.org/profile/view/timsamoff.html timsamoff]
| Tim Samoff
| 
| 1389
|-
| [http://maemo.org/profile/view/framstag.html framstag]
| Tim Teulings
| IT Services Germany (Deutsche Post DHL)
| 1363
|-
| [http://maemo.org/profile/view/achipa.html achipa]
| Attila Csipa
| -
| 1269
|-
| [http://maemo.org/profile/view/krisse.html krisse]
| Krisse Juorunen
| 
| 1241
|-
| [http://maemo.org/profile/view/qole.html qole]
| alan bruce
| 
| 1160
|-
| [http://maemo.org/profile/view/andre.html andre]
| Andre Klapper
| Openismus
| 1130
|-
| [http://maemo.org/profile/view/khertan.html khertan]
| Benoît HERVIER
| 
| 1129
|-
| [http://maemo.org/profile/view/thoughtfix.html thoughtfix]
| Daniel Gentleman
| ThoughtFix LLC
| 1129
|-
| [http://maemo.org/profile/view/dneary.html dneary]
| Dave Neary
| Neary Consulting
| 1083
|-
| [http://maemo.org/profile/view/wazd.html wazd]
| Andrew Zhilin
| None
| 1032
|-
| [http://maemo.org/profile/view/pycage.html pycage]
| Martin Grimme
| Lintegra
| 1018
|-
| [http://maemo.org/profile/view/stskeeps.html stskeeps]
| Carsten Munk
| Imogen Software
| 1017
|-
| [http://maemo.org/profile/view/thenokiablog.html thenokiablog]
| Mark Guim
| thenokiablog.com
| 951
|-
| [http://maemo.org/profile/view/bergie.html bergie]
| Henri Bergius
| Nemein
| 924
|-
| [http://maemo.org/profile/view/vasvlad.html vasvlad]
| Vlad Vasiliev
| Gas company
| 916
|-
| [http://maemo.org/profile/view/tanner.html tanner]
| Tom Tanner
| 
| 911
|-
| [http://maemo.org/profile/view/gcobb.html gcobb]
| Graham Cobb
| 
| 854
|-
| [http://maemo.org/profile/view/epage.html epage]
| Ed Page
| 
| 851
|-
| [http://maemo.org/profile/view/konttori.html konttori]
| Urho Konttori
| Nokia
| 842
|-
| [http://maemo.org/profile/view/rsuplido.html rsuplido]
| Reggie Suplido
| talk.maemo.org / Maemo Talk
| 820
|-
| [http://maemo.org/profile/view/twaelti.html twaelti]
| Tom Waelti
| IT (Consulting / eGov / Healthcare)
| 810
|-
| [http://maemo.org/profile/view/apocalypso.html apocalypso]
| Teo Bartulovic
| 
| 804
|-
| [http://maemo.org/profile/view/torpedo48.html torpedo48]
| Emanuele Cassioli
| 
| 802
|-
| [http://maemo.org/profile/view/anidel.html anidel]
| Aniello Del Sorbo
| Orbis UK Ltd
| 769
|-
| [http://maemo.org/profile/view/xfade.html xfade]
| Niels Breet
| maemo.org
| 769
|-
| [http://maemo.org/profile/view/ossi1967.html ossi1967]
| Oskar Welzl
| 
| 755
|-
| [http://maemo.org/profile/view/ossipena.html ossipena]
| Timo P
| 
| 753
|-
| [http://maemo.org/profile/view/venomrush.html venomrush]
| Venomrush .
| Experian
| 720
|-
| [http://maemo.org/profile/view/javispedro.html javispedro]
| Javier S. Pedro
| 
| 711
|-
| [http://maemo.org/profile/view/zerojay.html zerojay]
| Jason Carter
| Longtail Studios/Ubisoft
| 711
|-
| [http://maemo.org/profile/view/lcuk.html lcuk]
| Gary Birkett
| Collabora
| 701
|-
| [http://maemo.org/profile/view/pipeline.html pipeline]
| pipe line
| 
| 698
|-
| [http://maemo.org/profile/view/baloo.html baloo]
| Jamie Bennett
| Canonical
| 690
|-
| [http://maemo.org/profile/view/archebyte.html archebyte]
| Mustali Dalal
| 
| 679
|-
| [http://maemo.org/profile/view/flandry.html flandry]
| David Falkayn
| MIT
| 672
|-
| [http://maemo.org/profile/view/bundyo.html bundyo]
| Kamen Bundev
| Telerik
| 668
|-
| [http://maemo.org/profile/view/smoku.html smoku]
| Tomasz Sterna
| Opera Software ASA
| 651
|-
| [http://maemo.org/profile/view/lbt.html lbt]
| David Greaves
| Freelance (Nomovok/Nokia)
| 649
|-
| [http://maemo.org/profile/view/harbaum.html harbaum]
| Till Harbaum
| Harman International
| 638
|-
| [http://maemo.org/profile/view/fiferboy.html fiferboy]
| Andrew Olmsted
| 
| 637
|-
| [http://maemo.org/profile/view/fanoush.html fanoush]
| Frantisek Dufka
| 
| 637
|-
| [http://maemo.org/profile/view/pvanhoof.html pvanhoof]
| Philip Van Hoof
| Codeminded BVBA
| 636
|-
| [http://maemo.org/profile/view/palmsolo.html palmsolo]
| Matthew Miller
| 
| 635
|-
| [http://maemo.org/profile/view/rcadden.html rcadden]
| Ricky Cadden
| MobileBurn.com
| 629
|-
| [http://maemo.org/profile/view/ed_.html ed_]
| Ed Bartosh
| Nokia
| 620
|-
| [http://maemo.org/profile/view/mohammad7410.html mohammad7410]
| Mohammad Abu-Garbeyyeh
| 
| 612
|-
| [http://maemo.org/profile/view/revdkathy.html revdkathy]
| Kathy Smith
| NHS
| 606
|-
| [http://maemo.org/profile/view/nicolai.html nicolai]
| Nicolai Hess
| 
| 605
|-
| [http://maemo.org/profile/view/frals.html frals]
| Nick Leppänen Larsson
| 
| 601
|-
| [http://maemo.org/profile/view/tekojo.html tekojo]
| Tero Kojo
| Nokia
| 596
|-
| [http://maemo.org/profile/view/fredoll.html fredoll]
| Fred Lefévère-Laoide
| 
| 586
|-
| [http://maemo.org/profile/view/ukki.html ukki]
| Janne Mäkinen
| 
| 584
|-
| [http://maemo.org/profile/view/danielwilms.html danielwilms]
| daniel wilms
| Nokia
| 582
|-
| [http://maemo.org/profile/view/tomaszd.html tomaszd]
| Tomasz Dominikowski
| Aviary.pl
| 582
|-
| [http://maemo.org/profile/view/agarcia.html agarcia]
| Alberto Garcia
| Igalia
| 579
|-
| [http://maemo.org/profile/view/mikecy.html mikecy]
| mike choy
| 
| 579
|-
| [http://maemo.org/profile/view/eipi.html eipi]
| Sanjeev Visvanatha
| 
| 576
|-
| [http://maemo.org/profile/view/jeremiah.html jeremiah]
| Jeremiah Foster
| Nokia / Maemo.org
| 575
|-
| [http://maemo.org/profile/view/w00t.html w00t]
| Robin Burchell
| Collabora
| 574
|-
| [http://maemo.org/profile/view/andrewfblack.html andrewfblack]
| Andrew Black
| 
| 567
|-
| [http://maemo.org/profile/view/kulve.html kulve]
| Tuomas Kulve
| Movial
| 562
|-
| [http://maemo.org/profile/view/murrayc.html murrayc]
| Murray Cumming
| Openismus GmbH
| 555
|-
| [http://maemo.org/profile/view/andy80.html andy80]
| Andrea Grandi
| 
| 552
|-
| [http://maemo.org/profile/view/vaibhavsharma.html vaibhavsharma]
| Vaibhav Sharma
| TheHandheldBlog.com
| 545
|-
| [http://maemo.org/profile/view/zeenix.html zeenix]
| Zeeshan Ali
| Nokia Oyj
| 545
|-
| [http://maemo.org/profile/view/fatalsaint.html fatalsaint]
| FatalSaint Alucard
| 
| 541
|-
| [http://maemo.org/profile/view/penguinbait.html penguinbait]
| Matthew Lewis
| 
| 539
|-
| [http://maemo.org/profile/view/hrw.html hrw]
| Marcin Juszkiewicz
| own company
| 532
|-
| [http://maemo.org/profile/view/aisu.html aisu]
| Tyler Longwell
| 
| 527
|-
| [http://maemo.org/profile/view/lardman.html lardman]
| Simon Pickering
| 
| 518
|-
| [http://maemo.org/profile/view/mgedmin.html mgedmin]
| Marius Gedminas
| Programmers of Vilnius
| 518
|-
| [http://maemo.org/profile/view/florian.html florian]
| Florian Boor
| kernel concepts
| 514
|-
| [http://maemo.org/profile/view/ian_r.html ian_r]
| Ian Ryge
| 
| 513
|-
| [http://maemo.org/profile/view/lucianomw.html lucianomw]
| Luciano Wolf
| INdT - Instituto Nokia de Tecnologia
| 506
|-
| [http://maemo.org/profile/view/conny.html conny]
| Cornelius Hald
| 
| 503
|-
| [http://maemo.org/profile/view/brentdc.html brentdc]
| Brent Chiodo
| 
| 502
|-
| [http://maemo.org/profile/view/matan.html matan]
| Matan Ziv-Av
| 
| 497
|-
| [http://maemo.org/profile/view/speedevil.html speedevil]
| Ian Stirling
| 
| 488
|-
| [http://maemo.org/profile/view/etrunko.html etrunko]
| Eduardo Lima
| openBossa/INdT
| 484
|-
| [http://maemo.org/profile/view/rmoravcik.html rmoravcik]
| Roman Moravcik
| 
| 482
|-
| [http://maemo.org/profile/view/benson.html benson]
| Benson Mitchell
| 
| 481
|-
| [http://maemo.org/profile/view/amigadave.html amigadave]
| David King
| Openismus GmbH
| 479
|-
| [http://maemo.org/profile/view/vpsych.html vpsych]
| Victor Quach
| 
| 472
|-
| [http://maemo.org/profile/view/v13.html v13]
| Stefanos Harhalakis
| 
| 472
|-
| [http://maemo.org/profile/view/jebba.html jebba]
| Jeff Moe
| Self unemployed
| 469
|-
| [http://maemo.org/profile/view/nokian900freak.html nokian900freak]
| Muhammad Satar
| 
| 466
|-
| [http://maemo.org/profile/view/nix_nix.html nix_nix]
| Gabriel Schulhof
| Nokia
| 458
|-
| [http://maemo.org/profile/view/milhouse.html milhouse]
| Neil MacLeod
| 
| 456
|-
| [http://maemo.org/profile/view/fpp.html fpp]
| Fred Pacquier
| 
| 453
|-
| [http://maemo.org/profile/view/ysss.html ysss]
| Leo Sutedja
| 
| 443
|-
| [http://maemo.org/profile/view/barbieri.html barbieri]
| Gustavo Barbieri
| ProFUSION embedded systems
| 441
|-
| [http://maemo.org/profile/view/jukey.html jukey]
| Uwe Kaminski
| STRATO AG
| 440
|-
| [http://maemo.org/profile/view/b0unc3.html b0unc3]
| Daniele Maio
| 
| 438
|-
| [http://maemo.org/profile/view/gerbick.html gerbick]
| William McBee
| 
| 430
|-
| [http://maemo.org/profile/view/jatikka.html jatikka]
| Jarmo Tikka
| Nokia Corporation
| 427
|-
| [http://maemo.org/profile/view/gnuite.html gnuite]
| John Costigan
| Google, Inc.
| 424
|-
| [http://maemo.org/profile/view/leif.html leif]
| Leif Ryge
| 
| 423
|-
| [http://maemo.org/profile/view/noobmonkey.html noobmonkey]
| Greg Roberts
| NHS
| 421
|-
| [http://maemo.org/profile/view/allnameswereout.html allnameswereout]
| Jeroen Huizinga
| 
| 419
|-
| [http://maemo.org/profile/view/mece.html mece]
| Marcus Wikström
| ÅA
| 415
|-
| [http://maemo.org/profile/view/feri.html feri]
| Ferenc Szekely
| Nemein
| 411
|-
| [http://maemo.org/profile/view/bun.html bun]
| anson li
| 
| 409
|-
| [http://maemo.org/profile/view/pelago.html pelago]
| John Veness
| 
| 403
|-
| [http://maemo.org/profile/view/atmasphere.html atmasphere]
| Jonathan Greene
| 
| 402
|-
| [http://maemo.org/profile/view/rob1n.html rob1n]
| Robin Hill
| 
| 399
|-
| [http://maemo.org/profile/view/yodude.html yodude]
| Steven Yeager
| Yoyodyne
| 394
|-
| [http://maemo.org/profile/view/bunanson.html bunanson]
| anson bun
| Wilson Surgical Associates
| 393
|-
| [http://maemo.org/profile/view/bforsberg.html bforsberg]
| Bruce Forsberg
| 
| 390
|-
| [http://maemo.org/profile/view/frankusb.html frankusb]
| Frank Banul
| 
| 389
|-
| [http://maemo.org/profile/view/handful.html handful]
| Marcelo Eduardo
| INDT
| 388
|-
| [http://maemo.org/profile/view/joppu.html joppu]
| Johannes Siipola
| 
| 387
|-
| [http://maemo.org/profile/view/disq.html disq]
| Kemal Hadimli
| 
| 382
|-
| [http://maemo.org/profile/view/tso.html tso]
| kenneth marken
| 
| 381
|-
| [http://maemo.org/profile/view/dwould.html dwould]
| Daniel Would
| 
| 377
|-
| [http://maemo.org/profile/view/sampp.html sampp]
| Sampo Savola
| 
| 376
|-
| [http://maemo.org/profile/view/sasler.html sasler]
| Sascha Makela
| 
| 375
|-
| [http://maemo.org/profile/view/geneven.html geneven]
| Gene Venable
| Unemployed at the time
| 369
|-
| [http://maemo.org/profile/view/jlbrd.html jlbrd]
| Jean-Luc Biord
| 
| 365
|-
| [http://maemo.org/profile/view/daperl.html daperl]
| Da Perl
| 
| 362
|-
| [http://maemo.org/profile/view/lorelei.html lorelei]
| Pascal Jermini
| 
| 362
|-
| [http://maemo.org/profile/view/krk969.html krk969]
| rama kurvakat
| 
| 358
|-
| [http://maemo.org/profile/view/hopbeat.html hopbeat]
| Arek Stopczynski
| Danmarks Tekniske Universitet
| 356
|-
| [http://maemo.org/profile/view/jolouis.html jolouis]
| Rob Williams
| 
| 354
|-
| [http://maemo.org/profile/view/timeless.html timeless]
| timeless -
| Nokia
| 352
|-
| [http://maemo.org/profile/view/tor.html tor]
| Tor Arntsen
| 
| 351
|-
| [http://maemo.org/profile/view/joerg_rw.html joerg_rw]
| Joerg Reisenweber
| 
| 350
|-
| [http://maemo.org/profile/view/spirit-iddqd.html spirit-iddqd]
| Kirill Plyashkevich
| 
| 349
|-
| [http://maemo.org/profile/view/morphbr.html morphbr]
| Artur Souza
| openBossa
| 348
|-
| [http://maemo.org/profile/view/nathanael.html nathanael]
| Nathanael Anderson
| 
| 347
|-
| [http://maemo.org/profile/view/tuminoid.html tuminoid]
| Tuomo Tanskanen
| Nomovok Ltd
| 346
|-
| [http://maemo.org/profile/view/antimirov.html antimirov]
| Eugene Antimirov
| AND Automotive Navigation Data
| 343
|-
| [http://maemo.org/profile/view/geraldko.html geraldko]
| Gerald Koblentz
| 
| 338
|-
| [http://maemo.org/profile/view/truejournals.html truejournals]
| Bobby Graese
| 
| 338
|-
| [http://maemo.org/profile/view/andrei1089.html andrei1089]
| Andrei Mirestean
| 
| 336
|-
| [http://maemo.org/profile/view/zehjotkah.html zehjotkah]
| Cosimo Kroll
| 
| 336
|-
| [http://maemo.org/profile/view/jrocha.html jrocha]
| Joaquim Rocha
| Igalia
| 335
|-
| [http://maemo.org/profile/view/fgs.html fgs]
| Floriano Scioscia
| 
| 334
|-
| [http://maemo.org/profile/view/danramos.html danramos]
| Dan Ramos
| 
| 334
|-
| [http://maemo.org/profile/view/debernardis.html debernardis]
| Ernesto de Bernardis
| 
| 333
|-
| [http://maemo.org/profile/view/kate.html kate]
| Kate Alhola
| Nokia
| 333
|-
| [http://maemo.org/profile/view/hqh.html hqh]
| Heikki Holstila
| 
| 328
|-
| [http://maemo.org/profile/view/rambo.html rambo]
| Eero af Heurlin
| Nemein Oy
| 326
|-
| [http://maemo.org/profile/view/collin.html collin]
| Collin Mulliner
| 
| 323
|-
| [http://maemo.org/profile/view/hhedberg.html hhedberg]
| Henrik Hedberg
| mauku.innologies.com
| 323
|-
| [http://maemo.org/profile/view/koos.html koos]
| Koos Vriezen
| froglogic Hamburg
| 322
|-
| [http://maemo.org/profile/view/chemist.html chemist]
| Rüdiger Schiller
| 
| 320
|-
| [http://maemo.org/profile/view/jaaksi.html jaaksi]
| Ari Jaaksi
| 
| 317
|-
| [http://maemo.org/profile/view/ndi.html ndi]
| Ndi Ndi
| 
| 316
|-
| [http://maemo.org/profile/view/brontide.html brontide]
| Eric Warnke
| 
| 313
|-
| [http://maemo.org/profile/view/christexaport.html christexaport]
| Marcus McFann
| StreetzMart Media Group
| 307
|-
| [http://maemo.org/profile/view/nido.html nido]
| Alex Easter
| 
| 306
|-
| [http://maemo.org/profile/view/marcell.html marcell]
| Marcell Lengyel
| Nokia
| 304
|-
| [http://maemo.org/profile/view/tahitibob35.html tahitibob35]
| David Hautbois
| Prologue
| 302
|-
| [http://maemo.org/profile/view/wwp.html wwp]
| Tristan Chabredier
| 
| 302
|-
| [http://maemo.org/profile/view/zaheerm.html zaheerm]
| Zaheer Merali
| Flumotion Services S.A.
| 301
|-
| [http://maemo.org/profile/view/redex.html redex]
| Helmuth M.
| 
| 299
|-
| [http://maemo.org/profile/view/sachin007.html sachin007]
| vamsi kanumuri
| 
| 299
|-
| [http://maemo.org/profile/view/tak.html tak]
| Levi Bard
| 
| 299
|-
| [http://maemo.org/profile/view/tswindell.html tswindell]
| Tom Swindell
| 
| 294
|-
| [http://maemo.org/profile/view/mitrandir.html mitrandir]
| Ilya Skriblovsky
| 
| 291
|-
| [http://maemo.org/profile/view/johnkzin.html johnkzin]
| John Rudd
| 
| 289
|-
| [http://maemo.org/profile/view/felipec.html felipec]
| Felipe Contreras
| Nokia
| 289
|-
| [http://maemo.org/profile/view/mve.html mve]
| Marko Vertainen
| 
| 287
|-
| [http://maemo.org/profile/view/ph5.html ph5]
| Philipp Zabel
| 
| 285
|-
| [http://maemo.org/profile/view/kojacker.html kojacker]
| Ryan Faulkner
| 
| 285
|-
| [http://maemo.org/profile/view/johnx.html johnx]
| John Bloom
| The Driver Training Group
| 285
|-
| [http://maemo.org/profile/view/nvyus.html nvyus]
| craig holland
| 
| 282
|-
| [http://maemo.org/profile/view/axique.html axique]
| Christoph Würstle
| 
| 275
|-
| [http://maemo.org/profile/view/onion.html onion]
| Kaj-Michael Lang
| City of Turku
| 275
|-
| [http://maemo.org/profile/view/tusinaniger.html tusinaniger]
| Pasi Norolampi
| 
| 274
|-
| [http://maemo.org/profile/view/mike_morrison.html mike_morrison]
| mike morrison
| 
| 272
|-
| [http://maemo.org/profile/view/subcore.html subcore]
| Claus Feichtinger
| 
| 272
|-
| [http://maemo.org/profile/view/saturn.html saturn]
| Christos Saturn
| 
| 269
|-
| [http://maemo.org/profile/view/loki.html loki]
| Massimo Mund
| 
| 268
|-
| [http://maemo.org/profile/view/donaggio.html donaggio]
| Luca Donaggio
| 
| 266
|-
| [http://maemo.org/profile/view/kibergus.html kibergus]
| Guseynov Alexey
| 
| 266
|-
| [http://maemo.org/profile/view/pupnik.html pupnik]
| Arnim Sauerbier
| 
| 265
|-
| [http://maemo.org/profile/view/crashanddie.html crashanddie]
| Sebastiaan Lauwers
| ActivIdentity
| 265
|-
| [http://maemo.org/profile/view/mikhas.html mikhas]
| Michael Hasselmann
| Openismus GmbH
| 265
|-
| [http://maemo.org/profile/view/tz1.html tz1]
| t z
| 
| 264
|-
| [http://maemo.org/profile/view/serge.html serge]
| Siarhei Siamashka
| 
| 264
|-
| [http://maemo.org/profile/view/oriolj.html oriolj]
| Oriol Jiménez
| CilcTel SL
| 263
|-
| [http://maemo.org/profile/view/rauha.html rauha]
| Matti Nummila
| 
| 262
|-
| [http://maemo.org/profile/view/jku.html jku]
| Jussi Kukkonen
| Intel
| 262
|-
| [http://maemo.org/profile/view/zchydem.html zchydem]
| Marko Mattila
| Cybercom Finland
| 259
|-
| [http://maemo.org/profile/view/fnordianslip.html fnordianslip]
| Darren Long
| 
| 259
|-
| [http://maemo.org/profile/view/philipl.html philipl]
| Philip Langdale
| 
| 258
|-
| [http://maemo.org/profile/view/colinleroy.html colinleroy]
| Colin Leroy
| 
| 257
|-
| [http://maemo.org/profile/view/mrojas.html mrojas]
| Mario Rojas
| 
| 256
|-
| [http://maemo.org/profile/view/hschmitt.html hschmitt]
| Harald Schmitt
| 
| 254
|-
| [http://maemo.org/profile/view/javicq.html javicq]
| Javier Campo
| 
| 254
|-
| [http://maemo.org/profile/view/eiffel.html eiffel]
| Roger Browne
| 
| 252
|-
| [http://maemo.org/profile/view/beermad.html beermad]
| Tony Green
| 
| 251
|-
| [http://maemo.org/profile/view/kimitake.html kimitake]
| Kimitake .
| 
| 251
|-
| [http://maemo.org/profile/view/olivluca.html olivluca]
| Luca Olivetti
| 
| 250
|-
| [http://maemo.org/profile/view/evad.html evad]
| Dawid Lorenz
| Tangent Labs
| 249
|-
| [http://maemo.org/profile/view/barisione.html barisione]
| Marco Barisione
| Collabora Ltd.
| 248
|-
| [http://maemo.org/profile/view/silvermountain.html silvermountain]
| Silver Mountain
| 
| 247
|-
| [http://maemo.org/profile/view/tigert.html tigert]
| Tuomas Kuosmanen
| Nokia
| 247
|-
| [http://maemo.org/profile/view/kaltsi.html kaltsi]
| Juha Kallioinen
| Nokia
| 245
|-
| [http://maemo.org/profile/view/zap.html zap]
| Andrew Zabolotny
| 
| 243
|-
| [http://maemo.org/profile/view/matsavol.html matsavol]
| Matti Savolainen
| Nokia Siemens Networks
| 240
|-
| [http://maemo.org/profile/view/jpavelek.html jpavelek]
| Jakub Pavelek
| Nokia
| 240
|-
| [http://maemo.org/profile/view/codemonkey.html codemonkey]
| Andy Dunmore
| 
| 240
|-
| [http://maemo.org/profile/view/xomm.html xomm]
| Andy Pham
| Academy of Information Technology
| 238
|-
| [http://maemo.org/profile/view/tvogel.html tvogel]
| Tilman Vogel
| 
| 236
|-
| [http://maemo.org/profile/view/rsperberg.html rsperberg]
| Roger Sperberg
| S Press
| 236
|-
| [http://maemo.org/profile/view/sd69.html sd69]
| RM Bauer
| 
| 235
|-
| [http://maemo.org/profile/view/cepiperez.html cepiperez]
| Matias Perez
| 
| 234
|-
| [http://maemo.org/profile/view/aboaboit.html aboaboit]
| Andrea Borgia
| 
| 234
|-
| [http://maemo.org/profile/view/mishas.html mishas]
| Mikhail Sobolev
| 
| 233
|-
| [http://maemo.org/profile/view/jayonthabeat.html jayonthabeat]
| Jay Haltom
| 
| 231
|-
| [http://maemo.org/profile/view/fcrochik.html fcrochik]
| Felipe Crochik
| 
| 230
|-
| [http://maemo.org/profile/view/karoliina.html karoliina]
| Karoliina Salminen
| Nokia Corporation
| 229
|-
| [http://maemo.org/profile/view/wonko.html wonko]
| Ruediger Gad
| 
| 229
|-
| [http://maemo.org/profile/view/meizirkki.html meizirkki]
| Roope Kuisma
| 
| 228
|-
| [http://maemo.org/profile/view/ahynes1.html ahynes1]
| Aldon Hynes
| Orient Lodge
| 228
|-
| [http://maemo.org/profile/view/scriptkiller.html scriptkiller]
| Michael Arndt
| 
| 228
|-
| [http://maemo.org/profile/view/vern.html vern]
| Ian Lawrence
| INdT
| 227
|-
| [http://maemo.org/profile/view/edgar2.html edgar2]
| thomas p
| Oculex
| 226
|-
| [http://maemo.org/profile/view/jer006.html jer006]
| jeremy gillespie
| 
| 226
|-
| [http://maemo.org/profile/view/renatofilho.html renatofilho]
| renato filho
| INdT - Instituto nokia de tecnologia
| 226
|-
| [http://maemo.org/profile/view/cpscotti.html cpscotti]
| Clovis Peruchi Scotti
| 
| 225
|-
| [http://maemo.org/profile/view/gabrielnava.html gabrielnava]
| Gabriel Nava Vazquez
| Nokia
| 225
|-
| [http://maemo.org/profile/view/tonikitoo.html tonikitoo]
| Antonio Gomes
| 
| 225
|-
| [http://maemo.org/profile/view/timoph.html timoph]
| Timo Härkönen
| 
| 224
|-
| [http://maemo.org/profile/view/firebird8.html firebird8]
| Wilson Tang
| 
| 223
|-
| [http://maemo.org/profile/view/williepre.html williepre]
| Willie Pretorius
| 
| 223
|-
| [http://maemo.org/profile/view/claesbas.html claesbas]
| Claes Norin
| 
| 223
|-
| [http://maemo.org/profile/view/mardy.html mardy]
| Alberto Mardegan
| Nokia
| 223
|-
| [http://maemo.org/profile/view/davep1.html davep1]
| Dave Pat
| 
| 222
|-
| [http://maemo.org/profile/view/tbergstr.html tbergstr]
| Terje Bergström
| 
| 222
|-
| [http://maemo.org/profile/view/detective.html detective]
| Max Maher
| 
| 219
|-
| [http://maemo.org/profile/view/speculatrix.html speculatrix]
| Paul M
| 
| 219
|-
| [http://maemo.org/profile/view/calvin_42.html calvin_42]
| Aymeric Brisse
| 
| 219
|-
| [http://maemo.org/profile/view/lma.html lma]
| Lucas Maneos
| 
| 218
|-
| [http://maemo.org/profile/view/embedded.html embedded]
| Luigi Cotignano
| 
| 217
|-
| [http://maemo.org/profile/view/buurmas.html buurmas]
| Joel Buursma
| 
| 216
|-
| [http://maemo.org/profile/view/pamadio.html pamadio]
| Pierre Amadio
| 
| 216
|-
| [http://maemo.org/profile/view/madman2k.html madman2k]
| Pavel Rojtberg
| 
| 215
|-
| [http://maemo.org/profile/view/b-man.html b-man]
| Brian McKenzie
| 
| 215
|-
| [http://maemo.org/profile/view/mobiledivide.html mobiledivide]
| Itai Kaitano
| NYU
| 215
|-
| [http://maemo.org/profile/view/gnuton.html gnuton]
| Antonio Aloisio
| Nokia
| 215
|-
| [http://maemo.org/profile/view/rlinfati.html rlinfati]
| Rodrigo Linfati
| 
| 214
|-
| [http://maemo.org/profile/view/jaem.html jaem]
| Jeffery MacEachern
| 
| 210
|-
| [http://maemo.org/profile/view/jsmanrique.html jsmanrique]
| Manrique Lopez
| ANDAGO
| 210
|-
| [http://maemo.org/profile/view/chelli.html chelli]
| Thomas Schmidt
| Freelancer
| 209
|-
| [http://maemo.org/profile/view/lemmyslender.html lemmyslender]
| Len Palmer
| 
| 209
|-
| [http://maemo.org/profile/view/tonymaro.html tonymaro]
| Tony Maro
| 
| 209
|-
| [http://maemo.org/profile/view/joshuamaverick.html joshuamaverick]
| Joshua Richards
| 
| 208
|-
| [http://maemo.org/profile/view/code177.html code177]
| Jonathan Blake
| 
| 208
|-
| [http://maemo.org/profile/view/steven676.html steven676]
| Steven Luo
| 
| 204
|-
| [http://maemo.org/profile/view/lizardo.html lizardo]
| Anderson Lizardo
| INdT
| 204
|-
| [http://maemo.org/profile/view/nononoyes.html nononoyes]
| Alessandro Peralma
| 
| 202
|-
| [http://maemo.org/profile/view/nilchak.html nilchak]
| Nilanjan Chaks
| 
| 202
|-
| [http://maemo.org/profile/view/bones.html bones]
| Sergio Melas
| Solvay Chemicals
| 201
|-
| [http://maemo.org/profile/view/aanckar.html aanckar]
| Andreas Anckar
| 
| 201
|-
| [http://maemo.org/profile/view/rm_you.html rm_you]
| Adam Harwell
| DVM Solutions
| 200
|-
| [http://maemo.org/profile/view/vivainio.html vivainio]
| Ville Vainio
| 
| 198
|-
| [http://maemo.org/profile/view/monkeyiq.html monkeyiq]
| Ben Martin
| my own
| 196
|-
| [http://maemo.org/profile/view/ciroip.html ciroip]
| Ciro Ippolito
| 
| 196
|-
| [http://maemo.org/profile/view/zerionseven.html zerionseven]
| Tero Hietanen
| 
| 196
|-
| [http://maemo.org/profile/view/raul.html raul]
| Raul Herbster
| Signove
| 196
|-
| [http://maemo.org/profile/view/chri_ke.html chri_ke]
| Kenneth Rohde Christiansen
| Nokia Technology Institute, INdT
| 193
|-
| [http://maemo.org/profile/view/jknutar.html jknutar]
| Jan Knutar
| 
| 193
|-
| [http://maemo.org/profile/view/aapo.html aapo]
| Aapo Rantalainen
| University of Oulu
| 192
|-
| [http://maemo.org/profile/view/jkq.html jkq]
| Justin Quek
| 
| 192
|-
| [http://maemo.org/profile/view/slocan.html slocan]
| Yves Marcoz
| 
| 191
|-
| [http://maemo.org/profile/view/tim_edmonds.html tim_edmonds]
| Tim Edmonds
| 
| 191
|-
| [http://maemo.org/profile/view/rickybrent.html rickybrent]
| Ricky Brent
| BountyJobs
| 189
|-
| [http://maemo.org/profile/view/terrencegf.html terrencegf]
| Terrence Fleury
| 
| 188
|-
| [http://maemo.org/profile/view/jbenc.html jbenc]
| Jiri Benc
| 
| 188
|-
| [http://maemo.org/profile/view/mikhmv.html mikhmv]
| Max Mikh
| upmc
| 187
|-
| [http://maemo.org/profile/view/xan.html xan]
| Xan Lopez
| 
| 187
|-
| [http://maemo.org/profile/view/globster.html globster]
| Arkadiy Glazov
| 
| 187
|-
| [http://maemo.org/profile/view/webhamster.html webhamster]
| Daniel Fett
| 
| 187
|-
| [http://maemo.org/profile/view/thesandlord.html thesandlord]
| Sandeep Dinesh
| 
| 187
|-
| [http://maemo.org/profile/view/kroll.html kroll]
| Dmitriy Chirva
| 
| 187
|-
| [http://maemo.org/profile/view/jlu.html jlu]
| Julius Luukko
| 
| 186
|-
| [http://maemo.org/profile/view/itkach.html itkach]
| Igor Tkach
| 
| 185
|-
| [http://maemo.org/profile/view/jasuarez.html jasuarez]
| Juan A. Suarez
| 
| 185
|-
| [http://maemo.org/profile/view/pronkko.html pronkko]
| Pekka Rönkkö
| 
| 185
|-
| [http://maemo.org/profile/view/mullf.html mullf]
| Fred Mull
| 
| 184
|-
| [http://maemo.org/profile/view/matt.html matt]
| Matt Johnston
| 
| 184
|-
| [http://maemo.org/profile/view/maacruz.html maacruz]
| Miguel Angel Alvarez
| 
| 183
|-
| [http://maemo.org/profile/view/suihkulokki.html suihkulokki]
| Riku Voipio
| Nokia
| 182
|-
| [http://maemo.org/profile/view/igagis.html igagis]
| Ivan Gagis
| 
| 182
|-
| [http://maemo.org/profile/view/igor_stoppa.html igor_stoppa]
| Igor Stoppa
| Nokia
| 181
|-
| [http://maemo.org/profile/view/lostinmirkwood.html lostinmirkwood]
| Kristopher Kantor
| 
| 181
|-
| [http://maemo.org/profile/view/r-r.html r-r]
| Alex .
| 
| 181
|-
| [http://maemo.org/profile/view/pav.html pav]
| Pauli Virtanen
| 
| 180
|-
| [http://maemo.org/profile/view/arnims.html arnims]
| Arnim Sauerbier
| 
| 180
|-
| [http://maemo.org/profile/view/vre.html vre]
| Ville Reijonen
| 
| 180
|-
| [http://maemo.org/profile/view/iancumihai.html iancumihai]
| mihai iancu
| 
| 180
|-
| [http://maemo.org/profile/view/juise-.html juise-]
| Jussi Holm
| 
| 180
|-
| [http://maemo.org/profile/view/rickcull.html rickcull]
| Rick Cull
| MOD
| 180
|-
| [http://maemo.org/profile/view/kenyoung.html kenyoung]
| Ken Young
| USA Federal Government
| 179
|-
| [http://maemo.org/profile/view/zwer.html zwer]
| Aleksandar Mancic
| WhiteCity Soft
| 179
|-
| [http://maemo.org/profile/view/toja92.html toja92]
| Tobias Jansson
| 
| 179
|-
| [http://maemo.org/profile/view/trevarthan.html trevarthan]
| Jesse Guardiani
| 
| 179
|-
| [http://maemo.org/profile/view/cashclientel.html cashclientel]
| Cash Clientel
| 
| 178
|-
| [http://maemo.org/profile/view/sbir.html sbir]
| Alexander R.
| 
| 177
|-
| [http://maemo.org/profile/view/blubbi.html blubbi]
| Bjoern Olausson
| 
| 177
|-
| [http://maemo.org/profile/view/ciron810.html ciron810]
| Ciro Ippolito
| 
| 177
|-
| [http://maemo.org/profile/view/peterschneider.html peterschneider]
| Peter Schneider
| Nokia
| 175
|-
| [http://maemo.org/profile/view/jsa.html jsa]
| Jarkko Savolainen
| 
| 175
|-
| [http://maemo.org/profile/view/mvo.html mvo]
| Marius Vollmer
| Nokia
| 174
|-
| [http://maemo.org/profile/view/vkvraju.html vkvraju]
| Kasi Viswanath
| 
| 174
|-
| [http://maemo.org/profile/view/matrim.html matrim]
| Thom Troy
| 
| 173
|-
| [http://maemo.org/profile/view/maddler.html maddler]
| William Maddler
| Komputika s.a.s.
| 173
|-
| [http://maemo.org/profile/view/joorin.html joorin]
| Peter Flystam
| 
| 173
|-
| [http://maemo.org/profile/view/alexatkinuk.html alexatkinuk]
| Alexander Atkin
| 
| 173
|-
| [http://maemo.org/profile/view/josh.html josh]
| Josh Triplett
| 
| 172
|-
| [http://maemo.org/profile/view/matija.html matija]
| Matija Simeunovic
| 
| 172
|-
| [http://maemo.org/profile/view/kristiina.html kristiina]
| Kristiina Saaristo
| Manpower
| 172
|-
| [http://maemo.org/profile/view/puelocesar.html puelocesar]
| Paulo Cesar
| 
| 171
|-
| [http://maemo.org/profile/view/tthurman.html tthurman]
| Thomas Thurman
| 
| 170
|-
| [http://maemo.org/profile/view/ivanzorkic.html ivanzorkic]
| Ivan Zorkic
| 
| 169
|-
| [http://maemo.org/profile/view/klausr.html klausr]
| Klaus Rotter
| 
| 169
|-
| [http://maemo.org/profile/view/melunko.html melunko]
| Hallyson Melo
| 
| 169
|-
| [http://maemo.org/profile/view/smarsh.html smarsh]
| Steve Marsh
| Communications Research Centre
| 169
|-
| [http://maemo.org/profile/view/guaka.html guaka]
| Kasper Souren
| self
| 168
|-
| [http://maemo.org/profile/view/fragos.html fragos]
| George Fragos
| 
| 167
|-
| [http://maemo.org/profile/view/craftyguy.html craftyguy]
| Clayton Craft
| 
| 167
|-
| [http://maemo.org/profile/view/inidrog.html inidrog]
| inidrog
| 
| 167
|-
| [http://maemo.org/profile/view/fieldofcows.html fieldofcows]
| Roy Hopkins
| 
| 166
|-
| [http://maemo.org/profile/view/jaeezzy.html jaeezzy]
| Jay Pangmi
| 
| 165
|-
| [http://maemo.org/profile/view/jandmdickerson.html jandmdickerson]
| John Dickerson
| 
| 165
|-
| [http://maemo.org/profile/view/karstenb.html karstenb]
| Karsten Bräckelmann
| Openismus
| 165
|-
| [http://maemo.org/profile/view/nnod.html nnod]
| Donn Morrison
| University of Geneva
| 164
|-
| [http://maemo.org/profile/view/shashurup.html shashurup]
| George Kibardin
| 
| 164
|-
| [http://maemo.org/profile/view/bijjal.html bijjal]
| Soumya Bijjal
| Nokia
| 164
|-
| [http://maemo.org/profile/view/v6sa.html v6sa]
| Lauri Võsandi
| Estonian IT College
| 163
|-
| [http://maemo.org/profile/view/jtukkine.html jtukkine]
| Juha Tukkinen
| Nokia
| 163
|-
| [http://maemo.org/profile/view/homac.html homac]
| Holger Macht
| 
| 163
|-
| [http://maemo.org/profile/view/ifrade.html ifrade]
| Ivan Frade
| Nokia
| 163
|-
| [http://maemo.org/profile/view/srn.html srn]
| Sarah Newman
| 
| 162
|-
| [http://maemo.org/profile/view/ruskie.html ruskie]
| Andraž Levstik
| 
| 162
|-
| [http://maemo.org/profile/view/jakunnar.html jakunnar]
| Jake Kunnari
| 
| 162
|-
| [http://maemo.org/profile/view/msoini.html msoini]
| Mox Soini
| Palmu Inc
| 161
|-
| [http://maemo.org/profile/view/nakkebar.html nakkebar]
| Eero Tamminen
| Nokia
| 160
|-
| [http://maemo.org/profile/view/kgronholm.html kgronholm]
| Kaj Grönholm
| Nomovok
| 160
|-
| [http://maemo.org/profile/view/abbra.html abbra]
| Alexander Bokovoy
| Nokia
| 160
|-
| [http://maemo.org/profile/view/ywwg.html ywwg]
| Owen Williams
| 
| 159
|-
| [http://maemo.org/profile/view/dkwatts.html dkwatts]
| dk watts
| 
| 159
|-
| [http://maemo.org/profile/view/vinc17.html vinc17]
| Vincent Lefèvre
| INRIA
| 159
|-
| [http://maemo.org/profile/view/varunkrish.html varunkrish]
| varun krish
| 
| 159
|-
| [http://maemo.org/profile/view/parasight.html parasight]
| Juhana Jauhiainen
| 
| 159
|-
| [http://maemo.org/profile/view/d0b3rm4n.html d0b3rm4n]
| Reto Zingg
| 
| 158
|-
| [http://maemo.org/profile/view/djcb.html djcb]
| Dirk-Jan Binnema
| Nokia
| 158
|-
| [http://maemo.org/profile/view/amh.html amh]
| Alan Howard
| 
| 157
|-
| [http://maemo.org/profile/view/jait.html jait]
| Jari Tenhunen
| 
| 156
|-
| [http://maemo.org/profile/view/torshind.html torshind]
| Marcello Mansueto
| 
| 156
|-
| [http://maemo.org/profile/view/range.html range]
| Ralph Angenendt
| 
| 156
|-
| [http://maemo.org/profile/view/shin.html shin]
| Manoj Kumar
| 
| 155
|-
| [http://maemo.org/profile/view/keesj.html keesj]
| Kees Jongenburger
| TomTom B.V.
| 155
|-
| [http://maemo.org/profile/view/ihmis-suski.html ihmis-suski]
| Susanna Huhtanen
| 
| 155
|-
| [http://maemo.org/profile/view/boxofsnoo.html boxofsnoo]
| Jonathan Markevich
| 
| 154
|-
| [http://maemo.org/profile/view/lm2.html lm2]
| lm2 isme
| 
| 153
|-
| [http://maemo.org/profile/view/wdehoog.html wdehoog]
| Willem-Jan de Hoog
| 
| 152
|-
| [http://maemo.org/profile/view/danielb.html danielb]
| Daniel Borgmann
| Openismus GmbH
| 152
|-
| [http://maemo.org/profile/view/technut.html technut]
| technut .
| 
| 152
|-
| [http://maemo.org/profile/view/cpulvermacher.html cpulvermacher]
| Christian Pulvermacher
| 
| 151
|-
| [http://maemo.org/profile/view/nikosapi.html nikosapi]
| Nick Nobody
| 
| 151
|-
| [http://maemo.org/profile/view/mjn.html mjn]
| Marko Nykanen
| 
| 150
|-
| [http://maemo.org/profile/view/nymajoak.html nymajoak]
| J N
| 
| 150
|-
| [http://maemo.org/profile/view/setanta.html setanta]
| Marcelo Lira
| Instituto Nokia de Tecnologia (INdT)
| 150
|-
| [http://maemo.org/profile/view/csaavedra.html csaavedra]
| Claudio Saavedra
| Igalia
| 149
|-
| [http://maemo.org/profile/view/cfh11.html cfh11]
| Chris Palfrey
| 
| 149
|-
| [http://maemo.org/profile/view/inz.html inz]
| Santtu Lakkala
| Nomovok
| 149
|-
| [http://maemo.org/profile/view/munky261.html munky261]
| adam baker
| 
| 149
|-
| [http://maemo.org/profile/view/tomj.html tomj]
| Tom Joyce
| 
| 147
|-
| [http://maemo.org/profile/view/gazza_d.html gazza_d]
| gary dawes
| NHS
| 146
|-
| [http://maemo.org/profile/view/lapa.html lapa]
| Luis Lorenzo
| 
| 145
|-
| [http://maemo.org/profile/view/nhanquy.html nhanquy]
| Nhan Tran
| 
| 144
|-
| [http://maemo.org/profile/view/mikal.html mikal]
| Mika Luostarinen
| 
| 144
|-
| [http://maemo.org/profile/view/seadog.html seadog]
| Giorgos Logiotatidis
| TU Delft
| 144
|-
| [http://maemo.org/profile/view/coldfusion.html coldfusion]
| Stefan Kochev
| 
| 144
|-
| [http://maemo.org/profile/view/msameer.html msameer]
| Mohammed Hassan
| 
| 144
|-
| [http://maemo.org/profile/view/detlef.html detlef]
| Detlef Schmicker
| 
| 142
|-
| [http://maemo.org/profile/view/labaudio.html labaudio]
| eric king
| 
| 142
|-
| [http://maemo.org/profile/view/andree.html andree]
| Andrej Krutak
| 
| 141
|-
| [http://maemo.org/profile/view/josefdk.html josefdk]
| Josef Assad
| 
| 141
|-
| [http://maemo.org/profile/view/newca12.html newca12]
| Olivier ROLAND
| 
| 140
|-
| [http://maemo.org/profile/view/chrisp7.html chrisp7]
| Chris Phillips
| 
| 140
|-
| [http://maemo.org/profile/view/marciom.html marciom]
| Marcio Macedo
| INdT
| 140
|-
| [http://maemo.org/profile/view/deadmalc.html deadmalc]
| Malcolm Hussain-Gambles
| 
| 140
|-
| [http://maemo.org/profile/view/corwin.html corwin]
| Corwin Amber
| 
| 140
|-
| [http://maemo.org/profile/view/dannym.html dannym]
| Danny Milosavljevic
| 
| 139
|-
| [http://maemo.org/profile/view/hogwash.html hogwash]
| Hogwash .
| 
| 139
|-
| [http://maemo.org/profile/view/pillar.html pillar]
| Juha Linnanen
| 
| 138
|-
| [http://maemo.org/profile/view/bge.html bge]
| Benoit Goudreault-Emond
| 
| 138
|-
| [http://maemo.org/profile/view/jessi3k3.html jessi3k3]
| Jesus Pulido
| 
| 137
|-
| [http://maemo.org/profile/view/m2cm2c.html m2cm2c]
| m2c m2c
| 
| 137
|-
| [http://maemo.org/profile/view/kup.html kup]
| Peter Kupietz
| 
| 137
|-
| [http://maemo.org/profile/view/mthmob.html mthmob]
| Mads Tagmose
| 
| 136
|-
| [http://maemo.org/profile/view/marieke.html marieke]
| Marieke Streefkerk
| Fronteer Strategy
| 136
|-
| [http://maemo.org/profile/view/alan_peery.html alan_peery]
| Alan Peery
| 
| 135
|-
| [http://maemo.org/profile/view/xmob.html xmob]
| Pete Foster
| 
| 135
|-
| [http://maemo.org/profile/view/pierlux.html pierlux]
| Pierre-Luc Beaudoin
| Novopia
| 135
|-
| [http://maemo.org/profile/view/rebhana.html rebhana]
| Anton Rebhan
| 
| 134
|-
| [http://maemo.org/profile/view/megabyte405.html megabyte405]
| Ryan Pavlik
| 
| 134
|-
| [http://maemo.org/profile/view/chilitechno.html chilitechno]
| Chris Burris
| Chili Technologies LLC
| 134
|-
| [http://maemo.org/profile/view/mountainx.html mountainx]
| Dave Mountain
| 
| 133
|-
| [http://maemo.org/profile/view/pepitoe.html pepitoe]
| David Martel
| 
| 133
|-
| [http://maemo.org/profile/view/jacktanner.html jacktanner]
| Jack Tanner
| 
| 132
|-
| [http://maemo.org/profile/view/bunansonli.html bunansonli]
| bun anson
| 
| 132
|-
| [http://maemo.org/profile/view/rabbitrun84.html rabbitrun84]
| Miaoqing Tan
| Nokia
| 131
|-
| [http://maemo.org/profile/view/jdapena.html jdapena]
| José Dapena Paz
| Igalia
| 131
|-
| [http://maemo.org/profile/view/pincushionqueen.html pincushionqueen]
| Heather Sloan
| 
| 130
|-
| [http://maemo.org/profile/view/luogni.html luogni]
| Luca Ognibene
| Antek
| 130
|-
| [http://maemo.org/profile/view/svillar.html svillar]
| Sergio Villar Senin
| 
| 129
|-
| [http://maemo.org/profile/view/emesem.html emesem]
| M S
| 
| 129
|-
| [http://maemo.org/profile/view/lemody.html lemody]
| Tapani Pälli
| 
| 129
|-
| [http://maemo.org/profile/view/klinglerware.html klinglerware]
| Ryan Cristal
| 
| 129
|-
| [http://maemo.org/profile/view/somedude.html somedude]
| Ashish Chapagain
| 
| 129
|-
| [http://maemo.org/profile/view/bdogg64.html bdogg64]
| B R
| 
| 128
|-
| [http://maemo.org/profile/view/solarion.html solarion]
| Joseph Pingenot
| The University of Oklahoma
| 128
|-
| [http://maemo.org/profile/view/pavel.html pavel]
| Pavel Fialko
| 
| 127
|-
| [http://maemo.org/profile/view/mwiktowy.html mwiktowy]
| Michael Wiktowy
| 
| 126
|-
| [http://maemo.org/profile/view/corsac.html corsac]
| Yves-Alexis Perez
| 
| 126
|-
| [http://maemo.org/profile/view/jonnylamb.html jonnylamb]
| Jonny Lamb
| 
| 126
|-
| [http://maemo.org/profile/view/edgedemon.html edgedemon]
| Edge demon
| 
| 126
|-
| [http://maemo.org/profile/view/mmlado.html mmlado]
| Mladen Milankovic
| 
| 125
|-
| [http://maemo.org/profile/view/humanpenguin.html humanpenguin]
| Dave Hall
| 
| 125
|-
| [http://maemo.org/profile/view/raulherbster.html raulherbster]
| Raul Fernandes Herbster
| Embedded Lab - Federal University of Campina Grande
| 125
|-
| [http://maemo.org/profile/view/briand.html briand]
| Brian Dunworth
| 
| 125
|-
| [http://maemo.org/profile/view/osemutech.html osemutech]
| James Watters
| 
| 124
|-
| [http://maemo.org/profile/view/hns.html hns]
| Hannes Wallnoefer
| 
| 124
|-
| [http://maemo.org/profile/view/baksiidaa.html baksiidaa]
| Matt Turner
| 
| 124
|-
| [http://maemo.org/profile/view/jtorra.html jtorra]
| Josep Torra
| Fluendo, S.A
| 124
|-
| [http://maemo.org/profile/view/miker.html miker]
| Mike Rowehl
| 
| 124
|-
| [http://maemo.org/profile/view/lfelipe.html lfelipe]
| Luis Felipe Moraes
| ProFUSION Embedded Devices
| 124
|-
| [http://maemo.org/profile/view/cas07.html cas07]
| Calum Lind
| 
| 124
|-
| [http://maemo.org/profile/view/manuel.html manuel]
| Manuel Kirsch
| 
| 124
|-
| [http://maemo.org/profile/view/slobodsky.html slobodsky]
| Nick Slobodsky
| 
| 123
|-
| [http://maemo.org/profile/view/mehdi.html mehdi]
| Mehdi El Gueddari
| 
| 123
|-
| [http://maemo.org/profile/view/richie.html richie]
| Richard Booth
| 
| 123
|-
| [http://maemo.org/profile/view/dwaradzyn.html dwaradzyn]
| Damian Waradzyn
| 
| 122
|-
| [http://maemo.org/profile/view/aranelsurion.html aranelsurion]
| Aranel Surion
| 
| 122
|-
| [http://maemo.org/profile/view/emjayes.html emjayes]
| Mika Saarela
| 
| 122
|-
| [http://maemo.org/profile/view/rip.html rip]
| adam p
| 
| 122
|-
| [http://maemo.org/profile/view/eocanha.html eocanha]
| Enrique Ocaña González
| 
| 122
|-
| [http://maemo.org/profile/view/mdk.html mdk]
| Michael Dominic K.
| New Wild
| 122
|-
| [http://maemo.org/profile/view/jaark.html jaark]
| Dave Sexton
| 
| 121
|-
| [http://maemo.org/profile/view/brucel.html brucel]
| Bruce Long
| 
| 121
|-
| [http://maemo.org/profile/view/momchil.html momchil]
| momchil karabulev
| 
| 121
|-
| [http://maemo.org/profile/view/claudius.html claudius]
| Claudius Henrichs
| Student
| 121
|-
| [http://maemo.org/profile/view/bigbrovar.html bigbrovar]
| Bobby Adesuyan
| 
| 121
|-
| [http://maemo.org/profile/view/yabbas.html yabbas]
| Yasin Abbas
| 
| 121
|-
| [http://maemo.org/profile/view/svlasov.html svlasov]
| Sergey Vlasov
| 
| 120
|-
| [http://maemo.org/profile/view/juhar.html juhar]
| Juha Rönkkö
| 
| 120
|-
| [http://maemo.org/profile/view/unique311.html unique311]
| stan one
| 
| 120
|-
| [http://maemo.org/profile/view/gemniii42.html gemniii42]
| george newbury
| 
| 120
|-
| [http://maemo.org/profile/view/hasselmm.html hasselmm]
| Mathias Hasselmann
| Openismus
| 120
|-
| [http://maemo.org/profile/view/sadfist.html sadfist]
| Alex Beck
| 
| 120
|-
| [http://maemo.org/profile/view/kevloral.html kevloral]
| José Manuel Arnesto
| Telvent
| 120
|-
| [http://maemo.org/profile/view/nwerneck.html nwerneck]
| Nicolau Werneck
| USP
| 119
|-
| [http://maemo.org/profile/view/kvalo.html kvalo]
| Kalle Valo
| 
| 119
|-
| [http://maemo.org/profile/view/alevinsn.html alevinsn]
| Aaron Levinson
| 
| 119
|-
| [http://maemo.org/profile/view/shep.html shep]
| Stephen Lacey
| 
| 119
|-
| [http://maemo.org/profile/view/jyro.html jyro]
| Jayesh Salvi
| 
| 118
|-
| [http://maemo.org/profile/view/leandro.html leandro]
| Leandro Sales
| Federal University of Campina Grande
| 118
|-
| [http://maemo.org/profile/view/convulted.html convulted]
| André Xuereb
| 
| 117
|-
| [http://maemo.org/profile/view/tpaixao.html tpaixao]
| Tiago Paixao
| 
| 117
|-
| [http://maemo.org/profile/view/jfk.html jfk]
| Johannes K.
| 
| 117
|-
| [http://maemo.org/profile/view/harryf.html harryf]
| Harald Fernengel
| Nokia
| 117
|-
| [http://maemo.org/profile/view/joenix.html joenix]
| Jeroen Wouters
| 
| 116
|-
| [http://maemo.org/profile/view/navsin.html navsin]
| navneet singh
| 
| 116
|-
| [http://maemo.org/profile/view/floffe.html floffe]
| Olof Persson
| 
| 116
|-
| [http://maemo.org/profile/view/neatojones.html neatojones]
| Nathan Jones
| 
| 116
|-
| [http://maemo.org/profile/view/theflew.html theflew]
| Mark Flewellen
| 
| 116
|-
| [http://maemo.org/profile/view/onutz.html onutz]
| Onutz Buruga
| utestme.com
| 116
|-
| [http://maemo.org/profile/view/mmurfin87.html mmurfin87]
| Mark Murfin III
| Omni Communications and Services, Inc
| 115
|-
| [http://maemo.org/profile/view/dmj726.html dmj726]
| David Jordan
| 
| 115
|-
| [http://maemo.org/profile/view/mooninite.html mooninite]
| Michael Cronenworth
| 
| 115
|-
| [http://maemo.org/profile/view/plastun.html plastun]
| Max Usachev
| 
| 114
|-
| [http://maemo.org/profile/view/mones.html mones]
| Ricardo Mones
| 
| 114
|-
| [http://maemo.org/profile/view/claws.html claws]
| Paul Mangan
| 
| 114
|-
| [http://maemo.org/profile/view/locusf.html locusf]
| Aleksi Suomalainen
| 
| 113
|-
| [http://maemo.org/profile/view/n820ftw.html n820ftw]
| AG Sopwith
| 
| 112
|-
| [http://maemo.org/profile/view/vlg.html vlg]
| Vladislav Grinchenko
| 3rdShift Software, Inc.
| 112
|-
| [http://maemo.org/profile/view/renegadefanboy.html renegadefanboy]
| Renegade Fanboy
| 
| 112
|-
| [http://maemo.org/profile/view/tony2001.html tony2001]
| Antony Dovgal
| 
| 112
|-
| [http://maemo.org/profile/view/phi.html phi]
| Phi D
| 
| 112
|-
| [http://maemo.org/profile/view/x-lette.html x-lette]
| B D
| 
| 112
|-
| [http://maemo.org/profile/view/vivijim.html vivijim]
| Rodrigo Vivi
| INdT
| 111
|-
| [http://maemo.org/profile/view/dschmicker.html dschmicker]
| Detlef Schmicker
| 
| 111
|-
| [http://maemo.org/profile/view/lmoura.html lmoura]
| Lauro Moura
| Instituto Nokia de Tecnologia
| 111
|-
| [http://maemo.org/profile/view/aratorn.html aratorn]
| Charles Clément
| 
| 111
|-
| [http://maemo.org/profile/view/stranger.html stranger]
| Dariusz Wiechecki
| ComArch S.A.
| 110
|-
| [http://maemo.org/profile/view/gri.html gri]
| Christoph Keller
| 
| 110
|-
| [http://maemo.org/profile/view/sho.html sho]
| Eike Hein
| 
| 110
|-
| [http://maemo.org/profile/view/anapospastos.html anapospastos]
| Theofilos Hatziaristeras
| 
| 110
|-
| [http://maemo.org/profile/view/magomez.html magomez]
| Miguel Gomez
| 
| 110
|-
| [http://maemo.org/profile/view/simon.html simon]
| Simon Budig
| kernel concepts
| 110
|-
| [http://maemo.org/profile/view/harri.html harri]
| Harri Vattulainen
| 
| 109
|-
| [http://maemo.org/profile/view/rapante.html rapante]
| Oliver Janoschek
| 
| 109
|-
| [http://maemo.org/profile/view/nikolajhendel.html nikolajhendel]
| Nikolaj Hendel
| 
| 109
|-
| [http://maemo.org/profile/view/zgold550.html zgold550]
| Zachary Goldberg
| University of Pennsylvania
| 109
|-
| [http://maemo.org/profile/view/skatebiker.html skatebiker]
| skate biker
| 
| 109
|-
| [http://maemo.org/profile/view/glauber.html glauber]
| Glauber Ferreira
| 
| 108
|-
| [http://maemo.org/profile/view/zulla.html zulla]
| Hanno Zulla
| 
| 107
|-
| [http://maemo.org/profile/view/microphobic.html microphobic]
| Plamen Tonev
| 
| 107
|-
| [http://maemo.org/profile/view/architengi.html architengi]
| Art Gi
| 
| 107
|-
| [http://maemo.org/profile/view/delaroca.html delaroca]
| Denis DeLaRoca
| 
| 107
|-
| [http://maemo.org/profile/view/wolfg1969.html wolfg1969]
| Yong Guo
| 
| 106
|-
| [http://maemo.org/profile/view/yann_b.html yann_b]
| Yann Benigot
| 
| 106
|-
| [http://maemo.org/profile/view/sandybeach.html sandybeach]
| David B
| 
| 106
|-
| [http://maemo.org/profile/view/ttt.html ttt]
| Tuukka Turunen
| Digia Plc
| 105
|-
| [http://maemo.org/profile/view/hartti.html hartti]
| Hartti Suomela
| Nokia
| 105
|-
| [http://maemo.org/profile/view/alephito.html alephito]
| Diego Ruiz
| 
| 105
|-
| [http://maemo.org/profile/view/pancake.html pancake]
| pancake nopcode
| Fluendo
| 105
|-
| [http://maemo.org/profile/view/mikel.html mikel]
| Michael Leeson
| 
| 105
|-
| [http://maemo.org/profile/view/japieb.html japieb]
| Jaap Braam
| 
| 105
|-
| [http://maemo.org/profile/view/underscore.html underscore]
| Henry Weathersbee
| 
| 104
|-
| [http://maemo.org/profile/view/thecursedfly.html thecursedfly]
| Cursed Fly
| 
| 104
|-
| [http://maemo.org/profile/view/rbrewer123.html rbrewer123]
| Rob Brewer
| 
| 104
|-
| [http://maemo.org/profile/view/dantonic.html dantonic]
| Davide Antonicelli
| 
| 104
|-
| [http://maemo.org/profile/view/trollo.html trollo]
| Troy Rollo
| 
| 103
|-
| [http://maemo.org/profile/view/moonshine.html moonshine]
| James Pooton
| 
| 103
|-
| [http://maemo.org/profile/view/rdorsch.html rdorsch]
| Rainer Dorsch
| 
| 103
|-
| [http://maemo.org/profile/view/hox.html hox]
| Andrea Carron
| 
| 103
|-
| [http://maemo.org/profile/view/mbo.html mbo]
| Martin Borho
| 
| 103
|-
| [http://maemo.org/profile/view/tvijlbrief.html tvijlbrief]
| Tom Vijlbrief
| 
| 102
|-
| [http://maemo.org/profile/view/sxc.html sxc]
| Christian Sarrasin
| 
| 102
|-
| [http://maemo.org/profile/view/romaxa.html romaxa]
| Oleg Romashin
| 
| 102
|-
| [http://maemo.org/profile/view/pronvit.html pronvit]
| Vitaliy Pronkin
| 
| 102
|-
| [http://maemo.org/profile/view/pguise.html pguise]
| Paul Guise
| 
| 102
|-
| [http://maemo.org/profile/view/jamiefuller.html jamiefuller]
| Jamie Fuller
| 
| 102
|-
| [http://maemo.org/profile/view/wesgreen.html wesgreen]
| andy friedberg
| 
| 102
|-
| [http://maemo.org/profile/view/karatchov.html karatchov]
| Malek Boughattas
| 
| 102
|-
| [http://maemo.org/profile/view/dik.html dik]
| dik .
| 
| 102
|-
| [http://maemo.org/profile/view/mtron.html mtron]
| 
| 
| 102
|-
| [http://maemo.org/profile/view/soeiro.html soeiro]
| Luis Soeiro
| 
| 101
|-
| [http://maemo.org/profile/view/calvaris.html calvaris]
| Xabier Rodriguez Calvar
| 
| 101
|-
| [http://maemo.org/profile/view/vitaly_repin.html vitaly_repin]
| Vitaly Repin
| 
| 101
|-
| [http://maemo.org/profile/view/ajf.html ajf]
| Alfredo J. Fabretti
| 
| 101
|-
| [http://maemo.org/profile/view/smancke.html smancke]
| Sebastian Mancke
| Tarent GmbH
| 100
|}

[[Category:Community Council]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Council election Q4 2012</title>
    <id>5249</id>
    <revision>
      <id>50269</id>
      <timestamp>2012-10-20T12:18:31Z</timestamp>
      <contributor>
        <username>misterc</username>
        <id>4509</id>
      </contributor>
      <text xml:space="preserve">The [[Community Council | Maemo Community Council]] will have its next election in October 2012, electing a new council. The members will be elected for up to a 6 month term.  The council election process is also being utilized to select the initial Board of Directors for the Hildon Foundation. 

The election page will eventually be available [http://maemo.org/vote here].

== Layman's Terms ==

Unless your have time and energy to dedicate to the Maemo cause, DO NOT APPLY AS A CANDIDATE.
The Community is headed for storm!

== Election Details ==

Funding for Maemo.org by NOKIA is expected to end on 31st of December 2012.
In the remaining months of 2012 the Council will keep the same functions as previously.  It is possible that the Council will be taken in by the Board of Directors of the Hildon foundation.  The exact nature of the Council in the Foundation is currently being established with the by-laws.

== Election timetable ==

All deadlines are set at 23:59 UTC.

* September 15: Election announced, nomination period opened [http://lists.maemo.org/pipermail/maemo-community/2012-September/005009.html]
* Nomination period extended until 28 of October

== Eligibility ==

The election processes are described in detail at [[Community Council/Election process]].

'''In order to vote''', a community member must have had maemo.org account for over 3 months, '''(a maemo.org account is NOT a talk.maemo.org account)''' and have [[karma]] of 10 or above. Candidates need to have a [[karma]] of 100 or higher. [[/Eligible candidates | List of potential candidates]] Karma is earned through a variety of mechanisms, but to earn points for contributions on [http://talk.maemo.org/ talk.maemo.org], you need to [[link talk.maemo.org account with maemo.org profile]].

== Election material ==

Here you will find lists of potential candidates, statements from candidates, and other material related to the October 2012 elections.

* [[/Eligible candidates | List of potential candidates]]
* [http://wiki.maemo.org/Community_Council/Council_election_September_2012/Candidate_declarations Candidate declarations]

== Results - Board of Directors ==

The Maemo Community Council elected in May 2012 is as follows: 

# [http://maemo.org/profile/view/ivgalvez/ Iván Gálvez Junquera / ivgalvez]
# [http://maemo.org/profile/view/Texrat/ Randall Arnold / Texrat]
# [http://maemo.org/profile/view/timsamoff/ Tim Samoff / timsamoff]
[http://talk.maemo.org/showthread.php?p=1282882]

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Council election Q4 2012/Eligible candidates</title>
    <id>5265</id>
    <revision>
      <id>49836</id>
      <timestamp>2012-09-23T00:14:46Z</timestamp>
      <contributor>
        <username>misterc</username>
        <id>4509</id>
      </contributor>
      <text xml:space="preserve">&lt;TABLE CELLSPACING=&quot;0&quot; COLS=&quot;4&quot; BORDER=&quot;0&quot;&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;User &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Name &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Company &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Total&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;sjgadsby &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Stephen Gadsby &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Millersville University of Pennsylvania &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;4009&quot; SDNUM=&quot;1033;&quot;&gt;4009&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jaffa &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Andrew Flegg &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;3170&quot; SDNUM=&quot;1033;&quot;&gt;3170&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;qgil &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Quim Gil &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;2643&quot; SDNUM=&quot;1033;&quot;&gt;2643&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;thp &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Thomas Perl &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;2489&quot; SDNUM=&quot;1033;&quot;&gt;2489&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mikkov &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;2215&quot; SDNUM=&quot;1033;&quot;&gt;2215&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;qwerty12 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;2148&quot; SDNUM=&quot;1033;&quot;&gt;2148&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;krisse &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Krisse Juorunen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;2027&quot; SDNUM=&quot;1033;&quot;&gt;2027&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;d-iivil &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Ricky Tournee &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;IVK Music Finland LTD &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1983&quot; SDNUM=&quot;1033;&quot;&gt;1983&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;texrat &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Randall Arnold &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1949&quot; SDNUM=&quot;1033;&quot;&gt;1949&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;yerga &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Daniel Mart├¡n Yerga &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1711&quot; SDNUM=&quot;1033;&quot;&gt;1711&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;fms &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Marat Fayzullin &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1621&quot; SDNUM=&quot;1033;&quot;&gt;1621&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;timsamoff &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Tim Samoff &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Moorpark College &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1587&quot; SDNUM=&quot;1033;&quot;&gt;1587&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;generalantilles &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Ryan Abel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1492&quot; SDNUM=&quot;1033;&quot;&gt;1492&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;achipa &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Attila Csipa &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nokia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1428&quot; SDNUM=&quot;1033;&quot;&gt;1428&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;vdvsx &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Val├®rio Val├®rio &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1420&quot; SDNUM=&quot;1033;&quot;&gt;1420&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;framstag &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Tim Teulings &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1352&quot; SDNUM=&quot;1033;&quot;&gt;1352&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;khertan &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Beno├«t HERVIER &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1318&quot; SDNUM=&quot;1033;&quot;&gt;1318&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;stskeeps &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1305&quot; SDNUM=&quot;1033;&quot;&gt;1305&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;qole &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;alan bruce &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1236&quot; SDNUM=&quot;1033;&quot;&gt;1236&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;vasvlad &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1211&quot; SDNUM=&quot;1033;&quot;&gt;1211&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mohammad7410 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Mohammad Abu-Garbeyyeh &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1211&quot; SDNUM=&quot;1033;&quot;&gt;1211&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;bergie &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Henri Bergius &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nemein &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1198&quot; SDNUM=&quot;1033;&quot;&gt;1198&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;dneary &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Dave Neary &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Neary Consulting &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1194&quot; SDNUM=&quot;1033;&quot;&gt;1194&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nicolai &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1176&quot; SDNUM=&quot;1033;&quot;&gt;1176&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;pycage &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Martin Grimme &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Lintegra &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1172&quot; SDNUM=&quot;1033;&quot;&gt;1172&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;thoughtfix &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Daniel Gentleman &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;ThoughtFix LLC &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1129&quot; SDNUM=&quot;1033;&quot;&gt;1129&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;wazd &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Andrew Zhilin &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1084&quot; SDNUM=&quot;1033;&quot;&gt;1084&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;pali &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1082&quot; SDNUM=&quot;1033;&quot;&gt;1082&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;epage &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Ed Page &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1050&quot; SDNUM=&quot;1033;&quot;&gt;1050&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;andre &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Andre Klapper &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1040&quot; SDNUM=&quot;1033;&quot;&gt;1040&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;vaibhavsharma &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Vaibhav Sharma &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;TheHandheldBlog.com &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1027&quot; SDNUM=&quot;1033;&quot;&gt;1027&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;thenokiablog &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Mark Guim &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;thenokiablog.com &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;1008&quot; SDNUM=&quot;1033;&quot;&gt;1008&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;archebyte &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Mustali Dalal &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;996&quot; SDNUM=&quot;1033;&quot;&gt;996&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tanner &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Tom Tanner &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;991&quot; SDNUM=&quot;1033;&quot;&gt;991&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;torpedo48 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Emanuele Cassioli &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;983&quot; SDNUM=&quot;1033;&quot;&gt;983&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rsuplido &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Reggie Suplido &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;talk.maemo.org / Maemo Talk &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;907&quot; SDNUM=&quot;1033;&quot;&gt;907&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;javispedro &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Javier S. Pedro &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;906&quot; SDNUM=&quot;1033;&quot;&gt;906&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;saturn &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Christos Saturn &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;885&quot; SDNUM=&quot;1033;&quot;&gt;885&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;konttori &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Urho Konttori &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nokia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;880&quot; SDNUM=&quot;1033;&quot;&gt;880&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;gcobb &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Graham Cobb &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;873&quot; SDNUM=&quot;1033;&quot;&gt;873&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ossi1967 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Oskar Welzl &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;863&quot; SDNUM=&quot;1033;&quot;&gt;863&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;marxian &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Stuart Howarth &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;835&quot; SDNUM=&quot;1033;&quot;&gt;835&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ossipena &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Timo P &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;831&quot; SDNUM=&quot;1033;&quot;&gt;831&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;anidel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Aniello Del Sorbo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Orbis UK Ltd &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;825&quot; SDNUM=&quot;1033;&quot;&gt;825&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;twaelti &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Tom Waelti &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;IT (Consulting / eGov / Healthcare) &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;819&quot; SDNUM=&quot;1033;&quot;&gt;819&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;xfade &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Niels Breet &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;817&quot; SDNUM=&quot;1033;&quot;&gt;817&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;w00t &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Robin Burchell &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Collabora &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;813&quot; SDNUM=&quot;1033;&quot;&gt;813&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;apocalypso &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;804&quot; SDNUM=&quot;1033;&quot;&gt;804&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ivgalvez &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Ivan Galvez Junquera &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;803&quot; SDNUM=&quot;1033;&quot;&gt;803&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;gerbick &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;William McBee &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;801&quot; SDNUM=&quot;1033;&quot;&gt;801&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;hschmitt &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Harald Schmitt &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;783&quot; SDNUM=&quot;1033;&quot;&gt;783&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;bundyo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Kamen Bundev &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;775&quot; SDNUM=&quot;1033;&quot;&gt;775&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;lardman &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Simon Pickering &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;771&quot; SDNUM=&quot;1033;&quot;&gt;771&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;smoku &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Tomasz Sterna &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Opera Software ASA &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;758&quot; SDNUM=&quot;1033;&quot;&gt;758&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;freemangordon &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;752&quot; SDNUM=&quot;1033;&quot;&gt;752&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;pvanhoof &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Philip Van Hoof &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Codeminded BVBA &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;748&quot; SDNUM=&quot;1033;&quot;&gt;748&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;estel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Piotr Jawidzyk &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;738&quot; SDNUM=&quot;1033;&quot;&gt;738&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;cepiperez &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;732&quot; SDNUM=&quot;1033;&quot;&gt;732&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;lcuk &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Gary Birkett &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;732&quot; SDNUM=&quot;1033;&quot;&gt;732&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;venomrush &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Venomrush . &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Experian &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;720&quot; SDNUM=&quot;1033;&quot;&gt;720&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;zerojay &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Jason Carter &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Longtail Studios/Ubisoft &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;719&quot; SDNUM=&quot;1033;&quot;&gt;719&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;revdkathy &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Kathy Smith &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;716&quot; SDNUM=&quot;1033;&quot;&gt;716&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rcolistete &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Roberto Colistete Jr &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;714&quot; SDNUM=&quot;1033;&quot;&gt;714&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;joerg_rw &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Joerg Reisenweber &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;706&quot; SDNUM=&quot;1033;&quot;&gt;706&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;palmsolo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Matthew Miller &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;701&quot; SDNUM=&quot;1033;&quot;&gt;701&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;pipeline &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;700&quot; SDNUM=&quot;1033;&quot;&gt;700&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;lbt &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;David Greaves &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Freelance (Nomovok/Nokia) &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;700&quot; SDNUM=&quot;1033;&quot;&gt;700&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;baloo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Jamie Bennett &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Canonical &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;693&quot; SDNUM=&quot;1033;&quot;&gt;693&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;flandry &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;David Falkayn &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;MIT &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;689&quot; SDNUM=&quot;1033;&quot;&gt;689&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;agarcia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Alberto Garcia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Igalia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;682&quot; SDNUM=&quot;1033;&quot;&gt;682&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;danramos &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;674&quot; SDNUM=&quot;1033;&quot;&gt;674&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ysss &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Leo Sutedja &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;671&quot; SDNUM=&quot;1033;&quot;&gt;671&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ed_ &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Ed Bartosh &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;671&quot; SDNUM=&quot;1033;&quot;&gt;671&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;harbaum &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Till Harbaum &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;664&quot; SDNUM=&quot;1033;&quot;&gt;664&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;eipi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Sanjeev Visvanatha &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;662&quot; SDNUM=&quot;1033;&quot;&gt;662&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;andy80 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Andrea Grandi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;661&quot; SDNUM=&quot;1033;&quot;&gt;661&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;fanoush &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Frantisek Dufka &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;641&quot; SDNUM=&quot;1033;&quot;&gt;641&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;fiferboy &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Andrew Olmsted &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;638&quot; SDNUM=&quot;1033;&quot;&gt;638&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;frals &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nick Lepp├ñnen Larsson &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;633&quot; SDNUM=&quot;1033;&quot;&gt;633&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;andrewfblack &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Andrew Black &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;632&quot; SDNUM=&quot;1033;&quot;&gt;632&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rcadden &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;629&quot; SDNUM=&quot;1033;&quot;&gt;629&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;fatalsaint &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;629&quot; SDNUM=&quot;1033;&quot;&gt;629&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;wonko &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Ruediger Gad &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;624&quot; SDNUM=&quot;1033;&quot;&gt;624&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nokian900freak &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;621&quot; SDNUM=&quot;1033;&quot;&gt;621&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;fredoll &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;617&quot; SDNUM=&quot;1033;&quot;&gt;617&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mece &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Marcus Wikstr├Âm &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;616&quot; SDNUM=&quot;1033;&quot;&gt;616&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;onion &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Kaj-Michael Lang &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;613&quot; SDNUM=&quot;1033;&quot;&gt;613&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rmoravcik &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Roman Moravcik &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;610&quot; SDNUM=&quot;1033;&quot;&gt;610&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;kulve &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Tuomas Kulve &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;NVIDIA &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;608&quot; SDNUM=&quot;1033;&quot;&gt;608&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;zehjotkah &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Cosimo Kroll &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;607&quot; SDNUM=&quot;1033;&quot;&gt;607&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;hrw &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Marcin Juszkiewicz &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;606&quot; SDNUM=&quot;1033;&quot;&gt;606&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mikecy &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;mike choy &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;604&quot; SDNUM=&quot;1033;&quot;&gt;604&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;danielwilms &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;598&quot; SDNUM=&quot;1033;&quot;&gt;598&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tomaszd &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Tomasz Dominikowski &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;596&quot; SDNUM=&quot;1033;&quot;&gt;596&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;murrayc &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Murray Cumming &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Openismus GmbH &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;596&quot; SDNUM=&quot;1033;&quot;&gt;596&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jeremiah &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Jeremiah Foster &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;593&quot; SDNUM=&quot;1033;&quot;&gt;593&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;amigadave &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;David King &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Openismus GmbH &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;586&quot; SDNUM=&quot;1033;&quot;&gt;586&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;matan &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Matan Ziv-Av &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;581&quot; SDNUM=&quot;1033;&quot;&gt;581&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mtraceur &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;578&quot; SDNUM=&quot;1033;&quot;&gt;578&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;b0unc3 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Daniele Maio &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;574&quot; SDNUM=&quot;1033;&quot;&gt;574&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;v13 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Stefanos Harhalakis &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;569&quot; SDNUM=&quot;1033;&quot;&gt;569&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;conny &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Cornelius Hald &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;568&quot; SDNUM=&quot;1033;&quot;&gt;568&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tekojo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Tero Kojo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;557&quot; SDNUM=&quot;1033;&quot;&gt;557&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;penguinbait &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;556&quot; SDNUM=&quot;1033;&quot;&gt;556&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;woody14619 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Craig Woodward &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;554&quot; SDNUM=&quot;1033;&quot;&gt;554&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;zeenix &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Zeeshan Ali &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nokia Oyj &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;551&quot; SDNUM=&quot;1033;&quot;&gt;551&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;geneven &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;540&quot; SDNUM=&quot;1033;&quot;&gt;540&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mgedmin &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Marius Gedminas &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Programmers of Vilnius &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;536&quot; SDNUM=&quot;1033;&quot;&gt;536&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;vpsych &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;532&quot; SDNUM=&quot;1033;&quot;&gt;532&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ammyt &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;532&quot; SDNUM=&quot;1033;&quot;&gt;532&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;qwazix &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;532&quot; SDNUM=&quot;1033;&quot;&gt;532&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;vee &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;530&quot; SDNUM=&quot;1033;&quot;&gt;530&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;aapo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Aapo Rantalainen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;528&quot; SDNUM=&quot;1033;&quot;&gt;528&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;sd69 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;528&quot; SDNUM=&quot;1033;&quot;&gt;528&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;aisu &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Tyler Longwell &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;527&quot; SDNUM=&quot;1033;&quot;&gt;527&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ian_r &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;525&quot; SDNUM=&quot;1033;&quot;&gt;525&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;debernardis &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Ernesto de Bernardis &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;523&quot; SDNUM=&quot;1033;&quot;&gt;523&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;florian &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Florian Boor &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;kernel concepts &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;523&quot; SDNUM=&quot;1033;&quot;&gt;523&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;barbieri &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Gustavo Barbieri &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;516&quot; SDNUM=&quot;1033;&quot;&gt;516&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;fpp &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;515&quot; SDNUM=&quot;1033;&quot;&gt;515&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;lucianomw &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Luciano Wolf &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;INdT - Instituto Nokia de Tecnologia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;513&quot; SDNUM=&quot;1033;&quot;&gt;513&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;speedevil &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;512&quot; SDNUM=&quot;1033;&quot;&gt;512&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;sifo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Sifo basha &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;508&quot; SDNUM=&quot;1033;&quot;&gt;508&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;brentdc &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Brent Chiodo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;507&quot; SDNUM=&quot;1033;&quot;&gt;507&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tswindell &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Tom Swindell &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;505&quot; SDNUM=&quot;1033;&quot;&gt;505&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;kojacker &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Ryan Faulkner &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;502&quot; SDNUM=&quot;1033;&quot;&gt;502&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;daperl &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;500&quot; SDNUM=&quot;1033;&quot;&gt;500&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rob1n &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;500&quot; SDNUM=&quot;1033;&quot;&gt;500&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;benson &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Benson Mitchell &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;496&quot; SDNUM=&quot;1033;&quot;&gt;496&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nix_nix &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Gabriel Schulhof &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nokia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;492&quot; SDNUM=&quot;1033;&quot;&gt;492&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;joppu &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Johannes Siipola &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;491&quot; SDNUM=&quot;1033;&quot;&gt;491&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;milhouse &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Neil MacLeod &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;490&quot; SDNUM=&quot;1033;&quot;&gt;490&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;etrunko &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Eduardo Lima &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;openBossa/INdT &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;489&quot; SDNUM=&quot;1033;&quot;&gt;489&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;pelago &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;486&quot; SDNUM=&quot;1033;&quot;&gt;486&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;spirit-iddqd &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Kirill Plyashkevich &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;485&quot; SDNUM=&quot;1033;&quot;&gt;485&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jebba &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Jeff Moe &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Self unemployed &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;483&quot; SDNUM=&quot;1033;&quot;&gt;483&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mikhas &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Michael Hasselmann &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Openismus GmbH &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;483&quot; SDNUM=&quot;1033;&quot;&gt;483&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jukey &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Uwe Kaminski &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;479&quot; SDNUM=&quot;1033;&quot;&gt;479&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;kristiina &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;475&quot; SDNUM=&quot;1033;&quot;&gt;475&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;noobmonkey &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;NHS &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;471&quot; SDNUM=&quot;1033;&quot;&gt;471&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;fcrochik &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Felipe Crochik &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;464&quot; SDNUM=&quot;1033;&quot;&gt;464&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;redex &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;463&quot; SDNUM=&quot;1033;&quot;&gt;463&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;bun &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;463&quot; SDNUM=&quot;1033;&quot;&gt;463&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;frankusb &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Frank Banul &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;458&quot; SDNUM=&quot;1033;&quot;&gt;458&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;chemist &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;455&quot; SDNUM=&quot;1033;&quot;&gt;455&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;felipec &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Felipe Contreras &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nokia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;442&quot; SDNUM=&quot;1033;&quot;&gt;442&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;bunanson &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;440&quot; SDNUM=&quot;1033;&quot;&gt;440&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;gnuite &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;438&quot; SDNUM=&quot;1033;&quot;&gt;438&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rauha &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;436&quot; SDNUM=&quot;1033;&quot;&gt;436&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jatikka &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Jarmo Tikka &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;434&quot; SDNUM=&quot;1033;&quot;&gt;434&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;allnameswereout &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;434&quot; SDNUM=&quot;1033;&quot;&gt;434&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ph5 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Philipp Zabel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;433&quot; SDNUM=&quot;1033;&quot;&gt;433&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;leif &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;430&quot; SDNUM=&quot;1033;&quot;&gt;430&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;m750 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Marco Poletto &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;430&quot; SDNUM=&quot;1033;&quot;&gt;430&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ndi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;429&quot; SDNUM=&quot;1033;&quot;&gt;429&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;feri &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;426&quot; SDNUM=&quot;1033;&quot;&gt;426&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;martink &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;422&quot; SDNUM=&quot;1033;&quot;&gt;422&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nvyus &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;420&quot; SDNUM=&quot;1033;&quot;&gt;420&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;timoph &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Timo H├ñrk├Ânen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;419&quot; SDNUM=&quot;1033;&quot;&gt;419&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;yodude &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Yoyodyne &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;418&quot; SDNUM=&quot;1033;&quot;&gt;418&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jrocha &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Joaquim Rocha &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Igalia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;417&quot; SDNUM=&quot;1033;&quot;&gt;417&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tso &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;413&quot; SDNUM=&quot;1033;&quot;&gt;413&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;krk969 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;413&quot; SDNUM=&quot;1033;&quot;&gt;413&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;creamyg &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;lance colton &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;412&quot; SDNUM=&quot;1033;&quot;&gt;412&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;thedead1440 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;408&quot; SDNUM=&quot;1033;&quot;&gt;408&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;karam &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;karam baki &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;406&quot; SDNUM=&quot;1033;&quot;&gt;406&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;morphbr &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;404&quot; SDNUM=&quot;1033;&quot;&gt;404&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;atmasphere &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;404&quot; SDNUM=&quot;1033;&quot;&gt;404&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;venemo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Timur Krist├│f &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;400&quot; SDNUM=&quot;1033;&quot;&gt;400&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;hqh &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;400&quot; SDNUM=&quot;1033;&quot;&gt;400&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;kate &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Kate Alhola &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;396&quot; SDNUM=&quot;1033;&quot;&gt;396&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;bforsberg &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Bruce Forsberg &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;395&quot; SDNUM=&quot;1033;&quot;&gt;395&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nathanael &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;394&quot; SDNUM=&quot;1033;&quot;&gt;394&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;dwould &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;391&quot; SDNUM=&quot;1033;&quot;&gt;391&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mitrandir &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Ilya Skriblovsky &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;391&quot; SDNUM=&quot;1033;&quot;&gt;391&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mardy &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Alberto Mardegan &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;391&quot; SDNUM=&quot;1033;&quot;&gt;391&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;handful &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;388&quot; SDNUM=&quot;1033;&quot;&gt;388&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;marmistrz &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Marcin Mielniczuk &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;387&quot; SDNUM=&quot;1033;&quot;&gt;387&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;kenyoung &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Ken Young &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;386&quot; SDNUM=&quot;1033;&quot;&gt;386&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rambo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Eero af Heurlin &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;386&quot; SDNUM=&quot;1033;&quot;&gt;386&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;disq &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;385&quot; SDNUM=&quot;1033;&quot;&gt;385&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;lorelei &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;380&quot; SDNUM=&quot;1033;&quot;&gt;380&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;sampp &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Sampo Savola &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;370&quot; SDNUM=&quot;1033;&quot;&gt;370&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;sasler &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;368&quot; SDNUM=&quot;1033;&quot;&gt;368&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jlbrd &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;366&quot; SDNUM=&quot;1033;&quot;&gt;366&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;arcean &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;362&quot; SDNUM=&quot;1033;&quot;&gt;362&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;hopbeat &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;359&quot; SDNUM=&quot;1033;&quot;&gt;359&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;fgs &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Floriano Scioscia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;359&quot; SDNUM=&quot;1033;&quot;&gt;359&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;sixwheeledbeast &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;358&quot; SDNUM=&quot;1033;&quot;&gt;358&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;koos &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;357&quot; SDNUM=&quot;1033;&quot;&gt;357&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tor &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;357&quot; SDNUM=&quot;1033;&quot;&gt;357&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;antimirov &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Eugene Antimirov &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;AND Automotive Navigation Data &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;356&quot; SDNUM=&quot;1033;&quot;&gt;356&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;timeless &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;timeless - &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;356&quot; SDNUM=&quot;1033;&quot;&gt;356&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jolouis &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;355&quot; SDNUM=&quot;1033;&quot;&gt;355&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nido &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Alex Easter &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;355&quot; SDNUM=&quot;1033;&quot;&gt;355&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tuminoid &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Tuomo Tanskanen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nomovok Ltd &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;353&quot; SDNUM=&quot;1033;&quot;&gt;353&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;geraldko &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;352&quot; SDNUM=&quot;1033;&quot;&gt;352&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tahitibob35 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;David Hautbois &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Prologue &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;352&quot; SDNUM=&quot;1033;&quot;&gt;352&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;aries &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Arie Mark &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;348&quot; SDNUM=&quot;1033;&quot;&gt;348&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;caco3 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;345&quot; SDNUM=&quot;1033;&quot;&gt;345&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ejasmudar &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;343&quot; SDNUM=&quot;1033;&quot;&gt;343&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;andrei1089 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Andrei Mirestean &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;343&quot; SDNUM=&quot;1033;&quot;&gt;343&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;godofwar424 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;343&quot; SDNUM=&quot;1033;&quot;&gt;343&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;adek &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Arno Dekker &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;342&quot; SDNUM=&quot;1033;&quot;&gt;342&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;sachin007 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;338&quot; SDNUM=&quot;1033;&quot;&gt;338&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;truejournals &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Bobby Graese &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;338&quot; SDNUM=&quot;1033;&quot;&gt;338&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;maacruz &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;336&quot; SDNUM=&quot;1033;&quot;&gt;336&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;zchydem &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;335&quot; SDNUM=&quot;1033;&quot;&gt;335&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jaaksi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;333&quot; SDNUM=&quot;1033;&quot;&gt;333&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;laasonen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;332&quot; SDNUM=&quot;1033;&quot;&gt;332&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;robbiethe1st &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Rob Simpson &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;329&quot; SDNUM=&quot;1033;&quot;&gt;329&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;don_falcone &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;327&quot; SDNUM=&quot;1033;&quot;&gt;327&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;hhedberg &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;324&quot; SDNUM=&quot;1033;&quot;&gt;324&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;collin &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;323&quot; SDNUM=&quot;1033;&quot;&gt;323&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;idont &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Dennis Groenen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;321&quot; SDNUM=&quot;1033;&quot;&gt;321&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;williepre &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Willie Pretorius &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;319&quot; SDNUM=&quot;1033;&quot;&gt;319&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;hurrian &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;319&quot; SDNUM=&quot;1033;&quot;&gt;319&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;barisione &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Marco Barisione &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Collabora Ltd. &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;319&quot; SDNUM=&quot;1033;&quot;&gt;319&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;realsportcars &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Davide Aimone &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;319&quot; SDNUM=&quot;1033;&quot;&gt;319&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;christexaport &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;StreetzMart Media Group &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;315&quot; SDNUM=&quot;1033;&quot;&gt;315&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;zogg &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Misha K. &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;315&quot; SDNUM=&quot;1033;&quot;&gt;315&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;brontide &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Eric Warnke &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;313&quot; SDNUM=&quot;1033;&quot;&gt;313&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;evad &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Dawid Lorenz &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Tangent Labs &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;313&quot; SDNUM=&quot;1033;&quot;&gt;313&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;fnordianslip &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;313&quot; SDNUM=&quot;1033;&quot;&gt;313&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;subcore &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Claus Feichtinger &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;313&quot; SDNUM=&quot;1033;&quot;&gt;313&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;vern &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Ian Lawrence &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;312&quot; SDNUM=&quot;1033;&quot;&gt;312&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;dwaradzyn &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;310&quot; SDNUM=&quot;1033;&quot;&gt;310&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;zap &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;309&quot; SDNUM=&quot;1033;&quot;&gt;309&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;kibergus &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Guseynov Alexey &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;309&quot; SDNUM=&quot;1033;&quot;&gt;309&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ahynes1 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Aldon Hynes &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Orient Lodge &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;308&quot; SDNUM=&quot;1033;&quot;&gt;308&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jer006 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;308&quot; SDNUM=&quot;1033;&quot;&gt;308&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;monkeyiq &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;306&quot; SDNUM=&quot;1033;&quot;&gt;306&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mve &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Marko Vertainen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;303&quot; SDNUM=&quot;1033;&quot;&gt;303&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;zaheerm &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;303&quot; SDNUM=&quot;1033;&quot;&gt;303&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;wwp &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Tristan Chabredier &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;302&quot; SDNUM=&quot;1033;&quot;&gt;302&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;lizardo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Anderson Lizardo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;INdT &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;300&quot; SDNUM=&quot;1033;&quot;&gt;300&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ajalkane &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;300&quot; SDNUM=&quot;1033;&quot;&gt;300&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tak &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;300&quot; SDNUM=&quot;1033;&quot;&gt;300&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mrojas &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Mario Rojas &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;297&quot; SDNUM=&quot;1033;&quot;&gt;297&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;cpulvermacher &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;297&quot; SDNUM=&quot;1033;&quot;&gt;297&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;merlin1991 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Christian Ratzenhofer &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;296&quot; SDNUM=&quot;1033;&quot;&gt;296&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;donaggio &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Luca Donaggio &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;295&quot; SDNUM=&quot;1033;&quot;&gt;295&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;vivainio &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;293&quot; SDNUM=&quot;1033;&quot;&gt;293&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;webhamster &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;293&quot; SDNUM=&quot;1033;&quot;&gt;293&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;johnkzin &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;292&quot; SDNUM=&quot;1033;&quot;&gt;292&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;lemmyslender &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;291&quot; SDNUM=&quot;1033;&quot;&gt;291&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mmlado &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Mladen Milankovic &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;291&quot; SDNUM=&quot;1033;&quot;&gt;291&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;bonapart &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;roman deninberg &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;291&quot; SDNUM=&quot;1033;&quot;&gt;291&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;momcilo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;290&quot; SDNUM=&quot;1033;&quot;&gt;290&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;cddiede &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;290&quot; SDNUM=&quot;1033;&quot;&gt;290&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mr_pingu &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Karsten - &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;289&quot; SDNUM=&quot;1033;&quot;&gt;289&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;johnx &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;John Bloom &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;The Driver Training Group &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;287&quot; SDNUM=&quot;1033;&quot;&gt;287&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mrsellout &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;ritesh patel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;284&quot; SDNUM=&quot;1033;&quot;&gt;284&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;slocan &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Yves Marcoz &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;284&quot; SDNUM=&quot;1033;&quot;&gt;284&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;pupnik &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Arnim Sauerbier &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;283&quot; SDNUM=&quot;1033;&quot;&gt;283&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;cfh11 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;283&quot; SDNUM=&quot;1033;&quot;&gt;283&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;gionni88 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Giovanni Grammatico &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;283&quot; SDNUM=&quot;1033;&quot;&gt;283&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;reinob &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;282&quot; SDNUM=&quot;1033;&quot;&gt;282&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;oriolj &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;281&quot; SDNUM=&quot;1033;&quot;&gt;281&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ukki &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Janne M├ñkinen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;280&quot; SDNUM=&quot;1033;&quot;&gt;280&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;divan &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Ivan Daniluk &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;279&quot; SDNUM=&quot;1033;&quot;&gt;279&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;axique &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Christoph W├╝rstle &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;278&quot; SDNUM=&quot;1033;&quot;&gt;278&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tusinaniger &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Pasi Norolampi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;278&quot; SDNUM=&quot;1033;&quot;&gt;278&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;philipl &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;278&quot; SDNUM=&quot;1033;&quot;&gt;278&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;pantera1989 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;275&quot; SDNUM=&quot;1033;&quot;&gt;275&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;msameer &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Mohammed Hassan &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;274&quot; SDNUM=&quot;1033;&quot;&gt;274&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;erendorn &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;274&quot; SDNUM=&quot;1033;&quot;&gt;274&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;olivluca &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Luca Olivetti &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;273&quot; SDNUM=&quot;1033;&quot;&gt;273&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mike_morrison &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;mike morrison &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;273&quot; SDNUM=&quot;1033;&quot;&gt;273&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;crashanddie &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Sebastiaan Lauwers &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;272&quot; SDNUM=&quot;1033;&quot;&gt;272&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;stlpaul &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;271&quot; SDNUM=&quot;1033;&quot;&gt;271&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;serge &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;268&quot; SDNUM=&quot;1033;&quot;&gt;268&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;loki &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Massimo Mund &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;268&quot; SDNUM=&quot;1033;&quot;&gt;268&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rlinfati &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Rodrigo Linfati &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;268&quot; SDNUM=&quot;1033;&quot;&gt;268&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;aranelsurion &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Aranel Surion &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;266&quot; SDNUM=&quot;1033;&quot;&gt;266&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tz1 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;265&quot; SDNUM=&quot;1033;&quot;&gt;265&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;transtech &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;265&quot; SDNUM=&quot;1033;&quot;&gt;265&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;yablacky &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;265&quot; SDNUM=&quot;1033;&quot;&gt;265&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;dragly &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;265&quot; SDNUM=&quot;1033;&quot;&gt;265&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jku &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Jussi Kukkonen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Intel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;263&quot; SDNUM=&quot;1033;&quot;&gt;263&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jknutar &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Jan Knutar &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;263&quot; SDNUM=&quot;1033;&quot;&gt;263&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;steven676 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;262&quot; SDNUM=&quot;1033;&quot;&gt;262&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;szopin &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;261&quot; SDNUM=&quot;1033;&quot;&gt;261&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;beermad &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;261&quot; SDNUM=&quot;1033;&quot;&gt;261&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;abbra &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Alexander Bokovoy &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;261&quot; SDNUM=&quot;1033;&quot;&gt;261&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;silvermountain &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;260&quot; SDNUM=&quot;1033;&quot;&gt;260&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;gnuton &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;260&quot; SDNUM=&quot;1033;&quot;&gt;260&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;karoliina &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Karoliina Salminen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nokia Corporation &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;259&quot; SDNUM=&quot;1033;&quot;&gt;259&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nononoyes &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;259&quot; SDNUM=&quot;1033;&quot;&gt;259&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;misiak &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;259&quot; SDNUM=&quot;1033;&quot;&gt;259&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ifrade &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;259&quot; SDNUM=&quot;1033;&quot;&gt;259&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;somedude &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;259&quot; SDNUM=&quot;1033;&quot;&gt;259&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;javicq &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Javier Campo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;259&quot; SDNUM=&quot;1033;&quot;&gt;259&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;kaltsi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Juha Kallioinen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;258&quot; SDNUM=&quot;1033;&quot;&gt;258&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;eiffel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Roger Browne &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;258&quot; SDNUM=&quot;1033;&quot;&gt;258&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;aanckar &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Andreas Anckar &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;258&quot; SDNUM=&quot;1033;&quot;&gt;258&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;colinleroy &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Colin Leroy &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;257&quot; SDNUM=&quot;1033;&quot;&gt;257&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;marcell &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Marcell Lengyel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nokia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;257&quot; SDNUM=&quot;1033;&quot;&gt;257&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;misterc &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;257&quot; SDNUM=&quot;1033;&quot;&gt;257&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;matsavol &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Matti Savolainen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nokia Siemens Networks &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;254&quot; SDNUM=&quot;1033;&quot;&gt;254&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;edgar2 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;thomas p &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Oculex &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;253&quot; SDNUM=&quot;1033;&quot;&gt;253&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;kimitake &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Kimitake . &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;253&quot; SDNUM=&quot;1033;&quot;&gt;253&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;chelli &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;252&quot; SDNUM=&quot;1033;&quot;&gt;252&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;xan &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;252&quot; SDNUM=&quot;1033;&quot;&gt;252&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;buurmas &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Joel Buursma &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;251&quot; SDNUM=&quot;1033;&quot;&gt;251&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;codemonkey &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;250&quot; SDNUM=&quot;1033;&quot;&gt;250&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tthurman &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;249&quot; SDNUM=&quot;1033;&quot;&gt;249&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jpavelek &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Jakub Pavelek &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nokia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;249&quot; SDNUM=&quot;1033;&quot;&gt;249&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;kgronholm &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Kaj Gr├Ânholm &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;249&quot; SDNUM=&quot;1033;&quot;&gt;249&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tigert &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Tuomas Kuosmanen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nokia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;248&quot; SDNUM=&quot;1033;&quot;&gt;248&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;xomm &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Andy Pham &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;247&quot; SDNUM=&quot;1033;&quot;&gt;247&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;taixzo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;246&quot; SDNUM=&quot;1033;&quot;&gt;246&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;zwer &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Aleksandar Mancic &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;WhiteCity Soft &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;246&quot; SDNUM=&quot;1033;&quot;&gt;246&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tvogel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Tilman Vogel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;244&quot; SDNUM=&quot;1033;&quot;&gt;244&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nilchak &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nilanjan Chaks &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;242&quot; SDNUM=&quot;1033;&quot;&gt;242&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;itsnotabigtruck &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;239&quot; SDNUM=&quot;1033;&quot;&gt;239&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;parasight &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;239&quot; SDNUM=&quot;1033;&quot;&gt;239&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;firebird8 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Wilson Tang &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;237&quot; SDNUM=&quot;1033;&quot;&gt;237&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;aboaboit &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Andrea Borgia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;237&quot; SDNUM=&quot;1033;&quot;&gt;237&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rsperberg &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Roger Sperberg &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;236&quot; SDNUM=&quot;1033;&quot;&gt;236&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;renatofilho &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;236&quot; SDNUM=&quot;1033;&quot;&gt;236&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;emesem &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;M S &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;235&quot; SDNUM=&quot;1033;&quot;&gt;235&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;gazza_d &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;gary dawes &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;NHS &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;235&quot; SDNUM=&quot;1033;&quot;&gt;235&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mishas &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Mikhail Sobolev &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;234&quot; SDNUM=&quot;1033;&quot;&gt;234&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;speculatrix &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Paul M &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;232&quot; SDNUM=&quot;1033;&quot;&gt;232&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;kroll &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Dmitriy Chirva &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;232&quot; SDNUM=&quot;1033;&quot;&gt;232&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;schendstok &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Bernard Schendstok &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;231&quot; SDNUM=&quot;1033;&quot;&gt;231&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jayonthabeat &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;231&quot; SDNUM=&quot;1033;&quot;&gt;231&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nieldk &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;230&quot; SDNUM=&quot;1033;&quot;&gt;230&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;gabrielnava &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Gabriel Nava Vazquez &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;230&quot; SDNUM=&quot;1033;&quot;&gt;230&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;claesbas &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Claes Norin &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;229&quot; SDNUM=&quot;1033;&quot;&gt;229&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;torshind &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;229&quot; SDNUM=&quot;1033;&quot;&gt;229&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;peterleinchen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;229&quot; SDNUM=&quot;1033;&quot;&gt;229&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;meizirkki &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Roope Kuisma &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;229&quot; SDNUM=&quot;1033;&quot;&gt;229&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;scriptkiller &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;228&quot; SDNUM=&quot;1033;&quot;&gt;228&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;anthonie &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;227&quot; SDNUM=&quot;1033;&quot;&gt;227&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;lma &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;226&quot; SDNUM=&quot;1033;&quot;&gt;226&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;zerionseven &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;226&quot; SDNUM=&quot;1033;&quot;&gt;226&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;davyp &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Davy Preuveneers &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;225&quot; SDNUM=&quot;1033;&quot;&gt;225&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tonikitoo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;225&quot; SDNUM=&quot;1033;&quot;&gt;225&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tbergstr &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;225&quot; SDNUM=&quot;1033;&quot;&gt;225&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rzr &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;223&quot; SDNUM=&quot;1033;&quot;&gt;223&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;b-man &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;223&quot; SDNUM=&quot;1033;&quot;&gt;223&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mobiledivide &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;223&quot; SDNUM=&quot;1033;&quot;&gt;223&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jbenc &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;223&quot; SDNUM=&quot;1033;&quot;&gt;223&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tzsm98 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Oklahoma City Public Schools &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;223&quot; SDNUM=&quot;1033;&quot;&gt;223&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;matrim &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;222&quot; SDNUM=&quot;1033;&quot;&gt;222&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;cpscotti &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;222&quot; SDNUM=&quot;1033;&quot;&gt;222&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;davep1 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;222&quot; SDNUM=&quot;1033;&quot;&gt;222&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;miker &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Mike Rowehl &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;221&quot; SDNUM=&quot;1033;&quot;&gt;221&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;madman2k &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;220&quot; SDNUM=&quot;1033;&quot;&gt;220&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jaeezzy &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;220&quot; SDNUM=&quot;1033;&quot;&gt;220&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;discus-axel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Axel Pauli &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;219&quot; SDNUM=&quot;1033;&quot;&gt;219&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;detective &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Max Maher &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;219&quot; SDNUM=&quot;1033;&quot;&gt;219&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;calvin_42 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Aymeric Brisse &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;219&quot; SDNUM=&quot;1033;&quot;&gt;219&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;danielb &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Openismus GmbH &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;219&quot; SDNUM=&quot;1033;&quot;&gt;219&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jonni &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Jonni Rainisto &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nokia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;217&quot; SDNUM=&quot;1033;&quot;&gt;217&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;embedded &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;217&quot; SDNUM=&quot;1033;&quot;&gt;217&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jaem &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Jeffery MacEachern &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;216&quot; SDNUM=&quot;1033;&quot;&gt;216&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jlu &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Julius Luukko &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;216&quot; SDNUM=&quot;1033;&quot;&gt;216&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;kozzi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;215&quot; SDNUM=&quot;1033;&quot;&gt;215&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;lxp &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;David Gnedt &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;215&quot; SDNUM=&quot;1033;&quot;&gt;215&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;code177 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Jonathan Blake &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;215&quot; SDNUM=&quot;1033;&quot;&gt;215&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;vkvraju &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Kasi Viswanath &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;214&quot; SDNUM=&quot;1033;&quot;&gt;214&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;luiscesjr &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Luiz Mendonca &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;214&quot; SDNUM=&quot;1033;&quot;&gt;214&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;sakya &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;paolo iommarini &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;214&quot; SDNUM=&quot;1033;&quot;&gt;214&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;smegheadz &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;stephen reinhardt &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;212&quot; SDNUM=&quot;1033;&quot;&gt;212&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jsmanrique &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Manrique Lopez &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;ANDAGO &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;212&quot; SDNUM=&quot;1033;&quot;&gt;212&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;juise- &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Jussi Holm &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;212&quot; SDNUM=&quot;1033;&quot;&gt;212&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;joshuamaverick &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;211&quot; SDNUM=&quot;1033;&quot;&gt;211&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;cloud596 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;211&quot; SDNUM=&quot;1033;&quot;&gt;211&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tonymaro &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;211&quot; SDNUM=&quot;1033;&quot;&gt;211&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rm_you &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Adam Harwell &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;211&quot; SDNUM=&quot;1033;&quot;&gt;211&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;pamadio &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Pierre Amadio &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;211&quot; SDNUM=&quot;1033;&quot;&gt;211&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jsa &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;209&quot; SDNUM=&quot;1033;&quot;&gt;209&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;demolition &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;209&quot; SDNUM=&quot;1033;&quot;&gt;209&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;raul &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Raul Herbster &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Signove &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;209&quot; SDNUM=&quot;1033;&quot;&gt;209&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;avis &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;208&quot; SDNUM=&quot;1033;&quot;&gt;208&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;xur17 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;207&quot; SDNUM=&quot;1033;&quot;&gt;207&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;blubbi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Bjoern Olausson &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;204&quot; SDNUM=&quot;1033;&quot;&gt;204&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;bones &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;202&quot; SDNUM=&quot;1033;&quot;&gt;202&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tomppas &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;201&quot; SDNUM=&quot;1033;&quot;&gt;201&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tanya &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;201&quot; SDNUM=&quot;1033;&quot;&gt;201&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ovk &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Otto-Ville Kaukoniemi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;201&quot; SDNUM=&quot;1033;&quot;&gt;201&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;pronkko &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;199&quot; SDNUM=&quot;1033;&quot;&gt;199&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jasuarez &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;198&quot; SDNUM=&quot;1033;&quot;&gt;198&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;firstfan &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;198&quot; SDNUM=&quot;1033;&quot;&gt;198&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;damagedspline &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;196&quot; SDNUM=&quot;1033;&quot;&gt;196&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mikhmv &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;196&quot; SDNUM=&quot;1033;&quot;&gt;196&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ciroip &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;196&quot; SDNUM=&quot;1033;&quot;&gt;196&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;globster &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;196&quot; SDNUM=&quot;1033;&quot;&gt;196&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;chri_ke &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Kenneth Rohde Christiansen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nokia Technology Institute, INdT &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;194&quot; SDNUM=&quot;1033;&quot;&gt;194&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;lostinmirkwood &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Kristopher Kantor &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;194&quot; SDNUM=&quot;1033;&quot;&gt;194&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tim_edmonds &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;194&quot; SDNUM=&quot;1033;&quot;&gt;194&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rickcull &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Rick Cull &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;193&quot; SDNUM=&quot;1033;&quot;&gt;193&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jackburton &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Brandon Saxe &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;192&quot; SDNUM=&quot;1033;&quot;&gt;192&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;m2cm2c &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;191&quot; SDNUM=&quot;1033;&quot;&gt;191&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;terrencegf &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;191&quot; SDNUM=&quot;1033;&quot;&gt;191&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;suihkulokki &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;190&quot; SDNUM=&quot;1033;&quot;&gt;190&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;toja92 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Tobias Jansson &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;190&quot; SDNUM=&quot;1033;&quot;&gt;190&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;joorin &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Peter Flystam &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;190&quot; SDNUM=&quot;1033;&quot;&gt;190&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rickybrent &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Ricky Brent &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;190&quot; SDNUM=&quot;1033;&quot;&gt;190&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;itkach &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;189&quot; SDNUM=&quot;1033;&quot;&gt;189&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;cashclientel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Cash Clientel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;189&quot; SDNUM=&quot;1033;&quot;&gt;189&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;labaudio &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;188&quot; SDNUM=&quot;1033;&quot;&gt;188&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;thesandlord &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;188&quot; SDNUM=&quot;1033;&quot;&gt;188&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;r-r &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;188&quot; SDNUM=&quot;1033;&quot;&gt;188&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;marrat &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;187&quot; SDNUM=&quot;1033;&quot;&gt;187&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;josh &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Josh Triplett &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;186&quot; SDNUM=&quot;1033;&quot;&gt;186&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tomj &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;186&quot; SDNUM=&quot;1033;&quot;&gt;186&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ivyking &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;186&quot; SDNUM=&quot;1033;&quot;&gt;186&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mullf &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;185&quot; SDNUM=&quot;1033;&quot;&gt;185&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;iancumihai &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;mihai iancu &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;185&quot; SDNUM=&quot;1033;&quot;&gt;185&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;klinglerware &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;185&quot; SDNUM=&quot;1033;&quot;&gt;185&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;matija &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Matija Simeunovic &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;184&quot; SDNUM=&quot;1033;&quot;&gt;184&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;sbir &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Alexander R. &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;184&quot; SDNUM=&quot;1033;&quot;&gt;184&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jkq &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;184&quot; SDNUM=&quot;1033;&quot;&gt;184&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;manuel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;184&quot; SDNUM=&quot;1033;&quot;&gt;184&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;matt &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;184&quot; SDNUM=&quot;1033;&quot;&gt;184&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;qnetman &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Anatoliy Kozlov &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;183&quot; SDNUM=&quot;1033;&quot;&gt;183&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ihmis-suski &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Susanna Huhtanen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;183&quot; SDNUM=&quot;1033;&quot;&gt;183&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;igagis &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Ivan Gagis &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;182&quot; SDNUM=&quot;1033;&quot;&gt;182&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;craftyguy &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Clayton Craft &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;182&quot; SDNUM=&quot;1033;&quot;&gt;182&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;kolos &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;182&quot; SDNUM=&quot;1033;&quot;&gt;182&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;igor_stoppa &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Igor Stoppa &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;181&quot; SDNUM=&quot;1033;&quot;&gt;181&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;harick &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Harick Shurdaer &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;181&quot; SDNUM=&quot;1033;&quot;&gt;181&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;arnims &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;181&quot; SDNUM=&quot;1033;&quot;&gt;181&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rebhana &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;181&quot; SDNUM=&quot;1033;&quot;&gt;181&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;alexatkinuk &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;181&quot; SDNUM=&quot;1033;&quot;&gt;181&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;pav &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;180&quot; SDNUM=&quot;1033;&quot;&gt;180&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;vre &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;180&quot; SDNUM=&quot;1033;&quot;&gt;180&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;srn &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;180&quot; SDNUM=&quot;1033;&quot;&gt;180&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;wdehoog &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;180&quot; SDNUM=&quot;1033;&quot;&gt;180&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;traysh &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;179&quot; SDNUM=&quot;1033;&quot;&gt;179&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;trevarthan &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Jesse Guardiani &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;179&quot; SDNUM=&quot;1033;&quot;&gt;179&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;petur &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Peter D'Hoye &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;179&quot; SDNUM=&quot;1033;&quot;&gt;179&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ciron810 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;178&quot; SDNUM=&quot;1033;&quot;&gt;178&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jott &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;178&quot; SDNUM=&quot;1033;&quot;&gt;178&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;fieldofcows &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;178&quot; SDNUM=&quot;1033;&quot;&gt;178&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rotoflex &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;William Hooper &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;178&quot; SDNUM=&quot;1033;&quot;&gt;178&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;anapospastos &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Theofilos Hatziaristeras &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;178&quot; SDNUM=&quot;1033;&quot;&gt;178&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mr_jrt &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;177&quot; SDNUM=&quot;1033;&quot;&gt;177&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;karstenb &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;177&quot; SDNUM=&quot;1033;&quot;&gt;177&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;vinc17 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Vincent Lef├¿vre &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;176&quot; SDNUM=&quot;1033;&quot;&gt;176&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;amh &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;176&quot; SDNUM=&quot;1033;&quot;&gt;176&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;peterschneider &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Peter Schneider &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nokia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;175&quot; SDNUM=&quot;1033;&quot;&gt;175&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;marciom &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;175&quot; SDNUM=&quot;1033;&quot;&gt;175&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;gri &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Christoph Keller &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;175&quot; SDNUM=&quot;1033;&quot;&gt;175&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mvo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Marius Vollmer &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;174&quot; SDNUM=&quot;1033;&quot;&gt;174&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;maddler &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;William Maddler &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;173&quot; SDNUM=&quot;1033;&quot;&gt;173&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;varunkrish &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;173&quot; SDNUM=&quot;1033;&quot;&gt;173&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;fragos &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;173&quot; SDNUM=&quot;1033;&quot;&gt;173&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;vetsin &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Mark San Gabriel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;172&quot; SDNUM=&quot;1033;&quot;&gt;172&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;romaxa_xz &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;172&quot; SDNUM=&quot;1033;&quot;&gt;172&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;puelocesar &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Paulo Cesar &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;172&quot; SDNUM=&quot;1033;&quot;&gt;172&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;neal &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Neal Walfield &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;171&quot; SDNUM=&quot;1033;&quot;&gt;171&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;plastun &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Max Usachev &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;171&quot; SDNUM=&quot;1033;&quot;&gt;171&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;klausr &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Klaus Rotter &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;171&quot; SDNUM=&quot;1033;&quot;&gt;171&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jurop88 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;171&quot; SDNUM=&quot;1033;&quot;&gt;171&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;inidrog &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;171&quot; SDNUM=&quot;1033;&quot;&gt;171&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;antman8969 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;170&quot; SDNUM=&quot;1033;&quot;&gt;170&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;melunko &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;170&quot; SDNUM=&quot;1033;&quot;&gt;170&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;smarsh &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Steve Marsh &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Communications Research Centre &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;170&quot; SDNUM=&quot;1033;&quot;&gt;170&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;kevloral &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Jos├® Manuel Arnesto &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Telvent &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;170&quot; SDNUM=&quot;1033;&quot;&gt;170&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ivanzorkic &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;169&quot; SDNUM=&quot;1033;&quot;&gt;169&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mbo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Martin Borho &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;169&quot; SDNUM=&quot;1033;&quot;&gt;169&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;guaka &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;168&quot; SDNUM=&quot;1033;&quot;&gt;168&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ruskie &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Andra┼¥ Levstik &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;168&quot; SDNUM=&quot;1033;&quot;&gt;168&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;fw190 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;168&quot; SDNUM=&quot;1033;&quot;&gt;168&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;v6sa &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Lauri V├Ásandi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Estonian IT College &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;165&quot; SDNUM=&quot;1033;&quot;&gt;165&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mthmob &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;165&quot; SDNUM=&quot;1033;&quot;&gt;165&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jandmdickerson &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;165&quot; SDNUM=&quot;1033;&quot;&gt;165&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;cthx &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;CtHx ð¬ &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;164&quot; SDNUM=&quot;1033;&quot;&gt;164&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nnod &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Donn Morrison &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;University of Geneva &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;164&quot; SDNUM=&quot;1033;&quot;&gt;164&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;homac &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Holger Macht &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;164&quot; SDNUM=&quot;1033;&quot;&gt;164&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;shashurup &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;164&quot; SDNUM=&quot;1033;&quot;&gt;164&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;keesj &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Kees Jongenburger &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;164&quot; SDNUM=&quot;1033;&quot;&gt;164&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;bijjal &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Soumya Bijjal &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;164&quot; SDNUM=&quot;1033;&quot;&gt;164&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jtukkine &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Juha Tukkinen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nokia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;163&quot; SDNUM=&quot;1033;&quot;&gt;163&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;slvr32 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;163&quot; SDNUM=&quot;1033;&quot;&gt;163&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nwerneck &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;162&quot; SDNUM=&quot;1033;&quot;&gt;162&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jacktanner &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;162&quot; SDNUM=&quot;1033;&quot;&gt;162&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;msoini &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Palmu Inc &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;162&quot; SDNUM=&quot;1033;&quot;&gt;162&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jakunnar &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;162&quot; SDNUM=&quot;1033;&quot;&gt;162&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nakkebar &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Eero Tamminen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;161&quot; SDNUM=&quot;1033;&quot;&gt;161&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jessi3k3 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;161&quot; SDNUM=&quot;1033;&quot;&gt;161&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;snatcher &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;161&quot; SDNUM=&quot;1033;&quot;&gt;161&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mr_id &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Dru Moore &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;160&quot; SDNUM=&quot;1033;&quot;&gt;160&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;casketizer &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Casket Crew &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;self &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;160&quot; SDNUM=&quot;1033;&quot;&gt;160&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;d0b3rm4n &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;159&quot; SDNUM=&quot;1033;&quot;&gt;159&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ywwg &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Owen Williams &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;159&quot; SDNUM=&quot;1033;&quot;&gt;159&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;dkwatts &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;dk watts &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;159&quot; SDNUM=&quot;1033;&quot;&gt;159&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;digitalvoid &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;159&quot; SDNUM=&quot;1033;&quot;&gt;159&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jait &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;159&quot; SDNUM=&quot;1033;&quot;&gt;159&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mik546 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;159&quot; SDNUM=&quot;1033;&quot;&gt;159&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;helex &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Michael Muth &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;158&quot; SDNUM=&quot;1033;&quot;&gt;158&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;helihyv &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Heli Hyv├ñttinen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;158&quot; SDNUM=&quot;1033;&quot;&gt;158&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;djcb &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Dirk-Jan Binnema &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;158&quot; SDNUM=&quot;1033;&quot;&gt;158&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;n820ftw &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;AG Sopwith &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;157&quot; SDNUM=&quot;1033;&quot;&gt;157&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;slobodsky &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nick Slobodsky &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;157&quot; SDNUM=&quot;1033;&quot;&gt;157&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;csaavedra &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Claudio Saavedra &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Igalia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;157&quot; SDNUM=&quot;1033;&quot;&gt;157&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;svillar &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;156&quot; SDNUM=&quot;1033;&quot;&gt;156&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;chrisp7 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;156&quot; SDNUM=&quot;1033;&quot;&gt;156&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;inz &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Santtu Lakkala &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nomovok &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;156&quot; SDNUM=&quot;1033;&quot;&gt;156&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;range &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Ralph Angenendt &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;156&quot; SDNUM=&quot;1033;&quot;&gt;156&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;dotblank &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;155&quot; SDNUM=&quot;1033;&quot;&gt;155&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nikosapi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;155&quot; SDNUM=&quot;1033;&quot;&gt;155&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;shin &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;155&quot; SDNUM=&quot;1033;&quot;&gt;155&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;gusse &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;155&quot; SDNUM=&quot;1033;&quot;&gt;155&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;bge &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;155&quot; SDNUM=&quot;1033;&quot;&gt;155&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;boxofsnoo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;154&quot; SDNUM=&quot;1033;&quot;&gt;154&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;setanta &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;154&quot; SDNUM=&quot;1033;&quot;&gt;154&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;blessn900 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;154&quot; SDNUM=&quot;1033;&quot;&gt;154&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;x-lette &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;154&quot; SDNUM=&quot;1033;&quot;&gt;154&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tmarki &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;153&quot; SDNUM=&quot;1033;&quot;&gt;153&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;lm2 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;153&quot; SDNUM=&quot;1033;&quot;&gt;153&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;deadmalc &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;153&quot; SDNUM=&quot;1033;&quot;&gt;153&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;technut &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;152&quot; SDNUM=&quot;1033;&quot;&gt;152&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;calvaris &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;151&quot; SDNUM=&quot;1033;&quot;&gt;151&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nymajoak &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;151&quot; SDNUM=&quot;1033;&quot;&gt;151&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;seadog &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Giorgos Logiotatidis &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;151&quot; SDNUM=&quot;1033;&quot;&gt;151&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;techie &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;151&quot; SDNUM=&quot;1033;&quot;&gt;151&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;topet2k12001 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;151&quot; SDNUM=&quot;1033;&quot;&gt;151&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mjn &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;150&quot; SDNUM=&quot;1033;&quot;&gt;150&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mase &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;150&quot; SDNUM=&quot;1033;&quot;&gt;150&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;harryf &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Harald Fernengel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nokia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;150&quot; SDNUM=&quot;1033;&quot;&gt;150&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mikal &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;149&quot; SDNUM=&quot;1033;&quot;&gt;149&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;munky261 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;149&quot; SDNUM=&quot;1033;&quot;&gt;149&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;detlef &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;148&quot; SDNUM=&quot;1033;&quot;&gt;148&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;japieb &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Jaap Braam &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;148&quot; SDNUM=&quot;1033;&quot;&gt;148&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;newca12 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;147&quot; SDNUM=&quot;1033;&quot;&gt;147&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;spenap &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Sim├│n Pena Placer &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;147&quot; SDNUM=&quot;1033;&quot;&gt;147&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;munozferna &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Fernando Mu├▒oz &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;147&quot; SDNUM=&quot;1033;&quot;&gt;147&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;lapa &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;147&quot; SDNUM=&quot;1033;&quot;&gt;147&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;cas07 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;147&quot; SDNUM=&quot;1033;&quot;&gt;147&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;corwin &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;147&quot; SDNUM=&quot;1033;&quot;&gt;147&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mooninite &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Michael Cronenworth &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;146&quot; SDNUM=&quot;1033;&quot;&gt;146&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;pillar &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;145&quot; SDNUM=&quot;1033;&quot;&gt;145&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;hasselmm &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Mathias Hasselmann &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Openismus &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;145&quot; SDNUM=&quot;1033;&quot;&gt;145&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;trx &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;145&quot; SDNUM=&quot;1033;&quot;&gt;145&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nhanquy &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;144&quot; SDNUM=&quot;1033;&quot;&gt;144&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;coldfusion &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;144&quot; SDNUM=&quot;1033;&quot;&gt;144&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;edgedemon &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;143&quot; SDNUM=&quot;1033;&quot;&gt;143&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;holgern &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Holger Nahrstaedt &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;142&quot; SDNUM=&quot;1033;&quot;&gt;142&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;andree &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Andrej Krutak &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;142&quot; SDNUM=&quot;1033;&quot;&gt;142&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;onutz &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Onutz Buruga &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;utestme.com &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;141&quot; SDNUM=&quot;1033;&quot;&gt;141&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;josefdk &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Josef Assad &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;141&quot; SDNUM=&quot;1033;&quot;&gt;141&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;corsac &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;140&quot; SDNUM=&quot;1033;&quot;&gt;140&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;danilo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Danilo Cesar Lemes de Paula &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;140&quot; SDNUM=&quot;1033;&quot;&gt;140&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;larux &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;140&quot; SDNUM=&quot;1033;&quot;&gt;140&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;claudius &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Claudius Henrichs &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;140&quot; SDNUM=&quot;1033;&quot;&gt;140&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;hogwash &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Hogwash . &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;140&quot; SDNUM=&quot;1033;&quot;&gt;140&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;alan_peery &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;139&quot; SDNUM=&quot;1033;&quot;&gt;139&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;dannym &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;139&quot; SDNUM=&quot;1033;&quot;&gt;139&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jdapena &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Jos├® Dapena Paz &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;139&quot; SDNUM=&quot;1033;&quot;&gt;139&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;fbergeron &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Frederic Bergeron &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;139&quot; SDNUM=&quot;1033;&quot;&gt;139&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;eocanha &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Enrique Oca├▒a Gonz├ílez &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;138&quot; SDNUM=&quot;1033;&quot;&gt;138&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rabbitrun84 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Miaoqing Tan &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nokia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;137&quot; SDNUM=&quot;1033;&quot;&gt;137&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;kup &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Peter Kupietz &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;137&quot; SDNUM=&quot;1033;&quot;&gt;137&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;chilitechno &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Chris Burris &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Chili Technologies LLC &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;137&quot; SDNUM=&quot;1033;&quot;&gt;137&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;marieke &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Marieke Streefkerk &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Fronteer Strategy &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;136&quot; SDNUM=&quot;1033;&quot;&gt;136&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mikhail_ramalho &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;136&quot; SDNUM=&quot;1033;&quot;&gt;136&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;lmoura &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Lauro Moura &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Instituto Nokia de Tecnologia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;136&quot; SDNUM=&quot;1033;&quot;&gt;136&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mountainx &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;136&quot; SDNUM=&quot;1033;&quot;&gt;136&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;pepitoe &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;136&quot; SDNUM=&quot;1033;&quot;&gt;136&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;xmob &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Pete Foster &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;136&quot; SDNUM=&quot;1033;&quot;&gt;136&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;richie &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;136&quot; SDNUM=&quot;1033;&quot;&gt;136&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;navsin &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;navneet singh &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;135&quot; SDNUM=&quot;1033;&quot;&gt;135&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rdorsch &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;135&quot; SDNUM=&quot;1033;&quot;&gt;135&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;pierlux &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Pierre-Luc Beaudoin &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Novopia &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;135&quot; SDNUM=&quot;1033;&quot;&gt;135&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;bruno_araujo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;135&quot; SDNUM=&quot;1033;&quot;&gt;135&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;almehdi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;134&quot; SDNUM=&quot;1033;&quot;&gt;134&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;megabyte405 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Ryan Pavlik &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;134&quot; SDNUM=&quot;1033;&quot;&gt;134&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;lancewex &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;132&quot; SDNUM=&quot;1033;&quot;&gt;132&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;alephito &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;132&quot; SDNUM=&quot;1033;&quot;&gt;132&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;kunal_the_one &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;132&quot; SDNUM=&quot;1033;&quot;&gt;132&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;sid21 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;132&quot; SDNUM=&quot;1033;&quot;&gt;132&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;bunansonli &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;132&quot; SDNUM=&quot;1033;&quot;&gt;132&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;pincushionqueen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;131&quot; SDNUM=&quot;1033;&quot;&gt;131&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;lemody &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;131&quot; SDNUM=&quot;1033;&quot;&gt;131&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tpaixao &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;131&quot; SDNUM=&quot;1033;&quot;&gt;131&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;luogni &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Luca Ognibene &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;131&quot; SDNUM=&quot;1033;&quot;&gt;131&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;svlasov &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Sergey Vlasov &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;130&quot; SDNUM=&quot;1033;&quot;&gt;130&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mmurfin87 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;130&quot; SDNUM=&quot;1033;&quot;&gt;130&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;gryedouge &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;129&quot; SDNUM=&quot;1033;&quot;&gt;129&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jonnylamb &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;129&quot; SDNUM=&quot;1033;&quot;&gt;129&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;humanpenguin &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;129&quot; SDNUM=&quot;1033;&quot;&gt;129&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;snoshrk &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;129&quot; SDNUM=&quot;1033;&quot;&gt;129&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mwiktowy &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Michael Wiktowy &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;128&quot; SDNUM=&quot;1033;&quot;&gt;128&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;bdogg64 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;128&quot; SDNUM=&quot;1033;&quot;&gt;128&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;solarion &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Joseph Pingenot &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;128&quot; SDNUM=&quot;1033;&quot;&gt;128&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;baksiidaa &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Matt Turner &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;127&quot; SDNUM=&quot;1033;&quot;&gt;127&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mehdi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Mehdi El Gueddari &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;127&quot; SDNUM=&quot;1033;&quot;&gt;127&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;brucel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;126&quot; SDNUM=&quot;1033;&quot;&gt;126&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;theflew &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;126&quot; SDNUM=&quot;1033;&quot;&gt;126&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;briand &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;126&quot; SDNUM=&quot;1033;&quot;&gt;126&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;norayr &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Norayr Chilingaryan &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;126&quot; SDNUM=&quot;1033;&quot;&gt;126&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;osemutech &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;125&quot; SDNUM=&quot;1033;&quot;&gt;125&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;hns &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Hannes Wallnoefer &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;125&quot; SDNUM=&quot;1033;&quot;&gt;125&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;raulherbster &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Raul Fernandes Herbster &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;125&quot; SDNUM=&quot;1033;&quot;&gt;125&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;maddogg &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Stefano Badoino &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;125&quot; SDNUM=&quot;1033;&quot;&gt;125&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jtorra &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Josep Torra &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;124&quot; SDNUM=&quot;1033;&quot;&gt;124&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rip &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;124&quot; SDNUM=&quot;1033;&quot;&gt;124&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;lfelipe &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;124&quot; SDNUM=&quot;1033;&quot;&gt;124&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;dmj726 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;124&quot; SDNUM=&quot;1033;&quot;&gt;124&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;earthwings &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Dennis Nienh├╝ser &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;123&quot; SDNUM=&quot;1033;&quot;&gt;123&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;icebox &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;123&quot; SDNUM=&quot;1033;&quot;&gt;123&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;sadfist &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Alex Beck &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;123&quot; SDNUM=&quot;1033;&quot;&gt;123&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;bigbrovar &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;123&quot; SDNUM=&quot;1033;&quot;&gt;123&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jaark &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Dave Sexton &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;122&quot; SDNUM=&quot;1033;&quot;&gt;122&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;emjayes &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;122&quot; SDNUM=&quot;1033;&quot;&gt;122&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;shinghei &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;122&quot; SDNUM=&quot;1033;&quot;&gt;122&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mdk &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;New Wild &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;122&quot; SDNUM=&quot;1033;&quot;&gt;122&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;yabbas &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;122&quot; SDNUM=&quot;1033;&quot;&gt;122&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;microphobic &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;121&quot; SDNUM=&quot;1033;&quot;&gt;121&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;leandro &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Leandro Sales &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;121&quot; SDNUM=&quot;1033;&quot;&gt;121&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;gemniii42 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;121&quot; SDNUM=&quot;1033;&quot;&gt;121&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;momchil &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;121&quot; SDNUM=&quot;1033;&quot;&gt;121&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;pavel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;121&quot; SDNUM=&quot;1033;&quot;&gt;121&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;shep &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Stephen Lacey &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;120&quot; SDNUM=&quot;1033;&quot;&gt;120&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;direx &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Daniel Klaffenbach &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;120&quot; SDNUM=&quot;1033;&quot;&gt;120&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jfk &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;120&quot; SDNUM=&quot;1033;&quot;&gt;120&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rapante &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;120&quot; SDNUM=&quot;1033;&quot;&gt;120&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;kvalo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Kalle Valo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;119&quot; SDNUM=&quot;1033;&quot;&gt;119&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jyro &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;119&quot; SDNUM=&quot;1033;&quot;&gt;119&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;alevinsn &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;119&quot; SDNUM=&quot;1033;&quot;&gt;119&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;davdav &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;david harvey &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;119&quot; SDNUM=&quot;1033;&quot;&gt;119&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;convulted &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;118&quot; SDNUM=&quot;1033;&quot;&gt;118&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mohi2k7 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;muhibur rahman &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;UNSC marine corp &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;118&quot; SDNUM=&quot;1033;&quot;&gt;118&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;floffe &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;118&quot; SDNUM=&quot;1033;&quot;&gt;118&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;amandalam &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;118&quot; SDNUM=&quot;1033;&quot;&gt;118&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nikolajhendel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Nikolaj Hendel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;118&quot; SDNUM=&quot;1033;&quot;&gt;118&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;myname24 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Maurice Fakhry &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;118&quot; SDNUM=&quot;1033;&quot;&gt;118&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;unique311 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;117&quot; SDNUM=&quot;1033;&quot;&gt;117&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;neatojones &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;117&quot; SDNUM=&quot;1033;&quot;&gt;117&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;magomez &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;117&quot; SDNUM=&quot;1033;&quot;&gt;117&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;joenix &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;116&quot; SDNUM=&quot;1033;&quot;&gt;116&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;terminal3 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;116&quot; SDNUM=&quot;1033;&quot;&gt;116&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;thopiekar &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;116&quot; SDNUM=&quot;1033;&quot;&gt;116&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;vlg &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Vladislav Grinchenko &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;3rdShift Software, Inc. &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;116&quot; SDNUM=&quot;1033;&quot;&gt;116&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;simon &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;116&quot; SDNUM=&quot;1033;&quot;&gt;116&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;juhar &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Juha R├Ânkk├Â &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;115&quot; SDNUM=&quot;1033;&quot;&gt;115&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;glauber &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;115&quot; SDNUM=&quot;1033;&quot;&gt;115&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;anunakin &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Marcus Fazzi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;115&quot; SDNUM=&quot;1033;&quot;&gt;115&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;skatebiker &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;115&quot; SDNUM=&quot;1033;&quot;&gt;115&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;locusf &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;114&quot; SDNUM=&quot;1033;&quot;&gt;114&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nite_man &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;114&quot; SDNUM=&quot;1033;&quot;&gt;114&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;feurigel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Andre Musiol &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;114&quot; SDNUM=&quot;1033;&quot;&gt;114&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mones &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;114&quot; SDNUM=&quot;1033;&quot;&gt;114&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;claws &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;114&quot; SDNUM=&quot;1033;&quot;&gt;114&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;sim6 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;114&quot; SDNUM=&quot;1033;&quot;&gt;114&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;viqsi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;113&quot; SDNUM=&quot;1033;&quot;&gt;113&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;oxpo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;113&quot; SDNUM=&quot;1033;&quot;&gt;113&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;hardaker &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Wes Hardaker &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;113&quot; SDNUM=&quot;1033;&quot;&gt;113&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tony2001 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Antony Dovgal &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;113&quot; SDNUM=&quot;1033;&quot;&gt;113&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;phi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;113&quot; SDNUM=&quot;1033;&quot;&gt;113&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;yann_b &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;113&quot; SDNUM=&quot;1033;&quot;&gt;113&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;too &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;112&quot; SDNUM=&quot;1033;&quot;&gt;112&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;pancake &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;112&quot; SDNUM=&quot;1033;&quot;&gt;112&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jonquark &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;112&quot; SDNUM=&quot;1033;&quot;&gt;112&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;renegadefanboy &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Renegade Fanboy &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;112&quot; SDNUM=&quot;1033;&quot;&gt;112&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;delaroca &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;112&quot; SDNUM=&quot;1033;&quot;&gt;112&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;aratorn &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Charles Cl├®ment &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;112&quot; SDNUM=&quot;1033;&quot;&gt;112&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mrp &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;112&quot; SDNUM=&quot;1033;&quot;&gt;112&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;vivijim &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;111&quot; SDNUM=&quot;1033;&quot;&gt;111&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;elleo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Michael Sheldon &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;111&quot; SDNUM=&quot;1033;&quot;&gt;111&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;dschmicker &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;111&quot; SDNUM=&quot;1033;&quot;&gt;111&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;vjaquez &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;111&quot; SDNUM=&quot;1033;&quot;&gt;111&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;microe &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;111&quot; SDNUM=&quot;1033;&quot;&gt;111&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;soeiro &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;110&quot; SDNUM=&quot;1033;&quot;&gt;110&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;generationally &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;110&quot; SDNUM=&quot;1033;&quot;&gt;110&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;sho &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Eike Hein &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;110&quot; SDNUM=&quot;1033;&quot;&gt;110&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;almamo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Marco Geiger &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;110&quot; SDNUM=&quot;1033;&quot;&gt;110&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;thecursedfly &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Cursed Fly &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;110&quot; SDNUM=&quot;1033;&quot;&gt;110&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;slarti &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;109&quot; SDNUM=&quot;1033;&quot;&gt;109&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;hartti &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;109&quot; SDNUM=&quot;1033;&quot;&gt;109&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nicolamfb &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;109&quot; SDNUM=&quot;1033;&quot;&gt;109&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;cipper &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;109&quot; SDNUM=&quot;1033;&quot;&gt;109&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;zgold550 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Zachary Goldberg &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;University of Pennsylvania &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;109&quot; SDNUM=&quot;1033;&quot;&gt;109&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jcharpak &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;109&quot; SDNUM=&quot;1033;&quot;&gt;109&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ttt &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Tuukka Turunen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Digia Plc &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;108&quot; SDNUM=&quot;1033;&quot;&gt;108&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jperez2008 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;108&quot; SDNUM=&quot;1033;&quot;&gt;108&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;nux &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;108&quot; SDNUM=&quot;1033;&quot;&gt;108&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;raimu &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Rami Markus Maunula &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;108&quot; SDNUM=&quot;1033;&quot;&gt;108&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;architengi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Art Gi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;108&quot; SDNUM=&quot;1033;&quot;&gt;108&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;magick777 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;108&quot; SDNUM=&quot;1033;&quot;&gt;108&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;masterzap &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Zap Andesson &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;108&quot; SDNUM=&quot;1033;&quot;&gt;108&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;zulla &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;107&quot; SDNUM=&quot;1033;&quot;&gt;107&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;willem_liu &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;107&quot; SDNUM=&quot;1033;&quot;&gt;107&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;wolfg1969 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;107&quot; SDNUM=&quot;1033;&quot;&gt;107&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;dantonic &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;107&quot; SDNUM=&quot;1033;&quot;&gt;107&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jpietrzak8 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;106&quot; SDNUM=&quot;1033;&quot;&gt;106&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;smancke &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Sebastian Mancke &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;106&quot; SDNUM=&quot;1033;&quot;&gt;106&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;sandybeach &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;106&quot; SDNUM=&quot;1033;&quot;&gt;106&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;underscore &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;105&quot; SDNUM=&quot;1033;&quot;&gt;105&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;harri &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;105&quot; SDNUM=&quot;1033;&quot;&gt;105&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;spartan563 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Benjamin Pannell &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;105&quot; SDNUM=&quot;1033;&quot;&gt;105&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;andy1210 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;105&quot; SDNUM=&quot;1033;&quot;&gt;105&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mikel &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;105&quot; SDNUM=&quot;1033;&quot;&gt;105&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;alban &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;105&quot; SDNUM=&quot;1033;&quot;&gt;105&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;hox &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;105&quot; SDNUM=&quot;1033;&quot;&gt;105&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;fredrik_wendt &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Fredrik Wendt &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Iptor Konsult AB &lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;104&quot; SDNUM=&quot;1033;&quot;&gt;104&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;trollo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;104&quot; SDNUM=&quot;1033;&quot;&gt;104&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jperez2009 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;104&quot; SDNUM=&quot;1033;&quot;&gt;104&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;vabgeo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;104&quot; SDNUM=&quot;1033;&quot;&gt;104&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;funkmunk &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Ashley Fernandes &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;104&quot; SDNUM=&quot;1033;&quot;&gt;104&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;rbrewer123 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;104&quot; SDNUM=&quot;1033;&quot;&gt;104&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;duncan &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;104&quot; SDNUM=&quot;1033;&quot;&gt;104&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;antoarts &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;104&quot; SDNUM=&quot;1033;&quot;&gt;104&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;henkka &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Henri W. &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;103&quot; SDNUM=&quot;1033;&quot;&gt;103&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;etalvala &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;103&quot; SDNUM=&quot;1033;&quot;&gt;103&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;thearsonist &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;103&quot; SDNUM=&quot;1033;&quot;&gt;103&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;moonshine &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;103&quot; SDNUM=&quot;1033;&quot;&gt;103&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;werewolf &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;103&quot; SDNUM=&quot;1033;&quot;&gt;103&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;kotczarny &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;103&quot; SDNUM=&quot;1033;&quot;&gt;103&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mtron &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;103&quot; SDNUM=&quot;1033;&quot;&gt;103&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;faz &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Faz Z &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;102&quot; SDNUM=&quot;1033;&quot;&gt;102&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;biatch0 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;102&quot; SDNUM=&quot;1033;&quot;&gt;102&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;tvijlbrief &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;102&quot; SDNUM=&quot;1033;&quot;&gt;102&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;scudderfish &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;David Smith &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;102&quot; SDNUM=&quot;1033;&quot;&gt;102&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;sxc &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;102&quot; SDNUM=&quot;1033;&quot;&gt;102&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;romaxa &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Oleg Romashin &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;102&quot; SDNUM=&quot;1033;&quot;&gt;102&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;pronvit &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;102&quot; SDNUM=&quot;1033;&quot;&gt;102&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;naabi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;102&quot; SDNUM=&quot;1033;&quot;&gt;102&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;donedri &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Filip Janasz &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;102&quot; SDNUM=&quot;1033;&quot;&gt;102&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;pguise &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;102&quot; SDNUM=&quot;1033;&quot;&gt;102&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;wesgreen &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;andy friedberg &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;102&quot; SDNUM=&quot;1033;&quot;&gt;102&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ajf &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;102&quot; SDNUM=&quot;1033;&quot;&gt;102&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;karatchov &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;102&quot; SDNUM=&quot;1033;&quot;&gt;102&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;andybehr &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Andreas Behr &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;102&quot; SDNUM=&quot;1033;&quot;&gt;102&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;dik &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;dik . &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;102&quot; SDNUM=&quot;1033;&quot;&gt;102&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;vitaly_repin &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;101&quot; SDNUM=&quot;1033;&quot;&gt;101&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;slonopotamus &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Marat Radchenko &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;101&quot; SDNUM=&quot;1033;&quot;&gt;101&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;jamiefuller &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;101&quot; SDNUM=&quot;1033;&quot;&gt;101&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;ikneadough &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;101&quot; SDNUM=&quot;1033;&quot;&gt;101&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;xengi &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Ricardo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;101&quot; SDNUM=&quot;1033;&quot;&gt;101&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;mymaemo &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;100&quot; SDNUM=&quot;1033;&quot;&gt;100&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;talmage &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;100&quot; SDNUM=&quot;1033;&quot;&gt;100&lt;/TD&gt;
	&lt;/TR&gt;
	&lt;TR&gt;
		&lt;TD HEIGHT=&quot;22&quot; ALIGN=&quot;LEFT&quot;&gt;asys3 &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;Uwe Koch &lt;/TD&gt;
		&lt;TD ALIGN=&quot;LEFT&quot;&gt;&lt;BR&gt;&lt;/TD&gt;
		&lt;TD ALIGN=&quot;RIGHT&quot; SDVAL=&quot;100&quot; SDNUM=&quot;1033;&quot;&gt;100&lt;/TD&gt;
	&lt;/TR&gt;
&lt;/TABLE&gt;
&lt;!-- ************************************************************************** --&gt;</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Council election September 2012/Candidate declarations</title>
    <id>5250</id>
    <revision>
      <id>50574</id>
      <timestamp>2012-10-30T19:11:38Z</timestamp>
      <contributor>
        <username>misterc</username>
        <id>4509</id>
      </contributor>
      <text xml:space="preserve">== Candidates for September 2012 Maemo Community Council elections ==

# [http://maemo.org/profile/view/mtraceur/ Alexander Kozhevnikov / Mentalist Traceur]
# [http://maemo.org/profile/view/ivgalvez/ Iván Gálvez Junquera / ivgalvez]
# [http://maemo.org/profile/view/joerg_rw/ Joerg Reisenweber / joerg_rw]
# [http://maemo.org/profile/view/qwazix/ Michael Demetriou / qwazix]
# [http://maemo.org/profile/view/nieldk/ Niel Nielsen / nieldk]

== Candidates for September 2012 foundation Board of Directors elections ==

# [http://maemo.org/profile/view/woody14619/ Craig Woodward / woody14619]
# [http://maemo.org/profile/view/ivgalvez/ Iván Gálvez Junquera / ivgalvez]
# [http://maemo.org/profile/view/nieldk/ Niel Nielsen / nieldk]
# [http://maemo.org/profile/view/Texrat/ Randall Arnold / Texrat]
# [http://maemo.org/profile/view/timsamoff/ Tim Samoff / timsamoff]

== Candidate declarations ==

=== Mentalist Traceur ===
For those who don't know, I'm Mentalist Traceur on the forums. My user
account on the remainder of the maemo.org site is mtraceur. After
considering the comments that have grown in the last day and a half or
so on the thread here ( http://talk.maemo.org/showthread.php?t=87061 )
it seems to me that it would be best (although I might regret
mentioning it again if it leads to even more quarreling) to throw my
self-nomination into here. I believe this is the correct location for
these things?

If it's not accepted due to the lateness, that's fine, I will still
contribute to the community as my time and ability permits. But it
seemed like there was some interest in having me run, so in the event
that the final decision is to accept me, this is here already. I am
also going to make a post in the thread aforementioned (in case the
mailing list guts out urls for some reason, I am referring to the
&quot;Last Call for Council Nominations and Bylaws Review&quot; thread), with
commentary more relevant to the discussion going on there, but some of
which (such as the &quot;if you were sufficiently interested in running,
you wouldn't have missed the deadline&quot; criticism) is relevant to
whether or not people view me as a worthy candidate. Anyway:

For starters, joerg_rw/DocScrutinizer, I sincerely appreciate you
dropping your nomination acceptance, to allow me to run - I am
uncertain as to what the ultimate interpretation of the rules will be
used to deal with this now (i.e. will the community ultimately decide
to insert me or anyone else into the running as a result or not), but
at the same time, I would like you to know that you didn't have to do
that. The community could benefit from you - quite possibly more than
from me.

Second, I want everyone to understand that I do not want to be added
into the running IF there's good reason to think that the only ways of
doing so would be to the detriment of the community. I.e. if doing so
forces the elections to grind to a standstill for a month, or even
delays it by more than a week at most, as I think someone has
suggested it would, there's almost no way anything I could bring to
either council or board would offset the time lost. I expressed an
interest in adding my name for the same reasons I hope and suppose
everyone else did - out of interest in benefiting the community. If me
offering up a late self-nomination is going to cause fracturing at
such a critical time, that would be contrary to the whole point of me
running anyway.

That said: I hereby self-nominate myself, for both Community Council
and the Board. I will be happy to serve the community in either
position, and I nominate myself for both because I think it is better
for the community to have the choice of putting me into either. (In
the event that this at all comes up, if my late nomination is accepted
for one but not the other, I have no qualms with that.)

I've been part of the community since June 2010, when I first got an
N900 - I browsed the talk.maemo.org forum for a couple months before
that, but wasn't active until after I got an N900 myself. I owe my
entire programming and Linux-savvy skillsets' development to this
community - if it weren't for an N900, I never would've gotten into
either of those things, and would have admired FOSS projects from
afar, agreeing with the ideals but never really getting involved. I'll
admit that my contributions have not been nearly as significant or
game changing as that of many community members. I merely took over
maintenance of the aircrack-ng and macchanger tools, after the
previous maintainer no longer had time, and got the aircrack-ng (and
its dependency iw) package down to extras, which it hadn't been
before. I also maintain an alpine port in the repository, but that's
not used much afaik. I wrote a command-line tool for reading/writing
r&amp;d mode flags from on-device, unfortunately one that depends on
Nokia's proprietary libcal-dev package/library, but this was heavily
based on a GUI program that did the same thing made by qwerty12.
Beyond that I've at most a couple other tidbits of code-involving
contributions. The majority of my time in the community, has been
doing my best trying to help other users based on the knowledge that I
myself learned. Lately I've managed to do less of this than, say, the
year prior, but I try to do it when I have the chance.

The main reason I think I might be useful to the community as a whole,
is this: To this day, I look out at all of the other devices out
there, and I don't see something I could enjoy nearly as much. If this
community fails, if the user base and/or ability to maintain and
update these devices easily is fragmented into tiny little pieces of
obscure privately maintained back-up repositories and other forums, I
have a lot to lose. And I know that there are plenty of other users
for whom nothing else on the market than their current devices is
desirable, who feel the same way. I've said it before on the forums -
I have never had another technological device provide me with as much
happiness and quality-of-life increase as my N900 did. And I recognize
that the FOSS nature of both a good chunk of the software, and the
adherence to FOSS principles by many in the community itself, is what
allowed this family of devices to be this for many members. According
to the the proposed bylaws for Hildon Foundation, &quot;The mission of the
Foundation is to promote and progress the future availability of maemo
derived or inspired open source software, and related toolkits, for
mobile devices. ... Further, the Foundation may promote and advocate
for the availability of mobile devices which have open source software
and/or open hardware architectures.&quot; - this is not just a goal I
approve of - it's a goal that is /extremely/ in-line with what I would
like to see happen in the world, the sooner the better. Whether
elected or not, I would do what I am able to help further this goal,
not only because this community, and the family of devices it
supports, are valuable to both me and the community, but also because
I would consider it my ethical duty to do so. Of course, that
motivation is there regardless of whether my self-nomination is
accepted or not, or if I'm elected to either position - but being in
said position(s) would, I suspect, allow me to do more towards those
ends.

Thank you for your time and consideration, to all who read this.


=== woody14619 ===
[strike]I'm Woody14619 on TMO and currently a member of the Maemo Council.

During my last run for Council, my stated intention was to increase the visibility and transparency of the operation of Council.  During my term, I saw to it that there were weekly open meetings with minutes presented to the community on the Council blog (usually in a timely fashion).  I also got involved in a number of other activities that were Council and community related, and hope that those efforts have been (and will continue to be) seen as positive steps taken to help the community.

Unfortunately, my day job has begun to cycle up for it's typical busy season of October through March.  Part of the reason I agreed to run for the current cycle was because I knew I would have the time to dedicate in the summer period.  I equally know that my time will be limited for the next cycle.

As a result, I do not feel it would be beneficial to the community for me to run for Council again this cycle.  I will not have the time to invest as I did this cycle, beyond offering the minimal service of creating meeting minutes.  If someone else nominates me, I will stand for the position, but I will not nominate myself knowing the limited time I will have for the position.

I would however, like to nominate myself for the Board, with that caveat that my participation would be minimal for the October to March time frame.  That alone will probably find me last in the list, meaning I would not be on the Board unless several others nominate themselves at the last minute.  None the less, I would like to apply.

Regardless of the outcome of the election, I pledge to offer any aid I can to the next Council and/or Board, and will make efforts to continue to participate in any public meetings of both bodies.[/strike]


=== ivgalvez ===
I'm known as ivgalvez at TMO and I'm currently member of the Maemo Council. I joined this community in September 2011, just after receiving my N900, and I started to participate in it, with a passion and interest I haven't felt before in any other open source community I knew.

As current Council Member, I feel that I have the responsibility to help finishing the transition process to a self sustained NFP entity that we have started. I am one of the three signers in the articles of incorporation, with Woody14619 and SD69, and I think that I should help in the first steps of foundation as an independent entity.

I also joined the Council with high hopes for fixing the long-standing problems we have with the infrastructure, but we haven't succeeded yet. In fact, this was my main goal when I run for latest Council election, now I only hope that with a real entity (Board) sustaining the community, we could have better results in the upcoming months.

Considering the low number of candidates we have at this moment, I have finally decided to run for both groups, Board and Council, despite my public preference about having separate groups.


=== joerg_rw ===
since I'm short of time right now (alas this won't change for whole term, I
promise), I just like to post a &quot;I accept&quot; here, since ivgalvez pushed me by
mentioning there's only 5h left to do so.

I'm not promising I'll invest more of my time than available (which is pretty
little, maybe even as small as 2h/week) into the task, and I'm accepting
just to not let maemo down. No self-advertisements here right now, those who
know me will also know whether to vote for me or not.
Just one statement: In my book both council and board are *services* brought
to community since community needs them. I'm not interested in any &quot;internal&quot;
power (definitely falsely) attributed by some to either of those positions, I
will exploit all the power/opportunities that such a position might give, to
bring maemo ahead or at least keep it alive. But I'm neither maemo's master
nor your referee, and I hope you'll call me out on that if ever my notion
regarding that seems to have changed.
I'm ready to help as much as my spare time and knowledge allows, and that's
it. I'm not promising to become a better diplomat, I know my soft skills are
poor regarding that, please excuse me already. Nor will I hold back with my
notions regarding particular details of development or maintenance. I think
and hope I could still act as a normal community member regarding that, and I
hope you won't read every of my comments like I had a council hat on, it
doesn't fit my head ;-). Now it's up to you.


=== qwazix ===
I want to help. That's it. I've been trying to squeeze my head to
think of a candidate declaration but I don't think I can come up with
one. One thing that you need to know is that I believe that a
community like us is going to fade away without devices, so I will do
whatever I can so that we can have a new reference device, be it
something community sponsored, or an adaptation for an unlocked device
that's already out there from a reputable manufacturer, or a jolla
device or something.

A little bit about myself:
I am 27 years old, I live in Athens, Greece and I am a civil engineer,
currently working as a web developer and graphics designer. I love
mobile devices, open software, movies and photography, among other
things. I am very much into user interface design, and I like to try
every diverse device out there and keep the best ideas in mind.
My first encounter with maemo was when I played with a friend's 770,
but I came here to maemo.org with my N900, which I bought in an
impulse. I had hardly used linux until then and I had never coded
anything else than java (and a little bit of pascal). As the months
passed, I wanted to have the experience I got on my phone on my pc too
- I know this happens usually the other way around - and now I am an
everyday linux user. I also got my hands dirty in qt trying to make
speedcrunch a little bit more touch friendly. In the meantime, while
the N900 always bulged in one pocket, the other pocket changed tenants
quickly. Symbian was replaced by android and that with WP. When the N9
came around that pocket got a resident too. The N9 for some weird
reason made me want to code for it more than the N900 did, and so
contactLaunch, mobilecrunch and rawcam came to life. Recently I bought
a N810 so that I get a little bit of maemo history in my hands.

I haven't lived in many online communities but I find maemo to be cosy
and friendly, and I want that to continue. I love the fact that people
who moved to other devices still stay around and discuss, and that
even threads like xxx vs Nxxx are still civilised and have useful
discussion in them among the inevitable argument. I appreciate that
most people here love their devices, yet they provide pretty objective
opinions when a newcomer asks for advice.


=== nieldk ===
I'm known as nieldk at TMO and I'm currently member of the Maemo Council. I
joined this community just after receiving my N900, and I started to
participate in it when development for mobile backtrac started. Since i
later obtained the n9 my focus is on the Harmattan platform,especially
kernel development.

As current Council Member, I feel like my fellow councelars, that I have
the responsibility to help finishing the transition process to a self
sustained NFP entity that we have started.

I also joined the Council with high hopes for better relationship with
Nokia and more focus on the Harmattan platform. Due to the new situation in
Nokia, this has largely failed, since focus had to shift to keep our
community at all.
Also, lately, I ran into some serious personal matters in my relationship
with my wife, which have taken quite a serious amount of time to solve
-happy to say it has settled now to a more stable situation.


=== Texrat ===
Like my good friend Tim Samoff, I am submitting myself as a candidate for the
Hildon Foundation board.

Those who know me are familiar with my qualifications.  For those who don't,
here's a synopsis:

# Former Nokia quality engineer for early Maemo devices
# Prominent member of N800 launch team
# Early member of Internet Tablet Talk and maemo.org; helped develop community
# maemo.org forum moderator
# creator of Maemo (and MeeGo) Greeters program
# MeeGo community office member; created and coordinated device program
# 3-term maemo.org council member
# 2 term (and current) Nokia Developer Champion

Regardless of where my career and interests have taken me, I am a strong
advocate of open source, both software and hardware.  In addition to Maemo and
MeeGo involvement, I am also heavily plugged into 3D printing communities and
pushing for increased opportunities for community contributions to device
ecosystems (phone cases, sim card adapters, etc).

I've been very concerned with the negative tone I see permeating our community
and i would like to see us work at dispelling that.  We started as a can-do
collective of passionate, talented people and I would like to see that spirit
renewed.  I have hope that the Hildon Foundation will be sufficiently empowered
to turn this thing around!


=== timsamoff  ===
While I've been silent on the mailing list and TMO for a while, I've
continued to lurk and participate in other venues like Twitter and
Facebook. In fact, I still submit Maemo news to mwkn.net often.

But, that's all moot in my mind.

Most of you who know me will hopefully agree that I am passionate,
dedicated, hard working member who has put countless time and effort
into the Maemo cause. I have served on three terms of the Maemo
Community Council (one of those terms as the Chair); I have spearheaded
several community efforts (the m.o website redesign, contests,
application development, UI/UX improvement, conferences, etc.); I have
presented talks; I've volunteered; etc.

Most of your who know me will also know that none of this work was done
from a developer's point of view. I came to the Maemo Community as a
user (the N800 was my first Maemo device) and that's how I initially got
involved. My first involvement was in the discussion forums (back then
it was still itT) [0]. Then, I moved on to lodging bug reports [1].
Then, since I am a designer, I began helping folks with graphics and UI
design. The list could go on and on, but my main point is just that I am
really still who I was back when my N800 first arrived in the mail: a
passionate user. In fact, my main handset (by choice, not by necessity)
is the Nokia N950.

One must possess 100 Karma points or more to be nominated for this
position. I have 1,586 [2].

While I haven't been interested in taking part in Council business over
the last couple of years, I am still very interested in seeing the
advancement of (and even helping to steer) the community into the
future. I don't see a lot of hope for Maemo as a specific &quot;product&quot; of
any sort (which, in the end, may end up disqualifying me from running
for this position), but I am still very hopeful for the community at
large. Maemo is more than just a product anyway, it's a philosophy. And,
more than any other open source community that I've been involved with,
Maemo community members are the most transparent, dedicated, and
involved in the life of that philosophy.

I would be honored to come back aboard with a group of whose job is to
negotiate this community's future. 

[0] http://bit.ly/UHQYnK

[1] http://bit.ly/PfAjDZ

[2] http://bit.ly/OEcTJb


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Council voting rights</title>
    <id>1587</id>
    <revision>
      <id>12674</id>
      <timestamp>2009-04-21T10:11:11Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>Categorization</comment>
      <text xml:space="preserve">The following referendum is to decide once and for all what requirements will be needed of Maemo community members before they may vote in community council elections. The choices proposed are to maintain the current levels, to reduce the karma requirement to 10, to reduce the karma requirement to 10 '''and''' allow anyone with an account over 1 year old to vote, or to drop all requirements other than having a maemo.org account.

To vote, please visit [http://maemo.org/vote the voting page].

== Proposed options ==

The changes mentioned below will be made to item #3 in [[Community Council#Election process|the Council election process]] for all Community Council elections after the [[Community_Council/Voting_rights_Q1_2009|Q1 2009 election]].

# '''25 karma minimum ''and'' 3 month old account''' (status quo)
#* [[Community Council#Election process|Item #3]] remains &quot;''Only community members who have had maemo.org accounts for over 3 months, and have karma of 25 or above, may vote.''&quot;
# '''10 karma point minimum ''and'' 3 month old account'''
#* [[Community Council#Election process|Item #3]] becomes &quot;''Only community members who have had maemo.org accounts for over 3 months, and have karma of 10 or above, may vote.''&quot;
#* The advantage of this option is that it requires both a knowledge of the community and some contribution before you are entitled to vote. The disadvantage is that it may not take into account certain contributions to the community which are not included in the calculation of karma.
# '''10 karma point minimum ''or'' 12 month old account'''
#* [[Community Council#Election process|Item #3]] becomes &quot;''Only community members who have had maemo.org accounts for over 12 months, or have karma of 10 or above, may vote.''&quot;
#* The advantage of this method over the second is that members who have created an account will eventually get a vote, regardless of whether their contributions are included in the karma calculation. The disadvantage is that over time more and more of the electorate will be made up of people whose accounts are inactive, and who are no longer in touch with the community.
# '''Karma ignored, account age ignored'''
#* [[Community Council#Election process|Item #3]] becomes &quot;''Anybody with a maemo.org account will be entitled to a vote.''&quot;
#* The advantage of this method is that it is very easy to gain a right to vote in Maemo council elections and the council makeup is likely to be representative of more Maemo users, not just ''contributors'' to the Maemo community. These are also the disadvantages, as some community members wish the council to focus on active contributors and ballot stuffing through mass creation of accounts before an election becomes possible. It also becomes trivial for someone who has put lots of work into the community (which would be recognised by more active members) to be overlooked in favour of the author of a killer app, but who may just be throwing releases &quot;over the wall&quot; to the &quot;real&quot; community.
# '''None of the above.'''
#* This option allows you to indicate that you think none of the options were satisfactory.


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Counting methods</title>
    <id>1588</id>
    <revision>
      <id>12675</id>
      <timestamp>2009-04-21T10:11:26Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>Categorization</comment>
      <text xml:space="preserve">The following referendum is to decide which method will be used to decide winners of Maemo Community Council elections. Three options are proposed: first past the post, single transferable vote and reweighted range voting.

To vote, please visit [http://maemo.org/vote the voting page].

== Proposed options ==

The changes mentioned below will be made to items #4 and #5 in [[Community Council#Election process|the Council election process]].

# '''No change''' (&quot;first-five-candidates-past-the-post&quot;)
#* [[Community Council#Election process|Item #4]] remains &quot;''Each community member gets one vote.''&quot;
#* [[Community Council#Election process|Item #5]] remains &quot;''The 5 nominees with the most votes are elected.''&quot;
# '''A single transferrable vote system''' (rank your preferred candidates) [council preferred option]
#* [[Community Council#Election process|Item #4]] becomes &quot;''Each community member eligible to vote gets a single ballot.''&quot;
#* [[Community Council#Election process|Item #5]] becomes &quot;''The 5 nominees voted for most, as counted by a single transferrable vote system are elected.''&quot;
#* This option is preferred by the Maemo Community Council as being easiest to understand and gives a satisfactory outcome.
# '''A reweighted range voting system''' (give ''each'' candidate a score 0-100)
#* [[Community Council#Election process|Item #4]] becomes &quot;''Each community member eligible to vote gets a single ballot.''&quot;
#* [[Community Council#Election process|Item #5]] becomes &quot;''The 5 nominees ranked highest by a reweighted range voting system are elected.''&quot;
# '''None of the above.'''
#* This option allows you to indicate that you think none of the options is satisfactory.


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Election process</title>
    <id>1750</id>
    <revision>
      <id>49783</id>
      <timestamp>2012-09-22T08:31:19Z</timestamp>
      <contributor>
        <username>misterc</username>
        <id>4509</id>
      </contributor>
      <comment>/* Current election */</comment>
      <text xml:space="preserve">The 5 council members will be elected by the community.

# Nominations will be accepted 2 weeks before the election begins from any community member with a [[karma]] of 100 or above.
# Elections last for 1 week.
# Only community members who have had maemo.org accounts for over 3 months, and have karma of 10 or above, may vote.
# Each community member eligible to vote gets a single ballot.
# The 5 nominees voted for most, as counted by a single transferrable vote system are elected.
# Nominees with a professional interest in Maemo, such as working for Nokia - or any other company involved in Maemo-related software development - must declare their interest when advertising their nomination. Failure to do so may result in the Nokia Community Manager, or the outgoing Council, declaring their nomination invalid and so bar them from standing in the current election.
# There is no limit to the number of times a council member can stand for re-election.
# The date of the next election will be set by the council chair, not more than 6 months after the previous election.
# The election date must be publicised at least 1 month in advance of the election.
# If fewer than 5 candidates stand for election, the 3 with the most votes are elected to the council.
# If there are fewer than 3 candidates when the nominations close, the election cannot be held.
## The nomination period will be extended by 1 month and the election postponed similarly.
## If, after 1 month's delay, there are still fewer than 3 candidates; the outgoing council will decide - in conjunction with Nokia's Community Manager (currently Quim) - about how to proceed. The preferred solution is to encourage more members of the maemo.org community to participate and re-run the election, but ''all'' options are open.
# Changes to any of the above rules must be approved by community referendum.
## Voting in such referenda will be open to anyone eligible to vote in the council elections.
## The referendum options must be debated for a minimum of 1 month prior to the referendum.
## Referendum voting will be open for the same length of time as the council elections.

== Running an election ==

Running an election has several distinct phases:
* Agreeing on the election schedule and announcing it, as detailed above
* Validating candidate proposals for the election (requirement of &gt;100 karma on the date the election is announced)
* [[maemo.org team/Creating an election|Creating the election]] in the system and sending out voting tokens
* Finally, [[maemo.org team/Generating election results|counting the election and announcing the results]]

The first and second phase is entirely the resonsibility of the outgoing community council. The third phase requires a list of maemo.org account holders at a certain date, and thus requires the intervention of someone with access to maemo.org infrastructure, and also requires access to a specific database on test.maemo.org, which again requires access. However, the access is only required for a small part of the step, and it is the council's responsibility to provide all of the information needed to create the election. The fourth step requires OpenSTV, a project licenced under the GPL, but which the author has decided to sell. It is difficult to find newer versions of OpenSTV online, even though the software is GPL v2 licenced. We should check and older version of OpenSTV into maemo2midgard to enable us to count elections reliably.

 
== Community Council Referenda ==
Changes to the [[Community_Council/Election_process|election process]] require a [http://maemo.org/vote referendum].

=== Current referenda ===

There are no current referenda.

=== Previous referenda ===

Three referenda were run from February 16 2009 until February 23 2009 to decide some procedural datas around elections.

* [[Community Council/Voting rights Q1 2009 | Who should have voting rights for the next community council elections?]]
* [[Community Council/Council voting rights | Who should have voting rights for all future community council elections?]]
* [[Community Council/Counting methods | How should ballots be counted in community council elections?]]

== Community Council Elections ==

=== Current election ===

* [[Community Council/Council election Q4 2012|Material from Q4 2012 election]]

=== Past Elections ===

* [[Community Council/Council election Q3 2008|Material from Q3 2008 election]]
* [[Community Council/Council election Q1 2009|Material from Q1 2009 election]]
* [[Community Council/Council election Q3 2009|Material from Q3 2009 election]]
* [[Community Council/Council election Q1 2010|Material from Q1 2010 election]]
* [[Community Council/Council election Q3 2010|Material from Q3 2010 election]]
* [[Community Council/Council election Q1 2011|Material from Q1 2011 election]]
* [[Community Council/Council election Q3 2011|Material from Q3 2011 election]]
* [[Community Council/Council election Q1/2 2012|Material from Q1/2 2012 election]]


[[Category:Community]]
[[Category:Community Council]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Eligible candidates</title>
    <id>4028</id>
    <revision>
      <id>33547</id>
      <timestamp>2010-04-27T08:40:13Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Community Council/Eligible candidates]] moved to [[Community Council/Eligible candidates Q1 2009]]: Naming consistency</comment>
      <text xml:space="preserve">#REDIRECT [[Community Council/Eligible candidates Q1 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Eligible candidates Q1 2009</title>
    <id>1649</id>
    <revision>
      <id>33546</id>
      <timestamp>2010-04-27T08:40:00Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>[[Community Council/Eligible candidates]] moved to [[Community Council/Eligible candidates Q1 2009]]: Naming consistency</comment>
      <text xml:space="preserve">== List of eligible candidates ==

The following is the list of eligible candidates for the community council elections to be held in March 2009, according to the criteria laid out in [[Community Council]]. Karma totals are as they were on 2009-02-25.

{| class=&quot;wikitable&quot;
|-
! Username
! Real name
! Company
! Karma
|-
| [http://maemo.org/profile/view/qgil.html qgil]
| Quim Gil
| Nokia
| 2164
|-
| [http://maemo.org/profile/view/fanoush.html fanoush]
| Frantisek Dufka
| 
| 2003
|-
| [http://maemo.org/profile/view/generalantilles.html generalantilles]
| Ryan Abel
| 
| 1710
|-
| [http://maemo.org/profile/view/yerga.html yerga]
| Daniel Martín Yerga
| &quot;Oviedo University&quot;
| 1526
|-
| [http://maemo.org/profile/view/jaffa.html jaffa]
| Andrew Flegg
| 
| 1441
|-
| [http://maemo.org/profile/view/timsamoff.html timsamoff]
| Tim Samoff
| 
| 1255
|-
| [http://maemo.org/profile/view/atmasphere.html atmasphere]
| Jonathan Greene
| 
| 1056
|-
| [http://maemo.org/profile/view/qwerty12.html qwerty12]
| Faheem Pervez
| 
| 1010
|-
| [http://maemo.org/profile/view/khertan.html khertan]
| Benoît HERVIER
| Naxos
| 881
|-
| [http://maemo.org/profile/view/mikkov.html mikkov]
| Mikko Vartiainen
| 
| 850
|-
| [http://maemo.org/profile/view/timeless.html timeless]
| timeless -
| Nokia
| 843
|-
| [http://maemo.org/profile/view/murrayc.html murrayc]
| Murray Cumming
| &quot;Openismus GmbH&quot;
| 774
|-
| [http://maemo.org/profile/view/xfade.html xfade]
| Niels Breet
| maemo.org
| 774
|-
| [http://maemo.org/profile/view/framstag.html framstag]
| Tim Teulings
| 
| 738
|-
| [http://maemo.org/profile/view/fms.html fms]
| Marat Fayzullin
| 
| 715
|-
| [http://maemo.org/profile/view/barbieri.html barbieri]
| Gustavo Barbieri
| ProFUSION
| 665
|-
| [http://maemo.org/profile/view/sjgadsby.html sjgadsby]
| Stephen Gadsby
| &quot;Millersville University of Pennsylvania&quot;
| 648
|-
| [http://maemo.org/profile/view/dneary.html dneary]
| Dave Neary
| &quot;Neary Consulting&quot;
| 613
|-
| [http://maemo.org/profile/view/anidel.html anidel]
| Aniello Del Sorbo
| University of Salerno, Italy
| 613
|-
| [http://maemo.org/profile/view/baloo.html baloo]
| Jamie Bennett
| LinuxUK.org
| 599
|-
| [http://maemo.org/profile/view/wolfmane.html wolfmane]
| Mark Haury
| 
| 594
|-
| [http://maemo.org/profile/view/gcobb.html gcobb]
| Graham Cobb
| 
| 588
|-
| [http://maemo.org/profile/view/disq.html disq]
| Kemal Hadimli
| 
| 556
|-
| [http://maemo.org/profile/view/lucianomw.html lucianomw]
| Luciano Wolf
| 
| 546
|-
| [http://maemo.org/profile/view/jku.html jku]
| Jussi Kukkonen
| Openedhand
| 538
|-
| [http://maemo.org/profile/view/andre.html andre]
| Andre Klapper
| Openismus
| 533
|-
| [http://maemo.org/profile/view/pipeline.html pipeline]
| pipe line
| 
| 528
|-
| [http://maemo.org/profile/view/kulve.html kulve]
| Tuomas Kulve
| Movial
| 515
|-
| [http://maemo.org/profile/view/tak.html tak]
| Levi Bard
| 
| 495
|-
| [http://maemo.org/profile/view/linuxrebel.html linuxrebel]
| James Sparenberg
| 
| 484
|-
| [http://maemo.org/profile/view/bundyo.html bundyo]
| Kamen Bundev
| Telerik
| 476
|-
| [http://maemo.org/profile/view/jatikka.html jatikka]
| Jarmo Tikka
| &quot;Nokia Corporation&quot;
| 472
|-
| [http://maemo.org/profile/view/etrunko.html etrunko]
| Eduardo Lima
| INdT
| 463
|-
| [http://maemo.org/profile/view/bergie.html bergie]
| Henri Bergius
| Nemein
| 444
|-
| [http://maemo.org/profile/view/pycage.html pycage]
| Martin Grimme
| Lintegra
| 434
|-
| [http://maemo.org/profile/view/thp.html thp]
| Thomas Perl
| 
| 431
|-
| [http://maemo.org/profile/view/qole.html qole]
| alan bruce
| &quot;nothing Maemo related&quot;
| 423
|-
| [http://maemo.org/profile/view/ed_.html ed_]
| Ed Bartosh
| Nokia
| 420
|-
| [http://maemo.org/profile/view/milhouse.html milhouse]
| Neil MacLeod
| 
| 418
|-
| [http://maemo.org/profile/view/olivluca.html olivluca]
| Luca Olivetti
| 
| 406
|-
| [http://maemo.org/profile/view/benson.html benson]
| Benson Mitchell
| 
| 404
|-
| [http://maemo.org/profile/view/konttori.html konttori]
| Urho Konttori
| Nokia
| 402
|-
| [http://maemo.org/profile/view/thoughtfix.html thoughtfix]
| Daniel Gentleman
| &quot;ThoughtFix LLC&quot;
| 399
|-
| [http://maemo.org/profile/view/fiferboy.html fiferboy]
| Andrew Olmsted
| 
| 398
|-
| [http://maemo.org/profile/view/megabyte405.html megabyte405]
| Ryan Pavlik
| 
| 396
|-
| [http://maemo.org/profile/view/nakkebar.html nakkebar]
| Eero Tamminen
| Nokia
| 395
|-
| [http://maemo.org/profile/view/lardman.html lardman]
| Simon Pickering
| NA
| 377
|-
| [http://maemo.org/profile/view/jholmblad.html jholmblad]
| John Holmblad
| 
| 375
|-
| [http://maemo.org/profile/view/fredoll.html fredoll]
| Fred Lefévère-Laoide
| 
| 374
|-
| [http://maemo.org/profile/view/florian.html florian]
| Florian Boor
| 
| 370
|-
| [http://maemo.org/profile/view/lcuk.html lcuk]
| Gary Birkett
| &quot;N/A hobby&quot;
| 370
|-
| [http://maemo.org/profile/view/antimirov.html antimirov]
| Eugene Antimirov
| &quot;AND Automotive Navigation Data&quot;
| 370
|-
| [http://maemo.org/profile/view/collin.html collin]
| Collin Mulliner
| 
| 365
|-
| [http://maemo.org/profile/view/simon.html simon]
| Simon Budig
| &quot;kernel concepts&quot;
| 363
|-
| [http://maemo.org/profile/view/tso.html tso]
| kenneth marken
| 
| 348
|-
| [http://maemo.org/profile/view/ktneely.html ktneely]
| Kevin Neely
| 
| 347
|-
| [http://maemo.org/profile/view/jlbrd.html jlbrd]
| Jean-Luc Biord
| 
| 343
|-
| [http://maemo.org/profile/view/leif.html leif]
| Leif Ryge
| 
| 341
|-
| [http://maemo.org/profile/view/ian_r.html ian_r]
| Ian Ryge
| 
| 339
|-
| [http://maemo.org/profile/view/fcrozat.html fcrozat]
| Frederic Crozat
| 
| 338
|-
| [http://maemo.org/profile/view/klausr.html klausr]
| Klaus Rotter
| 
| 336
|-
| [http://maemo.org/profile/view/tonymaro.html tonymaro]
| Tony Maro
| 
| 331
|-
| [http://maemo.org/profile/view/andy80.html andy80]
| Andrea Grandi
| 
| 328
|-
| [http://maemo.org/profile/view/tbergstr.html tbergstr]
| Terje Bergström
| 
| 321
|-
| [http://maemo.org/profile/view/linuxhippy.html linuxhippy]
| Clemens Eisserer
| 
| 313
|-
| [http://maemo.org/profile/view/loki.html loki]
| Massimo Mund
| 
| 311
|-
| [http://maemo.org/profile/view/zerojay.html zerojay]
| Jason Carter
| 
| 306
|-
| [http://maemo.org/profile/view/agarcia.html agarcia]
| Alberto Garcia
| Igalia
| 301
|-
| [http://maemo.org/profile/view/rdorsch.html rdorsch]
| Rainer Dorsch
| 
| 300
|-
| [http://maemo.org/profile/view/wwp.html wwp]
| Tristan Chabredier
| 
| 299
|-
| [http://maemo.org/profile/view/frisket.html frisket]
| Peter Flynn
| 
| 293
|-
| [http://maemo.org/profile/view/donaggio.html donaggio]
| Luca Donaggio
| 
| 292
|-
| [http://maemo.org/profile/view/lbattraw.html lbattraw]
| Larry Battraw
| 
| 292
|-
| [http://maemo.org/profile/view/beermad.html beermad]
| Tony Green
| 
| 288
|-
| [http://maemo.org/profile/view/harbaum.html harbaum]
| Till Harbaum
| 
| 284
|-
| [http://maemo.org/profile/view/axique.html axique]
| Christoph Würstle
| 
| 282
|-
| [http://maemo.org/profile/view/tz1.html tz1]
| t z
| 
| 281
|-
| [http://maemo.org/profile/view/mike_morrison.html mike_morrison]
| mike morrison
| 
| 281
|-
| [http://maemo.org/profile/view/guerby.html guerby]
| Laurent GUERBY
| 
| 280
|-
| [http://maemo.org/profile/view/rsperberg.html rsperberg]
| Roger Sperberg
| Self
| 278
|-
| [http://maemo.org/profile/view/ossi1967.html ossi1967]
| Oskar Welzl
| 
| 277
|-
| [http://maemo.org/profile/view/brontide.html brontide]
| Eric Warnke
| 
| 277
|-
| [http://maemo.org/profile/view/jsmanrique.html jsmanrique]
| Manrique Lopez
| CTIC
| 276
|-
| [http://maemo.org/profile/view/stskeeps.html stskeeps]
| Carsten Munk
| &quot;Centre for Pervasive Healthcare&quot;
| 271
|-
| [http://maemo.org/profile/view/zoran.html zoran]
| Zoran Kolic
| 
| 269
|-
| [http://maemo.org/profile/view/rsuplido.html rsuplido]
| Reggie Suplido
| &quot;Internet Tablet Talk&quot;
| 268
|-
| [http://maemo.org/profile/view/vdvsx.html vdvsx]
| Valério Valério
| &quot;Looking for a internship :)&quot;
| 265
|-
| [http://maemo.org/profile/view/trevarthan.html trevarthan]
| Jesse Guardiani
| 
| 262
|-
| [http://maemo.org/profile/view/czr.html czr]
| Aleksandr Koltsoff
| 
| 260
|-
| [http://maemo.org/profile/view/colinleroy.html colinleroy]
| Colin Leroy
| 
| 259
|-
| [http://maemo.org/profile/view/serge.html serge]
| Siarhei Siamashka
| 
| 257
|-
| [http://maemo.org/profile/view/tonikitoo.html tonikitoo]
| Antonio Gomes
| 
| 256
|-
| [http://maemo.org/profile/view/vern.html vern]
| Ian Lawrence
| INdT
| 254
|-
| [http://maemo.org/profile/view/marcell.html marcell]
| Marcell Lengyel
| Nokia
| 251
|-
| [http://maemo.org/profile/view/aisu.html aisu]
| Tyler Longwell
| 
| 250
|-
| [http://maemo.org/profile/view/twaelti.html twaelti]
| Tom Waelti
| &quot;N/A - Hobby&quot;
| 248
|-
| [http://maemo.org/profile/view/morphbr.html morphbr]
| Artur Souza
| 
| 245
|-
| [http://maemo.org/profile/view/scriptkiller.html scriptkiller]
| Michael Arndt
| 
| 245
|-
| [http://maemo.org/profile/view/frankusb.html frankusb]
| Frank Banul
| 
| 237
|-
| [http://maemo.org/profile/view/terje.html terje]
| Terje Bergström
| 
| 236
|-
| [http://maemo.org/profile/view/vasvlad.html vasvlad]
| Vlad Vasiliev
| &quot;Gas company&quot;
| 228
|-
| [http://maemo.org/profile/view/mishas.html mishas]
| Mikhail Sobolev
| 
| 228
|-
| [http://maemo.org/profile/view/matt.html matt]
| Matt Johnston
| 
| 228
|-
| [http://maemo.org/profile/view/tor.html tor]
| Tor Arntsen
| 
| 228
|-
| [http://maemo.org/profile/view/maddler.html maddler]
| William Maddler
| &quot;Komputika s.a.s.&quot;
| 217
|-
| [http://maemo.org/profile/view/zerionseven.html zerionseven]
| Tero Hietanen
| 
| 214
|-
| [http://maemo.org/profile/view/xyzo.html xyzo]
| Laurent MARTIN
| 
| 212
|-
| [http://maemo.org/profile/view/dgdimick.html dgdimick]
| Denis Dimick
| 
| 211
|-
| [http://maemo.org/profile/view/nite_man.html nite_man]
| Michael Stepanov
| 
| 210
|-
| [http://maemo.org/profile/view/adaviel.html adaviel]
| Andrew Daviel
| 
| 208
|-
| [http://maemo.org/profile/view/feijai.html feijai]
| Sean Luke
| 
| 207
|-
| [http://maemo.org/profile/view/inz.html inz]
| Santtu Lakkala
| Nomovok
| 204
|-
| [http://maemo.org/profile/view/mklein.html mklein]
| Mike Klein
| 
| 204
|-
| [http://maemo.org/profile/view/mvo.html mvo]
| Marius Vollmer
| Nokia
| 201
|-
| [http://maemo.org/profile/view/jukey.html jukey]
| Uwe Kaminski
| &quot;STRATO AG&quot;
| 201
|-
| [http://maemo.org/profile/view/kate.html kate]
| Kate Alhola
| Nokia
| 201
|-
| [http://maemo.org/profile/view/jtukkine.html jtukkine]
| Juha Tukkinen
| Nokia
| 196
|-
| [http://maemo.org/profile/view/tvogel.html tvogel]
| Tilman Vogel
| 
| 190
|-
| [http://maemo.org/profile/view/rm_you.html rm_you]
| Adam Harwell
| 
| 189
|-
| [http://maemo.org/profile/view/drfredc.html drfredc]
| Fred Chittenden
| 
| 189
|-
| [http://maemo.org/profile/view/ukki.html ukki]
| Janne Mäkinen
| 
| 186
|-
| [http://maemo.org/profile/view/pamadio.html pamadio]
| Pierre Amadio
| 
| 182
|-
| [http://maemo.org/profile/view/keesj.html keesj]
| Kees Jongenburger
| &quot;TomTom B.V.&quot;
| 181
|-
| [http://maemo.org/profile/view/eipi.html eipi]
| Sanjeev Visvanatha
| 
| 180
|-
| [http://maemo.org/profile/view/lma.html lma]
| Lucas Maneos
| 
| 179
|-
| [http://maemo.org/profile/view/jbenc.html jbenc]
| Jiri Benc
| 
| 179
|-
| [http://maemo.org/profile/view/feri.html feri]
| Ferenc Szekely
| maemo.org
| 177
|-
| [http://maemo.org/profile/view/alevinsn.html alevinsn]
| Aaron Levinson
| 
| 172
|-
| [http://maemo.org/profile/view/zeenix.html zeenix]
| Zeeshan Ali
| 
| 172
|-
| [http://maemo.org/profile/view/b0unc3.html b0unc3]
| Daniele Maio
| 
| 171
|-
| [http://maemo.org/profile/view/jakunnar.html jakunnar]
| Jake Kunnari
| 
| 171
|-
| [http://maemo.org/profile/view/saturn.html saturn]
| Christos Saturn
| 
| 170
|-
| [http://maemo.org/profile/view/felipec.html felipec]
| Felipe Contreras
| 
| 170
|-
| [http://maemo.org/profile/view/nix_nix.html nix_nix]
| Gabriel Schulhof
| 
| 168
|-
| [http://maemo.org/profile/view/bones.html bones]
| Sergio Melas
| &quot;Solvay Chemicals&quot;
| 166
|-
| [http://maemo.org/profile/view/truejournals.html truejournals]
| Bobby Graese
| 
| 165
|-
| [http://maemo.org/profile/view/bmidgley.html bmidgley]
| Brad Midgley
| 
| 164
|-
| [http://maemo.org/profile/view/lbt.html lbt]
| David Greaves
| 
| 164
|-
| [http://maemo.org/profile/view/matan.html matan]
| Matan Ziv-Av
| 
| 163
|-
| [http://maemo.org/profile/view/lapa.html lapa]
| Luis Lorenzo
| 
| 162
|-
| [http://maemo.org/profile/view/bluegene.html bluegene]
| vicente garcia diez
| 
| 162
|-
| [http://maemo.org/profile/view/arnims.html arnims]
| Arnim Sauerbier
| 
| 156
|-
| [http://maemo.org/profile/view/wazd.html wazd]
| Andrew Zhilin
| &quot;Maemo UI improvements blog&quot;
| 155
|-
| [http://maemo.org/profile/view/miker.html miker]
| Mike Rowehl
| 
| 155
|-
| [http://maemo.org/profile/view/yodude.html yodude]
| Steven Yeager
| 
| 153
|-
| [http://maemo.org/profile/view/hrw.html hrw]
| Marcin Juszkiewicz
| HaeRWu
| 153
|-
| [http://maemo.org/profile/view/vinc17.html vinc17]
| Vincent Lefèvre
| 
| 151
|-
| [http://maemo.org/profile/view/hhedberg.html hhedberg]
| Henrik Hedberg
| 
| 150
|-
| [http://maemo.org/profile/view/homac.html homac]
| Holger Macht
| 
| 148
|-
| [http://maemo.org/profile/view/igor_stoppa.html igor_stoppa]
| Igor Stoppa
| 
| 146
|-
| [http://maemo.org/profile/view/vlg.html vlg]
| Vladislav Grinchenko
| 
| 146
|-
| [http://maemo.org/profile/view/pvanhoof.html pvanhoof]
| Philip Van Hoof
| Codeminded
| 145
|-
| [http://maemo.org/profile/view/ajf.html ajf]
| Alfredo J. Fabretti
| 
| 144
|-
| [http://maemo.org/profile/view/edgester.html edgester]
| Jason Edgecombe
| 
| 143
|-
| [http://maemo.org/profile/view/setanta.html setanta]
| Marcelo Lira
| 
| 142
|-
| [http://maemo.org/profile/view/leandro.html leandro]
| Leandro Sales
| &quot;Federal University of Campina Grande&quot;
| 141
|-
| [http://maemo.org/profile/view/newca12.html newca12]
| Olivier ROLAND
| 
| 141
|-
| [http://maemo.org/profile/view/fredp.html fredp]
| Fred Pacquier
| &quot;(ITT: fpp)&quot;
| 141
|-
| [http://maemo.org/profile/view/kaltsi.html kaltsi]
| Juha Kallioinen
| Nokia
| 141
|-
| [http://maemo.org/profile/view/krisse.html krisse]
| Krisse Juorunen
| 
| 141
|-
| [http://maemo.org/profile/view/wolfg1969.html wolfg1969]
| Yong Guo
| 
| 141
|-
| [http://maemo.org/profile/view/gnuite.html gnuite]
| John Costigan
| &quot;Google, Inc.&quot;
| 141
|-
| [http://maemo.org/profile/view/itkach.html itkach]
| Igor Tkach
| 
| 140
|-
| [http://maemo.org/profile/view/oriolj.html oriolj]
| Oriol Jiménez
| 
| 140
|-
| [http://maemo.org/profile/view/kimitake.html kimitake]
| Kimitake .
| 
| 139
|-
| [http://maemo.org/profile/view/jait.html jait]
| Jari Tenhunen
| 
| 137
|-
| [http://maemo.org/profile/view/neiljerram.html neiljerram]
| Neil Jerram
| 
| 137
|-
| [http://maemo.org/profile/view/marciom.html marciom]
| Marcio Macedo
| INdT
| 136
|-
| [http://maemo.org/profile/view/pancake.html pancake]
| pancake nopcode
| 
| 134
|-
| [http://maemo.org/profile/view/brentdc.html brentdc]
| Brent Chiodo
| 
| 134
|-
| [http://maemo.org/profile/view/mgedmin.html mgedmin]
| Marius Gedminas
| &quot;Programmers of Vilnius&quot;
| 133
|-
| [http://maemo.org/profile/view/elpaso.html elpaso]
| Alessandro Pasotti
| 
| 132
|-
| [http://maemo.org/profile/view/wowbagger.html wowbagger]
| David Hagood
| 
| 131
|-
| [http://maemo.org/profile/view/gary.html gary]
| gary Bishop
| 
| 131
|-
| [http://maemo.org/profile/view/mdk.html mdk]
| Michael Dominic K.
| 
| 129
|-
| [http://maemo.org/profile/view/lorelei.html lorelei]
| Pascal Jermini
| 
| 129
|-
| [http://maemo.org/profile/view/zap.html zap]
| Andrew Zabolotny
| 
| 126
|-
| [http://maemo.org/profile/view/tuukka.html tuukka]
| Tuukka Tolvanen
| 
| 126
|-
| [http://maemo.org/profile/view/kunnajak.html kunnajak]
| Jake Kunnari
| 
| 124
|-
| [http://maemo.org/profile/view/koos.html koos]
| Koos Vriezen
| &quot;froglogic Hamburg&quot;
| 123
|-
| [http://maemo.org/profile/view/adilson.html adilson]
| Adilson Oliveira
| 
| 123
|-
| [http://maemo.org/profile/view/mones.html mones]
| Ricardo Mones
| 
| 121
|-
| [http://maemo.org/profile/view/claws.html claws]
| Paul Mangan
| 
| 121
|-
| [http://maemo.org/profile/view/pronkko.html pronkko]
| Pekka Rönkkö
| 
| 118
|-
| [http://maemo.org/profile/view/wisp.html wisp]
| Joshua Layne
| 
| 118
|-
| [http://maemo.org/profile/view/jvaltane.html jvaltane]
| Joni Valtanen
| 
| 116
|-
| [http://maemo.org/profile/view/mikelococo.html mikelococo]
| Mike Lococo
| 
| 113
|-
| [http://maemo.org/profile/view/jpavelek.html jpavelek]
| Jakub Pavelek
| Nokia
| 112
|-
| [http://maemo.org/profile/view/trickie.html trickie]
| Nick Loeve
| 
| 112
|-
| [http://maemo.org/profile/view/austin.html austin]
| Austin Che
| 
| 112
|-
| [http://maemo.org/profile/view/tony2001.html tony2001]
| Antony Dovgal
| 
| 109
|-
| [http://maemo.org/profile/view/handful.html handful]
| Marcelo Eduardo
| INDT
| 108
|-
| [http://maemo.org/profile/view/jdapena.html jdapena]
| José Dapena Paz
| 
| 108
|-
| [http://maemo.org/profile/view/tswindell.html tswindell]
| Tom Swindell
| &quot;Tyco Integrated Solutions&quot;
| 107
|-
| [http://maemo.org/profile/view/stranger.html stranger]
| Dariusz Wiechecki
| &quot;ComArch S.A.&quot;
| 106
|-
| [http://maemo.org/profile/view/michaelnt.html michaelnt]
| Michael Thompson
| 
| 106
|-
| [http://maemo.org/profile/view/mjn.html mjn]
| Marko Nykanen
| 
| 106
|-
| [http://maemo.org/profile/view/sampp.html sampp]
| Sampo Savola
| 
| 105
|-
| [http://maemo.org/profile/view/johnkzin.html johnkzin]
| John Rudd
| 
| 104
|-
| [http://maemo.org/profile/view/tatiana.html tatiana]
| Tatiana Meshkova
| 
| 104
|-
| [http://maemo.org/profile/view/tahitibob35.html tahitibob35]
| David Hautbois
| Prologue
| 102
|-
| [http://maemo.org/profile/view/djcb.html djcb]
| Dirk-Jan Binnema
| Nokia
| 102
|-
| [http://maemo.org/profile/view/jobi.html jobi]
| Johan Bilien
| 
| 100
|}

[[Category:Community]]
[[Category:Community_Council]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Eligible candidates Q3 2009</title>
    <id>2394</id>
    <revision>
      <id>20320</id>
      <timestamp>2009-10-18T11:49:30Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <text xml:space="preserve">== List of eligible candidates ==

The following is the list of eligible candidates for the community council elections to be held in September 2009, according to the criteria laid out in [[Community Council]]. Karma totals are as they were on 2009-09-07.

{| class=&quot;wikitable&quot;
|-
! Username
! Real name
! Company
! Karma
|-
| [http://maemo.org/profile/view/qgil.html qgil]
| Quim Gil 
| Nokia 
| 3478
|-
| [http://maemo.org/profile/view/timsamoff.html timsamoff]
| Tim Samoff 
| 
| 2186
|-
| [http://maemo.org/profile/view/generalantilles.html generalantilles]
| Ryan Abel 
| 
| 2076
|-
| [http://maemo.org/profile/view/jaffa.html jaffa]
| Andrew Flegg 
| 
| 1769
|-
| [http://maemo.org/profile/view/yerga.html yerga]
| Daniel Martín Yerga 
| 
| 1736
|-
| [http://maemo.org/profile/view/qwerty12.html qwerty12]
| Faheem Pervez 
| 
| 1597
|-
| [http://maemo.org/profile/view/fanoush.html fanoush]
| Frantisek Dufka 
| 
| 1360
|-
| [http://maemo.org/profile/view/mikkov.html mikkov]
| Mikko Vartiainen 
| 
| 1302
|-
| [http://maemo.org/profile/view/sjgadsby.html sjgadsby]
| Stephen Gadsby 
| Millersville University of Pennsylvania 
| 1159
|-
| [http://maemo.org/profile/view/andre.html andre]
| Andre Klapper 
| Openismus GmbH 
| 1081
|-
| [http://maemo.org/profile/view/timeless.html timeless]
| timeless - 
| Nokia 
| 1028
|-
| [http://maemo.org/profile/view/nakkebar.html nakkebar]
| Eero Tamminen 
| Nokia 
| 995
|-
| [http://maemo.org/profile/view/fms.html fms]
| Marat Fayzullin 
| Intel 
| 943
|-
| [http://maemo.org/profile/view/xfade.html xfade]
| Niels Breet 
| maemo.org 
| 917
|-
| [http://maemo.org/profile/view/dneary.html dneary]
| Dave Neary 
| Neary Consulting 
| 903
|-
| [http://maemo.org/profile/view/baloo.html baloo]
| Jamie Bennett 
| 
| 888
|-
| [http://maemo.org/profile/view/murrayc.html murrayc]
| Murray Cumming 
| Openismus GmbH 
| 882
|-
| [http://maemo.org/profile/view/vdvsx.html vdvsx]
| Valério Valério 
| 
| 876
|-
| [http://maemo.org/profile/view/khertan.html khertan]
| Benoît HERVIER 
| 
| 873
|-
| [http://maemo.org/profile/view/mgedmin.html mgedmin]
| Marius Gedminas 
| Programmers of Vilnius 
| 863
|-
| [http://maemo.org/profile/view/framstag.html framstag]
| Tim Teulings 
| IT Services Germany (Deutsche Post DHL) 
| 833
|-
| [http://maemo.org/profile/view/qole.html qole]
| alan bruce 
| nothing Maemo related 
| 788
|-
| [http://maemo.org/profile/view/gcobb.html gcobb]
| Graham Cobb 
| 
| 776
|-
| [http://maemo.org/profile/view/andy80.html andy80]
| Andrea Grandi 
| 
| 752
|-
| [http://maemo.org/profile/view/bergie.html bergie]
| Henri Bergius 
| Nemein 
| 742
|-
| [http://maemo.org/profile/view/pipeline.html pipeline]
| pipe line 
| 
| 722
|-
| [http://maemo.org/profile/view/milhouse.html milhouse]
| Neil MacLeod 
| 
| 691
|-
| [http://maemo.org/profile/view/thp.html thp]
| Thomas Perl 
| 
| 685
|-
| [http://maemo.org/profile/view/atmasphere.html atmasphere]
| Jonathan Greene 
| 
| 673
|-
| [http://maemo.org/profile/view/ossi1967.html ossi1967]
| Oskar Welzl 
| 
| 641 
|-
| [http://maemo.org/profile/view/zerojay.html zerojay]
|  Jason Carter  
|  Longtail Studios/Ubisoft  
|  640
|-
| [http://maemo.org/profile/view/lardman.html lardman]
| Simon Pickering 
| NA 
| 616
|-
| [http://maemo.org/profile/view/texrat.html texrat]
| Randall Arnold 
| Ryder Logistics (formerly Nokia) 
| 616
|-
| [http://maemo.org/profile/view/anidel.html anidel]
| Aniello Del Sorbo 
| Orbis UK Ltd, London, UK 
| 609
|-
| [http://maemo.org/profile/view/lucianomw.html lucianomw]
| Luciano Wolf 
| 
| 607
|-
| [http://maemo.org/profile/view/jatikka.html jatikka]
| Jarmo Tikka 
| Nokia Corporation 
| 601
|-
| [http://maemo.org/profile/view/ed_.html ed_]
| Ed Bartosh 
| 
| 597
|-
| [http://maemo.org/profile/view/sarev0k.html sarev0k]
| 
| 
| 591
|-
| [http://maemo.org/profile/view/bundyo.html bundyo]
| Kamen Bundev 
| Telerik 
| 588
|-
| [http://maemo.org/profile/view/pycage.html pycage]
| Martin Grimme 
| Lintegra 
| 579
|-
| [http://maemo.org/profile/view/konttori.html konttori]
| Urho Konttori 
| Nokia 
| 577
|-
| [http://maemo.org/profile/view/feri.html feri]
| Ferenc Szekely 
| Urho Ltd 
| 569
|-
| [http://maemo.org/profile/view/fredoll.html fredoll]
| Fred Lefévère-Laoide 
| 
| 569
|-
| [http://maemo.org/profile/view/barbieri.html barbieri]
| Gustavo Barbieri 
| ProFUSION embedded systems 
| 542
|-
| [http://maemo.org/profile/view/florian.html florian]
| Florian Boor 
| 
| 541
|-
| [http://maemo.org/profile/view/stskeeps.html stskeeps]
| Carsten Munk 
| none 
| 517
|-
| [http://maemo.org/profile/view/lma.html lma]
| Lucas Maneos 
| 
| 517
|-
| [http://maemo.org/profile/view/jku.html jku]
| Jussi Kukkonen 
| Intel 
| 512
|-
| [http://maemo.org/profile/view/thoughtfix.html thoughtfix]
| Daniel Gentleman 
| ThoughtFix LLC 
| 512
|-
| [http://maemo.org/profile/view/kulve.html kulve]
| Tuomas Kulve 
| Movial 
| 493
|-
| [http://maemo.org/profile/view/mvo.html mvo]
| Marius Vollmer 
| Nokia 
| 486
|-
| [http://maemo.org/profile/view/etrunko.html etrunko]
| Eduardo Lima 
| openBossa/INdT 
| 469
|-
| [http://maemo.org/profile/view/disq.html disq]
| Kemal Hadimli 
| 
| 468
|-
| [http://maemo.org/profile/view/lcuk.html lcuk]
| Gary Birkett 
| N/A hobby 
| 454
|-
| [http://maemo.org/profile/view/benson.html benson]
| Benson Mitchell 
| 
| 449
|-
| [http://maemo.org/profile/view/wolfmane.html wolfmane]
| Mark Haury 
| 
| 439
|-
| [http://maemo.org/profile/view/lbt.html lbt]
| David Greaves 
| not at present - previously BT 
| 423
|-
| [http://maemo.org/profile/view/conny.html conny]
| Cornelius Hald 
| 
| 422
|-
| [http://maemo.org/profile/view/tso.html tso]
| kenneth marken 
| 
| 409
|-
| [http://maemo.org/profile/view/aisu.html aisu]
| Tyler Longwell 
| 
| 407 
|-
| [http://maemo.org/profile/view/fiferboy.html fiferboy]
|  Andrew Olmsted  
|   
|  404
|-
| [http://maemo.org/profile/view/jeremiah.html jeremiah]
| Jeremiah Foster 
| Nokia / Maemo.org 
| 401
|-
| [http://maemo.org/profile/view/agarcia.html agarcia]
| Alberto Garcia 
| Igalia 
| 395
|-
| [http://maemo.org/profile/view/tak.html tak]
| Levi Bard 
| 
| 394
|-
| [http://maemo.org/profile/view/achipa.html achipa]
| Attila Csipa 
| - 
| 393
|-
| [http://maemo.org/profile/view/ian_r.html ian_r]
| Ian Ryge 
| 
| 391
|-
| [http://maemo.org/profile/view/tz1.html tz1]
| t z 
| 
| 386
|-
| [http://maemo.org/profile/view/jlbrd.html jlbrd]
| Jean-Luc Biord 
| 
| 385
|-
| [http://maemo.org/profile/view/harbaum.html harbaum]
| Till Harbaum 
| Harman International 
| 380
|-
| [http://maemo.org/profile/view/antimirov.html antimirov]
| Eugene Antimirov 
| AND Automotive Navigation Data 
| 379
|-
| [http://maemo.org/profile/view/leif.html leif]
| Leif Ryge 
| 
| 376
|-
| [http://maemo.org/profile/view/penguinbait.html penguinbait]
| Matthew Lewis 
| 
| 376
|-
| [http://maemo.org/profile/view/keesj.html keesj]
| Kees Jongenburger 
| TomTom B.V. 
| 372
|-
| [http://maemo.org/profile/view/kvalo.html kvalo]
| Kalle Valo 
| Nokia 
| 371
|-
| [http://maemo.org/profile/view/igor_stoppa.html igor_stoppa]
| Igor Stoppa 
| 
| 364
|-
| [http://maemo.org/profile/view/serge.html serge]
| Siarhei Siamashka 
| 
| 359
|-
| [http://maemo.org/profile/view/rsuplido.html rsuplido]
| Reggie Suplido 
| talk.maemo.org 
| 350
|-
| [http://maemo.org/profile/view/beermad.html beermad]
| Tony Green 
| 
| 350
|-
| [http://maemo.org/profile/view/handful.html handful]
| Marcelo Eduardo 
| INDT 
| 341
|-
| [http://maemo.org/profile/view/brentdc.html brentdc]
| Brent Chiodo 
| 
| 340
|-
| [http://maemo.org/profile/view/olivluca.html olivluca]
| Luca Olivetti 
| 
| 335
|-
| [http://maemo.org/profile/view/collin.html collin]
| Collin Mulliner 
| 
| 330
|-
| [http://maemo.org/profile/view/wazd.html wazd]
| Andrew Zhilin 
| None 
| 328
|-
| [http://maemo.org/profile/view/zuh.html zuh]
| Kalle Vahlman 
| 
| 327
|-
| [http://maemo.org/profile/view/gnuite.html gnuite]
| John Costigan 
| Google, Inc. 
| 323
|-
| [http://maemo.org/profile/view/tbergstr.html tbergstr]
| Terje Bergström 
| 
| 321
|-
| [http://maemo.org/profile/view/jholmblad.html jholmblad]
| John Holmblad 
| 
| 320
|-
| [http://maemo.org/profile/view/wwp.html wwp]
| Tristan Chabredier 
| 
| 317
|-
| [http://maemo.org/profile/view/vasvlad.html vasvlad]
| Vlad Vasiliev 
| Gas company 
| 312
|-
| [http://maemo.org/profile/view/frankusb.html frankusb]
| Frank Banul 
| 
| 310 
|-
| [http://maemo.org/profile/view/jukey.html jukey]
|  Uwe Kaminski  
|   
|  309
|-
| [http://maemo.org/profile/view/loki.html loki]
| Massimo Mund 
| 
| 304
|-
| [http://maemo.org/profile/view/ukki.html ukki]
| Janne Mäkinen 
| 
| 303
|-
| [http://maemo.org/profile/view/tonymaro.html tonymaro]
| Tony Maro 
| 
| 302
|-
| [http://maemo.org/profile/view/bunanson.html bunanson]
| anson bun 
| Wilson Surgical Associates 
| 299
|-
| [http://maemo.org/profile/view/kate.html kate]
| Kate Alhola 
| Nokia 
| 298
|-
| [http://maemo.org/profile/view/marcell.html marcell]
| Marcell Lengyel 
| Nokia 
| 297
|-
| [http://maemo.org/profile/view/matan.html matan]
| Matan Ziv-Av 
| 
| 291
|-
| [http://maemo.org/profile/view/johnkzin.html johnkzin]
| John Rudd 
| 
| 289
|-
| [http://maemo.org/profile/view/czr.html czr]
| Aleksandr Koltsoff 
| 
| 289
|-
| [http://maemo.org/profile/view/axique.html axique]
| Christoph Würstle 
| 
| 286
|-
| [http://maemo.org/profile/view/brontide.html brontide]
| Eric Warnke 
| 
| 284
|-
| [http://maemo.org/profile/view/truejournals.html truejournals]
| Bobby Graese 
| 
| 284
|-
| [http://maemo.org/profile/view/simon.html simon]
| Simon Budig 
| kernel concepts 
| 284
|-
| [http://maemo.org/profile/view/bun.html bun]
| anson li 
| 
| 283
|-
| [http://maemo.org/profile/view/javispedro.html javispedro]
| Javier S. Pedro 
| 
| 281
|-
| [http://maemo.org/profile/view/hhedberg.html hhedberg]
| Henrik Hedberg 
| University of Oulu 
| 277
|-
| [http://maemo.org/profile/view/tvogel.html tvogel]
| Tilman Vogel 
| 
| 273
|-
| [http://maemo.org/profile/view/eipi.html eipi]
| Sanjeev Visvanatha 
| nothing remotely related to Maemo 
| 273
|-
| [http://maemo.org/profile/view/mike_morrison.html mike_morrison]
| mike morrison 
| 
| 264
|-
| [http://maemo.org/profile/view/colinleroy.html colinleroy]
| Colin Leroy 
| 
| 263
|-
| [http://maemo.org/profile/view/mwiktowy.html mwiktowy]
| Michael Wiktowy 
| 
| 262
|-
| [http://maemo.org/profile/view/geraldko.html geraldko]
| Gerald Koblentz 
| 
| 262
|-
| [http://maemo.org/profile/view/megabyte405.html megabyte405]
| Ryan Pavlik 
| 
| 259
|-
| [http://maemo.org/profile/view/linuxrebel.html linuxrebel]
| James Sparenberg 
| 
| 257
|-
| [http://maemo.org/profile/view/kaltsi.html kaltsi]
| Juha Kallioinen 
| Nokia 
| 256
|-
| [http://maemo.org/profile/view/kihamala.html kihamala]
| Kimmo Hämäläinen 
| 
| 256
|-
| [http://maemo.org/profile/view/zeenix.html zeenix]
| Zeeshan Ali 
| 
| 256
|-
| [http://maemo.org/profile/view/pvanhoof.html pvanhoof]
| Philip Van Hoof 
| Codeminded 
| 255
|-
| [http://maemo.org/profile/view/matt.html matt]
| Matt Johnston 
| 
| 253 
|-
| [http://maemo.org/profile/view/yodude.html yodude]
|  Steven Yeager  
|  Yoyodyne  
|  251
|-
| [http://maemo.org/profile/view/tor.html tor]
| Tor Arntsen 
| 
| 250
|-
| [http://maemo.org/profile/view/andrewfblack.html andrewfblack]
| Andrew Black 
| 
| 248
|-
| [http://maemo.org/profile/view/jsmanrique.html jsmanrique]
| Manrique Lopez 
| CTIC 
| 247
|-
| [http://maemo.org/profile/view/terje.html terje]
| Terje Bergström 
| 
| 246
|-
| [http://maemo.org/profile/view/saturn.html saturn]
| Christos Saturn 
| 
| 242
|-
| [http://maemo.org/profile/view/rsperberg.html rsperberg]
| Roger Sperberg 
| Self 
| 240
|-
| [http://maemo.org/profile/view/morphbr.html morphbr]
| Artur Souza 
| openBossa 
| 238
|-
| [http://maemo.org/profile/view/scriptkiller.html scriptkiller]
| Michael Arndt 
| 
| 238
|-
| [http://maemo.org/profile/view/danielwilms.html danielwilms]
| daniel wilms 
| Nokia 
| 236
|-
| [http://maemo.org/profile/view/mishas.html mishas]
| Mikhail Sobolev 
| 
| 236
|-
| [http://maemo.org/profile/view/bobpaul.html bobpaul]
| Paul Klapperich 
| 
| 235
|-
| [http://maemo.org/profile/view/sachin007.html sachin007]
| vamsi kanumuri 
| 
| 234
|-
| [http://maemo.org/profile/view/trevarthan.html trevarthan]
| Jesse Guardiani 
| 
| 234
|-
| [http://maemo.org/profile/view/allnameswereout.html allnameswereout]
| Jeroen Prefernottosay 
| 
| 230
|-
| [http://maemo.org/profile/view/johnx.html johnx]
| John Bloom 
| The Driver Training Group 
| 230
|-
| [http://maemo.org/profile/view/klausr.html klausr]
| Klaus Rotter 
| 
| 229
|-
| [http://maemo.org/profile/view/matsavol.html matsavol]
| Matti Savolainen 
| 
| 227
|-
| [http://maemo.org/profile/view/fcrozat.html fcrozat]
| Frederic Crozat 
| 
| 226
|-
| [http://maemo.org/profile/view/fredp.html fredp]
| Fred Pacquier 
| (ITT: fpp) 
| 225
|-
| [http://maemo.org/profile/view/lorelei.html lorelei]
| Pascal Jermini 
| 
| 225
|-
| [http://maemo.org/profile/view/drnshaw.html drnshaw]
| Nicholas Shaw 
| 
| 224
|-
| [http://maemo.org/profile/view/chelli.html chelli]
| Thomas Schmidt 
| Freelancer 
| 224
|-
| [http://maemo.org/profile/view/debernardis.html debernardis]
| Ernesto de Bernardis 
| 
| 220
|-
| [http://maemo.org/profile/view/zap.html zap]
| Andrew Zabolotny 
| 
| 216
|-
| [http://maemo.org/profile/view/karoliina.html karoliina]
| Karoliina Salminen 
| Nokia Corporation 
| 216
|-
| [http://maemo.org/profile/view/zerionseven.html zerionseven]
| Tero Hietanen 
| 
| 216
|-
| [http://maemo.org/profile/view/twaelti.html twaelti]
| Tom Waelti 
| IT consulting / eGov / Healthcare 
| 213
|-
| [http://maemo.org/profile/view/hrw.html hrw]
| Marcin Juszkiewicz 
| HaeRWu 
| 213
|-
| [http://maemo.org/profile/view/meizirkki.html meizirkki]
| Roope Kuisma 
| 
| 211 
|-
| [http://maemo.org/profile/view/koen.html koen]
|  Koen Kooi  
|   
|  210
|-
| [http://maemo.org/profile/view/tonikitoo.html tonikitoo]
| Antonio Gomes 
| 
| 210
|-
| [http://maemo.org/profile/view/daperl.html daperl]
| Earl Pearl 
| 
| 207
|-
| [http://maemo.org/profile/view/ktneely.html ktneely]
| Kevin Neely 
| 
| 206
|-
| [http://maemo.org/profile/view/oriolj.html oriolj]
| Oriol Jiménez 
| 
| 206
|-
| [http://maemo.org/profile/view/feijai.html feijai]
| Sean Luke 
| 
| 205
|-
| [http://maemo.org/profile/view/jtukkine.html jtukkine]
| Juha Tukkinen 
| Nokia 
| 204
|-
| [http://maemo.org/profile/view/donaggio.html donaggio]
| Luca Donaggio 
| 
| 204
|-
| [http://maemo.org/profile/view/geneven.html geneven]
| Gene Venable 
| Unemployed at the time 
| 202
|-
| [http://maemo.org/profile/view/fpp.html fpp]
| Fred Pacquier 
| 
| 202
|-
| [http://maemo.org/profile/view/vern.html vern]
| Ian Lawrence 
| INdT 
| 201
|-
| [http://maemo.org/profile/view/rdorsch.html rdorsch]
| Rainer Dorsch 
| 
| 201
|-
| [http://maemo.org/profile/view/b0unc3.html b0unc3]
| Daniele Maio 
| 
| 200
|-
| [http://maemo.org/profile/view/jandmdickerson.html jandmdickerson]
| John Dickerson 
| 
| 200
|-
| [http://maemo.org/profile/view/bones.html bones]
| Sergio Melas 
| Solvay Chemicals 
| 199
|-
| [http://maemo.org/profile/view/felipec.html felipec]
| Felipe Contreras 
| 
| 199
|-
| [http://maemo.org/profile/view/nix_nix.html nix_nix]
| Gabriel Schulhof 
| 
| 198
|-
| [http://maemo.org/profile/view/koos.html koos]
| Koos Vriezen 
| froglogic Hamburg 
| 197
|-
| [http://maemo.org/profile/view/frisket.html frisket]
| Peter Flynn 
| 
| 197
|-
| [http://maemo.org/profile/view/dannym.html dannym]
| Danny Milosavljevic 
| 
| 194
|-
| [http://maemo.org/profile/view/tahitibob35.html tahitibob35]
| David Hautbois 
| Prologue 
| 193
|-
| [http://maemo.org/profile/view/rm_you.html rm_you]
| Adam Harwell 
| 
| 193
|-
| [http://maemo.org/profile/view/pamadio.html pamadio]
| Pierre Amadio 
| 
| 193
|-
| [http://maemo.org/profile/view/ciroip.html ciroip]
| Ciro Ippolito 
| 
| 191
|-
| [http://maemo.org/profile/view/jbenc.html jbenc]
| Jiri Benc 
| 
| 188
|-
| [http://maemo.org/profile/view/danramos.html danramos]
| Dan Ramos 
| 
| 182
|-
| [http://maemo.org/profile/view/guerby.html guerby]
| Laurent GUERBY 
| 
| 180
|-
| [http://maemo.org/profile/view/terrencegf.html terrencegf]
| Terrence Fleury 
| 
| 179
|-
| [http://maemo.org/profile/view/tuukka.html tuukka]
| Tuukka Tolvanen 
| 
| 178
|-
| [http://maemo.org/profile/view/sebas.html sebas]
| Sebastian Maemo 
| CEMS 
| 178 
|-
| [http://maemo.org/profile/view/adaviel.html adaviel]
|  Andrew Daviel  
|   
|  175
|-
| [http://maemo.org/profile/view/itkach.html itkach]
| Igor Tkach 
| 
| 174
|-
| [http://maemo.org/profile/view/linuxhippy.html linuxhippy]
| Clemens Eisserer 
| 
| 174
|-
| [http://maemo.org/profile/view/daniels.html daniels]
| Daniel Stone 
| 
| 171
|-
| [http://maemo.org/profile/view/gnuton.html gnuton]
| Antonio Aloisio 
| Nokia 
| 170
|-
| [http://maemo.org/profile/view/vinc17.html vinc17]
| Vincent Lefèvre 
| 
| 168
|-
| [http://maemo.org/profile/view/ciron810.html ciron810]
| Ciro Ippolito 
| 
| 168
|-
| [http://maemo.org/profile/view/inz.html inz]
| Santtu Lakkala 
| Nomovok 
| 167
|-
| [http://maemo.org/profile/view/newca12.html newca12]
| Olivier ROLAND 
| 
| 165
|-
| [http://maemo.org/profile/view/mdk.html mdk]
| Michael Dominic K. 
| New Wild 
| 165
|-
| [http://maemo.org/profile/view/iancumihai.html iancumihai]
| mihai iancu 
| 
| 165
|-
| [http://maemo.org/profile/view/rossburton.html rossburton]
| Ross Burton 
| 
| 165
|-
| [http://maemo.org/profile/view/lbattraw.html lbattraw]
| Larry Battraw 
| 
| 165
|-
| [http://maemo.org/profile/view/jakunnar.html jakunnar]
| Jake Kunnari 
| 
| 164
|-
| [http://maemo.org/profile/view/vlg.html vlg]
| Vladislav Grinchenko 
| 
| 163
|-
| [http://maemo.org/profile/view/sampp.html sampp]
| Sampo Savola 
| 
| 162
|-
| [http://maemo.org/profile/view/lemody.html lemody]
| Tapani Pälli 
| 
| 161
|-
| [http://maemo.org/profile/view/krisse.html krisse]
| Krisse Juorunen 
| 
| 161
|-
| [http://maemo.org/profile/view/carlos.html carlos]
| Carlos Guerreiro 
| 
| 161
|-
| [http://maemo.org/profile/view/pupnik.html pupnik]
| Arnim Sauerbier 
| 
| 160
|-
| [http://maemo.org/profile/view/sd69.html sd69]
| RM Bauer 
| 
| 156
|-
| [http://maemo.org/profile/view/miker.html miker]
| Mike Rowehl 
| 
| 155
|-
| [http://maemo.org/profile/view/lapa.html lapa]
| Luis Lorenzo 
| 
| 155
|-
| [http://maemo.org/profile/view/thesandlord.html thesandlord]
| Sandeep Dinesh 
| 
| 152
|-
| [http://maemo.org/profile/view/dkwatts.html dkwatts]
| dk watts 
| 
| 151
|-
| [http://maemo.org/profile/view/homac.html homac]
| Holger Macht 
| 
| 151
|-
| [http://maemo.org/profile/view/andrewbarr.html andrewbarr]
| Andrew Barr 
| 
| 151
|-
| [http://maemo.org/profile/view/mullf.html mullf]
| Fred Mull 
| 
| 149
|-
| [http://maemo.org/profile/view/maddler.html maddler]
| William Maddler 
| Komputika s.a.s. 
| 149
|-
| [http://maemo.org/profile/view/lm2.html lm2]
| lm2 isme 
| 
| 148 
|-
| [http://maemo.org/profile/view/wdehoog.html wdehoog]
|  Willem-Jan de Hoog  
|   
|  148
|-
| [http://maemo.org/profile/view/bmidgley.html bmidgley]
| Brad Midgley 
| 
| 147
|-
| [http://maemo.org/profile/view/bluegene.html bluegene]
| vicente garcia diez 
| 
| 147
|-
| [http://maemo.org/profile/view/nilchak.html nilchak]
| Nilanjan Chaks 
| 
| 147
|-
| [http://maemo.org/profile/view/muebelacker.html muebelacker]
| Mathias Uebelacker 
| TRUCK-LOC 
| 146
|-
| [http://maemo.org/profile/view/marciom.html marciom]
| Marcio Macedo 
| INdT 
| 146
|-
| [http://maemo.org/profile/view/mikelococo.html mikelococo]
| Mike Lococo 
| 
| 146
|-
| [http://maemo.org/profile/view/epage.html epage]
| Ed Page 
| 
| 145
|-
| [http://maemo.org/profile/view/b-man.html b-man]
| Brian McKenzie 
| 
| 145
|-
| [http://maemo.org/profile/view/technut.html technut]
| technut . 
| 
| 145
|-
| [http://maemo.org/profile/view/arnims.html arnims]
| Arnim Sauerbier 
| 
| 144
|-
| [http://maemo.org/profile/view/melunko.html melunko]
| Hallyson Melo 
| 
| 144
|-
| [http://maemo.org/profile/view/mobiledivide.html mobiledivide]
| Itai Kaitano 
| NYU 
| 144
|-
| [http://maemo.org/profile/view/zulla.html zulla]
| Hanno Zulla 
| 
| 143
|-
| [http://maemo.org/profile/view/lemmyslender.html lemmyslender]
| Len Palmer 
| 
| 143
|-
| [http://maemo.org/profile/view/speculatrix.html speculatrix]
| Paul M 
| 
| 143
|-
| [http://maemo.org/profile/view/kimitake.html kimitake]
| Kimitake . 
| 
| 143
|-
| [http://maemo.org/profile/view/boxofsnoo.html boxofsnoo]
| Jonathan Markevich 
| 
| 142
|-
| [http://maemo.org/profile/view/detlef.html detlef]
| Detlef Schmicker 
| 
| 141
|-
| [http://maemo.org/profile/view/tigert.html tigert]
| Tuomas Kuosmanen 
| Nokia 
| 140
|-
| [http://maemo.org/profile/view/pronkko.html pronkko]
| Pekka Rönkkö 
| 
| 139
|-
| [http://maemo.org/profile/view/fragos.html fragos]
| George Fragos 
| 
| 139
|-
| [http://maemo.org/profile/view/eiffel.html eiffel]
| Roger Browne 
| 
| 139
|-
| [http://maemo.org/profile/view/ywwg.html ywwg]
| Owen Williams 
| 
| 137
|-
| [http://maemo.org/profile/view/zoran.html zoran]
| Zoran Kolic 
| 
| 136
|-
| [http://maemo.org/profile/view/ajf.html ajf]
| Alfredo J. Fabretti 
| 
| 136
|-
| [http://maemo.org/profile/view/setanta.html setanta]
| Marcelo Lira 
| Instituto Nokia de Tecnologia (INdT) 
| 133
|-
| [http://maemo.org/profile/view/raul.html raul]
| Raul Herbster 
| 
| 133
|-
| [http://maemo.org/profile/view/djcb.html djcb]
| Dirk-Jan Binnema 
| Nokia 
| 133
|-
| [http://maemo.org/profile/view/nhanquy.html nhanquy]
| Nhan Tran 
| 
| 132 
|-
| [http://maemo.org/profile/view/jaaksi.html jaaksi]
|  Ari Jaaksi  
|   
|  132
|-
| [http://maemo.org/profile/view/tekojo.html tekojo]
| Tero Kojo 
| Nokia 
| 129
|-
| [http://maemo.org/profile/view/jayonthabeat.html jayonthabeat]
| Jay Haltom 
| 
| 129
|-
| [http://maemo.org/profile/view/nils.html nils]
| Nils Faerber 
| kernel concepts 
| 129
|-
| [http://maemo.org/profile/view/jeffbarish.html jeffbarish]
| Jeffrey Barish 
| 
| 129
|-
| [http://maemo.org/profile/view/jait.html jait]
| Jari Tenhunen 
| 
| 128
|-
| [http://maemo.org/profile/view/xyzo.html xyzo]
| Laurent MARTIN 
| 
| 127
|-
| [http://maemo.org/profile/view/wolfg1969.html wolfg1969]
| Yong Guo 
| 
| 125
|-
| [http://maemo.org/profile/view/munky261.html munky261]
| adam baker 
| 
| 125
|-
| [http://maemo.org/profile/view/pincushionqueen.html pincushionqueen]
| Heather Sloan 
| 
| 124
|-
| [http://maemo.org/profile/view/leandro.html leandro]
| Leandro Sales 
| Federal University of Campina Grande 
| 124
|-
| [http://maemo.org/profile/view/spirit-iddqd.html spirit-iddqd]
| Kirill Plyashkevich 
| 
| 124
|-
| [http://maemo.org/profile/view/jdapena.html jdapena]
| José Dapena Paz 
| Igalia 
| 123
|-
| [http://maemo.org/profile/view/tao.html tao]
| David Weinehall 
| Nokia 
| 122
|-
| [http://maemo.org/profile/view/osemutech.html osemutech]
| James Watters 
| 
| 122
|-
| [http://maemo.org/profile/view/luogni.html luogni]
| Luca Ognibene 
| Antek 
| 122
|-
| [http://maemo.org/profile/view/silvermountain.html silvermountain]
| Silver Mountain 
| 
| 122
|-
| [http://maemo.org/profile/view/kunnajak.html kunnajak]
| Jake Kunnari 
| Capgemini Finland Oy 
| 122
|-
| [http://maemo.org/profile/view/briand.html briand]
| Brian Dunworth 
| 
| 122
|-
| [http://maemo.org/profile/view/nite_man.html nite_man]
| Michael Stepanov 
| 
| 121
|-
| [http://maemo.org/profile/view/emjayes.html emjayes]
| Mika Saarela 
| 
| 121
|-
| [http://maemo.org/profile/view/mones.html mones]
| Ricardo Mones 
| 
| 121
|-
| [http://maemo.org/profile/view/claws.html claws]
| Paul Mangan 
| 
| 121
|-
| [http://maemo.org/profile/view/alevinsn.html alevinsn]
| Aaron Levinson 
| 
| 121
|-
| [http://maemo.org/profile/view/wowbagger.html wowbagger]
| David Hagood 
| 
| 121
|-
| [http://maemo.org/profile/view/rcadden.html rcadden]
| Ricky Cadden 
| MobileBurn.com 
| 121
|-
| [http://maemo.org/profile/view/hns.html hns]
| Hannes Wallnoefer 
| 
| 120
|-
| [http://maemo.org/profile/view/tatiana.html tatiana]
| Tatiana Meshkova 
| 
| 119
|-
| [http://maemo.org/profile/view/krischan.html krischan]
| Krischan Keitsch 
| EnBW Trading gmbh 
| 119
|-
| [http://maemo.org/profile/view/dgdimick.html dgdimick]
| Denis Dimick 
| 
| 119 
|-
| [http://maemo.org/profile/view/maacruz.html maacruz]
|  Miguel Angel Alvarez  
|   
|  119
|-
| [http://maemo.org/profile/view/rambo.html rambo]
| Eero af Heurlin 
| Nemein Oy 
| 119
|-
| [http://maemo.org/profile/view/tko.html tko]
| Tommi Komulainen 
| 
| 118
|-
| [http://maemo.org/profile/view/labaudio.html labaudio]
| eric king 
| 
| 118
|-
| [http://maemo.org/profile/view/tswindell.html tswindell]
| Tom Swindell 
| Tyco Integrated Solutions 
| 117
|-
| [http://maemo.org/profile/view/shashurup.html shashurup]
| George Kibardin 
| 
| 117
|-
| [http://maemo.org/profile/view/dwould.html dwould]
| Daniel Would 
| 
| 116
|-
| [http://maemo.org/profile/view/jpavelek.html jpavelek]
| Jakub Pavelek 
| Nokia 
| 116
|-
| [http://maemo.org/profile/view/test1.html test1]
| Test1 User1 
| 
| 113
|-
| [http://maemo.org/profile/view/bela.html bela]
| Proba Proba 
| 
| 113
|-
| [http://maemo.org/profile/view/mjn.html mjn]
| Marko Nykanen 
| 
| 113
|-
| [http://maemo.org/profile/view/jaem.html jaem]
| Jeffery MacEachern 
| 
| 113
|-
| [http://maemo.org/profile/view/rickybrent.html rickybrent]
| Ricky Brent 
| 
| 113
|-
| [http://maemo.org/profile/view/yabbas.html yabbas]
| Yasin Abbas 
| 
| 113
|-
| [http://maemo.org/profile/view/svu.html svu]
| Sergey Udaltsov 
| 
| 112
|-
| [http://maemo.org/profile/view/tony2001.html tony2001]
| Antony Dovgal 
| 
| 112
|-
| [http://maemo.org/profile/view/karstenb.html karstenb]
| Karsten Bräckelmann 
| Openismus 
| 112
|-
| [http://maemo.org/profile/view/gemniii42.html gemniii42]
| george newbury 
| 
| 111
|-
| [http://maemo.org/profile/view/sho.html sho]
| Eike Hein 
| 
| 111
|-
| [http://maemo.org/profile/view/petertheplumber.html petertheplumber]
| Peter Bart 
| 
| 111
|-
| [http://maemo.org/profile/view/danilo.html danilo]
| Danilo Cesar Lemes de Paula 
| 
| 110
|-
| [http://maemo.org/profile/view/kup.html kup]
| Peter Kupietz 
| 
| 110
|-
| [http://maemo.org/profile/view/momchil.html momchil]
| momchil karabulev 
| 
| 109
|-
| [http://maemo.org/profile/view/gary.html gary]
| gary Bishop 
| 
| 109
|-
| [http://maemo.org/profile/view/pelago.html pelago]
| John Veness 
| 
| 108
|-
| [http://maemo.org/profile/view/coldfusion.html coldfusion]
| Stefan Kochev 
| 
| 108
|-
| [http://maemo.org/profile/view/stranger.html stranger]
| Dariusz Wiechecki 
| ComArch S.A. 
| 106
|-
| [http://maemo.org/profile/view/mklein.html mklein]
| Mike Klein 
| 
| 106
|-
| [http://maemo.org/profile/view/neiljerram.html neiljerram]
| Neil Jerram 
| 
| 106
|-
| [http://maemo.org/profile/view/microphobic.html microphobic]
| Plamen Tonev 
| 
| 105 
|-
| [http://maemo.org/profile/view/ahsima.html ahsima]
|  ah sima  
|   
|  104
|-
| [http://maemo.org/profile/view/jkataja.html jkataja]
| Janne Kataja 
| 
| 104
|-
| [http://maemo.org/profile/view/yann_b.html yann_b]
| Yann Benigot 
| 
| 104
|-
| [http://maemo.org/profile/view/nikosapi.html nikosapi]
| Nick Nobody 
| 
| 103
|-
| [http://maemo.org/profile/view/neatojones.html neatojones]
| Nathan Jones 
| 
| 103
|-
| [http://maemo.org/profile/view/dkothari.html dkothari]
| Devesh Kothari 
| 
| 102
|-
| [http://maemo.org/profile/view/insert_nick.html insert_nick]
| Antonio Orlando 
| 
| 101
|-
| [http://maemo.org/profile/view/unique311.html unique311]
| stan one 
| 
| 101
|-
| [http://maemo.org/profile/view/austin.html austin]
| Austin Che 
| 
| 101
|-
| [http://maemo.org/profile/view/johs.html johs]
| Joshua Smith 
| 
| 100
|-
| [http://maemo.org/profile/view/pronvit.html pronvit]
| Vitaliy Pronkin 
| 
| 100
|-
| [http://maemo.org/profile/view/pancake.html pancake]
| pancake nopcode 
| 
| 100
|-
| [http://maemo.org/profile/view/ruda.html ruda]
| Rudá Moura 
| 
| 100
|-
| [http://maemo.org/profile/view/skatebiker.html skatebiker]
| skate biker 
| 
| 100 
|}
[[Category:Community_Council]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/FAQ</title>
    <id>3812</id>
    <revision>
      <id>32688</id>
      <timestamp>2010-04-14T13:47:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Community]]</comment>
      <text xml:space="preserve">=== What is the council ''for?'' ===
There have been a number of times when Nokia have asked for the community's input on something (for example, the [[Task:100Days|100 days brainstorm]]) and been met with either silence; or a cacophony of disparate voices. The aim of the council is for the community to have selected five representatives who speak with a more authoritative voice. These council members, elected for their views, can express their opinions safe in the knowledge that the community has permitted them to do so.


=== Who is the Maemo &quot;community&quot;? ===
The &quot;Maemo community&quot; is roughly defined as:

* all users of maemo.org;
* people sufficiently attached to Maemo devices via blogging about them, developing for them, or discussing them.


=== What is the difference between a council member and a committed community member? ===
Paperwork ;-)

More seriously, nothing much at all. Many of the roles and tasks council members will be involved in are no way restricted to just council members. It is, in all honesty, a facilitation role: doing what one would do normally, but also absorbing information from other sources to try and minimise any duplication and represent the community to Nokia; and itself.

It is expected that council members will attend more of the monthly meetings, and be aware of more community channels than otherwise.

It has also been proposed that the council would have oversight of paid staff working for maemo.org.


=== Do council members get paid? Is membership a &quot;reward&quot;? ===
No. Council members will typically (but not necessarily) &quot;do&quot; more than another community member. The council are still community members, and have been selected by the community's belief that the views presented by the selected members will both a) align with their own views, and b) best represent the community's interests.

It is hoped that membership of the council will count strongly towards any future device discount programmes, or event sponsorship; but these are a) not guaranteed, b) relatively small.


=== Have the council signed general NDAs with Nokia? ===
No. The council does not know anything that anyone in the community couldn't find out. The only exception is that Nokia will sometimes warn the council about announcements shortly ahead of time to warn the council that their efforts in facilitating community discussion may soon be needed.


=== How can I get involved? ===
You do not need the council's permission to become an active member of the Maemo community. In the words of a famous shoe maker: just do it.

If you require additional help from the community, email the [https://lists.maemo.org/mailman/listinfo/maemo-community maemo-community] mailing list. If you require more discretion, there is an email alias which goes directly to the council members: [mailto:council@maemo.org council@maemo.org].

If there is a specific task you want to raise, and push for at the monthly meetings, see the [[Maemo.org_Sprints#Tasks sprint process]].


=== How can I stand for the council? ===
Before the elections, nominations are requested on the maemo-community mailing list. It is expected that someone who wants to help shape the community will be subscribed to that mailing list.


=== Will MeeGo have a council? ===
It's not yet known whether MeeGo will have an exact equivalent to Maemo's Community Council, however the council will work with the MeeGo Community Working Group to best shape that growing community.

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community Council/Voting rights Q1 2009</title>
    <id>1586</id>
    <revision>
      <id>12677</id>
      <timestamp>2009-04-21T10:12:22Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>Categorization</comment>
      <text xml:space="preserve">The Community Council, after lots of discussion, has proposed to have a referendum on who will have voting rights for the upcoming Maemo Community Council election.

The choices proposed are to maintain the status quo, or to allow anyone with a maemo.org account at some fixed date to vote in the election. The decision of this referendum will only apply to the coming election. The referendum is proposed to take into account some of the shortcomings of the current karma measure.

To vote, please visit [http://maemo.org/vote the voting page].

== Proposed options ==

The changes mentioned below will be made to the item #3 in [[Community Council#Election process|the Council election process]] for the upcoming Community Council election.

# '''25 karma minimum ''and'' 3 month old account''' (status quo)
#* [[Community Council#Election process|Item #3]] remains &quot;''Only community members who have had maemo.org accounts for over 3 months, and have karma of 25 or above, may vote.''&quot;
# '''Karma ignored, anyone with an account for more than 3 months may vote''' (council preferred option)
#* [[Community Council#Election process|Item #3]] becomes &quot;''Only community members who have had maemo.org accounts for over 3 months, and have karma of 25 or above, may vote. (Exception for first two elections: community members who have maemo.org accounts for over 3 months may vote - no karma requirement)''&quot;
#* This option is preferred by the Maemo Community Council to encourage a greater participation and uptake of maemo.org accounts, before the talk.maemo.org transition and launch of the revamped website.
# '''Neither of the above.'''
#* This option allows you to indicate that you think none of the options is satisfactory.


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU</title>
    <id>4657</id>
    <revision>
      <id>50521</id>
      <timestamp>2012-10-27T16:37:24Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>/* Installation */</comment>
      <text xml:space="preserve">&lt;div style=&quot;float: right&quot;&gt;
&lt;imagemap&gt;
Image:Bugsquad-logo-wazd-small.png|84px|center|thumb|Report bug
desc none
default [https://bugs.maemo.org/enter_bug.cgi?product=Maemo%205%20Community%20SSU]
&lt;/imagemap&gt;
&lt;/div&gt;
&lt;div style=&quot;float:right&quot;&gt;
&lt;imagemap&gt;
Image:Cssu_testing_5.png|center|thumb|Testing
desc none
default [http://repository.maemo.org/community-testing/community-testing-fremantle.install Install testing]
&lt;/imagemap&gt;
&lt;/div&gt;&lt;div style=&quot;float:right&quot;&gt;
&lt;imagemap&gt;
Image:Cssu_stable_5.png|center|thumb|Stable
desc none
default [http://repository.maemo.org/community/community-fremantle.install Install stable]
&lt;/imagemap&gt;
&lt;/div&gt;&lt;div style=&quot;float: right&quot;&gt;
[[Image:Cssu_both_5.png‎]]
&lt;/div&gt;

==What is it?==
Seamless Software Update ([[Seamless Software Update|SSU]]), is the term Nokia formerly used for over-the-air updates of Maemo (generally marketed as Maemo Update as of Maemo 5).

The Community Seamless Software Update (CSSU) is being developed by the Maemo community as a continuation of, and expansion on, Nokia's update support. It aims to deliver fixes which would be difficult to deliver through Extras (like core Maemo packages). It won't, however, bundle software which can (or could) be installed through the Extras repositories.

'''There are two such efforts for the Maemo platform.''' This page describes the one for Fremantle (Maemo 5, as used in the Nokia N900). The '''[[Diablo Community Project]]''' is doing the same for Diablo (Maemo 4.1, as used in the Nokia N800, N810 and N810 WiMAX Edition).
&lt;br clear=&quot;all&quot;&gt;

==Whom is it for?==
Since the release of the stable branch CSSU-S is meant to be the LongTermSupport hotspot for all N900 users/owners.
Power-users, developers, Nokia/Maemo/MeeGo engineers, testers, documentation writers and those willing to risk a re-flash in order to help can still install the testing version and stay as bleeding edge as possible inside CSSU universe, not implying CSSU will be the bleeding edge and pacemaker of development away from maemo5 towards something above and beyond. Maximum compatibility for '''all''' N900 owners is CSSU primary guidance.

==Installation==

&quot;Newbie&quot; Video Tutorial: http://www.youtube.com/watch?v=uMHxo1ALXNE

Another nice one (I (jr/docS) prefer it better): http://www.youtube.com/watch?feature=fvwp&amp;NR=1&amp;v=DPVHOpGVzZY

Nevertheless read this full page as well, before starting CSSU installation, so you understand what it's all about.

Note that both videos show installation (and features) of CSSU-T - for (on first glance missing) features of CSSU-S see http://wiki.maemo.org/Community_SSU#Features

'''There's no way to &quot;uninstall&quot; CSSU!''' Although you hardly ever want to do that. So:

# Install [http://maemo.org/packages/view/backupmenu/ backupmenu] . Do a full backup of your system. Get your battery charged up to state &quot;green&quot;. All this is not mandatory but highly recommended, as usual. Plug in wallcharger. Get a softdrink of your choice :-)
# If you haven't done yet (unlikely): Upgrade to at least [[Maemo 5/PR1.3|PR1.3]], Nokia's last official major Maemo 5 update. PR1.3.1 is fine as well. If you're unsure if you have, ''Settings &gt; About product'' should show ''Version'' beginning with '''20.2010.36'''(PR1.3) or '''21.2011.38'''(PR1.3.1). Make sure you have no too weird catalog settings in Application manager, esp it's recommended you never disable the core Nokia SSU repositories.
# In case you have modified hildon-desktop installed remove it before taking further steps, all your settings will work since cssu does include all m-h-d changes. Rebooting the N900 prior to next step is probably a good idea, to make sure no memory hogs or anything is running. Make sure your device has a working connection to internet prior to next step, preferably via WLAN or a high bandwidth 3G data connection.
# Open this page in N900 webbrowser. Think a minute if you want to be a tester supporting CSSU bleeding edge, or you rather need a rock solid CSSU, then click on the according Install [http://repository.maemo.org/community/community-fremantle.install stable] or [http://repository.maemo.org/community-testing/community-testing-fremantle.install testing] green button at top of this page.
# Hildon Application Manager (HAM) will launch and begin processing (be patient as nothing seems to happen for some minutes). There are a series of installations for which it will prompt you with messages and warnings. Click &quot;Accept&quot; and &quot;Done&quot; for each to install.
# Once this is completed, close HAM and go into the applications menu. Tap the ''Community SSU'' icon. This will run through a series of scripts to ensure the community repository are set up.
# HAM will re-open and present you the real thing: a system upgrade called '''Maemo 5 Community SSU''' - probably you want to install it ;-D. This will take a while. Once installed, your device will reboot.
# If you installed the stable version and have edited your ''transitions.ini'' before installing, then you'll find your old settings in the file ''/usr/share/hildon-desktop/transitions.ini.precssu''. You can either just copy it over the new one and miss out on the new features, or incorporate your changes.


Problems? Check the [[Community_SSU/Installation_FAQ|Installation FAQ]]

==Features==
{{main|Community SSU/Features}}
{{main|Community SSU/FeaturesStable}}

You find there how to use new features such as [http://thpmaemo.blogspot.com/2011/02/community-ssu-features-to-look-forward.html Thomas Perl's hildon-desktop improvements] and the status of applications in [[Portrait Mode]] with &lt;code&gt;forcerotation&lt;/code&gt;.

==Changelog==
{{main|Community SSU/Changelog}}
{{main|Community SSU/ChangelogStable}}

lists all changes from stock PR1.3 to CSSU and between various CSSU releases.

==Contributing==
{| style=&quot;background: #e8d8c8; border: 1px solid #666; width: 100%; text-align: center&quot;
| Get involved on [[IRC]] (&lt;code&gt;#maemo-ssu&lt;/code&gt;), [http://talk.maemo.org/showthread.php?t=67905 Talk], [https://bugs.maemo.org/buglist.cgi?resolution=FIXED&amp;resolution=WONTFIX&amp;resolution=---&amp;classification=Extras&amp;query_format=advanced&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;product=Maemo%205%20Community%20SSU Bugzilla] and [http://gitorious.org/community-ssu Gitorious].
|}

'''Can you write documentation?''' If so, it'd be great to flesh out the wiki page with installation instructions (to make it easy for users to install without worrying about missing a step or getting it wrong); explain more about the SSU and generally spruce up the wiki page and maintain things like the changelogs etc.

'''Were you involved in developing Maemo?''' If so, with Nokia now looking to Harmattan and MeeGo, we'd love to see your itches addressed in the Community SSU (CSSU). Have you always wanted to implement something in hildon-desktop, but Management stood in your way? We'd love to have it!

'''Have you written a patch for Maemo?''' Raise a bug and let's get it in the CSSU.

'''Are you a developer?''' There are numerous patches floating around for hildon-desktop; but they can't be included in the CSSU until they are configurable (via gconf) and default to off.

'''Want to test?''' Not only testing this release, but writing [[Community_SSU/QA#Test scripts|test scripts]] so that each release of the CSSU can get sanity checked before unleashing it into a &quot;stable&quot; repo for end-users. How do we do it? What should be tested? How is it organised?

'''Want to organise?''' There's still lots of process left to organise; hopefully there'll be bugs and features to triage and manage in bugs.maemo.org as well as communication of the testing, releases and end-user readiness of the CSSU.

'''Have great ideas?''' If you have suggestions that you think could be picked up by the CSSU developers, please add them here: [[CSSU Requests]]. However see the notice above about CSSU not going to include anything that better gets implemented as a normal app. Nonetheless CSSU actually will host apps that are specific to CSSU core system, the orientation-lock applet being first of a possibly ever increasing number.

For more information: contact MohammadAG on #maemo-ssu on FreeNode IRC or [mailto:council@maemo.org council@maemo.org].

== QA and bugs ==
{{main|Community SSU/QA}}

Quality is of paramount importance to the Community SSU. There are, therefore, two repositories: ''testing'' and ''stable''. Changes are carefully tested, with an extensive set of tests, before things are made &quot;stable&quot;. Packages in cssu-testing are supposed to be crafted and tested to be in a shape where the contributor and cssu maintainers expect them to pass those tests for &quot;stable&quot;.

If you have found a bug, in either the ''testing'' or ''stable'' releases, please [https://bugs.maemo.org/enter_bug.cgi?product=Maemo%205%20Community%20SSU raise a bug]. Getting involved through testing, bug triaging and running of the tests is a good way to get involved; as, of course, is writing documentation!

== Development ==

{{main|Community SSU/Development}}

The Community SSU is developed and managed through [http://gitorious.org/community-ssu Gitorious]. Bugs are tracked in [https://bugs.maemo.org/buglist.cgi?resolution=FIXED&amp;resolution=WONTFIX&amp;resolution=---&amp;classification=Extras&amp;query_format=advanced&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;product=Maemo%205%20Community%20SSU Bugzilla]. Collaboration largely [http://mg.pov.lt/maemo-ssu-irclog/ happens on IRC]. Getting involved through development, bug triaging and managing developers is a good way to get involved.


[[Category:Community]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU</title>
    <id>4657</id>
    <revision>
      <id>50521</id>
      <timestamp>2012-10-27T16:37:24Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>/* Installation */</comment>
      <text xml:space="preserve">&lt;div style=&quot;float: right&quot;&gt;
&lt;imagemap&gt;
Image:Bugsquad-logo-wazd-small.png|84px|center|thumb|Report bug
desc none
default [https://bugs.maemo.org/enter_bug.cgi?product=Maemo%205%20Community%20SSU]
&lt;/imagemap&gt;
&lt;/div&gt;
&lt;div style=&quot;float:right&quot;&gt;
&lt;imagemap&gt;
Image:Cssu_testing_5.png|center|thumb|Testing
desc none
default [http://repository.maemo.org/community-testing/community-testing-fremantle.install Install testing]
&lt;/imagemap&gt;
&lt;/div&gt;&lt;div style=&quot;float:right&quot;&gt;
&lt;imagemap&gt;
Image:Cssu_stable_5.png|center|thumb|Stable
desc none
default [http://repository.maemo.org/community/community-fremantle.install Install stable]
&lt;/imagemap&gt;
&lt;/div&gt;&lt;div style=&quot;float: right&quot;&gt;
[[Image:Cssu_both_5.png‎]]
&lt;/div&gt;

==What is it?==
Seamless Software Update ([[Seamless Software Update|SSU]]), is the term Nokia formerly used for over-the-air updates of Maemo (generally marketed as Maemo Update as of Maemo 5).

The Community Seamless Software Update (CSSU) is being developed by the Maemo community as a continuation of, and expansion on, Nokia's update support. It aims to deliver fixes which would be difficult to deliver through Extras (like core Maemo packages). It won't, however, bundle software which can (or could) be installed through the Extras repositories.

'''There are two such efforts for the Maemo platform.''' This page describes the one for Fremantle (Maemo 5, as used in the Nokia N900). The '''[[Diablo Community Project]]''' is doing the same for Diablo (Maemo 4.1, as used in the Nokia N800, N810 and N810 WiMAX Edition).
&lt;br clear=&quot;all&quot;&gt;

==Whom is it for?==
Since the release of the stable branch CSSU-S is meant to be the LongTermSupport hotspot for all N900 users/owners.
Power-users, developers, Nokia/Maemo/MeeGo engineers, testers, documentation writers and those willing to risk a re-flash in order to help can still install the testing version and stay as bleeding edge as possible inside CSSU universe, not implying CSSU will be the bleeding edge and pacemaker of development away from maemo5 towards something above and beyond. Maximum compatibility for '''all''' N900 owners is CSSU primary guidance.

==Installation==

&quot;Newbie&quot; Video Tutorial: http://www.youtube.com/watch?v=uMHxo1ALXNE

Another nice one (I (jr/docS) prefer it better): http://www.youtube.com/watch?feature=fvwp&amp;NR=1&amp;v=DPVHOpGVzZY

Nevertheless read this full page as well, before starting CSSU installation, so you understand what it's all about.

Note that both videos show installation (and features) of CSSU-T - for (on first glance missing) features of CSSU-S see http://wiki.maemo.org/Community_SSU#Features

'''There's no way to &quot;uninstall&quot; CSSU!''' Although you hardly ever want to do that. So:

# Install [http://maemo.org/packages/view/backupmenu/ backupmenu] . Do a full backup of your system. Get your battery charged up to state &quot;green&quot;. All this is not mandatory but highly recommended, as usual. Plug in wallcharger. Get a softdrink of your choice :-)
# If you haven't done yet (unlikely): Upgrade to at least [[Maemo 5/PR1.3|PR1.3]], Nokia's last official major Maemo 5 update. PR1.3.1 is fine as well. If you're unsure if you have, ''Settings &gt; About product'' should show ''Version'' beginning with '''20.2010.36'''(PR1.3) or '''21.2011.38'''(PR1.3.1). Make sure you have no too weird catalog settings in Application manager, esp it's recommended you never disable the core Nokia SSU repositories.
# In case you have modified hildon-desktop installed remove it before taking further steps, all your settings will work since cssu does include all m-h-d changes. Rebooting the N900 prior to next step is probably a good idea, to make sure no memory hogs or anything is running. Make sure your device has a working connection to internet prior to next step, preferably via WLAN or a high bandwidth 3G data connection.
# Open this page in N900 webbrowser. Think a minute if you want to be a tester supporting CSSU bleeding edge, or you rather need a rock solid CSSU, then click on the according Install [http://repository.maemo.org/community/community-fremantle.install stable] or [http://repository.maemo.org/community-testing/community-testing-fremantle.install testing] green button at top of this page.
# Hildon Application Manager (HAM) will launch and begin processing (be patient as nothing seems to happen for some minutes). There are a series of installations for which it will prompt you with messages and warnings. Click &quot;Accept&quot; and &quot;Done&quot; for each to install.
# Once this is completed, close HAM and go into the applications menu. Tap the ''Community SSU'' icon. This will run through a series of scripts to ensure the community repository are set up.
# HAM will re-open and present you the real thing: a system upgrade called '''Maemo 5 Community SSU''' - probably you want to install it ;-D. This will take a while. Once installed, your device will reboot.
# If you installed the stable version and have edited your ''transitions.ini'' before installing, then you'll find your old settings in the file ''/usr/share/hildon-desktop/transitions.ini.precssu''. You can either just copy it over the new one and miss out on the new features, or incorporate your changes.


Problems? Check the [[Community_SSU/Installation_FAQ|Installation FAQ]]

==Features==
{{main|Community SSU/Features}}
{{main|Community SSU/FeaturesStable}}

You find there how to use new features such as [http://thpmaemo.blogspot.com/2011/02/community-ssu-features-to-look-forward.html Thomas Perl's hildon-desktop improvements] and the status of applications in [[Portrait Mode]] with &lt;code&gt;forcerotation&lt;/code&gt;.

==Changelog==
{{main|Community SSU/Changelog}}
{{main|Community SSU/ChangelogStable}}

lists all changes from stock PR1.3 to CSSU and between various CSSU releases.

==Contributing==
{| style=&quot;background: #e8d8c8; border: 1px solid #666; width: 100%; text-align: center&quot;
| Get involved on [[IRC]] (&lt;code&gt;#maemo-ssu&lt;/code&gt;), [http://talk.maemo.org/showthread.php?t=67905 Talk], [https://bugs.maemo.org/buglist.cgi?resolution=FIXED&amp;resolution=WONTFIX&amp;resolution=---&amp;classification=Extras&amp;query_format=advanced&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;product=Maemo%205%20Community%20SSU Bugzilla] and [http://gitorious.org/community-ssu Gitorious].
|}

'''Can you write documentation?''' If so, it'd be great to flesh out the wiki page with installation instructions (to make it easy for users to install without worrying about missing a step or getting it wrong); explain more about the SSU and generally spruce up the wiki page and maintain things like the changelogs etc.

'''Were you involved in developing Maemo?''' If so, with Nokia now looking to Harmattan and MeeGo, we'd love to see your itches addressed in the Community SSU (CSSU). Have you always wanted to implement something in hildon-desktop, but Management stood in your way? We'd love to have it!

'''Have you written a patch for Maemo?''' Raise a bug and let's get it in the CSSU.

'''Are you a developer?''' There are numerous patches floating around for hildon-desktop; but they can't be included in the CSSU until they are configurable (via gconf) and default to off.

'''Want to test?''' Not only testing this release, but writing [[Community_SSU/QA#Test scripts|test scripts]] so that each release of the CSSU can get sanity checked before unleashing it into a &quot;stable&quot; repo for end-users. How do we do it? What should be tested? How is it organised?

'''Want to organise?''' There's still lots of process left to organise; hopefully there'll be bugs and features to triage and manage in bugs.maemo.org as well as communication of the testing, releases and end-user readiness of the CSSU.

'''Have great ideas?''' If you have suggestions that you think could be picked up by the CSSU developers, please add them here: [[CSSU Requests]]. However see the notice above about CSSU not going to include anything that better gets implemented as a normal app. Nonetheless CSSU actually will host apps that are specific to CSSU core system, the orientation-lock applet being first of a possibly ever increasing number.

For more information: contact MohammadAG on #maemo-ssu on FreeNode IRC or [mailto:council@maemo.org council@maemo.org].

== QA and bugs ==
{{main|Community SSU/QA}}

Quality is of paramount importance to the Community SSU. There are, therefore, two repositories: ''testing'' and ''stable''. Changes are carefully tested, with an extensive set of tests, before things are made &quot;stable&quot;. Packages in cssu-testing are supposed to be crafted and tested to be in a shape where the contributor and cssu maintainers expect them to pass those tests for &quot;stable&quot;.

If you have found a bug, in either the ''testing'' or ''stable'' releases, please [https://bugs.maemo.org/enter_bug.cgi?product=Maemo%205%20Community%20SSU raise a bug]. Getting involved through testing, bug triaging and running of the tests is a good way to get involved; as, of course, is writing documentation!

== Development ==

{{main|Community SSU/Development}}

The Community SSU is developed and managed through [http://gitorious.org/community-ssu Gitorious]. Bugs are tracked in [https://bugs.maemo.org/buglist.cgi?resolution=FIXED&amp;resolution=WONTFIX&amp;resolution=---&amp;classification=Extras&amp;query_format=advanced&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;product=Maemo%205%20Community%20SSU Bugzilla]. Collaboration largely [http://mg.pov.lt/maemo-ssu-irclog/ happens on IRC]. Getting involved through development, bug triaging and managing developers is a good way to get involved.


[[Category:Community]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU</title>
    <id>4657</id>
    <revision>
      <id>50521</id>
      <timestamp>2012-10-27T16:37:24Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>/* Installation */</comment>
      <text xml:space="preserve">&lt;div style=&quot;float: right&quot;&gt;
&lt;imagemap&gt;
Image:Bugsquad-logo-wazd-small.png|84px|center|thumb|Report bug
desc none
default [https://bugs.maemo.org/enter_bug.cgi?product=Maemo%205%20Community%20SSU]
&lt;/imagemap&gt;
&lt;/div&gt;
&lt;div style=&quot;float:right&quot;&gt;
&lt;imagemap&gt;
Image:Cssu_testing_5.png|center|thumb|Testing
desc none
default [http://repository.maemo.org/community-testing/community-testing-fremantle.install Install testing]
&lt;/imagemap&gt;
&lt;/div&gt;&lt;div style=&quot;float:right&quot;&gt;
&lt;imagemap&gt;
Image:Cssu_stable_5.png|center|thumb|Stable
desc none
default [http://repository.maemo.org/community/community-fremantle.install Install stable]
&lt;/imagemap&gt;
&lt;/div&gt;&lt;div style=&quot;float: right&quot;&gt;
[[Image:Cssu_both_5.png‎]]
&lt;/div&gt;

==What is it?==
Seamless Software Update ([[Seamless Software Update|SSU]]), is the term Nokia formerly used for over-the-air updates of Maemo (generally marketed as Maemo Update as of Maemo 5).

The Community Seamless Software Update (CSSU) is being developed by the Maemo community as a continuation of, and expansion on, Nokia's update support. It aims to deliver fixes which would be difficult to deliver through Extras (like core Maemo packages). It won't, however, bundle software which can (or could) be installed through the Extras repositories.

'''There are two such efforts for the Maemo platform.''' This page describes the one for Fremantle (Maemo 5, as used in the Nokia N900). The '''[[Diablo Community Project]]''' is doing the same for Diablo (Maemo 4.1, as used in the Nokia N800, N810 and N810 WiMAX Edition).
&lt;br clear=&quot;all&quot;&gt;

==Whom is it for?==
Since the release of the stable branch CSSU-S is meant to be the LongTermSupport hotspot for all N900 users/owners.
Power-users, developers, Nokia/Maemo/MeeGo engineers, testers, documentation writers and those willing to risk a re-flash in order to help can still install the testing version and stay as bleeding edge as possible inside CSSU universe, not implying CSSU will be the bleeding edge and pacemaker of development away from maemo5 towards something above and beyond. Maximum compatibility for '''all''' N900 owners is CSSU primary guidance.

==Installation==

&quot;Newbie&quot; Video Tutorial: http://www.youtube.com/watch?v=uMHxo1ALXNE

Another nice one (I (jr/docS) prefer it better): http://www.youtube.com/watch?feature=fvwp&amp;NR=1&amp;v=DPVHOpGVzZY

Nevertheless read this full page as well, before starting CSSU installation, so you understand what it's all about.

Note that both videos show installation (and features) of CSSU-T - for (on first glance missing) features of CSSU-S see http://wiki.maemo.org/Community_SSU#Features

'''There's no way to &quot;uninstall&quot; CSSU!''' Although you hardly ever want to do that. So:

# Install [http://maemo.org/packages/view/backupmenu/ backupmenu] . Do a full backup of your system. Get your battery charged up to state &quot;green&quot;. All this is not mandatory but highly recommended, as usual. Plug in wallcharger. Get a softdrink of your choice :-)
# If you haven't done yet (unlikely): Upgrade to at least [[Maemo 5/PR1.3|PR1.3]], Nokia's last official major Maemo 5 update. PR1.3.1 is fine as well. If you're unsure if you have, ''Settings &gt; About product'' should show ''Version'' beginning with '''20.2010.36'''(PR1.3) or '''21.2011.38'''(PR1.3.1). Make sure you have no too weird catalog settings in Application manager, esp it's recommended you never disable the core Nokia SSU repositories.
# In case you have modified hildon-desktop installed remove it before taking further steps, all your settings will work since cssu does include all m-h-d changes. Rebooting the N900 prior to next step is probably a good idea, to make sure no memory hogs or anything is running. Make sure your device has a working connection to internet prior to next step, preferably via WLAN or a high bandwidth 3G data connection.
# Open this page in N900 webbrowser. Think a minute if you want to be a tester supporting CSSU bleeding edge, or you rather need a rock solid CSSU, then click on the according Install [http://repository.maemo.org/community/community-fremantle.install stable] or [http://repository.maemo.org/community-testing/community-testing-fremantle.install testing] green button at top of this page.
# Hildon Application Manager (HAM) will launch and begin processing (be patient as nothing seems to happen for some minutes). There are a series of installations for which it will prompt you with messages and warnings. Click &quot;Accept&quot; and &quot;Done&quot; for each to install.
# Once this is completed, close HAM and go into the applications menu. Tap the ''Community SSU'' icon. This will run through a series of scripts to ensure the community repository are set up.
# HAM will re-open and present you the real thing: a system upgrade called '''Maemo 5 Community SSU''' - probably you want to install it ;-D. This will take a while. Once installed, your device will reboot.
# If you installed the stable version and have edited your ''transitions.ini'' before installing, then you'll find your old settings in the file ''/usr/share/hildon-desktop/transitions.ini.precssu''. You can either just copy it over the new one and miss out on the new features, or incorporate your changes.


Problems? Check the [[Community_SSU/Installation_FAQ|Installation FAQ]]

==Features==
{{main|Community SSU/Features}}
{{main|Community SSU/FeaturesStable}}

You find there how to use new features such as [http://thpmaemo.blogspot.com/2011/02/community-ssu-features-to-look-forward.html Thomas Perl's hildon-desktop improvements] and the status of applications in [[Portrait Mode]] with &lt;code&gt;forcerotation&lt;/code&gt;.

==Changelog==
{{main|Community SSU/Changelog}}
{{main|Community SSU/ChangelogStable}}

lists all changes from stock PR1.3 to CSSU and between various CSSU releases.

==Contributing==
{| style=&quot;background: #e8d8c8; border: 1px solid #666; width: 100%; text-align: center&quot;
| Get involved on [[IRC]] (&lt;code&gt;#maemo-ssu&lt;/code&gt;), [http://talk.maemo.org/showthread.php?t=67905 Talk], [https://bugs.maemo.org/buglist.cgi?resolution=FIXED&amp;resolution=WONTFIX&amp;resolution=---&amp;classification=Extras&amp;query_format=advanced&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;product=Maemo%205%20Community%20SSU Bugzilla] and [http://gitorious.org/community-ssu Gitorious].
|}

'''Can you write documentation?''' If so, it'd be great to flesh out the wiki page with installation instructions (to make it easy for users to install without worrying about missing a step or getting it wrong); explain more about the SSU and generally spruce up the wiki page and maintain things like the changelogs etc.

'''Were you involved in developing Maemo?''' If so, with Nokia now looking to Harmattan and MeeGo, we'd love to see your itches addressed in the Community SSU (CSSU). Have you always wanted to implement something in hildon-desktop, but Management stood in your way? We'd love to have it!

'''Have you written a patch for Maemo?''' Raise a bug and let's get it in the CSSU.

'''Are you a developer?''' There are numerous patches floating around for hildon-desktop; but they can't be included in the CSSU until they are configurable (via gconf) and default to off.

'''Want to test?''' Not only testing this release, but writing [[Community_SSU/QA#Test scripts|test scripts]] so that each release of the CSSU can get sanity checked before unleashing it into a &quot;stable&quot; repo for end-users. How do we do it? What should be tested? How is it organised?

'''Want to organise?''' There's still lots of process left to organise; hopefully there'll be bugs and features to triage and manage in bugs.maemo.org as well as communication of the testing, releases and end-user readiness of the CSSU.

'''Have great ideas?''' If you have suggestions that you think could be picked up by the CSSU developers, please add them here: [[CSSU Requests]]. However see the notice above about CSSU not going to include anything that better gets implemented as a normal app. Nonetheless CSSU actually will host apps that are specific to CSSU core system, the orientation-lock applet being first of a possibly ever increasing number.

For more information: contact MohammadAG on #maemo-ssu on FreeNode IRC or [mailto:council@maemo.org council@maemo.org].

== QA and bugs ==
{{main|Community SSU/QA}}

Quality is of paramount importance to the Community SSU. There are, therefore, two repositories: ''testing'' and ''stable''. Changes are carefully tested, with an extensive set of tests, before things are made &quot;stable&quot;. Packages in cssu-testing are supposed to be crafted and tested to be in a shape where the contributor and cssu maintainers expect them to pass those tests for &quot;stable&quot;.

If you have found a bug, in either the ''testing'' or ''stable'' releases, please [https://bugs.maemo.org/enter_bug.cgi?product=Maemo%205%20Community%20SSU raise a bug]. Getting involved through testing, bug triaging and running of the tests is a good way to get involved; as, of course, is writing documentation!

== Development ==

{{main|Community SSU/Development}}

The Community SSU is developed and managed through [http://gitorious.org/community-ssu Gitorious]. Bugs are tracked in [https://bugs.maemo.org/buglist.cgi?resolution=FIXED&amp;resolution=WONTFIX&amp;resolution=---&amp;classification=Extras&amp;query_format=advanced&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;product=Maemo%205%20Community%20SSU Bugzilla]. Collaboration largely [http://mg.pov.lt/maemo-ssu-irclog/ happens on IRC]. Getting involved through development, bug triaging and managing developers is a good way to get involved.


[[Category:Community]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/</title>
    <id>4683</id>
    <revision>
      <id>41551</id>
      <timestamp>2011-02-01T14:19:09Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Redirecting to [[Community SSU]]</comment>
      <text xml:space="preserve">#REDIRECT [[Community_SSU]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/Changelog</title>
    <id>4655</id>
    <revision>
      <id>49636</id>
      <timestamp>2012-09-11T13:05:40Z</timestamp>
      <contributor>
        <username>luf</username>
        <id>5206</id>
      </contributor>
      <comment>/* T-maemo5 */</comment>
      <text xml:space="preserve">Changelog of the [[Community SSU]] source on ''http://gitorious.org/community-ssu'' in comparison to the [[Maemo 5/PR1.3|PR1.3]] release.

To find what version you are running you can look in the control panel, under General there is an &quot;About Community SSU&quot; widget. 

Note: 20.2010.36-2 is the latest official Nokia version. The number after it indicates the Community SSU release version. This string is not edited so the Ovi store doesn't break. 


== PR 1.3.3.7-1 ==
20.2010.36-2maemo7 (20.01.2011)
{| style=&quot;width:100%&quot;
! package
! changes
|-
| width=&quot;30%&quot; | hildon-desktop
|
* NB#171828 hildon-desktop in busy loop - battery empty in 8 hours
* Make TidyFingerScroll::decel_rate and ::boucing_decel_rate startup-time configurable.
* NB#183086 Unpainted areas after exiting window stacks
* Allow hildon-status-menu to open in portrait mode.
* Merged patches from modified-hildon-desktop
|-
| hildon-home
|
* Added ~/.local/share/applications/hildon to the searchpath for .desktop files
* Fixed a bug where Hildon-home is not responding if theme is changed when all shortcuts are added to home view
* Tighter D-BUS message matching
|-
| hildon-status-menu
|
* Added portrait mode support
|-
| modest
|
* Modest upgraded from 3.4.8 to 3.90.7.
* Fixed Light pattern
* Fixed bug [https://bugs.maemo.org/3700 #3700]: Place signature below original text in replies, not above
* Fixed bug [https://bugs.maemo.org/2563 #2563]: Replaced &quot;-- Original message --&quot; with &quot;On x, y wrote:&quot;
|-
| vte
|
* Fixed bug [https://bugs.maemo.org/7164 #7164]
*: X Terminal was rendering the &quot;bright black&quot; color as black, which could make certain colored console applications hard to use. The fix makes the color rendered as &quot;dark gray&quot;, as done with other colors. 
* Fixed bug [https://bugs.maemo.org/6009 #6009]
*: The Enter key from keyboard presented incorrect behavior on X Terminal on certain applications, such as &quot;less&quot; or Vim running under &quot;screen&quot;. The fix makes sure the key works as expected under any X Terminal application.
|}

== PR 1.3.3.7-2 ==
20.2010.36-2maemo8 (05.02.2011)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | hildon-home
|
* Fixed bug [https://bugs.maemo.org/11829 #11829]: Clicking a desktop shortcut opens two browser windows
|-
| hildon-status-menu
|
* Don't keep the status area's background pixmap around
|-
| mp-fremantle-community-pr
|
* Fixed bug [https://bugs.maemo.org/11815 #11815]: Add XB-Maemo-Display-Icon-26 to enabler &amp; meta-packages
* Fixed bug [https://bugs.maemo.org/11831 #11831]: Removal of mp-fremantle-*-pr breaks apt autoremover

|}

== PR 1.3.3.7-3 ==
20.2010.36-2maemo9 (06.02.2011)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | community-ssu-enabler
|
* Added some checks to remove package pins in the enabler, this should be transparent to those of you with the SSU enabled.
|-
| hildon-desktop
|
* Fixed bug [https://bugs.maemo.org/11813 #11813]: All shortcut keys, for example screenshot with Ctrl + Shift + P broken

|}

== PR 1.3.3.7-4 ==
20.2010.36-2maemo10 (07.02.2011)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | hildon-desktop
|
* Includes thp's patch for desaturation and task manager layouts (edit /usr/share/hildon-desktop/transitions.ini, bottom section)
|}

== PR 1.3.3.7-5 ==
20.2010.36-2maemo11 (14.02.2011)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | hildon-control-panel applets
|
* Replaced osso-applet-notificationlight and osso-applet-display with FOSS clones by Nicolai Hess (clones [https://bugs.maemo.org/11913 #11913] and [https://bugs.maemo.org/11932 #11932])
|-
| hildon-desktop
|
* Merged Thomas Perl's patches to configure font size in the application menu
|-
| modest
|
* Fixed bug [https://bugs.maemo.org/11835 #11835]: Logical ID shown / Translation missing for &quot;Add attachment&quot; dialog title in Modest 
* Fixed bug [https://bugs.maemo.org/11839 #11839]: Show the previous e-mail after deleting an e-mail in VIEW mode 
* Fixed bug [https://bugs.maemo.org/11858 #11858]: Unexpected repeated button To: 
* Fixed bug [https://bugs.maemo.org/11859 #11859]: No bottom send button anymore 
* Fixed bug [https://bugs.maemo.org/11874 #11874]: Impossible to select text once the email is scrolled 
|}

== PR 1.3.3.7-6 ==
20.2010.36-2maemo12 (22.02.2011)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | hildon-application-manager
|
* Applied Thomas Perl's patch for portrait mode
|-
| hildon-control-panel
|
* Enabled portrait mode support
|-
| hildon-desktop
|
* Applied Thomas Perl's Z-axis, forced rotation, and tactile patches (edit /usr/share/hildon-desktop/transitions.ini, bottom section)
* Fixed bug [https://bugs.maemo.org/10783 #10783]: Russian keymap works incorrectly when pressing CTRL button.
|-
| hildon-home
|
* Fixed bug [https://bugs.maemo.org/11933 #11933]: Hildon-desktop has support for 9 views, but the ui only allowed to enable 4
|-
| libcpaboutcssu
|
* Initial release, this is the &quot;About Community SSU&quot; widget under Settings - General
|-
| modest
|
* Fixed bug [https://bugs.maemo.org/11910 #11910]: Horizontal scrolling
|}

=== PR 1.3.3.7-6.1 ===
20.2010.36-2maemo12.1 (22.02.2011)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | hildon-desktop
|
* Fixed autorotation bug
|}

=== PR 1.3.3.7-6.5 ===
20.2010.36-2maemo12.5 (25.02.2011)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | hildon-desktop
|
* Added parallax and zoom on press to transitions.ini
|-
| hildon-home
|
* Force the number of selectable desktops to 9 to circumvent a bug where the selection only allowed 4
|-
| libaboutcssu
|
* Minor UI change
|-
| modest
|
* Fixed New Message button
|}

== PR 1.3.3.7-7 ==
20.2010.36-2maemo13 (09.03.2011)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | hildon-desktop
|
* Added zoom in/out support in hildon-desktop (Ctrl + Shift + s / f)
* Improved press effect
* Implemented Landscape orientation lock
|-
| status-area-orientationlock-applet
|
* Initial release, this is the orientation - lock applet in the status area
|}

== PR 1.3.3.7-8 ==
20.2010.36-2maemo14 (11.04.2011)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | camera-ui
|
* Initial release, this is an open-source replacement of the camera-ui
|-
| community-ssu-enabler
|
* Use wazd's cssu icon
* Fixed bug [https://bugs.maemo.org/11831 #11831]: Removal of mp-fremantle-*-pr breaks apt autoremover
|-
| hildon-application-manager
|
* Added portrait background for default themes
|-
| hildon-control-panel
|
* Take a screenshot each startup to prevent the splashscreen from missing newly installed applets
|-
| hildon-desktop
|
* Reverted improved zoom on press effect.
* Added new portrait task manager (by freemangordon).
* Added new gconf key to disable menu editor.
* Removed portrait -&gt; landscape rotation when launching an application (by rmoravcik).
|-
| hildon-status-menu
|
* Added new gconf key to set the number of rows
|-
| libcpaboutcssu
|
* Added names
* Added new cssu icon
|-
| maemo-statusmenu-fmtx
|
* Initial release, this is an open-source replacement fmtx status menu applet
* GConf key to make the applet always visible
|-
| modest
|
* Added tree view mode
|-
| modest-l10n-*
|
* Initial release, these are the language files for modest (needed because of new strings in the new modest features)
|-
| osso-pdf-viewer
|
* Initial release, added portrait support to official maemo5 version
|-
| qt-x11-maemo
|
* Updated to upstream version 4.7.2
|-
| status-area-orientationlock-applet
|
* Include new translations (GB, US, PL, DE, ES, FI)
|-
| tinymail
|
* Folder tree store path separator is now configurable just like the folder list store is
|}

=== PR 1.3.3.7-8.1 ===
20.2010.36-2maemo14.1 (11.04.2011)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | qt-x11-maemo
|
* Optified libraries
|-
| mp-fremantle-coomunity-pr
|
* Correct tinymail version in dependencies
|}

== PR 1.3.3.7-9 ==
20.2010.36-2maemo15 (30.05.2011)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | camera-ui
|
* Fixed a null related segfault
* Use camera key to close preview window
* Added icons for iso 800 / 1600 / Auto mode (fixes [https://bugs.maemo.org/12135 #12135])
* Added sound effects (focus done, capture, start recording)
* Fixed 15 seconds timer only going for 10 seconds
* Fixed free device space related errors
|-
| hildon-desktop
|
* Added landscape application support in portrait taskswitcher
|-
| maemo-statusmenu-fmtx
|
* code cleanup
|-
| osso-pdf-viewer
|
* Applied fixes from Diablo CSSU: (closes [https://bugs.maemo.org/12204 #12204])
*: PDF Reader doesn't support internal document hyperlinks
*: PDF Reader needs more zoom levels between 50% and 150%
*: PDF Reader page up should go to Bottom of Previous Page (instead of Top)
*: PDF Reader doesn't use optimal screen width in fit width mode
|-
| qt-x11-maemo
|
* Revert to 4.7.0 + patches: (fixes [https://bugs.maemo.org/12137 #12137], [https://bugs.maemo.org/12143 #12143] and [https://bugs.maemo.org/12226 #12226])
*: Fix [http://bugreports.qt.nokia.com/browse/QTBUG-16323 QTBUG-16323]: portrait launching of qt applications
*: Fix [http://bugreports.qt.nokia.com/browse/QTBUG-15140 QTBUG-15140]: QAbstractKinecticScroller rightscroll scrolls to top
|}

== PR 1.3.3.7-10 ==
20.2010.36-2maemo16 (06.09.2011)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | qt-x11-maemo
|
* Upgraded to 4.7.4
* QtQuickCompat nulled, included in Qt 4.7.4
|-
| hildon-desktop
|
* Add blurless_saturation option for blurless
* Include transitions.ini in deb configfile to retain user settings
* Added full portrait mode
* Implemented a blacklist for rotation
* Fixed some memory/resource leaks
|-
| modest / tinymail
|
* Offline IMAP support in email client
|-
| osso-calculator
|
* Portrait mode in calculator rewrite
|-
| gst-plugins-bad / camera-ui
|
* Fix [https://bugs.maemo.org/show_bug.cgi?id=6584 #6584]: GPS geotagged pictures truncate precision of GPS reading (0 decimal places)
|-
| camera-ui
|
* Camera application suspends when screen is locked, saving battery life
* Camera application no longer opens when screen is locked and the camera button is pressed
* Fix [https://bugs.maemo.org/show_bug.cgi?id=12135 #12135]: camera-ui icons for 'white balance' and 'iso sensitivity' are the same
|-
| hildon-home
|
* Updated with two sets of wallpapers for portrait mode
|-
| osso-pdf-viewer
|
* Bugs introduced in last update fixed
|-
| gtk
|
* Landscape dialogs rotate properly in portrait mode
|-
| gnome-vfs-filechooser-backend
|
* File manager &quot;Save as&quot; fixed
|}

=== PR 1.3.3.7-10.5 ===
20.2010.36-2maemo16.5 (07.09.2011)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | qt-x11-maemo
|
* Upstream patches to fix OpenGL.
|-
| mp-fremantle-community-pr
|
* Pull in new calculator UI explicitly.
* Depend on modest-home-applet.
|-
| camera-ui
|
* blacklisted (forced landscape).
* Fixed bug [https://bugs.maemo.org/12381 #12381]: camera-ui overwrites already existing files
|-
| hildon-desktop
|
* Desktop can be locked to landscape separately (apps will still rotate).
* Basic whitelist support in hildon-desktop.
|-
| status-area-orientationlock-applet
|
* Added new translation strings for French to the orientation lock applet.
* Updated translation for Polish.
|}

=== PR 1.3.3.7-10.6 ===
20.2010.36-2maemo16.6 (09.09.2011)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | apt
|
* user/hidden block removed, no more E: Handler Silently Failed errors.
|-
| hildon-desktop
|
* dsmetool command line tweaked, crashes should not lead to a reboot now.
|-
| qt-x11-maemo 
|
* Segfaults in apps like marble fixed.
|-
| modest
|
* Added translations strings for some languages to modest.
|}

=== PR 1.3.3.7-10.7 ===
20.2010.36-2maemo16.7 (09.09.2011)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | mp-fremantle-community-pr 
|
* Fixed broken pre-depends.
|}

=== PR 1.3.3.7-10.8 ===
20.2010.36-2maemo16.8 (09.09.2011)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | maemo-security-certman
| 
* System security update/fix. Removed DigiNotar compromised certificates.
|}

== T-maemo1 ==
21.2011.38-1Tmaemo1 (19.11.2011)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | camera-ui
|
* Fixed bug [https://bugs.maemo.org/12428 #12428]: Corrupted video after camera app switches to background
|-
| hildon-home
|
* Fixed portrait wallpapers.
|-
| libcpaboutcssu
|
* Show flavor in dialog, added more names.
|-
| modest/tinymail
|
* Several crash fixes.
|-
| mp-fremantle-community-pr
|
* Depend on the pr 1.3.1 packages.
|}

=== T-maemo1.1 ===
21.2011.38-1Tmaemo1.1 (30.11.2011)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | camera-ui
|
* Fixed bug [https://bugs.maemo.org/12318 #12318]: Open lid dialog has no close button
|-
| hildon-desktop
|
* Fixed portrait wallpapers.
* Fixed crash snap_grid_size == 0.
* Improved blacklist support for games.
|-
| maemo-security-certman 
|
* System security update/fix: Added the two compromised Malaysian signing certs to the blacklist.
|-
| modest / tinymail
|
* Fixed modest missing Save attachments translation.
* Recompiled without thumb, fixes crash issues.
|-
| mp-fremantle-community-pr 
|
* Depend on libt4-test, fixes a common upgrade issue.
|}

=== T-maemo1.2 ===
21.2011.38-1Tmaemo1.2 (17.01.2012)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | camera-ui
|
* Fixed bug [https://bugs.maemo.org/12516 #12516]: &quot;Not enough memory to save photo&quot;
* Fixed some memory leaks.
* Added support for HD/DVD resolutions.
* Improved zoom control.
|-
| gdigicam
|
* Added HD/DVD resolutions support
|-
| hildon-desktop
|
* Added new dbus method hd_home_is_desktop_in_portrait and new dbus signal DesktopOrientationChanged
* Fixed bug [https://bugs.maemo.org/12085 #12085]: No launcher editor in portrait.
* Fixed bug [https://bugs.maemo.org/11974 #11974]: Holding down left on right on the home screen leads to a black screen.
|-
| hildon-status-menu
|
* Added listener to gconf changes.
* Display 6 icons in the status menu in portrait mode.
|-
| maemo-tvout-control
|
* Initial release, replaces the closed control panel applet, also includes a status menu applet and a desktop widget.
|-
| osso-calculator
|
* Fixed bug [https://bugs.maemo.org/12514 #12514]: Calculator program, percentage operations
|-
| osso-calculator-engine
|
* Fixed bug [https://bugs.maemo.org/12515 #12515]: Power function does not work if exponent is not an integer 
|-
| osso-wlan
|
* Applied retry fix patch for injection driver from lxp.
|}

== T-maemo2 ==
21.2011.38-1Tmaemo2 (20.03.2012)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | camera-ui
|
* Fixed a part of &quot;Not Enough Memory&quot; when memory card is N/A.
|-
| camera-ui-l10n
|
* Added HD/DVD translation strings.
|-
| freetype
|
* Fixed bug [https://bugs.maemo.org/12215 #12215]: Segementation fault on startup of navit
* Fixed bug [https://bugs.maemo.org/12552 #12552]: CVE-2010-1797: Stack overflows by processing CFF opcodes
|-
| hildon-desktop
|
* Added default blacklisted applications.
* Keep aspect ratio in task navigator.
* Don't repaint until the screen is black.
* Removed global zoom functionality (Ctrl + Shift + s / f).
|-
| hildon-home
|
* Added support for image sets with up to 9 images.
|-
| hildon-status-menu
|
* Fixed gconf settings not loading.
|-
| libclutter
|
* Apply clipping scissors when rotated by a multiple of 90 degrees.
|-
| libcpaboutcssu
|
* Don't strip T/S from version string.
|-
| libhildonfm
|
* Correctly decide on mmc card type (external or internal).
|-
| mp-fremantle-community-pr
|
* Fixed bug [https://bugs.maemo.org/12478 #12478]: SIP support broken after installation of CSSU (rtcom-accounts-voip-support removed?)
|}

=== T-maemo2.1 ===
21.2011.38-1Tmaemo2.1 (20.03.2012)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | mp-fremantle-community-pr
|
* Fixed libclutter dependency
|}

== T-maemo3 ==
21.2011.38-1Tmaemo3 (07.04.2012)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | camera-ui
|
* Fixed bug [https://bugs.maemo.org/12591 #12591]: HD DVD Buttons swapped
|-
| hildon-desktop
|
* Prevent extra transistion when launching an application that does not support portrait.
|-HD DVD Buttons
| ke-recv
|
* Added support for more MMC card partitions and other filesystems.
* Use libvolume_id instead of osso-update-mmc-label.sh for volume names.
|-
| openssl
|
* Fixed bug [https://bugs.maemo.org/12557 #12557]: CVE-2010-0742 Cryptographic Message Syntax vulnerability
|-
| osso-pdf-viewer-l10n
|
* Fixed bug [https://bugs.maemo.org/12444 #12444]: osso-pdf-viewer: need to translate new string
|-
| tracker
|
* Fixed bug [https://bugs.maemo.org/9316 #9316]: Tracker doesn't run album art heuristics for non-mp3 audio files
* Fixed bug [https://bugs.maemo.org/9317 #9317]: Tracker doesn't import album art from .mediaartlocal at all
* Properly care about NoWatch list for discovered removable devices.
|-
| TV Out packages
|
* Code refactor into libtvout-ctl (backend) and maemo-tvout-control (applets).
* Fixed some memory leaks.
|}

=== T-maemo3.1 ===
21.2011.38-1Tmaemo3.1 (07.04.2012)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | ke-recv
|
* Rebuild with right debhelper to fix init.d/upstart issue.
|}

== T-maemo4 ==
21.2011.38-1Tmaemo4 (30.05.2012)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | camera-ui
|
* Fixed bug: viewfinder isn't shown after deleted current image in the preview window.
|-
| dosfstools
|
* Initial release, update to 3.0.12 + patches in order to fix various renaming issues.
|-
| hildon-desktop
|
* Removed deprecated gconf key.
|-
| hildon-home
|
* Removed deprecated GConf key.
* Resize background dialog in portrait mode.
|-
| ke-recv
|
* Fixed possible buffer overflow for labels in strncpy.
* Correctly handle volume names containing spaces.
* Use dosfslabel instead mlabel (fixes rename issues).
* Added support for ext filesystems with e2label.
|-
| libcurl
|
* Fixed bug [https://bugs.maemo.org/12554 #12554]: CVE-2010-0734: data callback vulnerability
|-
| libhildon
|
* Fixed bug [https://bugs.maemo.org/12553 #12553]: Ctrl+space doesn't switch input language when editbox is hidden
|-
| osso-gnome-vfs2
|
* Use correct volume labels when external SD card has multiple volumes.
* Fixed gnome-vfs-daemon crash when mounting a partition on a multi-partition drive.
|-
| pango
|
* Fixed bug [https://bugs.maemo.org/12550 #12550]: CVE-2010-0421: Fix input sanitization
|-
| modest
|
* Fixed bug [https://bugs.maemo.org/12285 #12285]: Modest does not keep emails on server even if option to do so is set
|-
| operator-name-cbs-widget
|
* Initial release
|}

=== T-maemo4.1 ===
21.2011.38-1Tmaemo4.1 (17.07.2012)
{| style=&quot;width:100%&quot;
|-
| width=&quot;30%&quot; | hildon-application-manager
|
* Recompiled to fix thumb issue
|-
| osso-gnome-vfs
|
* Recompiled to fix thumb issue
|}

== T-maemo5 ==
21.2011.38-1Tmaemo5 (11.09.2012)
{| style=&quot;width:100%&quot;
|-
| width= &quot;30%&quot; | alarmd
|
* Fixed bug [https://bugs.maemo.org/12560 #12560]: alarmd does not correctly replace [COOKIE] in exec string
|-
| busybox
|
* Disable redrawing lineedit window after SIGWINCH signal. This fixes (forced) portrait mode.
|-
| community-ssu-enabler
|
* Added system wide Community SSU catalogues, domains and (gpg) keys files
* Added script community-ssu-disabler
|-
| curl
|
* Updated to 7.26.0, fixes ipv6 dns problems
* Fixed bug [https://bugs.maemo.org/10233 #10233]: curl does not support certificates with a SHA-2 signature
|-
| evolution-data-server
|
* Remove lines with empty value from VCARD string (except required fields)
|-
| hildon-application-manager
|
* Reenabled Red Pill mode.
* Removed the missleading PC Suite error message.
* Fixed int overflow in cache updated time check.
|-
| hildon-desktop
|
* Make blurless desaturation tweak really blurless.
* Desaturate the window thumb, when it's about to close.
|-
| libxml2
|
* Fixed bug [https://bugs.maemo.org/12566 #12566]: CVE-2011-2834 DoS via double free in XPath handling
|-
| microb-engine
|
* Fixed bug [https://bugs.maemo.org/12555 #12555]: CVE-2010-1205: Buffer overflow in embedded libpng
* Fixed bug [https://bugs.maemo.org/12564 #12564]: Daemon does not shut down properly when no connection and browser closed when connection dialog opens
|-
| modest
|
* Enabled horizontal scrolling in settings dialog.
|-
| obexd
|
* Updated to 0.46, fixes various car-kit issues
* Initial support for call history in PBAP/IrMC
|-
| operator-name-cbs-widget
|
* Added support for custom operator names.
* Renamed package to connui-home-cellular.
* Removed log buttons.
|-
| osso-wlan
|
* Fixed eapd recovery.
|-
| osso-xterm
|
* Added support for configuring more settings: reverse colours, always scroll, # of scrollback lines
|-
| policy-settings-rx51
|
* Enable jackbias when headset or microphone is accessible in policy prolog code
* Enable jackbias when headset switch is enabled in alsaped.conf
|-
| qt-x11-maemo
|
* Improved performance of partial updates in raster window surface on X11.
|-
| tinymail
|
* Fixed invalid/NULL pointer in get_folder_status, prevent heap corruption in list.
|-
| upstart
|
* Added warning to file /etc/fstab that this file is autogenerated at startup.
* Allow executing applications and shell scripts on fat partitions
|}

=== T-maemo5.1 ===
21.2011.38-1Tmaemo5.1 (11.09.2012)
{| style=&quot;width:100%&quot;
|-
| width= &quot;30%&quot; | mp-fremantle-community-pr
|
* Fixed a typo in the busybox dependencies.
|}
[[Category:Community]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/ChangelogStable</title>
    <id>5041</id>
    <revision>
      <id>49460</id>
      <timestamp>2012-09-05T22:47:57Z</timestamp>
      <contributor>
        <username>chemist</username>
        <id>1885</id>
      </contributor>
      <text xml:space="preserve">Changelog of the stable [[Community SSU]] source on ''http://gitorious.org/community-ssu''.
To find what version you are running you can look in the control panel, under General there is an &quot;About Community SSU&quot; widget.
For testing see [[Community SSU/Changelog| testing changelog]].

Note: 21.2011.38-1 is the latest official Nokia version. The number after it indicates the Community SSU release version. This string is not edited so the Ovi store doesn't break. 

== 21.2011.38-1Smaemo1 (26.11.2011)==
Initial release of stable cssu Branch, contains the following packages from cssu-testing 16.8, with any changes on top listed in 2nd col:
{| style=&quot;width:100%&quot;
! package
! additional changes on top of cssu-testing 16.8
|-
|width=&quot;30%&quot; | apt
|
* None
|-
| community-ssu-enabler
|
* Move transisions.ini to backup so new file has a chance to deploy
|-
| gnome-vfs-filechooser
|
* None
|-
| gtk
|
* None
|-
| hildon-application-manager
|
* None
|-
| hildon-control-panel
|
* None
|-
| hildon-desktop
|
* Included desktop_orientation_lock to gconf schema, defaulting to false
* Changed default of ui_can_rotate to false
|-
| hildon-home
|
* None
|-
| hildon-status-menu
|
* None
|-
| libcpaboutcssu
|
* upgraded to Tmaemo1, since it shows flavour of cssu
|-
| libhildonfm
|
* None
|-
| maemo-security-certman
|
* None
|-
| maemo-statusmenu-fmtx
|
* None
|-
| osso-applet-display
|
* None
|-
| osso-applet-notificationlight
|
* None
|-
| osso-calculator
|
* None
|-
| osso-pdf-viewer
|
* None
|-
| qt-mobility
|
* None
|-
| qt-x11-maemo
|
* DigiNotar certificates blacklisted
|-
| qtquickcompat
|
* None
|-
| status-area-orientationlock-applet
|
* Made optional, can be installed via ham / apt
|-
| vte
|
* None
|}

== 21.2011.38-1Smaemo2 (02.01.2012)==
{| style=&quot;width:100%&quot;
! package
! changes
|-
|width=&quot;30%&quot; | maemo-security-certman
|
* System security update/fix: Added the two compromised Malaysian signing certs to the blacklist. 
|-
| modest / tinymail
|
* New package, same version as in Testing - maemo1.1
|-
| mp-fremantle-community-pr
|
* Depend on libqt4-test to fix upgrade issues.
|}

== 21.2011.38-1Smaemo2.1 (02.01.2012)==
{| style=&quot;width:100%&quot;
! package
! changes
|-
|width=&quot;30%&quot; | mp-fremantle-community-pr
|
* Fix modest-l10n dependencies.
|}

== 21.2011.38-1Smaemo3 (30.03.2012)==
{| style=&quot;width:100%&quot;
! package
! changes
|-
|width=&quot;30%&quot; | clutter
|
* New package (from Tmaemo 2).
* Apply clipping scissors when rotated by a multiple of 90 degrees.
|-
| freetype
|
* New package (from Tmaemo 2).
* Fixed bug [https://bugs.maemo.org/12215 #12215]: Segementation fault on startup of navit
* Fixed bug [https://bugs.maemo.org/12552 #12552]: CVE-2010-1797: Stack overflows by processing CFF opcodes
|-
| hildon-desktop
|
* Added new dbus method hd_home_is_desktop_in_portrait and new dbus signal DesktopOrientationChanged
* Fixed bug [https://bugs.maemo.org/12085 #12085]: No launcher editor in portrait.
* Fixed bug [https://bugs.maemo.org/11974 #11974]: Holding down left on right on the home screen leads to a black screen.
* Added default blacklisted applications.
* Keep aspect ratio in task navigator.
* Don't repaint until the screen is black.
* Removed zoom functionality (Ctrl+Shift+S/Ctrl+Shift+D).
|-
| hildon-home
|
* Added support for image sets with up to 9 images.
* Fixed portrait wallpapers.
|- 
| hildon-status-menu
|
* Added listener to gconf changes.
* Display 6 icons in the status menu in portrait mode.
|-
| libcpaboutcssu
|
* Don't strip T/S from version string. 
|-
| mp-fremantle-community-pr
|
* Depend on rtcom-accounts-voip-support to fix upgrade issues
|}


== 21.2011.38-1Smaemo4 (05.09.2012) ==
{| style=&quot;width:100%&quot;
! package
! changes
|-
|width=&quot;30%&quot; | dosfstools
|
* New package (from Tmaemo 4).
* Update to 3.0.12 + patches in order to fix various renaming issues. 
|-
| hildon-desktop
|
* Prevent extra transistion when launching an application that does not support portrait. 
* Removed deprecated gconf key.
|-
| hildon-home
|
* Removed deprecated GConf key.
* Resize background dialog in portrait mode. 
|-
| ke-recv
|
* New package (from Tmaemo 4).
* Added support for more MMC card partitions and other filesystems.
* Use libvolume_id instead of osso-update-mmc-label.sh for volume names. 
* Fixed possible buffer overflow for labels in strncpy.
* Correctly handle volume names containing spaces.
* Use dosfslabel instead mlabel (fixes rename issues).
* Added support for ext file-systems with e2label. 
|-
| libcurl
|
* New package (from Tmaemo 4).
* Fixed [https://bugs.maemo.org/12554 #12554]: CVE-2010-0734: data callback vulnerability see http://curl.haxx.se/docs/adv_20100209.html
* Version does only replace Stock package.
|- 
| libhildon
|
* New package (from Tmaemo 4).
* Fixed bug [https://bugs.maemo.org/12553 #12553]: Ctrl+space doesn't switch input language when edit-box is hidden.
|-
| libhildonfm
|
* Correctly decide on mmc card type (external or internal).
|-
| modest
|
* Fixed bug [https://bugs.maemo.org/12285 #12285]: Modest does not keep emails on server even if option to do so is set.
|-
| openssl
|
* New package (from Tmaemo 3).
* Fixed bug [https://bugs.maemo.org/12557 #12557]: CVE-2010-0742 Cryptographic Message Syntax vulnerability.
|- 
| osso-gnome-vfs2
|
* New package (from Tmaemo 4).
* Use correct volume labels when external SD card has multiple volumes.
* Fixed gnome-vfs-daemon crash when mounting a partition on a multi-partition drive. 
|- 
| osso-pdf-viewer-l10n 
|
* New package (from Tmaemo 3).
* Fixed bug [https://bugs.maemo.org/12444 #12444]: osso-pdf-viewer: need to translate new string.
|-
| osso-wlan
|
* New package (from Tmaemo 1.2).
* Applied retry fix patch for injection driver from lxp.
|-
| pango
|
* New package (from Tmaemo 4).
* Fixed bug [https://bugs.maemo.org/12550 #12550]: CVE-2010-0421: Fix input sanitization.
|}

== 21.2011.38-1Smaemo4.1 (05.09.2012) ==
{| style=&quot;width:100%&quot;
! package
! changes
|-
|width=&quot;30%&quot; | mp-fremantle-community-pr
|
* Fix dosfstools, modest, hildon-* and libhildonfm dependencies.
|}

[[Category:Community]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/Changelog layouttest</title>
    <id>4758</id>
    <revision>
      <id>42165</id>
      <timestamp>2011-02-26T13:17:16Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <text xml:space="preserve">=== PR 1.3.3.7-6.5 ===
{| style=&quot;width:100%&quot;
|-
! colspan=&quot;2&quot; | 20.2010.36-2maemo12.5
|-
| width=&quot;35%&quot; | modest
|
* Fixed New Message button
|-
| hildon-desktop
|
* Added parallax and zoom on press to transitions.ini
|-
| hildon-home
|
* Force the number of selectable desktops to 9 to circumvent a bug where the selection only allowed 4
|-
| libaboutcssu
|
* Minor UI change
|}

[[Category:Community]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/Development</title>
    <id>4659</id>
    <revision>
      <id>47056</id>
      <timestamp>2012-03-29T11:25:34Z</timestamp>
      <contributor>
        <username>merlin1991</username>
        <id>3522</id>
      </contributor>
      <minor/>
      <comment>/* Version Scheme */ formatting</comment>
      <text xml:space="preserve">== Source ==
The [[Community SSU]] source is held in a project at Gitorious:

  http://gitorious.org/community-ssu

=== Importing a module... ===
At the start of adopting a package into the Community SSU, the original source for the package, as shipped in Nokia's PR1.3 needs to be identified. This can come from two places:

# Git repository on maemo.gitorious.com or garage.maemo.org ''(preferred)''
# Source tarball from repository.nokia.com

==== ...from git ====
TBC

==== ...from tarball ====
TBC

Once imported, contact Andre Klapper to get a component created in Bugzilla, under the &quot;Maemo 5 Community SSU&quot; product.

=== Version Scheme ===

CSSU versions consist of the upstream version +0cssuX where X is an incremental counter for the cssu release
In case of nokia packages from the maemo sources this usually will look like
  realupstream+0m5+0cssu0
For packages where we consider ourself upstream the version string is a simple version.

Packages where we consider ourself as upstream:
  hildon-*, camera-ui, community-ssu-enabler, libcpaboutcssu

== How to contribute ==
As a community developer, you can help the project by submitting your own changes or by simply reviewing other people's changes and provide your advice and comments to their commits.

=== Contributing your own changes ===
This section assumes you are familiar with the git source version control system. If you aren't, it's recommended that you start learning it, as it's going to make your life easier; if you just need to contribute small changes you can probably live without it and directly send your changes to the [[Community SSU maintainers]] and stop reading here.

==== Cloning a repository ====
First of all, get the source code of your module as explained in [[#Source]]. If the module is not part of the http://gitorious.org/community-ssu project, you can ask the [[Community SSU maintainers]] to import the module for you.

From the http://gitorious.org/community-ssu page, find the module you are going to work on and click on the &quot;Clone repository&quot; button. Following gitorious's suggestions, pick a name for your new personal clone and wait for the repository to be created. Then, it's time to get the code into your computer. Supposing that you named your cloned repository &lt;my-repo&gt; and that the original repository is called &lt;repo&gt; and your name is &lt;me&gt;, follow these steps:

&lt;pre&gt;
git clone git://gitorious.org/community-ssu/&lt;repo&gt;.git &lt;repo&gt;
cd &lt;repo&gt;
git remote add &lt;me&gt; git@gitorious.org:~&lt;me&gt;/community-ssu/&lt;my-repo&gt;.git
git fetch &lt;me&gt;
&lt;/pre&gt;


==== Work on your own repository ====
We recommend that you always work on a branch other than master, and keep master in sync with the master branch of the original repository. So, when you are about to work an amazing feature that you'd call &lt;my-feature&gt;, follow these steps (here we are using the same naming conventions we used in the previous paragraph):
&lt;pre&gt;
git checkout master
git pull
git checkout -b &lt;my-feature&gt; &lt;me&gt;/master
&lt;/pre&gt;
Your &lt;my-feature&gt; branch is now active, and all the changes that you'll make with the &lt;tt&gt;git add&lt;/tt&gt; and &lt;tt&gt;git commit&lt;/tt&gt; commands will operate on this branch. When you wish to save your changes to the remote repository, you can do that by
&lt;pre&gt;
git push &lt;me&gt; &lt;my-feature&gt;
&lt;/pre&gt;


==== Submitting your changes ====

After you are done with your changes and you have committed them to your local branch, push them to the remote repository:
&lt;pre&gt;
git push &lt;me&gt; &lt;my-feature&gt;
&lt;/pre&gt;
Now your changes should be visible also in your cloned repository at the gitorious website. Go to the website, find your repository and click on the &quot;Request merge button&quot;. You'll be prompted to enter a description, the target repository and branch (you usually don't need to change these) and you must select your &lt;my-feature&gt; branch from the drop-down &quot;Source branch&quot; box. When compiling the description, please take some time to explain all what is not obvious from the code itself (hopefully, very little) and also mention if and how you have tested your changes.

One of the [[Community SSU maintainers]] will review the code, and write some comments about it. You shouldn't expected your changes to be applied as they are: on the contrary, be ready to receive some questions, suggestions, and criticisms. Don't take them personally; instead, take them for what they are, that is technical arguments. They don't mean that people are not grateful for your contribution.

=== Reviewing the code ===
From the http://gitorious.org/community-ssu page, click on the &quot;Watch&quot; button of the modules of your interest. From now on, all activities happening in the repositories you selected, such as pushes, merge requests, comments, etc., will appear into your ''gitorious activity feed''. Unless you frequently check the gitorious website, we recommend that you create a subscription for its RSS feed or go to the [http://gitorious.org/favorites gitorious e-mail preferences page] and enable e-mail notifications.

Once you get a notification that a merge request has been created, you can follow the link which is present in the notification itself and see the changes in question. If you are not satisfied with the quality of the code, or more simply you don't understand the some parts of the changes, you are more than welcome to add a comment. You can either comment to the whole change by commenting on the bottom of the page, or write inline comments by clicking on the line number next to the relevant piece of code.


==In-built Applications==
{{main|Community SSU/Development/In-built_applications}}

Here you can see a list of included applications in the Community SSU, including information about them (open/closed source), new features and fixes, work on open-source replacements.


== Notes ==
Set of notes and action points from the discussions about Community [[Seamless Software Update|SSU]] on #maemo-ssu freenode.

Main participants:
* lcuk
* MohammadAG
* Jaffa
* Venemo
* lma
* x-fade
* rst38h
* crashanddie

and more

==== Discussion topics ====

* finding source locations and identifying GOOD patches
* submitting potential patches to a central testing source
* making a new &lt;code&gt;mp-generic*&lt;/code&gt; meta package
* discussing with lma about current N8x0 community SSU problems and workarounds and insight
* looking into getting the wiki sorted
** need wiki editor :P
* looking at how to manage the patchsets
** we know the N900 Fremantle system works well using git tags
** the 8x0 patchset currently contains 10 local based quilts
* we need a gitorious group to cover these ''Done: http://gitorious.org/community-ssu''

==== Build Sources ====

We must gather together and list the main giturl sources and tags used to build from.

for instance:
http://gitorious.org/modest/modest tag 3.4.8

This allows us to reproduce builds and get source to the same location we build from.

&lt;pre&gt;
&lt;lcuk&gt; how many packages for n8x0 are you looking at including in an ssu?
&lt;lcuk&gt; and how have you considered looking at updating the system so far - you said its all manual at the moment
&lt;lma&gt; I have 10 (source) packages at the moment
&lt;lcuk&gt; do you mind listing them 
&lt;lma&gt; busybox dnsmasq loudmouth modest osso-pdf-viewer osso-software-version tinymail community-ssu-enabler xorg-server kernel-diablo
&lt;/pre&gt;

''This has started at http://gitorious.org/community-ssu''

==== Technical ====

# How to work out value of &lt;code&gt;Maemo-Required-Free-Space&lt;/code&gt; header in &lt;code&gt;mp-fremantle-community-pr&lt;/code&gt;?


[[Category:Community]]
[[Category:Fremantle]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/Development/Calendar</title>
    <id>4870</id>
    <revision>
      <id>43678</id>
      <timestamp>2011-05-30T14:48:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>cut toplevel heading</comment>
      <text xml:space="preserve">I'm just starting the ball rolling here with a list of the things we'll need to do/think about in replacing the in-built Calendar app.

The reason we need to replace it, other than the fact that it is rather deficient in many ways, is that the UI is closed. The backend is open though, so that gives us the opportunity to avoid breaking other applications which use the same data, etc.

==Coding and Architecture==

To be worth doing, this application should have clear abstraction between the UI and the backend. This means it would then be possible to use the same UI on e.g. Meego with a different backend, as well as on Maemo CSSU.

To be future proof, I think that it should also be written in Qt.

==Existing Bugs in closed source Calendar app that should be fixed==

Add link to appropriate bugzilla page

Also list bugs with explanation here.

==Required Features ==

These are features which are already present and which would be expected for this application to be able to replace the closed source version

==Would be nice to have features==

These are more pie in the sky features, which don't need to be present immediately</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/Development/In-built applications</title>
    <id>4748</id>
    <revision>
      <id>50641</id>
      <timestamp>2012-11-03T19:34:48Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>/* In-built applications */ Fapman is NO alternative, it's explicitly deprecated and known to cause problems by/for CSSU</comment>
      <text xml:space="preserve">==In-built applications==

Here is a list of in-built applications in the Community SSU.

{| class=&quot;wikitable sortable&quot;
! Application !! Sources !! Bugzilla !! Comments
|-
| Mail (Modest)             || [http://gitorious.org/community-ssu/modest Yes]|| [http://bugs.maemo.org/buglist.cgi?classification=Extras&amp;component=modest&amp;product=Maemo%205%20Community%20SSU Yes] || Fixes: [[Community_SSU/Changelog#modest|1]], [[Community_SSU/Changelog#Modest|2]], [[Community_SSU/Changelog#modest_2|3]]. Discussion [http://talk.maemo.org/showthread.php?t=63291&amp;highlight=modest here]
|-
| Application Manager (HAM) || [http://gitorious.org/community-ssu/hildon-application-manager Yes] || || 
|- 
| X Terminal                || [http://gitorious.org/community-ssu/vte Yes] [http://gitorious.org/community-ssu/osso-xterm Yes] || [https://bugs.maemo.org/buglist.cgi?classification=Extras&amp;component=vte&amp;product=Maemo%205%20Community%20SSU Yes] || Fixes: [[Community_SSU/Changelog#vte|1]]
|-
| PDF Reader                || [http://gitorious.org/community-ssu/osso-pdf-viewer Yes] || ||
|- 
| RSS Reader                || [http://repository.maemo.org/pool/maemo5.0/free/o/osso-rss-feed-reader/ Yes] || || Improvements [http://talk.maemo.org/showpost.php?p=957403&amp;postcount=1569 coming]
|- 
| Clock                     || [https://gitorious.org/osso-clock Yes]  || || This is open source replecement, see [http://talk.maemo.org/showthread.php?t=81582 thread]
|-
| Contacts                  || No  || ||
|-
| Calendar                  || No  || ||
|-
| Image Viewer              || No  || ||
|-
| File Manager              || No  || || Alternative: [http://maemo.org/downloads/product/Maemo5/filebox/ File Box]
|-
| Camera                    || [http://gitorious.org/community-ssu/camera-ui Yes] || || This is open source clone, info in this [http://talk.maemo.org/showthread.php?p=964196#post964196 thread]
|- 
| Notes                     || No  || || Alternative: Conboy
|- 
| Drawing                   || No  || ||
|- 
| Calculator                || [http://gitorious.org/community-ssu/osso-calculator Yes] || || This is open source clone
|- 
| Control Panel             || [http://gitorious.org/community-ssu/hildon-control-panel Yes] || ||
|-
| Backup                    || No  || ||
|- 
| Phone                     || No  || ||
|- 
| Conversations             || No  || || [[Conversation_Mods| Customize Conversations application]]
|-
| Web Browser               || No  || || Alternative: Firefox Mobile 1.1 in OVI Store. [http://download.mozilla.org/?product=firefox-mobile-4.0b4&amp;os=maemo&amp;lang=multi Download beta version]
|-
| Media Player              || [http://gitorious.org/qt-mediaplayer/mediaplayer Yes]  || || An OSS replacement is [http://mohammadag.xceleo.org/?p=26 on its way], info in this [http://talk.maemo.org/showthread.php?t=72156 thread]
|-
| Maps                      || No  || || [http://talk.maemo.org/showthread.php?t=66985 Add extra features to Nokia Maps]
|-
| Blocks                    || [http://repository.maemo.org/pool/maemo5.0/free/m/maemoblocks/ Yes] || ||
|-
| Chess                     || [http://repository.maemo.org/pool/maemo5.0/free/o/osso-chess-ui/ Yes] || ||
|-
| Mahjong                   || [http://repository.maemo.org/pool/maemo5.0/free/o/osso-mahjong/ Yes] || ||
|-
| Marbles                   || [http://repository.maemo.org/pool/maemo5.0/free/o/osso-lmarbles/ Yes] || ||
|}

TO DO:
 
* Include links to sources in Gitorious.
* Include links to sources in Bugzilla.

[[Category:Community]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/Feature Requests</title>
    <id>4760</id>
    <revision>
      <id>43265</id>
      <timestamp>2011-04-28T10:15:32Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">'''Consider using [http://talk.maemo.org/showpost.php?p=957141&amp;postcount=1536 Bugzilla for this].'''

{| class=&quot;wikitable sortable&quot; border=1
! width=&quot;400&quot; | Request
! width=&quot;400&quot; | Response from CSSU Team
!  | Status

|-
| UI for CSSU tweaks    ||    || 
|-
| Slide to Answer    ||    || 
|-
| Revamped Call UI ||    || 
|-
| Portrait Contacts Search (like in Phone Contacts Search)  ||    || 
|-
| Arrow Keys to change desktop while editing  ||    || 
|-
| Desktop switching by slide Up/Down like in ||    || 
|-
| Improved Contacts Search in Modest/Messaging (search for partial matches) ||    || 
|}

==Portrait Mode==
{| class=&quot;wikitable sortable&quot; border=1
! width=&quot;400&quot; | Request
! width=&quot;400&quot; | Response from CSSU Team
!  | Status
|-
| Portrait Mode application Whitelist ||  In Development  || 
|-
| Portrait mode Hildon-Desktop &amp; Task Switcher ||  || 
|-
| Portrait Media Player    || OpenSource Media Player Replacement in development    || 
|-
| Orientation Lock    ||  In Development  || 
|-
| Portrait Calender  ||    || 
|-
| Improved Portrait Mode in Virtual keyboard || Not Possible, Closed Source   || Rejected
|}

[[Category:Community]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/Features</title>
    <id>4732</id>
    <revision>
      <id>49235</id>
      <timestamp>2012-08-27T09:58:41Z</timestamp>
      <contributor>
        <username>merlin1991</username>
        <id>3522</id>
      </contributor>
      <comment>added ke-recv</comment>
      <text xml:space="preserve">Note: There is a [[CSSU_Features_Configuration_Editor|GUI editor]] for enabling CSSU features. If you use that, you can ignore the editing and applying sections on this page and just refer to the features directly. '''You will still need to re-run the editor after each CSSU update'''.

== camera-ui ==
{{main|Community SSU/Features/Camera UI}}

== hildon-desktop ==

{{main|Community SSU/Features/hildon-desktop}}

=== Zoom in/out support ===

Use CTRL+SHIFT+S (+) and CTRL+SHIFT+F (-) to zoom in and out.

=== Orientation lock ===

Install status-area-orientationlock-applet to add an applet that locks the landscape/portrait mode until you unlock it.

== ke-recv ==
ke-recv controls various things like automounting

{{main|Community SSU/Features/ke-recv}}

== Features that are configurable with gconf ==
* Make the FMTX applet always visible
 gconftool-2 -s /apps/osso/maemo-statusmenu-fmtx/always_visible -t bool true
* Change the number of rows in the status menu
 gconftool-2 -s /apps/osso/hildon-status-menu/view/number_of_rows -t int 6
 gconftool-2 -s /apps/osso/hildon-status-menu/view/number_of_rows_portrait -t int 8
* Disable the application menu editor
 gconftool-2 -s /apps/osso/hildon-desktop/menu_edit_disabled -t bool true
* Disable the desktop editing
 gconftool-2 -s /apps/osso/hildon-desktop/key-actions/disable_edit -t bool true
* Disable rotation of Task Switcher, Launcher and desktop
 gconftool-2 -s /apps/osso/hildon-desktop/ui_can_rotate -t bool false
* Disable rotation of desktop
 gconftool-2 -s /apps/osso/hildon-desktop/desktop_orientation_lock -t bool true
* Enable vertical scrolling when in portrait
 gconftool-2 -s /apps/osso/hildon-desktop/scroll_vertical -t bool true

This document is up to date as of [[Community_SSU/Changelog#PR_1.3.3.7-10.5| 20.2010.36-maemo16.5]] (note: to find your version see Settings, About Community SSU).

[[Category:Community]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/Features</title>
    <id>4732</id>
    <revision>
      <id>49235</id>
      <timestamp>2012-08-27T09:58:41Z</timestamp>
      <contributor>
        <username>merlin1991</username>
        <id>3522</id>
      </contributor>
      <comment>added ke-recv</comment>
      <text xml:space="preserve">Note: There is a [[CSSU_Features_Configuration_Editor|GUI editor]] for enabling CSSU features. If you use that, you can ignore the editing and applying sections on this page and just refer to the features directly. '''You will still need to re-run the editor after each CSSU update'''.

== camera-ui ==
{{main|Community SSU/Features/Camera UI}}

== hildon-desktop ==

{{main|Community SSU/Features/hildon-desktop}}

=== Zoom in/out support ===

Use CTRL+SHIFT+S (+) and CTRL+SHIFT+F (-) to zoom in and out.

=== Orientation lock ===

Install status-area-orientationlock-applet to add an applet that locks the landscape/portrait mode until you unlock it.

== ke-recv ==
ke-recv controls various things like automounting

{{main|Community SSU/Features/ke-recv}}

== Features that are configurable with gconf ==
* Make the FMTX applet always visible
 gconftool-2 -s /apps/osso/maemo-statusmenu-fmtx/always_visible -t bool true
* Change the number of rows in the status menu
 gconftool-2 -s /apps/osso/hildon-status-menu/view/number_of_rows -t int 6
 gconftool-2 -s /apps/osso/hildon-status-menu/view/number_of_rows_portrait -t int 8
* Disable the application menu editor
 gconftool-2 -s /apps/osso/hildon-desktop/menu_edit_disabled -t bool true
* Disable the desktop editing
 gconftool-2 -s /apps/osso/hildon-desktop/key-actions/disable_edit -t bool true
* Disable rotation of Task Switcher, Launcher and desktop
 gconftool-2 -s /apps/osso/hildon-desktop/ui_can_rotate -t bool false
* Disable rotation of desktop
 gconftool-2 -s /apps/osso/hildon-desktop/desktop_orientation_lock -t bool true
* Enable vertical scrolling when in portrait
 gconftool-2 -s /apps/osso/hildon-desktop/scroll_vertical -t bool true

This document is up to date as of [[Community_SSU/Changelog#PR_1.3.3.7-10.5| 20.2010.36-maemo16.5]] (note: to find your version see Settings, About Community SSU).

[[Category:Community]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/Features/Camera UI</title>
    <id>4839</id>
    <revision>
      <id>45718</id>
      <timestamp>2011-11-14T23:48:54Z</timestamp>
      <contributor>
        <username>helmy</username>
        <id>4753</id>
      </contributor>
      <minor/>
      <comment>/* New features */</comment>
      <text xml:space="preserve">CSSU version 20.2010.36-maemo14 (released 11.04.2011) received a new camera-ui (a rewrite of the old application by Nicolai Hess).

== New features ==

The new camera-ui isn't just a rewrite, it contains new features (note that keys are case sensitive, for example R = shift + r):

*Use the on screen button to capture, or press c on the keyboard, or press the shutter button full way directly (without the half press to focus).

* Color filters can applied to the image before capturing them, use the on screen button to change filters.

* White balance can be changed with &quot;w&quot; on the keyboard or the on screen button in the bottom toolbar.

* A timer can be used to capture an image, use the on screen button to select the time, make sure you've focused the image first.

* Automatic UI opening (on camera lens Opening or on the cam key press) can be disabled in the title bar menu settings.

* After focusing, the distance is shown at the top right of the screen.



'''Keyboard control:'''

The keys are case sensitive, for example R = shift + r

'''v'''   Video mode


'''a'''   Automatic Photo mode

'''p'''   portrait

'''m'''   macro

'''l'''   landscape

'''n'''   night

'''V'''   night video


'''i'''   cycle through the Automatic/100/200/400/800/1600 ISO setting.

'''w'''   toggle through white balance modes

'''c'''   capture image


'''r'''   start/stop recording

'''p'''   pause recording


'''z/Z''' decrease/increase zoom

'''f/F''' decrease/increase focus (step 1)

'''g/G''' drecrease/increase focus (step 50)

'''1'''   set min focus

'''0'''   set max focus


'''R/r''' enable/disable raw image mode (raw files have the
normal image name with .dng extension)

'''t'''   toggle White LED 


'''h'''   toggle indicator light (Red LED)

'''b/B''' switch to the front camera/Switch to the back Camera (Works in Video Mode Only)


Notes:

- extra settings (lenscover/focusbutton behavior) are saved in gconf (/apps/camera/settings/extra-settings/)

-There is an option in the menu (tap on the title bar and disable &quot;open on focus pressed&quot;) it is useful when you want To use any camera dependent application because when the capture button is pressed, camera-ui2 Will start and prevent using that application and minimize it (MIR or bless n900 for e.g.)

== Regressions ==

* Tagging photos with the tag cloud is not possible, a workaround is to open the photo in the image viewer (bottom right button in the preview window) then use the button there, this dialog is closed source, a reimplementation might be considered.

[[Category:Community]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/Features/Portrait mode</title>
    <id>4747</id>
    <revision>
      <id>45732</id>
      <timestamp>2011-11-16T21:45:38Z</timestamp>
      <contributor>
        <username>pali</username>
        <id>2764</id>
      </contributor>
      <comment>/* System Applications */</comment>
      <text xml:space="preserve">Portrait mode can now be [[Community_SSU/Features#Available_as_of_20.2010.36-2maemo12_.28PR_1.3.3.7-6.29|forced on all applications]] as part of the [[Community SSU]]. Not all applications work perfectly. Details of the compatibility of applications with portrait mode is compiled below.

The purpose of &lt;code&gt;forcerotation&lt;/code&gt; is [http://talk.maemo.org/showpost.php?p=953421&amp;postcount=969 ''not'' to enable system-wide portrait for end-users].

==System Applications==

{| class=&quot;wikitable sortable&quot;
! width=&quot;170&quot; | Application
! width=&quot;100&quot; | Status
! width=&quot;100&quot; | Rotation
! Comments
|-
| Backup || Fully Usable || || N/A
|-
| Calculator || Fully Usable || Supported || CSSU has new open source clone of Nokia Calculator with Portrait Mode support.
|-
| Calendar|| Not Usable    || Forced || Events usable. Week view cuts off on Thursday. Month view can be seen if opened in landscape first, also cuts of on Thursday. Both month and week views do not span the full screen vertically.
|-
| Camera || Semi-Usable || Forced || Display is buggy, Photo is taken correctly
|-
| Clock || Semi-usable || Forced || Icons are not rearranged. Can't access &quot;World Clock&quot;
|-
| Contacts || Semi-Usable    || Forced || Crashes on editing of contact. See [https://bugs.maemo.org/show_bug.cgi?id=11999 #11999].
|-
| Conversations || Semi-Usable    || Forced || Needs to scrolls horizontally to read the full message. See [[Conversation_Mods| this]] for portrait supported conversation themes. Or run this [http://talk.maemo.org/showpost.php?p=955933&amp;postcount=1364 script] to '''add portrait mode support''' for conversations.
Delete button is not visible while viewing a single message. See [https://bugs.maemo.org/show_bug.cgi?id=11976 #11976]. 
|-
| File Manager|| Fully Usable    || Forced || N/A
|-
| Hildon Application Manager (HAM) || Fully Usable    || Supported || Themes don't provide colourful background
|-
| Hildon-Desktop|| Unusable || Manually - Forced    || Portrait mode can be enabled using &lt;code&gt;ctrl+shift+blue arrow+L&lt;/code&gt;. But can't rearrange icons/widgets as of now. 
|-
| Media Player    || Semi-Usable    || Forced || Icons are not rearranged.
|-
| MicroB (Web) || Usable    || Supported || When using built-in auto-rotation, ui elements such as address and status bar are unaccessible. When rotated by hildon ('enabled rotation' off in it's settings), just about all UI elements are usable; the bookmark button and the full screen button is there in the arrow's submenu, but they're invisible at the top and bottom halves of the small blank space that's there.
|-
| Modest (email) || Semi-Usable || Forced || Dialogues, such as &quot;Message Details&quot; are compressed.
|-
| Notes || Fully Usable || Forced || N/A
|-
| Phone|| Fully Usable    || Supported || Add/Edit new contact UI unusable.
|-
| Photo Viewer || Semi-Usable    || Forced || Viewing photos is buggy. The system get confused which direction to show image and thus image rotates haphazardly. While in full screen mode if the phone is held ear piece down portrait mode works fine.
|-
| Settings|| Fully Usable    || Supported || N/A
|-
| Task Switcher|| Not Available    || N/A || Part of hildon-desktop
|-
| X-Terminal || Fully Usable    || Forced || Rotation from portrait to landscape generates a large amount of &quot;blank&quot; space between the last lines of the history, and the current command-input line.
|}

==3rd Party Applications==

{| class=&quot;wikitable sortable&quot;
! width=&quot;170&quot; | Application
! width=&quot;100&quot; | Status
! Rotation
! Comments
|-
| [http://maemo.org/packages/view/alarmed/ Alarmed] || Fully Usable    || Forced? || In portrait mode, the UI elements are cramped, but usable
|-
| [http://maemo.org/packages/view/app-search-widget/ App Search Widget] || Not Usable    || Forced || In portrait mode, the applications are not shown, if they are searched or otherwise.
|-
| [http://maemo.org/downloads/product/Maemo5/battery-eye/ Battery-eye] || Semi Usable    || || Graphic is shown but it does not fill up the screen. It can be moved horizontally. Scale is not shown.
|-
| [http://maemo.org/packages/view/batterygraph/ BatteryGraph] || Semi Usable    || Forced || Controls render correctly except for graph display on the left. It is squeezed horizontally to fit the display area. Information in graph is viewable except for the labels on the X-axis
|-
| [http://maemo.org/packages/view/blessn900/ BlessN900] || Not Usable    || Forced || In portrait mode, display is buggy
|-
| [http://maemo.org/packages/view/bluemaemo/ BlueMaemo] || Not Usable    || Forced || In portrait mode, some buttons offscreen, cannot scroll horizontally
|-
| [http://maemo.org/packages/view/catorise/ Catorise] || Fully Usable    || Forced || NOT A CATEGORIZED BUG - this happens with ApMeFo and manually created folders in the menu too: When switching from landscape-portrait or vice versa, it moves from category/folder to base level
|-
| [http://maemo.org/packages/view/cbrpager/ CBRpager] || Fully Usable    || || In portrait mode, some of the buttons are hidden.
|-
| [http://maemo.org/packages/view/columbus/ Columbus Navigation Toolkit] || Fully Usable || Supported || One element isn't visible in portrait.
|-
| [http://maemo.org/packages/view/conky/ Conky] || Semi Usable || Forced || Some text is super-imposed on each other. Some status information is truncated off the right-edge of the screen
|-
| [http://maemo.org/packages/view/cutetube/ CuteTube]|| Fully Usable    || Supported || N/A
|-
| [http://maemo.org/packages/view/dropn900/ DropN900] || Fully Usable    || Forced || Some inconvenience with resizing of columns
|-
| [http://maemo.org/packages/view/dtg/ dtg - sheet to go] || Fully Usable    || Forced || N/A
|-
| [http://maemo.org/packages/view/dtg/ dtg - slideshow to go] || Fully Usable    || Forced || Slide number is missing in portrait mode
|-
| [http://maemo.org/packages/view/dtg/ dtg - word to go] || Semi Usable    || Forced || Opening a doc in landscape mode then rotating it to portrait mode will crash if trying to scroll to the bottom of the page. Opening a doc in portrait mode then rotating to landscape mode will cause some of the texts to be chopped off.
|-
| [http://maemo.org/packages/view/ecoach/ eCoach] || Not Usable    || Forced || No rearrangement/resizing of UI elements
|-
| [http://maemo.org/packages/view/erminig/ Erminig] || Fully Usable    || Forced? || N/A
|-
| [http://maemo.org/packages/view/espeakcaller/ ESpeakCaller] || Not Usable    || Forced || No rearrangement/resizing of UI elements
|-
| [http://maemo.org/packages/view/evilalarm/ EvilAlarm] || Fully Usable || || N/A
|-
| [http://maemo.org/packages/view/fapman/ Fast Application Manager] || Fully Usable    || Supported || N/A
|-
| [http://maemo.org/packages/view/fbreader/ Fbreader] || Fully Usable    || Forced || In portrait mode, some of the icons are hidden.
|-
| [http://maemo.org/downloads/product/Maemo5/feedingit/ FeedingIt ]|| Fully Usable    || Supported || N/A
|-
| [http://maemo.org/downloads/product/Maemo5/filebox/ FileBox] || Fully Usable    || Supported || N/A
|-
| [http://maemo.org/packages/view/flobby/ Flobby] || Not Usable || || It should play in Portrait Mode, but is rotating 90 degrees Anti-clockwise, rendering it unplayable
|-
| [http://maemo.org/packages/view/fmradio/ FM Radio Player] || Semi-Usable || Forced || No rearrangement/resizing of UI elements (Elements still fit on screen mostly, so frequency can be changed and bookmarked stations can be selected.)
|-
| [http://maemo.org/packages/view/foreca-weather-applet/ Foreca Weather widget] || Not Usable|| Forced || Some buttons off- screen. Horizontal Scrolling not possible
|-
| [http://maemo.org/packages/view/freoffice/ FreOffice] || Semi-Usable|| Forced || Missing a few icons, but it works
|-
| [http://maemo.org/packages/view/gboggle/ GBoggle] || Fully Usable    || || Layout needs work
|-
| Gonvert  || Fully Usable    || || N/A
|-
| [http://maemo.org/packages/view/gpodder/ GPodder Podcast Client] || Fully Usable    || Supported || Some small changes to be made
|-
| [http://maemo.org/packages/view/groove/ Groove] || Fully Usable    || || N/A
|-
| [http://maemo.org/packages/view/hostmode-gui/ H-E-N (USB Hostmode GUI)] || Fully Usable   ||  || N/A
|-
| [http://maemo.org/packages/view/leafpad/ Leafpad] || Fully Usable || || Needs portrait keyboard, obviously.
|-
| [http://maemo.org/packages/view/mastory/ MaStory] || Fully Usable    || || N/A
|-
| [http://maemo.org/packages/view/mediabox/ MediaBox Media Center] || Semi-Usable    || || No album art displayed
|-
| [http://maemo.org/packages/view/mobilehotspot/ Mobile HotSpot] || Fully Usable   ||  || N/A
|-
| [http://maemo.org/packages/view/mstardict/ MStarDict] || Not Usable   ||  || definitions cut off. Cannot scroll across
|-
| [http://maemo.org/packages/view/munadi/ Munadi] || Fully Usable    || || N/A
|-
| [http://maemo.org/packages/view/n900ftp/ N900Ftp] || Not Usable || Forced || Doesn't change layout at all. Second pane practically off-screen.
|-
| [http://maemo.org/packages/view/netstory/ NetStory] || Semi Usable || Forced || Some portions of the screen gets truncated on the right.
|-
| QMLReddit || Fully Usable || Forced? || N/A
|-
| [http://maemo.org/packages/view/puzzle-master/ Puzzle Master] || Fully Usable    || Supported || Orientation is locked in the game if the accelerometer feature is enabled. (Then the puzzle pieces will drift according to accelerometer data, thus making autorotation inconvenient.) In this case, the application will use the orientation the game was started with.
|-
| [http://maemo.org/downloads/product/Maemo5/qcpufreq/ Qcpufreq] || Fully Usable    || || N/A
|-
| [http://maemo.org/packages/view/qwp/ Qwp] || Fully Usable    || || N/A
|-
| [http://maemo.org/packages/view/radiotimetogo/ Radiotimetogo] || Not Usable    || || Search button is not shown
|-
| [http://maemo.org/downloads/product/Maemo5/recorder/ Recorder] || Fully Usable    || ||
|-
| [http://maemo.org/packages/view/scout/ Scout] || Fully Usable    || || Although result-list shows horizontal scroll bar
|-
| [http://maemo.org/packages/view/seriesfinale/ SeriesFinale] || Fully Usable    || || Next episode date cuts off on main menu. Always starts in landscape even when phone is in portrait mode, rotation works after phone is rotated to landscape and back to portrait.
|-
| [http://maemo.org/packages/view/someplayer/ SomePlayer] || Fully Usable    || ||
|-
| Sygic Mobile Maps 10 || Fully Usable   ||  || N/A
|-
| [http://maemo.org/downloads/product/Maemo5/Swappolube Swappolube] || Fully Usable || Supported || 
|-
| [http://maemo.org/packages/view/theme-customizer/ Theme Customizer] || Not Usable   ||  || All main buttons are off-screen
|-
| [http://maemo.org/downloads/product/Maemo5/tuner/ Tuner] || Semi Usable || || It can be read the note detected.
|-
| [http://maemo.org/packages/view/www2sms/ Www2sms] || Not Usable    || Forced || All buttons are off-screen
|-
| [http://maemo.org/packages/view/wifieye/ WifiEye] || Fully Usable   ||  || N/A
|}

[[Category:Community]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/Features/hildon-desktop</title>
    <id>5181</id>
    <revision>
      <id>49902</id>
      <timestamp>2012-09-26T19:46:19Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>/* Fade */</comment>
      <text xml:space="preserve">The current scope of this wiki is to provide information on editing all parameters in transistions.ini and the contains of usr/share/hildon-desktop

Information is still required on how some parameters effect the transitions.
Notes for parameters are provided with each section.

Information regarding other features of hildon-desktop like gconf has been left in the Features and Features/Stable sections due to differences between Stable and Testing branches. 

=Community SSU Features of hildon-desktop= 


== Transitions ==


This wiki covers manual editing of the transistions.ini file and requires knowledge of [[Terminal]].

Please note if transitions.ini becomes corrupt, or you mess the file up, it may stop the desktop from loading correctly. Therefore a backup is recommended before editing.

For GUI editing of transitions please see CSSU Features Configuration and Theme Customizer applications.

====Backing up transitions.ini====


The transistions file is backed up upon installing CSSU.
The location of all backups is the hildon-desktop folder.

 /usr/share/hildon-desktop/

Any program that edits this file will create a backup. Some of the contents may include.

 /usr/share/hildon-desktop/transitions.ini.precssu
 /usr/share/hildon-desktop/transitions.ini.default
 /usr/share/hildon-desktop/transitions.ini.dpkg-dist

Is it a good idea to create your own backup to refer to

While in the hildon-desktop directory:-

 cp transition.ini transition.ini.mybackup

To restore your backup 

While in the hildon-desktop directory:-

 mv transition.ini.mybackup transition.ini

An alternative method is to use the CSSU Features Power key entry (if enabled).
This will take you to the CSSU Features application and provide options for restoring transitions.ini


==== Editing transitions.ini ====


To enable the CSSU features you have to edit a file (I use leafpad, but any editor works). '''After any CSSU update you have to do redo the edit or restore the backed up file (read below)'''.

Editing the file requires [[Root]] access.

The file to edit is &lt;code&gt;transitions.ini&lt;/code&gt; and is in:

 /usr/share/hildon-desktop/

So the command is:

 leafpad /usr/share/hildon-desktop/transitions.ini

'''If you use a theme that has a custom transitions.ini file,''' it will override the one above, so check in 

 /opt/usr/share/themes/[name of the theme you're using]/transitions.ini

if changing the transitions.ini file in the above path doesn't work.

The CSSU tweaks have to be turned on at the end of the file one by one, where there is also a bit more documentation about them.

If you don't see an option there, you need to update the CSSU install (via the application manager). You can check which version you have using System, Settings, About Community SSU.

After an update to the CSSU, the old transitions are backed up in /usr/share/hildon-desktop/transitions.ini.old, so you can restore them easily. However, if there have been two or more updates since you last did this, the .old one wont contain your changes. There is a bug logged to improve this behaviour.
You can restore this saved copy using
 mv /usr/share/hildon-desktop/transitions.ini.old /usr/share/hildon-desktop/transitions.ini

To apply the changes, see below.


===== Applying the changes to transitions.ini =====


Some of these changes (taskswitcher, zaxisrotation, forcerotation) apply as soon as you save the file, while others (blurless) require you to restart hildon-desktop. You can do so by turning the phone off and on again, or running as root:

 killall hildon-desktop

This will kill the hildon-desktop process, and it will be automatically restarted with the changed settings loaded and applied. Be sure not to &quot;killall hildon-desktop&quot; too often in a row (like several times in one minute), or the system will restart (nothing dangerous, though - just an annoyance).

Running killall hildon-desktop is not recommended, since hildon-desktop does not come back in a 100% clean state.

==Contents==

Default contents, values and usage of the transitions.ini file


===Blur===

 [blur]
 turbo=0
 duration=20

===Task Nav===

 [task_nav]       
 zoom=0.85                              
 zoom_for_home=1.4                     
 zoom_duration=20                            
 fly_duration=20                               
 notifade_in=150                                 
 notifade_out=150                     
 tile_font=Nokia Sans 15    

===Home===

 [home]
 radius=12
 radius_more=10       
 saturation=0.8  
 brightness=0.4 
 zoom=0.93      
 zoom_applets=0.85 
 zoom_on_press=0  
 parallax=1.2    

==== Zoom effect ====

Zoom press just does a quick little zoom out and back in again with you touch certain things, such as an icon on the home screen or the main top menu in applications. 

 [home]
 zoom_on_press=0

==== Home screen parallax amount ====

parallax is when you scroll across desktops and the icons scroll faster than the background, making the icons appear closer. a larger number in the transition.ini file for parallax and the faster the icons will move.

 [home]
 parallax=1.2

===Launcher===

 [launcher]
 deceleration_rate=0.97
 strong_deceleration_rate=0.7


===Launcher Glow===

 [launcher_glow] 
 duration_in=20
 duration_out=20
 radius=10
 brightness=0.75                  

===Launcher In===

 [launcher_in]
 duration=20 
 sequenced=0
 depth=225
 keyframes=0, 0.17, 0.39, 0.65, 0.87, 1.13, 1.26, 1.22, 1.17, 1.13, 1.09, 1.04, 1, 1, 1, 1, 1, 1, 1, 1, 1
 keyframes_icon=0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1          
 keyframes_label=0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1

===Launcher Out===

 [launcher_out]
 duration=20
 depth=150                          

===Launcher Out Back===

 [launcher_out_back]
 duration=20
 depth=150

===Launcher Launch===

 [launcher_launch]
 duration=20
 delay=500
 duration_out=20
 depth=100

===Launcher in Sub===

 [launcher_in_sub]
 duration=20
 sequenced=0
 depth=200
 keyframes=0, 0.17, 0.39, 0.65, 0.87, 1.13, 1.26, 1.22, 1.17, 1.13, 1.09, 1.04, 1, 1, 1, 1, 1, 1, 1, 1, 1
 keyframes_icon=0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
 keyframes_label=0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1

===Launcher Out Sub===

 [launcher_out_sub]
 duration=20
 depth=150

===Launcher Back===

 [launcher_back]
 duration=20
 depth=150

===Launcher Forward===

 [launcher_forward]
 duration=20
 depth=100

===Rotate===

 [rotate]
 duration_in=20
 duration_out=20
 damage_timeout=0
 damage_timeout_plus=0
 damage_timeout_max=0
 angle=45

====Screen rotation transition usage====

*duration_in = time for rotation before blanking
*duration_out = time for rotation after blanking
*damage_timeout = in the rotation transition, the amount of milliseconds to leave after we get a damage event before we transition back
from blanking.
*damage_timeout_max = maximum amount of time we may wait if we keep getting
damage events. 
*angle = rotation angle for each transition, in degrees. Ideally this is set so that the screen looks like it keeps turning at the same speed
during blanking. 0 is none, 90 degrees is side-on 

===App Close===

 [app_close]
 duration=20

===Popup===

 [popup]
 duration_in=20
 duration_out=20

===Fade===

 [fade]
 duration_in=20
 duration_out=20
 banner_note_alpha=0.85
 info_note_alpha=0.85

===Notification===

 [notification]
 is_cool=0
 duration_in=20
 duration_out=20

===Subview===

 [subview]
 duration_in=20
 duration_out=20

===Loading Timeout===

 [loading_timeout]
 load_average_factor=7.5

====Load average factor====
This value is multiplied by the load average to find the timeout in seconds before &quot;Unable to load&quot; is displayed. 

===Edit Mode===

 [edit_mode]
 snap_grid_size=8
 snap_to_grid_while_move=1

====Size of spaces between grid snaps====

 [edit_mode]
 snap_grid_size=8

====Snap to Grid While Move====
Set to 0 if snap to grid should be only happen when widget is released 
 
 [edit_mode]
 snap_grid_while_move=1

===thp_tweaks===

Most features go under the [thp_tweaks] section present in transitions.ini at the bottom of the file after a CSSU update. However, if you use your own transitions.ini files (for example from MaeModder), this section will not be present and you must add it.

 [thp_tweaks]

Entries under other sections have this indicated. Add them at the end of that section instead.

===Blurless===
If you want to enable a blurless effect for the background when switching apps (Off = 0 - On = 1)

 blurless=0

===Blurless Saturation===
If you want to enable a blurless saturation effect (Off = 0 - On = 1)

 blurless_saturation=0 

===Task Switcher Layout===
For the task switcher layout you can choose 1, 2 columns or the default (Default = 0, Single Column = 1 and Double Column = 2)

 taskswitcher=0

More details and some demo videos of these features are here : http://thpmaemo.blogspot.com/2011/02/community-ssu-features-to-look-forward.html

===Rotation Effect===
For the alternative rotation effect, spin in place rather than flip. (X/Y Flip = 0 and Z Spin = 1)
 
 zaxisrotation=0

===Forced Rotation===

The point of forcerotation is to make it easier to identify the apps which are:

*Closed source but work well. A &quot;white-list&quot; will be developed and included in a future CSSU so that these rotate out-of-the-box.
*Open source but work well. These will have the appropriate flags added to their source in the git repos.
*Open source but nearly work. These will have the appropriate flags and changes added to their source in the git repos.

You can force all apps to rotate (Auto = 0 and Forced = 1)

 forcerotation = 0

This isn't likely to [[Community SSU/Features/Portrait mode|work well for all applications]] - and never will. The [http://talk.maemo.org/showpost.php?p=953421&amp;postcount=969 point of forced rotation] is to make it easier to identify the apps which are:

* Closed source but work well. A &quot;white-list&quot; will be developed and included in a future CSSU so that these rotate out-of-the-box.
* Open source but work well. These will have the appropriate flags added to their source in the git repos.
* Open source but nearly work. These will have the appropriate flags and changes added to their source in the git repos.


Therefore, unless an app falls into one of the above categories, please do not raise bugs in the CSSU.

===Tactile Pop-ups===
If you want to enable tactile pop-ups (Off = 0 - On = 1)
An additional package is required to use this feature.
&quot;tactile&quot; located in the maemo.org repos.

 tactilepopups=0

===Blacklist===

Blacklist is a feature provided in [[Community SSU]], that allows individiual applications to be blocked from rotating.
This feature is to be used in conjunction with forcerotatation also provided as part of [[Community SSU]]
Currently the only way to edit the blacklist is manually via a text editor from [[Terminal]], unlike many of the features above.

====Editing the Blacklist====

In the default transistions.ini an example is provided.
To add an application to the list use the following format

 blacklist= appname1 appname2

====Application====

A list of application names are provided below to make it easier to add applications to the list.

{| class=&quot;wikitable sortable&quot;
! width=&quot;220&quot; | Application Package Name
! width=&quot;220&quot; | Application Name
|-
|mediaplayer || The stock media player
|-
|osso-xterm || xTerminal 
|-
|image-viewer || Image viewer 
|-
|camera-ui || Camera 
|-
|Calendar || Calendar 
|-
|nokia-maps || Nokia Maps
|-
|osso_calculator || Calculator
|-
|osso-browser || MicroB Stock Browser
|-
|conky || Conky
|-
|qtlockscreen || Qt Lockscreen by sakya
|-
|someplayer || SomePlayer
|-
|worldclock || Clock
|-
|controlpanel || Settings
|-
|rtcom-call-ui || Phone
|-
|active-desktop-sp
|-
|advanced-clock-plugin
|-
|AlmostTI
|-
|angrybirds
|-
|angrybirds-levelpack1
|-
|angrybirds-levelpack2
|-
|angrybirds-levelpack3
|-
|angrybirds-levelpack4
|-
|apmefo
|-
|applock
|-
|autodisconnect
|-
|bounce
|-
|Bless900
|-
|cal-home-widget
|-
|callerx
|-
|callerxui
|-
|cell-modem-ui
|-
|cfmradio
|-
|chaosandmayhem
|-
|clean900
|-
|com-ea-app-monopoly
|-
|com-ea-app-sims
|-
|com-gameloft-app-asphalt5
|-
|com-gameloft-app-blades
|-
|com-gameloft-app-driver
|-
|com-gameloft-app-hawx
|-
|com-gameloft-app-nova
|-
|com-gameloft-app-realsoccer2010
|-
|com-gameloft-app-xletsgolf
|-
|com-glu-app-clockwork
|-
|com-glu-app-ghero5
|-
|community-ssu-enabler
|-
|conky-n900 || Conky..
|-
|conkylayoutswitcher
|-
|connectnow-home-widget
|-
|cpumem-applet
|-
|cssufeatures
|-
|custom-operator-name-widget
|-
|decoders-support
|-
|diskusage
|-
|docstogo
|-
|drnoksnes || SNES Emulator
|-
|es-no2-basketmania
|-
|evopedia
|-
|extcalllog
|-
|fapman
|-
|fillmore
|-
|flashlight-applet
|-
|flashlight-extra-gtk
|-
|fm-boost
|-
|friendlyfm
|-
|guitar-chords
|-
|harmattan-icons-pack
|-
|headphoned
|-
|hostmode-gui
|-
|kernel-power-flasher
|-
|kernel-power-settings
|-
|kmplayer || KMPlayer
|-
|leafpad
|-
|led-pattern-editor
|-
|libqtm-bearer
|-
|libqtm-contacts
|-
|libqtm-location
|-
|libqtm-messaging
|-
|libqtm-multimedia
|-
|libqtm-publishsubscribe
|-
|libqtm-sensors
|-
|libqtm-serviceframework
|-
|libqtm-systeminfo
|-
|libqtm-versit
|-
|lowbatled
|-
|livewp  || Non rotating Live Wallpaper
|-
|mc || Midnight Commander
|-
|maemoblocks
|-
|osso-chess-ui
|-
|osso-mahjong
|-
|osso-lmarbles
|-
|gnuchess
|-
|mp-fremantle-community-pr
|-
|n900-fmrx-enabler
|-
|neverball
|-
|neverputt
|-
|nhouse
|-
|njurassic
|-
|offscr-discs
|-
|offscr-fifteen
|-
|ogg-support
|-
|openssh
|-
|openssh-client
|-
|openssh-server
|-
|opera-mobile
|-
|personal-ip-address
|-
|picodrive || SEGA Mega Drive Emulator
|-
|preenv || Preenv (Need to be tested)
|-
|qcpufreq || QCPUFrequency
|-
|qtquickcompat
|-
|queen-beecon
|-
|quick-launch
|-
|quickpanorama-pro
|-
|recorder
|-
|rootsh
|-
|simple-brightness-applet
|-
|spbbrainevolution
|-
|spin
|-
|stellarium-mobile
|-
|tangram
|-
|tar-gnu
|-
|theme-customizer
|-
|timedsilencer
|-
|ttf-droid
|-
|tutorial-home-applet
|-
|vgb || GBC Emulator
|-
|vgba || GBA Emulator
|-
|worldtv99
|-
|zenbound
|}

http://talk.maemo.org/showthread.php?t=76377</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/Features/ke-recv</title>
    <id>5231</id>
    <revision>
      <id>49237</id>
      <timestamp>2012-08-27T10:13:43Z</timestamp>
      <contributor>
        <username>merlin1991</username>
        <id>3522</id>
      </contributor>
      <comment>New page: == Mount Blacklist == Whenever ke-recv mounts a device /etc/default/osso-mmc-blacklist.sh is called first, if the script calls exit itself the mount attempt is aborted.  Below is a sample ...</comment>
      <text xml:space="preserve">== Mount Blacklist ==
Whenever ke-recv mounts a device /etc/default/osso-mmc-blacklist.sh is called first, if the script calls exit itself the mount attempt is aborted.

Below is a sample script that can be used to blacklist mountpoints:

&lt;pre&gt;
#!/bin/sh

BLACKLIST=/etc/default/osso-mmc-blacklist

grep &quot;$PDEV&quot; ${BLACKLIST} &gt; /dev/null
if [ $? = 0 ]; then
  exit 0
fi
&lt;/pre&gt;

[[Category:Community]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/FeaturesStable</title>
    <id>5042</id>
    <revision>
      <id>49123</id>
      <timestamp>2012-08-15T21:12:57Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>/* transitions.ini */  Link to new page with all info on transitions</comment>
      <text xml:space="preserve">Features the stable [[Community SSU]] provides, for testing see [[Community SSU/Features| testing features]]

== additional Packages ==
The cssu stable branch currently contains one additional package that is not installed by default.
The package can be installed with HAM or with apt-get.
{| style=&quot;width:100%&quot;
! package
! application section
! description
|-
| status-area-orientationlock-applet
| Desktop
| Hildon statusmenu plugin to control orientation lock (lock to landscape)
|}

== gconf settings ==
The cssu stable branch comes with default settings that are considered stable, you can enable various features by tweaking the following settings:
=== hildon-desktop ===
* Enable rotation of Task Switcher, Launcher and desktop (remember to rearrange your widgets and shortcuts in portrait, hildon-desktop saves that layout seperately)
 gconftool-2 -s /apps/osso/hildon-desktop/ui_can_rotate -t bool true
* Enable vertical scrolling when in portrait
 gconftool-2 -s /apps/osso/hildon-desktop/scroll_vertical -t bool true
* Enable portrait wallpapers
 gconftool-2 -s /apps/osso/hildon-desktop/portrait_wallpaper -t bool true
* Disable the application menu editor
 gconftool-2 -s /apps/osso/hildon-desktop/menu_edit_disabled -t bool true
* Disable the desktop editing 
 gconftool-2 -s /apps/osso/hildon-desktop/key-actions/disable_edit -t bool true

=== others ===
* Make the FMTX applet always visible
 gconftool-2 -s /apps/osso/maemo-statusmenu-fmtx/always_visible -t bool true
* Change the number of rows in the status menu
 gconftool-2 -s /apps/osso/hildon-status-menu/view/number_of_rows -t int 6
 gconftool-2 -s /apps/osso/hildon-status-menu/view/number_of_rows_portrait -t int 8
* Also all settings from Modified Hildon Desktop are avaiable, see http://my.svgalib.org/repo/Modified_Hildon_Desktop.html

== transitions.ini ==

{{main|Community SSU/Features/hildon-desktop}}

[[Category:Community]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/In-built applications</title>
    <id>4750</id>
    <revision>
      <id>42010</id>
      <timestamp>2011-02-23T11:14:27Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>[[Community SSU/In-built applications]] moved to [[Community SSU/Development/In-built applications]]: This is a development resource.</comment>
      <text xml:space="preserve">#REDIRECT [[Community SSU/Development/In-built applications]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/Installation FAQ</title>
    <id>4673</id>
    <revision>
      <id>49657</id>
      <timestamp>2012-09-13T01:23:02Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>temporary notice for 5.1</comment>
      <text xml:space="preserve">'''[[Temporary Notice:]]
to update to CSSU-T5.1 you first have to update the operator name widget. Do NOT use &quot;update all&quot; button in Hildon Application Manager before you clicked on operator name to update that package first! 

If you already did try to &quot;update all&quot; and got &quot;use PC suite...&quot; error message: quit HAM, wait 5 minutes, start HAM, wait, update operator name widget, wait, &quot;update all&quot;.
'''


{{ambox|text=Most of the reasons on why the [[Community SSU|Maemo 5 Community SSU]] cannot be installed can be checked under the ''Problems'' tab when viewing the package in the Hildon Application Manager (HAM).
}}


'''Q: I can't update, as I get the message: TO UPDATE YOUR DEVICE TO THIS VERSION OF THE OPERATING SYSTEM YOU MUST USE NOKIA PC SUITE ON YOUR PC. CONNECT THE DEVICE TO YOUR PC VIA A USB CABLE AND LAUNCH THE APPLICATION.'''

'''A:''' The message is misleading. In the majority of the cases, it is either needed to free up some disk space or fix some conflicts with other packages. Before taking any action, check the the ''Problems'' tab when viewing the package in the Hildon Application Manager (HAM).


----


'''Q: I cannot install the Maemo 5 Community SSU Package because of xxxxx package'''

'''A:''' The best way to check out the source of the problem for this is to go into X Terminal and to use &lt;code&gt;apt-get&lt;/code&gt; as root to install the package whilst Community SSU repository is enabled inside the Hildon Application Manager (HAM):

  apt-get install ''package name that is causing the problem''

In most cases, users with the &lt;code&gt;modified-hildon-desktop&lt;/code&gt; package installed will have issues updating the &lt;code&gt;hildon-desktop&lt;/code&gt;. This  happens because the &lt;code&gt;modified-hildon-desktop&lt;/code&gt; overwrites schemes set out by the normal &lt;code&gt;hildon-desktop&lt;/code&gt; package. To alleviate this issue one needs to '''remove the &lt;code&gt;modified-hildon-desktop&lt;/code&gt;''' before retrying.

In case there are a lot of packages causing the problem you may run the following command in X Terminal with root privileges:

  apt-get update
  apt-get install mp-fremantle-community-pr

That will allow upgrade to the CSSU.


----


'''Q: I can't install the enabler; it says &quot;not enough disk space available&quot;. How much is required?'''

'''A:''' stlpaul [http://talk.maemo.org/showpost.php?p=931491&amp;postcount=7 reports] that he freed up 15MB from the rootfs and &quot;then it worked&quot;.


----


'''Q: The installation of CSSU fails and HAM says something about catalogue problems.'''

'''A:''' The Community SSU installer cannot check if the CSSU catalogue or any other catalogue fails to update and does not continue in any case. Start the Application Manager '''before''' you do any of the installation steps. Try to update your catalogues and remove any non-working catalogues, that is those marked with a red &quot;!&quot;) in the Settings.


----


'''Q: The installer doesn't reboot N900 - I only have a black screen with backlight!'''

'''A:''' You probably have wall charger or USB cable plugged in. That prevents normal shutdown from happening so you need to shut down the phone manually. Try pressing the power button and if you get to the power button menu, shut it down from there. If not, then hold down the power button for long enough to shut it down.

After this, start your N900 normally and you should have the CSSU installed - try for example the portrait mode menu.


----


'''Q: After installing version 20.2010.36-maemo14, my hildon-status-menu has no rows'''

'''A:''' 20.2010.36-maemo14 introduces configurable rows in hildon-status-menu, gconf should use the default value, but in some cases doesn't, the following commands should set back to default:
 gconftool-2 -s /apps/osso/hildon-status-menu/view/number_of_rows -t int 6
 gconftool-2 -s /apps/osso/hildon-status-menu/view/number_of_rows_portrait -t int 8


----

'''Q: How do I uninstall the CSSU?'''

'''A:''' This is not a fully supported operation at the moment, however the following notes may help:

# disable the CSSU repository in the package manager
# disable the [[extras-devel]] repository (if left enabled, the upgrade command might force unstable versions of currently installed applications or libraries)  
# uninstall &lt;code&gt;mp-fremantle-community-pr&lt;/code&gt; using the package manager
# uninstall &lt;code&gt;mcsp&lt;/code&gt; using the package manager
# uninstall ''Community SSU enabler'' using the package manager
# do an update check and install any that show up (or execute on the command line as root &lt;code&gt;apt-get update &amp;&amp; apt-get upgrade&lt;/code&gt;)
# As root, execute &lt;code&gt;apt-get install mp-fremantle-generic-pr&lt;/code&gt;

'''This method is neither officially supported nor advised, and will usually result in a system with quite a number of problems. Only sane way to &quot;uninstall&quot; CSSU is to do a reflash of COMBINED aka rootfs, or to restore a backupmenu backup.'''


[[Category:Community]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/QA</title>
    <id>4417</id>
    <revision>
      <id>47519</id>
      <timestamp>2012-05-19T18:19:16Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <minor/>
      <comment>/* Process */ Owners</comment>
      <text xml:space="preserve">== Current bugs ==
{{#bugzilla:
  |product=Maemo 5 Community SSU
  |status=UNCONFIRMED,NEW,ASSIGNED,REOPENED,RESOLVED
  |resolution=!(INVALID,DUPLICATE,WORKSFORME)
  |columns=id,status,resolution,summary
}}

== Process ==

As started being discussed on [http://talk.maemo.org/showthread.php?t=67905 talk.maemo.org]:

# Who ultimately owns the CSSU?
#* The hierarchy of owners is [https://garage.maemo.org/projects/cssu/ CSSU group], [https://garage.maemo.org/projects/cssu-testing/ cssu-testing admins], [https://garage.maemo.org/projects/cssu-stable/ cssu-stable admins]
# How will included improvements be decided?
#* Will there be an inclusive policy - every improvement that someone is willing to work on will be included - or will there be a gatekeeper that will decide what to include?
#* Is the scope limited to improving packages which are included by Nokia in the OS; or should it grow to include &quot;useful&quot; stuff?
#* Should wholesale replacement of apps (such as Media Player) be done with open source, feature- &amp; UI-compatible versions; if available?
# How will testing be organised?
#* Positive
#* Negative
#* Regression
#* Installation from scratch
#* Upgrade from previous version
# How will it be advertised?
# How will it be supported?
#* Bugzilla
#* IRC?
#* Forum
# At what point do bugs get set to &lt;code&gt;RESOLVED FIXED&lt;/code&gt;? Such as [https://bugs.maemo.org/3700#c36 #3700]

== Test scripts ==
{|
! colspan=2 | Upgrade from PR 1.3 global
|-
| ''Step''
| ''Action''
| ''Expected outcome''
|-
| 1
| Get [http://tablets-dev.nokia.com/nokia_N900.php?f=RX-51_2009SE_20.2010.36-2_PR_COMBINED_MR0_ARM.bin 20.1010.36-2] image
|
|-
| 2
| Flash using &lt;code&gt;flasher-3.5&lt;/code&gt;
|
|-
| 3
| Install &lt;code&gt;community-ssu-enabler-testing&lt;/code&gt;
| Application installs, dialogue opens
|-
| 4
| Run the &quot;Community SSU Installer&quot; application
| Prompts for various changes
|-
| 5
| Start &quot;Application Manager&quot; and click &quot;Check for updates&quot;
| The SSU release is shown
|-
| 6
| Select &quot;Maemo 5 Community SSU&quot; to install and confirm
| SSU installs. After reboot, message &quot;Operating system updated successfully&quot; shown
|-
| 7
| Check official [[Community_SSU#Installation|install instructions]]
| Instructions correspond to above steps and names shown during installation
|}

...
	
[[Category:Community]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/QA</title>
    <id>4417</id>
    <revision>
      <id>47519</id>
      <timestamp>2012-05-19T18:19:16Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <minor/>
      <comment>/* Process */ Owners</comment>
      <text xml:space="preserve">== Current bugs ==
{{#bugzilla:
  |product=Maemo 5 Community SSU
  |status=UNCONFIRMED,NEW,ASSIGNED,REOPENED,RESOLVED
  |resolution=!(INVALID,DUPLICATE,WORKSFORME)
  |columns=id,status,resolution,summary
}}

== Process ==

As started being discussed on [http://talk.maemo.org/showthread.php?t=67905 talk.maemo.org]:

# Who ultimately owns the CSSU?
#* The hierarchy of owners is [https://garage.maemo.org/projects/cssu/ CSSU group], [https://garage.maemo.org/projects/cssu-testing/ cssu-testing admins], [https://garage.maemo.org/projects/cssu-stable/ cssu-stable admins]
# How will included improvements be decided?
#* Will there be an inclusive policy - every improvement that someone is willing to work on will be included - or will there be a gatekeeper that will decide what to include?
#* Is the scope limited to improving packages which are included by Nokia in the OS; or should it grow to include &quot;useful&quot; stuff?
#* Should wholesale replacement of apps (such as Media Player) be done with open source, feature- &amp; UI-compatible versions; if available?
# How will testing be organised?
#* Positive
#* Negative
#* Regression
#* Installation from scratch
#* Upgrade from previous version
# How will it be advertised?
# How will it be supported?
#* Bugzilla
#* IRC?
#* Forum
# At what point do bugs get set to &lt;code&gt;RESOLVED FIXED&lt;/code&gt;? Such as [https://bugs.maemo.org/3700#c36 #3700]

== Test scripts ==
{|
! colspan=2 | Upgrade from PR 1.3 global
|-
| ''Step''
| ''Action''
| ''Expected outcome''
|-
| 1
| Get [http://tablets-dev.nokia.com/nokia_N900.php?f=RX-51_2009SE_20.2010.36-2_PR_COMBINED_MR0_ARM.bin 20.1010.36-2] image
|
|-
| 2
| Flash using &lt;code&gt;flasher-3.5&lt;/code&gt;
|
|-
| 3
| Install &lt;code&gt;community-ssu-enabler-testing&lt;/code&gt;
| Application installs, dialogue opens
|-
| 4
| Run the &quot;Community SSU Installer&quot; application
| Prompts for various changes
|-
| 5
| Start &quot;Application Manager&quot; and click &quot;Check for updates&quot;
| The SSU release is shown
|-
| 6
| Select &quot;Maemo 5 Community SSU&quot; to install and confirm
| SSU installs. After reboot, message &quot;Operating system updated successfully&quot; shown
|-
| 7
| Check official [[Community_SSU#Installation|install instructions]]
| Instructions correspond to above steps and names shown during installation
|}

...
	
[[Category:Community]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/Stable</title>
    <id>4901</id>
    <revision>
      <id>47993</id>
      <timestamp>2012-05-31T22:13:52Z</timestamp>
      <contributor>
        <ip>92.25.106.93</ip>
      </contributor>
      <comment>Replacing page with 'Remove This Page...'</comment>
      <text xml:space="preserve">Remove This Page...</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/What is coming</title>
    <id>4734</id>
    <revision>
      <id>41861</id>
      <timestamp>2011-02-17T08:56:42Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>[[Community SSU/What is coming]] moved to [[Community SSU/Features]]: Let's make this a general &quot;how to use the new features&quot;</comment>
      <text xml:space="preserve">#REDIRECT [[Community SSU/Features]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/What is coming here</title>
    <id>4733</id>
    <revision>
      <id>41945</id>
      <timestamp>2011-02-22T14:06:14Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Community SSU/Features]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/camera-ui</title>
    <id>4840</id>
    <revision>
      <id>43027</id>
      <timestamp>2011-04-12T09:01:11Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>[[Community SSU/camera-ui]] moved to [[Community SSU/Features/Camera UI]]</comment>
      <text xml:space="preserve">#REDIRECT [[Community SSU/Features/Camera UI]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU/known broken packages</title>
    <id>5248</id>
    <revision>
      <id>49779</id>
      <timestamp>2012-09-21T18:38:49Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">the following packages/applications are known to be broken or introduce some kind severe problem or dysfunction, and so you better stay away from them unless you know what you're doing:

{| class=&quot;wikitable sortable&quot;
|+ Compatible USB devices
|-
! package name/URL
! level of verification of problem
! class=&quot;unsortable&quot; | symptoms and impact
! affected files you might reinstall to fix
! class=&quot;unsortable&quot; | pkg bad version (later might be fixed) 
|-
|http://maemo.org/packages/view/autodisconnect/  ||  (common knowledge) || general loss of connectivity, needs reflash since pkg doesn't uninstall cleanly || &lt;code&gt;?&lt;/code&gt;|| 0.4.8
|-
|http://maemo.org/packages/view/wifi-switcher/  || suspected, http://talk.maemo.org/showpost.php?p=1270059&amp;postcount=776 || loss of WLAN  || &lt;code&gt; ?  &lt;/code&gt;|| ?
|-
|http://maemo.org/packages/view/fapman/  || known to sometimes break stuff, by doing autoremove, not following dependencies, not running preinst || random system mess up  || don't use fapman || 0.7.1-1 
|-
|}</text>
    </revision>
  </page>
  <page>
    <title>Community SSU changelog</title>
    <id>4658</id>
    <revision>
      <id>41218</id>
      <timestamp>2011-01-20T14:45:34Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>[[Community SSU changelog]] moved to [[Community SSU/Changelog]]: Move under the main CSSU page.</comment>
      <text xml:space="preserve">#REDIRECT [[Community SSU/Changelog]]</text>
    </revision>
  </page>
  <page>
    <title>Community SSU notes</title>
    <id>4660</id>
    <revision>
      <id>41223</id>
      <timestamp>2011-01-20T14:53:21Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>[[Community SSU notes]] moved to [[Community SSU/QA]]: QA process</comment>
      <text xml:space="preserve">#REDIRECT [[Community SSU/QA]]</text>
    </revision>
  </page>
  <page>
    <title>Community localization</title>
    <id>3138</id>
    <revision>
      <id>29804</id>
      <timestamp>2010-02-19T10:19:19Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Maemo.org */ [[Fremantle]] and [[Karma]] links</comment>
      <text xml:space="preserve">== Goal ==
It should be easy for translators to create high quality translations of
* published Nokia applications
* community provided applications
* third party commercial applications

The translation process happens in a system (&quot;the system&quot;) described in this page. The system should provide a web based tool based on a customized version of Transifex and it needs to integrate nicely with the whole maemo.org infrastructure.

All translations produced should be submitted to the upstream projects if possible. If that is not possible (or not wanted) the translations will be stored in a maemo.org repository.

Community applications will ship Debian packages including the translations as usual. For preinstalled software the systen provides Debian packages containing only the translations. One package for each language.

The system shall support multiple projects with multiple licenses and takes care of not mixing translations release with different licenses.

== Glossary ==

* Team: Logical team consisting of translators working on a language (eg. de, ca, id)
* Collection: Groups of projects (eg. Maemo, GNOME, KDE). In the system, all projedcts will go under Maemo collection.
* Software Project: Project to be translated (eg. conboy, gPodder)
* Translation Project: A project in the system which correlates with the software project
* Developer: A person who creates a translation project. For community applications it would likely it is the same person who owns the software project.
* Component: A specific branch/release of a project
* Team Owner: Person who creates a team
* Coordinator: Person who manages the team

==How it works==

This is how the system works in several point of views.
=== Developer point of view ===
==== To connect the software project with the system ====
* Create a translation project in the system, by doing one of these steps below:
** Create or modify a project in garage, tick &quot;[] I want my project to be translatable by community&quot; 
** or
** Create a project somewhere else (eg. GitHub) and create the translation project in the system
* Give authorization to system to submit translations to the origin VCS of the project

==== String freeze ====
In the component view, developer selects date for upcoming project release date and string freeze. Translators can see the dates in the calendar in dashboard.

==== Communication ====
Developer can initiate mass message for subscriber of the project eg. to communicate a new branch or string freeze break.

=== Translator point of view ===
Translator group consists of team owner, one or more coordinators, and one or more translators.

==== Team building ====
* Team owner requests a team creation for a language
* After team is created by System Administrator, owner can add translators/coordinator/reviewers
* translator joining a team, getting approval from coordinator to commit translations for all of the projects.

==== Doing the translation ====
* Go to project's component
* Translator select the component she wants to translate, and this effectively lock the translation file
* When translator thinks she is done with the translation, the review request is sent, the lock is released

=== Reviewer ===
* Reviewer gets notifications of a ready-to-review translation
* Reviewer reviews the translations, 
** If the translation is accepted, the state of the translation is now &quot;Approved&quot; and pushed to upstream (or exported as packages)
** If the translation is rejected then the translation state is &quot;Rejected&quot; and the translator gets notification

=== Coordinator ===
Tasks:
* Prioritizing projects
* Adding/removing translators
* Monitoring that the translation process is moving and act accordingly

There will be no special interface for coordinator to do tasks above.

=What needs to be done=

There are three parties needed to realize the community localizations. Those are Nokia, Transifex.net and Maemo.org. For each of them we collected a prioritized list of deliverables.

==Nokia==

* Needs to provide the funds.
* Needs to provide translatable strings of all closed applications.
* Should open the official language selection dialog in order to make it display not only official translations but also community translations. The language selection dialog in Fremantle uses a hard coded list. This should be changed in Harmattan. Instead of a hard coded list it should display all installed translations.
* Could integrate community translations into the first-start setup dialog. There are currently only official translations selectable. There could be an option to let the user download and install community translations. If needed of course with a disclaimer.
** If the above is too intrusive the user could get a message telling him that there are community translations available for download.
* Could provide the existing translations (after sales start). Those translations could be used to bootstrap the translation system, fill the glossary, etc.

==Transifex.net==

* Needs to support translation teams (grouped by languages)
* Needs to provide running installation on maemo.transifex.net. As soon as possible open for beta user. Later open for everyone.
* Needs to support for roles (Owner, Coordinator, Translator, Reviewer, Developer)
* Needs to provide a reviewing system
* Needs to support .ts files version 3.0 which introduces multiple variants of translations for different screen sizes. Such .ts files are used in [[Open development/Maemo roadmap/Harmattan|Harmattan]].
* Needs to support .po files using logical IDs used in Fremantle. Logical IDs are used by Nokia internal software like, for example, the media player.
* Should be able to show a license page to translators. Translators have to agree to commit there translations using that license.
* Should support access rights on collections. With that translators can get commit rights to all maemo.org projects without having to request permissions to each single project.
* Should offer a way to get statistics (like number of translated strings) into the Maemo.org karma system.
* Should offer a subscription/communication system. This can be used for automatic notifications and also for communications between different people.
* Should let the developer set the date of the next planned release. This would help translators to finish up translations on time.
* Should offer a calender with the collected release dates. This calender can be used to prioritize translation work.
* Should offer a way to lock selected languages for certain projects. E.g. the German translation of Nokias media player does already officially exist - therefore it would be a waste of time if the community would translate it again.
* Should provide single sign on with maemo.org
* Should support project states like Started, Reviewed, Completed
* Could include translator credits in the .po files. With that translators could properly be credited in the package/application.
* Could offer automatic glossary lookup
* Could offer translation memory
* Could include translation-toolkit to catch common translation errors.
* Needs to support 1:n translations. They will be used in Maemo 6 to provided strings with different length (e.g. portrait/landscape orientation). The number of variants may vary from language to language.

==Maemo.org==

* Needs to write software to create Debian packages out of translations for closed applications. (E.g. Arabic translation of Nokias media player)
* Should add support for [[Karma]] generated by translation work on transifex.net
* Should offer single sign on with transifex.net
* Could offer new garage projects to automatically create a corresponding transifex.net project.
* Could write [[Open development/Maemo roadmap/Fremantle|Maemo 5]] software to let users switch between community supported languages, because the default tool uses a hard coded list of languages.

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community mailing lists</title>
    <id>135</id>
    <revision>
      <id>41768</id>
      <timestamp>2011-02-10T11:49:13Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* RSS Feeds */ wikify link and list</comment>
      <text xml:space="preserve">There are several different mailing lists affiliated with this community. When signing up for any list, keep in mind that the maemo.org community is very active -- it is not unusual to receive numerous e-mails a day, based on which lists you are subscribed to. You can either choose to receive individual e-mail messages from the list(s) or daily digests containing multiple e-mail messages per digest.

== Overview ==

The following mailing lists are [https://lists.maemo.org/mailman/listinfo/ available at maemo.org]:

; [https://lists.maemo.org/mailman/listinfo/maemo-announce maemo-announce] : News and updates about maemo.org and Maemo
; [https://lists.maemo.org/mailman/listinfo/maemo-users maemo-users] : For Maemo users
; [https://lists.maemo.org/mailman/listinfo/maemo-developers maemo-developers] : For Maemo developers and hackers
; [https://lists.maemo.org/mailman/listinfo/maemo-community maemo-community] : For maemo.org web and community-process related discussions
; [https://lists.maemo.org/mailman/listinfo/maemo-commits maemo-commits] : For following Maemo svn commit activity
; [https://garage.maemo.org/mailman/listinfo/testingsquad-list testing-squad] : For the maemo.org Testing Squad

In addition to these general-interest mailing list, there are several more [https://garage.maemo.org/mailman/listinfo/ specialised project-specific mailing lists], some of which are listed below..

== Subscribing via the web ==

To subscribe to a mailing list, follow the instructions on the list's web-page.

'''Note!'''
Before reporting problems, asking questions or introducing a newly ported application please check the list archives or our web pages. 

== Subscribing by Email ==

You can also subscribe to a mailing list by sending an email with the subject ''subscribe'' to one of the following addresses:

* mailto:maemo-announce-request@maemo.org
* mailto:maemo-users-request@maemo.org
* mailto:maemo-developers-request@maemo.org
* mailto:maemo-community-request@maemo.org
* mailto:maemo-commits-request@maemo.org

You will receive an email to confirm your subscription. The only thing you need to do when this email arrives is to reply.

'''Note!'''
Please do not edit the Subject field of your reply!

== Subscribing via Nabble ==

The Nabble forum allow users to browse the maemo community mailing lists like a internet forum, is also possible to reply to the lists trough the Nabble forum.

* [http://maemo-community-mailing-lists.2589537.n2.nabble.com/ maemo community mailing lists at Nabble]

== Archives ==

Archives of the [https://lists.maemo.org/mailman/listinfo/ Maemo mailing lists] are available through the links below:

* [http://lists.maemo.org/pipermail/maemo-announce/index.html archives of maemo-announce]
* [http://lists.maemo.org/pipermail/maemo-users/index.html archives of maemo-users]
* [http://lists.maemo.org/pipermail/maemo-developers/index.html archives of maemo-developers]
* [http://lists.maemo.org/pipermail/maemo-commits/index.html archives of maemo-commits]
* [http://lists.maemo.org/pipermail/maemo-community/index.html archives of maemo-community] (formerly maemo2midgard-discussion)
* [https://garage.maemo.org/pipermail/testingsquad-list/ archives of testing-squad]

== Project specific mailing lists ==

In addition to the general interest mailing lists, there are many project-specific mailing lists hosted on Garage. A full list of mailing lists hosted on Garage is available at https://garage.maemo.org/mailman/listinfo/

Here is a selection of the most active mailing lists (please feel free to add your personal favourite list if it is not here yet):

* [https://garage.maemo.org/mailman/listinfo/modest-users modest-users]: A list for users of the popular [http://modest.garage.maemo.org/ Modest email client]
* [https://garage.maemo.org/mailman/listinfo/pymaemo-developers pymaemo-developers]: A list for developers who want to create [[PyMaemo|Python applications for Maemo]]


[[Category:Community]]
[[Category:maemo.org]]

== Gmane Archives ==
[http://gmane.org/ Gmane], an excellent resource for mailing list archives of free software projects archives Maemo list discussions.

===Maemo Announcements===
* [http://dir.gmane.org/gmane.comp.handhelds.maemo.announce gmane.comp.handhelds.maemo.announce]

===Maemo Community===
List for community development
* [http://dir.gmane.org/gmane.comp.handhelds.maemo.community gmane.comp.handhelds.maemo.community]

===maemo-devel===
Development list of the maemo.org embedded linux distro used for Nokia Internet Tablets, and the n900.

* [http://dir.gmane.org/gmane.comp.handhelds.maemo.devel gmane.comp.handhelds.maemo.devel]

===Build Logs===
* [http://dir.gmane.org/gmane.comp.handhelds.maemo.extras-cauldron.builds gmane.comp.handhelds.maemo.extras-cauldron.builds]
Build logs from Maemo's &quot;[[extras]]&quot; autobuilder (read-only)

===Modest Development===
* [http://dir.gmane.org/gmane.comp.handhelds.maemo.modest.devel gmane.comp.handhelds.maemo.modest.devel]
Modest development

===Modest users===
* [http://dir.gmane.org/gmane.comp.handhelds.maemo.modest.devel gmane.comp.handhelds.maemo.modest.user]
Modest users

===MUD===
* [http://dir.gmane.org/gmane.comp.handhelds.maemo.mud gmane.comp.handhelds.maemo.mud]
Users of the Maemo Unofficial Debs (MUD) toolset

===Maemo Commits===
* [http://dir.gmane.org/gmane.comp.handhelds.maemo.scm gmane.comp.handhelds.maemo.scm]
maemo commits

===Maemo User===
* [http://dir.gmane.org/gmane.comp.handhelds.maemo.user gmane.comp.handhelds.maemo.user]
For Nokia Maemo users (non-public)

===Debian Maemo Development===
* [http://dir.gmane.org/gmane.linux.debian.alioth.maemo.devel gmane.linux.debian.alioth.maemo.devel]
Debian development list for maemo packages

===Debian Maemo Maintainers===
* [http://dir.gmane.org/gmane.linux.debian.alioth.maemo.maint gmane.linux.debian.alioth.maemo.maint]
Debian maintainer list for maemo packages

== RSS Feeds ==
[http://gmane.org/ Gmane] also has [[:wikipedia:RSS|RSS feeds]] of the mailing lists.

* [http://rss.gmane.org/messages/complete/gmane.comp.handhelds.maemo.announce maemo announcements]
* [http://rss.gmane.org/messages/complete/gmane.comp.handhelds.maemo.community maemo-community -- List for community development]
* [http://rss.gmane.org/messages/complete/gmane.comp.handhelds.maemo.devel maemo-devel]
* [http://rss.gmane.org/messages/complete/gmane.comp.handhelds.maemo.extras-cauldron.builds Build logs from maemo's &quot;extras&quot; autobuilder (read-only)]
* [http://rss.gmane.org/messages/complete/gmane.comp.handhelds.maemo.modest.devel modest-devel]
* [http://rss.gmane.org/messages/complete/gmane.comp.handhelds.maemo.modest.devel Modest users]
* [http://rss.gmane.org/messages/complete/gmane.comp.handhelds.maemo.mud Users of the Maemo Unofficial Debs (MUD) toolset]
* [http://rss.gmane.org/messages/complete/gmane.comp.handhelds.maemo.scm maemo commits]
* [http://rss.gmane.org/messages/complete/gmane.comp.handhelds.maemo.user For Nokia Maemo users (non-public)]
* [http://rss.gmane.org/messages/complete/gmane.linux.debian.alioth.maemo.devel Debian development list for maemo packages]
* [http://rss.gmane.org/messages/complete/gmane.linux.debian.alioth.maemo.maint Debian maintainer list for maemo packages]</text>
    </revision>
  </page>
  <page>
    <title>Community news</title>
    <id>3498</id>
    <revision>
      <id>42218</id>
      <timestamp>2011-02-28T08:51:17Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>revert vandalism:Undo revision 42184 by [[Special:Contributions/124.6.181.163|124.6.181.163]] ([[User talk:124.6.181.163|Talk]])</comment>
      <text xml:space="preserve">The Maemo community is a vibrant and noisy place. Here are some of the ways to keep up with what's going on in the community

== Maemo Weekly News ==

For those on the run, [[Maemo Weekly News]] gives a short summary of the most noteworthy happenings in the Maemo community. The latest edition is always available at [http://mwkn.net Maemo Weekly News].

== Maemo News ==

The best of the latest news and announcements about Maemo, as voted by the Maemo community, can be found at [http://maemo.org/news/ Maemo News].

Maemo News is [[social news]], chosen and ranked by the community from news articles, announcements, blog entries, software releases and more.

== Planet Maemo ==

For a more general look at what the Maemo community are up to, try [http://planet.maemo.org Planet Maemo].

Planet Maemo is an aggregated list of blogs that are authored by community members. If you want to stay tuned to the maemo.org community pulse, bookmark this page.

If you’d like to have your own blog added to the Planet Maemo list, become a maemo.org member (see below), participate in some maemo.org projects, and request that your Maemo-specific blog feed be added to Planet Maemo.

== Community mailing lists ==

The nuts and bolts of the Maemo project, where all the work gets done, are the [[community mailing lists]]. From general development lists to lists dedicated to specific pieces of software, this is where the developer crowd hangs out.

== Tuning in over RSS ==

With all of these resources, there are a great number of RSS feeds available to the discerning reader.


News feeds available in maemo.org:

* [http://maemo.org/news/announcements/items.xml Announcements]
* [http://maemo.org/news/events/rss.xml Events]
* http://maemo.org/news/items.xml
* http://maemo.org/news/latest.xml
* [http://maemo.org/news/jobs/rss.xml Jobs]
* [http://garage.maemo.org/export/rss_sfnews_2.php Garage]
* [http://wiki.maemo.org/index.php?title=Special:Recentchanges&amp;feed=rss Wiki recent changes]


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Community ssu</title>
    <id>5036</id>
    <revision>
      <id>47635</id>
      <timestamp>2012-05-27T08:23:38Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>Redirecting to [[Community SSU]]</comment>
      <text xml:space="preserve">#REDIRECT [[Community SSU]]</text>
    </revision>
  </page>
  <page>
    <title>Community wish-list</title>
    <id>1665</id>
    <revision>
      <id>44160</id>
      <timestamp>2011-06-25T11:53:59Z</timestamp>
      <contributor>
        <username>pauvres_honteux</username>
        <id>4441</id>
      </contributor>
      <comment>/* Miscellaneous */</comment>
      <text xml:space="preserve">'''This Page is a compilation of wishes from the Maemo community, this info was compiled from several threads on [http://talk.maemo.org/ talk.maemo.org]. You can add your own wishes directly in this list'''

This list aims to be simple, in order to help new Maemo developers/members get ideas/features needed by the community and also to show to Nokia, the community desires.

==Form factor and components==

*A Xenon Flash
*A separate battery door
*Direct access to Memory card
*Digital compass
*D-pad

==Ports==

{{main|Applications you wish were ported from other platforms}}

==Communication==

*SIP Client - A true SIP client that connects to any server I want and does not go through any fixed proxy like gizmo does.
*Vibration when the communication is done to avoid to have the phone close to your head while it connect to the network.
*A roaming icon (triangle) in the status bar to know that you are in roaming.
*A way to force the phone to check, while in roaming, if the native operator is available.
*Video calls
*Built-in editable profiles (silent, meeting, etc.)
*Timed profiles
*Predictive dialer
*Working Twitter plugin for Conversations - [http://talk.maemo.org/showthread.php?t=38422 Thread on Maemo.org]
*Useful and working email client (pop, imap) with control over maximum email size to load, text/html formatting, attachment control (only load when necessary), multi-line display in overview, landscape/portrait mode etc... so just something that you can USE!

==Internet==

*Offline tools - flickr uploader, Gmail, Blogger and RSS
*WAP sites access
*Being able to put bookmarks in alphabetical order
*Being able to &quot;click to call&quot; when you see a phone number in the browser and dial direct from the phone (ie: not through voip or skype)
*Rewrapping of text when viewing pages (&quot;optimized view&quot;) so that you can scale fonts without scrolling sideways
*A LinkedIn application

==Multimedia==

*Audiobook player with automatic bookmarking and playlist capability - see http://panucci.garage.maemo.org/
*Canola - FM radio, and better internet radio support in Canola (mediaplayer is far better, but far uglier!)
*Music player with minilyrics support (.lrc files), showing the lyrics in full screen size, with options about size and colors.
*Media Player - Better media player / internet radio app that plays ogg, wma, and he-aac, and doesn't corrupt the library when it feels like.
*Control Media Player with the [http://maemo.org/community/brainstorm/view/headset_button_input_reader/ headset button] (click to pause, double click to next track, long click, triple click and so on).
*Music Player (default) - Support for in app metadata editing, repeat option for a single song in a playlist and a option to select view song lyrics by pressing on the artwork section.

==Widgets==

*A beautiful widget showing hour, date and current local weather as the main HTC sense page.
*One showing the time left until next alarm.
* New song lyric replacement (replaces the now unsupported TuneWiki Lyrics Widget)

==Miscellaneous==

* Hard or soft reset
* Bluetooth HFP - [http://www.internettablettalk.com/forums/showthread.php?t=18868 Discussion on ITT]
* Bluetooth rSAP
* [[:wikipedia:Bluetooth profile#Advanced Audio Distribution Profile (A2DP)|Bluetooth A2DP profile]]
* Better support for right-to-left languages, such as Arabic and Hebrew.
* Unionfs support built into the kernel (So users don't have to flash initfs and boot from SD, or make symlinks gone wild, just to install a few extra apps)
* More intuitive copy and paste
** Like the Apple Newton, for example
* Phone buttons (green/red)...
* Make use of the camera as a 3D scanner by using this guys work as a starting point: http://mi.eng.cam.ac.uk/~qp202/

==Application enhancement==

===Calendar and ToDo List===

* A PIM system that can be tied into by developers, to provide PC synchronization etc.
** An equivalent to telepathy for calendar, contact list and tasks: A well integrated framework (with binding for many languages such as Python).
** Possibly related to and syncable between Nokia phone models - as well as online.  PIM data should be available everywhere.
** PIM synchronization with Outlook (you may not be a fan of Outlook but that's what businesses need)
** Add more fields to the address book: Actual address, Birthday,....
* Global sync-software
* Birthday could display age
* Calendar sync with Thunderbird

===email===
*Search for emails and calendar
*An easy way to copy text from email content
*Ability to open email attachments
*multi-line display (sender, subject)
*configurable fonts
*less &quot;show&quot; more &quot;content&quot; when composing emails (hard to read and compose!)
*configurable download quantity (how many kb to download of each mail, no attachment download)
*similar features for imap and pop
*offline imap
*more control about autocheck time (day of the week, timeframe within checking)

===SMS===

* SMS writing via numeric keypad
* Portrait SMS
** See [[VertSMS]]

===Contacts===
*Voice Tags/dialling for contacts for use in the car
*Contacts synchronisation via Gmail or Ovi
*Contact groups and different ring tones per contact/group
*Contact calling, name tag read out by phone
*Search/sort by company, first name, last name, phone, adress etc.
*correlate contact(s) to events

[[Category:Community]][[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Companies in Maemo development</title>
    <id>826</id>
    <revision>
      <id>41397</id>
      <timestamp>2011-01-25T13:37:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>Unprotected &quot;[[Companies in Maemo development]]&quot;: page was moved</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo professionals#Companies_in_Maemo]]</text>
    </revision>
  </page>
  <page>
    <title>Comparison of Internet Tablet Models</title>
    <id>1295</id>
    <revision>
      <id>8002</id>
      <timestamp>2008-10-28T04:31:20Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Comparison of Internet Tablet Models]] moved to [[Comparison of tablet models]]</comment>
      <text xml:space="preserve">#REDIRECT [[Comparison of tablet models]]</text>
    </revision>
  </page>
  <page>
    <title>Comparison of tablet models</title>
    <id>243</id>
    <revision>
      <id>42371</id>
      <timestamp>2011-03-07T11:57:18Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>add link</comment>
      <text xml:space="preserve">{| class=&quot;wikitable&quot; style=&quot;width:100%;&quot;
|-
!
! width=&quot;170&quot; align=&quot;center&quot; | [[Image:770.jpg]] [[Nokia 770]]
! width=&quot;170&quot; align=&quot;center&quot; | [[Image:N800.jpg]] [[Nokia N800]]
! width=&quot;170&quot; align=&quot;center&quot; | [[Image:N810.jpg]] [[Nokia N810]]
! width=&quot;170&quot; align=&quot;center&quot; | [[Image:N900.jpg|160px]] [[Nokia N900]]
|-
! Local Connectivity
| 
* WLAN 802.11b/g 
* Bluetooth 1.2
* USB 1.1 Mini-B
| 
* WLAN 802.11b/g 
* Bluetooth 2.0 EDR 
* USB 2.0 Mini-B
| 
* WLAN 802.11b/g
* Bluetooth 2.0 EDR
* USB 2.0 Micro-A/B
| 
* WLAN 802.11b/g
* Bluetooth 2.1
* Infrared LED CIR TX-only 
* USB 2.0 Micro-B
|-
! Mobile Connectivity
| None
| None
| [[Nokia N810WME|Nokia N810 WiMaX Edition]] includes WiMaX 
| '''Communications:'''
* GSM 850/900/1800/1900
* UMTS 900/1700/2100 

'''Data:''' 
* GPRS 107/64 KBps (Up/Down)
* EDGE 296/178 KBps (Up/Down)
* WCDMA 384/384 KBps (Up/Down)
* HSPA 10/2 MBps (Up/Down)
|-
! Internal Storage
| 128 MB NAND 
| 256 MB NAND
| 2 GB internal eMMC
256 MB NAND
| 32 GB Internal eMMC
256 MB NAND
|-
! External Storage
| One (1) Memory Card Slot 
* RS-MMC
* MMCmobile

| Two (2) Memory Card Slots 

* SD(HC)
* miniSD(HC) &lt;ref name=&quot;adapter&quot;&gt;Adapter needed to fit in memory card slot.&lt;/ref&gt;
* microSD(HC) &lt;ref name=&quot;adapter&quot; /&gt;
* MMC
* RS-MMC &lt;ref name=&quot;adapter&quot; /&gt;

| One Memory Card Slot

* miniSD(HC)
* microSD(HC) &lt;ref name=&quot;adapter&quot; /&gt;

| One Memory Card Slot 

* microSD(HC)

|-
! RAM/Virtual Memory
| 
* 64 MB RAM
* (*3) MB Virtual Memory
| 
* 128 MB RAM
* Up to 128 MB Virtual Memory (on memory card)
| 
* 128 MB RAM
* Up to 128 MB Virtual Memory (on memory card)
| 
* 256 MB SDRAM,
* 768 MB swap (internal virtual memory)
|-
! Processor
| 
* Texas Instruments OMAP 1710 
* 252 MHz
| 
*Texas Instruments OMAP 2420 
* 400 MHz (underclocked to 330 MHz on OS2007)
| 
* Texas Instruments OMAP 2420 
* 400 MHz
| 
* Texas Instruments OMAP 3430 SoC 
* 600 MHz
|- 
! Display &lt;ref&gt;Measured diagonally, primary method of interaction.&lt;/ref&gt;
| 
* 800 x 480 Pixels
* 105 mm/4.13 in
* 16 bit color depth
| 
* 800 x 480 Pixels 
* 105 mm/4.13 in 
* 16 bit color depth
| 
* 800 x 480 Pixels 
* 105 mm/4.13 in 
* 16 bit color depth
| 
* 800 x 480 Pixels 
* 89 mm/3.5 in 
* 16 bit color depth
|- 
! [[Batteries|Battery]]
| 
* BP-5L Lithium-Ion Polymer 
* 1500 mAh 
| 
* BP-5L Lithium-Ion Polymer 
* 1500 mAh 
| 
* BP-4L Lithium-Ion Polymer 
* 1500 mAh 
| 
* BL-5J Lithium-Ion
* 1320 mAh 
|-
! Operating Times
| 
* Idle (Offline) 7 Days 
* Idle (Online) about 12 Hours
* Browsing 3 Hours
| 
* Idle (Offline) 12 Days
* Idle (Online) about 1 Day 
* Browsing 4 Hours
| 
* Idle (Offline) 12 Days 
* Idle (Online) about 1 Day 
* Browsing 4 Hours
| 
* Idle (Offline) over 7 days.
* Idle (Online) about 1 days 
* Browsing about 7 hours via WLAN, less via GPRS (see &lt;ref name=power-consumption&gt; [[N900 Hardware Power Consumption]]&lt;/ref&gt;)
|-
! Weight 
| 230 grams
| 226 grams
| 206 grams
| 181 grams
|-
! Dimensions &lt;ref&gt;Facing screen: width × height × depth.&lt;/ref&gt;
| 141 × 79 × 19 mm
| 128 × 72 × 14 (18 at camera/stylus) mm
| 144 × 75 × 13 mm
| 111 × 60 × 18 (19 at camera) mm
|-
! Additional Radios
| None
| FM Receiver
| GPS
| 
* GPS (with A-GPS)
* FM Receiver
* FM Transmitter 
|-
! Physical Input
| 
* 5-way D-Pad 
* Back/Return
* Menu
* Home
* +/-
* Fullscreen Toggle
* Power
|
* 5-way D-Pad
* Back/Return
* Menu
* Home
* +/- 
* Fullscreen Toggle
* Power
| 
* 5-way D-Pad
* Back/Return
* Menu
* Home
* +/-
* Fullscreen Toggle
* Power
* Full QWERTY &lt;ref name=&quot;keyboard&quot;&gt;Keyboard layout depends on localization.&lt;/ref&gt; Keyboard with Fn
| 

* Volume +/-
* Camera Button
* Power
* Full QWERTY &lt;ref name=&quot;keyboard&quot; /&gt; Keyboard with Arrow Keys &lt;ref name=&quot;keyboard&quot; /&gt;
* Lock Switch
|-
! Operating System
| 
* OS2005
* OS2006
* OS2007HE &lt;ref name=&quot;unofficial&quot;&gt;Not officially supported by Nokia.&lt;/ref&gt;
* OS2008HE &lt;ref name=&quot;unofficial&quot; /&gt;
| 
* OS2007
* [[:Category:OS2008|OS2008]]
* [[Mer]]&lt;ref name=&quot;unofficial&quot; /&gt;&lt;ref name=&quot;mer&quot;&gt;Community-maintained Operating System, no longer in development.&lt;/ref&gt;
* NITDroid &lt;ref name=&quot;android&quot;&gt;Community-maintained Operating System, currently in development.&lt;/ref&gt;
* MeeGo &lt;ref name=&quot;meego&quot; /&gt;
| 
* [[:Category:OS2008|OS2008]]
* [[Mer]]&lt;ref name=&quot;unofficial&quot; /&gt;&lt;ref name=&quot;mer&quot; /&gt;
* NITDroid&lt;ref name=&quot;android&quot; /&gt;
* MeeGo &lt;ref name=&quot;meego&quot; /&gt;
| 
* [[Open development/Maemo roadmap/Fremantle|Maemo 5]]
* [[MeeGo]] &lt;ref name=&quot;meego&quot;&gt;Community-maintained Operating system, currently in very early development. For N900, For N8x0&lt;/ref&gt;
* NITDroid &lt;ref name=&quot;android&quot; /&gt;
|}

&lt;references /&gt;


Information taken from Official Nokia announcements, Nokia and Maemo forums, as well as the corresponding Wikipedia pages.

[[Category:Hardware]]
[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>Compcache</title>
    <id>5184</id>
    <revision>
      <id>48488</id>
      <timestamp>2012-06-16T14:40:20Z</timestamp>
      <contributor>
        <username>raimu</username>
        <id>5328</id>
      </contributor>
      <minor/>
      <comment>Removed a grocerer's apostrophe</comment>
      <text xml:space="preserve">Compcache or Ramzswap, hitherto referred as ramz is a method for taking a chunk of 'normal' RAM and using it as a compressed virtual memory (VM) swap space.  That is, we use RAM as a sort of a virtual, virtual RAM by compressing the contents on the fly and storing it in RAM that's marked up as a swap device. This is in order to squeeze as much space from the limited RAM as possible. A swap device created from compressed RAM is many times faster than a regular swap device using hard drives or traditional flash memory.



=== N8x0 ===
&lt;br&gt;
To be added by a wild N8x0 user...
&lt;br&gt;
Apparently compcache is the single greatest thing to ever happen to the N8x0.
&lt;br&gt;



=== N900 ===

====The problem====
----
Lack of RAM is considered one on the main performance bottlenecks a N900 user has to contend with. In its stock set-up, the N900 is prone to having massive swapping coronary after even short periods of heavy use. This leads to poor performance, diminished user sexual function and in the worst cases, a reboot due to watchdog timers becoming ignored and letting out a panicked bark. This is generally alleviated in one or several of four ways.


==== The solutions====
----
=====Install 'Swappolube'=====


[[Swappolube]] (sic) is a set of VM parameter tweaks initially dreamt up by the user Hawaii. For MOST users, the installation of Swappolube from the repositories and applying the default settings will suffice to alleviate the problem.



=====Swap on micro SD card(uSD)=====


It has been found that an easy way to alleviate eMMC contention is to move the swap space to the uSD card[http://wiki.maemo.org/Swap_on_microSD].



=====Swap de-fragmentation=====


It has been found that as the swap space fills up, the OS is eventually more and more unable to allocate continuous space on the swap device. This leads to poor performance, that can be periodically reset by turning the swapping device off and on again, clearing the slate. The package [[ereswap]] was created to make this easy.



=====Compcache=====


The article's namesake.  The use of compcache has been a contentious issue.  Most users have found it to cause extremely poor system performance. For many users, as soon as the ramz space gets full - which is pretty quick, considering it's only tens of megabytes large - the system grinds to a slow crawl.

Some empirical and anecdotal evidence suggests that the 'extreme' swap-retention settings of swappolube (that most users run) are highly unsuitable ramz.  Swappolube sets the VM to swap as rarely as possible. This does not work for ramz - likely, an opposite approach must be taken: The device must swap a lot. As in this scenario the swapping is optimally mostly done to the RAM swap device, there will be little penalty in speed.


====Using compcache====
----
&lt;br&gt;

'''''Caveats!'''''


*While ramz does work on kernel power version 49 (KP49), it is highly recommended that you use KP50!

*Ramz requires a disksize that is specified in KB in powers of 2.  Acceptable sizes are:
&lt;div class=&quot;center&quot; style=&quot;width:auto; margin-left:auto; margin-right:auto;&quot;&gt;
{| border=&quot;4&quot; cellspacing=&quot;4&quot; cellpadding=&quot;2&quot;
! Ramz size
! English
|-
|2048
|2MB
|-
|4096
|4MB
|-
|8192
|8MB
|-
|16384
|16MB
|-
|32768
|32MB
|-
|65536
|64MB
|-
|98304
|96MB
|-
|131072
|128MB
|-
|}
&lt;/div&gt;

*It is recommended that you do not use more than 64MB for ramz.

*Unless enabled very early in the device boot, you MUST have swap enabled on a physical disk before enabling ramz, or your n900 WILL insta-crash and reboot, potentially corrupting your file system!

*Due to the CPU load slightly increased by the de/compression done by ramz, using ramz likely incurs a slight penalty in battery life.

*''Compcache is still considered experimental! It may not work, asplode your n900 and rip your *@!# clean off.  You have been warned.''


====How to enable compcache====


To enable compcache you must enter these commands as root, the following will create a ramz disk of 64MB:

&lt;source lang=&quot;bash&quot;&gt;
insmod /lib/modules/current/ramzswap.ko disksize_kb=65536
&lt;/source&gt;

It will take a short while for the kernel to catch up with this, so you should pair this with a 'sleep 1' command. Once enabled, you must tell the system to use the ramz disk:

&lt;source lang=&quot;bash&quot;&gt;
swapon /dev/ramzswap0
&lt;/source&gt;

For any of this to be any benefit, the ramz disk needs to have a higher priority than the 'physical' swap space.  Make sure ALL applications are closed and disable then re-enable your physical swap.  On a stock setup (swap on eMMC) you can do this:

&lt;source lang=&quot;bash&quot;&gt;
swapoff /dev/mmcblk0p3 &amp;&amp; sleep 1 &amp;&amp; swapon /dev/mmcblk0p3
&lt;/source&gt;

For other setups, i.e. when you have swap on uSD you must substitute 'mmcblk0p3' with the location of your swap space.  (If your swap partition is the second partition on the uSD then it will be 'mmcblk1p2').

You can now check you have the appropriate partitions with:

&lt;source lang=&quot;bash&quot;&gt;
cat /proc/swaps
Filename				Type		Size	Used	Priority
/dev/mmcblk0p3                          partition	786424	64476	-2
/dev/ramzswap0                          partition	65528	61572	-1
&lt;/source&gt;

You can see ramzswap is 64MB AND with a higher priority than mmcblk0p3.

Now you must change your VM settings to effectively use the new ramz setup.  The following settings have been found to work with 32MB, 64MB and 128MB (beware!) ramz sizes.  They are a work-in-progress and will be updated as they are tuned to the authors' workload (heavy user, treating n900 as a pocket laptop as oppose d to merely a phone).

Paste the below lines into xterm to setup the VM and tune the flash device usage:

&lt;source lang=&quot;bash&quot;&gt;
echo 10 &gt; /proc/sys/vm/dirty_ratio
echo 10 &gt; /proc/sys/vm/dirty_background_ratio
echo 250 &gt; /proc/sys/vm/dirty_writeback_centisecs 
echo 1000 &gt; /proc/sys/vm/dirty_expire_centisecs 
echo 100 &gt; /proc/sys/vm/swappiness 
echo 200 &gt; /proc/sys/vm/vfs_cache_pressure 
echo 0 &gt; /proc/sys/vm/page-cluster
echo 64 &gt; /sys/block/mmcblk0/queue/nr_requests
echo 64 &gt; /sys/block/mmcblk1/queue/nr_requests
echo 0 &gt; /sys/block/mmcblk0/queue/iosched/slice_idle
echo 0 &gt; /sys/block/mmcblk1/queue/iosched/slice_idle
echo 32 &gt; /sys/block/mmcblk0/queue/iosched/quantum
echo 32 &gt; /sys/block/mmcblk1/queue/iosched/quantum
echo 100 &gt; /sys/block/mmcblk0/queue/iosched/fifo_expire_sync
echo 100 &gt; /sys/block/mmcblk1/queue/iosched/fifo_expire_sync
echo 200 &gt; /sys/block/mmcblk0/queue/iosched/fifo_expire_async
echo 200 &gt; /sys/block/mmcblk1/queue/iosched/fifo_expire_async
&lt;/source&gt;

====How to do this all at once====
----
Paste the below code into a root xterm.

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh

#referance: http://www.westnet.com/~gsmith/content/linux-pdflush.htm

#Smart swap on/off
#drivelist=$(sfdisk -lnd /dev/mmcblk1)
if [ &quot;$(cat /proc/swaps | awk '/mmcblk/ {print $1}' | cut -d &quot;k&quot; -f2 | cut -c1)&quot; == &quot;0&quot; ]; then
        echo &quot;swap is on emmc&quot;
        if [ &quot;$(sfdisk -lnd /dev/mmcblk0 | grep Id=82 | awk '/mmcblk0/ {print $1}')&quot; ]; then
        nice -20 swapoff $(sfdisk -lnd /dev/mmcblk0 | grep Id=82 | awk '/mmcblk0/ {print $1}')
        #insert ramzswap module and specify disksize
        insmod /lib/modules/current/ramzswap.ko disksize_kb=65536 &amp;&amp; sleep 1
        nice -20 swapon $(sfdisk -lnd /dev/mmcblk0 | grep Id=82 | awk '/mmcblk0/ {print $1}')
        echo &quot;swap is on swapped on emmc&quot;
        fi
fi

if [ $(cat /proc/swaps | awk '/mmcblk/ {print $1}' | cut -d &quot;k&quot; -f2 | cut -c1) = &quot;1&quot; ]; then
        nice -20 swapoff $(sfdisk -lnd /dev/mmcblk1 | grep Id=82 | awk '/mmcblk1/ {print $1}')
        #insert ramzswap module and specify disksize
        insmod /lib/modules/current/ramzswap.ko disksize_kb=65536 &amp;&amp; sleep 1
        nice -20 swapon $(sfdisk -lnd /dev/mmcblk1 | grep Id=82 | awk '/mmcblk1/ {print $1}')
        echo &quot;swap is on sd&quot;
fi

#vm changes
#/proc/sys/vm/dirty_ratio (default 40)
echo 10 &gt; /proc/sys/vm/dirty_ratio

#dirty_background_ratio
echo 10 &gt; /proc/sys/vm/dirty_background_ratio

#dirty_writeback_centisecs
echo 250 &gt; /proc/sys/vm/dirty_writeback_centisecs

#/proc/sys/vm/dirty_expire_centiseconds (default 3000)
echo 1000 &gt; /proc/sys/vm/dirty_expire_centisecs

#free space saved for large allocations, values below 256 cause insta-crash
#echo 1024 &gt; /proc/sys/vm/min_free_kbytes

#'Normal' VM stuff
echo 100 &gt; /proc/sys/vm/swappiness
echo 200 &gt; /proc/sys/vm/vfs_cache_pressure
echo 0 &gt; /proc/sys/vm/page-cluster

#Flash disc tuning
echo 32 &gt; /sys/block/mmcblk0/queue/nr_requests
echo 32 &gt; /sys/block/mmcblk1/queue/nr_requests
echo 0 &gt; /sys/block/mmcblk0/queue/iosched/slice_idle
echo 0 &gt; /sys/block/mmcblk1/queue/iosched/slice_idle
echo 32 &gt; /sys/block/mmcblk0/queue/iosched/quantum
echo 32 &gt; /sys/block/mmcblk1/queue/iosched/quantum
echo 100 &gt; /sys/block/mmcblk0/queue/iosched/fifo_expire_sync
echo 100 &gt; /sys/block/mmcblk1/queue/iosched/fifo_expire_sync
echo 200 &gt; /sys/block/mmcblk0/queue/iosched/fifo_expire_async
echo 200 &gt; /sys/block/mmcblk1/queue/iosched/fifo_expire_async

#display results
cat /proc/swaps
&lt;/source&gt;

====Automating all of this====
----

There is a package called swapset[http://maemo.org/packages/view/swapset/], which attempts to setup swaps and the ramz module automatically.  The author of this article has not used it, and thus cannot vouch for its effectiveness.  Using swapset AND putting the above settings into swappolube would probably cause all of the above to work automatically. Probably.

&lt;br&gt;
== N9/50 ==

To be added by an ardent masochist.


[[Category:Power users]]
[[Category:Fremantle]]
[[Category:Users]]</text>
    </revision>
  </page>
  <page>
    <title>Compile FreePascal on device</title>
    <id>4642</id>
    <revision>
      <id>43387</id>
      <timestamp>2011-05-06T18:49:21Z</timestamp>
      <contributor>
        <username>norayr</username>
        <id>3591</id>
      </contributor>
      <text xml:space="preserve">[http://freepascal.org FreePascal compiler] is a free compiler for the various Pascal dialects. There is also a project [http://lazarus.freepascal.org Lazarus] which provides a Delphi-like IDE for the FreePascal compiler. This article describes how to compile and install FreePascal compiler right on the device (currently [[Nokia N900|N900]] only, still have troubles to successfully compile it on my [[Nokia N810|N810]]). You may need a lot of space, so it is very useful to [[Ext2 on microSD card|format an external SD card as ext2 or ext3]].

==Bootstrapping==

First we need to get a working copy of fpc for ARM EABI. Currently, it is possible to get only ARB OABI version at the FreePascal web site. (version 2.2.2)

That's why we need to compile an ARM version of the compiler on the GNU/Linux PC first, then transfer it to the Nokia device, and compile the full compiler distribution there.
&lt;ol&gt;
&lt;li&gt;
First you need to have fpc installed on your GNU/Linux box.
&lt;/li&gt;
&lt;li&gt;
Then, download fpc source with svn.
&lt;pre&gt;
svn checkout http://svn.freepascal.org/svn/fpc/trunk fpc
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
You also need cross binutils for ARM. Let's compile it like this:
&lt;pre&gt;
mkdir binutils
cd binutils
BINUTILS=binutils-2.20.1
wget http://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2
tar jxvf $BINUTILS.tar.bz2
cd $BINUTILS
./configure --prefix=/opt/binutils-arm-eabi --target=arm-none-eabi --with-gnu-as
 --with-gnu-ld
make
make install
ln -s /opt/binutils-arm-eabi/bin/arm-none-eabi-as /opt/binutils-arm-eabi/bin/arm
-linux-as
ln -s /opt/binutils-arm-eabi/bin/arm-none-eabi-ld /opt/binutils-arm-eabi/bin/arm
-linux-ld
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Then, export PATH so it will contain your binutils path first
&lt;pre&gt;
export PATH=/opt/binutils-arm-eabi/bin:$PATH
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Now we can compile fpc for ARM EABI. Go to fpc svn directory and run:
&lt;pre&gt;
make all PREFIX=/opt/fpc-arm OS_TARGET=linux CPU_TARGET=arm OPT=&quot;-dFPC_ARMEL&quot;
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
After successful compilation you will get &quot;ppcarm&quot; binary in the &quot;compiler&quot; folder inside fpc source tree.
&lt;pre&gt;
noch@hactar:~/freepascal/svn/fpc/compiler$ file ppcarm
ppcarm: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, stripped
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Now it's time to scp ppcarm to the Nokia Maemo device, and compile with it sources there. From this point we work only on Maemo. I assume that you have &lt;code&gt;openssh-server&lt;/code&gt; installed. You will also need the following packages:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;subversion&lt;/code&gt; - to get fpc source tree&lt;/li&gt;
&lt;li&gt;&lt;code&gt;binutils&lt;/code&gt; - to get GNU assembler and linker&lt;/li&gt;
&lt;li&gt;&lt;code&gt;diffutils-gnu&lt;/code&gt; - fpc needs &quot;diff&quot; to compile itself&lt;/li&gt;
&lt;li&gt;&lt;code&gt;coreutils-gnu&lt;/code&gt; - contains, &quot;install&quot; command, needed to run &quot;make install&quot;&lt;/li&gt;
&lt;/ul&gt;

For Diablo, I found &quot;diffutils&quot; package in the [http://www.gronmayer.com/it/dl.php?id=224 Dayless] repository at the  [http://www.gronmayer.com/it gronmayer] repository list.

&lt;pre&gt;
# dpkg -L diffutils-gnu | grep bin
/usr/bin
/usr/bin/gnu
/usr/bin/gnu/cmp
/usr/bin/gnu/diff
/usr/bin/gnu/diff3
/usr/bin/gnu/sdiff
/usr/bin/gcmp
/usr/bin/gsdiff
/usr/bin/gdiff3
/usr/bin/gdiff
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Because fpc needs &quot;diff&quot; executable, then there's two options. Whether to add &lt;code&gt;/usr/bin/gnu&lt;/code&gt; to the &lt;code&gt;PATH&lt;/code&gt;:
&lt;pre&gt; export PATH=/usr/bin/gnu:$PATH&lt;/pre&gt;
or create a symlink to &lt;code&gt;gdiff&lt;/code&gt; in &lt;code&gt;/usr/bin&lt;/code&gt;
&lt;pre&gt;ln -s /usr/bin/gdiff /usr/bin/diff&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
There is a linker problem like
&lt;pre&gt;
./link.res: file format not recognized; treating as linker script
./link.res:281: syntax error
pp.pas(209,27) Error: Error while linking
pp.pas(209,27) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted 
&lt;/pre&gt;
In order to avoid this, go to &lt;code&gt;compiler/systems&lt;/code&gt; and change &lt;code&gt;t_linux.pas&lt;/code&gt; so that it contain path to the &lt;code&gt;/lib/ld-linux.so.3&lt;/code&gt; instead of &lt;code&gt;/lib/ld-linux.so.2&lt;/code&gt;, because we do not have &lt;code&gt;/lib/ld-linux.so.2&lt;/code&gt; on Maemo 4 and Maemo 5. This is a [[http://free-pascal-general.1045716.n5.nabble.com/FreePascal-on-ARM-Linux-SoftFloat-and-EABI-issues-td2819338.html quote]] from the freepascal mailing list:
&lt;pre&gt;
&gt; also although it creates an EABI 4 executable correctly there is a
&gt; problem with fpc-svn/compiler/systems/t_linux.pas that sticks the wrong
&gt; dynamic linker name in the file. I fixed it with this...
&gt;
&gt;
&gt; {$ifdef arm}
&gt;     {$ifdef FPC_ARMEL}
&gt;          defdynlinker:='/lib/ld-linux.so.3';
&gt;     {$else} 
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
So, change to the fpc source directory and run:
&lt;pre&gt;
make clean all PP=/path/to/newlycopied/ppcarm PREFIX=&quot;/opt/fpc-svn&quot; OPT=&quot;-dFPC_ARMEL -O- -dFPC_ABI_EABI&quot;
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
If you have compilation error like this
&lt;pre&gt;
__missing_command_DATA2INC fpc
&lt;/pre&gt;
it means compiler cannot find &quot;data2inc&quot; file and we need to provide path for that, so the command is
&lt;pre&gt;
make clean all PP=/path/to/newlycopied/ppcarm DATA2INC=&quot;/path/to/fpc_source/utils/data2inc&quot; PREFIX=&quot;/opt/fpc-svn&quot; OPT=&quot;-dFPC_ARMEL -O- -dFPC_ABI_EABI&quot;
&lt;/pre&gt;
Then, make install with the same options
&lt;pre&gt;
make install PP=/path/to/newlycopied/ppcarm PREFIX=&quot;/opt/fpc-svn&quot; OPT=&quot;-dFPC_ARMEL -O- -dFPC_ABI_EABI&quot;
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

==Creating config==

Now, we have a working compiler in &lt;code&gt;/opt/fpc-svn/bin&lt;/code&gt;. But there are no config file, so it won't work.
&lt;ol&gt;
&lt;li&gt;
In order to create a config file, do:
&lt;pre&gt;
/opt/fpc-svn/bin/fpcmkcfg -d basepath=/opt/fpc-svn/lib/fpc/2.5.1/ -o /etc/fpc.cfg
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
It is also necessary to have correct path:
&lt;pre&gt;
export PATH=/opt/fpc-svn/lib/fpc/2.5.1:/opt/fpc-svn/bin:$PATH
&lt;/pre&gt;
Second directory contains ppcarm binary, which is necessary for compilation.
&lt;/li&gt;
&lt;/ol&gt;
This is it, now you have a working FreePascal compiler on Maemo. Next step is to install Lazarus, so you will be able to compile Lazarus created sources right on the device.

==Compile Lazarus==

Get the source:
&lt;pre&gt;
svn co http://svn.freepascal.org/svn/lazarus/trunk lazarus
&lt;/pre&gt;

Lazarus compilation will fail with the binutils of Maemo 5. Thus we need to compile newer binutils and we need gcc for it.

&lt;ol&gt;
&lt;li&gt;
Add SDK repository to the apt config
&lt;pre&gt;vi /etc/apt/sources.list.d/dev.list&lt;/pre&gt;
&lt;pre&gt;deb http://repository.maemo.org fremantle/sdk free non-free&lt;/pre&gt;
DO NOT UPGRADE YOUR SYSTEM WITH THIS CONFIG LINE ENABLED!
&lt;/li&gt;
&lt;li&gt;
&lt;pre&gt;
apt-get update
apt-get install gcc autoconf automake1.9 libtool flex bison gdb automaken libltdl3-dev
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
At this point I also have gettext installed.
&lt;pre&gt;
apt-get install gettext
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Dependencies for lazarus:
&lt;pre&gt;apt-get install libgtk2.0-dev libgpmg1-dev libncurses5-dev&lt;/pre&gt;
It will compile, but won't link without them.
&lt;/li&gt;
&lt;li&gt;
Now install binutils. For that you also need &lt;code&gt;tar-gnu&lt;/code&gt; and &lt;code&gt;bzip2&lt;/code&gt; packages:
&lt;pre&gt;
apt-get install tar-gnu bzip2
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
I use the following script:
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/bash
BINUTILS=binutils-2.20.1
rm -rf $BINUTILS
wget -c http://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2
/usr/bin/gnu/tar -jxvf binutils-2.20.1.tar.bz2  
cd $BINUTILS                                                                    
./configure --prefix=/opt/binutils-arm-eabi --target=arm-none-eabi --with-gnu-as
make        
make install                                                                    
ln -s /opt/binutils-arm-eabi/bin/arm-none-eabi-as /opt/binutils-arm-eabi/bin/arm
ln -s /opt/binutils-arm-eabi/bin/arm-none-eabi-ld /opt/binutils-arm-eabi/bin/arm
&lt;/source&gt;
&lt;/li&gt;
&lt;li&gt;
Update the &lt;code&gt;PATH&lt;/code&gt; environment variable so it contain newly installed binutils at first place:
&lt;pre&gt;
export PATH=/opt/binutils-arm-eabi/bin:$PATH
&lt;/pre&gt;
or if fpc is not currently in the path in this terminal, then
&lt;pre&gt;export PATH=/opt/binutils-arm-eabi/bin:/opt/fpc-svn/lib/fpc/2.5.1:/opt/fpc-svn/bin:$PATH&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
cd into lazarus directory
&lt;pre&gt;
make clean all
&lt;/pre&gt;
if it fails with
&lt;pre&gt;
Need &quot;lazarus_0.9.31.orig.tar.gz&quot; to build for DEBBUILD = &quot;&quot;
&lt;/pre&gt;
then you will be able to compile it with
&lt;pre&gt;
make DEBUSESVN=1 clean all
&lt;/pre&gt;

if it still fails with
&lt;pre&gt;
make -C ide ide
make[1]: Entering directory `/media/mmc1/noch/src/freepascal/lazarus-svn-2011-02-10/ide'
../tools/svn2revisioninc .. revision.inc
make[1]: *** [revisioninc] Segmentation fault
make[1]: Leaving directory `/media/mmc1/noch/src/freepascal/lazarus-svn-2011-02-10/ide'
make: *** [ide] Error 2
&lt;/pre&gt;
then according to [http://bugs.freepascal.org/bug_view_page.php?bug_id=18271 this] link it could be solved by USESVN2REVISIONINC=0
&lt;pre&gt;
make LCL_PLATFORM=gtk USESVN2REVISIONINC=0 DEBUSESVN=1 clean all
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

==Compile on device==

This script will help you to compile your application on device.
&lt;pre&gt;
ARCH=&quot;arm-linux&quot;
LAZARUS=&quot;/media/mmc1/noch/lazarus&quot;
fpc project1.lpr -MObjFPC -Scgi -O1 -gl -WG -vewnhi -l -Fu$LAZARUS/lcl/units/$ARCH/ -Fu$LAZARUS/lcl/units/$ARCH/gtk2/ -Fu$LAZARUS/packager/units/$ARCH/ -Fu. -oproject1 -dLCL -dLCLgtk2
&lt;/pre&gt;

Now it is possible to run it :)

Actually, you may need a longer compile line, to find out that, click on &quot;Show options&quot; button in Project -&gt; Compiler Options, and change the line correspondingly, by replacing ARCH and LAZARUS paths.

[[Category:N8x0]]
[[Category:N900]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Compiling on the N810</title>
    <id>3242</id>
    <revision>
      <id>49043</id>
      <timestamp>2012-08-11T12:27:12Z</timestamp>
      <contributor>
        <ip>193.175.8.58</ip>
      </contributor>
      <comment>corrected dpkg line</comment>
      <text xml:space="preserve">To compile software for the [[Nokia N810|N810]], you can [[:Category:Scratchbox|use scratchbox]], the cross-compile-environment for i386 machines. Or you can compile on the device itself.

# [[install openssh on the N810]]
# Find out what Maemo version you have. Choose Settings -&gt; Control Panel -&gt; About. If you get &quot;Product maemo Linux based OS2008 Version:5.2008.43-7&quot; this means Maemo 4.1, OS2008 and Diablo ([[Codenames|more information on codenames]]).
# download wget from http://repository.maemo.org/pool/maemo4.1.2/free/w/wget/. Copy it to your computer and scp it to your N810.
# get glibc&lt;pre&gt;wget http://repository.maemo.org/pool/maemo4.1.2/free/g/glibc/libc6-dev_2.5.0-1osso10_armel.deb&lt;/pre&gt;
# get linux kernel headers&lt;pre&gt;wget http://repository.maemo.org/pool/maemo4.1.2/free/l/linux-kernel-headers/linux-kernel-headers_2.6.16.osso11-1_armel.deb&lt;/pre&gt;
# get libgcc&lt;pre&gt;wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/libgcc1_3.4.4cs2005q3.2-5.osso8_armel.deb&lt;/pre&gt;
# install everything&lt;pre&gt;dpkg -i libgcc1_3.4.4cs2005q3.2-5.osso8_armel.deb linux-kernel-headers_2.6.16.osso11-1_armel.deb libc6-dev_2.5.0-1osso10_armel.deb&lt;/pre&gt;
# do the usual test:

&lt;source lang=&quot;c&quot;&gt;
/* main.c */
#include &lt;stdio.h&gt;

int main()
{ printf(&quot;hello world&quot;); }
&lt;/source&gt;

 Nokia-N810-43-7:~# gcc-3.4 -o greeter main.c
 Nokia-N810-43-7:~# ./greeter
 hello worldNokia-N810-43-7:~#

== C++ ==

&lt;ol&gt;
&lt;li&gt;Try to compile a C++ program:
&lt;source lang=&quot;cpp&quot;&gt;
// main.cpp
#include &lt;iostream&gt;
int main()
{
  std::cout &lt;&lt; &quot;hello C++&quot; &lt;&lt; std::endl;
}
&lt;/source&gt;
&lt;pre&gt;
Nokia-N810-43-7:/media/mmc1# gcc-3.4 main.cpp
 &lt;unknown&gt; tried to exec cc1plus but failed (No such file or directory)
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;download g++:&lt;pre&gt;wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/g++-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
download lib standard C++:&lt;pre&gt;wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/libstdc++6-dev_3.4.4cs2005q3.2-5.osso8_armel.deb&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
install g++:&lt;pre&gt;dpkg -i libstdc++6-dev_3.4.4cs2005q3.2-5.osso8_armel.deb g++-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
try to compile &lt;code&gt;main.cpp&lt;/code&gt; again:
&lt;pre&gt;
gcc-3.4 main.cpp
/var/tmp/ccQkm9NS.o: In function `std::__verify_grouping...
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
ok, but do it right:
&lt;pre&gt;
gcc-3.4 -lstdc++ main.cpp
./a.out
hello C++
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

[[Category:Development]]
[[Category:HowTo]]
[[Category:Diablo]]</text>
    </revision>
  </page>
  <page>
    <title>Compiling the kernel</title>
    <id>111</id>
    <revision>
      <id>48407</id>
      <timestamp>2012-06-14T05:06:09Z</timestamp>
      <contributor>
        <ip>188.165.15.156</ip>
      </contributor>
      <comment>/* Deploying the Kernel Onto the Device */</comment>
      <text xml:space="preserve">{{Midgard article}}

NOTE : THIS ARTICLE IS ONLY PARTLY UPDATED - DON'T EXPECT IT TO WORK.


This document describes how a 3rd party developer can compile, modify, and deploy the Linux kernel if (s)he really wants to. However, the first thing to consider is whether a custom kernel is really needed. Most additional functionality can be provided with modules dynamically loaded into the original kernel provided by Nokia. Modules may be both easier for you to create and easier for users to install on their devices. It is only if your change conflicts with the original Nokia configuration, or if the new feature cannot be compiled as a module, that a new kernel is needed.

First see: http://maemo.org/maemo_release_documentation/maemo4.1.x/node12.html

If you choose to compile only additional modules, then use the original Nokia configuration as a base and enable new functionality as modules. Make sure you use a compiler compatible with the one used for the original kernel (currently GCC 3.4), otherwise your modules may produce errors when inserted into the kernel. The best method may be to use exactly the same GCC version. See /proc/version on your device for this. Alternatively, use the GCC version suggested in Section 2.

If you choose to make a new kernel, Section 2 describes the compilation procedure, Section 3 the modification procedure, and Section 4 the deployment procedure. The final section of this document lists issues that should be taken into account when working with the kernel and Maemo.

=Modifying Default Kernel Configuration=

In order to modify the default kernel configuration, a few things need to be done. Assuming that the kernel has been built at least once, perform the following procedure to build a modified kernel for Maemo:

'''1.''' Edit ~/maemo-kernel/kernel-source-diablo-2.6.21/debian/rules so that modifications may be done.

Make sure the following two lines are commented out or removed completely: 
* build-stamp section: tar jxf /usr/src/kernel-source-$(SOURCE_VERSION).tar.bz2 
* clean section: rm -rf kernel-source-$(SOURCE_VERSION)

'''2.''' Change file permissions for default config file.

 $ chmod a+w ~/maemo-kernel/kernel-source-diablo-2.6.21/kernel-source/arch/arm/configs/n770_defconfig 

'''3.''' Make your modifications to ~/maemo_kernel/kernel-source-diablo-2.6.21/kernel-source/arch/arm/configs/n770_defconfig

'''4.''' Recompile the kernel image:

 $ cd 
 $ dpkg-buildpackage -rfakeroot -uc -us -sa -d 

'''5.''' Install the kernel image in Scratchbox target

 $ fakeroot dpkg -i ../su-18-kernel_*.deb

==Menuconfig==
to
 make menuconfig
you need to edit kernel-source/scripts/kconfig/lxdialog/check-lxdialog.sh
and in the ldflags() function add these lines:

 ldflags()
 {
 +	echo '-lncurses'
 +	exit
 	$cc -print-file-name=libncursesw.so | grep -q /
 	if [ $? -eq 0 ]; then

Ken and Jen Perkes - What a great idea, Luisa:  THE GRATEFUL COUNTDOWN!!!  That is one of your many divine aueribttts your gratitude . . . and love!  Let me just add that I am surely grateful to have such a wonderful daughter! DadP.S.  Do we have any photos of Nate WITHOUT a camera in his hand?  :   )

=Things to Remember When Working with Linux Kernel and Maemo=

Below is a list of things that should be taken into consideration when working with the Linux kernel and Maemo.

=Modules and Initfs=
Your kernel image must be compatible with the modules in the initfs image on the device. If you flash a custom kernel image that is incompatible with the modules in initfs, you may see constants reboots. This can be fixed either by making the kernel compatible (use same or very similar gcc compiler and kernel configuration) or by rebuilding the initfs image with your version of modules. For a list of essential modules see: '''/lib/modules/current''' in the initfs image or '''/mnt/initfs/lib/modules/current''' directly on the device. Also, if you enabled some additional functionality as modules, you may need to copy them manually to the initfs on the device (if there is free space) or put them somewhere in the root filesystem of the device.

=Kernel Partition Size=

The size of the kernel partition on the device is limited. When enabling additional features to be compiled directly into kernel the image may quite easily exceed the size of the partition and thus flashing an oversized image to the kernel partition may render the device useless. It is advised to use modules as much as possible to keep kernel size down and prevent this from happening. If this happens, see next item.

=What To Do When Flashing Breaks the Device=
For example, flashing an oversized kernel image renders the device useless. In order to get the device working again, select one of the following two options.

==Flash Kernel Image from maemo.org==
You can install a fully working kernel image by installing the su-18-kernel image available on maemo.org. Issue the following command in Scratchbox:

 $ apt-get install su-18-kernel

After this, flash the kernel image as instructed in Section 4.

----

----

==Flash from Fiasco Image==
The other way around the problem is to install the latest Fiasco image available from Nokia Support or maemo.org downloads. Please see this How To Flash from Linux How To for more information how to do this. You can use flasher to unpack firmware *.bin image and flash only kernel or initfs or both.

=Serial Console=

When hacking the kernel, you may need the serial console. You may have noticed an 11 pins conector (pad) in the battery compartment of the device:

 1-2-3-4-5-6
 -7-8-9-A-B- 

Pin 9 is RxD (Nokia receive input) and pin A is TxD (Nokia transmit output). Pin 8 and 3 are the ground. The outputs are evidently 3.3v - Some used a USB-mobile phone cable as described in and to connect to the device.

On the N800 this connector contains only 7 pins and it located near the battery. Pin 7 is RxD (Nokia receive input) and pin 6 is TxD (Nokia transmit output). Pin 3 and 4 are the ground. It looks like pin 5 is connected to the battery over current indicator.

 1
   5
 2
   6
 3
   7
 4

There is an other 4 Pin connector near on booth th n800 and n810. those are related to usb.(we did get some bus reset signals when playing with them)

   1
   2
 3-4

Once your done with your cable, enable the R&amp;D mode and set the serial console flag and connect via 8N1,115200.
&lt;pre&gt;
$sudo ./flasher --enable-rd-mode --set-rd-flags=serial-console
Password:
Suitable USB device not found, waiting
USB device found found at bus 002, device address 011
Found board Nokia 770 (F5)
NOLO version 0.9.0
The device is now in R&amp;D mode
Set R&amp;D flags: 0010
&lt;/pre&gt;


[[Category:HowTo]]
[[Category:Midgard wiki]]</text>
    </revision>
  </page>
  <page>
    <title>Conboy</title>
    <id>4073</id>
    <revision>
      <id>34029</id>
      <timestamp>2010-05-08T13:00:10Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <comment>Redirecting to [[Fremantle Stars/Conboy]]</comment>
      <text xml:space="preserve">#REDIRECT [[Fremantle Stars/Conboy]]</text>
    </revision>
  </page>
  <page>
    <title>Contributing to the wiki</title>
    <id>3143</id>
    <revision>
      <id>45083</id>
      <timestamp>2011-08-29T00:29:40Z</timestamp>
      <contributor>
        <username>nin101</username>
        <id>4525</id>
      </contributor>
      <comment>Undo revision 44300 by [[Special:Contributions/Miracle23|Miracle23]] ([[User talk:Miracle23|Talk]])</comment>
      <text xml:space="preserve">Creating articles in the wiki is a collaborative process. After you have written your piece others may:

* Edit
* Alter
* Adapt
* Add

So don't worry about making your article perfect the first time through, don't hesitate to add content you think is useful and don't hesitate to make edits where you think you can help. There's always somebody to fix anything that breaks.

In general in [[Main Page|wiki.maemo.org]] we follow the conventions and formatting of [http:///www.wikipedia.org/ Wikipedia].

== Where to start ==

Before creating a new page, you should first make sure that a page on your topic does not already exist:

# In the search box in the upper right corner, enter your topic.
# If the exact topic exists, the page will open.
# If there are related pages, you will get a search results page. Check if your topic is in the results.
# if your topic does not exist, choose '''create this page'''.

== How to edit a page ==

If you'd like to change a page.

# Click the '''Edit''' link in the right column.
# Enter your changes in the box.
# In the '''Summary''' box, enter a short explanation of what you did.
# Click '''Show preview''' if you want to check your changes.
# Click '''Save page'''.

== Style ==

* Keep your writing informative and not too casual.
* Avoid using technical language where appropriate.
* If you need to use acronyms, explain them with the first use.
* Page names should be short and to the point.
** The page name is a label, not a sentence.
** Use spaces. NoCamelCase (i.e., use &quot;Root access&quot; instead of &quot;RootAccess&quot;).
** Use sentence capitalization for page titles.

For more information, see the [[:wikipedia:Wikipedia:Manual_of_Style|Wikipedia Manual of Style]].

== Formatting ==

wiki.maemo.org uses Wikipedia formatting. For simple formatting, use the buttons above the edit box. For more information see:

* [http://en.wikipedia.org/wiki/Wikipedia:Cheatsheet Cheatsheet]
* [http://www.mediawiki.org/wiki/Manual:Contents Mediawiki manual]

''[[maemo.org wiki:About | Find out more about the Maemo wiki]]''

[[Category:Wiki]]
[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Conversation Mods</title>
    <id>4756</id>
    <revision>
      <id>44368</id>
      <timestamp>2011-07-05T19:55:31Z</timestamp>
      <contributor>
        <username>godofwar424</username>
        <id>4012</id>
      </contributor>
      <comment>/* Restoring Your Backup */</comment>
      <text xml:space="preserve">The idea of modifying the way the Conversations App displays our SMS/IM conversations was initially brought up here in [http://talk.maemo.org/showthread.php?t=36618| this thread].


Below is a comparison of the default theme and a custom theme.

[[Image:Nokia-n900-1.jpg|frame|left|Default Nokia Theme]][[Image:LandscapeModeTest.png|frame|right|Custom Theme]]


==How To Mod The Conversations Theme==

Ejasmudar has created a tool to automate some of the following processes, it is still early in development and is mainly aimed to help people who aren't comforted typing in multiple lines of code into the terminal. The app can be found  [http://talk.maemo.org/showthread.php?p=959885#post959885 here]. For those of you who love fiddling around with your beloved N900 via X-Terminal, read on.

The location of the files that need to be modified in order to change the way our conversations look are located here &lt;code&gt;/usr/share/rtcom-messaging-ui/html/&lt;/code&gt;. 

[http://talk.maemo.org/showpost.php?p=955831&amp;postcount=808 This script] has been created in order to make it easier for people to apply the theme they have picked.

The &lt;code&gt;html&lt;/code&gt; folder contains 10 files:

*3 files for the SMS theme
::&lt;code&gt;MessagingWidgetsSMSConversations.css&lt;/code&gt;
::&lt;code&gt;MessagingWidgetsSMSConversations.js&lt;/code&gt;
::&lt;code&gt;MessagingWidgetsSMSConversations.html&lt;/code&gt;

* 3 files for the IM theme
::&lt;code&gt;MessagingWidgetsChatConversations.css&lt;/code&gt;
::&lt;code&gt;MessagingWidgetsChatConversations.js&lt;/code&gt;
::&lt;code&gt;MessagingWidgetsChatConversations.html&lt;/code&gt;

* 3 files for the Single Message Theme
::&lt;code&gt;MessagingWidgetsSingleSMS.css&lt;/code&gt;
::&lt;code&gt;MessagingWidgetsSingleSMS.js&lt;/code&gt;
::&lt;code&gt;MessagingWidgetsSingleSMS.html&lt;/code&gt;

* 1 file which contains the image for the user's avatar
::&lt;code&gt;avatar.png&lt;/code&gt;

Here is a video tutorial with slightly modified steps as with above. Instead of using X Terminal, FileBox was used to copy/replace the files with modified themes: http://www.youtube.com/watch?v=PU8jiAG4H70

----

=== Backing up &amp; Restore Themes ===

Just in case you do not want to backup the default theme. 

The files for the default theme can be found [http://talk.maemo.org/showpost.php?p=955520&amp;postcount=803 here]

If you have a custom theme that you would like to save then here are some instructions for you.



==== Backing Up ====

:Open X-Terminal and type in the following to backup your current theme
 
&lt;code&gt;
 root
 cd /usr/share/rtcom-messaging-ui/html
 mv MessagingWidgetsSMSConversation.css MessagingWidgetsSMSConversation.css.bak
 mv MessagingWidgetsSMSConversation.js MessagingWidgetsSMSConversation.js.bak
 mv MessagingWidgetsSMSConversation.html MessagingWidgetsSMSConversation.html.bak
 mv MessagingWidgetsChatConversation.css MessagingWidgetsChatConversation.css.bak
 mv MessagingWidgetsChatConversation.js MessagingWidgetsChatConversation.js.bak
 mv MessagingWidgetsChatConversation.html MessagingWidgetsChatConversation.html.bak
&lt;/code&gt;

==== Restoring Your Backup ====

:Open X-Terminal and type in the following to restore your backup

&lt;code&gt;
 root
 cd /usr/share/rtcom-messaging-ui/html
 mv MessagingWidgetsSMSConversation.css.bak MessagingWidgetsSMSConversation.css
 mv MessagingWidgetsSMSConversation.js.bak MessagingWidgetsSMSConversation.js
 mv MessagingWidgetsSMSConversation.html.bak MessagingWidgetsSMSConversation.html
 mv MessagingWidgetsChatConversation.css.bak MessagingWidgetsChatConversation.css
 mv MessagingWidgetsChatConversation.js.bak MessagingWidgetsChatConversation.js
 mv MessagingWidgetsChatConversation.html.bak MessagingWidgetsChatConversation.html
&lt;/code&gt;

----

=== Changing Your Own Avatar ===

You have probably noticed that if you change the avatar for someone in your Contacts, their avatar also changes when they SMS or IM you.

This is great, but Nokia seemed to leave our own avatar non customisable..

'''NOTE: Only certain themes will show your avatar. Please check the screenshots below. If an avatar on 'your' side of the conversation isn't shown, then it is very likely the theme does not allow you to see your own avatar'''

:'''For those of you who love fiddling around with your beloved N900 via X-Terminal, here are some instructions on how to install a custom avatar:'''

# Find a picture that you want to use as your avatar and make sure its a &lt;code&gt;.png&lt;/code&gt; file
# Resize that picture (using your favourite Photo Editing Tool) to 64 x 64 pixels
# Copy the resized picture onto the root directory of your N900 and rename it to &lt;code&gt;avatar.png&lt;/code&gt;
# Now open X-Terminal and type the code shown below

 &lt;code&gt;root
 cp -f /home/user/MyDocs/avatar.png /usr/share/rtcom-messaging-ui/html/
 &lt;/CODE&gt;
Voila! 

'''NOTE: Every change you make to the files within the &lt;CODE&gt;html&lt;/CODE&gt; folder, to get the changes to show up, you have to either reboot, or type this into X-Terminal:'''

 &lt;code&gt;
 root
 killall rtcom-messaging-ui
 &lt;/code&gt;


----

=== Installing A Custom Theme ===

Ejasmudar has created a tool to automate this process, it is still early in development and is mainly aimed to help people who aren't comforted typing in multiple lines of code into the terminal. The app can be found  [http://talk.maemo.org/showthread.php?p=959885#post959885 here]

'''For those of you who love fiddling around with your beloved N900 via X-Terminal, here are some instructions on how to install custom themes:'''

Firstly, create a folder in the root directory of your N900 called &quot;html&quot;
 &lt;code&gt;root
 mkdir /home/user/MyDocs/html
 &lt;/code&gt;

Now follow the steps below to install a theme

# Select a theme that you want to use from the x section at the bottom of this wiki
# Download the zip/rar archive and unzip the contents to the &lt;code&gt;html&lt;/code&gt; folder that you recently created
# Now open X-Terminal and type the following
 &lt;code&gt;root
 cp -f /home/user/MyDocs/html/* /usr/share/rtcom-messaging-ui/html/
 &lt;/code&gt;
&lt;nowiki&gt;

&lt;/nowiki&gt;
This will copy all the files across and into the correct directory. 

&lt;nowiki&gt;

&lt;/nowiki&gt;


----

=== Creating IM Files ===

&lt;nowiki&gt;

&lt;/nowiki&gt;



Most themes only contain the files for SMS and do not have the required files for IM.

Here is how to solve that problem. Seeing as the contents of both SMS and IM files are the same, you can simply created duplicates and rename them. 

Here is a simple method to do this, just type the following into X-Terminal

 &lt;code&gt;root
 cd /usr/share/rtcom-messaging-ui/html/
 cp -f MessagingWidgetsSMSConversation.css MessagingWidgetsChatConversation.css
 cp -f MessagingWidgetsSMSConversation.js MessagingWidgetsChatConversation.js
 cp -f MessagingWidgetsSMSConversation.html MessagingWidgetsChatConversation.html&lt;/code&gt;


&lt;nowiki&gt;

&lt;/nowiki&gt;


'''NOTE: Every change you make to the files within the &lt;CODE&gt;html&lt;/CODE&gt; folder, you have to type this into X-Terminal:'''

 &lt;code&gt;
 root
 killall rtcom-messaging-ui
 &lt;/code&gt;

==Themes==

Some of the themes below will support portrait mode correctly, whereas others will still have a horizontal scrollbar.

[http://talk.maemo.org/showpost.php?p=955933&amp;postcount=1364 This] script will edit the themes below to allow them to better support portrait viewing. 

'''Note: The themes have been repacked to make it easy to install via Conversation Modder.''' In case original theme file is required, please use the link in the first column.

{| class=&quot;wikitable sortable&quot;
! width=&quot;150&quot; | Name
! width=&quot;100&quot; | Created By
! width=&quot;80&quot; | Portrait Support
! width=&quot;400&quot; | Screenshot
! width=&quot;100&quot; | Download
|-
| [http://talk.maemo.org/showpost.php?p=488625&amp;postcount=33 Own Avatar] || b666m || No || [[Image:Own_Avatar.jpg]] || [http://www.sendspace.com/file/ztcahp Own_Avatar]
|-
| [http://talk.maemo.org/showpost.php?p=488677&amp;postcount=35 Both Avatars On The Left] || b666m || No || '''N/A''' || [http://www.sendspace.com/file/8dolhi Download]
|-
| [http://talk.maemo.org/showpost.php?p=488898&amp;postcount=39 Alternative Layout]  || b666m || No || [[Image:Alternative_Layout.jpg]] || [http://www.sendspace.com/file/e7j4te Download]
|-
| [http://talk.maemo.org/showpost.php?p=490675&amp;postcount=54 IM Mod] || b666m || No || '''N/A''' || [http://www.sendspace.com/file/fa3t9u Download]
|-
| [http://talk.maemo.org/showpost.php?p=491919&amp;postcount=62 Different Colours] || b666m || No || [[Image:Different_Colours.jpg]] || None
|-
| [http://talk.maemo.org/showpost.php?p=500704&amp;postcount=89 Group By Sender] || termi_uc || No || [[Image:Group_By_Sender.jpg]] || [http://www.sendspace.com/file/d75l9x Download]
|-
| [http://talk.maemo.org/showpost.php?p=502287&amp;postcount=108 Bubble Conversation] || Reflektorfalke || No || [[Image:Bubble_Conversation.jpg]] ||[http://www.sendspace.com/file/snihre Download]
|-
| Increased Text Size [http://talk.maemo.org/showpost.php?p=513658&amp;postcount=159 Link 1] &amp; [http://talk.maemo.org/showpost.php?p=513757&amp;postcount=170 Link 2] || b666m || No || '''N/A'''||[http://www.sendspace.com/file/nsa0ja Download]
|-
| [http://talk.maemo.org/showpost.php?p=549706&amp;postcount=337 Text &amp; Avatar Bubbles] || b666m || No || [[Image:Text_&amp;_Avatar_Bubble.png]]||[http://www.sendspace.com/file/dle56p Download]
|-
| [http://talk.maemo.org/showpost.php?p=560184&amp;postcount=368 Simple &amp; Lightweight] || Grant || No || [[Image:Simple_&amp;_Lightweight.jpg]]||[http://www.sendspace.com/file/3g8728 Download]
|-
| [http://talk.maemo.org/showpost.php?p=571297&amp;postcount=406 Simple] || m165 || No || [[Image:Simple.jpg]]||[http://www.sendspace.com/file/9e7ywa Download]
|-
| [http://talk.maemo.org/showpost.php?p=584573&amp;postcount=422 Niqbal's Theme 1] || niqbal || No || [[Image:Niqbal's_Theme_1.jpg]]||[http://www.sendspace.com/file/lfpkdx Download]
|-
| [http://talk.maemo.org/showpost.php?p=586342&amp;postcount=433 Niqbal's Theme 2] || niqbal || No || [[Image:Niqbal's_Theme_2.jpg]]||[http://www.sendspace.com/file/eftmwf Download]
|-
| [http://talk.maemo.org/showpost.php?p=594725&amp;postcount=498 Niqbal's Theme 3] || niqbal || No || [[Image:Niqbal's_Theme_3.jpg]]||[http://www.sendspace.com/file/b4u8ia Download]
|-
| [http://talk.maemo.org/showpost.php?p=595887&amp;postcount=505 Niqbal's Theme 4] || niqbal || No || [[Image:Niqbal's_Theme_4.jpg]]||[http://www.sendspace.com/file/k9mdo8 Download]
|-
| [http://talk.maemo.org/showpost.php?p=716643&amp;postcount=623 Niqbal's Theme 5] || niqbal || No || [[Image:Niqbal's_Theme_5.jpg]] ||[http://www.sendspace.com/file/ig4y0d Download]
|-
| [http://talk.maemo.org/showpost.php?p=619349&amp;postcount=550 Niqbal's Theme 6]|| niqbal || No || [[Image:Niqbal's_Theme_6.jpg]]|| [http://www.sendspace.com/file/qwi6i7 IM]
[http://www.sendspace.com/file/1knpi3 SMS]
|-
| [http://talk.maemo.org/showpost.php?p=587145&amp;postcount=438 Spacing Mod] || byte_76 || No || '''N/A'''|| [http://www.sendspace.com/file/m6wdfy Download]
|-
| [http://talk.maemo.org/showpost.php?p=590272&amp;postcount=460 Spacing Mod 2] || Kurele || No || [[Image:Spacing_Mod_2.png]]||
|-
| [http://talk.maemo.org/showpost.php?p=590272&amp;postcount=460 Minimal] || Grant || No || [[Image:Minimal.jpg]]|| [http://www.sendspace.com/file/1motp3 Download]
|-
| [http://talk.maemo.org/showpost.php?p=601173&amp;postcount=524 Xgrind] || xgrind || No || [[Image:Xgrind.jpg]]|| [http://www.sendspace.com/file/iqpg46 Download]
|-
| [http://talk.maemo.org/showpost.php?p=671953&amp;postcount=594 Eitama Minimal] || eitama || No || [[Image:Eitama_Minimal.png]]|| [http://www.sendspace.com/file/br3ceq Download]
|-
| [http://talk.maemo.org/showpost.php?p=693861&amp;postcount=601 Compact] || edanaher || No || '''N/A'''|| [http://www.sendspace.com/file/ph2afs Download]
|-
| [http://talk.maemo.org/showpost.php?p=731438&amp;postcount=682 SR90's Themes] || SR90 || No || '''Multiple Themes In One. Check Thread For Screenshots!'''|| [http://www.sendspace.com/file/migqxl Original]
[http://www.sendspace.com/file/1l69fy 7610 Original]
[http://www.sendspace.com/file/2761h0 Blue]
[http://www.sendspace.com/file/dw4x7z Orange]
|-
| [http://talk.maemo.org/showpost.php?p=747400&amp;postcount=729 N900 Compact] || TMarki || No || [[Image:N900_Compact.jpg]]||[http://www.sendspace.com/file/pful7r Download]
|-
| [http://talk.maemo.org/showpost.php?p=805399&amp;postcount=751 Gsever's Theme] || gsever || No || [[Image:Gsever's_Theme.jpg]]||[http://www.sendspace.com/file/7w6qqh Download]
|-
| [http://talk.maemo.org/showpost.php?p=955088&amp;postcount=791 Blue and Green Bubbles With Multiple Alignments] || godofwar424 || Yes || '''Multiple Themes In One. Check Thread For Screenshots!'''||[http://www.sendspace.com/file/hws2yl Right Alignment]
[http://www.sendspace.com/file/xlkqls Left Alignment]
[http://www.sendspace.com/file/x4mqkg Bubble Standard]
|-
| [http://talk.maemo.org/showpost.php?p=959335&amp;postcount=849 MoonLight Style] || maxximuscool || Yes || [[Image:MoonLight_Style.png]]||[http://www.sendspace.com/file/7zu035 Download]
|-
| [http://talk.maemo.org/showpost.php?p=961411&amp;postcount=899 Customisable Bubble Themes] || Harick  || Yes ||  '''Multiple Themes In One. Check Thread For Screenshots!''' ||Too many to repack as individual themes
|-
| [http://talk.maemo.org/showpost.php?p=962552&amp;postcount=919 Apple Black &amp; Avatar] || Harick  || Yes || ||[http://www.sendspace.com/file/lv8434 Download]
|-
| [http://talk.maemo.org/showpost.php?p=961304&amp;postcount=889 Apple Green] || Harick  || Yes || ||[http://www.sendspace.com/file/67pf58 Apple Green]
[http://www.sendspace.com/file/g40xpe Apple Green Avatar]
[http://www.sendspace.com/file/mk70fy b66m portrait]
|-
| [http://talk.maemo.org/showpost.php?p=960637&amp;postcount=866 Theme with Portrait Support] || Excesv|| Yes|| ||[http://www.sendspace.com/file/9tydvf Download]
|-
| [http://talk.maemo.org/showpost.php?p=959936&amp;postcount=859 iphone UI] || Niqbal|| || ||[http://www.sendspace.com/file/jxztmn Download]
|
|-
| [http://talk.maemo.org/showpost.php?p=995119 Default theme with portrait IM and SMS] || Knarf|| Yes || '''Check Thread For Screenshots!''' ||[http://www.sendspace.com/file/v33kik Modded] [http://www.sendspace.com/file/h5dh5r Original look]
|-
| [http://talk.maemo.org/showpost.php?p=1012377&amp;postcount=1024 F2thaK's Themes] || F2thaK || Yup || Multiple themes, see thread for pics ||&lt;&lt; See thread to Download
|}

==Credits==

*andrewfblack
*b666m
*Reflektorfalke
*termi_uc
*qole
*Grant
*m165
*niqbal
*byte_76
*Kurele
*Xgrind
*eitama
*edanaher
*SR90
*TMarki
*gsever
*godofwar424
*Harick
*ejasmudar
*Knarf
*F2thaK

[[Category:Community]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Cordia</title>
    <id>4891</id>
    <revision>
      <id>45576</id>
      <timestamp>2011-10-17T10:27:56Z</timestamp>
      <contributor>
        <username>sd69</username>
        <id>677</id>
      </contributor>
      <text xml:space="preserve">Cordia is an open, community-led, project to bring Maemo's UI (Hildon Desktop and related components) to the Linux-based distributions other than Maemo.

== Mission Statement ==

Our mission is to provide a usable and touch-friendly user interface for tablet devices and phones based on the proven Hildon UI.  Our target audience is the people who prefer the Maemo UI, and wish to have a better user experience than other current UXes provide. We wish to achieve our goal by the following:

* As necessary, work with GTK+ developers and push required changes upstream
* Merge unofficial Hildon Desktop fixes and improvements scattered around the Maemo community and elsewhere
* Move from GNOME-VFS to GIO
* Allow seamless Qt applications and widgets integration
    
or, to put it another way:

* As much of the Maemo UI as we can get outside of Maemo.

== Installation ==

A script to facilitate installation instructions can be found here:

http://talk.maemo.org/showpost.php?p=1044283&amp;postcount=301

== Communication ==

Discuss at #cordia on FreeNode IRC (irc.freenode.net).

If you wish to contribute to the project, read our mission statement above and see our roadmap (http://codex.xiaoka.com/wiki/cordia:roadmap) for the things we need to get done.

We have a mailing list. To subscribe, send an e-mail to the cordia-dev+subscribe@lists.xiaoka.com address.

== Mer ==

Cordia has been re-based from MeeGo to [Mer]http://www.merproject.org

The first Mer-based alpha release of
Cordia for x86 is available at http://cordiahd.org/download/HD/ 
This is a bootable ISO. Just burn it on CD or put it on the pen-drive and
boot it. It gives you options to run LiveCD system, or install to HDD.

[[Category:Cordia]]</text>
    </revision>
  </page>
  <page>
    <title>Creating a large partition and booting off it</title>
    <id>4013</id>
    <revision>
      <id>35056</id>
      <timestamp>2010-05-28T13:34:54Z</timestamp>
      <contributor>
        <username>marcvs</username>
        <id>2632</id>
      </contributor>
      <text xml:space="preserve">{{danger}}

I found it is possible to add a partition to the internal flash card.

== WARNING: Using this recipe you can lose MyDocs.  == \
However, the most recent user reported happily not to loose it.
Make a backup of MyDocs!

= Creation of the new partition =
 umount /home/user/MyDocs

/home cannot be umounted, unfortunately. But this didn't do any harm to /home

Use parted to shrink the MyDocs partition (on my [[Nokia N900|N900]] it was the 1st one)
 parted 
   (parted) print
   (parted) resize XXXXXX 25GB
Replace XXXXXX with the value given by parted print

reboot

Use fdisk to add the 4th partition right after the 1st one

reboot

 Enjoy the new partition.
 The result might look similar to this one
 Disk /dev/mmcblk0: 32.0 GB, 32015122432 bytes
 4 heads, 16 sectors/track, 977024 cylinders
 Units = cylinders of 64 * 512 = 32768 bytes
 Disk identifier: 0x000c260e
 
        Device Boot      Start         End      Blocks   Id  System
 /dev/mmcblk0p1               1      762940    24414072    c  W95 F AT32 (LBA)
 /dev/mmcblk0p2          884866      950401     2097152   83  Linux 
 /dev/mmcblk0p3          950402      974977      786432   82  Linux swap /  Solaris
 /dev/mmcblk0p4          762941      884865     3901600   83  Linux

== Using the new partition == 
Using bootmenu.sh you can in fact boot from that partition. 
(I got bootmenu.sh via svn from https://garage.maemo.org/plugins/scmsvn/viewcvs.php?view=rev&amp;root=bootmenu&amp;revision=53 using trunk/install_bootmenu) 

Copy the stuff of your root dist to the new one
 rsync -rlutopgxv / &lt;mountpoint of new partition&gt;

Copy the device tree (Sure this is too much, but not copying it will not work)
 cp -af /dev/* &lt;mountpoint&gt;/dev

On the new partition, edit the file etc/event.d/rcS-late. Right after
rm -f $fstab_tmp insert the following lines, which you may want to adapt to your needs:
    cat &lt;&lt; EOF &gt; $fstab
 # marcus-generated 20:11
 #rootfs / rootfs defaults,errors=remount-ro,noatime 0 0
 /dev/mmcblk0p4 / ext3 rw,defaults,errors=remount-ro,noatime 0 0
 /dev/mmcblk0p1 /home/user/MyDocs vfat  noauto,nodev,noexec,nosuid,noatime,nodiratime,utf8,uid=29999,shortname=mixed,dm ask=000,fmask=0133,rodir 0 0
 /dev/mmcblk0p2 /home ext3 rw,noatime,errors=continue,commit=1,data=writeback 0 0
 /dev/mmcblk0p3 none swap sw 0 0
 EOF


Using bootmenu.sh and this entry in /etc/bootmenu.d I can now boot into my new 3.7GB root drive
 ITEM_NAME=&quot;Internal part 4&quot;
 ITEM_ID=&quot;mmc4&quot;
 ITEM_DEVICE=&quot;mmcblk0p4&quot;
 ITEM_MODULES=&quot;mbcache jbd ext2&quot;
 ITEM_FSTYPE=&quot;ext2&quot;
 ITEM_FSOPTIONS=&quot;noatime&quot;
 ITEM_LINUXRC=&quot;&quot;
 ITEM_FBMODE=&quot;&quot;

== Result ==
 [root@phon:~/bootmenu]$ df -h
 Filesystem            Size  Used Avail Use% Mounted on
 rootfs                3,7G  524M  3,0G  15% /
 ubi0:rootfs           228M  192M   33M  86% /mnt/initfs
 /dev/mmcblk0p4        3,7G  524M  3,0G  15% /
 tmpfs                 1,0M   60K  964K   6% /tmp
 tmpfs                 256K   84K  172K  33% /var/run
 none                   10M   76K   10M   1% /dev
 tmpfs                  64M  4,0K   64M   1% /dev/shm
 /dev/mmcblk0p2        2,0G  129M  1,8G   7% /home
 /dev/mmcblk0p1         24G  7,9G   16G  34% /home/user/MyDocs

[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Creating media</title>
    <id>3110</id>
    <revision>
      <id>34349</id>
      <timestamp>2010-05-14T08:53:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>link to [[video encoding]]</comment>
      <text xml:space="preserve">This is a portal page, listing all of the pages which describe how to create, edit or distribute multimedia with an N900 and Maemo.

* [[Podcasts]]
* [[Video camera]]
* Taking photos
* Sharing media online (for developers, see [[Documentation/Maemo 5 Developer Guide/Using Data Sharing | using Data Sharing]])
* [[Streaming video from built-in webcam]]
* [[Video encoding|Encoding video]] specifically for the device
* Drawing

A concepting session for a [[video editor]] was held during the [[Maemo-Barcelona Long Weekend  | Maemo Barcelona Weekend]], and the notes are now available.

[[Category:Users]]
[[Category:Media]]</text>
    </revision>
  </page>
  <page>
    <title>Cssu</title>
    <id>4744</id>
    <revision>
      <id>41930</id>
      <timestamp>2011-02-22T09:44:33Z</timestamp>
      <contributor>
        <username>mece</username>
        <id>1328</id>
      </contributor>
      <comment>Redirecting to [[Community SSU]]</comment>
      <text xml:space="preserve">#REDIRECT [[Community_SSU]]</text>
    </revision>
  </page>
  <page>
    <title>Customising Qt look and feel and Python in 30 Mins</title>
    <id>3585</id>
    <revision>
      <id>37222</id>
      <timestamp>2010-07-22T23:02:12Z</timestamp>
      <contributor>
        <username>jedd</username>
        <id>3155</id>
      </contributor>
      <minor/>
      <comment>/* Compile and Run the UI */ typoe - remove misplaced 'q' from pyrcc4 parameters</comment>
      <text xml:space="preserve">This is a simple tutorial to show how to use Python and Qt Designer to create your own look and feel for your applications using custom images, the Qt Resource system and Cascading Style Sheets (CSS).

We are going to show you how you can create a look similar to the [[http://qt.gitorious.org/qt-labs/mobile-demos Qt Mobile Demos]]

[[Image:qtmobile-calc.jpg]]

But our version will be landscape

[[Image:ncalc.jpg]]

Qt has the concept of Qt Resources, images and files that you want to be deployed with your application. It incorporates them into a special binary resource file that the application can refer to at run time, so they wont get lost as part of your application distribution, but can also be changed very easily. These images are referred to in your application using standard CSS syntax which can be edited graphically within Qt Designer.

==Assumptions==

This tutorial assumes that you have a working [[Category:Python|Python]], PyQt and Qt Designer environment up and working. If you have not then do this first tutorial 

[http://talk.maemo.org/showthread.php?t=43663 Qt Designer/Python for Windows XP in 30 Mins]

==Setup==

# Download the mobile tarball demos from [[http://qt.gitorious.org/qt-labs/mobile-demos/trees/master Here]]. Windows users get zipped version [[http://www.megaupload.com/?d=M1G26TC7 here]]
# Create a folder in you home directory called '''customui'''
# Extract the tarball and then copy the folder from qt-labs-mobile-demos/mybudget/images/calculator into your home directory and call this folder '''images'''.
# Now Open Qt-Designer and create a Mainwindow object.
# Next we are going to create a Qt Resource file from the images that we just downloaded so that we can use them in our UI. Click on the pencil on the Resource Browser.


[[Image:Qt-ResourceManager.png]]

Now Create a new resource file called customui.rc, add a blank prefix and then add all the images from our image directory using the add files icon. Save this.

[[image: Qt-Edit-Resources.png]]

You should now see all your images in the resource browser. Note that some images will appear blank as they are white foreground and you will need to mouse over them in the reosurce Browser to see them.

Thats it our images are now ready to b incorporated into our application.

==Create the UI==

Having created an initial main Window Object when we started Qt Designer, we are now going to create some buttons with custom images on a custom background

# First add a frame to your window, by dragging a frame object across from the object selector. In the Object inspector call it Frame1
# Add a second frame ontop of your first frame and call it Frame2
# Add a push button to the second frame,set its minimumSize and maximum Size to  Width 120,Height 101, now copy and past 3 more of these buttons.
# Select all four buttons and right click, Layout-&gt;layout Horizontalally, and you should be left with something like this.


[[image:Qt-Designer-Layout.png]]

Rename each button object to PushButton1, PushButton2, PushButton3, PushButton4. Leave the labels for the moment as in the picture, though later on we will delete them.

==Add Colours and Images==

We are now ready to add colours and images to our UI using the stylesheet editor.

1. On the object inspector right click on our frame2 object and select Change Style sheet. 

[[image:Qt-Object-Inspector.png]]

The Style sheet editor will pop up. Now cut and paste this bit of CSS into the editor. 
&lt;source lang=&quot;css&quot;&gt;
 QPushButton{ background-image: url(:/images/bt_01_off.png);}
 QPushButton:pressed {background-image: url(:/images/bt_01_on.png);}
 #pushButton1 {  }
 #pushButton2 {  }
 #pushButton3 {  }
 #pushButton4 {  }
&lt;/source&gt;
This will set up two background images for the push buttons, one for pressed and one for released, this will give nice animated effect on pressing buttons.

2. Now add foreground images to each button by clicking between the curly brackets in the CSS, and then select Add Resource-&gt;image from the menu, then select the image you want to add.This will automatically add the CSS for each push button.

[[image:Qt-Select-Resource.png]]

[[image:Qt-Edit-Stylsheet.png]]

Now hit apply and you should have something that looks like this.

[[image:Qt-Buttons.png]]

And the CSS in your Stylesheet editor should be this
&lt;source lang=&quot;css&quot;&gt;
 QPushButton{ background-image: url(:/images/bt_01_off.png);}
 QPushButton:pressed {background-image: url(:/images/bt_01_on.png);}
 #pushButton1 {image: url(:/images/bt_label_01.png);}
 #pushButton2 {image: url(:/images/bt_label_02.png);}
 #pushButton3 {image: url(:/images/bt_label_03.png); }
 #pushButton4 {image: url(:/images/bt_label_04.png); }
&lt;/source&gt;
As you can see you don't need to populate the CSS attributes your self, the editor will do this for you. 

Just a word on syntax. The Hash refers to a specific object ie pushButton1 etc. No Hash means all instances of that object. That way you don't need to preset the background for each individual button in this example.

3. Now lets add some background colour. Right Click frame1 in the Object Inspector and change its style-sheet. Select Add Background Colour, and select a colour. Your CSS is automatically populated. Notice that you if you don't use an object name Qt will take it to mean the current object.

[[image:Qt-Select-Colour.png]]

Heres what the css should look like
&lt;source lang=&quot;css&quot;&gt;
 background-color: rgb(101, 101, 101);
&lt;/source&gt;
4. Last but not least, double click on each of the Button labels and make each button lable a blank.

==Preview your UI==

Press Control R on your keyboard to preview your work and you have something like this.

[[image:Qt-Preview.png]]

notice how the background images changes when we press the buttons.

==Compile and Run the UI==

Save the Ui as customui.ui

Now compile it using pyuic4 using this command

 pyuic4 -x customui.ui -o customui.py

now run the application

 python customui.py

and we will get this error

  Traceback (most recent call last):
  File &quot;customui.py&quot;, line 84, in &lt;module&gt;
    import customui_rc
  ImportError: No module named customui_rc

This is because the application needs to reference our resource file that contains all our images.

We need to compile the resource file &quot;customui.rc&quot; that we created at the top of the page. We do this using the Python resource compiler Pyrcc4, like this

 pyrcc4 customui.rc -o customui_rc.py

Now we can run the application using 

 python customui.py

and presto our ui runs. As Usual the first time you run a Python app it might get a bit slow with lots of images as the system pre compiles the code.

The customeui_rc.py contains all of the images our ui needs to run, and as long as we ship that with our main app, everything should work. Now copy customui.py and customui_rc.py to your [[Nokia N900|N900]] and run from a terminal

[[image:Qt-N900Customui.png]]

Congrats you have just done your first custom ui in Python and Qt

TODO, upload full blown ui file of calculator once I can do portrait mode :-)(mikec 12/02/10)

==Additional Resources==

* http://doc.trolltech.com/4.5/stylesheet.html Note that not all Qt widgets can be customised through Style Sheets. You can see the full list of widgets and their CSS options here
* [http://graffletopia.com/stencils/567 Ui Stencil for Maemo5]
* [[Qt-Maemo|Qt for Maemo]]

[[Category:Qt]]
[[Category:Python]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Customizing Maemo</title>
    <id>2756</id>
    <revision>
      <id>47639</id>
      <timestamp>2012-05-27T09:36:26Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>/* Transitions */</comment>
      <text xml:space="preserve">{{Expand}}

This article will someday describe how everybody can customize Maemo 5 to make it as personal as possible. Discussion on t.m.o concerning customization in [http://talk.maemo.org/showthread.php?t=32845 this thread].

== Editing home ==

Through the Edit mode of the Home screen it is possible to:
* Add/move/delete widgets/shortcuts/contacts/bookmarks on the desktop
* Change the the number of desktop home views (1-9 views are available)
* Change background of the home (either for individual view or for all home views simultaneously through wallpaper sets)
* Change active theme of the device (out of the themes available/installed on the device)
Entering the edit mode happens by long tapping the home screen or by tapping the home screen background once and then tapping the Edit mode button which slides down at the top right corner of the home screen.

== Themes ==

Available themes can be installed straight from Application Manager. If you want to make your own theme, see below. See also article [[Themes]].

== Wallpapers ==

There is already [http://www.n900wallpapers.com/ n900wallpapers.com] for wallpapers. Unfortunately, you need a .desktop-file if you want to configure panoramic wallpapers for now.

There will be an application for wallpaper handling to be released (hopefully) soon. See [http://www.iolitetech.com/products/prismic-wallpaper-manager Prismic wallpaper manager]


Also see [[#Wallpapers_2]]

== Advanced customization ==

{{danger}}

=== Same Shortcut on multiple desktops ===

Use the same shortcut twice on the desktops can be useful. In order to do it, you have to manually modify appropiate .desktop file by adding the &quot;X-Multiple=true&quot; entry into the file. See [[Desktop file format]] for further information.

=== Welcome screen ===

It is possible to edit hildon-welcome. A howto is available [http://talk.maemo.org/showpost.php?p=347925&amp;postcount=9 here]. Examples: [http://talk.maemo.org/showpost.php?p=347794&amp;postcount=1 &quot;Open source. Open heart. Open future.&quot;], [http://talk.maemo.org/showpost.php?p=350710&amp;postcount=1 &quot;The Power of Open.&quot;]

To insert your own video follow these instructions (from the link above thanks to VDVsx):

# Copy the video you want to play to &lt;code&gt;/usr/share/hildon-welcome/media&lt;/code&gt;
# Go to &lt;code&gt;/etc/hildon-welcome.d/&lt;/code&gt; and edit the default.conf file or create a similar one (the videos will play by the alphabetic order of the .conf files)

=== LED notifications ===

Detailed description for modifying LED -notifications can be found in [[LED patterns]] -article.

=== Themes ===

There is an application for making themes to Maemo OS2008. This will be updated as soon as possible to cover also N900 and Maemo5. See article [[Making themes]].

=== Wallpapers ===

If you want to make panoramic wallpapers of your own, you need to create a .desktop -file and put it to same directory where your pictures are.

Example of a .desktop -file:
 [Desktop Entry]
 Type=Background Image
 Name=Deers
 Hidden=true
 
 X-File1=/home/user/MyDocs/.images/deer1.png
 X-File2=/home/user/MyDocs/.images/deer2.png
 X-File3=/home/user/MyDocs/.images/deer3.png
 X-File4=/home/user/MyDocs/.images/deer4.png
 
 X-Order=01

====How to change a certain wall paper in terminal?====
 gconftool -s --type string /apps/osso/hildon-desktop/views/1/bg-image $PATHTOIMAGE

Replace number &quot;1&quot; with the number of the desktop that you'd like change.&lt;ref&gt;http://talk.maemo.org/showpost.php?p=483028&amp;postcount=2&lt;/ref&gt;

====Where are the slider screen files located?====
====Slide to Unlock Screen====

You can edit the &quot;Slide to Unlock&quot; / &quot;slider&quot; screen that appears upon
pressing the power button while the phone is
locked&lt;ref&gt;http://talk.maemo.org/showpost.php?p=491060&amp;postcount=403&lt;/ref&gt;
. You can do this by editing the lockslider.png file found in:

 /usr/share/themes/alpha/backgrounds/

(note that &lt;code&gt;/usr/share/themes&lt;/code&gt; is now a symlink to &lt;code&gt;/opt/usr/share/themes&lt;/code&gt;
, so the above path and &lt;code&gt;/opt/usr/share/themes/alpha/backgrounds/&lt;/code&gt; both
refer to the same on-disk location)

The other images (&lt;code&gt;LockSliderTop.png&lt;/code&gt;, &lt;code&gt;LockSliderThumbPortrait.png&lt;/code&gt;,
&lt;code&gt;LockSliderThumb.png&lt;/code&gt;, &lt;code&gt;LockSliderRight.png&lt;/code&gt;, &lt;code&gt;LockSliderLeft.png&lt;/code&gt;,
&lt;code&gt;LockSliderBottom.png&lt;/code&gt;) are in &lt;code&gt;/usr/share/themes/alpha/images&lt;/code&gt; (same symlink note as before applies).

===Using the same widget on multiple desktops===

The folder &lt;code&gt;/usr/share/applications/hildon&lt;/code&gt; contains files that contain info about installed programs. Duplicating these files will result in duplicating them in the shortcut list. However, this will result in a side effect causing the program to show multiple times the programs in the &quot;More..&quot; folder.

=== Contents of power key menu ===

Information on how to add reboot button to power key menu, add new keyboard shortcuts [http://talk.maemo.org/showthread.php?t=39565 N900 MODs]

Instructions on how to add the reboot key (from the link above thanks to f2thak):

# Open xterm and type sudo gainroot to enable root access
# Navigate to &lt;code&gt;/etc/systemui&lt;/code&gt;
# Create a backup copy of the systemui file by typing:&lt;pre&gt;cp systemui.xml systemui.xml.bak&lt;/pre&gt;
# Edit the systemui file by typing:&lt;pre&gt;vi systemui.xml&lt;/pre&gt;
# At the bottom of the file you will notice that part of it (consisting of three ... entries) is disabled within the &quot;comment&quot; marks
# Move the &quot;comment&quot; marks mentioned above &quot;&lt;! --&quot; without the space between ! and - (e.g. by deleting and re-typing them in other place) so that the two remaining entries (&quot;Soft poweroff&quot; and &quot;Top in XTerm&quot;) are still within them but the &quot;Reboot&quot; entry gets outside of them.  To do this, hit the key &quot;i&quot; to begin editing and the Esc button in xterm to stop (once you are done editing &quot;dd&quot; will delete any line you created by accident).  Type :wq to save and edit after being done editing
# Close X-Terminal and reboot the device.  After the N900 reboots, you should see the new &quot;Reboot&quot; option in the Menu

=== Transitions ===

Transition Control is an application which allows you to change various transition effects of the phone. Another approach is to edit the
&lt;code&gt;/usr/share/hildon-desktop/transitions.ini&lt;/code&gt; file (root access is needed)

{{main|Community SSU/Features/hildon-desktop}}

===Keyboard characters===

[[Remapping keyboard]]

[[Special_characters_view]]

====Keyboard Sym on auto hold====

[[Maemo 5/PR1.2|PR1.2]] brought a change in behaviour where holding a key will now result in the SYM for that key being inserted.

[https://bugs.maemo.org/show_bug.cgi?id=5421 Maemo Bug 5421] details this change.

to re-enable the old autorepeat behaviour:

 gconftool-2 -s /apps/osso/inputmethod/ext_kb_repeat_enabled --type boolean true

====Extra Symbols in X Terminal (osso-xterm)====

You can add extra keyboard symbols inside X Terminal when you happen to be stuck without virtual keyboard enabled. To do this you will need to use gconftool-2.

The default configuration is:

 gconftool-2 -s /apps/osso/xterm/key_labels -t list --list-type=string &quot;[Tab,Esc,PgUp,PgDn]&quot;
 gconftool-2 -s /apps/osso/xterm/keys -t list --list-type=string &quot;[Tab,Escape,Page_Up,Page_Down]&quot;

For example you want to add the pipe into X Terminal as a key on the bottom bar you do this&lt;ref&gt;http://talk.maemo.org/showpost.php?p=386724&amp;postcount=8&lt;/ref&gt;:

 gconftool-2 -s /apps/osso/xterm/key_labels -t list --list-type=string &quot;[Tab,Esc,PgUp,PgDn,|]&quot;
 gconftool-2 -s /apps/osso/xterm/keys -t list --list-type=string &quot;[Tab,Escape,Page_Up,Page_Down,bar]&quot;

Note how in the first set of command you actually see the pipe as a character in itself, the pipe could be of any character or a single word of your choice but the second command it must be the word bar.

You will also notice that when you add/remove new commands the full screen icon sits beside Ctrl instead behind the second last icon. When you restart X Terminal the full screen icon will relocate itself to the second last icon.

The theoretical maximum amount of icons you can place on the bottom bar including Ctrl and excluding the full screen icon is 9. You can add up to 8 custom commands and icons simultaenously or separately. However you must remember that for each new command you add via gconftool-2 you must also set state the previous commands and its icons. For example, when you add |, &gt;, ~, etc. You must have something like this&lt;ref&gt;http://talk.maemo.org/showpost.php?p=408094&amp;postcount=15&lt;/ref&gt;:

 gconftool-2 -s /apps/osso/xterm/key_labels -t list --list-type=string &quot;[Tab,Esc,PgUp,PgDn,|,&gt;,~]&quot;
 gconftool-2 -s /apps/osso/xterm/keys -t list --list-type=string &quot;[Tab,Escape,Page_Up,Page_Down,bar,greater,asciitilde]&quot;

Note how for each commands added, the previous set of commands were also mentioned.

You can also change the standard sets of commands such as Tab, Esc, PgUp, PgDn to whatever that suits you. For more other characters and their actual names under fremantle you may want to have a look under /usr/share/X11/xkb/symbols/nokia_vndr/rx-51 &lt;ref&gt;http://talk.maemo.org/showpost.php?p=439659&amp;postcount=33&lt;/ref&gt; 

Credit goes to:
* iKneaDough&lt;ref&gt;http://talk.maemo.org/showpost.php?p=386700&amp;postcount=7&lt;/ref&gt;, for initial discovery
* lma&lt;ref&gt;http://talk.maemo.org/showpost.php?p=386724&amp;postcount=8&lt;/ref&gt;, for making it a full and proper command to work under fremantle/N900.
* kwotski&lt;ref&gt;http://talk.maemo.org/showpost.php?p=408094&amp;postcount=15&lt;/ref&gt;, for a fully set shortcut keys!
* jebba&lt;ref&gt;http://talk.maemo.org/showpost.php?p=439659&amp;postcount=33&lt;/ref&gt;, for finding out (and answering his own question) on the possible key commands under fremantle.

===Application Menu===

{{main|Application Menu}}

===Camera Sound===

In &lt;code&gt;/usr/share/sounds&lt;/code&gt; the files camera_snd_title_1, 2 and 3 (1 is the camera shutter sound, 2 is the video recording sound and 3 is the focus sound) just replace them with any working wav sound file OR for a SILENT CAMERA just rename or delete these files! &lt;ref name=&quot;camsnd&quot;&gt;[http://talk.maemo.org/showthread.php?p=462484 Silent Camera Hack ]&lt;/ref&gt;
Silent profile also quiets camera :-D

===Editing SMS and Chat templates===

{{main|Conversation Mods}}

You can change the way you read SMS and chat conversations by editing the html files in &lt;code&gt;/usr/share/rtcom-messaging-ui/html&lt;/code&gt;.&lt;ref&gt;http://talk.maemo.org/showthread.php?t=36618&lt;/ref&gt;

=== Icons ===

Icons tend to live in &lt;code&gt;/usr/share/icons/hicolor/x/x/x&lt;/code&gt;, where x will vary according to the sort of icon in question. &lt;ref&gt;http://talk.maemo.org/showpost.php?p=481662&amp;postcount=252&lt;/ref&gt;  

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/usr/share/icons/hicolor/scalable/hildon&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;
Signal images
&lt;/li&gt;
&lt;li&gt;
Battery1 images
&lt;pre&gt;
statusarea_battery_full13.png
statusarea_battery_full25.png
statusarea_battery_full38.png
statusarea_battery_full50.png
statusarea_battery_full63.png
statusarea_battery_full75.png
statusarea_battery_full88.png
statusarea_battery_full100.png
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Bootup icons 
&lt;pre&gt;
indicator_update1.png
indicator_update2.png
indicator_update3.png
indicator_update4.png
indicator_update5.png
indicator_update6.png
indicator_update7.png
indicator_update8.png
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/usr/share/icons/hicolor/48x48/hildon/&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;
Battery2 images
&lt;/li&gt;
&lt;li&gt;
Availability images
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/usr/share/icons/hicolor/16x16/hildon&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;
Availability (Small) images
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

In many cases icons saved to &lt;code&gt;~/.local/share/icons/hicolor/x/x/x&lt;/code&gt; will override the system icons, but leave them in place. This has the added advantage that it will survive OTA firmware updates. Deleting or movnig the icons in &lt;code&gt;~/.local/…&lt;/code&gt; will revert to the orignal system icons. [Does this apply to all icons and images??]

====Reordering The Status Icons====

You can reorder the status icons that display on top of your desktop by editing /etc/hildon-desktop/status-menu.plugins&lt;ref&gt;http://talk.maemo.org/showpost.php?p=485678&amp;postcount=334&lt;/ref&gt;

Change the number(s) for the &quot;&lt;code&gt;X-Status-Menu-Position&lt;/code&gt;&quot; section. The higher the number, the lower the priority.

===Sound Effects===
You can edit the UI sound effects by editing the sound files found in /usr/share/sounds &lt;ref&gt;http://talk.maemo.org/showpost.php?p=486875&amp;postcount=346&lt;/ref&gt;

===Disabling Auto Updates Check===
You may want to disable the automatic software updates checks that occur upon internet connection, in order to consume less bandwidth when using 2G/3G connections. That is not possible but you may increase the interval to something less bothering. You can do so by editing the gconf file found in &lt;code&gt;/var/lib/gconf/apps/hildon/update-notifier&lt;/code&gt; and changing the check interval from 1440(24 hours) to a much larger value (the value is read in minutes, 525600 is 365 days). The value must not exceed 2,147,483,647&lt;ref&gt;http://talk.maemo.org/showpost.php?p=304311&amp;postcount=10&lt;/ref&gt;:
 gconftool -s --type int /apps/hildon/update-notifier/check_interval NEW_VALUE
(since there are rumours about some part of the whole system having problems with numbers near max, it's recommended to use considerably lower values than those ~4000 years. Maybe 5 years = 5 * 525600 = 2628000 is just enough for practical purposes)

Instead of disabling updates, you can use [http://hssl.cs.jhu.edu/~neal/woodchuck/apt-woodchuck.install APT Woodchuck], which uses Woodchuck to intelligently schedule downloads (e.g., exploiting WiFi when it is available).

== Resources &amp; Links ==

Advanced Tweaks: [http://talk.maemo.org/showthread.php?t=39948 Collection of Low-Level Config-Files / Tools]

[https://garage.maemo.org/projects/powatool/ Powatool]

[[Maemo_Summit_2009/Day_2#Personalizing_your_Maemo_5_device|Personalizing your Maemo 5 device]] presentation ([http://www.slideshare.net/hartti/n900-personalization slides]) at Maemo Summit 2009.

==References==

&lt;references /&gt;

[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Customizing maemo for power users</title>
    <id>3424</id>
    <revision>
      <id>27405</id>
      <timestamp>2010-01-26T08:03:29Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <comment>Redirecting to [[Customizing Maemo]]</comment>
      <text xml:space="preserve">#REDIRECT [[Customizing Maemo]]</text>
    </revision>
  </page>
  <page>
    <title>Customizing sounds</title>
    <id>3073</id>
    <revision>
      <id>40621</id>
      <timestamp>2010-12-08T14:08:23Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>tidy slightly</comment>
      <text xml:space="preserve">This article will explain how to change the various sounds in [[Category:OS2008|Maemo OS 2008]] on a [[Nokia N810]]. If you are looking to change the ringtone, you can do that from the settings of the internet phone application. All other sounds are a bit more difficult to change as we will discuss here.

== Get your sounds ==
Find the sounds you wish to use. They must be in the &quot;.wav&quot; format. If you need to convert them you can use [http://download.cnet.com/Quick-Media-Converter-HD/3000-2194_4-10787822.html quick media converter]. Put them on your device. I put mine in Internal Memory in a folder called &quot;New Sounds&quot;. Create another folder in the same directory to back up your old sounds to; you could call it &quot;Old Sounds&quot;.

== The apps you need ==
For this customization you will need the [http://maemo.org/downloads/product/OS2008/emelfm2/ emelFM2] file browser that will allow you to navigate to hidden folders. In order to do customize sounds without command line stuff you'll need [http://maemo.org/downloads/product/OS2008/personal-menu/ personal menu] which you probably already have. If you don't already have personal menu install it from the link above and follow the instruction that pop up after the install on how to display it on your home screen. You can remove it later if you wish.

== emelFM2 ==
[[Image:emelfm2_root.png|400px|alt=Run emelFM2 as root]]

Go to Menu &gt; Settings &gt; Edit Personal Menu. Add emelFM2 to the &quot;Your Personal Menu&quot; list. Select emelFM2 and click the pencil icon for settings. Check the box labeled &quot;Run as root&quot;. This is similar to &quot;Run as Administrator&quot; in windows.

{{ambox|You will now be going to a place with lots of system files that make your device run. If you change or delete anything you could damage your operating system and be forced to reinstall. Proceed with caution at your own risk.

[[Image:emelfm2_copy.png|400px|alt=Copy files]]

Launch emelFM2 from personal menu, not the normal menu. In one pane navigate to &lt;code&gt;/usr/share/sounds&lt;/code&gt;. In the other type &lt;code&gt;/media&lt;/code&gt; and navigate to the folder that you made for the old sounds. For me I navigated to &lt;code&gt;/media/mmc2/Old Sounds&lt;/code&gt;. From the &lt;code&gt;/usr/share/sounds&lt;/code&gt; folder select the sound you want to change then click the copy button at the top of the center column. Copy over all the files that you want to change.

[[Image:file_rename.png|400px|alt=Rename files]]

Go back to the basic File Manager. Go to the Old Sounds folder. Click and hold on the old sound until the context menu pops up. Click Edit then rename. From there hit (right) ctrl + c on the keyboard to copy. Click cancel; we'll leave this file here now as a backup in case we want to change it back later. Then go to &quot;New Sounds&quot; click and hold on the file. Select Edit then Rename and click (right) ctrl + v to paste. Repeat this for any other files you have.

Return to emelFM2. Navigate to your &quot;New Sounds&quot; folder. On the other side you should have &lt;code&gt;/usr/share/sounds&lt;/code&gt; open. Select the new sound click copy in the center column. A confirmation box should come up, click replace. Repeat for all your other sounds. 

You're Done!

[[Category:Power users]]
[[Category:OS2008]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>DOSBox</title>
    <id>4889</id>
    <revision>
      <id>43906</id>
      <timestamp>2011-06-10T07:43:40Z</timestamp>
      <contributor>
        <username>flandry</username>
        <id>1253</id>
      </contributor>
      <comment>Page created to provide simple start instructions</comment>
      <text xml:space="preserve">DOSBOx is an emulator of the PC/DOS platform that allows one to run DOS binaries (programs) compiled for x86 processors on the N900. Because it is emulating the platform, performance won't be terrific, but fortunately most DOS programs were written for slow computers.

There is a discussion of DOSBox on tmo: http://talk.maemo.org/showthread.php?t=5686&amp;highlight=dosbox

An up-to-date DOSBox package is available in the maemo [[repository]]. After you install it, you'll probably want to edit the configuration file (found at ~/.dosbox/dosbox-0.74.conf) to do one or more of the following:
* set up automount for a dos directory 
** You can use a directory in MyDocs for this (the bit that is mounted as N900 over USB mass storage). Create a new directory (dos_c for example) and copy your DOS program files into it.
** Add these two lines to the end of the [autoexec] section of the configuration file to mount your dos directory inside the DOSBox and change to it:
  mount c ~/MyDocs/dos_c
  c:
* enable the improved N900 keyboard map so that numbers can be entered
** Download [http://depot.javispedro.com/dosbox/rover/rover.sys Javispedro's rover.sys file] to the root of the DOS directory (dos_c following the above example)
** Add this line to the end of the [autoexec] section:
  keyb rover.sys us

Now unmount the N900 drive and unplug the USB cable, and start DOSBox from the app menu. You can type the name of your DOS program just like you did back in the day. 

Other possibly useful tweaks:
* Enable the fullscreen mode in the configuration file.</text>
    </revision>
  </page>
  <page>
    <title>Data Plans</title>
    <id>1787</id>
    <revision>
      <id>12666</id>
      <timestamp>2009-04-21T08:01:19Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Data Plans]] moved to [[Data plans]]: Proper sentence case</comment>
      <text xml:space="preserve">#REDIRECT [[Data plans]]</text>
    </revision>
  </page>
  <page>
    <title>Data plans</title>
    <id>1422</id>
    <revision>
      <id>45670</id>
      <timestamp>2011-11-04T12:28:46Z</timestamp>
      <contributor>
        <ip>81.82.245.11</ip>
      </contributor>
      <comment>/* Belgium */</comment>
      <text xml:space="preserve">The goal of this page is to have an up to date per country list of data plans for your mobile phone. If you have user experiences with one of these (or an other) data plans please feel free to contribute your experience on the [http://talk.maemo.org/showthread.php?t=22383 data plan thread].

Please take into account data plans might involve special deals, or are available for a limited time. Therefore, the information hereunder might be (slightly) incorrect or out of date. Sorry for any inconvenience this may cause, and please feel free to provide updates on the data plans or add new data plans.

EU &amp; roaming notice: If you are residing in the European Union be aware [http://ec.europa.eu/information_society/activities/roaming/tariffs/in_ms/index_en.htm The European Commision provides a website where one can compare roaming tariffs in EU]. There are some [[Roaming tips and tricks|tips for reducing roaming charges]].

== Austria ==

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|Orange|| [http://www.orange.at/Content.Node/mobiles_internet/mobiles_internet_3gb/ Mobiles Internet 3GB] || ? || 3GB || yes || none || € 10,- || € 0,10 for each MB after 3GB
|-
|Orange|| [http://www.orange.at/Content.Node/mobiles_internet/mobiles_internet_15gb/ Mobiles Internet 15GB] || ? || 15GB || yes || none || € 20,- (ohne Handyvertrag) / € 15,- (mit Orange Handyvertrag) || after 6 GB used: max. 128kbit/s; after 15 GB used: max. 56kbit/s
|-
|Orange|| [http://www.orange.at/Content.Node/tarife/team_orange/team_orange_39/ Team Orange 39] || ? || 3GB || yes || none || € 39,- || + 1000 minutes voice, 400 minutes to the EU, 1000 SMS, free calls+SMS to Orange.AT customers
|-
|A1||[http://www.a1.net/privat/databasis Data Basis]||7,2 Mbit/s||none||yes||none||-||standard cost: €6,40/MB without data plan; beware!
|-
|A1||[http://www.a1.net/privat/a1pakete A1 Internet Paket]||7,2 Mbit/s||300MB||yes||none||€ 5,-||smallest data plan for A1; € 0,50 for each MB not included in the 300MB limit
|-
|A1||[http://www.a1.net/privat/breitband A1 Breitband 1GB]||7,2 Mbit/s||1GB||yes||none||€ 10,-||€ 0,25 for each MB not included in the 1GB limit
|-
|A1||[http://www.a1.net/privat/breitband A1 Breitband 10GB]||7,2 Mbit/s||10GB||yes||none||€ 30,-||€ 0,10 for each MB not included in the 10GB limit
|-
|bob||[http://www.bob.at/bobdatenpaket1gb BOB Datenpaket 1GB]|| ? ||1GB||yes||none||€ 4,-||€ 4 for each GB not included in the 1GB limit
|}

== Australia ==

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|Three|| Starter || ? || 50MB(casual) 100MB(12 month membership) || Yes|| Broadband Zone || 5$ || 50c per MB for additional data
|-
|Three|| Classic || ? || 250MB(casual) 500MB(12 month membership) || Yes|| Broadband Zone || 8$ || 50c per MB for additional data
|-
|Three|| Super || ? || 1GB(casual) 2GB(12 month membership) || Yes|| Broadband Zone || 20$ || 50c per MB for additional data
|-
|Three|| Ultimate || ? || 3GB(casual) 6GB(12 month membership) || Yes|| Broadband Zone || 40$ || 10c per MB for additional data
|}

== Belgium ==

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|Mobile Vikings|| basic || Edge || 1GB || Yes || - || 15€ || 2,50€ per MB after; 1000 free sms; Base network, 3G planned for 2010 [http://mobilevikings.com/en/conditions/ Source]
|}

== Bulgaria ==

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP || Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
| Globul || GoWeb 25 || up to 14.4Mbps || 25MB || Yes || - || 5,00BGN || additional 0,60BGN/MB [http://www.globul.bg/eng/mobilenet.html?posm=1]
|-
| Globul || GoWeb 100 || up to 14.4Mbps || 100MB || Yes || - || 12,00BGN || additional 0,24BGN/MB [http://www.globul.bg/eng/mobilenet.html?posm=1]
|-
| Globul || GoWeb 300 || up to 14.4Mbps || 300MB || Yes || - || 16,80BGN || additional 0,24BGN/MB [http://www.globul.bg/eng/mobilenet.html?posm=1]
|-
| Globul || GoWeb 1000 || up to 14.4Mbps || 1000MB || Yes || - || 24,00BGN || additional 0,10BGN/MB [http://www.globul.bg/eng/mobilenet.html?posm=1]
|-
|M-Tel|| Easy Surf || up to 21Mbps || 5-50MB (recommended) || Yes || - || 3,90BGN || 0,25BGN/MB [http://mtel.bg/mc/pricebroadband.php?lang=en]
|-
|M-Tel|| Pro Surf || up to 21Mbps || 50-100MB (recommended) || Yes || - || 5,90BGN || 0,15BGN/MB [http://mtel.bg/mc/pricebroadband.php?lang=en]
|-
|M-Tel|| Master Surf || up to 21Mbps || 100-500MB (recommended) || Yes || - || 9,90BGN || 0,05BGN/MB [http://mtel.bg/mc/pricebroadband.php?lang=en]
|-
|M-Tel|| Power Surf || up to 21Mbps || 500-10000MB (recommended) || Yes || - || 15,90BGN || 0,01BGN/MB [http://mtel.bg/mc/pricebroadband.php?lang=en]
|-
|M-Tel|| Surf || up to 21Mbps || 25MB || Yes || - || 9,90BGN || additional 0,60BGN/MB [http://mtel.bg/mc/pricebroadband.php?lang=en]
|-
|M-Tel|| Surf || up to 21Mbps || 250MB || Yes || - || 15,90BGN || additional 0,25BGN/MB [http://mtel.bg/mc/pricebroadband.php?lang=en]
|-
|M-Tel|| Surf || up to 21Mbps || 512MB || Yes || - || 19,90BGN || additional 0,25BGN/MB [http://mtel.bg/mc/pricebroadband.php?lang=en]
|-
|M-Tel|| Surf || up to 21Mbps || 1024MB || Yes || - || 23,90BGN || additional 0,25BGN/MB [http://mtel.bg/mc/pricebroadband.php?lang=en]
|-
|M-Tel|| Surf || up to 21Mbps || 2048MB || Yes || - || - || bundled with Netbooks [http://mtel.bg/mc/pricebroadband.php?lang=en]
|-
|M-Tel|| Surf || up to 21Mbps || 3072MB || Yes || - || 39,90BGN || additional 0,10BGN/MB [http://mtel.bg/mc/pricebroadband.php?lang=en]
|-
|M-Tel|| Surf || up to 21Mbps || 5120MB || Yes || - || 49,90BGN || additional 0,10BGN/MB [http://mtel.bg/mc/pricebroadband.php?lang=en]
|-
|M-Tel|| Surf || up to 21Mbps || 10240MB || Yes || - || 59,90BGN || additional 0,10BGN/MB [http://mtel.bg/mc/pricebroadband.php?lang=en]
|-
| Vivacom || Data 30 || ? (3G) || 30MB || Yes || - || 5,00BGN || additional 0,30BGN/MB [http://www.vivacom.bg/en/residential/prices_and_services/mobile_services/mobile_postpaid/packages_for_mobile_internet/]
|-
| Vivacom || Data 150 || ? (3G) || 150MB || Yes || - || 10,00BGN || additional 0,30BGN/MB [http://www.vivacom.bg/en/residential/prices_and_services/mobile_services/mobile_postpaid/packages_for_mobile_internet/]
|-
| Vivacom || Data 750 || ? (3G) || 750MB || Yes || - || 20,00BGN || additional 0,30BGN/MB [http://www.vivacom.bg/en/residential/prices_and_services/mobile_services/mobile_postpaid/packages_for_mobile_internet/]
|}

== Canada ==

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|Fido||  1GB/3GB|| EDGE || 1GB/3GB ||Yes|| As of 20/2/2009, no contract with own device || $30 / $60 || $35 activation fee, $35 SIM card, no system access fee or 911 fee [http://www.internettablettalk.com/forums/showthread.php?t=27008].
|-
|Rogers||  1GB/3GB|| EDGE || 1GB/3GB ||Yes|| system access and 911 fees apply || $30 / $60 ||  [http://www.internettablettalk.com/forums/showthread.php?t=27008]
|-
|WIND||Infinite Mobile|| 7.2 Mbps || None || Yes|| Speed limits after 5GB || $35 ||  NAT, port blocks (will open on request), P2P not allowed. Min $15 voice plan req'd
|}

== Czech Republic ==

Also see the list in [[:wikipedia:Internet_in_the_Czech_Republic#Comparison_of_mobile_data_plans|Wikipedia]] (no idea how up-to-date it is though)

== Finland ==

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|Cubio|| 384Dpack || 384 Kb/s || FUP || yes || Like Elisa? (Uses Elisa's network in Finland) || 9,90 € || [http://main.cubio.fi/data_pack.php Source]
|-
|Cubio|| 512Dpack || 512 Kb/s || FUP || yes || Like Elisa? (Uses Elisa's network in Finland) || 14,90 € || [http://main.cubio.fi/data_pack.php Source]
|-
|Cubio|| 1MDpack || 1 Mb/s || FUP || yes || Like Elisa? (Uses Elisa's network in Finland) || 19,90 € || [http://main.cubio.fi/data_pack.php Source]
|-
|Cubio|| 2MDpack || 2 Mb/s || FUP || yes || Like Elisa? (Uses Elisa's network in Finland) || 29,90 € || [http://main.cubio.fi/data_pack.php Source]
|-
|Elisa|| Mobiililaajakaista 384 || 384 Kb/s || FUP || yes || All p2p traffic forbidden.  Port 25 incoming blocked. Outgoing allowed to smtp.elisa.fi or smtpa.elisa.fi || 9,90 € || [http://www.elisa.fi/matkaviestinta/index.cfm?o=199.60 Source]
|-
|Elisa|| Mobiililaajakaista 512 || 512 Kb/s || FUP || yes || All p2p traffic forbidden. Port 25 incoming blocked. Outgoing allowed to smtp.elisa.fi or smtpa.elisa.fi || 14,90 € || [http://www.elisa.fi/matkaviestinta/index.cfm?o=199.60 Source]
|-
|Elisa|| Mobiililaajakaista 1M || 1 Mb/s || FUP || yes || All p2p traffic forbidden. Requires HSDPA-support at 1,8 Mbps. Port 25 incoming blocked. Outgoing allowed to smtp.elisa.fi or smtpa.elisa.fi || 19,90 € || [http://www.elisa.fi/matkaviestinta/index.cfm?o=199.60 Source]
|-
|Elisa|| Mobiililaajakaista 2M || 2 Mb/s || FUP || yes || All p2p traffic forbidden. Requires HSDPA-support at 3,6 Mbps.  Port 25 incoming blocked. Outgoing allowed to smtp.elisa.fi or smtpa.elisa.fi || 29,90 € || [http://www.elisa.fi/matkaviestinta/index.cfm?o=199.60 Source]
|-
|Saunalahti|| Mobiililaajakaista 384 || 384 Kb/s || FUP || yes || All p2p traffic forbidden || 9,80 € || [http://saunalahti.fi/gsm/mobiililaajakaista.php Source]
|-
|Saunalahti|| Mobiililaajakaista 512 || 512 Kb/s || FUP || yes || All p2p traffic forbidden || 14,80 € || [http://saunalahti.fi/gsm/mobiililaajakaista.php Source]
|-
|Saunalahti|| Mobiililaajakaista 1M || 1 Mb/s || FUP || yes || All p2p traffic forbidden || 19,80 € || [http://saunalahti.fi/gsm/mobiililaajakaista.php Source]
|-
|Saunalahti|| Mobiililaajakaista 2M || 2 Mb/s || FUP || yes || All p2p traffic forbidden || 29,80 € || [http://saunalahti.fi/gsm/mobiililaajakaista.php Source]
|-
|Saunalahti|| Mobiililaajakaista 5M || 5 Mb/s || FUP || yes || All p2p traffic forbideen || 34,80 € || [http://saunalahti.fi/gsm/mobiililaajakaista.php Source]
|}

== France ==

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|Orange|| Internet || 3G+ || FUP || Not allowed, but works || Port 80 only. || 6€ || Add in to a voice plan. Data works only from 8pm to 8am and weekends. [http://mobile.orange.fr/content/ge/high/v2_offre_boutique/services_mobiles/orange_world/orange_world_multimedia/multimedia_internet.html Source]
|-
|Orange|| Internet Max || 3G+ || FUP || Not allowed, but works || Port 80 only || 12€ || Add in to a voice plan. [http://mobile.orange.fr/content/ge/high/v2_offre_boutique/services_mobiles/orange_world/orange_world_multimedia/multimedia_internet.html Source]
|-
|Orange|| iPhone Option || 3G+ || FUP || N/A || Internet + Mail || 25€ || Add in to a voice plan. Wifi free in all Orange hotspots. [http://mobile.orange.fr/content/ge/high/v2_offre_boutique/services_mobiles/orange_world/orange_world_multimedia/multimedia_internet.html Source]
|-
|Bouygues Télécom|| Neo 3 || 3G+ || FUP || N/A || None || 34,90€ || With a 2h voice plan and unlimited calls from 21h30 to 8h. [http://www.laboutique.bouyguestelecom.fr/forfaits-mobiles-offres-internet/forfait-neo-3-174_g.html Source]
|}

== Germany ==

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limits 3G/GPRS !! Tethering !! Restrictions !! Price / month !! Misc
|-
|T-mobile|| WebN'Walk connect  || 3G+ || 5MB || Works || no voip, no instant messaging, no p2p || 5€ || Add in to a voice plan. [http://www.t-mobile.de/tarifoptionen/0,20406,17775-_1103,00.html Source]
|-
|T-mobile|| WebN'Walk connect  || 3G+ || 30MB || Works || no voip, no instant messaging, no p2p || 10€ || Add in to a voice plan. [http://www.t-mobile.de/tarifoptionen/0,20406,17775-_1103,00.html Source]
|-
|T-mobile|| WebN'Walk connect M  || 3G+ || 300MB || Works || no voip, no instant messaging, no p2p || 24.95€ || Add in to a voice plan. [http://www.t-mobile.de/tarifoptionen/0,20406,17775-_1103,00.html Source]
|-
|T-mobile|| WebN'Walk connect L || 3G+ || 5GB/Unlimited || Works || no voip, no instant messaging, no p2p || 39.95€ || Add in to a voice plan. After 5GB limited bandwidth. [http://www.t-mobile.de/tarifoptionen/0,20406,17775-_1103,00.html Source]
|-
|Vodafone|| Mobile Connect pda || 3G+ || 30MB || Works || no voip, no instant messaging, no p2p || 9.95€ || Add in to a voice plan. [http://www.vodafone.de/privat/tarife-flatrate-vertrag-handy-student/105307.html Source]
|-
|Vodafone|| Mobile Connect L || 3G+ || 300MB || Works || no voip, no instant messaging, no p2p || 19.95€ || Add in to a voice plan. [http://www.vodafone.de/privat/tarife-flatrate-vertrag-handy-student/105307.html Source]
|-
|Vodafone|| Mobile Connect Flat || 3G+ || 5GB/Unlimited || Works || no voip, no instant messaging, no p2p || 34.95€ || Add in to a voice plan. After 5GB limited bandwidth. [http://www.vodafone.de/privat/tarife-flatrate-vertrag-handy-student/105307.html Source]
|-
|O2|| Internet-Pack S || 3G+ || 30 MB || Works || none [http://www.gomonews.com/dont-mention-the-mobile-voip-war-o2-germany-opens-its-doors/ Source]|| 5 € || Add in to a voice plan. [http://www.o2online.de/nw/active/handy/index.html?nidx=1#TabbedArea Source]
|-
|O2|| Internet-Pack M || 3G+ || 200 MB/Unlimited || Works || none [http://www.gomonews.com/dont-mention-the-mobile-voip-war-o2-germany-opens-its-doors/ Source]|| 8,50 € (post-paid) / 10€ (pre-paid) || Add in to a voice plan. After 200MB limited bandwidth. [http://www.o2online.de/nw/active/handy/index.html?nidx=1#TabbedArea Source]
|-
|O2|| Internet-Pack L || 3G+ || 5GB/Unlimited || Works || none [http://www.gomonews.com/dont-mention-the-mobile-voip-war-o2-germany-opens-its-doors/ Source]|| 25 € || Add in to a voice plan. After 5GB limited bandwidth. [http://www.o2online.de/nw/active/handy/index.html?nidx=1#TabbedArea Source]
|-
|blau.de|| 100 MB-Datenpaket || 3G || 100MB || Should Work || No VoIP, No P2P || 3.90 € || Pre-Paid. Operates in E-Plus network. Add in to a voice plan. [http://www.blau.de/tarife/daten-optionen/100-mb-datenpaket.html Source]
|-
|blau.de|| 1 GB-Datenpaket || 3G || 1024MB || Should Work || No VoIP, No P2P || 9.90 € || Pre-Paid. Operates in E-Plus network. Add in to a voice plan. [http://www.blau.de/tarife/daten-optionen/1-gb-datenpaket.html Source] 
|-
|simyo.de|| Flat Internet || 3G || 1024MB || Should Work || No VoIP, No P2P || 9.90 € || Pre-Paid. Operates in E-Plus network. Add in to a voice plan. [http://www.simyo.de/tarif/aktuelles/flat-internet.html?campaign=SMC-simyo&amp;att=flat_internet Source] 
|}
*Comparison of more data plans: [http://www.teltarif.de/i/gprs-kosten.html] and [http://www.teltarif.de/i/gprs-kosten.html?page=2]

== Hong Kong == 

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|1010|| $189 Handset Connection Plan|| 3G HSDPA || 200M || Allowed || Fair Usage Policy || $189 HKD || Thereafter $0.01/KB charge capped at $298 a month. Includes 1600 min voice and unlimited intra sms [http://1010.hkcsl.com/jsp/service_plans/service_rate_plans/service_rate_plans.jsp Source]
|-
|1010|| $249 Handset Connection Plan|| 3G HSDPA || 400M || Allowed || Fair Usage Policy || $249 HKD || Thereafter $0.01/KB charge capped at $298 a month. Includes 1800 min voice and unlimited intra sms [http://1010.hkcsl.com/jsp/service_plans/service_rate_plans/service_rate_plans.jsp Source]
|-
|1010|| $299 Handset Connection Plan|| 3G HSDPA || 800M || Allowed || Fair Usage Policy || $299 HKD || Thereafter $0.01/KB charge capped at $298 a month. Includes 2500 min voice, unlimited intra sms, 10 international SMS,Real-time News, Finance, Entertainment Channels, Music Pre-listening &amp; 360 Mobile TV minutes. [http://1010.hkcsl.com/jsp/service_plans/service_rate_plans/service_rate_plans.jsp Source]
|-
|1010|| $439 Handset Connection Plan|| 3G HSDPA || Unlimted || Allowed || Fair Usage Policy || $189 HKD || Includes 3900 min voice, unlimited intra sms, 10 international SMS,Real-time News, Finance, Entertainment Channels, Music Pre-listening &amp; 360 Mobile TV minutes. [http://1010.hkcsl.com/jsp/service_plans/service_rate_plans/service_rate_plans.jsp Source]
|-
|1010|| $339 SIM Connection Plan|| 3G HSDPA || Unlimted || Allowed || Fair Usage Policy || $339 HKD || Includes 3900 min voice, unlimited intra sms, 10 international SMS, 200 MMS, Real-time News, Finance, Entertainment Channels, Music Pre-listening &amp; 360 Mobile TV minutes, Subscription for a Minimum Contract Period of 12 months for SIM connections and 24 months for Handset connections with a $38 or above Value Added Service for Minimum Contract Period of 12 months is required. The Local Mobile Data Usage and Basic Voice Minutes are offered within the Minimum Contract Period only. After the Minimum Contract Period, the Local Mobile Data Usage for $339 service plan will be 800MB and Basic Voice Minutes will be 2,500 minutes. [http://1010.hkcsl.com/jsp/service_plans/service_rate_plans/service_rate_plans.jsp Source]
|-
|1010|| $249 4G Ultimate Mobile Broadband Service Plan|| 4G lte + DC-HSPA+ || 1GB || Allowed || Fair Usage Policy || $249 HKD || $99/GB (Thereafter Charge capped at $498 a month). [http://1010.hkcsl.com/jsp/service_plans/1010_next_g/4g_mobile_broadband/charges_and_subscription.jsp Source]
|-
|1010|| $349 4G Ultimate Mobile Broadband Service Plan|| 4G lte + DC-HSPA+ || 5GB || Allowed || Fair Usage Policy || $349 HKD || $99/GB (Thereafter Charge capped at $498 a month). [http://1010.hkcsl.com/jsp/service_plans/1010_next_g/4g_mobile_broadband/charges_and_subscription.jsp Source]
|-
|1010|| $459 4G Ultimate Mobile Broadband Service Plan|| 4G lte + DC-HSPA+ || Unlimted || Allowed || Fair Usage Policy || $459 HKD || [http://1010.hkcsl.com/jsp/service_plans/1010_next_g/4g_mobile_broadband/charges_and_subscription.jsp Source]
|-
|1010|| $88 Power Prepaid SIM|| 3G HSDPA 7.2Mbps || Unlimited Local Data ($8/hour,$28/day,$78/7-days) || Allowed || Fair Usage Policy || $88 HKD || Validity:180 days, Validity will be extended for 180 days from the date of recharge upon every recharge of $50 or above. [http://one2free.hkcsl.com/jsp/prepaid_sim_card/power_prepaid_sim/card_features/card_features.jsp?language=eng Source]
|-
|1010|| $180 Power Prepaid SIM|| 3G HSDPA 7.2Mbps || Unlimited Local Data ($8/hour,$28/day,$78/7-days) || Allowed || Fair Usage Policy || $180 HKD || Validity:180 days, Validity will be extended for 180 days from the date of recharge upon every recharge of $50 or above. [http://one2free.hkcsl.com/jsp/prepaid_sim_card/power_prepaid_sim/card_features/card_features.jsp?language=eng Source]
|-
|1010|| HK$1000 Prepaid SIM|| 3G HSDPA 7.2Mbps || Unlimited Local Data ($8/hour,$28/day,$78/7-days) || Allowed || Fair Usage Policy || $1000 HKD || Validity:730 days, Validity will be extended for 730 days from the date of recharge upon every recharge of $50 or above. [http://one2free.hkcsl.com/jsp/prepaid_sim_card/hk1000_prepaid_sim/card_features/card_features.jsp?language=eng Source]
|-
|one2free|| $157 SIM Connection 12/24-month Capped Plan|| 3G HSDPA || 400M || Allowed || Fair Usage Policy || $249 HKD || Thereafter $0.01/KB charge capped at $298 a month. Includes 1800 min voice and unlimited intra sms [http://one2free.hkcsl.com/jsp/service_charges/one2free_service_plan/one2free_service_plan.jsp Source]
|-
|one2free|| $217 SIM Connection 12/24-month Capped Plan|| 3G HSDPA || 800M || Allowed || Fair Usage Policy || $299 HKD || Thereafter $0.01/KB charge capped at $298 a month. Includes 2500 min voice and unlimited intra sms [http://one2free.hkcsl.com/jsp/service_charges/one2free_service_plan/one2free_service_plan.jsp Source]
|-
|one2free|| $267 SIM Connection 12/24-month Capped Plan|| 3G HSDPA || Unlimted || Allowed || Fair Usage Policy || $189 HKD || Includes 3900 min voice, unlimited intra sms, 10 international SMS, Real-time News, Finance, Entertainment Channels, Music Pre-listening &amp; 360 Mobile TV minutes. [http://one2free.hkcsl.com/jsp/service_charges/one2free_service_plan/one2free_service_plan.jsp Source]
|-
|one2free|| $157 Handset Connection Plan|| 3G HSDPA || 200M || Allowed || Fair Usage Policy || $157 HKD || Thereafter $0.01/KB charge capped at $298 a month. Includes 1600 min voice, and unlimited intra sms [http://1010.hkcsl.com/jsp/service_plans/service_rate_plans/service_rate_plans.jsp Source]
|-
|one2free|| $217 Handset Connection Plan|| 3G HSDPA || 400M || Allowed || Fair Usage Policy || $217 HKD || Thereafter $0.01/KB charge capped at $298 a month. Includes 1800 min voice and unlimited intra sms [http://1010.hkcsl.com/jsp/service_plans/service_rate_plans/service_rate_plans.jsp Source]
|-
|one2free|| $267 Handset Connection Plan|| 3G HSDPA || 800M || Allowed || Fair Usage Policy || $267 HKD || Thereafter $0.01/KB charge capped at $298 a month. Includes 2500 min voice, unlimited intra sms, 200 MMS, 10 international SMS,Real-time News, Finance, Entertainment Channels, Music Pre-listening &amp; 360 Mobile TV minutes. [http://1010.hkcsl.com/jsp/service_plans/service_rate_plans/service_rate_plans.jsp Source]
|-
|one2free|| $419 Handset Connection Plan|| 3G HSDPA || Unlimted || Allowed || Fair Usage Policy || $419 HKD || Includes 3900 min voice, unlimited intra sms, 200 MMS, 10 international SMS,Real-time News, Finance, Entertainment Channels, Music Pre-listening &amp; 360 Mobile TV minutes. [http://1010.hkcsl.com/jsp/service_plans/service_rate_plans/service_rate_plans.jsp Source]
|-
|one2free|| $187 Xtreme Mobile Broadband Service Plan|| 4G lte + DC-HSPA+ 100Mbps || 1GB || Allowed || Fair Usage Policy || $187 HKD || $99/GB (Thereafter Charge capped at $498 a month). [http://one2free.hkcsl.com/jsp/service_charges/next_g_service_plan/4g_mobile_broadband/charges_and_subscription.jsp Source]
|-
|one2free|| $287 Xtreme Mobile Broadband Service Plan|| 4G lte + DC-HSPA+ 100Mbps || 5GB || Allowed || Fair Usage Policy || $287 HKD || $99/GB (Thereafter Charge capped at $498 a month). [http://one2free.hkcsl.com/jsp/service_charges/next_g_service_plan/4g_mobile_broadband/charges_and_subscription.jsp Source]
|-
|one2free|| $387 Xtreme Mobile Broadband Service Plan|| 4G lte + DC-HSPA+ 100Mbps || Unlimted || Allowed || Fair Usage Policy || $387 HKD || [http://one2free.hkcsl.com/jsp/service_charges/next_g_service_plan/4g_mobile_broadband/charges_and_subscription.jsp Source]
|-
|one2free|| $87 Xcite Mobile Broadband Service Plan|| 4G lte + DC-HSPA+ 7Mbps || 1GB || Allowed || Fair Usage Policy || $187 HKD || $99/GB (Thereafter Charge capped at $498 a month). [http://one2free.hkcsl.com/jsp/service_charges/next_g_service_plan/4g_mobile_broadband/charges_and_subscription.jsp Source]
|-
|one2free|| $187 Xcite Mobile Broadband Service Plan|| 4G lte + DC-HSPA+ 7Mbps || 5GB || Allowed || Fair Usage Policy || $287 HKD || $99/GB (Thereafter Charge capped at $498 a month). [http://one2free.hkcsl.com/jsp/service_charges/next_g_service_plan/4g_mobile_broadband/charges_and_subscription.jsp Source]
|-
|one2free|| $287 Xcite Mobile Broadband Service Plan|| 4G lte + DC-HSPA+ 7Mbps || Unlimted || Allowed || Fair Usage Policy || $387 HKD || [http://one2free.hkcsl.com/jsp/service_charges/next_g_service_plan/4g_mobile_broadband/charges_and_subscription.jsp Source]
|-
|one2free|| $48 Local Prepaid SIM|| 3G HSDPA 7.2Mbps || Unlimited ($8/hour,$28/day,$78/7-days) || Allowed || Fair Usage Policy || $48 HKD || Validity:180 days, Validity will be extended for 180 days from the date of recharge upon every recharge of $50 or above. [http://one2free.hkcsl.com/jsp/prepaid_sim_card/o2f_local_prepaid_sim/card_features/card_features.jsp?language=eng Source]
|-
|one2free|| $78 Local Prepaid SIM|| 3G HSDPA 7.2Mbps || Unlimited ($8/hour,$28/day,$78/7-days) || Allowed || Fair Usage Policy || $78 HKD || Validity:180 days, Validity will be extended for 180 days from the date of recharge upon every recharge of $50 or above. [http://one2free.hkcsl.com/jsp/prepaid_sim_card/o2f_local_prepaid_sim/card_features/card_features.jsp?language=eng Source]
|-
|one2free|| $60 IDD &amp; Roaming Prepaid SIM|| 3G HSDPA 7.2Mbps || Unlimited Local Data ($8/hour,$28/day,$78/7-days) || Allowed || Fair Usage Policy || $60 HKD || Validity:180 days, Validity will be extended for 180 days from the date of recharge upon every recharge of $50 or above. [http://one2free.hkcsl.com/jsp/prepaid_sim_card/o2f_local_prepaid_sim/card_features/card_features.jsp?language=eng Source]
|-
|one2free|| $98 IDD &amp; Roaming Prepaid SIM|| 3G HSDPA 7.2Mbps || Unlimited Local Data ($8/hour,$28/day,$78/7-days) || Allowed || Fair Usage Policy || $98 HKD || Validity:180 days, Validity will be extended for 180 days from the date of recharge upon every recharge of $50 or above. [http://one2free.hkcsl.com/jsp/prepaid_sim_card/o2f_local_prepaid_sim/card_features/card_features.jsp?language=eng Source]
|-
|NewWorld Mobility|| $60 EDGE speed Plan|| 2G EDGE + 3G 250kbps || Unlimted || Allowed || Fair Usage Policy || $60 HKD || Mobile Service Licence and Administration Fee of $12/month applies. Includes 1700 min voice, 60 MMS, unlimited intra sms  and to 1010 &amp; one2free user.[http://www.nwmobile.com/sc_webcat/ecat/cms_view.php?lang=2&amp;web_id=10006 Source in Chinese]
|-
|NewWorld Mobility|| $48 Super Value Talk Stored-value Card|| 3G HSDPA 7.2Mbps || Unlimited ($8/hour,$28/day,$78/7-days) || Allowed || Fair Usage Policy || $48 HKD || License Fee : $2/30 days. Validity:180 days, Validity will be extended for 180 days from the date of recharge upon every recharge of $50 or above.[http://www.nwmobility.com/prepaid/eng/svtcard.html Source]
|-
|NewWorld Mobility|| $100 Super Value Talk Stored-value Card|| 3G HSDPA 7.2Mbps || Unlimited ($8/hour,$28/day,$78/7-days) || Allowed || Fair Usage Policy || $100 HKD || License Fee : $2/30 days. Validity:180 days, Validity will be extended for 180 days from the date of recharge upon every recharge of $50 or above.[http://www.nwmobility.com/prepaid/eng/svtcard.html Source]
|-
|NewWorld Mobility|| $20 Save-more IDD &amp; Roaming Stored-value Card|| 3G HSDPA 7.2Mbps || Unlimited ($8/hour,$28/day,$78/7-days) || Allowed || Fair Usage Policy || $20 HKD || License Fee : $2/30 days. Validity:180 days, Validity will be extended for 180 days from the date of recharge upon every recharge of $50 or above.[http://www.nwmobility.com/prepaid/eng/savemore.html Source]
|-
|NewWorld Mobility|| $60 Full Function IDD &amp; Roaming Stored-value Card|| 3G HSDPA 7.2Mbps || Unlimited ($8/hour,$28/day,$78/7-days) || Allowed || Fair Usage Policy || $60 HKD || License Fee : $2/30 days. Validity:180 days, Validity will be extended for 180 days from the date of recharge upon every recharge of $50 or above.[http://www.nwmobility.com/prepaid/eng/ffiddcard.html Source]
|-
|NewWorld Mobility|| $100 Full Function IDD &amp; Roaming Stored-value Card|| 3G HSDPA 7.2Mbps || Unlimited ($8/hour,$28/day,$78/7-days) || Allowed || Fair Usage Policy || $100 HKD || License Fee : $2/30 days. Validity:180 days, Validity will be extended for 180 days from the date of recharge upon every recharge of $50 or above.[http://www.nwmobility.com/prepaid/eng/ffiddcard.html Source]
|-
|NewWorld Mobility|| $28 New World Mobility Stored-value Card|| 3G HSDPA 7.2Mbps || Unlimited ($8/hour,$28/day,$78/7-days) || Allowed || Fair Usage Policy || $28 HKD || Validity:180 days, Validity will be extended for 180 days from the date of recharge upon every recharge of $50 or above.[http://www.nwmobility.com/prepaid/eng/nwmcard.html Source]
|-
|3HK|| $98 Smart Unlimited Monthly Plan (SIM Subscription)|| 3G HSDPA || 150M $10/30MB, thereafter data charge capped at $290/month || Allowed || None || $98 HKD || Includes 1000 min basic voice, 200 min Heart-to-Heart voice. [http://www.three.com.hk/website/appmanager/three/home?_nfpb=true&amp;pageid=211101&amp;_pageLabel=P200470391219567710594&amp;lang=eng Source]
|-
|3HK|| $148 Smart Unlimited Monthly Plan (SIM Subscription)|| 3G HSDPA || 400M $10/30MB, thereafter data charge capped at $290/month || Allowed || None || $148 HKD || Includes 1000 min basic voice, 200 min Heart-to-Heart voice. [http://www.three.com.hk/website/appmanager/three/home?_nfpb=true&amp;pageid=211101&amp;_pageLabel=P200470391219567710594&amp;lang=eng Source]
|-
|3HK|| $198 Smart Unlimited Monthly Plan (SIM Subscription)|| 3G HSDPA || Unlimited || Allowed || None || $198 HKD || Includes 1000 min basic voice, 600 min Heart-to-Heart voice. [http://www.three.com.hk/website/appmanager/three/home?_nfpb=true&amp;pageid=211101&amp;_pageLabel=P200470391219567710594&amp;lang=eng Source]
|-
|3HK|| $238 Smart Unlimited Monthly Plan (SIM Subscription)|| 3G HSDPA || Unlimited || Allowed || None || $238 HKD || Includes 1500 min basic voice, 1300 min Heart-to-Heart voice. [http://www.three.com.hk/website/appmanager/three/home?_nfpb=true&amp;pageid=211101&amp;_pageLabel=P200470391219567710594&amp;lang=eng Source]
|-
|3HK|| $338 Smart Unlimited Monthly Plan (SIM Subscription)|| 3G HSDPA || Unlimited || Allowed || None || $338 HKD || Includes 2000 min basic voice, 1900 min Heart-to-Heart voice. [http://www.three.com.hk/website/appmanager/three/home?_nfpb=true&amp;pageid=211101&amp;_pageLabel=P200470391219567710594&amp;lang=eng Source]
|-
|3HK|| $148 Smart Unlimited Monthly Plan (Handset Subscription)|| 3G HSDPA || 200M, $10/30MB, thereafter data charge capped at $290/month || Allowed || None || $148 HKD || Includes 1000 min basic voice, 200 min Heart-to-Heart voice. [http://www.three.com.hk/website/appmanager/three/home?_nfpb=true&amp;pageid=211101&amp;_pageLabel=P200470391219567710594&amp;lang=eng Source]
|-
|3HK|| $198 Smart Unlimited Monthly Plan (Handset Subscription)|| 3G HSDPA || 300MB, $10/30MB, thereafter data charge capped at $290/month || Allowed || None || $198 HKD || Includes 1000 min basic voice, 500 min Heart-to-Heart voice. [http://www.three.com.hk/website/appmanager/three/home?_nfpb=true&amp;pageid=211101&amp;_pageLabel=P200470391219567710594&amp;lang=eng Source]
|-
|3HK|| $298 Smart Unlimited Monthly Plan (Handset Subscription)|| 3G HSDPA || 800MB, $10/30MB, thereafter data charge capped at $290/month || Allowed || None || $298 HKD || Includes 1500 min basic voice, 1000 min Heart-to-Heart voice. [http://www.three.com.hk/website/appmanager/three/home?_nfpb=true&amp;pageid=211101&amp;_pageLabel=P200470391219567710594&amp;lang=eng Source]
|-
|3HK|| $398 Smart Unlimited Monthly Plan (Handset Subscription)|| 3G HSDPA || Unlimited || Allowed || None || $398 HKD || Includes 2000 min basic voice, 1500 min Heart-to-Heart voice. [http://www.three.com.hk/website/appmanager/three/home?_nfpb=true&amp;pageid=211101&amp;_pageLabel=P200470391219567710594&amp;lang=eng Source]
|-
|3HK|| $98 3G Local Data Plans|| 3G HSDPA || 250MB (thereafter $0.01/KB) || Allowed || None || $98 HKD || [http://www.three.com.hk/website/appmanager/three/home?_nfpb=true&amp;pageid=431001&amp;_pageLabel=P200470391219567710594&amp;lang=eng Source]
|-
|3HK|| $158 3G Local Data Plans|| 3G HSDPA || Unlimited || Allowed || None || $158 HKD || [http://www.three.com.hk/website/appmanager/three/home?_nfpb=true&amp;pageid=431001&amp;_pageLabel=P200470391219567710594&amp;lang=eng Source]
|-
|3HK|| $198 Data Prepaid SIM Card|| 3G HSDPA || $18/month (50MB,thereafter $2/MB, Maximum $18/day and $168/month)  || Allowed || None || $198 HKD || [http://www.three.com.hk/website/appmanager/three/home?_nfpb=true&amp;pageid=431001&amp;_pageLabel=P200470391219567710594&amp;lang=eng Source]
|-
|Smartone-vodafone|| $168 Integrated Voice &amp; Data Monthly Plan (SIM Subscription)|| 3G HSDPA || 400MB || Allowed (Count as additional data usage $0.06/KB, maximum charge $898/month) || None || $168 HKD || Includes 1000 min basic and 400 min intra voice and unlimited intra sms. [http://www.smartone-vodafone.com/jsp/mobile/prices/monthly_plans/english/internetplans.jsp Source]
|-
|Smartone-vodafone|| $238 Integrated Voice &amp; Data Monthly Plan (SIM Subscription)|| 3G HSDPA || Unlimited || Allowed (Count as additional data usage $0.06/KB, maximum charge $898/month) || None || $238 HKD || Includes 1000 min basic and 600 min intra voice and unlimited intra sms. [http://www.smartone-vodafone.com/jsp/mobile/prices/monthly_plans/english/internetplans.jsp Source]
|-
|Smartone-vodafone|| $298 Integrated Voice &amp; Data Monthly Plan (SIM Subscription)|| 3G HSDPA || Unlimited || Allowed &amp; Free  || None || $298 HKD || Includes 1400 min basic and 600 min intra voice and unlimited intra sms. [http://www.smartone-vodafone.com/jsp/mobile/prices/monthly_plans/english/internetplans.jsp Source]
|-
|Smartone-vodafone|| $138 Integrated Voice &amp; Data Monthly Plan (Handset Subscription)|| 3G HSDPA || 150MB (Additional data usage charge (if applicable) is $10/5MB, usage is rounded up to the nearest 5MB, and maximum charge is $298 per month.)|| Allowed (Count as additional data usage $0.06/KB, maximum charge $898/month)  || None || $138 HKD || Includes 800 min basic and 500 min intra voice and unlimited intra sms. [http://www.smartone-vodafone.com/jsp/mobile/prices/monthly_plans/english/internetplans.jsp Source]
|-
|Smartone-vodafone|| $198 Integrated Voice &amp; Data Monthly Plan (Handset Subscription)|| 3G HSDPA || 250MB (Additional data usage charge (if applicable) is $10/5MB, usage is rounded up to the nearest 5MB, and maximum charge is $298 per month.)|| Allowed (Count as additional data usage $0.06/KB, maximum charge $898/month) || None || $198 HKD || Includes 1000 min basic and 700 min intra voice and unlimited intra sms. [http://www.smartone-vodafone.com/jsp/mobile/prices/monthly_plans/english/internetplans.jsp Source]
|-
|Smartone-vodafone|| $298 Integrated Voice &amp; Data Monthly Plan (Handset Subscription)|| 3G HSDPA || 500MB (Additional data usage charge (if applicable) is $10/5MB, usage is rounded up to the nearest 5MB, and maximum charge is $298 per month.) || Allowed (Count as additional data usage $0.06/KB, maximum charge $898/month) || None || $298 HKD || Includes 1200 min basic and 700 min intra voice and unlimited intra sms. [http://www.smartone-vodafone.com/jsp/mobile/prices/monthly_plans/english/internetplans.jsp Source]
|-
|Smartone-vodafone|| $348 Integrated Voice &amp; Data Monthly Plan (Handset Subscription)|| 3G HSDPA || 500MB (Additional data usage charge (if applicable) is $10/5MB, usage is rounded up to the nearest 5MB, and maximum charge is $298 per month.)|| Allowed (Count as additional data usage $0.06/KB, maximum charge $898/month) || None || $348 HKD || Includes 1500 min basic and 1000 min intra voice and unlimited intra sms. [http://www.smartone-vodafone.com/jsp/mobile/prices/monthly_plans/english/internetplans.jsp Source]
|-
|Smartone-vodafone|| $398 Integrated Voice &amp; Data Monthly Plan (Handset Subscription)|| 3G HSDPA || Unlimited || Allowed (Count as additional data usage $0.06/KB, maximum charge $898/month) || None || $398 HKD || Includes 1800 min basic and 1500 min intra voice and unlimited intra sms. [http://www.smartone-vodafone.com/jsp/mobile/prices/monthly_plans/english/internetplans.jsp Source]
|-
|Smartone-vodafone|| $50 Online50 Plan|| 3G HSDPA || 50MB (Additional data usage charge (if applicable) is $15/15MB, maximum charge is $298 per month.)|| Allowed (Count as additional data usage $0.06/KB, maximum charge $898/month) || None || $50 HKD || This service plan is subject to a 12-month contract. [http://www.smartone-vodafone.com/jsp/mobile/prices/GPRS_price_plan/english/3g_packet.jsp Source]
|-
|Smartone-vodafone|| $48 Store-Value Sim card || 3G HSDPA || $8/hr, unlimited data usage till 23:59 upon spending $24 in a day|| Allowed || None || $48 HKD || Card is valid for 180 days from the activation date. Each time you recharge your card, its validity is reset for a further 180 days to retain the mobile number.[http://www.smartone-vodafone.com/jsp/mobile/prices/store_valued_SIM/english/voicedata_servicescharges.jsp Source]
|-
|PCCW|| $149 Web &amp; Talk Tariff Plan|| 3G HSDPA || 100M || Allowed || Fair Usage Policy || $149 HKD || Includes 1200 min normal+Intra voice, intra-network video call 60 min, intra-network MMS 60 min and unlimited intra sms [http://www2.pccwmobile.com/portal/gen/WEB/home/Services_And_Pricing/tariff/Web-Talk-tariff-plan.jsp?lang=en&amp;treeMenu=treeMenu_mainMenuID0&amp;subMenu=subMenu_level_1ID0_1&amp;parent=parent_level_1ID0_1&amp;cid=level_2ID0_1_2 Source]
|-
|PCCW|| $199 Web &amp; Talk Tariff Plan|| 3G HSDPA || 200M || Allowed || Fair Usage Policy || $199 HKD || Includes 1600 min normal+Intra voice, intra-network video call 100 min, intra-network MMS 100 min and unlimited intra sms [http://www2.pccwmobile.com/portal/gen/WEB/home/Services_And_Pricing/tariff/Web-Talk-tariff-plan.jsp?lang=en&amp;treeMenu=treeMenu_mainMenuID0&amp;subMenu=subMenu_level_1ID0_1&amp;parent=parent_level_1ID0_1&amp;cid=level_2ID0_1_2 Source]
|-
|PCCW|| $299 Web &amp; Talk Tariff Plan|| 3G HSDPA || 500M || Allowed || Fair Usage Policy || $299 HKD || Includes 1800 min normal+Intra voice, intra-network video call 200 min, intra-network MMS 200 min and unlimited intra sms [http://www2.pccwmobile.com/portal/gen/WEB/home/Services_And_Pricing/tariff/Web-Talk-tariff-plan.jsp?lang=en&amp;treeMenu=treeMenu_mainMenuID0&amp;subMenu=subMenu_level_1ID0_1&amp;parent=parent_level_1ID0_1&amp;cid=level_2ID0_1_2 Source]
|-
|PCCW|| $399 Web &amp; Talk Tariff Plan|| 3G HSDPA || Unlimited || Allowed || Fair Usage Policy || $399 HKD || Includes 3000 min normal+Intra voice, intra-network video call 300 min, intra-network MMS 300 min and unlimited intra sms [http://www2.pccwmobile.com/portal/gen/WEB/home/Services_And_Pricing/tariff/Web-Talk-tariff-plan.jsp?lang=en&amp;treeMenu=treeMenu_mainMenuID0&amp;subMenu=subMenu_level_1ID0_1&amp;parent=parent_level_1ID0_1&amp;cid=level_2ID0_1_2 Source]
|-
|PCCW|| $478 Web &amp; Talk Tariff Plan|| 3G HSDPA || Unlimited || Allowed || Fair Usage Policy || $478 HKD || Includes 8000 min normal+Intra voice, intra-network video call 400 min, intra-network MMS 400 min and unlimited intra sms [http://www2.pccwmobile.com/portal/gen/WEB/home/Services_And_Pricing/tariff/Web-Talk-tariff-plan.jsp?lang=en&amp;treeMenu=treeMenu_mainMenuID0&amp;subMenu=subMenu_level_1ID0_1&amp;parent=parent_level_1ID0_1&amp;cid=level_2ID0_1_2 Source]
|-
|PCCW|| $499 Web &amp; Talk Tariff Plan|| 3G HSDPA || Unlimited || Allowed || Fair Usage Policy || $499 HKD || Includes 4000 min normal+Intra voice, intra-network video call 400 min, intra-network MMS 400 min, China HK 1-Card-2-Number Service 200 min and unlimited intra sms [http://www2.pccwmobile.com/portal/gen/WEB/home/Services_And_Pricing/tariff/Web-Talk-tariff-plan.jsp?lang=en&amp;treeMenu=treeMenu_mainMenuID0&amp;subMenu=subMenu_level_1ID0_1&amp;parent=parent_level_1ID0_1&amp;cid=level_2ID0_1_2 Source]
|-
|PCCW|| $50 HSPA SIM mobile data plan|| 3G HSDPA || Unlimited usage for 5 days. Thereafter charge: $18/day. Maximum: $288 || Allowed || Fair Usage Policy || $50 HKD || over 9,000 hotspots with PCCW Wi-Fi 100M network, Contract period 12 months and unlimited intra sms [http://www2.pccwmobile.com/portal/gen/WEB/home/Services_And_Pricing/tariff/Web-Talk-tariff-plan.jsp?lang=en&amp;treeMenu=treeMenu_mainMenuID0&amp;subMenu=subMenu_level_1ID0_1&amp;parent=parent_level_1ID0_1&amp;cid=level_2ID0_1_2 Source]
|-
|PCCW|| $198 Unlimited HSPA SIM mobile data plan|| 3G HSDPA 3.6Mbps downlink 2Mbps uplink || Unlimited || Allowed || Fair Usage Policy || $198 HKD || over 9,000 hotspots with PCCW Wi-Fi 100M network, Contract period 12 months and unlimited intra sms [http://www2.pccwmobile.com/portal/gen/WEB/home/Services_And_Pricing/tariff/Web-Talk-tariff-plan.jsp?lang=en&amp;treeMenu=treeMenu_mainMenuID0&amp;subMenu=subMenu_level_1ID0_1&amp;parent=parent_level_1ID0_1&amp;cid=level_2ID0_1_2 Source]
|-
|PCCW|| $328 Ultra-fast Unlimited HSPA SIM mobile data plan|| 3G HSDPA 14.4Mbps downlink 5.76Mbps uplink || Unlimited || Allowed || Fair Usage Policy || $328 HKD || over 9,000 hotspots with PCCW Wi-Fi 100M network, Contract period 24 months and unlimited intra sms [http://www2.pccwmobile.com/portal/gen/WEB/home/Services_And_Pricing/tariff/Web-Talk-tariff-plan.jsp?lang=en&amp;treeMenu=treeMenu_mainMenuID0&amp;subMenu=subMenu_level_1ID0_1&amp;parent=parent_level_1ID0_1&amp;cid=level_2ID0_1_2 Source]
|-
|PCCW|| $198 Mobile Broadband Rechargeable SIM Card || 3G HSDPA 21Mbps || Unlimited ($10/15 minutes, $68/day, $598/month)|| Allowed || Fair Usage Policy || $198 HKD || Valid period 180 days [http://www2.pccwmobile.com/portal/gen/WEB/home/Services_And_Pricing/3G_Rechargeable_SIM_Card/Mobile_Broadband_Rechargeable_SIM_Card_Services.jsp?lang=en&amp;treeMenu=treeMenu_mainMenuID0&amp;subMenu=subMenu_level_1ID0_3&amp;parent=parent_level_1ID0_3&amp;cid=level_2ID0_3_2]
|-
|China Mobile|| $98 Data Service Plan|| GPRS/EDGE/Wifi || Unlimited || Allowed || None || $98 HKD || Includes 1200 min voice and unlimited intra sms [http://www.hk.chinamobile.com/p_tariff_plan_data_en.jsp Source]
|}

== Israel == 

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|Orange|| - || up to 2.8Mb/s(HSDPA) || 5GB/month || Allowed || None || 80NIS (€15) || IP address allocated from private range (192.168.*.*)
|}

== Italy ==

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|3 Italia|| Naviga3 || 3600/384(?) || 50MB / day || Not allowed, but works || none || 9€ || There's a weekly option for 3€/week at 100MB / day. That makes up for circa 12€ / month.
|-
|3 Italia|| SuperInternet || ? || 3GB/Month only with tre, 60c/MB with TIM roaming || ? || none || 5€ || It provides additional 10 hours of skype calls + unlimited chat messages with xseries service (does not work with maemo)
|-
| TIM|| MAXXI Internet 10 || 4Mb/s DL 2Mb/s UL (?) || 50 MB/day || ? || none || 10€ || Only for prepaid, users with subscription have 1GB/month. It also provides 1000 IMs (with provided application and not working with maemo)
|-
| TIM|| MAXXI Internet start || 4Mb/s DL 2Mb/s UL (?) || 100 MB/week || ? || none || 8€ (2€/week) ||
|-
| TIM|| MAXXI Internet Week || 4Mb/s DL 2Mb/s UL (?) || 100 MB/week || ? || none || 12€ (3€/week) || It also provides 1000 IMs (with provided application  not working with maemo) 
|-
| TIM|| MAXXI Internet per iPhone || 4Mb/s DL 2Mb/s UL (?) || 50 MB/day || ? || none || 10€ || Only for prepaid, users with subscription have 1GB/month. It also provides 1000 IMs (with provided application and not working with maemo)
|-
| Wind|| Internet No Stop || HSDPA || Unlimited || not prohibited, works || After 1GB bandwidth drops to 32kbps - can be renewed (see also Wind Restart)|| 9€ ||
|-
| Wind|| Mega Unlimited || HSDPA || Unlimited || not prohibited, works || After 10GB bandwidth drops to 32kbps - can be renewed (see also Wind Restart) || 20€ ||
|}

== Japan ==

See http://talk.maemo.org/showpost.php?p=342438&amp;postcount=8

== Lithuania ==

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|Omnitel|| Connect Optimum || 1 Mbps || 3 GB  || Yes || none || 11.60 € ||
|-
|Omnitel|| Connect Premium || 2 Mbps || 7 Gb (day time), unlimited (night time) || Yes || none || 20 € ||
|-
|Omnitel|| Connect Pay&amp;Go day || 0.5 Mbps || 100 MB || Yes || none || 1.1 € /day || 0.01 € / additional MB
|-
|Omnitel|| Connect Pay&amp;Go week || 0.5 Mbps || 1 GB || Yes || none || 4.3 € / week || 0.01 € / additional MB
|-
|Omnitel|| Connect Pay&amp;Go month || 0.5 Mbps || 3 GB || Yes || none || 11.29 € ||  0.01 € / additional MB
|}

== Netherlands ==

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|XS4All (KPN) || Go || 768/384 || 1GB || Yes || none || 20 EUR (excl. VAT) || 25% cut for existing customers of XS4All, USB/PCMIA/Express, data only, no voice/SMS [http://www.xs4all.nl/allediensten/mobiel/deabonnementen.php source (in Dutch)]
|-
|XS4All (KPN) || Start || 1800/384 || 2GB || Yes || none || 33,57 EUR (excl. VAT) || 25% cut for existing customers of XS4All, USB/PCMIA/Express, no voice/SMS [http://www.xs4all.nl/allediensten/mobiel/deabonnementen.php source (in Dutch)]
|-
|XS4All (KPN) || Lite || 3600/1400 || FUP || Yes || none || 50 EUR (excl. VAT) || 25% cut for existing customers of XS4All, USB/PCMIA/Express, no voice/SMS [http://www.xs4all.nl/allediensten/mobiel/deabonnementen.php source (in Dutch)]
|-
|XS4All (KPN) || Basic || 7200/1400 || FUP || Yes || none || 80 EUR (excl. VAT) || 25% cut for existing customers of XS4All, USB, data only, no voice/SMS [http://www.xs4all.nl/allediensten/mobiel/deabonnementen.php source (in Dutch)]
|-
|Vodafone || Vodafone Zorgeloos Internet Blox || 3600/384 || FUP || Not allowed but works || Skype known to be blocked, VoiP not allowed || 10 EUR || Able to put on or off a monthly basis. FUP: not allowed to use regularly 10x more than average usage [http://www.vodafone.nl/prive/abonnementen/vodafone_blox/blox_voor_multimedia/ source (in Dutch)]
|-
|Vodafone || Vodafone Zorgeloos Internet Totaal Blox || 3600/384 || FUP || Not allowed but works || VoiP allowed || 15 or 35 EUR || Able to put on or off a monthly basis. Price depends on the voice plan. FUP: not allowed to use regularly 10x more than average usage [http://www.vodafone.nl/prive/abonnementen/vodafone_blox/blox_voor_multimedia/totaal source (in Dutch)]
|-
|KPN || Snel Mobiel Internet Start || 7200/1400 || 400MB || Yes || ? || 20 EUR (for business excl. VAT) || 0,12 EUR for each extra MB in NL; [http://www.kpn.com/mobiele-telefonie/internet-mobiel/mobiel-internet-laptop/Buitenland-Nieuw.htm in EU and out of EU tarrifs]
|-
|KPN || Snel Mobiel Internet Comfort || 7200/1400 || 1GB || Yes || ? || 40 EUR (for business excl. VAT) || 0,12 EUR for each extra MB in NL; [http://www.kpn.com/mobiele-telefonie/internet-mobiel/mobiel-internet-laptop/Buitenland-Nieuw.htm in EU and out of EU tarrifs]
|-
|KPN || Snel Mobiel Internet Pro || 7200/1400 || 2,5GB || Yes || ? || 60 EUR (for business excl. VAT) || 0,12 EUR for each extra MB in NL; [http://www.kpn.com/mobiele-telefonie/internet-mobiel/mobiel-internet-laptop/Buitenland-Nieuw.htm in EU and out of EU tarrifs]
|-
|KPN || Snel Mobiel Internet Onbeperkt || 7200/1400 || [http://www.kpn.com/mobiele-telefonie/internet-mobiel/mobiel-internet-laptop/Fair-use-policy-KPN-Mobiel-Internet-Laptop.htm FUP] || Yes || ? || 80 EUR (for business excl. VAT) || No extra for more MB in NL; [http://www.kpn.com/mobiele-telefonie/internet-mobiel/mobiel-internet-laptop/Buitenland-Nieuw.htm in EU and out of EU tarrifs]
|-
|KPN || Zeker Mobiel Internet Start || 768/384 || 400 MB || Yes || ? || 22,50 EUR || No extra MB; static cost; [http://www.kpn.com/mobiele-telefonie/internet-mobiel/mobiel-internet-laptop/Buitenland-Nieuw.htm in EU and out of EU tarrifs]
|-
|KPN || Zeker Mobiel Internet Comfort || 1500/384 || 1 GB || Yes || ? || 35 EUR || No extra MB; static cost; [http://www.kpn.com/mobiele-telefonie/internet-mobiel/mobiel-internet-laptop/Buitenland-Nieuw.htm in EU and out of EU tarrifs]
|-
|KPN || Zeker Mobiel Internet Pro || 2000/384 || 2,5 GB || Yes || ? || 50 EUR || No extra MB; static cost; [http://www.kpn.com/mobiele-telefonie/internet-mobiel/mobiel-internet-laptop/Buitenland-Nieuw.htm in EU and out of EU tarrifs]
|-
|T-Mobile || web’n’walk Standard || 384/64 || Unlimited || Yes, but no support || ? || 10 EUR || [http://www.t-mobile.nl/persoonlijk/htdocs/page/productinformatie/mobiel-internet-telefoon/standaard.aspx source]
|-
|T-Mobile || web’n’walk Plus || 1024/384 || FUP (after 2 GB 384/64) || Yes, but no support || ? || 15 EUR || [http://www.t-mobile.nl/persoonlijk/htdocs/page/productinformatie/mobiel-internet-telefoon/plus.aspx source]
|}

== Portugal ==

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|TMN|| internetnotelemóvel || 3G+ (7.2Mb) || 250 MB  || Yes || none || 7.62 € || [http://www.tmn.pt/portal/site/tmn/menuitem.de21baa5d0875ba241a377107368e84b/?vgnextoid=ed8a4d0a2c95b110VgnVCM1000005401650aRCRD&amp;vgnextchannel=e297a791bdfe6010VgnVCM1000005401650aRCRD&amp;vgnextfmt=default7 source]
|-
|Vodafone|| Aditivo internet movel || 3G+ (7.2Mb) || 250MB || Yes || none || 10 € || [https://loja.vodafone.pt/tarifarios/aditivos/# source]
|-
|Optimus|| Internet da Optimus || 3G+ (7.2Mb) || 300MB || Yes || none || 10 € || [http://optimus.pt/Particulares/Servicos/tarifariosinternet source]
|}

== Romania ==

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|Vodafone|| ? || 3G || 10MB || ? || ? || 2,38€ || additional 0,0023€/10KB
|}

== Serbia ==

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|Vip Mobile|| Postpaid 350 || 3G || 350 MB || yes || ? || 14€ || +350 SMS/MMS + 350 minutes
|-
|Vip Mobile|| Postpaid 900 || 3G || 900 MB || yes || ? || 28€ || +900 SMS/MMS + 900 minutes
|-
|Vip Mobile|| Postpaid 1800 || 3G || 1800 MB || yes || ? || 42€ || +1800 SMS/MMS + 1800 minutes
|-
|Telenor|| Mini || 3G || 300 MB || yes || Inbound ports blocked || 8€ || 
|-
|Telenor|| Ista cena || 3G || 5 GB || yes || Inbound ports blocked || 15€ || 
|-
|Telenor|| Veliki || 3G || 10 GB || yes || Inbound ports blocked || 27€ || 
|-
|Telenor|| Prepaid Internet || 3G || 3 GB || yes || Inbound ports blocked || 40€ || prepaid, with SIM and USB modem
|}

== Slovenia ==

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|Si.Mobil|| Mobilni Internet Unlimited || 3.5G || &quot;Fair use&quot; 20GB || ? || Inbound ports blocked || 19€ || 0.08/SMS, after hitting fair use limit limited to 64kb/s and asked to modify your behaviour to reduce traffic use. If not complying disconnection.
|-
|Si.Mobil|| Mobilni Internet Freestyle || 3.5G || 10GB || ? || Inbound ports blocked || 30€ || 0.08/SMS 0.00004/kB NETBOOK only package
|-
|Si.Mobil|| Mobilni Internet Osnovni || 3.5G || 100MB || ? || Inbound ports blocked || 6€ || 0.08/SMS 0.00004/kB
|-
|Si.Mobil|| Mobilni Internet Plus || 3.5G || 10GB || ? || Inbound ports blocked || 15€ || 0.08/SMS 0.00004/kB
|-
|Si.Mobil|| Opcija Mobilni Internet Start || 3.5G || 20MB || ? || Inbound ports blocked || 3€ || 0.0004/kB Addin to voice
|-
|Si.Mobil|| Opcija Mobilni Internet Osnovni || 3.5G || 200MB  || ? || Inbound ports blocked || 8€ || 0.00007/kB Addin to voice
|-
|Si.Mobil|| Opcija Mobilni Internet Napredni || 3.5G || 2GB || ? || Inbound ports blocked || 12€ || 0.00007/kB Addin to voice
|-
|Si.Mobil|| Opcija Mobilni Internet Plus || 3.5G || 20GB || ? || Inbound ports blocked || 18€ || 0.00007/kB Addin to voice
|}

== Spain == 

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Type !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|Vodafone|| Tarifa Plana de Internet en el móvil 12€ || Contract || 3.6Mbps (HSDPA) || 150MB/unlimited || Not allowed || VoIP || 12€ (+VAT) || Speed goes down to 64kbps after reaching traffic limit.
|-
|Vodafone|| Tarifa Plana de Internet Smartphone 15€ || Contract || 7.2Mbps (HSPA) || 300MB/unlimited || Not allowed || VoIP || 15€ (+VAT) || Speed goes down to 128kbps after reaching traffic limit.
|-
|Vodafone|| Tarifa Plana de Internet Smartphone 19.90€ || Contract || 7.2Mbps (HSPA) || 500MB/unlimited || Allowed || VoIP || 19.90€ (+VAT) || Speed goes down to 128kbps after reaching traffic limit.
|-
|Vodafone|| Tarifa Plana de Internet Smartphone 39€ || Contract || 7.2Mbps (HSPA) || 1GB/unlimited || Allowed || - || 39€ (+VAT) || Speed goes down to 128kbps after reaching traffic limit.
|-
|Movistar|| Tarifa Plana Internet Móvil || || 1Mbps/384Kbps || 100MB/unlimited || Not Allowed || VoIP, P2P || 10€ || The speed goes down to 64kbps/16Kbps after reaching traffic limit.
|-
|Movistar|| Tarifa Plana Internet Móvil Plus || || 3Mbps/1,4Mbps || 200MB/unlimited || Not Allowed || VoIP, P2P || 15€ || The speed goes down to 384 Kbps/64 Kbps after reaching traffic limit. Includes access to WiFi zones from Telefonica
|-
|Movistar|| Tarifa Plana Internet Móvil Premium || || 3Mbps/1,4Mbps || 1GB/unlimited || Not Allowed || VoIP, P2P || 25€ || The speed goes down to 384 Kbps/64 Kbps after reaching traffic limit. Includes access to WiFi zones from Telefonica
|-
|Simyo|| Tarifa Móvil Diaria || Prepaid or Contract || 3.6Mbps (HSDPA) || 500MB/unlimited || Allowed || None || 5€ + 0.09€/MB || Up to 5€ for the first 500MB. After that you have to pay 0.09€/MB
|-
|Simyo|| Tarifa Plana || Prepaid or Contract || 3.6Mbps (HSDPA) || 5GB/unlimited || Allowed || None || 25€ || Speed goes down to 128kbps after reaching 5GB
|}

== Sweden ==

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|Tele2|| Surf Small || Up to 6Mbit || 200MB || Yes(?)|| ? || 29 SEK (~2.8€) ||  Add in to a voice plan. 1 month commitment. 1.69 SEK/MB (~0.16€/MB) after 200MB.
|-
|Tele2|| Surf Medium || Up to 6Mbit || 1GB || Yes(?)|| ? || 89 SEK (~8.6€) || Add in to a voice plan. 1 month commitment. 64Kbit/s after 1GB. Additional 5GB is 99 SEK (~9.6€).
|-
|Tele2|| Surf Large || Up to 6Mbit || 5GB || Yes(?)|| ? || 159 SEK (~15.4€) || Add in to a voice plan. 1 month commitment. 64Kbit/s after 5GB. Additional 5GB is 99 SEK (~9.6€). 
|-
|Telenor|| Fri Mobilsurf || 350kbit || Unlimited || Yes(?)|| ? || 59 SEK (~5.7€) || Add in to a voice plan. No commitment(?).
|-
|Telenor|| Fri Mobilsurf Turbo || Up to 6Mbit || Unlimited || Yes(?)|| ? || 119 SEK (~11.6€) || Add in to a voice plan. No commitment(?). Includes free access to wifi hotspots (The Cloud)
|-
|3|| 3Mobilsurf Bas || Up to 0.384 Mbit || 1GB || Yes(?)|| ? || 49 SEK (~4.8€) || Add in to a voice plan. 30 days commitment.
|-
|3|| 3Mobilsurf Plus || Up to 6Mbit || 5GB || Yes(?)|| ? || 89 SEK (~8.6€) || Add in to a voice plan. 30 days commitment.
|-
|3|| 3Mobilsurf Max || Up to 10Mbit || 10GB || Yes(?)|| ? || 149 SEK (~14.5€) || Add in to a voice plan. 30 days commitment.
|-
|Telia|| Mobilsurf Alltid || Up to 6 Mbit || 0.5GB || Yes(?)|| VoIP, P2P  || 69 SEK (~6.7€) || Add in to a voice plan. No commitment(?). 57 kbit/s after 0.5GB
|-
|Telia|| Mobilsurf Extra || Up to 6Mbit || 5GB || Yes(?)|| ? || 199 SEK (~19.3€) || Add in to a voice plan. No commitment(?). 57 kbit/s after 5GB. Includes free access to wifi hotspots (Telias surfzoner)
|-
|}

== Switzerland==

Plans and options to use change quickly. Table below gives an estimate based on currently available plans (September 2009). Best thing is to verify on the ISP homepage.

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|Orange|| Surf || 3G || 1GB || ? || ? || 10€ || As an option for the Optima  [http://www1.orange.ch/residential_products_price-plans_overview.html plans]
|-
|Sunrise|| Surf || 3G || 250MB || ? || ? || 5€ || As an option on existing [https://www.sunrise.ch/privatkunden/angebote/mobile.htm plans].
|-
|Swisscom|| Surf || 3G || 100MB || ? || ? || 12€ || Asn an option on existing plans. It might however be much cheaper to get a special surf plan. Check the various very different [http://www.swisscom.ch/res/mobile/tarife/index.htm plans and options]
|}


== United Kingdom ==

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Type !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|Andrews &amp; Arnold || [http://aaisp.net.uk/telecoms-mobile.html Voice &amp; Data 3G SIM card] || Contract (1 month minimum term) || Up to 7.2Mbps || No prepaid data bundle or limit || Y || None || 2.5p + VAT / MB || Uses 3's network.  No GSM fallback. Service currently in beta.
|-
|Asda Mobile|| Pay as you go || Prepay || ? || None || Allowed but no support || ? || 20p per megabyte || Uses Vodafone network
|-
|T-Mobile|| Web'n'walk || Contract || ? || 1GB || Not allowed but works || ? || £Included || Contracts over £25
|-
|T-Mobile|| Web'n'walk plus || Contract || ? || 3GB || Allowed || VOIP || Add £7.50|| ?
|-
|T-Mobile|| Web'n'walk max|| Contract || ? || 10GB || Allowed || None || Add £12.50|| ?
|-
|T-Mobile|| Web'n'walk Daily || Prepay or Contract || ? || 1GB || Not allowed but works || ? || £1 || Only pay for days used
|-
|Three|| [http://www.three.co.uk/Internet_Services/Great_value_Add_ons/Internet_Email?content_aid=1214305768121 Internet 10 Add-on] || Contract || Up to 7.2Mbps || 10MB || Y || ? || £2.50 || £2/MB above allowance
|-
|Three|| Internet Max Add-on|| Contract || Up to 7.2Mbps || &quot;Unlimited&quot;, 1GB fair use limit || Y || ? || £5.00 || ?
|-
|Three|| [http://www.three.co.uk/personal/products_services_/mobile_broadband_/price_plans.omp Mobile Broadband Lite 1GB]  || Contract || Up to 7.2Mbps || 1GB || Y || ? || £10.00 || £0.10/MB above allowance
|-
|Three|| Mobile Broadband 5GB || Contract || Up to 7.2Mbps || 5GB || Y || ? || £15.00 || £0.10/MB above allowance
|-
|Three|| Mobile Broadband 15GB || Contract || Up to 7.2Mbps || 15GB || Y || ? || £30.00 || £0.10/MB above allowance
|-
|Three|| Broadband Lite || Prepay || Up to 7.2Mbps || 1GB || Y || ? || £10.00 || £1.00/MB above allowance
|-
|Three|| Broadband Plus || Prepay || Up to 7.2Mbps || 3GB || Y || ? || £15.00 || £1.00/MB above allowance
|-
|Three|| Broadband Max || Prepay || Up to 7.2Mbps || 7GB || Y || ? || £25.00 || £1.00/MB above allowance
|-
|Three|| Internet Daily || Prepay || Up to 7.2Mbps || 120MB || ? || ? || £0.50 (valid for one day) || £1.00/MB above allowance.  150MB free allowance with every top-up, valid for 90 days.
|-
|Three|| Internet Weekly || Prepay || Up to 7.2Mbps || 500 MB || ? || ? || £2.50 (valid for 7 days) || £1.00/MB above allowance.  150MB free allowance with every top-up, valid for 90 days.
|-
|Three|| Internet Monthly || Prepay || Up to 7.2Mbps || 2GB || ? || ? || £5.00 || £1.00/MB above allowance.  150MB free allowance with every top-up, valid for 90 days.
|-
|Virgin|| Pay As You Go || Prepay or Direct Debit || ?|| 25MB/day || charges extra || VOIP/P2P charged extra || 30p/day || Only pay for days used. £2.00/MB above allowance
|-
|Virgin|| Pay As You Go || Prepay or Direct Debit || ?|| 1GB || charges extra || VOIP/P2P charged extra || £5.00 || £2.00/MB above allowance
|-
|Vodafone|| Mobile Internet - Value Pack || Contract || ? || 500MB/month (FUP) || Not allowed afaict (charges extra) || No VoIP/P2P (extra charges apply) || £5 || Tied with existing contract
|-
|Vodafone|| Mobile Internet - Flexi Pack || Contract || ? || 500MB/month (FUP) || Not allowed afaict (charges extra) || No VoIP/P2P (extra charges apply) || £7.50 || Tied with existing contract. Free to opt out.
|-
|Vodafone|| Mobile Broadband via your phone || Contract || ? || 5GB/month (FUP) || ? || No restrictions mentioned || £20/month || Tied with existing contract.
|-
|Vodafone|| [http://online.vodafone.co.uk/dispatch/Portal/appmanager/vodafone/wrp?_nfpb=true&amp;_pageLabel=template10&amp;pageID=MB_0012 TopUp and Go] || Prepay || [http://online.vodafone.co.uk/dispatch/Portal/appmanager/vodafone/wrp?_nfpb=true&amp;_pageLabel=template10&amp;pageID=MB_0018 &quot;up to 7.2Mbps&quot; ] || 1GB / £15.00 || Y || Parental controls by default (can be disabled on request) ||  £15.00 (valid indefinitely until used up) || Usage credit does not expire, but need to connect once every 180 days to keep the SIM active.  Have to buy with USB dongle initially (£39 including 1GB credit).  SIM will work in a phone, but voice calls are barred.  No international roaming.
|}

== United States ==

{| class=&quot;wikitable sortable&quot; style=&quot;width: 100%&quot;
! ISP !! Plan name !! Speed !! Data limit !! Tethering !! Restrictions !! Price / month !! Misc
|-
|AT&amp;T|| Data Unlimited || GPRS/EDGE/3G/HSDPA || &quot;Unlimited&quot; (5GB) || Not allowed but works || ? || $60 || No contract [https://www.wireless.att.com/businesscenter/popups/general/available-data-rate-plans.jsp#pda?wtLinkName=Smartphone&amp;wtLinkLoc=BDY Source]
|-
|T-Mobile|| T-Mobile Total Internet || GPRS/EDGE/UMTS/WiFi || &quot;Unlimited&quot; || Allowed (but no support) || ? || 39.99$ || Data only plan, 2 yr. contract, T-Mobile hotspots [http://www.t-mobile.com/shop/plans/cell-phone-plans-detail.aspx?tp=tb1&amp;rateplan=T-Mobile-Total-Internet Source]
|-
|T-Mobile|| T-Mobile Total Internet + Messages || GPRS/EDGE/UMTS/WiFi || &quot;Unlimited&quot; || Allowed (but no support) || ? || 19.95$ || Add-on to voice plan, no contract needed, T-Mobile hotspots [http://www.t-mobile.com/shop/addons/services/information.aspx?oscid=16110380-8E6A-42BF-B6DD-4806D8032CD0&amp;tp=Svc_Tab_DataEmlSvcs&amp;tsp=Svc_Sub_Smartphones Source]
|-
|T-Mobile|| T-MobileWeb || GPRS/EDGE/UMTS|| &quot;Unlimited&quot; || Allowed (but no support) || Port blocking, Phone must be a T-Mobile branded device || 9.99$ || Add-on to voice plan, no contract needed [http://www.t-mobile.com/shop/addons/Services/TzonesGroup.aspx?osid=28037040-D2E8-4498-88D8-5B71D32E9BBF&amp;tp=Svc_Tab_TZones&amp;tsp=Svc_Sub_WebApps Source]
|-
|Virgin Mobile|| Broadband2Go || 1xRTT/EVDO || 100MB || ? ... USB Dongle || Expires after 10 days || $10 || No Contract, See [http://web.virginmobileusa.com/broadbandPlans Plans]
|-
|Virgin Mobile|| Broadband2Go || 1xRTT/EVDO || 250MB || ? ... USB Dongle || Expires after 30 days || $20 || No Contract, See [http://web.virginmobileusa.com/broadbandPlans Plans]
|-
|Virgin Mobile|| Broadband2Go || 1xRTT/EVDO || 600MB || ? ... USB Dongle || Expires after 30 days || $40 || No Contract, See [http://web.virginmobileusa.com/broadbandPlans Plans]
|-
|Virgin Mobile|| Broadband2Go || 1xRTT/EVDO || 1GB || ? ... USB Dongle || Expires after 30 days || $60 || No Contract, See [http://web.virginmobileusa.com/broadbandPlans Plans]
|-
|Verizon Wireless|| V Cast || 1xRTT/EVDO || &quot;Unlimited&quot; (AKA 5GB) || Not allowed but works || See [http://b2b.vzw.com/broadband/bba_terms.html Terms of Service] || $15 || Uses &quot;unlimited&quot; data regardless of plan (rather than minutes)
|-
|Verizon Wireless|| [http://b2b.vzw.com/productsservices/wirelessinternet/broadbandaccessconnect.html BroadbandAccess Connect] || 1xRTT/EVDO || &quot;Unlimited&quot; (AKA 5GB) || Yes || See [http://b2b.vzw.com/broadband/bba_terms.html Terms of Service] || $60 || Tethering data plans for PDA phones $15/$30
|-}

[[Category:Connectivity]]
[[Category:Cellular]]
[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>DbusScripts</title>
    <id>3766</id>
    <revision>
      <id>50580</id>
      <timestamp>2012-10-31T08:02:37Z</timestamp>
      <contributor>
        <ip>79.120.63.226</ip>
      </contributor>
      <comment>/* Running dbus-scripts on the session bus */</comment>
      <text xml:space="preserve">[http://www.cobb.uk.net/770/#dbus-scripts dbus-scripts] is a daemon that can execute a command when various actions occurs on D-Bus. Some D-Bus signals you can watch for are :

* keyboard slide
* battery full, low or empty
* connection or disconnection from a network
* sms or phone call arriving
* desktop started (ie. after boot is completed)
* bnep or usb network started or stopped (use to configure or run firewalls etc)

You can find dbus-scripts in [[extras-devel]] (so be careful, your [[Nokia N900|N900]] could crash).

There's some documentation in the [http://www.cobb.uk.net/770/dbus-scripts-example dbus-scripts config file]

There's also a configurator program [http://maemo.org/packages/view/dbus-scripts-settings/ dbus-scripts-settings] written by Matan Ziv-Av. You can use dbus-scripts-settings settings to configure dbus-scripts or just to browse. 
Thanks to Graham and Matan.

== Configuration ==

=== Basic configuration ===

Configuration files for dbus-scripts are in &lt;code&gt;/etc/dbus-scripts.d&lt;/code&gt; and you can find some documentation in &lt;code&gt;/etc/dbus-scripts.d/dbus-scripts-example&lt;/code&gt;:

  # Example of dbus-scripts control file
  #
  # Each line of these files represents a filter to call a script.
  # Tokens are separated by white space.
  # First token on line is the script to execute.
  # Subsequent tokens are filters to match arguments from dbus message.
  # Filters are matched like shell wildcards (using fnmatch(3)).
  # If a filter is specified (even if it is *), the corresponding argument
  # must be present in order to get a match.
  #
  # First argument is sender
  # Second argument is destination
  # For SIGNAL and METHOD_CALL, third argument is interface
  # For SIGNAL and METHOD_CALL, fourth argument is member
  # Other arguments depend on the message
  #
  # Example: to act on WLAN interface state changes use:
  #/some/script * * com.nokia.icd status_changed * WLAN_INFRA
  # In /some/script, $5 will be the interface name and $7 the new state (IDLE, CONNECTED, etc.)

* this rule will match all wlan network events

  /some/script * * com.nokia.icd status_changed * WLAN_INFRA

* this one will match all events for wlan network id of 91f493fb-7c89-4fc6-ac2c-b822923dde45, it's mine

You can find the wlan id with the command
 gconftool-2 -R /system/osso/connectivity/IAP

  /some/script * * com.nokia.icd status_changed 91f493fb-7c89-4fc6-ac2c-b822923dde45 WLAN_INFRA

* this one will match only the CONNECTED (wifi works) dbus event for my wlan network :

  /some/script * * com.nokia.icd status_changed 91f493fb-7c89-4fc6-ac2c-b822923dde45 WLAN_INFRA CONNECTED

=== dbus-scripts-settings ===

There's also a configurator program [http://maemo.org/packages/view/dbus-scripts-settings/dbus-scripts-settings] written by Matan Ziv-Av. You can use dbus-scripts-settings settings to configure dbus-scripts or just to browse. 

:As of 2010-07-16, dbus-scripts-settings is missing a dependency on package 'gnome-python-dev'. If the program crashes and at command line you get the error 

&lt;source lang=&quot;text&quot;&gt;
Traceback (most recent call last):
  File &quot;/usr/bin/dbus-scripts-settings&quot;, line 5, in &lt;module&gt;
    from gnome import gconf
ImportError: No module named gnome
&lt;/source&gt;

:then the fix is to install gnome-python-dev. [[User:magick777|magick777]] 14:09, 16 July 2010 (UTC)

=== dbus-scripts daemon options ===

==== Running dbus-scripts on the session bus ====

By default, the dbus-scripts daemon listens on the system message bus, which reports system events but not those from the user session. If you want to access events such as an application being launched, you'll need to configure the daemon to listen to the session bus as well. You'll probably want to run a second instance of dbus-scripts without breaking the one on the system bus.

Ignore &lt;code&gt;/etc/init.d/dbus-scripts&lt;/code&gt; and &lt;code&gt;/etc/default/dbus-scripts&lt;/code&gt; as these would seem to have been superseded by upstart. Make a copy of &lt;code&gt;/etc/event.d/dbus-scripts&lt;/code&gt; as &lt;code&gt;/etc/event.d/dbus-scripts-session&lt;/code&gt; and edit it so your &lt;code&gt;/etc/event.d/dbus-scripts-session&lt;/code&gt; will look like this:

&lt;source lang=&quot;text&quot;&gt;
Nokia-N900:~# cat /etc/event.d/dbus-scripts 
description &quot;dbus-scripts-session&quot;
author &quot;Graham Cobb &lt;g+770@cobb.uk.net&gt;&quot;

start on started hildon-desktop
#stop on stopping hildon-desktop
stop on starting shutdown

console none

pre-start script
        /usr/bin/run-standalone.sh /usr/sbin/waitdbus session
end script

exec run-standalone.sh /usr/sbin/dbus-scripts --session

respawn
&lt;/source&gt;

and you can then configure dbus-scripts with statements such as

&lt;source lang=&quot;text&quot;&gt;
#:Browser launched
/usr/bin/onbrowser * * com.nokia.HildonDesktop.AppMgr LaunchApplication browser
&lt;/source&gt;

to react to, in this example, the browser being started.

==== The incredibly useful --debug flag ====

The --debug flag is essential for looking at what's going on if you plan to write your own scripts. Run &quot;dbus-scripts --debug&quot; in a terminal and then perform whatever actions on the phone, to see all the events you can process using dbus-scripts. To see events on the session bus, make that &quot;dbus-scripts --debug --session&quot; (but you will need to run it through &lt;code&gt;run-standalone.sh&lt;/code&gt;). For example:

&lt;pre&gt;
sudo dbus-scripts --debug
sudo /usr/bin/run-standalone.sh dbus-scripts --debug --session
&lt;/pre&gt;

== Usage, tips and tricks ==

dbus-scripts does not reread edited configuration automatically. After editing (or creating/removing) a configuration file, you need to restart it.

On N900 it can easily be done with
 killall dbus-scripts
since it is then restarted by upstart. On 770/N800/N810, use
 /etc/init.d/dbus-scripts restart

The package dbus-scripts-settings contains a script &lt;code&gt;logit.sh&lt;/code&gt; which simply logs its parameters to the file &lt;code&gt;/media/mmc1/logit.log&lt;/code&gt;. If you want to find out if some event generates D-Bus events, and what configuration line to use for it, create a file in &lt;code&gt;/etc/dbus-scripts.d/&lt;/code&gt; containing:

 /usr/bin/logit.sh *

And generate the event. Reading the log file will show you all the D-Bus activity. 

== Limitations ==

For the moment dbus-scripts will only pass simple D-Bus type arguments like string, boolean and int32 et uint32 to your scripts. You will miss variant, array and all other complex type arguments. So if you want to play, for example, with text of received SMS, you can't yet use dbus-scripts as the text is an array of bytes.

== Some scripts ==

Here are some things you can do, if you have others, add them. Those examples aren't rocket science and I've stolen some ideas from here and there on web.

=== when connect on my wifi home network register only SIP and turn on noisy ring ===

When I come back home I want my SIP call redirected to my mobile phone and the phone ring turn on and when I leave I want my ring turn off so I wait for D-Bus event on my home wifi network and register/unregister SIP and turn on/off the ring.

I use this dbus-scripts config file :

'''/etc/dbus-scripts.d/athome'''
  /home/user/bin/athome * * com.nokia.icd status_changed * WLAN_INFRA

and this script to register/unregister SIP and turn on/off the ring.

'''/home/user/bin/athome'''
&lt;source lang=&quot;python&quot;&gt;
#!/usr/bin/python

import dbus
import sys
import re
import telepathy

wifi = '91f493fb-7c89-4fc6-ac2c-b822923dde45'

# /home/user/bin/w32g * * com.nokia.icd status_changed * WLAN_INFRA *

wifi_id,state = sys.argv[5],sys.argv[7]

# if we are not on the good wifi network we do nothing and exit
if wifi and not re.search(wifi_id, wifi, re.IGNORECASE):
   sys.exit(0)

bus = dbus.SessionBus()
account = bus.get_object('org.freedesktop.Telepathy.AccountManager',
                         '/org/freedesktop/Telepathy/Account/sofiasip/sip/_309517129090')
profile = bus.get_object('com.nokia.profiled', '/com/nokia/profiled')

def change_state(prof, presence_const, presence_text):
   profile.set_profile(prof, dbus_interface='com.nokia.profiled')
   account.Set('org.freedesktop.Telepathy.Account', 'RequestedPresence', \
               dbus.Struct(( dbus.UInt32( presence_const) ,  presence_text, &quot;&quot;), signature='uss'),
               dbus_interface='org.freedesktop.DBus.Properties')
   

if state == &quot;CONNECTED&quot;:
   print &quot;available&quot;
   change_state('general', telepathy.constants.CONNECTION_PRESENCE_TYPE_AVAILABLE, 'available')
elif state == &quot;IDLE&quot;:
   print &quot;offline&quot;
   change_state('silent', telepathy.constants.CONNECTION_PRESENCE_TYPE_OFFLINE, 'offline')
else:
   sys.exit(&quot;Usage: %s (start|stop)&quot; %  sys.argv[0])
&lt;/source&gt;

=== turn to 2g when connected to wifi network ===

There's already an [[Fcron#Auto_2G_with_WiFi|alternative method with fcron]]. Here is a D-Bus method :

'''/etc/dbus-scripts.d/w32g'''
 /home/user/bin/w32g.py * * com.nokia.icd status_changed * WLAN_INFRA

Installation documentation is at the beginning of the script and configuration documentation is at the beginning of the configuration file:

'''/home/user/bin/w32g.py'''
&lt;source lang=&quot;python&quot;&gt;
#!/usr/bin/python

import sys
import os
import ConfigParser
import re

# You need to install dbus-scripts (BE CAREFUL, it's a devel package)
# 
# as root you need to create a file /etc/sudoers.d/w32g
# with this line :
#   user ALL = NOPASSWD: /bin/ping
# and run the command update-sudoers because only root can use ping
# 
# always as root and you need to create another file
# /etc/dbus-scripts/w32g with the following line : 
#
#   /home/user/bin/w32g * * com.nokia.icd status_changed * WLAN_INFRA *
#
# and copy this script in /home/user/bin/w32g

conf_file = '/home/user/.w32g.conf'

config = { 'message_on_idle': '3G cellular mode set',
  'message_on_connected': '2G (GSM) cellular mode set',
  'connection_test': 'sudo /bin/ping -c 1 www.google.com',
  'change_on_idle': 'true',
  'change_to_dual': 'true',
  'wifi': ''
}

config_parser = ConfigParser.SafeConfigParser()

try:
    config_parser.read(conf_file)
    for item in config_parser.items('w32g'):
        config[ item[0] ] = item[1]
except ConfigParser.NoSectionError:
    pass

def to_bool(string):
    if re.search('true', string, re.IGNORECASE):
        return True

config['change_on_idle'] = to_bool(config['change_on_idle'])
config['change_to_dual'] = to_bool(config['change_to_dual'])

wifi_id,state = sys.argv[5],sys.argv[7]

# if we are not on the good wifi network we do nothing and exit
if config['wifi'] and not re.search(wifi_id, config['wifi'], re.IGNORECASE):
    sys.exit(0)

dbus_wifi = &quot;dbus-send --system --type=method_call --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology&quot;;

dbus_notif = &quot;dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint&quot;;

if state == 'CONNECTED':
    # we verified that the connection works
    if config['connection_test']:
        ret = os.system(config['connection_test']);
    else:
        ret = 0
    if ret == 0:
        os.system(dbus_wifi + &quot; byte:1&quot;);
        os.system(dbus_notif + &quot; string:'&quot; + config['message_on_connected'] + &quot;'&quot;)

elif state == 'IDLE' and config['change_on_idle']:
    dual = &quot;2&quot;
    if config['change_to_dual']: dual = &quot;0&quot;
    print dual
    os.system(dbus_wifi + &quot; byte:&quot; + dual);
    os.system(dbus_notif + &quot; string:'&quot; + config['message_on_idle'] + &quot;'&quot;)
&lt;/source&gt;

'''/home/user/.w32g.conf'''
&lt;pre&gt;
[w32g]

### the comment reflect the default configuration
### true is true (case insensitive), everything else is false

### the command used to test the wifi connection before downgrading to 2g
### if you don't want to do test just delete after =
# connection_test = sudo /bin/ping -c 1 www.google.com

### notification message when going to 3g
# message_on_idle = 3G cellular mode set
### notification message when going to 2g
# message_on_connected = 2G (GSM) cellular mode set

### shall we go back to 3g when wlan disconnect ?
#### if you want to have false just delete after =
# change_on_idle = true
### shall we go back to dual or 3g ?
# change_to_dual = true

### if you want go to 2g only when connected to some wlan you can add their wlan id here
### you can find the wlan id using the command 
### gconftool-2 -R /system/osso/connectivity/IAP
### For example :
### wifi = 91f493fb-7c89-4fc6-ac2c-b822923dde45 9ee5dd55-9a32-4ee9-9131-c464ad31d907
# wifi =
&lt;/pre&gt;

=== Enable tethering when connecting to Bluetooth PAN ===

Tethering is a bit of a hassle in Maemo. Most people refer to JoikuSpot, which is definitely the most comfortable solution, but it's not free. So, why not use builtin (or easily installable) functionality to use the N900 as a modem?

For this script to work, you need to have at least bluetooth-dun and iptables installed. Possibly other packages too, please test and correct.

'''/etc/dbus-scripts.d/tethering'''
 /usr/bin/tethering.sh * * org.freedesktop.Hal.Manager DeviceAdded
 /usr/bin/tethering.sh * * org.freedesktop.Hal.Manager DeviceRemoved

'''/usr/bin/tethering.sh'''
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
#
# /usr/bin/tethering.sh
#
# Enable tethering on USB network and Bluetooth PAN.
#
# Note that the INETDEV must be up and running when this script is
# started, or forwarding will not be enabled.
# Having tethering on multiple devices concurrently is possible,
# but forwarding will be disabled once the first device disconnetcs.
# A better check is necessary.
#
# Put this into /etc/dbus-scripts/tethering :
# /usr/bin/tethering.sh * * org.freedesktop.Hal.Manager DeviceAdded
# /usr/bin/tethering.sh * * org.freedesktop.Hal.Manager DeviceRemoved
#
# dbus-scripts doesn't give us the event path, so we have to use a more
# convoluted method of getting the network interface.
#

EVENT=&quot;$4&quot;
UDI=&quot;$5&quot;
HALDEV=&quot;$(echo $UDI | sed 's#.*/\([0-9a-zA-Z_]*\)#\1#')&quot;
LOG=&quot;/tmp/tethering.log&quot;
INETDEV=&quot;gprs0&quot;
RUNFILE=&quot;/var/run/tethering.$HALDEV.pid&quot;
IFACEFILE=&quot;/var/run/tethering.$HALDEV.iface&quot;

if [ &quot;$EVENT&quot; = &quot;DeviceAdded&quot; ]; then
	IFACE=$(hal-get-property --udi $UDI --key net.interface)
	case $IFACE in
		bnep0 )
			IF_ADDRESS=192.168.254.254
			IF_RANGE=192.168.254.1,192.168.254.254
		;;
	 	usb0 )
			IF_ADDRESS=192.168.253.254
			IF_RANGE=192.168.253.1,192.168.253.254
		;;
		* )
			exit 0
		;;
	esac

	echo &quot;$(date) Enabling tethering on interface $IFACE&quot; &gt;&gt; $LOG
	echo &quot;$IFACE&quot; &gt; $IFACEFILE
	ifconfig &quot;$IFACE&quot; &quot;$IF_ADDRESS&quot;
	/sbin/modprobe ipt_MASQUERADE
	/usr/sbin/iptables -t nat -A POSTROUTING -o $INETDEV -j MASQUERADE
	start-stop-daemon -S -p &quot;$RUNFILE&quot; -m -b -x /usr/sbin/dnsmasq -- -k -I lo -i &quot;$IFACE&quot; -a $IF_ADDRESS -z -F $IF_RANGE,3600
	echo 1 &gt; /proc/sys/net/ipv4/conf/$IFACE/forwarding
	echo 1 &gt; /proc/sys/net/ipv4/conf/$INETDEV/forwarding
fi

if [ &quot;$EVENT&quot; = &quot;DeviceRemoved&quot; ]; then
	if [ ! -f &quot;$IFACEFILE&quot; ]; then
		exit 0
	fi
	IFACE=&quot;$(cat $IFACEFILE)&quot;
	rm &quot;$IFACEFILE&quot;
	echo &quot;$(date) Disabling tethering on device $IFACE&quot; &gt;&gt; $LOG
	echo 0 &gt; /proc/sys/net/ipv4/conf/$INETDEV/forwarding
	start-stop-daemon -K -p &quot;$RUNFILE&quot; -x /usr/sbin/dnsmasq
	/usr/sbin/iptables -t nat -D POSTROUTING -o $INETDEV -j MASQUERADE
fi

exit 0
&lt;/source&gt;

=== Set MSN (pecan) to stay offline when disconnected ===

Since MSN allows only one client connection at a time, signing into MSN from the N900 disconnects it on my desktop PC, and vice versa. 

Pidgin on my desktop PC handles this gracefully by disabling the account until I manually connect it. msn-pecan, on the other hand, helpfully auto-reconnects on its own authority and fails to respect my disabling auto-connect via mc-tool; if the requested status remains as &quot;available&quot;, it reconnects, and that disconnects Pidgin on my desktop again. Grr. 

You need an instance of dbus-scripts '''on the session bus''' for this one (see above), then you can do the following:

==== /etc/dbus-scripts.d/dbus-scripts-settings ====
&lt;source lang=&quot;text&quot;&gt;
#:MSN (pecan) disconnected (session bus)
/usr/bin/offmsn * * org.freedesktop.DBus ReleaseName org.freedesktop.Telepathy.Connection.pecan.msn_pecan.*
&lt;/source&gt;
==== /usr/bin/offmsn ====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
# If we got disconnected from MSN (eg by signing in via Pidgin on desktop PC) then set it offline until further notice
mc-tool list | grep &quot;pecan/msn&quot; | awk {'print &quot;mc-tool request &quot;$1&quot; offline&quot;'} | sh
&lt;/source&gt;

=== Adjust Google Voice settings based on network location ===

I use this script to enable and disable various phones so that my office phone doesn't auto-answer when I'm not there, and my home phone doesn't bother my family when I'm at the office.

To run this script, you will need to install [http://code.google.com/p/pygooglevoice/ pygooglevoice].  Depending on the version of pygooglevoice you have, you may also have to change LOGIN in /usr/local/lib/python2.5/site-packages/googlevoice/settings.py to read:
&lt;source lang=&quot;text&quot;&gt;
LOGIN = 'https://accounts.google.com/ServiceLogin?service=grandcentral&amp;passive=1209600&amp;continue=https://www.google.com/voice&amp;followup=https://www.google.com/voice&amp;ltmpl=open'
&lt;/source&gt;
as per [http://code.google.com/p/pygooglevoice/issues/detail?id=58#c24 this bug report].

Then stick this script in /home/user/bin/gvlocation and make it executable:

&lt;source lang=&quot;python&quot;&gt;
#!/usr/bin/python
 
import ConfigParser
import dbus
from googlevoice import Voice
from googlevoice.util import LoginError
import os
import re
import signal
import sys
import time
import traceback
from urllib2 import URLError
 
# You need to install dbus-scripts (BE CAREFUL, it's a devel package)
# 
# Update Google Voice settings based on location changes.
#

conf_files = ('/home/user/.gvlocation.conf',)

# Default configuration
config = \
    {
    'auth':
	{
	'google_id': None,
	'google_pw': None,
	},
    'configuration':
	{
	# Turn on to log activity
	'debug': True,
	# Where to log activity
	'log_file': '/home/user/MyDocs/gvl.log',
	# Time limit for giving up on login attempts
	'login_time_limit': 60,
	# Time limit for giving up on individual operations
	'operation_time_limit': 30,
	# Maximum number of login attempts
	'login_limit': 5,
	# Sleep time between login attempts
	'login_sleep': 10,
	# Whether to use multi-line (persistent) messages for notifications
	'persistent_notify': True,

	# Sections that describe phone numbers (space-separated)
	'phones': '',
	# Sections that describe networks (space-separated)
	'networks': '',
	},
    }

class Alarm(object):
    &quot;&quot;&quot;
    Support alarms.  For simplicity, only one alarm is allowed at a time.
    &quot;&quot;&quot;
    def __init__(self, timeout, purpose):
	&quot;&quot;&quot;
	Create an alarm with a given (floating-point) timeout.
	For convenience, the timeout can be given as a string.
	The purpose is a string used in messages if the alarm expires.
	&quot;&quot;&quot;
	Alarm.__purpose = purpose
	signal.signal(signal.SIGALRM, Alarm.alarm_handler)
	# Python 2 doesn't have setitimer
	#signal.setitimer(signal.ITIMER_REAL, Alarm.__timeout)
	#Alarm.__timeout = float(timeout)
	Alarm.__timeout = int(timeout)
	signal.alarm(Alarm.__timeout)

    class AlarmError(Exception):
	def __init__(self, msg):
	    super(Alarm.AlarmError, self).__init__(msg)

    @staticmethod
    def alarm_handler(signum, frame):
	log('%d-second alarm received: %s\n'
	  % (Alarm.__timeout, Alarm.__purpose))
	raise Alarm.AlarmError(Alarm.__purpose)

    def cancel(self):
	&quot;&quot;&quot;Cancel an alarm.&quot;&quot;&quot;
	# Python 2 doesn't have setitimer
	#signal.setitimer(signal.ITIMER_REAL, 0)
	signal.alarm(0)

def main():
    log('%s\n%s\n' % (time.ctime(), sys.argv))

    parse_config_file()

    #
    # Pick up which network we're in.  We care only about the ID and state.
    #
    network_id, network_type, state = sys.argv[5:8]

    #
    # We only take action when we get connected to a network.
    #
    if state != 'CONNECTED':
	sys.exit(0)

    #
    # Log in to the Google Voice account.
    #
    voice = login_to_voice()
    if voice is None:
	sys.exit(1)

    #
    # Handle connection to the network.
    #
    handle_connection(network_id, voice)

def parse_config_file():
    &quot;&quot;&quot;
    Parse the configuration file(s) and convert them to a global dictionary.
    &quot;&quot;&quot;
    global config
    parser = ConfigParser.SafeConfigParser()
    parser.read(conf_files)
    for section in parser.sections():
	if section not in config:
	    config[section] = {}
	for (name, value) in parser.items(section):
	    config[section][name] = value
    #
    # Ensure that some basic stuff is given
    #
    for var in ('google_id', 'google_pw'):
	if config['auth'][var] is None  or  config['auth'][var] == '':
	    log('Missing required authorization variable %s\n' % var,
	      True, True)
    #
    # Convert the lists of phones and networks.  For phones, we
    # insist on commma as a separator because people often use
    # blanks as a readability character.
    #
    config['configuration']['phones'] = \
      [p.strip() for p in config['configuration']['phones'].split(',') \
	if p.strip() != '']
    config['configuration']['networks'] = \
      [n for n in re.split('[, ]', config['configuration']['networks']) \
	if n != '']
    #
    # Make sure the phone and network sections have a full set of
    # keys; this simplifies the rest of the code.
    #
    for phone in [config[p] for p in config['configuration']['phones']]:
	for phone_key in ('number', 'enable_networks', 'disable_networks',
	  'enable_message', 'disable_message'):
	    if phone_key not in phone:
		phone[phone_key] = ''
	if phone['enable_message'] == '':
	    phone['enable_message'] = phone['number'] + ' enabled.'
	if phone['disable_message'] == '':
	    phone['disable_message'] = phone['number'] + ' disabled.'
    for network in config['configuration']['networks']:
	for network_key in ('network_id', 'enable_phones', 'disable_phones',
	  'active_message'):
	    if network_key not in config[network]:
		config[network][network_key] = ''
	if config[network]['active_message'] == '':
	    config[network]['active_message'] = network + ' activated.'

def login_to_voice():
    &quot;&quot;&quot;
    Login to Google Voice, returning a Voice object or None if failure.
    &quot;&quot;&quot;
    voice = Voice()
    #
    # GPRS connections sometimes get reported before they're
    # actually ready.  So we'll try more than once.  But we won't
    # go forever, because we don't want to totally screw thing up
    # in flaky-connectivity cases.
    #
    logged_in = False
    for trial in range(int(config['configuration']['login_limit'])):
	try:
	    alarm = Alarm(config['configuration']['login_time_limit'],
	      'logging in')
	    voice.login(config['auth']['google_id'],
	      config['auth']['google_pw'])
	    alarm.cancel()
	    log('Logged in on trial #%d\n' % (trial + 1))
	    logged_in = True
	    break
	except LoginError, msg:
	    alarm.cancel()
	    log(&quot;Voice login failure due to LoginError, retrying: %s\n&quot; % msg)
	# Note: Python 2.5 requires this syntax; 2.6+ needs &quot;Exception as msg&quot;
	except Alarm.AlarmError, msg:
	    log(&quot;Voice login failure due to timeout, retrying: %s\n&quot; % msg)
	# Note: Python 2.5 requires this syntax; 2.6+ needs &quot;Exception as msg&quot;
	except URLError, msg:
	    alarm.cancel()
	    log(&quot;Voice login failure due to URLError, retrying: %s\n&quot; % msg)
        # Voice gets an AttributeError when an re search fails; this
        # happens if the HTTP fetch returns incorrect or partial data.
	# Note: Python 2.5 requires this syntax; 2.6+ needs &quot;Exception as msg&quot;
	except AttributeError, msg:
	    alarm.cancel()
	    log(&quot;Voice login failure due to AttributeError, retrying: %s\n&quot;
              % msg)
	# Note: Python 2.5 requires this syntax; 2.6+ needs &quot;Exception as msg&quot;
	except Exception, msg:
	    info = sys.exc_info()
	    alarm.cancel()
	    log(&quot;Surprise exception\n&quot;)
	    log(''.join(traceback.format_exception(*info)))
	except:
	    info = sys.exc_info()
	    alarm.cancel()
	    log(&quot;Random exception\n&quot;)
	    log(''.join(traceback.format_exception(*info)))
	time.sleep(int(config['configuration']['login_sleep']))

    if not logged_in:
	log(&quot;login failed\n&quot;)
	show_notification_dialog(&quot;Couldn't log in to Google Voice&quot;)
	return None

    return voice

log_file = None

def log(string, flush = True, copy_to_stderr = False):
    &quot;&quot;&quot;
    Write a string to the configured log file, opening it if necessary.
    Errors on open are silently suppressed.  If 'flush' is true, flush
    the log information immediately.
    &quot;&quot;&quot;
    global log_file
    if copy_to_stderr  or  sys.stderr.isatty():
	sys.stderr.write(string)
    if not to_boolean(config['configuration']['debug']):
	return
    if log_file is None:
	#
	# Don't die on open failures
	#
	try:
	    log_file = open(config['configuration']['log_file'], 'a')
	    if not sys.stderr.isatty():
		sys.stderr.close()
		sys.stderr = log_file
	except:
	    log_file = None
	    config['configuration']['debug'] = False
    log_file.write(string)
    if flush:
	log_file.flush()

def to_boolean(value):
    if isinstance(value, (int, bool)):
	return value
    value = value.lower()
    if value in ('1', 'yes', 'true', 'on'):
	return True
    elif value in ('0', 'no', 'false', 'off'):
	return False
    else:
	raise ValueError

def handle_connection(network, voice):
    &quot;&quot;&quot;
    Deal with becoming connected to 'network' by manipulating the
    Google Voice account named by 'voice'.  The exact actions to take
    are given by the phone and network configuration parameters.
    &quot;&quot;&quot;
    (enable_phone_numbers, disable_phone_numbers, phone_message) = \
      handle_phones(network, voice)
    (enable_network_numbers, disable_network_numbers, network_message) = \
      handle_networks(network, voice)

    enable_numbers = set(enable_phone_numbers + enable_network_numbers)
    disable_numbers = set(disable_phone_numbers + disable_network_numbers)

    enable_disable_numbers(network, voice, enable_numbers, disable_numbers)

    show_notification_dialog(add_message(phone_message, network_message))

def enable_disable_numbers(network, voice, enable_numbers, disable_numbers):
    &quot;&quot;&quot;
    Enable and disable Google Voice numbers given in the respective lists.
    &quot;&quot;&quot;
    try:
	alarm = Alarm(config['configuration']['operation_time_limit'],
	  'getting phone list failed')
	phones = voice.phones
	alarm.cancel()
    except Alarm.AlarmError, msg:
	log(&quot;failed to get Google phone list\n&quot;)
	show_notification_dialog(&quot;Couldn't get Google phone list&quot;)
	sys.exit(1)
    enable_phones = [x for x in phones for y in enable_numbers \
      if y in x.phoneNumber]
    disable_phones = [x for x in phones for y in disable_numbers \
      if y in x.phoneNumber]
    log('en: %s\ndis: %s\n' % (enable_phones, disable_phones))
    for phone in enable_phones:
	log('enabling %s\n' % phone.phoneNumber)
	try:
	    alarm = Alarm(config['configuration']['operation_time_limit'],
	      'enabling phones')
	    phone.enable()
	    alarm.cancel()
	except Alarm.AlarmError, msg:
	    log(&quot;failed to enable %s\n&quot; % phone.phoneNumber)
    for phone in disable_phones:
	log('disabling %s\n' % phone.phoneNumber)
	try:
	    alarm = Alarm(config['configuration']['operation_time_limit'],
	      'disabling phones')
	    phone.disable()
	    alarm.cancel()
	except Alarm.AlarmError, msg:
	    log(&quot;failed to disable %s: %s\n&quot; % (phone.phoneNumber, msg))

def add_message(original, append):
    if original == '':
	return append
    elif append == '':
	return original
    if to_boolean(config['configuration']['persistent_notify']):
	#
	# Multiline message.
	#
	return original + '\n' + append
    else:
	#
	# Single-line message.
	#
	return original + ' ' + append

def handle_phones(network, voice):
    &quot;&quot;&quot;
    Walk through the phone list, finding entries that ask for action when
    'network' is connected.  Return a triple: a list of numbers to enable,
    a list to disable, and a message to display.
    &quot;&quot;&quot;
    enable = []
    disable = []
    message = ''
    for phone in [config[p] for p in config['configuration']['phones']]:
	action = None
	if network in phone['enable_networks'] \
	  or  phone['enable_networks'] == 'all':
	    action = 'enable'
	elif network in phone['disable_networks'] \
	  or  phone['disable_networks'] == 'all':
	    action = 'disable'
	elif 'other' in phone['enable_networks']:
	    action = 'enable'
	elif 'other' in phone['disable_networks']:
	    action = 'disable'

	if action == 'enable':
	    enable.append(clean_phone(phone['number']))
	    message = add_message(message, phone['enable_message'])
	elif action == 'disable':
	    disable.append(clean_phone(phone['number']))
	    message = add_message(message, phone['disable_message'])
    return (enable, disable, message)

def handle_networks(network, voice):
    &quot;&quot;&quot;
    Walk through the network list, finding entries that ask for action when
    'network' is connected.  Return a triple: a list of numbers to enable,
    a list to disable, and a message to display.
    &quot;&quot;&quot;
    action = None
    enable = []
    disable = []
    message = ''
    found_net = False

    for net in [config[n] for n in config['configuration']['networks']]:
	if network not in net['network_id'] \
	  and  net['network_id'] != 'all':
	    continue
	found_net = True
	message = add_message(message, net['active_message'])
	phones = [p.strip() for p in net['enable_phones'].split(',')]
	while '' in phones:
	    phones.remove('')
	for phone in phones:
	    if phone in config:
		for num in \
		  [p.strip() for p in config[phone]['number'].split(',')]:
		    enable.append(clean_phone(num))
	    else:
		enable.append(clean_phone(phone))
	phones = [p.strip() for p in net['disable_phones'].split(',')]
	while '' in phones:
	    phones.remove('')
	for phone in phones:
	    if phone in config:
		for num in \
		  [p.strip() for p in config[phone]['number'].split(',')]:
		    disable.append(clean_phone(num))
	    else:
		disable.append(clean_phone(phone))

    if not found_net:
	for net in [config[n] for n in config['configuration']['networks']]:
	    if 'other' not in net['network_id']:
		continue
	    message = add_message(message, net['active_message'])
	    phones = [p.strip() for p in net['enable_phones'].split(',')]
	    while '' in phones:
		phones.remove('')
	    for phone in phones:
		if phone in config:
		    for num in \
		      [p.strip() for p in config[phone]['number'].split(',')]:
			enable.append(clean_phone(num))
		else:
		    enable.append(clean_phone(phone))
	    phones = [p.strip() for p in net['disable_phones'].split(',')]
	    while '' in phones:
		phones.remove('')
	    for phone in phones:
		if phone in config:
		    for num in \
		      [p.strip() for p in config[phone]['number'].split(',')]:
			disable.append(clean_phone(num))
		else:
		    disable.append(clean_phone(phone))

    return (enable, disable, message)

def clean_phone(number):
    &quot;&quot;&quot;
    Clean a phone number by removing readability characters.
    &quot;&quot;&quot;
    return re.sub(r'[-\(\) \.]', '', number)

def show_notification_dialog(message):
    bus = dbus.SystemBus()
    iface = dbus.Interface(bus.get_object('org.freedesktop.Notifications',
					  '/org/freedesktop/Notifications'),
					  'org.freedesktop.Notifications')
    if to_boolean(config['configuration']['persistent_notify']):
	iface.SystemNoteDialog(str(message), dbus.UInt32(0), 'Ok')
    else:
	iface.SystemNoteInfoprint(message)

if __name__ == &quot;__main__&quot;:
    main()
&lt;/source&gt;

After installing the script, create /etc/dbus-scripts.d/gvlocation:

&lt;source lang=&quot;text&quot;&gt;
/home/user/bin/gvlocation * * com.nokia.icd status_changed * * CONNECTED
&lt;/source&gt;

Finally, install the following configuration file in /home/user/.gvlocation.conf and edit it to add networks and phone numbers as necessary.  The simplest change is just to add your office, home, and cellphone numbers, and to add your office and home WiFi network IDs.  Much more complex configurations are possible if you need them.

&lt;source lang=&quot;text&quot;&gt;
######################################################################
## CONFIGURATION FILE FOR GVLOCATION
##
## General layout: Sections are introduced by [name].  Within a section,
## the variable = value notation is used.
##
## In all cases, the default value of a variable is given as a
## commented-out line.
##
## There are two required sections: auth and configuration.  All other
## sections are user-defined; see the &quot;phones&quot; and &quot;networks&quot; variables
## in the configuration section.
##
######################################################################


######################################################################
## AUTHORIZATION PARAMETERS
######################################################################
[auth]

## Login parameters for Google Voice.  These are required, and there is
## no default.
##
## Examples:
## google_id = user@example.com
## google_pw = password
google_id = user@example.com
google_pw = supersecret


######################################################################
## CONFIGURATION PARAMETERS
######################################################################
[configuration]

## Debug control.  Turn on debugging to log progress messages to a log
## file.  This can help if you are having trouble getting the script
## to work.
# debug = False

## Log file.  Debugging messges go here.  This file grows (slowly)
## without limit, so you should occasionally remove or truncate it if
## you leave debugging on.
#log_file = /home/user/MyDocs/gvl.log

## Time limit for giving up on login attempts.  Gvlocation tries several
## times to log in to Google Voice.  Each attempt is aborted if it
## hasn't worked after this number of seconds.
#login_time_limit = 60

## Maximum number of login attempts.  After this many tries, gvlocation
## just gives up and won't change your Voice settings.
#login_limit = 5

## Sleep time between login attempts.  If a login fails, gvlocation will
## wait this long before trying again.  That gives the phone a chance
## to recover the network connection.
#login_sleep = 10

## Time limit for giving up on individual operations.  This prevents
## gvlocation from getting hung up after it has logged in, for example
## if your phone goes out of range.
#operation_time_limit = 30

## Whether to use multi-line (persistent) messages for notifications.  If
## true, notification messages will stay until you acknowledge them.  If
## false, they will be temporary.
#persistent_notify = True

########################################
## The two parameters below are the heart of your configuration.
## There are two ways to organize your setup: by phone, or by
## network.  You can even intermix them, though I don't recommend it.
## I prefer by-network organization.
##
## In a by-network setup, you basically say &quot;when I'm on network X,
## enable or disable the following phones.&quot;  So when you're on your
## home network, you'd enable your home phone and disable the office
## phone; at the office it would be vice versa.
##
## In a by-phone setup, you organize things by phones.  Your office
## phone might say &quot;enable me when I'm network A, disable me on B.&quot;
## It's really just a different way of laying things out.
##
## List of phones.  The names give are user-chosen mnemonics that
## match sections below.  The names &quot;auth&quot; and &quot;configuration&quot; are
## prohibited.  Separate by blanks or commas.
##
## Example:
## phones = samplephone, homephone, officephone
##
#phones=

## List of networks.  Again, the names are user-chosen separated by
## blanks or commas.
##
## Example:
## networks = homenet, officenet, othernet
##
#networks=

networks = homenet, officenet, othernet



######################################################################
## SAMPLE PHONE DEFINITION
######################################################################
##
## If the phone is in the &quot;phones&quot; list, then every time the
## network changes, gvlocation will consider enabling or disabling it.
##
[samplephone]
## Phone number(s) associated with this phone.  Readability characters
## (parentheses, blanks, hypens, and periods) are ignored.
##
#number=
number = 818-555-1212, (213) 555-1212

## Network IDs on which the phone(s) should be enabled.  Separate multiple
## networks by blanks.  &quot;all&quot; matches all networks and must appear
## alone.  &quot;other&quot; matches all networks that aren't matched by another
## pattern.
##
## You can find the network id using the command 
## gconftool-2 -R /system/osso/connectivity/IAP
## or, more simply, by just turning on debugging and examining the log file.
##
#enable_networks =
enable_networks = 91f493fb-7c89-4fc6-ac2c-b822923dde45 9ee5dd55-9a32-4ee9-9131-c464ad31d907

## Network IDs on which the phone(s) should be disabled.  Separate multiple
## networks by blanks.  &quot;All&quot; matches all networks.  &quot;Other&quot; matches all
## networks that aren't matched by another pattern.
##
#disable_networks=
disable_networks = other

## Text of message to display when this phone is enabled.  (gvlocation may
## chose to combine this with other messages.)
#enable_message = 818-555-1212, (213) 555-1212 enabled.

## Text of message to display when this phone is disabled.  (gvlocation may
## chose to combine this with other messages.)
#disable_message = 818-555-1212, (213) 555-1212 disabled.

######################################################################
## SAMPLE PHONE-NUMBER DEFINITION.
######################################################################
##
## A phone can be defined even if it's not in the &quot;phones&quot; list; this
## lets you use a symbolic name instead of a phone number.
##
[homephone]
## Phone number(s) associated with this &quot;phone&quot;.  See above.
#number =
number = 213-555-1212

### Office phone
[officephone]
number = 310-555-1212

### Cellphone
[cellphone]
number = 212-555-1212


######################################################################
## HOME NETWORK DEFINITION
######################################################################
[homenet]
## Network ID.  You can find the network id using the command 
## gconftool-2 -R /system/osso/connectivity/IAP
## or by turning on debugging and examining the log file.
##
## Multiple networks can be specified by separating the IDs with blanks.
## &quot;all&quot; applies to all networks; &quot;other&quot; applies to any network not matched
## by another network section.
network_id = 740ca5b8-8c0f-496e-b8cc-a458680a30a4

## Phone(s) to enable when on this network.  The numbers can be
## digit strings (as above) or references to configuration sections; in
## the latter case the &quot;number&quot; option from that section is used.
## separate numbers by blanks.
##
## Example:
##
## enable_phones = 800-555-1212, homephone
##
#enable_phones =
enable_phones = homephone

## Phone(s) to disable when on this network.  See enable_phones.
#disable_phones =
disable_phones = officephone

## Message to display when this network activates.
#active_message = 740ca5b8-8c0f-496e-b8cc-a458680a30a4 activated.
active_message = Home phone enabled, office phone disabled.


### Office network
[officenet]
## Network ID.
network_id = b501d585-ded3-4c7e-88db-153879e1cea0
enable_phones = officephone
disable_phones = homephone
#active_message = b501d585-ded3-4c7e-88db-153879e1cea0 activated.
active_message = Office phone enabled, home phone disabled.


### Other networks
[othernet]
## Network ID.  This will match any network not matched by another section
## listed in &quot;networks&quot;.
network_id = other

## Phone number(s) to enable when on this network.
#enable_phones =

## Phone number(s) to disable when on this network.
#disable_phones =
disable_phones = homephone, officephone

## Message to display when this network activates.
#active_message = other activated.
active_message = Home and office phones disabled.
&lt;/source&gt;

== Links to other scripts ==

=== automatically register on public wifi network when connected ===

You can find a script [http://talk.maemo.org/showpost.php?p=555757&amp;postcount=6 in this post on tmo]

== Thanks ==

Thanks to Graham Cobb for dbus-scripts and Matan for dbus-scripts-settings

[[Category:Software]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>DebForMeeGo</title>
    <id>3604</id>
    <revision>
      <id>33953</id>
      <timestamp>2010-05-06T13:39:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly, categorize</comment>
      <text xml:space="preserve">This page collects all arguments for and against keeping the *.deb package format in MeeGo.

If you want to voice your opinion on this Idea, you can [http://maemo.org/community/brainstorm/view/keep_deb_for_meego/ vote at Brainstorm].

== Scope ==
The aim is at least to keep the *.deb package format in the MeeGo distributions aiming at Nokia Phones/ Handhelds.
Although using the .deb format throughout the MeeGo project is desirable, not all arguments here apply to the same extent looking at the whole project.

== Why Switch MeeGo To DEB (switching Moblin to DEB) ==
* No porting for Maemo packages needed
* Maemo has the bigger community [1]
* allows syncing from Debian/ Ubuntu
* DEB has wider adoptation than RPM [2]
* not to throw away experience gained with maemo which is reflected in the packaging
* better package management and error correction with DEB tools. (dpkg, apt-get, aptitude, deborphan, debsums, the base DEB framework including pre/post scripts, conflict resolution, dependency management and such)

[1] amount of third party applications [http://garage.moblin.org/ here] and [http://maemo.org/downloads/Maemo5/ here]. Also note that a Maemo5 port often involves UI changes, which make it more work.

[2] comparing numbers from [http://distrowatch.com/ distrowatch] (Ubuntu/Kubuntu/Xubuntu/etc + Debian against OpenSUSE + Fedora + RedHat + Mandriva)

== Why Keep MeeGo As RPM (switching Maemo to RPM) ==
* No porting for Moblin packages needed
* Moblin build infrastructure has more capabilities already in place, such as imaging.

== Common Advantages of DEB and RPM ==
* Tools for verifying (e.g. lintian and rpmlink) are available and can be used to check for a package quality.
* both RPM and DEB are LSB compilant as ''technically there is no dictated package format, only that [[:wikipedia:Linux_Standard_Base#Choice_of_RPM_package_format|RPM must be supported when installing]]''

== Alternative Solution ==
* Keep a Debian base system, and provide third-party applications in an LSB package formet (which is RPM inside). LSB-compliant RPM should install flawlessly, and that way the frontier between system packages (DEB) and third-party applications (RPM) is well defined.
* Add the imaging feature to the Deb package.
* The [[Maemo on Debian]] project does not try to convince the official MeeGo to use some upstream but instead works on a distribution which integrates existing Maemo5 and future MeeGo components into a standard Debian distribution.

[[Category:Packaging]]</text>
    </revision>
  </page>
  <page>
    <title>Deb packaging for noobs</title>
    <id>5238</id>
    <revision>
      <id>49448</id>
      <timestamp>2012-09-05T10:27:25Z</timestamp>
      <contributor>
        <username>thedead1440</username>
        <id>5241</id>
      </contributor>
      <text xml:space="preserve">'''Create correct .deb package for N9'''
'''on your linux PC'''
(and you can use it for OBS)

Read some info:
* [http://harmattan-dev.nokia.com/docs/library/html/guide/html/Developer_Library_Alternative_development_environments_Platform_SDK_user_guide_Installing_Harmattan_Platform_SDK.html Installing Harmattan Platform SDK]
* [http://harmattan-dev.nokia.com/docs/library/html/guide/html/Developer_Library_Alternative_development_environments_Platform_SDK_user_guide_Using_Harmattan_Platform_SDK.html Using Harmattan Platform SDK]
* [http://harmattan-dev.nokia.com/docs/library/html/guide/html/Developer_Library_Alternative_development_environments_Platform_SDK_user_guide_Packaging_your_application_with_Harmattan_Platform_SDK.html Packaging your application with Harmattan Platform SDK]

1. Download [http://harmattan-dev.nokia.com/platform-sdk/ Harmattan Platform SDK installer] ([http://harmattan-dev.nokia.com/stable/harmattan/harmattan-sdk-setup.py direct link])

2. Install it (scratchbox) on your Linux PC. To provide executable permission to the script, enter the following command:

'''$ chmod +x harmattan-sdk-setup.py'''


3. To run the script with root permission, enter the following command:

'''$ sudo ./harmattan-sdk-setup.py admininstall'''
* Installation process can take a few hours…


4. When Scratchbox installed, REBOOT your PC and go to:

'''/scratchbox/users/YOUR_NAME/home/YOUR_NAME'''


5. Create here a folder for your package, for example my: '''n9-qtweakall''' Open this folder.

Example:

'''/scratchbox/users/schturman/home/schturman/n9-qtweakall'''

Download this package: [http://dl.dropbox.com/u/17706605/Create_correct_DEB_file_on_Ubuntu.zip Create_correct_DEB_file_on_Ubuntu.zip] and extract it (debian folder) to your package folder:

'''/scratchbox/users/schturman/home/schturman/n9-qtweakall'''


6. Go to:
'''/scratchbox/users/schturman/home/schturman/n9-qtweakall/debian/data'''

and delete file named: '''copy_folders_here_and_delete_this_file'''


7. Copy your folders here, for example '''/opt/your_app_name''' etc…


8. Go back to '''/debian''' folder. You can see a few files that you need to edit before each packaging. Just open them with editor and edit like your need…


9. Open terminal and write:  '''scratchbox''' , then press enter


10. You will see this message:


'''Welcome to Scratchbox, the cross-compilation toolkit!

'''Use 'sb-menu' to change your compilation target.

'''See /scratchbox/doc/ for documentation.'''

'''[sbox-HARMATTAN_X86: ~] &gt;'''


11. To change the target architecture to ARMEL, enter the following command:

'''sb-conf se HARMATTAN_ARMEL'''

And now you will see: '''[sbox-HARMATTAN_ARMEL: ~] &gt;'''


12. Now you can package your application:

* Go to your package folder:

'''cd /home/schturman/n9-qtweakall'''

and you will see: 

'''[sbox-HARMATTAN_ARMEL: ~/n9-qtweakall] &gt;'''

* For packaging write:
 
'''dpkg-buildpackage'''


13. When packaging is finished you again will see this line: 

'''[sbox-HARMATTAN_ARMEL: ~/n9-qtweakall] &gt;'''


14. For EXIT from scratchbox, just write: '''exit''' , then press enter.


15. You will find the packaged files in:

'''/scratchbox/users/YOUR_NAME/home/YOUR_NAME'''


16. You will see 4 files:

* '''.deb''' , '''.changes''' , '''.tar.gz''' , '''.dsc'''


17. The 3 last files you can use on OBS (apps.formeego.org)


I used Ubuntu like second OS on my old netbook (Acer Aspire ONE). Sorry for my bad English :)


Big thanks to CODeRUS for files and help!</text>
    </revision>
  </page>
  <page>
    <title>Debian</title>
    <id>277</id>
    <revision>
      <id>42298</id>
      <timestamp>2011-03-02T11:37:52Z</timestamp>
      <contributor>
        <ip>77.109.139.87</ip>
      </contributor>
      <comment>Add pkg-n900/elektranox</comment>
      <text xml:space="preserve">There are a few projects for getting '''Debian''' onto [[Maemo]] tablets. Here are the currently active ones.

[[Easy Debian]] is focused on running Debian applications in a chroot.

[[Maemo on Debian]] plans to replace the Maemo 5 with a up to date Debian base system and to port the existing free and non-free Maemo5 packages
to this new base.

The [https://wiki.debian.org/pkg-n900 Debian pkg-n900] or [https://elektranox.org/n900/ elektranox] project aims to get standard Debian running on the Nokia N900, and to contribute the necessary updates to Debian. See the [https://elektranox.org/n900/kernel/status.html kernel status], a summary of the ongoing effort to upstream N900 kernel patches (also [http://hg.natisbad.org/N900/n900-upstream-omap-patches/summary here]) into the mainline kernel. See also the [https://elektranox.org/n900/screenshots.html screenshots], [http://ring0.de/ blog] and [http://natisbad.org/N900/ natisbad].

The [http://trac.tspre.org/projects/nit-debian Deblet project] (now apparently discontinued) was focussed on bringing bootable Debian to the tablets, using an installer system that bootstraps a complete Debian system through the use of packages and a local repository.



{{stub}}

[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Debian-Tethering</title>
    <id>3685</id>
    <revision>
      <id>40619</id>
      <timestamp>2010-12-08T13:14:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">This article documents how to setup Debian for tethering to an [[Nokia N900|N900.]] How to setup the N900 is described in the [[Bluetooth DUN]] article.

== Setup Bluetooth connectivity ==

=== Installing required Debian packages ===

 apt-get install bluez-utils pppconfig

=== Setting Up Bluetooth Connectivity ===

 blackbox:~# hcitool scan
 Scanning ...
   11:22:33:44:55:66       Nokia N900
 blackbox:~# sdptool browse 11:22:33:44:55:66

Search for the ''Dial-Up Networking service''

 blackbox:~# sdptool browse 11:22:33:44:55:66
 Browsing 11:22:33:44:55:66 ...
 [...]
 
 Service Name: Dial-Up Networking
 Service RecHandle: 0x10005
 Service Class ID List:
   &quot;Dialup Networking&quot; (0x1103)
   &quot;Generic Networking&quot; (0x1201)
 Protocol Descriptor List:
   &quot;L2CAP&quot; (0x0100)
   &quot;RFCOMM&quot; (0x0003)
     Channel: 1
 Profile Descriptor List:
   &quot;Dialup Networking&quot; (0x1103)
     Version: 0x0100
 
 [...]
 
 blackbox:~#

Add an rfcomm device (e.g. &lt;code&gt;rfcomm0&lt;/code&gt;) to &lt;code&gt;/etc/bluetooth/rfcomm.conf&lt;/code&gt; (make sure to replace the Bluetooth device address 11:22:33:44:55:66 with the Bluetooth device address of your N900):

 /etc/bluetooth/rfcomm.conf
 rfcomm0 {
 #       # Automatically bind the device at startup
         bind yes;
 #
 #       # Bluetooth address of the device
         device 11:22:33:44:55:66;
 #
 #       # RFCOMM channel for the connection (whatever you get from the sdptool output)
         channel 1;
 #
 #       # Description of the connection
         comment &quot;N900&quot;;
 }

Restart the bluetooth stack:

 blackbox:~# /etc/init.d/bluetooth restart

For bluetooth pairing you can run

 blackbox:~# cat &lt; /dev/rfcomm0

and first the N900 then the Debian system should ask you for a 4 digit PIN which you define on the N900 and confirm on the Debian system. You might have to configure the helper application which is using the PIN in &lt;code&gt;/etc/bluetooth/hcid.conf&lt;/code&gt;

=== Dial-Up Settings ===

Run &lt;code&gt;pppconfig&lt;/code&gt; and use &lt;code&gt;/dev/rfcomm0&lt;/code&gt; as the modem interface:

In my settings for klarmobil (Germany) I manually added two lines (at+cdgcont=... and AT+CREG...):

 blackbox:~# cat /etc/chatscripts/klarmobil
 # This chatfile was generated by pppconfig 2.3.18.
 # Please do not delete any of the comments.  Pppconfig needs them.
 #
 # ispauth PAP
 # abortstring
 ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
 # modeminit
 '' ATZ
 # ispnumber
 OK at+cgdcont=1,&quot;IP&quot;,&quot;internet.t-mobile&quot;,&quot;&quot;,0,0
 OK AT+CREG=2
 OK-AT-OK &quot;ATDT*99#&quot;
 # ispconnect
 CONNECT \d\c
 # prelogin 
  
 # ispname
 # isppassword
 # postlogin
  
 # end of pppconfig stuff
 blackbox:~#

In my peers file I changed the baud rate to the device

 blackbox:~# cat /etc/ppp/peers/klarmobil
 # This optionfile was generated by pppconfig 2.3.18.
 #
 #
 hide-password
 noauth
 connect &quot;/usr/sbin/chat -v -f /etc/chatscripts/klarmobil&quot;
 debug
 /dev/rfcomm0
 #460800
 921600
 defaultroute
 noipdefault
 user &quot;tm&quot;
 remotename klarmobil
 ipparam klarmobil 
 
 usepeerdns
 blackbox:~#

For &lt;code&gt;ifupdown&lt;/code&gt; integration add to &lt;code&gt;/etc/network/interfaces&lt;/code&gt;

 iface ppp0 inet ppp
  provider klarmobil

Details are in the [http://www.debian.org/doc/manuals/reference/ch05.en.html#_the_ppp_connection Debian Reference].

[[Category:Connectivity]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Debian for NITs</title>
    <id>1228</id>
    <revision>
      <id>7459</id>
      <timestamp>2008-09-26T05:18:46Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Debian for NITs]] moved to [[Debian]]</comment>
      <text xml:space="preserve">#REDIRECT [[Debian]]</text>
    </revision>
  </page>
  <page>
    <title>Debmaster</title>
    <id>1768</id>
    <revision>
      <id>43689</id>
      <timestamp>2011-05-31T09:16:40Z</timestamp>
      <contributor>
        <username>jeremiah</username>
        <id>585</id>
      </contributor>
      <comment>/* Contacting the debmaster */</comment>
      <text xml:space="preserve">{{ambox|text=maemo.org no longer has a Nokia-sponsored Debmaster as of June 2010.}}

== Role and responsibilities ==

The maemo.org debmaster is a unique role in Free Software. The debmaster facilitates the packaging and integration of software with maemo.org using the debian format and tools. This allows maemo.org to use the vast collection of existing software in Debian for the Maemo community.

Specifically the debmaster:

* Works with developers who want to submit their software to maemo.org's [[Extras|repositories]].
* Provides documentation on Debian's deb format and the various files in a package.
* Helps develop a maemo.org toolset, based on Debian tools but modified for Maemo.
* Co-operates with upstream (Debian) and downstream (users) as well as sidestream (Nokia).
* Maintains an open communication channel with the community using the various community channels: [[IRC|#maemo]], ITt (talk.maemo.org), [[community mailing lists|mailing lists]], wiki, etc.
* Works with Nokia and the [[Community Council]] to develop and define packaging policy.
* Suggests innovations and developments of the Maemo packaging format.

The debmaster is both a member of the community and works for the community directly, hopefully bringing to bear experience from Debian packaging which will benefit Maemo packaging. The debmaster should work as closely as possible with the council so that the views of the community are foremost on the debmaster's list of tasks. These tasks should be reported in a manner consistent with accountability and transparency, so the community can guide the debmaster and be assured that the debmaster's contributions are relevant to the community.

== Contacting the debmaster == 

Ideally there would be an email address called debmaster at maemo.org - but that does not yet exist.  The debmaster should also often be on IRC in irc.freenode.net #maemo, and on the [[community mailing lists]]

=== Previous debmaster ===

The debmaster was [[User:jeremiah|Jeremiah Foster]]. He no longer works in that capacity but is willing to help as bandwidth permits.



[[Category:Community]]
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Desktop Command Execution Widget scripts</title>
    <id>3748</id>
    <revision>
      <id>50688</id>
      <timestamp>2012-11-06T09:35:19Z</timestamp>
      <contributor>
        <ip>85.54.116.66</ip>
      </contributor>
      <comment>/* Internal memory for user data (27GB /home/user/MyDocs) free space */</comment>
      <text xml:space="preserve">Desktop Command Execution widget is one of the most useful widgets on your Maemo desktop. It can be used to show certain information (for example battery level in percentage) or as a button which can be used for example to disconnect active internet connection (you need to tap 3 times and also wait for menus to appear without this widget). Therefore it can replace many other applications/widgets/applets and you can also make something new. Here you'll find a collection of scripts that can be added to the widget. The discussion about the widget is [http://talk.maemo.org/showthread.php?t=39177 on the forum].

Scripts are also compatible with [[Queen BeeCon Widget]] which has extended graphic and cosmetic functionality, but is far more complicated.


==Making your own scripts==

===Scripts without output===

When there's no output (for example if you're using widget as a button and you use D-Bus call) the widget displays &quot;Invalid Command&quot;. This can be most easily avoided if you pipe echo &quot;&quot; at the end of the command. This is also usable if your script produces unwanted output (D-Bus reply for example).

 dbus-send -options -moreoptions | echo &quot;&quot;

Collection of D-Bus calls can be found on [[Phone control]] wiki page. The basic principle for making a script for DCEW is the same as above (D-Bus command and piping an echo).

===Scripts with long output===

Some scripts may create multiple lines which are too long to be displayed on a single line. The widget will not wrap these. In order to wrap them you can use the fold command:
 
 command-that-produces-long-lines | fold -s -w 100

The 80 in that instance is the maximum length of the line, which you can change. The -s option makes fold word wrap with spaces. More information is available from the [http://unixhelp.ed.ac.uk/CGI/man-cgi?fold fold man page].

==Scripts to display information==

===Battery (via Nokia's BME) ===

All battery scripts are collected here. Pick the one which suits your needs. Examples of the output values are under each one.

There are 2 values for full battery capacity available. First one is design charge in mAh, which is always the same (1273 mAh). The second one is the one used in these scripts and it is the full charge from last charging. With displaying this one you can also monitor battery wear level.

Battery percentage level is calculated using first value and is therefore less accurate, that's why you cannot achieve 100% full battery, but only about 95%. After some time the full percentage will be even lower.

But last full charge value has one disadvantage. This is that after a reboot the phone forgets this value and the value returned is 0. It shows the proper value after next charging.


====Percentage, current and last full charge====

 hal-device bme | awk '/l.p/ {perc = $3}; /g.c/ {curr = $3}; /g.la/ {last = $3}; /s_c/ {isch = $3} END if (isch == &quot;false&quot;) {print perc&quot; % (&quot;curr&quot;/&quot;last&quot; mAh)&quot;} else {print &quot;Charging&quot;}'

Output example: '''83 % (1000/1200 mAh)''', when charging '''Charging'''


====Percentage and current charge====

 hal-device bme | awk '/l.p/ {perc = $3}; /g.c/ {curr = $3}; /s_c/ {isch = $3} END if (isch == &quot;false&quot;) {print perc&quot; % (&quot;curr&quot; mAh)&quot;} else {print &quot;Charging&quot;}'

Output example: '''83 % (1000 mAh)''', when charging '''Charging'''


====Percentage====

 hal-device bme | awk '/l.p/ {perc = $3}; /s_c/ {isch = $3} END if (isch == &quot;false&quot;) {print perc&quot; %&quot;} else {print &quot;Chrg&quot;}'

Output example: '''83 %''', when charging '''Chrg'''


====Current and last full charge====

 hal-device bme | awk '/g.c/ {curr = $3}; /g.la/ {last = $3} END {print curr&quot;/&quot;last&quot; mAh&quot;}'

Output example: '''1000/1200 mAh'''


====Current charge====

 hal-device bme | awk '/g.c/ {print $3&quot; mAh&quot;}'

Output example: '''1000 mAh'''


====Last full charge====

 hal-device bme | awk '/g.la/ {print $3&quot; mAh&quot;}'

Output example: '''1200 mAh'''

===Battery (via bq27200 chip) ===

==== Percentage, current and last full charge, with TTE or TTF as appropriate ====


Install this as e.g. /usr/local/bin/bqbattery, make it executable and point DCEW to it. This is designed to work whether or not you have the bq27x00_battery module loaded, but if you don't, then you'll need to install the i2c-tools package, and then chmod 4755 /usr/sbin/i2cget (meaning i2cget runs as root even when we invoke it as user from DCEW).

 #!/bin/sh
 
 if [ -r &quot;/sys/class/power_supply/bq27200-0/capacity&quot; ]; then
 # We have bq27x00_battery loaded - get the values from /sys/class/power_supply/bq27200-0/
 CSOC=`cat /sys/class/power_supply/bq27200-0/capacity`;
 NAC=$((`cat /sys/class/power_supply/bq27200-0/charge_now` / 1000));
 LMD=$((`cat /sys/class/power_supply/bq27200-0/charge_full` / 1000));
 STATUS=`cat /sys/class/power_supply/bq27200-0/status`;
 if [ &quot;$STATUS&quot; == &quot;Discharging&quot; ]; then
        TTF=65535
        TTE=$((`cat /sys/class/power_supply/bq27200-0/time_to_empty_avg` / 60));
 else
        TTF=$((`cat /sys/class/power_supply/bq27200-0/time_to_full_now` / 60));
        TTE=65535
 fi
 else
 # We don't have bq27x00_battery - get the values using i2cget
 NAC=$(($(/usr/sbin/i2cget -y 2 0x55 0x0c w) * 3570 / 20 / 1000));
 LMD=$(($(/usr/sbin/i2cget -y 2 0x55 0x12 w) * 3570 / 20 / 1000));
 CSOC=$(($(/usr/sbin/i2cget -y 2 0x55 0x2c)));
 TTF=$(($(/usr/sbin/i2cget -y 2 0x55 0x18 w)));
 TTE=$(($(/usr/sbin/i2cget -y 2 0x55 0x16 w)));
 fi
 echo &quot;$CSOC% ($NAC/$LMD mAh)&quot;
 if [ &quot;$TTF&quot; -eq 65535 ]; then
         echo &quot;$TTE minutes to empty&quot;
 else
         echo &quot;$TTF min to full battery&quot;
 fi

Output example:

'''88% (1269/1439 mAh)'''

'''37 min to full battery'''

===IP===

Internal IPs are obtained from the ifconfig and external IPs are obtained from the internet, because gprs0 IP which you can get with ifconfig is often from private address range, because mobile operators like to use NAT.


====External (WAN) and internal (LAN)====

 echo WAN IP: `wget -t 2 -T 3 -q -O - api.myiptest.com | awk -F &quot;\&quot;&quot; '{print $4}'`; echo LAN IP: `/sbin/ifconfig wlan0 | awk -F &quot;[: ]&quot; '/Bc/ {print $13}'`

Output example:

'''WAN IP: 1.2.3.4'''

'''LAN IP: 192.168.1.2'''


 echo WAN IP: `wget -t 2 -T 3 -q -O - api.myiptest.com | awk -F &quot;\&quot;&quot; '{print $4 &quot; (&quot;$12&quot; &quot;toupper($28)&quot;)&quot;}'`; echo LAN IP: `/sbin/ifconfig wlan0 | awk -F &quot;[: ]&quot; '/Bc/ {print $13}'`

Output example:

'''WAN IP: 1.2.3.4 (ISP CountryCode)'''

'''LAN IP: 192.168.1.2'''


 echo WAN IP: `wget -t 2 -T 3 -q -O - api.myiptest.com | awk -F &quot;\&quot;&quot; '{print $4&quot; (&quot;$12&quot; @ &quot;$20&quot;, &quot;toupper($28)&quot;)&quot;}'`; echo LAN IP: `/sbin/ifconfig wlan0 | awk -F &quot;[: ]&quot; '/Bc/ {print $13}'`

Output example:

'''WAN IP: 1.2.3.4 (ISP @ City, CountryCode)'''

'''LAN IP: 192.168.1.2'''

====External (WAN)====

 wget -t 2 -T 3 -q -O - api.myiptest.com | awk -F &quot;\&quot;&quot; '{print $4}'
or another one, as api.myiptest.com sometimes is down
 wget -t 2 -T 3 -q -O - checkip.dyndns.com | awk -F &quot;: &quot; '{print $2}' | awk -F &quot;&lt;/&quot; '{print $1}' 

Output example: '''1.2.3.4'''


 wget -t 2 -T 3 -q -O - api.myiptest.com | awk -F &quot;\&quot;&quot; '{print $4 &quot; (&quot;$12&quot; &quot;toupper($28)&quot;)&quot;}'

Output example: '''1.2.3.4 (ISP CountryCode)'''


 wget -t 2 -T 3 -q -O - api.myiptest.com | awk -F &quot;\&quot;&quot; '{print $4&quot; (&quot;$12&quot; @ &quot;$20&quot;, &quot;toupper($28)&quot;)&quot;}'

Output example: '''1.2.3.4 (ISP @ City, CountryCode)'''

====Internal (LAN)====

 /sbin/ifconfig wlan0 | awk -F &quot;[: ]&quot; '/Bc/ {print $13}'

This one displays only wlan0 IP (used for SSH, WinSCP, VNC... in LAN).

===Disk usage===

====rootfs (256MB /) percentage used====

 df | awk '$1 == &quot;rootfs&quot; {print $5}'


====rootfs (256MB /) free space====

 df -h | awk '$1 == &quot;rootfs&quot; {print $4}'


====Internal memory for user data (27GB /home/user/MyDocs) percentage used====

 df /home/user/MyDocs | awk '/My/ {print $5}'


====Internal memory for user data (27GB /home/user/MyDocs) free space====

 df -h /home/user/MyDocs | awk '/My/ {print $4}'

====Internal memory for application data (2GB /home) percentage used====

 df /home | awk '/ho/ {print $5}'


====Internal memory for application data (2GB /home) free space====

 df -h /home | awk '/ho/ {print $4}'


====Memory card (/media/mmc1) percentage used====

 df /media/mmc1 | awk '/mm/ {print $5}'


====Memory card (/media/mmc1) free space====

 df -h /media/mmc1 | awk '/mm/ {print $4}'


===Cellular signal===

====Quality====

 dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_signal_strength | awk 'NR==2 {print $2&quot; %&quot;}'

====Strength====

 dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_signal_strength | awk 'NR==3 {print &quot;-&quot;$2&quot; dBm&quot;}'


===Wi-Fi signal===

====Quality====

 awk -F &quot;[. ]&quot; '/0/ {print $6&quot; %&quot;}' /proc/net/wireless


====RSSI====

 awk '/0/ {print $4&quot; dBm&quot;}' /proc/net/wireless


====Noise====

 awk -F &quot;[. ]&quot; '/0/ {print $12&quot; dBm&quot;}' /proc/net/wireless


===CPU frequency===

 awk '{print $1/1000&quot; MHz&quot;}' /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

====Usage of each frequency====

 awk -v var=$(awk '{sum+=$2}; END {print sum};' /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state) '{arr[$3]=$2}{for (i in arr) {print $1/1000 &quot; mhz &quot; int(arr[i]*100/var)&quot;%&quot;}}' /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state

The same, but without unused lines

 awk -v var=$(awk '{sum+=$2}; END {print sum};' /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state) '{arr[$3]=$2}{for (i in arr) {print $1/1000 &quot; mhz &quot; int(arr[i]*100/var)&quot;%&quot;}}' /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state | grep -v &quot; 0%&quot;

===Memory usage===

====RAM used====

 awk '/mT/ {memttl = $2}; /mF/ {memfre = $2}; /Bu/ {membff = $2}; $1 == &quot;Cached:&quot; {memcch = $2} END {printf (&quot;%.1f MB\n&quot;,(memttl-memfre-membff-memcch)/1024)}' /proc/meminfo


====RAM free====

 awk '/mF/ {memfre = $2}; /Bu/ {membff = $2}; $1 == &quot;Cached:&quot; {memcch = $2} END {printf (&quot;%.1f MB\n&quot;,(memfre+membff+memcch)/1024)}' /proc/meminfo


====Swap used====

 awk '/pT/ {swpttl = $2}; /pF/ {swpfre = $2} END {printf (&quot;%.1f MB\n&quot;,(swpttl-swpfre)/1024)}' /proc/meminfo


====Swap free====

 awk '/pF/ {printf (&quot;%.1f MB\n&quot;,$2/1024)}' /proc/meminfo


====Total memory used====

 awk '/mT/ {memttl = $2}; /mF/ {memfre = $2}; /Bu/ {membff = $2}; $1 == &quot;Cached:&quot; {memcch = $2}; /pT/ {swpttl = $2}; /pF/ {swpfre = $2} END {printf (&quot;%.1f MB\n&quot;,(memttl+swpttl-memfre-membff-memcch-swpfre)/1024)}' /proc/meminfo


====Total memory free====

 awk '/mF/ {memfre = $2}; /Bu/ {membff = $2}; $1 == &quot;Cached:&quot; {memcch = $2}; /pF/ {swpfre = $2} END {printf (&quot;%.1f MB\n&quot;,(memfre+membff+memcch+swpfre)/1024)}' /proc/meminfo


===GPRS data usage===

You can use this with scheduled reset of the GPRS data counter to display data usage for current month. Additional info can be found on [[fcron]] wiki page.

These scripts are now compatibile with PR1.2 (separate home and roaming counter), which means they won't work on previous versions.


====Home counter (combined)====

 echo `gconftool-2 -g /system/osso/connectivity/network_type/GPRS/gprs_home_rx_bytes` `gconftool-2 -g /system/osso/connectivity/network_type/GPRS/gprs_home_tx_bytes` | awk '{printf (&quot;%.1f MB\n&quot;,($1+$2)/1048576)}'


====Home counter (separated)====

 echo `gconftool-2 -g /system/osso/connectivity/network_type/GPRS/gprs_home_rx_bytes | awk '{printf (&quot;Download: %.1f MB\n&quot;,$1/1048576)}'`; echo `gconftool-2 -g /system/osso/connectivity/network_type/GPRS/gprs_home_tx_bytes | awk '{printf (&quot;Upload: %.1f MB\n&quot;,$1/1048576)}'`


====Roaming counter (combined)====

 echo `gconftool-2 -g /system/osso/connectivity/network_type/GPRS/gprs_roaming_rx_bytes` `gconftool-2 -g /system/osso/connectivity/network_type/GPRS/gprs_roaming_tx_bytes` | awk '{printf (&quot;%.1f MB\n&quot;,($1+$2)/1048576)}'


====Roaming counter (separated)====

 echo `gconftool-2 -g /system/osso/connectivity/network_type/GPRS/gprs_roaming_rx_bytes | awk '{printf (&quot;Download: %.1f MB\n&quot;,$1/1048576)}'`; echo `gconftool-2 -g /system/osso/connectivity/network_type/GPRS/gprs_roaming_tx_bytes | awk '{printf (&quot;Upload: %.1f MB\n&quot;,$1/1048576)}'`


===Time and date===

====Date====

 date +&quot;%a, %-d.%-m.%Y&quot;

This command will show the date in format (for example) '''Tue, 4.5.2010'''. You can define your own format (between the quotation marks). Possible options are described on [http://unixhelp.ed.ac.uk/CGI/man-cgi?date manpage].


====Time in different timezones====
 
 export TZ=&quot;Europe/London&quot;; date +%R

This one shows two timezones in format ''London: 13:04 | Denver: 06:04''

 echo &quot;London:&quot; `export TZ=&quot;Europe/London&quot;; date +%R` &quot;| Denver:&quot; `export TZ=&quot;America/Denver&quot;; date +%R`

London and Denver are taken as an example. TZ values can be found on [[:wikipedia:List_of_tz_database_time_zones|Wikipedia]].


===Uptime and load===

These scripts are formatproof meaning that they display what they're supposed to no matter what format is command &quot;uptime&quot; outputting. Not all scripts found are like that, because &quot;uptime&quot; command is a little bit complicated for scripted text processing. For example when the system is running under one hour only &quot;x min&quot; is shown, when it is running under one day &quot;hour:min:sec&quot; is shown and after that it is shown in format &quot;x days, hour:min:sec&quot;.


====Both====

 uptime | sed -e 's/.*up */uptime: /' -e 's/ average//' -e 's/  / /'


====Uptime====

 uptime | sed -e 's/.*p *//' -e 's/, l.*//' -e 's/  / /'


====Load====

 uptime | sed 's/.*e: //'


===Boot reason===

 cat /proc/bootreason


===Boot count===

 cat /var/lib/dsme/boot_count


===Temperature===

CPU's thermal sensors are not accessible, but there is one near the battery. This commands displays output of its readings, but IT IS NOT RELIABLE, because it doesn't always work. Sometimes the value returned is wrong or constant. It needs to be tested further.

 cat /sys/devices/platform/omap34xx_temp/temp1_input | awk '{ sub(/-/,&quot;&quot;); print $1&quot; °C&quot;}'

There is a working way now to read the correct temperature, but it is working only on a newer titan's kernels (normal, overclock, undervoltage). The bq27x00_battery module has to be loaded first.

 echo `cat /sys/class/power_supply/bq27200-0/temp` °C

with a comma : 

 echo `cat /sys/class/power_supply/bq27200-0/temp` °C | sed 's/\B[0-9]\{1\}/&amp;,/'

===Top processes===

This script displays top ''N'' CPU consuming processes. It excludes top itself, which is quite processor intensive so you probably don't want this updating too often. Modify ''N=3'' at the start to display different number of processes.

 N=3; top -bn 1 | grep -v top | head -n $(($N+4)) | tail -n $(($N+1)) | awk '{OFS = &quot;\t&quot;} {print $7,$8}'


===Random Number Generator===

This script displays a random number between 0 and ''M'' (''M'' included)

 M=6; dd if=/dev/urandom bs=1 count=4 2&gt;/dev/null | od -l | awk -v M=$M '{M++;print $2&lt;0?-$2%M:$2%M;exit}'



===Ping a Host===
Preferred method. Install netcat from [http://wiki.maemo.org/Documentation/devtools/maemo5#Installation]

 if (nc -zw1 192.168.2.1 80);then echo up;else echo down;fi

Alternate method. Ping has a long timeout when down. Warning: it will block the desktop while running.

 if (echo 'ping -c1 192.168.2.1' | rootsh /bin/sh  2&gt;&amp;1 &gt;/dev/null);then echo up;else echo down;fi

==Scripts for buttons==


Make sure that update policy for button widgets is set only to &quot;update when clicked&quot;. &quot;Update when switched to desktop&quot;, &quot;update interval&quot; and &quot;network presence&quot; should be disabled to avoid automatic actions. Also keep in mind that widgets are executed at every boot so they can for example automatically disable Wi-Fi when phone boots.

There is a bug in version 0.9 or lower which prevents you from using DCEW widgets as buttons, because they get activated (pressed) automatically all the time. You have to make sure DCEW is at least version 1.0, to check which version you have installed do this: dpkg -l desktop-cmd-exec.


===Networking===

====Connect/disconnect====

 sh /path/conn-disconn.sh | echo &quot;&quot;


'''conn-disconn.sh'''

 #!/bin/sh
 if [ `/sbin/route | awk '/au/ {print $1}'` = default ]; then
 dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true
 else
 dbus-send --system --type=method_call --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:&quot;[ANY]&quot; uint32:0
 fi


====Connect internet (show connections)====

 dbus-send --system --type=method_call --dest=com.nokia.icd_ui /com/nokia/icd_ui com.nokia.icd_ui.show_conn_dlg boolean:false | echo &quot;&quot;


====Connect to any saved connection====

 dbus-send --system --type=method_call --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:&quot;[ANY]&quot; uint32:0 | echo &quot;&quot;


====Disconnect internet====

 dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true | echo &quot;&quot;


====Enable/disable Wi-Fi====

 echo &quot;/path/to/script/wifi.sh&quot; | sudo gainroot | echo &quot;&quot;


'''wifi.sh script:'''

 #!/bin/sh
 out=`ifconfig wlan0`
 if [ $? -eq &quot;0&quot; ] ; then
 if [ `echo &quot;$out&quot; | grep -c RUNNING` -gt &quot;0&quot; ] ; then
 run-standalone.sh dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true
 fi
 ifconfig wlan0 down
 rmmod wl12xx
 run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:'Wi-Fi disabled'
 exit 2
 else
 modprobe wl12xx
 wl1251-cal
 stop wlancond
 start wlancond
 ifconfig wlan0 up
 run-standalone.sh dbus-send --system --type=method_call --dest=com.nokia.icd_ui /com/nokia/icd_ui com.nokia.icd_ui.show_conn_dlg boolean:false
 exit 0
 fi

Don't forget to make it executable.


====Wake On Lan====
 
 /path/to/script/wol.py | echo &quot;&quot;
wol.py script;

 #! /usr/bin/python
 # Wake-On-LAN
 # Change ip range in the &quot;s.sendto(msg&quot; line 
 # and the MAC of the pc to wakeup in the bottom line
 import struct, socket
 def WakeOnLan(ethernet_address):
  # Construct a six-byte hardware address
  addr_byte = ethernet_address.split(':')
  hw_addr = struct.pack('BBBBBB', int(addr_byte[0], 16),
    int(addr_byte[1], 16),
    int(addr_byte[2], 16),
    int(addr_byte[3], 16),
    int(addr_byte[4], 16),
    int(addr_byte[5], 16))
  # Build the Wake-On-LAN &quot;Magic Packet&quot;...
  msg = '\xff' * 6 + hw_addr * 16
  # ...and send it to the broadcast address using UDP
  s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
  s.sendto(msg, ('192.168.1.255', 9))
  s.close()
 # Example use
 WakeOnLan('00:13:21:00:62:AE')
Don't forget to Chmod 755 wol.py


====Disconnect mobile network====

 dbus-send --system --type=method_call --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.set_radio boolean:false | echo &quot;&quot;


====Connect mobile network====

 dbus-send --system --type=method_call --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.set_radio boolean:true | echo &quot;&quot;


===Lock screen and keys===

 dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_tklock_mode_change string:&quot;locked&quot; | echo &quot;&quot;


===Radio mode===

====2G/3G====

 sh /path/to/script/2g3g.sh | echo &quot;&quot;


'''2g3g.sh script:'''

 #!/bin/sh
 if [ `dbus-send --system --type=method_call --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_selected_radio_access_technology | awk '/b/ {print $2}'` -eq 1 ]; then
 dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:2
 else
 dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:1
 fi

When 3G or Dual mode is active, the script will switch to 2G. And when 2G is active, it will switch to 3G.

Don't forget to make the script executable.


====2G====

 dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:1 | echo &quot;&quot;


====3G====

 dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:2 | echo &quot;&quot;


====Dual====

 dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:0 | echo &quot;&quot;


===Bluetooth===

====Enable====

 dbus-send --system --type=method_call --dest=org.bluez $(dbus-send --system --print-reply --dest=org.bluez / org.bluez.Manager.ListAdapters | awk -F &quot;\&quot;&quot; '/at/ {print $2}') org.bluez.Adapter.SetProperty string:Powered variant:boolean:true | echo &quot;&quot;


====Disable====

 dbus-send --system --type=method_call --dest=org.bluez $(dbus-send --system --print-reply --dest=org.bluez / org.bluez.Manager.ListAdapters | awk -F &quot;\&quot;&quot; '/at/ {print $2}') org.bluez.Adapter.SetProperty string:Powered variant:boolean:false | echo &quot;&quot;

===Profiles===

====General====

 dbus-send --type=method_call --dest=com.nokia.profiled /com/nokia/profiled com.nokia.profiled.set_profile string:&quot;general&quot; | echo &quot;&quot;


====Silent====

 dbus-send --type=method_call --dest=com.nokia.profiled /com/nokia/profiled com.nokia.profiled.set_profile string:&quot;silent&quot; | echo&quot;&quot;


====Toggle vibrating alert====

There are far more things you can do with your profile. Please have a look at the [[Phone_control#Get_all_profile_Values|profile values at the phone control page]]. This example disables vibrating alert for the active profile.


 # Which profile is active?
 if \
 dbus-send --print-reply --type=method_call \
 --dest=com.nokia.profiled /com/nokia/profiled \
 com.nokia.profiled.get_profile | grep -q general
 then
 	# general profile is active
 	dbus-send --type=method_call \
 	--dest=com.nokia.profiled /com/nokia/profiled \
 	com.nokia.profiled.set_value string:&quot;general&quot; \
 	string:&quot;vibrating.alert.enabled&quot; string:&quot;Off&quot;
 else
 	# silent profile is active
 	dbus-send --type=method_call \
 	--dest=com.nokia.profiled /com/nokia/profiled \
 	com.nokia.profiled.set_value string:&quot;silent&quot; \
 	string:&quot;vibrating.alert.enabled&quot; string:&quot;Off&quot;
 fi

You get the opposite behaviour (enable vibrating alert) simply by replacing &quot;Off&quot; two times by &quot;On&quot;.

===Lock (secure) the device===

 dbus-send --system --type=method_call --dest=com.nokia.system_ui /com/nokia/system_ui/request com.nokia.system_ui.request.devlock_open string:&quot;com.nokia.mce&quot; string:&quot;/com/nokia/mce/request&quot; string:&quot;com.nokia.mce.request&quot; string:&quot;devlock_callback&quot; uint32:'3' | echo &quot;&quot;


===Update e-mail===

 sh /path/to/script/email.sh | echo &quot;&quot;


'''email.sh script:'''

The script connects to the internet and refreshes e-mail. Keep in mind that Modest e-mail client which N900 uses is very slow in this aspect and send and recive can take up to minute and a half. Make it executable.

 #!/bin/sh
 run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:&quot;Updating e-mail...&quot;
 run-standalone.sh dbus-send --system --type=method_call --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:&quot;[ANY]&quot; uint32:0
 sleep 10
 run-standalone.sh dbus-send --type=method_call --dest=com.nokia.modest /com/nokia/modest com.nokia.modest.SendReceive


===Set maximum CPU frequency===

 echo &quot;echo 600000 &gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&quot; | sudo gainroot | echo &quot;&quot;

Replace 600000 with desired maximum frequency. This is usable with the new overclocking kernels if you wish to manually change the maximum frequency to which processor can scale. Pay attention to the two exceptions in titan's kernels (124999 and 599000). The list of available frequencies on your device/kernel can be obtained with command:

 awk '{print $1/1000&quot; MHz&quot;}' /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state


===Reboot===

 echo &quot;reboot&quot; | sudo gainroot | echo &quot;&quot;

Warning: Consult forums before you try this, because currently DCEW executes some (all?) commands at startup. This will be optional in next version. Making a reboot button on current DCEW version could result in endless reboot loop.

====A much safer way====
write a file with the following content

  #!/bin/sh
  zenity --question --title=&quot;reboot?&quot; --text=&quot;are you sure ?&quot;
  if [ $? -eq 0 ]; then
  echo &quot;reboot&quot; | sudo gainroot | echo &quot;&quot;
  fi

save it to '''/bin/ask-reboot'''
then execute :
  chmod +x ask-reboot

now add a new command widget with the command '''&quot;ask-reboot&quot;''' .

make sure you uncheck the folowing check boxes
* update on boot
* update when switched to desktop

===FM transmitter===

====Enable/disable====

 /usr/bin/fmtx_client -p$(if [ $(cut -d. -f1 /proc/uptime ) -lt 100 ]; then echo 0; else /usr/bin/fmtx_client | /bin/grep -q '^state=enabled' ; echo $? ; fi) | /usr/bin/awk -F &quot;=&quot; '($1==&quot;state&quot;) {print $2}'

Note: when you reboot the device, this script waits 100 seconds before you can turn the transmitter on/off again.

====Increase power====

 echo &quot;echo 118 &gt; /sys/class/i2c-adapter/i2c-2/2-0063/power_level&quot; | sudo gainroot | echo &quot;&quot;


===DBUS call to start browser===

 /usr/bin/browser_dbuscmd.sh load_url http://www.bbc.co.uk/iplayer/console/bbc_radio_fourfm
[[Category:Software]]
[[Category:Power users]]

===Display a Conboy Note===
 python /home/user/conboy_note_to_text.py print noteid

'''conboy_note_to_text.py'''
Make sure to make this python script executable (chmod 755 /path/to/conboy_note_to_text.py). To list all notes with their title and id in xterm, just use the following commands: python /home/user/conboy_note_to_text.py list

Source : http://khertan.net/articles/maemo/conboy_note_to_text

Direct Script Link : http://khertan.net/_export/code/articles/maemo/conboy_note_to_text?codeblock=0

 #!/usr/lib/python2.5
 
 from xml.dom import minidom
 import os.path
 import glob
 import sys
 import re
 from xml.sax.handler import ContentHandler
 import xml.sax
 
 class NoteList:
    def __init__(self,path):
        self.path = path
        self.noteList = {}
        for infile in glob.glob( os.path.join(self.path, '*.note') ):
          note = Reader(os.path.basename(infile)[:-5])
          if note.title != None:
              self.noteList[note.title]=note.note_id
 
    def get_note_id_by_title(self,title):
        try:
            return self.noteList[title]
        except:
            return None
 
 class textHandler(ContentHandler):
    def __init__(self):
      ContentHandler.__init__(self)
      self.content = &quot;&quot;
      self.title = &quot;&quot;
      self.selector = None
 
    def startElement(self, element,attributes):
        if (element == 'note-content') and (self.selector == None):
            self.selector = element
        elif (element == 'title') and (self.selector == None):
            self.selector = element
 
 
    def endElement(self, element):
        if (element == self.selector):
            self.selector = None
 
    def characters(self, ch):
        if self.selector == 'note-content':
            self.content = self.content + unicode(ch)
        elif self.selector == 'title':
            self.title = self.title + unicode(ch)
 
 class Reader:
    def __init__(self,note_id):
        self.note_id = note_id
        self.content = None
        self.title = None
 
        try:
            parser = xml.sax.make_parser()
            handler = textHandler()
            parser.setContentHandler(handler)
              parser.parse(os.path.join(os.path.expanduser(&quot;~&quot;),'.conboy',self.note_id+'.note'))
            self.content = handler.content
            self.title = handler.title 
        except StandardError,e:
            print e
 
 
 
 if __name__ == &quot;__main__&quot;:
    try:
        if (sys.argv[1]=='print'):
            print Reader(unicode(sys.argv[2])).content
        elif (sys.argv[1]=='list'):
            nlist = NoteList('/home/user/.conboy/').noteList
            for key in nlist.keys():
                print key, ' : ', nlist[key]
        elif (sys.argv[1]=='search'):
            nlist = NoteList('/home/user/.conboy/')
            print nlist.get_note_id_by_title(sys.argv[2])
        else:
            raise
    except StandardError,e:
            print &quot;&quot;&quot;Usage : python conboy_note_reader.py option [note_id or note title]
            Option : 
                - list : list all note by title with id
                - print : print content of note with the given id
                - search : print id of the given title&quot;&quot;&quot;
            print e


== Scripts to pull data from remote web sites ==

Although these are also scripts to display information, of a sort, I've created  a separate section for scripts that use DCEW to replace the use of a mobile web browser in certain situations. My first take on this is a set of scripts / widgets to enable me to access Transport for London's live bus travel information.

=== Transport for London - Live Bus Departures ===

==== Display departures for multiple local bus stops ====

Transport for London recently launched a mobile Web interface to their live bus departures information, and it's pretty good, but it can be a pain navigating to the bus stop that you want. This script uses DCEW to display data from multiple local bus stops, and to switch between them (by iterating over a list of them) on touching the widget.
 #!/bin/sh
 
 BUS_STOPS=&quot;50713 48598 53221 74407&quot;
 
 if [ -r &quot;/tmp/.bus_stops&quot; ]; then
 	BUS_STOPS=`cat /tmp/.bus_stops`;
 else
 	echo $BUS_STOPS &gt; /tmp/.bus_stops;
 	chmod 777 /tmp/.bus_stops
 fi
 
 LOOP=0
 if [ -r &quot;/tmp/.countdown&quot; ]; then
 LOOP=`cat /tmp/.countdown`;
 fi
 let LOOP=$LOOP+1;
 STOPCOUNT=`echo $BUS_STOPS | wc -w`;
 if [ &quot;$LOOP&quot; -gt &quot;$STOPCOUNT&quot; ]; then
   LOOP=1;
 fi;
 echo $LOOP &gt;/tmp/.countdown
 chmod 777 /tmp/.countdown
 
 THISTIME=`echo $BUS_STOPS | cut -d&quot; &quot; -f $LOOP`;
 
 lynx -dump -nolist http://m.countdown.tfl.gov.uk/arrivals/$THISTIME | grep -A10 &quot;Buses dep&quot; | sed -e &quot;s/^   //g&quot; | grep [a-z] | egrep -v &quot;(Refresh|See\ map|Buses\ departing)&quot;

==== Display departures for multiple lists of multiple bus stops ====

This second script, designed to be used with an additional DCEW on the same screen as the first, changes the list of bus stops associated with the script above and displays the place name with which they are associated. So, using this second widget, I can switch the first widget between the list of bus stops that I require in one place, and the list that I require in another. This limits the length of any individual list and will eventually let me access four or five lists of stops according to where I happen to be.

 #!/bin/sh
 
 Kingston_Vale=&quot;50713 48598 53221 74407&quot;
 Roehampton=&quot;75656 74598 71874&quot;
 
 BUS_STOPS=&quot;Kingston_Vale Roehampton&quot;;
 
 LOOP=0
 if [ -r &quot;/tmp/.countdown2&quot; ]; then
 LOOP=`cat /tmp/.countdown2`;
 fi
 let LOOP=$LOOP+1;
 STOPCOUNT=`echo $BUS_STOPS | wc -w`;
 if [ &quot;$LOOP&quot; -gt &quot;$STOPCOUNT&quot; ]; then
   LOOP=1;
 fi;
 echo $LOOP &gt;/tmp/.countdown2
 chmod 777 /tmp/.countdown2
 
 THISTIME=`echo $BUS_STOPS | cut -d&quot; &quot; -f $LOOP`;
 
 eval STOPLIST=\$$THISTIME
 echo $STOPLIST &gt;/tmp/.bus_stops
 chmod 777 /tmp/.bus_stops
 echo $THISTIME | sed -e s/_/\ /g

==== Multiple lists of multiple stops with file-based configuration ====

This third script combines the functionality for both of the above widgets from a single script, to be installed as e.g. /usr/local/bin/countdown, and moves the bus stop configuration from variables to flat files, arranged by placename. It also adds some command-line functionality (not yet widgetised), which enables you to configure a given placename from the 5-digit code of a single bus stop.

 #!/bin/sh
 
 case $1 in
 	&quot;--display&quot;)
 	# This mode is used by the main DCEW to display information about a bus stop.
 	echo &quot;........................................................................................................................&quot;;
 
 
 	if [ -r &quot;/tmp/.bus_stops&quot; ]; then
 		BUS_STOPS=`cat /tmp/.bus_stops`;
 	else
 		BUS_STOPS=`cat /home/user/countdown/places/Kingston_Vale`;
 		echo $BUS_STOPS &gt; /tmp/.bus_stops;
 		chmod 777 /tmp/.bus_stops
 	fi
 	LOOP=0
 	if [ -r &quot;/tmp/.countdown&quot; ]; then
 		LOOP=`cat /tmp/.countdown`;
 	fi
 	let LOOP=$LOOP+1;
 	STOPCOUNT=`echo $BUS_STOPS | wc -w`;
 	if [ &quot;$LOOP&quot; -gt &quot;$STOPCOUNT&quot; ]; then
   		LOOP=1;
 	fi;
 	THISTIME=`echo $BUS_STOPS | cut -d&quot; &quot; -f $LOOP`;
 	LOCKED=&quot;&quot;;
 	if [ -r &quot;/tmp/.countdownlock&quot; ] &amp;&amp; [ -r &quot;/tmp/.laststop&quot; ]; then
 		THISTIME=`cat /tmp/.laststop`;
 		LOOP=`cat /tmp/.countdown`;
 		LOCKED=&quot;- LOCKED&quot;;
 	fi;
 	echo $LOOP &gt;/tmp/.countdown
 	chmod 777 /tmp/.countdown
 
 
 
 	lynx -connect_timeout=10 -dump -nolist http://m.countdown.tfl.gov.uk/arrivals/$THISTIME | grep -A10 &quot;Buses dep&quot; | sed -e &quot;s/^   //g&quot; | grep [a-z] | egrep -v &quot;(Refresh|See\ map|Buses\ departing|Route)&quot; | sed -e &quot;s/Bus stop code //g&quot; | fold -w 53
 	echo &quot;........................................................................................................................&quot;;
 	echo &quot;Stop $LOOP of $STOPCOUNT in `cat /tmp/.lastplace` ($THISTIME) $LOCKED&quot;;
 	echo $THISTIME &gt; /tmp/.laststop
 	chmod 777 /tmp/.laststop
 	;;
 
 	&quot;--switch&quot;)
 	# This mode can be used by a second DCEW to switch between lists of stops by place name
 	if [ -r &quot;/tmp/.countdownlock&quot; ] &amp;&amp; [ -r &quot;/tmp/.laststop&quot; ]; then
 		rm -f /tmp/.countdownlock;
 	fi;
 	BUS_STOPS=`ls /home/user/countdown/places`;
 	LOOP=0
 	if [ -r &quot;/tmp/.countdown2&quot; ]; then
 	LOOP=`cat /tmp/.countdown2`;
 	fi
 	let LOOP=$LOOP+1;
 	STOPCOUNT=`echo $BUS_STOPS | wc -w`;
 	if [ &quot;$LOOP&quot; -gt &quot;$STOPCOUNT&quot; ]; then
   	LOOP=1;
 	fi;
 	echo $LOOP &gt;/tmp/.countdown2
 	chmod 777 /tmp/.countdown2
 	THISTIME=`echo $BUS_STOPS | cut -d&quot; &quot; -f $LOOP`;
 	STOPLIST=`cat /home/user/countdown/places/$THISTIME`;
 	echo $STOPLIST &gt;/tmp/.bus_stops
 	chmod 777 /tmp/.bus_stops
 	echo 0 &gt; /tmp/.countdown
 	chmod 777 /tmp/.countdown
 	echo $THISTIME | sed -e s/_/\ /g
 	echo $THISTIME | sed -e s/_/\ /g &gt; /tmp/.lastplace
 	chmod 777 /tmp/.lastplace
 	;;
 
 	&quot;--lock&quot;)
 	# This mode can be used by a third DCEW to lock the --display option to refresh only the current stop.
 	# Touch it again to have the --display option return to paging through stops in the local area.
 	if [ -r &quot;/tmp/.countdownlock&quot; ]; then
 		rm -f /tmp/.countdownlock
 		echo &quot;next stop&quot;
 	else
 		touch /tmp/.countdownlock
 		echo &quot;refresh this stop&quot;
 	fi
 
 	;;
 
 	&quot;--save&quot;)
 	mkdir -p /home/user/countdown/places/
 	FILE=`echo &quot;$2&quot; | sed -e &quot;s/ /_/g&quot;`;
 	cat /tmp/.bus_stops &gt; /home/user/countdown/places/$FILE
 	chown -R user /home/user/countdown/places
 	;;
 
 	&quot;--near&quot;)
 	lynx -dump http://m.countdown.tfl.gov.uk/stopsNearStop/$2 | grep /arrivals/ | cut -d / -f 5 | while read stop; do out=&quot;$out $stop&quot;; echo $out &gt; /tmp/.out; done; 
 	cat /tmp/.out &gt; /tmp/.bus_stops
 
 	if [ ! -z &quot;$3&quot; ]; then
 		$0 --save &quot;$3&quot;
 	fi 
 
 	;;
 	&quot;--setup&quot;)
 	countdown --near 50713 &quot;Kingston Vale&quot;
 	countdown --near 75040 &quot;Putney Bridge&quot;
 	countdown --near 76581 &quot;Putney Station&quot;
 	countdown --near 48368 &quot;Norbiton&quot;
 	countdown --near 47140 &quot;Kingston Eden Street&quot;
 	countdown --near 50516 &quot;Kingston Cromwell Rd&quot;
 	countdown --near 59403 &quot;Kingston Hill&quot;
 	countdown --near 48680 &quot;Roehampton&quot;
 	countdown --near 53574 &quot;Roehampton Vale&quot;
 	countdown --near 57027 &quot;Wandsworth&quot;
 	countdown --near 47613 &quot;Earlsfield&quot;
 	chown -R user /home/user/countdown/places/*
 	;;
 
 	&quot;--clear&quot;)
 	rm -rf /home/user/countdown/places/*
 	;;
 
 	&quot;--delete-stop&quot;)
 	sed -i -e &quot;s/`cat /tmp/.laststop`//g&quot; /home/user/countdown/places/`cat /tmp/.lastplace|sed -e &quot;s/ /_/g&quot;`
 	cp /home/user/countdown/places/`cat /tmp/.lastplace|sed -e &quot;s/ /_/g` /tmp/.bus_stops
 	echo `cat /tmp/.laststop`
 	;;
 
 	&quot;--home-stop&quot;)
 	$0 --near `cat /tmp/.laststop` &quot;`cat /tmp/.lastplace`&quot;
 	cp /home/user/countdown/places/`cat /tmp/.lastplace|sed -e &quot;s/ /_/g` /tmp/.bus_stops
 	echo `cat /tmp/.laststop`
 	;;
 
 	&quot;--delete-place&quot;)
 	rm -f /home/user/countdown/places/`cat /tmp/.lastplace`
 	;;
 
 	&quot;--edit-place&quot;)
 	sed -i &quot;s/  / /g&quot; /home/user/countdown/places/`cat /tmp/.lastplace|sed -e &quot;s/ /_/g&quot;`
 	leafpad /home/user/countdown/places/`cat /tmp/.lastplace|sed -e &quot;s/ /_/g&quot;`
 	cp /home/user/countdown/places/`cat /tmp/.lastplace|sed -e &quot;s/ /_/g&quot;` /tmp/.bus_stops
 	echo &quot;&quot;
 	;;
 
 esac


The idea here is that I go to a new place, let's say Putney, and I get off at The Embankment, which turns out to be stop 75040. I can now run:

 # countdown --near 75040

and override the current list of bus stops with the nine stops nearest to stop 75040, or, to store the configuration, I can run

 # countdown --near 75040 &quot;Putney&quot;

and the script will save a new location called Putney which I can then switch using the previously described switching functionality via DCEW. All that needs to be done to configure the script for the places you visit is to pick a bus stop that is fairly central to that location and run with --near to store the configuration.</text>
    </revision>
  </page>
  <page>
    <title>Desktop Command Execution Widget scripts</title>
    <id>3748</id>
    <revision>
      <id>50688</id>
      <timestamp>2012-11-06T09:35:19Z</timestamp>
      <contributor>
        <ip>85.54.116.66</ip>
      </contributor>
      <comment>/* Internal memory for user data (27GB /home/user/MyDocs) free space */</comment>
      <text xml:space="preserve">Desktop Command Execution widget is one of the most useful widgets on your Maemo desktop. It can be used to show certain information (for example battery level in percentage) or as a button which can be used for example to disconnect active internet connection (you need to tap 3 times and also wait for menus to appear without this widget). Therefore it can replace many other applications/widgets/applets and you can also make something new. Here you'll find a collection of scripts that can be added to the widget. The discussion about the widget is [http://talk.maemo.org/showthread.php?t=39177 on the forum].

Scripts are also compatible with [[Queen BeeCon Widget]] which has extended graphic and cosmetic functionality, but is far more complicated.


==Making your own scripts==

===Scripts without output===

When there's no output (for example if you're using widget as a button and you use D-Bus call) the widget displays &quot;Invalid Command&quot;. This can be most easily avoided if you pipe echo &quot;&quot; at the end of the command. This is also usable if your script produces unwanted output (D-Bus reply for example).

 dbus-send -options -moreoptions | echo &quot;&quot;

Collection of D-Bus calls can be found on [[Phone control]] wiki page. The basic principle for making a script for DCEW is the same as above (D-Bus command and piping an echo).

===Scripts with long output===

Some scripts may create multiple lines which are too long to be displayed on a single line. The widget will not wrap these. In order to wrap them you can use the fold command:
 
 command-that-produces-long-lines | fold -s -w 100

The 80 in that instance is the maximum length of the line, which you can change. The -s option makes fold word wrap with spaces. More information is available from the [http://unixhelp.ed.ac.uk/CGI/man-cgi?fold fold man page].

==Scripts to display information==

===Battery (via Nokia's BME) ===

All battery scripts are collected here. Pick the one which suits your needs. Examples of the output values are under each one.

There are 2 values for full battery capacity available. First one is design charge in mAh, which is always the same (1273 mAh). The second one is the one used in these scripts and it is the full charge from last charging. With displaying this one you can also monitor battery wear level.

Battery percentage level is calculated using first value and is therefore less accurate, that's why you cannot achieve 100% full battery, but only about 95%. After some time the full percentage will be even lower.

But last full charge value has one disadvantage. This is that after a reboot the phone forgets this value and the value returned is 0. It shows the proper value after next charging.


====Percentage, current and last full charge====

 hal-device bme | awk '/l.p/ {perc = $3}; /g.c/ {curr = $3}; /g.la/ {last = $3}; /s_c/ {isch = $3} END if (isch == &quot;false&quot;) {print perc&quot; % (&quot;curr&quot;/&quot;last&quot; mAh)&quot;} else {print &quot;Charging&quot;}'

Output example: '''83 % (1000/1200 mAh)''', when charging '''Charging'''


====Percentage and current charge====

 hal-device bme | awk '/l.p/ {perc = $3}; /g.c/ {curr = $3}; /s_c/ {isch = $3} END if (isch == &quot;false&quot;) {print perc&quot; % (&quot;curr&quot; mAh)&quot;} else {print &quot;Charging&quot;}'

Output example: '''83 % (1000 mAh)''', when charging '''Charging'''


====Percentage====

 hal-device bme | awk '/l.p/ {perc = $3}; /s_c/ {isch = $3} END if (isch == &quot;false&quot;) {print perc&quot; %&quot;} else {print &quot;Chrg&quot;}'

Output example: '''83 %''', when charging '''Chrg'''


====Current and last full charge====

 hal-device bme | awk '/g.c/ {curr = $3}; /g.la/ {last = $3} END {print curr&quot;/&quot;last&quot; mAh&quot;}'

Output example: '''1000/1200 mAh'''


====Current charge====

 hal-device bme | awk '/g.c/ {print $3&quot; mAh&quot;}'

Output example: '''1000 mAh'''


====Last full charge====

 hal-device bme | awk '/g.la/ {print $3&quot; mAh&quot;}'

Output example: '''1200 mAh'''

===Battery (via bq27200 chip) ===

==== Percentage, current and last full charge, with TTE or TTF as appropriate ====


Install this as e.g. /usr/local/bin/bqbattery, make it executable and point DCEW to it. This is designed to work whether or not you have the bq27x00_battery module loaded, but if you don't, then you'll need to install the i2c-tools package, and then chmod 4755 /usr/sbin/i2cget (meaning i2cget runs as root even when we invoke it as user from DCEW).

 #!/bin/sh
 
 if [ -r &quot;/sys/class/power_supply/bq27200-0/capacity&quot; ]; then
 # We have bq27x00_battery loaded - get the values from /sys/class/power_supply/bq27200-0/
 CSOC=`cat /sys/class/power_supply/bq27200-0/capacity`;
 NAC=$((`cat /sys/class/power_supply/bq27200-0/charge_now` / 1000));
 LMD=$((`cat /sys/class/power_supply/bq27200-0/charge_full` / 1000));
 STATUS=`cat /sys/class/power_supply/bq27200-0/status`;
 if [ &quot;$STATUS&quot; == &quot;Discharging&quot; ]; then
        TTF=65535
        TTE=$((`cat /sys/class/power_supply/bq27200-0/time_to_empty_avg` / 60));
 else
        TTF=$((`cat /sys/class/power_supply/bq27200-0/time_to_full_now` / 60));
        TTE=65535
 fi
 else
 # We don't have bq27x00_battery - get the values using i2cget
 NAC=$(($(/usr/sbin/i2cget -y 2 0x55 0x0c w) * 3570 / 20 / 1000));
 LMD=$(($(/usr/sbin/i2cget -y 2 0x55 0x12 w) * 3570 / 20 / 1000));
 CSOC=$(($(/usr/sbin/i2cget -y 2 0x55 0x2c)));
 TTF=$(($(/usr/sbin/i2cget -y 2 0x55 0x18 w)));
 TTE=$(($(/usr/sbin/i2cget -y 2 0x55 0x16 w)));
 fi
 echo &quot;$CSOC% ($NAC/$LMD mAh)&quot;
 if [ &quot;$TTF&quot; -eq 65535 ]; then
         echo &quot;$TTE minutes to empty&quot;
 else
         echo &quot;$TTF min to full battery&quot;
 fi

Output example:

'''88% (1269/1439 mAh)'''

'''37 min to full battery'''

===IP===

Internal IPs are obtained from the ifconfig and external IPs are obtained from the internet, because gprs0 IP which you can get with ifconfig is often from private address range, because mobile operators like to use NAT.


====External (WAN) and internal (LAN)====

 echo WAN IP: `wget -t 2 -T 3 -q -O - api.myiptest.com | awk -F &quot;\&quot;&quot; '{print $4}'`; echo LAN IP: `/sbin/ifconfig wlan0 | awk -F &quot;[: ]&quot; '/Bc/ {print $13}'`

Output example:

'''WAN IP: 1.2.3.4'''

'''LAN IP: 192.168.1.2'''


 echo WAN IP: `wget -t 2 -T 3 -q -O - api.myiptest.com | awk -F &quot;\&quot;&quot; '{print $4 &quot; (&quot;$12&quot; &quot;toupper($28)&quot;)&quot;}'`; echo LAN IP: `/sbin/ifconfig wlan0 | awk -F &quot;[: ]&quot; '/Bc/ {print $13}'`

Output example:

'''WAN IP: 1.2.3.4 (ISP CountryCode)'''

'''LAN IP: 192.168.1.2'''


 echo WAN IP: `wget -t 2 -T 3 -q -O - api.myiptest.com | awk -F &quot;\&quot;&quot; '{print $4&quot; (&quot;$12&quot; @ &quot;$20&quot;, &quot;toupper($28)&quot;)&quot;}'`; echo LAN IP: `/sbin/ifconfig wlan0 | awk -F &quot;[: ]&quot; '/Bc/ {print $13}'`

Output example:

'''WAN IP: 1.2.3.4 (ISP @ City, CountryCode)'''

'''LAN IP: 192.168.1.2'''

====External (WAN)====

 wget -t 2 -T 3 -q -O - api.myiptest.com | awk -F &quot;\&quot;&quot; '{print $4}'
or another one, as api.myiptest.com sometimes is down
 wget -t 2 -T 3 -q -O - checkip.dyndns.com | awk -F &quot;: &quot; '{print $2}' | awk -F &quot;&lt;/&quot; '{print $1}' 

Output example: '''1.2.3.4'''


 wget -t 2 -T 3 -q -O - api.myiptest.com | awk -F &quot;\&quot;&quot; '{print $4 &quot; (&quot;$12&quot; &quot;toupper($28)&quot;)&quot;}'

Output example: '''1.2.3.4 (ISP CountryCode)'''


 wget -t 2 -T 3 -q -O - api.myiptest.com | awk -F &quot;\&quot;&quot; '{print $4&quot; (&quot;$12&quot; @ &quot;$20&quot;, &quot;toupper($28)&quot;)&quot;}'

Output example: '''1.2.3.4 (ISP @ City, CountryCode)'''

====Internal (LAN)====

 /sbin/ifconfig wlan0 | awk -F &quot;[: ]&quot; '/Bc/ {print $13}'

This one displays only wlan0 IP (used for SSH, WinSCP, VNC... in LAN).

===Disk usage===

====rootfs (256MB /) percentage used====

 df | awk '$1 == &quot;rootfs&quot; {print $5}'


====rootfs (256MB /) free space====

 df -h | awk '$1 == &quot;rootfs&quot; {print $4}'


====Internal memory for user data (27GB /home/user/MyDocs) percentage used====

 df /home/user/MyDocs | awk '/My/ {print $5}'


====Internal memory for user data (27GB /home/user/MyDocs) free space====

 df -h /home/user/MyDocs | awk '/My/ {print $4}'

====Internal memory for application data (2GB /home) percentage used====

 df /home | awk '/ho/ {print $5}'


====Internal memory for application data (2GB /home) free space====

 df -h /home | awk '/ho/ {print $4}'


====Memory card (/media/mmc1) percentage used====

 df /media/mmc1 | awk '/mm/ {print $5}'


====Memory card (/media/mmc1) free space====

 df -h /media/mmc1 | awk '/mm/ {print $4}'


===Cellular signal===

====Quality====

 dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_signal_strength | awk 'NR==2 {print $2&quot; %&quot;}'

====Strength====

 dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_signal_strength | awk 'NR==3 {print &quot;-&quot;$2&quot; dBm&quot;}'


===Wi-Fi signal===

====Quality====

 awk -F &quot;[. ]&quot; '/0/ {print $6&quot; %&quot;}' /proc/net/wireless


====RSSI====

 awk '/0/ {print $4&quot; dBm&quot;}' /proc/net/wireless


====Noise====

 awk -F &quot;[. ]&quot; '/0/ {print $12&quot; dBm&quot;}' /proc/net/wireless


===CPU frequency===

 awk '{print $1/1000&quot; MHz&quot;}' /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

====Usage of each frequency====

 awk -v var=$(awk '{sum+=$2}; END {print sum};' /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state) '{arr[$3]=$2}{for (i in arr) {print $1/1000 &quot; mhz &quot; int(arr[i]*100/var)&quot;%&quot;}}' /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state

The same, but without unused lines

 awk -v var=$(awk '{sum+=$2}; END {print sum};' /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state) '{arr[$3]=$2}{for (i in arr) {print $1/1000 &quot; mhz &quot; int(arr[i]*100/var)&quot;%&quot;}}' /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state | grep -v &quot; 0%&quot;

===Memory usage===

====RAM used====

 awk '/mT/ {memttl = $2}; /mF/ {memfre = $2}; /Bu/ {membff = $2}; $1 == &quot;Cached:&quot; {memcch = $2} END {printf (&quot;%.1f MB\n&quot;,(memttl-memfre-membff-memcch)/1024)}' /proc/meminfo


====RAM free====

 awk '/mF/ {memfre = $2}; /Bu/ {membff = $2}; $1 == &quot;Cached:&quot; {memcch = $2} END {printf (&quot;%.1f MB\n&quot;,(memfre+membff+memcch)/1024)}' /proc/meminfo


====Swap used====

 awk '/pT/ {swpttl = $2}; /pF/ {swpfre = $2} END {printf (&quot;%.1f MB\n&quot;,(swpttl-swpfre)/1024)}' /proc/meminfo


====Swap free====

 awk '/pF/ {printf (&quot;%.1f MB\n&quot;,$2/1024)}' /proc/meminfo


====Total memory used====

 awk '/mT/ {memttl = $2}; /mF/ {memfre = $2}; /Bu/ {membff = $2}; $1 == &quot;Cached:&quot; {memcch = $2}; /pT/ {swpttl = $2}; /pF/ {swpfre = $2} END {printf (&quot;%.1f MB\n&quot;,(memttl+swpttl-memfre-membff-memcch-swpfre)/1024)}' /proc/meminfo


====Total memory free====

 awk '/mF/ {memfre = $2}; /Bu/ {membff = $2}; $1 == &quot;Cached:&quot; {memcch = $2}; /pF/ {swpfre = $2} END {printf (&quot;%.1f MB\n&quot;,(memfre+membff+memcch+swpfre)/1024)}' /proc/meminfo


===GPRS data usage===

You can use this with scheduled reset of the GPRS data counter to display data usage for current month. Additional info can be found on [[fcron]] wiki page.

These scripts are now compatibile with PR1.2 (separate home and roaming counter), which means they won't work on previous versions.


====Home counter (combined)====

 echo `gconftool-2 -g /system/osso/connectivity/network_type/GPRS/gprs_home_rx_bytes` `gconftool-2 -g /system/osso/connectivity/network_type/GPRS/gprs_home_tx_bytes` | awk '{printf (&quot;%.1f MB\n&quot;,($1+$2)/1048576)}'


====Home counter (separated)====

 echo `gconftool-2 -g /system/osso/connectivity/network_type/GPRS/gprs_home_rx_bytes | awk '{printf (&quot;Download: %.1f MB\n&quot;,$1/1048576)}'`; echo `gconftool-2 -g /system/osso/connectivity/network_type/GPRS/gprs_home_tx_bytes | awk '{printf (&quot;Upload: %.1f MB\n&quot;,$1/1048576)}'`


====Roaming counter (combined)====

 echo `gconftool-2 -g /system/osso/connectivity/network_type/GPRS/gprs_roaming_rx_bytes` `gconftool-2 -g /system/osso/connectivity/network_type/GPRS/gprs_roaming_tx_bytes` | awk '{printf (&quot;%.1f MB\n&quot;,($1+$2)/1048576)}'


====Roaming counter (separated)====

 echo `gconftool-2 -g /system/osso/connectivity/network_type/GPRS/gprs_roaming_rx_bytes | awk '{printf (&quot;Download: %.1f MB\n&quot;,$1/1048576)}'`; echo `gconftool-2 -g /system/osso/connectivity/network_type/GPRS/gprs_roaming_tx_bytes | awk '{printf (&quot;Upload: %.1f MB\n&quot;,$1/1048576)}'`


===Time and date===

====Date====

 date +&quot;%a, %-d.%-m.%Y&quot;

This command will show the date in format (for example) '''Tue, 4.5.2010'''. You can define your own format (between the quotation marks). Possible options are described on [http://unixhelp.ed.ac.uk/CGI/man-cgi?date manpage].


====Time in different timezones====
 
 export TZ=&quot;Europe/London&quot;; date +%R

This one shows two timezones in format ''London: 13:04 | Denver: 06:04''

 echo &quot;London:&quot; `export TZ=&quot;Europe/London&quot;; date +%R` &quot;| Denver:&quot; `export TZ=&quot;America/Denver&quot;; date +%R`

London and Denver are taken as an example. TZ values can be found on [[:wikipedia:List_of_tz_database_time_zones|Wikipedia]].


===Uptime and load===

These scripts are formatproof meaning that they display what they're supposed to no matter what format is command &quot;uptime&quot; outputting. Not all scripts found are like that, because &quot;uptime&quot; command is a little bit complicated for scripted text processing. For example when the system is running under one hour only &quot;x min&quot; is shown, when it is running under one day &quot;hour:min:sec&quot; is shown and after that it is shown in format &quot;x days, hour:min:sec&quot;.


====Both====

 uptime | sed -e 's/.*up */uptime: /' -e 's/ average//' -e 's/  / /'


====Uptime====

 uptime | sed -e 's/.*p *//' -e 's/, l.*//' -e 's/  / /'


====Load====

 uptime | sed 's/.*e: //'


===Boot reason===

 cat /proc/bootreason


===Boot count===

 cat /var/lib/dsme/boot_count


===Temperature===

CPU's thermal sensors are not accessible, but there is one near the battery. This commands displays output of its readings, but IT IS NOT RELIABLE, because it doesn't always work. Sometimes the value returned is wrong or constant. It needs to be tested further.

 cat /sys/devices/platform/omap34xx_temp/temp1_input | awk '{ sub(/-/,&quot;&quot;); print $1&quot; °C&quot;}'

There is a working way now to read the correct temperature, but it is working only on a newer titan's kernels (normal, overclock, undervoltage). The bq27x00_battery module has to be loaded first.

 echo `cat /sys/class/power_supply/bq27200-0/temp` °C

with a comma : 

 echo `cat /sys/class/power_supply/bq27200-0/temp` °C | sed 's/\B[0-9]\{1\}/&amp;,/'

===Top processes===

This script displays top ''N'' CPU consuming processes. It excludes top itself, which is quite processor intensive so you probably don't want this updating too often. Modify ''N=3'' at the start to display different number of processes.

 N=3; top -bn 1 | grep -v top | head -n $(($N+4)) | tail -n $(($N+1)) | awk '{OFS = &quot;\t&quot;} {print $7,$8}'


===Random Number Generator===

This script displays a random number between 0 and ''M'' (''M'' included)

 M=6; dd if=/dev/urandom bs=1 count=4 2&gt;/dev/null | od -l | awk -v M=$M '{M++;print $2&lt;0?-$2%M:$2%M;exit}'



===Ping a Host===
Preferred method. Install netcat from [http://wiki.maemo.org/Documentation/devtools/maemo5#Installation]

 if (nc -zw1 192.168.2.1 80);then echo up;else echo down;fi

Alternate method. Ping has a long timeout when down. Warning: it will block the desktop while running.

 if (echo 'ping -c1 192.168.2.1' | rootsh /bin/sh  2&gt;&amp;1 &gt;/dev/null);then echo up;else echo down;fi

==Scripts for buttons==


Make sure that update policy for button widgets is set only to &quot;update when clicked&quot;. &quot;Update when switched to desktop&quot;, &quot;update interval&quot; and &quot;network presence&quot; should be disabled to avoid automatic actions. Also keep in mind that widgets are executed at every boot so they can for example automatically disable Wi-Fi when phone boots.

There is a bug in version 0.9 or lower which prevents you from using DCEW widgets as buttons, because they get activated (pressed) automatically all the time. You have to make sure DCEW is at least version 1.0, to check which version you have installed do this: dpkg -l desktop-cmd-exec.


===Networking===

====Connect/disconnect====

 sh /path/conn-disconn.sh | echo &quot;&quot;


'''conn-disconn.sh'''

 #!/bin/sh
 if [ `/sbin/route | awk '/au/ {print $1}'` = default ]; then
 dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true
 else
 dbus-send --system --type=method_call --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:&quot;[ANY]&quot; uint32:0
 fi


====Connect internet (show connections)====

 dbus-send --system --type=method_call --dest=com.nokia.icd_ui /com/nokia/icd_ui com.nokia.icd_ui.show_conn_dlg boolean:false | echo &quot;&quot;


====Connect to any saved connection====

 dbus-send --system --type=method_call --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:&quot;[ANY]&quot; uint32:0 | echo &quot;&quot;


====Disconnect internet====

 dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true | echo &quot;&quot;


====Enable/disable Wi-Fi====

 echo &quot;/path/to/script/wifi.sh&quot; | sudo gainroot | echo &quot;&quot;


'''wifi.sh script:'''

 #!/bin/sh
 out=`ifconfig wlan0`
 if [ $? -eq &quot;0&quot; ] ; then
 if [ `echo &quot;$out&quot; | grep -c RUNNING` -gt &quot;0&quot; ] ; then
 run-standalone.sh dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true
 fi
 ifconfig wlan0 down
 rmmod wl12xx
 run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:'Wi-Fi disabled'
 exit 2
 else
 modprobe wl12xx
 wl1251-cal
 stop wlancond
 start wlancond
 ifconfig wlan0 up
 run-standalone.sh dbus-send --system --type=method_call --dest=com.nokia.icd_ui /com/nokia/icd_ui com.nokia.icd_ui.show_conn_dlg boolean:false
 exit 0
 fi

Don't forget to make it executable.


====Wake On Lan====
 
 /path/to/script/wol.py | echo &quot;&quot;
wol.py script;

 #! /usr/bin/python
 # Wake-On-LAN
 # Change ip range in the &quot;s.sendto(msg&quot; line 
 # and the MAC of the pc to wakeup in the bottom line
 import struct, socket
 def WakeOnLan(ethernet_address):
  # Construct a six-byte hardware address
  addr_byte = ethernet_address.split(':')
  hw_addr = struct.pack('BBBBBB', int(addr_byte[0], 16),
    int(addr_byte[1], 16),
    int(addr_byte[2], 16),
    int(addr_byte[3], 16),
    int(addr_byte[4], 16),
    int(addr_byte[5], 16))
  # Build the Wake-On-LAN &quot;Magic Packet&quot;...
  msg = '\xff' * 6 + hw_addr * 16
  # ...and send it to the broadcast address using UDP
  s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
  s.sendto(msg, ('192.168.1.255', 9))
  s.close()
 # Example use
 WakeOnLan('00:13:21:00:62:AE')
Don't forget to Chmod 755 wol.py


====Disconnect mobile network====

 dbus-send --system --type=method_call --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.set_radio boolean:false | echo &quot;&quot;


====Connect mobile network====

 dbus-send --system --type=method_call --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.set_radio boolean:true | echo &quot;&quot;


===Lock screen and keys===

 dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_tklock_mode_change string:&quot;locked&quot; | echo &quot;&quot;


===Radio mode===

====2G/3G====

 sh /path/to/script/2g3g.sh | echo &quot;&quot;


'''2g3g.sh script:'''

 #!/bin/sh
 if [ `dbus-send --system --type=method_call --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_selected_radio_access_technology | awk '/b/ {print $2}'` -eq 1 ]; then
 dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:2
 else
 dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:1
 fi

When 3G or Dual mode is active, the script will switch to 2G. And when 2G is active, it will switch to 3G.

Don't forget to make the script executable.


====2G====

 dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:1 | echo &quot;&quot;


====3G====

 dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:2 | echo &quot;&quot;


====Dual====

 dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:0 | echo &quot;&quot;


===Bluetooth===

====Enable====

 dbus-send --system --type=method_call --dest=org.bluez $(dbus-send --system --print-reply --dest=org.bluez / org.bluez.Manager.ListAdapters | awk -F &quot;\&quot;&quot; '/at/ {print $2}') org.bluez.Adapter.SetProperty string:Powered variant:boolean:true | echo &quot;&quot;


====Disable====

 dbus-send --system --type=method_call --dest=org.bluez $(dbus-send --system --print-reply --dest=org.bluez / org.bluez.Manager.ListAdapters | awk -F &quot;\&quot;&quot; '/at/ {print $2}') org.bluez.Adapter.SetProperty string:Powered variant:boolean:false | echo &quot;&quot;

===Profiles===

====General====

 dbus-send --type=method_call --dest=com.nokia.profiled /com/nokia/profiled com.nokia.profiled.set_profile string:&quot;general&quot; | echo &quot;&quot;


====Silent====

 dbus-send --type=method_call --dest=com.nokia.profiled /com/nokia/profiled com.nokia.profiled.set_profile string:&quot;silent&quot; | echo&quot;&quot;


====Toggle vibrating alert====

There are far more things you can do with your profile. Please have a look at the [[Phone_control#Get_all_profile_Values|profile values at the phone control page]]. This example disables vibrating alert for the active profile.


 # Which profile is active?
 if \
 dbus-send --print-reply --type=method_call \
 --dest=com.nokia.profiled /com/nokia/profiled \
 com.nokia.profiled.get_profile | grep -q general
 then
 	# general profile is active
 	dbus-send --type=method_call \
 	--dest=com.nokia.profiled /com/nokia/profiled \
 	com.nokia.profiled.set_value string:&quot;general&quot; \
 	string:&quot;vibrating.alert.enabled&quot; string:&quot;Off&quot;
 else
 	# silent profile is active
 	dbus-send --type=method_call \
 	--dest=com.nokia.profiled /com/nokia/profiled \
 	com.nokia.profiled.set_value string:&quot;silent&quot; \
 	string:&quot;vibrating.alert.enabled&quot; string:&quot;Off&quot;
 fi

You get the opposite behaviour (enable vibrating alert) simply by replacing &quot;Off&quot; two times by &quot;On&quot;.

===Lock (secure) the device===

 dbus-send --system --type=method_call --dest=com.nokia.system_ui /com/nokia/system_ui/request com.nokia.system_ui.request.devlock_open string:&quot;com.nokia.mce&quot; string:&quot;/com/nokia/mce/request&quot; string:&quot;com.nokia.mce.request&quot; string:&quot;devlock_callback&quot; uint32:'3' | echo &quot;&quot;


===Update e-mail===

 sh /path/to/script/email.sh | echo &quot;&quot;


'''email.sh script:'''

The script connects to the internet and refreshes e-mail. Keep in mind that Modest e-mail client which N900 uses is very slow in this aspect and send and recive can take up to minute and a half. Make it executable.

 #!/bin/sh
 run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:&quot;Updating e-mail...&quot;
 run-standalone.sh dbus-send --system --type=method_call --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:&quot;[ANY]&quot; uint32:0
 sleep 10
 run-standalone.sh dbus-send --type=method_call --dest=com.nokia.modest /com/nokia/modest com.nokia.modest.SendReceive


===Set maximum CPU frequency===

 echo &quot;echo 600000 &gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&quot; | sudo gainroot | echo &quot;&quot;

Replace 600000 with desired maximum frequency. This is usable with the new overclocking kernels if you wish to manually change the maximum frequency to which processor can scale. Pay attention to the two exceptions in titan's kernels (124999 and 599000). The list of available frequencies on your device/kernel can be obtained with command:

 awk '{print $1/1000&quot; MHz&quot;}' /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state


===Reboot===

 echo &quot;reboot&quot; | sudo gainroot | echo &quot;&quot;

Warning: Consult forums before you try this, because currently DCEW executes some (all?) commands at startup. This will be optional in next version. Making a reboot button on current DCEW version could result in endless reboot loop.

====A much safer way====
write a file with the following content

  #!/bin/sh
  zenity --question --title=&quot;reboot?&quot; --text=&quot;are you sure ?&quot;
  if [ $? -eq 0 ]; then
  echo &quot;reboot&quot; | sudo gainroot | echo &quot;&quot;
  fi

save it to '''/bin/ask-reboot'''
then execute :
  chmod +x ask-reboot

now add a new command widget with the command '''&quot;ask-reboot&quot;''' .

make sure you uncheck the folowing check boxes
* update on boot
* update when switched to desktop

===FM transmitter===

====Enable/disable====

 /usr/bin/fmtx_client -p$(if [ $(cut -d. -f1 /proc/uptime ) -lt 100 ]; then echo 0; else /usr/bin/fmtx_client | /bin/grep -q '^state=enabled' ; echo $? ; fi) | /usr/bin/awk -F &quot;=&quot; '($1==&quot;state&quot;) {print $2}'

Note: when you reboot the device, this script waits 100 seconds before you can turn the transmitter on/off again.

====Increase power====

 echo &quot;echo 118 &gt; /sys/class/i2c-adapter/i2c-2/2-0063/power_level&quot; | sudo gainroot | echo &quot;&quot;


===DBUS call to start browser===

 /usr/bin/browser_dbuscmd.sh load_url http://www.bbc.co.uk/iplayer/console/bbc_radio_fourfm
[[Category:Software]]
[[Category:Power users]]

===Display a Conboy Note===
 python /home/user/conboy_note_to_text.py print noteid

'''conboy_note_to_text.py'''
Make sure to make this python script executable (chmod 755 /path/to/conboy_note_to_text.py). To list all notes with their title and id in xterm, just use the following commands: python /home/user/conboy_note_to_text.py list

Source : http://khertan.net/articles/maemo/conboy_note_to_text

Direct Script Link : http://khertan.net/_export/code/articles/maemo/conboy_note_to_text?codeblock=0

 #!/usr/lib/python2.5
 
 from xml.dom import minidom
 import os.path
 import glob
 import sys
 import re
 from xml.sax.handler import ContentHandler
 import xml.sax
 
 class NoteList:
    def __init__(self,path):
        self.path = path
        self.noteList = {}
        for infile in glob.glob( os.path.join(self.path, '*.note') ):
          note = Reader(os.path.basename(infile)[:-5])
          if note.title != None:
              self.noteList[note.title]=note.note_id
 
    def get_note_id_by_title(self,title):
        try:
            return self.noteList[title]
        except:
            return None
 
 class textHandler(ContentHandler):
    def __init__(self):
      ContentHandler.__init__(self)
      self.content = &quot;&quot;
      self.title = &quot;&quot;
      self.selector = None
 
    def startElement(self, element,attributes):
        if (element == 'note-content') and (self.selector == None):
            self.selector = element
        elif (element == 'title') and (self.selector == None):
            self.selector = element
 
 
    def endElement(self, element):
        if (element == self.selector):
            self.selector = None
 
    def characters(self, ch):
        if self.selector == 'note-content':
            self.content = self.content + unicode(ch)
        elif self.selector == 'title':
            self.title = self.title + unicode(ch)
 
 class Reader:
    def __init__(self,note_id):
        self.note_id = note_id
        self.content = None
        self.title = None
 
        try:
            parser = xml.sax.make_parser()
            handler = textHandler()
            parser.setContentHandler(handler)
              parser.parse(os.path.join(os.path.expanduser(&quot;~&quot;),'.conboy',self.note_id+'.note'))
            self.content = handler.content
            self.title = handler.title 
        except StandardError,e:
            print e
 
 
 
 if __name__ == &quot;__main__&quot;:
    try:
        if (sys.argv[1]=='print'):
            print Reader(unicode(sys.argv[2])).content
        elif (sys.argv[1]=='list'):
            nlist = NoteList('/home/user/.conboy/').noteList
            for key in nlist.keys():
                print key, ' : ', nlist[key]
        elif (sys.argv[1]=='search'):
            nlist = NoteList('/home/user/.conboy/')
            print nlist.get_note_id_by_title(sys.argv[2])
        else:
            raise
    except StandardError,e:
            print &quot;&quot;&quot;Usage : python conboy_note_reader.py option [note_id or note title]
            Option : 
                - list : list all note by title with id
                - print : print content of note with the given id
                - search : print id of the given title&quot;&quot;&quot;
            print e


== Scripts to pull data from remote web sites ==

Although these are also scripts to display information, of a sort, I've created  a separate section for scripts that use DCEW to replace the use of a mobile web browser in certain situations. My first take on this is a set of scripts / widgets to enable me to access Transport for London's live bus travel information.

=== Transport for London - Live Bus Departures ===

==== Display departures for multiple local bus stops ====

Transport for London recently launched a mobile Web interface to their live bus departures information, and it's pretty good, but it can be a pain navigating to the bus stop that you want. This script uses DCEW to display data from multiple local bus stops, and to switch between them (by iterating over a list of them) on touching the widget.
 #!/bin/sh
 
 BUS_STOPS=&quot;50713 48598 53221 74407&quot;
 
 if [ -r &quot;/tmp/.bus_stops&quot; ]; then
 	BUS_STOPS=`cat /tmp/.bus_stops`;
 else
 	echo $BUS_STOPS &gt; /tmp/.bus_stops;
 	chmod 777 /tmp/.bus_stops
 fi
 
 LOOP=0
 if [ -r &quot;/tmp/.countdown&quot; ]; then
 LOOP=`cat /tmp/.countdown`;
 fi
 let LOOP=$LOOP+1;
 STOPCOUNT=`echo $BUS_STOPS | wc -w`;
 if [ &quot;$LOOP&quot; -gt &quot;$STOPCOUNT&quot; ]; then
   LOOP=1;
 fi;
 echo $LOOP &gt;/tmp/.countdown
 chmod 777 /tmp/.countdown
 
 THISTIME=`echo $BUS_STOPS | cut -d&quot; &quot; -f $LOOP`;
 
 lynx -dump -nolist http://m.countdown.tfl.gov.uk/arrivals/$THISTIME | grep -A10 &quot;Buses dep&quot; | sed -e &quot;s/^   //g&quot; | grep [a-z] | egrep -v &quot;(Refresh|See\ map|Buses\ departing)&quot;

==== Display departures for multiple lists of multiple bus stops ====

This second script, designed to be used with an additional DCEW on the same screen as the first, changes the list of bus stops associated with the script above and displays the place name with which they are associated. So, using this second widget, I can switch the first widget between the list of bus stops that I require in one place, and the list that I require in another. This limits the length of any individual list and will eventually let me access four or five lists of stops according to where I happen to be.

 #!/bin/sh
 
 Kingston_Vale=&quot;50713 48598 53221 74407&quot;
 Roehampton=&quot;75656 74598 71874&quot;
 
 BUS_STOPS=&quot;Kingston_Vale Roehampton&quot;;
 
 LOOP=0
 if [ -r &quot;/tmp/.countdown2&quot; ]; then
 LOOP=`cat /tmp/.countdown2`;
 fi
 let LOOP=$LOOP+1;
 STOPCOUNT=`echo $BUS_STOPS | wc -w`;
 if [ &quot;$LOOP&quot; -gt &quot;$STOPCOUNT&quot; ]; then
   LOOP=1;
 fi;
 echo $LOOP &gt;/tmp/.countdown2
 chmod 777 /tmp/.countdown2
 
 THISTIME=`echo $BUS_STOPS | cut -d&quot; &quot; -f $LOOP`;
 
 eval STOPLIST=\$$THISTIME
 echo $STOPLIST &gt;/tmp/.bus_stops
 chmod 777 /tmp/.bus_stops
 echo $THISTIME | sed -e s/_/\ /g

==== Multiple lists of multiple stops with file-based configuration ====

This third script combines the functionality for both of the above widgets from a single script, to be installed as e.g. /usr/local/bin/countdown, and moves the bus stop configuration from variables to flat files, arranged by placename. It also adds some command-line functionality (not yet widgetised), which enables you to configure a given placename from the 5-digit code of a single bus stop.

 #!/bin/sh
 
 case $1 in
 	&quot;--display&quot;)
 	# This mode is used by the main DCEW to display information about a bus stop.
 	echo &quot;........................................................................................................................&quot;;
 
 
 	if [ -r &quot;/tmp/.bus_stops&quot; ]; then
 		BUS_STOPS=`cat /tmp/.bus_stops`;
 	else
 		BUS_STOPS=`cat /home/user/countdown/places/Kingston_Vale`;
 		echo $BUS_STOPS &gt; /tmp/.bus_stops;
 		chmod 777 /tmp/.bus_stops
 	fi
 	LOOP=0
 	if [ -r &quot;/tmp/.countdown&quot; ]; then
 		LOOP=`cat /tmp/.countdown`;
 	fi
 	let LOOP=$LOOP+1;
 	STOPCOUNT=`echo $BUS_STOPS | wc -w`;
 	if [ &quot;$LOOP&quot; -gt &quot;$STOPCOUNT&quot; ]; then
   		LOOP=1;
 	fi;
 	THISTIME=`echo $BUS_STOPS | cut -d&quot; &quot; -f $LOOP`;
 	LOCKED=&quot;&quot;;
 	if [ -r &quot;/tmp/.countdownlock&quot; ] &amp;&amp; [ -r &quot;/tmp/.laststop&quot; ]; then
 		THISTIME=`cat /tmp/.laststop`;
 		LOOP=`cat /tmp/.countdown`;
 		LOCKED=&quot;- LOCKED&quot;;
 	fi;
 	echo $LOOP &gt;/tmp/.countdown
 	chmod 777 /tmp/.countdown
 
 
 
 	lynx -connect_timeout=10 -dump -nolist http://m.countdown.tfl.gov.uk/arrivals/$THISTIME | grep -A10 &quot;Buses dep&quot; | sed -e &quot;s/^   //g&quot; | grep [a-z] | egrep -v &quot;(Refresh|See\ map|Buses\ departing|Route)&quot; | sed -e &quot;s/Bus stop code //g&quot; | fold -w 53
 	echo &quot;........................................................................................................................&quot;;
 	echo &quot;Stop $LOOP of $STOPCOUNT in `cat /tmp/.lastplace` ($THISTIME) $LOCKED&quot;;
 	echo $THISTIME &gt; /tmp/.laststop
 	chmod 777 /tmp/.laststop
 	;;
 
 	&quot;--switch&quot;)
 	# This mode can be used by a second DCEW to switch between lists of stops by place name
 	if [ -r &quot;/tmp/.countdownlock&quot; ] &amp;&amp; [ -r &quot;/tmp/.laststop&quot; ]; then
 		rm -f /tmp/.countdownlock;
 	fi;
 	BUS_STOPS=`ls /home/user/countdown/places`;
 	LOOP=0
 	if [ -r &quot;/tmp/.countdown2&quot; ]; then
 	LOOP=`cat /tmp/.countdown2`;
 	fi
 	let LOOP=$LOOP+1;
 	STOPCOUNT=`echo $BUS_STOPS | wc -w`;
 	if [ &quot;$LOOP&quot; -gt &quot;$STOPCOUNT&quot; ]; then
   	LOOP=1;
 	fi;
 	echo $LOOP &gt;/tmp/.countdown2
 	chmod 777 /tmp/.countdown2
 	THISTIME=`echo $BUS_STOPS | cut -d&quot; &quot; -f $LOOP`;
 	STOPLIST=`cat /home/user/countdown/places/$THISTIME`;
 	echo $STOPLIST &gt;/tmp/.bus_stops
 	chmod 777 /tmp/.bus_stops
 	echo 0 &gt; /tmp/.countdown
 	chmod 777 /tmp/.countdown
 	echo $THISTIME | sed -e s/_/\ /g
 	echo $THISTIME | sed -e s/_/\ /g &gt; /tmp/.lastplace
 	chmod 777 /tmp/.lastplace
 	;;
 
 	&quot;--lock&quot;)
 	# This mode can be used by a third DCEW to lock the --display option to refresh only the current stop.
 	# Touch it again to have the --display option return to paging through stops in the local area.
 	if [ -r &quot;/tmp/.countdownlock&quot; ]; then
 		rm -f /tmp/.countdownlock
 		echo &quot;next stop&quot;
 	else
 		touch /tmp/.countdownlock
 		echo &quot;refresh this stop&quot;
 	fi
 
 	;;
 
 	&quot;--save&quot;)
 	mkdir -p /home/user/countdown/places/
 	FILE=`echo &quot;$2&quot; | sed -e &quot;s/ /_/g&quot;`;
 	cat /tmp/.bus_stops &gt; /home/user/countdown/places/$FILE
 	chown -R user /home/user/countdown/places
 	;;
 
 	&quot;--near&quot;)
 	lynx -dump http://m.countdown.tfl.gov.uk/stopsNearStop/$2 | grep /arrivals/ | cut -d / -f 5 | while read stop; do out=&quot;$out $stop&quot;; echo $out &gt; /tmp/.out; done; 
 	cat /tmp/.out &gt; /tmp/.bus_stops
 
 	if [ ! -z &quot;$3&quot; ]; then
 		$0 --save &quot;$3&quot;
 	fi 
 
 	;;
 	&quot;--setup&quot;)
 	countdown --near 50713 &quot;Kingston Vale&quot;
 	countdown --near 75040 &quot;Putney Bridge&quot;
 	countdown --near 76581 &quot;Putney Station&quot;
 	countdown --near 48368 &quot;Norbiton&quot;
 	countdown --near 47140 &quot;Kingston Eden Street&quot;
 	countdown --near 50516 &quot;Kingston Cromwell Rd&quot;
 	countdown --near 59403 &quot;Kingston Hill&quot;
 	countdown --near 48680 &quot;Roehampton&quot;
 	countdown --near 53574 &quot;Roehampton Vale&quot;
 	countdown --near 57027 &quot;Wandsworth&quot;
 	countdown --near 47613 &quot;Earlsfield&quot;
 	chown -R user /home/user/countdown/places/*
 	;;
 
 	&quot;--clear&quot;)
 	rm -rf /home/user/countdown/places/*
 	;;
 
 	&quot;--delete-stop&quot;)
 	sed -i -e &quot;s/`cat /tmp/.laststop`//g&quot; /home/user/countdown/places/`cat /tmp/.lastplace|sed -e &quot;s/ /_/g&quot;`
 	cp /home/user/countdown/places/`cat /tmp/.lastplace|sed -e &quot;s/ /_/g` /tmp/.bus_stops
 	echo `cat /tmp/.laststop`
 	;;
 
 	&quot;--home-stop&quot;)
 	$0 --near `cat /tmp/.laststop` &quot;`cat /tmp/.lastplace`&quot;
 	cp /home/user/countdown/places/`cat /tmp/.lastplace|sed -e &quot;s/ /_/g` /tmp/.bus_stops
 	echo `cat /tmp/.laststop`
 	;;
 
 	&quot;--delete-place&quot;)
 	rm -f /home/user/countdown/places/`cat /tmp/.lastplace`
 	;;
 
 	&quot;--edit-place&quot;)
 	sed -i &quot;s/  / /g&quot; /home/user/countdown/places/`cat /tmp/.lastplace|sed -e &quot;s/ /_/g&quot;`
 	leafpad /home/user/countdown/places/`cat /tmp/.lastplace|sed -e &quot;s/ /_/g&quot;`
 	cp /home/user/countdown/places/`cat /tmp/.lastplace|sed -e &quot;s/ /_/g&quot;` /tmp/.bus_stops
 	echo &quot;&quot;
 	;;
 
 esac


The idea here is that I go to a new place, let's say Putney, and I get off at The Embankment, which turns out to be stop 75040. I can now run:

 # countdown --near 75040

and override the current list of bus stops with the nine stops nearest to stop 75040, or, to store the configuration, I can run

 # countdown --near 75040 &quot;Putney&quot;

and the script will save a new location called Putney which I can then switch using the previously described switching functionality via DCEW. All that needs to be done to configure the script for the places you visit is to pick a bus stop that is fairly central to that location and run with --near to store the configuration.</text>
    </revision>
  </page>
  <page>
    <title>Desktop Search Hackfest</title>
    <id>877</id>
    <revision>
      <id>42881</id>
      <timestamp>2011-03-30T08:42:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>spam: Undo revision 42877 by [[Special:Contributions/Paulinafellini|Paulinafellini]] ([[User talk:Paulinafellini|Talk]])</comment>
      <text xml:space="preserve">[[Image:DesktopSearchHackfest.jpg]]

Hackfest around the Desktop Search and Metadata handling topic. Currently there are many partial solutions to the problem, so a hackfest could help to share some code, define lines to the projects and steal the good points of other projects :P

* [[Talk:Desktop_Search_Hackfest|Discussion page]]
* [[Desktop_Search_Hackfest/Schedule|Schedule draft]]

== Proposed dates ==

* After [[Maemo Summit 2008]] (September 19-20th + weekend)
** I would like to propose holding the actual hackfest on 20-21st Sept. Even though this gives a one-day overlap with the Maemo summit. This should also leave Monday as a scheduled wrap-up day.
* In Berlin

== Notes ==
* [[/Day one notes | Notes from the 1st day]]
* [[/Design discussion | Notes on designing desktop search]]

== Participants ==
* Name (Project / Location)
* Ben van Klinken (CLucene/NL)  mailinglist
* Jos van den Oever (Strigi/NL)  mailinglist
* Jamie McCracken (Tracker/Turks&amp;Caicos,Carribean)  mailinglist
* Sebastian Trueg (Nepomuk/Germany)   self covered trip + own accomondation  mailinglist
* Lukas Lipka (Beagle-Dashboard/Slovakia)  mailinglist
* Kevin Kubasik (Beagle/USA)  mailinglist
* Kevin Ottens (KDE Plasma search / France/Toulouse)  mailinglist
* Martyn Russel (Tracker/UK)   covered trip + stay  mailinglist
* Carlos Garnacho (Tracker/Spain)   covered trip + stay  mailinglist
* Philip van Hoof (Tracker/Belgium)   covered trip + stay  mailinglist
* Urho Konttori (Tracker/Finland)   covered trip + stay  mailinglist
* Ivan Frade (Tracker/Finland)   covered trip + stay  mailinglist
* Mikael Ottela (Tracker/Finland)   covered trip + stay  mailinglist
* Mikkel Kamstrup (Xesam/Denmark)  mailinglist
* Evgeny Egorochkin (Xesam/Ukraine)  mailinglist
* Sebastian Pölsterl (Deskbar-Applet/Germany)  mailinglist
* Ben Martin (libferris/Australia)  mailinglist
* Shivakumar Manishankar (Tracker tester)
* Anders Rune Jensen (Nemo/Denmark) mailinglist?
* Shivakumar Manishankar (Xesam/Tracker - Testing)
* Rob Taylor (gnome)
* Jürg Billeter (gnome)
* Marius Vollmer (Nokia)
* Otto Kopra (Nokia)

fabrice.colin (Pinot) was invited, is on mailinglist, but won't make it.

Michael Albinus (Xesam, Emacs, Debian) would like to attend the Ontology Workshop. He is on the Xesam mailing list on FDO. He should be notified ASAP when we know when the ontology workshop will be held. He lives in Berlin.

== Expected Arrivals ==
'''VERY IMPORTANT - NEEDED FOR FINDING ACCOMMODATION'''
=== Thursday 18 ===
'''Preferred day for arrivals, this way you have the whole Friday for warming up and attend the Maemo Summit.'''

* Ben van Klinken (Haarlem/NL: any time - booking himself)
* Urho Konttori (Helsinki 20:00+ - Urho group booking)
* Ivan Frade (Helsinki 18:00+ - Urho group booking)
* Philip van Hoof (Brussels/Eindhoven 18:00+ - Urho group booking)
* Martyn Russell (London 18:00+ - Urho group booking)
* Carlos Garnacho (Madrid 18:00+ - Urho group booking)
* Mikael Ottela (Helsinki 18:00+ - Urho group booking)
* Jamie McCracken (via New york 15:00+ - Urho group booking)
* Sebastian Pölsterl (from Munich, no preferred time - booking himself)
* Lukas Lipka (Bratislava 18:00+ - Quim group, booking requested to travel agent)
* Jos van den Oever (from Hengelo, arrive at 17.08 - Quim group, booking requested to travel agent)
* Kevin Ottens - Quim group, booking requested to travel agent
* Evgeny Egorochkin (Xesam/Ukraine - Quim group, booking requested to travel agent)
* Ben Martin (libferris/Australia - Quim group, booking requested to travel agent)  (date to be confirmed)
* Anders Rune Jensen (unknown time and location)
* Shivakumar Manishankar (Helsinki 18:00+ - Urho group booking)
* Rob Taylor (Manchester 18:00+ - Urho group booking )
* Jürg Billeter (Zürich 18:00+ - Urho group booking )
* Marius Vollmer (Helsinki 17:00+ - Own booking - own hotel)
* Otto Kopra (Helsinki 17:00+ - Own booking - own hotel)

=== Friday 19 ===
* Kevin Kubasik (from SLC Int'l- Quim group, booking requested to travel agent) Can leave 9pm on thursday
* Mikkel Kamstrup (Xesam/Denmark) (Copenhagen, 15:15)
* Sebastian Trueg (Mandriva/Germany)

=== Saturday 20 ===

== Expected Departures ==
'''VERY IMPORTANT - NEEDED FOR FINDING ACCOMMODATION'''

=== Sunday 21 ===

=== Monday 22 ===
* Urho Konttori
* Ivan Frade
* Philip van Hoof
* Martyn Russell
* Carlos Garnacho
* Mikael Ottela
* Sebastian Pölsterl (Returning to Munich between 18:00 and 22:00)
* Kevin Kubasik (Returning to Washington Dulles)
* Lukas Lipka
* Ben van Klinken
* Kevin Ottens
* Mikkel Kamstrup (Xesam/Denmark) (Returning to Copenhagen, departure 20:55)
* Anders Rune Jensen
* Rob Taylor 
* Jürg Billeter
* Marius Vollmer
* Otto Kopra

=== Tuesday 23 ===
'''Monday night is the last one covered by the Hackfest sponsorship. Feel free staying until Tuesday making the most of your trip.'''

* Jamie McCracken
* Jos van den Oever
* Ben Martin
* Evgeny Egorochkin (Xesam/Ukraine)
* Ben Martin (libferris/Australia)  (date to be confirmed)

== Proposed items to work ==

The sessions are being ordered/organized in the [[Desktop_Search_Hackfest/Schedule | Schedule]] page.

=== Concrete Coding Tasks ===

* Xesam integration in file chooser and Nautilus. Possibly use xesam-glib
* Specify a DBus specification for thumbnailers
* Create language bindings for xesam-glib (specifically Vala, C#, and Python) for xesam-glib and use these achieve
** a deskbar module
** a Gnome Do add-in
** Gnome launch box extension
*** Sebastian has mentioned that he would like to work on Python and C# bindings for xesam-glib as well as a Deskbar module
* Create/draft a xesam-gtk library with widgets empowered by xesam-glib
* Create a small server that exposes the Xesam search engine over Avahi (probably over http). This is correlated with the &quot;Xesam over alternative protocols BOF&quot;.
* Create a common metadata test corpus
* Create a common metadata unit test suite for the most common file types
** Improve current extractors (all engines). Prepare a huge database of creative commons contents with a lot of metadata, including corrupted files before the hack meeting. Prepare an automated script to check if we are extracting the interesting information from the files (showing information like &quot;extraced the expected information in 90% of the mp3, incomplete information in 9%, crashed in 1% of them&quot;). We can even organize a small competition with a modest prize.
* Time ordering / searching optimized model for tracker
* Category optimized database model for tracker
* Document Xesam ontology
** See [[Desktop_Search_Hackfest/XesamOntology|Xesam Ontology BOF and Hackfest page]]

==== Beagle Coding Task Ideas ====
* Beagle-Xesam work, we will have almost everyone involved in this spec available too us, so lets work on getting our compatibility 100%
** Gnome-Do plugin. I want a solid beagle plugin for Gnome-Do, should be a super-quick codeup (Preferably over xesam!)
* Dashboard. I have a million and one ideas working for this, but the core of it would hopefully be getting some unified means of generating clue packets/context. I am thinking that utilizing screenreader api's to get working windows/text could be very helpful here. 
** Work towards functional/usable/stable UI. Maybe even alpha demo?
* Beagle Client Optimization. We still do the whole XML serializing and deserializing thing... Look into Dbus/Protocol Buffers to increase performance
** This could increase the beagle-xesam performance considerably, and has the potential to fix Dashboard bottlenecks as well.

=== BOF Sessions ===
* There are several metadata-heavy technologies emerging. Soylent, People, Online Desktop/Desktop Data Model, Xesam, and others. Can we somehow work more together? They all appear to take slightly different approaches.
* How to share metadata between engines when it's not stored in the file itself (say... tags)
* How to share extractors between the engines. (How many code to read id3 is out there?)
* A shared way to harvest metadata and register metadata extractors or sources. This is also relevant for Xesam.
* Dashboard? Why has the idea that everybody loved never landed on consumer desktops? How can we make it real. What technical solutions do we need in place?
* While it is pretty hype to talk about desktop search and even write lots of code for it, why is it not more integrated in the desktop than it is? A big reason is of course the quality of the search engine. I can think of a lot of other reasons though (feel the teaser!).
* Xesam over alternative protocols. Keywords: http/REST, Avahi, Bluetooth, XMLRPC, Soap, Plain ol' socket.
* How can we integrate pervasive searching capabilities in the current Gnome desktop (ie. without changing the desktop interaction model)
* How can we create a whole new user interface based on metadata and instant searches. Ie possibly breaking totally with the standard interaction model of the desktop. One possible starting point:
** &quot;do-what-I-think-desktop&quot; The basic premise is &quot;the user should not need to even touch the computer. It should just do the expected/desired in all circumstances without user interaction&quot;. Then see how far we can go with statistical analysis of historic user actions and rich metadata - and then accept that we can not achieve the end goal, but still get as close as possible.
* Discuss the Xesam Metadata Storage spec. It is slated to be included in the post 1.0 release of Xesam, but there is very little concrete written down or agreed upon. This can seriously use a lot of discussion. It has ramifications into Soylent and desktop-data-model as well, probably others too.
* Gnome and Nepomuk? Hitherto Gnome and Nepomuk has not really been related at all. Even though Xesam and Nepomuk has its disagreements we are also trying to collaborate. Should Gnome do more, what steps would be necessary to utilize Nepomuk technologies in Gnome?
* Semantic Gnome?
* Smarter Searching in Gnome: Keyword matching is cool, but user data is becoming more and more massive, Terabyte desktops are not unheard of. Thousands of e-mails and documents need a better ranking system.
* Xesam Ontology review and discussion. This should be very, very, high priority if you ask me. Preferably lead by Evgeny. A very good follow-up to this would be to make it continue into an ontology-documentation hackparty --[[User:kamstrup|kamstrup]] 09:53, 3 August 2008 (UTC). 
** See [[Desktop_Search_Hackfest/XesamOntology|Xesam Ontology BOF and Hackfest page]]
* Xesam Roadmap to 1.0. Set deadline for 1.0. Outline items needing to be addressed. Who does what. Etc.
* Xesam post 1.0, a BOF about Xesam's future. Xesam 1.1 features - fx. index metadata (term count), metadata storage api, see [[http://xesam.org/main/XesamIteration2]]. Xesam 2.0?
* PagedSearch for xesam (Philip is interested in leading this BOF)

== Meta ==
* It would be great to have RC3 of the Xesam Search spec ready at least a week or two ahead of this. It is likely to contain some (minor) API-breaks. Probably an updated xesam-glib to go with it too.
* Given an updated Xesam spec it would be great to have all servers updated to the latest spec and have easy-to-set-up trunks or branches. The point is that a hack fest should not be spent with everybody trying to set up a privately circulated branch of MyGreatSearchEngine.

== Organization ToDo ==
Steps we need to make in order to bring this forward.

* Coordination team
** A list of people easy to CC and decide fast on pure organizational stuff e.g. money, people, places. Proposal: Urho Konttori (link with Maemo Summit organization), Vincent Untz (GNOME Foundation), Xesam rep, Tracker rep &amp; Beagle rep. Ideally a local rep too but let's not wait for this to start moving forward.--[[User:qgil|qgil]] 08:13, 28 July 2008 (UTC)
*** I think you can add me as the Xesam rep. Unless someone else with a fairly neutral Xesam background want to step up? --[[User:kamstrup|kamstrup]] 22:31, 2 August 2008 (UTC)
* Define dates
** Proposal: September 19 &amp; 20 WarmUp, people can attend to the Maemo Summit and start the discussions e.g. at a project level. 21 &amp; 22 Official Desktop Search Hackfest. Some might want to have an After Hours (?).--[[User:qgil|qgil]] 08:13, 28 July 2008 (UTC)
** It would be more convenient for me if it was 20-21 Sept. This of course overlaps with the Maemo summit. Then monday could be used as a more &quot;official wrap up day&quot; where people could collect the result and hack on those things that we agreed on during the &quot;official&quot; days. Also keeping a single WarmUp day should be fine I believe --[[User:kamstrup|kamstrup]] 22:31, 2 August 2008 (UTC)
* Define people
** I need the list of people to be sponsored asap to arrange travel and know for sure what is needed for accommodation.--[[User:qgil|qgil]] 08:13, 28 July 2008 (UTC)
* Infrastructure required
** One workspace room with wlan. Anything else? For instance, a projector or not? --[[User:qgil|qgil]] 08:13, 28 July 2008 (UTC)
*** Probably more than one workspace. Some people can work in xesam while other people hack/discuss other topics. --[[User:ifrade|ifrade]] 13:49, 30 July 2008 (UTC)
* Program
** Flexible of course, but good to have confirmed in advanced a mission, achievable and specific objectives and a reference schedule.
*** I'll try to organize a list of goals and tasks. We can use that to check the success of the hackfest. --[[User:ifrade|ifrade]] 13:49, 30 July 2008 (UTC)
*** We should make a list of people who are willing to be BOF-responsible, and what BOFs they would like to be responsible for --[[User:kamstrup|kamstrup]] 22:36, 2 August 2008 (UTC)
* Marketing &amp; press
** The World needs to know, before and after! How?
*** At least blogging of the people there. Publicity in planet.gnome/planet.kde --[[User:ifrade|ifrade]] 13:49, 30 July 2008 (UTC)
Anything else? Add it to the list.

[[Category:Community]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Desktop Search Hackfest/1stDayNotes</title>
    <id>1215</id>
    <revision>
      <id>27655</id>
      <timestamp>2010-01-28T14:06:23Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Desktop Search Hackfest/Day one notes]]</text>
    </revision>
  </page>
  <page>
    <title>Desktop Search Hackfest/1st day notes</title>
    <id>2977</id>
    <revision>
      <id>22228</id>
      <timestamp>2009-11-09T13:51:43Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Desktop Search Hackfest/1st day notes]] moved to [[Desktop Search Hackfest/Day one notes]]: Remove numerical diminutive and change caps and spacing for consistency</comment>
      <text xml:space="preserve">#REDIRECT [[Desktop Search Hackfest/Day one notes]]</text>
    </revision>
  </page>
  <page>
    <title>Desktop Search Hackfest/Day one notes</title>
    <id>1214</id>
    <revision>
      <id>22227</id>
      <timestamp>2009-11-09T13:51:43Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>[[Desktop Search Hackfest/1st day notes]] moved to [[Desktop Search Hackfest/Day one notes]]: Remove numerical diminutive and change caps and spacing for consistency</comment>
      <text xml:space="preserve">lightning talks

beagle
* gmail
* compatibility between extractors and similar components should be discussed about
* avahi, web services provided by the daemon itself
* online results shown in firefox
* external devices/sources working
* feature wise beagle feels they have reached a complete state
* more interested in dashboard now
* a masters student working on dashboard at the moment
* million command line tools to proof the concept
* how to tie documents and objects together (asociations) without consumin lots of processing power all the time for the creation of the associations


Strigi

* ported to mac and windows
* Basic requirement of kde4
* modularized into 4 c++ libraries
* libstreams
* efficient access to files as streams
* reading nested streams without overhead: no copying of intermediate data
* tar, bz2, zip, rpm, deb pdf, ole2, mail, .a
* jstream://
* Efficient for actually getting inner contents of objects without the need to create intermediate copy of the objects
* libstreamanalyzer
* api for accessing metadata from streams
* uses libstreams
* uses 5 plugins for analyzers, each optimized for speed of specific data type
* most analyzers can be used in parallel
* all analyzers always run, with little overhead
* index object is getting the data from each content item
* analyzers also run on the embedded filescontent
* plugins for the indexes, so in theory different indexes can be used
* most important clucene and soprano
* clucene very fast
* soprano used for nepomuk for semantic storage
* could use tracker as the index as well
* libseachclient
* socket access to strigidaemon
* libstrigihtmlgui
* libstrigiqtdbusclient
* strigidaemon
* c++
* relativelhy little code in the daemon
* abstract interface for communications
* thread pool
* initial xesam support, partially shared with pinot
* POWER OF STRIGI IN IN LIBRARIES THAT CAN BE SHARED


Xesam
* sd
* Using mirror 
* beginnint - dashbar used in beginning
* seemed poor to make compatibility layer for all engines (strigi, beagle, ...)
* unite existing apis
* hide implementation details of backends
* allow simpler indexes such as grepp
* support for web services such as google
* keeping it simple was the leading thought
* does not support everything, but instead mostly desktop and mobile devices
* keep low barrier of entry
* preoactive openess
* community effort
* history
* 2 apis
* simple query and 'live'
* simple api was too simple - so, live was the way to go
* xesam
* dbus search api
* ontology
* xml query language
* user search language
* full draft online - devil in the details
* summarizing critic:
* too complex onto
* feature creeping (it's etting too complex)
* not extensible enough
* vulnerability to extend and embrace tactics


tracker
* last half year
* work has revolved around splitting daemon and indexer into separate entities
* extractor process spwns and pipes data to the indexer
* filters handle the files
* weighting data items as 'hot' based on the headingness or boldness
* daemon has proper introspection
* dbus api has had only a little changes
* planning to change that quite a lot to support xesam 
* throttling - pausing indexing with monitoring events, nice, dynamic blacklisting of files, (blacklisting of dirs?)
* q: wrapper of streamanalyzer?
* kde4 metadata extraction using streamanalyzers - all metadata provided with those
* suggestion for traker to consider streamanalyzers
* Suggestion from kubasic, jos, jamie: use a common extraction pipeing model
* jos: suggestion to not to use dbus between the extractor and daemon process
* daemon only there to service the data
* indexer there to handle the writing of the actual data
* suggestion to keep this in tips and tricks session
* last issue before merge  - fix jamies tst on his laptop
* 

ontologies:
* evgeny giving introduction
* basic design decisions
* why rdf triples
* inheritance needed
* gives example of hierarchy (xesam:contributor in core, client extension this as xesam:majorContributor and xesam:minorContributor)
* this makes applications that do not know of the cleint extensions to be able to interoperate with the data
* How many features we want to implement. 95% (but not more?)
* idea to drop corner cases
* not only what features we implement but also to implement those well, this will lead to change in user habits (example file navigation used to cover 95% of file location needs . after indexers, this can be dimished to 60-70% - but only if indexers work well, are reliable and easy to use)
* thus, we need simple enough fw that is powerful enough, but easy enough to implement and start to use
* content and source split
* source is that the file is and how is it stored
* content deals with documents, messages and such
* for the content tree, it does not matter how it is stored
* source is the place for acl 
* document has the created date - it is the actual created date of the document
* source created date is the filesystem level creation date
* also modified on source could be when e.g. acl was changed, on document tree, changed means when someone actually edited the document
* evgeny gives example of a scientific paper
* xesam:author links the item to xesam:contact
* the xesam:contact - country could be e.g. UK
* now, if we want to find list documents of people from uk
* the multiple query solution for this use case can be very slow to implement if the contects contain tens of thousands of people
* so, the dbus traffic is unnecessarily large
* and there are many other use cases of this type of relationships that will be too difficult to implement with the current xesam model efficiently
* photo annotations
* defining region of a photo and who is there
* thus, the annotation is complex
* example - photos of old people
* move toward semantic representation of data. FOF example of the photo annotations
* semantic web activities going on in this area at the moment
* another example: papers referring it to other papers via identifiers without directly pointing to a file
* point being that the client will have to be doing the work that really makes sense to be done on the backend side
* suggestion: use xesam (tm) if it correctly implements the core set of the functionality
* we will need to be future proof and not stagnate and have people making hacks and workarounds
* philip van hoof: standard will be successful only if the client developers take it to use 
* martyn: it's an iterative process
* client developers are our users
* using xesam needs to be easy and it needs to be able to provide easily the needed information
* evgeny: how do we solve this conflict of interest: we need to define xesam in flexible enough way
* evgeny: it is not simple enough for the users as it is 
* mikkel: two camps: semantic camp and field based camp, my opinion is more on the field based camp - thus, I don't see the needs of this type very relevant for our needs
* kubasic: I agree that mutidimensional graphs not so interesting - maybe we could provide a convenience library to do this kind of depth relationships. So, perhaps xesam could just provide the field based stuff and let the wrappers worry about the more extended multidimensional use cases
* evgeny: my opinion would be to make it possible for the backend to be able to do this and provide the wrapper for the simple backends to do the field too graph use cases. 
* maybe we could roadmap that only some parts would be available of the query language and ontology so that  
* kubasic: if we do paged browsing the deeper relationships will be completely awful to be implement efficiently - so most often the deeper levels should not be so needed to be done
* evgeny: this need will either be implemented by the cleint or the server. use cases are there
* jos: can you provide a list of items to change
* evgeny: we need to decide whether we want to support these structures or not
* evgeny: can provide list of drawbacks
* current situation undecided what is the type of the e.g. author (reference as url or string of the author) - needs to be decided
* sebastian:  &lt;missed&gt;
* jos: my suggestion - if I have author email address  - then we go to the next version, where we have contacts - I will store the contact url t database
* urho: suggesting inner queries to the query api
* evgeny: let me give more examples
* sparql - and current query language
* 
* we can replace the current query language later on
* jamie: the mapping really doesn't exist on the actual contents, so the documents usually don't map the actual authors, but instead they just contain the freetext of the authors
* so, as long as the applications do not contain the possibilities, the graphs won't happen
* evgeny: we need to make it possible for the applications to do this, otherwise the applications wil lnever support it
* sebastian: shouldn't we make the inner queries optional as well as the graph queries
* intermediate solution - flat view would map queries to text and on the graph capable implementations to the object url instead
* possiblity to create dummy items for each url and containing the string in that object
* qubasic: this will be needing lot of more support from the backend will be needed and it will be much more complicated to do - would be more future compatible to be on the xesam
* sebastian: internal stuff could create the internal representations in hackish way and just expose the data in graph way
* evgeny: proposing a far reaching goal to make it easy for users in mid term future to transition to this - maybe roadmat for applications to be able to produce more complex queries
* Urho: so, do you propose SPARQL?
* evgeny: nope - we should be able to extend current XML
* sebastian: we could create related to inner queries
* mikkel: why not jus tallow the results of one query to be source for the next one
* urho: so inner queries - yeah
* evgeny: makes an example of the paper question in sparql
* evgeny: we are not looking for using sparql, just similar functionality
* evgeny: mapping sparql to sql can be done
* jos: I propose that we won't implement this to 1.0
* just make the ontology as future proof
* make a temporary solution and future path
* evgeny: list of use cases
* we have no way to query - semantic desktop guys will not be able to use xesam in the way they can use nepomuk
* maybe we could at least make a wrapper library?
* JOS: making the proposal
* usually we store the name of author in a field on document
* in graph we would store it on separate object
* so, propose that we do it like this now and if engine supports the denormalized model, it will do the conversion from the object to the name
* and we extend the ontology the denormalized way
* sebastian: we have the proper ontology in nepomuk, we could just translate that to xesam
* qubasik: suggest that we make a small team to discuss this in real detail
* agreed: 1st item: FAIL - 





Search API (d-bus api)
* Notes taking by urho
* latest changes for sorting and some session properties
* we simply list all the problems that people have with it
* inner queries agreed to be handled separately
* jamie raising issue of ranged search
* philip: why don't we remove the session completely - it's completely unused
* jos: i'll explain the session - it's for live queries
* you can have multiple searches per session
* search thus should have a separate id so that that can be closed, there is no need for the session at all
* kubasic: 
* rob: you need to know what searches are running
* mikkel: if we create the session at the time of the start
* martyn: we need to have a separate id for searches
* rob: we have a separate id for searches
* can't we add the properties to the query itself?
* go for large and infrequent messages
* kubasik: we should decide whether to use the properties on the xml or on the dbus
* mikkel: properties can go on the search object instead (written)
* philip: I agree with sebastian (sebastian) hit fields should be in the query
* philip: we can go instead for the session changes to be for the xesam 2.0 and not yet to the 1.0
* philip: if we change the query language, that'll break everything anyway
* rob: seems like you are using ids for the objects on the server side - perhaps they actually should be d-bus objects
* jos: so, current model is imperfect, but enough for 1.0
* jos: let's keep it like it is for now as it's works
* versioning discussion - should dbus have the version number in the dbus namespace?
* rob checks- yes you can
* kubasik: we need to have a bit of better way to decide which engine to use 
* but we don't need to specify the way to do it
* philip: we should have announcement of capabilities to allow applications to choose the right engine with the right capabilities
* kubasik: distributions need to be taken into account here
* mikkel: we need to have the documentation about the capabilities and make the apis to discover
* mikkel: can be considered for 1.0 (at least guidelines)
* let's make a group to specify this
* jos: gethitdata will be capable of handling the ranges quite easily as it's capable
* urho: we have the case where hitsadded hit is on a sorted live query and on place on the visible resultset. without the id and uri of the hitadded, you will have to re-query your entire set
* kubasik: most of the time the issue is really that single item has been modified
* mikkel: so, we would emit: livehitsadded
* jos: live search never sends researchdone
* mikkel: yes it sends once the indexing is done
* mikkel: let's add livesearch added that would contain also the hit metadata
* jos: we need to minimize the changes needed
* everyone can live with even the paging
* jamie: so, no changes for 1.0 for hitsadded, but for 2.0 yes
* jos: idea for ranged search will mean that we supply the ids of the hits
* michael: d-bus api
* sometimes several search engines in parallel is an issue
* one engine refuses to start if d-bus api not available
* we should make search engines to que on d-bus
* no way to decide which engine is started
* mikkel: we have also xesam interface on tracker, so that can be used org.freedesktop.tracker.xesam?
* philip: we don't
* mikkel: perhpas that would be a recommendation
* urho: how about org.freedesktop.xesam.tracker and org.freedesktop.beagle
* mikkel: good idea
* michael raising issues about the specialist engines existing on the same system
* philip: wants to raise something
* this suggestion is unimplementable on sqlite as it is
* ottela: we get hits 1 - 1000 - we change the value of item 1 to be last on the list
* ottela: if one file changes - hitsmodified tells that one changed to 1000 and 2 changed to 1, 3 to 2,...
* jos: why don't we say the gethitsdata needs to be sequential
* philip: the issues with 1, 10000, 500 will mean the complexity of the corner cases will become very difficulta
* and this will make it quite complex to do properly on the server side
* &lt;discussion that has been too hard to type on the report&gt;
* urho: how about adding getrangedhits
* jos: if we don't remove the gethisdata that already exists
* agreed by everyone
* martyn: I'd rather have a new hitsmoved rather than having the hitsremoved and hitsadded
* jos: currently the positionshould not be changing?
* kubasik explains beagle issues
* martyn: sounds nice, but the issue is that the new api would make it more clear for the client applications to use
* kubasik: it's going to be difficult to implement the live queries
* martyn: surely we should add the possibility to handle the things without the need to re-create the live query
* sebastian: how about another working group?
* mikkel agreed:
* so, group to discuss the live sorting and hits added / moved issue
* kubasik: we'll have the group and I can tell how beagle is doing this
* mikkel: one for this and another group for the accessibility
* sebastian proposes to use floating points for the ordering
* ben raises the issue that how hard will it be possible to sort by the strings, the text
* Mikkel: live query sorting who is the group? 
* Jos: I don't think live queries will be efficiently possible on the server side
* group: half and hour - jos, martyn, kubasik, mikael, mikkel (?)
* LUNCH


Ontology discussion:
Link by id - mikkel presenting on postits
* evgenys idea originally as a middle way between semantic graph and the current xesam 
* problem is mainly linking relate objects (like linkin document and author) or document contained in an email
* referring e.g. two documents together with isbn
* there are multiple ids (not just uris)
* they will need to be 'sufficiently unique'
* Solving the problem
* xesam id field (any child of it must have a value that is unique over all xesam ids)
* all of the links must always be to ids
* we make a new special kind of field that is child of xesam:related or could be a special data type
* should always hold xesam id
* with this we can find all objects that point to X (or any that X points to)
* so, e.g. pdf file reference isbn - query xesam id field with that isbn
* 
* sebastian: subqueries should be enough to allow good usage of this on the search api
* urho: agreed
* Everybody agrees to investigate the idea
* mikkel: suggest using a new field in xesam api id-field 
* kubasik: we would need to do nested queries most probably and not probably an optimized index for this
* sebastian: normally you would say give me all emails htat have sender of contact object that has name like this
* now you could do it sender as a range, of person object, it would check all xesam id values in the relation
* mikkel: it shoud be very easy to do these queries
* and it should be very easy to show the values of these fields
* jos: we should do so that we do two fields: radable valua and pointer/relation property. Also, the more strong engines could say that the value is just an alias of the actual objects relations property
* sebastian: why not use the uri for data representation plugins that would then be able to create the visible widgets of the data items
* sebastian: i see that there are some issues with people wanting to not to do two queries
* evgeny: you would need inference for it and it's easier so that we make it so that xesam:strings: would contain the string representation of the url / link values. 
* so, this way, we only use the string representation for only full text search. 
* evgeny: I feel that we have a bit of problem on the specification of what should be in the FTI
* Anders: we need to also be able to show how/why the relation was created and to be able to do that for all the related content
* evgeny: we cannot have the stuff linking to everything on the database
* sebastian: we don't need to present on how a relation was found and it's a GUI thing
* jamie: two fields would be more clean
* jamie draws example below evgenys example
* jos agrees on the two field model
* evgeny isn't completely convinced
* the point is that the UI will likely match the actual contact
* jamie: this way the application would have the choice
* jamie: if we have just a name on the author text, then we don't want to try to create the dummy object
* evgeny: compromise solution in my opinion is that if we have to use have use the subqueries
* discussion on that we want a value of properties on a single query on xesam
* jamie: we could always deprecate the fields
* jos: i liked the suggestion of author text and author link and group the fields on a string text
* sebastian: why not make all dummy objects to have the same data layout
* at least the data is syntatically correct if we use dummy objects
* jamie: it's not worth it if we don't have the semantic info
* sebastian: this way we handle the data in same way for the 'proper' objects as well as the dummy ones
* &lt;lots of discussion&gt;
* Conclusion:
* We make some older strings as URIs instead of the previous string values
* All new URI properties also have a .label that allows to get the textual representation of the property, which in essence is the old xesam ontology value of the property. The ideal is that this is a pointer to a specific property of the linked object
* We will draft nested queries and they will most probably go to 1.1
*


[[Category:Community]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Desktop Search Hackfest/Design Discussion</title>
    <id>2976</id>
    <revision>
      <id>22224</id>
      <timestamp>2009-11-09T13:48:39Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Desktop Search Hackfest/Design Discussion]] moved to [[Desktop Search Hackfest/Design discussion]]: Capitalisation</comment>
      <text xml:space="preserve">#REDIRECT [[Desktop Search Hackfest/Design discussion]]</text>
    </revision>
  </page>
  <page>
    <title>Desktop Search Hackfest/Design discussion</title>
    <id>1208</id>
    <revision>
      <id>22223</id>
      <timestamp>2009-11-09T13:48:39Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>[[Desktop Search Hackfest/Design Discussion]] moved to [[Desktop Search Hackfest/Design discussion]]: Capitalisation</comment>
      <text xml:space="preserve">Points:

	95% use cases should be sufficient:
		find example:
		(1)usually you remember where a file is located, that's 95% of use cases
		however if you don't, you use recursive search tool and it's extremely useful despite being very slow
		(2)if you replace slow recursive tool with a fast indexer-based search, you get the pain
		threshold lower and capture much more use cases than the slow tool, effectively making
		&quot;remember where a file is located&quot; much less than 95% use cases.

		There's a feedback loop: the better is implementation of particular functionality the more it is used,
		which in turn increases use case % of things previously considered a corner case to the point of it becoming important.

	Query language limits ontology, this causes ontology split between nepomuk and xesam:
		Often you can model undelying data using either a more natural and flexible approach, which uses advanced QL
		or a restricted approach which can work fine with basic QL

		However users of simple QL don't get any benefits from the flexible representation, while losing the ability to efficiently
		query it even in cases covered by the simple model. This causes them to push &quot;simplification&quot; of the ontology thus causing ontology split


	consequences of the split. pros and cons of xesam as nepomuk base vs xesam&lt;-&gt;nepomuk adapter
		(1) Split in base ontologies causes split in user/extension ontologies, thus causing the split in the user base as well
		(2) Ontology development tends to diverge. Details lose coherence, which coupled with stability requirements means more compatibility headaches
		(3) compatibility-by-wrapper tends to be reactive -- changes, quirks etc eventually get ported over to the wrapper
		     compatibility-by-design is proactive
		(4) parallel development of 2 ontologies means doubled effort and means twice(roughly) more bugs in each of ontologies.
		(5) compatibility-by-wrapper encourages of divergence by decoupling onto development proceses from each other

	Nepomuk vs xesam different maturation pace
		which is also encouraged by compatibility-by-wrapper.
		
		Basically this means that convergence is impossible in near and mid-term. Eco system builds up and causes stability requirements.

	sparql is hard to implement
		(1)sparql and sql map very well. The most of features and all common features of sparql have 100% mapping to sql
		(2)sparql syntax parsing is not strictly necessary. sparql is just one of many serializations of rdf graph templates.
		If there's an easier to parse serialization even if non-standard, it's very easy to map to sparql and sql for those who want it.

		thus you can think of sparql as glorified or prettified sql depending on what subset of sparql you implement

		(3) Xesam QL doesn't expose essential SQL functionality, namely JOINs

	future-proofing the design, clean extensions vs hacks
		hacks generally mean unintended or unnatural use of features, &quot;stretching&quot; of usage area. Usually this comes at a cost of:
			flexibility
			further extensibility

	duplication of functionality across clients which should have been implmented once in the backend
		(1) One stable and efficient vs a ton of buggy and slow imlementations. Also backend devs are more efficient at making
		the required functionality than client devs
		(2) Bandwidth&amp;latency between storage and query parts of backend vs query and client. Fetching 1/2 of DB over dbus and doing data mining yourself is sloooow.
		(3) Grep-like backends belong to a lower-level framework... like a library which would implement a reasonably powerful QL over such backends. Otherwise
		you have to implement a part of this library in each xesam client application.

	simple vs easy approach:
		asm is simple, C is easy
		or rather you can make something &quot;simple&quot; for developers but hard to users or reasonably hard for developers and &quot;easy&quot; for users.

	xesam:Author linking up document authors, creators and senders from simple string with name case to complex sender address case. linking up


[[Category:Community]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Desktop Search Hackfest/Schedule</title>
    <id>1141</id>
    <revision>
      <id>8207</id>
      <timestamp>2008-10-30T18:06:32Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <minor/>
      <comment>Categorization</comment>
      <text xml:space="preserve">This page is meant as a melting pot to come up with a schedule for the [[Desktop_Search_Hackfest|Desktop Search Hackfest]], held in Berlin 18-22 September. Note that only two of these days are designated for the Desktop search hackfest.

= Agenda Meeting Log=

A log of the meeting held 04.09.2008 by most of hackfest participants is available here: http://pastebin.ca/1194108

= Session Drafts =
This sections lists all BOFs, Hack-sessions, or other gatherings drafted for the hackfest.

=== Xesam Future ===
'''Type:''' BOF

'''Duration:''' 1h

'''Description:''' Where do we go from 1.0? Apart from the already roadmapped items for Xesam 1.1 what should we look into? Paged search results, extensions to the query language, life on Mars? Mikkel will give a brief (7 min) recap of the things that has already been aired as well as a few personal ideas. After that the discussion is free.
''This BOF should be placed after the Xesam Design and Critique BOF''.

'''Attending:'''
* Mikkel Kamstrup (host)
* Sebastian Pölsterl

=== Xesam Design and Critique ===
'''Type:''' BOF

'''Duration:''' 1h

'''Description:''' Voices in the community has aired dissatisfaction with the feature set and design of Xesam. We need to discuss this to get common understanding and to see if we can accomodate some of the problems. Mikkel will start out with a very brief (3-5 min) discussion on Xesam design principles. The participants will be expected to bring the bullets in form of concrete problems.

'''Attending:'''
* Mikkel Kamstrup (host)
* Jos van den Oever
* Ben Martin
* Sebastian Trueg

=== Xesam MetadataStorage API ===
'''Type:''' BOF

'''Duration:''' 1h

'''Description:''' Xesam has long been promising to adopt a DBus interface to store and read metadata. Draft this API. There are baby steps towards this at [[http://xesam.org/main/XesamIteration2 Xesam's iteration 2 page]]

'''Attending:'''
* Mikkel Kamstrup (host)
* Anders Rune Jensen
* Sebastian Trueg

=== Xesam Index API ===
'''Type:''' BOF

'''Duration:''' 1h

'''Description:''' Xesam has long been promising to adopt a DBus interface to the metadata of the index itself, ie retrieval of unique terms, counting of terms etc. Draft this API. There are baby steps towards this at [[http://xesam.org/main/XesamIteration2 Xesam's iteration 2 page]]

'''Attending:'''
* Mikkel Kamstrup (host)
* Sebastian Trueg

=== Desktop Search Status report ===
'''Host:''' 

'''Type:''' BOF

'''Duration:''' 1h

'''Description:''' Each search engine should quickly describe what the current status is and what their plans for the future are in 5-10 min.

'''Attending:'''
* Sebastian Pölsterl (host)
* Mikkel Kamstrup
* Anders Rune Jensen
* Jos van den Oever
* Ben Martin

=== Xesam-Gtk a Widget Set on Top of Xesam-GLib ===
'''Type:''' Hack session

'''Duration:''' 3h

'''Description:''' The purpose of this session is to design a basic set of widgets leveraging Xesam GLib to allow dead easy integration of Xesam search technologies in Gnome apps. We will start out with approx. 1h of hand waving, drawings, and discussions, and people are welcome to attend only this part. After this we fire up the laptops and get down to business.

'''Comments:''' Sebastian Pölsterl: I think it would make sense to write widgets before working on the bindings. That way the bindings and modules based on those bindings could include the widgets, too.

'''Attending:'''
* Mikkel Kamstrup (host)
* Sebastian Pölsterl

=== Desktop 3000 ===
'''Type:''' BOF

'''Duration:''' 1h (depending on the number of participants)

'''Description:''' Assuming we have rich, instantly searchable, metadata everywhere what cool ideas will be possible? The participants will air their far fetched crack-pot-dreams and juicy fantasies in 7 minute presentations. Mikkel will kick the session off with his ''&quot;Do-what-I-think-Desktop&quot;'' idea.

'''Attending:'''
* Mikkel Kamstrup (host)
* Anders Rune Jensen

=== Xesam-GLib bindings ===
'''Type:''' Hack session

'''Duration:''' 1 day

'''Description:''' In this session Xesam-GLib bindings for Python and C# are created.

'''Attending:'''
* Sebastian Pölsterl (host)

=== Xesam search modules ===
'''Type:''' Hack session

'''Duration:''' 1 day (depends on the amount of applications we want to write plugins for)

'''Description:''' The purpose of this session is to write Xesam module for various applications using the newly written Xesam-GLib bindings. I'm thinking of a Deskbar-Applet and Gnome-Do module. Feel free to add additional applications.

'''Attending:'''
* Sebastian Pölsterl (host)

=== Xesam compliance testing ===

'''Type:''' BOF

'''Duration:''' 1h (depending on the number of participants)

'''Description:''' Xesam has a relatively simple API and search language. Nevertheless, none of the implementation are complete. We need a benchmark to judge how well every client works with a large corpus of documents to index.

'''Attending:'''
* Jos van den Oever (host)
* Mikkel Kamstrup

=== Implementing Indexes on Flash ===
'''Type:''' BOF

'''Duration:''' 1h

'''Description:''' The old disk head seek time enemy is slain! But flash still is block oriented so primary memory structures mmap()ed to flash are still as unwise as ever. The BOF is a general discussion of how storing indexes (inverted files, triple stores) on flash might allow techniques that would be prohibitively slow on spinning storage.

'''Attending:'''
* Ben Martin (host)
* Mikkel Kamstrup

=== Maybe replacing inotify as the base of Desktop Search Crawling ===
'''Type:''' BOF

'''Duration:''' 1h

'''Description:''' Using inotify to monitor a collection of directories, maybe even a few hundred is fine. But if you want to monitor the entire filesystem, using something that allows all create,change,delete operations that the same UID performs to be seen would be great. Even more so on a device that is CPU/RAM contrained like the maemo ones, when the user might shove 32gb of storage and a few hundred thousand files on their mobile system.

'''Attending:'''
* Ben Martin (host)
* Mikkel Kamstrup
* Sebastian Trueg

=== Xesam support for more interfaces ===
'''Type:''' Hack session

'''Duration:''' 1h

'''Description:''' Implement basic Xesam support for a selected search interface. (ie. Avant, beagle-search, tracker-search etc.0

'''Attending:'''
* Still needs host

=== Search interface design ===
'''Type:''' BOF

'''Duration:''' 1h

'''Description:''' Whats the deal with all the different approaches to search interfaces? Lessons learned? Likes/Dislikes? What should we see in the next-gen search interface. 

''Note: This BOF has a bit of overlap with the Desktop 3000 BOF. Maybe we should combine them?'' -- kamstrup

'''Attending:'''
* Still needs host

=== Make Xesam Semantic Data Ready ===
'''Type:''' BOF

'''Duration:''' 1h

'''Description:''' Xesam is a key/value system and as such is not able to provide a search on a data graph as used in Nepomuk. In this session I would like to discuss how the API can be extended to provide these features.

'''Attending:'''
Ben Martin

'''Host'''
Sebastian Trueg

= Schedule =

== Days Before the Official Program ==


=== Friday 19 ===
{|  width=&quot;100%&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; bordercolor=&quot;#000000&quot;
|+


|- 
|  width=&quot;112&quot; | '''9:00-12:00'''
|  colspan=&quot;3&quot; | '''Visiting the official maemo program and announcements'''
|- 
| '''12:00'''
|  colspan=&quot;3&quot; | '''Break and lunch.'''
|- 
| '''13:00-1400'''
|  colspan=&quot;3&quot; | '''Setting up hacking facilities in room(s?) reserved for our conference use. Agreeing on practices for documenting hackfest results.  '''
|- 
| '''14:00-1415'''
|  colspan=&quot;3&quot; | ''' Spreading to work on the concrete hacking tasks (choosing from pool) - dividing to groups if necessary.  '''
|- 
| '''14:15-18:00'''
|  colspan=&quot;3&quot; | ''' Hacking on coding tasks '''
|- 
| '''18:00'''
|  colspan=&quot;3&quot; | '''Chill out.'''
|}

== Day 1 : Saturday 20th  ==
{|  width=&quot;100%&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; bordercolor=&quot;#000000&quot;
|+

|- 
|  width=&quot;112&quot; | '''9:00'''
|  colspan=&quot;3&quot; | '''Opening doors'''


|- 
|  width=&quot;112&quot; | '''9:30'''
|  colspan=&quot;3&quot; | '''Recapping schedule preparing to start BOF sessions'''

|-
|  '''10:00-11:00''' 
|  width=&quot;33%&quot; | '''BOF  Desktop Search Status report  '''
|  width=&quot;33%&quot; | ''' '''
|  width=&quot;33%&quot; | ''' '''



|-
|  '''11:00-12:00''' 
|  width=&quot;33%&quot; | '''BOF (*) BOF Xesam Design and Critique '''
|  width=&quot;33%&quot; | ''' '''
|  width=&quot;33%&quot; | ''' '''

|- 
|  width=&quot;112&quot; | '''12:00-13:00'''
|  colspan=&quot;3&quot; | '''Lunch'''


|-
|  '''13:00-14:00''' 
|  width=&quot;33%&quot; | '''BOF Xesam Index API '''
|  width=&quot;33%&quot; | ''' '''
|  width=&quot;33%&quot; | ''' '''




|-
|  '''14:00-15:00''' 
|  width=&quot;33%&quot; | '''BOF  Xesam MetadataStorage API '''
|  width=&quot;33%&quot; | '''BOF  Xesam compliance testing  API '''
|  width=&quot;33%&quot; | '''BOF (*) Sharing tags and metadata between engines when not embedded in file '''


|-
|  '''15:00-16:00''' 
|  width=&quot;33%&quot; | '''BOF Xesam Ontology Workshop '''
|  width=&quot;33%&quot; | '''BOF (*) Sharing extractors among engines'''
|  width=&quot;33%&quot; | '''BOF (*) Xesam and Nepomuk '''



|-
|  '''16:00-17:00''' 
|  width=&quot;33%&quot; | '''BOF Xesam Future '''
|  width=&quot;33%&quot; | ''' '''
|  width=&quot;33%&quot; | ''' '''






|}

== Day 2 : Sunday 21st ==

{|  width=&quot;100%&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; bordercolor=&quot;#000000&quot;
|+

|- 
|  width=&quot;112&quot; | '''9:00'''
|  colspan=&quot;3&quot; | '''Opening doors'''


|- 
|  width=&quot;112&quot; | '''9:30'''
|  colspan=&quot;3&quot; | '''Recapping schedule preparing to start BOF sessions'''

|-
|  '''10:00-11:00''' 
|  width=&quot;33%&quot; | '''Implementing Indexes on Flash'''
|  width=&quot;33%&quot; | ''' '''
|  width=&quot;33%&quot; | ''' '''



|-
|  '''11:00-12:00''' 
|  width=&quot;33%&quot; | '''BOF Xesam Future '''
|  width=&quot;33%&quot; | ''' '''
|  width=&quot;33%&quot; | ''' '''

|- 
|  width=&quot;112&quot; | '''12:00-13:00'''
|  colspan=&quot;3&quot; | '''Lunch'''


|-
|  '''13:00-14:00''' 
|  width=&quot;33%&quot; | '''BOF Desktop 3000  '''
|  width=&quot;33%&quot; | ''' '''
|  width=&quot;33%&quot; | ''' '''




|-
|  '''14:00-15:00''' 
|  width=&quot;33%&quot; | '''Maybe replacing inotify as the base of Desktop Search Crawling'''
|  width=&quot;33%&quot; | ''' '''
|  width=&quot;33%&quot; | ''' '''


|-
|  '''15:00-16:00''' 
|  width=&quot;33%&quot; | ''' '''
|  width=&quot;33%&quot; | ''' '''
|  width=&quot;33%&quot; | ''' '''






|}

== Day(s) After the Official Program ==


[[Category:Community]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Desktop Search Hackfest/XesamOntology</title>
    <id>1069</id>
    <revision>
      <id>8206</id>
      <timestamp>2008-10-30T18:06:08Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <minor/>
      <comment>Categorization</comment>
      <text xml:space="preserve">= Desktop Search Hackfest Entry =

== Xesam Ontology Workshop ==
This page collects all relevant info for the Xesam Ontology BOF and workshop to be held on the Desktop Search Hackfest 2008.

== Ontology Program ==
Ideally the ontology workshop should consist of three things, preferably held in succession:

* A (very) short architectural intro by Evgeny. Why does it look the way it look? What is good what is bad. What needs work?

* A BOF for discussing any relevant issues surrounding the onto. Especially concerning points we need to address before closing it for 1.0
** Preferably Evgeny would lead this

* A hack-session with the single purpose of 100% doc coverage of the ontology. Proper documentation mind you. &quot;File-like object&quot; for xesam:Filelike is simply not good enough.
** I imagine a session with a handful people and Evgeny sitting without a computer at the table end. The minions just hack away and constantly bombard Evgeny-the-oracle with questions.


[[Category:Community]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Desktop file format</title>
    <id>652</id>
    <revision>
      <id>42812</id>
      <timestamp>2011-03-24T15:51:16Z</timestamp>
      <contributor>
        <username>mohammad7410</username>
        <id>2135</id>
      </contributor>
      <comment>/* Maemo extension keys */</comment>
      <text xml:space="preserve">== Maemo 5 - Fremantle ==

''application''.desktop files are read from directory:
 /usr/share/applications/hildon/

''application''.desktop files consist of at least one &lt;code&gt;Desktop Entry&lt;/code&gt; group, containing at least the fields &lt;code&gt;Type&lt;/code&gt; and &lt;code&gt;Name&lt;/code&gt;.

Maemo ''application''.desktop files conform with [http://standards.freedesktop.org/desktop-entry-spec/1.0/ the freedesktop.org desktop entry spec version 1.0].

These files are parsed by a number of different modules in Maemo: hildon-desktop reads them to display icons in the main application menu, and launch applications. [http://maemo.gitorious.org/fremantle-hildon-desktop/libhildonmime/ libhildonmime] reads the files to launch applications associated with a specific mime type. 

''widget''.desktop files are read from directory:
 /usr/share/applications/hildon-home/
They determine which widgets can get added to desktop(s)

=== Standard keys ===

Maemo recognises and parses a subset of all of the standard keys defined in the desktop spec. The following keys have a specific meaning in Maemo:

{| class=&quot;wikitable&quot;
|+ Standardised desktop file keys supported in Maemo
|-
! Key
! Type
! Meaning
! Required?
|-
| &lt;code&gt;Type&lt;/code&gt;
| string
| Possible values are &quot;Application&quot;, &quot;Link&quot; or &quot;Directory&quot;. Only &quot;Application&quot; and &quot;Directory&quot; are parsed on Maemo.
| Y
|-
| &lt;code&gt;Name&lt;/code&gt;
| string
| The name of the Desktop Entry group - should be unique on the system
| Y
|-
| &lt;code&gt;Icon&lt;/code&gt;
| string
| Icon to display in file manager, menus, etc. If the name is an absolute path, the given file will be used. If the name is not an absolute path, the algorithm described in the [http://freedesktop.org/wiki/Standards/icon-theme-spec Icon Theme Specification] will be used to locate the icon. 
| N
|-
| &lt;code&gt;Comment&lt;/code&gt;
| string
| Tooltip for the icon. Unused in touch interface.
| N
|-
| &lt;code&gt;NoDisplay&lt;/code&gt;
| boolean
| If this is set to &lt;code&gt;true&lt;/code&gt; the icon will not be shown in the menu. This is useful for applications which are associated with a mime type, but are not intended for standalone use.
| N
|-
| &lt;code&gt;Exec&lt;/code&gt;
| string
| The absolute path to the executable to be run when the desktop entry is selected.
| N
|-
| &lt;code&gt;Categories&lt;/code&gt;
| string
| This field is not used by hildon-desktop, but is used by 3rd party applications such as Catorise
| N
|-
| &lt;code&gt;MimeType&lt;/code&gt;
| string
| Parsed by libhildonmime, this field relates the mime type of a file to the applications which can be used to open it.
| N
|}

The frequently found key &quot;&lt;code&gt;Version=&lt;/code&gt;&quot; is seemingly unused in Maemo at the time of this writing. Anyway according to http://standards.freedesktop.org/desktop-entry-spec/1.0/ar01s05.html it MUST NOT hold the version of the executable, rather it defines the format and version of the .desktop file itself *). In expression:
 Version=1.0   is the only valid version key for .desktop files (of v1.0)
*)&gt;&gt;Version of the Desktop Entry Specification that the desktop entry conforms with. Entries that conform to this version of the specification should use 1.0. Note that the version field is not required to be present.

=== Maemo extension keys ===

The following keys have a particular meaning on Maemo. None of these fields are required.

{| class=&quot;wikitable&quot;
|+ Maemo-specific extensions to the standardised desktop file keys supported in Maemo
|-
! Key
! Type
! Meaning
|-
| &lt;code&gt;X-Text-Domain&lt;/code&gt;
| string
| The L10n domain from which the application name is translated (with dgettext)
|-
| &lt;code&gt;X-Osso-Service&lt;/code&gt;
| string
| DBus service name - if specified hildon desktop will try to call the &lt;code&gt;top_application&lt;/code&gt; method on this service rather than execute what is listed in the &lt;code&gt;Exec&lt;/code&gt; field).
|-
| &lt;code&gt;X-App-Loading-Image&lt;/code&gt;
| string
| Location of application loading image, will  be loaded if there is no screenshot with the string of X-Osso-Service in $HOME/.cache/launch/, if none, no loading image is shown while the application is being started.
|-
| &lt;code&gt;X-Maemo-Prestarted&lt;/code&gt;
| boolean
| If true, the application will be started automatically at boot time. However: X-Maemo-Prestarted=always in calendar.desktop. Which works for e.g xchat as well

|-
| &lt;code&gt;X-Maemo-Wm-Class&lt;/code&gt;
| 
| 
|-
| &lt;code&gt;X-Maemo-Prestarted-Priority&lt;/code&gt;
| number
| Priority for the application launch - lower means application is launched sooner
|-
| &lt;code&gt;X-Maemo-Switcher-Icon&lt;/code&gt;
| 
| 
|-
| &lt;code&gt;X-Maemo-Ignore-Lowmem&lt;/code&gt;
| boolean
| Ignore the low memory status when this application is launched. If this is absent, or set to false, an application will not be launched if there is insufficient memory available.
|-
| &lt;code&gt;X-Maemo-Prestarted-Ignore-Load&lt;/code&gt;
| boolean
|  If true, prestart the app as soon as possible without regards to load or memory limits
|-
| &lt;code&gt;X-Osso-Service&lt;/code&gt;
| string
| The name of the DBus service to call to start this application on demand
|-
| &lt;code&gt;X-Osso-URI-Actions&lt;/code&gt;
| string
| Used in [[URL Handler/API rev1|version 1 of URL handler]] to indicate URI handlers which this application can deal with
|-
| &lt;code&gt;X-Multiple&lt;/code&gt;
| boolean
| Allows installing multiple of these widgets on desktop (/usr/share/applications/hildon-home/*.desktop; needs reboot or killall hildon-home after edit)
|}

Note that while Maemo 5 (Fremantle) does not by default read the &quot;&lt;code&gt;Categories=&lt;/code&gt;&quot;-entry from the desktop file, enhanced menu applications like [http://maemo.org/downloads/product/Maemo5/catorise/ Catorise] do. It is recommended that you add a Categories line to the .desktop file.

 Categories=Office;                 ''Office or whatever Category is suitable''

It is silently ignored in the standard application menu, but allows you to pre-define the location of your application in [http://maemo.org/downloads/product/Maemo5/catorise/ Catorise]. A list of valid categories is found [http://standards.freedesktop.org/menu-spec/latest/apa.html here].

The canonical source for the key types supported on Maemo for the application menu is the &lt;code&gt;hildon-desktop&lt;/code&gt; module, and specifically the files [http://maemo.gitorious.org/fremantle-hildon-desktop/hildon-desktop/blobs/master/src/launcher/hd-launcher-item.c src/launcher/hd-launcher-item.c] and [http://maemo.gitorious.org/fremantle-hildon-desktop/hildon-desktop/blobs/master/src/launcher/hd-launcher-app.c src/launcher/hd-launcher-app.c]

=== URL handlers ===

There are a number of custom fields used in [http://maemo.gitorious.org/fremantle-hildon-desktop/libhildonmime/blobs/master/libhildonmime/hildon-uri.c hildon-uri.c] to handle [[URL Handler|custom URI groups]].

== OS 2008 - Chinook ==

Format of Maemo .desktop files

Below are the fields supported in hildon-desktop:
; Type
: Should be application
; Icon
; Name
; Categories
:not used on Maemo, but used in Ubuntu mobile
; Comment
:now unused, was used as second line of text in the startup menu in Bora
;Exec
;NoDisplay
:set to true to hide the entry in the menu
;StartupNotify
:set to false to disable the startup notification banner
;StartupWMClass
:used to override the expected window class name, default to the binary name

Some Maemo-specific extensions:

;X-Text-Domain
:set the L10n domain from which the application name is translated (with dgettext)
;X-Osso-Service
:a DBus service name - if specified hildon desktop will try to call the &lt;code&gt;top_application&lt;/code&gt; method on this service rather than execute what is listed in the Exec field).

(Credits to [https://bugs.maemo.org/show_bug.cgi?id=95#c15 Johan Billen])

BTW: If your application needs the browser to do special URL handling, the desktop file needs to be extended [[URL_Handler|accordingly]].

== Further reading ==

* [http://standards.freedesktop.org/desktop-entry-spec/1.0/ Desktop Entry Specification]

[[Category:Development]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Developer FAQ</title>
    <id>2999</id>
    <revision>
      <id>48108</id>
      <timestamp>2012-06-04T05:04:35Z</timestamp>
      <contributor>
        <username>polarbear</username>
        <id>5240</id>
      </contributor>
      <minor/>
      <comment>/* Enabling sudo for user installed scripts */</comment>
      <text xml:space="preserve">This is a list of frequently asked questions related to developing applications for the Maemo platform or working on the platform itself. This is in constant evolution, and new questions and answers are welcome.

For user topics, please see the [[User FAQ]].

== What can I do if my question is not mentioned here? ==

# Look if it is discussed already in one of the mailing lists or in [http://talk.maemo.org talk.maemo.org]
# If not post your question in the developer mailing list or in talk
# If you find the answer and you think it could be interesting for others as well post it here, so that we just have to point on this page in the future if the question pops up again.

== Maemo SDK and Scratchbox ==

=== &quot;dbus-monitor&quot; does not work in Scratchbox. What can I do? ===

'''Error messages'''

Typical error messages in this case are:

 X86: ~] &gt; dbus-monitor --system
 Failed to open connection to system message bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory

or for the session bus:
 
 X86: ~] &gt; dbus-monitor          
 Failed to open connection to session message bus: (null)

or when starting a python app:
 arguments to dbus_connection_get_data() were incorrect, assertion &quot;connection != NULL&quot; failed in file dbus-connection.c
 GLIB ERROR ** default - Not enough memory to set up DBusConnection for use with GLib

'''Solution'''
*Tested in Fremantle Beta, Beta_2
Enter the following lines in the Scratchbox:

 eval $(dbus-launch --sh-syntax)
 export DBUS_SESSION_BUS_ADDRESS
 export DBUS_SESSION_BUS_PID

Then run the dbus-monitor command and it should work fine!

=== &quot;xephyr&quot; fails to start in the host with a dbus security error ===

'''Error messages'''
 [config/dbus] couldn't take over org.x.config: org.freedesktop.DBus.Error.AccessDenied (Connection &quot;:1.310&quot; is not allowed to own the service &quot;org.x.config.display2&quot; due to security policies in the configuration file)

'''Solution'''
The display you plan on using for Xephyr (typically :2) just needs to be added to the dbus security file.

You need to edit the following file:
 /etc/dbus-1/system.d/xorg-server.conf

Add the following three lines in the &quot;&lt;code&gt;&lt;policy context=&quot;default&quot;&gt;&lt;/code&gt; group
&lt;source lang=&quot;xml&quot;&gt;
&lt;allow own=&quot;org.x.config.display2&quot;/&gt;
&lt;allow send_destination=&quot;org.x.config.display2&quot;/&gt;
&lt;allow send_interface=&quot;org.x.config.display2&quot;/&gt;
&lt;/source&gt;

Basically you should have one for each display you plan on using, by default display 0 and display 1 are in the file. If you are planning on using a different display number for Xephyr than :2 make sure you use its number rather than &quot;display2&quot; when you add these lines.

=== How can I avoid &quot;qemu&quot; error messages of &quot;af-sb-init start&quot; in ARMEL target? ===

'''Error messages'''

Usually the attempt ends up with something like this:

 The error was 'BadWindow (invalid Window parameter)'.
 (Details: serial 207 error_code 3 request_code 2 minor_code 0)
 (Note to programmers: normally, X errors are reported asynchronously;
 that is, you will receive the error a while after causing it.
 To debug your program, run it with the --sync command line
 option to change this behavior. You can then get a meaningful
 backtrace from your debugger if you break on the gdk_x_error() function.)
 aborting...
 qemu: uncaught target signal 6 (Aborted) - core dumped

'''Solution'''
* all SDK's

The ARMEL target should not be used for application testing and just for cross compiling. The target is not meant to support this. Please use for any other use than cross-compiling the X86 target.

=== Why do I get &quot;command not found&quot; even though I follow the instructions in the documentation? ===

'''Error messages'''

As an example:

 X86: ~] &gt; af-sb-init.sh start
 bash: af-sb-init.sh: command not found


'''Solution'''
After running the installation script you have to install some closed-source packages to have a full installation of the SDK. Most likely these are not installed. Have a look [http://maemo.org/development/sdks/maemo_5_beta_2_sdk_installation/#32bitinstall here] - the last point under installation instructions - how to do that.

=== How to resolve &quot;Scratchbox devkit debian-etch not found&quot; issue? ===

Sometimes while running the install-script of the SDK this error occurs and produces a message like the following:

'''Error messages'''
 
 E: Scratchbox devkit debian-etch not found.
 E: Please complete scratchbox installation first.
 E: Specify an alternative installation path using '-s PATH' option.

'''Solution'''
The problem can be resolved like this (with thanks to Frank Banul in the developer list):

&lt;ol&gt;
&lt;li&gt;
add &lt;pre&gt;deb http://scratchbox.org/debian/ maemo5-sdk main&lt;/pre&gt; to &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; 
&lt;/li&gt;
&lt;li&gt;
run:
&lt;pre&gt;
sudo apt-get remove scratchbox-devkit-debian
sudo apt-get install scratchbox-devkit-debian
sudo apt-get remove scratchbox-devkit-perl
sudo apt-get install scratchbox-devkit-perl
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

=== Why can I reach an IP-address but no domain inside Scratchbox? ===

In some cases this happens because of the following reasons:
# Network configuration changed on the host-system, after Scratchbox was installed
# Scratchbox not configured correctly: 
#* Manual installation of SDK was not complete
#* The target was reset

'''Error messages'''
Depends on the program, which is used. But here a small test client in python:
&lt;source lang=&quot;python&quot;&gt;
import urllib2
print urllib2.urlopen(&quot;http://google.com&quot;).read()
&lt;/source&gt;

Then the following error message will be returned:

 urllib2.URLError: &lt;urlopen error (-3, 'Temporary failure in name resolution')&gt;

'''Solution'''
* Fremantle X86(!), Diablo X86(!)
In any cases it is most likely that the resolv.conf of the Scratchbox is not set up correctly. The following solutions for this issue can solve the problem:

# Network configuration change: Copy the resolv.conf from the host system into the scratchbox/etc folder:

 sudo cp /etc/resolv.conf /scratchbox/etc/resolv.conf

If the problem is still the same try 2.:

# Scratchbox configuration: This might be the case, if the target was reset or manual installed, without using the script. In this case run:

 SBOX&gt; sb-conf in -edFL

This sets the &lt;code&gt;/scratchbox/etc/resolv.conf&lt;/code&gt; as default and ignores the one of the scratchbox. Info about the command you'll find [http://maemo.org/development/sdks/maemo_5_beta_2_sdk_installation/#manualinstall here].

These steps should solve the problem. If it still does not work, you could try to replace the entries of the resolv.conf '''within''' the scratchbox with the same entries of the resolv.conf of the '''host''' system by hand.

=== Script &quot;af-sb-init.sh start&quot; aborting ===

Sometimes it happens, that the script aborts just after starting. A problem might be, that old processes are still active, and cause the error. Indicator that this might be the reason are the following lines after the startup:

'''Indicator'''

 _X86: ~] &gt; af-sb-init.sh start
 ...
 DBUS system bus is already running, doing nothing
 D-BUS session bus daemon is already running, doing nothing
 Starting Maemo Launcher: maemo-launcher start failed.
 Sapwood image server is already running, doing nothing
 ...
 aborting...

This shows, that old processes are still running, which might cause problems in starting up the framework again. 

''' Solution '''

To solve this stop the framework, kill all old processes and start it again. This can be done by:

# stop the framework:&lt;pre&gt;af-sb-init.sh stop&lt;/pre&gt;
# kill old processes:&lt;pre&gt;sb-conf killall&lt;/pre&gt;
# restart:&lt;pre&gt;af-sb-init.sh start&lt;/pre&gt;

=== How to install the SDK+ on a Linux AMD64 platform? ===

The Maemo SDK+ package includes scratchbox 2 and Qt, but it will only install on 32-bit platforms. If you're running Debian with a 64-bit kernel, Maemo SDK+ can be installed into a chrooted 32-bit environment that sits on top of your 64-bit platform. 

'''Solution'''

[[Maemo_SDK%2B_installation_on_Debian_(AMD64)|This guide]] takes you through all the steps to the point of compilation and running the test.

=== QEMU error running cmake in ARMEL target in Fremantle? ===

'''Indicator'''
 qemu: uncaught target signal 11 (Segmentation fault) - core dumped
 make: *** [cmake_check_build_system] Error 126

''' Solution '''
Check the version of cmake. Using version 2.6.3-2maemo4+0m5 should solve the problem.

=== Git error when trying to clone/pull from https repositories ===

'''Indicator'''
  error: error setting certificate verify locations:
    CAfile: /usr/share/curl/curl-ca-bundle.crt
    CApath: none
  
  warning: remote HEAD refers to nonexistent ref, unable to checkout.

'''Solution'''

Place the CA bundle where curl can find it:
  ~] &gt; mkdir /usr/share/curl
  ~] &gt; ln -s /scratchbox/devkits/git/share/curl/curl-ca-bundle.crt /usr/share/curl/

See also [https://bugs.maemo.org/show_bug.cgi?id=4953 bug 4953].

== Porting to Fremantle ==

{{main|Documentation/Maemo 5 Developer Guide/Porting Software}}

This section is intended to consolidate the common errors that occur while trying to port [[Open development/Maemo roadmap/Diablo|Diablo]] applications to [[Open development/Maemo roadmap/Fremantle|Fremantle]]. Feel free to improve this page and/or add additional information.

===maemo-select-menu-location: command not found===
 
'''Typical error message'''
 scratchbox/tools/bin/sh: line 1: /usr/sbin/dpkg-preconfigure: No such file or directory
 Setting up leafpad (0.8.16le-0maemo2) ...
 gtk-update-icon-cache: Cache file created successfully.
 /var/lib/dpkg/info/leafpad.postinst: line 7: maemo-select-menu-location: command not found
 dpkg: error processing leafpad (--configure): subprocess post-installation script returned error exit  status 127

'''Reason'''
:maemo-select-menu-location is obsolete. In Fremantle, there is no submenu like, &quot;Utility&quot;, &quot;Extra&quot;, &quot;Settings&quot; etc. All installed 3rd party software will be visible under &quot;Applications&quot; by default.  

'''Action'''
:Remove the instance from the post installation script. It is not needed.

===Missing dependency: maemo-installer-utils===

'''Reason'''
:The package &lt;code&gt;hildon-application-manager&lt;/code&gt; no longer provides &lt;code&gt;maemo-installer-utils&lt;/code&gt;. The commands &lt;code&gt;maemo-confirm-text&lt;/code&gt;, &lt;code&gt;maemo-application-running&lt;/code&gt;, &lt;code&gt;maemo-list-user-packages&lt;/code&gt; are  still available. 

'''Action'''
:Replace the dependency with &lt;code&gt;hildon-application-manager&lt;/code&gt;. 

===Missing dependency: libhildonhelp0===

'''Reason'''
:libhildonhelp does not exist in Fremantle.

'''Action'''
:Remove the dependency and calls to the help APIs.

===Limitation of Home Area applets===

Unlike Diablo, in Fremantle these applets do not support text input, pannable areas, resizing nor scrolling.

'''Reason'''
:Framework limitations.

'''Action'''
:Replace text input fields with dialogs. Use buttons for scrolling. Add resizing options in the settings dialog or adapt the UI of the applet regarding to that. For further information on how to develop those applets, please check the [[Documentation/Maemo_5_Developer_Guide/Application_Development/Writing_Desktop_Widgets|documentation]].

===What icon size should be used?===

With Fremantle the size specifications of the icons are different from Diablo:

'''Application Manager'''
* Icon size: &lt;code&gt;HILDON_ICON_SIZE_FINGER&lt;/code&gt;
* In Gimp or Photoshop: 48x48 pixels

'''Task Launcher'''
* Icon size: &lt;code&gt;HILDON_ICON_SIZE_THUMB&lt;/code&gt;
* In Gimp or Photoshop: 64x64 pixels

Using icons for the task launcher, please remember to run the following in your postinst file:

 gtk-update-icon-cache -f /usr/share/icons/hicolor

===Text and icons in dialogs===

'''Problem'''
:The text in dialog boxes is not formatted correctly (truncated on the right size), when a icon is in place.

'''Action'''
:In general icons should not be used in dialogs in Fremantle. Remove the icon and the text will be formatted correctly.

===Initialisation scripts===

'''Problem'''
:Initialisation scripts don't work any more.

'''Reason'''
:Fremantle has switched to using '''upstart''' for system initialisation.

'''Action'''
:Create '''upstart''' job definitions instead of init scripts.  Information on writing these can be found on http://upstart.ubuntu.com/getting-started.html. However, be aware that the directory used on Maemo 5 is &lt;code&gt;/etc/event.d&lt;/code&gt;.
:The job script should be placed in &lt;code&gt;/etc/event.d/''package''&lt;/code&gt;.  And the package postinst, prerm and postrm should use the ''start --quiet'' and ''stop --quiet'' commands to start and stop the service.  Unfortunately there is no debhelper tool to assist with this.


=== Enabling sudo for user installed scripts ===

'''Problem'''
:Users tend to want to edit /etc/sudoers to allow a command provided by a script they created to run with raised privileges. This is highly likely to result in a bricked device forcing you to re-flash to make it work again from scratch.

'''Reason'''
:The &lt;code&gt;/etc/sudoers&lt;/code&gt; file seems deceivingly straight forward to edit. It's not:
   &lt;code&gt;
    17:27 &lt; MohammadAG51&gt; listen to that advice&lt;BR&gt;
    17:27 &lt; MohammadAG51&gt; don't be a smartass like I did once
   &lt;/code&gt;

'''Action'''
:Add your specific sudo configuration to &quot;&lt;code&gt;/etc/sudoers.d/*&lt;/code&gt;&quot; as a new file (courtuesy to the reader, you are advised to read [http://www.sudo.ws/sudo/sudoers.man.html this] to understand how to create sudoers.d/ snippets appropriate for your application or script.
:Run update-sudoers and profit.

== Qt ==

=== Where to find a Maemo Qt API Reference? ===
There is a [[Qt4 Hildon|Qt page on the wiki]] with some useful information, and [http://qt.nokia.com/doc/qt-maemo-4.6/index.html official Qt for Maemo documentation].

=== How to create &quot;[[Documentation/Maemo_5_Developer_Guide/Human_Interface_Guidelines/Windows#Window_Views|HildonStackableWindows]]&quot;?===

This is done by setting a special attribute on the window, as shown in the [http://doc.qt.nokia.com/qt-maemo-4.6/maemo5-stackedwindows.html Qt Maemo 5 stacked window example].

== Autobuilder ==

=== Localization isn't working ===

You are probably using the following line in &lt;code&gt;configure.ac&lt;/code&gt;:

 localedir=`$PKG_CONFIG osso-af-settings --variable=localedir`

This means that you need to add &lt;code&gt;osso-af-settings&lt;/code&gt; to your Build-Depends.

=== Package gets rejected: REJECTED: The same or newer version is already in extras-devel ===

You can't upload the same version to the repository twice. If you have changed anything in your package, you should increase your version number or package revision.

=== Build failed: No such file or directory in log file ===

You probably forgot to specify the correct Build-Depends in &lt;code&gt;debian/control&lt;/code&gt;. The autobuilder starts every build with a clean SDK image. If you need any application during building which is not available in the default SDK image, you need to specify it specifically.

You may verify that your Build-Depends field in debian/control is complete by running

 dpkg-depcheck -m dpkg-buildpackage -rfakeroot -b

in the source tree.  (You'll need to &quot;&lt;code&gt;fakeroot apt-get install devscripts&lt;/code&gt;&quot; for this to work).

=== Build failed, works in my own scratchbox ===

See the answer above.

== Extras ==

=== How can I package software for Maemo? ===

{{main|Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing}}

As Maemo is based on the Debian operating system, creating packages for Maemo borrows a lot of tools and techniques from Debian, however there are [[Packaging#Maemo-specific packaging information|some Maemo-specific differences]].

A [[Packaging|simple guide to get started]] is available.

=== How do I request upload rights for Extras ===

You can [https://garage.maemo.org/extras-assistant/index.php?target=invitation_request request an invitation] via the Extras Assistant.

=== How do I enable extras, extras-testing, and extras-devel in Scratchbox ===

Add the following lines to &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; from within scratchbox:
 deb http://repository.maemo.org/extras/ fremantle free non-free
 deb-src http://repository.maemo.org/extras/ fremantle free
 
 deb http://repository.maemo.org/extras-testing/ fremantle free non-free
 deb-src http://repository.maemo.org/extras-testing/ fremantle free
 
 deb http://repository.maemo.org/extras-devel/ fremantle free non-free
 deb-src http://repository.maemo.org/extras-devel/ fremantle free


Then run the following commands from within scratchbox:
 cd /tmp
 wget http://repository.maemo.org/extras-devel/dists/fremantle/fremantle-extras-pubkey.asc
 apt-key add fremantle-extras-pubkey.asc
 apt-get update
 apt-get update

Yes, running apt-get update twice is sometimes needed.

If you get errors where apt cannot find the keyring, then the above commands should fix that.

[[Category:Development]]
[[Category:Scratchbox]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Developer FAQ</title>
    <id>2999</id>
    <revision>
      <id>48108</id>
      <timestamp>2012-06-04T05:04:35Z</timestamp>
      <contributor>
        <username>polarbear</username>
        <id>5240</id>
      </contributor>
      <minor/>
      <comment>/* Enabling sudo for user installed scripts */</comment>
      <text xml:space="preserve">This is a list of frequently asked questions related to developing applications for the Maemo platform or working on the platform itself. This is in constant evolution, and new questions and answers are welcome.

For user topics, please see the [[User FAQ]].

== What can I do if my question is not mentioned here? ==

# Look if it is discussed already in one of the mailing lists or in [http://talk.maemo.org talk.maemo.org]
# If not post your question in the developer mailing list or in talk
# If you find the answer and you think it could be interesting for others as well post it here, so that we just have to point on this page in the future if the question pops up again.

== Maemo SDK and Scratchbox ==

=== &quot;dbus-monitor&quot; does not work in Scratchbox. What can I do? ===

'''Error messages'''

Typical error messages in this case are:

 X86: ~] &gt; dbus-monitor --system
 Failed to open connection to system message bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory

or for the session bus:
 
 X86: ~] &gt; dbus-monitor          
 Failed to open connection to session message bus: (null)

or when starting a python app:
 arguments to dbus_connection_get_data() were incorrect, assertion &quot;connection != NULL&quot; failed in file dbus-connection.c
 GLIB ERROR ** default - Not enough memory to set up DBusConnection for use with GLib

'''Solution'''
*Tested in Fremantle Beta, Beta_2
Enter the following lines in the Scratchbox:

 eval $(dbus-launch --sh-syntax)
 export DBUS_SESSION_BUS_ADDRESS
 export DBUS_SESSION_BUS_PID

Then run the dbus-monitor command and it should work fine!

=== &quot;xephyr&quot; fails to start in the host with a dbus security error ===

'''Error messages'''
 [config/dbus] couldn't take over org.x.config: org.freedesktop.DBus.Error.AccessDenied (Connection &quot;:1.310&quot; is not allowed to own the service &quot;org.x.config.display2&quot; due to security policies in the configuration file)

'''Solution'''
The display you plan on using for Xephyr (typically :2) just needs to be added to the dbus security file.

You need to edit the following file:
 /etc/dbus-1/system.d/xorg-server.conf

Add the following three lines in the &quot;&lt;code&gt;&lt;policy context=&quot;default&quot;&gt;&lt;/code&gt; group
&lt;source lang=&quot;xml&quot;&gt;
&lt;allow own=&quot;org.x.config.display2&quot;/&gt;
&lt;allow send_destination=&quot;org.x.config.display2&quot;/&gt;
&lt;allow send_interface=&quot;org.x.config.display2&quot;/&gt;
&lt;/source&gt;

Basically you should have one for each display you plan on using, by default display 0 and display 1 are in the file. If you are planning on using a different display number for Xephyr than :2 make sure you use its number rather than &quot;display2&quot; when you add these lines.

=== How can I avoid &quot;qemu&quot; error messages of &quot;af-sb-init start&quot; in ARMEL target? ===

'''Error messages'''

Usually the attempt ends up with something like this:

 The error was 'BadWindow (invalid Window parameter)'.
 (Details: serial 207 error_code 3 request_code 2 minor_code 0)
 (Note to programmers: normally, X errors are reported asynchronously;
 that is, you will receive the error a while after causing it.
 To debug your program, run it with the --sync command line
 option to change this behavior. You can then get a meaningful
 backtrace from your debugger if you break on the gdk_x_error() function.)
 aborting...
 qemu: uncaught target signal 6 (Aborted) - core dumped

'''Solution'''
* all SDK's

The ARMEL target should not be used for application testing and just for cross compiling. The target is not meant to support this. Please use for any other use than cross-compiling the X86 target.

=== Why do I get &quot;command not found&quot; even though I follow the instructions in the documentation? ===

'''Error messages'''

As an example:

 X86: ~] &gt; af-sb-init.sh start
 bash: af-sb-init.sh: command not found


'''Solution'''
After running the installation script you have to install some closed-source packages to have a full installation of the SDK. Most likely these are not installed. Have a look [http://maemo.org/development/sdks/maemo_5_beta_2_sdk_installation/#32bitinstall here] - the last point under installation instructions - how to do that.

=== How to resolve &quot;Scratchbox devkit debian-etch not found&quot; issue? ===

Sometimes while running the install-script of the SDK this error occurs and produces a message like the following:

'''Error messages'''
 
 E: Scratchbox devkit debian-etch not found.
 E: Please complete scratchbox installation first.
 E: Specify an alternative installation path using '-s PATH' option.

'''Solution'''
The problem can be resolved like this (with thanks to Frank Banul in the developer list):

&lt;ol&gt;
&lt;li&gt;
add &lt;pre&gt;deb http://scratchbox.org/debian/ maemo5-sdk main&lt;/pre&gt; to &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; 
&lt;/li&gt;
&lt;li&gt;
run:
&lt;pre&gt;
sudo apt-get remove scratchbox-devkit-debian
sudo apt-get install scratchbox-devkit-debian
sudo apt-get remove scratchbox-devkit-perl
sudo apt-get install scratchbox-devkit-perl
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

=== Why can I reach an IP-address but no domain inside Scratchbox? ===

In some cases this happens because of the following reasons:
# Network configuration changed on the host-system, after Scratchbox was installed
# Scratchbox not configured correctly: 
#* Manual installation of SDK was not complete
#* The target was reset

'''Error messages'''
Depends on the program, which is used. But here a small test client in python:
&lt;source lang=&quot;python&quot;&gt;
import urllib2
print urllib2.urlopen(&quot;http://google.com&quot;).read()
&lt;/source&gt;

Then the following error message will be returned:

 urllib2.URLError: &lt;urlopen error (-3, 'Temporary failure in name resolution')&gt;

'''Solution'''
* Fremantle X86(!), Diablo X86(!)
In any cases it is most likely that the resolv.conf of the Scratchbox is not set up correctly. The following solutions for this issue can solve the problem:

# Network configuration change: Copy the resolv.conf from the host system into the scratchbox/etc folder:

 sudo cp /etc/resolv.conf /scratchbox/etc/resolv.conf

If the problem is still the same try 2.:

# Scratchbox configuration: This might be the case, if the target was reset or manual installed, without using the script. In this case run:

 SBOX&gt; sb-conf in -edFL

This sets the &lt;code&gt;/scratchbox/etc/resolv.conf&lt;/code&gt; as default and ignores the one of the scratchbox. Info about the command you'll find [http://maemo.org/development/sdks/maemo_5_beta_2_sdk_installation/#manualinstall here].

These steps should solve the problem. If it still does not work, you could try to replace the entries of the resolv.conf '''within''' the scratchbox with the same entries of the resolv.conf of the '''host''' system by hand.

=== Script &quot;af-sb-init.sh start&quot; aborting ===

Sometimes it happens, that the script aborts just after starting. A problem might be, that old processes are still active, and cause the error. Indicator that this might be the reason are the following lines after the startup:

'''Indicator'''

 _X86: ~] &gt; af-sb-init.sh start
 ...
 DBUS system bus is already running, doing nothing
 D-BUS session bus daemon is already running, doing nothing
 Starting Maemo Launcher: maemo-launcher start failed.
 Sapwood image server is already running, doing nothing
 ...
 aborting...

This shows, that old processes are still running, which might cause problems in starting up the framework again. 

''' Solution '''

To solve this stop the framework, kill all old processes and start it again. This can be done by:

# stop the framework:&lt;pre&gt;af-sb-init.sh stop&lt;/pre&gt;
# kill old processes:&lt;pre&gt;sb-conf killall&lt;/pre&gt;
# restart:&lt;pre&gt;af-sb-init.sh start&lt;/pre&gt;

=== How to install the SDK+ on a Linux AMD64 platform? ===

The Maemo SDK+ package includes scratchbox 2 and Qt, but it will only install on 32-bit platforms. If you're running Debian with a 64-bit kernel, Maemo SDK+ can be installed into a chrooted 32-bit environment that sits on top of your 64-bit platform. 

'''Solution'''

[[Maemo_SDK%2B_installation_on_Debian_(AMD64)|This guide]] takes you through all the steps to the point of compilation and running the test.

=== QEMU error running cmake in ARMEL target in Fremantle? ===

'''Indicator'''
 qemu: uncaught target signal 11 (Segmentation fault) - core dumped
 make: *** [cmake_check_build_system] Error 126

''' Solution '''
Check the version of cmake. Using version 2.6.3-2maemo4+0m5 should solve the problem.

=== Git error when trying to clone/pull from https repositories ===

'''Indicator'''
  error: error setting certificate verify locations:
    CAfile: /usr/share/curl/curl-ca-bundle.crt
    CApath: none
  
  warning: remote HEAD refers to nonexistent ref, unable to checkout.

'''Solution'''

Place the CA bundle where curl can find it:
  ~] &gt; mkdir /usr/share/curl
  ~] &gt; ln -s /scratchbox/devkits/git/share/curl/curl-ca-bundle.crt /usr/share/curl/

See also [https://bugs.maemo.org/show_bug.cgi?id=4953 bug 4953].

== Porting to Fremantle ==

{{main|Documentation/Maemo 5 Developer Guide/Porting Software}}

This section is intended to consolidate the common errors that occur while trying to port [[Open development/Maemo roadmap/Diablo|Diablo]] applications to [[Open development/Maemo roadmap/Fremantle|Fremantle]]. Feel free to improve this page and/or add additional information.

===maemo-select-menu-location: command not found===
 
'''Typical error message'''
 scratchbox/tools/bin/sh: line 1: /usr/sbin/dpkg-preconfigure: No such file or directory
 Setting up leafpad (0.8.16le-0maemo2) ...
 gtk-update-icon-cache: Cache file created successfully.
 /var/lib/dpkg/info/leafpad.postinst: line 7: maemo-select-menu-location: command not found
 dpkg: error processing leafpad (--configure): subprocess post-installation script returned error exit  status 127

'''Reason'''
:maemo-select-menu-location is obsolete. In Fremantle, there is no submenu like, &quot;Utility&quot;, &quot;Extra&quot;, &quot;Settings&quot; etc. All installed 3rd party software will be visible under &quot;Applications&quot; by default.  

'''Action'''
:Remove the instance from the post installation script. It is not needed.

===Missing dependency: maemo-installer-utils===

'''Reason'''
:The package &lt;code&gt;hildon-application-manager&lt;/code&gt; no longer provides &lt;code&gt;maemo-installer-utils&lt;/code&gt;. The commands &lt;code&gt;maemo-confirm-text&lt;/code&gt;, &lt;code&gt;maemo-application-running&lt;/code&gt;, &lt;code&gt;maemo-list-user-packages&lt;/code&gt; are  still available. 

'''Action'''
:Replace the dependency with &lt;code&gt;hildon-application-manager&lt;/code&gt;. 

===Missing dependency: libhildonhelp0===

'''Reason'''
:libhildonhelp does not exist in Fremantle.

'''Action'''
:Remove the dependency and calls to the help APIs.

===Limitation of Home Area applets===

Unlike Diablo, in Fremantle these applets do not support text input, pannable areas, resizing nor scrolling.

'''Reason'''
:Framework limitations.

'''Action'''
:Replace text input fields with dialogs. Use buttons for scrolling. Add resizing options in the settings dialog or adapt the UI of the applet regarding to that. For further information on how to develop those applets, please check the [[Documentation/Maemo_5_Developer_Guide/Application_Development/Writing_Desktop_Widgets|documentation]].

===What icon size should be used?===

With Fremantle the size specifications of the icons are different from Diablo:

'''Application Manager'''
* Icon size: &lt;code&gt;HILDON_ICON_SIZE_FINGER&lt;/code&gt;
* In Gimp or Photoshop: 48x48 pixels

'''Task Launcher'''
* Icon size: &lt;code&gt;HILDON_ICON_SIZE_THUMB&lt;/code&gt;
* In Gimp or Photoshop: 64x64 pixels

Using icons for the task launcher, please remember to run the following in your postinst file:

 gtk-update-icon-cache -f /usr/share/icons/hicolor

===Text and icons in dialogs===

'''Problem'''
:The text in dialog boxes is not formatted correctly (truncated on the right size), when a icon is in place.

'''Action'''
:In general icons should not be used in dialogs in Fremantle. Remove the icon and the text will be formatted correctly.

===Initialisation scripts===

'''Problem'''
:Initialisation scripts don't work any more.

'''Reason'''
:Fremantle has switched to using '''upstart''' for system initialisation.

'''Action'''
:Create '''upstart''' job definitions instead of init scripts.  Information on writing these can be found on http://upstart.ubuntu.com/getting-started.html. However, be aware that the directory used on Maemo 5 is &lt;code&gt;/etc/event.d&lt;/code&gt;.
:The job script should be placed in &lt;code&gt;/etc/event.d/''package''&lt;/code&gt;.  And the package postinst, prerm and postrm should use the ''start --quiet'' and ''stop --quiet'' commands to start and stop the service.  Unfortunately there is no debhelper tool to assist with this.


=== Enabling sudo for user installed scripts ===

'''Problem'''
:Users tend to want to edit /etc/sudoers to allow a command provided by a script they created to run with raised privileges. This is highly likely to result in a bricked device forcing you to re-flash to make it work again from scratch.

'''Reason'''
:The &lt;code&gt;/etc/sudoers&lt;/code&gt; file seems deceivingly straight forward to edit. It's not:
   &lt;code&gt;
    17:27 &lt; MohammadAG51&gt; listen to that advice&lt;BR&gt;
    17:27 &lt; MohammadAG51&gt; don't be a smartass like I did once
   &lt;/code&gt;

'''Action'''
:Add your specific sudo configuration to &quot;&lt;code&gt;/etc/sudoers.d/*&lt;/code&gt;&quot; as a new file (courtuesy to the reader, you are advised to read [http://www.sudo.ws/sudo/sudoers.man.html this] to understand how to create sudoers.d/ snippets appropriate for your application or script.
:Run update-sudoers and profit.

== Qt ==

=== Where to find a Maemo Qt API Reference? ===
There is a [[Qt4 Hildon|Qt page on the wiki]] with some useful information, and [http://qt.nokia.com/doc/qt-maemo-4.6/index.html official Qt for Maemo documentation].

=== How to create &quot;[[Documentation/Maemo_5_Developer_Guide/Human_Interface_Guidelines/Windows#Window_Views|HildonStackableWindows]]&quot;?===

This is done by setting a special attribute on the window, as shown in the [http://doc.qt.nokia.com/qt-maemo-4.6/maemo5-stackedwindows.html Qt Maemo 5 stacked window example].

== Autobuilder ==

=== Localization isn't working ===

You are probably using the following line in &lt;code&gt;configure.ac&lt;/code&gt;:

 localedir=`$PKG_CONFIG osso-af-settings --variable=localedir`

This means that you need to add &lt;code&gt;osso-af-settings&lt;/code&gt; to your Build-Depends.

=== Package gets rejected: REJECTED: The same or newer version is already in extras-devel ===

You can't upload the same version to the repository twice. If you have changed anything in your package, you should increase your version number or package revision.

=== Build failed: No such file or directory in log file ===

You probably forgot to specify the correct Build-Depends in &lt;code&gt;debian/control&lt;/code&gt;. The autobuilder starts every build with a clean SDK image. If you need any application during building which is not available in the default SDK image, you need to specify it specifically.

You may verify that your Build-Depends field in debian/control is complete by running

 dpkg-depcheck -m dpkg-buildpackage -rfakeroot -b

in the source tree.  (You'll need to &quot;&lt;code&gt;fakeroot apt-get install devscripts&lt;/code&gt;&quot; for this to work).

=== Build failed, works in my own scratchbox ===

See the answer above.

== Extras ==

=== How can I package software for Maemo? ===

{{main|Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing}}

As Maemo is based on the Debian operating system, creating packages for Maemo borrows a lot of tools and techniques from Debian, however there are [[Packaging#Maemo-specific packaging information|some Maemo-specific differences]].

A [[Packaging|simple guide to get started]] is available.

=== How do I request upload rights for Extras ===

You can [https://garage.maemo.org/extras-assistant/index.php?target=invitation_request request an invitation] via the Extras Assistant.

=== How do I enable extras, extras-testing, and extras-devel in Scratchbox ===

Add the following lines to &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; from within scratchbox:
 deb http://repository.maemo.org/extras/ fremantle free non-free
 deb-src http://repository.maemo.org/extras/ fremantle free
 
 deb http://repository.maemo.org/extras-testing/ fremantle free non-free
 deb-src http://repository.maemo.org/extras-testing/ fremantle free
 
 deb http://repository.maemo.org/extras-devel/ fremantle free non-free
 deb-src http://repository.maemo.org/extras-devel/ fremantle free


Then run the following commands from within scratchbox:
 cd /tmp
 wget http://repository.maemo.org/extras-devel/dists/fremantle/fremantle-extras-pubkey.asc
 apt-key add fremantle-extras-pubkey.asc
 apt-get update
 apt-get update

Yes, running apt-get update twice is sometimes needed.

If you get errors where apt cannot find the keyring, then the above commands should fix that.

[[Category:Development]]
[[Category:Scratchbox]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Developer FAQ</title>
    <id>2999</id>
    <revision>
      <id>48108</id>
      <timestamp>2012-06-04T05:04:35Z</timestamp>
      <contributor>
        <username>polarbear</username>
        <id>5240</id>
      </contributor>
      <minor/>
      <comment>/* Enabling sudo for user installed scripts */</comment>
      <text xml:space="preserve">This is a list of frequently asked questions related to developing applications for the Maemo platform or working on the platform itself. This is in constant evolution, and new questions and answers are welcome.

For user topics, please see the [[User FAQ]].

== What can I do if my question is not mentioned here? ==

# Look if it is discussed already in one of the mailing lists or in [http://talk.maemo.org talk.maemo.org]
# If not post your question in the developer mailing list or in talk
# If you find the answer and you think it could be interesting for others as well post it here, so that we just have to point on this page in the future if the question pops up again.

== Maemo SDK and Scratchbox ==

=== &quot;dbus-monitor&quot; does not work in Scratchbox. What can I do? ===

'''Error messages'''

Typical error messages in this case are:

 X86: ~] &gt; dbus-monitor --system
 Failed to open connection to system message bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory

or for the session bus:
 
 X86: ~] &gt; dbus-monitor          
 Failed to open connection to session message bus: (null)

or when starting a python app:
 arguments to dbus_connection_get_data() were incorrect, assertion &quot;connection != NULL&quot; failed in file dbus-connection.c
 GLIB ERROR ** default - Not enough memory to set up DBusConnection for use with GLib

'''Solution'''
*Tested in Fremantle Beta, Beta_2
Enter the following lines in the Scratchbox:

 eval $(dbus-launch --sh-syntax)
 export DBUS_SESSION_BUS_ADDRESS
 export DBUS_SESSION_BUS_PID

Then run the dbus-monitor command and it should work fine!

=== &quot;xephyr&quot; fails to start in the host with a dbus security error ===

'''Error messages'''
 [config/dbus] couldn't take over org.x.config: org.freedesktop.DBus.Error.AccessDenied (Connection &quot;:1.310&quot; is not allowed to own the service &quot;org.x.config.display2&quot; due to security policies in the configuration file)

'''Solution'''
The display you plan on using for Xephyr (typically :2) just needs to be added to the dbus security file.

You need to edit the following file:
 /etc/dbus-1/system.d/xorg-server.conf

Add the following three lines in the &quot;&lt;code&gt;&lt;policy context=&quot;default&quot;&gt;&lt;/code&gt; group
&lt;source lang=&quot;xml&quot;&gt;
&lt;allow own=&quot;org.x.config.display2&quot;/&gt;
&lt;allow send_destination=&quot;org.x.config.display2&quot;/&gt;
&lt;allow send_interface=&quot;org.x.config.display2&quot;/&gt;
&lt;/source&gt;

Basically you should have one for each display you plan on using, by default display 0 and display 1 are in the file. If you are planning on using a different display number for Xephyr than :2 make sure you use its number rather than &quot;display2&quot; when you add these lines.

=== How can I avoid &quot;qemu&quot; error messages of &quot;af-sb-init start&quot; in ARMEL target? ===

'''Error messages'''

Usually the attempt ends up with something like this:

 The error was 'BadWindow (invalid Window parameter)'.
 (Details: serial 207 error_code 3 request_code 2 minor_code 0)
 (Note to programmers: normally, X errors are reported asynchronously;
 that is, you will receive the error a while after causing it.
 To debug your program, run it with the --sync command line
 option to change this behavior. You can then get a meaningful
 backtrace from your debugger if you break on the gdk_x_error() function.)
 aborting...
 qemu: uncaught target signal 6 (Aborted) - core dumped

'''Solution'''
* all SDK's

The ARMEL target should not be used for application testing and just for cross compiling. The target is not meant to support this. Please use for any other use than cross-compiling the X86 target.

=== Why do I get &quot;command not found&quot; even though I follow the instructions in the documentation? ===

'''Error messages'''

As an example:

 X86: ~] &gt; af-sb-init.sh start
 bash: af-sb-init.sh: command not found


'''Solution'''
After running the installation script you have to install some closed-source packages to have a full installation of the SDK. Most likely these are not installed. Have a look [http://maemo.org/development/sdks/maemo_5_beta_2_sdk_installation/#32bitinstall here] - the last point under installation instructions - how to do that.

=== How to resolve &quot;Scratchbox devkit debian-etch not found&quot; issue? ===

Sometimes while running the install-script of the SDK this error occurs and produces a message like the following:

'''Error messages'''
 
 E: Scratchbox devkit debian-etch not found.
 E: Please complete scratchbox installation first.
 E: Specify an alternative installation path using '-s PATH' option.

'''Solution'''
The problem can be resolved like this (with thanks to Frank Banul in the developer list):

&lt;ol&gt;
&lt;li&gt;
add &lt;pre&gt;deb http://scratchbox.org/debian/ maemo5-sdk main&lt;/pre&gt; to &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; 
&lt;/li&gt;
&lt;li&gt;
run:
&lt;pre&gt;
sudo apt-get remove scratchbox-devkit-debian
sudo apt-get install scratchbox-devkit-debian
sudo apt-get remove scratchbox-devkit-perl
sudo apt-get install scratchbox-devkit-perl
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

=== Why can I reach an IP-address but no domain inside Scratchbox? ===

In some cases this happens because of the following reasons:
# Network configuration changed on the host-system, after Scratchbox was installed
# Scratchbox not configured correctly: 
#* Manual installation of SDK was not complete
#* The target was reset

'''Error messages'''
Depends on the program, which is used. But here a small test client in python:
&lt;source lang=&quot;python&quot;&gt;
import urllib2
print urllib2.urlopen(&quot;http://google.com&quot;).read()
&lt;/source&gt;

Then the following error message will be returned:

 urllib2.URLError: &lt;urlopen error (-3, 'Temporary failure in name resolution')&gt;

'''Solution'''
* Fremantle X86(!), Diablo X86(!)
In any cases it is most likely that the resolv.conf of the Scratchbox is not set up correctly. The following solutions for this issue can solve the problem:

# Network configuration change: Copy the resolv.conf from the host system into the scratchbox/etc folder:

 sudo cp /etc/resolv.conf /scratchbox/etc/resolv.conf

If the problem is still the same try 2.:

# Scratchbox configuration: This might be the case, if the target was reset or manual installed, without using the script. In this case run:

 SBOX&gt; sb-conf in -edFL

This sets the &lt;code&gt;/scratchbox/etc/resolv.conf&lt;/code&gt; as default and ignores the one of the scratchbox. Info about the command you'll find [http://maemo.org/development/sdks/maemo_5_beta_2_sdk_installation/#manualinstall here].

These steps should solve the problem. If it still does not work, you could try to replace the entries of the resolv.conf '''within''' the scratchbox with the same entries of the resolv.conf of the '''host''' system by hand.

=== Script &quot;af-sb-init.sh start&quot; aborting ===

Sometimes it happens, that the script aborts just after starting. A problem might be, that old processes are still active, and cause the error. Indicator that this might be the reason are the following lines after the startup:

'''Indicator'''

 _X86: ~] &gt; af-sb-init.sh start
 ...
 DBUS system bus is already running, doing nothing
 D-BUS session bus daemon is already running, doing nothing
 Starting Maemo Launcher: maemo-launcher start failed.
 Sapwood image server is already running, doing nothing
 ...
 aborting...

This shows, that old processes are still running, which might cause problems in starting up the framework again. 

''' Solution '''

To solve this stop the framework, kill all old processes and start it again. This can be done by:

# stop the framework:&lt;pre&gt;af-sb-init.sh stop&lt;/pre&gt;
# kill old processes:&lt;pre&gt;sb-conf killall&lt;/pre&gt;
# restart:&lt;pre&gt;af-sb-init.sh start&lt;/pre&gt;

=== How to install the SDK+ on a Linux AMD64 platform? ===

The Maemo SDK+ package includes scratchbox 2 and Qt, but it will only install on 32-bit platforms. If you're running Debian with a 64-bit kernel, Maemo SDK+ can be installed into a chrooted 32-bit environment that sits on top of your 64-bit platform. 

'''Solution'''

[[Maemo_SDK%2B_installation_on_Debian_(AMD64)|This guide]] takes you through all the steps to the point of compilation and running the test.

=== QEMU error running cmake in ARMEL target in Fremantle? ===

'''Indicator'''
 qemu: uncaught target signal 11 (Segmentation fault) - core dumped
 make: *** [cmake_check_build_system] Error 126

''' Solution '''
Check the version of cmake. Using version 2.6.3-2maemo4+0m5 should solve the problem.

=== Git error when trying to clone/pull from https repositories ===

'''Indicator'''
  error: error setting certificate verify locations:
    CAfile: /usr/share/curl/curl-ca-bundle.crt
    CApath: none
  
  warning: remote HEAD refers to nonexistent ref, unable to checkout.

'''Solution'''

Place the CA bundle where curl can find it:
  ~] &gt; mkdir /usr/share/curl
  ~] &gt; ln -s /scratchbox/devkits/git/share/curl/curl-ca-bundle.crt /usr/share/curl/

See also [https://bugs.maemo.org/show_bug.cgi?id=4953 bug 4953].

== Porting to Fremantle ==

{{main|Documentation/Maemo 5 Developer Guide/Porting Software}}

This section is intended to consolidate the common errors that occur while trying to port [[Open development/Maemo roadmap/Diablo|Diablo]] applications to [[Open development/Maemo roadmap/Fremantle|Fremantle]]. Feel free to improve this page and/or add additional information.

===maemo-select-menu-location: command not found===
 
'''Typical error message'''
 scratchbox/tools/bin/sh: line 1: /usr/sbin/dpkg-preconfigure: No such file or directory
 Setting up leafpad (0.8.16le-0maemo2) ...
 gtk-update-icon-cache: Cache file created successfully.
 /var/lib/dpkg/info/leafpad.postinst: line 7: maemo-select-menu-location: command not found
 dpkg: error processing leafpad (--configure): subprocess post-installation script returned error exit  status 127

'''Reason'''
:maemo-select-menu-location is obsolete. In Fremantle, there is no submenu like, &quot;Utility&quot;, &quot;Extra&quot;, &quot;Settings&quot; etc. All installed 3rd party software will be visible under &quot;Applications&quot; by default.  

'''Action'''
:Remove the instance from the post installation script. It is not needed.

===Missing dependency: maemo-installer-utils===

'''Reason'''
:The package &lt;code&gt;hildon-application-manager&lt;/code&gt; no longer provides &lt;code&gt;maemo-installer-utils&lt;/code&gt;. The commands &lt;code&gt;maemo-confirm-text&lt;/code&gt;, &lt;code&gt;maemo-application-running&lt;/code&gt;, &lt;code&gt;maemo-list-user-packages&lt;/code&gt; are  still available. 

'''Action'''
:Replace the dependency with &lt;code&gt;hildon-application-manager&lt;/code&gt;. 

===Missing dependency: libhildonhelp0===

'''Reason'''
:libhildonhelp does not exist in Fremantle.

'''Action'''
:Remove the dependency and calls to the help APIs.

===Limitation of Home Area applets===

Unlike Diablo, in Fremantle these applets do not support text input, pannable areas, resizing nor scrolling.

'''Reason'''
:Framework limitations.

'''Action'''
:Replace text input fields with dialogs. Use buttons for scrolling. Add resizing options in the settings dialog or adapt the UI of the applet regarding to that. For further information on how to develop those applets, please check the [[Documentation/Maemo_5_Developer_Guide/Application_Development/Writing_Desktop_Widgets|documentation]].

===What icon size should be used?===

With Fremantle the size specifications of the icons are different from Diablo:

'''Application Manager'''
* Icon size: &lt;code&gt;HILDON_ICON_SIZE_FINGER&lt;/code&gt;
* In Gimp or Photoshop: 48x48 pixels

'''Task Launcher'''
* Icon size: &lt;code&gt;HILDON_ICON_SIZE_THUMB&lt;/code&gt;
* In Gimp or Photoshop: 64x64 pixels

Using icons for the task launcher, please remember to run the following in your postinst file:

 gtk-update-icon-cache -f /usr/share/icons/hicolor

===Text and icons in dialogs===

'''Problem'''
:The text in dialog boxes is not formatted correctly (truncated on the right size), when a icon is in place.

'''Action'''
:In general icons should not be used in dialogs in Fremantle. Remove the icon and the text will be formatted correctly.

===Initialisation scripts===

'''Problem'''
:Initialisation scripts don't work any more.

'''Reason'''
:Fremantle has switched to using '''upstart''' for system initialisation.

'''Action'''
:Create '''upstart''' job definitions instead of init scripts.  Information on writing these can be found on http://upstart.ubuntu.com/getting-started.html. However, be aware that the directory used on Maemo 5 is &lt;code&gt;/etc/event.d&lt;/code&gt;.
:The job script should be placed in &lt;code&gt;/etc/event.d/''package''&lt;/code&gt;.  And the package postinst, prerm and postrm should use the ''start --quiet'' and ''stop --quiet'' commands to start and stop the service.  Unfortunately there is no debhelper tool to assist with this.


=== Enabling sudo for user installed scripts ===

'''Problem'''
:Users tend to want to edit /etc/sudoers to allow a command provided by a script they created to run with raised privileges. This is highly likely to result in a bricked device forcing you to re-flash to make it work again from scratch.

'''Reason'''
:The &lt;code&gt;/etc/sudoers&lt;/code&gt; file seems deceivingly straight forward to edit. It's not:
   &lt;code&gt;
    17:27 &lt; MohammadAG51&gt; listen to that advice&lt;BR&gt;
    17:27 &lt; MohammadAG51&gt; don't be a smartass like I did once
   &lt;/code&gt;

'''Action'''
:Add your specific sudo configuration to &quot;&lt;code&gt;/etc/sudoers.d/*&lt;/code&gt;&quot; as a new file (courtuesy to the reader, you are advised to read [http://www.sudo.ws/sudo/sudoers.man.html this] to understand how to create sudoers.d/ snippets appropriate for your application or script.
:Run update-sudoers and profit.

== Qt ==

=== Where to find a Maemo Qt API Reference? ===
There is a [[Qt4 Hildon|Qt page on the wiki]] with some useful information, and [http://qt.nokia.com/doc/qt-maemo-4.6/index.html official Qt for Maemo documentation].

=== How to create &quot;[[Documentation/Maemo_5_Developer_Guide/Human_Interface_Guidelines/Windows#Window_Views|HildonStackableWindows]]&quot;?===

This is done by setting a special attribute on the window, as shown in the [http://doc.qt.nokia.com/qt-maemo-4.6/maemo5-stackedwindows.html Qt Maemo 5 stacked window example].

== Autobuilder ==

=== Localization isn't working ===

You are probably using the following line in &lt;code&gt;configure.ac&lt;/code&gt;:

 localedir=`$PKG_CONFIG osso-af-settings --variable=localedir`

This means that you need to add &lt;code&gt;osso-af-settings&lt;/code&gt; to your Build-Depends.

=== Package gets rejected: REJECTED: The same or newer version is already in extras-devel ===

You can't upload the same version to the repository twice. If you have changed anything in your package, you should increase your version number or package revision.

=== Build failed: No such file or directory in log file ===

You probably forgot to specify the correct Build-Depends in &lt;code&gt;debian/control&lt;/code&gt;. The autobuilder starts every build with a clean SDK image. If you need any application during building which is not available in the default SDK image, you need to specify it specifically.

You may verify that your Build-Depends field in debian/control is complete by running

 dpkg-depcheck -m dpkg-buildpackage -rfakeroot -b

in the source tree.  (You'll need to &quot;&lt;code&gt;fakeroot apt-get install devscripts&lt;/code&gt;&quot; for this to work).

=== Build failed, works in my own scratchbox ===

See the answer above.

== Extras ==

=== How can I package software for Maemo? ===

{{main|Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing}}

As Maemo is based on the Debian operating system, creating packages for Maemo borrows a lot of tools and techniques from Debian, however there are [[Packaging#Maemo-specific packaging information|some Maemo-specific differences]].

A [[Packaging|simple guide to get started]] is available.

=== How do I request upload rights for Extras ===

You can [https://garage.maemo.org/extras-assistant/index.php?target=invitation_request request an invitation] via the Extras Assistant.

=== How do I enable extras, extras-testing, and extras-devel in Scratchbox ===

Add the following lines to &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; from within scratchbox:
 deb http://repository.maemo.org/extras/ fremantle free non-free
 deb-src http://repository.maemo.org/extras/ fremantle free
 
 deb http://repository.maemo.org/extras-testing/ fremantle free non-free
 deb-src http://repository.maemo.org/extras-testing/ fremantle free
 
 deb http://repository.maemo.org/extras-devel/ fremantle free non-free
 deb-src http://repository.maemo.org/extras-devel/ fremantle free


Then run the following commands from within scratchbox:
 cd /tmp
 wget http://repository.maemo.org/extras-devel/dists/fremantle/fremantle-extras-pubkey.asc
 apt-key add fremantle-extras-pubkey.asc
 apt-get update
 apt-get update

Yes, running apt-get update twice is sometimes needed.

If you get errors where apt cannot find the keyring, then the above commands should fix that.

[[Category:Development]]
[[Category:Scratchbox]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Developer FAQ</title>
    <id>2999</id>
    <revision>
      <id>48108</id>
      <timestamp>2012-06-04T05:04:35Z</timestamp>
      <contributor>
        <username>polarbear</username>
        <id>5240</id>
      </contributor>
      <minor/>
      <comment>/* Enabling sudo for user installed scripts */</comment>
      <text xml:space="preserve">This is a list of frequently asked questions related to developing applications for the Maemo platform or working on the platform itself. This is in constant evolution, and new questions and answers are welcome.

For user topics, please see the [[User FAQ]].

== What can I do if my question is not mentioned here? ==

# Look if it is discussed already in one of the mailing lists or in [http://talk.maemo.org talk.maemo.org]
# If not post your question in the developer mailing list or in talk
# If you find the answer and you think it could be interesting for others as well post it here, so that we just have to point on this page in the future if the question pops up again.

== Maemo SDK and Scratchbox ==

=== &quot;dbus-monitor&quot; does not work in Scratchbox. What can I do? ===

'''Error messages'''

Typical error messages in this case are:

 X86: ~] &gt; dbus-monitor --system
 Failed to open connection to system message bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory

or for the session bus:
 
 X86: ~] &gt; dbus-monitor          
 Failed to open connection to session message bus: (null)

or when starting a python app:
 arguments to dbus_connection_get_data() were incorrect, assertion &quot;connection != NULL&quot; failed in file dbus-connection.c
 GLIB ERROR ** default - Not enough memory to set up DBusConnection for use with GLib

'''Solution'''
*Tested in Fremantle Beta, Beta_2
Enter the following lines in the Scratchbox:

 eval $(dbus-launch --sh-syntax)
 export DBUS_SESSION_BUS_ADDRESS
 export DBUS_SESSION_BUS_PID

Then run the dbus-monitor command and it should work fine!

=== &quot;xephyr&quot; fails to start in the host with a dbus security error ===

'''Error messages'''
 [config/dbus] couldn't take over org.x.config: org.freedesktop.DBus.Error.AccessDenied (Connection &quot;:1.310&quot; is not allowed to own the service &quot;org.x.config.display2&quot; due to security policies in the configuration file)

'''Solution'''
The display you plan on using for Xephyr (typically :2) just needs to be added to the dbus security file.

You need to edit the following file:
 /etc/dbus-1/system.d/xorg-server.conf

Add the following three lines in the &quot;&lt;code&gt;&lt;policy context=&quot;default&quot;&gt;&lt;/code&gt; group
&lt;source lang=&quot;xml&quot;&gt;
&lt;allow own=&quot;org.x.config.display2&quot;/&gt;
&lt;allow send_destination=&quot;org.x.config.display2&quot;/&gt;
&lt;allow send_interface=&quot;org.x.config.display2&quot;/&gt;
&lt;/source&gt;

Basically you should have one for each display you plan on using, by default display 0 and display 1 are in the file. If you are planning on using a different display number for Xephyr than :2 make sure you use its number rather than &quot;display2&quot; when you add these lines.

=== How can I avoid &quot;qemu&quot; error messages of &quot;af-sb-init start&quot; in ARMEL target? ===

'''Error messages'''

Usually the attempt ends up with something like this:

 The error was 'BadWindow (invalid Window parameter)'.
 (Details: serial 207 error_code 3 request_code 2 minor_code 0)
 (Note to programmers: normally, X errors are reported asynchronously;
 that is, you will receive the error a while after causing it.
 To debug your program, run it with the --sync command line
 option to change this behavior. You can then get a meaningful
 backtrace from your debugger if you break on the gdk_x_error() function.)
 aborting...
 qemu: uncaught target signal 6 (Aborted) - core dumped

'''Solution'''
* all SDK's

The ARMEL target should not be used for application testing and just for cross compiling. The target is not meant to support this. Please use for any other use than cross-compiling the X86 target.

=== Why do I get &quot;command not found&quot; even though I follow the instructions in the documentation? ===

'''Error messages'''

As an example:

 X86: ~] &gt; af-sb-init.sh start
 bash: af-sb-init.sh: command not found


'''Solution'''
After running the installation script you have to install some closed-source packages to have a full installation of the SDK. Most likely these are not installed. Have a look [http://maemo.org/development/sdks/maemo_5_beta_2_sdk_installation/#32bitinstall here] - the last point under installation instructions - how to do that.

=== How to resolve &quot;Scratchbox devkit debian-etch not found&quot; issue? ===

Sometimes while running the install-script of the SDK this error occurs and produces a message like the following:

'''Error messages'''
 
 E: Scratchbox devkit debian-etch not found.
 E: Please complete scratchbox installation first.
 E: Specify an alternative installation path using '-s PATH' option.

'''Solution'''
The problem can be resolved like this (with thanks to Frank Banul in the developer list):

&lt;ol&gt;
&lt;li&gt;
add &lt;pre&gt;deb http://scratchbox.org/debian/ maemo5-sdk main&lt;/pre&gt; to &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; 
&lt;/li&gt;
&lt;li&gt;
run:
&lt;pre&gt;
sudo apt-get remove scratchbox-devkit-debian
sudo apt-get install scratchbox-devkit-debian
sudo apt-get remove scratchbox-devkit-perl
sudo apt-get install scratchbox-devkit-perl
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

=== Why can I reach an IP-address but no domain inside Scratchbox? ===

In some cases this happens because of the following reasons:
# Network configuration changed on the host-system, after Scratchbox was installed
# Scratchbox not configured correctly: 
#* Manual installation of SDK was not complete
#* The target was reset

'''Error messages'''
Depends on the program, which is used. But here a small test client in python:
&lt;source lang=&quot;python&quot;&gt;
import urllib2
print urllib2.urlopen(&quot;http://google.com&quot;).read()
&lt;/source&gt;

Then the following error message will be returned:

 urllib2.URLError: &lt;urlopen error (-3, 'Temporary failure in name resolution')&gt;

'''Solution'''
* Fremantle X86(!), Diablo X86(!)
In any cases it is most likely that the resolv.conf of the Scratchbox is not set up correctly. The following solutions for this issue can solve the problem:

# Network configuration change: Copy the resolv.conf from the host system into the scratchbox/etc folder:

 sudo cp /etc/resolv.conf /scratchbox/etc/resolv.conf

If the problem is still the same try 2.:

# Scratchbox configuration: This might be the case, if the target was reset or manual installed, without using the script. In this case run:

 SBOX&gt; sb-conf in -edFL

This sets the &lt;code&gt;/scratchbox/etc/resolv.conf&lt;/code&gt; as default and ignores the one of the scratchbox. Info about the command you'll find [http://maemo.org/development/sdks/maemo_5_beta_2_sdk_installation/#manualinstall here].

These steps should solve the problem. If it still does not work, you could try to replace the entries of the resolv.conf '''within''' the scratchbox with the same entries of the resolv.conf of the '''host''' system by hand.

=== Script &quot;af-sb-init.sh start&quot; aborting ===

Sometimes it happens, that the script aborts just after starting. A problem might be, that old processes are still active, and cause the error. Indicator that this might be the reason are the following lines after the startup:

'''Indicator'''

 _X86: ~] &gt; af-sb-init.sh start
 ...
 DBUS system bus is already running, doing nothing
 D-BUS session bus daemon is already running, doing nothing
 Starting Maemo Launcher: maemo-launcher start failed.
 Sapwood image server is already running, doing nothing
 ...
 aborting...

This shows, that old processes are still running, which might cause problems in starting up the framework again. 

''' Solution '''

To solve this stop the framework, kill all old processes and start it again. This can be done by:

# stop the framework:&lt;pre&gt;af-sb-init.sh stop&lt;/pre&gt;
# kill old processes:&lt;pre&gt;sb-conf killall&lt;/pre&gt;
# restart:&lt;pre&gt;af-sb-init.sh start&lt;/pre&gt;

=== How to install the SDK+ on a Linux AMD64 platform? ===

The Maemo SDK+ package includes scratchbox 2 and Qt, but it will only install on 32-bit platforms. If you're running Debian with a 64-bit kernel, Maemo SDK+ can be installed into a chrooted 32-bit environment that sits on top of your 64-bit platform. 

'''Solution'''

[[Maemo_SDK%2B_installation_on_Debian_(AMD64)|This guide]] takes you through all the steps to the point of compilation and running the test.

=== QEMU error running cmake in ARMEL target in Fremantle? ===

'''Indicator'''
 qemu: uncaught target signal 11 (Segmentation fault) - core dumped
 make: *** [cmake_check_build_system] Error 126

''' Solution '''
Check the version of cmake. Using version 2.6.3-2maemo4+0m5 should solve the problem.

=== Git error when trying to clone/pull from https repositories ===

'''Indicator'''
  error: error setting certificate verify locations:
    CAfile: /usr/share/curl/curl-ca-bundle.crt
    CApath: none
  
  warning: remote HEAD refers to nonexistent ref, unable to checkout.

'''Solution'''

Place the CA bundle where curl can find it:
  ~] &gt; mkdir /usr/share/curl
  ~] &gt; ln -s /scratchbox/devkits/git/share/curl/curl-ca-bundle.crt /usr/share/curl/

See also [https://bugs.maemo.org/show_bug.cgi?id=4953 bug 4953].

== Porting to Fremantle ==

{{main|Documentation/Maemo 5 Developer Guide/Porting Software}}

This section is intended to consolidate the common errors that occur while trying to port [[Open development/Maemo roadmap/Diablo|Diablo]] applications to [[Open development/Maemo roadmap/Fremantle|Fremantle]]. Feel free to improve this page and/or add additional information.

===maemo-select-menu-location: command not found===
 
'''Typical error message'''
 scratchbox/tools/bin/sh: line 1: /usr/sbin/dpkg-preconfigure: No such file or directory
 Setting up leafpad (0.8.16le-0maemo2) ...
 gtk-update-icon-cache: Cache file created successfully.
 /var/lib/dpkg/info/leafpad.postinst: line 7: maemo-select-menu-location: command not found
 dpkg: error processing leafpad (--configure): subprocess post-installation script returned error exit  status 127

'''Reason'''
:maemo-select-menu-location is obsolete. In Fremantle, there is no submenu like, &quot;Utility&quot;, &quot;Extra&quot;, &quot;Settings&quot; etc. All installed 3rd party software will be visible under &quot;Applications&quot; by default.  

'''Action'''
:Remove the instance from the post installation script. It is not needed.

===Missing dependency: maemo-installer-utils===

'''Reason'''
:The package &lt;code&gt;hildon-application-manager&lt;/code&gt; no longer provides &lt;code&gt;maemo-installer-utils&lt;/code&gt;. The commands &lt;code&gt;maemo-confirm-text&lt;/code&gt;, &lt;code&gt;maemo-application-running&lt;/code&gt;, &lt;code&gt;maemo-list-user-packages&lt;/code&gt; are  still available. 

'''Action'''
:Replace the dependency with &lt;code&gt;hildon-application-manager&lt;/code&gt;. 

===Missing dependency: libhildonhelp0===

'''Reason'''
:libhildonhelp does not exist in Fremantle.

'''Action'''
:Remove the dependency and calls to the help APIs.

===Limitation of Home Area applets===

Unlike Diablo, in Fremantle these applets do not support text input, pannable areas, resizing nor scrolling.

'''Reason'''
:Framework limitations.

'''Action'''
:Replace text input fields with dialogs. Use buttons for scrolling. Add resizing options in the settings dialog or adapt the UI of the applet regarding to that. For further information on how to develop those applets, please check the [[Documentation/Maemo_5_Developer_Guide/Application_Development/Writing_Desktop_Widgets|documentation]].

===What icon size should be used?===

With Fremantle the size specifications of the icons are different from Diablo:

'''Application Manager'''
* Icon size: &lt;code&gt;HILDON_ICON_SIZE_FINGER&lt;/code&gt;
* In Gimp or Photoshop: 48x48 pixels

'''Task Launcher'''
* Icon size: &lt;code&gt;HILDON_ICON_SIZE_THUMB&lt;/code&gt;
* In Gimp or Photoshop: 64x64 pixels

Using icons for the task launcher, please remember to run the following in your postinst file:

 gtk-update-icon-cache -f /usr/share/icons/hicolor

===Text and icons in dialogs===

'''Problem'''
:The text in dialog boxes is not formatted correctly (truncated on the right size), when a icon is in place.

'''Action'''
:In general icons should not be used in dialogs in Fremantle. Remove the icon and the text will be formatted correctly.

===Initialisation scripts===

'''Problem'''
:Initialisation scripts don't work any more.

'''Reason'''
:Fremantle has switched to using '''upstart''' for system initialisation.

'''Action'''
:Create '''upstart''' job definitions instead of init scripts.  Information on writing these can be found on http://upstart.ubuntu.com/getting-started.html. However, be aware that the directory used on Maemo 5 is &lt;code&gt;/etc/event.d&lt;/code&gt;.
:The job script should be placed in &lt;code&gt;/etc/event.d/''package''&lt;/code&gt;.  And the package postinst, prerm and postrm should use the ''start --quiet'' and ''stop --quiet'' commands to start and stop the service.  Unfortunately there is no debhelper tool to assist with this.


=== Enabling sudo for user installed scripts ===

'''Problem'''
:Users tend to want to edit /etc/sudoers to allow a command provided by a script they created to run with raised privileges. This is highly likely to result in a bricked device forcing you to re-flash to make it work again from scratch.

'''Reason'''
:The &lt;code&gt;/etc/sudoers&lt;/code&gt; file seems deceivingly straight forward to edit. It's not:
   &lt;code&gt;
    17:27 &lt; MohammadAG51&gt; listen to that advice&lt;BR&gt;
    17:27 &lt; MohammadAG51&gt; don't be a smartass like I did once
   &lt;/code&gt;

'''Action'''
:Add your specific sudo configuration to &quot;&lt;code&gt;/etc/sudoers.d/*&lt;/code&gt;&quot; as a new file (courtuesy to the reader, you are advised to read [http://www.sudo.ws/sudo/sudoers.man.html this] to understand how to create sudoers.d/ snippets appropriate for your application or script.
:Run update-sudoers and profit.

== Qt ==

=== Where to find a Maemo Qt API Reference? ===
There is a [[Qt4 Hildon|Qt page on the wiki]] with some useful information, and [http://qt.nokia.com/doc/qt-maemo-4.6/index.html official Qt for Maemo documentation].

=== How to create &quot;[[Documentation/Maemo_5_Developer_Guide/Human_Interface_Guidelines/Windows#Window_Views|HildonStackableWindows]]&quot;?===

This is done by setting a special attribute on the window, as shown in the [http://doc.qt.nokia.com/qt-maemo-4.6/maemo5-stackedwindows.html Qt Maemo 5 stacked window example].

== Autobuilder ==

=== Localization isn't working ===

You are probably using the following line in &lt;code&gt;configure.ac&lt;/code&gt;:

 localedir=`$PKG_CONFIG osso-af-settings --variable=localedir`

This means that you need to add &lt;code&gt;osso-af-settings&lt;/code&gt; to your Build-Depends.

=== Package gets rejected: REJECTED: The same or newer version is already in extras-devel ===

You can't upload the same version to the repository twice. If you have changed anything in your package, you should increase your version number or package revision.

=== Build failed: No such file or directory in log file ===

You probably forgot to specify the correct Build-Depends in &lt;code&gt;debian/control&lt;/code&gt;. The autobuilder starts every build with a clean SDK image. If you need any application during building which is not available in the default SDK image, you need to specify it specifically.

You may verify that your Build-Depends field in debian/control is complete by running

 dpkg-depcheck -m dpkg-buildpackage -rfakeroot -b

in the source tree.  (You'll need to &quot;&lt;code&gt;fakeroot apt-get install devscripts&lt;/code&gt;&quot; for this to work).

=== Build failed, works in my own scratchbox ===

See the answer above.

== Extras ==

=== How can I package software for Maemo? ===

{{main|Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing}}

As Maemo is based on the Debian operating system, creating packages for Maemo borrows a lot of tools and techniques from Debian, however there are [[Packaging#Maemo-specific packaging information|some Maemo-specific differences]].

A [[Packaging|simple guide to get started]] is available.

=== How do I request upload rights for Extras ===

You can [https://garage.maemo.org/extras-assistant/index.php?target=invitation_request request an invitation] via the Extras Assistant.

=== How do I enable extras, extras-testing, and extras-devel in Scratchbox ===

Add the following lines to &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; from within scratchbox:
 deb http://repository.maemo.org/extras/ fremantle free non-free
 deb-src http://repository.maemo.org/extras/ fremantle free
 
 deb http://repository.maemo.org/extras-testing/ fremantle free non-free
 deb-src http://repository.maemo.org/extras-testing/ fremantle free
 
 deb http://repository.maemo.org/extras-devel/ fremantle free non-free
 deb-src http://repository.maemo.org/extras-devel/ fremantle free


Then run the following commands from within scratchbox:
 cd /tmp
 wget http://repository.maemo.org/extras-devel/dists/fremantle/fremantle-extras-pubkey.asc
 apt-key add fremantle-extras-pubkey.asc
 apt-get update
 apt-get update

Yes, running apt-get update twice is sometimes needed.

If you get errors where apt cannot find the keyring, then the above commands should fix that.

[[Category:Development]]
[[Category:Scratchbox]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Developer Guide table of contents</title>
    <id>3195</id>
    <revision>
      <id>24641</id>
      <timestamp>2009-12-15T10:32:00Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Developer Guide table of contents]] moved to [[Maemo 6 Developer Guide table of contents]]</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo 6 Developer Guide table of contents]]</text>
    </revision>
  </page>
  <page>
    <title>Developer frequently asked questions</title>
    <id>3001</id>
    <revision>
      <id>22458</id>
      <timestamp>2009-11-11T17:56:17Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Developer FAQ]]</comment>
      <text xml:space="preserve">#REDIRECT [[Developer FAQ]]</text>
    </revision>
  </page>
  <page>
    <title>Developers FAQ</title>
    <id>3000</id>
    <revision>
      <id>22457</id>
      <timestamp>2009-11-11T17:55:30Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Developers FAQ]] moved to [[Developer FAQ]]</comment>
      <text xml:space="preserve">#REDIRECT [[Developer FAQ]]</text>
    </revision>
  </page>
  <page>
    <title>Device Management using Bcfg2</title>
    <id>3790</id>
    <revision>
      <id>31631</id>
      <timestamp>2010-03-26T15:45:49Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Device management using Bcfg2]]</comment>
      <text xml:space="preserve">#REDIRECT [[Device management using Bcfg2]]</text>
    </revision>
  </page>
  <page>
    <title>Device Management with Bcfg2</title>
    <id>3756</id>
    <revision>
      <id>31628</id>
      <timestamp>2010-03-26T15:44:18Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Device management using Bcfg2]]</comment>
      <text xml:space="preserve">#REDIRECT [[Device management using Bcfg2]]</text>
    </revision>
  </page>
  <page>
    <title>Device management using Bcfg2</title>
    <id>3753</id>
    <revision>
      <id>41910</id>
      <timestamp>2011-02-20T07:49:43Z</timestamp>
      <contributor>
        <ip>66.68.60.107</ip>
      </contributor>
      <comment>/* Getting Bcfg2 up and running */</comment>
      <text xml:space="preserve">This article contains information about using [http://trac.mcs.anl.gov/projects/bcfg2 Bcfg2], an open source configuration management system in management of Maemo based devices.

&lt;font color=&quot;red&quot;&gt;Note!&lt;/font&gt; At this phase, although the title says otherwise, instructions given in this article do NOT constitute a device management solution. At the moment these instructions only guide to '''experiment''' device management using Bcfg2.

== Scope and terminology ==

Scope of the article is using Bcfg2 to manage Maemo devices of employees at a fairly large company, where the number of devices is counted on hundreds or thousands. In a private use, or in small companies things covered here hardly make any sense.

In the remainder if this document, following terminology is used

{| class=&quot;wikitable&quot; border=&quot;1&quot;
|-
! Term
! Description
|-
| Device
| Maemo based handset, such as [[Nokia N900]]
|-
| Device management
| Generally used term for configuration management which takes place on Devices
|-
| Enterprise
| A large company or other organization that wants employees to ba able to acces company IT systems using Maemo based devices
|-
| Desktop computer
| A full-size computer (traditional desktop or laptop) used to access corporate IT systems
|-
| Enterprise configuration
| A set of applications and configuration values which the Enterprise wants to deploy into the Device as a prerequisite for accessing corporate IT systems. Usually includes hardening the device security. 
|-
| Provisioning
| The process which equips the Device with Enterprise configuration
|}

Instructions given in this article are tested on [[Open development/Maemo roadmap/Fremantle|Fremantle]]. They may work on other releases as well, but probably not.

=== Recommended reading ===

Basic use and concepts of Bcfg2 are not in the scope of this article. To get familiar with Bcfg2, following reading is recommended:

*[http://www.linuxlinks.com/article/20100222155850632/ConfigurationManagement.html 7 of the Best Free Linux Configuration Management Tools]
* [http://docs.bcfg2.org Bcfg2 documentation]

== Device management? Why bother? ==

Provisioning Devices without management is like standing on the waterfront, throwing rocks in to a lake trying to get them land into a bucket at a bottom. The throwing movement can be very controlled and calculated, but once the rock is released from  hand, all control and traceability is lost. As a result, we do not really know if it ever hit the bucket. And if it did not, there is no way to get it there. Not to mention ability to move it into another bucket if so desired. Over time, we also inevitably lose track of how many rocks have we have thrown.

Hence, Provisioning-only approach leads at least following shortcomings
* No statistics about Devices Provisioned
* No information about success of the Provisioning
* No method to fix failed Provisioning
* No method for managing changes at Enterprise configuration (other than publish a new release hoping users will pick it up)

Using the rock analogy, in Device management approach we never completely release the rock. We tie a thin nylon line into each rock before throwing it. Now we can follow the line and track whether the rock did hit the bucket or not. We can use the line to lift misses to the bucket. We can also use the line to move them to another bucket if so desired. We can also easily have statistics about the rocks thrown; just count the lines.

It should be also noted that there are legislations such as Sarbanes-Oxley which mandate keeping track of computers able to access and store corporate data.

== Why Bcfg2? ==

Openness is at heart of the Maemo philosophy. Thus, using an Open Source configuration management system seems a logical choice to try out.

Bcfg2 was chosen as the first candidate to try-out because 

* Architecture is server-centric. Processing is performed at the server end as much as possible. This makes the client lightweight. It makes it also simpler and less frequently changing.
* Device management is a special use case for a software like this. They are all geared more for server and desktop management. Thus, fair amount of customization is anticipated. Bcfg2 has very flexible plugin architecture where most of it's core functionality implemented as plugins.  This makes it very customization-friendly, nearly all components are replaceable
* Anticipation of customization  puts lot of weight to implementation language. Bcfg2 is written in Python, which suits the author best.

That said, there is no reason why other configuration management systems such as CFEngine or Puppet wouldn't work as well. (Actually, Puppet was tried out, got successfully running at the Device. Only it did not communicate with the server. This is possibly caused by the SSL problem discussed later. That's was the point where lack of author's Ruby skills kicked in :)



== Getting Bcfg2 up and running ==

&lt;font color=&quot;red&quot;&gt;A word of warning&lt;/font&gt;: Configuration management is complicated task. Learning Bcfg2 and the concepts behind it does take some time and effort. Do NOT try to manage Maemo clients as your first Bcfg2 rehearsal. Instead, familiarize yourself with Bcfg2 first using &quot;ordinary&quot; computers  as clients.

=== Problems with Bcfg2 in Maemo ===

At the moment there are some problems we need to work around in order to  install Bcfg2 client into Device. 

# Lack of proper SSL support
#* Bcfg2 prior to 1.0 used Python implementation of SSL called tlslite. At 1.0 tlslite war replaced with Python 2.6 built-in SSL module
#* Bcfg2 has internal fallback to use M2crypto module if SSL module fails
#* Maemo (Fremantle), however, has Python 2.5, which has no SSL module and no M2crypto module either
#** There is actually already [https://bugs.maemo.org/show_bug.cgi?id=5102 bug report] filed about the problem. However, the original problem (importing SSL module) was never solved, the problem the reporter faces seems to be worked around other way
#* Possible workarounds:
#** Compile [http://pypi.python.org/pypi/ssl/SSL SSL 1.15] module into Python 2.5
#** Compile M2crypto module into Python 2.5
#*** Both fail into lack of complete set of OpenSSL development headers
#** Re-include tlslib into Bcfg2
#*** Possible, however there will be no server identity validation
#** Use Bcfg2 prior to 1.0 in Device
#*** Possible, however there will be no server identity validation
#* Contributions welcome
# Bcfg2 is not packaged for Maemo 
#* Must be installed from source
# There is no good way for bootstrapping right now
#* Installation must be performed from Device command line

=== Server installation ===

Download and install version 1.0.1 following instructions found at [http://trac.mcs.anl.gov/projects/bcfg2/wiki/Download Bcfg2 web site]

Note that the server should reside in a network the Device is able to access.

=== Client installation ===

==== Option 1: Install old version ====

Download [http://ftp.mcs.anl.gov/pub/bcfg/archive/bcfg2-0.9.6.tar.gz bcfg2-0.9.6] in to the Device. Open terminal window and install Bcfg2 by entering following commands

 apt-get install python
 tar zxvf bcfg2-0.9.6.tar.gz
 cd bcfg2-0.9.6
 python setup.py install --install-layout deb --record /root/bcfg2files

==== Option 2: Install current version ====

This option is somewhat more complicated since we need to re-include tlslib into Bcfg2

Download [http://ftp.mcs.anl.gov/pub/bcfg/archive/bcfg2-0.9.6.tar.gz bcfg2-0.9.6] and [http://ftp.mcs.anl.gov/pub/bcfg/archive/bcfg2-1.0.1.tar.gz bcfg2-1.0.1] both. Extract them:

 tar zxvf bcfg2-0.9.6.tar.gz 
 tar zxvf bcfg2-1.0.1.tar.gz

Get tlslib and from older version

 cp -r bcfg2-0.9.6/src/lib/tlslite bcfg2-1.0.1/src/lib

Download [http://trac.mcs.anl.gov/projects/bcfg2/browser/trunk/bcfg2/src/lib/Proxy.py?rev=5168&amp;format=txt this version] of Proxy.py from Bcfg2 site and save it as &lt;code&gt;bcfg2-1.0.1/src/lib/Proxy.py&lt;/code&gt;

Edit &lt;code&gt;bcfg2-1.0.1/src/lib/Proxy.py&lt;/code&gt;. Add dummy placeholders &lt;code&gt;ca&lt;/code&gt; and &lt;code&gt;allowedServerCNs&lt;/code&gt; into ComponentProxy definition so it looks like below:

 def ComponentProxy (url, user=None, password=None, fingerprint=None,
                     key=None, ca=None, allowedServerCNs=None, cert=None):

Edit &lt;code&gt;bcfg2-1.0.1/setup.py&lt;/code&gt;
Add the packages &lt;code&gt;Bcfg2.tlslite&lt;/code&gt;, &lt;code&gt;Bcfg2.tlslite.integration&lt;/code&gt;, and &lt;code&gt;Bcfg2.tlslite.utils&lt;/code&gt; back into the packages list in setup.py, as seen in [https://trac.mcs.anl.gov/projects/bcfg2/browser/trunk/bcfg2/setup.py?rev=5182 here]

Repackage the source directory

 tar zcvf bcfg2-1.0.1-mod.tar.gz bcfg2-1.0.1

Transfer &lt;code&gt;bcfg2-1.0.1-mod.tar.gz&lt;/code&gt; to the Device. Open (at Device) terminal window and install Bcfg2 by entering following commands

 apt-get install python
 tar zxvf bcfg2-1.0.1-mod.tar.gz
 cd bcfg2-1.0.1
 python setup.py install --install-layout deb --record /root/bcfg2files

=== Installation notes ===

Reinstalling Bcfg2: Remove &lt;code&gt;bcfg2-1.0.1/build&lt;/code&gt; directory before re-run of &lt;code&gt;setup.py&lt;/code&gt;

Removing Bcfg2: remove files listed at &lt;code&gt;/root/bcfg2files&lt;/code&gt;

=== Simple sample configuration ===

In the following we create a simple configuration at the Bcfg2 server, just to make you get on board quicker (empty configurations are not very illustrative). In the sample configuration we do three things:
* Manage the content of a simple file &lt;code&gt;/etc/simple&lt;/code&gt;
* Manage the content of a file &lt;code&gt;/etc/bcfg2.info&lt;/code&gt; using template
* Run a simple action, a shell command &lt;code&gt;ls / &gt; /tmp/foobar&lt;/code&gt;

Throughout this article we assume the configuration repository is at default location &lt;code&gt;/var/lib/bcfg2&lt;/code&gt;. 

Edit file &lt;code&gt;/var/lib/bcfg2/Metadata/groups.xml&lt;/code&gt; to contain following:

 &lt;Groups&gt;
     &lt;Group name='armel'/&gt;
     &lt;Group name='linux'/&gt;
     &lt;Group name='deb'&gt;
         &lt;Group name='linux'/&gt;
     &lt;/Group&gt;
     &lt;Group name='maemo'&gt;
         &lt;Group name='deb'/&gt;
         &lt;Bundle name='sample'/&gt;
     &lt;/Group&gt;
     &lt;Group name='fremantle'&gt;
         &lt;Group name='maemo'/&gt;
     &lt;/Group&gt;
 &lt;/Groups&gt;

Edit file &lt;code&gt;/var/lib/bcfg2/Bundler/sample.xml&lt;/code&gt; to contain following:

 &lt;Bundle name='sample'&gt;
     &lt;ConfigFile name='/etc/simple'/&gt;
     &lt;ConfigFile name='/etc/bcfg2.info'/&gt;
     &lt;BoundAction name=&quot;simple&quot; timing='post' when='always' status='check' command=&quot;ls / &gt; /tmp/foobar&quot;/&gt;
 &lt;/Bundle&gt;

Edit file &lt;code&gt;/var/lib/bcfg2/Cfg/etc/simple/simple&lt;/code&gt; to contain following (Create directories as needed):

 This is a simple file

Edit file &lt;code&gt;/var/lib/bcfg2/Cfg/etc/simple/info.xml&lt;/code&gt; to contain following:

 &lt;FileInfo&gt;
     &lt;Info owner='root' group='root' perms='0644' encoding='ascii'/&gt;
 &lt;/FileInfo&gt;


Edit file &lt;code&gt;/var/lib/bcfg2/TCheetah/etc/bcfg2.info/template&lt;/code&gt; to contain following (Create directories as needed):

 Hostname: $self.metadata.hostname
 Uuid: $self.metadata.uuid
 Password: $self.metadata.password
 Profile: $self.metadata.profile
 Groups: #echo ','.join($self.metadata.groups)#
 Bundles: #echo ','.join($self.metadata.bundles)#

Edit file &lt;code&gt;/var/lib/bcfg2/TCheetah/etc/bcfg2.info/info.xml&lt;/code&gt; to contain following:

 &lt;FileInfo&gt;
     &lt;Info owner='root' group='root' perms='0644' encoding='ascii'/&gt;
 &lt;/FileInfo&gt;



==== Some explanation: ==== 


Bcfg2 builds the configuration using layered approach:

* Metadata (roughly: &quot;which kind of configuration should be where&quot;)
* Abstract (roughly: what should be configured)
* Literal (roughly: how exactly that &quot;what&quot; should be achieved)

In this example, we have two instances of the same abstract configuration item (ConfigFile). They are however handled by two different literal configuration generators, Cfg, which handles simple files and TCheetah which handles more complicated files using built-in Cheetah templating engine.

One thing to like in Bcfg2 is that it does not mandate things too much. Third item is an example of that. Bcfg2 allows short-circuiting the Literal layer processing altogether by adding &quot;Bound&quot; in front of the keyword. In a simple cases where what we want exactly is already known already at abstract level this can simplify things.

=== Hooking the Device and Bcfg2 server together ===

At server, add following line into &lt;code&gt;/var/lib/bcfg2/Metadata/clients.xml&lt;/code&gt;

 &lt;Client uuid=&quot;foo&quot; name=&quot;bar&quot; profile=&quot;maemo&quot; password=&quot;xyzzy&quot; pingable=&quot;N&quot; location=&quot;floating&quot; auth=&quot;cert+password&quot;/&gt;

No need to restart the Bcfg2 server, it picks the changes on the fly. Next, at the Device, edit the file  &lt;code&gt;/etc/bcfg2.conf&lt;/code&gt; to look like following:

 [communication]
 protocol = xmlrpc/ssl
 user = foo
 password = xyzzy
 
 [components]
 bcfg2 = https://bcfg2server.example.com:6789

Now you should be able to invoke Bcfg2 client and make first connection to the server using command

 bcfg2 -I

You should now be prompted a confirmation for three configuration item defined in the sample configuration, due to use of &lt;code&gt;-I&lt;/code&gt; option.

&lt;hr/&gt;

== Appendix: Hints on Bcfg2 usage ==

=== Autogroup probe ===

Bcfg2 is able to automatically determine group memberships using probes. Aa sample probe code which recognizes Maemo devices among many other computers is shown below:

&lt;source lang=&quot;bash&quot;&gt;
#! /bin/sh

opi=/usr/bin/osso-product-info
swv=/usr/bin/sw_vers

# Are we Linux?
if uname 2&gt;/dev/null | grep -q &quot;Linux&quot;
then
    # LSB saves the day
    if lsb_release -a &gt; /dev/null 2&gt;&amp;1
    then
        lsb_release -ci 2&gt;/dev/null |\
        awk -F: '{gsub(/^[ \t]+/, &quot;&quot;, $2);print &quot;group:&quot; tolower($2)}'
    # It did not? We might be maemo
    elif [ -x $opi ]
    then
        if $opi 2&gt;/dev/null | grep &quot;OSSO_PRODUCT_RELEASE_NAME&quot; | grep -q 'Maemo 5'
        then
            echo &quot;group:fremantle&quot;
        elif $opi 2&gt;/dev/null | grep &quot;OSSO_PRODUCT_RELEASE_NAME&quot; | grep -q 'Maemo 6'
        then
            echo &quot;group:harmattan&quot;
        fi
        echo &quot;group:maemo&quot;
    # We were not? Get desperate
    elif uname -v 2&gt;/dev/null | grep -q &quot;Ubuntu&quot;
    then 
        echo &quot;group:ubuntu&quot;
    elif [ -f /etc/fedora-release ]
    then
        echo &quot;group:fedora&quot;
    elif [ -f /etc/redhat-release ]
    then
        echo &quot;group:redhat&quot;
    else
        echo &quot;group:linux&quot;
    fi
fi

# Are we Mac?
if uname 2&gt;/dev/null | grep -q &quot;Darwin&quot;
then
    if [ -x $swv ]
    then
        if   $swv 2&gt;/dev/null | grep &quot;ProductVersion:&quot; | grep -q '10.6'
        then
            echo &quot;group:snowleopard&quot;
        elif $swv 2&gt;/dev/null | grep &quot;ProductVersion:&quot; | grep -q '10.5'
        then
            echo &quot;group:leopard&quot;
        elif $swv 2&gt;/dev/null | grep &quot;ProductVersion:&quot; | grep -q '10.4'
        then
            echo &quot;group:tiger&quot;
        else
            echo &quot;group:macosx&quot;
        fi
    else
        echo &quot;group:freebsd&quot;
    fi
fi

# What arch?
if uname -m | grep -E '^arm' &gt; /dev/null 2&gt;&amp;1
then
    echo &quot;group:armel&quot;
elif uname -m | grep -E '^i.?86'&gt; /dev/null 2&gt;&amp;1
then
    echo &quot;group:i386&quot;
elif uname -m | grep -E '^x86_64'&gt; /dev/null 2&gt;&amp;1
then
    echo &quot;group:amd64&quot;
else
    echo &quot;group:`uname -m`&quot; 
fi
&lt;/source&gt;

Just put the code into a file at Probes directory, for example, &lt;code&gt;/var/lib/bcfg2/Probes/autogroup&lt;/code&gt;

At Bcfg2 web site is another [http://trac.mcs.anl.gov/projects/bcfg2/wiki/Plugins/Probes/examples/group example] of autogroup probe code. This code does not recognize Maemo but might do better work with some other platforms.

&lt;hr/&gt;

== TODO ==

This is the &quot;dont look here&quot; part, stuff under construction


=== APT package driver ===

==== Problems ====

# Maemo does not have debsums utility
#* Causes APT package driver not to load
# Maemo has no Python bindings to APT cache
#* Causes APT package driver not to load/work
# APT package driver is too &quot;control freak&quot; for the purpose
#* Wants to check package versions and even verify all the files
#* Suitable approach for servers but brings tiny device at it's knees
#* We probably only want to control that package X is installed and let package manager take care of the rest (updates &amp; such)
# No any form of proxy handling (odds being inside corporate firewall are good)

==== Opportunities ====

Hildon application manager is not able to go through proxies, but APT is

==== Proposed solution ====

We need to write a &quot;APTlite&quot; client driver. Probably modifying an simple existing driver like &lt;code&gt;FreeBSDPackage.py&lt;/code&gt; would do. Some notes about the task:

* &lt;code&gt;RefreshPackages&lt;/code&gt; method needs to be modified to include only packages received from server and ignore the rest. Looks like following piece of code generates the list we need
 desired = [entry.get('name') for struct in self.config for entry in struct if entry.tag == 'Package']

* Then, we could run something like this for each pkg in desired list to fill up the &lt;code&gt;self.installed&lt;/code&gt; dictionary:

 /usr/bin/dpkg-query -W --showformat='${Version}\t${Status}\n' &lt;pkg&gt;

* &lt;code&gt;VerifyPackage&lt;/code&gt; method needs probably to be made a bit more liberal, like returning true if &lt;code&gt;entry.attrib['version']&lt;/code&gt; equals &lt;code&gt;'auto'&lt;/code&gt;  or &lt;code&gt;'any'&lt;/code&gt;

* &lt;code&gt;pkgtool&lt;/code&gt; could probably be copied from &lt;code&gt;APT.py&lt;/code&gt;

* Proxies could be copied from shell environment by adding them into &lt;code&gt;pkgtool&lt;/code&gt;. Something like

 proxies = &quot;&quot;
 for p in ('http','https','ftp'):
     if os.environ.has_key('%s_proxy' % p):
         proxies += '%s=%s ' % ('%s_proxy' % p, os.environ.get('%s_proxy' % p))
 pkgtool = proxies + ' ' + pkgtool

And how to get proxies into shell variables? One option is to use Bcfg2 to manage some file which is sourced by shell

[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Device management using bcfg2</title>
    <id>3791</id>
    <revision>
      <id>31630</id>
      <timestamp>2010-03-26T15:44:48Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Device management using bcfg2]] moved to [[Device management using Bcfg2]]: Capitalize project name correctly</comment>
      <text xml:space="preserve">#REDIRECT [[Device management using Bcfg2]]</text>
    </revision>
  </page>
  <page>
    <title>Dexter</title>
    <id>3507</id>
    <revision>
      <id>40622</id>
      <timestamp>2010-12-08T14:16:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">Dexter is a teletext/text-tv reader application, which you can quickly read web-based implementations. It is designed so that you can manually add the sites that you want to follow. 

Dexter is currently in [[Extras-devel]]. It is highly under development and is not intended for the faint of heart! Please, test it at your own risk. That said, all testing and feedback is appreciated.

[http://talk.maemo.org/showthread.php?t=42207 For feedback and discussion about Dexter]

== Config file ==

In order to enable support for various implementations of teletext sites, the site specific information can be added to a config file. The config file is located at &lt;code&gt;$HOME/.config/Dexter/dexter.conf&lt;/code&gt; and it can be modified directly from xterm to add/edit/remove sites.

The config file has a subsection [sites], which lists all the available text-tv sites for Dexter. Each site has a unique id number in front of every line and each line has a site specific setting parameter. After sites, there is a size parameter, which needs to be the amount of sites in this section.

=== Example config file ===

This is an example config file with two working text-tv sites.

&lt;pre&gt;[sites]
1\siteName=Mtv3
1\imageUrl=http://www.mtv3tekstikanava.fi/new2008/images/[page]-[2:subpage].gif
1\predictionUrl=http://www.mtv3tekstikanava.fi/new2008/[page]-01.htm
1\subPredictionUrl=http://www.mtv3tekstikanava.fi/new2008/[page]-[2:subpage].htm
1\previousPrediction=&quot;&lt;a href=\&quot;(\\d+)-01.htm\&quot;&gt;&amp;lt;&amp;lt; Edellinen sivu&lt;/a&gt;&quot;
1\nextPrediction=&quot;&lt;a href=\&quot;(\\d+)-01.htm\&quot;&gt;Seuraava sivu &amp;gt;&amp;gt;&lt;/a&gt;&quot;
1\previousSubPrediction=&quot;&lt;a href=\&quot;\\d+-(\\d+).htm\&quot;&gt;&amp;lt;&amp;lt; alasivu&lt;/a&gt;&quot;
1\nextSubPrediction=&quot;&lt;a href=\&quot;\\d+-(\\d+).htm\&quot;&gt;alasivu &amp;gt;&amp;gt;&lt;/a&gt;&quot;
1\startPage=100
2\siteName=Yle
2\imageUrl=http://www.yle.fi/tekstitv/images/P[page]_[2:subpage].gif
2\predictionUrl=http://www.yle.fi/tekstitv/txt/P[page]_01.html
2\subPredictionUrl=http://www.yle.fi/tekstitv/txt/P[page]_[2:subpage].html
2\previousPrediction=&quot;&lt;A HREF=\&quot;http://www.yle.fi/tekstitv/txt/P(\\d+)_01.html\&quot;&gt;\\[Edellinen sivu\\]&lt;/A&gt;&quot;
2\nextPrediction=&quot;&lt;A HREF=\&quot;http://www.yle.fi/tekstitv/txt/P(\\d+)_01.html\&quot;&gt;\\[Seuraava sivu\\]&lt;/A&gt;&quot;
2\previousSubPrediction=&quot;&lt;A HREF=\&quot;http://www.yle.fi/tekstitv/txt/P(\\d+)_(\\d+).html\&quot;&gt;\\[Edellinen alasivu\\]&lt;/A&gt;&quot;
2\nextSubPrediction=&quot;&lt;A HREF=\&quot;http://www.yle.fi/tekstitv/txt/P(\\d+)_(\\d+).html\&quot;&gt;\\[Seuraava alasivu\\]&lt;/A&gt;&quot;
2\startPage=100
size=2&lt;/pre&gt;

=== Site specific parameters ===

* '''imageUrl''': Where the actual image of the page is located at.
* '''subImageUrl''': ('''Optional''') If the site has different url scheme for main pages and subpages, this can be used. Defaults to imageUrl if not set.
* '''predictionUrl''': A html page where the previous/next page number can be found and parsed
* '''subPredictionUrl''': Similar, but for parsing subpage prediction
* '''previousPrediction''': Regular expression to find the previous page number. Find this from the source code and replace page number with (\\d+).
* '''nextPrediction''': Similar, but for next page.
* '''previousSubPrediction''': Similar, but for previous subpage.
* '''nextSubPrediction''': Similar, but for next subpage.
* '''startPage''': This page is loaded at first when you select the site.

=== URL variables for config parameters ===

There are a few variables that should be used when defining URLs for the sites.
These are [page], [subpage] and [topicpage].

Dexter will replace these variables with the correct value on the fly.

* '''[page]''': The current page number
* '''[subpage]''': The current subpage number
* '''[x:subpage]''': The current subpage with x amount of padding. For example subpage 2 when x is 4 = 0002.
* '''[topicpage]''': The topic page for the current page. For example, for a page number 165, topic page would be 100. For 401, topic page would be 400.
 
Replace page numbers in the URL with these variables. This is needed for Dexter to work properly.

=== Prediction regular expressions ===

In order for Dexter to be able to &quot;predict&quot; the next/previous page, regular expressions are used. Dexter will match the regular expression and find the correct prediction. For example, if you are at page 145 and next page is 168, user presses next page, it will know to go to 168 instead of trying page number 146.

Regular expressions need to specify the string that has the information about the wanted prediction. When there are page numbers in the regular expression, make sure to use '''\\d+''' instead of the static number. When you have the number you want, replace the static number with '''(\\d+)'''. This will tell Dexter to save that as the predicted page number.

'''Important note''': Remember to escape all the needed characters, for example ? needs to be \\? in order for the regular expression to work.

== Working teletext/text-tv sites ==

Here is the list of teletext/text-tv sites found working with Dexter. When you find a new one, please add it to the list under the correct country. Also, the unique number at the beginning of every parameter should be replaced with &quot;x&quot;, so that they don't collide. When you copy an entry, make sure to change this value to be a unique value for your config.

Wiki-authors: When inserting prediction/subPrediction-lines that contain &amp;amp;lt; or &amp;amp;gt;, these HTML-entities will be converted to &lt; or &gt; respectively by the Wiki. This prevents easy copypasting by the user. You have to write &amp;amp;amp;lt; and &amp;amp;amp;gt; instead. (&amp;amp;amp; is the entity for &amp;amp;, so it's displayed correctly then.)

=== Finland ===

==== Yle ====

&lt;pre&gt;
x\siteName=Yle
x\imageUrl=http://www.yle.fi/tekstitv/images/P[page]_[2:subpage].gif
x\predictionUrl=http://www.yle.fi/tekstitv/txt/P[page]_01.html
x\subPredictionUrl=http://www.yle.fi/tekstitv/txt/P[page]_[2:subpage].html
x\previousPrediction=&quot;&lt;A HREF=\&quot;http://www.yle.fi/tekstitv/txt/P(\\d+)_01.html\&quot;&gt;\\[Edellinen sivu\\]&lt;/A&gt;&quot;
x\nextPrediction=&quot;&lt;A HREF=\&quot;http://www.yle.fi/tekstitv/txt/P(\\d+)_01.html\&quot;&gt;\\[Seuraava sivu\\]&lt;/A&gt;&quot;
x\previousSubPrediction=&quot;&lt;A HREF=\&quot;http://www.yle.fi/tekstitv/txt/P\\d+_(\\d+).html\&quot;&gt;\\[Edellinen alasivu\\]&lt;/A&gt;&quot;
x\nextSubPrediction=&quot;&lt;A HREF=\&quot;http://www.yle.fi/tekstitv/txt/P\\d+_(\\d+).html\&quot;&gt;\\[Seuraava alasivu\\]&lt;/A&gt;&quot;
x\startPage=100
&lt;/pre&gt;

==== Mtv3 ====

&lt;pre&gt;
x\siteName=Mtv3
x\imageUrl=http://www.mtv3tekstikanava.fi/new2008/images/[page]-[2:subpage].gif
x\predictionUrl=http://www.mtv3tekstikanava.fi/new2008/[page]-01.htm
x\subPredictionUrl=http://www.mtv3tekstikanava.fi/new2008/[page]-[2:subpage].htm
x\previousPrediction=&quot;&lt;a href=\&quot;(\\d+)-01.htm\&quot;&gt;&amp;amp;lt;&amp;amp;lt; Edellinen sivu&lt;/a&gt;&quot;
x\nextPrediction=&quot;&lt;a href=\&quot;(\\d+)-01.htm\&quot;&gt;Seuraava sivu &amp;amp;gt;&amp;amp;gt;&lt;/a&gt;&quot;
x\previousSubPrediction=&quot;&lt;a href=\&quot;\\d+-(\\d+).htm\&quot;&gt;&amp;amp;lt;&amp;amp;lt; alasivu&lt;/a&gt;&quot;
x\nextSubPrediction=&quot;&lt;a href=\&quot;\\d+-(\\d+).htm\&quot;&gt;alasivu &amp;amp;gt;&amp;amp;gt;&lt;/a&gt;&quot;
x\startPage=100
&lt;/pre&gt;

==== Nelonen ====

&lt;pre&gt;
x\siteName=Nelonen
x\imageUrl=http://www.nelonen.fi/teksti4/pages/[page]_[4:subpage].gif
x\predictionUrl=http://www.nelonen.fi/teksti4/?page=[page]
x\subPredictionUrl=http://www.nelonen.fi/teksti4/?page=[page]&amp;subpage=[subpage]
x\previousPrediction=&quot;&lt;a href=\&quot;.page=(\\d+)\&quot;&gt;&lt;img src=\&quot;images/alalaita_edellinen.gif\&quot;.+&gt;&lt;/a&gt;&quot;
x\nextPrediction=&quot;&lt;a href=\&quot;.page=(\\d+)\&quot;&gt;&lt;img src=\&quot;images/alalaita_seuraava.gif\&quot;.+&gt;&lt;/a&gt;&quot;
x\previousSubPrediction=&quot;&lt;a href=\&quot;.page=\\d+&amp;subpage=(\\d+)\&quot;&gt;&lt;img src=\&quot;images/alalaita_edellinen_ala.gif\&quot;.+&gt;&lt;/a&gt;&quot;
x\nextSubPrediction=&quot;&lt;a href=\&quot;.page=\\d+&amp;subpage=(\\d+)\&quot;&gt;&lt;img src=\&quot;images/alalaita_seuraava_ala.gif\&quot;.+&gt;&lt;/a&gt;&quot;
x\startPage=101
&lt;/pre&gt;

=== Sweden ===

==== TV4 ====

Note: Subpages not working

&lt;pre&gt;
x\siteName=TV4
x\imageUrl=http://www.nyhetskanalen.se/texttv-files/images/1/P[page]S[2:subpage].gif
x\predictionUrl=http://www.nyhetskanalen.se/1.633665?page=[page]
x\subPredictionUrl=http://www.nyhetskanalen.se/1.633665?page=[page]
x\previousPrediction=&quot;href=\&quot;\\?page=(\\d+)\&quot; class=\&quot;previous&quot;
x\nextPrediction=&quot;href=\&quot;\\?page=(\\d+)\&quot; class=\&quot;next&quot;
x\previousSubPrediction=&quot;&quot;
x\nextSubPrediction=&quot;&quot;
x\startPage=100
&lt;/pre&gt;

=== Netherlands ===

==== NOS ====

&lt;pre&gt;
x\siteName=NOS
x\imageUrl=http://teletekst.nos.nl/gif/images/[page]-[2:subpage].gif
x\predictionUrl=http://teletekst.nos.nl/gif/[page]-[2:subpage].html
x\subPredictionUrl=http://teletekst.nos.nl/gif/[page]-[2:subpage].html
x\previousPrediction=&quot;&lt;a href=\&quot;(\\d+)-\\d+.html\&quot;&gt;&lt;img src=\&quot;/gfx/i-buttons/back.gif\&quot;&quot;
x\nextPrediction=&quot;&lt;a href=\&quot;(\\d+)-\\d+.html\&quot;&gt;&lt;img src=\&quot;/gfx/i-buttons/forward.gif\&quot;&quot;
x\previousSubPrediction=&quot;&lt;a href=\&quot;\\d+-(\\d+).html\&quot;&gt;&lt;img src=\&quot;/gfx/i-buttons/sub_back.gif\&quot;&quot;
x\nextSubPrediction=&quot;&lt;a href=\&quot;\\d+-(\\d+).html\&quot;&gt;&lt;img src=\&quot;/gfx/i-buttons/sub_forward.gif\&quot;&quot;
x\startPage=100
&lt;/pre&gt;

=== Austria ===

==== ORF ====

&lt;pre&gt;
x\siteName=ORF
x\imageUrl=http://teletext.orf.at/[topicpage]/[page]_[4:subpage].png
x\predictionUrl=http://teletext.orf.at/[topicpage]/[page]_[4:subpage].htm
x\subPredictionUrl=http://teletext.orf.at/[topicpage]/[page]_[4:subpage].htm
x\previousPrediction=&quot;&lt;a href=\&quot;(\\d+)_\\d+.htm\&quot; accesskey=\&quot;1\&quot;&gt;&quot;
x\nextPrediction=&quot;&lt;a href=\&quot;(\\d+)_\\d+.htm\&quot; accesskey=\&quot;2\&quot;&gt;&quot;
x\previousSubPrediction=&quot;&lt;a href=\&quot;\\d+_(\\d+).htm\&quot;  accesskey=\&quot;3\&quot;&gt;&quot;
x\nextSubPrediction=&quot;&lt;a href=\&quot;\\d+_(\\d+).htm\&quot;  accesskey=\&quot;4\&quot;&gt;&quot;
x\startPage=100
&lt;/pre&gt;

==== sat.1 Austria ====

&lt;pre&gt;
x\siteName=sat.1 Austria
x\imageUrl=http://www.sat1.at/service/teletext/cache_at/[page]_[2:subpage].png
x\predictionUrl=http://www.sat1.at/service/teletext/index.php?pagnr=[page]_[2:subpage]
x\subPredictionUrl=http://www.sat1.at/service/teletext/index.php?pagnr=[page]_[2:subpage]
x\previousPrediction=&quot;pagnr=(\\d+)_\\d+&amp;amp;trynext=-1\&quot; class=\&quot;teletext_numberBtn\&quot;&gt;-&lt;/a&gt;&quot;
x\nextPrediction=&quot;pagnr=(\\d+)_\\d+&amp;amp;trynext=1\&quot; class=\&quot;teletext_numberBtn\&quot;&gt;\\+&lt;/a&gt;&quot;
x\previousSubPrediction=&quot;pagnr=\\d+_(\\d+)\&quot; class=\&quot;teletext_numberBtn\&quot;&gt;&amp;amp;lt;&lt;/a&gt;&quot;
x\nextSubPrediction=&quot;pagnr=\\d+_(\\d+)\&quot; class=\&quot;teletext_numberBtn\&quot;&gt;&amp;amp;gt;&lt;/a&gt;&quot;
x\startPage=100
&lt;/pre&gt;

==== TW1 ====

&lt;pre&gt;
x\siteName=TW 1
x\imageUrl=http://www.tw1mhp.at/teletext/Pages/Export/HTML/TW1/[topicpage]/[page]_[4:subpage].png
x\predictionUrl=http://www.tw1mhp.at/teletext/Pages/Export/HTML/TW1/[topicpage]/[page]_[4:subpage].htm
x\subPredictionUrl=http://www.tw1mhp.at/teletext/Pages/Export/HTML/TW1/[topicpage]/[page]_[4:subpage].htm
x\previousPrediction=&quot;&lt;a href=\&quot;(\\d+)_\\d+.htm\&quot; accesskey=\&quot;1\&quot;&gt;&quot;
x\nextPrediction=&quot;&lt;a href=\&quot;(\\d+)_\\d+.htm\&quot; accesskey=\&quot;2\&quot;&gt;&quot;
x\previousSubPrediction=&quot;&lt;a href=\&quot;\\d+_(\\d+).htm\&quot;  accesskey=\&quot;3\&quot;&gt;&quot;
x\nextSubPrediction=&quot;&lt;a href=\&quot;\\d+_(\\d+).htm\&quot;  accesskey=\&quot;4\&quot;&gt;&quot;
x\startPage=100
&lt;/pre&gt;

=== Italy ===

==== RAI ====

&lt;pre&gt;
x\siteName=RAI
x\imageUrl=http://www.televideo.rai.it/televideo/pub/tt4web/Nazionale/page-[page].png
x\subImageUrl=http://www.televideo.rai.it/televideo/pub/tt4web/Nazionale/page-[page].[subpage].png
x\predictionUrl=http://www.televideo.rai.it/televideo/pub/solotesto.jsp?&amp;pagina=[page]&amp;sottopagina=1
x\subPredictionUrl=http://www.televideo.rai.it/televideo/pub/solotesto.jsp?&amp;pagina=[page]&amp;sottopagina=[subpage]
x\previousPrediction=&quot;&lt;a alt=\&quot;Pagina Precedente\&quot; href=\&quot;solotesto.jsp\\?pagina=(\\d+)&amp;sottopagina=1\&quot;&gt;&quot;
x\nextPrediction=&quot;&lt;a alt=\&quot;Pagina Successiva\&quot; href=\&quot;solotesto.jsp\\?pagina=(\\d+)&amp;sottopagina=1\&quot;&gt;&quot;
x\previousSubPrediction=&quot;&lt;a alt=\&quot;Sottopagina precedente\&quot; href=\&quot;solotesto.jsp\\?pagina=\\d+&amp;sottopagina=(\\d+)\&quot;&gt;&quot;
x\nextSubPrediction=&quot;&lt;a alt=\&quot;Sottopagina successiva\&quot; href=\&quot;solotesto.jsp\\?pagina=\\d+&amp;sottopagina=(\\d+)\&quot;&gt;&quot;
x\startPage=100
x\pad=1
&lt;/pre&gt;

=== Switzerland ===

==== sat.1 Switzerland ====

&lt;pre&gt;
x\siteName=sat.1 Schweiz
x\imageUrl=http://www.sat1.ch/service/teletext/cache_ch/[page]_[2:subpage].png
x\predictionUrl=http://www.sat1.ch/service/teletext/index.php?pagnr=[page]_[2:subpage]
x\subPredictionUrl=http://www.sat1.ch/service/teletext/index.php?pagnr=[page]_[2:subpage]
x\previousPrediction=&quot;pagnr=(\\d+)_\\d+&amp;amp;trynext=-1\&quot; class=\&quot;teletext_numberBtn\&quot;&gt;-&lt;/a&gt;&quot;
x\nextPrediction=&quot;pagnr=(\\d+)_\\d+&amp;amp;trynext=1\&quot; class=\&quot;teletext_numberBtn\&quot;&gt;\\+&lt;/a&gt;&quot;
x\previousSubPrediction=&quot;pagnr=\\d+_(\\d+)\&quot; class=\&quot;teletext_numberBtn\&quot;&gt;&amp;amp;lt;&lt;/a&gt;&quot;
x\nextSubPrediction=&quot;pagnr=\\d+_(\\d+)\&quot; class=\&quot;teletext_numberBtn\&quot;&gt;&amp;amp;gt;&lt;/a&gt;&quot;
x\startPage=100
&lt;/pre&gt;

==== SF 1 ====

Note: for pages with multiple subpages (including #100), subpage 1 is not loaded correctly.
&lt;pre&gt;
x\siteName=SF 1
x\imageUrl=http://www.teletext.ch/pics/SF1/[page]-00.gif
x\subImageUrl=http://www.teletext.ch/pics/SF1/[page]-[2:subpage].gif  
x\predictionUrl=http://www.teletext.ch/SF1/[page]-00.html
x\subPredictionUrl=http://www.teletext.ch/SF1/[page]-[2:subpage].html
x\previousPrediction=&quot;href=\&quot;/SF1/(\\d+)-\\d+.html\&quot;&gt;&lt;img src=\&quot;/design/navigation/minus.gif\&quot;&quot;
x\nextPrediction=&quot;href=\&quot;/SF1/(\\d+)-\\d+.html\&quot;&gt;&lt;img src=\&quot;/design/navigation/plus.gif\&quot;&quot;
x\previousSubPrediction=&quot;&lt;a href=\&quot;/SF1/\\d+-(\\d+).html\&quot; class=\&quot;white_link\&quot;&gt;&amp;lt;\\d+&lt;/a&gt;&quot;
x\nextSubPrediction=&quot;&lt;a href=\&quot;/SF1/\\d+-(\\d+).html\&quot; class=\&quot;white_link\&quot;&gt;\\d+&amp;gt;&lt;/a&gt;&quot;
x\startPage=100
&lt;/pre&gt;

=== Germany ===

==== BR Bayerntext ====

&lt;pre&gt;x\siteName=Bayerntext (BR)
x\imageUrl=http://www.br-online.de/content/import/bayerntext/pngData/[topicpage]/[page]_[4:subpage].png
x\predictionUrl=http://www.br-online.de/content/import/bayerntext/pngData/[topicpage]/[page]_[4:subpage].htm
x\subPredictionUrl=http://www.br-online.de/content/import/bayerntext/pngData/[topicpage]/[page]_[4:subpage].htm
x\previousPrediction=&quot;&lt;a href=\&quot;(\\d+)_\\d+.htm\&quot;&gt;\\d+&amp;amp;lt;&amp;amp;lt;&lt;/a&gt;&quot;
x\nextPrediction=&quot;;&lt;a href=\&quot;(\\d+)_\\d+.htm\&quot;&gt;&amp;amp;gt;&amp;amp;gt;\\d+&lt;/a&gt;&quot;
x\previousSubPrediction=&quot;&lt;a href=\&quot;\\d+_(\\d+).htm\&quot;&gt;&amp;amp;lt;&amp;amp;lt;&lt;/a&gt;&quot;
x\nextSubPrediction=&quot;&lt;a href=\&quot;\\d+_(\\d+).htm\&quot;&gt;&amp;amp;gt;&amp;amp;gt;&lt;/a&gt;&quot;
x\startPage=100&lt;/pre&gt;

==== kabel eins ====

&lt;pre&gt;x\siteName=kabel eins
x\imageUrl=http://www.kabel1.de/teletext/cache_de/[page]_[2:subpage].png
x\predictionUrl=http://www.kabel1.de/teletext/index.php?pagnr=[page]_[2:subpage]
x\subPredictionUrl=http://www.kabel1.de/teletext/index.php?pagnr=[page]_[2:subpage]
x\previousPrediction=&quot;pagnr=(\\d+)_\\d+&amp;amp;trynext=-1\&quot; class=\&quot;teletext_numberBtn\&quot;&gt;-&lt;/a&gt;&quot;
x\nextPrediction=&quot;pagnr=(\\d+)_\\d+&amp;amp;trynext=1\&quot; class=\&quot;teletext_numberBtn\&quot;&gt;\\+&lt;/a&gt;&quot;
x\previousSubPrediction=&quot;pagnr=\\d+_(\\d+)\&quot; class=\&quot;teletext_numberBtn\&quot;&gt;&amp;amp;lt;&lt;/a&gt;&quot;
x\nextSubPrediction=&quot;pagnr=\\d+_(\\d+)\&quot; class=\&quot;teletext_numberBtn\&quot;&gt;&amp;amp;gt;&lt;/a&gt;&quot;
x\startPage=100&lt;/pre&gt;

==== sat.1 ====

&lt;pre&gt;x\siteName=sat.1 Deutschland
x\imageUrl=http://www.sat1.de/service/teletext/cache_de/[page]_[2:subpage].png
x\predictionUrl=http://www.sat1.de/service/teletext/index.php?pagnr=[page]_[2:subpage]
x\subPredictionUrl=http://www.sat1.de/service/teletext/index.php?pagnr=[page]_[2:subpage]
x\previousPrediction=&quot;pagnr=(\\d+)_\\d+&amp;amp;trynext=-1\&quot; class=\&quot;teletext_numberBtn\&quot;&gt;-&lt;/a&gt;&quot;
x\nextPrediction=&quot;pagnr=(\\d+)_\\d+&amp;amp;trynext=1\&quot; class=\&quot;teletext_numberBtn\&quot;&gt;\\+&lt;/a&gt;&quot;
x\previousSubPrediction=&quot;pagnr=\\d+_(\\d+)\&quot; class=\&quot;teletext_numberBtn\&quot;&gt;&amp;amp;lt;&lt;/a&gt;&quot;
x\nextSubPrediction=&quot;pagnr=\\d+_(\\d+)\&quot; class=\&quot;teletext_numberBtn\&quot;&gt;&amp;amp;gt;&lt;/a&gt;&quot;
x\startPage=100&lt;/pre&gt;

==== 3sat ====

3sat broadcasts in Austria and Switzerland as well

&lt;pre&gt;
x\siteName=3sat
x\imageUrl=http://www.3sat.de/vtx3sat_clone/[topicpage]/[page]_[4:subpage].png
x\predictionUrl=http://www.3sat.de/vtx3sat.php?url=[page]_[4:subpage].htm
x\subPredictionUrl=http://www.3sat.de/vtx3sat.php?url=[page]_[4:subpage].htm
x\previousPrediction=&quot;url=(\\d+)_\\d+.htm\&quot;&gt;zur&amp;amp;uuml;ck&lt;/a&gt;&quot;
x\nextPrediction=&quot;url=(\\d+)_\\d+.htm\&quot;&gt;vor&lt;/a&gt;&quot;
x\previousSubPrediction=&quot;url=\\d+_(\\d+).htm\&quot;&gt;&amp;lt;&amp;lt;&lt;/a&gt;&quot;
x\nextSubPrediction=&quot;url=\\d+_(\\d+).htm\&quot;&gt;&amp;amp;gt;&amp;amp;gt;&lt;/a&gt;&quot;
x\startPage=100
&lt;/pre&gt;

==== WDR ====

Prediction of previous and next page doesn't work reliably: WDR links to pages that don't exist. No workaround possible. Enter page number manually when you're stuck.
&lt;pre&gt;
x\siteName=WDR
x\imageUrl=http://www.wdr.de/themen/_phpinclude_/global/videotext/gif/[page]_[4:subpage].png
x\predictionUrl=http://www.wdr.de/themen/global/videotext/index.jhtml?seite=[page]_[4:subpage]
x\subPredictionUrl=http://www.wdr.de/themen/global/videotext/index.jhtml?seite=[page]_[4:subpage]
x\previousPrediction=&quot;&lt;a href=\&quot;/themen/global/videotext/index.jhtml\\?seite=(\\d+)_\\d+\&quot;&gt;zur&amp;amp;uuml;ck&lt;/a&gt;&quot;
x\nextPrediction=&quot;&lt;a href=\&quot;/themen/global/videotext/index.jhtml\\?seite=(\\d+)_\\d+\&quot;&gt;vor&lt;/a&gt;&quot;
x\previousSubPrediction=&quot;&lt;a href=\&quot;/themen/global/videotext/index.jhtml\\?seite=\\d+_(\\d+)\&quot;&gt;&amp;amp;lt;&amp;amp;lt;&lt;/a&gt;&quot;
x\nextSubPrediction=&quot;&lt;a href=\&quot;/themen/global/videotext/index.jhtml\\?seite=\\d+_(\\d+)\&quot;&gt;&amp;amp;gt;&amp;amp;gt;&lt;/a&gt;&quot;
x\startPage=100
&lt;/pre&gt;

==== einsfestival ====

&lt;pre&gt;
x\siteName=einsfestival
x\imageUrl=http://www.einsfestival.de/intern/videotext_png/[page]_[4:subpage].png
x\predictionUrl=http://www.einsfestival.de/videotext.jsp?seite=[page]_[4:subpage]
x\subPredictionUrl=http://www.einsfestival.de/videotext.jsp?seite=[page]_[4:subpage]
x\previousPrediction=&quot;&lt;a href=\&quot;\\?seite=(\\d+)_\\d+\&quot;&gt;zur&amp;amp;uuml;ck&lt;/a&gt;&quot;
x\nextPrediction=&quot;&lt;a href=\&quot;\\?seite=(\\d+)_\\d+\&quot;&gt;vor&lt;/a&gt;&quot;
x\previousSubPrediction=&quot;&lt;a href=\&quot;\\?seite=\\d+_(\\d+)\&quot;&gt;&amp;amp;lt;&amp;amp;lt;&lt;/a&gt;&quot;
x\nextSubPrediction=&quot;&lt;a href=\&quot;\\?seite=\\d+_(\\d+)\&quot;&gt;&amp;amp;gt;&amp;amp;gt;&lt;/a&gt;&quot;
x\startPage=100
&lt;/pre&gt;

=== Ireland ===

==== RTÉ Aertel ====

&lt;pre&gt;
x\siteName=RTÉ Aertel
x\imageUrl=http://www.rte.ie/aertel/images/[page]-[2:subpage].gif
x\predictionUrl=http://www.rte.ie/aertel/[page]-[2:subpage].html
x\subPredictionUrl=http://www.rte.ie/aertel/[page]-[2:subpage].html
x\previousPrediction=&quot;&lt;a href=\&quot;(\\d+)-\\d+.html\&quot;&gt;Previous Page&lt;/a&gt;&quot;
x\nextPrediction=&quot;&lt;a href=\&quot;(\\d+)-\\d+.html\&quot;&gt;Next Page&lt;/a&gt;&quot;
x\previousSubPrediction=&quot;&lt;a href=\&quot;\\d+-(\\d+).html\&quot;&gt;Previous SubPage&lt;/a&gt;&quot;
x\nextSubPrediction=&quot;&lt;a href=\&quot;\\d+-(\\d+).html\&quot;&gt;Next SubPage&lt;/a&gt;&quot;
x\startPage=100
&lt;/pre&gt;

=== United Kingdom ===

==== BBC Ceefax1 ====

Note: for pages with multiple subpages, subpage 1 is not loaded correctly. 
&lt;pre&gt;
x\siteName=BBC Ceefax1
x\imageUrl=http://www.ceefax.tv/cgi-bin/gfx.cgi?page=[page]_0&amp;font=big&amp;channel=bbc1
x\subImageUrl=http://www.ceefax.tv/cgi-bin/gfx.cgi?page=[page]_[subpage]&amp;font=big&amp;channel=bbc1
x\predictionUrl=http://www.ceefax.tv/imode/bbc1_imode21.php?page=[page]
x\subPredictionUrl=http://www.ceefax.tv/imode/bbc1_imode21.php?page=[page]&amp;subpage=[subpage]
x\previousPrediction=&quot;&lt;a accesskey=\&quot;x\&quot; href=\&quot;bbc1_imode21.php\\?page=(\\d+)#page\&quot;&gt;&quot;
x\nextPrediction=&quot;&lt;a accesskey=\&quot;6\&quot; href=\&quot;bbc1_imode21.php\\?page=(\\d+)#page\&quot;&gt;&quot;
x\previousSubPrediction=&quot;&lt;a accesskey=\&quot;1\&quot; href=\&quot;bbc1_imode21.php\\?page=\\d+&amp;subpage=(\\d+)#page\&quot;&gt;&quot;
x\nextSubPrediction=&quot;&lt;a accesskey=\&quot;3\&quot; href=\&quot;bbc1_imode21.php\\?page=\\d+&amp;subpage=(\\d+)#page\&quot;&gt;&quot;
x\startPage=100
x\pad=1
&lt;/pre&gt;

==== BBC Ceefax2 ====

Note: for pages with multiple subpages, subpage 1 is not loaded correctly. 
&lt;pre&gt;
x\siteName=BBC Ceefax2
x\imageUrl=http://www.ceefax.tv/cgi-bin/gfx.cgi?page=[page]_0&amp;font=big&amp;channel=bbc2
x\subImageUrl=http://www.ceefax.tv/cgi-bin/gfx.cgi?page=[page]_[subpage]&amp;font=big&amp;channel=bbc2
x\predictionUrl=http://www.ceefax.tv/imode/bbc2_imode21.php?page=[page]
x\subPredictionUrl=http://www.ceefax.tv/imode/bbc2_imode21.php?page=[page]&amp;subpage=[subpage]
x\previousPrediction=&quot;&lt;a accesskey=\&quot;x\&quot; href=\&quot;bbc2_imode21.php\\?page=(\\d+)#page\&quot;&gt;&quot;
x\nextPrediction=&quot;&lt;a accesskey=\&quot;6\&quot; href=\&quot;bbc2_imode21.php\\?page=(\\d+)#page\&quot;&gt;&quot;
x\previousSubPrediction=&quot;&lt;a accesskey=\&quot;1\&quot; href=\&quot;bbc2_imode21.php\\?page=\\d+&amp;subpage=(\\d+)#page\&quot;&gt;&quot;
x\nextSubPrediction=&quot;&lt;a accesskey=\&quot;3\&quot; href=\&quot;bbc2_imode21.php\\?page=\\d+&amp;subpage=(\\d+)#page\&quot;&gt;&quot;
x\startPage=100
x\pad=1
&lt;/pre&gt;

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Diablo:Missing Packages</title>
    <id>1152</id>
    <revision>
      <id>6780</id>
      <timestamp>2008-08-23T13:57:26Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Diablo:Missing Packages]] moved to [[Missing packages from Diablo Extras]]: Moved out of improper namespace. Please don't use distributions as namespaces.</comment>
      <text xml:space="preserve">#REDIRECT [[Missing packages from Diablo Extras]]</text>
    </revision>
  </page>
  <page>
    <title>Diablo: Missing Packages</title>
    <id>592</id>
    <revision>
      <id>21028</id>
      <timestamp>2009-10-26T09:23:39Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <minor/>
      <comment>Redirecting to [[Missing packages from Diablo Extras]]</comment>
      <text xml:space="preserve">#REDIRECT [[Missing packages from Diablo Extras]]</text>
    </revision>
  </page>
  <page>
    <title>Diablo Community Project</title>
    <id>2477</id>
    <revision>
      <id>40375</id>
      <timestamp>2010-11-28T15:44:51Z</timestamp>
      <contributor>
        <username>sd69</username>
        <id>677</id>
      </contributor>
      <comment>/* Future Goals */</comment>
      <text xml:space="preserve">'''The goal of the Diablo Community Project is to extend the life of Diablo software and keep it fully functional.

== Short Term Goals ==

* Extend the usable life of Diablo and associated GUI 
* Extend the usable life of the N8x0 internet tablets
* Focus, harness and support community contributions to Diablo
* Facilitate updates of the software on N8x0 internet tablets (e.g. [[Seamless Software Update|SSU]])

== SSU Project ==

# Promote the development of &quot;opt-in&quot; packages as a &quot;community-updates&quot; component for Diablo.
# Add &quot;community-updates&quot; component to Extras.
# Build new hildon-application-manager and osso-software-version-rx* packages.
# Install opt-in packages as &quot;community-updates&quot; and test.

Discuss the SSU Project here:
http://talk.maemo.org/showthread.php?t=30648

=== Update Details===

* Maintains 100% compatibility for all apps
* Installs on N8x0 NITs with cooperation of maemo.org
* User level documentation (NOT a Nokia hacker's edition)
* Rewrite or open previously closed components of Diablo
* &quot;community&quot; and &quot;community-testing&quot; maemo.org repositories have been created: 

 deb http://repository.maemo.org/community/ diablo free non-free
 deb http://repository.maemo.org/community-testing/ diablo free non-free

=== Current status ===

* First stable release is out ([[/Changelog|changelog]]).
* Bugtracker: bugs.maemo.org, classification: Extras [https://bugs.maemo.org/enter_bug.cgi?product=diablo-community-updates product:diablo-community-updates].  Please check the bugtracker for progress.  Fixes may not be reported here.

=== Upgrading to the &quot;stable&quot; version ===
# Understand that these packages are unofficial software updates provided by the maemo.org community with no warranty expressed or implied and are not supported by Nokia.  Is is highly recommended that you have a recent backup before proceeding and that you are comfortable [[Updating_the_firmware|reflashing]] your device if necessary.
# Make sure you have not (perhaps unintentionally) removed the appropriate osso-software-version-rxXX package for your device, or if you have [[Updating_the_firmware#Seamless_Software_Update|re-install it]] as SSU simply won't work without it.
# Visit http://repository.maemo.org/community/community.install with the built-in browser (microb) and open it with the application manager when prompted. This will install the community repository and an enabler package that loads its public key and sets up the package domain with a higher priority than the nokia-system one so that nokia-system packages can be updated.
# Refresh the application manager (bottom right button) so it will see the packages in the community-updates domain and offer the update.
# Install the update.
# Report any issues [https://bugs.maemo.org/enter_bug.cgi?product=diablo-community-updates here].

=== Testing the &quot;unstable&quot; version ===
# Read the above section paying special attention to the warnings.
# Please understand that these are unstable packages and may not always perform correctly and could potentially even damage your device or data.
# If you still wish to go ahead, visit http://repository.maemo.org/community-testing/community-testing.install with the built-in browser (microb) and open it with the application manager when prompted.  Otherwise proceed as above.

== Future Goals ==
Efforts to rewrite or open previously closed components of Diablo have been unsuccessful.  See http://talk.maemo.org/showpost.php?p=699617&amp;postcount=461
Therefore, a plan needs to be developed to avoid obsolesence that is not dependent on the cooperation of Nokia.
* Ensure ongoing support for Diablo by maemo.org or other organizations.
* Archive/maintain Diablo specific software
* Facilitate the use of Diablo UI/UX on MeeGo or porting of Diablo applications to MeeGo.  See http://blogs.gnome.org/foundation/2010/10/13/gtkmeego-handset-integration-work-call-for-bids/

[[Category:Development]]
[[Category:Diablo]]</text>
    </revision>
  </page>
  <page>
    <title>Diablo Community Project/Changelog</title>
    <id>4080</id>
    <revision>
      <id>38094</id>
      <timestamp>2010-08-26T09:31:56Z</timestamp>
      <contributor>
        <username>lma</username>
        <id>37</id>
      </contributor>
      <comment>Changelog for first stable</comment>
      <text xml:space="preserve">= Changelog =

== First stable release ==

List of changes between 5.2008.43-7 and 5.2010.33-1:

&lt;pre&gt;
 busybox:
  * Fixes: BMO#10571: ps no longer supports the -ef arguments
  * Fixes: BMO#3917: Missing Large File Support (CONFIG_LFS) in Busybox.
  * Fixes: BMO#3951: Incompatible quote handling in Busybox xargs
    (FEATURE_XARGS_SUPPORT_QUOTES disabled?)
  * Enable FEATURE_XARGS_SUPPORT_ZERO_TERM for consistency with
    FEATURE_FIND_PRINT0 (mentioned in BMO#3951/BMO#4248).
  * Fixes: BMO#3957: Busybox does not support &quot;ls -Q&quot; which some scripts need.
  * Fixes: BMO#3968: grep -r can output corrupt data in error message if file
    cannot be read.
  * Fixes: BMO#4174: shell history file is overwritten after every command.
  * Fixes: BMO#4175: History cross-contamination between concurrently running
    shells
  * Fixes: BMO#7014: ash saves only 15 lines of history (increased to 100). 
  * Workaround for BMO#5317: Shell does not save command history / Busybox
    doesn't handle SIGHUP properly. 
  * Fix for multi-column ls -Q output. 
  * Fixes: BMO#419: Enable IPv6 support in busybox (and PING6).
  * Fixes: BMO#3989: Busybox &quot;ls -s&quot; dereferences the file.
  * Fixes: BMO#4248: Enable features in Busybox to increase its tools
    GNU/Debian compatibility.
  * Fixes: BMO#4079: busybox df does not handle root filesystem on command
    line.
  * Fixes: BMO#6606: No getopts, called by init-functions (lsb-base).
  * Fixes: BMO#8291: Enable CONFIG_LOCALE_SUPPORT in busybox.
  * Build with -mthumb to match the official Nokia package.
  * Make df rootfs mangling conditional on filesystem arguments.
 .
 dnsmasq:
  * Fixes: BMO#995: DNS resolution ignores local domain.
  * Removed unused resolvconf script. 
 .
 kernel-diablo:
  * Fixes: BMO#3243: g_ether / RNDIS is broken in kernel 2.6.21
  * Fixes: BMO#2249: FM Radio frequency not set for use in Japan.
    Martin Grimme &lt;martin.grimme@lintegra.de&gt;
  * Fixes: BMO#2491: cant run camera applications with v4l2.
    Sakari Ailus &lt;sakari.ailus@nokia.com&gt;
  * Fixes: BMO#3123: Patch to kernel to allow DSP framebuffer sharing on N8x0
    devices.
    Simon Pickering &lt;S.G.Pickering@bath.ac.uk&gt;
  * Fixes: BMO#3519: Integrate screen rotation patches into stock kernel.
    Luarvique L. Luarvique &lt;luarvique@gmail.com&gt;
 .
 loudmouth:
  * Fixes: BMO#3455: telepathy-gabble deadlooping 
  * Fixes: BMO#4119: digest-uri omits the serv-name part causing
    authentication failure when host != serv-name
    Sjoerd Simons &lt;sjoerd@debian.org&gt;
 .
 modest:
  * Fixes: BMO#2553: Please make folder view finger-sized.
    Daniel Martin Yerga &lt;dyerga@gmail.com&gt;
  * Fixes: BMO#2554: Add &quot;Move to folder&quot; button in main view.
    Daniel Martin Yerga &lt;dyerga@gmail.com&gt;
  * Fixes: BMO#3004: Modest pops up even when only read messages are in IMAP
    inbox.
    Daniel Martin Yerga &lt;dyerga@gmail.com&gt;
  * Fixes: BMO#3498: Add &quot;Zooming to x%&quot; messages to Modest. 
    Daniel Martin Yerga &lt;dyerga@gmail.com&gt;
  * Fixes: BMO#3941: Signature separator misses trailing space (RFC 3676
    violation).
 .
 tinymail:
  * Fixes: BMO#4803: Modest sends empty ENABLE command when IMAP server
    advertises ENABLE but not CONDSTORE or QRESYNC capabilities. 
 .
 osso-pdf-viewer:
  * Fixes: BMO#2150/NB#76448/NB#120388: PDF Reader doesn't support internal document hyperlinks.
    xujun &lt;Jun.Xu@plenware.com&gt;
  * Fixes: BMO#2704: PDF Reader needs more zoom levels between 50% and 150%
    Sandu Gherbe &lt;pursisimplu2004@yahoo.com&gt;
  * Fixes: BMO#2714: Page up should go to Bottom of Previous Page (instead of Top).
    yanghua &lt;Hua.Yang@plenware.com&gt;
  * Fixes: BMO#4930: PDF Reader doesn't use optimal screen width in fit width mode.
    Hauweele Pierre &lt;antegallya@gmail.com&gt;
 .
 xserver-xomap:
  * Fixes: BMO#3519: Integrate screen rotation patches into stock kernel and X
    server. 
    Luarvique L. Luarvique &lt;luarvique@gmail.com&gt;
  * Force building with vfp on ARM to match the official Nokia package, and
    since it doesn't compile without it anyway. 
  * Fixes: &lt;https://bugs.freedesktop.org/show_bug.cgi?id=6502&gt;: RandR fails
    after some time.
    Marius Gedminas &lt;mgedmin@b4net.lt&gt;
&lt;/pre&gt;

[[Category:Diablo]]
[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Diablo Extras repository proposal</title>
    <id>268</id>
    <revision>
      <id>33072</id>
      <timestamp>2010-04-19T14:16:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>links</comment>
      <text xml:space="preserve">This proposal is coordinated by [[User:Xfade|Niels Breet]].

== Objectives ==
* Create a Diablo repository with a baseline for quality packages
* Make sure source packages are always available
* Make sure that packages with broken dependencies don't enter the repository
* Short-term improvements for Diablo repository.

== Proposal ==
This is a '''DRAFT UNDER DISCUSSION'''. You can help reaching conclusions. Please add your comments to the [[{{TALKPAGENAME}}|discussion]] page.
This proposal is part of the [[Extras repository process definition]].

== Maemo Extras repository proposal for Diablo ==

At the moment the quality of packages in Chinook Extras is varying from super to pretty bad. Another problem is that, for most packages, there is no source package available. If we want to break this trend we need to take some measures to ensure at least a baseline quality for packages. Now we have the opportunity to act before Diablo gets released, next one will be Fremantle. 

=== No direct binary uploads to Diablo Extras ===

For Diablo, we have the ability to start off with a clean slate and an empty repository. There is an ongoing effort ([https://garage.maemo.org/extras-assistant/maemo_extras_chinook_rebuild.php Chinook] - [https://garage.maemo.org/extras-assistant/maemo_extras_diablo_rebuild.php Diablo]) to get all source packages from Chinook and see if they can be built against a clean Chinook and later bootstrap the Diablo Extras repository with them. After this effort is done we can setup repository access as follows:

* All applications must be uploaded to Diablo Extras repository as source packages.
* These uploads should go through the [http://extras-cauldron.garage.maemo.org/HOWTO.html autobuilder].
** The autobuilder will do some really basic QA, basically it only checks if the package builds.
** It will also prevent packages with broken dependencies from entering the repository.

We might want to add more checks later, but don't want to make it impossible for new developers to upload packages.

The diablo upload queue will be opened when the diablo SDK has been released.

=== Package promotion from Extras-devel to Extras ===

After the autobuilder builds the package, it will be uploaded to the Extras-devel repository. This repository is meant to be a playground, testing, experimentation repository. If the developer thinks his package is ready for Extras, we have two options:

* The package can be promoted to Extras using the promotion interface by the developer
* A group of community volunteers manages all promotion requests and decides if the package quality meets the standards to be promoted to Extras.

The first option is what we have in place now. We can easily start using that from the start. The advantage is that a developer can easily put the package in Extras, but the disadvantage is that a developer may deem the quality good enough when it really isn't.

The second option takes longer to get in place and is quite ambitious, so maybe we need to aim for Fremantle to work this out properly.

== Discussion ==
Feel free to add to the [[{{TALKPAGENAME}}|discussion]].


See also [[Diablo Community Project]]

[[Category:Community]]
[[Category:maemo.org]]
[[Category:Diablo]]</text>
    </revision>
  </page>
  <page>
    <title>Diablo Turbo</title>
    <id>4743</id>
    <revision>
      <id>42119</id>
      <timestamp>2011-02-25T09:35:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Diablo turbo kernel */ add Diablo link</comment>
      <text xml:space="preserve">==Diablo turbo kernel==

Special kernel and tools for making the [[Nokia N800|N800]] and [[Nokia N810|N810]] ([[Open development/Maemo roadmap/Diablo|Diablo]] devices) more responsive.

Latest information at 
* [http://talk.maemo.org/showthread.php?t=69740 Diablo Turbo talk]-thread.
* [https://garage.maemo.org/projects/diablo-turbo/ Garage page]

[[Category:N8x0]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Diablo extras repository proposal</title>
    <id>638</id>
    <revision>
      <id>3440</id>
      <timestamp>2008-06-30T12:16:57Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Diablo extras repository proposal]] moved to [[Diablo Extras repository proposal]]: Capitalizing Extras</comment>
      <text xml:space="preserve">#REDIRECT [[Diablo Extras repository proposal]]</text>
    </revision>
  </page>
  <page>
    <title>DialCentral</title>
    <id>4583</id>
    <revision>
      <id>47039</id>
      <timestamp>2012-03-23T09:04:58Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <comment>Undo revision 47037 by [[Special:Contributions/216.31.225.230|216.31.225.230]] ([[User talk:216.31.225.230|Talk]]) - Do not overwrite content.</comment>
      <text xml:space="preserve">DialCentral (formerly called GC Dialer) is meant as an interface to Google's GoogleVoice service that integrates with your Maemo device or Linux computer. 

== Screenshots ==

[[Image:DialCentral_Account.png|frame|center|alt=Screenshot of DialCentral account view|'''Note:''' Be sure to set your callback number before making calls]]

[[Image:DialCentral_Dialpad.png|frame|center|alt=Screenshot of DialCentral showing ‘dialpad’ view|Dialpad view]]

[[Image:DialCentral_History.png|frame|center|alt=Screenshot of DialCentral showing ‘history’ view|Note that a call was placed relatively recently since it is under the refresh time. There is nothing else during the day the history was refreshed. Several items in the previous week.]]

[[Image:DialCentral_Messages.png|frame|center|alt=Screenshot of DialCentral showing ‘messages’ view|Note that a text was sent relatively recently since it is under the refresh time.  There is nothing else during the day the history was refreshed.  Several items in the previous week.]]

[[Image:DialCentral_Contacts.png|frame|center|alt=Screenshot of DialCentral showing ‘contacts’ view|Contacts with dividers]]

[[Image:DialCentral_Call.png|frame|center|alt=Screenshot of DialCentral showing ‘call’ view|Start a call or enter a text for a contact]]

[[Image:DialCentral_SMS.png|frame|center|alt=Screenshot of DialCentral showing ‘SMS’ view|Texting someone from the history]]

[[Image:DialCentral_BroadcastSMS.png|frame|center|alt=Screenshot of DialCentral showing ‘group SMS’ view|Sending a group SMS]]


== Features ==

Basic features:
* Dialpad for click-to-call (callback, forwarding, whatever you want to call it)
* Sending of SMS including group SMS
* Recent calls list
* Voicemail/SMS viewer
* Contact list, either from GV website or CSV

Keyboard Shortcuts
* Ctrl+Enter - toggle between fullscreen
* Ctrl+w, Ctrl+q - quit
* Ctrl+l - Copy the debug log contents
* Ctrl+i to import a CSV

CSV Support
* Must be imported (or placed in &quot;~/.dialcentral/contacts&quot;)
* Displayed in the addressbook selector based on the filename
* Supported columns with the following in their names &quot;name&quot;, &quot;phone&quot;, &quot;mobile&quot;
* Known to work with GoogleVoice and GrandCentral exports.

== Getting DialCentral ==

Getting DialCentral
* Maemo 4.1: Available in [[extras]] through the Application Manager.
* [http://maemo.org/downloads/product/Maemo5/dialcentral/ Maemo 5] or available in extras through the Application Manager.
* [http://gc-dialer.garage.maemo.org/dialcentral.deb Ubuntu]

DialCentral has been tested on:
* Ubuntu 10.04
* Maemo 4.1
* Maemo 5

== Contribute ==

* [https://bugs.maemo.org/enter_bug.cgi?product=Dialcentral File a bug]
* [https://bugs.maemo.org/buglist.cgi?query_format=specific&amp;order=relevance+desc&amp;bug_status=__open__&amp;product=Dialcentral&amp;content= View existing bug reports]
* [http://talk.maemo.org/showthread.php?p=293533 talk.maemo.org thread]
* [https://garage.maemo.org/projects/gc-dialer/ Garage Project (including code)] or [https://github.com/epage/DialCentral github]
* Learn about [[extras-testing]] and checkout the [http://maemo.org/packages/view/dialcentral/ Package page (including voting)]

DialCentral is available under the [http://www.gnu.org/licenses/gpl-2.1.html GPL v2.1 license]

Icons are licensed [http://creativecommons.org/licenses/by-nc-nd/3.0/ &quot;The Creative Commons Attribution-NonCommercial -- FREE&quot;] from
http://www.gentleface.com/free_icon_set.html

== Troubleshooting and Reporting of Bugs ==

Are the Call/SMS buttons grayed out?
* This means it is not logged in

Can't call
* In the account configuration, is a callback number set?
* Did you enter the area code?
* Have you tried calling a good known number like one of your own (that isn't the callback)

The views show stale data?
* Go into the menu and select &quot;Refresh&quot;

Information to include when reporting an issue
* Your version of Dialcentral
* Information from the steps you followed above
* From what tab are you having issues (Dialpad, Recent, Messages, Account Info)?
* Is it a US or international number?
* (For the advanced) Could you post the contents of &quot;~/.dialcentral/dialcentral.log&quot;

For serious users and serious problems (Google changes the &quot;API&quot;) is the following command:
&lt;source lang=&quot;bash&quot;&gt;/opt/dialcentral/lib/backends/gvoice/gvoice.py USERNAME PASSWORD&lt;/source&gt;
Note that this writes a bunch of files ''with sensitive information'' to the current working directory.  Please gather those up, scrub them if desired, and send them to me directly to avoid ''sensitive information'' from being leaked out.

=== DC Fails to Load (Maemo 4.1) ===

There is a chance I broke things, but there is a chance you are hitting an issue due to bad packages in extras-devel.

# Uninstall all Qt applications if they aren't already(DialCentral, Gonvert, ejpi)
# [http://talk.maemo.org/showpost.php?p=894216&amp;postcount=1402 Disable extras-devel]
# Install DialCentral and any of your Qt applications you had to uninstall
# [http://talk.maemo.org/showpost.php?p=894216&amp;postcount=1402 Enable extras-devel]

So it looks like the version of PyQt in extras-devel is broken but not the one in extras. Installing DialCentral while extras-devel is enabled will pull in the broken version. So let's avoid that.

=== Notifications ===

Really if you want this, maybe you should be using The One Ring.

If notifications are acting odd, try experimenting with these
&lt;source lang=&quot;bash&quot;&gt;
python /opt/dialcentral/lib/alarm_handler.py -x # Show alarm
python /opt/dialcentral/lib/alarm_handler.py -d # Delete the alarm
python /opt/dialcentral/lib/led_handler.py # Stop the LED
&lt;/source&gt;

In settings.ini
&lt;source lang=&quot;ini&quot;&gt;
[alarm]
notifier=PATH_TO_CUSTOM_NOTIFIER
&lt;/source&gt;

Example notifiers included:
&lt;source lang=&quot;bash&quot;&gt;
/opt/dialcentral/lib/alarm_notify.py #Default
/opt/dialcentral/lib/examples/log_notifier.py
/opt/dialcentral/lib/examples/sound_notifier.py
&lt;/source&gt;

The program that periodically checks for new messages has its own log file: ~/.dialcentral/notifier.log

[[Category:Software]]
[[Category:Diablo]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Dial via SIP</title>
    <id>4605</id>
    <revision>
      <id>40624</id>
      <timestamp>2010-12-08T14:29:14Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Dial via SIP]] moved to [[User:Magick777/Dial via SIP]]: stub page</comment>
      <text xml:space="preserve">#REDIRECT [[User:Magick777/Dial via SIP]]</text>
    </revision>
  </page>
  <page>
    <title>Dialer</title>
    <id>4762</id>
    <revision>
      <id>50192</id>
      <timestamp>2012-10-15T13:49:27Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Dialer]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">==librtcom-dialer-ui==
These different sets of functions are exported by librtcom-dialer-ui for use by the dialer app. It specifically concentrates on non-UI stuff as that's what a dialer replacement would need.
Types are implement via the glib type system (g_type_register_static_simple and friends)

===cui_account_model===
Implements type CuiAccountModel which is a UI widget derived from a GtkListStore

===cui_account_selector===
Implements type CuiAccountSelector which is a UI widget derived from a HildonTouchSelector

===cui_audio_call_view===
Implements type CuiAudioCallView which is a UI widget derived from a &lt;code&gt;CuiCallView&lt;/code&gt;

===cui_audio_policy===
Implements type &lt;code&gt;CuiAudioPolicy&lt;/code&gt; which is used to control audio policy settings

====set mute====
dbus method call to &lt;code&gt;org.maemo.Playback.Manager&lt;/code&gt; &lt;code&gt;/org/maemo/Playback/Manager&lt;/code&gt; &lt;code&gt;org.maemo.Playback.Manager.RequestMute&lt;/code&gt; one argument, boolean (true/false to set mute)

====set speaker====
dbus method call to &lt;code&gt;org.maemo.Playback.Manager&lt;/code&gt; &lt;code&gt;/org/maemo/Playback/Manager&lt;/code&gt; &lt;code&gt;org.maemo.Playback.Manager.RequestPrivacyOverride&lt;/code&gt; one argument, boolean (true/false to set mute)

====set bluetooth override====
dbus method call to &lt;code&gt;org.maemo.Playback.Manager&lt;/code&gt; &lt;code&gt;/org/maemo/Playback/Manager&lt;/code&gt; &lt;code&gt;org.maemo.Playback.Manager.RequestBluetoothOverride&lt;/code&gt; one argument, boolean (true/false to set mute)

====mute signal====
dbus signal from&lt;code&gt;org.maemo.Playback.Manager&lt;/code&gt; &lt;code&gt;/org/maemo/Playback/Manager&lt;/code&gt; &lt;code&gt;Mute&lt;/code&gt; one argument, boolean (true/false to get mute)

====speaker signal====
dbus signal from &lt;code&gt;org.maemo.Playback.Manager&lt;/code&gt; &lt;code&gt;/org/maemo/Playback/Manager&lt;/code&gt; &lt;code&gt;PrivacyOverride&lt;/code&gt; one argument, boolean (true/false to get speaker)

====bluetooth override signal====
dbus signal from &lt;code&gt;org.maemo.Playback.Manager&lt;/code&gt; &lt;code&gt;/org/maemo/Playback/Manager&lt;/code&gt; &lt;code&gt;BluetoothOverride&lt;/code&gt; one argument, integer (unknown argument)

====request hold====
dbus method call to &lt;code&gt;com.nokia.policy.telephony&lt;/code&gt; &lt;code&gt;/com/nokia/policy/telephony&lt;/code&gt; &lt;code&gt;com.nokia.policy.telephony.RequestHold&lt;/code&gt; arguments appear to be string, object_path, boolean (unknown arguments)

====request accept====
dbus method call to &lt;code&gt;com.nokia.policy.telephony&lt;/code&gt; &lt;code&gt;/com/nokia/policy/telephony&lt;/code&gt; &lt;code&gt;com.nokia.policy.telephony.RequestAccept&lt;/code&gt; arguments appear to be, object_path (unknown arguments)

====headset button pressed signal====
Register callback via &lt;code&gt;libhal_ctx_set_device_condition&lt;/code&gt; and listen for condition_name = &quot;&lt;code&gt;ButtonPressed&lt;/code&gt;&quot; and condition_detail = &quot;&lt;code&gt;phone&lt;/code&gt;&quot;

====headset jack state signal====
Register callback via &lt;code&gt;libhal_ctx_set_device_property_modified&lt;/code&gt; and listen for udi = &quot;&lt;code&gt;/org/freedesktop/Hal/devices/platform_soc_audio_logicaldev_input&lt;/code&gt;&quot; and key = &quot;&lt;code&gt;input.jack.type&lt;/code&gt;&quot;
Also call &lt;code&gt;libhal_device_add_property_watch&lt;/code&gt; to watch for property &quot;&lt;code&gt;/org/freedesktop/Hal/devices/platform_soc_audio_logicaldev_input&lt;/code&gt;&quot;

====get headset jack type====
call &lt;code&gt;libhal_device_get_property_strlist&lt;/code&gt; udi = &quot;&lt;code&gt;/org/freedesktop/Hal/devices/platform_soc_audio_logicaldev_input&lt;/code&gt;&quot; key = &quot;&lt;code&gt;input.jack.type&lt;/code&gt;&quot;. Code checks for type = &quot;&lt;code&gt;headphone&lt;/code&gt;&quot;

===cui_avatar_image===
Implements type &lt;code&gt;CuiAvatarImage&lt;/code&gt; which is a UI widget derived from &lt;code&gt;OssoABookAvatarImage&lt;/code&gt;

===cui_button_box===
Implements type &lt;code&gt;CuiButtonBox&lt;/code&gt; which is a UI widget derived from &lt;code&gt;GtkBox&lt;/code&gt;

===cui_call_banner===
Implements type &lt;code&gt;CuiCallBanner&lt;/code&gt; which is a UI widget derived from &lt;code&gt;GtkFrame&lt;/code&gt;

===cui_call_context===
Implements type &lt;code&gt;CuiCallContext&lt;/code&gt; which is used for call context. Details TBA.

===cui_call_control===
Implements type &lt;code&gt;CuiCallControl&lt;/code&gt; which is a UI widget derived from &lt;code&gt;GtkAlignment&lt;/code&gt;.

===cui_call_store===
Implements type &lt;code&gt;CuiCallStore&lt;/code&gt; which is used for call store. Details TBA.

===cui_call_view===
Implements type &lt;code&gt;CuiCallView&lt;/code&gt; which is a UI widget derived from &lt;code&gt;GtkAlignment&lt;/code&gt;

===cui_conf_call_context===
Implements type &lt;code&gt;CuiConfCallContext&lt;/code&gt; which is used for conference call context (derives from &lt;code&gt;CuiCallContext&lt;/code&gt;). Details TBA.

===cui_conf_call_view===
Implements type &lt;code&gt;CuiConfCallView&lt;/code&gt; which is a UI widget derived from &lt;code&gt;CuiCallView&lt;/code&gt;

===cui_credit_label===
Implements type &lt;code&gt;CuiCreditLabel&lt;/code&gt; which is a UI widget derived from &lt;code&gt;GtkAlignment&lt;/code&gt;

===cui_cs_proxy===
Implements type &lt;code&gt;CuiCsProxy&lt;/code&gt; which is used for call interface items

====get emergency numbers====
dbus method call to &lt;code&gt;com.nokia.csd.Call&lt;/code&gt; &lt;code&gt;/com/nokia/csd/call&lt;/code&gt; &lt;code&gt;com.nokia.csd.Call.GetEmergencyNumbers&lt;/code&gt;. No arguments, reply argument is array of strings.

====get IMEI====
dbus method call to &lt;code&gt;com.nokia.phone.SIM&lt;/code&gt; &lt;code&gt;/com/nokia/phone/SIM/security&lt;/code&gt; &lt;code&gt;Phone.Sim.Security.get_imei&lt;/code&gt;. No arguments, reply argument is string.

====modem state====
dbus method call to &lt;code&gt;com.nokia.phone.SSC&lt;/code&gt; &lt;code&gt;/com/nokia/phone/SSC&lt;/code&gt; &lt;code&gt;com.nokia.phone.SSC.get_modem_state&lt;/code&gt;. No arguments, reply argument is string.

====short code====
compares against the string 0123456789*# with &lt;code&gt;strspn&lt;/code&gt;. checks if its emergency number. dbus method call to &lt;code&gt;com.nokia.phone.net&lt;/code&gt; &lt;code&gt;/com/nokia/phone/net&lt;/code&gt; &lt;code&gt;Phone.Net.get_registration_status&lt;/code&gt;. No arguments, reply argument is unsigned int.

====verify security code====
dbus method call to &lt;code&gt;com.nokia.phone.SIM&lt;/code&gt; &lt;code&gt;/com/nokia/phone/SIM/security&lt;/code&gt; &lt;code&gt;Phone.Sim.Security.verify_code&lt;/code&gt;. Arguments are unsigned int, string, string. Return argument is int.

====emergency numbers changed signal====
dbus signal from &lt;code&gt;com.nokia.csd.Call&lt;/code&gt; &lt;code&gt;/com/nokia/csd/call&lt;/code&gt; &lt;code&gt;EmergencyNumbersChanged&lt;/code&gt;. Argument is array of strings.

====modem state changed signal====
dbus signal from &lt;code&gt;com.nokia.phone.SSC&lt;/code&gt; &lt;code&gt;/com/nokia/phone/SSC&lt;/code&gt; &lt;code&gt;modem_state_changed_ind&lt;/code&gt;. Argument is string.

===cui_dial_view===
Implements type &lt;code&gt;CuiDialView&lt;/code&gt; which is a UI widget derived from &lt;code&gt;GtkAlignment&lt;/code&gt;

===cui_dialog===
Implements type &lt;code&gt;CuiDialog&lt;/code&gt; which is a UI widget derived from &lt;code&gt;GtkWindow&lt;/code&gt;

===cui_dialpad===
Implements type &lt;code&gt;CuiDialpad&lt;/code&gt; which is a UI widget derived from &lt;code&gt;GtkTable&lt;/code&gt;

===cui_dtmf_dialog===
Implements type &lt;code&gt;CuiDtmfDialog&lt;/code&gt; which is a UI widget derived from &lt;code&gt;CuiDialog&lt;/code&gt;

===cui_duration_dialog===
Implements type &lt;code&gt;CuiDurationDialog&lt;/code&gt; which is a UI widget derived from &lt;code&gt;CuiDialog&lt;/code&gt;

===cui_errors_disconnect_reason_to_string===
&lt;pre&gt;
error string match
0 = voip_ib_undefined_error
1 = voip_fi_call_summary_identifier_no_answer
2 = voip_fi_call_summary_identifier_not_found
3 = call_fi_call_summary_identifier_incorrect_number
4 = voip_fi_call_summary_identifier_call_rejected
5 = voip_fi_call_summary_identifier_busy
6 = voip_fi_call_summary_identifier_not_authorized
7 = voip_ib_error_in_contact
8 = voip_ib_call_not_supported
9 = voip_ib_not_enough_memory
10 = voip_fi_call_summary_identifier_disconnected
11 = voip_fi_call_summary_identifier_disconnected
12 = call_ib_not_allowed
13 = call_ib_cost_limit_reached&quot;
14 = call_ib_cellular_connection_error
15 = call_ib_fdn_active
16 = call_ib_number_not_in_use
17 = conn_ni_no_sim_card_in
18 = conn_ni_sim_not_accepted
19 = conn_ni_sim_lock
20 = call_ib_cellular_network_busy
21 = conn_ni_no_pin_for_sim
22 = call_ib_als_wrong_line
23 = conn_ni_no_cell_network
24 = call_ib_w_not_supported
25 = pres_ib_must_be_online
26 = addr_ib_contact_is_offline
27 = call_ib_request_rejected
28 = pres_ib_must_be_network_connected
29 = skype_fi_credit_is_low
30 = skype_fi_not_enough_credits
31 = skype_fi_call_old_voicemail_removed
32 = skype_fi_too_short_pstn_number
33 = voip_ni_unable_to_negotiate_codec
&lt;/pre&gt;

===cui_errors_ssc_state_to_error===
Checks for ssc states &quot;&lt;code&gt;online&lt;/code&gt;&quot;, &quot;&lt;code&gt;simless&lt;/code&gt;&quot;, &quot;&lt;code&gt;sim_mode_als2&lt;/code&gt;&quot;, &quot;&lt;code&gt;blocked_sim&lt;/code&gt;&quot;, &quot;&lt;code&gt;tablet_state&lt;/code&gt;&quot;, &quot;&lt;code&gt;sim_locked&lt;/code&gt;&quot;

===cui_errors_tp_reason_to_disconnect_reason===
Details TBA.

===cui_ic_dialog===
Implements type &lt;code&gt;CuiICDialog&lt;/code&gt; which is a UI widget derived from &lt;code&gt;CuiDialog&lt;/code&gt;.

===cui_icon_cache===
Used to store icons for reuse. Uses ,code&gt;gtk_icon_theme_get_default&lt;/code&gt; and &lt;code&gt;gtk_icon_theme_load_icon&lt;/code&gt;.

===cui_idle_view===
Implements type &lt;code&gt;CuiIdleView&lt;/code&gt; which is a UI widget derived from &lt;code&gt;GtkWidget&lt;/code&gt;.

===cui_marshal===
Calls &lt;code&gt;g_value_xxx&lt;/code&gt; functions to move data around

===cui_mce_proxy===
Implements type &lt;code&gt;CuiMceProxy&lt;/code&gt; which is an interface to various MCE signals/calls

====prevent blanking====
dbus method call &lt;code&gt;MCE_PREVENT_BLANK_REQ&lt;/code&gt; as documented in &lt;code&gt;mce-dev&lt;/code&gt;

====activate display====
dbus method call &lt;code&gt;MCE_DISPLAY_ON_REQ&lt;/code&gt; as documented in &lt;code&gt;mce-dev&lt;/code&gt;

====accelerometer disable====
dbus method call &lt;code&gt;MCE_ACCELEROMETER_DISABLE_REQ&lt;/code&gt; as documented in &lt;code&gt;mce-dev&lt;/code&gt;

====device lock state====
dbus method call &lt;code&gt;MCE_DEVLOCK_MODE_GET&lt;/code&gt; as documented in &lt;code&gt;mce-dev&lt;/code&gt;

====accelerometer enable====
dbus method call &lt;code&gt;MCE_ACCELEROMETER_ENABLE_REQ&lt;/code&gt; as documented in &lt;code&gt;mce-dev&lt;/code&gt;

====get device orientation====
dbus method call &lt;code&gt;MCE_DEVICE_ORIENTATION_GET&lt;/code&gt; as documented in &lt;code&gt;mce-dev&lt;/code&gt;

====silent unlock====
dbus method call &lt;code&gt;MCE_TKLOCK_MODE_CHANGE_REQ&lt;/code&gt; as documented in &lt;code&gt;mce-dev&lt;/code&gt;

====device lock mode signal====
dbus signal &lt;code&gt;MCE_DEVLOCK_MODE_SIG&lt;/code&gt; as documented in &lt;code&gt;mce-dev&lt;/code&gt;

===cui_member===
Implements type &lt;code&gt;CuiMember&lt;/code&gt; which is used for unknown use. Details TBA.

===cui_oc_dialog===
Implements type &lt;code&gt;CuiOCDialog&lt;/code&gt; which is a UI widget derived from &lt;code&gt;CuiDialog&lt;/code&gt;.

===cui_rotatable===
Implements type &lt;code&gt;CuiRotatable&lt;/code&gt; which is a UI interface for things that rotate. Key file (setup via &lt;code&gt;g_key_file_new&lt;/code&gt;) is stored in &lt;code&gt;&lt;home dir&gt;/.osso/call-ui.ini&lt;/code&gt;

===cui_settings===
Implements type &lt;code&gt;CuiSettings&lt;/code&gt; used for storing call ui settings

====home gesture disabled====
set gconf path &lt;code&gt;/apps/osso/hildon-desktop/disable_phone_gesture&lt;/code&gt;

====orientation setting====
stored in key file group_name rotation key orientation. Also file call-portrait-override is related to this.

====ssc enabled====
stored in key file &lt;code&gt;&lt;home-dir&gt;/.osso/call-ui.ini&lt;/code&gt; group_name [supplementary] key ssc=1|0. See starhash-enabler.

====keyboard slide open====
gconf location = &lt;code&gt;/system/osso/af/slide-open&lt;/code&gt; gconf notify used to watch that location

===cui_ss_dialog===
UI code for supplementary services dialog

===cui_ss_proxy===
Implements type &lt;code&gt;CuiSSProxy&lt;/code&gt; used for supplementary services proxy. Details TBA.

===cui_timer_label===
Implements type &lt;code&gt;CuiTimerLabel&lt;/code&gt; which is a UI widget derived from GtkAlignment

===cui_tones_ringing_start===
calls &lt;code&gt;com.nokia.HildonSVNotificationDaemon&lt;/code&gt; &lt;code&gt;/com/nokia/HildonSVNotificationDaemon&lt;/code&gt; &lt;code&gt;com.nokia.HildonSVNotificationDaemon.PlayEvent&lt;/code&gt; to play a ring-tone. Specs for this are in &lt;code&gt;hd-sv-notification-daemon.xml&lt;/code&gt; in hildon-home source.

===cui_tones_ringing_stop===
calls &lt;code&gt;com.nokia.HildonSVNotificationDaemon&lt;/code&gt; &lt;code&gt;/com/nokia/HildonSVNotificationDaemon&lt;/code&gt; &lt;code&gt;com.nokia.HildonSVNotificationDaemon.StopEvent&lt;/code&gt; to stop the playing ring-tone. Specs for this are in &lt;code&gt;hd-sv-notification-daemon.xml&lt;/code&gt; in hildon-home source.

===cui_tones_tone_start===
calls &lt;code&gt;com.Nokia.Telephony.Tones&lt;/code&gt; &lt;code&gt;/com/Nokia/Telephony/Tones&lt;/code&gt; &lt;code&gt;com.Nokia.Telephony.Tones.StartEventTone&lt;/code&gt; to play tones. Arguments are unsigned int event, int volume, unsigned int duration.

===cui_tones_tone_stop===
calls &lt;code&gt;com.Nokia.Telephony.Tones&lt;/code&gt; &lt;code&gt;/com/Nokia/Telephony/Tones&lt;/code&gt; &lt;code&gt;com.Nokia.Telephony.Tones.StopTone&lt;/code&gt; to stop the playing tones. No arguments.

===cui_utils_account_get_vcard_field===
calls &lt;code&gt;mc_account_compat_get_profile&lt;/code&gt; to get a profile from a &lt;code&gt;McAccount&lt;/code&gt;. Calls &lt;code&gt;mc_profile_lookup&lt;/code&gt; to get a &lt;code&gt;McProfile&lt;/code&gt; from the profile. Calls &lt;code&gt;mc_profile_get_vcard_field&lt;/code&gt; to get the vcard field from the &lt;code&gt;McProfile&lt;/code&gt;.

===cui_utils_account_is_ring===
Compares the &lt;code&gt;manager_name&lt;/code&gt; field of the &lt;code&gt;McAccount&lt;/code&gt; structure with &quot;&lt;code&gt;ring&lt;/code&gt;&quot;

===cui_utils_account_is_tel===
Compares the &lt;code&gt;protocol_name&lt;/code&gt; field of the &lt;code&gt;McAccount&lt;/code&gt; structure with &quot;&lt;code&gt;tel&lt;/code&gt;&quot;

===cui_utils_avatar_button_new===
UI widget for an avatar button involving a &lt;code&gt;GtkButton&lt;/code&gt;.

===cui_utils_button_new===
UI widget for a button.

===cui_utils_button_set_height_hint===
Sets height of a button UI widget.

===cui_utils_get_current_time===
calls &lt;code&gt;clock_gettime&lt;/code&gt; to obtain the current time

===cui_utils_get_elapsed_time===
calls &lt;code&gt;clock_gettime&lt;/code&gt; to obtain the time and does some math on it

===cui_utils_get_formatted_time===
calls &lt;code&gt;time_format&lt;/code&gt; to get a formatted time

===cui_utils_get_formatted_time_lz===
calls &lt;code&gt;time_format&lt;/code&gt; to get a formatted time

===cui_utils_get_icon_from_account===
calls &lt;code&gt;mc_account_compat_get_profile&lt;/code&gt; to get a profile from a &lt;code&gt;McAccount&lt;/code&gt;. Calls &lt;code&gt;mc_profile_lookup&lt;/code&gt; to get a &lt;code&gt;McProfile&lt;/code&gt; from the profile. Calls &lt;code&gt;mc_profile_get_icon_name&lt;/code&gt; to get the icon name from the &lt;code&gt;McProfile&lt;/code&gt;.

===cui_utils_get_timespec_diff===
Gets the difference between 2 times.

===cui_utils_key_event_to_dtmf_digit===
Takes a &lt;code&gt;GdkEventKey *&lt;/code&gt;, converts it to DTMF tone via &lt;code&gt;gdk_keymap_get_default&lt;/code&gt; then &lt;code&gt;gdk_keymap_lookup_key&lt;/code&gt; then does something to convert it to a DTMF value

===cui_utils_normalize_number===
Does some stuff to a phone number (removing - and ( and ) and space and etc)

===cui_utils_parse_uri===
Parses a URI

===cui_utils_validate_number===
Validates a number

===cui_utils_vcard_find_attribute===
Finds a vcard attribute

===cui_utils_widget_modify_font_size===
Changes the font size of a widget. Uses the font Nokia Sans.

===cui_utils_window_request_orientation===
Uses &lt;code&gt;_HILDON_PORTRAIT_MODE_REQUEST&lt;/code&gt; to request orientation of a window

===cui_utils_window_set_orientation===
Uses &lt;code&gt;_HILDON_PORTRAIT_MODE_REQUEST&lt;/code&gt; to set orientation of a window

===cui_utils_window_set_supports_portrait===
Uses &lt;code&gt;_HILDON_PORTRAIT_MODE_SUPPORT&lt;/code&gt; to set portrait support for a window

===cui_video_frame===
Implements type &lt;code&gt;CuiVideoFrame&lt;/code&gt; which is a UI widget derived from &lt;code&gt;GtkFrame&lt;/code&gt;.

===cui_video_window_get_type===
Implements type &lt;code&gt;CuiVideoWindow&lt;/code&gt; which is a UI widget derived from &lt;code&gt;GtkSocket&lt;/code&gt;.

===rtcom_tp_cli_channel_interface_conference===
Functions for conference calls. Details TBA.

===rtcom_tp_cli_channel_interface_dial_strings===
Functions for dial strings. Details TBA.

===rtcom_tp_cli_channel_interface_emergency===
Functions for emergency calls. Details TBA.

===rtcom_tp_cli_channel_interface_mute===
Functions related to mute. Details TBA.

===rtcom_tp_cli_channel_interface_privacy===
Functions related to privacy. Details TBA.

===rtcom_tp_cli_channel_interface_skype===
Functions related to skype. Details TBA.

===rtcom_tp_cli_channel_interface_tp_conference===
Functions related to conference channels. Details TBA.

===rtcom_tp_cli_channel_type_contact_search===
Functions related to contact search. Details TBA.

===rtcom_tp_cli_connection_interface_contact_info===
Functions related to contact info. Details TBA.

===rtcom_tp_cli_connection_interface_emergency===
Functions related to emergency. Details TBA.

===rtcom_tp_cli_connection_interface_forwarding===
Functions related to forwarding. Details TBA.

===rtcom_tp_cli_connection_interface_privacy===
Functions related to privacy. Details TBA.

===rtcom_tp_cli_connection_interface_skype===
Functions related to skype. Details TBA.

===rtcom_tp_cli_connection_interface_stored_messages===
Functions related to stored messages. Details TBA.

===rtcom_tp_cli_init===
Initialize call UI rtcom stuff

===rtcom_tp_cli_stream_engine===
Functions related to stream engine. Details TBA.

===rtcom_tp_cli_streamhandler_interface_video_control===
Functions related to video control. Details TBA.

===rtcom_tp_iface_quark===
Obtains quarks for various static strings


===rtcom_tp_stream_engine===
Creates object of type &lt;code&gt;RTComTpStreamEngine&lt;/code&gt; and hooks up to dbus interface &lt;code&gt;org.maemo.Telepathy.StreamEngine&lt;/code&gt;

===rtcom_tp_type===
Marshal functions for dbus stuff

[[Category:Development]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Digital compass</title>
    <id>2545</id>
    <revision>
      <id>41471</id>
      <timestamp>2011-01-27T15:53:31Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>better N900 link</comment>
      <text xml:space="preserve">All information pertains to the [[Nokia N900|N900]].

'' See also [[Orrery]], a night-sky viewer which also can be used as a digital compass''

== Why a compass is needed ==

=== Augmented Reality (AR) ===

* GPS gives location of device; compass gives orientation
* Allows pointing the device and getting information relevant to the pointed direction
* E.g. Layar, Wikitude

=== Navigation ===

* Car navigation
* On-foot navigation
** Map rotation

== Connection options ==

* Optical (use one of the cameras, plus image processing)
** Best to use user-facing camera, so the world-facing can be used for capturing the world image for AR
*** Both cameras cannot be used at the same time - and the front camera is lower quality.
* USB
** Unknown if USB host possible.
** Unknown if power is available from USB.
* IrDA
** Is unsupported at this point. The device only has an CIR transmitter.
* Bluetooth
** Bluetooth data
** Bluetooth audio - sending analog signals via Bluetooth microphone for digital signal processing on the N900
*** Possibly a Bluetooth stereo microphone (Sony ECMHW1) could send the Sin,Cos signals from an analog compass sensor (Sensor 1525, www.dinsmoresensors.com) to the N900. Direction would then be determined essentially by arctan2 and possibly low pass filtering for noise reduction.
* FM radio
** Requires headphones be connected
** Signal processing of audio in software
* MicroSD card
** There used to be some GPS:s on Flash-type expansion cards. How about a compass?

== Compass chips or sensors ==

* Honeywell HMC5843
** I2C interface
** Magnetometer requires vector math on client side for interpretation, see OpenMoko i2c compass project for more info
* Dinsmore analog

== Ready-built compass modules ==

* Ocean Server OS4000
* Ocean Server OS5000
** USB and RS232 interface

== Microcontrollers ==

== Converters ==

* I2C to RS232
** http://www.gedanken.demon.co.uk/rs232-converters/i2c.html
** http://www.i2cchip.com/
* RS232 to Bluetooth
** Sparkfun BlueSmiRF Gold
* I2C to USB
** http://www.harbaum.org/till/i2c_tiny_usb/
* I2C to Bluetooth
** http://www.emv-electronics.com/de/intro/i2cbusadapter.htm (seems unavailable for purchase)

== Designs ==

=== Optical image processing of compass ===

* Periscope-like mirror

=== Ready-made RS232 compass modules with RS232-Bluetooth conversion ===

=== Custom board designs ===

This MIT project from 2002 designs a custom bluetooth digital compass http://web.mit.edu/dtfg/www/research/compass/index.html

=== Attaching another compass and Bluetooth/WiFi capable phone ===

Instead of spending money and time to buy all necessary parts and develop a custom solution, buy the cheapest used Android phone on eBay (G1/Dream, Tattoo?), attach it to the back of N900 with two elastic bands, but without covering the camera lens. Then create an App on the Android phone that just transmits compass coordinates via Bluetooth/WiFi.

== Alternatives to a digital compass ==

* Use GPS motion to determine direction
** Only useful for navigation, not AR
** Does not work if standing still
** Ignores the orientation of the device (e.g. if you're walking backwards the map will be upside down)
* Use image processing for AR
** E.g. artoolkit
** Still you cannot get absolute orientation of device
* Initialized orientation + delta orientations (dead reckoning)
** Maybe you can initialize the device to a known orientation (e.g. straight north), then use optical flow and/or accelerometer data to extrapolate subsequent orientations
* Optical compass + manually dragging an on-screen compass to match
** Not automatic so some AR apps like games might not work
** But for navigation or rotating maps, it could work: just glance at the optical compass, then drag the map icon to match the orientation.
* Combined GPS/optical compass for daytime use:
** Use GPS location and time info to calculate current sun location (The orrery app will do this, for the sun, moon, planets etc)
** Let user optically align to visible sun

[[Category:Brainstorm]]
[[Category:N900 Additional Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>Digital compass howto</title>
    <id>3492</id>
    <revision>
      <id>29995</id>
      <timestamp>2010-02-22T16:01:24Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Digital compass]]</comment>
      <text xml:space="preserve">#REDIRECT [[Digital compass]]</text>
    </revision>
  </page>
  <page>
    <title>Disable The Ambient Light Sensor</title>
    <id>4746</id>
    <revision>
      <id>41933</id>
      <timestamp>2011-02-22T11:00:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Disable The Ambient Light Sensor]] moved to [[Disable the ambient light sensor]]: sentence capitalization for page titles</comment>
      <text xml:space="preserve">#REDIRECT [[Disable the ambient light sensor]]</text>
    </revision>
  </page>
  <page>
    <title>Disable the ambient light sensor</title>
    <id>4731</id>
    <revision>
      <id>45856</id>
      <timestamp>2011-11-26T13:04:51Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45855 by [[Special:Contributions/109.104.184.132|109.104.184.132]] ([[User talk:109.104.184.132|Talk]]) SPAM</comment>
      <text xml:space="preserve">The [[Nokia N900|N900]] contains a [http://www.taosinc.com/productfamily.aspx?sel=als Taos TSL2563]&lt;ref&gt;http://natisbad.org/N900/n900-commented-hardware-specs.html&lt;/ref&gt; Ambient Light Sensor (ALS). This light sensor is used to auto-adjust the screen brightness relative to your preferred brightness setting. Some users may find this auto-adjusting to be annoying, when the screen dims every time you hold your finger over the screen, or trying to use the phone outdoors.

==Prerequisites==
You will need to install the [[Root access#rootsh|rootsh]] package.

==Disabling the ALS==
[http://talk.maemo.org TMO] user dr_frost_dk discovered&lt;ref&gt;http://talk.maemo.org/showpost.php?p=947958&amp;postcount=97&lt;/ref&gt; a simple way to disable the ALS:
 sudo gainroot
 sed -ie 's/brightness-als/brightness-simple/' /etc/mce/mce.ini
 killall mce
No reboot is required for the new setting to take effect.

Please note that the actual ALS device is not disabled; it still functions and can be used by other applications. This setting only disables its influence on the screen's backlight.

==Re-enabling the ALS==
If you want to change back to the original setting:
 sudo gainroot
 sed -ie 's/brightness-simple/brightness-als/' /etc/mce/mce.ini
 killall mce
No reboot is required for the new setting to take effect.

The backlight will once again be influenced by the ALS.

==References==
&lt;references /&gt;

[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Distcc</title>
    <id>4413</id>
    <revision>
      <id>37964</id>
      <timestamp>2010-08-20T08:38:30Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* References */ better author link</comment>
      <text xml:space="preserve">For those who have tried to compile on the [[Nokia N900|N900]], you might notice it is a bit slow since an ARM CPU is great for general use, but not---for example---compiling a kernel. It, however, is often useful to compile natively on the architecture you will be using. Originally this process was used to configure a distcc farm for the mini2440 ARM(el) board---and this is directly applicable to the N900 platform---and it works on my phone!

This assumes familiarity with &lt;code&gt;qemu-system-arm&lt;/code&gt;, &lt;code&gt;gcc&lt;/code&gt; (and possibly ccache+distcc), chroot installs, bridged networking and perhaps a few other concepts.

Where possible I distinguish the different system root-prompts as:
 n900-chroot#  The easydebian chroot prompt (you can ssh in too if you like)
 host-root#    The high-power desktop system to run the ARM VM's under qemu
 guest-root#   The ARM VM's themselves.

== Install Easy Debian ==

Before continuing, you will need to install [[Easy Debian]] on your phone. This is the fastest way to get a working native gcc environment on the N900. Once it is installed, install &lt;code&gt;ccache&lt;/code&gt;, &lt;code&gt;distcc&lt;/code&gt;, and &lt;code&gt;build-essential&lt;/code&gt;:

 n900-chroot# apt-get install ccache distcc build-essential

Then configure &lt;code&gt;/usr/bin/gcc-ccache&lt;/code&gt; the same way as [[#Configure distcc and ccache|below]] in the easydebian chroot.

== Install a few QEMU VMs ==

On your host computer (not the phone), download and install the Lenny armel qcow2, vmlinuz and initrd images from here:

[http://people.debian.org/~aurel32/qemu/armel/ Lenny armel qemu images]

I used the _small version so I can be as specific as possible with packages. I assume you use the _small version from here.

Install &lt;code&gt;qemu-arm&lt;/code&gt; on your system, usually:
 apt-get install qemu
and boot the VM:
&lt;pre&gt;
host-root# qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.26-1-versatile \
   -initrd initrd.img-2.6.26-1-versatile \
   -hda debian_lenny_armel_small.qcow2 \
   -append &quot;root=/dev/sda1&quot;
&lt;/pre&gt;

== Install the required packages on the VM ==

First update &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; for the country of your choice (defaults to .de). I recommend commenting the volatile repo unless you intend to use it. Then add the packages:

 guest-root# apt-get update
 guest-root# apt-get upgrade
 guest-root# apt-get install build-essential ccache distcc

== Configure distcc and ccache ==

&lt;ol&gt;
&lt;li&gt;
Add the hosts to &lt;code&gt;/etc/distcc/hosts&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
Configure &lt;code&gt;/etc/default/distcc&lt;/code&gt; with at least:
&lt;pre&gt;
STARTDISTCC=&quot;true&quot;
# configure your subnet
ALLOWEDNETS=&quot;127.0.0.1 192.168.0.0/16&quot;
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
create a ccache/distcc wrapper
&lt;pre&gt;
root# mv /usr/bin/gcc /usr/bin/gcc-orig
root# cat&lt;&lt;EOT &gt; /usr/bin/gcc-ccache
#!/bin/sh
export CCACHE_PREFIX=distcc
# List the distcc hosts here; I had trouble with /etc/distcc/hosts working
export DISTCC_HOSTS='192.168.99.101 192.168.99.102 192.168.99.103'
exec ccache gcc-orig &quot;$@&quot;
EOT
root# chmod 755 /usr/bin/gcc-ccache
&lt;/pre&gt;
Be sure to do this on the N900 too!
&lt;/li&gt;
&lt;li&gt;
link the wrapper as the new gcc:
&lt;pre&gt;
root# ln -s /usr/bin/gcc-ccache /usr/bin/gcc
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
test the distcc-ccache-gcc wrapper:
&lt;pre&gt;
root# gcc -version
gcc-orig: no input files
distcc[2486] ERROR: compile (null) on localhost failed
&lt;/pre&gt;
The distcc error is expected
&lt;/li&gt;
&lt;/ol&gt;

== Configure the network to DHCP ==

 guest-root# echo -e &quot;auto eth0\niface eth0 inet dhcp&quot; &gt;&gt; /etc/network/interfaces
 guest-root# echo -e &quot;auto eth1\niface eth1 inet dhcp&quot; &gt;&gt; /etc/network/interfaces

== Halt the vm and launch multiple instances ==

&lt;ol&gt;
&lt;li&gt;
Halt the guest and close the window:
 guest-root# shutdown -h now
&lt;/li&gt;
&lt;li&gt;
Configuring a network bridge is beyond the scope of this document, but roughly, this is my config on the *host* system. Here we assume that the N900 can route to the ARM VM farm (my network)---or that the bridge lives on the same network (more common).
&lt;pre&gt;
 root# cat&lt;&lt;EOT &gt; /usr/local/bin/qemu-ifup-br0
 #!/bin/sh
 iface=&quot;$1&quot;
 bridgeName=`basename &quot;$0&quot; | cut -f3 -d-`
 echo &quot;bridgeName=$bridgeName iface=$1&quot;
 /sbin/ifconfig &quot;$iface&quot; 0.0.0.0 up
 /usr/sbin/brctl addif &quot;$bridgeName&quot; &quot;$iface&quot;
 EOT
 chmod 755 /usr/local/bin/qemu-ifup-br0

 host-root# brctl addbr br0
 host-root# brctl addif br0 eth0
 host-root# ifconfig br0 192.168.99.222
 host-root# ip route replace default via 192.168.99.1
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Configure your local dhcp server to hand out 192.168.99.101--103 for mac addresses 00:16:3e:00:00:01--03. If you are using ISC's dhcpd, the config looks something like this:
&lt;pre&gt;
       host arm-vm1 {
               hardware ethernet 00:16:3e:00:00:01;
               fixed-address 192.168.99.101;        }
       host arm-vm2 {
               hardware ethernet 00:16:3e:00:00:02;
               fixed-address 192.168.99.102;        }
       host arm-vm3 {
               hardware ethernet 00:16:3e:00:00:03;
               fixed-address 192.168.99.103;        }
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Launch the vm's:
&lt;pre&gt;
 host-root#  for arm in 1 2 3; do qemu-system-arm -name armvm$arm \
    -M versatilepb -kernel vmlinuz-2.6.26-1-versatile \
    -initrd initrd.img-2.6.26-1-versatile \
    -hda debian_lenny_armel_small.qcow2 \
    -append &quot;root=/dev/sda1&quot; \
    -net nic,macaddr=00:16:3e:00:00:0$arm \
    -net tap,script=/usr/local/bin/qemu-ifup-br0 \
    -daemonize \
    -snapshot ; done
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
The bridge listing should look something like this:
&lt;pre&gt;
 host-root# brctl show
 br0		8000.001cc0b1dadf	no		eth0
 							tap1
 							tap2
 							tap3
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

== Run a distributed build on your N900 ==

&lt;ol&gt;
&lt;li&gt;
Download a recent vanilla kernel:
&lt;pre&gt;
 cd /usr/src
 wget -O- http://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2 | tar xjv
 cd linux-2.6.34
    [...]
 make -j3 defconfig
 *** Default configuration is based on 'versatile_defconfig'
 #
 # configuration written to .config
 #
 make -j4
    [...]
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Open top and watch your ARM VM's spin at 100% CPU:
&lt;pre&gt;
 USER      PR  NI  VIRT  RES  SHR S %CPU %MEM COMMAND                          
 root      20   0  556m 362m 1492 R  101  6.0 qemu-system-arm -name armel-vm1 ...
 root      20   0  539m 278m 1472 R  101  4.6 qemu-system-arm -name armel-vm2 ...
 root      20   0  530m 216m 1472 R   99  3.6 qemu-system-arm -name armel-vm3 ...
 root      20   0  538m 208m 1472 R  101  3.5 qemu-system-arm -name armel-vm4 ...
&lt;/pre&gt;
&lt;/li&gt;&lt;/ol&gt;

As you can see, I have 4 VM's on my system, one for each core on the i7. Since the ARM architecture under qemu (currently) only supports a single core, you need to run a VM for each core.

You *could* configure distcc+ccache to cross-compile to armel on your native x86/64 hardware, however, that is a different tutorial (it would probably be much faster too, but perhaps less flexible). This might be extended to run on the N900's localhost to spin the native 600 MHz CPU too---and I leave this as an exercise for the reader.

== References ==

* [http://talk.maemo.org/showthread.php?p=792606 Click here for the forum thread on this subject]
* [[User:Ewheelerinc|Original author]]

[[Category:N900]]
[[Category:Software]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Docs:Wanted</title>
    <id>208</id>
    <revision>
      <id>1377</id>
      <timestamp>2008-06-11T16:57:13Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Docs:Wanted]] moved to [[Documentation wishlist]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation wishlist]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation</title>
    <id>2152</id>
    <revision>
      <id>48815</id>
      <timestamp>2012-07-25T13:38:55Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>Undo revision 48798 by [[Special:Contributions/188.143.232.12|188.143.232.12]] ([[User talk:188.143.232.12|Talk]])</comment>
      <text xml:space="preserve">== Maemo 5 ==

* Documentation in the wiki:
**[[/Maemo 5 Final SDK|Maemo 5 Final SDK]]
**[[/Maemo 5 Developer Guide|Maemo 5 Developer Guide]]
**[[/devtools/maemo5|Maemo 5 Developer Tools]]
** [https://vcs.maemo.org/svn/maemoexamples/trunk/ Code sample library]
**[[/Maemo 5 Final SDK Installation|Maemo 5 Final SDK Installation Instructions]]
** [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5|Maemo Flasher-3.5 Tutorial]]
** [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK Virtual Images|Maemo SDK Virtual Image Tutorial]]
** [[/Maemo PC Connectivity Tutorial|Maemo PC Connectivity Tutorial]]
** [[/Maemo For Symbian Developers Guide|Maemo For Symbian Developers Guide]]
** [[/Maemo Eclipse Tutorial|Maemo Eclipse Tutorial]]
** [[/Maemo Documentation Guidelines|Maemo Documentation Guidelines]]
* Further information:
**[http://maemo.org/development/sdks/maemo_5_api_documentation/ Maemo 5 API reference]
** [http://www.forum.nokia.com/info/sw.nokia.com/id/0ea5ec64-2d35-4363-94c0-dd2560c6524b/Get_started_with_Maemo_5.html Get Started with Maemo 5 | Forum Nokia]
**[[Open development/Maemo_roadmap/Fremantle|Fremantle roadmap]]
** [[Maemo 5 Clutter performance]]
* Maemo 5 Final SDK release source code - http://repository.maemo.org/pool/maemo5.0/free/

* [[Legacy Maemo 5 Documentation]] includes the superseded [[Legacy_Maemo_5_Documentation/Human_Interface_Guidelines|Human Interface Guidelines]] and the [[Legacy_Maemo_5_Documentation/Graphical_UI_Tutorial|Graphical UI Tutorial]]
* [[/devtools|Developer tools]] for Maemo development
* [[University Course]] (in progress): A syllabus for teaching Qt as an intensive two-week course.

== Tasks and use-cases ==

We are collecting suggestions for specific use-cases and tasks which should be documented in detail. Contribute your suggestions on [http://talk.maemo.org/showthread.php?t=44135 this Talk thread] or on the [https://lists.maemo.org/mailman/listinfo/maemo-community maemo-community mailing list]. See [[Documentation wishlist | the list of current suggestions]].

* Use the [[/Use case template]] to document new use-cases

[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo5 Final Installation</title>
    <id>2570</id>
    <revision>
      <id>19365</id>
      <timestamp>2009-10-06T07:24:00Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Documentation/Maemo5 Final Installation]] moved to [[Documentation/Maemo 5 Final SDK Installation]]: proper wording</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Final SDK Installation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide</title>
    <id>2126</id>
    <revision>
      <id>46523</id>
      <timestamp>2012-01-27T02:16:28Z</timestamp>
      <contributor>
        <ip>118.114.77.49</ip>
      </contributor>
      <comment>/* INDEX */</comment>
      <text xml:space="preserve">__NOTOC__

The Maemo 5 Developer Guide strives to provide an overall picture of the maemo 5 platform for developers wishing to create applications for maemo devices. These devices run a Linux-based operating system on [[:wikipedia:ARM architecture|ARM architecture]].  The maemo SDK is currently provided natively for desktop Linux distributions such as [[Debian]] and [[:wikipedia:Ubuntu|Ubuntu]]. 

This is still a draft version and does not cover all aspects of the platform yet. These pages will be updated as and when documentation is ready internally. 

&lt;hr&gt;

==INDEX==
*[[{{PAGENAME}}/Preface|&lt;font color=green&gt;Preface&lt;/font&gt;]]
*[[{{PAGENAME}}/Development_Environment|&lt;font color=green&gt;Development Environment&lt;/font&gt;]]
**[[{{PAGENAME}}/Development_Environment/Maemo_SDK| Software Development Kit]]
**[[{{PAGENAME}}/Development_Environment/Maemo_Programming_Environments| Programming Environments]]
**[[Documentation/Maemo PC Connectivity Tutorial|PC Connectivity]]
**[[{{PAGENAME}}/Development_Environment/Maemo_Flasher-3.5|Flasher-3.5]]
**[[{{PAGENAME}}/Development_Environment/Maemo_SDK_Virtual_Images| SDK Virtual Images]]
**[[Eclipse integration]]
*[[{{PAGENAME}}/Architecture|&lt;font color=green&gt;Architecture&lt;/font&gt;]]
** [[{{PAGENAME}}/Architecture/Changes | Architecture Changes Since Maemo 4]]
**[[{{PAGENAME}}/Architecture/Top Level Architecture|Top Level Architecture]]
**[[{{PAGENAME}}/Architecture/Core Domain|Core]]
** [[{{PAGENAME}}/Architecture/UI Framework | UI Framework ]]
**[[{{PAGENAME}}/Architecture/Multimedia Domain|Multimedia]]
**[[{{PAGENAME}}/Architecture/RTCOM | RTCOM ]]
**[[{{PAGENAME}}/Architecture/System_Software|System Software]]
**[[{{PAGENAME}}/Architecture/Connectivity|Connectivity]]
**[[{{PAGENAME}}/Architecture/Data Management|Data Management]]
**[[{{PAGENAME}}/Architecture/Imaging_and_Sharing | Imaging and Sharing]]
*[[{{PAGENAME}}/GNU_Build_System|&lt;font color=green&gt;GNU Build System&lt;/font&gt;]]
* Hildon UI Guides from Forum Nokia 
**These guides deprecate HIG below
**[http://www.forum.nokia.com/info/sw.nokia.com/id/e778ba1f-2507-4672-be45-798359a3aea7/Fremantle_Master_Layout_Guide.html Master Layout Guide]
**[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]
**[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]
**[http://www.forum.nokia.com/info/sw.nokia.com/id/97e9b8e0-904c-4141-bb8a-91d4f519735f/Maemo_5_Desktop_Widget_UI_Guidelines.html Maemo 5 Desktop Widget UI Guidelines]
**[http://www.forum.nokia.com/info/sw.nokia.com/id/75994a4a-382b-4a60-aaf2-2446f9e8c4f3/Web_Design_Guidelines_for_the_Nokia_N900.html Web Design Guidelines for the Nokia N900]
*[[Legacy Maemo 5 Documentation/Human Interface Guidelines|&lt;font color=&quot;green&quot;&gt;Human Interface Guidelines (deprecated by Hildon UI Guides above)&lt;/font&gt;]]
**[[Legacy Maemo 5 Documentation/Human Interface Guidelines/Introduction|Introduction]]
**[[Legacy Maemo 5 Documentation/Human Interface Guidelines/Usability Principles|Usability Principles]]
**[[Legacy Maemo 5 Documentation/Human Interface Guidelines/Device Orientation| Device Orientation]]
**[[Legacy Maemo 5 Documentation/Human Interface Guidelines/Windows|Windows]]
**[[Legacy Maemo 5 Documentation/Human Interface Guidelines/Notes and Banners|Notes and Banners]]
**[[Legacy Maemo 5 Documentation/Human Interface Guidelines/Dialogs|Dialogs]]
**[[Legacy Maemo 5 Documentation/Human Interface Guidelines/View Menu|View Menu]]
**[[Legacy Maemo 5 Documentation/Human Interface Guidelines/Hildonizing an Interface|Hildonizing an Interface]]
**[[Legacy Maemo 5 Documentation/Human Interface Guidelines/Controls|Controls]]
**[[Legacy Maemo 5 Documentation/Human Interface Guidelines/User Input|User Input]]
**[[Legacy Maemo 5 Documentation/Human Interface Guidelines/Icons|Icons]]
**[[Legacy Maemo 5 Documentation/Human Interface Guidelines/Reality Checks|Reality Checks]]
**[[GUI Design Template]]
**[[Legacy Maemo 5 Documentation/Desktop Widget UI Guidelines|Desktop Widget UI Guidelines]]
*[[Legacy Maemo 5 Documentation/Graphical UI Tutorial|&lt;font color=&quot;green&quot;&gt;Graphical UI Tutorial&lt;/font&gt;]]
**[[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Introduction|Introduction]]
**[[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Getting started|Getting Started]]
**[[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Windows and dialogs|Windows and Dialogs]]
**[[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Menus|Menus]]
**[[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Toolbars|Toolbars]]
**[[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Navigation|Navigation]]
**[[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Data selection|Data Selection]]
**[[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Controls|Controls]]
**[[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Additions to GTK+|Additions to GTK+]]
**[[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Utilities|Utilities]]
*[[{{PAGENAME}}/Application_Development|&lt;font color=green&gt;Application Development&lt;/font&gt;]]
**[[{{PAGENAME}}/Application_Development/Writing_Desktop_Widgets|Writing Desktop Widgets (Home and Status Menu)]]
**[[{{PAGENAME}}/Application_Development/Writing_Control_Panel_Applets|Writing Control Panel Applets]]
**[[{{PAGENAME}}/Application_Development/Maemo_Localization|Maemo Localization]]
** [[{{PAGENAME}}/Application Development/MIME_type_mapping | MIME type mapping ]]
** [[{{PAGENAME}}/Application Development/LibOSSO_library | LibOSSO library ]]
** [[{{PAGENAME}}/Application Development/Writing_a_new_maemo_application | Writing a new Maemo application]]
*[[{{PAGENAME}}/DBus|&lt;font color=green&gt;D-Bus&lt;/font&gt;]]
**[[{{PAGENAME}}/DBus/DBus_Basics|D-Bus Basics]]
**[[{{PAGENAME}}/DBus/Using GLib Wrappers For D-Bus|Using GLib Wrappers For D-Bus]]
**[[{{PAGENAME}}/DBus/Implementing and Using D-Bus Signals|Implementing and Using D-Bus Signals]]
**[[{{PAGENAME}}/DBus/Asynchronous_Glib/D-Bus|Asynchronous Glib/D-Bus]]
**[[{{PAGENAME}}/DBus/D-Bus_Server_Design_Issues|D-Bus Server Design Issues]]
*[[{{PAGENAME}}/Using_Multimedia Components|&lt;font color=green&gt; Using Multimedia Components&lt;/font&gt;]]
**[[{{PAGENAME}}/Using Multimedia Components/Introduction|Introduction]]
**[[{{PAGENAME}}/Using Multimedia Components/Getting Started with Multimedia|Getting Started with Multimedia]]
**[[{{PAGENAME}}/Using Multimedia Components/Media Application Framework (MAFW)|Media Application Framework (MAFW)]]
**[[{{PAGENAME}}/Using Multimedia Components/Camera API Usage|Camera API Usage]]
**[[{{PAGENAME}}/Using Multimedia Components/FM Transmitter API Usage|FM Transmitter API Usage]]
**[[{{PAGENAME}}/Using Multimedia Components/Using Games Start-up Screen|Using Games Start-up Screen]]
*[[{{PAGENAME}}/Using Connectivity Components|&lt;font color=green&gt;Using Connectivity Components&lt;/font&gt;]]
**[[{{PAGENAME}}/Using Connectivity Components/Introduction|Introduction]]
**[[{{PAGENAME}}/Using Connectivity Components/Maemo Connectivity|Maemo Connectivity]]
**[[{{PAGENAME}}/Using Connectivity Components/Implementing Custom Connection Managers|Implementing Custom Connection Managers]]
**[[{{PAGENAME}}/Using Connectivity Components/Using Location API|Using Location API]]
*[[{{PAGENAME}}/Using_Generic Platform Components|&lt;font color=green&gt;Using Generic Platform Components&lt;/font&gt;]]
** [[{{PAGENAME}}/Using Generic Platform Components/GnomeVFS File System | GnomeVFS File System]]
** [[{{PAGENAME}}/Using Generic Platform Components/Application Preferences-Gconf | Application Preferences-Gconf]]
** [[{{PAGENAME}}/Using Generic Platform Components/Using Backup Application|Using Backup Application]]
** [[{{PAGENAME}}/Using Generic Platform Components/Extending Hildon Input Methods | Extending Hildon Input Methods]]
**[[{{PAGENAME}}/Using Generic Platform Components/Using HAL|Using HAL]]
**[[{{PAGENAME}}/Using Generic Platform Components/Alarm Framework|Alarm Framework]]
**[[{{PAGENAME}}/Using Generic Platform Components/Using Address Book API|Using Address Book API]]
*[[{{PAGENAME}}/Using Data Sharing|&lt;font color=green&gt;Using Data Sharing&lt;/font&gt;]]
**[[{{PAGENAME}}/Using Data Sharing/Sharing Plug-in|Using &quot;Share/Send Via&quot; and Sharing Plug-ins]]
** [[{{PAGENAME}}/Using_Data_Sharing/Clipboard_Usage | Clipboard Usage]]
*[[{{PAGENAME}}/Packaging, Deploying and Distributing|&lt;font color=green&gt;Packaging, Deploying and Distributing&lt;/font&gt;]]
**[[{{PAGENAME}}/Packaging,_Deploying_and_Distributing/Installing_under_opt_and_MyDocs|Installing under opt and MyDocs]]
*[[{{PAGENAME}}/Porting_Software|&lt;font color=green&gt;Porting Software&lt;/font&gt;]]
**[[{{PAGENAME}}/Porting_Software/Introduction| Introduction]]
**[[{{PAGENAME}}/Porting_Software/Redesigning From Maemo 4 to Maemo 5|Redesigning From Maemo 4 to Maemo 5]]
**[[{{PAGENAME}}/Porting_Software/Porting MaemoPad|Porting MaemoPad from Diablo to Fremantle]]
**[[{{PAGENAME}}/Porting_Software/Migration|Migration to Hildon 2.2]]
**[[{{PAGENAME}}/Porting_Software/Porting_Existing_GTK%2B_Application_to_Maemo_5|Porting Existing GTK+2 Application to Maemo 5]]
**[[{{PAGENAME}}/Porting_Software/Scaling_Fixed_Size_Windows|Scaling Fixed-size Windows]]
**[[{{PAGENAME}}/Porting_Software/Adapting_UI_Inputs|Adapting UI Inputs for a limited keyboard]]
[[Category:Development]]
*[[{{PAGENAME}}/Kernel_and_Debugging_Guide|&lt;font color=green&gt;Kernel and Debugging Guide&lt;/font&gt;]]
**[[{{PAGENAME}}/Kernel_and_Debugging_Guide/Introduction|Introduction]]
**[[{{PAGENAME}}/Kernel_and_Debugging_Guide/Maemo_Kernel_Guide|Kernel Guide]]
**[[{{PAGENAME}}/Kernel_and_Debugging_Guide/Maemo_Debugging_Guide|Debugging Guide]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/</title>
    <id>2745</id>
    <revision>
      <id>20243</id>
      <timestamp>2009-10-16T15:24:32Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>Add redirect for incorrect URL</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development</title>
    <id>2153</id>
    <revision>
      <id>37818</id>
      <timestamp>2010-08-16T13:37:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add link</comment>
      <text xml:space="preserve">*[[{{PAGENAME}}/Writing_Desktop_Widgets|Writing Desktop Widgets]]
*[[{{PAGENAME}}/Writing_Control_Panel_Applets|Writing Control Panel Applets]]
*[[{{PAGENAME}}/Maemo_Localization|Maemo Localization]]
*[[{{PAGENAME}}/MIME_type_mapping|MIME type mapping ]]
*[[{{PAGENAME}}/LibOSSO_library|LibOSSO library ]]
*[[{{PAGENAME}}/Writing a new maemo application|Writing a new Maemo application]]


Sample code using Hildon widgets can be found in the Debian binary package [http://maemo.org/packages/view/libhildon1-examples/ libhildon1-examples] available in the SDK repository.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/Controls</title>
    <id>2291</id>
    <revision>
      <id>28127</id>
      <timestamp>2010-02-02T15:34:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Controls]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/Controls</title>
    <id>2291</id>
    <revision>
      <id>28127</id>
      <timestamp>2010-02-02T15:34:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Controls]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/Data selection</title>
    <id>2290</id>
    <revision>
      <id>28128</id>
      <timestamp>2010-02-02T15:34:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Data selection]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/Getting started</title>
    <id>2285</id>
    <revision>
      <id>28129</id>
      <timestamp>2010-02-02T15:35:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Getting started]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/Getting started</title>
    <id>2285</id>
    <revision>
      <id>28129</id>
      <timestamp>2010-02-02T15:35:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Getting started]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/Installing under opt and MyDocs</title>
    <id>2402</id>
    <revision>
      <id>17780</id>
      <timestamp>2009-09-09T11:11:29Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Application Development/Installing under opt and MyDocs]] moved to [[Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing/Installing under opt and MyDocs]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing/Installing under opt and MyDocs]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/Introduction</title>
    <id>2284</id>
    <revision>
      <id>28130</id>
      <timestamp>2010-02-02T15:35:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Introduction]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/LibOSSO library</title>
    <id>2931</id>
    <revision>
      <id>38285</id>
      <timestamp>2010-09-02T10:43:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add ==Further reading==</comment>
      <text xml:space="preserve">LibOSSO is the basic library, containing required and helpful functions for Maemo applications. The [http://maemo.org/api_refs/5.0/5.0-final/libosso/ full API documentation of LibOSSO is available] in Doxygen format.

== Maemo initialization ==

All Maemo applications must be initialized correctly, or they do not work as expected. One symptom of missing initialization is that application starts from Task Navigator, but closes automatically after few seconds.

Initializing application is performed with &lt;code&gt;osso_initialize()&lt;/code&gt; function. With this function, the application connects to D-Bus session bus and system bus. &lt;code&gt;osso_initialize()&lt;/code&gt; function should only be called once in the application, and the structure of type &lt;code&gt;osso_context_t&lt;/code&gt; type that is returned should be stored for later use. First parameter of the function is the application D-Bus name, used also in application D-Bus service file. Second parameter is the application version as a string. Third is the activation type, with &lt;code&gt;TRUE&lt;/code&gt; the library assumes that the application binary has been launched by the D-Bus daemon, and thus connects to the D-Bus activation bus. Fourth parameter is the GLib main-loop context to connect to, &lt;code&gt;NULL&lt;/code&gt; should be used for the default context.

&lt;source lang=&quot;c&quot;&gt;
osso_context_t * osso_initialize(const gchar *application, const gchar* version, gboolean activation, GMainContext *context)
&lt;/source&gt;

When the application is closing, &lt;code&gt;osso_deinitialize&lt;/code&gt; function should be called to close the message bus connection and free all memory allocated by the library.

&lt;source lang=&quot;c&quot;&gt;
void osso_deinitialize(osso_context_t *osso)
&lt;/source&gt;

Below is an example ([https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-examples/example_libosso.c example_libosso.c]) of this; if the initialization does not succeed, the function returns &lt;code&gt;NULL&lt;/code&gt;.

&lt;source lang=&quot;c&quot;&gt;
#define OSSO_EXAMPLE_NAME    &quot;example_libosso&quot;
#define OSSO_EXAMPLE_SERVICE &quot;org.maemo.&quot;OSSO_EXAMPLE_NAME
/* ... */
    osso_context_t *osso_context;
    /* ... */
    /* Initialize maemo application */
    osso_context = osso_initialize(OSSO_EXAMPLE_SERVICE, &quot;0.0.1&quot;, TRUE, NULL);
    /* Check that initialization was ok */
    if (osso_context == NULL) {
        return OSSO_ERROR;
    }
    /* ... */
    /* Deinitialize OSSO */
    osso_deinitialize(osso_context);
&lt;/source&gt;

== Remote process messages ==

System wide messages in Maemo platform are handled with D-Bus system messaging, which is a Remote Process Communication (RPC) method. LibOSSO has own wrappers to normal D-Bus functions to make usage simpler and to maintain backward compatibility. By using D-Bus, applications can send messages from one process to another.

Callback function receiving the messages can be as follows ([https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-examples/example_libosso.c example_libosso.c]), where &lt;code&gt;AppData&lt;/code&gt; structure contains the initialized &lt;code&gt;osso_context&lt;/code&gt;:

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon/hildon-program.h&gt;
#include &lt;hildon/hildon-banner.h&gt;
#include &lt;gtk/gtk.h&gt;
#include &lt;libosso.h&gt;
#define OSSO_EXAMPLE_NAME    &quot;example_libosso&quot;
#define OSSO_EXAMPLE_SERVICE &quot;org.maemo.&quot;OSSO_EXAMPLE_NAME
#define OSSO_EXAMPLE_OBJECT  &quot;/org/maemo/&quot;OSSO_EXAMPLE_NAME
#define OSSO_EXAMPLE_IFACE   &quot;org.maemo.&quot;OSSO_EXAMPLE_NAME
/* ... */
/* Application UI data struct */
typedef struct _AppData AppData;
struct _AppData {
    HildonProgram *program;
    HildonWindow *window;
    osso_context_t *osso_context;
};
/* ... */
/* Callback for normal D-Bus messages */
gint dbus_req_handler(const gchar * interface, const gchar * method,
                      GArray * arguments, gpointer data,
                      osso_rpc_t * retval)
{
    AppData *appdata;
    appdata = (AppData *) data;
    osso_system_note_infoprint(appdata-&gt;osso_context, method, retval);
    osso_rpc_free_val(retval);
    return OSSO_OK;
}
&lt;/source&gt;

To attach this callback function to receive all the normal D-Bus messages to the application, use the &lt;code&gt;osso_rpc_set_default_cb_f&lt;/code&gt; function as follows:

&lt;source lang=&quot;c&quot;&gt;
int main(int argc, char *argv[])
{
    osso_return_t result;

    /* ... */
    /* Add handler for session bus D-Bus messages */
    result = osso_rpc_set_cb_f(appdata-&gt;osso_context,
                               OSSO_EXAMPLE_SERVICE,
                               OSSO_EXAMPLE_OBJECT,
                               OSSO_EXAMPLE_IFACE,
                               dbus_req_handler, appdata);

    if (result != OSSO_OK) {
        g_print(&quot;Error setting D-Bus callback (%d)\n&quot;, result);
        return OSSO_ERROR;
    }
    /* ... */

    /* Deinitialize OSSO */
    osso_deinitialize(osso_context);
}
&lt;/source&gt;

Now the application is ready to receive D-Bus messages. Whenever it receives one, the &lt;code&gt;dbus_req_handler()&lt;/code&gt; function is called to process the message. Another test application ([https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-examples/example_message.c example_message.c]), can send the ''HelloWorld'' that this application was designed to handle, as follows:

&lt;source lang=&quot;c&quot;&gt;
/* ... */
#define OSSO_EXAMPLE_NAME    &quot;example_libosso&quot;
#define OSSO_EXAMPLE_SERVICE &quot;org.maemo.&quot;OSSO_EXAMPLE_NAME
#define OSSO_EXAMPLE_OBJECT  &quot;/org/maemo/&quot;OSSO_EXAMPLE_NAME
#define OSSO_EXAMPLE_IFACE   &quot;org.maemo.&quot;OSSO_EXAMPLE_NAME
#define OSSO_EXAMPLE_MESSAGE &quot;HelloWorld&quot;
/* ... */
ret = osso_rpc_run(osso_context,
                   OSSO_EXAMPLE_SERVICE,
                   OSSO_EXAMPLE_OBJECT,
                   OSSO_EXAMPLE_IFACE,
                   OSSO_EXAMPLE_MESSAGE, &amp;retval, DBUS_TYPE_INVALID);
/* ... */
&lt;/source&gt;

When example_libosso_test is started, it sends an &lt;code&gt;example_message&lt;/code&gt; D-Bus message to &lt;code&gt;org.maemo.example_libosso&lt;/code&gt; service, attached to the example_libosso application (See more about D-Bus service files from an earlier section). Now when &lt;code&gt;example_libosso&lt;/code&gt; receives the message, it shows a banner.

One nice thing about D-Bus is that the receiving application does not even need to be started: D-Bus can automatically start the application based on its service file, and then pass the message to it!

==Hardware state messages ==

Maemo applications can connect to listen the system D-Bus messages, like ''battery low'' and ''shutdown''. When these messages are received, the application may want to ask the user to save files that are open, or react however wanted.

A callback function is defined like below, taking &lt;code&gt;osso_hw_state_t&lt;/code&gt; and &lt;code&gt;gpointer&lt;/code&gt; as parameters. The changed state can be gotten from state variable ([https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-examples/example_libosso.c &lt;code&gt;example_libosso.c&lt;/code&gt;]).

&lt;source lang=&quot;c&quot;&gt;
/* Callback for hardware D-Bus events */
void hw_event_handler(osso_hw_state_t *state, gpointer data)
{
    AppData *appdata;
    appdata = (AppData *) data;
    if (state-&gt;shutdown_ind)
    {
        hildon_banner_show_information(GTK_WIDGET(appdata-&gt;window), NULL,
                                       &quot;Shutdown event!&quot;);
    }
    if (state-&gt;memory_low_ind)
    {
        hildon_banner_show_information(GTK_WIDGET(appdata-&gt;window), NULL,
                                       &quot;Memory low event!&quot;);
    }
    if (state-&gt;save_unsaved_data_ind)
    {
        hildon_banner_show_information(GTK_WIDGET(appdata-&gt;window), NULL,
                                       &quot;Must save unsaved data event!&quot;);
    }
    if (state-&gt;system_inactivity_ind)
    {
        hildon_banner_show_information(GTK_WIDGET(appdata-&gt;window), NULL,
                                       &quot;Minimize application inactivity event!&quot;);
    }
}
&lt;/source&gt;

To attach this handler, e.g. in application &lt;code&gt;main()&lt;/code&gt;, use &lt;code&gt;osso_hw_set_event_cb()&lt;/code&gt;.

&lt;source lang=&quot;c&quot;&gt;
    /* ... */

    /* Add handler for hardware D-Bus messages */
    result = osso_hw_set_event_cb( appdata-&gt;osso_context,
        NULL, hw_event_handler, (gpointer) appdata );

    if (result != OSSO_OK)
    {
        g_print(&quot;Error setting HW state callback (%d)\n&quot;, result);
        return OSSO_ERROR;
    }

    /* ... */
&lt;/source&gt;

{{ambox
|text=These hardware events are not sent to the SDK, so testing them is only possible on a Maemo device.}}

== System Exit message ==

A system message is sent when applications are required to close themselves. Its callback is: ([https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-examples/example_libosso.c example_libosso.c]):

&lt;source lang=&quot;c&quot;&gt;
/* Callback for exit D-Bus event */
void exit_event_handler(gboolean die_now, gpointer data)
{
    AppData *appdata;
    appdata = (AppData *) data;
    g_print(&quot;exit_event_handler called\n&quot;);
    /* Do whatever application needs to do before exiting */
    hildon_banner_show_information(GTK_WIDGET(appdata-&gt;window), NULL,
                                   &quot;Exiting...&quot;);
}
&lt;/source&gt;

The callback is set (e.g. in application main) as follows.

&lt;source lang=&quot;c&quot;&gt;
int main( int argc, char* argv[] )
{
/* ... */
    /* Add handler for Exit D-BUS messages */
    result = osso_application_set_exit_cb(appdata-&gt;osso_context,
                                          exit_event_handler,
                                          (gpointer) appdata);
    if (result != OSSO_OK) {
        g_print(&quot;Error setting exit callback (%d)\n&quot;, result);
        return OSSO_ERROR;
    }
/* ... */
}
&lt;/source&gt;

Now whenever the system needs to close an application for any reason, the close is performed gracefully.

== Application state saving and auto save ==

State saving is a special feature of the Maemo platform. It means that applications save their running state from RAM to permanent memory, such as flash memory, and then end the running application process. This state saving happens when switching out from the application and the device memory is running low. When the user then returns to a backgrounded application, the application restarts, the application state is read from flash memory, and the user does not even know that the application was not running all the time.

Auto saving is an addition to state saving for editor-like applications containing user data. This data/document is automatically saved at the same time with state save. The main difference is that the application state is usually just a small amount of variables describing the state where the application was, whereas the auto-saved file can be any file the user was editing. Auto saving guarantees that user files are not lost when e.g. the battery runs out.

Information on how to implement state saving can be found in LibOSSO API document.

== Further reading ==

* [[Documentation/Maemo 5 Developer Guide/DBus/DBus Basics|Introduction to D-Bus]]

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/MIME type mapping</title>
    <id>2939</id>
    <revision>
      <id>40074</id>
      <timestamp>2010-11-12T09:16:21Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly, link</comment>
      <text xml:space="preserve">MIME types mapping specifies for the platform which application should handle a given MIME type. A mapping has to be defined in the desktop file of the application by adding to it the MimeType field. [[Desktop file format|Desktop files]] are found in &lt;code&gt;$prefix/share/applications&lt;/code&gt;. Each application has a desktop file, that specifies how it is started, what name it has, etc. It also specifies which MIME types the application can handle, if any.

An [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-examples/example_libosso.desktop example_libosso.desktop] file for the application looks like the following:
&lt;pre&gt;
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=Example libOSSO
Exec=/usr/bin/example_libosso
X-Osso-Service=org.maemo.example_libosso
Icon=qgn_list_gene_default_app
MimeType=application/x-example;
&lt;/pre&gt;

The last line is the most important one, and specifies that this application can handle the MIME type &lt;code&gt;application/x-example&lt;/code&gt;.

== New MIME type with OSSO category extension ==

If the application is introducing a new MIME type to the system, it is necessary to provide the mime-info XML (see more at http://standards.freedesktop.org/shared-mime-info-spec/) that defines it, in this case an &lt;code&gt;example-mime.xml&lt;/code&gt; file for the application looks as follows:
&lt;source lang=&quot;xml&quot;&gt;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;mime-info xmlns=&quot;http://www.freedesktop.org/standards/shared-mime-info&quot;
           xmlns:osso=&quot;http://nokia.com/osso/mime-categories&quot;&gt;
  &lt;mime-type type=&quot;application/x-example&quot;&gt;
        &lt;comment&gt;Example application file&lt;/comment&gt;
        &lt;osso:category name=&quot;images&quot;/&gt;
        &lt;magic priority=&quot;50&quot;&gt;
               &lt;match type=&quot;string&quot; value=&quot;FOO&quot; offset=&quot;0&quot;/&gt;
        &lt;/magic&gt;
        &lt;glob pattern=&quot;*.foo&quot;/&gt;
  &lt;/mime-type&gt;
&lt;/mime-info&gt;
&lt;/source&gt;
This entry maps one extension and a ''magic'' string to the &lt;code&gt;application/x-example&lt;/code&gt; MIME type.

'''N.B.''' The glob pattern should be given in lowercase.

== What is OSSO category ==

The platform has a notion of file categories for the user's data files. The available categories are:

* Bookmarks
* Contacts
* Documents
* Emails
* Images
* Audio
* Video
* Other

A mapping is set up between categories and MIME types, so that the MIME type of a file determines its category. The MIME type setup is handled by the shared-mime-info infrastructure, and the category information is added to that same framework.

Adding a mapping between a category and a number of MIME types is performed much like adding or editing the supported MIME types in the system.

Each application or library that adds a category mapping should add a file in

 /usr/share/mime/packages/

The file format is the same XML format used for MIME types, with an added tag

=== Updating platform databases ===

To introduce the newly defined MIME type(s) to the platform, do the following:

&lt;ol&gt;
&lt;li&gt;
Copy the mime-information XML under &lt;code&gt;/usr/share/mime/packages&lt;/code&gt;: 
&lt;pre&gt;
[sbox-FREMANTLE_X86: ~] &gt; cp example-mime.xml /usr/share/mime/packages
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Update the MIME and desktop database: 
&lt;pre&gt; 
[sbox-FREMANTLE_X86: ~] &gt; update-mime-database /usr/share/mime
[sbox-FREMANTLE_X86: ~] &gt; update-desktop-database /usr/share/applications
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Update the OSSO category database: 
&lt;pre&gt;
[sbox-FREMANTLE_X86: ~] &gt; hildon-update-category-database /usr/share/mime
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
To remove the MIME from the platform, delete the XML file in &lt;code&gt;/usr/share/mime/packages/&lt;/code&gt; and update the databases as above.

== Registering MIME type with package ==

Because most of the applications are installed on the platform via pre-compiled packages, the MIME type registration has to be performed as well.

The steps are similar to the ones shown above.

To install the MIME information XML under &lt;code&gt;/usr/share/mime/packages&lt;/code&gt;, edit the package rules and install the files. In this case it looks as follows:

* in the '''rules''' file under install section, add the following lines:
 mkdir -p $(CURDIR)/debian/tmp/usr/share/mime/packages
 cp $(CURDIR)/example-mime.xml $(CURDIR)/debian/tmp/usr/share/mime/packages
* and in .install we need to add&lt;pre&gt;usr/share/mime/packages/example-mime.xml&lt;/pre&gt;

This way, it can be assured that the mime information XML is being installed under &lt;code&gt;/usr/share/mime/packages&lt;/code&gt;.

Add the following lines to both the postinst and postrm files of the package:
&lt;source lang=&quot;bash&quot;&gt;
if [ -x /usr/bin/update-mime-database ]; then
 update-mime-database /usr/share/mime
fi
if [ -x /usr/bin/update-desktop-database ]; then
 update-desktop-database /usr/share/applications
fi
if [ -x /usr/bin/hildon-update-category-database ]; then
 hildon-update-category-database /usr/share/mime
fi
&lt;/source&gt;
This keeps the platform mime information and OSSO category databases up-to-date.

== Using hildon-mime-open ==

=== The hildon-mime-open API ===

This section describes how desktop files are used with the &lt;code&gt;hildon_mime_open_*&lt;/code&gt; API.

=== Desktop files ===

For the &lt;code&gt;hildon_mime_open_*&lt;/code&gt; API, there is one addition to the desktop file format that is relevant: the 'X-Osso-Service' key. This identifies the D-Bus service to use when trying to open a URI. The key is used in the standard [Desktop Entry] group in the desktop files.

The 'MimeType' key is part of the Freedesktop standard, and should be a semicolon separated list of types, for example:

 MimeType=image/png;image/jpeg;

Especially note the trailing semicolon.

When using &lt;code&gt;hildon_mime_open_*&lt;/code&gt;, the only thing that is used to identify the application to launch is the MIME type.

=== Default application ===

The notion of &quot;default application&quot; for a MIME type is handled through the GnomeVFS. It uses a file that lists the default desktop file for each MIME type. This file is something that the &quot;distro&quot; needs to take care of, and is not something each application can setup for itself.

The file is usually located at the default XDG data dir location:

 $(prefix)/share/applications/defaults.list

But also looks in other directories as specified by the environment variable &lt;code&gt;XDG_DATA_DIRS&lt;/code&gt;.

The file format is simple and can look like this, for example:

 [Default Applications]
 application/ogg=totem.desktop
 application/x-flac=totem.desktop
 image/x-png=eog.desktop 

(As a side point, the GnomeVFS API also uses a file in the user's home directory to override the system one, it's located in &lt;code&gt;$XDG_DATA_HOME&lt;/code&gt;, normally set to &lt;code&gt;~/.local&lt;/code&gt; on regular desktops.)

=== Implementation details ===

When the &lt;code&gt;hildon_mime_open_*&lt;/code&gt; API is called with a URI, GnomeVFS is used to get the MIME type. Then the list of applications that can handle that type is listed, and the default one is used. If there is no default, the first one from the list is used.

Then a D-Bus message is sent to activate the service specified by the '&lt;code&gt;X-Osso-Service&lt;/code&gt;' value for the found applications's desktop file, and the URI is passed to it for opening.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/Maemo Localization</title>
    <id>2521</id>
    <revision>
      <id>38349</id>
      <timestamp>2010-09-07T10:30:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add example links</comment>
      <text xml:space="preserve">This section describes how to localize Maemo applications. Localization is needed to provide native translations of the software. The section contains information on how to localize an application, how to ease extraction of message strings, how to make the translations, and how to test the localization.

Changes are presented with code examples to help the localization process. [[Documentation/Maemo 5 Developer Guide/Porting Software/Porting MaemoPad|MaemoPad]] is used as an example here.

== Localization ==

Localization means translating the application to different languages. Maemo localization is based on the standard gettext package, and all the necessary tools are included in Scratchbox. For applications, localization requires a couple of files in the &lt;code&gt;po/&lt;/code&gt; directory. The following files will be used for localization:

* Makefile.am
* en_GB.po
** contains translated text for target en_GB
* fi_FI.po
** contains translated text for target fi_FI
* POTFILES.in
** contains the list of source code files that will be localized

== Localizing Application ==

To localize an application, l10n needs to be set up before &lt;code&gt;gtk_init()&lt;/code&gt; by including the following headers:

[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemopad/src/main.c maemopad/src/main.c]

&lt;source lang=&quot;c&quot;&gt;
#include &lt;locale.h&gt;
#include &lt;glib/gi18n.h&gt;
&lt;/source&gt;

To initialize the locale functions, the following lines need to be added:

[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemopad/src/main.c maemopad/src/main.c]

&lt;source lang=&quot;c&quot;&gt;
setlocale(LC_ALL, &quot;&quot;);
bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR);
bind_textdomain_codeset(GETTEXT_PACKAGE, &quot;UTF-8&quot;);
textdomain(GETTEXT_PACKAGE);
&lt;/source&gt;

The most important of these are &lt;code&gt;GETTEXT_PACKAGE&lt;/code&gt; and &lt;code&gt;localedir&lt;/code&gt;, which come from &lt;code&gt;configure.ac&lt;/code&gt;:

[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemopad/src/configure.ac maemopad/configure.ac]

&lt;source lang=&quot;autoconf&quot;&gt;
AC_PROG_INTLTOOL([0.23])
#PACKAGE=maemopad by default, defined by AM_INIT_AUTOMAKE
GETTEXT_PACKAGE=$PACKAGE
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], &quot;${GETTEXT_PACKAGE}&quot;, [gettext pakname])
ALL_LINGUAS=&quot;en_GB fi_FI&quot;
AM_GLIB_GNU_GETTEXT
# Application locale install directory, /usr/share/locale by default
localedir=`$PKG_CONFIG osso-af-settings --variable=localedir`
&lt;/source&gt;

Of these, only &lt;code&gt;GETTEXT_PACKAGE&lt;/code&gt; needs special attention, as it is the l10n domain that is to be used, and &lt;code&gt;ALL_LINGUAS&lt;/code&gt; lists the available translations.

=== Easing Extraction of Strings ===

In the source code, there are multiple strings that eventually get shown in the user interface. For example:

&lt;source lang=&quot;c&quot;&gt;
maemopad_window_show_error (&quot;maemopad_open_failed&quot;, self);
&lt;/source&gt;

In order to make the strings localizable, they need to be wrapped in &lt;code&gt;gettext(&quot;String&quot;)&lt;/code&gt; calls. In practice, writing &lt;code&gt;gettext()&lt;/code&gt; for every string is tedious. The common practice is to set the following #define which is already done in included &lt;code&gt;gi18n.h&lt;/code&gt;:

&lt;source lang=&quot;c&quot;&gt;
#define _(String) gettext (String)
&lt;/source&gt;

Thus, the i18n version of the example would be:

[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemopad/src/main.c maemopad/src/main.c]

&lt;source lang=&quot;c&quot;&gt;
maemopad_window_show_error (_(&quot;maemopad_open_failed&quot;), self);
&lt;/source&gt;

=== Creating Translation Files ===

Creating *.po files is quite straightforward. Maemopad has two localization files, &lt;code&gt;en_GB.po&lt;/code&gt; and &lt;code&gt;fi_FI.po&lt;/code&gt;. Creating the Finnish translation is explained next. Localization .po files are filled with simple structures, defining the localization id and the actual text string, e.g.

 #: src/maemopad-window.c:573 src/maemopad-window.c:580
 msgid &quot;maemopad_open_failed&quot;
 msgstr &quot;Open failed!&quot;

&quot;msgid&quot; defines the original string (key) used in code, and &quot;msgstr&quot; defines the translated string for localization.

First, a template file is created with all strings from sources for translation. GNU xgettext command is used to extract the strings from sources:
 
 [sbox-FREMANTLE_X86: ~/maemopad] &gt; xgettext -f po/POTFILES.in -C -a -o po/template.po

Option &quot;-f po/POTFILES.in&quot; uses &lt;code&gt;POTFILES.in&lt;/code&gt; to get the files to be localized, &quot;-C&quot; is for C-code type of strings, &quot;-a&quot; is for ensuring that all the strings are received from sources, and &quot;-o template.po&quot; defines the output filename.

This may output some warnings. Usually they are not serious, but it is better to check them anyway.

If the translation in question is into Finnish, the edited &lt;code&gt;po/template.po&lt;/code&gt; needs to be copied to &lt;code&gt;po/fi_FI.po&lt;/code&gt; , and &lt;code&gt;fi_FI.po&lt;/code&gt; needs to be added to &lt;code&gt;ALL_LINGUAS&lt;/code&gt; in &lt;code&gt;configure.ac&lt;/code&gt;.

Now &lt;code&gt;po/fi_FI.po&lt;/code&gt;  will include lines such as the following:

 #: src/maemopad-window.c:253
 msgid &quot;maemopad_save_changes_made&quot;
 msgstr &quot;Save changes?&quot;

All msgstrings should be translated into the desired language:

 #: src/maemopad-window.c:253
 msgid &quot;maemopad_save_changes_made&quot;
 msgstr &quot;Tallenna muutokset?&quot;

Autotools should now automatically convert the .po file to .mo file during the build process, and install it to the correct location.

To do it manually:
 
 [sbox-FREMANTLE_X86: ~/maemopad] &gt; msgfmt po/fi_FI.po -o debian/maemopad/usr/share/locale/fi_FI/LC_MESSAGES/maemopad.mo

Where &lt;code&gt;debian/maemopad/usr/share/locale/fi_FI/LC_MESSAGES/&lt;/code&gt; is the directory where the software should be installed to.

== Testing ==

Inside scratchbox, the translated application should be tested by setting LANGUAGE environment variable to contain the newly created locale (in this example case for Finnish translation, &lt;code&gt;fi_FI&lt;/code&gt;):

 [sbox-FREMANTLE_X86: ~] &gt; LANGUAGE=&quot;fi_FI&quot; run-standalone.sh maemopad

On the target device, a wrapper script is needed to accomplish this, if the device does not have a locale for the locale identifier used. The script can simply consist of:

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
LANGUAGE=&quot;fi_FI&quot; /usr/bin/maemopad
&lt;/source&gt;

The example above assumes that the installation package installs the executable into &lt;code&gt;/usr/bin&lt;/code&gt;. This script needs then to be configured to be run in the application's .desktop file, instead of the actual executable.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/Menus</title>
    <id>2287</id>
    <revision>
      <id>28131</id>
      <timestamp>2010-02-02T15:37:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Menus]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/Migration</title>
    <id>2321</id>
    <revision>
      <id>16907</id>
      <timestamp>2009-08-26T07:47:08Z</timestamp>
      <contributor>
        <username>bijjal</username>
        <id>338</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Application Development/Migration]] moved to [[Documentation/Maemo 5 Developer Guide/Porting Software/Migration]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Porting Software/Migration]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/Navigation</title>
    <id>2289</id>
    <revision>
      <id>28132</id>
      <timestamp>2010-02-02T15:38:05Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Navigation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/Toolbars</title>
    <id>2288</id>
    <revision>
      <id>28133</id>
      <timestamp>2010-02-02T15:39:16Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Toolbars]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/Utilities</title>
    <id>2293</id>
    <revision>
      <id>28135</id>
      <timestamp>2010-02-02T15:39:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Utilities]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/Windows and dialogs</title>
    <id>2286</id>
    <revision>
      <id>28122</id>
      <timestamp>2010-02-02T15:29:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Windows and dialogs]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/Writing Control Panel Applets</title>
    <id>2140</id>
    <revision>
      <id>48428</id>
      <timestamp>2012-06-14T14:11:26Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Documentation/Maemo 5 Developer Guide/Application Development/Writing Control Panel Applets]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">The control panel is designed to be extendable, and items can be added to it with dynamic libraries with certain functions and [[desktop file format|desktop files]] describing the library.

== Functions ==

A control panel applet ([https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-examples/libapplet.c libapplet.c]) needs two functions. These functions are defined in the following:

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon-cp-plugin/hildon-cp-plugin-interface.h&gt;
&lt;/source&gt;

The first and more important one, &lt;code&gt;execute&lt;/code&gt;, is called when the applet is activated from Control Panel. Usually this function creates a dialog and waits until it is done. Any dialog created should be modal to the window in parameter.

N.B. The library can be unloaded when execute returns, so no &lt;code&gt;g_timeout&lt;/code&gt;s, &lt;code&gt;gconf_notify&lt;/code&gt;s or such must be left when done. GTK+ or osso initialization is not needed, because they are already done at this point.

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon-cp-plugin/hildon-cp-plugin-interface.h&gt;
#include &lt;gtk/gtk.h&gt;

osso_return_t execute(osso_context_t *osso, gpointer data, gboolean user_activated)
{
	GtkWidget *dialog;
	gint response;
	/* Create dialog with OK and Cancel buttons. Leave the separator out,
	 * as we do not have any content. */
	dialog = gtk_dialog_new_with_buttons(
		&quot;Hello control panel&quot;,
		GTK_WINDOW(data),
		GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR,
		GTK_STOCK_OK,
		GTK_RESPONSE_OK,
		GTK_STOCK_CANCEL,
		GTK_RESPONSE_CANCEL,
		NULL);
	/* ... add something to the dialog ... */
	if (!user_activated)
	{
		/* ... load state ... */
	}
	/* Wait until user finishes the dialog. */
	response = gtk_dialog_run(GTK_DIALOG(dialog));
	if (response == GTK_RESPONSE_OK)
	{
		/* ... do something with the dialog stuff ... */
	}
	/* Free the dialog (and it's children) */
	gtk_widget_destroy(GTK_WIDGET(dialog));
	return OSSO_OK;
}
&lt;/source&gt;

The other function is called &lt;code&gt;save_state&lt;/code&gt;. It is called when application using the applet is saving state. Usually this does nothing, but if support for state saving is needed, use it.

&lt;source lang=&quot;c&quot;&gt;
osso_return_t save_state(osso_context_t *osso, gpointer data)
{
	/* ... save state ... */
	return OSSO_OK;
}
&lt;/source&gt;

== Building applet ==

To use the applet, build it into a dynamic library aka shared object by passing the &lt;code&gt;-shared&lt;/code&gt; flag to gcc.

 [sbox-FREMANTLE_X86: ~] &gt; gcc -shared `pkg-config gtk+-2.0 hildon-control-panel libosso --libs --cflags` libapplet.c -o libapplet.so

Install the binary produced by gcc to a path specified in hildon-control-panel pkg-config entry. You can obtain this path with:
 pkg-config hildon-control-panel --variable=pluginlibdir
By default it is &lt;code&gt;/usr/lib/hildon-control-panel&lt;/code&gt;.

==The .desktop file ==

Any control panel applet needs a desktop file describing it. The file contains metadata like name, icon name and library of the applet. The applet desktop file is much like the desktop file for any other application.

Here is an example desktop file (&lt;code&gt;applet.desktop&lt;/code&gt;) for the applet created above: 

&lt;pre&gt;
[Desktop Entry] 
Encoding=UTF-8
Version=1.0
Name=Control Panel Hello World
Comment=A control panel example applet
Type=HildonControlPanelPlugin
Icon=qgn_list_cp_isetup
X-control-panel-plugin=libapplet.so
Categories=general
&lt;/pre&gt;

Install the desktop file to directory specified in pkg-config file for hildon-control-panel. This directory can be obtained with:
 pkg-config hildon-control-panel --variable=plugindesktopentrydir

By default, it is &lt;code&gt;/usr/share/applications/hildon-control-panel&lt;/code&gt;.

Icon file should be placed in the folder &lt;code&gt;/usr/share/pixmaps&lt;/code&gt;. Specify the icon name without the .png suffix.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/Writing Desktop Widgets</title>
    <id>2139</id>
    <revision>
      <id>38296</id>
      <timestamp>2010-09-02T15:07:21Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* The .desktop File */ desktop file link</comment>
      <text xml:space="preserve">The following code examples are used in this chapter:
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/hildon-timeout-home-widget-example/ hildon-timeout-home-widget-example]
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/hildon-status-menu-widget-example/ hildon-status-menu-widget-example]

Desktop widgets are programs designed to provide a certain functionality from the desktop area. These programs are usually limited, in the sense that they are not complex applications, normally representing &quot;small&quot; utilities or an extension of an existing application.

Desktop widgets are written as shared libraries and need also to provide a desktop file that describes them. Depending on their placement, they can be Status Menu widgets or Home Area widgets.

They must have a .desktop file describing them. The file contents are fields that describe certain properties of the widget.

==Home Widgets==

Home widgets are located in the Home Area of the desktop. Home Area widgets are not resizable.

To better show how to write a Home Area widget, consider a widget &quot;TimeOut&quot; that allows the user to choose an action to be performed at a given time.

Home widgets must inherit from libhildondesktop's &lt;code&gt;HDHomePluginItem&lt;/code&gt;. The following example presents a header file for the mentioned widget.

'''Example 1.1. Header file for TimeOut widget: lib-timeout-home-widget.h'''

&lt;source lang=&quot;c&quot;&gt;
#ifndef TIME_OUT_PLUGIN_H
#define TIME_OUT_PLUGIN_H

#include &lt;glib-object.h&gt;

#include &lt;libhildondesktop/libhildondesktop.h&gt;

G_BEGIN_DECLS

typedef struct _TimeOutPlugin TimeOutPlugin;
typedef struct _TimeOutPluginClass TimeOutPluginClass;

#define TIME_OUT_TYPE_HOME_PLUGIN   (time_out_home_plugin_get_type ())

#define TIME_OUT_HOME_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
                        TIME_OUT_TYPE_HOME_PLUGIN, TimeOutHomePlugin))

#define TIME_OUT_HOME_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), \
                        TIME_OUT_TYPE_HOME_PLUGIN,  TimeOutHomePluginClass))

#define TIME_OUT_IS_HOME_PLUGIN(obj)  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
                        TIME_OUT_TYPE_HOME_PLUGIN))
 
#define TIME_OUT_IS_HOME_PLUGIN_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), \
                        TIME_OUT_TYPE_HOME_PLUGIN))

#define TIME_OUT_HOME_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \
                        TIME_OUT_TYPE_HOME_PLUGIN,  TimeOutHomePluginClass))
 
struct _TimeOutPlugin
{
    HDHomePluginItem hitem;
};
 
struct _TimeOutPluginClass
{
    HDHomePluginItemClass parent_class;
};
 
GType time_out_home_plugin_get_type(void);

G_END_DECLS

#endif
&lt;/source&gt;

The first and more important function is &lt;code&gt;HD_DEFINE_PLUGIN_MODULE&lt;/code&gt;. This function receives three parameters to register the object that is supplied by the plug-in. The first argument is the object type name in Camel case, the second is the type name in lowercase with underscores separating the words. The third is the &lt;code&gt;GType&lt;/code&gt; of the object's parent. Apart from this macro, use also three other functions. The name of the functions is the name given as second argument to &lt;code&gt;HD_DEFINE_PLUGIN_MODULE&lt;/code&gt; with the suffixes _init, _class_init and _class_finalize.

The following example shows the source code for &quot;TimeOut&quot; widget.

'''Example 1.2. Source file for TimeOut widget: lib-timeout-home-widget.c'''

&lt;source lang=&quot;c&quot;&gt;
#include &lt;gtk/gtk.h&gt;
#include &lt;hildon/hildon.h&gt;
 
#include &lt;libhildondesktop/libhildondesktop.h&gt;

#include &quot;lib-timeout-home-widget.h&quot;

HD_DEFINE_PLUGIN_MODULE (TimeOutPlugin, time_out_plugin,      HD_TYPE_HOME_PLUGIN_ITEM)
 
static GtkWidget *
build_ui (void)
{
    GtkVBox *contents = GTK_VBOX (gtk_vbox_new (0, FALSE));
    GtkLabel *label = GTK_LABEL (gtk_label_new (&quot;Time out widget.&quot;));
    HildonPickerButton *action;
    action = HILDON_PICKER_BUTTON (hildon_picker_button_new  (HILDON_SIZE_FINGER_HEIGHT,
                                        HILDON_BUTTON_ARRANGEMENT_VERTICAL));
    HildonTouchSelector *action_selector;
    action_selector = HILDON_TOUCH_SELECTOR (hildon_touch_selector_new_text ());
    hildon_button_set_title (HILDON_BUTTON (action), &quot;Action&quot;);
    hildon_touch_selector_append_text (action_selector, &quot;Blank Screen&quot;);
    hildon_touch_selector_append_text (action_selector, &quot;Suspend&quot;);
    hildon_touch_selector_append_text (action_selector, &quot;Turn Off&quot;);
    hildon_picker_button_set_selector (action, action_selector);
    hildon_picker_button_set_active (action, 0); 

    HildonTimeButton *time;
    time = HILDON_TIME_BUTTON (hildon_time_button_new (HILDON_SIZE_FINGER_HEIGHT,
                                        HILDON_BUTTON_ARRANGEMENT_VERTICAL));
    hildon_time_button_set_time (time, 22, 00); 

    GtkHBox *buttons = GTK_HBOX (gtk_hbox_new (0, TRUE));
    gtk_container_add (GTK_CONTAINER (buttons), GTK_WIDGET (action));
    gtk_container_add (GTK_CONTAINER (buttons), GTK_WIDGET (time));
    
    gtk_box_pack_start (GTK_BOX (contents), GTK_WIDGET (label), FALSE, FALSE, 0);
    gtk_box_pack_end (GTK_BOX (contents), GTK_WIDGET (buttons), FALSE, FALSE, 0);
    gtk_widget_show_all (GTK_WIDGET (contents)); 

    return GTK_WIDGET (contents);
}

static void
time_out_plugin_init (TimeOutPlugin *desktop_plugin)
{
  GtkWidget *contents = build_ui ();
  gtk_container_add (GTK_CONTAINER (desktop_plugin), contents);
} 

static void
time_out_plugin_class_init (TimeOutPluginClass *class) {} 

static void
time_out_plugin_class_finalize (TimeOutPluginClass *class) {} 
&lt;/source&gt;
            
As you can see in the example above, the controls used in the widget (build_ui function) must be added to &quot;TimeOutPlugin&quot;. In this case, the widget works as a standalone application, but it can just provide a widget to activate a program defined in another header and independent from the widget.

===The .desktop File===

Although other fields can be assigned in a [[Desktop file format|.desktop file]], the example bellow shows a simple .desktop file for the &quot;TimeOut&quot; widget. The &quot;Name&quot; field is the widget's name in the list when the user is choosing widgets to add to the desktop. The &quot;X-Path&quot; field should be set to the .so file that was previously generated.

Example 1.3. A .desktop file for the TimeOut widget: timeout-widget.desktop
&lt;pre&gt;
[Desktop Entry] 
Name=TimeOut Widget 
Comment=Execute an action at a given time
Type=default
X-Path=lib-timeout-home-widget.so
&lt;/pre&gt;
                
For Home Area widget, place .desktop files in the directory outputed by the following command:

 pkg-config libhildondesktop-1 --variable=hildonhomedesktopentrydir

==Status Menu widgets==

Status Menu widgets are located in the Status Menu and can be divided into three categories: permanent, conditional and temporary. Permanent widgets are shown all the time. Conditional and temporary widgets are shown when a certain condition is fulfilled.

The way to write a widget for the Status Menu is pretty similar to writing it for the Home Area. The widget inherits from &lt;code&gt;HDStatusMenuItem&lt;/code&gt;. The next examples present a Status Menu widget which only shows a message when clicked.

Example 1.4. Header file for Example Status Menu Widget: lib-example-status-menu-widget.h

&lt;source lang=&quot;c&quot;&gt;
#ifndef __EXAMPLE_STATUS_PLUGIN_H__
#define __EXAMPLE_STATUS_PLUGIN_H__

#include &lt;libhildondesktop/libhildondesktop.h&gt;

G_BEGIN_DECLS

#define TYPE_EXAMPLE_STATUS_PLUGIN            (example_status_plugin_get_type ())

#define EXAMPLE_STATUS_PLUGIN(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
                                    TYPE_EXAMPLE_STATUS_PLUGIN, ExampleStatusPlugin))
 
#define EXAMPLE_STATUS_PLUGIN_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), \
                                TYPE_EXAMPLE_STATUS_PLUGIN, ExampleStatusPluginClass))

#define IS_EXAMPLE_STATUS_PLUGIN(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
                                                    TYPE_EXAMPLE_STATUS_PLUGIN))

#define IS_EXAMPLE_STATUS_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
                                                    TYPE_EXAMPLE_STATUS_PLUGIN))

#define EXAMPLE_STATUS_PLUGIN_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), \
                            TYPE_EXAMPLE_STATUS_PLUGIN, ExampleStatusPluginClass))

#define STATUS_AREA_EXAMPLE_ICON_SIZE 22

typedef struct _ExampleStatusPlugin        ExampleStatusPlugin;
typedef struct _ExampleStatusPluginClass   ExampleStatusPluginClass;
typedef struct _ExampleStatusPluginPrivate ExampleStatusPluginPrivate; 

struct _ExampleStatusPlugin
{
    HDStatusMenuItem parent;

    ExampleStatusPluginPrivate *priv;
};

struct _ExampleStatusPluginClass
{
    HDStatusMenuItemClass parent;
};

GType example_status_plugin_get_type (void);

G_END_DECLS

#endif
&lt;/source&gt;
           
'''Example 1.5. Source file for Example Status Menu  Widget: lib-example-status-menu-widget.c'''

&lt;source lang=&quot;c&quot;&gt;
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;gtk/gtk.h&gt;
#include &lt;hildon/hildon.h&gt;

#include &quot;lib-example-status-menu-widget.h&quot;

#define EXAMPLE_STATUS_PLUGIN_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE (obj,   \
                            TYPE_EXAMPLE_STATUS_PLUGIN, ExampleStatusPluginPrivate))

struct _ExampleStatusPluginPrivate
{
    GtkWidget *label;
    gpointer data;
};

HD_DEFINE_PLUGIN_MODULE (ExampleStatusPlugin, example_status_plugin,   HD_TYPE_STATUS_MENU_ITEM);

static void
example_status_plugin_class_finalize (ExampleStatusPluginClass *klass) {}

static void
example_status_plugin_class_init (ExampleStatusPluginClass *klass)
{
    g_type_class_add_private (klass, sizeof (ExampleStatusPluginPrivate));
}

static void
example_status_plugin_init (ExampleStatusPlugin *plugin)
{
    plugin-&gt;priv = EXAMPLE_STATUS_PLUGIN_GET_PRIVATE (plugin);

    GtkIconTheme *icon_theme = gtk_icon_theme_get_default ();
    GList *list = gtk_icon_theme_list_icons (icon_theme, NULL);
    GdkPixbuf *pixbuf = gtk_icon_theme_load_icon (icon_theme, &quot;general_email&quot;,
                    STATUS_AREA_EXAMPLE_ICON_SIZE, GTK_ICON_LOOKUP_NO_SVG, NULL);
    hd_status_plugin_item_set_status_area_icon (HD_STATUS_PLUGIN_ITEM (plugin), pixbuf);
    g_object_unref (pixbuf);

    GtkWidget *b = gtk_label_new (&quot;Example message&quot;);
    gtk_widget_show_all (b);

    plugin-&gt;priv-&gt;label = b;

    gtk_container_add (GTK_CONTAINER (plugin), plugin-&gt;priv-&gt;label);

    gtk_widget_show_all (plugin-&gt;priv-&gt;label);

   gtk_widget_show (GTK_WIDGET (plugin));
}
&lt;/source&gt;
       
===The .desktop File===

The .desktop file for the Status Menu is similar to the Home Area one but also contains the &quot;Category&quot; field where the priority of the widget is set (permanent, conditional or temporary) and the &quot;Icon&quot; field to set the icon's name. If the &quot;Category&quot; key is not set, it is considered as permanent.

Example 1.6. A .desktop file for the Status Menu example widget: lib-example-widget.desktop
&lt;pre&gt;
[Desktop Entry]
Name=Example
Icon=general_email 
Comment=An example status menu widget
Category=permanent
Type=default
X-Path=lib-example-status-menu-widget.so
&lt;/pre&gt;
                
For Status Menu widget, .desktop files should be placed in the directory outputted by the following command:

 pkg-config --variable=hildonstatusmenudesktopentrydir libhildondesktop-1

==Building Widgets==

To use a widget, it needs to be built as a shared library. This is done by passing the &lt;code&gt;-shared&lt;/code&gt; flag to gcc.

 gcc -shared `pkg-config --libs --cflags hildon-1 libhildondesktop-1` widget.c -o lib-widget.so

Status Menu and Home Area widgets binaries are located in the same directory, so assign distinguishable names to them, such as &quot;lib-example-home-widget.so&quot; and &quot;lib-example-status-menu-widget.so&quot; for the Home Area and Status Menu widgets, respectively. The directory where the binary files are copied to is given by the following command (which normally outputs &lt;code&gt;/usr/lib/hildon-desktop&lt;/code&gt;):

 pkg-config --variable=hildondesktoplibdir libhildondesktop-1

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/Writing a new maemo application</title>
    <id>2932</id>
    <revision>
      <id>43457</id>
      <timestamp>2011-05-14T08:43:26Z</timestamp>
      <contributor>
        <ip>88.114.203.150</ip>
      </contributor>
      <comment>I removed font tag from example code</comment>
      <text xml:space="preserve">This section is a guide for making new applications for the Maemo platform. Maemo 5 SDK needs to be installed successfully as a pre-requisite. 

A simple text editor with a few essential features is used as a example. Let us name it as ''MaemoPad''.

MaemoPad has the following basic features: ''New'', ''Open'', ''Save'', ''Save As...'', ''Cut'', ''Copy'', ''Paste'', ''Font'', ''Full Screen'', ''Full Screen'' hardware key handling, ''Send-Via email/bluetooth'' and ''Close''. For simplicity, it does not contain advanced features like ''Undo'', ''Redo'', different fonts in one document, pictures, tables, etc.

The figure below is a screenshot of the text editor.

[[Image:Maemopad2.png|500px|alt=Screenshot of MaemoPad|MaemoPad text editor]]

== Creating the application file structure ==

In general, a Maemo application uses the [[../../GNU Build System|GNU Build System]] and has the following files and subdirectories:
* &lt;code&gt;src/&lt;/code&gt;: Contains the source files.
* &lt;code&gt;debian/&lt;/code&gt;: Contains the files related to Debian packaging
* &lt;code&gt;data/&lt;/code&gt;: Contains all data files needed to run the application. Maemopad will need the following data files:
**&lt;code&gt;maemopad.desktop&lt;/code&gt; file 
**D-Bus &lt;code&gt;maemopad.service&lt;/code&gt; file 
**application icons in a separate directory called &lt;code&gt;icons/&lt;/code&gt;
* &lt;code&gt;po/&lt;/code&gt;: Contains the localization files. Maemopad contains the following files:
** &lt;code&gt;POTFILES.in&lt;/code&gt; list the names of the files to be localized.
** Translation file &lt;code&gt;en_GB.po&lt;/code&gt; containing British English strings for the application.
** Translation file &lt;code&gt;fi_FI.po&lt;/code&gt; containing Finnish strings for the application.
* &lt;code&gt;autogen.sh&lt;/code&gt; is a shell script that provides automatic build system preparation.
* &lt;code&gt;configure.ac&lt;/code&gt; is an input file for &lt;code&gt;autoconf&lt;/code&gt; that contains &lt;code&gt;autoconf&lt;/code&gt; macros that test the system features the package needs or can use. It produces the &lt;code&gt;configure&lt;/code&gt; script.
* &lt;code&gt;Makefile.am&lt;/code&gt; is used by &lt;code&gt;automake&lt;/code&gt; to produce a standards-compliant &lt;code&gt;Makefile.in&lt;/code&gt;. The &lt;code&gt;Makefile.am&lt;/code&gt; in the top source directory is usually very simple and includes the files and subdirectories needed to make the application: &lt;code&gt;src/&lt;/code&gt;, &lt;code&gt;po/&lt;/code&gt; and &lt;code&gt;data/&lt;/code&gt; and all the &lt;code&gt;Makefile&lt;/code&gt;s in &lt;code&gt;src/&lt;/code&gt;, &lt;code&gt;po/&lt;/code&gt;, and &lt;code&gt;data/&lt;/code&gt; directories.

You can compile the source as follows:
 
  [sbox-FREMANTLE_X86 ~] &gt; ./autogen.sh 
  [sbox-FREMANTLE_X86 ~] &gt;$ ./configure 
  [sbox-FREMANTLE_X86 ~] &gt;$ make

For more information about GNU autoconf and automake, see the [[Documentation/Maemo 5 Developer Guide/GNU Build System|GNU build system]] article.

== Coding the application ==

The src/ directory of MaemoPad contains the following files:
* main.c
* maemopad-window.h
* maemopad-window.c
* fullscreenmanager.c
* fullscreenmanage.h
* Makefile.am

=== maemopad-window.h ===

&lt;code&gt;[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemopad/src/maemopad-window.h maemopad-window.h]&lt;/code&gt; defines the &lt;code&gt;MaemopadWindow&lt;/code&gt; structure to hold the application data and other declarations. Even though the data varies depending on the application, a sample structure might look like this:

&lt;source lang=&quot;c&quot;&gt;
typedef struct _MaemopadWindow MaemopadWindow;

struct _MaemopadWindow
{
  HildonWindow parent;

  /* Osso context, needed for &quot;send via&quot; functionality. */
  osso_context_t *osso; 

  /* Fullscreen mode is on (TRUE) or off (FALSE): */
  gboolean fullscreen;

  /* Button items for menu: */
  GtkWidget *new_item;
  GtkWidget *open_item;
  GtkWidget *save_item;
  GtkWidget *saveas_item;
  GtkWidget *cut_item;
  GtkWidget *copy_item;
  GtkWidget *paste_item;
  /*.....more...truncated...*/
};
&lt;/source&gt;

Where &lt;code&gt;MaemopadWindow&lt;/code&gt; is a structure containing pointers to all the UI objects, such as &lt;code&gt;HildonWindow&lt;/code&gt;, menu items, toolbar; and UI-related data, for instance a boolean variable indicating whether the application is in fullscreen mode.

Each application creates its own &lt;code&gt;AppData&lt;/code&gt; variable, and this variable is usually passed around as a parameter in the functions, particularly the callback functions, so that the applications data can be accessible by the functions.

Many applications declare this &lt;code&gt;AppData&lt;/code&gt; variable as global.

=== main.c ===

main.c usually performs, at least, the following functions:

* Initializing GTK+
* Initializing localization
* Creating an instance of &lt;code&gt;HildonProgram&lt;/code&gt;
* Calling to a function, usually defined in &lt;code&gt;interface.c&lt;/code&gt;, to create the main view.
* Connecting the main view window to the created &lt;code&gt;HildonProgram&lt;/code&gt;
* Running &lt;code&gt;gtk_main()&lt;/code&gt;
* Connecting the &lt;code&gt;delete_event&lt;/code&gt; of the main view to a callback function to handle a proper application exit, such as destroying the main view window, freeing used memory and saving application states before exit.
* Call &lt;code&gt;gtk_main_quit()&lt;/code&gt;

Here is the main function of MaemoPad with comments:

&lt;source lang=&quot;c&quot;&gt;
int main (int argc, char* argv[])
{
  osso_context_t *osso = NULL;
  AppData *data = g_new0 (AppData, 1);
 
  /* Initialize the locale stuff: */
  setlocale (LC_ALL, &quot;&quot;);
  bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
  bind_textdomain_codeset(GETTEXT_PACKAGE, &quot;UTF-8&quot;);
  textdomain (GETTEXT_PACKAGE);
 
  /* Inititialize GTK+ and hildon: */
  hildon_gtk_init (&amp;argc, &amp;argv);
 
  if (!g_thread_supported()) {
    g_thread_init (NULL);
  }
 
  /* Create the hildon application and setup the title: */
  data-&gt;program = HILDON_PROGRAM (hildon_program_get_instance ());
  g_set_application_name (_(&quot;MaemoPad&quot;));
 
  /* We need the osso context to call libmodest_dbus_client_compose_mail() later. */
  osso = osso_initialize (OSSO_SERVICE, VERSION, TRUE, NULL);
  g_assert (osso);
 
  /* Create the window for our application: */
  data-&gt;window = maemopad_window_new (osso);
  hildon_program_add_window (data-&gt;program, data-&gt;window);
 
  /* Show the main window and start the mainloop, 
   * quitting the mainloop when it the main window is hidden:
   */
  gtk_widget_show (GTK_WIDGET (data-&gt;window));
  g_signal_connect(data-&gt;window, &quot;hide&quot;, G_CALLBACK (&amp;on_main_window_hide), NULL);
  g_signal_connect(data-&gt;window, &quot;delete_event&quot;, 
    G_CALLBACK (&amp;gtk_widget_hide_on_delete), NULL);
  gtk_main();
   
  /* Clean up: */
  gtk_widget_destroy (GTK_WIDGET (data-&gt;window));
  g_free (data);
 
  return 0;
}
&lt;/source&gt;

== User interface ==

The graphical user interface code is implemented in directory &lt;code&gt;./src/ui/&lt;/code&gt;. It contains two .c files: &lt;code&gt;interface.c&lt;/code&gt; and &lt;code&gt;callbacks.c&lt;/code&gt;

=== interface.c ===

This file creates the graphical user interface (GUI) and connects the signals and events to appropriate handlers defined in &lt;code&gt;callbacks.c&lt;/code&gt;. See the [http://www.forum.nokia.com/info/sw.nokia.com/id/eb8a68ba-6225-4d84-ba8f-a00e4a05ff6f/Hildon_2_2_UI_Style_Guide.html Hildon UI style guide] for information on how to create GUI in Maemo. For more information on GTK+ see the [http://maemo.org/api_refs/5.0/5.0-final/gtk/ GTK+ Reference Manual].

As a general practice, an &lt;code&gt;AppUIData&lt;/code&gt; struct variable is created when creating the GUI. And then, a &lt;code&gt;HildonWindow&lt;/code&gt; and smaller components are created in different functions, such as &lt;code&gt;create_menu()&lt;/code&gt;, &lt;code&gt;create_toolbar()&lt;/code&gt;. When creating each component, &lt;code&gt;AppUIData&lt;/code&gt; should refer to various necessary UI objects created along the way.

The following excerpt shows how &lt;code&gt;AppUIData&lt;/code&gt; is created, and how it points to the toolbar and the button ''New file'' on the toolbar.

&lt;source lang=&quot;c&quot;&gt;
/* Creates and initializes a main_view */
AppUIData* interface_main_view_new( AppData *data )
{
    /* Zero memory with g_new0 */
    AppUIData* result = g_new0( AppUIData, 1 );
    /*....*/
    create_toolbar( result );
    /*....*/
}
/* Create toolbar to mainview */
static void create_toolbar ( AppUIData *main )
{
    /* Create new GTK toolbar */
    main-&gt;toolbar = gtk_toolbar_new ();
    /*....*/
    /* Create the &quot;New file&quot; button in the toolbar */
    main-&gt;new_tb = gtk_tool_button_new_from_stock(GTK_STOCK_NEW);
    /*....*/
}
&lt;/source&gt;

=== callbacks.c ===

&lt;code&gt;callbacks.c&lt;/code&gt; defines all the functions that handle the signals or events that might be triggered by the UI. When creating different UI objects in &lt;code&gt;interface.c&lt;/code&gt;, the handlers are registered as follows.

&lt;source lang=&quot;c&quot;&gt;
/* Create the menu items needed for the drop down menu */
static void create_menu( AppUIData *main )
{
    /* ... */
    main-&gt;new_item = gtk_menu_item_new_with_label ( _(&quot;New&quot;) );
    /* ... */
    /* Attach the callback functions to the activate signal */
    g_signal_connect( G_OBJECT( main-&gt;new_item ), &quot;activate&quot;,
                      G_CALLBACK ( callback_file_new), main );
    /* ... */
}
&lt;/source&gt;

Function &lt;code&gt;callback_file_new&lt;/code&gt; is implemented in &lt;code&gt;callbacks.c&lt;/code&gt;, saving the current file if needed, and then opening a new file to edit.

&lt;source lang=&quot;c&quot;&gt;
void callback_file_new(GtkAction * action, gpointer data)
{
    gint answer;
    AppUIData *mainview = NULL;
    mainview = ( AppUIData * ) data;
    g_assert(mainview != NULL &amp;&amp; mainview-&gt;data != NULL );
    /* save changes note if file is edited */
    if( mainview-&gt;file_edited ) {
        answer = interface_save_changes_note( mainview );
        if( answer == CONFRESP_YES ) {
            if( mainview-&gt;file_name == NULL ) {
                mainview-&gt;file_name = interface_file_chooser(mainview, GTK_FILE_CHOOSER_ACTION_SAVE);
            }
            write_buffer_to_file ( mainview );
        }
    }
    /* clear buffer, filename and free buffer text */
    gtk_text_buffer_set_text ( GTK_TEXT_BUFFER (mainview-&gt;buffer), &quot;&quot;, -1 );
    mainview-&gt;file_name = NULL;
    mainview-&gt;file_edited = FALSE;
}
&lt;/source&gt;

N.B. The &lt;code&gt;AppUIData&lt;/code&gt; struct variable &lt;code&gt;mainview&lt;/code&gt; is retrieved in such a way that the handlers can have a direct effect on the UI for the users.

MaemoPad contains many functions:

* File Save/Save-As/Open: This uses &lt;code&gt;HildonFileChooserDialog&lt;/code&gt;.
* Edit Cut/Copy/Paste: This uses the clipboard ([[Documentation/Maemo 5 Developer Guide/Using Data Sharing/Clipboard Usage|clipboard usage]])
* Font/Color Selector: These are explained in &lt;code&gt;HildonFontSelectionDialog&lt;/code&gt; and &lt;code&gt;HildonColorChooser&lt;/code&gt;.
* [[Documentation/Maemo 5 Developer Guide/Using Data Sharing/Sharing Plug-in#Writing .22Send Via.22 Functionality to E-mail and Bluetooth|Send via Email/Bluetooth]]

=== interface.h ===

In the interface header file &lt;code&gt;interface.h&lt;/code&gt;, public functions are defined for &lt;code&gt;main.c&lt;/code&gt; and &lt;code&gt;callbacks.c&lt;/code&gt;. In the case of MaemoPad, confirmation responses for the save changes note, &lt;code&gt;MaemopadError&lt;/code&gt; enum for the Hildon error note and the &lt;code&gt;AppUIData&lt;/code&gt; are also defined here. '''N.B.''' &lt;code&gt;AppUIData&lt;/code&gt; can also be defined in &lt;code&gt;appdata.h&lt;/code&gt; in some other applications. MaemoPad's &lt;code&gt;interface.h&lt;/code&gt; looks like this:

&lt;source lang=&quot;c&quot;&gt;
#define MAIN_VIEW_NAME &quot;AppUIData&quot;
typedef enum {
    MAEMOPAD_NO_ERROR = 0,
    MAEMOPAD_ERROR_INVALID_URI,
    MAEMOPAD_ERROR_SAVE_FAILED,
    MAEMOPAD_ERROR_OPEN_FAILED
} MaemopadError;
/* Struct to include view's information */
typedef struct _AppUIData AppUIData;
struct _AppUIData
{
    /* Handle to app's data */
    AppData *data;
    /* Fullscreen mode is on (TRUE) or off (FALSE) */
    gboolean fullscreen;
    /* Items for menu */
    GtkWidget *file_item;
    GtkWidget *new_item;
    /* ... */
    GtkWidget *font_item;
    GtkWidget *fullscreen_item;
    /* Toolbar */
    GtkWidget* toolbar;
    GtkWidget* iconw;
    GtkToolItem* new_tb;
    GtkToolItem* open_tb;
    /* ... */
    /* Textview related */
    GtkWidget* scrolledwindow;   /* textview is under this widget */
    GtkWidget* textview;         /* widget that shows the text */
    GtkTextBuffer* buffer;       /* buffer that contains the text */
    GtkClipboard* clipboard;     /* clipboard for copy/paste */
    PangoFontDescription* font_desc;    /* font used in textview */
    gboolean file_edited;     /* tells is our file on view edited */
    gchar* file_name;         /* directory/file under editing */
};
/* Public functions: */
AppUIData* interface_main_view_new( AppData* data );
void interface_main_view_destroy( AppUIData* main );
char* interface_file_chooser( AppUIData* main, GtkFileChooserAction action );
PangoFontDescription* interface_font_chooser( AppUIData * main );
/* ... */
&lt;/source&gt;

== Localization ==

Localization means translating the application into different languages. In Maemo, this is fairly easily performed by grouping all the strings needing translations into a .po file, giving them each an id, and then using the id in the code instead of hard-coded strings. The function used to generate the translated strings from an id in Maemo is the standard GNU &lt;code&gt;gettext()&lt;/code&gt;.

===Initialization ===

When the application runs, &lt;code&gt;gettext()&lt;/code&gt; is used to determine the correct language depending on the locale settings. The application initializes the text domain as follows:

&lt;source lang=&quot;c&quot;&gt;
int main( int argc, char* argv[] )
{
    /* ... */
    /* Initialize the locale stuff */
    setlocale ( LC_ALL, &quot;&quot; );
    bindtextdomain ( GETTEXT_PACKAGE, LOCALEDIR );
    bind_textdomain_codeset(GETTEXT_PACKAGE, &quot;UTF-8&quot;);
    textdomain ( GETTEXT_PACKAGE );
    /* ... */
}
&lt;/source&gt;

More information on localization can be found in the [[Documentation/Maemo 5 Developer Guide/Application Development/Maemo Localization|Maemo localization]] section.

=== File structure ===

Localization files are stored in the &lt;code&gt;po/&lt;/code&gt; directory. The following files are used for MaemoPad localization:

* &lt;code&gt;Makefile.am&lt;/code&gt;
* &lt;code&gt;POTFILES.in&lt;/code&gt;
* &lt;code&gt;en_GB.po&lt;/code&gt;

&lt;code&gt;POTFILES.in&lt;/code&gt; contains the list of the source code files to be localized. In MaemoPad, only main.c and interface.c contain strings that need to be localized.

 # List of MaemoPad source files to be localized
 ../src/main.c
 ../src/ui/interface.c

File &lt;code&gt;en_GB.po&lt;/code&gt; includes translated text for British English. It contains pairs of id/string as follows:

 # ...
 msgid &quot;maemopad_yes&quot;
 msgstr &quot;Yes&quot;
 # ...

'''N.B.''' The comments in .po file start with ``#``.

=== Using en_GB.po ===

The msgid(s) are passed to the GNU &lt;code&gt;gettext()&lt;/code&gt; function as a parameter to generate the translated string. In Maemo, the recommended way is

&lt;source lang=&quot;c&quot;&gt;
#define _(String) gettext(String)
&lt;/source&gt;

Therefore, in MaemoPad, the string for Menu-&amp;gt;File-&amp;gt;Open menu is created as follows:

&lt;source lang=&quot;c&quot;&gt;
main-&gt;open_item = gtk_menu_item_new_with_label ( _(&quot;Open&quot;) );
&lt;/source&gt;

==== Creating .po files from source ====

Sometimes code must be localized for applications that were not originally designed for localization. You can create .po files from source code using [http://www.gnu.org/software/gettext/ GNU xgettext], by extracting all the strings from the source files into a &lt;code&gt;template.po&lt;/code&gt; file

 xgettext -f POTFILES.in -C -a -o template.po

Read the man page for xgettext for more information, in short:

* &lt;code&gt;-f POTFILES.in&lt;/code&gt; uses &lt;code&gt;POTFILES.in&lt;/code&gt; to get the files to be localized
* &lt;code&gt;-C&lt;/code&gt; is for C-code type of strings
* &lt;code&gt;-a&lt;/code&gt; is for ensuring that we get all strings from specified files
* &lt;code&gt;-o template.po&lt;/code&gt; defines the output filename.

The next step is to copy this &lt;code&gt;template.po&lt;/code&gt; into &lt;code&gt;./po/en_GB.po&lt;/code&gt; and add or edit all the strings in British English. Other languages can be handled in the same way.

== Adding application to menu ==

In short, the &lt;code&gt;maemopad.desktop&lt;/code&gt; and &lt;code&gt;com.nokia.maemopad.service&lt;/code&gt; files are stored in the &lt;code&gt;./data&lt;/code&gt; directory, and they look like this, respectively:

 [Desktop Entry]
 Encoding=UTF-8
 Version=0.1
 Type=Application
 Name=MaemoPad
 Exec=/usr/bin/maemopad
 Icon=maemopad
 X-Window-Icon=maemopad
 X-Window-Icon-Dimmed=maemopad
 X-Osso-Service=com.nokia.maemopad
 X-Osso-Type=application/x-executable

('''N.B.''' Whitespace is not allowed after the lines.)

 # Service description file
 [D-BUS Service]
 Name=com.nokia.maemopad
 Exec=/usr/bin/maemopad

These files reside on the device here:

* &lt;code&gt;/usr/share/applications/hildon&lt;/code&gt;
* &lt;code&gt;/usr/share/dbus-1/services&lt;/code&gt;

When the Debian package is installed to Maemo platform, .desktop and .service files are used to link MaemoPad to the Task Navigator.

== Packaging the application ==

{{main|Packaging}}

A Debian package is an application packed in one file to make installing easy in Debian-based operating systems, like Maemo platform. More information about creating a Debian packages can be found in the [[Documentation/Maemo 5 Developer Guide/Packaging%2C Deploying and Distributing#Creating Debian Packages|creating Debian packages]] section of the [[Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing|Packaging, Deploying and Distributing chapter]]. Our goal in this section is to create a Debian package of MaemoPad, to be installed in the Maemo platform.

If creating a package that can be installed using the Application Manager, be sure that the package is in an [[Documentation/Maemo 5 Developer Guide/Packaging%2C Deploying and Distributing#Sections|allowed section]].

=== Creating debian/ Directory ===

In order to create the package, the following files are created in the &lt;code&gt;debian/&lt;/code&gt; directory:

* &lt;code&gt;changelog&lt;/code&gt;
* &lt;code&gt;control&lt;/code&gt;
* &lt;code&gt;copyright&lt;/code&gt;
* &lt;code&gt;rules&lt;/code&gt;
* ... etc ...

The &lt;code&gt;rules&lt;/code&gt; file is the file defining how the Debian package is built. The &lt;code&gt;rules&lt;/code&gt; file tells where the files should be installed. Also a &lt;code&gt;control&lt;/code&gt; file is needed to define what kind of packages (often different language versions) are going to be created. &lt;code&gt;changelog&lt;/code&gt; and &lt;code&gt;copyright&lt;/code&gt; files are also needed, or the package does not build. The &lt;code&gt;changelog&lt;/code&gt; file consists of the version number of the package, and a short description about changes compared to older versions. The &lt;code&gt;copyright&lt;/code&gt; file includes information in plain text about the package copyrights.

Most important lines in rules file are:

&lt;source lang=&quot;bash&quot;&gt;
# Add here commands to install the package into debian/&lt;installation directory&gt;
$(MAKE) install DESTDIR=$(CURDIR)/debian/&lt;installation directory&gt;
&lt;/source&gt;

These lines define where the package files are installed. &lt;code&gt;debian/&lt;installation directory&gt;&lt;/code&gt; is used as a temporary directory for package construction.

=== Creating and building the package ===

The package is made using the following command:

 dpkg-buildpackage -rfakeroot -uc -us -sa -D

The result should be these MaemoPad files:

* &lt;code&gt;maemopad_x.x.dsc&lt;/code&gt;
* &lt;code&gt;maemopad_x.x.tar.gz&lt;/code&gt;
* &lt;code&gt;maemopad_x.x_i386.changes&lt;/code&gt;
* &lt;code&gt;maemopad_x.x_i386.deb&lt;/code&gt;

A .deb file now exists. This package can be installed using:
 fakeroot dpkg -i maemopad_x.x_i386.deb
The icon to the application should now be in the Maemo Task Navigator menu, and it should be launchable from there. To remove the package, use the command
 fakeroot dpkg -r maemopad

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Application Development/Writing a new maemo application</title>
    <id>2932</id>
    <revision>
      <id>43457</id>
      <timestamp>2011-05-14T08:43:26Z</timestamp>
      <contributor>
        <ip>88.114.203.150</ip>
      </contributor>
      <comment>I removed font tag from example code</comment>
      <text xml:space="preserve">This section is a guide for making new applications for the Maemo platform. Maemo 5 SDK needs to be installed successfully as a pre-requisite. 

A simple text editor with a few essential features is used as a example. Let us name it as ''MaemoPad''.

MaemoPad has the following basic features: ''New'', ''Open'', ''Save'', ''Save As...'', ''Cut'', ''Copy'', ''Paste'', ''Font'', ''Full Screen'', ''Full Screen'' hardware key handling, ''Send-Via email/bluetooth'' and ''Close''. For simplicity, it does not contain advanced features like ''Undo'', ''Redo'', different fonts in one document, pictures, tables, etc.

The figure below is a screenshot of the text editor.

[[Image:Maemopad2.png|500px|alt=Screenshot of MaemoPad|MaemoPad text editor]]

== Creating the application file structure ==

In general, a Maemo application uses the [[../../GNU Build System|GNU Build System]] and has the following files and subdirectories:
* &lt;code&gt;src/&lt;/code&gt;: Contains the source files.
* &lt;code&gt;debian/&lt;/code&gt;: Contains the files related to Debian packaging
* &lt;code&gt;data/&lt;/code&gt;: Contains all data files needed to run the application. Maemopad will need the following data files:
**&lt;code&gt;maemopad.desktop&lt;/code&gt; file 
**D-Bus &lt;code&gt;maemopad.service&lt;/code&gt; file 
**application icons in a separate directory called &lt;code&gt;icons/&lt;/code&gt;
* &lt;code&gt;po/&lt;/code&gt;: Contains the localization files. Maemopad contains the following files:
** &lt;code&gt;POTFILES.in&lt;/code&gt; list the names of the files to be localized.
** Translation file &lt;code&gt;en_GB.po&lt;/code&gt; containing British English strings for the application.
** Translation file &lt;code&gt;fi_FI.po&lt;/code&gt; containing Finnish strings for the application.
* &lt;code&gt;autogen.sh&lt;/code&gt; is a shell script that provides automatic build system preparation.
* &lt;code&gt;configure.ac&lt;/code&gt; is an input file for &lt;code&gt;autoconf&lt;/code&gt; that contains &lt;code&gt;autoconf&lt;/code&gt; macros that test the system features the package needs or can use. It produces the &lt;code&gt;configure&lt;/code&gt; script.
* &lt;code&gt;Makefile.am&lt;/code&gt; is used by &lt;code&gt;automake&lt;/code&gt; to produce a standards-compliant &lt;code&gt;Makefile.in&lt;/code&gt;. The &lt;code&gt;Makefile.am&lt;/code&gt; in the top source directory is usually very simple and includes the files and subdirectories needed to make the application: &lt;code&gt;src/&lt;/code&gt;, &lt;code&gt;po/&lt;/code&gt; and &lt;code&gt;data/&lt;/code&gt; and all the &lt;code&gt;Makefile&lt;/code&gt;s in &lt;code&gt;src/&lt;/code&gt;, &lt;code&gt;po/&lt;/code&gt;, and &lt;code&gt;data/&lt;/code&gt; directories.

You can compile the source as follows:
 
  [sbox-FREMANTLE_X86 ~] &gt; ./autogen.sh 
  [sbox-FREMANTLE_X86 ~] &gt;$ ./configure 
  [sbox-FREMANTLE_X86 ~] &gt;$ make

For more information about GNU autoconf and automake, see the [[Documentation/Maemo 5 Developer Guide/GNU Build System|GNU build system]] article.

== Coding the application ==

The src/ directory of MaemoPad contains the following files:
* main.c
* maemopad-window.h
* maemopad-window.c
* fullscreenmanager.c
* fullscreenmanage.h
* Makefile.am

=== maemopad-window.h ===

&lt;code&gt;[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemopad/src/maemopad-window.h maemopad-window.h]&lt;/code&gt; defines the &lt;code&gt;MaemopadWindow&lt;/code&gt; structure to hold the application data and other declarations. Even though the data varies depending on the application, a sample structure might look like this:

&lt;source lang=&quot;c&quot;&gt;
typedef struct _MaemopadWindow MaemopadWindow;

struct _MaemopadWindow
{
  HildonWindow parent;

  /* Osso context, needed for &quot;send via&quot; functionality. */
  osso_context_t *osso; 

  /* Fullscreen mode is on (TRUE) or off (FALSE): */
  gboolean fullscreen;

  /* Button items for menu: */
  GtkWidget *new_item;
  GtkWidget *open_item;
  GtkWidget *save_item;
  GtkWidget *saveas_item;
  GtkWidget *cut_item;
  GtkWidget *copy_item;
  GtkWidget *paste_item;
  /*.....more...truncated...*/
};
&lt;/source&gt;

Where &lt;code&gt;MaemopadWindow&lt;/code&gt; is a structure containing pointers to all the UI objects, such as &lt;code&gt;HildonWindow&lt;/code&gt;, menu items, toolbar; and UI-related data, for instance a boolean variable indicating whether the application is in fullscreen mode.

Each application creates its own &lt;code&gt;AppData&lt;/code&gt; variable, and this variable is usually passed around as a parameter in the functions, particularly the callback functions, so that the applications data can be accessible by the functions.

Many applications declare this &lt;code&gt;AppData&lt;/code&gt; variable as global.

=== main.c ===

main.c usually performs, at least, the following functions:

* Initializing GTK+
* Initializing localization
* Creating an instance of &lt;code&gt;HildonProgram&lt;/code&gt;
* Calling to a function, usually defined in &lt;code&gt;interface.c&lt;/code&gt;, to create the main view.
* Connecting the main view window to the created &lt;code&gt;HildonProgram&lt;/code&gt;
* Running &lt;code&gt;gtk_main()&lt;/code&gt;
* Connecting the &lt;code&gt;delete_event&lt;/code&gt; of the main view to a callback function to handle a proper application exit, such as destroying the main view window, freeing used memory and saving application states before exit.
* Call &lt;code&gt;gtk_main_quit()&lt;/code&gt;

Here is the main function of MaemoPad with comments:

&lt;source lang=&quot;c&quot;&gt;
int main (int argc, char* argv[])
{
  osso_context_t *osso = NULL;
  AppData *data = g_new0 (AppData, 1);
 
  /* Initialize the locale stuff: */
  setlocale (LC_ALL, &quot;&quot;);
  bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
  bind_textdomain_codeset(GETTEXT_PACKAGE, &quot;UTF-8&quot;);
  textdomain (GETTEXT_PACKAGE);
 
  /* Inititialize GTK+ and hildon: */
  hildon_gtk_init (&amp;argc, &amp;argv);
 
  if (!g_thread_supported()) {
    g_thread_init (NULL);
  }
 
  /* Create the hildon application and setup the title: */
  data-&gt;program = HILDON_PROGRAM (hildon_program_get_instance ());
  g_set_application_name (_(&quot;MaemoPad&quot;));
 
  /* We need the osso context to call libmodest_dbus_client_compose_mail() later. */
  osso = osso_initialize (OSSO_SERVICE, VERSION, TRUE, NULL);
  g_assert (osso);
 
  /* Create the window for our application: */
  data-&gt;window = maemopad_window_new (osso);
  hildon_program_add_window (data-&gt;program, data-&gt;window);
 
  /* Show the main window and start the mainloop, 
   * quitting the mainloop when it the main window is hidden:
   */
  gtk_widget_show (GTK_WIDGET (data-&gt;window));
  g_signal_connect(data-&gt;window, &quot;hide&quot;, G_CALLBACK (&amp;on_main_window_hide), NULL);
  g_signal_connect(data-&gt;window, &quot;delete_event&quot;, 
    G_CALLBACK (&amp;gtk_widget_hide_on_delete), NULL);
  gtk_main();
   
  /* Clean up: */
  gtk_widget_destroy (GTK_WIDGET (data-&gt;window));
  g_free (data);
 
  return 0;
}
&lt;/source&gt;

== User interface ==

The graphical user interface code is implemented in directory &lt;code&gt;./src/ui/&lt;/code&gt;. It contains two .c files: &lt;code&gt;interface.c&lt;/code&gt; and &lt;code&gt;callbacks.c&lt;/code&gt;

=== interface.c ===

This file creates the graphical user interface (GUI) and connects the signals and events to appropriate handlers defined in &lt;code&gt;callbacks.c&lt;/code&gt;. See the [http://www.forum.nokia.com/info/sw.nokia.com/id/eb8a68ba-6225-4d84-ba8f-a00e4a05ff6f/Hildon_2_2_UI_Style_Guide.html Hildon UI style guide] for information on how to create GUI in Maemo. For more information on GTK+ see the [http://maemo.org/api_refs/5.0/5.0-final/gtk/ GTK+ Reference Manual].

As a general practice, an &lt;code&gt;AppUIData&lt;/code&gt; struct variable is created when creating the GUI. And then, a &lt;code&gt;HildonWindow&lt;/code&gt; and smaller components are created in different functions, such as &lt;code&gt;create_menu()&lt;/code&gt;, &lt;code&gt;create_toolbar()&lt;/code&gt;. When creating each component, &lt;code&gt;AppUIData&lt;/code&gt; should refer to various necessary UI objects created along the way.

The following excerpt shows how &lt;code&gt;AppUIData&lt;/code&gt; is created, and how it points to the toolbar and the button ''New file'' on the toolbar.

&lt;source lang=&quot;c&quot;&gt;
/* Creates and initializes a main_view */
AppUIData* interface_main_view_new( AppData *data )
{
    /* Zero memory with g_new0 */
    AppUIData* result = g_new0( AppUIData, 1 );
    /*....*/
    create_toolbar( result );
    /*....*/
}
/* Create toolbar to mainview */
static void create_toolbar ( AppUIData *main )
{
    /* Create new GTK toolbar */
    main-&gt;toolbar = gtk_toolbar_new ();
    /*....*/
    /* Create the &quot;New file&quot; button in the toolbar */
    main-&gt;new_tb = gtk_tool_button_new_from_stock(GTK_STOCK_NEW);
    /*....*/
}
&lt;/source&gt;

=== callbacks.c ===

&lt;code&gt;callbacks.c&lt;/code&gt; defines all the functions that handle the signals or events that might be triggered by the UI. When creating different UI objects in &lt;code&gt;interface.c&lt;/code&gt;, the handlers are registered as follows.

&lt;source lang=&quot;c&quot;&gt;
/* Create the menu items needed for the drop down menu */
static void create_menu( AppUIData *main )
{
    /* ... */
    main-&gt;new_item = gtk_menu_item_new_with_label ( _(&quot;New&quot;) );
    /* ... */
    /* Attach the callback functions to the activate signal */
    g_signal_connect( G_OBJECT( main-&gt;new_item ), &quot;activate&quot;,
                      G_CALLBACK ( callback_file_new), main );
    /* ... */
}
&lt;/source&gt;

Function &lt;code&gt;callback_file_new&lt;/code&gt; is implemented in &lt;code&gt;callbacks.c&lt;/code&gt;, saving the current file if needed, and then opening a new file to edit.

&lt;source lang=&quot;c&quot;&gt;
void callback_file_new(GtkAction * action, gpointer data)
{
    gint answer;
    AppUIData *mainview = NULL;
    mainview = ( AppUIData * ) data;
    g_assert(mainview != NULL &amp;&amp; mainview-&gt;data != NULL );
    /* save changes note if file is edited */
    if( mainview-&gt;file_edited ) {
        answer = interface_save_changes_note( mainview );
        if( answer == CONFRESP_YES ) {
            if( mainview-&gt;file_name == NULL ) {
                mainview-&gt;file_name = interface_file_chooser(mainview, GTK_FILE_CHOOSER_ACTION_SAVE);
            }
            write_buffer_to_file ( mainview );
        }
    }
    /* clear buffer, filename and free buffer text */
    gtk_text_buffer_set_text ( GTK_TEXT_BUFFER (mainview-&gt;buffer), &quot;&quot;, -1 );
    mainview-&gt;file_name = NULL;
    mainview-&gt;file_edited = FALSE;
}
&lt;/source&gt;

N.B. The &lt;code&gt;AppUIData&lt;/code&gt; struct variable &lt;code&gt;mainview&lt;/code&gt; is retrieved in such a way that the handlers can have a direct effect on the UI for the users.

MaemoPad contains many functions:

* File Save/Save-As/Open: This uses &lt;code&gt;HildonFileChooserDialog&lt;/code&gt;.
* Edit Cut/Copy/Paste: This uses the clipboard ([[Documentation/Maemo 5 Developer Guide/Using Data Sharing/Clipboard Usage|clipboard usage]])
* Font/Color Selector: These are explained in &lt;code&gt;HildonFontSelectionDialog&lt;/code&gt; and &lt;code&gt;HildonColorChooser&lt;/code&gt;.
* [[Documentation/Maemo 5 Developer Guide/Using Data Sharing/Sharing Plug-in#Writing .22Send Via.22 Functionality to E-mail and Bluetooth|Send via Email/Bluetooth]]

=== interface.h ===

In the interface header file &lt;code&gt;interface.h&lt;/code&gt;, public functions are defined for &lt;code&gt;main.c&lt;/code&gt; and &lt;code&gt;callbacks.c&lt;/code&gt;. In the case of MaemoPad, confirmation responses for the save changes note, &lt;code&gt;MaemopadError&lt;/code&gt; enum for the Hildon error note and the &lt;code&gt;AppUIData&lt;/code&gt; are also defined here. '''N.B.''' &lt;code&gt;AppUIData&lt;/code&gt; can also be defined in &lt;code&gt;appdata.h&lt;/code&gt; in some other applications. MaemoPad's &lt;code&gt;interface.h&lt;/code&gt; looks like this:

&lt;source lang=&quot;c&quot;&gt;
#define MAIN_VIEW_NAME &quot;AppUIData&quot;
typedef enum {
    MAEMOPAD_NO_ERROR = 0,
    MAEMOPAD_ERROR_INVALID_URI,
    MAEMOPAD_ERROR_SAVE_FAILED,
    MAEMOPAD_ERROR_OPEN_FAILED
} MaemopadError;
/* Struct to include view's information */
typedef struct _AppUIData AppUIData;
struct _AppUIData
{
    /* Handle to app's data */
    AppData *data;
    /* Fullscreen mode is on (TRUE) or off (FALSE) */
    gboolean fullscreen;
    /* Items for menu */
    GtkWidget *file_item;
    GtkWidget *new_item;
    /* ... */
    GtkWidget *font_item;
    GtkWidget *fullscreen_item;
    /* Toolbar */
    GtkWidget* toolbar;
    GtkWidget* iconw;
    GtkToolItem* new_tb;
    GtkToolItem* open_tb;
    /* ... */
    /* Textview related */
    GtkWidget* scrolledwindow;   /* textview is under this widget */
    GtkWidget* textview;         /* widget that shows the text */
    GtkTextBuffer* buffer;       /* buffer that contains the text */
    GtkClipboard* clipboard;     /* clipboard for copy/paste */
    PangoFontDescription* font_desc;    /* font used in textview */
    gboolean file_edited;     /* tells is our file on view edited */
    gchar* file_name;         /* directory/file under editing */
};
/* Public functions: */
AppUIData* interface_main_view_new( AppData* data );
void interface_main_view_destroy( AppUIData* main );
char* interface_file_chooser( AppUIData* main, GtkFileChooserAction action );
PangoFontDescription* interface_font_chooser( AppUIData * main );
/* ... */
&lt;/source&gt;

== Localization ==

Localization means translating the application into different languages. In Maemo, this is fairly easily performed by grouping all the strings needing translations into a .po file, giving them each an id, and then using the id in the code instead of hard-coded strings. The function used to generate the translated strings from an id in Maemo is the standard GNU &lt;code&gt;gettext()&lt;/code&gt;.

===Initialization ===

When the application runs, &lt;code&gt;gettext()&lt;/code&gt; is used to determine the correct language depending on the locale settings. The application initializes the text domain as follows:

&lt;source lang=&quot;c&quot;&gt;
int main( int argc, char* argv[] )
{
    /* ... */
    /* Initialize the locale stuff */
    setlocale ( LC_ALL, &quot;&quot; );
    bindtextdomain ( GETTEXT_PACKAGE, LOCALEDIR );
    bind_textdomain_codeset(GETTEXT_PACKAGE, &quot;UTF-8&quot;);
    textdomain ( GETTEXT_PACKAGE );
    /* ... */
}
&lt;/source&gt;

More information on localization can be found in the [[Documentation/Maemo 5 Developer Guide/Application Development/Maemo Localization|Maemo localization]] section.

=== File structure ===

Localization files are stored in the &lt;code&gt;po/&lt;/code&gt; directory. The following files are used for MaemoPad localization:

* &lt;code&gt;Makefile.am&lt;/code&gt;
* &lt;code&gt;POTFILES.in&lt;/code&gt;
* &lt;code&gt;en_GB.po&lt;/code&gt;

&lt;code&gt;POTFILES.in&lt;/code&gt; contains the list of the source code files to be localized. In MaemoPad, only main.c and interface.c contain strings that need to be localized.

 # List of MaemoPad source files to be localized
 ../src/main.c
 ../src/ui/interface.c

File &lt;code&gt;en_GB.po&lt;/code&gt; includes translated text for British English. It contains pairs of id/string as follows:

 # ...
 msgid &quot;maemopad_yes&quot;
 msgstr &quot;Yes&quot;
 # ...

'''N.B.''' The comments in .po file start with ``#``.

=== Using en_GB.po ===

The msgid(s) are passed to the GNU &lt;code&gt;gettext()&lt;/code&gt; function as a parameter to generate the translated string. In Maemo, the recommended way is

&lt;source lang=&quot;c&quot;&gt;
#define _(String) gettext(String)
&lt;/source&gt;

Therefore, in MaemoPad, the string for Menu-&amp;gt;File-&amp;gt;Open menu is created as follows:

&lt;source lang=&quot;c&quot;&gt;
main-&gt;open_item = gtk_menu_item_new_with_label ( _(&quot;Open&quot;) );
&lt;/source&gt;

==== Creating .po files from source ====

Sometimes code must be localized for applications that were not originally designed for localization. You can create .po files from source code using [http://www.gnu.org/software/gettext/ GNU xgettext], by extracting all the strings from the source files into a &lt;code&gt;template.po&lt;/code&gt; file

 xgettext -f POTFILES.in -C -a -o template.po

Read the man page for xgettext for more information, in short:

* &lt;code&gt;-f POTFILES.in&lt;/code&gt; uses &lt;code&gt;POTFILES.in&lt;/code&gt; to get the files to be localized
* &lt;code&gt;-C&lt;/code&gt; is for C-code type of strings
* &lt;code&gt;-a&lt;/code&gt; is for ensuring that we get all strings from specified files
* &lt;code&gt;-o template.po&lt;/code&gt; defines the output filename.

The next step is to copy this &lt;code&gt;template.po&lt;/code&gt; into &lt;code&gt;./po/en_GB.po&lt;/code&gt; and add or edit all the strings in British English. Other languages can be handled in the same way.

== Adding application to menu ==

In short, the &lt;code&gt;maemopad.desktop&lt;/code&gt; and &lt;code&gt;com.nokia.maemopad.service&lt;/code&gt; files are stored in the &lt;code&gt;./data&lt;/code&gt; directory, and they look like this, respectively:

 [Desktop Entry]
 Encoding=UTF-8
 Version=0.1
 Type=Application
 Name=MaemoPad
 Exec=/usr/bin/maemopad
 Icon=maemopad
 X-Window-Icon=maemopad
 X-Window-Icon-Dimmed=maemopad
 X-Osso-Service=com.nokia.maemopad
 X-Osso-Type=application/x-executable

('''N.B.''' Whitespace is not allowed after the lines.)

 # Service description file
 [D-BUS Service]
 Name=com.nokia.maemopad
 Exec=/usr/bin/maemopad

These files reside on the device here:

* &lt;code&gt;/usr/share/applications/hildon&lt;/code&gt;
* &lt;code&gt;/usr/share/dbus-1/services&lt;/code&gt;

When the Debian package is installed to Maemo platform, .desktop and .service files are used to link MaemoPad to the Task Navigator.

== Packaging the application ==

{{main|Packaging}}

A Debian package is an application packed in one file to make installing easy in Debian-based operating systems, like Maemo platform. More information about creating a Debian packages can be found in the [[Documentation/Maemo 5 Developer Guide/Packaging%2C Deploying and Distributing#Creating Debian Packages|creating Debian packages]] section of the [[Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing|Packaging, Deploying and Distributing chapter]]. Our goal in this section is to create a Debian package of MaemoPad, to be installed in the Maemo platform.

If creating a package that can be installed using the Application Manager, be sure that the package is in an [[Documentation/Maemo 5 Developer Guide/Packaging%2C Deploying and Distributing#Sections|allowed section]].

=== Creating debian/ Directory ===

In order to create the package, the following files are created in the &lt;code&gt;debian/&lt;/code&gt; directory:

* &lt;code&gt;changelog&lt;/code&gt;
* &lt;code&gt;control&lt;/code&gt;
* &lt;code&gt;copyright&lt;/code&gt;
* &lt;code&gt;rules&lt;/code&gt;
* ... etc ...

The &lt;code&gt;rules&lt;/code&gt; file is the file defining how the Debian package is built. The &lt;code&gt;rules&lt;/code&gt; file tells where the files should be installed. Also a &lt;code&gt;control&lt;/code&gt; file is needed to define what kind of packages (often different language versions) are going to be created. &lt;code&gt;changelog&lt;/code&gt; and &lt;code&gt;copyright&lt;/code&gt; files are also needed, or the package does not build. The &lt;code&gt;changelog&lt;/code&gt; file consists of the version number of the package, and a short description about changes compared to older versions. The &lt;code&gt;copyright&lt;/code&gt; file includes information in plain text about the package copyrights.

Most important lines in rules file are:

&lt;source lang=&quot;bash&quot;&gt;
# Add here commands to install the package into debian/&lt;installation directory&gt;
$(MAKE) install DESTDIR=$(CURDIR)/debian/&lt;installation directory&gt;
&lt;/source&gt;

These lines define where the package files are installed. &lt;code&gt;debian/&lt;installation directory&gt;&lt;/code&gt; is used as a temporary directory for package construction.

=== Creating and building the package ===

The package is made using the following command:

 dpkg-buildpackage -rfakeroot -uc -us -sa -D

The result should be these MaemoPad files:

* &lt;code&gt;maemopad_x.x.dsc&lt;/code&gt;
* &lt;code&gt;maemopad_x.x.tar.gz&lt;/code&gt;
* &lt;code&gt;maemopad_x.x_i386.changes&lt;/code&gt;
* &lt;code&gt;maemopad_x.x_i386.deb&lt;/code&gt;

A .deb file now exists. This package can be installed using:
 fakeroot dpkg -i maemopad_x.x_i386.deb
The icon to the application should now be in the Maemo Task Navigator menu, and it should be launchable from there. To remove the package, use the command
 fakeroot dpkg -r maemopad

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Architecture</title>
    <id>2363</id>
    <revision>
      <id>38293</id>
      <timestamp>2010-09-02T14:44:18Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>Core Domain</comment>
      <text xml:space="preserve">*[[{{PAGENAME}}/Changes|Architecture Changes Since Maemo 4]]
*[[{{PAGENAME}}/Top Level Architecture|Top Level Architecture]]
*[[{{PAGENAME}}/UI_Framework|UI Framework]]
*[[{{PAGENAME}}/Core Domain|Core Domain]]
*[[{{PAGENAME}}/Multimedia Domain|Multimedia]]
*[[{{PAGENAME}}/RTCOM|RTCOM]]
*[[{{PAGENAME}}/System Software|System Software]]
*[[{{PAGENAME}}/Connectivity|Connectivity]]
*[[{{PAGENAME}}/Data Management|Data Management]]
*[[{{PAGENAME}}/Imaging and Sharing|Imaging and Sharing]]

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Architecture/Changes</title>
    <id>2556</id>
    <revision>
      <id>37722</id>
      <timestamp>2010-08-12T15:25:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>tidy</comment>
      <text xml:space="preserve">The Maemo 5 platform software is based on the Debian GNU/Linux distribution. While Debian provides a significant amount of our current code base, it also defines policies for build process, packaging, file system hierarchy and other processes. 
The intention is to follow current Debian code and processes as closely as possible, and deviate only when it is required due to technical or legal reasons. Differences between Debian and our policies and practices are documented in [[Packaging/Guidelines]].

==Architectural changes since Maemo 4==

*OMAP3 based application processor
*USB flashing and charging
*Hardware sensors such as accelerometer and proximity
*Portrait mode
*Upstart based boot scripts
*[[OpenGL-ES|OpenGL ES 2.0]] Graphics acceleration
*IVA 2.2 Video Acceleration

===Connectivity===

*BlueZ bluetooth stack updated to Bluez 4.x
*New Bluetooth chip driver introduced which supports BT2.1 configuration, which implies that mandatory BT2.1 features are added to the kernel and userspace BlueZ stack.
*WLAN architecture is changed to use the Linux mac80211 framework, which means that the closed source WLAN UMAC component in the kernel is removed and the new WLAN kernel implementation is fully open source.

===Multimedia===

* Clean split of decoders/sinks and encoders/sources
**Audio
***ARM optimised audio codecs
***Unmodified pulse/alsa /sink/source plugins
**Video
***DSP optimised video codecs (some via openmax)
*PulseAudio
**Audio routing and policy
**Audio pre- &amp; post processing
*Camera-bin
**High level api for still-image and video capture
*New GStreamer plugin introduced that wraps openmax-il components under the gstreamer API
*Speex introduced
*esound replaced by libcanberra
*Upgraded multimedia framework with technology novelties such as TV-out, A2DP stereo Headsets, FM-TX and expanded codec support: H.264, Mpeg-4 ASp (Xvid), WMA10.

===UI framework===

*Removal of left side Task Navigator and plugins.
*Separate processes for status bar, home and desktop.
*hildon-desktop process implements window management, task launcher and task switcher. The task launcher is a menu with application icons.
*hildon-home process implements notification manager, desktop background and graphical widgets.
*hildon-status-menu process implements the status menu and status area. 
*Removal of stylus keyboard
*Clutter introduced to access the hardware accelerated OpenGL graphics functionality. It is assumed that we have only one OpenGL drawing context and thus a single process running in the system is using clutter at a time. This process is hildon-desktop.
*UI style changes (navigation logic in applications, visual style of dialogs, menus etc)

===RTCOM===

*Farsight API break: Farsight upgraded/rewritten as Farsight2
*Mission control: 
*Logger API: rtcom-eventlogger introduced whose purpose is to serve as a general framework for storing and accessing a persistent log. 
*libtelepathy replaced by telepathy-glib
*libgalago and galago-daemon dropped

===Location Framework===

*Deprecated low level GPS libraries removed such as libgpsbt, libgpsmgr, gpsd daemon.
*gpsd replaced by liblocation API library and a set of on-request daemon processes for different location methods (Eg: gypsy-daemon for bluetooth GPS, location daemon for integrated GPS and network based methods)

===Calendar Backend===

calendar-backend is a new component that provides a C++ calendar API for external applications. It interacts with SQlite database, implements the iCal RFC to store the calendar entries and handles the database transactions.

===Media Application Framework===

The Media Application Framework (MAFW) provides an open, flexible and extensible layer that eases the development of multimedia applications for the Maemo platform. It is a complement to the Multimedia framework that has been heavily improved in Fremantle. MAFW provides:

An extendable, pluggable framework interface, which allows to develop new plugins that provide integration with new multimedia services or rendering engines, that can be seamlessly integrated in all MAFW based applications.
Easy to use APIs that speed up application developing, providing support for playback control, discovery and browsing of multimedia resources and playlist manipulation.
Independence of the technology. Since MAFW is a plugin based framework, it is not tied to a particular multimedia technology (GStreamer, MPlayer, Tracker). Plugin developers have freedom to choose the technologies they want to use in their plugins, and application developers do not need to know about them.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Architecture/Connectivity</title>
    <id>2359</id>
    <revision>
      <id>39627</id>
      <timestamp>2010-10-20T12:21:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>multimedia domain link</comment>
      <text xml:space="preserve">The Connectivity domain provides the APIs, user interfaces, and underlying user-space and kernel components for Wireless Internet connectivity, wireless local connectivity and Home connectivity. 

==Functionality provided==

===Internet connectivity===

Wireless Internet connectivity is supported for IPv4 over WLAN networks. IPv4 address configuration is done using DHCP or static addresses.

Internet Connectivity Daemon (ICd2) handles network connectivity in the Device. Applications should use the shared libconic library API to request connectivity instead of directly interacting with ICd2. Refer tothe API documentation for [http://maemo.org/api_refs/5.0/5.0-final/libconic/index.html libconic].

====Lower level implementation details====

Experienced developers can extend internet connectivity by adding new network interfaces using [http://maemo.org/api_refs/5.0/5.0-final/icd2/ ICd2] APIs. They can also control the WLAN interfaces using the [http://maemo.org/api_refs/5.0/5.0-final/osso-wlan/ D-Bus APIs provided osso-wlan]. If you wish to only the scan the network interfaces, then ICd2 is sufficient.

===Local connectivity===

The Wireless local connectivity consists of Bluetooth connectivity. [http://www.bluez.org/about/ Bluez] provides the Bluetooth protocol stack. Refer to the [http://maemo.org/api_refs/5.0/5.0-final/bluez/ API documentation] for its usage. It supports the following features:

* Data exchange between devices using BT OPP. Refer [http://maemo.org/api_refs/5.0/5.0-final/osso-gwobex/gw-obex_8h.html libgwobex] API reference for more details.
* Access the filesystem of the Rover device using BT FTP protocol. 
* Support for BT mono and stereo headsets via BT HSP, BT HFP and A2DP protocols.

===Home connectivity===

Home connectivity consists of a UPnP stack with Internet Gateway Device (IGD) and Audio Video (AV) support. GUPnP stack supported by [[Documentation/Maemo 5 Developer Guide/Architecture/Multimedia Domain|Multimedia domain]] should be used for any new application development. 

The old clinkc UPnP stack provided by Connectivity domain still exists due to legacy reasons and is deprecated.

===User Interface===

The Connectivity domain also includes UI components related to Connectivity. These include the connectivity related status bar indicators, dialogs, applications, wizards, and control panel applets.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Architecture/Core Domain</title>
    <id>2382</id>
    <revision>
      <id>38352</id>
      <timestamp>2010-09-07T11:18:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* X Window System */ [[OpenGL-ES]] link</comment>
      <text xml:space="preserve">[[Image:core_top_level_decomposition.png|500px|alt=Diagram|Core architecture]]

==Nolo bootloader==

;Name
: NoLo (Nokia Loader)
;Purpose
: The bootloader does basic configuration of the HW, loads the kernel into memory, and passes control to the kernel. In addition to this basic task the NoLo boot loader has many features to support R&amp;D. (The capability to [[update the firmware|flash the device]] is currently implemented in NoLo but it will become an R&amp;D feature once flashing is moved to user space.)
;Responsibilities
: &lt;ul&gt;&lt;li&gt;Load kernel into memory&lt;/li&gt;&lt;li&gt;Initialize HW so that kernel is able to boot&lt;/li&gt;&lt;li&gt;Pass ATAGs to the kernel and transfer execution to the kernel &lt;/li&gt;&lt;li&gt;Production line flashing functionality&lt;/li&gt;&lt;li&gt;Creates partitions&lt;/li&gt;&lt;/ul&gt;
;Package / License
: [http://maemo.org/packages/view/nolo/ nolo] / Nokia

==Linux Kernel==

;Purpose
: The function of the kernel code is to provide all the basic services and hardware interfaces of the Linux operating system for the underlying programs. The kernel also passes the control to the chosen user space program (usually &lt;code&gt;/sbin/init&lt;/code&gt;) after initializing its own structures and drivers. When the kernel starts up, it checks a lot of the available subsystems and initializes everything according to the kernel configuration chosen at compile time. Some subsystems will be left uninitialized by the boot loader, for example, the display subsystem.
;Responsibilities
: The operating system kernel
;Notes
: Maemo specific functionality is in OMAP3 &amp; Rover HW specific code. OMAP3 support is developed, generally speaking, in the linux-omap tree, from which code is pulled into Maemo kernel.
;Package / License
: [http://maemo.org/packages/view/kernel/ kernel] / GPL2
;Public interfaces provided
: Linux kernel API: Linux system calls accessed through the C library

===Kernel core services===

;Purpose
: The Linux core services comprise generic, hardware independent code.
;Responsibilities
: &lt;ul&gt;&lt;li&gt;memory management&lt;/li&gt;&lt;li&gt;process management&lt;/li&gt;&lt;li&gt;device management&lt;/li&gt;&lt;li&gt;inter-process communication…&lt;/li&gt;&lt;/ul&gt;
;Notes
: Used as is.
;Package / License
: [http://maemo.org/packages/view/kernel/ kernel] / GPL2

===ARM architecture support===

;Purpose
: The ARM architecture subsystem in the kernel provides mainly ARM specific implementations of necessary core mechanisms.
;Responsibilities
: ARM specific implementations of kernel mechanisms.
;Notes
: Used as is.
;Package / License
: [http://maemo.org/packages/view/kernel/ kernel] / GPL2

===Kernel framework===

;Purpose
: The low level HW drivers provide the concrete implementation that is bound to the virtual services in the Linux kernel to provide the complete functionality. 
;Responsibilities
: &lt;ul&gt;&lt;li&gt;ALSA &amp; Video for Linux 2 (V4L2) APIs,Networking stack, BlueZ (Bluetooth), mac80211 (WLAN), USB core&lt;/li&gt;&lt;li&gt;Virtual File System, file systems, block devices, MTD&lt;/li&gt;&lt;li&gt;Frame buffer, serial port, input layer (keyboard, touch screen)&lt;/li&gt;&lt;/ul&gt;
;Package / License
: [http://maemo.org/packages/view/kernel/ kernel] / GPL2
;Public interfaces provided
: &lt;ul&gt;&lt;li&gt;ALSA: Advanced Linux Sound Architecture, de facto Linux sound API.&lt;/li&gt;&lt;li&gt;V4L2: Video for Linux 2, de facto video capture API + Maemo specific ioctls&lt;/li&gt;&lt;li&gt;Camera ioctls: Extensions to V4L2 interface used by the camera daemon.&lt;/li&gt;&lt;li&gt;File systems: FAT16/32, EXT3 and UBIFS file systems are currently supported on the platform.&lt;/li&gt;&lt;li&gt;Frame buffer: The raw frame buffer interface is used in early stages of the boot.&lt;/li&gt;&lt;li&gt;Input layer: The input layer events are routed via X to applications.&lt;/li&gt;&lt;li&gt;Serial port: Available for R&amp;D use.&lt;/li&gt;&lt;/ul&gt;

===OMAP3 support===

;Purpose
: OMAP specific code implements the device drivers and bus support for the specific hardware included in the OMAP3430 chip. The supported OMAP3 subsystems are described in the following subsections.
;Responsibilities
: &lt;ul&gt;&lt;li&gt;DMA: OMAP3 has a 32 channel general purpose DMA controller, display DMA, HS USB DMA, and IVA 2.2 DMA (not supported).&lt;/li&gt;&lt;li&gt;Interrupt handling:OMAP3 has an interrupt controller (MPU INTC) with 96 synchronous interrupt lines.&lt;/li&gt;&lt;li&gt;OMAP3 specific power management functionality: The power management functionality is built on top of idle, sleep, suspend, resume, and dynamic voltage &amp; frequency scaling functionalities [SystemSW].&lt;/li&gt;&lt;li&gt;DSP Bridge, ioMMU, OMAP watchdog, GPIOs, timers, Muxing framework&lt;/li&gt;&lt;li&gt;Gpmc (OneNAND driver), hsmmc (MMC/SD)&lt;/li&gt;&lt;li&gt;Bus drivers: spi, i2c, McBSP, uart, SSI&lt;/li&gt;&lt;/ul&gt;
;Package / License
: [http://maemo.org/packages/view/kernel/ kernel] / GPL2

===DSP Bridge===

;Purpose
: OMAP's integrated DSP allows offloading tasks to the DSP from the ARM processor.  This is exposed with the DSP bridge component.
;Responsibilities
: Interface to the OMAP3’s DSP which is used for codec acceleration.
;Package / License
: [http://maemo.org/packages/view/kernel/ kernel] / GPL2

===OMAP3 bus drivers===

;Responsibilities
: Drivers for the following buses: SPI, SSI, McBSP, GPIOs, HS MMC/SD, UART, I2C/I2S, RFBI, CBUS, Flash BUS, (STI/XTI debugging interfaces)
;Package / License
: [http://maemo.org/packages/view/kernel/ kernel] / GPL2

===OMAP3 specific HW drivers===

;Responsibilities
: Drivers for following HW components:SGX, OMAP framebuffer &amp; LCD &amp; TV-out, Camera &amp; ISP, HS USB Host &amp; HS USB OTG, SDRAM memory controller, GPMC NAND/NOR flash&amp;SRAM controller, and PRCM
;Package / License
: [http://maemo.org/packages/view/kernel/ kernel] / GPL2

===Specific hardware drivers===

;Responsibilities
: The following components external to OMAP are supported: USB transceiver, USB charging, FM RX/TX, WLAN, OneNAND flash, touch screen, audio, stereo IHF, earphone, digital mics, LEDs, HW keys, ALS, Accelerometer, Vibrator, Proximity sensor, Miscellaneous Sensors, LCD backlight, Bluetooth, WLAN, CMT, Ethernet (R&amp;D use).
;Package / License
: [http://maemo.org/packages/view/kernel/ kernel] / GPL2

==X Window System==

;Purpose
: Graphical User Interface framework
;Responsibilities
: &lt;ul&gt;&lt;li&gt;XServer – GUI framework &amp; resource management&lt;/li&gt;&lt;li&gt;Xv – Video playback interface&lt;/li&gt;&lt;li&gt;XRandR – Support for rotation &amp; output configuration&lt;/li&gt;&lt;li&gt;XRender, XComposite – Support for composited UI&lt;/li&gt;&lt;li&gt;XInput – Routing of input events to applications&lt;/li&gt;&lt;/ul&gt;
;Package/ License
: Several/ MIT
;Public interfaces provided
: &lt;ul&gt;&lt;li&gt;X protocol: Interface to the X window system&lt;/li&gt;&lt;li&gt;DRI2: Direct Rendering Infrastructure 2, [[OpenGL-ES|OpenGL ES 2.0]]&lt;/li&gt;&lt;/ul&gt;

=== OpenGL ES 2.0 ===

;Purpose
: Accelerated 3D rendering
;Responsibilities
: &lt;ul&gt;&lt;li&gt;Accelerated 3D rendering&lt;/li&gt;&lt;li&gt;Acceleration of XRender&lt;/li&gt;&lt;/ul&gt;
;Notes
: The user space GLES components are licensed from Imagination.
;Package/ License
: [http://maemo.org/packages/view/opengles-sgx-img-common/ opengles2-sgx-img-common], [http://maemo.org/packages/view/libgles2/ libgles2]([http://maemo.org/packages/view/libgles2 -sgx-img/-sgx-img]) / Nokia
;Public interfaces provided
: EGL: Khronos API for OpenGL ES application for interacting with the native graphics framework.

==C library==

;Purpose
: Posix C library functionality
;Responsibilities
: &lt;ul&gt;&lt;li&gt;System call interfaces&lt;/li&gt;&lt;li&gt;Posix functionalities&lt;/li&gt;&lt;/ul&gt;
;Package/ License
: [http://maemo.org/packages/view/libc6/ glibc] / LGPL2

==Essential tools==

;Purpose
: The essential tools provide tools needed in system scripts. The role is similar to the Debian essentials (tools that are always installed in a Debian system).
;Responsibilities
: system tools like: shell, grep, find, dpkg, …
;Notes
: Many tools have many limitations compared to the Debian versions. Not all Debian essentials are supported.
;Package/ License
: [http://maemo.org/packages/view/busybox/ busybox] / GPL2
;Public interfaces provided
: &lt;ul&gt;&lt;li&gt;Posix shell&lt;/li&gt;&lt;li&gt;Subset of Debian essentials&lt;/li&gt;&lt;/ul&gt;

==Sysinfod==

;Purpose
: Provide interface for accessing device information
;Responsibilities
: Provide a D-Bus interface to device specific information (HW id, WLAN MAC, …)
;Package / License
: [http://maemo.org/packages/view/sysinfod/ sysinfod] / Nokia
;Public interface provided
: Sysinfod D-Bus interface

==Softupd==

;Purpose
: Program for flashing the eMMC contents
;Responsibilities
: &lt;ul&gt;&lt;li&gt;Unpacks a FIASCO image fed to it&lt;/li&gt;&lt;li&gt;Copies the unpacked contents to eMMC&lt;/li&gt;&lt;/ul&gt;
;Package / License
: [http://maemo.org/packages/view/softupd/ softupd] / Nokia

==Fiasco-flasher==

;Purpose
: Tool for updating the kernel flashed to the device
;Responsibilities
: &lt;ul&gt;&lt;li&gt;Flash kernel image into the kernel partition&lt;/li&gt;&lt;li&gt;Reboot the device&lt;/li&gt;&lt;/ul&gt;
;Package / License
: [http://maemo.org/packages/view/fiasco-flasher/ fiasco-flasher] / Nokia
;Public interface provided
: Fiasco-flasher: The tool can be used to flash a new kernel image into the kernel partition.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Architecture/Data Management</title>
    <id>2362</id>
    <revision>
      <id>38353</id>
      <timestamp>2010-09-07T12:51:31Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Software context */ add links</comment>
      <text xml:space="preserve">==Software context==

Data management subsystem has the following relationships.
* Toolkit: This domain provides the set of lowlevel libraries like widgets that are used by the Data Management components. The Data Management provides for this layer the virtual file system and input methods.
* [[Documentation/Maemo 5 Developer Guide/Architecture/RTCOM|RTCOM]]: Depends on the addressbook functionality provided by the Data Management
* Applications: Generally applications depend on the file- and MIME-handling provided by the data management domain.
* [[Documentation/Maemo 5 Developer Guide/Architecture/Connectivity|Connectivity]]: The virtual file system in data management is depending on the libraries provided by the connectivity. They are used when hiding the connecting to Bluetooth and network folders.
* [[Documentation/Maemo 5 Developer Guide/Architecture/System Software|System]]: Data management uses the system hardware information provided by the system domain.
* [[Documentation/Maemo 5 Developer Guide/Architecture/Multimedia Domain|Multimedia Framework]]: Uses Data Management to access the file on different drivers and devices.


[[Image:Data_Management_sw_context.png|frame|center|alt=ULM diagram of data management|Data management software context]]

==System Decomposition View==

[[Image:Data_Management_decomposition.png|frame|center|alt=Diagram of data management domain|Data management domain]]

===Contacts (Addressbook)===

;Purpose
: Provides a general framework to store the contact and presence information. It is used especially by the RTCOM domain for handling their contact and presence information.
;Responsibilities
: &lt;ul&gt;&lt;li&gt;Store contact information&lt;/li&gt;&lt;li&gt;Store presence information&lt;/li&gt;&lt;li&gt;Provide information about contact’s capabilities&lt;/li&gt;&lt;/ul&gt;
;License
: Nokia/LGPL/GPL

===Package management===

;Description
: Provides a way of managing the installed packages on the device. This also includes installing new versions of the components, for example when updating the device,
;Responsibilities
: &lt;ul&gt;&lt;li&gt;Manage component and application installation&lt;/li&gt;&lt;li&gt;Manage component updates&lt;/li&gt;&lt;/ul&gt;
;License
: GPL

===Backup===

;Purpose
: Provides a general framework to backup and restore user’s data.
;Responsibilities
: &lt;ul&gt;&lt;li&gt;Restore data&lt;/li&gt;&lt;li&gt;Backup user’s data&lt;/li&gt;&lt;/ul&gt;
;License
: Nokia

===File Management===

;Purpose
: Provides whole stack for file management. This includes file access, virtual file system, mime handling and URI schema handling. The domain also provides the UI that is needed for the file access.
;Responsibilities
: &lt;ul&gt;&lt;li&gt;Virtual file system (gnome-vfs)&lt;/li&gt;&lt;li&gt;Mime handling (libhildonmime) &lt;/li&gt;&lt;li&gt;Widgets for file handling (hildon-fm)&lt;/li&gt;&lt;li&gt;File manager&lt;/li&gt;&lt;/ul&gt;
;License
: Nokia/LGPL

===Content Handling (Tracker)===

;Purpose
: Provide a one stop solution for all metadata, tags, shared object databases, search tools and indexing.
;Responsibilities
: &lt;ul&gt;&lt;li&gt;Provides an Indexer, a lightweight daemon that extracts information from files (trackerd)&lt;/li&gt;&lt;li&gt;Tracker Search Tool, a small GUI to search for indexed data&lt;/li&gt;&lt;li&gt;Command line tools for searching, querying the daemon status, and tagging&lt;/li&gt;&lt;li&gt;libtracker, a C wrapper around the D-Bus API.&lt;/li&gt;&lt;/ul&gt;
;License
: GPL/LGPL 

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Architecture/Imaging and Sharing</title>
    <id>2555</id>
    <revision>
      <id>42291</id>
      <timestamp>2011-03-02T10:42:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add table captions</comment>
      <text xml:space="preserve">Subsystems of Imaging and Sharing domain are implementing means to produce, review, change, and share photography content on the device.

Following user-accessible applications are provided by Imaging and Sharing domain:
* Camera Application is a graphical interface to camera hardware. It accesses OMAP3 camera HW subsystem through a GStreamer-based middleware.
* Image Viewer allows to view photographs and images and supports simple/basic image editing functionality.

Sharing subsystem provides direct integration to an extensible set of internet services like OVI, with simple interface for uploading (i.e. “sharing”) content e.g. images to those services.

The diagram below shows the main interfaces of the domain. 

[[Image:Imaging_Sharing_sw_context.png|480px|Imaging and Sharing, Software Context]]

==Interfaces provided==

{| class=&quot;wikitable&quot;
|+ Sharing interfaces
|-
! Interface !! Description
|-
|Image Viewer UI
|The primary user interface for viewing still images and manipulating them.
|-
| [[Documentation/Maemo 5 Developer Guide/Using Data Sharing/Sharing Plug-in|Sharing UI]]
|The user interface for sharing content via internet services such as Nokia’s OVI.
|-
|Camera UI
|The primary user interface for using the device’s camera for capturing still images and video.
|-
|GDigicam
|An abstraction over complex set of GStreamer pipelines used to perform still image and video capturing.
|-
| [[Documentation/Maemo 5 Developer Guide/Using Data Sharing/Sharing Plug-in#Writing Sharing Plug-in for .22Send via Service.22|Sharing plug-in extensions]]
| An interface for external developers to extend Sharing subsystem's reach to internet services.
|-
|Viewing capability
|Image Viewer application is the device’s primary means to view images, and it thus launched when user wants to handle the associated image files.
|}

==System decomposition view==

===Camera application===

;Purpose
: Implements the camera UI interface
;Responsibilities
: &lt;ul&gt;&lt;li&gt;Implements camera controls for end user (e.g. open, close, capture, zoom)&lt;/li&gt;&lt;li&gt;Implements camera settings (e.g. scene modes, flash settings etc.)&lt;/li&gt;&lt;li&gt;Implements indicators (e.g. shake indicator)&lt;/li&gt;&lt;li&gt;Implements main power management for camera&lt;/li&gt;&lt;/ul&gt;
;License
: Nokia

====Interfaces provided====

{| class=&quot;wikitable&quot;
|+ Camera interfaces
|-
! Interface name !! Dependency !! Description
|-
| GDigicam
| GStreamer
| High-level model abstraction of a GStreamer-based pipelines to access camera features
|-
| GDIGICAM facade
| GDigicam
| Facade to interact with media objects in Camera UI
|-
| Gdigicam manager
| GStreamer
| Abstract interface over camera operations
|-
| Camerabin
| Multimedia framework
| Component to control camera pipeline on GStreamer level
|}

GDigicam library and Camerabin GStreamer element are provided as Free Software under LGPL2.1 in order to allow alternative implementations of certain image processing steps.

===Image Viewer===

;Description
: A viewer like content management application.
;Responsibilities
: &lt;ul&gt;&lt;li&gt;Implements a simple and fast interface for context sensitive user interface for viewing and selecting and categorizing the images.&lt;/li&gt;&lt;li&gt;Supports viewing of single images, snapshot views based on selectable categories and image presentations.&lt;/li&gt;&lt;/ul&gt;
;Notes
: Image Viewer is a single instance application, only one viewer instance available at a time.
;License
: Nokia

====Interfaces provided====

{| class=&quot;wikitable&quot;
|+ Image viewer interfaces
|-
! Interface !! Dependency !! Description
|-
| Viewing capability
| User
| User interface to access Image Viewer application functionality
|-
| Launch application
| D-Bus
| D-Bus interface to open the Image Viewer application, used by Camera, Browser, File Manager, Email.
|}

===Sharing===

;Purpose
: Sharing subsystem implements means to upload a content originating on the device to internet-based social services.
;Responsibilities
: &lt;ul&gt;&lt;li&gt;Implements dialogs for uploading of images to supported internet services&lt;/li&gt;&lt;li&gt;Implements simple management (i.e. filtering, adding) of metadata for images to be shared&lt;/li&gt;&lt;li&gt;Implements an API for extensions to add support for new internet services&lt;/li&gt;&lt;/ul&gt;
;Notes
: Sharing subsystem contributes libraries which are used from within the context of other applications. Image Viewer is a primary consumer of these services within Imaging and Sharing domain.
;License
: Nokia. Plug-in API is available under LGPL2.1

====Interfaces provided====

{| class=&quot;wikitable&quot;
|+ Sharing interfaces
|-
! Interface name !! Dependency !! Description
|-
| Sharing plugins API
| Plugins API for sharing components
| An API for adding support for new internet services
|}

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Architecture/Multimedia Domain</title>
    <id>2619</id>
    <revision>
      <id>48809</id>
      <timestamp>2012-07-24T18:38:34Z</timestamp>
      <contributor>
        <username>pali</username>
        <id>2764</id>
      </contributor>
      <comment>/* libplayback */</comment>
      <text xml:space="preserve">The Multimedia Framework Domain is a combination of a Multimedia Framework (GStreamer), a sound server (PulseAudio), a policy subsystem (OHM and libplayback), codecs and algorithms (for ARM and DSP) , a small number of UIs (status menus and control panel applets) and various libraries (alsa).

It provides audio/video playback, streaming services, imaging and metadata gathering support.  More in general, it takes care of the actual audio/video data handling (retrieval, demuxing, decoding and encoding, seeking …). 

The clients of the Multimedia framework are the Multimedia Applications, RTC subsystem, and all the Linux applications/entities which produce sounds through the PulseAudio, ESD or ALSA interfaces and capture images from the V4L2 interface.
The Multimedia Framework subsystem is partially located on the user space of Linux and on the DSP.


[[Image:OMAP_architecture.png|800px|alt=Diagram of top-level multimedia architecture|OMAP multimedia architecture]]


Major challenge for the Multimedia framework is to provide the same interfaces like on desktop Linux for different hardware platforms. In order to achieve this objective, the whole audio processing is moved to the ARM side (ALSA / PulseAudio) and OpenMAX IL is introduced to abstract the hardware specific components (codecs and other hardware accelerated elements). 

==Video subsystem==

[[Image:mmf_video_decomposition.png|frame|center|alt=UML diagram of video subsystem|Video subsystem]]


===Video Codecs===

Most of the video encoders and decoders are wrapped under the OpenMAX IL interface [OMAX], which abstracts the codec specific implementation (which in general can run on ARM or DSP). All the OpenMAX IL video codecs will be running on the DSP side in order to best exploit the HW acceleration provided by the OMAP 3430 platform. The DSP based OpenMAX IL components are loaded by TIs IL-Core, which in turn uses LCML and the DSP-Bridge. The ARM based OpenMAX IL are loaded via Bellagio IL-Core. Both IL-Cores are used by the gst-openmax bridge. The GStreamer framework resides on the ARM side. 

Video post processing is performed on DSS screen accelerator. DSS is used to do the colorspace conversion, the scaling and composition, including overlays. A separate external graphics accelerator is used to refresh the screen. In case of need (complicated use cases) the scaling and colorspace conversion can be done on the ARM side as well, but that is not recommened as it is not optimized. A/V synchronization is done on the ARM, using an audio clock that is based on information from the audio interface.

The communication between ARM and DSP software is provided by the TI DSP bridge. Any messages or data buffers exchanged between the ARM and DSP go through it. This layer can be regarded as transparent from Multimedia Architecture point of view and hence it will not be described in this document.

===GStreamer===

GStreamer is a crossplatform media framework, covering most multimedia applications use cases from playback, to streaming and imaging. It is a huge collection of objects, interfaces, libraries and plugins. From the application point of view it is just one utility library that can be used by applications to process media streams. The library interface is actually a facade to a versatile collection of dynamic modules that implement the actual functionality. GStreamer core hides the complexity of timing issues, synchronization, buffering, threading, streaming and other functionalities that are needed to produce usable media application. 

When using GStreamer as a media playback framework, application developer is given a set of tools and building blocks for implementing the decoding engine. The framework provides actual decoding and data streaming services, but it is up to the user how to use these tools. Application logic and utilizing the services of GStreamer are tasks of the developer.

GStreamer was chosen as a base framework on the ARM side because of the following reasons:
*GStreamer is a development framework for creating applications like media players, video editors, streaming media broadcasters and so on.
*GStreamer’s development started back in 1999 and it is relatively a long living open source project. The releases are frequent so far.
*There are many famous open source codecs supported by GStreamer and some example players based on GStreamer are available.
*GStreamer developers have a close relationship with the GNOME community, which is a potential advantage later on.
*GStreamer is written in C, which can be an advantage in embedded systems.
*GStreamer provides good modularity and flexibility.  Hence, building applications on GStreamer in short time is possible.
*GStreamer is LGPL and it allows Multimedia Project to combine GStreamer with proprietary software.

====Public interfaces provided by GStreamer====

{| class=&quot;wikitable&quot;
|+ Public interfaces provided by GStreamer
|-
! Interface name !! Description
|-
| GStreamer API || Interface for Multimedia applications, VOIP etc
|-
| &lt;code&gt;playbin2&lt;/code&gt; || Recommended high level element for playback.
|-
| &lt;code&gt;uricodebin&lt;/code&gt; || Recommended high level element for decoding.
|-
| &lt;code&gt;tagreadbin&lt;/code&gt; || Recommended high level element for fast metadata reading.
|-
| &lt;code&gt;camerabin&lt;/code&gt; || Recommended high level element for camera application.
|}

===OpenMAX IL===

OpenMAX is an effort to provide an industry standard for a multimedia API. The standard defines 3 layers – OpenMAX DL (Development Layer), OpenMAX IL (Integration Layer) and OpenMAX AL (Application Layer). DL is a vendor specific and optional component. IL is the layer that interfaces with IL components (e.g. codecs). We will integrate TI IL-Core for the DSP components and Bellagio IL-Core for ARM components. Neither of the cores uses DL.
We use GStreamer’s gomx module to transparently make OpenMAX IL components available to any GStreamer application.

====TI OpenMAX IL Core====

;Purpose
: OpenMAX IL Core implementation for DSP.
;Responsibilities
: Provides media handling services.
;License
: TI

====Bellagio OpenMAX IL Core====

;Purpose
: Generic OpenMAX IL Core implementation (used on ARM side)
;Responsibilities
: Provides media handling services.
;License
: LGPL

==Imaging subsystem==

The multimedia framework also provides support for imaging applications. The subsystem is illustrated below.

[[Image:Imaging_decomposition.png|800px|alt=UML diagram of imaging subsystem|Imaging subsystem]]


===Camera Source===

The &lt;code&gt;GstV4L2CamSrc&lt;/code&gt; is a fork of the &lt;code&gt;GstV4l2Src&lt;/code&gt; plugin. The reason for the fork is that the original plugin has lots of extra code for handing various V4L2 devices (such as tuner cards) and that made the code quite complex.

====GStreamer V4L2 Camera Source====

;Purpose
: Image and Video capture
;Responsibilities
: Capture RAW and YUV image
;License
: LGPL
;Packages
: [http://maemo.org/packages/view/gstreamer0.10-plugins-camera/ gstreamer0.10-plugins-camera]

===Image Codecs and Filters===

The image encoders and decoders are wrapped under the OpenMAX IL interface (OMAX), which abstracts the codec specific implementation (which in general can run on ARM or DSP). All the image codecs will be running on the DSP side  to best exploit the HW acceleration provided by the OMAP 3430 platform. 
The post processing filters needed for the camera application will be implemented as GStreamer elements and will run on the DSP.

===Camera Daemon===

The camera daemon is holding imaging specific extensions to the v4l2 interface. Specifically it runs the so called 3A algorithms – AutoFocus (AF), AutoWhitebalance (AWB) and AutoExposure (AE).

;Purpose
: Control imaging specific aspect not yet covered by standard v4l2
;Responsibilities
: Runs 3A algorithms
;License
: Nokia

====Public interface provided by camera daemon====

{| class=&quot;wikitable&quot;
|+ Public interface provided by camera daemon
|-
! Interface name !! Description
|-
| V4L2 ioctl || Extensions for V4L2 protocol
|}

==Audio Subsystem==

[[Image:Audio_decomposition.png|frame|center|alt=UML diagram of audio subsystem|audio subsystem]]


The audio subsystem has to take into account some requirements coming from hardware characteristics which influence the design of the software subsystem:
*Audio signals can be outputed through the IHF or through wired/Bluetooth headsets
*The loudspeaker and headphones share the same audio signal
*Hardware volume control is provided for both headset and for IHF, but not for microphones.
*Microphone selection between IHF and headset is done using an analog switch, no hardware amplification control for either.

These aspects led to the following design choices:
*Audio signal routing is done using headphone and IHF amplifier volume control
*Microphone AGC is implemented
*Master volume control will correspond to
**IHF amplifier volume control when IHF is in use
**Headphone amplifier volume control when headset/headphone is in use
**BT headset/headphone volume setting when BT is in use

In addition, Audio Post-Processor is always enabled. It needs different tunings for IHF, wired headset (assumed to be HS-48 like), BT headset and generic headphone.

Alarm is played through the loudspeaker even if headphones are connected and can’t be mixed to other sounds. This is a UI requirement.

===Audio Codecs===

Most of the audio encoders and decoders are wrapped under the OpenMAX IL interface (OMAX), which abstracts the codec specific implementation (which in general can run on ARM or DSP). Unless a different solution is needed (due e.g. to sourcing problems, performance requirements or to fulfill some specific use cases) all the audio codecs will be running on the ARM side to simplify the audio architecture and to avoid the additional latency and load over the data path due to the routing of the audio data first to DSP and then back to ARM.  

===ALSA library===

ALSA (Advanced Linux Sound Architecture) is a standard audio interface for Linux applications.

;Purpose
: It can be used by conventional Linux applications to play/record raw audio
;Responsibilities
: Provides a transparent access to audio driver
;License
: GPL/LGPL
;Packages
: [http://maemo.org/packages/view/alsa-utils/ alsa-utils]

====Public interface provided by ALSA library====

{| class=&quot;wikitable&quot;
|+ Publix interface provided by ALSA library
|-
! Interface name !! Description
|-
| ALSA|| Interface for Conventional Linux Audio Applications.
|}

===PulseAudio===

PulseAudio is a networked sound server, similar in theory to the Enlightened Sound Daemon (ESound). PulseAudio is however much more advanced and has numerous features:
*Software mixing of multiple audio streams, bypassing any restrictions the hardware has. 
*Sample rate conversion of audio streams
*Network transparency, allowing an application to play back or record audio on a different machine than the one it is running on. 
*Sound API abstraction, alleviating the need for multiple backends in applications to handle the wide diversity of sound systems out there. 
*Generic hardware abstraction, giving the possibility of doing things like individual volumes per application. 
*PulseAudio comes with many plugin modules.

;Purpose
: It can be used by conventional Linux applications to play/record raw audio
;Responsibilities
: Provides a transparent access to audio driver and performs audio mixing and sample rate conversion.
;License
: GPL/LGPL
;Packages
: [http://maemo.org/packages/view/pulseaudio/ pulseaudio] [http://maemo.org/packages/view/pulseaudio-utils/ pulseaudio-utils]

====Public interface provided by PulseAudio====

{| class=&quot;wikitable&quot;
|+ Public interface provided by PulseAudio
|-
! Interface name !! Description
|-
| ESound || ESD (Enlightened Sound Daemon) is a standard audio interface for Linux applications.&lt;br/&gt;Note: the interface is provided for backwards compatibility only. No new software should use it anymore.
|-
| PulseAudio || Internal Interface for Audio Applications (e.g. used by the GStreamer Pulse Sink and Source)
|}

===EAP and AEP===

The EAP (Entertainment Audio Platform) package is used for audio post-processing (music DRC and stereo widening).  

AEP (Audio Enhancements Package) is a full duplex speech audio enhancement package including echo cancellation, background noise suppression, DRC, AGC, etc. 
Both EAP and AEP are implemented as a PulseAudio module.

===FMTX Middleware===

FMTX middleware provides a daemon for controlling the [[N900 FM radio transmitter|FM Transmitter]]. The daemon listens to commands from clients via dbus system interface. The frequency of the transmitter is controlled via Video4Linux2 interface. Note that the transmitter must be unmuted before changing frequency. This is because the device is muted by default and when the device is muted, it's not powered. Other settings are controlled by sysfs files in directory &lt;code&gt;/sys/bus/i2c/devices/2-0063/&lt;/code&gt;.

The wire of the headset acts as an antenna, boosting fmtx transmission power over allowed limits. Therefore the daemon is monitoring plugged devices and powers the transmitter down, if the headset is not connected.
GConf: system/fmtx/:
*Bool enabled
*Int frequency

===Audio/ Video Synchronization===

The audio / video synchronization is done using the standard mechanisms built-in to the GStreamer framework. This requires that a clock source is available. The clock must be such that it stays in sync with the audio HW. Like in normal Linux desktops, this is achieved by exporting the interrupts from the audio chip through ALSA and corresponding GStreamer element.

==Notification subsystem==

MMF delivers parts of the notification mechanism. The subsytem is illustrated below:

[[Image:Notification_decomposition.png|frame|center|alt=UML diagram of notification subsystem|Notification subsystem]]


===Notification Plugins===

Two notification plugins are provided, 
*Sound notification plugin: Plays events and notification sounds
*Vibra notification plugin: Emits bursts of vibration and controls the vibration hw.

===Input Event Sounds===

The input event sounds module is using the Xserver xtest (http://www.xfree86.org/current/xtestlib.pdf) extension to produce input even feedback via libcanberra. The input-sound module is started with the XSession as a separate process.

==Metadata Subsystem==

The multimedia framework supports the search engine when indexing media files. The subsystem is illustrated below:

[[Image:Metadata_decomposition.png|frame|center|alt=UML diagram of metadata subsystem|Metadata subsystem]]


===Decodebin2/TagreadBin===

The desktop search (Tracker) can use high level GStreamer components (decodebin2/tagreadbin) to gather metadata from all supported media files. Tagreadbin can provide better performance than playbin2 by avoiding to plug decoders and utilize special codepath in parsers and demuxer for getting only metadata.

==Policy Subsystem==

It is neither user friendly nor always possible to run several multimedia use cases at the same time. To provide a predictable and stable behavior, multimedia components interact with a system wide policy component to keep concurrent multimedia use cases under control. The subsystem is illustrated below. The policy engine is based on the OHM framework. It is dynamically configurable with scripting and a prolog based rule database.

[[Image:Policy_decomposition.png|frame|center|alt=UML diagram of policy subsystem|Policy subsystem]]


===libplayback===

libplayback is a client API that allows an application to declare its playback state. The library uses D-Bus to talk to a central component that manages the states. Media applications can use the API to synchronize their playback state. 

;Purpose
: It can be used by media application to synchronize their playback state. This includes audio playback when the silent profile is active.
;Responsibilities
: Provides an interface for media playback management
;License
: Nokia
;Packages
: [http://maemo.org/packages/view/libplayback-1-0/ libplayback]
;Documentation and example code
: [http://maemo.org/api_refs/5.0/5.0-final/libplayback-1/ Documentation]
: [http://talk.maemo.org/showthread.php?t=67157 Thread on libplayback]

====Public interface provided by libplayback====

{| class=&quot;wikitable&quot;
|+ Public interface provided by libplayback
|-
! Interface name !! Description
|-
|D-Bus API||Interface for requesting/ getting a playback state.
|}

===OHM Ng===

OHM Ng is a extension on top of OHM (the open hardware manager project). OHM Ng provides the policy management for the system. In Fremantle, system policy only deals with multimedia resources.

;Purpose
: System policy management
;Responsibilities
: &lt;ul&gt;&lt;li&gt;Receives policy requests&lt;/li&gt;&lt;li&gt;Evaluates policy rules&lt;/li&gt;&lt;li&gt;Notify applications of policy decisions&lt;/li&gt;&lt;li&gt;Use available enforcement points&lt;/li&gt;&lt;/ul&gt;
;License
: Nokia
;Packages
: [http://maemo.org/packages/view/ohm/ ohm], [http://maemo.org/packages/view/ohm-plugin-core0/ ohm-plugins-core0], [http://maemo.org/packages/view/ohm-dev/ ohm-dev], [http://maemo.org/packages/view/ohm-dbg/ ohm-dbg] (includes some enforcement point plugins and libraries)

===PulseAudio Policy Enforcement Point===

PulseAudio plugin to manage volume levels, re-route streams and eventually forcefully shutdown streams.

;Purpose
: Monitors headsets/ headphones connection status
;Responsibilities
: &lt;ul&gt;&lt;li&gt;Sets the correct audio routing according to the headsets / headphones connection status&lt;/li&gt;&lt;li&gt;Sets the volume levels at device start-up and ensures it is put to a safe level when headphones are used&lt;/li&gt;&lt;li&gt;Sets the correct tuning to Audio Post Processing and Audio Enhancement Package&lt;/li&gt;&lt;/ul&gt;
;License
: Nokia
;Packages
: [http://maemo.org/packages/view/ohm/ ohm], [http://maemo.org/packages/view/ohm-plugin-core0/ ohm-plugins-core0], [http://maemo.org/packages/view/ohm-dev/ ohm-dev], [http://maemo.org/packages/view/ohm-dbg/ ohm-dbg] (includes some enforcement point plugins and libraries)

[[Category:Media]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Architecture/RTCOM</title>
    <id>2862</id>
    <revision>
      <id>42285</id>
      <timestamp>2011-03-02T10:12:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* telepathy-glib */ reformat table</comment>
      <text xml:space="preserve">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. 

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.

==System decomposition view==

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. Different UI components (Messaging, Call, Log Viewer, Desktop Elements, Control Panel Applets) provide user interface layer to the system.

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 &lt;code&gt;GObject&lt;/code&gt;-style access to the Telepathy D-Bus interfaces.

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).

The Telepathy framework is used to handle real time communication related signaling and abstracting all protocol dependencies to a single D-Bus interface.

Centralized addressbook is provided by the [[Documentation/Maemo 5 Developer Guide/Architecture/Data Management#Contacts (Addressbook)|Contacts subsystem]] and used by the RTcom subsystem for all contact information storage and lookup purposes and it also stores transient contacts/states.

==RTCOM  framework==

In Fremantle, RTCom framework provides the following functionality:
*Support for comprehensive logging
*SSO related components
*Support for heartbeat
*Device presence profiles
*Support for BT HFP
*Location support for presence

===telepathy-glib===

;Purpose
: Provides GObject abstraction of Telepathy D-Bus interfaces
;Source packages
: telepathy-glib, librtcom-telepathy-glib
;Licenses
: LGPL and Nokia Proprietary
;Interfaces used
: libglib, libdbus, libdbus-glib
;Interfaces provided
: [http://maemo.org/packages/view/libtelepathy-glib-dev/ libtelepathy-glib], [http://maemo.org/packages/view/librtcom-telepathy-glib-dev/ librtcom-telepathy-glib]

===telepathy-mission-control===

;Purpose
: 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.
;Source packages
: telepathy-glib, librtcom-telepathy-glib
;Licenses
: LGPL and Nokia Proprietary
;Interfaces used
: libglib, libdbus, libdbus-glib
;Interfaces provided
: [http://maemo.org/packages/view/libtelepathy-glib-dev/ libtelepathy-glib], [http://maemo.org/packages/view/librtcom-telepathy-glib-dev/ librtcom-telepathy-glib]

===osso-mission-control===

;Purpose
: Mission control filters
;Source packages
: telepathy-mission-control
;Licenses
: Nokia
;Interfaces used
: libmissioncontrol, libosso, libconic, libebook, libhildon1 (libhildon-desktop), mce, libxml2, librtcom-eventlogger, librtcom-eventlogger-plugins, libsignon-glib
;Interfaces provided
: None

===osso-accounts===

;Purpose
: Provides a set of libraries, UIs and applets for account management.
;Source packages
: osso-accounts, osso-accounts-plugin-nokia-chat
;Licenses
: Nokia
;Interfaces used
: libgtk2, libhildon1 (libhildon1, libhildonfm2, hildon-control-panel, libhildonmime, libhildonhelp), libosso-abook, libglade2, libconic, libmcclient
;Interfaces provided
: [http://maemo.org/packages/view/libaccounts-dev/ libaccounts], [http://maemo.org/packages/view/libaccounts-glade/ libaccounts-glade]

===rtcom-eventlogger===

;Purpose
: Provides general purpose event log database system.
;Source packages
: rtcom-eventlogger
;Licenses
: Nokia
;Interfaces used
: libglib, libsqlite3, libdbus
;Interfaces provided
: [http://maemo.org/packages/view/librtcom-eventlogger-dev/ librtcom-eventlogger]

===rtcom-eventlogger-plugins===

;Purpose
: Provides plugins for the event logging system.
;Source packages
: rtcom-eventlogger-plugins
;Licenses
: Nokia
;Interfaces used
: libglib, libsqlite3, librtcom-eventlogger
;Interfaces provided
: None

==Connection Managers==

Connection managers can be thought of as a kind of protocol plugins of the system. They conform to Telepathy D-Bus interface specification and provide D-Bus 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.

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).

===Functionalities provided===

*Support for Skype integrated into Telepathy framework

===telepathy-ring===

;Purpose
: Connection manager for cellular calls and SMS messaging
;Source packages
: telepathy-ring
;Licenses
: Nokia
;Interfaces used
: libglib, libdbus, libdbus-glib, libtelepathy-glib
;Interfaces provided
: None

===sofia-sip===

;Purpose
: SIP-stack implementation
;Source packages
: sofia-sip
;Licenses
: LGPL
;Interfaces used
: libglib, libssl
;Interfaces provided
: [http://maemo.org/packages/view/libsofia-sip-ua-dev/ libsofia-sip-ua], [http://maemo.org/packages/view/libsofia-sip-ua-glib-dev/ libsofia-sip-ua-glib]

===telepathy-sofiasip===

;Purpose
: SIP connection manager
;Source packages
: telepathy-sofiasip
;Licenses
: LGPL
;Interfaces used
: libglib, libdbus, libdbus-glib, libsofia-sip-ua, libsofia-sip-ua-glib, libtelepathy-glib, libssl
;Interfaces provided
: None

===loudmouth===

;Purpose
: XMPP-stack implementation
;Source packages
: loudmouth
;Licenses
: LGPL
;Interfaces used
: libglib, libssl, libcertman (libcst)
;Interfaces provided
: [http://maemo.org/packages/view/libloudmouth1-dev/ libloudmouth]

===telepathy-gabble===

;Purpose
: XMPP connection manager
;Source packages
: telepathy-gabble
;Licenses
: LGPL
;Interfaces used
: libglib, libssl
;Interfaces provided
: [http://maemo.org/packages/view/libglib2.0-dev/ libglib], [http://maemo.org/packages/view/libdbus-1-dev/ libdbus], [http://maemo.org/packages/view/libdbus-glib-1-dev/ libdbus-glib], [http://maemo.org/packages/view/libloudmouth1-dev/ libloudmouth], [http://maemo.org/packages/view/libtelepathy-glib-dev/ libtelepathy-glib]

==Streaming Engines==

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.

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.

===Functionalities provided===

*Support for fully standards compliant ICE through libnice.
*Support for H.264
*Support for BT HFP.
*Support for Skype in Telepathy framework.

===gst-plugins-farsight===

;Purpose
: GStreamer plugins specific to Farsight.
;Source packages
: gst-plugins-farsight
;Licenses
: LGPL
;Interfaces used
: libglib, gstreamer (libgstreamer-pligins-base), libjingle, libgonf2
;Interfaces provided
: None

===farsight2===

;Purpose
: 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.
;Source packages
: farsight2
;Licenses
: LGPL
;Interfaces used
: libglib, gstreamer (libgstreamer-plugins-base, libgstreamer-plugins-good, libgstreamer-plugins-bad), libnice, libnice-gstreamer, gupnp
;Interfaces provided
: [http://maemo.org/packages/view/libgstfarsight0.10-dev/ libgstfarsight]

===telepathy-farsight===

;Purpose
: Glue betweeen Telepathy and Farsight2
;Source packages
: telepathy-farsight
;Licenses
: LGPL
;Interfaces used
: libglib, libdbus (libdbus, libdbus-glib), libgstfarsight, libtelepathy-glib
;Interfaces provided
: [http://maemo.org/packages/view/libtelepathy-farsight-dev/ libtelepathy-farsight]

===libnice===

;Purpose
: ICE NAT-traversal implementation 
;Source packages
: libnice
;Licenses
: MPL / LGPL
;Interfaces used
: libglib, gstreamer (libgstreamer, libgstreamer-plugins-base)
;Interfaces provided
: [http://maemo.org/packages/view/libnice-dev/ libnice], [http://maemo.org/packages/view/libnice-gstreamer0.10/ libnice-gstreamer]

===telepathy-stream-engine===

;Purpose
: Media streaming engine for Telepathy, mostly used for standard RTP-over-UDP streaming. 
;Source packages
: telepathy-stream-engine
;Licenses
: LGPL
;Interfaces used
: libglib, libdbus (libdbus, libdbus-glib), libgstfarsight, gstreamer (libgstreamer-plugins-base), libtelepathy-farsight, libgtk2

==telepathy-glib==

Telepathy Library’s role is to provide common GObject-based C-language API for applications. It wraps Telepathy D-Bus interfaces to GObjects and also provides some utility functions for accessing and enumerating D-Bus interfaces. It’s code is mostly autogenerated from D-Bus interface specification.

;Purpose
: C API for Telepathy D-Bus interfaces.
;Responsibilties
: Provides GObject based C-language API to the Telepathy D-Bus interfaces along with some utility functions.
;Notes
: Most of Telepathy’s functionality is distributed as D-Bus objects where the actual functionality doesn’t necessarily reside within any specific component, but as an abstract object in the D-Bus network.''
;License
: LGPL

{| class=&quot;wikitable&quot;
|+ Interfaces used by libtelepathy-glib
|-
! Interface name !! License !! Dependency !! Description
|-
| Telepathy || LGPL || glib, D-Bus || RTCom Interface
|}

==Mission Control==

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.

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.
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.


;Purpose
: Enforces policies, handles startup/connectivity and transient events.
;Responsibilities
: Enforces system policies. Handles Connection Managers, Engines and UI startups. Also handles transient and network side events. Also responsible for connectivity management.
;Packages
: curlpp, osso-mission-control, osso-rtcom-oma, telepathy-mission-control
;License
: LGPL, Nokia Proprietary

==User Interfaces==	

===Messaging UI===

;Name
: rtcom-messaging-ui
;Purpose
: Messaging application.
;Source Packages
: rtcom-messaging-ui
;Licenses
: Nokia
;Interfaces Used
: 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

Messaging UI is a user interface component for instant messaging sessions. It handles all kinds of non-media streaming communications like text chat.

===Event logger===

;Name
: rtcom-eventlogger-ui
;Purpose
: Event logger widgets.
;Source Packages
: rtcom-eventlogger-ui
;Licenses
: Nokia
;Interfaces Used
: libglib, libgtk, libdbus, librtcom-eventlogger, librtcom-eventlogger-plugins, libosso, libosso-abook, libhildon1, libmcclient
;Interfaces Provided
: [http://maemo.org/packages/view/librtcom-eventlogger-ui-dev/ librtcom-eventlogger-ui]

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.

===Notification UI===

;Name
: rtcom-notification-ui
;Purpose
: Notification UI, plugin for the Hildon Status Menu.
;Source Packages
: rtcom-notification-ui
;Licenses
: Nokia
;Interfaces Used
: libglib, libosso, libgtk2, libhildon1 (libhildon1, libhildondesktop1, libhildonmime), mce, libtelepathy-glib, libosso-abook, libebook, librtcom-telepathy-glib

This is a Hildon Status menu plugin for RTCom related notifications.

===Presence UI===

;Name
: rtcom-presence-ui
;Purpose
: Accounts presence UI.
;Source Packages
: rtcom-presence-ui
;License
: Nokia
;Interfaces Used
: libglib, libosso, libgtk2, libhildon1 (libhildon1, libhildondesktop1), libmcclient, maemo-launcher, liblocation, libnavigation, libcanberra, libosso-abook

This is the presence user interface.

==Single-Sign-On (SSO)==

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 [http://openid.net/ OpenID], user can even use the same credential between different service providers as long as service provider accepts tickets from external providers.

;Purpose
: Provides Single-Sign-On functionality.
;Responsibilities
: Provides authentication services and tokens for applications.

;Name
: libsignon-glib
;Purpose
: GObject interface to SSO functionality.
;Source Packages
: signon
;Licenses
: Nokia
;Interfaces Used
: libglib, libxml2
;Interfaces Provided
: [http://maemo.org/packages/view/libsignon-glib-dev/ libsignon-glib]


;Name
: libsignonui
;Purpose
: UI elements of the SSO functionality.
;Source Packages
: signon
;Licenses
: Nokia
;Interfaces Used
: libglib, libgtk2, libhildon1, libaccounts, libosso-rtcom-accounts, libsignon-glib
;Interfaces Provided
: libsignonui

;Name
: signond
;Purpose
: SSO daemon, handling credential storate and authentication.
;Source Packages
: signon
;Licenses
: Nokia
;Interfaces Used
: libglib, libxml2, libcurl (libcurl3-openssl), libssl (libcrypto)
;Interfaces Provided
: [http://maemo.org/packages/view/signond-dev/ signond] (ipc)

SSO-subsystem consists of server, here called “signond” and application libraries libsignon-glib and libsignonui. Server stores credentials in optionally encrypted database. It is running under different user id than applications. Application library accesses the storage over IPC mechanism.

==Protocol Stack==

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. As described earlier, each of the protocol plugins create abstraction of some protocol to a common D-Bus protocol.

GoogleTalk uses Jingle protocol to handle voice streaming.

Standard Jabber communication always goes through persistent TCP connection to the server. 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.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Architecture/System Software</title>
    <id>2357</id>
    <revision>
      <id>42289</id>
      <timestamp>2011-03-02T10:32:54Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>reformat tables slightly</comment>
      <text xml:space="preserve">System software architecture is divided into three subsystems: 
* [[#System Control|System Control]] (SC)
* [[#Energy Management|Energy Management]] (EM) and 
* [[#Power Management|Power Management]] (PM).

System control subsystem is responsible for device state management (DSME), mode control (MCE) and various UI components including system UI, control panel applets and status bar icons. In addition, the system control subsystem includes HAL component for hardware abstraction, maemo-launcher for application startup execution, alarmd for alarm event handling, clockd for time management, iphbd for synchronization and profiled for profile handling. The SC subsystem provides D-Bus interface towards other applications. All the system control components are located in user space.

Energy management subsystem is responsible of battery charging. More specifically, the EM subsystem handles battery voltage monitoring and recognition, charging (via USB) and charger recognition. In addition, battery plugin for HAL is provided to provide standard D-Bus interface towards other applications. For example, the battery applet uses the HAL battery plugin to indicate the battery status in the UI. The EM subsystem components are located both in kernel and user space.

Power management subsystem is located entirely in kernel space. PM subsystem is responsible for putting the OMAP and peripherals into lowest possible power states as often as possible, without compromising performance. To achieve this, all the drivers in the system need to co-operate with the PM subsystem. The PM subsystem is build from standard linux kernel components including clock, CPUIdle and CPUFreq frameworks.
 
==System Control==

Management of user modes and system states is divided to two separate entities; Mode Control Entity (MCE) and Device State Management Entity (DSME). With this differentiation it is possible to maintain and develop user context and system context control scheme without complex overlaps. 

===System UI=== 

SystemUI provides services to other components to display UI elements (dialogs, notifications, alarms) that does not have native UI on their own. 

====Status Bar and Control Panel plugins====

This section describes the various UI elements and widgets that are part of the system control subsystem. 

;Name
: Status Bar Battery plugin
;Purpose
: Provides battery status settings
;Description
: &lt;ul&gt;&lt;li&gt;Provides status bar plugin to visualize battery status&lt;/li&gt;&lt;li&gt;Provides estimation for battery time left  for idle and use scenarios&lt;/li&gt;&lt;/ul&gt;

;Name
: Control Panel Display plugin
;Purpose
: Provides display and autolock settings
;Description
: Provides control panel plugin for:&lt;ul&gt;&lt;li&gt;display brightness&lt;/li&gt;&lt;li&gt;brightness period&lt;/li&gt;&lt;li&gt;switch off period&lt;/li&gt;&lt;li&gt;screen and key lock when screen goes off&lt;/li&gt;&lt;li&gt;LED control&lt;/li&gt;&lt;/ul&gt;Store the settings in DSM Gconf

;Name
: Control Panel Device Lock plugin
;Purpose
: Provides device lock settings
;Description
: Provides control panel plugin for&lt;ul&gt;&lt;li&gt;autolock settings (on/off, period)&lt;/li&gt;&lt;li&gt;*lock code&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Store the settings in DSM Gconf

===Device State Management Entity (DSME)===

DSME is responsible of device state management , process lifeguard support, watch dogs and thermal management. DSME architecture is based on modular plugin architecture. DSME core provides message handling capabilities to modules. Each module is dynamically loaded library. DSME runs in a single process. The D-Bus interface provides services to request reboot, shutdown or powerup (from acting dead mode), indication of shutdown, thermal events and data save.

[[Image:DSME.png|frame|center|alt=Diagram of DSME components|DSME components]]


{{ambox
|text=In Fremantle release onwards, DSME is not part of the initfs anymore. Instead, it is located in the rootfs and started after init.}}

;Name
: Device State Management Entity
;Purpose
: Provides device state control logic and management interface.
;Description
: &lt;ul&gt;&lt;li&gt;Provides means for configuration and management interface.&lt;/li&gt;&lt;li&gt;Provides lifeguard CLI API for system service startup.&lt;/li&gt;&lt;li&gt;Manages device state including display, watchdog and startup.&lt;/li&gt;&lt;/ul&gt;

===Mode Control Entity (MCE)===

MCE is responsible of handling display control (active/dim/blank), activity monitoring (keys, buttons), keyboard backlight, ambient light sensor (ALS), LEDs and device mode control. In addition, MCE is responsible for providing interface to proximity, accelometer and vibra devices.

;Name
: Mode Control Entity
;Purpose
: Provides device mode logic and services for DSM interface.
;Description
: &lt;ul&gt;&lt;li&gt;Provides means for device mode control (Eg: flight mode)&lt;/li&gt;&lt;li&gt;Provides DSM gconf API for controlling display and security.&lt;/li&gt;&lt;li&gt;Manages DSM API for applications.&lt;/li&gt;&lt;/ul&gt;

===Hardware Abstraction Layer (HAL)===

;Purpose
: Provides hardware abstraction layer for applications.
;Description
: &lt;ul&gt;&lt;li&gt;Provides unified API for applications to query device properties and receive events for changes.&lt;/li&gt;&lt;li&gt;Gathers information of devices via various kernel  interfaces (sysfs, udev)&lt;/li&gt;&lt;/ul&gt;

===Alarm Daemon (Alarmd)===

;Purpose
: Provides centralized place for requesting scheduled events.
;Description
: &lt;ul&gt;&lt;li&gt;Provides service and API for requesting, changing and deleting scheduled events.&lt;/li&gt;&lt;li&gt;Uses SystemUI to show dialogs for alarms and calendar events.&lt;/li&gt;

===Time Daemon (Clockd)===

;Purpose
: Provides centralized place for handling time.
;Description
: &lt;ul&gt;&lt;li&gt;Provides service and API for requesting, changing and notifying time and timezone changes.&lt;/li&gt;&lt;li&gt;Provides interface for monitoring network time notifications.&lt;/li&gt;

===Profile Daemon (Profiled)===

;Purpose
: Provides centralized place for handling (user) profiles related data and notifications.
;Description
: Provides service and API for requesting, changing and notifying profile related data.

===Heartbeat Daemon (Heartbeatd)===

;Purpose
: Provides service to wake up applications on requested interval, internally groups the wakeups together inorder to save power.
;Description
: &lt;ul&gt;&lt;li&gt;Provides service and API for requesting, changing and deleting wakeups on specific intervals.&lt;/li&gt;&lt;li&gt;Uses kernel module to delay TCP keepalives and sends them in bunches.&lt;/li&gt;&lt;/ul&gt;

===Public Interfaces===

This section lists the public interfaces provided by the System Control Subsystem.

{| class=&quot;wikitable&quot;
|+ System control public interfaces
|-
! Interface !! Purpose !! Interface type
|-
| DSME API || Interface for requesting device powerup, shutdown and reboot. &lt;br/&gt;Interface for thermal management indications.
| D-Bus
|-
| Dsmetool CLI || Interface for init scripts to start processes which will be monitored for system robustness.
| Socket
|-
| HAL API || Provides device property information and events about device state changes.
| D-Bus or library (libhal)
|-
| DSM GConf API || Interface for DSM related configuration values (security lock key, display)
| GConf
|-
| MCE API || Interface for requesting display control and lock status, device mode changes and status, inactivity status, and device lock mode and status.
| D-Bus 
|-
| Profile API || Interface for requesting display control and lock status, device mode changes and status, inactivity status, and device lock mode and status.
| D-Bus 
|-
| Time API || Control and notifications about timezone and time changes.
| D-Bus 
|-
| [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Alarm Framework|Alarm API]] || Requesting, changing and deleting alarms.
| D-Bus 
|-
| HeartBeat API || Getting heart beat on requested interval.
| Socket 
|}

==Energy Management==

===Battery management entity (BME)===

;Purpose
: Provides battery monitoring and charging service.
;Description
: &lt;ul&gt;&lt;li&gt;Provides battery identification, monitoring, charging and BME API.&lt;/li&gt;&lt;li&gt;TSS interface for A/D converter calibration.&lt;/li&gt;&lt;li&gt;Emulation libraries for Nokia OS services.&lt;/li&gt;

===HAL battery addon===

;Purpose
: Provides battery information via HAL.
;Description
: Provides battery status and type information via HAL.

===Public Interfaces===

{| class=&quot;wikitable&quot;
|+ Energy management public interfaces
|-
! Interface !! Purpose !! Type
|-
| Battery HAL API || Battery event API. Provides battery and charger status changes.
| HAL/D-Bus 
|}

==Power Management==

Power management is part of Linux kernel. Various kernel subsystems and components are used to implement the power management. Some of the components are in mainline Linux while others are ARM/OMAP specific. However, all the components are in some Linux tree and no proprietary subsystems or components are used.

The power management  contains the following elements :
*Clock framework including power and clock domain extensions 
*CPU Idle 
*CPU Freq 
*Dynamic tick 
*Idle process 
*OMAP power management routines (PRCM) 

===Kernel power management===

Kernel power management has several mechanisms to perform power management. The most commonly used in System Software architecture are listed below. 

====Dynamic sleep====

In Dynamic sleep, the idle task is used to trigger the check if the system can go into power saving mode. That is, every time the idle task is scheduled to run, the dynamic sleep mechanism tries to put the system into deepest possible sleep mode compatible with the constraints that are currently active. CPU Idle framework is used to implement the dynamic sleep functionality.

====Dynamic Voltage and Frequency Scaling====

Dynamic Voltage and Frequency Scaling (DVFS) is the other mechanism to save power. DVFS allows to  scale down the SoC’s frequency and voltage at runtime to reduce leakage currents and hence save power. The decision to scale the frequency (and consequently voltage) of the ARM and DSP processors is based on their load, bandwidth and latency constraints. CPU Freq framework is used to implement the DVFS.

===Components and descriptions===

====Clock Framework====

;Purpose
: Provides clock framework for HW clock management.
;Responsibilities
: &lt;ul&gt;&lt;li&gt;Provides common means for turning HW clocks on and off.&lt;/li&gt;&lt;li&gt;Provides HW clock sanity checks and use counts.&lt;/li&gt;&lt;li&gt;Allows power management to probe HW clocks status.&lt;/li&gt;&lt;li&gt;Handles also clock and power domains, and wakeup and sleep dependencies.&lt;/li&gt;&lt;/ul&gt;

====CPU Idle====

;Purpose
: Provides mechanism for selecting and entering the deepest possible sleep state based on the constraints

====CPU Freq====

;Purpose
: Provides mechanism for selecting and entering the lowest possible operating point based on the MPU and DSP loads.
;Responsibilities
:&lt;ul&gt;&lt;li&gt; Monitor CPU and DSP load requirements.&lt;/li&gt;&lt;li&gt;Adjust CPU and DSP frequencies based on load.&lt;/li&gt;&lt;/ul&gt;

===Public Interfaces===

{| class=&quot;wikitable&quot;
|+ Power management public interfaces
|-
! Name !! Description
|-
| CLK API || Clock framework public API.
|-
| Contraints API || Interface for drivers for setting constraints on bandwidth and latency to control the target sleep states.
|}

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Architecture/System Software</title>
    <id>2357</id>
    <revision>
      <id>42289</id>
      <timestamp>2011-03-02T10:32:54Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>reformat tables slightly</comment>
      <text xml:space="preserve">System software architecture is divided into three subsystems: 
* [[#System Control|System Control]] (SC)
* [[#Energy Management|Energy Management]] (EM) and 
* [[#Power Management|Power Management]] (PM).

System control subsystem is responsible for device state management (DSME), mode control (MCE) and various UI components including system UI, control panel applets and status bar icons. In addition, the system control subsystem includes HAL component for hardware abstraction, maemo-launcher for application startup execution, alarmd for alarm event handling, clockd for time management, iphbd for synchronization and profiled for profile handling. The SC subsystem provides D-Bus interface towards other applications. All the system control components are located in user space.

Energy management subsystem is responsible of battery charging. More specifically, the EM subsystem handles battery voltage monitoring and recognition, charging (via USB) and charger recognition. In addition, battery plugin for HAL is provided to provide standard D-Bus interface towards other applications. For example, the battery applet uses the HAL battery plugin to indicate the battery status in the UI. The EM subsystem components are located both in kernel and user space.

Power management subsystem is located entirely in kernel space. PM subsystem is responsible for putting the OMAP and peripherals into lowest possible power states as often as possible, without compromising performance. To achieve this, all the drivers in the system need to co-operate with the PM subsystem. The PM subsystem is build from standard linux kernel components including clock, CPUIdle and CPUFreq frameworks.
 
==System Control==

Management of user modes and system states is divided to two separate entities; Mode Control Entity (MCE) and Device State Management Entity (DSME). With this differentiation it is possible to maintain and develop user context and system context control scheme without complex overlaps. 

===System UI=== 

SystemUI provides services to other components to display UI elements (dialogs, notifications, alarms) that does not have native UI on their own. 

====Status Bar and Control Panel plugins====

This section describes the various UI elements and widgets that are part of the system control subsystem. 

;Name
: Status Bar Battery plugin
;Purpose
: Provides battery status settings
;Description
: &lt;ul&gt;&lt;li&gt;Provides status bar plugin to visualize battery status&lt;/li&gt;&lt;li&gt;Provides estimation for battery time left  for idle and use scenarios&lt;/li&gt;&lt;/ul&gt;

;Name
: Control Panel Display plugin
;Purpose
: Provides display and autolock settings
;Description
: Provides control panel plugin for:&lt;ul&gt;&lt;li&gt;display brightness&lt;/li&gt;&lt;li&gt;brightness period&lt;/li&gt;&lt;li&gt;switch off period&lt;/li&gt;&lt;li&gt;screen and key lock when screen goes off&lt;/li&gt;&lt;li&gt;LED control&lt;/li&gt;&lt;/ul&gt;Store the settings in DSM Gconf

;Name
: Control Panel Device Lock plugin
;Purpose
: Provides device lock settings
;Description
: Provides control panel plugin for&lt;ul&gt;&lt;li&gt;autolock settings (on/off, period)&lt;/li&gt;&lt;li&gt;*lock code&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Store the settings in DSM Gconf

===Device State Management Entity (DSME)===

DSME is responsible of device state management , process lifeguard support, watch dogs and thermal management. DSME architecture is based on modular plugin architecture. DSME core provides message handling capabilities to modules. Each module is dynamically loaded library. DSME runs in a single process. The D-Bus interface provides services to request reboot, shutdown or powerup (from acting dead mode), indication of shutdown, thermal events and data save.

[[Image:DSME.png|frame|center|alt=Diagram of DSME components|DSME components]]


{{ambox
|text=In Fremantle release onwards, DSME is not part of the initfs anymore. Instead, it is located in the rootfs and started after init.}}

;Name
: Device State Management Entity
;Purpose
: Provides device state control logic and management interface.
;Description
: &lt;ul&gt;&lt;li&gt;Provides means for configuration and management interface.&lt;/li&gt;&lt;li&gt;Provides lifeguard CLI API for system service startup.&lt;/li&gt;&lt;li&gt;Manages device state including display, watchdog and startup.&lt;/li&gt;&lt;/ul&gt;

===Mode Control Entity (MCE)===

MCE is responsible of handling display control (active/dim/blank), activity monitoring (keys, buttons), keyboard backlight, ambient light sensor (ALS), LEDs and device mode control. In addition, MCE is responsible for providing interface to proximity, accelometer and vibra devices.

;Name
: Mode Control Entity
;Purpose
: Provides device mode logic and services for DSM interface.
;Description
: &lt;ul&gt;&lt;li&gt;Provides means for device mode control (Eg: flight mode)&lt;/li&gt;&lt;li&gt;Provides DSM gconf API for controlling display and security.&lt;/li&gt;&lt;li&gt;Manages DSM API for applications.&lt;/li&gt;&lt;/ul&gt;

===Hardware Abstraction Layer (HAL)===

;Purpose
: Provides hardware abstraction layer for applications.
;Description
: &lt;ul&gt;&lt;li&gt;Provides unified API for applications to query device properties and receive events for changes.&lt;/li&gt;&lt;li&gt;Gathers information of devices via various kernel  interfaces (sysfs, udev)&lt;/li&gt;&lt;/ul&gt;

===Alarm Daemon (Alarmd)===

;Purpose
: Provides centralized place for requesting scheduled events.
;Description
: &lt;ul&gt;&lt;li&gt;Provides service and API for requesting, changing and deleting scheduled events.&lt;/li&gt;&lt;li&gt;Uses SystemUI to show dialogs for alarms and calendar events.&lt;/li&gt;

===Time Daemon (Clockd)===

;Purpose
: Provides centralized place for handling time.
;Description
: &lt;ul&gt;&lt;li&gt;Provides service and API for requesting, changing and notifying time and timezone changes.&lt;/li&gt;&lt;li&gt;Provides interface for monitoring network time notifications.&lt;/li&gt;

===Profile Daemon (Profiled)===

;Purpose
: Provides centralized place for handling (user) profiles related data and notifications.
;Description
: Provides service and API for requesting, changing and notifying profile related data.

===Heartbeat Daemon (Heartbeatd)===

;Purpose
: Provides service to wake up applications on requested interval, internally groups the wakeups together inorder to save power.
;Description
: &lt;ul&gt;&lt;li&gt;Provides service and API for requesting, changing and deleting wakeups on specific intervals.&lt;/li&gt;&lt;li&gt;Uses kernel module to delay TCP keepalives and sends them in bunches.&lt;/li&gt;&lt;/ul&gt;

===Public Interfaces===

This section lists the public interfaces provided by the System Control Subsystem.

{| class=&quot;wikitable&quot;
|+ System control public interfaces
|-
! Interface !! Purpose !! Interface type
|-
| DSME API || Interface for requesting device powerup, shutdown and reboot. &lt;br/&gt;Interface for thermal management indications.
| D-Bus
|-
| Dsmetool CLI || Interface for init scripts to start processes which will be monitored for system robustness.
| Socket
|-
| HAL API || Provides device property information and events about device state changes.
| D-Bus or library (libhal)
|-
| DSM GConf API || Interface for DSM related configuration values (security lock key, display)
| GConf
|-
| MCE API || Interface for requesting display control and lock status, device mode changes and status, inactivity status, and device lock mode and status.
| D-Bus 
|-
| Profile API || Interface for requesting display control and lock status, device mode changes and status, inactivity status, and device lock mode and status.
| D-Bus 
|-
| Time API || Control and notifications about timezone and time changes.
| D-Bus 
|-
| [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Alarm Framework|Alarm API]] || Requesting, changing and deleting alarms.
| D-Bus 
|-
| HeartBeat API || Getting heart beat on requested interval.
| Socket 
|}

==Energy Management==

===Battery management entity (BME)===

;Purpose
: Provides battery monitoring and charging service.
;Description
: &lt;ul&gt;&lt;li&gt;Provides battery identification, monitoring, charging and BME API.&lt;/li&gt;&lt;li&gt;TSS interface for A/D converter calibration.&lt;/li&gt;&lt;li&gt;Emulation libraries for Nokia OS services.&lt;/li&gt;

===HAL battery addon===

;Purpose
: Provides battery information via HAL.
;Description
: Provides battery status and type information via HAL.

===Public Interfaces===

{| class=&quot;wikitable&quot;
|+ Energy management public interfaces
|-
! Interface !! Purpose !! Type
|-
| Battery HAL API || Battery event API. Provides battery and charger status changes.
| HAL/D-Bus 
|}

==Power Management==

Power management is part of Linux kernel. Various kernel subsystems and components are used to implement the power management. Some of the components are in mainline Linux while others are ARM/OMAP specific. However, all the components are in some Linux tree and no proprietary subsystems or components are used.

The power management  contains the following elements :
*Clock framework including power and clock domain extensions 
*CPU Idle 
*CPU Freq 
*Dynamic tick 
*Idle process 
*OMAP power management routines (PRCM) 

===Kernel power management===

Kernel power management has several mechanisms to perform power management. The most commonly used in System Software architecture are listed below. 

====Dynamic sleep====

In Dynamic sleep, the idle task is used to trigger the check if the system can go into power saving mode. That is, every time the idle task is scheduled to run, the dynamic sleep mechanism tries to put the system into deepest possible sleep mode compatible with the constraints that are currently active. CPU Idle framework is used to implement the dynamic sleep functionality.

====Dynamic Voltage and Frequency Scaling====

Dynamic Voltage and Frequency Scaling (DVFS) is the other mechanism to save power. DVFS allows to  scale down the SoC’s frequency and voltage at runtime to reduce leakage currents and hence save power. The decision to scale the frequency (and consequently voltage) of the ARM and DSP processors is based on their load, bandwidth and latency constraints. CPU Freq framework is used to implement the DVFS.

===Components and descriptions===

====Clock Framework====

;Purpose
: Provides clock framework for HW clock management.
;Responsibilities
: &lt;ul&gt;&lt;li&gt;Provides common means for turning HW clocks on and off.&lt;/li&gt;&lt;li&gt;Provides HW clock sanity checks and use counts.&lt;/li&gt;&lt;li&gt;Allows power management to probe HW clocks status.&lt;/li&gt;&lt;li&gt;Handles also clock and power domains, and wakeup and sleep dependencies.&lt;/li&gt;&lt;/ul&gt;

====CPU Idle====

;Purpose
: Provides mechanism for selecting and entering the deepest possible sleep state based on the constraints

====CPU Freq====

;Purpose
: Provides mechanism for selecting and entering the lowest possible operating point based on the MPU and DSP loads.
;Responsibilities
:&lt;ul&gt;&lt;li&gt; Monitor CPU and DSP load requirements.&lt;/li&gt;&lt;li&gt;Adjust CPU and DSP frequencies based on load.&lt;/li&gt;&lt;/ul&gt;

===Public Interfaces===

{| class=&quot;wikitable&quot;
|+ Power management public interfaces
|-
! Name !! Description
|-
| CLK API || Clock framework public API.
|-
| Contraints API || Interface for drivers for setting constraints on bandwidth and latency to control the target sleep states.
|}

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Architecture/Top Level Architecture</title>
    <id>2567</id>
    <revision>
      <id>40335</id>
      <timestamp>2010-11-26T15:26:31Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add link</comment>
      <text xml:space="preserve">The following figure gives a logical decomposition view of Maemo 5 software architecture based on the domains delivering software to the [[Open development/Maemo roadmap/Fremantle|Fremantle]] release. Proprietary components are marked in &lt;font color=&quot;red&quot;&gt;red&lt;/font&gt;.

[[Image:top_level_architecture.png|800px|alt=Block diagram|Top-level architecture diagram, with proprietary components marked in red]]

* [[Documentation/Maemo 5 Developer Guide/Architecture/Core Domain|Core Domain]] contains  bootloader and Calibration Area, Linux kernel, X windowing system (X11), [[OpenGL-ES|OpenGL ES]], and (some) essential user space components (the C library, essential user space tools, and system configuration data and tools) adapted / configured for the Fremantle HW. 
* [[Documentation/Maemo 5 Developer Guide/Architecture/System Software|System Software domain]] is responsible for user modes, device states including start-up/shutdown, display and other inactivity state control, providing robustness services, power management, and battery management.
* [[Documentation/Maemo 5 Developer Guide/Architecture/Connectivity|Connectivity domain]] provides the APIs, user interfaces and underlying user-space and kernel components for Wireless Internet, Wireless local and Home connectivity, implements connection establishment mechanisms and user interfaces to control Internet access points on the device. This includes WLAN, connections over Bluetooth, also UPnP, and Device Management (uses the Funambol OMA DM/DS framework).
* [[Documentation/Maemo 5 Developer Guide/Architecture/RTCOM|RTCom domain]] provides both services, and applications, for realtime Internet communications (Voice Over IP  calls and Instant Messaging) on Maemo platform. It also provides and distributes presence information within the system and is responsible for smooth integration of the externally developed Skype application into the system.
* [[Documentation/Maemo 5 Developer Guide/Architecture/Multimedia Domain|Multimedia Framework domain]] contains the multimedia APIs including GStreamer, ALSA and PulseAudio, and the lower level functionality such as DSP codecs. Multimedia Framework also responsible for policy, audio-routing, and event-sounds. 
* '''Location domain''' implements a framework that applications can use to become location aware. Location implements also an API that provides a set of location related utilities like geocoding, reverse geocoding, show on map, select from map, get map data and POI (Point Of Interest) repository. It also includes everything related to GPS and SUPL.
* [[Documentation/Maemo 5 Developer Guide/Architecture/UI Framework|Toolkit domain]] contains the graphical UI libraries to draw content on the device’s screen and used by the applications to create user graphical interfaces. 
* '''Desktop domain''' contains Window Manager and Clutter, Home, Status Menu, and their plugins, Control Panel and its applets, Input Methods and I18N, and application services such as Startup. 
* [[Documentation/Maemo 5 Developer Guide/Architecture/Data Management|Data Management domain]] consists of application and user data related subsystems. It also includes GConf. 
* '''Applications domain''' provides end user applications like Browser, Email, Calendar, Games etc provides public interfaces for 3rd party applications to access them.
* '''Graphics domain''' provides sounds, icons and pre-installed content for the device.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Architecture/UI Framework</title>
    <id>2933</id>
    <revision>
      <id>42310</id>
      <timestamp>2011-03-02T14:12:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add table captions</comment>
      <text xml:space="preserve">The Fremantle UI Framework consists of the Clutter OpenGL-based canvas library, OpenGL drivers for the PowerVR SGX chip, Matchbox Window Manager 1 (for startup sequence) and Matchbox Window Manager 2 library, Hildon Welcome (“Nokia hands”) screen, Startup Wizard, application framework startup scripts, game startup system, Hildon Control Panel, some Control Panel applets, Restore original settings &amp; Clear user data framework, Hildon Input Methods, internationalisation i.e. so-called POSIX data, Clipboard Manager, Hildon Desktop, notiﬁcation service, Hildon Home (applet loader), Hildon Status Menu/Area (plugin loader), and Status Menu USB plugin. 

==System Decomposition view==

===Subsystems in UI framework domain===

{| class=&quot;wikitable&quot;
|+ Subsystems in UI framework domain
|-
! Subsystem !! Function
|-
| [[#hildon-desktop|hildon-desktop]] || OpenGL graphics API
|-
| [[#hildon-home|hildon-home]] || Home widget API and loading, notification service and plugins, background image and loading
|-
| [[#hildon-status-menu|hildon-status-menu]] || X clipboard selection management
|-
| [[#Hildon Input Methods|Hildon Input Method]] || Localized text input UI
|-
| Control Panel || Control Panel applet and loading
|-
| Startup Wizard || first boot and system time setting
|-
| Startup scripts || AF startup scripts
|-
| RFS and CUD framework || Reset factory settings and clear user data
|-
| i18n data || POSIX data
|}

===hildon-desktop===

The hildon-desktop process acts as a compositing window manager for all applications. All screen painting, including painting of X windows, is done through the Clutter canvas library and OpenGL ES v2.0 API. Compositing means that hildon-desktop tells the X server (through the X Composite extension) to draw all windows to an off-screen buffer, instead of drawing them directly to the framebuffer. This allows hildon-desktop to modify window contents before drawing them onto the screen. 

In Fremantle, compositing is used to implement window transitions and blurring of the screen. hildon-desktop handles all mapped windows as Clutter actors, which are objects usually containing an OpenGL texture. As the window manager hildon-desktop will reparent application windows to decorate them with the application title bar and close button. Windows on the screen will normally be oriented in landscape, but the window manager will have a limited support for portrait mode, using the Xrandr extension. 

Task launcher and Task switcher (aka. Dashboard, Task navigator) is implemented by the hildon-desktop process. Task launcher is a menu the user can access to start new applications or bring running applications on top. Task switcher is a view to switch between running applications, some of which might be ’background killed’, which means that they appear running to the user but really have saved their UI state and are started by hildon-desktop on demand. Task launcher and switcher UI transitions could be challenging to implement with traditional toolkits, but hildon-desktop can use Clutter and hildon-desktop’s internal data about application windows to give a good performance. 


[[Image:hildon-desktop_decomposition.png|800px|alt=UML diagram|Hildon-desktop descomposition]]


====Low memory and background killing D-Bus signals====

The hildon-desktop process will listen to D-Bus signals warning about low-memory (RAM) situation (preventing starting of new applications) and signals suggesting starting background killing of applications that are running in the background. These signals are broadcast on the system bus by the hulda daemon (of [[Documentation/Maemo 5 Developer Guide/Architecture/Data Management|Data Management]]). Only the applications that have told hildon-desktop that they can be background killed are considered for background killing. The property is set with the &lt;code&gt;hildon_program_set_can_hibernate()&lt;/code&gt; function in the libhildon1 library.

The background killing signals are defined as follows:

{| class=&quot;wikitable&quot;
|+ Background kill state on
|-
! Attribute !! Value
|-
| service || (ignored)
|-
| interface || &lt;code&gt;com.nokia.ke_recv.bgkill_on&lt;/code&gt;
|-
| object path || &lt;code&gt;/com/nokia/ke-recv/bgkill_on&lt;/code&gt;
|-
| member || &lt;code&gt;bgkill_on&lt;/code&gt;
|}

{| class=&quot;wikitable&quot;
|+ Background kill state off
|-
! Attribute !! Value
|-
| service || (ignored)
|-
| interface || &lt;code&gt;com.nokia.ke_recv.bgkill_off&lt;/code&gt;
|-
| object path || &lt;code&gt;/com/nokia/ke-recv/bgkill_off&lt;/code&gt;
|-
| member || &lt;code&gt;bgkill_off&lt;/code&gt;
|}

The low-memory signals are defined as follows. Notice that these low-memory signals are not meant to be used outside of the application framework, there are separate signals (user lowmem on and user lowmem off) for applications. 

{| class=&quot;wikitable&quot;
|+ Low-memory background kill state on
|-
! Attribute !! Value
|-
| service || (ignored)
|-
| interface || &lt;code&gt;com.nokia.ke_recv.lowmem_on&lt;/code&gt;
|-
| object path || &lt;code&gt;/com/nokia/ke-recv/lowmem_on&lt;/code&gt;
|-
| member || &lt;code&gt;bgkill_off&lt;/code&gt;
|}

{| class=&quot;wikitable&quot;
|+ Low-memory background kill state off
|-
! Attribute !! Value
|-
| service || (ignored)
|-
| interface || &lt;code&gt;com.nokia.ke_recv.lowmem_off&lt;/code&gt;
|-
| object path || &lt;code&gt;/com/nokia/ke-recv/lowmem_off&lt;/code&gt;
|-
| member || &lt;code&gt;bgkill_off&lt;/code&gt;
|}

====D-Bus signal for closing applications====

The hildon-desktop process will listen to the &lt;code&gt;exit&lt;/code&gt; D-Bus signal. When it catches the signal, it sends the (POSIX) &lt;code&gt;TERM&lt;/code&gt; signal to all running windowed applications. This is used by the [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Using Backup Application|Backup application]] before restoring backed up data and settings, Backup itself can ignore the &lt;code&gt;TERM&lt;/code&gt; signal. The signal is not meant to be used outside of the application framework. 

{|class=&quot;wikitable&quot;
|+ Exit signal
|-
! Attribute !! Value
|-
| service || (ignored)
|-
| interface || &lt;code&gt;com.nokia.osso_app_killer&lt;/code&gt;
|-
| object path || &lt;code&gt;/com/nokia/osso_app_killer&lt;/code&gt;
|-
| member || &lt;code&gt;exit&lt;/code&gt;
|}

====D-Bus signal for ‘application died’ information note====

The hildon-desktop process will have a D-Bus service for showing the ’application died’ information note. The service is used by the maemo-launcher daemon, when an application started by maemo-launcher dies, it causes showing of the note by broadcasting the following signal. 

{| class=&quot;wikitable&quot;
|+ Application died signal
|-
! Attribute !! Value
|-
| service || (ignored)
|-
| interface || &lt;code&gt;org.maemo.launcher&lt;/code&gt;
|-
| object path || &lt;code&gt;org/maemo/launcher&lt;/code&gt;
|-
| member || Application Died
|}

{| class=&quot;wikitable&quot;
|+ Application died signal arguments
|-
! Argument # !! Mandatory !! Type !! Value
|-
| 1 || yes || &lt;code&gt;DBUS_TYPE_STRING&lt;/code&gt; || ﬁle name of the executable
|-
| 2 || yes || &lt;code&gt;DBUS_TYPE_INT32&lt;/code&gt; || PID of the died process
|-
| 3 || yes || &lt;code&gt;DBUS_TYPE_INT32&lt;/code&gt; || exit code returned from &lt;code&gt;waitpid()&lt;/code&gt;
|}

====D-Bus service for application launching====

hildon-desktop implements a D-Bus interface for launching applications. Application can be started by sending the D-Bus message mentioned in Section 6.2. 

====D-Bus service for moving from fullscreen application to Task switcher====

Fullscreen applications cannot be minimised with a hardware key because there is no key reserved for that, so hildon-desktop provides a D-Bus interface for requesting it. This can be done by sending the following D-Bus signal. 

{| class=&quot;wikitable&quot;
|+ D-Bus API to switch from fullscreen view to task switcher
|-
! Attribute !! Value
|-
| service || (ignored)
|-
| interface || &lt;code&gt;com.nokia.hildon_desktop&lt;/code&gt;
|-
|| object path || (ignored)
|-
| member || &lt;code&gt;exit_app_view&lt;/code&gt;
|}

====Shutdown signal====

hildon-desktop catches the following D-Bus signal on the system bus.

{| class=&quot;wikitable&quot;
|+ Shutdown signal
|-
! Attribute !! Value
|-
| service || (ignored)
|-
| interface || &lt;code&gt;com.nokia.mce.signal&lt;/code&gt;
|-
| object path || &lt;code&gt;com/nokia/mce/signal&lt;/code&gt;
|-
| member || &lt;code&gt;shutdown_ind&lt;/code&gt;
|}

====Portrait mode API in window manager====

The hildon-desktop process has a limited support for the portrait mode. The current thinking is that an application ﬂags a window with a special window property when the whole screen should be turned to the portrait mode. The application will use the accelerometer’s output and its internal state for the decision to set the ﬂag.

The ﬂag will only be a hint for the window manager, though, because there could be a dialog waiting for the user’s input open, and then the portrait mode will not be entered until the dialog is closed. The current plan is that most dialogs appearing in the portrait mode would cause transition back to the landscape mode before showing the dialog. The dialogs that support both modes would be ﬂagged for the window manager by the application. The Status area window is not sensitive to input in the portrait mode, and the Tasks button will not be visible there. Incoming event windows will be shown in both landscape and portrait modes. Text input methods will not be supported in the portrait mode, i.e. there is no on-screen keyboard in the portrait mode. The Xrandr extension is used to change the screen orientation.

====Hardware keyboard key bindings====

In Diablo, there is a set of keys under the GConf path &lt;code&gt;/apps/osso/keybindings&lt;/code&gt; to conﬁgure what hardware key (home, power, menu, fullscreen, etc.) shortcuts do in the desktop. In Fremantle, there are no key bindings for hildon-desktop.

====Full screen mode====

Applications can request to go in and out of the full screen mode by using the &lt;code&gt;gtk_window_fullscreen()&lt;/code&gt; and &lt;code&gt;gtk_window_unfullscreen()&lt;/code&gt; functions. The WM will see the desired mode from a window property. See the [http://library.gnome.org/devel/gtk/stable/GtkWindow.html#gtk-window-fullscreen GTK+ documentation] for more information.

==hildon-home==

The hildon-home process implements loading of Home applets, notiﬁcation service, and loading of Home background images. There are multiple Home views, and the user can select between them by horizontally scrolling the screen. Each of the views can have a different set of dynamically loaded Home applets, a small Gtk+ applications with their own, possibly transparent, X window displayed on top of the Home background. Home has a layout mode in which the applet windows can be moved, resized, and dragged to a neighbouring Home view. 

hildon-desktop handles positioning and displaying of the Home applets and background pictures according to the currently selected Home view. hildon-desktop also implements the Home layout mode in cooperation with hildon-home. Home ﬂags the applet windows with speciﬁc window properties to tell hildon-desktop to handle them in a special way. Home also stores the applet positions and the Home view where they are active to GConf for hildon-desktop. 

hildon-home provides a service on the D-Bus session bus to display notiﬁcations on the screen, based on a proposed freedesktop.org Desktop Notiﬁcation Speciﬁcation6 . Typical notiﬁcations are incoming e-mails, chat messages, and missed phone calls. The service supports persistent notiﬁcations that are retained over a reboot, simple dialogs with return values, and queueing of notiﬁcations. It is also possible to install plugins for the notification service, e.g. to support sound and vibration effects in connection to notifications. 


[[Image:hildon-home_components.png|1000px|alt=UML diagram|hildon-home components]]


===Notification D-Bus service===

The hildon-home process provides the Desktop Notiﬁcation Speciﬁcation D-Bus API documented in [http://www.galago-project.org/specs/notification/0.9/notification-spec-0.9.txt specification]. Notification can be specified to be persistent over device reboots by giving the ‘persistent’ hint in the D-Bus message.

The &lt;code&gt;org.freedesktop.Notiﬁcations&lt;/code&gt; interface recognises the following two additional messages for backwards compatibility. 

====System information banner====

The following D-Bus message can be used to show a system information banner. This is used by the Libosso function &lt;code&gt;osso_system_note_infoprint()&lt;/code&gt;. The ’standard’ Notiﬁcations API should be preferred over this for new applications. 

{| class=&quot;wikitable&quot;
|+ System information banner D-Bus API
|-
! Attribute !! Value
|-
| service || &lt;code&gt;org.freedesktop.Notifications&lt;/code&gt;
|-
| interface || &lt;code&gt;org.freedesktop.Notifications&lt;/code&gt;
|-
| object path || &lt;code&gt;/org/freedesktop/Notifications&lt;/code&gt;
|-
| member || &lt;code&gt;SystemNoteInfoprint&lt;/code&gt;
|}

{| class=&quot;wikitable&quot;
|+ System information banner D-Bus API arguments
|-
! Argument # !! Mandatory !! Type !! Value
|-
| 1 || yes || &lt;code&gt;DBUS_TYPE_STRING&lt;/code&gt; || message to show
|}

The return value is of the type &lt;code&gt;DBUS_TYPE_UINT32&lt;/code&gt;, it is the ID of the notiﬁcation.

====System information note====

The following D-Bus message can be used to show a system information note. This is used by the Libosso function &lt;code&gt;osso_system_note_dialog()&lt;/code&gt;. The ‘standard’ Notiﬁcations API should be preferred over this for new applications. 

{| class=&quot;wikitable&quot;
|+ System information note D-Bus API
|-
! Attribute !! Value
|-
| service || &lt;code&gt;org.freedesktop.Notifications&lt;/code&gt;
|-
| interface || &lt;code&gt;org.freedesktop.Notifications&lt;/code&gt;
|-
| object path || &lt;code&gt;/org/freedesktop/Notifications&lt;/code&gt;
|-
| member || &lt;code&gt;SystemNoteDialog&lt;/code&gt;
|}

{| class=&quot;wikitable&quot;
|+ System information note D-Bus API arguments
|-
! Argument # !! Mandatory !! Type !! Value
|-
| 1 || yes || &lt;code&gt;DBUS_TYPE_STRING&lt;/code&gt; || message to show
|-
| 2 || yes || &lt;code&gt;DBUS_TYPE_UNIT32&lt;/code&gt; || type of dialog, one of &lt;code&gt;OSSO_GN_*&lt;/code&gt;
|-
| 3 || yes || &lt;code&gt;DBUS_TYPE_STRING&lt;/code&gt; || label of the button
|}

The return value is of the type &lt;code&gt;DBUS_TYPE_UINT32&lt;/code&gt;, it is the ID of the notiﬁcation. The dialog’s return value can be retrieved by listening to the &lt;code&gt;NotiﬁcationClosed&lt;/code&gt; signal that bears the ID.

===Notification plugin interface===

The notiﬁcation service supports plugins for e.g. sound and vibration functionality. The plugin code is not allowed to block.

===Home plugin Public API===

* Every Home applet inherits from &lt;code&gt;HDHomePluginItem&lt;/code&gt; GObject class. &lt;code&gt;HDHomePluginItem&lt;/code&gt; is a descendant of &lt;code&gt;GtkWindow&lt;/code&gt;, so to add a widget to the Home applet, you should use the &lt;code&gt;gtk_container_add()&lt;/code&gt; function.
*Visibility of the applet is handled by hildon-home.
* The applets can have only tap interaction (because of panning of Home screens)
* The applets cannot have focus (because of the &quot;call from Home&quot; feature)
* Class methods:
** &lt;code&gt;const gchar *hd_home_plugin_item_get_dl_filename (HDHomePluginItem *item);&lt;/code&gt;
** &lt;code&gt;DBusConnection *hd_home_plugin_item_get_dbus_connection ( HDHomePluginItem *item, DBusBusType type, DBusError *error);&lt;/code&gt;
** &lt;code&gt;DBusGConnection *hd_home_plugin_item_get_dbus_g_connection ( HDHomePluginItem *item, DBusBusType type, GError **error);&lt;/code&gt;
** &lt;code&gt;guint hd_home_plugin_item_heartbeat_signal_add ( HDHomePluginItem *item, guint mintime, guint maxtime, GSourceFunc source_func, gpointer data, GDestroyNotify destroy);&lt;/code&gt;
** &lt;code&gt;void hd_home_plugin_item_set_settings (HDHomePluginItem *item, gboolean settings); /* Whether the applet supports settings */&lt;/code&gt;
** &lt;code&gt;gchar *hd_home_plugin_item_get_applet_id (HDHomePluginItem *item);&lt;/code&gt;

Applet should install a desktop file, e.g.:
&lt;pre&gt;
[Desktop Entry]
Name=Example Home Applet
Comment=Description of the Example Home Applet
Type=default
X-Path=example-home-applet.so
X-Multiple=true
X-Text-Domain=gettextdomain
X-Display-On-All-Views=no
&lt;/pre&gt;

To specify default position, GConf schema should be installed. E.g.:

&lt;source lang=&quot;xml&quot;&gt;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;gconfschemafile xmlns:confml=&quot;http://www.s60.com/xml/confml/2&quot;&gt;
  &lt;schemalist&gt;
    &lt;!--Settings for calendar-home-applet.desktop--&gt;
    &lt;!--Home view where shortcut is visible--&gt;
    &lt;schema&gt;
      &lt;key&gt;/schemas/apps/osso/hildon-desktop/applets/calendar-home-applet.desktop/view&lt;/key&gt;
      &lt;applyto&gt;/apps/osso/hildon-desktop/applets/calendar-home-applet.desktop/view&lt;/applyto&gt;
      &lt;type&gt;int&lt;/type&gt;
      &lt;default&gt;1&lt;/default&gt;
      &lt;locale name=&quot;C&quot;/&gt;
    &lt;/schema&gt;
    &lt;!--Position of shortcut--&gt;
    &lt;schema&gt;
      &lt;key&gt;/schemas/apps/osso/hildon-desktop/applets/calendar-home-applet.desktop/position&lt;/key&gt;
      &lt;applyto&gt;/apps/osso/hildon-desktop/applets/calendar-home-applet.desktop/position&lt;/applyto&gt;
      &lt;type&gt;list&lt;/type&gt;
      &lt;list_type&gt;int&lt;/list_type&gt;
      &lt;default&gt;[10,20]&lt;/default&gt;
      &lt;locale name=&quot;C&quot;/&gt;
    &lt;/schema&gt;
  &lt;/schemalist&gt;
&lt;/gconfschemafile&gt;
&lt;/source&gt;

In contrast to Status Menu and Notification plugins Home applets are not enabled by default but need to be enabled in the home.plugins file (&lt;code&gt;/etc/hildon-desktop/home.plugins&lt;/code&gt; or &lt;code&gt;~/.config/hildon-desktop/home.plugins&lt;/code&gt;).

===API for creating Web bookmarks===

The libhildondesktop library provides function &lt;code&gt;hd_shortcuts_add_bookmark_shortcut()&lt;/code&gt; for adding a Web bookmark shortcut on Home.

== hildon-status-menu ==

The hildon-status-menu process implements Status menu and Status area. The Status menu displays windows of dynamically loaded Gtk+ applets. All available Status menu applets are displayed in the menu, and some of them might have an icon in the Status area, depending on the conﬁguration. Status menu applets can start new applications using the D-Bus autoactivation system, and they can display controls that the user can directly manipulate on their window. The Status area is basically a button that allows the user open the Status menu. 
Status area expands to accommodate its plugin icons (from selected Status menu plugins), but it has a pre-conﬁgured limit for the maximum number of plugin icons. 

===Status menu plugin API===

* Status Area and Status Menu plugins are the same: every Status Menu plugin can show up on Status Area, too.
* Plugins inherit from &lt;code&gt;HDStatusMenuItem&lt;/code&gt; (subclass of &lt;code&gt;HDStatusPluginItem&lt;/code&gt;, which is subclass of &lt;code&gt;GtkBin&lt;/code&gt;) &lt;code&gt;GObject&lt;/code&gt; class, which has these class methods inherited from &lt;code&gt;HDStatusPluginItem&lt;/code&gt;:
** Function for setting (or changing) the Status Area icon (&lt;code&gt;GdkPixbuf&lt;/code&gt;): &lt;code&gt;hd_status_plugin_item_set_status_area_icon()&lt;/code&gt;, &lt;code&gt;::status-area-icon&lt;/code&gt; property
** Function for setting &lt;code&gt;GtkWidget&lt;/code&gt; instead of &lt;code&gt;GdkPixbuf&lt;/code&gt; as the Status Area icon: &lt;code&gt;void hd_status_plugin_item_set_status_area_widget ( HDStatusPluginItem *item, GtkWidget*widget);&lt;/code&gt;
** Function for registering callbacks using the system-wide synchronized timers: &lt;code&gt;hd_status_plugin_item_heartbeat_signal_add()&lt;/code&gt;
** Function for getting name of the plugin file, e.g. ''get_dlfilename: &lt;code&gt;hd_status_plugin_item_get_dl_filename()&lt;/code&gt;, &lt;code&gt;::dl-filename&lt;/code&gt; property
** &lt;code&gt;DBusConnection *hd_status_plugin_item_get_dbus_connection ( HDStatusPluginItem *item, DBusBusType type, DBusError *error);&lt;/code&gt;
** &lt;code&gt;DBusGConnection *hd_status_plugin_item_get_dbus_g_connection ( HDStatusPluginItem * item, DBusBusType type, GError **error);&lt;/code&gt;
* &lt;code&gt;HD_DEFINE_PLUGIN_MODULE&lt;/code&gt; macro is used to define the plugin class as subclass of &lt;code&gt;GTypeModule&lt;/code&gt;.
* Plugin widget's standard &lt;code&gt;GObject&lt;/code&gt; constructor and destructor are used.
* Widget's visibility (in ''Gtk'') is used to show and hide the plugin.
* If the plugin is a &lt;code&gt;GtkButton&lt;/code&gt;, pressing it closes Status Menu.
* First, all ''.desktop'' files are read, then plugins are loaded and laid out in the priority order.
* The dynamic object file name determines the name of the plugin (name should be used in debugging and D-Bus names).


[[Image:hildon-statusmenu_decomposition.png|800px|alt=UML diagram|hison-status-menu decomposition]]

==Hildon Input Methods==

The Hildon input method system is architecturally separated from the rest of the Desktop domain, and it does not require any special handling in the window manager in Fremantle. 

Fremantle will not have the partial-screen virtual keyboard anymore, only the full-screen on-screen keyboard and hardware keyboard. (MORE INFO NEEDED)

==Clipboard manager==

The Clipboard manager implements a clipboard manager for X window applications. It is taken from Diablo and the changes are kept minimal.

==Configuration and Customization==

The following subsections indicate how the UI framework is configured.

===Theme configuration===

The current theme is speciﬁed by &lt;code&gt;/etc/hildon/theme&lt;/code&gt; symbolic link (by default it points to &lt;code&gt;/usr/share/themes/default&lt;/code&gt;). The value of &lt;code&gt;/etc/hildon/theme&lt;/code&gt; is also reﬂected in the &lt;code&gt;MB_THEME&lt;/code&gt; property on the root window. The system default theme is speciﬁed by &lt;code&gt;/usr/share/themes/default&lt;/code&gt; symbolic link. The system default theme must be present at all times because it is used as a fallback theme in case the user tries to switch to an invalid theme, and when restoring original settings from Control Panel. 

When the user changes the theme using the Control Panel theme applet, the applet changes &lt;code&gt;/etc/hildon/theme&lt;/code&gt; to point to the new theme, and hildon-desktop adjusts &lt;code&gt;MB_THEME&lt;/code&gt; accordingly. hildon-desktop will set &lt;code&gt;MB_THEME&lt;/code&gt; also when it starts up. The applications should use &lt;code&gt;/etc/hildon/theme&lt;/code&gt; or &lt;code&gt;MB_THEME&lt;/code&gt; to determine the currently selected theme.

===Task launcher conﬁguration=== 

The Task launcher is populated with applications that have installed their desktop ﬁles in the 
&lt;code&gt;/usr/share/applications/hildon&lt;/code&gt; directory, as it is in Diablo. Layout of Task launcher is speciﬁed in a XML ﬁle inspired by the freedesktop.org Desktop Menu Specification 1.0 . It will be stored in &lt;code&gt;/etc/xdg/menus/applications.menu&lt;/code&gt; and, in case it is modiﬁed, in &lt;code&gt;$HOME/.config/menus/applications.menu&lt;/code&gt;. 

===Home applet conﬁguration ===

Pre-installed conﬁguration ﬁles and the user deﬁne the Home applet conﬁguration. There are three conﬁguration ﬁles specifying the system-default conﬁguration: 
* &lt;code&gt;/etc/hildon-desktop/home.conf&lt;/code&gt;
* &lt;code&gt;/etc/hildon-desktop/home.plugins&lt;/code&gt; and
* &lt;code&gt;/etc/hildon-desktop/home.safe-set&lt;/code&gt;

&lt;code&gt;home.conf&lt;/code&gt; speciﬁes the directory for Home applets desktop ﬁles (default: &lt;code&gt;/usr/share/applications/hildon-home&lt;/code&gt;) and the plugin conﬁguration ﬁle (default: &lt;code&gt;/etc/hildon-desktop/home.plugins&lt;/code&gt;). 

&lt;code&gt;home.plugins&lt;/code&gt; speciﬁes the plugins which should be loaded when hildon-home starts, it simply lists the desktop ﬁles of the plugins. home.safe-set lists plugins which are included in the “safe set” of plugins; these applets will be loaded always (they must also be included in home.plugins), unlike the other plugins which are not loaded if hildon-home crashes and restarts. 

&lt;code&gt;/etc/hildon-desktop/home.plugins&lt;/code&gt; can be overridden with &lt;code&gt;$HOME/.config/hildon-desktop/home.plugins&lt;/code&gt;, which is created when the user changes conﬁguration of loaded applets. 

===Status menu plugin conﬁguration===

There are two pre-installed conﬁguration ﬁles specifying the system-default status menu plugins: 
* &lt;code&gt;/etc/hildon-desktop/status-menu.conf&lt;/code&gt; and 
* &lt;code&gt;/etc/hildon-desktop/status-menu.plugins&lt;/code&gt;

The ﬁrst one speciﬁes the directory from where Status menu plugins desktop ﬁles can be found (default: &lt;code&gt;/usr/share/applications/hildon-status-menu&lt;/code&gt;) and the ﬁle deﬁning the “safe set” of plugins (default: &lt;code&gt;/etc/hildon-desktop/status-menu.plugins&lt;/code&gt;). Normally Status menu loads all plugins listed in status-menu.plugins and all plugins that have installed a desktop ﬁle to the above mentioned directory; however, if Status menu crashes and restarts, it only loads plugins listed in status-menu.plugins.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/DBus</title>
    <id>2336</id>
    <revision>
      <id>32131</id>
      <timestamp>2010-04-08T09:08:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix link</comment>
      <text xml:space="preserve">*[[{{PAGENAME}}/DBus_Basics|D-Bus Basics]]
*[[{{PAGENAME}}/Using GLib Wrappers For D-Bus|Using GLib Wrappers For D-Bus]]
*[[{{PAGENAME}}/Implementing and Using D-Bus Signals|Implementing and Using D-Bus Signals]]
*[[{{PAGENAME}}/D-Bus_Server_Design_Issues|D-Bus Server Design Issues]]
*[[{{PAGENAME}}/Asynchronous_Glib/D-Bus| Asynchronous Glib/D-Bus]]


The example code used in the pages linked above can be found in [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/glib-dbus-signals/ garage svn].

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/DBus/Asynchronous GLib D-Bus</title>
    <id>2334</id>
    <revision>
      <id>32132</id>
      <timestamp>2010-04-08T09:09:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/DBus/Asynchronous Glib/D-Bus]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/DBus/Asynchronous Glib/D-Bus</title>
    <id>2403</id>
    <revision>
      <id>38329</id>
      <timestamp>2010-09-06T11:31:54Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Asynchronous Method Calls Using GLib Wrappers */ add &lt;code&gt;</comment>
      <text xml:space="preserve">The example code used below can be found in the [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-async/ garage svn].

== Asynchronicity in D-Bus clients ==

So far all the RPC method calls that have been implemented here have been &quot;fast&quot;, meaning that their execution has not depended on an access to slow services or external resources. In real life, however, it is quite likely that some services cannot be provided immediately, but have to wait for some external service to complete, before completing the method call.

The [[Documentation/Maemo 5 Developer Guide/DBus/Using GLib Wrappers For D-Bus|GLib wrappers]] provide a version of making method calls, where the call is launched (almost) immediately, and a callback is executed when the method call returns (either with a return value or an error).

Using the asynchronous wrappers is important when the program needs to update some kind of status or be reactive to the user (via a GUI or other interface). Otherwise, the program would block waiting for the RPC method to return, and would not be able to refresh the GUI or screen when required. An alternative solution is to use separate threads that run the synchronous methods. However, if this solution is used, synchronization between threads can become an issue, and debugging threaded programs is much harder than debugging single-threaded ones. Furthermore, the implementation of threads might be suboptimal in some environments. For these reasons, the thread scenario is not covered in this guide.

Slow running RPC methods are simulated here by adding a delay into the server method implementations, so that it becomes clear why asynchronous RPC mechanisms are important. As signals, by their nature, are asynchronous as well, they do not add anything to this example now. In order to simplify the code listings, the signal support from the asynchronous clients is dropped here, even though the server still contains them and emits them.

== Slow Test Server ==

The only change on the server side is the addition of delays into each of the RPC methods (&lt;code&gt;setvalue1&lt;/code&gt;, &lt;code&gt;setvalue2&lt;/code&gt;, &lt;code&gt;getvalue1&lt;/code&gt; and &lt;code&gt;getvalue2&lt;/code&gt;). This delay is added to the start of each function as follows: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-async/server.c glib-dbus-async/server.c]

&lt;source lang=&quot;c&quot;&gt;
/* How many microseconds to delay between each client operation. */
#define SERVER_DELAY_USEC (5*1000000UL)
  /*... Listing cut for brevity ...*/
gboolean value_object_setvalue1(ValueObject* obj, gint valueIn,
                                                  GError** error) {
  dbg(&quot;Called (valueIn=%d)&quot;, valueIn);
  g_assert(obj != NULL);
  dbg(&quot;Delaying operation&quot;);
  g_usleep(SERVER_DELAY_USEC);
  /* Compare the current value against old one. If they are the same,
     we do not need to do anything (except return success). */
  if (obj-&gt;value1 != valueIn) {
&lt;/source&gt;

Building the server is done as before, but we notice the delay when we call an RPC method:

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/glib-dbus-async] &gt; run-standalone.sh ./server &amp;
server:main Connecting to the Session D-Bus.
server:main Registering the well-known name (org.maemo.Platdev_ex)
server:main RequestName returned 1.
server:main Creating one Value object.
server:value_object_class_init: Called
server:value_object_class_init: Creating signals
server:value_object_class_init: Binding to GLib/D-Bus
server:value_object_class_init: Done
server:value_object_init: Called
server:main Registering it on the D-Bus.
server:main Ready to serve requests (daemonizing).
server: Not daemonizing (built with NO_DAEMON-build define)
[sbox-FREMANTLE_X86: ~/glib-dbus-async] &gt; time run-standalone.sh dbus-send \
 --type=method_call --print-reply --dest=org.maemo.Platdev_ex \
 /GlobalValue org.maemo.Value.getvalue1
server:value_object_getvalue1: Called (internal value1 is 0)
server:value_object_getvalue1: Delaying operation
method return sender=:1.54 -&gt; dest=:1.56
 int32 0

real    0m5.066s
user    0m0.004s
sys     0m0.056s
&lt;/pre&gt;

In the example above, the time shell built-in command was used. It runs the given command while measuring the wall clock time (the real time) and the time used while executing the code and system calls. In this case, only the real time is of any interest. The method call delays for about 5 seconds, as it should. The delay (even when given with microsecond resolution) is always approximate, and longer than the requested amount. Exact delay depends on many factors, most of which cannot be directly influenced.

The next experiment deals with a likely scenario, where another method call comes along while the first one is still being executed. This is best tested by just repeating the sending command twice, but running the first one on the background (so that the shell does not wait for it to complete first). The server is still running on the background from the previous test:

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/glib-dbus-async] &gt; time run-standalone.sh dbus-send \
 --type=method_call --print-reply --dest=org.maemo.Platdev_ex \
 /GlobalValue org.maemo.Value.getvalue1 &amp;
[2] 17010
server:value_object_getvalue1: Called (internal value1 is 0)
server:value_object_getvalue1: Delaying operation
[sbox-FREMANTLE_X86: ~/glib-dbus-async] &gt; time run-standalone.sh dbus-send \
 --type=method_call --print-reply --dest=org.maemo.Platdev_ex \
 /GlobalValue org.maemo.Value.getvalue1
method return sender=:1.54 -&gt; dest=:1.57
 int32 0

real    0m5.176s
user    0m0.008s
sys     0m0.092s
server:value_object_getvalue1: Called (internal value1 is 0)
server:value_object_getvalue1: Delaying operation
method return sender=:1.54 -&gt; dest=:1.58
 int32 0

real    0m9.852s
user    0m0.004s
sys     0m0.052s
&lt;/pre&gt;

What can be seen from the above output is that the first client is delayed for about 5 seconds, while the second client (which was launched shortly after the first) is already delayed by a much longer period. This is to be expected, as the server can only process one request at a time and delays each request by 5 seconds.

The clients must be able to continue their &quot;normal work&quot; while they wait for the response from the server. Since this is just example code, &quot;normal work&quot; for the clients is waiting for the response while blocking on incoming events (converted into callbacks). However, if the example programs are graphical, the asynchronous approach make it possible for them to react to user input. D-Bus by itself does not support cancellation of method calls, once processing has started on the server side, so adding cancellation support requires a separate method call to the server. Since the server only handles one operation at a time, the current server cannot support method call cancellations at all.

== Asynchronous Method Calls Using Stubs ==

When the &lt;code&gt;glib-bindings-tool&lt;/code&gt; is run, it already generates the necessary wrapping stubs to support launching asynchronous method calls. What is then left to do is implementing the callback functions correctly, processing the return errors and launching the method call. [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-async/client-stubs.c glib-dbus-async/client-stubs.c]

&lt;source lang=&quot;c&quot;&gt;
/* Pull in the client stubs that were generated with
   dbus-binding-tool */
#include &quot;value-client-stub.h&quot;
&lt;/source&gt;

The client has been simplified, so that it now only operates on &lt;code&gt;value1&lt;/code&gt;. The callback that is called from the stub code is presented next: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-async/client-stubs.c glib-dbus-async/client-stubs.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * This function is called when the async setvalue1 either
 * completes, timeouts or fails (our server however does not signal
 * errors, but the client D-Bus library can do that). When this example
 * program is left running for a while, you can see all three cases.
 *
 * The prototype must match the one generated by the dbus-binding-tool
 * (org_maemo_Value_setvalue1_reply).
 *
 * Because there is no return value from the RPC, the only useful
 * parameter that we get is the error object, which we check.
 * If error is NULL, that means no error. Otherwise the RPC call
 * failed and we should check what the cause was.
 */
static void setValue1Completed(DBusGProxy* proxy, GError *error,
                                                  gpointer userData) {

  g_print(PROGNAME &quot;:%s:setValue1Completed\n&quot;, timestamp());
  if (error != NULL) {
    g_printerr(PROGNAME &quot;       ERROR: %s\n&quot;, error-&gt;message);
    /* We need to release the error object because the stub code does
       not do it automatically. */
    g_error_free(error);
  } else {
    g_print(PROGNAME &quot;       SUCCESS\n&quot;);
  }
}
&lt;/source&gt;

Because the method call does not return any data, the parameters for the callback are at minimum (those three are always received). Handling errors must be performed within the callback, because errors could be delayed from the server, and not visible immediately at launch time.

Note that the callback does not terminate the program on errors. This is done on purpose in order to demonstrate some common asynchronous problems below. The timestamp function is a small utility function to return a pointer to a string, representing the number of seconds because the program started (useful to visualize the order of the different asynchronous events below). [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-async/client-stubs.c glib-dbus-async/client-stubs.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * This function is called repeatedly from within the mainloop
 * timer launch code.
 *
 * It launches asynchronous RPC method to set value1 with ever
 * increasing argument.
 */
static gboolean timerCallback(DBusGProxy* remoteobj) {

  /* Local value that we'll start updating to the remote object. */
  static gint localValue1 = -80;

  /* Start the RPC.
     This is done by calling the stub function that takes the new
     value and the callback function to call on reply getting back.

     The stub returns a DBusGProxyCall object, but we do not need it
     so we ignore the return value. The return value could be used
     to cancel a pending request (from client side) with
     dbus_g_proxy_cancel_call. We could also pass a pointer to
     user-data (last parameter), but we do not need one in this example.
     It is normally used to &quot;carry around&quot; the application state.
     */
  g_print(PROGNAME &quot;:%s:timerCallback launching setvalue1\n&quot;,
          timestamp());
  org_maemo_Value_setvalue1_async(remoteobj, localValue1,
                                  setValue1Completed, NULL);
  g_print(PROGNAME &quot;:%s:timerCallback setvalue1 launched\n&quot;,
          timestamp());

  /* Step the local value forward. */
  localValue1 += 10;

  /* Repeat timer later. */
  return TRUE;
}
&lt;/source&gt;

Using the stub code is rather simple. For each generated synchronous version of a method wrapper, there is also the a &lt;code&gt;_async&lt;/code&gt; version of the call. The main difference with the parameters is the removal of the &lt;code&gt;GError&lt;/code&gt; pointer (because errors are handled in the callback), and the addition of the callback function to use when the method completes, times out or encounters an error.

The main function remains the same from the previous client examples (a once-per-second timer is created and run from the mainloop until the program is terminated).

== Problems with Asynchronicity ==

When the simple test program is built and run, it can be seen that everything starts off quite well. But at some point, problems start to appear:

&lt;pre&gt;
[sbox-FREMANTLE_X86: /glib-dbus-async] &gt; make client-stubs
dbus-binding-tool --prefix=value_object --mode=glib-client \
  value-dbus-interface.xml &gt; value-client-stub.h
cc -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include \
 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -Wall \
 -DG_DISABLE_DEPRECATED -DNO_DAEMON -DPROGNAME=\&quot;client-stubs\&quot; \
 -c client-stubs.c -o client-stubs.o
cc client-stubs.o -o client-stubs -ldbus-glib-1 -ldbus-1 -lgobject-2.0 -lglib-2.0
[sbox-FREMANTLE_X86: /glib-dbus-async] &gt; run-standalone.sh ./client-stubs
client-stubs:main Connecting to Session D-Bus.
client-stubs:main Creating a GLib proxy object for Value.
client-stubs: 0.00:main Starting main loop (first timer in 1s).
client-stubs: 1.00:timerCallback launching setvalue1
client-stubs: 1.00:timerCallback setvalue1 launched
server:value_object_setvalue1: Called (valueIn=-80)
server:value_object_setvalue1: Delaying operation
client-stubs: 2.00:timerCallback launching setvalue1
client-stubs: 2.00:timerCallback setvalue1 launched
client-stubs: 3.01:timerCallback launching setvalue1
client-stubs: 3.01:timerCallback setvalue1 launched
client-stubs: 4.01:timerCallback launching setvalue1
client-stubs: 4.01:timerCallback setvalue1 launched
client-stubs: 5.02:timerCallback launching setvalue1
client-stubs: 5.02:timerCallback setvalue1 launched
server:value_object_emitSignal: Emitting signal id 0, with message 'value1'
server:value_object_setvalue1: Called (valueIn=-70)
server:value_object_setvalue1: Delaying operation
client-stubs: 6.01:setValue1Completed
client-stubs       SUCCESS
client-stubs: 6.02:timerCallback launching setvalue1
client-stubs: 6.02:timerCallback setvalue1 launched
client-stubs: 7.02:timerCallback launching setvalue1
client-stubs: 7.02:timerCallback setvalue1 launched
...
client-stubs:25.04:timerCallback launching setvalue1
client-stubs:25.04:timerCallback setvalue1 launched
server:value_object_emitSignal: Emitting signal id 0, with message 'value1'
server:value_object_setvalue1: Called (valueIn=-30)
server:value_object_setvalue1: Delaying operation
client-stubs:26.03:setValue1Completed
client-stubs       SUCCESS
client-stubs:26.05:timerCallback launching setvalue1
client-stubs:26.05:timerCallback setvalue1 launched
client-stubs:27.05:timerCallback launching setvalue1
client-stubs:27.05:timerCallback setvalue1 launched
client-stubs:28.05:timerCallback launching setvalue1
client-stubs:28.05:timerCallback setvalue1 launched
client-stubs:29.05:timerCallback launching setvalue1
client-stubs:29.05:timerCallback setvalue1 launched
client-stubs:30.05:timerCallback launching setvalue1
client-stubs:30.05:timerCallback setvalue1 launched
client-stubs:31.02:setValue1Completed
client-stubs       ERROR: Did not receive a reply. Possible causes include:
 the remote application did not send a reply, the message bus security policy
 blocked the reply, the reply timeout expired, or the network connection was
 broken.
server:value_object_emitSignal: Emitting signal id 0, with message 'value1'
server:value_object_setvalue1: Called (valueIn=-20)
server:value_object_setvalue1: Delaying operation
client-stubs:31.05:timerCallback launching setvalue1
client-stubs:31.05:timerCallback setvalue1 launched
client-stubs:32.03:setValue1Completed
client-stubs       ERROR: Did not receive a reply. Possible causes include:
 the remote application did not send a reply, the message bus security policy
 blocked the reply, the reply timeout expired, or the network connection was
 broken.
client-stubs:32.05:timerCallback launching setvalue1
client-stubs:32.05:timerCallback setvalue1 launched
client-stubs:33.03:setValue1Completed
client-stubs       ERROR: Did not receive a reply. Possible causes include:
 the remote application did not send a reply, the message bus security policy
 blocked the reply, the reply timeout expired, or the network connection was
 broken.
client-stubs:33.05:timerCallback launching setvalue1
client-stubs:33.05:timerCallback setvalue1 launched
client-stubs:34.03:setValue1Completed
client-stubs       ERROR: Did not receive a reply. Possible causes include:
 the remote application did not send a reply, the message bus security policy
 blocked the reply, the reply timeout expired, or the network connection was
 broken.
client-stubs:34.06:timerCallback launching setvalue1
client-stubs:34.06:timerCallback setvalue1 launched
client-stubs:35.03:setValue1Completed
client-stubs       ERROR: Did not receive a reply. Possible causes include:
 the remote application did not send a reply, the message bus security policy
 blocked the reply, the reply timeout expired, or the network connection was
 broken.
client-stubs:35.05:timerCallback launching setvalue1
client-stubs:35.05:timerCallback setvalue1 launched
client-stubs:36.04:setValue1Completed
client-stubs       ERROR: Did not receive a reply. Possible causes include:
 the remote application did not send a reply, the message bus security policy
 blocked the reply, the reply timeout expired, or the network connection was
 broken.
server:value_object_emitSignal: Emitting signal id 0, with message 'value1'
server:value_object_setvalue1: Called (valueIn=-10)
server:value_object_setvalue1: Delaying operation
client-stubs:36.06:timerCallback launching setvalue1
client-stubs:36.06:timerCallback setvalue1 launched
client-stubs:37.04:setValue1Completed
client-stubs       ERROR: Did not receive a reply. Possible causes include:
 the remote application did not send a reply, the message bus security policy
 blocked the reply, the reply timeout expired, or the network connection was
 broken.
[Ctrl+c]
[sbox-FREMANTLE_X86: /glib-dbus-async] &gt;
server:value_object_emitSignal: Emitting signal id 0, with message 'value1'
server:value_object_setvalue1: Called (valueIn=30)
server:value_object_setvalue1: Delaying operation
server:value_object_emitSignal: Emitting signal id 0, with message 'value1'
server:value_object_setvalue1: Called (valueIn=40)
server:value_object_setvalue1: Delaying operation
server:value_object_emitSignal: Emitting signal id 0, with message 'value1'
server:value_object_setvalue1: Called (valueIn=50)
server:value_object_setvalue1: Delaying operation
server:value_object_emitSignal: Emitting signal id 0, with message 'value1'
...
&lt;/pre&gt;

What happens above is rather subtle. The timer callback in the client launches once per second and performs the RPC method launch. The server, however, still has the 5 second delay for each method call in it. The successive launches go on without any responses for a while. The first response comes back at about 6 seconds from the starting of the client. At this point, the server already has four other outstanding method calls that it has not handled. Slowly the method calls are accumulating at the server end and it does not deal with them quickly enough to satisfy the client.

After about 30 seconds, the &lt;code&gt;setValue1Completed&lt;/code&gt; callback is invoked, but the method call fails. This has managed to trigger the method call timeout mechanism. After this point, all the method calls that have accumulated into the server (into a message queue) fail in the client, since they all return late now, even if the server actually does handle them.

Once the client is terminated, the server is still happily continuing serving the requests, oblivious to the fact that there is no client to process the responses.

The above test demonstrates quite brutally that the services need to be designed properly, so that there is a clearly defined protocol what to do in case a method call is delayed. It is also advisable to design a notification protocol to tell clients that something has completed, instead of forcing them to time out. Using D-Bus signals is one way. However, signals must not be generated when nothing is listening to them. This can be done by only sending signals when a long operation finishes (assuming this has been documented as part of the service description).

One partial fix is for the client to track and make sure that only one method call to one service is outstanding at any given time. So, instead of just blindly launching the RPC methods, the client should defer from launching RPC methods if it has not yet received a response from the server (and the call has not timed out).

However, this fix is not complete, because the same problem manifests itself once there are multiple clients running in parallel and requesting the same methods. The proper fix is to make the server capable of serving multiple requests in parallel.

== Asynchronous Method Calls Using GLib Wrappers ==

Sometimes the interface XML is missing, so the &lt;code&gt;dbus-bindings-tool&lt;/code&gt; cannot be run to generate the stub code. The GLib wrappers are generic enough to enable building own method calls, when necessary.

Starting with some known generated stub code to see which parts can possibly be reused with some modifications is usually the easiest solution. This is shown in the last step of this example, in order to make a version of the asynchronous client that works without the stub generator.

The first step is to take a peek at the stub-generated code for the &lt;code&gt;setvalue1&lt;/code&gt; call (when used asynchronously): [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-async/value-client-stub.h glib-dbus-async/value-client-stub.h]

&lt;source lang=&quot;c&quot;&gt;
typedef void (*org_maemo_Value_setvalue1_reply) (DBusGProxy *proxy,
                                                 GError *error,
                                                 gpointer userdata);
static void
org_maemo_Value_setvalue1_async_callback (DBusGProxy *proxy,
                                          DBusGProxyCall *call,
                                          void *user_data)
{
  DBusGAsyncData *data = user_data;
  GError *error = NULL;
  dbus_g_proxy_end_call (proxy, call, &amp;error, G_TYPE_INVALID);
  (*(org_maemo_Value_setvalue1_reply)data-&gt;cb) (proxy, error,
                                                data-&gt;userdata);
  return;
}
static
#ifdef G_HAVE_INLINE
inline
#endif
DBusGProxyCall*
org_maemo_Value_setvalue1_async (DBusGProxy *proxy,
                                 const gint IN_new_value,
                             org_maemo_Value_setvalue1_reply callback,
                                 gpointer userdata)
{
  DBusGAsyncData *stuff;
  stuff = g_new (DBusGAsyncData, 1);
  stuff-&gt;cb = G_CALLBACK (callback);
  stuff-&gt;userdata = userdata;
  return dbus_g_proxy_begin_call (
    proxy, &quot;setvalue1&quot;, org_maemo_Value_setvalue1_async_callback,
    stuff, g_free, G_TYPE_INT, IN_new_value, G_TYPE_INVALID);
}
&lt;/source&gt;

What is notable in the code snippet above is that the &lt;code&gt;_async&lt;/code&gt; method creates a temporary small structure that holds the pointer to the callback function and a copy of the userdata pointer. This small structure is then passed to &lt;code&gt;dbus_g_proxy_begin_call&lt;/code&gt;, along with the address of the generated callback wrapper function (&lt;code&gt;org_maemo_Value_setvalue1_async_callback&lt;/code&gt;). The GLib async launcher also takes a function pointer to a function to be used when the supplied &quot;user-data&quot; (in this case, the small structure) needs to be disposed of after the call. Because it uses &lt;code&gt;g_new&lt;/code&gt; to allocate the small structure, it passes &lt;code&gt;g_free&lt;/code&gt; as the freeing function. Next comes the argument specification for the method call, which obeys the same rules as the LibOSSO ones.

On RPC completion, the generated callback is invoked and it gets the real callback function pointer and the userdata as its &quot;user-data&quot; parameter. Firs it collects the exit code for the call with &lt;code&gt;dbus_g_proxy_end_call&lt;/code&gt;, unpacks the data and invokes the real callback. After returning, the GLib wrappers (which called the generated callback) calls g_free to release the small structure, and the whole RPC launch ends.

The next step is to re-implement pretty much the same logic, but also dispose of the small structure because the callback is implemented directly, not as a wrapper-callback (it also omits the need for one memory allocation and one free).

The first step for that is to implement the RPC asynchronous launch code: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-async/client-glib.c glib-dbus-async/client-glib.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * This function will be called repeatedly from within the mainloop
 * timer launch code.
 *
 * It will launch asynchronous RPC method to set value1 with ever
 * increasing argument.
 */
static gboolean timerCallback(DBusGProxy* remoteobj) {

  /* Local value that we'll start updating to the remote object. */
  static gint localValue1 = -80;

  /* Start the first RPC.
     The call using GLib/D-Bus is only slightly more complex than the
     stubs. The overall operation is the same. */
  g_print(PROGNAME &quot;:timerCallback launching setvalue1\n&quot;);
  dbus_g_proxy_begin_call(remoteobj,
                          /* Method name. */
                          &quot;setvalue1&quot;,
                          /* Callback to call on &quot;completion&quot;. */
                          setValue1Completed,
                          /* User-data to pass to callback. */
                          NULL,
                          /* Function to call to free userData after
                             callback returns. */
                          NULL,
                          /* First argument GType. */
                          G_TYPE_INT,
                          /* First argument value (passed by value) */
                          localValue1,
                          /* Terminate argument list. */
                          G_TYPE_INVALID);
  g_print(PROGNAME &quot;:timerCallback setvalue1 launched\n&quot;);

  /* Step the local value forward. */
  localValue1 += 10;

  /* Repeat timer later. */
  return TRUE;
}
&lt;/source&gt;

And the callback that is invoked on method call completion timeouts or errors: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-async/client-glib.c glib-dbus-async/client-glib.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * This function is called when the async setvalue1 either
 * completes, timeouts or fails (same as before). The main difference in
 * using GLib/D-Bus wrappers is that we need to &quot;collect&quot; the return
 * value (or error). This is done with the _end_call function.
 *
 * Note that all callbacks that are to be registered for RPC async
 * notifications using dbus_g_proxy_begin_call must follow the
 * following prototype: DBusGProxyCallNotify .
 */
static void setValue1Completed(DBusGProxy* proxy,
                               DBusGProxyCall* call,
                               gpointer userData) {

  /* This will hold the GError object (if any). */
  GError* error = NULL;

  g_print(PROGNAME &quot;:setValue1Completed\n&quot;);

  /* We next need to collect the results from the RPC call.
     The function returns FALSE on errors (which we check), although
     we could also check whether error-ptr is still NULL. */
  if (!dbus_g_proxy_end_call(proxy,
                             /* The call that we're collecting. */
                             call,
                             /* Where to store the error (if any). */
                             &amp;error,
                             /* Next we list the GType codes for all
                                the arguments we expect back. In our
                                case there are none, so set to
                                invalid. */
                             G_TYPE_INVALID)) {
    /* Some error occurred while collecting the result. */
    g_printerr(PROGNAME &quot; ERROR: %s\n&quot;, error-&gt;message);
    g_error_free(error);
  } else {
    g_print(PROGNAME &quot; SUCCESS\n&quot;);
  }
}
&lt;/source&gt;

The generated stub code is no longer needed, so the dependency rules for the stubless GLib version are different: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-async/Makefile glib-dbus-async/Makefile]

&lt;source lang=&quot;make&quot;&gt;
client-glib: client-glib.o
        $(CC) $^ -o $@ $(LDFLAGS)
# Note that the GLib client doesn't need the stub code.
client-glib.o: client-glib.c common-defs.h
        $(CC) $(CFLAGS) -DPROGNAME=\&quot;$(basename $@)\&quot; -c $&lt; -o $@
&lt;/source&gt;

Since the example program logic has not changed from the previous version, testing &lt;code&gt;client-glib&lt;/code&gt; is not presented here (it can of course be tested if so desired, because the source code contains the fully working program). This version of the client also launches the method calls without waiting for previous method calls to complete.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/DBus/D-Bus Server Design Issues</title>
    <id>2335</id>
    <revision>
      <id>38334</id>
      <timestamp>2010-09-06T12:22:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add example links</comment>
      <text xml:space="preserve">== Definition of Server ==

When talking about software, a server is commonly understood to mean some kind of software component that provides a service to its clients. In Linux, servers are usually implemented as daemons, which is a technical term for a process that has detached from the terminal session, and performed other preparatory actions, so that it stays running on the background until it terminates (or is terminated).

Sometimes people might refer to servers as engines, but it is a more generic term, and normally is not related directly to the way a service is implemented (as a separate process, or as part of some library, directly used from within a client process). Broadly defined, an engine is the part of application that implements the functionality, but not the interface, of an application. In Model-View-Controller, the engine is the Model.

The servers in these examples have so far been running without daemonization, in order to display debugging messages on the terminal/screen more easily. Often a server can be started with a &lt;code&gt;--stay-on-foreground&lt;/code&gt; option (or &lt;code&gt;-f&lt;/code&gt; or something similar), which means that they do not daemonize. This is a useful feature to have, because it allows the use of simpler outputting primitives, when testing the software.

By default, when a server daemonizes, its output and input files are closed, so reading user input (from the terminal session, not GUI) fails, as does each output write (including &lt;code&gt;printf&lt;/code&gt; and &lt;code&gt;g_print&lt;/code&gt;).

== Daemonization ==

The objective of turning a process into a daemon is to detach it from its parent process and create a separate session for it. This is necessary, so that parent termination does not automatically cause the termination of the server as well. There is a library call that performs most of the daemonization work, called daemon, but seeing what has to be done (and usually is done) when implementing the functionality can also be helpful:

* Fork the process, so that the original process can be terminated and this causes the child process to move under the system init process.
* Create a new session for the child process with setsid.
* Possibly switch working directory to root (&lt;code&gt;/&lt;/code&gt;), so that the daemon does not keep file systems from being unmounted.
* Set up a restricted umask, so that directories and files that are created by the daemon (or its child processes) do not create publicly accessible objects in the filesystem. This does not actually apply in Maemo compatible devices, because the devices only have one user.
* Close all standard I/O file descriptors (and preferably also files), so that if the terminal device closes (user logs out), it does not cause &lt;code&gt;SIGPIPE&lt;/code&gt; signals to the daemon the next time it accesses the file descriptors (by mistake or intentionally because of &lt;code&gt;g_print&lt;/code&gt;/&lt;code&gt;printf&lt;/code&gt;). Reopening the file descriptors is also possible, so that they are connected to a device, which just ignore all operations (like /dev/null that is used with daemon).

The daemon function allows to select whether or not a change of the directory is wanted and to close the open file descriptors. This utilizes in the servers of this example in the following way: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/server.c glib-dbus-sync/server.c]

&lt;source lang=&quot;c&quot;&gt;
#ifndef NO_DAEMON

  /* This attempts to daemonize this process. It switches this
     process working directory to / (chdir) and then reopen stdin,
     stdout and stderr to /dev/null. Which means that all printouts
     that occur after this are lost. Obviously the
     daemonization also detaches the process from the controlling
     terminal as well. */
  if (daemon(0, 0) != 0) {
    g_error(PROGNAME &quot;: Failed to daemonize.\n&quot;);
  }
#else
  g_print(PROGNAME
          &quot;: Not daemonizing (built with NO_DAEMON-build define)\n&quot;);
#endif
&lt;/source&gt;

This definition is available to the user inside the Makefile: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/Makefile glib-dbus-sync/Makefile]

&lt;source lang=&quot;c&quot;&gt;
# -DNO_DAEMON : do not daemonize the server (on a separate line so can
#               be disabled just by commenting the line)
ADD_CFLAGS += -DNO_DAEMON
# Combine flags
CFLAGS  := $(PKG_CFLAGS) $(ADD_CFLAGS) $(CFLAGS)
&lt;/source&gt;

Combining the options so that &lt;code&gt;CFLAGS&lt;/code&gt; is appended to the Makefile provided defaults allows the user to override the define as well:

&lt;pre&gt;
[sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; CFLAGS='-UNO_DAEMON' make server
dbus-binding-tool --prefix=value_object --mode=glib-server \
  value-dbus-interface.xml &gt; value-server-stub.h
cc -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include
   -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
   -g -Wall -DG_DISABLE_DEPRECATED -DNO_DAEMON -UNO_DAEMON
   -DPROGNAME=\&quot;server\&quot; -c server.c -o server.o
cc server.o -o server -ldbus-glib-1 -ldbus-1 -lgobject-2.0 -lglib-2.0
&lt;/pre&gt;

Because all &lt;code&gt;-D&lt;/code&gt; and &lt;code&gt;-U&lt;/code&gt; options are processed from left to right by gcc, this allows the &lt;code&gt;-UNO_DAEMON&lt;/code&gt; to undefine the symbol that is preset in the Makefile. If the user does not know this technique, the Makefile can also be edited directly. Grouping all additional flags that the user might be interested in to the top of the Makefile makes this simpler (for the user).

Running the server with daemonization support is performed as before, but this time the &amp;amp; (do not wait for child exit) token for the shell is left out:

&lt;pre&gt;
[sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; run-standalone.sh ./server
server:main Connecting to the Session D-Bus.
server:main Registering the well-known name (org.maemo.Platdev_ex)
server:main RequestName returned 1.
server:main Creating one Value object.
server:main Registering it on the D-Bus.
server:main Ready to serve requests (daemonizing).
[sbox-DIABLO_X86: ~/glib-dbus-sync] &gt;
&lt;/pre&gt;

Because server messages are not visible any more, some other mechanism is needed to determine whether or not the server is still running:

&lt;pre&gt;
[sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; ps aux | grep &quot;\./server&quot; | grep -v pts
user 8982  0.0  0.1 2780 664 ? Ss 00:14 0:00 ./server
&lt;/pre&gt;

The slightly convoluted way of using &lt;code&gt;grep&lt;/code&gt; was necessary to list only those lines of the &lt;code&gt;ps&lt;/code&gt; report, which have ./server in them, and to remove the lines which do not have &lt;code&gt;pts&lt;/code&gt; in them (so that seeing the processes which have no controlling terminals is possible).

The client could have been used to test whether the server responds, but the above technique is slightly more general. If the &lt;code&gt;pstree&lt;/code&gt; tool is available, it could be run it with &lt;code&gt;-pu&lt;/code&gt; options to see how the processes relate to each other and that the daemonized server is running directly as a child of &lt;code&gt;init&lt;/code&gt; (which was the objective of the fork).

== Event Loops and Power Consumption ==

Most modern CPUs (even for desktops and servers) allow multiple levels of power savings to be selected. Each of the levels is progressively more power-conservative, but there is always a price involved. The deeper the power saving level required, the more time it normally takes to achieve it, and the more time it also takes to come out of it. In some CPUs, it also requires special sequences of instructions to run, hence taking extra power itself.

All this means that changing the power state of the CPU should be avoided whenever possible. Obviously, this is in contrast to the requirement to conserve battery life, so in effect, what is needed is to require the attention of the CPU as rarely as possible.

One way at looking the problem field is contrasting event-based and polling-based programming. Code that continuously checks for some status and only occasionally performs useful work is clearly keeping the CPU from powering down properly. This model should be avoided at all cost, or at least its use should be restricted to a bare minimum, if no other solution is possible.

In contrast, event-based programming is usually based on the execution of callback functions when something happens, without requiring a separate polling loop. This then leaves the question of how to trigger the callbacks, so that they are issued when something happens. Using timer callbacks can seem like a simple solution, so that it continuously (once per second or more often) checks for status, and then possibly reacts to the change in status. This model is undesirable as well, because the CPU is not able to enter into deep sleep modes, but fluctuate between full power and high-power states.

Most operating system kernels provide a mechanism (or multiple mechanisms) by which a process can be woken up when data is available and otherwise kept off the running queue of the scheduler. The most common mechanism in Linux is based around the &lt;code&gt;select&lt;/code&gt;/&lt;code&gt;poll&lt;/code&gt; system calls, which are useful when waiting for a change in status for a set of file descriptors. Because most of the interesting things in Linux can be represented as a &quot;file&quot; (an object supporting read and write system calls), using select and poll is quite common. However, when writing software that uses GLib (implicitly like in GTK+ or explicitly like in the non-GUI examples in this document), the &lt;code&gt;GMainLoop&lt;/code&gt; structure is used instead. Internally, it uses the event mechanism available on the platform (&lt;code&gt;select&lt;/code&gt;/&lt;code&gt;poll&lt;/code&gt;/others), but the program needs to register callbacks, start the main loop execution and then just execute the callbacks as they come.

If there are some file descriptors (network sockets, open files, etc), they can be integrated into the &lt;code&gt;GMainLoop&lt;/code&gt; using &lt;code&gt;GIOChannel&lt;/code&gt;s (see the GLib API reference on this).

This still leaves the question of using timers and callbacks that are triggered by timers. They should be avoided when:

* The timer is used at high frequencies (greater than 1 Hz) for long periods of time (greater than 5 seconds).
* There is a mechanism that triggers a callback when something happens, instead of forcing a manual status poll or re-executing a timer callback that does the checking.

As an example, the LibOSSO program (FlashLight) has to use timers in order to keep the backlight active. However, the timer is very slow (only once every 45 seconds), so this is not a big issue. Also, in FlashLight's defense, the backlight is on all the time, so having a slow timer does not hurt battery life very much anyway.

Another example could be a long-lasting download operation, which proceeds slowly but steadily. It is advisable to consider whether updating a progress bar after each small bit of data is received makes sense (normally it does not). Instead, it is better to keep track of when was the last time when the progress bar was updated, and if enough time has passed since the last time, update the GUI. In some cases, this allows the CPU to be left in a somewhat lower power state than full-power, and allows it to fall back to sleep more quickly.

Having multiple separate programs running, each having their own timers, presents another interesting problem. Because the timer callback is not precise, at some time the system wakes at a very high frequency, handling each timer separately (the frequency and the number of timers executing in the system is something that cannot be controlled from a single program, but instead is a system-wide issue).

If planning a GUI program, it is fairly easy to avoid contributing to this problem, because it is possible to get a callback from LibOSSO, which tells when the program is &quot;on top&quot; and when it is not visible. When not visible, the GUI does not need to be updated, especially with timer-based progress indicators and such.

Because servers do not have a GUI (and their visibility is not controlled by the window manager), such mechanism does not exist. One possible solution in this case is avoiding the use of timers (or any resources for that matter) when the server does not have any active clients. Resources should only be used when there is a client connection or when there is a need to actually do something. As soon as it becomes likely that the server is not used again, the resources should be released (timer callbacks removed, etc.).

If possible, try and utilize the D-Bus signals available on the system bus (or even the hardware state structure via LibOSSO) to throttle down activity based on the conditions in the environment. Even if making a non-GUI server, the system shutdown signals should be listened to because they tell the process to shutdown gracefully.

All in all, designing for a dynamic low-powered environment is not always simple. Four simple but important rules hold true for most cases:

* Avoid doing extra work when possible.
* Do it as fast as possible (while trying to minimize resource usage).
* Do it as rarely as possible.
* Keep only those resources allocated that you need to get the work done.

For GUI programs, the &quot;graphical side&quot; of things has to be taken into account as well. Making a GUI that is very conservative in its power usage is, most of the time, very simple, but it provides little excitement to the user and can even look quite ugly. The priorities for the programmer can lie in a different direction.

== Supporting Parallel Requests ==

The value object server with delays has one major deficiency: it can only handle one request at a time, while blocking the progress of all the other requests. This is a problem if multiple clients use the same server at the same time.

Normally support for parallel requests is added by using some kind of multiplexing mechanism right on top of the message delivery mechanism (in this case, libdbus).

The possible solutions can be grouped around three models:

* Launching a separate thread to handle each request. This can seem like an easy way out of the problem, but coordinating access to shared resources (object states in this case) between multiple threads is prone to cause synchronization problems, and makes debugging much harder. Also, performance of such an approach depends on efficient synchronization primitives in the platform (which might not always be available), as well as lightweight thread creation and tear-down capabilities of the platform.
* Using an event-driven model that supports multiple event sources simultaneously and &quot;wakes up&quot; only when there is an event on any of the event sources. The select and poll (and epoll on Linux) are very often used in these cases. Using them normally requires an application design that is driven by the requirements of the system calls (which means that retrofitting them into existing &quot;linear&quot; designs is difficult). However, the event-based approach normally outperforms the thread approach, because there is no need for synchronization (when implemented correctly), and there is only one context to switch from the kernel and back (there are extra contexts with threads). GLib provides a high-level abstraction on top of the low-level event programming model, in the form of &lt;code&gt;GMainLoop&lt;/code&gt;. &lt;code&gt;GIOChannel&lt;/code&gt; objects are used to represent each event source and register callbacks that are triggered on the events.
* Using &lt;code&gt;fork&lt;/code&gt; to create a copy of the server process, so that the new copy handles one request and then terminates (or returns to the pool of &quot;servers&quot;). The problem here is the process creation overhead, and the lack of implicit sharing of resources between the processes. A separate mechanism for synchronization and data sharing between the processes (using shared memory and proper synchronization primitives) have to be arranged. In some cases, resource sharing is not actually required, or it happens at some lower level (accessing files), so this model does not need to be automatically ruled out, even if it seems quite heavy at first. Many static content web servers use this model because of its simplicity (and they do not need to share data between themselves).

However, the problem for the slow server lies elsewhere: the GLib/D-Bus wrappers do not support parallel requests directly. Even using the fork model is problematic because there are multiple processes accessing the same D-Bus connection. Furthermore, this problem is not only specific to the slow server. The same issues are encountered when using other high-level frameworks (such as GTK+) whenever they cannot complete something immediately, because not all data is present in the application. In the latter case, using the &lt;code&gt;GMainLoop&lt;/code&gt;/&lt;code&gt;GIOChannel&lt;/code&gt; approach in parallel with GTK+ (because it uses &lt;code&gt;GMainLoop&lt;/code&gt; internally anyway) is normally sufficient, but with GLib/D-Bus there is no mechanism which could be used to integrate own multiplexing code (no suitable API exists).

In this case, the solution is picking one of the above-mentioned models and using the libdbus functions directly. In effect, this requires a complete rewrite of the server, disregarding the &lt;code&gt;GType&lt;/code&gt; implementation and possibly creating a light-weight wrapper for integrating libdbus functions into the GLib &lt;code&gt;GMainLoop&lt;/code&gt; mechanism (but dropping support for &lt;code&gt;GType&lt;/code&gt;).

Dropping the support for &lt;code&gt;GType&lt;/code&gt; and stub code means that the introspection support needs to be implemented manually and that it is dependent on the possible API changes in libdbus in the future.

Another possible solution is to &quot;fake&quot; the completion of client method calls, so that the RPC method completes immediately but the server continues processing the request (using &lt;code&gt;GIOChannel&lt;/code&gt; integration), until it actually completes. The problem in this solution is that it is very difficult to know which client actually issued the original method call and how to communicate the final result (or errors) of the method call to the client once it completes. One possible model here is using signals to broadcast the end result of the method call, so that the client gets the result at some point (assuming the client is still attached to the message bus). Needless to say, this is quite inelegant and difficult to implement correctly, especially because sending signals causes unnecessary load by waking up all the clients on the bus (even if they are not interested in that particular signal).

In short, there is no simple solution that works properly when GLib/D-Bus wrappers are used.

== Debugging ==

The simplest way to debug servers is the intelligent use of print-out of events in the code sections that are relevant. Tracing everything that goes on rarely makes sense, but having a reliable and working infrastructure (in code level) helps. One such mechanism is utilizing various built-in tricks that gcc and cpp provide. In the server example, a macro called &lt;code&gt;dbg&lt;/code&gt; is used, which expands to &lt;code&gt;g_print&lt;/code&gt; when the server is built as a non-daemonizing version. If the server becomes a daemon, the macro expands to &quot;nothing&quot;, meaning that no code is generated to format the parameters or to even access them. Extending this idea to support multiple levels of debugging is advisable, as is using different &quot;subsystem&quot; identifiers, so that a single subsystem can be switched on or off, depending on the object of the debugging procedure.

The &lt;code&gt;dbg&lt;/code&gt; macro utilizes the &lt;code&gt;__func__&lt;/code&gt; symbol, which expands to the function name where the macro is expanded. This is quite useful because the function name does not need to be explicitly added: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/server.c glib-dbus-sync/server.c]

&lt;source lang=&quot;c&quot;&gt;
/* A small macro that wraps g_print and expands to empty when
   a server daemonizes. We use this to add debugging info on
   the server side, but if the server is daemonized, it does not
   make sense to even compile the code in.

   The macro is quite &quot;hairy&quot;, but very convenient. */
#ifdef NO_DAEMON
#define dbg(fmtstr, args...) \
  (g_print(PROGNAME &quot;:%s: &quot; fmtstr &quot;\n&quot;, __func__, ##args))
#else
#define dbg(dummy...)
#endif
&lt;/source&gt;

Using the macro is quite simple, as it looks and acts like a regular printf-formatting function (&lt;code&gt;g_print&lt;/code&gt; included): [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/server.c glib-dbus-sync/server.c]

&lt;source lang=&quot;c&quot;&gt;
  dbg(&quot;Called (internal value2 is %.3f)&quot;, obj-&gt;value2);
&lt;/source&gt;

The only small difference here is that adding the trailing newline (&lt;code&gt;\n&lt;/code&gt;) explicitly into each call is not necessary because it is added automatically.

Assuming &lt;code&gt;NO_DAEMON&lt;/code&gt; is defined, the macro expands to the following output when the server is run:

 server:value_object_getvalue2: Called (internal value2 is 42.000)

For larger projects, it is advisable to combine &lt;code&gt;__file__&lt;/code&gt;, so that tracing multifile programs will become easier.

Coupled with proper test cases (which are using the client code and possibly also dbus-send in D-Bus related programs), this is a very powerful technique, and often much easier than single stepping through the code with a debugger (gdb), or setting evaluation breakpoints. Using Valgrind to help detecting memory leaks (and some other errors) can also be of interest. More information on these topics and examples is available in the [[Documentation/Maemo 5 Developer Guide/Kernel and Debugging Guide/Maemo Debugging Guide|Maemo Debugging Guide]].

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/DBus/DBus Basics</title>
    <id>2331</id>
    <revision>
      <id>40325</id>
      <timestamp>2010-11-26T14:09:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Programming Directly with libdbus */ reformat image</comment>
      <text xml:space="preserve">For interprocess communications (IPC), [[Maemo]] relies heavily on [http://www.freedesktop.org/wiki/Software/dbus D-Bus]. D-Bus makes it possible for programs to export their programming interfaces, so that other processes can call them in a consistent manner, without having to define a custom IPC protocol. Using these exported APIs is also language agnostic, which means that as long as a programming language supports D-Bus, it can also access the interfaces.

A Maemo-specific library called [[../../Application Development/LibOSSO library|libOSSO]] provides helpful wrappers for D-Bus communication. It also contains the required functionality for every Maemo application, and applications must be initialized using the library. With the library, applications can connect to listen to system hardware state messages, for example the &quot;battery low&quot; message. The library is also used for application state-saving and the auto-save functionality. Section [[../../Application Development/LibOSSO library|LibOSSO Library]] of the chapter [[../../Application Development|Application Development]] of [[Documentation/Maemo 5 Developer Guide|Maemo Reference Manual]] provides a good introduction to libOSSO.

== Introduction ==

D-Bus (the D originally stood for &quot;Desktop&quot;) is an interprocess communication (IPC) mechanism designed to be used as a unified middleware layer in free desktop environments. Example projects where D-Bus is used are [http://www.gnome.org/ GNOME] and [[Hildon]]. Compared to other middleware layers for IPC, D-Bus lacks many of the more refined (and complicated) features, which makes it faster and simpler.

D-Bus does not directly compete with low-level IPC mechanisms, such as sockets, shared memory or message queues. Each of these mechanisms have their uses, which normally do not overlap the ones in D-Bus. Instead, D-Bus aims to provide higher level functionality, for example:

* Structured name spaces
* Architecture-independent data formatting
* Support for the most common data elements in messages
* A generic remote call interface with support for exceptions (errors)
* A generic signaling interface to support &quot;broadcast&quot; type communication
* Clear separation of per-user and system-wide scopes, which is important when dealing with multi-user systems
* No bindings to any specific programming languages (while providing a design that readily maps to most higher level languages using language-specific bindings)

The design of D-Bus benefits from the long experience of using other middleware IPC solutions in the desktop arena, and this has allowed the design to be optimized. Furthermore, it does not yet suffer from &quot;creeping featurism&quot;, for example having extra features just to satisfy niche use cases.

The main problem area that D-Bus aims to solve is facilitating easy IPC between related (often graphical) desktop software applications.

D-Bus has a very important role in Maemo, as it is the IPC mechanism to use when using the services provided in the platform (and devices). Providing services over D-Bus is also the easiest way to assure component re-use from other applications.

== D-Bus Architecture and Terminology ==

In D-Bus, the ''bus'' is a central concept. Applications can make the method calls, send signals and listen to signals through the bus. Two pre-defined buses exist: the ''session bus'' and the ''system bus''.

* The session bus is intended for communication between applications that are connected to the same desktop session, and normally started and run by one user (using the same user identifier, or UID).
* The system bus is intended for communication when applications (or services), running with separate sessions, wish to communicate with each other. The most common use for this bus is sending system-wide notifications when system-wide events occur. The adding of a new storage device, network connectivity change events and shutdown-related events are all examples of system-wide events for which the system bus must be used.

In addition to the single system bus, a separate session bus for each desktop session can exist. Because all user applications in a Maemo-compatible device run with the same user ID, the device only has one session bus as well.

A bus exists in the system in the form of a ''bus daemon'', a process that specializes in passing messages from one process to another. The daemon also forwards notifications to all applications on the bus. At the lowest level, D-Bus only supports point-to-point communication, normally using the local domain sockets (&lt;code&gt;AF_UNIX&lt;/code&gt;) between the application and the bus daemon. The point-to-point aspect of D-Bus is, however, abstracted by the bus daemon, which implements the addressing and message passing functionality. This means that applications do not need to care about which specific process receives each method call or notification.

According to the above-mentioned details, sending a message using D-Bus always involves the following steps (under normal conditions):

* Creating and sending the message to the bus daemon. This causes a minimum of two context switches.
* The bus daemon processing the message and forwarding it to the target process. Again, this causes a minimum of two context switches.
* The target application receiving the message. Depending on the message type, the target application needs to acknowledge the message, respond to the message with a reply or ignore it. The last case is only possible with notifications (''signals'' in D-Bus terminology). An acknowledgment or reply causes further context switches.

Coupled together, the above rules mean that if transferring large amounts of data between processes is planned, using D-Bus is not the most efficient way to do it. Instead, using a shared memory arrangement is recommended, although such arrangements are often quite complex to implement correctly.

== Addressing and Names in D-Bus ==

The IPC mechanism needs to support some form of addressing so that the messages reach the intended recipient. The addressing scheme in D-Bus has been designed to be flexible yet efficient. Each bus has its private name space, which is not directly related to any other bus.

A destination address is needed for sending messages. The address is formed in a hierarchical manner from the following elements:

* The bus on which the message is to be sent. A bus is normally opened only once per application lifetime. The bus connection is then used for sending and receiving messages for as long as necessary. This way, the target bus forms a transparent part of the message address (it is not specified separately for each message sent).
* The ''well-known name'' for the service provided by the recipient. A close analogy to this is the DNS system in Internet, where people normally use names to connect to services, instead of specific IP addresses providing the services. The idea of the D-Bus well-known names is very similar, because the same service can be implemented in different ways in different applications. It should be noted, however, that currently most of the existing D-Bus services are &quot;unique&quot; in that each of them provides their own well-known name, and replacing one implementation with another is not common.
** A well-known name consists of characters A-Z (lower or uppercase), dot characters, dashes and underscores. A well-known name must contain at least two dot-separated elements. Unlike DNS, the dots do not carry any additional information about management (zones), meaning that the well-known names are NOT hierarchical.
** In order to reduce clashes in the D-Bus name space, the recommendation is that the name is formed by reversing the order of labels of a DNS domain that you own. A similar approach is used in Java for package names.
** Examples: &lt;code&gt;org.maemo.Alert&lt;/code&gt; and &lt;code&gt;org.freedesktop.Notifications&lt;/code&gt;.
* Each service can contain multiple different objects, each of which provides a different (or the same) service. In order to separate one object from another, ''object paths'' are used. A personal information manager (PIM) information store, for example, might include separate objects to manage the contact information and synchronization.
** Object paths look like file paths (elements separated with the '&lt;code&gt;/&lt;/code&gt;' character).
** In D-Bus, &quot;lazy binding&quot; can also be made, so that a specific function in the recipient is called on all remote method calls, irrespective of the object paths in the calls. This allows the on-demand targeting of method calls, so that the user can remove a specific object in an address book service (using an object path similar to &lt;code&gt;/org/maemo/AddressBook/Contacts/ShortName&lt;/code&gt;). Due to the limitations on characters that can be put into the object path, this is not recommended. A better way is to supply the ShortName as a method call argument instead (as a UTF-8 formatted string).
** The object path is usually formed using the same elements as in the well-known name, but replacing the dots with slashes, and appending a specific object name to the end. For example: &lt;code&gt;/org/maemo/Alert/Alerter&lt;/code&gt;. This is the common convention, but it also solves a specific problem if a process could re-use an existing D-Bus connection without explicitly knowing about it (using a library that encapsulates D-Bus functionality). In such cases, using short names increases the risk of name-space collisions within that process.
** Object paths do not have inherent hierarchy, even if the path separator is used. The only place where some hierarchy can be seen because of the path components is the introspection interface (which is out of the scope of this material).
* In order to support object-oriented mapping, where objects are the units providing the service, D-Bus also implements a naming unit called ''interface''. The interface specifies the legal (defined and implemented) method calls, their parameters (called ''arguments'' in D-Bus) and possible signals. Thus, re-using the same interface across multiple separate objects implementing the same service is possible. More commonly, a single object can implement multiple different services. An example of the latter is the implementation of the &lt;code&gt;org.freedesktop.DBus.Introspectable&lt;/code&gt; interface, which defines the method necessary to support D-Bus introspection. When using the GLib/D-Bus wrappers to generate parts of the D-Bus code, the objects support automatically also the introspection interface.
** Interface names use the same naming rules as the well-known names. This can seem somewhat confusing in the beginning, because the well-known names serve a completely different purpose.
** For simple services, the well-known name is often repeated in the interface name. This is the most common scenario with the existing services.
* The last part of the message address is the member name. When dealing with remote procedure calls, the member name can sometimes be called ''method name'', and when dealing with signals, it can be called ''signal name''. The member name selects the procedure to call or the signal to emit. The name needs to be unique only within the interface that an object implements.
** Member names can have letters, digits and underscores in them. For example, RetrieveQuote.
* For more information, see the [http://www.freedesktop.org/wiki/IntroductionToDBus Introduction to D-Bus] page.

Examples of all four components that are used for sending a simple message (a method call) in the [[Documentation/Maemo 5 Final SDK|SDK]] can be found below:

&lt;source lang=&quot;c&quot;&gt;
#define SYSNOTE_NAME  &quot;org.freedesktop.Notifications&quot;
#define SYSNOTE_OPATH &quot;/org/freedesktop/Notifications&quot;
#define SYSNOTE_IFACE &quot;org.freedesktop.Notifications&quot;
#define SYSNOTE_NOTE  &quot;SystemNoteDialog&quot;
&lt;/source&gt;

When switching to the LibOSSO RPC functions (which encapsulate a lot of the D-Bus machinery), operations are still performed with all of the D-Bus naming components.

== Role of D-Bus in Maemo ==

D-Bus has been selected as de facto IPC mechanism in Maemo, to carry messages between the various software components. The main reason for this is that a lot of software developed for the GNOME environment is already exposing its functionality through D-Bus. Using a generic interface, which is not bound to any specific service, makes it easier to deal with different software license requirements.

Unfortunately, the SDK is not delivered with many of the software products that are exposed via D-Bus. This document uses one component of the application framework for demonstration purposes (it also works in the SDK).

An item of particular interest is asking the notification framework component to display a Note dialog. The dialog is modal, which means that the user cannot proceed in their graphical environment unless they first acknowledge the dialog. Normally this kind of behavior in the GUI should be avoided, but a modal dialog can also be useful in certain circumstances.

The SystemNoteDialog member is an extension to the draft org.freedesktop.Notifications specification, and as such, it is not documented in the draft document.

The notification server is listening for method calls on the &lt;code&gt;.freedesktop.Notifications&lt;/code&gt; well-known name. The object that implements the necessary interface is located at the &lt;code&gt;/org/freedesktop/Notifications&lt;/code&gt; object path. The method to display the note dialog is called &lt;code&gt;SystemNoteDialog&lt;/code&gt; and it is defined in the &lt;code&gt;org.freedesktop.Notifications&lt;/code&gt; D-Bus interface.

D-Bus comes with a handy tool to experiment with method calls and signals: &lt;code&gt;dbus-send&lt;/code&gt;. The following snippet attempts to use it to display the dialog:

&lt;pre&gt;
 [sbox-DIABLO_X86: ~] &gt; run-standalone.sh dbus-send --print-reply  \
--type=method_call --dest=org.freedesktop.Notifications  \
/org/freedesktop/Notifications org.freedesktop.Notifications
 Error org.freedesktop.DBus.Error.UnknownMethod: Method &quot;Notifications&quot; with
 signature &quot;&quot; on interface &quot;org.freedesktop&quot; does not exist
&lt;/pre&gt;

Parameters for dbus-send:

* &lt;code&gt;--session&lt;/code&gt;: (implicit because it is the default) which bus to use for sending (the other option being system)
* &lt;code&gt;--print-reply&lt;/code&gt;: ask the tool to wait for a reply to the method call, and print out the results (if any)
* &lt;code&gt;--type=method_call&lt;/code&gt;: instead of sending a signal (which is the default), make a method call
* &lt;code&gt;--dest=org.freedesktop.Notifications&lt;/code&gt;: the well-known name for the target service
* &lt;code&gt;/org/freedesktop/Notifications&lt;/code&gt;: object path within the target process that implements the interface
* &lt;code&gt;org.freedesktop.Notifications&lt;/code&gt;: (incorrectly specified) interface name defining the method

When using &lt;code&gt;dbus-send&lt;/code&gt;, specify the interface and member names carefully. The tool expects both of them to be combined into one parameter (without spaces in between). Thus, modify the command line before a new try in the following way:

&lt;pre&gt;
 [sbox-DIABLO_X86: ~] &gt; run-standalone.sh dbus-send --print-reply  \
  --type=method_call --dest=org.freedesktop.Notifications  \
  /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteDialog
 Error org.freedesktop.DBus.Error.UnknownMethod: Method &quot;SystemNoteDialog&quot; with
  signature &quot;&quot; on interface &quot;org.freedesktop.Notifications&quot; does not exist
&lt;/pre&gt;

Most RPC methods expect a series of parameters (or arguments, as D-Bus calls them).

&lt;code&gt;SystemNoteDialog&lt;/code&gt; expects these three parameters (in the following order):

* &lt;code&gt;string&lt;/code&gt;: The message to display.
* &lt;code&gt;uint32&lt;/code&gt;: An unsigned integer giving the style of the dialog. Styles 0-4 mean different icons, and style 5 is a special animated &quot;progress indicator&quot; dialog.
* &lt;code&gt;string&lt;/code&gt;: Message to use for the &quot;OK&quot; button that the user needs to press to dismiss the dialog. Using an empty string causes the default text to be used (which is &quot;OK&quot;).

Arguments are specified by giving the argument type and its contents separated with a colon as follows:

&lt;pre&gt;
[sbox-DIABLO_X86: ~] &gt; run-standalone.sh dbus-send --print-reply  \
 --type=method_call --dest=org.freedesktop.Notifications  \
 /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteDialog  \
 string:'Hello, world!' uint32:0 string:'NAO OK!'
method return sender=:1.1 -&gt; dest=:1.15
   uint32 4
&lt;/pre&gt;

Because &lt;code&gt;dbus-send&lt;/code&gt; was asked to print replies, the reply comes out as a single unsigned integer, with the value 4. This is the unique number for this notification and can be used with the &lt;code&gt;CloseNotification&lt;/code&gt; method of the &lt;code&gt;Notifications&lt;/code&gt; interface to pre-emptively close the dialog. It is useful if the software notices that some warning condition has ended and there is no need to bother the user with the warning anymore.

Assuming that the above command is run while the application framework is already running, the end result looks like this:

[[Image:dbus-send-SystemNoteDialog.png|frame|center|alt=Screenshot of Note dialog showing text ‘Hello, world!’|System note dialog]]

If the command is repeated multiple times, the notification service is capable of displaying only one dialog at a time. This makes sense because the dialog is modal. Furthermore, the method calls are queued, not lost; the notification service displays all of the requested dialogs. The service also acknowledges the RPC method call without delay (which is not always the obvious thing to do), giving a different return value each time (incrementing by one each time).

== Programming Directly with libdbus ==

The lowest level library to be used for D-Bus programming is &lt;code&gt;libdbus&lt;/code&gt;. Using this library directly is discouraged, mostly because it contains a lot of specific code to integrate into various main-loop designs that the higher level language bindings use.

The [http://maemo.org/api_refs/5.0/5.0-final/dbus/api/ libdbus API reference] documentation contains a helpful note:

&lt;source lang=&quot;c&quot;&gt;
/**
 * Uses the low-level libdbus which should not be used directly.
 * As the D-Bus API reference puts it &quot;If you use this low-level API
 * directly, you are signing up for some pain&quot;.
 */
&lt;/source&gt;

At this point, this example ignores the warnings, and uses the library to implement a simple program that replicates the earlier &lt;code&gt;dbus-send&lt;/code&gt; example. To do this with the minimum amount of code, the code does not process (or expect) any responses to the method call. However, the code demonstrates the bare minimum function calls that are needed to send messages on the bus.

The first step is to introduce the necessary header files. [https://vcs.maemo.org/svn/maemoexamples/trunk/libdbus-example/dbus-example.c libdbus-example/dbus-example.c]

&lt;source lang=&quot;c&quot;&gt;
#include &lt;dbus/dbus.h&gt; /* Pull in all of D-Bus headers. */
#include &lt;stdio.h&gt;     /* printf, fprintf, stderr */
#include &lt;stdlib.h&gt;    /* EXIT_FAILURE, EXIT_SUCCESS */
#include &lt;assert.h&gt;    /* assert */
/* Symbolic defines for the D-Bus well-known name, interface, object
   path and method name that we are going to use. */
#define SYSNOTE_NAME  &quot;org.freedesktop.Notifications&quot;
#define SYSNOTE_OPATH &quot;/org/freedesktop/Notifications&quot;
#define SYSNOTE_IFACE &quot;org.freedesktop.Notifications&quot;
#define SYSNOTE_NOTE  &quot;SystemNoteDialog&quot;
&lt;/source&gt;

Unlike the rest of the code in this material, the dbus example does not use GLib or other support libraries (other than libdbus). This explains why the example uses printf and other functions that are normally replaced with GLib equivalents.

Connecting to the session bus yields a &lt;code&gt;DBusConnection&lt;/code&gt; structure: [https://vcs.maemo.org/svn/maemoexamples/trunk/libdbus-example/dbus-example.c libdbus-example/dbus-example.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * The main program that demonstrates a simple &quot;fire &amp; forget&quot; RPC
 * method invocation.
 */
int main(int argc, char** argv) {

  /* Structure representing the connection to a bus. */
  DBusConnection* bus = NULL;
  /* The method call message. */
  DBusMessage* msg = NULL;

  /* D-Bus reports problems and exceptions using the DBusError
     structure. We allocate one in stack (so that we don't need to
     free it explicitly. */
  DBusError error;

  /* Message to display. */
  const char* dispMsg = &quot;Hello World!&quot;;
  /* Text to use for the acknowledgement button. &quot;&quot; means default. */
  const char* buttonText = &quot;&quot;;
  /* Type of icon to use in the dialog (1 = OSSO_GN_ERROR). We could
     have just used the symbolic version here as well, but that would
     have required pulling the LibOSSO-header files. And this example
     must work without LibOSSO, so this is why a number is used. */
  int iconType = 1;

  /* Clean the error state. */
  dbus_error_init(&amp;error);

  printf(&quot;Connecting to Session D-Bus\n&quot;);
  bus = dbus_bus_get(DBUS_BUS_SESSION, &amp;error);
  terminateOnError(&quot;Failed to open Session bus\n&quot;, &amp;error);
  assert(bus != NULL);
&lt;/source&gt;

Libdbus attempts to share the existing connection structures when the same process is connecting to the same bus. This is done to avoid the costly connection set-up time. Sharing connections is beneficial when the program is using libraries that would also open their own connections to the same buses.

To communicate errors, libdbus uses &lt;code&gt;DBusError&lt;/code&gt; structures, whose contents are simple. The dbus_error_init is used for guaranteeing that the error structure contains a non-error state before connecting to the bus. If there is an error, it is handled in &lt;code&gt;terminateOnError&lt;/code&gt;: [https://vcs.maemo.org/svn/maemoexamples/trunk/libdbus-example/dbus-example.c libdbus-example/dbus-example.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * Utility to terminate if given DBusError is set.
 * Prints out the message and error before terminating.
 *
 * If error is not set, does nothing.
 *
 * NOTE: In real applications you should spend a moment or two
 *       thinking about the exit-paths from your application and
 *       whether you need to close/unreference all resources that you
 *       have allocated. In this program, we rely on the kernel to do
 *       all necessary cleanup (closing sockets, releasing memory),
 *       but in real life you need to be more careful.
 *
 *       One possible solution model to this is implemented in
 *       &quot;flashlight&quot;, a simple program that is presented later.
 */
static void terminateOnError(const char* msg,
                             const DBusError* error) {

  assert(msg != NULL);
  assert(error != NULL);

  if (dbus_error_is_set(error)) {
    fprintf(stderr, msg);
    fprintf(stderr, &quot;DBusError.name: %s\n&quot;, error-&gt;name);
    fprintf(stderr, &quot;DBusError.message: %s\n&quot;, error-&gt;message);
    /* If the program does not exit because of the error, freeing the
       DBusError needs to be done (with dbus_error_free(error)).
       NOTE:
         dbus_error_free(error) would only free the error if it was
         set, so it is safe to use even when you are unsure. */
    exit(EXIT_FAILURE);
  }
}
&lt;/source&gt;

libdbus also contains some utility functions so that everything does not have to be coded manually. One such utility is &lt;code&gt;dbus_bus_name_has_owner&lt;/code&gt;, that checks whether there is at least some process that owns the given well-known name at that moment: [https://vcs.maemo.org/svn/maemoexamples/trunk/libdbus-example/dbus-example.c libdbus-example/dbus-example.c]

&lt;source lang=&quot;c&quot;&gt;
  /* Normally one would just do the RPC call immediately without
     checking for name existence first. However, sometimes it is useful
     to check whether a specific name even exists on a platform on
     which you are planning to use D-Bus.

     In our case it acts as a reminder to run this program using the
     run-standalone.sh script when running in the SDK.

     The existence check is not necessary if the recipient is
     startable/activateable by D-Bus. In that case, if the recipient
     is not already running, the D-Bus daemon starts the
     recipient (a process that has been registered for that
     well-known name) and then passes the message to it. This
     automatic starting mechanism avoids the race condition
     discussed below and also makes sure that only one instance of
     the service is running at any given time. */
  printf(&quot;Checking whether the target name exists (&quot;
         SYSNOTE_NAME &quot;)\n&quot;);
  if (!dbus_bus_name_has_owner(bus, SYSNOTE_NAME, &amp;error)) {
    fprintf(stderr, &quot;Name has no owner on the bus!\n&quot;);
    return EXIT_FAILURE;
  }
  terminateOnError(&quot;Failed to check for name ownership\n&quot;, &amp;error);
  /* Someone on the Session bus owns the name. So we can proceed in
     relative safety. There is a chance of a race. If the name owner
     decides to drop out from the bus just after we check that it is
     owned, our RPC call (below) fails anyway. */
&lt;/source&gt;

Creating a method call using libdbus is slightly more tedious than using the higher-level interfaces. The process is separated into two steps: creating a message structure, and appending the arguments to the message: [https://vcs.maemo.org/svn/maemoexamples/trunk/libdbus-example/dbus-example.c libdbus-example/dbus-example.c]

&lt;source lang=&quot;c&quot;&gt;
  /* Construct a DBusMessage that represents a method call.
     Parameters are added later. The internal type of the message
     is DBUS_MESSAGE_TYPE_METHOD_CALL. */
  printf(&quot;Creating a message object\n&quot;);
  msg = dbus_message_new_method_call(SYSNOTE_NAME, /* destination */
                                     SYSNOTE_OPATH,  /* obj. path */
                                     SYSNOTE_IFACE,  /* interface */
                                     SYSNOTE_NOTE); /* method str */
  if (msg == NULL) {
    fprintf(stderr, &quot;Ran out of memory when creating a message\n&quot;);
    exit(EXIT_FAILURE);
  }

  /*... Listing cut for brevity ...*/

  /* Add the arguments to the message. For the Note dialog, we need
     three arguments:
       arg0: (STRING) &quot;message to display, in UTF-8&quot;
       arg1: (UINT32) type of dialog to display. We use 1.
                      (libosso.h/OSSO_GN_ERROR).
       arg2: (STRING) &quot;text to use for the ack button&quot;. &quot;&quot; means
                      default text (OK in our case).

     When listing the arguments, the type needs to be specified first
     (by using the libdbus constants) and then a pointer to the
     argument content needs to be given.

     NOTE: It is always a pointer to the argument value, not the value
           itself!

     We terminate the list with DBUS_TYPE_INVALID. */
  printf(&quot;Appending arguments to the message\n&quot;);
  if (!dbus_message_append_args(msg,
                                DBUS_TYPE_STRING, &amp;dispMsg,
                                DBUS_TYPE_UINT32, &amp;iconType,
                                DBUS_TYPE_STRING, &amp;buttonText,
                                DBUS_TYPE_INVALID)) {
    fprintf(stderr, &quot;Ran out of memory while constructing args\n&quot;);
    exit(EXIT_FAILURE);
  }
&lt;/source&gt;

When arguments are appended to the message, their content is copied, and possibly converted into a format that is sent over the connection to the daemon. This process is called marshaling, and is a common feature to most RPC systems. The method call requires two parameters (as before), the first being the text to be displayed, and the second being the style of the icon to be used. Parameters passed to libdbus are always passed by address. This is different from the higher level libraries.

The arguments are encoded, so that their type code is followed by the pointer where the marshaling functions can find the content. The argument list is terminated with &lt;code&gt;DBUS_TYPE_INVALID&lt;/code&gt;, so that the function knows where the argument list ends (since the function prototype ends with an ellipsis, ...). [https://vcs.maemo.org/svn/maemoexamples/trunk/libdbus-example/dbus-example.c libdbus-example/dbus-example.c]

&lt;source lang=&quot;c&quot;&gt;
  /* Set the &quot;no-reply-wanted&quot; flag into the message. This also means
     that we cannot reliably know whether the message was delivered or
     not, but because we do not have reply message handling here, it
     does not matter. The &quot;no-reply&quot; is a potential flag for the remote
     end so that they know that they do not need to respond to us.
     If the no-reply flag is set, the D-Bus daemon makes sure that the
     possible reply is discarded and not sent to us. */
  dbus_message_set_no_reply(msg, TRUE);
&lt;/source&gt;

Setting the no-reply-flag effectively tells the bus daemon that even if there is a reply coming back for this RPC method, it is not wanted. In this case, the daemon does not send a reply.

Once the message is fully constructed, it can be added to the sending queue of the program. Messages are not sent immediately by libdbus. Normally this allows the message queue to accumulate to more than one message, and all of the messages are sent at once to the daemon. This in turn cuts down the number of the necessary context switches. In this case, this message is the only message that the program ever sends, so the send queue is instructed to be flushed immediately, which in turn instructs the library to send all messages to the daemon without a delay: [https://vcs.maemo.org/svn/maemoexamples/trunk/libdbus-example/dbus-example.c libdbus-example/dbus-example.c]

&lt;source lang=&quot;c&quot;&gt;
  printf(&quot;Adding message to client's send-queue\n&quot;);
  /* We could also get a serial number (dbus_uint32_t) for the message
     so that we could correlate responses to sent messages later. In
     our case there is not going to be a response anyway, so we do not care about
     the serial, so we pass a NULL as the last parameter. */
  if (!dbus_connection_send(bus, msg, NULL)) {
    fprintf(stderr, &quot;Ran out of memory while queueing message\n&quot;);
    exit(EXIT_FAILURE);
  }

  printf(&quot;Waiting for send-queue to be sent out\n&quot;);
  dbus_connection_flush(bus);

  printf(&quot;Queue is now empty\n&quot;);
&lt;/source&gt;

After the message is sent, the reserved resources must be freed. Here, the first one to be freed is the message, and then the connection structure. [https://vcs.maemo.org/svn/maemoexamples/trunk/libdbus-example/dbus-example.c libdbus-example/dbus-example.c]

&lt;source lang=&quot;c&quot;&gt;
  printf(&quot;Cleaning up\n&quot;);

  /* Free up the allocated message. Most D-Bus objects have internal
     reference count and sharing possibility, so _unref() functions
     are quite common. */
  dbus_message_unref(msg);
  msg = NULL;

  /* Free-up the connection. libdbus attempts to share existing
     connections for the same client, so instead of closing down a
     connection object, it is unreferenced. The D-Bus library
     keeps an internal reference to each shared connection, to
     prevent accidental closing of shared connections before the
     library is finalized. */
  dbus_connection_unref(bus);
  bus = NULL;

  printf(&quot;Quitting (success)\n&quot;);

  return EXIT_SUCCESS;
}
&lt;/source&gt;

After building the program, attempt to run it:

&lt;pre&gt;
 [sbox-DIABLO_X86: ~/libdbus-example] &gt; ./dbus-example
Connecting to Session D-Bus
process 6120: D-Bus library appears to be incorrectly set up;
 failed to read machine uuid:
  Failed to open &quot;/var/lib/dbus/machine-id&quot;: No such file or directory
See the manual page for dbus-uuidgen to correct this issue.
  D-Bus not built with -rdynamic so unable to print a backtrace
Aborted (core dumped)
&lt;/pre&gt;

The D-Bus library needs environmental variables set correctly in order to locate the session daemon. The command was not prepended with run-standalone.sh, and this caused the library to internally abort the execution. Normally, &lt;code&gt;dbus_bus_get&lt;/code&gt; returns a &lt;code&gt;NULL&lt;/code&gt; pointer and sets the error structure, but the version on the 4.1 SDK asserts internally in this condition, and programs cannot avoid the abort. After correcting this, try again:

&lt;pre&gt;
 [sbox-DIABLO_X86: ~/libdbus-example] &gt; run-standalone.sh ./dbus-example
Connecting to Session D-Bus
Checking whether the target name exists (org.freedesktop.Notifications)
Creating a message object
Appending arguments to the message
Adding message to client's send-queue
Waiting for send-queue to be sent out
Queue is now empty
Cleaning up
Quitting (success)
/dev/dsp: No such file or directory
&lt;/pre&gt;

The error message (about &lt;code&gt;/dev/dsp&lt;/code&gt;) printed to the same terminal where AF was started is normal behavior (in SDK). Displaying the Note dialog normally also causes an &quot;Alert&quot; sound to be played. The sound system has not been setup in the SDK, so the notification component complains about failing to open the sound device.

[[Image:libdbus-example.png|frame|center|alt=Screenshot of message ‘Hello World!’|The friendly error message, using low-level D-Bus]]

To get libdbus integrated into makefiles, use pkg-config. One possible solution is presented below (see section [[Documentation/Maemo 5 Developer Guide/GNU Build System#GNU Make and Makefiles|GNU Make and Makefiles]] in chapter [[Documentation/Maemo 5 Developer Guide/GNU Build System|GNU Build System]], if necessary): [https://vcs.maemo.org/svn/maemoexamples/trunk/libdbus-example/Makefile libdbus-example/Makefile]

&lt;source lang=&quot;make&quot;&gt;
# Define a list of pkg-config packages we want to use
pkg_packages := dbus-glib-1
PKG_CFLAGS  := $(shell pkg-config -cflags $(pkg_packages))
PKG_LDFLAGS := $(shell pkg-config -libs $(pkg_packages))
# Additional flags for the compiler:
#    -g : Add debugging symbols
# -Wall : Enable most gcc warnings
ADD_CFLAGS := -g -Wall
# Combine user supplied, additional, and pkg-config flags
CFLAGS  := $(PKG_CFLAGS) $(ADD_CFLAGS) $(CFLAGS)
LDFLAGS := $(PKG_LDFLAGS) $(LDFLAGS)
&lt;/source&gt;

The above example shows one possibility to integrate user-supplied variables into makefiles, so that they are still passed along the toolchain. This allows the user to execute make with custom flags, overriding those that are introduced using other means. For example: &quot;CFLAGS='-g0' make&quot; results in the -g0 being interpreted after the -g that is in the Makefile, and this leads to debugging symbols being disabled. Environmental variables can be taken into account in exactly the same way.

For more complicated programs, that multiple different &lt;code&gt;CFLAGS&lt;/code&gt; settings are probably required for different object files or multiple different programs that are being built. In that case, the combining in each target rule is performed separately. In this material, all the example programs are self-contained and rather simple, so the above-mentioned mechanism is used in all example makefiles.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/DBus/DBus in Freemantle</title>
    <id>3327</id>
    <revision>
      <id>40570</id>
      <timestamp>2010-12-06T15:23:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>better redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Phone control#D-Bus]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/DBus/Implementing and Using D-Bus Signals</title>
    <id>2333</id>
    <revision>
      <id>38333</id>
      <timestamp>2010-09-06T12:15:37Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add example links</comment>
      <text xml:space="preserve">== D-Bus Signal properties ==

Performing remote method invocations over the D-Bus is only one half of D-Bus capabilities. As was noted before, D-Bus also supports a ''broadcast'' method of communication, which is ''asynchronous''. This mechanism is called a ''signal'' (in D-Bus terminology), and it is useful when several receivers must be notified about a state change that could affect them. Some examples where signals could be useful are notifying a lot of receivers, when the system is being shut down, network connectivity has been lost, and similar system-wide conditions. This way, the receivers do not need to poll for the status continuously.

However, signals are not the solution to all problems. If a recipient is not processing its D-Bus messages quickly enough (or there just are too many), a signal might get lost on its way to the recipient. Other complications can also occur, as with any RPC mechanism. For these reasons, if the application requires extra reliability, you need to think how to arrange it. One possibility is to occasionally check the state that the application is interested in, assuming it can be checked over the D-Bus. This, however, should not be done too often; the recommended interval is once a minute or less often than that, and only when the application is already active for other reasons. This model leads to a reduction in battery life, so its use should be carefully weighed.

Signals in D-Bus are able to carry information. Each signal has its own name (specified in the interface XML), as well as &quot;arguments&quot;. In signal's case, the argument list is actually a list of information that is passed along the signal and should not be confused with method call parameters (although both are delivered in the same manner).

Signals do not &quot;return&quot;, meaning that when a D-Bus signal is sent, no reply is received, nor is one expected. If the signal emitter wants to be sure that the signal was delivered, additional mechanisms need to be constructed for this (D-Bus does not include them directly). A D-Bus signal is very similar to most datagram-based network protocols, for example UDP. Sending a signal succeeds, even if there are no receivers interested in that specific signal.

Most D-Bus language bindings attempts to map D-Bus signals into something more natural in the target language. Since GLib already supports the notion of signals (as GLib signals), this mapping is quite natural. So in practice, the client registers for GLib signals, and then handles the signals in callback functions (a special wrapper function must be used to register for the wrapped signals: &lt;code&gt;dbus_g_proxy_connect_signal&lt;/code&gt;).

== Declaring Signals in Interface XML ==

Next, the &lt;code&gt;Value&lt;/code&gt; object is extended so that it contains two threshold values (minimum and maximum), and the object emits signals, whenever a set operation falls outside the thresholds.

A signal is also emitted whenever a value is changed (making the binary content of the new value different from the old one).

In order to make the signals available to introspection data, the interface XML file is modified accordingly: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-signals/value-dbus-interface.xml glib-dbus-signals/value-dbus-interface.xml]

&lt;source lang=&quot;xml&quot;&gt;
&lt;node&gt;
	&lt;interface name=&quot;org.maemo.Value&quot;&gt;
		&lt;!- ... Listing cut for brevity ... -&gt;
		&lt;!- Signal (D-Bus) definitions -&gt;
		&lt;!- NOTE: The current version of dbus-bindings-tool doesn't
		     actually enforce the signal arguments _at_all_. Signals need
		     to be declared in order to be passed through the bus itself,
		     but otherwise no checks are done! For example, you could
		     leave the signal arguments unspecified completely, and the
		     code would still work. -&gt;
		&lt;!- Signals to tell interested clients about state change.
		     We send a string parameter with them. They never can have
		     arguments with direction=in. -&gt;
		&lt;signal name=&quot;changed_value1&quot;&gt;
			&lt;arg type=&quot;s&quot; name=&quot;change_source_name&quot; direction=&quot;out&quot;/&gt;
		&lt;/signal&gt;
		&lt;signal name=&quot;changed_value2&quot;&gt;
			&lt;arg type=&quot;s&quot; name=&quot;change_source_name&quot; direction=&quot;out&quot;/&gt;
		&lt;/signal&gt;
		&lt;!- Signals to tell interested clients that values are outside
		     the internally configured range (thresholds). -&gt;
		&lt;signal name=&quot;outofrange_value1&quot;&gt;
			&lt;arg type=&quot;s&quot; name=&quot;outofrange_source_name&quot; direction=&quot;out&quot;/&gt;
		&lt;/signal&gt;
		&lt;signal name=&quot;outofrange_value2&quot;&gt;
			&lt;arg type=&quot;s&quot; name=&quot;outofrange_source_name&quot; direction=&quot;out&quot;/&gt;
		&lt;/signal&gt;
	&lt;/interface&gt;
&lt;/node&gt;
&lt;/source&gt;

The signal definitions are required if the &lt;code&gt;dbus-bindings-tool&lt;/code&gt; is used; however, the argument specification for each signal is not required by the tool. In fact, the tool ignores all argument specifications, and as can be seen below, a lot of &quot;manual coding&quot; has to be made in order to implement and use the signals (on both the client and server side).

== Emitting Signals from GObject ==

The signal names are defined in a header file so that they can easily be changed later, and the header file is used in both the server and the client. The following is the section with the signal names: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-signals/common-defs.h glib-dbus-signals/common-defs.h]

&lt;source lang=&quot;c&quot;&gt;
/* Symbolic constants for the signal names to use with GLib.
   These need to map into the D-Bus signal names. */
#define SIGNAL_CHANGED_VALUE1    &quot;changed_value1&quot;
#define SIGNAL_CHANGED_VALUE2    &quot;changed_value2&quot;
#define SIGNAL_OUTOFRANGE_VALUE1 &quot;outofrange_value1&quot;
#define SIGNAL_OUTOFRANGE_VALUE2 &quot;outofrange_value2&quot;
&lt;/source&gt;

Before a &lt;code&gt;GObject&lt;/code&gt; can emit a GLib signal, the signal itself needs to be defined and created. The best way to do this is to use the class constructor code (because the signal types need to be created only once): [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-signals/server.c glib-dbus-signals/server.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * Define enumerations for the different signals that we can generate
 * (so that we can refer to them within the signals-array [below]
 * using symbolic names). These are not the same as the signal name
 * strings.
 *
 * NOTE: E_SIGNAL_COUNT is NOT a signal enum. We use it as a
 *       convenient constant giving the number of signals defined so
 *       far. It needs to be listed last.
 */
typedef enum {
  E_SIGNAL_CHANGED_VALUE1,
  E_SIGNAL_CHANGED_VALUE2,
  E_SIGNAL_OUTOFRANGE_VALUE1,
  E_SIGNAL_OUTOFRANGE_VALUE2,
  E_SIGNAL_COUNT
} ValueSignalNumber;
  /*... Listing cut for brevity ...*/
typedef struct {
  /* The parent class state. */
  GObjectClass parent;
  /* The minimum number under which values cause signals to be
     emitted. */
  gint thresholdMin;
  /* The maximum number over which values cause signals to be
     emitted. */
  gint thresholdMax;
  /* Signals created for this class. */
  guint signals[E_SIGNAL_COUNT];
} ValueObjectClass;
  /*... Listing cut for brevity ...*/
/**
 * Per class initializer
 *
 * Sets up the thresholds (-100 .. 100), creates the signals that we
 * can emit from any object of this class and finally registers the
 * type into the GLib/D-Bus wrapper so that it may add its own magic.
 */
static void value_object_class_init(ValueObjectClass* klass) {
  /* Because all signals have the same prototype (each gets one
     string as a parameter), we create them in a loop below. The only
     difference between them is the index into the klass-&gt;signals
     array, and the signal name.
     Because the index goes from 0 to E_SIGNAL_COUNT-1, we just specify
     the signal names into an array and iterate over it.
     Note that the order here must correspond to the order of the
     enumerations before. */
  const gchar* signalNames[E_SIGNAL_COUNT] = {
    SIGNAL_CHANGED_VALUE1,
    SIGNAL_CHANGED_VALUE2,
    SIGNAL_OUTOFRANGE_VALUE1,
    SIGNAL_OUTOFRANGE_VALUE2 };
  /* Loop variable */
  int i;
  dbg(&quot;Called&quot;);
  g_assert(klass != NULL);
  /* Setup sane minimums and maximums for the thresholds. There is no
     way to change these afterwards (currently), so you can consider
     them as constants. */
  klass-&gt;thresholdMin = -100;
  klass-&gt;thresholdMax = 100;
  dbg(&quot;Creating signals&quot;);
  /* Create the signals in one loop, because they all are similar
     (except for the names). */
  for (i = 0; i &lt; E_SIGNAL_COUNT; i++) {
    guint signalId;
    /* Most of the time you encounter the following code without
       comments. This is why all the parameters are documented
       directly below. */
    signalId =
      g_signal_new(signalNames[i], /* str name of the signal */
                   /* GType to which signal is bound to */
                   G_OBJECT_CLASS_TYPE(klass),
                   /* Combination of GSignalFlags which tell the
                      signal dispatch machinery how and when to
                      dispatch this signal. The most common is the
                      G_SIGNAL_RUN_LAST specification. */
                   G_SIGNAL_RUN_LAST,
                   /* Offset into the class structure for the type
                      function pointer. Because we are implementing a
                      simple class/type, we leave this at zero. */
                   0,
                   /* GSignalAccumulator to use. We do not need one. */
                   NULL,
                   /* User-data to pass to the accumulator. */
                   NULL,
                   /* Function to use to marshal the signal data into
                      the parameters of the signal call. Luckily for
                      us, GLib (GCClosure) already defines just the
                      function that we want for a signal handler that
                      we do not expect any return values (void) and
                      one that accepts one string as parameter
                      (besides the instance pointer and pointer to
                      user-data).
                      If no such function exists, you need
                      to create a new one (by using glib-genmarshal
                      tool). */
                   g_cclosure_marshal_VOID__STRING,
                   /* Return GType of the return value. The handler
                      does not return anything, so we use G_TYPE_NONE
                      to mark that. */
                   G_TYPE_NONE,
                   /* Number of parameter GTypes to follow. */
                   1,
                   /* GType(s) of the parameters. We only have one. */
                   G_TYPE_STRING);
    /* Store the signal Id into the class state, so that we can use
       it later. */
    klass-&gt;signals[i] = signalId;
    /* Proceed with the next signal creation. */
  }
  /* All signals created. */
  dbg(&quot;Binding to GLib/D-Bus&quot;);
  /*... Listing cut for brevity ...*/
}
&lt;/source&gt;

The signal types are kept in the class structure, so that they can be referenced easily by the signal emitting utility. The class constructor code also sets up the threshold limits, which in this implementation are immutable (meaning that they cannot be changed). Experiment with the implementation and add more methods to adjust the thresholds as necessary.

Emitting the signals is quite easy, but in order to reduce code amount, a utility function is created to launch a given signal based on its enumeration: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-signals/server.c glib-dbus-signals/server.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * Utility helper to emit a signal given with internal enumeration and
 * the passed string as the signal data.
 *
 * Used in the setter functions below.
 */
static void value_object_emitSignal(ValueObject* obj,
                                    ValueSignalNumber num,
                                    const gchar* message) {
  /* In order to access the signal identifiers, we need to get a hold
     of the class structure first. */
  ValueObjectClass* klass = VALUE_OBJECT_GET_CLASS(obj);
  /* Check that the given num is valid (abort if not).
     Given that this file is the module actually using this utility,
     you can consider this check superfluous (but useful for
     development work). */
  g_assert((num &lt; E_SIGNAL_COUNT) &amp;&amp; (num &gt;= 0));
  dbg(&quot;Emitting signal id %d, with message '%s'&quot;, num, message);
  /* This is the simplest way of emitting signals. */
  g_signal_emit(/* Instance of the object that is generating this
                   signal. This is passed as the first parameter
                   to the signal handler (eventually). But obviously
                   when speaking about D-Bus, a signal caught on the
                   other side of D-Bus is first processed by
                   the GLib-wrappers (the object proxy) and only then
                   processed by the signal handler. */
                obj,
                /* Signal id for the signal to generate. These are
                   stored inside the class state structure. */
                klass-&gt;signals[num],
                /* Detail of signal. Because we are not using detailed
                   signals, we leave this at zero (default). */
                0,
                /* Data to marshal into the signal. In our case it is
                   just one string. */
                message);
  /* g_signal_emit returns void, so we cannot check for success. */
  /* Done emitting signal. */
}
&lt;/source&gt;

To avoid having to check the threshold values in multiple places in the source code, the threshold value is also implemented as a separate function. Emitting the &quot;threshold exceeded&quot; signal is still up to the caller. [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-signals/server.c glib-dbus-signals/server.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * Utility to check the given integer against the thresholds.
 * Returns TRUE if thresholds are not exceeded, FALSE otherwise.
 *
 * Used in the setter functions below.
 */
static gboolean value_object_thresholdsOk(ValueObject* obj,
                                          gint value) {
  /* Thresholds are in class state data, get access to it */
  ValueObjectClass* klass = VALUE_OBJECT_GET_CLASS(obj);
  return ((value &gt;= klass-&gt;thresholdMin) &amp;&amp;
          (value &lt;= klass-&gt;thresholdMax));
}
&lt;/source&gt;

Both utility functions are then used from within the respective set functions, one of which is presented below: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-signals/server.c glib-dbus-signals/server.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * Function that gets called when someone tries to execute &quot;setvalue1&quot;
 * over the D-Bus. (Actually the marshalling code from the stubs gets
 * executed first, but eventually they execute this function.)
 */
gboolean value_object_setvalue1(ValueObject* obj, gint valueIn,
                                                  GError** error) {
  dbg(&quot;Called (valueIn=%d)&quot;, valueIn);
  g_assert(obj != NULL);
  /* Compare the current value against old one. If they're the same,
     we do not need to do anything (except return success). */
  if (obj-&gt;value1 != valueIn) {
    /* Change the value. */
    obj-&gt;value1 = valueIn;
    /* Emit the &quot;changed_value1&quot; signal. */
    value_object_emitSignal(obj, E_SIGNAL_CHANGED_VALUE1, &quot;value1&quot;);
    /* If new value falls outside the thresholds, emit
       &quot;outofrange_value1&quot; signal as well. */
    if (!value_object_thresholdsOk(obj, valueIn)) {
      value_object_emitSignal(obj, E_SIGNAL_OUTOFRANGE_VALUE1,
                                   &quot;value1&quot;);
    }
  }
  /* Return success to GLib/D-Bus wrappers. In this case we do not need
     to touch the supplied error pointer-pointer. */
  return TRUE;
}
&lt;/source&gt;

The role of the &lt;code&gt;value1&lt;/code&gt; string parameter that is sent along both of the signals above can raise a question. Sending the signal origin name with the signal allows you to reuse the same callback function in the client. This kind of &quot;source naming&quot; is rarely useful but it allows for writing a slightly shorter client program.

The implementation of &lt;code&gt;setvalue2&lt;/code&gt; is almost identical, but deals with the &lt;code&gt;gdouble&lt;/code&gt; parameter.

The getvalue functions are identical to the versions before as is the Makefile.

Next, the server is built and started on the background (in preparation for testing with &lt;code&gt;dbus-send&lt;/code&gt;):

&lt;pre&gt;
[sbox-DIABLO_X86: ~/glib-dbus-signals] &gt; make server
dbus-binding-tool --prefix=value_object --mode=glib-server \
  value-dbus-interface.xml &gt; value-server-stub.h
cc -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include \
 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -Wall \
 -DG_DISABLE_DEPRECATED -DNO_DAEMON -DPROGNAME=\&quot;server\&quot; \
 -c server.c -o server.o
cc server.o -o server -ldbus-glib-1 -ldbus-1 -lgobject-2.0 -lglib-2.0
[sbox-DIABLO_X86: ~/glib-dbus-signals] &gt; run-standalone.sh ./server &amp;amp;
[1] 15293
server:main Connecting to the Session D-Bus.
server:main Registering the well-known name (org.maemo.Platdev_ex)
server:main RequestName returned 1.
server:main Creating one Value object.
server:value_object_class_init: Called
server:value_object_class_init: Creating signals
server:value_object_class_init: Binding to GLib/D-Bus
server:value_object_class_init: Done
server:value_object_init: Called
server:main Registering it on the D-Bus.
server:main Ready to serve requests (daemonizing).
server: Not daemonizing (built with NO_DAEMON-build define)
[sbox-DIABLO_X86: ~/glib-dbus-signals] &gt;
&lt;/pre&gt;

The next step is to test the &lt;code&gt;setvalue1&lt;/code&gt; method:

&lt;pre&gt;
[sbox-DIABLO_X86: ~/glib-dbus-signals] &gt; run-standalone.sh dbus-send \
 --type=method_call --print-reply --dest=org.maemo.Platdev_ex \
 /GlobalValue org.maemo.Value.setvalue1 int32:10
server:value_object_setvalue1: Called (valueIn=10)
server:value_object_emitSignal: Emitting signal id 0, with message 'value1'
method return sender=:1.38 -&gt; dest=:1.41
[sbox-DIABLO_X86: ~/glib-dbus-signals] &gt; run-standalone.sh dbus-send \
 --type=method_call --print-reply --dest=org.maemo.Platdev_ex \
 /GlobalValue org.maemo.Value.setvalue1 int32:-200
server:value_object_setvalue1: Called (valueIn=-200)
server:value_object_emitSignal: Emitting signal id 0, with message 'value1'
server:value_object_emitSignal: Emitting signal id 2, with message 'value1'
method return sender=:1.38 -&gt; dest=:1.42
&lt;/pre&gt;

After this, the next step is to test the &lt;code&gt;setvalue2&lt;/code&gt; (with &lt;code&gt;double&lt;/code&gt;s). At this point, the threshold triggering can behave in an unexpected manner:

&lt;pre&gt;
[sbox-DIABLO_X86: ~/glib-dbus-signals] &gt; run-standalone.sh dbus-send \
 --type=method_call --print-reply --dest=org.maemo.Platdev_ex \
 /GlobalValue org.maemo.Value.setvalue2 double:100.5
server:value_object_setvalue2: Called (valueIn=100.500)
server:value_object_emitSignal: Emitting signal id 1, with message 'value2'
method return sender=:1.38 -&gt; dest=:1.44
[sbox-DIABLO_X86: ~/glib-dbus-signals] &gt; run-standalone.sh dbus-send \
 --type=method_call --print-reply --dest=org.maemo.Platdev_ex \
 /GlobalValue org.maemo.Value.setvalue2 double:101
server:value_object_setvalue2: Called (valueIn=101.000)
server:value_object_emitSignal: Emitting signal id 1, with message 'value2'
server:value_object_emitSignal: Emitting signal id 3, with message 'value2'
method return sender=:1.38 -&gt; dest=:1.45
&lt;/pre&gt;

Because the threshold testing logic truncates the &lt;code&gt;gdouble&lt;/code&gt; before testing against the (integer) thresholds, a value of 100.5 is detected as 100 and it still fits within the thresholds.

Instead of printing out the emitted signal names, the enumeration values of the emitted signals are printed. This could be rectified with a small enumeration to string table, but it was omitted from the program for simplicity.

Other than seeing the server messages about emitting the signals, there is no trace of them being sent or received. This is because &lt;code&gt;dbus-send&lt;/code&gt; does not listen for signals. A separate tool (&lt;code&gt;dbus-monitor&lt;/code&gt;) can be used for tracing signals.

== Catching Signals in GLib/D-Bus Clients ==

In order to receive D-Bus signals in the client, you need to perform several tasks per signal. This is because &lt;code&gt;dbus-bindings-tool&lt;/code&gt; does not generate any code for signals. The aim is to make the GLib wrappers emit GLib signals whenever an interesting D-Bus signal arrives. This also means that registering the interest for a particular D-Bus signal is necessary.

When implementing the callbacks for the signals, the prototype must be implemented correctly. Because the signals are sent with one attached string value, the callbacks receive at least the string parameter. Besides the signal attached arguments, the callback receives the proxy object, through which the signal was received, and optional user-specified data (which is not used in this example, so it is always &lt;code&gt;NULL&lt;/code&gt;). [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-signals/client.c glib-dbus-signals/client.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * Signal handler for the &quot;changed&quot; signals. These are sent by the
 * Value-object whenever its contents change (whether within
 * thresholds or not).
 *
 * Like before, we use strcmp to differentiate between the two
 * values, and act accordingly (in this case by retrieving
 * synchronously the values using getvalue1 or getvalue2).
 *
 * NOTE: Because we use synchronous getvalues, it is possible to get
 *       this code stuck if for some reason the server is stuck
 *       in an eternal loop.
 */
static void valueChangedSignalHandler(DBusGProxy* proxy,
                                      const char* valueName,
                                      gpointer userData) {
  /* Because method calls over D-Bus can fail, we need to check
     for failures. The server might be shut down in the middle of
     things, or might act badly in other ways. */
  GError* error = NULL;

  g_print(PROGNAME &quot;:value-changed (%s)\n&quot;, valueName);

  /* Find out which value changed and act accordingly. */
  if (strcmp(valueName, &quot;value1&quot;) == 0) {
    gint v = 0;
    /* Execute the RPC to get value1. */
    org_maemo_Value_getvalue1(proxy, &amp;v, &amp;error);
    if (error == NULL) {
      g_print(PROGNAME &quot;:value-changed Value1 now %d\n&quot;, v);
    } else {
      /* You could interrogate the GError further to find out exactly
         what the error was, but in our case, we just ignore the
         error with the hope that some day (preferably soon), the
         RPC succeeds again (server comes back on the bus). */
      handleError(&quot;Failed to retrieve value1&quot;, error-&gt;message, FALSE);
    }
  } else {
    gdouble v = 0.0;
    org_maemo_Value_getvalue2(proxy, &amp;v, &amp;error);
    if (error == NULL) {
      g_print(PROGNAME &quot;:value-changed Value2 now %.3f\n&quot;, v);
    } else {
      handleError(&quot;Failed to retrieve value2&quot;, error-&gt;message, FALSE);
    }
  }
  /* Free up error object if one was allocated. */
  g_clear_error(&amp;error);
}
&lt;/source&gt;

The callback first determines what was the source value that caused the signal to be generated. For this, it uses the string argument of the signal. It then retrieves the current value using the respective RPC methods (&lt;code&gt;getvalue1&lt;/code&gt; or &lt;code&gt;getvalue2&lt;/code&gt;) and prints out the value.

If any errors occur during the method calls, the errors are printed out, but the program continues to run. If an error does occur, the &lt;code&gt;GError&lt;/code&gt; object needs to be freed (performed with &lt;code&gt;g_clear_error&lt;/code&gt;). The program does not terminate on RPC errors, because the condition might be temporary (the &lt;code&gt;Value&lt;/code&gt; object server might be restarted later).

The code for the &lt;code&gt;outOfRangeSignalHandler&lt;/code&gt; callback has been omitted, because it does not contain anything beyond what &lt;code&gt;valueChangedSignalHandler&lt;/code&gt; demonstrates.

Registering for the signals is a two-step process. First, it is necessary to register the interest in the D-Bus signals, and then install the callbacks for the respective GLib signals. This is done within main: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-signals/client.c glib-dbus-signals/client.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * The test program itself.
 *
 * 1) Setup GType/GSignal
 * 2) Create GMainLoop object
 * 3) Connect to the Session D-Bus
 * 4) Create a proxy GObject for the remote Value object
 * 5) Register signals that we're interested from the Value object
 * 6) Register signal handlers for them
 * 7) Start a timer that launches timerCallback once per second.
 * 8) Run main-loop (forever)
 */
int main(int argc, char** argv) {

  /*... Listing cut for brevity ...*/

  remoteValue =
    dbus_g_proxy_new_for_name(bus,
                              VALUE_SERVICE_NAME, /* name */
                              VALUE_SERVICE_OBJECT_PATH, /* obj path */
                              VALUE_SERVICE_INTERFACE /* interface */);
  if (remoteValue == NULL) {
    handleError(&quot;Couldn't create the proxy object&quot;,
                &quot;Unknown(dbus_g_proxy_new_for_name)&quot;, TRUE);
  }

  /* Register the signatures for the signal handlers.
     In our case, we have one string parameter passed to use along
     the signal itself. The parameter list is terminated with
     G_TYPE_INVALID (i.e., the GType for string objects. */

  g_print(PROGNAME &quot;:main Registering signal handler signatures.\n&quot;);

  /* Add the argument signatures for the signals (needs to be done
     before connecting the signals). This may go away in the future,
     when the GLib-bindings do automatic introspection over the
     D-Bus, but for now we need the registration phase. */
  { /* Create a local scope for variables. */

    int i;
    const gchar* signalNames[] = { SIGNAL_CHANGED_VALUE1,
                                   SIGNAL_CHANGED_VALUE2,
                                   SIGNAL_OUTOFRANGE_VALUE1,
                                   SIGNAL_OUTOFRANGE_VALUE2 };
    /* Iterate over all the entries in the above array.
       The upper limit for i might seem strange at first glance,
       but is quite common idiom to extract the number of elements
       in a statically allocated arrays in C.
       NOTE: The idiom does not work with dynamically allocated
             arrays. (Or rather it works, but the result is probably
             not what you expect.) */
    for (i = 0; i &lt; sizeof(signalNames)/sizeof(signalNames[0]); i++) {
      /* Because the function does not return anything, we cannot check
         for errors here. */
      dbus_g_proxy_add_signal(/* Proxy to use */
                              remoteValue,
                              /* Signal name */
                              signalNames[i],
                              /* Receives one string argument */
                              G_TYPE_STRING,
                              /* Termination of the argument list */
                              G_TYPE_INVALID);
    }
  } /* end of local scope */

  g_print(PROGNAME &quot;:main Registering D-Bus signal handlers.\n&quot;);

  /* We connect each of the following signals one at a time,
     because we are using two different callbacks. */

  /* Again, no return values, cannot hence check for errors. */
  dbus_g_proxy_connect_signal(/* Proxy object */
                              remoteValue,
                              /* Signal name */
                              SIGNAL_CHANGED_VALUE1,
                              /* Signal handler to use. Note that the
                                 typecast is just to make the compiler
                                 happy about the function, because the
                                 prototype is not compatible with
                                 regular signal handlers. */
                              G_CALLBACK(valueChangedSignalHandler),
                              /* User-data (we don't use any). */
                              NULL,
                              /* GClosureNotify function that is
                                 responsible in freeing the passed
                                 user-data (we have no data). */
                              NULL);

  dbus_g_proxy_connect_signal(remoteValue, SIGNAL_CHANGED_VALUE2,
                              G_CALLBACK(valueChangedSignalHandler),
                              NULL, NULL);

  dbus_g_proxy_connect_signal(remoteValue, SIGNAL_OUTOFRANGE_VALUE1,
                              G_CALLBACK(outOfRangeSignalHandler),
                              NULL, NULL);

  dbus_g_proxy_connect_signal(remoteValue, SIGNAL_OUTOFRANGE_VALUE2,
                              G_CALLBACK(outOfRangeSignalHandler),
                              NULL, NULL);

  /* All signals are now registered and we're ready to handle them. */

  g_print(PROGNAME &quot;:main Starting main loop (first timer in 1s).\n&quot;);

  /* Register a timer callback that does RPC sets on the values.
     The userdata pointer is used to pass the proxy object to the
     callback so that it can launch modifications to the object. */
  g_timeout_add(1000, (GSourceFunc)timerCallback, remoteValue);

  /* Run the program. */
  g_main_loop_run(mainloop);
  /* Because the main loop is not stopped (by this code), we shouldn't
     ever get here. The program might abort() for other reasons. */

  /* If it does, return failure as exit code. */
  return EXIT_FAILURE;
}
&lt;/source&gt;

When adding the argument signatures for the signals (with &lt;code&gt;dbus_g_proxy_add_signal&lt;/code&gt;), one needs to be very careful with the parameter list. The signal argument types must be exactly the same as are sent from the server (irrespective of the argument specification in the interface XML). This is because the current version of &lt;code&gt;dbus-bindings-tool&lt;/code&gt; does not generate any checks to enforce signal arguments based on the interface. In this simple case, only one string is received with each different signal, so this is not a big issue. The implementation for the callback function needs to match the argument specification given to the &lt;code&gt;_add_signal&lt;/code&gt;-function, otherwise data layout on the stack is incorrect and can cause problems.

Building the client is done in the same manner as before (make client). Because the server is still (hopefully) running on the background, the client is now started in the same session:

&lt;pre&gt;
[sbox-DIABLO_X86: ~/glib-dbus-signals] &gt; run-standalone.sh ./client
client:main Connecting to Session D-Bus.
client:main Creating a GLib proxy object for Value.
client:main Registering signal handler signatures.
client:main Registering D-Bus signal handlers.
client:main Starting main loop (first timer in 1s).
server:value_object_setvalue1: Called (valueIn=-80)
server:value_object_emitSignal: Emitting signal id 0, with message 'value1'
client:timerCallback Set value1 to -80
server:value_object_setvalue2: Called (valueIn=-120.000)
server:value_object_emitSignal: Emitting signal id 1, with message 'value2'
server:value_object_emitSignal: Emitting signal id 3, with message 'value2'
client:timerCallback Set value2 to -120.000
client:value-changed (value1)
server:value_object_getvalue1: Called (internal value1 is -80)
client:value-changed Value1 now -80
client:value-changed (value2)
server:value_object_getvalue2: Called (internal value2 is -120.000)
client:value-changed Value2 now -120.000
client:out-of-range (value2)!
client:out-of-range Value 2 is outside threshold
server:value_object_setvalue1: Called (valueIn=-70)
server:value_object_emitSignal: Emitting signal id 0, with message 'value1'
client:timerCallback Set value1 to -70
server:value_object_setvalue2: Called (valueIn=-110.000)
server:value_object_emitSignal: Emitting signal id 1, with message 'value2'
server:value_object_emitSignal: Emitting signal id 3, with message 'value2'
client:timerCallback Set value2 to -110.000
client:value-changed (value1)
server:value_object_getvalue1: Called (internal value1 is -70)
client:value-changed Value1 now -70
client:value-changed (value2)
server:value_object_getvalue2: Called (internal value2 is -110.000)
client:value-changed Value2 now -110.000
...
&lt;/pre&gt;

The client starts with the timer callback being executed once per second (as before). Each iteration, it calls the &lt;code&gt;setvalue1&lt;/code&gt; and &lt;code&gt;setvalue2&lt;/code&gt; RPC methods with increasing values. The number for &lt;code&gt;value2&lt;/code&gt; is intentionally set below the minimum threshold, so that it causes an &lt;code&gt;outofrange_value2&lt;/code&gt; signal to be emitted. For each set, the &lt;code&gt;changed_value&lt;/code&gt; signals are also emitted. Whenever the client receives either of the value change signals, it performs a &lt;code&gt;getvalue&lt;/code&gt; RPC method call to retrieve the current value and print it out.

This continues until the client is terminated.

==Tracing D-Bus Signals ==

Sometimes seeing which signals are actually carried on the buses can be useful, especially when adding signal handlers for signals that are emitted from undocumented interfaces. The &lt;code&gt;dbus-monitor&lt;/code&gt; tool attaches to the D-Bus daemon, and asks it to watch for signals and report them back to the tool, so that it can decode the signals automatically, as they appear on the bus.

While the server and client are still running, the next step is to start the &lt;code&gt;dbus-monitor&lt;/code&gt; (in a separate session this time) to see whether the signals are transmitted correctly. It should be noted that signals appear on the bus even if there are no clients currently interested in them. In this case, signals are emitted by the server, based on client-issued RPC methods, so if the client is terminated, the signals cease.

&lt;pre&gt;
[sbox-DIABLO_X86: ~/glib-dbus-signals] &gt; run-standalone.sh dbus-monitor type='signal'
signal sender=:1.38 -&gt; dest=(null destination) 
 interface=org.maemo.Value; member=changed_value1
 string &quot;value1&quot;
signal sender=:1.38 -&gt; dest=(null destination) 
 interface=org.maemo.Value; member=changed_value2
 string &quot;value2&quot;
signal sender=:1.38 -&gt; dest=(null destination) 
 interface=org.maemo.Value; member=outofrange_value2
 string &quot;value2&quot;
signal sender=:1.38 -&gt; dest=(null destination) 
 interface=org.maemo.Value; member=changed_value1
 string &quot;value1&quot;
signal sender=:1.38 -&gt; dest=(null destination) 
 interface=org.maemo.Value; member=changed_value2
 string &quot;value2&quot;
signal sender=:1.38 -&gt; dest=(null destination) 
 interface=org.maemo.Value; member=outofrange_value2
 string &quot;value2&quot;
signal sender=:1.38 -&gt; dest=(null destination) 
 interface=org.maemo.Value; member=changed_value1
 string &quot;value1&quot;
signal sender=:1.38 -&gt; dest=(null destination) 
 interface=org.maemo.Value; member=changed_value2
 string &quot;value2&quot;
signal sender=:1.38 -&gt; dest=(null destination) 
 interface=org.maemo.Value; member=changed_value1
 string &quot;value1&quot;
signal sender=:1.38 -&gt; dest=(null destination) 
 interface=org.maemo.Value; member=changed_value2
 string &quot;value2&quot;
&lt;/pre&gt;

The tool decodes the parameters automatically to the best of its ability (the string parameter for the signals above). It does not know the semantic meaning for the different signals, so sometimes additional testing has to be performed to decide what they actually mean. This is especially true when mapping out undocumented interfaces (for which the source code is not necessarily available).

Some examples of displaying signals on the system bus on a device follow:

* A device turning off the backlight after inactivity 
&lt;pre&gt;
Nokia-N810-xx-xx:~# run-standalone.sh dbus-monitor --system
signal sender=:1.3 -&gt; dest=(null destination) path=/com/nokia/mce/signal; 
 interface=com.nokia.mce.signal; member=display_status_ind
 string &quot;dimmed&quot;
signal sender=:1.3 -&gt; dest=(null destination) path=/com/nokia/mce/signal; 
 interface=com.nokia.mce.signal; member=system_inactivity_ind
 boolean true
signal sender=:1.3 -&gt; dest=(null destination) path=/com/nokia/mce/signal; 
 interface=com.nokia.mce.signal; member=save_unsaved_data_ind
signal sender=:1.3 -&gt; dest=(null destination) path=/com/nokia/mce/signal; 
 interface=com.nokia.mce.signal; member=display_status_ind
 string &quot;off&quot;
&lt;/pre&gt;

* A device coming back to life after a screen tap 
&lt;pre&gt;
signal sender=:1.3 -&gt; dest=(null destination) path=/com/nokia/mce/signal; 
 interface=com.nokia.mce.signal; member=system_inactivity_ind
 boolean false
signal sender=:1.3 -&gt; dest=(null destination) path=/com/nokia/mce/signal; 
 interface=com.nokia.mce.signal; member=display_status_ind
 string &quot;on&quot;
signal sender=:1.3 -&gt; dest=(null destination) path=/com/nokia/mce/signal; 
 interface=com.nokia.mce.signal; member=tklock_mode_ind
 string &quot;unlocked&quot;
&lt;/pre&gt;

* A device going into offline mode 

&lt;pre&gt;
signal sender=:1.0 -&gt; dest=(null destination)
 path=/org/freedesktop/Hal/devices/computer_logicaldev_input_0;
 interface=org.freedesktop.Hal.Device; member=Condition
   string &quot;ButtonPressed&quot;
   string &quot;power&quot;
signal sender=:1.3 -&gt; dest=(null destination) path=/com/nokia/mce/signal;
 interface=com.nokia.mce.signal; member=sig_device_mode_ind
   string &quot;offline&quot;
signal sender=:1.26 -&gt; dest=(null destination)
 path=/com/nokia/wlancond/signal;
 interface=com.nokia.wlancond.signal; member=disconnected
   string &quot;wlan0&quot;
signal sender=:1.28 -&gt; dest=(null destination) path=/com/nokia/icd;
 interface=com.nokia.icd; member=status_changed
   string &quot;SSID&quot;
   string &quot;WLAN_INFRA&quot;
   string &quot;DISCONNECTING&quot;
   string &quot;com.nokia.icd.error.network_error&quot;
signal sender=:1.22 -&gt; dest=(null destination) path=/org/bluez/hci0;
 interface=org.bluez.Adapter; member=ModeChanged
   string &quot;off&quot;
signal sender=:1.25 -&gt; dest=(null destination)
 path=/com/nokia/btcond/signal;
 interface=com.nokia.btcond.signal; member=hci_dev_down
   string &quot;hci0&quot;
&lt;/pre&gt;

* A device going back into normal mode 

&lt;pre&gt;
signal sender=:1.0 -&gt; dest=(null destination)
 path=/org/freedesktop/Hal/devices/computer_logicaldev_input_0;
 interface=org.freedesktop.Hal.Device; member=Condition
   string &quot;ButtonPressed&quot;
   string &quot;power&quot;
signal sender=:1.3 -&gt; dest=(null destination) path=/com/nokia/mce/signal;
 interface=com.nokia.mce.signal; member=sig_device_mode_ind
   string &quot;normal&quot;
signal sender=:1.39 -&gt; dest=(null destination)
 path=/org/kernel/class/firmware/hci_h4p;
 interface=org.kernel.kevent; member=add
signal sender=:1.39 -&gt; dest=(null destination)
 path=/org/kernel/class/firmware/hci_h4p;
 interface=org.kernel.kevent; member=remove
signal sender=:1.25 -&gt; dest=(null destination)
 path=/com/nokia/btcond/signal;
 interface=com.nokia.btcond.signal; member=hci_dev_up
   string &quot;hci0&quot;
signal sender=:1.22 -&gt; dest=(null destination) path=/org/bluez/hci0;
 interface=org.bluez.Adapter; member=ModeChanged
   string &quot;connectable&quot;
signal sender=:1.22 -&gt; dest=(null destination) path=/org/bluez/hci0;
 interface=org.bluez.Adapter; member=NameChanged
   string &quot;Nokia N810&quot;
signal sender=:1.28 -&gt; dest=(null destination) path=/com/nokia/icd;
 interface=com.nokia.icd; member=status_changed
   string &quot;SSID&quot;
   string &quot;WLAN_INFRA&quot;
   string &quot;CONNECTING&quot;
   string &quot;&quot;
signal sender=:1.26 -&gt; dest=(null destination)
 path=/com/nokia/wlancond/signal;
 interface=com.nokia.wlancond.signal; member=connected
   string &quot;wlan0&quot;
   array [
      byte 0
      byte 13
      byte 157
      byte 198
      byte 120
      byte 175
   ]
   int32 536870912
signal sender=:1.100 -&gt; dest=(null destination) path=/com/nokia/eap/signal;
 interface=com.nokia.eap.signal; member=auth_status
   uint32 4
signal sender=:1.28 -&gt; dest=(null destination) path=/com/nokia/icd;
 interface=com.nokia.icd; member=proxies
   uint32 0
   string &quot;&quot;
   int32 0
   string &quot;&quot;
   int32 0
   string &quot;&quot;
   int32 0
   string &quot;&quot;
   int32 0
   string &quot;&quot;
   int32 0
   array [ ]
   string &quot;&quot;
signal sender=:1.28 -&gt; dest=(null destination) path=/com/nokia/icd;
 interface=com.nokia.icd; member=status_changed
   string &quot;SSID&quot;
   string &quot;WLAN_INFRA&quot;
   string &quot;CONNECTED&quot;
   string &quot;&quot;
&lt;/pre&gt;

It is also possible to send signals from the command line, which is useful when some feature of a device needs to be emulated inside the SDK. This (like RPC method calls) can be performed with the &lt;code&gt;dbus-send&lt;/code&gt; tool. An example of this kind of simulation was given in the [[Documentation/Maemo 5 Developer Guide/Application Development/LibOSSO library|LibOSSO section]].

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/DBus/Using GLib Wrappers For D-Bus</title>
    <id>2332</id>
    <revision>
      <id>39055</id>
      <timestamp>2010-09-22T19:51:10Z</timestamp>
      <contributor>
        <username>creamyg</username>
        <id>2974</id>
      </contributor>
      <minor/>
      <comment>/* Using GLib/D-Bus Wrapper from Client */</comment>
      <text xml:space="preserve">==Introduction to GObjects ==

To support the runtime binding of GTK+ widgets to interpreted languages, a complicated system for implementing object-oriented machinery for C was developed. Depending on the particular viewpoint, this system is either called &lt;code&gt;GObject&lt;/code&gt; or &lt;code&gt;GType&lt;/code&gt;. &lt;code&gt;GType&lt;/code&gt; is the low-level runtime type system, which is used to implement &lt;code&gt;GObject&lt;/code&gt;s, and &lt;code&gt;GObject&lt;/code&gt;s are the implementations of objects using the &lt;code&gt;GType&lt;/code&gt; framework. For a short introduction about &lt;code&gt;GObject&lt;/code&gt;s, please see the [[:wikipedia:GType|Wikipedia entry on GType]]. &lt;code&gt;GObject&lt;/code&gt;/&lt;code&gt;GType&lt;/code&gt; is part of GLib, but most of GLib is useable without the &lt;code&gt;GType&lt;/code&gt; part of the library. In fact, the &lt;code&gt;GObject&lt;/code&gt;/&lt;code&gt;GType&lt;/code&gt; functionality is separated into its own library (&lt;code&gt;libgobject&lt;/code&gt;).

The following example uses the &lt;code&gt;GType&lt;/code&gt; to implement a very simple object that is published over the D-Bus. This also means that some of the inherent complexity involved in implementing a fully-fledged &lt;code&gt;GObject&lt;/code&gt; can be forgone. For this reason, while the object is usable over the D-Bus, it may not have all the support required for using it directly as a &lt;code&gt;GObject&lt;/code&gt; (full dynamic type registration and properties are missing).

The implementation is a simple non-inheriting stand-alone class, implementing an interface to access and modify two private members: &lt;code&gt;value1&lt;/code&gt; and &lt;code&gt;value2&lt;/code&gt;, the first of which is an 32-bit signed integer, and the second a &lt;code&gt;gdouble&lt;/code&gt;.

The per-class constructor and the per-object constructor must be implemented. Both of these are quite short for the first version of the implementation.

== D-Bus Interface Definition Using XML ==

Because the primary objective here is to make the object available over D-Bus, the example starts by covering one of the easiest way of achieving this: the dbus-bindings-tool. The tool generates a lot of the bindings code for both the client and server side. As input the uses an XML file describing the interface for the service that is being implemented.

The first step is to describe one method in XML. Each method is described with a separate method element, whose name attribute is the name of the method to be generated (this name is copied into the generated stub code automatically by the tool). The first method is &lt;code&gt;setvalue1&lt;/code&gt;, which gets one argument, &lt;code&gt;new_value&lt;/code&gt;, which is an 32-bit signed integer: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/value-dbus-interface.xml glib-dbus-sync/value-dbus-interface.xml]

&lt;source lang=&quot;xml&quot;&gt;
&lt;!-- setvalue1(int newValue): sets value1 --&gt;
&lt;method name=&quot;setvalue1&quot;&gt;
	&lt;arg type=&quot;i&quot; name=&quot;new_value&quot; direction=&quot;in&quot;/&gt;
&lt;/method&gt;
&lt;/source&gt;

Define each argument explicitly with the arg element. The type attribute is required because it defines the data type for the argument. Arguments are sometimes called parameters when they are used with D-Bus methods. Each argument needs to specify the &quot;direction&quot; of the argument. Parameters for method calls are &quot;going into&quot; the service, hence the correct content for the direction attribute is in. Return values from method calls are &quot;coming out&quot; of the service. Hence, their direction is out. If a method call does not return any value (returns &lt;code&gt;void&lt;/code&gt;), no argument with the direction out needs to be specified.

D-Bus by itself does not limit the number of return arguments. C language supports only one return value from a function, but a lot of the higher level languages do not have this restriction.

The following argument types are supported for D-Bus methods (with respective closest types in GLib):

* &lt;code&gt;b&lt;/code&gt;: boolean (&lt;code&gt;gboolean&lt;/code&gt;)
* &lt;code&gt;y&lt;/code&gt;: 8-bit unsigned integer (&lt;code&gt;guint8&lt;/code&gt;)
* &lt;code&gt;q&lt;/code&gt;/&lt;code&gt;n&lt;/code&gt;: 16-bit unsigned/signed integer (&lt;code&gt;guint16&lt;/code&gt;/&lt;code&gt;gint16&lt;/code&gt;)
* &lt;code&gt;u&lt;/code&gt;/&lt;code&gt;i&lt;/code&gt;: 32-bit unsigned/signed integer (&lt;code&gt;guint32&lt;/code&gt;/&lt;code&gt;gint32&lt;/code&gt;)
* &lt;code&gt;t&lt;/code&gt;/&lt;code&gt;x&lt;/code&gt;: 64-bit unsigned/signed integer (&lt;code&gt;guint64&lt;/code&gt;/&lt;code&gt;gint64&lt;/code&gt;)
* &lt;code&gt;d&lt;/code&gt;: IEEE 754 double precision floating point number (&lt;code&gt;gdouble&lt;/code&gt;)
* &lt;code&gt;s&lt;/code&gt;: UTF-8 encoded text string with &lt;code&gt;NULL&lt;/code&gt; termination (only one &lt;code&gt;NULL&lt;/code&gt; allowed) (&lt;code&gt;gchar*&lt;/code&gt; with additional restrictions)
* &lt;code&gt;a&lt;/code&gt;: Array of the following type specification (case-dependent)
* &lt;code&gt;o&lt;/code&gt;/&lt;code&gt;g&lt;/code&gt;/&lt;code&gt;r&lt;/code&gt;/&lt;code&gt;(/)&lt;/code&gt;/&lt;code&gt;v&lt;/code&gt;/&lt;code&gt;e&lt;/code&gt;//: Complex types, please see the [http://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-signatures official D-Bus documentation on type signatures].

From the above list, it can be seen that setvalue1 accepts one 32-bit signed integer argument (&lt;code&gt;new_value&lt;/code&gt;). The name of the argument affects the generated stub code prototypes (not the implementation), but is quite useful for documentation, and also for D-Bus introspection.

The next step is the interface specification of another method: &lt;code&gt;getvalue1&lt;/code&gt;, which returns the current integer value of the object. It has no method call parameters (no arguments with direction=&quot;in&quot;), and only returns one 32-bit signed integer: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/value-dbus-interface.xml glib-dbus-sync/value-dbus-interface.xml]

&lt;source lang=&quot;xml&quot;&gt;
    &lt;!-- getvalue1(): returns the first value (int) --&gt;
    &lt;method name=&quot;getvalue1&quot;&gt;
      &lt;arg type=&quot;i&quot; name=&quot;cur_value&quot; direction=&quot;out&quot;/&gt;
    &lt;/method&gt;
&lt;/source&gt;

Naming of the return arguments is also supported in D-Bus (as above). This does not influence the generated stub code, but serves as additional documentation.

Bind the methods to a specific (D-Bus) interface by placing the method elements within an interface element. The interface name attribute is optional but recommended, otherwise the interface is unnamed and provides less useful information on introspection.

Multiple interfaces can be implemented in the same object, and if this is the case, the multiple interface elements are listed within the node element. The node element is the &quot;top-level&quot; element. In this case, only one explicit interface is implemented (the binding tools add the introspection interfaces automatically, so specifying them is not necessary in the XML). And so, the result is the minimum required interface XML file: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/value-dbus-interface.xml glib-dbus-sync/value-dbus-interface.xml]

&lt;source lang=&quot;xml&quot;&gt;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
&lt;node&gt;
  &lt;interface name=&quot;org.maemo.Value&quot;&gt;
    &lt;!-- getvalue1(): returns the first value (int) --&gt;
    &lt;method name=&quot;getvalue1&quot;&gt;
      &lt;arg type=&quot;i&quot; name=&quot;cur_value&quot; direction=&quot;out&quot;/&gt;
    &lt;/method&gt;
    &lt;!-- setvalue1(int newValue): sets value1 --&gt;
    &lt;method name=&quot;setvalue1&quot;&gt;
      &lt;arg type=&quot;i&quot; name=&quot;new_value&quot; direction=&quot;in&quot;/&gt;
    &lt;/method&gt;
  &lt;/interface&gt;
&lt;/node&gt;
&lt;/source&gt;

Extend the minimal interface specification by adding the correct reference to the proper DTD. This allows validation tools to work automatically with the XML file. Methods are also added to manipulate the second value. The full interface file now contains comments, describing the purpose of the interface and the methods. This is highly recommended, if publishing the interface is planned at some point, as the bare XML does not carry semantic information. [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/value-dbus-interface.xml glib-dbus-sync/value-dbus-interface.xml]

&lt;source lang=&quot;xml&quot;&gt;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
&lt;!-- This Maemo code example is licensed under a MIT-style license,
     that can be found in the file called &quot;License&quot; in the same
     directory as this file.
     Copyright (c) 2007-2009 Nokia Corporation. All rights reserved. --&gt;
&lt;!-- If you keep the following DOCTYPE tag in your interface
     specification, xmllint can fetch the DTD over the Internet
     for validation automatically. --&gt;
&lt;!DOCTYPE node PUBLIC
	  &quot;-//freedesktop//DTD D-Bus Object Introspection 1.0//EN&quot;
	  &quot;http://standards.freedesktop.org/dbus/1.0/introspect.dtd&quot;&gt;
&lt;!-- This file defines the D-Bus interface for a simple object, that
     holds a simple state consisting of two values (one a 32-bit
     integer, the other a double).
     
     The interface name is &quot;org.maemo.Value&quot;.
     One known reference implementation is provided for it by the
     &quot;/GlobalValue&quot; object found via a well-known name of
     &quot;org.maemo.Platdev_ex&quot;. --&gt;
&lt;node&gt;
	&lt;interface name=&quot;org.maemo.Value&quot;&gt;
		&lt;!-- Method definitions --&gt;
		&lt;!-- getvalue1(): returns the first value (int) --&gt;
		&lt;method name=&quot;getvalue1&quot;&gt;
			&lt;!-- NOTE Naming arguments is not mandatory, but is recommended
			     so that D-Bus introspection tools are more useful.
			     Otherwise the arguments are automatically named
			     &quot;arg0&quot;, &quot;arg1&quot; and so on. --&gt;
			&lt;arg type=&quot;i&quot; name=&quot;cur_value&quot; direction=&quot;out&quot;/&gt;
		&lt;/method&gt;
		&lt;!-- getvalue2(): returns the second value (double) --&gt;
		&lt;method name=&quot;getvalue2&quot;&gt;
			&lt;arg type=&quot;d&quot; name=&quot;cur_value&quot; direction=&quot;out&quot;/&gt;
		&lt;/method&gt;
		&lt;!-- setvalue1(int newValue): sets value1 --&gt;
		&lt;method name=&quot;setvalue1&quot;&gt;
			&lt;arg type=&quot;i&quot; name=&quot;new_value&quot; direction=&quot;in&quot;/&gt;
		&lt;/method&gt;
		&lt;!-- setvalue2(double newValue): sets value2 --&gt;
		&lt;method name=&quot;setvalue2&quot;&gt;
			&lt;arg type=&quot;d&quot; name=&quot;new_value&quot; direction=&quot;in&quot;/&gt;
		&lt;/method&gt;
	&lt;/interface&gt;
&lt;/node&gt;
&lt;/source&gt;

When dealing with automatic code generation, it is quite useful to also automate testing of the &quot;source files&quot; (in this case, XML). One important validation technique for XML is verifying for well-formedness (all XML files need to satisfy the rules in XML spec 1.0), another is validating the structure of XML (that elements are nested correctly, that only correct elements are present and that the element attributes and data are legal). Structural validation rules are described by a DTD (Document Type Definition) document for the XML format that the file is supposed to adhere to. The DTD is specified in the XML, within the &lt;code&gt;DOCTYPE&lt;/code&gt; processing directive.

This is still not perfect, because DTD validation can only check for syntax and structure, but not for meaning or semantics.

The next step is to add a target called &lt;code&gt;checkxml&lt;/code&gt; to the &lt;code&gt;Makefile&lt;/code&gt;, so that it can be run whenever the validity of the interface XML is to be checked. [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/Makefile glib-dbus-sync/Makefile]

&lt;source lang=&quot;make&quot;&gt;
# One extra target (which requires xmllint, from package libxml2-utils)
# is available to verify the well-formedness and the structure of the
# interface definition xml file.
#
# Use the 'checkxml' target to run the interface XML through xmllint
# verification. You need to be connected to the Internet in order
# for xmllint to retrieve the DTD from fd.o (unless you setup local
# catalogs, which are not covered here).
# ... Listing cut for brevity ...
# Interface XML name (used in multiple targets)
interface_xml := value-dbus-interface.xml
# ... Listing cut for brevity ...
# Special target to run DTD validation on the interface XML. Not run
# automatically (since xmllint is not always available and also needs
# Internet connectivity).
checkxml: $(interface_xml)
        @xmllint -valid -noout $&lt;
        @echo $&lt; checks out ok
&lt;/source&gt;

&lt;pre&gt;
[sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; make checkxml
value-dbus-interface.xml checks out ok
&lt;/pre&gt;

Just to demonstrate what kind of error messages to expect when there are problems in the XML, the valid interface specification is modified slightly by adding one invalid element (&lt;code&gt;invalidElement&lt;/code&gt;), and by removing one starting tag (method).

&lt;pre&gt;
[sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; make checkxml
value-dbus-interface.xml:36: element invalidElement: validity error :
  No declaration for element invalidElement
    &lt;/invalidElement&gt;
              ^
value-dbus-interface.xml:53: parser error :
  Opening and ending tag mismatch: method line 39 and interface
  &lt;/interface&gt;
              ^
value-dbus-interface.xml:54: parser error :
  Opening and ending tag mismatch: interface line 22 and node
&lt;/node&gt;
       ^
value-dbus-interface.xml:55: parser error :
  Premature end of data in tag node line 21

^
make: *** [checkxml] Error 1
&lt;/pre&gt;

The first error (validity error) is detected, because the file does not adhere to the DTD. The other errors (parser errors) are detected, because the file is no longer a well-formed XML document.

If the makefile targets depend on &lt;code&gt;checkxml&lt;/code&gt;, the validation can be integrated into the process of the build. However, it is not always the best solution.

==Generating Automatic Stub Code ==

The following step is to generate the &quot;glue&quot; code that implements the mapping from GLib into D-Bus. The generated code is used later on, but it is useful to see at this point what the &lt;code&gt;dbus-binding-tool&lt;/code&gt; program generates.

Expand the &lt;code&gt;Makefile&lt;/code&gt; to invoke the tool whenever the interface XML changes and store the resulting glue code separately for both the client and server. [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/Makefile glib-dbus-sync/Makefile]

&lt;source lang=&quot;make&quot;&gt;
# Define a list of generated files so that they can be cleaned as well
cleanfiles := value-client-stub.h \
              value-server-stub.h

# ... Listing cut for brevity ...

# If the interface XML changes, the respective stub interfaces are
# automatically regenerated. Normally this also means that your
# builds fail after this because you are missing implementation
# code.
value-server-stub.h: $(interface_xml)
        dbus-binding-tool --prefix=value_object --mode=glib-server \
          $&lt; &gt; $@

value-client-stub.h: $(interface_xml)
        dbus-binding-tool --prefix=value_object --mode=glib-client \
          $&lt; &gt; $@

# ... Listing cut for brevity ...

clean:
        $(RM) $(targets) $(cleanfiles) *.o
&lt;/source&gt;

Pass two parameters for the &lt;code&gt;dbus-binding-tool&lt;/code&gt; program. Use the &lt;code&gt;--prefix&lt;/code&gt; parameter to tell which text is prefixed to all generated structure and function names. This helps to avoid namespace collisions when pulling the generated glue files back into the programs. The &lt;code&gt;value_object&lt;/code&gt; is used because it seems like a logical prefix for the project. Use a prefix that is not used in the code (even in the object implementation in server). This way, there is no risk of reusing the same names that are generated with the tool.

The second parameter selects what kind of output the tool generates. At the moment, the tool only supports generating GLib/D-Bus bindings, but this might change in the future. Furthermore, select which &quot;side&quot; of the D-Bus the bindings are generated for. The -client side is for code that wishes to use GLib to access the Value object implementation over D-Bus. The -server side is respectively for the implementation of the Value object.

Running the tool results in the following two header files:

&lt;pre&gt;
[sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; make value-server-stub.h value-client-stub.h
dbus-binding-tool --prefix=value_object --mode=glib-server \
  value-dbus-interface.xml &gt; value-server-stub.h
dbus-binding-tool --prefix=value_object --mode=glib-client \
  value-dbus-interface.xml &gt; value-client-stub.h
[sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; ls -la value*stub.h
-rw-rw-r-- 1 user user  5184 Nov 21 14:02 value-client-stub.h
-rw-rw-r-- 1 user user 10603 Nov 21 14:02 value-server-stub.h
&lt;/pre&gt;

Check what the tool produced, starting with the server stub file: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/value-server-stub.h glib-dbus-sync/value-server-stub.h]

&lt;source lang=&quot;c&quot;&gt;
/* Generated by dbus-binding-tool; do not edit! */

  /*... Listing cut for brevity ...*/

#include &lt;dbus/dbus-glib.h&gt;
static const DBusGMethodInfo dbus_glib_value_object_methods[] = {
  { (GCallback) value_object_getvalue1,
    dbus_glib_marshal_value_object_BOOLEAN__POINTER_POINTER, 0 },
  { (GCallback) value_object_getvalue2,
    dbus_glib_marshal_value_object_BOOLEAN__POINTER_POINTER, 47 },
  { (GCallback) value_object_setvalue1,
    dbus_glib_marshal_value_object_BOOLEAN__INT_POINTER, 94 },
  { (GCallback) value_object_setvalue2,
    dbus_glib_marshal_value_object_BOOLEAN__DOUBLE_POINTER, 137 },
};

const DBusGObjectInfo dbus_glib_value_object_object_info = {
  0,
  dbus_glib_value_object_methods,
  4,
&quot;org.maemo.Value\0getvalue1\0S\0cur_value\0O\0F\0N\0i\0\0&quot;
&quot;org.maemo.Value\0getvalue2\0S\0cur_value\0O\0F\0N\0d\0\0&quot;
&quot;org.maemo.Value\0setvalue1\0S\0new_value\0I\0i\0\0&quot;
&quot;org.maemo.Value\0setvalue2\0S\0new_value\0I\0d\0\0\0&quot;,
&quot;\0&quot;,
&quot;\0&quot;
};
&lt;/source&gt;

The interest here lies in the method table, mainly because it lists the names of the functions that must be implemented: &lt;code&gt;value_object_getvalue1&lt;/code&gt;, &lt;code&gt;0_object_getvalue2&lt;/code&gt;, &lt;code&gt;value_object_setvalue1&lt;/code&gt; and &lt;code&gt;value_object_setvalue2&lt;/code&gt;. Each entry in the table consists of a function address, and the function to use to marshal data from/to GLib/D-Bus (the functions that start with &lt;code&gt;dbus_glib_marshal_*&lt;/code&gt;). The marshaling functions are defined in the same file, but were omitted from the listing above.

Marshaling in its most generic form means the conversion of parameters or arguments from one format to another, to make two different parameter passing conventions compatible. It is a common feature found in almost all RPC mechanisms. Because GLib has its own type system and a D-Bus of its own, it is very tedious to write the conversion code manually. This is where the binding generation tool really helps.

The other interesting feature of the above listing is the &lt;code&gt;_object_info&lt;/code&gt; structure. The structure is passed to the D-Bus daemon when the object is ready to be published on the bus (so that clients may invoke methods on it). The very long string (that contains binary zeros) is the compact format of the interface specification. Similarities can be seen between the names in the string and the names of the interface, methods and arguments that were declared in the XML. The structure is also an important part of the D-Bus introspection mechanism.

As the snippet says at the very first line, do not edit it manually. This holds true while using the XML file as the source of an interface. It is also possible to use the XML only once, when starting the project, and then just start copy-pasting the generated glue code around, while discarding the XML file and &lt;code&gt;dbus-binding-tool&lt;/code&gt;. Needless to say, this makes maintenance of the interface much more difficult and is not really recommended. The generated stub code is not edited in this material.

The example continues next with the server implementation for the functions that are called via the method table.

== Creating Simple GObject for D-Bus ==

The starting point here is with the per-instance and per-class state structures for the object. The per-class structure contains only the bare minimum contents, which are required from all classes in &lt;code&gt;GObject&lt;/code&gt;. The per-instance structure contains the required &quot;parent object&quot; state (&lt;code&gt;GObject&lt;/code&gt;), but also includes the two internal values (&lt;code&gt;value1&lt;/code&gt; and &lt;code&gt;value2&lt;/code&gt;), with which the rest of this example is concerned: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/server.c glib-dbus-sync/server.c]

&lt;source lang=&quot;c&quot;&gt;
/* This defines the per-instance state.
   Each GObject must start with the 'parent' definition so that common
   operations that all GObjects support can be called on it. */
typedef struct {
  /* The parent class object state. */
  GObject parent;
  /* Our first per-object state variable. */
  gint value1;
  /* Our second per-object state variable. */
  gdouble value2;
} ValueObject;
/* Per class state.
   For the first Value implementation we only have the bare minimum,
   that is, the common implementation for any GObject class. */
typedef struct {
  /* The parent class state. */
  GObjectClass parent;
} ValueObjectClass;
&lt;/source&gt;

The convenience macros are defined in a way expected for all &lt;code&gt;GType&lt;/code&gt;s. The &lt;code&gt;G_TYPE_&lt;/code&gt; macros are defined in &lt;code&gt;GType&lt;/code&gt; and include the magic by which the object implementation does not need to know much about the internal specifics of &lt;code&gt;GType&lt;/code&gt;. The &lt;code&gt;GType&lt;/code&gt; macros are described in the [http://maemo.org/api_refs/5.0/beta/gobject/ GObject API reference for GType].

Some of the macros are used internally in this implementation later on. [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/server.c glib-dbus-sync/server.c]

&lt;source lang=&quot;c&quot;&gt;
/* Forward declaration of the function that returns the GType of
   the Value implementation. Not used in this program because we only
   need to push this over the D-Bus. */
GType value_object_get_type(void);

/* Macro for the above. It is common to define macros using the
   naming convention (seen below) for all GType implementations,
   and that is why we are going to do that here as well. */
#define VALUE_TYPE_OBJECT (value_object_get_type())

#define VALUE_OBJECT(object) \
        (G_TYPE_CHECK_INSTANCE_CAST((object), \
         VALUE_TYPE_OBJECT, ValueObject))
#define VALUE_OBJECT_CLASS(klass) \
        (G_TYPE_CHECK_CLASS_CAST((klass), \
         VALUE_TYPE_OBJECT, ValueObjectClass))
#define VALUE_IS_OBJECT(object) \
        (G_TYPE_CHECK_INSTANCE_TYPE((object), \
         VALUE_TYPE_OBJECT))
#define VALUE_IS_OBJECT_CLASS(klass) \
        (G_TYPE_CHECK_CLASS_TYPE((klass), \
         VALUE_TYPE_OBJECT))
#define VALUE_OBJECT_GET_CLASS(obj) \
        (G_TYPE_INSTANCE_GET_CLASS((obj), \
         VALUE_TYPE_OBJECT, ValueObjectClass))

/* Utility macro to define the value_object GType structure. */
G_DEFINE_TYPE(ValueObject, value_object, G_TYPE_OBJECT)
&lt;/source&gt;

The &lt;code&gt;dbus_g_object_type_install_info&lt;/code&gt; function takes a pointer to the structure describing the D-Bus integration (&lt;code&gt;dbus_glib_value_object_object_info&lt;/code&gt;), which is generated by &lt;code&gt;dbus-bindings-tool&lt;/code&gt;. This function creates all the necessary runtime information for the &lt;code&gt;GType&lt;/code&gt;, so the details can be left alone. It also attaches the introspection data to the &lt;code&gt;GType&lt;/code&gt;, so that D-Bus introspection may return information on the interface that the object implements.

The next functions to be implemented are the get and set functions, which allow us to inspect the interface as well. The names of the functions and their prototypes are ultimately dictated by &lt;code&gt;dbus-bindings-tool&lt;/code&gt; generated stub header files. This means that if the interface XML is sufficiently changed, the code fails to build (because the generated stubs yield different prototypes): [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/server.c glib-dbus-sync/server.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * Function that gets called when someone tries to execute &quot;setvalue1&quot;
 * over the D-Bus. (Actually the marshaling code from the stubs gets
 * executed first, but they eventually execute this function.)
 *
 * NOTE: If you change the name of this function, the generated
 *       stubs no longer find it! On the other hand, if you
 *       decide to modify the interface XML, this is one of the places
 *       that you have to modify as well.
 *       This applies to the next four functions (including this one).
 */
gboolean value_object_setvalue1(ValueObject* obj, gint valueIn,
                                                  GError** error) {
  dbg(&quot;Called (valueIn=%d)&quot;, valueIn);
  g_assert(obj != NULL);
  /* Change the value. */
  obj-&gt;value1 = valueIn;
  /* Return success to GLib/D-Bus wrappers. In this case we do not need
     to touch the supplied error pointer-pointer. */
  return TRUE;
}
/**
 * Function that gets executed on &quot;setvalue2&quot;.
 * Other than this function operating with different type input
 * parameter (and different internal value), all the comments from
 * set_value1 apply here as well.
 */
gboolean value_object_setvalue2(ValueObject* obj, gdouble valueIn,
                                                  GError** error) {
  dbg(&quot;Called (valueIn=%.3f)&quot;, valueIn);
  g_assert(obj != NULL);
  obj-&gt;value2 = valueIn;
  return TRUE;
}
/**
 * Function that gets executed on &quot;getvalue1&quot;.
 */
gboolean value_object_getvalue1(ValueObject* obj, gint* valueOut,
                                                  GError** error) {
  dbg(&quot;Called (internal value1 is %d)&quot;, obj-&gt;value1);
  g_assert(obj != NULL);
  /* Check that the target pointer is not NULL.
     Even if the only caller for this is the GLib-wrapper code,
     we cannot trust the stub generated code and should handle the
     situation. We terminate with an error in this case.
     Another option is to create a new GError, and store
     the error condition there. */
  g_assert(valueOut != NULL);
  /* Copy the current first value to caller specified memory. */
  *valueOut = obj-&gt;value1;
  /* Return success. */
  return TRUE;
}
/**
 * Function that gets executed on &quot;getvalue2&quot;.
 * (Again, similar to &quot;getvalue1&quot;).
 */
gboolean value_object_getvalue2(ValueObject* obj, gdouble* valueOut,
                                                  GError** error) {
  dbg(&quot;Called (internal value2 is %.3f)&quot;, obj-&gt;value2);
  g_assert(obj != NULL);
  g_assert(valueOut != NULL);
  *valueOut = obj-&gt;value2;
  return TRUE;
}
&lt;/source&gt;

The GLib/D-Bus wrapper logic implements all the necessary parameter conversion from D-Bus into the functions, so it is only necessary to handle the GLib corresponding types (&lt;code&gt;gint&lt;/code&gt; and &lt;code&gt;gdouble&lt;/code&gt;). The method implementations always receive an object reference to the object as their first parameter, and a pointer to a place where to store new &lt;code&gt;GError&lt;/code&gt; objects if the method decides that an error should be created. This error is then to be propagated back to the caller of the D-Bus method. This simple get/set example never sets errors, so the last parameter can be ignored here.

Do not return the values in the conventional C way (by using &lt;code&gt;return someVal&lt;/code&gt;), but instead the return values are written using the given pointers. The return value of the method is always a &lt;code&gt;gboolean&lt;/code&gt;, signifying either success or failure. If failure (&lt;code&gt;FALSE&lt;/code&gt;) is returned, create and setup a &lt;code&gt;GError&lt;/code&gt; object, and store its address to the error location.

== Publishing GType on D-Bus ==

Once the implementation is complete, an instance of the class must be published onto the D-Bus. This is done inside the main of the server example and involves performing a D-Bus method call on the bus.

To ensure that the server and the client do not have to be changed, if the object or well-known names are changed later, the server and the client are put into a common header file that is used by both: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/common-defs.h glib-dbus-sync/common-defs.h]

&lt;source lang=&quot;c&quot;&gt;
/* Well-known name for this service. */
#define VALUE_SERVICE_NAME        &quot;org.maemo.Platdev_ex&quot;
/* Object path to the provided object. */
#define VALUE_SERVICE_OBJECT_PATH &quot;/GlobalValue&quot;
/* And we are interested in using it through this interface.
   This must match the entry in the interface definition XML. */
#define VALUE_SERVICE_INTERFACE   &quot;org.maemo.Value&quot;
&lt;/source&gt;

The decision to use &lt;code&gt;/GlobalValue&lt;/code&gt; as the object path is based on clarity only. Most of the time something like &lt;code&gt;/org/maemo/Value&lt;/code&gt; is used instead.

Before using any of the &lt;code&gt;GType&lt;/code&gt; functions, the runtime system must be initialized by calling &lt;code&gt;g_type_init&lt;/code&gt;. This creates the built-in types and sets up all the machinery necessary for creating custom types. When using GTK+, the function is called automatically if GTK+ is initialized. Because this example only uses GLib, the function must be called manually.

After initializing the &lt;code&gt;GType&lt;/code&gt; system, the next step is to open a connection to the session bus, which is used for the remainder of the publishing sequence: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/ glib-dbus-sync/server.c]

&lt;source lang=&quot;c&quot;&gt;
/* Pull symbolic constants that are shared (in this example) between
   the client and the server. */
#include &quot;common-defs.h&quot;

  /*... Listing cut for brevity ...*/

int main(int argc, char** argv) {

  /*... Listing cut for brevity ...*/

  /* Initialize the GType/GObject system. */
  g_type_init();

  /*... Listing cut for brevity ...*/

  g_print(PROGNAME &quot;:main Connecting to the Session D-Bus.\n&quot;);
  bus = dbus_g_bus_get(DBUS_BUS_SESSION, &amp;error);
  if (error != NULL) {
    /* Print error and terminate. */
    handleError(&quot;Could not connect to session bus&quot;, error-&gt;message, TRUE);
  }
&lt;/source&gt;

For prospective clients to find the object on the session bus, attach the server to a well-known name by using the &lt;code&gt;RequestName&lt;/code&gt; method call on the D-Bus server (over D-Bus). To target the server, create a GLib/D-Bus proxy object first: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/server.c glib-dbus-sync/server.c]

&lt;source lang=&quot;c&quot;&gt;
  g_print(PROGNAME &quot;:main Registering the well-known name (%s)\n&quot;,
          VALUE_SERVICE_NAME);

  /* In order to register a well-known name, we need to use the
     &quot;RequestMethod&quot; of the /org/freedesktop/DBus interface. Each
     bus provides an object that implements this interface.

     In order to do the call, we need a proxy object first.
     DBUS_SERVICE_DBUS = &quot;org.freedesktop.DBus&quot;
     DBUS_PATH_DBUS = &quot;/org/freedesktop/DBus&quot;
     DBUS_INTERFACE_DBUS = &quot;org.freedesktop.DBus&quot; */
  busProxy = dbus_g_proxy_new_for_name(bus,
                                       DBUS_SERVICE_DBUS,
                                       DBUS_PATH_DBUS,
                                       DBUS_INTERFACE_DBUS);
  if (busProxy == NULL) {
    handleError(&quot;Failed to get a proxy for D-Bus&quot;,
                &quot;Unknown(dbus_g_proxy_new_for_name)&quot;, TRUE);
  }

  /* Attempt to register the well-known name.
     The RPC call requires two parameters:
     - arg0: (D-Bus STRING): name to request
     - arg1: (D-Bus UINT32): flags for registration.
       (please see &quot;org.freedesktop.DBus.RequestName&quot; in
        http://dbus.freedesktop.org/doc/dbus-specification.html)
     Returns one uint32 giving the result of the RPC call.
     We are interested in 1 (we are now the primary owner of the name)
     or 4 (we were already the owner of the name, however in this
     application it does not make much sense).

     The function returns FALSE if it sets the GError. */
  if (!dbus_g_proxy_call(busProxy,
                         /* Method name to call. */
                         &quot;RequestName&quot;,
                         /* Where to store the GError. */
                         &amp;error,
                         /* Parameter type of argument 0. Note that
                            because we are dealing with GLib/D-Bus
                            wrappers, you need to find a suitable
                            GType instead of using the &quot;native&quot; D-Bus
                            type codes. */
                         G_TYPE_STRING,
                         /* Data of argument 0. In our case, this is
                            the well-known name for our server
                            example (&quot;org.maemo.Platdev_ex&quot;). */
                         VALUE_SERVICE_NAME,
                         /* Parameter type of argument 1. */
                         G_TYPE_UINT,
                         /* Data of argument 0. This is the &quot;flags&quot;
                            argument of the &quot;RequestName&quot; method which
                            can be use to specify what the bus service
                            should do when the name already exists on
                            the bus. We go with defaults. */
                         0,
                         /* Input arguments are terminated with a
                            special GType marker. */
                         G_TYPE_INVALID,
                         /* Parameter type of return value 0.
                            For &quot;RequestName&quot; it is UINT32 so we pick
                            the GType that maps into UINT32 in the
                            wrappers. */
                         G_TYPE_UINT,
                         /* Data of return value 0. These are always
                            pointers to the locations where the
                            proxy can copy the results. */
                         &amp;result,
                         /* Terminate list of return values. */
                         G_TYPE_INVALID)) {
    handleError(&quot;D-Bus.RequestName RPC failed&quot;, error-&gt;message,
                                                TRUE);
    /* Note that the whole call failed, not &quot;just&quot; the name
       registration (we deal with that below). This means that
       something bad probably has happened and there is not much we can
       do (hence program termination). */
  }
  /* Check the result code of the registration RPC. */
  g_print(PROGNAME &quot;:main RequestName returned %d.\n&quot;, result);
  if (result != 1) {
    handleError(&quot;Failed to get the primary well-known name.&quot;,
                &quot;RequestName result != 1&quot;, TRUE);
    /* In this case we could also continue instead of terminating.
       We could retry the RPC later. Or &quot;lurk&quot; on the bus waiting for
       someone to tell us what to do. If we were publishing
       multiple services and/or interfaces, it even might make sense
       to continue with the rest anyway.

       In our simple program, we terminate. Not much left to do for
       this poor program if the clients are not able to find the
       Value object using the well-known name. */
  }
&lt;/source&gt;

The &lt;code&gt;dbus_g_proxy_call&lt;/code&gt; function is used to do synchronous method calls in GLib/D-Bus wrappers, and in this case, it is used to run the two argument &lt;code&gt;RequestName&lt;/code&gt; method call. The method returns one value (and &lt;code&gt;uint32&lt;/code&gt;), which encodes the result of the well-known name registration.

Be careful with the order and correctness of the parameters to the function call, as it is easy to get something wrong, and the C compiler cannot really check for parameter type validity here.

After the successful name registration, an instance of the &lt;code&gt;ValueObject&lt;/code&gt; is created and published on the D-Bus: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/server.c glib-dbus-sync/server.c]

&lt;source lang=&quot;c&quot;&gt;
  g_print(PROGNAME &quot;:main Creating one Value object.\n&quot;);
  /* The NULL at the end means that we have stopped listing the
     property names and their values that had been used to
     set the properties to initial values. Our simple Value
     implementation does not support GObject properties, and also
     does not inherit anything interesting from GObject directly, so
     there are no properties to set. For more examples on properties
     see the first GTK+ example programs from the maemo Application
     Development material.

     NOTE: You need to keep at least one reference to the published
           object at all times, unless you want it to disappear from
           the D-Bus (implied by API reference for
           dbus_g_connection_register_g_object(). */
  valueObj = g_object_new(VALUE_TYPE_OBJECT, NULL);
  if (valueObj == NULL) {
    handleError(&quot;Failed to create one Value instance.&quot;,
                &quot;Unknown(OOM?)&quot;, TRUE);
  }

  g_print(PROGNAME &quot;:main Registering it on the D-Bus.\n&quot;);
  /* The function does not return any status, so can not check for
     errors here. */
  dbus_g_connection_register_g_object(bus,
                                      VALUE_SERVICE_OBJECT_PATH,
                                      G_OBJECT(valueObj));

  g_print(PROGNAME &quot;:main Ready to serve requests (daemonizing).\n&quot;);

  /*... Listing cut for brevity ...*/

}
&lt;/source&gt;

After this, the main enters into the main loop, and serves client requests coming over the D-Bus, until the server is terminated. 

All callback registration is performed automatically by the GLib/D-Bus wrappers on object publication, so there is no need to worry about them.

Implementing the dependencies and rules for the server and the generated stub code gives this snippet: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/Makefile glib-dbus-sync/Makefile]

&lt;source lang=&quot;c&quot;&gt;
server: server.o
        $(CC) $^ -o $@ $(LDFLAGS)

# ... Listing cut for brevity ...

# The server and client depend on the respective implementation source
# files, but also on the common interface as well as the generated
# stub interfaces.
server.o: server.c common-defs.h value-server-stub.h
        $(CC) $(CFLAGS) -DPROGNAME=\&quot;$(basename $@)\&quot; -c $&lt; -o $@
&lt;/source&gt;

When implementing makefiles that separate compilation from linking, passing the target name (automatic variable &lt;code&gt;$@&lt;/code&gt;) directly is not possible as the &lt;code&gt;PROGNAME&lt;/code&gt;-define (because that expands into &lt;code&gt;server.o&lt;/code&gt;, and it would look slightly silly if all the messages were prefixed with the name). Instead, use a GNU make function (&lt;code&gt;basename&lt;/code&gt;) to strip any prefixes and suffixes out of the parameter. This way, the &lt;code&gt;PROGNAME&lt;/code&gt; is set to server.

The next step is to build the server and start it:

&lt;pre&gt;
 [sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; make server
dbus-binding-tool --prefix=value_object --mode=glib-server \
  value-dbus-interface.xml &gt; value-server-stub.h
cc -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include
   -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -Wall
   -DG_DISABLE_DEPRECATED -DNO_DAEMON  -DPROGNAME=\&quot;server\&quot;
   -c server.c -o server.o
cc server.o -o server -ldbus-glib-1 -ldbus-1 -lgobject-2.0 -lglib-2.0
[sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; run-standalone.sh ./server
server:main Connecting to the Session D-Bus.
server:main Registering the well-known name (org.maemo.Platdev_ex)
server:main RequestName returned 1.
server:main Creating one Value object.
server:value_object_class_init: Called
server:value_object_class_init: Binding to GLib/D-Bus
server:value_object_class_init: Done
server:value_object_init: Called
server:main Registering it on the D-Bus.
server:main Ready to serve requests (daemonizing).
server: Not daemonizing (built with NO_DAEMON-build define)
&lt;/pre&gt;

After this, use &lt;code&gt;dbus-send&lt;/code&gt; to test out the implementation details from the server. This is done in the same session (for simplicity) by first suspending the server with Ctrl+z, and then continuing running it with the &lt;code&gt;bg&lt;/code&gt; shell built-in command. This is done so that it is easier to see the reaction of the server to each dbus-send command.

The first step here is to test the &lt;code&gt;getvalue1&lt;/code&gt; and &lt;code&gt;setvalue1&lt;/code&gt; methods:

&lt;pre&gt;
[Ctrl+z]
[1]+  Stopped                 run-standalone.sh ./server
[sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; bg
[1]+ run-standalone.sh ./server &amp;
[sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; run-standalone.sh dbus-send \
 --type=method_call --print-reply --dest=org.maemo.Platdev_ex \
 /GlobalValue org.maemo.Value.getvalue1
server:value_object_getvalue1: Called (internal value1 is 0)
method return sender=:1.15 -&gt; dest=:1.20
 int32 0
[sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; run-standalone.sh dbus-send \
 --type=method_call --print-reply --dest=org.maemo.Platdev_ex \
 /GlobalValue org.maemo.Value.setvalue1 int32:5
server:value_object_setvalue1: Called (valueIn=5)
method return sender=:1.15 -&gt; dest=:1.21
[sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; run-standalone.sh dbus-send \
 --type=method_call --print-reply --dest=org.maemo.Platdev_ex \
 /GlobalValue org.maemo.Value.getvalue1
server:value_object_getvalue1: Called (internal value1 is 5)
method return sender=:1.15 -&gt; dest=:1.22
 int32 5
&lt;/pre&gt;

The next step is to test the double state variable with &lt;code&gt;getvalue2&lt;/code&gt; and &lt;code&gt;setvalue2&lt;/code&gt; methods:

&lt;pre&gt;
[sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; run-standalone.sh dbus-send \
 --type=method_call --print-reply --dest=org.maemo.Platdev_ex \
 /GlobalValue org.maemo.Value.getvalue2
server:value_object_getvalue2: Called (internal value2 is 0.000)
method return sender=:1.15 -&gt; dest=:1.23
 double 0
[sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; run-standalone.sh dbus-send \
 --type=method_call --print-reply --dest=org.maemo.Platdev_ex \
 /GlobalValue org.maemo.Value.setvalue2 double:42.0
server:value_object_setvalue2: Called (valueIn=42.000)
method return sender=:1.15 -&gt; dest=:1.24
[sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; run-standalone.sh dbus-send \
 --type=method_call --print-reply --dest=org.maemo.Platdev_ex \
 /GlobalValue org.maemo.Value.getvalue2
server:value_object_getvalue2: Called (internal value2 is 42.000)
method return sender=:1.15 -&gt; dest=:1.25
 double 42
&lt;/pre&gt;

This results in a fully functional D-Bus service implementation, although a very simple one.

The next step is to utilize the service from a client.

== Using GLib/D-Bus Wrapper from Client ==

By using the generated client stub file, the client that invokes the methods on the Value object can now be written. The D-Bus method calls can also be performed &quot;manually&quot; (either with GLib/D-Bus functions, or even by using libdbus directly, but the latter is discouraged).

The &lt;code&gt;dbus-bindings-tool&lt;/code&gt; (when run with the &lt;code&gt;--mode=glib-client&lt;/code&gt; parameter) generates functions for each of the interface methods, and the functions handle data marshaling operations internally.

Two generated stub functions are presented below, and they are used shortly: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/value-client-stub.h glib-dbus-sync/value-client-stub.h]

&lt;source lang=&quot;c&quot;&gt;
/* Generated by dbus-binding-tool; do not edit! */
  /*... Listing cut for brevity ...*/
static
#ifdef G_HAVE_INLINE
inline
#endif
gboolean
org_maemo_Value_getvalue1 (DBusGProxy *proxy, gint* OUT_cur_value,
                                              GError **error)
{
  return dbus_g_proxy_call (proxy, &quot;getvalue1&quot;, error, G_TYPE_INVALID,
                            G_TYPE_INT, OUT_cur_value, G_TYPE_INVALID);
}
  /*... Listing cut for brevity ...*/
static
#ifdef G_HAVE_INLINE
inline
#endif
gboolean
org_maemo_Value_setvalue1 (DBusGProxy *proxy, const gint IN_new_value,
                                              GError **error)
{
  return dbus_g_proxy_call (proxy, &quot;setvalue1&quot;, error, G_TYPE_INT,
                            IN_new_value, G_TYPE_INVALID,
                            G_TYPE_INVALID);
}
&lt;/source&gt;

The two functions presented above are both ''blocking'', which means that they wait for the result to arrive over the D-Bus, and only then return to the caller. The generated stub code also includes ''asynchronous'' functions (their names end with &lt;code&gt;_async&lt;/code&gt;).

For now, it is important to notice how the prototypes of the functions are named, and what are the parameters that they expect to be passed to them.

The &lt;code&gt;org_maemo_Value&lt;/code&gt; prefix is taken from the interface XML file, from the name attribute of the interface element. All dots are converted into underscores (because C reserves the dot character for other uses), but otherwise the name is preserved (barring dashes in the name).

The rest of the function name is the method name for each method defined in the interface XML file.

The first parameter for all the generated stub functions is always a pointer to a &lt;code&gt;DBusProxy&lt;/code&gt; object, which is necessary to use with the GLib/D-Bus wrapper functions. After the proxy, a list of method parameters is passed. The binding tool prefixes the parameter names with either &lt;code&gt;IN_&lt;/code&gt; or &lt;code&gt;OUT_&lt;/code&gt; depending on the &quot;direction&quot; of the parameter. The rest of the parameter name is taken from the name attributed of the arg element for the method, or if not given, is automatically generated as arg0, arg1, etc. Input parameters are passed as values (unless they are complex or strings, in which case they are passed as pointers). Output parameters are always passed as pointers.

The functions always returns a &lt;code&gt;gboolean&lt;/code&gt;, indicating failure or success, and if they fail, they also create and set the error pointer to an &lt;code&gt;GError&lt;/code&gt; object which can then be checked for the reason for the error (unless the caller passed a &lt;code&gt;NULL&lt;/code&gt; pointer for &lt;code&gt;error&lt;/code&gt;, in which case the error object is not created). [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/client.c glib-dbus-sync/client.c]

&lt;source lang=&quot;c&quot;&gt;
#include &lt;glib.h&gt;
#include &lt;dbus/dbus-glib.h&gt;
#include &lt;stdlib.h&gt; /* exit, EXIT_FAILURE */
#include &lt;string.h&gt; /* strcmp */
/* Pull the common symbolic defines. */
#include &quot;common-defs.h&quot;
/* Pull in the client stubs that were generated with
   dbus-binding-tool */
#include &quot;value-client-stub.h&quot;
&lt;/source&gt;

This allows the client code to use the stub code directly as follows: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/client.c glib-dbus-sync/client.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * This function is called repeatedly from within the mainloop
 * timer launch code.
 *
 * The function starts with two statically initialized variables
 * (int and double) which are incremented after each time this
 * function runs and use the setvalue* remote methods to set the
 * new values. If the set methods fail, program is not aborted, but an
 * message is issued to the user describing the error.
 */
static gboolean timerCallback(DBusGProxy* remoteobj) {

  /* Local values that we'll start updating to the remote object. */
  static gint localValue1 = -80;
  static gdouble localValue2 = -120.0;

  GError* error = NULL;

  /* Set the first value. */
  org_maemo_Value_setvalue1(remoteobj, localValue1, &amp;error);
  if (error != NULL) {
    handleError(&quot;Failed to set value1&quot;, error-&gt;message, FALSE);
  } else {
    g_print(PROGNAME &quot;:timerCallback Set value1 to %d\n&quot;, localValue1);
  }

  /* If there was an error with the first, release the error, and
     don't attempt the second time. Also, don't add to the local
     values. We assume that errors from the first set are caused by
     server going off the D-Bus, but are hopeful that it comes
     back, and hence keep trying (returning TRUE). */
  if (error != NULL) {
    g_clear_error(&amp;error);
    return TRUE;
  }

  /* Now try to set the second value as well. */
  org_maemo_Value_setvalue2(remoteobj, localValue2, &amp;error);
  if (error != NULL) {
    handleError(&quot;Failed to set value2&quot;, error-&gt;message, FALSE);
    g_clear_error(&amp;error); /* Or g_error_free in this case. */
  } else {
    g_print(PROGNAME &quot;:timerCallback Set value2 to %.3lf\n&quot;, localValue2);
  }

  /* Step the local values forward. */
  localValue1 += 10;
  localValue2 += 10.0;

  /* Tell the timer launcher that we want to remain on the timer
     call list in the future as well. Returning FALSE here stops
     the launch of this timer callback. */
  return TRUE;
}
&lt;/source&gt;

What is left is connecting to the correct D-Bus, creating a &lt;code&gt;GProxy&lt;/code&gt; object which are done in the test program: [http://vcs.maemo.org/svn/maemoexamples/trunk/glib-dbus-sync/client.c glib-dbus-sync/client.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * The test program itself.
 *
 * 1) Setup GType/GSignal
 * 2) Create GMainLoop object
 * 3) Connect to the Session D-Bus
 * 4) Create a proxy GObject for the remote Value object
 * 5) Start a timer that launches timerCallback once per second.
 * 6) Run main-loop (forever)
 */
int main(int argc, char** argv) {
  /* The D-Bus connection object. Provided by GLib/D-Bus wrappers. */
  DBusGConnection* bus;
  /* This represents the Value object locally (acting as a proxy
     for all method calls and signal delivery. */
  DBusGProxy* remoteValue;
  /* This refers to the GMainLoop object */
  GMainLoop* mainloop;
  GError* error = NULL;

  /* Initialize the GType/GObject system. */
  g_type_init();

  /* Create a new GMainLoop with default context (NULL) and initial
     state of &quot;not running&quot; (FALSE). */
  mainloop = g_main_loop_new(NULL, FALSE);
  /* Failure to create the main loop is fatal (for us). */
  if (mainloop == NULL) {
    handleError(&quot;Failed to create the mainloop&quot;, &quot;Unknown (OOM?)&quot;,
                TRUE);
  }

  g_print(PROGNAME &quot;:main Connecting to Session D-Bus.\n&quot;);
  bus = dbus_g_bus_get(DBUS_BUS_SESSION, &amp;error);
  if (error != NULL) {
    handleError(&quot;Couldn't connect to the Session bus&quot;, error-&gt;message,
                TRUE);
    /* Normally you'd have to also g_error_free() the error object
       but because the program terminates within handleError,
       it is not necessary here. */
  }

  g_print(PROGNAME &quot;:main Creating a GLib proxy object for Value.\n&quot;);

  /* Create the proxy object that we are using to access the object
     on the server. If you use dbus_g_proxy_for_name_owner(),
     you are also notified when the server that implements the
     object is removed (or rather, the interface is removed). Because
     we do not care who actually implements the interface, we'll use the
     more common function. See the API documentation at
     http://maemo.org/api_refs/4.0/dbus/ for more details. */
  remoteValue =
    dbus_g_proxy_new_for_name(bus,
                              VALUE_SERVICE_NAME, /* name */
                              VALUE_SERVICE_OBJECT_PATH, /* obj path */
                              VALUE_SERVICE_INTERFACE /* interface */);
  if (remoteValue == NULL) {
    handleError(&quot;Couldn't create the proxy object&quot;,
                &quot;Unknown(dbus_g_proxy_new_for_name)&quot;, TRUE);
  }

  g_print(PROGNAME &quot;:main Starting main loop (first timer in 1s).\n&quot;);

  /* Register a timer callback that does RPC sets on the values.
     The userdata pointer is used to pass the proxy object to the
     callback so that it can launch modifications to the object. */
  g_timeout_add(1000, (GSourceFunc)timerCallback, remoteValue);

  /* Run the program. */
  g_main_loop_run(mainloop);
  /* Because the main loop is not stopped (by this code), we should not
     ever get here. The program might abort() for other reasons. */

  /* If it does, return failure as exit code. */
  return EXIT_FAILURE;
}
&lt;/source&gt;

After building the client, start and execute it in the same terminal session where the server is still running:

&lt;pre&gt;
 [sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; make client
dbus-binding-tool --prefix=value_object --mode=glib-client \
 value-dbus-interface.xml &gt; value-client-stub.h
cc -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include \
 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -Wall \
 -DG_DISABLE_DEPRECATED -DNO_DAEMON -DPROGNAME=\&quot;client\&quot; \
 -c client.c -o client.o
cc client.o -o client -ldbus-glib-1 -ldbus-1 -lgobject-2.0 -lglib-2.0
[sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; run-standalone.sh ./client
client:main Connecting to Session D-Bus.
client:main Creating a GLib proxy object for Value.
client:main Starting main loop (first timer in 1s).
server:value_object_setvalue1: Called (valueIn=-80)
client:timerCallback Set value1 to -80
server:value_object_setvalue2: Called (valueIn=-120.000)
client:timerCallback Set value2 to -120.000
server:value_object_setvalue1: Called (valueIn=-70)
client:timerCallback Set value1 to -70
server:value_object_setvalue2: Called (valueIn=-110.000)
client:timerCallback Set value2 to -110.000
server:value_object_setvalue1: Called (valueIn=-60)
client:timerCallback Set value1 to -60
...
[Ctrl+c]
[sbox-DIABLO_X86: ~/glib-dbus-sync] &gt; fg
run-standalone.sh ./server
[Ctrl+c]
&lt;/pre&gt;

Because the client normally runs forever, it is now terminated and the server is moved to the foreground, so that it can also be terminated. This concludes the first GLib/D-Bus example, but for more information about the GLib D-Bus wrappers, please consult the [http://maemo.org/api_refs/5.0/5.0-final/dbus-glib/ D-Bus GLib Bindings Documentation].

== D-Bus Introspection ==

D-Bus supports a mechanism by which programs can interrogate the bus for existing well-known names and get the interfaces implemented by the objects available behind the well-known names. This mechanism is called ''introspection'' in D-Bus terminology.

The main goal of supporting introspection in D-Bus is allowing dynamic bindings to be made with high-level programming languages. This way, the language wrappers for D-Bus can be more intelligent automatically (assuming they utilize the introspection interface). The GLib-wrappers do not use the introspection interface.

Introspection is achieved with three D-Bus methods: &lt;code&gt;ListNames&lt;/code&gt;, &lt;code&gt;GetNameOwner&lt;/code&gt; and &lt;code&gt;Introspect&lt;/code&gt;. The destination object must support the introspection interface in order to provide this information. If the &lt;code&gt;dbus-bindings-tool&lt;/code&gt; is used, and the &lt;code&gt;GObject&lt;/code&gt; is registered correctly, the service automatically supports introspection.

For the time being, D-Bus does not come with introspection utilities, but some are available from other sources. One simple program is the &quot;DBus Inspector&quot; that is written in Python, and uses the Python D-Bus bindings and GTK+. If you are planning to write your own tool, you must be prepared to parse XML data, because that is the format of results that the Introspect method returns.

[[Image:dbus-inspector-on-globalvalue-with-names.png|Image dbus-inspector-on-globalvalue-with-names]]Using DBUS Inspector on &lt;code&gt;GlobalValue&lt;/code&gt; on a desktop system. Note that the version of &lt;code&gt;GlobalValue&lt;/code&gt; used here also implements signals.

Introspection can also be useful when trying to find out what are the different interfaces and methods available for use on a system. However, bear in mind that not all D-Bus services actually implement the introspection interface. Their well-known names can be received, but their interface descriptions come up empty when using Introspect.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Desktop Widget UI Guidelines</title>
    <id>4432</id>
    <revision>
      <id>38519</id>
      <timestamp>2010-09-13T11:46:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Desktop Widget UI Guidelines]] moved to [[Legacy Maemo 5 Documentation/Desktop Widget UI Guidelines]]: legacy documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Desktop Widget UI Guidelines]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Development Environment</title>
    <id>2127</id>
    <revision>
      <id>36366</id>
      <timestamp>2010-06-29T09:05:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>direct link to PC connectivity tutorial</comment>
      <text xml:space="preserve">*[[{{PAGENAME}}/Maemo_SDK| Software Development Kit]]
*[[{{PAGENAME}}/Maemo_Programming_Environments|Programming Environments]]
*[[Documentation/Maemo PC Connectivity Tutorial|PC Connectivity]]
*[[{{PAGENAME}}/Maemo_Flasher-3.5|Flasher-3.5]]
*[[{{PAGENAME}}/Maemo_SDK_Virtual_Images|SDK Virtual Images]]
*[[Eclipse integration]]

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Eclipse Integration</title>
    <id>2311</id>
    <revision>
      <id>36341</id>
      <timestamp>2010-06-29T03:41:58Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Eclipse integration]]</comment>
      <text xml:space="preserve">#REDIRECT [[Eclipse integration]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5</title>
    <id>2309</id>
    <revision>
      <id>48844</id>
      <timestamp>2012-07-28T15:14:25Z</timestamp>
      <contributor>
        <username>stefanl</username>
        <id>3806</id>
      </contributor>
      <comment>/* Tips &amp; troubleshooting */</comment>
      <text xml:space="preserve">The  Maemo Flasher-3.5 tool is used to flash data to the Maemo device internal 256 MB of NAND, which is where the bootloader, kernel, and rootfs (all of which make up the operating system) are stored. For N900 it is also used to format and flash the eMMC internal storage card (32GB). Flasher-3.5 can be used to upgrade to a new firmware, wipe the Maemo device and start from scratch, flash certain specific components, or change a number of hardware flags. It also can load and start a kernel and auxiliary system to RAM, e.g for recovery purposes, see [http://wiki.meego.com/ARM/N900/Using_Rescue_Initrd]

Maemo Flasher-3.5 Tools can be downloaded from the [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Maemo Development Environment Downloads] page.

== Release details ==

* Version: 2.5.2.2 - Final
* Date: October 23, 2009
* Hardware supported:
** Nokia [[Nokia N800|N800]], [[Nokia N810|N810]] and [[Nokia N810WME|N810 WiMAX]] with [[Open development/Maemo roadmap/Diablo|Diablo]] 4.1.x
** Nokia [[Nokia N900|N900]] with [[Open development/Maemo roadmap/Fremantle|Fremantle]] 5.x

=== Supported operating systems ===

Maemo Flasher-3.5 tool supports the following 32-bit host PC operating systems:

* Debian-based Linux (with Debian installation package)
* Other Linux (with tar installation package)
* Windows XP with SP3, Vista with SP2 and Windows 7 (with Windows installation package)
* Mac OS X 10.5 Leopard and 10.6 Snow Leopard (with Mac OS X installation package)
** Supports x86/32-bit and PPC/32-bit architectures

Linux and Windows versions of Maemo Flasher-3.5 tool support x86/32-bit host PC architectures. Maemo Flasher-3.5 tool does not support any 64-bit operating systems, see the [[##Tips_.26_troubleshooting|troubleshooting]] section for more information.

=== Files included in the delivery packages ===

;flasher-3.5
: flasher binary file (&lt;code&gt;flasher-3.5.exe&lt;/code&gt; for Windows)
;libusb
: USB library (only for Windows and Mac OS X installations)
;COPYING_LGPL.txt
: license text for libusb (only for Windows and Mac OS X installations)
;License_Agreement.txt
: license and disclaimer text for flasher binary
;Help.txt
: short command line help 
;Readme_Maemo_Flasher-3.5.txt
: Flasher-3.5 readme file

== Downloads and documentation ==

Flasher-3.5 download: [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Maemo Development Environment Downloads]

Flasher-3.5 documentation: This document and documentation are delivered as part of installation packages (readme and help files)

Sources for libusb library (LGPL v2) installed as part of Flasher-3.5 for Windows and Mac OS X:
* Libusb (Mac): [http://pc-connectivity.garage.maemo.org/upstream/libusb-0.1.12.tar.gz libusb-0.1.12.tar.gz]
* Libusb-win32 (Win): [http://pc-connectivity.garage.maemo.org/upstream/libusb-win32-src-0.1.12.1.tar.gz libusb-win32-src-0.1.12.1.tar.gz]
 
Original libusb sources are available from SourceForge.net:
* Libusb (Mac): [http://ufpr.dl.sourceforge.net/sourceforge/libusb libusb]
* Libusb-win32 (Win): [http://ufpr.dl.sourceforge.net/sourceforge/libusb-win32 libusb-win32]

== Installation ==

The Maemo Flasher-3.5 tool should be installed from the installation package provided for Debian-based Linux, Windows and Mac OS X. For Linux distributions other than Debian-based ones, a compressed tar file is also provided. 

Installation of Maemo Flasher-3.5 requires administration rights in all supported operating systems.

== Usage ==

The Maemo Flasher-3.5 Tool is a command line utility that supports N900 device with Fremantle 5.x platform releases and N800, N810 and N810 WiMAX devices with Maemo Diablo 4.1.x platform releases.

{{ambox|text=Older Maemo devices (like Nokia 770) and older Maemo platform releases may require a specific Flasher Tool from [http://tablets-dev.nokia.com/d3.php Maemo Flasher Tool archive].}}

Flasher-3.5 Tool is run from a Linux, Windows or Mac host computer as a command line tool, and it sends data and commands to the connected Maemo device via USB. 

Among other purposes, Flasher-3.5 Tool can be used to:
* flash a Maemo device with a Diablo or Fremantle FIASCO image
* flash a Maemo device (N900 only) internal memory card with an eMMC image
* unpack a FIASCO image into separate parts like kernel and rootfs images
* flash unpacked kernel or rootfs images to the Maemo device separately
* change a Maemo device to R&amp;D mode and back to normal mode
* set and clear R&amp;D flags for a Maemo device when in R&amp;D mode
* boot a Maemo device with additional kernel startup parameters 
* load a kernel and rootfs to the device's RAM and start it

All command line parameters supported by Flasher-3.5 Tool together with some 
basic usage examples are documented in the Help.txt file available as part of the tool installation package. Flasher-3.5 Tool binary gives command line help if it is run without any parameter or with &quot;--set-rd-flags&quot; or &quot;--clear-rd-flags&quot; parameters.

Flash always the FIASCO image first and after that immediately without booting device the latest available eMMC image, if needed. The eMMC image does not need to be flashed every time when a new FIASCO image is flashed. Flashing the eMMC image also overwrites all data from the internal memory card.

{{ambox|text=Never flash/reflash the eMMC content after you bootup the N900 device with new FIASCO image because all the optified content that gets automatically moved from rootfs to eMMC during first device bootup will be lost.}}

=== Setting Maemo device to flashing mode ===

Before flashing a Maemo device with a FIASCO image, it is recommended to firstly set the Maemo device into flashing mode. When you attempt to flash the device, it tries to enable flashing mode on the fly, in which case setting the device to flashing mode explicitly is not required, but there have been reports that with some clients this does not work.

For Nokia N800 and N810 with a Diablo image, flashing mode can be enabled by following these steps:
# Switch off the Maemo device (and do not use a charger)
# Attach a USB cable to the Maemo device and computer
# Switch on the Maemo device while holding down the Home (N800) or Swap (N810) hardware button

For Nokia N900 with a Fremantle image, flashing mode can be enabled by following these steps:
# Switch off the Maemo device completely (a Maemo device connected to a power source is never completely off for charging purposes, so you have to unplug your device) 
# (plug in one end of the USB cable to N900, don't plug other end yet)
# Press and hold down the 'u' key
# Connect a USB cable between the Maemo device and host PC while holding down the 'u' key (you may keep the USB cable plugged in to N900, it doesn't detect a cable that's not connected to PC)
# When the N900 gets connected to PC, this powers the Maemo device and sets it to flashing mode
# When the USB icon appears in the upper right-hand corner, the Maemo device is in flashing mode 
# Release the 'u' key

If performed correctly, the USB image is visible in the upper right-hand corner of the screen.

The Maemo device waits indefinitely for Flasher-3.5 input when it is in flashing mode. If flashing is tried without first setting the Maemo device to flashing mode, image flashing may fail because the Maemo device may not be able to change to the flashing mode automatically.

{{ambox|text=Make sure that the device battery is fully charged before doing any sort of flashing operation because flashing fails if the battery runs out of power during the image flashing operation, and the device may not be able to charge an empty battery after a failure in flashing. USB icon not showing up, or vanishing after a short time and device tries to boot to linux, is a clear indication of a weak battery}}

=== Command line options ===

; SYNOPSIS : 
Usage: flasher-3.5 [OPTIONS]

; OPTIONS :
;       -F, --fiasco=ARG            : Location of a FIASCO image
;       -k, --kernel=ARG            : Location of kernel image
;       -n, --initfs=ARG            : Location of initfs image
;       -r, --rootfs=ARG            : Location of root JFFS2 / UBIFS image
;           --cmt-2nd=ARG           : Location of CMT FIASCO 2nd image
;           --cmt-algo=ARG          : Location of CMT FIASCO algorithm image
;           --cmt-mcusw=ARG         : Location of CMT FIASCO MCUSW image
;           --cmt-no-verify         : Disable verification of CMT programming
;       -x, --xloader=ARG           : Location of X-Loader image
;       -s, --secondary=ARG         : Location of NOLO secondary bootloader image
;       -2, --2nd=ARG               : Location of NOLO cold flasher (&quot;2nd&quot;) image
;       -u, --unpack[=ARG]          : Unpack a FIASCO image
;       -f, --flash                 : Load and flash all supplied images
;       -l, --load                  : Only load all supplied images
;       -b, --boot[=ARG]            : Boot the kernel with optional cmdline
;       -R, --reboot                : Reboot the board (e.g. after flashing NOLO)
;       -i, --read-device-id        : Print out the device type
;       -S, --serial-port=ARG       : Serial port used for cold flashing or &quot;usb&quot;
;       -I, --init-port             : Only initialize the serial port
;       -c, --cold-flash            : &quot;Cold flash&quot; the device
;       -h, --hw-revision=ARG       : Specify product code and HW revision
;           --enable-rd-mode        : Enable R&amp;D mode on the device
;           --disable-rd-mode       : Disable R&amp;D mode on the device
;           --set-rd-flags[=ARG]    : Set R&amp;D mode flags on the device
;           --clear-rd-flags[=ARG]  : Clear R&amp;D mode flags on the device
;           --query-rd-mode         : Query the device R&amp;D mode status and flags
;           --set-hw-revision[=ARG] : Set HW revision override on device
;           --flash-only=ARG        : Flash only certain components
;       -U, --usb-device=ARG        : Specify USB device to use (bus:device address)
  
; Valid --flash-only options :
nolo, kernel, initfs, rootfs

; Valid --set-rd-flags and --clear-rd-flags options :
no-omap-wd, no-ext-wd, no-lifeguard-reset, serial-console, no-usb-timeout, sti-console, no-charging, force-power-key

=== Flasher-3.5 usage examples ===

To get a list of supported command line options, run :

 $ flasher-3.5
 $ flasher-3.5 --set-rd-flags

If you wish to perform commands other than image flashing, then omit the -R option as rebooting the Maemo device may reset the given configuration change back to normal. 

To enable R&amp;D mode for Maemo device, run:

 $ flasher-3.5 –-enable-rd-mode

To warm flash an image to the Maemo device, run:

 $ flasher-3.5 -F &lt;FIASCO image&gt; -f

Replace  &lt;FIASCO image&gt;  with  the  the firmware image you downloaded from Nokia. This flashes a FIASCO image to your Maemo device. The procedure is the same for all other image flashing components (for example, separate kernel, rootfs and eMMC images), see the option list for details. 

To print out Maemo device product code and product HW revision, run:

 $ flasher-3.5 -i

To cold flash (needed usually when the bootloader has been changed), run:

 $ flasher-3.5 -c -h RX-51:&lt;hw_id&gt; -F &lt;FIASCO image&gt; -f

The code &quot;RX-51&quot; used in the example is the product code for the N900 device. The &lt;hw_id&gt; is the product HW revision, which is a 4-digit code. Both product code and HW revision can be found from the type label of the device to be flashed. The type label is on the back of the device, underneath the battery. 

To flash a kernel with separate kernel image, run:

 $ flasher-3.5 -k &lt;kernel image&gt; -f -R

To flash just a part of the whole FIASCO image (for example, only rootfs) run:

 $ flasher-3.5 -F &lt;FIASCO image&gt; --flash-only=rootfs -f

This flashes only the rootfs from the &lt;FIASCO image&gt;. 

To access to the individual parts of the FIASCO image, run:

 $ flasher-3.5 -F &lt;FIASCO image&gt; -u

which expands &lt;FIASCO image&gt; to your current directory.

== Tips &amp; troubleshooting ==

* It appears that Windows 7 64 bit doesn't handle USB in the same manner, and this causes problems (http://talk.maemo.org/showpost.php?p=489976&amp;postcount=4). Workaround by using another PC, or creating a virtual machine of the appropriate type (http://talk.maemo.org/showpost.php?p=490152&amp;postcount=5). There is a fix that works for Windows7 (works on 64bit) here: http://talk.maemo.org/showpost.php?p=849980&amp;postcount=20.
* If you get a &quot;Permission denied&quot; error, then make sure you have execution rights to the Flasher-3.5 binary executable. 
* You need to have administrator rights or run command with sudo in Linux if you get errors like this: ''Error claiming USB interface: Operation not permitted''
* It may help to connect the USB cable directly to the computer USB ports, avoiding the use of a hub. Using the USB ports in the back of a computer can also work better than using those in the front.
* Flash always the FIASCO image first and after that immediately the latest available eMMC image, if needed. '''Never flash/reflash the eMMC content after you bootup the device.''' Reason: All the optified content that is moved from rootfs to eMMC will be lost. The eMMC image does not need to be flashed every time when a new FIASCO image is flashed. Flashing the eMMC image also overwrites all data from the internal memory card. (Notice this recommendation has changed to eMMC first, then powerdown and flash rootfs. Rationale: a system will recover from accidental boots this way. If user is confident about avoiding intermediate boot, the original sequence works as well and is more convenient)
* If warm flashing fails, try to switch off the power from the Maemo device, remove the USB cable and try again from the beginning.
* If cold flashing fails, try to warm flash the Maemo device first using the same FIASCO image. After that try cold flashing again. NB cold flashing is rarely ever needed and not recommended for end users. It's meant only to recover from a defect or outdated NOLO bootloader.
* If Flasher-3.5 is not supported on your operating system you can try to install Maemo SDK Virtual Image from [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Maemo Development Environment Downloads] page and flash Maemo device from Virtual Image (which includes Ubuntu). This may or may not work for you depending on how well virtualization technology you use supports USB on your HW.
* If you use 64-bit Linux, Flasher may work on it.
:Here is the way to do it(Includes Debian based[Debian, Ubuntu, Mint etc.] distributions)
:#Download the [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php flasher3.5.tar.gz]
:#Extract it to a temp directory
:#Open a console and CD to the directory that &quot;flasher-3.5&quot; resides in.
:#Run &quot;&lt;code&gt;chmod +x ./flasher-3.5&lt;/code&gt;&quot;, to allow it to be excecuted.
:#Run it as you normally would, and make sure its run '''as root'''. For instance, if you wanted to flash PR1.2 and the image was in the same directory as flasher-3.5, you would run: &quot;&lt;code&gt;sudo ./flasher-3.5 -F ./RX-51_2009SE_10.2010.19-1.002_PR_COMBINED_002_ARM.bin -f&lt;/code&gt;&quot;
:The reason it may work could be that you have the ia32 libs installed. These are 32-bit libraries needed by 32-bit programs. They may have been included in the default packages, or you may have to install them(&quot;&lt;code&gt;sudo apt-get install ia32-libs&lt;/code&gt;&quot; on a Debian-based system).
This has been tested and found to work on Ubuntu Karmic and Lucid based systems.

== Known issues ==

This is a list of known issues found from Flasher-3.5 final release.

* Flasher-3.5 does not work with Mandriva 2010 distro because Flasher-3.5 is not able to locate the correct USB address and timeouts
** workaround is to download the libusb rpm from Mandriva 2009 and use it
*** mkdir /opt/libusb
*** cd /opt/libusb
*** rpm2cpio libusb0.1_4-0.1.12-12mdv2009.1.i586.rpm | cpio -idmv
*** export LD_LIBRARY_PATH=/opt/libusb/lib
*** flasher-3.5 ...
* On Windows host PC if Nokia PC Suite has been installed to the environment once Windows has started also PC Suite starts running. If Nokia PC Suite is running when N900 is plugged in to the PC with USB cable and with the u key held down, Nokia PC Suite gives an error message and Flasher-3.5 does not see the device.
** workaround is to exit Nokia PC Suite before plugging in N900 with USB cable and starting Flasher-3.5

== N900 flasher ==

The same tool is located on N900 itself under name &quot;flasher&quot; (&lt;code&gt;/usr/bin/flasher&lt;/code&gt;) and can be used for changing R&amp;D mode, etc.
SSU also is using this local flasher, to update kernels. Package name is [http://maemo.org/packages/view/flasher/ flasher].
 
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5</title>
    <id>2309</id>
    <revision>
      <id>48844</id>
      <timestamp>2012-07-28T15:14:25Z</timestamp>
      <contributor>
        <username>stefanl</username>
        <id>3806</id>
      </contributor>
      <comment>/* Tips &amp; troubleshooting */</comment>
      <text xml:space="preserve">The  Maemo Flasher-3.5 tool is used to flash data to the Maemo device internal 256 MB of NAND, which is where the bootloader, kernel, and rootfs (all of which make up the operating system) are stored. For N900 it is also used to format and flash the eMMC internal storage card (32GB). Flasher-3.5 can be used to upgrade to a new firmware, wipe the Maemo device and start from scratch, flash certain specific components, or change a number of hardware flags. It also can load and start a kernel and auxiliary system to RAM, e.g for recovery purposes, see [http://wiki.meego.com/ARM/N900/Using_Rescue_Initrd]

Maemo Flasher-3.5 Tools can be downloaded from the [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Maemo Development Environment Downloads] page.

== Release details ==

* Version: 2.5.2.2 - Final
* Date: October 23, 2009
* Hardware supported:
** Nokia [[Nokia N800|N800]], [[Nokia N810|N810]] and [[Nokia N810WME|N810 WiMAX]] with [[Open development/Maemo roadmap/Diablo|Diablo]] 4.1.x
** Nokia [[Nokia N900|N900]] with [[Open development/Maemo roadmap/Fremantle|Fremantle]] 5.x

=== Supported operating systems ===

Maemo Flasher-3.5 tool supports the following 32-bit host PC operating systems:

* Debian-based Linux (with Debian installation package)
* Other Linux (with tar installation package)
* Windows XP with SP3, Vista with SP2 and Windows 7 (with Windows installation package)
* Mac OS X 10.5 Leopard and 10.6 Snow Leopard (with Mac OS X installation package)
** Supports x86/32-bit and PPC/32-bit architectures

Linux and Windows versions of Maemo Flasher-3.5 tool support x86/32-bit host PC architectures. Maemo Flasher-3.5 tool does not support any 64-bit operating systems, see the [[##Tips_.26_troubleshooting|troubleshooting]] section for more information.

=== Files included in the delivery packages ===

;flasher-3.5
: flasher binary file (&lt;code&gt;flasher-3.5.exe&lt;/code&gt; for Windows)
;libusb
: USB library (only for Windows and Mac OS X installations)
;COPYING_LGPL.txt
: license text for libusb (only for Windows and Mac OS X installations)
;License_Agreement.txt
: license and disclaimer text for flasher binary
;Help.txt
: short command line help 
;Readme_Maemo_Flasher-3.5.txt
: Flasher-3.5 readme file

== Downloads and documentation ==

Flasher-3.5 download: [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Maemo Development Environment Downloads]

Flasher-3.5 documentation: This document and documentation are delivered as part of installation packages (readme and help files)

Sources for libusb library (LGPL v2) installed as part of Flasher-3.5 for Windows and Mac OS X:
* Libusb (Mac): [http://pc-connectivity.garage.maemo.org/upstream/libusb-0.1.12.tar.gz libusb-0.1.12.tar.gz]
* Libusb-win32 (Win): [http://pc-connectivity.garage.maemo.org/upstream/libusb-win32-src-0.1.12.1.tar.gz libusb-win32-src-0.1.12.1.tar.gz]
 
Original libusb sources are available from SourceForge.net:
* Libusb (Mac): [http://ufpr.dl.sourceforge.net/sourceforge/libusb libusb]
* Libusb-win32 (Win): [http://ufpr.dl.sourceforge.net/sourceforge/libusb-win32 libusb-win32]

== Installation ==

The Maemo Flasher-3.5 tool should be installed from the installation package provided for Debian-based Linux, Windows and Mac OS X. For Linux distributions other than Debian-based ones, a compressed tar file is also provided. 

Installation of Maemo Flasher-3.5 requires administration rights in all supported operating systems.

== Usage ==

The Maemo Flasher-3.5 Tool is a command line utility that supports N900 device with Fremantle 5.x platform releases and N800, N810 and N810 WiMAX devices with Maemo Diablo 4.1.x platform releases.

{{ambox|text=Older Maemo devices (like Nokia 770) and older Maemo platform releases may require a specific Flasher Tool from [http://tablets-dev.nokia.com/d3.php Maemo Flasher Tool archive].}}

Flasher-3.5 Tool is run from a Linux, Windows or Mac host computer as a command line tool, and it sends data and commands to the connected Maemo device via USB. 

Among other purposes, Flasher-3.5 Tool can be used to:
* flash a Maemo device with a Diablo or Fremantle FIASCO image
* flash a Maemo device (N900 only) internal memory card with an eMMC image
* unpack a FIASCO image into separate parts like kernel and rootfs images
* flash unpacked kernel or rootfs images to the Maemo device separately
* change a Maemo device to R&amp;D mode and back to normal mode
* set and clear R&amp;D flags for a Maemo device when in R&amp;D mode
* boot a Maemo device with additional kernel startup parameters 
* load a kernel and rootfs to the device's RAM and start it

All command line parameters supported by Flasher-3.5 Tool together with some 
basic usage examples are documented in the Help.txt file available as part of the tool installation package. Flasher-3.5 Tool binary gives command line help if it is run without any parameter or with &quot;--set-rd-flags&quot; or &quot;--clear-rd-flags&quot; parameters.

Flash always the FIASCO image first and after that immediately without booting device the latest available eMMC image, if needed. The eMMC image does not need to be flashed every time when a new FIASCO image is flashed. Flashing the eMMC image also overwrites all data from the internal memory card.

{{ambox|text=Never flash/reflash the eMMC content after you bootup the N900 device with new FIASCO image because all the optified content that gets automatically moved from rootfs to eMMC during first device bootup will be lost.}}

=== Setting Maemo device to flashing mode ===

Before flashing a Maemo device with a FIASCO image, it is recommended to firstly set the Maemo device into flashing mode. When you attempt to flash the device, it tries to enable flashing mode on the fly, in which case setting the device to flashing mode explicitly is not required, but there have been reports that with some clients this does not work.

For Nokia N800 and N810 with a Diablo image, flashing mode can be enabled by following these steps:
# Switch off the Maemo device (and do not use a charger)
# Attach a USB cable to the Maemo device and computer
# Switch on the Maemo device while holding down the Home (N800) or Swap (N810) hardware button

For Nokia N900 with a Fremantle image, flashing mode can be enabled by following these steps:
# Switch off the Maemo device completely (a Maemo device connected to a power source is never completely off for charging purposes, so you have to unplug your device) 
# (plug in one end of the USB cable to N900, don't plug other end yet)
# Press and hold down the 'u' key
# Connect a USB cable between the Maemo device and host PC while holding down the 'u' key (you may keep the USB cable plugged in to N900, it doesn't detect a cable that's not connected to PC)
# When the N900 gets connected to PC, this powers the Maemo device and sets it to flashing mode
# When the USB icon appears in the upper right-hand corner, the Maemo device is in flashing mode 
# Release the 'u' key

If performed correctly, the USB image is visible in the upper right-hand corner of the screen.

The Maemo device waits indefinitely for Flasher-3.5 input when it is in flashing mode. If flashing is tried without first setting the Maemo device to flashing mode, image flashing may fail because the Maemo device may not be able to change to the flashing mode automatically.

{{ambox|text=Make sure that the device battery is fully charged before doing any sort of flashing operation because flashing fails if the battery runs out of power during the image flashing operation, and the device may not be able to charge an empty battery after a failure in flashing. USB icon not showing up, or vanishing after a short time and device tries to boot to linux, is a clear indication of a weak battery}}

=== Command line options ===

; SYNOPSIS : 
Usage: flasher-3.5 [OPTIONS]

; OPTIONS :
;       -F, --fiasco=ARG            : Location of a FIASCO image
;       -k, --kernel=ARG            : Location of kernel image
;       -n, --initfs=ARG            : Location of initfs image
;       -r, --rootfs=ARG            : Location of root JFFS2 / UBIFS image
;           --cmt-2nd=ARG           : Location of CMT FIASCO 2nd image
;           --cmt-algo=ARG          : Location of CMT FIASCO algorithm image
;           --cmt-mcusw=ARG         : Location of CMT FIASCO MCUSW image
;           --cmt-no-verify         : Disable verification of CMT programming
;       -x, --xloader=ARG           : Location of X-Loader image
;       -s, --secondary=ARG         : Location of NOLO secondary bootloader image
;       -2, --2nd=ARG               : Location of NOLO cold flasher (&quot;2nd&quot;) image
;       -u, --unpack[=ARG]          : Unpack a FIASCO image
;       -f, --flash                 : Load and flash all supplied images
;       -l, --load                  : Only load all supplied images
;       -b, --boot[=ARG]            : Boot the kernel with optional cmdline
;       -R, --reboot                : Reboot the board (e.g. after flashing NOLO)
;       -i, --read-device-id        : Print out the device type
;       -S, --serial-port=ARG       : Serial port used for cold flashing or &quot;usb&quot;
;       -I, --init-port             : Only initialize the serial port
;       -c, --cold-flash            : &quot;Cold flash&quot; the device
;       -h, --hw-revision=ARG       : Specify product code and HW revision
;           --enable-rd-mode        : Enable R&amp;D mode on the device
;           --disable-rd-mode       : Disable R&amp;D mode on the device
;           --set-rd-flags[=ARG]    : Set R&amp;D mode flags on the device
;           --clear-rd-flags[=ARG]  : Clear R&amp;D mode flags on the device
;           --query-rd-mode         : Query the device R&amp;D mode status and flags
;           --set-hw-revision[=ARG] : Set HW revision override on device
;           --flash-only=ARG        : Flash only certain components
;       -U, --usb-device=ARG        : Specify USB device to use (bus:device address)
  
; Valid --flash-only options :
nolo, kernel, initfs, rootfs

; Valid --set-rd-flags and --clear-rd-flags options :
no-omap-wd, no-ext-wd, no-lifeguard-reset, serial-console, no-usb-timeout, sti-console, no-charging, force-power-key

=== Flasher-3.5 usage examples ===

To get a list of supported command line options, run :

 $ flasher-3.5
 $ flasher-3.5 --set-rd-flags

If you wish to perform commands other than image flashing, then omit the -R option as rebooting the Maemo device may reset the given configuration change back to normal. 

To enable R&amp;D mode for Maemo device, run:

 $ flasher-3.5 –-enable-rd-mode

To warm flash an image to the Maemo device, run:

 $ flasher-3.5 -F &lt;FIASCO image&gt; -f

Replace  &lt;FIASCO image&gt;  with  the  the firmware image you downloaded from Nokia. This flashes a FIASCO image to your Maemo device. The procedure is the same for all other image flashing components (for example, separate kernel, rootfs and eMMC images), see the option list for details. 

To print out Maemo device product code and product HW revision, run:

 $ flasher-3.5 -i

To cold flash (needed usually when the bootloader has been changed), run:

 $ flasher-3.5 -c -h RX-51:&lt;hw_id&gt; -F &lt;FIASCO image&gt; -f

The code &quot;RX-51&quot; used in the example is the product code for the N900 device. The &lt;hw_id&gt; is the product HW revision, which is a 4-digit code. Both product code and HW revision can be found from the type label of the device to be flashed. The type label is on the back of the device, underneath the battery. 

To flash a kernel with separate kernel image, run:

 $ flasher-3.5 -k &lt;kernel image&gt; -f -R

To flash just a part of the whole FIASCO image (for example, only rootfs) run:

 $ flasher-3.5 -F &lt;FIASCO image&gt; --flash-only=rootfs -f

This flashes only the rootfs from the &lt;FIASCO image&gt;. 

To access to the individual parts of the FIASCO image, run:

 $ flasher-3.5 -F &lt;FIASCO image&gt; -u

which expands &lt;FIASCO image&gt; to your current directory.

== Tips &amp; troubleshooting ==

* It appears that Windows 7 64 bit doesn't handle USB in the same manner, and this causes problems (http://talk.maemo.org/showpost.php?p=489976&amp;postcount=4). Workaround by using another PC, or creating a virtual machine of the appropriate type (http://talk.maemo.org/showpost.php?p=490152&amp;postcount=5). There is a fix that works for Windows7 (works on 64bit) here: http://talk.maemo.org/showpost.php?p=849980&amp;postcount=20.
* If you get a &quot;Permission denied&quot; error, then make sure you have execution rights to the Flasher-3.5 binary executable. 
* You need to have administrator rights or run command with sudo in Linux if you get errors like this: ''Error claiming USB interface: Operation not permitted''
* It may help to connect the USB cable directly to the computer USB ports, avoiding the use of a hub. Using the USB ports in the back of a computer can also work better than using those in the front.
* Flash always the FIASCO image first and after that immediately the latest available eMMC image, if needed. '''Never flash/reflash the eMMC content after you bootup the device.''' Reason: All the optified content that is moved from rootfs to eMMC will be lost. The eMMC image does not need to be flashed every time when a new FIASCO image is flashed. Flashing the eMMC image also overwrites all data from the internal memory card. (Notice this recommendation has changed to eMMC first, then powerdown and flash rootfs. Rationale: a system will recover from accidental boots this way. If user is confident about avoiding intermediate boot, the original sequence works as well and is more convenient)
* If warm flashing fails, try to switch off the power from the Maemo device, remove the USB cable and try again from the beginning.
* If cold flashing fails, try to warm flash the Maemo device first using the same FIASCO image. After that try cold flashing again. NB cold flashing is rarely ever needed and not recommended for end users. It's meant only to recover from a defect or outdated NOLO bootloader.
* If Flasher-3.5 is not supported on your operating system you can try to install Maemo SDK Virtual Image from [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Maemo Development Environment Downloads] page and flash Maemo device from Virtual Image (which includes Ubuntu). This may or may not work for you depending on how well virtualization technology you use supports USB on your HW.
* If you use 64-bit Linux, Flasher may work on it.
:Here is the way to do it(Includes Debian based[Debian, Ubuntu, Mint etc.] distributions)
:#Download the [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php flasher3.5.tar.gz]
:#Extract it to a temp directory
:#Open a console and CD to the directory that &quot;flasher-3.5&quot; resides in.
:#Run &quot;&lt;code&gt;chmod +x ./flasher-3.5&lt;/code&gt;&quot;, to allow it to be excecuted.
:#Run it as you normally would, and make sure its run '''as root'''. For instance, if you wanted to flash PR1.2 and the image was in the same directory as flasher-3.5, you would run: &quot;&lt;code&gt;sudo ./flasher-3.5 -F ./RX-51_2009SE_10.2010.19-1.002_PR_COMBINED_002_ARM.bin -f&lt;/code&gt;&quot;
:The reason it may work could be that you have the ia32 libs installed. These are 32-bit libraries needed by 32-bit programs. They may have been included in the default packages, or you may have to install them(&quot;&lt;code&gt;sudo apt-get install ia32-libs&lt;/code&gt;&quot; on a Debian-based system).
This has been tested and found to work on Ubuntu Karmic and Lucid based systems.

== Known issues ==

This is a list of known issues found from Flasher-3.5 final release.

* Flasher-3.5 does not work with Mandriva 2010 distro because Flasher-3.5 is not able to locate the correct USB address and timeouts
** workaround is to download the libusb rpm from Mandriva 2009 and use it
*** mkdir /opt/libusb
*** cd /opt/libusb
*** rpm2cpio libusb0.1_4-0.1.12-12mdv2009.1.i586.rpm | cpio -idmv
*** export LD_LIBRARY_PATH=/opt/libusb/lib
*** flasher-3.5 ...
* On Windows host PC if Nokia PC Suite has been installed to the environment once Windows has started also PC Suite starts running. If Nokia PC Suite is running when N900 is plugged in to the PC with USB cable and with the u key held down, Nokia PC Suite gives an error message and Flasher-3.5 does not see the device.
** workaround is to exit Nokia PC Suite before plugging in N900 with USB cable and starting Flasher-3.5

== N900 flasher ==

The same tool is located on N900 itself under name &quot;flasher&quot; (&lt;code&gt;/usr/bin/flasher&lt;/code&gt;) and can be used for changing R&amp;D mode, etc.
SSU also is using this local flasher, to update kernels. Package name is [http://maemo.org/packages/view/flasher/ flasher].
 
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Development Environment/Maemo PC Connectivity</title>
    <id>2308</id>
    <revision>
      <id>36365</id>
      <timestamp>2010-06-29T09:02:55Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Documentation/Maemo_PC_Connectivity_Tutorial]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo PC Connectivity Tutorial]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Programming Environments</title>
    <id>2312</id>
    <revision>
      <id>36904</id>
      <timestamp>2010-07-16T09:07:30Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify pymaemo link</comment>
      <text xml:space="preserve">This is a place holder for Maemo Programming Environments documentation 

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.

Current &quot;under development&quot; versions of the documentation can be found from these Garage projects:
* [[PyMaemo|Maemo Python support]]
* [http://maemomm.garage.maemo.org/ Maemo C++ support]
* [[Qt4 Development|Maemo Qt support]]
** [http://doc.qt.nokia.com/qt-maemo-4.6/ Qt 4.6 for Maemo reference documentation]
** [[Qt4 Development#Getting started|Getting Started]]
** [[Qt4 Development#Porting Qt applications to Maemo|Porting Qt applications to Maemo]]
** [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Programming Environments/Using Maemo 5 specific APIs in Qt application|How to use Maemo 5-specific APIs from a Qt application]]
** [[Packaging a Qt application]]

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Programming Environments/Using Maemo 5 specific APIs in Qt application</title>
    <id>2392</id>
    <revision>
      <id>42558</id>
      <timestamp>2011-03-09T12:02:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>add Qt syntax highlighting</comment>
      <text xml:space="preserve">= How to use Maemo 5 specific APIs from Qt application =

== Accelometer ==

=== Introduction ===

This section explains how to use the [[N900 accelerometer|accelerometer]] D-Bus interface in a Maemo 5 Qt application.

The following code examples are used in this section:
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/qt-maemo-gravity-example/ qt-maemo-gravity-example]

=== D-Bus interface ===

It is up to each application how to organize interactions with the [http://maemo.org/api_refs/5.0/beta/mce-dev/ MCE] orientation interface. In [[Documentation/Maemo 5 Developer Guide/Porting Software/Porting Existing GTK+ Application to Maemo 5#Portrait Mode|some cases]] catching orientation signal can be enough, but if more frequent updates are needed, for example, you might want to use method calls, as demonstrated in our example.
We've moved D-Bus related functionality and orientation based calculations to a separate library that implements &lt;code&gt;DeviceOrientationNotifier&lt;/code&gt; class. 
Our notifier asks MCE about orientation parameters with a certain period, 
&lt;source lang=&quot;cpp-qt&quot;&gt;
void DeviceOrientationNotifier::timerEvent(QTimerEvent *)
{
  QDBusMessage msg = QDBusMessage::createMethodCall(MCE_SERVICE, MCE_REQUEST_PATH, MCE_REQUEST_IF, MCE_DEVICE_ORIENTATION_GET);
  bool sent = QDBusConnection::systemBus().callWithCallback(msg, this, SLOT(mceOrientationSlot(QString, QString, QString, int, int, int)));
}
&lt;/source&gt;
processes answers in `mceOrientationSlot', and emits data needed by the application with the following signal:
&lt;source lang=&quot;cpp-qt&quot;&gt;
void deviceOrientation(qreal pitch, qreal roll);
&lt;/source&gt;

=== Example application ===

We've modified [http://qt.nokia.com/doc/4.5/graphicsview-collidingmice.html one of Qt4 Examples] in order to show how device orientation can be used.
In our case pitch and roll are scene's characteristics, so we've implemented a `SceneTuner', whose slot can be connected to an appropriate signal in order to setup these scene properties.
&lt;source lang=&quot;cpp-qt&quot;&gt;
DeviceOrientationNotifier notifier(100);
SceneTuner tuner(&amp;scene, TimerInterval);
QObject::connect(&amp;notifier, SIGNAL(deviceOrientation(qreal, qreal)), &amp;tuner, SLOT(setProps(qreal, qreal)));
&lt;/source&gt;
Based on that each mouse can take into account the gravity effect, see `Mouse::advance' for details.

== Using Zoom In and Zoom Out keys ==

This section uses the same qt-maemo-gravity-example to explain how to use Zoom In and Out keys in a Qt application. They are used to set the application window to fullscreen and normal modes like in the GTK+ example [[Documentation/Maemo 5 Developer Guide/Porting Software/Porting Existing GTK+ Application to Maemo 5|Maemo Sliders]].

First, the keys are released from maemo-status-volume by using &lt;code&gt;XChangeProperty()&lt;/code&gt;.

hardkeyhandler.cpp:
&lt;source lang=&quot;cpp-qt&quot;&gt;
void HardkeyHandler::grabIncreaseDecreaseKeys(QWidget* window, bool grab)
{
    // Tell maemo-status-volume to grab/ungrab increase/decrease keys
    unsigned long val = (grab==true)?1:0;
    Atom atom;
    atom = XInternAtom( QX11Info::display(), &quot;_HILDON_ZOOM_KEY_ATOM&quot;, 0);
    XChangeProperty (QX11Info::display(),
                     window-&gt;winId(),
                     atom,
                     XA_INTEGER,
                     32,
                     PropModeReplace,
                     (unsigned char *) &amp;val,
                     1);
}
&lt;/source&gt;

Next, a handler for keypresses is created. 73 and 74 are the keycodes for F7/F8 in the SDK and Zoom In/Out buttons in the device. Handler functions emit corresponding signals when called.

hardkeyhandler.cpp:
&lt;source lang=&quot;cpp-qt&quot;&gt;
bool HardkeyHandler::processX11Event(XEvent* event)
{
    if ( event-&gt;type == KeyPress )
    {
        if (event-&gt;xkey.keycode == 73 || event-&gt;xkey.keycode == QKeySequence::ZoomOut)
        {
            emit decreaseKeyPressed();
            return true;
        } 
        else if (event-&gt;xkey.keycode == 74  || event-&gt;xkey.keycode ==  QKeySequence::ZoomIn)
        {
            emit increaseKeyPressed();
            return true;
        }
    }

    return false;
}
&lt;/source&gt;

Signals need slots, of course. They are located in &lt;code&gt;myapplication.h&lt;/code&gt; and &lt;code&gt;myapplication.cpp&lt;/code&gt; files. Here changing to fullscreen and back are done by &lt;code&gt;showFullScreen()&lt;/code&gt; and &lt;code&gt;showNormal()&lt;/code&gt;.

myapplication.cpp:
&lt;source lang=&quot;cpp-qt&quot;&gt;
void MyApplication::increaseKeyPressed()
{
    qDebug(&quot;MyApplication::increaseKeyPressed&quot;);
    view.showFullScreen();

}

void MyApplication::decreaseKeyPressed()
{
    qDebug(&quot;MyApplication::decreaseKeyPressed&quot;);
    view.showNormal();
}
&lt;/source&gt;

The new signals are connected to corresponding slots in &lt;code&gt;main()&lt;/code&gt;.

main.cpp:
&lt;source lang=&quot;cpp-qt&quot;&gt;
QObject::connect(app.keyHandler(), SIGNAL(decreaseKeyPressed()), &amp;app, SLOT(decreaseKeyPressed()));
QObject::connect(app.keyHandler(), SIGNAL(increaseKeyPressed()), &amp;app, SLOT(increaseKeyPressed()));
&lt;/source&gt;

Finally, &lt;code&gt;gtk-x11&lt;/code&gt; library and the new source and header files (hardkeyhandler.* and myapplication.*) are added to the Qt project file:

collidingmice-gravity.pro:
&lt;pre&gt;
LIBS += -ldevornot-qt-maemo -L/usr/local/lib -lgtk-x11-2.0

HEADERS += \
    mouse.h \
    hardkeyhandler.h \
    myapplication.h \
    scenetuner.h
SOURCES += \
    main.cpp \
    hardkeyhandler.cpp \
    myapplication.cpp \
    mouse.cpp
&lt;/pre&gt;

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Programming Environments/Using accelerometer by Qt application</title>
    <id>2669</id>
    <revision>
      <id>19890</id>
      <timestamp>2009-10-12T16:42:10Z</timestamp>
      <contributor>
        <username>esa</username>
        <id>1074</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Programming Environments/Using accelerometer by Qt application]] moved to [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Programming Environments/Using Maemo 5 sp</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Programming Environments/Using Maemo 5 specific APIs in Qt application]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK</title>
    <id>2307</id>
    <revision>
      <id>40334</id>
      <timestamp>2010-11-26T15:00:16Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Testing SDK Installation */ reformat images</comment>
      <text xml:space="preserve">The following code examples are used in this chapter:

* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/support-libraries/helloworld.c helloworld.c]
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/support-libraries/gtk_helloworld-1.c gtk_helloworld-1.c]

The development environment for Maemo running on the desktop is called the '''Maemo SDK'''. You can only install the Maemo SDK on a Linux operating system. The Maemo SDK currently supports the following Linux distributions:

* Debian
* Ubuntu

However, you can also install the Maemo SDK on other Linux distributions.

== Maemo Software Development Kit ==

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.

=== Hardware architectures ===

The Maemo SDK supports two architectures, &lt;code&gt;X86&lt;/code&gt; and &lt;code&gt;ARMEL&lt;/code&gt;, and provides development environment for both. In Fremantle, the &lt;code&gt;X86&lt;/code&gt; environment is used for active development and has better tool support through native execution without the need for emulation. The &lt;code&gt;ARMEL&lt;/code&gt; target is used only for cross-compilation of applications to work on the actual device. There are currently issues with the user mode qemu which prevent the UI framework from starting up in the &lt;code&gt;ARMEL&lt;/code&gt; target, which prevents running applications on this target.

When your application compiles, runs and behaves as expected on the &lt;code&gt;X86&lt;/code&gt; target, the next step is to compile it on the &lt;code&gt;ARMEL&lt;/code&gt; target. The process of compilation and packaging is exactly the same as in &lt;code&gt;X86&lt;/code&gt;, 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.

The applications thus compiled on the &lt;code&gt;ARMEL&lt;/code&gt; 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.

===Scratchbox===

Scratchbox is a specially packaged &quot;sandbox&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.

The name &quot;Scratchbox&quot; comes from &quot;Linux from scratch&quot; + &quot;chroot jail&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.

Scratchbox:

* Is a software package to implement development sandboxes (for isolation)
* Contains easy-to-use tools to assist cross-compilation
* Supports multiple developers using the same development system
* Supports multiple configurations for each developer
* Supports executing target executables on the hardware target, via a mechanism called sbrsh
* Supports running non-native binaries on the host system via instruction set emulators ([http://bellard.org/qemu Qemu] is used).

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).

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.

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].

This material discusses only the Scratchbox capabilities that are necessary to use the Maemo SDK. 

===Scratchbox In-Depth===

Scratchbox is the Maemo SDK'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.

The ''target'' inside Scratchbox contains a root file system. When you create a new target inside Scratchbox, specify the ''toolchain'' you will use to build applications. Examples of a ''target'' include X86 and ARMEL, provided by the Maemo SDK on top of Scratchbox.

''Host tools'' 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 ''toolchains''.

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.

''CPU transparency methods'' take care of running the applications on an emulator, target device or directly on the host transparently from the user's perspective. The available CPU transparency methods come from a special ''devkit'' called ''cputransp''. For each of Maemo SDK's pre-defined targets, a CPU transparency method is selected and defined.

A ''toolchain'' is a collection of tools used to produce binaries for the target environment. In addition to a compiler (''gcc''), the toolchain contains a linker (''ld'') and other ''binutils'', such as ''strip'', ''objdump'' and ''strings''.

A ''devkit'' 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.

A ''rootstrap'' is a root file system for the target device. The Maemo SDK provides root file systems for both targets (X86 and ARMEL) inside Scratchbox. Note that the user's home directory is shared for all targets. The &lt;code&gt;/tmp&lt;/code&gt; directory is shared for all targets and also with the host.

From Scratchbox's point of view, the Maemo SDK is a set of preconfigured ''targets'' and ''root file system''s. One set is provided for both &lt;code&gt;X86&lt;/code&gt; and &lt;code&gt;ARMEL&lt;/code&gt; architectures on top of a working Scratchbox installation.

==Development in the Maemo SDK==

The Maemo SDK provides all of its development tools inside Scratchbox. Also the UI framework is started with a single command, &lt;code&gt;af-sb-init&lt;/code&gt;, run within Scratchbox. However, it needs a secondary X server of proper size and bit-depth to be displayed on.

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.

=== Scratchbox Development Tools ===

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 ''[http://sourceware.org/gdb/ gdb]'', ''[http://valgrind.org/ valgrind]'',  ''ltrace'' and ''[http://sourceforge.net/projects/strace/ strace]''. Performance profiling can be performed with tools like ''[http://htop.sourceforge.net/ htop]'', ''[http://oprofile.sourceforge.net/ oprofile]'' and ''time''. 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.

=== Other Programming Languages ===

Currently C is the only official programming language for Maemo. But thanks to the community, the Python scripting language also has good support in the form of [http://pymaemo.garage.maemo.org/ pymaemo]. [[Scratchbox C++|C++ support for Scratchbox]] is also available.

== Installing the SDK ==

Before continuing, review the [[Documentation/Maemo 5 Final SDK Installation|installation instructions]] of the Maemo SDK.

The kernel must support the &lt;code&gt;binfmt_misc&lt;/code&gt; 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):

 user@system:~$ lsmod | grep binfmt
 binfmt_misc 12936 0

If you do not see a line of output, try to execute
 modprobe binfmt_misc
as root (or with &lt;code&gt;sudo&lt;/code&gt;). 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.

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.

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.

To install Xephyr on a Debian-based Linux:

* Issue the command &lt;pre&gt;sudo apt-get install xserver-xephyr&lt;/pre&gt; on your real Linux system.
* Verify installation status by issuing the command &lt;pre&gt;dpkg -l | grep xephyr&lt;/pre&gt; (as non-root).

As mentioned before, the 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 the SDK is to use the automated installation scripts, though manual installation steps are also provided. Detailed instructions are found [[Documentation/Maemo 5 Final SDK Installation|on the maemo.org wiki]].

== Testing SDK Installation ==

=== Testing Scratchbox ===

The following shows how to create a small non-graphical Hello World program to verify that the Scratchbox environment works: helloworld.c

&lt;source lang=&quot;c&quot;&gt;
/**
 * helloworld.c
 *
 * This maemo code example is licensed under a MIT-style license,
 * that can be found in the file called &quot;License&quot; in the same
 * directory as this file.
 * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
 *
 * Simple standard I/O (printf)-based Hello World that we can use to
 * test our toolchains.
 */

#include &lt;stdio.h&gt; /* printf */

/* main implementation */
int main(int argc, char** argv) {

  printf(&quot;Hello world\n&quot;);

  /* In Linux, each process upon termination must set its exit code.
     Exit code 0 means success to whoever executed this program. It
     is routinely used inside scripts to test whether running some
     program succeeded or not. Other exit codes mean failure. Each
     program is free to use different non-zero codes to signify
     different kinds of failures. These are normally listed in the
     manual page for the program (since there is no standard). If you
     forget to set your exit code, it will be undefined. */
  return 0;
}
&lt;/source&gt;

First, verify that the proper directory is chosen by using &lt;code&gt;pwd&lt;/code&gt; (print working directory). At this point, the work directory should be your home directory: 

 [sbox-FREMANTLE_X86: ~] &amp;gt; pwd
 /home/user

Then, start an editor and write a small hello world program (you may use the above code listing as a template if you wish): 

 [sbox-FREMANTLE_X86: ~] &amp;gt; nano helloworld.c

It is also possible to use the &lt;code&gt;vi&lt;/code&gt; (Visual Interactive) editor inside Scratchbox. You can install your own favourite editor inside Scratchbox (with the debian-devkit), but the following examples will use &lt;code&gt;nano&lt;/code&gt;, because it is the easiest to start with. If you want to learn &lt;code&gt;vi&lt;/code&gt;, your best course of action is searching for &quot;vi tutorial&quot; with your favourite search engine. There are lots of them to be found. To understand why &lt;code&gt;vi&lt;/code&gt; can be considered &quot;strange&quot;, it is useful to know its history first. Using vi is fully optional.
 
 [sbox-FREMANTLE_X86: ~] &amp;gt; gcc -Wall -g helloworld.c -o helloworld
 [sbox-FREMANTLE_X86: ~] &amp;gt; ls -F hello*
 helloworld* helloworld.c

GCC's &lt;code&gt;-g&lt;/code&gt; option tells the compiler to add debugging symbols to the generated output file. &lt;code&gt;-Wall&lt;/code&gt; will tell the compiler to enable most of the syntax and other warnings that the source code could trigger. &lt;code&gt;-o helloworld&lt;/code&gt; tells gcc to output the resulting binary with the filename of helloworld.

The &lt;code&gt;-F&lt;/code&gt; option to &lt;code&gt;ls&lt;/code&gt; 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.

 [sbox-FREMANTLE_X86: ~] &amp;gt; ./helloworld
 Hello world

Running the binary should not produce any surprises. 

 [sbox-FREMANTLE_X86: ~] &amp;gt; file helloworld
 helloworld: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
 for GNU/Linux 2.6.0, dynamically linked (uses shared libs), not stripped

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. 
 
 [sbox-FREMANTLE_X86: ~] &amp;gt; ldd helloworld
    linux-gate.so.1 =&amp;gt;  (0xffffe000)
    libc.so.6 =&amp;gt; /lib/libc.so.6 (0xb7e9f000)
    /lib/ld-linux.so.2 (0xb7fd2000)
 [sbox-FREMANTLE_X86: ~] &amp;gt; ls -l /lib/libc.so.6
 lrwxrwxrwx  1 user user 11 Nov 12 15:52 /lib/libc.so.6 -&amp;gt; libc-2.5.so
 [sbox-FREMANTLE_X86: ~] &amp;gt; ls -l /lib/libc-2.5.so
 -rwxr-xr-x  1 user user 1213256 Sep  7 13:28 /lib/libc-2.5.so

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 &lt;code&gt;ls&lt;/code&gt; to check the exact version of the C library that the SDK uses with the &quot;long listing format&quot; &lt;code&gt;-l&lt;/code&gt; option. Running these commands using the&lt;code&gt; ARMEL&lt;/code&gt; target yields more or less the same results. 
N.B. The &lt;code&gt;linux-gate.so.1&lt;/code&gt; library 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.

When comparing the version of libc used on the real system with &lt;code&gt;ls -l&lt;/code&gt;, 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.

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. 

==== vi ====

You can also use the &lt;code&gt;vi&lt;/code&gt; (Visual Interactive) editor inside Scratchbox. You can install your own favorite editor inside Scratchbox (with the debian-devkit), but the following examples will use &lt;code&gt;nano&lt;/code&gt;, since it is the easiest to start with. If you want to learn &lt;code&gt;vi&lt;/code&gt;, search for &quot;vi tutorial&quot; with your favorite search engine. There are lots of them to be found. To understand why &lt;code&gt;vi&lt;/code&gt; can be considered &quot;strange&quot;, it is useful to know its history first. Using &lt;code&gt;vi&lt;/code&gt; is fully optional. It is common for people who are new to &lt;code&gt;vi&lt;/code&gt; to get stuck in it; if you find yourself in this situation, a way to exit (without writing the file) is to press type &lt;escape&gt;:qall!&lt;enter&gt;.

The &lt;code&gt;vi&lt;/code&gt; that is commonly installed on Linux systems is really &lt;code&gt;vim&lt;/code&gt; (VI iMproved), which is a more user-friendly version of &lt;code&gt;vi&lt;/code&gt;, including syntax hilighting and all kinds of improvements. Scratchbox has a program called &lt;code&gt;vimtutor&lt;/code&gt; installed to help you learn how to use &lt;code&gt;vi&lt;/code&gt; interactively.

It is also fairly simple to use existing editors. &lt;code&gt;/scratchbox/users/x/home/x/&lt;/code&gt; 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.

And as a final note, &lt;code&gt;emacs&lt;/code&gt; can also be used.

Here is how to do use it:

* Start emacs outside of Scratchbox
* In emacs, use M-x server-start
* Inside Scratchbox, use the emacsclient filename to open the file for editing in your emacs

=== Writing GUI Hello World ===

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. 

gtk_helloworld-1.c

&lt;source lang=&quot;c&quot;&gt;
/**
 * gtk_helloworld-1.c
 *
 * This maemo code example is licensed under a MIT-style license,
 * that can be found in the file called &quot;License&quot; in the same
 * directory as this file.
 * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
 *
 * A simple GTK+ Hello World. You need to use Ctrl+C to terminate
 * this program since it doesn't implement GTK+ signals (yet).
 */

#include &lt;stdlib.h&gt; /* EXIT_* */
/* Introduce types and prototypes of GTK+ for the compiler. */
#include &lt;gtk/gtk.h&gt;

int main(int argc, char** argv) {

  /* We'll have two references to two GTK+ widgets. */
  GtkWindow* window;
  GtkLabel* label;

  /* Initialize the GTK+ library. */
  gtk_init(&amp;argc, &amp;argv);

  /* Create a window with window border width of 12 pixels and a
     title text. */
  window = g_object_new(GTK_TYPE_WINDOW,
    &quot;border-width&quot;, 12,
    &quot;title&quot;, &quot;Hello GTK+&quot;,
    NULL);

  /* Create the label widget. */
  label = g_object_new(GTK_TYPE_LABEL,
    &quot;label&quot;, &quot;Hello World!&quot;,
    NULL);

  /* Pack the label into the window layout. */
  gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(label));

  /* Show all widgets that are contained by the window. */
  gtk_widget_show_all(GTK_WIDGET(window));

  /* Start the main event loop. */
  g_print(&quot;main: calling gtk_main\n&quot;);
  gtk_main();

  /* Display a message to the standard output and exit. */
  g_print(&quot;main: returned from gtk_main and exiting with success\n&quot;);

  /* The C standard defines this condition as EXIT_SUCCESS, and this
     symbolic macro is defined in stdlib.h (which GTK+ will pull in
     in-directly). There is also a counter-part for failures:
     EXIT_FAILURE. */
  return EXIT_SUCCESS;
}
&lt;/source&gt;

Build your program:

 [sbox-FREMANTLE_X86: ~] &amp;gt; gcc -Wall -g gtk_helloworld-1.c -o gtk_helloworld-1
 gtk_helloworld-1.c:15:21: gtk/gtk.h: No such file or directory
 gtk_helloworld-1.c: In function `main':
 gtk_helloworld-1.c:20: error: `GtkWindow' undeclared (first use in this function)
 gtk_helloworld-1.c:20: error: (Each undeclared identifier is reported only once
 gtk_helloworld-1.c:20: error: for each function it appears in.)
 gtk_helloworld-1.c:20: error: `window' undeclared (first use in this function)
 gtk_helloworld-1.c:21: error: `GtkLabel' undeclared (first use in this function)
 gtk_helloworld-1.c:21: error: `label' undeclared (first use in this function)
 gtk_helloworld-1.c:24: warning: implicit declaration of function `gtk_init'
 gtk_helloworld-1.c:28: warning: implicit declaration of function `g_object_new'
 gtk_helloworld-1.c:28: error: `GTK_TYPE_WINDOW' undeclared (first use in this function)
 gtk_helloworld-1.c:34: error: `GTK_TYPE_LABEL' undeclared (first use in this function)
 gtk_helloworld-1.c:39: warning: implicit declaration of function `gtk_container_add'
 gtk_helloworld-1.c:39: warning: implicit declaration of function `GTK_CONTAINER'
 gtk_helloworld-1.c:39: warning: implicit declaration of function `GTK_WIDGET'
 gtk_helloworld-1.c:42: warning: implicit declaration of function `gtk_widget_show_all'
 gtk_helloworld-1.c:45: warning: implicit declaration of function `g_print'
 gtk_helloworld-1.c:46: warning: implicit declaration of function `gtk_main'


This does not look at all promising. The source code started with &lt;code&gt;#include&lt;/code&gt;, 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.

To help you decide which flags to use we provide a tool called &lt;code&gt;pkg-config&lt;/code&gt;, which is a simple program that provides a unified interface to output compiler, linker flags and library version numbers. Use &lt;code&gt;pkg-config&lt;/code&gt; manually for the time being.
 
 [sbox-FREMANTLE_X86: ~] &amp;gt; pkg-config --list-all | sort
 .. listing cut to include only relevant libraries ..
 dbus-glib-1    dbus-glib - GLib integration for the free desktop message bus
 gconf-2.0      gconf - GNOME Config System.
 gdk-2.0        GDK - GIMP Drawing Kit (x11 target)
 gdk-pixbuf-2.0 GdkPixbuf - Image loading and scaling
 glib-2.0       GLib - C Utility Library
 gnome-vfs-2.0  gnome-vfs - The GNOME virtual file-system libraries
 gtk+-2.0       GTK+ - GIMP Tool Kit (x11 target)
 hildon-1       hildon - Hildon widgets library
 hildon-fm-2    hildon-fm - Hildon file management widgets
 pango          Pango - Internationalized text handling
 x11            X11 - X Library

&lt;code&gt;pkg-config&lt;/code&gt; also has some other useful commands:
 
 [sbox-FREMANTLE_X86: ~] &amp;gt; pkg-config --modversion gtk+-2.0
 2.10.12


 [sbox-FREMANTLE_X86: ~] &amp;gt; pkg-config --cflags gtk+-2.0
 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0
 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0
 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2
 -I/usr/include/libpng12

In this version of GTK+, all these commands are &lt;code&gt;-I&lt;/code&gt; options that tell the compiler which additional directories to check for system header files in addition to the default ones. 
 
 [sbox-FREMANTLE_X86: ~] &amp;gt; pkg-config --libs gtk+-2.0
 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm
 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2
 -ldl -lglib-2.0

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.

Now compile the software again, and this time use the compilation flags that &lt;code&gt;pkg-config&lt;/code&gt; provides: 

 [sbox-FREMANTLE_X86: ~] &amp;gt; gcc -Wall -g gtk_helloworld-1.c  \
  `pkg-config --cflags gtk+-2.0` -o gtk_helloworld-1
 /var/tmp/ccQ14x4c.o: In function `main':/home/user/gtk_helloworld-1.c:24:
  undefined reference to `gtk_init'
 :/home/user/gtk_helloworld-1.c:28: undefined reference to `gtk_window_get_type'
 :/home/user/gtk_helloworld-1.c:28: undefined reference to `g_object_new'
 :/home/user/gtk_helloworld-1.c:34: undefined reference to `gtk_label_get_type'
 :/home/user/gtk_helloworld-1.c:34: undefined reference to `g_object_new'
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `gtk_widget_get_type'
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `g_type_check_instance_cast'
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `gtk_container_get_type'
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `g_type_check_instance_cast'
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `gtk_container_add'
 :/home/user/gtk_helloworld-1.c:42: undefined reference to `gtk_widget_get_type'
 :/home/user/gtk_helloworld-1.c:42: undefined reference to `g_type_check_instance_cast'
 :/home/user/gtk_helloworld-1.c:42: undefined reference to `gtk_widget_show_all'
 :/home/user/gtk_helloworld-1.c:45: undefined reference to `g_print'
 :/home/user/gtk_helloworld-1.c:46: undefined reference to `gtk_main'
 :/home/user/gtk_helloworld-1.c:49: undefined reference to `g_print'
 collect2: ld returned 1 exit status

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 &lt;code&gt;`pkg-config --cflags gtk+-2.0`&lt;/code&gt;. Normal output from the commands is then read into the main shell and the output is replaced into the location where the backticks were. 
N.B. Use the backtick character (`) or falling accent. Do not use a rising accent (´) or a single quote or apostrophe ('). In some keyboard layouts, you can get the backtick character to appear by pressing first the backtic and then the space bar.

An alternative operation is &lt;code&gt;$(pkg-config ..)&lt;/code&gt;, which corresponds to the backtick but is less portable across antique UNIX shells. Choosing between these is a matter of taste.

GCC prints very different errors this time. These errors come from &lt;code&gt;ld&lt;/code&gt;, which is the binary code linker in Linux systems and complains about missing symbols (the undefined references). Obviously something is still missing.

You must tell the linker where to find the missing symbols. Because this is the linker and not the compiler that we are talking about, the missing symbols are in the library files.

To fix the problem (again using backticks), &lt;code&gt;pkg-config --libs&lt;/code&gt; can be used:

 [sbox-FREMANTLE_X86: ~] &amp;gt; gcc -Wall -g gtk_helloworld-1.c  \
  `pkg-config --cflags --libs gtk+-2.0` -o gtk_helloworld-1
 [sbox-FREMANTLE_X86: ~] &amp;gt;

The next step is to repeat the basic commands that you used before with the non-GUI hello world: 

 [sbox-FREMANTLE_X86: ~] &amp;gt; ls -l gtk_helloworld-1
 -rwxrwxr-x  1 user user 16278 Nov 20 00:22 gtk_helloworld-1
 [sbox-FREMANTLE_X86: ~] &amp;gt; file gtk_helloworld-1
 gtk_helloworld-1: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
 for GNU/Linux 2.6.0, dynamically linked (uses shared libs), not stripped
 [sbox-FREMANTLE_X86: ~] &amp;gt; ldd gtk_helloworld-1
   linux-gate.so.1 =&amp;gt;  (0xffffe000)
   libgtk-x11-2.0.so.0 =&amp;gt; /usr/lib/libgtk-x11-2.0.so.0 (0xb7c4c000)
   libgdk-x11-2.0.so.0 =&amp;gt; /usr/lib/libgdk-x11-2.0.so.0 (0xb7bc8000)
   libatk-1.0.so.0 =&amp;gt; /usr/lib/libatk-1.0.so.0 (0xb7bad000)
   libgdk_pixbuf-2.0.so.0 =&amp;gt; /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb7b97000)
   libm.so.6 =&amp;gt; /lib/libm.so.6 (0xb7b71000)
   libpangocairo-1.0.so.0 =&amp;gt; /usr/lib/libpangocairo-1.0.so.0 (0xb7b68000)
   libpango-1.0.so.0 =&amp;gt; /usr/lib/libpango-1.0.so.0 (0xb7b2b000)
   libcairo.so.2 =&amp;gt; /usr/lib/libcairo.so.2 (0xb7ab5000)
   libgobject-2.0.so.0 =&amp;gt; /usr/lib/libgobject-2.0.so.0 (0xb7a7a000)
   libgmodule-2.0.so.0 =&amp;gt; /usr/lib/libgmodule-2.0.so.0 (0xb7a76000)
   libdl.so.2 =&amp;gt; /lib/libdl.so.2 (0xb7a71000)
   libglib-2.0.so.0 =&amp;gt; /usr/lib/libglib-2.0.so.0 (0xb79dd000)
   libc.so.6 =&amp;gt; /lib/libc.so.6 (0xb78b2000)
   libX11.so.6 =&amp;gt; /usr/lib/libX11.so.6 (0xb77bd000)
   libXfixes.so.3 =&amp;gt; /usr/lib/libXfixes.so.3 (0xb77b8000)
   libXtst.so.6 =&amp;gt; /usr/lib/libXtst.so.6 (0xb77b3000)
   libfontconfig.so.1 =&amp;gt; /usr/lib/libfontconfig.so.1 (0xb7788000)
   libXext.so.6 =&amp;gt; /usr/lib/libXext.so.6 (0xb777a000)
   libXrender.so.1 =&amp;gt; /usr/lib/libXrender.so.1 (0xb7771000)
   libXi.so.6 =&amp;gt; /usr/lib/libXi.so.6 (0xb7769000)
   libXrandr.so.2 =&amp;gt; /usr/lib/libXrandr.so.2 (0xb7762000)
   libXcursor.so.1 =&amp;gt; /usr/lib/libXcursor.so.1 (0xb7759000)
   /lib/ld-linux.so.2 (0xb7fc3000)
   libpangoft2-1.0.so.0 =&amp;gt; /usr/lib/libpangoft2-1.0.so.0 (0xb772b000)
   libfreetype.so.6 =&amp;gt; /usr/lib/libfreetype.so.6 (0xb76c6000)
   libz.so.1 =&amp;gt; /usr/lib/libz.so.1 (0xb76b7000)
   libpng12.so.0 =&amp;gt; /usr/lib/libpng12.so.0 (0xb7692000)
   libXau.so.6 =&amp;gt; /usr/lib/libXau.so.6 (0xb768f000)
   libXdmcp.so.6 =&amp;gt; /usr/lib/libXdmcp.so.6 (0xb7689000)
   libexpat.so.1 =&amp;gt; /usr/lib/libexpat.so.1 (0xb7669000)

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.

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).

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.

You need all of these tools later on when starting the packaging of the software.

=== Running GUI Hello World ===

Let's try to execute Hello World inside Scratchbox: 

 [sbox-FREMANTLE_X86: ~] &amp;gt; ./gtk_helloworld-1
 gtk_helloworld-1[4759]: GLIB WARNING ** Gtk - cannot open display:
 [sbox-FREMANTLE_X86: ~] &amp;gt; echo $DISPLAY

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 &lt;code&gt;DISPLAY&lt;/code&gt; variable contains &lt;code&gt;:0.0&lt;/code&gt;, 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.

=== Starting Virtual X Server (Xephyr) ===

Run Xephyr outside the Scratchbox environment:

 $ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb &amp;

=== Directing Client to Virtual Server ===

Now that there is an X server running, switch back to Scratchbox.

The first step is to set the environmental variable so that the 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: 

 [sbox-FREMANTLE_X86: ~] &amp;gt; export DISPLAY=:2
 [sbox-FREMANTLE_X86: ~] &amp;gt; ./gtk_helloworld-1
 main: calling gtk_main
 [[Ctrl+c]]

Use Ctrl+C to terminate the program because it does not implement any graphical methods for closing. 

''N.B.'' The &lt;code&gt;DISPLAY&lt;/code&gt; needs to be set correctly on each Scratchbox login (or when switching targets).

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.

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 &lt;code&gt;bg&lt;/code&gt;. The process is &quot;paused&quot; between these two steps.

=== Starting Application Framework ===

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.

To start the UI Framework, you can use a handy script that comes with the SDK: 

 [sbox-FREMANTLE_X86: ~] &amp;gt; af-sb-init.sh start
 
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:

[[Image:UI-startup.png|frame|center|alt=Screenshot of SDK user interface|SDK UI]]

=== Running Hello World in Application Framework ===

While the UI framework is running, the Hello World can be started again 

[sbox-FREMANTLE_X86: ~] &gt;./gtk_helloworld-1

[[Image:helloworld-without-theme.png|frame|center|alt=Screenshot of test application showing ‘Hello World!’ in the centre of an unthemed window|Hello world]]

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). 

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.

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.

 [sbox-FREMANTLE_X86: ~] &gt;run-standalone.sh ./gtk_helloworld-1

[[Image:helloworld-with-theme.png|frame|center|alt=Screenshot of test application showing ‘Hello World!’ in the centre of a themed window|Themed Hello world]]

The screen is still a bit off (there are no borders around the main &lt;code&gt;GtkLabel&lt;/code&gt; 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).

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]
[[Category:Scratchbox]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK Virtual Images</title>
    <id>2310</id>
    <revision>
      <id>42549</id>
      <timestamp>2011-03-09T09:20:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Maemo SDK Virtual Image Content */ add link</comment>
      <text xml:space="preserve">== Introduction ==

Maemo SDK Virtual Images are a good option for those developers who do not want to spend time and effort to download, install and configure the Linux environment and all required tools for Maemo applications development. 

The Ubuntu Desktop-based Maemo SDK Virtual Image is an especially good choice to be used in Maemo development workshops and training sessions as it does not require any special configuration for attendees´ machines. It significantly reduces the dependencies of the host machine, such as installed operating system, other software and superuser privileges. All you need to do is install the virtualisation software of your choice to the host machine and deploy Maemo SDK Virtual Image for it. With this setup, attendees can launch the virtualisation environment (such as VMWare Player) as guest users without ever accessing the host environment with administration privileges. Inside Maemo SDK Virtual Image users have, of course, full administration privileges for the Ubuntu and Maemo SDK environments. Don’t hesitate to use Maemo SDK Virtual Images: they were created to make Maemo application development a lot easier!

This document provides a short set of instructions on how to properly install and configure Maemo SDK Virtual Image for your machine, including networking issues. 

=== Host hardware ===

At least 2GB of RAM and an additional 15 GB of free hard disk space for Desktop image (2 GB for Server image) is required from the host machine.

=== Host operating system ===

You can use Linuxes (Fedora and Debian-based Linuxes such as Debian, Ubuntu, and Kunbutu have been tested), Windows (Windows XP, Windows Vista and Windows 7 tested) or Mac OS X (Leopard and Snow Leopard tested) on your host machine.
  
=== Virtualization software ===

It is possible to use VMWare, VirtualBox or QEMU as a virtualisation environment. We strongly recommend you to use VMWare Player for some important reasons. At first, VMWare Player is free for other than the Mac OS X environment. It provides good support for host-guest communication. With VMWare Player, the USB, parallel port, CD/DVD, storage disks and TCP/IP network work properly. However, free VMWare Player does not provide support for Mac OS X, but you can use other VMWare products in Mac OS X (for example, VMWare Fusion). For VMWare Player 3.0 or 2.5 versions can be used (2.5 recommended as the first 3.x versions may have problems maintaining SSH connections).

For VirtualBox users, the functionality of free open source version is not enough, but the binary-only version (PUEL licensed) needs to be used for Maemo SDK Virtual Images. The performance of the VirtualBox PUEL version is about the same as with the VMWare environment, but licensing allows usage only for personal and evaluation purposes. VirtualBox 3.x versions are recommended.

For QEMU users, performance may be an issue. QEMU is a totally free virtualisation environment, but the performance is much worse than with VMWare or VirtualBox. Even with KQEMU QEMU Accelerator (that must be used to get a usable Maemo development environment), performance is not on the same level as with VMWare or VirtualBox.

=== List of required software ===

To be able to install and run Maemo SDK Virtual Image you need to have both 7-Zip uncompress tool and one of the supported virtualisation environments available.

* [http://www.7-zip.org/download.html 7zip uncompress] to uncompress Maemo SDK Virtual Image distribution archive.

* Virtualisation software: [http://www.vmware.com VMWare] (any VMWare product, such as VMWare Player, VMWare Workstation or VMWare Fusion), [http://www.virtualbox.org VirtualBox] PUEL release or [http://www.qemu.org QEMU].

== Maemo SDK Virtual Image Content ==

Maemo provides two different virtual images, Ubuntu Desktop and Ubuntu Server-based images. Both images can be updated from the repository using standard repository update methods. Ubuntu Karmic Linux installation can be updated from the standard Ubuntu Karmic repository, and Maemo development environments can be updated from Maemo Fremantle and Diablo SDK, Tools and Extras repositories.

Ubuntu Desktop-based image is an out-of-box ready development environment for Maemo that has full Fremantle and Diablo development environments preinstalled. 

Ubuntu Server-based image is an empty environment, mainly for [[Documentation/Maemo Eclipse Tutorial/Introduction|Maemo Eclipse IDE environment]] usage. With Server image it is possible to use a Maemo cross-compilation development environment (Scratchbox and Maemo SDK) in other than Debian-based Linuxes (as on Fedora, Windows and Mac OS X). Maemo ESbox Eclipse IDE provides an installation wizard to install empty Ubuntu Server-based Maemo SDK Virtual Image and other wizards to install the necessary Maemo Fremantle and Diablo development environments into it.

'''Ubuntu Desktop-based image includes:'''
* Ubuntu Desktop 9.04 Jaunty Jackalope
* Maemo Fremantle and Diablo SDK environments
* Maemo Host PC Connectivity Final release
* Maemo Eclipse Integration Final release
* Firefox web browser with bookmarks for commonly used programming APIs on Maemo
* Python programming environment on Scratchbox (i386 and ARMEL targets) and on Eclipse IDE
* C/C++ programming environments on Scratchbox (i386 and ARMEL targets) and on Eclipse IDE
* Qt4 programming environments on Scratchbox (i386 and ARMEL targets) and on Eclipse IDE
* Installation wizards for virtualisation performance tools 
** Installer for Official VMWare Tools 
** Installer for Open VMWare Tools 
** Installer for VirtualBox GuestAdditions 

'''Ubuntu Server-based image includes:'''
* Ubuntu Server 9.04 Jaunty Jackalope
* Maemo Host PC Connectivity Final release (without GUI applications)
* Installation wizards for virtualisation performance tools 
** Installer for Official VMWare Tools 
** Installer for Open VMWare Tools 
** Installer for VirtualBox GuestAdditions

== Maemo SDK Virtual Image Installation ==

'''Download Maemo SDK Virtual Image''' from the [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Maemo Development Environment downloads] page. Basically, there are two different Maemo SDK Virtual Images: one virtual image with Ubuntu Server installed, and another one with Ubuntu Desktop. The Ubuntu Server-based image does not have a Maemo development environment (such as Scratchbox or Maemo SDKs) preinstalled and is mainly used together with Maemo [https://esbox.garage.maemo.org ESbox] Eclipse IDE as a build environment. Maemo SDK VIrtual Image with Ubuntu Desktop is mainly used as an out-of-box ready Maemo development environment that has Scratchbox, Maemo Fremantle and Diablo SDK, and ESbox Eclipse IDE environments preinstalled.

'''Unzip Maemo SDK Virtual Image distribution archive''' with 7-Zip tool according to instructions at [http://maemovmware.garage.maemo.org/2nd_edition/installation_7zip.html this site]. Since the virtual images are very large files (for example, an image file with Ubuntu Desktop is about 9GB), the process to uncompress the image may take several minutes, depending on how fast your machine is. Generally, it takes about 5 minutes to uncompress Ubuntu Server-based Maemo SDK Virtual Image, and about 17 minutes to uncompress Ubuntu Desktop-based Maemo SDK Virtual Image. 

'''Once your virtual image has been uncompressed, it is ready to be used!'''  If you are using VMWare as a virtualisation environment, the Maemo SDK Virtual Image distribution package already provides a *.vmx description file that can be used to load Maemo virtual image. However, for VirtualBox and QEMU, it is necessary to perform some extra tasks:
* '''VirtualBox''': Maemo SDK Virtual Image distribution file does not provide a ready-made description file (such as *.vmx for VMWare players). Therefore, you need to install the image for your environment. For more information, visit [http://maemovmware.garage.maemo.org/2nd_edition/create_vbox_machine.html this link].
* '''QEMU''': It is important to install KQEMU Accelerator to speed up virtual environment execution. 

Examples of how to launch Maemo SDK Virtual Image with QEMU:

Starting QEMU on Linux 
 $ qemu -hda maemosdk_*_*.vmdk -L /usr/bin/qemu -m 512

Starting QEMU on Windows
 c:&gt; qemu.exe -hda maemosdk_*_*.vmdk -L C:\QEMU\pc-bios -m 512

== Networking ==

A networking proxy has not been configured for Maemo SDK Virtual Images by default. Therefore, if your network environment requires a proxy to enable network access from your host machine, you have to configure it in addition to your host machine also to the Maemo SDK Virtual Image, for example, for your Ubuntu Desktop or Server environment and Scratchbox installation INSIDE your Maemo SDK Virtual Image. 

For more information on how to configure proxy support for Ubuntu Desktop and Server installation, see [http://ubuntuforums.org/showthread.php?t=1575 Ubuntu HOWTO: Proxy Support].

For Scratchbox, &lt;nowiki&gt;it is necessary to define the http_proxy variable in format http://host:port/. If you have to authenticate yourself to the proxy server use format http://username:password@host:port/. To enable http_proxy variable, you need to add the following lines to root login file /root/.bashrc.&lt;/nowiki&gt;

 http_proxy=http://username:password@host:port/
 export http_proxy

== Known Issues ==

* Scratchbox does not initialise the resolv.conf file properly. This file defines DNS servers. Whenever Scratchbox is started, it copies /etc/resolv.conf from host PC BEFORE such a file has been updated by Ubuntu NetworkManager. If the resolv.conf file is wrong, network access does not work from inside Scratchbox.
** A workaround is to restart Scratchbox using the following command:

&lt;pre&gt;$ sudo /scratchbox/sbin/sbox_ctl restart&lt;/pre&gt;

== More Links ==

Current &quot;under development&quot; versions of the documentation can be found from Garage project [http://maemovmware.garage.maemo.org/2nd_edition/index.html Maemo SDK Virtual Images].

Current Maemo SDK Virtual Image versions can be downloaded from the [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Maemo Development Environment Downloads] page.

This image is geared towards GTK Development and is a vdmk image, which can be run on VMWare product, QEMU or VirtualBox.

= Virtual PC / VMWare Virtual Images =

Current VPC SDK Images can be picked up at [http://maemo.org/downloads/product/PC/vpc-sdk/ VPC Development Image]. The home page is located at:
[http://vpc-sdk.garage.maemo.org VPC-SDK Home Page]

This image is geared towards Qt Development and is a Virtual PC (vhd) image. VMWare products can also convert and use the image.

Either image can be used for either development (Qt or GTK), but each image has pre-installed software targeting the specific target environment.

== Further reading ==

More information about the products included to the Ubuntu Desktop-based Maemo SDK Virtual Image can be found from these websites and documents:

* [[PyMaemo]]
* [http://fabrice.bellard.free.fr/qemu/ QEMU]
* [http://scratchbox.org/ Scratchbox]
* [http://www.ubuntu.com/ Ubuntu]
* [http://valgrind.org/ Valgrind]
* [http://oprofile.sourceforge.net/ oprofile]
* [[Documentation/Maemo PC Connectivity Tutorial|Maemo PC connectivity tutorial]]
* [[Documentation/Maemo Eclipse Tutorial|Maemo Eclipse tutorial]]
* [http://news.softpedia.com/news/How-to-Fix-VirtualBox-USB-Support-111715.shtml How to fix VirtualBox USB support]
* [[Documentation/Maemo Eclipse Tutorial/Setting Up ESbox|Sbox/SDK Installation In Guest Server Image from Host System EsBox]]

Current &quot;under development&quot; versions of the documentation can be found from [http://maemovmware.garage.maemo.org/ Maemo SDK Virtual Image] Garage project.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/GNU Build System</title>
    <id>2297</id>
    <revision>
      <id>49741</id>
      <timestamp>2012-09-20T18:58:37Z</timestamp>
      <contributor>
        <username>dukenukem</username>
        <id>5441</id>
      </contributor>
      <text xml:space="preserve">The following code examples are used in this chapter:

* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/ simple-make-files]
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/ autoconf-automake]

== GNU Make and Makefiles ==

The &lt;code&gt;make&lt;/code&gt; program from the GNU project is a powerful tool to aid implementing automation in the software building process. Beside this, it can be used to automate any task that uses files and in which these files are transformed into some other form. Make by itself does not know what the files contain or what they represent, but using a simple syntax it can be taught how to handle them.

When developing software with gcc (and other tools), gcc is often invoked repeatedly with the same parameters and flags. After changing one source file, it is noticed that other output files need to be rebuilt, and even the whole application if some interface has changed between the functions. This might happen whenever declarations change, new parameters are added to function prototypes, and so on.

These tasks can always be performed manually, but after a while a nicer way is more desirable.

GNU make is a software building automation tool that will execute repetitive tasks. It is controlled via a '''Makefile''' that contains lists of dependencies between different source files and output files. It also contains lists of commands that should be executed to satisfy these dependencies. Make uses the '''timestamps''' of files and the information of the files' existence to automate the rebuilding of applications (targets in make), as well as the rules that are specified in the Makefile.

Make can be used for other purposes as well. A target can easily be created for installing the built software on a destination computer, a target for generating documentation by using some automatic documentation generation tool, and so on. Some people use make to keep multiple Linux systems up to date with the newest software and various system configuration changes. In short, make is flexible enough to be generally useful.

[[Image:make.png|center|frame|alt=Diagram of project dependencies|The dependencies between different files making up a software project]]

The aim of make is to satisfy the target. Each target has its own dependencies. A user generally selects a target for make to satisfy by supplying the target name on the command line. Make starts by checking whether all of the dependencies exist and have an older timestamp than the target. If so, make  does nothing, because nothing has changed. However, because a header file (that an application is not dependent on directly) can change, make propagates the changes to the 'root' of the target as shown in the picture above.

Make rebuilds all of the necessary dependencies and targets on the way towards the target. This way, make only rebuilds those dependencies that actually affect something, and thus, saves time and effort. In big projects, the amount of time saved is significant.

To illustrate this, suppose that '''file3.c''' in the above picture is modified. After that, make is run, and it will automatically rebuild the necessary targets ('''file3.o''', '''libutil.a''' and '''app'''):

[[Image:make-mod1.png|center|frame|alt=Diagram of project files that need to be rebuilt|Project files that need to be rebuilt after file3.c is modified]]

Now suppose that another function is added to '''file1.c'''. Then also '''util.h''' needs to be modified accordingly. The picture shows that quite a few objects and targets depend on this header file, so a sizable number of objects need to be rebuilt (but not all):

[[Image:make-mod2.png|center|frame|alt=Diagram of project files that need to be rebuilt|Project files that need to be rebuilt after file1.c and util.h are modified]]

N.B. In the example pictures, there is a project with a custom static library, which is linked against the test application.

=== Simple Real Example ===

Before delving too deeply into the syntax of makefiles, it is instructive to first see make in action. For this, a simple project will be used, written in the C language.

In C, it is customary to write &quot;header&quot; files (conventional suffix for them is '''.h''') and regular source files ('''.c'''). The header files describe calling conventions, APIs and structures that are to be made usable for the outside world. The .c files contain the implementation of these interfaces.

The first rule in this is: if something is changed in the interface file, the binary file containing the code implementation (and other files that use the same interface) must be regenerated. Regeneration in this case means invoking gcc to create the binary file out of the C-language source file.

Make needs to be told two things at this point:

* If a file's content changes, which other files will be affected? Because a single interface likely affects multiple other files, make uses a reversed ordering here. For each resulting file, it is necessary to list the files on which this one file depends on.
* What are the commands to regenerate the resulting files when the need arises?

This example deals with that as simply as possible. There is a project that consists of two source files and one header file. The contents of these files are listed below: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/hello.c simple-make-files/hello.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * The old faithful hello world.
 *
 * This maemo code example is licensed under a MIT-style license,
 * that can be found in the file called &quot;License&quot; in the same
 * directory as this file.
 * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
 */
#include &lt;stdlib.h&gt;    /* EXIT_* */
#include &quot;hello_api.h&quot; /* sayhello */
int main(int argc, char **argv) {
  sayhello();
  return EXIT_SUCCESS;
}
&lt;/source&gt;

[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/hello_func.c simple-make-files/hello_func.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * Implementation of sayhello.
 *
 * This maemo code example is licensed under a MIT-style license,
 * that can be found in the file called &quot;License&quot; in the same
 * directory as this file.
 * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
 */

#include &lt;stdio.h&gt;     /* printf */
#include &quot;hello_api.h&quot; /* sayhello declaration */

void sayhello(void) {
  printf(&quot;Hello world!\n&quot;);
}
&lt;/source&gt;

[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/hello_api.h simple-make-files/hello_api.h]

&lt;source lang=&quot;c&quot;&gt;
/**
 * Interface description for the hello_func module.
 *
 * This maemo code example is licensed under a MIT-style license,
 * that can be found in the file called &quot;License&quot; in the same
 * directory as this file.
 * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
 */

#ifndef INCLUDE_HELLO_API_H
#define INCLUDE_HELLO_API_H
/* The above is protection against circular header inclusion. */

/* Function to print out &quot;Hello world!\n&quot;. */
extern void sayhello(void);

#endif
/* ifndef INCLUDE_HELLO_API_H */
&lt;/source&gt;

So, in effect, there is the main application in '''hello.c''', which uses a function that is implemented in '''hello_func.c''' and declared in '''hello_api.h'''. Building an application out of these files can be performed manually like this:

 gcc -Wall hello.c hello_func.c -o hello

Or, it can be done in three stages:

 gcc -Wall -c hello.c -o hello.o
 gcc -Wall -c hello_func.c -o hello_func.o
 gcc -Wall hello.o hello_func.o -o hello

In both cases, the resulting application ('''hello''') will be the same.

In the first case, gcc is instructed to process all source files in one go, link the resulting object code and store that code (program in this case) into '''hello'''.

In the second case, gcc is instructed to create a binary object file for each of the source files. After that, gcc is instructed to link these output files ('''hello.o''' and '''hello_func.o''') together, and store the linked code into '''hello'''.

{{ambox|text=When gcc reads through the C source files, it also reads in the header files, because the C code uses the &lt;code&gt;#include&lt;/code&gt; preprocessor directive. This is because gcc internally runs all files ending with .c through cpp (the preprocessor) first.}}

The file describing this situation to make is as follows: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile simple-make-files/Makefile]

&lt;source lang=&quot;make&quot;&gt;
# define default target (first target = default)
# it depends on 'hello.o' (which will be created if necessary)
# and hello_func.o (same as hello.o)
hello: hello.o hello_func.o
        gcc -Wall hello.o hello_func.o -o hello
# define hello.o target
# it depends on hello.c (and is created from it)
# also depends on hello_api.h which would mean that
# changing the hello.h api would force make to rebuild
# this target (hello.o).
# gcc -c: compile only, do not link
hello.o: hello.c hello_api.h
        gcc -Wall -c hello.c -o hello.o
# define hello_func.o target
# it depends on hello_func.c (and is created from)
# and hello_api.h (since that's its declaration)
hello_func.o: hello_func.c hello_api.h
        gcc -Wall -c hello_func.c -o hello_func.o
# 
&lt;/source&gt;

This file is in the simplest form without using any variables or relying on built-in magic in GNU make. Later it will be shown that the same rules can be written in a much shorter way.

This makefile can be tested by running make in the directory that contains the makefile and the source files:

 user@system:~$ make
 gcc -Wall -c hello.c -o hello.o
 gcc -Wall -c hello_func.c -o hello_func.o
 gcc -Wall hello.o hello_func.o -o hello

The resulting files after running make:
 user@system:~$ ls -la
 total 58
 drwxr-xr-x 3  user user 456  Aug 11 15:04 .
 drwxr-xr-x 13 user user 576  Aug 11 14:56 ..
 -rw-r--r-- 1  user user 699  Jun 1  14:48 Makefile
 -rwxr-xr-x 1  user user 4822 Aug 11 15:04 hello
 -rw-r--r-- 1  user user 150  Jun 1  14:48 hello.c
 -rw-r--r-- 1  user user 824  Aug 11 15:04 hello.o
 -rw-r--r-- 1  user user 220  Jun 1  14:48 hello_api.h
 -rw-r--r-- 1  user user 130  Jun 1  14:48 hello_func.c
 -rw-r--r-- 1  user user 912  Aug 11 15:04 hello_func.o

Executing the binary:

 user@system:~$ ./hello
 Hello world!

=== Anatomy of Makefile ===

From the simple example above, some of the syntax of 'make' can be deduced.

Here are the rules that can be learned:

* Comments are lines that start with the #-character. To be more precise, when make reads the makefile, it will ignore the #-character and any characters after it up to the end of the line. This means that comments can also be put at the end of lines, and make will ignore them, but this is considered bad practice as it would lead to subtle problems later on.
* The backslash character (&lt;code&gt;\&lt;/code&gt;) can be used to escape the special meaning of the next character. The most important special character in makefiles is the dollar character ($), which is used to access the contents of variables. There are also other special characters. To continue a line that is too long, the newline character can be escaped on that line. When the backslash is put at the end of the line, make ignores the newline when reading input.
* Empty lines by themselves are ignored.
* A line that starts at column 0 (start of the line) and contains a colon character (:) is considered a rule. The name on the left side of the colon is created by the commands. This name is called a target. Any filenames specified after the colon are the files that the target depends on. They are called prerequisites (i.e. they are required to exist, before make decides to create the target.
* Lines starting with the tabulation character (tab) are commands that make  runs to achieve the target.

In the printed material, the tabs are represented with whitespace, so be careful when reading the example makefiles. Note also that in reality, the command lines are considered as a part of the rule.

Using these rules, it can now be deduced that:

* make regenerates '''hello''' when either or both of its prerequisites change. So, if either '''hello.o''' or '''hello_func.o''' change, make  regenerates '''hello''' by using the command: &lt;code&gt;gcc -Wall hello.o hello_func.o -o hello&lt;/code&gt;
* If either '''hello.c''' or '''hello_api.h''' change, make  regenerates '''hello.o'''.
* If either '''hello_func.c''' or '''hello_api.h''' change, make regenerates &lt;br /&gt;'''hello_func.o'''.

=== Default Goal ===

Note that make was not explicitly told what it should do by default when run without any command line parameters (as was done above). How does it know that creating '''hello''' is the target for the run?

The first target given in a makefile is the default target. A target that achieves some higher-level goal (like linking all the components into the final application) is sometimes called a goal in GNU make documentation.

So, the first target in the makefile is the default goal when make is run without command line parameters.

N.B. Make automatically learns the dependencies between the various components and deduces that to create '''hello''', it also needs to create '''hello.o''' and '''hello_func.o'''. Make regenerates the missing prerequisites when necessary. In fact, this is a quality that causes make do its magic.

Because the prerequisites for hello (hello.o and hello_func.o) do not exist, and hello is the default goal, make first creates the files that the hello target needs. This can be evidenced from the screen capture of make running without command line parameters. It shows the execution of each command in the order that make decides is necessary to satisfy the default goal's prerequisites, and finally create the hello.

 user@system:~$ make
 gcc -Wall -c hello.c -o hello.o
 gcc -Wall -c hello_func.c -o hello_func.o
 gcc -Wall hello.o hello_func.o -o hello

=== Names of Makefiles ===

The recommended name for the makefile is '''Makefile'''. This is not the first filename that GNU make tries to open, but it is the most portable one. In fact, the order of filenames that make attempts to open is: '''GNUMakefile''', '''Makefile''' and finally '''makefile'''.

Unless you are sure that your makefile does not work on other make systems (not GNU), refrain from using GNUMakefile. Makefile will be used here for the most of this material. The idea behind using Makefile instead of makefile is related to how shells and commands sort filenames, when contents of directories are requested. Because in ASCII the uppercase letters come before the lowercase letters, the important files are listed first. Makefiles are considered important, because they are the basis for building the project. (The collation order might be different in your locale and your environment.)

Make can explicitly be told which file to read by using the -f command line option. This option is used in the next example.

=== Questions ===

Based on common sense, what should make do when it is run after:

* Deleting the hello file?
* Deleting the hello.o file?
* Modifying hello_func.c?
* Modifying hello.c?
* Modifying hello_api.h?
* Deleting the Makefile?

What would be done when writing the commands manually?

=== Adding Make Goals ===

Sometimes it is useful to add targets, whose execution does not result in a file, but instead causes some commands to be run. This is commonly used in makefiles of software projects to get rid of the binary files, so that building can be attempted from a clean state. These kinds of targets can also be justifiably called goals. GNU documentation uses the name &quot;phony target&quot; for these kinds of targets, because they do not result in creating a file, like normal targets do.

The next step is to create a copy of the original makefile, and add a goal that removes the binary object files and the application. 
N.B. Other parts of the makefile do not change. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.2 simple-make-files/Makefile.2]

&lt;source lang=&quot;make&quot;&gt;
# add a cleaning target (to get rid of the binaries)
# define default target (first target = default)
# it depends on 'hello.o' (which must exist)
# and hello_func.o
hello: hello.o hello_func.o
        gcc -Wall hello.o hello_func.o -o hello
# define hello.o target
# it depends on hello.c (and is created from)
# also depends on hello_api.h which would mean that
# changing the hello.h api would force make to rebuild
# this target (hello.o).
# gcc -c: compile only, do not link
hello.o: hello.c hello_api.h
        gcc -Wall -c hello.c -o hello.o
# define hello_func.o target
# it depends on hello_func.c (and is created from)
# and hello_api.h (since that's it's declaration)
hello_func.o: hello_func.c hello_api.h
        gcc -Wall -c hello_func.c -o hello_func.o
# This is the definition of the target 'clean'
# Here we'll remove all the built binaries and
# all the object files that we might have generated
# Notice the -f flag for rm, it means &quot;force&quot; which
# in turn means that rm will try to remove the given
# files, and if there are none, then that's ok. Also
# it means that we have no writing permission to that
# file and have writing permission to the directory
# holding the file, rm will not then ask for permission
# interactivelly.
clean:
        rm -f hello hello.o hello_func.o
&lt;/source&gt;

To get make to use this file instead of the default Makefile, use the -f command line parameter as follows:

 user@system:~$ make -f Makefile.2
 gcc -Wall -c hello.c -o hello.o
 gcc -Wall -c hello_func.c -o hello_func.o
 gcc -Wall hello.o hello_func.o -o hello

To control which target make processes (instead of the default goal), give the target name as a command line parameter like this:
 user@system:~$ make -f Makefile.2 clean
 rm -f hello hello.o hello_func.o

No binary files remain in the directory:
 user@system:~$ ls -la
 total 42
 drwxr-xr-x 3  user user 376  Aug 11 15:08 .
 drwxr-xr-x 13 user user 576  Aug 11 14:56 ..
 -rw-r--r-- 1  user user 699  Jun 1  14:48 Makefile
 -rw-r--r-- 1  user user 1279 Jun 1  14:48 Makefile.2
 -rw-r--r-- 1  user user 150  Jun 1  14:48 hello.c
 -rw-r--r-- 1  user user 220  Jun 1  14:48 hello_api.h
 -rw-r--r-- 1  user user 130  Jun 1  14:48 hello_func.c

=== Making One Target at a Time ===

Sometimes it is useful to ask make to process only one target. Similar to the clean case, it just needs the target name to be given on the command line:

 user@system:~$ make -f Makefile.2 hello.o
 gcc -Wall -c hello.c -o hello.o

Multiple target names can also be supplied as individual command line parameters:

 user@system:~$ make -f Makefile.2 hello_func.o hello
 gcc -Wall -c hello_func.c -o hello_func.o
 gcc -Wall hello.o hello_func.o -o hello

This can be done with any number of targets, even phony ones. Make tries to complete all of them in the order that they are on the command line. If any of the commands within the targets fail, make aborts at that point, and does not pursue the rest of the targets.

=== PHONY Keyword ===

Suppose that for some reason a file called '''clean''' appears in the directory in which make is run with clean as the target. In this case, make probably decides that because clean already exists, there is no need to run the commands leading to the target, and in this case, make does not run the rm command at all. Clearly this is something that needs to be avoided.

For these cases, GNU make provides a special target called &lt;code&gt;.PHONY&lt;/code&gt; (note the leading dot). The real phony targets (clean) will be listed as a dependency to &lt;code&gt;.PHONY&lt;/code&gt;. This signals to make that it should never consider a file called clean to be the result of the phony target.

In fact, this is what most open source projects that use make do.

This leads in the following makefile (comments omitted for brevity): [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.3 simple-make-files/Makefile.3]

&lt;source lang=&quot;make&quot;&gt;
hello: hello.o hello_func.o
        gcc -Wall hello.o hello_func.o -o hello
hello.o: hello.c hello_api.h
        gcc -Wall -c hello.c -o hello.o
hello_func.o: hello_func.c hello_api.h
        gcc -Wall -c hello_func.c -o hello_func.o
.PHONY: clean
clean:
        rm -f hello hello.o hello_func.o
&lt;/source&gt;

=== Specifying Default Goal ===

Make uses the first target in a makefile as its default goal. What if there is a need to explicitly set the default goal instead? Because it is not possible to actually change the &quot;first target is the default goal&quot; setting in make, this needs to be taken into account. So, a new target has to be added, and made sure that it will be processed as the first target in a makefile.

To achieve this, a new phony target must be created, and the wanted targets should be listed as the phony target's prerequisites. Any name can be used for the target, but all is a very common name for this use. The only thing that needs to be rememberd is that this target needs to be the first one in the makefile. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.4 simple-make-files/Makefile.4]

&lt;source lang=&quot;make&quot;&gt;
.PHONY: all
all: hello
hello: hello.o hello_func.o
        gcc -Wall hello.o hello_func.o -o hello
hello.o: hello.c hello_api.h
        gcc -Wall -c hello.c -o hello.o
hello_func.o: hello_func.c hello_api.h
        gcc -Wall -c hello_func.c -o hello_func.o
.PHONY: clean
clean:
        rm -f hello hello.o hello_func.o
&lt;/source&gt;

Something peculiar can be seen in the listing above. Because the first target is the default goal for make, would that not make &lt;code&gt;.PHONY&lt;/code&gt; now to be the default target? Because &lt;code&gt;.PHONY&lt;/code&gt; is a special target in GNU make, this is safe. Also, because of compatibility reasons, GNU make ignores any targets that start with a leading dot (.) when looking for the default goal.

=== Other Common Phony Goals ===

Many other phony goals are encountered in makefiles that projects use.

Some of the more common ones include:

* install: Prerequisites for install is the software application binary (or binaries). The commands (normally ''install'' is used on Linux) will specify which binary file to place under which directory on the system (&lt;code&gt;/usr/bin&lt;/code&gt;, &lt;code&gt;/usr/local/bin&lt;/code&gt;, etc).
* distclean: Similar to clean; removes object files and such, but removes other files as well (sounds scary). Normally this is used to implement the removal of Makefile in the case that it was created by some automatic tool (''configure'' for example).
* package: Prerequisites are as in install, but instead of installing, creates an archive file (''tar'') with the files in question. This archive can then be used to distribute the software.

For information on other common phony targets, see [http://www.gnu.org/software/make/manual/make.html GNU make manual].

=== Variables in Makefiles ===

So far these files have been listing filenames explicitly. Writing makefiles this way can get rather tedious, if not error prone.

This is why all make programs (not just the GNU variant) provide variables. Some other make programs call them macros.

Variables work almost as they do inside regular UNIX command shells. They are a simple mechanism, by which a piece of text can be associated with a name that can be referenced later on in multiple places in the makefiles. Make variables are based on text replacement, just like shell variables are.

==== Variable Flavors ====

The variables that can be used in makefiles come in two basic styles or flavors.

The default flavor is where referencing a variable causes make to expand the variable contents at the point of reference. This means that if the value of the variable is some text in which other variables are referenced, their contents is also replaced automatically. This flavor is called recursive.

The other flavor is simple, meaning that the content of a variable is evaluated only once, when the variable is defined.

Deciding on which flavor to use is important, when the evaluation of variable contents needs to be repeatable and fast. In these cases, simple variables are often the correct solution.

===== Recursive Variables =====

Here are the rules for creating recursive variables:

* Names must contain only ASCII alphanumerics and underscores (to preserve portability).
* Use only lowercase letters in the names of the variables. Make is case sensitive, and variable names written in capital letters are used when it is necessary to communicate the variables outside make, or their origin is from outside (environment variables). This is, however, only a convention, and there will also be variables that are local to the makefile, but still written in uppercase.
* Values can contain any text. The text is evaluated by make when the variable is used, not when it is defined.
* Break up long lines with a backslash character (&lt;code&gt;\&lt;/code&gt;) and newline combination. Use this same mechanism to continue other long lines as well (not just variables). Do not put any whitespace after the backslash.
* Do not reference a variable that is being defined in its text portion. This results in an endless loop whenever this variable is used. If this happens GNU make stops to an error.

Now the previously used makefile is reused, but some variables are introduced. This also shows the syntax of defining the variables, and how to use them (reference them): [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.5 simple-make-files/Makefile.5]

&lt;source lang=&quot;make&quot;&gt;
# define the command that we use for compilation
CC = gcc -Wall
# which targets do we want to build by default?
# note that 'targets' is just a variable, its name
# does not have any special meaning to make
targets = hello
# first target defined will be the default target
# we use the variable to hold the dependencies
.PHONY: all
all: $(targets)
hello: hello.o hello_func.o
        $(CC) hello.o hello_func.o -o hello
hello.o: hello.c hello_api.h
        $(CC) -c hello.c -o hello.o
hello_func.o: hello_func.c hello_api.h
        $(CC) -c hello_func.c -o hello_func.o
# we'll make our cleaning target more powerful
# we remove the targets that we build by default and also
# remove all object files
.PHONY: clean
clean:
        rm -f $(targets) *.o
&lt;/source&gt;

The CC variable is the standard variable to hold the name of the C compiler executable. GNU make comes preloaded with a list of tools that can be accessed in similar way (as will be shown with $(RM) shortly, but there are others). Most UNIX tools related to building software already have similar pre-defined variables in GNU make. Here one of them is overridden to demonstrate how it is done. Overriding variables like this is not recommended, because the user running make later might want to use some other compiler, and would have to edit the makefile to do so.

===== Simple Variables =====

Suppose you have a makefile like this: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.6 simple-make-files/Makefile.6]

&lt;source lang=&quot;make&quot;&gt;
CC = gcc -Wall
# we want to add something to the end of the variable
CC = $(CC) -g
hello.o: hello.c hello_api.h
        $(CC) -c hello.c -o hello.o
&lt;/source&gt;

What might seem quite logical to a human reader, does not seem very logical to make.

Because the contents of recursive variables are evaluated when they are referenced, it can be seen that the above fragment will lead to an infinite loop.

How can this be corrected? Make actually provides two mechanisms for this. This is the solution with simple variables: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.7 simple-make-files/Makefile.7]

&lt;source lang=&quot;make&quot;&gt;
CC := gcc -Wall
# we want to add something to the end of the variable
CC := $(CC) -g
hello.o: hello.c hello_api.h
        $(CC) -c hello.c -o hello.o
&lt;/source&gt;

Notice that the equals character (=) has been changed into := .

This is how simple variables are created. Whenever a simple variable is referenced, make just replaces the text that the variable contains without evaluating it. It does the evaluation only when the variable is defined. In the above example, &lt;code&gt;CC&lt;/code&gt; is created with the content of &lt;code&gt;gcc -Wall&lt;/code&gt; (which is evaluated, but is just plain text), and when the &lt;code&gt;CC&lt;/code&gt; variable is defined next time, make evaluates &lt;code&gt;$(CC) -g&lt;/code&gt; which is replaced with &lt;code&gt;gcc -Wall -g&lt;/code&gt;.

So, the only two differences between the variable flavors are:

* When defining simple variables, := is used.
* make evaluates the contents, when the simple variable is defined, not when it is referenced later.

Most of the time it is advisable to use the recursive variable flavor, because it does what is wanted.

Two ways of appending text to an existing variable were mentioned. The other mechanism is the += operation as follows: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.8 simple-make-files/Makefile.8]

&lt;source lang=&quot;make&quot;&gt;
CC = gcc -Wall
# we want to add something to the end of the variable
CC += -g
hello.o: hello.c hello_api.h
        $(CC) -c hello.c -o hello.o
&lt;/source&gt;

The prepending operation can also be used with simple variables. Make will not change the type of variable on the left side of the += operator.

===== Automatic Variables =====

There is a pre-defined set of variables inside make that can be used to avoid repetitive typing, when writing out the commands in a rule.

This is a list of the most useful ones:

* &lt;code&gt;$&amp;lt;&lt;/code&gt; : replaced by the first prerequisite of the rule.
* &lt;code&gt;$^&lt;/code&gt; : replaced by the list of all prerequisites of the rule.
* &lt;code&gt;$@&lt;/code&gt; : replaced by the target name.
* &lt;code&gt;$?&lt;/code&gt; : list of prerequisites that are newer than the target is (if target does not exist, they are all considered newer).

By rewriting the makefile using automatic variables, the result is: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.9 simple-make-files/Makefile.9]

&lt;source lang=&quot;make&quot;&gt;
# add the warning flag to CFLAGS-variable
CFLAGS += -Wall
targets = hello
.PHONY: all
all: $(targets)
hello: hello.o hello_func.o
        $(CC) $^ -o $@
hello.o: hello.c hello_api.h
        $(CC) $(CFLAGS) -c $&lt; -o $@
hello_func.o: hello_func.c hello_api.h
        $(CC) $(CFLAGS) -c $&lt; -o $@
.PHONY: clean
clean:
        $(RM) $(targets) *.o
&lt;/source&gt;

Notice the cases when &lt;code&gt;$^&lt;/code&gt; is used instead of &lt;code&gt;$&amp;lt;&lt;/code&gt; in the above snippet. It is not desired to pass the header files for compilation to the compiler, because the source file already includes the header files. For this reason, &lt;code&gt;$&amp;lt;&lt;/code&gt; is used. On the other hand, when linking programs and there are multiple files to put into the executable, &lt;code&gt;$^&lt;/code&gt; would normally be used.

This relies on a couple of things:

* &lt;code&gt;$(RM)&lt;/code&gt; and &lt;code&gt;$(CC)&lt;/code&gt; will be replaced with paths to the system compiler and removal commands.
* &lt;code&gt;$(CFLAGS)&lt;/code&gt; is a variable that contains a list of options to pass whenever make invokes the C compiler.

It can also be noticed that all these variable names are in uppercase. This signifies that they have been communicated from the system environment to make. In fact, if creating an environment variable called &lt;code&gt;CFLAGS&lt;/code&gt;, make will create it internally for any makefile that it will process. This is the mechanism to communicate variables into makefiles from outside.

Writing variables in uppercase is a convention signaling external variables, or environmental variables, so this is the reason why lowercase should be used in own private variables within a Makefile.

=== Integrating with Pkg-Config ===

The above has provided the knowledge to write a simple Makefile for the Hello World example. To get the the result of [http://pkg-config.freedesktop.org/wiki/ pkg-config], the GNU make &lt;code&gt;$(shell command params)&lt;/code&gt; function will be used here. Its function is similar to the backtick operation of the shell. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.10 simple-make-files/Makefile.10]

&lt;source lang=&quot;make&quot;&gt;
# define a list of pkg-config packages we want to use
pkg_packages := gtk+-2.0 hildon-1
# get the necessary flags for compiling
PKG_CFLAGS := $(shell pkg-config --cflags $(pkg_packages))
# get the necessary flags for linking
PKG_LDFLAGS := $(shell pkg-config --libs $(pkg_packages))
# additional flags
# -Wall: warnings
# -g: debugging
ADD_CFLAGS := -Wall -g
# combine the flags (so that CFLAGS/LDFLAGS from the command line
# still work).
CFLAGS  := $(PKG_CFLAGS) $(ADD_CFLAGS) $(CFLAGS)
LDFLAGS := $(PKG_LDFLAGS) $(LDFLAGS)
targets = hildon_helloworld-1
.PHONY: all
all: $(targets)
hildon_helloworld-1: hildon_helloworld-1.o
        $(CC) $^ -o $@ $(LDFLAGS)
hildon_helloworld-1.o: hildon_helloworld-1.c
        $(CC) $(CFLAGS) -c $&lt; -o $@
.PHONY: clean
clean:
        $(RM) $(targets) *.o
&lt;/source&gt;

You might wonder, where the &lt;code&gt;CC&lt;/code&gt; and &lt;code&gt;RM&lt;/code&gt; variables come from. They certainly were not declared anywhere in the Makefile. GNU make comes with a list of pre-defined variables for many programs and their arguments. GNU make also contains a preset list of pattern rules (which will not be dealt here), but basically these are pre-defined rules that are used when (for example) one needs an .o file from an .c file. The rules that were manually specified above are actually the same rules that GNU make already contains, so the Makefile can be made even more compact by only specifying the dependencies between files.

This leads to the following, slightly simpler version: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.11 simple-make-files/Makefile.11]

&lt;source lang=&quot;make&quot;&gt;
# define a list of pkg-config packages we want to use
pkg_packages := gtk+-2.0 hildon-1
PKG_CFLAGS := $(shell pkg-config -cflags $(pkg_packages))
PKG_LDFLAGS := $(shell pkg-config -libs $(pkg_packages))
ADD_CFLAGS := -Wall -g
# combine the flags
CFLAGS  := $(PKG_CFLAGS) $(ADD_CFLAGS) $(CFLAGS)
LDFLAGS := $(PKG_LDFLAGS) $(LDFLAGS)
targets = hildon_helloworld-1
.PHONY: all
all: $(targets)
# we can omit the rules and just specify the dependencies
# for our simple project this doesn't seem like a big win
# but for larger projects where you have multiple object
# files, this will save considerable time.
hildon_helloworld-1: hildon_helloworld-1.o
hildon_helloworld-1.o: hildon_helloworld-1.c
.PHONY: clean
clean:
        $(RM) $(targets) *.o
&lt;/source&gt;

== GNU Autotools ==

Creating portable software written in the C language has historically been challenging. The portability issues are not restricted just to the differences between binary architectures, but also encompass differences in system libraries and different implementations of UNIX APIs in different systems. This section introduces GNU autotools as one solution for managing this complexity. There are also other tools available, but the most likely to be encountered are autotoolized projects and also Debian packaging supports autotools.

=== Brief History of Managing Portability ===

When discussing portability challenges with C code, various issues crop up:

* Same library function has differing prototypes in different UNIX-style systems.
* Same library function has differing implementations between systems (this is a difficult problem).
* Same function can be found in different libraries in different UNIX systems, and because of this, the linker parameters need to be modified when making the final linking of the project.
* Besides these not so obvious problems, there is also of course the problem of potentially different architecture, and hence different sizes for the standard C data types. This problem is best fixed by using GLib (as in this case), so it is not covered here.
* GLib also provides the necessary macros to do endianess detection and conversion.

The historical solutions to solve these problems can be roughly grouped as follows:

* The whole software is built with one big shell script, which tries to pass the right options to different compilers and tools. However, such scripts are very hard to maintain and their use is strongly discouraged.
* Makefiles (GNU or other kind) allow some automation in building, but do not directly solve any of the portability issues. The classical solution is to ship various makefiles already tailored for different UNIX systems, and make it the user's responsibility to select the appropriate Makefile to use for their system. However, quite often this method required the Makefile to be edited, so the user had to be knowledgeable in UNIX programming tools. A good example of this style is found in some of the older versions of the game nethack.
* Some parts of the Makefile selection above can be automated by a suitable script that tries to guess the system on which it is running and select a suitably prepared Makefile. However, maintaining such scripts is quite hard, because there have been so many different kinds of systems, such as different library versions and different compilers.
* Even the creation of Makefiles can be automated from a script that guesses the system. Such scripts are normally called '''configure''' or '''Configure''' and are marked as executable for the sake of convenience. The name of the script does not automatically mean that the script is related to GNU autotools.
* Two major branches of these master configure scripts evolved, each operating slightly differently and catering for differing needs.
* These two scripts and a third guessing script were then combined into GNU autoconf. Because this happened many years ago, most of the historical code has already been purged from GNU autoconf.

Besides autoconf, it became evident that a more general Makefile generation tool can be useful as part of the whole process. This is how GNU automake was born. GNU automake can also be used outside autoconf. A simple autoconf configuration file is presented next.

=== GNU Autoconf ===

Autoconf is a tool that uses the GNU m4 macro preprocessor to process the configuration file and output a shell script based on the macros used in the file. Anything that m4 does not recognize as a macro is passed verbatim to the output script. This means that almost any wanted shell script fragments can be included into the &lt;code&gt;configure.ac&lt;/code&gt; file (the modern name for the default configuration file for autoconf).

The first subject here is a simple example to see how the basic configuration file works. Then some limitations of m4 syntax are covered, and hints on how to avoid problems with the syntax are given. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example1/configure.ac autoconf-automake/example1/configure.ac]

&lt;source lang=&quot;autoconf&quot;&gt;
# Specify the &quot;application name&quot; and application version
AC_INIT(hello, version-0.1)

# Because autoconf passes trough anything that it does not recognize
# into the final script ('configure'), we can use any valid shell
# statements here. Note that you should restrict your shell to
# standard features that are available in all UNIX shells, but in our
# case, we are content with the most used shell on Linux systems
# (bash).
echo -e &quot;\n\nHello from configure (using echo)!\n\n&quot;

# We can use a macro for this messages. This is much preferred as it
# is more portable.
AC_MSG_NOTICE([Hello from configure using msg-notice!])

# Check that the C Compiler works.
AC_PROG_CC
# Check what is the AWK-program on our system (and that one exists).
AC_PROG_AWK
# Check whether the 'cos' function can be found in library 'm'
# (standard C math library).
AC_CHECK_LIB(m, cos)
# Check for presence of system header 'unistd.h'.
# This also tests a lot of other system include files (it is
# semi-intelligent in determining which ones are required).
AC_CHECK_HEADER(unistd.h)
# You can also check for multiple system headers at the same time,
# but notice the different name of the test macro for this (plural).
AC_CHECK_HEADERS([math.h stdio.h])
# A way to implement conditional logic based on header file presence
# (we do not have a b0rk.h in our system).
AC_CHECK_HEADER(b0rk.h, [echo &quot;b0rk.h present in system&quot;], \
                        [echo &quot;b0rk.h not present in system&quot;])

echo &quot;But that does not stop us from continuing!&quot;

echo &quot;Directory to install binaries in is '$bindir'&quot;
echo &quot;Directory under which data files go is '$datadir'&quot;
echo &quot;For more variables, check 'config.log' after running configure&quot;
echo &quot;CFLAGS is '$CFLAGS'&quot;
echo &quot;LDFLAGS is '$LDFLAGS'&quot;
echo &quot;LIBS is '$LIBS'&quot;
echo &quot;CC is '$CC'&quot;
echo &quot;AWK is '$AWK'&quot;
&lt;/source&gt;

The listing is verbosely commented, so it should be pretty self-evident what the different macros do. The macros that test for a feature or an include file normally causes the generated configure script to generate small C code test programs that are run as part of the configuration process. If these programs run successfully, the relevant test succeeds and the configuration process continues to the next test.

The following convention holds true in respect to the names of macros that are commonly used and available:

* &lt;code&gt;AC_*&lt;/code&gt;: A macro that is included in autoconf or is meant for it.
* &lt;code&gt;AM_*&lt;/code&gt;: A macro that is meant for automake.
* Others: The autoconf system can be expanded by writing custom macros which can be stored in a custom directory. Some development packages also install new macros to be used.

The next step is to run &lt;code&gt;autoconf&lt;/code&gt;. Without any parameters, it reads &lt;code&gt;configure.ac&lt;/code&gt; by default. If &lt;code&gt;configure.ac&lt;/code&gt; does not exist, it tries to read &lt;code&gt;configure.in&lt;/code&gt; instead. 

Note that using the name &lt;code&gt;configure.in&lt;/code&gt; is considered obsolete.

 &lt;nowiki&gt;
 [sbox-FREMANTLE_X86: ~/example1] &amp;gt; autoconf
 [sbox-FREMANTLE_X86: ~/example1] &amp;gt; ls -l
 total 112
 drwxr-xr-x 2 user user  4096 Sep 16 05:14 autom4te.cache
 -rwxrwxr-x 1 user user 98683 Sep 16 05:14 configure
 -rw-r--r-- 1 user user  1825 Sep 15 17:23 configure.ac
 [sbox-FREMANTLE_X86: ~/example1] &amp;gt; ./configure
 Hello from configure (using echo)!
 
 configure: Hello from configure using msg-notice!
 checking for gcc... gcc
 checking for C compiler default output file name... a.out
 checking whether the C compiler works... yes
 checking whether we are cross compiling... no
 checking for suffix of executables...
 checking for suffix of object files... o
 checking whether we are using the GNU C compiler... yes
 checking whether gcc accepts -g... yes
 checking for gcc option to accept ANSI C... none needed
 checking for gawk... gawk
 checking for cos in -lm... yes
 checking how to run the C preprocessor... gcc -E
 checking for egrep... grep -E
 checking for ANSI C header files... yes
 checking for sys/types.h... yes
 checking for sys/stat.h... yes
 checking for stdlib.h... yes
 checking for string.h... yes
 checking for memory.h... yes
 checking for strings.h... yes
 checking for inttypes.h... yes
 checking for stdint.h... yes
 checking for unistd.h... yes
 checking for unistd.h... (cached) yes
 checking math.h usability... yes
 checking math.h presence... yes
 checking for math.h... yes
 checking stdio.h usability... yes
 checking stdio.h presence... yes
 checking for stdio.h... yes
 checking b0rk.h usability... no
 checking b0rk.h presence... no
 checking for b0rk.h... no
 b0rk.h not present in system
 But that doesn't stop us from continuing!
 Directory to install binaries in is '${exec_prefix}/bin'
 Directory under which data files go is '${prefix}/share'
 For more variables, check 'config.log' after running configure
 CFLAGS is '-g -O2'
 LDFLAGS is ''
 LIBS is '-lm '
 CC is 'gcc'
 AWK is 'gawk'
 &lt;/nowiki&gt;

Autoconf does not output information about its progress. Normally, only errors are output on stdout. Instead, it creates a new script called &lt;code&gt;configure&lt;/code&gt; in the same directory, and sets it as executable.

The configure script is the result of all of the macro processing. If taking a look at the generated file with an editor or by using less, it can be seen that it contains a lot of shell code.

Unless you are experienced in reading convoluted shell code, you do not need to try to understand what is attempted at the various stages. Normally the generated file is not fixed or modified manually because it is overwritten anyway the next time that someone runs autoconf.

When the generated script is executed, the output of various parts can be seen in the order that they were used in the configuration file.

Note that autoconf (because of m4) is an imperative language, which means that it executes the commands one by one when it detects them. This is in contrast to declarative languages, like Makefiles.

'''M4-syntax notes:'''

* Public autoconf M4 macros all start with A[CST]_* .
* Private macros start with an underscore, but they must not be used because they change from one autoconf version to the other (using undocumented features is bad style anyway).
* m4 uses [ and ] to quote arguments to functions, but in most cases quoting is not needed. Avoid using brackets, unless the macro does not seem to work properly otherwise. When writing new macros, using brackets become more important, but this material does not cover creating custom macros.
* If brackets absolutely must be passed to the generated script, there are three choices:
*; ${}$
*: &lt;code&gt;@&amp;lt;:@&lt;/code&gt; is same as [, and &lt;code&gt;@&amp;gt;:@&lt;/code&gt; is same as ]
*; []
*: expands into [] (most of time)
*; ${}$
*: avoid [ and ] (most command line tools and shell do not really require them)
* Because m4 uses brackets for its own needs, the [ command cannot be used to test things in scripts, but instead test has to be used (which is more clear anyway). This is why the brackets are escaped with the rules given above if they really must be output into the generated shell script.

If bad shell syntax is introduced into the configuration file, the bad syntax causes errors only when the generated script file is run (not when autoconf generates the script). In general, autoconf almost always succeeds but the generated script does not necessarily succeed. Knowing which error in the shell script corresponds to which line in the original configure.ac is not always easy but can be learned through experience.

There is a line that reports the result of testing for &lt;code&gt;unistd.h&lt;/code&gt;. It appears twice: the first time because it is the default test to run whenever testing for headers, and the second time because it was explicitly tested for. The second test output contains text (cached), which means that the test has been already run, and the result has been saved into a cache (the mysterious &lt;code&gt;autom4te.cache&lt;/code&gt; directory). This means that for large projects, which cannot necessarily perform the same tests over and over, the tests are only run once, which makes running the script faster.

The last line's output above contains the values of variables. When the configure script runs, it automatically creates shell variables that can be used in shell code fragments. The macros for checking what programs are available for compiling must illustrate that point. Here awk was used as an example.

The configure script takes the initial values for variables from the environment, but also contains a lot of options that can be given to the script. Using these options introduces new variables that can also be used. Options such as prefix are commonly used in compiling modern open source projects. Both of these cases are illustrated below:

 &lt;nowiki&gt;
 [sbox-FREMANTLE_X86: ~/example1] &amp;gt; CFLAGS='-O2 -Wall' ./configure --prefix=/usr
 ...
 Directory to install binaries in is '${exec_prefix}/bin'
 Directory under which data files go is '${prefix}/share'
 For more variables, check 'config.log' after running configure
 CFLAGS is '-O2 -Wall'
 LDFLAGS is ''
 LIBS is '-lm '
 CC is 'gcc'
 AWK is 'gawk'
 &lt;/nowiki&gt;

It can seem that giving the prefix does not change anything, but this is because the shell does not expand the value in this particular case. However, if the variable was used in the script for doing something, the shell would expand later on. In order to see some effect, try passing the datadir-option (because that is printed out explicitly).

If you need to see which variables are available for configuration, read the generated &lt;code&gt;config.log&lt;/code&gt; file. The variables are listed at the end of that file.

=== Substitutions ===

Besides creating the configure script, autoconf can do other useful things as well. Some people say that autoconf is at least as powerful as emacs, if not more so. Unfortunately, with all this power comes also lot of complexity. Sometimes finding out why things do not quite work can be rather difficult.

It can be useful to use the variables inside text files that are not directly related to the &lt;code&gt;configure.ac&lt;/code&gt;'''. These might be configuration files or files that are used in some part of the building process later on. For this, autoconf provides a mechanism called ''substitution''. A special macro reads in an external file, replaces all instances of variable names in it, and then stores the resulting file as a new file. The convention in naming the input files is to add a suffix .in to the names. The name of generated output file are the same but without the suffix. 

Note that the substitution is done when the generated configure script is run, not when autoconf is run.

The generated configure script replaces all occurrences of the variable name surrounded with 'at' (@) characters with the variable value when it reads through each of the input files.

This is best illustrated with a small example. The input file contents are listed after the autoconf configuration file. In this example, the substitution is only made for one file, but it is also possible to process multiple files using the substitution mechanism. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example2/configure.ac autoconf-automake/example2/configure.ac]

&lt;source lang=&quot;autoconf&quot;&gt;
# An example showing how to use a variable-based substitution.

AC_INIT(hello, version-0.1)

AC_PROG_CC
AC_PROG_AWK
AC_CHECK_HEADER(unistd.h)
AC_CHECK_HEADERS([math.h stdio.h])
AC_CHECK_HEADER(b0rk.h, [echo &quot;b0rk.h present in system&quot;], \
                        [echo &quot;b0rk.h not present in system&quot;])

echo &quot;But that doesn't stop us from continuing!&quot;

# Run the test-output.txt(.in) through autoconf substitution logic.
AC_OUTPUT(test-output.txt)
&lt;/source&gt;

[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example2/test-output.txt.in autoconf-automake/example2/test-output.txt.in]

&lt;pre&gt;
This file will go through autoconf variable substitution.
The output file will be named as 'test-output.txt' (the '.in'-suffix
is stripped).
All the names surrounded by '@'-characters will be replaced by the values
of the variables (if present) by the configure script, when it is run
by the end user.
Prefix: @prefix@
C compiler: @CC@
This is a name for which there is no variable.
Stuff: @stuff@
&lt;/pre&gt;

We then run autoconf and configure:

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/example2] &gt; autoconf
[sbox-FREMANTLE_X86: ~/example2] &gt; ./configure
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for gawk... gawk
checking how to run the C preprocessor... gcc -E
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes 
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for unistd.h... (cached) yes
checking math.h usability... yes
checking math.h presence... yes
checking for math.h... yes
checking stdio.h usability... yes
checking stdio.h presence... yes
checking for stdio.h... yes
checking b0rk.h usability... no
checking b0rk.h presence... no
checking for b0rk.h... no
b0rk.h not present in system
But that doesn't stop us from continuing!
configure: creating ./config.status
config.status: creating test-output.txt
[sbox-FREMANTLE_X86: ~/example2] &gt; cat test-output.txt
This file will go through autoconf variable substitution.

The output file will be named as 'test-output.txt' (the '.in'-suffix
is stripped).

All names surrounded by '@'-characters will be replaced by the values
of the variables (if present) by the configure script when it is run
by end user.

Prefix: /usr/local
C compiler: gcc

This is a name for which there is no variable.
Stuff: @stuff@
&lt;/pre&gt;

This feature is used later on. When you run your own version of the file, notice the creation of file called &lt;code&gt;config.status&lt;/code&gt;. It is the file that actually does the substitution for external files, so if the configuration is otherwise complex, and you only want to re-run the substitution of the output files, you can run the config.status script.

=== Introducing Automake ===

The next step is to create a small project that consists of yet another hello world. This time, there is a file implementing the application (main), a header file describing the API (printHello()) and the implementation of the function.

As it happens, GNU automake is designed so that it can be easily integrated with autoconf. Makefiles are generated by a configure script, and it contains the necessary settings for the system on which configure is run.

In order for this to work, two things are necessary:

* A configuration file for automake (conventionally &lt;code&gt;Makefile.am&lt;/code&gt;) which contains the files to be generated using make
* A configuration file for autoconf (conventionally &lt;code&gt;configure.ac&lt;/code&gt;) which lists the tests which are required to ensure that the system has all the required dependencies

Running automake will generate a file &lt;code&gt;Makefile.in&lt;/code&gt; containing a number of standard targets for make, and running autoconf will generate a configure script which will test your system, and generate final Makefiles and other files based on the software it finds present on the system.

The example starts with the autoconf configuration file: autoconf-[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/configure.ac automake/example3/configure.ac]

&lt;source lang=&quot;autoconf&quot;&gt;
# Any source file name related to our project is ok here.
AC_INIT(helloapp, 0.1)
# We are using automake, so we init it next. The name of the macro
# starts with 'AM' which means that it is related to automake ('AC'
# is related to autoconf).
# Initing automake means more or less generating the .in file from
# the .am file although it can also be generated at other steps.
AM_INIT_AUTOMAKE
# Compiler check.
AC_PROG_CC
# Check for 'install' program.
AC_PROG_INSTALL
# Generate the Makefile from Makefile.in (using substitution logic).
AC_OUTPUT(Makefile)
&lt;/source&gt;

Then the configuration file is presented for automake: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/Makefile.am autoconf-automake/example3/Makefile.am]

&lt;source lang=&quot;make&quot;&gt;
# Automake rule primer:
# 1) Left side_ tells what kind of target this is.
# 2) _right side tells what kind of dependencies are listed.
#
# As an example, below:
# 1) bin = binaries
# 2) PROGRAMS lists the programs to generate Makefile.ins for.
bin_PROGRAMS = helloapp
# Listing source dependencies:
#
# The left side_ gives the name of the application to which the
# dependencies are related to.
# _right side gives again the type of dependencies.
#
# Here we then list the source files that are necessary to build the
# helloapp -binary.
helloapp_SOURCES = helloapp.c hello.c hello.h
# For other files that cannot be automatically deduced by automake,
# you need to use the EXTRA_DIST rule which should list the files
# that should be included. Files can also be in other directories or
# even whole directories can be included this way (not recommended).
EXTRA_DIST = some.service.file.service some.desktop.file.desktop
&lt;/source&gt;

This material tries to introduce just enough of automake for it to be useful for small projects. Because of this, the detailed syntax of &lt;code&gt;Makefile.am&lt;/code&gt; is not explained. Based on the above description, automake knows what kind of &lt;code&gt;Makefile.in&lt;/code&gt; to create, and autoconf takes it over from there and fills in the missing pieces.

The source files for the project are as simple as possible, but notice the implementation of printHello. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/helloapp.c autoconf-automake/example3/helloapp.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * This maemo code example is licensed under a MIT-style license,
 * that can be found in the file called &quot;License&quot; in the same
 * directory as this file.
 * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
 */
#include &lt;stdlib.h&gt;
#include &quot;hello.h&quot;
int main(int argc, char** argv) {
  printHello();
  return EXIT_SUCCESS;
}
&lt;/source&gt;

[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/hello.h autoconf-automake/example3/hello.h]

&lt;source lang=&quot;c&quot;&gt;
/**
 * This maemo code example is licensed under a MIT-style license,
 * that can be found in the file called &quot;License&quot; in the same
 * directory as this file.
 * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
 */
#ifndef INCLUDE_HELLO_H
#define INCLUDE_HELLO_H
extern void printHello(void);
#endif
&lt;/source&gt;

[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/hello.c autoconf-automake/example3/hello.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * This maemo code example is licensed under a MIT-style license,
 * that can be found in the file called &quot;License&quot; in the same
 * directory as this file.
 * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
 */

#include &lt;stdio.h&gt;
#include &quot;hello.h&quot;

void printHello(void) {
  /* Note that these are available as defines now. */
  printf(&quot;(&quot; PACKAGE &quot; &quot; VERSION &quot;)\n&quot;);
  printf(&quot;Hello world!\n&quot;);
}
&lt;/source&gt;

The &lt;code&gt;PACKAGE&lt;/code&gt; and &lt;code&gt;VERSION&lt;/code&gt; defines are passed to the build process automatically.

 [sbox-FREMANTLE_X86: ~/example3] &amp;gt; autoconf
 configure.ac:10: error: possibly undefined macro: AM_INIT_AUTOMAKE
 If this token and others are legitimate, please use m4_pattern_allow.
 See the Autoconf documentation.

Autoconf is complaining about a macro, for which it cannot find a definition (actually m4 is the program that does the complaining). The problem is that by default, autoconf only knows about built-in macros. When using a macro for integration or a macro that comes with another package, autoconf needs to be told about it. Luckily, this process is quite painless.

A local &lt;code&gt;aclocal.m4&lt;/code&gt; file needs to be created into the same directory with the &lt;code&gt;configure.ac&lt;/code&gt;. When starting, autoconf reads this file, and it is enough to put the necessary macros there.

For this, a utility program called aclocal is used, which scans the configure.ac and copy the relevant macros into the local &lt;code&gt;aclocal.m4&lt;/code&gt;. The directory for all the extension macros is usually &lt;code&gt;/usr/share/aclocal/&lt;/code&gt;, which should be checked out at some point.

Now it is time to run aclocal, and then try and run autoconf again. 

Note that the messages that are introduced into the process from now on are inevitable, because some macros use obsolete features or have incomplete syntax, and thus trigger warnings. There is no easy solution to this, other than to fix the macros themselves.

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/example3] &gt; aclocal
/scratchbox/tools/share/aclocal/pkg.m4:5: warning:
 underquoted definition of PKG_CHECK_MODULES
  run info '(automake)Extending aclocal' or see
  http://sources.redhat.com/automake/automake.html#Extending%20aclocal
/usr/share/aclocal/pkg.m4:5: warning:
 underquoted definition of PKG_CHECK_MODULES
/usr/share/aclocal/gconf-2.m4:8: warning:
 underquoted definition of AM_GCONF_SOURCE_2
/usr/share/aclocal/audiofile.m4:12: warning:
 underquoted definition of AM_PATH_AUDIOFILE
[sbox-FREMANTLE_X86: ~/example3] &gt; autoconf
[sbox-FREMANTLE_X86: ~/example3] &gt; ./configure
configure: error: cannot find install-sh or install.sh in
 ~/example3 ~/ ~/..
&lt;/pre&gt;

Listing the contents of the directory reveals that the &lt;code&gt;Makefile.in&lt;/code&gt; is not among the contents. Automake needs to be run manually, so that the file is created. At the same time, the missing files need to be introduced to the directory (such as the install.sh that configure seems to complain about).

This is done by executing automake -ac, which creates the Makefile.in and also copy the missing files into their proper places. ''This step also copies a file called &lt;code&gt;COPYING&lt;/code&gt; into the directory, which by default contains the GPL.'' So, if the software is going to be distributed under some other license, this is the correct moment to replace the license file with the appropriate one.

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/example3] &gt; automake -ac
configure.ac: installing `./install-sh'
configure.ac: installing `./missing'
Makefile.am: installing `./depcomp'
[sbox-FREMANTLE_X86: ~/example3] &gt; ./configure
checking for a BSD-compatible install... /scratchbox/tools/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for a BSD-compatible install... /scratchbox/tools/bin/install -c
configure: creating ./config.status
config.status: creating Makefile
config.status: executing depfiles commands
&lt;/pre&gt;

Notice the second to last line of the output, which shows that configure just created a Makefile (based on the &lt;code&gt;Makefile.in&lt;/code&gt; that ''automake'' created).

Performing all these steps manually each time to make sure that all the generated files are really generated can be rather tedious. Most developers create a script called '''autogen.sh''', which implements the necessary bootstrap procedures for them. Below is a file that is suitable for this example. Real-life projects can have more steps because of localization and other requirements. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/autogen.sh autoconf-automake/example3/autogen.sh]

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
#
# A utility script to setup the autoconf environment for the first
# time. Normally this script is run when checking out a
# development version of the software from SVN/version control.
# Regular users expect to download .tar.gz/tar.bz2 source code
# instead, and those should come with with 'configure' script so that
# users do not require the autoconf/automake tools.
#
# Scan configure.ac and copy the necessary macros into aclocal.m4.
aclocal
# Generate Makefile.in from Makefile.am (and copy necessary support
# files, because of -ac).
automake -ac
# This step is not normally necessary, but documented here for your
# convenience. The files listed below need to be present to stop
# automake from complaining during various phases of operation.
#
# You also should consider maintaining these files separately once
# you release your project into the wild.
#
# touch NEWS README AUTHORS ChangeLog
# Run autoconf (creates the 'configure'-script).
autoconf
echo 'Ready to go (run configure)'
&lt;/source&gt;

In the above code, the line with touch is commented. This can raise a question. There is a target called distcheck that automake creates in the Makefile, and this target checks whether the distribution tarball contains all the necessary files. The files listed on the touch line are necessary (even if empty), so they need to be created at some point. Without these files, the penultimate Makefile complains when running the distcheck-target.

Build the project now and test it out:

 [sbox-FREMANTLE_X86: ~/example3] &amp;gt; make
 if gcc -DPACKAGE_NAME=\&quot;helloapp\&quot; -DPACKAGE_TARNAME=\&quot;helloapp\&quot;
  -DPACKAGE_VERSION=\&quot;0.1\&quot; -DPACKAGE_STRING=\&quot;helloapp\ 0.1\&quot;
  -DPACKAGE_BUGREPORT=\&quot;\&quot; -DPACKAGE=\&quot;helloapp\&quot; -DVERSION=\&quot;0.1\&quot;
  -I. -Iexample3 -g -O2 -MT helloapp.o -MD -MP -MF &quot;.deps/helloapp.Tpo&quot;
  -c -o helloapp.o helloapp.c; \ then \
   mv -f &quot;.deps/helloapp.Tpo&quot; &quot;.deps/helloapp.Po&quot;; 
  else rm -f &quot;.deps/helloapp.Tpo&quot;; exit 1;
 fi
 if gcc -DPACKAGE_NAME=\&quot;helloapp\&quot; -DPACKAGE_TARNAME=\&quot;helloapp\&quot;
  -DPACKAGE_VERSION=\&quot;0.1\&quot; -DPACKAGE_STRING=\&quot;helloapp\ 0.1\&quot;
  -DPACKAGE_BUGREPORT=\&quot;\&quot; -DPACKAGE=\&quot;helloapp\&quot; -DVERSION=\&quot;0.1\&quot;
  -I. -Iexample3 -g -O2 -MT hello.o -MD -MP -MF &quot;.deps/hello.Tpo&quot;
  -c -o hello.o hello.c; \ then \
   mv -f &quot;.deps/hello.Tpo&quot; &quot;.deps/hello.Po&quot;; 
  else rm -f &quot;.deps/hello.Tpo&quot;; exit 1;
 fi
 gcc -g -O2 -o helloapp helloapp.o hello.o
 [sbox-FREMANTLE_X86: ~/example3] &amp;gt; ./helloapp
 (helloapp 0.1)
 Hello world!
 [sbox-FREMANTLE_X86: ~/example3] &amp;gt; make clean
 test -z &quot;helloapp&quot; || rm -f helloapp
 rm -f *.o

=== Checking for Distribution Sanity ===

The generated Makefile contains various targets that can be used when creating distribution tarballs (tar files containing the source code and the necessary files to build the software). The most important of these is the dist-target, which by default creates a .tar.gz-file out of the source, including the configure script and other necessary files (which are specified in &lt;code&gt;Makefile.am&lt;/code&gt;).

To test whether building the software from the distribution tarball is possible, execute the distcheck-target. It first creates a distribution tarball, then extracts it in a new subdirectory, runs configure there and tries and builds the software with the default make target. If it fails, the relevant error is given.

Making the distcheck target each time before making a dist target is recommended, so that you can be sure that the distribution tarball can be used outside the source tree. This step is especially critical later when [[packaging|making Debian packages]].

=== Cleaning up ===

For the sake of convenience, the example3 directory also includes a script called &lt;code&gt;antigen.sh&lt;/code&gt;, which tries its best to get rid of all generated files (it is necessary to &lt;code&gt;autogen.sh&lt;/code&gt; the project afterwards).

Having a clean-up script is not very common in open source projects, but it is especially useful when starting autotools development because it allows testing the toolchain easily from scratch.

The contents of antigen.sh that is suitable for simple projects: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/antigen.sh autoconf-automake/example3/antigen.sh]

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
#
# A utility script to remove all generated files.
#
# Running autogen.sh will be required after running this script since
# the 'configure' script will also be removed.
#
# This script is mainly useful when testing autoconf/automake changes
# and as a part of their development process.
# If there's a Makefile, then run the 'distclean' target first (which
# will also remove the Makefile).
if test -f Makefile; then
  make distclean
fi
# Remove all tar-files (assuming there are some packages).
rm -f *.tar.* *.tgz
# Also remove the autotools cache directory.
rm -Rf autom4te.cache
# Remove rest of the generated files.
rm -f Makefile.in aclocal.m4 configure depcomp install-sh missing
&lt;/source&gt;

=== Integration with Pkg-Config ===

The last part that is covered for autoconf is how to integrate pkg-config support into the projects when using &lt;code&gt;configure.ac&lt;/code&gt;.

Pkg-config comes with a macro package ('''pkg.m4'''), which contains some useful macros for integration. The best documentation for these can be found in the pkg-config manual pages.

For the purpose of this example, only one macro is used, &lt;code&gt;PKG_CHECK_MODULES&lt;/code&gt;, which is used as part of &lt;code&gt;configure.ac&lt;/code&gt; for pkg-config integration

&lt;source lang=&quot;autoconf&quot;&gt;
# Check whether the necessary pkg-config packages are present. The
# PKG_CHECK_MODULES macro is supplied by pkg-config
# (/usr/share/aclocal/).
#
# The first parameter is the variable name prefix that is
# used to create two variables: one to hold the CFLAGS required by
# the packages, and one to hold the LDFLAGS (LIBS) required by the
# packages. The variable name prefix (HHW) can be chosen freely.
PKG_CHECK_MODULES(HHW, gtk+-2.0 hildon-1 hildon-fm-2 gnome-vfs-2.0 \
                       gconf-2.0 libosso)
# At this point HHW_CFLAGS contains the necessary compiler flags
# and HHW_LIBS contains the linker options necessary for all the
# packages listed above.
#
# Add the pkg-config supplied values to the ones that are used by
# Makefile or supplied by the user running ./configure.
CFLAGS=&quot;$HHW_CFLAGS $CFLAGS&quot;
LIBS=&quot;$HHW_LIBS $LIBS&quot;
&lt;/source&gt;

The proper placing for this code is after all the &lt;code&gt;AC_PROG_*&lt;/code&gt; checks and before the &lt;code&gt;AC_OUTPUT&lt;/code&gt; macros (so that the build flags may affect the substituted files).

Check also the validity of the package names by using:

 pkg-config --list-all

to make sure you do not try to get the wrong library information.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/GNU Build System</title>
    <id>2297</id>
    <revision>
      <id>49741</id>
      <timestamp>2012-09-20T18:58:37Z</timestamp>
      <contributor>
        <username>dukenukem</username>
        <id>5441</id>
      </contributor>
      <text xml:space="preserve">The following code examples are used in this chapter:

* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/ simple-make-files]
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/ autoconf-automake]

== GNU Make and Makefiles ==

The &lt;code&gt;make&lt;/code&gt; program from the GNU project is a powerful tool to aid implementing automation in the software building process. Beside this, it can be used to automate any task that uses files and in which these files are transformed into some other form. Make by itself does not know what the files contain or what they represent, but using a simple syntax it can be taught how to handle them.

When developing software with gcc (and other tools), gcc is often invoked repeatedly with the same parameters and flags. After changing one source file, it is noticed that other output files need to be rebuilt, and even the whole application if some interface has changed between the functions. This might happen whenever declarations change, new parameters are added to function prototypes, and so on.

These tasks can always be performed manually, but after a while a nicer way is more desirable.

GNU make is a software building automation tool that will execute repetitive tasks. It is controlled via a '''Makefile''' that contains lists of dependencies between different source files and output files. It also contains lists of commands that should be executed to satisfy these dependencies. Make uses the '''timestamps''' of files and the information of the files' existence to automate the rebuilding of applications (targets in make), as well as the rules that are specified in the Makefile.

Make can be used for other purposes as well. A target can easily be created for installing the built software on a destination computer, a target for generating documentation by using some automatic documentation generation tool, and so on. Some people use make to keep multiple Linux systems up to date with the newest software and various system configuration changes. In short, make is flexible enough to be generally useful.

[[Image:make.png|center|frame|alt=Diagram of project dependencies|The dependencies between different files making up a software project]]

The aim of make is to satisfy the target. Each target has its own dependencies. A user generally selects a target for make to satisfy by supplying the target name on the command line. Make starts by checking whether all of the dependencies exist and have an older timestamp than the target. If so, make  does nothing, because nothing has changed. However, because a header file (that an application is not dependent on directly) can change, make propagates the changes to the 'root' of the target as shown in the picture above.

Make rebuilds all of the necessary dependencies and targets on the way towards the target. This way, make only rebuilds those dependencies that actually affect something, and thus, saves time and effort. In big projects, the amount of time saved is significant.

To illustrate this, suppose that '''file3.c''' in the above picture is modified. After that, make is run, and it will automatically rebuild the necessary targets ('''file3.o''', '''libutil.a''' and '''app'''):

[[Image:make-mod1.png|center|frame|alt=Diagram of project files that need to be rebuilt|Project files that need to be rebuilt after file3.c is modified]]

Now suppose that another function is added to '''file1.c'''. Then also '''util.h''' needs to be modified accordingly. The picture shows that quite a few objects and targets depend on this header file, so a sizable number of objects need to be rebuilt (but not all):

[[Image:make-mod2.png|center|frame|alt=Diagram of project files that need to be rebuilt|Project files that need to be rebuilt after file1.c and util.h are modified]]

N.B. In the example pictures, there is a project with a custom static library, which is linked against the test application.

=== Simple Real Example ===

Before delving too deeply into the syntax of makefiles, it is instructive to first see make in action. For this, a simple project will be used, written in the C language.

In C, it is customary to write &quot;header&quot; files (conventional suffix for them is '''.h''') and regular source files ('''.c'''). The header files describe calling conventions, APIs and structures that are to be made usable for the outside world. The .c files contain the implementation of these interfaces.

The first rule in this is: if something is changed in the interface file, the binary file containing the code implementation (and other files that use the same interface) must be regenerated. Regeneration in this case means invoking gcc to create the binary file out of the C-language source file.

Make needs to be told two things at this point:

* If a file's content changes, which other files will be affected? Because a single interface likely affects multiple other files, make uses a reversed ordering here. For each resulting file, it is necessary to list the files on which this one file depends on.
* What are the commands to regenerate the resulting files when the need arises?

This example deals with that as simply as possible. There is a project that consists of two source files and one header file. The contents of these files are listed below: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/hello.c simple-make-files/hello.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * The old faithful hello world.
 *
 * This maemo code example is licensed under a MIT-style license,
 * that can be found in the file called &quot;License&quot; in the same
 * directory as this file.
 * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
 */
#include &lt;stdlib.h&gt;    /* EXIT_* */
#include &quot;hello_api.h&quot; /* sayhello */
int main(int argc, char **argv) {
  sayhello();
  return EXIT_SUCCESS;
}
&lt;/source&gt;

[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/hello_func.c simple-make-files/hello_func.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * Implementation of sayhello.
 *
 * This maemo code example is licensed under a MIT-style license,
 * that can be found in the file called &quot;License&quot; in the same
 * directory as this file.
 * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
 */

#include &lt;stdio.h&gt;     /* printf */
#include &quot;hello_api.h&quot; /* sayhello declaration */

void sayhello(void) {
  printf(&quot;Hello world!\n&quot;);
}
&lt;/source&gt;

[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/hello_api.h simple-make-files/hello_api.h]

&lt;source lang=&quot;c&quot;&gt;
/**
 * Interface description for the hello_func module.
 *
 * This maemo code example is licensed under a MIT-style license,
 * that can be found in the file called &quot;License&quot; in the same
 * directory as this file.
 * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
 */

#ifndef INCLUDE_HELLO_API_H
#define INCLUDE_HELLO_API_H
/* The above is protection against circular header inclusion. */

/* Function to print out &quot;Hello world!\n&quot;. */
extern void sayhello(void);

#endif
/* ifndef INCLUDE_HELLO_API_H */
&lt;/source&gt;

So, in effect, there is the main application in '''hello.c''', which uses a function that is implemented in '''hello_func.c''' and declared in '''hello_api.h'''. Building an application out of these files can be performed manually like this:

 gcc -Wall hello.c hello_func.c -o hello

Or, it can be done in three stages:

 gcc -Wall -c hello.c -o hello.o
 gcc -Wall -c hello_func.c -o hello_func.o
 gcc -Wall hello.o hello_func.o -o hello

In both cases, the resulting application ('''hello''') will be the same.

In the first case, gcc is instructed to process all source files in one go, link the resulting object code and store that code (program in this case) into '''hello'''.

In the second case, gcc is instructed to create a binary object file for each of the source files. After that, gcc is instructed to link these output files ('''hello.o''' and '''hello_func.o''') together, and store the linked code into '''hello'''.

{{ambox|text=When gcc reads through the C source files, it also reads in the header files, because the C code uses the &lt;code&gt;#include&lt;/code&gt; preprocessor directive. This is because gcc internally runs all files ending with .c through cpp (the preprocessor) first.}}

The file describing this situation to make is as follows: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile simple-make-files/Makefile]

&lt;source lang=&quot;make&quot;&gt;
# define default target (first target = default)
# it depends on 'hello.o' (which will be created if necessary)
# and hello_func.o (same as hello.o)
hello: hello.o hello_func.o
        gcc -Wall hello.o hello_func.o -o hello
# define hello.o target
# it depends on hello.c (and is created from it)
# also depends on hello_api.h which would mean that
# changing the hello.h api would force make to rebuild
# this target (hello.o).
# gcc -c: compile only, do not link
hello.o: hello.c hello_api.h
        gcc -Wall -c hello.c -o hello.o
# define hello_func.o target
# it depends on hello_func.c (and is created from)
# and hello_api.h (since that's its declaration)
hello_func.o: hello_func.c hello_api.h
        gcc -Wall -c hello_func.c -o hello_func.o
# 
&lt;/source&gt;

This file is in the simplest form without using any variables or relying on built-in magic in GNU make. Later it will be shown that the same rules can be written in a much shorter way.

This makefile can be tested by running make in the directory that contains the makefile and the source files:

 user@system:~$ make
 gcc -Wall -c hello.c -o hello.o
 gcc -Wall -c hello_func.c -o hello_func.o
 gcc -Wall hello.o hello_func.o -o hello

The resulting files after running make:
 user@system:~$ ls -la
 total 58
 drwxr-xr-x 3  user user 456  Aug 11 15:04 .
 drwxr-xr-x 13 user user 576  Aug 11 14:56 ..
 -rw-r--r-- 1  user user 699  Jun 1  14:48 Makefile
 -rwxr-xr-x 1  user user 4822 Aug 11 15:04 hello
 -rw-r--r-- 1  user user 150  Jun 1  14:48 hello.c
 -rw-r--r-- 1  user user 824  Aug 11 15:04 hello.o
 -rw-r--r-- 1  user user 220  Jun 1  14:48 hello_api.h
 -rw-r--r-- 1  user user 130  Jun 1  14:48 hello_func.c
 -rw-r--r-- 1  user user 912  Aug 11 15:04 hello_func.o

Executing the binary:

 user@system:~$ ./hello
 Hello world!

=== Anatomy of Makefile ===

From the simple example above, some of the syntax of 'make' can be deduced.

Here are the rules that can be learned:

* Comments are lines that start with the #-character. To be more precise, when make reads the makefile, it will ignore the #-character and any characters after it up to the end of the line. This means that comments can also be put at the end of lines, and make will ignore them, but this is considered bad practice as it would lead to subtle problems later on.
* The backslash character (&lt;code&gt;\&lt;/code&gt;) can be used to escape the special meaning of the next character. The most important special character in makefiles is the dollar character ($), which is used to access the contents of variables. There are also other special characters. To continue a line that is too long, the newline character can be escaped on that line. When the backslash is put at the end of the line, make ignores the newline when reading input.
* Empty lines by themselves are ignored.
* A line that starts at column 0 (start of the line) and contains a colon character (:) is considered a rule. The name on the left side of the colon is created by the commands. This name is called a target. Any filenames specified after the colon are the files that the target depends on. They are called prerequisites (i.e. they are required to exist, before make decides to create the target.
* Lines starting with the tabulation character (tab) are commands that make  runs to achieve the target.

In the printed material, the tabs are represented with whitespace, so be careful when reading the example makefiles. Note also that in reality, the command lines are considered as a part of the rule.

Using these rules, it can now be deduced that:

* make regenerates '''hello''' when either or both of its prerequisites change. So, if either '''hello.o''' or '''hello_func.o''' change, make  regenerates '''hello''' by using the command: &lt;code&gt;gcc -Wall hello.o hello_func.o -o hello&lt;/code&gt;
* If either '''hello.c''' or '''hello_api.h''' change, make  regenerates '''hello.o'''.
* If either '''hello_func.c''' or '''hello_api.h''' change, make regenerates &lt;br /&gt;'''hello_func.o'''.

=== Default Goal ===

Note that make was not explicitly told what it should do by default when run without any command line parameters (as was done above). How does it know that creating '''hello''' is the target for the run?

The first target given in a makefile is the default target. A target that achieves some higher-level goal (like linking all the components into the final application) is sometimes called a goal in GNU make documentation.

So, the first target in the makefile is the default goal when make is run without command line parameters.

N.B. Make automatically learns the dependencies between the various components and deduces that to create '''hello''', it also needs to create '''hello.o''' and '''hello_func.o'''. Make regenerates the missing prerequisites when necessary. In fact, this is a quality that causes make do its magic.

Because the prerequisites for hello (hello.o and hello_func.o) do not exist, and hello is the default goal, make first creates the files that the hello target needs. This can be evidenced from the screen capture of make running without command line parameters. It shows the execution of each command in the order that make decides is necessary to satisfy the default goal's prerequisites, and finally create the hello.

 user@system:~$ make
 gcc -Wall -c hello.c -o hello.o
 gcc -Wall -c hello_func.c -o hello_func.o
 gcc -Wall hello.o hello_func.o -o hello

=== Names of Makefiles ===

The recommended name for the makefile is '''Makefile'''. This is not the first filename that GNU make tries to open, but it is the most portable one. In fact, the order of filenames that make attempts to open is: '''GNUMakefile''', '''Makefile''' and finally '''makefile'''.

Unless you are sure that your makefile does not work on other make systems (not GNU), refrain from using GNUMakefile. Makefile will be used here for the most of this material. The idea behind using Makefile instead of makefile is related to how shells and commands sort filenames, when contents of directories are requested. Because in ASCII the uppercase letters come before the lowercase letters, the important files are listed first. Makefiles are considered important, because they are the basis for building the project. (The collation order might be different in your locale and your environment.)

Make can explicitly be told which file to read by using the -f command line option. This option is used in the next example.

=== Questions ===

Based on common sense, what should make do when it is run after:

* Deleting the hello file?
* Deleting the hello.o file?
* Modifying hello_func.c?
* Modifying hello.c?
* Modifying hello_api.h?
* Deleting the Makefile?

What would be done when writing the commands manually?

=== Adding Make Goals ===

Sometimes it is useful to add targets, whose execution does not result in a file, but instead causes some commands to be run. This is commonly used in makefiles of software projects to get rid of the binary files, so that building can be attempted from a clean state. These kinds of targets can also be justifiably called goals. GNU documentation uses the name &quot;phony target&quot; for these kinds of targets, because they do not result in creating a file, like normal targets do.

The next step is to create a copy of the original makefile, and add a goal that removes the binary object files and the application. 
N.B. Other parts of the makefile do not change. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.2 simple-make-files/Makefile.2]

&lt;source lang=&quot;make&quot;&gt;
# add a cleaning target (to get rid of the binaries)
# define default target (first target = default)
# it depends on 'hello.o' (which must exist)
# and hello_func.o
hello: hello.o hello_func.o
        gcc -Wall hello.o hello_func.o -o hello
# define hello.o target
# it depends on hello.c (and is created from)
# also depends on hello_api.h which would mean that
# changing the hello.h api would force make to rebuild
# this target (hello.o).
# gcc -c: compile only, do not link
hello.o: hello.c hello_api.h
        gcc -Wall -c hello.c -o hello.o
# define hello_func.o target
# it depends on hello_func.c (and is created from)
# and hello_api.h (since that's it's declaration)
hello_func.o: hello_func.c hello_api.h
        gcc -Wall -c hello_func.c -o hello_func.o
# This is the definition of the target 'clean'
# Here we'll remove all the built binaries and
# all the object files that we might have generated
# Notice the -f flag for rm, it means &quot;force&quot; which
# in turn means that rm will try to remove the given
# files, and if there are none, then that's ok. Also
# it means that we have no writing permission to that
# file and have writing permission to the directory
# holding the file, rm will not then ask for permission
# interactivelly.
clean:
        rm -f hello hello.o hello_func.o
&lt;/source&gt;

To get make to use this file instead of the default Makefile, use the -f command line parameter as follows:

 user@system:~$ make -f Makefile.2
 gcc -Wall -c hello.c -o hello.o
 gcc -Wall -c hello_func.c -o hello_func.o
 gcc -Wall hello.o hello_func.o -o hello

To control which target make processes (instead of the default goal), give the target name as a command line parameter like this:
 user@system:~$ make -f Makefile.2 clean
 rm -f hello hello.o hello_func.o

No binary files remain in the directory:
 user@system:~$ ls -la
 total 42
 drwxr-xr-x 3  user user 376  Aug 11 15:08 .
 drwxr-xr-x 13 user user 576  Aug 11 14:56 ..
 -rw-r--r-- 1  user user 699  Jun 1  14:48 Makefile
 -rw-r--r-- 1  user user 1279 Jun 1  14:48 Makefile.2
 -rw-r--r-- 1  user user 150  Jun 1  14:48 hello.c
 -rw-r--r-- 1  user user 220  Jun 1  14:48 hello_api.h
 -rw-r--r-- 1  user user 130  Jun 1  14:48 hello_func.c

=== Making One Target at a Time ===

Sometimes it is useful to ask make to process only one target. Similar to the clean case, it just needs the target name to be given on the command line:

 user@system:~$ make -f Makefile.2 hello.o
 gcc -Wall -c hello.c -o hello.o

Multiple target names can also be supplied as individual command line parameters:

 user@system:~$ make -f Makefile.2 hello_func.o hello
 gcc -Wall -c hello_func.c -o hello_func.o
 gcc -Wall hello.o hello_func.o -o hello

This can be done with any number of targets, even phony ones. Make tries to complete all of them in the order that they are on the command line. If any of the commands within the targets fail, make aborts at that point, and does not pursue the rest of the targets.

=== PHONY Keyword ===

Suppose that for some reason a file called '''clean''' appears in the directory in which make is run with clean as the target. In this case, make probably decides that because clean already exists, there is no need to run the commands leading to the target, and in this case, make does not run the rm command at all. Clearly this is something that needs to be avoided.

For these cases, GNU make provides a special target called &lt;code&gt;.PHONY&lt;/code&gt; (note the leading dot). The real phony targets (clean) will be listed as a dependency to &lt;code&gt;.PHONY&lt;/code&gt;. This signals to make that it should never consider a file called clean to be the result of the phony target.

In fact, this is what most open source projects that use make do.

This leads in the following makefile (comments omitted for brevity): [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.3 simple-make-files/Makefile.3]

&lt;source lang=&quot;make&quot;&gt;
hello: hello.o hello_func.o
        gcc -Wall hello.o hello_func.o -o hello
hello.o: hello.c hello_api.h
        gcc -Wall -c hello.c -o hello.o
hello_func.o: hello_func.c hello_api.h
        gcc -Wall -c hello_func.c -o hello_func.o
.PHONY: clean
clean:
        rm -f hello hello.o hello_func.o
&lt;/source&gt;

=== Specifying Default Goal ===

Make uses the first target in a makefile as its default goal. What if there is a need to explicitly set the default goal instead? Because it is not possible to actually change the &quot;first target is the default goal&quot; setting in make, this needs to be taken into account. So, a new target has to be added, and made sure that it will be processed as the first target in a makefile.

To achieve this, a new phony target must be created, and the wanted targets should be listed as the phony target's prerequisites. Any name can be used for the target, but all is a very common name for this use. The only thing that needs to be rememberd is that this target needs to be the first one in the makefile. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.4 simple-make-files/Makefile.4]

&lt;source lang=&quot;make&quot;&gt;
.PHONY: all
all: hello
hello: hello.o hello_func.o
        gcc -Wall hello.o hello_func.o -o hello
hello.o: hello.c hello_api.h
        gcc -Wall -c hello.c -o hello.o
hello_func.o: hello_func.c hello_api.h
        gcc -Wall -c hello_func.c -o hello_func.o
.PHONY: clean
clean:
        rm -f hello hello.o hello_func.o
&lt;/source&gt;

Something peculiar can be seen in the listing above. Because the first target is the default goal for make, would that not make &lt;code&gt;.PHONY&lt;/code&gt; now to be the default target? Because &lt;code&gt;.PHONY&lt;/code&gt; is a special target in GNU make, this is safe. Also, because of compatibility reasons, GNU make ignores any targets that start with a leading dot (.) when looking for the default goal.

=== Other Common Phony Goals ===

Many other phony goals are encountered in makefiles that projects use.

Some of the more common ones include:

* install: Prerequisites for install is the software application binary (or binaries). The commands (normally ''install'' is used on Linux) will specify which binary file to place under which directory on the system (&lt;code&gt;/usr/bin&lt;/code&gt;, &lt;code&gt;/usr/local/bin&lt;/code&gt;, etc).
* distclean: Similar to clean; removes object files and such, but removes other files as well (sounds scary). Normally this is used to implement the removal of Makefile in the case that it was created by some automatic tool (''configure'' for example).
* package: Prerequisites are as in install, but instead of installing, creates an archive file (''tar'') with the files in question. This archive can then be used to distribute the software.

For information on other common phony targets, see [http://www.gnu.org/software/make/manual/make.html GNU make manual].

=== Variables in Makefiles ===

So far these files have been listing filenames explicitly. Writing makefiles this way can get rather tedious, if not error prone.

This is why all make programs (not just the GNU variant) provide variables. Some other make programs call them macros.

Variables work almost as they do inside regular UNIX command shells. They are a simple mechanism, by which a piece of text can be associated with a name that can be referenced later on in multiple places in the makefiles. Make variables are based on text replacement, just like shell variables are.

==== Variable Flavors ====

The variables that can be used in makefiles come in two basic styles or flavors.

The default flavor is where referencing a variable causes make to expand the variable contents at the point of reference. This means that if the value of the variable is some text in which other variables are referenced, their contents is also replaced automatically. This flavor is called recursive.

The other flavor is simple, meaning that the content of a variable is evaluated only once, when the variable is defined.

Deciding on which flavor to use is important, when the evaluation of variable contents needs to be repeatable and fast. In these cases, simple variables are often the correct solution.

===== Recursive Variables =====

Here are the rules for creating recursive variables:

* Names must contain only ASCII alphanumerics and underscores (to preserve portability).
* Use only lowercase letters in the names of the variables. Make is case sensitive, and variable names written in capital letters are used when it is necessary to communicate the variables outside make, or their origin is from outside (environment variables). This is, however, only a convention, and there will also be variables that are local to the makefile, but still written in uppercase.
* Values can contain any text. The text is evaluated by make when the variable is used, not when it is defined.
* Break up long lines with a backslash character (&lt;code&gt;\&lt;/code&gt;) and newline combination. Use this same mechanism to continue other long lines as well (not just variables). Do not put any whitespace after the backslash.
* Do not reference a variable that is being defined in its text portion. This results in an endless loop whenever this variable is used. If this happens GNU make stops to an error.

Now the previously used makefile is reused, but some variables are introduced. This also shows the syntax of defining the variables, and how to use them (reference them): [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.5 simple-make-files/Makefile.5]

&lt;source lang=&quot;make&quot;&gt;
# define the command that we use for compilation
CC = gcc -Wall
# which targets do we want to build by default?
# note that 'targets' is just a variable, its name
# does not have any special meaning to make
targets = hello
# first target defined will be the default target
# we use the variable to hold the dependencies
.PHONY: all
all: $(targets)
hello: hello.o hello_func.o
        $(CC) hello.o hello_func.o -o hello
hello.o: hello.c hello_api.h
        $(CC) -c hello.c -o hello.o
hello_func.o: hello_func.c hello_api.h
        $(CC) -c hello_func.c -o hello_func.o
# we'll make our cleaning target more powerful
# we remove the targets that we build by default and also
# remove all object files
.PHONY: clean
clean:
        rm -f $(targets) *.o
&lt;/source&gt;

The CC variable is the standard variable to hold the name of the C compiler executable. GNU make comes preloaded with a list of tools that can be accessed in similar way (as will be shown with $(RM) shortly, but there are others). Most UNIX tools related to building software already have similar pre-defined variables in GNU make. Here one of them is overridden to demonstrate how it is done. Overriding variables like this is not recommended, because the user running make later might want to use some other compiler, and would have to edit the makefile to do so.

===== Simple Variables =====

Suppose you have a makefile like this: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.6 simple-make-files/Makefile.6]

&lt;source lang=&quot;make&quot;&gt;
CC = gcc -Wall
# we want to add something to the end of the variable
CC = $(CC) -g
hello.o: hello.c hello_api.h
        $(CC) -c hello.c -o hello.o
&lt;/source&gt;

What might seem quite logical to a human reader, does not seem very logical to make.

Because the contents of recursive variables are evaluated when they are referenced, it can be seen that the above fragment will lead to an infinite loop.

How can this be corrected? Make actually provides two mechanisms for this. This is the solution with simple variables: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.7 simple-make-files/Makefile.7]

&lt;source lang=&quot;make&quot;&gt;
CC := gcc -Wall
# we want to add something to the end of the variable
CC := $(CC) -g
hello.o: hello.c hello_api.h
        $(CC) -c hello.c -o hello.o
&lt;/source&gt;

Notice that the equals character (=) has been changed into := .

This is how simple variables are created. Whenever a simple variable is referenced, make just replaces the text that the variable contains without evaluating it. It does the evaluation only when the variable is defined. In the above example, &lt;code&gt;CC&lt;/code&gt; is created with the content of &lt;code&gt;gcc -Wall&lt;/code&gt; (which is evaluated, but is just plain text), and when the &lt;code&gt;CC&lt;/code&gt; variable is defined next time, make evaluates &lt;code&gt;$(CC) -g&lt;/code&gt; which is replaced with &lt;code&gt;gcc -Wall -g&lt;/code&gt;.

So, the only two differences between the variable flavors are:

* When defining simple variables, := is used.
* make evaluates the contents, when the simple variable is defined, not when it is referenced later.

Most of the time it is advisable to use the recursive variable flavor, because it does what is wanted.

Two ways of appending text to an existing variable were mentioned. The other mechanism is the += operation as follows: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.8 simple-make-files/Makefile.8]

&lt;source lang=&quot;make&quot;&gt;
CC = gcc -Wall
# we want to add something to the end of the variable
CC += -g
hello.o: hello.c hello_api.h
        $(CC) -c hello.c -o hello.o
&lt;/source&gt;

The prepending operation can also be used with simple variables. Make will not change the type of variable on the left side of the += operator.

===== Automatic Variables =====

There is a pre-defined set of variables inside make that can be used to avoid repetitive typing, when writing out the commands in a rule.

This is a list of the most useful ones:

* &lt;code&gt;$&amp;lt;&lt;/code&gt; : replaced by the first prerequisite of the rule.
* &lt;code&gt;$^&lt;/code&gt; : replaced by the list of all prerequisites of the rule.
* &lt;code&gt;$@&lt;/code&gt; : replaced by the target name.
* &lt;code&gt;$?&lt;/code&gt; : list of prerequisites that are newer than the target is (if target does not exist, they are all considered newer).

By rewriting the makefile using automatic variables, the result is: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.9 simple-make-files/Makefile.9]

&lt;source lang=&quot;make&quot;&gt;
# add the warning flag to CFLAGS-variable
CFLAGS += -Wall
targets = hello
.PHONY: all
all: $(targets)
hello: hello.o hello_func.o
        $(CC) $^ -o $@
hello.o: hello.c hello_api.h
        $(CC) $(CFLAGS) -c $&lt; -o $@
hello_func.o: hello_func.c hello_api.h
        $(CC) $(CFLAGS) -c $&lt; -o $@
.PHONY: clean
clean:
        $(RM) $(targets) *.o
&lt;/source&gt;

Notice the cases when &lt;code&gt;$^&lt;/code&gt; is used instead of &lt;code&gt;$&amp;lt;&lt;/code&gt; in the above snippet. It is not desired to pass the header files for compilation to the compiler, because the source file already includes the header files. For this reason, &lt;code&gt;$&amp;lt;&lt;/code&gt; is used. On the other hand, when linking programs and there are multiple files to put into the executable, &lt;code&gt;$^&lt;/code&gt; would normally be used.

This relies on a couple of things:

* &lt;code&gt;$(RM)&lt;/code&gt; and &lt;code&gt;$(CC)&lt;/code&gt; will be replaced with paths to the system compiler and removal commands.
* &lt;code&gt;$(CFLAGS)&lt;/code&gt; is a variable that contains a list of options to pass whenever make invokes the C compiler.

It can also be noticed that all these variable names are in uppercase. This signifies that they have been communicated from the system environment to make. In fact, if creating an environment variable called &lt;code&gt;CFLAGS&lt;/code&gt;, make will create it internally for any makefile that it will process. This is the mechanism to communicate variables into makefiles from outside.

Writing variables in uppercase is a convention signaling external variables, or environmental variables, so this is the reason why lowercase should be used in own private variables within a Makefile.

=== Integrating with Pkg-Config ===

The above has provided the knowledge to write a simple Makefile for the Hello World example. To get the the result of [http://pkg-config.freedesktop.org/wiki/ pkg-config], the GNU make &lt;code&gt;$(shell command params)&lt;/code&gt; function will be used here. Its function is similar to the backtick operation of the shell. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.10 simple-make-files/Makefile.10]

&lt;source lang=&quot;make&quot;&gt;
# define a list of pkg-config packages we want to use
pkg_packages := gtk+-2.0 hildon-1
# get the necessary flags for compiling
PKG_CFLAGS := $(shell pkg-config --cflags $(pkg_packages))
# get the necessary flags for linking
PKG_LDFLAGS := $(shell pkg-config --libs $(pkg_packages))
# additional flags
# -Wall: warnings
# -g: debugging
ADD_CFLAGS := -Wall -g
# combine the flags (so that CFLAGS/LDFLAGS from the command line
# still work).
CFLAGS  := $(PKG_CFLAGS) $(ADD_CFLAGS) $(CFLAGS)
LDFLAGS := $(PKG_LDFLAGS) $(LDFLAGS)
targets = hildon_helloworld-1
.PHONY: all
all: $(targets)
hildon_helloworld-1: hildon_helloworld-1.o
        $(CC) $^ -o $@ $(LDFLAGS)
hildon_helloworld-1.o: hildon_helloworld-1.c
        $(CC) $(CFLAGS) -c $&lt; -o $@
.PHONY: clean
clean:
        $(RM) $(targets) *.o
&lt;/source&gt;

You might wonder, where the &lt;code&gt;CC&lt;/code&gt; and &lt;code&gt;RM&lt;/code&gt; variables come from. They certainly were not declared anywhere in the Makefile. GNU make comes with a list of pre-defined variables for many programs and their arguments. GNU make also contains a preset list of pattern rules (which will not be dealt here), but basically these are pre-defined rules that are used when (for example) one needs an .o file from an .c file. The rules that were manually specified above are actually the same rules that GNU make already contains, so the Makefile can be made even more compact by only specifying the dependencies between files.

This leads to the following, slightly simpler version: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/simple-make-files/Makefile.11 simple-make-files/Makefile.11]

&lt;source lang=&quot;make&quot;&gt;
# define a list of pkg-config packages we want to use
pkg_packages := gtk+-2.0 hildon-1
PKG_CFLAGS := $(shell pkg-config -cflags $(pkg_packages))
PKG_LDFLAGS := $(shell pkg-config -libs $(pkg_packages))
ADD_CFLAGS := -Wall -g
# combine the flags
CFLAGS  := $(PKG_CFLAGS) $(ADD_CFLAGS) $(CFLAGS)
LDFLAGS := $(PKG_LDFLAGS) $(LDFLAGS)
targets = hildon_helloworld-1
.PHONY: all
all: $(targets)
# we can omit the rules and just specify the dependencies
# for our simple project this doesn't seem like a big win
# but for larger projects where you have multiple object
# files, this will save considerable time.
hildon_helloworld-1: hildon_helloworld-1.o
hildon_helloworld-1.o: hildon_helloworld-1.c
.PHONY: clean
clean:
        $(RM) $(targets) *.o
&lt;/source&gt;

== GNU Autotools ==

Creating portable software written in the C language has historically been challenging. The portability issues are not restricted just to the differences between binary architectures, but also encompass differences in system libraries and different implementations of UNIX APIs in different systems. This section introduces GNU autotools as one solution for managing this complexity. There are also other tools available, but the most likely to be encountered are autotoolized projects and also Debian packaging supports autotools.

=== Brief History of Managing Portability ===

When discussing portability challenges with C code, various issues crop up:

* Same library function has differing prototypes in different UNIX-style systems.
* Same library function has differing implementations between systems (this is a difficult problem).
* Same function can be found in different libraries in different UNIX systems, and because of this, the linker parameters need to be modified when making the final linking of the project.
* Besides these not so obvious problems, there is also of course the problem of potentially different architecture, and hence different sizes for the standard C data types. This problem is best fixed by using GLib (as in this case), so it is not covered here.
* GLib also provides the necessary macros to do endianess detection and conversion.

The historical solutions to solve these problems can be roughly grouped as follows:

* The whole software is built with one big shell script, which tries to pass the right options to different compilers and tools. However, such scripts are very hard to maintain and their use is strongly discouraged.
* Makefiles (GNU or other kind) allow some automation in building, but do not directly solve any of the portability issues. The classical solution is to ship various makefiles already tailored for different UNIX systems, and make it the user's responsibility to select the appropriate Makefile to use for their system. However, quite often this method required the Makefile to be edited, so the user had to be knowledgeable in UNIX programming tools. A good example of this style is found in some of the older versions of the game nethack.
* Some parts of the Makefile selection above can be automated by a suitable script that tries to guess the system on which it is running and select a suitably prepared Makefile. However, maintaining such scripts is quite hard, because there have been so many different kinds of systems, such as different library versions and different compilers.
* Even the creation of Makefiles can be automated from a script that guesses the system. Such scripts are normally called '''configure''' or '''Configure''' and are marked as executable for the sake of convenience. The name of the script does not automatically mean that the script is related to GNU autotools.
* Two major branches of these master configure scripts evolved, each operating slightly differently and catering for differing needs.
* These two scripts and a third guessing script were then combined into GNU autoconf. Because this happened many years ago, most of the historical code has already been purged from GNU autoconf.

Besides autoconf, it became evident that a more general Makefile generation tool can be useful as part of the whole process. This is how GNU automake was born. GNU automake can also be used outside autoconf. A simple autoconf configuration file is presented next.

=== GNU Autoconf ===

Autoconf is a tool that uses the GNU m4 macro preprocessor to process the configuration file and output a shell script based on the macros used in the file. Anything that m4 does not recognize as a macro is passed verbatim to the output script. This means that almost any wanted shell script fragments can be included into the &lt;code&gt;configure.ac&lt;/code&gt; file (the modern name for the default configuration file for autoconf).

The first subject here is a simple example to see how the basic configuration file works. Then some limitations of m4 syntax are covered, and hints on how to avoid problems with the syntax are given. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example1/configure.ac autoconf-automake/example1/configure.ac]

&lt;source lang=&quot;autoconf&quot;&gt;
# Specify the &quot;application name&quot; and application version
AC_INIT(hello, version-0.1)

# Because autoconf passes trough anything that it does not recognize
# into the final script ('configure'), we can use any valid shell
# statements here. Note that you should restrict your shell to
# standard features that are available in all UNIX shells, but in our
# case, we are content with the most used shell on Linux systems
# (bash).
echo -e &quot;\n\nHello from configure (using echo)!\n\n&quot;

# We can use a macro for this messages. This is much preferred as it
# is more portable.
AC_MSG_NOTICE([Hello from configure using msg-notice!])

# Check that the C Compiler works.
AC_PROG_CC
# Check what is the AWK-program on our system (and that one exists).
AC_PROG_AWK
# Check whether the 'cos' function can be found in library 'm'
# (standard C math library).
AC_CHECK_LIB(m, cos)
# Check for presence of system header 'unistd.h'.
# This also tests a lot of other system include files (it is
# semi-intelligent in determining which ones are required).
AC_CHECK_HEADER(unistd.h)
# You can also check for multiple system headers at the same time,
# but notice the different name of the test macro for this (plural).
AC_CHECK_HEADERS([math.h stdio.h])
# A way to implement conditional logic based on header file presence
# (we do not have a b0rk.h in our system).
AC_CHECK_HEADER(b0rk.h, [echo &quot;b0rk.h present in system&quot;], \
                        [echo &quot;b0rk.h not present in system&quot;])

echo &quot;But that does not stop us from continuing!&quot;

echo &quot;Directory to install binaries in is '$bindir'&quot;
echo &quot;Directory under which data files go is '$datadir'&quot;
echo &quot;For more variables, check 'config.log' after running configure&quot;
echo &quot;CFLAGS is '$CFLAGS'&quot;
echo &quot;LDFLAGS is '$LDFLAGS'&quot;
echo &quot;LIBS is '$LIBS'&quot;
echo &quot;CC is '$CC'&quot;
echo &quot;AWK is '$AWK'&quot;
&lt;/source&gt;

The listing is verbosely commented, so it should be pretty self-evident what the different macros do. The macros that test for a feature or an include file normally causes the generated configure script to generate small C code test programs that are run as part of the configuration process. If these programs run successfully, the relevant test succeeds and the configuration process continues to the next test.

The following convention holds true in respect to the names of macros that are commonly used and available:

* &lt;code&gt;AC_*&lt;/code&gt;: A macro that is included in autoconf or is meant for it.
* &lt;code&gt;AM_*&lt;/code&gt;: A macro that is meant for automake.
* Others: The autoconf system can be expanded by writing custom macros which can be stored in a custom directory. Some development packages also install new macros to be used.

The next step is to run &lt;code&gt;autoconf&lt;/code&gt;. Without any parameters, it reads &lt;code&gt;configure.ac&lt;/code&gt; by default. If &lt;code&gt;configure.ac&lt;/code&gt; does not exist, it tries to read &lt;code&gt;configure.in&lt;/code&gt; instead. 

Note that using the name &lt;code&gt;configure.in&lt;/code&gt; is considered obsolete.

 &lt;nowiki&gt;
 [sbox-FREMANTLE_X86: ~/example1] &amp;gt; autoconf
 [sbox-FREMANTLE_X86: ~/example1] &amp;gt; ls -l
 total 112
 drwxr-xr-x 2 user user  4096 Sep 16 05:14 autom4te.cache
 -rwxrwxr-x 1 user user 98683 Sep 16 05:14 configure
 -rw-r--r-- 1 user user  1825 Sep 15 17:23 configure.ac
 [sbox-FREMANTLE_X86: ~/example1] &amp;gt; ./configure
 Hello from configure (using echo)!
 
 configure: Hello from configure using msg-notice!
 checking for gcc... gcc
 checking for C compiler default output file name... a.out
 checking whether the C compiler works... yes
 checking whether we are cross compiling... no
 checking for suffix of executables...
 checking for suffix of object files... o
 checking whether we are using the GNU C compiler... yes
 checking whether gcc accepts -g... yes
 checking for gcc option to accept ANSI C... none needed
 checking for gawk... gawk
 checking for cos in -lm... yes
 checking how to run the C preprocessor... gcc -E
 checking for egrep... grep -E
 checking for ANSI C header files... yes
 checking for sys/types.h... yes
 checking for sys/stat.h... yes
 checking for stdlib.h... yes
 checking for string.h... yes
 checking for memory.h... yes
 checking for strings.h... yes
 checking for inttypes.h... yes
 checking for stdint.h... yes
 checking for unistd.h... yes
 checking for unistd.h... (cached) yes
 checking math.h usability... yes
 checking math.h presence... yes
 checking for math.h... yes
 checking stdio.h usability... yes
 checking stdio.h presence... yes
 checking for stdio.h... yes
 checking b0rk.h usability... no
 checking b0rk.h presence... no
 checking for b0rk.h... no
 b0rk.h not present in system
 But that doesn't stop us from continuing!
 Directory to install binaries in is '${exec_prefix}/bin'
 Directory under which data files go is '${prefix}/share'
 For more variables, check 'config.log' after running configure
 CFLAGS is '-g -O2'
 LDFLAGS is ''
 LIBS is '-lm '
 CC is 'gcc'
 AWK is 'gawk'
 &lt;/nowiki&gt;

Autoconf does not output information about its progress. Normally, only errors are output on stdout. Instead, it creates a new script called &lt;code&gt;configure&lt;/code&gt; in the same directory, and sets it as executable.

The configure script is the result of all of the macro processing. If taking a look at the generated file with an editor or by using less, it can be seen that it contains a lot of shell code.

Unless you are experienced in reading convoluted shell code, you do not need to try to understand what is attempted at the various stages. Normally the generated file is not fixed or modified manually because it is overwritten anyway the next time that someone runs autoconf.

When the generated script is executed, the output of various parts can be seen in the order that they were used in the configuration file.

Note that autoconf (because of m4) is an imperative language, which means that it executes the commands one by one when it detects them. This is in contrast to declarative languages, like Makefiles.

'''M4-syntax notes:'''

* Public autoconf M4 macros all start with A[CST]_* .
* Private macros start with an underscore, but they must not be used because they change from one autoconf version to the other (using undocumented features is bad style anyway).
* m4 uses [ and ] to quote arguments to functions, but in most cases quoting is not needed. Avoid using brackets, unless the macro does not seem to work properly otherwise. When writing new macros, using brackets become more important, but this material does not cover creating custom macros.
* If brackets absolutely must be passed to the generated script, there are three choices:
*; ${}$
*: &lt;code&gt;@&amp;lt;:@&lt;/code&gt; is same as [, and &lt;code&gt;@&amp;gt;:@&lt;/code&gt; is same as ]
*; []
*: expands into [] (most of time)
*; ${}$
*: avoid [ and ] (most command line tools and shell do not really require them)
* Because m4 uses brackets for its own needs, the [ command cannot be used to test things in scripts, but instead test has to be used (which is more clear anyway). This is why the brackets are escaped with the rules given above if they really must be output into the generated shell script.

If bad shell syntax is introduced into the configuration file, the bad syntax causes errors only when the generated script file is run (not when autoconf generates the script). In general, autoconf almost always succeeds but the generated script does not necessarily succeed. Knowing which error in the shell script corresponds to which line in the original configure.ac is not always easy but can be learned through experience.

There is a line that reports the result of testing for &lt;code&gt;unistd.h&lt;/code&gt;. It appears twice: the first time because it is the default test to run whenever testing for headers, and the second time because it was explicitly tested for. The second test output contains text (cached), which means that the test has been already run, and the result has been saved into a cache (the mysterious &lt;code&gt;autom4te.cache&lt;/code&gt; directory). This means that for large projects, which cannot necessarily perform the same tests over and over, the tests are only run once, which makes running the script faster.

The last line's output above contains the values of variables. When the configure script runs, it automatically creates shell variables that can be used in shell code fragments. The macros for checking what programs are available for compiling must illustrate that point. Here awk was used as an example.

The configure script takes the initial values for variables from the environment, but also contains a lot of options that can be given to the script. Using these options introduces new variables that can also be used. Options such as prefix are commonly used in compiling modern open source projects. Both of these cases are illustrated below:

 &lt;nowiki&gt;
 [sbox-FREMANTLE_X86: ~/example1] &amp;gt; CFLAGS='-O2 -Wall' ./configure --prefix=/usr
 ...
 Directory to install binaries in is '${exec_prefix}/bin'
 Directory under which data files go is '${prefix}/share'
 For more variables, check 'config.log' after running configure
 CFLAGS is '-O2 -Wall'
 LDFLAGS is ''
 LIBS is '-lm '
 CC is 'gcc'
 AWK is 'gawk'
 &lt;/nowiki&gt;

It can seem that giving the prefix does not change anything, but this is because the shell does not expand the value in this particular case. However, if the variable was used in the script for doing something, the shell would expand later on. In order to see some effect, try passing the datadir-option (because that is printed out explicitly).

If you need to see which variables are available for configuration, read the generated &lt;code&gt;config.log&lt;/code&gt; file. The variables are listed at the end of that file.

=== Substitutions ===

Besides creating the configure script, autoconf can do other useful things as well. Some people say that autoconf is at least as powerful as emacs, if not more so. Unfortunately, with all this power comes also lot of complexity. Sometimes finding out why things do not quite work can be rather difficult.

It can be useful to use the variables inside text files that are not directly related to the &lt;code&gt;configure.ac&lt;/code&gt;'''. These might be configuration files or files that are used in some part of the building process later on. For this, autoconf provides a mechanism called ''substitution''. A special macro reads in an external file, replaces all instances of variable names in it, and then stores the resulting file as a new file. The convention in naming the input files is to add a suffix .in to the names. The name of generated output file are the same but without the suffix. 

Note that the substitution is done when the generated configure script is run, not when autoconf is run.

The generated configure script replaces all occurrences of the variable name surrounded with 'at' (@) characters with the variable value when it reads through each of the input files.

This is best illustrated with a small example. The input file contents are listed after the autoconf configuration file. In this example, the substitution is only made for one file, but it is also possible to process multiple files using the substitution mechanism. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example2/configure.ac autoconf-automake/example2/configure.ac]

&lt;source lang=&quot;autoconf&quot;&gt;
# An example showing how to use a variable-based substitution.

AC_INIT(hello, version-0.1)

AC_PROG_CC
AC_PROG_AWK
AC_CHECK_HEADER(unistd.h)
AC_CHECK_HEADERS([math.h stdio.h])
AC_CHECK_HEADER(b0rk.h, [echo &quot;b0rk.h present in system&quot;], \
                        [echo &quot;b0rk.h not present in system&quot;])

echo &quot;But that doesn't stop us from continuing!&quot;

# Run the test-output.txt(.in) through autoconf substitution logic.
AC_OUTPUT(test-output.txt)
&lt;/source&gt;

[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example2/test-output.txt.in autoconf-automake/example2/test-output.txt.in]

&lt;pre&gt;
This file will go through autoconf variable substitution.
The output file will be named as 'test-output.txt' (the '.in'-suffix
is stripped).
All the names surrounded by '@'-characters will be replaced by the values
of the variables (if present) by the configure script, when it is run
by the end user.
Prefix: @prefix@
C compiler: @CC@
This is a name for which there is no variable.
Stuff: @stuff@
&lt;/pre&gt;

We then run autoconf and configure:

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/example2] &gt; autoconf
[sbox-FREMANTLE_X86: ~/example2] &gt; ./configure
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for gawk... gawk
checking how to run the C preprocessor... gcc -E
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes 
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for unistd.h... (cached) yes
checking math.h usability... yes
checking math.h presence... yes
checking for math.h... yes
checking stdio.h usability... yes
checking stdio.h presence... yes
checking for stdio.h... yes
checking b0rk.h usability... no
checking b0rk.h presence... no
checking for b0rk.h... no
b0rk.h not present in system
But that doesn't stop us from continuing!
configure: creating ./config.status
config.status: creating test-output.txt
[sbox-FREMANTLE_X86: ~/example2] &gt; cat test-output.txt
This file will go through autoconf variable substitution.

The output file will be named as 'test-output.txt' (the '.in'-suffix
is stripped).

All names surrounded by '@'-characters will be replaced by the values
of the variables (if present) by the configure script when it is run
by end user.

Prefix: /usr/local
C compiler: gcc

This is a name for which there is no variable.
Stuff: @stuff@
&lt;/pre&gt;

This feature is used later on. When you run your own version of the file, notice the creation of file called &lt;code&gt;config.status&lt;/code&gt;. It is the file that actually does the substitution for external files, so if the configuration is otherwise complex, and you only want to re-run the substitution of the output files, you can run the config.status script.

=== Introducing Automake ===

The next step is to create a small project that consists of yet another hello world. This time, there is a file implementing the application (main), a header file describing the API (printHello()) and the implementation of the function.

As it happens, GNU automake is designed so that it can be easily integrated with autoconf. Makefiles are generated by a configure script, and it contains the necessary settings for the system on which configure is run.

In order for this to work, two things are necessary:

* A configuration file for automake (conventionally &lt;code&gt;Makefile.am&lt;/code&gt;) which contains the files to be generated using make
* A configuration file for autoconf (conventionally &lt;code&gt;configure.ac&lt;/code&gt;) which lists the tests which are required to ensure that the system has all the required dependencies

Running automake will generate a file &lt;code&gt;Makefile.in&lt;/code&gt; containing a number of standard targets for make, and running autoconf will generate a configure script which will test your system, and generate final Makefiles and other files based on the software it finds present on the system.

The example starts with the autoconf configuration file: autoconf-[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/configure.ac automake/example3/configure.ac]

&lt;source lang=&quot;autoconf&quot;&gt;
# Any source file name related to our project is ok here.
AC_INIT(helloapp, 0.1)
# We are using automake, so we init it next. The name of the macro
# starts with 'AM' which means that it is related to automake ('AC'
# is related to autoconf).
# Initing automake means more or less generating the .in file from
# the .am file although it can also be generated at other steps.
AM_INIT_AUTOMAKE
# Compiler check.
AC_PROG_CC
# Check for 'install' program.
AC_PROG_INSTALL
# Generate the Makefile from Makefile.in (using substitution logic).
AC_OUTPUT(Makefile)
&lt;/source&gt;

Then the configuration file is presented for automake: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/Makefile.am autoconf-automake/example3/Makefile.am]

&lt;source lang=&quot;make&quot;&gt;
# Automake rule primer:
# 1) Left side_ tells what kind of target this is.
# 2) _right side tells what kind of dependencies are listed.
#
# As an example, below:
# 1) bin = binaries
# 2) PROGRAMS lists the programs to generate Makefile.ins for.
bin_PROGRAMS = helloapp
# Listing source dependencies:
#
# The left side_ gives the name of the application to which the
# dependencies are related to.
# _right side gives again the type of dependencies.
#
# Here we then list the source files that are necessary to build the
# helloapp -binary.
helloapp_SOURCES = helloapp.c hello.c hello.h
# For other files that cannot be automatically deduced by automake,
# you need to use the EXTRA_DIST rule which should list the files
# that should be included. Files can also be in other directories or
# even whole directories can be included this way (not recommended).
EXTRA_DIST = some.service.file.service some.desktop.file.desktop
&lt;/source&gt;

This material tries to introduce just enough of automake for it to be useful for small projects. Because of this, the detailed syntax of &lt;code&gt;Makefile.am&lt;/code&gt; is not explained. Based on the above description, automake knows what kind of &lt;code&gt;Makefile.in&lt;/code&gt; to create, and autoconf takes it over from there and fills in the missing pieces.

The source files for the project are as simple as possible, but notice the implementation of printHello. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/helloapp.c autoconf-automake/example3/helloapp.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * This maemo code example is licensed under a MIT-style license,
 * that can be found in the file called &quot;License&quot; in the same
 * directory as this file.
 * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
 */
#include &lt;stdlib.h&gt;
#include &quot;hello.h&quot;
int main(int argc, char** argv) {
  printHello();
  return EXIT_SUCCESS;
}
&lt;/source&gt;

[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/hello.h autoconf-automake/example3/hello.h]

&lt;source lang=&quot;c&quot;&gt;
/**
 * This maemo code example is licensed under a MIT-style license,
 * that can be found in the file called &quot;License&quot; in the same
 * directory as this file.
 * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
 */
#ifndef INCLUDE_HELLO_H
#define INCLUDE_HELLO_H
extern void printHello(void);
#endif
&lt;/source&gt;

[https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/hello.c autoconf-automake/example3/hello.c]

&lt;source lang=&quot;c&quot;&gt;
/**
 * This maemo code example is licensed under a MIT-style license,
 * that can be found in the file called &quot;License&quot; in the same
 * directory as this file.
 * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
 */

#include &lt;stdio.h&gt;
#include &quot;hello.h&quot;

void printHello(void) {
  /* Note that these are available as defines now. */
  printf(&quot;(&quot; PACKAGE &quot; &quot; VERSION &quot;)\n&quot;);
  printf(&quot;Hello world!\n&quot;);
}
&lt;/source&gt;

The &lt;code&gt;PACKAGE&lt;/code&gt; and &lt;code&gt;VERSION&lt;/code&gt; defines are passed to the build process automatically.

 [sbox-FREMANTLE_X86: ~/example3] &amp;gt; autoconf
 configure.ac:10: error: possibly undefined macro: AM_INIT_AUTOMAKE
 If this token and others are legitimate, please use m4_pattern_allow.
 See the Autoconf documentation.

Autoconf is complaining about a macro, for which it cannot find a definition (actually m4 is the program that does the complaining). The problem is that by default, autoconf only knows about built-in macros. When using a macro for integration or a macro that comes with another package, autoconf needs to be told about it. Luckily, this process is quite painless.

A local &lt;code&gt;aclocal.m4&lt;/code&gt; file needs to be created into the same directory with the &lt;code&gt;configure.ac&lt;/code&gt;. When starting, autoconf reads this file, and it is enough to put the necessary macros there.

For this, a utility program called aclocal is used, which scans the configure.ac and copy the relevant macros into the local &lt;code&gt;aclocal.m4&lt;/code&gt;. The directory for all the extension macros is usually &lt;code&gt;/usr/share/aclocal/&lt;/code&gt;, which should be checked out at some point.

Now it is time to run aclocal, and then try and run autoconf again. 

Note that the messages that are introduced into the process from now on are inevitable, because some macros use obsolete features or have incomplete syntax, and thus trigger warnings. There is no easy solution to this, other than to fix the macros themselves.

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/example3] &gt; aclocal
/scratchbox/tools/share/aclocal/pkg.m4:5: warning:
 underquoted definition of PKG_CHECK_MODULES
  run info '(automake)Extending aclocal' or see
  http://sources.redhat.com/automake/automake.html#Extending%20aclocal
/usr/share/aclocal/pkg.m4:5: warning:
 underquoted definition of PKG_CHECK_MODULES
/usr/share/aclocal/gconf-2.m4:8: warning:
 underquoted definition of AM_GCONF_SOURCE_2
/usr/share/aclocal/audiofile.m4:12: warning:
 underquoted definition of AM_PATH_AUDIOFILE
[sbox-FREMANTLE_X86: ~/example3] &gt; autoconf
[sbox-FREMANTLE_X86: ~/example3] &gt; ./configure
configure: error: cannot find install-sh or install.sh in
 ~/example3 ~/ ~/..
&lt;/pre&gt;

Listing the contents of the directory reveals that the &lt;code&gt;Makefile.in&lt;/code&gt; is not among the contents. Automake needs to be run manually, so that the file is created. At the same time, the missing files need to be introduced to the directory (such as the install.sh that configure seems to complain about).

This is done by executing automake -ac, which creates the Makefile.in and also copy the missing files into their proper places. ''This step also copies a file called &lt;code&gt;COPYING&lt;/code&gt; into the directory, which by default contains the GPL.'' So, if the software is going to be distributed under some other license, this is the correct moment to replace the license file with the appropriate one.

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/example3] &gt; automake -ac
configure.ac: installing `./install-sh'
configure.ac: installing `./missing'
Makefile.am: installing `./depcomp'
[sbox-FREMANTLE_X86: ~/example3] &gt; ./configure
checking for a BSD-compatible install... /scratchbox/tools/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for a BSD-compatible install... /scratchbox/tools/bin/install -c
configure: creating ./config.status
config.status: creating Makefile
config.status: executing depfiles commands
&lt;/pre&gt;

Notice the second to last line of the output, which shows that configure just created a Makefile (based on the &lt;code&gt;Makefile.in&lt;/code&gt; that ''automake'' created).

Performing all these steps manually each time to make sure that all the generated files are really generated can be rather tedious. Most developers create a script called '''autogen.sh''', which implements the necessary bootstrap procedures for them. Below is a file that is suitable for this example. Real-life projects can have more steps because of localization and other requirements. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/autogen.sh autoconf-automake/example3/autogen.sh]

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
#
# A utility script to setup the autoconf environment for the first
# time. Normally this script is run when checking out a
# development version of the software from SVN/version control.
# Regular users expect to download .tar.gz/tar.bz2 source code
# instead, and those should come with with 'configure' script so that
# users do not require the autoconf/automake tools.
#
# Scan configure.ac and copy the necessary macros into aclocal.m4.
aclocal
# Generate Makefile.in from Makefile.am (and copy necessary support
# files, because of -ac).
automake -ac
# This step is not normally necessary, but documented here for your
# convenience. The files listed below need to be present to stop
# automake from complaining during various phases of operation.
#
# You also should consider maintaining these files separately once
# you release your project into the wild.
#
# touch NEWS README AUTHORS ChangeLog
# Run autoconf (creates the 'configure'-script).
autoconf
echo 'Ready to go (run configure)'
&lt;/source&gt;

In the above code, the line with touch is commented. This can raise a question. There is a target called distcheck that automake creates in the Makefile, and this target checks whether the distribution tarball contains all the necessary files. The files listed on the touch line are necessary (even if empty), so they need to be created at some point. Without these files, the penultimate Makefile complains when running the distcheck-target.

Build the project now and test it out:

 [sbox-FREMANTLE_X86: ~/example3] &amp;gt; make
 if gcc -DPACKAGE_NAME=\&quot;helloapp\&quot; -DPACKAGE_TARNAME=\&quot;helloapp\&quot;
  -DPACKAGE_VERSION=\&quot;0.1\&quot; -DPACKAGE_STRING=\&quot;helloapp\ 0.1\&quot;
  -DPACKAGE_BUGREPORT=\&quot;\&quot; -DPACKAGE=\&quot;helloapp\&quot; -DVERSION=\&quot;0.1\&quot;
  -I. -Iexample3 -g -O2 -MT helloapp.o -MD -MP -MF &quot;.deps/helloapp.Tpo&quot;
  -c -o helloapp.o helloapp.c; \ then \
   mv -f &quot;.deps/helloapp.Tpo&quot; &quot;.deps/helloapp.Po&quot;; 
  else rm -f &quot;.deps/helloapp.Tpo&quot;; exit 1;
 fi
 if gcc -DPACKAGE_NAME=\&quot;helloapp\&quot; -DPACKAGE_TARNAME=\&quot;helloapp\&quot;
  -DPACKAGE_VERSION=\&quot;0.1\&quot; -DPACKAGE_STRING=\&quot;helloapp\ 0.1\&quot;
  -DPACKAGE_BUGREPORT=\&quot;\&quot; -DPACKAGE=\&quot;helloapp\&quot; -DVERSION=\&quot;0.1\&quot;
  -I. -Iexample3 -g -O2 -MT hello.o -MD -MP -MF &quot;.deps/hello.Tpo&quot;
  -c -o hello.o hello.c; \ then \
   mv -f &quot;.deps/hello.Tpo&quot; &quot;.deps/hello.Po&quot;; 
  else rm -f &quot;.deps/hello.Tpo&quot;; exit 1;
 fi
 gcc -g -O2 -o helloapp helloapp.o hello.o
 [sbox-FREMANTLE_X86: ~/example3] &amp;gt; ./helloapp
 (helloapp 0.1)
 Hello world!
 [sbox-FREMANTLE_X86: ~/example3] &amp;gt; make clean
 test -z &quot;helloapp&quot; || rm -f helloapp
 rm -f *.o

=== Checking for Distribution Sanity ===

The generated Makefile contains various targets that can be used when creating distribution tarballs (tar files containing the source code and the necessary files to build the software). The most important of these is the dist-target, which by default creates a .tar.gz-file out of the source, including the configure script and other necessary files (which are specified in &lt;code&gt;Makefile.am&lt;/code&gt;).

To test whether building the software from the distribution tarball is possible, execute the distcheck-target. It first creates a distribution tarball, then extracts it in a new subdirectory, runs configure there and tries and builds the software with the default make target. If it fails, the relevant error is given.

Making the distcheck target each time before making a dist target is recommended, so that you can be sure that the distribution tarball can be used outside the source tree. This step is especially critical later when [[packaging|making Debian packages]].

=== Cleaning up ===

For the sake of convenience, the example3 directory also includes a script called &lt;code&gt;antigen.sh&lt;/code&gt;, which tries its best to get rid of all generated files (it is necessary to &lt;code&gt;autogen.sh&lt;/code&gt; the project afterwards).

Having a clean-up script is not very common in open source projects, but it is especially useful when starting autotools development because it allows testing the toolchain easily from scratch.

The contents of antigen.sh that is suitable for simple projects: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/autoconf-automake/example3/antigen.sh autoconf-automake/example3/antigen.sh]

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
#
# A utility script to remove all generated files.
#
# Running autogen.sh will be required after running this script since
# the 'configure' script will also be removed.
#
# This script is mainly useful when testing autoconf/automake changes
# and as a part of their development process.
# If there's a Makefile, then run the 'distclean' target first (which
# will also remove the Makefile).
if test -f Makefile; then
  make distclean
fi
# Remove all tar-files (assuming there are some packages).
rm -f *.tar.* *.tgz
# Also remove the autotools cache directory.
rm -Rf autom4te.cache
# Remove rest of the generated files.
rm -f Makefile.in aclocal.m4 configure depcomp install-sh missing
&lt;/source&gt;

=== Integration with Pkg-Config ===

The last part that is covered for autoconf is how to integrate pkg-config support into the projects when using &lt;code&gt;configure.ac&lt;/code&gt;.

Pkg-config comes with a macro package ('''pkg.m4'''), which contains some useful macros for integration. The best documentation for these can be found in the pkg-config manual pages.

For the purpose of this example, only one macro is used, &lt;code&gt;PKG_CHECK_MODULES&lt;/code&gt;, which is used as part of &lt;code&gt;configure.ac&lt;/code&gt; for pkg-config integration

&lt;source lang=&quot;autoconf&quot;&gt;
# Check whether the necessary pkg-config packages are present. The
# PKG_CHECK_MODULES macro is supplied by pkg-config
# (/usr/share/aclocal/).
#
# The first parameter is the variable name prefix that is
# used to create two variables: one to hold the CFLAGS required by
# the packages, and one to hold the LDFLAGS (LIBS) required by the
# packages. The variable name prefix (HHW) can be chosen freely.
PKG_CHECK_MODULES(HHW, gtk+-2.0 hildon-1 hildon-fm-2 gnome-vfs-2.0 \
                       gconf-2.0 libosso)
# At this point HHW_CFLAGS contains the necessary compiler flags
# and HHW_LIBS contains the linker options necessary for all the
# packages listed above.
#
# Add the pkg-config supplied values to the ones that are used by
# Makefile or supplied by the user running ./configure.
CFLAGS=&quot;$HHW_CFLAGS $CFLAGS&quot;
LIBS=&quot;$HHW_LIBS $LIBS&quot;
&lt;/source&gt;

The proper placing for this code is after all the &lt;code&gt;AC_PROG_*&lt;/code&gt; checks and before the &lt;code&gt;AC_OUTPUT&lt;/code&gt; macros (so that the build flags may affect the substituted files).

Check also the validity of the package names by using:

 pkg-config --list-all

to make sure you do not try to get the wrong library information.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Generic Platform Components/Application Preferences-Gconf</title>
    <id>4384</id>
    <revision>
      <id>37538</id>
      <timestamp>2010-08-05T13:08:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Generic Platform Components/Application Preferences-Gconf]] moved to [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Application Preferences-Gconf]]: add &quot;Using &quot;</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Application Preferences-Gconf]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Generic Platform Components/Extending Hildon Input Methods</title>
    <id>4381</id>
    <revision>
      <id>37530</id>
      <timestamp>2010-08-05T11:50:38Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Generic Platform Components/Extending Hildon Input Methods]] moved to [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Extending Hildon Input Methods]]: add &quot;Using &quot;</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Extending Hildon Input Methods]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Generic Platform Components/GnomeVFS File System</title>
    <id>4380</id>
    <revision>
      <id>37528</id>
      <timestamp>2010-08-05T11:47:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Generic Platform Components/GnomeVFS File System]] moved to [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/GnomeVFS File System]]: add &quot;Using &quot;</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/GnomeVFS File System]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Generic Platform Components/Using Backup Application</title>
    <id>4382</id>
    <revision>
      <id>37533</id>
      <timestamp>2010-08-05T13:03:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Generic Platform Components/Using Backup Application]] moved to [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Using Backup Application]]: add &quot;Using &quot;</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Using Backup Application]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Generic Platform Components/Using Backup Application</title>
    <id>4382</id>
    <revision>
      <id>37533</id>
      <timestamp>2010-08-05T13:03:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Generic Platform Components/Using Backup Application]] moved to [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Using Backup Application]]: add &quot;Using &quot;</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Using Backup Application]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial</title>
    <id>2703</id>
    <revision>
      <id>20042</id>
      <timestamp>2009-10-14T09:37:10Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial]] moved to [[Legacy Maemo 5 Documentation/Graphical UI Tutorial]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Controls</title>
    <id>2700</id>
    <revision>
      <id>20036</id>
      <timestamp>2009-10-14T09:33:31Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Controls]] moved to [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Controls]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Controls]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Data selection</title>
    <id>2699</id>
    <revision>
      <id>20034</id>
      <timestamp>2009-10-14T09:31:07Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Data selection]] moved to [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Data selection]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Data selection]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Getting started</title>
    <id>2694</id>
    <revision>
      <id>20024</id>
      <timestamp>2009-10-14T09:27:20Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Getting started]] moved to [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Getting started]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Getting started]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Hildon desktop</title>
    <id>2704</id>
    <revision>
      <id>20044</id>
      <timestamp>2009-10-14T09:38:11Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Hildon desktop]] moved to [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Hildon desktop]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Hildon desktop]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Introduction</title>
    <id>2693</id>
    <revision>
      <id>20022</id>
      <timestamp>2009-10-14T09:26:20Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Introduction]] moved to [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Introduction]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Introduction]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Menus</title>
    <id>2696</id>
    <revision>
      <id>20028</id>
      <timestamp>2009-10-14T09:28:55Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Menus]] moved to [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Menus]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Menus]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Navigation</title>
    <id>2698</id>
    <revision>
      <id>20032</id>
      <timestamp>2009-10-14T09:30:22Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Navigation]] moved to [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Navigation]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Navigation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Toolbars</title>
    <id>2697</id>
    <revision>
      <id>20030</id>
      <timestamp>2009-10-14T09:29:47Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Toolbars]] moved to [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Toolbars]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Toolbars]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Utilities</title>
    <id>2702</id>
    <revision>
      <id>20040</id>
      <timestamp>2009-10-14T09:34:37Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Utilities]] moved to [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Utilities]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Utilities]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Windows and dialogs</title>
    <id>2695</id>
    <revision>
      <id>20026</id>
      <timestamp>2009-10-14T09:28:04Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Graphical UI Tutorial/Windows and dialogs]] moved to [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Windows and dialogs]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Windows and dialogs]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Human Interface Guidelines</title>
    <id>2677</id>
    <revision>
      <id>19980</id>
      <timestamp>2009-10-14T08:52:55Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines]] moved to [[Legacy Maemo 5 Documentation/Human Interface Guidelines]]: This part of documentation is phased out, in favor of official Nokia forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Human Interface Guidelines]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Controls</title>
    <id>2687</id>
    <revision>
      <id>20004</id>
      <timestamp>2009-10-14T09:09:34Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Controls]] moved to [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Controls]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Controls]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Desktop Widget UI Guidelines</title>
    <id>2692</id>
    <revision>
      <id>38810</id>
      <timestamp>2010-09-20T14:53:14Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Desktop Widget UI Guidelines]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Device Orientation</title>
    <id>2681</id>
    <revision>
      <id>19992</id>
      <timestamp>2009-10-14T09:02:58Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Device Orientation]] moved to [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Device Orientation]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum docum</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Device Orientation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Dialogs</title>
    <id>2684</id>
    <revision>
      <id>19998</id>
      <timestamp>2009-10-14T09:07:36Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Dialogs]] moved to [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Dialogs]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Dialogs]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/GUI Design Template</title>
    <id>2691</id>
    <revision>
      <id>20012</id>
      <timestamp>2009-10-14T09:13:36Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/GUI Design Template]] moved to [[GUI Design Template]]: Not part of Developer Guide</comment>
      <text xml:space="preserve">#REDIRECT [[GUI Design Template]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Hildonizing an Interface</title>
    <id>2686</id>
    <revision>
      <id>20002</id>
      <timestamp>2009-10-14T09:08:40Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Hildonizing an Interface]] moved to [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Hildonizing an Interface]]: Phase out from Maemo Developer Guide, superceded by Official Nokia</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Hildonizing an Interface]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Icons</title>
    <id>2689</id>
    <revision>
      <id>20008</id>
      <timestamp>2009-10-14T09:12:04Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Icons]] moved to [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Icons]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Icons]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Introduction</title>
    <id>2679</id>
    <revision>
      <id>19988</id>
      <timestamp>2009-10-14T09:01:03Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Introduction]] moved to [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Introduction]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Introduction]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Notes and Banners</title>
    <id>2683</id>
    <revision>
      <id>19996</id>
      <timestamp>2009-10-14T09:04:52Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Notes and Banners]] moved to [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Notes and Banners]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documen</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Notes and Banners]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Reality Checks</title>
    <id>2690</id>
    <revision>
      <id>20010</id>
      <timestamp>2009-10-14T09:12:42Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Reality Checks]] moved to [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Reality Checks]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Reality Checks]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Redesigning From Maemo 4 to Maemo 5</title>
    <id>2320</id>
    <revision>
      <id>16903</id>
      <timestamp>2009-08-26T07:45:59Z</timestamp>
      <contributor>
        <username>bijjal</username>
        <id>338</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Redesigning From Maemo 4 to Maemo 5]] moved to [[Documentation/Maemo 5 Developer Guide/Porting Software/Redesigning From Maemo 4 to Maemo 5]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Porting Software/Redesigning From Maemo 4 to Maemo 5]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Usability Principles</title>
    <id>2680</id>
    <revision>
      <id>19990</id>
      <timestamp>2009-10-14T09:02:08Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Usability Principles]] moved to [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Usability Principles]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum d</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Usability Principles]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/User Input</title>
    <id>2688</id>
    <revision>
      <id>20006</id>
      <timestamp>2009-10-14T09:11:02Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/User Input]] moved to [[Legacy Maemo 5 Documentation/Human Interface Guidelines/User Input]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Human Interface Guidelines/User Input]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/View Menu</title>
    <id>2685</id>
    <revision>
      <id>20000</id>
      <timestamp>2009-10-14T09:08:11Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/View Menu]] moved to [[Legacy Maemo 5 Documentation/Human Interface Guidelines/View Menu]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Human Interface Guidelines/View Menu]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Windows</title>
    <id>2682</id>
    <revision>
      <id>19994</id>
      <timestamp>2009-10-14T09:03:48Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Windows]] moved to [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Windows]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Windows]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Windows</title>
    <id>2682</id>
    <revision>
      <id>19994</id>
      <timestamp>2009-10-14T09:03:48Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Windows]] moved to [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Windows]]: Phase out from Maemo Developer Guide, superceded by Official Nokia Forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Legacy Maemo 5 Documentation/Human Interface Guidelines/Windows]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Kernel and Debugging Guide</title>
    <id>2323</id>
    <revision>
      <id>29346</id>
      <timestamp>2010-02-12T12:45:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">=== Kernel and Debugging Guide ===

*[[{{PAGENAME}}/Introduction|&lt;font color=green&gt;Introduction&lt;/font&gt;]]
*[[{{PAGENAME}}/Maemo_Kernel_Guide|&lt;font color=green&gt;Kernel Guide&lt;/font&gt;]]
*[[{{PAGENAME}}/Maemo_Debugging_Guide|&lt;font color=green&gt;Debugging Guide&lt;/font&gt;]]

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Kernel and Debugging Guide/Introduction</title>
    <id>2324</id>
    <revision>
      <id>29347</id>
      <timestamp>2010-02-12T12:46:09Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">= Introduction =


The following code examples are used in this chapter:

* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/gdb_example/ gdb_example]
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemopad MaemoPad]
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/valgrind_example valgrind_example]
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/hello-world-app hello-world-app]
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/hello-module/ hello-module]

This chapter documents two different topics: debugging Maemo applications and building the Maemo kernel. 

== [[Documentation/Maemo_5_Developer_Guide/Kernel_and_Debugging_Guide/Maemo_Debugging_Guide|Maemo Debugging Guide]] ==

Debugging tools are useful for finding and fixing errors in programs, such as segfaults or memory leaks. Mainly gdb and valgrind are discussed. Some further tools can be found at [[Documentation/devtools/maemo5]].

== [[Documentation/Maemo_5_Developer_Guide/Kernel_and_Debugging_Guide/Maemo_Kernel_Guide|Maemo Kernel Guide]] == 
Compiling the kernel is not as difficult as it might sound. This section gives step-by-step instructions on configuring, compiling, and installing a custom Maemo kernel. It also gives an example on building a self-made kernel module.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Kernel and Debugging Guide/Maemo Debugging Guide</title>
    <id>2326</id>
    <revision>
      <id>36367</id>
      <timestamp>2010-06-29T09:07:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Setting up Environment */ direct link to PC connectivity tutorial</comment>
      <text xml:space="preserve">= Debugging =

= Introduction =

The following code examples are used in this chapter:

* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/gdb_example gdb_example]
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemopad MaemoPad]
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/hello-world-app/ hello-world-app]
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/valgrind_example/ valgrind_example]

= Maemo Debugging Guide =

This section is targeted at beginner-level Maemo developers who need to know how to perform debugging in the Maemo environment.

This section covers the two basic debugging tools available in the Maemo environment and shows how to use them. The tools are:

* [[Documentation/devtools/maemo5/gdb|gdb]] - The Gnu Project Debugger. General tool for various debugging needs.
* [[Documentation/devtools/maemo5/valgrind|valgrind]] - Debugger and profiler. Valgrind works only in the X86 environment under Scratchbox, so this tool cannot be used on the device itself.

This section assumes that the developer already knows how to:

* develop software in the Linux environment using the C language
* install software to the tablet device
* [[root access|gain root access]] to the device
* install ssh to the device
* configure repositories in the &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; file
* set up USB networking between a Linux PC and the Tablet (the device can also be used over a local WLAN connection instead)
* work with the Scratchbox environment and Scratchbox targets

== Pre-Requisites ==

To follow the debugging examples you need to have the following:

* [[Documentation/Maemo_5_Final_SDK_Installation|Maemo SDK installed on a Linux PC]]
* Nokia Internet Tablet device running [[Open development/Maemo roadmap/Fremantle|Maemo 5]].
* USB cable to connect the device with the Linux PC
* Internet access both for the tablet and for the Linux PC
* USB networking (or WLAN) set up between the Linux PC and the device
* root login access to the device over [[SSH]]
* package &lt;code&gt;maemo-sdk-debug&lt;/code&gt; installed
* [[terminal|xterm]] installed on the device
* SSH software installed on the device

== General Notes on Debugging ==

=== Debugging Issues on ARM Architecture ===

When debugging the ARM architecture, pay attention to the following issues:

* To make backtraces work properly on the ARM side, the debug packages need to be installed for the libraries the application is using. Profiling and debugging (gdb) tools require the code to have either framepointers or debugging symbols to unwind the stack. This is necessary for showing backtraces or call graphs.
* C language functions with the &lt;code&gt;__attribute__((__noreturn__))&lt;/code&gt; statement need to be compiled with the gcc option: &lt;code&gt;-mapcs-frame&lt;/code&gt; otherwise the compiler excludes their function frame. On Maemo, the Glib and C library noreturn functions like &lt;code&gt;abort()&lt;/code&gt; already have this. Without a function frame, gdb cannot backtrace through &quot;noreturn&quot; functions.
* In addition, for gdb to be able to display the correct function names during debugging, it also needs to have access to the debug symbols. Without them, gdb shows the preceding exported function name for a given address.

=== Debugging Issues in Scratchbox ===

It is recommended to use the native gdb in the target, not the Scratchbox host gdb.

When debugging threads in an application, gdb needs to be linked against the same thread library that the application is using. For this reason, the gdb provided in Scratchbox is not suitable for threads debugging, and the native gdb must be used instead. If you see errors such as:

 warning: Cannot initialize thread debugging library: unknown thread_db error '22'

in gdb output, use the native gdb. For instructions on how to start using the native gdb, see the next section.

== Using Gdb Debugger ==

The Gnu Project Debugger, or gdb for short, is a general purpose debugger that can be used for various debugging purposes.

This section does not explain how to use the gdb debugger itself, nor does it explain the specific commands in gdb to perform particular actions. There are other [http://www.gnu.org/software/gdb/documentation/ tutorials and documentation] readily available on the Internet for that purpose. This section focuses on explaining how to set up and perform the basic debugging steps with [[Documentation/devtools/maemo5/gdb|gdb in the Maemo environment]].

=== Setting up Environment ===

Both the Internet Tablet device, described in section [[Documentation/Maemo PC Connectivity Tutorial|Maemo PC Connectivity]], and the Scratchbox environment, described in section [[../../Development Environment/Maemo SDK|Maemo SDK]], need to be set up.

=== Preparing Scratchbox Environment for Debugging ===

If Maemo SDK is not yet installed, it must be installed before continuing. After [[Documentation/Maemo 5 Final SDK Installation|installing the Maemo SDK]], the default target names are FREMANTLE_ARMEL and FREMANTLE_X86. These are the names used in this example.

Scratchbox provides a version of gdb, which is used when executing &lt;code&gt;gdb&lt;/code&gt;. It is also possible to use the host system (non-Scratchbox) version of gdb, by executing &lt;code&gt;native-gdb&lt;/code&gt;.

Next, install gdb to Scratchbox from the Maemo repositories.
 
 [sbox-FREMANTLE_x86: ~] &gt; fakeroot apt-get install maemo-sdk-debug


Now two gdb programs are installed. The one used can be checked with the following:
 
 [sbox-FREMANTLE_x86: ~] &gt; which gdb
 /targets/links/arch_tools/bin/gdb

Start briefly both gdb debuggers to see that they start properly in the Scratchbox environment. First just run gdb:
 
 [sbox-FREMANTLE_x86: ~] &gt; gdb
 GNU gdb 6.8
 Copyright (C) 2008 Free Software Foundation, Inc.
 License GPLv3+: GNU GPL version 3 or later &amp;lt;http://gnu.org/licenses/gpl.html&amp;gt;
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.  Type &quot;show copying&quot;
 and &quot;show warranty&quot; for details.
 This GDB was configured as &quot;i686-pc-linux-gnu&quot;.
 (gdb) q
 [sbox-FREMANTLE_x86: ~] &gt;


Then run the Maemo version of gdb:
 
 [sbox-FREMANTLE_x86: ~] &gt; native-gdb
 GNU gdb (GDB) 6.8.50.20090417-debian
 Copyright (C) 2009 Free Software Foundation, Inc.
 License GPLv3+: GNU GPL version 3 or later &amp;lt;http://gnu.org/licenses/gpl.html&amp;gt;
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.  Type &quot;show copying&quot;
 and &quot;show warranty&quot; for details.
 This GDB was configured as &quot;i486-linux-gnu&quot;.
 For bug reporting instructions, please see:
 &amp;lt;http://www.gnu.org/software/gdb/bugs/&amp;gt;.
 (gdb) q
 [sbox-FREMANTLE_x86: ~] &gt;


To quit from gdb, type 'q' and press ENTER.

The native-gdb is used here because it allows threads to be debugged. The native-gdb should always be run instead of the Scratchbox version.

=== Preparing Internet Tablet for Debugging ===

{{ambox|text=Because additional software is going to be installed and debugging is performed in the real device that is running the official Sales Image, take a full back-up of the device and any important files before continuing.}}


Gdb needs to be installed to the Internet Tablet device. Install [[SSH|SSH server]] on the device before continuing. OpenSSH server can be installed from maemo [[extras]] repository or from the SDK repository like the gdb below:

# [[Terminal#Open the terminal|Open a console]].
# Gain [[root access]] to the device.
# Edit the &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; file on the device so that it contains the lines: 
 
 deb http://repository.maemo.org/ fremantle/sdk free non-free
 deb http://repository.maemo.org/ fremantle/tools free non-free


Important: Performing device software updates from the Maemo SDK repositories (for example, 'apt-get upgrade') is not recommended. The reason for this is that there can be some software packages in the SDK repositories that are so-called ''sdk variants''. They can create problems if installed directly to the actual device. In this example, only gdb software is used from the repository.
# Perform an &lt;code&gt;apt-get update&lt;/code&gt; on the device. The update command refreshes the package list database on the device.
# Perform an &lt;code&gt;apt-get install gdb&lt;/code&gt;
# Disable the SDK repository by removing or commenting out the lines from your  &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; file

You should now have gdb and gdbserver (included in the gdb package) installed to the device.

=== Debugging Use Cases with Gdb ===

==== Debugging Command Line Application in Scratchbox X86 Environment with Gdb ====

One of the most common debugging case is performing debugging in the Scratchbox X86 environment.

By now, the gdb is installed in the FREMANTLE_X86 target. Next, download the [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/gdb_example/ gdb_example] sources.

The example apps are:

* &lt;code&gt;gdb_example.c&lt;/code&gt; is a very simple C application that has some functions that call each other in a row. This is used here to demonstrate how to get backtraces.
* &lt;code&gt;gdb_example2.c&lt;/code&gt; is a simple variant of the &lt;code&gt;gdb_example.c&lt;/code&gt; that has some additional &lt;code&gt;sleep()&lt;/code&gt; calls. This is used to demonstrate simple core dump debugging.

Next, compile the small &lt;code&gt;gdb_example.c&lt;/code&gt; file as shown below, and start the gdb debugger. This simple example shows how to set breakpoints, and how to get a backtrace from the program. Backtrace tells what functions have been called and what parameters have been used.

&lt;ol&gt;
&lt;li&gt;Compile the &lt;code&gt;gdb_example.c&lt;/code&gt; application with the &lt;code&gt;-g&lt;/code&gt; option like this:

&lt;pre&gt; 
[sbox-FREMANTLE_x86: ~/src/gdb_example] &gt; gcc gdb_example.c -o gdb_example -g -O2 -Wall
&lt;/pre&gt;

It is recommended to compile debug binaries with options -g -O2 -Wall, although only -g is necessary as that leaves debugging information in the binaries. Sometimes optimizations (-O2) might cause trouble for gdb, leaving it out can help in that case. Without optimizations the size and execution time of the binaries might increase a lot. Generally, production binaries should be compiled with -O2 -Wall. However, production binaries are typically Debian-packaged and should be compiled with -g -O2 -Wall, stripping the debug symbols into a separate package to facilitate debugging. See section [[#Making a Debian Debug Package]].
&lt;/li&gt;


&lt;li&gt;Next, start gdb with the &lt;code&gt;gdb_example&lt;/code&gt; application as a parameter.

&lt;pre&gt;
[sbox-FREMANTLE_x86: ~/src/gdb_example] &amp;gt; native-gdb gdb_example
GNU gdb (GDB) 6.8.50.20090417-debian
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later &amp;lt;http://gnu.org/licenses/gpl.html&amp;gt;
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type &quot;show copying&quot;
and &quot;show warranty&quot; for details.
This GDB was configured as &quot;i486-linux-gnu&quot;.
For bug reporting instructions, please see:
&amp;lt;http://www.gnu.org/software/gdb/bugs/&amp;gt;...
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt;Set the breakpoint (br) to function &lt;code&gt;example_3&lt;/code&gt;

&lt;pre&gt; 
(gdb) br example_3
Breakpoint 1 at 0x8048424: file gdb_example.c, line 50.
&lt;/pre&gt;
&lt;/li&gt;


&lt;li&gt;
Run the application under gdb giving a command line parameter foobar to the application.

&lt;pre&gt;
(gdb) run foobar
Starting program: /home/user/src/gdb_example/gdb_example foobar
Now in main().
Now in example_1(2) function.
Now in example_2(parameter here) function.

Breakpoint 1, example_3 () at gdb_example.c:50
50        printf(&quot;Now in example_3()\n&quot;);
&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

The above shows that the running of the application stopped in function &lt;code&gt;example_3&lt;/code&gt;. This happened because the breakpoint (&lt;code&gt;br example_3&lt;/code&gt;) was set. Note that the line numbers in the examples may vary if there have been changes to the example sources.

Now the backtrace (bt) can be listed from application to see what functions have been called. The list goes from recent to older. The oldest function was naturally the &lt;code&gt;main()&lt;/code&gt; function at the end of the list. It shows also the parameters to the called functions.

 (gdb) bt
 #0 example_3 () at gdb_example.c:50
 #1 0x08048417 in example_2 (a=0x8048548 &quot;parameter here&quot;) at gdb_example.c:41
 #2 0x080483f1 in example_1 (x=2) at gdb_example.c:32
 #3 0x080483b3 in main (argc=2, argv=0xbffff5d4) at gdb_example.c:20
 (gdb)


It can be convenient to see what the source code is for a line mentioned in the output:
 
 (gdb) list 41
 36	 *
 37	 */
 38	int example_2(char* a)
 39	{
 40	  printf(&quot;Now in example_2(%s) function.\n&quot;,a);
 41	  example_3();
 42	  return 0;
 43	}
 44	/*
 45	 *
 (gdb)


Also the values of the variables can be inspected:
 
 (gdb) br example_2
 Breakpoint 2 at 0x80483ff: file gdb_example.c, line 40.
 (gdb) run
 The program being debugged has been started already.
 Start it from the beginning? (y or n) y
 Starting program: /home/user/src/gdb_example
 Now in main().
 Now in example_1(2) function.
 
 Breakpoint 2, example_2 (a=0x8048548 &quot;parameter here&quot;) at gdb_example.c:40
 40	  printf(&quot;Now in example_2(%s) function.\n&quot;,a);


To see the value of variable 'a', just type:
 
 (gdb) print a
 $1 = 0x8048548 &quot;parameter here&quot;
 (gdb)


Essentially, debugging with gdb in the Scratchbox X86 target is similar to debugging with gdb in any Linux host. In this example, only a small subset of gdb's functionality has been used.

==== Debugging Command Line Application in Internet Tablet Device ====

It is possible to debug an application in the Internet tablet device itself using gdb. Before starting, log in to the device and install (if you have not done so yet) the gdb debugger to the device:
 
 /home/user # apt-get install gdb
 ... etc ...
 /home/user #


Here it is assumed that &lt;code&gt;ssh&lt;/code&gt; and &lt;code&gt;xterm&lt;/code&gt; are already installed in the tablet and that it is possible to log in on the device using ssh from a Linux PC. In addition, the maemo repository entries should be set in the &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; file as explained previously.

Debugging with the gdb debugger in the device is similar to using gdb in a normal Linux PC environment. The limitations are mostly related to the available free RAM, meaning that in the worst case, memory might run out while trying to debug an application in the device.

This example follows the basic logic of the first example, but this time is performed in the device.

&lt;ol&gt;
&lt;li&gt; Compile the &lt;code&gt;gdb_example.c&lt;/code&gt; application in the Scratchbox for armel architecture. 
&lt;pre&gt; 
[sbox-FREMANTLE_X86: ~] &gt; sb-conf select FREMANTLE_ARMEL
Hangup
Shell restarting...
[sbox-FREMANTLE_ARMEL: ~] &gt; pwd
/home/user
[sbox-FREMANTLE_ARMEL: ~] &gt; cd src/gdb_example
[sbox-FREMANTLE_ARMEL: ~/src/gdb_example] &gt; gcc gdb_example.c -o gdb_example -g -O2 -Wall
[sbox-FREMANTLE_ARMEL: ~/src/gdb_example] &gt; file gdb_example
gdb_example: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.14,
dynamically linked (uses shared libs), not stripped
[sbox-FREMANTLE_ARMEL: ~/src/gdb_example] &gt;
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; Copy the armel version of the &lt;code&gt;gdb_example&lt;/code&gt; to the tablet. You need to have the &lt;code&gt;sshd&lt;/code&gt; daemon up and running in the device before you can copy files with &lt;code&gt;scp&lt;/code&gt;. The IP address is an example, and your device IP address can be different.

&lt;pre&gt; 
[sbox-FREMANTLE_ARMEL: ~/src/gdb_example] &gt; scp gdb_example.c \
gdb_example user@192.168.2.15:
user@192.168.2.15's password:  ...........
gdb_example.c                             100%  828     0.8KB/s   00:00
gdb_example                               100% 7118     7.0KB/s   00:00
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; Log in on the device with ssh with username user.

&lt;pre&gt; 
[sbox-FREMANTLE_ARMEL: ~/src/gdb_example] &gt; ssh root@192.168.2.15
root@192.168.2.15's password: ..........
 
BusyBox v1.10.2 (Debian 3:1.10.2.legal-1osso26+0m5) built-in shell (ash)
Enter 'help' for a list of built-in commands.
 
~# cd ~user
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; Start the gdb debugger with the &lt;code&gt;gdb_example&lt;/code&gt; application.

&lt;pre&gt; 
/home/user# gdb ./gdb_example
... snip ...
(gdb)

&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;


You should now be able to debug this small example application in a similar way as in the previous example.

==== Debugging Core Files in Device ==== 

This section explains how to debug core files in the Internet Tablet. The default location for core dumps is &lt;code&gt;/home/user/MyDocs/core-dumps&lt;/code&gt;. There can be a limit for core dump size. You can check this by executing 
 
 Nokia-NXX-31-10:/home/user# ulimit -c
 unlimited


If the limit is too low, set it bigger, for example:

 Nokia-NXX-31-10:/home/user# ulimit -c unlimited
 unlimited


Also, if you don't have the aforementioned &lt;code&gt;core-dumps&lt;/code&gt; directory created and &lt;code&gt;sp-rich-core&lt;/code&gt; installed, cores may not be created. The package can be installed by

 Nokia-NXX-31-10:/home/user# apt-get install sp-rich-core

If needed, create the folder

 ~ $ mkdir MyDocs/core-dumps/


Next, the small example application &lt;code&gt;gdb_example2&lt;/code&gt; will be used to demonstrate how to debug the core file.
&lt;ol&gt;
&lt;li&gt; Compile the &lt;code&gt;gdb_example2&lt;/code&gt; in the Scratchbox armel target, and just copy the file to the device using &lt;code&gt;scp&lt;/code&gt;. Then start the &lt;code&gt;gdb_example2&lt;/code&gt; in the device like this:

&lt;pre&gt; 
Nokia-NXX-31-10:/home/user # ./gdb_example2 &amp;amp;
Now in main().
Now in example_1(1) function.
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; The &lt;code&gt;gdb_example2&lt;/code&gt; is now running in the background, and it starts to dump its output to the screen. There are some &lt;code&gt;sleep()&lt;/code&gt; calls in &lt;code&gt;gdb_example2&lt;/code&gt;, so that you have time to kill it with the SIGSEGV signal. Now just make it to generate a core dump. Assuming that the process is referred to as %1, use the kill command as below and press the ENTER key a couple of times:

&lt;pre&gt; 
Nokia-NXX-31-10:/home/user # kill -SIGSEGV %1
Nokia-NXX-31-10:/home/user #
[1] + Segmentation fault (core dumped) ./gdb_example2
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; You now have a compressed core dump data file under the &lt;code&gt;/home/user/MyDocs/core-dumps/&lt;/code&gt; directory. Its name includes the name of the file and end with the PID number of the &lt;code&gt;gdb_example2&lt;/code&gt; program. Check that you got it (the number shown below, 1581, is naturally different in your environment):

&lt;pre&gt; 
/home/user # ls -l MyDocs/core-dumps/
-rw-r--r--    1 user     root        52048 Aug  7 12:08 gdb_example2-782
9-11-1581.rcore.lzo
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; Extract the compressed data before you can use it with gdb. Install the sp-rich-core-postproc package and run the extract command which creates a new directory (given as a second parameter) where to extract data:

&lt;pre&gt; 
Nokia-NXX-31-10:/home/user # apt-get install sp-rich-core-postproc
... snip ...
Nokia-NXX-31-10:/home/user # rich-core-extract \
/media/mmc1/core-dumps/gdb_example2-7829-11-1581.rcore.lzo coredir
&lt;/pre&gt;

The newly-created coredir includes a lot of information in different files about the system. The file to pass for the gdb is named &lt;code&gt;coredump&lt;/code&gt;.&lt;/li&gt;


&lt;li&gt; The &lt;code&gt;gdb_example2&lt;/code&gt; is linked against the &lt;code&gt;libc&lt;/code&gt; library. If you want to be able to resolve symbols also for the library during debugging, install &lt;code&gt;libc6-dbg&lt;/code&gt; package in the device. ''The same rule applies to other libraries that your application might be linked against.''  See the further notes about the DBG packages in this material. Now install the &lt;code&gt;libc6-dbg&lt;/code&gt; package to get symbols for the library.


&lt;pre&gt; 
Nokia-NXX-31-10:/home/user #  apt-get install libc6-dbg
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
  libc6-dbg

.... snip ...

/home/user #
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; Now you can debug the core file together with the &lt;code&gt;gdb_example2&lt;/code&gt; binary that you compiled with the -g flag. Try and see where the execution of the &lt;code&gt;gdb_example2&lt;/code&gt; was when you used the &lt;code&gt;-SIGSEGV&lt;/code&gt; signal. Start gdb and give &lt;code&gt;gdb_example2&lt;/code&gt; as the first parameter, and the core file as the second parameter:

&lt;pre&gt;
Nokia-NXX-31-10:/home/user # gdb ./gdb_example2 MyDocs/core-dumps/coredir/coredump
GNU gdb (GDB) 6.8.50.20090417-debian
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later &amp;lt;http://gnu.org/licenses/gpl.html&amp;gt;
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type &quot;show copying&quot; and &quot;show warranty&quot; for details.
This GDB was configured as &quot;arm-linux-gnueabi&quot;.
For bug reporting instructions, please see:
&amp;lt;http://www.gnu.org/software/gdb/bugs/&amp;gt;...
Reading symbols from /lib/libc.so.6...Reading symbols from /usr/lib/debu
g/lib/libc-2.5.so...done.
done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.3...Reading symbols from /usr/lib/
debug/lib/ld-2.5.so...done.
done.
Loaded symbols for /lib/ld-linux.so.3
Core was generated by `./gdb_example2'.
Program terminated with signal 11, Segmentation fault.
#0  0x400be97c in nanosleep () from /lib/libc.so.6
0x400be97c &amp;lt;nanosleep+28&amp;gt;:	mov	r7, r12
(gdb)
&lt;/pre&gt;


The example above shows that now gdb is using debug symbols from &lt;code&gt;/usr/lib/debug/lib/libc-2.5.so&lt;/code&gt;. Had the libc6-dbg package not been installed, gdb would not have information available about the libraries' debug symbols. Now, gdb is waiting for a command, so just give the bt (backtrace) command. You should see something similar to this:


&lt;pre&gt;
(gdb) bt
#0  0x400be97c in nanosleep () from /lib/libc.so.6
#1  0x400be73c in sleep () from /lib/libc.so.6
#2  0x0000844c in example_1 (x=1) at gdb_example2.c:33
#3  0x00008408 in main (argc=1, argv=0xbe8b2674) at gdb_example2.c:21
&lt;/pre&gt;


Note that for this simple example, the available &lt;code&gt;libc6-dbg&lt;/code&gt; package was installed before starting to debug the &lt;code&gt;gdb_example2&lt;/code&gt; application. Backtraces work only if debug packages are installed also for the libraries through which the backtrace goes.


Depending on at what point the &lt;code&gt;kill -SIGSEGV&lt;/code&gt; command was given, the output may be different. In this example, the process was hit when it was calling the sleep function inside the &lt;code&gt;example_1&lt;/code&gt; function in file &lt;code&gt;gdb_example2.c&lt;/code&gt;. It can also be seen that the &lt;code&gt;sleep()&lt;/code&gt; function has further called the &lt;code&gt;nanosleep()&lt;/code&gt; function, and that is when it got the &lt;code&gt;-SIGSEGV&lt;/code&gt; signal (see the note above).
&lt;/li&gt;
&lt;/ol&gt;

==== Debugging Core File from Device Inside Scratchbox ====

Because the binaries and libraries in the device are prelinked, successful debugging inside the Scratchbox environment using the programs core file (from the device) would require that:

* you copy the relevant libraries (the ones that the application is using) from the device to Scratchbox. Otherwise, addresses in the prelinked and unprelinked libraries would not match, and gdb backtraces would not load the library.

* If the core file debugging is performed in the Scratchbox ARMEL environment, the native gdb program needs to be used instead of the one provided by Scratchbox. See the previous section on how to set the native gdb as the default one.

After copying the &lt;code&gt;/lib/libc6&lt;/code&gt; library from the device and setting the native gdb to be used, the application can be debugged normally. Keep in mind that generally the Scratchbox tools override the target tools.


==== Debugging UI Applications in Scratchbox X86 ====

Many maemo applications use the graphical UI, and debugging these applications differs slightly from debugging simple command line applications.

Here maemopad will be used as an example application to debug in the X86 target with gdb.

If the Scratchbox environment is set up correctly as explained above, these steps should be easy to follow to perform UI debugging with the maemopad application.
&lt;ol&gt;
&lt;li&gt; Activate the X86 target, go to the testing directory and download the source package of maemopad.


&lt;pre&gt; 
[sbox-FREMANTLE_ARMEL] &gt; sb-conf select FREMANTLE_X86
[sbox-FREMANTLE_X86] &gt; cd ~/src/
[sbox-FREMANTLE_X86 ~/src] &gt; mkdir maemopad
[sbox-FREMANTLE_X86 ~/src/maemopad] &gt; cd maemopad
[sbox-FREMANTLE_X86 ~/src/maemopad] &gt; apt-get source maemopad
Reading package lists... Done
Building dependency tree... Done
Need to get 347kB of source archives.
Get:1 http://repository.maemo.org fremantle/sdk/free maemopad 2.5 (dsc) [465B]
Get:2 http://repository.maemo.org fremantle/sdk/free maemopad 2.5 (tar) [346kB]
Fetched 347kB in 1s (231kB/s)
dpkg-source: warning: extracting unsigned source package (./maemopad_2.5.dsc)
dpkg-source: extracting maemopad in maemopad-2.5
dpkg-source: unpacking maemopad_2.5.tar.gz
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; Check that you have the correct files.

&lt;pre&gt; 
[sbox-FREMANTLE_X86: ~/src/maemopad] &gt; ls -l
total 352
drwxrwxr-x  6 maemo maemo   4096 Jul 28 14:09 maemopad-2.5
-rw-rw-r--  1 maemo maemo    465 Jul  6 16:02 maemopad_2.5.dsc
-rw-rw-r--  1 maemo maemo 346129 Jul  6 16:02 maemopad_2.5.tar.gz
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; Go to the &lt;code&gt;maemopad-2.5&lt;/code&gt; source directory, and set the &lt;code&gt;DEB_BUILD_OPTIONS&lt;/code&gt; environment variable, so that the generated binaries are not stripped. Then build the maemopad package with &lt;code&gt;dpkg-buildpackage&lt;/code&gt; command as shown here:

&lt;pre&gt; 
[sbox-FREMANTLE_X86: ~/src/maemopad] &gt; cd maemopad-2.5
[sbox-FREMANTLE_X86: ~/src/maemopad/maemopad-2.5] &gt; export DEB_BUILD_OPTIONS=debug,\
nostrip
[sbox-FREMANTLE_X86: ~/src/maemopad/maemopad-2.5] &gt; dpkg-buildpackage -rfakeroot -d
dpkg-buildpackage: source package is maemopad
dpkg-buildpackage: source version is 2.5
dpkg-buildpackage: source changed by Soumya Bijjal &amp;lt;soumya.3.bijjal@nokia.com&amp;gt;
dpkg-buildpackage: host architecture i386
dpkg-buildpackage: source version without epoch 2.3
.... etc ....
&lt;/pre&gt;

In this example, the standard &lt;code&gt;export DEB_BUILD_OPTIONS=debug,nostrip&lt;/code&gt; environment variable is used, but there might be source packages that do not support these debug,nostrip options. In that case, one must make sure that the source is compiled with &lt;code&gt;-g&lt;/code&gt; flag (usually this option can be added to the &lt;code&gt;CFLAGS&lt;/code&gt; variable in the &lt;code&gt;debian/rules&lt;/code&gt; file), and that the produced binaries will not be stripped. In the long run, it is better to modify the source package to generate a separate debug symbol (&lt;code&gt;-dbg&lt;/code&gt;) package. This requires modifying both the &lt;code&gt;debian/rules&lt;/code&gt; and &lt;code&gt;debian/control&lt;/code&gt; files. In fact, maemopad already builds a separate debug package, but this example makes no use of it to demonstrate the simpler case.


&lt;li&gt; You should now have maemopad binaries generated so that they have the debug symbols in them. Check that you get a &lt;code&gt;not stripped&lt;/code&gt; flag from the maemopad binary:


&lt;pre&gt; 
[sbox-FREMANTLE_X86: ~/src/maemopad/maemopad-2.5] &gt; file debian/maemopad/usr/bin/\
maemopad
debian/tmp/usr/bin/maemopad: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; You should now have a &lt;code&gt;maemopad_2.5_i386.deb&lt;/code&gt; file in the &lt;code&gt;~/src/maemopad&lt;/code&gt; directory. Check that you have it:

&lt;pre&gt; 
[sbox-FREMANTLE_X86: ~/src/maemopad] &gt; ls -l
total 420
drwxrwxr-x  6 maemo maemo   4096 Jul 28 14:18 maemopad-2.5
-rw-r--r--  1 maemo maemo   3022 Jul 28 14:18 maemopad-dbg_2.5_i386.deb
-rw-rw-r--  1 maemo maemo    465 Jul 28 14:17 maemopad_2.5.dsc
-rw-rw-r--  1 maemo maemo 348814 Jul 28 14:17 maemopad_2.5.tar.gz
-rw-rw-r--  1 maemo maemo    807 Jul 28 14:18 maemopad_2.5_i386.changes
-rw-r--r--  1 maemo maemo  50242 Jul 28 14:18 maemopad_2.5_i386.deb
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; Install the newly compiled &lt;code&gt;maemopad_2.5_i386.deb&lt;/code&gt; file inside the Scratchbox environment:

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/src/maemopad] &gt; dpkg -i maemopad_2.5_i386.deb
... output from dpkg ...
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; Start the &lt;code&gt;Xephyr&lt;/code&gt; server outside the Scratchbox:

&lt;pre&gt; 
Linux-PC$ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb &amp;amp;
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; Start the Application Framework from inside the Scratchbox X86 target: 

&lt;pre&gt; 
[sbox-FREMANTLE_X86: ~/src/maemopad/maemopad-2.1] &gt; export DISPLAY=:2
[sbox-FREMANTLE_X86: ~/src/maemopad/maemopad-2.1] &gt; af-sb-init.sh start
... lots of output from various programs ...
&lt;/pre&gt;

You should now have the application framework up and running and the &lt;code&gt;Xephyr&lt;/code&gt; window should contain the SDK UI.&lt;/li&gt;


&lt;li&gt; Move to the source directory:

&lt;pre&gt; 
[sbox-FREMANTLE_X86: ~/src/maemopad/maemopad-2.5] &gt; cd src
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; In the src directory, you should have the files:

&lt;pre&gt; 
[sbox-FREMANTLE_X86: ~/src/maemopad/maemopad-2.5/src] &gt; ls -l
total 280
-rw-rw-r--  1 maemo maemo 25491 Jul 28 14:18 Makefile 
-rw-rw-r--  1 maemo maemo   491 Jul 28 14:09 Makefile.am
-rw-rw-r--  1 maemo maemo 23238 Jul 28 14:09 Makefile.in
-rwxrwxr-x  1 maemo maemo 83433 Jul 28 14:18 maemopad
-rw-rw-r--  1 maemo maemo 82928 Jul 28 14:18 maemopad-maemopad-window.o
-rw-rw-r--  1 maemo maemo 18564 Jul 28 14:18 maemopad-main.o
-rw-rw-r--  1 maemo maemo 20400 Jul 28 14:09 maemopad-window.c
-rw-rw-r--  1 maemo maemo  2391 Jul 28 14:09 maemopad-window.h
-rw-rw-r--  1 maemo maemo  2193 Jul 28 14:09 main.c
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; In this example, a debugging breakpoint will be set at the callback function &lt;code&gt;maemopad_window_on_menu_file_new()&lt;/code&gt; located in the &lt;code&gt;maemopad-window.c&lt;/code&gt; file. This function is called when the user clicks the New button from the maemopad menu. Set the debugging breakpoint like this:

&lt;pre&gt; 
[sbox-FREMANTLE_X86: ~/src/maemopad/maemopad-2.5/src] &gt; run-standalone.sh \
gdb maemopad
(gdb) br maemopad_window_on_menu_file_new
Breakpoint 1 at 0x804b457: file maemopad-window.c, line 283.
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; Start the maemopad application from &lt;code&gt;gdb&lt;/code&gt;.

&lt;pre&gt; 
(gdb) run
Starting program: /targets/FREMANTLE_X86/usr/bin/maemopad
[Thread debugging using libthread_db enabled]
&lt;/pre&gt;


Note that for thread-debugging the native gdb program is used. If you need to debug threads in the application, you need to use the native gdb linked against the same thread library that your application is using. Remember that the Scratchbox &lt;code&gt;gdb&lt;/code&gt; is not suitable for this purpose. To use the native &lt;code&gt;gdb&lt;/code&gt;, &lt;code&gt;native-gdb&lt;/code&gt; needs to be used, as mentioned earlier in this material.
&lt;/li&gt;


&lt;li&gt; Now you should be able to see the maemopad application inside the Xephyr window, and you should be able to use it normally. Next, click the upper menu and select the item HELP. In your gdb terminal window you should now see :

&lt;pre&gt; 
Breakpoint 1, maemopad_window_on_menu_file_new (button=0x80cf0a8,
    data=0x8077018) at maemopad-window.c:283
283	  MaemopadWindow *self = MAEMOPAD_WINDOW (data);
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; The breakpoint that you set above is now reached, and execution of maemopad is stopped. The debugger waits for your command now. Try something simple, like using the list command to see where the execution of the application is going. You should get:

&lt;pre&gt;
(gdb) list
278	}
279
280	/* new */
281	static void maemopad_window_on_menu_file_new (GtkButton *button, gpointer data)
282	{
283	  MaemopadWindow *self = MAEMOPAD_WINDOW (data);
284	  g_assert (self);
285
286	  /* save changes note if file is edited */
287	  if (self-&gt;file_edited) {
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; You can now debug maemopad normally. Try and see, if you can execute the maemopad step by step so that you can get the new writing area on screen. Enter the s command like this:

&lt;pre&gt;
(gdb) s
maemopad_window_get_type () at /usr/include/glib-2.0/glib/gthread.h:344
344	  if G_LIKELY ((gpointer) g_atomic_pointer_get (value_location) != NULL)
(gdb) s
55	G_DEFINE_TYPE (MaemopadWindow, maemopad_window, HILDON_TYPE_WINDOW)
(gdb)
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; You can also try the bt (backtrace) command to see what functions were called. You should see a list of functions that have been called, similar to the following:

&lt;pre&gt;
(gdb) bt
#0  maemopad_window_get_type () at maemopad-window.c:55
#1  0x0804b45c in maemopad_window_on_menu_file_new (button=0x80cf0a8,
    data=0x8077018) at maemopad-window.c:283
#2  0xb76c441d in IA__g_cclosure_marshal_VOID__VOID (closure=0x80c7db0,
    return_value=0x0, n_param_values=1, param_values=0x8162390,
    invocation_hint=0xbfffe35c, marshal_data=0x804b450)
    at /home/bifh5/fremantle-i386-prereleased.cs2007q3/work/glib2.0-2.20
.1/gobject/gmarshal.c:77
....
&lt;snip&gt;
....
#30 0xb76136f8 in IA__g_main_loop_run (loop=0x80be058)
    at /home/bifh5/fremantle-i386-prereleased.cs2007q3/work/glib2.0-2.20
.1/glib/gmain.c:2678
#31 0xb7cd43e9 in IA__gtk_main () at gtkmain.c:1200
#32 0x0804a0f7 in main (argc=0, argv=0x60203006) at main.c:78
&lt;/pre&gt;

At the top of the backtrace list are functions that were called last, and at the bottom of the list are the applications &lt;code&gt;main()&lt;/code&gt; function and then the &lt;code&gt;gtk_main()&lt;/code&gt;, etc.&lt;/li&gt;


&lt;li&gt; If you now continued debugging with the &lt;code&gt;s&lt;/code&gt; (step) command, you would end up looping the gtk main event loop. However, it is better to just give the &lt;code&gt;c&lt;/code&gt; (continue) command:

&lt;pre&gt; 
(gdb) c
Continuing.
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; Now the maemopad application is running. If you select the New menu item again, the breakpoint is still set. So if you click New you would get again: 

&lt;pre&gt; 
Breakpoint 1, maemopad_window_on_menu_file_new (button=0x80cf0a8,
    data=0x8077018) at maemopad-window.c:283
283	  MaemopadWindow *self = MAEMOPAD_WINDOW (data);
(gdb)
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; You can clear a specific breakpoint using the clear command. Remove the breakpoint in &lt;code&gt;maemopad_window_on_menu_file_new&lt;/code&gt; function:

&lt;pre&gt; 
(gdb) clear maemopad_window_on_menu_file_new
Deleted breakpoint 1
(gdb) c
Continuing.
&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

Because the breakpoint is now cleared, you can use the application normally under &lt;code&gt;Xephyr&lt;/code&gt;.

===== Alternative method for starting gdb =====

Rather than starting the application framework, followed by gdb, it is possible to do both at the same time by passing an extra argument to the &lt;code&gt;af-sb-init.sh&lt;/code&gt; script. For example:
 af-sb-init.sh start --gdb=my_app
where &lt;code&gt;my_app&lt;/code&gt; is the application to debug.

== Debugging Hildon Desktop Plug-ins ==

This section explains how to debug Hildon Desktop plug-ins in maemo environment.

Desktop and Control Panel applications are both launched by the maemo-launcher daemon. Their plug-ins are all shared libraries (i.e. .so files). Writing these plug-ins is explained in maemo.org documentation.

=== Downloading and Compiling the Example Apps ===

For this example, you need to first download, compile, and install the hello-world-app package.
&lt;ol&gt;
&lt;li&gt; Download the source code of hello-world-app:

&lt;pre&gt; 
[sbox-FREMANTLE_X86: ~/src] &gt; svn export https://vcs.maemo.org/svn/\
maemoexamples/tags/maemo_5.0/hello-world-app/
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; Build the package like this:

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/src] &gt; cd hello-world-app
[sbox-FREMANTLE_X86: ~/src/hello-world-app] &gt;
[sbox-FREMANTLE_X86: ~/src/hello-world-app] &gt; export DEB_BUILD_OPTIONS=debug,nostrip
[sbox-FREMANTLE_X86: ~/src/hello-world-app] &gt; ./autogen.sh
... etc ...
[sbox-FREMANTLE_X86: ~/src/hello-world-app] &gt; dpkg-buildpackage -rfakeroot
dpkg-buildpackage: source package is hello-world-app
dpkg-buildpackage: source version is 2.2
dpkg-buildpackage: source changed by Maemo Integration &amp;lt;integration@maemo.org&amp;gt;
dpkg-buildpackage: host architecture i386
dpkg-buildpackage: source version without epoch 2.2
dpkg-checkbuilddeps: Using Scratchbox tools to satisfy builddeps
 fakeroot debian/rules clean
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
# Add here commands to clean up after the build process.
/scratchbox/tools/bin/make clean

... snip, output from compilation ...

dpkg-genchanges: including full source code in upload
dpkg-buildpackage: full upload; Debian-native package (full source is in
cluded)

[sbox-FREMANTLE_X86: ~/src/hello-world-app] &gt;
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; You should now have:

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/src/hello-world-app] &gt; cd ..
[sbox-FREMANTLE_X86: ~/src] &gt; ls -lt
total 348
-rw-rw-r--  1 maemo maemo   1001 Aug 17 14:30 hello-world-app_2.2_i386.changes
-rw-r--r--  1 maemo maemo  76188 Aug 17 14:30 hello-world-app_2.2_i386.deb
drwxr-xr-x  6 maemo maemo   4096 Aug 17 14:30 hello-world-app
-rw-rw-r--  1 maemo maemo    384 Aug 17 14:30 hello-world-app_2.2.dsc
-rw-rw-r--  1 maemo maemo 240773 Aug 17 14:29 hello-world-app_2.2.tar.gz
&lt;/pre&gt;&lt;/li&gt;


&lt;li&gt; Install the newly-compiled debug version of the package hello-world-app_2.2_i386.deb:

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/src] &gt; fakeroot dpkg -i hello-world-app_2.2_i386.deb
(Reading database ... 24822 files and directories currently installed.)
Unpacking hello-world-app (from hello-world-app_2.2_i386.deb) ...
... snip ...
&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;


Now the Hildon desktop plug-ins example applications should be installed in the Scratchbox X86 target.

=== How to Debug Applications Started by Maemo-Launcher ===

Basically, these applications can be debugged by:

* attaching to an already running process
* starting the application using maemo-summoner

==== Attaching to Maemo-Launched Application with Gdb ====

With maemo-launched applications, it is necessary to give the maemo-launcher binary to &lt;code&gt;gdb&lt;/code&gt; and attach to the already running process.

 [sbox-FREMANTLE_X86: ~/ ] &gt; export DISPLAY=:2
 [sbox-FREMANTLE_X86: ~/ ] &gt; af-sb-init.sh start
 ... snip ...
 [sbox-FREMANTLE_X86: ~/ ] &gt; pidof hildon-desktop | cut -d' ' -f1
 22961
 #
 # this would take the first (largest) PID value from the returned list.
 # The number 22961 is just an example.
 # smallest PID value is maemo-invoker which had requested maemo-launcher to
 # start hildon-desktop.
 #
 [sbox-FREMANTLE_X86: ~/ ] &gt; native-gdb maemo-launcher
 ... snip ...
 (gdb) attach 22961
 Attaching to program: /targets/FREMANTLE_X86/usr/bin/maemo-launcher, process
  22961
 ... snip...
 (gdb)

Now it should be possible to debug the application normally with gdb.


==== Starting Maemo-Launched Application with Maemo-Summoner ====

The following will start the Control Panel under (native) gdb, and the newly installed Control Panel applet called &lt;code&gt;hello-world-app&lt;/code&gt; will be debugged. The breakpoint will be set to function &lt;code&gt;hello_world_dialog_show()&lt;/code&gt;. Pay attention to the question about the &quot;pending shared library load&quot;.
 
 [sbox-FREMANTLE_X86: ~/ ] &gt; export DISPLAY=:2
 [sbox-FREMANTLE_X86: ~/ ] &gt; af-sb-init.sh start
 ... snip ...
 [sbox-FREMANTLE_X86: ~/ ] &gt; run-standalone.sh native-gdb maemo-summoner
 ... snip ...
 (gdb) br hello_world_dialog_show
 Make breakpoint pending on future shared library load? (y or [n]) y
 Breakpoint 1 (hello_world_dialog_show) pending.
 (gdb) run /usr/bin/controlpanel.launch
 Starting program: /targets/FREMANTLE_X86/usr/bin/maemo-summoner /usr/bin/cont
 rolpanel.launch
 ... snip ...


This should start the Control Panel in the Xephyr screen. When clicking the hello world plug-in in the Control Panel, the execution should stop at the given breakpoint. Try, for example, to get a backtrace:

 Breakpoint 2, hello_world_dialog_show () at libhelloworld.c:68
 68        GtkWidget *dialog = hello_world_dialog_new ();
 (gdb) bt
 #0  hello_world_dialog_show () at libhelloworld.c:80
 #1  0xb6b73528 in execute (osso=0x8604000, data=0x8613048, user_activated=1)
     at hello-world-applet.c:22
 ...
 (gdb) list
 75	}
 76
 77	void
 78	hello_world_dialog_show ()
 79	{
 80	  GtkWidget *dialog = GTK_WIDGET(hello_world_dialog_new ());
 81	  gtk_dialog_run (GTK_DIALOG(dialog));
 82	  gtk_widget_destroy (dialog);
 83	}
 84
 (gdb) c
 Continuing.


The backtrace shows which functions were called before the breakpoint was reached at &lt;code&gt;hello_world_dialog_show()&lt;/code&gt;. Now the plug-in can be debugged normally with gdb.

Because the hello world plug-in was compiled with the &lt;code&gt;-g&lt;/code&gt; option, the source code listing can be viewed with the &lt;code&gt;list&lt;/code&gt; command.

To do this same for desktop, the &lt;code&gt;hildon-desktop&lt;/code&gt; process needs to be killed first. The desktop can be killed with the command:

 [sbox-FREMANTLE_X86: ~] &gt; kill $(pidof hildon-desktop)
 #
 # after this you could start the hildon-desktop under gdb like this:
 #
 [sbox-FREMANTLE_X86: ~] &gt; run-standalone.sh native-gdb maemo-summoner
 ... snip ...
 (gdb) run /usr/bin/hildon-desktop.launch
 ... snip ...


Doing this on the device would require first disabling the software lifeguard with the flasher tool. If this is not done, the device will reboot. The flag is:

 --set-rd-flags=no-lifeguard-reset

== Running Out of Memory During Debugging on the Device ==

If running out of RAM during debugging on the device, there are a couple of options:

&lt;ul&gt;
&lt;li&gt; Add (more) swap to the device by increasing the size of the swap partition.
If there is enough memory, but gdb is still abruptly terminated, you can try setting it OOM-protected as [[root access|root]]:
&lt;pre&gt; 
/home/user # echo -17 &gt; /proc/[PID of your gdb]/oom_adj
&lt;/pre&gt;

By default, processes have an OOM (out-of-memory) adjustment value of zero. The value &lt;code&gt;-17&lt;/code&gt; disables the kernel OOM killing for the given process. '''N.B.'''  As a result of this, some other processes might be killed by the kernel.&lt;/li&gt;


&lt;li&gt; Use &lt;code&gt;gdbserver&lt;/code&gt; to debug.&lt;/li&gt;
&lt;/ul&gt;

=== Notes on Using Gdbserver ===

&lt;code&gt;gdbserver&lt;/code&gt; is a debugging tool that can be started and run in the Internet Tablet device. Then a connection can be made to this running instance of gdbserver program from a Linux PC with a gdb program. Gdbserver uses a lot less memory than a full scale gdb program, thus making it possible to perform debugging in devices that have limited RAM, such as PDAs.

The gdbserver does not care about symbols in the binary, but instead the Linux PC side gdb expects to have a local copy of the binary being debugged so that the binaries in the device can be stripped. Debugging core files from the device in Scratchbox with &lt;code&gt;gdbserver&lt;/code&gt; has the same issues. In practice, it is easier to perform the debugging in the device itself. See the section above about prelinked binaries and libraries.


For further information about using &lt;code&gt;gdbserver&lt;/code&gt;, &lt;code&gt;gdb&lt;/code&gt; and &lt;code&gt;DDD&lt;/code&gt;, see:

* [http://www.scratchbox.org/documentation/user/scratchbox-1.0/html/ideintegration.html#AEN76 scratchbox.org: Running the cross-compiled programs in a debugger]
* [http://www.scratchbox.org/documentation/user/scratchbox-1.0/html/debugging.html scratchbox.org: Debugging in Scratchbox]

== Valgrind Debugger ==

[[Documentation/devtools/maemo5/valgrind|Valgrind]] is a CPU simulator with different debugging and analyzing plug-ins. The Valgrind plug-ins are:

* '''&lt;code&gt;memcheck&lt;/code&gt;:''' This plug-in tool is used to debug memory leaks and deallocation errors in applications. The following example will mainly focus on this.

* '''&lt;code&gt;massif&lt;/code&gt;:''' This plug-in produces PostScript graph of process memory usage as a function of time. This also produces an ASCII or HTML report of allocation backtraces.

* '''&lt;code&gt;callgrind&lt;/code&gt;:''' This can be used for profiling performance and getting call traces from programs. These can be further visualized with the &lt;code&gt;Kcachegrind&lt;/code&gt; tool.

* '''&lt;code&gt;helgrind drd&lt;/code&gt;:''' These help in finding race conditions in threaded programs.


{{ambox|text=In the maemo environment, you can use the Valgrind debugger only in the Scratchbox X86 target.}}


Valgrind has many options, but only the basic ones are covered here with examples. The link to the full Valgrind manual is given at the end of this section.

=== Installing Valgrind Tool ===

Installing Valgrind is simple. Log in to Scratchbox and run the following commands:
&lt;ol&gt;
&lt;li&gt; Get Valgrind from the repository: 
&lt;pre&gt; 
[sbox-FREMANTLE_ARMEL: ~] &gt; sb-conf select FREMANTLE_X86
[sbox-FREMANTLE_X86: ~] &gt; fakeroot apt-get install valgrind

...

Setting up valgrind (3.4.1-0maemo1+0m5) ...

[sbox-FREMANTLE_X86: ~] &gt;
&lt;/pre&gt; 

The Maemo version of valgrind depends on the &lt;code&gt;libc6-dbg&lt;/code&gt; package. On desktop Linux, some of the debug symbols are included in the libc6 library itself. If the debug symbols are missing from the libraries, Valgrind cannot match the error suppressions to the internal library functions. In the Maemo &lt;code&gt;libc6&lt;/code&gt; case, it would show lots of errors for the dynamic linker. 

If using a non-Maemo version of valgrind, the following environment variable needs to be set before valgrinding programs using Glib:

 [sbox-FREMANTLE_X86: ~] &gt; export G_SLICE=&quot;always-malloc&quot;

Without this, valgrind will report bogus leaks from Glib. The GNOME wiki has [http://live.gnome.org/Valgrind more information on the use of valgrind with Glib].
&lt;/li&gt;


&lt;li&gt; Get the two small example applications written in the C language to demonstrate the basic usage of valgrind tool. You can download these from maemo.org: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/valgrind_example/ valgrind_example].

&lt;pre&gt; 
[sbox-FREMANTLE_X86: ~/src] &gt; svn export https://vcs.maemo.org/svn/\
maemoexamples/tags/maemo_5.0/valgrind_example/
[sbox-FREMANTLE_X86: ~/src] &gt; cd valgrind_example
[sbox-FREMANTLE_X86: ~/src/valgrind_example] &gt;
&lt;/pre&gt;

&lt;/li&gt;


&lt;li&gt; Compile the two small example applications in the following way: 
&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/src/valgrind_example] &gt; gcc valgrind_example.c \
-o valgrind_example -g -O2 -Wall
[sbox-FREMANTLE_X86: ~/src/valgrind_example] &gt; gcc valgrind_example2.c \
-o valgrind_example2 -g -O2 -Wall
&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

=== Using Valgrind Memory Debugger Tool ===

After compiling the small example application, it can be run under valgrind with the command:
 
 [sbox-FREMANTLE_X86: ~/src/valgrind_example] &amp;gt; valgrind --tool=memcheck \
 --leak-check=yes --show-reachable=yes --num-callers=20 --track-fds=yes \
 ./valgrind_example


Explanation of the parameters and their meanings:

* '''&lt;code&gt;--tool=memcheck&lt;/code&gt;:''' Defines which tool Valgrind should use. In this example, the memory checker tool is used.

* '''&lt;code&gt;--leak-check=yes&lt;/code&gt;:''' With this option, Valgrind checks the code for potential memory leaks.

* '''&lt;code&gt;--show-reachable=yes&lt;/code&gt;:''' This option creates a stack trace of the creation of the reachable but unfreed memory when the program exits.

* '''&lt;code&gt;--num-callers=20&lt;/code&gt;:''' With this option, the number of function call levels that Valgrind displays can be changed. The default value is 12. Giving higher number takes a bit more memory. It is advisable to tune this option, because for example the gtk callstack can consist of more than 100 items.

* '''&lt;code&gt;--track-fds=yes&lt;/code&gt;:''' &lt;code&gt;Track-fds&lt;/code&gt; means &lt;code&gt;Track FileDescriptors&lt;/code&gt;. If the application is opening and closing files with &lt;code&gt;fopen()&lt;/code&gt; or &lt;code&gt;open()&lt;/code&gt;, this will report which files are not closed.

The output of the example application should look like:

 ==6526== Memcheck, a memory error detector.
 ==6526== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al.
 ==6526== Using LibVEX rev 1884, a library for dynamic binary translation.
 ==6526== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP.
 ==6526== Using valgrind-3.4.1-maemo, a dynamic binary instrumentation framework.
 ==6526== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al.
 ==6526== For more details, rerun with: -v
 ==6526==
 ==6526==
 ==6526== FILE DESCRIPTORS: 3 open at exit.
 ==6526== Open file descriptor 2: /dev/pts/3
 ==6526==    &amp;lt;inherited from parent&amp;gt;
 ==6526==
 ==6526== Open file descriptor 1: /dev/pts/3
 ==6526==    &amp;lt;inherited from parent&amp;gt;
 ==6526==
 ==6526== Open file descriptor 0: /dev/pts/3
 ==6526==    &amp;lt;inherited from parent&amp;gt;
 ==6526==
 ==6526==
 ==6526== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 13 from 1)
 ==6526== malloc/free: in use at exit: 40 bytes in 2 blocks.
 ==6526== malloc/free: 3 allocs, 1 frees, 60 bytes allocated.
 ==6526== For counts of detected errors, rerun with: -v
 ==6526== searching for pointers to 2 not-freed blocks.
 ==6526== checked 56,184 bytes.
 ==6526==
 ==6526== 10 bytes in 1 blocks are definitely lost in loss record 1 of 2
 ==6526==    at 0x4020C19: malloc (in /targets/FREMANTLE_X86/usr/lib/valgrind/
 x86-linux/vgpreload_memcheck.so)
 ==6526==    by 0x8048402: main (valgrind_example.c:26)
 ==6526==
 ==6526==
 ==6526== 30 bytes in 1 blocks are definitely lost in loss record 2 of 2
 ==6526==    at 0x4020C19: malloc (in /targets/FREMANTLE_X86/usr/lib/valgrind/
 x86-linux/vgpreload_memcheck.so)
 ==6526==    by 0x8048470: main (valgrind_example.c:48)
 ==6526==
 ==6526== LEAK SUMMARY:
 ==6526==    definitely lost: 40 bytes in 2 blocks.
 ==6526==      possibly lost: 0 bytes in 0 blocks.
 ==6526==    still reachable: 0 bytes in 0 blocks.
 ==6526==         suppressed: 0 bytes in 0 blocks.
 [sbox-FREMANTLE_X86: ~/src/valgrind_example] &gt;


The output of the Valgrind tells that there were 40 unallocated bytes for the application (&quot;definitely lost&quot;). This means that the example application is leaking memory, and cannot free it anymore. This means that the code should be studied closely.

Valgrind also tells the lines in the code where these allocations that are not freed are performed. In this example, the lines in question are 48 and 26.

==== Alternative method for starting Valgrind ====

[[#Alternative method for starting gdb|As with gdb]], Valgrind can be started together with the application framework, which is especially useful for graphical applications that must normally be run with &lt;code&gt;run-standalone.sh&lt;/code&gt;. For example, to start the application framework an an application &lt;code&gt;my_app&lt;/code&gt; underValgrind:
 af-sb-init.sh start --valgrind=my_app
If other Valgrind frontends are required, they can be set with the environment variables:
* &lt;code&gt;VALGRINDCMD&lt;/code&gt;: the command you want to run inside valgrind
* &lt;code&gt;VALGRIND&lt;/code&gt;: the valgrind command and parameters, including the frontend to use
For example, to run &lt;code&gt;massif&lt;/code&gt; on &lt;code&gt;maemo-af-desktop&lt;/code&gt;:
 VALGRINDCMD=&quot;maemo-af-desktop&quot; VALGRIND=&quot;valgrind --tool=massif --num-callers=50 \
        --trace-children=yes --depth=5 --format=html -log-file=/tmp/massif \
        --alloc-fn=g_malloc --alloc-fn=g_malloc0 --alloc-fn=g_realloc \
        --alloc-fn=g_slice_alloc --alloc-fn=g_try_malloc \
        --alloc-fn=g_slice_alloc0&quot; af-sb-init.sh start
 ...
 af-sb-init.sh stop

=== Official Valgrind Manual ===

Valgrind.org has an [http://valgrind.org/docs/manual/manual.html Valgrind manual], which explains the many options and debugging practices that Valgrind can support.

== Other Debugging Tools ==

The SDK provides a number of other tools that are useful in debugging. See the linked documentation pages to learn more about them.

* ''strace''  - a system call tracer. Prints out all the system calls made by the traced process.
** [[Documentation/devtools/maemo5/strace|strace documentation]]
* ''ltrace''  - a library call tracer. Prints out all library calls made by the traced process.
** [[Documentation/devtools/maemo5/ltrace|ltrace documentation]]
* ''latrace'' - traces dynamic library calls.
** [[Documentation/devtools/maemo5/latrace|latrace documentation]]
* ''sp-rich-core''  - produce ''rich cores''  that will provide a snapshot of the system's state at the time of the crash in addition to the core dump file.
** [[Documentation/devtools/maemo5/sp-rich-core|sp-rich-core documentation]]
* ''syslog''  - a logging system that can collect logs in a centralized way.
** [[Documentation/devtools/maemo5/syslog|syslog documentation]]

Please also have a look at the tools main page [[Documentation/devtools/maemo5|Maemo 5 SDK Tools]] for even more tools that could be useful for you.

= Making a Debian Debug Package =

Application developers should provide debug packages corresponding to their application packages. This section shows how to do that.

Debian debug packages contain ''debug symbol''  files that debuggers (like &lt;code&gt;gdb&lt;/code&gt;) will automatically load when the application is debugged.

In an ARM environment, the debugger cannot do backtracing or show correct function names without debugging symbols, making it impossible to debug optimized binaries or libraries. All libraries in the device are optimized.

In an X86 target, debugging can be done without debug symbols.

If the package maintainer provides no debug package, then the other developers in the community need to spend extra time and effort to recompile the application (or the library) with debugging symbols. This extra (time-consuming) step can be simply eliminated if the package maintainer provides a ready-compiled debug package.

This section covers creating a Debian debug package from the Maemo/Scratchbox point of view.

It is the package maintainers role and decision to create and provide a debug package for their application or library. This means that you as the package owner are responsible to modify the debian package configurations, so that the &lt;code&gt;dpkg-buildpackage&lt;/code&gt; tool will produce the additional &lt;code&gt;dbg&lt;/code&gt;-package.

If you are a maintainer of a library or binary package, it is strongly recommended to create a corresponding debug package. This is needed by anybody wanting to either debug or profile your software or something using it.

If the package is otherwise fine (and &lt;code&gt;debian/rules&lt;/code&gt; uses debhelper &lt;code&gt;dh_* scripts&lt;/code&gt;), creating debug packages is easy, just:

* Add &lt;code&gt;*-dbg&lt;/code&gt; package descriptions to the &lt;code&gt;debian/control&lt;/code&gt; file

* Make sure that &quot;&lt;code&gt;-g&lt;/code&gt;&quot; is included in the compiler flags and Makefiles do not strip binaries (for example, give &quot;&lt;code&gt;-s&lt;/code&gt;&quot; to &quot;&lt;code&gt;install&lt;/code&gt;&quot; command)

* Add &quot;&lt;code&gt;--dbg-package=&amp;lt;package name&amp;gt;&lt;/code&gt;&quot; argument to &quot;&lt;code&gt;dh_strip&lt;/code&gt;&quot; invocation in &lt;code&gt;debian/rules&lt;/code&gt; for each package containing binaries (&lt;code&gt;dh_strip&lt;/code&gt; will then extract the debug symbols from the given binary package to a separate debug package)

* Rebuild/test source package

More detailed instructions are below.

== Creating DBG Packages ==

Steps to create a debian DBG package are:
&lt;ol&gt;
&lt;li&gt; '''Clean up any previous dbg configurations from your package''' 
If your package already provides the debugging symbols the &quot;hard, old way&quot; then you should clean these configurations first.
If you use &lt;code&gt;dh_strip --dbg-package&lt;/code&gt; option in &lt;code&gt;debian/rules&lt;/code&gt; file, then it is not necessary to build or copy anything to the &lt;code&gt;-dbg&lt;/code&gt; package build directory anymore. Check your packages &lt;code&gt;debian/rules&lt;/code&gt; file and remove all lines that have statements to create dbg packages.
If you have any files named &lt;code&gt;debian/*-dbg.*&lt;/code&gt; then just remove these files. These were required with the old way to use &lt;code&gt;dh_strip&lt;/code&gt;.
The following steps are the only ones needed to create the debug packages with newer versions of &lt;code&gt;dh_strip&lt;/code&gt;.
After you have cleaned up any previous dbg configurations from your debian files move to the next step.&lt;/li&gt;
&lt;li&gt; '''Define DBG package(s)''' 
For every package listed in your &lt;code&gt;debian/control&lt;/code&gt; file that contains libraries or binaries, you need to add corresponding &lt;code&gt;&amp;lt;package&amp;gt;-dbg&lt;/code&gt; entry. If you have &lt;code&gt;debian/control.in&lt;/code&gt; then modify that instead.
Make the debug package(s) to depend from the corresponding binary/library package. Here is an example:

&lt;pre&gt;
.
. other package definitions above
.

Package: libgtk2.0-0-dbg
Section: libdevel
Architecture: any
Depends: libgtk2.0-0 (= ${binary:Version})
Description: Debug symbols for the Gtk library
&lt;/pre&gt;

If the package contains binaries instead of libraries, the &lt;code&gt;Section&lt;/code&gt; should be &lt;code&gt;devel&lt;/code&gt;, not &lt;code&gt;libdevel&lt;/code&gt;. The new &lt;code&gt;-dbg&lt;/code&gt; package may have a different name from the old style debug package (for example &lt;code&gt;libgtk2.0-0-dbg&lt;/code&gt;, not &lt;code&gt;libgtk2.0-dbg&lt;/code&gt;). If there are earlier (old style) debug packages in the repositories, the new debug package should replace or conflict with the old one.&lt;/li&gt;


&lt;li&gt; '''Add option -g to CFLAGS''' 
Make sure you have set option &lt;code&gt;-g&lt;/code&gt; in &lt;code&gt;CFLAGS&lt;/code&gt; in the &lt;code&gt;debian/rules&lt;/code&gt; file, and that this option is effective and always enabled. Otherwise the debug package will not contain the required debug symbols.
For example, use a line like this for &lt;code&gt;CFLAGS&lt;/code&gt;

&lt;pre&gt; 
CFLAGS = -Wall -g -O2
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt; '''Use dh_strip''' 
You can either provide all debugging information for your package, or just a minimal debugging information required to debug something else using your library.
You want to select the latter option only if you want to reveal as little of your code as possible (for example) for contract reasons.
&lt;ol&gt;&lt;li&gt; '''Providing all debug information in your dbg package.''' 
&lt;code&gt;debian/compat&lt;/code&gt; levels smaller than 3 should not be used (1 is default!). If your package sets &lt;code&gt;debian/compat&lt;/code&gt; level '''below'''  5, give the following arguments to dh_strip in &lt;code&gt;debian/rules&lt;/code&gt;:

&lt;pre&gt;
dh_strip --dbg-package=&amp;lt;package1&amp;gt; [--dbg-package=&amp;lt;package2&amp;gt; ...]
&lt;/pre&gt;

For example:

&lt;pre&gt;
dh_strip --dbg-package=libgtk2.0-0
&lt;/pre&gt;


If compat level is 5 or higher, use syntax:

&lt;pre&gt;
dh_strip --dbg-package=&amp;lt;package1&amp;gt;-dbg\
 [--dbg-package=&amp;lt;package2&amp;gt;-dbg ...]
&lt;/pre&gt;

For example:

&lt;pre&gt;
dh_strip --dbg-package=libgtk2.0-0-dbg
&lt;/pre&gt;


If you are using cdbs instead of debhelper in your &lt;code&gt;debian/rules&lt;/code&gt; file, use this instead:

&lt;pre&gt;
DEB_DH_STRIP_ARGS := &amp;lt;dh_strip arguments&amp;gt;
&lt;/pre&gt;


For example (for compat levels below 5):

&lt;pre&gt;
DEB_DH_STRIP_ARGS := --dbg-package=&amp;lt;package1&amp;gt; ...
&lt;/pre&gt;

&lt;/li&gt;


&lt;li&gt; '''Providing just minimal debug information''' 
In case you do not want to reveal all information about your binary (for contractual reasons, as an example), you can provide a debug symbol file just with the &lt;code&gt;.debug_frame&lt;/code&gt; section (which is the minimal information needed by &lt;code&gt;gdb&lt;/code&gt; to show working backtraces in an ARM environment). In addition to information provided by the binary file, it will reveal only static function names and the number of function arguments. To do this, replace the above &lt;code&gt;dh_strip&lt;/code&gt; line in &lt;code&gt;debian/rules&lt;/code&gt; file &lt;code&gt;binary-arch&lt;/code&gt; target with:

&lt;pre&gt;
chmod +x $(shell pwd)/debian/wrapper
export PATH=$(shell pwd)/debian/wrapper:$$PATH; \
dh_strip  --dbg-package=&amp;lt;package1&amp;gt; [--dbg-package=&amp;lt;package2&amp;gt; ...]
&lt;/pre&gt;



Notice that the wrapper script is set executable because the &lt;code&gt;dpkg-source&lt;/code&gt; does not preserve the exec permissions. Store the following wrapper script as &lt;code&gt;debian/wrapper/objcopy&lt;/code&gt;:

 #!/bin/sh
 # 

 case &quot; $* &quot; in
   *&quot; --only-keep-debug &quot;*)
     exec /usr/bin/objcopy -R .debug_info -R .debug_aranges \
          -R .debug_pubnames -R .debug_abbrev -R .debug_line \
          -R .debug_str -R .debug_ranges -R .comment -R .note &quot;$@&quot;
     ;;
 esac
 exec /usr/bin/objcopy &quot;$@&quot;


With this &lt;code&gt;dh_strip&lt;/code&gt; will use &lt;code&gt;objcopy&lt;/code&gt; through this wrapper (and remove the other debug sections).&lt;/li&gt;&lt;/ol&gt;
&lt;li&gt; Verify the package(s)
Update the Debian changelog with &lt;code&gt;dch -i&lt;/code&gt; and build the package with &lt;code&gt;dpkg-buildpackage -rfakeroot&lt;/code&gt;. This will create new Debian source package (dsc + diff) and binary package(s) which you can install on the target for additional testing.&lt;/li&gt;
&lt;/ol&gt;
See also &lt;code&gt;dh_strip (1)&lt;/code&gt; and &lt;code&gt;debhelper (7)&lt;/code&gt; manual pages for details about the helper scripts.

== Using and Installing DBG Packages ==

The debug packages are easy to use, just &lt;code&gt;apt-get install&lt;/code&gt; them and on target gdb load the new style debug symbol files (installed to subdirectories under &lt;code&gt;/usr/lib/debug/&lt;/code&gt;) automatically.

Inside Scratchbox, debuggers and profilers search for the debug symbol files under scratchbox target directory under &lt;code&gt;/usr/lib/debug&lt;/code&gt;, so link a target directory under it.
 
 mkdir /usr/lib/debug
 cd /usr/lib/debug
 mkdir targets
 ln -s /usr/lib/debug \
  targets/$(sh -c '. /targets/links/scratchbox.config;echo $SBOX_TARGET_NAME')


The reason for this is that realpath on libraries and binaries inside Scratchbox returns &lt;code&gt;/scratchbox/targets/.../usr/lib/...&lt;/code&gt; instead of just normal &lt;code&gt;/usr/lib/...&lt;/code&gt;.

Installing the &lt;code&gt;maemo-debug-scripts&lt;/code&gt; package does this link automatically.

And for thread debugging to work, install &lt;code&gt;libc6-dbg&lt;/code&gt; package and &lt;code&gt;gdb&lt;/code&gt; package, the Scratchbox provided host &lt;code&gt;gdb&lt;/code&gt; doesn't work with threads (or ARM core dumps). To use the native gdb in Scratchbox, you need to start gdb the following way:
 
 SBOX_REDIRECT_IGNORE=/usr/bin/gdb /usr/bin/gdb /usr/bin/my-binary


The &lt;code&gt;maemo-debug-scripts&lt;/code&gt; package provides &lt;code&gt;native-gdb&lt;/code&gt; script for this.

For gdb to find old style debug symbol files (installed directly into &lt;code&gt;/usr/lib/debug/&lt;/code&gt;), use &lt;code&gt;LD_LIBRARY_PATH&lt;/code&gt; or load them manually in &lt;code&gt;gdb&lt;/code&gt;.

Files in these old style debug symbol files contain both the binary and debug symbol sections, so they are also larger than the new style debug symbols that &lt;code&gt;dh_strip&lt;/code&gt; instructions above will create.

== For Further Reading ==

* [http://www.debian.org/doc/manuals/maint-guide/index.en.html Debian New Maintainers' Guide]
* [http://www.debian.org/doc/developers-reference/best-pkging-practices.html Debian Developer's Reference, Chapter 6 - Best Packaging Practices]

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Kernel and Debugging Guide/Maemo Kernel Guide</title>
    <id>2325</id>
    <revision>
      <id>37700</id>
      <timestamp>2010-08-11T21:07:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>tidy slightly</comment>
      <text xml:space="preserve">This chapter describes how to configure, compile and flash the Linux kernel for the Internet Tablet device. The chapter is targeted at developers wishing to compile their own custom kernels for the device.

== Prerequisites ==

Before starting, set up the Maemo environment. The required GCC toolchain that is used to compile the kernel is included in Scratchbox by default.

Setting up a separate target for kernel compilation is not mandatory, but this example does it in case the default armel target has been modified in some way.

&lt;ul&gt;
&lt;li&gt;Start Scratchbox.&lt;/li&gt;

&lt;li&gt;&lt;pre&gt;
$ scratchbox
&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;
Create a new target called MaemoKernel with qemu-arm CPU transparency. The second command installs the armel rootstraps to the target. The last command installs the C-library, /etc, devkits and fakeroot.
&lt;/li&gt;

&lt;li&gt;&lt;pre&gt;
[sbox-FREMANTLE_ARMEL: ~] &gt; sb-conf setup MaemoKernel \
-c cs2007q3-glibc2.5-arm7 \
-d qemu:perl:svn:apt-https -t /scratchbox/devkits/qemu/bin/qemu-arm-sb
[sbox-FREMANTLE_ARMEL: ~] &gt; sb-conf select MaemoKernel
[sbox-MaemoKernel: ~] &gt; sb-conf rs MaemoKernel \
/home/&amp;lt;username&amp;gt;/maemo-sdk-rootstrap_5.0_armel.tgz
[sbox-MaemoKernel: ~] &gt; sb-conf in MaemoKernel -edFL
&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;

{{ambox|text=The &lt;username&gt; above refers to your login name in the environment. If you have used the Maemo installer, the rootstraps are under your home directory. If you have performed a manual installation, the rootstrap is under the /scratchbox/packages directory. Keep this in mind when running the sb-conf command above.}}

&lt;ul&gt;
&lt;li&gt;
Verify that the sources.list file inside the Scratchbox environment is correct. If the below lines are not in the /etc/apt/sources.list file, add them there.
&lt;/li&gt;

&lt;li&gt;&lt;pre&gt;
deb http://repository.maemo.org/ fremantle/sdk free non-free
deb-src http://repository.maemo.org/ fremantle/sdk free

deb http://repository.maemo.org/ fremantle/tools free non-free
deb-src http://repository.maemo.org/ fremantle/tools free
&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;Create a working directory (inside Scratchbox) for the kernel sources.&lt;/li&gt;
 
&lt;li&gt;&lt;pre&gt;[sbox-MaemoKernel: ~] &amp;gt; mkdir ~/maemo_kernel&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;


The Scratchbox environment is now ready for compiling the kernel.

== Getting Kernel Sources ==

Kernel sources are not included in the rootstrap. Therefore, you need to download them from the repository.

&lt;ul&gt;
&lt;li&gt;Select the kernel compilation target, if not selected already.&lt;/li&gt;
 
&lt;li&gt;&lt;pre&gt;
[sbox-FREMANTLE_ARMEL: ~] &gt; sb-conf select MaemoKernel
&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;Update the package database. This requires the earlier modifications in the sources.list file.&lt;/li&gt;
 
&lt;li&gt;&lt;pre&gt;
[sbox-MaemoKernel: ~] &gt; fakeroot apt-get update
&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;Go to the working directory and fetch the sources.&lt;/li&gt;
 
&lt;li&gt;&lt;pre&gt;
[sbox-MaemoKernel: ~] &gt; cd ~/maemo_kernel
[sbox-MaemoKernel: ~/maemo_kernel ] &gt; apt-get source kernel
&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;

Kernel sources should now be fetched and ready to be compiled.

== Configuring Source Tree and Compiling Kernel ==

&lt;ul&gt;
&lt;li&gt;A source subdirectory is listed. Enter the directory and create the default configuration.&lt;/li&gt;

&lt;li&gt;&lt;pre&gt;
[sbox-MaemoKernel: ~/maemo_kernel ] &gt; cd kernel-2.6.28
[sbox-MaemoKernel: ~/maemo_kernel/kernel-2.6.28] &gt; make EXTRAVERSION=-omap1 rx51_defconfig
 # lots of output from make program...
&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;Compile the kernel image and check the image file timestamp to ensure that it is properly created.&lt;/li&gt;

&lt;li&gt;&lt;pre&gt;
[sbox-MaemoKernel: ~/maemo_kernel/kernel-2.6.28] &amp;gt; make EXTRAVERSION=-omap1 bzImage
# compilation output...
[sbox-MaemoKernel: ~/maemo_kernel/kernel-2.6.28] &amp;gt; ls -l arch/arm/boot/zImage
-rwxrwxr-x  1 maemo maemo 1717620 Jul 29 18:10 arch/arm/boot/zImage
&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;

{{ambox|text=The kernel is very strict on versions. &lt;code&gt;EXTRAVERSION=-omap1&lt;/code&gt; sets the version to match the default installation. Instead of always supplying it to the &lt;code&gt;make&lt;/code&gt; command, as done in this chapter, it is possible to modify the kernel &lt;code&gt;Makefile&lt;/code&gt;. Another alternative is to avoid using &lt;code&gt;make&lt;/code&gt; directly and use &lt;code&gt;dpkg-buildpackage -rfakeroot -b&lt;/code&gt; to compile the kernel.}}


Now the device can be flashed with the new kernel image using the Flasher tool. This must be performed outside Scratchbox. For short instructions on flashing, see the [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5|Flashing Kernel]] section.

== Changing Default Kernel Configuration ==

The following steps describe how to change the default kernel configuration.

&lt;ul&gt;
&lt;li&gt;Restore the original default configuration, just in case it has been changed.&lt;/li&gt;
 
&lt;li&gt;&lt;pre&gt;
[sbox-MaemoKernel: ~/maemo_kernel/kernel-2.6.28] &gt; make EXTRAVERSION=-omap1 \
rx51_defconfig
&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;Edit the configuration file with your chosen editor. Editing the file is OK even though the system warns against it.&lt;/li&gt;
 
&lt;li&gt;&lt;pre&gt;
[sbox-MaemoKernel: ~/maemo_kernel/kernel-2.6.28] &gt; vi .config
&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;Include your changes for compilation.&lt;/li&gt;

&lt;li&gt;&lt;pre&gt;
[sbox-MaemoKernel: ~/maemo_kernel/kernel-2.6.28] &gt; make EXTRAVERSION=-omap1 oldconfig
&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;


Now a kernel image with modified configuration can be recompiled.

If you have a local repository, by default extra information will be appended to the kernel version. This will stop the kernel version from matching the default install.  To keep it from doing so, change scripts/setlocalversion to add &quot;exit&quot; to the beginning:
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
# Print additional version information for non-release trees.
exit
&lt;/source&gt;

== Compiling External Kernel Modules ==

In this section, a simple external, or out-of-tree, kernel module is built against the kernel-headers. This is the recommended way of building new modules. A real external kernel module can be a driver for an uncommon or new device or some special service for a system, but this example code only prints some helloworlds to the kernel ring buffer.

# As before, start in the work directory. &lt;pre&gt;[sbox-MaemoKernel: ~/maemo_kernel] &gt;&lt;/pre&gt;
# Install the kernel-headers package. &lt;pre&gt;[sbox-MaemoKernel: ~/maemo_kernel] &gt; fakeroot apt-get install kernel-headers&lt;/pre&gt;

&lt;ol start=3&gt; 
&lt;li&gt; Download the example files from the Maemo svn.
&lt;pre&gt;
[sbox-MaemoKernel: ~/maemo_kernel] &gt; svn export https://vcs.maemo.org/svn/\
maemoexamples/tags/maemo_5.0/hello-module/

[sbox-MaemoKernel: ~/maemo_kernel] &gt; cd hello-module
[sbox-MaemoKernel: ~/maemo_kernel/hello-module] &gt; ls -l
total 32
-rw-rw-r--  1 maemo maemo 17989 Aug 28 13:59 COPYING
-rw-rw-r--  1 maemo maemo   380 Aug 28 13:59 Makefile
-rw-rw-r--  1 maemo maemo   480 Aug 28 14:23 README
-rw-rw-r--  1 maemo maemo   640 Aug 28 13:59 hello.c
&lt;/pre&gt;

The source code for the module is very simple:
&lt;pre&gt;
[sbox-MaemoKernel: ~/maemo_kernel/hello-module] &gt; cat hello.c
/* hello-module.c, an example kernel module */

#include &amp;lt;linux/module.h&amp;gt; /* needed by all kernel modules */
#include &amp;lt;linux/init.h&amp;gt;   /* needed for custom init/exit functions */
#include &amp;lt;linux/kernel.h&amp;gt; /* needed for KERN_ALERT macro */

/* Special macro to indicate license (to avoid tainting the kernel) */
MODULE_LICENSE(&quot;GPLv2&quot;);

static int hello_init(void) {
  printk(KERN_ALERT &quot;Hello, world\n&quot;); /* top priority message */
  return 0;
}

static void hello_exit(void)
{
	printk(KERN_INFO &quot;Goodbye, world\n&quot;);
}

/* macros to mark modules init/exit funcs (run on insmod/rmmod) */
module_init(hello_init);
module_exit(hello_exit);
&lt;/pre&gt;

Compiling kernel modules differs from compiling normal programs. That is reflected in the &lt;code&gt;Makefile&lt;/code&gt;:

&lt;pre&gt;
[sbox-MaemoKernel: ~/maemo_kernel/hello-module] &gt; cat Makefile
# Makefile for building the hello kernel module outside the kernel tree

KERNELDIR := /usr/src/kernel-headers

obj-m := hello.o

# default build target (uses kernel build (kbuild) system)
all:
	$(MAKE) -C $(KERNELDIR) M=`pwd` EXTRAVERSION=-omap1 modules

# target for cleaning up
clean:
	$(RM) *.o .depend .*.cmd *.ko *.mod.c Module.symvers modules.order
	$(RM) -R .tmp_versions
&lt;/pre&gt;

The &lt;code&gt;all:&lt;/code&gt; target compiles the module, not using this &lt;code&gt;Makefile&lt;/code&gt;,
but a &lt;code&gt;Makefile&lt;/code&gt; in the kernel headers folder set in variable 
&lt;code&gt;KERNELDIR&lt;/code&gt;. The &lt;code&gt;clean:&lt;/code&gt; target is a regular target handled in this &lt;code&gt;Makefile&lt;/code&gt;.
&lt;/li&gt;

&lt;li&gt;Compile the module.
&lt;pre&gt;
[sbox-MaemoKernel: ~/maemo_kernel/hello-module] &amp;gt; make
make -C /usr/src/kernel-headers M=`pwd` modules
make[1]: Entering directory `/targets/MaemoKernel/usr/src/kernel-headers'
  CC [M]  /home/maemo/maemo_kernel/hello-module/hello.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/maemo/maemo_kernel/hello-module/hello.mod.o
  LD [M]  /home/maemo/maemo_kernel/hello-module/hello.ko
make[1]: Leaving directory `/targets/MaemoKernel/usr/src/kernel-headers'
[sbox-MaemoKernel: ~/maemo_kernel/hello-module] &amp;gt;
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt; Check the results. 
&lt;pre&gt;
[sbox-MaemoKernel: ~/maemo_kernel/hello-module] &amp;gt; ls -l
total 148
-rw-rw-r--  1 maemo maemo   223 Aug  6 14:51 Makefile
-rw-rw-r--  1 maemo maemo     0 Aug  6 14:51 Module.symvers
-rw-rw-r--  1 maemo maemo   692 Aug  6 14:50 hello.c
-rw-rw-r--  1 maemo maemo 64037 Aug  6 14:51 hello.ko
-rw-rw-r--  1 maemo maemo   663 Aug  6 14:51 hello.mod.c
-rw-rw-r--  1 maemo maemo 32656 Aug  6 14:51 hello.mod.o
-rw-rw-r--  1 maemo maemo 32400 Aug  6 14:51 hello.o
-rw-rw-r--  1 maemo maemo    57 Aug  6 14:51 modules.order
&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

File &lt;code&gt;hello.ko&lt;/code&gt; is the new module. Install it by copying it to the device and running it (as root)
 Nokia-NXX-31-10:/home/user# insmod hello.ko
and remove it by calling 
 Nokia-NXX-31-10:/home/user# rmmod hello.ko

Check that the module worked properly by examining the kernel ring buffer:
 
 Nokia-NXX-31-10:/home/user# dmesg | tail
 ...
 [11921.578338] Hello, world
 [11928.357696] Goodbye, world

If there is a slight version mismatch between SDK's kernel headers and the running kernel on device, &lt;code&gt;insmod&lt;/code&gt; refuses to install the module with the error message &lt;code&gt;insmod: error inserting '&lt;module&gt;': -1 Invalid module format&lt;/code&gt;. In this case, install the module by stripping version info from it before installation:
 
 [sbox-FREMANTLE_ARMEL: ~/maemo_kernel/hello-module] &amp;gt; objcopy --strip-debug \ 
 -R .modinfo -R __versions hello.ko

For more information on kernel modules, see the following:

* [http://www.tldp.org/LDP/lkmpg/2.6/html/index.html The Linux Kernel Module Programming Guide]
* &lt;nowiki&gt;/scratchbox/users/&amp;lt;username&amp;gt;/home/&amp;lt;username&amp;gt;/maemo_kernel/kernel-2.6.28/Documentation/kbuild/modules.txt&lt;/nowiki&gt;

== Compiling Internal Kernel Modules ==

This section explains how to configure and compile additional kernel modules included in the kernel source tree for the Internet Tablet in the Maemo environment. The NFSD module is used as an example. In this section, the modules are compiled against the full kernel source tree, not the kernel headers package. This example compiles all configured modules at once.

&lt;ul&gt;
&lt;li&gt;Go to your working directory with kernel sources.&lt;/li&gt;
 
&lt;li&gt;&lt;pre&gt;
[sbox-MaemoKernel:] &gt; cd  ~/maemo_kernel/kernel-2.6.28
&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt; Edit the configuration file and define that the NFSD is a kernel module.&lt;/li&gt;

&lt;li&gt;&lt;pre&gt;
[sbox-MaemoKernel: ~/maemo_kernel/kernel-2.6.28] &gt; vi .config
&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;Find the location of the NFSD configuration.&lt;/li&gt;

&lt;li&gt;&lt;pre&gt;
# CONFIG_NFSD is not set
&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;Enable NFSD support as a module (m for module, Y for built-in).
 
&lt;li&gt;&lt;pre&gt;
CONFIG_NFSD=m
&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;As described in the previous sections, refresh the configuration and build new modules.&lt;/li&gt;

&lt;li&gt;&lt;pre&gt;
[sbox-MaemoKernel: ~/maemo_kernel/kernel-2.6.28] &gt; make EXTRAVERSION=-omap1 oldconfig
# lots of output here. Answer Y to NFSD_V3, default to others.
[sbox-MaemoKernel: ~/maemo_kernel/kernel-2.6.28] &gt; make EXTRAVERSION=-omap1 modules
&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;Check with the find command to see which kernel object files (extension .ko) now exist.&lt;/li&gt;
 
&lt;li&gt;&lt;pre&gt;
[sbox-MaemoKernel: ~/maemo_kernel/kernel-2.6.28] &amp;gt; find . -name &quot;*.ko&quot; -ls
 655362  804 -rw-rw-r--   1 maemo maemo   817889 Aug  4 16:57 ./fs/ext2/ext2.ko
 630786  108 -rw-rw-r--   1 maemo maemo   106187 Aug  4 16:57 ./fs/exportfs/exp
ortfs.ko
1335340  144 -rw-rw-r--   1 maemo maemo   141168 Aug  4 16:57 ./fs/fat/vfat.ko
...
4595743 1328 -rw-rw-r--   1 maemo maemo  1354124 Aug  4 16:57 ./fs/nfsd/nfsd.ko
...
4074612  104 -rw-rw-r--   1 maemo maemo    98930 Aug  4 16:57 ./arch/arm/mach-o
map2/dspbridge.ko
&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;

The list of .ko files is quite long, depending on whether or not some additional changes were made to the .config file. Module &lt;code&gt;nfsd.ko&lt;/code&gt; is the one just added.

The kernel modules are kept under &lt;code&gt;/lib/modules/&lt;/code&gt;. However, the &lt;code&gt;insmod&lt;/code&gt; command can be used to load the modules into the running kernel from any directory they have been saved in.

== Using make menuconfig ==

'make menuconfig' fails to autodetect the ncurses library available in Scratchbox and exits with an error.  If you want to use 'make menuconfig', first edit &lt;code&gt;scripts/kconfig/lxdialog/check-lxdialog.sh&lt;/code&gt; and change

&lt;pre&gt;
# What library to link
ldflags()
{
	for ext in so a dylib ; do
&lt;/pre&gt;

to

&lt;pre&gt;
# What library to link
ldflags()
{
	# XXX autodetection fails in scratchbox
	echo -lncurses
	exit
	for ext in so a dylib ; do
&lt;/pre&gt;

== Flashing Kernel ==

You can flash the custom kernel from outside Scratchbox with the flasher tool using USB.

 # flasher-3.5 -f -k /scratchbox/users/&amp;lt;username&amp;gt;/home/&amp;lt;username&amp;gt;/\
 maemo_kernel/kernel-2.6.28/arch/arm/boot/zImage

== Testing kernel ==

It is possible to try the custom kernel without flashing it by temporarily changing arch/arm/plat-omap/bootreason.c as follows:

&lt;pre&gt;
	//	len += sprintf(page + len, &quot;%s\n&quot;, boot_reason);
	len += sprintf(page + len, &quot;pwr_key\n&quot;);
&lt;/pre&gt;

For the flasher tool, use

 # flasher-3.5 -l -b -k /scratchbox/users/&amp;lt;username&amp;gt;/home/&amp;lt;username&amp;gt;/\
 maemo_kernel/kernel-2.6.28/arch/arm/boot/zImage

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing</title>
    <id>2337</id>
    <revision>
      <id>45943</id>
      <timestamp>2011-12-07T11:07:32Z</timestamp>
      <contributor>
        <ip>68.12.46.146</ip>
      </contributor>
      <comment>Corrected grammar</comment>
      <text xml:space="preserve">Adding software to Maemo is done through &quot;packages&quot;. Packages are discreet archives of applications and additional information that make installing software easier than compiling the software from scratch. To install and manage packages on Maemo devices, Maemo uses the Debian package management system APT, the [[:wikipedia:Advanced Packaging Tool|Advanced Packaging Tool]]. APT is the underlying system which the developer fits their package into. Adding and removing software on Maemo devices is done using the Application Manager, which works with the APT system, making the details of installing packages invisible to the user. You can consider APT as the backend and Application Manager as the frontend. The combination of APT and the Application Manager presents a flexible framework that enables developers to easily create packages and simplify installation of software for the user.  

'''Debian Packages, or debs'''

The APT package management system, developed by Debian, manipulates 'debs'. Debs are simple binary archives which contain the files to be installed, metadata describing the deb, dependencies on other software, and optional installation and removal scripts. The process of creating a deb is fortunately made quite simple by various tools.

This process is described in section [[#Creating Debian Packages|Creating Debian Packages]]. 

'''Package Repositories'''

The package management system makes use of package repositories, which are essentially web or FTP sites that contain packages and make them available for download. Having a package reside in a repository brings significant advantages: the user can easily update packages on their device by downloading new packages from the repository, other developers can use the packages as automatically installable dependencies and the Application Manager can find the packages in the repository using a URL.

For more information on working with repositories, see the [http://www.isotton.com/software/debian/docs/repository-howto/repository-howto.html Debian Repository HOWTO].

'''One-Click-Install'''

Maemo provides the option of creating installation instruction files that enable users to install applications simply by clicking a link on a web site. This is often a very easy process for the user and it is highly recommended that the developer creates these files. The .install files contain the required repository and package names. For more information on the format of these files, see section [[#Controlling_Installation|Controlling Installation]].

== Creating Debian Packages ==

To create a Debian package, the first step is to put all the files (source code, graphics, desktop and service files) in an empty directory called &lt;code&gt;my-application-1.0.0&lt;/code&gt;. The directory name should follow the &lt;code&gt;&lt;package-name&gt;-&lt;app-version&gt;&lt;/code&gt; convention; in other words, the package that is being created for this application is called ''my-application''. See the [http://www.debian.org/doc/maint-guide/ch-first.en.html Debian New Maintainer's Guide] for more information on naming rules.

Go to the source directory: 
 cd my-application-1.0.0

Set full name environment variable:
 export DEBFULLNAME=&quot;Your Name&quot;

Initial Debianization. &lt;code&gt;dh_make&lt;/code&gt; command is available from debhelper package and should be enabled after Scratchbox login:
 dh_make -e your.name@example.org --createorig

Next &lt;code&gt;dh_make&lt;/code&gt; asks a question and prints a summary of the package:
 Type of package: single binary, multiple binary, library, kernel module or cdbs?
  [s/m/l/k/b] s
 
 Maintainer name : Your Name
 Email-Address   : your.name@example.org
 Date            : Fri, 30 Nov 2007 13:20:48 +0200
 Package Name    : my-application
 Version         : 1.0.0
 License         : blank
 Type of Package : Single
 Hit &amp;lt;enter&amp;gt; to confirm:

The &lt;code&gt;dh_make&lt;/code&gt; command creates the &lt;code&gt;debian/&lt;/code&gt; directory containing configuration files. Many of them are templates, like a template for a man page, since Maemo does not ship applications with man pages due to space limitations, many of these files can be removed. The following table lists the files that are required:

{| class=&quot;wikitable&quot;
|+ Required files in &lt;code&gt;debian&lt;/code&gt; directory
|-
! File in ./debian
! Description
|-
| &lt;code&gt;changelog&lt;/code&gt;
| Package's change log
|-
| &lt;code&gt;compat&lt;/code&gt;
| Debian helper compatibily version. Leave it as it is.
|-
| &lt;code&gt;control&lt;/code&gt;
| Describes the packages to be made.
|-
| &lt;code&gt;copyright&lt;/code&gt;
| Copyright text. Fill in the blanks.
|-
| &lt;code&gt;rules&lt;/code&gt;
| A makefile containing the rules to build all kinds of packages such as, for example, source and binary.
|}

The key files in &lt;code&gt;./debian&lt;/code&gt; are &lt;code&gt;control&lt;/code&gt; and &lt;code&gt;rules&lt;/code&gt;. They contain a generic template showing what they must look like. In &lt;code&gt;control&lt;/code&gt;, fill in the blanks. In &lt;code&gt;rules&lt;/code&gt;, remove any unwanted and unnecessary code.

The following example illustrates what the &lt;code&gt;control&lt;/code&gt; file for the example application must contain:

&lt;pre&gt;
Source: my-application
Section: user/other 
Priority: optional 
Maintainer: Your Name &lt;your.name@example.org&gt;
Build-Depends: debhelper (&gt;= 4.0.0) 
Standards-Version: 3.6.0

Package: my-application 
Architecture: any
Depends: ${shlibs:Depends}
Description: A simple test application
 A very simple application with a short description.
 Which spans multiple lines actually.
XSBC-Bugtracker: A link to a bugtracker location
XB-Maemo-Icon-26:
 iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABmJLR0QA/wD/AP+g
 vaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1gURDQoYya0JlwAAAU9J 
 REFUSMftlL1KA0EUhb/NZl/ggnHQxsJUxt5CUucVJCCkDfgyKdIGG5/A0s5HEBtJ
 EdDAQGBgmw0YJmMzgXXYza5CtNkDW9zZw5z7c+ZCgwb/Ai3i9sVl/Bq8RIs4LRK1 
 gJDsKvJyNXmJMuYTsMoY1zpgozaABdYArQNPZQ1kfyGU7SpqVwxzAMwABWhgpIwp
 4vWBB+AUWAI3ypjnfEXtPU4bLKx9vErTeCeiRSYF+fTn1j5dp2myE9EiU+DSi3wX 
 ymeqRQAmZ3EcA5E/fgO6BULT8zhOcrwXoJdrXRa2Lgps2y2odAUcBUIXQdz78YyC
 SldAp8b7+bXrIv91qjZBietqCc2DjbAt4b2WxJkyZljVujlwp0U0cPxuLcAIuC+4 
 dKxFlsDJarvdAGP/b6hFnDImYs+uG3hbO2AB3Jbsur63tQM+fFx3bzZocEB8AdV2
 gJBZgKTwAAAAAElFTkSuQmCC
&lt;/pre&gt;

The &lt;code&gt;XSBC-Bugtracker&lt;/code&gt; field contains a link to a bugtracker location. See [[Packaging#Maemo-specific_fields|the documentation on Maemo-specific fields]] for more information.

The &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt; field contains the application icon file (in this case, &lt;code&gt;hello_icon_48x48.png&lt;/code&gt;) encoded in base64. The Application Manager displays this icon next to the package name. To perform this encoding in Linux, use either &lt;code&gt;uuencode&lt;/code&gt; or &lt;code&gt;openssl&lt;/code&gt;; however, more suitable applications may also exist. 

&lt;code&gt;uuencode&lt;/code&gt; can be installed from sharutils package:

 [sbox-FREMANTLE_X86: ~] &gt; fakeroot apt-get install sharutils

The following example encodes an icon file using &lt;code&gt;uuencode&lt;/code&gt; inside Scratchbox:

 [sbox-FREMANTLE_X86: ~] &gt; uuencode -m icon.png icon.png &gt; icon.png.en

In the above example, the result of the encoding is printed into a file named &lt;code&gt;icon.png.en&lt;/code&gt;. Do not forget to put a white space at the beginning of each line containing the icon-encoded text. The white space indicates a multi-line field. The same rule stands for the long package description (A very simple application[...]).

The Application Manager only shows packages in the user section. Thus, the &lt;code&gt;Section:&lt;/code&gt; field in the control file must have the &lt;code&gt;Section: user/&lt;SUBSECTION&gt;&lt;/code&gt; syntax, where &lt;code&gt;&lt;SUBSECTION&gt;&lt;/code&gt; is arbitrary. See section [localhost#sec:making_app_pack_sections 17.2.6] for information on the suggested values.

Usually you do not have to change the &lt;code&gt;rules&lt;/code&gt; file. However, if the new .deb package is empty, check the &quot;install:&quot; section to make sure that the &lt;code&gt;DESTDIR&lt;/code&gt; environment variable is pointing to the where the other packaging scripts are looking for the application to be packaged.

Once the application is properly 'Debianized', building the application is performed easily with the command:

 [sbox-FREMANTLE_X86: ~/my-application-1.0.0] &gt; dpkg-buildpackage -rfakeroot

The system displays some output, including some warnings about &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt;, but that is normal. The parent directory now contains a &lt;code&gt;my-application_1.0.0-0_i386.deb&lt;/code&gt; file - the Debian package. This file can be used to test the application in the SDK. When the source package is uploaded to the autobuilder, an Arm architecture-compatible .deb file will be built to distribute to Maemo devices and install using the Application Manager. You can switch to the &lt;code&gt;FREMANTLE_ARMEL&lt;/code&gt; target in Scratchbox to test the build yourself and ensure that there is nothing PC-specific in it.

To test the package in the SDK, type:

 [sbox-FREMANTLE_X86: ~/my-application-1.0.0] &gt; cd ..
 [sbox-FREMANTLE_X86: ~] &gt; fakeroot dpkg -i my-application_1.0.0-0_i386.deb

Replace 'my-application...' with the actual name of the package. You can install packages in both X86 and ARMEL targets. Ensure that the package architecture matches the Scratchbox target.

For more information about making Debian packages, see [http://www.us.debian.org/doc/maint-guide/ Debian New Maintainers' Guide]. For further information about creating application packages for maemo, see the next section [[#Making Application Packages|Making Application Packages]] and [http://hildon-app-mgr.garage.maemo.org/packaging-stable.html How to make a package for the Hildon Application Manager].

{{ambox
|text=If the application is deploying icons to &lt;code&gt;/usr/share/icons/hicolor&lt;/code&gt;, the &lt;code&gt;gtk-update-icon-cache /usr/share/icons/hicolor&lt;/code&gt; command should be run in the &lt;code&gt;postinst&lt;/code&gt; script to ensure that icons are displayed properly.}}

== Package Building ==

This section explains how to build software packages that the end user can install onto the Internet Tablet using the Application Manager tool in the device.

===Prerequisites ===

This section assumes familiarity with the process of creating a .deb package. For more information on the basics of Debian packaging, see section [[#Creating Debian Packages|Creating Debian Packages]].

Use the &quot;hello-world-app&quot; example package to get started. To install it with &lt;code&gt;apt-get&lt;/code&gt;, use the following command:
 apt-get source hello-world-app

===Application Manager ===

The Application Manager (AM) is an end user friendly graphical front-end to the standard Debian package management infrastructure. When using the Application Manager, apt-get tools are not mandatory for the end user.

The Application Manager uses the same backend tools as Synaptic, Aptitude, or &lt;code&gt;apt-get&lt;/code&gt; (namely &lt;code&gt;libapt-pkg&lt;/code&gt;) in the standard way, without imposing any constraints; for example, packages are installed as root, and can touch the whole system.

The usual way to distribute a package is to put it into a repository and make it accessible to apt.

Either Application Manager or the apt-get tool can be used freely. Changes made to the system via &lt;code&gt;apt-get&lt;/code&gt; or dpkg are picked up by the Application Manager, and vice versa.

=== Packaging ===

Packages made for the Application Manager should follow a few extra rules, if they want to integrate nicely to the device. These rules are related to:

* Text formatting
* Software dependencies
* User sections
* Icons
* Installation/removal policy of the Application Manager
* limited feedback to the user, no controlling terminal
* warning about removing running applications
* utilities to use in the maintainer scripts

These are explained in detail below.

=== Text Formatting ===

All strings coming from the control information of a package are interpreted in UTF-8 when they are shown in the User Interface. If a string is not valid UTF-8, all bytes above 127 are replaced with '?' before display. If your control file is not UTF-8, you will fail a quality assurance test.

===Dependencies ===

This field should now contain all the dependencies for package, such as &lt;code&gt;${shlibs:Depends}&lt;/code&gt;.

===Sections ===

The Application Manager (AM) only displays packages in certain sections to the user in order to hide the hundreds of system packages making up the operating system. The AM is not designed to allow the user to manage the entire system at this point, only a set of third-party applications.

The AM only shows packages in the &quot;user&quot; section. The &lt;code&gt;Section:&lt;/code&gt; field in the control file should be in the following format:

 Section: user/&lt;SUBSECTION&gt;

where SUBSECTION is one of the sections below:

{| class=&quot;wikitable&quot;
|+ Maemo package sections
|-
! Key
! Example English i18n
! Example apps
|-
| &lt;code&gt;user/desktop&lt;/code&gt;
| Desktop
| Home, statusbar and taskbar applets
|-
| &lt;code&gt;user/development&lt;/code&gt;
| Programming
| py2deb
|-
| &lt;code&gt;user/education&lt;/code&gt;
| Education
| Flashcard apps
|-
| &lt;code&gt;user/games&lt;/code&gt;
| Games
| Doom, Duke Nukem 3D
|-
| &lt;code&gt;user/graphics&lt;/code&gt;
| Graphics
| Photo apps, GIMP, Inkscape, fonts
|-
| &lt;code&gt;user/multimedia&lt;/code&gt;
| Multimedia ''or'' Sound &amp; Video
| Canola, mplayer, Kagu, UKMP, MediaBox
|-
| &lt;code&gt;user/navigation&lt;/code&gt;
| (Location &amp;) Navigation
| maemo-mapper, Navit
|-
| &lt;code&gt;user/network&lt;/code&gt;
| Internet &amp; Networking
| Web browsers, Samba clients, OpenAFS, Transmission
|-
| &lt;code&gt;user/office&lt;/code&gt;
| Office
| GPE, Claws, AbiWord
|-
| &lt;code&gt;user/science&lt;/code&gt;
| Science
| gnuplot, Octave
|-
| &lt;code&gt;user/system&lt;/code&gt;
| System
| rotation-support, enhanced kernels, themes
|-
| &lt;code&gt;user/utilities&lt;/code&gt;
| Utilities ''or'' Accessories
| Calculators, terminals, text editors
|}

Thus, if the package is wanted in the Office subsection, the field:
 Section: user/office
should be included in the control information.

===Icons ===

The Application Manager may display an icon next to a package name. Icons are included in the control information of a package as a base64 encoded field named &lt;code&gt;Maemo-Icon-26&lt;/code&gt;.

The image format of the icon can be anything understood by &lt;code&gt;GdkPixbufLoader&lt;/code&gt;, but most commonly the PNG format is used.

The image should be 48x48 pixels with a transparent background.

The hello-world package shows an example.

The way to get these fields into the .deb files is to include them with a &quot;XB-&quot; prefix in the debian/control file. For more information, see the [http://www.debian.org/doc/debian-policy/ch-controlfields.html#s5.7 Debian Policy Manual, section 5.7].

===Installation and Removal Policy ===

The Application Manager has its own rules for automatically installing and removing packages, in addition to the ones specified by the user. These rules are tuned to eliminate most surprises for simple package management operations, but this makes them less useable for complicated things like &quot;apt-get dist-upgrade&quot;. Take these rules into account when designing the package conflicts.

Specifically, the AM never automatically removes a user package.

If removing a package can resolve a conflict caused by installing it, the AM refuses the installation request instead of performing the removal.

When removing a package, all packages that are a direct or indirect dependency of the removed package are considered for removal. Any non-user package automatically installed by the AM to satisfy a dependency and now no longer needes is removed.

Unfortunately, the AM is not very good in reporting conflicts: when the package conflicts with a non-user package, the problem reported by the AM considers the non-user package to be the source of the conflict, rather than any of the user packages that depend on it.

=== Feedback from Maintainer Scripts ===

When the Application Manager runs the maintainer scripts, they have no controlling terminal; their standard input is connected to &lt;code&gt;/dev/null&lt;/code&gt;. The &lt;code&gt;DISPLAY&lt;/code&gt; variable is set correctly.

The Application Manager collects a transcript of the installation/uninstallation process, including the output of maintainer scripts. This output is hidden in the application log which users are not meant to view and understand.

The package creator must ensure that the maintainer scripts do not fail. The best way is to try to execute operations that have a very high chance of succeeding. The simpler they are, the better.

=== Removing or Upgrading Running Applications ===

The Application Manager can run a script provided by the package, before removing or upgrading it. That script can tell the Application Manager to cancel the operation.

This feature is often used to display a warning if the user tries to remove or upgrade an application that is currently running. To perform this test, use the &lt;code&gt;maemo-application-running&lt;/code&gt; utility.

When uninstalling or upgrading a package named &lt;code&gt;PACKAGE&lt;/code&gt;, the Application Manager runs the program named &lt;code&gt;/var/lib/hildon-application-manager/info/PACKAGE.checkrm&lt;/code&gt;, if it exists. If this program exists with code 111, the operation is canceled. In all other cases, including when the program terminates with a signal, the operation is carried out.

Two arguments are available for the *.checkrm program. To remove the package, use the following:

 foobarexampleonly.checkrm remove

To upgrade, use the following, replacing &lt;code&gt;VERSION&lt;/code&gt; with the version information:

 foobarexampleonly.checkrm upgrade VERSION

===Utilities to Use in Maintainer Scripts ===

====maemo-application-running====

 maemo-application-running -x executable-file
 maemo-application-running -d app.desktop

This utility is provided by the package &lt;code&gt;hildon-application-manager-dbg&lt;/code&gt;. It checks whether the application specified on the command line is currently running. If the application is running, it exits with code 0. If it is not running, it exits with code 1. If an error occurs, it exits with code 2.

When using the -x option, the utility checks whether any process is currently executing that file, by looking into &lt;code&gt;/proc/PID/exe&lt;/code&gt;.

When using the -d option, the utility uses the given .desktop file to find the service name of the application und queries D-Bus whether the service is currently registered. If the .desktop file contains no service name, the utility uses the executable file like with the -x option.

====maemo-confirm-text====

 maemo-confirm-text [title] FILE

This utility is provided by the package hildon-application-manager. It displays the contents of FILE in a dialog with &quot;Ok&quot; and &quot;Cancel&quot; buttons. The default title of the dialog is &quot;License agreement&quot;.

If the user clicks &quot;OK&quot;, the utility exits with code 0; if the user clicks &quot;Cancel&quot;, it exits with code 1; and if an error occurs, it exits with code 2.

If a license agreement is not shown in the &lt;code&gt;postinst&lt;/code&gt; script, ensure that even if the user does not agree to the licence terms, the &lt;code&gt;postinst&lt;/code&gt; script does not fail. Instead, configure the application to ask the user to agree to the license agreement again at application startup and refuse to run if the user does not agree.

=== Controlling Installation ===

Application Installer (old name for Application Manager) had a beta stage Single Click Install feature. Application Manager is backwards compatible with it and the old .install files still work, but some new features are available.

The Application Manager offers three kinds of functionality with .install files: adding catalogues, installing packages from remote catalogues and installing packages from a memory card. The .install file follows the &lt;code&gt;GKeyFile&lt;/code&gt; format as described in the [http://library.gnome.org/devel/glib/unstable/glib-Key-value-file-parser.html#glib-Key-value-file-parser.description GKeyFile reference documentation]. A &lt;code&gt;GKeyFile&lt;/code&gt; consists of a number of groups, and each group contains key/value pairs. Each of the previously mentioned three functionalities is initiated by a specifically named group in the .install file.

==== Adding Catalogues ====

Adding catalogues is performed with the &quot;catalogues&quot; group. This group has one similarly named mandatory key, &quot;catalogues&quot;. The &quot;catalogues&quot; key is a list of strings referring to the catalogue groups that describe the catalogues to be added. Each catalogue is considered in turn, and the user is asked whether to add it or not. If it is to be added, and if a matching catalogue is already configured in the Application Manager, the matching catalogue is removed first. If the user declines to add the catalogue, the next catalogue is considered. After asking confirmation for each catalogue, the device asks the user whether to &quot;Refresh the list of applications&quot;. Here is an example:

&lt;pre&gt;
[catalogues]
catalogues = extras; sdk

[extras]
name = maemo Extras catalogue
uri = http://repository.maemo.org/extras
components = free non-free

[sdk]
name = maemo SDK catalogue
uri = http://repository.maemo.org/
components = free non-free
&lt;/pre&gt;

A Group describing a catalogue can contain the following keys:

* &lt;code&gt;name&lt;/code&gt;: The display name of the catalogue as displayed to the user in the &quot;Tool &gt; Application catalogues&quot; dialog. Follow the &lt;code&gt;GKeyFile&lt;/code&gt; conventions to localize this key. If this key is omitted, the catalogue contains an empty name.
* &lt;code&gt;uri&lt;/code&gt;: The URI part of the deb line that is added to sources.list for this catalogue. This key is required for all catalogues except those used with the &quot;card_catalogues&quot; key.
* &lt;code&gt;file_uri&lt;/code&gt;: When using file_uri instead of uri, the URI part of the deb line uses the &quot;file://&quot; method and the file_uri gives the actual pathname, relative to the location of the .install file. This key is required for all catalogues that are used with the &quot;card_catalogues&quot; key.
* &lt;code&gt;dist&lt;/code&gt;: The distribution of the deb line to be added to sources.list for this catalogue. If it is omitted, the catalogue defaults to the distribution corresponding to the IT OS release on the device. The Application Manager remembers to select the distribution automatically. For example, if a backup is made, containing a catalogue with automatic distribution selection, and restored on a different IT OS release, the distribution for the new version is used automatically.
* &lt;code&gt;components&lt;/code&gt;: The components part of the deb line to be added to sources.list for this catalogue. If it is omitted, the components part has no content.
* &lt;code&gt;filter_dist&lt;/code&gt;: Ignored if the distribution corresponding to the IT OS release on the device does not match.

When catalogues are compared, they are considered equal if their &lt;code&gt;uri&lt;/code&gt;, &lt;code&gt;dist&lt;/code&gt; and &lt;code&gt;components&lt;/code&gt; fields are equal.

==== Installing Packages ====

In order to install packages with an .install file, the file must contain an &quot;install&quot; group. The group has one mandatory key, &lt;code&gt;package&lt;/code&gt;, and one optional key, &lt;code&gt;catalogues&lt;/code&gt;. The &lt;code&gt;catalogues&lt;/code&gt; key is handled as follows: each catalogue is considered in turn. The user is asked for confirmation if a catalogue that is not already configured is encountered. Alternatively, if a catalogue is already present but disabled, the user is asked to confirm enabling the catalogue. If the user does not confirm, the processing of the .install file stops and any changes made in the configured catalogues are reverted. After the list of catalogues has been processed, the list of applications is refreshed automatically, and the package is offered to the user for installing. Here is an example:

&lt;pre&gt;
[install]
catalogues = foobar
package = maemofoo

[foobar]
name = Foobar Catalogue
name[en_GB] = Foobar Catalogue
name[de_DE] = Foobar Katalog
uri = http://foobar.com/repository
components = main
&lt;/pre&gt;

==== Installing Packages from Memory Card ====

Installing packages from a memory card is governed by the &lt;code&gt;card_install&lt;/code&gt; group. It has two mandatory keys, &lt;code&gt;packages&lt;/code&gt; and &lt;code&gt;card_catalogues&lt;/code&gt;, and one optional key, &lt;code&gt;permanent_catalogues&lt;/code&gt;. The &lt;code&gt;packages&lt;/code&gt; key lists the names of packages that can be installed from the memory card, using the &lt;code&gt;card_catalogues&lt;/code&gt;. The package is installed in a temporary environment where the usual catalogues are not available. Only the catalogues listed by the &lt;code&gt;card_catalogues&lt;/code&gt; key are configured. All of these catalogues must use &lt;code&gt;file_uri&lt;/code&gt; instead of &lt;code&gt;uri&lt;/code&gt;.

The user gets to select the packages from a list, after which the installation proceeds one package after another. In case the installation of a package fails, an error note is displayed, and the processing stops. After the installation is complete, the optional group &lt;code&gt;permanent_catalogues&lt;/code&gt; is processed ???similarly to adding a catalogue as described above.

Whenever a memory card is inserted that contains a file called .auto.install, that file is processed by the Application Manager. Usually, the .auto.install file contains a &lt;code&gt;card_install&lt;/code&gt; group, of course. For example:

 $ mkdir .repo
 $ cp somewhere/*.deb .repo/
 $ (cd .repo &amp;&amp; apt-ftparchive packages . &gt;Packages)

A matching .install file could look like the following:

&lt;pre&gt;
[card_install]
card_catalogues = repo
packages = app-1; app-2

[repo]
file_uri = .repo
dist = ./
&lt;/pre&gt;

The .repo and the .install files typically go to the root of the memory card. To make the memory card auto-installing, make a copy of the .install file and name it .auto.install.

=== Signing Package ===

In order to sign packages, use debsign tool inside Scratchbox. For more information on using debsign, see the [http://www.penguin-soft.com/penguin/man/1/debsign.html debsign manual page].

==Deploying Packages ==

===Installing Application Packages to SDK ===

Application packages can be installed into the Maemo SDK using the Debian package manager called &lt;code&gt;dpkg&lt;/code&gt; with root permission.
 
 [sbox-FREMANTLE_X86: ~] &gt; fakeroot dpkg -i application_i386.deb

Replace ''application'' with the actual name of the package. You can install packages in both X86 and ARMEL targets. The package architecture must match the Scratchbox target.

===Installing Application Packages to Device ===

You can also use the Debian package installer for installing application packages in Maemo devices. 
 
 BusyBox v1.6.1 (2008-03-06 11:36:58 EET) Built-in shell (ash)
 Enter 'help' for a list of built-in commands.
 
 /home/user # dpkg -i application_armel.deb

For maemo device the package architecture must be always armel.

===Uploading Application Packaged to Extras===

Debian packages can be distributed to end users with the [[Extras|Extras repository]], which is pre-configured on the device. Before a package can be added to Extras, it must first be [[Uploading to Extras-devel|uploaded to Extras-devel]], promoted to [[Extras-testing]] if QA checks succeed, and finally promoted to Extras after successful testing by community testers. The [[Extras repository process definition|current Extras process]] is still under discussion, and may change in the future.

=== Red Pill Mode (This feature has been removed in the latest firmware) ===

The Hildon Application Manager has a special hidden mode that makes it more power-user friendly and gives access to features that are not yet considered ready for general distribution.

==== Activation ====

Go to the application menu by clicking on the Application Menu button (on the top left corner of the screen) -&gt; App manager -&gt; Click on the application manager window title area -&gt; Click &quot;Application catalogues&quot; -&gt;Click &quot;New&quot; 
 Enter &quot;matrix&quot; into the &quot;Web address&quot; field and cancel the dialog by clicking on the area outside the dialog.
Choosing Red pill activates red pill mode. Choosing Blue pill deactivates it.

==== Settings ====

After activating red pill mode, the application manager menu has two additional buttons : &quot;Settings&quot; and &quot;Install from file&quot;.

Settings dialog has the following options:

* ''Clean Apt Cache''
Performs the equivalent of &lt;code&gt;apt-get clean&lt;/code&gt; after every install or update. (This is the behavior for blue pill mode.)
* ''Assume Net Connection''
Downloads without asking for an active IAP. This is useful if a network connection exists, but the device connectivity APIs are not available or do not know about it.
* ''Break Locks''
Breaks locks as required instead of failing. This is the default behavior in blue pill mode so that, if a crash leaves a stale lock behind, users do not lock themselves out.
* ''Show Dependencies''
Adds another tab to the details dialog with some dependencies from the package.
* ''Show All Packages''
Does not filter out packages that are not in the &quot;user&quot; section. Also allows installing packages from any section.
* ''Show Magic System Package''
Includes the &quot;magic:sys&quot; package in the list of packages. The effect of updating this package will resemble &lt;code&gt;apt-get upgrade&lt;/code&gt;. Its exact behavior is not yet defined. This feature may become available in blue-pill mode in future.
*&quot;Include package details in log&quot;
*&quot;Use MMC to download packages&quot;
*&quot;Always check for updates&quot;
*&quot;Ignore packages from wrong domains&quot;
*&quot;Ignore third party packages policy for SSU&quot;
*&quot;Use apt-get algorithms&quot;

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing</title>
    <id>2337</id>
    <revision>
      <id>45943</id>
      <timestamp>2011-12-07T11:07:32Z</timestamp>
      <contributor>
        <ip>68.12.46.146</ip>
      </contributor>
      <comment>Corrected grammar</comment>
      <text xml:space="preserve">Adding software to Maemo is done through &quot;packages&quot;. Packages are discreet archives of applications and additional information that make installing software easier than compiling the software from scratch. To install and manage packages on Maemo devices, Maemo uses the Debian package management system APT, the [[:wikipedia:Advanced Packaging Tool|Advanced Packaging Tool]]. APT is the underlying system which the developer fits their package into. Adding and removing software on Maemo devices is done using the Application Manager, which works with the APT system, making the details of installing packages invisible to the user. You can consider APT as the backend and Application Manager as the frontend. The combination of APT and the Application Manager presents a flexible framework that enables developers to easily create packages and simplify installation of software for the user.  

'''Debian Packages, or debs'''

The APT package management system, developed by Debian, manipulates 'debs'. Debs are simple binary archives which contain the files to be installed, metadata describing the deb, dependencies on other software, and optional installation and removal scripts. The process of creating a deb is fortunately made quite simple by various tools.

This process is described in section [[#Creating Debian Packages|Creating Debian Packages]]. 

'''Package Repositories'''

The package management system makes use of package repositories, which are essentially web or FTP sites that contain packages and make them available for download. Having a package reside in a repository brings significant advantages: the user can easily update packages on their device by downloading new packages from the repository, other developers can use the packages as automatically installable dependencies and the Application Manager can find the packages in the repository using a URL.

For more information on working with repositories, see the [http://www.isotton.com/software/debian/docs/repository-howto/repository-howto.html Debian Repository HOWTO].

'''One-Click-Install'''

Maemo provides the option of creating installation instruction files that enable users to install applications simply by clicking a link on a web site. This is often a very easy process for the user and it is highly recommended that the developer creates these files. The .install files contain the required repository and package names. For more information on the format of these files, see section [[#Controlling_Installation|Controlling Installation]].

== Creating Debian Packages ==

To create a Debian package, the first step is to put all the files (source code, graphics, desktop and service files) in an empty directory called &lt;code&gt;my-application-1.0.0&lt;/code&gt;. The directory name should follow the &lt;code&gt;&lt;package-name&gt;-&lt;app-version&gt;&lt;/code&gt; convention; in other words, the package that is being created for this application is called ''my-application''. See the [http://www.debian.org/doc/maint-guide/ch-first.en.html Debian New Maintainer's Guide] for more information on naming rules.

Go to the source directory: 
 cd my-application-1.0.0

Set full name environment variable:
 export DEBFULLNAME=&quot;Your Name&quot;

Initial Debianization. &lt;code&gt;dh_make&lt;/code&gt; command is available from debhelper package and should be enabled after Scratchbox login:
 dh_make -e your.name@example.org --createorig

Next &lt;code&gt;dh_make&lt;/code&gt; asks a question and prints a summary of the package:
 Type of package: single binary, multiple binary, library, kernel module or cdbs?
  [s/m/l/k/b] s
 
 Maintainer name : Your Name
 Email-Address   : your.name@example.org
 Date            : Fri, 30 Nov 2007 13:20:48 +0200
 Package Name    : my-application
 Version         : 1.0.0
 License         : blank
 Type of Package : Single
 Hit &amp;lt;enter&amp;gt; to confirm:

The &lt;code&gt;dh_make&lt;/code&gt; command creates the &lt;code&gt;debian/&lt;/code&gt; directory containing configuration files. Many of them are templates, like a template for a man page, since Maemo does not ship applications with man pages due to space limitations, many of these files can be removed. The following table lists the files that are required:

{| class=&quot;wikitable&quot;
|+ Required files in &lt;code&gt;debian&lt;/code&gt; directory
|-
! File in ./debian
! Description
|-
| &lt;code&gt;changelog&lt;/code&gt;
| Package's change log
|-
| &lt;code&gt;compat&lt;/code&gt;
| Debian helper compatibily version. Leave it as it is.
|-
| &lt;code&gt;control&lt;/code&gt;
| Describes the packages to be made.
|-
| &lt;code&gt;copyright&lt;/code&gt;
| Copyright text. Fill in the blanks.
|-
| &lt;code&gt;rules&lt;/code&gt;
| A makefile containing the rules to build all kinds of packages such as, for example, source and binary.
|}

The key files in &lt;code&gt;./debian&lt;/code&gt; are &lt;code&gt;control&lt;/code&gt; and &lt;code&gt;rules&lt;/code&gt;. They contain a generic template showing what they must look like. In &lt;code&gt;control&lt;/code&gt;, fill in the blanks. In &lt;code&gt;rules&lt;/code&gt;, remove any unwanted and unnecessary code.

The following example illustrates what the &lt;code&gt;control&lt;/code&gt; file for the example application must contain:

&lt;pre&gt;
Source: my-application
Section: user/other 
Priority: optional 
Maintainer: Your Name &lt;your.name@example.org&gt;
Build-Depends: debhelper (&gt;= 4.0.0) 
Standards-Version: 3.6.0

Package: my-application 
Architecture: any
Depends: ${shlibs:Depends}
Description: A simple test application
 A very simple application with a short description.
 Which spans multiple lines actually.
XSBC-Bugtracker: A link to a bugtracker location
XB-Maemo-Icon-26:
 iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABmJLR0QA/wD/AP+g
 vaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1gURDQoYya0JlwAAAU9J 
 REFUSMftlL1KA0EUhb/NZl/ggnHQxsJUxt5CUucVJCCkDfgyKdIGG5/A0s5HEBtJ
 EdDAQGBgmw0YJmMzgXXYza5CtNkDW9zZw5z7c+ZCgwb/Ai3i9sVl/Bq8RIs4LRK1 
 gJDsKvJyNXmJMuYTsMoY1zpgozaABdYArQNPZQ1kfyGU7SpqVwxzAMwABWhgpIwp
 4vWBB+AUWAI3ypjnfEXtPU4bLKx9vErTeCeiRSYF+fTn1j5dp2myE9EiU+DSi3wX 
 ymeqRQAmZ3EcA5E/fgO6BULT8zhOcrwXoJdrXRa2Lgps2y2odAUcBUIXQdz78YyC
 SldAp8b7+bXrIv91qjZBietqCc2DjbAt4b2WxJkyZljVujlwp0U0cPxuLcAIuC+4 
 dKxFlsDJarvdAGP/b6hFnDImYs+uG3hbO2AB3Jbsur63tQM+fFx3bzZocEB8AdV2
 gJBZgKTwAAAAAElFTkSuQmCC
&lt;/pre&gt;

The &lt;code&gt;XSBC-Bugtracker&lt;/code&gt; field contains a link to a bugtracker location. See [[Packaging#Maemo-specific_fields|the documentation on Maemo-specific fields]] for more information.

The &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt; field contains the application icon file (in this case, &lt;code&gt;hello_icon_48x48.png&lt;/code&gt;) encoded in base64. The Application Manager displays this icon next to the package name. To perform this encoding in Linux, use either &lt;code&gt;uuencode&lt;/code&gt; or &lt;code&gt;openssl&lt;/code&gt;; however, more suitable applications may also exist. 

&lt;code&gt;uuencode&lt;/code&gt; can be installed from sharutils package:

 [sbox-FREMANTLE_X86: ~] &gt; fakeroot apt-get install sharutils

The following example encodes an icon file using &lt;code&gt;uuencode&lt;/code&gt; inside Scratchbox:

 [sbox-FREMANTLE_X86: ~] &gt; uuencode -m icon.png icon.png &gt; icon.png.en

In the above example, the result of the encoding is printed into a file named &lt;code&gt;icon.png.en&lt;/code&gt;. Do not forget to put a white space at the beginning of each line containing the icon-encoded text. The white space indicates a multi-line field. The same rule stands for the long package description (A very simple application[...]).

The Application Manager only shows packages in the user section. Thus, the &lt;code&gt;Section:&lt;/code&gt; field in the control file must have the &lt;code&gt;Section: user/&lt;SUBSECTION&gt;&lt;/code&gt; syntax, where &lt;code&gt;&lt;SUBSECTION&gt;&lt;/code&gt; is arbitrary. See section [localhost#sec:making_app_pack_sections 17.2.6] for information on the suggested values.

Usually you do not have to change the &lt;code&gt;rules&lt;/code&gt; file. However, if the new .deb package is empty, check the &quot;install:&quot; section to make sure that the &lt;code&gt;DESTDIR&lt;/code&gt; environment variable is pointing to the where the other packaging scripts are looking for the application to be packaged.

Once the application is properly 'Debianized', building the application is performed easily with the command:

 [sbox-FREMANTLE_X86: ~/my-application-1.0.0] &gt; dpkg-buildpackage -rfakeroot

The system displays some output, including some warnings about &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt;, but that is normal. The parent directory now contains a &lt;code&gt;my-application_1.0.0-0_i386.deb&lt;/code&gt; file - the Debian package. This file can be used to test the application in the SDK. When the source package is uploaded to the autobuilder, an Arm architecture-compatible .deb file will be built to distribute to Maemo devices and install using the Application Manager. You can switch to the &lt;code&gt;FREMANTLE_ARMEL&lt;/code&gt; target in Scratchbox to test the build yourself and ensure that there is nothing PC-specific in it.

To test the package in the SDK, type:

 [sbox-FREMANTLE_X86: ~/my-application-1.0.0] &gt; cd ..
 [sbox-FREMANTLE_X86: ~] &gt; fakeroot dpkg -i my-application_1.0.0-0_i386.deb

Replace 'my-application...' with the actual name of the package. You can install packages in both X86 and ARMEL targets. Ensure that the package architecture matches the Scratchbox target.

For more information about making Debian packages, see [http://www.us.debian.org/doc/maint-guide/ Debian New Maintainers' Guide]. For further information about creating application packages for maemo, see the next section [[#Making Application Packages|Making Application Packages]] and [http://hildon-app-mgr.garage.maemo.org/packaging-stable.html How to make a package for the Hildon Application Manager].

{{ambox
|text=If the application is deploying icons to &lt;code&gt;/usr/share/icons/hicolor&lt;/code&gt;, the &lt;code&gt;gtk-update-icon-cache /usr/share/icons/hicolor&lt;/code&gt; command should be run in the &lt;code&gt;postinst&lt;/code&gt; script to ensure that icons are displayed properly.}}

== Package Building ==

This section explains how to build software packages that the end user can install onto the Internet Tablet using the Application Manager tool in the device.

===Prerequisites ===

This section assumes familiarity with the process of creating a .deb package. For more information on the basics of Debian packaging, see section [[#Creating Debian Packages|Creating Debian Packages]].

Use the &quot;hello-world-app&quot; example package to get started. To install it with &lt;code&gt;apt-get&lt;/code&gt;, use the following command:
 apt-get source hello-world-app

===Application Manager ===

The Application Manager (AM) is an end user friendly graphical front-end to the standard Debian package management infrastructure. When using the Application Manager, apt-get tools are not mandatory for the end user.

The Application Manager uses the same backend tools as Synaptic, Aptitude, or &lt;code&gt;apt-get&lt;/code&gt; (namely &lt;code&gt;libapt-pkg&lt;/code&gt;) in the standard way, without imposing any constraints; for example, packages are installed as root, and can touch the whole system.

The usual way to distribute a package is to put it into a repository and make it accessible to apt.

Either Application Manager or the apt-get tool can be used freely. Changes made to the system via &lt;code&gt;apt-get&lt;/code&gt; or dpkg are picked up by the Application Manager, and vice versa.

=== Packaging ===

Packages made for the Application Manager should follow a few extra rules, if they want to integrate nicely to the device. These rules are related to:

* Text formatting
* Software dependencies
* User sections
* Icons
* Installation/removal policy of the Application Manager
* limited feedback to the user, no controlling terminal
* warning about removing running applications
* utilities to use in the maintainer scripts

These are explained in detail below.

=== Text Formatting ===

All strings coming from the control information of a package are interpreted in UTF-8 when they are shown in the User Interface. If a string is not valid UTF-8, all bytes above 127 are replaced with '?' before display. If your control file is not UTF-8, you will fail a quality assurance test.

===Dependencies ===

This field should now contain all the dependencies for package, such as &lt;code&gt;${shlibs:Depends}&lt;/code&gt;.

===Sections ===

The Application Manager (AM) only displays packages in certain sections to the user in order to hide the hundreds of system packages making up the operating system. The AM is not designed to allow the user to manage the entire system at this point, only a set of third-party applications.

The AM only shows packages in the &quot;user&quot; section. The &lt;code&gt;Section:&lt;/code&gt; field in the control file should be in the following format:

 Section: user/&lt;SUBSECTION&gt;

where SUBSECTION is one of the sections below:

{| class=&quot;wikitable&quot;
|+ Maemo package sections
|-
! Key
! Example English i18n
! Example apps
|-
| &lt;code&gt;user/desktop&lt;/code&gt;
| Desktop
| Home, statusbar and taskbar applets
|-
| &lt;code&gt;user/development&lt;/code&gt;
| Programming
| py2deb
|-
| &lt;code&gt;user/education&lt;/code&gt;
| Education
| Flashcard apps
|-
| &lt;code&gt;user/games&lt;/code&gt;
| Games
| Doom, Duke Nukem 3D
|-
| &lt;code&gt;user/graphics&lt;/code&gt;
| Graphics
| Photo apps, GIMP, Inkscape, fonts
|-
| &lt;code&gt;user/multimedia&lt;/code&gt;
| Multimedia ''or'' Sound &amp; Video
| Canola, mplayer, Kagu, UKMP, MediaBox
|-
| &lt;code&gt;user/navigation&lt;/code&gt;
| (Location &amp;) Navigation
| maemo-mapper, Navit
|-
| &lt;code&gt;user/network&lt;/code&gt;
| Internet &amp; Networking
| Web browsers, Samba clients, OpenAFS, Transmission
|-
| &lt;code&gt;user/office&lt;/code&gt;
| Office
| GPE, Claws, AbiWord
|-
| &lt;code&gt;user/science&lt;/code&gt;
| Science
| gnuplot, Octave
|-
| &lt;code&gt;user/system&lt;/code&gt;
| System
| rotation-support, enhanced kernels, themes
|-
| &lt;code&gt;user/utilities&lt;/code&gt;
| Utilities ''or'' Accessories
| Calculators, terminals, text editors
|}

Thus, if the package is wanted in the Office subsection, the field:
 Section: user/office
should be included in the control information.

===Icons ===

The Application Manager may display an icon next to a package name. Icons are included in the control information of a package as a base64 encoded field named &lt;code&gt;Maemo-Icon-26&lt;/code&gt;.

The image format of the icon can be anything understood by &lt;code&gt;GdkPixbufLoader&lt;/code&gt;, but most commonly the PNG format is used.

The image should be 48x48 pixels with a transparent background.

The hello-world package shows an example.

The way to get these fields into the .deb files is to include them with a &quot;XB-&quot; prefix in the debian/control file. For more information, see the [http://www.debian.org/doc/debian-policy/ch-controlfields.html#s5.7 Debian Policy Manual, section 5.7].

===Installation and Removal Policy ===

The Application Manager has its own rules for automatically installing and removing packages, in addition to the ones specified by the user. These rules are tuned to eliminate most surprises for simple package management operations, but this makes them less useable for complicated things like &quot;apt-get dist-upgrade&quot;. Take these rules into account when designing the package conflicts.

Specifically, the AM never automatically removes a user package.

If removing a package can resolve a conflict caused by installing it, the AM refuses the installation request instead of performing the removal.

When removing a package, all packages that are a direct or indirect dependency of the removed package are considered for removal. Any non-user package automatically installed by the AM to satisfy a dependency and now no longer needes is removed.

Unfortunately, the AM is not very good in reporting conflicts: when the package conflicts with a non-user package, the problem reported by the AM considers the non-user package to be the source of the conflict, rather than any of the user packages that depend on it.

=== Feedback from Maintainer Scripts ===

When the Application Manager runs the maintainer scripts, they have no controlling terminal; their standard input is connected to &lt;code&gt;/dev/null&lt;/code&gt;. The &lt;code&gt;DISPLAY&lt;/code&gt; variable is set correctly.

The Application Manager collects a transcript of the installation/uninstallation process, including the output of maintainer scripts. This output is hidden in the application log which users are not meant to view and understand.

The package creator must ensure that the maintainer scripts do not fail. The best way is to try to execute operations that have a very high chance of succeeding. The simpler they are, the better.

=== Removing or Upgrading Running Applications ===

The Application Manager can run a script provided by the package, before removing or upgrading it. That script can tell the Application Manager to cancel the operation.

This feature is often used to display a warning if the user tries to remove or upgrade an application that is currently running. To perform this test, use the &lt;code&gt;maemo-application-running&lt;/code&gt; utility.

When uninstalling or upgrading a package named &lt;code&gt;PACKAGE&lt;/code&gt;, the Application Manager runs the program named &lt;code&gt;/var/lib/hildon-application-manager/info/PACKAGE.checkrm&lt;/code&gt;, if it exists. If this program exists with code 111, the operation is canceled. In all other cases, including when the program terminates with a signal, the operation is carried out.

Two arguments are available for the *.checkrm program. To remove the package, use the following:

 foobarexampleonly.checkrm remove

To upgrade, use the following, replacing &lt;code&gt;VERSION&lt;/code&gt; with the version information:

 foobarexampleonly.checkrm upgrade VERSION

===Utilities to Use in Maintainer Scripts ===

====maemo-application-running====

 maemo-application-running -x executable-file
 maemo-application-running -d app.desktop

This utility is provided by the package &lt;code&gt;hildon-application-manager-dbg&lt;/code&gt;. It checks whether the application specified on the command line is currently running. If the application is running, it exits with code 0. If it is not running, it exits with code 1. If an error occurs, it exits with code 2.

When using the -x option, the utility checks whether any process is currently executing that file, by looking into &lt;code&gt;/proc/PID/exe&lt;/code&gt;.

When using the -d option, the utility uses the given .desktop file to find the service name of the application und queries D-Bus whether the service is currently registered. If the .desktop file contains no service name, the utility uses the executable file like with the -x option.

====maemo-confirm-text====

 maemo-confirm-text [title] FILE

This utility is provided by the package hildon-application-manager. It displays the contents of FILE in a dialog with &quot;Ok&quot; and &quot;Cancel&quot; buttons. The default title of the dialog is &quot;License agreement&quot;.

If the user clicks &quot;OK&quot;, the utility exits with code 0; if the user clicks &quot;Cancel&quot;, it exits with code 1; and if an error occurs, it exits with code 2.

If a license agreement is not shown in the &lt;code&gt;postinst&lt;/code&gt; script, ensure that even if the user does not agree to the licence terms, the &lt;code&gt;postinst&lt;/code&gt; script does not fail. Instead, configure the application to ask the user to agree to the license agreement again at application startup and refuse to run if the user does not agree.

=== Controlling Installation ===

Application Installer (old name for Application Manager) had a beta stage Single Click Install feature. Application Manager is backwards compatible with it and the old .install files still work, but some new features are available.

The Application Manager offers three kinds of functionality with .install files: adding catalogues, installing packages from remote catalogues and installing packages from a memory card. The .install file follows the &lt;code&gt;GKeyFile&lt;/code&gt; format as described in the [http://library.gnome.org/devel/glib/unstable/glib-Key-value-file-parser.html#glib-Key-value-file-parser.description GKeyFile reference documentation]. A &lt;code&gt;GKeyFile&lt;/code&gt; consists of a number of groups, and each group contains key/value pairs. Each of the previously mentioned three functionalities is initiated by a specifically named group in the .install file.

==== Adding Catalogues ====

Adding catalogues is performed with the &quot;catalogues&quot; group. This group has one similarly named mandatory key, &quot;catalogues&quot;. The &quot;catalogues&quot; key is a list of strings referring to the catalogue groups that describe the catalogues to be added. Each catalogue is considered in turn, and the user is asked whether to add it or not. If it is to be added, and if a matching catalogue is already configured in the Application Manager, the matching catalogue is removed first. If the user declines to add the catalogue, the next catalogue is considered. After asking confirmation for each catalogue, the device asks the user whether to &quot;Refresh the list of applications&quot;. Here is an example:

&lt;pre&gt;
[catalogues]
catalogues = extras; sdk

[extras]
name = maemo Extras catalogue
uri = http://repository.maemo.org/extras
components = free non-free

[sdk]
name = maemo SDK catalogue
uri = http://repository.maemo.org/
components = free non-free
&lt;/pre&gt;

A Group describing a catalogue can contain the following keys:

* &lt;code&gt;name&lt;/code&gt;: The display name of the catalogue as displayed to the user in the &quot;Tool &gt; Application catalogues&quot; dialog. Follow the &lt;code&gt;GKeyFile&lt;/code&gt; conventions to localize this key. If this key is omitted, the catalogue contains an empty name.
* &lt;code&gt;uri&lt;/code&gt;: The URI part of the deb line that is added to sources.list for this catalogue. This key is required for all catalogues except those used with the &quot;card_catalogues&quot; key.
* &lt;code&gt;file_uri&lt;/code&gt;: When using file_uri instead of uri, the URI part of the deb line uses the &quot;file://&quot; method and the file_uri gives the actual pathname, relative to the location of the .install file. This key is required for all catalogues that are used with the &quot;card_catalogues&quot; key.
* &lt;code&gt;dist&lt;/code&gt;: The distribution of the deb line to be added to sources.list for this catalogue. If it is omitted, the catalogue defaults to the distribution corresponding to the IT OS release on the device. The Application Manager remembers to select the distribution automatically. For example, if a backup is made, containing a catalogue with automatic distribution selection, and restored on a different IT OS release, the distribution for the new version is used automatically.
* &lt;code&gt;components&lt;/code&gt;: The components part of the deb line to be added to sources.list for this catalogue. If it is omitted, the components part has no content.
* &lt;code&gt;filter_dist&lt;/code&gt;: Ignored if the distribution corresponding to the IT OS release on the device does not match.

When catalogues are compared, they are considered equal if their &lt;code&gt;uri&lt;/code&gt;, &lt;code&gt;dist&lt;/code&gt; and &lt;code&gt;components&lt;/code&gt; fields are equal.

==== Installing Packages ====

In order to install packages with an .install file, the file must contain an &quot;install&quot; group. The group has one mandatory key, &lt;code&gt;package&lt;/code&gt;, and one optional key, &lt;code&gt;catalogues&lt;/code&gt;. The &lt;code&gt;catalogues&lt;/code&gt; key is handled as follows: each catalogue is considered in turn. The user is asked for confirmation if a catalogue that is not already configured is encountered. Alternatively, if a catalogue is already present but disabled, the user is asked to confirm enabling the catalogue. If the user does not confirm, the processing of the .install file stops and any changes made in the configured catalogues are reverted. After the list of catalogues has been processed, the list of applications is refreshed automatically, and the package is offered to the user for installing. Here is an example:

&lt;pre&gt;
[install]
catalogues = foobar
package = maemofoo

[foobar]
name = Foobar Catalogue
name[en_GB] = Foobar Catalogue
name[de_DE] = Foobar Katalog
uri = http://foobar.com/repository
components = main
&lt;/pre&gt;

==== Installing Packages from Memory Card ====

Installing packages from a memory card is governed by the &lt;code&gt;card_install&lt;/code&gt; group. It has two mandatory keys, &lt;code&gt;packages&lt;/code&gt; and &lt;code&gt;card_catalogues&lt;/code&gt;, and one optional key, &lt;code&gt;permanent_catalogues&lt;/code&gt;. The &lt;code&gt;packages&lt;/code&gt; key lists the names of packages that can be installed from the memory card, using the &lt;code&gt;card_catalogues&lt;/code&gt;. The package is installed in a temporary environment where the usual catalogues are not available. Only the catalogues listed by the &lt;code&gt;card_catalogues&lt;/code&gt; key are configured. All of these catalogues must use &lt;code&gt;file_uri&lt;/code&gt; instead of &lt;code&gt;uri&lt;/code&gt;.

The user gets to select the packages from a list, after which the installation proceeds one package after another. In case the installation of a package fails, an error note is displayed, and the processing stops. After the installation is complete, the optional group &lt;code&gt;permanent_catalogues&lt;/code&gt; is processed ???similarly to adding a catalogue as described above.

Whenever a memory card is inserted that contains a file called .auto.install, that file is processed by the Application Manager. Usually, the .auto.install file contains a &lt;code&gt;card_install&lt;/code&gt; group, of course. For example:

 $ mkdir .repo
 $ cp somewhere/*.deb .repo/
 $ (cd .repo &amp;&amp; apt-ftparchive packages . &gt;Packages)

A matching .install file could look like the following:

&lt;pre&gt;
[card_install]
card_catalogues = repo
packages = app-1; app-2

[repo]
file_uri = .repo
dist = ./
&lt;/pre&gt;

The .repo and the .install files typically go to the root of the memory card. To make the memory card auto-installing, make a copy of the .install file and name it .auto.install.

=== Signing Package ===

In order to sign packages, use debsign tool inside Scratchbox. For more information on using debsign, see the [http://www.penguin-soft.com/penguin/man/1/debsign.html debsign manual page].

==Deploying Packages ==

===Installing Application Packages to SDK ===

Application packages can be installed into the Maemo SDK using the Debian package manager called &lt;code&gt;dpkg&lt;/code&gt; with root permission.
 
 [sbox-FREMANTLE_X86: ~] &gt; fakeroot dpkg -i application_i386.deb

Replace ''application'' with the actual name of the package. You can install packages in both X86 and ARMEL targets. The package architecture must match the Scratchbox target.

===Installing Application Packages to Device ===

You can also use the Debian package installer for installing application packages in Maemo devices. 
 
 BusyBox v1.6.1 (2008-03-06 11:36:58 EET) Built-in shell (ash)
 Enter 'help' for a list of built-in commands.
 
 /home/user # dpkg -i application_armel.deb

For maemo device the package architecture must be always armel.

===Uploading Application Packaged to Extras===

Debian packages can be distributed to end users with the [[Extras|Extras repository]], which is pre-configured on the device. Before a package can be added to Extras, it must first be [[Uploading to Extras-devel|uploaded to Extras-devel]], promoted to [[Extras-testing]] if QA checks succeed, and finally promoted to Extras after successful testing by community testers. The [[Extras repository process definition|current Extras process]] is still under discussion, and may change in the future.

=== Red Pill Mode (This feature has been removed in the latest firmware) ===

The Hildon Application Manager has a special hidden mode that makes it more power-user friendly and gives access to features that are not yet considered ready for general distribution.

==== Activation ====

Go to the application menu by clicking on the Application Menu button (on the top left corner of the screen) -&gt; App manager -&gt; Click on the application manager window title area -&gt; Click &quot;Application catalogues&quot; -&gt;Click &quot;New&quot; 
 Enter &quot;matrix&quot; into the &quot;Web address&quot; field and cancel the dialog by clicking on the area outside the dialog.
Choosing Red pill activates red pill mode. Choosing Blue pill deactivates it.

==== Settings ====

After activating red pill mode, the application manager menu has two additional buttons : &quot;Settings&quot; and &quot;Install from file&quot;.

Settings dialog has the following options:

* ''Clean Apt Cache''
Performs the equivalent of &lt;code&gt;apt-get clean&lt;/code&gt; after every install or update. (This is the behavior for blue pill mode.)
* ''Assume Net Connection''
Downloads without asking for an active IAP. This is useful if a network connection exists, but the device connectivity APIs are not available or do not know about it.
* ''Break Locks''
Breaks locks as required instead of failing. This is the default behavior in blue pill mode so that, if a crash leaves a stale lock behind, users do not lock themselves out.
* ''Show Dependencies''
Adds another tab to the details dialog with some dependencies from the package.
* ''Show All Packages''
Does not filter out packages that are not in the &quot;user&quot; section. Also allows installing packages from any section.
* ''Show Magic System Package''
Includes the &quot;magic:sys&quot; package in the list of packages. The effect of updating this package will resemble &lt;code&gt;apt-get upgrade&lt;/code&gt;. Its exact behavior is not yet defined. This feature may become available in blue-pill mode in future.
*&quot;Include package details in log&quot;
*&quot;Use MMC to download packages&quot;
*&quot;Always check for updates&quot;
*&quot;Ignore packages from wrong domains&quot;
*&quot;Ignore third party packages policy for SSU&quot;
*&quot;Use apt-get algorithms&quot;

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing</title>
    <id>2337</id>
    <revision>
      <id>45943</id>
      <timestamp>2011-12-07T11:07:32Z</timestamp>
      <contributor>
        <ip>68.12.46.146</ip>
      </contributor>
      <comment>Corrected grammar</comment>
      <text xml:space="preserve">Adding software to Maemo is done through &quot;packages&quot;. Packages are discreet archives of applications and additional information that make installing software easier than compiling the software from scratch. To install and manage packages on Maemo devices, Maemo uses the Debian package management system APT, the [[:wikipedia:Advanced Packaging Tool|Advanced Packaging Tool]]. APT is the underlying system which the developer fits their package into. Adding and removing software on Maemo devices is done using the Application Manager, which works with the APT system, making the details of installing packages invisible to the user. You can consider APT as the backend and Application Manager as the frontend. The combination of APT and the Application Manager presents a flexible framework that enables developers to easily create packages and simplify installation of software for the user.  

'''Debian Packages, or debs'''

The APT package management system, developed by Debian, manipulates 'debs'. Debs are simple binary archives which contain the files to be installed, metadata describing the deb, dependencies on other software, and optional installation and removal scripts. The process of creating a deb is fortunately made quite simple by various tools.

This process is described in section [[#Creating Debian Packages|Creating Debian Packages]]. 

'''Package Repositories'''

The package management system makes use of package repositories, which are essentially web or FTP sites that contain packages and make them available for download. Having a package reside in a repository brings significant advantages: the user can easily update packages on their device by downloading new packages from the repository, other developers can use the packages as automatically installable dependencies and the Application Manager can find the packages in the repository using a URL.

For more information on working with repositories, see the [http://www.isotton.com/software/debian/docs/repository-howto/repository-howto.html Debian Repository HOWTO].

'''One-Click-Install'''

Maemo provides the option of creating installation instruction files that enable users to install applications simply by clicking a link on a web site. This is often a very easy process for the user and it is highly recommended that the developer creates these files. The .install files contain the required repository and package names. For more information on the format of these files, see section [[#Controlling_Installation|Controlling Installation]].

== Creating Debian Packages ==

To create a Debian package, the first step is to put all the files (source code, graphics, desktop and service files) in an empty directory called &lt;code&gt;my-application-1.0.0&lt;/code&gt;. The directory name should follow the &lt;code&gt;&lt;package-name&gt;-&lt;app-version&gt;&lt;/code&gt; convention; in other words, the package that is being created for this application is called ''my-application''. See the [http://www.debian.org/doc/maint-guide/ch-first.en.html Debian New Maintainer's Guide] for more information on naming rules.

Go to the source directory: 
 cd my-application-1.0.0

Set full name environment variable:
 export DEBFULLNAME=&quot;Your Name&quot;

Initial Debianization. &lt;code&gt;dh_make&lt;/code&gt; command is available from debhelper package and should be enabled after Scratchbox login:
 dh_make -e your.name@example.org --createorig

Next &lt;code&gt;dh_make&lt;/code&gt; asks a question and prints a summary of the package:
 Type of package: single binary, multiple binary, library, kernel module or cdbs?
  [s/m/l/k/b] s
 
 Maintainer name : Your Name
 Email-Address   : your.name@example.org
 Date            : Fri, 30 Nov 2007 13:20:48 +0200
 Package Name    : my-application
 Version         : 1.0.0
 License         : blank
 Type of Package : Single
 Hit &amp;lt;enter&amp;gt; to confirm:

The &lt;code&gt;dh_make&lt;/code&gt; command creates the &lt;code&gt;debian/&lt;/code&gt; directory containing configuration files. Many of them are templates, like a template for a man page, since Maemo does not ship applications with man pages due to space limitations, many of these files can be removed. The following table lists the files that are required:

{| class=&quot;wikitable&quot;
|+ Required files in &lt;code&gt;debian&lt;/code&gt; directory
|-
! File in ./debian
! Description
|-
| &lt;code&gt;changelog&lt;/code&gt;
| Package's change log
|-
| &lt;code&gt;compat&lt;/code&gt;
| Debian helper compatibily version. Leave it as it is.
|-
| &lt;code&gt;control&lt;/code&gt;
| Describes the packages to be made.
|-
| &lt;code&gt;copyright&lt;/code&gt;
| Copyright text. Fill in the blanks.
|-
| &lt;code&gt;rules&lt;/code&gt;
| A makefile containing the rules to build all kinds of packages such as, for example, source and binary.
|}

The key files in &lt;code&gt;./debian&lt;/code&gt; are &lt;code&gt;control&lt;/code&gt; and &lt;code&gt;rules&lt;/code&gt;. They contain a generic template showing what they must look like. In &lt;code&gt;control&lt;/code&gt;, fill in the blanks. In &lt;code&gt;rules&lt;/code&gt;, remove any unwanted and unnecessary code.

The following example illustrates what the &lt;code&gt;control&lt;/code&gt; file for the example application must contain:

&lt;pre&gt;
Source: my-application
Section: user/other 
Priority: optional 
Maintainer: Your Name &lt;your.name@example.org&gt;
Build-Depends: debhelper (&gt;= 4.0.0) 
Standards-Version: 3.6.0

Package: my-application 
Architecture: any
Depends: ${shlibs:Depends}
Description: A simple test application
 A very simple application with a short description.
 Which spans multiple lines actually.
XSBC-Bugtracker: A link to a bugtracker location
XB-Maemo-Icon-26:
 iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABmJLR0QA/wD/AP+g
 vaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1gURDQoYya0JlwAAAU9J 
 REFUSMftlL1KA0EUhb/NZl/ggnHQxsJUxt5CUucVJCCkDfgyKdIGG5/A0s5HEBtJ
 EdDAQGBgmw0YJmMzgXXYza5CtNkDW9zZw5z7c+ZCgwb/Ai3i9sVl/Bq8RIs4LRK1 
 gJDsKvJyNXmJMuYTsMoY1zpgozaABdYArQNPZQ1kfyGU7SpqVwxzAMwABWhgpIwp
 4vWBB+AUWAI3ypjnfEXtPU4bLKx9vErTeCeiRSYF+fTn1j5dp2myE9EiU+DSi3wX 
 ymeqRQAmZ3EcA5E/fgO6BULT8zhOcrwXoJdrXRa2Lgps2y2odAUcBUIXQdz78YyC
 SldAp8b7+bXrIv91qjZBietqCc2DjbAt4b2WxJkyZljVujlwp0U0cPxuLcAIuC+4 
 dKxFlsDJarvdAGP/b6hFnDImYs+uG3hbO2AB3Jbsur63tQM+fFx3bzZocEB8AdV2
 gJBZgKTwAAAAAElFTkSuQmCC
&lt;/pre&gt;

The &lt;code&gt;XSBC-Bugtracker&lt;/code&gt; field contains a link to a bugtracker location. See [[Packaging#Maemo-specific_fields|the documentation on Maemo-specific fields]] for more information.

The &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt; field contains the application icon file (in this case, &lt;code&gt;hello_icon_48x48.png&lt;/code&gt;) encoded in base64. The Application Manager displays this icon next to the package name. To perform this encoding in Linux, use either &lt;code&gt;uuencode&lt;/code&gt; or &lt;code&gt;openssl&lt;/code&gt;; however, more suitable applications may also exist. 

&lt;code&gt;uuencode&lt;/code&gt; can be installed from sharutils package:

 [sbox-FREMANTLE_X86: ~] &gt; fakeroot apt-get install sharutils

The following example encodes an icon file using &lt;code&gt;uuencode&lt;/code&gt; inside Scratchbox:

 [sbox-FREMANTLE_X86: ~] &gt; uuencode -m icon.png icon.png &gt; icon.png.en

In the above example, the result of the encoding is printed into a file named &lt;code&gt;icon.png.en&lt;/code&gt;. Do not forget to put a white space at the beginning of each line containing the icon-encoded text. The white space indicates a multi-line field. The same rule stands for the long package description (A very simple application[...]).

The Application Manager only shows packages in the user section. Thus, the &lt;code&gt;Section:&lt;/code&gt; field in the control file must have the &lt;code&gt;Section: user/&lt;SUBSECTION&gt;&lt;/code&gt; syntax, where &lt;code&gt;&lt;SUBSECTION&gt;&lt;/code&gt; is arbitrary. See section [localhost#sec:making_app_pack_sections 17.2.6] for information on the suggested values.

Usually you do not have to change the &lt;code&gt;rules&lt;/code&gt; file. However, if the new .deb package is empty, check the &quot;install:&quot; section to make sure that the &lt;code&gt;DESTDIR&lt;/code&gt; environment variable is pointing to the where the other packaging scripts are looking for the application to be packaged.

Once the application is properly 'Debianized', building the application is performed easily with the command:

 [sbox-FREMANTLE_X86: ~/my-application-1.0.0] &gt; dpkg-buildpackage -rfakeroot

The system displays some output, including some warnings about &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt;, but that is normal. The parent directory now contains a &lt;code&gt;my-application_1.0.0-0_i386.deb&lt;/code&gt; file - the Debian package. This file can be used to test the application in the SDK. When the source package is uploaded to the autobuilder, an Arm architecture-compatible .deb file will be built to distribute to Maemo devices and install using the Application Manager. You can switch to the &lt;code&gt;FREMANTLE_ARMEL&lt;/code&gt; target in Scratchbox to test the build yourself and ensure that there is nothing PC-specific in it.

To test the package in the SDK, type:

 [sbox-FREMANTLE_X86: ~/my-application-1.0.0] &gt; cd ..
 [sbox-FREMANTLE_X86: ~] &gt; fakeroot dpkg -i my-application_1.0.0-0_i386.deb

Replace 'my-application...' with the actual name of the package. You can install packages in both X86 and ARMEL targets. Ensure that the package architecture matches the Scratchbox target.

For more information about making Debian packages, see [http://www.us.debian.org/doc/maint-guide/ Debian New Maintainers' Guide]. For further information about creating application packages for maemo, see the next section [[#Making Application Packages|Making Application Packages]] and [http://hildon-app-mgr.garage.maemo.org/packaging-stable.html How to make a package for the Hildon Application Manager].

{{ambox
|text=If the application is deploying icons to &lt;code&gt;/usr/share/icons/hicolor&lt;/code&gt;, the &lt;code&gt;gtk-update-icon-cache /usr/share/icons/hicolor&lt;/code&gt; command should be run in the &lt;code&gt;postinst&lt;/code&gt; script to ensure that icons are displayed properly.}}

== Package Building ==

This section explains how to build software packages that the end user can install onto the Internet Tablet using the Application Manager tool in the device.

===Prerequisites ===

This section assumes familiarity with the process of creating a .deb package. For more information on the basics of Debian packaging, see section [[#Creating Debian Packages|Creating Debian Packages]].

Use the &quot;hello-world-app&quot; example package to get started. To install it with &lt;code&gt;apt-get&lt;/code&gt;, use the following command:
 apt-get source hello-world-app

===Application Manager ===

The Application Manager (AM) is an end user friendly graphical front-end to the standard Debian package management infrastructure. When using the Application Manager, apt-get tools are not mandatory for the end user.

The Application Manager uses the same backend tools as Synaptic, Aptitude, or &lt;code&gt;apt-get&lt;/code&gt; (namely &lt;code&gt;libapt-pkg&lt;/code&gt;) in the standard way, without imposing any constraints; for example, packages are installed as root, and can touch the whole system.

The usual way to distribute a package is to put it into a repository and make it accessible to apt.

Either Application Manager or the apt-get tool can be used freely. Changes made to the system via &lt;code&gt;apt-get&lt;/code&gt; or dpkg are picked up by the Application Manager, and vice versa.

=== Packaging ===

Packages made for the Application Manager should follow a few extra rules, if they want to integrate nicely to the device. These rules are related to:

* Text formatting
* Software dependencies
* User sections
* Icons
* Installation/removal policy of the Application Manager
* limited feedback to the user, no controlling terminal
* warning about removing running applications
* utilities to use in the maintainer scripts

These are explained in detail below.

=== Text Formatting ===

All strings coming from the control information of a package are interpreted in UTF-8 when they are shown in the User Interface. If a string is not valid UTF-8, all bytes above 127 are replaced with '?' before display. If your control file is not UTF-8, you will fail a quality assurance test.

===Dependencies ===

This field should now contain all the dependencies for package, such as &lt;code&gt;${shlibs:Depends}&lt;/code&gt;.

===Sections ===

The Application Manager (AM) only displays packages in certain sections to the user in order to hide the hundreds of system packages making up the operating system. The AM is not designed to allow the user to manage the entire system at this point, only a set of third-party applications.

The AM only shows packages in the &quot;user&quot; section. The &lt;code&gt;Section:&lt;/code&gt; field in the control file should be in the following format:

 Section: user/&lt;SUBSECTION&gt;

where SUBSECTION is one of the sections below:

{| class=&quot;wikitable&quot;
|+ Maemo package sections
|-
! Key
! Example English i18n
! Example apps
|-
| &lt;code&gt;user/desktop&lt;/code&gt;
| Desktop
| Home, statusbar and taskbar applets
|-
| &lt;code&gt;user/development&lt;/code&gt;
| Programming
| py2deb
|-
| &lt;code&gt;user/education&lt;/code&gt;
| Education
| Flashcard apps
|-
| &lt;code&gt;user/games&lt;/code&gt;
| Games
| Doom, Duke Nukem 3D
|-
| &lt;code&gt;user/graphics&lt;/code&gt;
| Graphics
| Photo apps, GIMP, Inkscape, fonts
|-
| &lt;code&gt;user/multimedia&lt;/code&gt;
| Multimedia ''or'' Sound &amp; Video
| Canola, mplayer, Kagu, UKMP, MediaBox
|-
| &lt;code&gt;user/navigation&lt;/code&gt;
| (Location &amp;) Navigation
| maemo-mapper, Navit
|-
| &lt;code&gt;user/network&lt;/code&gt;
| Internet &amp; Networking
| Web browsers, Samba clients, OpenAFS, Transmission
|-
| &lt;code&gt;user/office&lt;/code&gt;
| Office
| GPE, Claws, AbiWord
|-
| &lt;code&gt;user/science&lt;/code&gt;
| Science
| gnuplot, Octave
|-
| &lt;code&gt;user/system&lt;/code&gt;
| System
| rotation-support, enhanced kernels, themes
|-
| &lt;code&gt;user/utilities&lt;/code&gt;
| Utilities ''or'' Accessories
| Calculators, terminals, text editors
|}

Thus, if the package is wanted in the Office subsection, the field:
 Section: user/office
should be included in the control information.

===Icons ===

The Application Manager may display an icon next to a package name. Icons are included in the control information of a package as a base64 encoded field named &lt;code&gt;Maemo-Icon-26&lt;/code&gt;.

The image format of the icon can be anything understood by &lt;code&gt;GdkPixbufLoader&lt;/code&gt;, but most commonly the PNG format is used.

The image should be 48x48 pixels with a transparent background.

The hello-world package shows an example.

The way to get these fields into the .deb files is to include them with a &quot;XB-&quot; prefix in the debian/control file. For more information, see the [http://www.debian.org/doc/debian-policy/ch-controlfields.html#s5.7 Debian Policy Manual, section 5.7].

===Installation and Removal Policy ===

The Application Manager has its own rules for automatically installing and removing packages, in addition to the ones specified by the user. These rules are tuned to eliminate most surprises for simple package management operations, but this makes them less useable for complicated things like &quot;apt-get dist-upgrade&quot;. Take these rules into account when designing the package conflicts.

Specifically, the AM never automatically removes a user package.

If removing a package can resolve a conflict caused by installing it, the AM refuses the installation request instead of performing the removal.

When removing a package, all packages that are a direct or indirect dependency of the removed package are considered for removal. Any non-user package automatically installed by the AM to satisfy a dependency and now no longer needes is removed.

Unfortunately, the AM is not very good in reporting conflicts: when the package conflicts with a non-user package, the problem reported by the AM considers the non-user package to be the source of the conflict, rather than any of the user packages that depend on it.

=== Feedback from Maintainer Scripts ===

When the Application Manager runs the maintainer scripts, they have no controlling terminal; their standard input is connected to &lt;code&gt;/dev/null&lt;/code&gt;. The &lt;code&gt;DISPLAY&lt;/code&gt; variable is set correctly.

The Application Manager collects a transcript of the installation/uninstallation process, including the output of maintainer scripts. This output is hidden in the application log which users are not meant to view and understand.

The package creator must ensure that the maintainer scripts do not fail. The best way is to try to execute operations that have a very high chance of succeeding. The simpler they are, the better.

=== Removing or Upgrading Running Applications ===

The Application Manager can run a script provided by the package, before removing or upgrading it. That script can tell the Application Manager to cancel the operation.

This feature is often used to display a warning if the user tries to remove or upgrade an application that is currently running. To perform this test, use the &lt;code&gt;maemo-application-running&lt;/code&gt; utility.

When uninstalling or upgrading a package named &lt;code&gt;PACKAGE&lt;/code&gt;, the Application Manager runs the program named &lt;code&gt;/var/lib/hildon-application-manager/info/PACKAGE.checkrm&lt;/code&gt;, if it exists. If this program exists with code 111, the operation is canceled. In all other cases, including when the program terminates with a signal, the operation is carried out.

Two arguments are available for the *.checkrm program. To remove the package, use the following:

 foobarexampleonly.checkrm remove

To upgrade, use the following, replacing &lt;code&gt;VERSION&lt;/code&gt; with the version information:

 foobarexampleonly.checkrm upgrade VERSION

===Utilities to Use in Maintainer Scripts ===

====maemo-application-running====

 maemo-application-running -x executable-file
 maemo-application-running -d app.desktop

This utility is provided by the package &lt;code&gt;hildon-application-manager-dbg&lt;/code&gt;. It checks whether the application specified on the command line is currently running. If the application is running, it exits with code 0. If it is not running, it exits with code 1. If an error occurs, it exits with code 2.

When using the -x option, the utility checks whether any process is currently executing that file, by looking into &lt;code&gt;/proc/PID/exe&lt;/code&gt;.

When using the -d option, the utility uses the given .desktop file to find the service name of the application und queries D-Bus whether the service is currently registered. If the .desktop file contains no service name, the utility uses the executable file like with the -x option.

====maemo-confirm-text====

 maemo-confirm-text [title] FILE

This utility is provided by the package hildon-application-manager. It displays the contents of FILE in a dialog with &quot;Ok&quot; and &quot;Cancel&quot; buttons. The default title of the dialog is &quot;License agreement&quot;.

If the user clicks &quot;OK&quot;, the utility exits with code 0; if the user clicks &quot;Cancel&quot;, it exits with code 1; and if an error occurs, it exits with code 2.

If a license agreement is not shown in the &lt;code&gt;postinst&lt;/code&gt; script, ensure that even if the user does not agree to the licence terms, the &lt;code&gt;postinst&lt;/code&gt; script does not fail. Instead, configure the application to ask the user to agree to the license agreement again at application startup and refuse to run if the user does not agree.

=== Controlling Installation ===

Application Installer (old name for Application Manager) had a beta stage Single Click Install feature. Application Manager is backwards compatible with it and the old .install files still work, but some new features are available.

The Application Manager offers three kinds of functionality with .install files: adding catalogues, installing packages from remote catalogues and installing packages from a memory card. The .install file follows the &lt;code&gt;GKeyFile&lt;/code&gt; format as described in the [http://library.gnome.org/devel/glib/unstable/glib-Key-value-file-parser.html#glib-Key-value-file-parser.description GKeyFile reference documentation]. A &lt;code&gt;GKeyFile&lt;/code&gt; consists of a number of groups, and each group contains key/value pairs. Each of the previously mentioned three functionalities is initiated by a specifically named group in the .install file.

==== Adding Catalogues ====

Adding catalogues is performed with the &quot;catalogues&quot; group. This group has one similarly named mandatory key, &quot;catalogues&quot;. The &quot;catalogues&quot; key is a list of strings referring to the catalogue groups that describe the catalogues to be added. Each catalogue is considered in turn, and the user is asked whether to add it or not. If it is to be added, and if a matching catalogue is already configured in the Application Manager, the matching catalogue is removed first. If the user declines to add the catalogue, the next catalogue is considered. After asking confirmation for each catalogue, the device asks the user whether to &quot;Refresh the list of applications&quot;. Here is an example:

&lt;pre&gt;
[catalogues]
catalogues = extras; sdk

[extras]
name = maemo Extras catalogue
uri = http://repository.maemo.org/extras
components = free non-free

[sdk]
name = maemo SDK catalogue
uri = http://repository.maemo.org/
components = free non-free
&lt;/pre&gt;

A Group describing a catalogue can contain the following keys:

* &lt;code&gt;name&lt;/code&gt;: The display name of the catalogue as displayed to the user in the &quot;Tool &gt; Application catalogues&quot; dialog. Follow the &lt;code&gt;GKeyFile&lt;/code&gt; conventions to localize this key. If this key is omitted, the catalogue contains an empty name.
* &lt;code&gt;uri&lt;/code&gt;: The URI part of the deb line that is added to sources.list for this catalogue. This key is required for all catalogues except those used with the &quot;card_catalogues&quot; key.
* &lt;code&gt;file_uri&lt;/code&gt;: When using file_uri instead of uri, the URI part of the deb line uses the &quot;file://&quot; method and the file_uri gives the actual pathname, relative to the location of the .install file. This key is required for all catalogues that are used with the &quot;card_catalogues&quot; key.
* &lt;code&gt;dist&lt;/code&gt;: The distribution of the deb line to be added to sources.list for this catalogue. If it is omitted, the catalogue defaults to the distribution corresponding to the IT OS release on the device. The Application Manager remembers to select the distribution automatically. For example, if a backup is made, containing a catalogue with automatic distribution selection, and restored on a different IT OS release, the distribution for the new version is used automatically.
* &lt;code&gt;components&lt;/code&gt;: The components part of the deb line to be added to sources.list for this catalogue. If it is omitted, the components part has no content.
* &lt;code&gt;filter_dist&lt;/code&gt;: Ignored if the distribution corresponding to the IT OS release on the device does not match.

When catalogues are compared, they are considered equal if their &lt;code&gt;uri&lt;/code&gt;, &lt;code&gt;dist&lt;/code&gt; and &lt;code&gt;components&lt;/code&gt; fields are equal.

==== Installing Packages ====

In order to install packages with an .install file, the file must contain an &quot;install&quot; group. The group has one mandatory key, &lt;code&gt;package&lt;/code&gt;, and one optional key, &lt;code&gt;catalogues&lt;/code&gt;. The &lt;code&gt;catalogues&lt;/code&gt; key is handled as follows: each catalogue is considered in turn. The user is asked for confirmation if a catalogue that is not already configured is encountered. Alternatively, if a catalogue is already present but disabled, the user is asked to confirm enabling the catalogue. If the user does not confirm, the processing of the .install file stops and any changes made in the configured catalogues are reverted. After the list of catalogues has been processed, the list of applications is refreshed automatically, and the package is offered to the user for installing. Here is an example:

&lt;pre&gt;
[install]
catalogues = foobar
package = maemofoo

[foobar]
name = Foobar Catalogue
name[en_GB] = Foobar Catalogue
name[de_DE] = Foobar Katalog
uri = http://foobar.com/repository
components = main
&lt;/pre&gt;

==== Installing Packages from Memory Card ====

Installing packages from a memory card is governed by the &lt;code&gt;card_install&lt;/code&gt; group. It has two mandatory keys, &lt;code&gt;packages&lt;/code&gt; and &lt;code&gt;card_catalogues&lt;/code&gt;, and one optional key, &lt;code&gt;permanent_catalogues&lt;/code&gt;. The &lt;code&gt;packages&lt;/code&gt; key lists the names of packages that can be installed from the memory card, using the &lt;code&gt;card_catalogues&lt;/code&gt;. The package is installed in a temporary environment where the usual catalogues are not available. Only the catalogues listed by the &lt;code&gt;card_catalogues&lt;/code&gt; key are configured. All of these catalogues must use &lt;code&gt;file_uri&lt;/code&gt; instead of &lt;code&gt;uri&lt;/code&gt;.

The user gets to select the packages from a list, after which the installation proceeds one package after another. In case the installation of a package fails, an error note is displayed, and the processing stops. After the installation is complete, the optional group &lt;code&gt;permanent_catalogues&lt;/code&gt; is processed ???similarly to adding a catalogue as described above.

Whenever a memory card is inserted that contains a file called .auto.install, that file is processed by the Application Manager. Usually, the .auto.install file contains a &lt;code&gt;card_install&lt;/code&gt; group, of course. For example:

 $ mkdir .repo
 $ cp somewhere/*.deb .repo/
 $ (cd .repo &amp;&amp; apt-ftparchive packages . &gt;Packages)

A matching .install file could look like the following:

&lt;pre&gt;
[card_install]
card_catalogues = repo
packages = app-1; app-2

[repo]
file_uri = .repo
dist = ./
&lt;/pre&gt;

The .repo and the .install files typically go to the root of the memory card. To make the memory card auto-installing, make a copy of the .install file and name it .auto.install.

=== Signing Package ===

In order to sign packages, use debsign tool inside Scratchbox. For more information on using debsign, see the [http://www.penguin-soft.com/penguin/man/1/debsign.html debsign manual page].

==Deploying Packages ==

===Installing Application Packages to SDK ===

Application packages can be installed into the Maemo SDK using the Debian package manager called &lt;code&gt;dpkg&lt;/code&gt; with root permission.
 
 [sbox-FREMANTLE_X86: ~] &gt; fakeroot dpkg -i application_i386.deb

Replace ''application'' with the actual name of the package. You can install packages in both X86 and ARMEL targets. The package architecture must match the Scratchbox target.

===Installing Application Packages to Device ===

You can also use the Debian package installer for installing application packages in Maemo devices. 
 
 BusyBox v1.6.1 (2008-03-06 11:36:58 EET) Built-in shell (ash)
 Enter 'help' for a list of built-in commands.
 
 /home/user # dpkg -i application_armel.deb

For maemo device the package architecture must be always armel.

===Uploading Application Packaged to Extras===

Debian packages can be distributed to end users with the [[Extras|Extras repository]], which is pre-configured on the device. Before a package can be added to Extras, it must first be [[Uploading to Extras-devel|uploaded to Extras-devel]], promoted to [[Extras-testing]] if QA checks succeed, and finally promoted to Extras after successful testing by community testers. The [[Extras repository process definition|current Extras process]] is still under discussion, and may change in the future.

=== Red Pill Mode (This feature has been removed in the latest firmware) ===

The Hildon Application Manager has a special hidden mode that makes it more power-user friendly and gives access to features that are not yet considered ready for general distribution.

==== Activation ====

Go to the application menu by clicking on the Application Menu button (on the top left corner of the screen) -&gt; App manager -&gt; Click on the application manager window title area -&gt; Click &quot;Application catalogues&quot; -&gt;Click &quot;New&quot; 
 Enter &quot;matrix&quot; into the &quot;Web address&quot; field and cancel the dialog by clicking on the area outside the dialog.
Choosing Red pill activates red pill mode. Choosing Blue pill deactivates it.

==== Settings ====

After activating red pill mode, the application manager menu has two additional buttons : &quot;Settings&quot; and &quot;Install from file&quot;.

Settings dialog has the following options:

* ''Clean Apt Cache''
Performs the equivalent of &lt;code&gt;apt-get clean&lt;/code&gt; after every install or update. (This is the behavior for blue pill mode.)
* ''Assume Net Connection''
Downloads without asking for an active IAP. This is useful if a network connection exists, but the device connectivity APIs are not available or do not know about it.
* ''Break Locks''
Breaks locks as required instead of failing. This is the default behavior in blue pill mode so that, if a crash leaves a stale lock behind, users do not lock themselves out.
* ''Show Dependencies''
Adds another tab to the details dialog with some dependencies from the package.
* ''Show All Packages''
Does not filter out packages that are not in the &quot;user&quot; section. Also allows installing packages from any section.
* ''Show Magic System Package''
Includes the &quot;magic:sys&quot; package in the list of packages. The effect of updating this package will resemble &lt;code&gt;apt-get upgrade&lt;/code&gt;. Its exact behavior is not yet defined. This feature may become available in blue-pill mode in future.
*&quot;Include package details in log&quot;
*&quot;Use MMC to download packages&quot;
*&quot;Always check for updates&quot;
*&quot;Ignore packages from wrong domains&quot;
*&quot;Ignore third party packages policy for SSU&quot;
*&quot;Use apt-get algorithms&quot;

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing/Installing under opt and MyDocs</title>
    <id>2400</id>
    <revision>
      <id>41785</id>
      <timestamp>2011-02-11T15:36:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>add link</comment>
      <text xml:space="preserve">The N900 has about 100 MB of free space in the root file system partition. This is not very much and would fill up quite quickly when installing additional applications. As a workaround, the &lt;code&gt;/opt&lt;/code&gt; directory has been linked to a different partition with more space (about 1 GB) and &lt;code&gt;/home/user/MyDocs&lt;/code&gt; is also available in certain cases, with even more space (about 25 GB). Developers are encouraged to make good use of them, specially for applications requiring more than 500 KB, including dependencies.

== /opt as a good alternative ==

The &lt;code&gt;/opt&lt;/code&gt; directory is on an ext3 partition that is permanently mounted. Users cannot mess with it by accident. Of course, not everything needs to be moved to &lt;code&gt;/opt&lt;/code&gt;: configuration files are best left in &lt;code&gt;/etc&lt;/code&gt;, for example, and there is no point in moving small files like the various &lt;code&gt;*.desktop&lt;/code&gt; and &lt;code&gt;*.service&lt;/code&gt; files (except for the fact that automake's &quot;&lt;code&gt;configure --prefix=/opt&lt;/code&gt;&quot; moves them there whether you want to or not). 

The &lt;code&gt;maemo-optify&lt;/code&gt; tool helps developers to prepare Debian packages that use &lt;code&gt;/opt&lt;/code&gt;. This tool moves selected files inside the package to locations under &lt;code&gt;/opt&lt;/code&gt;, and will symbolically link from the original location to the new place of the file. It is available on [http://gitorious.org/maemo-af/maemo-optify gitorious] as well as in [http://maemo.org/packages/view/maemo-optify/ Extras-devel].

The [[Uploading_to_Extras-devel#Autobuilder_special_considerations|Autobuilder]] supports automatic optification of submitted packages via &lt;code&gt;maemo-optify&lt;/code&gt;. It is triggered by the file &quot;&lt;code&gt;debian/optify&lt;/code&gt;&quot;, as described in the [http://gitorious.org/maemo-af/maemo-optify/blobs/master/README README].

== Considering /home/user/MyDocs ==

The [[MyDocs_folder|&lt;code&gt;/home/user/MyDocs&lt;/code&gt;]] directory is another candidate for large collections of data files included in applications such as game graphics or maps. Using &lt;code&gt;/opt&lt;/code&gt; is mostly transparent to package maintainers and end-users, but &lt;code&gt;/home/user/MyDocs&lt;/code&gt; needs more careful consideration.

The &lt;code&gt;/home/user/MyDocs&lt;/code&gt; partition uses VFAT as its filesystem (which has some limitations compared to ext3) and it is removable: it will be unmounted and exported over USB when the user plugs in the cable. Also, &lt;code&gt;/home/user/MyDocs&lt;/code&gt; is visible in the File manager. This all means:

* Be aware that VFAT is not really a POSIX filesystem. Things like symbolic links, permission bits, and so on, will not work as nicely as they do on a real POSIX filesystem.
* Be prepared that your files are not there at all while the partition is unmounted. Do not prevent the partition from being unmounted because you keep some of the files open.
* User might see your files, can get confused and try to delete or rename them.

In summary, you cannot really put programs, libraries or theme graphics into &lt;code&gt;/home/user/MyDocs&lt;/code&gt;. Instead, use &lt;code&gt;/opt&lt;/code&gt; for these.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Porting Software</title>
    <id>2322</id>
    <revision>
      <id>30720</id>
      <timestamp>2010-03-08T13:11:18Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <comment>Add shameless plug for Hildon-Extras</comment>
      <text xml:space="preserve">*[[{{PAGENAME}}/Introduction| Introduction]]
*[[{{PAGENAME}}/Redesigning From Maemo 4 to Maemo 5|Redesigning From Maemo 4 to Maemo 5]]
*[[{{PAGENAME}}/Porting MaemoPad|Porting MaemoPad from Diablo to Fremantle]]
*[[{{PAGENAME}}/Migration|Migration to Hildon 2.2]]
*[[{{PAGENAME}}/Porting_Existing_GTK%2B_Application_to_Maemo_5|Porting Existing GTK+2 Application to Maemo 5]]
*[[{{PAGENAME}}/Scaling_Fixed_Size_Windows|Scaling Fixed-size Windows]]
*[[{{PAGENAME}}/Adapting_UI_Inputs|Adapting UI Inputs for a limited keyboard]]

===Replacement widgets/dialogs===

Some stock GTK+ widgets and dialogs are not suited for a mobile use-case. The [[Hildon-Extras]] project aims to provide community-provided replacements for these widgets. If you are porting an existing application, please consider using Hildon-Extras as drop-in replacement for some UI elements.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Porting Software/Adapting UI Inputs</title>
    <id>3471</id>
    <revision>
      <id>38370</id>
      <timestamp>2010-09-08T09:51:05Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* N900 Special Considerations */ links</comment>
      <text xml:space="preserve">==Mobile Device Limitations==

The Internet Tablets all have limited inputs compared to desktop computers. Some don't have a keyboard, and even those that do provide only a subset of the 101+ keys typical of a PC. Thus the maintainer may need to do some work to adapt the user interface inputs to something more convenient on a handheld device.

==N900 Special Considerations==

The [[Open development/Maemo roadmap/Fremantle|Maemo 5]] device, [[Nokia N900|N900]], provides a keyboard with three rows of keys. Applications that require only mouse and text input may work as-ported, but any app that uses shortcuts or special controls mapped to the keyboard (ie games) will need extra attention.

Some important things to remember:
* The '''Enter''' key on the N900 sends the &lt;code&gt;KP_ENTER&lt;/code&gt; signal, not the &lt;code&gt;ENTER&lt;/code&gt; signal.
* Numbers have to be entered using the '''Fn''' key modifier: they don't work well (or at all) as control keys. Depending on how text input is read, they may also not work for text input.
* The keyboard layout is locale-specific. ''You cannot rely on any keys being in a given place, or even existing at all, on every N900!''

==The Keyboard Locale Problem==

The localization of N900 keyboards is particularly problematic for apps that use the arrow keys, because up and down arrow keys require a multi-stroke input on French, Finnish and possibly other localizations. This has created a serious problem for maintainers, who have no assurance that all their users will have the same keys available to them. A [http://bugs.maemo.org/show_bug.cgi?id=7695 bug report] has been submitted to request a painless and safe workaround, but no standard solution has been offered.

===Solution 1: Key Mapping UI===

There are a number of ways to get around this limitation. Providing the user a GUI option to remap the controls is ideal, but it may represent a significant amount of extra work for the developer. If that approach is taken, be aware that a menu-driven UI that requires arrow keys will not be operable on the affected devices, so make it mouse-driven.

===Solution 2: The QWERTY Switch===

Another approach that may be appropriate for apps that require very little or no text input (because the user is going to expect the keys to enter the same text as always) is to change the locale of the user's keyboard for the duration of program execution. Special care should be taken to not create side-effects if this is done. In particular, be sure to:

# Restore the user's original layout on exit
# Restore the user's original layout when they switch away from the app

The first point can be handled by wrapping the app with a script that makes the necessary changes. To handle the second case, the app itself may need to be modified.

Here is an existing &lt;strike&gt;dirty hack&lt;/strike&gt; solution (as implemented in uqm) that handles both case 1 and case 2. It uses gconftool-2, which modifies the linux equivalent of the Windows registry, a trick borrowed from the wrapper script for Duke Nukem. The patch has been commented to describe the important parts.

'''N.b.''' This doesn't restore properly custom user layouts set with setxkbmap, and might be improved by using that utility. Please update this portion of the wiki if you adapt this method to work properly with custom user layouts.

&lt;source lang=&quot;diff&quot;&gt;
Maemo-specific patch to work around the Nokia design flaw that left large portions of Europe without up and down arrow keys.
-- Flandry &lt;davidfalkayn@gmail.com&gt;  20100114
--- src/uqm.c   2009-11-07 09:23:35.624611920 -0500
+++ src/uqm.c   2010-01-14 22:12:54.972781312 -0500
   TFB_InitInput (TFB_INPUTDRIVER_SDL, 0);
   // Program initiation completed successfully
+  // MAEMO: Save the user's native keyboard layout and switch to known arrow-key compliant one
+  system(&quot;/usr/bin/gconftool-2 -g /apps/osso/inputmethod/int_kb_layout &gt; /home/user/.uqm/int_kb_layout&quot;);
+  system(&quot;/usr/bin/gconftool-2 -s /apps/osso/inputmethod/int_kb_layout us -t string&quot;);
   // Start main loop
   StartThread (Starcon2Main, NULL, 1024, &quot;Starcon2Main&quot;);
&lt;/source&gt;

This makes two system calls to gconftool-2. The first saves the user's current layout into a file in the app configuration directory. (Be sure to create the user's app configuration directory before this call!) Instead of saving the original value to a file, you might use a different C system call function to enable storing the value in a variable, or read the value directly. The important part is to store initial state.

&lt;source lang=&quot;diff&quot;&gt; 
@@ -471,6 +478,11 @@
               mem_uninit ();
       } // End program
+  // MAEMO: Reset the user's keyboard layout based on the value recorded at the start
+  system(&quot;/usr/bin/gconftool-2 -s /apps/osso/inputmethod/int_kb_layout $(cat /home/user/.uqm/int_kb_layout) -t string&quot;);
&lt;/source&gt;

This undoes the switch with an additional system call to gconftool-2 that uses the value stored at the beginning.

&lt;source lang=&quot;diff&quot;&gt;
--- src/libs/graphics/sdl/sdl_common.c  2009-11-07 10:23:58.974265870 -0500
+++ src/libs/graphics/sdl/sdl_common.c  2010-01-14 22:13:36.531416322 -0500
    if (Event.active.state &amp; SDL_APPINPUTFOCUS) {
       GameActive = Event.active.gain;
+      // Switch to english or user's native keyboard layout when gaining/loosing focus
+      if (!GameActive)
+         system(&quot;/usr/bin/gconftool-2 -s /apps/osso/inputmethod/int_kb_layout $(cat /home/user/.uqm/int_kb_layout) -t string&quot;);
+      else
+         system(&quot;/usr/bin/gconftool-2 -s /apps/osso/inputmethod/int_kb_layout us -t string&quot;);
    }
&lt;/source&gt;

The &lt;code&gt;SDL_APPINPUTFOCUS&lt;/code&gt; active state changes when an SDL app window is pushed to a thumbnail by the task switcher. When that event is detected, the user's original keyboard layout is restored, and then the qwerty (''us'') layout is restored when the app regains focus.

==Documenting the UI==

By using this workaround, it is possible to publish a keyboard map for your app that is universal, which greatly improves the user-friendliness of the app.

[[Image:Uqm-keymap.jpg|frame|center|alt=Photo of N900 keyboard with UQM keymap|The UQM keymap]]

Here is a template to use for your own app keymap. Painting over the keys with GIMP works well.

[[Image:N900_keyboard_keymap_template.png|frame|center|alt=Photo of N900 keyboard||N900 keyboard template‎]]

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Porting Software/Introduction</title>
    <id>2314</id>
    <revision>
      <id>37882</id>
      <timestamp>2010-08-18T08:54:13Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>tidy</comment>
      <text xml:space="preserve">The following code examples are used in this chapter:

* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-sliders/ maemo-sliders]
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemopad/ MaemoPad]
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/hildon-examples/ hildon-examples]

Much effort has been made in the design of Maemo platform to allow for easy porting of regular GNU/Linux desktop software to the mobile Maemo environment. An earlier chapter in this guide explained the basic tools that ease cross-compilation and help coping with the GNU autotools. This chapter gives pointers to the relevant guides focusing on the differences in the application programming and user interfaces. 

== Command Line Programs ==

In most cases, porting software with no user interface is trivial and straightforward. First, the source code of a program is unpacked to the home directory of a Scratchbox user. Second, inside the ARMEL target &lt;code&gt;configure&lt;/code&gt; and &lt;code&gt;make&lt;/code&gt; are run. Then the compiled program can be tested on the device. Finally the software needs to be packaged so it can be distributed.

== Programs with Graphical User Interface ==

Porting of applications which use GTK+ starts the same way as described above. In addition, the user interface needs to be re-factored to use Hildon instead of directly using GTK+, this process is often called &quot;hildonization&quot;. If the application uses any components not available in the Maemo SDK, these must be also ported by the developer. In short, the developer is responsible for all library dependencies needed that are not already in the SDK.

Section [[Documentation/Maemo 5 Developer Guide/Porting Software/Porting Existing GTK+ Application to Maemo 5|Porting Existing GTK+ Application to Maemo 5]] goes into the necessary details of porting an existing GTK+ application to maemo environment.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Porting Software/Migration</title>
    <id>2138</id>
    <revision>
      <id>37886</id>
      <timestamp>2010-08-18T09:31:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>reformat images, add __FORCETOC__</comment>
      <text xml:space="preserve">Because Hildon 2.2 is a big step up from previous versions, many approaches in the development of your program's graphical user interface may need to be migrated to this new interface type.

__FORCETOC__

== Menus ==

&lt;code&gt;HildonAppMenu&lt;/code&gt; represents a big difference from the normal menus. If your application is to be finger-friendly, a view specific menu, instead of application menu, is mandatory.

The Maemo 4 application menu typically contains most or the full set of functionality of the application, organized in hierarchical menus.

In Maemo 5, there is a strict maximum limit 10 items in a view menu, and there is no menu hierarchy.

The Maemo 5 View menus are not application menus, in the sense that a view menu only contains commands relevant to that particular view. The only exception to this is the Root view menu, which additionally contains menu item(s) for application settings.

Because the view menu also uses buttons, you can easily add them with the callback functions that the original menu items had.

For example, consider an advanced text editing program. The original menu bar had the following menus:

'''Example 10.1. Menu example'''

&lt;pre&gt;
File
    \ New
    \ Open
    \ Save
    \ Save As
    \ Quit
Edit
    \ Copy
    \ Paste
    \ Cut
    \ Indent Type
        \ Tabs
        \ Spaces
    \ Preferences
View
    \ Zoom In
    \ Zoom Out
    \ Normal Size
    \ Highlight
        \ C
        \ Python
        \ JAVA
Help
    \ Contents
    \ About
&lt;/pre&gt;

Guidelines:
* In general, commands are specific to their view
* The initial view (root view) is the only access point to application settings
* Additional menu commands can be made accessible via dialogs opened from the view menu, if those commands cannot be presented directly in the UI or simply removed.

A text editor does not need subviews, so more or less all commands need to fit in a single view. See [[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines/Redesigning From Maemo 4 to Maemo 5|Redesigning From Maemo 4 to Maemo 5]] for details about sub view redesign.

Changes:
* File menu commands: keep &quot;New&quot;, &quot;Open&quot; and &quot;Save&quot;. Remove &quot;Save as&quot; and &quot;Quit&quot;. The &quot;Save&quot; command can function as &quot;Save as&quot; in cases where the source file is read only or the folder is no longer accessible.
** NOTE: the document should be automatically saved (and re-opened) whenever the application is closed (or re-opened). There is no need to show any confirmation notes for this process.
* Edit menu commands: remove &quot;Cut/Copy/Paste&quot;, those should be used with keyboard shortcuts. Put all the rest inside &quot;Preferences&quot; dialog and rename it to &quot;Settings&quot;
* View menu commands: &quot;Zoom&quot; in a text editor is not very useful so remove it (for changing the font size, simply HW +/- keys would be enough). Put &quot;Highlight mode&quot; in to &quot;Settings&quot;.
* Help menu commands: Remove help. It's not part of the Hildon 2.2 UI Style.

The following example shows the implementation of the menu following the above decisions. The first figure below shows the final result of the app menu. The other showd the dialog activated by the menu command &quot;Settings&quot;.

[[Image:example-migrating-menu1.png|frame|center|alt=Screenshot of a HildonAppMenu|HildonAppMenu example]]
 

[[Image:example-migrating-menu-view.png|frame|center|alt=Screenshot of the settings dialog|Settings dialog example]] 


'''Example 10.2. Migrating a menu'''

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon/hildon.h&gt;
#include &lt;libintl.h&gt;

static void
menu_settings_cb (GtkButton *widget, gpointer data)
{
   /* Code to set show settings dialog... */
   g_assert(data);
   GtkDialog *dialog = GTK_DIALOG(
      gtk_dialog_new_with_buttons(&quot;Settings&quot;,
                                  GTK_WINDOW(data),
                                  GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
                                  dgettext(&quot;hildon-libs&quot;, &quot;wdgt_bd_save&quot;),
                                  GTK_RESPONSE_OK,
                                  NULL));
   gint response = 0;
   GtkSizeGroup *titlegroup = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
   GtkSizeGroup *valuegroup = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);

   /* Syntax highlight */
   GtkWidget *syntax_selector = hildon_touch_selector_new_text ();
   hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (syntax_selector), &quot;C&quot;);
   hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (syntax_selector), &quot;JAVA&quot;);
   hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (syntax_selector), &quot;Python&quot;);
   GtkWidget *syntax_picker = hildon_picker_button_new (HILDON_SIZE_THUMB_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
                                                        HILDON_BUTTON_ARRANGEMENT_HORIZONTAL);
   hildon_button_set_title (HILDON_BUTTON (syntax_picker), &quot;Syntax highlight&quot;);
   hildon_picker_button_set_selector (HILDON_PICKER_BUTTON(syntax_picker),
                                      HILDON_TOUCH_SELECTOR(syntax_selector));
   hildon_picker_button_set_active (HILDON_PICKER_BUTTON(syntax_picker), 0);
   
   gtk_button_set_alignment (GTK_BUTTON (syntax_picker), 0.0, 0.5);
   hildon_button_add_size_groups (HILDON_BUTTON (syntax_picker), titlegroup, valuegroup, NULL);
   gtk_container_add (GTK_CONTAINER (dialog-&gt;vbox), syntax_picker);

   /* Indent type */
   GtkWidget *indent_selector = hildon_touch_selector_new_text ();
   hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (indent_selector), &quot;Tabs&quot;);
   hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (indent_selector), &quot;Spaces&quot;);
   GtkWidget *indent_picker = hildon_picker_button_new (HILDON_SIZE_THUMB_HEIGHT | HILDON_SIZE_AUTO_WIDTH,
                                                        HILDON_BUTTON_ARRANGEMENT_HORIZONTAL);
   hildon_button_set_title (HILDON_BUTTON (indent_picker), &quot;Indent type&quot;);
   hildon_picker_button_set_selector (HILDON_PICKER_BUTTON(indent_picker), 
                                      HILDON_TOUCH_SELECTOR(indent_selector));
   hildon_picker_button_set_active (HILDON_PICKER_BUTTON(indent_picker), 0);

   gtk_button_set_alignment (GTK_BUTTON (indent_picker), 0.0, 0.5);
   hildon_button_add_size_groups (HILDON_BUTTON (indent_picker), titlegroup, valuegroup, NULL);
   gtk_container_add (GTK_CONTAINER (dialog-&gt;vbox), indent_picker);

   gtk_widget_show_all (GTK_WIDGET (dialog));

   response = gtk_dialog_run(dialog);
   if (response == GTK_RESPONSE_OK) {   
       /* &quot;Save&quot; button has been pressed, save/update the settings here */

       /* ... */
   }

   /* close the dialog */
   gtk_widget_destroy(GTK_WIDGET(dialog));
}

static HildonAppMenu *
build_menu (GtkWidget *window)
{
   HildonSizeType button_size = HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH;
   HildonAppMenu *menu = HILDON_APP_MENU (hildon_app_menu_new ());
   GtkButton *button;

   /* Menus like New, Open, etc that would open new dialogs (no submenus)
    * are not assigned any action in this example
    */

   button = GTK_BUTTON (hildon_gtk_button_new (button_size));
   gtk_button_set_label (button, &quot;New&quot;);
   hildon_app_menu_append (menu, GTK_BUTTON (button));

   button = GTK_BUTTON (hildon_gtk_button_new (button_size));
   gtk_button_set_label (button, &quot;Open&quot;);
   hildon_app_menu_append (menu, GTK_BUTTON (button));

   button = GTK_BUTTON (hildon_gtk_button_new (button_size));
   gtk_button_set_label (button, &quot;Save&quot;);
   hildon_app_menu_append (menu, GTK_BUTTON (button));

   button = GTK_BUTTON (hildon_gtk_button_new (button_size));
   gtk_button_set_label (button, &quot;Settings&quot;);
   g_signal_connect (G_OBJECT (button), &quot;clicked&quot;,
                     G_CALLBACK (menu_settings_cb), window);
   hildon_app_menu_append (menu, GTK_BUTTON (button));

   gtk_widget_show_all (GTK_WIDGET (menu));

   return menu;
}

int
main (int argc, char **argv)
{
   hildon_gtk_init (&amp;argc, &amp;argv);

   GtkWidget *window;
   window = hildon_stackable_window_new ();
   gtk_window_set_title (GTK_WINDOW (window), &quot;Editor&quot;);

   HildonAppMenu *menu = build_menu (window);
   hildon_window_set_app_menu (HILDON_WINDOW (window),     menu);

   GtkWidget *contents = gtk_label_new (&quot;This example shows how an app menu could be &quot;\
                                        &quot;migrated.\nMenu item callbacks &quot;\
                                        &quot;are not fully implemented.&quot;);
   gtk_container_add (GTK_CONTAINER (window), contents);

   /* ... other widgets in the application */

   g_signal_connect (G_OBJECT (window), &quot;destroy&quot;,
                     G_CALLBACK (gtk_main_quit), NULL);

   gtk_widget_show_all (window);

   gtk_main ();
   return 0;
}
&lt;/source&gt;

==Choices ==

Some widgets for choosing options also need to be adapted to the new Hildon way of designing interfaces. If you have several radio buttons to express a choice, replacing them with a picker button is a good idea.

Consider a dialog that includes, among other widgets, a frame labeled &quot;Proxy Preferences&quot; and three radio buttons: &quot;None&quot;, &quot;Auto&quot; and &quot;Manual&quot;, displayed vertically like Figure 10.1 &quot;Three radio buttons&quot; shows. The following example shows how such task could be accomplished using a picker button. The frame label becomes the picker button's title and the three radio buttons' labels become the choices in the picker's touch selector. The screenshot below shows  the resulting graphical user interface.

[[Image:choices.png|frame|center|alt=Screenshot of a picker button dialog|Example of choices in a picker button]]

'''Example 10.3. Migrating choice widgets'''

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon/hildon.h&gt;
int
main (int argc, char **argv)
{
    hildon_gtk_init (&amp;argc, &amp;argv);
    GtkWidget *window;
    window = hildon_window_new ();
    gtk_window_set_title (GTK_WINDOW (window), &quot;Preferences&quot;);
    g_signal_connect (G_OBJECT (window), &quot;destroy&quot;,
                      G_CALLBACK (gtk_main_quit), NULL);
    HildonPickerButton *picker = HILDON_PICKER_BUTTON (hildon_picker_button_new (
                            HILDON_SIZE_THUMB_HEIGHT | HILDON_SIZE_HALFSCREEN_WIDTH,
                                                HILDON_BUTTON_ARRANGEMENT_VERTICAL));
    hildon_button_set_title (HILDON_BUTTON (picker), &quot;Proxy preferences:&quot;);
    HildonTouchSelector *selector = HILDON_TOUCH_SELECTOR (hildon_touch_selector_new_text ());
    hildon_picker_button_set_selector (picker, selector);
    hildon_touch_selector_append_text (selector, &quot;None&quot;);
    hildon_touch_selector_append_text (selector, &quot;Auto&quot;);
    hildon_touch_selector_append_text (selector, &quot;Manual&quot;);
    hildon_picker_button_set_active (picker, 0);
    GtkVBox *contents = GTK_VBOX (gtk_vbox_new (12, FALSE));
    /* ... other widgets placed here */
    gtk_box_pack_end (GTK_BOX (contents), GTK_WIDGET (picker), FALSE, FALSE, 0);
    gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (contents));
    gtk_widget_show_all (window);
    gtk_main ();
    return 0;
}
&lt;/source&gt;

==Notebooks ==

Because the use of notebooks is not advised in Hildon, the way to migrate a Maemo 4 dialog with a notebook to Maemo 5, is to simply put all the items inside a single pannable dialog.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Porting Software/Porting MaemoPad</title>
    <id>2352</id>
    <revision>
      <id>40301</id>
      <timestamp>2010-11-25T08:43:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/221.194.132.212|221.194.132.212]] ([[User talk:221.194.132.212|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">This is a practical example of porting a [[Open development/Maemo roadmap/Diablo|Diablo]] (Maemo 4.1) application to [[Open development/Maemo roadmap/Fremantle|Fremantle]] (Maemo 5). The example application, MaemoPad, is a simple Notepad-like editor.

[[Image:maemopad.png|frame|center|alt=Screenshot of MaemoPad|MaemoPad main window]]


== Porting MaemoPad from Diablo to Fremantle  ==

Porting from Diablo to Fremantle involved mostly changes in GTK+- and Hildon-specific parts of the code, because newer versions of these libraries are now in use, and because of the new Fremantle GUI guidelines. This subsection will first explain how to install MaemoPad, and then proceeds to describing the main changes in the code. The reader is recommended to familiarize with chapters [[Documentation/Maemo 5 Developer Guide/Application Development|Application Development]] and [[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines|Human Interface Guidelines]] before this one. For reference, see GTK+ and Hildon APIs from [http://maemo.org/development/sdks/maemo_5_api_documentation/ Maemo Fremantle APIs].

=== Installing MaemoPad ===

MaemoPad can be installed and tested in the Scratchbox environment.

* If not already activated, activate the X86 target, go to the testing directory, and download the source package of maemopad application.
 
&lt;pre&gt;
[sbox-FREMANTLE_ARMEL] &gt; sb-conf select FREMANTLE_X86
[sbox-FREMANTLE_X86 ~] &gt; mkdir maemopad
[sbox-FREMANTLE_X86 ~/maemopad] &gt; cd maemopad
[sbox-FREMANTLE_X86 ~/maemopad] &gt; apt-get source maemopad
...apt output...
&lt;/pre&gt;

* Check that you have the correct files.

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/maemopad] &gt; ls -l
total 352
drwxrwxr-x  6 maemo maemo   4096 Jul 28 14:09 maemopad-2.5
-rw-rw-r--  1 maemo maemo    465 Jul  6 16:02 maemopad_2.5.dsc
-rw-rw-r--  1 maemo maemo 346129 Jul  6 16:02 maemopad_2.5.tar.gz
&lt;/pre&gt;

* Go to the &lt;code&gt;maemopad-2.5&lt;/code&gt; source directory, and build the maemopad package with &lt;code&gt;dpkg-buildpackage&lt;/code&gt; command as shown here:

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/maemopad] &gt; cd maemopad-2.5
[sbox-FREMANTLE_X86: ~/maemopad/maemopad-2.5] &amp;gt; dpkg-buildpackage -rfakeroot
dpkg-buildpackage: source package is maemopad
dpkg-buildpackage: source version is 2.5
dpkg-buildpackage: source changed by Soumya Bijjal &amp;lt;soumya.3.bijjal@nokia.com&amp;gt;
dpkg-buildpackage: host architecture i386
dpkg-buildpackage: source version without epoch 2.3
.... etc ....
&lt;/pre&gt;

* Install the newly compiled &lt;code&gt;maemopad_2.5_i386.deb&lt;/code&gt; file inside the Scratchbox environment:

&lt;pre&gt; 
[sbox-FREMANTLE_X86: ~/maemopad] &gt; dpkg -i maemopad_2.5_i386.deb
... output from dpkg ...
&lt;/pre&gt;

* Make sure you have the SDK UI running in Xephyr.
* You can now run MaemoPad by selecting it from the menu.

The MaemoPad source code resides in folder &lt;code&gt;maemopad-2.5/src:&lt;/code&gt;

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/maemopad] ls maemopad-2.5/src
total 280
-rw-rw-r--  1 maemo maemo 25491 Jul 28 15:45 Makefile
-rw-rw-r--  1 maemo maemo   491 Jul 28 14:09 Makefile.am
-rw-rw-r--  1 maemo maemo 23238 Jul 28 14:09 Makefile.in
-rwxrwxr-x  1 maemo maemo 83433 Jul 28 15:45 maemopad
-rw-rw-r--  1 maemo maemo 82928 Jul 28 15:45 maemopad-maemopad-window.o
-rw-rw-r--  1 maemo maemo 18564 Jul 28 15:45 maemopad-main.o
-rw-rw-r--  1 maemo maemo 20400 Jul 28 14:09 maemopad-window.c
-rw-rw-r--  1 maemo maemo  2391 Jul 28 14:09 maemopad-window.h
-rw-rw-r--  1 maemo maemo  2193 Jul 28 14:09 main.c
&lt;/pre&gt;

For comparison, the Diablo version of MaemoPad can also be examined:

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/maemopad] &amp;gt; svn export https://vcs.maemo.org/svn/\
maemoexamples/tags/maemo_4.1/maemopad diablo_maemopad
[sbox-FREMANTLE_X86: ~/src] ls -lR diablo_maemopad/src
diablo_maemopad/src/:
total 16
-rw-rw-r--  1 maemo maemo  537 May 15  2008 Makefile.am
-rw-rw-r--  1 maemo maemo  557 May 15  2008 appdata.h
-rw-rw-r--  1 maemo maemo 2789 Dec  3  2008 main.c
drwxrwxr-x  2 maemo maemo 4096 Aug 20 11:53 ui

diablo_maemopad/src/ui:
total 36
-rw-rw-r--  1 maemo maemo 12163 Dec  3  2008 callbacks.c
-rw-rw-r--  1 maemo maemo  1682 Oct 29  2008 callbacks.h
-rw-rw-r--  1 maemo maemo 14982 Dec  3  2008 interface.c
-rw-rw-r--  1 maemo maemo  2695 Dec  3  2008 interface.h
&lt;/pre&gt;

=== Code reorganization ===

If one takes a look at MaemoPad source code for Diablo and Fremantle, there are many bug fixes, and there have been major refractorizations. These are, however, not necessary for porting and are not discussed here in detail. The main change is reorganizing the files, which is already apparent from the &lt;code&gt;ls&lt;/code&gt; lists above:

* &lt;code&gt;src/ui&lt;/code&gt; subfolder has been dropped
* &lt;code&gt;src/ui/callbacks.c&lt;/code&gt; and &lt;code&gt;src/ui/interface&lt;/code&gt; have been combined into &lt;code&gt;src/maemopad-window.c&lt;/code&gt;, similarly for header files
* &lt;code&gt;appdata.h&lt;/code&gt; is included in &lt;code&gt;main.c&lt;/code&gt;
* In &lt;code&gt;src/Makefile.am&lt;/code&gt;, &lt;code&gt;maemopad_SOURCES = &amp;lt;list of source files&amp;gt;&lt;/code&gt; has been updated correspondingly.

=== Device-specific changes ===

The previous device, N810, had a separate full-screen and ESC keys that were dropped from the new device. In MaemoPad, pressing the full-screen key was replaced by Ctrl-F. This required the following addition:

maemopad-window.c 
&lt;source lang=&quot;c&quot;&gt;
#include &lt;gdk/gdkkeysyms.h&gt;
&lt;/source&gt;

to include GDK definition for key &quot;f&quot;, &lt;code&gt;GDK_f&lt;/code&gt; to replace the earlier &lt;code&gt;HILDON_HARDKEY_FULLSCREEN&lt;/code&gt;. Callback for Esc was completely removed. The full-screen action itself was principally unchanged. The key event function was modified correspondingly:

Diablo callbacks.c
&lt;source lang=&quot;c&quot;&gt;
gboolean key_press(GtkWidget * widget, GdkEventKey * event,
                   gpointer data)
{
    ...
   if (event-&gt;keyval == HILDON_HARDKEY_FULLSCREEN &amp;&amp; !keypressed){
        keypressed = TRUE;
    ...
    if (event-&gt;keyval == HILDON_HARDKEY_ESC &amp;&amp; !keypressed){
        keypressed = TRUE;
    ...
&lt;/source&gt;

Fremantle maemopad-window.c 

&lt;source lang=&quot;c&quot;&gt;
static gboolean maemopad_window_on_key_press(GtkWidget *widget, GdkEventKey *event,
                                             gpointer data)
{
    ... 
    if (event-&gt;keyval == GDK_f &amp;&amp; (event-&gt;state &amp; GDK_CONTROL_MASK) &amp;&amp; !self- &gt;key_pressed) {
        self-&gt;key_pressed = TRUE;
    ...
&lt;/source&gt;

=== Dropped libraries ===

Hildon help library, libhildonhelp, was dropped from Fremantle so all dependencies to it had to be removed.

libhildonhelp-dev needs to removed from build dependencies:

Diablo: debian/control:

&lt;pre&gt;
Build-Depends: debhelper (&amp;gt;= 4.0.0), intltool,
 libhildon1-dev, libgtk2.0-dev, libosso-gnomevfs2-dev,
 libglib2.0-dev, libdbus-glib-1-dev, libosso-dev, libmodest-dbus-client-dev,
 conbtdialogs-dev,libhildonhelp-dev, libhildonfm2-dev, osso-af-settings
&lt;/pre&gt;

Fremantle: debian/control:

&lt;pre&gt;
Build-Depends: debhelper (&amp;gt;= 4.0.0), intltool,
 libhildon1-dev, libgtk2.0-dev, libosso-gnomevfs2-dev,
 libglib2.0-dev, libdbus-glib-1-dev, libosso-dev, libmodest-dbus-client-dev,
 conbtdialogs-dev,  libhildonfm2-dev, osso-af-settings
&lt;/pre&gt;

Callback and all other help stuff removed:

Diablo callbacks.c 

&lt;source lang=&quot;c&quot;&gt;
/* help */
void callback_help( GtkAction * action, gpointer data )
{
    osso_return_t retval;
    /* connect pointer to our AppUIData struct */
    AppUIData *mainview = NULL;
    mainview = ( AppUIData * ) data;
    g_assert(mainview != NULL &amp;&amp; mainview-&gt;data != NULL );
    retval = hildon_help_show(
      mainview-&gt;data-&gt;osso, /* osso_context */
      HELP_TOPIC_ID,        /* topic id */
      HILDON_HELP_SHOW_DIALOG);
}
&lt;/source&gt;

Diablo interface.c 

&lt;source lang=&quot;c&quot;&gt;
GtkWidget *help = NULL;
help = gtk_menu_item_new_with_label( _(&quot;Help&quot;) );
gtk_menu_append( main_menu, help );
g_signal_connect( G_OBJECT( help ), &quot;activate&quot;, 
  G_CALLBACK ( callback_help ), main );
&lt;/source&gt;

Diablo callbacks.c 

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon/hildon-help.h&gt;
#define HELP_TOPIC_ID &quot;Example_MaemoPad_Content&quot;
&lt;/source&gt;

Diablo configure.ac:

&lt;source lang=&quot;autoconf&quot;&gt;
PKG_CHECK_MODULES(HILDON, hildon-1 hildon-fm-2 hildon-help conbtdialogs)
&lt;/source&gt;

Fremantle configure.ac:

&lt;source lang=&quot;c&quot;&gt; 
PKG_CHECK_MODULES(HILDON, hildon-1 hildon-fm-2 conbtdialogs)
&lt;/source&gt;

Removed data/help directory which contained an example help file.

Some files contained items related to it and they were also removed:

Diablo data/Makefile.am:

&lt;source lang=&quot;make&quot;&gt;
helpfile_engb_DATA = help/en_GB/MaemoPad.xml
-EXTRA_DIST = $(serviceentry_DATA) $(desktopentry_DATA) $(icon_26x26_DATA) $(icon_40x40_DATA)
$(icon_scalable_DATA) *$(helpfile_engb_DATA)*
&lt;/source&gt;

Diablo data/Makefile.am:

&lt;source lang=&quot;make&quot;&gt;
# Help file install directory
helpfile_engbdir=$datadir/hildon-help/en_GB
AC_SUBST(helpfile_engbdir)
&lt;/source&gt;

=== GUI design changes ===

Because of new UI guidelines, a toolbar that was at the bottom of the MaemoPadwindow in Diablo was dropped. This meant removing the function &lt;code&gt;create_toolbar&lt;/code&gt; and its declaration from &lt;code&gt;interface.c&lt;/code&gt;. Also the call for the function was dropped from the same file. Likewise, related declarations were dropped:

Diablo interface.h 

&lt;source lang=&quot;c&quot;&gt;
/* Toolbar */
GtkWidget* toolbar;
GtkWidget* iconw;
GtkToolItem* new_tb;
GtkToolItem* open_tb;
...
GtkToolItem* fullscreen_tb;
&lt;/source&gt;

Also the menu system was changed. In Diablo, a &lt;code&gt;GtkMenu&lt;/code&gt; was used, but it was replaced with a &lt;code&gt;HildonAppMenu&lt;/code&gt; in Fremantle, as shown in Figure:

[[Image:maemopad_menu.png|frame|center|alt=Screenshot of MaemoPad menu|MaemoPad menu]]

Function &lt;code&gt;create_menu()&lt;/code&gt; is responsible for creating the menus in both versions:

Diablo interface.c 

&lt;source lang=&quot;c&quot;&gt;
static void create_menu( AppUIData *main )
{
    /* Create needed handles */
    GtkMenu *main_menu;
    GtkWidget *file_menu, *edit_menu, *sendvia_menu;
    GtkWidget *separator = NULL;
    GtkWidget *close = NULL;
    /* Create main menu and new menus for submenus in our drop down menu */
    main_menu = GTK_MENU( gtk_menu_new () );
    file_menu = gtk_menu_new ();
    edit_menu = gtk_menu_new ();
    sendvia_menu = gtk_menu_new ();
    /* Create the menu items */
    main-&gt;file_item = gtk_menu_item_new_with_label ( _(&quot;File&quot;) );
    main-&gt;new_item = gtk_menu_item_new_with_label ( _(&quot;New&quot;) );
    main-&gt;open_item = gtk_menu_item_new_with_label ( _(&quot;Open&quot;) );
    ...
    /* Add menu items to right menus */
    gtk_menu_append( main_menu, main-&gt;file_item );
    gtk_menu_append( file_menu, main-&gt;new_item );
    gtk_menu_append( file_menu, main-&gt;open_item );
    ...
    gtk_menu_append( main_menu, close );
    /* Add submenus to the right items */
    gtk_menu_item_set_submenu( GTK_MENU_ITEM (main-&gt;file_item), file_menu );
    gtk_menu_item_set_submenu( GTK_MENU_ITEM (main-&gt;edit_item), edit_menu );
    gtk_menu_item_set_submenu( GTK_MENU_ITEM (main-&gt;sendvia_item),   sendvia_menu );
    /* Attach the callback functions to the activate signal */
    g_signal_connect( G_OBJECT( main-&gt;new_item ), &quot;activate&quot;, 
		      G_CALLBACK ( callback_file_new), main );
    g_signal_connect( G_OBJECT( main-&gt;open_item ), &quot;activate&quot;, 
		      G_CALLBACK ( callback_file_open), main );
    ...
    g_signal_connect( G_OBJECT( close ), &quot;activate&quot;, gtk_main_quit, NULL );
    /* Add menu to HildonWindow */
    hildon_window_set_menu(main-&gt;data-&gt;window, main_menu);
    /* We need to show menu items */
    gtk_widget_show_all( GTK_WIDGET( main_menu ) );
}
&lt;/source&gt;

Fremantle maemopad-window.c 

&lt;source lang=&quot;c&quot;&gt;
static GtkWidget* add_menu_item (GtkWidget *main_menu, const gchar* title,
    GCallback clicked_callback, gpointer user_data)
{
  HildonAppMenu *app_menu = HILDON_APP_MENU (main_menu);
  /* Create a button, add it, and return it: */ 
  GtkWidget *button = hildon_button_new_with_text (HILDON_SIZE_AUTO, 
        HILDON_BUTTON_ARRANGEMENT_VERTICAL, title, NULL);
  gtk_widget_show (button);
  g_signal_connect_after (button, &quot;clicked&quot;, 
  	G_CALLBACK (clicked_callback), user_data);
  hildon_app_menu_append (app_menu, GTK_BUTTON (button));
  return button;
}
/* Create the menu items needed: */
static void create_menu (MaemopadWindow *self)
{
  /* Create needed handles */
  GtkWidget *main_menu = hildon_app_menu_new ();
  /* Create the menu items */
  self-&gt;new_item = add_menu_item (main_menu, _(&quot;New&quot;),
    G_CALLBACK (&amp;maemopad_window_on_menu_file_new), self);
  self-&gt;open_item = add_menu_item (main_menu, _(&quot;Open&quot;),
    G_CALLBACK (&amp;maemopad_window_on_menu_file_open), self);
  ...
   self-&gt;close_item = add_menu_item (main_menu, _(&quot;Close&quot;),
    G_CALLBACK (&amp;maemopad_window_on_menu_close), self);
  /* Add menu to HildonWindow */
  hildon_window_set_app_menu (
    HILDON_WINDOW (self),
    HILDON_APP_MENU (main_menu));
  /* We need to show menu items */
  gtk_widget_show_all (GTK_WIDGET (main_menu));
}
&lt;/source&gt;

As a result to changes in the .c file, the following menu widget declarations used in Diablo became unnecessary:

Diablo interface.h 

&lt;source lang=&quot;c&quot;&gt;
GtkWidget *file_item;
GtkWidget *edit_item;
GtkWidget *sendvia_item;
&lt;/source&gt;

Menu callbacks were also changed. There were some changes in the callbacks themselves as a result of code reorganizations, but the main change from the menu viewpoint was that the 1st arguments of the callbacks were changed from &lt;code&gt;GtkAction&lt;/code&gt; to &lt;code&gt;GtkButton&lt;/code&gt;, like in the following example:

Diablo callbacks.c 

&lt;source lang=&quot;c&quot;&gt;
void callback_file_new(GtkAction * action, gpointer data)
&lt;/source&gt;

Fremantle maemopad-window.c 

&lt;source lang=&quot;c&quot;&gt;
static void maemopad_window_on_menu_file_new (GtkButton *button, gpointer data)
&lt;/source&gt;

=== Other updates in GTK+ and Hildon ===

&lt;ul&gt;
&lt;li&gt;
Rich text support was changed with the new GTK+, as described in [http://live.gnome.org/Maemo/Gtk210Migration Maemo-GTK+ 2.6 to 2.10 Migration].This required editing two lines:

Part of function &lt;code&gt;create_textarea()&lt;/code&gt; in Diablo interface.c 

&lt;source lang=&quot;c&quot;&gt;
/* Enable Rich Text Support */
gtk_text_buffer_set_can_paste_rich_text ( main-&gt;buffer, TRUE );
gtk_text_buffer_set_rich_text_format ( main-&gt;buffer, &quot;RTF&quot; );
&lt;/source&gt;

Part of function &lt;code&gt;create_textarea()&lt;/code&gt; in Fremantle maemopad-window.c 

&lt;source lang=&quot;c&quot;&gt;
/* Enable Rich Text Support */
gtk_text_buffer_register_serialize_tagset (self-&gt;buffer, &quot;RTF&quot;);
gtk_text_buffer_register_deserialize_tagset (self-&gt;buffer, &quot;RTF&quot;);
&lt;/source&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;code&gt;HildonFontSelectionDialog&lt;/code&gt; was deprecated and replaced with a &lt;code&gt;GtkFontButton&lt;/code&gt;. In Diablo, the font callback was a callback to a regular &lt;code&gt;GtkAction&lt;/code&gt;:

callback.c 

&lt;source lang=&quot;c&quot;&gt;
void callback_font( GtkAction * action, gpointer data )
{
    ...
    new_font = interface_font_chooser( mainview );
    /* if we got a new font from chooser -&gt; change font */
    if( new_font != NULL ) {
        mainview-&gt;font_desc = new_font;
        gtk_widget_modify_font ( mainview-&gt;textview, mainview-&gt;font_desc );
    }
}
&lt;/source&gt;

Function &lt;code&gt;callback_font&lt;/code&gt; got the font from an auxiliary function &lt;code&gt;interface_font_chooser()&lt;/code&gt; and then modified the font in the text view. The auxiliary function &lt;code&gt;interface_font_chooser()&lt;/code&gt; in turn opened a &lt;code&gt;HildonFontSelectionDialog&lt;/code&gt; that returned the font parameters:

callback.c 

&lt;source lang=&quot;c&quot;&gt;
/* Font chooser */
PangoFontDescription* interface_font_chooser( AppUIData * main )
{
    ...
    font = pango_font_description_new();
    /* create dialog */
    dialog = HILDON_FONT_SELECTION_DIALOG ( hildon_font_selection_dialog_new( NULL, NULL ) );
    gtk_widget_show_all (GTK_WIDGET(dialog));
    if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK)
    {
        g_object_get(G_OBJECT(dialog),
                    &quot;family&quot;, &amp;family,
                    &quot;size&quot;, &amp;size,
                    &quot;bold&quot;, &amp;bold,
                    &quot;italic&quot;, &amp;italic,
                    NULL);
        pango_font_description_set_family(font, family);
        pango_font_description_set_size(font, size * PANGO_SCALE);
        if (bold) {
            pango_font_description_set_weight(font, PANGO_WEIGHT_BOLD);
        } else {
            pango_font_description_set_weight(font, PANGO_WEIGHT_NORMAL);
        }
        if (italic) {
            pango_font_description_set_style(font, PANGO_STYLE_ITALIC);
        } else {
            pango_font_description_set_style(font, PANGO_STYLE_NORMAL);
        }
    }
    gtk_widget_destroy(GTK_WIDGET(dialog));
    return font;
}
&lt;/source&gt;

Instead of the deprecated &lt;code&gt;HildonFontSelectionDialog&lt;/code&gt;, Fremantle uses a &lt;code&gt;GtkFontButton&lt;/code&gt; directly in the font button callback:

maemopad-window.c 

&lt;source lang=&quot;c&quot;&gt;
/* font */
static void maemopad_window_on_font_set (GtkFontButton *button, gpointer data)
{
  ...
  font_name = gtk_font_button_get_font_name (button);
  if (!font_name)
    return;
  new_font = pango_font_description_from_string (font_name);
  /* Change the font used in the GtkTextView */
  if (new_font) {
    if (self-&gt;font_desc)
      pango_font_description_free (self-&gt;font_desc);
     self-&gt;font_desc = new_font;
     gtk_widget_modify_font (self-&gt;textview, self-&gt;font_desc);
  }
}
&lt;/source&gt;

This &lt;code&gt;GtkFontButton&lt;/code&gt; was initialized in function &lt;code&gt;create_menu()&lt;/code&gt; (see above) in &lt;code&gt;maemopad-window.c&lt;/code&gt; so that it would respond to the &lt;code&gt;&quot;font-set&quot;&lt;/code&gt; signal and call the callback above:

&lt;source lang=&quot;c&quot;&gt;
self-&gt;font_item = gtk_font_button_new ();
gtk_widget_show (self-&gt;font_item);
g_signal_connect_after (self-&gt;font_item, &quot;font-set&quot;, 
  G_CALLBACK (maemopad_window_on_font_set), self);
hildon_app_menu_append (HILDON_APP_MENU (main_menu), GTK_BUTTON (self-&gt;font_item));
&lt;/source&gt;
&lt;/li&gt;

&lt;li&gt;
Instead of &lt;code&gt;GtkTextView&lt;/code&gt;, a [http://maemo.org/api_refs/5.0/5.0-final/hildon/HildonTextView.html HildonTextView] is now used:

Diablo callback.c

&lt;source lang=&quot;c&quot;&gt;
/* Create the text area */
void create_textarea( AppUIData *main )
{
    /* Text view */
    main-&gt;textview = gtk_text_view_new ();
    ...
    /* Get handle */
    main-&gt;buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (main-&gt;textview));
    ...
}
&lt;/source&gt;

Fremantle maemopad-window.c

&lt;source lang=&quot;c&quot;&gt;
static void create_textarea (MaemopadWindow *self)
{
    /* Text view */
    self-&gt;textview = hildon_text_view_new ();
    ....
    /* Get handle */
    self-&gt;buffer = hildon_text_view_get_buffer (GTK_TEXT_VIEW (self-&gt;textview));
}
&lt;/source&gt;
&lt;/li&gt;

&lt;li&gt;
All Hildon applications should now initialize hildon before using it. In maemopad this is done by calling &lt;code&gt;hildon_gtk_init()&lt;/code&gt; which also calls &lt;code&gt;gtk_init()&lt;/code&gt; so the original call can be removed:

Diablo main.c 

&lt;source lang=&quot;c&quot;&gt;
/* Init the gtk - must be called before any hildon stuff */
gtk_init( &amp;argc, &amp;argv );
&lt;/source&gt;

Fremantle main.c

&lt;source lang=&quot;c&quot;&gt;
/* Inititialize GTK+ and hildon: */
hildon_gtk_init( &amp;argc, &amp;argv );
&lt;/source&gt;

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Porting Software/Redesigning From Maemo 4 to Maemo 5</title>
    <id>2260</id>
    <revision>
      <id>37890</id>
      <timestamp>2010-08-18T10:03:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>reformat images</comment>
      <text xml:space="preserve">This chapter instructs how to re-design a [[Open development/Maemo roadmap/Diablo|Maemo 4]] application to [[Open development/Maemo roadmap/Diablo|Maemo 5]], i.e. the '''Hildon 2.2 UI Style'''. The Modest email client is used as the example application.

This document is supported by the [http://www.forum.nokia.com/info/sw.nokia.com/id/e778ba1f-2507-4672-be45-798359a3aea7/Fremantle_Master_Layout_Guide.html Fremantle Master Layout Guide] and [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] for visual guidance and references, as well as by the [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] for interaction and technical background information.

== Overall Guidelines ==

Compared to Maemo 4, the Hildon 2.2 UI Style in Maemo 5 is much more optimized for finger usage in small mobile device displays.

When the focus in design moves from stylus oriented user interface (UI) to finger optimized user interface, the reduction of the amount of visible elements in the UI becomes first priority. This means that unlike typical desktop applications, most of the functionality is not provided in a single view, but instead there are more views and each view is optimized for a single use case only. This is similar to the UNIX philosophy – “''do one thing and do it well''&quot;.

The major changes in the Hildon 2.2 UI Style include larger size for UI elements, removal of focus (particularly in lists), no dimming of buttons, limit of 10 items in view menus, removal of tabs in dialogs and lesser importance of toolbars and context sensitive menus.

=== Larger size of UI elements ===

By default, the UI elements in Maemo 5 should be designed as “Finger size”. This means that on average, a view can contain fewer visible UI elements. To compensate this, views and dialogs can be designed to support panning, allowing for larger amount of UI elements in total. However, panning is not an ideal design solution for all use cases.

=== Removal of focus ===

While in Maemo 4, the application menu and the toolbars often relied on focused/selected item or items as the target of a command, in Maemo 5 there is no focus. This also means that keyboard navigation is not supported in the UI in general.

In Maemo 5, the design should follow one of two possible UI flows:
* User navigates multiple views from a list or a grid of items to a view with single item. Commands that operate on that single item can be provided in that last view (typically via View menu or Toolbar)
* After user has activated a command, a separate item selection view is used (typically Edit Mode view)

=== No dimming ===

Instead of dimming (buttons, menu items ...), the UI elements should be simply hidden away, when they are not active. There are some corner cases where hiding would break the UI flow. For example Edit mode view toolbar simply shows the action button as always active, even though nothing happens, when nothing is selected, if the button is pressed.

=== Limit of 10 items in the view menus ===

The Maemo 4 application menu typically contains most or the full set of functionality of the application, organized in hierarchical menus. In Maemo 5, there is a strict limit of maximum 10 items in a view menu, and there is no menu hierarchy.

The Maemo 5 View menus are not application menus, in the sense that a view menu only contains commands relevant to that particular view. The only exception to this is the Root view menu, which additionally contains menu item(s) for application settings.

=== Removal of tabs in dialogs ===

When designing dialogs in Maemo 5, the tabs of a Maemo 4 dialog are merged to a single tab-less dialog with the whole content area of the dialog being pannable. In practice this results in the user panning the dialog instead of switching between tabs.

If additional semantic grouping is needed for UI elements within the dialog, then group titles can be used by utilizing &lt;code&gt;GtkFrame&lt;/code&gt;.

=== Fewer toolbars and context sensitive menus ===

With the removal of focus from default lists and grids, the UI designs for Maemo 5 typically do not include toolbars for views that contain multiple items. Toolbars are still used in views where only a single item is being shown.

The main use cases for context sensitive menus in Maemo 5 are only:
* To show commands that operate on a single list/grid item
* To show commands related to an item inside content, for example a web link.
Note that the context sensitive menus should only include commands that are not available elsewhere in the user interface.

== Re-design of Modest email ==

The following paragraphs describe the overall changes made to the Modest email client when re-designing it from Maemo 4 to Maemo 5.

=== Task views ===

In Maemo 4, Modest had three views: Main view, Viewer view and Editor view.
In Maemo 5, the Main view was divided into more focused views, which allowed to get rid of the split view as well. The new five views are: Accounts view, Folders view, Messages view, Viewer view and Editor view.

[[Image:Modest-ui-flow.png|Modest UI Flow|frame|center|alt=Collage of Maemo 4 and Maemo 5 Email UI|Email UI Flow in Maemo 4 and 5]]

While in Maemo 4 the different views are separate windows (and visible as such when switching between tasks), in Maemo 5 the views are designed as a “stack”, i.e. only one of the views is ever visible at any one time.

The Maemo 5 approach allows the design to avoid many concurrency problems caused by changes happening in several windows at the same time. On the other hand the design forces the views to always be closable. This means for example that in Maemo 5, the Editor view always automatically saves as draft, without further confirmation, when that view is closed.

The UI flow of Modest in Maemo 5 follows the “drilling down” UI flow – Initially the most generic view is shown (Accounts) from which more detailed views can be reached (ending up in Viewer). The Editor view is not directly part of this flow, but instead can be accessed from any of the other views. Going back from the Editor view shows the previous view of the “stack”, i.e. the view from which the user opened the Editor view.

==== Accounts view ====

The design of this view is simply to list the accounts that the user has set up on the device. Tapping on any of the accounts opens the Folders view of that account. In addition to the account name, also the time stamp of the last account refresh is shown on each list item.

The first item in the list is “New message” button, which is a convenience shortcut to quick write a new email in the Editor view.

[[Image:H22-Modest-Accounts-view.png||frame|center|alt=Screenshot of Accounts view|Maemo 5 Accounts view]]

==== Folders view ====

This view lists folders related to the selected email account. Additionally, ''Local folders'' (stored on the device), and ''Archive'' (stored on external memory card if available) are shown in the list.

The folder tree in Maemo 4 was a direct representation of the physical folder structure. In Maemo 5 the fingerable lists are flat and pannable, and expandable lists are not supported. These constraints required re-designing how subfolders are represented in the UI. A full-blown design of each-subfolder-is-a-subview was too navigation-heavy for an email application, and instead all folders and subfolders are shown in the same pannable list.

The depth of a folder is indicated by the amount of dots (&lt;code&gt;&amp;middot;&lt;/code&gt;) placed before the name of the folder.

The icon in each list item represents the location of the storage (email server, local, MMC), except for the standard email folders, which have individual icons (Inbox, Drafts, Outbox, Sent).

If a folder contains new, unread messages then this status is indicated with &lt;code&gt;ActiveTextColor&lt;/code&gt; on the folder name and with informative text on the right half of the list item.

[[Image:H22-Modest-Folders-view.png|frame|center|alt=Screenshot of folder view|Maemo 5 Folders view]]

==== Messages view ====

The messages view in Maemo 5 has very few changes compared to Maemo 4. The most visible changes are 1) indicating the unread status with &lt;code&gt;ActiveTextColor&lt;/code&gt; and 2) the “New message” shortcut button.

[[Image:H22-Modest-Messages-view.png|frame|center|alt=Screenshot of Messages view|Maemo 5 Messages view]]

==== Viewer view ====

The main changes in the viewer view has been to remove all less important UI elements either to view menu or to the toolbar – the subject is shown in view title, the message header only contains From, Date and Attachment fields. This design allows to maximize the screen space for the most important content (the email message itself), while giving direct access to most used actions in the toolbar.

{| class=&quot;wikitable&quot;
| [[Image:Diablo-Modest_viewer_view.png|Diablo Viewer view|300px]]
| [[Image:H22-Modest-Viewer-view.png|Viewer view|300px]]
|}

==== Editor view ====

The basic layout and logic of the Editor view remains unchanged. However, due to increasing the UI elements to finger size, the following tweaks were made to this view:
* “Send” button was moved to the right side of “from” picker button, in order to reserve the toolbar only for message formatting commands
* Addressbook buttons were merged with the To, CC and BCC field titles to save screen space and increase usability – ''tapping directly on the content''. Also, CC and BCC fields are now hidden by default.
* Attachment button was moved to View menu, also to save screen space.

{| class=&quot;wikitable&quot;
| [[Image:Diablo-Modest_editor_view.png|Diablo Editor view|300px]]
| [[Image:H22-Modest-Editor-view.png|Editor view|300px]]
|}

=== Commands ===

The following tables compare the commands in the Maemo 4 and Maemo 5 versions of the Modest email client.

The Maemo 4 version duplicated most of the commands between the Application menu, Toolbar and Context sensitive menu.

{| class=&quot;wikitable&quot;
! Location
! Menu commands in Maemo 5 Modest
|-
|Accounts view menu
|'''New account, Edit accounts, SMTP servers''', Send &amp; receive / Stop sending, '''Settings'''
|-
|Folders view menu
|'''New folder, Rename folder, Move folder, Delete folder''', Send &amp;amp; receive/stop sending, Edit account
|-
|Messages view menu
|'''New message, Move messages, Delete messages''', Folder details, Sort, Send &amp;amp; receive/stop sending
|-
|Viewer view menu
|Find in message, Move message, Forward, Mark as read, Mark as unread, Save attachments, Remove attachments, New message, Add to Contacts, Message details
|-
|Editor view menu
|Check names, Undo, Show/Hide CC, Show/Hide BCC, Insert image, Add attachment, Remove attachments, Message settings, Find in message
|}

Notable changes are:
* In general, commands are specific to their view
* Accounts view menu is the main and only access point to application settings
* Edit mode view (for selecting items) are opened from: Rename folder, Move folder, Delete folder, move messages, delete messages
* Viewer and Editor menus only contain commands which are not available in the view’s toolbar.
* Additional, view specific, settings dialog is opened from “Message settings” in Editor menu. That dialog contains settings for message priority (high, normal, low) and message format (plain text, formatted text). The settings only apply to the currently edited message.
* New message command only appears in Messages and Viewer view menus, as access to that command is provided by quick access button in Accounts view, Folders view (the first item in the list)

{| class=&quot;wikitable&quot;
! Location
! Toolbar commands in Maemo 5 Modest
|-
|Viewer view toolbar
|Reply, Reply all, delete, load external images, previous message, next message
|-
|Editor view toolbar
|Font face, Font size, Bold, Italics, Font color
|}

Notable changes are:
* The Accounts, Folders and Messages views do not have toolbar, since they contain a list without focus. This also allows maximizing the amount of rows visible.
* The commands in toolbars are not repeated elsewhere in the UI.

{| class=&quot;wikitable&quot;
! Location
! context sensitive commands in Maemo 5 Modest
|-
|Messages view context sensitive menu
|Delete, mark unread/read
|}

Notable changes are:
* Almost all the context sensitive menus were removed. Only the most important commands (targetting a single message) were included to the Messages view context sensitive menu.

=== Dialogs ===

There are very many dialogs in the email application, mostly due to the complexity of the email handling in general. This chapter uses the Account settings dialog as the example of changes in dialogs.

The most visible change in the Account Settings dialog is that the tabs used in Maemo 4 were removed and instead in Maemo 5, all the settings in the dialog are reachable with panning.

The conversion of the widgets themselves for Maemo 5 was quite straightforward – all the buttons, input fields, checkboxes et cetera were simply changed to their fingerable Hildon 2.2 versions.

Notable other changes are:
* The signature button was moved to the dialog button area, since the settings in the dialog content are more related to email server connectivity.
* The account deletion is included in the Account Settings dialog directly, as the account list dialog does not have focus.

{| class=&quot;wikitable&quot;
|-
| [[Image:Diablo-modest-account-settings.png|Diablo account settings|300px]]
| [[Image:H22-Modest-account-settings.png|Modest account settings|300px]]
|}

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Porting Software/Scaling Fixed Size Windows</title>
    <id>3192</id>
    <revision>
      <id>37698</id>
      <timestamp>2010-08-11T20:49:58Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use &lt;source&gt; and &lt;code&gt;, tidy</comment>
      <text xml:space="preserve">When porting existing applications to Maemo, it is sometimes necessary to scale a fixed-size interface to the target screen size. For example, many games written for a specific gaming platform assume the screen size of that platform. Scaling the interface allows you to port the application without completely rewriting it.

You can scale a window with [http://maemo.org/api_refs/5.0/5.0-final/hildon/hildon-HildonAnimationActor.html HildonAnimationActor]. &lt;code&gt;HildonAnimationActor&lt;/code&gt; creates an overlay window that can be positioned anywhere on the screen and scaled to any size. The following code demonstrates how to embed a fixed-size &lt;code&gt;GtkWidget&lt;/code&gt;, &lt;code&gt;main&lt;/code&gt;, into a &lt;code&gt;HildonAnimationActor&lt;/code&gt;.

In this code snippet, window is a top-level &lt;tt&gt;[http://maemo.org/api_refs/5.0/5.0-final/hildon/HildonWindow.html HildonWindow]&lt;/tt&gt;. It assumes that the original size of &lt;code&gt;main&lt;/code&gt; is 320&amp;times;240, and that you want to scale the window to 800&amp;times;424.

&lt;source lang=&quot;c&quot;&gt;
actor = HILDON_ANIMATION_ACTOR (hildon_animation_actor_new());
gtk_container_add (GTK_CONTAINER (actor), main);
gtk_window_resize (GTK_WINDOW (actor), 320, 240);
hildon_animation_actor_set_position (actor, 0, 56);
hildon_animation_actor_set_parent (actor, window);
hildon_animation_actor_set_scale (actor, 2.5, 1.77);
gtk_widget_show_all (GTK_WIDGET (actor));
&lt;/source&gt;

This will scale &lt;code&gt;main&lt;/code&gt; and display it over &lt;code&gt;window&lt;/code&gt;. &lt;code&gt;HildonAnimationActor&lt;/code&gt;, however, does not accept any input events, so all keyboard and mouse events will pass directly through to &lt;code&gt;window&lt;/code&gt;. To make the application respond to user input, you must capture the relevant events on window and pass them to main. For events which have associated screen coordinates, such as mouse clicks, you must transform the coordinates based on the scaling factor.

The following code demonstrates how to capture button press and release events from a pointing device. On Maemo-based devices, this corresponds to the press and release of a tap on the screen.

&lt;source lang=&quot;c&quot;&gt;
static void
window_button_proxy (GtkWidget *widget,
		     GdkEventButton *event,
		     GtkWidget *proxy)
{
  GdkEventButton *newev = (GdkEventButton *) gdk_event_copy ((GdkEvent *) event);
  newev-&gt;window = proxy-&gt;window;
  newev-&gt;x = (gint) (newev-&gt;x / 2.5);
  newev-&gt;y = (gint) (newev-&gt;y / 1.77);
  gdk_event_put ((GdkEvent *) newev);
}
g_signal_connect (window, &quot;button-press-event&quot;,
                  G_CALLBACK (window_button_proxy), main);
g_signal_connect (window, &quot;button-release-event&quot;,
                  G_CALLBACK (window_button_proxy), main);
&lt;/source&gt;

In this example, we've scaled the original application by different scale factors on the horizontal and vertical axes. To maintain the aspect ratio, you may need to use less than the entire available screen space. In this case, you will need to do more sophisticated coordinate transformations in your event-handling code.

Finally, the following code implements a simple that draws circles for button presses and releases. It scales this widget with &lt;code&gt;HildonAnimationActor&lt;/code&gt; and redirects button press and release events to the widget

&lt;source lang=&quot;c&quot;&gt;
/*
window-scaler.c
gcc -Wall -o window-scaler window-scaler.c \
  `pkg-config --cflags --libs gtk+-2.0 hildon-1 cairo`
*/

#include &lt;cairo.h&gt;
#include &lt;gtk/gtk.h&gt;
#include &lt;glib.h&gt;
#include &lt;math.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;hildon/hildon.h&gt;

static gint X_SIZE = 320;
static gint Y_SIZE = 240;

static gint X_POS = 0;
static gint Y_POS = 56;

/* Using 800x424 as fullscreen */
static gdouble X_SCALE = 2.5;  /* width / X_SIZE */
static gdouble Y_SCALE = 1.77; /* height / Y_SIZE */


/** Simple drawing widget **/

static void
drawing_button_event (GtkWidget *drawing,
		      GdkEventButton *event,
		      cairo_t *context)
{
  cairo_new_path (context);
  cairo_move_to (context, event-&gt;x + 5, event-&gt;y);
  cairo_arc (context, event-&gt;x, event-&gt;y, 5, 0, 2 * M_PI);
  if (event-&gt;type == GDK_BUTTON_PRESS)
    cairo_set_source_rgb (context, 1.0, 0.0, 0.0);
  else
    cairo_set_source_rgb (context, 0.0, 0.0, 1.0);
  cairo_fill (context);
}

static void
drawing_realize (GtkWidget *drawing,
		 gpointer user_data)
{
  cairo_t *context;
  context = gdk_cairo_create (GDK_DRAWABLE (drawing-&gt;window));
  gtk_widget_add_events (drawing,
			 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK);
  g_signal_connect (drawing, &quot;button-press-event&quot;,
		    G_CALLBACK (drawing_button_event), context);
  g_signal_connect (drawing, &quot;button-release-event&quot;,
		    G_CALLBACK (drawing_button_event), context);
}

static GtkWidget *
get_drawing_widget (void)
{
  GtkWidget *drawing = gtk_drawing_area_new ();
  g_signal_connect (drawing, &quot;realize&quot;,
		    G_CALLBACK (drawing_realize), NULL);
  return drawing;
}

/** Test application **/

static void
window_button_proxy (GtkWidget *widget,
		     GdkEventButton *event,
		     GtkWidget *proxy)
{
  GdkEventButton *newev = (GdkEventButton *) gdk_event_copy ((GdkEvent *) event);
  newev-&gt;window = proxy-&gt;window;
  newev-&gt;x = (gint) (newev-&gt;x / X_SCALE);
  newev-&gt;y = (gint) (newev-&gt;y / Y_SCALE);
  gdk_event_put ((GdkEvent *) newev);
}

int
main (int argc,
      char *argv[])
{
  HildonAnimationActor *actor;
  GtkWidget *window, *drawing;
  GdkColor pink = { .red = 0xffff, .green = 0x9999, .blue = 0x9999 };

  gtk_init (&amp;argc, &amp;argv);

  window = hildon_stackable_window_new ();
  gtk_widget_modify_bg (GTK_WIDGET (window), GTK_STATE_NORMAL, &amp;pink);
  g_signal_connect (G_OBJECT (window), &quot;delete_event&quot;,
		    G_CALLBACK (gtk_main_quit), NULL);
  gtk_widget_add_events (window,
			 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK);

  actor = HILDON_ANIMATION_ACTOR (hildon_animation_actor_new());
  gtk_widget_add_events (GTK_WIDGET (actor),
			 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK);
  gtk_window_resize (GTK_WINDOW (actor), X_SIZE, Y_SIZE);
  hildon_animation_actor_set_position (actor, X_POS, Y_POS);
  hildon_animation_actor_set_parent (actor, GTK_WINDOW (window));
  hildon_animation_actor_set_scale (actor, X_SCALE, Y_SCALE);

  drawing = get_drawing_widget ();
  gtk_container_add (GTK_CONTAINER (actor), drawing);

  g_signal_connect (window, &quot;button-press-event&quot;,
		    G_CALLBACK (window_button_proxy), drawing);
  g_signal_connect (window, &quot;button-release-event&quot;,
		    G_CALLBACK (window_button_proxy), drawing);

  gtk_widget_show_all (GTK_WIDGET (actor));
  gtk_widget_show_all (GTK_WIDGET (window));

  gtk_main ();
  return 0;
}
&lt;/source&gt;

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Preface</title>
    <id>2306</id>
    <revision>
      <id>40060</id>
      <timestamp>2010-11-11T09:25:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut toplevel heading</comment>
      <text xml:space="preserve">==Legal Notice==
Copyright © 2009 Nokia Corporation &lt;br&gt;
Partial Copyright © 2002-2008 Calum Benson, Adam Elman, Seth Nickell, Colin Z. Robertson

Nokia and Maemo are trademarks or registered trademarks of Nokia Corporation. Other product and company names mentioned herein may be trademarks or trade names of their respective owners.

==Disclaimer==
The information in this document is provided &quot;as is,&quot; with no warranties whatsoever, including any warranty of merchantability, fitness for any particular purpose, or any warranty otherwise arising out of any proposal, specification, or sample. This document is provided for informational purposes only. Nokia Corporation disclaims all liability, including liability for infringement of any proprietary rights, relating to implementation of information presented in this document. Nokia Corporation does not warrant or represent that such use will not infringe such rights. Nokia Corporation retains the right to make changes to this material at any time, without notice.

==License==
This document is licensed under the [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License, version 1.2]. Permission is granted to copy, distribute and/or modify documentation under the terms of the GNU Free Documentation License, version 1.2 or any later version published by the Free Software Foundation. Please refer to the copyright notice in each piece of documentation for Invariant Sections, Front-Cover Texts or Back-Cover Texts, if any, as defined in the License.

The code examples included in this document are copyrighted by Nokia Corporation and are licensed to you under an MIT style license. License text for that MIT-style license is as follows:

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the &quot;Software&quot;), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Connectivity Components</title>
    <id>2155</id>
    <revision>
      <id>29361</id>
      <timestamp>2010-02-12T12:52:54Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">*[[{{PAGENAME}}/Introduction|Introduction]]
*[[{{PAGENAME}}/Maemo Connectivity|Maemo Connectivity]]
*[[{{PAGENAME}}/Implementing Custom Connection Managers|Implementing Custom Connection Managers]]
*[[{{PAGENAME}}/Using_Location_API|Using Location API]]

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Implementing Custom Connection Managers</title>
    <id>2149</id>
    <revision>
      <id>39628</id>
      <timestamp>2010-10-20T13:02:58Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>link</comment>
      <text xml:space="preserve">This section introduces briefly how to implement a custom [[Documentation/Maemo 5 Developer Guide/Architecture/RTCOM#Connection Managers|connection manager plug-in]] for the Maemo devices. The messaging framework in Maemo devices is based on [http://telepathy.freedesktop.org/ Telepathy framework architecture].

Telepathy provides [http://dbus.freedesktop.org/ D-Bus]-based framework that unifies all forms of real-time communication, for example, instant messaging, IRC, voice and video over Internet. The framework provides an interface for plug-ins to extend the protocol support by implementing new connection managers. All client applications that communicate via [http://telepathy.freedesktop.org/wiki/System_Overview Telepathy framework architecture] can then use these new supported protocols.

For more detailed information and source code examples, see the Telepathy framework [http://telepathy.freedesktop.org/spec.html specification] by [http://telepathy.freedesktop.org/spec/ Freedesktop.org].

Because the connection manager uses D-Bus for communication, it can be implemented using any language that supports D-Bus communication, even an interpreted language like, for example, Python. However, in order to allow the connection manager to run natively on Internet tablets, C or C++ is currently preferred.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Introduction</title>
    <id>2147</id>
    <revision>
      <id>37848</id>
      <timestamp>2010-08-17T12:05:10Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>tidy</comment>
      <text xml:space="preserve">The following code examples are used in this chapter:

* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-examples/example_bluetooth.c example_bluetooth.c]
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/location-example/src/location-example.c location-example.c]

For communications with the outside world, the maemo platform provides frameworks ranging from Bluetooth file transfer to making video calls. This chapter goes through the components important for the maemo application developer.

==Acquiring Internet Access==

All applications must use the ''LibConIC'' library for Internet connectivity. LibConIC takes care of e.g. scanning of available WLAN networks and sets up the IP network after the user selects a connection. The LibConIC API works together with the maemo connectivity daemon (''ICd'') that handles both WLAN and Bluetooth connections. For more information on LibConIC and ICd, see section [[Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Maemo Connectivity|Maemo Connectivity]].

==VoIP, Instant Messaging and Presence==

The ''[http://telepathy.freedesktop.org/ Telepathy]'' communications framework provides a unified API for presence, messaging and voice/video calls. The list of supported protocols is long: IRC, ICQ, XMPP (Jabber), SIP, MSN etc. The connection manager of Telepathy is expandable, and uses D-Bus for communication. Telepathy usage in maemo is described in more detail in section [[Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Implementing Custom Connection Managers|Implementing Custom Connection Managers]].

==Bluetooth==

A high level API for Bluetooth is offered as part of the Maemo connectivity subsystem. Using its D-Bus API, a program can find remote Bluetooth devices, for example, phones, send files over OBEX object push, and create pairings with remote devices. For these tasks, this framework is recommended because it has a much simpler API and makes the applications look and behave consistently.

For Bluetooth operations that are not supported by the maemo connectivity framework, maemo includes a lower level BlueZ D-Bus API, which is also the main Bluetooth interface on all Linux systems. The BlueZ API has features for practically all aspects of Bluetooth systems, and as a consequence is a lot more complex than the higher level Maemo Connectivity subsystem's offerings.

Section [[Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Maemo Connectivity|Maemo Connectivity]] describes the high level D-Bus API and its use. For more information on the BlueZ API, see the [http://www.bluez.org/BlueZ BlueZ web site]. The maemo example package also includes example code about both libraries.

==OBEX==

Bluetooth devices use OBEX protocol to exchange data objects. Maemo includes libraries to help working with this protocol. For OBEX FTP, the easiest way is to use GnomeVFS's OBEX backend. For more granular control, there is ''libgwobex'', which GnomeVFS uses in its implementation. The OpenOBEX library provides an lower-level interface.

For more information on libgwobex and ''OpenOBEX'', see section [[Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Maemo Connectivity|Maemo Connectivity]] and [http://maemo.org/api_refs/5.0/beta/osso-gwobex/ API references]. For more information on OpenOBEX, see the  [http://dev.zuckschwerdt.org/openobex/ project's web site].

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Maemo Connectivity</title>
    <id>2148</id>
    <revision>
      <id>42269</id>
      <timestamp>2011-03-01T13:56:18Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Connectivity Subsystem */ convert tables to definition lists</comment>
      <text xml:space="preserve">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.

Even though the connectivity device drivers are closely related to this subsystem, they are considered to be outside of the scope of this manual.

===Components of the Maemo connectivity architecture===

* '''Maemo connectivity UI''' - User Interface parts of the connectivity. This includes Control Panel applets and several different dialogs.
* '''Maemo connectivity daemon (ICd)''' - [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.
* '''OBEX wrapper''' - Interface to OBEX services. The primary target user of this library is the OBEX gnome-vfs module.
* '''OpenOBEX''' - Open source implementation of the Object Exchange (OBEX) protocol. For more information on OpenOBEX, visit http://triq.net/obex/
* '''BlueZ Bluetooth stack''' - The de-facto implementation of Bluetooth for Linux. For more information on BlueZ, visit [http://www.bluez.org/ http://www.bluez.org]
* '''[http://git.kernel.org/?p=bluetooth/bluez.git;a=tree;f=doc;hb=HEAD BlueZ D-Bus API]''' - BlueZ accepts commands via D-Bus.
* '''WLAN connectivity daemon''' - The daemon controlling WLAN connections.
* '''WLAN device driver''' - mac80211 from Linux and wl12xx driver implemented by Nokia, licensed under GPLv2.

===Internet Access Points (IAP)===

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's modem.

==Connectivity Subsystem ==

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's files, the File selector consults the Phone Access subsystem.

In offline mode, none of the radios must be active. The [[Documentation/Maemo 5 Developer Guide/Architecture/System Software#Device State Management Entity (DSME)|Device System Management Entity (DSME)]] of Maemo provides information about the transitions to and from the offline mode.

;Name
: Connectivity UI
;Purpose
: Provides the UI for managing phone and Internet connections. Available as a Control Panel applet, and from the Status Bar.
;Responsibilities and additional requirements
: &lt;ul&gt;&lt;li&gt;Displaying active connections with statistics&lt;/li&gt;&lt;li&gt;Updating status indicators&lt;/li&gt;&lt;li&gt;Providing dialogs for changing and disconnecting connections&lt;/li&gt;&lt;/ul&gt;
;Concurrent usage
: (N/A)

;Name
: Phone Access
;Purpose
: Provides connections to phones with different Bluetooth profiles
;Responsibilities and additional requirements
: &lt;ul&gt;&lt;li&gt;Searching for phones and inquiring their services&lt;/li&gt;&lt;li&gt;Keeping phone register&lt;/li&gt;&lt;li&gt;Providing status of the phone connections for Connectivity UI&lt;/li&gt;&lt;li&gt;Binding RFCOMM devices to Bluetooth services on the phone&lt;/li&gt;&lt;li&gt;Providing easy access to OpenOBEX&lt;/li&gt;&lt;/ul&gt;
;Concurrent usage
: Number of clients not limited by Maemo. However, some phones may not support more than one Bluetooth profile at a time.

;Name
: Internet Access
;Purpose
: Provides Internet connections over different bearers.
;Responsibilities and additional requirements
: &lt;ul&gt;&lt;li&gt;Providing means for configuration and management of IAP settings&lt;/li&gt;&lt;li&gt;Providing API for Internet connections over different bearers (e.g. WLAN, GPRS)&lt;/li&gt;&lt;li&gt;Providing status of Internet connections for Connectivity UI&lt;/li&gt;&lt;/ul&gt;
;Concurrent usage
: Number of clients not limited, but only one connection to the Internet can exist at any given time

Phone and Internet connections are quite different by nature and behavior. These are introduced in more detail in the following sections.

===Phone Access ===

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.

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.

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.

;Name
: General Bluetooth UI
;Purpose
: User interface for managing all paired BT devices
;Responsibilities and additional requirements
: &lt;ul&gt;&lt;li&gt;Keeping a list of all paired devices (not only phones)&lt;/li&gt;&lt;/ul&gt;
;Concurrent usage
: N/A

;Name
: BT search
;Purpose
: Searches for available Bluetooth devices
;Responsibilities and additional requirements
: &lt;ul&gt;&lt;li&gt;Bluetooth inquiry&lt;/li&gt;&lt;li&gt;Checking on offline mode state&lt;/li&gt;&lt;/ul&gt;
;Concurrent usage
: N/A

;Name
: BT service discovery
;Purpose
: Checks if a found Bluetooth device is sufficient
;Responsibilities and additional requirements
: Bluetooth service discovery (SDP)
;Concurrent usage
: Not limited (but used by Phone selection UI and Phone connection daemon only)

;Name
: GW OBEX library
;Purpose
: Provides access to OpenOBEX library for the File selector (Gnome VFS) on a higher abstraction level than OpenOBEX itself supports
;Responsibilities and additional requirements
: &lt;ul&gt;&lt;li&gt;Handling OBEX requests&lt;/li&gt;&lt;/ul&gt;
;Concurrent usage
: Not limited

Maemo Bluetooth also supports HID (keyboard) and OPP (object push file transfer) profiles.

===Internet Access ===

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:

* WLAN connection to a wireless access point.
* Bluetooth connection through phone using Point-to-Point Protocol (PPP) and a cellular modem (in the phone).

For Bluetooth connections, AT commands are applied to establish a PPP link to the cellular modem and the connection to the Internet.

;Name
: IC daemon
;Purpose
: IC daemon establishes Internet connections over different bearers.
;Responsibilities and additional requirements
: &lt;ul&gt;&lt;li&gt;Controlling that only one Internet connection (one active IAP) can exist at any given time&lt;/li&gt;&lt;li&gt;Using WLAN or GPRS connection daemon for getting a network device and getting the connection authenticated&lt;/li&gt;&lt;li&gt;Starting IP level services like PPP and DHCP&lt;/li&gt;&lt;li&gt;Providing statistics about the usage of IAPs to any application&lt;/li&gt;&lt;/ul&gt;
;Concurrent usage
: Has multiple clients and limits the connections to one at a time

;Name
: Internet Connectivity GUI
;Purpose
: Has GUI applications for configuring Internet Access Points and WLAN settings.
;Responsibilities and additional requirements
: &lt;ul&gt;&lt;li&gt;Providing the UI for configuring an IAP&lt;/li&gt;&lt;li&gt;Providing the UI for WLAN settings&lt;/li&gt;&lt;li&gt;Scanning for available WLAN networks (on request)&lt;/li&gt;&lt;li&gt;Saving IAP and WLAN settings (excluding EAP settings) to GConf&lt;/li&gt;&lt;li&gt;Opening up dialogs and displaying notifications&lt;/li&gt;&lt;/ul&gt;
;Concurrent usage
: N/A

;Name
: WLAN connection daemon
;Purpose
: Manages WLAN network connections
;Responsibilities and additional requirements
: &lt;ul&gt;&lt;li&gt;Starting WLAN driver with the settings provided; stopping WLAN&lt;/li&gt;&lt;li&gt;Requesting authentication when necessary&lt;/li&gt;&lt;li&gt;Relaying WLAN IAP settings from IC daemon to WLAN drivers and authentication requests to EAP&lt;/li&gt;&lt;li&gt;Relaying WLAN events from WLAN drivers&lt;/li&gt;&lt;li&gt;Providing WLAN status information&lt;/li&gt;&lt;/ul&gt;
;Concurrent usage
: Not limited

;Name
: EAP UI
;Purpose
: User interface for EAP authentication
;Responsibilities and additional requirements
: &lt;ul&gt;&lt;li&gt;Invoking a dialog for an authentication password&lt;/li&gt;&lt;li&gt;Showing authentication status&lt;/li&gt;&lt;/ul&gt;
;Concurrent usage
: N/A

;Name
: EAP
;Purpose
: Provides WLAN security excluding basic WEP settings, which are in Wireless Extensions
;Responsibilities and additional requirements
: &lt;ul&gt;&lt;li&gt;Taking care of the authentication process for the active IAP&lt;/li&gt;&lt;li&gt;Delivering progress events to IC daemon&lt;/li&gt;&lt;li&gt;As a special case, controlling the EAP-SIM authentication using the SIM Access Profile&lt;/li&gt;&lt;li&gt;Providing authentication status&lt;/li&gt;&lt;/ul&gt;
;Concurrent usage
: N/A

==Internet Connectivity Daemon ==

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.

===Decomposition ===

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.

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. 

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.

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 &quot;Never&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.

Because each application keeps its data updated and provides the always-online feature, the ICd is only responsible for creating connections.

While writing an application making use of the ICd system, keep the following in mind:

* The application must always use the existing available connection.
* 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.
* Ensure that the user is aware of updates and can see the time when the data was last updated.
* Ensure that the application registers via LibConIC and listens to signals emitted by the ICd (Connection Created, Lost and Changed), and react as follows:
** '''Connection Created''': Use the connection and update all data.
** '''Connection Lost''': Go to an idle state silently and wait until a new connection is created.
** '''Connection Changed''': Use the new connection.
* Ensure that automatic data updates run in background and silently:
** Avoid alarming the user with unnecessary banners or dialogs.
** Ensure that usernames and passwords are saved so that automatic updates can be performed without prompts.
** During and after updates, ensure that no failures display error notifications.
* The connectivity infrastructure must take care of error situations in a centralized way.

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.

=== WLAN ===

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:

* 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.
* 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.
* 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.

==LibConIC Library ==

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/5.0/5.0-final/libconic/index.html Internet Connectivity API]

Libconic is high level and stable object-oriented API suitable for the following purposes:

* requesting Internet connection
* listening for Internet connection status events
* receiving statistics of Internet connection
* getting proxy settings for the current connection
* getting a list of user-saved connections (IAPs)

=== Application Requirements ===

Before applications can use the Libconic API, they must meet the following requirements:

# use non-blocking sockets
# have the system D-Bus running
# &lt;code&gt;g_type_init()&lt;/code&gt; has to be called
# employ no threading support in the Libconic API

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, &lt;code&gt;g_type_init()&lt;/code&gt; is called as a part of &lt;code&gt;gtk_init()&lt;/code&gt;, and probably no extra threads are used. 

=== Non-Blocking Sockets ===

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 &lt;code&gt;G_IO_FLAG_NONBLOCK&lt;/code&gt; flag provide non-blocking way to use sockets.

With threads, blocking sockets can be used, although Libconic API itself is not thread safe. 

=== System D-Bus ===

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 &lt;code&gt;dbus_connection_setup_with_g_main()&lt;/code&gt;.

N.B. Setting up LibOSSO context connects the application to required D-Bus. 

=== GType ===

Libconic API is &lt;code&gt;GObject&lt;/code&gt;-based, so in order to get the API working, you must initialize GLib's &lt;code&gt;GType&lt;/code&gt; properly. To do that, use &lt;code&gt;g_type_init()&lt;/code&gt;. 

=== No Multiple Threads ===

Libconic API is not thread-safe. If the applications has threads, use Libconic API only from the same context where &lt;code&gt;GMainloop&lt;/code&gt; is running.

===Libconic Usage ===

==== Requesting for Connection ====

[http://maemo.org/api_refs/5.0/5.0-final/libconic/ LibConIc] is an asynchronous connection API, which heavily relies on &lt;code&gt;GObject&lt;/code&gt; signals. Basically this means that &lt;code&gt;GMainloop&lt;/code&gt; must be iterated in order to successfully execute connection requests. After the application is set up, use a &lt;code&gt;ConIcConnection&lt;/code&gt; object to request a connection:

&lt;source lang=&quot;c&quot;&gt;
    gboolean success = FALSE;
    /* Create connection object */
    ConIcConnection *connection = con_ic_connection_new();
    /* Connect signal to receive connection events */
    g_signal_connect(G_OBJECT(connection), &quot;connection-event&quot;,
                     G_CALLBACK(my_connection_handler), NULL);
    /* Request connection and check for the result */
    success = con_ic_connection_connect(connection, CON_IC_CONNECT_FLAG_NONE);
    if (!success) g_warning(&quot;Request for connection failed&quot;);
&lt;/source&gt;

At this point, the application does not yet have an Internet connection. A successful return from &lt;code&gt;con_ic_connection_connect()&lt;/code&gt; means only that the request was successfully dispatched to the Internet Connectivity daemon. When the daemon has a connection ready, the application receives an [http://maemo.org/api_refs/5.0/5.0-final/libconic/conicconnectionevent_8h.html event] (as an &lt;code&gt;GObject&lt;/code&gt; 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.

The connection handler (&lt;code&gt;my_connection_handler()&lt;/code&gt; function registered in the previous snippet) could look like this:

&lt;source lang=&quot;c&quot;&gt;
static void my_connection_handler(ConIcConnection *connection,
                                  ConIcConnectionEvent *event,
                                  gpointer user_data)
{
    ConIcConnectionStatus status = con_ic_connection_event_get_status(event);
    ConIcConnectionError error;
    const gchar *iap_id = con_ic_event_get_iap_id(CON_IC_EVENT(event));
    const gchar *bearer = con_ic_event_get_bearer_type(CON_IC_EVENT(event));
    switch(status) {
        case CON_IC_STATUS_CONNECTED:
            g_debug(&quot;Hey, we are connected to IAP %s with bearer %s!&quot;, iap_id, bearer);
            break;
        case CON_IC_STATUS_DISCONNECTING:
            g_debug(&quot;We are disconnecting...&quot;);
            break;
        case CON_IC_STATUS_DISCONNECTED:
            g_debug(&quot;And we are disconnected. Let's see what went wrong...&quot;);
            error = con_ic_connection_event_get_error(event);
            switch(error) {
                case CON_IC_CONNECTION_ERROR_NONE:
                    g_debug(&quot;Libconic thinks there was nothing wrong.&quot;);
                    break;
                case CON_IC_CONNECTION_ERROR_INVALID_IAP:
                    g_debug(&quot;Invalid (non-existing?) IAP was requested.&quot;);
                    break;
                case CON_IC_CONNECTION_ERROR_CONNECTION_FAILED:
                    g_debug(&quot;Connection just failed.&quot;);
                    break;
                case CON_IC_CONNECTION_ERROR_USER_CANCELED:
                    g_debug(&quot;User canceled the connection attempt&quot;);
                    break;
            }
            break;
        default:
            g_debug(&quot;Unknown connection status received&quot;);
    }
}
&lt;/source&gt;

====Listening for Connection Events ====

Sometimes the application does not actively start connections but needs to detect if the device is online. The Libconic &quot;automatic events&quot; feature, enabled with the &lt;code&gt;automatic-connection-events&lt;/code&gt; &lt;code&gt;GObject&lt;/code&gt; property, can achieve this:

&lt;source lang=&quot;c&quot;&gt;
    /* Create connection object */
    ConIcConnection *connection = con_ic_connection_new();
    /* Connect signal to receive connection events */
    g_signal_connect(G_OBJECT(connection), &quot;connection-event&quot;,
                     G_CALLBACK(my_connection_handler), NULL);
    /* Set automatic events */
    g_object_set(G_OBJECT(connection), &quot;automatic-connection-events&quot;, TRUE, NULL);
&lt;/source&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, &lt;code&gt;ConIcConnectionEvent&lt;/code&gt; with status &lt;code&gt;CON_IC_STATUS_DISCONNECTED&lt;/code&gt; is emitted. This event has &lt;code&gt;NULL&lt;/code&gt; IAP ID and bearer, because there is no IAP getting disconnected, but the event indicates that the device is offline.

N.B. The main loop must be iterated in order to receive the event. If you need the connection status information synchronously, you can iterate the main loop yourself:

&lt;source lang=&quot;c&quot;&gt;
static void connection_info(ConIcConnection *connection,
                            ConIcConnectionEvent *event,
                            gpointer user_data)
{
    ConIcConnectionStatus status = con_ic_connection_event_get_status(event);
    ConIcConnectionStatus *status_ptr = (ConIcConnectionStatus*)user_data;
    *status_ptr = status;
}
/* ... */
    /* Create connection object and set on automatic events (see previous snippet) ... */
    static ConIcConnectionStatus status = 0xFFFF;
    ConIcConnection *connection = con_ic_connection_new();
    g_signal_connect(G_OBJECT(connection), &quot;connection-event&quot;,
                     G_CALLBACK(connection_info), &amp;status);
    g_object_set(G_OBJECT(Connection), &quot;automatic-connection-events&quot;, TRUE, NULL);
    /* Iterate main loop for the first connection event */
    while (status == 0xFFFF) g_main_context_iteration(NULL, TRUE);
    if (status == CON_IC_STATUS_CONNECTED)
        g_debug(&quot;We are connected!&quot;);
    else
        g_debug(&quot;We are not connected!&quot;);
&lt;/source&gt;

==== Receiving Statistics of Connection ====

To receive statistics of the current Internet connection, use the &lt;code&gt;con_ic_connection_statistics()&lt;/code&gt; 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 &lt;code&gt;NULL&lt;/code&gt;.

&lt;source lang=&quot;c&quot;&gt;
static void connection_statistics(ConIcConnection *connection,
                                  ConIcStatisticsEvent *event,
                                  gpointer user_data)
{
    g_debug(&quot;Here are all kind of nice statistics about the connection:&quot;);
    g_debug(&quot;Time active: %u, signal strength: %u, received packets: %llu, &quot;
            &quot;sent packets: %llu, received bytes: %llu, sent bytes: %llu&quot;,
            con_ic_statistics_event_get_time_active(event),
            con_ic_statistics_event_get_signal_strength(event),
            con_ic_statistics_event_get_rx_packets(event),
            con_ic_statistics_event_get_tx_packets(event),
            con_ic_statistics_event_get_rx_bytes(event),
            con_ic_statistics_event_get_tx_bytes(event));
}
/* ... */
    /* ConIcConnection object named &quot;connection&quot; has already been created */
    g_signal_connect(G_OBJECT(connection), &quot;statistics&quot;,
                     G_CALLBACK(connection_statistics), NULL);
    if (!con_ic_connection_statistics(connection ,NULL))
        g_warning(&quot;Requesting connection statistics failed!&quot;);
&lt;/source&gt;

==== Getting Proxy Settings ====

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 &lt;code&gt;con_ic_connection_get_proxy_mode()&lt;/code&gt; function. Next, use the following functions to get the actual proxy settings:

* If proxy mode is &lt;code&gt;CON_IC_PROXY_MODE_NONE&lt;/code&gt;, do not use any proxies.
* If proxy mode is &lt;code&gt;CON_IC_PROXY_MODE_MANUAL&lt;/code&gt;, use the following functions to query proxy settings:
** &lt;code&gt;con_ic_connection_get_proxy_host()&lt;/code&gt; to get the proxy host
** &lt;code&gt;con_ic_connection_get_proxy_port()&lt;/code&gt; to get the proxy port
** &lt;code&gt;con_ic_connection_get_proxy_ignore_hosts()&lt;/code&gt; to get a list of hosts for which the proxy should not be used.
* If proxy mode is &lt;code&gt;CON_IC_PROXY_MODE_AUTO&lt;/code&gt;, use &lt;code&gt;con_ic_connection_get_proxy_autoconfig_url()&lt;/code&gt; to get a proxy auto configuration URL.
** Use of auto configuration URL is explained in [[:wikipedia:Proxy_auto-config|Wikipedia]]

In this example, the &lt;code&gt;connection-event&lt;/code&gt; handler is modified to print HTTP proxy settings when establishing connection:

&lt;source lang=&quot;c&quot;&gt;
static void my_connection_handler(ConIcConnection *connection,
                                  ConIcConnectionEvent *event,
                                  gpointer user_data)
{
    ConIcConnectionStatus status = con_ic_connection_event_get_status(event);
    GSList *ignore_hosts;

    if (status == CON_IC_STATUS_CONNECTED) {
        g_debug(&quot;We are connected! \
Let's see what kind of settings we have for HTTP proxy...&quot;);

        /* Do things based on specified proxy mode */
        switch (con_ic_connection_get_proxy_mode(connection)) {

            case CON_IC_PROXY_MODE_NONE:
                g_debug(&quot;No proxies defined, it is direct connection&quot;);
                break;

            case CON_IC_PROXY_MODE_MANUAL:
                g_debug(&quot;HTTP proxy %s:%d in use&quot;,
                        con_ic_connection_get_proxy_host(connection, CON_IC_PROXY_PROTOCOL_HTTP),
                        con_ic_connection_get_proxy_port(connection, CON_IC_PROXY_PROTOCOL_HTTP));

                g_debug(&quot;List of hosts, for which proxy should not be used:&quot;);
                ignore_hosts = con_ic_connection_proxy_ignore_hosts(connection);
                for (GSList *iter = ignore_hosts; iter != NULL; iter = g_slist_next(iter))
                {
                    g_debug(&quot;%s&quot;, (gchar *)iter-&gt;data);
                    g_free(iter-&gt;data);
                }
                g_slist_free(ignore_hosts);
                break;

            case CON_IC_PROXY_MODE_AUTO:
                g_debug(&quot;Proxy auto-config URL %s should be used&quot;,
                        con_ic_connection_get_proxy_autoconfig_url(connection));
                break;
        }
    }
}
&lt;/source&gt;

Proxy functions also exist for each individual protocol (like &lt;code&gt;con_ic_connection_get_proxy_ftp_host()&lt;/code&gt;), but these functions are deprecated. Avoid them in newly-written code.

====Getting List of User-Saved Connections ====

To query all user-saved connections (IAPs), use the &lt;code&gt;con_ic_connection_get_all_iaps()&lt;/code&gt; function. The function returns simply a singly linked list of &lt;code&gt;ConIcIap&lt;/code&gt; objects:

&lt;source lang=&quot;c&quot;&gt;
    /* ConIcConnection object named &quot;connection&quot; has already been created */
    GSList *saved_iaps = con_ic_connection_get_all_iaps(connection);
    g_debug(&quot;The following connections have been saved by the user:&quot;);
    for (GSList *iter = saved_iaps; iter != NULL; iter = g_slist_next(iter)) {
        /* Get IAP object and print some information about it */
        ConIcIap *iap = (ConIcIap *)iter-&gt;data;
        g_debug(&quot;Connection %s called '%s' using bearer %s&quot;,
                con_ic_iap_get_id(iap), con_ic_iap_get_name(iap),
                con_ic_iap_get_bearer_type(iap));
        /* We unref the IAP object as we are not going to use it anymore */
        g_object_unref(iap);
    }
    g_slist_free(saved_iaps);
&lt;/source&gt;

==== Porting Application from OSSO IC API to Libconic ====

* If the application does not have &lt;code&gt;GType&lt;/code&gt;, GLib or D-Bus configured, set them up:

&lt;source lang=&quot;c&quot;&gt;
      DBusConnection *system_dbus;
      GMainLoop *main_loop;
      g_type_init();
      main_loop = g_main_loop_new(NULL, FALSE);
      system_dbus = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
      dbus_connection_setup_with_g_main(system_dbus, NULL);
&lt;/source&gt;

* Include the correct header file:

&lt;source lang=&quot;c&quot;&gt;
      #include &lt;osso-ic.h&gt;
      /* change to: */
      #include &lt;conic.h&gt;
&lt;/source&gt;

* Set up &lt;code&gt;ConIcConnection&lt;/code&gt; object and &lt;code&gt;connection-event&lt;/code&gt; handler instead of &lt;code&gt;osso_iap_cb_t&lt;/code&gt; callback:

&lt;source lang=&quot;c&quot;&gt;
      static void my_connection_cb(struct iap_event_t *event, void *arg)
      {
      /* ... */
      }
      /* ... */
          osso_iap_cb(my_connection_cb);
      ===&gt;
      static void my_connection_cb(ConIcConnection *connection,
                                   ConIcConnectionEvent *event,
                                   gpointer user_data)
      {
      /* ... */
      }
      /* ... */
          ConIcConnection *connection = con_ic_connection_new();
          g_signal_connect(G_OBJECT(connection), &quot;connection-event&quot;,
                           G_CALLBACK(my_connection_cb), app_data);
&lt;/source&gt;

* Request statistics with &lt;code&gt;con_ic_connection_statistics()&lt;/code&gt; instead of &lt;code&gt;osso_iap_get_statistics()&lt;/code&gt;.
* List all available IAPs with &lt;code&gt;con_ic_connection_get_all_iaps()&lt;/code&gt; instead of &lt;code&gt;osso_iap_get_configured_iaps()&lt;/code&gt;.
* Configure autoconf to use Libconic instead of OSSO IC API:
&lt;source lang=&quot;autoconf&quot;&gt;
PKG_CHECK_MODULES(OSSOIC, osso-ic)
AC_SUBST(OSSOIC_CFLAGS)
AC_SUBST(OSSOIC_LIBS)
# Change to:
PKG_CHECK_MODULES(CONIC, conic)
AC_SUBST(CONIC_CFLAGS)
AC_SUBST(CONIC_LIBS)
&lt;/source&gt;
* In &lt;code&gt;debian/control&lt;/code&gt; file &lt;code&gt;Build-Depends&lt;/code&gt; section, depend on &lt;code&gt;libconic0-dev&lt;/code&gt; instead of &lt;code&gt;osso-ic-dev&lt;/code&gt;.

==Bluetooth Libraries ==

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.

=== Discovering devices ===

Maemo provides a D-Bus interface for displaying a Bluetooth device search dialog (You can find a list of available Bluetooth D-Bus calls [[#D-Bus Connectivity UI Interface|below]]). 

Devices can be searched with following steps:
# Set up a D-Bus connection
# call &lt;code&gt;bt_ui.search_req&lt;/code&gt; to show the dialog - you can filter the results
# catch &lt;code&gt;bt_ui.search_result&lt;/code&gt; signal
# process the results

Here is a working example in C:

&lt;source lang=&quot;c&quot;&gt;
// Bluetooth discovery example - bluetooth libraries will not work in the SDK!
#include &lt;hildon/hildon-program.h&gt;
#include &lt;dbus/dbus.h&gt;
#include &lt;dbus/dbus-glib.h&gt;
#include &lt;contbtdialogs-dbus.h&gt;

/* structure to hold some info */
typedef struct _AppData AppData;
struct _AppData {
    HildonProgram *program;
    HildonStackableWindow *window;
    DBusGConnection *dbus_conn;
};

static DBusGConnection *dbus_conn = NULL;
static AppData *app = NULL;

gboolean initialize()
{
    GError *error = NULL; 

    //connects to system bus - this is where bt_ui resides
    dbus_conn = dbus_g_bus_get(DBUS_BUS_SYSTEM, &amp;error);
    if (dbus_conn == NULL)
    {
        g_print(&quot;Initialization failed: %s\n&quot;, error-&gt;message);
        g_clear_error(&amp;error);
        return FALSE;
    }

    return TRUE;
}

DBusHandlerResult search_done(DBusConnection *con, DBusMessage *msg, void *data)
{
    gchar *device_address;
    gchar *device_name;
    gchar *device_name_logical;
    gchar *device_class_minor;
    gchar *device_class_major;
    gboolean device_trusted = FALSE;
    gchar **device_services;
    gint device_services_len;
    DBusError *err = NULL;

    if (dbus_message_is_signal(msg, CONBTDIALOGS_DBUS_INTERFACE, CONBTDIALOGS_SEARCH_SIG))
    {
        /* this is our message, so get response args */
        if (dbus_message_get_args(msg, err, DBUS_TYPE_STRING, &amp;device_address,
                          DBUS_TYPE_STRING, &amp;device_name,
                          DBUS_TYPE_STRING, &amp;device_name_logical,
                          DBUS_TYPE_STRING, &amp;device_class_major,
                          DBUS_TYPE_STRING, &amp;device_class_minor,
                          DBUS_TYPE_BOOLEAN, &amp;device_trusted,
                          DBUS_TYPE_ARRAY, &amp;device_services,
                          DBUS_TYPE_INT32, &amp;device_services_len,
                          DBUS_TYPE_INVALID))
        {
            g_print(_(&quot;Error getting device info: %s\n&quot;), err-&gt;message);
            dbus_error_free(err);

            return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
        }

        g_print(&quot;OK&quot;);
        /* you can now use args */
        return DBUS_HANDLER_RESULT_HANDLED;
    }

    return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
}

gboolean searchBtDevices(AppData *app)
{
    GError *error = NULL;
    DBusGProxy *proxy;
    DBusConnection *second_conn;
    gchar *filter_string = NULL;
    gchar **filter = NULL;

    filter = g_new0(gchar*, 1);
    filter[0] = NULL;

    /* Create proxy to bluetooth UI service */
    proxy = dbus_g_proxy_new_for_name( app-&gt;dbus_conn,
                                   CONBTDIALOGS_DBUS_SERVICE,
                                   CONBTDIALOGS_DBUS_PATH,
                                   CONBTDIALOGS_DBUS_INTERFACE );

    hildon_banner_show_information( GTK_WIDGET(app-&gt;window), NULL, _(&quot;Searching BT devices...&quot;));

    /* run the call to show dialog */
    if (!dbus_g_proxy_call( proxy,
                            CONBTDIALOGS_SEARCH_REQ,
                            &amp;error,
                            G_TYPE_STRING, &quot;&quot;,
                            G_TYPE_STRING, &quot;&quot;,
                            G_TYPE_STRV, &amp;filter,
                            G_TYPE_STRING, &quot;require&quot;,
                            G_TYPE_INVALID, G_TYPE_INVALID ))
    {
        g_print(_(&quot;Bluetooth discovery failed: %s\n&quot;, error-&gt;message);
        g_clear_error(&amp;error);
        g_strfreev(filter);
        g_object_unref( G_OBJECT(proxy) );

        return FALSE;
    }

    g_object_unref( G_OBJECT(proxy) );
    g_strfreev(filter);

    /* create second connection to catch our signal */
    second_conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
    /* set search_done as message handler */
    g_assert(dbus_connection_add_filter(second_conn, search_done, NULL, NULL));
    /* we are looking for signal, so accept only signals */
    filter_string = g_strdup_printf(&quot;type='signal'&quot;);
    dbus_bus_add_match(second_conn, filter_string, NULL);
    dbus_connection_unref(second_conn);

    return TRUE;
}

void search_btn_pressed(HildonButton *btn, gpointer data)
{
    /* data = our AppData struct */
    if (!searchBtDevices(data))
        return FALSE;
    else
        return TRUE;
}

HildonStackableWindow *createMainWindow(AppData *app)
{
    /** Creates window with button that searches bt devices when clicked **/

    HildonStackableWindow *window = HILDON_STACKABLE_WINDOW(hildon_stackable_window_new());
    GtkWidget *search_btn;
    
    search_btn = hildon_button_new( HILDON_SIZE_AUTO_WIDTH | HILDON_SIZE_FINGER_HEIGHT,
 HILDON_BUTTON_ARRANGEMENT_VERTICAL );
    hildon_button_set_text (HILDON_BUTTON (search_btn), &quot;Bluetooth example&quot;, &quot;BT example&quot;);

    /* Add signals */
    g_signal_connect( G_OBJECT(window), &quot;delete_event&quot;, G_CALLBACK(gtk_main_quit), NULL;
    g_signal_connect( G_OBJECT(window), &quot;destroy&quot;, G_CALLBACK(gtk_main_quit), NULL);
    g_signal_connect( G_OBJECT(search_btn), &quot;clicked&quot;, G_CALLBACK(search_btn_pressed), app);

    gtk_widget_show_all( GTK_WIDGET(search_btn) );

    return window;     
}

int main(int argc, char* argv[])
{
    /* Create empty appdata */
    app = g_new0(AppData, 1);

    /* Init localization support */
    locale_init();

    /* Init gtk */
    gtk_init(&amp;argc, &amp;argv);

    if (!initialize())
        return -1;

    /* Create program object */
    app-&gt;program = HILDON_PROGRAM(hildon_program_get_instance());
    g_set_application_name(&quot;Bluetooth discovery example&quot;);

    app-&gt;window = createMainWindow();
    if (!window)
        return -1;
    
    app-&gt;dbus_conn = dbus_conn;

    gtk_widget_show_all( GTK_WIDGET(window) );
    gtk_main();

    /* just in case */
    if (dbus_conn != NULL)
        dbus_g_connection_unref(dbus_conn);

    return 0;
}

&lt;/source&gt;

=== Libgwobex ===

Libgwobex provides access to libopenobex functionality by providing a helper/wrapper interface. Libopenobex is explained in detail in the following section.

The interface to libgwobex is available at [http://maemo.org/api_refs/5.0/5.0-final/osso-gwobex/ GW OBEX Library Documentation].

===Creating Connection ===

The connection with libgwobex is established using the &lt;code&gt;gw_obex_setup_dev&lt;/code&gt; function, setting up the connection. gw-obex.h

&lt;source lang=&quot;c&quot;&gt;
#define OBEX_FTP_UUID \
        &quot;\xF9\xEC\x7B\xC4\x95\x3C\x11\xD2\x98\x4E\x52\x54\x00\xDC\x9E\x09&quot;
#define OBEX_FTP_UUID_LEN 16

/* ... */

GwObex* gw_obex_setup_dev (const gchar * device, const gchar * uuid, gint uuid_len,
                           GMainContext * context, gint * error )
&lt;/source&gt;

The following code snippet illustrates how to open a handle using &lt;code&gt;gw_obex_setup_dev&lt;/code&gt;.

&lt;source lang=&quot;c&quot;&gt;
if (ctx-&gt;rfcomm_dev) {
        if (ctx-&gt;use_ftp)
                ctx-&gt;obex = gw_obex_setup_dev(ctx-&gt;rfcomm_dev,
                        OBEX_FTP_UUID, OBEX_FTP_UUID_LEN,
                        NULL, &amp;err);
        else
                ctx-&gt;obex = gw_obex_setup_dev(ctx-&gt;rfcomm_dev, NULL,
                        0, NULL, &amp;err);

        if (ctx-&gt;obex == NULL)
                printf(&quot;OBEX setup failed: %s\n&quot;, response_to_string(err));
}
&lt;/source&gt;

In this example, &lt;code&gt;ctx-&amp;gt;rfcomm_dev&lt;/code&gt; points to a string containing the device node name (e.g. &lt;code&gt;/dev/rfcomm0&lt;/code&gt;). &lt;code&gt;ctx-&amp;gt;use_ftp&lt;/code&gt; dictates whether to set up standard folder browsing services. If &lt;code&gt;use_ftp&lt;/code&gt; is untrue, then INBOX is connected.

===Closing Connection ===

To close a gwobex connection, use the following function: gw-obex.h

&lt;source lang=&quot;c&quot;&gt;
void gw_obex_close ( GwObex * ctx );
&lt;/source&gt;

The following code demonstrates this usage.

&lt;source lang=&quot;c&quot;&gt;
if (ctx-&gt;obex) {
        gw_obex_close(ctx-&gt;obex);
        ctx-&gt;obex = NULL;
}
&lt;/source&gt;

If &lt;code&gt;ctx-&amp;gt;obex&lt;/code&gt; is not &lt;code&gt;NULL&lt;/code&gt;, it is simply passed as an argument to &lt;code&gt;gw_obex_close()&lt;/code&gt;.

===Using Connection ===

The libgwobex library provides general file handling functionality, including reading directory structure, browsing in different folders and getting files.

To read entries from an opened directory, use the following function: gw-obex.h

&lt;source lang=&quot;c&quot;&gt;
gboolean gw_obex_read_dir (GwObex * ctx,
                           const gchar * dir,
                           gchar ** buf,
                           gint * buf_size,
                           gint * error );
&lt;/source&gt;

&lt;code&gt;gw_obex_read_dir&lt;/code&gt; reads an entry from the selected folder and returns the result in the &lt;code&gt;buf&lt;/code&gt; argument given to the function.

&lt;source lang=&quot;c&quot;&gt;
gboolean ret;
/* ... */
ret = gw_obex_read_dir(ctx-&gt;obex, dir, buf, buf_size, err);
&lt;/source&gt;

This reads an entry from the directory &lt;code&gt;dir (char *)&lt;/code&gt; and returns it in &lt;code&gt;buf (char **)&lt;/code&gt;.

To change the current directory, use the following function: gw-obex.h

&lt;source lang=&quot;c&quot;&gt;
gboolean gw_obex_chdir (GwObex * ctx, const gchar * dir, gint * error );
&lt;/source&gt;

which changes the directory of the FTP connection. Below is a code example using this function.

&lt;source lang=&quot;c&quot;&gt;
/* Ignore parent dir pointers */
if (g_str_equal(name, &quot;..&quot;))
        return TRUE;

if (!gw_obex_chdir(ctx-&gt;obex, name, err)) {
        printf(&quot;Could not chdir to %s\n&quot;, name);
        return FALSE;
}
&lt;/source&gt;

To retrieve files over the OBEX connection, use the &lt;code&gt;gw_obex_get_file&lt;/code&gt; function: gw-obex.h

&lt;source lang=&quot;c&quot;&gt;
gboolean gw_obex_get_file (GwObex * ctx,
                           const gchar * local,
                           const gchar * remote,
                           const gchar * type,
                           gint * error);
&lt;/source&gt;

&lt;code&gt;gw_obex_get_file&lt;/code&gt; uses the &lt;code&gt;ctx&lt;/code&gt; context for retrieving the remote file to local file.

&lt;source lang=&quot;c&quot;&gt;
gboolean ret;
ret = gw_obex_get_file(ctx-&gt;obex, name, name, err);
&lt;/source&gt;

Using the libwobex wrapper directly allows you to perform many more functions. For more information, see the [http://maemo.org/api_refs/5.0/5.0-final/osso-gwobex/ API document].

===Libopenobex ===

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]; select the Developer-&amp;gt;Specifications category. OBEX resembles the HTTP protocol, expect for a few differences:

* 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).
* Binary transmissions: OBEX communicates using binary transmissions, as HTTP is transmitted in a human-readable XML-based format.
* Session support: HTTP is stateless, while OBEX maintains the connection.

For more information on OBEX, see the summary available at the [[:wikipedia:OBject EXchange|Wikipedia article on OBEX]].

For libopenobex code samples, see http://openobex.triq.net/downloads the samples are in the example apps package.

===Using BlueZ D-Bus API ===

The BlueZ system exports a D-Bus API that can be employed instead of OSSO Bluetooth tools. See the following documents:

* [http://git.kernel.org/?p=bluetooth/bluez.git;a=tree;f=doc;hb=HEAD BlueZ D-Bus API documentation]

==Connectivity UI ==

===UI Components ===

Connectivity UI contains various dialogs and other components used to control the connectivity. The different UI parts are:

* Connectivity UI
* Connectivity dialogs
* Status bar applets
* Control panel applet
* Bluetooth UIs

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.

=== D-Bus Connectivity UI Interface ===

If the user must provide information about the IAP that the system is about to connect to, you can use the following method:

;Service
: &lt;code&gt;com.nokia.icd_ui&lt;/code&gt;
;Interfaces
: &lt;code&gt;com.nokia.icd_ui&lt;/code&gt;
;Object paths
: &lt;code&gt;/com/nokia/icd_ui&lt;/code&gt;

The Internet Connectivity UIs implement the following D-Bus API used by the ICd and EAP.

==== D-Bus methods ====

===== show_conn_dlg =====

;Parameters
: &lt;ol&gt;&lt;li&gt;boolean: When &lt;code&gt;TRUE&lt;/code&gt; the dialog is requested because there were no saved connections (i.e. autoconnect was tried before invoking the dialog)&lt;/li&gt;&lt;/ol&gt;
;Return parameters
: none
;Errors
: &lt;code&gt;com.nokia.icd_ui.error.flight_mode&lt;/code&gt;: Flight mode enabled, dialog not shown
;Description
: Shows the Connect Dialog where the user can choose an IAP.

===== show_disconnect_dlg =====

;Parameters
: none
;Return Parameters
: none
;Errors
: &lt;code&gt;com.nokia.icd_ui.error.flight_mode&lt;/code&gt;: Flight mode enabled, dialog not shown
;Description
: Shows the disconnect dialog.

===== show_retry_dlg =====

;Parameters
: &lt;ol&gt;&lt;li&gt;string  Bluetooth address of the device used with SAP&lt;/li&gt;&lt;li&gt;string  Name of the connection attempt error which selects the retry dialog type.&lt;/li&gt;&lt;/ol&gt;
;Return Parameters
: none
;Errors
: &lt;code&gt;com.nokia.icd_ui.error.flight_mode&lt;/code&gt;: Flight mode enabled, dialog not shown
;Description
: Shows the retry dialog.

===== show_change_dlg =====

;Parameters
: &lt;ol&gt;&lt;li&gt;string  Name of the currently active IAP&lt;/li&gt;&lt;li&gt;string  Name of the IAP to be activated&lt;/li&gt;&lt;/ol&gt;
;Return Parameters
: none
;Errors
: &lt;code&gt;com.nokia.icd_ui.error.flight_mode&lt;/code&gt;: Flight mode enabled, dialog not shown
;Description
: Shows the Change IAP Dialog

===== show_passwd_dlg =====

;Parameters
: &lt;ol&gt;&lt;li&gt;string  Username supplied by ICd&lt;/li&gt;&lt;li&gt;string  Password supplied by ICd&lt;/li&gt;&lt;li&gt;string  Name of the IAP&lt;/li&gt;&lt;/ol&gt;
;Return Parameters
: none
;Errors
: &lt;code&gt;com.nokia.icd_ui.error.flight_mode&lt;/code&gt;: Flight mode enabled, dialog not shown
; Description
: Shows the username/password dialog.

===== show_gtc_dlg =====

;Parameters
: &lt;ol&gt;&lt;li&gt;string  GTC challenge string&lt;/li&gt;&lt;/ol&gt;
;Return Parameters
: none
;Errors
: &lt;code&gt;com.nokia.icd_ui.error.flight_mode&lt;/code&gt;: Flight mode enabled, dialog not shown
;Description
: Shows EAP GTC challenge dialog.

===== show_mschap_change_dlg =====

;Parameters
: &lt;ol&gt;&lt;li&gt;string  Supplied username&lt;/li&gt;&lt;li&gt;string  Old password that is to be changed&lt;/li&gt;&lt;li&gt;string  Name of the IAP&lt;/li&gt;
;Return Parameters
: none
;Errors
: &lt;code&gt;com.nokia.icd_ui.error.flight_mode&lt;/code&gt;: Flight mode enabled, dialog not shown
;Description
: Shows EAP MSCHAPv2 change password dialog.

===== show_private_key_passwd_dlg =====

;Parameters
: &lt;ol&gt;&lt;li&gt;byte array  Certificate ID&lt;/ol&gt;
;Return Parameters
: none
;Errors
: &lt;code&gt;com.nokia.icd_ui.error.flight_mode&lt;/code&gt;: Flight mode enabled, dialog not shown
;Description
: Shows EAP private key password dialog

===== show_server_cert_dlg =====

;Parameters
: &lt;ol&gt;&lt;li&gt;string  Certificate name&lt;/li&gt;&lt;li&gt;string  Certificate serial&lt;/li&gt;&lt;li&gt;boolean &lt;code&gt;TRUE&lt;/code&gt; if certificate is expired, &lt;code&gt;FALSE&lt;/code&gt; otherwise&lt;/li&gt;&lt;li&gt;boolean &lt;code&gt;TRUE&lt;/code&gt; if root CA is unknown or self-signed certificate, &lt;code&gt;FALSE&lt;/code&gt; otherwise&lt;/li&gt;&lt;/ol&gt;
;Return Parameters
: none
;Errors
: &lt;code&gt;com.nokia.icd_ui.error.flight_mode&lt;/code&gt;: Flight mode enabled, dialog not shown
;Description
: Shows server certificate error and expiration dialogs. If both boolean arguments are false, the error dialog is shown. If either or both boolean arguments are TRUE, the expiration dialog is shown instead.

===== strong_bt_req =====

;Parameters
: &lt;ol&gt;&lt;li&gt;string  Bluetooth address of the device to pair with&lt;/li&gt;&lt;li&gt;boolean  &lt;code&gt;TRUE&lt;/code&gt; if strong authentication enabled, &lt;code&gt;FALSE&lt;/code&gt; if strong authentication is disabled&lt;/li&gt;&lt;/ol&gt;
;Return Parameters
: none
;Errors
: &lt;code&gt;com.nokia.icd_ui.error.flight_mode&lt;/code&gt;: Flight mode enabled, dialog not shown
;Description
: Requests strong (16 digit) BT PIN dialog for a BT device

===== show_sim_pin_dlg =====

;Parameters
: &lt;ol&gt;&lt;li&gt;string  Bluetooth address of the device used with SAP&lt;/li&gt;&lt;li&gt;boolean  &lt;code&gt;TRUE&lt;/code&gt; if PIN was incorrect and retry dialog should be displayed before asking PIN. &lt;code&gt;FALSE&lt;/code&gt; if this is the first PIN request.&lt;/li&gt;&lt;/ol&gt;
;Return Parameters
: none
;Errors
: &lt;code&gt;com.nokia.icd_ui.error.flight_mode&lt;/code&gt;: Flight mode enabled, dialog not shown
;Description
: Shows SIM PIN dialog

The code example for the application to show the connect dialog using &lt;code&gt;show_conn_dlg&lt;/code&gt; is following. Note the use of the macro.

&lt;source lang=&quot;c&quot;&gt;
#include &lt;osso-ic-ui-dbus.h&gt;
/* ... */
/* in our code somewhere, where we need the Connect Dialog*/
DBusMessage *uimsg;
/* construct the message for Connect Dialog request*/
uimsg =
  dbus_message_new_method_call(ICD_UI_DBUS_SERVICE,
                             ICD_UI_DBUS_PATH,
                           ICD_UI_DBUS_INTERFACE,
                         /*macro for show_conn_dlg */
                               ICD_UI_SHOW_CONNDLG_REQ);
/* send the message */
reply =
  dbus_connection_send_with_reply_and_block(connection,
                                    uimsg,
                                   reply_timeout,
                                   &amp;error);
if (reply == NULL) {
    DLOG_ERR(&quot;Failed to show connect dialog: %s&quot;, uierror.message);
    dbus_error_free(&amp;uierror);
}
dbus_message_unref(uimsg);
dbus_message_unref(reply);
/* ... */
&lt;/source&gt;

==== D-Bus signals ====

The signals emitted from &lt;code&gt;com.nokia.icd_ui&lt;/code&gt; interface are listed below.

===== disconnect =====

;Parameters
: &lt;ol&gt;&lt;li&gt;boolean  &lt;code&gt;TRUE&lt;/code&gt; if &quot;disconnect&quot; pressed, &lt;code&gt;FALSE&lt;/code&gt; if &quot;cancel&quot;&lt;/li&gt;&lt;/ol&gt;
;Description
: Signal emitted from UI when disconnect dialog has been closed.


===== retry =====

;Parameters
: &lt;ol&gt;&lt;li&gt;string  The IAP that is to be retried&lt;/li&gt;&lt;li&gt;boolean  &lt;code&gt;TRUE&lt;/code&gt; if &quot;retry&quot; pressed, &lt;code&gt;FALSE&lt;/code&gt; if &quot;cancel&quot;&lt;/li&gt;&lt;/ol&gt;
;Description
: Signal emitted from UI when the retry dialog has been closed.

===== change =====

;Parameters
: &lt;ol&gt;&lt;li&gt;string  Old IAP to change from&lt;/li&gt;&lt;li&gt;string  New IAP to change to&lt;/li&gt;&lt;li&gt;boolean  Change to the new IAP If &lt;code&gt;TRUE&lt;/code&gt;, keep old if &lt;code&gt;FALSE&lt;/code&gt;&lt;/li&gt;&lt;/ol&gt;
;Description
: Signal emitted from UI when change connection dialog has been closed.

===== passwd =====

;Parameters
: &lt;ol&gt;&lt;li&gt;string  Username supplied or modified by the user&lt;/li&gt;&lt;li&gt;string  Password supplied or modified by the user&lt;/li&gt;&lt;li&gt;string  IAP name&lt;/li&gt;&lt;li&gt;boolean  &lt;code&gt;TRUE&lt;/code&gt; if &quot;ok&quot; pressed, &lt;code&gt;FALSE&lt;/code&gt; if &quot;cancel&quot;&lt;/li&gt;&lt;/ol&gt;
;Description
: Signal emitted from UI when the username/password dialog has been closed


===== gtc_response =====

;Parameters
: &lt;ol&gt;&lt;li&gt;string  Response to the given challenge or empty string if cancelled&lt;/li&gt;&lt;li&gt;boolean  &lt;code&gt;TRUE&lt;/code&gt; if &quot;ok&quot; pressed, &lt;code&gt;FALSE&lt;/code&gt; if &quot;cancel&quot;&lt;/li&gt;&lt;/ol&gt;
;Description
: Signal emitted from UI when the EAP GTC challenge dialog has been closed.

===== mschap_change =====

;Parameters
: &lt;ol&gt;&lt;li&gt;string  Supplied username&lt;/li&gt;&lt;li&gt;string  The new password or empty string if cancelled&lt;/li&gt;&lt;li&gt;string  IAP name&lt;/li&gt;&lt;li&gt;boolean  &lt;code&gt;TRUE&lt;/code&gt; if &quot;ok&quot; pressed, &lt;code&gt;FALSE&lt;/code&gt; if &quot;cancel&quot;&lt;/li&gt;&lt;/ol&gt;
;Description
: Signal emitted from UI when the MSCHAPv2 password has been changed

===== private_key_passwd =====

;Parameters
: &lt;ol&gt;&lt;li&gt;byte array  Certificate ID&lt;/li&gt;&lt;li&gt;string  Password for the private key or empty string if none&lt;/li&gt;&lt;li&gt;boolean  &lt;code&gt;TRUE&lt;/code&gt; if &quot;ok&quot; pressed, &lt;code&gt;FALSE&lt;/code&gt; if &quot;cancel&quot;&lt;/li&gt;
;Description
: Signal emitted from UI when the private key password dialog has been closed

===== server_cert =====

;Parameters
: &lt;ol&gt;&lt;li&gt;boolean  &lt;code&gt;TRUE&lt;/code&gt; if strong PIN entered, &lt;code&gt;FALSE&lt;/code&gt; if strong PIN dialog was canceled&lt;/li&gt;&lt;/ol&gt;
;Description
: Signal emitted from UI when the server certificate error dialog has been closed

===== strong_bt =====

;Parameters
: &lt;ol&gt;&lt;li&gt;boolean  &lt;code&gt;TRUE&lt;/code&gt; if strong PIN entered, &lt;code&gt;FALSE&lt;/code&gt; if strong PIN dialog was cancelled&lt;/li&gt;&lt;/ol&gt;
;Description
: Signal emitted from UI when the strong (16 digit) BT PIN has been entered

===== sim_pin =====

;Parameters
: &lt;ol&gt;&lt;li&gt;string  SIM PIN code or empty string if  cancelled&lt;/li&gt;&lt;li&gt;boolean  &lt;code&gt;TRUE&lt;/code&gt; if &quot;ok&quot; pressed, &lt;code&gt;FALSE&lt;/code&gt; if &quot;cancel&quot;&lt;/li&gt;&lt;/ol&gt;
;Description
: Signal emitted from UI when the SIM PIN has been entered.

===Bluetooth D-Bus UI dialogs ===

conbtdialogs-dbus.h

&lt;source lang=&quot;c&quot;&gt;
/** 
  Example of use (command line):
  
  dbus-send --system --print-reply \
    --dest='com.nokia.icd_ui' /com/nokia/bt_ui \
    com.nokia.bt_ui.show_send_file_dlg \
    array:string:file:///home/user/MyDocs/.documents/testing.txt
    
  dbus-send --system --print-reply \
    --dest=com.nokia.bt_ui  /com/nokia/bt_ui 
    com.nokia.bt_ui.show_search_dlg \
    string: string: array:string: string:
*/

#ifndef CONBTDIALOGS_DBUS_H
#define CONBTDIALOGS_DBUS_H

#ifdef __cplusplus
extern &quot;C&quot; {
#endif

/** Conbtdialogs service, resides in system dbus */
#define CONBTDIALOGS_DBUS_SERVICE                &quot;com.nokia.bt_ui&quot;
/** Conbtdialogs interface */
#define CONBTDIALOGS_DBUS_INTERFACE                &quot;com.nokia.bt_ui&quot;
/** Conbtdialogs path */
#define CONBTDIALOGS_DBUS_PATH                        &quot;/com/nokia/bt_ui&quot;

/** 
  Show send file dialog
 
  Arguments:
  
  uris: DBUS_TYPE_ARRAY                Array of strings representing the URIs of the
                                files to send.
  
  Returns:
  
  DBUS_TYPE_BOOLEAN             TRUE, if dialog was shown successfully.
 */
#define CONBTDIALOGS_SEND_FILE_REQ                &quot;show_send_file_dlg&quot;

/** 
  File sending result signal
 
  Arguments:
  
  success: DBUS_TYPE_BOOLEAN        TRUE, if all files were sent successfully or
                                FALSE, if error occurred or sending was 
                                canceled.
 */
#define CONBTDIALOGS_SEND_FILE_SIG                &quot;send_file&quot;

/** 
  Show BT device search dialog
 
  Arguments:
  
  major_class: DBUS_TYPE_STRING To set filtering based on major_class or
                                &quot;&quot;. Possible major class values are:
                                
                                &quot;miscellaneous&quot;, &quot;computer&quot;, &quot;phone&quot;, 
                                &quot;access point&quot;, &quot;audio/video&quot;, 
                                &quot;peripheral&quot;, &quot;imaging&quot;, &quot;wearable&quot;,
                                &quot;toy&quot; and &quot;uncategorized&quot;.
  
  minor_class: DBUS_TYPE_STRING To set filtering based on minor_class or &quot;&quot;.
                                Possible minor class values are:
                        
                                - Minor classes for &quot;computer&quot;: 
                                  &quot;uncategorized&quot;, &quot;desktop&quot;, &quot;server&quot;,
                                  &quot;laptop&quot;, &quot;handheld&quot;, &quot;palm&quot;, &quot;wearable&quot;

                                - Minor classes for &quot;phone&quot;: &quot;uncategorized&quot;,
                                  &quot;cellular&quot;, &quot;cordless&quot;, &quot;smart phone&quot;,
                                  &quot;modem&quot;, &quot;isdn&quot;
  
  service_classes: DBUS_TYPE_ARRAY To set filtering based on service classes.
                                   Supported classes include &quot;positioning&quot;, 
                                   &quot;networking&quot;, &quot;rendering&quot;, &quot;capturing&quot;,
                                   &quot;object transfer&quot;, &quot;audio&quot;, &quot;telephony&quot;, 
                                   &quot;information&quot;. Can be empty list, when no
                                   service class filtering is performed.
  
  bonding: DBUS_TYPE_STRING     Bonding mode for found and selected device:
                                
                                &quot;require&quot; for requiring a bonding from a
                                selected device (i.e. bond device if it has not
                                been bonded before). 
                                
                                &quot;force&quot; to always bond (i.e. device will be
                                bonded even if bonded before).
                                
                                Any other string will allow to search and
                                select device without bonding it.
                                
  Returns:
  
  DBUS_TYPE_BOOLEAN             TRUE, if dialog was shown successfully.
 */
#define CONBTDIALOGS_SEARCH_REQ                 &quot;show_search_dlg&quot;

/** 
  Bluetooth search result signal
 
  Arguments:
  
  address: DBUS_TYPE_STRING     Bluetooth address of the selected device, or &quot;&quot;
                                if search dialog was cancelled.
  
  name: DBUS_TYPE_STRING        Name of the device.
  
  icon: DBUS_TYPE_STRING        Logical name for the icon describing the 
                                device.
  
  major_class: DBUS_TYPE_STRING Major class of the device.
  
  minor_class: DBUS_TYPE_STRING Minor class of the device.
  
  trusted: DBUS_TYPE_BOOLEAN    Defines whether the device is marked as a trusted device.
  
  services: DBUS_TYPE_ARRAY     List of strings describing the service classes
                                and SDP-based services provided by the device.
 */
#define CONBTDIALOGS_SEARCH_SIG                 &quot;search_result&quot;
&lt;/source&gt;

&lt;source lang=&quot;c&quot;&gt;
/**
  Bluetooth UI Library for maemo

  Copyright (C) 2006 Nokia. All rights reserved.
  
  This sample demonstrates the use of conbtdialogs API and especially 
  send_file function. Compile the program with conbtdialogs and dbus:
  
  gcc -Wall `pkg-config -libs -cflags dbus-glib-1 conbtdialogs` \
-o send_file conbtdialogs_send_file.c
  
  Run with list of URLS:
  
  ./send_file file:///home/user/MyDocs/.sounds/Everyday.mp3
*/

#define DBUS_API_SUBJECT_TO_CHANGE

#include &lt;glib.h&gt;
#include &lt;conbtdialogs-dbus.h&gt;
#include &lt;dbus/dbus.h&gt;
#include &lt;dbus/dbus-glib.h&gt;

DBusGConnection *connection = NULL;
GMainLoop *mainloop = NULL;

static gboolean initialize(void)
{
    GError *error = NULL;

    g_type_init ();

    /* Create main loop */
    mainloop = g_main_loop_new(NULL, TRUE);
    if ( mainloop == NULL ) return FALSE;

    /* Create DBUS connection */
    connection = dbus_g_bus_get(DBUS_BUS_SYSTEM, &amp;error);

    if (connection == NULL )
    {
        g_print (&quot;Error: %s\n&quot;, error-&gt;message);
        g_clear_error (&amp;error);
        return FALSE;
    }

    return TRUE;
}

static gboolean uninitialize(void)
{
    /* Quit main loop and unref it */
    if (mainloop != NULL)
    {
        g_main_loop_quit(mainloop);
        g_main_loop_unref(mainloop);
    }

    return TRUE;
}

static DBusHandlerResult file_sent_signal ( DBusConnection *connection,
                                            DBusMessage *message,
                                            void *data )
{
    gboolean success = FALSE;

    /* check signal */
    if (!dbus_message_is_signal(message,
                                CONBTDIALOGS_DBUS_INTERFACE,
                                CONBTDIALOGS_SEND_FILE_SIG))
        return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;

    /* get args */
    if ( !dbus_message_get_args ( message, NULL,
                                  DBUS_TYPE_BOOLEAN, &amp;success,
                                  DBUS_TYPE_INVALID ) )
      return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;

    /* print if file sending was success or failure */
    g_print ( &quot;File sending was a &quot; );

    if (success) g_print(&quot;success\n&quot;); else g_print(&quot;failure\n&quot;);
    dbus_connection_close(connection);
    uninitialize();

    return DBUS_HANDLER_RESULT_HANDLED;
}

gint main(gint argc, gchar **argv)
{
    GError *error = NULL;
    gchar **files = NULL;
    gint idx = 0;
    DBusGProxy *proxy;
    DBusConnection *sys_conn;
    gchar *filter_string = NULL;

    if (argc &lt; 2) return 1;

    if (initialize() == FALSE) {
        uninitialize();
        return 1;
    }

    /* Copy urls to GLib compatible char array */
    files = g_new0(gchar*, argc);

    for (idx = 1; idx &lt; argc; idx++)
        files[idx-1] = g_strdup(argv[idx]);

    files[argc-1] = NULL;

    /* Open connection for btdialogs service */
    proxy = dbus_g_proxy_new_for_name(connection,
                                      CONBTDIALOGS_DBUS_SERVICE,
                                      CONBTDIALOGS_DBUS_PATH,
                                      CONBTDIALOGS_DBUS_INTERFACE);

    /* Send send file request to btdialogs service */
    if (!dbus_g_proxy_call(proxy, CONBTDIALOGS_SEND_FILE_REQ,
                           &amp;error,
                           G_TYPE_STRV, files, G_TYPE_INVALID,
                           G_TYPE_INVALID))
    {
        g_print(&quot;Error: %s\n&quot;, error-&gt;message);
        g_clear_error(&amp;error);
        g_strfreev (files);
        g_object_unref(G_OBJECT(proxy));
        uninitialize();
        return 1;
    }
    g_strfreev (files);
    files = NULL;

    g_object_unref(G_OBJECT(proxy));

    /* Now wait for file sent signal, use low level bindings as glib 
       bindings require signal marshaller registered */
    sys_conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
    g_assert(dbus_connection_add_filter(sys_conn,
                                        file_sent_signal,
                                        NULL,
                                        NULL ));
    filter_string =
       g_strdup_printf (&quot;type='signal',interface='%s'&quot;, CONBTDIALOGS_DBUS_INTERFACE);

    dbus_bus_add_match(sys_conn, filter_string, NULL);
    dbus_connection_unref(sys_conn);

    /* Run mainloop */
    g_main_loop_run(mainloop);

    return 0;
}
&lt;/source&gt;

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Using Location API</title>
    <id>2327</id>
    <revision>
      <id>42268</id>
      <timestamp>2011-03-01T13:42:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wiify slightly</comment>
      <text xml:space="preserve">Location framework provides a library called liblocation which is used for developing location aware applications in [[Open development/Maemo roadmap/Fremantle|Fremantle]]. Liblocation supports internal GPS, network based methods and external bluetooth GPS.

==Using liblocation==

To start implementing applications using liblocation API, you have to include the following headers:

&lt;source lang=&quot;c&quot;&gt;
#include &lt;location/location-gps-device.h&gt;
#include &lt;location/location-gpsd-control.h&gt;
&lt;/source&gt;

Liblocation has two public &lt;code&gt;GObject&lt;/code&gt;s. &lt;code&gt;LocationGPSDControl&lt;/code&gt; is used for starting and stopping of location services, setting location method and interval, and listening for errors. &lt;code&gt;LocationGPSDevice&lt;/code&gt; has information about device status and contains the actual fix when one exists. The two &lt;code&gt;GObject&lt;/code&gt;s are initiated as follows:

&lt;source lang=&quot;c&quot;&gt;
LocationGPSDControl *control = location_gpsd_control_get_default();
LocationGPSDevice *device = g_object_new(LOCATION_TYPE_GPS_DEVICE, NULL);
&lt;/source&gt;

==Location methods==

Liblocation supports the following location methods which are defined in &lt;code&gt;location-gpsd-control.h&lt;/code&gt;.
* &lt;code&gt;LOCATION_METHOD_USER_SELECTED&lt;/code&gt;: Liblocation will choose the best possible location method based on location settings in control panel. You can think of it as asking all the methods CWP+ACWP+GNSS+AGNSS. Choose this method if you don't have any special needs.
* &lt;code&gt;LOCATION_METHOD_CWP&lt;/code&gt; - Complementary Wireless Positioning: This method provides either coordinates for center of current country with horizontal accuracy equalling radius of the country (MCC fix), or coordinates based on currently used GSM base station. Latter is used if such information exists in device's cache, which is updated when ACWP method is used. SIM card is needed for CWP method.
* &lt;code&gt;LOCATION_METHOD_ACWP&lt;/code&gt; - Assisted Complementary Wireless Positioning: A method where device is located based on cellular base station to which device is registered to. SIM card and a network connection is needed for ACWP method. If no network connection is available, this equals to CWP. Application might receive MCC fixes before base station information from external location server is fetched and as a fallback if e.g. network is temporary unavailable.
* &lt;code&gt;LOCATION_METHOD_GNSS&lt;/code&gt; - Global Navigation Satellite System: A method for using GPS receiver. Typically time for the first fix is significantly longer than with AGNSS. Neither SIM card nor network connection is needed for GNSS method, and GNSS can even be used in offline mode.
* &lt;code&gt;LOCATION_METHOD_AGNSS&lt;/code&gt; - Assisted Global Navigation Satellite System. A method for using GPS receiver with assistance data from external location server. A SIM card and a network connection is needed for AGNSS method. If no network connection or SIM card is available, this equals to GNSS.

Location resources are shared between applications, and applications can request different location methods. Fixes for all requested methods are sent for all applications listening to liblocation &lt;code&gt;changed&lt;/code&gt; signal, therefore application should judge whether fix it is receiving, is one that it needs. See [[#LocationGPSDevice and LocationGPSDeviceFix|LocationGPSDeviceFix]] section for discussion.

If device is set for bluetooth GPS from control panel, it can used for locationing via &lt;code&gt;USER_SELECTED&lt;/code&gt;, &lt;code&gt;AGNSS&lt;/code&gt; and &lt;code&gt;GNSS&lt;/code&gt; methods. In this case AGNSS and GNSS do not differ, because assistance server cannot be utilized.

Device caches cell information for ACWP and satellite information for AGNSS. Hence if a non-assisted location method is used immediately after it's assisted counterpart, it will probably work as the assisted one.

Location method is set as &lt;code&gt;LocationGPSDControl&lt;/code&gt;'s &lt;code&gt;preferred-method&lt;/code&gt; property. Several methods can be given by bitwise or'ing the method identifiers:

&lt;source lang=&quot;c&quot;&gt;
 g_object_set(G_OBJECT(control), &quot;preferred-method&quot;, LOCATION_METHOD_GNSS | LOCATION_METHOD_AGNSS, NULL);
&lt;/source&gt;

ACWP and AGNSS methods require network positioning and GNSS and AGNSS require GPS to be enabled in location settings. If requirements for asked methods are not enabled when starting location, user is prompted a dialog to enable them. After that all the possible preferred-methods are started. If there is not any, an error to application is signalled.

&lt;code&gt;USER_SELECTED&lt;/code&gt; method makes exception to dialog rule. Albeit it uses all of the methods: CWP+ACWP+GNSS+AGNSS, dialog is shown only if both networking and gps are disabled.

If user changes location settings during location session, then used location method is modified to best available accordingly, and error signalled if none is available.

Here is table that summarizes differences between the methods. Accuracy refers to horizontal accuracy of the fix.

{| class=&quot;wikitable&quot;
|+
Available location methods
|-
! Method !! Typical Accuracy !! Requires SIM !! Requires Network !! Drains Battery
|-
| CWP || 1-1000 km || Yes || No || No
|-
| ACWP || 1-10 km || Yes || Yes || No
|-
| GNSS || 5-100m || No	|| No || Yes
|-
| AGNSS || 5-100m || Yes || Yes || Yes
|}

==Location intervals==

Liblocation supports a default interval (equals to one second) and intervals of 1, 2, 5, 10, 20, 30, 60 and 120 seconds between fixes. These are defined in &lt;code&gt;location-gpsd-control.h&lt;/code&gt;. Due to performance and power consumption reasons, all the intervals provide fixes only if position of the device has changed. Therefore the interval reflects more how often device checks for coordinate changes, than the actual interval between fixes. Nature of GPS fixes being constantly changing guarantees that GPS fixes are provided with requested interval. However, if there are several applications using different intervals, then the used interval is the minimum of intervals requested by all applications.

Location interval is set as &lt;code&gt;LocationGPSDControl&lt;/code&gt;'s &quot;preferred-interval&quot; property:

&lt;source lang=&quot;c&quot;&gt;
g_object_set(G_OBJECT(control), &quot;preferred-interval&quot;, LOCATION_INTERVAL_60S, NULL);
&lt;/source&gt;

==LocationGPSDevice and LocationGPSDeviceFix==

&lt;code&gt;LocationGPSDevice&lt;/code&gt; object has the following public fields:
* &lt;code&gt;gboolean online&lt;/code&gt;: Whether there is a connection to the hardware
* &lt;code&gt;LocationGPSDeviceStatus status&lt;/code&gt;: Status of the device
* &lt;code&gt;LocationGPSDeviceFix *fix&lt;/code&gt;: The actual fix (latitude, longitude, etc)
* &lt;code&gt;int satellites_in_view&lt;/code&gt;: Number of satellites in view
* &lt;code&gt;int satellites_in_use&lt;/code&gt;: Number of satellites in use
* &lt;code&gt;GPtrArray *satellites&lt;/code&gt;: Array of satellites
* &lt;code&gt;LocationCellInfo *cell_info&lt;/code&gt;: Information about cell the device is connected to

The most useful field is naturally &quot;fix&quot; which contains position and movement of the device and accuracies for them. &quot;&lt;code&gt;LocationGPSDeviceFix&lt;/code&gt;&quot; fields are listed in the table below. In &quot;Fields Flag&quot; column there is a identifier which can be bitwisely anded with &quot;fields&quot; field, to see whether corresponding field is set.

{| class=&quot;wikitable&quot;
|+LocationGPSDeviceFix
! Variable !! colspan=&quot;3&quot; | Description
|-
| &lt;code&gt;mode&lt;/code&gt; || colspan=&quot;3&quot; | Mode of the fix (2D, 3D, not seen or no fix)
|-
| &lt;code&gt;fields&lt;/code&gt; || colspan=&quot;3&quot; | Bitfield representing what fields contain valid data
|-
! Variable !! Unit !! Description !! Fields Flag
|-
| &lt;code&gt;time&lt;/code&gt; || s || Timestamp of the update || &lt;code&gt;LOCATION_GPS_DEVICE_TIME_SET&lt;/code&gt;
|-
| &lt;code&gt;ept&lt;/code&gt; || s || Time accuracy ||
|-
| &lt;code&gt;latitude&lt;/code&gt; || degrees || Fix latitude || &lt;code&gt;LOCATION_GPS_DEVICE_LATLONG_SET&lt;/code&gt;
|-
| &lt;code&gt;longitude&lt;/code&gt; || degrees || Fix longitude || &lt;code&gt;LOCATION_GPS_DEVICE_LATLONG_SET&lt;/code&gt;
|-
| &lt;code&gt;eph&lt;/code&gt; || cm || Horizontal position accuracy ||
|-
| &lt;code&gt;altitude&lt;/code&gt; || m || Fix altitude || &lt;code&gt;LOCATION_GPS_DEVICE_ALTITUDE_SET&lt;/code&gt;
|-
| &lt;code&gt;epv&lt;/code&gt; || m ||  Altitude accuracy ||
|-
| &lt;code&gt;track&lt;/code&gt; || degrees || Direction of motion || &lt;code&gt;LOCATION_GPS_DEVICE_TRACK_SET&lt;/code&gt;
|-
| &lt;code&gt;epd&lt;/code&gt; || degrees || Track accuracy ||
|-
| &lt;code&gt;speed&lt;/code&gt; || km/h || Current speed || &lt;code&gt;LOCATION_GPS_DEVICE_SPEED_SET&lt;/code&gt;
|-
| &lt;code&gt;eps&lt;/code&gt; || km/h || Speed accuracy ||
|-
| &lt;code&gt;climb&lt;/code&gt; || m/s || Current rate of climb || &lt;code&gt;LOCATION_GPS_DEVICE_CLIMB_SET&lt;/code&gt;
|-
| &lt;code&gt;epc || m/s || Climb accuracy ||
|}

The units for epv, epd, eps and epc might be different in liblocation version 0.99-1 and older.

An application receiving a fix cannot know if the fix is a result from location method it requested. Therefore application should study whether fix is accurate enough to satisfy application's needs. This can be done by inspecting &quot;eph&quot; field, which is fix's horizontal accuracy in centimeters. Typical values for horizontal accuracies can be seen in the location methods table. If accuracy is not known, it has a value of &lt;code&gt;NaN&lt;/code&gt;.

==Liblocation signals and callbacks==

The most useful signal in liblocation is &lt;code&gt;LocationGPSDevice&lt;/code&gt;'s &lt;code&gt;changed&lt;/code&gt; signal, which is emitted everytime a new fix is received. &lt;code&gt;LocationGPSDControl&lt;/code&gt; has an &lt;code&gt;error-verbose&lt;/code&gt; signal which is emitted in case of an error. There is also a legacy signal &lt;code&gt;error&lt;/code&gt;, which doesn't give a reason for error.

You can connect to these signals in the usual way:
&lt;source lang=&quot;c&quot;&gt;
g_signal_connect(control, &quot;error-verbose&quot;, G_CALLBACK(on_error), user_data);
g_signal_connect(device,  &quot;changed&quot;, G_CALLBACK(on_changed), user_data);
&lt;/source&gt;

Below are examples for these signals' callbacks:

&lt;source lang=&quot;c&quot;&gt;
static void on_error(LocationGPSDControl *control, LocationGPSDControlError error, gpointer user_data)
{ 
  switch (error) {
  case LOCATION_ERROR_USER_REJECTED_DIALOG:
    g_debug(&quot;User didn't enable requested methods&quot;);
    break;
  case LOCATION_ERROR_USER_REJECTED_SETTINGS:
    g_debug(&quot;User changed settings, which disabled location&quot;);
    break;
  case LOCATION_ERROR_BT_GPS_NOT_AVAILABLE:
    g_debug(&quot;Problems with BT GPS&quot;);
    break;
  case LOCATION_ERROR_METHOD_NOT_ALLOWED_IN_OFFLINE_MODE:
    g_debug(&quot;Requested method is not allowed in offline mode&quot;);
    break;
  case LOCATION_ERROR_SYSTEM:
    g_debug(&quot;System error&quot;);
    break;
  }
}

static void on_changed(LocationGPSDevice *device, gpointer user_data)
{
  if (!device)
    return;

  if (device-&gt;fix) {
    if (device-&gt;fix-&gt;fields &amp; LOCATION_GPS_DEVICE_LATLONG_SET)
      g_debug(&quot;lat = %f, long = %f&quot;, device-&gt;fix-&gt;latitude, device-&gt;fix-&gt;longitude);

    if (device-&gt;fix-&gt;fields &amp; LOCATION_GPS_DEVICE_ALTITUDE_SET)
      g_debug(&quot;alt = %f&quot;, device-&gt;fix-&gt;altitude);

    g_debug(&quot;horizontal accuracy: %f meters&quot;, device-&gt;fix-&gt;eph/100);
  }

  if (device &amp;&amp; device-&gt;cell_info) {
    if (device-&gt;cell_info-&gt;flags &amp; LOCATION_CELL_INFO_GSM_CELL_INFO_SET)
      g_debug(&quot;Mobile Country Code GSM: %d&quot;, device-&gt;cell_info-&gt;gsm_cell_info.mcc);

    if (device-&gt;cell_info-&gt;flags &amp; LOCATION_CELL_INFO_WCDMA_CELL_INFO_SET)
      g_debug(&quot;Mobile Country Code WCDMA: %d&quot;, device-&gt;cell_info-&gt;wcdma_cell_info.mcc);
  }

  g_debug(&quot;Satellites in view: %d, in use: %d&quot;, device-&gt;satellites_in_view, device-&gt;satellites_in_use);
}
&lt;/source&gt;

Liblocation sends a &lt;code&gt;changed&lt;/code&gt; signal also after locationing is started or stopped, in which case a last known fix is sent if such exists. Application can differentiate these fixes from real ones by inspecting &lt;code&gt;device-&gt;status&lt;/code&gt; field which equals &lt;code&gt;LOCATION_GPS_DEVICE_STATUS_NO_FIX&lt;/code&gt; if the fix is not real.

==Starting and stopping locationing==

Finally after everything above has been done, locationing can be started.
&lt;source lang=&quot;c&quot;&gt;
location_gpsd_control_start(control);
&lt;/source&gt;

If the chosen location method violates control panel location settings, then a dialog is shown to user. Dialogs ask user to enable necessary services. On user's refusal an error to application is sent. If no error is seen, fixes should be coming after a while. When locationing is no longer needed, it can be stopped.

&lt;source lang=&quot;c&quot;&gt;
location_gpsd_control_stop(control);
&lt;/source&gt;

==Complete example==

Here is a complete standalone example using liblocation. It starts location services after program is started, then when first fix arrives, prints it, stops services, and shutdowns.

&lt;source lang=&quot;c&quot;&gt;
#include &lt;location/location-gps-device.h&gt;
#include &lt;location/location-gpsd-control.h&gt;

static void on_error(LocationGPSDControl *control, LocationGPSDControlError error, gpointer data)
{ 
	g_debug(&quot;location error: %d... quitting&quot;, error);
	g_main_loop_quit((GMainLoop *) data);
}

static void on_changed(LocationGPSDevice *device, gpointer data)
{
	if (!device)
		return;

	if (device-&gt;fix) {
		if (device-&gt;fix-&gt;fields &amp; LOCATION_GPS_DEVICE_LATLONG_SET) {
			g_debug(&quot;lat = %f, long = %f&quot;, device-&gt;fix-&gt;latitude, device-&gt;fix-&gt;longitude);
			location_gpsd_control_stop((LocationGPSDControl *) data);
		}
	}
} 

static void on_stop(LocationGPSDControl *control, gpointer data)
{
	g_debug(&quot;quitting&quot;);
	g_main_loop_quit((GMainLoop *) data);
} 

static gboolean start_location(gpointer data)
{
	location_gpsd_control_start((LocationGPSDControl *) data);
	return FALSE;
}

int main(int argc, char *argv[])
{
	LocationGPSDControl *control;
	LocationGPSDevice *device;
	GMainLoop *loop;

	g_type_init();

	loop = g_main_loop_new(NULL, FALSE);

	control = location_gpsd_control_get_default();
	device = g_object_new(LOCATION_TYPE_GPS_DEVICE, NULL);

	g_object_set(G_OBJECT(control),
		&quot;preferred-method&quot;, LOCATION_METHOD_USER_SELECTED,
		&quot;preferred-interval&quot;, LOCATION_INTERVAL_DEFAULT,
		NULL);

	g_signal_connect(control, &quot;error-verbose&quot;, G_CALLBACK(on_error), loop);
	g_signal_connect(device, &quot;changed&quot;, G_CALLBACK(on_changed), control);
	g_signal_connect(control, &quot;gpsd-stopped&quot;, G_CALLBACK(on_stop), loop);

	g_idle_add(start_location, control);

	g_main_loop_run(loop);

	g_object_unref(device);
	g_object_unref(control);

	return 0;
}
&lt;/source&gt;

You can compile this example with following command:
 gcc -Wall `pkg-config --cflags --libs liblocation` -o test test.c

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Data Sharing</title>
    <id>2330</id>
    <revision>
      <id>29366</id>
      <timestamp>2010-02-12T12:53:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">*[[{{PAGENAME}}/Sharing_Plug-in|Sharing Plug-in]]
*[[{{PAGENAME}}/Clipboard_Usage | Clipboard Usage]]

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Data Sharing/Clipboard Usage</title>
    <id>2930</id>
    <revision>
      <id>38373</id>
      <timestamp>2010-09-08T11:49:41Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* GtkTextBuffer API changes */ MaemoPad link</comment>
      <text xml:space="preserve">In Maemo, there is a number of clipboard enhancements to the X clipboard and Gtk+, in order to

* Support retaining the clipboard data when applications that own the clipboard exit.
* Be able to copy and paste rich text data between GTK+ text views in different applications.
* Provide a generally more pleasant user experience; make it easy for application developers to gray out ``Paste'' menu items when the clipboard data format is not supported by the application.

This section uses the following example code:
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemopad/src/ maemopad]

== GtkClipboard API changes ==

&lt;source lang=&quot;c&quot;&gt;
gboolean gtk_clipboard_set_can_store (GtkClipboard   *clipboard
                                      GtkTargetEntry *targets,
                                      gint            n_targets);
&lt;/source&gt;

This function sets what data targets the current clipboard owner can transfer to the clipboard manager. &lt;code&gt;NULL&lt;/code&gt; can be passed as targets, together with 0 as &lt;code&gt;n_targets&lt;/code&gt; to indicate that all targets can be transferred.

When the clipboard owner changes, these values are reset.

&lt;source lang=&quot;c&quot;&gt;
void gtk_clipboard_store (GtkClipboard *clipboard);
&lt;/source&gt;

This function tells the clipboard to try and store the contents of the targets specified using &lt;code&gt;gtk_clipboard_set_can_store&lt;/code&gt;. If no such call has been made, or if there is no clipboard manager around, this function is simply a no-op.

Applications can call this function when exiting, but it is called automatically, when the application is quitting, if quitting with &lt;code&gt;gtk_main_quit()&lt;/code&gt;. If the application is not the owner of the clipboard, the function will simply be a no-op.

In addition, adding a convenience function for finding out if a target is supported (in order to be able to gray out ``Paste'' items, if none of the existing clipboard targets are supported)

&lt;source lang=&quot;c&quot;&gt;
gboolean gtk_clipboard_wait_is_target_available (GtkClipboard *clipboard,
                                                 GdkAtom       target);
&lt;/source&gt;

== GtkTextBuffer API changes ==

In order to support rich text copy and paste, some new functions were introduced:

&lt;source lang=&quot;c&quot;&gt;
void
gtk_text_buffer_set_enable_paste_rich_text (GtkTextBuffer *buffer,
                                            gboolean       can_paste_rich_text);
gboolean
gtk_text_buffer_get_enable_paste_rich_text (GtkTextBuffer *buffer);
&lt;/source&gt;

The setter function toggles, whether it should be possible to paste rich text in a text buffer.

To prevent applications from getting confused, when text with unexpected tags is pasted to a buffer, the notion of ''rich text format'' was added:

&lt;source lang=&quot;c&quot;&gt;
void
gtk_text_buffer_set_rich_text_format (GtkTextBuffer *buffer,
                                      const gchar   *format);
G_CONST_RETURN *
gtk_text_buffer_get_rich_text_format (GtkTextBuffer *buffer);
&lt;/source&gt;

When a buffer has a certain text format, it can only paste rich text from buffers that have the same text format. If the formats differ, only plain text will be pasted. If a buffer has its format set to &lt;code&gt;NULL&lt;/code&gt;, it means that it can paste from any format. For example, a format called ''html'' could include the tags ''bold'', ''italic'' etc. Thus, it would only be possible to paste text from buffers having the same format specified.

'''N.B.''' The string is just an identifier. It is up to the application developers to make sure that when specifying an application as supporting a certain format, also the tags in the buffer are specified for that format.

For further details, [[Documentation/Maemo 5 Developer Guide/Application Development/Writing a new maemo application|MaemoPad]] source code is a good example to study.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Data Sharing/Sharing Plug-in</title>
    <id>2564</id>
    <revision>
      <id>37660</id>
      <timestamp>2010-08-10T15:28:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use &lt;source&gt; and &lt;code&gt;, wikify slightly, tidy</comment>
      <text xml:space="preserve">With the Sharing dialog API, the user can open the first dialog, which starts the Sharing flow. From the first dialog the user can select &quot;Send via Bluetooth&quot;, &quot;Send via E-mail&quot; and &quot;Share via service&quot;.

More detailed API documentation can be found from [http://maemo.org/api_refs/5.0/5.0-final/libsharing-plugin here].

Example code how to use the API:

&lt;source lang=&quot;c&quot;&gt;
/* create osso context in your app that is passed to sharing */
osso_context_t *osso = osso_initialize (&quot;my_app&quot;, &quot;1.0.0.&quot;, FALSE, NULL);
/* file to open */
gchar *filename = &quot;/path/to/file&quot;;
sharing_dialog_with_file (osso,
                          GTK_WINDOW (parent),
                          filename);
&lt;/source&gt;

In the example above we use the API to start sharing single file. In case you want to share simultaneously more than one file or you want
to change what button are seen in the dialog use one of the functions below.

&lt;source lang=&quot;c&quot;&gt;
 void sharing_dialog_with_files (osso_context_t * osso, GtkWindow * parent, GSList * uris);
 void sharing_dialog_button_mask_with_file (osso_context_t * osso, GtkWindow * parent, const gchar * uris, guint share_button_mask);
 void sharing_dialog_button_mask_with_files (osso_context_t * osso, GtkWindow * parent, GSList * uris, guint share_button_mask);
&lt;/source&gt;

==Compiling==

When compiling your application use the following pkg-config configuration:
 `pkg-config --cflags --libs sharingdialog`

==Writing &quot;Send Via&quot; Functionality for E-mail and Bluetooth==

Send Via E-mail and Bluetooth can be used directly without Sharing dialog and the functionality is provided by the platform to enable applications to send data via E-mail or over a Bluetooth connection. Because several applications share this functionality, the platform provides a public interface to facilitate the deployment of these services in user applications. The interfaces are defined in two header files: &lt;code&gt;libmodest-dbus-client.h&lt;/code&gt; (in the &lt;code&gt;libmodest-dbus-client-dev&lt;/code&gt; package) and &lt;code&gt;conbtdialogs-dbus.h&lt;/code&gt; (in the &lt;code&gt;conbtdialogs-dev&lt;/code&gt; package). The following sample code is an example of the usage of these interfaces. See the maemopad source code available in the SDK repository for a fully functional application using this service.

maemopad/src/maemopad-window.c
&lt;source lang=&quot;c&quot;&gt;
/* send via email: */
#include &lt;libmodest-dbus-client/libmodest-dbus-client.h&gt;
/* send via bt: */
#include &lt;conbtdialogs-dbus.h&gt;
/*......*/
static void maemopad_window_on_menu_sendvia_email (GtkButton *button, gpointer data)
{
 MaemopadWindow *self = MAEMOPAD_WINDOW (data);
 gboolean result = TRUE;
 GSList *list = NULL;
 g_assert (self);
 /* Attach the saved file (and not the one currently on screen). If the file 
  * has not been saved yet, nothing is attached */
 if (self-&gt;file_name) {
  list = g_slist_append(list, self-&gt;file_name);
  result = libmodest_dbus_client_compose_mail(self-&gt;osso, /*osso_context_t*/
    NULL, /*to*/
    NULL, /*cc*/
    NULL, /*bcc*/
    NULL, /*body*/
    NULL, /*subject*/
    list /*attachments*/);
 }
 g_slist_free(list);
 if (result == FALSE)
  g_print(&quot;Could not send via email\n&quot;);
}

static gboolean maemopad_window_rpc_sendvia_bluetooth (const gchar *path)
{
 DBusGProxy *proxy = NULL;
 DBusGConnection *sys_conn = NULL;
 GError *error = NULL;
 gboolean result = TRUE;
 gchar **files = NULL;
 /*sys_conn = osso_get_sys_dbus_connection(ctx);*/
 sys_conn = dbus_g_bus_get(DBUS_BUS_SYSTEM, &amp;error);
 if(sys_conn == NULL)
 {
  return FALSE;
 }
 files = g_new0(gchar*, 2);
 *files = g_strdup(path);
 files[1] = NULL;
 /* Open connection for btdialogs service */
 proxy = dbus_g_proxy_new_for_name(sys_conn,
  CONBTDIALOGS_DBUS_SERVICE,
  CONBTDIALOGS_DBUS_PATH,
  CONBTDIALOGS_DBUS_INTERFACE);
 /* Send send file request to btdialogs service */
 if (!dbus_g_proxy_call(proxy, CONBTDIALOGS_SEND_FILE_REQ,
  &amp;error, G_TYPE_STRV, files,
  G_TYPE_INVALID, G_TYPE_INVALID))
 {
  g_print(&quot;Error: %s\n&quot;, error-&gt;message);
  g_clear_error (&amp;error);
  result = FALSE;
 }
 g_strfreev(files);
 g_object_unref(proxy);
 return result;
}
&lt;/source&gt;

==Writing Sharing Plug-in for &quot;Send via Service&quot;==

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 a Scratchbox environment is needed in order to follow these guides.

Plugin template with some example codes is located here [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/data-sharing-plugin/ Data Sharing Plugin example]

Detailed API documentation is available in [http://maemo.org/api_refs/5.0/5.0-final/libsharing-plugin/ libsharing-plugin-doc] package in gtk-doc format.

Before starting to create your own plugin it is a good idea to check the default services: OVI and Flickr. From those you can see two different UI flows for creating accounts. In OVI the UI flow is pretty simple and clear, you just type a user name and password and then validate the account. In Flickr the flow is more complex, as before validation the user must login to Flickr via a web page to get authentication and continue the validation after that. 

Account creation is started from Settings:
 Settings -&gt; Sharing accounts -&gt; New -&gt; Select service ...

===Sharing User Interfaces===

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 in a service definition XML file.

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 &quot;Select service list&quot; when creating a new Sharing account.


[[Image:SharingAccounts.png]]

''Figure 1: Sharing Accounts''


Figure 2 shows the Sharing Dialog user interface that is used to share images with the selected account on some service. The images displayed can come for example from the Photos application or from the device camera. You can choose the account created for your service from the &quot;Account&quot; combo box which holds all existing Sharing accounts.

[[Image:SharingDialogInterface.png]]

''Figure 2: Sharing Dialog User Interface''

===Getting Familiar With Target Service API===

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 a title, description and tags for the images using the common service API. Sharing supports image scaling and metadata filtering as common options for any service. Sharing Plug-ins can have service-specific options, like privacy. These settings can be accessed through the Options dialog (in Figure 2.)

===Getting Your Dummy Plugin To Sharing Menus===

As a prerequisite, you will need a working Maemo 5 SDK to continue further. We will first install the Sharing Plug-in template:

* Obtain the template source code ''sharing-plugin-template-0.1.tar.gz'' from [https://garage.maemo.org/svn/maemoexamples/trunk/data-sharing-plugin/ the maemoexamples repository]. It contains a good start up file structure for creating a plugin.
* Extract and build the package from the folder using command:
 ./autogen.sh; dpkg-buildpackage -rfakeroot -d
* Install the package built for your Scratchbox environment or to the device if it was built with the ARM target.
*The template dummy service should be now visible in the Sharing account when creating new accounts. 

{{ambox
|text=Note that this template plugin does not send any data before you write the implementation for it.
}}

==Editing Template Plug-in==

In this section, we peek under the hood by opening the files found from the template plugin and get familiar with Sharing classes that are used in the Sharing Plugin API functions.

===Sharing Internals===

Figure 3 shows the general overview of how Sharing Plug-in connects to Sharing Application using the Sharing Plugin API. The basic plug-in components are the service definition file and the plugin library. The Application Sharing-Dialog is used to create &lt;code&gt;SharingEntries&lt;/code&gt; that are shared by a &lt;code&gt;SharingManager&lt;/code&gt;. Sharing Account Manager implements the Sharing Accounts. Libsharing is a library for all common Sharing functionality.

[[Image:SharingPluginAPI.jpg]]

''Figure 3: Sharing Plugin API''


Figure 4 shows the common ''Sharing'' classes found in ''libsharing'' that you would use while creating the plug-in:
* &lt;code&gt;SharingTransfer&lt;/code&gt; is the object that contains all the data of a sharing task, overall status of the transfer process for one set of shared files. 
* &lt;code&gt;SharingEntry&lt;/code&gt; contains the &lt;code&gt;SharingEntryMedia&lt;/code&gt; that are the selected files. It also knows the &lt;code&gt;SharingAccount&lt;/code&gt; that is the target of sharing.
* &lt;code&gt;SharingAccount&lt;/code&gt; contains the username and password along with other parameters that you have to save for your service's accounts. It also has the information about &lt;code&gt;SharingService&lt;/code&gt; which is registered with the &lt;code&gt;SharingAccount&lt;/code&gt;.

[[Image:LibSharingClasses.jpg]]

''Figure 4: Libsharing classes''

To see more detail the sharing classes you can browse to [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/data-sharing-plugin/ Sharing plugin example]

===Service XML File===

The service definition file, &lt;code&gt;data/template.service.xml.in&lt;/code&gt; is the starting point for plugin loading. It defines the library that implements Sharing Plugin API functions, the sign up URL for totally new account creation using a web browser, the service name, icon file names and some basic information from plug-in.

&lt;source lang=&quot;xml&quot;&gt;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; 
&lt;service plugin=&quot;libtemplate.so&quot; provider=&quot;Me&quot;&gt; 

   &lt;accounts plugInSetup=&quot;0&quot; plugInEdit=&quot;0&quot;&gt;
     &lt;signup&gt;www.maemo.org&lt;/signup&gt; 
     &lt;password maxlen=&quot;32&quot;/&gt; 
   &lt;/accounts&gt; 

   &lt;ui&gt; 
       &lt;name&gt;Template&lt;/name&gt;  
       &lt;icon type=&quot;post&quot;&gt;@servicesdir@/template-post.png&lt;/icon&gt; 
       &lt;icon type=&quot;setup&quot;&gt;@servicesdir@/template-setup.png&lt;/icon&gt; 
       &lt;options&gt; 
           &lt;option id=&quot;privacy&quot; type=&quot;enumeration&quot; default=&quot;private&quot;&gt; 
               &lt;caption domain=&quot;osso-sharing-ui&quot; key=&quot;share_bd_options_privacy&quot;/&gt; 
               &lt;value id=&quot;private&quot; domain=&quot;osso-sharing-ui&quot; key=&quot;share_fi_options_privacy_private&quot;/&gt; 
               &lt;value id=&quot;public&quot; domain=&quot;osso-sharing-ui&quot; key=&quot;share_fi_options_privacy_public&quot;/&gt;
               &lt;/option&gt;
       &lt;/options&gt;
    &lt;/ui&gt;
&lt;/service&gt;
&lt;/source&gt;

''File 1: Example service definition XML file''

==== How to read the xml file ====

The prefix of the xml file name defines the used service id of the plugin. In our example the id is &quot;template&quot;.

Service element:
&lt;source lang=&quot;xml&quot;&gt;
&lt;service plugin=&quot;&quot; provider=&quot;&quot;&gt;
...
&lt;/service&gt;
&lt;/source&gt;
* Service is the root node of each service xml and must be named exactly &lt;code&gt;service&lt;/code&gt;.
* Property &lt;code&gt;plugin&lt;/code&gt; defines the library name that Sharing will look for in &lt;code&gt;/usr/lib/sharing&lt;/code&gt;.
* Property &lt;code&gt;provider&lt;/code&gt; defines the plugin provider.

Accounts element:
&lt;source lang=&quot;xml&quot;&gt;
&lt;accounts plugInSetup=&quot;0&quot; plugInEdit=&quot;0&quot;&gt;
  &lt;signup&gt;www.myservicepage.com&lt;/signup&gt; 
&lt;/accounts&gt;
&lt;/source&gt;
* Accounts element defines the account setup options.
* Property &lt;code&gt;plugInSetup&lt;/code&gt; defines if sharing should use internal default flow or flow implemented in the plugin itself. Set to &quot;1&quot; in case using own flow.
* Property &lt;code&gt;plugInEdit&lt;/code&gt; defines if sharing should use internal default flow or flow implemented in the plugin itself. Set to &quot;1&quot; in case using own flow.
* Element &lt;code&gt;signup&lt;/code&gt; defines the URL where browser is opened in case default flow used when user press button &quot;Register new account&quot; in account setup dialog.

Ui element:
&lt;source lang=&quot;xml&quot;&gt;
&lt;ui&gt; 
  &lt;name&gt;...&lt;/name&gt;  
  &lt;icon type=&quot;post&quot;&gt;@servicesdir@/...&lt;/icon&gt; 
  &lt;icon type=&quot;setup&quot;&gt;@servicesdir@/...&lt;/icon&gt; 
  &lt;options&gt; 
    ...
  &lt;/option&gt;
&lt;/ui&gt;
&lt;/source&gt;
* UI element defines Name, icons and options that can be modified through XML file.
* Element &lt;code&gt;name&lt;/code&gt; defines the name that is shown for the service in all the UI.
* Element &lt;code&gt;icon&lt;/code&gt; defines the used icons. Property &lt;code&gt;post&lt;/code&gt; or &lt;code&gt;setup&lt;/code&gt; can be used. Property &lt;code&gt;setup&lt;/code&gt; defines the icon shown in account setup dialogs.
* Element &lt;code&gt;options&lt;/code&gt; defines the different changeable options for selected service. See more below.

Options element:
&lt;source lang=&quot;xml&quot;&gt;
&lt;options&gt;
  &lt;option id=&quot;...&quot; type=&quot;enumeration || updatable&quot; default=&quot;...&quot;&gt; 
    &lt;caption domain=&quot;osso-sharing-ui&quot; key=&quot;...&quot;/&gt; 
    &lt;value id=&quot;...&quot; domain=&quot;osso-sharing-ui&quot; key=&quot;...&quot;/&gt; 
  &lt;/option&gt;
  &lt;option&gt;
  ...
  &lt;/option&gt;
&lt;/options&gt;
&lt;/source&gt;

* Options element defines all the options that a user can change through &quot;Options&quot; for the selected service. Each individual option is an element &lt;code&gt;option&lt;/code&gt;.
* Property &lt;code&gt;id&lt;/code&gt; defines the internal id for this option. User selected choice for this option is asked with the id, see [http://maemo.org/api_refs/5.0/5.0-final/libsharing-plugin/libsharing-plugin-SharingEntry.html#sharing-entry-get-option here].
* Property &lt;code&gt;type&lt;/code&gt; defines the type of option. You can select &lt;code&gt;enumeration&lt;/code&gt; or &lt;code&gt;updatable&lt;/code&gt;. For the enumeration you need to specify the shown values with values elements. Updatable option can contain default values and the remaining values can be updated from service.
* Property &lt;code&gt;default&lt;/code&gt; defines the default value to select if user haven't made any selections yet. The value of the default property must mach one of the value element ids.
* Properties &lt;code&gt;domain&lt;/code&gt; and &lt;code&gt;key&lt;/code&gt; under &lt;code&gt;caption&lt;/code&gt; element defines the actual text to be displayed. If you want to use some localization package then define &lt;code&gt;domain&lt;/code&gt; and desired logical id to &lt;code&gt;key&lt;/code&gt;. For free text the &lt;code&gt;domain&lt;/code&gt; is not mandatory.
* Element &lt;code&gt;value&lt;/code&gt; defines one value in the selection. If option is updatable new values with id/key pair can be added in code, see [http://maemo.org/api_refs/5.0/5.0-final/libsharing-plugin/libsharing-plugin-SharingAccount.html#sharing_account_set_option_values here]. Otherwise you need to specify the shown values.

===Account Setup User Interface Flow===

Sharing accounts can either create a default flow where &lt;code&gt;username&lt;/code&gt; and &lt;code&gt;password&lt;/code&gt; parameters are set to the account or an optional custom flow. In File 1, the &lt;code&gt;accounts&lt;/code&gt; tag has a parameter &lt;code&gt;plugInSetup&lt;/code&gt;. If it is set to &quot;1&quot;, Sharing Accounts will call the Sharing Plugin API function &lt;code&gt;sharing_plugin_interface_account_setup&lt;/code&gt; to create UI flow; it will use the default flow. You can see the difference between UI flows when creating Flickr and Ovi account. Ovi uses the default flow and Flickr uses it's own UI flow.

&lt;source lang=&quot;c&quot;&gt;
SharingPluginInterfaceAccountSetupResult sharing_plugin_interface_account_setup (GtkWindow* parent, SharingService* service, SharingAccount** worked_on, osso_context_t* osso)
&lt;/source&gt;

If you decide to create your own account setup flow, please try to keep the same UI look as in other Sharing dialogs.

===Account Validation===

Account validation is needed to reduce error cases in the 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.

Next function is called after &lt;code&gt;sharing_plugin_interface_account_setup&lt;/code&gt; call ends or when default account setup flow is done (when the &quot;Validate&quot; button is pressed).

&lt;source lang=&quot;c&quot;&gt;
SharingPluginInterfaceAccountValidateResult sharing_plugin_interface_account_validate (SharingAccount* account, ConIcConnection* con, gboolean *cont, gboolean* dead_mans_switch)
&lt;/source&gt;

In the last phase of account creation, the account must be validated. Sharing Plug-in API &lt;code&gt;sharing_plugin_interface_test_account&lt;/code&gt; is the function called in the validation phase of the account creation flow. 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.

===Account Editing User Interface Flow===

Sharing Accounts support here too either default flow where &lt;code&gt;username&lt;/code&gt; and &lt;code&gt;password&lt;/code&gt; parameters are edited or optional custom edit UI flow. The desired flow can be set by setting the parameter &lt;code&gt;plugInEdit&lt;/code&gt; from the service definition file either to &quot;0&quot; or to &quot;1&quot; where &quot;0&quot; means the default flow and &quot;1&quot; plug-in flow.

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.

Next function must be implemented only when plug-in account setup is used (when &lt;code&gt;plugInSetup&lt;/code&gt; is set to &quot;1&quot;):

&lt;source lang=&quot;c&quot;&gt;
SharingPluginInterfaceEditAccountResult sharing_plugin_interface_edit_account (GtkWindow* parent, SharingAccount* account, ConIcConnection* con, gboolean* dead_mans_switch)
&lt;/source&gt;

===Sending Functionality===

&lt;source lang=&quot;c&quot;&gt;
SharingPluginInterfaceSendResult sharing_plugin_interface_send (SharingTransfer* transfer, ConIcConnection* con, gboolean* dead_mans_switch)
&lt;/source&gt;

After pressing the 'Share' button in Sharing dialog (Figure 2.), the data is put into the Sharing Outbox (can be seen under &lt;code&gt;/home/user/MyDocs/.sharing/outbox/&lt;/code&gt;). Sharing manager process is started and the status menu gets the icon to process the new Sharing Entry. &lt;code&gt;SharingHTTP&lt;/code&gt; provides an API to create common HTTP requests. 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:

* Set progress of sending with &lt;code&gt;sharing_transfer_set_progress&lt;/code&gt; between 0 and 1 to estimate the current transfer time / total transfer time.
* Set sent to &lt;code&gt;SharingEntryMedia&lt;/code&gt; with &lt;code&gt;sharing_entry_media_set_sent&lt;/code&gt; when file sending is done and check the send value with &lt;code&gt;sharing_entry_media_get_sent&lt;/code&gt; to prevent sending same files multiple times for example in reboot scenarios.
* Poll cancel flag time to time, for example in curl or &lt;code&gt;SharingHTTP&lt;/code&gt; progress function to end transferring when needed. Use &lt;code&gt;sharing_transfer_continue&lt;/code&gt; to get the continue flag bit.
* If you are using ''libcurl'' instead of &lt;code&gt;SharingHTTP&lt;/code&gt;, please listen to ''conic'' events to disconnect transfer when no connection available. It returns with 'no connection' return value in this case.

Next some example source for common tasks found in usual sending functionality:

==== Example sending loop ====

When you process &lt;code&gt;SharingEntryMedia&lt;/code&gt;s from the &lt;code&gt;SharingEntry&lt;/code&gt; 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 &quot;//&quot;.

&lt;source lang=&quot;c&quot;&gt;
for (GSList* p = sharing_entry_get_media (entry); p != NULL; p = g_slist_next(p)) {
   SharingEntryMedia* media = p-&gt;data;
   /* Process media */
   if (!sharing_entry_media_get_sent (media)) {
       /* Post media */
       //guint result = my_send_task_post_function (my_send_task, media);
       /* Process post result */
       if (result == 0 /* EXAMPLE: MY_SEND_RESULT_SUCCESS */) {
           /* If success mark media as sent */
           sharing_entry_media_set_sent (media, TRUE);
           /* And mark process to your internal data structure */
           //my_send_task-&gt;upload_done += sharing_entry_media_get_size (media); 
       } else {
           /* We have sent the file in last sharing-manager call */
           //my_send_task-&gt;upload_done += sharing_entry_media_get_size (media);
       }
   }
}
&lt;/source&gt;

==== Example tags string ====

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 &quot;, &quot; string used as separator. If service supports also geo tagging you should develop this source further by checking the tag type also.

&lt;source lang=&quot;c&quot;&gt;
static gchar* create_tags_str (const GSList* tags)
{
   gchar* ret = NULL;
   for (const GSList* p = tags; p != NULL; p = g_slist_next (p)) {
       SharingTag* tag = (SharingTag*)(p-&gt;data);
       const gchar* tmp = sharing_tag_get_word (tag);
       if (tmp != NULL) {
           gchar* new_ret = NULL;
           if (ret != NULL) {
               new_ret = g_strdup_printf (&quot;%s, %s&quot;, ret, tmp);
               g_free (ret); /* old return is freed */
           } else {
               new_ret = g_strdup (tmp);
           }
           ret = new_ret;
       }
   }
   return ret;
}
gchar* tags = create_tags_str (sharing_entry_media_get_tags (media));
&lt;/source&gt;

==== SharingHTTP example ====

&lt;code&gt;SharingHTTP&lt;/code&gt; is meant to be used for HTTP transfers. It is probably easier to use this than libcurl and libconic directly in common cases. Give it a try at least if you are not familiar with libcurl!

&lt;source lang=&quot;c&quot;&gt;
SharingHTTP * http = sharing_http_new ();
SharingHTTPRunResponse res;
res = sharing_http_run (http, &quot;http://example.com/post&quot;);
if (res == SHARING_HTTP_RUNRES_SUCCESS) {
 g_print (&quot;Got response (%d): %s\n&quot;, sharing_http_get_res_code (http),
    sharing_http_get_res_body (http, NULL));
} else {
    g_printerr (&quot;Couldn't get stuff from service\n&quot;);
}
sharing_http_unref (http); 
&lt;/source&gt;

===Update options===

&lt;code&gt;sharing_plugin_interface_update_options&lt;/code&gt; is used to update account specific
options in Sharing Dialog's Options menu. This is pretty handy when you want to have
changing options in your plug-in for example albums.

You are defining these options in your plug-in's service definion .xml file. For
example next lines can add updatable option &quot;album&quot; to the plug-in's accounts:
&lt;source lang=&quot;xml&quot;&gt;
&lt;option id=&quot;album&quot; type=&quot;updatable&quot; default=&quot;default_photoset&quot;&gt;
    &lt;caption domain=&quot;osso-sharing-ui&quot; key=&quot;share_ti_select_album&quot;/&gt;
    &lt;value id=&quot;default_photoset&quot; domain=&quot;osso-sharing-ui&quot; key=&quot;Default&quot;/&gt;
&lt;/option&gt;
&lt;/source&gt;

When update options is pressed &lt;code&gt;sharing_plugin_interface_update_options&lt;/code&gt; is called. After you have got the newest options from service's server you can add them to currently selected account by creating a &lt;code&gt;GSList*&lt;/code&gt; of &lt;code&gt;SharingServiceOptionValues&lt;/code&gt;. After having a nice list of new options you can then set them to account with &lt;code&gt;sharing_account_set_option_values (self-&gt;account, &quot;album&quot;, option_values)&lt;/code&gt;.

When setting the options to account is done you have to call the function that was given to you as parameter passing the &lt;code&gt;SharingPluginInterfaceUpdateOptionsResult&lt;/code&gt; with value of your choise and the already before got &lt;code&gt;cb_data&lt;/code&gt; as parameter. This tells to the caller that your part from the update flow is succesfully done. Next source can be used to create this function call (self-&gt;result is containing the result in you opinion):

&lt;source lang=&quot;c&quot;&gt;
/* Callback */
if (self-&gt;cb_func != NULL) {
    void (*fp) (SharingPluginInterfaceUpdateOptionsResult, gpointer);
    fp = self-&gt;cb_func;
    fp (self-&gt;result, self-&gt;cb_data);
} else {
    ; /* Fail */
}
&lt;/source&gt;

You can have the callback function and it's parameter stored for example in 
next form:

&lt;source lang=&quot;c&quot;&gt;
void (*cb_func)(UpdateOptionsCallback result, gpointer data);
gpointer cb_data;
&lt;/source&gt;

===Uninstallation===

Libsharing provides the &lt;code&gt;sharing-account-remover&lt;/code&gt; binary that can be used to clean Sharing Accounts created for your plugin. This binary is run by debian/ dir's prerm script. Prerm scripts are run just before the package is uninstalled. Change the plugin id from &lt;code&gt;sharingplugintemplate&lt;/code&gt; to match your plug-in id in the script. Your plug-in's id is the service definitions files prefix. For template.service.xml, the prefix is &quot;template&quot;.

Example prerm script:
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
# You can use sharing-account-remover to remove the accounts at plugin
# uninstallation
if [ &quot;$1&quot; = &quot;remove&quot; ]; then
	/usr/bin/sharing-account-remover &lt;service name&gt;
fi
&lt;/source&gt;

==Testing your plugin==

After setting up your Scratchbox environment you can start using and testing your own plugin. 

Sharing framework consists following packages:

 libsharing-plugin-dev
 libsharing0
 sharing-manager
 sharing-account-manager
 sharing-dialog
 sharing-service-ovi
 sharing-service-flickr

All the needed packages should be installed along with nokia-binaries.

'''Important:''' 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's needed in order to get Sharing framework working properly

 [sbox] &gt; signond &amp;

Also remember to install the debian .deb package build from your sources.

Creating sharing account is started from setting.
 
 settings -&gt; Sharing accounts -&gt; New

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.

==Sharing your plugin with others==

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 [[Uploading to Extras-devel|upload packages to Extras repository]] is available.

Before uploading plugin to public repositories make sure you have updated the Debian configuration files to match your information under ./debian folder.

Also make sure that the section is set to [[Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing#Sections|one of the valid sections listed in the packaging guide]]. For data sharing, use &lt;code&gt;user/multimedia&lt;/code&gt;. This way the package will be installable by application manager. Below example version of debian control file.

 Source: sharing-plugin-template
 Section: user/multimedia
 Priority: optional
 Maintainer: Maemo Team &lt;xxxx@maemo.org&gt;
 Build-Depends: debhelper (&gt;= 5.0.0), 
    libgtk2.0-dev, libglib2.0-dev, 
    libconic0-dev, libosso-dev, 
    libsharing-plugin-dev
 Standards-Version: 3.8.0

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Generic Platform Components</title>
    <id>2156</id>
    <revision>
      <id>37539</id>
      <timestamp>2010-08-05T13:15:09Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add links</comment>
      <text xml:space="preserve">*[[{{PAGENAME}}/GnomeVFS File System|GnomeVFS File System]]
*[[{{PAGENAME}}/Application Preferences-Gconf|Application Preferences-Gconf]]
*[[{{PAGENAME}}/Using Backup Application|Using Backup Application]]
*[[{{PAGENAME}}/Extending Hildon Input Methods|Extending Hildon Input Methods]]
*[[{{PAGENAME}}/Using HAL|Using HAL]]
*[[{{PAGENAME}}/Alarm Framework|Alarm Framework]]
*[[{{PAGENAME}}/Using Address Book API|Using Address Book API]]

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Alarm Framework</title>
    <id>2151</id>
    <revision>
      <id>40078</id>
      <timestamp>2010-11-12T10:09:05Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Alarm framework features */ link</comment>
      <text xml:space="preserve">The Maemo alarm framework provides an easy way to manage timed events in the device. It is powerful, and not restricted only to wake up alarms.

== Alarm framework features ==

The framework provides many other features, including:

* Setting multiple alarm events
* Configuring the number of recurrences and the time between each one
* Choosing whether the alarm dialog should be shown
* Setting the title and the message to be shown in the alarm dialog
* Selecting a custom icon file to be shown in the alarm dialog
* Selecting a custom sound file to be played while the alarm dialog is shown
* Choosing to boot the device if it is turned off
* Choosing to run the alarm only if the device is connected
* Choosing to run the alarm in the system start up if it is missed
* Choosing to postpone the alarm if it is missed
* Executing a given file (e.g. a program or a script)
* Sending a message to a [[Documentation/Maemo 5 Developer Guide/DBus/DBus Basics|D-Bus message bus]]
* Querying for existing alarm events in a given period of time
* Deleting an existing alarm event
* Configuring the snooze time for the event
* Configuring the default snooze time for all alarm events

This topic shows how to use the alarm interface, describes its main functions and gives examples of use cases.

Timed event functionality is provided by the alarmd daemon. It makes it possible for applications to get D-Bus messages or exec calls at certain times.

Applications register an event happening at a certain time. The alarmd daemon will then call the application when the event is due, so the application does not need to be running during the waiting period. This is useful for applications that need to update their status at regular intervals.

A single event may be set to repeat itself over and over again, at regular intervals or based on time and date. The alarmd daemon will remember these events over system shutdowns too.

The alarmd daemon can also be asked to start the system up for an event, even when powered off. These events may also be set to run in a hidden power-on mode, where the display stays off, but the device is on. The alarm daemon also supports the use of &lt;code&gt;osso-systemui-alarm&lt;/code&gt; to show an alarm dialog for the event, which can be followed by a power up device confirmation dialog, if the device is in the hidden power-up mode.

Communication with the alarmd daemon is performed through D-Bus. It listens to both system and session buses. The easiest way is to use the C client API library, which offers straightforward API to modify the queue.

The alarm queue used by the alarmd daemon is stored in file &lt;code&gt;alarm_queue.ini&lt;/code&gt;, located in &lt;code&gt;/var/cache/alarmd&lt;/code&gt; directory.

== Alarm Events ==

Alarm events and the functions to manage them are defined in the &lt;code&gt;libalarm.h&lt;/code&gt; header file located in &lt;code&gt;/usr/include/alarmd&lt;/code&gt;. It is a part of the [http://maemo.org/packages/view/libalarm-dev/ libalarm-dev] Debian package.

Alarm event structures contains basic information about the alarm such as:

* Application identifier string which can be used to limit queries only to alarms set by some specific application. Must be specified for all alarms.
* Alarm message string which specifies the message body to be show in the alarm dialog. Should be specified for alarms that show dialog.
* Requested triggering time, which can be set in absolute terms (time_t) or using broken down time (struct tm). Timezone can also be specified for the latter. Must be specified for non-recurring alarms, can be set for recurring alarms too.
* Recurrence control: the number of times the alarm should be repeated and the recurrence period - either in terms of absolute seconds (say, every 2 hours) or based on clock / date (say, 10:00 every Friday the 13th).
* Actions to be taken when alarm is triggered. At least one must be specified. If one or more actions are specified to take effect after user interaction a dialog will be shown with button showing the action label for each of such action.

Additionally alarm events can have string, integer, or time attributes set by the client. These can be used to store some application data along with the alarm, or to convey extra data to system ui dialog service - the textdomain for text translation for example.

Once added to the queue, each alarm event is identified by a unique key, also known as a &quot;cookie&quot;. The cookies can be used for deleting events, or retrieving information about a specific event.

==Managing Alarm Events==

===Adding Alarm Event to Queue===

To add a new alarm event in to the queue, you need to set up a client side alarm event structure and send it to alarmd using the &lt;code&gt;alarmd_event_add()&lt;/code&gt; function, which will perform sanity checking for the alarm event before sending it over to alarmd. If inconsistencies are noted, warnings and errors will be written to stderr. Any errors will make the alarm rejected before it is sent over to alarmd.

All alarms must have an non-empty application identifier string and at least one alarm action item.

For recurring alarms there must be either simple recurrency period or the &lt;code&gt;alarm_recur_t&lt;/code&gt; items must be valid.

For non-recurring alarms the triggering time must evaluate to a time in the future.

Addional checks include things like having all necessary D-Bus parameters filled in if D-Bus action is requested.

'''Example: Adding simple two button dialog 10 seconds from now'''
&lt;source lang=&quot;c&quot;&gt;
#include &lt;alarmd/libalarm.h&gt;
#define APPID &quot;example-apps&quot;

static cookie_t add_two_button_alarm(void)
{
  cookie_t cookie = 0;
  alarm_event_t *eve = 0;
  alarm_action_t *act = 0;

  /* Create alarm event structure, set application
   * identifier and dialog message */
  eve = alarm_event_create();
  alarm_event_set_alarm_appid(eve, APPID);
  alarm_event_set_message(eve, &quot;Example Message&quot;);

  /* Use absolute time triggering, show dialog
   * ten seconds from now */
  eve-&gt;alarm_time = time(0) + 10;

  /* Add stop button action */
  act = alarm_event_add_actions(eve, 1);
  alarm_action_set_label(act, &quot;Stop&quot;);
  act-&gt;flags |= ALARM_ACTION_WHEN_RESPONDED;
  act-&gt;flags |= ALARM_ACTION_TYPE_NOP;

  /* Add snooze button action */
  act = alarm_event_add_actions(eve, 1);
  alarm_action_set_label(act, &quot;Snooze&quot;);
  act-&gt;flags |= ALARM_ACTION_WHEN_RESPONDED;
  act-&gt;flags |= ALARM_ACTION_TYPE_SNOOZE;

  /* Send the alarm to alarmd */
  cookie = alarmd_event_add(eve);

  /* Free all dynamic memory associated with the
   * alarm event */
  alarm_event_delete(eve);

  return cookie;
}
&lt;/source&gt;

{{ambox|text=Use of absolute time triggering, i.e., &lt;code&gt;alarm_time&lt;/code&gt; field of the alarm event, allows 1-second precision. Alarms that use broken-down time, i.e., the &lt;code&gt;alarm_tm&lt;/code&gt; field, trigger alarms at the start of the next full minute from the alarm. The two fields should not be set simultaneously. Alarm_time-set alarms do not take timezone changes into account.}}

===Fetching Details of Alarm Event===

Having set an alarm event, it is not possible to edit its details anymore, but it is possible to fetch the alarm details using the &lt;code&gt;alarmd_event_get()&lt;/code&gt; function, passing the event cookie as parameter.

'''Example: Showing some alarm event details'''
&lt;source lang=&quot;c&quot;&gt;
static void show_alarm_details(cookie_t cookie)
{
  alarm_event_t *eve = 0;
  alarm_action_t *act = 0;
  time_t tmo = time(0);

  if( (eve = alarmd_event_get(cookie)) == 0 )
  {
    printf(&quot;unable to get details for cookie=%ld\n&quot;, (long)cookie);
    goto cleanup;
  }

  printf(&quot;cookie %ld:\n&quot;, (long)cookie);

  tmo -= eve-&gt;trigger;
  printf(&quot;appid = %s\n&quot;, alarm_event_get_alarm_appid(eve));
  printf(&quot;trigger = T%+ld, %s&quot;, (long)tmo, ctime(&amp;eve-&gt;trigger));
  printf(&quot;message = %s\n&quot;, alarm_event_get_message(eve));

  for( int i = 0; (act = alarm_event_get_action(eve, i)) != 0; ++i )
  {
    printf(&quot;action%d.label = %s\n&quot;, i, alarm_action_get_label(act));
  }

  cleanup:

  /* Free all dynamic memory associated with the
   * alarm event */
  alarm_event_delete(eve);
}
&lt;/source&gt;

==Deleting Alarm Event==

To delete an alarm event, the &lt;code&gt;alarmd_event_del()&lt;/code&gt; function needs to be called, passing the event cookie as a parameter.

&lt;source lang=&quot;c&quot;&gt;
static void delete_alarm(cookie_t cookie)
{
  if( alarmd_event_del(cookie) == -1 )
  {
    printf(&quot;unable to delete cookie=%ld\n&quot;, (long)cookie);
  }
  else
  {
    printf(&quot;deleted cookie=%ld\n&quot;, (long)cookie);
  }
}
&lt;/source&gt;

==Querying Multiple Alarm Events==

The &lt;code&gt;alarmd_event_query()&lt;/code&gt; function can be used for querying alarms in the queue.

&lt;source lang=&quot;c&quot;&gt;
static void list_alarms()
{
  cookie_t *list = 0;
  cookie_t cookie = 0;
  alarm_event_t *eve = 0;

  if( (list = alarmd_event_query(0,0, 0,0, APPID)) == 0 )
  {
    printf(&quot;query failed\n&quot;);
    goto cleanup;
  }

  for( int i = 0; (cookie = list[i]) != 0; ++i )
  {
    alarm_event_delete(eve);

    if( (eve = alarmd_event_get(cookie)) == 0 )
    {
      printf(&quot;unable to get details for cookie=%ld\n&quot;, (long)cookie);
      continue;
    }

    printf(&quot;cookie: %ld, %s&quot;, cookie, ctime(&amp;eve-&gt;trigger));
  }
 
  cleanup:
    free(list);
    alarm_event_delete(eve);
}
&lt;/source&gt;

==Modifying an Existing Alarm Event==

If details of some already queued event need to be modified, this can be done by deleting the existing alarm and then adding new modified alarm.

This process can be made faster and safer by using the &lt;code&gt;alarmd_event_update()&lt;/code&gt; function, which does the delete old and new alarm in one D-Bus transaction.

&lt;source lang=&quot;c&quot;&gt;
static cookie_t update_alarm(cookie_t cookie)
{
  cookie_t result = -1;
  alarm_event_t *eve = 0;

  if( (eve = alarmd_event_get(cookie)) == 0 )
  {
    printf(&quot;unable to get details for cookie=%ld\n&quot;, (long)cookie);
    goto cleanup;
  }

  alarm_event_set_message(eve, &quot;Updated Message&quot;);
  eve-&gt;alarm_time = time(0) + 20;

  result = alarmd_event_update(eve);
 
  cleanup:
    alarm_event_delete(eve);
    return result;
}
&lt;/source&gt;

==Handling Dynamic Memory==

To make client software forward compatible all alarm events and associated action, recurrence and attribute items should be allocated using functions provided by libalarm.

Dynamically allocated member data should be accessed using the set/get functions provided by libalarm. Dynamically allocated structures should be released using the delete functions provided by libalarm.

Please note that &lt;code&gt;alarm_event_delete()&lt;/code&gt; will assume that the above rules are followed and will try release all dynamic data associated with the alarm event structure.

Thus avoid writing client code that:

* Evaluates the size of libalarm structs at compile time
&lt;source lang=&quot;c&quot;&gt;
  alarm_event_t eve;
  alarm_event_t *eve = calloc(1, sizeof *eve);
&lt;/source&gt;
* Direcly sets dynamic member data
&lt;source lang=&quot;c&quot;&gt;
  eve = alarm_event_create();
  self-&gt;alarm_appid = (char *)&quot;myapp&quot;;
&lt;/source&gt;
* Might leak memory, might corrupt heap.
&lt;source lang=&quot;c&quot;&gt;
  eve = alarm_event_create();
  self-&gt;alarm_appid = strdup(&quot;myapp&quot;);
&lt;/source&gt;

==Localized Strings==

By default systemui dialog service will try to translate all text strings using gettext() API in hildon libraries textdomain.

If you wish to use custom translation textdomain you should set the 'textdomain' attribute accordingly:

'''Example: two button alarm dialog with textdomain specified'''
&lt;source lang=&quot;c&quot;&gt;
#define TEXTDOMAIN &quot;mydomain&quot;
#define MESSAGE_KEY &quot;translatable message text&quot;
#define STOP_BUTTON_KEY &quot;translatable stop text&quot;
#define SNOOZE_BUTTON_KEY &quot;translatable snooze text&quot;

static cookie_t add_two_button_alarm_with_textdomain(void)
{
  alarm_event_t *eve = 0;
  alarm_action_t *act = 0;
  cookie_t cookie = 0;

  /* Create alarm event structure, set application
   * identifier and dialog message */
  eve = alarm_event_create();
  alarm_event_set_alarm_appid(eve, APPID);
  alarm_event_set_message(eve, MESSAGE_KEY);

  /* Set the textdomain to be used while making
   * translation lookups */

  alarm_event_set_attr_string(eve, &quot;textdomain&quot;, TEXTDOMAIN);

  /* Use absolute time triggering, show dialog
   * ten seconds from now */
  eve-&gt;alarm_time = time(0) + 10;

  /* Add stop button action */
  act = alarm_event_add_actions(eve, 1);
  alarm_action_set_label(act, STOP_BUTTON_KEY);
  act-&gt;flags |= ALARM_ACTION_WHEN_RESPONDED;
  act-&gt;flags |= ALARM_ACTION_TYPE_NOP;

  /* Add snooze button action */
  act = alarm_event_add_actions(eve, 1);
  alarm_action_set_label(act, SNOOZE_BUTTON_KEY);
  act-&gt;flags |= ALARM_ACTION_WHEN_RESPONDED;
  act-&gt;flags |= ALARM_ACTION_TYPE_SNOOZE;

  /* Send the alarm to alarmd */
  cookie = alarmd_event_add(eve);

  /* Free all dynamic memory associated with the
   * alarm event */
  alarm_event_delete(eve);

  return cookie;
}
&lt;/source&gt;

==Alarm Event Demo/examples==

Documentation is great, but for many people seeing some real world examples of how to actually do things with alarmD is best. Here are some common tasks broken down and commented as best I can.

===Executing a command===

One of the most common uses for alarmD is to act like cron, and trigger a script/app to run at certain times. Here's an example of how to do that:

'''test function to try and set an alarm'''
&lt;source lang=&quot;c&quot;&gt;
int testSetAlarm()
{
  alarm_event_t *newEvent = 0;
  alarm_action_t *act = 0;

  /* AlarmD will return a unique &quot;alarm cookie&quot; if successful; you can use this
   * later to identify and manipulate your alarm, or just ignore it. */
  cookie_t resultCookie;
	
  /* Create a new alarm event object. */
  newEvent = alarm_event_create();

  /* Set the application ID. */
  alarm_event_set_alarm_appid(newEvent, &quot;MYAPP&quot;);

  /* Set the title of the alarm. */
  alarm_event_set_title(newEvent, &quot;testAlarm&quot;);

  /* If you are dealing with re-curring alarms, there are two ways to do this.
   * The &quot;old way&quot; is to simply set how many times you want to recur, and how
   * many seconds between each. I use this way because it's easier for simple
   * recurrence.
   *
   * &quot;Old&quot; way
   * Set the # of seconds between recurrences. Let's say once an hour for
   * example (60 seconds * 60 minutes = 1 hour): */
  newEvent-&gt;recur_secs = 60 * 60;

  /* How many times should the event occur? If you set this to -1, it will
   * reoccur infinitely. */
  newEvent-&gt;recur_count = -1;

  /* When will the event occur for the very first time? After this point it
   * will occur every 3600 seconds...
   * For this demo I will make the first alarm happen 1 hour from the current
   * time. This &quot;time&quot; is in standard UNIX time format, so you need # of
   * seconds since Unix Epoch. In C you do this by calling time(NULL); I then
   * add 3600 to make the time 1 hour ahead of current time. */
  newEvent-&gt;alarm_time = (time_t) time(NULL) + 3600;

  /* You can also use the &quot;new way&quot; of setting up timing on events, which
   * allows you to use a time structure instead of just a fixed # of seconds.
   * So you can make an alarm happen every Monday, for example, or every Monday
   * and Thursday. See the information earlier in the Wiki entry for details on
   * this. */

  /* Now that our event is setup, we need to add an action to it so that the
   * alarm actually &quot;does&quot; something. */

  /* Add 1 action to our alarm event, and assign it to the &quot;act&quot; variable. */
  act = alarm_event_add_actions(newEvent, 1);

  /* Now setup that action to do something. To do this we have to set the
   * action &quot;flags&quot;. You can find all of them with explanations in the
   * documentation, here: http://maemo.org/api_refs/5.0/5.0-final/libalarm/libalarm_8h.html#cc8e6f439d134448001132132476683c910f7626ec85a4170659b53fa2f0abc7
   * Setup this action to be an &quot;Execute command&quot; one. */
  act-&gt;flags = ALARM_ACTION_WHEN_TRIGGERED | ALARM_ACTION_TYPE_EXEC; 

  /* Now all you have to do is tell the action which command you want to
   * &quot;execute&quot;. */
  alarm_action_set_exec_command(act, &quot;/usr/sbin/myAwesomeCommand.sh&quot;);

  /* Finally with everything setup, try to add your event to the alarm queue. */
  resultCookie = alarmd_event_add(newEvent);
}
&lt;/source&gt;

=== Triggering D-Bus actions ===

Triggering D-Bus actions is very similar to executing a command as above; the main difference is how you setup the &lt;code&gt;alarm_event_action&lt;/code&gt;. Here is a simple D-Bus example:

'''test function to try and setup an alarm with a D-Bus action'''
&lt;source lang=&quot;c&quot;&gt;
int testSetAlarm()
{  alarm_event_t *newEvent = 0;
  alarm_action_t *act = 0;

  /* AlarmD will return a unique &quot;alarm cookie&quot; if successful; you can use this
   * later to identify and manipulate your alarm, or just ignore it. */
  cookie_t resultCookie;
	
  /* Create a new alarm event object. */
  newEvent = alarm_event_create();

  /* Set the application ID. */
  alarm_event_set_alarm_appid(newEvent, &quot;MYAPP&quot;);

  /* Set the title of the alarm. */
  alarm_event_set_title(newEvent, &quot;testAlarm&quot;);

  /* If you are dealing with re-curring alarms, there are two ways to do this.
   * The &quot;old way&quot; is to simply set how many times you want to recur, and how
   * many seconds between each. I use this way because it's easier for simple
   * recurrence.
   *
   * &quot;Old&quot; way
   * Set the # of seconds between recurrences. Let's say once an hour for
   * example (60 seconds * 60 minutes = 1 hour): */
  newEvent-&gt;recur_secs = 60 * 60;

  /* How many times should the event occur? If you set this to -1, it will
   * reoccur infinitely. */
  newEvent-&gt;recur_count = -1;

  /* When will the event occur for the very first time? After this point it
   * will occur every 3600 seconds...
   * For this demo I will make the first alarm happen 1 hour from the current
   * time. This &quot;time&quot; is in standard UNIX time format, so you need # of
   * seconds since Unix Epoch. In C you do this by calling time(NULL); I then
   * add 3600 to make the time 1 hour ahead of current time. */
  newEvent-&gt;alarm_time = (time_t) time(NULL) + 3600;
 		
  /* Setup the event to boot the device if it's not powered on. */
  newEvent-&gt;flags = ALARM_EVENT_BOOT;
		
  /* Now that our event is setup, we need to add an action to it so that the
   * alarm actually &quot;does&quot; something. */

  /* Add 1 action to our alarm event, and assign it to the &quot;act&quot; variable. */
  act = alarm_event_add_actions(newEvent, 1);

  /* Now setup that action to do something. To do this we have to set the
   * action &quot;flags&quot;. You can find all of them with explanations in the
   * documentation, here: http://maemo.org/api_refs/5.0/5.0-final/libalarm/libalarm_8h.html#cc8e6f439d134448001132132476683c910f7626ec85a4170659b53fa2f0abc7
   * Setup this action to be an &quot;DBus command&quot; one; also set it up to use D-Bus
   * auto-activation. */
  act-&gt;flags = ALARM_ACTION_WHEN_TRIGGERED | ALARM_ACTION_DBUS_USE_ACTIVATION | ALARM_ACTION_TYPE_DBUS;

  /* Setup the DBus params for this action. */
  alarm_action_set_dbus_interface(act, &quot;org.maemo.testApp&quot;);
  alarm_action_set_dbus_service(act, &quot;org.maemo.testApp&quot;);
  alarm_action_set_dbus_path(act, &quot;/org/maemo/testApp&quot;);
  alarm_action_set_dbus_name(act, &quot;triggerAlarm&quot;);
	
  /* Finally with everything setup, try to add your event to the alarm queue. */
  resultCookie = alarmd_event_add(newEvent);
}
&lt;/source&gt;

==Obtaining more information==

For more information, see [http://maemo.org/api_refs/5.0/5.0-final/libalarm/ libalarm API documentation].

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Application Preferences-Gconf</title>
    <id>2905</id>
    <revision>
      <id>37857</id>
      <timestamp>2010-08-17T13:38:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Implementing Notifications on Changes in GConf */ fix link</comment>
      <text xml:space="preserve">[http://projects.gnome.org/gconf/ GConf] is used by the GNOME desktop environment for storing shared configuration settings for the desktop and applications. The daemon process GConfd follows the changes in the database. When a change occurs in the database, the daemon applies the new settings to the applications using them. For example, the control panel application uses GConf.

If settings are used only by a single application, GLib utility for .ini style files should be used instead. Applications should naturally have working default settings. Settings should be saved only when the user changes them. 

This chapter uses the following examples:
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/support-libraries/hildon_helloworld-9.c hildon_helloworld-9.c]
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/gconf-listener/ gconf-listener]

==GConf Basics==

GConf is a system for GNOME applications to store settings into a database system in a centralized manner. The aim of the GConf library is to provide applications a consistent view of the database access functions, as well as to provide tools for system administrators to enable them to distribute software settings in a centralized manner (across multiple computers).

The GConf &quot;database&quot; may consist of multiple databases (configured by the system administrator), but normally there will be at least one database engine that uses XML to store settings. This keeps the database still in a human readable form (as opposed to binary), and allows some consistency checks via schema verifications.

The interface for the client (program that uses GConf to store its settings) is always the same, irrespective of the database back-end (the client does not see this).

What makes GConf interesting, is its capability of notifying running clients that their settings have been changed by some other process than themselves. This allows for the clients to react soon (not quite real-time), and this leads to a situation where a user will change, for example, the GNOME HTTP proxy settings, and clients that are interested in that setting will get a notification (via a callback function) that the setting has changed. The clients will then read the new setting and modify their data structures to take the new setting into account.

==Using GConf ==

The GConf model consists of two parts: the GConf client library (which will be used here) and the GConf server daemon that is the guardian and reader/writer of the back-end databases. In a regular GNOME environment, the client communicates with the server either by using the Bonobo library (lightweight object IPC mechanism) or D-Bus.

As Bonobo is not used in Maemo (it is quite heavy, even if lightweight), the client will communicate with the server using D-Bus. This also allows the daemon to be started on demand, when there is at least one client wanting to use that service (this is a feature of D-Bus). The communication mechanism is encapsulated by the GConf client library, and as such, will be transparent.

In order to read or write the preference database, it is necessary to decide on the key to use to access the application values. The database namespace is hierarchical, and uses the '/'-character to implement this hierarchy, starting from a root location similar to UNIX file system namespace.

Each application will use its own &quot;directory&quot; under &lt;code&gt;/apps/Maemo/appname/&lt;/code&gt;. N.B. Even when the word &quot;directory&quot; is seen in connection to GConf, one has to be careful to distinguish '''real directories''' from '''preference namespaces''' inside the GConf namespace. The &lt;code&gt;/apps/Maemo/appname/&lt;/code&gt; above is in the GConf namespace, so there will not actually be a physical directory called &lt;code&gt;/apps/&lt;/code&gt; on a system.

The keys should be named according to the platform guidelines. The current guideline is that each application should store its configuration keys under &lt;code&gt;/apps/Maemo/appname/&lt;/code&gt;, where &lt;code&gt;appname&lt;/code&gt; is the name of the application. There is no central registry on the names in use currently, so names should be selected carefully. Key names should all be lowercase, with underscore used to separate multiple words. Also, ASCII should be used, since GConf does not support localization for key names (it does for key values, but that is not covered in this material).

GConf values are typed, which means that it is necessary to select the type for the data that the key is supposed to hold.

The following types are supported for values in GConf:

* &lt;code&gt;gint&lt;/code&gt; (32-bit signed)
* &lt;code&gt;gboolean&lt;/code&gt;
* &lt;code&gt;gchar&lt;/code&gt; (ASCII/ISO 8859-1/UTF-8 C string)
* &lt;code&gt;gfloat&lt;/code&gt; (with the limitation that the resolution is not guaranteed nor specified by GConf because of portability issues)
* a list of values of one type
* a pair of values, each having their own type (useful for storing &quot;mapping&quot; data)

What is missing from the above list is storing binary data (for a good reason). The type system is also fairly limited. This is on purpose, so that complex configurations (like the Apache HTTP daemon uses, or Samba) are not attempted using GConf.

There is a diagnostic and administration tool called &lt;code&gt;gconftool-2&lt;/code&gt; that is also available in the SDK. It can be used to set and unset keys, as well as display their current contents.

Some examples of using gconftool-2 (on the SDK):

* Displaying the contents of all keys stored under &lt;code&gt;/apps/&lt;/code&gt; (listing cut for brevity)

&lt;pre&gt;
[sbox-DIABLO_X86: ~] &gt; run-standalone.sh gconftool-2 -R /apps
 /apps/osso:
  /apps/osso/inputmethod:
   launch_finger_kb_on_select = true
   input_method_plugin = himExample_vkb
   available_languages = [en_GB]
   use_finger_kb = true
   /apps/osso/inputmethod/hildon-im-languages:
    language-0 = en_GB
    current = 0
    language-1 =
    list = []
  /apps/osso/fontconfig:
   font_scaling_factor = Schema (type: `float' list_type:
    '*invalid*' car_type: '*invalid*' cdr_type: '*invalid*'
    locale: `C')
  /apps/osso/apps:
   /apps/osso/apps/controlpanel:
    groups = [copa_ia_general,copa_ia_connectivity,
              copa_ia_personalisation]
    icon_size = false
    group_ids = [general,connectivity,personalisation]
  /apps/osso/osso:
   /apps/osso/osso/thumbnailers:
    /apps/osso/osso/thumbnailers/audio@x-mp3:
     command = /usr/bin/hildon-thumb-libid3
    /apps/osso/osso/thumbnailers/audio@x-m4a:
     command = /usr/bin/hildon-thumb-libid3
    /apps/osso/osso/thumbnailers/audio@mp3:
     command = /usr/bin/hildon-thumb-libid3
    /apps/osso/osso/thumbnailers/audio@x-mp2:
     command = /usr/bin/hildon-thumb-libid3
&lt;/pre&gt;

* Creating and setting the value to a new key.
 
 [sbox-DIABLO_X86: ~] &amp;gt; run-standalone.sh gconftool-2  \
  --set /apps/Maemo/testing/testkey --type=int 5

* Listing all keys under the namespace &lt;code&gt;/apps/Maemo/testing&lt;/code&gt;.
 
 [sbox-DIABLO_X86: ~] &amp;gt; run-standalone.sh gconftool-2  \
  -R /apps/Maemo/testing
  testkey = 5

* Removing the last key will also remove the key directory.
 
 [sbox-DIABLO_X86: ~] &amp;gt; run-standalone.sh gconftool-2  \
  --unset /apps/Maemo/testing/testkey
 [sbox-DIABLO_X86: ~] &amp;gt; run-standalone.sh gconftool-2  \
  -R /apps/Maemo/testing

* Removing whole key hierarchies is also possible.
 
 [sbox-DIABLO_X86: ~] &amp;gt; run-standalone.sh gconftool-2  \
  --recursive-unset /apps/Maemo/testing

For more detailed information, please see [http://maemo.org/api_refs/5.0/5.0-final/gconf2/ Gconf API documentation].

==  Using GConf to read and write preferences ==

The example is required to:

* Store the color that the user selects when the color button (in the toolbar) is used.
* Load the color preference on application startup.

Even if GConf concepts seem to be logical, it can be seen that using GConf will require one to learn some new things (e.g. the &lt;code&gt;GError&lt;/code&gt;-object). Since the GConf client code is in its own library, the relevant compiler flags and library options need to be added again. The pkg-config package name is &lt;code&gt;gconf-2.0&lt;/code&gt; hildon_helloworld-9.c

&lt;source lang=&quot;c&quot;&gt;
/**
 * hildon_helloworld-9.c
 *
 * This maemo code example is licensed under a MIT-style license,
 * that can be found in the file called &quot;License&quot; in the same
 * directory as this file.
 * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
 *
 * We'll store the color that the user selects into a GConf
 * preference. In fact, we'll have three settings, one for each
 * channel of the color (red, green and blue).
 *
 * Look for lines with &quot;NEW&quot; or &quot;MODIFIED&quot; in them.
 */

#include &lt;stdlib.h&gt;
#include &lt;hildon/hildon-program.h&gt;
#include &lt;hildon/hildon-color-button.h&gt;
#include &lt;hildon/hildon-find-toolbar.h&gt;
#include &lt;hildon/hildon-file-chooser-dialog.h&gt;
#include &lt;hildon/hildon-banner.h&gt;
#include &lt;libgnomevfs/gnome-vfs.h&gt;
/* Include the prototypes for GConf client functions (NEW). */
#include &lt;gconf/gconf-client.h&gt;

/* The application name -part of the GConf namespace (NEW). */
#define APP_NAME &quot;hildon_hello&quot;
/* This will be the root &quot;directory&quot; for our preferences (NEW). */
#define GC_ROOT  &quot;/apps/Maemo/&quot; APP_NAME &quot;/&quot;

  /*... Listing cut for brevity ...*/

/**
 * NEW
 *
 * Utility function to store the given color into our application
 * preferences. We could use a list of integers as well, but we'll
 * settle for three separate properties; one for each of RGB
 * channels.
 *
 * The config keys that will be used are 'red', 'green' and 'blue'.
 *
 * NOTE:
 *   We're doing things very non-optimally. If our application would
 *   have multiple preference settings, and we would like to know
 *   when someone will change them (external program, another
 *   instance of our program, etc), we'd have to keep a reference to
 *   the GConf client connection. Listening for changes in
 *   preferences would also require a callback registration, but this
 *   is covered in the &quot;maemo Platform Development&quot; material.
 */
static void confStoreColor(const GdkColor* color) {

  /* We'll store the pointer to the GConf connection here. */
  GConfClient* gcClient = NULL;

  /* Make sure that no NULLs are passed for the color. GdkColor is
     not a proper GObject, so there is no GDK_IS_COLOR macro. */
  g_assert(color);

  g_print(&quot;confStoreColor: invoked\n&quot;);

  /* Open a connection to gconfd-2 (via D-Bus in maemo). The GConf
     API doesn't say whether this function can ever return NULL or
     how it will behave in error conditions. */
  gcClient = gconf_client_get_default();
  /* We make sure that it's a valid GConf-client object. */
  g_assert(GCONF_IS_CLIENT(gcClient));

  /* Store the values. */
  if (!gconf_client_set_int(gcClient, GC_ROOT &quot;red&quot;, color-&gt;red,
                            NULL)) {
    g_warning(&quot; failed to set %s/red to %d\n&quot;, GC_ROOT, color-&gt;red);
  }
  if (!gconf_client_set_int(gcClient, GC_ROOT &quot;green&quot;, color-&gt;green,
                            NULL)) {
    g_warning(&quot; failed to set %s/green to %d\n&quot;, GC_ROOT,
              color-&gt;green);
  }
  if (!gconf_client_set_int(gcClient, GC_ROOT &quot;blue&quot;, color-&gt;blue,
                            NULL)) {
    g_warning(&quot; failed to set %s/blue to %d\n&quot;, GC_ROOT,
              color-&gt;blue);
  }

  /* Release the GConf client object (with GObject-unref). */
  g_object_unref(gcClient);
  gcClient = NULL;
}

/**
 * NEW
 *
 * A utility function to get an integer but also return the status
 * whether the requested key existed or not.
 *
 * NOTE:
 *   It's also possible to use gconf_client_get_int(), but it's not
 *   possible to then know whether they key existed or not, because
 *   the function will return 0 if the key doesn't exist (and if the
 *   value is 0, how could you tell these two conditions apart?).
 *
 * Parameters:
 * - GConfClient: the client object to use
 * - const gchar*: the key
 * - gint*: the address to store the integer to if the key exists
 *
 * Returns:
 * - TRUE: if integer has been updated with a value from GConf.
 *   FALSE: there was no such key or it wasn't an integer.
 */
static gboolean confGetInt(GConfClient* gcClient, const gchar* key,
                           gint* number) {

  /* This will hold the type/value pair at some point. */
  GConfValue* val = NULL;
  /* Return flag (tells the caller whether this function wrote behind
     the 'number' pointer or not). */
  gboolean hasChanged = FALSE;

  /* Try to get the type/value from the GConf DB.
     NOTE:
       We're using a version of the getter that will not return any
       defaults (if a schema would specify one). Instead, it will
       return the value if one has been set (or NULL).

     We're not really interested in errors as this will return a NULL
     in case of missing keys or errors and that is quite enough for
     us. */
  val = gconf_client_get_without_default(gcClient, key, NULL);
  if (val == NULL) {
    /* Key wasn't found, no need to touch anything. */
    g_warning(&quot;confGetInt: key %s not found\n&quot;, key);
    return FALSE;
  }

  /* Check whether the value stored behind the key is an integer. If
     it is not, we issue a warning, but return normally. */
  if (val-&gt;type == GCONF_VALUE_INT) {
    /* It's an integer, get it and store. */
    *number = gconf_value_get_int(val);
    /* Mark that we've changed the integer behind 'number'. */
    hasChanged = TRUE;
  } else {
    g_warning(&quot;confGetInt: key %s is not an integer\n&quot;, key);
  }

  /* Free the type/value-pair. */
  gconf_value_free(val);
  val = NULL;

  return hasChanged;
}

/**
 * NEW
 *
 * Utility function to change the given color into the one that is
 * specified in application preferences.
 *
 * If some key is missing, that channel is left untouched. The
 * function also checks for proper values for the channels so that
 * invalid values are not accepted (guint16 range of GdkColor).
 *
 * Parameters:
 * - GdkColor*: the color structure to modify if changed from prefs.
 *
 * Returns:
 * - TRUE if the color was been changed by this routine.
 *   FALSE if the color wasn't changed (there was an error or the
 *   color was already exactly the same as in the preferences).
 */
static gboolean confLoadCurrentColor(GdkColor* color) {

  GConfClient* gcClient = NULL;
  /* Temporary holders for the pref values. */
  gint red = -1;
  gint green = -1;
  gint blue = -1;
  /* Temp variable to hold whether the color has changed. */
  gboolean hasChanged = FALSE;

  g_assert(color);

  g_print(&quot;confLoadCurrentColor: invoked\n&quot;);

  /* Open a connection to gconfd-2 (via d-bus). */
  gcClient = gconf_client_get_default();
  /* Make sure that it's a valid GConf-client object. */
  g_assert(GCONF_IS_CLIENT(gcClient));

  if (confGetInt(gcClient, GC_ROOT &quot;red&quot;, &amp;red)) {
    /* We got the value successfully, now clamp it. */
    g_print(&quot; got red = %d, &quot;, red);
    /* We got a value, so let's limit it between 0 and 65535 (the
       legal range for guint16). We use the CLAMP macro from GLib for
       this. */
    red = CLAMP(red, 0, G_MAXUINT16);
    g_print(&quot;after clamping = %d\n&quot;, red);
    /* Update &amp; mark that at least this component changed. */
    color-&gt;red = (guint16)red;
    hasChanged = TRUE;
  }
  /* Repeat the same logic for the green component. */
  if (confGetInt(gcClient, GC_ROOT &quot;green&quot;, &amp;green)) {
    g_print(&quot; got green = %d, &quot;, green);
    green = CLAMP(green, 0, G_MAXUINT16);
    g_print(&quot;after clamping = %d\n&quot;, green);
    color-&gt;green = (guint16)green;
    hasChanged = TRUE;
  }
  /* Repeat the same logic for the last component (blue). */
  if (confGetInt(gcClient, GC_ROOT &quot;blue&quot;, &amp;blue)) {
    g_print(&quot; got blue = %d, &quot;, blue);
    blue = CLAMP(blue, 0, G_MAXUINT16);
    g_print(&quot;after clamping = %d\n&quot;, blue);
    color-&gt;blue = (guint16)blue;
    hasChanged = TRUE;
  }

  /* Release the client object (with GObject-unref). */
  g_object_unref(gcClient);
  gcClient = NULL;

  /* Return status if the color was been changed by this routine. */
  return hasChanged;
}

/**
 * MODIFIED
 *
 * Invoked when the user selects a color (or will cancel the dialog).
 *
 * Will also write the color to preferences (GConf) each time the
 * color changes. We'll compare whether it has really changed (to
 * avoid writing to GConf is nothing really changed).
 */
static void cbActionColorChanged(HildonColorButton* colorButton,
                                 ApplicationState* app) {

  /* Local variables that we'll need to handle the change (NEW). */
  gboolean hasChanged = FALSE;
  GdkColor newColor = {};
  GdkColor* curColor = NULL;

  g_assert(app != NULL);

  g_print(&quot;cbActionColorChanged invoked\n&quot;);
  /* Retrieve the new color from the color button (NEW). */
  hildon_color_button_get_color(colorButton, &amp;newColor);
  /* Just an alias to save some typing (could also use
     app-&gt;currentColor) (NEW). */
  curColor = &amp;app-&gt;currentColor;

  /* Check whether the color really changed (NEW). */
  if ((newColor.red   != curColor-&gt;red) ||
      (newColor.green != curColor-&gt;green) ||
      (newColor.blue  != curColor-&gt;blue)) {
    hasChanged = TRUE;
  }
  if (!hasChanged) {
    g_print(&quot; color not really changed\n&quot;);
    return;
  }
  /* Color really changed, store to preferences (NEW). */
  g_print(&quot; color changed, storing into preferences.. \n&quot;);
  confStoreColor(&amp;newColor);
  g_print(&quot; done.\n&quot;);

  /* Update the changed color into the application state. */
  app-&gt;currentColor = newColor;
}

  /*... Listing cut for brevity ...*/

/**
 * MODIFIED
 *
 * The color of the color button will be loaded from the application
 * preferences (or keep the default if preferences have no setting).
 */
static GtkWidget* buildToolbar(ApplicationState* app) {

  GtkToolbar*  toolbar = NULL;
  GtkToolItem* tbOpen = NULL;
  GtkToolItem* tbSave = NULL;
  GtkToolItem* tbSep = NULL;
  GtkToolItem* tbFind = NULL;
  GtkToolItem* tbColorButton = NULL;
  GtkWidget*   colorButton = NULL;

  g_assert(app != NULL);

  tbOpen = gtk_tool_button_new_from_stock(GTK_STOCK_OPEN);
  tbSave = gtk_tool_button_new_from_stock(GTK_STOCK_SAVE);
  tbSep  = gtk_separator_tool_item_new();
  tbFind = gtk_tool_button_new_from_stock(GTK_STOCK_FIND);

  tbColorButton = gtk_tool_item_new();
  colorButton = hildon_color_button_new();
  /* Copy the color from the color button into the application state.
     This is done to detect whether the color in preferences matches
     the default color or not (NEW). */
  hildon_color_button_get_color(HILDON_COLOR_BUTTON(colorButton),
                                &amp;app-&gt;currentColor);
  /* Load preferences and change the color if necessary. */
  g_print(&quot;buildToolbar: loading color pref.\n&quot;);
  if (confLoadCurrentColor(&amp;app-&gt;currentColor)) {
    g_print(&quot; color not same as default one\n&quot;);
    hildon_color_button_set_color(HILDON_COLOR_BUTTON(colorButton),
                                  &amp;app-&gt;currentColor);
  } else {
    g_print(&quot; loaded color same as default\n&quot;);
  }
  gtk_container_add(GTK_CONTAINER(tbColorButton), colorButton);

  /*... Listing cut for brevity ...*/

}
&lt;/source&gt;

Since the graphical appearance of the program does not change (except that the &lt;code&gt;ColorButton&lt;/code&gt; will display the correct initial color), a look will be taken at the stdout display of the program.

&lt;pre&gt;
[sbox-DIABLO_X86: ~/appdev] &amp;gt; run-standalone.sh ./hildon_helloworld-9
buildToolbar: loading color pref.
confLoadCurrentColor: invoked
hildon_helloworld-9[19840]: GLIB WARNING ** default - 
 confGetInt: key /apps/Maemo/hildon_hello/red not found
hildon_helloworld-9[19840]: GLIB WARNING ** default - 
 confGetInt: key /apps/Maemo/hildon_hello/green not found
hildon_helloworld-9[19840]: GLIB WARNING ** default - 
 confGetInt: key /apps/Maemo/hildon_hello/blue not found
 loaded color same as default
main: calling gtk_main
cbActionMainToolbarToggle invoked
cbActionColorChanged invoked
 color changed, storing into preferences..
confStoreColor: invoked
 done.
main: returned from gtk_main and exiting with success
&lt;/pre&gt;

When running the program for the first time, warnings about the missing keys can be expected (since the values were not present in GConf).

Run the program again and exit:

&lt;pre&gt;
[sbox-DIABLO_X86: ~/appdev] &amp;gt; run-standalone.sh ./hildon_helloworld-9
buildToolbar: loading color pref.
confLoadCurrentColor: invoked
 got red = 65535, after clamping = 65535
 got green = 65535, after clamping = 65535
 got blue = 0, after clamping = 0
 color not same as default one
main: calling gtk_main
main: returned from gtk_main and exiting with success
&lt;/pre&gt;

The next step is to remove one key (red), and run the program again (this is to test and verify that the logic works):

&lt;pre&gt; 
[sbox-DIABLO_X86: ~/appdev] &amp;gt; run-standalone.sh gconftool-2  \
 --unset /apps/Maemo/hildon_hello/red
[sbox-DIABLO_X86: ~/appdev] &amp;gt; run-standalone.sh gconftool-2  \
 -R /apps/Maemo/hildon_hello
 green = 65535
 blue = 0
[sbox-DIABLO_X86: ~/appdev] &amp;gt; run-standalone.sh ./hildon_helloworld-9
buildToolbar: loading color pref.
confLoadCurrentColor: invoked
hildon_helloworld-9[19924]: GLIB WARNING ** default -
 confGetInt: key /apps/Maemo/hildon_hello/red not found
 got green = 65535, after clamping = 65535
 got blue = 0, after clamping = 0
 color not same as default one
main: calling gtk_main
main: returned from gtk_main and exiting with success
&lt;/pre&gt;

==  Asynchronous GConf ==

=== Listening to changes in GConf ===

Now it is time to see how to extend GConf to be more suitable in asynchronous work, and especially when implementing services.

When the configuration needs for the service are simple, and reacting to configuration changes in &quot;realtime&quot; is desired, it is advisable to use GConf. Also, people tend to use GConf when they are too lazy to write their own configuration file parsers (although there is a simple one in GLib), or too lazy to write the GUI part to change the settings. This example program will simulate the first case, and react to changes in a subset of GConf configuration name space when the changes happen.

The application will be interested in two string values; one to set the device to use for communication (connection), and the other to set the communication parameters for the device (connectionparams). Since this example will be concentrating on just the change notifications, the program logic is simplified by omitting the proper set-up code in the program. This means that it is necessary to set up some values to the GConf keys prior to running the program. For this, &lt;code&gt;gconftool-2&lt;/code&gt; will be used, and a target has been prepared in the '''Makefile''' just for this (see section [[Documentation/Maemo 5 Developer Guide/GNU Build System#GNU Make and Makefiles|GNU Make and Makefiles]] if necessary): gconf-listener/Makefile

&lt;source lang=&quot;make&quot;&gt;
# Define a variable for this so that the GConf root may be changed
gconf_root := /apps/Maemo/platdev_ex

# ... Listing cut for brevity ...

# This will setup the keys into default values.
# It will first do a clear to remove any existing keys.
primekeys: clearkeys
        gconftool-2 -set -type string \
                    $(gconf_root)/connection btcomm0
        gconftool-2 -set -type string \
                    $(gconf_root)/connectionparams 9600,8,N,1

# Remove all application keys
clearkeys:
        @gconftool-2 -recursive-unset $(gconf_root)

# Dump all application keys
dumpkeys:
        @echo Keys under $(gconf_root):
        @gconftool-2 -recursive-list $(gconf_root)
&lt;/source&gt;

The next step is to prepare the keyspace by running the &lt;code&gt;primekeys&lt;/code&gt; target, and to verify that it succeeds by running the &lt;code&gt;dumpkeys&lt;/code&gt; target:

&lt;pre&gt;
 [sbox-DIABLO_X86: ~/gconf-listener] &gt; make primekeys
 gconftool-2 --set --type string \
             /apps/Maemo/platdev_ex/connection btcomm0
 gconftool-2 --set --type string \
             /apps/Maemo/platdev_ex/connectionparams 9600,8,N,1
 [sbox-DIABLO_X86: ~/gconf-listener] &gt; make dumpkeys
 Keys under /apps/Maemo/platdev_ex:
  connectionparams = 9600,8,N,1
  connection = btcomm0
&lt;/pre&gt;

===  Implementing Notifications on Changes in GConf ===

The first step here is to take care of the necessary header information. The GConf namespace settings have been all implemented using cpp macros, so that one can easily change the prefix of the name space if required later on. gconf-listener/gconf-key-watch.c

&lt;source lang=&quot;c&quot;&gt;
#include &lt;glib.h&gt;
#include &lt;gconf/gconf-client.h&gt;
#include &lt;string.h&gt; /* strcmp */

/* As per maemo Coding Style and Guidelines document, we use the
   /apps/Maemo/ -prefix.
   NOTE: There is no central registry (as of this moment) that you
         could check that your application name doesn't collide with
         other application names, so caution is advised! */
#define SERVICE_GCONF_ROOT &quot;/apps/Maemo/platdev_ex&quot;

/* We define the names of the keys symbolically so that we may change
   them later if necessary, and so that the GConf &quot;root directory&quot; for
   our application will be automatically prefixed to the paths. */
#define SERVICE_KEY_CONNECTION \
        SERVICE_GCONF_ROOT &quot;/connection&quot;
#define SERVICE_KEY_CONNECTIONPARAMS \
        SERVICE_GCONF_ROOT &quot;/connectionparams&quot;
&lt;/source&gt;

The main starts innocently enough, by creating a GConf client object (that encapsulates the connection to the GConf daemon), and then displays the two values on output: gconf-listener/gconf-key-watch.c

&lt;source lang=&quot;c&quot;&gt;
int main (int argc, char** argv) {
  /* Will hold reference to the GConfClient object. */
  GConfClient* client = NULL;
  /* Initialize this to NULL so that we'll know whether an error
     occurred or not (and we don't have an existing GError object
     anyway at this point). */
  GError* error = NULL;
  /* This will hold a reference to the mainloop object. */
  GMainLoop* mainloop = NULL;

  g_print(PROGNAME &quot;:main Starting.\n&quot;);

  /* Must be called to initialize GType system. The API reference for
     gconf_client_get_default() insists.
     NOTE: Using gconf_init() is deprecated! */
  g_type_init();

  /* Create a new mainloop structure that we'll use. Use default
     context (NULL) and set the 'running' flag to FALSE. */
  mainloop = g_main_loop_new(NULL, FALSE);
  if (mainloop == NULL) {
    g_error(PROGNAME &quot;: Failed to create mainloop!\n&quot;);
  }

  /* Create a new GConfClient object using the default settings. */
  client = gconf_client_get_default();
  if (client == NULL) {
    g_error(PROGNAME &quot;: Failed to create GConfClient!\n&quot;);
  }

  g_print(PROGNAME &quot;:main GType and GConfClient initialized.\n&quot;);

  /* Display the starting values for the two keys. */
  dispStringKey(client, SERVICE_KEY_CONNECTION);
  dispStringKey(client, SERVICE_KEY_CONNECTIONPARAMS);
&lt;/source&gt;

The &lt;code&gt;dispStringKey&lt;/code&gt; utility is rather simple as well, building on the GConf material that was covered in the [[#Using GConf to read and write preferences|previous section]]: gconf-listener/gconf-key-watch.c

&lt;source lang=&quot;c&quot;&gt;
/**
 * Utility to retrieve a string key and display it.
 * (Just as a small refresher on the API.)
 */
static void dispStringKey(GConfClient* client,
                          const gchar* keyname) {

  /* This will hold the string value of the key. It will be
     dynamically allocated for us, so we need to release it ourselves
     when done (before returning). */
  gchar* valueStr = NULL;

  /* We're not interested in the errors themselves (the last
     parameter), but the function will return NULL if there is one,
     so we just end in that case. */
  valueStr = gconf_client_get_string(client, keyname, NULL);

  if (valueStr == NULL) {
    g_error(PROGNAME &quot;: No string value for %s. Quitting\n&quot;, keyname);
    /* Application terminates. */
  }

  g_print(PROGNAME &quot;: Value for key '%s' is set to '%s'\n&quot;,
          keyname, valueStr);

  /* Normally one would want to use the value for something beyond
     just displaying it, but since this code doesn't, we release the
     allocated value string. */
  g_free(valueStr);
}
&lt;/source&gt;

Next, the GConf client is told to attach itself to a specific name space part that this example is going to operate with: gconf-listener/gconf-key-watch.c

&lt;source lang=&quot;c&quot;&gt;
/**
 * Register directory to watch for changes. This will then tell
 * GConf to watch for changes in this namespace, and cause the
 * &quot;value-changed&quot;-signal to be emitted. We won't be using that
 * mechanism, but will opt to a more modern (and potentially more
 * scalable solution). The directory needs to be added to the
 * watch list in either case.
 *
 * When adding directories, you can sometimes optimize your program
 * performance by asking GConfClient to preload some (or all) keys
 * under a specific directory. This is done via the preload_type
 * parameter (we use GCONF_CLIENT_PRELOAD_NONE below). Since our
 * program will only listen for changes, we don't want to use extra
 * memory to keep the keys cached.
 *
 * Parameters:
 * - client: GConf-client object
 * - SERVICEPATH: the name of the GConf namespace to follow
 * - GCONF_CLIENT_PRELOAD_NONE: do not preload any of contents
 * - error: where to store the pointer to allocated GError on
 *          errors.
 */
gconf_client_add_dir(client,
                     SERVICE_GCONF_ROOT,
                     GCONF_CLIENT_PRELOAD_NONE,
                     &amp;error);

if (error != NULL) {
  g_error(PROGNAME &quot;: Failed to add a watch to GCClient: %s\n&quot;,
          error-&gt;message);
  /* Normally we'd also release the allocated GError, but since
     this program will terminate on g_error, we won't do that.
     Hence the next line is commented. */
  /* g_error_free(error); */

  /* When you want to release the error if it has been allocated,
     or just continue if not, use g_clear_error(&amp;error); */
}

g_print(PROGNAME &quot;:main Added &quot; SERVICE_GCONF_ROOT &quot;.\n&quot;);
&lt;/source&gt;

Proceeding with the callback function registration, we have: gconf-listener/gconf-key-watch.c

&lt;source lang=&quot;c&quot;&gt;
/* Register our interest (in the form of a callback function) for
   any changes under the namespace that we just added.

   Parameters:
   - client: GConfClient object.
   - SERVICEPATH: namespace under which we can get notified for
                  changes.
   - gconf_notify_func: callback that will be called on changes.
   - NULL: user-data pointer (not used here).
   - NULL: function to call on user-data when notify is removed or
           GConfClient destroyed. NULL for none (since we don't
           have user-data anyway).
   - error: return location for an allocated GError.

   Returns:
   guint: an ID for this notification so that we could remove it
          later with gconf_client_notify_remove(). We're not going
          to use it so we don't store it anywhere. */
gconf_client_notify_add(client, SERVICE_GCONF_ROOT,
                        keyChangeCallback, NULL, NULL, &amp;error);
if (error != NULL) {
  g_error(PROGNAME &quot;: Failed to add register the callback: %s\n&quot;,
          error-&gt;message);
  /* Program terminates. */
 }

g_print(PROGNAME &quot;:main CB registered &amp; starting main loop\n&quot;);
&lt;/source&gt;

When dealing with regular desktop software, one could use multiple callback functions; one for each key to track. However, this would require implementing multiple callback functions, and this runs a risk of enlarging the size of the code. For this reason, the example code uses one callback function, which will internally multiplex between the two keys (by using strcmp): gconf-listener/gconf-key-watch.c

&lt;source lang=&quot;c&quot;&gt;
/**
 * Callback called when a key in watched directory changes.
 * Prototype for the callback must be compatible with
 * GConfClientNotifyFunc (for ref).
 *
 * It will find out which key changed (using strcmp, since the same
 * callback is used to track both keys) and the display the new value
 * of the key.
 *
 * The changed key/value pair will be communicated in the entry
 * parameter. userData will be NULL (can be set on notify_add [in
 * main]). Normally the application state would be carried within the
 * userData parameter, so that this callback could then modify the
 * view based on the change. Since this program does not have a state,
 * there is little that we can do within the function (it will abort
 * the program on errors though).
 */
static void keyChangeCallback(GConfClient* client,
                              guint        cnxn_id,
                              GConfEntry*  entry,
                              gpointer     userData) {

  /* This will hold the pointer to the value. */
  const GConfValue* value = NULL;
  /* This will hold a pointer to the name of the key that changed. */
  const gchar* keyname = NULL;
  /* This will hold a dynamically allocated human-readable
     representation of the changed value. */
  gchar* strValue = NULL;

  g_print(PROGNAME &quot;: keyChangeCallback invoked.\n&quot;);

  /* Get a pointer to the key (this is not a copy). */
  keyname = gconf_entry_get_key(entry);

  /* It will be quite fatal if after change we cannot retrieve even
     the name for the gconf entry, so we error out here. */
  if (keyname == NULL) {
    g_error(PROGNAME &quot;: Couldn't get the key name!\n&quot;);
    /* Application terminates. */
  }

  /* Get a pointer to the value from changed entry. */
  value = gconf_entry_get_value(entry);

  /* If we get a NULL as the value, it means that the value either has
     not been set, or is at default. As a precaution we assume that
     this cannot ever happen, and will abort if it does.
     NOTE: A real program should be more resilient in this case, but
           the problem is: what is the correct action in this case?
           This is not always simple to decide.
     NOTE: You can trip this assert with 'make primekeys', since that
           will first remove all the keys (which causes the CB to
           be invoked, and abort here). */
  g_assert(value != NULL);

  /* Check that it looks like a valid type for the value. */
  if (!GCONF_VALUE_TYPE_VALID(value-&gt;type)) {
    g_error(PROGNAME &quot;: Invalid type for gconfvalue!\n&quot;);
  }

  /* Create a human readable representation of the value. Since this
     will be a new string created just for us, we'll need to be
     careful and free it later. */
  strValue = gconf_value_to_string(value);

  /* Print out a message (depending on which of the tracked keys
     change. */
  if (strcmp(keyname, SERVICE_KEY_CONNECTION) == 0) {
    g_print(PROGNAME &quot;: Connection type setting changed: [%s]\n&quot;,
            strValue);
  } else if (strcmp(keyname, SERVICE_KEY_CONNECTIONPARAMS) == 0) {
    g_print(PROGNAME &quot;: Connection params setting changed: [%s]\n&quot;,
            strValue);
  } else {
    g_print(PROGNAME &quot;:Unknown key: %s (value: [%s])\n&quot;, keyname,
            strValue);
  }

  /* Free the string representation of the value. */
  g_free(strValue);

  g_print(PROGNAME &quot;: keyChangeCallback done.\n&quot;);
}
&lt;/source&gt;

The complications in the above code rise from the fact that GConf communicates values using a &lt;code&gt;GValue&lt;/code&gt; structure, which can carry values of any simple type. Since GConf (or the user for that matter) cannot be completely trusted to return the correct type for the value, it is necessary to be extra careful, and not assume that it will always be a string. GConf also supports &quot;default&quot; values, which are communicated to the application using &lt;code&gt;NULL&lt;/code&gt;s, so it is also necessary to guard against that. Especially since the application does not provide a schema for the configuration space that would contain the default values.

The next step is to build and test the program. The program will be started on the background, so that &lt;code&gt;gconftool-2&lt;/code&gt; can be used to see how the program reacts to changing parameters:

&lt;pre&gt;
[sbox-DIABLO_X86: ~/gconf-listener] &gt; make
cc -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gconf/2 \
   -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -Wall -g \
   -DPROGNAME=\&quot;gconf-key-watch\&quot; gconf-key-watch.c -o gconf-key-watch \
   -lgconf-2 -ldbus-glib-1 -ldbus-1 -lgobject-2.0 -lglib-2.0
[sbox-DIABLO_X86: ~/gconf-listener] &amp;gt; run-standalone.sh ./gconf-key-watch &amp;amp;
[2] 21385
gconf-key-watch:main Starting.
gconf-key-watch:main GType and GConfClient initialized.
gconf-key-watch: Value for key '/apps/Maemo/platdev_ex/connection'
 is set to 'btcomm0'
gconf-key-watch: Value for key '/apps/Maemo/platdev_ex/connectionparams'
 is set to '9600,8,N,1'
gconf-key-watch:main Added /apps/Maemo/platdev_ex.
gconf-key-watch:main CB registered &amp; starting main loop
[sbox-DIABLO_X86: ~/gconf-listener] &gt; gconftool-2 --set --type string \
  /apps/Maemo/platdev_ex/connection ttyS0
gconf-key-watch: keyChangeCallback invoked.
gconf-key-watch: Connection type setting changed: [ttyS0]
gconf-key-watch: keyChangeCallback done.
[sbox-DIABLO_X86: ~/gconf-listener] &gt; gconftool-2 --set --type string \
  /apps/Maemo/platdev_ex/connectionparams ''
gconf-key-watch: keyChangeCallback invoked.
gconf-key-watch: Connection params setting changed: []
gconf-key-watch: keyChangeCallback done.
&lt;/pre&gt;

The latter change is somewhat problematic (which the code needs to deal with as well). It is necessary to decide how to react to values that are of the correct type, but with senseless values. GConf in itself does not provide syntax checking for the values, or any semantic checking support. It is recommended that configuration changes will only be reacted to when they pass some internal (to the application) logic that will check their validity, both at syntax level and also at semantic level.

One option would also be resetting the value back to a valid value, whenever the program detects an invalid value set attempt. This will lead to a lot of problems, if the value is set programmatically from another program that will obey the same rule, so it is not advisable. Quitting the program on invalid values is also an option that should not be used, since the restricted environment does not provide many ways to inform the user that the program has quit.

An additional possible problem is having multiple keys that are all &quot;related&quot; to a single setting or action. It is necessary to decide, how to deal with changes across multiple GConf keys that are related, yet changed separately. The two key example code demonstrates the inherent problem: should the server re-initialize the (theoretic) connection, when the connection key is changed, or when the connectionparams key is changed? If the connection is re-initialized when either of the keys is changed, then the connection will be re-initialized twice when both are changed &quot;simultaneously&quot; (user presses &quot;Apply&quot; on a settings dialog, or gconftool-2 is run and sets both keys). It is easy to see how this might be an even larger problem, if instead of two keys, there were five per connection. GConf and the &lt;code&gt;GConfClient&lt;/code&gt; &lt;code&gt;GObject&lt;/code&gt; wrapper that has been used here do not support &quot;configuration set transactions&quot;, which would allow setting and processing multiple related keys using an atomic model. The example program ignores this issue completely.

The next step is to test how the program (which is still running) reacts to other problematic situations:

&lt;pre&gt;
[sbox-DIABLO_X86: ~/gconf-listener] &gt; gconftool-2 --set --type int \
  /apps/Maemo/platdev_ex/connectionparams 5
gconf-key-watch: keyChangeCallback invoked.
gconf-key-watch: Connection params setting changed: [5]
gconf-key-watch: keyChangeCallback done.
[sbox-DIABLO_X86: ~/gconf-listener] &gt; gconftool-2 --set --type boolean \
  /apps/Maemo/platdev_ex/connectionparams true
gconf-key-watch: keyChangeCallback invoked.
gconf-key-watch: Connection params setting changed: [true]
gconf-key-watch: keyChangeCallback done.
&lt;/pre&gt;

The next example removes the configuration keys, while the program is still running:

&lt;pre&gt;
[sbox-DIABLO_X86: ~/gconf-listener] &gt; make clearkeys
gconf-key-watch: keyChangeCallback invoked.
gconf-key-watch[21403]: GLIB ERROR ** default - 
  file gconf-key-watch.c: line 129 (keyChangeCallback):
  assertion failed: (value != NULL)
aborting...
/usr/bin/run-standalone.sh: line 11: 21403 Aborted (core dumped) &quot;$@&quot;
[1]+  Exit 134 run-standalone.sh ./gconf-key-watch
&lt;/pre&gt;

Since the code (in the callback function) contains an assert that checks for non-&lt;code&gt;NULL&lt;/code&gt; values, it will abort when the key is removed, and that causes the value to go to &lt;code&gt;NULL&lt;/code&gt;. So the abortion in the above case is expected.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Extending Hildon Input Methods</title>
    <id>2929</id>
    <revision>
      <id>37858</id>
      <timestamp>2010-08-17T13:51:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use &lt;code&gt;, add maemo.org/packages links</comment>
      <text xml:space="preserve">Maemo platform is intended to be used on embedded devices. It is a quite straightforward request that one might want to have different input methods from the ones available by default, or just simply want a different layout for the virtual keyboard. For this reason, [[Open development/Maemo roadmap/Diablo|Maemo 4.1]] introduces a way to enable writing custom plug-ins for Hildon Input Method.

This section describes writing a simple plug-in for Hildon Input Method. This example plug-in is going to implement a very basic virtual keyboard.

The illustration below shows what area of the Hildon Input Method can be redefined with the custom plug-in.

&lt;div align=&quot;CENTER&quot;&gt;[[Image:HIM-ui.png|Image HIM-ui]]&lt;/div&gt;

Technically, the plug-in is an almost-standard GTK+ widget (with additional steps to support dynamic loading). The widget of the plug-in will be placed in the Plug-in area.

The illustration below shows the data flow of a user's input:

&lt;div align=&quot;CENTER&quot;&gt;[[Image:HIM-comp.png|Image HIM-comp]]&lt;/div&gt;

User inputs directly to the plug-in, then the plug-in sends the inputted data to HIM main user interface. The HIM main UI will interact with the IM context, and then commit the inputted text to the client widget.

In case of a custom plug-in, the plug-in itself - i.e. its writer - is responsible for handling all the inputs (even the buttons that are part of HIM main UI, e.g. tab or enter) and propagate them to the right modules (e.g. IM context).

The function and outlook of the buttons in HIM main UI can be customized, but one cannot remove them completely from the UI - only dim them (see handwriting plug-in), and they cannot be rearranged (for further information, see section Common buttons).

== Plug-in features ==

Hildon Input Method plug-in must be a GTK widget. In addition to the GTK widget interface, the plug-in must implement certain functions.

=== Interface ===

As already mentioned, the plug-in must handle all the inputs - both real user input and management signals from the system - that are coming to the HIM main UI. The first step is to take a look at which functions need to be implemented and provided by the plug-in to the Hildon Input Method Plug-in Interface. Later on, it will be shown how these functions are actually registered for the HIM Plug-in Interface.

The essential functions that must be implemented by a basic plug-in:

* hildon-input-method/hildon-im-plugin.h
&lt;source lang=&quot;c&quot;&gt;
void (*enable) (HildonIMPlugin *plugin, gboolean init);
&lt;/source&gt;

&lt;code&gt;enable&lt;/code&gt; is called whenever the plug-in becomes available to the user. '''init''' holds TRUE whenever this is the initialization time. hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
/* Called when the plugin is available to the user */
static void
enable (HildonIMPlugin *plugin, gboolean init)
{
  HimExampleVKBPrivate *priv;
  HimExampleVKB *vkb;
  vkb = HIMEXAMPLE_VKB (plugin);
  priv = HIMEXAMPLE_VKB_GET_PRIVATE (vkb);
  if (init == TRUE)
  {
    hildon_im_ui_button_set_toggle (priv-&gt;ui,
      HILDON_IM_BUTTON_MODE_A, TRUE);
    hildon_im_ui_button_set_toggle (priv-&gt;ui,
      HILDON_IM_BUTTON_MODE_B, TRUE);
    hildon_im_ui_button_set_label (priv-&gt;ui,
      HILDON_IM_BUTTON_MODE_A, &quot;ABC&quot;);
    hildon_im_ui_button_set_label (priv-&gt;ui,
      HILDON_IM_BUTTON_MODE_B, &quot;Shift&quot;);
  }
  hildon_im_ui_send_communication_message(priv-&gt;ui, HILDON_IM_CONTEXT_DIRECT_MODE);
}
&lt;/source&gt;

&lt;code&gt;disable&lt;/code&gt; is called whenever the plug-in becomes unavailable to the user (e.g. when the main UI is closed). hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
/* Called when the plugin is disabled */
static void
disable(HildonIMPlugin *plugin)
{
  /* not implemented */
}
&lt;/source&gt;

&lt;code&gt;settings_changed&lt;/code&gt; is called whenever the HIM main UI receives a notification from GConf about Hildon Input Method settings being changed. The affected settings are all settings residing in &lt;code&gt;/apps/osso/inputmethod&lt;/code&gt; path. &lt;code&gt;key&lt;/code&gt; and &lt;code&gt;value&lt;/code&gt; hold the GConf key and its value respectively. hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
/* Called when the standard input method settings 
  has been changed */
static void
settings_changed (HildonIMPlugin *plugin,
    const gchar *key, const GConfValue *value)
{
  /* not implemented */
}
&lt;/source&gt;

&lt;code&gt;input_mode_changed&lt;/code&gt; is called whenever the input mode is changed. Input mode is changed to what has been specified by the client widget. The input mode puts constraints to the plug-in to limit whether input shall be accepted or ignored. hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
/* Called when input mode changed */
static void
input_mode_changed (HildonIMPlugin *plugin)
{
  /* not implemented */
}
&lt;/source&gt;

&lt;code&gt;clear&lt;/code&gt; is called whenever the HIM main UI requests the plug-in to clear or refresh its user interface. hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
/* Called when the plugin is requested to 'clear'/refresh its UI */
static void
clear(HildonIMPlugin *plugin)
{
  /* not implemented */
}
&lt;/source&gt;

&lt;code&gt;client_widget_changed&lt;/code&gt; is called whenever the client widget is changed from one to another. For instance, the case could be that the user taps on another text entry. hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
/* Called when the client widget changed */
static void
client_widget_changed (HildonIMPlugin *plugin)
{
  /* not implemented */
}
&lt;/source&gt;

&lt;code&gt;save_data&lt;/code&gt; is called whenever the HIM main UI is requested to save its (and the plug-in's) data. Usually it is called when the main UI is requested to quit. hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
/* Called when the plugin is requested to save its data */
static void
save_data(HildonIMPlugin *plugin)
{
  /* not implemented */
}
&lt;/source&gt;

&lt;code&gt;mode_a&lt;/code&gt; is called whenever the ''Mode A'' (Caps Lock in virtual keyboard plug-in) is pressed. hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
/* Called when the MODE_A button is pressed */
static void
mode_a(HildonIMPlugin *plugin)
{
  HimExampleVKBPrivate *priv;
  HimExampleVKB *vkb;
  vkb = HIMEXAMPLE_VKB (plugin);
  priv = HIMEXAMPLE_VKB_GET_PRIVATE (vkb);
  if (hildon_im_ui_button_get_active (priv-&gt;ui,
        HILDON_IM_BUTTON_MODE_B)) {
    hildon_im_ui_button_set_active (priv-&gt;ui,
        HILDON_IM_BUTTON_MODE_B, FALSE);
    if (hildon_im_ui_button_get_active (priv-&gt;ui,
        HILDON_IM_BUTTON_MODE_A)) {
      priv-&gt;case_mode = CASE_UPPER;
    } else {
      priv-&gt;case_mode = CASE_LOWER;
    }
  } else {
    if (hildon_im_ui_button_get_active (priv-&gt;ui,
        HILDON_IM_BUTTON_MODE_A)) {
      priv-&gt;case_mode = CASE_UPPER;
    } else {
      priv-&gt;case_mode = CASE_LOWER;
    }
  }
  update_layout (vkb);
}
&lt;/source&gt;

&lt;code&gt;mode_b&lt;/code&gt; is called whenever the ''Mode B'' (Shift in virtual keyboard plug-in) is pressed. hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
/* Called when the MODE_B button is pressed */
static void
mode_b(HildonIMPlugin *plugin)
{
  HimExampleVKBPrivate *priv;
  HimExampleVKB *vkb;
  vkb = HIMEXAMPLE_VKB (plugin);
  priv = HIMEXAMPLE_VKB_GET_PRIVATE (vkb);
  if (hildon_im_ui_button_get_active (priv-&gt;ui,
        HILDON_IM_BUTTON_MODE_B)) {
    if (hildon_im_ui_button_get_active (priv-&gt;ui,
        HILDON_IM_BUTTON_MODE_A)) {
      priv-&gt;case_mode = CASE_LOWER;
    } else {
      priv-&gt;case_mode = CASE_UPPER;
    }
  } else {
    if (hildon_im_ui_button_get_active (priv-&gt;ui,
        HILDON_IM_BUTTON_MODE_A)) {
      priv-&gt;case_mode = CASE_UPPER;
    } else {
      priv-&gt;case_mode = CASE_LOWER;
    }
  }
  update_layout (vkb);
}
&lt;/source&gt;

* hildon-input-method/hildon-im-plugin.h
&lt;source lang=&quot;c&quot;&gt;
void (*backspace) (HildonIMPlugin *plugin);
&lt;/source&gt;

&lt;code&gt;backspace&lt;/code&gt; is called whenever the virtual backspace key is pressed. hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
/* Called when the backspace button is pressed */
static void
backspace (HildonIMPlugin *plugin)
{
  HimExampleVKBPrivate *priv;
  priv = HIMEXAMPLE_VKB_GET_PRIVATE (HIMEXAMPLE_VKB (plugin));
  hildon_im_ui_send_communication_message (priv-&gt;ui,
      HILDON_IM_CONTEXT_HANDLE_BACKSPACE);
}
&lt;/source&gt;

&lt;code&gt;enter&lt;/code&gt; is called whenever the virtual enter key is pressed. hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
/* Called when the enter button is pressed */
static void
enter (HildonIMPlugin *plugin)
{
  HimExampleVKBPrivate *priv;
  priv = HIMEXAMPLE_VKB_GET_PRIVATE (HIMEXAMPLE_VKB (plugin));
  hildon_im_ui_send_communication_message (priv-&gt;ui,
      HILDON_IM_CONTEXT_HANDLE_ENTER);
}
&lt;/source&gt;

* hildon-input-method/hildon-im-plugin.h

&lt;source lang=&quot;c&quot;&gt;
void (*tab) (HildonIMPlugin *plugin);
&lt;/source&gt;

&lt;code&gt;tab&lt;/code&gt; is called whenever the virtual tab key is pressed. hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
/* Called when the tab button is pressed */
static void
tab (HildonIMPlugin *plugin)
{
  HimExampleVKBPrivate *priv;
  priv = HIMEXAMPLE_VKB_GET_PRIVATE (HIMEXAMPLE_VKB (plugin));
  hildon_im_ui_send_communication_message (priv-&gt;ui,
      HILDON_IM_CONTEXT_HANDLE_TAB);
}
&lt;/source&gt;

Couple of functions related to changing language:

* hildon-input-method/hildon-im-plugin.h

&lt;source lang=&quot;c&quot;&gt;
void (*language) (HildonIMPlugin *plugin);
&lt;/source&gt;

&lt;code&gt;language&lt;/code&gt; is called whenever a new language is selected from the HIM main UI menu. hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
/* Called when the language has been changed */
static void
language (HildonIMPlugin *plugin)
{
  /* not implemented */
}
&lt;/source&gt;

* hildon-input-method/hildon-im-plugin.h

&lt;source lang=&quot;c&quot;&gt;
void (*language_settings_changed) (HildonIMPlugin *plugin, gint index);
&lt;/source&gt;

&lt;code&gt;language_settings_changed&lt;/code&gt; is called whenever the language settings for the specified language index have been changed.

=== Plug-in Loading ===

A nature of a plug-in is that it can be dynamically loaded. In this case also, the HIM plug-in is loaded whenever the user selects it, so in order to support the dynamic loading, the plug-in has to provide the following three specific functions for Hildon Input Method plug-in system:

==== module_init ====

&lt;source lang=&quot;c&quot;&gt;
void module_init (GTypeModule *module);
&lt;/source&gt;

This function initializes the plug-in as a module, meaning the type of &lt;code&gt;GTypeInfo&lt;/code&gt; needs to be registered, and the interface and instance information (&lt;code&gt;GInterfaceInfo&lt;/code&gt;) need to be added to the module. hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
void
module_init(GTypeModule *module)
{
  static const GTypeInfo type_info = {
    sizeof(HimExampleVKBClass),
    NULL, /* base_init */
    NULL, /* base_finalize */
    (GClassInitFunc) himExample_vkb_class_init,
    NULL, /* class_finalize */
    NULL, /* class_data */
    sizeof(HimExampleVKB),
    0, /* n_preallocs */
    (GInstanceInitFunc) himExample_vkb_init,
  };
  static const GInterfaceInfo plugin_info = {
    (GInterfaceInitFunc) himExample_vkb_iface_init,
    NULL, /* interface_finalize */
    NULL, /* interface_data */
  };
  himExample_vkb_type =
          g_type_module_register_type(module,
                                      GTK_TYPE_WIDGET, &quot;HimExampleVKB&quot;,
                                      &amp;type_info,
                                      0);
  g_type_module_add_interface(module,
                              HIMEXAMPLE_VKB_TYPE,
                              HILDON_IM_TYPE_PLUGIN,
                              &amp;plugin_info);
}
&lt;/source&gt;

The &lt;code&gt;himExample_vkb_iface_init&lt;/code&gt; function should register the custom interface functions in &lt;code&gt;HildonIMPluginIface&lt;/code&gt;: hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
/* Standard GTK stuff */
static void
himExample_vkb_iface_init (HildonIMPluginIface *iface)
{
  iface-&gt;enable = enable;
  iface-&gt;disable = disable;
  iface-&gt;enter = enter;
  iface-&gt;tab = tab;
  iface-&gt;backspace = backspace;
  iface-&gt;clear = clear;
  iface-&gt;input_mode_changed = input_mode_changed;
  iface-&gt;client_widget_changed = client_widget_changed;
  iface-&gt;save_data = save_data;
  iface-&gt;language = language;
  iface-&gt;mode_a = mode_a;
  iface-&gt;mode_b = mode_b;
  iface-&gt;language_settings_changed = language_settings_changed;
  iface-&gt;settings_changed = settings_changed;
  return;
}
&lt;/source&gt;

This function defines actions when the module is unloaded from the memory. hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
void
module_exit(void)
{
  /* empty */
}
&lt;/source&gt;

&lt;source lang=&quot;c&quot;&gt;
HildonIMPlugin* module_create (HildonIMUI *ui);
&lt;/source&gt;

This function creates and returns the plug-in widget to the main UI. hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
HildonIMPlugin*
module_create (HildonIMUI *keyboard)
{
  return HILDON_IM_PLUGIN (himExample_vkb_new (keyboard));
}
&lt;/source&gt;

=== Plug-in Info ===

Some basic information of the plug-in needs to be provided to the HIM plug-in system, so it can keep up with the kinds of plug-ins that are available in the system. This is performed with two specific functions:

&lt;source lang=&quot;c&quot;&gt;
HildonIMPlugin* module_create (HildonIMUI *ui);
&lt;/source&gt;

The function creates &lt;code&gt;HildonIMPluginInfo&lt;/code&gt; struct for providing the required information. hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
/* Input Method plugin information.
 * This structure tells the main UI about this plugin */
const HildonIMPluginInfo *
hildon_im_plugin_get_info(void)
{
  static const HildonIMPluginInfo info =
  {
    &quot;HIM VKB Example&quot;,                  /* description */
    &quot;himExample_vkb&quot;,                   /* name */
    &quot;Keyboard (EXAMPLE)&quot;,               /* menu title */
    NULL,                               /* gettext domain */
    TRUE,                               /* visible in menu */
    FALSE,                              /* cached */
    HILDON_IM_TYPE_DEFAULT,             /* UI type */
    HILDON_IM_GROUP_LATIN,              /* group */
    HILDON_IM_DEFAULT_PLUGIN_PRIORITY,  /* priority */
    NULL,                               /* special character plugin */
    &quot;&quot;,                                 /* help page */
    FALSE,                              /* disable common UI buttons */
    HILDON_IM_DEFAULT_HEIGHT,           /* plugin height */
    HILDON_IM_TRIGGER_STYLUS            /* trigger */
  };
  return &amp;info;
}
&lt;/source&gt;

The function returns a &lt;code&gt;NULL&lt;/code&gt; terminated array of string, containing language codes supported by the plug-in. Set &lt;code&gt;free&lt;/code&gt; to &lt;code&gt;TRUE&lt;/code&gt; if HIM main UI should free the returned value when no longer used. hildon-input-method-plugins-example/src/him-vkb-example.c

&lt;source lang=&quot;c&quot;&gt;
/*
 * This function returns the list of available languages supported
 * by the plugin.
 * */
gchar **
hildon_im_plugin_get_available_languages (gboolean *free)
{
  static gchar *list[] = { &quot;en_GB&quot;, NULL };
  *free = FALSE;
  return list;
}
&lt;/source&gt;

==  Interaction with main user interface ==

As mentioned above, the plug-in is placed inside the HIM main UI. This section deals with interacting with it. This is mainly done by calling its functions, as defined in &lt;code&gt;hildon-im-ui.h&lt;/code&gt;.

=== Handling Input ===

hildon-input-method/hildon-im-ui.h

&lt;source lang=&quot;c&quot;&gt;
void hildon_im_ui_send_utf8(HildonIMUI *main_ui, const gchar *text);
&lt;/source&gt;

The plug-in can request the main UI to commit a UTF-8 encoded text by calling this function. hildon-input-method/hildon-im-ui.h

&lt;source lang=&quot;c&quot;&gt;
void hildon_im_ui_send_communication_message(HildonIMUI *main_ui, gint message);
&lt;/source&gt;

The plug-in can use this function to tell the main UI that '''Enter''', '''Backspace''', or '''Tab''' virtual buttons are pressed. Simply call this function and pass one of the constants below as the '''message''' argument:

* &lt;code&gt;HILDON_IM_CONTEXT_HANDLE_ENTER&lt;/code&gt;
* &lt;code&gt;HILDON_IM_CONTEXT_HANDLE_BACKSPACE&lt;/code&gt;
* &lt;code&gt;HILDON_IM_CONTEXT_HANDLE_TAB&lt;/code&gt;

=== UI Visibility ===

hildon-input-method/hildon-im-ui.h

&lt;source lang=&quot;c&quot;&gt;
void hildon_im_ui_set_visible(HildonIMUI *ui, gboolean visible);
&lt;/source&gt;

The plug-in can request the main UI to set it's visibility by calling this function. hildon-input-method/hildon-im-ui.h

&lt;source lang=&quot;c&quot;&gt;
gboolean hildon_im_ui_get_visibility(HildonIMUI *main_ui);
&lt;/source&gt;

By calling this function, the plug-in can get the visibility status of the main UI.

=== Get Input Method State ===

The following two state reader functions could be very handy in case the plug-in receives a state change notification (e.g. language change), because this way all the state information does not need to be saved. hildon-input-method/hildon-im-ui.h

&lt;source lang=&quot;c&quot;&gt;
HildonIMCommand hildon_im_ui_get_autocase_mode(HildonIMUI *main_ui);
&lt;/source&gt;

The function returns the auto-capitalization mode of the current client widget. hildon-input-method/hildon-im-ui.h

&lt;source lang=&quot;c&quot;&gt;
const gchar * hildon_im_ui_get_active_language(HildonIMUI *main_ui);
&lt;/source&gt;

The function returns the current language code.

=== Common Buttons ===

As mentioned in the ''Overview'' section, the outlook and even the function of the buttons in the main UI can be modified. '''N.B.''' It is not recommended to alter buttons, except the ''Mode A'' and ''Mode B'' buttons! Other buttons may have hardwired behavior within the main UI.

If the plug-in changes the functionality of a button, one might want to reflect this also in the UI by changing the label of the button. The layout of the buttons can be altered by the following two functions:

* hildon-input-method/hildon-im-ui.h

&lt;source lang=&quot;c&quot;&gt;
void hildon_im_ui_button_set_label(HildonIMUI *keyboard,
                                   HildonIMButton button,
                                   const gchar *label);
&lt;/source&gt;

With this function, the plug-in can set the label of a button.
Possible values of &lt;code&gt;HildonIMButton&lt;/code&gt; (see '''hildon-im-ui.h'''):
** &lt;code&gt;HILDON_IM_BUTTON_TAB&lt;/code&gt;
** &lt;code&gt;HILDON_IM_BUTTON_MODE_A&lt;/code&gt;
** &lt;code&gt;HILDON_IM_BUTTON_MODE_B&lt;/code&gt;
** &lt;code&gt;HILDON_IM_BUTTON_INPUT_MENU&lt;/code&gt;
** &lt;code&gt;HILDON_IM_BUTTON_BACKSPACE&lt;/code&gt;
** &lt;code&gt;HILDON_IM_BUTTON_ENTER&lt;/code&gt;
** &lt;code&gt;HILDON_IM_BUTTON_SPECIAL_CHAR&lt;/code&gt;
** &lt;code&gt;BUTTON_CLOSE&lt;/code&gt;
* hildon-input-method/hildon-im-ui.h

&lt;source lang=&quot;c&quot;&gt;
void hildon_im_ui_button_set_id(HildonIMUI *self,
                                HildonIMButton button,
                                const gchar *id);
&lt;/source&gt;

This function sets a name to a particular button.

Since every input to the HIM main UI is caught by the plug-in, it is necessary to keep the button state (active or in-active) in sync. The state of a particular button can be changed, queried and toggled with the following functions:

* hildon-input-method/hildon-im-ui.h

&lt;source lang=&quot;c&quot;&gt;
void hildon_im_ui_button_set_active(HildonIMUI *keyboard,
                                    HildonIMButton button,
                                    gboolean active);
&lt;/source&gt;

This function sets the active state of a particular button.
* hildon-input-method/hildon-im-ui.h

&lt;source lang=&quot;c&quot;&gt;
gboolean hildon_im_ui_button_get_active(HildonIMUI *keyboard,
                                        HildonIMButton button);
&lt;/source&gt;

This function returns the active state of a particular button.
* hildon-input-method/hildon-im-ui.h

&lt;source lang=&quot;c&quot;&gt;
void hildon_im_ui_button_set_toggle(HildonIMUI *keyboard,
                                    HildonIMButton button,
                                    gboolean toggle);
&lt;/source&gt;

The plug-in can set the toggle state of a particular button with this function.

Miscellaneous button manipulation functions:

* hildon-input-method/hildon-im-ui.h

&lt;source lang=&quot;c&quot;&gt;
void hildon_im_ui_button_set_menu(HildonIMUI *keyboard,
                                  HildonIMButton button,
                                  GtkWidget *menu);
&lt;/source&gt;

With this function, the plug-in can attach a menu - which is a &lt;code&gt;GtkWidget&lt;/code&gt; - to a particular button.
* hildon-input-method/hildon-im-ui.h

&lt;source lang=&quot;c&quot;&gt;
void hildon_im_ui_button_set_sensitive(HildonIMUI *keyboard,
                                       HildonIMButton button,
                                       gboolean sensitive);
&lt;/source&gt;

All the buttons defined on the HIM main UI may not be needed, or the functionality of a button may be wished to be switched off in some states. In this case, the sensitivity of a particular button can be set by calling this function.
* hildon-input-method/hildon-im-ui.h

&lt;source lang=&quot;c&quot;&gt;
void hildon_im_ui_button_set_repeat(HildonIMUI *keyboard,
                                    HildonIMButton button,
                                    gboolean repeat);
&lt;/source&gt;

This function controls whether a particular button will repeat when pressed for a long time.

== Component dependencies ==

At least the following headers shall be included in the plug-in:

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon-im-plugin.h&gt;
#include &lt;hildon-im-ui.h&gt;
&lt;/source&gt;

[http://maemo.org/packages/view/hildon-input-method-framework-dev/ hildon-input-method-framework-dev] and [http://maemo.org/packages/view/libhildon-im-ui-dev/ libhildon-im-ui-dev] packages.

== Language codes ==

These are the language codes recognized; they are numbered, the first, af_ZA, being 0. 

 af_ZA am_ET ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW
 ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE 
 az_AZ be_BY bg_BG bn_IN br_FR bs_BA ca_ES cs_CZ cy_GB da_DK 
 de_AT de_BE de_CH de_DE de_LU el_GR en_AU en_BW en_CA en_DK 
 en_GB en_HK en_IE en_IN en_NZ en_PH en_SG en_US en_ZA en_ZW 
 eo_EO es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT 
 es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY 
 es_VE et_EE eu_ES fa_IR fi_FI fo_FO fr_BE fr_CA fr_CH fr_FR 
 fr_LU ga_IE gd_GB gl_ES gv_GB he_IL hi_IN hr_HR hu_HU hy_AM 
 id_ID is_IS it_CH it_IT iw_IL ja_JP ka_GE kl_GL ko_KR kw_GB 
 lt_LT lv_LV mi_NZ mk_MK mr_IN ms_MY mt_MT nl_BE nl_NL nn_NO 
 no_NO oc_FR pl_PL pt_BR pt_PT ro_RO ru_RU ru_UA se_NO sk_SK 
 sl_SI sq_AL sr_YU sv_FI sv_SE ta_IN te_IN tg_TJ th_TH ti_ER 
 ti_ET tl_PH tr_TR tt_RU uk_UA ur_PK uz_UZ vi_VN wa_BE yi_US 
 zh_CN zh_HK zh_SG zh_TW

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/GnomeVFS File System</title>
    <id>2906</id>
    <revision>
      <id>40083</id>
      <timestamp>2010-11-12T13:16:14Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>use ambox</comment>
      <text xml:space="preserve">Maemo includes a powerful file system framework, GnomeVFS. This framework enables applications to use a vast number of different file access protocols without having to know anything about the underlying details. Some examples of the supported protocols are: local file system, HTTP, FTP and OBEX over Bluetooth.

In practice, this means that all GnomeVFS file access methods are transparently available for both developer and end user just by using the framework for file operations. The API for file handling is also much more flexible than the standard platform offerings. It features, for example, asynchronous reading and writing, MIME type support and file monitoring.

All user-file access should be done with GnomeVFS in maemo applications, because file access can be remote. In fact, many applications that come with the operating system on the Maemo compatible device do make use of GnomeVFS. Access to files not visible to the user should be done directly for performance reasons.

A good hands-on starting point is taking a look at the GnomeVFS example in maemo-examples package. Detailed API information can be found in the [http://library.gnome.org/devel/gnome-vfs-2.0/stable/ GnomeVFS API reference]

==GnomeVFS Example==

This section uses the following example:
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/support-libraries/hildon_helloworld-8.c hildon_helloworld-8.c]

In Maemo, GnomeVFS also provides some filename case insensitivity support, so that the end users do not have to care about the UNIX filename conventions, which are case-sensitive.

The GnomeVFS interface attempts to provide a POSIX-like interface, so that where with POSIX you would use &lt;code&gt;open()&lt;/code&gt;, in GnomeVFS you can use &lt;code&gt;gnome_vfs_open()&lt;/code&gt;; and instead of &lt;code&gt;write()&lt;/code&gt;, you can use &lt;code&gt;gnome_vfs_write()&lt;/code&gt;, etc. The GnomeVFS function names are sometimes a bit more verbose, but otherwise they attempt to implement the basic API. Some POSIX functions, such as &lt;code&gt;mmap()&lt;/code&gt;, are impossible to implement in the user space, but normally this is not a big problem. Also some functions fail to work over network connections and outside the local filesystem.

For a simple example of using the GnomeVFS interface functions, see below.

In order to save and load data, at least the following functions are needed:

* &lt;code&gt;gnome_vfs_init()&lt;/code&gt;: initializes the GnomeVFS library. Needs to be done once at an early stage at program startup.
* &lt;code&gt;gnome_vfs_shutdown()&lt;/code&gt;: frees up resources inside the library and closes it down.
* &lt;code&gt;gnome_vfs_open()&lt;/code&gt;: opens the given URI (explained below) and returns a file handle for that if successful.
* &lt;code&gt;gnome_vfs_get_file_info()&lt;/code&gt;: get information about a file (similar to, but with broader scope than fstat).
* &lt;code&gt;gnome_vfs_read()&lt;/code&gt;: read data from an opened file.
* &lt;code&gt;gnome_vfs_write()&lt;/code&gt;: write data into an opened file.

In order to differentiate between different protocols, GnomeVFS uses Uniform Resource 2 syntax when accessing resources. For example in &lt;code&gt;file:///tmp/somefile.txt&lt;/code&gt;, the &lt;code&gt;file://&lt;/code&gt; is the protocol to use, and the rest is the location within that protocol space for the resource or file to manipulate. Protocols can be stacked inside a single URI, and the URI also supports username and password combinations (these are best demonstrated in the GnomeVFS API documentation).

The following simple demonstration will be using local files.

A simple application will be extended in the following ways:

* Implement the &quot;Open&quot; command by using GnomeVFS with full error checking.
* The memory will be allocated and freed with &lt;code&gt;g_malloc0()&lt;/code&gt; and &lt;code&gt;g_free()&lt;/code&gt;, when loading the contents of the file that the user has selected.
* Data loaded through &quot;Open&quot; will replace the text in the &lt;code&gt;GtkLabel&lt;/code&gt; that is in the center area of the &lt;code&gt;HildonWindow&lt;/code&gt;. The label will be switched to support  [http://library.gnome.org/devel/pango/stable/PangoMarkupFormat.html Pango simple text markup], which looks a lot like simple HTML.
* Notification about loading success and failures will be communicated to the user by using a widget called &lt;code&gt;HildonBanner&lt;/code&gt;, which will float a small notification dialog (with an optional icon) in the top-right corner for a while, without blocking the application.
* N.B. Saving into a file is not implemented in this code, as it is a lab exercise (and it is simpler than opening).
* File loading failures can be simulated by attempting to load an empty file. Since empty files are not wanted, the code will turn this into an error as well. If no empty file is available, one can easily be created with the touch command (under &lt;code&gt;MyDocs&lt;/code&gt;, so that the open dialog can find it). It is also possible to attempt to load a file larger than 100 KiB, since the code limits the file size (artificially), and will refuse to load large files.
* The &lt;code&gt;goto&lt;/code&gt; statement should normally be avoided. Team coding guidelines should be checked to see, whether this is an allowed practice. Note how it is used in this example to cut down the possibility of leaked resources (and typing). Another option for this would be using variable finalizers, but not many people know how to use them, or even that they exist. They are gcc extensions into the C language, and you can find more about them by reading gcc info pages (look for variable attributes).
* Simple GnomeVFS functions are used here. They are all synchronous, which means that if loading the file takes a long time, the application will remain unresponsive during that time. For small files residing in local storage, this is a risk that is taken knowingly. Synchronous API should not be used when loading files over network due to the greater uncertainty.
* I/O in most cases will be slightly slower than using a controlled approach with POSIX I/O API (controlled meaning that one should know what to use and how). This is a price that has to be paid in order to enable easy switching to other protocols later.

{ambox|text=Since GnomeVFS is a separate library from GLib, you will have to add the flags and library options that it requires. The pkg-config package name for the library is &lt;code&gt;gnome-vfs-2.0&lt;/code&gt;.}}

&lt;source lang=&quot;c&quot;&gt;
/**
 * hildon_helloworld-8.c
 *
 * This maemo code example is licensed under a MIT-style license,
 * that can be found in the file called &quot;License&quot; in the same
 * directory as this file.
 * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.
 *
 * We add file loading support using GnomeVFS. Saving files using
 * GnomeVFS is left as an exercise. We also add a small notification
 * widget (HildonBanner).
 *
 * Look for lines with &quot;NEW&quot; or &quot;MODIFIED&quot; in them.
 */

#include &lt;stdlib.h&gt;
#include &lt;hildon/hildon-program.h&gt;
#include &lt;hildon/hildon-color-button.h&gt;
#include &lt;hildon/hildon-find-toolbar.h&gt;
#include &lt;hildon/hildon-file-chooser-dialog.h&gt;
/* A small notification window widget (NEW). */
#include &lt;hildon/hildon-banner.h&gt;
/* Pull in the GnomeVFS headers (NEW). */
#include &lt;libgnomevfs/gnome-vfs.h&gt;

/* Declare the two slant styles. */
enum {
  STYLE_SLANT_NORMAL = 0,
  STYLE_SLANT_ITALIC
};

/**
 * The application state.
 */
typedef struct {
  gboolean styleUseUnderline;
  gboolean styleSlant;

  GdkColor currentColor;

  /* Pointer to the label so that we can modify its contents when a
     file is loaded by the user (NEW). */
  GtkWidget* textLabel;

  gboolean fullScreen;

  GtkWidget* findToolbar;
  GtkWidget* mainToolbar;
  gboolean findToolbarIsVisible;
  gboolean mainToolbarIsVisible;

  HildonProgram* program;
  HildonWindow* window;
} ApplicationState;

  /*... Listing cut for brevity ...*/

/**
 * Utility function to print a GnomeVFS I/O related error message to
 * standard error (not seen by the user in graphical mode) (NEW).
 */
static void dbgFileError(GnomeVFSResult errCode, const gchar* uri) {
  g_printerr(&quot;Error while accessing '%s': %s\n&quot;, uri,
             gnome_vfs_result_to_string(errCode));
}

/**
 * MODIFIED (A LOT)
 *
 * We read in the file selected by the user if possible and set the
 * contents of the file as the new Label content.
 *
 * If reading the file fails, the label will be left unchanged.
 */
static void cbActionOpen(GtkWidget* widget, ApplicationState* app) {

  gchar* filename = NULL;
  /* We need to use URIs with GnomeVFS, so declare one here. */
  gchar* uri = NULL;

  g_assert(app != NULL);
  /* Bad things will happen if these two widgets don't exist. */
  g_assert(GTK_IS_LABEL(app-&gt;textLabel));
  g_assert(GTK_IS_WINDOW(app-&gt;window));

  g_print(&quot;cbActionOpen invoked\n&quot;);

  /* Ask the user to select a file to open. */
  filename = runFileChooser(app, GTK_FILE_CHOOSER_ACTION_OPEN);
  if (filename) {
    /* This will point to loaded data buffer. */
    gchar* buffer = NULL;
    /* Pointer to a structure describing an open GnomeVFS &quot;file&quot;. */
    GnomeVFSHandle* fileHandle = NULL;
    /* Structure to hold information about a &quot;file&quot;, initialized to
       zero. */
    GnomeVFSFileInfo fileInfo = {};
    /* Result code from the GnomeVFS operations. */
    GnomeVFSResult result;
    /* Size of the file (in bytes) that we'll read in. */
    GnomeVFSFileSize fileSize = 0;
    /* Number of bytes that were read in successfully. */
    GnomeVFSFileSize readCount = 0;

    g_print(&quot;  you chose to load file '%s'\n&quot;, filename);

    /* Convert the filename into an GnomeVFS URI. */
    uri = gnome_vfs_get_uri_from_local_path(filename);
    /* We don't need the original filename anymore. */
    g_free(filename);
    filename = NULL;
    /* Should not happen since we got a filename before. */
    g_assert(uri != NULL);
    /* Attempt to get file size first. We need to get information
       about the file and aren't interested in other than the very
       basic information, so we'll use the INFO_DEFAULT setting. */
    result = gnome_vfs_get_file_info(uri, &amp;fileInfo,
                                     GNOME_VFS_FILE_INFO_DEFAULT);
    if (result != GNOME_VFS_OK) {
      /* There was a failure. Print a debug error message and break
         out into error handling. */
      dbgFileError(result, uri);
      goto error;
    }

    /* We got the information (maybe). Let's check whether it
       contains the data that we need. */
    if (fileInfo.valid_fields &amp; GNOME_VFS_FILE_INFO_FIELDS_SIZE) {
      /* Yes, we got the file size. */
      fileSize = fileInfo.size;
    } else {
      g_printerr(&quot;Couldn't get the size of file!\n&quot;);
      goto error;
    }

    /* By now we have the file size to read in. Check for some limits
       first. */
    if (fileSize &gt; 1024*100) {
      g_printerr(&quot;Loading over 100KiB files is not supported!\n&quot;);
      goto error;
    }
    /* Refuse to load empty files. */
    if (fileSize == 0) {
      g_printerr(&quot;Refusing to load an empty file\n&quot;);
      goto error;
    }

    /* Allocate memory for the contents and fill it with zeroes.
       NOTE:
         We leave space for the terminating zero so that we can pass
         this buffer as gchar to string functions and it is
         guaranteed to be terminated, even if the file doesn't end
         with binary zero (odds of that happening are small). */
    buffer = g_malloc0(fileSize+1);
    if (buffer == NULL) {
      g_printerr(&quot;Failed to allocate %u bytes for buffer\n&quot;,
                 (guint)fileSize);
      goto error;
    }

    /* Open the file.

       Parameters:
       - A pointer to the location where to store the address of the
         new GnomeVFS file handle (created internally in open).
       - uri: What to open (needs to be GnomeVFS URI).
       - open-flags: Flags that tell what we plan to use the handle
         for. This will affect how permissions are checked by the
         Linux kernel. */

    result = gnome_vfs_open(&amp;fileHandle, uri, GNOME_VFS_OPEN_READ);
    if (result != GNOME_VFS_OK) {
      dbgFileError(result, uri);
      goto error;
    }
    /* File opened succesfully, read its contents in. */
    result = gnome_vfs_read(fileHandle, buffer, fileSize,
                            &amp;readCount);
    if (result != GNOME_VFS_OK) {
      dbgFileError(result, uri);
      goto error;
    }
    /* Verify that we got the amount of data that we requested.
       NOTE:
         With URIs it won't be an error to get less bytes than you
         requested. Getting zero bytes will however signify an
         End-of-File condition. */
    if (fileSize != readCount) {
      g_printerr(&quot;Failed to load the requested amount\n&quot;);
      /* We could also attempt to read the missing data until we have
         filled our buffer, but for simplicity, we'll flag this
         condition as an error. */
      goto error;
    }

    /* Whew, if we got this far, it means that we actually managed to
       load the file into memory. Let's set the buffer contents as
       the new label now. */
    gtk_label_set_markup(GTK_LABEL(app-&gt;textLabel), buffer);

    /* That's it! Display a message of great joy. For this we'll use
       a dialog (non-modal) designed for displaying short
       informational messages. It will linger around on the screen
       for a while and then disappear (in parallel to our program
       continuing). */
    hildon_banner_show_information(GTK_WIDGET(app-&gt;window),
      NULL, /* Use the default icon (info). */
      &quot;File loaded successfully&quot;);

    /* Jump to the resource releasing phase. */
    goto release;

  error:
    /* Display a failure message with a stock icon.
       Please see http://maemo.org/api_refs/4.0/gtk/gtk-Stock-Items.html
       for a full listing of stock items. */
    hildon_banner_show_information(GTK_WIDGET(app-&gt;window),
      GTK_STOCK_DIALOG_ERROR, /* Use the stock error icon. */
      &quot;Failed to load the file&quot;);

  release:
    /* Close and free all resources that were allocated. */
    if (fileHandle) gnome_vfs_close(fileHandle);
    if (filename) g_free(filename);
    if (uri) g_free(uri);
    if (buffer) g_free(buffer);
    /* Zero them all out to prevent stack-reuse-bugs. */
    fileHandle = NULL;
    filename = NULL;
    uri = NULL;
    buffer = NULL;

    return;
  } else {
    g_print(&quot;  you didn't choose any file to open\n&quot;);
  }
}

/**
 * MODIFIED (kind of)
 *
 * Function to save the contents of the label (although it doesn't
 * actually save the contents, on purpose). Use gtk_label_get_label
 * to get a gchar pointer into the application label contents
 * (including current markup), then use gnome_vfs_create and
 * gnome_vfs_write to create the file (left as an exercise).
 */
static void cbActionSave(GtkWidget* widget, ApplicationState* app) {
  gchar* filename = NULL;

  g_assert(app != NULL);

  g_print(&quot;cbActionSave invoked\n&quot;);

  filename = runFileChooser(app, GTK_FILE_CHOOSER_ACTION_SAVE);
  if (filename) {
    g_print(&quot;  you chose to save into '%s'\n&quot;, filename);
    /* Process saving .. */

    g_free(filename);
    filename = NULL;
  } else {
    g_print(&quot;  you didn't choose a filename to save to\n&quot;);
  }
}

  /*... Listing cut for brevity ...*/

/**
 * MODIFIED
 *
 * Add support for GnomeVFS (it needs to be initialized before use)
 * and add support for the Pango markup feature of the GtkLabel
 * widget.
 */
int main(int argc, char** argv) {

  ApplicationState aState = {};

  GtkWidget* label = NULL;
  GtkWidget* vbox = NULL;
  GtkWidget* mainToolbar = NULL;
  GtkWidget* findToolbar = NULL;

  /* Initialize the GnomeVFS (NEW). */
  if(!gnome_vfs_init()) {
    g_error(&quot;Failed to initialize GnomeVFS-libraries, exiting\n&quot;);
  }

  /* Initialize the GTK+ */
  gtk_init(&amp;argc, &amp;argv);

  /* Setup the HildonProgram, HildonWindow and application name. */
  aState.program = HILDON_PROGRAM(hildon_program_get_instance());
  g_set_application_name(&quot;Hello Hildon!&quot;);
  aState.window = HILDON_WINDOW(hildon_window_new());
  hildon_program_add_window(aState.program,
                            HILDON_WINDOW(aState.window));

  /* Create the label widget, with Pango marked up content (NEW). */
  label = gtk_label_new(&quot;&lt;b&gt;Hello&lt;/b&gt; &lt;i&gt;Hildon&lt;/i&gt; (with Hildon&quot;
                        &quot;&lt;sub&gt;search&lt;/sub&gt; &lt;u&gt;and&lt;/u&gt; GnomeVFS &quot;
                        &quot;and other tricks&lt;sup&gt;tm&lt;/sup&gt;)!&quot;);

  /* Allow lines to wrap (NEW). */
  gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);

  /* Tell the GtkLabel widget to support the Pango markup (NEW). */
  gtk_label_set_use_markup(GTK_LABEL(label), TRUE);

  /* Store the widget pointer into the application state so that the
     contents can be replaced when a file will be loaded (NEW). */
  aState.textLabel = label;

  buildMenu(&amp;aState);

  vbox = gtk_vbox_new(FALSE, 0);
  gtk_container_add(GTK_CONTAINER(aState.window), vbox);
  gtk_box_pack_end(GTK_BOX(vbox), label, TRUE, TRUE, 0);

  mainToolbar = buildToolbar(&amp;aState);
  findToolbar = buildFindToolbar(&amp;aState);

  aState.mainToolbar = mainToolbar;
  aState.findToolbar = findToolbar;

  /* Connect the termination signals. */
  g_signal_connect(G_OBJECT(aState.window), &quot;delete-event&quot;,
                   G_CALLBACK(cbEventDelete), &amp;aState);
  g_signal_connect(G_OBJECT(aState.window), &quot;destroy&quot;,
                   G_CALLBACK(cbActionTopDestroy), &amp;aState);

  /* Show all widgets that are contained by the Window. */
  gtk_widget_show_all(GTK_WIDGET(aState.window));

  /* Add the toolbars to the Hildon Window. */
  hildon_window_add_toolbar(HILDON_WINDOW(aState.window),
                            GTK_TOOLBAR(mainToolbar));
  hildon_window_add_toolbar(HILDON_WINDOW(aState.window),
                            GTK_TOOLBAR(findToolbar));

  /* Register a callback to handle key presses. */
  g_signal_connect(G_OBJECT(aState.window), &quot;key_press_event&quot;,
                   G_CALLBACK(cbKeyPressed), &amp;aState);

  g_print(&quot;main: calling gtk_main\n&quot;);
  gtk_main();
  g_print(&quot;main: returned from gtk_main and exiting with success\n&quot;);

  return EXIT_SUCCESS;
}
&lt;/source&gt;

In order to experiment with loading other content, a simple file can be created, containing Pango markup like this:
&lt;source lang=&quot;bash&quot;&gt;
echo &quot;&lt;b&gt;Hello world&lt;/b&gt;&quot; &gt; MyDocs/hello.txt
&lt;/source&gt;
and then loading &lt;code&gt;hello.txt&lt;/code&gt;.

As can be imagined, these examples have only scratched the surface of GnomeVFS that is quite a rich library, and contains a broad API and a large amount of plug-ins. Many things have been completely avoided, such as directory content iteration, the asynchronous interface, callback signaling on directory content changes etc. Please see [http://library.gnome.org/devel/gnome-vfs-2.0/stable/ GnomeVFS API reference] for more information. The API also contains some mini tutorials on various GnomeVFS topics, so it is well worth the time spent reading. It will also show that GnomeVFS has been overloaded with functions, which are not even file operation related (such as ZeroConf and creating TCP/IP connections etc.).

GTK+ does not have to be used in order to use GnomeVFS. One such example program is Midnight Commander (a Norton Commander clone, but better), which is a menu-based &quot;text&quot; mode program. GnomeVFS uses GLib though, so if using GnomeVFS, one should think about using GLib as well, as it will be loaded anyway.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Using Address Book API</title>
    <id>2373</id>
    <revision>
      <id>50504</id>
      <timestamp>2012-10-27T07:40:48Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 50501 by [[Special:Contributions/94.23.1.28|94.23.1.28]] ([[User talk:94.23.1.28|Talk]]) vandalism</comment>
      <text xml:space="preserve">The [[Open development/Maemo roadmap/Fremantle|Maemo 5]] Address Book is a fully-featured address book software stack. This includes the Contacts application (process name [http://maemo.org/packages/view/osso-addressbook/ osso-addressbook]), a support library which implements most of its functionality ([http://maemo.org/packages/view/libosso-abook/ libosso-abook]), and contact storage via Evolution Data Server ([http://maemo.org/packages/view/evolution-data-server-addressbook/ EDS]). As with any address book program, the Contacts application allows you to add, edit and delete contacts. But beyond basic contacts, the Address Book supports browsing and importing SIM card contacts and tightly integrates VoIP and IM contacts provided by the Telepathy communications framework.

This allows Contacts and your application to automatically add IM contacts to your account when adding an IM username to a contact or add a dialog to initiate phone calls, VoIP calls, text messages, emails, or chats with a single tap, and much more.

This tutorial is focused on using Address Book functionality within third-party applications. It does not cover all classes nor does it cover any classes exhaustively. For information on the classes, see the [http://maemo.org/api_refs/5.0/5.0-final/libosso-abook/ reference documentation].

== Components ==

The main components in the Maemo Address Book stack are the Contacts application (osso-addressbook), support library (libosso-abook), and Evolution Data Server.

[[Image:abook-components.png|frame|center|alt=Diagram of address book components|Address book components]]

=== The Contacts application (osso-addressbook) ===

As you might expect, the Contacts application provides a convenient user interface for manipulating the contacts in the Maemo 5 system. And by design, nearly all the functionality within Contacts (including widgets) is actually located within libosso-abook, so that it can be reused by other applications (such as Phone and Conversations, or your own).

Since this document is intended to be a quick introduction to libosso-abook for developers who would like to include address book functionality in their application, we will not cover Contacts in detail.

=== libosso-abook ===

The libosso-abook library is the highest-level entry point into the address book contents and implements most of the functionality exposed by osso-addressbook. Its main tasks are:

# Aggregate &quot;plain&quot; contacts with any associated chat (&quot;roster&quot;) contacts
# Determine which attribute values to present for aggregated contacts in case of conflict
# Handle adding, removing, and editing contacts stored in the different Evolution Data Server back-ends
# Provide a number of high-level widgets for adding contacts, presenting contact avatars and online presence, and more
# Support intelligently merging contacts and their fields

=== Evolution Data Server ===

Evolution Data Server (EDS) is a software stack that performs most basic addressbook functionality (including storing contacts, calendar events, and so on). In Maemo 5, EDS is used to store contacts which are presented to applications via libosso-abook.

EDS supports multiple back-ends for storing and retrieving contacts from multiple sources. Normally, EDS uses the &quot;file&quot; backend, which simply stores contacts as vCards in the local database. New in Maemo 5, EDS adds the SIM and Telepathy backends for accessing contacts stored on a SIM card and on chat rosters.

The back-ends all provide slightly different functionality, but libosso-abook abstracts them to appear as a single, coherent contact store.

==== libebook ====

The libebook library provides access to the contacts stored in Evolution Data Server. The higher-level libosso-abook library uses libebook extensively internally, and you will not likely need to use libebook directly. For more advanced contact manipulation, libebook's EVCard class may be useful (since the main libosso-abook contact class, &lt;code&gt;OssoABookContact&lt;/code&gt; is a subclass of it).

N.B. Developers are discouraged from using the &lt;code&gt;EBook&lt;/code&gt; and &lt;code&gt;EBookView&lt;/code&gt; classes of libebook because they do not provide libosso-abook's features of contact aggregation, presence abstraction, and so on.

=== Contacts Home Applet (osso-abook-home-applet) ===

In order to minimize the number of taps required to contact your favorite contacts, Contacts provides a way to add shortcuts to specific contacts on your home views. The Contacts Home Applet is the process that draws these shortcuts on the home view.

== Non-Widget Classes ==

=== OssoABookAvatar ===

Contacts may have an associated image, called their &quot;avatar&quot;. An avatar may be retrieved from a corresponding contact on an IM account or from a user-set local image.

Master contacts select their avatar image in order of priority:

# Any user-set image
# The most-recently-changed avatar amongst all attached roster contacts (i.e., on IM servers)

&lt;code&gt;OssoABookAvatar&lt;/code&gt; is implemented by &lt;code&gt;OssoABookContact&lt;/code&gt;, so &lt;code&gt;OssoABookAvatar&lt;/code&gt; functions are used directly upon &lt;code&gt;OssoABookContacts&lt;/code&gt;.

==== Basic Example ====

The most important part of a contact's avatar is the image it contains, so this example focuses on that:

&lt;source lang=&quot;c&quot;&gt;
#include &lt;glib.h&gt;
#include &lt;libosso-abook/osso-abook.h&gt;

static void
avatar_save_image_to_file (OssoABookContact *contact,
                           const char       *filename)
{
        OssoABookAvatar *avatar = OSSO_ABOOK_AVATAR (contact);
        /* To get the image in a different size, use osso_abook_avatar_get_image_scaled() (this may affect image quality) */
        GdkPixbuf *pixbuf = osso_abook_avatar_get_image (avatar);
        
        if (pixbuf) {
                /* In a real application, you would do more careful error checking here */
                if (gdk_pixbuf_save (pixbuf, filename, &quot;png&quot;, NULL, NULL)) {
                        g_warning (&quot;failed to save the avatar image '%s'&quot;, filename);
                }
        } else {
                g_warning (&quot;no avatar image to save&quot;);
        }
}
&lt;/source&gt;

See the Additional API section for tips on caching avatar images.

==== Additional API ====

Because images can take a relatively long time to process and are inconvenient to compare, it's often easiest to compare simple, unique values to determine image equality. This is especially useful when caching avatar images. In this snippet, &lt;code&gt;image_token&lt;/code&gt; is a hashable value:
&lt;source lang=&quot;c&quot;&gt;
gpointer image_token = osso_abook_avatar_get_image_token (OSSO_ABOOK_AVATAR (contact));
&lt;/source&gt;

==== Notable Signals ====

* &lt;code&gt;notify::avatar-image&lt;/code&gt;

==== Complete API Documentation ====

Full details can be found in the API [http://maemo.org/api_refs/5.0/5.0-final/libosso-abook/libosso-abook-osso-abook-avatar.html reference documentation for OssoABookAvatar].

=== OssoABookCaps ===

&lt;code&gt;OssoABookContacts&lt;/code&gt; may possess a number of different capabilities, so the &lt;code&gt;OssoABookCaps&lt;/code&gt; interface (which &lt;code&gt;OssoABookContacts&lt;/code&gt; implements) provides a simple means to detect these capabilities.

==== Basic Example ====

The core of &lt;code&gt;OssoABookCaps&lt;/code&gt; is the &lt;code&gt;OssoABookCapsFlags&lt;/code&gt; enumeration, accessible by &lt;code&gt;osso_abook_caps_get_capabilities()&lt;/code&gt;. Its values are orthogonal and may be bitwise-ORed or -ANDed together for more detailed capabilities checks:

&lt;source lang=&quot;c&quot;&gt;
static void
contact_print_caps_details (OssoABookContact *contact)
{
        OssoABookCaps *caps = OSSO_ABOOK_CAPS (contact);
        OssoABookCapsFlags caps_flags = osso_abook_caps_get_capabilities (caps);
        
        g_print (&quot;   Can receive email?: %s\n&quot;
                 &quot;   Can chat?: %s\n&quot;
                 &quot;   Can receive phone calls?: %s\n&quot;
                 &quot;   Can receive multimedia voice calls?: %s\n&quot;
                 &quot;   Can receive multimedia video calls?: %s\n&quot;
                 &quot;   Can receive calls of some type?: %s\n&quot;
                 &quot;\n&quot;,
                 caps_flags &amp; OSSO_ABOOK_CAPS_EMAIL ? &quot;yes&quot; : &quot;no&quot;,
                 caps_flags &amp; OSSO_ABOOK_CAPS_CHAT  ? &quot;yes&quot; : &quot;no&quot;,
                 caps_flags &amp; OSSO_ABOOK_CAPS_PHONE ? &quot;yes&quot; : &quot;no&quot;,
                 caps_flags &amp; OSSO_ABOOK_CAPS_VOICE ? &quot;yes&quot; : &quot;no&quot;,
                 caps_flags &amp; OSSO_ABOOK_CAPS_VIDEO ? &quot;yes&quot; : &quot;no&quot;,
                 caps_flags &amp; (OSSO_ABOOK_CAPS_PHONE | OSSO_ABOOK_CAPS_VOICE | OSSO_ABOOK_CAPS_VIDEO) ? &quot;yes&quot; : &quot;no&quot;);
}
&lt;/source&gt;

==== Additional API ====

&lt;code&gt;OssoABookCaps&lt;/code&gt; also contains a convenience function for getting the capabilities of our own accounts (of type &lt;code&gt;McAccount*&lt;/code&gt;).

&lt;source lang=&quot;c&quot;&gt;
OssoABookCapsFlags caps_flags = osso_abook_caps_from_account (account);
&lt;/source&gt;

==== Notable Signals ====

* &lt;code&gt;notify::capabilities&lt;/code&gt;

==== Complete API Documentation ====

Full details can be found in the API [http://maemo.org/api_refs/5.0/beta/libosso-abook/libosso-abook-osso-abook-caps.html reference documentation for OssoABookCaps].

=== OssoABookContact ===

The central class in libosso-abook is &lt;code&gt;OssoABookContact&lt;/code&gt;, which is used in a few different ways:

* as a master contact, which acts as an authoritative source of contact attributes for itself and any number of roster contacts. This use is further broken into:
** a persistent master contact, which is stored locally and may have zero or more attached roster contacts; OR:
** a temporary master contact, which is not stored at all and serves as a &quot;placeholder&quot; master for roster contacts which exist on the VoIP/IM server but whose username is not an attribute of a persistent master contact
* as a roster contact, which corresponds to exactly one (VoIP/IM username, VoIP/IM account) pair. All roster contacts are attached to one or more master contacts, and their details are cached locally but not stored in persistent master contact database

In most cases, you will only be interested in master contacts (in general) because they aggregate all of the attributes of their own and their roster contacts. Every master contact is the authoritative source of a person's displayable name, avatar, presence, status message, etc. If a master contact and its roster contact(s) have multiple values for a single-instance attribute (e.g., avatar), the master contact will automatically pick an authoritative value.

So if you just wish to display all of your contacts' names and IM availability, you would simply use the appropriate &lt;code&gt;OssoABookContact&lt;/code&gt; functions on the list of master contacts and the master contacts will automatically report their &quot;most-online&quot; presence amongst their attached roster contacts (if any).

In addition to its own functionality, &lt;code&gt;OssoABookContact&lt;/code&gt; implements the &lt;code&gt;OssoABookAvatar&lt;/code&gt;, &lt;code&gt;OssoABookCaps&lt;/code&gt;, and &lt;code&gt;OssoABookPresence&lt;/code&gt; interfaces. So &lt;code&gt;OssoABookContacts&lt;/code&gt; can be used in their functions and will emit their signals. See their documentation for more details.

&lt;code&gt;OssoABookContact&lt;/code&gt; inherits from &lt;code&gt;EContact&lt;/code&gt; (which itself inherits from &lt;code&gt;EVCard&lt;/code&gt;). At its core, &lt;code&gt;OssoABookContact&lt;/code&gt; is based around the vCard format for storing contact attributes. We recommend against manipulating and accessing contacts at the vCard level, since it's more complicated and error-prone than using the &lt;code&gt;OssoABookContact&lt;/code&gt; functionality. Note that the Maemo Address Book adds some vCard attributes (e.g., &lt;code&gt;gender/X-GENDER&lt;/code&gt;, &lt;code&gt;Skype username/X-SKYPE&lt;/code&gt;) that are not accessible at the EContact level, since they are not defined in &lt;code&gt;EContactField&lt;/code&gt;. So we recommend using the &lt;code&gt;EVCard&lt;/code&gt; functions over similar &lt;code&gt;EContact&lt;/code&gt; functions whenever possible. See the &lt;code&gt;EContact&lt;/code&gt; and &lt;code&gt;EVCard&lt;/code&gt; documentation for more details on their API.

As with any &lt;code&gt;EContact&lt;/code&gt;, changes to an &lt;code&gt;OssoABookContact&lt;/code&gt; are not permanently stored until they are explicitly committed. See the example and explanation of &lt;code&gt;osso_abook_contact_commit()&lt;/code&gt; below.

==== Basic Examples ====

===== Printing out basic contact details =====

This example is meant to show off a few functions that you may want to use to get specific, basic Contact details. If you would like to get its avatar, see the documentation on &lt;code&gt;OssoABookAvatar&lt;/code&gt;; for its IM presence or capabilities, see &lt;code&gt;OssoABookPresence&lt;/code&gt; and &lt;code&gt;OssoABookCaps&lt;/code&gt;.

Also note that, for most cases of displaying an avatar, presence icon, etc., libosso-abook provides widgets. See &lt;code&gt;OssoABookAvatarImage&lt;/code&gt;, &lt;code&gt;OssoABookPresenceIcon&lt;/code&gt;, and &lt;code&gt;OssoABookTouchContactStarter&lt;/code&gt;.

&lt;source lang=&quot;c&quot;&gt;
#include &lt;glib.h&gt;
#include &lt;libosso-abook/osso-abook.h&gt;

static void
contact_print_details (OssoABookContact *contact)
{
        g_print (&quot;   UID: %s\n&quot;
                 &quot;   Name: %s\n&quot;
                 &quot;   Is a roster contact?: %s\n&quot;
                 &quot;   Is a master contact?: %s\n&quot;
                 &quot;   Has roster contacts?: %s\n&quot;
                 &quot;   Is a temporary (master) contact?: %s\n&quot;
                 &quot;   Is a SIM contact?: %s\n&quot;
                 &quot;\n&quot;,
                 osso_abook_contact_get_uid (contact),
                 osso_abook_contact_get_display_name (contact),
                 osso_abook_contact_is_roster_contact (contact)   ? &quot;yes&quot; : &quot;no&quot;,
                 osso_abook_contact_is_roster_contact (contact)   ? &quot;no&quot;  : &quot;yes&quot;,
                 osso_abook_contact_has_roster_contacts (contact) ? &quot;yes&quot; : &quot;no&quot;,
                 osso_abook_contact_is_temporary (contact)        ? &quot;yes&quot; : &quot;no&quot;,
                 osso_abook_contact_is_sim_contact (contact)      ? &quot;yes&quot; : &quot;no&quot;);
}
&lt;/source&gt;

==== Additional API ====

There are many ways to use an &lt;code&gt;OssoABookContact&lt;/code&gt;, and a significant portion of that lay in its parent classes and implemented interfaces (&lt;code&gt;OssoABookAvatar&lt;/code&gt;, &lt;code&gt;OssoABookCaps&lt;/code&gt;, and &lt;code&gt;OssoABookPresence&lt;/code&gt;). See the appropriate documentation for more details.

Here are some highlights of additional API for &lt;code&gt;OssoABookContact&lt;/code&gt;.

===== General Functions =====

Sometimes it can be handy to get a full listing of a contact's contents. In that case, you may wish to print out the low-level vCard representation of the contact. Note that this will not include the contents of any roster contacts, in the case of a master contact. Set the last argument to &lt;code&gt;TRUE&lt;/code&gt; if you wish to include the contact's avatar data (this can be very long).

&lt;source lang=&quot;c&quot;&gt;
osso_abook_contact_to_string (contact, EVC_FORMAT_VCARD_30, FALSE);
&lt;/source&gt;

In case you need to sort some contacts, &lt;code&gt;osso_abook_contact_collate()&lt;/code&gt; is a &lt;code&gt;strcmp()&lt;/code&gt;-like function that does just that. So, to sort a &lt;code&gt;GList&lt;/code&gt; of contacts:

&lt;source lang=&quot;c&quot;&gt;
/* To sort by presence, use OSSO_ABOOK_CONTACT_ORDER_PRESENCE instead */
g_list_sort_with_data (contacts, osso_abook_contact_collate, OSSO_ABOOK_CONTACT_ORDER_NAME);
&lt;/source&gt;

===== Roster Contact List Handling =====

In case you need to access a master contact's roster contacts, you can do so like this:

&lt;source lang=&quot;c&quot;&gt;
#include &lt;libosso-abook/osso-abook.h&gt;

/* Ensure that we're getting the roster contacts for a master contact */
if (!osso_abook_contact_is_roster_contact (contact)) {
        GList *contacts;

        contacts = osso_abook_contact_get_roster_contacts (contact);
        
        /* Do something with the contacts without altering the list */
        /*
        ...
        */
        
        /* Don't forget to free the list */
        g_list_free (contacts);
}
&lt;/source&gt;

===== Roster Contacts =====

There are a number of useful functions for accessing roster contact details. This example shows off the basic ones:

&lt;source lang=&quot;c&quot;&gt;
#include &lt;glib.h&gt;
#include &lt;libosso-abook/osso-abook.h&gt;

static void
roster_contact_print_details (OssoABookContact *contact)
{
        g_print (&quot;      UID: %s\n&quot;
                 &quot;      Name: %s\n&quot;
                 &quot;      McAccount: %p\n&quot;
                 &quot;      McProfile: %p\n&quot;
                 &quot;      vCard field: %s\n&quot;
                 &quot;      Bound name: %s\n&quot;
                 &quot;      Has an invalid username: %s\n&quot;
                 &quot;\n&quot;,
                 osso_abook_contact_get_uid (contact),
                 osso_abook_contact_get_display_name (contact),
                 osso_abook_contact_get_account (contact),
                 osso_abook_contact_get_profile (contact),
                 osso_abook_contact_get_vcard_field (contact),
                 osso_abook_contact_get_bound_name (contact),
                 osso_abook_contact_has_invalid_username (contact) ?  &quot;yes&quot; : &quot;no&quot;);                    
}
&lt;/source&gt;

===== Attribute Convenience Functions =====

If you need a hashable key (to temporarily use) for contacts, use:

&lt;source lang=&quot;c&quot;&gt;
const char *key = osso_abook_contact_get_uid (contact);
&lt;/source&gt;

However, if you need a persistent hashable key (such as for an on-disk cache, database, etc.), use the following function:

&lt;source lang=&quot;c&quot;&gt;
const char *key = osso_abook_contact_get_persistent_uid (contact);

if (!key) {
        g_print (&quot;This contact isn't persistent!&quot;);
}
&lt;/source&gt;

Sometimes it can be useful to add vCard attributes to a contact for custom applications. Say you have a networked game called Foo Bar Tetris, and you want to associate someone's username on the network with their contact:

&lt;source lang=&quot;c&quot;&gt;
#include &lt;glib.h&gt;
#include &lt;libosso-abook/osso-abook.h&gt;

/* By convention, any arbitrary vCard files not in the specification should begin with &quot;X-&quot; */
#define VCARD_FIELD_USERNAME &quot;X-FOO-BAR-TETRIS-USERNAME&quot;

/* Pass in NULL for username to simply remove the attribute */
static void
contact_set_game_username (OssoABookContact *contact,
                           const char       *username)
{
        char *current_username;
        
        /* Cast contact to EContact since this function takes an EContact argument */
        current_username = osso_abook_contact_get_value (E_CONTACT (contact), VCARD_FIELD_USERNAME);

        g_print (&quot;current username: %s&quot;, current_username);

        /* Set the new value; if there already were value(s), they will be removed before adding this new one */
        osso_abook_contact_set_value (E_CONTACT (contact), VCARD_FIELD_USERNAME, username);
        
        g_free (current_username);
}
&lt;/source&gt;

==== Notable Signals ====

* &lt;code&gt;reset&lt;/code&gt;
* &lt;code&gt;contact-attached&lt;/code&gt;
* &lt;code&gt;contact-detached&lt;/code&gt;

==== Complete API Documentation ====

Full details can be found in the API [http://maemo.org/api_refs/5.0/5.0-final/libosso-abook/OssoABookContact.html reference documentation for OssoABookContact].

=== OssoABookPresence ===

A contact's &quot;presence&quot; is comprised of a few elements, including:

;status
: a well-known string describing the contact's availability. In Maemo 5, this string is always one of {&quot;available&quot;, &quot;away&quot;, &quot;dnd&quot; (do not disturb), &quot;offline&quot;, and &quot;unknown&quot;}. The &quot;type&quot; (see below) is the preferred element for determining a contact's availability. 
;status message
: the string set by your contact (e.g., &quot;I'm running outside&quot;)
;type
: an integer representing the contact's availability. This is more fine-grained than &quot;status&quot; (see above) and the preferred way to determine a contact's availability

An &lt;code&gt;OssoABookContact&lt;/code&gt; master contact has the aggregated presence of all its roster contact(s). In the case of status, the master contact will have the &quot;most-online&quot; status amongst its roster contacts. For example, given a master contact with roster contacts having statuses &quot;away&quot; and &quot;offline&quot;, the master contact's status will be &quot;away&quot;.

&lt;code&gt;OssoABookPresence&lt;/code&gt; is implemented by &lt;code&gt;OssoABookContact&lt;/code&gt;, so &lt;code&gt;OssoABookPresence&lt;/code&gt; functions are used directly upon &lt;code&gt;OssoABookContacts&lt;/code&gt;.

==== Basic Example ====

This example shows off some of the more useful basic functions in &lt;code&gt;OssoABookPresence&lt;/code&gt;. Note that you will always be using &lt;code&gt;OssoABookPresence&lt;/code&gt; functions on &lt;code&gt;OssoABookContacts&lt;/code&gt;, since they're the only class that implements the interface.

&lt;source lang=&quot;c&quot;&gt;
#include &lt;glib.h&gt;
#include &lt;telepathy-glib/connection.h&gt;
#include &lt;libosso-abook/osso-abook.h&gt;

static void
self_account_print_details (McAccount *account)
{
        const char *current_status;
        const char *current_message;
        const char *requested_status;
        const char *requested_message;

        mc_account_get_current_presence (account, NULL, &amp;current_status, &amp;current_message);
        mc_account_get_requested_presence (account, NULL, &amp;requested_status, &amp;requested_message);

        g_print (&quot;   Normalized name (unique ID): %s\n&quot;
                 &quot;   Display name: %s\n&quot;
                 &quot;   Has been online?: %s\n&quot;
                 &quot;   Current presence:\n&quot;
                 &quot;      status:  %s\n&quot;
                 &quot;      message: %s\n&quot;
                 &quot;   Requested presence:\n&quot;
                 &quot;      status:  %s\n&quot;
                 &quot;      message: %s\n&quot;
                 &quot;\n&quot;,
                 account-&gt;name,
                 mc_account_get_display_name (account),
                 mc_account_has_been_online (account) ? &quot;yes&quot; : &quot;no&quot;,
                 current_status,
                 current_message,
                 requested_status,
                 requested_message);
}

static void
contact_print_presence_details (OssoABookContact *contact)
{
        OssoABookPresence *presence = OSSO_ABOOK_PRESENCE (contact);
        TpConnectionPresenceType type;

        type = osso_abook_presence_get_presence_type (presence);

        g_print (&quot;   Contact name: %s\n&quot;
                 &quot;   Status type: %d\n&quot;
                 &quot;   Is online?: %s\n&quot;
                 &quot;   Status: %s\n&quot;
                 &quot;   Display Status: %s\n&quot;
                 &quot;   Status Message: %s\n&quot;
                 &quot;   Location: %s\n&quot;
                 &quot;   Icon name: %s\n&quot;
                 &quot;   Presence Is Invalid?: %s\n&quot;
                 &quot;   Blocked state:    %s\n&quot;
                 &quot;   Published state:  %s\n&quot;
                 &quot;   Subscribed state: %s\n&quot;
                 &quot;\n&quot;,
                 osso_abook_contact_get_display_name (contact),
                 type,
                 (tp_connection_presence_type_cmp_availability (type, TP_CONNECTION_PRESENCE_TYPE_HIDDEN) &gt; 0) ? &quot;yes&quot; : &quot;no&quot;,
                 osso_abook_presence_get_presence_status (presence),
                 osso_abook_presence_get_display_status (presence),
                 osso_abook_presence_get_presence_status_message (presence),
                 osso_abook_presence_get_location_string (presence),
                 osso_abook_presence_get_icon_name (presence),
                 osso_abook_presence_is_invalid (presence) ? &quot;yes&quot; : &quot;no&quot;,
                 osso_abook_presence_state_get_nick (osso_abook_presence_get_blocked (presence)),
                 osso_abook_presence_state_get_nick (osso_abook_presence_get_published (presence)),
                 osso_abook_presence_state_get_nick (osso_abook_presence_get_subscribed (presence)));
}
&lt;/source&gt;

==== Additional API ====

The example above shows how to compare the basic &lt;code&gt;TpConnectionPresenceType&lt;/code&gt; return value of &lt;code&gt;osso_abook_presence_get_presence_type()&lt;/code&gt;. At a higher level, if you want to compare the relative availability of two &lt;code&gt;OssoABookPresences&lt;/code&gt; (e.g., &lt;code&gt;OssoABookContacts&lt;/code&gt;), you can use the convenience function &lt;code&gt;osso_abook_presence_compare()&lt;/code&gt;. It works like most &lt;code&gt;strcmp()&lt;/code&gt;-like functions, except that it returns a value &lt; 0 is the first presence is more online than the other, and vice versa.

&lt;source lang=&quot;c&quot;&gt;
/* Sort the contacts in order of decreasing availability */
contacts = g_list_sort (contacts, (GCompareFunc) osso_abook_presence_compare);
&lt;/source&gt;

==== Notable Signals ====

* &lt;code&gt;notify::presence-location-string&lt;/code&gt;
* &lt;code&gt;notify::presence-status&lt;/code&gt;
* &lt;code&gt;notify::presence-status-message&lt;/code&gt;
* &lt;code&gt;notify::presence-type&lt;/code&gt;

==== Complete API Documentation ====

Full details can be found in the API [http://maemo.org/api_refs/5.0/beta/libosso-abook/libosso-abook-osso-abook-presence.html reference documentation for OssoABookPresence].

== Widget Classes ==

=== OssoABookContactChooser ===

&lt;code&gt;OssoABookContactChooser&lt;/code&gt; is a widget that allows you to present a selectable list of contacts to the user. The contact chooser is relatively flexible so that it
can be used in many different situations.  

==== Basic Example ====

The following is a simple example of the use of &lt;code&gt;OssoABookContactChooser&lt;/code&gt;:

&lt;source lang=&quot;c&quot;&gt;
static void
test_contact_chooser (void)
{
        GtkWidget *chooser;
        GList *selection;

        chooser = osso_abook_contact_chooser_new (NULL, &quot;Choose a contact&quot;);

        /* uncomment this to allow user to select more than a single contact
        osso_abook_contact_chooser_set_minimum_selection
                (OSSO_ABOOK_CONTACT_CHOOSER (chooser), 2);
        osso_abook_contact_chooser_set_maximum_selection
                (OSSO_ABOOK_CONTACT_CHOOSER (chooser), G_MAXINT);
        */

        gtk_dialog_run (GTK_DIALOG (chooser));
        gtk_widget_hide (chooser);

        /* print the names of the selected contact to the command line */
        selection = osso_abook_contact_chooser_get_selection
                (OSSO_ABOOK_CONTACT_CHOOSER (chooser));

        if (selection) {
                GList *l;

                g_printf (&quot;Selected Contacts:\n&quot;);

                for (l = selection; l; l = l-&gt;next) {
                        g_printf (&quot;%s\n&quot;, osso_abook_contact_get_display_name(l-&gt;data));
                }
        } else {
                g_printf (&quot;Nothing selected&quot;);
        }

        g_list_free (selection);

        gtk_widget_destroy (chooser);
}
&lt;/source&gt;

==== Additional API ====

The contacts shown in the list can be customized in several ways.

&lt;code&gt;osso_abook_contact_chooser_set_capabilities()&lt;/code&gt; allows you to limit the contacts shown in the list to only those that have certain capabilities. For example, to
show only those contacts that have an associated email address:

&lt;source lang=&quot;c&quot;&gt;
osso_abook_contact_chooser_set_capabilities (chooser, OSSO_ABOOK_CAPS_EMAIL);
&lt;/source&gt;

You can show only those contacts whose presence status indicates that they are
online, which may be useful for applications that want to interact with another
contact over a messaging protocol:

&lt;source lang=&quot;c&quot;&gt;
osso_abook_contact_chooser_set_hide_offline_contacts (chooser, TRUE);
&lt;/source&gt;

If there are specific contacts that you wish to exclude from the chooser, you
can specify them explicitly.  For example, consider an email application: when
choosing recipients for a message, it might be useful to exclude the contacts
that are already present in the &quot;To:&quot; field.

&lt;source lang=&quot;c&quot;&gt;
OssoABookContact *john_doe; /* reference to a contact from the addressbook */

GList *contacts = NULL;
contacts = g_list_prepend (contacts, john_doe);
osso_abook_contact_chooser_set_excluded_contacts (chooser, contacts);
&lt;/source&gt;

If an application needs even more control,
&lt;code&gt;osso_abook_contact_chooser_set_visible_func()&lt;/code&gt; provides a way for the application to supply a predicate function that will determine whether the contact should be
shown in the chooser.

&lt;source lang=&quot;c&quot;&gt;
gboolean custom_visible_func(OssoABookContactChooser *chooser,
                             OssoABookContact *contact,
                             gpointer user_data)
{
        const char *needle = (const char*)user_data;
        const char *name = osso_abook_contact_get_display_name (contact);

        if (strstr (name, needle) != NULL) {
                return TRUE;
        return FALSE;
}

...

/* only show contacts that contain the string 'foo' in their name */
osso_abook_contact_chooser_set_visible_func (chooser, custom_visible_func,
                                             &quot;foo&quot;, NULL);
&lt;/source&gt;

In addition to the ability to customize the contacts that are shown in the
chooser, the appearance and behavior can also be customized.  The chooser can
operate in either single-selection or multi-selection mode, it allows an
application to specify the ordering of the contacts in the list, and provides
functions to programmatically select and deselect items from the list.

==== Complete API Documentation ====

Full details can be found in the API [http://maemo.org/api_refs/5.0/beta/libosso-abook/OssoABookContactChooser.html reference documentation for OssoABookContactChooser].

=== OssoABookTreeView ===

Although &lt;code&gt;OssoABookTreeView&lt;/code&gt;'s name might imply that it inherits from &lt;code&gt;GtkTreeView&lt;/code&gt;, it is actually an ancestor of &lt;code&gt;GtkVBox&lt;/code&gt; that contains a &lt;code&gt;GtkTreeView&lt;/code&gt; inside of a &lt;code&gt;HildonPannableArea&lt;/code&gt;. It provides a convenient way to display a list of contacts and sets up the &lt;code&gt;GtkTreeView&lt;/code&gt; columns automatically. It can show the contacts' name, Telephone number, presence status, and avatar image. These details can be
selectively enabled or disabled according to an application's requirements.

It is unlikely that an application will need or want to instantiate an
&lt;code&gt;OssoABookTreeView&lt;/code&gt; object directly. Most of the time, applications will deal
with &lt;code&gt;OssoABookContactView&lt;/code&gt; objects, which inherits from this class and does most of the setup work for you.

==== Additional API ====

&lt;code&gt;OssoABookTreeView&lt;/code&gt; is an aggregate widget, but it provides direct access to the underlying widgets as well (e.g. &lt;code&gt;osso_abook_tree_view_get_tree_view()&lt;/code&gt;,
&lt;code&gt;osso_abook_tree_view_get_pannable_area()&lt;/code&gt;.

An application can filter the list of contacts that gets displayed in the tree
view by using &lt;code&gt;osso_abook_tree_view_set_filter_model()&lt;/code&gt;.  The following example shows how to display only those contacts whose names contain a certain string:

&lt;source lang=&quot;c&quot;&gt;
OssoABookTreeView *view;
OssoABookListStore *base_model;
OssoABookFilterModel *filter_model;

base_model = osso_abook_contact_model_get_default ();

filter_model = osso_abook_filter_model_new (base_model);

/* only display contacts whose names contain the string &quot;foo&quot; */
osso_abook_filter_model_set_text (filter_model, &quot;foo&quot;);

osso_abook_tree_view_set_base_model (view, base_model);
osso_abook_tree_view_set_filter_model (view, filter_model);
&lt;/source&gt;

In addition, if you only want to display those contacts associated with a particular VoIP or IM account, use the function
&lt;code&gt;osso_abook_tree_view_set_aggregation_account()&lt;/code&gt;.  In addition to limiting the contacts to only those specified by those accounts, it will also display the
presence status and avatar image for that particular account regardless of the
contact's status on other VoIP or IM accounts.

The details shown in the tree view can be controlled with the following
properties:
* &lt;code&gt;show-contact-avatar&lt;/code&gt;
* &lt;code&gt;show-contact-name&lt;/code&gt;
* &lt;code&gt;show-contact-presence&lt;/code&gt;
* &lt;code&gt;show-contact-telephone&lt;/code&gt;

==== Complete API Documentation ====

Full details can be found in the API [http://maemo.org/api_refs/5.0/beta/libosso-abook/OssoABookTreeView.html reference documentation for OssoABookTreeView].

=== OssoABookContactView ===

&lt;code&gt;OssoABookContactView&lt;/code&gt; provides a convenient widget for displaying a list of
contacts in a list. It builds upon &lt;code&gt;OssoABookTreeView&lt;/code&gt; and adds a bit of
convenience API.

==== Basic Example ====

The following example shows how to display all contacts from the Address Book in
a list.

&lt;source lang=&quot;c&quot;&gt;
#include &lt;libosso-abook/osso-abook.h&gt;

int main (int argc, char** argv)
{
        osso_context_t *osso_cxt;
        OssoABookContactModel *default_model;
        GtkWidget *view, *window;

        osso_cxt = osso_initialize (argv[0], &quot;1.0&quot;, FALSE, NULL);
        osso_abook_init (&amp;argc, &amp;argv, osso_cxt);

        window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

        default_model = osso_abook_contact_model_get_default ();
        view = osso_abook_contact_view_new_basic (HILDON_UI_MODE_NORMAL,
                        default_model);

        gtk_container_add (GTK_CONTAINER (window), view);

        gtk_widget_show (view);
        gtk_widget_show (window);
        gtk_main ();
}
&lt;/source&gt;

==== Additional API ====

&lt;code&gt;OssoABookContactView&lt;/code&gt; has some additional convenience API that allows you to get the contact (or properties of the contact) that currently has input focus:
* &lt;code&gt;osso_abook_contact_view_get_focus()&lt;/code&gt;
* &lt;code&gt;osso_abook_contact_view_get_focus_avatar()&lt;/code&gt;
* &lt;code&gt;osso_abook_contact_view_get_focus_presence()&lt;/code&gt;
* &lt;code&gt;osso_abook_contact_view_get_focus_caps()&lt;/code&gt;

The Contact view can support both single- and multiple-selection modes.
&lt;code&gt;osso_abook_contact_view_set_minimum_selection()&lt;/code&gt; and
&lt;code&gt;osso_abook_contact_view_set_maximum_selection()&lt;/code&gt; allow fine-grained control over how contacts can be selected.

==== Complete API Documentation ====

Full details can be found in the API [http://maemo.org/api_refs/5.0/beta/libosso-abook/OssoABookContactView.html reference documentation for OssoABookContactView].

=== OssoABookTouchContactStarter ===

&lt;code&gt;OssoABookTouchContactStarter&lt;/code&gt; is a widget that displays the information for a contact and can be used to initiate communication with a contact (email, IM,
VoIP, etc).

==== Basic Example ====

The following is a simple example that shows how to use
&lt;code&gt;OssoABookTouchContactStarter&lt;/code&gt; to display the details of a particular contact.

&lt;source lang=&quot;c&quot;&gt;
#include &lt;libosso-abook/osso-abook.h&gt;

int main (int argc, char** argv)
{
        osso_context_t *osso_cxt;
        //OssoABookTouchContactStarter *starter;
        GtkWidget *starter, *window, *chooser;
        GList *contacts = NULL;

        osso_cxt = osso_initialize (argv[0], &quot;1.0&quot;, FALSE, NULL);
        osso_abook_init (&amp;argc, &amp;argv, osso_cxt);

        chooser = osso_abook_contact_chooser_new (NULL, &quot;Pick a Contact&quot;);
        gtk_dialog_run (GTK_DIALOG (chooser));
        gtk_widget_hide (chooser);

        contacts = osso_abook_contact_chooser_get_selection
                (OSSO_ABOOK_CONTACT_CHOOSER (chooser));

        if (contacts) {
                starter = osso_abook_touch_contact_starter_new_with_contact
                        (NULL, contacts-&gt;data);
                window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
                gtk_container_add (GTK_CONTAINER (window), starter);

                gtk_widget_show (starter);
                gtk_widget_show (window);
                g_signal_connect (window, &quot;destroy&quot;, gtk_main_quit, NULL);
                gtk_main ();

                g_list_free (contacts);
        }

        return 0;
}
&lt;/source&gt;

==== Additional API ====

In addition to the basic example shown above, there are several other ways to
customize the &lt;code&gt;OssoABookTouchContactStarter&lt;/code&gt; widget.  By default the contact starter is created in 'read-only' mode.  But if the starter was created with
&lt;code&gt;osso_abook_touch_contact_starter_new_with_editor()&lt;/code&gt;, a contact editor can be launched by clicking the avatar icon. This allows the contact's details to be
changed directly from the contact starter widget. An editor can also be
launched programmatically by calling &lt;code&gt;osso_abook_touch_contact_starter_start_editor()&lt;/code&gt;.

A contact starter is normally interactive in the sense that it can be used to
initiate contact with the contact (e.g. start a phone call, start a chat, etc),
though it can be made non-interactive by creating the starter with
&lt;code&gt;osso_abook_touch_contact_starter_new_not_interactive()&lt;/code&gt;.  In addition, an
application can override the default actions by connecting to the &lt;code&gt;pre-action-start&lt;/code&gt; signal.  For example:

&lt;source lang=&quot;c&quot;&gt;
gboolean
pre_action_start_cb (OssoABookTouchContactStarter *starter,
                OssoABookContactFieldAction *action,
                gpointer user_data)
{
        OssoABookContactAction action_type =
                osso_abook_contact_field_action_get_action (action);

        if (OSSO_ABOOK_CONTACT_ACTION_TEL == action_type) {
                hildon_banner_show_information (GTK_WIDGET (starter),
                                NULL, &quot;Telephone call action intercepted&quot;);

                /* stop signal emission */
                return TRUE;
        }

        /* don't stop signal emission -- let the default handler have it */
        return FALSE;
}

...

g_signal_connect (starter, &quot;pre-action-start&quot;,
                                G_CALLBACK (pre_action_start_cb), NULL);

&lt;/source&gt;

==== Complete API Documentation ====

Full details can be found in the API [http://maemo.org/api_refs/5.0/beta/libosso-abook/OssoABookTouchContactStarter.html reference documentation for OssoABookTouchContactStarter].

== Glossary ==

;aggregated contact
: a persistent master contact with one or more attached roster contacts.
;aggregator
: an &lt;code&gt;OssoABookAggregator&lt;/code&gt; object which manages connections to the EDS backends and associates master contacts with their roster contacts.
;master contact
: an &lt;code&gt;OssoABookContact&lt;/code&gt; which aggregates the attributes of zero or one persistent master contacts and zero or more roster contacts.
;persistent master contact
: an &lt;code&gt;OssoABookContact&lt;/code&gt; which is stored in the EDS local database and has zero or more roster contacts.
;roster contact
: an &lt;code&gt;OssoABookContact&lt;/code&gt; which is stored in the EDS Telepathy backend and represents a (VoIP/IM username, account) pair. Roster contacts are always attached to exactly one temporary master contact or one or more persistent master contacts.
;temporary master contact
: a master contact which was created at run-time for a roster contact to attach to, so that all roster contacts have one or more master contacts. Temporary master contacts are not stored in the local database and their UIDs must not be stored beyond the lifetime of the contact aggregator to which they belong.
;unique identifier (UID)
: a hashable ID which is unique across all EDS back-ends. See the definition for &quot;temporary master contact&quot; for relevant usage warnings.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Using Backup Application</title>
    <id>2904</id>
    <revision>
      <id>39633</id>
      <timestamp>2010-10-20T14:41:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">The back-up application saves and restores user data stored in [[MyDocs folder|/MyDocs]] (by default) and setting directories/files &lt;code&gt;/etc/osso-af-init/gconf-dir&lt;/code&gt; (a link to GConf database &lt;code&gt;/var/lib/gconf&lt;/code&gt;), &lt;code&gt;/etc/osso-af-init/locale&lt;/code&gt;, and &lt;code&gt;/etc/bluetooth/name&lt;/code&gt;. It can be configured to back up other locations and files as well, by custom configuration files.

The back-up application must not be disrupted by other applications writing or reading during a back-up or restore operation.

For restore process, back-up therefore will, if the user approves, ask the application killer to close all applications, and then wait until it has been done.

For backing up, the &lt;code&gt;backup_start&lt;/code&gt; and &lt;code&gt;backup_finish&lt;/code&gt; D-Bus signals will be emitted on the session bus, indicating to applications that they should not write to disk.

== D-Bus description and methods of back-up application ==

;Service
: &lt;code&gt;com.nokia.backup&lt;/code&gt;
;Interfaces
: &lt;code&gt;com.nokia.backup&lt;/code&gt;
;Object Paths
: &lt;code&gt;/com/nokia/backup&lt;/code&gt;
 

;Method
: &lt;code&gt;cancel&lt;/code&gt;
;Parameters
: none
;Returns
: Empty reply
;Description
: Cancels any ongoing back-up or restore operation
 

;Method
: activate
;Parameters
: none
;Returns
: Empty reply
;Description
: Used to activate the application with auto-activation

== Custom back-up locations ==

For other data not normally backed up, the &quot;locations&quot; configuration is used. The &quot;locations&quot; configuration paths '''MUST NOT''' overlap with any paths which are to be backed up.

The &quot;locations&quot; configuration lets applications install a configuration file with a list of files and directories that should be included in the back-up, or explicitly excluded from it.

The files should be installed into &lt;code&gt;/etc/osso-backup/applications&lt;/code&gt;, named &amp;lt;application&amp;gt;.conf and consist of simple XML format. An example of the format can be found in [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-examples/example_libosso.conf example_libosso.conf] in the maemo-examples module:

&lt;source lang=&quot;xml&quot;&gt;
&lt;backup-configuration&gt;
  &lt;locations&gt;
    &lt;location type=&quot;file&quot;
              category=&quot;settings&quot; auto=&quot;true&quot;&gt;/etc/example.ini&lt;/location&gt;
    &lt;location type=&quot;dir&quot;
              category=&quot;documents&quot;&gt;/home/user/foo&lt;/location&gt;
    &lt;exclusion type=&quot;file&quot;
              category=&quot;settings&quot;&gt;/home/user/bigfile&lt;/exclusion&gt;
    &lt;exclusion type=&quot;file&quot;
              category=&quot;settings&quot;&gt;/tmp/*.jpg&lt;/exclusion&gt;
  &lt;/locations&gt;
&lt;/backup-configuration&gt;
&lt;/source&gt;

We use the &amp;lt;location&amp;gt; tag to identify files or directories to be backed up. The path must be absolute. The &amp;lt;exclusion&amp;gt; tag can be used to exclude some files from the backup, such as temporary files, cached files, or settings for older versions of a software package. Wild cards '?' and '*' are also supported.

'''NOTE''' In order to be backup up, any files in the locations specified must be readable by the tablet user.

Both tags have TYPE and CATEGORY arguments and &amp;lt;location&amp;gt; tag additional AUTO argument:

'''TYPE''' can be &quot;file&quot; for a file or &quot;dir&quot; for a directory. This argument is required.

'''CATEGORY''' is used for handling selective back-up and restore. It may be omitted, in which case the location will only be backed up when backing up or restoring everything. The value can be:

* &lt;code&gt;comm_and_cal&lt;/code&gt; - for communication and calendar
* &lt;code&gt;settings&lt;/code&gt; - for system settings
* &lt;code&gt;bookmarks&lt;/code&gt; - for bookmark
* &lt;code&gt;applications&lt;/code&gt; - for third-party applciations list

'''AUTO''' can be true or false. In case of a conflict during backup, the destination file will be automatically replaced if this argument is true. Otherwise, the user will be prompted. This argument is only used for files, and defaults to false if omitted.

== After restore run scripts ==

The back-up application makes it possible to execute scripts after a restore operation. There are two kinds of scripts. First, there can be scripts that are executed after every restore operation. Then there are also scripts that are executed only, if the restore is made from a back-up created in an earlier product.

For the scripts that are used to transform data between the device software versions, the location for applications to install the scripts is /etc/osso-backup/restore.d/&amp;lt;dir&amp;gt;, where &amp;lt;dir&amp;gt; is a subdirectory for each transition between two different consecutive version of the platform. For transforming between IT-2006 and IT-2007 versions, the directory is &lt;br /&gt;/etc/osso-backup/restore.d/it2007/. For scripts that are executed after every restore, the location is &lt;code&gt;/etc/osso-backup/restore.d/always&lt;/code&gt;.

The files installed here should have the executable bit set. Any files ending with &quot;&lt;code&gt;~&lt;/code&gt;&quot; or &quot;.bak&quot; are ignored, just like directories or files starting with a dot (&quot;.&quot;).

Each script will be executed with a command line argument that is the path of a file containing the list of all files that have been restored, per category. The format of this file is:

 [CATEGORY]
 /path/to/file1
 /path/to/file2
 ...
 [CATEGORY]
 ...

CATEGORY is one of the OSSO categories (communications and calendar, settings, bookmarks and applications). This makes it possible for the scripts to check, which files they need to upgrade, if any at all. The format is chosen to be easy to parse with a simple script or program.

The scripts will be executed after a successful restoration, or after a restoration has been canceled. In both cases, the scripts will only be executed if any files were actually restored. Scripts should clean up after transforming, so that old files are not left behind. The script or program should use the common convention and return zero on success, and non-zero in case of failure. Application developers should try and make their programs execute and finish quickly.

== Tips ==

* You may want to consider erasing the cached inbox contents before doing backup if your email inbox is very large. E.g. if your mail contains a lot of attachments, the cache may be in the size of 100's of megabytes. To erase the cache and prevent its backup open an xterm and do:

 rm .modest/cache/mail/imap/foo.bar__imap.gmail.com_993/folders/INBOX/*.~

where &lt;code&gt;foo.bar*&lt;/code&gt; is the name of the imap account. The size of your email may be determined by:

 cd .modest
 du -k

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Using HAL</title>
    <id>2150</id>
    <revision>
      <id>37859</id>
      <timestamp>2010-08-17T13:57:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>maemo→Maemo</comment>
      <text xml:space="preserve">This topic gives a quick tour of HAL (Hardware Abstraction Layer). For in-depth background information, technical documentation and a specification, consult http://www.freedesktop.org/wiki/Software/hal.

==Background==

The purpose of HAL is to provide means for storing data about hardware devices, gathered from multiple sources and to provide an interface for applications to access this data. In essence, HAL provides a list of devices, and a way to add configuration values for each device. As a concrete example of what kind of information HAL contains, the command line application 'lshal' can be used to query the HAL daemon for all device objects that it is aware of. Here is some example output from Internet Tablet device:

&lt;pre&gt;
Dumping 54 device(s) from the Global Device List:
-------------------------------------------------
 udi = '/org/freedesktop/Hal/devices/computer'
  info.addons = {'hald-addon-cpufreq'} (string list)
  info.bus = 'unknown'  (string)
  info.callouts.add = {'hal-storage-cleanup-all-mountpoints'} (string list)
  info.capabilities = {'cpufreq_control'} (string list)
  info.interfaces = {'org.freedesktop.Hal.Device.SystemPowerManagement', 
 'org.freedesktop.Hal.Device.CPUFreq'} (string list)
  info.product = 'Computer'  (string)
  info.subsystem = 'unknown'  (string)
  info.udi = '/org/freedesktop/Hal/devices/computer'  (string)
  org.freedesktop.Hal.Device.SystemPowerManagement.method_argnames = 
 {'num_seconds_to_sleep', 'num_seconds_to_sleep', '', '', '', 'enable_power_save'} 
 (string list) 
  org.freedesktop.Hal.Device.SystemPowerManagement.method_execpaths = 
 {'hal-system-power-suspend', 'hal-system-power-suspend-hybrid', 'hal-system-power -hibernate', 
 'hal-system-power-shutdown', 'hal-system-power-reboot', 'hal-system-power-set- power-save'} 
 (string list)
  org.freedesktop.Hal.Device.SystemPowerManagement.method_names = 
 {'Suspend', 'SuspendHybrid', 'Hibernate', 'Shutdown', 'Reboot', 'SetPowerSave'} 
 (string list)
  org.freedesktop.Hal.Device.SystemPowerManagement.method_signatures = 
 {'i', 'i', '', '', '', 'b'} (string list)
  power_management.can_hibernate = false  (bool)
  power_management.can_suspend = true  (bool)
  power_management.can_suspend_hybrid = false  (bool)
  power_management.can_suspend_to_disk = false  (bool)
  power_management.can_suspend_to_ram = true  (bool)
  power_management.is_powersave_set = false  (bool)
  system.firmware.name = 'NOLO'  (string)
  system.firmware.product = 'N800'  (string)
  system.firmware.version = '1.1.6'  (string)
  system.formfactor = 'unknown'  (string)
  system.hardware.product = 'RX-34'  (string)
  system.hardware.serial = '0000000000000000'  (string)
  system.hardware.uuid = '24202524'  (string)
  system.hardware.vendor = 'Nokia'  (string)
  system.hardware.version = '1301'  (string)
  system.kernel.machine = 'armv6l'  (string)
  system.kernel.name = 'Linux'  (string)
  system.kernel.version = '2.6.21-omap1'  (string)
 udi = '/org/freedesktop/Hal/devices/computer_mtd_0_8'
  info.bus = 'mtd'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  info.product = 'MTD Device'  (string)
  info.subsystem = 'mtd'  (string)
  info.udi = '/org/freedesktop/Hal/devices/computer_mtd_0_8'  (string)
  linux.device_file = '/dev/mtd4ro'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'mtd'  (string)
  linux.sysfs_path = '/sys/class/mtd/mtd4ro'  (string)
  mtd.host = 0  (0x0)  (int)
 ...
 udi =      '/org/freedesktop/Hal/devices/platform_mmci_omap_1_mmc_host_mmc_card_rca58916_storage'
  block.device = '/dev/mmcblk0'  (string)
  block.is_volume = false  (bool)
  block.major = 254  (0xfe)  (int)
  block.minor = 0  (0x0)  (int)
  block.storage_device = 
 '/org/freedesktop/Hal/devices/platform_mmci_omap_1_mmc_host_mmc_card_rca58916_storage'  
 (string)
  info.capabilities = {'storage', 'block'} (string list)
  info.category = 'storage'  (string)
  info.parent = 
 '/org/freedesktop/Hal/devices/platform_mmci_omap_1_mmc_host_mmc_card_rca58916'  
 (string)
  info.udi = 
 '/org/freedesktop/Hal/devices/platform_mmci_omap_1_mmc_host_mmc_card_rca58916_storage'  
 (string)
  linux.hotplug_type = 3  (0x3)  (int)
  linux.sysfs_path = '/sys/block/mmcblk0'  (string)
  storage.automount_enabled_hint = true  (bool)
  storage.bus = 'mmc'  (string)
  storage.drive_type = 'sd_mmc'  (string)
  storage.hotpluggable = true  (bool)
  storage.media_check_enabled = false  (bool)
  storage.model = ''  (string)
  storage.no_partitions_hint = false  (bool)
  storage.originating_device = 
 '/org/freedesktop/Hal/devices/platform_mmci_omap_1_mmc_host_mmc_card_rca58916'      (string)
  storage.partitioning_scheme = 'none'  (string)
  storage.physical_device = 
 '/org/freedesktop/Hal/devices/platform_mmci_omap_1_mmc_host_mmc_card_rca58916'   (string)
  storage.removable = false  (bool)
  storage.removable.media_available = true  (bool)
  storage.removable.media_size = 125960192  (0x7820000)  (uint64)
  storage.requires_eject = false  (bool)
  storage.size = 125960192  (0x7820000)  (uint64)
  storage.vendor = ''  (string)
&lt;/pre&gt;

As can be seen in the output, the configuration data for each device, identified by a UDI (Unique Device Identifier), is stored as key-value pairs. Similar information can be queried about each device known to HAL. For instance, the type and size of an MMC memory card can be found in the HAL database, as well as other essential information (see the last device in the above example). HAL also contains information about disk volumes, such as file system types, mount points, volume sizes etc. The &lt;code&gt;category&lt;/code&gt; and &lt;code&gt;capabilities&lt;/code&gt; fields of the configuration describe what the device is and what it does. For a complete description of the device properties, see [http://people.freedesktop.org/~david/hal-spec/hal-spec.html HAL specification].

The following example illustrates data contained in HAL about the Maemo device's camera device. The example demonstrates an important aspect of HAL: its ability to monitor the state of each device in real-time. State changes in devices known to HAL are broadcast to D-Bus. Thus, the state of each interesting device from an application's point of view can be asynchronously monitored. Notice how the database keeps track of the exact state of the camera in the following example: whether the camera is active, and whether it has been turned 180 degrees.

  udi = '/org/freedesktop/Hal/devices/platform_cam_turn'
  button.has_state = true  (bool)
  button.state.value = true  (bool)
  button.type = 'activity'  (string)
  info.addons = {'hald-addon-omap-gpio'} (string list)
  info.bus = 'platform'  (string)
  info.capabilities = {'button'} (string list)
  info.linux.driver = 'gpio-switch'  (string)
  info.parent = '/org/freedesktop/Hal/devices/platform_gpio_switch'  (string)
  info.product = 'Platform Device (cam_turn)'  (string)
  info.subsystem = 'platform'  (string)
  info.udi = '/org/freedesktop/Hal/devices/platform_cam_turn'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'platform'  (string)
  linux.sysfs_path = '/sys/devices/platform/gpio-switch/cam_turn'  (string)
  platform.id = 'cam_turn'  (string)

  udi = '/org/freedesktop/Hal/devices/platform_cam_act'
  button.has_state = true  (bool)
  button.state.value = true  (bool)
  button.type = 'activity'  (string)
  info.addons = {'hald-addon-omap-gpio'} (string list)
  info.bus = 'platform'  (string)
  info.capabilities = {'button'} (string list)
  info.linux.driver = 'gpio-switch'  (string)
  info.parent = '/org/freedesktop/Hal/devices/platform_gpio_switch'  (string)
  info.product = 'Platform Device (cam_act)'  (string)
  info.subsystem = 'platform'  (string)
  info.udi = '/org/freedesktop/Hal/devices/platform_cam_act'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'platform'  (string)
  linux.sysfs_path = '/sys/devices/platform/gpio-switch/cam_act'  (string)
  platform.id = 'cam_act'  (string)


It is important to notice, that the devices in HAL database do not necessarily have a one-to-one correspondence with a physical device. For instance, in the previous example the camera has two separate devices in HAL for two different functionalities. This is intentional: the purpose of HAL is to abstract the entire set of physical devices into a functional categorization. The devices in HAL represent the smallest addressable unit.

==C API==

In order to make developers' life easier, the communication to the HAL daemon has been wrapped into a C library. Thus, applications can easily use the services provided by the library to monitor and query different devices. For a complete description of the API, see &lt;code&gt;libhal.h&lt;/code&gt; (in package [http://maemo.org/packages/view/libhal-dev/ libhal-dev]). Here, the basic steps to set up a connection to HAL and some basic functions are described. Error checking, etc. are omitted from the examples, for the sake of clarity.

Setting up a connection to HAL is performed as follows:

&lt;source lang=&quot;c&quot;&gt;
include &lt;libhal.h&gt;
void set_up(void)
{
   LibHalContext *ctx;
   DBusConnection *dbus_connection;
   DBusError error;
   ctx = libhal_ctx_new();
   dbus_error_init(&amp;error);
   dbus_connection = dbus_bus_get(DBUS_BUS_SYSTEM, &amp;error);
   libhal_ctx_set_dbus_connection(ctx, dbus);
/* ... */
&lt;/source&gt;

After setting up a connection, listener callbacks can be registered:

&lt;source lang=&quot;c&quot;&gt;
   libhal_ctx_set_device_added (ctx, _device_added);
   libhal_ctx_set_device_removed (ctx, _device_removed);
   libhal_ctx_set_device_property_modified(ctx, _property_modified);
&lt;/source&gt;

Finally, initialize the connection and start listening to HAL:

&lt;source lang=&quot;c&quot;&gt;
   libhal_ctx_init(ctx, &amp;error);
   libhal_device_property_watch_all(ctx, &amp;error);
&lt;/source&gt;

The listener functions and the application in general can obtain information about devices using functions in libhal. For instance, as a device gets connected, the following functions can be used to obtain information about it:

&lt;source lang=&quot;c&quot;&gt;
   /* If UDI is known (the callbacks provide a UDI for added/removed devices),
      existence of specific capabilities can be queried with the following function: */
   if(libhal_device_query_capability(ctx, udi, &quot;volume&quot;, NULL)) {
   /* Capability &quot;volume&quot; exists */
   ...
   }
   /* The library also provides plenty of get/set functions for querying specific 
      information about a device by its UDI. For instance, querying the storage. 
      drive_type property of the device, which is created by HAL when a memory card 
      is inserted into the Internet Tablet device, returns 'sd_mmc', indicating an 
      active memory card reader for SecureDigital/MultiMediaCard memory cards. */
   libhal_device_get_property_string (ctx, udi, &quot;storage.drive_type&quot;, NULL);
&lt;/source&gt;

All the query functions follow the same pattern. The HAL specification describes the type of each property. The types can optionally be queried with the &lt;code&gt;lshal&lt;/code&gt; tool, which adds type information into its output. For each type, libhal provides a get/set function, such as &lt;code&gt;libhal_device_get_property_string()&lt;/code&gt;, &lt;code&gt;libhal_device_get_property_int()&lt;/code&gt;, etc. The library also provides functions for listing all devices and their properties: &lt;code&gt;libhal_get_all_devices()&lt;/code&gt;, &lt;code&gt;_device_get_all_properties()&lt;/code&gt;, if more user-controlled filtering is needed.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Multimedia Components</title>
    <id>2154</id>
    <revision>
      <id>38346</id>
      <timestamp>2010-09-07T10:13:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut codecs link</comment>
      <text xml:space="preserve">*[[{{PAGENAME}}/Introduction|Introduction]]
*[[{{PAGENAME}}/Getting Started with Multimedia|Getting Started with Multimedia]]
*[[{{PAGENAME}}/Media Application Framework (MAFW)|Media Application Framework (MAFW)]]
*[[{{PAGENAME}}/Camera API Usage|Camera API Usage]]
*[[{{PAGENAME}}/FM Transmitter API Usage|FM Transmitter API Usage]]
*[[{{PAGENAME}}/Using Games Start-up Screen|Using Games Start-up Screen]]

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Multimedia Components/Camera API Usage</title>
    <id>2144</id>
    <revision>
      <id>37846</id>
      <timestamp>2010-08-17T09:49:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use &lt;code&gt;</comment>
      <text xml:space="preserve">__FORCETOC__

This section explains how to use the Camera API to access the camera hardware that is present in some models of Nokia Internet Tablets.


== Camera Hardware and Linux ==

The Linux operating system supports live video and audio hardware, such as webcams, TV tuners, video capture cards, FM radio tuners, video ''output'' devices etc. The primary API for the applications to access those devices is [http://linux.bytesex.org/v4l2/ Video4Linux2].

Video4Linux2 is a ''kernel'' API, so there must be kernel drivers for each supported device. At the user level, device access is standardized via device files. In the case of video capture devices like cameras, which are the focus of this material, the files would be &lt;code&gt;/dev/video0&lt;/code&gt;, &lt;code&gt;/dev/video1&lt;/code&gt;, etc., as many as there are connected devices.

Data exchanged between the device file and user-level application has a standardized format for each device class. This allows the application to be instantly compatible with every video capture device that has a driver for Linux.

The built-in cameras present in Maemo devices are compatible with [http://linux.bytesex.org/v4l2/ Video-4-Linux version 2 API]. In principle, any application compatible with this API is easily portable to the Maemo platform.

Since the Maemo platform delegates all multimedia handling to the GStreamer framework, applications that need access to the built-in camera should employ GStreamer for this, instead of directly accessing Video4Linux devices, via the &lt;code&gt;v4l2src&lt;/code&gt; GStreamer module.

Thanks to the flexibility of GStreamer, a developer can fully test any given application in a regular desktop PC with a connected webcam, and then perform the final test in the Internet Tablet itself, without a single change in the source code, since GStreamer refers to modules as text names.

One important note about the camera in the maemo device: only one application can use it at any given time. So, while using the camera in an application, other tasks that could possibly make use of it (e.g. a video call) will be blocked.

To ease developing an application that does video recording and still image capture, a high level gstreamer element has been developed. CameraBin follows the idea behind other high level elements like &lt;code&gt;playbin2&lt;/code&gt;. One can add capture support to an application without the need to deal with the lowlevel media-processing graph.

To demonstrate how the camera manipulation is performed, a low-level example application is provided and discussed.

==Camera Manipulation in C Language ==

This C application allows to use the Maemo device as a &quot;mirror&quot; (i.e. showing the camera input in the screen), as well as allows to take pictures to be saved as JPEG files (which illustrates the video frame buffer manipulation).

In this example, the function &lt;code&gt;initialize_pipeline()&lt;/code&gt; is most interesting, since it is responsible for creating the GStreamer pipeline, sourcing data from Video4Linux and sinking it to a &lt;code&gt;xvimagesink&lt;/code&gt; (which is an optimized X framebuffer). The pipeline scheme is as follows ([https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-examples/example_camera.c see example_camera.c in maemo-examples]):

&lt;source lang=&quot;c&quot;&gt;
/* Initialize the the Gstreamer pipeline. Below is a diagram
 * of the pipeline that will be created:
 * 
 *                             |Screen|  |Screen|
 *                           -&gt;|queue |-&gt;|sink  |-&gt; Display
 * |Camera|  |CSP   |  |Tee|/
 * |src   |-&gt;|Filter|-&gt;|   |  |Image|   |Image |  |Image|
 *                           -&gt;|queue|-&gt; |filter|-&gt;|sink |-&gt; JPEG file
 */
&lt;/source&gt;

Between the source and sinks, there are two &lt;code&gt;ffmpegcolorspace&lt;/code&gt; filters, one to configure the camera frame rate and the picture size expected by the JPEG encoder, and the second to satisfy the video sink. Capabilities (&quot;caps&quot;) are employed to tell which format the data needs to have when exiting the filter.

The second filter is necessary, since the video sink may have different requirements (bit depth, color space) from the JPEG encoder. Those requirements can vary also according to the hardware.

Because there are two sinks, the queues are important, since they guarantee that each pipeline segment operates on its own thread downstream the queue. This ensures that the different sinks can synchronize without waiting for each other.

This sample application is not different from other GStreamer applications, be it Linux-generic or Maemo-specific apps ([https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-examples/example_camera.c see example_camera.c in maemo-examples]):

&lt;source lang=&quot;c&quot;&gt;
static gboolean initialize_pipeline(AppData *appdata,
		int *argc, char ***argv)
{
	GstElement *pipeline, *camera_src, *screen_sink, *image_sink;
	GstElement *screen_queue, *image_queue;
	GstElement *csp_filter, *image_filter, *tee;
	GstCaps *caps;
	GstBus *bus;
	/* Initialize Gstreamer */
	gst_init(argc, argv);
	/* Create pipeline and attach a callback to it's
	 * message bus */
	pipeline = gst_pipeline_new(&quot;test-camera&quot;);
	bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline));
	gst_bus_add_watch(bus, (GstBusFunc)bus_callback, appdata);
	gst_object_unref(GST_OBJECT(bus));
	/* Save pipeline to the AppData structure */
	appdata-&gt;pipeline = pipeline;
	/* Create elements */
	/* Camera video stream comes from a Video4Linux driver */
	camera_src = gst_element_factory_make(VIDEO_SRC, &quot;camera_src&quot;);
	/* Colorspace filter is needed to make sure that sinks understands
	 * the stream coming from the camera */
	csp_filter = gst_element_factory_make(&quot;ffmpegcolorspace&quot;, &quot;csp_filter&quot;);
	/* Tee that copies the stream to multiple outputs */
	tee = gst_element_factory_make(&quot;tee&quot;, &quot;tee&quot;);
	/* Queue creates new thread for the stream */
	screen_queue = gst_element_factory_make(&quot;queue&quot;, &quot;screen_queue&quot;);
	/* Sink that shows the image on screen. Xephyr doesn't support XVideo
	 * extension, so it needs to use ximagesink, but the device uses
	 * xvimagesink */
	screen_sink = gst_element_factory_make(VIDEO_SINK, &quot;screen_sink&quot;);
	/* Creates separate thread for the stream from which the image
	 * is captured */
	image_queue = gst_element_factory_make(&quot;queue&quot;, &quot;image_queue&quot;);
	/* Filter to convert stream to use format that the gdkpixbuf library
	 * can use */
	image_filter = gst_element_factory_make(&quot;ffmpegcolorspace&quot;, &quot;image_filter&quot;);
	/* A dummy sink for the image stream. Goes to bitheaven */
	image_sink = gst_element_factory_make(&quot;fakesink&quot;, &quot;image_sink&quot;);
	/* Check that elements are correctly initialized */
	if(!(pipeline &amp;&amp; camera_src &amp;&amp; screen_sink &amp;&amp; csp_filter &amp;&amp; screen_queue
		&amp;&amp; image_queue &amp;&amp; image_filter &amp;&amp; image_sink))
	{
		g_critical(&quot;Couldn't create pipeline elements&quot;);
		return FALSE;
	}
	/* Set image sink to emit handoff-signal before throwing away
	 * it's buffer */
	g_object_set(G_OBJECT(image_sink),
			&quot;signal-handoffs&quot;, TRUE, NULL);
	/* Add elements to the pipeline. This has to be done prior to
	 * linking them */
	gst_bin_add_many(GST_BIN(pipeline), camera_src, csp_filter,
			tee, screen_queue, screen_sink, image_queue,
			image_filter, image_sink, NULL);
	/* Specify what kind of video is wanted from the camera */
	caps = gst_caps_new_simple(&quot;video/x-raw-rgb&quot;,
			&quot;width&quot;, G_TYPE_INT, 640,
			&quot;height&quot;, G_TYPE_INT, 480,
			NULL);
	/* Link the camera source and colorspace filter using capabilities
	 * specified */
	if(!gst_element_link_filtered(camera_src, csp_filter, caps))
	{
		return FALSE;
	}
	gst_caps_unref(caps);
	/* Connect Colorspace Filter -&gt; Tee -&gt; Screen Queue -&gt; Screen Sink
	 * This finalizes the initialization of the screen-part of the pipeline */
	if(!gst_element_link_many(csp_filter, tee, screen_queue, screen_sink, NULL))
	{
		return FALSE;
	}
	/* gdkpixbuf requires 8 bits per sample which is 24 bits per
	 * pixel */
	caps = gst_caps_new_simple(&quot;video/x-raw-rgb&quot;,
			&quot;width&quot;, G_TYPE_INT, 640,
			&quot;height&quot;, G_TYPE_INT, 480,
			&quot;bpp&quot;, G_TYPE_INT, 24,
			&quot;depth&quot;, G_TYPE_INT, 24,
			&quot;framerate&quot;, GST_TYPE_FRACTION, 15, 1,
			NULL);
	/* Link the image-branch of the pipeline. The pipeline is
	 * ready after this */
	if(!gst_element_link_many(tee, image_queue, image_filter, NULL)) return FALSE;
	if(!gst_element_link_filtered(image_filter, image_sink, caps)) return FALSE;
	gst_caps_unref(caps);
	/* As soon as screen is exposed, window ID will be advised to the sink */
	g_signal_connect(appdata-&gt;screen, &quot;expose-event&quot;, G_CALLBACK(expose_cb),
			 screen_sink);
	gst_element_set_state(pipeline, GST_STATE_PLAYING);
	return TRUE;
}
&lt;/source&gt;

The following function is called back when the user has pressed the &quot;Take photo&quot; button, and the image sink has data. It will forward the image buffer to &lt;code&gt;create_jpeg()&lt;/code&gt; ([https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-examples/example_camera.c see example_camera.c in maemo-examples]):

&lt;source lang=&quot;c&quot;&gt;
/* This callback will be registered to the image sink
 * after user requests a photo */
static gboolean buffer_probe_callback(
		GstElement *image_sink,
		GstBuffer *buffer, GstPad *pad, AppData *appdata)
{
	GstMessage *message;
	gchar *message_name;
	/* This is the raw RGB-data that image sink is about
	 * to discard */
	unsigned char *data_photo =
	    (unsigned char *) GST_BUFFER_DATA(buffer);
	/* Create a JPEG of the data and check the status */
	if(!create_jpeg(data_photo))
		message_name = &quot;photo-failed&quot;;
	else
		message_name = &quot;photo-taken&quot;;
	/* Disconnect the handler so no more photos
	 * are taken */
	g_signal_handler_disconnect(G_OBJECT(image_sink),
			appdata-&gt;buffer_cb_id);
	/* Create and send an application message which will be
	 * catched in the bus watcher function. This has to be
	 * sent as a message because this callback is called in
	 * a gstreamer thread and calling GUI-functions here would
	 * lead to X-server synchronization problems */
	message = gst_message_new_application(GST_OBJECT(appdata-&gt;pipeline),
			gst_structure_new(message_name, NULL));
	gst_element_post_message(appdata-&gt;pipeline, message);
	/* Returning TRUE means that the buffer can is OK to be
	 * sent forward. When using fakesink this doesn't really
	 * matter because the data is discarded anyway */
	return TRUE;
}
&lt;/source&gt;

The &lt;code&gt;xvimagesink&lt;/code&gt; GStreamer module will normally create a new window just for itself. Since the video is supposed to be shown inside the main application window, the X-Window window ID needs to be passed to the module, as soon as the ID exists ([https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-examples/example_camera.c see example_camera.c in maemo-examples]):

&lt;source lang=&quot;c&quot;&gt;
/* Callback to be called when the screen-widget is exposed */
static gboolean expose_cb(GtkWidget * widget, GdkEventExpose * event, gpointer data)
{
	/* Tell the xvimagesink/ximagesink the x-window-id of the screen
	 * widget in which the video is shown. After this the video
	 * is shown in the correct widget */
	gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(data),
				     GDK_WINDOW_XWINDOW(widget-&gt;window));
	return FALSE;
}
&lt;/source&gt;

For the sake of completeness, it follows the JPEG encoding function. It is worthwhile to mention that the buffer that came from GStreamer is a simple linear framebuffer ([https://garage.maemo.org/svn/maemoexamples/trunk/maemo-examples/example_camera.c see example_camera.c in maemo-examples]):

&lt;source lang=&quot;c&quot;&gt;
/* Creates a jpeg file from the buffer's raw image data */
static gboolean create_jpeg(unsigned char *data)
{
	GdkPixbuf *pixbuf = NULL;
	GError *error = NULL;
	guint height, width, bpp;
	const gchar *directory;
	GString *filename;
	guint base_len, i;
	struct stat statbuf;

	width = 640; height = 480; bpp = 24;

	/* Define the save folder */
	directory = SAVE_FOLDER_DEFAULT;
	if(directory == NULL)
	{
		directory = g_get_tmp_dir();
	}

	/* Create an unique file name */
	filename = g_string_new(g_build_filename(directory, PHOTO_NAME_DEFAULT, NULL));
	base_len = filename-&gt;len;
	g_string_append(filename, PHOTO_NAME_SUFFIX_DEFAULT);
	for(i = 1; !stat(filename-&gt;str, &amp;statbuf); ++i)
	{
		g_string_truncate(filename, base_len);
		g_string_append_printf(filename, &quot;%d%s&quot;, i, PHOTO_NAME_SUFFIX_DEFAULT);
	}

	/* Create a pixbuf object from the data */
	pixbuf = gdk_pixbuf_new_from_data(data,
			GDK_COLORSPACE_RGB, /* RGB-colorspace */
			FALSE, /* No alpha-channel */
			bpp/3, /* Bits per RGB-component */
			width, height, /* Dimensions */
			3*width, /* Number of bytes between lines (ie stride) */
			NULL, NULL); /* Callbacks */

	/* Save the pixbuf content's in to a jpeg file and check for
	 * errors */
	if(!gdk_pixbuf_save(pixbuf, filename-&gt;str, &quot;jpeg&quot;, &amp;error, NULL))
	{
		g_warning(&quot;%s\n&quot;, error-&gt;message);
		g_error_free(error);
		gdk_pixbuf_unref(pixbuf);
		g_string_free(filename, TRUE);
		return FALSE;
	}

	/* Free allocated resources and return TRUE which means
	 * that the operation was succesful */
	g_string_free(filename, TRUE);
	gdk_pixbuf_unref(pixbuf);
	return TRUE;
}
&lt;/source&gt;

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Multimedia Components/FM Transmitter API Usage</title>
    <id>2145</id>
    <revision>
      <id>42267</id>
      <timestamp>2011-03-01T13:20:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">__FORCETOC__

The [[N900 FM radio transmitter|FM Transmitter]] is controlled by &lt;code&gt;fmtx-middleware&lt;/code&gt; program via D-Bus API. API includes functions to enable transmitter, change transmitting frequency and station name. Please note that available frequencies may vary by sales region and FM Transmitter may be disabled in certain sales regions. Transmitter is also disabled when external devices are connected to Maemo device, excluding charger and Bluetooth devices. When FM Transmitter is enabled, fmtx-middleware will route audio automatically to the transmitter and enforce proper transmission power allowed in sales region. Fmtx-middleware will emit beeping tone when no other audio is being transmitter to comply with legislature. API documentation is in the [http://maemo.org/packages/view/fmtx-middleware-doc/ fmtx-middleware-doc] package.

== API documentation ==

;Service
: &lt;code&gt;com.nokia.FMTx&lt;/code&gt;
;Interface
: &lt;code&gt;com.nokia.FMTx.Device&lt;/code&gt;
;Object path
: &lt;code&gt;/com/nokia/fmtx/default&lt;/code&gt;

===Properties===

{| class=&quot;wikitable&quot;
|+ D-Bus properties
|-
! Name
! Type
! Flags
! Description
|-
| &lt;code&gt;version&lt;/code&gt;
| Uint32
| Read only
| Version number of &lt;code&gt;fmtx-middleware&lt;/code&gt;
|-
| &lt;code&gt;frequency&lt;/code&gt;
| Uint32
| Read/write
| Frequency in kHz. Returns &lt;code&gt;DBUS_GERROR_INVALID_ARGS&lt;/code&gt; error, if frequency is not allowed
|-
| &lt;code&gt;freq_max&lt;/code&gt;
| Uint32
| Read only
| Returns maximum allowed frequency in kHz
|-
| &lt;code&gt;freq_step&lt;/code&gt;
| Uint32
| Read only
| Returns the minimum step between frequencies in kHz
|-
| &lt;code&gt;state&lt;/code&gt;
| String
| Read/write
| Returns the state of the transmitter. States are: 
* enabled – Transmitter is currently enabled 
* disabled – Transmitter is currently disabled 
* error – Internal error while initializing the transmitter, transmitter can’t be enabled. 
* n/a – Transmitter is permanently disabled in this device. 
State can be set to enabled or disabled. 
May return &lt;code&gt;DBUS_GERROR_FAILED&lt;/code&gt; if transmitter can’t be enabled
|-
| &lt;code&gt;startable&lt;/code&gt;
| String
| Read only
| Returns message about can the transmitter be enabled at current time. Messages are: true Device is in offline mode Headphones are connected USB device is connected
|-
| &lt;code&gt;rds_ps&lt;/code&gt;
| String
| Read/write
| Get/Set RDS Station name (displayed on rds capable radios). To avoid problems with some radios, use text which length is dividable by 8. Pad with spaces if necessary
|-
| &lt;code&gt;rds_text&lt;/code&gt;
| String
| Read/write
| Get/Set RDS text (displayed alternating with station name. Maximum length is 64 characters. Returns &lt;code&gt;DBUS_GERROR_INVALID_ARGS&lt;/code&gt; is set if the text is too long
|}

===Signals===

{| class=&quot;wikitable&quot;
|+ D-Bus signals
|-
! Name
! Type
! Description
|-
| &lt;code&gt;Changed&lt;/code&gt;
| None
| Some fmtx property was changed
|-
| &lt;code&gt;Error&lt;/code&gt;
| String
| FM transmitter was disabled by one of the following reasons: &lt;ul&gt;&lt;li&gt;Device entered offline mode&lt;/li&gt;&lt;li&gt;USB device was connected (excluding charger)&lt;/li&gt;&lt;li&gt;Headphones were connected&lt;/li&gt;&lt;li&gt;TV-Out cable was connected&lt;/li&gt;&lt;/ul&gt;
|}

Properties are manipulated with &lt;code&gt;org.freedesktop.DBus.Properties&lt;/code&gt; interface. For more information see [[Documentation/Maemo 5 Developer Guide/DBus|D-Bus documentation]].

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Multimedia Components/Getting Started with Multimedia</title>
    <id>2142</id>
    <revision>
      <id>38336</id>
      <timestamp>2010-09-06T13:01:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Plug-in Development */ Maemo SDK link</comment>
      <text xml:space="preserve">This section explains how to get started with developing multimedia applications and plug-ins in the Maemo SDK. It is recommended to read also [http://gstreamer.freedesktop.org/documentation/ GStreamer's documentation].

Below is an overview diagram about the multimedia APIs from an application perspective. Please note that applications can always use lower APIs directly when appropriate.

[[Image:multimedia_overview.png|400px]]


== Simple GStreamer Example ==

This example demonstrates how to use GStreamer's API to play PCM audio.

First, get the [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-examples/ sample applications] (including build scripts), for instance with the following command: 

 svn checkout https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-examples/

To compile and run, start Xephyr and execute the following commands:
 
 cd maemo-examples
 make
 af-sb-init.sh start
 run-standalone.sh ./example_wavlaunch

To use, simply:

* Click Open to open the File Chooser.
* Browse to a .wav file and select Open.
* Select Play to start playing.

[[Image:wavlaunch.png|400px]]


Many aspects of GStreamer's application development are described in the [http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/index.html GStreamer Application Development Manual].

For more information on how to use GStreamer's API, see the [http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/ Core API Reference].

__FORCETOC__

== Plug-in Development ==

In order to have support for a new media format in the [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK|Maemo SDK]], it is necessary to compile a codec for the format, and compile the GStreamer plug-in supporting that codec.

Codecs are libraries that enable the use of compression for digital audio and video. GStreamer plug-ins are loadable libraries, which provide GStreamer elements that process video and audio streams.

Some plug-ins have the codec embedded and therefore do not need an additional library. To play some unusual formats, a demuxer GStreamer plug-in is needed as well. More information about the internals of GStreamer plug-ins can be found in the [http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/index.html Plugin Writers Guide].

The list of plug-ins for GStreamer is available [http://gstreamer.freedesktop.org/documentation/plugins.html here].

To add support for a new media format:

* Get the codec from the codec's manufacturer.
* Get the GStreamer plug-ins from the [http://gstreamer.freedesktop.org/src/ GStreamer website].
* Extract packages to the Scratchbox environment and follow the compiling instructions for the codec and the GStreamer plug-ins package.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Multimedia Components/Introduction</title>
    <id>2141</id>
    <revision>
      <id>38335</id>
      <timestamp>2010-09-06T12:58:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* MAFW */ MAFW link</comment>
      <text xml:space="preserve">The following code examples are used in this chapter:

* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-examples/example_wavlaunch.c example_wavlaunch.c]
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/maemo-examples/example_camera.c example_camera.c]
* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/crazyparking/ crazyparking]

Maemo offers lots of possibilities for multimedia applications. Maemo was built with the Internet Tablet devices in mind - hardware in this form factor provides a big high resolution touch screen, audio input and output, video and image capturing through the camera, fast network connections for streaming and a digital signal processor for efficient audio and video manipulation.

For developers, there are open programming interfaces to make use of these features apart from directly programming the DSP. The preferred way of doing video and audio programming for Maemo is using the [http://gstreamer.freedesktop.org/ GStreamer framework]. There are several libraries available for manipulating images. Interactive multimedia for applications like games can be done using the [http://www.libsdl.org/ SDL framework].

==GStreamer - Multimedia Framework==

The main multimedia framework in Maemo is [http://gstreamer.freedesktop.org/ GStreamer]. It is based on the concept of pipelines, which are made of multiple elements. Elements themselves can be practically anything that do something with a data stream.

Maemo includes a variety of these elements to support audio and video effects, encoding and decoding and interfacing with the device's hardware. GStreamer also provides high level elements for specific use cases, like &lt;code&gt;playbin2&lt;/code&gt; for playback and &lt;code&gt;camerabin&lt;/code&gt; for image and video capture. Using this approach, a developer does not have to bother with details like low-level hardware management, audio and video compression schemes, etc. If the elements included with the OS are not enough, more can be either compiled for Maemo, or new ones can be developed.

Developer documentation for GStreamer can be found at the [http://gstreamer.freedesktop.org project's website].

==MAFW==

[[Documentation/Maemo 5 Developer Guide/Using Multimedia Components/Media Application Framework (MAFW)|Media Application Framework (MAFW)]] is a middleware layer for all mediaplayer applications. It provides generic APIs for browsing and searching multimedia content (music, video, images) from various services (e.g. local filesystem, UPnP, etc.) and an extensible plugin architecture which allows providing new content sources via new service plugins. In addition to content metadata access, MAFW provides also generic APIs for playback of media (music, video, images) via various rendering services (e.g. gstreamer, UPnP, etc.). Also new rendering services can be added via a plugin mechanism. MAFW allows 3rd party developers flexible ways to implement new content services support for the Maemo platform.

==Stream Encoding and Decoding==

Maemo devices include a wide arsenal of video and audio codecs, which enable the Maemo applications to read and write nearly all commonly used video and audio formats. These are supported also by the GStreamer framework. For many purposes the developer does not even have to specify the used codecs implicitly, since GStreamer automatically detects the format and the codec to use. The [http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/gst-plugins-base-plugins-playbin2.html playbin2] GStreamer base plug-in provides a convenient abstraction layer for all audio and video content.

Due to non-technical reasons, most of the codecs are not distributed with the SDK. This is good to keep in mind when developing applications relying on such features.

==Digital Signal Processor==

Inside the Maemo device, there is a dedicated digital signal processor (DSP). Its design is optimized for tasks like stream encoding/decoding and audio effects. Maemo has high-level programming support for the DSP in the form of GStreamer elements, which can decode most of the supported file formats. By using the DSP, the computing load is also taken off from the main processor, greatly enhancing system performance and responsiveness.

===Audio===

For audio programming, Maemo has several main APIs: GStreamer and PulseAudio. Usually system sounds, such as sounds for notifying user of an event, e.g. battery low, are played through PulseAudio. One can use libcanbera if a simple API is needed. More sophisticated operations, e.g. playing music files or recording audio, should be generally performed using GStreamer, which a much more flexible API. Most of Maemo's computationally intensive GStreamer elements are implemented using the device's DSP which greatly enhances their performance.

The Linux kernel has also two lower-level audio interfaces: ALSA and OSS. Of these, ALSA is supported. The legacy API OSS is not supported by the kernel, but ALSA has an OSS emulation system that works for most purposes.

For the audio APIs' documentation, see the [http://gstreamer.freedesktop.org/ GStreamer web site], [http://www.pulseaudio.org/ PulseAudio web site] and [http://www.alsa-project.org/main/index.php/Main_Page ALSA project's web site].

==Video==

Although the framework hides much of the implementation and hardware details, it is good for a developer to know what happens beneath the interfaces. Video capturing is performed via the Linux kernel's Video4Linux2 API, and graphics are displayed using the X Window System, namely the XVideo extension. Practically all GNU/Linux applications rely on these components for video tasks, so porting existing applications should be quite effortless, and support easy to find.

Hands-on instructions for using capture and output features are given in the article on [[Documentation/Maemo 5 Developer Guide/Using Multimedia Components/Camera API Usage|camera API usage]]. 

==Graphics and Images==

Maemo includes several libraries for working with images and graphics:

* Cairo is a library for making 2D vector graphics. It features, for example, high quality vector-based graphics, support for importing and exporting a variety of formats, such as SVG, PNG, PDF and Postscript, and bindings for many programming languages
* GDK and GdkPixbuf are the bitmap graphics libraries that GTK+ is built on. Together, they provide opening and saving for bitmap images in JPEG, PNG, TIFF, ICO and BMP formats, tight integration into GTK+ and tools for drawing with graphic primitives. Also loading of SVG images is supported
* For more detailed control over the different image formats, there are many more specialized libraries, e.g. libpng, libjpeg and libwmf.

Visit [http://cairographics.org/ Cairo website] for guides, tutorials and references. GDK's and GdkPixbuf's documentation can be found at [http://www.gtk.org/ GTK+ project's website]. 

==Games==

For game developers, maemo offers a common start-up and settings screen, and a framework called ''osso-games-startup''. Using this library, game developers and porters can reduce the common start-up screen coding, and concentrate on the real game programming. Osso-games-startup's operating system communication features also offer an interface to make games behave correctly. It eases, for example, the management of full screen mode and exceptional situations, such as battery low notification, in a unified and user friendly manner. See the article on [[Documentation/Maemo 5 Developer Guide/Using Multimedia Components/Using Games Start-up Screen|games start-up screen usage]] for more in-depth description.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Multimedia Components/Media Application Framework (MAFW)</title>
    <id>2143</id>
    <revision>
      <id>40082</id>
      <timestamp>2010-11-12T13:14:23Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Packages */ link</comment>
      <text xml:space="preserve">==  Introduction ==

The Maemo platform provides multimedia capabilities through the GStreamer framework. GStreamer takes care of all the low-level multimedia playback details (codecs, formats, protocols, etc.), makes developer's lives really easy, and allows rapid development of typical multimedia applications.

However, there are still a few features that are not covered by frameworks like GStreamer. Usually, these topics have to do with the complexity of latest generation Media Player applications, which tried to provide integration with all kinds of multimedia services (UPnP, Last.Fm, Youtube, etc), although others are more traditional, you will find no support in relatively low-level frameworks such as GStreamer for things like playlist manipulation.

The Multimedia Applications FrameWork (MAFW) complements GStreamer to enhance the multimedia experience in the Maemo platform, providing developers with a flexible, easy to use, and extensible high-level layer on top of other included multimedia-related technologies. Specifically, MAFW intends to provide multimedia application developers with:

* An extensible, pluggable framework interface, which allows you to develop new plugins which provide integration with new multimedia services or rendering engines, and which will seamlessly integrated into all MAFW based applications.
* Easy to use APIs that speed up application developing, providing support for playback control, discovery and browsing of multimedia resources and playlist manipulation.
* An independent technology. Since MAFW is a plugin based framework, it is not tied to a particular multimedia technology (GStreamer, MPlayer, and Tracker). Plugin developers have the freedom to choose the technologies they want to use in their plugins, and application developers do not need to care about them.

The purpose of this manual is to introduce the basic concepts of the MAFW framework to interested multimedia developers, explaining its fundamental concepts and providing insight and examples on how it should be used to develop multimedia applications in the Maemo platform.

=== Pre-requisites ===

The examples given in this section are written in C using GLib to interact with MAFW which is built upon the &lt;code&gt;GObject&lt;/code&gt; framework. The reader will need to be familiar with these subjects in order to understand these examples.

=== Examples ===

Source code examples are available in the [[#Code examples|code example section]] and are intended to illustrate many of the concepts explained in this manual. References to sections with examples are be provided as needed.

== Developing multimedia applications using MAFW ==

=== Main concepts ===

Here follows a brief explanation on some of the fundamental concepts concerning the MAFW framework. Most of them will be covered in more detail in later sections of this manual:

* Renderer: An element capable of consuming multimedia content and controlling media playback.
* Source: An element that provides access to multimedia content such as the media stored in the local filesystem, UPnP servers, Samba shares, Bluetooth devices, Internet services, etc...
* Object Identifier: Sources identify multimedia resources using object identifiers. Each individual resource has one unique object identifier associated that is provided by the source serving it.
* Shared playlist: A sorted list of multimedia resources ready to be consumed by a renderer, which can be used and manipulated by several applications in parallel. Playlists are populated with media items extracted from Source components, and assigned to a renderer to be played.
* Extension: An element that implements a particular task by following a well-defined interface. Currently, two types of extensions are allowed; those that implement new Source components and those that implement new Renderer components. Also, extensions can be used in two manners:
** In-process extensions: Those that live in the same address space as the application that uses them.
** Out-of-process extensions: Those that live in a separate process other than the application's. The benefit of this type of extension is that programming flaws in the plug-in code that lead to crashes or freezing of the extension, do not crash or freeze the main application. The main drawback of this approach is the need for inter-process communications to communicate between the application and the extensions, which may have a performance hit and require some extra synchronization effort.
* Plugin: A plugin is a shared object file implementing a particular Source or Renderer type of extension. For example, in the case of a UPnP source plugin, the shared file implementing the source is the plugin. However, the plugin may instantiate several source extensions, one per UPnP server discovered.
* Wrapper: In order to make inter-process communications in case of out-of-process plugins, transparent for application developers, all components that can live in a separate processes (Extensions and Shared playlists), are wrapped with local objects that handle the inter-process communication transparently. Thanks to these wrapper objects, in most situations, application developers do not need to know if they are using in-process or out-of-process components. Although wrappers play an important role in MAFW, they are only interesting for developers interested in hacking the internals of the framework. Multimedia application developers do not need to know about them.

=== Packages ===

MAFW is formed by the following packages:

* [http://maemo.org/packages/view/libmafw0/ MAFW Library]: The MAFW library contains the basic classes and interfaces defined in the framework. These expose the major elements of the framework, like the concepts of Extension, Source and Renderer and the APIs the developers will use to interact with them.
* MAFW Shared: This package provides means of share components among different applications using MAFW. It implements the logic behind the wrapper objects, as well as the concept of Shared playlists. It is composed of:
** [http://maemo.org/packages/view/libmafw-shared0/ libmafw-shared]: A library to use the shared components exposed by sharing services (extensions and shared playlists).
** [http://maemo.org/packages/view/mafw-dbus-daemon/ mafw-dbus-wrapper]: This service is the one responsible for loading extensions in separate processes and export their interfaces as [[Documentation/Maemo 5 Developer Guide/DBus|D-Bus]] services. These services are used by the wrapper objects defined in &lt;code&gt;libmafw-shared&lt;/code&gt; in the out-of-process use case.
** [http://maemo.org/packages/view/mafw-playlist-daemon/ mafw-playlist-daemon]: A daemon that provides an API for shared playlist manipulation and storage.
* Extensions: Extensions are provided as separate packages.

=== Getting started ===

MAFW is available as Debian packages, so it can be installed using tools like &lt;code&gt;dpkg&lt;/code&gt; or &lt;code&gt;apt&lt;/code&gt;.

MAFW can also be built from source. To build and install a MAFW package from source, move to the root directory of the source and build a MAFW package:

&lt;pre&gt;
./autogen.sh
make
make install
&lt;/pre&gt;

When building from source, one can also pass certain flags to the &lt;code&gt;autogen.sh&lt;/code&gt; script. Check the &lt;code&gt;configure.ac&lt;/code&gt; file for a list of available build flags for the module. Common and useful supported flags among all MAFW packages are:

* &lt;code&gt;--prefix=PATH&lt;/code&gt;, installs MAFW files into &lt;code&gt;PATH&lt;/code&gt;.
* &lt;code&gt;--disable-tests&lt;/code&gt;, disables tests (speeds up compilation time).
* &lt;code&gt;--enable-debug&lt;/code&gt;, compile with debug options enabled. Useful for debugging.

Also, when building MAFW from source, one should take into account the source dependencies. MAFW should be built in this order:

# mafw
# mafw-shared
# source and renderer plugins

====Initial preparations====

Before running MAFW applications, one should ensure the build environment is properly setup.

The first thing that you should check is the playlist daemon. This manual will cover the playlist daemon in more detail in later sections, but for now it is enough to know that this daemon provides functionality for applications to access and manipulate playlists.

In order to run the playlist daemon, one should execute the following command: 

 mafw-playlist-daemon -d

Also, if you decided to use out-of-process plugins, you must be sure these plugins are running (remember that out-of-process extensions live in separate processes).

There is a tool to load out-of-process extensions called &lt;code&gt;mafw-dbus-wrapper&lt;/code&gt;. In order to load a particular plugin in out-of-process mode, do the following: 

 mafw-dbus-wrapper PLUGIN &amp;

This command will load the specified plugin, searching for it in the MAFW plugin directory. For this purpose, &lt;code&gt;mafw-dbus-wrapper&lt;/code&gt; also accepts absolute paths to plugin files:

 mafw-dbus-wrapper /home/user/mafw-plugin/bar-mafw-plugin.so

Usually, one would not invoke &lt;code&gt;mafw-dbus-wrapper&lt;/code&gt; directly. Instead, it is recommended to create an init script to start all the plugins and the playlist daemon at boot time. Something like this:

 /etc/init.d/mafw [start|restart|stop]

As with many other Maemo components, take into account that running commands in a Scratchbox environment requires additional environment preparations. Particularly, the Maemo environment has to be running, and then any shell commands must be run using the &lt;code&gt;run-standalone.sh&lt;/code&gt; script, so they are get appropriate environment settings: Environment setup

&lt;pre&gt;
export DISPLAY=:2
sb-fremantle-init.sh start
run-standalone.sh mafw-playlist-daemon -d
run-standalone.sh mafw-dbus-wrapper PLUGIN &amp;
&lt;/pre&gt;

=== Application initialization ===

As MAFW is based on &lt;code&gt;GObject&lt;/code&gt;, the first step in writing a MAFW-based application is to initialize the &lt;code&gt;GType&lt;/code&gt; system. You can do this by invoking &lt;code&gt;g_type_init&lt;/code&gt; at the beginning of your program.

Of course, this step is not necessary if the developer is using another &lt;code&gt;GObject&lt;/code&gt;-based framework, like GTK+. In this case, initializing that framework already initializes the &lt;code&gt;GType&lt;/code&gt; system.

The next step is to check for available extensions (sources and renderers). This process may differ depending on whether you are using in-process or out-of-process extensions.

=== Loading extensions ===

This section explains how to load MAFW extensions in a program. The example in the [[#Code examples]] section provides complete source code examples illustrating the entire process.

====Loading out-of-process extensions====

As we already pointed out, with the out-of-process approach, extensions are loaded by the &lt;code&gt;mafw-dbus-wrapper&lt;/code&gt; in a separate address space and they are shared by all applications, which use these extensions through D-Bus services. In order to use these out-of-process extensions, the first step is to discover their availability via the bus. This is done by invoking &lt;code&gt;mafw_shared_init&lt;/code&gt; after getting a reference to the registry object with &lt;code&gt;mafw_registry_get_instance&lt;/code&gt;. Once the discovery has been started, your application will be notified of newly available extensions through signals. Likewise, when a certain extension is no longer available, a signal is sent to the application so that it can properly handle this.

The &lt;code&gt;MafwRegistry&lt;/code&gt; object is a singleton instance where all the available extensions are registered. It provides an interface for application developers to access the available sources and renderers. In the case of out-of-process extensions, the registry will provide proxies to the actual remote extensions that handle the D-Bus communications transparently for you.

It is also possible that extensions were loaded in the registry before the application attached its signal handlers. In this case, the application will not get any signals for these extensions and has to query the registry for them using &lt;code&gt;mafw_registry_get_renderers&lt;/code&gt; and &lt;code&gt;mafw_registry_get_sources&lt;/code&gt; functions. Please note that you should not free these lists of available extensions.

====Loading in-process extension====

Contrary to the out-of-process approach, in-process extensions are loaded in the same address space of the application's process. In this case we do not have to start a discovery process. Instead, we can either load all the available plugins or load specific plugins. As in the out-of-process case, this is done through the &lt;code&gt;MafwRegistry&lt;/code&gt; object. 

====Loading all available extensions====

After getting a reference to the registry, one should call &lt;code&gt;mafw_registry_load_plugins&lt;/code&gt;. 

====Loading extensions manually====

Individual extensions can be loaded manually by using &lt;code&gt;mafw_registry_load_plugin&lt;/code&gt; and declaring the plugin to load.

The second parameter of &lt;code&gt;mafw_registry_load_plugin&lt;/code&gt; can be just a filename (in this case, the default plugin directory will be used) or the absolute path of the plugin file. 

====Being aware of loaded extensions====

As in the out-of-process approach, the application has to be informed of loaded extensions. The same code as for the out-of-process case can be used here.

====Querying available extensions after loading====

This approach loads the extensions in the registry first and then queries it for the lists of available renderers and sources using &lt;code&gt;mafw_registry_get_renderers&lt;/code&gt; and &lt;code&gt;mafw_registry_get_sources&lt;/code&gt;. 

====Using signals and callbacks====

This approach is more asynchronous and it is recommended because it can easily handle sources or renderers added after the application was started. It is done by connecting callbacks to the &lt;code&gt;source-added&lt;/code&gt; and &lt;code&gt;renderer-added&lt;/code&gt; signals. As soon as a plugin is loaded, a signal is emitted and the application can react to it, preparing everything to use that extension.

====In-process versus out-of-process extensions====

There are a few issues to consider when making the decision of using in-process or out-of-process extensions:

* In-process extensions do not need inter-process communications, speeding up certain operations.
* Out-of-process extensions use multiple processes and D-Bus (which serializes and integrates these communications nicely with the main loop) avoiding the need of threads in the main application in most cases. In the in-process case, developers may need to use threads or idle calls to execute certain extension operations in order to avoid blocking the user interface while the extensions work (for example source browsing).
* In the in-process case, signals coming from extensions are normal &lt;code&gt;GObject&lt;/code&gt; signals. However, in the out-of-process case, these signals have to be sent through D-Bus. For developers, this means that callbacks for these signals are not invoked as soon as the signal is emitted, but as soon as the D-Bus message is received and processed by the main loop.

=== Playlists ===

This section explains how to use playlists in a program. During this explanation, it is recommended to follow along with the [[#Playlist example]] section for a complete source code example illustrating most of the concepts explained below.

====The playlist daemon====

MAFW playlists are shared, this means they are stored and exposed by the &lt;code&gt;mafw-playlist-daemon&lt;/code&gt;, which makes them available for all MAFW-based applications, that can access and manipulate them concurrently through its API.

Because the playlists are always remote objects stored and handled by a separate process, whenever the application needs to deal with a playlist, there is a need for inter-process communication. However the communication is hidden from developers by using a proxy object. These proxy objects allow developers to interact with the playlists as if they were local objects, making the underlying communications with the playlist daemon transparent for the application developer.

Operations like creating or removing a playlist or obtaining the list of available playlists, are done through the &lt;code&gt;MafwPlaylistManager&lt;/code&gt; object. This object acts as a proxy of the playlist daemon for playlist-related operations that do not deal with a particular playlist. A reference to this object can be obtained using &lt;code&gt;mafw_playlist_manager_get&lt;/code&gt;.

The following sections explain how to use the &lt;code&gt;MafwPlaylistManager&lt;/code&gt; and proxy playlist objects in more detail.

====Creating playlists====

The method &lt;code&gt;mafw_playlist_manager_create_playlist&lt;/code&gt; is responsible for requesting the creation of a new playlist from the playlist daemon. If the operation is successful, it returns a reference to a &lt;code&gt;MafwProxyPlaylist&lt;/code&gt; that will act as a local representation of the remote playlist created in the playlist daemon. If the requested playlist name has already been used (that is, another playlist with that name already exists), no playlist is created and a reference to the already existing playlist is returned. In order to check if a certain playlist already exists, the developer can use &lt;code&gt;mafw_playlist_manager_get_playlists&lt;/code&gt; or &lt;code&gt;mafw_playlist_manager_list_playlists&lt;/code&gt; to list the playlist names that have been registered already.

It is important to consider the shared nature of the MAFW playlists. From the developer point of view, you should never assume that a certain MAFW-based application is the only one interacting with a playlist.

The application can install a signal handler in order to be notified of the creation of new playlists. This can be done by connecting to the &lt;code&gt;playlist-created&lt;/code&gt; signal.

Although new playlists can be used right away after calling &lt;code&gt;mafw_playlist_manager_create_playlist&lt;/code&gt;, it is better to handle newly created playlists through the &lt;code&gt;playlist-created&lt;/code&gt; callback, because this will work also for playlists created by other MAFW-based applications.

It is possible to import an existing playlist file or the contents of a particular container of a source extension as a MAFW playlist with the help of &lt;code&gt;mafw_playlist_manager_import&lt;/code&gt;. If this method is passed a URI as parameter, it will try to parse the file pointed by that URI and populate a playlist with the entries of the playlist file. Likewise, if a source object identifier is used instead of a URI, and it points to a valid source container, the container will be browsed, and the contents will be used to populate the playlist. If the object identifier points to a single media item instead of a container, the associated media will be treated as as a playlist file, parsing the file it points to and adding its entries to the playlist.

After a playlist has been imported, the framework will invoke the callback passed as parameter to &lt;code&gt;mafw_playlist_manager_import&lt;/code&gt;, with a reference to the imported playlist proxy object. The name of the playlist will be the URI pointing to the file, or the source container title. If a playlist with this name existed already, then a number will be added after the name as a suffix to ensure a unique name is assigned. After this, the &lt;code&gt;MafwPlaylist::playlist-created&lt;/code&gt; signal will be emitted.

====Removing playlists====

Playlist deletion is achieved through the &lt;code&gt;MafwPlaylistManager&lt;/code&gt; object in a similar manner as the creation of new playlists.

The first step is to obtain a reference to the playlist that has to be removed. After a reference has been obtained, &lt;code&gt;mafw_playlist_manager_destroy_playlist&lt;/code&gt; is ready to remove it.

If playlist removal was not possible, the playlist manager can also emit the signal &lt;code&gt;playlist-destruction-failed&lt;/code&gt;. In general, this happens when trying to remove playlists that are being used somewhere else in the application or when they are being used by some other application.

When an application wants to mark a playlist as being in use, it should call &lt;code&gt;mafw_playlist_increment_use_count&lt;/code&gt;. When an application tries to remove a playlist which reference count is greater than zero, the operation will fail. Renderers should always increment the reference count of a playlist when it is assigned and decrement when it is unassigned.

As in the case of playlist creation, it is also a good idea to install a signal handler for playlist deletion so the application can deal with this situation properly. For example, another MAFW-based application may attempt to destroy a playlist that your application is showing as available to the user in a playlist selection widget.

====Handling playlist elements====

=====Inserting items=====

Adding elements to the playlist is done by using &lt;code&gt;mafw_playlist_insert_item&lt;/code&gt; and specifying the index where the item should be inserted.

A signal will be emitted whenever a playlist is modified. Notice that other MAFW-based applications may be modifying the playlists in use by your application at any moment. By connecting to these signals, your application should be able to handle this situation properly.

This &lt;code&gt;MafwPlaylist::contents-changed&lt;/code&gt; signal is used to signal changes of any kind. The &lt;code&gt;from&lt;/code&gt; parameter is the index of the first element affected by the change, &lt;code&gt;nremoved&lt;/code&gt; is the number of removed elements and &lt;code&gt;nreplaced&lt;/code&gt; represents the number of elements replaced. For example, in case of insertion, the signal will be emitted with the insertion index as &lt;code&gt;from&lt;/code&gt;, 0 as &lt;code&gt;nremoved&lt;/code&gt; and 1 as &lt;code&gt;nreplaced&lt;/code&gt;. More information is available in the [http://maemo.org/api_refs/5.0/5.0-final/mafw/ MAFW API reference].

Also, the convenience function &lt;code&gt;mafw_playlist_append_item&lt;/code&gt; can be used to append items to the tail of a playlist.

=====Removing items=====

As in the case of insertion, one only needs to call the method on the playlist proxy object with the index of the element to remove.

The signal received when modifying the playlist is the same as when removing elements. In this case, &lt;code&gt;nremoved&lt;/code&gt; would be 1 and &lt;code&gt;nreplaced&lt;/code&gt; would be the difference between the number of elements in the playlist and the index of the removed element plus the number of items that were removed (1). There are more examples available in the [http://maemo.org/api_refs/5.0/5.0-final/mafw/ MAFW API reference].

=====Moving items=====

Moving one element from one index to another can be done by calling &lt;code&gt;mafw_playlist_move_item&lt;/code&gt;.

The example moves the element at position 3 to position 1, moving elements in positions 1 and 2 forward to positions 2 and 3. When invoking this method, the signal &lt;code&gt;item-moved&lt;/code&gt; is emitted.

====Getting information from playlists====

=====Synchronously without metadata=====

Developers traverse a playlist with a loop after obtaining the size of the playlist with &lt;code&gt;mafw_playlist_get_size&lt;/code&gt;. For each element in the playlist one can use &lt;code&gt;mafw_playlist_get_item&lt;/code&gt; to obtain the object identifier assigned to that entry. In order to obtain information other than the object identifier, the asynchronous API must be used. 

=====Asynchronously with metadata=====

In this case, &lt;code&gt;mafw_playlist_get_items_md&lt;/code&gt; should be used, which allows you to obtain metadata for the entries enclosed in a particular range of the playlist. This method requires a callback function that will be invoked once per entry in the playlist. The callback is passed a hash table with metadata associated to the media resource associated to the object identifier specified by &lt;code&gt;object_id&lt;/code&gt;. This hash table may contain metadata with multiple values for each metadata key and this is why MAFW provides &lt;code&gt;mafw_metadata_first&lt;/code&gt; to access the first (or only) value in the hash table for a particular metadata key. In order to obtain all the values for a particular metadata key, the developer can use the normal hash table API. In this case, if there is only one value for that metadata key, the hash table will return a &lt;code&gt;GValue&lt;/code&gt; holding the value. If it is multi-valued, it will return a &lt;code&gt;GValueArray&lt;/code&gt;. Take a look at the [http://maemo.org/api_refs/5.0/beta/mafw/ MAFW API reference] for more info.

=====Shuffle and unshuffle=====

When a playlist is created, it is unshuffled, which means that playing its contents in a renderer would play the items in the playlist in the same order they were inserted.

It is also possible to shuffle the elements in the playlist using &lt;code&gt;mafw_playlist_shuffle&lt;/code&gt;, changing the default playing order.

The method &lt;code&gt;mafw_playlist_get_starting_index&lt;/code&gt; can be called to obtain the index and object identifier of the first item of the playlist according to the playing order. The methods &lt;code&gt;mafw_playlist_get_next&lt;/code&gt; and &lt;code&gt;mafw_playlist_get_prev&lt;/code&gt; can be used to move to the next and previous elements respectively.

Because playlists are played in renderers, the only way to obtain information on which item of a playlist is being played is to obtain it from a renderer object to which the playlist has been assigned. The &lt;code&gt;MafwRenderer::media-changed&lt;/code&gt; signal is emitted when the selected item in the playlist assigned to a particular renderer changes.

The application developer can also query the currently selected entry in the playlist assigned to a renderer using the method &lt;code&gt;mafw_renderer_get_status&lt;/code&gt;. See the [http://maemo.org/api_refs/5.0/5.0-final/mafw// MAFW API reference] for details.

=== Sources ===

This section explains how to use sources in a program. During this explanation it is recommended to follow the [[#Source browse example|source browse example]] and the [[#Source metadata example|source metadata example]] for complete source code examples illustrating most of the concepts explained below.

====Introduction====

Sources are used to get access to multimedia repositories. For example, a source might provide access to UPnP servers, the multimedia files located at the local filesystem, or those housed at Bluetooth devices, etc. The main target of sources is to provide a way to query and retrieve information about available media files.

Sources identify media items by means of object identifiers. These identifiers are strings in the form:
 &lt;Source-ID&gt;::&lt;Item-ID&gt;

consisting of the Source ID of the originating source and a unique (within the individual scope of the source) Item ID, separated by two colons. Each object ID should be unique, persistent and portable, if possible. Applications may assume that an object ID corresponds to a single content item, and this should be maintained across shutdowns, reboots and reinstalls. A specific object ID is meaningful only for the source that has produced it.

Sources provide a few services to applications, however, the most important are:

* Browsing
* Metadata retrieval

Browsing is the operation used to explore, query and filter contents from a particular source of media. Developers will use the browse interface, for example, to get a list of the songs or videos available, to access the songs of a particular artist, etc. Sources provide access to their contents exposing them through the browse interface using a container model: there is a root container, which object ID is &lt;Source-ID&gt;::, any container can contain other containers or media resources, very much like navigating a file system. The structure of containers exposed by the source is decided by the source developer.

Metadata retrieval is the operation used to obtain meta-information from a certain media resource. Developers will use this interface to obtain information like the title, artist or album of a particular media.

In addition to getting content information, one can also modify the contents with optional methods, intended for creating and removing contents from the source, as well as updating metadata for particular media items.

Sources are represented by the &lt;code&gt;MafwSource&lt;/code&gt; class, which inherits from &lt;code&gt;MafwExtension&lt;/code&gt;. Thus, sources have &lt;code&gt;name&lt;/code&gt;, &lt;code&gt;uuid&lt;/code&gt; and &lt;code&gt;plugin&lt;/code&gt; properties and support run-time properties too. This class is intended to be an abstract base class for any source and it provides the definition of various of the interfaces commented above: &lt;code&gt;mafw_source_browse&lt;/code&gt;, &lt;code&gt;mafw_source_get_metadata&lt;/code&gt;, &lt;code&gt;mafw_source_set_metadata&lt;/code&gt;, etc.

Application developers will use sources to browse available media resources and select media items to create playlists. Once a playlist has been created it can be assigned to a renderer to play its contents.

Sources can also communicate certain events using signals:

* &lt;code&gt;MafwSource::metadata-changed&lt;/code&gt;, informs about metadata changes in a particular media provided by a given source.
* &lt;code&gt;MafwSource::container-changed&lt;/code&gt;, informs about changes in the contents of a certain container provided by a given source.

====Browsing the contents of a source====

The major use case of a source is browsing. Developers can explore the contents of a particular container exposed by the source using the method &lt;code&gt;mafw_source_browse&lt;/code&gt; and the object identifier of the container. The list of parameters is:

* Source, the MafwSource instance to be browsed.
* ObjectID, the object identifier of the container to be browsed.
* Recursive, whether the container should be browsed recursively or not.
* Filter, specifies an optional filter string in a syntax similar to that used in LDAP search filters.
* Sort criteria, a string used to specify the criteria that should be followed to sort the browse results.
* Keys, metadata keys we are interested in retrieving along with each object identifier returned with the browse operation.
* Offset, the index of the first item to retrieve from the list of items that match the browse query.
* Offset, the maximum number of elements to retrieve from the list of items that match the browse query, starting at the index specified by the Offset parameter.
* Callback, this callback function is called whenever a matching result is found.
* Callback user data, user data for the callback.

For more details, please check the MAFW API reference.

The &lt;code&gt;mafw_source_browse function&lt;/code&gt; returns a browse identifier that can be used to match browse results with the corresponding browse operations.

The results of the browse call are returned using the provided callback. This callback is invoked each time a matching result is found by the source. Each time the callback is invoked it informs about:

* Source, the &lt;code&gt;MafwSource&lt;/code&gt; that is producing the result.
* Browse ID, that allows the developer to match a result with a particular browse operation.
* Remaining, which informs about the remaining items that have matched the browse query and are pending to be sent through the callback. When this value reaches 0 it means that all the results have been sent and the operations has finished.
* Index, the index of the current item in the list of matched results.
* Object ID, the object ID of the current item.
* Metadata, the metadata values associated to the current item.
* User Data, user data of the callback.
* Error, a &lt;code&gt;GError&lt;/code&gt; that, if set, informs of an error in the browse operation.

Also, in case that no results match the browse operation, the callback is invoked once, with the object ID parameter set to &lt;code&gt;NULL&lt;/code&gt;.

====Getting metadata====

Another important use case of a source is to provide metadata about particular media. This can be achieved using &lt;code&gt;mafw_source_get_metadata&lt;/code&gt;. This function queries metadata for a particular object ID (which should be valid for the source being queried, probably returned by a previous browse operation). The parameters passed to &lt;code&gt;mafw_source_get_metadata&lt;/code&gt; are:

* Source, the &lt;code&gt;MafwSource&lt;/code&gt; to be queried.
* Object ID, the object ID to get metadata from.
* Keys, metadata information we are interested in.
* Callback, the callback used to get the results.
* User data, the user data for the callback.

The result of the metadata operation is returned using the callback provided. The parameters passed to the callback function are:

* Source, the &lt;code&gt;MafwSource&lt;/code&gt; that produced the result.
* Object ID, the object ID the metadata comes from.
* Metadata, the metadata values.
* User data, the user data for the callback.
* Error, a &lt;code&gt;GError&lt;/code&gt; that, if set, informs of an error in the metadata retrieval operation.

This callback should be called only once.

====Using a source====

Sources are extensions, therefore, the first step is to obtain a reference to them using the framework registry. Please see the section on [[#Loading extensions|loading extensions]] for more information on this topic.

Once a reference to the source of interest has been obtained, the developer can start to use it. The way sources are used is usually this:

* User wants to browse the contents of the source. The application should browse the root container of the selected source using &lt;code&gt;mafw_source_browse&lt;/code&gt; and show the results to the user. The application developer should request the metadata &lt;code&gt;MAFW_METADATA_KEY_MIME&lt;/code&gt; to distinguish containers from media items.
* Once users have obtained the results of the browse operation, they may want to browse one of the containers contained in the root container, in this case the application should issue a new browse operation with the Object ID of the selected container, repeating the process.
* Also, users may want to select browse results and include them in a playlist to be played later on in a renderer.
* The user can also request more metadata from a specific item obtained in the browse operation, to do so, the developer should use &lt;code&gt;mafw_source_get_metadata&lt;/code&gt; passing the Object ID of the selected item.

For more information about the source API, please check the MAFW API reference. The reader can also check the [[#Source browse example|source browse example]] and the [[#Source metadata example|source metadata example]].

=== Renderers ===

This section explains how to use renderers in a program. During this explanation it is recommended to follow section [[#Renderer example]] for a complete source code example illustrating many of the concepts explained below.

====Introduction====

Renderers are used to control media playback, and they are designed so that any of them can play content from any source, and can be thought of as a GStreamer chain, although this might usually not be the actual case.

&lt;code&gt;MafwRenderer&lt;/code&gt; is a subclass of &lt;code&gt;MafwExtension&lt;/code&gt;, so, it inherits its semantics. Thus, renderers have &lt;code&gt;name&lt;/code&gt;, &lt;code&gt;uuid&lt;/code&gt; and &lt;code&gt;plugin&lt;/code&gt; properties and support run-time properties too. This class is intended to be an abstract base class for any renderer and it provides various playback-related operations: &lt;code&gt;mafw_renderer_play&lt;/code&gt;, &lt;code&gt;mafw_renderer_stop&lt;/code&gt;, &lt;code&gt;mafw_renderer_pause&lt;/code&gt;, &lt;code&gt;mafw_renderer_resume&lt;/code&gt;, etc. that any application can use to control media playback in a particular renderer.

An application can assign a playlist to a renderer. When this is done, the renderer will take over the responsibility for managing it properly, saving some effort from the application developer. For example, the renderer can detect an &quot;end of stream&quot; situation and move automatically to the next item in the playlist, it can readjust automatically when the playlist is being edited, rewind the playlist automatically when the end of the playlist has been reached or even restart playback if the user has enabled the repeat mode in the playlist.

The application can also control playlist playback, commanding the renderer to move to any item in the playlist at any moment.

Whenever a relevant change happens in the renderer, it notifies the application about it, so it can react properly. For example, if a renderer stops playing it notifies about its state change, so that the application can enable and/or disable options according to this situation. Renderers must emit signals when their state, their playlist or the media they are ready to play change.

Renderers also emit signals to inform about buffering progress (&lt;code&gt;MafwRenderer::buffering-info&lt;/code&gt;) in the case of media streams, and metadata in the case the renderer is able to extract metadata from the media it is playing.

====State management====

Renderers behave like state machines. Operations may or may not be valid depending on the renderer's state, or may change their behavior depending on it. For example, a STOP command may be ignored if the renderer is already stopped, but otherwise it should stop any ongoing playback.

The renderer's state machine has four states:

* Stopped
* Transitioning
* Playing
* Paused

A renderer is Stopped if it is not playing any media. Whenever the renderer receives the order to play some media content, it moves to the Transitioning state. In this state, the renderer attempts to get anything it may need to play the selected item, for example, it should get the URI of the item to be played by invoking &lt;code&gt;mafw_source_get_metadata&lt;/code&gt;, and then use this URI to start playback using the underlying playback engine (for example, GStreamer). The renderer moves to the Playing state once playback has been started by the underlying playback engine. During this state, the user can call &lt;code&gt;mafw_renderer_pause&lt;/code&gt;, which makes the renderer move to Paused state. In this state, it is possible to call mafw_renderer_resume to continue playback. Also, the user may call &lt;code&gt;mafw_source_stop&lt;/code&gt; at any time, making the renderer move back to the Stopped state again.

Application developers should react to state changes in the renderer and update the application accordingly. For example, when the renderer is in the Stopped state the developer may want to disable the Pause button, however if the renderer state is Playing it may be enabled.

Renderers inform about their state changes using the &lt;code&gt;MafwRenderer::state-changed&lt;/code&gt; signal. Application developers should connect to this signal and place any state related management code there. It is also possible to query a renderer about its state by using &lt;code&gt;mafw_renderer_get_status&lt;/code&gt;.

====Assigning media to a renderer====

In order to play content in a renderer, a playlist should be created and assigned to it. For this purpose developers have to use &lt;code&gt;mafw_renderer_assign_playlist&lt;/code&gt;. Once a playlist has been assigned to the renderer the user may choose to start playback right away (starting from the first item in the playlist) or choose a specific item to start from. For the latter case, the renderer offers the methods &lt;code&gt;mafw_renderer_next&lt;/code&gt;, &lt;code&gt;mafw_renderer_previous&lt;/code&gt; and &lt;code&gt;mafw_renderer_goto_index&lt;/code&gt;, that allow the user to select the next and previous items to the one currently selected or move directly to a particular item in the playlist. Also, the currently selected media may change due to other factors, for example, when playback of the current item in the playlist finishes the renderer will move to the next automatically, it might also happen in the case of errors that do not allow to play the current item, in this scenario the renderer may choose to automatically move to the next item in the playlist too.

No matter the reason that has triggered a change in the current media selected in the renderer, it will notify the application about the change by emitting a &lt;code&gt;MafwRenderer::media-changed&lt;/code&gt; signal. Application developers should connect to this signal to update the application accordingly whenever new media is selected in the renderer. It is also possible to query a renderer about its current media by using &lt;code&gt;mafw_renderer_get_status&lt;/code&gt;.

====Error management====

The renderer API functions always receive a callback as parameter. These functions include a &lt;code&gt;GError&lt;/code&gt; parameter that is set in case an error happened during the execution of the operation. Developers should provide callback functions and check this error parameter to handle error conditions properly. If the error parameter is &lt;code&gt;NULL&lt;/code&gt; it means the operation was executed successfully.

There are certain errors that may happen after the callback has been called. For example, a call to &lt;code&gt;mafw_renderer_play&lt;/code&gt; may have finished without error, but after some time the underlying playback engine may detect an error (corrupted data, connection lost in the case of streams, etc). Because of this, there is another channel for error communication, in the form of signals. Developers should also connect to the &lt;code&gt;MafwExtension::error&lt;/code&gt; signal to handle these errors properly.

====Using a renderer====

Renderers are extensions, therefore, the first step is to obtain a reference to them using the framework registry. Please check the section on [[#Loading extensions|loading extensions]] for more information on this topic.

Once a reference to a renderer has been obtained, the next step is to assign a playlist to it with &lt;code&gt;mafw_renderer_assign_playlist&lt;/code&gt;. And start playing at any moment using &lt;code&gt;mafw_renderer_play&lt;/code&gt;. From that moment on, other playback control functions like &lt;code&gt;mafw_renderer_pause&lt;/code&gt; or &lt;code&gt;mafw_renderer_stop&lt;/code&gt; can also be used.

Usually, it the developer will also want to connect to the renderer signals to capture and report playback errors, enable or disable controls in the UI whenever the renderer playback state or the currently selected media changes.

For further details on the renderer API, please check the MAFW API reference.

=== Built-in plugins ===

MAFW comes with a set of plugins already available. In order to obtain these plugins one has to install the appropriate MAFW packages. Currently, each plugin is delivered in a separate package. Below is a list of these plugins along with a brief description of each one:

* Tracker Source: A source plugin implementing a &lt;code&gt;MafwSource&lt;/code&gt; for accessing multimedia files stored in the local filesystem using Tracker as underlying engine.
* UPnP Source: A source plugin implementing a &lt;code&gt;MafwSource&lt;/code&gt; for accessing multimedia files stored in UPnP servers. This plugin instantiates one source extension per UPnP server discovered. The plugin is implemented using gUPnP.
* IRadio Source: A source plugin implementing a &lt;code&gt;MafwSource&lt;/code&gt; for providing support for multimedia bookmarks.
* GStreamer Renderer: A renderer plugin implementing a &lt;code&gt;MafwRenderer&lt;/code&gt; for playback using GStreamer as playback engine.

=== Creating plugins ===

This sections provides some information for developers interested in creating new extension plugins (Sources and/or Renderers).

====Creating a source====

A MAFW source is an element that can provide media information, this means available media resources over a protocol and their metadata. Accessing the media files stored in your local file system or the media served through UPnP servers are some examples.

Creating a MAFW source means creating a shared library containing a &lt;code&gt;GObject&lt;/code&gt; that inherits from &lt;code&gt;MafwSource&lt;/code&gt; and provide an implementation for some of the methods defined in that class.

All the methods have a default implementation in &lt;code&gt;MafwSource&lt;/code&gt; that raise an error by default, so it is not mandatory to implement all the methods, but only the ones you want to support. The most important ones are:

* &lt;code&gt;mafw_source_browse&lt;/code&gt;: it is used to query the source about the available media.
* &lt;code&gt;mafw_source_cancel_browse&lt;/code&gt;: &lt;code&gt;mafw_source_browse operations&lt;/code&gt; can take some time, so this method is intended to cancel ongoing browse operations.
* &lt;code&gt;mafw_source_get_metadata&lt;/code&gt;: it is used to request the metadata associated to a given media served by a source. For example, when a renderer tries to play a certain media included in a playlist, it has to obtain the URI associated to that media, this is done by calling &lt;code&gt;mafw_source_get_metadata&lt;/code&gt; and passing the object identifier of the media.

Other methods are those related to creation or destruction of media items or metadata modification. Even if your source does not need to implement these methods, it may still be interesting to provide dummy implementations so that other components that use the source do not get errors then using these services. For example, a renderer may use the &lt;code&gt;mafw_source_set_metadata&lt;/code&gt; method to automatically increase the play-count of media items when played. If a source returns an error when this method is invoked instead of of providing an empty implementation, the application could end up receiving that error message or the renderer may abort the playback operation, which may or may not be the intended behaviors.

* &lt;code&gt;mafw_source_set_metadata&lt;/code&gt;: Sets metadata for a particular media resource.
* &lt;code&gt;mafw_source_create_object&lt;/code&gt;: Adds a new media resource or container to a particular source.
* &lt;code&gt;mafw_source_destroy_object&lt;/code&gt;: Removes a media item or container from a particular source.

Other than creating a &lt;code&gt;GObject&lt;/code&gt; the developer has to define a symbol containing the plugin name and functions to initialize and deinitialize the plugin. An example of this is: Creating a source plugin

&lt;source lang=&quot;c&quot;&gt;
# define MAFW_SOURCE_PLUGIN_NAME &quot;MySource-Plugin&quot;
# define MAFW_SOURCE_NAME        &quot;My Source&quot;
# define MAFW_SOURCE_UUID        &quot;mysource&quot;
static gboolean mafw_my_source_initialize(MafwRegistry *registry,
					  GError **error);
static void mafw_my_source_deinitialize(GError **error);
/*
 * Registers the plugin descriptor making this plugin available to the
 * framework and applications
 */
G_MODULE_EXPORT MafwPluginDescriptor mafw_my_source_plugin_description = {
	{ .name = MAFW_MY_SOURCE_PLUGIN_NAME },
	.initialize = mafw_my_source_initialize,
	.deinitialize = mafw_my_source_deinitialize,
};
/*
 * Plugin initialization. Sets UUID and name of this source and then
 * adds it to the registry, making it available to applications.
 */
static gboolean
mafw_my_source_initialize(MafwRegistry *registry,
                          GError **error)
{
	MafwMySource *self = MAFW_MY_SOURCE(mafw_my_source_new());
	mafw_registry_add_extension(registry, MAFW_EXTENSION(self));
	g_object_unref(self);
	return TRUE;
}
/*
 * Plugin deinit
 */
static void
mafw_my_source_deinitialize(GError **error) { }
&lt;/source&gt;

The code above shows a plugin that can be recognized and loaded. The &lt;code&gt;mafw_my_source_initialize&lt;/code&gt; function creates an instance of the source by using the object constructor method, and registers the source in the registry, making it available to applications. The object constructor method

&lt;source lang=&quot;c&quot;&gt;
MafwSource *mafw_my_source_new(void)
{
	return MAFW_MY_SOURCE(g_object_new(MAFW_TYPE_MY_SOURCE,
					&quot;plugin&quot;, MAFW_MY_SOURCE_PLUGIN_NAME,
					&quot;uuid&quot;, MAFW_MY_SOURCE_UUID,
					&quot;name&quot;, MAFW_MY_SOURCE_NAME,
					NULL));
}
&lt;/source&gt;

Notice that the plugin initialization function may instantiate and register several objects (sources in this case). For example, a UPnP plugin may check for available UPnP servers and register a source object per server discovered.

For further details about the parameters received by functions and a deeper description of the &lt;code&gt;MafwSource&lt;/code&gt; class, please take a look at the MAFW API reference.

====Creating a renderer====

A renderer is an element capable of playing media elements and playlists of media elements.

As in the case of MAFW sources, in order to create a renderer plugin a shared library should be implemented, as well as a module initializer and a &lt;code&gt;GObject&lt;/code&gt; inheriting from &lt;code&gt;MafwRenderer&lt;/code&gt;. An example would be very similar to the MAFW source's one.

Of course, the methods that have to be redefined are the ones defined at &lt;code&gt;MafwRenderer&lt;/code&gt;, and again, the developer may choose not to provide an implementation for some of them. The &lt;code&gt;MafwRenderer&lt;/code&gt; class defines many methods that can be classified like this:

* Playback: Those used to control playback (play, stop, pause, resume, volume, etc)
* Playlist management: Those used to assign a playlist to the renderer and manipulate it.
* Status: Used to query the status of the renderer, like its current playback state or selected media.
* Position: Used to query the current playback position or set it (seeking).

Renderers also define some signals that should be taken into account, such as:

* &lt;code&gt;MafwRenderer::playlist-changed&lt;/code&gt;, which should be emitted when a new playlist is assigned to the renderer.
* &lt;code&gt;MafwRenderer::media-changed&lt;/code&gt;, which should be emitted when new media is selected in the renderer.
* &lt;code&gt;MafwRenderer::state-changed&lt;/code&gt;, which should be emitted when the renderer changes from on state to another.
* &lt;code&gt;MafwRenderer::buffering-info&lt;/code&gt;, which should be emitted to inform about the buffering progress when playing streams.
* &lt;code&gt;MafwRenderer::metadata-changed&lt;/code&gt;, which should be emitted when the renderer obtains metadata information from the currently selected media.

====Other issues====

=====Properties=====

&lt;code&gt;MafwExtension&lt;/code&gt; objects (renderers and sources) can define properties (&lt;code&gt;MafwExtension&lt;/code&gt; properties, not &lt;code&gt;GObject&lt;/code&gt;'s) to configure them on execution time. To use them, get and set functions have to be provided and hooked in the &lt;code&gt;class_init&lt;/code&gt; method: Using extension properties

&lt;source lang=&quot;c&quot;&gt;
static void
mafw_my_renderer_get_property(MafwExtension *self,
	 		      const gchar *key,
			      MafwExtensionPropertyCallback callback,
			      gpointer user_data)
{
	MafwMyRenderer *renderer;
	GValue *value = NULL;
	GError *error = NULL;
	g_return_if_fail(MAFW_IS_MY_RENDERER(self));
	g_return_if_fail(callback != NULL);
	g_return_if_fail(key != NULL);
	renderer = MAFW_MY_RENDERER(self);
	if (!strcmp(key, MAFW_PROPERTY_RENDERER_VOLUME)) {
		value = g_new0(GValue, 1);
		g_value_init(value, G_TYPE_UINT);
		g_value_set_uint(value, volume);
	}
	else if (!strcmp(key, MAFW_PROPERTY_RENDERER_MUTE)) {
           ...
	}
	else {
		/* Unsupported property */
		error = g_error_new(MAFW_MY_RENDERER_ERROR,
				    MAFW_EXTENSION_ERROR_GET_PROPERTY,
				    &quot;Unsupported property&quot;);
	}
	callback(self, key, value, user_data, error);
}
static gboolean
mafw_my_renderer_set_property(MafwExtension *self,
                              const gchar *key,
                              const GValue *value)
{
	MafwMyRenderer *renderer;
	g_return_if_fail(MAFW_IS_MY_RENDERER(self));
	g_return_if_fail(key != NULL);
	renderer = MAFW_MY_RENDERER(self);
	if (!strcmp(key, MAFW_PROPERTY_RENDERER_VOLUME)) {
		guint volume = g_value_get_uint(value);
		volume = CLAMP(volume, 0, 100);
                _do_set_volume(renderer, volume);
	}
	else if (!strcmp(key, MAFW_PROPERTY_RENDERER_MUTE)) {
         ...
        }
	else {
		/* Unsupported property */
                return FALSE;
	}
	mafw_extension_emit_property_changed(self, key, value);
        return TRUE;
}
static void mafw_my_renderer_class_init(MafwMyRendererClass *klass)
{
        ...
        MAFW_EXTENSION_CLASS(klass)-&gt;get_extension_property =
          (gpointer) mafw_my_renderer_get_property;
        MAFW_EXTENSION_CLASS(klass)-&gt;set_extension_property =
          (gpointer) mafw_my_renderer_set_property;
        ...
}
&lt;/source&gt;

Properties declaration is done in the object's &lt;code&gt;init&lt;/code&gt; function: Registering extension properties

&lt;source lang=&quot;c&quot;&gt;
static void
mafw_my_renderer_get_property(MafwExtension *self,
	 		      const gchar *key,
			      MafwExtensionPropertyCallback callback,
			      gpointer user_data)
{
	MafwMyRenderer *renderer;
	GValue *value = NULL;
	GError *error = NULL;
	g_return_if_fail(MAFW_IS_MY_RENDERER(self));
	g_return_if_fail(callback != NULL);
	g_return_if_fail(key != NULL);
	renderer = MAFW_MY_RENDERER(self);
	if (!strcmp(key, MAFW_PROPERTY_RENDERER_VOLUME)) {
		value = g_new0(GValue, 1);
		g_value_init(value, G_TYPE_UINT);
		g_value_set_uint(value, volume);
	}
	else if (!strcmp(key, MAFW_PROPERTY_RENDERER_MUTE)) {
           ...
	}
	else {
		/* Unsupported property */
		error = g_error_new(MAFW_MY_RENDERER_ERROR,
				    MAFW_EXTENSION_ERROR_GET_PROPERTY,
				    &quot;Unsupported property&quot;);
	}
	callback(self, key, value, user_data, error);
}
static gboolean
mafw_my_renderer_set_property(MafwExtension *self,
                              const gchar *key,
                              const GValue *value)
{
	MafwMyRenderer *renderer;
	g_return_if_fail(MAFW_IS_MY_RENDERER(self));
	g_return_if_fail(key != NULL);
	renderer = MAFW_MY_RENDERER(self);
	if (!strcmp(key, MAFW_PROPERTY_RENDERER_VOLUME)) {
		guint volume = g_value_get_uint(value);
		volume = CLAMP(volume, 0, 100);
                _do_set_volume(renderer, volume);
	}
	else if (!strcmp(key, MAFW_PROPERTY_RENDERER_MUTE)) {
         ...
        }
	else {
		/* Unsupported property */
                return FALSE;
	}
	mafw_extension_emit_property_changed(self, key, value);
        return TRUE;
}
static void mafw_my_renderer_class_init(MafwMyRendererClass *klass)
{
        ...
        MAFW_EXTENSION_CLASS(klass)-&gt;get_extension_property =
          (gpointer) mafw_my_renderer_get_property;
        MAFW_EXTENSION_CLASS(klass)-&gt;set_extension_property =
          (gpointer) mafw_my_renderer_set_property;
        ...
}
&lt;/source&gt;

The code shows examples of renderer properties, but the same could be applied to sources (as this is a mechanism defined for any kind of extension), for example, a slow source could use properties to define an eager vs. lazy strategy or the use of caches.


==Code examples==

This section contains a few source code exampled that illustrate how to use MAFW. These examples are referenced from other parts of this tutorial.

===Source browse example ===

This program is a simple command line program that allows the user to browse the contents of arbitrary containers of the local filesystem source using the &lt;code&gt;mafw-tracker-source&lt;/code&gt; plugin. So, be sure you have this plugin installed (and running if you want to use it in out-of-process mode)! &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'''To build the example''': Source browse example

&lt;pre&gt;
libtool --mode=link gcc -o mafw-browse-example \
 `pkg-config --cflags --libs mafw mafw-shared` mafw-browse-example.c
&lt;/pre&gt;

'''To run the example''':

 run-standalone.sh ./mafw-browse-example &lt;object-id&gt;

For example, the object identifier of the root container of this source is ''localtagfs::''

 run-standalone.sh ./mafw-browse-example localtagfs::

'''The source code''': Source browse example

&lt;source lang=&quot;c&quot;&gt;
/* 
The code examples copyrighted by Nokia Corporation that are included to
this material are licensed to you under following MIT-style License:

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
&quot;Software&quot;), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/

#include &lt;string.h&gt;
#include &lt;stdlib.h&gt;

#include &lt;glib.h&gt;

#include &lt;libmafw/mafw.h&gt;
#include &lt;libmafw/mafw-log.h&gt;
#include &lt;libmafw/mafw-registry.h&gt;
#include &lt;libmafw-shared/mafw-shared.h&gt;

#undef G_LOG_DOMAIN
#define G_LOG_DOMAIN &quot;mafw-example&quot;

#define WANTED_SOURCE     &quot;Mafw-Tracker-Source&quot;

MafwSource *app_source = NULL;
GMainLoop * main_loop = NULL;

/*
 * This callback is invoked whenever a browse result is available
 */
static void
browse_request_cb (MafwSource *source,
		   guint browse_id,
		   gint remaining,
		   guint index,
		   const gchar *object_id,
		   GHashTable *metadata,
		   gpointer user_data,
		   const GError *error)
{
	const gchar *title, *artist, *album, *genre;

	if (error != NULL) {
		g_error (&quot;Browse error: %s\n&quot;, error-&gt;message);
	}

	if (object_id == NULL) {
		g_print (&quot;[INFO]     Sorry, no songs found!\n&quot;);
	} else {
		g_print (&quot;[INFO]     Got result %d:\n&quot;, index);
		if (metadata == NULL) {
			title = &quot;Unknown&quot;;
			artist = &quot;Unknown&quot;;
			album = &quot;Unknown&quot;;
			genre = &quot;Unknown&quot;;
		} else {
                        GValue *v;
                        v = mafw_metadata_first (metadata,
						 MAFW_METADATA_KEY_TITLE);
                        title = v ? g_value_get_string (v) : &quot;Unknown&quot;;
                        v = mafw_metadata_first (metadata,
						 MAFW_METADATA_KEY_ARTIST);
                        artist = v ? g_value_get_string (v) : &quot;Unknown&quot;;
                        v = mafw_metadata_first (metadata,
						 MAFW_METADATA_KEY_ALBUM);
                        album = v ? g_value_get_string (v) : &quot;Unknown&quot;;
                        v = mafw_metadata_first (metadata,
						 MAFW_METADATA_KEY_GENRE);
                        genre = v ? g_value_get_string (v) : &quot;Unknown&quot;;
		}

		g_print (&quot;[INFO]       Object ID: %s\n&quot;, object_id);
		g_print (&quot;[INFO]           Title: %s\n&quot;, title);
		g_print (&quot;[INFO]          Artist: %s\n&quot;, artist);
		g_print (&quot;[INFO]           Album: %s\n&quot;, album);
		g_print (&quot;[INFO]           Genre: %s\n&quot;, genre);
	}

        if (remaining == 0) {
		g_print (&quot;[INFO] Browse operaton finished. Exiting...\n&quot;);
		g_main_loop_quit (main_loop);
	}
}

/*
 * This function executes a browse request on the selected source.
 * This function receives the object identifier to browse as parameter.
 */
static gboolean
do_browse_request (gpointer user_data)
{
	guint browse_id;
	const gchar *const *keys;
	gchar *object_id = (gchar *) user_data;

	g_print (&quot;[INFO] Browsing %s on &quot;  WANTED_SOURCE &quot;.\n&quot;, object_id);

	keys = MAFW_SOURCE_LIST(
	       MAFW_METADATA_KEY_TITLE,
	       MAFW_METADATA_KEY_ARTIST,
	       MAFW_METADATA_KEY_ALBUM,
	       MAFW_METADATA_KEY_GENRE);

	browse_id =
		mafw_source_browse (app_source,        /* Source */
				    object_id,         /* Object identifier */
				    FALSE,             /* Recursive */
				    NULL,              /* Filter */
				    NULL,              /* Sorting */
				    keys,              /* Requested keys */
				    0, 30,             /* Offset, Count*/
				    browse_request_cb, /* Callback */
				    NULL);             /* User data */

	if (browse_id == MAFW_SOURCE_INVALID_BROWSE_ID) {
		g_warning (&quot;Incorrect browse request.\n&quot;);
	}

	return FALSE;
}

/*
 * Hooks for extension added and removed signals
 */

/*
 * Checks for a particular source to be added and 
 * saves a reference to it.
 */
static void
source_added_cb (MafwRegistry *registry,
		 GObject *source,
		 gpointer user_data)
{
	if (MAFW_IS_SOURCE(source)) {
		const gchar *name =
			mafw_extension_get_name(MAFW_EXTENSION(source));

		g_print(&quot;[INFO] Source %s available.\n&quot;, name);

		if (strcmp (name, WANTED_SOURCE) == 0) {
			g_print (&quot;[INFO]     Wanted source found!\n&quot;);
			app_source = g_object_ref (source);

			/* When we find the source we are interested in,
			   do a browse request */
			g_timeout_add (1000, do_browse_request, user_data);
		} else {
			g_print (&quot;[INFO]     Not interesting. Skipping...\n&quot;);
		}
	}
}

/*
 * Checks if the referenced source is removed, and if so, exits.
 */
static void
source_removed_cb (MafwRegistry *registry,
		   GObject *source,
		   gpointer user_data)
{
	if (MAFW_IS_SOURCE(source)) {
		g_print(&quot;[INFO] Source %s removed.\n&quot;,
			mafw_extension_get_name(MAFW_EXTENSION(source)));

		if (MAFW_SOURCE (source) == app_source) {
			g_print (&quot;[INFO]     Wanted source removed!&quot;
				 &quot; Exiting...\n&quot;);
			g_object_unref (app_source);
			g_main_loop_quit (main_loop);
		}
	}
}

static void
renderer_added_cb (MafwRegistry *registry,
		   GObject *renderer,
		   gpointer user_data)
{
	if (MAFW_IS_RENDERER(renderer)) {
		g_print(&quot;[INFO] Renderer %s available.\n&quot;,
			mafw_extension_get_name(MAFW_EXTENSION(renderer)));
	}
}

static void
renderer_removed_cb (MafwRegistry * registry,
		     GObject *renderer,
		     gpointer user_data)
{
	if (MAFW_IS_RENDERER(renderer)) {
		g_print(&quot;Renderer %s removed.\n&quot;,
			mafw_extension_get_name(MAFW_EXTENSION(renderer)));
	}
}

/*
 * Loads MAFW plugins.
 *
 * This function lods out-of-process extensions and hooks to
 * source-added and source-removed signals for dynamic extension
 * discovery and removal.
 *
 * Also, this function allows loading of in-process extensions
 * defined through an environment variable.
 *
 * The object_id parameter is used to browse that object as soon
 * as the source of interest is loaded.
 */
gboolean static
app_init (gchar *object_id)
{
        GError *error = NULL;
	gchar **plugins = NULL;
	GList *extension_list = NULL;
	MafwRegistry *registry = NULL;

	/* --- Basic MAFW setup -- */

	/* Init GType */
        g_type_init ();

	/* Init MAFW log (show all messages) */
	mafw_log_init (G_LOG_DOMAIN &quot;:ALL&quot;);

	/* -- Start out-of-process plugin loading -- */

	g_print (&quot;[INFO] Checking for out-of-process plugins...\n&quot;);

	/* Check available plugins  */
	registry = MAFW_REGISTRY (mafw_registry_get_instance());
	if (registry == NULL) {
		g_error (&quot;app_init: Failed to get MafwRegistry reference\n&quot;);
		return FALSE;
	}

	/* Start out-of-process extension discovery */
	mafw_shared_init (registry, &amp;error);
	if (error != NULL)
	{
		g_warning (&quot;Ext. discovery failed: %s&quot;,
			   error-&gt;message);
		g_error_free(error);
		error = NULL;
	}

	/* Connect to extension discovery signals. These signals will be
	   emitted when new extensions are started or removed */
	g_signal_connect (registry,
			  &quot;renderer_added&quot;,
			  G_CALLBACK(renderer_added_cb), NULL);

	g_signal_connect (registry,
			  &quot;renderer_removed&quot;,
			  G_CALLBACK(renderer_removed_cb), NULL);

	g_signal_connect (registry,
			  &quot;source_added&quot;,
			  G_CALLBACK(source_added_cb), object_id);

	g_signal_connect (registry,
			  &quot;source_removed&quot;,
			  G_CALLBACK(source_removed_cb), NULL);

	/* Also, check for already started extensions */
	extension_list = mafw_registry_get_renderers(registry);
	while (extension_list)
	{
		renderer_added_cb (registry,
				   G_OBJECT(extension_list-&gt;data), NULL);
		extension_list = g_list_next(extension_list);
	}

	extension_list = mafw_registry_get_sources(registry);
	while (extension_list)
	{
		source_added_cb (registry,
				 G_OBJECT(extension_list-&gt;data), NULL);
		extension_list = g_list_next(extension_list);
	}

	/* -- Start in-process plugin loading -- */

	/* MAFW_INP_PLUGINS shold contain a list of paths
	   to plugin files to be loaded in-process */

	g_print (&quot;[INFO] Checking for in-process plugins...\n&quot;);
	if (g_getenv(&quot;MAFW_INP_PLUGINS&quot;) != NULL) {
		plugins = g_strsplit (g_getenv (&quot;MAFW_INP_PLUGINS&quot;),
				      G_SEARCHPATH_SEPARATOR_S,
				      0);

		for (; NULL != *plugins; plugins++) {
			g_print (&quot;[INFO] Loading in-process plugin %s...\n&quot;,
				 *plugins);

			mafw_registry_load_plugin (MAFW_REGISTRY(registry),
						   *plugins,
						   &amp;error);

			if (error != NULL) {
				gchar* msg;
				msg = g_strdup_printf (
					&quot;Unable to load inp. plugin %s: %s&quot;,
					*plugins,
					error-&gt;message);

				g_warning (&quot;Plugin loading failed: %s&quot;, msg);

				g_free(msg);
				g_error_free(error);
				error = NULL;
			}
		}
	} else {
		g_print (&quot;[INFO]     No in-process plugins requested.\n&quot;);
	}
}

int
main (int argc, gchar *argv[])
{
	if (argc != 2) {
		g_error (&quot;Please, provide exactly one argument specifying &quot;
			 &quot;the object identifier of the item to browse.&quot;);
	}

	g_print (&quot;[INFO] Starting example...\n&quot;);
	app_init (argv[1]);
	g_print (&quot;[INFO] Example started.\n&quot;);

	main_loop = g_main_loop_new (NULL, FALSE);
	g_main_loop_run (main_loop);

	return 0;
}
&lt;/source&gt;

===Source metadata example ===

This program is a simple command line program that allows the user to list some metadata values of arbitrary elements of the local filesystem source using the &lt;code&gt;mafw-tracker-source&lt;/code&gt; plugin. So, be sure you have this plugin installed (and running if you want to use it in out-of-process mode)!

'''To build the example''': Source metadata example

&lt;pre&gt;
libtool --mode=link gcc -o mafw-metadata-example \
 `pkg-config --cflags --libs mafw mafw-shared` mafw-metadata-example.c
&lt;/pre&gt;

'''To run the example''':

 run-standalone.sh ./mafw-metadata-example &lt;object-id&gt;

A valid object identifier can be obtained using the browse example, by browsing the all songs container (&lt;code&gt;localtagfs::music/songs&lt;/code&gt;), and checking the object identifiers of the contained songs. 

'''The source code''': Source metadata example

&lt;source lang=&quot;c&quot;&gt;
/*
The code examples copyrighted by Nokia Corporation that are included to
this material are licensed to you under following MIT-style License:

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
&quot;Software&quot;), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/

#include &lt;string.h&gt;
#include &lt;stdlib.h&gt;

#include &lt;glib.h&gt;

#include &lt;libmafw/mafw.h&gt;
#include &lt;libmafw/mafw-log.h&gt;
#include &lt;libmafw/mafw-registry.h&gt;
#include &lt;libmafw-shared/mafw-shared.h&gt;

#undef G_LOG_DOMAIN
#define G_LOG_DOMAIN &quot;mafw-example&quot;

#define WANTED_SOURCE     &quot;Mafw-Tracker-Source&quot;

MafwSource *app_source = NULL;
GMainLoop * main_loop = NULL;

/*
 * This callback is invoked whenever a browse result is available
 */
static void
metadata_request_cb (MafwSource *source,
		     const gchar *object_id,
		     GHashTable *metadata,
		     gpointer user_data,
		     const GError *error)
{
	const gchar *title, *artist, *album, *genre;

	if (error != NULL) {
		g_error (&quot;Metadata error: %s\n&quot;, error-&gt;message);
	}

	g_print (&quot;[INFO]     Got metadata:\n&quot;);
	if (metadata == NULL) {
		title = &quot;Unknown&quot;;
		artist = &quot;Unknown&quot;;
		album = &quot;Unknown&quot;;
		genre = &quot;Unknown&quot;;
	} else {
		GValue *v;
		v = mafw_metadata_first (metadata,
					 MAFW_METADATA_KEY_TITLE);
		title = v ? g_value_get_string (v) : &quot;Unknown&quot;;
		v = mafw_metadata_first (metadata,
					 MAFW_METADATA_KEY_ARTIST);
		artist = v ? g_value_get_string (v) : &quot;Unknown&quot;;
		v = mafw_metadata_first (metadata,
					 MAFW_METADATA_KEY_ALBUM);
		album = v ? g_value_get_string (v) : &quot;Unknown&quot;;
		v = mafw_metadata_first (metadata,
					 MAFW_METADATA_KEY_GENRE);
		genre = v ? g_value_get_string (v) : &quot;Unknown&quot;;
	}

	g_print (&quot;[INFO]           Title: %s\n&quot;, title);
	g_print (&quot;[INFO]          Artist: %s\n&quot;, artist);
	g_print (&quot;[INFO]           Album: %s\n&quot;, album);
	g_print (&quot;[INFO]           Genre: %s\n&quot;, genre);
}

/*
 * This function executes a metadata request on the selected source
 * for the object identifier passed as user data.
 */
static gboolean
do_metadata_request (gpointer user_data)
{
	guint browse_id;
	const gchar *const *keys;
	gchar *object_id = (gchar *) user_data;

	g_print (&quot;[INFO] Requesting metadata for %s on &quot;
		 WANTED_SOURCE &quot;.\n&quot;, object_id);

	keys = MAFW_SOURCE_LIST(
	       MAFW_METADATA_KEY_TITLE,
	       MAFW_METADATA_KEY_ARTIST,
	       MAFW_METADATA_KEY_ALBUM,
	       MAFW_METADATA_KEY_GENRE);

	mafw_source_get_metadata (app_source,
				  object_id,
				  keys,
				  metadata_request_cb,
				  NULL);

	return FALSE;
}

/*
 * Hooks for extension added and removed signals
 */

/*
 * Checks for a particular source to be added and 
 * saves a reference to it.
 */
static void
source_added_cb (MafwRegistry *registry,
		 GObject *source,
		 gpointer user_data)
{
	if (MAFW_IS_SOURCE(source)) {
		const gchar *name =
			mafw_extension_get_name(MAFW_EXTENSION(source));

		g_print(&quot;[INFO] Source %s available.\n&quot;, name);

		if (strcmp (name, WANTED_SOURCE) == 0) {
			g_print (&quot;[INFO]     Wanted source found!\n&quot;);
			app_source = g_object_ref (source);

			/* When we find the source we are interested in,
			   do a metadata request */
			g_timeout_add (1000, do_metadata_request, user_data);
		} else {
			g_print (&quot;[INFO]     Not interesting. Skipping...\n&quot;);
		}
	}
}

/*
 * Checks if the referenced source is removed, and if so, exits.
 */
static void
source_removed_cb (MafwRegistry *registry,
		   GObject *source,
		   gpointer user_data)
{
	if (MAFW_IS_SOURCE(source)) {
		g_print(&quot;[INFO] Source %s removed.\n&quot;,
			mafw_extension_get_name(MAFW_EXTENSION(source)));

		if (MAFW_SOURCE (source) == app_source) {
			g_print (&quot;[INFO]     Wanted source removed!&quot;
				 &quot; Exiting...\n&quot;);
			g_object_unref (app_source);
			g_main_loop_quit (main_loop);
		}
	}
}

static void
renderer_added_cb (MafwRegistry *registry,
		   GObject *renderer,
		   gpointer user_data)
{
	if (MAFW_IS_RENDERER(renderer)) {
		g_print(&quot;[INFO] Renderer %s available.\n&quot;,
			mafw_extension_get_name(MAFW_EXTENSION(renderer)));
	}
}

static void
renderer_removed_cb (MafwRegistry * registry,
		     GObject *renderer,
		     gpointer user_data)
{
	if (MAFW_IS_RENDERER(renderer)) {
		g_print(&quot;Renderer %s removed.\n&quot;,
			mafw_extension_get_name(MAFW_EXTENSION(renderer)));
	}
}

/*
 * Loads MAFW plugins.
 *
 * This function lods out-of-process extensions and hooks to
 * source-added and source-removed signals for dynamic extension
 * discovery and removal.
 *
 * Also, this function allows loading of in-process extensions
 * defined through an environment variable.
 *
 * The object_id parameter is used to request metadata as soon
 * as the source of interest is loaded.
 */
gboolean static
app_init (gchar *object_id)
{
        GError *error = NULL;
	gchar **plugins = NULL;
	GList *extension_list = NULL;
	MafwRegistry *registry = NULL;

	/* --- Basic MAFW setup -- */

	/* Init GType */
        g_type_init ();

	/* Init MAFW log (show all messages) */
	mafw_log_init (G_LOG_DOMAIN &quot;:ALL&quot;);

	/* -- Start out-of-process plugin loading -- */

	g_print (&quot;[INFO] Checking for out-of-process plugins...\n&quot;);

	/* Check available plugins  */
	registry = MAFW_REGISTRY (mafw_registry_get_instance());
	if (registry == NULL) {
		g_error (&quot;app_init: Failed to get MafwRegistry reference\n&quot;);
		return FALSE;
	}

	/* Start out-of-process extension discovery */
	mafw_shared_init (registry, &amp;error);
	if (error != NULL)
	{
		g_warning (&quot;Ext. discovery failed: %s&quot;,
			   error-&gt;message);
		g_error_free(error);
		error = NULL;
	}

	/* Connect to extension discovery signals. These signals will be
	   emitted when new extensions are started or removed */
	g_signal_connect (registry,
			  &quot;renderer_added&quot;,
			  G_CALLBACK(renderer_added_cb), NULL);

	g_signal_connect (registry,
			  &quot;renderer_removed&quot;,
			  G_CALLBACK(renderer_removed_cb), NULL);

	g_signal_connect (registry,
			  &quot;source_added&quot;,
			  G_CALLBACK(source_added_cb), object_id);

	g_signal_connect (registry,
			  &quot;source_removed&quot;,
			  G_CALLBACK(source_removed_cb), NULL);

	/* Also, check for already started extensions */
	extension_list = mafw_registry_get_renderers(registry);
	while (extension_list)
	{
		renderer_added_cb (registry,
				   G_OBJECT(extension_list-&gt;data), NULL);
		extension_list = g_list_next(extension_list);
	}

	extension_list = mafw_registry_get_sources(registry);
	while (extension_list)
	{
		source_added_cb (registry,
				 G_OBJECT(extension_list-&gt;data), NULL);
		extension_list = g_list_next(extension_list);
	}

	/* -- Start in-process plugin loading -- */

	/* MAFW_INP_PLUGINS shold contain a list of paths
	   to plugin files to be loaded in-process */

	g_print (&quot;[INFO] Checking for in-process plugins...\n&quot;);
	if (g_getenv(&quot;MAFW_INP_PLUGINS&quot;) != NULL) {
		plugins = g_strsplit (g_getenv (&quot;MAFW_INP_PLUGINS&quot;),
				      G_SEARCHPATH_SEPARATOR_S,
				      0);

		for (; NULL != *plugins; plugins++) {
			g_print (&quot;[INFO] Loading in-process plugin %s...\n&quot;,
				 *plugins);

			mafw_registry_load_plugin (MAFW_REGISTRY(registry),
						   *plugins,
						   &amp;error);

			if (error != NULL) {
				gchar* msg;
				msg = g_strdup_printf (
					&quot;Unable to load inp. plugin %s: %s&quot;,
					*plugins,
					error-&gt;message);

				g_warning (&quot;Plugin loading failed: %s&quot;, msg);

				g_free(msg);
				g_error_free(error);
				error = NULL;
			}
		}
	} else {
		g_print (&quot;[INFO]     No in-process plugins requested.\n&quot;);
	}
}

int
main (int argc, gchar *argv[])
{
	if (argc != 2) {
		g_error (&quot;Please, provide exactly one argument specifying &quot;
			 &quot;the object identifier of the item to get &quot;
			 &quot;metadata from.&quot;);
	}

	g_print (&quot;[INFO] Starting example...\n&quot;);
	app_init (argv[1]);
	g_print (&quot;[INFO] Example started.\n&quot;);

	main_loop = g_main_loop_new (NULL, FALSE);
	g_main_loop_run (main_loop);

	return 0;
}
&lt;/source&gt;

=== Playlist example ===

This program is a simple command line program that allows the user to create and remove playlists. It is necessary to have the playlist-daemon running to execute this program.

'''To build the example''': Playlist example

&lt;pre&gt;
libtool --mode=link gcc -o mafw-playlist-example \
 `pkg-config --cflags --libs mafw mafw-shared` mafw-playlist-example.c
&lt;/pre&gt;

'''To run the example''':

This program accepts several commands: Playlist example

&lt;source lang=&quot;c&quot;&gt;
/*
The code examples copyrighted by Nokia Corporation that are included to
this material are licensed to you under following MIT-style License:

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
&quot;Software&quot;), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/

#include &lt;string.h&gt;
#include &lt;stdlib.h&gt;

#include &lt;glib.h&gt;

#include &lt;libmafw/mafw.h&gt;
#include &lt;libmafw/mafw-log.h&gt;
#include &lt;libmafw-shared/mafw-shared.h&gt;

#undef G_LOG_DOMAIN
#define G_LOG_DOMAIN &quot;mafw-example&quot;

#define COMMAND_CREATE       1
#define COMMAND_REMOVE       2
#define COMMAND_SHOW         3
#define COMMAND_ADD_ITEM     4
#define COMMAND_REMOVE_ITEM  5

GMainLoop *main_loop = NULL;

gint command;
gchar *playlist_name;
gchar *object_id;

/*
 * This function looks for a particular playlist using its name
 */
static MafwPlaylist *
find_playlist (gchar *name, GError **error)
{
 	MafwPlaylistManager *manager;
	MafwPlaylist *playlist = NULL;
	GPtrArray *list = NULL;
	gint i;

	manager = mafw_playlist_manager_get ();

	list = mafw_playlist_manager_get_playlists (manager, error);

	if (*error != NULL) {
		return NULL;
	}

	for (i = 0; i &lt; list-&gt;len; i++) {
		playlist = (MafwPlaylist *) g_ptr_array_index (list, i);
		gchar *name = mafw_playlist_get_name (playlist);
		if (strcmp (playlist_name, name) == 0) {
			return playlist;
		}
	}

	return NULL;
}

/*
 * This function creates a new playlist
 */
static GError *
create_playlist (void)
{
	MafwPlaylistManager *manager;
	MafwProxyPlaylist *playlist;
	GError *error = NULL;

	manager = mafw_playlist_manager_get ();
	mafw_playlist_manager_create_playlist (manager,
					       playlist_name,
					       &amp;error);
	return error;
}

/*
 * This function removes a playlist
 */
static GError *
remove_playlist (void)
{
	MafwPlaylistManager *manager;
	MafwPlaylist *playlist;
	GError *error = NULL;
	GPtrArray *list = NULL;
	gint i;

	manager = mafw_playlist_manager_get ();

	playlist = find_playlist (playlist_name, &amp;error);

	if (error != NULL)  {
		return error;
	}

	if (playlist == NULL) {
		return g_error_new (MAFW_ERROR, 0, &quot;Playlist not found&quot;);
	}

	mafw_playlist_manager_destroy_playlist (manager,
						playlist,
						&amp;error);

	return error;
}

/*
 * This function shows the object identifiers contained in a playlist
 */
static GError *
show_playlist (void)
{
	MafwPlaylist *playlist;
	GError *error = NULL;
	gint i;
	guint size;

	playlist = find_playlist (playlist_name, &amp;error);

	if (error != NULL)  {
		return error;
	}

	if (playlist == NULL) {
		return g_error_new (MAFW_ERROR, 0, &quot;Playlist not found&quot;);
	}

	g_print (&quot;Showing contents for playlist %s...:\n&quot;, playlist_name);
	size = mafw_playlist_get_size (playlist, &amp;error);

	if (error != NULL) {
		return error;
	}

	if (size &gt; 0) {
		for (i = 0; i &lt; size; i++) {
			gchar *id =
				mafw_playlist_get_item (playlist, i, &amp;error);
			if (error != NULL) {
				g_warning (&quot;Error getting item %d &quot;
					   &quot;from playlist: %s\n&quot;,
					   i, error-&gt;message);
				g_error_free (error);
				error = NULL;
			}

			g_print (&quot;  %d %s\n&quot;, i, id);
		}
	} else {
		g_print (&quot;Playlist is empty\n&quot;);
	}

	return error;
}

/*
 * This function adds an object identifier to a playlist
 */
static GError *
add_item_to_playlist (void)
{
	MafwPlaylist *playlist;
	GError *error = NULL;

	playlist = find_playlist (playlist_name, &amp;error);

	if (error != NULL)  {
		return error;
	}

	if (playlist == NULL) {
		return g_error_new (MAFW_ERROR, 0, &quot;Playlist not found&quot;);
	}

	mafw_playlist_insert_item (playlist, 0, object_id, &amp;error);
	return error;
}

/*
 * This function removes an item from a playlist
 */
static GError *
remove_item_from_playlist (void)
{
	MafwPlaylist *playlist;
	GError *error = NULL;
	guint size;
	gint i;

	playlist = find_playlist (playlist_name, &amp;error);

	if (error != NULL)  {
		return error;
	}

	if (playlist == NULL) {
		return g_error_new (MAFW_ERROR, 0, &quot;Playlist not found&quot;);
	}

	g_print (&quot;  Searching for %s in playlist %s\n&quot;,
		 object_id, playlist_name);
	size = mafw_playlist_get_size (playlist, &amp;error);

	if (error != NULL) {
		return error;
	}

	for (i = 0; i &lt; size; i++) {
		gchar *id = mafw_playlist_get_item (playlist, i, &amp;error);
		if (error != NULL) {
			g_warning (&quot;Error getting item %d &quot;
				   &quot;from playlist: %s\n&quot;,
				   i, error-&gt;message);
			g_error_free (error);
			error = NULL;
		} else if (strcmp (id, object_id) == 0) {
			mafw_playlist_remove_item (playlist, i, &amp;error);
			g_print (&quot;  Element found at position %d\n&quot;, i);
			break;
		}
	}

	if (i == size) {
		g_print (&quot;  Element not found\n&quot;);
	} else {
		g_print (&quot;Playlist %s removed\n&quot;, playlist_name);
	}
}

/*
 * This function executes the command specified in the command line
 */
static gboolean
execute_command (gpointer user_data)
{
	GError *error;

	switch (command) {
	case COMMAND_CREATE:
		error = create_playlist ();
		if (error == NULL) {
			g_print (&quot;Playlist %s created\n&quot;, playlist_name);
		}
		break;
	case COMMAND_REMOVE:
		error = remove_playlist ();
		if (error == NULL) {
			g_print (&quot;Playlist %s removed\n&quot;, playlist_name);
		}
		break;
	case COMMAND_SHOW:
		error = show_playlist ();
		break;
	case COMMAND_ADD_ITEM:
		error = add_item_to_playlist ();
		if (error == NULL) {
			g_print (&quot;Item %s added to playlist %s\n&quot;,
				 object_id, playlist_name);
		}
		break;
	case COMMAND_REMOVE_ITEM:
		error = remove_item_from_playlist ();
		break;
	}

	if (error != NULL) {
		g_print (&quot;Operation failed: %s\n&quot;, error-&gt;message);
	} else {
		g_print (&quot;Operation executed successfully.\n&quot;);
	}

	g_main_loop_quit (main_loop);

	return FALSE;
}

/*
 * This function parses the command line and extracts
 * info on the requested command and arguments.
 */
static gboolean
check_command_line (int argc,
		    gchar *argv[],
		    gint *command,
		    gchar **playlist_name,
		    gchar **object_id)
{
	switch (argc) {
	case 3:
		*playlist_name = argv[2];
		if (!strcmp (argv[1], &quot;create&quot;)) {
			*command = COMMAND_CREATE;
		} else if (!strcmp (argv[1], &quot;remove&quot;)) {
			*command = COMMAND_REMOVE;
		} else if (!strcmp (argv[1], &quot;show&quot;)) {
			*command = COMMAND_SHOW;
		} else {
			return FALSE;
		}
		break;
	case 4:
		*playlist_name = argv[2];
		*object_id = argv[3];
		if (!strcmp (argv[1], &quot;add-item&quot;)) {
			*command = COMMAND_ADD_ITEM;
		} else if (!strcmp (argv[1], &quot;remove-item&quot;)) {
			*command = COMMAND_REMOVE_ITEM;
		} else {
			return FALSE;
		}
		break;
	default:
		return FALSE;
	}

	return TRUE;
}

int
main (int argc, gchar *argv[])
{
	if (!check_command_line (argc, argv,
				 &amp;command, &amp;playlist_name, &amp;object_id)) {
		g_error (&quot;Please, provide one of these sets of arguments:\n&quot;
			 &quot;  create &lt;playlist-name&gt;\n&quot;
			 &quot;  remove &lt;playlist-name&gt;\n&quot;
			 &quot;  show &lt;playlist-name&gt;\n&quot;
                         &quot;  add-item &lt;playlist-name&gt; &lt;object-id&gt;\n&quot;,
			 &quot;  remove-item &lt;playlist-name&gt; &lt;object-id&gt;\n&quot;);
	}

	g_type_init ();
	mafw_log_init (G_LOG_DOMAIN &quot;:ALL&quot;);

	g_timeout_add (100, execute_command, NULL);
	main_loop = g_main_loop_new (NULL, FALSE);
	g_main_loop_run (main_loop);

	return 0;
}
&lt;/source&gt;

=== Renderer example===

This program is a simple command line program that allows the user to play arbitrary playlists in a renderer. It is necessary to have the &lt;code&gt;mafw-gst-renderer&lt;/code&gt; plugin installed (and running in case you intend to run the program in out-of-process mode) in order to execute the program successfully.

'''To build the example''': Renderer example

&lt;pre&gt;
libtool --mode=link gcc -o mafw-renderer-example \
 `pkg-config --cflags --libs mafw mafw-shared` mafw-renderer-example.c
&lt;/pre&gt;

'''To run the example''':

 run-standalone.sh ./mafw-renderer-example &amp;lt;playlist-name&amp;gt;

One can use the playlist example to define the playlists.

'''The source code''': Renderer example

&lt;source lang=&quot;c&quot;&gt;
/*
The code examples copyrighted by Nokia Corporation that are included to
this material are licensed to you under following MIT-style License:

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
&quot;Software&quot;), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/

#include &lt;string.h&gt;
#include &lt;stdlib.h&gt;

#include &lt;glib.h&gt;

#include &lt;libmafw/mafw.h&gt;
#include &lt;libmafw/mafw-log.h&gt;
#include &lt;libmafw/mafw-registry.h&gt;
#include &lt;libmafw-shared/mafw-shared.h&gt;

#undef G_LOG_DOMAIN
#define G_LOG_DOMAIN &quot;mafw-example&quot;

#define WANTED_RENDERER     &quot;Mafw-Gst-Renderer&quot;

MafwRenderer *app_renderer = NULL;
GMainLoop * main_loop = NULL;

gchar *state_str[] = {&quot;STOPPED&quot;, &quot;PLAYING&quot;, &quot;PAUSED&quot;, &quot;TRANSITIONING&quot;};

static void
play_cb (MafwRenderer *renderer,
	 gpointer user_data,
	 const GError *error)
{
        if (error != NULL) {
		g_print (&quot;Play operation failed: %s\n&quot;, error-&gt;message);
	}
}

static void
error_cb (MafwRenderer *renderer,
	  GQuark domain,
	  gint code,
	  gchar *message,
	  gpointer user_data)
{
	g_print (&quot;Playback error received: %s\n&quot;, message);
}

static void
state_changed_cb (MafwRenderer *renderer,
                  MafwPlayState state,
		  gpointer user_data)
{
        g_print(&quot;State changed! New state is %s\n&quot;,
		state_str[state]);
}

static void
media_changed_cb (MafwRenderer *renderer,
		  gint index,
		  gchar *object_id,
		  gpointer user_data)
{
	static gboolean started = FALSE;

	g_print (&quot;Media changed: assigned media is %d - %s\n&quot;,
		 index, object_id);

	/* Start playback right away! */
	if (started == FALSE) {
		started = TRUE;
		mafw_renderer_play (renderer, play_cb, NULL);
	}
}

static void
metadata_changed_cb (MafwRenderer *renderer,
		     gchar *key,
		     GValueArray *value,
		     gpointer user_data)
{
	g_print (&quot;  Got metadata %s: %s\n&quot;,
		 key,
		 g_strdup_value_contents (&amp;(value-&gt;values[0])));
}

static MafwPlaylist *
find_playlist (gchar *playlist_name, GError **error)
{
	MafwPlaylistManager *manager;
	MafwPlaylist *playlist = NULL;
	GPtrArray *list = NULL;
	gint i;

	manager = mafw_playlist_manager_get ();

	list = mafw_playlist_manager_get_playlists (manager, error);

	if (*error != NULL) {
		return NULL;
	}

	for (i = 0; i &lt; list-&gt;len; i++) {
		playlist = (MafwPlaylist *) g_ptr_array_index (list, i);
		gchar *name = mafw_playlist_get_name (playlist);
		if (strcmp (playlist_name, name) == 0) {
			return playlist;
		}
	}

	return NULL;
}

/*
 * This function assigned a playlist to the renderer.
 * Receives the playlist name to assign as parameter.
 */
static gboolean
do_assign_playlist_request (gpointer user_data)
{
	GError *error = NULL;
	MafwPlaylist *playlist;
	gchar *playlist_name = (gchar *) user_data;

	g_print (&quot;[INFO] Assigning playlist %s to &quot;  WANTED_RENDERER &quot;.\n&quot;,
		 playlist_name);

	playlist = find_playlist (playlist_name, &amp;error);

	if (error != NULL)  {
		g_error (&quot;Failed to find playlist\n&quot;);
	}

	if (playlist == NULL) {
		g_error (&quot;Playlist not found&quot;);
	}

	mafw_renderer_assign_playlist (app_renderer, playlist, &amp;error);

	if (error != NULL) {
		g_error (&quot;Failed to assign playlist: %s\n&quot;,
			 error-&gt;message);
	}

	return FALSE;
}

/*
 * Hooks for extension added and removed signals
 */

/*
 * Checks for a particular source to be added and 
 * saves a reference to it.
 */
static void
source_added_cb (MafwRegistry *registry,
		 GObject *source,
		 gpointer user_data)
{
	if (MAFW_IS_SOURCE(source)) {
		const gchar *name =
			mafw_extension_get_name(MAFW_EXTENSION(source));
		g_print(&quot;[INFO] Source %s available.\n&quot;, name);
	}
}

/*
 * Checks if the referenced source is removed, and if so, exits.
 */
static void
source_removed_cb (MafwRegistry *registry,
		   GObject *source,
		   gpointer user_data)
{
	if (MAFW_IS_SOURCE(source)) {
		g_print(&quot;[INFO] Source %s removed.\n&quot;,
			mafw_extension_get_name(MAFW_EXTENSION(source)));
	}
}

static void
renderer_added_cb (MafwRegistry *registry,
		   GObject *renderer,
		   gpointer user_data)
{
	if (MAFW_IS_RENDERER(renderer)) {
		const gchar *name =
			mafw_extension_get_name (MAFW_EXTENSION(renderer));

		g_print(&quot;[INFO] Renderer %s available.\n&quot;, name);

		if (strcmp (name, WANTED_RENDERER) == 0) {
			g_print (&quot;[INFO]     Wanted renderer found!\n&quot;);
			app_renderer = g_object_ref (renderer);

			/* Connect to a few interesting signals */
			g_signal_connect (renderer,
					  &quot;media-changed&quot;,
					  G_CALLBACK (media_changed_cb),
					  NULL);
			g_signal_connect (renderer,
					  &quot;state-changed&quot;,
					  G_CALLBACK (state_changed_cb),
					  NULL);
			g_signal_connect (renderer,
					  &quot;metadata-changed&quot;,
					  G_CALLBACK (metadata_changed_cb),
					  NULL);
			g_signal_connect (renderer,
					  &quot;error&quot;,
					  G_CALLBACK (error_cb),
					  NULL);

			/* When we find the renderer we are interested in,
			   so use it to play something */
			g_timeout_add (1000,
				       do_assign_playlist_request,
				       user_data);
		} else {
			g_print (&quot;[INFO]     Not interesting. Skipping...\n&quot;);
		}
	}
}

static void
renderer_removed_cb (MafwRegistry * registry,
		     GObject *renderer,
		     gpointer user_data)
{
	if (MAFW_IS_RENDERER(renderer)) {
		const gchar *name =
			mafw_extension_get_name (MAFW_EXTENSION(renderer));

		g_print(&quot;[INFO] Renderer %s removed.\n&quot;, name);

		if (MAFW_RENDERER (renderer) == app_renderer) {
			g_print (&quot;[INFO]     Wanted renderer removed!&quot;
				 &quot; Exiting...\n&quot;);
			g_object_unref (app_renderer);
			g_main_loop_quit (main_loop);
		}
	}
}

/*
 * Loads MAFW plugins.
 *
 * This function lods out-of-process extensions and hooks to
 * renderer/source-added and renderer/source-removed signals 
 * for dynamic extension discovery and removal.
 *
 * Also, this function allows loading of in-process extensions
 * defined through an environment variable.
 *
 * The object_id parameter is used to play that object as soon
 * as the renderer of interest is loaded.
 */
gboolean static
app_init (gchar *playlist_name)
{
        GError *error = NULL;
	gchar **plugins = NULL;
	GList *extension_list = NULL;
	MafwRegistry *registry = NULL;

	/* --- Basic MAFW setup -- */

	/* Init GType */
        g_type_init ();

	/* Init MAFW log (show all messages) */
	mafw_log_init (G_LOG_DOMAIN &quot;:ALL&quot;);

	/* -- Start out-of-process plugin loading -- */

	g_print (&quot;[INFO] Checking for out-of-process plugins...\n&quot;);

	/* Check available plugins  */
	registry = MAFW_REGISTRY (mafw_registry_get_instance());
	if (registry == NULL) {
		g_error (&quot;app_init: Failed to get MafwRegistry reference\n&quot;);
		return FALSE;
	}

	/* Start out-of-process extension discovery */
	mafw_shared_init (registry, &amp;error);
	if (error != NULL)
	{
		g_warning (&quot;Ext. discovery failed: %s&quot;,
			   error-&gt;message);
		g_error_free(error);
		error = NULL;
	}

	/* Connect to extension discovery signals. These signals will be
	   emitted when new extensions are started or removed */
	g_signal_connect (registry,
			  &quot;renderer_added&quot;,
			  G_CALLBACK(renderer_added_cb), playlist_name);

	g_signal_connect (registry,
			  &quot;renderer_removed&quot;,
			  G_CALLBACK(renderer_removed_cb), NULL);

	g_signal_connect (registry,
			  &quot;source_added&quot;,
			  G_CALLBACK(source_added_cb), NULL);

	g_signal_connect (registry,
			  &quot;source_removed&quot;,
			  G_CALLBACK(source_removed_cb), NULL);

	/* Also, check for already started extensions */
	extension_list = mafw_registry_get_renderers(registry);
	while (extension_list)
	{
		renderer_added_cb (registry,
				   G_OBJECT(extension_list-&gt;data), NULL);
		extension_list = g_list_next(extension_list);
	}

	extension_list = mafw_registry_get_sources(registry);
	while (extension_list)
	{
		source_added_cb (registry,
				 G_OBJECT(extension_list-&gt;data), NULL);
		extension_list = g_list_next(extension_list);
	}

	/* -- Start in-process plugin loading -- */

	/* MAFW_INP_PLUGINS shold contain a list of paths
	   to plugin files to be loaded in-process */

	g_print (&quot;[INFO] Checking for in-process plugins...\n&quot;);
	if (g_getenv(&quot;MAFW_INP_PLUGINS&quot;) != NULL) {
		plugins = g_strsplit (g_getenv (&quot;MAFW_INP_PLUGINS&quot;),
				      G_SEARCHPATH_SEPARATOR_S,
				      0);

		for (; NULL != *plugins; plugins++) {
			g_print (&quot;[INFO] Loading in-process plugin %s...\n&quot;,
				 *plugins);

			mafw_registry_load_plugin (MAFW_REGISTRY(registry),
						   *plugins,
						   &amp;error);

			if (error != NULL) {
				gchar* msg;
				msg = g_strdup_printf (
					&quot;Unable to load inp. plugin %s: %s&quot;,
					*plugins,
					error-&gt;message);

				g_warning (&quot;Plugin loading failed: %s&quot;, msg);

				g_free(msg);
				g_error_free(error);
				error = NULL;
			}
		}
	} else {
		g_print (&quot;[INFO]     No in-process plugins requested.\n&quot;);
	}
}

int
main (int argc, gchar *argv[])
{
	if (argc != 2) {
		g_error (&quot;Please, provide exactly one argument specifying &quot;
			 &quot;the name of the playlist to assign and play.&quot;);
	}

	g_print (&quot;[INFO] Starting example...\n&quot;);
	app_init (argv[1]);
	g_print (&quot;[INFO] Example started.\n&quot;);

	main_loop = g_main_loop_new (NULL, FALSE);
	g_main_loop_run (main_loop);

	return 0;
}
&lt;/source&gt;

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Developer Guide/Using Multimedia Components/Using Games Start-up Screen</title>
    <id>2146</id>
    <revision>
      <id>38341</id>
      <timestamp>2010-09-07T09:18:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add example links</comment>
      <text xml:space="preserve">The &lt;code&gt;osso-games-startup&lt;/code&gt; application is a generic game start-up interface, providing a common [[hildon|hildonized]] user interface view for game start-up control and configuration.

==Application Functionality ==

To execute the game, the &lt;code&gt;osso-games-startup&lt;/code&gt; application needs to be called. The game configuration file must be passed as an argument. Once loaded, &lt;code&gt;osso-games-startup&lt;/code&gt; creates a common interface for all games and, if needed, loads a specific plug-in for each game. Games are activated through an auto-activating D-Bus message, which tells the game either to start, restart or to continue. In cases where no clean-up routine within the plug-in exists, it can also start the game to clean its state data. In these cases, the game usually does not open its own window, but kills the state data in the background instead.

When the Play button is pressed, the D-Bus service defined in the configuration file is executed. Games that do not use the glib mainloop must integrate some functionality to their mainloop (for more information about games without a GLib mainloop see section [[#Integrating non-GTK+ Games]]).

The service is called every time any communication between &lt;code&gt;osso-games-startup&lt;/code&gt; and the game is needed.

The following diagram illustrates the operational execution flow of the &lt;code&gt;osso-games-startup&lt;/code&gt; application.

[[Image:diagram_chinook.png]]

==Integration ==

The integration tasks depend on the toolkit the game is based on. The following sections describe the integration tasks for:

* Games based on GTK+
* Games based on other toolkits, such as SDL

===Integrating GTK+ Games ===

To integrate games based on GTK+, a configuration file must be created, defining the information necessary for the &lt;code&gt;osso-games-startup&lt;/code&gt; application. The following example illustrates the contents of the configuration file:

&lt;pre&gt;
[Startup Entry]
# the name of the application
Name=example
# the current version of the application
Version=0.2.0
# the title that is used, if not specified by the GettextPackage
Title=Example
# the GettextPackage to be used to locate the title string
GettextPackage=example
# if the TitleId is defined, it searches for it inside the gettext package
TitleId=example_title
# if the game has a plug-in
PluginPath=/usr/share/example/example_plugin.so
# the games-startup screen image
Image=/usr/share/example/pixmaps/example.png
# the D-Bus service, path and interface names
ServiceName=com.domain.example
PathName=/com/domain/example
InterfaceName=com.domain.example
&lt;/pre&gt;

The game must be integrated with libosso to enable it to receive and send D-Bus messages, such as &quot;pause&quot;, &quot;restart&quot; and &quot;continue&quot;. In order to receive messages from the &lt;code&gt;osso-games-startup&lt;/code&gt; application, the game must register the service as defined in the configuration file.

When sending messages to &lt;code&gt;osso-games-startup&lt;/code&gt;, the game must use the service, path and interface name defined in the configuration file, but with a &quot;_startup&quot; suffix.

Next, a D-Bus service (a .service file) must be created, using the name of the service that executes the game binary, as defined in the configuration file. The following example illustrates the contents of the file:

&lt;pre&gt;
[D-BUS Service]
Name=com.domain.example
Exec=/usr/games/wrapper/games/wrapper.l
&lt;/pre&gt;

Finally, the game must create a shell script that calls the &lt;code&gt;osso-games-startup&lt;/code&gt; application executable and passes the game configuration file as an argument. The following example illustrates the contents of the script:

&lt;source lang=&quot;c&quot;&gt;
 /usr/bin/osso_games_startup /usr/share/example/example.conf
&lt;/source&gt;

===Integrating non-GTK+ Games ===

In order to integrate non-GTK+ applications to &lt;code&gt;osso-games-startup&lt;/code&gt;, differences in the actual game implementation must be dealt with. The same steps must be followed to create osso desktop files and registering D-Bus services as for the GTK+ based games; the only difference is that Nokia is providing a hildon-games-wrapper library to deal with D-Bus messaging without the use of libosso.

To initialize game application to receive events from osso-games-startup, the snippets/games_integrating_non-gtk+-hgw__init approach can be used.

If and when hgw pointer is not null, the game is ready to receive dbus messages that are intended for the game application. The next step is to check which state the game was started in. This is done by calling &lt;code&gt;hgw_context_get_start_command()&lt;/code&gt;. The return values indicate the state the game must be going into. This is necessery, for example, when the game has been paused previously, the state of the game has been saved and the player wishes to continue the current game or restart the on-going game. Again, check the header file for &lt;code&gt;HgwStartCommand&lt;/code&gt; for possible start values.

In the game's event loop, the user has to check if events are available by calling &lt;code&gt;hgw_msg_check_incoming()&lt;/code&gt;. It returns &lt;code&gt;HGW_ERR_COMMUNICATION&lt;/code&gt; if there are messages available and other values if messages are not available or if there was error. (see hgw/hgw.h for more details about &lt;code&gt;HgwError&lt;/code&gt; enum) Example:  snippets/games_integrating_non-gtk+-HGW_ERR_

Pointer &lt;code&gt;*msg&lt;/code&gt; then holds information about the received dbus message and the game application is able to process and act accordingly. Actual information about the received events is stored in &lt;code&gt;msg-&gt;e_val&lt;/code&gt; which is an enumeration mapped against &lt;code&gt;HgwCallback&lt;/code&gt;.

When the game ends or the game is requested to pause or quit, a call to &lt;code&gt;hgw_context_destroy()&lt;/code&gt; is made with initialized &lt;code&gt;hgw&lt;/code&gt; as a parameter.

Also, &lt;code&gt;hildon-games-wrapper&lt;/code&gt; library provides an interface to gconf. GConf is used to store persistent data such as the level of difficulty and sounds on/off. This method is preferred because the data stored in GConf is automatically backed up and restored when the user chooses to do so (from desktop, back-up manager). However, this interface is read-only, because writing happens in the game-specific plug-in in the &lt;code&gt;osso-games-startup&lt;/code&gt; screen.

== Creating Game-Specific Plug-in ==

Each game can create a plug-in for specific settings, such as sound control or difficulty level. Basically, each plug-in must implement some pre-defined functions that are executed by the &lt;code&gt;osso-games-startup&lt;/code&gt; application.

The functions that can be implemented by each plug-in are:

* &lt;code&gt;static GtkWidget *load_plugin (void)&lt;/code&gt;: This function creates the game-specific plug-in.
* &lt;code&gt;static void unload_plugin (void)&lt;/code&gt;: This function destroys global variables, if necessary.
* &lt;code&gt;static void write_config (void)&lt;/code&gt;: This function saves the game configuration chosen by the player using the plug-in options.

If the game needs a submenu in the &lt;code&gt;osso-games-startup&lt;/code&gt; screen main menu (see figure [localhost#fig:basic_osso-games-startup_app_screen 8.1]), the following functions must be used:

* &lt;code&gt;static GtkWidget **load_menu (guint *)&lt;/code&gt;: This function creates the game-specific submenu that is added to the osso-games-startup main menu.
* &lt;code&gt;static void update_menu (void)&lt;/code&gt;: This function updates the game-specific menu.

The struct below must be filled and sent to the &lt;code&gt;osso-games-startup&lt;/code&gt; application. It specifies which plug-in functions the start-up must call.  snippets/games_integrating_non-gtk+-StartupPluginInfo

The last item on the struct is necessary only if the game plug-in requires items such as &quot;save&quot;, &quot;save as&quot; or &quot;open&quot; to be a submenu in the default Game submenu.

Each plug-in must contain a reference to the &lt;code&gt;osso-games-startup&lt;/code&gt; info. The reference is given when &lt;code&gt;STARTUP_INIT_PLUGIN&lt;/code&gt; is called. The following example illustrates a reference to osso-games-startup:  snippets/games_integrating_non-gtk+-GameStartupInfo

The following example illustrates the &lt;code&gt;STARTUP_INIT_PLUGIN&lt;/code&gt; that initializes the plug-in. The parameters, in the order they are shown, are:

* Pointer for plug-in information (see the struct shown above)
* &lt;code&gt;GameStartupInfo&lt;/code&gt;
* Definition on whether the &lt;code&gt;osso-games-startup&lt;/code&gt; should send a D-Bus message on closing
* Definition on whether the &lt;code&gt;osso-games-startup&lt;/code&gt; menu has open/save game options

snippets/games_integrating_non-gtk+-STARTUP_INIT_PLUGIN

In order to inform &lt;code&gt;osso-games-startup&lt;/code&gt; that the game has a plug-in, the .conf configuration file of the game must include the &lt;code&gt;PluginPath&lt;/code&gt; entry, such as
 PluginPath=datadir/game01/game01_plugin.so

===Building Example Plug-in for CrazyParking ===

This section illustrates the plug-in for CrazyParking implementation. The plug-in allows the player to set the initial level of the game, and to define whether the game uses sounds. 

'''Games Start-up screen with CrazyParking plug-in's level and sound configuration''':

[[Image: crazyparking.png|400px]]

Source code is available [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/crazyparking/ here].

The following code examples illustrate how the Games Start-up screen works, but the best way to learn to use it is to tinker with the game itself. The source code can be used as desired: as a basic skeleton for the game, or simply to gain a better understanding of the game start-up.

Because the plug-in and osso-games-startup are written with GTK+-2.0, they must include &lt;code&gt;startup_plugin.h&lt;/code&gt; from &lt;code&gt;osso-games-startup&lt;/code&gt;. In addition, GConf is used to save the user settings. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/crazyparking/src/plugin/plugin.c crazyparking/src/plugin/plugin.c]

&lt;source lang=&quot;c&quot;&gt;
#include &lt;stdio.h&gt;
#include &lt;gtk/gtk.h&gt;
#include &lt;startup_plugin.h&gt;
#include &lt;gconf/gconf.h&gt;
#include &lt;gconf/gconf-client.h&gt;
#define MENU_SOUND 15
&lt;/source&gt;

The following example illustrates the labels for retrieving information at GConf: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/crazyparking/src/plugin/plugin.c crazyparking/src/plugin/plugin.c]

&lt;source lang=&quot;c&quot;&gt;
#define SETTINGS_LEVEL &quot;/apps/osso/crazyparking/level&quot;
#define SETTINGS_SOUND &quot;/apps/osso/crazyparking/sound&quot;
&lt;/source&gt;

The following example illustrates the functions that are implemented:

&lt;source lang=&quot;c&quot;&gt;
static GtkWidget  *load_plugin          (void);
static void        unload_plugin        (void);
static void        write_config         (void);
static GtkWidget **load_menu            (guint *);
static void        update_menu          (void);
static void        plugin_callback      (GtkWidget *menu_item, gpointer data);
static void        settings_callback    (GtkWidget *widget, gpointer data);
static void        sound_callback       (GtkWidget *widget, gpointer data);
&lt;/source&gt;

The following example illustrates some global variables: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/crazyparking/src/plugin/plugin.c crazyparking/src/plugin/plugin.c]

&lt;source lang=&quot;c&quot;&gt;
GConfClient *gcc = NULL;
GtkWidget *board_box;
GtkWidget *level_1_item;
GtkWidget *level_2_item;
GtkWidget *level_3_item;
GtkWidget *level_4_item;
GtkWidget *level_5_item;
GtkWidget *level_6_item;
GtkWidget *level_7_item;
GtkWidget *level_8_item;
GtkWidget *level_9_item;
GtkWidget *level_10_item;
GtkWidget *level_11_item;
GtkWidget *level_12_item;
GtkWidget *settings_item;
GtkWidget *settings_menu;
GtkWidget *difficulty_item;
GtkWidget *difficulty_menu;
static GameStartupInfo gs;
GtkWidget *menu_items[2];
static int changed = FALSE;
GSList * group = NULL;
GtkWidget *sound_check = NULL;
GtkWidget *sound_item;
&lt;/source&gt;

The implemented functions of the plug-in must be sent to osso-games-startup: in this case, a &lt;code&gt;GTK_SPIN_BUTTON&lt;/code&gt; and a &lt;code&gt;GTK_CHECK_ITEM&lt;/code&gt;. If the plug-in has no specific menu, &lt;code&gt;load_menu&lt;/code&gt; and &lt;code&gt;update_menu&lt;/code&gt; must be &lt;code&gt;NULL&lt;/code&gt; [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/crazyparking/src/plugin/plugin.c crazyparking/src/plugin/plugin.c]

&lt;source lang=&quot;c&quot;&gt;
static StartupPluginInfo plugin_info = {
  load_plugin,
  unload_plugin,
  write_config,
  load_menu,
  update_menu,
  NULL
};
&lt;/source&gt;

The following example illustrates the initializing plug-in that informs the application that there is a plug-in: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/crazyparking/src/plugin/plugin.c crazyparking/src/plugin/plugin.c]

&lt;source lang=&quot;c&quot;&gt;
STARTUP_INIT_PLUGIN(plugin_info, gs, FALSE, FALSE);
&lt;/source&gt;

The following example illustrates the function that initializes the widgets that localize the osso-games-startup standard buttons: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/crazyparking/plugin/plugin.c crazyparking/src/plugin/plugin.c]

&lt;source lang=&quot;c&quot;&gt;
static GtkWidget *load_plugin (void)
{
  int board, enable_sound;
  GtkWidget *game_hbox;
  GtkWidget *board_hbox, *board_label;
  GtkWidget *sound_hbox, *sound_label;

  g_type_init();
  gcc = gconf_client_get_default();
  board = gconf_client_get_int(gcc, SETTINGS_LEVEL, NULL);
  enable_sound = gconf_client_get_int(gcc, SETTINGS_SOUND, NULL);

  game_hbox = gtk_hbox_new (TRUE, 0);
  g_assert (game_hbox);

  board_hbox = gtk_hbox_new (FALSE, 4);

  board_box = gtk_spin_button_new_with_range (1, 12, 1);
  g_assert (board_box);

  gtk_spin_button_set_value (GTK_SPIN_BUTTON (board_box), board);
  g_signal_connect(G_OBJECT(board_box), &quot;value-changed&quot;, G_CALLBACK(settings_callback), NULL);
  gtk_box_pack_end (GTK_BOX (board_hbox), board_box, FALSE, FALSE, 0);

  board_label = gtk_label_new (&quot;Starting level&quot;);
  g_assert(board_label);

  gtk_box_pack_end (GTK_BOX (board_hbox), board_label, FALSE, FALSE, 0);

  gtk_box_pack_start (GTK_BOX (game_hbox), board_hbox, FALSE, FALSE, 2);

  sound_hbox = gtk_hbox_new (FALSE, 4);

  sound_check = gtk_check_button_new();
  g_assert (sound_check);

  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(sound_check), enable_sound);
  g_signal_connect (G_OBJECT(sound_check), &quot;clicked&quot;,
                    G_CALLBACK(sound_callback), NULL);

  gtk_box_pack_end (GTK_BOX (sound_hbox), sound_check, FALSE, FALSE, 0);

  sound_label = gtk_label_new (&quot;Sound&quot;);
  g_assert (sound_label);

  gtk_box_pack_end (GTK_BOX (sound_hbox), sound_label, TRUE, TRUE, 0);

  gtk_box_pack_start (GTK_BOX (game_hbox), sound_hbox, FALSE, FALSE, 2);

  printf (&quot;%s : %s : %d\n&quot;, __FILE__, __FUNCTION__, __LINE__);

  return game_hbox;
}
&lt;/source&gt;

The following example illustrates the function that is responsible for using GConf to store the user preferences (as is recommended, because the back-up application stores the GConf database): [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/crazyparking/src/plugin/plugin.c crazyparking/src/plugin/plugin.c]

&lt;source lang=&quot;c&quot;&gt;
static void write_config (void)
{
  int value;
  value = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON(board_box));
  if (value &lt; 1) value = 1;
  else if (value &gt; 12) value = 12;
  gconf_client_set_int(gcc, SETTINGS_LEVEL, value, NULL);
  gconf_client_set_int(gcc, SETTINGS_SOUND,
        gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sound_check)), NULL);
}
&lt;/source&gt;

The following example illustrates the function that initializes the game-specific plug-in menu, which is between the Game and Close submenus of osso-games-startup: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/crazyparking/src/plugin/plugin.c crazyparking/src/plugin/plugin.c]

&lt;source lang=&quot;c&quot;&gt;
static GtkWidget **load_menu (guint *nitems)
{
  int enable_sound;
  //number of entries in maemo-games-startup main menu for this game 
  *nitems = 1;
  settings_item = gtk_menu_item_new_with_label (&quot;Settings&quot;);
  settings_menu = gtk_menu_new ();
  menu_items[0] = settings_item;
  gtk_menu_item_set_submenu (GTK_MENU_ITEM (settings_item), settings_menu);
  //difficulty settings 
  difficulty_menu = gtk_menu_new ();
  difficulty_item = gtk_menu_item_new_with_label (&quot;Difficulty&quot;);
  gtk_menu_item_set_submenu (GTK_MENU_ITEM (difficulty_item), difficulty_menu);
  gtk_menu_append (GTK_MENU (settings_menu), difficulty_item);
  level_1_item = gtk_radio_menu_item_new_with_label (group, &quot;Level 1&quot;);
  gtk_menu_append (GTK_MENU (difficulty_menu), level_1_item);
  group = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(level_1_item));
  level_2_item = gtk_radio_menu_item_new_with_label (group, &quot;Level 2&quot;);
  gtk_menu_append (GTK_MENU (difficulty_menu), level_2_item);
  group = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(level_2_item));
  level_3_item = gtk_radio_menu_item_new_with_label (group, &quot;Level 3&quot;);
  gtk_menu_append (GTK_MENU (difficulty_menu), level_3_item);
  group = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(level_3_item));
  /* ... Listing cut for brevity ...*/
  level_12_item = gtk_radio_menu_item_new_with_label (group, &quot;Level 12&quot;);
  gtk_menu_append (GTK_MENU (difficulty_menu), level_12_item);
  group = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(level_12_item));
  g_signal_connect (G_OBJECT (level_1_item), &quot;toggled&quot;,
                    G_CALLBACK (plugin_callback), (gpointer) LEVEL_1);
  g_signal_connect (G_OBJECT (level_2_item), &quot;toggled&quot;,
                    G_CALLBACK (plugin_callback), (gpointer) LEVEL_2);
  g_signal_connect (G_OBJECT (level_3_item), &quot;toggled&quot;,
                    G_CALLBACK (plugin_callback), (gpointer) LEVEL_3);
  /* ... Listing cut for brevity ...*/
  g_signal_connect (G_OBJECT (level_12_item), &quot;toggled&quot;,
                    G_CALLBACK (plugin_callback), (gpointer) LEVEL_12);
  gtk_menu_append (GTK_MENU (settings_menu), gtk_menu_item_new());
  //sound settings 
  sound_item = gtk_check_menu_item_new_with_label(&quot;Sound&quot;);
  gtk_menu_append (GTK_MENU (settings_menu), sound_item);
  g_signal_connect (G_OBJECT (sound_item), &quot;toggled&quot;,
                    G_CALLBACK (plugin_callback), (gpointer) MENU_SOUND);
  gtk_check_menu_item_set_state (GTK_CHECK_MENU_ITEM(sound_item),
  gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (sound_check)));
  return menu_items;
}
&lt;/source&gt;

The following example illustrates the function that is called when any configuration is performed in the menu. This function updates the &lt;code&gt;GTK_SPIN_BUTTON&lt;/code&gt; (level change) or the &lt;code&gt;GTK_CHECK_MENU_ITEM&lt;/code&gt; (sound change). [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/crazyparking/src/plugin/plugin.c crazyparking/src/plugin/plugin.c]

&lt;source lang=&quot;c&quot;&gt;
static void plugin_callback (GtkWidget *menu_item, gpointer  data)
{
    if (MENU_SOUND == (int) data &amp;&amp; !changed){
        changed = TRUE;
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sound_check),
                                      gtk_check_menu_item_get_active (
                                      GTK_CHECK_MENU_ITEM(sound_item)));
    } else if (!changed) {
        changed = TRUE;
        gtk_spin_button_set_value (GTK_SPIN_BUTTON (board_box), (int) data);
    }
    changed = FALSE;
}
&lt;/source&gt;

The following example illustrates the function that is called to update the menu level option, when the user chooses the level using the &lt;code&gt;GTK_SPIN_BUTTON&lt;/code&gt;: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/crazyparking/src/plugin/plugin.c crazyparking/src/plugin/plugin.c]

&lt;source lang=&quot;c&quot;&gt;
static void settings_callback (GtkWidget *widget, gpointer data)
{
  if (!changed) {
    changed = TRUE;
    gint active = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
    if (active == LEVEL_1) {
      gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(level_1_item), TRUE);
    }
    else if (active == LEVEL_2) {
      gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(level_2_item), TRUE);
    }
    else if (active == LEVEL_3) {
      gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(level_3_item), TRUE);
    }
    /*... Listing cut for brevity ...*/
    else if (active == LEVEL_12) {
      gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(level_12_item), TRUE);
    }
  }
  changed = FALSE;
}
&lt;/source&gt;

The following example illustrates the function that handles changes to the sound setup: [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/crazyparking/src/plugin/plugin.c crazyparking/src/plugin/plugin.c]

&lt;source lang=&quot;c&quot;&gt;
static void sound_callback (GtkWidget *widget, gpointer data)
{
  if (!changed) {
    changed = TRUE;
    gtk_check_menu_item_set_state (GTK_CHECK_MENU_ITEM(sound_item),
                                   gtk_toggle_button_get_active(
                                   GTK_TOGGLE_BUTTON (widget)));
  }
  changed = FALSE;
}
&lt;/source&gt;

The following example illustrates the function that is called by &lt;code&gt;osso-games-startup&lt;/code&gt;, if necessary. [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/crazyparking/src/plugin/plugin.c crazyparking/src/plugin/plugin.c]

&lt;source lang=&quot;c&quot;&gt;
static void update_menu (void)
{
  settings_callback(board_box, NULL);
  sound_callback(sound_check, NULL);
}
&lt;/source&gt;

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Final SDK</title>
    <id>2576</id>
    <revision>
      <id>29388</id>
      <timestamp>2010-02-12T13:11:12Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">= Introduction =

Maemo 5 Final SDK provides a true glimpse of N900 software. For the first time, it gives you a peek at the Nokia applications. It showcases the complete UI framework with the panorama desktop view along with the task switching capability. Thanks to all the contributions in the wiki pages, we now have most of the areas covered in the [[Documentation/Maemo_5_Developer_Guide|developer guide]]. 



::[[Image:desktop.png|500px]]            



                                                                        
'''Other changes include:'''
* Scratchbox packages updated
* Browser packages available
* [[Documentation/Maemo_5_Developer_Guide/Using_Data_Sharing/Sharing_Plug-in | New Sharing plugin API]]
* [http://repository.maemo.org/stable/5.0/4.1.2_vs_5.0_content_comparison.html Content changes since Maemo 4.1.2 SDK]
* [http://repository.maemo.org/stable/5.0/5.0beta2_vs_5.0_content_comparison.html Content comparison between beta2 and final SDK]
* [[{{PAGENAME}}/Discover Maemo 5 SDK | Discover Maemo 5]]
* [[{{PAGENAME}}/Using Application Manager | Using Application Manager]]
* [[{{PAGENAME}}/Using Finger Keyboard | Using Finger Keyboard]]

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Final SDK/Discover Maemo 5</title>
    <id>2615</id>
    <revision>
      <id>19419</id>
      <timestamp>2009-10-06T09:08:37Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Documentation/Maemo 5 Final SDK/Discover Maemo 5]] moved to [[Documentation/Maemo 5 Final SDK/Discover Maemo 5 SDK]]: sdk</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Final SDK/Discover Maemo 5 SDK]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Final SDK/Discover Maemo 5 SDK</title>
    <id>2577</id>
    <revision>
      <id>32179</id>
      <timestamp>2010-04-08T14:38:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>update links</comment>
      <text xml:space="preserve">= Panorama Desktop =
[[Image:panaroma.png|500px]]


*Four virtual desktops or home screens 
*Personalize each of the desktops to your content 
*Slide through them with the click and drag  gesture of the mouse


=Multi Tasking=
[[Image:TaskSwitcher.png|500px]]


*No longer view one application at a time. 
*Active thumbnail view of all open applications. 
*A button click to switch between open applications. 


=Home Widgets=
[[Image:desktop.png|500px]]


*Add cool widgets to your home 
*Develop new widgets 
*[[Documentation/Maemo_5_Developer_Guide/Application_Development/Writing_Desktop_Widgets#Home_Widgets|Learn how to do them]]
*[https://vcs.maemo.org/svn/maemoexamples/trunk/example_desktop_widget/ Example clock widget]


=Web Browser=
[[Image:Browser.png|500px]]


*Full screen, 800X480 resolution 
*Advanced interactive mode 
*Recent browser history as thumbnails 
*Mozilla browser engine 
*Browser interface API (Debian Package:tablet-browser-interface)


=Email=
[[Image:email.png|500px]] 


*Modest Email Client 
*Easy setup of email accounts 
*[[Documentation/Maemo_5_Developer_Guide/Using_Data_Sharing/Sharing_Plug-in#Writing_.22Send_Via.22_Functionality_to_E-mail_and_Bluetooth|Email interface API tutorial]]
*[https://vcs.maemo.org/svn/maemoexamples/trunk/maemopad/ Example code]

 
=Contacts=
[[Image:contacts.png|500px]]


*Smooth integration with VOIP and IM contacts 
*[http://maemo.org/api_refs/5.0/5.0-final/libosso-abook/ Address Book API]
*[[Documentation/Maemo_5_Developer_Guide/Using_Generic_Platform_Components/Using_Address_Book_API|Tutorial]]

=Calendar=
[[Image:calendar.png|500px]]


*Manage events 
*Create multiple calendars  
*[http://maemo.org/api_refs/5.0/5.0-final/calendar-backend/annotated.html Calendar interface API]

=Clock=
[[Image:clock.png|500px]]


*World clock 
*Manage alarm events 
*[[Documentation/Maemo_5_Developer_Guide/Using_Generic_Platform_Components/Alarm_Framework|Alarm Framework Tutorial]]


=Photos=
[[Image:photoviewer.png|500px]]


*View images 
*Simple edit functions  
*Create new sharing plugins 
*[[Documentation/Maemo_5_Developer_Guide/Using_Data_Sharing/Sharing_Plug-in#Sharing_Plug-in_Creation|Sharing Tutorial]]
*[http://maemo.org/api_refs/5.0/5.0-final/libsharing-plugin/ Sharing plugin API]

=Application Manager=
[[Image:appmgr.png|500px]]


*Manage application catalogues 
*Download new applications 
*Update or remove installed applications
*[[Documentation/Maemo_5_Final_SDK/Using_Application_Manager#Enable_red_pill_mode|Enable red pill mode]]
*[[Documentation/Maemo_5_Final_SDK/Using_Application_Manager#Enable_extras-testing_repository|Enable Extras-testing repository]]

=Media Player=
[[Image:mediaplayer.png|500px]]


*Create playlists 
*[[Documentation/Maemo_5_Developer_Guide/Using_Multimedia_Components/Media_Application_Framework_(MAFW)|Media Application Framework tutorial]]
*APIs


=File Manager=
[[Image:filemanager.png|500px]]


*Manage ﬁles and folders 
*File Management APIs (LINK)
*[https://vcs.maemo.org/svn/maemoexamples/branches/fremantle-sdk-testing/maemo-examples/example_file_chooser.c Example code] 


=Virtual Keyboard=
[[Image:vbk2.png|500px]]


*Ability to use virtual ﬁnger keyboard instead of hardware keys. 
*[http://maemo.gitorious.org/fremantle-hildon-desktop/hildon-input-method-plugins-example/trees/master Example code]


=Xterm=
[[Image:xterm.png|500px]]


*Console terminal

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Final SDK/Using Application Manager</title>
    <id>2579</id>
    <revision>
      <id>41486</id>
      <timestamp>2011-01-28T12:11:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut lots of content and link to other pages</comment>
      <text xml:space="preserve">== Enable red pill mode ==

{{main|Red Pill mode}}

== Enable extras-testing repository ==

{{main|Extras-testing#How to activate Extras-testing}}

== Change the update interval ==

The Hildon Application Manager (HAM) will by default look for updates once a day. If you want to change this rate (since it causes &gt; 5MB download which can be expensive if you're on GPRS), you can edit this file (value expressed in minutes):

'''/var/lib/gconf/apps/hildon/update-notifier/%gconf.xml'''

The default value is 1440 which is 24 hours.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Final SDK/Using Finger Keyboard</title>
    <id>2578</id>
    <revision>
      <id>41487</id>
      <timestamp>2011-01-28T12:20:05Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">This article explains how to enable the virtual keyboard on the [[Nokia N900|N900]].

&lt;ol&gt;
&lt;li&gt;
Click on the application menu button.
[[Image:desktop.png|frame|center|alt=Screenshot of the N900 desktop|N900 desktop]]
&lt;/li&gt;
&lt;li&gt;
Go to &quot;Settings&quot;.
[[Image:applications.png|frame|center|alt=Screenshot of the N900 apllication menu|Application menu]]
&lt;/li&gt;
&lt;li&gt;
Go to &quot;Text input&quot; settings.
[[Image:settings2.png|frame|center|alt=Screenshot of the Settings application|Settings application]]
&lt;/li&gt;
&lt;li&gt;
Enable virtual keyboard and save the settings.
[[Image:vkb1.png|frame|center|alt=Screenshot of text input settings dialog|Text input settings dialogue]]
&lt;/li&gt;
&lt;li&gt;
Now, clicking on any text field should pop up the virtual/finger keyboard.
[[Image:vbk2.png|frame|center|alt=Screenshot of virtual keyboard|Virtual keyboard]]
&lt;/li&gt;
&lt;/ol&gt; 

[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo 5 Final SDK Installation</title>
    <id>2554</id>
    <revision>
      <id>47440</id>
      <timestamp>2012-05-06T19:34:49Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Documentation/Maemo 5 Final SDK Installation]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">'''WARNING: Never rm -r /scratchbox or subfolders, you got bindmounts of proc/ dev/ etc to your REAL SYSTEM. You will kill your system when indiscriminately deleting stuff in /scratchbox!'''

==Introduction==

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.

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.

Once you are sure that your development machine fulfills these requirements, you can proceed with the following guidelines:

Maemo 5 SDK comes with two command-line installation scripts and GUI installer (beta) to ease the SDK installation.
* Scratchbox installer script which downloads and installs the required version of Scratchbox onto your host machine.
* 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.
* GUI installer which combines both Scratchbox and SDK installation.

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.

===What is not included in the Maemo SDK?===

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. 

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. 

If not, you can manually install Xephyr as follows:

On Debian based linux systems, Xephyr can be installed outside Scratchbox environment using apt with root permission:

 $ sudo apt-get install xserver-xephyr

On a Gentoo system you need to install xorg-server with the kdrive useflag. This builds the Xephyr binary.

== Headline text ==

==Installing Maemo 5 SDK using GUI Installer==
 {{ambox
|type=warning
|text=recent requests on IRC suggest this wizard GUI installer is completely broken and thus SHOULD NOT be used. Follow manual installation scheme instead, as this GUI thing will fail out after downloading 1GB and you have to start all over again}}


Maemo 5 SDK installation is now made easy with GUI installer. This
installer will install Scratchbox and Maemo 5 SDK on Debian based
systems. This installer will allow installation of nokia closed packages and
applications provided that EULA at [http://tablets-dev.nokia.com/eula/index.php this webpage] is accepted. 

===Features of the GUI installer===

* Install/Upgrade Scratchbox
* Installation of Maemo 5 SDK
* Installation of nokia-binaries
* Installation of nokia-apps
* Installation of Xephyr, if missing
* Can create a launcher for Xephyr on Desktop
* Can create a shortcut to Scratchbox home folder on Desktop
* Can create Maemo 5 info page on Desktop that contains useful links for developers 
* Uninstallation of Scratchbox and targets (Debian-based distros only)

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 (&lt;code&gt;FREMANTLE_X86&lt;/code&gt;, &lt;code&gt;FREMANTLE_ARMEL&lt;/code&gt;) if present, but contents of Scratchbox home will be preserved. Please use the custom mode if you don't want to overwrite your targets.

The GUI installer Qt application requires Python bindings for Qt. GUI installer can install the required packages if not already installed.

The installer will use the &lt;code&gt;http_proxy&lt;/code&gt; environment variable if available. If your connection does not seem to work, you will be asked to manually enter proxy settings.

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.

On systems with Grub2, this can be done in the file /etc/default/grub.

===Starting installation with GUI installer===

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.

Also you must uncheck the Xephyr checkbox and install it manually.
&lt;source lang=&quot;diff&quot;&gt;
  129c129
  &lt; SB_PATH = &quot;/scratchbox&quot;
  ---
  &gt; SB_PATH = &quot;/opt/scratchbox&quot;
  2297a2298
  &gt;       opt = opt + &quot;-s /opt/scratchbox&quot;
  2351a2353
  &gt;       cmd = cmd +&quot; -s /opt/scratchbox&quot;
&lt;/source&gt;

 wget http://repository.maemo.org/stable/5.0/maemo-sdk-install-wizard_5.0.py
 chmod a+x maemo-sdk-install-wizard_5.0.py

 $ Installer requires root privileges
   Ubuntu
    sudo ./maemo-sdk-install-wizard_5.0.py
   Debian
    su -c ./maemo-sdk-install-wizard_5.0.py

===Limitations of the GUI installer===

* As the installer will do package installation, you should quit all package managers before running it.
* Please note that detecting Scratchbox is not perfect and it will detect only if it is installed in the &lt;code&gt;/scratchbox&lt;/code&gt; path.
* Please note that python-qt features used in this installer might not be available in older Ubuntu and Debian distros.
* Due to differences in versions of Python Qt bindings, certain parts of installation can work differently on different systems.
* Installer only shows required settings on 64-bit machines but does not add them automatically.
* Installer will always use DISPLAY :2, if you want to use a different value, you need to change it manually.
* GUI installer does not work on SUSE Linux. You can use command line installers instead.

==Installing Maemo 5 SDK using Text-based Installer==
===Installing Maemo 5 SDK on 32-/64-bit Debian/Ubuntu-based distributions===
Since the Scratchbox site has packages for both architectures, and the Debian packages work fine on Ubuntu, it is easiest to just install from the Hathor release.

1. Set up a new APT source using the instructions at http://www.scratchbox.org/download/scratchbox-hathor/

2. Follow the installation instructions at http://www.scratchbox.org/documentation/user/scratchbox-1.0/html/installdoc.html or follow on for simplified instructions.

3. Update your APT cache:
&lt;code&gt;
 $ sudo apt-get update
&lt;/code&gt;
then install Scratchbox:
&lt;code&gt;
 $ sudo apt-get install scratchbox-core scratchbox-devkit-apt-https scratchbox-devkit-autotools-legacy scratchbox-devkit-debian-squeeze scratchbox-devkit-doctools scratchbox-devkit-git scratchbox-devkit-perl scratchbox-devkit-python-legacy scratchbox-devkit-qemu scratchbox-devkit-svn scratchbox-libs scratchbox-toolchain-cs2007q3-glibc2.5-arm7 scratchbox-toolchain-cs2007q3-glibc2.5-i486 scratchbox-toolchain-host-gcc
&lt;/code&gt;
The installation will ask you some questions about users and groups to set up.

4. Download the SDK setup script:
&lt;code&gt;
 $ wget http://repository.maemo.org/stable/5.0/maemo-sdk-install_5.0.sh
&lt;/code&gt;

5. Since Scratchbox Hathor is based on Debian Squeeze, and the SDK script assumes etch is to be used, we need to make a small change to it:
&lt;code&gt;
 $ sed -i -e 's/etch/squeeze/g' maemo-sdk-install_5.0.sh
&lt;/code&gt;

6. Set the permissions to execute the script:
&lt;code&gt;
 $ chmod +x maemo-sdk-install_5.0.sh
&lt;/code&gt;

7. 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;postcount=8]
&lt;code&gt;
 $ echo &quot;vm.mmap_min_addr = 0&quot; | sudo tee -a /etc/sysctl.conf
 $ sudo sysctl -p
&lt;/code&gt;

8. If you have not already added a user to scratchbox, do so now:
&lt;code&gt;
 $ sudo /scratchbox/sbin/sbox_adduser &lt;username&gt;
&lt;/code&gt;

At this step, you should have a working Scratchbox environment ready.

9. Proceed further to run the Maemo SDK installer script. This script is run as &lt;code&gt;&lt;user&gt;&lt;/code&gt; outside the Scratchbox environment.
&lt;code&gt;
 $ ./maemo-sdk-install_5.0.sh
&lt;/code&gt;

10. If you are installing running this script in Ubuntu 10.10 Maverick Meerkat, you might find the following error:
&lt;code&gt;Error opening terminal: xterm&lt;/code&gt;
In that case follow the instructions at http://www.terabyteunlimited.com/kb/article.php?id=454

11. If you have installed Scratchbox in a path alternative to &lt;code&gt;/scratchbox&lt;/code&gt;, you will need to specify the path with ‘-s PATH’ option. More information on available command line options can be found with --help option. Follow the instructions on the go.

11. Once the script has successfully completed its execution, you can login into Scratchbox.
&lt;code&gt;
 $ /scratchbox/login
&lt;/code&gt;
If you are not able to login, take a look at the [[#Limitations of Scratchbox|limitations of Scratchbox]].

12. 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:

12.1. Accept the EULA on [http://tablets-dev.nokia.com/eula/index.php this webpage] &lt;br/&gt;
12.2. Copy the &lt;code&gt;sources.list&lt;/code&gt; entry given to you after the license acceptance to your Scratchbox x86 and armel target’s &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; file. Execute the commands below on the &lt;code&gt;FREMANTLE_ARMEL&lt;/code&gt; and &lt;code&gt;FREMANTLE_X86&lt;/code&gt; targets.

 [sbox-FREMANTLE_X86: ~] &gt; sb-conf select FREMANTLE_ARMEL
 [sbox-FREMANTLE_ARMEL: ~] &gt; nano /etc/apt/sources.list  # add deb line 
 [sbox-FREMANTLE_ARMEL: ~] &gt; apt-get update
 [sbox-FREMANTLE_ARMEL: ~] &gt; fakeroot apt-get install nokia-binaries nokia-apps

 [sbox-FREMANTLE_ARMEL: ~] &gt; sb-conf select FREMANTLE_X86
 [sbox-FREMANTLE_X86: ~] &gt; nano /etc/apt/sources.list  # add deb line 
 [sbox-FREMANTLE_X86: ~] &gt; apt-get update
 [sbox-FREMANTLE_X86: ~] &gt; fakeroot apt-get install nokia-binaries nokia-apps

The above step installs all needed Nokia proprietary binary packages along with the open source binaries that have dependencies to Nokia proprietary binary packages. With this, your Maemo 5 SDK environment is set up completely and ready for development.

13. If you got any DNS errors with &lt;code&gt;apt-get install&lt;/code&gt; resolving 'repository.maemo.org', you have need to update the resolver config inside scratchbox with &lt;code&gt;sudo /scratchbox/sbin/sbox_sync&lt;/code&gt;

===Installing Maemo 5 SDK on openSUSE===

There are instructions &lt;del&gt;at [http://en.opensuse.org/Maemo5 opensuse.org].&lt;/del&gt;

At the moment, the instructions are only available at the old version of the openSUSE-wiki: [http://old-en.opensuse.org/Maemo5 http://old-en.opensuse.org/Maemo5]

==Installing Maemo 5 SDK on non-Linux operating systems==

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]]
from [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php tablets-dev.nokia.com]. [http://www.vmware.com/products/player/ VMPlayer is required].

==Starting/Shutting down the SDK UI==

Before starting the UI framework, ensure that you have installed the following:
*Xephyr X11 server on the host machine outside the Scratchbox environment
*The SDK as described above
*The Nokia proprietary binary packages

1. Now, run Xephyr outside the scratchbox environment:

 $ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac &amp;

Ubuntu 10.04 users using the package in the repositories will have to run the same command without the &lt;code&gt;-host-cursor&lt;/code&gt; and &lt;code&gt;-kb&lt;/code&gt;, however the terminal window will have to stay open.
For recent Ubuntu releases the recommended Xephyr command line (using Finnish keyboard layout) is:

 $ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -keybd ephyr,,,xkbmodel=evdev,xkblayout=fi

Ubuntu 10.10:

 $ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac

Ubuntu 10.10 &amp; poulsbo (GMA 500, Nokia Booklet 3G):

 $ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -nodri

To run &lt;code&gt;Maemo5 SDK&lt;/code&gt; from desktop edit &lt;code&gt;/usr/local/bin/start_xephyr.sh&lt;/code&gt;


2. Login to Scratchbox X86 target

 $ /scratchbox/login
 
 Welcome to Scratchbox, the cross-compilation toolkit!
 
 Use 'sb-menu' to change your compilation target.
 
 See /scratchbox/doc/ for documentation.
 
 [sbox-FREMANTLE_X86: ~]&gt;

3. Set the DISPLAY variable to match the display setting given for the Xephyr server.

 [sbox-FREMANTLE_X86: ~] &gt;export DISPLAY=:2

4. Start the UI framework .

 [sbox-FREMANTLE_X86: ~] &gt;af-sb-init.sh start


5. You will now see the UI framework up and running on the Xephyr window.

6. You can shut down the UI framework as follows:

  [sbox-FREMANTLE_X86: ~] &gt;af-sb-init.sh stop

==Starting Scratchbox on non-Debian based systems==

If Scratchbox was installed from Debian packages, the &lt;code&gt;/etc/init.d/scratchbox-core&lt;/code&gt; 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:

 $ sudo /scratchbox/sbin/sbox_ctl start

Alternatively you can add &lt;code&gt;sbox_ctl&lt;/code&gt; as an init script to the &lt;code&gt;/etc/init.d&lt;/code&gt; directory and create the appropriate links at your system's runlevel directories. This procedure works on some systems:

 $ ln -s /scratchbox/sbin/sbox_ctl /etc/init.d/scratchbox-core
 $ /usr/sbin/update-rc.d scratchbox-core defaults

Refer to your system's documentation for the correct instructions.

==Upgrading from Maemo 5 Beta2 SDK==

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.

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.

Run the command below to create the symlink for existing Scratchbox user:

 $ sudo ./maemo-scratchbox-install_5.0.sh -u &lt;EXISTING_USER&gt;

Alternatively, you can create the symlinks manually as follows, if Scratchbox is installed in the default location:

 $ sudo ln -s /scratchbox/users/&lt;username&gt;/home/&lt;username&gt; /scratchbox/users/&lt;username&gt;/home/user

The Final SDK installer additionally creates a directory &lt;code&gt;/opt&lt;/code&gt; under &lt;code&gt;/target/&lt;target_name&gt;/&lt;/code&gt;.

'''Reason:''' In order to facilitate installing applications under &lt;code&gt;/opt&lt;/code&gt; on the device, a symlink &lt;code&gt;/opt&lt;/code&gt; has been created pointing to &lt;code&gt;/home/opt&lt;/code&gt;. The SDK inherits this feature. Under Scratchbox, &lt;code&gt;/opt&lt;/code&gt; points to &lt;code&gt;/target/links/opt&lt;/code&gt; which in turn points to &lt;code&gt;/targets/&lt;target_name&gt;/opt&lt;/code&gt;. Installing the rootstraps makes this point to &lt;code&gt;/home/opt&lt;/code&gt;, which is not what we want, since we need &lt;code&gt;/opt&lt;/code&gt; to be target specific.  In order to resolve this situation, we have to manually check whether &lt;code&gt;/targets/&lt;target_name&gt;/opt&lt;/code&gt; is a symlink and if it is, remove it and create a directory with the same name.

==Upgrading from Maemo 4.x/Diablo SDK==

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.

For this, we need to first upgrade the Scratchbox installation on our host machine.

*Download the Maemo5 scratchbox installer.

*Set executable permissions and run it as follows:

 $ chmod a+x ./maemo-scratchbox-install_5.0.sh
 $ sudo  ./maemo-scratchbox-install_5.0.sh -U -u &lt;EXISTING_USER&gt; -s /scratchbox

Once the Scratchbox installation is done, run the Maemo 5 Final SDK installer.

==Manual Installation==

===On x86 and x86_64 Debian-based systems===

* You can add the following line into your host machine's &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; file.

 deb http://scratchbox.org/debian/ hathor main

* Install the needed Scratchbox packages with root permission

 $ sudo apt-get update
 $ 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

The Scratchbox packages will be unpacked to &lt;code&gt;/scratchbox&lt;/code&gt; directory and the installation procedure will ask you some questions about the group and user accounts. Default group to Scratchbox is 'sbox'.

* Users who will be using Scratchbox should be added using the following command with root permission:

 $ sudo /scratchbox/sbin/sbox_adduser USER yes

It will automatically include the user to the Scratchbox group, create user directories under &lt;code&gt;/scratchbox/users&lt;/code&gt; and mount several directories (&lt;code&gt;/dev&lt;/code&gt;, &lt;code&gt;/proc&lt;/code&gt;, &lt;code&gt;/tmp&lt;/code&gt;) under the user directory.

* 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.

 $ sudo ln -s /scratchbox/users/&lt;username&gt;/home/&lt;username&gt; /scratchbox/users/&lt;username&gt;/home/user

* For the group membership to be effective in the current terminal session, run the following command:

 $ newgrp sbox

'''Note:''' This command will change the existing group ID during the current login session to 'sbox'. If you do not want to change, simply logout and log back in for the group membership to be effective.

* Log-in to Scratchbox.

 $ /scratchbox/login

* Configure the scratchbox x86 and armel targets as follows:

 [sbox-&gt;:~]&gt;sb-conf st FREMANTLE_X86 -c cs2007q3-glibc2.5-i486 -d perl:debian-etch:doctools:svn:git -t none
 [sbox-&gt;:~]&gt;sb-conf st FREMANTLE_ARMEL -c cs2007q3-glibc2.5-arm7 -d qemu:perl:debian-etch:doctools:svn:git -t qemu-arm-sb

* Download the minimal rootstraps.

 [sbox-&gt;:~]&gt; wget http://repository.maemo.org/stable/fremantle/armel/maemo-sdk-rootstrap_5.0_20.2010.36-2_armel.tgz http://repository.maemo.org/stable/fremantle/i386/maemo-sdk-rootstrap_5.0_20.2010.36-2_i386.tgz

* Switch to x86 target, install the devkits, etc and fakeroot into the target, install the minimal rootstrap and finally the Maemo development files.

 [sbox-&gt;:~]&gt; sb-conf se FREMANTLE_X86
 [sbox-FREMANTLE_X86: ~] &gt; sb-conf rs maemo-sdk-rootstrap_5.0_20.2010.36-2_i386.tgz

* 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 &quot;104 connection reset by peer&quot; at the fakeroot steps below, then disable http pipelining with the next command:
 [sbox-FREMANTLE_X86: ~] &gt; echo 'Acquire::http::Pipeline-Depth &quot;0&quot;;' &gt;&gt; /etc/apt/apt.conf.d/00maemo

* either way, continue here:
 [sbox-FREMANTLE_X86: ~] &gt; sb-conf in -edFL
 [sbox-FREMANTLE_X86: ~] &gt; apt-get update
 [sbox-FREMANTLE_X86: ~] &gt; fakeroot apt-get install maemo-sdk-debug

The meta-package &lt;code&gt;maemo-sdk-debug&lt;/code&gt; installs all needed open source runtime, development and debug pakcages into the target. Use &lt;code&gt;maemo-sdk-runtime&lt;/code&gt; if you want only runtime packages to be installed or use &lt;code&gt;maemo-sdk-dev&lt;/code&gt; if you want only the runtime and development packages to be installed.

* Accept the EULA from [http://tablets-dev.nokia.com/eula/index.php here]  to obtain the URL to access the Nokia binaries repository.

* Add the URL thus obtained to the Scratchbox target's &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; and do the following:

 [sbox-FREMANTLE_X86: ~] &gt;apt-get update
 [sbox-FREMANTLE_X86: ~] &gt;fakeroot apt-get install nokia-binaries nokia-apps

* In order to facilitate installing applications under &lt;code&gt;/opt on the device, a symlink &lt;code&gt;/opt&lt;/code&gt; has been created pointing to &lt;code&gt;/home/opt&lt;/code&gt;. The SDK inherits this feature. Under Scratchbox, &lt;code&gt;/opt&lt;/code&gt; points to &lt;code&gt;/target/links/opt&lt;/code&gt; which in turn points to &lt;code&gt;/targets/&lt;target_name&gt;/opt&lt;/code&gt;. Installing the rootstraps makes this point to &lt;code&gt;/home/opt&lt;/code&gt;, which is not what we want, since we need &lt;code&gt;/opt,/code&gt; to be target specific. In order to resolve this situation,

 [sbox-FREMANTLE_X86: ~] &gt;rm -rf /targets/FREMANTLE_X86/opt
 [sbox-FREMANTLE_X86: ~] &gt;mkdir /targets/FREMANTLE_X86/opt

* Execute similar steps on the armel target too to set it up:

 [sbox-FREMANTLE_X86: ~]&gt; sb-conf se FREMANTLE_ARMEL
 [sbox-FREMANTLE_ARMEL: ~] &gt; sb-conf rs maemo-sdk-rootstrap_5.0_20.2010.36-2_armel.tgz
* again,the next command disables http pipelining, if you like:
 [sbox-FREMANTLE_X86: ~] &gt; echo 'Acquire::http::Pipeline-Depth &quot;0&quot;;' &gt;&gt; /etc/apt/apt.conf.d/00maemo

* pipelining disabled or not, here we go again...
 [sbox-FREMANTLE_ARMEL: ~] &gt; sb-conf in -edFL
 [sbox-FREMANTLE_ARMEL: ~] &gt; apt-get update
 [sbox-FREMANTLE_ARMEL: ~] &gt; fakeroot apt-get install maemo-sdk-debug

* Add the same URL obtained above to access the Nokia binaries repository under &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; file of the Scratchbox armel target.

 [sbox-FREMANTLE_ARMEL: ~] &gt;apt-get update
 [sbox-FREMANTLE_ARMEL: ~] &gt;fakeroot apt-get install nokia-binaries nokia-apps

* Create the &lt;code&gt;/opt&lt;/code&gt; directory.

 [sbox-FREMANTLE_ARMEL: ~] &gt;rm -rf /targets/FREMANTLE_ARMEL/opt
 [sbox-FREMANTLE_ARMEL: ~] &gt;mkdir /targets/FREMANTLE_ARMEL/opt

With this, you must now have both the targets setup and ready to use.

[[#Starting/Shutting down the SDK UI|Start the UI framework]].

==Un-installation==

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.

On Debian based systems, do the following with root permissions:

 $ sudo apt-get remove scratchbox-* --purge
 $ sudo rm -rf /scratchbox

On non-Debian based systems, you need to stop scratchbox as follows before removing it.

 $ sudo /scratchbox/sbin/sbox_ctl stop
 $ sudo rm -rf /scratchbox

'''not stopping scratchbox will keep the bindmounts and you'll nuke /proc /dev etc of your *real* system with the second line above!'''

==Limitations of Scratchbox==

The following limitations have been noted in the usage of Scratchbox:

===VDSO support===

Scratchbox versions [http://lists.scratchbox.org/pipermail/scratchbox-users/2010-June/001618.html prior to 1.0.18 (Hathor)] do not work when VDSO32 support is enabled in the host's kernel, although there are some workarounds for older versions, which are presented here.

If your host has VDSO32 turned on you will get an error like this when trying to login to Scratchbox.

 No directory, logging in with HOME=/
 Inconsistency detected by ld.so: rtld.c: 1192: dl_main: Assertion `(void *) 
 ph-&gt;p_vaddr == _rtld_local._dl_sysinfo_dso' failed!

===x86-64 kernel===

x86-64 Linux kernels starting from version 2.6.25 enable VDSO32 by default. To temporarily disable VDSO32 execute 

 sysctl abi.vsyscall32=0

On Linux kernel 2.6.24 &lt;= you can disable VDSO32 by executing

 sysctl vm.vdso_enabled=0

or

 sysctl kernel.vdso=0

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.

You can set all of these permanently by adding the following lines to &lt;code&gt;/etc/sysctl.conf&lt;/code&gt;

 vm.vdso_enabled = 0
 abi.vsyscall32 = 0
 kernel.vdso = 0

Save the file and run the command:

 $ sudo sysctl -p

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.

'''WARNING :''' You should try setting these values by echoing them to the given locations before adding them to &lt;code&gt;sysctl.conf&lt;/code&gt; 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 &lt;code&gt;sysctl.conf&lt;/code&gt; may, in these cases, make your system unbootable.

==Known Issues in the SDK==

* A list of issues and their solutions can be found in the [[Developer_FAQ#Maemo_SDK_and_Scratchbox|Developer FAQ]] article
* Unnecessary warnings and debugging messages are printed out when the hildon application framework is started.
* Armel target does not bring up the UI framework
* 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 Core 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;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.
* 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 [[Maemo 5 Clutter performance]] for more details.
* Running Xephyr with &lt;code&gt;-kb&lt;/code&gt; option disables entry of “@” symbol. However, removing &lt;code&gt;-kb&lt;/code&gt; option disables cursor keys.
* Running Xephyr with &lt;code&gt;-host-cursor&lt;/code&gt; is causing Xephyr to crash in Ubuntu Lucid and Debian Squeeze when the Hildon Application Framework is closed.
* Xephyr in Ubuntu Lucid does not support the &lt;code&gt;-kb&lt;/code&gt; option anymore. https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/531872
* In order to run ARMEL binaries in scratchbox the &lt;code&gt;mmap_min_address&lt;/code&gt; 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 [http://lists.scratchbox.org/pipermail/scratchbox-users/2010-June/001624.html prevents qemu from checking the value], in which case it is assumed to be 0. Because of this, until the bug is fixed (kernel 2.6.34 is unaffected, and at least that version will be in Maverick), the value should be set to 0 on Lucid.
** [http://talk.maemo.org/showpost.php?p=636394&amp;postcount=8 To install on Ubuntu 10.04] (restart installation afterwards):
 $ sudo su
 $ echo &quot;vm.mmap_min_addr = 0&quot; &gt;&gt; /etc/sysctl.conf
 $ sysctl -p
 $ exit #to go back to user

== Next steps ==

Once you have Scratchbox installed and the Maemo 5 UI running in Xephyr, you have everything you need to start building, packaging and developing software for the N900.

To get started with a sample application, try following this tutorial on [[packaging]].


[[Category:Scratchbox]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Documentation Guidelines</title>
    <id>3835</id>
    <revision>
      <id>34127</id>
      <timestamp>2010-05-10T11:52:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">{| width=&quot;100%&quot;
|
Nokia Corporation = MAEMO DOCUMENTATION GUIDELINES =&lt;div class=&quot;author_info&quot;&gt;'''maemo.org''''''18 February 2010'''&lt;/div&gt;
|}



----

&lt;div class=&quot;margins&quot;&gt;

* [[{{PAGENAME}}/A.1 Preface|A.1 Preface]]
* [[{{PAGENAME}}/Glossary|Glossary]]
* [[{{PAGENAME}}/Introduction|Introduction]]
* [[{{PAGENAME}}/Maemo document structure|Maemo document structure]]
* [[{{PAGENAME}}/General writing conventions|General writing conventions]]
* [[{{PAGENAME}}/Formatting in LaTeX |Formatting in LaTeX ]]
* [[{{PAGENAME}}/Bibliography|Bibliography]]
* [[{{PAGENAME}}/A. Maemo FDL license page|A. Maemo FDL license page]]
* [[{{PAGENAME}}/B. Maemo FDL-MIT license page|B. Maemo FDL-MIT license page]]

&lt;/div&gt;



----

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Documentation Guidelines/A.1 Preface</title>
    <id>3836</id>
    <revision>
      <id>34128</id>
      <timestamp>2010-05-10T11:53:42Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">= A.1 Preface =

= A.2 Legal notice =

Copyright (c) 2008-2010 Nokia Corporation

Nokia and Maemo are trademarks or registered trademarks of Nokia Corporation. Other product and company names mentioned herein may be trademarks or trade names of their respective owners.

= A.3 Disclaimer =

The information in this document is provided &quot;as is,&quot; with no warranties whatsoever, including any warranty of merchantability, fitness for any particular purpose, or any warranty otherwise arising out of any proposal, specification, or sample. This document is provided for informational purposes only. Nokia Corporation disclaims all liability, including liability for infringement of any proprietary rights, relating to implementation of information presented in this document. Nokia Corporation does not warrant or represent that such use will not infringe such rights.

Nokia Corporation retains the right to make changes to this material at any time, without notice.

= A.4 Licenses =

This document is licensed under the [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License, version 1.2].

Permission is granted to copy, distribute and/or modify documentation under the terms of the GNU Free Documentation License, version 1.2 or any later version published by the Free Software Foundation. Please refer to the copyright notice in each piece of documentation for Invariant Sections, Front-Cover Texts or Back-Cover Texts, if any, as defined in the License.

The code examples copyrighted by Nokia Corporation and included in this document are licensed to you under MIT-style license. License text for that MIT-style license is as follows:

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the &quot;Software&quot;), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Documentation Guidelines/A. Maemo FDL license page</title>
    <id>3837</id>
    <revision>
      <id>34129</id>
      <timestamp>2010-05-10T11:54:09Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">= A. Maemo FDL license page =

Maemo legal page tempate for Maemo documents that uses [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License, version 1.2] as base license. If document includes also code examples copyrighted by Nokia another legal page that has also MIT-style license must be used.

= A.1 Preface =

= A.2 Legal notice =

Copyright (c) 2008-2010 Nokia Corporation

Nokia and Maemo are trademarks or registered trademarks of Nokia Corporation. Other product and company names mentioned herein may be trademarks or trade names of their respective owners.

= A.3 Disclaimer =

The information in this document is provided &quot;as is,&quot; with no warranties whatsoever, including any warranty of merchantability, fitness for any particular purpose, or any warranty otherwise arising out of any proposal, specification, or sample. This document is provided for informational purposes only. Nokia Corporation disclaims all liability, including liability for infringement of any proprietary rights, relating to implementation of information presented in this document. Nokia Corporation does not warrant or represent that such use will not infringe such rights.

Nokia Corporation retains the right to make changes to this material at any time, without notice.

= A.4 Licenses =

This document is licensed under the [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License, version 1.2].

Permission is granted to copy, distribute and/or modify documentation under the terms of the GNU Free Documentation License, version 1.2 or any later version published by the Free Software Foundation. Please refer to the copyright notice in each piece of documentation for Invariant Sections, Front-Cover Texts or Back-Cover Texts, if any, as defined in the License.

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Documentation Guidelines/B. Maemo FDL-MIT license page</title>
    <id>3838</id>
    <revision>
      <id>34130</id>
      <timestamp>2010-05-10T11:54:37Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">= B. Maemo FDL-MIT license page =

Maemo legal page tempate for Maemo documents that uses [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License, version 1.2] as base license and MIT-style license for code examples copyrighted by Nokia.

= B.1 Preface =

= B.2 Legal notice =

Copyright (c) 2008-2010 Nokia Corporation

Nokia and Maemo are trademarks or registered trademarks of Nokia Corporation. Other product and company names mentioned herein may be trademarks or trade names of their respective owners.

= B.3 Disclaimer =

The information in this document is provided &quot;as is,&quot; with no warranties whatsoever, including any warranty of merchantability, fitness for any particular purpose, or any warranty otherwise arising out of any proposal, specification, or sample. This document is provided for informational purposes only. Nokia Corporation disclaims all liability, including liability for infringement of any proprietary rights, relating to implementation of information presented in this document. Nokia Corporation does not warrant or represent that such use will not infringe such rights.

Nokia Corporation retains the right to make changes to this material at any time, without notice.

= B.4 Licenses =

This document is licensed under the [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License, version 1.2].

Permission is granted to copy, distribute and/or modify documentation under the terms of the GNU Free Documentation License, version 1.2 or any later version published by the Free Software Foundation. Please refer to the copyright notice in each piece of documentation for Invariant Sections, Front-Cover Texts or Back-Cover Texts, if any, as defined in the License.

The code examples copyrighted by Nokia Corporation and included in this document are licensed to you under MIT-style license. License text for that MIT-style license is as follows:

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the &quot;Software&quot;), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Documentation Guidelines/Bibliography</title>
    <id>3839</id>
    <revision>
      <id>40035</id>
      <timestamp>2010-11-09T15:24:32Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve"># [http://www.apstylebook.com/ The Associated Press Stylebook]
# [http://www.collinslanguage.com Collins English Dictionary]
# [[:wikipedia:The Elements of Style|The Elements of Style]]
# [http://library.maemodocs.nokia.com Maemo Documentation Guidelines]
# [http://brandbook.nokia.com Nokia A-Z Marketing Language Guide]
# [http://brandbook.nokia.com Nokia Brand Book]

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Documentation Guidelines/Formatting in LaTeX</title>
    <id>3840</id>
    <revision>
      <id>40037</id>
      <timestamp>2010-11-09T15:48:41Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">This chapter includes information about how to format Maemo documentation text in LaTeX environment.

Basic instructions on how to use LaTeX can be found here in the [[wikibooks:LaTeX|LaTeX Wikibook]]

To be able to create a reference to a specific element in a document, you must label that element with the unique LaTeX special characters and especially spaces in the label name. Position &lt;code&gt;\label&lt;/code&gt; tag on the next row after the referenced element tag (like &lt;code&gt;\section&lt;/code&gt;).

For references, use &lt;code&gt;\ref&lt;/code&gt; tag with a unique label.

== Using LaTeX formatting commands ==

=== Using list of tables ===

Use &lt;code&gt;\listoftables&lt;/code&gt; to create a list of tables automatically. Used for PDF documents to get a more book-like result.

=== Using list of figures ===

Use &lt;code&gt;\listoffigures&lt;/code&gt; to create a list of figures automatically. Used for PDF documents to get a more book like result.

=== Using LaTeX special characters ===

LaTeX has special characters &lt;code&gt;_$#%{}^~{}&lt;/code&gt; that need to be handled in text with a special marking like &lt;code&gt;\_&lt;/code&gt;, &lt;code&gt;\$&lt;/code&gt;, &lt;code&gt;\#&lt;/code&gt;, &lt;code&gt;\%&lt;/code&gt;, &lt;code&gt;\{&lt;/code&gt;, &lt;code&gt;\}&lt;/code&gt;, &lt;code&gt;\^&lt;/code&gt; and &lt;code&gt;\~{}&lt;/code&gt;.

=== Using highlight for example code ===

Use &lt;code&gt;\textraw{Example text}&lt;/code&gt; or &lt;code&gt;\verb|Example text|&lt;/code&gt; to highlight command line examples, function names, and file names in base text. The difference between these two is that &lt;code&gt;\textraw&lt;/code&gt; allows normal LaTeX commands inside text will be ignored and handled as plain text.

Both &lt;code&gt;\textraw&lt;/code&gt; and &lt;code&gt;\verb&lt;/code&gt; will display given text in an appropriate fixed-width font.

{{ambox|text=&lt;code&gt;\textraw&lt;/code&gt; is a Maemo-specific definition and is usable only in the Maemo environment.}}

For example:

* Function &lt;code&gt;\textraw{example\_function\_name()}&lt;/code&gt;.
* Function &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;example_function_name()&lt;/font&gt;&lt;/span&gt;.

* Command &lt;code&gt;\textraw{\$ mkdir \~{}/folder}&lt;/code&gt;.
* Command &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;$ mkdir ~/folder&lt;/font&gt;&lt;/span&gt;.

* File &lt;code&gt;\verb|~/folder/example_file.txt|&lt;/code&gt;.
* File &lt;code&gt;~/folder/example_file.txt&lt;/code&gt;.

=== Using highlight for important words ===

Use ''Italics'' for other than command line examples and function or file names.

For example:

* This is &lt;code&gt;\textit{important example text}&lt;/code&gt;.
* This is ''important example text''.

=== Using highlight for user interface component names ===

Use '''Bold''' for UI element names in text. UI element name in text is the same as UI element caption in UI.

For example:

* This is &lt;code&gt;\textbf{UI Element Caption}&lt;/code&gt;.
* This is '''UI Element Caption'''.

=== Using normal headings ===

Use the chapter tag for level 0 chapters (a) together with a unique label. Use the section (for a.b), subsection (for a.b.c) or subsubsection (for a.b.c.d) tag together with unique label for other headings.

For example:

 Chapter:
  &lt;code&gt; \chapter{Example chapter title}&lt;/code&gt;
  &lt;code&gt; \label{cha:example-chapter-title}&lt;/code&gt;

 Section:
  &lt;code&gt; \section{Example section title}&lt;/code&gt;
  &lt;code&gt; \label{sec:example-chapter-title-example-section-title}&lt;/code&gt;

 Subsection:
  &lt;code&gt; \subsection{Example subsection title}&lt;/code&gt;
  &lt;code&gt; \label{sec:example-chapter-title-example-subsection-title}&lt;/code&gt;

 Subsubsection:
  &lt;code&gt; \subsubsection{Example subsubsection title}&lt;/code&gt;
  &lt;code&gt; \label{sec:example-chapter-title-example-subsubsection-title}&lt;/code&gt;

=== Using level 4 headings ===

Use '''Bold''' without a label for level 4 (a.b.c.d.e) headings. This way, level 4 titles are not numbered or included in the table of contents.

For example:

* &lt;code&gt;\textbf{Example level 4 title}&lt;/code&gt;
* '''Example level 4 title'''

=== Using command line and screen output examples ===

Use &lt;code&gt;{graybox}&lt;/code&gt; environment for command line and screen output examples that require more than one row.

{{ambox|text=&lt;code&gt;{graybox}&lt;/code&gt; is a Maemo-specific definition and is usable only in the Maemo environment.}}

Explicit new lines (&lt;code&gt;\\&lt;/code&gt;) need to be given inside &lt;code&gt;{graybox}&lt;/code&gt; environment to separate different rows. LaTeX special characters (&lt;code&gt;_$#%{}^~{}&lt;/code&gt;) need to be handled in text with special marking unless they are used inside &lt;code&gt;\verb&lt;/code&gt; command.

For example:

 &amp;lt;empty line is required before graybox&amp;gt;
  &lt;code&gt;\begin{graybox}&lt;/code&gt;
  &lt;code&gt; \$ First command line&lt;/code&gt;
  &lt;code&gt; \textraw{\$ Second line in TextRaw}&lt;/code&gt;
  &lt;code&gt; Third line has underscore (character '\_') and dollar sign (character '\$')&lt;/code&gt;
  &lt;code&gt;\end{graybox}&lt;/code&gt;

 $ First command line
  &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;$ Second line in TextRaw&lt;/font&gt;&lt;/span&gt;
 Third line has underscore (character '_') and dollar sign (character '$')

=== Using notes ===

Use &lt;code&gt;{notebox}&lt;/code&gt; environment for notes that require whole sentence or paragraph to be highlighted.

{{ambox|text=&lt;code&gt;{notebox}&lt;/code&gt; is a Maemo-specific definition and is usable only in the Maemo environment.}}

Explicit new lines (&lt;code&gt;\\&lt;/code&gt;) need to be given inside &lt;code&gt;{notebox}&lt;/code&gt; environment to separate different rows. LaTeX special characters (&lt;code&gt;_$#%{}^~{}&lt;/code&gt;) need to be handled in text with special marking unless they are used inside &lt;code&gt;\verb&lt;/code&gt; command.

For example:

 &lt;code&gt;\begin{notebox}&lt;/code&gt;
 This is note text inside a yellow box
  &lt;code&gt;\textraw{Second line in TextRaw}&lt;/code&gt;
  &lt;code&gt;Third line has underscore (character '\_') and dollar sign (character '\$')&lt;/code&gt;
  &lt;code&gt;\end{notebox}&lt;/code&gt;

{{ambox|text=This is note text inside a yellow box&lt;br/&gt;&lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;Second line in TextRaw&lt;/font&gt;&lt;/span&gt;&lt;br/&gt;Third line has underscore (character '_') and dollar sign (character '$')

=== Using code listings ===

Use &lt;code&gt;\lstset&lt;/code&gt; and &lt;code&gt;\lstinputlisting&lt;/code&gt; for listing source code for C/C++, CSS, HTML, Java, JavaScript, Latex, Pascal, Perl, PHP, Postscript, Python, Ruby, SQL, Tcl, Properties files, Makefile, XML, Log files, Ini files and Shell scripts.

For example:

 &lt;code&gt;\lstset{language=C}&lt;/code&gt;
  &lt;code&gt;\lstinputlisting{chapters/DocumentationGuidelines/snippets/example_source.c}&lt;/code&gt;

&lt;source lang=&quot;c&quot;&gt;
/*
* example_source.c, an example source code for kernel module
*
* Copyright (C) 2010 Nokia Corporation. All rights reserved.
*
* This maemo code example is licensed under a MIT-style license,
* that can be found in the file called &quot;COPYING&quot;.
*
*/

#include &lt;linux/module.h&gt; /* needed by all kernel modules */
#include &lt;linux/init.h&gt;   /* needed for custom init/exit functions */
#include &lt;linux/kernel.h&gt; /* needed for KERN_ALERT macro */

/* Special macro to indicate license (to avoid tainting the kernel) */
MODULE_LICENSE(&quot;Dual MIT/GPL&quot;);

static int hello_init(void) {
printk(KERN_ALERT &quot;Hello, world\n&quot;); /* top priority message */
return 0;
}

static void hello_exit(void)
{
printk(KERN_INFO &quot;Goodbye, world\n&quot;);
}

/* macros to mark modules init/exit funcs (run on insmod/rmmod) */
module_init(hello_init);
module_exit(hello_exit);
&lt;/source&gt;

=== Using figures ===

Use &lt;code&gt;\includegraphics&lt;/code&gt; for figures without a file name extension. For example, use &lt;code&gt;image_file_name&lt;/code&gt; instead of &lt;code&gt;image_file_name.png&lt;/code&gt;.

Use option &lt;code&gt;[H]&lt;/code&gt; for figure environment if the position of the figure related to base text cannot be changed by LaTeX . For example &lt;code&gt;\begin{figure}[H]&lt;/code&gt;.

{{ambox|text=Use &lt;code&gt;maemodoc-scaleimage&lt;/code&gt; command line tool to scale down figure files that are bigger than recommended maximum size of 600 × 1200 (width × height) pixels. Use option &lt;code&gt;[width=\textwidth]&lt;/code&gt; when including figures in LaTeX that are wider than 340 pixels.
|}

All figures must be centered and have both a caption and a label.

For example:

 &lt;code&gt;\begin{figure}[H]&lt;/code&gt;
  &lt;code&gt; \caption{Example picture}&lt;/code&gt;
  &lt;code&gt; \label{fig:example-chapter-title-example-picture}&lt;/code&gt;
  &lt;code&gt; \centering&lt;/code&gt;
  &lt;code&gt; \includegraphics[width=\textwidth]{folder/images/LaTeX_logo}&lt;/code&gt;
  &lt;code&gt;\end{figure}&lt;/code&gt;

&lt;div id=&quot;figure-example_picture&quot;&gt;
[[Image:LaTeX_logo.png|frame|center|alt=LaTeX logo|'''Figure 4.1:''' Example picture]]
&lt;/div&gt;

=== Combining small tables and figures ===

You can arrange small tables and figures side-by-side within the page width limitation.

The following figure environment arranges two small figures side-by-side and creates individual captions for each figure and one common caption for the whole figure environment.

&lt;source lang=&quot;latex&quot;&gt;
\begin{figure}[H]
\caption{Example logos}
\label{fig:example-chapter-title-example-logos}
\centering
\subfloat[ESbox]{
\includegraphics{chapters/DocumentationGuidelines/images/esbox_logo}
}
\subfloat[PluThon]{
\includegraphics{chapters/DocumentationGuidelines/images/pluthon_logo}
}
\end{figure}
&lt;/source&gt;

{| summary=&quot;Example logos&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 4.2:''' Example logos
|-
|
[ESbox] [[Image:esbox_logo.png|Image esbox_logo]] [PluThon] [[Image:pluthon_logo.png|Image pluthon_logo]]
|}

=== Referring to a section ===

Use a standard reference &lt;code&gt;\ref&lt;/code&gt; to refer to a section in base text. Use a unique label in a reference and refer only to sections inside the same level 1 section (a.b).

{|
|-
| [[Image:dialog-information.png]]
| '''Note:'''  Referring to the level 0 chapters (a) is not allowed because references can be used only inside same level 1 section (a.b).
|}

For example:

* For more information on example topic, see chapter &lt;code&gt;\ref{sec:example-chapter-title-example-section-title}&lt;/code&gt;.
* For more information on example topic, see chapter [[#Using LaTeX formatting commands]].

=== Referring to a figure ===

Use standard reference &lt;code&gt;\ref&lt;/code&gt; to refer to a figure in base text. Use a unique label in a reference and refer only to sections inside the same level 1 section (a.b).

For example:

* For more information on example topic, see figure &lt;code&gt;\ref{fig:example-chapter-title-example-picture}&lt;/code&gt;.
* For more information on example topic, see figure [[#figure-formatting-in-latex-example-picture|4.1]].

=== Referring to a table ===

Use standard reference &lt;code&gt;\ref&lt;/code&gt; to refer to a table in base text. Use a unique label in a reference and refer only to sections inside same level 1 section (a.b).

For example:

* For more information on example topic, see table &lt;code&gt;\ref{tab:example-chapter-title-example-table}&lt;/code&gt;.
* For more information on example topic, see table 4.1.

=== Using HTML links ===

Use &lt;code&gt;\htmladdnormallink&lt;/code&gt; for external references that are not included in the Maemo bibliography database. Notice that link text is normal LaTeX text and characters &lt;code&gt;_$#%{}^~&lt;/code&gt; need to be handled with special marking but URL can be any normal HTTP link.

For example:

* For more information on example topic, see &lt;code&gt;\htmladdnormallink{maemo.org}{http://www.maemo.org}&lt;/code&gt;.
* For more information on example topic, see [http://www.maemo.org maemo.org].

=== Using Maemo bibliography database ===

Use &lt;code&gt;\cite&lt;/code&gt; for external references from Bibliography database. All references to external documents that are other than product version specific documents (documents that are not expected to change regularly) must use Maemo bibliography database. Use LaTeX tag &lt;code&gt;\htmladdnormallink&lt;/code&gt; for references to product version specific documents.

Give document name in ''Italics'' before citation from bibliography database and join document name and citation together with tilde (~). Tilde prevents LaTeX from breaking the row between document name end and citation link.

For example:

* For more information on example topic, see document &lt;code&gt;\textit{Maemo Documentation Guidelines}&lt;/code&gt;&lt;code&gt;~\cite{bibliography-key}&lt;/code&gt;.
* For more information on example topic, see document ''Maemo Documentation Guidelines'' &lt;ref name=r4&gt;Maemo Documentation Guidelines. http://library.maemodocs.nokia.com&lt;/ref&gt;.
* For more information on example topic, see document &lt;code&gt;\textit{Maemo Documentation Guidelines}&lt;/code&gt;&lt;code&gt;~\cite[Formatting in LaTex]{bibliography-key}&lt;/code&gt;.
* For more information on example topic, see document ''Maemo Documentation Guidelines'' [[{{PAGENAME}}|Formatting in LaTex]].

=== Using normal tables ===

Use &lt;code&gt;\tabular&lt;/code&gt; and &lt;code&gt;\table&lt;/code&gt; to create tables. For example to create a table with two half-page-wide columns that can expand to new lines, use the following definition:

&lt;source lang=&quot;latex&quot;&gt;
\begin{tabular}{|p\{0.5\textwidth}|p{0.5\textwidth}|}
&lt;/source&gt;

To set the width for the whole table, use &lt;code&gt;{tabular*}&lt;/code&gt; with option &lt;code&gt;\textwidth&lt;/code&gt;:

&lt;source lang=&quot;latex&quot;&gt;
\begin{tabular*}{\textwidth}{|c|p{0.5\textwidth}|}
&lt;/source&gt;

To reduce column width use &lt;code&gt;@{}&lt;/code&gt;: &lt;code&gt;\begin{tabular}
&lt;nowiki&gt;{|@{}c@{}|c|}&lt;/nowiki&gt;&lt;/code&gt;.

To add horizontal lines between cells, use &lt;code&gt;\hline&lt;/code&gt;. To separate cells, use &lt;code&gt;&amp;&lt;/code&gt;. To change row, use &lt;code&gt;\\&lt;/code&gt;.

Use option &lt;code&gt;[H]&lt;/code&gt; for table environment if LaTeX cannot change the position of the table related to base text: &lt;code&gt;\begin{table}[H]&lt;/code&gt;.

All tables must be centered and have both a caption and a label.

For example:

&lt;source lang=&quot;latex&quot;&gt;
\begin{table}[H]
 \caption{Example normal table}
 \label{tab:example-chapter-title-example-table}
 \centering
 \begin{tabular}{|p{0.45\textwidth}|p{0.45\textwidth}|}
 \hline\hline
 \textbf{Column 1} &amp; \textbf{Column 2} \\
 \hline
 % Table data starts from here
 %
 1 &amp; 2 \\ \hline
 3 &amp; 4 \\ \hline
 5 &amp; 6 \\ \hline
 \hline
 \end{tabular}
\end{table}
&lt;/source&gt;

{| class=&quot;wikitable&quot;
|+ Table 4.1: Example normal table
|-
! Column 1
! Column 2
|-
| 1
| 2
|-
| 3
| 4
|-
| 5
| 6
|}

=== Using multi-column table rows ===

Use &lt;code&gt;\multicolumn&lt;/code&gt; to widen a table row to cover multiple columns. Avoid using multi-column cells for other purposes than creating subheadings for the table. If complex tables are needed create them outside LaTeX as images.

For example:

&lt;source lang=&quot;latex&quot;&gt;
&lt;code&gt;\multicolumn{2}{|l|}{\textbf{\textit{Table SubHeader}}} \\ \hline
&lt;/source&gt;

{| class=&quot;wikitable&quot;
|+ Table 4.2: Example multicolumn table
|-
! Column 1
! Column 2
|-
| colspan=&quot;2&quot; align=&quot;left&quot; | '''''SubHeader Left'''''
|-
| 1
| 2
|-
| colspan=&quot;2&quot; align=&quot;center&quot; | '''''SubHeader Center'''''
|-
| 3
| 4
|-
| colspan=&quot;2&quot; align=&quot;right&quot; | '''''SubHeader Right'''''
|-
| 5
| 6
|}

=== Using long tables ===

Use &lt;code&gt;{center}&lt;/code&gt; and &lt;code&gt;{longtable}&lt;/code&gt; environments to create tables that require multiple pages. For example, to create a table with two half-page-wide columns that can expand to new lines, use the following definition:

&lt;source lang=&quot;latex&quot;&gt;
\begin{longtable}{|p{0.45\textwidth}|p{0.45\textwidth}|}
&lt;/source&gt;

To reduce column width use &lt;code&gt;@{}&lt;/code&gt;:
&lt;source lang=&quot;latex&quot;&gt;
\begin{longtable}{|@{}c@{}|c|}
&lt;/source&gt;

To add horizontal lines between cells, use &lt;code&gt;\hline&lt;/code&gt;. To separate cells, use &lt;code&gt;&amp;&lt;/code&gt;. To change row, use &lt;code&gt;\\&lt;/code&gt;.

All tables must be centered and have both a caption and a label.

For example:

&lt;source lang=&quot;latex&quot;&gt;
\begin{center}
 \begin{longtable}
{|p{0.45\textwidth}|p{0.45\textwidth}|}
 \caption{Example long table}
 \label{tab:example-chapter-title-example-long-table}
 % FirstHead
 \hline\hline
 \textbf{Column 1} &amp;amp; \textbf{Column 2} \\ \hline
 \endfirsthead
 % Head
 \hline\hline
 \multicolumn{2}{|l|}{\small\tablename \thetable{}
 Continued from previous page} \\
 \hline\hline
 \textbf{Column } &amp;amp; \textbf{Column 2} \\ \hline
 \endhead
 % Foot
 \multicolumn{2}{|r|}{\small\tablename \thetable{}
 Continued to next page} \\
 \hline
 \endfoot
 % LastFoot
 \hline\hline
 \endlastfoot
 % Table data starts from here
 %
 1 &amp; 2 \\ \hline
 3 &amp; 4 \\ \hline
 5 &amp; 6 \\ \hline
 ... &amp; ... \\ \hline
 \end{longtable}
\end{center}
&lt;/source&gt;


{| class=&quot;wikitable&quot;
|+ Table 4.3: Example long table
|-
! Column 1
! Column 2
|-
| 1
| 2
|-
| 3
| 4
|-
| 5
| 6
|-
| 7
| 8
|-
| 9
| 0
|-
| 1
| 2
|-
| 3
| 4
|-
| 5
| 6
|-
| 7
| 8
|-
| 9
| 0
|-
| 1
| 2
|-
| 3
| 4
|-
| 5
| 6
|-
| 7
| 8
|-
| 9
| 0
|-
| 1
| 2
|-
| 3
| 4
|-
| 5
| 6
|-
| 7
| 8
|-
| 9
| 0
|-
| 1
| 2
|-
| 3
| 4
|-
| 5
| 6
|-
| 7
| 8
|-
| 9
| 0
|-
| 1
| 2
|-
| 3
| 4
|-
| 5
| 6
|-
| 7
| 8
|-
| 9
| 0
|-
| 1
| 2
|-
| 3
| 4
|-
| 5
| 6
|-
| 7
| 8
|-
| 9
| 0
|-
| 1
| 2
|-
| 3
| 4
|-
| 5
| 6
|-
| 7
| 8
|-
| 9
| 0
|-
| 1
| 2
|-
| 3
| 4
|-
| 5
| 6
|-
| 7
| 8
|-
| 9
| 0
|-
| 1
| 2
|-
| 3
| 4
|-
| 5
| 6
|-
| 7
| 8
|-
| 9
| 0
|-
| 1
| 2
|-
| 3
| 4
|-
| 5
| 6
|-
| 7
| 8
|-
| 9
| 0
|-
| 1
| 2
|-
| 3
| 4
|-
| 5
| 6
|-
| 7
| 8
|-
| 9
| 0
|-
| 1
| 2
|-
| 3
| 4
|-
| 5
| 6
|-
| 7
| 8
|-
| 9
| 0
|-
| ...
| ...
|}

=== Reducing the size of tables and figures ===

You can reduce the size of tables and figures that do not fit on the page without scaling them down.

{{ambox|text=Scaling and rotating does not work with tables, and reducing font size does not work with figures.}}

If the object is too long or wide, you can:

* reduce the size of the table font
* rotate the figure
* scale down the figure

==== Reduce the size of the table ====

To reduce the size of the table use the font size command inside the table environment to reduce the size of the table font. Font size commands in order from biggest to smallest are:

&lt;code&gt;Huge&lt;/code&gt;, &lt;code&gt;huge&lt;/code&gt;, &lt;code&gt;LARGE&lt;/code&gt;, &lt;code&gt;Large&lt;/code&gt;, &lt;code&gt;large&lt;/code&gt;, &lt;code&gt;normalsize&lt;/code&gt;, &lt;code&gt;small&lt;/code&gt;, &lt;code&gt;footnotesize&lt;/code&gt;, &lt;code&gt;scriptsize&lt;/code&gt; and &lt;code&gt;tiny&lt;/code&gt;.

==== Rotate and scale down a figure ====

To fit on the page, figures in Maemo documents are recommended to have maximum size of 600 × 1200 (width × height) pixels. If a figure is bigger than this, it needs to be rotated, scaled down, or both rotated and scaled down before it can be used. Maemo documentation infrastructure provides a command line tool for automatic figure rotation and scaling.

For Maemo documents figures wider than 340 pixels must be scaled down in LaTeX to fit to the default page width used in PDF documents. Figures wider than 600 pixels or higher than 1200 pixels are recommended to be scaled down with &lt;code&gt;maemodoc-scaleimage&lt;/code&gt; command line tool for them to be readable also in HTML documents.

{{ambox|text=Use &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;maemodoc-scaleimage&lt;/font&gt;&lt;/span&gt; command line tool to scale down figure files that are bigger than recommended maximum size of 600 × 1200 (width × height) pixels. Use option &lt;code&gt;[width=\textwidth]&lt;/code&gt; when including figures in LaTeX that are wider than 340 pixels.}}

Figures which are smaller than 340 × 1200 (width × height) pixels do not need to be scaled down either in LaTeX or with &lt;code&gt;maemodoc-scaleimage&lt;/code&gt; tool.

For example, the following command scales a figure down to the recommended maximum width and height.

 $ ./maemodoc-scaleimage &lt;image_file&gt; -outpath &lt;output directory&gt;

The following command rotates the figure 90 degrees anticlockwise if doing so reduces the amount of scaling needed. The command scales down the figure to the recommended maximum width and height only if the figure after rotation still does not fit on the page.

 $ ./maemodoc-scaleimage &lt;image_file&gt; -outpath &lt;output directory&gt; -rotate

== References ==

&lt;references /&gt;

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Documentation Guidelines/General writing conventions</title>
    <id>3841</id>
    <revision>
      <id>40049</id>
      <timestamp>2010-11-10T12:56:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">This section describes the general writing conventions for Maemo documentation. The writing conventions are based on ''Nokia Brand Book'' &lt;ref name=r6&gt;Nokia Brand Book. http://brandbook.nokia.com&lt;/ref&gt; and ''Nokia A-Z Marketing Language Guide'' &lt;ref name=r5&gt;Nokia A-Z Marketing Language Guide. http://brandbook.nokia.com&lt;/ref&gt;.

== Language to be used ==

Maemo documents are written in UK English.

If you need to check the spelling of some specific words, use Collins English Dictionary. For more information, use the ''Collins English Dictionary'' &lt;ref name=r2&gt;Collins English Dictionary. http://www.collinslanguage.com&lt;/ref&gt;.

== Headings ==

Maemo documents use the five heading styles and levels described in table 3.1.

{| class=&quot;wikitable&quot;
|+ Table 3.1: Heading styles and levels
|-
! Heading Style
! Level
! Numbering
|-
| &lt;code&gt;\chapter{Chapter title}&lt;/code&gt;
| 0
| (a)
|-
| &lt;code&gt;\section{Section title}&lt;/code&gt;
| 1
| (a.b)
|-
| &lt;code&gt;\subsection{Subsection title}&lt;/code&gt;
| 2
| (a.b.c)
|-
| &lt;code&gt;\subsubsection{Subsubsection title}&lt;/code&gt;
| 3
| (a.b.c.d)
|-
| &lt;code&gt;\textbf{Paragraph title}&lt;/code&gt;
| 4
| (a.b.c.d.e)
|}

Each level 0 chapter (a) must start from a separate page.

Each level 1 section (a.b) must have a generic &quot;a.1 Introduction&quot; section (as the first section). In the introductive section, add links to example applications used and API docs referred to in the section.

Level 3 subsubsections (a.b.c.d) are the lowest level included in the table of contents.

If the purpose is NOT to have a section number and NOT to include section to the table of contents, add an asterisk (&lt;code&gt;*&lt;/code&gt;) to the end of the header tag. For example, &lt;code&gt;\subsection*{Example title}&lt;/code&gt; creates a level 2 heading without numbering and without adding it into the table of contents.

It is also possible to create level 4 paragraphs (a.b.c.d.e) but no lower than that. A level 4 paragraph has the following special features by default:

* it is not included in the table of contents
* it does not use section numbering
* it cannot be referenced from the base text

For more information, see chapter [[#Creating cross-references and links]].

== Lists ==

List types can be divided into three categories:

; '''Unordered lists'''
: are also known as bullet lists. Use unordered lists when the specific order of the list items is not relevant.
; '''Ordered lists'''
: are also known as numbered lists. Use ordered lists when the order of the list items is relevant.
; '''Step lists'''
: are a subcategory of ordered lists, but used specifically for providing instructions on how to complete a procedure. Introduce each step list with an introductory sentence, using the syntax: ''To &amp;lt;do&amp;gt; &amp;lt;something&amp;gt;''.

Keep lists simple. Do not include code examples or other complex items like tables or figures as a part of a list item. Avoid using nested list.

== Tables ==

Keep tables as simple as possible. Use figures instead of complex tables.

Do not create complex structures, such as table cells including other elements than text. Avoid using multi-column cells for other purposes than creating subheadings for the table. If complex tables are needed create them outside LaTeX as images.

Basic instructions for table creation in LaTeX can be found from [[wikibooks:LaTeX/Tables|WikiBooks LaTex/Tables]].

Each table must have a title that can be referenced.

== Figures ==

When creating figures, it is recommended to use free graphics tools like [http://www.inkscape.org/ InkScape] or [http://www.gimp.org/ Gimp].

Provide figures in a high resolution format. If needed, high resolution figures are scaled down for HTML and PDF usage.

{{ambox|text=Screenshots can be low resolution if high resolution figures cannot be created.}}

For books and printing houses, resolution must be high enough. The recommendation is 300 dpi.

Use either PNG or JPEG format. PNG is recommended.

EPS format is not allowed in figures, because it cannot be used in PDF and HTML documents. For more information, see [[wikibooks:LaTeX/Importing_Graphics|WikiBooks LaTex/Importing Graphics]].

Basic instructions for figure creation in LaTeX can be found from [[wikibooks:LaTeX/Floats,_Figures_and_Captions|WikiBooks LaTex/Floats, figures and Captions]].

Each figure, including screen shots, must have a title that can be referenced.

== Highlighting important text ==

Use ''Italics'' to highlight important words in base text, apart from command line examples and function or file names. Do not use '''Bold''', or &lt;code&gt;TextRaw&lt;/code&gt; for highlighting.

Do not use ''Italics'' for the following items:

* sentences or chapters
* product or component names (capitalize first letters instead of using formatting)
* paragraph titles (use '''Bold''' instead)
* example code and file names (use &lt;code&gt;TextRaw&lt;/code&gt; instead)

Use Italics (at least) for the following items:

* important words that need special attention from the reader
* document names (with reference to Maemo Bibliography database)
* For more information on highlighting a whole sentence or chapter, see chapters [[#Highlighting example code]] and [[#Creating notes]]

== Highlighting example code ==

Use &lt;code&gt;TextRaw&lt;/code&gt; or &lt;code&gt;Verbatim&lt;/code&gt; to highlight command line examples and function or file names in base text. Do NOT use ''Italics'' for these. The difference between these two is that &lt;code&gt;TextRaw&lt;/code&gt; allows normal LaTeX commands inside text will be ignored and handled as plain text.

Use &lt;code&gt;TextRaw&lt;/code&gt; or &lt;code&gt;Verbatim&lt;/code&gt; to highlight the following items:

* paths and file names
* source code examples
* command line examples
* screen output examples
* environment variables
* domain names and IP addresses

Use &lt;code&gt;TextRaw&lt;/code&gt; for source code examples. Names need to be written exactly as in source code, for example, &lt;code&gt;ThumbButton&lt;/code&gt;, &lt;code&gt;SmallFont&lt;/code&gt;, &lt;code&gt;PANGO_SCALE_SMALL&lt;/code&gt;, and &lt;code&gt;ButtonTextColor&lt;/code&gt;.

Use &lt;code&gt;TextRaw&lt;/code&gt; for command line examples and file names, for example, &lt;code&gt;sources.list&lt;/code&gt;, &lt;code&gt;/opt/bin/share&lt;/code&gt;, and &lt;code&gt;apt-get install maemo-python-env&lt;/code&gt;.

Use references to the source code names in the following way:

* For user to be able to cancel operation without saving modified data you need to add &lt;code&gt;ThumbButton&lt;/code&gt; for your dialog.

For more information, see chapters [[#Highlighting important text]], [[#Code listings]], and [[#Command line and screen output examples]].

== Highlighting UI element names ==

Use '''Bold''' font to highlight user interface component caption names in text. For example, if you need to refer to a UI button with the caption '''Cancel''' use the caption '''Cancel''' as the element name and use '''Bold''' to highlight the name. Do NOT use ''Italics'', &lt;code&gt;TextRaw&lt;/code&gt; or &lt;code&gt;Verbatim&lt;/code&gt; for highlighting UI element names.

Use &lt;code&gt;TextRaw&lt;/code&gt; or &lt;code&gt;Verbatim&lt;/code&gt; only for referring to source code name of the UI element.

Use references to the UI element names in the following way:

* To cancel operation without saving modified data, press button '''Cancel''' in dialog.

For more information, see chapters [[#Highlighting important text]], [[#Code listings]], and [[#Command line and screen output examples]].

== Creating notes ==

Notes are used in documentation to make the reader pay attention to important issues that have to be taken into consideration. Do not add a note as a part of the body text. Instead, create each note on a separate row using &lt;code&gt;NoteBox&lt;/code&gt;:

{{ambox|text=This is an example of a note.}}

Before using a &lt;code&gt;NoteBox&lt;/code&gt; consider whether using ''Italics'' is enough to highlight the issue in the base text. Use &lt;code&gt;NoteBox&lt;/code&gt; only for very important issues and avoid ending a section with it.

== Creating cross-references and links ==

All Maemo documents must use the same LaTeX bibliography database. References added to the document from the bibliography database are added to the bibliography list automatically.

Use Maemo bibliography database references in the following way:

* For more information on Nokia Brand, see document ''Nokia Brand Book'' &lt;ref name=r6/&gt;.

To allow level 1 sections (a.b) to be reused in several different documents:

* Do not link between level 1 sections (a.b) within a document. For example, do not make links from level 1 section (x.y) to subsections, tables, or figures located in another level 1 section (x.z).
* Linking within level 1 section (x.y) is allowed.

Each level 1 section (a.b) must have a generic, introductive section (a.1 Introduction). The introductive section should contain:

* A short introduction text about the purpose of the section.
* Links to all example applications used in the section. The only allowed example links are to the [https://garage.maemo.org/svn/maemoexamples/ Maemo examples project] in Garage.
* Links to all API docs referenced in the section. Links out of &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;maemo.org&lt;/font&gt;&lt;/span&gt; are allowed for API docs.

If section Y referenced from the text is in the same level 1 section (a.b) as the text itself, create a section number link to section Y.

Use cross-references with section number link between sections in the following way:

* For more information on topic X, see chapter [[#Creating cross-references and links]].
* For more information on topic X, see figure [/node3.html#fig:documentation_guidelines-introduction-n900 1.1].
* For more information on topic X, see table 3.2.

If section Y referenced from the text is not in the same level 1 section (a.b) as the text itself, create a textual reference instead by using the chapter name in quotes. Do not use chapter numbers in textual references.

Use textual references between two level 1 sections (a.b) in the following way:

* For more information on references, see chapter &quot;How to write text references&quot;.
* For more information on references, see figure &quot;How to write text references&quot;.
* For more information on references, see table &quot;How to write text references&quot;.

Use Maemo bibliography database for references to other documents.

== Trademarks ==

To check the correct spelling of common Nokia trademarks and product names, see chapter [[#Product names]].

== Acronyms ==

To check the correct spelling of common Nokia trademarks and product names, see chapter [[#Product names]].

== Clear and concise language ==

Use clear and concise language. Use the imperative in instructions, and avoid using the passive voice or empty expressions, if possible. See examples about how to use clear language expressions in table 3.2.

{| class=&quot;wikitable&quot;
|+ Table 3.2: Examples for clear language
|-
! Problem
! Incorrect
! Correct
|-
| There is/are as an empty expression.
| There is a possibility to do X.
| You can do X.
|-
| It is as an empty expression.
| It is possible to install X.
| You can install X.
|-
| Have/has as passive voice or an empty verb.
| X has the option of including Y.
| X can include Y.
|-
| Be/are/been as passive voice.
| This is done by installing X.
| For this, install X.
|-
| Using the future tense.
| A window will open.
| A window opens. Instead of the future tense (will), use the present tense.
|-
| Providing options to the reader.
| You can do this or that.
| Do this. To be as clear as possible and to avoid any ambiguity, do not give the user several options about what they can do. Be as direct as possible.
|-
| Redundant politeness.
| Please.
| Please is an empty expression that can usually be omitted.
|-
| Gender-specific language.
| He/she.
| Instead of the gender-specific terms he or she, use the more neutral they.
|-
| Conditional.
| Would.
| Using the conditional gives the impression of uncertainty. Avoid the conditional, and use the present tense instead. If this is not possible, use can.
|-
| Conditional.
| May/might.
| Using the conditional gives the impression of uncertainty. Avoid the conditional, and use the present tense instead. If this is not possible, use can.
|}

== Conjunctions ==

Use properly the conjunctions given in table 3.3.

{| class=&quot;wikitable&quot;
|+ Table 3.3: Proper usage of conjunctions
|-
! Incorrect
! Correct
|-
| since
| because
|-
| as
| because (except when used as synonymous to like)
|-
| when
| because (not instead of if)
|}

== Shortkeys ==

Use &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;CTRL+C&lt;/font&gt;&lt;/span&gt; to refer to pressing the control and c keys together. Use the same &lt;code&gt;TextRaw&lt;/code&gt; text formatting for all Shortkeys in base text as for command line examples inside text.

== Abbreviations ==

To avoid sounding too casual, do not use apostrophes to mark possession or to form plural nouns. For more details, see table 3.4.

{| class=&quot;wikitable&quot;
|+ Table 3.4: Proper usage of abbvreviations
|-
! Incorrect
! Correct
|-
| &lt;nowiki&gt;*'ll&lt;/nowiki&gt;
| instead of the future tense, use the present tense.
|-
| &lt;nowiki&gt;*'re&lt;/nowiki&gt;
| write a two separate words, for example there are
|-
| &lt;nowiki&gt;*'s&lt;/nowiki&gt;
| instead of device's platform, write device platform or use the preposition of to form the possessive: the platform of the device
|}

== Code listings ==

Separate source code example listings that are not part of the base text must fulfill the following requirements:

* Code example needs to be inside a listing box that separates it from the base text.
* Listing box should be connected to the surrounding base text with a reference.
* Listing box must not have Caption or Label, e.g. listings cannot be refered from text.
* Each piece of source code used in the example must be taken from an official example application in a Garage project. The validity of all such code examples must be tested.
* All source code examples must use source code highlighting for better readability.
* All source code examples must include comments explaining the functionality.
* If the example code used is longer than 50 lines it is recommended (but not required) to include also copyright and licensing information in the beginning of the example code.

{{ambox|text=Each code example in a Garage project copyrighted by Nokia must use MIT-style licence to allow the free use of the example code.}}

Source code example types supported for listings are C/C++, CSS, HTML, Java, JavaScript, Latex, Pascal, Perl, PHP, Postscript, Python, Ruby, SQL, Tcl, Properties files, Makefile, XML, Log files, Ini files, Shell scripts and more.

The following is an example of how code listings can be connected to the surrounding text:

Example code below describes how to create...

&lt;source lang=&quot;c&quot;&gt;
/*
* example_source.c, an example source code for kernel module
*
* Copyright (C) 2010 Nokia Corporation. All rights reserved.
*
* This maemo code example is licensed under a MIT-style license,
* that can be found in the file called &quot;COPYING&quot;.
*
*/

#include &lt;linux/module.h&gt; /* needed by all kernel modules */
#include &lt;linux/init.h&gt;   /* needed for custom init/exit functions */
#include &lt;linux/kernel.h&gt; /* needed for KERN_ALERT macro */

/* Special macro to indicate license (to avoid tainting the kernel) */
MODULE_LICENSE(&quot;Dual MIT/GPL&quot;);

static int hello_init(void) {
printk(KERN_ALERT &quot;Hello, world\n&quot;); /* top priority message */
return 0;
}

static void hello_exit(void)
{
printk(KERN_INFO &quot;Goodbye, world\n&quot;);
}

/* macros to mark modules init/exit funcs (run on insmod/rmmod) */
module_init(hello_init);
module_exit(hello_exit);
&lt;/source&gt;

Example given above is the simplest way to implement...

Avoid ending a section with a listing box.

== Command line and screen output examples ==

Separate command line and screen output examples that are not part of base text and are not source code examples must fulfill the following requirements:

* Example needs to be inside a &lt;code&gt;GrayBox&lt;/code&gt; that separates it from the base text.
* Example box does NOT have a title and CANNOT be referenced.
* Example does NOT get automatic source highlighting.
* Example box should be connectied to the surrounding base text.

The following is an example of how a command line example within a &lt;code&gt;GrayBox&lt;/code&gt; can be connected to the surrounding text (notice that an empty line must be given before &lt;code&gt;GrayBox&lt;/code&gt;).

Following commands show how to...

 $ COMMAND LINE EXAMPLE IS HERE
 $ ANOTHER COMMAND LINE IS HERE

Commands given above can be used also in...

Avoid ending a section with a &lt;code&gt;GrayBox&lt;/code&gt;.

== Product names ==

The following is an initial list of Maemo product names in alphabetic order:

* Bora
* Chinook
* Debian
* [[Open development/Maemo roadmap/Diablo|Diablo]]
* [[Open development/Maemo roadmap/Fremantle|Fremantle]]
* Gregale
* [[Open development/Maemo roadmap/Harmattan|Harmattan]]
* Maemo
* maemo.org
* Maemo C++
* Maemo ESbox
* Maemo Flasher-3.5
* Maemo Host PC Connectivity
* Maemo Mica Framework
* Maemo PC Connectivity
* Maemo PluThon
* Maemo Python
* Maemo Qt4
* Maemo SDK
* Maemo SDK Virtual Image
* MaemoPad
* Mistral
* [[Nokia N800|N800]]
* [[Nokia N810|N810]]
* [[Nokia N810WME|N810 WiMAX Edition]]
* [[Nokia N900|N900]]
* [[Nokia 770]]
* Scirocco
* Scratchbox

The following table 3.5 presents the correct way to spell some product names:

{| class=&quot;wikitable&quot;
|+ '''Table 3.5:''' Proper usage of product names
|-
! Incorrect
! Correct
|-
| Maemo SDK(+)
| Maemo SDK
|-
| the Maemo SDK
| Maemo SDK
|-
| sbox
| Scratchbox
|-
| Maemo Virtual Image
| Maemo SDK Virtual Image
|-
| N810 Wimax
| N810 WiMAX Edition
|}

== References ==

&lt;references /&gt;

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Documentation Guidelines/Glossary</title>
    <id>3842</id>
    <revision>
      <id>39623</id>
      <timestamp>2010-10-20T08:10:05Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut maemo releases and link to [[codenames]]</comment>
      <text xml:space="preserve">; '''API'''
: Application Programming Interface, providing source code level compatibility.
; '''ESbox'''
: Eclipse product implementing integration between Eclipse IDE and Maemo SDK.
; '''GUI'''
: Graphical User Interface.
; '''IP'''
: Internet Protocol is a protocol used for communicating data across a packet-switched internetwork.
; '''LaTeX'''
: is a document markup language and document preparation system for the TeX typesetting program.
; '''Maemo'''
: Software platform for mobile devices developed by Nokia, based on GNU/Linux and GNOME/GTK+ technologies. It includes proprietary components to make it work on the Nokia Maemo compatible device.
; '''maemo.org'''
: Developer community web site maintained by Nokia, main point of reference for open source and third-party developers in general.
; '''Mica'''
: Maemo IDE Common Architecture, Eclipse plugin development framework used by ESbox, PluThon and other Maemo Eclipse products.
; '''OS'''
: Operating System or sometimes Open Source.
; '''PluThon'''
: Eclipse product implementing on-device Python development environment.
; '''Scratchbox'''
: cross-compilation toolkit designed to make embedded Linux application development easier and to cross-compile an entire Linux distribution.
; '''SDK'''
: Software Development Kit.
; '''TeX'''
: is a typesetting system that allows anybody to produce high-quality books using a reasonable amount of effort, and to provide a system that would give the exact same results on all computers.
; '''UI'''
: User Interface.
; '''XML'''
: eXtensible Markup Language.

== Maemo Releases ==

{{main|Codenames}}

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Documentation Guidelines/Introduction</title>
    <id>3843</id>
    <revision>
      <id>40050</id>
      <timestamp>2010-11-10T13:07:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify image formatting</comment>
      <text xml:space="preserve">''Maemo Documentation Guidelines'' is meant for Maemo documentation purposes only. This guide presents the general guidelines to be followed when writing and editing technical documentation for all Maemo platform and Maemo device releases, figure [[#figure-documentation_guidelines-introduction-n900|1.1]].

&lt;div id=&quot;figure-documentation_guidelines-introduction-n900&quot;&gt;
[[Image:Nokia N900 48.png|frame|center|alt=Photo of N900 with extended hardware keyboard|Figure 1.1: Maemo device - [[Nokia N900|N900]]]]
&lt;/div&gt;

''Maemo Documentation Guidelines'' provides editorial guidelines for content published by Maemo electronically or in print, including white papers, case studies and success stories, tutorials, technical documentation, news stories, Web pages, Web teasers and blurbs, and marketing material such as developer catalogues and brochures.

The following resources supplement this document:

* ''Nokia A-Z Marketing Language Guide'' &lt;ref name=r5&gt;Nokia A-Z Marketing Language Guide. http://brandbook.nokia.com&lt;/ref&gt; at [http://brandbook.nokia.com/ Nokia Brand Book] site (not publically available).
* ''Nokia Brand Book'' &lt;ref name=r6&gt;Nokia Brand Book. http://brandbook.nokia.com&lt;/ref&gt; at [http://brandbook.nokia.com/ Nokia Brand Book] site (not publically available).
* ''Collins English Dictionary'' &lt;ref name=r2&gt;Collins English Dictionary. http://www.collinslanguage.com&lt;/ref&gt; at [http://www.collinslanguage.com/ Collins Language] site.

In cases where guidelines in two or more resources conflict, the ones in Maemo Documentation Guidelines document take precedence, followed by the documents above in the order listed with the exception of spelling concerns. To resolve spelling concerns for words or terms, first consult the ''Collins English Dictionary''.

Certain points made in the reference materials above are repeated in this document for emphasis. With newly created content, follow the guidelines. When working on older, existing content, incorporate as many of the guidelines as possible, while maintaining consistency within each document or other unit of content.

Also note that ''The Elements of Style'' &lt;ref name=r3&gt;[[:wikipedia:The Elements of Style|The Elements of Style]].&lt;/ref&gt; provides excellent general guidance on language usage, composition, and style, and that ''The Associated Press Stylebook'' &lt;ref name=r1&gt;The Associated Press Stylebook. http://www.apstylebook.com/&lt;/ref&gt; is useful for issues of journalistic type, such as geographic references, that may come up in newsletters and the like.

Using this document by searching through it electronically is highly recommended. This guide largely follows the editorial style it recommends and can therefore in general be used as a style model. The comment do not use means precisely that; avoid means do not use except when nothing else will do.

Feedback about this guide is always welcome. In addition, before each version of the guide is distributed generally, a draft is sent out for review. Feedback or style queries should be directed to [mailto:documentation@maemo.org documentation@maemo.org]. Updated versions of this guide are released periodically.

== References ==

&lt;references /&gt;

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Documentation Guidelines/Maemo document structure</title>
    <id>3844</id>
    <revision>
      <id>36837</id>
      <timestamp>2010-07-15T07:48:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Maemo document structure */ wikify slightly</comment>
      <text xml:space="preserve">A typical Maemo document has the following structure:

 '''Cover page'''
  '''Preface'''
  '''Table of Contents'''
  '''List of Figures'''
  '''List of Tables'''
  '''Glossary'''
  '''Chapter Introduction'''
  - introduction to the whole document
  '''Chapter AAAAAA'''
  '''Section Introduction'''
  - introduction to the chapter
  - links to example applications
  - links to API documents
  '''Section BBBBBB'''
  '''SubSection bbbbbb'''
  '''SubSubSection dddddd'''
  '''Paragraph pppppp'''
  '''Section CCCCCC'''
  '''Section Summary'''
  - summary of the chapter
  - links for further reading
  '''Chapter XXXXXX'''
  '''Section Introduction'''
  - introduction to the chapter
  - links to example applications
  - links to API documents
  '''Section YYYYYY'''
  '''Section Summary'''
  - summary of the chapter
  - links for further reading
  '''Bibliography'''
  '''Appendix'''

The document structure given below assumes that each document chapter (except '''Introduction''' chapter for the whole document) is independent from other chapters and can be reused also for other documents, if needed.

; '''Cover page'''
: must have title, publishing date and references to both Nokia Corporation and maemo.org. Cover page will not be included to the table of contents.
; '''Preface'''
: must be based on templates available as appendixes for this ''Maemo Documentation Guidelines'' document. Base license must be [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License, version 1.2] and if document includes code examples copyrighted by Nokia they must use MIT-style license. Preface will not be included to the table of contents.
; '''List of Figures and Tables'''
: chapters are optional, for PDF documents only and will not be included to the table of contents.
; '''Glossary'''
: chapter is optional and will not be included to the table of contents.
; '''Introduction'''
: chapter for the whole document and sections for each chapter are mandatory and they do not have Subsections. Introduction section for each chapter must include links to supporting example applications and API documents used in that chapter.
; '''Chapter'''
: always starts from a new page and is independent from other chapters. Chapters can have four different level sections in their internal structure.
; '''Summary'''
: section for each chapter is optional but if used, should give reader links for further reading.
; '''Bibliography'''
: chapter is optional.
; '''Appendix'''
: chapters are optional. Each appendix must start from new page.

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Eclipse Tutorial</title>
    <id>3845</id>
    <revision>
      <id>36897</id>
      <timestamp>2010-07-16T07:20:14Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut formatting</comment>
      <text xml:space="preserve">'''maemo.org, 18 February 2010'''

* [[{{PAGENAME}}/Preface|Preface]]
* [[{{PAGENAME}}/Glossary|Glossary]]
* [[{{PAGENAME}}/Introduction|Introduction]]
* [[{{PAGENAME}}/Getting Started with Maemo Eclipse|Getting Started with Maemo Eclipse]]
* [[{{PAGENAME}}/Installation Methods|Installation Methods]]
* [[{{PAGENAME}}/Installing PluThon|Installing PluThon]]
* [[{{PAGENAME}}/Installing ESbox|Installing ESbox]]
* [[{{PAGENAME}}/Setting Up ESbox|Setting Up ESbox]]
* [[{{PAGENAME}}/Using PluThon|Using PluThon]]
* [[{{PAGENAME}}/Using ESbox|Using ESbox]]
* [[{{PAGENAME}}/Eclipse Tracing|Eclipse Tracing]]
* [[{{PAGENAME}}/Eclipse Memory Profiling|Eclipse Memory Profiling]]
* [[{{PAGENAME}}/Eclipse Performance Profiling|Eclipse Performance Profiling]]
* [[{{PAGENAME}}/Bibliography|Bibliography]]

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Eclipse Tutorial/Bibliography</title>
    <id>3846</id>
    <revision>
      <id>39993</id>
      <timestamp>2010-11-05T10:00:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly, add links</comment>
      <text xml:space="preserve">== Bibliography ==

# [http://linux.die.net/man/1/ltrace Ltrace Man Page]
# [[Documentation/Maemo PC Connectivity Tutorial|Maemo PC Connectivity tutorial]] or alternatively an [http://library.maemodocs.nokia.com off-site link].
# [[Documentation/devtools/maemo5/oprofile|oprofile with Maemo]] or alternatively an [http://maemo.org/development/tools/doc/diablo/oprofile/ off-site link].
# [http://oprofile.sourceforge.net/doc/index.html OProfile Manual]
# [http://valgrind.org/docs/manual/manual.html Valgrind Manual]

[[Category:Documentation]]
[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Eclipse Tutorial/Eclipse Memory Profiling</title>
    <id>3847</id>
    <revision>
      <id>41778</id>
      <timestamp>2011-02-11T11:39:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Uninitialised values */ add missing '&gt;'</comment>
      <text xml:space="preserve">Even if a developer provides an extensible round of tests, a certain type of problems cannot be easily detected by unit tests. In addition, such kind of problems may break the application and also disturb the normal execution of the platform. For example, a memory leak is a potential problem on applications for mobile devices, because it certainly consumes an important and limited resource. Maemo SDK provides [[Documentation/devtools/maemo5/valgrind|Valgrind]], a profiling tool often used to detect memory-related errors, such as memory leaks and problems on memory allocation.

Maemo IDE integration ESbox product provides support for profiling applications by using Valgrind memory profiler. This tutorial starts with a quick introduction to the Valgrind profiling tool. After that, it demonstrates how you can profile C/C++, Qt4 and Python applications at ESbox using the Valgrind memory profiler tool integration. Finally, you can see how to interpret Valgrind output at ESbox.

{{ambox
|text=Valgrind memory profiling cannot be used with Maemo PluThon Eclipse IDE. Valgrind profiler be run only with Scratchbox and Maemo SDK for x86 binaries and Maemo PluThon does not support those (it is on-device development environment for Maemo devices).
}}

== Valgrind Memory Profiling ==

Valgrind is an Open Source suite of tools for debugging and profiling Linux programs. For Maemo environment it i susable only for x86 binaries. It is a powerful and easy-to-use tool that can save you a lot of debugging time. Since Valgrind works by simulating the x86 processor and instrumenting the binaries on the fly, it can control the program execution completely. On the downside, it makes program execution 10-300 times slower than normal, depending on the used Valgrind tools, and can take a huge amount of memory.

The Valgrind tool suite provides a number of debugging and profiling tools:

; '''Cachegrind'''
: It is a profiler for cache memory. Cachegrind performs simulation of the I1, D1 and L2 caches in order to detect cache misses, wrong references and much more.
; '''Callgrind'''
: It is an extension of Cachegrind. It provides the same information as Cachegrind plus extra information about callgraphs.
; '''Massif'''
: It provides profilling information about heap memory by taking regular snapshots of a program's heap.
; '''Helgrind'''
: It is a useful tool to detect race conditions on multithreading applications, such as deadlocks.
; '''Memcheck'''
: It detects memory-management bugs on application. Memcheck keeps track of the validity (if a memory location is properly initialized) and addressability (if the memory address points to a valid memory block).

Since Valgrind tools instrument the code in order to obtain more accurate information about application execution, Memcheck is often used because it provides detailed information about memory problems, which are very common in mobile application development. It can detect many memory-related errors that are common in C and C++ programs and that can lead to crashes and unpredictable behaviour. Memcheck is the default tool on Maemo environment. The &lt;code&gt;-leak-check&lt;/code&gt; option turns on the detailed memory leak detector. Memcheck will issue messages about memory errors and leaks that it detects.

== Valgrind and IDE Integration ==

ESbox provides support only for the Valgrind memory (Memcheck) profiler tool for C/C++, Qt4 and Python projects. It uses the command &lt;code&gt;valgrind -q -tool=memcheck -leak-check=yes&lt;/code&gt; to run Valgrind memory check tool (Memcheck) with detailed memory leak detector. This section shows how to profile your applications at ESbox and how to analyse profiling results.

=== Installation ===

You do not need to care about Valgrind installation. Once ESbox starts to profile your application with Valgrind, the system checks if necessary packages are properly installed in the environment. If they are not, ESbox installs and configure them. All these steps are performed by Validation Packages wizards, as shown in figure [[#figure-eclipse_memory_profiling_install-valgrind|10.1]].

&lt;div id=&quot;figure-eclipse_memory_profiling_install-valgrind&quot;&gt;
[[Image:install-valgrind.png|frame|center|alt=Screenshot of Valgrind installation|Figure 10.1: Installing Valgrind to environment]]
&lt;/div&gt;

== Profiling your Maemo application with Valgrind ==

{{ambox
|text=Valgrind does not run on ARM Linux platform. Therefore, you can only use Valgrind with X86 Maemo SDK rootstraps.
}}

At first, you must create a C/C++, Qt4 or Python Maemo Project and select an X86 Scratchbox target. To run Valgrind, right-click on the application (binary for C/C++ and Qt4 projects or the Python script for Python projects) and select '''Profile As &amp;gt; Local Valgrind Memory Profiler''', figure [[#figure-eclipse_memory_profiling_valgrind-menu|10.2]]. If the tool is not properly installed at the selected target, the system can automatically install it for you, figure [[#figure-eclipse_memory_profiling_install-valgrind|10.1]].

&lt;div id=&quot;figure-eclipse_memory_profiling_install-valgrind&quot;&gt;
[[Image:valgrind-menu.png|frame|center|alt=Screenshot of Valgrind profiling an application|Figure 10.2: Profiling an application with Valgrind]]
&lt;/div&gt;

ESbox runs your application on the Maemo SDK X86 target and the result is shown in the Valgrind view, figure [[#figure-eclipse_memory_profiling_valgrind-view|10.3]]. All problems found by Valgrind are shown as a tree: problems as parent nodes and their details as children nodes. Valgrind error messages are explained in the [[#Analyzing results]] chapter.

&lt;div id=&quot;figure-eclipse_memory_profiling_valgrind-view&quot;&gt;
[[Image:valgrind-view.png|frame|center|alt=Screenshot of Valgrind view|Figure 10.3: Valgrind View]]
&lt;/div&gt;

{{ambox
|text=If you are planning to run the Valgrind profiler more than once, you will probably need to clear current Valgrind view results before running the current program. For that, you just need to click the '''Delete Current Sample''' button on the Valgrind view toolbar. If you do not, current results are merged with the older ones.
}}

=== Analyzing results ===

During Valgrind memory profiling, different problems can be detected, such as:

* Accessing memory locations that must not be accessed, for example, overrunning and underrunning heap blocks, overrunning the top of the stack, and accessing memory after it has been freed.
* Using undefined values, that is, values that have not been initialised, or that have been derived from other undefined values.
* Incorrect freeing of heap memory, such as double-freeing heap blocks, or mismatched use of &lt;code&gt;malloc&lt;/code&gt;/&lt;code&gt;new&lt;/code&gt;/&lt;code&gt;new[]&lt;/code&gt; versus &lt;code&gt;free&lt;/code&gt;/&lt;code&gt;delete&lt;/code&gt;/&lt;code&gt;delete[]&lt;/code&gt;.
* Overlapping src and dst pointers in &lt;code&gt;memcpy&lt;/code&gt; and related functions.
* Memory leaks.

This section presents a quick summary about some kinds of Valgrind error messages and how to interpret them.

==== Heap block overrun ====

A heap block overrun happens when you try to access (read/write) a block on heap memory that was not properly allocated. For example, an array of 10 integers is created (e.g, &lt;code&gt;array[10]&lt;/code&gt;), but you try to access the 11th element, which does not exist. Most C compilers do not warn about this problem, and it is often a potential source of bugs. Most error messages look like the following one, which describes the heap block overrun problem, figure [[#figure-eclipse_memory_profiling_heap-block|10.4]].

&lt;div id=&quot;figure-eclipse_memory_profiling_heap-block&quot;&gt;
[[Image:valgrind-1.png|frame|center|alt=Screenshot of Valgrind showing heap a block overrun|'''Figure 10.4:''' Heap block overrun]]
&lt;/div&gt;

You must read each error message carefully to understand its information.

* The number between &lt;code&gt;==&lt;/code&gt; symbols is the process ID (for example, &lt;code&gt;7068&lt;/code&gt;).
* The parent node (&lt;code&gt;Invalid read of size 4&lt;/code&gt;) tells you what kind of error it is. Here, this message says that the program performed an illegal 4-byte read of address &lt;code&gt;0x406CDC7&lt;/code&gt;, which, as far as Memcheck can tell, is not a valid stack address, nor corresponds to any current heap blocks or recently freed heap blocks.
* Details of the problems are shown as children nodes: a stack trace tells you where the problem occurred.
* The code addresses (for example, &lt;code&gt;0x406CDC7&lt;/code&gt;) are usually unimportant, but occasionally crucial for tracking down weird bugs.
* Some error messages have a second component which describes the memory address involved.

==== Memory leaks ====

Another kind of common error is the memory leak, which happens when you do not free previously allocated memory resources, for example arrays. For memory leaks, Valgrind outputs the following messages, figure [[#figure-eclipse_memory_profiling_memory-leak|10.5]].

&lt;div id=&quot;figure-eclipse_memory_profiling_memory-leak&quot;&gt;
[[Image:valgrind-2-memory-leak.png|frame|center|alt=Screenshot of Eclipse profiling a memory leak|'''Figure 10.5:''' Memory leak]]
&lt;/div&gt;

Message details tells you where the memory leak is happening. However, it does not tell you why the memory leaks. Among few kinds of leaks, there are two important categories.

* &lt;code&gt;Definitely lost&lt;/code&gt;: when the program is really leaking memory.
* &lt;code&gt;Probably lost&lt;/code&gt;: when the program is possibly leaking memory.

==== Uninitialised values ====

Memory check also reports uses of uninitialised values, commonly with the message conditional jump or move depends on uninitialised value(s), figure [[#figure-eclipse_memory_profiling_unini-values|10.6]].

&lt;div id=&quot;figure-eclipse_memory_profiling_unini-values&quot;&gt;
[[Image:valgrind-3-uninitialised-values.png|frame|center|alt=Screenshot of Eclipse profiling uninitialised values|Figure 10.6: Uninitialised values]]
&lt;/div&gt;

An uninitialised-value error is reported when your program uses a value which has not been initialised. In our example, the undefined value was used somewhere inside the &lt;code&gt;_dl_relocate_object&lt;/code&gt;.

==== System calls with invalid parameters ====

Another common error is a system call with invalid parameters, figure [[#figure-eclipse_memory_profiling_invalid-parameter|10.7]].

&lt;div id=&quot;figure-eclipse_memory_profiling_invalid-parameter&quot;&gt;
[[Image:valgrind-4.png|frame|center|alt=Screenshot of Eclipse profiling invalid parameters|Figure 10.7: Invalid parameters]]
&lt;/div&gt;

This error message shows that there is some uninitialised memory pointed to by &lt;code&gt;buf&lt;/code&gt; System call parameter.

There are also other kinds of error messages not listed at this document. More information about them can be found at ''Valgrind Manual'' &lt;ref name=r5&gt;Valgrind Manual. http://valgrind.org/docs/manual/manual.html&lt;/ref&gt;.

== References ==

&lt;references /&gt;

[[Category:Documentation]]
[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Eclipse Tutorial/Eclipse Performance Profiling</title>
    <id>3848</id>
    <revision>
      <id>40000</id>
      <timestamp>2010-11-05T14:30:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly, reformat images, add links</comment>
      <text xml:space="preserve">To obtain high-quality applications to be deployed on user's mobile devices, making sure that your application is bug-free is not enough. Mobile devices have limited resources, mainly CPU processing and memory. Also the way that applications interact with system resources impacts directly on performance. It is very problematic if your application crashes during execution. However, it can be worse if the application freezes due to excessive CPU processing, for example. The [[Documentation/devtools/maemo5/oprofile|OProfile]] tool can be used to monitor your application and define bottle necks in real-world systems. In order to find problems in performance, Maemo SDK also provides OProfile packages so it can be used to profiling Maemo applications as well Internet Tablet environments.

Maemo Eclipse IDE integration products (ESbox and PluThon) provide support to profiling applications by using OProfile profiling and monitoring tool. This tutorial starts with a quickly introduction to OProfile profiling and monitoring tool. After that, it demonstrates how you can profile C/C++, Qt4 and Python applications at ESbox and PluThon using the OProfile tool integration. Finally, you can see how to interpret OProfile output at ESbox and PluThon.

== OProfile ==

OProfile is an open source project that helps you to identify common performance issues, such as loop unrolling, poor cache utilization, inefficient type conversion and redundant operations, branch mispredictions, and so on. OProfile collects information about different counters: interrupt handlers, shared libraries, and much more. OProfile generates different outputs, ranging from simple tables with numbers that describe the total of samples registered during monitoring, to call graphs with detailed information about shared libraries. You can also obtain detailed source annotation, instruction-level reports and call graphs.

To start collecting profiling data, it is necessary to start &lt;code&gt;opcontrol&lt;/code&gt; tool. It is OProfile tool that collects the information that is then used to generate profiling reports. After profiling information has been collected with &lt;code&gt;opcontrol&lt;/code&gt; tool you can generate the reports you want to with &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;opreport&lt;/font&gt;&lt;/span&gt; tool.

You can use OProfile on Maemo devices. However, you need to enable it on the kernel, so OProfile can monitor the system and applications. For more information about this step, see the  chapter on [[#Configuring your Maemo device|configuring your Maemo device]].

== OProfile and IDE Integration ==

Both Maemo Eclipse IDE integration products ESbox and PluThon provide support for OProfile tool for C/C++, Qt4 and Python projects only on Maemo device environments. It does make sense to profile Maemo applications on Scratchbox with OProfile: it would catch also host machine interruptions, signals and produce a lot of other useless information so the result would not be accurate.

OProfile support on ESbox and PluThon uses the command &lt;code&gt;opreport -a -l -g&lt;/code&gt; to generate profiling reports. In such cases, OProfile generates the report with source file and line for each symbol (&lt;code&gt;-g&lt;/code&gt;) and it also accumulates sample and percentage counts in the symbol list (&lt;code&gt;-a&lt;/code&gt;). This section shows how to profile your applications at ESbox and PluThon and how to analyse profiling results.

=== Configuring your Maemo device ===

If you want to configure your device to profile Maemo applications, you need to enable the Maemo device kernel to execute OProfile on it. For more information, see documentation from the OProfile site like ''OProfile Manual'' &lt;ref name=r4&gt;OProfile Manual. http://oprofile.sourceforge.net/doc/index.html&lt;/ref&gt; and from maemo.org site like ''OProfiling with Maemo'' &lt;ref name=r3&gt;OProfiling with Maemo. http://maemo.org/development/tools/doc/diablo/oprofile/&lt;/ref&gt;.

ESbox and PluThon products can configure the OProfile environment for you. If the system detects that your Maemo device kernel is not properly configured, a dialog prompts the user (figure [[#figure-eclipse_performance_profiling_prompt_kernel|11.1]]) to configure the kernel for OProfile.

&lt;div id=&quot;figure-eclipse_performance_profiling_prompt_kernel&quot;&gt;
[[Image:oprofile-04.png|frame|center|alt=Screenshot of oprofile profiling an application|Figure 11.1: Profiling application with OProfile]]
&lt;/div&gt;

=== Profiling your Maemo application ===

At first, you must create a C/C++, Qt4 or Python project and select an &lt;code&gt;ARMEL&lt;/code&gt; Scratchbox target. To run OProfile, right-click on the application (binary for C/C++ and qt4 projects or the Python script for Python projects) and select '''Profile As &amp;gt; Remote OProfile Profiler''', figure [[#figure-eclipse_performance_profiling_oprofile-menu|11.2]]. If the tool is not properly installed at the selected target, the system can automatically install it for you.

&lt;div id=&quot;figure-eclipse_performance_profiling_oprofile-menu&quot;&gt;
[[Image:oprofile-01.png|frame|center|alt=Screenshot of OProfile launch menu|'''Figure 11.2:''' OProfile Launch Menu]]
&lt;/div&gt;

ESbox and PluThon runs your application on the Maemo device and the result is shown in the OProfile view, figure [[#figure-eclipse_performance_profiling_oprofile-view-05|11.3]]. All statistics found by OProfile are shown in an OProfile viewer, see the chapter on [[#Analyzing results|analyzing results]] for more details.

&lt;div id=&quot;figure-eclipse_performance_profiling_oprofile-view-05&quot;&gt;
[[Image:oprofile-05.png|frame|center|alt=Screenshot of OProfile viewer|Figure 11.3: OProfile View]]
&lt;/div&gt;

{{ambox
|text=If you are planning to run the OProfile profiler more than once, you will probably need to clear current OProfile view before running the current program. For that, you just need to click the '''Delete Current Sample''' button on the OProfile view toolbar. If you do not, current results are merged with the older ones.
}}

=== Analyzing results ===

Each line of OProfile viewer contains the following information:

; '''Samples'''
: Shows the number of samples for each symbol.
; '''Acummulate samples'''
: Outputs accumulate sample.
; '''Percentage'''
: Shows the percentage regarding to total samples for each binary image.
; '''Acummulate percentage'''
: Shows the accumulate percentage.
; '''Line info'''
: Provides source file and line for each symbol. If the source file is not provided, the label (&lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;no location information&lt;/font&gt;&lt;/span&gt;) is shown instead.
; '''Application name'''
: Shows the name of binary image.
; '''Symbol name'''
: Shows the symbol name. If the symbol name cannot be retrieved, the label (&lt;code&gt;no symbols&lt;/code&gt;) is shown instead.

On the following figure [[#figure-eclipse_performance_profiling_oprofile-view-08|11.4]], there is an example of OProfile chapter from a Maemo C project:

&lt;div id=&quot;figure-eclipse_performance_profiling_oprofile-view-08&quot;&gt;
[[Image:oprofile-08.png|frame|center|alt=Screenshot of OProfile view|Figure 11.4: OProfile View]]
&lt;/div&gt;

In this example, we used a very simple GTK application, which only contains a simple label. On the third line (the selected line), information about library &lt;code&gt;ld-2.5.so&lt;/code&gt; is shown in the table. For example, in about 12.030 samples (column '''Cum. Samples'''), the library was used on 10.879 samples (4.59%). Its symbol name is known as &lt;code&gt;/lib/ld-2.5.so&lt;/code&gt; (column '''Symbol Name'''). This library does provides source file, so no information can be shown on '''Line Info''' columm.

== References ==

&lt;references /&gt;

[[Category:Documentation]]
[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Eclipse Tutorial/Eclipse Tracing</title>
    <id>3849</id>
    <revision>
      <id>39998</id>
      <timestamp>2010-11-05T13:20:32Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly, reformat images, add links</comment>
      <text xml:space="preserve">IDE Integration provides support for Ltrace library call monitor profiling, available for ESbox and PluThon products. This tutorial presents a brief introduction to Ltrace and shows how to profile your applications at ESbox and PluThon using the Ltrace. Furthermore, it helps you understand how to interpret Ltrace debugging results.

In some cases, it might be useful to verify which are system calls and signals involved during a certain application execution. [[Documentation/devtools/maemo5/ltrace|Ltrace]] is a profiling tool, which runs a specified command until it exits. While the command is executing, Ltrace intercepts and records the dynamic library calls, which are called by the executed process and the signals received by that process. It can also monitor system calls used by a program.

== Ltrace and Eclipse IDE Integration ==

Maemo Eclipse IDE integration products (ESbox and PluThon) provide support for Ltrace tool for C/C++, Qt4 and Python projects on Maemo SDK and device environments. ESbox and PluThon use the command &lt;code&gt;ltrace -S -T&lt;/code&gt; to run Ltrace: &lt;code&gt;-S&lt;/code&gt; option to display system calls as well as library calls and &lt;code&gt;-T&lt;/code&gt; option to show the time spent inside each call. There are other options for Ltrace not used at IDE Integration, they can be found at &lt;ref name=r1&gt;Ltrace Man Page. http://linux.die.net/man/1/ltrace&lt;/ref&gt;. This section shows how to profile your applications at ESbox and PluThon and how to analyse profiling results.

=== Profiling your Maemo application with Ltrace ===

At first, you must create a C/C++, Qt4 or Python Maemo Project and select the target. After that, run the application with the Ltrace tool. The running can be local and remote for ESbox projects and remote for PluThon projects, as shown below.

==== Local Ltrace Profiling ====

To locally run LTrace on ESbox, right-click on the application (binary for C/C++ and Qt4 projects or the Python script for Python projects) and select '''Profile As &amp;gt; Local Ltrace Profiler''', figure [[#figure-eclipse_tracing_ltrace-menu-local|9.1]]. If the &lt;code&gt;ltrace&lt;/code&gt; tool is not properly installed at the selected target, the system can automatically install it, figure [[#figure-eclipse_tracing_install-ltrace|9.2]].

&lt;div id=&quot;figure-eclipse_tracing_ltrace-menu-local&quot;&gt;
[[Image:ltrace-menu-local.png|frame|center|alt=Screenshot of ltrace profling an application|Figure 9.1: Locally Profiling application with Ltrace]]
&lt;/div&gt;

&lt;div id=&quot;&quot;&gt;
[[Image:install-ltrace.png|frame|center|alt=Screenshot of ltrace installation|'''Figure 9.2:''' Installing Ltrace in the target]]
&lt;/div&gt;

After Ltrace starts, ESbox launches your application on the SDK target and the result is shown in the Ltrace view, figure [[#figure-eclipse_tracing_ltrace-view-local|9.3]].

&lt;div id=&quot;figure-eclipse_tracing_ltrace-view-local&quot;&gt;
[[Image:ltrace-view-local.png|frame|center|alt=Screenshot of local ltrace view|'''Figure 9.3:''' Local Ltrace View]]
&lt;/div&gt;

All library and system calls are shown as a table tree: parent nodes representing initial library or system calls and child nodes for each new nested call. Each node or line has four columns: Order, Call, Exit code and Time. By clicking on any column headers you can sort the lines by that column, and if you click again on the same column the sorter direction is inverted. Column '''Order''' is used as default sorter column.

==== Remote Ltrace Profiling ====

To remotely run LTrace on PluThon (or ESbox), right-click on the Python project and select '''Profile As &amp;gt; PluThon Remote Ltrace Python Profiler''', figure [[#figure-eclipse_tracing_ltrace-menu-remote|9.4]].

&lt;div id=&quot;figure-eclipse_tracing_ltrace-menu-remote&quot;&gt;
[[Image:ltrace-menu-remote.png|frame|center|alt=Screenshot of ltrace remotely profiling an application|'''Figure 9.4:''' Remotely Profiling application with Ltrace]]
&lt;/div&gt;

After Ltrace starts, PluThon launches your application on the Device and the result is shown in the Ltrace view as described before, figure [[#figure-eclipse_tracing_ltrace-view-remote|9.5]].

&lt;div id=&quot;figure-eclipse_tracing_ltrace-view-remote&quot;&gt;
[[Image:ltrace-view-remote.png|frame|center|alt=Screenshot of remote ltrace view|'''Figure 9.5:''' Remote Ltrace View]]
&lt;/div&gt;

{{ambox
|text=If you are planning to run the Ltrace profiler more than once, you do not have to worry about cleaning current Ltrace view results, because this is done automatically before each new profiling. However, if you need to clean the Ltrace view during the profiling, you just need to click '''Delete Current ltrace lines''' button on the Ltrace view toolbar, so the view is reset and keeps receiving current ltrace results.
}}

=== Analyzing results ===

During Ltrace profiling, all library and system calls are monitored and listed as a new node/line at Ltrace view. Each line has four columns:

* Order: the position of the call in the table tree view. This column restarts for each nested call.
* Description: the description of the library or system call.
* Exit: exit code of the call.
* Time: the time spent inside the call. This records the time difference between the beginning and the end of the call.

Let us analyse an Ltrace profiling using a Python Project at target &lt;code&gt;DIABLO_X86&lt;/code&gt;. After running the Python project with Ltrace you see the following results at Ltrace view, figure [[#figure-eclipse_tracing_ltrace-results-1|9.6]].

&lt;div id=&quot;figure-eclipse_tracing_ltrace-results-1&quot;&gt;
[[Image:ltrace-results-1.png|frame|center|alt=Screenshot of initial lines of ltrace result|Figure 9.6: Ltrace results - initial lines]]
&lt;/div&gt;

First, on the initial lines, we can see some system calls indicating that the program is being linked and loaded. For example, line 6 represents a system call named &lt;code&gt;SYS_open&lt;/code&gt; that exited with code -2 and took 0.000018 seconds to finish.

&lt;div id=&quot;figure-eclipse_tracing_ltrace-results-2&quot;&gt;
[[Image:ltrace-results-2.png|frame|center|alt=Screenshot of ltrace results|'''Figure 9.7:''' Ltrace results - program's main statement]]
&lt;/div&gt;

From the latest Ltrace lines (figure [[#figure-eclipse_tracing_ltrace-results-2|9.7]]) we can see at line 85 that the program reached the main statement, called &lt;code&gt;__libc_start_main&lt;/code&gt;. Notice also that the main statement has children nodes, that is, it has called another nested call (&lt;code&gt;PY_Main&lt;/code&gt;) that has called another nested calls, and so on.

== References ==

&lt;references /&gt;

[[Category:Documentation]]
[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Eclipse Tutorial/Getting Started with Maemo Eclipse</title>
    <id>3850</id>
    <revision>
      <id>40063</id>
      <timestamp>2010-11-11T14:53:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>link</comment>
      <text xml:space="preserve">This document is designed to help people who are unfamiliar with Maemo Eclipse support. It presents an introduction to the Eclipse environment in general and shows how the Maemo ESbox and PluThon products encapsulate Maemo development.

Eclipse is an open-source extensible software development platform. Its roots are in developing integrated development environments (IDEs) for different languages and environments. The Eclipse framework has been used, for example, to implement development tools for languages like Java, C/C++, Python, and XML.

ESbox is a product built on Eclipse for developing C/C++ and Python applications with Maemo SDK for Maemo devices. ESbox has some special support also for [[Qt4 development]], which uses C++ as programming language.

PluThon is a product built on Eclipse for developing Python applications without Maemo SDK for Maemo devices. With PluThon, development is done directly with a Maemo device instead of running and debugging the application first with Maemo SDK.

This chapter first presents some generic instructions and terminology useful for the Maemo Eclipse environment, and then provides actual installation and usage instructions for ESbox and PluThon.

== Eclipse Workspace ==

The first time you start ESbox or PluThon, it asks you to choose the workspace folder figure [[#fig-select_workspace|2.1]]. By default, a directory underneath the product directory is selected. Any writeable location may be used for workspace folder, but avoid directories with spaces in the name.

&lt;div id=&quot;fig-select_workspace&quot;&gt;
[[Image:select_workspace.png|frame|center|alt=unknown|'''Figure 2.1:''' Selecting a workspace folder]]
&lt;/div&gt;

The workspace holds projects and configuration settings. Generally, all work is stored in projects. A project may range in scope from a single application or library to a suite of programs, tests, documentation, and so on. Projects cannot be nested, although they may refer to each other in ordering builds.

Eclipse projects have ''Project Natures'', which determine what builders are associated with the project and what commands are available. You do not directly interact with natures; instead, new project wizards, import wizards, or project conversion wizards apply appropriate natures to the projects.

In traditional Eclipse usage, each project corresponds to a subdirectory of the workspace directory. However, in ESbox projects must be created in a location visible to Scratchbox, which is used as a base for Maemo SDK cross-compilation environment. When creating projects in ESbox always select a location inside your home directory in Scratchbox. With PluThon, programs are always copied or mounted onto a device, so the project location is more flexible.

Projects hold nested files and folders. Normally each folder corresponds to a subdirectory of the project directory, but a folder can also be linked to a directory anywhere in the filesystem. Projects, folders, files, and links are called ''Workspace Resources'' in Eclipse. Other content on your disk, such as SDK contents, are located outside the workspace and are called ''External Resources''. Unless otherwise noted, ''Resources'' refers to workspace resources.

To see where a particular resource resides on the disk, right-click it, select '''Properties''', and refer to the '''Resource''' node. The '''Location''' field displays the disk location.

&lt;div id=&quot;fig-properties_view&quot;&gt;
[[Image:properties_view.png|frame|center|alt=unknown|'''Figure 2.2:''' Properties view]]
&lt;/div&gt;

The workspace includes an important feature: it maintains a ''Local History'' of changes done to each resource. This makes it possible to compare a previously saved resource with older revisions. This history also minimises the risk of losing resources. However, the local history is limited in size, depending on the configuration.

In addition to the local history, you can integrate support for version control systems, called ''Team Providers'' in Eclipse, to support CVS, Subversion, Mercurial, git, and so on.

== Eclipse user interface ==

Eclipse runs in a window called ''Workbench''. Figure [[#fig-workbench|2.3]] shows the most important Workbench components.

&lt;div id=&quot;fig-workbench&quot;&gt;
[[Image:workbench.png|frame|center|alt=unknown|'''Figure 2.3:''' Basic Eclipse elements]]
&lt;/div&gt;

The basic elements of the environment include:

# Workbench: Eclipse's graphical user interface, a single application window that at any given time contains a number of different types of panes called views, and one special pane, the editor area.
# Perspective: the current set and layout of the views and editors in the workbench window. Each perspective provides several preselected sets of views arranged in a predetermined way, which means that you do not have to worry about what views to choose or how to arrange current views. Actions such as closing, opening, or rearranging views modifies the perspective.
# View: a visual container to display a particular specialized user interface. Typically, a view contains a data grid or tree structure. As Eclipse can illustrate the same information in many different ways, it has many different kinds of views. For example, the ''Package Explorer'' view represents programming projects from a high-level perspective, while the ''Navigator'' view shows the low-level filesystem layout of the project.
# Short Cut Bar: a set of icons that enables the user to access different perspectives quickly.
# Menu Bar: a set of content-sensitive actions that enables the execution of some predefined function.
# Tool Bar: a set of context-sensitive actions that enables the execution of some predefined function. All the items found within the toolbar appear within the menu bar.
# Editor: the primary tool used to display and manipulate data. Eclipse includes different types of editors for different types of documents. When you select (or create) a document in Eclipse, it opens a default editor based on the file type. You can also explicitly select which editor to use ('''File -&amp;gt; Open With'''), and this preference is recorded. For example, ESbox and PluThon include specialised C/C++ and Python source editors, but you may also choose to edit source as raw text.

The workspace preferences and settings for Eclipse are contained in one main place: '''Windows -&amp;gt; Preferences'''. This dialog contains the union of preference settings for all the components installed into Eclipse. Make use of the '''Filter text''' field, since it can help you find topics in the pages. Almost all settings will take effect when you select '''Ok''' or '''Apply'''.

&lt;div id=&quot;fig-preferences_dialog&quot;&gt;
[[Image:preferences_dialog.png|frame|center|alt=unknown|'''Figure 2.4:''' Preferences dialog]]
&lt;/div&gt;

== Useful shortcuts ==

* &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;Ctrl-Shift-R&lt;/font&gt;&lt;/span&gt; (&lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;Cmd-Shift-R&lt;/font&gt;&lt;/span&gt;): open any resource in the workspace
* &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;Ctrl-Shift-L&lt;/font&gt;&lt;/span&gt; (&lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;Cmd-Shift-L&lt;/font&gt;&lt;/span&gt;): quick key shortcut dialog
* &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;Ctrl-`&lt;/font&gt;&lt;/span&gt;&lt;nowiki&gt;: (in C/C++ editor) swap header and source &lt;/nowiki&gt;
* &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;Ctrl-3&lt;/font&gt;&lt;/span&gt;&lt;nowiki&gt;: find almost any user interface in your installation &lt;/nowiki&gt;

== Eclipse and ESbox/PluThon ==

The ESbox and PluThon products add support to Eclipse for Maemo SDK and Maemo devices. To integrate ESbox and PluThon to the Maemo device, a connectivity framework called Maemo PC Connectivity needs to be installed on the Maemo device and another framework called Host PC Connectivity needs to be installed on the host PC. These PC Connectivity products implement the connectivity between the Maemo device and the host PC to create a base for the Maemo development environment.

Important entry points:

* '''Window -&amp;gt; Preferences -&amp;gt; Maemo'''&lt;nowiki&gt;: in the event of bugs, navigate here and enable &lt;/nowiki&gt;'''Log commands'''. The command log is important for diagnosing problems.
* '''Window -&amp;gt; Preferences -&amp;gt; Maemo -&amp;gt; Installed Targets'''&lt;nowiki&gt;: the detected Maemo SDKs on your system, and the Maemo-compatible device connections are here. This tree appears in various wizards provided by these products, and sometimes in combo boxes. Anywhere this UI appears, you can get a menu of useful commands by right-clicking. &lt;/nowiki&gt;
* '''File -&amp;gt; New -&amp;gt; Other -&amp;gt; Maemo Installers'''&lt;nowiki&gt;: the wizards for installing a full development environment, including a virtual disk image for ESbox are here. &lt;/nowiki&gt;

ESbox performs builds and launches by generating essentially the same commands you would otherwise enter on the command line inside Maemo SDK, with the advantage that you do not have to manually enter them.

When not running Eclipse IDE and ESbox on a Linux/x86 host, you must use a Maemo SDK Virtual Image, because the Maemo SDK runs only on Linux/x86. ESbox transparently sends commands to the virtual image and Maemo SDK over SSH. Running Eclipse IDE and PluThon does not require Maemo SDK or Maemo SDK Virtual Image, as it uses Maemo device to launch applications.

When developing an application locally, ESbox automatically launches it in Maemo SDK (which may reside inside Maemo SDK Virtual Image) in a local X server. When launching or debugging remotely, ESbox lets you select a Maemo device and it copies your program or mounts its directory from the host PC to a Maemo device for you.

PluThon uses the PyDev project to provide Python editing and code completion. There are no project builds as Python is an interpreted programming language and thus Maemo SDK is not needed on a host PC. All launches of Python applications from Eclipse are remote, meaning no Scratchbox is needed.

== Using the ESbox and PluThon Help Documentation ==

The ESbox and PluThon help documentation was implemented using the Eclipse IDE Help system. This system lets you browse and search help documentation. The documentation is organized into topics to make the search easier. The help system also supplies a text search capability for finding the information you need by search phrase or keyword, and context-sensitive help for finding information to describe the particular function you are working with. You can access the help system in the workbench by two ways: in a separated '''Help window''' as shown in figure [[#fig-help_menu|2.5]] or using the '''Help view''' as shown in figure [[#fig-help_search|2.6]].

&lt;div id=&quot;fig-help_menu&quot;&gt;
[[Image:help_menu.png|frame|center|alt=unknown|'''Figure 2.5:''' Help in a separate Window]]
&lt;/div&gt;

&lt;div id=&quot;fig-help_search&quot;&gt;
[[Image:help_search.png|frame|center|alt=unknown|'''Figure 2.6:''' Help in the Help View]]
&lt;/div&gt;

If you access Help in a separate Window you see a Window like figure [[#fig-help_esbox|2.7]]. On the left you can see all Help Contents topics, and their information is shown on the right.

&lt;div id=&quot;fig-help_esbox&quot;&gt;
[[Image:help_esbox.png|frame|center|alt=unknown|'''Figure 2.7:''' ESbox Help]]
&lt;/div&gt;

The second way of accessing Help is to make a help documentation search. For example, if you want to know more details about Maemo Targets, all you need to do is to open the '''Help View''' and search for these keywords, as shown in figure [[#fig-help_view_esbox|2.8]]. All related topics are returned. This search can also be done in the separate '''Help Window'''.

&lt;div id=&quot;fig-help_view_esbox&quot;&gt;
[[Image:help_view_esbox.png|frame|center|alt=unknown|'''Figure 2.8:''' Help View]]
&lt;/div&gt;

PluThon Help Documentation can be accessed in the same way as ESbox help as shown in figure [[#fig-help_pluthon|2.9]].

&lt;div id=&quot;fig=help_pluthon&quot;&gt;
[[Image:help_pluthon.png|frame|center|alt=unknown|'''Figure 2.9:''' PluThon Help Documentation]]
&lt;/div&gt;

[[Category:Documentation]]
[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Eclipse Tutorial/Glossary</title>
    <id>3851</id>
    <revision>
      <id>39622</id>
      <timestamp>2010-10-20T08:08:02Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut toplevel heading</comment>
      <text xml:space="preserve">; '''ABI'''
: Application Binary Interface, providing object code level compatibility.
; '''API'''
: Application Programming Interface, providing source code level compatibility.
; '''applet'''
: A small application that integrates to ''Hildon Desktop''.
; '''ARMEL'''
: A name that e.g. Debian uses for the little endian ARM EABI (''ABI'' for the ARM architecture).
; '''Bluetooth'''
: is an open wireless protocol for exchanging data over short distances (using short length radio waves) from fixed and mobile devices, creating personal area networks (PANs).
; '''CDT'''
: Eclipse C/C++ Development Toolkit.
; '''CIFS'''
: Common Internet File System (also known as Server Message Block, SMB) operates as an application-layer network protocol mainly used to provide shared access to files, printers, serial ports, and miscellaneous communications between nodes on a network.
; '''CVS'''
: Concurrent Versions System.
; '''devkit'''
: The part of ''Maemo SDK'' that contains software development tools. Maemo SDK contains multiple devkits.
; '''DHCP'''
: Dynamic Host Configuration Protocol is a computer networking protocol used by hosts (DHCP clients) to retrieve IP address assignments and other configuration information.
; '''DSDP'''
: Eclipse Device Software Development Platform.
; '''DSF'''
: Eclipse Debugger Services Framework.
; '''ECF'''
: Eclipse Communication Framework.
; '''ESbox'''
: Eclipse product implementing integration between Eclipse IDE and Maemo SDK.
; '''GDB'''
: GNU Project debugger.
; '''GUI'''
: Graphical User Interface.
; '''GTK'''
: Toolkit for creating graphical user interfaces with support for cross platform compatibility.
; '''[[Hildon]]'''
: Application framework used in the ''Maemo platform''. Developed by Nokia and based on GNOME/GTK+ technologies, currently in the process of becoming an upstream project in gnome.org.
; '''Hildon Desktop'''
: The main user interface component of Maemo Chinook, rewrite of ''Maemo desktop''.
; '''ID'''
: Identifier.
; '''IDE'''
: Integrated Development Environment like Eclipse or QtCreator.
; '''IP'''
: Internet Protocol is a protocol used for communicating data across a packet-switched internetwork.
; '''JDK'''
: Java Development Kit.
; '''JRE'''
: Java Runtime Environment.
; '''JVM'''
: Jave Virtual Machine.
; '''ltrace'''
: Debugging utility to monitor the library calls used by a program and all the signals it receives. It can also show system calls, used by program.
; '''Maemo'''
: Software platform for mobile devices developed by Nokia, based on GNU/Linux and GNOME/GTK+ technologies. It includes proprietary components to make it work on the Nokia Maemo compatible device.
; '''maemo.org'''
: Developer community web site maintained by Nokia, main point of reference for open source and third-party developers in general.
; '''Mica'''
: Maemo IDE Common Architecture, Eclipse plugin development framework used by ESbox, PluThon and other Maemo Eclipse products.
; '''NFS'''
: Network File System is a network file system protocol allowing a user on a client computer to access files over a network in a manner similar to how local storage is accessed.
; '''OProfile'''
: System-wide profiler for Linux systems.
; '''OS'''
: Operating System or sometimes Open Source.
; '''PluThon'''
: Eclipse product implementing on-device Python development environment.
; '''Pydev'''
: Python IDE for Eclipse, which can be used in Python development.
; '''rootstrap'''
: Part of the SDK that contains selected software components from rootfs. Rootstrap is the root file system of a target inside Scratchbox.
; '''RSE'''
: Eclipse Remote System Explorer.
; '''rsync'''
: is a software application which synchronizes files and directories from one location to another while minimizing data transfer using delta encoding when appropriate.
; '''Samba'''
: is a free software re-implementation of SMB/CIFS networking protocol providing file and print services for various Microsoft Windows clients and can integrate with a Windows Server domain.
; '''SBRSH'''
: Scratchbox Remote Shell remote command execution system similar to RSH and SSH and designed for slow devices and Scratchbox's special requirements in mind.
; '''Scratchbox'''
: cross-compilation toolkit designed to make embedded Linux application development easier and to cross-compile an entire Linux distribution.
; '''SDK'''
: Software Development Kit.
; '''[[SSH]]'''
: Secure Shell network protocol that allows data to be exchanged using a secure channel between two networked devices.
; '''SSHFS'''
: SSH Filesystem or Secure SHell Filesystem is a file system client that may be used on operating systems for which an implementation of FUSE is available.
; '''TCF'''
: Eclipse Target Communication Framework.
; '''toolchain'''
: Part of the SDK that contains ARM cross compilation tools, such as compiler and linker.
; '''UI'''
: User Interface.
; '''USB'''
: Universal Serial Bus is a specification to establish communication between devices and a host controller (usually personal computers).
; '''Valgrind'''
: Tool suite for debugging and profiling Linux programs.
; '''VM'''
: Virtual Machine.
; '''VNC'''
: Virtual Network Computing is a graphical desktop sharing system that uses the RFB protocol to remotely control another computer transmiting the keyboard and mouse events from one computer to another and relaying the graphical screen updates back in the other direction, over a network.
; '''X11'''
: X Window System is a computer software system and network protocol that provides a GUI for networked computers.
; '''XML'''
: eXtensible Markup Language.

== Maemo Releases ==

{{main|Codenames}}

[[Category:Documentation]]
[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Eclipse Tutorial/Installation Methods</title>
    <id>3852</id>
    <revision>
      <id>38618</id>
      <timestamp>2010-09-15T10:15:10Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>reformat images, wikify slightly</comment>
      <text xml:space="preserve">== PC Connectivity ==

In order to communicate with your Maemo device, a set of daemons and utilities needs to be installed to the host PC and Maemo device.

Find the complete description and installation instructions on the [http://pc-connectivity.garage.maemo.org/ PC Connectivity project web site] and [[Documentation/Maemo PC Connectivity Tutorial|Maemo PC Connectivity tutorial]].

=== Maemo PC Connectivity ===

On the Maemo device, you need the other half of PC Connectivity, Maemo PC Connectivity, containing the servers that match the clients installed on the host PC side with Host PC Connectivity. The Maemo PC Connectivity requires either Diablo or Fremantle based Maemo device (N800, N810 or N900).

[[Image:dialog-information.png|frame|center|alt=unknown|'''Note:'''  You can update your Maemo device operating system using the '''File &amp;gt; New &amp;gt; Other &amp;gt; Maemo Installers &amp;gt; Flash Images to Device''' Eclipse IDE wizard or Maemo Flasher-3.5 command line tool.]]

Install the Maemo PC Connectivity on the Mameo device before installing Maemo ESbox or PluThon Eclipse IDE environments.

=== Host PC Connectivity ===

Host PC Connectivity provides host-side software, like SSH and SBRSH clients, Rsync, FTP client, and the TightVNC viewer. These are packaged together conveniently for installation on Linux, Windows, and Mac OS X Intel.

Install the Host PC Connectivity on the host PC before installing Maemo ESbox or PluThon Eclipse IDE environments.

== Installation via Product Archives ==

The Product Archives come in two parts: a common archive, containing the bulk of the installation, and an OS-specific archive. If your host OS is not represented, please use Maemo update sites installation for the best results.

The distributed archives can be extracted anywhere on your system to provide a full Eclipse Ganymede SR2 environment with ESbox or PluThon and all its dependencies pre-installed.

The installation from product archives is upgradeable to new versions using Maemo Update Site.

=== Product Archives ===

For ESbox download archives from [https://garage.maemo.org/frs/?group_id=192 ESbox Garage project download] page.

For PluThon download archives from [https://garage.maemo.org/frs/?group_id=247 PluThon Garage project download] page.

==== Linux/x86 ====

ESbox archives:

* &lt;code&gt;esbox_2.0.0-R20091216-common.zip&lt;/code&gt;
* &lt;code&gt;esbox_2.0.0-R20091216-linux.gtk.x86.zip&lt;/code&gt;

PluThon archives:

* &lt;code&gt;pluthon_2.0.0-R20091216-common.zip&lt;/code&gt;
* &lt;code&gt;pluthon_2.0.0-R20091216-linux.gtk.x86.zip&lt;/code&gt;

[[Image:dialog-information.png|frame|center|alt=unknown|'''Note:'''  In Ubuntu 9.10, Fedora 11, or other platforms using GTK+ 2.18 and/or Mozilla xulrunner 1.19, you must launch ESbox with the script &lt;code&gt;esbox.sh&lt;/code&gt; and PluThon with the script &lt;code&gt;pluthon.sh&lt;/code&gt; included in the archives. Otherwise, Eclipse will fail to start and/or will have erratic UI. See [http://mou.me.uk/2009/10/31/fixing-eclipse-in-ubuntu-9-10-karmic-koala/ this post for GTK+ details] and [http://mou.me.uk/2009/10/31/fixing-eclipse-in-ubuntu-9-10-karmic-koala/ this bug for xulrunner information].]]

==== Windows/x86 ====

ESbox archives:

* &lt;code&gt;esbox_2.0.0-R20091216-common.zip&lt;/code&gt;
* &lt;code&gt;esbox_2.0.0-R20091216-win32.win32.x86.zip&lt;/code&gt;

PluThon archives:

* &lt;code&gt;pluthon_2.0.0-R20091216-common.zip&lt;/code&gt;
* &lt;code&gt;pluthon_2.0.0-R20091216-win32.win32.x86.zip&lt;/code&gt;

==== Mac OS X/Intel ====

ESbox archives:

* &lt;code&gt;esbox_2.0.0-R20091216-common.zip&lt;/code&gt;
* &lt;code&gt;esbox_2.0.0-R20091216-macosx.carbon.x86.zip&lt;/code&gt;

PluThon archives:

* &lt;code&gt;pluthon_2.0.0-R20091216-common.zip&lt;/code&gt;
* &lt;code&gt;pluthon_2.0.0-R20091216-macosx.carbon.x86.zip&lt;/code&gt;

=== Installing and Running ===

Extract and install the archives for your operating system: Unzip the &lt;code&gt;*-common.zip&lt;/code&gt; and &lt;code&gt;*-&amp;lt;host OS&amp;gt;.zip&lt;/code&gt; archive into the same directory of your choice.

If you use a Sun Java JRE, you can edit &lt;code&gt;esbox.ini&lt;/code&gt; or &lt;code&gt;pluthon.ini&lt;/code&gt; to adjust maximum memory usage (&lt;code&gt;-Xmx&lt;/code&gt;, &lt;code&gt;-XX:MaxPermSize&lt;/code&gt;).

Run the main executable or script:

; '''Linux'''
: &lt;code&gt;./esbox.sh&lt;/code&gt; or &lt;code&gt;./pluthon.sh&lt;/code&gt;
; '''Win32'''
: &lt;code&gt;./esbox.exe&lt;/code&gt; or &lt;code&gt;./pluthon.exe&lt;/code&gt;
; '''Mac OS X'''
: &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;./esbox.app/Contents/MacOS/esbox&lt;/font&gt;&lt;/span&gt; or &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;./pluthon.app/Contents/MacOS/esbox&lt;/font&gt;&lt;/span&gt;

== Installation via Maemo Update Site ==

When you install ESbox, PluThon and Mica components through the Maemo update site, all needed dependencies (like CDT, PyDev, RSE, DSF, etc.) are installed automatically.

=== Eclipse Installation ===

If you do not yet have Eclipse IDE installed, follow these instructions.

Download Eclipse Ganymede SR2 (3.4.2) for your host. We suggest a package bundled with CDT:

* [http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/ganymede/SR2/eclipse-cpp-ganymede-SR2-win32.zip Win32]
* [http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/ganymede/SR2/eclipse-cpp-ganymede-SR2-linux-gtk.tar.gz Linux 32-bit]
* [http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/ganymede/SR2/eclipse-cpp-ganymede-SR2-macosx-carbon.tar.gz Max OS X]
* ...or visit the [http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/ganymede/SR2/ Eclipse Ganymede SR2 Build page]. You must use Eclipse 3.4.2.
* The Maemo update site will ensure all needed additional packages are installed, so you can also start from a different Eclipse package.
* Other hosts are not officially supported for Maemo development but you are welcome to try installation or trying to use the [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK Virtual Images|Maemo SDK Virtual Image]] to run Maemo Eclipse development environment.

Extract the archive somewhere on your machine (for example &lt;code&gt;/home/user&lt;/code&gt; on Linux).

For Linux or Mac OS X:

 $ cd /home/user
 $ tar xvzf eclipse-cpp-ganymede-SR2-host-windowsystem.tar.gz

or, for Win32, use Winzip or another zip utility to extract the archive.

Start Eclipse by running the Eclipse executable included with the release. The executable file is called &lt;code&gt;eclipse&lt;/code&gt;, and is located in the &lt;code&gt;eclipse&lt;/code&gt; sub-directory of the install:

 $ /home/user/eclipse/eclipse

In recent Linux distributions like Ubuntu 9.10 or Fedora 11, GTK+ 2.18 and Mozilla's xulrunner have changed in ways that cause problems with Eclipse. See more information about [http://mou.me.uk/2009/10/31/fixing-eclipse-in-ubuntu-9-10-karmic-koala/ GTK+ issues from this email] and [https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=4689&amp;group_id=192&amp;atid=1420 xulrunner issue from this bug report].

If the xulrunner problem affects you, you will need to launch Eclipse as shown below:

 $ GDK_NATIVE_WINDOWS=true /home/user/eclipse/eclipse -vmargs -Dorg.eclipse.swt.browser.XULRunnerPath=path...

where &lt;code&gt;path...&lt;/code&gt; is the path to xulrunner 1.8, usually under &lt;code&gt;/usr/lib/xulrunner/xulrunner&lt;/code&gt; or &lt;code&gt;/usr/bin/xulrunner&lt;/code&gt;. In Ubuntu this package is named &lt;code&gt;xulrunner&lt;/code&gt;.

See [http://mou.me.uk/2009/10/31/fixing-eclipse-in-ubuntu-9-10-karmic-koala/ this post for GTK+ details] and [https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=4689&amp;group_id=192&amp;atid=1420 this bug for xulrunner information].

For the sake of convenience, there are ready made scripts available to use for ESbox and PluThon that implement this workaround. For ESbox, use [https://garage.maemo.org/svn/mica/build/continuous_integration/esbox.sh this] &lt;code&gt;esbox.sh&lt;/code&gt; script and for PluThon, use [https://garage.maemo.org/svn/mica/build/continuous_integration/pluthon.sh this] &lt;code&gt;pluthon.sh&lt;/code&gt; script to launch Eclipse IDE.

For more detailed information about Eclipse 3.4 environment, see the [http://www.eclipse.org/eclipse/development/readme_eclipse_3.4.2.html Eclipse 3.4.2 Project Release Notes].

=== ESbox and PluThon Installation ===

Verify that your network proxy is configured (if needed) in '''Window &amp;gt; Preferences &amp;gt; General &amp;gt; Network Connections'''.

Select '''Help &amp;gt; Software Updates...''' from the main menu bar, figure [[#fig-esbox_update_menu|3.1]].

These instructions given are for ESbox installation through the Maemo Update Site, but can also be applied for the PluThon installation.

&lt;div id=&quot;fig-esbox_update_menu&quot;&gt;
[[Image:esbox-update-menu.png|frame|center|alt=unknown|'''Figure 3.1:''' Software Updates]]
&lt;/div&gt;

Select the '''Available Software''' tab, figure [[#fig:update_site_update_available|3.2]].

&lt;div id=&quot;fig-esbox_update_available&quot;&gt;
[[Image:esbox-update-available.png|frame|center|alt=unknown|'''Figure 3.2:''' Software Updates and Add-ons]]
&lt;/div&gt;

Add three update sites via '''Add site....'''

* ESbox update site is: http://maemoide.nokia.com/updates/2.0/esbox figure [[#fig-update_site_add_esbox|3.3]].
* PluThon update site is: http://maemoide.nokia.com/updates/2.0/pluthon
* Mica update site is: http://maemoide.nokia.com/updates/2.0/mica figure [[#fig:update_site_add_mica|3.4]].

Example how to add ESbox update site:

&lt;div id=&quot;fig-update_site_add_esbox&quot;&gt;
[[Image:esbox-update-site-add-esbox.png|frame|center|alt=unknown|'''Figure 3.3:''' Update Site, Add ESbox]]
&lt;/div&gt;

Example how to add Mica update site:

&lt;div id=&quot;fig-update_site_add_mica&quot;&gt;
[[Image:esbox-update-site-add-mica.png|frame|center|alt=unknown|'''Figure 3.4:''' Update Site, Add Mica]]
&lt;/div&gt;

Mica is a generic framework named Maemo IDE Common Architecture underneath the ESbox and PluThon products.

Open the '''ESbox''' (or '''PluThon''') tree and select '''ESbox 2nd Edition''' (or '''PluThon 2nd Edition''') inside, then click '''Install''', figure [[#fig-update_site_selection|3.5]].

&lt;div id=&quot;fig-update_site_selection&quot;&gt;
[[Image:esbox-update-selection.png|frame|center|alt=unknown|'''Figure 3.5:''' Software Updates and Add-ons, ESbox 2nd Edition]]
&lt;/div&gt;

You can select the '''ESbox 2nd Edition Source''', '''PluThon 2nd Edition Source''' and '''Mica 2nd Edition Source''' as well as following the [http://mica.garage.maemo.org/2nd_edition/setup.html Mica development setup instructions] if you want to develop against ESbox or PluThon.

Verify the installed items, then click '''Next''', figure [[#fig-update_site_install|3.6]].

&lt;div id=&quot;fig-update_site_install&quot;&gt;
[[Image:esbox-update-install.png|frame|center|alt=unknown|'''Figure 3.6:''' Install]]
&lt;/div&gt;

Review the licenses, then click '''Next''', figure [[#fig-update_site_install_licenses|3.7]].

&lt;div id=&quot;fig-update_site_install_licenses&quot;&gt;
[[Image:esbox-update-install-licenses.png|Image esbox-update-install-licenses]]
&lt;/div&gt;

The '''ESbox 2nd Edition''' selection brings in everything from ESbox and Mica, and the '''PluThon 2nd Edition''' selection brings in everything from PluThon and Mica. You can individually select the items under the '''ESbox''', '''PluThon''' and '''Mica''' nodes on the '''Available Software''' page, if you desire. This will make it easier to uninstall individual components later.

Click '''Finish''' and the installation will be performed. Accept the offer to restart Eclipse, figure [[#fig-update_site_restart|3.8]].

&lt;div id=&quot;fig-update_site_restart&quot;&gt;
[[Image:esbox-update-restart.png|frame|center|alt=unknown|'''Figure 3.8:''' Restart Eclipse]]
&lt;/div&gt;

=== Updating from an earlier than R2.0.0 release ===

If you used the archive files for installation, you can follow the instructions below to update your installation to the latest ESbox or PluThon version.

Select '''Help &amp;gt; Software Updates...''' from the main menu bar, figure [[#fig-update_site_update_menu_2|3.9]].

&lt;div id=&quot;fig-update_site_update_menu_2&quot;&gt;
[[Image:esbox-update-menu.png|frame|center|alt=unknown|'''Figure 3.9:''' Software Updates]]
&lt;/div&gt;

If you installed directly from a repository archive (&lt;code&gt;*.zip&lt;/code&gt;) file, rather than from the web, follow the below steps first:

# Select the '''Available Software''' tab.
# Click the '''Manage Repositories...''' button.
# Remove the old archive entries (&lt;code&gt;esbox-repository*.zip&lt;/code&gt;, &lt;code&gt;pluthon-repository*.zip&lt;/code&gt;, &lt;code&gt;mica-repository*.zip&lt;/code&gt;)
# Add new update sites through '''Add site...''' pointing to the new repository archives.

Select the '''Installed Software''' tab, figure [[#fig-update_site_update_installed|3.10]].

&lt;div id=&quot;fig-update_site_update_installed&quot;&gt;
[[Image:esbox-update-installed.png|frame|center|alt=unknown|'''Figure 3.10:''' Installed Software]]
&lt;/div&gt;

Click the '''Update...''' button.

Eclipse should display an '''Operation in progress...''' dialog and take a little time to query the configured update sites and should find the new versions of ESbox, PluThon and Mica features (as well as possibly other installed features).

Verify that ESbox, PluThon and Mica features are listed and checked, then click '''Next''', figure [[#fig-update_site_update_available_2|3.11]].

&lt;div id=&quot;fig-update_site_update_available_2&quot;&gt;
[[Image:esbox-update-available-2.png|frame|center|alt=unknown|'''Figure 3.11:''' Available Updates]]
&lt;/div&gt;

Review the licenses, then click '''Next''', figure [[#fig-update_site_update_licenses|3.12]].

&lt;div id=&quot;fig-update_site_update_licenses&quot;&gt;
[[Image:esbox-update-install-licenses.png|frame|center|alt=unknown|'''Figure 3.12:''' Review licenses]]
&lt;/div&gt;

Click '''Finish''' and the update is performed. Accept the offer to restart Eclipse, figure [[#fig-update_site_restart_2|3.13]].

&lt;div id=&quot;fig-update_site_restart_2&quot;&gt;
[[Image:esbox-update-restart.png|'''Figure 3.13:''' Restart Eclipse]]
&lt;/div&gt;

=== Troubleshooting ===

If you see this dialog: figure [[#fig-update_site_cannot_complete|3.14]]

&lt;div id=&quot;fig-update_site_cannot_complete&quot;&gt;
[[Image:esbox-update-cannot-complete.png|frame|center|alt=unknown|'''Figure 3.14:''' Cannot complete the request]]
&lt;/div&gt;

followed by this dialog: figure [[#fig:update_site_already_installed|3.15]]

&lt;div id=&quot;fig-update_site_already_installed&quot;&gt;
[[Image:esbox-update-already-installed.png|'''Figure 3.15:''' Cannot complete the request, details]]
&lt;/div&gt;

Messages about '''Cannot find a solution...''' usually means the given features or plugins are already installed, or that older versions were installed from a different site. Try using '''Software Updates... &amp;gt; Installed Software &amp;gt; Update...''' instead.

If you have an older ESbox or PluThon installation with features and plugins installed from another URL, use '''Software Updates... &amp;gt; Installed Software &amp;gt; Uninstall...''' to remove the ESbox or PluThon installation. This may make Eclipse unlaunchable - if so, launch Eclipse as shown below:

 $ ./esbox.sh -application org.eclipse.sdk.ide

until Eclipse is reinstalled from the current location.

== Installing Help Content ==

Both ESbox and PluThon support the use of Maemo release documentation from the Eclipse IDE, both remotely and locally. You can configure the Eclipse environment to access Maemo online release documentation from the Maemo Info Center service. The same documentation available from the Maemo Info Center can also be downloaded to the host PC and installed locally on the Eclipse help system.

=== Remote Help Content ===

The Mica framework included in ESbox and PluThon can use the Eclipse hover remote help system to access online documentation. For Maemo platform releases, the online documentation for each release is available from [http://maemoide.nokia.com/ Maemo Info Center service].

For more information about Hover help, see the ESbox or the PluThon Help topic '''Getting Started &amp;gt; Using Hover Help for Maemo API Libraries'''.

You need to configure the Maemo Info Center to use the Maemo 5 Fremantle SDK help inside Eclipse:

Open the '''Help &amp;gt; Content''' preference page, figure [[#fig-update_site_help_infocenter_prefs|3.16]].

&lt;div id=&quot;fig-update_site_help_infocenter_prefs&quot;&gt;
[[Image:help-infocenter-prefs.png|frame|center|alt=unknown|'''Figure 3.16:''' Help Content Preferences]]
&lt;/div&gt;

Add a Maemo Info Center site, noting to update the host (no &lt;code&gt;http://&lt;/code&gt; prefix) and the path, which is Maemo platform specific (&lt;code&gt;/fremantle&lt;/code&gt; for Maemo 5 Fremantle release), figure [[#fig-update_site_help_infocenter_prefs_add|3.17]].

&lt;div id=&quot;fig-update_site_help_infocenter_prefs_add&quot;&gt;
[[Image:help-infocenter-prefs-add.png|frame|center|alt=unknown|'''Figure 3.17:''' Edit Maemo Docs Library Information]]
&lt;/div&gt;

Then, use '''Help &amp;gt; Content''' and you will see the entries under '''Maemo 5''' categories.

=== Local Content ===

If you prefer, you may also install all Maemo release documentation locally so that no network connection is needed when accessing Maemo documentation. Locally installed documentation is also faster to access and search than online documentation from the Maemo Info Center.

This content is only available from the Maemo update site. You can also install Maemo release documentation locally in case you installed ESbox or PluThon from a full-product archive instead of Maemo update site.

These instructions assume you have already installed the Eclipse ESBox or PluThon product using either Maemo Eclipse product archives or update sites.

Verify that your network proxy is configured (if needed) in '''Window &amp;gt; Preferences &amp;gt; General &amp;gt; Network Connections'''.

Select '''Help &amp;gt; Software Updates...''' from the main menu bar, figure [[#fig-update_site_help_pluthon_update_menu|3.18]].

&lt;div id=&quot;fig-update_site_help_pluthon_update_menu&quot;&gt;
[[Image:pluthon-update-menu.png|frame|center|alt=unknown|'''Figure 3.18:''' Software Updates...]]
&lt;/div&gt;

Select the '''Available Software''' tab, figure [[#fig-update_site_help_update_available|3.19]].

&lt;div id=&quot;fig-update_site_help_update_available&quot;&gt;
[[Image:help-update-available.png|frame|center|alt=unknown|'''Figure 3.19:''' Software Updates and Add-ons]]
&lt;/div&gt;

Add a Documentation update site via '''Add site....'''. Maemo Fremantle documentation update site is http://maemoide.nokia.com/downloads/fremantle/ figure [[#fig-update_site_help_update_site_add|3.20]].

&lt;div id=&quot;fig-update_site_help_update_site_add&quot;&gt;
[[Image:help-update-site-add.png|'''Figure 3.20:''' Update Site - Add Documentation]]
&lt;/div&gt;

Select one or more of the '''Maemo ... Help''' features and then click ''''''Install, figure [[#fig-update_site_help_update_selection|3.21]].

&lt;div id=&quot;fig-update_site_help_update_selection&quot;&gt;
[[Image:help-update-selection.png|frame|center|alt=unknown|'''Figure 3.21:''' Software Updates and Add-Ons, Selection]]
&lt;/div&gt;

Verify the installed items, then click '''Next''', figure [[#fig-update_site_help_update_install|3.22]].

&lt;div id=&quot;fig-update_site_help_update_install&quot;&gt;
[[Image:help-update-install.png|frame|center|alt=unknown|'''Figure 3.22:''' Confirm Installation]]
&lt;/div&gt;

Review the licenses, then click '''Next''', figure [[#fig:update_site_help_update_install_licenses|3.23]].

{| summary=&quot;Accept Licenses&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.23:''' Accept Licenses
|-
|
[[Image:help-update-install-licenses.png|Image help-update-install-licenses]]
|}

Click '''Finish''' and the installation is performed. You may be able to '''Apply Changes''' if you have not already opened help or turned on hover help. Otherwise accept the offer to restart Eclipse, figure [[#fig-update_site_help_pluthon_update_restart|3.24]].

&lt;div id=&quot;fig-update_site_help_pluthon_update_restart&quot;&gt;
[[Image:pluthon-update-restart.png|frame|center|alt=unknown|'''Figure 3.24:''' Apply Changes Or Restart]]
&lt;/div&gt;

[[Category:Documentation]]
[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Eclipse Tutorial/Installing ESbox</title>
    <id>3853</id>
    <revision>
      <id>38620</id>
      <timestamp>2010-09-15T11:07:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly, add links</comment>
      <text xml:space="preserve">ESbox is an [http://www.eclipse.org/ Eclipse-based] IDE. It is based on Eclipse Ganymede (3.4.2) and CDT (Eclipse C/C++ Development Toolkit) and PyDev (Python IDE for Eclipse) and provides C/C++, Qt4 and Python support, source editing, project building, run/debug/profiling, and Debian installation package creation and deployment. ESbox communicates transparently with Scratchbox cross-compilation environment and one or more Maemo SDKs to let you develop Maemo applications. ESbox can also flash your Maemo devices and communicate with them using the various network clients and servers available with the PC Connectivity project.

With ESbox, Scratchbox, Maemo SDK(s), and PC Connectivity installed, you can flash your Maemo device, run, debug, and profile applications locally with Maemo SDK and remotely with Maemo device, create Debian installation packages for your application and install the application to the Maemo device.

Maemo PC Connectivity must be installed to the Maemo device and host PC before all features provided by Maemo Eclipse IDE are usable. See more information from [[Documentation/Maemo PC Connectivity Tutorial|'Maemo PC Connectivity Tutorial]].

== ESbox IDE ==

ESbox may be installed completely from an archive or added to an existing Eclipse 3.4.2 installation from Maemo update sites.

ESbox may be installed in a variety of hosts. The [[#Supported Environments|Supported Environments]] chapter describes these. The [[#Installing ESbox IDE|Installing ESbox IDE]] section describes how to install ESbox.

=== Supported Maemo Releases ===

The supported [http://tablets-dev.nokia.com/ Maemo releases] are:

* [[Open development/Maemo roadmap/Diablo|Maemo 4.1.2 Diablo]] (OS2008) with N800, N810 and N810 WiMAX Edition devices
* [[Open development/Maemo roadmap/Fremantle|Maemo 5.0 Fremantle]] (OS2009) with N900 device

{{ambox
|text=Older releases may work but Maemo PC Connectivity is not supported on them. If you use older releases, you must manually set up networking, SSH, and SBRSH.
}}

==== Scratchbox and Maemo SDK ====

To build and run C/C++, Qt4 or Python applications you will need to install the Maemo SDK development environment for a Linux/x86 machine (either to your host PC or to the Maemo SDK Virtual Image).

Scratchbox enables building and running programs in a transparent cross-compilation and cross-execution environment. Scratchbox 1 is the primary cross environment for Maemo Fremantle and Diablo development.

{{ambox
|text=Scratchbox 2 is a newer cross compilation environment but it is not officially supported or tested for Fremantle or ESbox.
}}

Maemo SDKs supported by ESbox and Scratchbox 1 are:

* Maemo 4.1.2 Diablo SDK
* Maemo 5.0.x Fremantle SDK

{{ambox
|text=Older Maemo SDKs may work but are not officially supported.
}}

Maemo SDKs are open-source, but some components installed on the Maemo device and available to the Maemo SDK rootstraps are closed-source. These Nokia closed binaries must be installed for Fremantle SDKs to operate properly under emulation.

ESbox can install Scratchbox 1, Diablo and Fremantle Maemo SDKs, and Nokia closed binaries for you for native Linux host PC or to the Ubuntu Server SDK Virtual Image using installation wizards under '''File &amp;gt; New &amp;gt; Other &amp;gt; Maemo Installers'''.

=== ESbox Development Environment ===

The ESbox development environment consists of Eclipse IDE, Scratchbox, one or more Maemo SDKs and Maemo device. If host PC operating system is not able to run Scratchbox and Maemo SDK natively also Maemo SDK Virtual Image is needed. These are essential to ESbox development environment and ESbox is useless without them.

ESbox does not ship with Scratchbox or any Maemo SDK, but it includes installation wizards that allow you to install them. See '''File &amp;gt; New &amp;gt; Other &amp;gt; Maemo Installers &amp;gt; Scratchbox 1''' and '''... &amp;gt; Scratchbox 1 Targets'''.

If you want to install Scratchbox and Maemo SDKs yourself, see [http://maemo.org/development/sdks/ the Maemo SDK site] for more information.

For C/C++, Qt4 and Python development, you need to install some Maemo C debugging tools and scripts, Maemo C++ bindings, Maemo Python runtime and bindings and Maemo Qt4 libraries to the Maemo SDK rootstraps and Maemo device.

ESbox provides a command via '''Project &amp;gt; Validate Installed Packages''' menu which will do all needed installations for C/C++, Python and Qt4 development environemnts for you. This validation operation is done also automatically when you create a new C/C++, Python or Qt4 project.

==== Using Maemo SDK Virtual Image for non-Linux ====

Only Debian based Linux/x86 hosts are able to natively run Scratchbox and Maemo SDKs. In other hosts, you must run Scratchbox and the Maemo SDK inside a Maemo SDK Virtual Image. ESbox fully supports using Maemo virtual images and VMware, VirtualBox or QEMU virtualization technologies in this manner.

The Maemo Eclipse integration provides an empty Ubuntu Server based Maemo SDK Virtual Image suitable for use with VMware, VirtualBox, and QEMU. See the [http://maemovmware.garage.maemo.org/ Maemo SDK Virtual Image project page] for more information on configuring and installing Maemo SDK Virtual Images.

You will need to configure ESbox to use the chosen virtualization environment (see the chapter on [[Documentation/Maemo Eclipse Tutorial/Setting Up ESbox#Setting up Maemo SDK Virtual Image|setting up ESBox within a virtual machine]]) so that ESbox knows where to install Scratchbox and the Maemo SDKs.

The [[#Supported Environments|Supported Environments]] chapter  describes the virtualization technologies supported. For ESbox, you can install a Ubuntu Server based Maemo SDK Virtual Image using installation wizard '''File &amp;gt; New &amp;gt; Other &amp;gt; Maemo Installers &amp;gt; Maemo SDK Virtual Image'''. Installation wizard will install the whole Maemo Development environment with Scratchbox and Maemo SDK for you.

== Supported Environments ==

=== Host Operating Systems Supported ===

Supported operating systems for host PC are listed in table 5.1. Only 32-bit operating systems are supported and tested, for example Maemo does not provide official support for any 64-bit operating system.

{| class=&quot;wikitable&quot;
|+ Table 5.1: Host Operating Systems Supported for ESbox
|-
! Host Operating System
! Officially Supported
! Virtual Image Required
! Tested
! Note
|-
| Ubuntu 8.04 Hardy
| Yes
| No
| Yes
|
|-
| Ubuntu 8.10 Intrepid
| Yes
| No
| Yes
|
|-
| Ubuntu 9.04 Jaunty
| Yes
| No
| Yes
|
|-
| Ubuntu 9.10 Karmic
| Yes
| No
| Yes
| 3
|-
| Fedora 11/12
| No
| Yes
| Yes
| 1,3
|-
| Other Linux distros
| No
| Yes
| No
| 1,2
|-
| Windows XP SP3
| Yes
| Yes
| Yes
|
|-
| Windows Vista SP2
| No
| Yes
| Yes
| 2
|-
| Windows 7
| No
| Yes
| Yes
| 2
|-
| Mac OS X x86 Leopard
| Yes
| Yes
| Yes
|
|-
| Mac OS X x86 Snow Leopard
| Yes
| Yes
| Yes
|
|-
| Mac OS X PPC Leopard
| No
| Yes
| No
| 1,2
|}

; '''Note 1'''
: ESbox should work if Eclipse IDE, Maemo SDK Virtual Image and Host PC Connectivity runs properly (there are known problems in this OS).
; '''Note 2'''
: The Host PC Connectivity has not been fully ported to this OS causing restrictions to the supported functionality.
; '''Note 3'''
: On newer Linux distributions, some components like GTK+ and xulrunner have changed in ways that make Eclipse difficult to launch. You need to use provided &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;esbox.sh&lt;/font&gt;&lt;/span&gt; script to launch ESbox and work around the issues.

{{ambox
|text=Cygwin 1.5 is part of Host PC Connectivity for Windows and works fine in Maemo environment but supports only Windows XP. Cygwin 1.7 which supports also Windows 7 and Windows Vista has problems with X11 server preventing Maemo to fully supporting Windows 7 and Windows Vista operatring systems.
}}

=== Virtual Image environments supported ===

Maemo SDK Virtual Images support VMware, VirtualBox and QEMU virtualization technologies to use to run images. You can use technology that is the best for your host PC configuration. The recommended technology is VMware because its performance is much better than QEMU and its licensing policy is better than VirtualBox with its PUEL license that allows only personal usage for evaluation purposes.

==== VMware Player / Workstation / Server ====

Workstation or Server recommended for easiest configuration. With VMware Player, if you want to reconfigure the memory size or change the disk assignments, you need to hand-edit &lt;codei&gt;*.vmx&lt;/code&gt; files. With Player, you may not be able to use official VMware Tools to accelerate the virtualization performance (because official VMware Tools may not be delivered together with the VMware Player installation) but you need to install Open VM Tools delivered together with the Maemo SDK Virtual Image.

Installation of official VMware tools or Open VM Tools (delivered with Maemo SDK Virtual Image) is recommended for better performance.

VMware Player 3.0 includes official VMware Tools and for example memory size can be configured without hand-editing &lt;code&gt;*.vmx&lt;/code&gt; but it may have SSH connection problems. VMware Player version 2.5 is recommended over version 3.0 because 3.0 version may have problems also keeping SSH connection alive. For Mac OS X VMware Fusion must be used instead of VMware Player.

==== Sun VirtualBox 2.2 or Newer ====

VirtualBox performance is almost equal to VMware and configuration is easy, but VirtualBox Open Source version cannot be used because it does not have good enough support for USB and licensing of PUEL version restricts usage only for personal and evaluation purposes.

Installation of GuestAdditions (delivered with Maemo SDK Virtual Image) is recommended for better performance.

==== QEMU System Emulation ====

Works, but is not recommended. The performance is quite slow.

Installation of KQEMU QEMU Accelerator for QEMU is almost mandatory, if it is available for your operating system.

=== X Servers supported ===

When running or debugging locally during development, an X11 server runs on the Eclipse host PC and displays your programs in the Maemo Application Framework.

X servers are available on all supported operating systems, but the Fremantle SDK imposes some high requirements on the X server. Linux-on-Linux development will yield the best results (both quality and performance wise). On other operating systems, there are workarounds for known issues.

For Linux:

* The Xephyr X server is recommended.
* Installation for Debian Linux: &lt;code&gt;sudo apt-get install xserver-xephyr&lt;/code&gt;
* Installation for Fedora Linux: &lt;code&gt;sudo yum install xorg-x11-xserver-Xephyr&lt;/code&gt;

For Windows:

* The X server from the Cygwin/X project is recommended.
* See chapter [/node8.html#sec:esbox_installation_setting_up_x_server_on_windows 6.3.1] for more details.

For Mac OS X:

* The Xephyr X server is recommended. This runs natively in Quartz.
* See chapter [/node8.html#sec:esbox_installation_setting_up_x_server_on_mac_os_x 6.3.2] for more details.

== Installing ESbox IDE ==

=== Java Runtime ===

ESbox is an Eclipse application, which needs Java to run.

Eclipse 3.4.2 requires Java 1.5 or newer:

* [http://java.sun.com/javase/downloads/index_jdk5.jsp Sun Java 5.0] or [http://java.sun.com/javase/downloads/index.jsp Sun Java 6]
* [http://www.ibm.com/developerworks/java/jdk/index.html IBM JRE 5.0+]
* [http://openjdk.java.net/ OpenJDK 6+]

{{ambox
|text=GNU gcj is not supported.
}}

You can find these JREs as packages in your distribution or download them directly from their websites.

=== Method 1: Full Product Archive (recommended) ===

* ESbox is distributed as a full Eclipse product archive, which contains Eclipse, the Mica framework, and ESbox. This is the easiest way to ensure you have the right versions of the plugins and features.
* Download it, extract it, and get started! Follow the instructions for [[Documentation/Maemo Eclipse Tutorial/Installation Methods#Installation via Product Archives|installation via product archives]]

=== Method 2: Eclipse Update Site ===

* If you have a custom Eclipse 3.4.2 installation or want to build one, you can use the Eclipse Software Updates mechanism to download and install and upgrade ESbox and Mica from the Internet.
* Newer versions of Eclipse than 3.4.x are not supported due to hard dependencies for Eclipse packages being used.
* Follow the instructions for [[Documentation/Maemo Eclipse Tutorial/Installation Methods#Installation via Maemo Update Site|installation via the Maemo Update site]]

{{ambox
|text=Both the installation via the Full Product Archive and the Eclipse Update Site can be upgraded using Eclipse's Software Updates.
}}

[[Category:Documentation]]
[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Eclipse Tutorial/Installing PluThon</title>
    <id>3854</id>
    <revision>
      <id>38619</id>
      <timestamp>2010-09-15T10:41:12Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly, add links</comment>
      <text xml:space="preserve">PluThon is an [http://www.eclipse.org Eclipse-based IDE] that provides Python development support, source editing, project building, on-device run/debug/profiling as well as on-device Debian installation package creation and deployment. It is based on Eclipse Ganymede (3.4.2) and PyDev (Python IDE for Eclipse). PluThon communicates with your Maemo device using the various network clients and servers that Maemo PC Connectivity project provides.

With PluThon and Maemo PC Connectivity installed, you can flash your Maemo device, run, debug, and profile Python applications on Maemo devices. You can also create Debian installation packages for your application and install the application on the Maemo device.

Maemo PC Connectivity must be installed to the Maemo device and host PC before all features provided by Maemo Eclipse IDE are usable. See more information from [[Documentation/Maemo PC Connectivity Tutorial|Maemo PC Connectivity Tutorial]].

== PluThon IDE ==

You can install PluThon completely from an archive or add it to an existing Eclipse 3.4.2 installation through Maemo update sites.

You can install PluThon on a variety of hosts. The [[#Supported Environments|Supported Environments]] section describes the supported hosts. The [[#Installing PluThon IDE|Installing PluThon IDE]] section  describes how to install PluThon.

=== Supported Maemo Releases ===

The supported [http://tablets-dev.nokia.com/ Maemo releases] are:

* [[Open development/Maemo roadmap/Diablo|Maemo 4.1.2 Diablo]] (OS2008) with N800, N810, and N810 WiMAX Edition
* [[Open development/Maemo roadmap/Fremantle|Maemo 5.0 Fremantle]] (OS2009) with N900

{{ambox
|text=Older releases may work but Maemo PC Connectivity is not supported on them. If you use older releases, you must manually set up networking, SSH, and SBRSH.}}

=== PluThon Development Environment ===

The PluThon development environment consists of Eclipse IDE and a Maemo device. These are essential and you cannot use PluThon without them.

Even though PluThon deploys applications that run entirely on a device, you need a Python interpreter installed locally to support the editor and the run/debug mechanism in PyDev.

It is recommended that you use the same version of Python that is on the Maemo device, currently Python 2.5. For more information, see the instructions [http://www.python.org/download/releases/2.5.4/ at Python 2.5.4 official release]. PluThon configures PyDev to read the library sources of the host for code completion. If you are not concerned about differences, you can also install Python 2.4 or 2.6 on the host.

Python runtime and bindings libraries must be installed on the Maemo device. To install these, select '''Project &amp;gt; Validate Installed Packages'''. This validation operation is also done automatically when you create a new Python project.

== Supported Environments ==

=== Host Operating Systems Supported ===

Supported operating systems for host PC are listed in table [[#table-pluthon_supported_operating_systems|4.1]]. Only 32-bit operating systems are supported and tested, for example Maemo does not provide official support for any 64-bit operating system.

&lt;div id=&quot;table-pluthon_supported_operating_systems&quot;&gt;
{| class=&quot;wikitable&quot;
|+ Table 4.1: Host Operating Systems Supported for Pluthon
|-
! Host Operating System
! Officially Supported
! Tested
! Note
|-
| Ubuntu 8.04 Hardy
| Yes
| Yes
|
|-
| Ubuntu 8.10 Intrepid
| Yes
| Yes
|
|-
| Ubuntu 9.04 Jaunty
| Yes
| Yes
|
|-
| Ubuntu 9.10 Karmic
| Yes
| Yes
| 3
|-
| Fedora 11/12
| No
| Yes
| 1,3
|-
| Other Linux distros
| No
| No
| 1,2
|-
| Windows XP SP3
| Yes
| Yes
|
|-
| Windows Vista SP2
| No
| Yes
| 2
|-
| Windows 7
| No
| Yes
| 2
|-
| Mac OS X x86 Leopard
| Yes
| Yes
|
|-
| Mac OS X x86 Snow Leopard
| Yes
| Yes
|
|-
| Mac OS X PPC Leopard
| No
| No
| 1,2
|}

; '''Note 1'''
: PluThon should work if Eclipse IDE and Host PC Connectivity runs properly.
; '''Note 2'''
: The Host PC Connectivity has not been fully ported to this OS causing restrictions to the supported functionality.
; '''Note 3'''
: On newer Linux distributions, some components like GTK+ and xulrunner have changed in ways that make Eclipse difficult to launch. You need to use provided &lt;code&gt;pluthon.sh&lt;/code&gt; script to launch ESbox and work around the issues.

{{ambox
|text=Cygwin 1.5 is part of Host PC Connectivity for Windows and works fine in Maemo environment but supports only Windows XP. Cygwin 1.7 which supports also Windows 7 and Windows Vista has problems with X11 server preventing Maemo to fully supporting Windows 7 and Windows Vista operatring systems.
}}

== Installing PluThon IDE ==

=== Java Runtime ===

Eclipse 3.4.2 requires Java 1.5 or newer:

* [http://java.sun.com/javase/downloads/index_jdk5.jsp Sun Java 5.0] or [http://java.sun.com/javase/downloads/index.jsp Sun Java 6]
* [http://www.ibm.com/developerworks/java/jdk/index.html IBM JRE 5.0+]
* [http://openjdk.java.net/ OpenJDK 6+]

{{ambox
|text=GNU gcj is not supported.
}}

These JREs are available as packages in your distribution or you can download them directly from the above websites.

=== Method 1: Full Product Archive (Recommended) ===

* PluThon is distributed as a full Eclipse product archive that contains Eclipse, the Mica framework, and PluThon. This is the easiest way to ensure you have the right versions of the plugins and features.
* Download the product archive, extract it, and get started. Follow the instructions for [[Documentation/Maemo Eclipse Tutorial/Installation Methods#Installation via Product Archives|installation via the Maemo Update site]]

=== Method 2: Eclipse Update Site ===

* If you already have a custom Eclipse 3.4.2 installation or want to build one, you can use the Eclipse Software Updates mechanism to download, install and upgrade PluThon and Mica from the Internet.
* Newer versions of Eclipse than 3.4.x are not supported because of the hard dependencies on the Eclipse packages used.
* Follow the instructions for [[Documentation/Maemo Eclipse Tutorial/Installation Methods#Installation via Maemo Update Site|installation via the Maemo Update site]]

{{ambox
|text=You can upgrade the installation (done either using Full Product Archive or the Eclipse Update Site) through Eclipse Software Updates.
}}

[[Category:Documentation]]
[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Eclipse Tutorial/Introduction</title>
    <id>3855</id>
    <revision>
      <id>38615</id>
      <timestamp>2010-09-15T07:40:21Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">Instead of using the Maemo development environment command line tools to create C/C++, Python or Qt applications for the Maemo platform, it is possible to use an Eclipse, Ganymede-based IDE to make applications development easier for Maemo devices.

Maemo Eclipse IDE integration supports following Maemo devices and platform releases:

* [[Nokia N800]], [[Nokia N810|N810]] and [[Nokia N810WME|N810 WiMAX Edition]] with [[Open development/Maemo roadmap/Diablo|Diablo 4.1.x]].
* [[Nokia N900]] with [[Open development/Maemo roadmap/Fremantle|Fremantle 5.x]], see figure [[#fig-n900|1.1]].

&lt;div id=&quot;fig-n900&quot;&gt;
[[Image:Nokia N900 48.png|frame|center|alt=Photo of Nokia N900 device|[[Nokia N900]]]]
&lt;/div&gt;

Maemo Eclipse support includes the ESbox product that supports C/C++, Python and Qt programming together with Maemo SDK and Maemo devices. ESBox has full integration to both the Scratchbox-based Maemo SDK environment and Maemo devices.

In addition to the ESbox product, Maemo Eclipse integration provides also the PluThon product that supports Python development with Maemo devices. The PluThon environment does not use Maemo SDK but is an on-device development environment where Python application development happens directly within the Maemo device.

Both ESbox and PluThon can be used on all major platforms (Linux, Windows and Mac OS X). On all supported operating systems Eclipse IDE is run natively on host PC. On Debian-based Linux systems the Maemo SDK can be installed antively to the host PC. On other Linux variants (like Fedora) and non-Linux systems (like Windows and Mac OS X) where the Maemo SDK cannot be installed, it is possible to use a virtual machine or a remote Debian based Linux system to host the Maemo SDK. ESbox will translate all IDE UI commands to SDK commands behind the scenes.

ESbox and PluThon run inside Eclipse with CDT (C/C++ Development Tools) installed. The Eclipse environment requires a Java virtual machine to run properly; Java&lt;sup&gt;&lt;small&gt;TM&lt;/small&gt;&lt;/sup&gt;Platform, Standard Edition 6 (Java&lt;sup&gt;&lt;small&gt;TM&lt;/small&gt;&lt;/sup&gt;SE 6) or above is recommended. ESbox also needs Scratchbox and Maemo SDK targets for building components and developing applications.

Note that ESbox has native support to develop also Qt applications. This makes the development of Qt applications easier than using Maemo SDK only, since no command line execution is required to build and execute the application in the Maemo SDK target or Maemo device.

Maemo Eclipse integration has support for basic profiling tools for Maemo applications development. Profiling is one of the most important techniques available for programmers for discovering problems in applications. By profiling an application, it becomes immediately apparent where the overwhelming memory and CPU burdens exist, and allows you to quickly correct them. Maemo Eclipse provides support for the Valgrind memory profiler, the OProfile system-wide profiler and the Ltrace library call monitor for both C/C++ and Python Projects.

Ltrace is a tracing tool which runs a specified tracing for an application or a library. While the tool is executing, ltrace intercepts and records the dynamic library calls which are called by the executed process and the signals received by that process. On a Maemo environment, Ltrace is supported on both a Maemo SDK x86 target and a Maemo device.

Eclipse Ltrace support launches your application on the Maemo SDK target or the Maemo device for tracing, and the result is shown in specific Ltrace view. All Library and System calls are shown as a tree: parent nodes and child nodes for each new nested call.

Valgrind is a framework for building dynamic analysis tools. You can use Valgrind to profile your applications. It detects memory management (memory leaks, use of uninitialised memory, and so forth) and thread bugs. For Maemo, Valgrind is only supported on X86/Linux and thus only on the Maemo SDK x86 target. To be able to use Valgrind profiling you have to select a X86 Scratchbox target to run your application.

Eclipse Valgrind support runs your application on the the X86 target and the result is shown on a specific Valgrind view. All problems found by Valgrind are shown as a tree: the problems as parent nodes and the details of the problems as children nodes.

OProfile is a system-wide profiler for Linux systems and can profile all running code. It consists of a kernel driver and a daemon for collecting sample data, and several post-profiling tools for turning data into information. On the Maemo environment OProfile is supported only on Maemo devices to obtain a high quality of profiling information. Eclipse uses ssh to remotely execute the OProfile and collect profiling information on the Maemo device. Thus, it is necessary to properly install the application to be profiled and the OProfile framework on the Maemo device before the profiling can be done.

The Eclipse OProfile support runs your application on the Maemo device, and you can control the OProfile from the Eclipse OProfile view. After the OProfile has stopped the profiling, the result will be shown in the specific OProfile View.

[[Category:Documentation]]
[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Eclipse Tutorial/Preface</title>
    <id>3856</id>
    <revision>
      <id>41435</id>
      <timestamp>2011-01-26T10:46:28Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut toplevel heading</comment>
      <text xml:space="preserve">== Legal notice ==

Copyright (c) 2008-2010 Nokia Corporation

Nokia and Maemo are trademarks or registered trademarks of Nokia Corporation. Other product and company names mentioned herein may be trademarks or trade names of their respective owners.

== Disclaimer ==

The information in this document is provided &quot;as is,&quot; with no warranties whatsoever, including any warranty of merchantability, fitness for any particular purpose, or any warranty otherwise arising out of any proposal, specification, or sample. This document is provided for informational purposes only. Nokia Corporation disclaims all liability, including liability for infringement of any proprietary rights, relating to implementation of information presented in this document. Nokia Corporation does not warrant or represent that such use will not infringe such rights.

Nokia Corporation retains the right to make changes to this material at any time, without notice.

== Licenses ==

This document is licensed under the [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License, version 1.2].

Permission is granted to copy, distribute and/or modify documentation under the terms of the GNU Free Documentation License, version 1.2 or any later version published by the Free Software Foundation. Please refer to the copyright notice in each piece of documentation for Invariant Sections, Front-Cover Texts or Back-Cover Texts, if any, as defined in the License.

[[Category:Documentation]]
[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Eclipse Tutorial/Setting Up ESbox</title>
    <id>3857</id>
    <revision>
      <id>38622</id>
      <timestamp>2010-09-15T14:11:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slighty, reformat imges, use &lt;code&gt;</comment>
      <text xml:space="preserve">== Setting up Maemo SDK Virtual Image ==

The Maemo SDK, Scratchbox, and rootstraps run only on Linux/x86. If you want to use ESbox in Windows or MacOS X - or even Linux/x86-64 - then you can do this by hooking up ESbox with an appropriately configured virtual machine.

Recommended virtual machine images are provided by the [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK Virtual Images|Maemo SDK Virtual Image]] project. That project covers the configuration and installation issues specific to the virtual machine itself. Although the project includes the term ''vmware'', the images (&lt;code&gt;*.vmdk&lt;/code&gt; files) available there work with all the supported virtualization technology (VMware, VirtualBox and QEMU). This document covers configuring ESbox to use images to support other than native Debian-based Linux systems.

ESbox has the concept of ''Build Machines'' to distinguish the Eclipse host from the machine where C/C++ programs are built and Python programs are interpreted. For Linux/x86 hosts, the host can serve as a build machine. For other hosts, only a virtual machine can be a build machine.

ESbox uses an SSH connection with the virtual machine to perform builds, launch/debug applications, and configure Scratchbox installations and rootstraps, and a Samba connection to share project files between the machines.

An essential aspect of using ESbox with a VM is setting up ''shared folders''. In order to use all the features in Eclipse, projects and the SDK rootstrap must be visible both to the host and the VM. See the chapter on [[#Setting Up Shared Folders|setting up shared folders]] for an overview and setup instructions.

=== Virtual Machine Engines Supported ===

ESbox supports VMware, QEMU, and VirtualBox virtualisation technologies for the Maemo SDK Virtual Image.

* VMware Workstation/Server 6.x (or Player 2.5.x and 3.x) is supported and recommended for speed. We have detected some problems using VMware Player 3.0. It seems that SSH dropouts are common in this version. VMware Player 2.5.x seems to work fine.
* VirtualBox 2.1 or newer is supported and recommended for freedom and consistency of behavior across operating systems.
* QEMU 0.9.0 and newer may be used for freedom and ease of setup, but is quite slow, even when accelerated.

=== Virtual Machine Images ===

ESbox runs best with a preconfigured Ubuntu Server-based Maemo SDK Virtual Image, which has a minimal footprint. This &quot;Server&quot; image is configured to provide the best interaction with ESbox. The &quot;Server&quot; image may be used with any of the virtualisation engines above.

The ESbox wizard '''File &amp;gt; New &amp;gt; Other &amp;gt; Maemo Installers &amp;gt; Maemo SDK Virtual Image''' lets you fetch and install the recommended images maintained by the [http://maemovmware.garage.maemo.org/ Maemo SDK Virtual Image] project in concert with the Maemo Eclipse Integration project. The &quot;Server&quot; image comes &quot;bare&quot;, without any pre-installed Maemo SDK. ESbox supports installing Maemo SDK and development environments for C/C++, Python and Qt4 from the installer wizard.

As an alternative to the &quot;Server&quot; image, you can try a Ubuntu Desktop-based Maemo SDK Virtual Image if you want a full out-of-the-box ready environment pre-installed. This &quot;Desktop&quot; image contains fully-configured ESbox and Maemo Diablo and Fremantle SDK development environments inside.

{{ambox
|text=You should not use the &quot;Desktop&quot; image with native ESbox installation (configuration where Eclipse IDE has been installed to the host PC instead of Maemo SDK Virtual Image) as the &quot;Desktop&quot; image already includes ESbox pre-installed.
}}

If you want to use your own virtual image instead of Maemo SDK Virtual Images, ensure it has SSH and Samba support. For SSH, the &lt;code&gt;UseDNS&lt;/code&gt; flag should be switched off, and to support Samba, you may need an often-running cron job to resynchronize the clock with the host, to avoid timestamp drift issues when building, see the chapter on [[#Clock synchronization|clock synchronization]].

==== Networking Setup ====

A very important aspect of the ESbox and VM configuration is the ''networking mode''. Modern VM engines usually allow three modes for how the VM virtualizes network access: ''host'', ''NAT'', and ''bridged''.

''Host'' is useless for ESbox, since it implies that the outside world cannot see the VM, and ESbox would be on the outside. Don't use this mode.

''NAT'' is a mode where the VM shares the IP address of the host. This is useful in a lot of cases with ESbox, but it is not appropriate in the default configuration recommended by ESbox, where the address &lt;code&gt;127.0.0.1:2222&lt;/code&gt; is used to talk to the VM.

* Shared folders cannot be exposed from the VM to the host, which makes it difficult to use C/C++ indexing and searches with the Maemo SDK. This is because we cannot use port forwarding to remap the Windows CIFS ports to distinguish the hosts from the VMs.
* SBRSH does not work, since the device communicates with &lt;code&gt;sbrsh&lt;/code&gt; running under Scratchbox, but the IP address is the same as the host, which does not run the server. Complex port forwarding could make this work too, but it is not worth the effort.

VMware does provide a &lt;code&gt;vmnet8&lt;/code&gt; interface for NAT which has a unique IP address. Unfortunately, this doesn not work reliably.

If you are able to get this working, then you ''can'' use NAT with shared folders and SBRSH.

Since it is not an easy setup, we don not recommend using this mode, unless you know what you are doing, or you have no other choice (for example, QEMU).

''Bridged'' is a mode where the virtual machine has its own IP address on the LAN. To all intents and purposes it appears to be a distinct machine on the network. This gives it enough flexibility to support the shared folder mappings and SBRSH usage mentioned above.

On the other hand, Bridged mode introduces the inconvenience that the DHCP-assigned address of the VM may change between restarts of the machine. This means you need to manually correct the address (for example, in the '''Machine Access''' pane described below). But ESbox provides helpful dialogs reminding you that you may need to update this address and I myself have used it successfully for months.

So, ''Bridged'' mode is the best of the three options and we recommend this one. This is the default for the &quot;server image&quot; provided by the maemovmware project. If you want to change to NAT, you need to reconfigure the networking devices for the given image in the VM engine of choice. See your documentation for details.

=== ESbox Build Machine Configuration ===

Configuration is under '''Window &amp;gt; Preferences &amp;gt; ESbox &amp;gt; Build Machines'''. If you navigate here before configuring anything, or try to create a project and launch first, you will get a message directing you to the page, figure [[#fig-virtual_machine_dialog_select_build_machine|6.1]].

&lt;div id=&quot;fig-virtual_machine_dialog_select_build_machine&quot;&gt;
[[Image:dialog-select-build-machine.png|frame|center|alt=unknown|Figure 6.1: Build machine selection reminder]]
&lt;/div&gt;

You need to select a virtual machine engine (or '''Manual configuration''') and adjust the settings on all the pages accordingly. Each engine has product-specific configuration.

Any selected build machine has a unique configuration in ''Machine Access'' (the user name, password, target/host addresses and ports) and ''Shared Folders'' (the shares providing a mapping between the host and target filesystems) tabs. All machines except for ''Manually Launched'' have a VM-specific configuration tab as well.

=== Virtual Machine Specific Configuration ===

==== VMware Configuration ====

The '''Product type''' field lets you select along multiple available VMware engines if you have more than one installed. This is mostly useful if you have installed VMware Workstation or Server, but want to use VMware Player (since they exist in the same directory).

&lt;div id=&quot;fig-prefs_exbox_build_machines_vmware&quot;&gt;
[[Image:prefs-esbox-build-machines-vmware.png|frame|center|alt=unknown|Figure 6.2: VMware Options]]
&lt;/div&gt;

The '''Installation directory''' field should point to either the directory containing &lt;code&gt;vmrun&lt;/code&gt;, &lt;code&gt;vmware&lt;/code&gt; or &lt;code&gt;vmplayer&lt;/code&gt; (in any host) or the &lt;code&gt;VMware Fusion[.app]&lt;/code&gt; application or library support directory (in Mac OS X).

ESbox prefers to use &lt;code&gt;vmrun[.exe]&lt;/code&gt; for all operations as a command-line controller for virtual machine operations (enumerating, launching, and stopping virtual machines). ESbox is flexible and will look up the directory tree from the specified location to locate the expected executable. If you only have VMware Player, or only want to use player, point to the directory where &lt;code&gt;vmplayer[.exe]&lt;/code&gt; exists and set the Product Type to '''Player'''.

The VMX path is the primary file describing the virtual machine (which disk images it uses, what its networking configuration is, and so on). You can edit its settings in a running VMware client.

==== VirtualBox Configuration ====

The '''Executable''' should be the &lt;code&gt;VBoxManage&lt;/code&gt; program, which is the command line controller for VirtualBox. ESbox uses this to detect whether machines are running, which machines are available (under the '''Virtual Machine''' dropdown), and to launch and stop machines.

&lt;div id=&quot;fig-prefs_esbox_build-machines_virtualbox&quot;&gt;
[[Image:prefs-esbox-build-machines-virtualbox.png|frame|center|alt=unknown|'''Figure 6.3:''' VirtualBox Options]]
&lt;/div&gt;

The '''Command''' pattern spells out how VBoxManage is launched (where &lt;code&gt;$VIRTUALBOX&lt;/code&gt; is the &quot;executable&quot; path). This probably needs no changes.

The '''Virtual Machine''' dropdown allows you to select one of the registered VirtualBox machine instances. In VirtualBox, all machine instances must be registered. See the [http://maemovmware.garage.maemo.org/2nd_edition/create_vbox_machine.html Maemo SDK Virtual Image] documentation for details.

==== QEMU Configuration ====

The '''Installation Directory''' should point to the top-level directory where the QEMU data files (&lt;code&gt;*.bin&lt;/code&gt;) are located. This may differ from the executable's path.

&lt;div id=&quot;fig-prefs_esbox_build_machines_qemu&quot;&gt;
[[Image:prefs-esbox-build-machines-qemu.png|frame|center|alt=unknown|'''Figure 6.4:''' QEMU Options]]
&lt;/div&gt;

The '''Executable''' is the filename (inside the installation directory) or a full path to the qemu executable.

The '''Command pattern''' is the template used to launch QEMU. Most likely the only edits you would apply would be to remove some of the options (like &lt;code&gt;-kernel-kqemu&lt;/code&gt;, &lt;code&gt;-usb&lt;/code&gt;, etc.) or to add additional redirections. See the [http://www.nongnu.org/qemu/user-doc.html QEMU documentation] for a description of these options.

The '''Memory size (Mb)''' tells how much RAM to allot to the virtual machine. This should usually be at least 512 MB for C/C++ compilation.

The '''Disk image(s)''' field is a comma-separated list of full paths to disk images. These images are assigned, in order, to &lt;code&gt;/dev/hda&lt;/code&gt;, &lt;code&gt;/dev/hdb&lt;/code&gt;, and so on. QEMU supports multiple kinds of disk images (see documentation for details). You can use the same maemovmware project VMware &lt;code&gt;*.vmdk&lt;/code&gt; images here.

==== Machine Access ====

Some fields in the '''Machine Access''' settings should be preconfigured to match the images from the Maemo SDK Virtual Image project, but you need to edit the address and port settings depending on your networking configuration, figure [[#fig-virtual_machine_prefs_esbox_build_machines_machine_access|6.5]].

&lt;div id=&quot;fig-virtual_machine_prefs_esbox_build_machines_machine_access&quot;&gt;
[[Image:prefs-esbox-build-machines-machine-access.png|frame|center|'''Figure 6.5:''' Machine access]]
&lt;/div&gt;

Use the '''Autoselect Network Settings''' button to try to guess the networking settings from current virtual machine settings and the host machine's network interfaces. This assumes the virtual machine engine, image, and configuration have all been specified correctly. In any case, this is a guess, so read the diagnostic messages, figure [[#fig-virtual_machine_prefs_esbox_build_machines_autoselect_nat|6.6]].

&lt;div id=&quot;fig-virtual_machine_prefs_esbox_build_machines_autoselect_nat&quot;&gt;
[[Image:prefs-esbox-build-machines-autoselect-nat.png|frame|center|alt=unknown|'''Figure 6.6:''' Autoselect NAT]]
&lt;/div&gt;

Note, when configuring a virtual machine using Bridged networking, it is impossible to guess the actual address the machine will have. By default, ESbox selects the ''network address'' (&lt;code&gt;*.0&lt;/code&gt;) and warns you to update it, figure [[#fig-virtual_machine_autoselect_bridged|6.7]].

&lt;div id=&quot;fig-virtual_machine_autoselect_bridged&quot;&gt;
[[Image:prefs-esbox-build-machines-autoselect-bridged.png|frame|center|alt=unknown|'''Figure 6.7:''' Autoselect bridged]]
&lt;/div&gt;

Use the '''Validate''' button to launch the machine or find a running instance and run through a series of tests to validate that the machine is configured properly. If Scratchbox is not yet installed on the target machine, then validation does not pass all the tests.

After closing the dialog, use the '''Apply''' button to accept the changes and launch the virtual machine, if needed.

If you have previously configured a Build Machine and have changed the settings, ESbox may present this dialog, figure [[#fig-virtual_machine_shut_down_vm|6.8]].

&lt;div id=&quot;fig-virtual_machine_shut_down_vm&quot;&gt;
[[Image:esbox-shut-down-vm.png|frame|center|alt=unknown|'''Figure 6.8:''' Shut down?]]
&lt;/div&gt;

If the machine and disk are the same as the running machine, and you are just synchronizing network settings, you may be able to leave it running. In any event, the supported VM engines themselves are not able to write to the same disk images opened by another engine.

==== More Details ====

The Machine Access tab allows you to configure the networking and authentication with the VM. '''User''' is the account which acts as the agent for all operations with the VM. It should be the same user who owns the Scratchbox installation(s). '''Password''' is the password for the user account.

{{ambox
|text=For Maemo SDK Virtual Images, the default user is &quot;maemo&quot; and the password is &quot;maemo&quot;.
}}

'''Target address''' is the address used to access the VM. This may be an IP address or a name. If the '''Autoselect Settings''' button cannot figure it out, you need to discover this experimentally, by watching the boot-time messages, or logging in and using &lt;code&gt;/sbin/ifconfig&lt;/code&gt; to see what address is assigned to &lt;code&gt;eth0&lt;/code&gt;.

'''Target SSH port''' is the SSH port. This defaults to 2222 for NAT configurations. The default for normal SSH usage is &lt;code&gt;22&lt;/code&gt;, but if the Target address is &lt;code&gt;127.0.0.1&lt;/code&gt;, this port must be remapped to avoid conflicts with the host.

For VirtualBox, this port must match the configuration established for a machine via VBoxManage before the machine is launched. See more instructions from the [http://maemovmware.garage.maemo.org/2nd_edition/vbox_installers.html Maemo SDK Virtual Image VirtualBox configuration] document, the [http://maemovmware.garage.maemo.org/2nd_edition/create_vbox_machine.html Maemo SDK Virtual Image port forwarding] document, or the Network Address Translation chapter of the VirtualBox manual.

For VMware, the port must be configured using the '''Virtual Network Editor &amp;gt; NAT &amp;gt; Edit &amp;gt; PortForwarding...''' dialog. Redirect SSH by adding a '''Incoming TCP port''' entry with '''Host Port''' &lt;code&gt;22&lt;/code&gt;, '''Virtual Machine Address''' matching the Target Address, and a '''Port''' like &lt;code&gt;2222&lt;/code&gt; or &lt;code&gt;2244&lt;/code&gt; matching the Target SSH Port setting.

In Windows VMware, if the &lt;code&gt;VMnet1&lt;/code&gt; and &lt;code&gt;VMnet8&lt;/code&gt; devices are not enabled or do not work as expected, be sure they are associated with TCP/IP services. In some situations, these can remain unconfigured. Go to '''Control Panel &amp;gt; Network Connections''' and bring up '''Properties''' for '''VMware Virtual Ethernet Adapter for ...'''. In the '''General''' tab, under '''This connection uses the following items:''', enable '''Internet Protocol (TCP/IP)'''

If you use both VirtualBox and VMware, be sure to use different SSH ports when enabling port forwarding; otherwise they conflict.

For QEMU, this option dictates which port is used, since it is controlled when the machine is launched.

'''Host address''' is the name of the host as seen from the VM - this is never &lt;code&gt;127.0.0.1&lt;/code&gt;! The value depends on the kind of networking you are using with the VM.

For VMware, see the '''VM &amp;gt; Removable Devices &amp;gt; Network Adapter''' menu.

For VirtualBox, see the '''machine &amp;gt; Settings &amp;gt; Network &amp;gt; Adapter''' dialog. If necessary, you can find this by logging into the VM (maemo/maemo) and invoking &lt;code&gt;/sbin/ifconfig&lt;/code&gt;.

For QEMU, the default is &lt;code&gt;10.0.2.2&lt;/code&gt; since the IP is shared with the VM and a private subnet is used to reference the host.

=== Shared Folders ===

On the '''Shared Folders''' tab, specify the shared folders that ESbox uses to map filesystem paths between the host and VM filesystem. Here you specify mappings for the existing and configured shared folders in the host and VM. You must manually configure file sharing yourself.

See [http://esbox.garage.maemo.org/2nd_edition/shared_folders.html ESbox Shared Folders] document for an overview and setup instructions.

{{ambox
|text=Currently ESbox only supports Samba (Windows/CIFS) shared folders.
}}

{{ambox
|text=To expose shares from the VM to the host, you must use Bridged networking in the VM. Otherwise you need to understand a lot about port forwarding.
}}

=== Configuration ===

The default shares are suggestions for the most common setup, so that projects can be built for multiple Scratchbox targets, and so indexing can work. See [http://esbox.garage.maemo.org/2nd_edition/shared_folders.html ESbox Shared Folders] document for details.

&lt;div id=&quot;fig-prefs_esbox_build_machines_shared_folders&quot;&gt;
[[Image:prefs-esbox-build-machines-shared-folders.png|frame|center|alt=unknown|'''Figure 6.9:''' Shared folders]]
&lt;/div&gt;

If '''Local share?''' is yes, you need to configure file sharing on your host and expose a share which can be mounted by the VM. This typically is yes for normal usage (since the Eclipse workspace must be on the local machine). If the setting is no, then in the Maemo SDK VM images, expose the mount in &lt;code&gt;/etc/samba/smb.conf&lt;/code&gt;.

'''Add Host Share...''' lets you add an entry from the shared folders exposed on the host. These must be manually configured.

'''Add VM Share...''' lets you add an entry from the shared folders exposed from the virtual machine. This requires that the VM be launched and validated before the button is enabled.

ESbox can automatically mount folders from the host to the virtual machine and from the virtual machine to the host. This dialog appears when ESbox wants to mount a share:

&lt;div id=&quot;fig-esbox_mount_share&quot;&gt;
[[Image:esbox-mount-share.png|frame|center|alt=unknown|'''Figure 6.10:''' SMB Mount]]
&lt;/div&gt;

The '''username''' is, by default, the same as the main user account on the given machine, but you may change it if needed, depending on the share's permissions.

The '''workgroup/domain''' may not be required unless you are logged into a Windows domain.

The '''password''' is remembered for future launches of the mount during the current Eclipse session, but it is discarded if the mount fails.

To prevent ESbox from trying to mount the share, change the '''Auto mount?''' setting to '''No'''.

==== Dynamic shared folder status ====

The '''Check folder status while editing''' checkbox dynamically validates the shared folders against a running VM, to assist with some issues that may be tedious to debug by using '''Validate Machines'''.

To use this:

# Be sure the '''Machine Access &amp;gt; Target Address''' and '''Host Address''' fields are valid.
# Be sure the VM has been launched (using '''Launch Machine''' or a previous '''Validate Machine''' invocation).
# Enable the checkbox.
# Edit the entries in the table. The status is updated as you change the fields.

&lt;div id=&quot;fig-prefs_esbox_build_machines_shared_folders_2&quot;&gt;
[[Image:prefs-esbox-build-machines-shared-folders-2.png|frame|center|alt=unknown|'''Figure 6.11:''' Shared folders]]
&lt;/div&gt;

=== ESbox Virtual Machine Behavior ===

==== Launching ====

Usually, only an explicit user action (like starting a wizard, validating the VM, or viewing ESbox or Maemo preference panels) requires the VM to be running. ESbox connects to a running virtual machine that responds to the configured machine engine, target address, and SSH port in the Machine Access settings. If the specified engine or configured image is not running, then ESbox prompts you to launch the configured machine, figure [[#fig-virtual_machine_launch_vm|6.12]].

&lt;div id=&quot;fig-virtual_machine_launch_vm&quot;&gt;
[[Image:esbox-launch-vm.png|frame|center|alt=unknown|'''Figure 6.12:''' Virtual Machine Needed]]
&lt;/div&gt;

If the virtual machine is running, but the target cannot be contacted (that is, the SSH address is incorrect), it presents this variant, which indicates the network settings are probably incorrect, figure [[#fig-virtual_machine_launch_vm_bad_network|6.13]].

&lt;div id=&quot;fig-virtual_machine_launch_vm_bad_network&quot;&gt;
[[Image:esbox-launch-vm-bad-network.png|frame|center|alt=unknown|'''Figure 6.13:''' Virtual Machine Needed, network problem]]
&lt;/div&gt;

# Check the '''Build Machines''' preferences to validate that the '''Machine Access''' settings match.
# Check '''Network Connections''' preferences in case you are behind a proxy but the VM is not. ESbox uses the proxy settings for all network operations.
# Check the [http://maemovmware.garage.maemo.org/ Maemo SDK Virtual Image] documentation in case you need to finish configuring your VM. This can be a laborious process if you are using NAT networking, as documented elsewhere in this document.

Both dialogs allow you to launch the virtual machine anew or take one of the actions under '''Help''' (which cancels the current operation) and let you look for other solutions.

Choose '''Launch now''' when you know the machine is not running, and you want ESbox to start it.

Choose '''It's running''' if the machine is running and there was a configuration problem that was fixed in the meantime - for example, ESbox was trying to contact the VM before the SSH server was started, or you have just corrected the virtual machine's settings (you ran &lt;code&gt;dhclient&lt;/code&gt; or switched between NAT and Bridged modes so that the given address works), or you have fixed the Network Proxy settings in the meantime.

If ESbox still cannot detect the machine, it reports a failure. If you think the VM is running but ESbox tells you it &quot;has stopped running&quot;, be sure you are using exactly the same machine (watch out for multiple copies on your disk, since the full path to the &lt;code&gt;*.vmx&lt;/code&gt; file matters).

Choose '''Cancel''', of course, if you do not want to start the virtual machine. This cancels any operation that requested it.

While the VM is launching, this dialog is shown, figure [[#fig-virtual_machine_launching_vm|6.14]].

&lt;div id=&quot;fig-virtual_machine_launching_vm&quot;&gt;
[[Image:esbox-launching-vm.png|frame|center|alt=unknown'''Figure 6.14:''' Launching Virtual Machine]]
&lt;/div&gt;

The dialog remains for a few seconds after boot time. You can expand it in case the machine has booted but the dialog remains, figure [[#fig-virtual_machine_launching_vm_expanded|6.15]].

&lt;div id=&quot;fig-virtual_machine_launching_vm_expanded&quot;&gt;
[[Image:esbox-launching-vm-expanded.png|frame|center|alt=unknown|'''Figure 6.15:''' Launching Virtual Machine, expanded]]
&lt;/div&gt;

Closing this dialog does not cancel any operation. It is only informative, to help you look for common problems and solutions while configuring the machine.

==== Shared folder mappings ====

Once you have configured mapping that expose the project to the VM, ESbox automatically selects a project location inside a shared folder for you, when you create or import a project, figure [[#fig-virtual_machine_new_project_vm|6.16]].

&lt;div id=&quot;fig-virtual_machine_new_project_vm&quot;&gt;
[[Image:esbox-new-project-vm.png|frame|center|alt=unknown|'''Figure 6.16:''' Default project location]]
&lt;/div&gt;

In fact, if the dialog presents an error about the project location not being visible, this means your shared folder mappings are insufficient, because no valid mapping satisfies the goal. This mapping depends on the mapping constraints for the union of the selected targets, figure [[#fig-virtual_machine_new_project_vm_bad|6.17]].

&lt;div id=&quot;fig-virtual_machine_new_project_vm_bad&quot;&gt;
[[Image:esbox-new-project-vm-bad.png|frame|center|alt=unknown|'''Figure 6.17:''' Project location, not visible]]
&lt;/div&gt;

Once you have established mappings exposing the Maemo SDK to the host, ESbox uses these mappings to populate the C/C++ indexer settings when you create, import, or convert a project, figure [[#fig-virtual_machine_indexer_settings|6.18]].

&lt;div id=&quot;fig-virtual_machine_indexer_settings&quot;&gt;
[[Image:esbox-project-indexer-settings.png|frame|center|alt=unknown|'''Figure 6.18:''' Indexer settings]]
&lt;/div&gt;

(If you need to change your shared folder setup, or change other things that invalidate these settings, you can use '''Project &amp;gt; Index &amp;gt; Reset Paths and Symbols or Project &amp;gt; Index &amp;gt; Add Missing Paths and Symbols''' to regenerate them from the current mappings.)

=== Clock synchronization ===

When you perform C/C++ builds in ESbox, it is essential that the clock settings in the host and the virtual machine match, since they share a Samba filesystem whose timestamps determine whether any work needs to be done. If they mismatch, then either your Make output is littered with &quot;timestamp drift&quot; messages or your programs are not rebuilt as expected.

Unfortunately, the virtual machine engine and configuration influence the clock in different ways. (For example, in VMware, the clock may act differently depending on whether the VMware Tools are installed.) You will need to manually configure your system and experiment to make things work.

One approach is:

# Log into the virtual machine.
# Disable the &lt;code&gt;/etc/cron.minutely/00resetclock&lt;/code&gt; script (that is, comment out the &lt;code&gt;hwclock&lt;/code&gt; command). This currently runs without appropriate options in respect to the timezone. But note that the clock can drift (without VM engine tools support).
# Reconfigure the time zone to match the one you use in the host, using &lt;code&gt;sudo dpkg-reconfigure tzdata&lt;/code&gt;.
# Edit &lt;code&gt;/etc/default/rcS&lt;/code&gt; and set &lt;code&gt;UTC=no&lt;/code&gt;.
# Edit &lt;code&gt;/etc/profile&lt;/code&gt; and comment out the line: &lt;code&gt;export TZ=Europe/London&lt;/code&gt;.
# Reboot.
# Sync the clock. Run &lt;code&gt;sudo /sbin/hwclock -localtime -hctosys&lt;/code&gt;.
# Verify the time, using &lt;code&gt;date&lt;/code&gt;. This should match the current time on the host.

Now, you can create files in a shared folder and validate their timestamps to match those on the host. In my experiments with VMware Fusion on OS X, unfortunately, the timstamps were off by as much as 5 seconds. So this led to several annoying messages if I built several times in a row, but it is manageable.

=== PC Connectivity Interaction ===

Here are some tips and tricks for using [http://pc-connectivity.garage.maemo.org/ PC Connectivity] with ESbox and virtual machines.

==== Using USB, Bluetooth, WLAN ad-hoc Networking (static IPs) ====

USB, WLAN Ad-Hoc, and Bluetooth connections use static addresses (&lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;192.168.*.15&lt;/font&gt;&lt;/span&gt;). The default network routing configurations for the host mean that they are only able to directly communicate back and forth with one &quot;machine&quot; at a time. In most cases, you should connect the machine to the host, rather than the virtual machine. Eclipse manages most of the SSH traffic with the device, so the host needs to be able to see the device at its static address. The host cannot see network traffic inside the VM.

Conversely, from the device point of view, the device can only see the machine it is connected to. For cases where the device needs to open a socket from the host, the device must be able to see the host at the host address (&lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;192.168.*.14&lt;/font&gt;&lt;/span&gt;). This includes Python debugging and SBRSH.

Note: if you are using NAT networking with the virtual machine, the VM is also able to see the device at the static address. This is the best of both worlds.

Note: When using SBRSH, you most likely need to use WLAN instead of a static IP configuration. The device must be visible on the network inside the virtual machine and the host machine, since SBRSH runs under Scratchbox, and the device needs to mount filesystems from the VM and host.

==== Using WLAN Networking ====

WLAN networking is the most flexible option, as long as your virtual machine is configured for Bridged networking, where it has its own DHCP-acquired address. In this model, the host, the VM, and the device are all peers on the LAN. Thus, the device is visible to the host and the VM, and the device can see the host and the VM.

Unfortunately, of course, WLAN is very slow and prone to packet loss. It can be more difficult to use when debugging, for example.

=== Troubleshooting ===

'''Cannot access the machine'''

* If ESbox cannot guess your network properly, look at the boot screen for the VM or login to the VM (maemo/maemo) and run &lt;code&gt;sudo dhclient&lt;/code&gt; to validate the assigned IP address for the VM, if you are not getting a connection. Only in the case of NAT should you enter &lt;code&gt;127.0.0.1&lt;/code&gt; as the Target address in ESbox. For non-NAT cases, the host address is usually &lt;code&gt;xx.xx.xx.2&lt;/code&gt; of the target address.
* &lt;code&gt;ping&lt;/code&gt; is a very useful feature. In case of connection problems, cross-check the address displayed, for example, in a launch configuration or in the RSE connection, and verify that you can see if they are from your host or your VM (depending on context).
* If you are having trouble accessing port forwarding over SSH, note that VMware's virtual network port mappings apply even when it is not hosting a running VM. In such cases, select different target ports for other VM engines.

'''Scratchbox not found'''

* If you have first set up a machine and have had some difficulties with configuring it, you can set ESbox up to make it detect Scratchbox and targets. Go to '''Window &amp;gt; Preferences &amp;gt; Maemo &amp;gt; Installed Targets''' and hit '''Refresh'''.

'''Shared folder issues'''

* See [http://esbox.garage.maemo.org/2nd_edition/shared_folders.html ESbox Shared Folders] document, troubleshooting chapter for more information.

'''Device access issues'''

* The device must be connected to the host (not the VM) in most cases, except for SBRSH (which must use WLAN in most cases).
* Watch out for firewall software thwarting you. It may block all access to your device. Allow traffic to the &lt;code&gt;192.168.*&lt;/code&gt; IP range.
* If your LAN uses &lt;code&gt;192.168.{2,3,4}.*&lt;/code&gt; for its own DHCP server, and you want to use the static USB, Bluetooth, or WLAN ad-hoc connections, you need to have separate subnets. Reconfigure these static addresses in the PC-Connectivity Manager and in your host configuration.
* Avoid host-only networking configurations in your VM. Otherwise you are unable to contact the device or the Internet.
* SBRSH needs to communicate in three ways: between the host (running Eclipse), the VM (hosting Scratchbox and running the sbrsh client), and the device (running the sbrsh daemon). In most cases, you must use WLAN for this to work, unless you know how to manually configure routing tables to do this over USB or Bluetooth or the ad-hoc WLAN connection.

'''Virtual machine launching when not using ESbox'''

* Eclipse sometimes triggers builds for all projects in the workspace, which may be a problem if you are using other products in your installation and do not want to be prompted to launch the VM.
* The easiest solution is to switch the '''Build Machine''' to '''None'''. (With this setting, you cannot use most ESbox actions, since no installed targets except for Remote Connections are recognized.) An alternative is to use the '''Manually Launched Machine''' setting. If you use ESbox commands, it fails to connect immediately if no machine responds to the address.
* Alternately, a configured build machine can live alongside other products if you avoid allowing Eclipse to build ESbox projects: Close ESbox projects or Disable '''Project &amp;gt; Build Automatically''' and Disable '''Window &amp;gt; Preferences &amp;gt; Run/Debug &amp;gt; Build (if required) Before Launching'''

== Setting Up Shared Folders ==

=== Overview ===

Shared folders are needed when you run ESbox with a virtual machine outside the Debian Linux/x86 host. See [http://esbox.garage.maemo.org/2nd_edition/virtual_machines.html ESbox Using Virtual Machines] and chapter [[#Setting up Maemo SDK Virtual Image]] for the primary documentation on virtual machines.

In this configuration, the Maemo SDK (build tools, rootstrap, and so on) is contained inside the filesystem of a virtual machine, and is not directly accessible to the host. Conversely, the projects that you create and edit in Eclipse are created in the host filesystem, and are not directly accessible to the VM.

In order for most ESbox features to work, you must set up and configure shared folders to connect these filesystems together.

* Set up: you must manually set up file sharing in your host and in your VM if you are using a custom image not provided by the [http://maemovmware.garage.maemo.org/ Maemo SDK Virtual Image] project.
* Configure: you must tell ESbox what shares you have configured on the '''ESbox &amp;gt; Build Machines preference''' page like described in [http://esbox.garage.maemo.org/2nd_edition/virtual_machines.html ESbox Using Virtual Imges] documents and chapter [[#Shared Folders]].

See a diagram explaining how this works in an example Windows configuration, figure [[#fig-virtual_machine_esbox_shared_folder_mapping|6.19]].

&lt;div id=&quot;fig-virtual_machine_esbox_shared_folder_mapping&quot;&gt;
[[Image:esbox-shared-folder-mapping.png|frame|center|alt=unknown|'''Figure 6.19:''' ESbox shared folder mapping]]
&lt;/div&gt;

==== Sharing Eclipse Projects ====

In Eclipse, projects are traditionally created in the host filesystem. Projects are created in the host filesystem by convention. CDT has some support for creating projects on a network using EFS, but EFS-based projects are not properly supported by all the 3rd party plugins that ESbox uses.

The Maemo SDK needs to be able to &quot;see&quot; the project location in order to build your project, so the project location should be inside a directory, which is shared to the virtual machine. For example, in Windows, you may have a shared folder &lt;code&gt;c:/textbackslash/maemo/shared&lt;/code&gt;. You create projects somewhere inside this tree. The share has read-write permissions so the build can generate object files and executables. The Eclipse workspace itself does not have to live inside the shared folder, but it can be simpler to understand.

At the same time, the shared folder from the host must be mounted in the VM in a location visible to the rootstrap, so that the SDK build tools can locate your C/C++ sources and headers or Python scripts.

Scratchbox 1 uses a sandbox model, whch means only files inside certain directories of &lt;code&gt;/scratchbox&lt;/code&gt; are visible. It is best to select a directory that does not change locations for different rootstraps, such as the user's home directory inside SB1. A suitable location is &lt;code&gt;/scratchbox/users/&amp;lt;user&amp;gt;/home/&amp;lt;user&amp;gt;/shared&lt;/code&gt;.

For Scratchbox 2, a similar kind of sandboxing occurs, but it is slightly less restrictive. We recommend mounting any shares inside the user's home directory. A suitable location is &lt;code&gt;/home/&amp;lt;user&amp;gt;/shared&lt;/code&gt;.

{{ambox
|text=This choice exposes occasional problems when Unix filesystem semantics are not fully emulated over Samba shares, such as when softlinks are created by build scripts, and building is a little slower than with a native filesystem. But we chose to optimize for ease of Eclipse integration and speed of IDE/editor/debugger-time activity over&lt;br&gt;build-time performance.
}}

==== Sharing Maemo SDK ====

CDT's C/C++ indexer parses the sources and headers of C/C++ projects, so you can look up &lt;code&gt;#include&lt;/code&gt;s and use code completion, symbol lookup, cross-referencing, type/call hierarchies, and so on. The indexer data is also used to resolve symbols for use by Maemo C++ hover help.

For this parsing to be complete and cover most of the identifiers defined or referenced in your project, the Maemo SDK headers need to be visible to the indexer. The easiest way to do this with the stock C/C++ Includes and Symbols UI is to have the Maemo SDK visible to the host filesystem. CDT supports offline or precompiled indexes, which would obviate the need to directly expose the SDK to the host. This feature was not implemented in ESbox but, it is worthwhile to expose the SDK contents to the host so you can browse Maemo headers in the editor.

This kind of sharing is not required for normal build, launch, or debug operations.

{{ambox
|text=For sharing from the VM to the host, the network adapter setup in the VM should be Bridged Networking.
}}

NAT networking requires port forwarding over the CIFS port 445 to avoid conflicting with the SMB/CIFS server in host PC, but Windows at least does not easily allow you to specify an alternate CIFS port with programs like &lt;code&gt;NET USE&lt;/code&gt;. Also, in Mac OS X, VMware Fusion does not appear to support user-configured port forwarding.

The virtual machine must export shares so the Maemo rootstraps can be mounted in the host. You want to capture the &lt;code&gt;compilers&lt;/code&gt; and &lt;code&gt;users/.../targets&lt;/code&gt; directories for Scratchbox 1 (&lt;code&gt;/scratchbox&lt;/code&gt; captures both) and the &lt;code&gt;/home/.../.maemo-sdk&lt;/code&gt; directory for Scratchbox 2 (the &lt;code&gt;/home/&amp;lt;user&amp;gt;&lt;/code&gt; directory is good enough).

The [http://maemovmware.garage.maemo.org/ Maemo SDK Virtual Images] will export these shares by default.

=== Default Shared Folders Configuration ===

ESbox publishes default shares when you configure a new build machine. For Eclipse project sharing, ESbox provides these shares:

* Local share = Yes
* Share path = &lt;code&gt;c:/maemo/shared&lt;/code&gt; or &lt;code&gt;/home/&amp;lt;user&amp;gt;/Public&lt;/code&gt;
* Mount path = &lt;code&gt;/scratchbox/users/maemo/home/maemo/shared&lt;/code&gt;

and

* Local share = Yes
* Share path = &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;c:/ maemo/shared&lt;/font&gt;&lt;/span&gt; or &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;/home/&amp;lt;user&amp;gt;/Public&lt;/font&gt;&lt;/span&gt;
* Mount path = &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;/home/maemo/shared&lt;/font&gt;&lt;/span&gt;

Feel free to change the Share Path to whatever you have on your system. The Mount Paths, though, have been selected specially. They point into the user's home on the VM so that Scratchbox 1 and Scratchbox 2 can see the projects in the same Scratchbox-relative directory at build time. Additionally, they point to a location that map the same no matter which target you are building.

For Maemo SDK sharing, ESbox provides these shares:

* Local share? = No
* Share path = &lt;code&gt;/scratchbox&lt;/code&gt;
* Mount path = &lt;code&gt;S:&lt;/code&gt; or &lt;code&gt;/Volumes/scratchbox&lt;/code&gt;

and

* Local share? = No
* Share path = &lt;code&gt;/home/maemo&lt;/code&gt;
* Mount path = &lt;code&gt;T:&lt;/code&gt; or &lt;code&gt;/Volumes/maemo&lt;/code&gt;

Again, change the Mount Path according to your preferences.

These shares allow access to enough of the SDK to allow full C/C++ indexing. The home directory is exposed mainly because Scratchbox 2 places SDKs under &lt;code&gt;~/.maemo-sdk&lt;/code&gt;. However, we suggest the whole home directory, which may be useful, if you want to move files back and forth between the host and VM.

=== How to Make Shares in Windows XP ===

Take these steps to share a folder like &lt;code&gt;c:/maemo/shared&lt;/code&gt; (or whatever you prefer).

==== Enabling sharing services ====

Be sure to enable '''Windows File &amp;amp; Print Sharing'''. You will see it on a fresh system when you first select '''Sharing &amp;amp; Security...''' from a folder's context menu in Windows Explorer. Alternately, visit '''Control Panel &amp;gt; Administrative Tools &amp;gt; Services''' and enable the '''Server''' service.

==== Exporting shares ====

Under Windows Explorer, right click on a folder and select '''Sharing and Security...''', figure [[#fig-shared_folders_xp_share_menu|6.20]].

&lt;div id=&quot;fig-shared_folders_xp_share_menu&quot;&gt;
[[Image:xp-share-menu.png|frame|center|alt=unknown|'''Figure 6.20:''' Sharing and Security...]]
&lt;/div&gt;

You will see a dialog for configuring a share, figure [[#fig-shared_folders_xp_share_dialog|6.21]].

&lt;div id=&quot;fig-shared_folders_xp_share_dialog&quot;&gt;
[[Image:xp-share-dialog.png|frame|center|alt=unknown|'''Figure 6.21:''' shared Properties]]
&lt;/div&gt;

Check '''Share this folder'''.

Edit the '''Share name''', if needed. You need to enter the same value in the Shared Folders page. Usually this is the same as the last segment of the shared folder.

For '''User limit''', you may choose to limit the number of users. ESbox will attempt to share a folder into a VM only once, even if you have multiple mappings established, by using bind mounts to mirror the original mount.

Edit the '''Permissions''' and ensure that your local user account (who runs Eclipse) has '''Full Control''' (change and read). The build process needs to write object files, dependencies, and executables, figure [[#fig-shared_folders_xp_share_permissions|6.22]].

&lt;div id=&quot;fig-shared_folders_xp_share_permissions&quot;&gt;
[[Image:xp-share-permissions.png|frame|center|alt=unknown|'''Figure 6.22:''' Share Permissions]]
&lt;/div&gt;

{{ambox
|text=Export a single folder rather than a drive. It is inherently unsafe to export entire drives, and ESbox does not propose adding mappings for exported drives.}}

=== How to Make Shares in Windows Vista ===

Take these steps to share a folder like &lt;code&gt;c:/maemo/shared&lt;/code&gt; (or whatever you prefer).

=== Enable file sharing services ===

Under '''Control Panel &amp;gt; Network and Internet &amp;gt; Network and Sharing Center''', the entry '''Sharing and Discovery &amp;gt; File sharing''' should be '''On''', figure [[#fig-shared_folders_vista_share_config|6.23]].

&lt;div id=&quot;fig-shared_folders_vista_share_config&quot;&gt;
[[Image:vista-share-config.png|frame|center|alt=unknown|'''Figure 6.23:''' Sharing and Discovery]]
&lt;/div&gt;

==== Exporting shares ====

Under Windows Explorer, right click on a folder and select '''Share...''', figure [[#fig-shared_folders_vista_menu_share|6.24]].

&lt;div id=&quot;fig-shared_folders_vista_menu_share&quot;&gt;
[[Image:vista-menu-share.png|frame|center|alt=unknown|'''Figure 6.24:''' Share...]]
&lt;/div&gt;

Ensure that your local user account (who runs Eclipse) is in the share list, and has '''Permission Level''' = '''Owner''' (read and write). The build process needs to write and delete object files, dependencies, and executables, figure [[#fig-shared_folders_vista_share_permissions|6.25]].

&lt;div id=&quot;fig-shared_folders_vista_share_permissions&quot;&gt;
[[Image:vista-share-permissions.png|frame|center|alt=unknown|'''Figure 6.25:''' Share permissions]]
&lt;/div&gt;

{{ambox
|text=Export a single folder rather than a drive. It is inherently unsafe to export entire drives, and ESbox does not propose adding mappings for exported drives.}}

=== How to Make Shares in Windows 7 ===

Take these steps to share a folder like &lt;code&gt;c:/maemo/shared&lt;/code&gt; (or whatever you prefer).

==== Enable sharing ====

Under '''Control Panel &amp;gt; Network and Internet &amp;gt; Choose homegroup and sharing options &amp;gt; Change advanced sharing settings...''', the entry '''Turn on file and printer sharing''' should be selected, figure [[#fig-shared_folders_w7_sharing_options|6.26]].

&lt;div id=&quot;fig-shared_folders_w7_sharing_options&quot;&gt;
[[Image:w7-sharing-options.png|frame|center|alt=unknown|'''Figure 6.26:''' File and printer sharing]]
&lt;/div&gt;

==== Exporting shares ====

Under Windows Explorer, right click on a folder and select '''Properties''', figure [[#fig-shared_folders_w7_sharing_menu|6.27]].

&lt;div id=&quot;fig-shared_folders_w7_sharing_menu&quot;&gt;
[[Image:w7-sharing-menu.png|frame|center|alt=unknown|'''Figure 6.27:''' Properties]]
&lt;/div&gt;

Select '''Share''', figure [[#fig-shared_folders_w7_sharing_folder_properties|6.28]].

&lt;div id=&quot;fig-shared_folders_w7_sharing_folder_properties&quot;&gt;
[[Image:w7-sharing-folder-properties.png|frame|center|alt=unknown|'''Figure 6.28:''' Share...]]
&lt;/div&gt;

Ensure that your local user account (who runs Eclipse) is in the share list, and has '''Permission Level''' = '''Owner''' (read and write). The build process needs to write and delete object files, dependencies, and executables.

{{ambox
|text=Export a single folder rather than a drive. It is inherently unsafe to export entire drives, and ESbox does not propose adding mappings for exported drives.}}

=== How to Make Shares in Mac OS X ===

==== Enabling Windows/SMB File Sharing ====

Open '''System Preferences &amp;gt; Sharing'''. Click the lock and enter an administrator's credentials to make changes.

Enable '''File Sharing'''. Click '''Options....'''

Check the option '''Share files and folders using SMB'''. This is the protocol used for Windows-style file sharing, figure [[#fig-shared_folders_osx_share_smb_enable|6.29]].

&lt;div id=&quot;fig-shared_folders_osx_share_smb_enable&quot;&gt;
[[Image:osx-share-smb-enable.png|frame|center|alt=unknown|'''Figure 6.29:''' Enable SMB sharing]]
&lt;/div&gt;

Click '''Options....'''

{{ambox
|text=In Snow Leopard (10.6 or newer), you have to enable encrypted password support in Samba in the virtual machine. Inside the VM, edit &lt;code&gt;/etc/samba/smb.conf&lt;/code&gt; and change the line under the &quot;Authentication&quot; section: &lt;code&gt;encrypt passwords = false&lt;/code&gt; to &lt;code&gt;encrypt passwords = true&lt;/code&gt;}}

If this is not done, you encounter numerous failed password attempts. Other host operating systems and Samba/SMB/CIFS versions may not allow usage of unencrypted passwords.

==== Exporting Shares ====

Use the default shares for your account (''Public'', which is under &lt;code&gt;/home/&amp;lt;user&amp;gt;/Public&lt;/code&gt;), or create new ones. Ensure your user account (who runs Eclipse) has '''Read and Write''' permissions, figure [[#fig-shared_folders_osx_share_prefs|6.30]].

&lt;div id=&quot;fig-shared_folders_osx_share_prefs&quot;&gt;
[[Image:osx-share-prefs.png|frame|center|alt=unknown|'''Figure 6.30:''' File Sharing]]
&lt;/div&gt;

The '''Share name''' used in ESbox comes from the label under '''Shared Folders'''.

=== How to Make Shares in Linux ===

==== Enabling File Sharing ====

This also uses Windows-style file sharing. However, when the host and VM both run Linux, and you are using a modern version of Samba (3.x), POSIX file semantics are supported, so there is no loss of functionality (permissions, softlinks, and so on are preserved). Ensure that the &lt;code&gt;samba&lt;/code&gt; package is installed from your distribution's package repository and that &lt;code&gt;/etc/samba/smb.conf&lt;/code&gt; file exists.

==== Exporting Shares (Manual) ====

'''Method 1'''

If you are in the &lt;code&gt;sambashare&lt;/code&gt; group, you may define a user share directly. This is done by adding an entry to &lt;code&gt;/var/lib/samba/usershares&lt;/code&gt; (or, to the path defined by the &lt;code&gt;usershare path&lt;/code&gt; option in &lt;code&gt;/etc/samba/smb.conf&lt;/code&gt; file. Try &lt;code&gt;testparm -s -parameter-name='usershare path'&lt;/code&gt; to see the setting).

Add a text file to this directory whose name is the Share name (for example, &lt;code&gt;public&lt;/code&gt;). Specify its contents like this:

&lt;pre&gt;
#VERSION 3
path=/home/localuser/Public
comment=
usershare_acl=S-1-1-0:F
guest_ok=yes
directory mask=755
create mask=644
&lt;/pre&gt;

The share will immediately become available.

If your Samba server is older, you may need to use this format:

&lt;pre&gt;
#VERSION 2
path=/home/localuser/Public
comment=
usershare_acl=S-1-1-0:F
guest_ok=y
&lt;/pre&gt;

'''Method 2'''

Alternately, you may add the share directly to the Samba configuration. Edit the &lt;code&gt;/etc/samba/smb.conf&lt;/code&gt; file as root.

Add an entry like the following to the end of the file:

&lt;pre&gt;
[Public]
writable = yes
public = yes
browseable = yes
path = /home/localuser/Public
&lt;/pre&gt;

Substitute appropriate values for &lt;code&gt;path&lt;/code&gt; and select a custom share name instead of &lt;code&gt;Public&lt;/code&gt; in brackets. The bracketed section name is the &lt;code&gt;Share name&lt;/code&gt; used in ESbox.

Then restart samba with: &lt;code&gt;sudo killall -HUP smbd&lt;/code&gt;

==== Exporting Shares (GNOME) ====

Alternately, under GNOME and Nautilus, you may export shares through theUI, by using the '''Sharing Options''' item on a folder's context menu, figure [[#fig-shared_folders_gnome_share_menu|6.31]].

&lt;div id=&quot;fig-shared_folders_gnome_share_menu&quot;&gt;
[[Image:gnome-share-menu.png|frame|center|alt=unknown|'''Figure 6.31:''' Sharing Options]]
&lt;/div&gt;

Check '''Share this folder'''. Type in the '''Share name''' to use (which will serve the same role in the ESbox Shared Folders configuration). If you are using this folder for hosting projects, enable '''Allow other people to write in this folder'''.

You may also need to enable '''Guest access''' if you do not have the same user accounts in the host and VM, figure [[#fig-shared_folders_gnome_share_dialog|6.32]].

&lt;div id=&quot;fig-shared_folders_gnome_share_dialog&quot;&gt;
[[Image:gnome-share-dialog.png|frame|center|alt=unknown|'''Figure 6.32:''' Folder Sharing]]
&lt;/div&gt;

Such shares are created as user shares, as described above.

=== Troubleshooting ===

'''Shared folder configuration problems'''

If you cannot mount to shared folders published from Windows, and you get the error &lt;code&gt;mount error 12 = cannot allocate memory&lt;/code&gt;, then this is a host issue. Certain virus scanners may reset a registry setting to an inappropriately low value, making it impossible to export shares. You can fix this in your Windows registry.

Edit the key &lt;code&gt;HKEY_ LOCAL_ MACHINE\System\CurrentControlSet \Services\LanmanServer\Parameters\IRPStackSize&lt;/code&gt;. Define it as a &lt;code&gt;DWORD&lt;/code&gt; value (if missing). Set it to a value in the decimal range 15 to 18. The documentation is unclear what this value indicates, but it is probably a power-of-two. It may require some experimentation. The new setting will only be read when the sharing service is restarted. You may do this via '''Control Panel &amp;gt; Administrative Tools &amp;gt; Services &amp;gt; Server''' and restart, or if you have got more time to spare, reboot your system.

Also see the [http://support.microsoft.com/default.aspx?scid=kb;en-us;177078 Microsoft Knowledge Base] article for more information.

'''Time synchronzation problems'''

Be careful about the time synchronization configuration in the VM or the timezone used in the VM image.

If you see warnings like:

 make: Warning: File &lt;code&gt;Makefile&lt;/code&gt; has modification time &lt;code&gt;1.1e+07&lt;/code&gt; in the future &lt;code&gt;rm -f *.o helloworld&lt;/code&gt; make: warning: Clock skew detected. Your build may be incomplete.

then install the appropriate virtualization tools to ensure the time is synchronized.

When using VirtualBox, please install Guest Additions to fix the time synchronization. In VMware, install VMware Tools. Alternately, log into to VM and change the timezone. There is not consistent behaviour between VM engines, so some tweaking may be required. You may need to be connected to a LAN for the PC &amp;lt;-&amp;gt; VM communication to work properly. Otherwise shared folders will not be mountable and you may get mysterious timeouts instead.

If you use Windows and your VM uses NAT, it is unlikely that you are able to mount folders from the VM without significant advanced networking setup effort. You would need to use port forwarding to see ports 139 and 445 from the VM without conflicting with the host's own sharing protocol. Windows does not provide an obvious way to use SMB with different ports and you need to set up some sort of virtual host over SSH to forward SMB traffic.

'''Autotools projects fail to build Makefile'''

If you have created or imported an autotools-based project, and run autoconf and configure, but make reports errors like: &lt;code&gt;make: *** No rule to make target 'all'. Stop.&lt;/code&gt; the reason may be compatibility problem between older &lt;code&gt;autoconf&lt;/code&gt; versions and Samba shares.

This may be due to a known file truncation issue that occurs when using &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;autoconf&lt;/font&gt;&lt;/span&gt; 2.62 or older over Samba shares. Due to trying to rename files before closing them, the &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;configure&lt;/font&gt;&lt;/span&gt; files will be truncated, preventing Makefiles from being generated. Current Maemo SDKs may still ship these old versions of &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;autoconf&lt;/font&gt;&lt;/span&gt;.

ESbox can repair the &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;autoconf&lt;/font&gt;&lt;/span&gt; installation in Scratchbox for you if you install it using the Scratchbox 1 installer wizard. Or, if you have an old image or have manually installed Scratchbox 1, you can right-click the Scratchbox node (for example, in '''Window &amp;gt; Preferences &amp;gt; Maemo &amp;gt; Installed Targets''') and select '''Patch autoconf'''. A wizard guides you through the process of repairing the installation.

== Setting up X Server ==

=== Setting up X Server on Windows ===

ESbox has been tested with the Cygwin/X server. Cygwin/X server is recommended since Cygwin is required also for other functionality like SSH.

{{ambox
|text=There are serious issues with the Cygwin 1.7 X11 server when used in Windows 7 (or Windows Vista), meaning that Maemo applications crash the server. Use the Cygwin 1.5.25-15 version instead if you encounter issues. See [http://garage.maemo.org/tracker/?func=detail&amp;atid=1420&amp;aid=4897&amp;group_id=192 this bug] for current status.
}}

You do not need to install all of Cygwin to use X server. It is sufficient to download the &lt;code&gt;setup.exe&lt;/code&gt; Cygwin installer from the [http://www.cygwin.com/ Cygwin site] and to select the '''X11/xorg-xserver''', '''X11/xinit''' and '''X11/xdpyinfo''' packages.

=== Runtime display requirements for Fremantle SDKs ===

Fremantle requires a 16-bit color depth for the display. Because Cygwin/X X11 server uses the default display depth from the host PC operating system, you will see the following Eclipse dialog if you launch Eclipse IDE in some other than 16-bit display mode, figure [[#fig-x_setup_windows_color_depth_warning|6.33]].

{{ambox
|text=Fremantle platform requires X11 server to use 16-bit color depth. Because Cygwin X11 server uses the display depth of the Windows desktop, Windows desktop color depth for host PC must be changed to 16-bit, if depth is something different by default.
}}

&lt;div id=&quot;fig-x_setup_windows_color_depth_warning&quot;&gt;
[[Image:warning_color_depth.png|frame|center|alt=unknown|'''Figure 6.33:''' Colour depth warning]]
&lt;/div&gt;

Some mouse pointer workarounds in earlier versions of ESbox are no longer needed. If they are still set, you see this dialog asking permission to modify your '''ESbox &amp;gt; X Server''' command launch parameters, figure [[#fig-x_setup_windows_mouse_pointer_warning|6.34]].

&lt;div id=&quot;fig-x_setup_windows_mouse_pointer_warning&quot;&gt;
[[Image:warning_options.png|frame|center|alt=unknown|'''Figure 6.34:''' Mouse pointer warning]]
&lt;/div&gt;

You can also see the combined warning if both changes are needed, figure [[#fig-x_setup_windows_combined_warning|6.35]].

&lt;div id=&quot;fig-x_setup_windows_combined_warning&quot;&gt;
[[Image:warning_color_depth_options.png|frame|center|alt=unknown|'''Figure 6.35:''' Combined warning]]
&lt;/div&gt;

==== How to change colour depth in Windows XP ====

Right-click the desktop, and then click '''Properties''', figure [[#fig-x_setup_windows_xp_desktop|6.36]].

&lt;div id=&quot;fig-x_setup_windows_xp_desktop&quot;&gt;
[[Image:xp_desktop.png|frame|center|alt=unknown|'''Figure 6.36:''' Windows XP desktop properties]]
&lt;/div&gt;

Click the '''Settings''' tab.

Click the drop-down list in the '''Color Quality''' field and select '''Medium (16 bit)'''.

Click '''OK''', figure [[#fig-x_setup_windows_xp_desktop_properties|6.37]].

&lt;div id=&quot;fig-x_setup_windows_xp_desktop_properties&quot;&gt;
[[Image:xp_display_properties.png|frame|center|alt=unknown|'''Figure 6.37:''' Windows XP Display Properties]]
&lt;/div&gt;

==== How to change colour depth in Windows Vista ====

Right-click the desktop, and then click '''Personalize''', figure [[#fig-x_setup_windows_vista_desktop|6.38]].

&lt;div id=&quot;fig-x_setup_windows_vista_desktop&quot;&gt;
[[Image:vista_desktop.png|frame|center|alt=unknown|'''Figure 6.38:''' Windows Vista desktop properties]]
&lt;/div&gt;

Click the '''Display Settings''', figure [[#fig-x_setup_windows_vista_control_panel|6.39]].

&lt;div id=&quot;fig-x_setup_windows_vista_control_panel&quot;&gt;
[[Image:vista_control_panel.png|frame|center|alt=unknown'''Figure 6.39:''' Windows Vista Personalization]]
&lt;/div&gt;

Click the drop-down list in the '''Colors''' field and select '''Medium (16 bit)'''.

Click '''Ok''', figure [[#fig-x_setup_windows_vista_display_properties|6.40]].

&lt;div id=&quot;fig-x_setup_windows_vista_display_properties&quot;&gt;
[[Image:vista_display_properties.png|frame|center|alt=unknown|'''Figure 6.40:''' Windows Vista Display Settings]]
&lt;/div&gt;

==== How to change the display colour depth in Windows 7 ====

Open the Control panel ('''Start &amp;gt; Control Panel'''), figure [[#fig-x_setup_windows_7_control_panel_menu|6.41]].

&lt;div id=&quot;fig-x_setup_windows_7_control_panel_menu&quot;&gt;
[[Image:7_control_panel_menu.png|frame|center|alt=unknown|'''Figure 6.41:''' Windows 7 Start menu]]
&lt;/div&gt;

Click '''Adjust screen resolution''' under '''Appearance and Personalization''', figure [[#fig-x_setup_windows_7_appearance_personalization|6.42]].

&lt;div id=&quot;fig-x_setup_windows_7_appearance_personalization&quot;&gt;
[[Image:7_appearance_personalization.png|frame|center|alt=unknown|'''Figure 6.42:''' Windows 7 Control Panel]]
&lt;/div&gt;

Click '''Advanced settings''', figure [[#fig-x_setup_windows_7_screen_resolution|6.43]].

&lt;div id=&quot;fig-x_setup_windows_7_screen_resolution&quot;&gt;
[[Image:7_screen_resolution.png|frame|center|alt=unknown|'''Figure 6.43:''' Windows 7 Screen Resolution]]
&lt;/div&gt;

Click the '''Monitor''' tab, figure [[#fig-x_setup_windows_7_monitor_tab|6.44]].

&lt;div id=&quot;fig-x_setup_windows_7_monitor_tab&quot;&gt;
[[Image:7_monitor_tab.png|frame|center|alt=unknown'''Figure 6.44:''' Windows 7 Monitor tab]]
&lt;/div&gt;

Under '''Colors''', select '''High Color (16 bit)''', and then click '''OK'''.

=== Setting up X Server on Mac OS X ===

==== Installing the server ====

The Xephyr server is recommended since it tracks the newest X server extensions used by Fremantle. Find this in the [http://xquartz.macosforge.org/trac/wiki/X112.3.3 Xquartz project].

==== Runtime display requirements for Fremantle SDKs ====

Fremantle requires a 16-bit color depth for the display. Because Xephyr X11 server uses the default display depth from the host PC operating system you will see Eclipse dialog with warning if you launch Eclipse IDE in some other than 16-bit display mode. Set up your host PC display to have '''Thousands''' of colours in the '''System Preferences &amp;gt; Display field'''.

{{ambox
|text=Fremantle platform requires X11 server to use 16-bit color depth. Because Xephyr X11 server uses the display depth of the Mac OS X desktop, Mac OS X desktop color depth for host PC must be changed to 16-bit, if depth is something different by default.
}}

If ESbox notices that you are trying to run X in an incorrect configuration, it asks you to disable the MIT-SHM option, which is a workaround that fixes the issue, figure [[#fig-x_setup_mac_shm_warning|6.45]].

&lt;div id=&quot;fig-x_setup_mac_shm_warning&quot;&gt;
[[Image:shm_warning.png|frame|center|alt=unknown|'''Figure 6.45:''' MIT-SHM extension warning]]
&lt;/div&gt;

Click '''Yes''' to warning above to disable MIT-SHM extension in the command launch pattern in the '''ESbox &amp;gt; X Server''' preference page and restart the server.

[[Category:Documentation]]
[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Eclipse Tutorial/Using ESbox</title>
    <id>3858</id>
    <revision>
      <id>40062</id>
      <timestamp>2010-11-11T14:04:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify some more</comment>
      <text xml:space="preserve">ESbox supports C, C++, Python and Qt4 projects. This chapter briefly describes how to create different types of projects and applications and how to run, test and debug applications using Maemo SDK and a Maemo device.

ESbox requires that C/C++, Python and Qt4 development environments are installed on the host PC where Maemo SDK is run and on the Maemo device. For detailed instructions on how to install ESbox and the required development environments, see ESbox installation chapters. You need PC Connectivity to connect the Maemo device to the host PC and ESbox. For instructions on how to install and configure Maemo PC Connectivity on the Maemo device and Maemo Host PC Connectivity on the host PC where the ESbox Eclipse environment is run, see PC Connectivity documentation.

Before creating your first project with ESbox, make sure that you can connect to your Maemo device from the host PC (that PC Connectivity has been properly installed and configured).

== Creating C/C++ and Qt4 Projects ==

=== C/C++ and Qt4 Templates ===

Templates define the basic structure of the project. Most of the templates are examples but you can also use them as a basic structure for your project.

To create a new C or C++ project, select '''File &amp;gt; New &amp;gt; Project''', figure [[#figure-esbox_usage_project_new|8.1]].

* C &amp;gt; C Maemo Project
* C++ &amp;gt; C++ Maemo Project

For Qt4 projects, select C++ project.

&lt;div id=&quot;figure-esbox_usage_project_new&quot;&gt;
[[Image:project-Python-new.png|frame|center|alt=Screenshot of New Project menu|Figure 8.1: New Project Menu]]
&lt;/div&gt;

ESbox supports simple Qt4, Makefile and Autotools projects, figure [[#figure-esbox_usage_c_01_projects|8.2]].

&lt;div id=&quot;figure-esbox_usage_c_01_projects&quot;&gt;
[[Image:c-01-projects.png|frame|center|alt=Screenshot of New C/C++ project|Figure 8.2: New C/C++ Project]]
&lt;/div&gt;

Select any of the available templates on the '''Template Project Type''' page, figure [[#figure-esbox_usage_c_02_templates|8.3]].

&lt;div id=&quot;figure-esbox_usage_c_02_templates&quot;&gt;
[[Image:c-02-templates.png|frame|center|alt=Screenshot of CC++ project template|Figure 8.3: C/C++ Project Template]]
&lt;/div&gt;

{{ambox
|text='''Maemo 4''' templates are only for [[Open development/Maemo roadmap/Diablo|Diablo]] targets and '''Maemo 5''' templates for [[Open development/Maemo roadmap/Fremantle|Fremantle]]. Select the correct template depending on your installation.
}}

=== C/C++ and Qt4 Targets ===

You can select multiple targets for a project. Optimized targets are compiled using compiler optimization while debug targets are compiled with debug options.

If you want to run a project on a Maemo device, select the &lt;code&gt;ARMEL&lt;/code&gt; target. To run a project on the emulator, select the &lt;code&gt;X86&lt;/code&gt; target.

Select all targets for a project, figure [[#figure-esbox_usage_c_03_targets|8.4]]. You can change the targets after you have created the project.

&lt;div id=&quot;figure-esbox_usage_c_03_targets&quot;&gt;
[[Image:c-03-targets.png|frame|center|alt=Screenshot of C/C++ project target|Figure 8.4: C/C++ Project Target]]
&lt;/div&gt;

If you do not see any targets on the '''Project Configuration''' page, check that Maemo SDK targets are installed and install them if necessary. For more information on how to install Maemo SDK and targets for ESbox, see ESbox installation chapters.

=== C/C++ and Qt4 Metadata ===

Other project pages define different metadata the template uses. You can specify additional information in the fields or use the default values, figure [[#figure-esbox_usage_c_04_metadata|8.5]].

&lt;div id=&quot;figure-esbox_usage_c_04_metadata&quot;&gt;
[[Image:c-04-metadata.png|frame|center|alt=Screenshot of C/C++ project metadata|Figure 8.5: C/C++ Project Metadata]]
&lt;/div&gt;

After defining the values, click '''Finish''' to create a project.

=== Validating C/C++ and Qt4 Project Packages for Maemo SDK ===

When you have created a new project, ESbox suggests package validation, figure [[#figure-esbox_usage_c_05_validate|8.6]]. If you are not sure that the required development environments have been installed for your targets, click '''Yes'''.

&lt;div id=&quot;figure-esbox_usage_c_05_validate&quot;&gt;
[[Image:c-05-validate.png|frame|center|alt=Screenshot of package validation dialog|Figure 8.6: Validate Packages Dialog]]
&lt;/div&gt;

ESbox installs all the required dependencies for your project for the selected targets, if they are not installed already, figure [[#figure-esbox_usage_c_06_validate_wizard|8.7]].

If ESbox asks you about changing the target, click '''Yes''' to accept. Accept and install any packages ESbox suggests, and close the package validation wizard when the installation is complete.

&lt;div id=&quot;figure-esbox_usage_c_06_validate_wizard&quot;&gt;
[[Image:c-06-validate-wizard.png|frame|center|alt=Screenshot of package validation wizard|Figure 8.7: Validate Packages Wizard]]
&lt;/div&gt;

You can also validate project packages afterwards. To start the validation, select '''Project &amp;gt; Project Menu &amp;gt; Validate Installed Packages'''.

During validation, the projects are scanned for dependencies using the following information:

* Autotools projects: &lt;code&gt;PKG_CHECK_MODULES&lt;/code&gt; macros in &lt;code&gt;configure.ac&lt;/code&gt;
* Makefile projects: default metapackages for the project type and libraries detected through &lt;code&gt;pkg-config&lt;/code&gt; invocations

== Running C/C++ and Qt4 Applications on Maemo SDK ==

First, select the build configuration. Change the build configuration to &lt;code&gt;DIABLO_X86 (Debug)&lt;/code&gt; or &lt;code&gt;FREMANTLE_X86 (Debug)&lt;code&gt;.

To activate the selected configuration, right-click the project and select '''Build Configurations &amp;gt; Set active''', figure [[#figure-esbox_usage_c_07_set_target|8.8]].

&lt;div id=&quot;figure-esbox_usage_c_07_set_target&quot;&gt;
[[Image:c-07-set-target.png|frame|center|alt=Screenshot of C/C++ project target|Figure 8.8: Set C/C++ Project Target]]
&lt;/div&gt;

To add or remove targets, select '''Manage''' in the same menu.

The project is ready to be launched on Maemo SDK. To launch it, right-click the project and select '''Run As &amp;gt; Maemo Local Application''', figure [[#figure-esbox_usage_c_08_run_as|8.9]].

&lt;div id=&quot;figure-esbox_usage_c_08_run_as&quot;&gt;
[[Image:c-08-run-as.png|frame|center|alt=Screenshot of C/C++ project running as a local application|'''Figure 8.9:''' Run C/C++ Project as Local Application]]
&lt;/div&gt;

If Maemo Application Framework is not running, ESbox asks you to launch it. When you have launched the Application Framework successfully, you can see the Application Framework and the program running, figure [[#figure-esbox_usage_c_09_result|8.10]].

&lt;div id=&quot;figure-esbox_usage_c_09_result&quot;&gt;
[[Image:c-09-result.png|frame|center|alt=Screenshot of result of launching local project|'''Figure 8.10:''' C/C++ Project Local Launch Result]]
&lt;/div&gt;

== Running C/C++ and Qt4 Applications on a Maemo Device ==

To be able to run your application on a Maemo device, Maemo PC Connectivity must be installed on the device and Maemo Host PC Connectivity on the host PC. For more information, see ESbox installation chapters.

Because the device uses &lt;code&gt;ARMEL&lt;/code&gt; binaries, you must to change the target platform to &lt;code&gt;DIABLO_ARMEL&lt;/code&gt; or &lt;code&gt;FREMANTLE_ARMEL&lt;/code&gt; and rebuild your application for the Maemo device.

First, make sure that &lt;code&gt;DIABLO_ARMEL&lt;/code&gt; or &lt;code&gt;FREMANTLE_ARMEL&lt;/code&gt; target is selected by right-clicking the project and selecting '''Properties &amp;gt; Build Configurations &amp;gt; Manage''', figure [[#figure-esbox_usage_c_remote_01_manage|8.11]].

&lt;div id=&quot;figure-esbox_usage_c_remote_01_manage&quot;&gt;
[[Image:c-remote-01-manage.png|frame|center|alt=Screenshot of project management target menu|Figure 8.11: C/C++ Project Manage Target Menu]]
&lt;/div&gt;

Set the target to &lt;code&gt;DIABLO_ARMEL&lt;/code&gt; or &lt;code&gt;FREMANTLE_ARMEL&lt;/code&gt;, figure [[#figure-esbox_usage_c_remote_02_targets|8.12]].

&lt;div id=&quot;figure-esbox_usage_c_remote_02_targets&quot;&gt;
[[Image:c-remote-02-targets.png|frame|center|alt=Screenshot of project management of targets|'''Figure 8.12:''' C/C++ Project Manage Targets]]
&lt;/div&gt;

Right-click the project, select '''Build Configurations &amp;gt; Set Active''' and activate &lt;code&gt;DIABLO_ARMEL (Debug)&lt;/code&gt; or &lt;code&gt;FREMANTLE_ARMEL (Debug)&lt;/code&gt;, figure [[#figure-esbox_usage_c_remote_03_set_target|8.13]].

&lt;div id=&quot;figure-esbox_usage_c_remote_03_set_target&quot;&gt;
[[Image:c-remote-03-set-target.png|frame|center|alt=Screnshot of C/C++ project target setting|Figure 8.13: Set C/C++ Project Target]]
&lt;/div&gt;

=== Validating C/C++ and Qt4 Project Packages on a Maemo Device ===

To be able to run your application on the Maemo device, you need to make sure that all the required runtime dependencies for your application are available on the device.

Select '''Project Menu &amp;gt; Validate Installed Packages'''. On the first page, select the project to be validated, figure [[#figure-esbox_usage_c_remote_04_validate_device|8.14]].

&lt;div id=&quot;figure-esbox_usage_c_remote_04_validate_device&quot;&gt;
[[Image:c-remote-04-validate-device.png|frame|center|alt=Screenshot of package validation menu|Figure 8.14: Validate Packages Menu]]
&lt;/div&gt;

On the '''Target Selection''' page, select the correct Maemo device connection and &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;ARMEL&lt;/font&gt;&lt;/span&gt; target, Figure [[#figure-esbox_usage_c_remote_05_validate_targets|8.15]].

&lt;div id=&quot;figure-esbox_usage_c_remote_05_validate_targets&quot;&gt;
[[Image:c-remote-05-validate-targets.png|frame|center|alt=Screenshot of package validation targets|Figure 8.15: Validate Package Targets]]
&lt;/div&gt;

To start the validation, click '''Finish''' on the last page. This installs the required packages for the selected project on the Maemo device.

You can also validate project packages afterwards. To start the validation, select '''Project &amp;gt; Project Menu &amp;gt; Validate Installed Packages'''.

=== Running C/C++ and Qt4 Projects on a Maemo Device ===

To be able to run your application on a Maemo device, Maemo PC Connectivity must be installed on the device and Maemo Host PC Connectivity on the host PC. For more information, see ESbox installation chapters.

After you have set the target to &lt;code&gt;ARMEL&lt;/code&gt; and built your application as &lt;code&gt;ARMEL&lt;/code&gt;, you can run your application on the Maemo device. To run the application, right-click the project and select '''Run As &amp;gt; Maemo Remote Application''', figure [[#figure-esbox_usage_c_remote_06_run|8.16]].

&lt;div id=&quot;figure-esbox_usage_c_remote_06_run&quot;&gt;
[[Image:c-remote-06-run.png|frame|center|alt=Screenshot of running C/C++ project as a remote Maemo application|Figure 8.16: Run C/C++ Project as Remote Maemo Application]]
&lt;/div&gt;

Select SSH as the connection type (using the SBRSH connection type requires additional configuration), figure [[#figure-esbox_usage_c_remote_07_use_ssh|8.17]].

&lt;div id=&quot;figure-esbox_usage_c_remote_07_use_ssh&quot;&gt;
[[Image:c-remote-07-use-ssh.png|frame|center|alt=Screenshot of connection type dialog|Figure 8.17: Connection Type Dialog]]
&lt;/div&gt;

Select the device connection, figure [[#figure-esbox_usage_c_remote_06_run|8.16]]. Use USB connection because it is faster than Bluetooth or WLAN.

&lt;div id=&quot;figure-esbox_usage_c_remote_06_run&quot;&gt;
[[Image:c-remote-08-select-connection.png|frame|center|alt=Screenshot of device selection connection dialog|Figure 8.18: Select Device Connection Dialog]]
&lt;/div&gt;

You can now see your application running on the Maemo device.

You can use VNC Viewer to control the Maemo device and your application running on it. Select '''Window &amp;gt; Show View &amp;gt; Other &amp;gt; VNC Viewer'''.

{{ambox
|text=To use VNC Viewer, the &lt;code&gt;x11vnc&lt;/code&gt; service must be installed on the Maemo device either separately (apt-get install x11vnc) or as part of Maemo PC Connectivity.
}}

== Debugging C/C++ and Qt4 Applications ==

To be able to debug a project, you must set at least one breakpoint into one of the source files. To add a breakpoint somewhere, open a source file, right-click on the left source side panel and select '''Add Breakpoint''', figure [[#figure-esbox_usage_c_debug_01_breakpoint|8.19]].

&lt;div id=&quot;figure-esbox_usage_c_debug_01_breakpoint&quot;&gt;
[[Image:c-debug-01-breakpoint.png|frame|center|alt=Screenshot of adding a breakpoint to a C/C++ source file|Figure 8.19: Adding a Breakpoint to a C/C++ Source File]]
&lt;/div&gt;

To launch your project in debug mode, right-click the project and select '''Debug As &amp;gt; Maemo Local or Remote Application'''. When prompted, accept changing to the debug perspective, figure [[#figure-esbox_usage_c_debug_02_debug|8.20]].

&lt;div id=&quot;figure-esbox_usage_c_debug_02_debug&quot;&gt;
[[Image:c-debug-02-debug.png|frame|center|alt=Screenshot of Maemo application debugging menu|Figure 8.20: Debug as Maemo Application Menu]]
&lt;/div&gt;

In the debug perspective, you can stop and continue the execution, step lines, inspect variables, and so on. See Figures [[#figure-esbox_usage_c_debug_03_perspective|8.21]] and [[#figure-esbox_usage_c_debug_04_variables|8.22]].

{{ambox
|text=You can switch back and forth between perspectives by selecting from the top right corner.
}}

&lt;div id=&quot;figure-esbox_usage_c_debug_03_perspective&quot;&gt;
[[Image:c-debug-03-perspective.png|frame|center|alt=Screenshot of C/C++ project debug view|Figure 8.21: C/C++ Project Debug View]]
&lt;/div&gt;

&lt;div id=&quot;figure-esbox_usage_c_debug_04_variables&quot;&gt;
[[Image:c-debug-04-variables.png|frame|center|alt=Screenshot of inspecting C/C++ variables|Figure 8.22: Inspect C/C++ Variables]]
&lt;/div&gt;

== Creating Python Projects ==

ESbox Python projects require that Python is installed on the host PC. For more information, see ESbox installation chapters.

=== Python Templates ===

Templates define the basic structure of the project. Most of the templates are examples but you can also use them as a basic structure for your project.

To create a new Python project, select '''File &amp;gt; New &amp;gt; Project''' and then '''Python Maemo Project''', figure [[#figure-esbox_usage_project_python_new|8.23]].

&lt;div id=&quot;figure-esbox_usage_project_python_new&quot;&gt;
[[Image:project-Python-new.png|frame|center|alt=Screenshot of new project menu|Figure 8.23: New Project Menu]]
&lt;/div&gt;

Select any of the Python example templates on the '''Template''' page, figure [[#figure-esbox_usage_python_01_template|8.24]].

&lt;div id=&quot;figure-esbox_usage_python_01_template&quot;&gt;
[[Image:python-01-template.png|frame|center|alt=Screenshot of Python project template|Figure 8.24: Python Project Template]]
&lt;/div&gt;

=== Python Targets ===

Select &lt;code&gt;DIABLO_X86&lt;/code&gt; or &lt;code&gt;FREMANTLE_X86&lt;/code&gt; as the target, figure [[#figure-esbox_usage_python_02_target|8.25]].

&lt;div id=&quot;figure-esbox_usage_python_02_target&quot;&gt;
[[Image:python-02-target.png|frame|center|alt=Screenshot of Python project target|Figure 8.25: Python Project Target]]
&lt;/div&gt;

=== Python Metadata ===

The '''Basic Settings''' page defines different metadata the selected template uses. You can specify additional information in the fields or use the default values, figure [[#figure-esbox_usage_python_03_metadata|8.26]].

&lt;div id=&quot;figure-esbox_usage_python_03_metadata&quot;&gt;
[[Image:python-03-metadata.png|frame|center|alt=Screenshot of Python project metadata|Figure 8.26: Python Project Metadata]]
&lt;/div&gt;

=== Python Configuration ===

You can define the Python configuration settings on the last page. If the wizard cannot find an existing Python configuration, it suggests to create a new configuration.

You can use the default values and click '''Finish''' to a create project, figure [[#figure-esbox_usage_python_04_grammar|8.27]].

&lt;div id=&quot;figure-esbox_usage_python_04_grammar&quot;&gt;
[[Image:python-04-grammar.png|frame|center|alt=Screenshot of Python project configuration|Figure 8.27: Python Project Configuration]]
&lt;/div&gt;

If there is no previous configuration for your project, ESbox asks you to create a new configuration. To create one, click '''Yes'''.

For the Python interpreter configuration, you can add all the Python paths and confirm this by clicking '''OK''', figure [[#figure-esbox_usage_python_05_path|8.28]].

&lt;div id=&quot;figure-esbox_usage_python_05_path&quot;&gt;
[[Image:python-05-path.png|frame|center|alt=Screenshot of Python project interpreter paths|Figure 8.28: Python Project Interpreter Paths]]
&lt;/div&gt;

=== Validating Python Project Packages ===

When you have created a new project, ESbox suggests package validation. Click '''Yes''' to accept, figure [[#figure-esbox_usage_python_c_05_validate|8.29]].

&lt;div id=&quot;figure-esbox_usage_python_c_05_validate&quot;&gt;
[[Image:c-05-validate.png|frame|center|alt=Screenshot of package validation|Figure 8.29: Validate Packages]]
&lt;/div&gt;

Click '''Finish''' on the Package Validation Wizard dialog, figure [[#figure-esbox_usage_python_c_06_validate_wizard|8.30]]. ESbox installs all the required dependencies for the selected targets.

&lt;div id=&quot;figure-esbox_usage_python_c_06_validate_wizard&quot;&gt;
[[Image:c-06-validate-wizard.png|frame|center|alt=Screenshot of package validation wizard|'''Figure 8.30:''' Validate Packages Wizard]]
&lt;/div&gt;

If ESbox asks you about changing the target, click '''Yes''' to accept. Accept and install any packages ESbox suggests, and close the package validation wizard when the installation is complete.

You can also validate project packages afterwards. To start the validation, select '''Project &amp;gt; Project Menu &amp;gt; Validate Installed Packages'''.

During validation, the projects are scanned for dependencies using Python package imports from the source files.

== Running Python Applications on Maemo SDK ==

First, select the build configuration. Change the build configuration to &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;DIABLO_X86&lt;/font&gt;&lt;/span&gt; or &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;FREMANTLE_X86&lt;/font&gt;&lt;/span&gt;.

Right-click the project and select '''Properties''', figures [[#figure-esbox_usage_python_06_properties|8.31]].

&lt;div id=&quot;figure-esbox_usage_python_06_properties&quot;&gt;
[[Image:python-06-properties.png|frame|center|alt=Screenshot of Python project properties|Figure 8.31: Python Project Properties]]
&lt;/div&gt;

Select '''Maemo Build Configurations''' and activate the configuration, figures [[#figure-esbox_usage_python_07_configuration|8.32]]

&lt;div id=&quot;figure-esbox_usage_python_07_configuration&quot;&gt;
[[Image:python-07-configuration.png|frame|center|alt=Screenshot of Python project build configuration|Figure 8.32: Python Project Build Configuration]]
&lt;/div&gt;

To launch the project on Maemo SDK, right-click the project and select '''Run As &amp;gt; Python Maemo Local Application''', figure [[#figure-esbox_usage_python_08_run_as|8.33]].

&lt;div id=&quot;figure-esbox_usage_python_08_run_as&quot;&gt;
[[Image:python-08-run-as.png|frame|center|alt=Screenshot of Pyton project run as a local application|Figure 8.33: Python Project Run as Local Application]]
&lt;/div&gt;

Select the file you want to run on Maemo SDK. Do not select setup.py because it is used only for Debian package creation, figure [[#figure-esbox_usage_python_09_run_file|8.34]].

&lt;div id=&quot;figure-esbox_usage_python_09_run_file&quot;&gt;
[[Image:python-09-run-file.png|frame|center|alt=Screenshot of selecting a file on launch of a Python project|Figure 8.34: Python Project Select File on Launch]]
&lt;/div&gt;

If Maemo Application Framework is not running, ESbox asks you to launch it. When you have launched Maemo Application Framework successfully, you can see the Application Framework and the program running, figure [[#figure-esbox_usage_python_10_result|8.35]].

&lt;div id=&quot;figure-esbox_usage_python_10_result&quot;&gt;
[[Image:python-10-result.png|frame|center|alt=Screenshot of the result of launching a local Python project|Figure 8.35: Python Project Local Launch Result]]
&lt;/div&gt;

== Running Python Applications on a Maemo Device ==

To be able to run your Python application on a Maemo device, Maemo PC Connectivity must be installed on the device and Maemo Host PC Connectivity on the host PC. For more information, see ESbox installation chapters.

First, make sure that &lt;code&gt;DIABLO_ARMEL&lt;/code&gt; or &lt;code&gt;FREMANTLE_ARMEL&lt;/code&gt; target is selected by right-clicking the project and selecting '''Maemo Build Configurations'''. Select &lt;code&gt;DIABLO_ARMEL&lt;/code&gt; or &lt;code&gt;FREMANTLE_ARMEL&lt;/code&gt; as the target, figure [[#figure-esbox_usage_python_remote_02_target|8.36]].

&lt;div id=&quot;figure-esbox_usage_python_remote_02_target&quot;&gt;
[[Image:python-remote-02-target.png|frame|center|alt=Screenshot of selecting a Python project target|Figure 8.36: Select Python Project Target]]
&lt;/div&gt;

If there is no configuration for the target, ESbox asks you to create one. To configure a new target, click '''Select all'''.

== Validating Python Project Packages on a Maemo Device ==

To be able to run your application on a Maemo device, you need to make sure that all the required runtime dependencies for your application are available on the device.

Select '''Project Menu &amp;gt; Validate Installed Packages'''. On the first page, select the project to be validated, figure [[#figure-esbox_usage_python_c_remote_04_validate_device|8.37]].

&lt;div id=&quot;figure-esbox_usage_python_c_remote_04_validate_device&quot;&gt;
[[Image:c-remote-04-validate-device.png|frame|center|alt=Screenshot of package validation menu|Figure 8.37: Validate Packages Menu]]
&lt;/div&gt;

On the '''Target Selection''' page, select the correct Maemo device connection and &lt;code&gt;ARMEL&lt;/code&gt; target, Figure [[#figure-esbox_usage_python_c_remote_05_validate_targets|8.38]].

&lt;div id=&quot;figure-esbox_usage_python_c_remote_05_validate_targets&quot;&gt;
[[Image:c-remote-05-validate-targets.png|frame|center|alt=Screenshot of validating package targets|'''Figure 8.38:''' Validate Package Targets]]
&lt;/div&gt;

To start the validation, click '''Finish''' on the last page. This installs the required packages for the selected project on the Maemo device.

During validation, the projects are scanned for dependencies using Python package imports from the source files.

=== Running Python Projects on a Maemo Device ===

To be able to run your application on a Maemo device, Maemo PC Connectivity must be installed on the device and Maemo Host PC Connectivity on the host PC. For more information, see ESbox installation chapters.

After you have set the target to &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;ARMEL&lt;/font&gt;&lt;/span&gt; you can run your application on the Maemo device. To run the application, right-click the project and select '''Run As &amp;gt; Maemo Remote Application''', figure [[#figure-esbox_usage_python_remote_03_run|8.39]].

&lt;div id=&quot;figure-esbox_usage_python_remote_03_run&quot;&gt;
[[Image:python-remote-03-run.png|frame|center|alt=Screenshot of Python project being run as a remote application|Figure 8.39: Python Project Run as Remote Application]]
&lt;/div&gt;

Select the Python file you want to run. Do not select &lt;code&gt;setup.py&lt;/code&gt; because it is used only for Debian package creation. Select SSH as the connection type (using SBRSH requires additional configuration). Select the correct device connection.

You can now see your application running on the Maemo device.

You can use VNC Viewer to control the Maemo device and your application running on it. Select '''Window &amp;gt; Show View &amp;gt; Other &amp;gt; VNC Viewer'''.

{{ambox
|text=To be able to use VNC Viewer, the &lt;code&gt;x11vnc&lt;/code&gt; service must be installed on the Maemo device either separately (&lt;code&gt;apt-get install x11vnc&lt;/code&gt;) or as part of Maemo PC Connectivity.
}}

== Debugging Python Applications ==

To be able to debug a project, you must set at least one breakpoint into one of the source files. To add a breakpoint somewhere, open a source file, right-click on the left source side panel and select '''Add Breakpoint''', figure [[#figure-esbox_usage_python_debug_01_breakpoint|8.40]].

&lt;div id=&quot;figure-esbox_usage_python_debug_01_breakpoint&quot;&gt;
[[Image:python-debug-01-breakpoint.png|frame|center|alt=Screenshot of adding a breakpoint to a Python project|Figure 8.40: Add Breakpoint to Python Project]]
&lt;/div&gt;

To launch your project in debug mode, right-click the project and select '''Debug As &amp;gt; Maemo Local or Remote Application'''. When prompted, accept changing to the debug perspective, figure [[#figure-esbox_usage_python_debug_02_debug|8.41]].

&lt;div id=&quot;figure-esbox_usage_python_debug_02_debug&quot;&gt;
[[Image:python-debug-02-debug.png|frame|center|alt=Screenshot of debugging a Python project|Figure 8.41: Debug Python Project as]]
&lt;/div&gt;

In the debug perspective, you can stop and continue the execution, step lines, inspect variables, and so on. See Figures [[#figure-esbox_usage_python_debug_03_perspective|8.42]] and [[#figure-esbox_usage_python_debug_04_variables|8.43]].

{{ambox
|text=You can switch back and forth between perspectives by selecting from the top right corner.
}}

&lt;div id=&quot;figure-esbox_usage_python_debug_03_perspective&quot;&gt;
[[Image:python-debug-03-perspective.png|frame|center|alt=Screenshot of Python debug view|Figure 8.42: Python Debug View]]
&lt;/div&gt;

&lt;div id=&quot;figure-esbox_usage_python_debug_04_variables&quot;&gt;
[[Image:python-debug-04-variables.png|frame|center|alt=Screenshot of inspecting Python variables|Figure 8.43: Inspect Python Variables]]
&lt;/div&gt;

== Debian Packaging ESbox Project ==

You can create Debian installation packages for your C/C++, Qt4 and Python projects using ESbox wizards. ESbox also provides some tools to help in creating the Debian package structure, and building and installing the package.

=== Debian Package Structure ===

Debian structure is &lt;code&gt;debian&lt;/code&gt; folder under project directory. If you do not have Debian structure in your project you can create it by right clicking project and choosing '''Debian Package &amp;gt; Create Debian Structure'''.

Python projects need setup.py script to create a Debian package and it should be in the project root folder. You can create setup.py from the last page of the '''Structure''' wizard.

ESbox does not automate the whole Debian structure creation process, so you might need to manually modify the files in &lt;code&gt;debian&lt;/code&gt; folder. A Debian installation package is built using &lt;code&gt;Makefile&lt;/code&gt; located at &lt;code&gt;debian/rules&lt;/code&gt; directory. Other files are usually install scripts and metadata.

You can find complete information on the Debian installation package structure from [http://www.debian.org/doc/maint-guide/ Debian New Maintainers' Guide]

=== Building Debian Package ===

ESbox can create a Debian installation package from your project by right clicking project and choosing '''Debian Package &amp;gt; Build Debian Package'''. If the project does not have Debian structure defined, the wizard helps you to create one. You must select the destination where the new Debian package is created.

=== Installing Debian Package ===

After you have built a Debian installation package, you can install it inside ESbox by right-clicking project and choosing '''Debian Package &amp;gt; Install Debian Package'''.

== Importing Projects from Repository ==

=== Background ===

This feature assumes you know a little bit about the workings of Debian packages. If not, the full details are in [http://www.debian.org/doc/FAQ/ch-pkg_basics.en.html The Debian GNU/Linux FAQ; Chapter 7 - Basics of the Debian package management system].

=== Repositories and package types ===

In the Debian package manager &lt;code&gt;apt&lt;/code&gt; (used in Scratchbox and Maemo devices), the &lt;code&gt;sources.list&lt;/code&gt; repository configuration files contain two kinds of entries: &lt;code&gt;deb&lt;/code&gt; and &lt;code&gt;deb-src&lt;/code&gt; repositories. Both point to external or local repositories of packages (called system packages here). &lt;code&gt;deb&lt;/code&gt; repositories point to binary packages while &lt;code&gt;deb-src&lt;/code&gt; repositories point to the (usually in sync) source packages for those binary packages.

One source package may generate several binary packages; for instance, one for programs and primary data, one for auxiliary data, one for libraries, and one for development.

In &lt;code&gt;apt&lt;/code&gt;, when fetching the sources for a binary package, you start with an interesting binary package and find its corresponding source package (for example, &lt;code&gt;apt-get source &lt;package&gt;&lt;/code&gt;).

=== Source package structure ===

The sources for a package come usually in three files: a ''control file'' (&lt;code&gt;*.dsc&lt;/code&gt;), an ''archive'' (&lt;code&gt;*.tar.gz&lt;/code&gt; or &lt;code&gt;*.tar.bz2&lt;/code&gt;), and a ''patch'' (&lt;code&gt;*.diff.gz&lt;/code&gt;). &lt;code&gt;apt-get source&lt;/code&gt; command invokes the &lt;code&gt;dpkg-source&lt;/code&gt; command to expand the archive and apply the patch. The control file is used when rebuilding the binary package.

Once extracted, the contents of the original patched sources vary wildly. The contents may contain a bare-bones &lt;code&gt;Makefile&lt;/code&gt; project, an autotools-based project, a nest of programs and libraries and test code, or even another archive.

There is one guarantee, though: the package expands to contain a &lt;code&gt;debian&lt;/code&gt; directory and its various control files (see the &quot;Source packages&quot; chapter of the [http://www.debian.org/doc/debian-policy/ch-source.html Debian Policy Manual] for more details).

The &lt;code&gt;debian/rules&lt;/code&gt; file is an executable &lt;code&gt;Makefile&lt;/code&gt; which is the primary means of interaction with the source from the perspective of a Debian package. In other words, even if the extracted sources contain autoconf files or &lt;code&gt;Makefiles&lt;/code&gt;, you must use &lt;code&gt;debian/rules&lt;/code&gt; to configure, build, clean, install, and re-package the package.

For example, &lt;code&gt;debian/rules configure&lt;/code&gt;, &lt;code&gt;debian/rules build&lt;/code&gt;, &lt;code&gt;debian/rules install&lt;/code&gt; are typical ways to use a source package.

It must be mentioned that even &lt;code&gt;debian/rules&lt;/code&gt; can have varying degrees of fluctuation in the targets it provides. Most packages not developed in the Debian project itself come from a large community of people who think differently, and the targets vary accordingly. While the utility &lt;code&gt;dh_make&lt;/code&gt; tries to promote a standard set of guidelines, some projects may, for instance, lack a &lt;code&gt;configure&lt;/code&gt; target (or have several), lack a &lt;code&gt;build&lt;/code&gt; target (or have several), and so on.

ESbox attempts to corral this kind of diversity with its import wizard.

=== Using the Wizard ===

Find the wizard under '''File &amp;gt; Import &amp;gt; ESbox &amp;gt; Project from Debian Repository''', figure [[#figure-esbox_usage_import_package_wizard|8.44]].

&lt;div id=&quot;figure-esbox_usage_import_package_wizard&quot;&gt;
[[Image:ImportPackageWizard.png|frame|center|alt=Screenshot of project import|Figure 8.44: Import]]
&lt;/div&gt;

Select the package to import, figure [[#figure-esbox_usage_import_package_select|8.45]].

&lt;div id=&quot;figure-esbox_usage_import_package_select&quot;&gt;
[[Image:ImportPackageSelect.png|frame|center|alt=Screenshot of selecting a package during ESBox prject import|Figure 8.45: Import ESbox Project from Repository - Select Package]]
&lt;/div&gt;

The target providing packages is one of the Scratchbox targets on the host PC.

{{ambox
|text=The target must have the necessary &lt;code&gt;deb-src&lt;/code&gt; entries in &lt;code&gt;sources.list&lt;/code&gt;. Standard Maemo SDK configurations have such entries by default.
|}

The package selector shows a tree of packages organized by category. You can search by typing in the filter (for words in the name or description) or typing in the tree (for the name alone).

The '''Fetch build dependencies''' option ensures that, in addition to fetching the source for the selected package, any packages needed to build the source are installed as well.

The '''Always re-fetch source components''' option asks the wizard to always go to the network and find the source components (the .dsc file, archives, and patches) for the package. This may be necessary if you have modified the package locally.

The '''Delete source components''' option deletes the &lt;code&gt;.dsc&lt;/code&gt; file, source archives, and patches after extraction.

Next, select the build targets for the package, figure [[#figure-esbox_usage_import_package_project|8.46]].

&lt;div id=&quot;figure-esbox_usage_import_package_project&quot;&gt;
[[Image:ImportPackageProject.png|frame|center|alt=Screenshot of project configuration during import of ESBox project|Figure 8.46: Import ESbox Project from Repository - Project Configuration]]
&lt;/div&gt;

The next page prepares for the source fetch, figure [[#figure-esbox_usage_import_package_fetch0|8.47]].

&lt;div id=&quot;figure-esbox_usage_import_package_fetch0&quot;&gt;
[[Image:ImportPackageFetch0.png|frame|center|alt=Screenshot of fetching and imprting during import of a ESBox project|Figure 8.47: Import ESbox Project from Repository - Fetching and Importing, proxy]]
&lt;/div&gt;

Visit the link to ensure your proxy is configured, or else the download does not work.

Press '''Next''' to start the process, figure [[#figure-esbox_usage_import_package_fetch1|8.48]].

&lt;div id=&quot;figure-esbox_usage_import_package_fetch1&quot;&gt;
[[Image:ImportPackageFetch1.png|frame|center|alt=Screenshot of fetching and imprting during import of an ESBox project|Figure 8.48: Import ESbox Project from Repository - Fetching and Importing, fetching]]
&lt;/div&gt;

If the fetch fails then it is usually indicated by a long pause after the '''Building dependency tree''' message - press '''Cancel''' to abort the process. You can select '''View Log''' from the dialog, press '''Back''', then press '''Next''' again to retry.

The next page lets you choose the project type and builder for the package.

This is a normal case, figure [[#figure-esbox_usage_import_package_convert1|8.49]].

&lt;div id=&quot;figure-esbox_usage_import_package_convert1&quot;&gt;
[[Image:ImportPackageConvert1.png|frame|center|alt=Screenshot of convert a project during import of an ESBox project|Figure 8.49: Import ESbox Project from Repository - Convert Project]]
&lt;/div&gt;

Here, the project (sysstat from earlier pages) expands into a project with a &lt;code&gt;Makefile&lt;/code&gt;. Also (off-screen) there are C sources and headers. Thus, the wizard is able to guess the project type. This page, therefore, is merely informative and you can press '''Next'''.

An imported package may, however, be provided as a compressed archive with patches. In this case, you can preconfigure the project to extract the sources and decide whether the project is really the one you are looking for.

The following screenshot shows the inimitable bash shell, which is packaged as an archive, figure [[#figure-esbox_usage_import_package_convert2|8.50]].

&lt;div id=&quot;figure-esbox_usage_import_package_convert2&quot;&gt;
[[Image:ImportPackageConvert2.png|frame|center|alt=Screenshot of project conversion during import of an ESBox project|Figure 8.50: Import ESbox Project from Repository - Convert Project, compressed archive]]
&lt;/div&gt;

To handle this case, the wizard selects a build rule, which appears to be a configuration rule. This would be expected to extract the archive and apply the patches.

You can manually select the rule for configuration, if desired. For example, bash can be built in several configurations for different footprints. Here are the rules found in bash's &lt;code&gt;debian/rules&lt;/code&gt;, figure [[#figure-esbox_usage_import_package_convert3|8.51]].

&lt;div id=&quot;figure-esbox_usage_import_package_convert3&quot;&gt;
[[Image:ImportPackageConvert3.png|frame|center|alt=Screenshot of project conversion during import of an ESBox project|Figure 8.51: Import ESbox Project from Repository - Convert Project, rule selection]]
&lt;/div&gt;

Select a rule and click '''Setup project...''' to run the build for the given rule. The build results go to the Console behind the wizard.

For &lt;code&gt;bash&lt;/code&gt;, and probably other packages, this configure step actually proceeds to build the entire program and run its tests, you may '''Cancel''' after the archive has been extracted and the patches have been applied, then proceed with the wizard, figure [[#figure-esbox_usage_import_package_convert3b|8.52]].

&lt;div id=&quot;figure-esbox_usage_import_package_convert3b&quot;&gt;
[[Image:ImportPackageConvert3b.png|frame|center|alt=Screenshot of building during import of an ESBox project|Figure 8.52: Import ESbox Project from Repository - Convert Project, building]]
&lt;/div&gt;

Once the configuration step has been run, the conversion page updates its guess about the project, figure [[#figure-esbox_usage_import_package_convert4|8.53]].

&lt;div id=&quot;figure-esbox_usage_import_package_convert4&quot;&gt;
[[Image:ImportPackageConvert4.png|frame|center|alt=Screenshot of project conversion during import of an ESBox project|Figure 8.53: Import ESbox Project from Repository - Convert Project, updated]]
&lt;/div&gt;

Once the project type and builder type are known, you can '''Finish''' the wizard.

Projects imported from Debian packages can be edited, navigated, built, and launched like normal ESbox projects. You can, of course, also recreate Debian packages from them.

== Related Topics ==

* [https://garage.maemo.org/svn/esbox/trunk/org.maemo.esbox.help/html/tasks/ConfiguringCppBuild.html Configuring C/C++ Builds]
* [https://garage.maemo.org/svn/esbox/trunk/org.maemo.esbox.help/html/tasks/ConvertingESboxProjects.html Converting ESbox Projects]

[[Category:Documentation]]
[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Eclipse Tutorial/Using PluThon</title>
    <id>3859</id>
    <revision>
      <id>40081</id>
      <timestamp>2010-11-12T13:08:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly, reformat images, use &lt;code&gt;, links</comment>
      <text xml:space="preserve">PluThon supports only Python projects. This chapter briefly shows hot to create Python projects and applications and run, test and debug Python applications with Maemo device.

PluThon requires Python installed on host PC and Maemo Device. See PluThon installation chapters for detailed information how to install PlutThon itself and needed Python development environments. PC Connectivity is needed to connect Maemo Device to host PC and PluThon. See PC Connectivity documentation for details how to install and configure Maemo PC Connectivity to the Maemo Device and Host PC Connectivity to the host PC you are running PluThon Eclipse environment.

Ensure that you can connect to the Maemo device from the host PC (that PC Connectivity has been properly installed and configured) before creating your first project with PluThon.

== Creating PluThon Python projects ==

Create new PluThon project from '''File menu &amp;gt; New &amp;gt; PluThon Project''', figure [[#figure-pluthon_usage_project_01_new|7.1]].

&lt;div id=&quot;figure-pluthon_usage_project_01_new&quot;&gt;
[[Image:project-01-new.png|frame|center|alt=Screenshot of new project menu|Figure 7.1: New Project Menu]]
&lt;/div&gt;

=== PluThon Project Templates ===

Templates define the basic structure of the project. Most of the templates are examples, but you can use these examples also as a base structure for your project.

Select any template under '''Examples'''. Some of the templates are only for [[Open development/Maemo roadmap/Diablo|Diablo]] devices ([[Nokia N800|N800]] or [[Nokia N810|N810]]) and others for [[Open development/Maemo roadmap/Fremantle|Fremantle]] ([[Nokia N900|N900]]), figure [[#figure-pluthon_usage_project_03_template|7.2]].

&lt;div id=&quot;figure-pluthon_usage_project_03_template&quot;&gt;
[[Image:project-03-template.png|frame|center|alt=Screenshot of PluThon project template|Figure 7.2: PluThon Project Template]]
&lt;/div&gt;

=== PluThon Project Target ===

Select your connection to the device from the list. Default IP addresses are the same as PC Connectivity uses as default. The connection must be enabled from device PC Connectivity. See the PC Connectivity documentation for more information.

If you only use [[SSH]] connection to your device, or you have other IP values in your PC Connectivity properties, you can configure the connection here by right-clicking connection and selecting '''configure'''. Then you need to set '''Host name''' and '''Default User ID''', figures [[#figure-pluthon_usage_project_04_target|7.3]] and [[#figure-pluthon_usage_configure_connection|7.4]].

&lt;div id=&quot;figure-pluthon_usage_project_04_target&quot;&gt;
[[Image:project-04-target.png|frame|center|alt=Screenshot of PluThon project target|Figure 7.3: PluThon Project Target]]
&lt;/div&gt;

&lt;div id=&quot;figure-pluthon_usage_configure_connection&quot;&gt;
[[Image:configure-connection.png|frame|center|alt=Screenshot of PluThon project target|Figure 7.4: PluThon Project Target]]
&lt;/div&gt;

You can configure connections afterwards from '''Window &amp;gt; Preferences &amp;gt; Maemo &amp;gt; Installed Targets''' or use Remote Systems view '''Window &amp;gt; Show View &amp;gt; Other &amp;gt; Remote Systems &amp;gt; Remote Systems'''.

=== PluThon Project Metadata ===

'''Basic Settings''' page defines some basic variables used by the selected template. You can insert requested information into fields or leave default values, figure [[#figure-pluthon_usage_project_05_metadata|7.5]].

&lt;div id=&quot;figure-pluthon_usage_project_05_metadata&quot;&gt;
[[Image:project-05-metadata.png|frame|center|alt=Screenshot of PluThon project configuration|Figure 7.5: PluThon Project Configuration]]
&lt;/div&gt;

=== PluThon Project Interpreter Configuration ===

Python configuration is done on the last page. If existing Python configuration is not found, a wizard suggests creating a new configuration.

Leave all values as default and press the '''Finish''' button to create project, figure [[#figure-pluthon_usage_project_06_configuration|7.6]].

&lt;div id=&quot;figure-pluthon_usage_project_06_configuration&quot;&gt;
[[Image:project-06-configuration.png|frame|center|alt=Screenshot of PluThon project configuration|Figure 7.6: PluThon Project Configuration]]
&lt;/div&gt;

If there were no previous configurations for your project, ESbox will ask you to create new configuration. Select '''Yes''' to create one, figure [[#figure-pluthon_usage_project_07_interpreter_dialog|7.7]].

&lt;div id=&quot;figure-pluthon_usage_project_07_interpreter_dialo&quot;&gt;
[[Image:project-07-interpreter-dialog.png|frame|center|alt=Screenshot of Python interpreter dialog|Figure 7.7: Python Interpreter Dialog]]
&lt;/div&gt;

For the Python interpreter configuration you can select all Python paths and confirm the addition with '''OK''' button, figure [[#figure-pluthon_usage_project_08_interpreter_paths|7.8]].

&lt;div id=&quot;figure-pluthon_usage_project_08_interpreter_paths&quot;&gt;
[[Image:project-08-interpreter-paths.png|frame|center|alt=Screenshot of Python interpreter path configuration|Figure 7.8: Python Interpreter Path Configuration]]
&lt;/div&gt;

=== Validating PluThon Project Packages on Maemo Device ===

PluThon suggests package validation when a new project is created. Answer '''Yes''' to package validations, figure [[#figure-pluthon_usage_project_09_validate_dialog|7.9]].

&lt;div id=&quot;figure-pluthon_usage_project_09_validate_dialog&quot;&gt;
[[Image:project-09-validate-dialog.png|frame|center|alt=Screenshot of package validation dialog|Figure 7.9: Validate Packages Dialog]]
&lt;/div&gt;

PluThon installs the required dependencies into the Maemo device after you press '''Finish''' button on Package Validation Wizard, figure [[#figure-pluthon_usage_project_10_validate_wizard|7.10]].

&lt;div id=&quot;figure-pluthon_usage_project_10_validate_wizard&quot;&gt;
[[Image:project-10-validate-wizard.png|frame|center|alt=Screenshot of package validation wizard|'''Figure 7.10:''' Validate Packages Wizard]]
&lt;/div&gt;

Accept any packages PluThon suggests to install and close validation after the packages have been installed.

Package validation can be invoked from menu afterwards. Select '''Project &amp;gt; Project Menu &amp;gt; Validate installed packages'''.

During a validation project, dependencies are scanned from projects using Python package imports from source files.

== Running Python Application on Maemo Device ==

In order to run applications on Maemo devices, the Maemo PC Connectivity package must be installed on the device and the Host PC Connectivity package for the host PC. See the PluThon installation chapters for more information.

You can run Python applications with PluThon by right-clicking a project and choosing '''Run As &amp;gt; PluThon Application''', figure [[#figure-pluthon_usage_run_01_run_as|7.11]].

&lt;div id=&quot;figure-pluthon_usage_run_01_run_as&quot;&gt;
[[Image:run-01-run-as.png|frame|center|alt=Screenshot of running PluThon application|Figure 7.11: Run as PluThon Application]]
&lt;/div&gt;

Next, select the Python file to be run (do not select setup.py because it is used only for Debian package creation), figure [[#figure-pluthon_usage_run_02_script|7.12]].

&lt;div id=&quot;figure-pluthon_usage_run_02_script&quot;&gt;
[[Image:run-02-script.png|frame|center|alt=Screenshot of executable selection|Figure 7.12: Select Executable]]
&lt;/div&gt;

Then select the download method as Copy Programs (SSH) (as SBRSH requires configuration), figure [[#figure-pluthon_usage_run_03_download|7.13]].

&lt;div id=&quot;figure-pluthon_usage_run_03_download&quot;&gt;
[[Image:run-03-download.png|frame|center|alt=Screenshot of download manual selection|Figure 7.13: Select Download Method]]
&lt;/div&gt;

You can now see the program running on the Maemo device.

You can use VNC Viewer to control the Maemo device and your application running on the device. Choose '''Window &amp;gt; Show View &amp;gt; Other &amp;gt; VNC Viewer'''.

{{ambox|text=The &lt;code&gt;x11vnc&lt;/code&gt; service must be installed on the Maemo device either separately (&lt;code&gt;apt-get install x11vnc&lt;/code&gt;) or as part of Maemo PC Connectivity.}}

== Debugging PluThon Application on Maemo Device ==

In order to debug the project, set at least one breakpoint into one of the source files where you want to start debugging. Open the source file and place the breakpoint at some position by right-clicking the left source side panel and choosing '''Add Breakpoint''', figure [[#figure-pluthon_usage_debug_02_add_breakpoint|7.14]].

&lt;div id=&quot;figure-pluthon_usage_debug_02_add_breakpoint&quot;&gt;
[[Image:debug-02-add-breakpoint.png|frame|center|alt=Screenshot of addng a breakpoint|Figure 7.14: Add Breakpoint]]
&lt;/div&gt;

Launch your project in debug mode by right-clicking project and choosing '''Debug As &amp;gt; PluThon Application''' and accept changing to debug perspective, figure [[#figure-pluthon_usage_debug_01_menu|7.15]].

&lt;div id=&quot;figure-pluthon_usage_debug_01_menu&quot;&gt;
[[Image:debug-01-menu.png|frame|center|alt=Screenshot of debugging as a PluThon application|Figure 7.15: Debug as PluThon Application]]
&lt;/div&gt;

From the debug perspective, you can stop and continue execution, step lines, inspect variables, and so on. See Figures [[#figure-pluthon_usage_python_debug_03_perspective|7.16]] and [[#figure-pluthon_usage_debug_04_variables|7.17]].

{{ambox
|text=You can switch back and forth between perspectives from top-right corner.
}}

&lt;div id=&quot;&quot;figure-pluthon_usage_python_debug_03_perspective&gt;
[[Image:debug-03-debug-view.png|frame|center|alt=Screenshot of debug view|Figure 7.16: Debug View]]
&lt;/div&gt;

&lt;div id=&quot;figure-pluthon_usage_debug_04_variables&quot;&gt;
[[Image:debug-04-variables-view.png|frame|center|alt=Screenshot of variables view|Figure 7.17: Variables View]]
&lt;/div&gt;

== Debian Packaging PluThon Project ==

=== Generating Setup Script ===

The setup script (&lt;code&gt;setup.py&lt;/code&gt;) is used to create the Debian installation package for Python projects.

In setup script generator you need to define metadata, packages, executables and datafiles. This information is then used to create &lt;code&gt;setup.py&lt;/code&gt; script for the project, figure [[#figure-pluthon_usage_debian_01_setup_wizard|7.18]].

&lt;div id=&quot;figure-pluthon_usage_debian_01_setup_wizard&quot;&gt;
[[Image:debian-01-setup-wizard.png|frame|center|alt=Screenshot of Debian package setup wizard|Figure 7.18: Debian Package Setup Wizard]]
&lt;/div&gt;

PluThon provides an automated wizard for creating Debian installation packages with this script. You can create the script from '''File &amp;gt; New &amp;gt; Other &amp;gt; PyDev &amp;gt; Setup Script''', figure [[#figure-pluthon_usage_debian_02_setup_wizard|7.19]].

&lt;div id=&quot;figure-pluthon_usage_debian_02_setup_wizard&quot;&gt;
[[Image:debian-02-setup-project.png|frame|center|alt=Screenshot of Debian package setup project|Figure 7.19: Debian Package Setup Project]]
&lt;/div&gt;

For the &lt;code&gt;setup.py&lt;/code&gt; script you need to define certain metadata for the installation pacakge, figure [[#figure-pluthon_usage_debian_03_setup_parameters|7.20]].

&lt;div id=&quot;figure-pluthon_usage_debian_03_setup_parameters&quot;&gt;
[[Image:debian-03-setup-parameters.png|frame|center|alt=Screenshot of Debian package setup parameters|Figure 7.20: Debian Package Setup Parameters]]
&lt;/div&gt;

Information about packages included in the installation package, figure [[#figure-pluthon_usage_debian_04_setup_package|7.21]].

&lt;div id=&quot;figure-pluthon_usage_debian_04_setup_package&quot;&gt;
[[Image:debian-04-setup-package.png|frame|center|alt=Screenshot of Debian packages setup|Figure 7.21: Debian Package Setup Packages]]
&lt;/div&gt;

Information about extra resources such as modules, scripts and data files included in the installation package, figure [[#figure-pluthon_usage_debian_05_setup_data|7.22]].

&lt;div id=&quot;figure-pluthon_usage_debian_05_setup_data&quot;&gt;
[[Image:debian-05-setup-data.png|frame|center|alt=Screenshot of Debian package setup data|Figure 7.22: Debian Package Setup Data]]
&lt;/div&gt;

You can find more information about the Python setup script from [http://docs.python.org/distutils/setupscript.html Python distutils documentation].

=== Create Debian Installation Package ===

You can export a project to the Debian installation package from '''File &amp;gt; Export &amp;gt; PluThon &amp;gt; Export to Debian Package'''. This command requires that &lt;code&gt;setup.py&lt;/code&gt; script has been defined for the project.

&lt;div id=&quot;figure-pluthon_usage_debian_08_export_setup&quot;&gt;
[[Image:debian-08-export-setup.png|frame|center|alt=Screenshot of exporting to a Debian package|Figure 7.23: Export to Debian Package]]
&lt;/div&gt;

In Debian package export you only need to select the project and setup script. The package is created on the Maemo device using bdist-maemo distutils packages, figure [[#figure-pluthon_usage_debian_08_export_setup|7.23]].

=== Install Debian Package to Maemo Device ===

To install a created Debian package to the Maemo device, right-click project and select '''Install Debian Package on Device''', figure [[#fig:pluthon_usage_debian_06_install_menu|7.24]].

&lt;div id=&quot;&quot;&gt;
[[Image:debian-06-install-menu.png|frame|center|alt=Screenshot of Debian package installation menu|Figure 7.24: Install Debian Package Menu]]
&lt;/div&gt;

From the '''Install Debian Package''' wizard select '''Browse''' and set '''Package location''' to created package, select the correct connection and install using the '''Finish''' button, figure [[#figure-pluthon_usage_debian_07_install|7.25]].

&lt;div id=&quot;figure-pluthon_usage_debian_07_install&quot;&gt;
[[Image:debian-07-install.png|frame|center|alt=Screenshot of Debian package installation wizard|Figure 7.25: Install Debian Package Wizard]]
&lt;/div&gt;

[[Category:Documentation]]
[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Flasher-3.5 Tutorial</title>
    <id>3860</id>
    <revision>
      <id>36361</id>
      <timestamp>2010-06-29T08:21:24Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_Flasher-3.5]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_Flasher-3.5]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Flasher-3.5 Tutorial/Bibliography</title>
    <id>3861</id>
    <revision>
      <id>36358</id>
      <timestamp>2010-06-29T08:09:04Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_Flasher-3.5]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_Flasher-3.5]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Flasher-3.5 Tutorial/Glossary</title>
    <id>3862</id>
    <revision>
      <id>36359</id>
      <timestamp>2010-06-29T08:11:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_Flasher-3.5]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_Flasher-3.5]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Flasher-3.5 Tutorial/Installation</title>
    <id>3863</id>
    <revision>
      <id>36356</id>
      <timestamp>2010-06-29T06:52:22Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_Flasher-3.5#Installation]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5#Installation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Flasher-3.5 Tutorial/Introduction</title>
    <id>3864</id>
    <revision>
      <id>36351</id>
      <timestamp>2010-06-29T06:16:05Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Introduction */ redirect to [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_Flasher-3.5]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Flasher-3.5 Tutorial/Maemo Flasher-3.5 tool</title>
    <id>3865</id>
    <revision>
      <id>36357</id>
      <timestamp>2010-06-29T08:05:41Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_Flasher-3.5#Release_details]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5#Release details]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo Flasher-3.5 Tutorial/Usage</title>
    <id>3867</id>
    <revision>
      <id>36360</id>
      <timestamp>2010-06-29T08:20:55Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_Flasher-3.5#Usage]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_Flasher-3.5#Usage]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo For Symbian Developers Guide</title>
    <id>3868</id>
    <revision>
      <id>36898</id>
      <timestamp>2010-07-16T07:24:24Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut formatting</comment>
      <text xml:space="preserve">'''maemo.org, 18 February 2010'''

* [[{{PAGENAME}}/Preface|Preface]]
* [[{{PAGENAME}}/Glossary|Glossary]]
* [[{{PAGENAME}}/Introduction|Introduction]]
* [[{{PAGENAME}}/Comparing Maemo and Symbian OS|Comparing Maemo and Symbian OS]]
* [[{{PAGENAME}}/Maemo and Symbian OS Concepts|Maemo and Symbian OS Concepts]]
* [[{{PAGENAME}}/Bibliography|Bibliography]]

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo For Symbian Developers Guide/Bibliography</title>
    <id>3869</id>
    <revision>
      <id>39962</id>
      <timestamp>2010-11-04T09:28:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly, add link</comment>
      <text xml:space="preserve"># [http://library.gnome.org/devel/gtk/unstable/index.html GTK+ Reference Manual]
# [http://live.gnome.org/Hildon/ Hildon Project]
# [[Documentation/Maemo 5 Developer Guide|Maemo Fremantle Developer Guide]]. Also [http://library.maemodocs.nokia.com available off-site]
# Federico Mena Quintero, Miguel de Icaza, and Morten Welinder. [http://developer.gnome.org/doc/guides/programming-guidelines/book1.html GNOME Programming Guidelines]

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo For Symbian Developers Guide/Comparing Maemo and Symbian OS</title>
    <id>3870</id>
    <revision>
      <id>39966</id>
      <timestamp>2010-11-04T10:24:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">The picture below (figure [[#figure-maemo_for_symbian_dev_comparing_symbian_os_and_maemo_architectures|2.1]]) presents a direct comparison between the software components of both operating systems, although the the structure of the Maemo platform and the underlying GNU/Linux operating system differ significantly from Symbian OS. The picture shows the layered architecture of Symbian OS and tries to distribute the Maemo software components in layers according to their correspondent functionalities on the Symbian OS.

&lt;div id=&quot;figure-maemo_for_symbian_dev_comparing_symbian_os_and_maemo_architectures&quot;&gt;
[[Image:MaemoSymbianArchitecture.png|frame|center|alt=Diagram of Maemo and Symbian architectural comparison|Figure 2.1: Comparing Symbian OS and Maemo architectures]]
&lt;/div&gt;

In some cases Symbian OS subsystems and APIs can be directly mapped to Maemo platform components, but usually the relations are not 1:1. Therefore, this chapter provides just a generalized comparison of the platforms.

The table below (table 2.1) compares the main software components of the Symbian platform with those of the Maemo platform. This table can be used as a quick reference to find the proper software component that should be used in the Maemo platform given the desired component of the Symbian platform. Also, the table shows some components that are specific to Maemo platform, explaining their use.

{| class=&quot;wikitable&quot;
|+ '''Table 2.1:''' Comparison between Maemo and Symbian platforms
|-
! Symbian Component
! Maemo Component
! Description
|-
! colspan=&quot;3&quot; | Base Services
|-
! DBMS
| SQLite
| The Maemo platform provides an SQL database, SQLite 3, which can be used to store user application data. The SQLite database is accessed through a library interface whose documentation can be found [http://www.sqlite.org/capi3.html on the SQLite website].
|-
! File server
| GnomeVFS
| The system uses the GnomeVFS, which is an extendable file system abstraction library that applies transparent access to different file systems types. More information can be found [http://library.gnome.org/devel/gnome-vfs-2.0/unstable/ in the GnomeVFS API reference].
|-
! ECOM framework
| Core libs
| There is no direct equivalent component for the ECOM framework on the Maemo platform. The developer may use the dynamic load of modules (&lt;code&gt;GModule&lt;/code&gt;) provided by GLib library. It is implemented in C and there is no support for automatic module load. Code must be written by the developer in order to do this. GModule API reference can be found [http://library.gnome.org/devel/glib/stable/glib-Dynamic-Loading-of-Modules.html in the GLib API documentation].
|-
! Central repository
| Libosso, GConf
| There is no Central Repository for system information in Maemo. To recover system information such as device state and mode, the developer may use &lt;code&gt;libosso&lt;/code&gt;. To store application specific settings, the developer can use GConf component. See [http://projects.gnome.org/gconf/ the GConf website for more].
|-
! User library
| GNU C / LibStd C++
| The user library defines the core idioms for Symbian OS programming. In Maemo development, this is based on standard C/C++ so the matching for the core idioms could be [http://gcc.gnu.org/onlinedocs/libstdc++/ GNU C / LibStd C++].
|-
! Cryptographic library
| OpenSSL
| This library includes some non-RSA algorithms, hash functions, and so on, that are easily found in [http://www.openssl.org/ OpenSSL] library.
|-
! Store
|
| Provides an abstraction for internalizing and externalizing objects to different storage media. There is no equivalent component in Maemo. GLib binding for D-Bus has some primitive functions to do object marshal. However there are plenty of open source projects that provide serialization tools for C++. The developer may use the preferred one.
|-
|
| Video4Linux
| A Linux kernel integrated video capture API. It supports several types of cameras.
|-
|
| dpkg
| &lt;code&gt;dpkg&lt;/code&gt; is the software at the base of the Debian package management system that is used in Maemo. dpkg is used to install, remove and provide information about .deb packages files that are the software installation unit for Maemo in comparison to the .sisx files of Symbian OS.
|-
! colspan=&quot;3&quot; | OS Services
|-
! Certificate management
| OpenSSL
| Certificate management is done by OpenSSL in the Maemo platform. This system library offers similar mechanisms to store and manage certificates, keys, and so on.
|-
! MMF, Camera
| [[Documentation/Maemo 5 Developer Guide/Using Multimedia Components/Media Application Framework (MAFW)|MAFW]], gStreamer
| The MAFW was added to the Fremantle Maemo version and provides a highly modular infrastructure for consuming and extending Maemo's multimedia functionality. MAFW is an abstraction layer that is largely decoupled from its underlying components. It will be possible to snap in a number of media backends, such as GStreamer and MPlayer. The gStreamer, that was used to handle multimedia in previous versions, has a similar design choice as MMF. It has a minimum core, and functionalities are added through plug-ins. It also makes use of pipeline through sinks and sources for each element to build the wanted operation.
|-
! ICL
| Cairo, GDK
| These libraries handle a wide number of image types.
|-
! OpenGL ES
| OpenGL ES
| Until Maemo 4.1 (Diablo) Open GL ES was not supported. In Maemo 5 (Fremantle) [[OpenGL-ES|OpenGL ES 2.0]] is supported.
|-
! Window Server
| X
| X Window System, that provides windowing on bitmap displays and event handling from inputs. Low level, usually not used directly by the developer.
|-
! Font and Bitmap Server
| Pango
| Library for laying out and rendering of text, with an emphasis on internationalization. It forms the core of text and font handling for GTK+.
|-
! Device Backup
| [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Using Backup Application|Backup]]
| Maemo has an application that can backup user data and application configuration on a memory card. At time of writing there is no support for remote device backup on Maemo.
|-
! Remote file management 
|
| There is no API for remote file management.
|-
! Remote SW
|
| There is no equivalent component for remote software installation in the Maemo platform.
|-
! Telephony server, SMS utilities, WAP stack
|
| There is no equivalent component in the Maemo platform.
|-
! TCP/IP + security
| Core libs
| Low-level operating system APIs (file and network handling, standard C libraries). SSL and TLS are supported through OpenSSL.
|-
! Bluetooth
| BlueZ
| Official Bluetooth stack for GNU/Linux. More information can be found [http://www.bluez.org/ on the BlueZ website].
|-
! OBEX
| Openobex
| The Maemo platform makes use of [http://sourceforge.net/projects/openobex Openobex] implementation.
|-
! CommDB
|
| There is no specific shared data base for communication settings in Maemo. Even CommDB use in Symbian OS is being replaced by Central Repository. You can use GConf to store data or even SQLite.
|-
|
| GUPnP
| GUPnP is an object-oriented open source framework for creating [http://www.upnp.org/ UPnP] devices and control points, written in C using [http://developer.gnome.org/doc/API/2.0/gobject/index.html GObject] and [http://live.gnome.org/LibSoup libsoup].
|-
|
| D-Bus
| The D-Bus message bus system is used for applications and libraries to deliver messages to each another.
|-
|
| System SW
| The System Software subsystem provides system-wide services to applications and users. The services include device state management (&lt;code&gt;dsm&lt;/code&gt;), mode control (&lt;code&gt;mce&lt;/code&gt;), battery management (&lt;code&gt;bme&lt;/code&gt;) and a few graphical user interface elements to manage the behaviour of the services.
|-
|
| Clipboard
| In Maemo, there are a number of clipboard enhancements to the X clipboard and GTK+, in order to enable: supporting retaining the clipboard data, when applications owning the clipboard exit; copying and pasting rich text data between GTK+ text views in different applications; providing a generally more pleasant user experience; making it easy for application developers to gray out '''Paste''' menu items when the clipboard data format is not supported by the application.
|-
|
| Farsight2
| [http://farsight.freedesktop.org/wiki/FrontPage Farsight2] is an Audio/Video Communications Framework. The main target clients for Farsight are Instant Messaging applications. It uses gStreamer for all its media streaming needs.
|-
|
| FM transmitter
| [[Documentation/Maemo 5 Developer Guide/Using Multimedia Components/FM Transmitter API Usage|Maemo API to access FM transmitter]] radio.
|-
! colspan=&quot;3&quot; | Application Services
|-
! PIM
| EDS
| The [http://www.go-evolution.org/EDS_Architecture Evolution Data Server] provides a single database for common, desktop-wide information, such as a user's address book or calendar events.
|-
! Messaging system
| Telepathy
| The Telepathy project aims to provide a unified framework for all forms of real time conversations, including instant messaging, IRC, voice calls, and video calls.
|-
! Data synchronization
| SyncML
| Maemo supports SyncML. More information can be found on [http://syncevolution.org/ the SyncEvolution website].
|-
! Internet, web and multimedia protocol support (RTP, SIP, HTTP)
| Telepathy, gStreamer, curl HTTP
| For SIP and a great number of different session protocols, Maemo uses [http://telepathy.freedesktop.org/wiki/ Telepathy]. For RTP you can use [http://gstreamer.freedesktop.org/ GStreamer] and for HTTP you can use [http://curl.haxx.se/ curl HTTP] that supports FTP, TELNET, HTTP, HTTPS, and so on.
|-
|
| PulseAudio
| [http://pulseaudio.org/ PulseAudio] is a sound server for POSIX and Win32 systems. A sound server is basically a proxy for your sound applications. It allows you to do advanced operations on your sound data as it passes between your application and your hardware. Things like transferring the audio to a different machine, changing the sample format or channel count and mixing several sounds into one are easily achieved using a sound server. Maemo 5 uses PulseAudio.
|-
|
| GSF
| The GNOME Structured File Library ([http://library.gnome.org/devel/gsf/unstable/index.html GSF]) is an I/O abstraction for reading/writing compound files.
|-
|
| Installer
| Application installer includes automatic dependency management. Uses a standard Debian package format.
|-
|
| [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Alarm Framework|Alarm Framework]]
| The Maemo alarm framework provides an easy way to manage timed events in the device. It is powerful, and not restricted only to wake-up alarms. The framework provides also many other features.
|-
|
| Launcher
| Maemo Launcher launches most applications on the Maemo platform. It is there to speed up the application start-up by sharing some of the initialization data of an application start-up. Maemo Launcher is composed of two parts: (I) the Maemo-invoker, which is executed by D-Bus daemon or scripts to start the given (application) service, and (II) Maemo-launcher, a server that has initialized most of the data used by the applications.
|-
|
| Vibra service
| A new service added in Fremantle. The access can be made through D-Bus.
|-
|
| Device orientation
| An API that enable developers to respond to changes in orientation and discover current orientation.
|-
! colspan=&quot;3&quot; | UI Framework
|-
! Uikon, Avkon, CONE
| GTK+
| A widget toolkit for the X Window System, for creating GUIs. The used GTK+ has been modified for the Maemo platform, but it is binary compatible with the original.
|-
! FEP
| Input methods
| The Maemo platform is intended to be used on embedded devices. It is a quite straightforward request that one might want to have different input methods from the ones available by default, or just simply want a different layout for the virtual keyboard. For this reason, Maemo 4.1 introduced a way to enable writing custom plug-ins for Hildon Input Method.
|-
! Animation
| Clutter
| Clutter provides a very clean high-level API for developing sophisticated animations on top of OpenGL ES.
|-
|
| Matchbox
| [http://matchbox-project.org/ Matchbox] is an Open Source base environment for the X Window System running on non-desktop embedded platforms. Matchbox consists of a number of interchangeable and optional applications that can be tailored to a specific non desktop platform to enhance usability in a ''constrained'' environment.
|-
|
| Tracker
| Provides semantic indexing and search capabilities. More information is available on [http://projects.gnome.org/tracker/ the Tracker website].
|-
|
| Hildon Control Panel
| Hildon Control Panel is a general interface for application configuration and is extended by control panel plug-ins.
|-
|
| Hildon Home Applets
| Hildon Home is the root desktop, which can be customized by Hildon home applets.
|-
|
| Hildon Status bar
| Hildon Status bar provides area for information and quick-access items used mainly to communicate device status changes.
|}

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo For Symbian Developers Guide/Glossary</title>
    <id>3871</id>
    <revision>
      <id>39621</id>
      <timestamp>2010-10-20T08:06:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut maemo releases and link to [[codenames]]</comment>
      <text xml:space="preserve">; '''ABI'''
: Application Binary Interface, providing object code level compatibility.
; '''API'''
: Application Programming Interface, providing source code level compatibility.
; '''applet'''
: A small application that integrates to ''Hildon Desktop''.
; '''ARMEL'''
: A name that e.g. Debian uses for the little endian ARM EABI (''ABI'' for the ARM architecture).
; '''devkit'''
: The part of ''Maemo SDK'' that contains software development tools. Maemo SDK contains multiple devkits, e.g. doctools devkit.
; '''Hildon'''
: Application framework used in the ''Maemo platform''. Developed by Nokia and based on GNOME/GTK+ technologies, currently in the process of becoming an upstream project in gnome.org.
; '''Hildon Desktop'''
: The main user interface component of Maemo Chinook, rewrite of ''Maemo desktop''.
; '''Internet Tablet'''
: Product category for Internet-optimized mobile devices with touchscreen. The term was coined by Nokia, but is nowadays used more widely to include other devices.
; '''Maemo'''
: Software platform for mobile devices developed by Nokia, based on GNU/Linux and GNOME/GTK+ technologies. It includes proprietary components to make it work on the Nokia Maemo compatible device.
; '''maemo.org'''
: Developer community web site maintained by Nokia, main point of reference for open source and third-party developers in general.
; '''Maemo Software Development Kit'''
: (Maemo SDK) to create and port applications to the Maemo platform using a PC.
; '''OSSO'''
: Open Source Software Operations, Nokia organization developing and integrating software for Maemo compatible device.
; '''rootstrap'''
: Part of the SDK that contains selected software components from rootfs. Rootstrap is the root file system of a target inside Scratchbox.
; '''toolchain'''
: Part of the SDK that contains ARM cross compilation tools, such as compiler and linker.

== Maemo Releases ==

{{main|Codenames}}

[[Category:Documentation]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo For Symbian Developers Guide/Introduction</title>
    <id>3872</id>
    <revision>
      <id>39963</id>
      <timestamp>2010-11-04T09:34:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>links, image</comment>
      <text xml:space="preserve">This document aims to compare Symbian and Maemo OS at architectural level, providing a didactic matching between the different components of each operating system, so that Symbian OS developers can easily learn what software component they should use in Maemo platform for each functionality.

Maemo is an open source development platform for Linux-based handheld devices. It is built from widely-used open source components with additional tweaks to integrate well in handheld devices.

&lt;div id=&quot;figure-maemo_for_symbian_dev_introduction_n900&quot;&gt;
[[Image:N900.jpg|frame|center|alt=Photo of N900 with open keyboard|Figure 1.1: Nokia N900]]
&lt;/div&gt;

An Maemo device is a handheld device which provides desktop PC-level support for Internet services (such as Web pages and e-mail). Nokia has released several Maemo devices running the Maemo platform: the [[Nokia 770]], the [[Nokia N800]], [[Nokia N810]], [[Nokia N810WME|Nokia N810 WiMAX Edition]] and [[Nokia N900|N900]], see figure [[#figure-maemo_for_symbian_dev_introduction_n900|1.1]]. The devices have a high-resolution, 800×480 pixel touch-sensitive display.

Maemo uses Hildon Application Framework, based on the open source GTK+ toolkit, as the user interface manager. Although the Hildon/GTK+ libraries are coded in C, bindings for other languages, including C++ and Python, are also available.

The native programming language for Symbian OS devices is C++. So, any S60 developer can take advantage of the Hildon/GTK+ C++ bindings and easily start developing GUI applications for Maemo devices. This document demonstrates how a Symbian C++ developer can get started with developing applications for Maemo platform.

Before you start to write your own applications for Maemo, learn more about the Maemo platform and the Hildon Application Framework. For more information, see documents ''GNOME Programming Guidelines'' &lt;ref name=r4&gt;Federico&amp;nbsp;Mena Quintero, Miguel de&amp;nbsp;Icaza, and Morten Welinder. GNOME Programming Guidelines. http://developer.gnome.org/doc/guides/programming-guidelines/book1.html&lt;/ref&gt;, ''GTK+ Reference Manual'' &lt;ref name=r1&gt;GTK+ Reference Manual. http://library.gnome.org/devel/gtk/unstable/index.html&lt;/ref&gt;, ''Hildon'' &lt;ref name=r2&gt;Hildon Project. http://live.gnome.org/Hildon/&lt;/ref&gt;, and ''Maemo Fremantle Developer Guide'' &lt;ref name=r3&gt;[[Documentation/Maemo 5 Developer Guide|Maemo Fremantle Developer Guide]]. http://library.maemodocs.nokia.com&lt;/ref&gt;.

== References ==

&lt;references /&gt;

[[Category:Documentation]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo For Symbian Developers Guide/Maemo and Symbian OS Concepts</title>
    <id>3873</id>
    <revision>
      <id>39968</id>
      <timestamp>2010-11-04T10:45:18Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">The Symbian OS is famous for its design, concepts, and coding conventions. The Maemo platform gives the developer more freedom, but it also requires the developer to take more responsibility. The Maemo platform does not enforce any specific design patterns, so the developer is responsible for preventing memory leaks, buffer overflows, and other security problems.

Programming in Maemo is closer to desktop programming than Symbian programming is. This is because it is based on Linux, which was created for desktop environments, whereas Symbian OS was specifically developed for resource constrained systems. For this reason, the Maemo developer has more freedom than the Symbian developer.

The following topics show the main programming differences for both environments.

== Programming languages and libraries ==

Symbian developers must obey a lot of coding conventions to write code correctly. In Maemo this is no longer necessary because Maemo uses standard C and C++. Most software developed for the Maemo platform is written in C. This software widely uses GLib utility library that provides the object model adopted for Maemo (&lt;code&gt;GObject&lt;/code&gt;). However, C++ applications can also be written since there are several C++ bindings available for different libraries in the Maemo platform. Despite these bindings, C library calls should be made in code written for the Maemo platform sooner or later due to the fact that most part of the platform uses standard C and GLib. Due to Open C/C++, the Symbian developer should already be aware of the use of these libraries as well as STL, boost, and other C/C++ libraries.

== Symbian OS essential concepts ==

Some differences between Symbian C++ and C++ used in Maemo are listed below. These differences are more about the conventions, concepts, and software design. Some replacements for missing Symbian/C++ specific concepts are also introduced.

=== Naming guidelines ===

Symbian OS naming conventions like class names prefix (&lt;code&gt;C&lt;/code&gt;, &lt;code&gt;M&lt;/code&gt;, &lt;code&gt;R&lt;/code&gt;, or &lt;code&gt;T&lt;/code&gt;), function leave indication (&lt;code&gt;L&lt;/code&gt; suffix) are left behind when programming for Maemo platform. In Maemo, the developer is given more freedom and there are no mandatory prefixes in class names. Although there are no strict rules to be followed, Maemo has some programming guidelines that should be considered. Some examples are given below:

Descriptive, lower-case names should be used for variables and functions. Underscores (_) can be used to indicate word boundaries. Non-static and unnecessary global names should be avoided. If it is absolutely necessary to employ a global variable, type or function, one should use a prefix specific to the library or module where the name is, for example &lt;code&gt;gtk_widget_&lt;/code&gt;.

Static memory (variables) should be preferred to dynamic memory, when the needed memory size is not large and/or is used regularly in the program. Static memory does not leak, a pointer to static memory is less likely to cause a segmentation fault, and using static memory keeps the memory usage more constant.

Local variables should always be favoured over global variables, that is the visibility of a variable should be kept at a minimum. Global variables should not be used to pass values between functions: this can be performed with arguments. Note: Global variables require extra care when programming with threads. Thus, these should be avoided.

=== Runtime type information ===

Symbian OS supports runtime type information (RTTI) only from Symbian OS v9 onwards. In Maemo, run time type information was available since the beginning. In both cases, the [http://www.cplusplus.com/doc/tutorial/typecasting/ dynamic_cast] operator is used to retrieve RTTI.

=== Exceptions ===

Symbian/C++ developers are familiar with concepts like ''leaving'' and ''trap harness'' because standard [http://www.cplusplus.com/doc/tutorial/exceptions/ C++ exceptions] did not exist when Symbian OS was originally developed. Only from Symbian OS v9 onwards C++ were exception mechanisms supported, although they still should not be mixed with Symbian/C++ code. In Maemo the standard C++ exceptions (&lt;code&gt;try&lt;/code&gt;, &lt;code&gt;catch&lt;/code&gt;, &lt;code&gt;throw&lt;/code&gt;) are available.

=== Cleanup stack ===

A Symbian/C++ specific concept that is not available in the Maemo platform. Similar functionality can be achieved by using [[:wikipedia:Auto_ptr|auto_ptr]] class which is also available for Symbian v9 onwards. &lt;code&gt;auto_ptr&lt;/code&gt; is a [[:wikipedia:Smart_pointer|smart pointer]] implementation in [[:wikipedia:Standard_Template_Library |C++ Standard Template Library]], and it is a good way to prevent memory leaks in case of exceptions ([http://maemo4mobile.garage.maemo.org/snippet_autoptr.html view example]).

For more information on using the &lt;code&gt;auto_ptr&lt;/code&gt;, see the article [http://www.gotw.ca/publications/using_auto_ptr_effectively.htm Using auto_ptr Effectively].

== Class construction ==

The Symbian OS documentation states that if a class has to allocate memory, it should be derived from &lt;code&gt;CBase&lt;/code&gt;. In Maemo, there is no such base class. This design causes some differences.

=== Class inheritance ===

In Symbian/C++ multiple inheritances are only allowed when combining multiple M-classes and one &lt;code&gt;CBase&lt;/code&gt; derived class. This is the same approach adopted by Java that allows multiple interfaces implementations and only one class derivation per class. The reason is that multiple inheritances can become too complicated. Maemo does not impose any limits to the inheritance mechanism, so the developer has more freedom as well as more responsibility.

=== Two-phased construction ===

Since the full C++ exception mechanism is used in Maemo (which includes stack unwinding), the two-phased construction of objects is not needed any more. The developer should use smart pointers to store pointers which may leak in case of exceptions. See the brief example from listing below:

&lt;source lang=&quot;cpp&quot;&gt;class MyInnerClass
{
public:
MyInnerClass(){}
};

/* ----------------------------------------------- */
class MyClass
{
public:
MyClass();

private:
auto_ptr&lt;MyInnerClass&gt; m_inner;
};

MyClass::MyClass() : m_inner (new MyInnerClass())
{
}

/* ----------------------------------------------- */
void functionFoo()
{
auto_ptr&lt;MyClass&gt; myAutoObject(new MyClass());
/* IF THROW HERE ....*/
}
&lt;/source&gt;

In the example above, exceptions may be thrown after the instantiation of &lt;code&gt;myAutoObject&lt;/code&gt; or in the construction of &lt;code&gt;MyInnerClass&lt;/code&gt;. In both cases the objects do not leak memory due to the use of the &lt;code&gt;auto_ptr&lt;/code&gt; class that holds the pointer of the objects and calls the destructor in case of leave the end of scope. A good explanation can be found [http://www.parashift.com/c++-faq-lite/exceptions.html#faq-17.4 in the exceptions section of the C++ FAQ].

== Descriptors ==

The &lt;code&gt;Descriptors&lt;/code&gt; class was specifically designed for Symbian OS and does not exist as such in the Maemo platform.

== Strings ==

When working with strings, instead of descriptors you can use the C-style &lt;code&gt;NULL&lt;/code&gt;-terminated character arrays and methods.

=== NULL-terminated character arrays using standard C ===

[[:wikipedia:String.h|The C-style NULL-terminated character arrays and methods]] can be used to store strings only. They are not as safe because they can cause buffer overflow. They can only be used with character set based on ASCII. One advantage is that it is guaranteed to work on any platform which supports C.

=== NULL-terminated character arrays using GLib ===

GLib is extensively used in the Maemo platform, so it is good practice to use the [http://library.gnome.org/devel/glib/stable/glib-String-Utility-Functions.html GLib-provided types and methods if using character arrays], although nothing prevents the developer from using other types.

See this [http://maemo4mobile.garage.maemo.org/snippet_gchar.html gchar example].

=== GString ===

[http://library.gnome.org/devel/glib/stable/glib-Strings.html GString] from GLib. Similar to a standard C string, except that it grows automatically when text is appended or inserted. Also, it stores the length of the string, so it can be used for binary data which contains bytes with &lt;code&gt;NULL&lt;/code&gt; values.

See this [http://maemo4mobile.garage.maemo.org/snippet_gstring.html GString example].

=== String class ===

[[:wikipedia:String_(C++)|String class]] from the [[:wikipedia:Standard_Template_Library|C++ Standard Template Library]]. The &lt;code&gt;string&lt;/code&gt; class resizes automatically when necessary.

See the [http://maemo4mobile.garage.maemo.org/snippet_stlstring.html STL string example].

== Binary data ==

If you are working with binary data, you can use:

* Low-level, C-language memory allocation and [[:wikipedia:String.h|handling]].
* &lt;code&gt;GArray&lt;/code&gt; from GLib - arrays of arbitrary elements which grow automatically as elements are added.
* &lt;code&gt;GString&lt;/code&gt; that works also with binary data, as it stores the data length.
* [[:wikipedia:Standard_Template_Library#Containers|C++ containers]] (for example, &lt;code&gt;vector&lt;/code&gt;s and &lt;code&gt;list&lt;/code&gt;s).

== Active objects and threads ==

Symbian OS discourages the usage of threads because context switching is considered an expensive operation which degrades battery life. Basically, this is true in the Maemo platform too, but avoiding threads at all cost is not required.

Using the main event loop of GLib it is possible to run several asynchronous operations in a single thread, without blocking. This is fairly similar to using Active Objects. Examples of sources of events are file descriptors, sockets, even timeouts, and so on.

Below you see a timeout example function with event loop (based on [http://w00d5t0ck.info/gnome_tutorial/gnome_tutorial.html#AEN53 Gnome developers' tutorial]).

&lt;source lang=&quot;c&quot;&gt;
#include &lt;glib.h&gt;

#define COUNT_UNTIL 2
#define TIMEOUT 2

static int counter;

GMainLoop *main_loop;

gboolean timeout_func(gpointer data)
{
  counter++;
  g_printf(&quot;Running for the %d. time.\n&quot;, counter);
  if (counter == COUNT_UNTIL)
  {
    g_main_loop_quit(main_loop);
    return FALSE;
  }
  return TRUE;
}

int main(int argc, char *argv[])
{
  counter = 0;
  main_loop = g_main_loop_new(NULL, FALSE);
  g_timeout_add_seconds(TIMEOUT, timeout_func, NULL);
  g_main_loop_run(main_loop);
  return 0;
}
&lt;/source&gt;

In case of dealing with threads you can use:

* [[:wikipedia:POSIX_Threads|POSIX threads]] (the traditional Unix-style operating system type)
* &lt;code&gt;GThread&lt;/code&gt; from GLib

== Static data in DLLs ==

In Symbian OS version before v9 static data in DLLs was not supported. From v9 onwards static data is supported but it consumes large amounts of memory. The Maemo platform does not have this limitation. You can use, for example, global variables in your shared libraries. Note, however, that the static data is not shared between the processes.

== Platform security ==

Platform security does not exist in the Maemo platform. When installing software with the Application Manager, it only warns if the software is NOT being downloaded from the official Maemo repositories. Maemo does not have a specific scheme to enforce platform security as Symbian has. One benefit is that installing software in Maemo is more developer-friendly than in Symbian.

== Client-server model ==

Whereas Symbian OS extensively uses a client/server approach with asynchronous method calls, the Maemo platform uses direct, synchronous API calls. Usually this means that called functions block until they finish, with some exceptions.

Using sockets is a good example of the differences between the Symbian OS and Maemo platforms, regarding the client-server model vs. direct API calls. See [http://maemo4mobile.garage.maemo.org/snippet_clientserver_sync.html networking example].

[[Category:Documentation]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo For Symbian Developers Guide/Preface</title>
    <id>3874</id>
    <revision>
      <id>39969</id>
      <timestamp>2010-11-04T10:52:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify section headings</comment>
      <text xml:space="preserve">== Legal notice ==

Copyright (c) 2008-2010 Nokia Corporation

Nokia and Maemo are trademarks or registered trademarks of Nokia Corporation. Other product and company names mentioned herein may be trademarks or trade names of their respective owners.

== Disclaimer ==

The information in this document is provided &quot;as is,&quot; with no warranties whatsoever, including any warranty of merchantability, fitness for any particular purpose, or any warranty otherwise arising out of any proposal, specification, or sample. This document is provided for informational purposes only. Nokia Corporation disclaims all liability, including liability for infringement of any proprietary rights, relating to implementation of information presented in this document. Nokia Corporation does not warrant or represent that such use will not infringe such rights.

Nokia Corporation retains the right to make changes to this material at any time, without notice.

== Licenses ==

This document is licensed under the [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License, version 1.2].

Permission is granted to copy, distribute and/or modify documentation under the terms of the GNU Free Documentation License, version 1.2 or any later version published by the Free Software Foundation. Please refer to the copyright notice in each piece of documentation for Invariant Sections, Front-Cover Texts or Back-Cover Texts, if any, as defined in the License.

[[Category:Documentation]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo PC Connectivity Tutorial</title>
    <id>3875</id>
    <revision>
      <id>36899</id>
      <timestamp>2010-07-16T07:27:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut formatting</comment>
      <text xml:space="preserve">'''maemo.org, 18 February 2010'''

* [[{{PAGENAME}}/Preface|Preface]]
* [[{{PAGENAME}}/Glossary|Glossary]]
* [[{{PAGENAME}}/Introduction|Introduction]]
* [[{{PAGENAME}}/Installation|Installation]]
* [[{{PAGENAME}}/Configuration|Configuration]]
* [[{{PAGENAME}}/Network Sharing|Network Sharing]]
* [[{{PAGENAME}}/Remote Access|Remote Access]]
* [[{{PAGENAME}}/File Sharing|File Sharing]]
* [[{{PAGENAME}}/Automatic Service Publishing|Automatic Service Publishing]]
* [[{{PAGENAME}}/Configuring Backup|Configuring Backup]]
* [[{{PAGENAME}}/Bibliography|Bibliography]]

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo PC Connectivity Tutorial/Automatic Service Publishing</title>
    <id>3876</id>
    <revision>
      <id>39971</id>
      <timestamp>2010-11-04T11:23:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly, add link</comment>
      <text xml:space="preserve">Maemo PC Connectivity automatically announces Samba shares, NFS shares, [[SSH]], X11VNC and SBRSH through Avahi. Due to this, host PCs can easily find the services available from a Maemo device. Avahi is an open-source implementation of the ZeroConf. It is used to facilitate the discovery of services on a local network. It allows a Maemo device to publish and discover services and hosts running on a local network with no specific configuration. For example, you can plug in a Maemo device to a network and a Linux or Mac OS X host PC instantly finds disk shares and other network services running on your Maemo device.

{{ambox|text=Avahi has not yet been included in Host PC Connectivity for Windows and thus automatic Maemo device service publishing does not work with Windows host PCs.}}

== Using Avahi on Linux ==

First, you should install &lt;code&gt;avahi-discover&lt;/code&gt; by executing the following command:

 $ sudo apt-get install avahi-discover

Next, you can use the &lt;code&gt;avahi-discover&lt;/code&gt; utility to see all services announced by the Maemo device, figure [[#figure-pc_connectivity_mpc_linux_avahi_discover|7.1]].

&lt;div id=&quot;figure-pc_connectivity_mpc_linux_avahi_discover&quot;&gt;
[[Image:mpc_linux_avahi_discover.png|frame|center|alt=Screenshot of Linux Avahi discovery dialog|Figure 7.1: Linux Avahi Discovery dialog]]
&lt;/div&gt;

== Using Avahi on Mac OS X ==

Samba and NFS shares from a Maemo device are automatically shown in the '''SHARED''' section of the '''Finder''' application, figure [[#figure-pc_connectivity_mpc_mac_avahi_finder|7.2]].

&lt;div id=&quot;figure-pc_connectivity_mpc_mac_avahi_finder&quot;&gt;
[[Image:mpc_mac_avahi_finder.png|frame|center|alt=Screenshot of Mac OS X Finder|Figure 7.2: Mac OS X Finder application]]
&lt;/div&gt;

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo PC Connectivity Tutorial/Bibliography</title>
    <id>3877</id>
    <revision>
      <id>39972</id>
      <timestamp>2010-11-04T11:25:38Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve"># [http://cygwin.org/ Cygwin Project]
# [http://www.macports.org/ MacPorts Project]

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo PC Connectivity Tutorial/Configuration</title>
    <id>3878</id>
    <revision>
      <id>39631</id>
      <timestamp>2010-10-20T14:25:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>links</comment>
      <text xml:space="preserve">== Connection Establishment ==

On a Maemo device, connections can be easily configured using Maemo PC Connectivity applets. It is possible to configure a Maemo device to use USB, Bluetooth and WLAN connection types.

'''USB''' connection type sets a USB mode (Network, Mass Storage or Host) to be used between a Maemo device and a host PC.

'''Bluetooth''' connection type sets a Bluetooth network over TCP/IP between a Maemo device and a host PC.

'''WLAN''' connection type sets a WLAN ad-hoc network between a Maemo device and a host PC.

On the host PC side (Linux, Windows and Mac OS X), the Host PC Connectivity product provides some tools to make it easier to configure the chosen connection type between the Maemo device and the host PC. Next the configuration of each supported connection type (USB, Bluetooth and WLAN) between the Maemo device and host PC are described briefly.

=== Configuring USB Network ===

For Maemo Diablo devices, the USB connection has been configured to '''Mass storage''' mode by default. That is, when connected to a host PC via USB cable, the Maemo device is visible as a memory card for the host PC.

For Fremantle, when a Maemo device is connected to the host PC via USB cable, the Maemo device shows a default pop-up menu where the USB mode can be selected. the choices given are '''Mass storage''' or '''PC Suite''' mode. You must NOT use this default USB pop-up menu if you have installed Maemo PC Connectivity to the N900 device! Just click outside this default USB pop-up menu to close it and use Maemo PC Connectivity widgets to change the USB mode.

{|
|-
| [[Image:dialog-information.png]]
| '''Note:'''  With the Maemo Fremantle platform and N900 device, if Maemo PC Connectivity has been installed, the USB connection is used in a different way beyond the default '''Mass storage''' and '''PC Suite''' modes and thus ONLY Maemo PC Connectivity applets can be used to change the USB mode for the Maemo N900 device.
|}

For '''USB''' connection type it is possible to set following options for a Maemo device:

; '''Network'''
: sets a USB network over TCP/IP between the Maemo device and host PC.
; '''Mass storage'''
: sets the Maemo device file system to be accessible from the host PC as a memory card.
; '''PC Suite'''
: sets the Maemo device to be accessible by Nokia applications like Nokia PC Suite.
; '''Host'''
: sets the Maemo device to USB Host mode, where it allows external USB devices (such as hard drives, digital cameras, card readers, input devices, and so on) to be connected to the Maemo device, just like to a regular PC.

{|
|-
| [[Image:dialog-information.png]]
| '''Note:'''  Maemo Diablo [[Nokia N800|N800]] and [[Nokia N810|N810]] devices do not support PC Suite mode. Due to hardware limitations, Maemo Fremantle device [[Nokia N900|N900]] does not support USB Host mode.
|}

The description of how to setup a USB connection to Mass storage, PC Suite and Host modes is skipped, since the configuration is simply to select and apply the desired mode on a Maemo device using Maemo PC Connectivity. Next, it is explained how to configure a USB network over TCP/IP between a Maemo device and host PC through Maemo PC Connectivity. Before that, you must install the &lt;code&gt;maemo-pc-connectivity&lt;/code&gt; meta package on the Maemo device and the &lt;code&gt;host-pc-connectivity&lt;/code&gt; package on the host PC (Linux, Windows and Mac OS).

==== Configuring USB for Maemo devices ====

To set up a USB network for a Maemo device you need to start PC Connectivity Manager, figure [[#fig:pc_connectivity_mpc_nm_usb_basic|3.1]].


{| summary=&quot;PC Connectivity Manager&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.1:''' PC Connectivity Manager
|-
|
[[Image:mpc_maemo_nm_usb_basic.png|Image mpc_maemo_nm_usb_basic]]
|}

Follow these steps to enable USB Networking:

# Disconnect the USB cable from Maemo device
# Run '''Settings - Control Panel - Connectivity - PC Connectivity Manager'''
# Check '''USB''' option
# Press '''Apply''' button
# Connect the USB cable to the host PC.
# Press the '''Advanced''' button and PC Connectivity Manager switches to advanced mode, if you want to change the default values.
# Change network options such as DHCP Server, IP address, Gateway and Netmask.
# Click on the '''Apply''' button.

The USB Networking must have the following default values, figure [[#fig:pc_connectivity_mpc_nm_usb|3.2]].

{| summary=&quot;PC Connectivity Manager USB Networking&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.2:''' PC Connectivity Manager USB Networking
|-
|
[[Image:mpc_maemo_nm_usb.png|Image mpc_maemo_nm_usb]]
|}

* '''DHCP Server:''' &lt;code&gt;enabled&lt;/code&gt;
* '''IP address:''' &lt;code&gt;192.168.2.15&lt;/code&gt;
* '''Gateway:''' &lt;code&gt;192.168.2.14&lt;/code&gt;
* '''Netmask:''' &lt;code&gt;255.255.255.0&lt;/code&gt;

Once you have configured your USB Network using PC Connectivity Manager, you can enable or disable it easily by using Connection Switcher from the status bar, figure [[#fig:pc_connectivity_mpc_switcher_usb|3.3]].

{| summary=&quot;Connection Switcher dialog&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.3:''' Connection Switcher dialog
|-
|
[[Image:mpc_maemo_switcher_usb.png|Image mpc_maemo_switcher_usb]]
|}

If you prefer, you can follow the steps below to configure USB Network manually for a Maemo device (Diablo):

* Run '''Utilities - X Terminal'''
* Type &lt;code&gt;sudo gainroot&lt;/code&gt;
* Type &lt;code&gt;insmod /mnt/initfs/lib/modules/2.6.21-omap1/g_ether.ko&lt;/code&gt;
* Edit the &lt;code&gt;/etc/network/interfaces&lt;/code&gt; file to configure the IP address of the &lt;code&gt;usb0&lt;/code&gt; interface:

The &lt;code&gt;/etc/network/interfaces&lt;/code&gt; file should have following entries in it:

 auto usb0
 iface usb0 inet static
 address 192.168.2.15
 netmask 255.255.255.0

* Type &lt;code&gt;ifup usb0&lt;/code&gt;
* Plug in the USB cable

To disable USB Network manually on a Maemo device (Diablo), follow these steps:

* Run '''Utilities - X Terminal'''
* Type &lt;code&gt;sudo gainroot&lt;/code&gt;
* Type &lt;code&gt;ifdown usb0&lt;/code&gt;
* Type &lt;code&gt;rmmod g_ether&lt;/code&gt;

==== Configuring USB for Linux ====

If you install the &lt;code&gt;host-pc-connectivity&lt;/code&gt; package, your Linux host PC is ready for USB Network.

Otherwise, you can configure your Linux host PC manually following the steps below:

On Ubuntu, you need to edit the &lt;code&gt;/etc/udev/rules.d/85-ifupdown.rules&lt;/code&gt; file and replace the following line:

 SUBSYSTEM==&quot;net&quot;, DRIVERS==&quot;?*&quot;, GOTO=&quot;net_start&quot;

with this line:

 SUBSYSTEM==&quot;net&quot;, GOTO=&quot;net_start&quot;

If this workaround is not done, the &lt;code&gt;usb0&lt;/code&gt; interface does not get its IP address back when you unplug and plug back the Maemo device to the host PC. Therefore, you must restart the network manually with the command &lt;code&gt;/etc/init.d/networking restart&lt;/code&gt; to get the &lt;code&gt;usb0&lt;/code&gt; IP address back. This is a known issue on Ubuntu (see the related bug report [https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/130437 here]).

On Debian, this workaround is not needed.

Add the following lines to the network configuration file &lt;code&gt;/etc/network/interfaces&lt;/code&gt;:

&lt;pre&gt;
auto usb0
allow-hotplug usb0

mapping hotplug
script grep
map usb0

iface usb0 inet dhcp
up iptables -t nat -A POSTROUTING -s 192.168.2.15 -j MASQUERADE
up echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward
down iptables -t nat -D POSTROUTING -s 192.168.2.15 -j MASQUERADE
down echo 0 &amp;gt; /proc/sys/net/ipv4/ip_forward
&lt;/pre&gt;

You can now connect the USB cable. With this configuration, you ensure that the &lt;code&gt;ifup usb0&lt;/code&gt; command sets up the IP address correctly on the host PC since it is using DHCP. Also, it allows a Maemo device to access the Internet from the host PC through the &lt;code&gt;usb0&lt;/code&gt; interface.

If you are using VMware:

* Connect USB cable.
* Go to '''VMware - Devices - Netchip RNDIS/Ethernet Gadget''' and click on the '''Connect (Disconnect from host)''' option. If VMware hangs, unplug the USB cable and wait for a short period of time. You get two &lt;code&gt;device in use&lt;/code&gt; error messages, one from Native OS and another from VMware (likely because of automatic USB Mass Storage mode).
* Connect the USB cable. Repeat the previous steps if any problems are encountered.

Invoke the &lt;code&gt;sudo ifdown usb0&lt;/code&gt; and &lt;code&gt;sudo ifup usb0&lt;/code&gt; commands. The down/up sequence ensures that the host PC attempts to reconnect the &lt;code&gt;usb0&lt;/code&gt; interface.

If this results in a lot of &lt;code&gt;Failed to bring up usb0&lt;/code&gt; errors, try again a few times. There can be a delay until the host PC and Maemo device become aware of each other. If it does not succeed but no error message is displayed, you can unplug and plug back the USB cable.

Test the &lt;code&gt;usb0&lt;/code&gt; connection with the following command &lt;code&gt;ping 192.168.2.15&lt;/code&gt;

If you do not get the ping working, try again a few times. This can be an annoying process, especially in VMware where the USB connection may be automatically configured to Mass Storage mode every time you plug the USB cable into the host PC. It may even require restarting VMware in some cases.

==== Configuring USB for Windows ====

In order to get USB Networking functioning between a Windows host PC and a Diablo Maemo device, you must replace the original Diablo kernel with a new one that fixes some generic Linux USB Networking issues.

To replace the Diablo kernel, follow these steps:

* Download the file &lt;code&gt;diablo_kernel_usbnet_patch_windows_v0.4.zip&lt;/code&gt; from [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Maemo Development Environment Downloads] page.
* Unzip the file.
* Replace the Diablo kernel by reflashing it using the flasher-3.5 application from the same [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Maemo Development Environment Downloads] page.

 $ flasher-3.5 -k diablo_kernel_usbnet_windows/zImage -f -R

Now, you can get USB Network working between a Diablo Maemo device and a Windows host PC.

{|
|-
| [[Image:dialog-information.png]]
| '''Note:'''  On Fremantle and the N900 device this kernel fix has already been applied by default.
|}

After reflashing the kernel to the Maemo Diablo device and installing the &lt;code&gt;PC-Connectivity.exe&lt;/code&gt; package to the host PC, your Windows host PC is ready for USB Network. That is, Windows detects and configures the Maemo device automatically when you plug in the USB cable. Remember to activate USB Network on your Maemo device before plugging the cable into the Windows host PC.

If you did not enable the '''DHCP''' option for the Maemo device, you need to configure the USB Network address for the host PC through the application available on the Windows Start menu '''Start - Programs - PC-Connectivity - UsbNetworking''', figure [[#fig:pc_connectivity_mpc_win_usb_app|3.4]].

{| summary=&quot;USB Network address on Windows&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.4:''' USB Network address on Windows
|-
|
[[Image:mpc_win_usb_app.png|Image mpc_win_usb_app]]
|}

If you do not install the &lt;code&gt;PC-Connectivity&lt;/code&gt; package, you have to configure the USB network manually on your Windows host PC. For that, you must follow the steps below:

* Activate USB Network on the Maemo device.
* Plug in the USB cable between the Maemo device and the Windows host PC.
* Windows detects the device.

In the '''Found New Hardware Wizard''', figure [[#fig:pc_connectivity_mpc_win_usb_device_found|3.5]], proceed as follows:

{| summary=&quot;Windows Found New Hardware Wizard&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.5:''' Windows Found New Hardware Wizard
|-
|
[[Image:mpc_win_usb_device_found.png|Image mpc_win_usb_device_found]]
|}

* Select the '''No, not this time''' option. Click on the '''Next''' button, figure [[#fig:pc_connectivity_mpc_win_usb_device_found|3.5]].
* Select the '''Install from a list or specific location (Advanced)''' option. Click on the '''Next''' button.
* Select the '''Don't search, I will choose the driver to install''' option.
* Click on the '''Next''' button, figure [[#fig:pc_connectivity_mpc_win_usb_choose_driver|3.6]].
* Select the '''Network adapters''' option. Click on the '''next''' button (optional screen).
* Select the '''Have disk''' option. Then, Click on the '''Browser''' button, select the driver (&lt;code&gt;.inf&lt;/code&gt; file) and click on the '''OK''' button. The driver is available inside the zip file that was used to fix the Diablo kernel (&lt;code&gt;diablo_kernel_usbnet_patch_windows_v0.4.zip&lt;/code&gt;).
* Follow the next steps as with a normal driver installation.

The new USB Network interface is available on the '''Start - Network Connections''' menu.

{| summary=&quot;Windows Search and Installation options for USB&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.6:''' Windows Search and Installation options for USB
|-
|
[[Image:mpc_win_usb_choose_driver.png|Image mpc_win_usb_choose_driver]]
|}

{|
|-
| [[Image:dialog-information.png]]
| '''Note:'''  If you did NOT choose the DHCP option on the Maemo device, you need to set up the network using the following information: &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;IP address: 192.168.2.14&lt;/font&gt;&lt;/span&gt; &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;Subnet mask: 255.255.255.0&lt;/font&gt;&lt;/span&gt;, figure [[#fig:pc_connectivity_mpc_win_usb_tcp|3.7]].
|}

To check if the connection is working, go to Windows command prompt and type &lt;code&gt;ping 192.168.2.15&lt;/code&gt;.

{| summary=&quot;Manual IP Network configuration dialog for USB&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.7:''' Manual IP Network configuration dialog for USB
|-
|
[[Image:mpc_win_usb_tcp.png|Image mpc_win_usb_tcp]]
|}

==== Configuring USB for Mac OS X ====

To enable USB Network to work on Mac OS X you can follow these steps:

* Activate USB network on the Maemo device.
* Plug in the USB cable between Maemo device and the Mac OS X host PC.
* The following pop-up should appear, figure [[#fig:pc_connectivity_mpc_mac_usb_pop_up|3.8]].
* Click on the '''Network Preferences''' button.
* Click on the '''Apply''' button. Now, you should be able to connect to your Maemo device.

{| summary=&quot;New network interface found pop-up dialog&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.8:''' New network interface found pop-up dialog
|-
|
[[Image:mpc_mac_usb_pop_up.png|Image mpc_mac_usb_pop_up]]
|}

{|
|-
| [[Image:dialog-information.png]]
| '''Note:'''  If you did not choose the DHCP option on the Maemo device, you need to set up the USB network address manually on '''Network panel'''. For example, &lt;code&gt;IP address: 192.168.2.14&lt;/code&gt; &lt;code&gt;Subnet mask: 255.255.255.0&lt;/code&gt;, figure [[#fig:pc_connectivity_mpc_mac_usb_tcp_properties|3.9]].
|}

{| summary=&quot;Network panel configuration dialog&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.9:''' Network panel configuration dialog
|-
|
[[Image:mpc_mac_usb_tcp_properties.png|Image mpc_mac_usb_tcp_properties]]
|}

=== Configuring Bluetooth Network ===

With Maemo PC Connectivity, you can configure a Bluetooth network between a Maemo device and a host PC by setting up connection attributes like IP address, network mask, and so on. For that, you have to first install Maemo PC Connectivity to the Maemo device and Host PC Connectivity to the host PC (Linux, Windows or Mac OS X).

==== Configuring Bluetooth for Maemo device ====

In order to set up a Bluetooth network for a Maemo device, you should follow these steps:

* Run '''Settings - Control Panel - Connectivity - PC Connectivity Manager'''.
* Click on the '''Advanced''' button.
* Select an environment or create a new one.
* Select the '''Bluetooth''' option as shown in Figure [[#fig:pc_connectivity_mpc_maemo_nm_bluetooth|3.10]].
* Click on '''Search''' to find the host PC.
* Once the host PC is found, mark its name and then click '''Select''', figure [[#fig:pc_connectivity_mpc_maemo_nm_bluetooth_search|3.11]].
* The default settings are presented below, you can change them if needed.
* Finally, click on '''Apply''' to enable the Bluetooth network.

{| summary=&quot;PC Connectivity Manager Bluetooth configuration&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.10:''' PC Connectivity Manager Bluetooth configuration
|-
|
[[Image:mpc_maemo_nm_bluetooth.png|Image mpc_maemo_nm_bluetooth]]
|}

Default values for Maemo device Bluetooth configuration are:

* '''DHCP Server:''' &lt;code&gt;enabled&lt;/code&gt;
* '''IP address:''' &lt;code&gt;192.168.3.15&lt;/code&gt;
* '''Gateway:''' &lt;code&gt;192.168.3.14&lt;/code&gt;
* '''Netmask:''' &lt;code&gt;255.255.255.0&lt;/code&gt;
* '''Bluetooth address:''' empty (you should search the host PC to connect to), figure [[#fig:pc_connectivity_mpc_maemo_nm_bluetooth_search|3.11]].

{| summary=&quot;Searching Bluetooth devices dialog&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.11:''' Searching Bluetooth devices dialog
|-
|
[[Image:mpc_maemo_nm_bluetooth_search.png|Image mpc_maemo_nm_bluetooth_search]]
|}

Once you have configured your Bluetooth Network using PC Connectivity Manager, you can enable or disable it easily by using Connection Switcher from the status bar, figure [[#fig:pc_connectivity_mpc_maemo_switcher_bluetooth|3.12]].

{| summary=&quot;Connection Switcher dialog&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.12:''' Connection Switcher dialog
|-
|
[[Image:mpc_maemo_switcher_bluetooth.png|Image mpc_maemo_switcher_bluetooth]]
|}

==== Configuring Bluetooth for Linux ====

After you have installed the &lt;code&gt;host-pc-connectivity&lt;/code&gt; package for your Linux host PC, it is ready for the Bluetooth network.

Or you can configure your Linux host PC manually for Bluetooth following the steps given below.

Add these lines to the file &lt;code&gt;/etc/network/interfaces&lt;/code&gt;:

&lt;pre&gt;
auto bnep0
iface bnep0 inet dhcp
up iptables -t nat -A POSTROUTING -s 192.168.3.15 -j MASQUERADE
up echo 1 &gt; /proc/sys/net/ipv4/ip_forward
down iptables -t nat -D POSTROUTING -s 192.168.3.15 -j MASQUERADE
down echo 0 &gt; /proc/sys/net/ipv4/ip_forward
&lt;/pre&gt;

Edit the file &lt;code&gt;/etc/default/bluetooth&lt;/code&gt; and change these lines:

&lt;pre&gt;
BLUETOOTH_ENABLED=1
...
PAND_ENABLED=1
...
PAND_OPTIONS=&quot;-listen -role=NAP -e bnep0&quot;
&lt;/pre&gt;

Restart the Bluetooth service with the command:

 $ sudo /etc/init.d/bluetooth restart

Now your Linux host PC is ready for the Bluetooth network.

==== Configuring Bluetooth for Windows ====

The description of how to configure Bluetooth on a Windows host PC is based on [http://www.bluesoleil.com/ the BlueSoleil application]. BlueSoleil is one of the most popular Windows Bluetooth applications. If you do not use BlueSoleil, the screenshots below can differ from what you see in your host PC, but they can help in understanding what you need to change on your Windows configuration.

You should follow the next steps to get the Bluetooth network configured in your Windows host PC (with BlueSoleil).

* In the '''System tray''', right click on the Bluetooth icon .
* Select the '''Bluetooth Configuration''' option, figure [[#fig:pc_connectivity_mpc_win_bluetooth_tray|3.13]].
* In the '''Bluetooth Configuration''' dialog, select the '''Accessibility''' tab.
* Check the '''Let other Bluetooth devices discover this computer''' option, figure [[#fig:pc_connectivity_mpc_win_bluetooth_accessibility|3.14]].
* In the '''Bluetooth Configuration''' dialog, select the '''Local Services''' tab.
* Mark the '''Network Access''' service and click the '''Properties...''' button, figure [[#fig:pc_connectivity_mpc_win_bluetooth_services|3.15]].
* If you want to share Internet over Bluetooth, select '''Allow other devices to access the Internet/LAN via this computer''' on the '''Select the type of the service to offer remote devices''' option.
* Click on the '''Configure Network Adapter''' button, figure [[#fig:pc_connectivity_mpc_win_bluetooth_properties|3.16]].
* Double click on the '''Internet Protocol (TCP/IP)''' option, figure [[#fig:pc_connectivity_mpc_win_bluetooth_network|3.17]].
* For all opened dialogs, press the '''OK''' button.

{|
|-
| [[Image:dialog-information.png]]
| '''Note:'''  If you did not choose the DHCP option on the Maemo device, type the following information for the network adapter: &lt;code&gt;IP address: 192.168.3.14&lt;/code&gt; &lt;code&gt;Subnet mask: 255.255.255.0&lt;/code&gt;, figure [[#fig:pc_connectivity_mpc_win_bluetooth_tcp|3.18]]
|}

{| summary=&quot;Bluetooth configuration menu&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.13:''' Bluetooth configuration menu
|-
|
[[Image:mpc_win_bluetooth_tray.png|Image mpc_win_bluetooth_tray]]
|}

{| summary=&quot;Bluetooth Accessibility dialog&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.14:''' Bluetooth Accessibility dialog
|-
|
[[Image:mpc_win_bluetooth_accessibility.png|Image mpc_win_bluetooth_accessibility]]
|}

{| summary=&quot;Bluetooth Network Access entry&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.15:''' Bluetooth Network Access entry
|-
|
[[Image:mpc_win_bluetooth_services.png|Image mpc_win_bluetooth_services]]
|}

{| summary=&quot;Bluetooth Properties dialog&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.16:''' Bluetooth Properties dialog
|-
|
[[Image:mpc_win_bluetooth_properties.png|Image mpc_win_bluetooth_properties]]
|}

{| summary=&quot;Bluetooth Network properties dialog&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.17:''' Bluetooth Network properties dialog
|-
|
[[Image:mpc_win_bluetooth_network.png|Image mpc_win_bluetooth_network]]
|}

{| summary=&quot;Network Adapter configuration dialog&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.18:''' Network Adapter configuration dialog
|-
|
[[Image:mpc_win_bluetooth_tcp.png|Image mpc_win_bluetooth_tcp]]
|}

==== Configuring Bluetooth for Mac OS X ====

After installing the &lt;code&gt;PC-Connectivity&lt;/code&gt; package to the host PC, your Mac OS X is ready for the Bluetooth network.

Otherwise, you can configure your Mac OS host PC manually by following these steps.

* Go to '''System Preferences''' and click on the '''Network''' icon, figure [[#fig:pc_connectivity_mpc_mac_bluetooth_network_preferences|3.19]].
* Add a new network interface, figure [[#fig:pc_connectivity_mpc_mac_bluetooth_network_add|3.20]].
* For the '''Interface''' field, select '''Bluetooth PAN''' type.
* For the '''Service Name''' field, write the interface name, figure [[#fig:pc_connectivity_mpc_mac_bluetooth_network_name|3.21]].
* Press the '''Apply''' button.

{|
|-
| [[Image:dialog-information.png]]
| '''Note:'''  If you did not choose the DHCP option on the Maemo device, select the newly created '''Bluetooth PAN''' interface and use the '''Manually''' option in the '''Configure''' field. After that, type the following information: &lt;code&gt;IP address: 192.168.3.14&lt;/code&gt; &lt;code&gt;Subnet mask: 255.255.255.0&lt;/code&gt;, figure [[#fig:pc_connectivity_mpc_mac_bluetooth_network_tcp|3.22]]
|}

{| summary=&quot;System Preferences dialog&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.19:''' System Preferences dialog
|-
|
[[Image:mpc_mac_bluetooth_network_preferences.png|Image mpc_mac_bluetooth_network_preferences]]
|}

{| summary=&quot;Adding new network interface&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.20:''' Adding new network interface
|-
|
[[Image:mpc_mac_bluetooth_network_add.png|Image mpc_mac_bluetooth_network_add]]
|}

{| summary=&quot;Configuring new Bluetooth interface name&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.21:''' Configuring new Bluetooth interface name
|-
|
[[Image:mpc_mac_bluetooth_network_name.png|Image mpc_mac_bluetooth_network_name]]
|}

{| summary=&quot;Configuring Bluetooth interface network&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.22:''' Configuring Bluetooth interface network
|-
|
[[Image:mpc_mac_bluetooth_network_tcp.png|Image mpc_mac_bluetooth_network_tcp]]
|}

=== Configuring a WLAN ad-hoc Network ===

With Maemo PC Connectivity, you can configure a WLAN ad-hoc network for your Maemo device. You can set up connection attributes such as IP address, network mask, and so on.

==== Configuring WLAN ad-hoc for a Maemo device ====

To set up a WLAN ad-hoc network for your Maemo device, you need to perform the following configuration steps.

In Control Panel, open the PC Connectivity Manager widget, figure [[#fig:pc_connectivity_mpc_maemo_nm_wlan_basic|3.23]].

{| summary=&quot;PC Connectivity Manager - basic mode&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.23:''' PC Connectivity Manager - basic mode
|-
|
[[Image:mpc_maemo_nm_wlan_basic.png|Image mpc_maemo_nm_wlan_basic]]
|}

Select the '''WLAN''' check-box and press the '''Apply''' button. A new WLAN ad-hoc connection is created with the following configuration:

* '''DHCP Server:''' &lt;code&gt;Enabled&lt;/code&gt;
* '''IP Address:''' &lt;code&gt;192.168.4.14&lt;/code&gt;
* '''Gateway:''' &lt;code&gt;192.168.4.15&lt;/code&gt;
* '''Netmask:''' &lt;code&gt;255.255.255.0&lt;/code&gt;
* '''Essid:''' &lt;code&gt;devel_adhoc&lt;/code&gt;
* '''WEP:''' key empty

If you want to change these default values, press the '''Advanced''' button, go to '''WLAN ad-hoc''' connection type and change the values. Then, press the '''Apply''' button, figure [[#fig:pc_connectivity_mpc_maemo_nm_wlan|3.24]].

{|
|-
| [[Image:dialog-information.png]]
| '''Note:'''  By default, the WEP key is not used for new WLAN networks but for security reasons it is highly recommended to set also the wireless key.
|}

The WEP key must have 5, 10 or 13 characters (For example: &lt;code&gt;aaaaa&lt;/code&gt;).

{| summary=&quot;PC Connectivity Manager - advanced mode&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.24:''' PC Connectivity Manager - advanced mode
|-
|
[[Image:mpc_maemo_nm_wlan.png|Image mpc_maemo_nm_wlan]]
|}

Once you have configured your WLAN ad-hoc Network using PC Connectivity Manager, you can enable or disable it easily using Connection Switcher from the status bar, figure [[#fig:pc_connectivity_mpc_maemo_switcher_wlan|3.25]].

{| summary=&quot;Connection Switcher dialog&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.25:''' Connection Switcher dialog
|-
|
[[Image:mpc_maemo_switcher_wlan.png|Image mpc_maemo_switcher_wlan]]
|}

==== Configuring WLAN ad-hoc for Linux ====

The &lt;code&gt;iwconfig&lt;/code&gt; command is the configuration utility in Linux for WLAN interfaces. It is used to set the parameters of the network interface, which are specific to the wireless operation. The &lt;code&gt;iwconfig&lt;/code&gt; command may also be used to display the parameters and the wireless network statistics. It extracts this information from the &lt;code&gt;/proc/net/wireless&lt;/code&gt; file. By typing the &lt;code&gt;iwconfig&lt;/code&gt; command without any arguments, it displays the current status of all wireless interfaces on the system.

To configure your host PC to connect with your Maemo device using a WLAN ad-hoc network, you should execute the following steps as &lt;code&gt;root&lt;/code&gt; user:

&lt;pre&gt;
$ ifconfig wlan0 up
$ iwconfig wlan0 mode Ad-Hoc
$ iwconfig wlan0 essid devel_adhoc
$ iwconfig wlan0 key off
&lt;/pre&gt;

{|
|-
| [[Image:dialog-information.png]]
| '''Note:'''  The example below disables the usage of wireless key, but for security reasons it is highly recommended to set also the wireless key.
|}

To set the wireless key for your WLAN ad-hoc network, you should give the following command (using your own key value).

 $ iwconfig wlan0 key 6161616161

You must use the same WEP key you used for Maemo device configuration, but as hexadecimal digits (for example, &lt;code&gt;aaaaa&lt;/code&gt; is &lt;code&gt;6161616161&lt;/code&gt; in hexadecimal).

==== Configuring WLAN ad-hoc for Windows ====

To set up a WLAN ad-hoc network that allows others computers to connect to your Windows host PC, follow these steps.

* Connect your Maemo device to &lt;code&gt;devel_adhoc&lt;/code&gt;.
* In the '''System Tray''', right click on the wireless icon. Select the '''View Available Wireless Networks''' option, figure [[#fig:pc_connectivity_mpc_win_wlan_tray|3.26]].
* The '''Wireless Network Connection''' window displays the &lt;code&gt;devel_adhoc&lt;/code&gt; network on the list. If you do not see &lt;code&gt;devel_adhoc&lt;/code&gt;, click '''Refresh network list''' in the upper left corner, figure [[#fig:pc_connectivity_mpc_win_wlan_selection|3.27]].
* Select &lt;code&gt;devel_adhoc&lt;/code&gt;, and then click on the '''Connect''' button.
* If you configured the '''WEP Key''' for your Maemo device, the Windows asks you to write that key at this point, figure [[#fig:pc_connectivity_mpc_win_wlan_key|3.28]].

{| summary=&quot;View Available Wireless Networks menu&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.26:''' View Available Wireless Networks menu
|-
|
[[Image:mpc_win_wlan_tray.png|Image mpc_win_wlan_tray]]
|}

{| summary=&quot;Choose a wireless network dialog&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.27:''' Choose a wireless network dialog
|-
|
[[Image:mpc_win_wlan_selection.png|Image mpc_win_wlan_selection]]
|}

{| summary=&quot;Wireless network key dialog&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.28:''' Wireless network key dialog
|-
|
[[Image:mpc_win_wlan_key.png|Image mpc_win_wlan_key]]
|}

==== Configuring WLAN ad-hoc for Mac OS X ====

To configure a WLAN ad-hoc network for your Mac OS X host PC, follow these steps.

* Connect your maemo device to &lt;code&gt;devel_adhoc&lt;/code&gt;.
* On the '''Menu Bar''', click on the wireless icon and select the &lt;code&gt;devel_adhoc&lt;/code&gt; network.
* If you configured '''WEP Key''' for your Maemo device, the Mac OS X asks you to write that key at this point.
* The wireless icon should change to inform that it is now connected.

== Using Configuration Environments ==

With Maemo PC Connectivity, it is possible to use configuration environments for your Maemo device. For example, you can create an environment named &lt;code&gt;Home&lt;/code&gt; that has the USB connection and the NFS disk mounts configured, and an environment named &lt;code&gt;Office&lt;/code&gt; that has the WLAN connection and the SBRSH tool configured. When you are at home you can select a &lt;code&gt;Home&lt;/code&gt; environment for your Maemo device and all previously stored connection and tool configurations in the &lt;code&gt;Home&lt;/code&gt; environment are restored for your Maemo device.

To create or modify new configuration environments for your Maemo device you need to launch the Environment Manager widget, figure [[#fig:pc_connectivity_mpc_maemo_nm_env_create|3.29]].

{| summary=&quot;Environment Manager&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.29:''' Environment Manager
|-
|
[[Image:mpc_maemo_nm_env_create.png|Image mpc_maemo_nm_env_create]]
|}

To create a new environment you should follow these steps:

* Run '''Settings - Control Panel - Connectivity - PC Connectivity Manager'''.
* Click on the '''Advanced''' button.
* Click on the '''...''' button.
* Click on the '''New''' button.
* Set the environment name. For example, '''Home''', and click on the '''Ok''' button.
* Configure connections and tools to be used with this environment. For example, USB connection and NFS tool.
* Click on the '''Save''' button.

After you have created new environments, you can switch between them using the Connection Switcher widget, figure [[#fig:pc_connectivity_mpc_maemo_switcher_env|3.30]].

{| summary=&quot;Connection Switcher&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.30:''' Connection Switcher
|-
|
[[Image:mpc_maemo_switcher_env.png|Image mpc_maemo_switcher_env]]
|}

To change between stored environments using Connection Switcher:

* Run Connection Switcher from the status bar.
* Select an environment.

All stored configuration information for the chosen environment are applied to the Maemo device.

Also, the PC Connectivity Manager widget can be used to switch between stored environments, figure [[#fig:pc_connectivity_mpc_maemo_nm_env_basic|3.31]].

{| summary=&quot;PC Connectivity Manager - Basic mode&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.31:''' PC Connectivity Manager - Basic mode
|-
|
[[Image:mpc_maemo_nm_env_basic.png|Image mpc_maemo_nm_env_basic]]
|}

* Run '''Settings - Control Panel - Connectivity - PC Connectivity Manager'''.
* Select an environment.
* Click on the '''Apply''' button.

You can modify stored configuration environments with the PC Connectivity Manager widget in its '''Advanced''' mode, figure [[#fig:pc_connectivity_mpc_maemo_nm_env_advanced|3.32]].

{| summary=&quot;PC Connectivity Manager - Advanced mode&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.32:''' PC Connectivity Manager - Advanced mode
|-
|
[[Image:mpc_maemo_nm_env.png|Image mpc_maemo_nm_env]]
|}

* Run '''Settings - Control Panel - Connectivity - PC Connectivity Manager'''.
* Click on the '''Advanced''' button.
* Change the environment configuration. For example, USB connection and/or X11VNC tool.
* Click on the '''Apply''' button. All configurations, including changes, are saved and applied

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo PC Connectivity Tutorial/Configuring Backup</title>
    <id>3879</id>
    <revision>
      <id>39632</id>
      <timestamp>2010-10-20T14:28:10Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add link</comment>
      <text xml:space="preserve">You can use the [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Using Backup Application|Maemo Backup tool]] on a Maemo device to back up the Maemo PC Connectivity configuration. The connection environments and the configuration of connections and tools are backed up. Following the steps below, you can upgrade the Maemo device platform version (reflash the Maemo device) and restore all Maemo PC Connectivity configuration after upgrade.

* Open the backup tool at '''Settings - Backup/Restore''' menu options.
* Create a backup configuration selecting at least the '''Settings''' option. If, besides the configuration, you want the software list to be in the backup, you can also select the '''Applications''' option.

Your backup can now be created. This backup can be updated anytime you want. After you have upgraded the Maemo device or reflashed it, you should simply go to the backup tool again, choose the '''Settings - Backup/Restore''' menu option and restore the backup that was created before the upgrade.

Restoring the backup may require a reboot for your Maemo device. After that, all your Maemo PC Connectivity configuration should have been restored.

{|
|-
| [[Image:dialog-information.png]]
| '''Note:'''  Backup is stored on the memory card of your Maemo device. If you plan to flash also your memory card with an eMMC image (possible only with Maemo Fremantle devices) you need to copy backup files from the memory card to the host PC before flashing the eMMC image and back to memory card after eMMC flashing in order to restore the backup.
|}

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo PC Connectivity Tutorial/File Sharing</title>
    <id>3880</id>
    <revision>
      <id>39973</id>
      <timestamp>2010-11-04T11:58:17Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>reformat images, add anchor divs, wikify slightly, add links</comment>
      <text xml:space="preserve">== Disk mounting ==

Maemo PC Connectivity provides some tools for easily sharing files between a Maemo device and a host PC. You can can mount the file system of a Maemo device to the host PC over a network and interact with it as it is a local disk. Also, it is possible to mount a file system of a host PC to the Maemo device. For that, you have to install Maemo PC Connectivity on the Maemo device and Host PC Connectivity on the host PC (Linux, Windows and Mac OS X).

This chapter describes how to use the disk mounting tools available with Maemo PC Connectivity. To simplify the process, it is assumed that you already have a working USB network between your Maemo device and the host PC.

The recommended tools and methods to mount the file system of a Maemo device to a host PC are listed in table 6.1.

{| class=&quot;wikitable&quot;
|+ '''Table 6.1:''' Recommended mount tools for PC
|-
|
! Linux
! Windows
! Mac OS
|-
! SSHFS
| X
|
| X
|-
! NFS
| X
|
| X
|-
! SAMBA
| X
| X
| X
|}

The recommended tools and methods to mount the file system of a host PC to a Maemo device are listed in table 6.2.

{| class=&quot;wikitable&quot;
|+ '''Table 6.2:''' Recommended mount tools for Maemo device
|-
|
! Linux
! Windows
! Mac OS
|-
! SSHFS
| X
|
| X
|-
! NFS
| X
|
|
|-
! SAMBA
| X
| X
| X
|}

On the host PC, you must type the commands below in the terminal on Linux and Mac OS X and in the Cygwin command shell on Windows.

=== Using SSHFS mounts ===

SSHFS (SSH File System) is a file system client based on the SSH protocol. It allows users to mount locally a remote file system via [[SSH]]. With SSHFS, you can remotely access the Maemo device file system from the host PC and vice versa.

{{ambox|text=SSHFS mounts do not work on Windows host PC.}}

If you want to mount the Maemo device file system to your host PC, you can execute the following commands.

&lt;pre&gt;
$ mkdir ~/maemo
$ sshfs user@192.168.2.15:/ ~/maemo -o rw,nonempty
user@192.168.2.15's password: &lt;type user password here&gt;
&lt;/pre&gt;

If you did not set the SSH password for &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;user&lt;/font&gt;&lt;/span&gt; yet, you can use the &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;root&lt;/font&gt;&lt;/span&gt; account. You should set up the password for the &lt;span&gt;&lt;font face=&quot;monospace&quot;&gt;user&lt;/font&gt;&lt;/span&gt; account by following these steps:

&lt;pre&gt;
$ ssh root@192.168.2.15
root@192.168.2.15's password: &lt;type root password here&gt;
Nokia-810:~# passwd user
Changing password for user
Enter the new password (minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.
New password: &lt;type new user password here&gt;
Re-enter new password: &lt;retype user password&gt;
Password changed
&lt;/pre&gt;

If you want to mount the host PC file system to your Maemo device, you can execute the following commands:

&lt;pre&gt;
$ mkdir ~/hostpc
$ sshfs &lt;host_pc_user&gt;@&lt;host_pc_ip&gt;:/ ~/hostpc -o rw,nonempty
 &lt;host_pc_user&gt;@&lt;host_pc_ip&gt;'s password: &lt;type user password here&gt;
&lt;/pre&gt;

As SSHFS is a user mode file system, you cannot use the standard Linux &lt;code&gt;mount&lt;/code&gt; command directly. For example, you should execute the following command to unmount the Maemo device file system from the host PC.

 $ fusermount -u ~/maemo

You can configure SSH to use keys and not to ask for a password every time by exchanging the SSH keys as described in the SSH installation chapter.

=== Using NFS mounts ===

With NFS (Network File System), you can share folders from your Maemo device or host PC over a network. Below are instructions on how to share a folder from a Maemo device using NFS.

==== Configuring NFS for Maemo device ====

You should follow these steps to share a folder from your Maemo device through NFS using Maemo PC Connectivity configuration widget:

* Run '''Settings - Control Panel - Connectivity - PC Connectivity Manager'''.
* Click on the '''Advanced''' button.
* Go to the '''Tool Manager''' tab.
* Select the '''NFS''' option. After that, change the options according to your needs, figure [[#figure-pc_connectivity_mpc_maemo_nm_nfs|6.1]].
* Click on the '''Exported Paths''' button. Then add the folders to be shared, figure [[#figure-pc_connectivity_mpc_maemo_nm_nfs_folders|6.2]].
* Click on the '''Allowed IPs''' button. Then add the host PC's IP addresses that are allowed to access the shared folders, figure [[#figure-pc_connectivity_mpc_maemo_nm_nfs_ips|6.3]].

&lt;div id=&quot;figure-pc_connectivity_mpc_maemo_nm_nfs&quot;&gt;
[[Image:mpc_maemo_nm_nfs.png|frame|center|alt=Screenshot of NFS options in connectivity manager|Figure 6.1: PC Connectivity Manager - NFS option]]
&lt;/div&gt;

&lt;div id=&quot;figure-pc_connectivity_mpc_maemo_nm_nfs_folders&quot;&gt;
[[Image:mpc_maemo_nm_nfs_folders.png|frame|center|alt=Screenshot of shared folders list in PC connctivity manager|Figure 6.2: PC Connectivity Manager - Shared folders list]]
&lt;/div&gt;

&lt;div id=&quot;figure-pc_connectivity_mpc_maemo_nm_nfs_ips&quot;&gt;
[[Image:mpc_maemo_nm_nfs_ips.png|frame|center|alt=Screenshot of allowed IP list in PC connectivity manager|Figure 6.3: PC Connectivity Manager - Allowed IPs list]]
&lt;/div&gt;

If you want, you can share a folder from your Maemo device manually. The following steps describe how to share the folder (&lt;code&gt;/home/user/MyDocs&lt;/code&gt;) from a Maemo device over a network by giving access to the host PC IP address (&lt;code&gt;192.168.2.14&lt;/code&gt;).

Connect to the Maemo device via &lt;code&gt;ssh&lt;/code&gt;. Edit the file &lt;code&gt;/etc/exports&lt;/code&gt; and add the folder you want to share and set the permissions of your shares (IP addresses).

 /home/user/MyDocs 192.168.2.14(rw,no_root_squash,async,no_subtree_check)

Next restart the User Mode NFS server:

 $ /etc/init.d/unfs3 restart

==== Configuring NFS for host PC ====

You must follows these steps to share a folder from a host PC over a network and giving access to it for Maemo device's IP address (&lt;code&gt;192.168.2.15&lt;/code&gt;):

{{ambox|text=NFS mounts do not work on Windows host PC.}}

Edit the file &lt;code&gt;/etc/exports&lt;/code&gt; and add the folder you want to share and set the permissions for your shares (IP addresses).

 /home/&amp;lt;host_pc_user&amp;gt; 192.168.2.15(rw,no_root_squash,async,no_subtree_check)

Next restart the User Mode NFS server:

 $ sudo /etc/init.d/unfs3 restart

==== Accessing NFS shares with Maemo device ====

Once you configured NFS on your Maemo device, you can access the shared folders from your host PC over the network. Below are instructions on how to access the shared NFS folders from the Linux host PC.

On the host PC, run the &lt;code&gt;showmount&lt;/code&gt; command to check if NFS sharing is working.

&lt;pre&gt;
$ showmount -e &lt;device_ip&gt;
Export list for 192.168.2.15:
/home/user/MyDocs 192.168.2.14
&lt;/pre&gt;

Next mount the exported Maemo device folder from the host PC.

&lt;pre&gt;
$ mkdir /tmp/MyDocs
$ sudo mount -t nfs &lt;device_ip&gt;:/home/user/MyDocs /tmp/MyDocs
&lt;/pre&gt;

You can unmount the same folder with the following command:

 $ sudo umount /tmp/MyDocs

==== Accessing NFS shares with Host PC ====

Once you have configured NFS on your host PC, you can access the shared folders from your Maemo device over a network. Below are instructions on how to access the shared NFS folders from your Maemo device.

On the Maemo device mount the shared host PC folder.

&lt;pre&gt;
$ mkdir ~/hostpc
$ mount -t nfs &lt;host_pc_ip&gt;:/home/&lt;host_pc_user&gt; ~/hostpc
&lt;/pre&gt;

You can unmount the same folder with the following command:

 $ sudo umount ~/hostpc

=== Using Samba mounts ===

Samba allows file sharing between computers over the network. With Samba, you can remotely access the Maemo device file system from the host PC and vice versa. Once you have shared your file system through Samba, it is available every time you reconnect to the network.

{{ambox|text=Samba does not work on Maemo [[Open development/Maemo roadmap/Fremantle|Fremantle]] devices such as [[Nokia N900|N900]] but works fine with Maemo [[Open development/Maemo roadmap/Diablo|Diablo]] devices such as [[Nokia N800|N800]] and [[Nokia N810|N810]].}}

==== Configuring Samba for Maemo device ====

To be able to share a folder from your Maemo device, you should follow these steps.

* Run '''Settings - Control Panel - Connectivity - PC Connectivity Manager'''.
* Click on the '''Advanced''' button.
* Go to the '''Tool Manager''' tab.
* Select the '''Samba''' option. After that, change the options according to your needs (Workgroup, User and Password), figure [[#figure-pc_connectivity_mpc_maemo_nm_samba|6.4]].
* Click on the '''Exported Paths''' button. Then add the folders to be shared, figure [[#figure-pc_connectivity_mpc_maemo_nm_samba_paths|6.5]].
* Click on the '''Apply''' button.

&lt;div id=&quot;figure-pc_connectivity_mpc_maemo_nm_samba&quot;&gt;
[[Image:mpc_maemo_nm_samba.png|frame|center|alt=Screenshot of Samba options in PC connectivity manager|Figure 6.4: PC Connectivity Manager - Samba options]]
&lt;/div&gt;

&lt;div id=&quot;figure-pc_connectivity_mpc_maemo_nm_samba_paths&quot;&gt;
[[Image:mpc_maemo_nm_samba_paths.png|frame|center|alt=Screenshot of Samba shared folders in PC connectivity manager|Figure 6.5: PC Connectivity Manager - Samba shared folders]]
&lt;/div&gt;

You can access your host PC shared folders from your Maemo device.

* Open the '''Utilities - File Manager''' application.
* Click on the '''Shared folders''' option, figure [[#figure-pc_connectivity_mpc_maemo_nm_samba_access|6.6]].
* Select the desired shared folder.

&lt;div id=&quot;figure-pc_connectivity_mpc_maemo_nm_samba_access&quot;&gt;
[[Image:mpc_maemo_nm_samba_access.png|frame|center|alt=Screenshot of shared folders dialog in PC connectivity manager|Figure 6.6: PC Connectivity Manager - Shared folders dialog]]
&lt;/div&gt;

==== Configuring Samba for Linux ====

To be able to share a folder from your Linux host PC, you should follow these steps:

* Open the File Manager ('''Nautilus''').
* Right click the folder you want to share, and select '''Sharing options'''.
* Type the '''Share name''' and check the '''Guest access''' option, figure [[#figure-pc_connectivity_mpc_linux_ubuntu_samba_share|6.7]].
* Click on the '''Create share''' button.

&lt;div id=&quot;figure-pc_connectivity_mpc_linux_ubuntu_samba_share&quot;&gt;
[[Image:mpc_linux_ubuntu_samba_share.png|frame|center|alt=Screenshot of folder sharing in Linux|Figure 6.7: Linux folder sharing]]
&lt;/div&gt;

If &lt;code&gt;Samba&lt;/code&gt; is not installed, Ubuntu requests the installation at this point. Otherwise, you can install &lt;code&gt;Samba&lt;/code&gt; manually.

 $ sudo apt-get install samba

To access a shared folder from the Maemo device using your Windows host PC.

* Open the file manager (Nautilus) and type: &lt;code&gt;smb://&amp;lt;maemo_device_ip&amp;gt;&lt;/code&gt;, figure [[#figure-pc_connectivity_mpc_linux_ubuntu_samba_access|6.8]].
* Press '''Enter'''.

&lt;div id=&quot;figure-pc_connectivity_mpc_linux_ubuntu_samba_access&quot;&gt;
[[Image:mpc_linux_ubuntu_samba_access.png|frame|center|alt=Screenshot of accessing shared folder with Final Manager|Figure 6.8: Accessing shared folder with file manager]]
&lt;/div&gt;

==== Configuring Samba for Windows ====

To be able to share a folder from your Windows host PC, you should follow these steps.

* Open the File Manager ('''Windows Explorer''').
* Right click the appropriate folder, and then click Sharing.
* In the folder's properties, click '''Share this folder'''. Use the default name for the share.
* Click the '''Permissions''' button to change permissions according to your needs.

To access a folder shared from your Maemo device, you need to do the following on your Windows host PC:

* Click '''Start''', and then click '''Run'''.
* Type your Maemo device IP address as follows: &lt;code&gt;&amp;lt;maemo_device_ip&amp;gt;&lt;/code&gt;.
* The shared folders of your Maemo device are shown.

==== Configuring Samba for Mac OS X ====

To be able to share a folder from your Mac OS X host PC, you should follow these steps:

* Go to '''System Preferences''' and click on the '''Sharing''' icon.
* Select the '''File Sharing''' service.
* Add a folder you want to share, and then set the permissions for it, figure [[#figure-pc_connectivity_mpc_mac_samba_share|6.9]].

&lt;div id=&quot;figure-pc_connectivity_mpc_mac_samba_share&quot;&gt;
[[Image:mpc_mac_samba_share.png|frame|center|alt=Screenshot of Mac OS X sharing dialog|Figure 6.9: Mac OS X Sharing dialog]]
&lt;/div&gt;

To access a folder shared from a Maemo device you need to do following on your Mac OS X host PC.

* Go to the File Manager application ('''Finder''').
* With the '''Finder''' open, click on the '''Go''' menu and select the '''Connect to Server''' option.
* Type your Maemo device IP address as follows: &lt;code&gt;smb://&amp;lt;maemo_device_ip&amp;gt;&lt;/code&gt;, figure [[#figure-pc_connectivity_mpc_mac_samba_access|6.10]].
* Click on the '''Connect''' button.

&lt;div id=&quot;figure-pc_connectivity_mpc_mac_samba_access&quot;&gt;
[[Image:mpc_mac_samba_access.png|frame|center|alt=Screenshot of Mac OS X ‘Connect to Server’ dialog|Figure 6.10: Mac OS X ‘connect to server’ dialog]]
&lt;/div&gt;

== File transfer ==

You have several different ways to transfer files between a Maemo device and a host PC using tools provided by Maemo PC Connectivity. First, you have to install Maemo PC Connectivity to the Maemo device and Host PC Connectivity to the host PC (Linux, Windows and Mac OS X). Below describes how to use specific file transfer tools available from the Maemo PC Connectivity product. To simplify the process, it has been assumed that you already have a working USB network configured between the Maemo device and host PC.

On the host PC, you must type the commands below using terminal on Linux and Mac OS and using Cygwin command shell on Windows.

=== Using SCP ===

With SCP (Secure Copy), you can securely transfer files between a local and a remote host or between two remote hosts, using the SSH protocol. Below describes in detail how to transfer files between the Maemo device and host PC using SCP.

You should follow the SCP command examples below to transfer files from a local to a remote host:

 $ scp &amp;lt;source_file&amp;gt; &amp;lt;user&amp;gt;@&amp;lt;host_name&amp;gt;:&amp;lt;path&amp;gt;/&amp;lt;target_file&amp;gt;

For example, if you want to transfer a file called &lt;code&gt;file.txt&lt;/code&gt; from a host PC to a Maemo device, you should use this command on the host PC:

 $ scp file.txt root@192.168.2.15:/etc/file.txt

You should follow this SCP command example to transfer files from a remote to a local host:

 $ scp &amp;lt;user&amp;gt;@&amp;lt;host_name&amp;gt;:&amp;lt;path&amp;gt;/&amp;lt;source_file&amp;gt; &amp;lt;target_file&amp;gt;

For example, if you want to transfer a file called &lt;code&gt;file.txt&lt;/code&gt; from a Maemo device to a host PC, you should use this command on host PC:

 $ scp root@192.168.2.15:/etc/file.txt file.txt

You can use &lt;code&gt;ssh-key-exchange&lt;/code&gt; as described in the SSH installation chapter to avoid SSH requiring a password every time.

=== Using SFTP ===

After Maemo PC Connectivity has been installed to the Maemo device, your Maemo device folders can be accessed from a host PC using the SFTP client. If you also installed Host PC Connectivity your host PC already has a GUI-based SFTP client, FileZilla, installed. Therefore to access your Maemo device folders from the host PC through SFTP, simply follow these steps.

Run the FileZilla client, figure [[#figure-pc_connectivity_mpc_sftp|6.11]].

* Linux - Ubuntu: '''Applications - Internet - FileZilla FTP Client'''.
* Windows: '''Start - Programs - FileZilla FTP Client - FileZilla'''.
* Mac OS: '''/Applications/FileZilla'''.

&lt;div id=&quot;figure-pc_connectivity_mpc_sftp&quot;&gt;
[[Image:mpc_sftp.png|frame|center|alt=Screenshot of FileZilla FTP client|Figure 6.11: FileZilla FTP client]]
&lt;/div&gt;

* Type the IP address of your Maemo device in the '''Host''' field.
* Type your '''Username''' and '''Password''' to set up the SSH connection on your Maemo device and type 22 (for SSH) in the '''Port''' field.
* Click on the '''Quickconnect''' button. Your Maemo device folders will appear in the '''Remote Site''' area.

=== Using Rsync ===

As Maemo PC Connectivity and Host PC Connectivity products installs Rsync for your environment, you can incrementally transfer files and directories between a Maemo device and a host PC. You can send and receive files in such a way that only the changed bytes inside files are copied between the Maemo device and the host PC. Rsync also removes files from target folders if those files were deleted from the source folders in order to keep both folders in sync. You can find usage examples and documentation about Rsync from the [http://rsync.samba.org/ Rsync web page].

Rsync is a much more powerful tool than standard SCP, SFTP or disk mounts to back up or synchronise large files (such as music, pictures, maps and movies) between a Maemo device and a host PC.

{{ambox|text=Rsync protocol is also used by several backup and file synchronisation services available from the Internet.}}

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo PC Connectivity Tutorial/Glossary</title>
    <id>3881</id>
    <revision>
      <id>39620</id>
      <timestamp>2010-10-20T08:03:05Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut maemo releases and link to [[codenames]]</comment>
      <text xml:space="preserve">; '''ABI'''
: Application Binary Interface, providing object code level compatibility.
; '''API'''
: Application Programming Interface, providing source code level compatibility.
; '''applet'''
: A small application that integrates to ''Hildon Desktop''.
; '''ARMEL'''
: A name that, for example, Debian uses for the little endian ARM EABI (''ABI'' for the ARM architecture).
; '''avahi'''
: is a free Zeroconf implementation that allows programs to publish and discover services and hosts running on a local network with no specific configuration.
; '''Bluetooth'''
: is an open wireless protocol for exchanging data over short distances (using short-length radio waves) from fixed and mobile devices, creating personal area networks (PANs).
; '''CIFS'''
: Common Internet File System (also known as Server Message Block, SMB) operates as an application-layer network protocol, mainly used to provide shared access to files, printers, serial ports, and miscellaneous communications between nodes on a network.
; '''CVS'''
: Concurrent Versions System.
; '''devkit'''
: The part of ''Maemo SDK'' that contains software development tools. Maemo SDK contains multiple devkits.
; '''DHCP'''
: Dynamic Host Configuration Protocol is a computer networking protocol used by hosts (DHCP clients) to retrieve IP address assignments and other configuration information.
; '''ESbox'''
: An Eclipse product implementing integration between Eclipse IDE and Maemo SDK.
; '''FHS'''
: Filesystem Hierarchy Standard defines the main directories and their contents in Linux operating systems.
; '''FUSE'''
: Filesystem in Userspace is a loadable kernel module for Unix-like computer operating systems that allows non-privileged users to create their own file systems without editing the kernel code.
; '''GDB'''
: GNU Project debugger.
; '''GUI'''
: Graphical User Interface.
; '''GTK'''
: Toolkit for creating graphical user interfaces with support for cross platform compatibility.
; '''Hildon'''
: An application framework used in the ''Maemo platform''. Developed by Nokia and based on GNOME/GTK+ technologies, currently in the process of becoming an upstream project in gnome.org.
; '''Hildon Desktop'''
: The main user interface component of Maemo Chinook, a rewrite of ''Maemo desktop''.
; '''ID'''
: Identifier.
; '''IDE'''
: Integrated Development Environment, such as Eclipse or QtCreator.
; '''IP'''
: Internet Protocol is a protocol used for communicating data across a packet-switched internetwork.
; '''ltrace'''
: A debugging utility for monitoring the library calls used by a program and all the signals it receives. It can also show system calls used by the program.
; '''Maemo'''
: A software platform for mobile devices developed by Nokia, based on GNU/Linux and GNOME/GTK+ technologies. It includes proprietary components to make it work on Nokia Maemo compatible devices.
; '''maemo.org'''
: A developer community website maintained by Nokia, and the main point of reference for open source and third-party developers in general.
; '''NFS'''
: Network File System is a network file system protocol allowing a user on a client computer to access files over a network in a manner similar to how local storage is accessed.
; '''OProfile'''
: A system-wide profiler for Linux systems.
; '''OS'''
: Operating System or sometimes Open Source.
; '''PluThon'''
: An Eclipse product implementing on-device Python development environment.
; '''rdesktop'''
: An open source client for Windows Terminal Services, capable of natively speaking RDP in order to present the user's Windows graphical desktop on another network computer.
; '''RDP'''
: Remote Desktop Protocol is a proprietary protocol developed by Microsoft, which provides a way to present the user's Windows graphical desktop on another network computer.
; '''RFB'''
: Remote FrameBuffer is a simple protocol for remote access to graphical user interfaces applicable to all windowing systems and applications, including X11, Windows and Macintosh. The protocol is used in VNC and its derivatives.
; '''rootstrap'''
: Part of the SDK that contains selected software components from rootfs. Rootstrap is the root file system of a target inside Scratchbox.
; '''rsync'''
: A software application which synchronizes files and directories from one location to another while minimizing data transfer using delta encoding when appropriate.
; '''Samba'''
: A free software re-implementation of SMB/CIFS networking protocol providing file and print services for various Microsoft Windows clients, it can integrate with a Windows Server domain.
; '''SBRSH'''
: Scratchbox Remote Shell remote command execution system similar to RSH and SSH and designed for slow devices, with Scratchbox's special requirements in mind.
; '''Scratchbox'''
: A cross-compilation toolkit designed to make embedded Linux application development easier and to cross-compile an entire Linux distribution.
; '''SCP'''
: Secure Copy is a means of securely transferring computer files between a local and a remote host or between two remote hosts. It is based on the SSH protocol.
; '''SDK'''
: Software Development Kit.
; '''SFTP'''
: SSH File Transfer Protocol (sometimes called Secure File Transfer Protocol) is a network protocol that provides file access, file transfer, and file management functionality over any reliable data stream.
; '''SMB'''
: Server Message Block (also known as Common Internet File System, CIFS) operates as an application-layer network protocol mainly used to provide shared access to files, printers, serial ports, and miscellaneous communications between nodes on a network.
; '''SSH'''
: Secure Shell network protocol that allows data to be exchanged using a secure channel between two networked devices.
; '''SSHFS'''
: SSH Filesystem or Secure SHell Filesystem is a file system client that may be used on operating systems for which an implementation of FUSE is available.
; '''toolchain'''
: Part of the SDK that contains ARM cross compilation tools, such as compiler and linker.
; '''UI'''
: User Interface.
; '''USB'''
: Universal Serial Bus is a specification to establish communication between devices and a host controller (usually personal computers).
; '''Valgrind'''
: A tool suite for debugging and profiling Linux programs.
; '''VNC'''
: Virtual Network Computing is a graphical desktop sharing system that uses the RFB protocol to remotely control another computer, transmitting the keyboard and mouse events from one computer to another and relaying the graphical screen updates back in the other direction, over a network.
; '''X11'''
: X Window System is a computer software system and network protocol that provides a GUI for networked computers.
; '''XML'''
: eXtensible Markup Language.
; '''ZeroConf'''
: Zero Configuration networking is a set of techniques that automatically creates a usable IP network without manual operator intervention or special configuration servers.

== Maemo Releases ==

{{main|Codenames}}

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo PC Connectivity Tutorial/Installation</title>
    <id>3882</id>
    <revision>
      <id>39976</id>
      <timestamp>2010-11-04T13:56:29Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>reformat images, wikify slightly, add links</comment>
      <text xml:space="preserve">The Maemo PC Connectivity product consists of two parts, Maemo PC Connectivity that installs the necessary services and configuration tools to the Maemo device, and the operating-system-specific Host PC Connectivity that installs the necessary clients to the host PC to be used to access Maemo PC Connectivity services from the Maemo device. The Maemo PC Connectivity product includes many standard services available for Linux PCs by default. Most of the services require some user expertise to be able to install and configure them properly. Maemo PC Connectivity aims to provide easy installation and configuration of these services for both the Maemo device and the host PC, and also support for other than just Linux host PC operating systems.

Maemo PC Connectivity fully supports the Maemo [[Open development/Maemo roadmap/Fremantle|Fremantle]] platform and devices (such as [[Nokia N900|N900]]) and the Maemo [[Open development/Maemo roadmap/Diablo|Diablo]] platform and devices (such as [[Nokia N800|N800]], [[Nokia N810|N810]] and [[Nokia N810WME|N810 WiMAX]]).

The host PC operating systems supported are Linuxes, Mac OS X Leopard and Snow Leopard, Windows XP SP3, Windows Vista SP2 and Windows 7. On Windows and Mac OS X PCs it is required to install special Linux porting framework before Host PC Connectivity installation in order to fully utilise Maemo PC Connectivity functionality.

; '''Cygwin'''
: is a Linux-like environment for Windows. With Cygwin &lt;ref name=&quot;r1&quot;&gt;Cygwin Project. http://cygwin.org/&lt;/ref&gt; installed, users have access to many standard UNIX utilities. They can be used from one of the provided shells (such as bash) or from the Windows Command Prompt. Additionally, programmers may write Win32 console or GUI applications that make use of the standard Microsoft Win32 API and/or the Cygwin API. As a result, it is possible to easily port many significant UNIX programs without the need for extensive changes to the source code. This includes configuring and building most of the available GNU software (including the development tools included with the Cygwin distribution).
; '''MacPorts'''
: is an easy-to-use system for compiling, installing, and upgrading either command-line, X11 or Aqua based open-source software on the Mac OS X operating system. MacPorts &lt;ref name=&quot;r2&quot;&gt;MacPorts Project. http://www.macports.org/&lt;/ref&gt; project provides the command-line driven Linux-like software packages, and through them easy access to thousands of ports that simplify the task of compiling and installing open-source software on your Mac.

Maemo PC Connectivity provides an easy-to-install meta package &lt;code&gt;maemo-pc-connectivity&lt;/code&gt; on the maemo.org [[extras|extras repository]], which installs the necessary components on the Maemo device, and separate operating-system-specific &lt;code&gt;host-pc-connectivity&lt;/code&gt; installation packages on maemo.org Garage, which install the components needed on the host PC.

== Installation To Maemo Device ==

Maemo PC Connectivity fully supports the Maemo Fremantle platform and devices (such as N900) and the Maemo Diablo platform and devices (like N800, N810 and N810 WiMAX).

=== One-Click-Install ===

The easiest way to install &lt;code&gt;maemo-pc-connectivity&lt;/code&gt; to the Maemo device is to use the one-click-install file.

To do this on Diablo, point the browser to this [http://pc-connectivity.garage.maemo.org/maemo-pc-connectivity-diablo.install address]. When the download dialog appears, choose the '''Open''' option. Now the Application Manager should open and install &lt;code&gt;maemo-pc-connectivity&lt;/code&gt; and all its dependencies.

If you use Fremantle, you should use this [http://pc-connectivity.garage.maemo.org/maemo-pc-connectivity-fremantle.install address] for one-click-installation with a Maemo device.

=== Installing with Application Manager ===

To install Maemo PC Connectivity on a Fremantle-based Maemo device, the Maemo extras-devel repository must be added. To do this, open the Application Manager, then Repository catalogs (see figure [[#figure-pc_connectivity_mpc_maemo_repository|2.3]]) and fill in the following fields:

* '''Catalogue Name:''' Maemo extras-devel
* '''Web Address:''' http://repository.maemo.org/extras-devel
* '''Distribution:''' fremantle
* '''Components:''' free non-free

If you use Diablo, replace the value of the '''Distribution''' field from &lt;code&gt;fremantle&lt;/code&gt; to &lt;code&gt;diablo&lt;/code&gt;.

&lt;div id=&quot;figure-pc_connectivity_mpc_maemo_repository&quot;&gt;
[[Image:mpc_maemo_repository.png|frame|center|alt=Screenshot of New catalogue dialog|Figure 2.1: New catalogue]]
&lt;/div&gt;

Next, install the [http://maemo.org/packages/view/maemo-pc-connectivity/ maemo-pc-connectivity package]. This package installs all the Maemo PC Connectivity components.

== Installing VNC for a Diablo Device ==

To get X11VNC working properly on a Diablo device, you must install a modified version of the Diablo platform &lt;code&gt;hildon-desktop&lt;/code&gt; package.

{{ambox|text=On Fremantle, VNC is already installed by &lt;code&gt;maemo-pc-connectivity&lt;/code&gt; package.}}

To install X11VNC to a Maemo Diablo device and update the modified &lt;code&gt;hildon-desktop&lt;/code&gt; package, follow these steps:

Add the line below to the &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; file on your Maemo device:

 deb http://pc-connectivity.garage.maemo.org/repository diablo free

Execute the following commands:

 $ apt-get update
 $ apt-get install x11vnc
 $ apt-get install hildon-desktop

== Installation To Host PC ==

The host PC operating systems supported are Linuxes, Mac OS X Leopard and Snow Leopard, Windows XP, Windows Vista and Windows 7. On Windows and Mac OS X PCs it is required to install Linux as a porting framework before Host PC Connectivity installation in order to fully utilise the Maemo PC Connectivity functionality.

=== Linux - Ubuntu ===

Ready-made installation packages currently available are for Ubuntu Intrepid systems.

You must follow these steps to install Maemo PC Connectivity on Ubuntu Linux:

Open Synaptic application, figure [[#figure-pc_connectivity_mpc_linux_synaptic_open|2.2]].

&lt;div id=&quot;figure-pc_connectivity_mpc_linux_synaptic_open&quot;&gt;
[[Image:mpc_linux_synaptic_open.png|frame|center|alt=Screenshot of Synaptic|'''Figure 2.2:''' Start Synaptic]]
&lt;/div&gt;

Under the '''Settings''' menu, select the '''Repository''' option, figure [[#figure-pc_connectivity_mpc_maemo_repository|2.3]].

&lt;div id=&quot;figure-pc_connectivity_mpc_maemo_repository&quot;&gt;
[[Image:mpc_linux_synaptic_repository.png|frame|center|alt=Screenshot of repositories list|Figure 2.3: Repositories]]
&lt;/div&gt;

Click on the '''Add''' button to add a new repository, figure [[#figure-pc_connectivity_mpc_linux_synaptic_repository_add|2.4]]. You must type in the following repository information:

 deb http://pc-connectivity.garage.maemo.org/repository intrepid main

&lt;div id=&quot;figure-pc_connectivity_mpc_linux_synaptic_repository_add&quot;&gt;
[[Image:mpc_linux_synaptic_repository_add.png|frame|center|alt=Screenshot of third-party software window in Synaptic|Figure 2.4: Third-Party Software]]
&lt;/div&gt;

Click on the '''Close''' button. To get all information about the packages available on the added repository, click on the '''Reload''' button, figure [[#figure-pc_connectivity_mpc_linux_synaptic_reload|2.5]].

&lt;div id=&quot;figure-pc_connectivity_mpc_linux_synaptic_reload&quot;&gt;
[[Image:mpc_linux_synaptic_reload.png|frame|center|alt=Screenshot of Synaptic reload dialog|Figure 2.5: Reload]]
&lt;/div&gt;

in the '''Quick search''' field, type &lt;code&gt;host-pc-connectivity&lt;/code&gt;. The &lt;code&gt;host-pc-connectivity&lt;/code&gt; package is displayed on the list, figure [[#figure-pc_connectivity_mpc_linux_synaptic_select_package|2.6]].

&lt;div id=&quot;figure-pc_connectivity_mpc_linux_synaptic_select_package&quot;&gt;
[[Image:mpc_linux_synaptic_select_package.png|frame|center|alt=Screenshot of Synaptic while marking for installation|Figure 2.6: Mark for Installation]]
&lt;/div&gt;

Right-click on the &lt;code&gt;host-pc-connectivity&lt;/code&gt; package. Select the '''Mark for installation''' option and click on the '''Apply''' button, figure [[#figure-pc_connectivity_mpc_linux_synaptic_install_package|2.7]].

&lt;div id=&quot;figure-pc_connectivity_mpc_linux_synaptic_install_package&quot;&gt;
[[Image:mpc_linux_synaptic_install_package.png|frame|center|alt=Screenshot of Synptic installing packages|Figure 2.7: Apply]]
&lt;/div&gt;

Follow the instructions on the screen. After that, Host PC Connectivity is installed on your host PC.

If you prefer, you can install Host PC Connectivity manually. First, you must add the following line to the &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; file:

 deb http://pc-connectivity.garage.maemo.org/repository intrepid main

Then you should run:

 $ apt-get update
 $ apt-get install host-pc-connectivity

== Linux - Fedora ==

It is necessary to add the Host PC Connectivity repository to the host PC repository list in order to install the &lt;code&gt;host-pc-connectivity&lt;/code&gt; package. As Fedora does not have any graphical application for adding a new repository, all processes, repository additions and &lt;code&gt;host-pc-connectivity&lt;/code&gt; installations are described through the command line.

To enable the Host PC Connectivity repository on Fedora Linux 11, you must add the following lines at the end of the &lt;code&gt;/etc/yum.conf&lt;/code&gt; file:

&lt;pre&gt;
[pc-connectivity]
name=PC-Connectivity Fedora $releasever - $basearch
failovermethod=priority
baseurl=http://pc-connectivity.garage.maemo.org/yum/base/$releasever/$basearch
enabled=1
gpgcheck=0
&lt;/pre&gt;

Then, to install the &lt;code&gt;host-pc-connectivity&lt;/code&gt; package, you must only execute:

 $ yum check-update
 $ sudo yum install host-pc-connectivity

=== Microsoft Windows ===

To install &lt;code&gt;PC-Connectivity.exe&lt;/code&gt; on a Windows XP, Windows Vista or Windows 7 system, you must install Cygwin before the Host PC Connectivity installation. You can download the Cygwin installation package from [http://www.cygwin.com/ here]. If you are using a Windows 7 or Vista version, install Cygwin 1.7 or later. For Windows XP, install Cygwin version 1.5 if you run into any problems with Cygwin 1.7.

{{ambox|text=Current Cygwin 1.7 releases have problems with X11 in the Maemo environment because they do not yet implement all needed X11 extensions (such as composite). If you plan to use a Windows environment with Maemo ESbox Eclipse IDE it is recommended to use Windows XP SP3 with Cygwin 1.5 because that combination has been tested to work. Cygwin 1.5 can be installed from this [http://www.cygwin.com/setup-legacy.exe Cygwin legacy product] link.}}

Remember to choose a installation path on your system without spaces during installation. Besides the default packages of Cygwin, the Maemo environment also requires the following optional packages to be installed:

* Admin/cygrunsrv
* Net/nfs-server
* Net/openssh
* Net/rsync
* X11/xinit
* X11/xdpyinfo

After Cygwin has been succesfully installed, download the latest &lt;code&gt;PC-Connectivity.exe&lt;/code&gt; installer from [https://garage.maemo.org/frs/?group_id=801 PC Connectivty Garage] project. Run the installation and follow the on-screen instructions given during installation.

The installer configures the SSHD. Install it as a service and start it. On Windows 7 and Vista, the Cygwin configuration script creates a new user with administrator privileges and with a random password for the SSHD service. This new user is used to run the SSHD service independently on a user who has been logged in to the Windows PC.

=== Mac OS X ===

To install Host PC Connectivity on Mac OS X Leopard or Snow Leopard, you must first switch on the Bluetooth network to be able to configure it for Maemo usage. To do this, follow these steps:

Open '''System Preferences''' under the '''Hardware''' category, and select the '''Bluetooth''' option, figure [[#figure-pc_connectivity_mpc_mac_isntalling_bt|2.8]].

&lt;div id=&quot;figure-pc_connectivity_mpc_mac_isntalling_bt&quot;&gt;
[[Image:mpc_mac_installing_bt.png|frame|center|alt=Screenshot of Bluetooth preferences|Figure 2.8: Bluetooth]]
&lt;/div&gt;

Make sure Bluetooth is '''On''' and '''Discoverable''', figure [[#figure-pc_connectivity_mpc_mac_installing_bt_discoverable|2.9]]. Then, click on the '''Advanced''' button.

&lt;div id=&quot;figure-pc_connectivity_mpc_mac_installing_bt_discoverable&quot;&gt;
[[Image:mpc_mac_installing_bt_discoverable.png|frame|center|alt=Screenshot of advanced Bluetooth preferences|Figure 2.9: Advanced]]
&lt;/div&gt;

Select the '''Share my Internet connection with other Bluetooth devices''' option, figure [[#figure-pc_connectivity_mpc_mac_installing_bt_internet|2.10]].

&lt;div id=&quot;figure-pc_connectivity_mpc_mac_installing_bt_internet&quot;&gt;
[[Image:mpc_mac_installing_bt_internet.png|frame|center|alt=Screenshot of Internet connection sharing with Bluetooth devices|Figure 2.10: Share my Internet connection with other Bluetooth devices]]
&lt;/div&gt;

Click the '''OK''' button to finalise the configuration.

After Bluetooth has been succesfully configured, download the latest &lt;code&gt;PC-Connectivity.dmg&lt;/code&gt; installer file from [https://garage.maemo.org/frs/?group_id=801 PC Connectivity Garage] project. Open the installer and follow the on-screen installation instructions.

To have an environment similar to Cygwin on Windows, you can install MacPorts on Mac OS. The MacPorts project is an open-source community initiative to design an easy-to-use system for compiling, installing, and upgrading either command-line, X11 or Aqua-based open-source software on the Mac OS X operating system. You can find the MacPorts documentation and installation packages from the [http://www.macports.org MacPorts] project site.

== References ==

&lt;references /&gt;

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo PC Connectivity Tutorial/Introduction</title>
    <id>3883</id>
    <revision>
      <id>39977</id>
      <timestamp>2010-11-04T14:10:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly,add links</comment>
      <text xml:space="preserve">The Maemo PC Connectivity project aims to make easier communication between a Maemo device and a host PC. For this, it provides a set of tools to simplify tasks like connection establishment, connection sharing, remote access, file sharing and transfer.

Maemo PC Connectivity fully supports the Maemo [[Open development/Maemo roadmap/Fremantle|Fremantle]] platform and devices (such as [[Nokia N900|N900]]) and the Maemo [[Open development/Maemo roadmap/Diablo|Diablo]] platform and devices (such as [[Nokia N800|N800]] and [[Nokia N810|N810]]).

&lt;div id=&quot;figure-n900&quot;&gt;
[[Image:Nokia_N900_48.png|frame|center|alt=Photo of N900 with open hardware keyboard|Figure 1.1: Maemo device - N900]]
&lt;/div&gt;

Maemo PC Connectivity target users are Maemo developers as they must use it to set up their Maemo development environment. The Maemo development environment consists of a Maemo device and host PC running Scratchbox and [[Documentation/Maemo 5 Final SDK|Maemo SDK]] (and possibly [[Documentation/Maemo Eclipse Tutorial/Introduction|Eclipse IDE]]) integrated together with services provided by Maemo PC Connectivity. Maemo PC Connectivity is targeted also for those non-developers who are able to use provided tools and services from command line interfaces, as all services available do not yet have a simple enough Graphical User Interface for end users.

Maemo PC Connectivity supports USB Networking, Bluetooth and WLAN connectitivy types between a Maemo device and a remote machine. USB Networking is recommended as, performance wise, it provides the best connectivity for networking. All services that Maemo PC Connectivity provides can be used with all connectivity types assuming that the host PC accessing services has the required clients available.

Some basic services provided by Maemo PC Connectivity and Host PC Connectivity to integrate a Maemo device and host PC include:

; '''Connection establishment'''
: By using Maemo PC Connectivity configuration applets, it is possible to easily establish a connection over USB, Bluetooth or WLAN, and to configure services between a Maemo device and a host PC.
; '''Connection sharing'''
: By using Maemo PC Connectivity applets and services installed to the Maemo device, it is possible to easily share connection over USB, Bluetooth or WLAN both ways, that is from a Maemo device to a host PC or from a host PC to a Maemo device.
; '''Secure Shell'''
: [[SSH]] allows data to be exchanged using a secure channel between two networked devices.
; '''Scratchbox Remote Shell'''
: SBRSH is a remote command execution system similar to rsh and ssh. It is designed with slow devices and Scratchbox's special requirements in mind.
; '''SSH File System'''
: SSHFS is a file system client based on the SSH protocol. It allows local mounting of a remote file system via SSH.
; '''Network File System'''
: NFS allows file system sharing over a network.
; '''Samba'''
: provides shared access to files, printers, serial ports, and miscellaneous communications between nodes on a network. Most usage of Samba involves host PCs running Microsoft Windows.
; '''Virtual Network Computing'''
: VNC is a graphical desktop sharing system that allows a host PC to remotely control a Maemo device.
; '''Rdesktop'''
: is a client for remotely accessing Windows desktops from a Maemo device.
; '''X Tunneling over SSH'''
: allows the forwarding of X11 desktop from a Maemo device to a host PC.
; '''SSH File Transfer Protocol'''
: SFTP is a network protocol that provides a secure file transfer over a network using SSH.
; '''Secure Copy'''
: SCP is another way to transfer files between a local and a remote host using SSH.
; '''Rsync'''
: is a utility that provides fast incremental file transfer, that is, it transfers only the bytes inside files that have been changed since the previous transfer.

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo PC Connectivity Tutorial/Network Sharing</title>
    <id>3884</id>
    <revision>
      <id>39978</id>
      <timestamp>2010-11-04T14:25:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">With Maemo PC Connectivity, you can easily set up an Internet connection and share it from a Maemo device to a host PC or from a host PC to a Maemo device. For sharing a connection from a Maemo device to a host PC, you should configure from which interface (WLAN, USB or Bluetooth) the Maemo device accesses the Internet and share it with other interfaces (WLAN, USB and/or Bluetooth).

== Sharing network from Maemo device ==

To share a network connection from a Maemo device to a host PC you need perform these steps on the Maemo device:

* Run '''Settings - Control Panel - Connectivity - PC Connectivity Manager'''.
* Click on the '''Advanced''' button.
* Select the '''Internet''' connection type, figure [[#figure-pc_connectivity_network_sharing_mpc_maemo_nm_internet_sharing|4.1]].
* With the '''Connect Using''' option, you can choose from which interface (WLAN, WLAN adhoc, USB or Bluetooth) the Maemo device accesses the network.
* With the '''Share internet connection with''' option, you can choose the interfaces (WLAN, USB and/or Bluetooth) with which to share the Internet.
* Click on the '''Apply''' button.

&lt;div id=&quot;figure-pc_connectivity_network_sharing_mpc_maemo_nm_internet_sharing&quot;&gt;
[[Image:mpc_maemo_nm_internet_sharing.png|frame|center|alt=Screenshot of Internet sharing dialog in PC connectivity manager|Figure 4.1: PC Connectivity Manager - Internet Sharing]]
&lt;/div&gt;

== Sharing network from Linux ==

After you have installed the &lt;code&gt;host-pc-connectivity&lt;/code&gt; package to your Linux host PC, you can automatically share an Internet network connection from your Linux host PC to a Maemo device.

If you want, you can configure sharing from your Linux host PC manually. Suppose you have an Internet connection through an ethernet cable interface, normally &lt;code&gt;eth0&lt;/code&gt;. You can share this network connection with any other interface (USB, Bluetooth and/or WLAN) by executing the following commands:

 $ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
 $ echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward

You can replace &lt;code&gt;eth0&lt;/code&gt; with any other interface (&lt;code&gt;usb0&lt;/code&gt;, &lt;code&gt;bnep0&lt;/code&gt; or &lt;code&gt;wlan0&lt;/code&gt;) that has a working Internet connection. To disable network sharing, you should execute the following commands:

 $ iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
 $ echo 0 &amp;gt; /proc/sys/net/ipv4/ip_forward

If you want to permanently share the network from your Linux host PC, you should edit the &lt;code&gt;/etc/network/interfaces&lt;/code&gt; file. For example, you can add the following lines to it to share the network every time the USB interface (&lt;code&gt;usb0&lt;/code&gt;) is up.

&lt;pre&gt;
mapping hotplug
script grep
map usb0

iface usb0 inet dhcp
# commands to enable internet sharing
up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
up echo 1 &gt; /proc/sys/net/ipv4/ip_forward
# commands to disable internet sharing
down iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
down echo 0 &gt; /proc/sys/net/ipv4/ip_forward
&lt;/pre&gt;

== Sharing network from Windows ==

To share the Internet network from your Windows host PC, you should follow these steps:

* Open the '''Start - Control Panel - Network and Internet Connections - Network Connections''' dialog.
* Right click the interface from which you access the Internet.
* Select the '''Properties''' option.
* Select the '''Advanced''' tab.
* Under '''Internet Connection Sharing''', select the '''Allow other network users to connect through this computer's Internet connection''' check-box, figure [[#figure-pc_connectivity_mpc_win_internet_sharing|4.2]].
* Click on the '''OK''' button.

&lt;div id=&quot;figure-pc_connectivity_mpc_win_internet_sharing&quot;&gt;
[[Image:mpc_win_internet_sharing.png|frame|center|alt=Screenshot of properties dialog|'''Figure 4.2:''' Local Area Connection Properties dialog]]
&lt;/div&gt;

== Sharing network from Mac OS X ==

To share the Internet network from your Mac OS X host PC, you should follow these steps:

* Go to '''System Preferences''' and click on the '''Sharing''' icon, figure [[#figure-pc_connectivity_mpc_mac_internet_sharing_preferences|4.3]].
* Select the '''Internet Sharing''' service.
* From '''Share your connection from''', select the interface that has an Internet connection. For example, ''AirPort'', figure [[#figure-pc_connectivity_mpc_mac_internet_sharing_properties|4.4]].
* From '''To computers using''', check the interfaces you want to share the Internet with. For example, '''Bluetooth PAN'''.
* Enable the '''Internet Sharing''' check-box.

&lt;div id=&quot;figure-pc_connectivity_mpc_mac_internet_sharing_preferences&quot;&gt;
[[Image:mpc_mac_internet_sharing_preferences.png|frame|center|alt=Screenshot of system preferences dialog|Figure 4.3: System Preferences dialog]]
&lt;/div&gt;

&lt;div id=&quot;figure-pc_connectivity_mpc_mac_internet_sharing_properties&quot;&gt;

[[Image:mpc_mac_internet_sharing_properties.png|frame|center|alt=Screenshot of network sharing dialog|'''Figure 4.4:''' Network Sharing dialog]]
&lt;/div&gt;

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo PC Connectivity Tutorial/Preface</title>
    <id>3885</id>
    <revision>
      <id>41786</id>
      <timestamp>2011-02-11T15:55:40Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify section headings</comment>
      <text xml:space="preserve">== Legal notice ==

Copyright (c) 2008-2010 Nokia Corporation

Nokia and Maemo are trademarks or registered trademarks of Nokia Corporation. Other product and company names mentioned herein may be trademarks or trade names of their respective owners.

== Disclaimer ==

The information in this document is provided &quot;as is,&quot; with no warranties whatsoever, including any warranty of merchantability, fitness for any particular purpose, or any warranty otherwise arising out of any proposal, specification, or sample. This document is provided for informational purposes only. Nokia Corporation disclaims all liability, including liability for infringement of any proprietary rights, relating to implementation of information presented in this document. Nokia Corporation does not warrant or represent that such use will not infringe such rights.

Nokia Corporation retains the right to make changes to this material at any time, without notice.

== Licenses ==

This document is licensed under the [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License, version 1.2].

Permission is granted to copy, distribute and/or modify documentation under the terms of the GNU Free Documentation License, version 1.2 or any later version published by the Free Software Foundation. Please refer to the copyright notice in each piece of documentation for Invariant Sections, Front-Cover Texts or Back-Cover Texts, if any, as defined in the License.

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo PC Connectivity Tutorial/Remote Access</title>
    <id>3886</id>
    <revision>
      <id>41434</id>
      <timestamp>2011-01-26T10:45:02Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut toplevel heading</comment>
      <text xml:space="preserve">Maemo PC Connectivity provides tools to access the desktop of a remote machine from a local machine over the network. That is, you can have the desktop GUI of your Maemo device displayed on your host PC and vice-versa. For that, you need to install Maemo PC Connectivity on the Maemo device and Host PC Connectivity on the host PC (Linux, Windows and Mac OS X). This chapter describes how to use these remote desktop tools. For simplicity, it is assumed that you already have a USB network working between the Maemo device and the host PC.

== Using X11VNC ==

With the X11VNC server, it is possible to share the GUI (Graphical User Interface) of your Maemo device with your host PC. That is, you can access the desktop of your Maemo device remotely from the host PC as you are physically using it. Below is described how to configure your Maemo device and host PC for X11VNC access.

=== Configuring X11VNC for Maemo ===

If you installed Maemo PC Connectivity, your Maemo device already has a X11VNC server installed.

You can configure the X11VNC server through the PC Connectivity Manager applet, as described below.

* Run '''Settings - Control Panel - Connectivity - PC Connectivity Manager'''.
* Click on the '''Advanced''' button.
* Select the '''Tool Manager''' tab.
* Now you can enable and disable the X11VNC server, change the UDP port and set the loop mode, figure [[#figure-pc_connectivity_mpc_maemo_nm_x11vnc|5.3]].
* Click on the '''Apply''' button.

&lt;div id=&quot;figure-pc_connectivity_mpc_maemo_nm_x11vnc&quot;&gt;
[[Image:mpc_maemo_nm_x11vnc.png|frame|center|alt=Screenshot of X11VNC|Figure 5.3: PC Connectivity Manager - X11VNC tool]]
&lt;/div&gt;

As the X11VNC server is not launched automatically when you turn the Maemo device on, you need to start it manually. You can use the PC Connectivity Manager wizard or start X11VNC as any third-party application from the installed application list.

=== Configuring X11VNC for Linux ===

If you installed Host PC Connectivity, your Linux host PC already has a VNC client called TightVNC Viewer. Otherwise, you should install the VNC client manually from [http://www.tightvnc.com/download.php TightVNC download] page.

 $ sudo apt-get install xtightvncviewer

You can access your Maemo device through the TightVNC Viewer application by giving the Maemo device IP address.

 $ xtightvncviewer 192.168.2.15

=== Configuring X11VNC for Windows ===

If you installed Host PC Connectivity, your Windows host PC already has a VNC client called TightVNC Viewer. Otherwise, you can download and install TightVNC manually from [http://www.tightvnc.com/download.php TightVNC download] page.

You can access your Maemo device through the TightVNC Viewer application by giving the Maemo device IP address.

* Run '''Start - Programs - TightVNC - TigthtVNC Viewer''', figure [[#figure-pc_connectivity_mpc_win_vnc_ip|5.4]].
* Type the IP address of your Maemo device and press the '''Connect''' button.

&lt;div id=&quot;figure-pc_connectivity_mpc_win_vnc_ip&quot;&gt;
[[Image:mpc_win_vnc_ip.png|frame|center|alt=Screenshot of TightVNC connection dialog|Figure 5.4: TightVNC connection dialog]]
&lt;/div&gt;

Now you should see the desktop of your Maemo device on the host PC screen, figure [[#figure-pc_connectivity_mpc_win_vnc_desktop|5.5]].

&lt;div id=&quot;figure-pc_connectivity_mpc_win_vnc_desktop&quot;&gt;
[[Image:mpc_win_vnc_desktop.png|frame|center|alt-Screenshot of TightVNC remote desktop|Figure 5.5: TightVNC remote desktop on Windows]]
&lt;/div&gt;

=== Configuring X11VNC for Mac OS X ===

If you installed Host PC Connectivity, your Windows host PC already has a VNC client called TightVNC Viewer. Otherwise, you can download and install TightVNC Java version manually from [http://www.tightvnc.com/download.php TightVNC download] page.

* Download the TightVNC Java version.
* Create a new folder and uncompress the zip file.

 $ mkdir ~/tightvnc
 $ mv tightvnc-1.3.10_javabin.tar.gz ~/tightvnc
 $ cd ~/tightvnc
 $ tar -zxvf tightvnc-1.3.10_javabin.tar.gz

You can access your Maemo device through the TightVNC Viewer application by giving the Maemo device IP address.

 $ java VncViewer HOST 192.168.2.15 PORT 5900

Now, you should see the desktop of your Maemo device on the host PC screen, figure [[#figure-pc_connectivity_mpc_mac_vnc_desktop|5.6]].

&lt;div id=&quot;figure-pc_connectivity_mpc_mac_vnc_desktop&quot;&gt;
[[Image:mpc_mac_vnc_desktop.png|frame|center|alt=Screenshot of TightVNC on Mac OS X|Figure 5.6: TightVNC remote desktop on Mac OS X]]
&lt;/div&gt;

=== Troubleshooting X11VNC ===

The current X11VNC server (0.9.3-maemo4) available for Maemo Diablo devices may crash if a key is pressed on the host PC keyboard and there is no mapping for that key on the Maemo device. A workaround is to manually add missing key mappings as described below.

You should install the &lt;code&gt;xev&lt;/code&gt; application to the host PC to trace the key codes, which crash the Maemo device.

Here is how to install &lt;code&gt;xev&lt;/code&gt; to the Linux host PC.

 $ sudo apt-get install x11-utils

Execute the &lt;code&gt;xev&lt;/code&gt; application on the host PC.

 $ xev

Type the key on the host PC that crashes the Maemo device. You get something like this on &lt;code&gt;xev&lt;/code&gt; output.

&lt;pre&gt;
KeyPress event, serial 31, synthetic NO, window 0x2000001,
root 0x3f, subw 0x0, time 2488134890, (-257,171), root:(294,445),
state 0x10, keycode 48 (keysym 0xfe51, dead_acute), same_screen YES,
XLookupString gives 2 bytes: (c2 b4) &quot;'&quot;
XmbLookupString gives 0 bytes:
XFilterEvent returns: True
&lt;/pre&gt;

Get the key code name. In this example, it is &lt;code&gt;&gt;dead_acute&lt;/code&gt;. On the Maemo Diablo device, map this key to '''None''' in the &lt;code&gt;/usr/share/applications/hildon/x11vnc.desktop&lt;/code&gt; file. Add the key mapping for '''dead_acute-None''' as described below.

 Exec=/usr/bin/x11vnc -display :0 -nowf -noxdamage -noscr -remap dead_acute-None,&lt;key_name_1&gt;-None,&lt;key_name_N&gt;-None

On your Maemo Diablo device, restart X11VNC server and check if the problem got fixed.

== Using Rdesktop ==

Rdesktop is a client to access remotely your Windows host PC from your Maemo device. Below are instructions on how to enable Rdesktop access for your Windows host PC and how to use the Rdesktop client on your Maemo device to access the desktop of your Windows host PC.

=== Configuring Rdesktop for Windows ===

You must enable the '''Remote Desktop''' feature on your Windows host PC so that you can control it remotely from your Maemo device. For that, you must be logged on as an administrator or as a member of the Administrators group for your Windows PC to enable the Remote Desktop feature.

To set up your Windows host PC for Rdesktop access:

* Click '''Start''', point to '''Settings''', click '''Control Panel''', and then double-click the '''System''' icon.
* On the '''Remote''' tab, select the '''Allow users to connect remotely to this computer''' check-box, figure [[#figure-pc_connectivity_mpc_win_rdesktop|5.7]].
* Ensure that you have the proper permissions to connect to your host PC remotely. For that, click the '''Select Remote Users...''' button to give access to your user account.
* Click the '''OK''' button.
* Leave your host PC running and connected to the network with Internet access.

&lt;div id=&quot;figure-pc_connectivity_mpc_win_rdesktop&quot;&gt;
[[Image:mpc_win_rdesktop.png|frame|center|alt=Screenshot of Windows Remote Access configration|Figure 5.7: Windows Remote Access configuration]]
&lt;/div&gt;

If you are running Windows XP Service Pack 2 and you enable Remote Desktop, Windows Firewall is automatically configured to allow Remote Desktop connections to your host PC. However, Remote Desktop does not work if you have Windows Firewall configured to allow no exceptions. To allow exceptions in Windows Firewall, open '''Security Center''' from the '''Control Panel''', click '''Windows Firewall''' and clear the check-box next to '''Don't allow exceptions'''.

=== Configuring Rdesktop for Maemo device ===

If you installed Maemo PC Connectivity, your Maemo device already has a Rdesktop client installed.

Open '''Utilities - X Terminal''' and execute Rdesktop application.

&lt;pre&gt;
$ rdesktop-cli -u &lt;windows_user&gt; -p &lt;windows_password&gt; &lt;windows_ip_address&gt;
&lt;/pre&gt;

You must pass your user name and password to access the given Windows host PC.

Now, you should see the desktop of your Windows host PC on your Maemo device screen.

== Using X Tunneling ==

With X Tunneling, it is possible to execute an application on your Maemo device and display its GUI on your host PC screen and vice versa using an SSH connection. Below are instructions on how to configure X11 tunneling between the Maemo device and Linux and Max OS X host PC.

You should follow these steps to display the GUI of your Maemo device on your host PC. These instructions work with Linux and Mac OS X host PCs.

On Linux and Mac OS X host PCs:

&lt;pre&gt;
$ Xephyr :3 -ac -dpi 96 -screen 800x480x16 -host-cursor &amp;
$ ssh -l &lt;maemo_device_user&gt; -R 6002:&lt;host_pc_ip&gt;:6003 &lt;maemo_device_ip&gt;
$ export DISPLAY=:2
$ /usr/lib/sapwood/sapwood-server &amp;
$ &lt;run_application&gt;
&lt;/pre&gt;

You should follow these steps to display the GUI of your Linux host PC on your Maemo device. These instructions work only with Linux host PCs.

On a Maemo device:

&lt;pre&gt;
$ ssh -l &lt;host_pc_user&gt; -R 6000:&lt;maemo_device_ip&gt;:6000 -X &lt;host_pc_ip&gt;
$ &lt;run_application&gt;
&lt;/pre&gt;

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo SDK Virtual Image Tutorial</title>
    <id>3887</id>
    <revision>
      <id>36646</id>
      <timestamp>2010-07-12T08:46:41Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_SDK_Virtual_Images]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK Virtual Images]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo SDK Virtual Image Tutorial/Bibliography</title>
    <id>3888</id>
    <revision>
      <id>36638</id>
      <timestamp>2010-07-12T08:20:38Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_SDK_Virtual_Images#Further_reading]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK Virtual Images#Further reading]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo SDK Virtual Image Tutorial/Glossary</title>
    <id>3889</id>
    <revision>
      <id>36640</id>
      <timestamp>2010-07-12T08:26:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_SDK_Virtual_Images#Further_reading]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK Virtual Images#Further reading]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo SDK Virtual Image Tutorial/Installation</title>
    <id>3890</id>
    <revision>
      <id>36642</id>
      <timestamp>2010-07-12T08:35:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_SDK_Virtual_Images#Maemo_SDK_Virtual_Image_Installation]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK Virtual Images#Maemo SDK Virtual Image Installation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo SDK Virtual Image Tutorial/Introduction</title>
    <id>3891</id>
    <revision>
      <id>36645</id>
      <timestamp>2010-07-12T08:45:14Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_SDK_Virtual_Images#Introduction]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK Virtual Images#Introduction]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo SDK Virtual Image Tutorial/Maemo SDK Virtual Image content</title>
    <id>3892</id>
    <revision>
      <id>36644</id>
      <timestamp>2010-07-12T08:43:29Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_SDK_Virtual_Images#Maemo_SDK_Virtual_Image_Content]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK Virtual Images#Maemo SDK Virtual Image Content]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Maemo SDK Virtual Image Tutorial/Summary</title>
    <id>3894</id>
    <revision>
      <id>36370</id>
      <timestamp>2010-06-29T09:42:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_SDK_Virtual_Images#Further reading]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK Virtual Images#Further reading]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Patching API docs</title>
    <id>4606</id>
    <revision>
      <id>41538</id>
      <timestamp>2011-02-01T09:57:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Open Maemo specific API */ do not suggest git diff to generate a patch</comment>
      <text xml:space="preserve">There are three possible places you should go to make a change to API documentation, depending on the package:

# Upstream API
# Open Maemo-specific API
# Closed Maemo-specific API

== Upstream API ==

''Example: [http://bugs.maemo.org/4716 Maemo bug #4716]''

* Open a bug in Maemo bugzilla for the API documentation issue
* Open a corresponding bug upstream for the issue, and add a pointer to the upstream bug to the maemo.org bug
* Get the source code of the upstream module from its source control system (in the case of gnome-vfs, that is [http://git.gnome.org/browse/gnome-vfs/ git])
* Patch the upstream source code to correct the documentation issue, and attach a patch (generated with &lt;pre&gt;git diff&lt;/pre&gt; or &lt;pre&gt;git format-patch&lt;/pre&gt;) to the upstream bug
* (optionally) prepare a patch for the Maemo package (typically in gitorious nowadays). Alternately, refer to the upstream commit.
* Assign bug to (name to be filled - this used to be Soumya) to update the API docs for the module once the fix has been integrated

== Open Maemo specific API ==

''Example: [http://bugs.maemo.org/show_bug.cgi?id=4337 Maemo bug #4337]''

* Open a bug in Maemo bugzilla for the API documentation issue
* Get the source code of the module from gitorious (in the case of libhildondesktop, that is [http://maemo.gitorious.org/fremantle-hildon-desktop/libhildondesktop the freemantle-hildon-desktop module])
* [[The Good Patch|Patch the source code]] to correct the documentation issue, and attach a patch (generated with &lt;pre&gt;git format-patch&lt;/pre&gt;) to the bug. See [https://bugs.maemo.org/show_bug.cgi?id=4337#c8 comment #8] of the example bug.
* Assign bug to the module owner to get the patch applied.
* Then assign the bug to (name needed - Soumya used to do this) to update the API docs for the module once the fix has been integrated

== Closed Maemo specific API ==

* Open a bug for the issue
* Propose an alternative text for the documentation as a comment in the bug, and assign it to the module owner. It's their responsibility after this to ensure your work is integrated.

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/Use case template</title>
    <id>3574</id>
    <revision>
      <id>34210</id>
      <timestamp>2010-05-11T08:06:12Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">&lt;noinclude&gt;'''On documenting use cases'''
* Use case pages are open. Anybody can fix/improve/extend/link them. Anybody can create new use cases.
* Use cases are grouped under the domain to which they are related, as follows: ''Maemo Developer Guide/&lt;Domain&gt;/&lt;Use Case&gt;''.
* Add use case name as the title of the page.
* Write the use case name as follows, with the verb in the -ing format &lt;Playing a video clip with your application&gt;
* Write the use case from the developer's point of view. That is, write ''how to complete this task/solve this problem'' instead of ''how to use this functionality''.
* Fill in all sections marked as ''mandatory''. Do not delete the headings of mandatory sections.
* If you cannot think of any information that should be added in an optional section, you can delete the heading of the section. 
&lt;/noinclude&gt;
* Add the following wikitext on the use case page to import this template: 
&lt;pre&gt;&lt;nowiki&gt;{{subst::Documentation/Use_Case_template}}&lt;/nowiki&gt;&lt;/pre&gt;

 ###This is a mandatory section.###
 Describe the objective of the developer. 
 Remember that one use case only answers one question, such as &quot;How to display a list of media files?&quot; 
 or &quot;How to play the media files selected by a device user?&quot;.
 In contrast, the API doc explains the functionality from a platform point of view. 

=== Prerequisites ===
 ###This is a mandatory section.###
 Briefly describe the previous steps and knowledge needed to get to this point.
 Do not state the obvious, such as &quot;SDK installed&quot; or &quot;C++ knowledge&quot;. 
 Link to any logical previous steps documented in the Developer Library or elsewhere.
 If there are no prerequisites for the use case, write &quot;There are no prerequisites for this use case.&quot; in this section.

=== Related APIs ===
 ###This is a mandatory section.###
 Present the set of APIs used in this use case and describe them in general. 
 (Related APIs can also come from other areas than the one under which the use case is placed.)
 Link to API docs.

=== Steps ===
 ###This is a mandatory section.###
 Provide numbered step-by-step instructions on how to complete the task.
 Include relevant code snippets and screenshots to help the reader understand the steps.

1. &lt;Do this-and-this&gt;

&lt;An example code snippet&gt;
 
2. &lt;Do that-and-that&gt;

&lt;An example code snippet&gt;
 
=== Examples ===
 ###This is a mandatory section.###
 Link to code examples at http://maemo.gitorious.org (default) and/or other relevant code repositories.
 Link to Maemo open source applications that provide good examples related to this use case.

=== Further actions ===
 ###This is an optional section.###
 Link to any logical next steps documented in the Developer Library or elsewhere.

=== Tips &amp; Tricks ===
 ###This is a mandatory section, but leave its contents blank.###
 In this section readers can share their own learnings &amp; interesting links.

* Your tip here.

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools</title>
    <id>2550</id>
    <revision>
      <id>41544</id>
      <timestamp>2011-02-01T11:36:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add information from [[Maemo developer tools]]</comment>
      <text xml:space="preserve">* Developer tools for Maemo 5 [[Documentation/devtools/maemo5]]
* Developer tools for Maemo 4 [http://maemo.org/development/tools/diablo http://maemo.org/development/tools/diablo]

== Other developer tools ==

===Maemo Virtual SDK image===

{{main|Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK Virtual Images}}
A preconfigured virtualized environment for testing, demonstrating and development.

===ESBox===

{{main|Documentation/Maemo Eclipse Tutorial}}

Use Eclipse to develop Maemo applications.

===Flasher tool instructions===

{{main|Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5}}

Using the flasher program to [[updating the firmware|update firmware]].

===Qemu===

[http://www.nongnu.org/qemu/ Qemu] is an open source fast and portable &quot;universal&quot; emulator (emulates x86, ppc, sparc, arm, mips, x86_64, ... on windows, linux, solaris, bsd and others). It can emulate full machines (like vmware does), and even can help to run arm binaries on linux/x86 without emulating a full machine (it can convert target machine instructions to native hosts instructions on the fly). Gui appz are still too device-dependant so we still can't run them this way. So this is a very good tool to test (non-gui) cross compiled softwares.

Hope at some time somes (maybe Nokia) will contribute this project so it can emulate a 770 machine (I mean, the cpu emulator is already done, and the network layer is functional, but we need at least an emulation of the graphic card and the conversion from mouse input to touchscreen in order to test graphical applications on emulator, and of course the specifics of 770 cpu wiring) (How cool it'd be to boot straight the 770's native rootfs on host devlopment desktop !)

Why graphics card and touchscreen emulation is needed? Only games and multimedia use HW pixel doubling, everything else goes through X server, for which Xephyr can already be used with Qemu. Touchscreen can be emulated by using a laptop with touchscreen. DSP is used for sound output on the device, but for normal applications in the SDK that could probably be handled just by using x86 specific Gstreamer plugins and ESD.

The official Qemu releases starting from 0.8.0 supports also systen mode emulation for ARM Integrator CP. Before 0.8.0 everything else than CPU operations were given to the host OS (Linux) kernel.

===DDD===
The [http://www.gnu.org/software/ddd/ GNU graphical debugger] can be built fairly easily in a [[Open development/Maemo roadmap/Diablo|Diablo]] 4.1 Scratchbox:
First get all the sources you'll need. This should be done outside the scratchbox but to a location the scratchbox has access to.
  apt-get source x11proto-print-dev
  apt-get source libxp-dev
  apt-get source lesstif2-dev
  apt-get source ddd

Then, in the scratchbox porting area:

 cd x11proto-print-1.0.3.xsf1
 fakeroot ./debian/rules build binary
 dpkg -i ../x11proto-print-dev_1.0.3.xsf1-1_all.deb

 cd libxp-1.0.0.xsf1
 fakeroot ./debian/rules build binary
 dpkg -i ../libxp6_1.0.0.xsf1-1_i386.deb
 dpkg -i ../libxp-dev_1.0.0.xsf1-1_i386.deb

 cd lesstif2-0.95.0
 fakeroot ./debian/rules build binary
 dpkg -i ../lesstif2-dev_0.95.0-2.1_i386.deb

 cd ddd-3.3.11
 fakeroot ./debian/rules build binary
 dpkg -i ../ddd_3.3.11-1_i386.deb

When running ddd, use:
 run-standalone.sh ddd -display :0 &lt;app to be debugged&gt;
and then use Program-&gt;run to append '''--display :2''' to get the app to appear in Xephyr.

Tested on scratchbox1 under Diablo SDK4.1, target X86 by [[User:lbt|lbt]] 14:41, 1 July 2008 (UTC)

[[Category:Devtools]]
[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5</title>
    <id>2551</id>
    <revision>
      <id>47466</id>
      <timestamp>2012-05-10T12:30:51Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/92.255.66.183|92.255.66.183]] ([[User talk:92.255.66.183|Talk]]); changed back to last version by [[User:Andre|Andre]]</comment>
      <text xml:space="preserve">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.

Installation instructions are available [[#Installation|below]].

== Categories ==

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.

=== Code Analyser ===

{| class=&quot;wikitable&quot;
|+ Code analysis tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/doxygen|doxygen]] || a source code documentation generator tool
|-
| [[Documentation/devtools/maemo5/gtk-doc|gtk-doc]] || an API documentation generator
|}

=== Debugging ===

{| class=&quot;wikitable&quot;
|+ Debugging tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/crash-reporter|crash-reporter]] || user-friendly graphical user interface for [[Documentation/devtools/maemo5/sp-rich-core|sp-rich-core]]
|-
| [[Documentation/devtools/maemo5/gdb|gdb]] || GDB is the GNU debugger
|-
| [[Documentation/devtools/maemo5/functracer|functracer]] || an allocation backtrace tool
|-
| [[Documentation/devtools/maemo5/functracer-postproc|functracer-postproc]] || a post-processing tool for functracer output data
|-
| [[Documentation/devtools/maemo5/latrace|latrace]] || display a program's dynamic library calls
|-
| [[Documentation/devtools/maemo5/ltrace|ltrace]] || a library call tracer
|-
| [[Documentation/devtools/maemo5/maemo-debug-scripts|maemo-debug-scripts]] || a set of scripts to help with debugging tasks
|-
| [[Documentation/devtools/maemo5/sp-error-visualizer|sp-error-visualizer]] || displays log messages as banners
|-
| [[Documentation/devtools/maemo5/sp-rich-core|sp-rich-core]] || a core dump data saver
|-
| [[Documentation/devtools/maemo5/sp-rich-core-postproc|sp-rich-core-postproc]] || contains rich-core-extract to examine *.rcore.lzo files created by sp-rich-core
|-
| [[Documentation/devtools/maemo5/sp-response-time|sp-response-time]] || a library for monitoring UI response times
|-
| [[Documentation/devtools/maemo5/sp-startup-time|sp-startup-time]] || a library for calculating application startup times
|-
| [[Documentation/devtools/maemo5/strace|strace]] || a system call tracer
|-
| [[Documentation/devtools/maemo5/syslog|syslog]] || a log message collecting service
|-
| [[Documentation/devtools/maemo5/valgrind|valgrind]] || a suite of tools for debugging and profiling programs
|-
| [[Documentation/devtools/maemo5/x11-utils|x11-utils]] || a collection of X Window System debugging tools; xev, xwininfo, xprop, xlsatoms and xlsclients.
|}

=== Miscellaneous ===

{| class=&quot;wikitable&quot;
|+ Miscellaneous tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/less|less]] || a text file viewer/pager
|-
| [[Documentation/devtools/maemo5/osso-xterm|osso-xterm]] || a terminal emulator
|-
| [[Documentation/devtools/maemo5/man-db|man-db]] || manual page infrastructure
|-
| [[Documentation/devtools/maemo5/screen|screen]] || provides access to detachable console sessions
|}

=== Editors ===

{| class=&quot;wikitable&quot;
|+ Text editors
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/nano|nano]] || a friendly text editor
|-
| [[Documentation/devtools/maemo5/vi|vi]] || a text editor
|}

=== Graphics ===

{| class=&quot;wikitable&quot;
|+ Graphics tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/screenshot-tool|screenshot-tool]] || a command line utility to take screenshots
|-
| [[Documentation/devtools/maemo5/xresponse|xresponse]] || measures the time taken to update the screen after user action
|-
| [[Documentation/devtools/maemo5/xresponse-visualize|xresponse-visualize]] || scripts for visualizing xresponse logs
|}

=== Networking ===

{| class=&quot;wikitable&quot;
|+ Networking tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/iputils|iputils]] || a collection of TCP/IP related utilities
|-
| [[Documentation/devtools/maemo5/netcat|netcat]] || a utility to read and write data across network connections
|-
| [[Documentation/devtools/maemo5/tcpdump|tcpdump]] || a network traffic capturing utility
|-
| [[Documentation/devtools/maemo5/traceroute|traceroute]] || print the route packets take to a network host
|-
| [[Documentation/devtools/maemo5/wget|wget]] || a utility to non-interactively download files from the Web
|}

=== Performance ===

{| class=&quot;wikitable&quot;
|+ Performane analysis tools
|-
! Tool !! Description
|-
|[[Documentation/devtools/maemo5/oprofile|oprofile]] || a low overhead system wide profiler
|-
| [[Documentation/devtools/maemo5/oprofileui|oprofileui]] || a user interface to oprofile
|-
| [[Documentation/devtools/maemo5/sp-startup-time|sp-startup-time]] || a library for calculating application startup times
|-
| [[Documentation/devtools/maemo5/valgrind|valgrind]] || a suite of tools for debugging and profiling programs
|-
| [[Documentation/devtools/maemo5/xresponse|xresponse]] || measures the time taken to update the screen after user action
|-
| [[Documentation/devtools/maemo5/xresponse-visualize|xresponse-visualize]] || scripts for visualizing xresponse logs
|}

=== Resource Usage ===

{| class=&quot;wikitable&quot;
|+ Resource usage monitoring tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/functracer|functracer]] || an allocation backtrace tool
|-
| [[Documentation/devtools/maemo5/functracer-postproc|functracer-postproc]] || a post-processing tool for functracer output data
|-
| [[Documentation/devtools/maemo5/htop|htop]] || an interactive process viewer
|-
| [[Documentation/devtools/maemo5/sp-endurance|sp-endurance]] || tools to collect system endurance related information
|-
| [[Documentation/devtools/maemo5/sp-endurance-postproc|sp-endurance-postproc]] || postprocessing scripts to parse and generate a report from endurance measurement data
|-
| [[Documentation/devtools/maemo5/sp-memusage|sp-memusage]] || a collection of memory usage monitoring tools and scripts
|-
| [[Documentation/devtools/maemo5/sp-smaps-measure|sp-smaps-measure]] || utilities for taking snapshots of smaps memory information
|-
| [[Documentation/devtools/maemo5/sp-smaps-visualize|sp-smaps-visualize]] || utilities for analyzing smaps memory information
|-
| [[Documentation/devtools/maemo5/sysstat|sysstat]] || tools for collecting and reporting system activity information
|-
| [[Documentation/devtools/maemo5/valgrind|valgrind]] || a suite of tools for debugging and profiling programs
|-
| [[Documentation/devtools/maemo5/xrestop|xrestop]] || shows X clients' X resource usage
|}

=== Test Automation ===

{| class=&quot;wikitable&quot;
|+ Test automation tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/check|check]] || a unit test framework for C
|-
| [[Documentation/devtools/maemo5/sp-stress|sp-stress]] || tools to create artificial system load
|-
| [[Documentation/devtools/maemo5/xnee|xnee]] || automate user actions under X11
|-
| [[Documentation/devtools/maemo5/xresponse|xresponse]] || measures the time taken to update the screen after user action
|}

=== Wireless Tools ===

{| class=&quot;wikitable&quot;
|+ Wireless networking tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/bluez-hcidump|bluez-hcidump]] || a tool to monitor Bluetooth activity
|-
| [[Documentation/devtools/maemo5/wireless-tools|wireless-tools]] || tools for manipulating Linux Wireless Extensions
|}

== Installation ==

These tools can be installed in the device by activating the Fremantle tools repository in the Application manager. The tools are command line utilities, so they will not add applications to the application manager list of downloadable applications. This also means that the tools need to be installed from the X terminal [[Root access|as root]]. Developers can also install them in Scratchbox using the command line interface.

To activate the tools repository with the Application Manager, 
&lt;s&gt;http://mg.pov.lt/770/tools-repository.install ('''does not work in PR 1.2 - please fix''')&lt;/s&gt; [http://maemo.cloud-7.de/repositories.install open this single-click_2_install-3 file], or manually create a new catalogue like this:

# Navigate to the application menu in the Application Manager (tap the title bar)
# Select ‘Application catalogs’
# Select ‘New’
# Enter a catalog name of ‘fremantle tools’
# Enter a web address of http://repository.maemo.org
# Enter a distribution of ‘fremantle/tools’
# Enter components of ‘free non-free’
# Make sure that ‘Disabled:’ is left unchecked
# Select ‘Save’

If you prefer to edit configuration files yourself instead of using the Application manager, add these lines to your &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;

&lt;pre&gt;
# fremantle tools
deb http://repository.maemo.org fremantle/tools free non-free
# fremantle tools sources
deb-src http://repository.maemo.org fremantle/tools free non-free
&lt;/pre&gt;


To install a binary package in Scratchbox:                 

&lt;pre&gt;
$ fakeroot apt-get install &amp;lt;bin pkg name&amp;gt;
&lt;/pre&gt;

To install a binary package to the device ([[Root access|as root]]):

&lt;pre&gt;
$ apt-get install &amp;lt;bin pkg name&amp;gt;   
&lt;/pre&gt;

To install a source package in Scratchbox or to the device:

&lt;pre&gt;
$ apt-get source &amp;lt;src pkg name&amp;gt;                        
&lt;/pre&gt;

[[Category:Devtools]]
[[Category:Fremantle]]
[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5</title>
    <id>2551</id>
    <revision>
      <id>47466</id>
      <timestamp>2012-05-10T12:30:51Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/92.255.66.183|92.255.66.183]] ([[User talk:92.255.66.183|Talk]]); changed back to last version by [[User:Andre|Andre]]</comment>
      <text xml:space="preserve">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.

Installation instructions are available [[#Installation|below]].

== Categories ==

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.

=== Code Analyser ===

{| class=&quot;wikitable&quot;
|+ Code analysis tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/doxygen|doxygen]] || a source code documentation generator tool
|-
| [[Documentation/devtools/maemo5/gtk-doc|gtk-doc]] || an API documentation generator
|}

=== Debugging ===

{| class=&quot;wikitable&quot;
|+ Debugging tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/crash-reporter|crash-reporter]] || user-friendly graphical user interface for [[Documentation/devtools/maemo5/sp-rich-core|sp-rich-core]]
|-
| [[Documentation/devtools/maemo5/gdb|gdb]] || GDB is the GNU debugger
|-
| [[Documentation/devtools/maemo5/functracer|functracer]] || an allocation backtrace tool
|-
| [[Documentation/devtools/maemo5/functracer-postproc|functracer-postproc]] || a post-processing tool for functracer output data
|-
| [[Documentation/devtools/maemo5/latrace|latrace]] || display a program's dynamic library calls
|-
| [[Documentation/devtools/maemo5/ltrace|ltrace]] || a library call tracer
|-
| [[Documentation/devtools/maemo5/maemo-debug-scripts|maemo-debug-scripts]] || a set of scripts to help with debugging tasks
|-
| [[Documentation/devtools/maemo5/sp-error-visualizer|sp-error-visualizer]] || displays log messages as banners
|-
| [[Documentation/devtools/maemo5/sp-rich-core|sp-rich-core]] || a core dump data saver
|-
| [[Documentation/devtools/maemo5/sp-rich-core-postproc|sp-rich-core-postproc]] || contains rich-core-extract to examine *.rcore.lzo files created by sp-rich-core
|-
| [[Documentation/devtools/maemo5/sp-response-time|sp-response-time]] || a library for monitoring UI response times
|-
| [[Documentation/devtools/maemo5/sp-startup-time|sp-startup-time]] || a library for calculating application startup times
|-
| [[Documentation/devtools/maemo5/strace|strace]] || a system call tracer
|-
| [[Documentation/devtools/maemo5/syslog|syslog]] || a log message collecting service
|-
| [[Documentation/devtools/maemo5/valgrind|valgrind]] || a suite of tools for debugging and profiling programs
|-
| [[Documentation/devtools/maemo5/x11-utils|x11-utils]] || a collection of X Window System debugging tools; xev, xwininfo, xprop, xlsatoms and xlsclients.
|}

=== Miscellaneous ===

{| class=&quot;wikitable&quot;
|+ Miscellaneous tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/less|less]] || a text file viewer/pager
|-
| [[Documentation/devtools/maemo5/osso-xterm|osso-xterm]] || a terminal emulator
|-
| [[Documentation/devtools/maemo5/man-db|man-db]] || manual page infrastructure
|-
| [[Documentation/devtools/maemo5/screen|screen]] || provides access to detachable console sessions
|}

=== Editors ===

{| class=&quot;wikitable&quot;
|+ Text editors
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/nano|nano]] || a friendly text editor
|-
| [[Documentation/devtools/maemo5/vi|vi]] || a text editor
|}

=== Graphics ===

{| class=&quot;wikitable&quot;
|+ Graphics tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/screenshot-tool|screenshot-tool]] || a command line utility to take screenshots
|-
| [[Documentation/devtools/maemo5/xresponse|xresponse]] || measures the time taken to update the screen after user action
|-
| [[Documentation/devtools/maemo5/xresponse-visualize|xresponse-visualize]] || scripts for visualizing xresponse logs
|}

=== Networking ===

{| class=&quot;wikitable&quot;
|+ Networking tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/iputils|iputils]] || a collection of TCP/IP related utilities
|-
| [[Documentation/devtools/maemo5/netcat|netcat]] || a utility to read and write data across network connections
|-
| [[Documentation/devtools/maemo5/tcpdump|tcpdump]] || a network traffic capturing utility
|-
| [[Documentation/devtools/maemo5/traceroute|traceroute]] || print the route packets take to a network host
|-
| [[Documentation/devtools/maemo5/wget|wget]] || a utility to non-interactively download files from the Web
|}

=== Performance ===

{| class=&quot;wikitable&quot;
|+ Performane analysis tools
|-
! Tool !! Description
|-
|[[Documentation/devtools/maemo5/oprofile|oprofile]] || a low overhead system wide profiler
|-
| [[Documentation/devtools/maemo5/oprofileui|oprofileui]] || a user interface to oprofile
|-
| [[Documentation/devtools/maemo5/sp-startup-time|sp-startup-time]] || a library for calculating application startup times
|-
| [[Documentation/devtools/maemo5/valgrind|valgrind]] || a suite of tools for debugging and profiling programs
|-
| [[Documentation/devtools/maemo5/xresponse|xresponse]] || measures the time taken to update the screen after user action
|-
| [[Documentation/devtools/maemo5/xresponse-visualize|xresponse-visualize]] || scripts for visualizing xresponse logs
|}

=== Resource Usage ===

{| class=&quot;wikitable&quot;
|+ Resource usage monitoring tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/functracer|functracer]] || an allocation backtrace tool
|-
| [[Documentation/devtools/maemo5/functracer-postproc|functracer-postproc]] || a post-processing tool for functracer output data
|-
| [[Documentation/devtools/maemo5/htop|htop]] || an interactive process viewer
|-
| [[Documentation/devtools/maemo5/sp-endurance|sp-endurance]] || tools to collect system endurance related information
|-
| [[Documentation/devtools/maemo5/sp-endurance-postproc|sp-endurance-postproc]] || postprocessing scripts to parse and generate a report from endurance measurement data
|-
| [[Documentation/devtools/maemo5/sp-memusage|sp-memusage]] || a collection of memory usage monitoring tools and scripts
|-
| [[Documentation/devtools/maemo5/sp-smaps-measure|sp-smaps-measure]] || utilities for taking snapshots of smaps memory information
|-
| [[Documentation/devtools/maemo5/sp-smaps-visualize|sp-smaps-visualize]] || utilities for analyzing smaps memory information
|-
| [[Documentation/devtools/maemo5/sysstat|sysstat]] || tools for collecting and reporting system activity information
|-
| [[Documentation/devtools/maemo5/valgrind|valgrind]] || a suite of tools for debugging and profiling programs
|-
| [[Documentation/devtools/maemo5/xrestop|xrestop]] || shows X clients' X resource usage
|}

=== Test Automation ===

{| class=&quot;wikitable&quot;
|+ Test automation tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/check|check]] || a unit test framework for C
|-
| [[Documentation/devtools/maemo5/sp-stress|sp-stress]] || tools to create artificial system load
|-
| [[Documentation/devtools/maemo5/xnee|xnee]] || automate user actions under X11
|-
| [[Documentation/devtools/maemo5/xresponse|xresponse]] || measures the time taken to update the screen after user action
|}

=== Wireless Tools ===

{| class=&quot;wikitable&quot;
|+ Wireless networking tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/bluez-hcidump|bluez-hcidump]] || a tool to monitor Bluetooth activity
|-
| [[Documentation/devtools/maemo5/wireless-tools|wireless-tools]] || tools for manipulating Linux Wireless Extensions
|}

== Installation ==

These tools can be installed in the device by activating the Fremantle tools repository in the Application manager. The tools are command line utilities, so they will not add applications to the application manager list of downloadable applications. This also means that the tools need to be installed from the X terminal [[Root access|as root]]. Developers can also install them in Scratchbox using the command line interface.

To activate the tools repository with the Application Manager, 
&lt;s&gt;http://mg.pov.lt/770/tools-repository.install ('''does not work in PR 1.2 - please fix''')&lt;/s&gt; [http://maemo.cloud-7.de/repositories.install open this single-click_2_install-3 file], or manually create a new catalogue like this:

# Navigate to the application menu in the Application Manager (tap the title bar)
# Select ‘Application catalogs’
# Select ‘New’
# Enter a catalog name of ‘fremantle tools’
# Enter a web address of http://repository.maemo.org
# Enter a distribution of ‘fremantle/tools’
# Enter components of ‘free non-free’
# Make sure that ‘Disabled:’ is left unchecked
# Select ‘Save’

If you prefer to edit configuration files yourself instead of using the Application manager, add these lines to your &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;

&lt;pre&gt;
# fremantle tools
deb http://repository.maemo.org fremantle/tools free non-free
# fremantle tools sources
deb-src http://repository.maemo.org fremantle/tools free non-free
&lt;/pre&gt;


To install a binary package in Scratchbox:                 

&lt;pre&gt;
$ fakeroot apt-get install &amp;lt;bin pkg name&amp;gt;
&lt;/pre&gt;

To install a binary package to the device ([[Root access|as root]]):

&lt;pre&gt;
$ apt-get install &amp;lt;bin pkg name&amp;gt;   
&lt;/pre&gt;

To install a source package in Scratchbox or to the device:

&lt;pre&gt;
$ apt-get source &amp;lt;src pkg name&amp;gt;                        
&lt;/pre&gt;

[[Category:Devtools]]
[[Category:Fremantle]]
[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5</title>
    <id>2551</id>
    <revision>
      <id>47466</id>
      <timestamp>2012-05-10T12:30:51Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/92.255.66.183|92.255.66.183]] ([[User talk:92.255.66.183|Talk]]); changed back to last version by [[User:Andre|Andre]]</comment>
      <text xml:space="preserve">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.

Installation instructions are available [[#Installation|below]].

== Categories ==

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.

=== Code Analyser ===

{| class=&quot;wikitable&quot;
|+ Code analysis tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/doxygen|doxygen]] || a source code documentation generator tool
|-
| [[Documentation/devtools/maemo5/gtk-doc|gtk-doc]] || an API documentation generator
|}

=== Debugging ===

{| class=&quot;wikitable&quot;
|+ Debugging tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/crash-reporter|crash-reporter]] || user-friendly graphical user interface for [[Documentation/devtools/maemo5/sp-rich-core|sp-rich-core]]
|-
| [[Documentation/devtools/maemo5/gdb|gdb]] || GDB is the GNU debugger
|-
| [[Documentation/devtools/maemo5/functracer|functracer]] || an allocation backtrace tool
|-
| [[Documentation/devtools/maemo5/functracer-postproc|functracer-postproc]] || a post-processing tool for functracer output data
|-
| [[Documentation/devtools/maemo5/latrace|latrace]] || display a program's dynamic library calls
|-
| [[Documentation/devtools/maemo5/ltrace|ltrace]] || a library call tracer
|-
| [[Documentation/devtools/maemo5/maemo-debug-scripts|maemo-debug-scripts]] || a set of scripts to help with debugging tasks
|-
| [[Documentation/devtools/maemo5/sp-error-visualizer|sp-error-visualizer]] || displays log messages as banners
|-
| [[Documentation/devtools/maemo5/sp-rich-core|sp-rich-core]] || a core dump data saver
|-
| [[Documentation/devtools/maemo5/sp-rich-core-postproc|sp-rich-core-postproc]] || contains rich-core-extract to examine *.rcore.lzo files created by sp-rich-core
|-
| [[Documentation/devtools/maemo5/sp-response-time|sp-response-time]] || a library for monitoring UI response times
|-
| [[Documentation/devtools/maemo5/sp-startup-time|sp-startup-time]] || a library for calculating application startup times
|-
| [[Documentation/devtools/maemo5/strace|strace]] || a system call tracer
|-
| [[Documentation/devtools/maemo5/syslog|syslog]] || a log message collecting service
|-
| [[Documentation/devtools/maemo5/valgrind|valgrind]] || a suite of tools for debugging and profiling programs
|-
| [[Documentation/devtools/maemo5/x11-utils|x11-utils]] || a collection of X Window System debugging tools; xev, xwininfo, xprop, xlsatoms and xlsclients.
|}

=== Miscellaneous ===

{| class=&quot;wikitable&quot;
|+ Miscellaneous tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/less|less]] || a text file viewer/pager
|-
| [[Documentation/devtools/maemo5/osso-xterm|osso-xterm]] || a terminal emulator
|-
| [[Documentation/devtools/maemo5/man-db|man-db]] || manual page infrastructure
|-
| [[Documentation/devtools/maemo5/screen|screen]] || provides access to detachable console sessions
|}

=== Editors ===

{| class=&quot;wikitable&quot;
|+ Text editors
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/nano|nano]] || a friendly text editor
|-
| [[Documentation/devtools/maemo5/vi|vi]] || a text editor
|}

=== Graphics ===

{| class=&quot;wikitable&quot;
|+ Graphics tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/screenshot-tool|screenshot-tool]] || a command line utility to take screenshots
|-
| [[Documentation/devtools/maemo5/xresponse|xresponse]] || measures the time taken to update the screen after user action
|-
| [[Documentation/devtools/maemo5/xresponse-visualize|xresponse-visualize]] || scripts for visualizing xresponse logs
|}

=== Networking ===

{| class=&quot;wikitable&quot;
|+ Networking tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/iputils|iputils]] || a collection of TCP/IP related utilities
|-
| [[Documentation/devtools/maemo5/netcat|netcat]] || a utility to read and write data across network connections
|-
| [[Documentation/devtools/maemo5/tcpdump|tcpdump]] || a network traffic capturing utility
|-
| [[Documentation/devtools/maemo5/traceroute|traceroute]] || print the route packets take to a network host
|-
| [[Documentation/devtools/maemo5/wget|wget]] || a utility to non-interactively download files from the Web
|}

=== Performance ===

{| class=&quot;wikitable&quot;
|+ Performane analysis tools
|-
! Tool !! Description
|-
|[[Documentation/devtools/maemo5/oprofile|oprofile]] || a low overhead system wide profiler
|-
| [[Documentation/devtools/maemo5/oprofileui|oprofileui]] || a user interface to oprofile
|-
| [[Documentation/devtools/maemo5/sp-startup-time|sp-startup-time]] || a library for calculating application startup times
|-
| [[Documentation/devtools/maemo5/valgrind|valgrind]] || a suite of tools for debugging and profiling programs
|-
| [[Documentation/devtools/maemo5/xresponse|xresponse]] || measures the time taken to update the screen after user action
|-
| [[Documentation/devtools/maemo5/xresponse-visualize|xresponse-visualize]] || scripts for visualizing xresponse logs
|}

=== Resource Usage ===

{| class=&quot;wikitable&quot;
|+ Resource usage monitoring tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/functracer|functracer]] || an allocation backtrace tool
|-
| [[Documentation/devtools/maemo5/functracer-postproc|functracer-postproc]] || a post-processing tool for functracer output data
|-
| [[Documentation/devtools/maemo5/htop|htop]] || an interactive process viewer
|-
| [[Documentation/devtools/maemo5/sp-endurance|sp-endurance]] || tools to collect system endurance related information
|-
| [[Documentation/devtools/maemo5/sp-endurance-postproc|sp-endurance-postproc]] || postprocessing scripts to parse and generate a report from endurance measurement data
|-
| [[Documentation/devtools/maemo5/sp-memusage|sp-memusage]] || a collection of memory usage monitoring tools and scripts
|-
| [[Documentation/devtools/maemo5/sp-smaps-measure|sp-smaps-measure]] || utilities for taking snapshots of smaps memory information
|-
| [[Documentation/devtools/maemo5/sp-smaps-visualize|sp-smaps-visualize]] || utilities for analyzing smaps memory information
|-
| [[Documentation/devtools/maemo5/sysstat|sysstat]] || tools for collecting and reporting system activity information
|-
| [[Documentation/devtools/maemo5/valgrind|valgrind]] || a suite of tools for debugging and profiling programs
|-
| [[Documentation/devtools/maemo5/xrestop|xrestop]] || shows X clients' X resource usage
|}

=== Test Automation ===

{| class=&quot;wikitable&quot;
|+ Test automation tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/check|check]] || a unit test framework for C
|-
| [[Documentation/devtools/maemo5/sp-stress|sp-stress]] || tools to create artificial system load
|-
| [[Documentation/devtools/maemo5/xnee|xnee]] || automate user actions under X11
|-
| [[Documentation/devtools/maemo5/xresponse|xresponse]] || measures the time taken to update the screen after user action
|}

=== Wireless Tools ===

{| class=&quot;wikitable&quot;
|+ Wireless networking tools
|-
! Tool !! Description
|-
| [[Documentation/devtools/maemo5/bluez-hcidump|bluez-hcidump]] || a tool to monitor Bluetooth activity
|-
| [[Documentation/devtools/maemo5/wireless-tools|wireless-tools]] || tools for manipulating Linux Wireless Extensions
|}

== Installation ==

These tools can be installed in the device by activating the Fremantle tools repository in the Application manager. The tools are command line utilities, so they will not add applications to the application manager list of downloadable applications. This also means that the tools need to be installed from the X terminal [[Root access|as root]]. Developers can also install them in Scratchbox using the command line interface.

To activate the tools repository with the Application Manager, 
&lt;s&gt;http://mg.pov.lt/770/tools-repository.install ('''does not work in PR 1.2 - please fix''')&lt;/s&gt; [http://maemo.cloud-7.de/repositories.install open this single-click_2_install-3 file], or manually create a new catalogue like this:

# Navigate to the application menu in the Application Manager (tap the title bar)
# Select ‘Application catalogs’
# Select ‘New’
# Enter a catalog name of ‘fremantle tools’
# Enter a web address of http://repository.maemo.org
# Enter a distribution of ‘fremantle/tools’
# Enter components of ‘free non-free’
# Make sure that ‘Disabled:’ is left unchecked
# Select ‘Save’

If you prefer to edit configuration files yourself instead of using the Application manager, add these lines to your &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;

&lt;pre&gt;
# fremantle tools
deb http://repository.maemo.org fremantle/tools free non-free
# fremantle tools sources
deb-src http://repository.maemo.org fremantle/tools free non-free
&lt;/pre&gt;


To install a binary package in Scratchbox:                 

&lt;pre&gt;
$ fakeroot apt-get install &amp;lt;bin pkg name&amp;gt;
&lt;/pre&gt;

To install a binary package to the device ([[Root access|as root]]):

&lt;pre&gt;
$ apt-get install &amp;lt;bin pkg name&amp;gt;   
&lt;/pre&gt;

To install a source package in Scratchbox or to the device:

&lt;pre&gt;
$ apt-get source &amp;lt;src pkg name&amp;gt;                        
&lt;/pre&gt;

[[Category:Devtools]]
[[Category:Fremantle]]
[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/bluez-hcidump</title>
    <id>2574</id>
    <revision>
      <id>38102</id>
      <timestamp>2010-08-26T13:07:41Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <comment>fix broken link</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

Bluez-hcidump is the BlueZ project Bluetooth HCI data dumper.

Hcidump lets you view raw HCI data to and from a Bluetooth device in a human readable way.


== Packages ==

'''source''': bluez-hcidump

'''binary''': bluez-hcidump


== Usage Examples ==

Start hcidump like this and create a Bluetooth connection to your phone:

&lt;pre&gt;
# hcidump -V -x
&lt;/pre&gt;

you'll see a lot of verbose messages of the data and state of the connection.

== Links ==

[http://maemo.org/development/documentation/man_pages/hcidump/ hcidump man page]

http://www.bluez.org/

== See Also ==

-

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/check</title>
    <id>2500</id>
    <revision>
      <id>30969</id>
      <timestamp>2010-03-11T15:04:10Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

''check'' features a simple interface for defining unit tests, putting little in the way of the developer. Tests are run in a separate address space, so Check can catch both assertion failures and code errors that cause segmentation faults or other signals. The output from unit tests can be used within source code editors and IDEs.

== Packages ==

'''source''': check

'''binary''': check


== Usage Examples ==

== Links ==

[http://check.sourceforge.net/ http://check.sourceforge.net/]

[http://check.sourceforge.net/doc/check.html/index.html http://check.sourceforge.net/doc/check.html/index.html]

== See Also ==

-

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/crash-reporter</title>
    <id>2617</id>
    <revision>
      <id>30970</id>
      <timestamp>2010-03-11T15:04:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

''Crash Reporter'' provides a user-friendly graphical user interface that allows users to easily upload crash reports provided by [[Documentation/devtools/maemo5/sp-rich-core|sp-rich-core]] to a centralized location to help developers to fix issues.

== Packages ==

'''source''': crash-reporter

'''binary''': crash-reporter

== Usage Examples ==

== Links ==

-

== See Also ==

[[Documentation/devtools/maemo5/sp-rich-core|sp-rich-core]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/doxygen</title>
    <id>2501</id>
    <revision>
      <id>30971</id>
      <timestamp>2010-03-11T15:04:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

Doxygen is a documentation system for C, C++, Java, Python and other
languages.

Doxygen extracts comments from source code comments and it can
generate online and offline documentation from them. Among the
supported output formats are for example HTML, RTF and PDF.

Some of the maemo API documentation is published in Doxygen generated
format.

== Packages ==

'''source''': doxygen (available in fremantle/sdk repository)

'''binary''': doxygen (available in fremantle/sdk repository)

== Usage Examples ==

-

== Links ==

http://www.doxygen.org/

http://en.wikipedia.org/wiki/Doxygen

[http://maemo.org/development/sdks/maemo_5_api_documentation/ Maemo 5 API documentation]

== See Also ==

[[Documentation/devtools/maemo5/gtk-doc|gtk-doc]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/functracer</title>
    <id>2503</id>
    <revision>
      <id>30972</id>
      <timestamp>2010-03-11T15:05:12Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

''functracer'' is a debugging tool that gets backtraces of all allocations done in ARM/x86 processes. It works with optimized (-O2) code, where debugging symbols are available either in the application  binaries themselves, or in separate debug files.

== Packages ==

'''source''': functracer

'''binary''': functracer

== Usage Examples ==

== Links ==

[xxx man page](/development/documentation/man_pages/xxx.html)

== See Also ==

[[Documentation/devtools/maemo5/functracer-postproc|functracer-postproc]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/functracer-postproc</title>
    <id>2504</id>
    <revision>
      <id>30973</id>
      <timestamp>2010-03-11T15:05:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

''functracer-postproc'' is a post-processing tool. It generates detailed reports from Functracer output data. For now, functracer-postproc generates the following reports:

* Non-freed allocations detection (possible leaks)

* Free malloc/calloc/realloc detection

== Packages ==

'''source''': functracer-postproc

'''binary''': functracer-postproc

== Usage Examples ==

== Links ==

[xxx man page](/development/documentation/man_pages/xxx.html)

== See Also ==

[[Documentation/devtools/maemo5/functracer|functracer]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/gdb</title>
    <id>2505</id>
    <revision>
      <id>31282</id>
      <timestamp>2010-03-18T10:59:16Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* See Also */ valgrind link</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

GDB, the GNU Project debugger, allows you to see what is going on
'inside' another program while it executes -- or what another program
was doing at the moment it crashed.

GDB can do four main kinds of things (plus other things in support of
these) to help you catch bugs in the act:

* Start your program, specifying anything that might affect its behavior. 

* Make your program stop on specified conditions. 

* Examine what has happened, when your program has stopped. 

* Change things in your program, so you can experiment with correcting the effects of one bug and go on to learn about another.

== Packages ==

'''source''': gdb

'''binary''': gdb

== Usage Examples ==

There are several issues you need to be aware when debugging
(optimized) code on ARM. Please read the [[Documentation/Maemo_5_Developer_Guide/Kernel_and_Debugging_Guide/Maemo_Debugging_Guide|Maemo debugging guide]].

== Links ==

[gdb man page](/development/documentation/man_pages/gdb.html)

[gdb server man page](/development/documentation/man_pages/gdbserver.html)

http://www.gnu.org/software/gdb/


== See Also ==

* [[../valgrind|valgrind]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/gtk-doc</title>
    <id>2502</id>
    <revision>
      <id>30976</id>
      <timestamp>2010-03-11T15:08:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

GTK-Doc is typically used to document the public C API of
libraries. It has some special features that are useful in documenting
signals and properties of GTK+ widgets and GObject classes. It can
also be used to document application code.

Many of the maemo API documents have been generated with GTK-Doc.

== Packages ==

'''source''': gtk-doc-tools (available in fremantle/sdk repository)

'''binary''': gtk-doc-tools (available in fremantle/sdk repository)

== Usage Examples ==

-

== Links ==

http://www.gtk.org/gtk-doc/

[http://maemo.org/development/sdks/maemo_5_api_documentation/ Maemo 5 API documentation]


== See Also ==

[[Documentation/devtools/maemo5/doxygen|doxygen]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/htop</title>
    <id>2506</id>
    <revision>
      <id>30977</id>
      <timestamp>2010-03-11T15:11:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

Htop is a text-only, interactive process viewer similar to 'top'.

* The process list is scrollable.

* Control screen items with the stylus in addition to the keyboard.

* The information on screen is configurable.

* Strace can be attached to a process with a single keypress.

== Packages ==

'''source''': htop

'''binary''': htop

== Usage Examples ==

Just run htop to see the running processes:

&lt;pre&gt;
# htop
&lt;/pre&gt;

Move around the view with the cursor keys.

Exit by pressing 'q'.

The stylus also works on the display.

== Links ==

[htop man page](/development/documentation/man_pages/htop.html)

[http://htop.sourceforge.net/ http://htop.sourceforge.net/]

== See Also ==

[[Documentation/devtools/maemo5/strace|strace]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/iputils</title>
    <id>2572</id>
    <revision>
      <id>30978</id>
      <timestamp>2010-03-11T15:11:32Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

iputils is a small collection of TCP/IP related utilities.

* ''ping'': is already provided on the device by BusyBox and it's a tool
to monitor and test network functionality.

* ''arping'': sends ARP requests to a host.

* ''tracepath'': trace a path to a host discovering MTU along the
way. This is similar to [traceroute], but does not require superuser
rights or offer fancy options.

== Packages ==

'''source''': iputils

'''binary''': iputils-ping, iputils-arping, iputils-tracepath

== Usage Examples ==

To test if a host is in the network and responding to ping:

&lt;pre&gt;
# ping host.name.net
&lt;/pre&gt;

Send four ARP requests to host:
&lt;pre&gt;
# arping -c 4 host.name.net
&lt;/pre&gt;

Discover the path to ''www.maemo.org'':
&lt;pre&gt;
# tracepath www.maemo.org
&lt;/pre&gt;

== Links ==

[arping man page](/development/documentation/man_pages/arping.html)

[tracepath man page](/development/documentation/man_pages/tracepath.html)

== See Also ==

[[Documentation/devtools/maemo5/netcat|netcat]], [[Documentation/devtools/maemo5/tcpdump|tcpdump]], [[Documentation/devtools/maemo5/traceroute|traceroute]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/latrace</title>
    <id>2628</id>
    <revision>
      <id>34634</id>
      <timestamp>2010-05-21T09:22:43Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <comment>/* Links */ fix manpage link</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

''latrace'' allows you to trace library calls and get their statistics in a manner similar to the strace utility.

* display dynamic functions as they are called
* display function arguments
* display statistics for called functions

== Packages ==

'''source''': latrace

'''binary''': latrace

== Usage Examples ==
&lt;pre&gt;
Nokia-N900-40-12:~# latrace cat
 3380     __libc_start_main [/lib/libc.so.6]
 3380       __sigsetjmp [/lib/libc.so.6]
 3380       __errno_location [/lib/libc.so.6]
 3380       strrchr [/lib/libc.so.6]
 3380       getuid [/lib/libc.so.6]
 3380       bsearch [/lib/libc.so.6]
 3380         strcmp [/lib/libc.so.6]
 3380         strcmp [/lib/libc.so.6]
 3380         strcmp [/lib/libc.so.6]
 3380         strcmp [/lib/libc.so.6]
 3380         strcmp [/lib/libc.so.6]
 3380         strcmp [/lib/libc.so.6]
 3380         strcmp [/lib/libc.so.6]
 3380         strcmp [/lib/libc.so.6]
 3380       memset [/lib/libc.so.6]
 3380       getopt_long [/lib/libc.so.6]
 3380       read [/lib/libc.so.6]
foo
 3380       write [/lib/libc.so.6]
foo
 3380       read [/lib/libc.so.6]

&lt;/pre&gt;

== Links ==

[http://linux.die.net/man/1/ltrace ltrace man page](/development/documentation/man_pages/ltrace.html)

== See Also ==

[[Documentation/devtools/maemo5/strace|strace]],[[Documentation/devtools/maemo5/ltrace|ltrace]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/less</title>
    <id>2507</id>
    <revision>
      <id>30980</id>
      <timestamp>2010-03-11T15:12:09Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

Less is a filter for paging through text one screenful at a time.
Less allows backward movement in the file as well as forward
movement. It is quite similar to '''more''', which is installed on the
device by default, but more user friendly and more powerful.

== Packages ==

'''source''': less

'''binary''': less

== Usage Examples ==

Very simply; to view the contents of a text file:

&lt;pre&gt;
# less file.txt
&lt;/pre&gt;

Press '''space bar''' for ''next page''.

Press '''b''' for ''previous page''.

Press '''q''' to ''quit'' reading.

== Links ==

[less man page](/development/documentation/man_pages/less.html)

== See Also ==

-

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/ltrace</title>
    <id>2508</id>
    <revision>
      <id>30981</id>
      <timestamp>2010-03-11T15:13:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

Ltrace traces both system and library calls.

Ltrace is quite similar to [[Documentation/devtools/maemo5/strace|strace]] the main differences being:

* ltrace can trace also function calls between shared libraries.

* ltrace does not work over clone(). If threading or forking is used, ltrace needs to be attached to the process after that has happened.

== Packages ==

'''source''': ltrace

'''binary''': ltrace

== Usage Examples ==

Attach to the process with process id pid and begin tracing:

&lt;pre&gt;
# ltrace -p pid
&lt;/pre&gt;

== Links ==

[ltrace man page](/development/documentation/man_pages/ltrace.html)

== See Also ==

[[Documentation/devtools/maemo5/strace|strace]],
[[Documentation/devtools/maemo5/latrace|latrace]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/maemo-debug-scripts</title>
    <id>2509</id>
    <revision>
      <id>30982</id>
      <timestamp>2010-03-11T15:13:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

''maemo-debug-scripts'' is a convenience package for maemo developers needing to debug their programs. The package will:

* Post-install a symlink required by Gdb/Valgrind/Oprofile to find the debug symbol files in Scratchbox.  The files are installed in ''/usr/lib/debug/&amp;lt;library path&amp;gt;'', but in Scratchbox the library realpaths are ''/targets/&amp;lt;target name&amp;gt;/&amp;lt;library path&amp;gt;''.

* Depend from libc6-dbg.  Without libc6-dbg threads cannot be debugged with Gdb and Valgrind reports redundant errors for the dynamic loader (its error suppressions for /lib/ld functions can match them only with the debug symbol file as stripped binary doesn't contain static function names)

* Depend from target native Gdb.  The Scratchbox host version of Gdb (cross-gdb) doesn't know how to load the correct thread library (even on x86) and it cannot debug ARM core-dumps. Native one can.

* Install a few helper scripts:
::''native-gdb''
::runs the target native Gdb (by default Scratchbox runs the host binary if it exists, this script overrides that)
::''debug-dep-install''
::installs debug symbols for given binaries and their dependencies listed by &quot;ldd&quot;
::''debug-pkg-check''
::checks the correctness of a debug package for a given package
::''list-mmapped-libs''
::lists all packages containing libs and binaries that given process uses. It can be used to find out the libraries mmap()ed through dlopen that &quot;ldd&quot; (used by debug-deb-install script) doesn't find
::''run-with-valgrind''
::helper script for running a binary with Valgrind memcheck plugin (memory access errors, leaks etc) so that all suitable options are set for it
::''run-with-callgrind''
::helper script for running a binary with Valgrind callgrind plugin (performance profiling) so that all suitable options are set for it
::''run-with-massif''
::helper script for running a binary with Valgrind massif plugin (memory usage visualization) so that all suitable options are set for it
::''run-with-helgrind''
::helper script for running a binary with Valgrind helgrind plugin (race condition detector for threaded programs) so that all suitable options are set
::''run-with-strace''
::helper script for running a binary with strace. Like above helper scripts, handles maemo-launched binaries automatically

== Packages ==

'''source''': maemo-debug-scripts

'''binary''': maemo-debug-scripts

== Usage Examples ==

-

== Links ==

[debug-dep-install man page](/development/documentation/man_pages/debug-dep-install.html)

[debug-pkg-check man page](/development/documentation/man_pages/debug-pkg-check.html)

[list-mmapped-libs man page](/development/documentation/man_pages/list-mmapped-libs.html)

[native-gdb man page](/development/documentation/man_pages/native-gdb.html)

[run-with-callgrind man page](/development/documentation/man_pages/run-with-callgrind.html)

[run-with-massif man page](/development/documentation/man_pages/run-with-massif.html)

[run-with-memcheck man page](/development/documentation/man_pages/run-with-memcheck.html)

[run-with-helgrind man page](/development/documentation/man_pages/run-with-helgrind.html)

[run-with-strace man page](/development/documentation/man_pages/run-with-strace.html)

== See Also ==

[[Documentation/devtools/maemo5/gdb|gdb]], [[Documentation/devtools/maemo5/valgrind|valgrind]], [[Documentation/devtools/maemo5/strace|strace]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/man-db</title>
    <id>2629</id>
    <revision>
      <id>45618</id>
      <timestamp>2011-10-29T13:47:15Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>/* See Also */</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

''man-db'' provides the '''man''' command, which is the primary way of examining the on-line help files i.e. manual pages. You can/should install this only inside Scratchbox to get an easier access to the man pages.

== Packages ==

'''source''': man-db (available in fremantle/sdk repository)

'''binary''': man-db (available in fremantle/sdk repository)

== Usage Examples ==

&lt;pre&gt;
[sbox-armv7: /] &gt; man man
&lt;/pre&gt;

== Links ==

-

== See Also ==
http://maemo.org/packages/view/man-db-n900/
-

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/nano</title>
    <id>2515</id>
    <revision>
      <id>40806</id>
      <timestamp>2010-12-20T12:46:04Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/92.96.179.183|92.96.179.183]] ([[User talk:92.96.179.183|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

*nano* is a small and friendly editor that also supports stylus clicks
to place the cursor and to execute shortcuts.

nano-tiny is a special minimal build of nano aimed for boot-floppies
or emergency disks.

== Packages ==

'''source''': nano

'''binary''': nano, nano-tiny

== Usage Examples ==

Open up a file for viewing and editing. You can move around the file
with the cursor keys.

&lt;pre&gt;
# nano myfile.txt
&lt;/pre&gt;

Exit from nano: Press *control-x* or click *Exit* with the stylus.

== Links ==

[nano man page](/development/documentation/man_pages/nano.html)

[nano-tiny man page](/development/documentation/man_pages/nano-tiny.html)

== See Also ==

[[Documentation/devtools/maemo5/vi|vi]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/netcat</title>
    <id>2516</id>
    <revision>
      <id>30985</id>
      <timestamp>2010-03-11T15:16:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

Netcat is a simple unix utility which reads and writes data across
network connections, using TCP or UDP protocol.

== Packages ==

'''source''': netcat

'''binary''': netcat

== Usage Examples ==

The utility is actually named *nc*. Here's an example of how to open
up a TCP listening socket on port 5060. If someone connects to and
sends data to that port, it will be printed on the screen.

&lt;pre&gt;
# nc -l -p 5060
&lt;/pre&gt;

== Links ==

[netcat man page](/development/documentation/man_pages/nc.html)

== See Also ==

[[Documentation/devtools/maemo5/iputils|iputils]], [[Documentation/devtools/maemo5/tcpdump|tcpdump]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/oprofile</title>
    <id>2569</id>
    <revision>
      <id>35877</id>
      <timestamp>2010-06-16T10:47:12Z</timestamp>
      <contributor>
        <ip>192.100.124.218</ip>
      </contributor>
      <comment>/* Profiling with callgraphs */</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

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.

== Packages ==

'''source''': oprofile

'''binary''': oprofile

== Installing Oprofile ==

=== Configuring the device ===

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.

=== Installing oprofile to the device ===

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;pre&gt;
Nokia-N900-40-12:~# apt-get install oprofile kernel-modules-debug
&lt;/pre&gt;

This will also install binutils.

=== Installing debug symbols ===

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;pre&gt;
Nokia-N900-40-12:~# apt-get install maemo-debug-scripts
Nokia-N900-40-12:~# debug-dep-install /usr/bin/osso-xterm.launch
&lt;/pre&gt;

== Usage ==

1. On the device, type:

&lt;pre&gt;
Nokia-N900-40-12:~# insmod /lib/modules/current/oprofile.ko
Nokia-N900-40-12:~# opcontrol --no-vmlinux
Nokia-N900-40-12:~# opcontrol --separate=kernel
Nokia-N900-40-12:~# opcontrol -c 8
Nokia-N900-40-12:~# opcontrol --init
&lt;/pre&gt;

Like with the ''--separate=library'' option, the ''--separate=kernel'' 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 ''--separate=kernel'' option will additionally assign CPU usage within kernel under the processes that caused it. The vmlinux binary name is used for this part. The ''-c 8'' option will make oprofile collect information about the call graph, till the depth of 8 function calls.

2. Start the usecase you are interested in and type:

&lt;pre&gt;
Nokia-N900-40-12:~# opcontrol --reset
Nokia-N900-40-12:~# opcontrol --start
&lt;/pre&gt;

3. When you've finished, type:

&lt;pre&gt;
Nokia-N900-40-12:~# opcontrol --stop
&lt;/pre&gt;

Now you've collected the data.

=== Viewing profile reports ===

To see basic per-process picture, type opreport:

&lt;pre&gt;
Nokia-N900-40-12:~# opreport
CPU: OMAP GPTIMER, speed 0 MHz (estimated)
Counted GPTIMER_CYCLES events (32KiHz timer clock cycles between interrupts) with a unit mask of 0x00 (No unit mask) count 16
GPTIMER_CYCLES:16|
  samples|      %|
------------------
    43666 88.5972 no-vmlinux
     2636  5.3484 maemo-launcher
        GPTIMER_CYCLES:16|
          samples|      %|
        ------------------
              491 18.6267 no-vmlinux
              450 17.0713 libclutter-eglx-0.8.so.0.800.2
              410 15.5539 libgobject-2.0.so.0.2000.3
              342 12.9742 libGLESv2.so
              275 10.4325 libglib-2.0.so.0.2000.3
              138  5.2352 libpthread-2.5.so
              134  5.0835 libc-2.5.so
               55  2.0865 libdbus-1.so.3.4.0
               50  1.8968 hildon-desktop.launch
               45  1.7071 libpango-1.0.so.0.2400.2
               42  1.5933 libgdk-x11-2.0.so.0.1400.7
               32  1.2140 libX11.so.6.2.0
               32  1.2140 libpulsecommon-0.9.15.so
               28  1.0622 libgtk-x11-2.0.so.0.1400.7
               27  1.0243 libgio-2.0.so.0.2000.3
               ...
&lt;/pre&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. 

Note: If with the ''--separate=kernel'' option there's a lot of CPU activity for kernel that'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.

To see more detailed symbol analysis use opreport -l:

&lt;pre&gt;
Nokia-N900-40-12:~# opreport -l /usr/bin/Xorg | more
warning: /no-vmlinux could not be found.
CPU: OMAP GPTIMER, speed 0 MHz (estimated)
Counted GPTIMER_CYCLES events (32KiHz timer clock cycles between interrupts) with a unit mask of 0x00 (No unit mask) count 16
samples  %        image name               symbol name
313      51.7355  no-vmlinux               /no-vmlinux
153      25.2893  Xorg                     /usr/bin/Xorg
36        5.9504  libpixman-1.so.0.15.3    /usr/lib/libpixman-1.so.0.15.3
31        5.1240  libc-2.5.so              /lib/libc-2.5.so
11        1.8182  libexa.so                /usr/lib/xorg/modules/libexa.so
10        1.6529  fbdev_drv.so             /usr/lib/xorg/modules/drivers/fbdev_drv.so
10        1.6529  librecord.so             /usr/lib/xorg/modules/extensions/librecord.so
8         1.3223  libsrv_um.so             /usr/lib/libsrv_um.so
7         1.1570  libdbus-1.so.3.4.0       /usr/lib/libdbus-1.so.3.4.0
7         1.1570  libpthread-2.5.so        /lib/libpthread-2.5.so
6         0.9917  libfb.so                 /usr/lib/xorg/modules/libfb.so
5         0.8264  libdri2.so               /usr/lib/xorg/modules/extensions/libdri2.so
5         0.8264  librt-2.5.so             /lib/librt-2.5.so
2         0.3306  libpvr2d.so              /usr/lib/libpvr2d.so
1         0.1653  evdev_drv.so             /usr/lib/xorg/modules/input/evdev_drv.so
&lt;/pre&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; how and before this kind analysis it's too early to assign/report bugs for lower level components.


=== Profiling with callgraphs ===

If you have initialized opcontrol with the ''-c'' 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;pre&gt;
Nokia-N900-40-12:~# opreport -l /usr/bin/Xorg -c &gt; oprofile.log
#...copy the oprofile.log to your PC...
myPC$ cat oprofile.log | python gprof2dot.py -f oprofile | dot -Tpng -o callgraph.png
&lt;/pre&gt;

You need the [http://jrfonseca.googlecode.com/svn/trunk/gprof2dot/gprof2dot.py gprof2dot.py] script and the ''dot'' tool, which is part of the [http://www.graphviz.org/ Graphviz] software (which is in Ubuntu's ''graphviz'' package).

=== Viewing reports from a PC ===

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.

# Configure scratchbox target in a way that its binaries and libraries 100% match the target's.
# Collect profiling data as usual
# Copy contents of /var/lib/oprofile from the device to the corresponding directory in scratchbox target.
# in scratchbox, apt-get install maemo-debug-scripts (this may not be omitted)
# install debug packages either with debug-dep-install or by hand

Note: the binaries and libraries in the scratchbox target must match what's in the device, otherwise you will get bogus results.

=== Oprofile with kcachegrind ===

kcachegrind is a useful GUI tool for viewing performance data interactively. It comes with many modern linux distros.

To use it:

# Get the callgraph oprofile data (see above) and install the same packages also to scratchbox.
# Copy the profile data to scratchbox session as described above.
# install kcachegrind-converters package on HOST (debian, ubuntu)
# in scratchbox: opreport -gdf | op2calltree (you might want to copy op2calltree script somewhere on target)
# the resulting files can now be opened with kcachegrind on host, provided you set it to display ALL files (extensions are wrong)

== Links ==

* [oprofile man page](/development/documentation/man_pages/oprofile.html)
* http://oprofile.sourceforge.net/about/
* http://oprofile.sourceforge.net/doc/controlling.html
* http://kcachegrind.sourceforge.net/cgi-bin/show.cgi


== See Also ==

[[Documentation/devtools/maemo5/oprofileui|oprofileui]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/oprofileui</title>
    <id>2614</id>
    <revision>
      <id>30986</id>
      <timestamp>2010-03-11T15:17:04Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

OProfileUI is a graphical user interface to the oprofile system profiler. There's a server on the device controlling oprofile and transferring the data to the UI running on the PC.

== Packages ==

'''source''': oprofileui

'''binary''': oprofileui-viewer, oprofileui-server

== Usage Examples ==

In order to see see function names, you need to install the debug symbol packages.

To test the OProfileUI on the device first install both the viewer and the server to the device. After that continue the OProfile usage with something like the following:

* Clear old results:

&lt;pre&gt;
# opcontrol --reset
&lt;/pre&gt;

* Start oprofile viewer server:

&lt;pre&gt;
# oprofile-server &amp;
&lt;/pre&gt;

* start OProfileUI from command line

* press the connect button and connect to &quot;This Computer&quot;

* press &quot;Start&quot; button

* press &quot;Stop&quot; button

As a result you see how many cycles were spent inside the kernel and the mmap'd binaries and libraries. Note that running the oprofileui components in the device will naturally be visible in the oprofile results.

The UI usage is also explained in the README file coming with it.

== Links ==

http://projects.o-hand.com/oprofileui

== See Also ==

[[Documentation/devtools/maemo5/oprofile|oprofile]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/osso-xterm</title>
    <id>2517</id>
    <revision>
      <id>45944</id>
      <timestamp>2011-12-07T17:22:26Z</timestamp>
      <contributor>
        <username>stefanl</username>
        <id>3806</id>
      </contributor>
      <comment>/* Usage Examples */</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

osso-xterm is a terminal emulator for the X Window System. It is installed to the device by default and can be found from the applications list as &quot;[[terminal|X Terminal]]&quot;.

All the command line development tools can be run from osso-xterm.

== Packages ==

'''source''': osso-xterm

'''binary''': osso-xterm

== Usage Examples ==

Typical python usage calling example for a command/program to run in a stand-alone window, which closes upon completion of the command:

os.system('osso-xterm -e &quot;command --command-line options&quot; &amp;')

== Links ==

-

== See Also ==

[http://talk.maemo.org/showthread.php?t=35442 Config Toolbar]


[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/screen</title>
    <id>2518</id>
    <revision>
      <id>36323</id>
      <timestamp>2010-06-28T11:40:12Z</timestamp>
      <contributor>
        <username>linuxeventually</username>
        <id>1045</id>
      </contributor>
      <comment>/* Usage Examples */</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

Screen is a tool to manage multiple terminal sessions. It offers a
very handy way to run multiple interactive shells when the screen
space is limited.

The manual page is well written and provides comprehensive documentation.

== Packages ==

'''source''': screen

'''binary''': screen

== Usage Examples ==

=== Resume session ===
&lt;pre&gt;
# screen
&lt;/pre&gt;

To exit from screen, exit from all the shells that you had started in
it, or you can also suspend it to background by issuing C-a d (control-a d).

You can later return to the suspended session by starting screen like this:

&lt;pre&gt;
# screen -dr
&lt;/pre&gt;

=== Share a session ===
&lt;pre&gt;
user1:# screen
&lt;/pre&gt;
&lt;pre&gt;
user2:# ssh user1@host
user2:# screen -x
&lt;/pre&gt;

The first user hosts a screen session and the second user can connect to the non-disconnected &quot;multi-display&quot; session using the -x parameter. Text input is shared additionally.

== Links ==

* [[:wikipedia:GNU Screen|screen Wikipedia article]]

== See Also ==

-

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/screenshot-tool</title>
    <id>2499</id>
    <revision>
      <id>30989</id>
      <timestamp>2010-03-11T15:18:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

This simple command line tool takes a screenshot of the current screen
and saves the image as a PNG file.

== Packages ==

'''source''': screenshot-tool

'''binary''': screenshot-tool

== Usage Examples ==

Take a screenshot and save it to file ''screen.png'':

&lt;pre&gt;
# screenshot-tool screen.png
&lt;/pre&gt;

Take a screenshot after 5 seconds and save it to file ''delayed.png''

&lt;pre&gt;
# screenshot-tool -d 5 delayed.png
&lt;/pre&gt;

== Links ==

-

== See Also ==

-

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/sp-endurance</title>
    <id>2519</id>
    <revision>
      <id>30990</id>
      <timestamp>2010-03-11T15:18:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

sp-endurance provides tools to save various system endurance related information (resource usage, errors) on device.

Provided tools include: 

* binaries for saving /proc and X client resource usage as CSV

* a script for saving these along with syslog, SMAPS data, df and ifconfig output etc.

* a script for getting quick system memory usage change overview from the endurance data

The endurance data can be used for detecting and measuring resource leakage and application errors.

== Packages ==

'''source''': sp-endurance

'''binary''': sp-endurance

== Usage ==

Because resource leakage detection requires repeating the given use-cases many times, it's best to automate the running of the test-cases. Both before the first and after each additional test-case run the following can be done:

&lt;pre&gt;
# save-incremental-endurance-stats use-case-name
# cat /dev/null &gt; /var/log/syslog
# cat /dev/null &gt; /var/log/syslog.old
&lt;/pre&gt;

This will create a directory called use-case-name (if it doesn't exist) and add on each invocation a new subdirectory with the current endurance data. The subdirectories are named 101, 102 and so on.

Syslogs can be large and they are included into the endurance data so it's best to clear syslog(s) (as indicated above) after the endurance data is stored. Otherwise storing the data can take quite a long time and potentially consume huge amounts of disk space.

Note: If you run this in the device over ssh instead of from console, you might not have DISPLAY set correctly and then xmeminfo complains that it cannot connect to X server. In that case, just enter:

&lt;pre&gt;
# export DISPLAY=:0
&lt;/pre&gt;

before starting your testing. 

=== Emphasizing leakage ===

Sometimes it is not clear from the endurance data whether there's a memory leak or not. Increasing the number of test-case runs helps, but getting more measurements doesn't necessarily make it easier to see the leakage. In this case it is best to emphasize the leakage by increasing the number of test-case repeats between measurements exponentially, like this:

&lt;pre&gt;
#!/bin/sh
measurements=5
repeats=1
for round in $(seq $measurements); do
        echo &quot;round $round:&quot;
        # repeat the test-case round^2 times
        for repeat in $(seq $repeats); do
                echo -n &quot; $repeat&quot;
                # RUN THE TEST-CASE HERE
        done
        repeats=$(($repeats+$repeats))
        save-incremental-endurance-stats use-case-name
        cat /dev/null &gt;/var/log/syslog
        cat /dev/null &gt;/var/log/syslog.old
done
&lt;/pre&gt;

=== Post-processing ===

After the tests have been completed, the stored endurance data can then be transferred to PC for post-processing with [[Documentation/devtools/maemo5/sp-endurance-postproc|sp-endurance-postproc]].

Note that the post-processing tools create the error and resource leakage summary from the differences between 2nd and last measurement. They assume that:

* the first measurement is &quot;initial state&quot; i.e. the system and application are still in a state where things needed by the test-case are not yet initialized

* processes involved in the test-case haven't been terminated before the last measurement. If the process doesn't exist anymore in the last measurement, there's nothing to differentiate

On the device a rough system memory overview of the endurance data can be obtained with:

&lt;pre&gt;
# endurance-mem-overview use-case-name/*
&lt;/pre&gt;

== Links ==

Man pages:

[endurance-mem-overview](/development/documentation/man_pages/endurance-mem-overview.html)

[proc2csv](/development/documentation/man_pages/proc2csv.html)

[save-incremental-endurance-stats](/development/documentation/man_pages/save-incremental-endurance-stats.html)

[xmeminfo](/development/documentation/man_pages/xmeminfo.html)

== See Also ==

[[Documentation/devtools/maemo5/sp-endurance-postproc|sp-endurance-postproc]], [[Documentation/devtools/maemo5/syslog|syslog]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/sp-endurance-postproc</title>
    <id>2520</id>
    <revision>
      <id>30991</id>
      <timestamp>2010-03-11T15:18:54Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

''sp-endurance-postproc'' provides post-processing tools for producing report(s) from the data collected by [[Documentation/devtools/maemo5/sp-endurance|sp-endurance]].

These include: 

* a script for producing an overview HTML report of the collected endurance data

* a script for splitting the data into several reports (in case of reboots during automated testing)

* a script for for parsing errors and other significant events from syslogs

== Packages ==

'''source''': sp-endurance

'''binary''': sp-endurance-postproc

== Usage Examples ==

Once you've transferred the endurance data saved by [[Documentation/devtools/maemo5/sp-endurance|sp-endurance]] to a PC, you can post-process it with the following:

&lt;pre&gt;
# fakeroot apt-get install sp-endurance-postproc
# parse-endurance-measurements test-case-name/&amp;#91;0-9&amp;#93;*
&lt;/pre&gt;

This will produce you a nice (single file) HTML report which you can send in E-mail, attach to Bugzilla etc.

The report lists first the information about the system's intial state (first measurement data), then the system's memory usage change overview, more detailed memory usage of each process whose memory usage changed and last details about all resource usage changes and (recognized) syslogged errors between each of the measurements. Finally there's a summary of the differences between the second and the last measurement.

If you want to get a similar report for a subset of these measurements (e.g. because there was a reboot between them or to see the leaks
better you want to skip some of them), the script offers several options for that too.

=== Other platforms ===

If you want to do the post-processing on platforms like Windows which may have Python, but not Bash, you can call this directly:

&lt;pre&gt;
# endurance_report.py test-case-name/&amp;#91;0-9&amp;#93;* &gt; report.html
&lt;/pre&gt;

=== Syslog parsing ===

As a part of endurance data processing the saved syslogs are parsed for errors and other significant events, but you can do that also directly with:

&lt;pre&gt;
# syslog_parse.py syslog.gz
&lt;/pre&gt;

The syslog file can be compressed and you can get the lists either in ASCII (default) or in HTML.

== Links ==

Man pages:

[endurance_report.py](/development/documentation/man_pages/endurance_report_py.html)

[parse-endurance-measurements](/development/documentation/man_pages/parse-endurance-measurements.html)

[split-endurance-measurements](/development/documentation/man_pages/split-endurance-measurements.html)

[syslog_parse.py](/development/documentation/man_pages/syslog_parse_py.html)

== See Also ==

[[Documentation/devtools/maemo5/sp-endurance|sp-endurance]], [[Documentation/devtools/maemo5/syslog|syslog]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/sp-error-visualizer</title>
    <id>2522</id>
    <revision>
      <id>30992</id>
      <timestamp>2010-03-11T15:19:19Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

''sp-error-visualizer'' is a small utility that's designed to help you in noticing errors that are written to syslog.

== Packages ==

'''source''': sp-error-visualizer

'''binary''': sp-error-visualizer

== Usage Examples ==

Just install the ''sp-error-visualizer'' package and it will immediately start tracking syslogged messages. It's also started automatically on bootup. If syslog is not running, it provides itself the syslog socket for the applications.

The error visualizer can be disabled by running the following command or uninstalling the package.

&lt;pre&gt;
# /etc/init.d/sp-error-visualizer stop 
&lt;/pre&gt;

The search strings for the errors that are shown from syslog are configured in: ''/usr/share/sp-error-visualizer/data/syslog-common-errors.conf''.

== Links ==

[sp-error-visualizer man page](/development/documentation/man_pages/sp-error-visualizer.html)

== See Also ==

[[Documentation/devtools/maemo5/syslog|syslog]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/sp-memusage</title>
    <id>2523</id>
    <revision>
      <id>30993</id>
      <timestamp>2010-03-11T15:19:42Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

sp-memusage is a collection of memory usage monitoring tools and scripts.

* ''mem-dirty-code-pages'': prints out the dirty code pages allocated by the given processes

* ''mem-monitor'': prints out system memory usage at a given interval

* ''mem-monitor-smaps'': prints out the memory usage of a given process at a given interval

* ''mem-smaps-private'': prints out the private memory usage of a given process

* ''run-with-mallinfo'': run maemo applications under mallinfo

* ''run-with-memusage'': run maemo applications under memusage

== Packages ==

'''source''': sp-memusage

'''binary''': sp-memusage, sp-memusage-dbg


== Usage Examples ==

See respective man pages for usage examples and more info on each utility.

== Links ==

[mem-dirty-code-pages man page](/development/documentation/man_pages/mem-dirty-code-pages.html)

[mem-monitor man page](/development/documentation/man_pages/mem-monitor.html)

[mem-monitor-smaps man page](/development/documentation/man_pages/mem-monitor-smaps.html)

[mem-smaps-private man page](/development/documentation/man_pages/mem-smaps-private.html)

[run-with-mallinfo man page](/development/documentation/man_pages/run-with-mallinfo.html)

[run-with-meminfo man page](/development/documentation/man_pages/run-with-meminfo.html)

== See Also ==

[[Documentation/devtools/maemo5/sp-smaps-measure|sp-smaps-measure]], [[Documentation/devtools/maemo5/sp-smaps-visualize|sp-smaps-visualize]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/sp-response-time</title>
    <id>2524</id>
    <revision>
      <id>30994</id>
      <timestamp>2010-03-11T15:19:55Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

sp-response-time monitors UI response times.

This application monitors keyboard and mouse/touchscreen events and
calculates how long it takes when updates on the screen are done.
This tool is designed for giving support on performance analysis when
calculating UI response times against some performance requirements.

== Packages ==

'''source''': sp-response-time

'''binary''': sp-response-time

== Usage Examples ==

Running this in a Scratchbox target and opening up menus in the
emulated device desktop results in output like this:

&lt;pre&gt;
[sbox-i386: ~/] &gt; ./sp-response-time -w 100

sp-response-time 0.1.1

Timestamp      : Info ([event(s), damage(s), update(ms), ]message) -------------
1254394521.226 : 1254394521.067, 1254394521.217, 150, &quot;Event at 1254394521.067s. Update took 150ms. This was the initial response time.&quot;
1254394522.408 : 1254394521.067, 1254394522.306, 1239, &quot;Event at 1254394521.067s. Update took 1239ms. This was the time until the last update.&quot;
1254394524.211 : 1254394524.014, 1254394524.202, 188, &quot;Event at 1254394524.014s. Update took 188ms. This was the initial response time.&quot;
1254394524.609 : 1254394524.014, 1254394524.445, 431, &quot;Event at 1254394524.014s. Update took 431ms. This was the time until the last update.&quot;
&lt;/pre&gt;

== Links ==

[sp-response-time man page](/development/documentation/man_pages/sp-response-time.html)

== See Also ==

[[Documentation/devtools/maemo5/xresponse|xresponse]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/sp-rich-core</title>
    <id>2616</id>
    <revision>
      <id>39734</id>
      <timestamp>2010-10-26T12:44:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/91.196.159.119|91.196.159.119]] ([[User talk:91.196.159.119|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

''sp-rich-core'' is a package that installs an init script that pipes core dumps through a script. This script collects lots of information from the system and then saves that and the core dump data compressed into a file. The collected information includes process SMAPS data, most of /proc data, last lines from syslog, df and ifconfig output etc.

Compressing the core dumps (with lzo) actually speeds up saving them.

Use ''rich-core-extract'' (from '''sp-rich-core-postproc''' package) to extract the information from a rich core dump.

== Packages ==

'''source''': sp-rich-core

'''binary''': sp-rich-core, sp-rich-core-postproc

== Usage Examples ==

Create a small program that's sure to crash:

&lt;pre&gt;
- - - snip crasher.c - - -
#include &lt;string.h&gt;

int main()
{
   char *p = 0;
   memcpy(p, 0x00, sizeof(p));

}
- - - snap crasher.c - - -

# gcc -g -o crasher crasher.c
&lt;/pre&gt;

After copying the ''crasher'' program to your device and having installed the sp-rich-core package, you can now run the program.

NOTE: The daemon /usr/bin/crash_reporter_daemon that is installed with sp-rich-core package will create the /home/user/MyDocs/core-dumps directory and also on all MMC media, so if you are not seeing any files appear in /home/user/MyDocs/core-dumps/ then check the locations /media/mmc*/core-dumps/ as well.

&lt;pre&gt;
Nokia-N900-40-12:~# ./crasher 
Segmentation fault (core dumped)

Nokia-N900-40-12:~# cd /home/user/MyDocs/core-dumps/
Nokia-N900-40-12:/home/user/MyDocs/core-dumps# rich-core-extract crasher-7764-11-2887.rcore.lzo 

# by default this will create a directory of the same name without the suffix

Nokia-N900-40-12:/home/user/MyDocs/core-dumps# ls -l crasher-7764-11-2887
-rw-r--r--    1 user     root            9 Oct  6 12:18 cmdline
-rw-r--r--    1 user     root           74 Oct  6 12:18 component_version
-rw-r--r--    1 user     root       135168 Oct  6 12:18 coredump
-rw-r--r--    1 user     root           31 Oct  6 12:18 date
-rw-r--r--    1 user     root          646 Oct  6 12:18 df
-rw-r--r--    1 user     root          217 Oct  6 12:18 fd
-rw-r--r--    1 user     root         2665 Oct  6 12:18 ifconfig
-rw-r--r--    1 user     root         1860 Oct  6 12:18 ls_proc
-rw-r--r--    1 user     root          403 Oct  6 12:18 osso-product-info
-rw-r--r--    1 user     root           34 Oct  6 12:18 osso_software_version
-rw-r--r--    1 user     root        21495 Oct  6 12:18 packagelist
-rw-r--r--    1 user     root        78002 Oct  6 12:18 proc2csv
-rw-r--r--    1 user     root         5449 Oct  6 12:18 slabinfo
-rw-r--r--    1 user     root         3723 Oct  6 12:18 smaps
&lt;/pre&gt;

The directory will contain lots of potentially useful information in addition to the core dump file.

== Links ==

[rich-core-dumper man page](/development/documentation/man_pages/rich-core-dumper.html)

[rich-core-extract man page](/development/documentation/man_pages/rich-core-extract.html)

== See Also ==

[[Documentation/devtools/maemo5/crash-reporter|crash-reporter]], [[Documentation/devtools/maemo5/sp-endurance|sp-endurance]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/sp-smaps-measure</title>
    <id>2525</id>
    <revision>
      <id>30996</id>
      <timestamp>2010-03-11T15:20:40Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

sp-smaps-measure installs an utility that can be invoked to take a
snapshot of /proc/*PID*/smaps files. The smaps files contain very
detailed information about processes' memory consumption.

== Packages ==

'''source''': sp-smaps

'''binary''': sp-smaps-measure

== Usage Examples ==

Writes output similar to `head -2000 /proc/[1-9]*/smaps` to logfile
''after_boot.cap''.

&lt;pre&gt;
# sp_smaps_snapshot &amp;gt; after_boot.cap
&lt;/pre&gt;

It is possible to request realtime priority with the ''--realtime''
option. This requires that the utility is run as superuser.

== Links ==

[sp_smaps_snapshot man page](/development/documentation/man_pages/sp_smaps_snapshot.html)

== See Also ==

[[Documentation/devtools/maemo5/sp-smaps-visualize|sp-smaps-visualize]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/sp-smaps-visualize</title>
    <id>2526</id>
    <revision>
      <id>30997</id>
      <timestamp>2010-03-11T15:20:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

sp-smaps-visualize provides utilities primarily for the host/Scratchbox environment to analyze smaps data captured by [[Documentation/devtools/maemo5/sp-smaps-measure|sp-smaps-measure]].

* ''sp_smaps_analyze'': Reads raw (.cap) or normalized (.csv) sp_smaps_snapshot capture data and produces detailed view to system / process / object memory usage in html format.

* ''sp_smaps_appvals'': Reads raw (.cap) or normalized (.csv) sp_smaps_snapshot capture data and produces a summary table for memory usage of all applications in the capture file.

* ''sp_smaps_diff'': Displays differences in application memory usage between smaps capture files.

* ''sp_smaps_filter'': Process captured smaps files in different ways.

* ''sp_smaps_flatten'': Reads raw capture files generated with sp_smaps_snapshot and tries to detect and remove duplicate entries due to multiple threads.

* ''sp_smaps_normalize'': Reads smaps snapshots and writes CSV format data that can be imported to spreadsheet programs or sp_smaps_analyze and friends.

== Packages ==

'''source''': sp-smaps

'''binary''': sp-smaps-visualize

== Usage Examples ==

Refer to each utility's man page for usage examples.

== Links ==

[sp_smaps_analyze man page](/development/documentation/man_pages/sp_smaps_analyze.html)

[sp_smaps_appvals man page](/development/documentation/man_pages/sp_smaps_appvals.html)

[sp_smaps_diff man page](/development/documentation/man_pages/sp_smaps_diff.html)

[sp_smaps_filter man page](/development/documentation/man_pages/sp_smaps_filter.html)

[sp_smaps_flatten man page](/development/documentation/man_pages/sp_smaps_flatten.html)

[sp_smaps_normalize man page](/development/documentation/man_pages/sp_smaps_normalize.html)

== See Also ==

[[Documentation/devtools/maemo5/sp-smaps-measure|sp-smaps-measure]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/sp-startup-time</title>
    <id>2571</id>
    <revision>
      <id>30998</id>
      <timestamp>2010-03-11T15:21:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

''sp-startup-time'' provides a library that can be preloaded with &lt;code&gt;LD_PRELOAD&lt;/code&gt; to measure the startup time of Gtk applications.

You can use it to identify bottlenecks in your application's startup and possibly to improve the user experience by providing you information to optimize the startup time.

== Packages ==

'''source''': sp-startup-time

'''binary''': sp-startup-time, sp-startup-time-dbg, sp-startup-time-dev

== Usage Examples ==

=== How it works ===

There are a few functions that are typically called during a Gtk application's startup and ''libstartup'' intercepts these function calls and collects the time each of them was called. The startup is considered finished once the installed Gtk idle callback is called.

&lt;code&gt;LD_PRELOAD&lt;/code&gt; has some shortcomings:

* It can be used only if the applications can be run directly,  i.e. it does not work with maemo-launched Gtk applications.

* Prelink information cannot be used with &lt;code&gt;LD_PRELOAD&lt;/code&gt;. This means that prelinked applications spend time in resolving library symbols when this is used.


Note!
In scratchbox &lt;code&gt;LD_PRELOAD&lt;/code&gt; does not work directly because scratchbox uses that by itself, use the ''run-with-startup-time'' script instead.

If instructed, '''libstartup''' will also write a full log of the intercepted calls. This is done at the time the application is unloaded.



=== Preloading ===

You can use two methods for preloading the '''libstartup''' binary during application execution; environment or global &lt;code&gt;ld.so&lt;/code&gt; configuration.

Setting the &lt;code&gt;LD_PRELOAD&lt;/code&gt; environment variable like below is preferred as that way it doesn't affect any other programs:

&lt;pre&gt;
# LD_PRELOAD=/usr/lib/sp-startup-time/libstartup.so app-to-run
&lt;/pre&gt;

However if the &quot;app-to-run&quot; happens to be a launcher script, not a real binary you might need to edit the script itself to contain the preload setting like this:

&lt;pre&gt;
#!/bin/sh
export LD_PRELOAD=/usr/lib/sp-startup-time/libstartup.so
app-to-run
&lt;/pre&gt;

Apart from the environment you can use the global &lt;code&gt;ld.so&lt;/code&gt; configuration to force preloading libstartup for all applications by editing the &lt;code&gt;/etc/ld.so.preload&lt;/code&gt; file. This is not however encouraged as any mistake might make the system unbootable.

=== Configuration ===

Normally ''libstartup'' writes the time application used to reach Gtk idle into syslog, but you can get more detailed information and direct it also to elsewhere with something like this:

&lt;pre&gt;
export STARTUP_IDLE_QUIT=yes
export STARTUP_WRITE_LOG=yes
export STARTUP_LOG_FILE=/home/user/startup-log.csv
&lt;/pre&gt;

See also &quot;How to interpret the results&quot; below.

The environment variables and how they control the runtime behavior of libstartup are:

&lt;code&gt;
STARTUP_LOG_DIR
&lt;/code&gt;

Explicitly set the directory where ''libstartup'' will write the logs.
	
If not set the logs will be written to the current working directory of the process at the time when libstartup init is called - that is just before the main function is entered.

&lt;code&gt;
STARTUP_LOG_FILE
&lt;/code&gt;

Explicitly set path used for writing logs.
	
If not set
&lt;code&gt;&amp;lt;$STARTUP_LOG_DIR&amp;gt;/&amp;lt;appname&amp;gt;--&amp;lt;pid&amp;gt;.startup&lt;/code&gt;
will be used.

&lt;code&gt;
STARTUP_WRITE_LOG
&lt;/code&gt;	

If set to '&lt;code&gt;yes&lt;/code&gt;', and the process reaches Gtk idle state, the full startup log will be written.
	
If set to '&lt;code&gt;force&lt;/code&gt;' the startup log will be written always, not just for Gtk apps.

&lt;code&gt;
STARTUP_IDLE_QUIT
&lt;/code&gt;

If set (to anything) &lt;code&gt;gtk_main_quit()&lt;/code&gt; will be called when idle state is reached. This is useful for batch testing several runs/applications.
	

The values can also be set by writing them to &lt;code&gt;/tmp/startup.env&lt;/code&gt;. This allows changing configuration for applications for which the environment values would be hard to modify. You could for example use &lt;code&gt;/etc/ld.so.preload&lt;/code&gt; to globally enable libstartup use for all applications and then set the configuration options via &lt;code&gt;/tmp/startup.env&lt;/code&gt;.


=== Custom timestamps ===

Sometimes you might want to add application specific measurement points to the libstartup log. This can be accomplished by inserting code similar to the example below to the application source file(s):

&lt;pre&gt;
+------- hello.c -------------------------------------------
#include &amp;lt;stdio.h&amp;gt;

void __cyg_profile_func_enter(const void *, const void *);

#define libstartup_custom_timestamp(text) \
  __cyg_profile_func_enter((void *)(-1),text)

int main(void)
{
  sleep(1);

  libstartup_custom_timestamp(&quot;main1&quot;);
  printf(&quot;hello, &quot;); fflush(stdout);
  sleep(1);

  libstartup_custom_timestamp(&quot;main2&quot;);
  printf(&quot;world\n&quot;); fflush(stdout);
  sleep(1);

  libstartup_custom_timestamp(&quot;main3&quot;);

  sleep(1);
  return 0;
}
+------- hello.c -------------------------------------------
&lt;/pre&gt;

It compiles as usual:

&lt;pre&gt;
# gcc -o hello hello.c
&lt;/pre&gt;
    
It executes as normal without ''libstartup'':

&lt;pre&gt;
# ./hello 
hello, world
&lt;/pre&gt;

And you get the custom timestamps with:

&lt;pre&gt;
# on device:
$ STARTUP_WRITE_LOG=f LD_PRELOAD=/usr/lib/sp-startup-time/libstartup.so ./hello

# in scratchbox:
$ STARTUP_WRITE_LOG=f run-with-startup ./hello

hello, world

# a file will be created:
+------- hello--5092.startup -------------------------------
generator=sp-startup-time 0.0.7
create_tod=1195657960.406658

t_tod,t_real,t_user,t_sys,f_real,f_user,f_sys,name
1195657960.406658,0.000,0.000,0.000,0.000,0.000,0.000,create
1195657960.406660,0.000,0.000,0.000,0.000,0.000,0.000,lib_init
1195657961.412616,1.000,0.000,0.000,0.000,0.000,0.000,main1
1195657962.422009,2.010,0.000,0.000,0.000,0.000,0.000,main2
1195657963.427050,3.020,0.000,0.000,0.000,0.000,0.000,main3
1195657964.432335,4.020,0.000,0.000,0.000,0.000,0.000,lib_exit
1195657964.432337,4.020,0.000,0.000,0.000,0.000,0.000,lib_fini
+------- hello--5092.startup -------------------------------
&lt;/pre&gt;

The rationale behind hijacking &lt;code&gt;__cyg_profile_func_enter()&lt;/code&gt;:

* we can't override functions defined in the main application binary using &lt;code&gt;LD_PRELOAD&lt;/code&gt; -&gt; it must be in some library
  
* we could provide dummy library with some kind of hook, but that would require modifying the application linking, not just the source code
  
=&gt; we use a dummy function provided by gnu libc

Note: The amount of measurement points is currently limited to 32. For Gtk applications this should leave 20 or so custom entries.

Note: If the same custom tag is used several times, only the last occurence is placed to the log file.

=== How to interpret the results ===

==== syslog ====

&lt;pre&gt;
Jan 27 14:33:51 localhost libstartup[12706]: firefox-bin=1.19 seconds
Jan 27 14:34:32 localhost libstartup[12727]: firefox-bin=1.13 seconds
&lt;/pre&gt;

The elapsed wall-clock time from process creation to Gtk idle time is written as seconds.

==== startup log ====

Entry time stamp:

- &lt;code&gt;t_tod&lt;/code&gt; time since epoch.
- &lt;code&gt;t_real&lt;/code&gt; elapsed time since process create
- &lt;code&gt;t_user&lt;/code&gt; CPU time spent in user land before call
- &lt;code&gt;t_sys&lt;/code&gt;  CPU time spent in kernel space before call
 
Time within:

- &lt;code&gt;f_real&lt;/code&gt; elapsed time within entry
- &lt;code&gt;t_user&lt;/code&gt; CPU time spent in user land during the call
- &lt;code&gt;t_sys&lt;/code&gt;  CPU time spent in kernel space during the call
  
Entry identification:

- &lt;code&gt;name&lt;/code&gt;   name of called function, or function1.leave-&gt;function2.entry transition

&lt;pre&gt;
+------- firefox-bin--12727.startup ------------------------
generator=sp-startup-time 0.0.7
create_tod=1195658611.448291

t_tod,t_real,t_user,t_sys,f_real,f_user,f_sys,name
1195658611.448291,0.000,0.000,0.000,0.280,0.000,0.010,create
1195658611.728293,0.280,0.000,0.010,0.000,0.000,0.000,lib_init
1195658611.729729,0.280,0.000,0.010,0.000,0.000,0.000,gtk_init
1195658611.735175,0.280,0.000,0.010,3.010,0.110,0.040,gtk_init-&gt;gtk_main
1195658614.744454,3.290,0.110,0.050,0.000,0.000,0.000,gtk_main
1195658614.744454,3.290,0.110,0.050,2.290,0.290,0.030,gtk_main-&gt;gui_idle
1195658617.032341,5.580,0.400,0.080,0.000,0.000,0.000,gui_idle
1195658617.032341,5.580,0.400,0.080,18.740,0.120,0.020,gui_idle-&gt;gtk_main_quit
1195658635.775691,24.320,0.520,0.100,0.010,0.000,0.000,gtk_main_quit
1195658635.775702,24.330,0.520,0.100,0.080,0.050,0.000,gtk_main_quit-&gt;lib_exit
1195658635.855718,24.410,0.570,0.100,0.000,0.000,0.000,lib_exit
1195658635.855720,24.410,0.570,0.100,0.000,0.000,0.000,lib_fini
+------- firefox-bin--12727.startup ------------------------
&lt;/pre&gt;

The following calls are intercepted and logged. The entries with preceding '+' will have time stamps for both entry to and leave from function. The ones marked with '-' will have only entry time stamps.

&lt;code&gt;
+ create	
+ lib_init	(installs lib_exit as atexit handler)	
+ gtk_init	(installs gui_idle as gtk idle handler)		
- gtk_main	
- gui_idle	
+ gtk_main_quit		
- lib_exit	
- lib_fini	
&lt;/code&gt;

The timestamps are obtained with &lt;code&gt;times()&lt;/code&gt; syscall which allows us to trace:

- &lt;code&gt;real time&lt;/code&gt; (elapsed wall clock time)
- &lt;code&gt;user time&lt;/code&gt; (time spent executing code)
- &lt;code&gt;sys time&lt;/code&gt;  (time spent in kernel servicing the process)

If there time difference between leaving the previous traced function and entering the next, a transition entry will be written. The interpretation of these transition entries depends on the situation, but generally:

&lt;code&gt;lib_init -&gt; gtk_init&lt;/code&gt;

Usually libstartup initialization is executed just before control is yielded to &lt;code&gt;main()&lt;/code&gt; entry of the application.  So this transition can be considered as &quot;non-gui-init&quot;.

&lt;code&gt;gtk_init -&gt; gtk_main&lt;/code&gt;

Setting up application main GUI.

	
&lt;code&gt;gtk_main -&gt; gui_idle&lt;/code&gt;

Realizing application main GUI.
	
&lt;code&gt;gui_idle -&gt; gtk_main_quit&lt;/code&gt;

Normal application operation.
	
&lt;code&gt;gtk_main_quit -&gt; lib_exit&lt;/code&gt;

Application shutdown
	
&lt;code&gt;lib_exit -&gt; lib_fini&lt;/code&gt;

As the &lt;code&gt;lib_exit&lt;/code&gt; is most likely the last &lt;code&gt;atexit&lt;/code&gt; handler called and &lt;code&gt;lib_fini&lt;/code&gt; the first library unload code executed, this is very unlikely to have nonzero time.
	
	
The &quot;create&quot; entry needs a bit of explanation too. The idea is that this contains time taken by the dynamic linker to bind the various binaries to the process. As the init code from ''libstartup'' is if not the last at least one of the last things done before entering application &lt;code&gt;main()&lt;/code&gt; function, we can guess that the CPU time spent before this is from the dynamic loader. Perhaps surprisingly determining the real time is quite difficult. The reason is that the syscalls that can be used to query time values return corrected real time and the process create time (as available via &lt;code&gt;/proc/pid/status&lt;/code&gt;) contains uncorrected jiffies value. To overcome this the ''libstartup'' forks a child process and uses the create time difference between parent and child as elapsed real time estimate. The child process is terminated right after the time difference evaluation.

The idle detection is also not without problems. It is common that there is a brief idle period right after entering &lt;code&gt;gtk_main&lt;/code&gt;. For this reason the idle status is is noted only when the idle handler is called enough times without using CPU for other purposes (in the context of the application process).

== Links ==

[run-with-startup-time man page](/development/documentation/man_pages/run-with-startup-time.html)

== See Also ==

[[Documentation/devtools/maemo5/syslog|syslog]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/sp-stress</title>
    <id>2573</id>
    <revision>
      <id>30999</id>
      <timestamp>2010-03-11T15:21:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

''sp-stress'' contains utilities that can create artificial system load. This can be useful when you want to verify that your application works also when the system is being otherwise stressed.

The utilities are:

* ''cpuload'' for generating CPU load

* ''ioload'' for generating I/O load

* ''memload'' for generating memory load

== Packages ==

'''source''': sp-stress

'''binary''': sp-stress

== Usage Examples ==

To create a 30% CPU load on the system:

&lt;pre&gt;
# cpuload 30
&lt;/pre&gt;

The I/O load is generated by performing read and write operations on a file that has been created just for this purpose. The file has to be on one of the MMC's since the device's internal flash memory is unsuitable for these operations (see the man page for more info).

Note!
The contents of the file will be ''destroyed'', so do not do this on a file that you care about.

&lt;pre&gt;
# ioload workfile
&lt;/pre&gt;

To consume 20 megabytes of memory:

&lt;pre&gt;
# memload 20
&lt;/pre&gt;

== Links ==

[cpuload man page](/development/documentation/man_pages/cpuload.html)

[ioload man page](/development/documentation/man_pages/ioload.html)

[memload man page](/development/documentation/man_pages/memload.html)

== See Also ==

-

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/strace</title>
    <id>2541</id>
    <revision>
      <id>34635</id>
      <timestamp>2010-05-21T09:23:49Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <comment>/* Links */ fix manpage link</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

Strace is a handy tool for seeing how an application is interacting with the operating system using the system calls. It displays the used system calls and parameters. It also shows the return codes of the system calls. In addition strace can attach to a running process making it a suitable tool for debugging the system calls that an already running process is calling.

Strace is especially helpful for:

* Figuring out why the program is failing to start or exits early.

* Finding out what (configuration) files are used by the program.

* Checking out whether the program is idle or wasting battery when it should not be doing anything.

* Finding out where a frozen program got stuck.

* Viewing an application's communications with the network.


== Packages ==

'''source''': strace

'''binary''': strace

== Usage Examples ==

=== Installing Strace ===

The &lt;code&gt;strace&lt;/code&gt; tool can be installed to the [[Nokia N900|N900]]. In Scratchbox it is possible to use the Scratchbox-provided &lt;code&gt;strace&lt;/code&gt;. Using &lt;code&gt;strace&lt;/code&gt; in an X86 target rather than in an ARMEL target is preferable for the reason that in an ARMEL target &lt;code&gt;strace&lt;/code&gt; will actually trace the system calls of the &lt;code&gt;QEMU&lt;/code&gt; process (which is used to run the arm binary).

=== Using Strace ===

These examples can be run both in Scratchbox X86 environment and in the N900 device itself.

==== Getting a System Call Trace from an Application ====

To get a simple list of the system calls the application is calling, strace is run with the path to the program as a parameter. Below strace is run with the small &lt;code&gt;gdb_example&lt;/code&gt; program that is introduced in the debugging guide &lt;ref name=&quot;dbg-guide&quot;&gt;[[Documentation/Maemo_5_Developer_Guide/Kernel_and_Debugging_Guide/Maemo_Debugging_Guide|Maemo debugging guide]]&lt;/ref&gt;.

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/src/testing/gdb_example] &amp;gt; strace ./gdb_example
execve(&quot;./gdb_example&quot;, [&quot;./gdb_example&quot;], [/* 50 vars */]) = 0
brk(0)                                  = 0x804a000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4001c000
access(&quot;/etc/ld.so.preload&quot;, R_OK)      = -1 ENOENT (No such file or directory)
open(&quot;/lib/tls/i686/sse2/libc.so.6&quot;, O_RDONLY) = -1 ENOENT (No such file or directory)
stat64(&quot;/lib/tls/i686/sse2&quot;, 0xbff86948) = -1 ENOENT (No such file or directory)
open(&quot;/lib/tls/i686/libc.so.6&quot;, O_RDONLY) = -1 ENOENT (No such file or directory)
stat64(&quot;/lib/tls/i686&quot;, 0xbff86948)     = -1 ENOENT (No such file or directory)
open(&quot;/lib/tls/sse2/libc.so.6&quot;, O_RDONLY) = -1 ENOENT (No such file or directory)
stat64(&quot;/lib/tls/sse2&quot;, 0xbff86948)     = -1 ENOENT (No such file or directory)
open(&quot;/lib/tls/libc.so.6&quot;, O_RDONLY)    = -1 ENOENT (No such file or directory)
stat64(&quot;/lib/tls&quot;, 0xbff86948)          = -1 ENOENT (No such file or directory)
open(&quot;/lib/i686/sse2/libc.so.6&quot;, O_RDONLY) = -1 ENOENT (No such file or directory)
stat64(&quot;/lib/i686/sse2&quot;, 0xbff86948)    = -1 ENOENT (No such file or directory)
open(&quot;/lib/i686/libc.so.6&quot;, O_RDONLY)   = -1 ENOENT (No such file or directory)
stat64(&quot;/lib/i686&quot;, 0xbff86948)         = -1 ENOENT (No such file or directory)
open(&quot;/lib/sse2/libc.so.6&quot;, O_RDONLY)   = -1 ENOENT (No such file or directory)
stat64(&quot;/lib/sse2&quot;, 0xbff86948)         = -1 ENOENT (No such file or directory)
open(&quot;/lib/libc.so.6&quot;, O_RDONLY)        = 3
read(3, &quot;\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 Y\1\000&quot;..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1213256, ...}) = 0
mmap2(NULL, 1222300, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x4001d000
mmap2(0x40142000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x124) = 0x40142000
mmap2(0x40145000, 9884, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40145000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40148000
set_thread_area({entry_number:-1 -&amp;gt; 6, base_addr:0x401486c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0x40142000, 4096, PROT_READ)   = 0
fstat64(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 2), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40149000
write(1, &quot;Now in main().\n&quot;, 15Now in main().
)        = 15
write(1, &quot;Now in example_1(1) function.\n&quot;, 30Now in example_1(1) function.
) = 30
write(1, &quot;Now in example_2(parameter here)&quot;..., 43Now in example_2(parameter here) function.
) = 43
write(1, &quot;Now in example_3()\n&quot;, 19Now in example_3()
)    = 19
exit_group(0)                           = ?
[sbox-FREMANTLE_X86: ~/src/testing/gdb_example] &amp;gt; 
&lt;/pre&gt;

&lt;div class=&quot;frame note&quot;&gt;
&lt;div class=&quot;label&quot;&gt;
N.B.
&lt;/div&gt;

&lt;div class=&quot;content&quot;&gt;
If you are using &lt;code&gt;strace&lt;/code&gt; in an ARMEL target, the option &lt;code&gt;-f&lt;/code&gt; needs to be given, so that the process run under the QEMU is also traced.
&lt;/div&gt;
&lt;/div&gt;

Essentially, one line in the output refers to one system call made to the Linux kernel. Every line has the name of the system call, the parameters to the call, and finally the return value of the system call.

For example, the line:
&lt;pre&gt;
write(1, &quot;Now in main().\n&quot;, 15Now in main().
)        = 15
&lt;/pre&gt;

tells that the system call that was called from gdb_example was &lt;code&gt;write()&lt;/code&gt; with parameters &lt;code&gt;(1,&quot;Now in main().\n&quot;, 15)&lt;/code&gt;, next the output of the call is shown: &lt;code&gt;&quot;Now in main().&quot;&lt;/code&gt; and finally the return code is displayed: &lt;code&gt;=15&lt;/code&gt;.

Note: Failed system calls usually (not always) return a return code of -1.

An example of a failed &lt;code&gt;stat64&lt;/code&gt; call would be:
&lt;pre&gt;
stat64(&quot;/lib/sse2&quot;, 0xbff86948)         = -1 ENOENT (No such file or directory)
&lt;/pre&gt;

Here the &lt;code&gt;stat64&lt;/code&gt; return value of -1 is displayed together with the symbolic name of &lt;code&gt;ENOENT&lt;/code&gt; error code. You can see clearly that the program tried to access &lt;code&gt;/lib/sse2&lt;/code&gt;, but failed for the reason that the file does not exist.

Studying the output of strace and comparing it to the source file tells that, for example, the gdb_example program's &lt;code&gt;printf()&lt;/code&gt; functions are each calling the &lt;code&gt;write()&lt;/code&gt; system call. In addition, it shows all the &lt;code&gt;open()&lt;/code&gt; and &lt;code&gt;stat64()&lt;/code&gt; and other system calls in the list.

==== Attaching to a Running Process with Strace ====

One can attach to a running process with strace. This is helpful, especially when debugging a daemon type of an application, and it is necessary to see what system calls the daemon is calling without restarting the daemon.

In the following example, the &lt;code&gt;top&lt;/code&gt; application is started inside Scratchbox and left running in one terminal. Then another terminal will be opened and &lt;code&gt;strace&lt;/code&gt; is attached to the &lt;code&gt;top&lt;/code&gt; application.

1. Start the &lt;code&gt;top&lt;/code&gt; application inside one terminal in Scratchbox X86 target:

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~] &amp;gt; top

## the screen clears and top starts to loop...

top - 14:49:35 up 17 days, 23:38,  0 users,  load average: 0.07, 0.02, 0.00
Tasks: 115 total,   2 running, 113 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0% us,  0.0% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:    775176k total,   754708k used,    20468k free,   126608k buffers
Swap:  1622524k total,    19716k used,  1602808k free,   413752k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
12807 user      16   0  2184 1172  888 R 79.0  0.2   0:00.09 top
    1 root      16   0  1632  536  448 S  0.0  0.1   0:01.56 init
    2 root      34  19     0    0    0 R  0.0  0.0   0:00.08 ksoftirqd/0
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0 
    4 root      10  -5     0    0    0 S  0.0  0.0   0:00.18 events/0 
    5 root      10  -5     0    0    0 S  0.0  0.0   0:00.01 khelper
    6 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kthread
    8 root      10  -5     0    0    0 S  0.0  0.0   0:00.11 kblockd/0
    9 root      10  -5     0    0    0 S  0.0  0.0   0:00.05 kacpid
 ... etc ...
&lt;/pre&gt;

1. Start another terminal window, log in on the Scratchbox and run the following commands:

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~] &amp;gt; pidof top
12807
[sbox-FREMANTLE_X86: ~] &amp;gt; strace -p 12807
&lt;/pre&gt;

With the &lt;code&gt;-p&lt;/code&gt; flag strace can be attached to a running process.

The &lt;code&gt;pidof&lt;/code&gt; command tells the process id (PID) of a running program. In this example, it is 12807 (in your machine the number will be different). The output of strace would look similar to this:

&lt;pre&gt;
Process 12807 attached - interrupt to quit
select(1, [0], NULL, NULL, {2, 320000}) = 0 (Timeout)
fcntl64(0, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
read(0, 0xbfeb191f, 1)                  = -1 EAGAIN (Resource temporarily unavailable)
ioctl(0, TCFLSH, 0)                     = 0
fcntl64(0, F_SETFL, O_RDWR)             = 0
gettimeofday({1195023907, 63212}, {4294967176, 0}) = 0
open(&quot;/proc&quot;, O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 7
fstat64(7, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
fcntl64(7, F_SETFD, FD_CLOEXEC)         = 0
getdents64(7, /* 35 entries */, 1024)   = 1008
getdents64(7, /* 37 entries */, 1024)   = 1008
stat64(&quot;/proc/1&quot;, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
open(&quot;/proc/1/stat&quot;, O_RDONLY)          = 8
read(8, &quot;1 (init) S 0 1 1 0 -1 4194560 43&quot;..., 1023) = 187
close(8)                                = 0
open(&quot;/proc/1/statm&quot;, O_RDONLY)         = 8
read(8, &quot;738 463 133 21 0 361 0\n&quot;, 1023) = 23
close(8)                                = 0
stat64(&quot;/proc/2&quot;, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
open(&quot;/proc/2/stat&quot;, O_RDONLY)          = 8
read(8, &quot;2 (kthreadd) S 0 0 0 0 -1 41024 &quot;..., 1023) = 128
close(8)                                = 0
open(&quot;/proc/2/statm&quot;, O_RDONLY)         = 8
read(8, &quot;0 0 0 0 0 0 0\n&quot;, 1023)        = 14
close(8)                                = 0
stat64(&quot;/proc/3&quot;, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
open(&quot;/proc/3/stat&quot;, O_RDONLY)          = 8
read(8, &quot;3 (migration/0) S 2 0 0 0 -1 410&quot;..., 1023) = 135
close(8)                                = 0

... long list of output ...
&lt;/pre&gt;

Studying the output of strace, you can see what system calls the &lt;code&gt;top&lt;/code&gt; program is calling during its main loop. In this case, &lt;code&gt;top&lt;/code&gt; is opening a lot of files under the &lt;code&gt;/proc/&lt;/code&gt; file system to get information about the running processes in the system.

==== How to Trace All the Running Applications ====

Occasionally it may be necessary to trace all the running applications in the device. For example, it may be necessary to know which process
accesses some specific file, while not keeping it open all the time (if it is kept open all the time, it can be found from &lt;code&gt;/proc/*/fd/&lt;/code&gt; or with &lt;code&gt;lsof&lt;/code&gt;).

In the following example from the device, the &lt;code&gt;open()&lt;/code&gt; system calls are traced from all running programs started after the &lt;code&gt;DSME&lt;/code&gt; process.

&lt;pre&gt;
/home/user # strace -e trace=open \
      $(cd /proc/; dsme=$(pidof dsme|cut -d' ' -f1); \
      for pid in [0-9]*; do \
         if [ $pid -gt $dsme ] &amp;amp;&amp;amp; [ $pid != $$ ]; then \
             echo &quot;-p $pid&quot;; \
         fi; \
      done) 
&lt;/pre&gt;

Note: The above command does not start to trace the &lt;code&gt;DSME&lt;/code&gt;. Accidentally suspending &lt;code&gt;DSME&lt;/code&gt; would cause the device to reboot because &lt;code&gt;DSME&lt;/code&gt; keeps the device's HW watchdog refreshed.

The output of the command will look similar to this:
&lt;pre&gt;
/home/user # strace -e trace=open \
&amp;gt;       $(cd /proc/; dsme=$(pidof dsme|cut -d' ' -f1); \
&amp;gt;       for pid in [0-9]*; do \
&amp;gt;          if [ $pid -gt $dsme ] &amp;amp;&amp;amp; [ $pid != $$ ]; then \
&amp;gt;              echo &quot;-p $pid&quot;; \
&amp;gt;          fi; \
&amp;gt;       done) 
Process 1019 attached - interrupt to quit
Process 1036 attached - interrupt to quit
Process 1039 attached - interrupt to quit
...snip...
Process 13559 attached - interrupt to quit
attach: ptrace(PTRACE_ATTACH, ...): No such process
Process 332 attached - interrupt to quit
Process 3606 attached - interrupt to quit
attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted
Process 434 attached - interrupt to quit
Process 682 attached - interrupt to quit
...snip...
Process 332 detached
[pid   762] open(&quot;/dev/dspctl/ctl&quot;, O_RDWR) = 6
[pid   762] open(&quot;/dev/dspctl/ctl&quot;, O_RDWR) = 6
[pid   762] open(&quot;/dev/dspctl/ctl&quot;, O_RDWR) = 6
[pid   709] --- SIGALRM (Alarm clock) @ 0 (0) ---
[pid   709] --- SIGALRM (Alarm clock) @ 0 (0) ---
[pid   762] open(&quot;/dev/dspctl/ctl&quot;, O_RDWR) = 6
[pid   709] --- SIGALRM (Alarm clock) @ 0 (0) ---
... etc ...
          
&lt;/pre&gt;

The output shows which processes strace attaches to and what are the files those processes are opening.

&lt;div class=&quot;frame note&quot;&gt;
&lt;div class=&quot;label&quot;&gt;
N.B.
&lt;/div&gt;

&lt;div class=&quot;content&quot;&gt;
If there are lots of system calls performed by the process(es), &lt;code&gt;strace&lt;/code&gt; might not show all of them. So, basically the output in this kind of a situation is only indicative. For more accurate information, a specific single processes can be traced.
&lt;/div&gt;
&lt;/div&gt;

==== Other Strace Options ====

Here are examples of some of the useful strace options.

* &lt;code&gt;-f fork&lt;/code&gt;

:The &lt;code&gt;-f fork&lt;/code&gt; option tells strace to follow the execution  to the forked process from the calling process. By default, strace does not follow forks.

* &lt;code&gt;-e expr&lt;/code&gt;

:The &lt;code&gt;-e&lt;/code&gt; option is handy when it is necessary to limit the scope of the output. For example,

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/src/testing/gdb_example] &amp;gt; strace -e trace=network ./gdb_example
&lt;/pre&gt;

:would only output those calls that are network-related. In this example, there would be no other output than the normal output of the program.

:However,

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/src/testing/gdb_example] &amp;gt; strace -e trace=file ./gdb_example
&lt;/pre&gt;

:would only show which system calls are called related to accessing files.

* &lt;code&gt;-tt&lt;/code&gt;

:The &lt;code&gt;-tt&lt;/code&gt; option makes strace precede each system call with the time it was called. This could potentially be used for rough performance analysis.

:Start a process and trace all IPC and network related system calls it makes and print the time of day with microseconds for each traced system call.

&lt;pre&gt;
[sbox-FREMANTLE_X86: ~/] &amp;gt; strace -tt -e trace=ipc,network ./some_program -programs -own -args
&lt;/pre&gt;

== Links ==

[http://linux.die.net/man/1/strace strace man page](/development/documentation/man_pages/strace.html)

&lt;references/&gt;

== See Also ==

[[Documentation/devtools/maemo5/ltrace|ltrace]],
[[Documentation/devtools/maemo5/latrace|latrace]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/syslog</title>
    <id>2527</id>
    <revision>
      <id>40053</id>
      <timestamp>2010-11-10T19:07:29Z</timestamp>
      <contributor>
        <username>aranelsurion</username>
        <id>3546</id>
      </contributor>
      <text xml:space="preserve">{{Devtools}}


== Description ==

The syslogd daemon is responsible for providing logging of messages
received from programs and facilities on the local host as well as
from remote hosts.

The klogd daemon listens to kernel message sources and is responsible
for prioritizing and processing operating system messages.  The klogd
daemon can run as a client of syslogd or optionally as a standalone
program.

== Packages ==

'''source''': sysklogd

'''binary''': sysklogd, klogd


To install these, run:
&lt;pre&gt;
sudo gainroot
apt-get install sysklogd
&lt;/pre&gt;

== Usage ==

To start the klogd and syslog daemons:

&lt;pre&gt;
# start sysklogd
&lt;/pre&gt;

Note that with time syslog can fill the root filesystem completely.  When that'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't be a problem, but it depends on the device usage. So, '''after you don't anymore need syslog, remove it and &lt;tt&gt;rm /var/log/syslog*&lt;/tt&gt;.'''

If you want to share your syslog file with public (Bugzilla?), removing IMEI and BSSID numbers is very important for security purposes.

== Links ==

[http://maemo.org/development/documentation/man_pages/sysklogd/ sysklogd man page]

[http://maemo.org/development/documentation/man_pages/klogd/ klogd man page]

== See Also ==

-

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/sysstat</title>
    <id>2528</id>
    <revision>
      <id>31002</id>
      <timestamp>2010-03-11T15:23:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

The sysstat package contains the sar, mpstat, iostat, sadf and sa tools for Linux.

* sar command collects and reports system activity information.

* iostat command reports CPU utilization and I/O statistics for disks.

* mpstat command reports global and per-processor statistics.

* sadf command is used to display data collected by sar in various formats.


The statistics reported by sar concern I/O transfer rates, paging activity, process-related activities, interrupts, network activity, memory and swap space utilization, CPU utilization, kernel activities and TTY statistics, among others.

== Packages ==

'''source''': sysstat

'''binary''': sysstat

== Usage Examples ==

-

== Links ==

[iostat man page](/development/documentation/man_pages/iostat.html)

[mpstat man page](/development/documentation/man_pages/mpstat.html)

[sa1 man page](/development/documentation/man_pages/sa1.html)

[sa2 man page](/development/documentation/man_pages/sa2.html)

[sadc man page](/development/documentation/man_pages/sadc.html)

[sadf man page](/development/documentation/man_pages/sadf.html)

[sar man page](/development/documentation/man_pages/sar.html)

[http://perso.orange.fr/sebastien.godard/ http://perso.orange.fr/sebastien.godard/]

== See Also ==

-

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/tcpdump</title>
    <id>2529</id>
    <revision>
      <id>31003</id>
      <timestamp>2010-03-11T15:24:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

Tcpdump is a powerful utility to capture and monitor data on the network.

Tcpdump can take a boolean expression to filter the traffic according to your interests. For example if you're only interested in HTTP traffic, you can easily let tcpdump only show or capture that.

Tcpdump is also able to print out a description of the contents of each captured packet. However, for closer analysis it's usually best to save the data and analyze it later.

== Packages ==

'''source''': tcpdump

'''binary''': tcpdump

== Usage Examples ==

Capture all data coming from host ''host.domain.net'' to your machine and write it to the file ''capture.cap'':

&lt;pre&gt;
# tcpdump -w capture.cap src host.domain.net
&lt;/pre&gt;

Display on screen a hex dump of all UDP packets going to ''host.domain.net'':
&lt;pre&gt;
# tcpdump -X udp and dst host.domain.net
&lt;/pre&gt;

== Links ==

[tcpdump man page](/development/documentation/man_pages/tcpdump.html)

== See Also ==

[[Documentation/devtools/maemo5/iputils|iputils]], [[Documentation/devtools/maemo5/netcat|netcat]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/traceroute</title>
    <id>2530</id>
    <revision>
      <id>31004</id>
      <timestamp>2010-03-11T15:24:18Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

Traceroute prints the route packets take to a network host. It displays each network hop and the time taken to reach it.

Traceroute is similar to tracepath, but offers more options and with some options requires superuser priviledges to run.

== Packages ==

'''source''': traceroute

'''binary''': traceroute


== Usage Examples ==

Find out the route the packets take from your machine to *www.maemo.org*:

&lt;pre&gt;
# traceroute www.maemo.org
&lt;/pre&gt;

== Links ==

[traceroute man page](/development/documentation/man_pages/traceroute.html)

== See Also ==

[[Documentation/devtools/maemo5/iputils|iputils]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/valgrind</title>
    <id>2531</id>
    <revision>
      <id>31005</id>
      <timestamp>2010-03-11T15:24:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

Valgrind is an Open Source suite of tools for debugging and profiling Linux programs. It works only on x86 (and PPC).

Valgrind is a really powerful and easy to use tool that can save you a lot of debugging time.

Because Valgrind works by simulating the x86 processor and instrumenting the binaries on the fly, it can control the program execution completely. As a downsize it makes program execution 10-300 times slower than normally, depending on the used Valgrind tools (massif is the fastest, callgrind the slowest) and can take a huge amount of memory.

The tools available for Valgrind are: 

* ''Massif'': run-time memory usage graph and hyperlinked allocation backtraces (allocation are sorted by time*size)

* ''Memcheck'': Detects memory access errors (writes to freed memory, reads from uninitialized memory) and memory leaks (process has lost a pointer to allocation). This reports less false positives than any other (Open Source) tool and can call gdb when the error happens

* ''Cachegrind'': Performance profiling which can be started and stopped at any moment and the results can be sorted according to instructions, cache hits etc.

* ''Callgrind'': Like Cachegrind, but stores also callgraph information (but can show only instruction counts). Works very well with the Kcachegrind UI.

* ''Helgrind'': Detects race conditions when (p)threaded programs access global data

=== Building Valgrind ===

Please note that in maemo environment we need to ''export G_SLICE=&quot;always-malloc&quot;'' to avoid getting bogus leakage reports from Glib GSlice allocator (its TLS usage confuses Valgrind allocation tracking). If you build your own Valgrind version, you should use this setting when Valgrinding programs using Glib (e.g. all maemo UI apps).

== Packages ==

'''source''': valgrind

'''binary''': valgrind


== External links ==

http://valgrind.org/
 
http://valgrind.org/info/tools.html

http://valgrind.org/docs/manual/mc-manual.html

http://valgrind.org/docs/manual/ms-manual.html

http://valgrind.org/docs/manual/cl-manual.html

http://valgrind.org/docs/manual/hg-manual.html

== See also ==

[[Documentation/Maemo_5_Developer_Guide/Kernel_and_Debugging_Guide/Maemo_Debugging_Guide#Valgrind_Debugger|Maemo debugging guide]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/valgrind on n900</title>
    <id>4842</id>
    <revision>
      <id>43109</id>
      <timestamp>2011-04-17T16:21:48Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>initial version</comment>
      <text xml:space="preserve">{{Devtools}}

== Description ==
This page is about installing and running Valgrind on N900.

== Installing to N900/Maemo 5 ==
Package valgrind-3.6.0 supports ARM and can be installed on N900 from extras-devel. It depends on package libc6-dbg, which can be installed on fremantel/sdk-repository.


Add row
deb http://repository.maemo.org/ fremantle/sdk free

to end of the file /etc/apt/sources.list.d/hildon-application-manager.list

Then run: apt-get update ;apt-get install valgrind-3.6.0

== Using ==
E.g. valgrind ls

== Packages ==

'''source''': valgrind-3.6.0

'''binary''': valgrind-3.6.0

http://maemo.org/packages/view/valgrind-3.6.0/


== External links ==

http://valgrind.org/
 

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/vi</title>
    <id>2532</id>
    <revision>
      <id>43677</id>
      <timestamp>2011-05-30T13:57:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Links */ wikify link</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

The vi (visual) utility is a powerful text file editor that can be accessed from the command line terminal. It is installed to the device by default.

== Packages ==

'''source''': N/A

'''binary''': N/A

== Usage Examples ==

Open up a file for viewing and editing:

&lt;pre&gt;
# vi myfile.txt
&lt;/pre&gt;

''Exit from vi'': type '''ESC:q!''', that's ESC, colon, q and an exclamation mark.

''Edit the opened file'': press ''''i''''. In this mode you are able to make changes to the file.

''To save changes type'': '''ESC:w''', that's ESC, colon, w.

''To save changes and quit'': '''ESC:wq'''

== Links ==

[[:wikipedia:Vi|vi article at Wikipedia]]

== See Also ==

[[Documentation/devtools/maemo5/nano|nano]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/wget</title>
    <id>2533</id>
    <revision>
      <id>31007</id>
      <timestamp>2010-03-11T15:25:52Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

GNU Wget is a free software package for retrieving files using HTTP, HTTPS and FTP, the most widely-used Internet protocols.

Wget's usage is well documented in the lengthy man page found in the links section.

== Packages ==

'''source''': wget

'''binary''': wget

== Usage Examples ==

Here are some really basic examples.

Fetch a file from a server:

&lt;pre&gt;
# wget http://some.host.net/file.tgz
&lt;/pre&gt;

Fetch all png files in a subdirectory (if robots.txt allows it):

&lt;pre&gt;
# wget -r --no-parent -A &quot;*.png&quot; http://some.host.net/pics/
&lt;/pre&gt;

== Links ==

[wget man page](/development/documentation/man_pages/wget.html)

http://www.gnu.org/software/wget/

== See Also ==

-

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/wireless-tools</title>
    <id>2575</id>
    <revision>
      <id>31008</id>
      <timestamp>2010-03-11T15:26:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

This package contains the Wireless tools, used to manipulate the Linux Wireless Extensions. The Wireless Extension is an interface allowing you to set Wireless LAN specific parameters and get the specific stats.

* ''ifrename'' - rename network interfaces based on various criteria.

* ''iwconfig'' - configure a wireless network interface.

* ''iwevent'' - display wireless events generated by drivers and setting changes.

* ''iwgetid'' - report ESSID, NWID or AP/Cell Address of wireless network.

* ''iwlisst'' - get more detailed wireless information from a wireless interface.

* ''iwpriv'' - configure optional parameters of a wireless network interface.

* ''iwspy'' - Get wireless statistics from specific nodes. '''NOTE: This tool does not currently work!'''

== Packages ==

'''source''': wireless-tools

'''binary''': wireless-tools, ifrename

== Usage Examples ==

-

== Links ==

[ifrename man page](/development/documentation/man_pages/ifrename.html)

[iwconfig man page](/development/documentation/man_pages/iwconfig.html)

[iwevent man page](/development/documentation/man_pages/iwevent.html)

[iwgetid man page](/development/documentation/man_pages/iwgetid.html)

[iwlist man page](/development/documentation/man_pages/iwlist.html)

[iwpriv man page](/development/documentation/man_pages/iwpriv.html)

[iwspy man page](/development/documentation/man_pages/iwspy.html)

== See Also ==

-

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/x11-utils</title>
    <id>2631</id>
    <revision>
      <id>45914</id>
      <timestamp>2011-12-03T04:39:32Z</timestamp>
      <contributor>
        <username>gryllida</username>
        <id>3161</id>
      </contributor>
      <minor/>
      <comment>/* Description */ remove typo</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

A set of basic X window system debugging tools:

* xev: monitor X events to a window
* xlsatoms: list interned atoms defined on server
* xlsclients: list client applications running on a display
* xprop: list properties of the given window
* xwininfo: show information about a given window

== Packages ==

'''source''': x11-utils

'''binary''': x11-utils

== Usage Examples ==

List all windows on screen:

&lt;pre&gt;
# xwininfo -tree -root
&lt;/pre&gt;

What application owns the window/dialog/popup covering the screen:

&lt;pre&gt;
# xprop | grep WM_NAME (and click the window)
&lt;/pre&gt;

Is my window receiving the events it should:

&lt;pre&gt;
# xwininfo | grep id: (click the window)
# xev -id 0xWINDOW_ID
&lt;/pre&gt;

== Links ==

[xev man page](/development/documentation/man_pages/xev.html)

[xprop man page](/development/documentation/man_pages/xprop.html)

[xlsatoms man page](/development/documentation/man_pages/xlsatoms.html)

[xlsclients man page](/development/documentation/man_pages/xlsclients.html)

[xwininfo man page](/development/documentation/man_pages/xwininfo.html)

== See Also ==

[[Documentation/devtools/maemo5/xrestop|xrestop]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/xnee</title>
    <id>2535</id>
    <revision>
      <id>49542</id>
      <timestamp>2012-09-09T12:33:48Z</timestamp>
      <contributor>
        <username>halftux</username>
        <id>5357</id>
      </contributor>
      <comment>/* Links */</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

Xnee is a suite of programs that can record, replay and distribute user actions (X events) under the X11 environment. It can be used for example for test automation.

Xnee installs two programs; ''cnee'' and ''gnee''. ''cnee'' is the command line utility and ''gnee'' is the graphical user interface to ''cnee''.

Limitation: Xnee does not support the XInput extension used for thumb interaction.

== Packages ==

'''source''': xnee

'''binary''': xnee

== Usage Examples ==

Record mouse events:

&lt;pre&gt;
# cnee --record --mouse --events-to-record 100 -o mouse_rec.xnl
&lt;/pre&gt;

Do some actions with the stylus and press control-C once you're done,
or continue using the stylus until 100 events are reached at which
point ''cnee'' will exit.

To replay back what you just recorded:

&lt;pre&gt;
# cnee --replay --file mouse_rec.xnl&amp;
&lt;/pre&gt;

== Links ==

[cnee man page](/development/documentation/man_pages/cnee.html)

http://maemo.org/development/documentation/man_pages/cnee/

http://www.gnu.org/software/xnee/

http://www.linuxjournal.com/article/6660

http://talk.maemo.org/showpost.php?p=1198287&amp;postcount=4

== See Also ==

[[Documentation/devtools/maemo5/xresponse|xresponse]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/xresponse</title>
    <id>2536</id>
    <revision>
      <id>31011</id>
      <timestamp>2010-03-11T15:27:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

Xresponse synthetizes X stylus events and outputs screen update sizes and their timestamps.

Xresponse can catch applications doing screen updates which are not done as a response to user input/request and updates of unnecessary parts of application UIs. These are detrimental to application performance and device use-time.

Xresponse can also be used to time the applications screen updates i.e. their response time.

The screen update areas are output in the &quot;X geometry&quot; format (WIDTH x HEIGHT + X + Y).

== Packages ==

'''source''': xresponse

'''binary''': xresponse

== Usage Examples ==

=== Monitoring screen updates ===

Xresponse can be used to monitor how large parts of the screen and how often an application is updating them. To run it in the screen update monitoring mode, use:

&lt;pre&gt;
# xresponse -w 0 -i 
&lt;/pre&gt;

Then just use the applications.

=== Timing application response / screen updates ===

Xresponse can synthetize stylus taps; just specify where they should happen with the -c option and how long Xresponse should wait for the screen updates before proceeding with the -w option:

&lt;pre&gt;
# xresponse -w 5 -c 200x20 
&lt;/pre&gt;

If you want to monitor only part of the screen, e.g. toolbar, you can give which area of the screen is monitored with the -m option:

&lt;pre&gt;
# xresponse -m 800x80+0+400 -w 20 -c 650x430 
&lt;/pre&gt;

(This is useful for example if an application like Browser can be updating the normal application area also without user interaction.)

To time application startup, open the Task Navigator application menu, synthetize a tap to the menu item starting the application and monitor the screen updates. With most applications the last screen update is the time when the application is fully initialized and ready for use.

=== Keypress simulation ===

Xresponse can also simulate pressing single keys and typing strings.

To simulate pressing the Tab key, entering the string 'Foobar' and pressing Enter with a pause of one second between the events:

&lt;pre&gt;
# xresponse -w 1 -k Tab,100 -w 1 -t Foobar -w 1 -k Return,100
&lt;/pre&gt;

== Notes ==

There are a few quirks with the order of the options. The '''-o''' or '''--logfile''' option has to be given as the first option for it to work.

== Links ==

[xresponse man page](/development/documentation/man_pages/xresponse.html)

http://projects.o-hand.com/xresponse/

== See Also ==

[[Documentation/devtools/maemo5/xnee|xnee]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/xresponse-visualize</title>
    <id>2537</id>
    <revision>
      <id>31012</id>
      <timestamp>2010-03-11T15:28:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

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.

* ''xresponse-convert'': create a series of images from xresponse logs highlighting the area of the screen where changes were detected.

* ''xresponse-visualize'': animates images create with xresponse-convert

== Packages ==

'''source''': xresponse-visualize

'''binary''': xresponse-visualize


== Usage Examples ==

-

== Notes ==

The recommended ''imagemagick'' dependency for xresponse-visualize is not (yet) provided with the maemo SDK, but are expected to be found from the user's host system.  It's needed only by the animated GIF creation script, not by the visualization program itself.

== Links ==

[xresponse-convert man page](/development/documentation/man_pages/xresponse-convert.html)

[xresponse-visualize man page](/development/documentation/man_pages/xresponse-visualize.html)

== See Also ==

[[Documentation/devtools/maemo5/xresponse|xresponse]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation/devtools/maemo5/xrestop</title>
    <id>2538</id>
    <revision>
      <id>31013</id>
      <timestamp>2010-03-11T15:28:22Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>devtools template</comment>
      <text xml:space="preserve">{{Devtools}}


== Description ==

Xrestop shows how much X resources from the X server are being used by the X clients. It is similar to '''top''' and [htop].

== Packages ==

'''source''': xrestop

'''binary''': xrestop

== Usage ==

&lt;pre&gt;
# xrestop
&lt;/pre&gt;

== Links ==

[xrestop man page](/development/documentation/man_pages/xrestop.html)

http://www.freedesktop.org/wiki/Software/xrestop

== See Also ==

[[Documentation/devtools/maemo5/htop|htop]], [[Documentation/devtools/maemo5/x-debug-tools|x-debug-tools]]

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation for pyside-assistant</title>
    <id>5057</id>
    <revision>
      <id>45837</id>
      <timestamp>2011-11-24T17:51:40Z</timestamp>
      <contributor>
        <username>wmoreira</username>
        <id>4818</id>
      </contributor>
      <comment>[[Documentation for pyside-assistant]] moved to [[Python/Harmattan/Documentation for pyside-assistant]]</comment>
      <text xml:space="preserve">#REDIRECT [[Python/Harmattan/Documentation for pyside-assistant]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation rules</title>
    <id>1166</id>
    <revision>
      <id>6843</id>
      <timestamp>2008-08-28T03:07:46Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Documentation rules]] moved to [[Task:Documentation rules]]: Moving to correct namespace</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Documentation rules]]</text>
    </revision>
  </page>
  <page>
    <title>Documentation wishlist</title>
    <id>74</id>
    <revision>
      <id>30413</id>
      <timestamp>2010-03-02T16:49:28Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Brought up to date. Most requested docs exist now, thus deleted from wishlist.</comment>
      <text xml:space="preserve">
This page is for collecting desired documentation into a most wanted list. If you feel documentation is missing for something, please add it here and include a rough list of ideas on what that document should contain.

== Common tasks and use-cases ==

Suggestions for APIs or common tasks which need to be documented with code samples, prerequisites, set-up &amp; tear-down. Half way between tutorials and API docs.

Wish-list here - and link to docs when they're created in [[Documentation#Tasks_and_use-cases]].

== General software development ==

*How to use the GStreamer *dspsinks

== Audio support ==
* How can I play a sound from withing an application?
* How can I record audio from the microphone?
* How can I play a backing track without affecting performance, power usage or blocking I/O?

== Debugging aid== 
* How to single-step an application on the device?
* How to debug an application in Scratchbox?
* How to profile a Maemo application on the device?

== Style guidelines ==

When explaining source code and/or techniques experience has shown that specifying the OS version and hardware can be very useful for users. Something like: &quot;This procedure has been tested on a Nokia 770 with ITOS 3.2006.49-2&quot; saves users time and energy.

''Suggestion:'' Use tagging &amp; categories to tag documentation as verified with an OS release. --[[User:dneary|Dave Neary]] 16:49, 2 March 2010 (UTC)

[[Category:Documentation]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Downloading applications</title>
    <id>2748</id>
    <revision>
      <id>49464</id>
      <timestamp>2012-09-06T03:00:14Z</timestamp>
      <contributor>
        <ip>119.162.32.31</ip>
      </contributor>
      <comment>/* Other ways */</comment>
      <text xml:space="preserve">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. 

There are multiple repositories available for the N900:

# [http://maemo.nokia.com/maemo-select/applications/ovi-store/ Nokia's Ovi Store]
# Commercial Application Vendors
# [[Extras | Community Applications]]

The Application Manager also allows you to uninstall applications as well as keep you notified of updates to your installed applications.

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. You may also want to [[Installing applications|install applications]] which are not available through maemo.org, but which you download from third party sites.

If you can't find what you want, 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'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'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...] and there's a separate Developer FAQ on this site.

== Application manager ==

Application manager is a preinstalled graphical user interface to  [[:wikipedia:Advanced Packaging Tool|APT]].

Application manager shows contents of configured [[repository|repositories]]. It is a tool to search and install software. The basic repository list has approximately same content as maemo.org Downloads.

Application manager also handles software updates automaticly.

==Managing Repositories==

In this example, we will be enabling the 'maemo.org' repository. (Which should already exist, but this is simply an example.)

Open Application Manager (Dashboard &gt; Menu &gt; More... &gt; App. manager)

[[Image:OpeningAppManager.png|Open the Application Manager|400px]]

Go to Application catalogs (Press the menu bar at the top, where it says application manager)

[[Image:ApplicationCatalog.png|Open the Application Catalog|400px]]

Press New

[[Image:NewAppCatalog.png|Create a New Application Catalog|400px]]

Enter the Catalog Details

[[Image:EnterCatalogDetails.png|Open the Application Manager|400px]]

You can also disable catalogs for future use (Useful for maemo.org extras-testing and maemo.org extras-devel catalogs.)

[[Image:DisableCatalog.png|Open the Application Manager|400px]]

Save.

== Other ways ==

It is recommended to use the application manager since it this is the easiest way to install software. If it doesn't suit your needs please see the following solutions:

* [http://maemo.nokia.com/maemo-select Maemo Select] - now turned for the Harmattan device  and no longer for maemo 5 ! 
* [http://maemo.org/downloads/ maemo.org Maemo Downloads] - for community-developed apps
* [https://www.webcam2cam.com/ Mobile Cam] 
* [https://store.ovi.com/ Ovi Store] - for commercially-developed apps

See also article [[Installing applications]] if you are interested in [[:Category:Power users|Power users]] manual pages. ''Please read disclaimer from last link before proceeding!''

[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>Downloading apps</title>
    <id>3131</id>
    <revision>
      <id>23961</id>
      <timestamp>2009-12-04T11:52:58Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Downloading apps]] moved to [[Downloading applications]]: Avoid unnecessary abbrvs.</comment>
      <text xml:space="preserve">#REDIRECT [[Downloading applications]]</text>
    </revision>
  </page>
  <page>
    <title>Drivers justification</title>
    <id>797</id>
    <revision>
      <id>12661</id>
      <timestamp>2009-04-20T18:36:10Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <minor/>
      <comment>/* 5 Mbit SRAM Framebuffer */ Beautifying link</comment>
      <text xml:space="preserve">The tablets contain a number of components which are not documented or utilized at all. We believe these components are holding back further development and advancement of the platform.

If we had drivers and documentation for each element we could get the most out of our devices.

== PowerVR MBX ==

The OMAP2-based devices contain a 3D graphics processor, which is currently not used. We (the maemo.org community) would like to ask Nokia to release a driver for this component so that we can develop more advanced GUIs, games, etc.

With desktop computers, 2D and 3D effects are becoming the norm (e.g. Windows Aero on Vista, Quartz on Mac OS X, and Compiz on Linux desktops). Embedded devices such as the iPhone are also using graphics acceleration (in that case a PowerVR too) to provide very polished, visually pleasing, and interesting interfaces to the their respective &quot;desktops&quot; and making that acceleration available to applications as well.

We believe that having access to the graphics acceleration hardware on the N8x0 will allow developers to create new and compelling interfaces, applications and games, which will give us a head-start in developing for future Nokia tablet devices (which will presumably have 3D acceleration available from the outset).

Therefore, we would like to ask Nokia to make available to us the PowerVR driver and OpenGL ES implementation. We understand that the driver in question has some issues (e.g. stability, awkward implementation details - console must be left open, etc.), but it would be a great help.

Ideally we would like the source code for the driver, support library and OpenGL ES library, but we understand that this is ImgTech's IP and therefore they will probably be unwilling to support this; as a second we would like a binary-blob style driver, which can then be used with different Linux kernels, but we do not know whether this is the form the current driver takes, or if it would entail extra effort and expense for Nokia (it would surely be in Texas Instruments' and ImgTech's best interest to do this, to push the use and acceptance of their technology, but that is a moot point in this discussion). As a last option, we would simply like access to the existing binary driver, support library and OpenGL ES library.

== IVA ==

The OMAP2420 contains something called an IVA (imaging and video accelerator), which we are told&lt;ref  name=TIOMAP2420&gt;http://focus.ti.com/pdfs/wtbu/TI_omap2420.pdf&lt;/ref&gt; is able to do full motion video encoding/decoding at up to 30fps and also fast JPEG compression/decompression. This hardware is not used at present, but is apparently able to do quite a lot. The tablets are currently limited by the LCD controller bandwidth, but are also limited by the ARM CPU in the quality and size of the videos they are able to decode.

We would like to know why the IVA is not being used, and if possible to obtain technical information about it to allow us to program and use it. We understand that it consists of
an ARM7 core plus some coprocessors to speed up a variety of operations including VLC (variable length coding/decoding) and iMX (programmable parallel operations).

Being able to use this IVA would greatly enhance the abilities of the tablets as a multimedia device for both photos/photo manipulation and video watching (currently videos must be encoded specifically for it, which is fine as they become smaller, but with cheaper microSD storage available now, the convenience of having the same data files outweighs the inefficiency of storage).

It's also likely that the additional processing power could enable better support of newer, more efficient codecs, such as h264, that currently require too much CPU power to be generally useful. As h.264 video podcasts intended for use with iPods are popular, but usually have bitrates too high for the tablets to handle, this would be a great improvement in usefulness.

== 5 Mbit SRAM Framebuffer ==

The OMAP2420 contains a 5Mbit SRAM buffer which is meant to allow a VGA display.&lt;ref name=TIOMAP2420/&gt; According to our research, this buffer is not being utilised by this device. We believe this buffer may be used as a fast destination render target for the PowerVR. This onchip framebuffer will provide a very fast RGB surface for use in X11 and SDL gaming. 

This is semi documented within [http://mxr.maemo.org/diablo/source/kernel-source-diablo-2.6.21/kernel-source/drivers/video/omap/dispc.c dispc.c].

== Bringing it together ==

On their own each component has limited purpose and use, however a work flow which involves rendering 3d objects with the PowerVR  (or 2d from the CPU or IVA) onto the 5Mbit SRAM buffer which can then be converted from RGB to YUV and copied to main DDR memory by the IVA would allow us to achieve improved performance over the current all software approach.

We have software which successfully confirms there is enough bandwidth between the main memory and the Epson LCD chip using a specialised YUV mode, however it will require the help of the hardware components listed above to bring these benefits to all software running on the device.

Using specialized hardware should also drastically decrease battery consumption for demanding tasks, the likes of which are becoming more common on handheld platforms.

== References ==

&lt;references/&gt;


[[Category:Community]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Easy Debian</title>
    <id>1227</id>
    <revision>
      <id>49323</id>
      <timestamp>2012-08-30T10:01:50Z</timestamp>
      <contributor>
        <username>magick777</username>
        <id>3129</id>
      </contributor>
      <comment>/* ext3 to ext4 (or anything else) */</comment>
      <text xml:space="preserve">This package, when installed on your tablet or phone, 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 to your hand-held device. 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.

This package will give you all of these applications without any need for installing dependencies or other applications, and it should work on the Nokia N800, N810 and N900 mobile devices.

== What you need: ==

* You need 2.5 GB free on one of your memory cards, although after installing, you will only need 2 GB.
* You need to keep your expectations reasonable. Big desktop applications like OpenOffice and Firefox run slowly on small handheld devices. They are power-hungry and designed for big, powerful CPUs. The [[Nokia N810|N810'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'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.

== Install instructions ==

* You need to install the [http://maemo.org/packages/view/easy-deb-chroot/ easy-deb-chroot package]. It can be found in the [[Extras]] repository. There may be a newer version in the [[Extras-devel]] 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.)
* Once installed several new shortcut icons will be available on the applications menu. You will need to first run the one called &quot;Debian Image Installer&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'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.
** You can check for a successful download and extraction by typing&lt;pre&gt;ls -l /home/user/MyDocs/debian*&lt;/pre&gt; in [[terminal|XTerminal]]. The compressed image name has the ending .img.ext2.lzma; when decompressed the file name ends in .img.ext2 and it should have a file size of exactly 2147483648 bytes.
* 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-v3e.img.ext2.lzma here]. Afterward you will have to copy it into &lt;code&gt;/home/user/MyDocs/&lt;/code&gt; or into &lt;code&gt;/media/mmc1/&lt;/code&gt; depending on whether you want it installed on the internal storage or on a removable storage.  Then, when you run &quot;Debian Image Installer&quot; it will detect that you already have the file and proceed to extract it and set it up for you. For detection of your already placed debian* file stated above, the Debian Image Installer still need to connect to the internet for file checking purpose. If you have a faster computer with [http://www.7-zip.org/ programs] to unpack [[:wikipedia:Lempel%E2%80%93Ziv%E2%80%93Markov_chain_algorithm|lzma]]-compressed files, you may also skip the Debian Image Installer by copying the uncompressed file by USB to the &lt;code&gt;/home/user/MyDocs/&lt;/code&gt; folder.

* If you have more than one image file, you should edit &lt;code&gt;/home/user/.chroot&lt;/code&gt; to select the one you want to load. Default is first in &lt;code&gt;/home/user/MyDocs/debian*.img*&lt;/code&gt;, &lt;code&gt;/media/mmc1/debian*.img*&lt;/code&gt;
* When you get the &quot;Congratulations!&quot; message from the installer (or immediately if you have placed an uncompressed image file into /home/user/MyDocs/ yourself), you can launch Easy Debian by one of the Debian application icons or by typing &quot;debbie&quot; in XTerminal.
* '''PR 1.2''': The new firmware broke the workarounds for loss of keyboard focus in LXDE when switching between Maemo and Debian. This is fixed in the new version 0.9.50.

== Easy Debian application icons ==

Easy Debian installs the following shortcuts in the Application Manager:

; Close Debian : for unmounting the Debian image and shutting down all running Debian processes

; 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.

; Debian chroot : this runs &quot;sudo debian&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.

; 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 &quot;debbie&quot; (see below).

; Fix LXDE kbd : fixing lost keyboard focus in LXDE (no longer needed with the new version of easy-deb-chroot, see below)

; GNOME ALSA mix : for configuring sound

; Iceweasel Web B : unbranded Debian version of the Firefox Web Browser

; OpenOffice : for starting OpenOffice without LXDE

; Set Deb HW Keys : additional useful keybindings through &lt;em&gt;xbindkeys&lt;/em&gt; (see below)

; Synaptic Pkg Mg : graphical interface for installing additional Debian applications (in the Debian image only, not Maemo proper)

== Using the LXDE Environment: ==

* To launch a session of LXDE (a light weight desktop environment) with several applications already installed in it, including OpenOffice.org, simply click on the &quot;Debian LXDE&quot; icon shortcut on the application menu.
* LXDE's application menu is found at the top left corner of the screen.
* To momentarily go back into the Maemo environment, simply press Ctrl Backspace. To return to LXDE, click on the &quot;Fix LXDE kbd&quot; icon in the Maemo menu, since just going back from the Task Manager you would only be able to use the stylus thereafter.
* Exiting LXDE: Log out, don'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.

=== Window is too big for the screen ===

Press Ctrl and the period key simultaneously. This will make the &quot;Move Window&quot; cursor appear (a cross with four arrows). Use the stylus to drag the window to expose the parts that are not visible.

=== LXDE Top Menu Disappears ===

The newer Easy Debian images (m5-v3b and later) have a new LXDE version.

If you upgrade Easy Debian and your LXDE top menu disappears, you can do one of two things:
* Install the newest version (m5-v3e): 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 &quot;Deb Img Install&quot; icon to download and extract the new image.
* 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 &quot;Create New Panel&quot;. Choose &quot;Top&quot; and &quot;OK&quot;. Tap and hold on new top panel. In the ''General'' tab, set the following things: Alignment: Left, Width: 25, Height: 32, Properties: Uncheck &quot;Reserve Space...&quot; In the ''Panel Applets'' tab, Add &quot;Menu&quot;, &quot;Digital Clock&quot;, &quot;System Tray&quot; (check &quot;Stretch&quot; column), &quot;Net status monitor&quot; (use edit button and change eth0 to wlan0, then tap on icon and set to wlan0 there too), and &quot;CPU Usage Monitor&quot;.

If after the upgrade some menu entries (e.g. Gimp) are missing, you can manually install them from the Debian chroot terminal by

 xdg-desktop-menu install --novendor /usr/share/applications/gimp.desktop

In order to have the document viewer Evince show up in the LXDE menu, you would have to first set &quot;NoDisplay=false&quot; in /usr/share/applications/evince.desktop and then run xdg-desktop-menu similar to above.

=== Keyboard issues and tips ===

Keyboard focus loss issues in LXDE are fixed in the new version of easy-deb-chroot, 0.9.54-1fremantle1, which is now in Extras. &lt;b&gt;Note that upgrading easy-deb-chroot does not require reinstalling the image file!&lt;/b&gt;

For the record, in the older versions of easy-deb-chroot keyboard issues can be [http://talk.maemo.org/showpost.php?p=706413&amp;postcount=1451 solved] by the following modification of the script /usr/bin/xephwm5 in the Debian image. Edit this file in the Debian chroot terminal and change the lines containing qobi-wmhint-fix and set-focus (close to the end) so that they read
 sudo /sbin/qobi-wmhint-fix $PARWIN
 #/usr/bin/set-focus $PARWIN

The new version of easy-deb-chroot implements the same through Maemo-side scripts.

==== Localization ====

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.
For this, 
launch the &quot;Debian chroot&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.

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 &lt;u&gt;/etc/xdg/lxsession/LXDE/autostart&lt;/u&gt; according to: 

  @setxkbmap de

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).

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)

 dpkg-reconfigure locales

and selecting from the list that is then displayed the UTF variant of the desired language, for example for German, de_DE.UTF-8. 

==== Set Deb HW Keys app and xbindkeys ====

Easy Debian provides also a &quot;Set Deb HW Keys&quot; application which runs xbindkeys, mapping &lt;u&gt;Fn+Shift+(upper row keys)&lt;/u&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 &quot;Styles and Formatting&quot; in Openoffice.) Moreover, &lt;u&gt;Ctrl+Up&lt;/u&gt; and &lt;u&gt;Ctrl+Space&lt;/u&gt; provide full screen toggles. In the newest Easy Debian versions, Escape and Tab are mapped to &lt;u&gt;Fn+Shift+Left&lt;/u&gt; and &lt;u&gt;Fn+Shift+Right&lt;/u&gt;, respectively.

If F1-F12 do not work reliably for you, try replacing all occurrences of &quot;xvkbd -text&quot; in /home/user/.xbindkeysrc by &quot;xvkbd -xsendevent -text&quot;. (Already fixed in newer Easy Debian versions.)

Under LXDE, the Enter key is actually KP_Enter, while some application only accept ordinary &quot;Return&quot;. For this eventuality, &quot;Set Deb HW Keys&quot; maps &lt;u&gt;Shift+Enter&lt;/u&gt; to Return.

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;pre&gt;
&quot;xvkbd -xsendevent -text '\e'&quot;
   Shift + BackSpace
&lt;/pre&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.)

You can have xbindkeys started in LXDE automatically by including

 @xbindkeys -f /home/user/.xbindkeysrc

in /etc/xdg/lxsession/LXDE/autostart.

In order to have xbindkeys started generally for all Debian applications
(including even Maemo applications until the Debian chroot is closed) you can have it included in the Debian startup script as follows. In the Debian chroot terminal do
 echo &quot;su - user -c xbindkeys&quot; &gt;&gt; /var/run/onfirstchroot.rc
 chmod a+x /var/run/onfirstchroot.rc
(Don't do this more than once, otherwise you will have several xbindkeys processes running.) Starting xbindkeys outside of LXDE disables the keyboard shortcuts for full screen toggle within LXDE, but the other key bindings should work.

To manually stop xbindkeys do &quot;killall xbindkeys&quot;.

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.

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
 cp .xbindkeysrc .xbindkeysrc.old
 cp .xbindkeysrc.dist .xbindkeysrc

Another work-around for getting additional special characters is to [[Remapping_keyboard|remap your hardware keyboard]].

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.

==== sticky keys hack ====

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 &quot;debbie stickykeys&quot; (or &quot;debbie stickykeys xx&quot; where xx is a language code different from us). Note however that this also affects XTerminal applications in Maemo.

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 #'s in the beginning of) the following two lines in /etc/xdg/lxsession/LXDE/autostart according to

 #xkbset exp 60 =sticky =twokey =latchlock
 #xkbset sticky -twokey latchlock

In the newest image (v3e), the sticky keys hack is not enabled by default. To enable it, remove the #'s.

==== xvkbd ====

In LXDE one can also use the xvkbd utility to get a virtual keyboard. If clicking on it with the stylus keeps repeating keys indefinitely,
go to the xvkbd menu (bottom left of keyboard), choose &quot;Property&quot;, and set &quot;Automatic Click&quot; to &quot;OFF&quot;.

== Using debbie ==

From XTerminal the following scripts are available:

; debbie : starts debian chroot shell as user (doesn't evaluate /home/user/.profile)

; debbie ''command'' : runs debian command as user (if ''command'' includes file names, those need to be given with absolute path)

; sudo debian : starts debian chroot shell as root (this is the command issued by the &quot;Debian chroot&quot; app)

; sudo debian ''command'' : runs debian command as root

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:

; 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. In the new Easy Debian version this is provided by the new script &lt;b&gt;debbie-sue&lt;/b&gt;.

; sudo debian su - user -c ''command'' : runs debian command as user with $CHROOT/etc/profile and /home/user/.profile evaluated and with working directory /home/user. In the new Easy Debian version: &lt;b&gt;debbie-sue ''command''&lt;/b&gt;

; sudo debsu : debian chroot shell as root with login (root) shell behavior

; sudo debsu ''command'' : runs debian command as root with login (root) shell behavior

In all of the above, ''command'' can be simple command-line commands with standard output or GUI programs to be run under a window manager, such as ooffice.

If ''command'' involves a file name, it should be given with full path because after the chroot the working directory will usually have changed. A simple way to transform a file name into one with full path information is to precede it with &quot;readlink -f&quot;.

=== Creating desktop shortcuts in Maemo ===

The above scripts are particularly useful for creating shortcuts. For example, a file oowriter.desktop with content
&lt;pre&gt;
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=oowriter
Icon=ooo-writer
Exec=debbie oowriter
Type=Application
&lt;/pre&gt;
that is put into
/usr/share/applications/hildon or (since fw 2009.51) /home/user/.local/share/applications/hildon allows one to start the OpenOffice writer
directly from the Maemo Applications Menu without having to launch LXDE first.
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
 mkdir -p /home/user/.local/share/applications/hildon
 mkdir -p /home/user/.local/share/icons/hicolor/scalable/hildon
Newly installed application icons usually need a reboot to become visible in the application menu. If you want to be able to also install them as shortcuts on the desktop, it seems necessary to install the desktop file in /usr/share/applications/hildon and not in /home/user/.local/share/applications/hildon.

=== Command-line shortcuts in Maemo ===

Aliases and new shell functions can be defined in /home/user/.profile. Combining debbie and readlink, the following shell function for example allows one to quickly open files with OpenOffice from XTerminal.
 oo() { /usr/bin/debbie-sue ooffice `readlink -f $1` ; }
After adding this line to /home/user/.profile and restarting XTerminal, &quot;oo filename&quot; starts OpenOffice with the given file.

=== Keyboard focus issues in debbie ===

Some applications (e.g. calibre, eric, PuTTY) don't get keyboard focus when started outside of LXDE. This can be repaired with the [http://talk.maemo.org/showpost.php?p=818545&amp;postcount=1769 simple .kbdactive script] that is included in the new version of easy-deb-chroot. 
With xbindkeys running (launched by the &quot;Set Deb HW Keys&quot; icon) keyboard focus is gained by pressing &lt;u&gt;Fn+Return&lt;/u&gt;.

== Startup scripts ==

If they exist, the following scripts (which need to be executable) serve as startup scripts as follows

; $CHROOT/var/run/onfirstchroot-ext.rc : This script will run commands as root in maemo the first time you &quot;open&quot; a chroot. So this is where you could force the processor to &quot;performance mode&quot; or some such thing.

; $CHROOT/var/run/onfirstchroot.rc : This script will run commands as root in the chroot the first time you &quot;open&quot; a chroot. For example, if you have installed ''cups'' within Easy Debian, this script should contain &quot;/etc/init.d/cups restart&quot;.

; $CHROOT/var/run/onchroot-ext.rc : This script will run commands as root in maemo every time you run a chroot command.

; $CHROOT/var/run/onchroot.rc : This script will run commands as root in the chroot every time you run a chroot command.

; $CHROOT/var/run/onclosechroot.rc : This script will run commands as root in the chroot before closing the chroot.

Here $CHROOT is the mount point of the Debian system (to be omitted when aleady in chroot).

In order to run a command in one of these scripts as &quot;user&quot;, preface the command with ''su user -c''

== Installing Applications ==

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 &quot;sudo synaptic&quot;.)

Note that the image cannot be expected to have an up-to-date package list. It is important that you perform &quot;apt-get update&quot; or use Edit -&gt; Reload Package Information within Synaptic before installing new packages. After such installs you can invoke &quot;apt-get clean&quot; to free your disk space from downloaded package files.

In image v3d, only the stable Debian Lenny repository was activated, although the Easy Debian image also involves a number of packages from the newer Debian Squeeze (testing) repository. As a result, some additional packages can only be installed with Squeeze activated (indicated by &quot;unmet dependencies&quot; errors when attempting to install with Lenny alone). If you need to or 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 &quot;#&quot; in the beginning of the lines

 #deb http://http.us.debian.org/debian squeeze main contrib non-free
 #deb http://www.debian-multimedia.org squeeze main

After updating the package information, you can then install from this newer repository. However, heed the following warning:

----

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 (gconf2 in particular).  Therefore, it is recommended that for the moment you simply use the image as is.  Do not perform a full &lt;em&gt;upgrade&lt;/em&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.

----

By the same token, watch out when new applications to be installed from Squeeze or Sid require an upgrade of gconf2. This can lead to configuration errors in other applications.

However, you can hardly do real harm by experimenting with your Debian installation. You can always start over by re-installing the original Debian image. Since user files are usually not stored in the Debian image, you won't lose much by doing so. But if you have enough space, it may be a good idea to make a copy of your Debian image so that you don't have to download and extract the original Debian image again, in particular if you are planning some more extensive and untested upgrades.

When using apt-get install to install applications, remember to always use the --no-install-recommends command-line option. This will keep extra, unneeded packages from being installed or upgraded. So you would install cups like so:

  apt-get install --no-install-recommends cups

=== CUPS Installation Instructions ===

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 &lt;I&gt;cups-client&lt;/I&gt; installed (since version v3c). 

This allows you to access one CUPS server at a time, which can be specified alternatively by 
* the option -h hostname[:port]
* the file client.conf in /etc/cups or ~/.cups (see &quot;man client.conf&quot;)
* the environment variable CUPS_SERVER

You can then check for available printers by

 lpstat -a

and print out files from your device by

 lp -d printername filename

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;pre&gt;
apt-get install cups
apt-get clean
echo &quot;/etc/init.d/cups restart&quot; &gt;&gt; /var/run/onfirstchroot.rc
chmod a+x /var/run/onfirstchroot.rc
&lt;/pre&gt;

The last two lines ensure that the CUPS server is started when Easy Debian is launched. (Ignore the errors you get when cups is installed for the first time.)

=== Other useful applications to install in addition ===

The following packages are also not part of the current image (v3e) but may be of wider interest:

; KeepassX : Password manager, cross platform and GNU General Public License.

; 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 &quot;apt-get install vpnc&quot; and configure through /etc/vpnc.conf .
: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.

; openssh-client (now included in image v3e) : 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 &quot;debian&quot; or &quot;debian su user&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.

; gftp : X/GTK+ FTP client. Works well when started outside of LXDE by &quot;debbie gftp&quot;.

; djview4 : Provides a reader for djvu files

; flpsed : WYSIWYG PostScript and PDF annotator, useful for filling forms, adding notes etc. Works well when started outside of LXDE by &quot;debbie flpsed&quot;.

; pdfchain : a graphical user interface (only in squeeze distribution) for the PDF Tool Kit (&lt;b&gt;pdftk&lt;/b&gt;, the command line tool that is already available in the stable lenny distribution). Noteworthy also: &lt;b&gt;pdfgrep&lt;/b&gt; (from squeeze) to quickly search through pdf files on the command line.
 
; abiword : Alternative to OpenOffice Writer. However, needs to be installed from the squeeze repository and does upgrade gconf2 to the squeeze version, which breaks certain other things (e.g. the configuration of evince).

; kile : KDE Integrated LaTeX Environment. Works well when started outside of LXDE by &quot;debbie kile&quot;.

; gnumeric : A leaner alternative to OpenOffice Calc. Works well when started outside of LXDE by &quot;debbie gnumeric&quot;.

; 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 &quot;debbie xournal&quot;. Richer interface than in the native Maemo application and available in newer version from squeeze.

; 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't upgrade the rest of the packages). Start from XTerminal (or a self-made application icon, see above) by 

 sudo debian su - user -c zim 

: The default theme provided by Easy Debian 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.
 gtk-theme-name=&quot;Raleigh&quot;

; encfs, sshfs : sshfs allows one to mount a remote file system through ssh (and therefore depends on ssh-client, see above); encfs is a user-space encrypted file system, which allows to encrypt entire folders, see http://www.arg0.net/encfs. Both, encfs and sshfs, require the fuse kernel module, which is already available in the Maemo system, although normally not yet loaded. Because there is no group &quot;fuse&quot; under Maemo, it'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:
 modprobe fuse
 sleep 1
 chown root.users /dev/fuse
:Install by running the following commands in the Debian chroot terminal:
 apt-get update
 apt-get install encfs
 apt-get install sshfs
 adduser user fuse
 apt-get clean
: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.
:To mount a remote file system one just issues &quot;sshfs user@remote.domain: mountpoint&quot;
:To unmount either an encrypted or ssh-mounted file system one does &quot;fusermount -u mountpoint&quot;

; nicotine : graphical client for the SoulSeek peer-to-peer system

; build-essential : C++ compiler and associated development packages. Needs to be installed from the squeeze repository.

=== Upgrading OpenOffice ===

The new image v3e includes OpenOffice 3.2.1.

Previous images (up to v3d) included an OpenOffice version (3.1.1) for which support for the armel architecture was later withdrawn. This problem has been fixed with version 3.2 which is available in the Debian Squeeze distribution. If you want to install OpenOffice in images prior to version v3e, or if you want to update or extend your OpenOffice version in v3e, you need to activate Squeeze in /etc/apt/sources.list for upgrading. To install all openoffice.org packages do
 apt-get update
 apt-get install openoffice.org
 apt-get clean
To only upgrade the packages installed (leaving out base but including math), do (each apt-get command is one line)
 apt-get update
 apt-get install openoffice.org-writer openoffice.org-impress openoffice.org-calc openoffice.org-math openoffice.org-style-crystal openoffice.org-style-galaxy openoffice.org-style-hicontrast openoffice.org-style-tango openoffice.org-emailmerge ttf-opensymbol python-uno
 apt-get clean
which requires some 80 MB less space in the image. The reason for leaving out base is that according to [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=585829 this bug report], OpenOffice base is broken for the armel architecture.

Upgrading to the current version in squeeze will also upgrade a number of other packages, including Gimp.

== Sound ==

=== Initializing sound ===

In order to initialize sound on a fresh installation of Easy Debian, open XTerminal and do:
 debbie 
 xmms2d -o pulse
Leave that running, open a second XTerminal session and do:
 debbie lxmusic

=== ALSA device setup ===

Although Easy Debian has setup and mount the host pulseaudio (/var/run/pulse) into the chroot (done by qchroot in the easy-chroot package), pulseaudio was not set as the default ALSA device in images before version 3ve. To do so, edit /etc/asound.conf in the chroot, and comment out (or remove) the default alsa_dsp plugin, and add a pulse plugin. For example:
 #pcm.!default {
 #  type alsa_dsp
 #  playback_device_file [&quot;/dev/dsptask/pcm3&quot;] 
 #  recording_device_file [&quot;/dev/dsptask/pcm_rec1&quot;]
 #}
 
 pcm.!default {
   type pulse
 }

== complete dist-upgrade to Squeeze ==

Easy Debian is a mix of the Debian releases Lenny and Squeeze which leads to some problems like some silently broken packages and troubles when trying to install new software. Therefore a dist-upgrade to a pure Squeeze system might be useful. Usually this is no problem in Debian but since Easy Debian is restricted by the underlying Maemo in some ways there are some things to take care of.

One thing that has to be taken care of before doing the dist-upgrade is the special keyboard that we use. Debian's standard keyboard definition (which will be installed during the dist-upgrade) won't work properly so we'll have to make sure we will use the one we have already. All we have to do for that is to copy Easy Debian's folder '''/usr/share/X11/xkb''' somewhere else:

 cp -r /usr/share/X11/xkb /home/user

The (one) usual way for a dist-upgrade in Debian is to change all the entries in /etc/apt/sources.list to the new release and then run as root (or preceded by sudo):

 apt-get update
 apt-get dist-upgrade

So basically your sources.list should contain these lines or some mirrors (everything else should be deactivated with a leading '''#''' ):

 deb http://ftp.debian.org/debian squeeze main contrib non-free
 deb http://www.debian-multimedia.org squeeze main

Easy Debian has only a limited amount of disk space, so we'll temporarily create a new place to store the downloaded new packages in MyDocs:

 mkdir -p /home/user/MyDocs/archives/partial
 sudo mount --bind /home/user/MyDocs/archives /var/cache/apt/archives

Then we'll do the dist-upgrade. Unfortunately Maemo has a very snappish watchdog that reboots your phone if it thinks it hangs due to a runaway process. This is almost certainly triggered when doing mayor package installations with normal process priority. So we'll do the dist-upgrade wit the lowest priority using the '''nice''' command:

 nice -n 19 sudo apt-get update
 nice -n 19 sudo apt-get dist-upgrade

This will take very long. So you should make sure the following conditions are fulfilled:
# You have a running internet connection.
# Your N900 is plugged to the power pack
# You have plenty of time where you don't need the phone (doing it in the late evening just before you go to bed would be a good time).


After all that is done we'll clean some things up. Close Easy Debian (use the Icon in Maemo just to be sure) and delete the archives folder in MyDocs.

Now you'll notice six regressions:
#The shutdown and reboot options in the LXDE logout dialogue are gone. It doesn't matter, just use '''logout''' instead. Since we're in a chroot and not on a real machine there's no real difference.
#All the blue keyboard buttons won't work anymore and the blue arrow key will behave strangely. This is because during the dist-upgrade the quite special Maemo keyboard layout used by Easy Debian was overwritten with a generic layout. This is why we made a backup of our keyboard folder right at the beginning. Now it's time to restore it - from within Easy Debian chroot, do (remember about prefixing with 'sudo', if You're executing it from within LXDE instead!):&lt;pre&gt;sudo mv /home/user/xkb /usr/share/X11&lt;/pre&gt;Then close Easy Debian and after restarting it the keyboard should work fine.
#After changing to another application via Ctrl + Backspace and returning to Easy Debian your mouse and keyboard will behave very odd. Lots of click events might not be recognized and your keyboard won't write but instead execute shortcut options. The reason is that for some reason Easy Debian doesn't catch the Ctrl release event anymore when leaving it. Pressing Ctrl once after returning to Easy Debian will solve that. Unfortunately you'll have to do that every time you return to Easy Debian. The reason for this behavior isn't absolutely clear but it seems like this doesn't happen in all cases. It might be related to the xserver-xephyr package in Squeeze. See below!
#Loading the Easy Debian desktop will take very long and a pcmanfm (file manager) will pop up automatically. This is because pcmanfm is also used for some desktop management in LXDE but as a demon. The syntax of the demon switch has changed between the LXDE versions in Lenny and Squeeze. In the file '''/etc/xdg/lxsession/LXDE/autostart''' change the line '''@pcmanfm -d''' to '''@pcmanfm -desktop''' to take care for that change.
#Some programs (e.g. iceweasel) that are started via debbie from Maemo will throw a dbus-related warning but seem to work fine. So it should be safe to ignore that warning. If you want to get rid of the popup uninstall the package that causes these popups.
#Sound in Easy Debian won't work anymore. This is because there were some changes in pulseaudio between version 0.9.15 and 0.9.16 which lead to incompatibilities. Maemo uses 0.9.15 so Lenny's 0.9.10 works while Squeeze's 0.9.21 does not. Installing the latest working version 0.9.15 (or any prior to that) would normally break Squeeze's package system so we'll have to fool it so that it actually uses 0.9.15 but thinks it has 0.9.21. To do that there are some modified packages available at qole's server:
::http://qole.org/files/pulseaudio_easydebian_squeeze.tar.gz (please note: These modified packages are a pretty evil hack and neither Debian nor pulseaudio can be held responsible for any incompatibilities caused by them.)

::The easiest way to install them is to create a new folder, change to it, unpack the archive and install them via dpkg. But since these packages are technically from the Lenny era we'll need two further dependencies which are not available in Squeeze anymore. So let's start:
 mkdir pulse
 cd pulse
 wget http://qole.org/files/pulseaudio_easydebian_squeeze.tar.gz
 tar -zxf pulseaudio_easydebian_squeeze.tar.gz
 wget http://ftp.debian.org/debian/pool/main/p/policykit/libpolkit2_0.9-2_armel.deb
 wget http://ftp.debian.org/debian/pool/main/p/policykit/libpolkit-dbus2_0.9-2_armel.deb
 nice -n 19 sudo dpkg -i *.deb
::When this is done sound should work again. Now we have to make sure that these changed packages won't be overwritten by regular Debian updates. So we'll set them on &quot;hold&quot;:
 sudo echo libpulse0 &quot;hold&quot; | dpkg --set-selections
 sudo echo libpulse-browse0 &quot;hold&quot; | dpkg --set-selections
 sudo echo libpulse-mainloop-glib0 &quot;hold&quot; | dpkg --set-selections
 sudo echo pulseaudio &quot;hold&quot; | dpkg --set-selections
 sudo echo pulseaudio-esound-compat &quot;hold&quot; | dpkg --set-selections
 sudo echo pulseaudio-module-gconf &quot;hold&quot; | dpkg --set-selections
 sudo echo pulseaudio-module-x11 &quot;hold&quot; | dpkg --set-selections
 sudo echo pulseaudio-utils &quot;hold&quot; | dpkg --set-selections

=== portrait mode ===
(If you use one of Estel's images based on Debian Squeeze you already have all the prequisites, so this only applies if you dist-upgraded from one of the older mixed Lenny/Squeeze images by qole.)

You might have tried to switch Easy Debian to portrait mode using a command like this:
 xrandr --output default --rotate left
In this case you will have noticed that although the display output was rotated but that the mouse cursor will still behave as if the desktop was running in landscape mode. This is due to a bug in xserver-xephyr which fortunately has a fix:
https://bugs.freedesktop.org/show_bug.cgi?id=37331

However, that fix didn't make it into the Debian Squeeze package but the package from the backports is reasonably up to date that the fix could be easily applied to it.

If you want to use the fixed package you first need to do a complete dist-upgrade to Squeeze, then activate the squeeze-backports repository, install xsever-xephyr from it and after that install this patched backports package:
http://lorienart.pl/cover/xserver-xephyr_1.10.4-1~bpo60+99_armel.deb

== FAQ ==

'''Q:''' I have started Openoffice (evince, ...) from the desktop, entered a certain mode (presentation, navigator, formatting, full screen, ...) and cannot get out of that again.&lt;br&gt;
'''A:''' See [[#Set Deb HW Keys app and xbindkeys|the section on setting keybindings]]

'''Q:''' I chose Iceweasel, but nothing happened!&lt;br&gt;
'''A:''' 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.

'''Q:''' How do I get to the OK button in the huge dialog box that just popped up?&lt;br&gt;
'''A:''' DIABLO/N8x0: If you choose the &quot;Toggle Movable Windows&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 &quot;Normal&quot; OS2008 window behavior, select this menu item again.&lt;br&gt;
'''A:''' FREMANTLE/N900: You'll need to use LXDE to access the entire dialog. Use the Ctrl-. key combination to move windows with the stylus.

'''Q:''' How do I get the virtual keyboard to pop up in Debian Apps?&lt;br&gt;
'''A:''' DIABLO/N8x0: Select the &quot;Set Debian HW Keys&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.&lt;br&gt;
'''A:''' FREMANTLE/N900: There is no virtual keyboard in Maemo for Debian apps.

'''Q:''' How do I make Debian apps fullscreen?&lt;br&gt;
'''A:''' Select the &quot;Set Debian HW Keys&quot; menu item; wait a bit, then you can press (DIABLO/N8x0) the minus (-) hardware key followed by the &quot;fullscreen&quot; hardware key or (FREMANTLE/N900) Ctrl-Uparrow or Ctrl-Space to toggle fullscreen for any app.

'''Q:''' DIABLO/N8x0: How do I get the best turbo speed from OpenOffice, Firefox and other big apps?&lt;br&gt;
'''A:''' Make sure you have the maximum amount of virtual memory enabled in your Control Panel / Memory dialog. Then select the &quot;Set CPU to Performance mode&quot; menu item and launch your app. Remember to set the CPU to On-Demand mode when you're done using the big app, because Performance mode sucks your battery faster. But it still isn't as bad as the battery life of your average laptop...

'''Q:''' English isn't my first language. How do I change this to my language?&lt;br&gt;
'''A:''' Please click on the &quot;Debian chroot&quot; icon and type the following command:

 dpkg-reconfigure locales

:Choose your language(s).

:DIABLO/N8x0: Note that you should choose the language with no period between the language and the iso code (eg. &quot;&lt;code&gt;en_CA ISO-8859-1&lt;/code&gt;&quot;), and optionally, the utf-8 version, too (eg. &quot;&lt;code&gt;en_CA.UTF-8&lt;/code&gt;&quot;).
:FREMANTLE/N900:  Choose the UTF-8 version.

'''Q:''' Under Debian the time zone is not the same as under Maemo.&lt;br&gt;
'''A:''' In the Debian chroot terminal run

 dpkg-reconfigure tzdata

and select the time zone of your choice.

'''Q:''' How do I find the amount of space left for applications?&lt;br&gt;
'''A:''' From the prompt in Debian Chroot menu item:

 df -h /

Look under AVAIL.

'''Q:''' I want to install more applications! How do I do that?&lt;br&gt;
'''A:''' First, you have to update the repository lists. From the prompt in Debian Chroot menu item:

 apt-get update

:The image for the N900 has quite some free space for installing additional Debian packages.

:For DIABLO/N8x0, you must get some space back! There's almost no extra room in the image file.

 apt-get install localepurge; localepurge

:This will get you at least 80 MB back. You should probably do this first, before starting to install. Running out of space during an install in Debian is ugly.

:Also, when downloading packages, remember to frequently use &quot;&lt;code&gt;apt-get clean&lt;/code&gt;&quot; to clear out old downloaded packages. That will help with free space.

:If you're comfortable with the command line, you can use the technique listed in [http://talk.maemo.org/showthread.php?p=233305#post233305 this post] to double your install space.

:Even with all of these tricks, you'll still run out of room fairly quickly. You'll probably have to uninstall packages in order to add new ones.

:More advanced users can put a minimal system into an empty image and build a custom set of apps using [http://talk.maemo.org/showthread.php?p=233515#post233515 this post]. The most advanced and best way: partition your SD card and put your Debian fs there.

'''Q:''' What's this &quot;Iceweasel&quot;?&lt;br&gt;
'''A:''' Iceweasel is the Debian name for Firefox. It's a long story, but in short, Mozilla and Debian had a philosophical disagreement that ended in Debian renaming Firefox to Iceweasel.&lt;br&gt;

'''Q:''' I would like to have a separate &lt;code&gt;/home/user&lt;/code&gt; directory under Debian than under Maemo. Is that possible?&lt;br&gt;
'''A:''' &lt;code&gt;/sbin/qchroot&lt;/code&gt; script does mountings; one option is to not mount /home/user at all by commenting out the corresponding line in that script, which is
 mount /dev/mmcblk0p2 &quot;$CHROOT/home&quot;
for FREMANTLE/N900. Then &lt;code&gt;/home/user/MyDocs&lt;/code&gt; will still get mounted, but you can keep a Debian home directory separately, in the chroot.

'''Q:''' How is this different than the [http://trac.tspre.org/projects/nit-debian Deblet project]?&lt;br&gt;
'''A:''' 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.

'''Q:''' I already have Debian in a partition, or I'm running Deblet. How can I use your package with my Debian?&lt;br&gt;
'''A:''' Edit the &lt;code&gt;/home/user/.chroot&lt;/code&gt; file to point to your Debian partition or image file. Easy Debian will do the rest.

'''NOTE:''' If you are using Deblet, delete the &lt;code&gt;/home/user/.synchroot&lt;/code&gt; file before running Easy Debian for the first time, so your Deblet config files don't get overwritten. Remember that you'll need to make a user called &quot;user&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.

== Debian &quot;wheezy&quot; images ==

A number of experimental images using Debian Wheezy (testing) are now available (August 2012) from [http://talk.maemo.org/showpost.php?p=1251091&amp;postcount=2821 this post on TMO], courtesy of Roberto Colistete.

=== Installing experimental images ===

Experimental images are not known to the Debian Image Installer, nor are they (yet) hosted by qole, so you will need to download the desired image file into the desired location (using wget or similar) and decompress it with &quot;lzma -d &lt;filename&gt;&quot;. From there, you should be able to launch it as normal; the Deb Chroot and Debian LXDE icons work as expected.

=== Known issues ===

==== Chromium web browser ====

Chromium is broken for arm in Debian wheezy. Estel [http://talk.maemo.org/showpost.php?p=1254678&amp;postcount=2831 reports a successful workaround] using chromium from debian squeeze. 

===== Chromium on Sci image =====

If you try to do this on the Sci image (Sulu via rcolistete), then after enabling the squeeze sources you'll run into apt-get/apt-cache errors of &quot;the value 'testing' is invalid for APT::Default-Release. Work around these with &quot;aptitude -t stable install chromium-browser&quot;.

This will get your browser installed, but it will then complain (if started from command line) about the lack of libesd0 and libcurl3. You can install both of these, also from squeeze sources, upon which it will start without complaining. Also, if you've been testing it as root, then you'll want to &quot;chown -R user /home/user/.cache/chromium&quot; and &quot;chown -R user /home/user/.config/chromium&quot; for it to work properly as &quot;user&quot;.

== Optimising your EasyDebian images ==

=== Grow your image file to 4GB ===

Debian Wheezy takes up more space than Squeeze. If you want to enlarge your image file, the maximum file size that you can support on a FAT32 partition is 4GB minus one byte, or 4,294,967,295 bytes. Beyond that, you'll have to use a dedicated partition.

So, without harming portability, we can increase our image file by 1GB (almost) and then grow the file system to fit it. To increase the image size, first, concatenate 1GB of zeroes onto the end of the file:
&lt;pre&gt;dd if=/dev/zero bs=1M count=1048576 &gt;&gt; /path/to/image.ext3&lt;/pre&gt;

Note that the &quot;&gt;&gt;&quot; is critical here, meaning append the zeroes to the end of the file; accidentally use &quot;&gt;&quot; and you'll overwrite the image. The command will &quot;fail&quot; with an error when you hit 4GB on a FAT32 filesystem, but, don't worry, that's because we hit the maximum file size before we ran out of zeroes. Our image file will still be the desired maximum possible size. Now, we need to unmount and remount the image, in order for the loop mount to pick up the larger &quot;device&quot; that we just created. This is as simple as running the Close Debian script, then restarting Easy Debian via Deb Chroot (or sudo debian).

Finally, we grow our ext3 file system to match. From within the chroot, issue a
&lt;pre&gt;resize2fs /dev/loop0&lt;/pre&gt;
and your filesystem will be extended to 4GB.

=== Convert your image file to ext3, ext4, xfs, etc. ===

You might wish to use a newer file system for improved data integrity, efficiency or CPU performance; this is supported with recent versions of kernel-power and CSSU and can reduce CPU overhead.

==== ext2 to ext3 ====

This is fairly easy; from within the chroot, issue

&lt;pre&gt;tune2fs -j /dev/loop0&lt;/pre&gt;

which will add a journal to your ext2 filesystem. Close down Easy Debian, rename your image file from &lt;image-name&gt;.ext2 to &lt;image-name.ext3&gt;, make sure that the image name is either configured in .chroot or that it's the first such image in the directory, restart Easy Debian, and away you go. Take note that adding a journal adds overhead and may not improve performance; understand the implications before you proceed.

==== ext3 to ext4 (or anything else) ====

A word of warning. The version of e2fsprogs in Maemo is ancient, and xfs-tools seems to be non-existent, so if you use ext4 or xfs, you will lose the ability to fsck the image on the device itself. This is fine if you have (and are happy to use) a Linux PC; if not then you may want to stick to ext2/ext3. 

Migrating from ext3 to ext4 has no impact on existing files that were written under ext3, only on newly written files. Therefore, to achieve the expected benefit from a migration to ext4, you'll need to create a fresh image of the desired size, format it and copy the contents of your old image onto your new one. You'll probably want to do this over USB from a Linux PC rather than from the device itself, both for speed reasons and (probably) for newer versions of the applicable filesystem tools. 

First, create a file of the desired size, either with dd or by simply making a copy of the image file that you intend to clone.

&lt;pre&gt;cp &lt;image-name&gt;.img.ext3 &lt;image-name&gt;.img.ext4&lt;/pre&gt;

Now format the new image file with the desired file system. We'll use ext4 here, but this should work for any filesystem that is supported by kernel-power.

&lt;pre&gt;mkfs.ext4 /path/to/mounted/n900/&lt;image-name&gt;.img.ext4&lt;/pre&gt;

You might want to consider the &quot;-T small&quot; option to mkfs, which will yield a smaller block size (1KB) and more inodes, otherwise you'll be limited to 262,144 files in 1,048,575 blocks, also, at your option &quot;-m 0&quot; to set the reserved blocks count to zero (do not keep 5% back for the superuser). Once that's done, we need to mount both images, and clone the old one to the new one: 
&lt;pre&gt;
mkdir /mnt/old
mkdir /mnt/new
mount -t ext3 -o loop /path/to/mounted/n900/&lt;image-name&gt;.img.ext3 /mnt/old
mount -t ext4 -o loop /path/to/mounted/n900/&lt;image-name&gt;.img.ext4 /mnt/new
cp -a /mnt/old/* /mnt/new/
umount /mnt/new
umount /mnt/old
&lt;/pre&gt;

It does no harm at this point to run a filesystem check on the newly created image. You'll also need to make sure that the image is either configured in .chroot or is the first such image in the directory in order for the Easy Debian chroot scripts to pick it up.

== Donations ==

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.]


[[Category:Users]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Easy Debian Wheezy Multimedia</title>
    <id>5230</id>
    <revision>
      <id>49303</id>
      <timestamp>2012-08-29T11:51:30Z</timestamp>
      <contributor>
        <username>magick777</username>
        <id>3129</id>
      </contributor>
      <comment>/* Still needing work */</comment>
      <text xml:space="preserve">== Development ==

=== Preamble ===

This image starts from rcolistete's &quot;wheezy&quot; Scientific image (thanks!) and aims to be a bells-and-whistles image (warning: possible bloatware) with lots of new multimedia software thrown in. In particular, this includes MP3 tagging and renaming software, audio file format converters, normaliser, audio editor and a variety of MP3 players and organisers.

==== Key aims ====

* Advanced MP3 functionality to complement the use of the N900 as a mobile music player, including MP3 taggers, validators, renamers, normalisers, file format converters etc.
* Maintain the expected core functionality of Easy Debian, i.e. LibreOffice, GIMP, etc.

=== Specifications ===

==== Package selection ====
Packages are largely selected from Debian &quot;wheezy&quot;, except where dependencies on a newer version of PulseAudio would prohibit this. Therefore, the image is an injudicious mixture of oldstable, stable and testing. Packages are selected on a best effort basis to avoid unmet dependencies.

==== Disk image ====
The disk image has been enlarged to 4GB in size (well, 4GB minus one byte), which is the largest file that will fit on a FAT32 filesystem, and converted (well, copied over) to an ext4 filesystem. The use of ext4 means that you will require a relatively recent kernel-power &amp; CSSU to mount and use the image, but it does offer slight performance advantages over ext3.

== Software included ==

=== Internet ===
* Chromium web browser (from Squeeze)
* Iceweasel web browser (10.0.6)
* Icedove e-mail client (10.0.6)

=== Office ===
* AbiWord
* LibreOffice

=== Audio / Video ===
* XMMS2
** gXMMS2
** Abraca
** GJay 0.3.2
* QASTools
** QASMixer
** QASHCTL
** QASConfig  
* SoundConverter
* EasyMP3Gain-GTK 0.5.1
** mp3gain
** vorbisgain
** aacgain 
* Musicbrainz Picard 1.0
* MP3 Diags 1.0.11
* Audacity 1.3.12 (from stable) - the version from &quot;testing&quot; depends on a newer version of libportaudio2, but ours is held back for pulseaudio compatibility.

== Packages not working as expected ==

* GJay - installs and runs OK, but scanning silently fails (visible in debug mode) complaining that (all of 4000+) MP3s aren't valid.

== Still needing work ==

Packages in this section have been installed successfully, but require some scripting work in order to be any use.

=== LAMP environment ===

=== MythTV 0.24 (from stable) ===
The version from &quot;testing&quot; depends on a newer verson of libpulse0</text>
    </revision>
  </page>
  <page>
    <title>EclipseIntegration</title>
    <id>1334</id>
    <revision>
      <id>8701</id>
      <timestamp>2008-11-12T15:17:07Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[EclipseIntegration]] moved to [[Eclipse integration]]: No CamelCase, please</comment>
      <text xml:space="preserve">#REDIRECT [[Eclipse integration]]</text>
    </revision>
  </page>
  <page>
    <title>Eclipse integration</title>
    <id>1333</id>
    <revision>
      <id>36344</id>
      <timestamp>2010-06-29T04:08:40Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>link to [[Documentation/Maemo Eclipse Tutorial]]</comment>
      <text xml:space="preserve">These feature lists roughly correspond to backlog items, but are intended to be a more high-level summaries of goals for the releases (actual planning, division of stories for sprints, resource allocation, etc. is not the goal).

Latest public releases are:

* Final release, [[Eclipse_integration/ReleaseNotes_final|Release Notes]], [[/Known issues|Known Issues]]
* PreFinal release, [[Eclipse_integration/ReleaseNotes_prefinal|Release Notes]], [[/Known issues prefinal|Known Issues]]
* Beta 2 release, [[Eclipse_integration/ReleaseNotes_beta2 |Release Notes]], [[/Known issues beta2|Known Issues]]
* Beta 1 release, [[Eclipse_integration/ReleaseNotes_beta1|Release Notes]], [[/Known issues beta1|Known Issues]]
* Alpha 2 release, [[Eclipse_integration/ReleaseNotes_alpha2|Release Notes]]

Detailed plans for each product can be found from their Garage project pages.

See also the [[Documentation/Maemo Eclipse Tutorial|Maemo Eclipse Tutorial]]

== Maemo Eclipse Integration 2nd Edition project released several prereleases ==

* With Alpha 1 release middle of November 2008 true development process for all Maemo Eclipse Integration components started with Garage open source projects using agile development process
* With Alpha 2 release end of February 2009 a lot of new features were added to the Maemo Eclipse Integration components. Initial support for Windows host PC was implemented. All but Maemo Mica Eclipse plugin framework products were released in Maemo Garage. Mica framework will be release in future when framework will be stable enough to be usable also for other than just ESbox and Pluthon Maemo Eclipse plugin development
* With Beta 1 release (week 21 middle of May) major upgrades for many generic Eclipse components were introduced, a lot of new functionality of all components were implemented, good support for Windows host PCs and initial support for Mac OS X host PCs were introduced for PC Connectivity, Mica Eclipse plugin framework was released as separate product, first integration effort to support Fremantle development environment was done, SDK Virtual Images were updated to Ubuntu Intrepid level.
* With Beta 2 release (week 27 beginning of July) usable support for Fremantle development environment, good support for Mac OS X for Maemo PC Connectivity, Mica plugin framework refactored and cleaned up, Maemo Flasher-3.5 beta Tools released and integrated to Eclipse, localization support added to the ESbox, first Windows and Mac OS X configuration tools for PC Connectivity released, a lot of stability fixes for existing components and also some new functionality.
* With Prefinal release (week 37 middle of September) much improved support for Fremantle SDK development environment and new N900 device, improved support for Windows and Mac OS X as host PC, Mica plugin framework ready for third party plugin development, more automatic configuration of host PC for PC Connectivity using ZeroConf (Avahi) and DHCP, Samba support to enable disk mounts between Maemo device and Windows host PCs, Eclipse installation wizard for automated Maemo SDK Virtual Image installation, a lot of stability fixes for existing components and functionality.

=== Maemo Eclipse Integration release versioning schema for Eclipse plugins ===

Eclipse Integration project, version numbers for plugin releases are composed of four (4) segments: 3 integers and a string respectively named major.minor.service.qualifier. The page &lt;http://wiki.eclipse.org/Eclipse_Version_Numbering&gt; describes guidelines for the first three segments, which relate to API promises in official supported releases. These rules do not apply to intermediate builds, however, so we will hold the major.minor.service segments at &quot;2.0.0&quot;, indicating an API break from Eclipse Integration v1. 

Based on this, we will follow this convention in the whole version number: 

* &quot;R&lt;version&gt;&quot; indicates fully tested and stable official release, released according to the following schedule. 
* &quot;&lt;version&gt;M or I or N&quot; indicates that release is not fully tested official release but some prerelease. 

The page &lt;http://download.eclipse.org/eclipse/downloads/build_types.html&gt; describes, somewhat roughly, the versioning of intermediate releases. Based on this, we will follow this convention in the qualifier segment: 

* &quot;M&lt;number&gt;&quot; indicates milestones, which are integration tested and stable, released according to the following schedule. 
* &quot;I&lt;date&gt;&quot; indicates integration builds, which are developer tested, released every two weeks as sprint artifacts. 
* &quot;N&lt;date&gt;&quot;, if used, indicates nightly builds, which are untested and unstable. 

=== Eclipse Integration Subprojects ===
* ESbox project: http://esbox.garage.maemo.org/
* Pluthon project: http://pluthon.garage.maemo.org/
* Mica project: http://mica.garage.maemo.org/
* PC Connectivity project: http://pc-connectivity.garage.maemo.org/
* SDK Virtual Image project: http://maemovmware.garage.maemo.org/
* Maemo Flasher-3.5 Tools (no Garage project because flasher is closed binary)
----

== New features in Final release (R2.0.0, w52 2009) ==

Eclipse Final release was done about one month AFTER final Fremantle 5.0 SDK and N900 releases.

'''Notice''' especially that Final release replaced old Eclipse Integration 1st Edition release and all 2nd Edition prereleases meaning that support for those releases was discontinued and deliverables and documentation were removed. 

Eclipse Integration components now support the latest Debian based Linuxes, Windows XP with SP3, Mac OS X 10.5 Leopard and Mac OS X 10.6 Snow Leopard with x86/32bit architectures. Support for Windows 7 and Windows Vista with SP2 is only at beta level because their support is based on Cygwin 1.7 which has only beta version available. 

Support for other than above listed operating systems has not been tested but should be possible if chosen operating system supports Eclipse IDE, if similar functionality for Host PC Connectivity is available for that operating system (for example most Linuxes like Fedora have that) and if operating system is able to run Maemo SDK Virtual Image (in practice supports either QEMU, VMWare or VirtualBox).

=== Product infrastructure ===

* Support for Eclipse Integration 1st Edition discontinued for Diablo
* Support for earlier Ubuntu Gutsy and Hardy based SDK Virtual Images discontinued
** Old SDK Virtual images are still available from Old Maemo Development Platform Downloads page http://tablets-dev.nokia.com/old-maemo-dev-env-downloads.php
* Documentation in maemo.org and Garage projects updated to 2nd Edition Final level 
** Edition 1 documentation removed
* Maemo PC Connectivity components released in Frementle extras-devel repository
* Maemo PC Connectivity components released in Diablo extras repository
* Eclipse components
** released from ESbox and PluThon Garage projects as full installation (including also Eclipse 3.4.2 IDE)
** installable from ESbox, PluThon and Mica P2 update sites to the existing Eclipse 3.4.2 installation (including upgrade from previous Eclipse Integration PreFinal release)
* Maemo Info Center service available from maemo.org for documentation 
** infrastructure is scalable and supports load balancing and two (or more) Info Center server instances 
** integrated to the Eclipse IDE help system (online documentation) 
*** online documentation is usable also outside Eclipse IDE with standard browsers
*** online documentation supports searches
** integrated to the Eclipse dynamic help system (offline documentation) 
*** offline documentation can be downloaded/updated from Info Center servers to Eclipse IDE automatically 
** includes full Maemo Fremantle documentation

=== Product configuration ===
* Diablo 4.1.2 SDK (latest maintenance), N800 and N810 devices used as base
* Fremantle 5.0 SDK (Final) and N900 device used as base
* Latest Cygwin 1.5.25-15 as base for Windows XP porting framework 
* Latest Cygwin 1.7 beta as base for Windows 7 and Windows Vista porting framework 
* Latest MacPorts 1.8.x as base for Mac OS X porting framework
* Maemo Flasher-3.5 Tools for Linux, Windows XP/7/Vista (x86/32-bit) and Mac OS X 10.5/10.6 (x86 and PPC/32-bit)
* Maemo SDK Virtual Images for Eclipse usage (Ubuntu Intrepid Server based image) and for standalone development with full Maemo Fremantle and Diablo development environments preinstalled (Ununtu Intrepid Desktop based image)

=== Maemo Eclipse products ===
* [http://esbox.garage.maemo.org/ Maemo ESbox for Eclipse]
* [http://pluthon.garage.maemo.org/ Maemo PluThon for Eclipse]
* [http://mica.garage.maemo.org/ Maemo Mica plugin framework]
* Garage documentation integrated to the Maemo Info Center
* Separate Maemo Eclipse Tutorial documentation including 
** how to use tracing tool (ltrace) and analyze results 
** how to use memory leak tool (Valgrind) and analyze results
** how to use profiling tool (OProfile) and analyze results
* All bug reports in Garage are either &quot;transferred to the next release&quot;, &quot;verified&quot; or &quot;closed&quot; status for the final 
* Minimal Qt support by integrating qmake project builder type and Qt documentation 
* Wizard to create new Maemo Eclipse project from existing Qt development project
* Maemo SDK Virtual Image configuration improvements for ESbox 
* Externalize strings in Mica, ESbox and PluThon 
* Refactoring the ESbox/PluThon help into Mica framework

=== [http://pc-connectivity.garage.maemo.org/ Maemo PC Connectivity] ===
* Garage documentation integrated to the Fremantle Developer Guide / Development Environment 
* Basic documentation will be installed also together with PC Connectivity packages
* All bug reports in Garage are either &quot;transferred to the next release&quot;, &quot;verified&quot; or &quot;closed&quot; status for the final 
* Connectivity framework has a method to get information which Maemo platform version (at least on level Diablo or Fremantle) and Maemo device HW version (at least on level N8x0 or N900) connected Maemo device runs 

=== [http://maemovmware.garage.maemo.org/ Maemo SDK Virtual Image] ===
* Garage documentation integrated to the Fremantle Developer Guide / Development Environment 
* All bug reports in Garage are either &quot;transferred to the next release&quot;, &quot;verified&quot; or &quot;closed&quot; status for the final 
* New Ubuntu Desktop image will be done AFTER Eclipse Integration Final release

=== Maemo Flasher-3.5 Tool ===
* Documentation integrated to the Fremantle Developer Guide / Development Environment 
* All bug reports are either &quot;transferred to the next release&quot;, &quot;verified&quot; or &quot;closed&quot; status for the final 
** flashing eMMC image to the memory card will be either fixed as feature for Flasher-3.5 Windows version 
** unpacking FIASCO image with '-u' option will be fixed for Windows version 
* All Flasher-3.5 versions will be updated to use the latest flasher code base
* Flasher-3.5 supports also Mac OS X 10.x (Snow) Leopard with PPC/32-bit architecture in addition to the x86/32-bit architecture

=== Integration testing ===
* General stability improvements verified 
** if network connection between Maemo device and host PC gets broken system recovers itself when connection is re-established
** if download or installation from maemo.org resources gets interrupted system cleans up and allows user to retry
** if update of our own Eclipse components gets interrupted (any reason) from our update site system cleans up and restores latest stanble environment
** if erros happen in SDK operations like with building with autotools, package creation etc system recovers from those and gives &quot;usable&quot; error messages
** usage of features &quot;unplanned&quot; way either works as expected or gives proper error message

----
----

'''THESE FEATURES FOR RELEASED PRERELEASES ARE HERE ONLY FOR DOCUMENTATION PURPOSES'''

== New features in PreFinal release (2.0.0M6, wk37 2009) ==

Eclipse Integration 2nd Edition PreFinal [http://wiki.maemo.org/Eclipse_integration/ReleaseNotes_prefinal Release Notes] and [http://wiki.maemo.org/Eclipse_integration/KnownIssues_prefinal Known Issues]

'''Notice''' especially that this Prefinal release replaces old Eclipse Integration Edition 1 release meaning that support for Edition 1 will be discontinued and Edition 1 deliverables and documentation will be removed before Final release. 

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. 

Support for other than above listed operating systems has not been tested but should be possible if chosen operating system supports Eclipse IDE, if similar functionality for Host PC Connectivity is available for that operating system (for example most Linuxes like Fedora have that) and if operating system is able to run Maemo SDK Virtual Image (in practice supports either QEmu, VMWare or VirtualBox).

=== Product infrastructure ===
* Support for Eclipse Integration Edition 1 discontinued for Diablo
* Support for earlier Ubuntu Gutsy and Hardy based SDK Virtual Images discontinued
* Documentation in maemo.org and Garage projects updated to Edition 2 level 
* Maemo PC Connectivity components released in Frementle extras-devel repository
* Maemo PC Connectivity components released in Diablo extras-devel repository
* Eclipse components
** released from ESBox and Pluthon Garage projects as full installation (including also Eclipse 3.4.2 IDE)
** installable from ESBox, Pluthon and Mica P2 update sites to the existing Eclipse 3.4.2 installation (including upgrade from previous Eclipse Integration Beta 2 release)

=== Product configuration ===
* Diablo 4.1.2 SDK and platform image used as base
* Fremantle 5.0 SDK Beta 2 and platform image used as base
* Latest Cygwin 1.5.25-15 as base for Windows porting framework 
* Latest MacPorts 1.9.0 as base for Mac OS X porting framework
* Maemo Flasher-3.5 Tool Betas for Linux, Windows XP/Vista (x86/32-bit) and Mac OS X (x86 and PPC/32-bit)

=== [http://mica.garage.maemo.org/ Maemo Mica plugin framework] ===
* pyDev component upgraded to the latest stable release
* Package manager cleanup
** Unify project package installer and machine package installer
** Split out gathering of required packages to a separate step (and a separate page in the project package installer wizard)
** Provide list of (package manager, package, repository) tuples to package installer engine
** Have Scratcbox 1 installers just start with the list of tuples above
* Improve localization support for C/C++ and Python application development
* Using trace tool (ltrace) with SDK and Maemo device for a process can be done online with Eclipse IDE
** setting up trace environment and starting and stopping tracing is easy
** viewing trace date online from Tablet is possible through VNC
** viewing trace data online from SDK is possible
* Hover help integrated for online and local documentation

=== [http://esbox.garage.maemo.org/ Maemo ESBox plugin for Eclipse] ===
* Integration to Maemo Fremantle C/C++ and Python documentation (API docs and Reference Manual)
* Hover help support for Maemo C SDK APIs
* Improved Maemo SDK Virtual Image configuration
* New Maemo SDK Virtual Image installer wizard
* Support for detecting errors in autoconf/configure builds

=== [http://pluthon.garage.maemo.org/ Maemo Pluthon plugin for Eclipse] ===
* Hover help integrated for online and local documentation

=== [http://pc-connectivity.garage.maemo.org/ Maemo PC Connectivity] ===
* Support for restoring host PC specific environment
** possibility to automatically restore previous environment triggered by connection establishment
** when connection to host PC is restored also previously configured environment is restored
** if host PC specific environment configuration is not available default environment is created e.g. disk mounts restored, sbrsh connections started, ...
* Support for easily configurable connections and environment on host PC
** automatically configure USB, BT and WLAN connections on host PC using DHCP server and ZeroConf (Avahi) with Maemo device
** configuration tool or script available for host PC so that there is less manual configuration after installation
** configuration scripts available for all supported operating systems for host PCs 
** configuration scripts work together with Maemo device services and configuration applets to setup and test connectivity
* Support for IP Forwarding between Maemo device and host PC
** Maemo device can use public network through host PC
** host PC can use public network through Maemo device
* Support to use rsync 
** to backup Maemo device to the host PC (as new backup method in addition to using  osso_backup program)
** to syncronize files between host PC and Maemo device
* Support to use RDesktop
** rdesktop client to enable desktop share access using Remote Desktop Protocol (RDP) to Windows PCs
* Support for Samba shares
** Samba to enable disk mounts between Mameo device and Windows host PCs
* Support ZeroConf and DHCP
** Avahi and DHCP server to enable automatic configuration of Maemo PC Connectivity between Maemo device and Host PC
* Support to localize PC Connectivity UI components 
** configuration applets in Maemo Device and configuration tools in host PC

=== [http://maemovmware.garage.maemo.org/ Maemo SDK Virtual Image] ===
* Release both Ubuntu Intrepid Server and Desktop based Maemo SDK Virtual Images
* Update both Ubuntu Intrepid Desktop and Server installations in images to the latest Ubuntu Intrepid maintenance level
* Maemo Ubuntu Desktop SDK Virtual Image
** provide installation of Official VM Tools as productivity enhancement tool for VMWare virtualization technology in addition to Open VM Tools
** preinstall both Diablo and Fremantle SDKs (and Nokia closed binaries together with SDKs)
* Maemo Ubuntu Server SDK Virtual Image
** provide installation of productivity enhancement tools for VMWare and VirtualBox virtualization technologies

=== Maemo Flasher-3.5 Tool ===
* Mac OS X support enhanced to Power PC Macs (32-bit)

=== Integration testing ===
* General stability improvements verified 
** if network connection between Maemo device and host PC gets broken system recovers itself when connection is re-established
** if download or installation from maemo.org resources gets interrupted system cleans up and allows user to retry
** if update of our own Eclipse components gets interrupted (any reason) from our update site system cleans up and restores latest stanble environment
** if erros happen in SDK operations like with building with autotools, package creation etc system recovers from those and gives &quot;usable&quot; error messages
** usage of features &quot;unplanned&quot; way either works as expected or gives proper error message
----

== New features in Beta 2 release (2.0.0M5, wk27 2009) ==

Eclipse Integration 2nd Edition Beta 2 [http://wiki.maemo.org/Eclipse_integration/ReleaseNotes_beta2 Release Notes] and [http://wiki.maemo.org/Eclipse_integration/KnownIssues_beta2 Known Issues]

=== Product infrastructure ===

* Front pages in Garage projects updated to Edition 2 level 
* Support for old Ubuntu Hardy and Gutsy Maemo SDK Virtual Images discontinued
* Beta 2 Maemo PC Connectivity components have been released in Frementle extras-devel repository
* Beta 2 Maemo PC Connectivity components have been released in Diablo extras-devel
* Beta 2 Eclipse components
** released from ESBox and Pluthon Garage projects as full installation (including also Eclipse 3.4.2 IDE)
** released from Maemo Eclipse update P2 site as update to Beta 1

=== Product configuration ===

* Diablo 4.1.2 SDK and platform image used as base
* Latest Fremantle Beta SDK and platform image used as base
* Latest Cygwin 1.5.25-15 as base for Windows porting framework 
* Latest MacPorts 1.7.1 as base for Mac OS X porting framework
* Maemo Flasher-3.5 Tools for Linux, Windows XP/Vista and Mac OS X

=== [http://mica.garage.maemo.org/ Maemo Mica plugin framework] ===
* Generalization of Mica framework to support better other than just ESBox and Pluthon plugins
** general refactoring and cleanup for Mica 
* Maemo Flasher-3.5 Tool Beta
** support to install flasher-3.5 beta tools automatically
** flasher wizard support for flasher-3.5 beta
* ESBox is able to warn user if current Maemo device connected to the host PC is NOT compatible with enabled Maemo SDK target
* Eclipse Integration supports localization of developed components and applications 
** localization support is available for C/C++ programming languages
* Remove IP address-based launch configuration
** https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=3387&amp;group_id=799&amp;atid=2996
* Improve SSH exchange keys support for SBRSH
** https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=3827&amp;group_id=799&amp;atid=2996

=== [http://esbox.garage.maemo.org/ Maemo ESBox plugin for Eclipse] ===
* Improvements to the OProfile and Valgrind integration
* Support for Maemo Flasher-3.5 Beta Tool for Linux, Windows and Mac OS X 
* Externalize Strings wizard improvements for C/C++ 
* Externalize Strings wizard improvements for Python 
* Updates for ESbox help

=== [http://pluthon.garage.maemo.org/ Maemo Pluthon plugin for Eclipse] ===
* More code templates for PluThon (with GTK, multimedia, d-bus, hildon widgets, ...)
* Support for Maemo Flasher-3.5 Beta Tool for Linux, Windows and Mac OS X
* Improved method to generate Debian packages on device
* Uninstallation of generated Python Debian packages is now supported 
* Externalize Strings wizard improvements for Python
* Updates for Pluthon help
* Updataed pyMaemo tutorial and manual for Fremantle (http://pymaemo.garage.maemo.org/documentation_fremantle.html)

=== [http://pc-connectivity.garage.maemo.org/ Maemo PC Connectivity] ===
* Support for easily configurable connections and environment on host PC
** Windows tool to configure USB networking connection added
** Mac OS X tool to configure BT connection added
** manual configuration editing configuration files directly is possible
* Host PC connectivity installation is done using installation script or tool
** for Linux, Windows, Mac OS X host PCs there is an installation package that can be used to install Maemo PC Connectivity to the host PC
* PC Connectivity environment settings in Maemo device can be backed up with osso-backup application (for example before reflashing Maemo device)

=== [http://maemovmware.garage.maemo.org/ Maemo SDK Virtual Image] ===
* Productivity enhancement tools (Open VM Tools for VMWare and GuestAdditions for VirtualBox) can be installed manually also for Beta 1 level Ubuntu Server based Maemo SDK virtual Image 
* Beta 1 level Ubuntu Desktop based Maemo SDK virtual Image can be upgraded to Beta 2 level. See instructions from here http://maemovmware.garage.maemo.org/2nd_edition/update_maemo_vm.html

=== Integration testing ===
* General product stability issues verified after refactorization of Mica, ESBox and PluThon was done
* General product stability issues verified after support for Fremantle SDK environment was added
* General product stability issues verified after support for Fremantle PC Connectivity was added
----

== New features in Beta 1 release (2.0.0M4, wk21 2009) ==

'''Notice:''' Maemo Eclipse Integration 2nd Edition Beta 1 release includes final versions of standard Eclipse components that will be released also with final Eclipse Integration release. 

=== [http://mica.garage.maemo.org/ Maemo Mica plugin framework] ===
* Update Eclipse IDE baseline components to Eclipse Ganymede SR2
* Update pyDev, CDT, RSE, DSF and EMF components to the latest stable versions
* Add Scratchbox 1 installer wizard and SDK installer wizard
* Support for both Diablo and Fremantle SDK
* Support SBRSH in sandboxless mode
* Better SBRSH configuration UI
* Flasher wizard for flashing Internet Tablet from Eclipse IDE
* Support for P2 update site for Mica
* Mica Garage site released for 2nd Edition

=== [http://esbox.garage.maemo.org/ Maemo ESBox plugin for Eclipse] ===
* Provide one-time warning to users that running/debugging in SDK ARM rootstraps is not well-supported.
* Support for Linux and Win32 host PC official and documented
* Initial support for Mac OS X host PC (works and documented but not fully tested)
* Full connectivity support for Internet Tablet with SSH, RSE and SBRSH from Linux, Windows and Mac OS X
* Keep up with Scratchbox 2 changes
* ESbox Garage site has separate Beta 1 documentation
* Support for both Diablo and Fremantle SDK
* Import Eclipse projects from Maemo SDK and Debian packages
* C/C++ debug/optimized configuration support
* Shared library debugging improvements
* Python interpreter configuration improvements (support for Scratchbox and Tablets)
* Support for P2 update site for ESbox
* Installation wizard for Scratchbox, Diablo SDK and Fremantle SDK
* SDK Virtual Image configuration improvements (like Eclipse installation wizard for Windows and Mac OS X for maemo SDK environments)

=== [http://pluthon.garage.maemo.org/ Maemo Pluthon plugin for Eclipse] ===
* Support for Linux and Win32 host PC official and documented
* Initial support for Mac OS X host PC (works and documented but not fully tested)
* Full connectivity support for Internet Tablet with SSH, RSE and SBRSH from Linux, Windows and Mac OS X
* Pluthon Garage site has separate Beta 1 documentation 
* Support SBRSH natively on Linux, Win32 ans Mac OS X host PCs
* Update to use the latest stable version 1.4.4 of PyDev component
* Support for P2 update site for Pluthon 
* Installation wizard to setup Python development environment for host PC and Internet Tablet

=== [http://pc-connectivity.garage.maemo.org/ Maemo PC Connectivity] ===
* Support for Linux, Win32 host PC official and documented
* Initial support for Mac OS X host PC (works and documented but not fully tested)
* Initial support for maemo porting framework with Cygwin
* Full connectivity support with USB, BlueTooth and WLAN for Linux, Windows and Mac OS X
* Full ssh, sftp, vnc and disk mount support for Linux, Windows and Mac OS X host PCs
* Support for both Diablo and Fremantle SDK
* Initial Fremantle/Diablo flasher support for Linux
* Full support for VNC clients (native and Eclipse VNC plugin support)
* Full support for Internet Tablet configuration with control panel applet and status bar plugin
* Native SBRSH support for Linux, Win32 and Mac OS X
* SBRSH to support session based sandbox option 
* SFTP support to access Internet Tablet file system with native host PC GUI clients
* Support for Maemo SDK CPU Transparency mode
* Support for installing Host PC Connectivity components for Linux, Win32 and Mac OS X host PCs
* Support for configuring Host PC Connectivity components for Linux, Win32 and Mac OS X host PCs
* Improved documentation for installing and configuring Host PC Connectivity on Linux, Win32 and Mac OS X host PCs
* Tablet configuration applet allows easy configuration of sbrsh, vnc, unfs3, etc.
* Tablet configuration applet supports several configuration environments that store configuration information for many services and connection types 
* Status bar plugin can be used to easily switch between predefined environments

=== [http://maemovmware.garage.maemo.org/ Maemo SDK Virtual Image] ===
* Ubuntu Intrepid Server based Maemo SDK Virtual Image for Linux, Windows and Mac OS X
** Provide full support for VMWare and QEMU virtualization technologies
** Provide do-it-yourself support for VirtualBox 
** Server image includes just basic Ubuntu Intrepid Server and Host PC Connectivity environment prefonfigured and Maemo Diablo and Fremantle Development Environments can be installed with Eclipse installation wizard automatically
* Ubuntu Intrepid Desktop based Maemo SDK Virtual Image for Linux, Windows and Mac OS X
** Provide out-of-the-box ready Ubuntu Intrepid Desktop based image 
** Desktop image includes fully configured Maemo Diablo Development Environment and Fremantle Development Environment can be installed with Eclipse installation wizard automatically
** Desktop image includes installers for GuestAdditions (for VirtualBox) and OpenVMTools (for VMWare)
* Installer/tool to configure Maemo SDK Virtual Images for VirtualBox usage
* Separate Beta 1 documentation for SDK Virtual Images on Garage site
----

== Alpha 3 release was skipped (2.0.0M3, wk14 2009) ==

'''Notice:''' Maemo Eclipse Integration 2nd Edition Alpha 3 release was optional. Plan was that Alpha 3 release will be done but published (and announced) only if the quality level is good enough (equal or better than for Alpha 2). Because many basic Eclipse components (like Eclipse IDE itself, CDT, RSE, pyDev etc) were updated for Alpha 3 release it was not possible to have good enough quality for this release in given time schedule (about one month between Alpha 2 and Alpha 3 releases) and project decided to skip Alpha 3 release and target to have first Beta release out with good quality and with final versions of standard Eclipse components (no more major version updates for final). Beta 1 release planned for week 20 is not optional :).
----

== New features in Alpha 2 release (2.0.0M2, wk09 2009)==

Eclipse Integration 2nd Edition Alpha 2 [http://wiki.maemo.org/Eclipse_integration/ReleaseNotes_alpha2 Release Notes]

=== [http://mica.garage.maemo.org/ Maemo Mica plugin framework] ===
* Be able to detect the platform installed on a device 
* Support installing packages and update repositories to device in a synchronized way (integration to apt-tools) 
* Autoconfigure Python Interpreter preferences 
* Better Python launch shortcut behavior (launch from project, send all files) 
* Improved SSH and RSE support (reduced password dialogs)
* Initial support for VNC client 
* Automatically generate Debian structure for projects 
* All template projects can build Debian packages
* Better support for mixed ESbox/PluThon targeting

== [http://esbox.garage.maemo.org/ Maemo ESBox plugin for Eclipse] ==
* Initial support for Windows hosting using VMware and QEMU virtual machines for maemo SDK 
* Support importing projects from apt repositories 
* Support installing packages and update repositories to Scratchbox in a synchronized way (integration to apt-tools) 
* Initial support for running/debugging with shared libraries with DSF 
* Initial support for SBRSH autoconfiguration with an &quot;Exchange keys&quot; button in SBRSH launch configurations
* Initial C/C++ shared library template project 
* Initial integration to the latest Scratchbox 2 stable release 
* Fix issues with templates that need doctools support by automatically adding it to Scratchbox 1 devkits

=== [http://pluthon.garage.maemo.org/ Maemo Pluthon plugin for Eclipse] ===
* Prototype level support for Windows host PC
* Integration with RSE, instead of custom SSH Connections
* Better support for copying/running/tracing/debugging Python applications on Tablet

=== [http://pc-connectivity.garage.maemo.org/ Maemo PC Connectivity] ===
* Prototype level support running sbrsh natively on Mac OS X or Windows host PC (verify if this can be done)
* Support for following connectivity types, USB Networking, Bluetooth and Wlan 
* First version of Network Manager applet (no full functinality) 
* First version of Network Switcher status bar plugin (no full functionality) 
* Initial support for normal and advanced user modes (different UIs for modes) for configuration tools 
* Initial tools and scripts for host PC installation and configuration (for all supported operating systems) 
* VNC support for Linux and SDK virtual image 
* X-tunneling support for Linux and SDK virtual image
----

== New features in Alpha 1 release (2.0.0M1, wk46 2008) ==

Both ESBox and Pluthon plugin architecture was restructured to use common Maemo Eclipse plugin framework called Mica (Maemo Integration Common Architecture)

There were no changes with Alpha 1 release to these products:
* Maemo PC Connectivity 1st Edition
* Maemo SDK Virtual Image
* Maemo C++ and Python programming language support

=== Maemo ESBox plugin for Eclipse ===
* Architecture of plugin was restructured to support Mica plugin framework
* New C/C++ and Python project wizards will automatically install missing build/runtime dependencies in Scratchbox
* Eclipse DSF debugger framework integration 
* New template engine and wizard for C/C++ and Python 
* Build configurations support, there is a one-to-one mapping from build target to build configuration
* Autotools files editing ,you can edit *.ac, *.m4, and *.am files with the editor provided
* Eclipse TM/RSE framework integration with features such as remote file system explorer, remote process viewer, remote shell and terminal to the Internet Tablet 
* New download method Copy via RSE (in addition to Copy via SSH and Mount via SBRSH) is added for Maemo Remote Application launch configuration
* Full product build which allows user to get all requried Eclipse components by downloading and installing just one distribution package
* Some bug fixes

=== Maemo Pluthon plugin for Eclipse ===
* Architecture of plugin was restructured to support Mica plugin framework
* New template engine and wizard for Python 
* It is possible to select what files you want to upload to the Internet Tablet
* Build configurations support, there is a one-to-one mapping from build target to build configuration
* Python debugger now stops on the breakpoints of source code
* Full product build which allows user to get all requried Eclipse components by downloading and installing just one distribution package
* Some bug fixes

[[Category:Development]]
[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Eclipse integration/KnownIssues beta1</title>
    <id>4017</id>
    <revision>
      <id>33457</id>
      <timestamp>2010-04-26T09:15:28Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Eclipse integration/KnownIssues beta1]] moved to [[Eclipse integration/Known issues beta1]]</comment>
      <text xml:space="preserve">#REDIRECT [[Eclipse integration/Known issues beta1]]</text>
    </revision>
  </page>
  <page>
    <title>Eclipse integration/KnownIssues beta2</title>
    <id>4018</id>
    <revision>
      <id>33459</id>
      <timestamp>2010-04-26T09:15:48Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Eclipse integration/KnownIssues beta2]] moved to [[Eclipse integration/Known issues beta2]]</comment>
      <text xml:space="preserve">#REDIRECT [[Eclipse integration/Known issues beta2]]</text>
    </revision>
  </page>
  <page>
    <title>Eclipse integration/KnownIssues final</title>
    <id>4015</id>
    <revision>
      <id>33451</id>
      <timestamp>2010-04-26T09:12:31Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Eclipse integration/KnownIssues final]] moved to [[Eclipse integration/Known issues]]: Capitalisation</comment>
      <text xml:space="preserve">#REDIRECT [[Eclipse integration/Known issues]]</text>
    </revision>
  </page>
  <page>
    <title>Eclipse integration/KnownIssues prefinal</title>
    <id>4016</id>
    <revision>
      <id>33455</id>
      <timestamp>2010-04-26T09:15:03Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Eclipse integration/KnownIssues prefinal]] moved to [[Eclipse integration/Known issues prefinal]]</comment>
      <text xml:space="preserve">#REDIRECT [[Eclipse integration/Known issues prefinal]]</text>
    </revision>
  </page>
  <page>
    <title>Eclipse integration/Known issues</title>
    <id>3053</id>
    <revision>
      <id>34257</id>
      <timestamp>2010-05-12T08:10:04Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">= Known Issues for Maemo Eclipse Integration Edition 2 Final release (R2.0.0) =

More detailed known issues lists can be found from Garage projects for each product https://garage.maemo.org/.

Detailed list of new features implemented to Maemo Eclipse Integration since previous PreFinal release together with feature plan for final release is here: [[Eclipse integration]].

[[Eclipse_integration/ReleaseNotes_final|Release Notes are available]].

== Product baselines ==

* N900 device with Maemo Fremantle 5.x platform releases
* Fremantle 5.0 SDK, the latest final release
* N8x0 devices with Maemo Diablo 4.1.x platform releases
* Diablo 4.1.2 SDK, the latest maintenance release

== Product configuration ==

* Maemo SDK ARMEL rootstrap is meant to be used only for cross-compiling and it does not support running or debugging applications
* 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
* 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

== Maemo Mica plugin framework for Eclipse ==

* none (so far :)

== Maemo ESbox for Eclipse ==

* Hover help for Python does not work on ESBox because documentation has not been integrated.
* Installing Nokia binaries may sometimes fail with exit code 100 when Maemo SDK gets installed. 
** workaround is to restart the Maemo SDK binary installation until it goes through without errors.
* 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.
** workaround is to select '''Project -&gt; Validate Installed Packages''' 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.
* Maemo Diablo SDK has ARMEL debugging problems when using Ubuntu Karmic host PC. If Maemo Diablo SDK is installed to Ubuntu Karmic environment &lt;code&gt;native-gdb&lt;/code&gt; script will not work but gives segment fault which prevents debugging operations on Maemo SDK ARMEL rootstrap. 
** see more details from this bug report https://bugs.maemo.org/show_bug.cgi?id=7106

== Maemo PluThon for Eclipse ==

* Hover help for Python for Maemo API documents does not work on Pluthon because documentation is not integrated

== Maemo PC Connectivity ==

* Maemo PC Connectivity functionality with [[Nokia N900|N900]] device and [[Open development/Maemo roadmap/Fremantle|Fremantle]] is more limited than with N800/N810 device with Diablo
** N900 will not support USB host mode
*** no workaround (N900 HW issue)
** N900 will not support IP Forwarding (iptable NAT kernel modules)
*** workaround is to rebuild Fremantle kernel with NAT enabled and hack kernel symbols for NAT kernel modules
** N900 will not support BlueTooth connections simultaneously with WLAN connections
*** no known workaround
** N900 will not support &quot;USB Networking&quot; with platform default USB applet but only &quot;PC Suite&quot; and &quot;Mass Storage&quot; mode (applet provided by PC Connectivity supports also USB Networking)
*** workaround is to use ONLY configuration applet provided by PC Connectivity instead of default applet
*** Notice that USB mode changes are possible only if USB cable is plugged-out and plugged-in between mode changes with both applets
*** 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
** Samba does not work with Fremantle platform and N900 causing disk mounts between N900 and Windows host PC to fail
*** workaround is to use only SSHFS mounts with Cygwin
** Fremantle platform and SDK support ONLY 16-bit color depth for X Server
*** 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)
** Fremantle SDK does not support CPU Transparency
*** workaround is to build and install new SBRSH client manually inside Scratchbox
* 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
* When creating a project and setting SBRSH as download method errors like &quot;sbrsh server: fuse: bad mount point&quot; and &quot;sbrsh server: Can't mount to point:&quot; may happen when SBRSH is used first time with Maemo device (for example after device flashing when SSH keys need to be reset).
** workaround is to restart Maemo device.
* 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.
** when the problem occurs user gets &quot;Internet connection failed. Unable to retrieve IP address from server&quot; error
** workaround is to re-flash Maemo device or manually assign IP number to the connection (which may cause problems with DHCP)
* 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)
** Cygwin 1.7 beta installation may require manual configuration for Maemo
** Cygwin 1.7 beta X11 may crash when Maemo applications are run with it
** 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
*** 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.
* SSHFS may not be usable for &quot;normal&quot; user account. This is because /dev/fuse is not writable by default for &quot;normal&quot; users. /dev/fuse is usually writable only for group &quot;fuse&quot; 
** workaround is to add user account used to &quot;fuse&quot; group

== Maemo SDK Virtual Images ==

* By default NetworkManager is being started after Scratchbox, so the resolv.conf file used by Scratchbox may be invalid which causes network problems
** workaround is to update resolv.conf file for Scratchbox manually after Maemo SDK installation and/or after network changes
* 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)
** workround is to use VMWare Player version 2.5.x or use only Bridged network mode for Maemo SDK Virtual Image
* 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.  
** 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 &quot;sudo dhclient&quot; to see network configuration or reconfigure network interfaces after network changes

== Maemo Flasher-3.5 Tool ==

* none (so far)

== Integration testing ==

* 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
* Test results (for unit tests and integration tests) for official releases are not yet ready to be published together with products

----
Feedback can be sent to eclipse-integration@maemo.org

[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Eclipse integration/Known issues beta1</title>
    <id>1913</id>
    <revision>
      <id>34258</id>
      <timestamp>2010-05-12T08:13:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">= Known Issues for Maemo Eclipse Integration Edition 2 Beta 1 release =

More detailed known issues lists can be found from Garage projects for each product https://garage.maemo.org/.


== Product baselines ==

* [[Open development/Maemo roadmap/Fremantle|Fremantle]] SDK is supported as separate installation e.g. not delivered as default environment with Desktop image, for example.
* Fremantle devices are not officially supported as devices do not exist yet but first unofficial Fremantle packages are available from Fremantle [[extras-devel]] repository
* Ubuntu Desktop based Maemo SDK Virtual Image (out-of-the-box ready development environment) will be released couple of days AFTER Eclipse Integration Edition 2 Beta 1 release as it needs to include this Beta 1 release products :)

== Product configuration ==

* Mac OS X does not yet have support for Linux porting framework like Windows has with Cygwin
* Pluthon does not yet have flasher integration for Windows or Mac OS X as there does not yet exist native Windows and Mac OS X flasher tools
* Maemo SDK ARMEL rootstrap is ment to be used only for cross-compiling and it does not support running or debugging applications
* 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
* 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/beta1/installation.html) for VNC client to work on host PC
* PyMaemo installation meta packages in Diablo extras repository (&lt;code&gt;maemo-python-env&lt;/code&gt; and &lt;code&gt;maemo-python-device-env&lt;/code&gt;) do not install &lt;code&gt;python2.5-distutils&lt;/code&gt; as default dependency and thus installation package creation with setup.py may not work (this has been agreed to be fixed by PyMaemo project)

== Maemo Mica plugin framework for Eclipse ==

* Mica framework implementation will still change somewhat for the next Beta 2 release and because of that stability of Beta 1 release interfaces cannot be quaranteed (actually there WILL be many changes to Mica interfaces for Beta 2)
* Mica developer documentation is not yet in good enough level for developers to start using it as basis for their own maemo plugins
* While debugging Python application automatic termination of debugged program does not work when debugging session ends

== Maemo ESBox plugin for Eclipse ==

* Launching X server for Diablo and Fremantle require two different X server instances (because of different startup parameters) and this has not been implemented yet
* There may be occasional SDK build problems for C/C++ components with &quot;error: cannot run C compiled programs&quot;. It may help to restart Eclipse IDE and run startup and refresh to Scratchbox.

== Maemo Pluthon plugin for Eclipse ==

* Debian installation packages created on-device do not support uninstallation

== Maemo PC Connectivity ==

* Mac OS X support is initial for Beta 1 release on functionality and quality point of view. Especially testing on Mac environment has been somewhat limited.
* Configuring connectivity to work between Tablet and host PC after installation is still manual work on host PC side for all supported operating systems

== Maemo SDK Virtual Image ==

* NetworkManager is being started after Scratchbox, so the &lt;code&gt;resolv.conf&lt;/code&gt; file used by Scratchbox may be invalid which causes network problems

== Integration testing ==

* 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
* Test results (for unit tests and integration tests) for official releases are not yet ready to be published together with products

----
Feedback can be sent to eclipse-integration@maemo.org

[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Eclipse integration/Known issues beta2</title>
    <id>2075</id>
    <revision>
      <id>34259</id>
      <timestamp>2010-05-12T08:16:23Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">= Known Issues for Maemo Eclipse Integration Edition 2 Beta 1 release =

More detailed known issues lists can be found from Garage projects for each product https://garage.maemo.org/.


== Product baselines ==

* [[Open development/Maemo roadmap/Fremantle|Fremantle]] SDK is supported as separate installation e.g. not delivered as default environment with Desktop image, for example.
* Fremantle devices are not officially supported as devices do not exist yet but first unofficial Fremantle packages are available from Fremantle [[extras-devel]] repository
* Ubuntu Desktop based Maemo SDK Virtual Image (out-of-the-box ready development environment) will not be created for the Beta 2 release but users of old Beta 1 Desktop image are able to upgrade environment to Beta 2 level with these instructions: http://maemovmware.garage.maemo.org/2nd_edition/update_maemo_vm.html
Notice that updating process from Eclipse Update Site (update from beta 1 to beta 2) may not work for some plug-ins

== Product configuration ==

* Maemo SDK ARMEL rootstrap is ment to be used only for cross-compiling and it does not support running or debugging applications
* 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
* 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/beta1/installation.html) for VNC client to work on host PC

== Maemo Mica plugin framework for Eclipse ==

* While debugging Python application automatic termination of debugged program does not work when debugging session ends
* Automatic installation of OProfiling support to the Maemo device may cause Eclipse to crash if Eclipse cannot find OProfile packages from configured repositories. Add repository &lt;pre&gt;deb http://repository.maemo.org/ diablo/tools free&lt;/pre&gt; to the Maemo device and run &quot;sudo apt-get update&quot; manually as workaround.

== Maemo ESBox plugin for Eclipse ==

* Some of the templates and examples provided by ESBox are not yet ported to Fremantle 

== Maemo Pluthon plugin for Eclipse ==

* none

== Maemo PC Connectivity ==

* Mac OS X support is still initial for Beta 2 release on functionality and quality point of view. Especially testing on Mac environment has been somewhat limited.
* 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
* When creating a project and setting sbrsh as download method quite often errors like &quot;sbrsh server: fuse: bad mount point &quot; and &quot;sbrsh server: Can't mount to point:&quot; happens. As a workaround you need to restart sbrshd (on Maemo device side) and restart Esbox (on host PC side)

== Maemo SDK Virtual Image ==

* NetworkManager is being started after Scratchbox, so the &lt;code&gt;resolv.conf&lt;/code&gt; file used by Scratchbox may be invalid which causes network problems

== Maemo Flasher-3.5 Tool ==

* Flasher-3.5 beta tool may have problems in some Windows host PC configurations to flash eMMC images properly. Workaround is to retry with another USB port in host PC or use Linux/Mac for eMMC flashing

== Integration testing ==

* 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
* Test results (for unit tests and integration tests) for official releases are not yet ready to be published together with products

----
Feedback can be sent to eclipse-integration@maemo.org

[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Eclipse integration/Known issues prefinal</title>
    <id>2405</id>
    <revision>
      <id>34260</id>
      <timestamp>2010-05-12T08:20:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">= Known Issues for Maemo Eclipse Integration Edition 2 PreFinal release =

More detailed known issues lists can be found from Garage projects for each product https://garage.maemo.org/.


== Product baselines ==

* [[Open development/Maemo roadmap/Fremantle|Fremantle]] devices are not officially supported as devices do not exist (publicly) yet but most unofficial Fremantle packages are already available from Fremantle [[extras-devel]] repository

== Product configuration ==

* Maemo SDK ARMEL rootstrap is meant to be used only for cross-compiling and it does not support running or debugging applications
* 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
* 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

== Maemo Mica plugin framework for Eclipse ==

* While debugging Python application automatic termination of debugged program does not work when debugging session ends

== Maemo ESBox plugin for Eclipse ==
 
* Installation wizard for SDK Virtual Image on Mac OS X may run into deadlock in situations when more than one dialog is open at the same time
** workaround is to use manual installation of SDK Virtual Image on Mac OS X
* There is no automatic mounting of /scratchbox shares from inside a Maemo SDK Virtual Image into Mac OS X host PC which prevents automatic configuring of C/C++ indexing. Manual configuring and C/C++ indexing works.
* Hover help for Python and C++ for Maemo API documents does not work on ESBox because documentation is not integrated yet
* Debian installation packages creation for Python applications using Eclipse Wizard may fail to create correct structure for packages
* The disk free space calculation on Mac OS X may be incorrect when installing Maemo SDK Virtual Image. If you know you have enough disk space, ignore the not enough disk space warning.

== Maemo Pluthon plugin for Eclipse ==

* Remote ''ltrace'' tool launching for Maemo device fails with Windows host PC if SBRSH is used
** workaround is to use SSH and RSE instead of SBRSH
* Hover help for Python for Maemo API documents does not work on Pluthon because documentation is not integrated yet

== Maemo PC Connectivity ==

* Maemo PC Connectivity functionality with [[Nokia N900|N900]] device and Fremantle is more limited than with [[Nokia N800|N800]]/[[Nokia N810|N810]] device with [[Open development/Maemo roadmap/Diablo|Diablo]]
** N900 will not support USB host mode
*** no workaround (N900 HW issue)
** N900 will not support IP Forwarding (iptable NAT kernel modules)
*** workaround is to rebuild Fremantle kernel with NAT enabled and hack kernel symbols for NAT kernel modules
** N900 will not support BlueTooth connections simultaneously with WLAN connections
*** no known workaround
** N900 will not support &quot;USB Networking&quot; with platform default USB applet but only &quot;PC Suite&quot; and &quot;Mass Storage&quot; mode (applet provided by PC Connectivity supports also USB Networking)
*** workaround is to use ONLY configuration applet provided by PC Connectivity instead of default applet
*** Notice that USB mode changes are possible only if USB cable is plugged-out and plugged-in between mode changes with both applets
*** 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
** 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)
*** final PC Connectivity release will have libicd-dummy package
** Samba does not work with Fremantle platform and N900 causing disk mounts between N900 and Windows host PC to fail
*** will be (hopefully) fixed for final release
** Fremantle platform and SDK support ONLY 16-bit color depth for X Server
*** 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)
* 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
* When creating a project and setting SBRSH as download method quite often errors like &quot;sbrsh server: fuse: bad mount point&quot; and &quot;sbrsh server: Can't mount to point:&quot; happens. As a workaround you need to restart SBRSHD (on Maemo device side) and restart ESBox (on host PC side)
* 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.
** when the problem occurs user gets &quot;Internet connection failed. Unable to retrieve IP address from server&quot; error
** workaround is to reflash Maemo device or manually assign IP number to the connection (which may cause problems with DHCP)
* If FileZilla has already been installed to the Mac OS X host PC, installation of Host PC Connectivity with default settings fails
** workaround is to move FileZilla first to trash and then reinstall Host PC Connectivity or select not to install FileZilla with Host PC Connectivity

== Maemo SDK Virtual Image ==

* NetworkManager is being started after Scratchbox, so the &lt;code&gt;resolv.conf&lt;/code&gt; file used by Scratchbox may be invalid which causes network problems

== Maemo Flasher-3.5 Tool ==

* Flasher-3.5 beta for Windows tool may have problems in some Windows host PC configurations to flash eMMC images properly
** workaround is to use Linux or Mac Flasher-3.5 tool for eMMC flashing
* Flasher-3.5 beta for Windows tool fails to unpack FIASCO image with '-u' option 
** workaround is to use Linux or Mac Flasher-3.5 tool for unpacking FIASCO images

== Integration testing ==

* 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
* Test results (for unit tests and integration tests) for official releases are not yet ready to be published together with products

----
Feedback can be sent to eclipse-integration@maemo.org

[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Eclipse integration/ReleaseNotes alpha2</title>
    <id>1653</id>
    <revision>
      <id>42335</id>
      <timestamp>2011-03-04T08:59:02Z</timestamp>
      <contributor>
        <username>bstern</username>
        <id>4048</id>
      </contributor>
      <minor/>
      <comment>/* Maemo ESBox plugin for Eclipse */ remove vandalism</comment>
      <text xml:space="preserve">= Release Notes for Maemo Eclipse Integration 2nd Edition Alpha 2 release =

This Maemo Eclipse Integration 2nd Edition Alpha 2 release supports Maemo Diablo 4.1.2 development environment and N800, N810 and N810 Wimax Edition Internet Tablet devices.

Possible feedback can be sent to eclipse-integration@maemo.org.

== Release Information ==

* Project:    Maemo Eclipse Integration 2nd Edition
* Version:    Alpha 2
* Baseline:   maemo 4.1.2 Diablo SDK
* Date:       2009-02-27

== General Information ==

High level documentation about Maemo Eclipse Integration (still on 1st Edition level) http://maemo.org/development/documentation/ide_integration

Maemo Eclipse Integration 2nd Edition includes the following parts:

* Eclipse 3.4.1 IDE for C/C++ Developers (official release from eclipse.org)
* Maemo PC Connectivity v0.4.1 (Diablo extras-devel repository version)
* Maemo ESbox plugin for Eclipse v2.0.0M2 (Esbox Garage project version)
* Maemo Pluthon plugin for Eclipse v2.0.0M2 (Pluthon Garage project version)
* Maemo C/C++ and Python programming language support (Diablo extras repository versions)
* Maemo Virtual SDK Images (to support other than Debian based Linuxes)
   
Detailed list of new features implemented to Maemo Eclipse Integration for Alpha 1 and Alpha 2 releases together with feature plan for next Alpha 3 release is [[Eclipse integration | here]]

Detailed description of functionality and installation instructions for all Alpha 2 components can be found from http://garage.maemo.org projects.

=== Eclipse 3.4.1 IDE for C/C++ Developers ===
Project main pages: http://www.eclipse.org/, http://www.eclipse.org/cdt
* Eclipse CDT 5.0.x download if separate download wanted: http://www.eclipse.org/cdt/downloads.php
* List of generic Eclipse components included: 
** Eclipse 3.4.1 (Ganymede SR1)
** CDT 5.0.1
** EMF 2.1.1
** RSE 3.0
** DSF 1.1 (+ local changes)
** !PyDev 1.3.24
** !RedHat Autotools for Eclipse plugin 1.0.0
** VNC plugin from Tools for Mobile Linux project

=== Maemo PC Connectivity ===
Project main page: http://pc-connectivity.garage.maemo.org
* Configuration instructions: http://pc-connectivity.garage.maemo.org/documentation.html
* Installation instructions to the Internet Tablet: http://pc-connectivity.garage.maemo.org/installation.html
* Old 1st Edition installation instructions are otherwise usable also for this 2nd Edition Alpha 2 release, but pc-connectivity meta package for Internet Tablet needs to be installed from Diablo extras-devel repository (and not from Diablo extras repository, which still has old 1st Edition packages): http://maemo.org/development/documentation/pc_connectivity

=== Maemo ESbox plugin for Eclipse ===
Project main pages: http://esbox.garage.maemo.org, https://garage.maemo.org/plugins/wiki/index.php?id=192&amp;type=g
* Alpha 2 release front page: https://garage.maemo.org/plugins/wiki/index.php?Prerelease_2_0_0_M2&amp;id=192&amp;type=g
* Alpha 2 release installation package: https://garage.maemo.org/frs/?group_id=192
* Alpha 2 release FAQ: https://garage.maemo.org/svn/esbox/trunk/org.maemo.esbox.help/html/reference/FAQ.html
* Installation instructions: https://garage.maemo.org/plugins/wiki/index.php?Prerelease_2_0_0_M2&amp;id=192&amp;type=g
* The 2nd Edition releases are full Eclipse installations, so only a JRE must be installed.  But the 2nd Edition documents are not finished yet, so to fill in any missing pieces, see: http://esbox.garage.maemo.org/installation.html
* Additional setup for Windows host: https://garage.maemo.org/plugins/wiki/index.php?ESboxOutsideLinuxWithVirtualMachine&amp;id=192&amp;type=g

=== Maemo Pluthon plugin for Eclipse ===
Project main pages: http://pluthon.garage.maemo.org/, https://garage.maemo.org/plugins/wiki/index.php?id=247&amp;type=g
* Alpha 2 release front page: https://garage.maemo.org/plugins/wiki/index.php?Prerelease_2_0_0_M2&amp;id=247&amp;type=g
* Alpha 2 release FAQ: https://garage.maemo.org/svn/pluthon/trunk/org.maemo.pluthon.help/html/reference/FAQ.html
* Alpha 2 release installation package: https://garage.maemo.org/frs/?group_id=247 
* Installation instructions: https://garage.maemo.org/plugins/wiki/index.php?Prerelease_2_0_0_M2&amp;id=247&amp;type=g
* The 2nd Edition releases are full Eclipse installations, so only a JRE must be installed. But the 2nd Edition documents are not finished yet, so to fill in any missing pieces:
** Older instructions for Linux: http://pluthon.garage.maemo.org/installation.html (use tab Linux)
** Older instructions for Windows: http://pluthon.garage.maemo.org/installation.html (use tab Windows)

=== Maemo C/C++ and Python programming language support ===
Project main pages: http://pymaemo.garage.maemo.org/, http://maemomm.garage.maemo.org/
* Installation and configuration instructions: http://maemo.org/development/documentation/programming_languages
* C++ documentation: http://maemomm.garage.maemo.org/docs
* Python documentation: http://pymaemo.garage.maemo.org

=== Maemo Virtual SDK Images for Eclipse Integration ===
Project main page: http://maemovmware.garage.maemo.org
* Virtual SDK Images can be dowloaded from here: http://tablets-dev.nokia.com/maemo-dev-env-downloads.php
** Ubuntu Gutsy Server based image is recommended for Windows host PC
** Ubuntu Hardy Server based image is recommended for other operating systems
** Both Ubuntu Server based images support VMWare Player and Qemu virtualization
* Instructions how to run images with VMWare Player or Qemu: http://maemovmware.garage.maemo.org/installation.html
* Instructions how to use images: http://maemovmware.garage.maemo.org/documentation.html
* Instructions how to configure Maemo Virtual SDK Images for Eclipse IDE on different operating systems: https://garage.maemo.org/plugins/wiki/index.php?ESboxOutsideLinuxWithVirtualMachine&amp;id=192&amp;type=g

----
'''Notice 1:''' All Eclipse components can be installed from ESbox or Pluthon garage projects, PC Connectivity from Diablo extras-devel repository and Virtual SDK Images from maemo development environment download page http://tablets-dev.nokia.com/maemo-dev-env-downloads.php

'''Notice 2:''' Eclipse 3.4.1 IDE for C/C++ Developers and all needed generic Eclipse plugins and ESbox and Pluthon plugins will be installed together with installation packages available from ESbox and Pluthon garage projects.  

'''Notice 3:''' For USB Networking to work between Internet Tablet running Diablo platform and host PC running Microsoft Windows, Internet Tablet kernel needs to be fixed. Kernel patch (together with new kernel image) for Diablo is available from maemo development environment download page http://tablets-dev.nokia.com/maemo-dev-env-downloads.php

== Operating System Support ==
 
Supported operating systems:
* Maemo Eclipse Integration supports fully same latest Linux Ubuntu distributions that Maemo SDK releases support
* Maemo Eclipse Integration has initial level support for Windows XP for PC Connectivity, ESbox and Pluthon plugins
** ESbox Windows support is implemented using native installation for Eclipse environment and Maemo Virtual SDK Image to run Scratchbox and Maemo SDK
** Pluthon has native Windows support because it does not require Scratchbox or Maemo SDK to be installed to the host PC
* See instructions how to setup and configure Windows host PC from here: https://garage.maemo.org/plugins/wiki/index.php?ESboxOutsideLinuxWithVirtualMachine&amp;id=192&amp;type=g
* '''Notice:''' USB Networking to work properly between Internet Tablet running Diablo platform and Windows host PC Internet Tablet kernel needs to be patched. Required patch and new Diablo kernel image are available from here http://tablets-dev.nokia.com/maemo-dev-env-downloads.php

== Main Product Specific Features ==

=== Eclipse IDE for C/C++ Developers ===

Both ESbox and Pluthon installation packages from garage include all needed Eclipse components for the release, including all used generic Eclipse plugins and Eclipse 3.4.1 IDE itself.

'''Notice:''' If only Maemo Pluthon plugin for Eclipse is used it does not require Maemo SDK installation on host PC. For Maemo ESbox plugin for Eclipse you need to install Maemo Diablo SDK for your Linux system. See instructions from here http://maemo.org/development/sdks/maemo_4-1-2_diablo/

=== Maemo PC Connectivity ===

Main features:
* Open ssh used as basic connectivity framework between Internet tablet and host PC
* sshfs and User Mode NFS support for mounts between host PC and Tablet
* sbrsh (Scratchbox Remote Shell) support to start applications on SDK to run on Internet Tablet
* X11VNC support with native clients and Eclipse plugin
* Easy installation using single click installation or apt-tool in Internet Tablet to install from maemo Diablo extras-devel repository
* Easy configuration and usage with Network Manager and Connection Switcher applets installed to Internet Tablet
* Support for all three USB networking, wlan and Bluetooth connectivity types (USB instructions here: http://pc-connectivity.garage.maemo.org/documentation_usbnet.html)
* All PC Connectivity functionality is independent from Eclipse IDE e.g. usable also without installing Eclipse IDE

=== Maemo ESBox plugin for Eclipse ===

Main features:
* Easy PC-Tablet connectivity with maemo PC Connectivity
* C, C++ and Python programming language support
* Templates for the most common type of maemo applications
* Build application with x86 target
* Launch and test application on x86 target
* Debug application on x86 target
* Search for memory leaks using Valgrind on x86 target
* Cross-compile application with ARMEL target 
* Debug application on the Internet Tablet using GDB or GDB Server
* Performance test on Internet Tablets using OProfile
* Maemo installation package creation wizard

[[Category:Development]]
[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Eclipse integration/ReleaseNotes beta1</title>
    <id>1912</id>
    <revision>
      <id>32607</id>
      <timestamp>2010-04-13T13:34:42Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify links</comment>
      <text xml:space="preserve">= Release Notes for Maemo Eclipse Integration Edition 2 Beta 1 release =

This Maemo Eclipse Integration Edition 2 Beta 1 release supports Maemo Diablo 4.1.2 development environment with N800, N810 and N810 Wimax Edition Internet Tablet devices and Maemo Fremantle 5.0 Beta development environment (with coming new devices).

Possible feedback can be sent to eclipse-integration@maemo.org.

== Release Information ==

* Project: Maemo Eclipse Integration Edition 2
* Version: Beta 1
* Baselines: Maemo Diablo 4.1.2 SDK and Maemo Fremantle 5.0 SDK Beta (as installable addon)
* Date: 2009-05-22

== General Information ==
 
Maemo Eclipse Integration includes the following parts:

* Eclipse 3.4.2 IDE (Ganymede SP2) for C/C++ Developers (official release from eclipse.org)
* Maemo PC Connectivity v0.X (Diablo extras-devel repository version) and Host PC Connectivity v0.6 for Linux, Windows and Mac OS X (PC Connectivity Garage project versions)
* Maemo ESbox plugin for Eclipse v2.0.0M4 (Esbox Garage project version)
* Maemo Pluthon plugin for Eclipse v2.0.0M4 (Pluthon Garage project version)
* Maemo Mica plugin framework for Eclipse v2.0.0M4 (Mica Garage project version)
* Maemo SDK Virtual Images v0.10 (to support other than Debian based Linuxes)
* Maemo C/C++ and Python programming language support (Diablo extras repository versions)
   
Detailed list of new features implemented to Maemo Eclipse Integration since previous Alpha 2 release together with feature plan for next Beta 2 release is here [[Eclipse_integration]].

[[Eclipse_integration/KnownIssues_beta1|Known issues for Beta 1 release]].

[[Eclipse_integration/ReleaseNotes_beta1|Release Notes file for beta 1]].

Basic product information and installation instructions for all Beta 2 components can be found from their http://garage.maemo.org projects.

== Operating Systems Supported ==

* full support for same Linux Ubuntu distributions that Maemo SDK releases support (Hardy and Intrepid fully tested)
* good support for Windows XP with SP3 and Vista with SP1, Cygwin used as Linux porting framework
* initial support for Mac OS X (Leopard)
* see instructions how to setup and configure different operating system support: http://pc-connectivity.garage.maemo.org/beta1/installation.html and http://esbox.garage.maemo.org/beta1/virtual_machines.html

== Eclipse IDE for C/C++ Developers ==

* product information: http://www.eclipse.org/
* Eclipse download if separate download wanted: http://www.eclipse.org/downloads/
* list of generic Eclipse components included: http://mica.garage.maemo.org/beta1/documentation.html
* 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 Beta 1 release)
** http://esbox.garage.maemo.org/beta1/installation_product.html
** http://pluthon.garage.maemo.org/beta1/installation_product.html
* for already installed Eclipse 3.4.2 IDE ESBox and Pluthon installation can be done using update site (not fully tested installation method for Beta 1 release)
** http://esbox.garage.maemo.org/beta1/installation_update_site.html 
** http://pluthon.garage.maemo.org/beta1/installation_update_site.html

== Maemo PC Connectivity ==

* product information: http://pc-connectivity.garage.maemo.org/beta1
* installation instructions for Internet Tablet and Linux, Windows and Mac OS X host PCs: http://pc-connectivity.garage.maemo.org/beta1/installation.html
* documentation and configuration instructions: http://pc-onnectivity.garage.maemo.org/beta1/documentation.html
* main features:
** support for Linux (Debian based), Windows (XP and Vista) and Mac OS X (Leopard)
** full connectivity support with USB, BlueTooth and WLAN for Linux, Windows and Mac OS X 
** full ssh, sftp, vnc and disk mount support for Linux, Windows and Mac OS X host PCs
** support for both Diablo and Fremantle SDK 
** full support for VNC clients (native and Eclipse VNC plugin support) 
** full support for Internet Tablet configuration with control panel applet and status bar plugin 
** native SBRSH (Scratchbox Remote Shell) support for Linux, Win32 and Mac OS X to launch applications from SDK to run on Internet Tablet
** SBRSH supports session based sandbox option
** SFTP support to access Internet Tablet file system with native host PC GUI clients 
** support for installing Host PC Connectivity components for Linux, Win32 and Mac OS X host PCs 
** sbrsh (Scratchbox Remote Shell) support to start applications on SDK to run on Internet Tablet
** easy installation using apt-tool in Internet Tablet to install from Maemo Diablo extras-devel repository
** Tablet configuration applet allows easy configuration of sbrsh, vnc, unfs3, etc. 
** Tablet configuration applet supports several configuration environments that store configuration infrormation for many services and connection types 
** status bar plugin can be used to easily switch between predefined environments 
** PC Connectivity functionality is independent from Eclipse IDE e.g. usable also without installing Eclipse IDE

== Maemo ESBox plugin for Eclipse ==

* product information: http://esbox.garage.maemo.org/beta1
* installation and configuration instructions for Internet Tablet and Linux, Windows and Mac OS X host PCs: http://esbox.garage.maemo.org/beta1/installation.html
* main features:
** easy PC-Tablet connectivity with Maemo PC Connectivity
** C, C++ and Python programming language support
** templates for the most common type of Maemo applications
** full support for Linux and good support for Win32 host PCs
** initial support for Mac OS X host PC (works and documented but not fully tested) 
** full connectivity support for Internet Tablet with SSH, RSE and SBRSH from Linux, Windows and Mac OS X 
** support for both Diablo and Fremantle SDK 
** import Eclipse projects from Maemo SDK and Debian packages 
** C/C++ debug/optimized configuration support 
** support for P2 update site for ESbox 
** installation wizard for Scratchbox, Diablo SDK and Fremantle SDK 
** installation wizard for Maemo SDK development environments (like for Python and C++)
** build application with x86 target
** launch and test application on x86 target
** debug application on x86 target
** search for memory leaks using Valgrind on x86 target
** cross-compile application with ARMEL target 
** debug application on the Internet Tablet using GDB or GDB Server
** performance test on Internet Tablets using OProfile
** Maemo installation package creation wizard
** Maemo flsher tool wizard

== Maemo Pluthon plugin for Eclipse ==

* product information: http://pluthon.garage.maemo.org/beta1
* installation and configuration instructions for Internet Tablet and Linux, Windows and Mac OS X host PCs: http://pluthon.garage.maemo.org/beta1/installation.html
* main features:
** easy PC-Tablet connectivity with Maemo PC Connectivity
** Python programming language support
** templates for the most common type of Maemo applications
** develop application directly on the Internet Tablet
** debug application on the Internet Tablet using pyDev
** full support for Linux and Win32 host PCs
** initial support for Mac OS X host PC 
** full connectivity support for Internet Tablet with SSH, RSE and SBRSH from Linux, Windows and Mac OS X 
** support for P2 update site for Pluthon 
** installation wizard to setup Python development environment for host PC and Internet Tablet 
** Maemo installation package creation wizard

== Maemo Mica plugin framework for Eclipse ==

* product information: http://mica.garage.maemo.org/beta1/
* documentation for developers who want to develop their own Maemo plugins using Mica: http://mica.garage.maemo.org/beta1/documentation.html
* '''NOTICE''' Mica is still under extensive development and stability of current interfaces cannot be quaranteed (actually many interfaces are quaranteed to be changed for Beta 2 release)
* main features:
** general framework for Maemo Eclipse plugin development
** uses latest stable Eclipse components (compatible with Eclipse Ganymede SR2)
** Scratchbox 1 installer wizard and SDK installer wizard 
** support for both Diablo and Fremantle SDK 
** supports SSH, RSE and SBRSH for Linux, Windows and Mac OS X 
** flasher wizard for flashing Internet Tablet from Eclipse IDE 
** support for P2 update site for Mica 
** Mica Garage site documentation and services released for 2nd Edition

== Maemo SDK Virtual Image ==

* product information: http://maemovmware.garage.maemo.org/beta1
* installation and configuration instructions: http://maemovmware.garage.maemo.org/beta1/installation.html
* images can be downloaded from here: http://tablets-dev.nokia.com/maemo-dev-env-downloads.php
* main features:
** Ubuntu Intrepid Server based Maemo SDK Virtual Image for Linux, Windows and Mac OS X 
*** full support for VMWare and QEMU virtualization technologies 
*** do-it-yourself support for VirtualBox 
*** 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 
** Ubuntu Intrepid Desktop based Maemo SDK Virtual Image for Linux, Windows and Mac OS X 
*** out-of-the-box ready Ubuntu Intrepid Desktop based image
*** desktop image includes fully configured Maemo Diablo Development Environment for Eclipse and Fremantle Development Environment can be installed with Eclipse installation wizard automatically 
*** desktop image includes installers for GuestAdditions (for VirtualBox) and OpenVMTools (for VMWare) 
** installer/tool to configure Maemo SDK Virtual Images for VirtualBox usage 
** instructions how to use SDK Virtual Images with Eclipse IDE on different operating systems: http://esbox.garage.maemo.org/beta1/virtual_machines.html

== Maemo C++ and Python programming language support ==

* product information: http://maemo.org/development/documentation/programming_languages/
* C++ documentation: http://maemomm.garage.maemo.org/docs/
* Python documentation: http://pymaemo.garage.maemo.org/

* 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/.

* 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 Internet Tablet. 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.

== Known Issues ==

* [[Eclipse_integration/KnownIssues_beta1|Known issues for Beta 1 release]] (feel free to update this wiki page)
* 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 
* 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/beta1/installation.html) for VNC client to work on host PC 
* PyMaemo installation meta packges in Diablo extras repository (maemo-python-env and maemo-python-device-env) do not install python2.5-distutils as default dependency and thus installation package creation with setup.py may not work (this has been agreed to be fixed by PyMaemo project) 
* Ubuntu Desktop based Maemo SDK Virtual Image (out-of-the-box ready development environment) will be released couple of days AFTER Eclipse Integration Edition 2 Beta 1 release as it needs to include this Beta 1 release products :) 
* to search memory leaks Valgrind needs to be installed manually to the x86 target http://maemo.org/development/tools/).
* to make performance profiling OProfile needs to be installed manually to the device (http://maemo.org/development/tools/).

== Installation Notices ==

'''Notice 1''': If only Maemo Pluthon plugin for Eclipse is used for Python on device development it does not reguire Maemo SDK installation on host PC.

'''Notice 2''': All configurations require Maemo PC Connectivity to be installed and configured to work to the Internet Tablet and Host PC Connectivity to the host PC BEFORE installation of Eclipse components can be started. 

'''Notice 3''': All Eclipse components can be installed from ESbox or Pluthon garage projects, PC Connectivity from Diablo extras-devel repository and SDK Virtual Images from maemo development environment download page http://tablets-dev.nokia.com/maemo-dev-env-downloads.php

'''Notice 4''': 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.  

----
Feedback can be sent to eclipse-integration@maemo.org

[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Eclipse integration/ReleaseNotes beta2</title>
    <id>2097</id>
    <revision>
      <id>32613</id>
      <timestamp>2010-04-13T13:45:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify links</comment>
      <text xml:space="preserve">= Release Notes for Maemo Eclipse Integration Edition 2 Beta 2 release =

This Maemo Eclipse Integration Edition 2 Beta 2 release supports Maemo Diablo 4.1.2 development environment with N800, N810 and N810 Wimax Edition devices and Maemo Fremantle 5.0 SDK Beta development environment (with coming new devices).

Possible feedback can be sent to eclipse-integration@maemo.org.

== Release Information ==

* Project: Maemo Eclipse Integration Edition 2
* Version: Beta 2
* Baselines: Maemo Diablo 4.1.2 SDK and Maemo Fremantle 5.0 SDK Beta (as installable addon)
* Date: 2009-07-03

== General Information ==

Eclipse Integration components now support the latest Debian based Linuxes, Windows XP SP3, Windows Vista SP1 and Mac OS X 10.5 Leopard all with x86/32bit architectures. 

Support for other than above listed operating systems has not been tested but should be possible if it supports Eclipse IDE, if similar functionality to Host PC Connectivity is available for that operating system (for example most Linuxes should have that) and if chosen operating system is able to run Maemo SDK Virtual Image (in practice supports either QEmu, VMWare or VirtualBox).

Maemo Eclipse Integration includes the following parts:

* Eclipse 3.4.2 IDE (Ganymede SP2) for C/C++ Developers (official release from eclipse.org)
* Maemo PC Connectivity (Diablo extras-devel and Fremantle extras-devel repository versions) 
* Host PC Connectivity for Linux, Windows XP/Vista and Mac OS X (PC Connectivity Garage project versions)
* Maemo ESbox plugin for Eclipse v2.0.0M5 (Esbox Garage project version)
* Maemo Pluthon plugin for Eclipse v2.0.0M5 (Pluthon Garage project version)
* Maemo Mica plugin framework for Eclipse v2.0.0M5 (Mica Garage project version)
* Maemo SDK Virtual Images v0.10 (to support other than Debian based Linuxes)
* Maemo C/C++ and Python programming language support (Diablo extras and Fremantle extras-devel repository versions)
* Maemo Flasher-3.5 Tool Beta versions
   
Detailed list of new features implemented to Maemo Eclipse Integration since previous Beta 1 release together with feature plan for next Beta 3 and 4 releases is [[Eclipse_integration|here]].

[[Eclipse_integration/KnownIssues_beta2|Known issues for Beta 2 release]]

Basic product information and installation instructions for all Beta 2 components can be found from their http://garage.maemo.org projects.

== Operating Systems Supported ==

* full support for same x86 32-bit Linux Ubuntu distributions that Maemo SDK releases support (Ubuntu Intrepid fully tested)
* good support for x86 32-bit Windows XP with SP3 and Vista with SP1, Cygwin used as Linux porting framework
* good support for x86 32-bit Mac OS X 10.0.5 Leopard, MacPorts used as Linux porting framework
* 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

== Eclipse IDE for C/C++ Developers ==

* product information: http://www.eclipse.org/
* Eclipse download if separate download wanted: http://www.eclipse.org/downloads/
* list of generic Eclipse components included: http://mica.garage.maemo.org/2nd_edition/documentation.html
* 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)
** http://esbox.garage.maemo.org/2nd_edition/installation_product.html
** http://pluthon.garage.maemo.org/2nd_edition/installation_product.html
* For already installed Eclipse 3.4.2 IDE ESBox and Pluthon environments can be upgraded using Eclipse Update Site (not fully tested or supported installation method for Beta 2 release)
** http://esbox.garage.maemo.org/2nd_edition/installation_update_site.html 
** http://pluthon.garage.maemo.org/2nd_edition/installation_update_site.html

== Maemo PC Connectivity ==

* product information: http://pc-connectivity.garage.maemo.org/2nd_edition
* installation instructions for Maemo device and Linux, Windows and Mac OS X host PCs: http://pc-connectivity.garage.maemo.org/2nd_edition/installation.html
* documentation and configuration instructions: http://pc-connectivity.garage.maemo.org/2nd_edition/documentation.html
* main features:
** support for Linux (Debian based), Windows (XP and Vista) and Mac OS X (Leopard)
** full connectivity support with USB, BlueTooth and WLAN for Linux, Windows and Mac OS X 
** full ssh, sftp, vnc and disk mount support for Linux, Windows and Mac OS X host PCs
** support for both Diablo and Fremantle SDK 
** full support for VNC clients (native and Eclipse VNC plugin support) 
** full support for Maemo device configuration with control panel applet and status bar plugin 
** native SBRSH (Scratchbox Remote Shell) support for Linux, Win and Mac OS X to launch applications from SDK to run on Maemo device
** SFTP support to access Maermo device file system with native host PC GUI clients 
** support for installing Host PC Connectivity components for Linux, Win and Mac OS X host PCs 
** easy installation using apt-tool in Maemo device to install from Maemo Diablo or Fremantle extras-devel repository
** Maemo device configuration applet allows easy configuration of sbrsh, vnc, unfs3, etc. 
** Maemo device configuration applet supports several configuration environments that store configuration infrormation for many services and connection types 
** status bar plugin can be used to easily switch between predefined environments 
** PC Connectivity functionality is independent from Eclipse IDE e.g. usable also without installing Eclipse IDE
** initial support for tools automating configuration of PC Connectivity on host PC
** PC Connectivity environment settings can be backed up with osso-backup application (for example before reflashing Maemo device)

== Maemo ESBox plugin for Eclipse ==

* product information: http://esbox.garage.maemo.org/2nd_edition
* 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
* main features:
** easy PC-Device connectivity with Maemo PC Connectivity
** C, C++ and Python programming language support
** templates for the most common type of Maemo applications
** full support for Linux and good support for Windows and Mac OS X host PCs
** full connectivity support for Maemo device with SSH, RSE and SBRSH from Linux, Windows and Mac OS X 
** support for both Diablo and Fremantle SDKs 
** import Eclipse projects from Maemo SDK and Debian packages 
** C/C++ debug/optimized configuration support 
** support for P2 update site for ESbox 
** installation wizard for Scratchbox, Diablo SDK and Fremantle SDK 
** installation wizard for Maemo SDK development environments (like Python, C/C++, Flasher-3.5, OProfile, ...)
** build application with x86 target
** launch and test application on x86 target
** debug application on x86 target
** search for memory leaks using Valgrind on x86 target
** cross-compile application with ARMEL target 
** debug application on the Maemo device using GDB or GDB Server
** performance test on Maemo device using OProfile
** Maemo installation package creation wizard
** Maemo Flasher-3.5 tool wizard

== Maemo Pluthon plugin for Eclipse ==

* product information: http://pluthon.garage.maemo.org/2nd_edition
* 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
* main features:
** easy PC-Device connectivity with Maemo PC Connectivity
** Python programming language support
** templates for the most common type of Maemo applications
** develop application directly on the Maemo device
** debug application on the Maemo device using pyDev
** full support for Linux, Windows and Mac OS X host PCs
** full connectivity support for Maemo device with SSH, RSE and SBRSH from Linux, Windows and Mac OS X 
** support for P2 update site for Pluthon 
** installation wizard to setup Python development environment for host PC and Maemo device
** Maemo installation package creation wizard
** Maemo Flasher-3.5 tool wizard
** Updated Fremantle Python tutorial and manual http://pymaemo.garage.maemo.org/documentation_fremantle.html 

== Maemo Mica plugin framework for Eclipse ==

* product information: http://mica.garage.maemo.org/2nd_edition
* documentation for developers who want to develop their own Maemo plugins using Mica: http://mica.garage.maemo.org/2nd_edition/documentation.html
* main features:
** general framework for Maemo Eclipse plugin development
** uses latest stable Eclipse components (compatible with Eclipse Ganymede SR2)
** Scratchbox 1 installer wizard and SDK installer wizard 
** support for both Diablo and Fremantle SDK 
** supports SSH, RSE and SBRSH for Linux, Windows and Mac OS X 
** Flasher-3.5 wizard for flashing Maemo device from Eclipse IDE 
** support for P2 update site
** Mica Garage site releases, documentation and services usable for plugin developers

== Maemo SDK Virtual Image ==

* product information: http://maemovmware.garage.maemo.org/2nd_edition
* installation and configuration instructions: http://maemovmware.garage.maemo.org/2nd_edition/installation.html
* images can be downloaded from here: http://tablets-dev.nokia.com/maemo-dev-env-downloads.php
* 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
* main features:
** Ubuntu Intrepid Server based Maemo SDK Virtual Image for Linux, Windows and Mac OS X 
*** full support for VMWare and QEMU virtualization technologies 
*** do-it-yourself support for VirtualBox 
*** 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 
*** 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
** Ubuntu Intrepid Desktop based Maemo SDK Virtual Image for Linux, Windows and Mac OS X 
*** out-of-the-box ready Ubuntu Intrepid Desktop based image
*** desktop image includes fully configured Maemo Diablo Development Environment for Eclipse and Fremantle Development Environment can be installed with Eclipse installation wizard automatically 
*** 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
*** desktop image includes installers for GuestAdditions (for VirtualBox) and OpenVMTools (for VMWare) 
** installer/tool to configure Maemo SDK Virtual Images for VirtualBox usage 
** instructions how to use SDK Virtual Images with Eclipse IDE on different operating systems: http://esbox.garage.maemo.org/2nd_edition/virtual_machines.html

== Maemo C++ and Python programming language support ==

* product information: http://maemo.org/development/documentation/programming_languages/
* C++ documentation: http://maemomm.garage.maemo.org/docs/
* Python documentation: http://pymaemo.garage.maemo.org/

* 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/.

* 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.

== Known Issues ==

* latest version of [[Eclipse_integration/KnownIssues_beta2|known issues for Beta 2 release]] (feel free to update this wiki page)
* 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 
* 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 
* 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
* Updating process from Eclipse Update Site (update from beta 1 to beta 2) may not work for some plug-ins

== Installation Notices ==

'''Notice 1''': If only Maemo Pluthon plugin for Eclipse is used for Python on device development it does not reguire Maemo SDK installation on host PC.

'''Notice 2''': 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. 

'''Notice 3''': 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

'''Notice 4''': 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.  

----
Feedback can be sent to eclipse-integration@maemo.org

[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Eclipse integration/ReleaseNotes final</title>
    <id>3191</id>
    <revision>
      <id>34261</id>
      <timestamp>2010-05-12T08:24:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">= Release Notes for Maemo Eclipse Integration Edition 2 Final release (R2.0.0)=

This Maemo Eclipse Integration Edition 2 Final release supports Maemo [[Open development/Maemo roadmap/Diablo|Diablo]] 4.1.2 development environment with [[Nokia N800|N800]], [[Nokia N810|N810]] and N810 Wimax Edition devices and Maemo [[Open development/Maemo roadmap/Fremantle|Fremantle]] 5.0 development environment with [[Nokia N900|N900]] device.

Possible feedback can be sent to eclipse-integration@maemo.org.

== Release Information ==

* Project: Maemo Eclipse Integration Edition 2
* Version: Final R2.0.0
* Baselines: Maemo Diablo 4.1.2 SDK and Maemo Fremantle 5.0 SDK 
* Date: 2009-12-23

== General Information ==

Eclipse Integration components now support the latest Debian based Linuxes, Windows XP SP3, Windows Vista SP2, Windows 7, Mac OS X 10.5 Leopard and Mac OS X 10.6 Snow Leopard all with x86/32bit architectures. 

Support for Windows Vista and Windows 7 operating systems is only on beta level because Cygwin 1.7 required for those operating systems is still on beta level. Especially there are problems with Cygwin 1.7 X11 that may crash when Maemo applications are run with it. 

Known problems in Windows 7 and Vista support are listed in Known Issues page here: [[Eclipse integration/KnownIssues final]]

Support for other than 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 (like most Linuxes have) and if operating system is able to run Maemo SDK Virtual Image (in practice supports either QEMU, VMWare or VirtualBox).

Maemo Eclipse Integration includes the following products:

* ''Eclipse 3.4.2 IDE'' (Ganymede SP2) for C/C++ Developers (official release from eclipse.org)
* ''Maemo PC Connectivity'' (Diablo extras and Fremantle extras-devel repository versions) 
* ''Host PC Connectivity'' for Linux, Windows XP/Vista/Windows7 and Mac OS X (PC Connectivity Garage project versions)
* ''Maemo ESbox for Eclipse'' R2.0.0 (Esbox Garage project version)
* ''Maemo Pluthon for Eclipse'' R2.0.0 (Pluthon Garage project version)
* ''Maemo Mica plugin framework for Eclipse'' R2.0.0 (Mica Garage project version)
* ''Maemo SDK Virtual Images'' v1.0 (to support other than Debian based Linuxes)
* ''Maemo C/C++'' and ''Maemo Python'' programming language support (Diablo [[extras]] and Fremantle [[extras-devel]] repository versions)
* ''Maemo Qt4'' support (Diablo extras and Fremantle SDK repository versions)
* ''Maemo Flasher-3.5 Tools'' for all supported operating systems
   
Detailed list of new features implemented to Maemo Eclipse Integration since previous PreFinal release together with feature plan for final release is here [[Eclipse integration]].

Known issues for this Final release are here [[Eclipse integration/KnownIssues final]].

Basic product information and installation instructions for all Final products can be found from their http://garage.maemo.org projects.

== Operating Systems Supported ==

* '''full native support''' for same x86 32-bit Linux Ubuntu distributions that Maemo SDK releases support (Ubuntu Intrepid fully tested)
* '''good support''' for x86 32-bit Windows XP with SP3 with Cygwin 1.5-25 used as Linux porting framework
* '''good support''' for x86 32-bit Mac OS X 10.5 Leopard and 10.6 Snow Leopard with MacPorts 1.8.1 used as Linux porting framework (usage of MacPorts in Mameo environment is not mandatory for Mac OS X)
* '''beta support''' for x86 32-bit Windows 7 (and Windows Vista with SP2) with Cygwin 1.7 beta used as Linux porting framework

== Eclipse IDE for C/C++ Developers ==

* product information: http://www.eclipse.org/
* Eclipse download if separate download wanted: http://www.eclipse.org/downloads/
* list of generic Eclipse components included: http://mica.garage.maemo.org/2nd_edition/documentation.html
* ESbox and Pluthon installation packages available from Garage include all needed Eclipse components for the release, including Eclipse 3.4.2 IDE itself 
** http://esbox.garage.maemo.org/2nd_edition/installation_product.html
** http://pluthon.garage.maemo.org/2nd_edition/installation_product.html
* For already installed Eclipse 3.4.2 and Maemo Eclipse Integration 2nd Edition PreFinal installations ESbox and PluThon environments can be upgraded using Maemo Eclipse Update Site http://maemoide.nokia.com/updates/2.0/

== Maemo PC Connectivity ==

* product information: http://pc-connectivity.garage.maemo.org/
* installation instructions for Maemo device and Linux, Windows and Mac OS X host PCs: http://pc-connectivity.garage.maemo.org/2nd_edition/

* main features:
** easy host PC and Maemo device connectivity and integration environment
** support for N800, N810 and N900 Maemo devices
** support for both Diablo and Fremantle SDK environments 
** support for Linux (Debian and Fedora based), Windows (XP, Vista and Windows 7) and Mac OS X (Leopard and Snow Leopard)
** connectivity support with USB, BlueTooth and WLAN for Linux, Windows and Mac OS X 
** SSH, SFTP, VNC and RSYNC support for Linux, Windows and Mac OS X host PCs
** SSHFS disk mount support with all operating systems 
** NFS disk mount support with Linux and Mac OS X 
** Samba disk mount support is available only with N8x0 Maemo devices (e.g. N900 device does not support Samba)
** IP Forwarding support between Maemo device and host PC 
** ZeroConf support with Avahi to automatically configure connectivity between host PC and Maemo device
** Maemo device widgets to help configuring Maemo device
** support for easy storing, restoring and switching connectivity environments/configurations
** support for native VNC and Eclipse VNC plugin clients (TightVNC included to the  Host PC Connectivity as default application)
** native SBRSH (Scratchbox Remote Shell) support for Linux, Windows and Mac OS X to launch applications on host PC and run them on Maemo device
** SFTP support to access Maemo device file system with host PC GUI clients (FileZilla included to the  Host PC Connectivity as default application)
** support for installing Host PC Connectivity components for Linux, Windows and Mac OS X host PCs 
** easy installation using either single click installation or apt-tool in Maemo device to install from Maemo Diablo or Fremantle extras-devel repository
** Maemo PC Connectivity functionality is independent from Eclipse IDE e.g. usable also without installing Eclipse IDE
** Maemo PC Connectivity environment settings can be backed up with Maemo device backup application (for example before reflashing Maemo device)
** Maemo PC Connectivity configuration widgets supports both developer mode and end-user mode (end-user mode being simplified and restricted configuration from developer mode)

== Maemo ESbox for Eclipse ==

* product information: http://esbox.garage.maemo.org/
* 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

* main features:
** full featured development environment with Maemo SDKs and Maemo devices
** easy PC-Device connectivity with Maemo PC Connectivity
** support for both Diablo and Fremantle SDK environments 
** support for N800, N810 and N900 Maemo devices
** C, C++, Python and Qt support
** templates for the most common type of Maemo applications
** full support for Linux and good support for Windows and Mac OS X host PCs
** full connectivity support for Maemo device with SSH, RSE, VNC and SBRSH from Linux, Windows and Mac OS X 
** SBRSH (Scratchbox Remote Shell) support for Linux, Windows and Mac OS X to launch applications on SDK and run them on Maemo device
** import Eclipse projects from Maemo SDK and Debian packages 
** C/C++ debug and optimized configuration support 
** support for Eclipse P2 update site
** installation wizards to help installation of Scratchbox, Diablo and Fremantle SDKs and SDK Virtual Images 
** installation wizards for Maemo SDK development environments (like Qt, C/C++, Python, Flasher-3.5, OProfile, ...)
** build application with x86 target
** launch and test application on x86 target
** debug application on x86 target
** search for memory leaks using Valgrind on x86 target
** cross-compile application with ARMEL target 
** debug application on the Maemo device using GDB or GDB Server
** profile on Maemo device using OProfile
** Maemo installation package creation wizard
** Maemo Flasher-3.5 tool wizard

== Maemo PluThon for Eclipse ==

* product information: http://pluthon.garage.maemo.org/
* 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

* main features:
** full featured on-device Python development environment with Maemo devices
** easy PC-Device connectivity with Maemo PC Connectivity
** support for N800, N810 and N900 Maemo devices
** Python programming language support
** templates for the most common type of Maemo applications
** develop application directly on the Maemo device
** debug application on the Maemo device using pyDev
** full support for Linux, Windows and Mac OS X host PCs
** full connectivity support for Maemo device with SSH, RSE, VNC and SBRSH from Linux, Windows and Mac OS X 
** SBRSH (Scratchbox Remote Shell) support for Linux, Windows and Mac OS X to launch applications on SDK and run them on Maemo device
** support for Eclipse P2 update site
** installation wizard to setup Python development environment for host PC and Maemo device
** Maemo installation package creation wizard
** Maemo Flasher-3.5 tool wizard 

== Maemo Mica plugin framework for Eclipse ==

* product information: http://mica.garage.maemo.org/
* documentation for developers who want to develop their own Maemo plugins using Mica: http://mica.garage.maemo.org/2nd_edition/documentation.html

* main features:
** full featured framework to develop Maemo Eclipse plugins
** easy PC-Device connectivity with Maemo PC Connectivity
** support for both Diablo and Fremantle SDK environments 
** support for N800, N810 and N900 Maemo devices
** SDK Virtual Image, Scratchbox 1 and Maemo SDK installation wizards 
** supports SSH, RSE, VNC and SBRSH with Linux, Windows and Mac OS X 
** Flasher-3.5 wizard for flashing Maemo device from Eclipse IDE 
** support for Eclipse P2 update site

== Maemo SDK Virtual Image ==

* product information: http://maemovmware.garage.maemo.org/
* installation and configuration instructions: http://maemovmware.garage.maemo.org/2nd_edition/installation.html
* images can be downloaded from official Maemo Development Environment Downloads page: http://tablets-dev.nokia.com/maemo-dev-env-downloads.php
* main features:
** Ubuntu Intrepid Server based Maemo SDK Virtual Image 
*** full support for VMWare, VirtualBox and QEMU virtualization technologies 
*** server image includes basic Ubuntu Intrepid Server and Host PC Connectivity environment preconfigured for which Maemo Diablo and Fremantle Development Environments can be installed with Eclipse installation wizards automatically 
*** server image includes installers for GuestAdditions (for VirtualBox) and OpenVMTools/OfficialVMTools (for VMWare)
** Ubuntu Intrepid Desktop based Maemo SDK Virtual Image 
*** out-of-the-box ready Ubuntu Intrepid Desktop based image
*** fully configured Maemo Diablo and Fremantle Development Environments 
*** fully configures Maemo Eclipse Development Environment 
*** desktop image includes installers for GuestAdditions (for VirtualBox) and OpenVMTools/OfficialVMTools (for VMWare) 
* instructions how to use Maemo SDK Virtual Images with Eclipse IDE on different operating systems: http://esbox.garage.maemo.org/2nd_edition/virtual_machines.html

== Maemo Qt4, C/C++ and Python programming environment support ==

* product information: http://maemo.org/development/documentation/programming_languages/
* Qt documentation: http://Qt4.garage.maemo.org/
* C++ documentation: http://maemomm.garage.maemo.org/docs/
* Python documentation: http://pymaemo.garage.maemo.org/

* By default, the Maemo development environment supports only C programming with GTK but you may add support for other programming languages and UI frameworks. 

* The Maemo development environment defines helpful meta packages that install all the components and tools for Qt, C++ and Python development for the Maemo SDK and Maemo device. Maemo Eclipse Integration will install these meta packages automatically into your environment when you create your first Qt, C++ or Python project (if you have not done installation already yourself).

== Known Issues ==

* latest version for Final known issues is here [[Eclipse integration/KnownIssues final]] (feel free to update this wiki page)
* 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 
* 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 
* Ubuntu Desktop based Maemo SDK Virtual Image (out-of-the-box ready development environment) will be published little AFTER this Final release (Desktop image needs to include these other Final products)
* Updating process from Eclipse Update Site will work only from PreFinal to Final. Automatic update from earlier Beta releases may not work for some plug-ins

== Installation Notices ==

'''Notice 1''': If only Maemo Pluthon plugin for Eclipse is used for Python on device development which means it does not require Maemo SDK or Maemo SDK Virtual Image installation on host PC.

'''Notice 2''': All configurations require Maemo PC Connectivity to be installed and configured to the Maemo device and Host PC Connectivity to the host PC BEFORE installation of Eclipse components. 

'''Notice 3''': All Eclipse components can be installed from ESbox or PluThon garage projects, Maemo PC Connectivity from Diablo extras or Fremantle extras-devel repository and Maemo SDK Virtual Images and Flasher-3.5 Tool from Maemo Development Environment Downloads page http://tablets-dev.nokia.com/maemo-dev-env-downloads.php

'''Notice 4''': Eclipse 3.4.2 IDE for C/C++ Developers and all needed generic Eclipse plugins for ESbox and PluThon environments can be installed from installation packages available from ESbox and PluThon garage projects.  

----
Feedback can be sent to eclipse-integration@maemo.org

[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Eclipse integration/ReleaseNotes prefinal</title>
    <id>2404</id>
    <revision>
      <id>34262</id>
      <timestamp>2010-05-12T08:33:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">= Release Notes for Maemo Eclipse Integration Edition 2 PreFinal release =

This Maemo Eclipse Integration Edition 2 PreFinal release supports Maemo [[Open development/Maemo roadmap/Diablo|Diablo]] 4.1.2 development environment with [[Nokia N800|N800]], [[Nokia N810|N810]] and N810 Wimax Edition devices and Maemo [[Open development/Maemo roadmap/Fremantle|Fremantle]] 5.0 Beta 2 development environment with [[Nokia N900|N900]] device.

Possible feedback can be sent to eclipse-integration@maemo.org.

== Release Information ==

* Project: Maemo Eclipse Integration Edition 2
* Version: PreFinal
* Baselines: Maemo Diablo 4.1.2 SDK and Maemo Fremantle 5.0 SDK Beta 2
* Date: 2009-09-11

== General Information ==

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. 

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).

Maemo Eclipse Integration includes the following parts:

* Eclipse 3.4.2 IDE (Ganymede SP2) for C/C++ Developers (official release from eclipse.org)
* Maemo PC Connectivity (Diablo [[extras-devel]] and Fremantle extras-devel repository versions) 
* Host PC Connectivity for Linux, Windows XP/Vista and Mac OS X (PC Connectivity Garage project versions)
* Maemo ESbox plugin for Eclipse v2.0.0M6 (Esbox Garage project version)
* Maemo Pluthon plugin for Eclipse v2.0.0M6 (Pluthon Garage project version)
* Maemo Mica plugin framework for Eclipse v2.0.0M6 (Mica Garage project version)
* Maemo SDK Virtual Images v0.11 (to support other than Debian based Linuxes)
* Maemo C/C++ and Python programming language support (Diablo extras-devel and Fremantle extras-devel repository versions)
* Maemo Flasher-3.5 Tool Beta versions
   
Detailed list of new features implemented to Maemo Eclipse Integration since previous Beta 2 release together with feature plan for final release is here [[Eclipse integration]].

Known issues for this PreFinal release are here [[Eclipse integration/KnownIssues prefinal]].

Basic product information and installation instructions for all PreFinal components can be found from their http://garage.maemo.org projects.

== Operating Systems Supported ==

* full support for same x86 32-bit Linux Ubuntu distributions that Maemo SDK releases support (Ubuntu Intrepid fully tested)
* good support for x86 32-bit Windows XP with SP3 and Vista with SP2, Cygwin used as Linux porting framework
* good support for x86 32-bit Mac OS X 10.5 Leopard, MacPorts used as Linux porting framework
* 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

== Eclipse IDE for C/C++ Developers ==

* product information: http://www.eclipse.org/
* Eclipse download if separate download wanted: http://www.eclipse.org/downloads/
* list of generic Eclipse components included: http://mica.garage.maemo.org/2nd_edition/documentation.html
* 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)
** http://esbox.garage.maemo.org/2nd_edition/installation_product.html
** http://pluthon.garage.maemo.org/2nd_edition/installation_product.html
* 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)
** http://esbox.garage.maemo.org/2nd_edition/installation_update_site.html 
** http://pluthon.garage.maemo.org/2nd_edition/installation_update_site.html

== Maemo PC Connectivity ==

* product information: http://pc-connectivity.garage.maemo.org/2nd_edition
* installation instructions for Maemo device and Linux, Windows and Mac OS X host PCs: http://pc-connectivity.garage.maemo.org/2nd_edition/installation.html
* documentation and configuration instructions: http://pc-connectivity.garage.maemo.org/2nd_edition/documentation.html
* main features:
** support for both Diablo and Fremantle SDK environments 
** support for N800, N810 and N900 Maemo devices
** support for Linux (Debian and Fedora based), Windows (XP and Vista) and Mac OS X (Leopard)
** connectivity support with USB, BlueTooth and WLAN for Linux, Windows and Mac OS X 
** SSH, SFTP, VNC and RSYNC support for Linux, Windows and Mac OS X host PCs
** NFS and SSHFS mount support (with Linux and Mac OS X) and Samba disk mount support (with Windows) between Maemo device and host PC
** IP Forwarding support between Maemo device and host PC 
** ZeroConf support with Avahi to automatically configure connectivity between host PC and Maemo device
** support for configuring Maemo device with control panel applet and status bar plugin 
** support for easy storing, restoring and switching connectivity environments/configurations
** support for native VNC and Eclipse VNC plugin clients (TightVNC included to the  Host PC Connectivity as default application)
** native SBRSH (Scratchbox Remote Shell) support for Linux, Win and Mac OS X to launch applications from SDK to run on Maemo device
** SFTP support to access Maemo device file system with host PC GUI clients (FileZilla included to the  Host PC Connectivity as default application)
** support for installing Host PC Connectivity components for Linux, Windows and Mac OS X host PCs 
** easy installation using either single click installation or apt-tool in Maemo device to install from Maemo Diablo or Fremantle extras-devel repository
** specific applet can be used to easily switch between predefined connectivity environments/configuration 
** Maemo PC Connectivity functionality is independent from Eclipse IDE e.g. usable also without installing Eclipse IDE
** Maemo PC Connectivity environment settings can be backed up with osso-backup application (for example before reflashing Maemo device)
** Maemo PC Connectivity supports both developer mode and end-user mode (end-user mode being simplified and restricted configuration from developer mode)

== Maemo ESBox plugin for Eclipse ==

* product information: http://esbox.garage.maemo.org/2nd_edition
* 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
* main features:
** easy PC-Device connectivity with Maemo PC Connectivity
** support for both Diablo and Fremantle SDK environments 
** support for N800, N810 and N900 Maemo devices
** C, C++ and Python programming language support
** templates for the most common type of Maemo applications
** full support for Linux and good support for Windows and Mac OS X host PCs
** full connectivity support for Maemo device with SSH, RSE, VNC and SBRSH from Linux, Windows and Mac OS X 
** import Eclipse projects from Maemo SDK and Debian packages 
** C/C++ debug/optimized configuration support 
** support for P2 update site
** installation wizards for Scratchbox, Diablo and Fremantle SDKs and SDK Virtual Images 
** installation wizards for Maemo SDK development environments (like Python, C/C++, Flasher-3.5, OProfile, ...)
** build application with x86 target
** launch and test application on x86 target
** debug application on x86 target
** search for memory leaks using Valgrind on x86 target
** cross-compile application with ARMEL target 
** debug application on the Maemo device using GDB or GDB Server
** performance test on Maemo device using OProfile
** Maemo installation package creation wizard
** Maemo Flasher-3.5 tool wizard

== Maemo Pluthon plugin for Eclipse ==

* product information: http://pluthon.garage.maemo.org/2nd_edition
* 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
* main features:
** easy PC-Device connectivity with Maemo PC Connectivity
** support for N800, N810 and N900 Maemo devices
** Python programming language support
** templates for the most common type of Maemo applications
** develop application directly on the Maemo device
** debug application on the Maemo device using pyDev
** full support for Linux, Windows and Mac OS X host PCs
** full connectivity support for Maemo device with SSH, RSE, VNC and SBRSH from Linux, Windows and Mac OS X 
** support for P2 update site
** installation wizard to setup Python development environment for host PC and Maemo device
** Maemo installation package creation wizard
** Maemo Flasher-3.5 tool wizard 

== Maemo Mica plugin framework for Eclipse ==

* product information: http://mica.garage.maemo.org/2nd_edition
* documentation for developers who want to develop their own Maemo plugins using Mica: http://mica.garage.maemo.org/2nd_edition/documentation.html
* main features:
** general framework for Maemo Eclipse plugin development
** easy PC-Device connectivity with Maemo PC Connectivity
** support for both Diablo and Fremantle SDK environments 
** support for N800, N810 and N900 Maemo devices
** uses the latest stable Eclipse components (compatible with Eclipse Ganymede SR2)
** Scratchbox 1 installer wizard and SDK installer wizard 
** supports SSH, RSE, VNC and SBRSH for Linux, Windows and Mac OS X 
** Flasher-3.5 wizard for flashing Maemo device from Eclipse IDE 
** support for P2 update site
** Mica Garage site releases, documentation and services usable for plugin developers

== Maemo SDK Virtual Image ==

* product information: http://maemovmware.garage.maemo.org/2nd_edition
* installation and configuration instructions: http://maemovmware.garage.maemo.org/2nd_edition/installation.html
* images can be downloaded from here: http://tablets-dev.nokia.com/maemo-dev-env-downloads.php
* main features:
** Ubuntu Intrepid Server based Maemo SDK Virtual Image for Linux, Windows and Mac OS X 
*** full support for VMWare and QEMU virtualization technologies 
*** do-it-yourself support for VirtualBox 
*** server image includes basic Ubuntu Intrepid Server and Host PC Connectivity environment preconfigured for which Maemo Diablo and Fremantle Development Environments can be installed with Eclipse installation wizard automatically 
*** server image includes installers for GuestAdditions (for VirtualBox) and OpenVMTools/OfficialVMTools (for VMWare)
** Ubuntu Intrepid Desktop based Maemo SDK Virtual Image for Linux, Windows and Mac OS X 
*** out-of-the-box ready Ubuntu Intrepid Desktop based image
*** desktop image includes fully configured Maemo Diablo and Fremantle Development Environments including also Maemo Eclipse support
*** desktop image includes installers for GuestAdditions (for VirtualBox) and OpenVMTools/OfficialVMTools (for VMWare) 
* instructions how to use SDK Virtual Images with Eclipse IDE on different operating systems: http://esbox.garage.maemo.org/2nd_edition/virtual_machines.html

== Maemo C++ and Python programming environment support ==

* product information: http://maemo.org/development/documentation/programming_languages/
* C++ documentation: http://maemomm.garage.maemo.org/docs/
* Python documentation: http://pymaemo.garage.maemo.org/

* 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/.

* 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.

== Known Issues ==

* latest version for PreFinal known issues is here http://wiki.maemo.org/Eclipse_integration/KnownIssues_prefinal (feel free to update this wiki page)
* 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 
* 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 
* Ubuntu Desktop based Maemo SDK Virtual Image (out-of-the-box ready development environment) will be published little AFTER this PreFinal release (Desktop image needs to include PreFinal products)
* Updating process from Eclipse Update Site (update from Beta 2 to PreFinal) may not work for some plug-ins

== Installation Notices ==

'''Notice 1''': If only Maemo Pluthon plugin for Eclipse is used for Python on device development which means it does not reguire Maemo SDK or SDK Virtual Image installation on host PC.

'''Notice 2''': 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. 

'''Notice 3''': 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

'''Notice 4''': 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.  

----
Feedback can be sent to eclipse-integration@maemo.org

[[Category:Eclipse]]</text>
    </revision>
  </page>
  <page>
    <title>Ejpi</title>
    <id>4497</id>
    <revision>
      <id>41824</id>
      <timestamp>2011-02-15T00:36:02Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <comment>/* Contribute */</comment>
      <text xml:space="preserve">'''e**(j pi) + 1 = 0'''

The interface focuses on history manipulation and quick access to functionality through something like pie menus. It takes advantage of pythons type system under the hood for support of integer, float, and complex operations. For integers it tracks the base used and tries to persist that through the operations.

The name (e^(j pi) + 1 = 0, or shortened ejpi) is [[:wikipedia:Euler's identity|Euler's Identity]]. If you do not understand the beauty of it, I recommend reading the article. Why &quot;j&quot;? I come from an [[:wikipedia:Imaginary unit#Alternative notations|engineering background]]. Yeah, it put a smile on my face when I learned Python and found out it used &quot;j&quot;.

[[:wikipedia:Reverse Polish notation|RPN]]? I've just always been a fan of its simplicity to understand, simplicity to code, uniformity in action, less mental tracking, etc. Yes, I own several HP calculators.

== Screenshots ==

[[Image:Ejpi.png|frame|center|alt=Screenshot of Ejpi|Ejpi]]

[[Image:Ejpi_enter.png|frame|center|alt=Screenshot of Ejpi showing ‘pie menu’|Pressing a pie menu (sadly the pie is offset from the click, likely a Qt bug)]]

== Features ==

Basic features:
* Pie Menu like system for buttons: Quick access to functionality without cluttering the display
* History manipulation: Just drag the items around, click on the &quot;x&quot; to delete individual items, click on the entered equation or the result to copy it, etc
* Persistent history
* Plugin system: Add all the constants or custom equations you want
* Tracks numbers as integers (with base), floating point numbers, and complex numbers
* Comes by default with some basic operations, logic operations, and trig

Keyboard Shortcuts
* Ctrl+Enter - toggle between fullscreen
* Ctrl+w, Ctrl+q - quit
* Ctrl+l - Copy the debug log contents
* Ctrl+c Copy
* Ctrl+v Paste

Quirks
* &quot;j&quot; is used as the imaginary number
* All math is done in floating point, so for example e^(j pi) + 1 != 0

== Getting ejpi ==

Getting ejpi
* Maemo 4.1: Available in [[extras]] through the Application Manager.
* [http://maemo.org/downloads/product/Maemo5/ejpi/ Maemo 5] or available in extras through the Application Manager.
* [http://ejpi.garage.maemo.org/ejpi.deb Ubuntu]

ejpi has been tested on:
* Ubuntu 10.04
* Maemo 4.1
* Maemo 5

== Contribute ==

* [https://bugs.maemo.org/enter_bug.cgi?product=ejpi File a bug]
* [https://bugs.maemo.org/buglist.cgi?query_format=specific&amp;order=relevance+desc&amp;bug_status=__open__&amp;product=ejpi&amp;content= View existing bug reports]
* [http://talk.maemo.org/showthread.php?p=260919 talk.maemo.org thread]
* [https://garage.maemo.org/projects/ejpi/ Garage Project (including code)] or [https://github.com/epage/ejpi github]
* Learn about [http://wiki.maemo.org/Extras-testing extras-testing] and checkout the [http://maemo.org/packages/view/ejpi/ Package page (including voting)]

ejpi is available under the [http://www.gnu.org/licenses/lgpl-2.1.html LGPL v2.1 license]

== Troubleshooting and Reporting of Bugs ==

A very beneficial log can be found at &quot;&lt;code&gt;~/.ejpi/ejpi.log&lt;/code&gt;&quot;

[[Category:Software]]
[[Category:Diablo]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Email</title>
    <id>2913</id>
    <revision>
      <id>50190</id>
      <timestamp>2012-10-15T08:55:46Z</timestamp>
      <contributor>
        <username>demolition</username>
        <id>4188</id>
      </contributor>
      <comment>/* Webmail */</comment>
      <text xml:space="preserve">There are several ways to get, send and read email on Maemo devices such as the [[Nokia N900|N900]].

==N900 Email Client==
The default Email Client on the N900 is [http://modest.garage.maemo.org/ Modest]

Modest was presented at the [[Maemo Summit 2009]]. The slides are available [http://modest.garage.maemo.org/ on the Modest website]

The N900 includes a setup wizard that helps you to set up your email account. Please make sure that you select the correct service provider. DO NOT SELECT &quot;OTHER&quot;until you have scrolled through the service provider list (this is not obvious) in the wizard to see if your provider is already there. You will see a long list of providers starting with :-

* Other
* Mail for Exchange (for connecting to Exchange servers only)
* Nokia Messaging (If you want push email from your provider)
* .MAC
* 3Mail (three.co.uk)
* AIM
* AOL
* Beeb.net
* Bluyonder
* Breathe
* BT Click
* BT OpenWorld
* BT Yahoo
* Clara.net
* demon
* Force9
.......

==Push Email==

The N900 comes with two options for people looking for a push type e-mail service like Blackberry or Microsoft over the air ActiveSync.

===Mail for Exchange (MfE)===

{{main|Mail for Exchange}}
This is an implementation of the Microsoft ActiveSync protocol that connects an over the air Exchange server to the N900 e-mail client and Calendar and Contacts.

Google mail also supports ActiveSync these days.  Though it is not supported, some users have reported success.

====MfE and Digital Certificates====

MfE depends on the system to handle Digital Certificates. If you have come off a Symbian device then you would expect MfE to prompt you to save a certificate when it does a first sync. On the N900 you will have to save the certificate yourself onto the N900 and open it up in the file browser to install it. You can check the Certificate is installed under settings. 

See this post on how its done  http://talk.maemo.org/showpost.php?p=422526&amp;postcount=98

also here http://talk.maemo.org/showthread.php?t=37087

====Limitations of MfE====

MfE on the N900 is only designed to work with Exchange 2003 (since [[Maemo 5/PR1.1|PR1.1]]) and 2007 servers, although Exchange 2010 should also work. Servers will also need to have support for Non Provisioned Devices Enabled in order to have synchronization work. 

The following features are not supported by the [[Open development/Maemo roadmap/Fremantle|Maemo 5]] implementation of Mail for Exchange:
* Categories support
* Corporate Directory Lookup (can be imported in PR 1.1)
* Email search on Server or Client
* Marking messages for follow up
* Only one active MfE account is supported

MfE is included on your N900, no need to install, but here is the home page for MfE for other Nokia devices. Note that MfE on N900 is a separate implementation from this:

[http://businesssoftware.nokia.com/mail_for_exchange_downloads.php Mail for Exchange download page]

====Known Problems of MfE====

With the first retail release of the N900 there are a number of known issues.
Many users have worked around these issues. You can follow MfE discussions on this thread http://talk.maemo.org/showthread.php?t=35136

* Self Signed Certificates give &quot;Error:Either Exchange server requires secure connection or account is disabled&quot;. You can work around this by creating symlinks see the bug report here  https://bugs.maemo.org/show_bug.cgi?id=6467#c17
*Sync fails due to older 12.1 protocol version  see here http://talk.maemo.org/showpost.php?p=426857&amp;postcount=368

===Nokia Messaging===

If you already have a favorite webmail service, but would like your email &quot;pushed&quot; to you then this is what this option was designed for. Nokia messaging can connect up to 10 email accounts at one time, and you can choose which account you send from. Nokia also provide their own webmail service (Ovi Mail) that can be linked to this. Nokia messaging provides for easy setup as it already knows the server settings for a large number of the email services out there. Nokia Messaging only handles email and not Contacts and Calendar or Tasks. 

Nokia Messaging http://email.nokia.com/account/home.action

===IMAP Idle for Push Email===

Many modern mail servers support the IMAP Idle feature, which allows your email client to monitor an inbox. Sadly Modest on the N900 has this feature disabled for power reasons.

It is possible to get push email from an IMAP server using a service like [http://www.nuevasync.com/ Nuevasync] or [http://z-push.sourceforge.net/soswp/ Z-Push] that proxies between IMAP with IDLE and the Exchange Active Sync protocol (which Modest does support). Also many commercial mail servers implement Active Sync, and can therefore provide push email service directly.

==Desktop style e-mail using the Modest e-mail client==

Some people want to be able to have a copy of all their e-mails local to their device, just like Outlook or Lotus notes. If your e-mail service provider provides POP or IMAP support (which they all should) then the N900 has a very good email client called Modest.
Modest currently seems to have problems dealing with very large inboxes such is typical with Gmail accounts, as it will try and copy all of your mails to the device. There is a guide to [[improving Modest email sync reliability]]

The N900 includes a large number of popular email providers server addresses. make sure that you scroll down the list of service providers in the setup wizard and choose the one you need, to save you having to find out your service providers information.

[[:wikipedia:Modest_(e-mail_client)|Modest e-mail]]

===Secure IMAP Email===

users have reported success using IMAPS over SSL. make sure your digital certificates are installed.

see thread here  http://talk.maemo.org/showthread.php?t=37078&amp;highlight=certificate

===Gmail and IMAP access===

Gmail does not offer IMAP Access by default it needs to be switched on. 
There is a good Article of IMAP vs POP here http://gmailblog.blogspot.com/2008/05/getting-gmail-anywhere-imap-versus-pop.html

And Instructions on Turning on IMAP http://mail.google.com/support/bin/answer.py?answer=77695&amp;topic=12891

If you enable Google Labs on your Gmail account you can select which folders (labels) are visible through IMAP. This can significantly reduce your data usage and the time it takes to send and receive (down to a few seconds on 2G if you only want to see new emails and a few others such as &quot;Starred&quot; emails).

=== Yahoo! Mail and IMAP ===

Yahoo supports IMAP access. However, you need to setup your account with a GPRS or 3G connection. After that, you can access your mailbox via wifi connection

Here are the settings

* Account Title: &lt;Whatever you like&gt;
* Name: &lt;Your Name&gt;
* Username: &lt;Full email address (e.g., bill@yahoo.com)&gt;
* Password: &lt;Is the password you login to Yahoo! with&gt;
* E-mail address: &lt;Full email address (e.g., bill@yahoo.com)&gt;
* Incoming Server: imap.mail.yahoo.com
* Secure authentication: Tick
* Secure connection: SSL
* Incoming Port: 993 (requires SSL)
* Outgoing Server: smtp.mail.yahoo.com
* Secure authentication: Login
* Username: &lt;Full email address (e.g., bill@yahoo.com)&gt;
* Password: &lt;Is the password you login to Yahoo! with&gt;
* Secure connection: SSL
* Outgoing Port: 465 (requires SSL)

==Webmail==

The Browser in the N900 is very powerful and supports most webmail services including GMail and Hotmail. 

'''Note:''' Some webmail services default to a mobile view, when using MicroB (N900's default browser). In order to view these sites, as though using a desktop, it is necessary to alter the User Agent String (UA). A User Agent String, User Agent or UA is the name (i.e. a string) that a browser calls itself when connecting to a website. One such tool to change MicroB's UA is User Agent Tool [http://talk.maemo.org/showthread.php?t=86714: Discussion] and [http://maemo.org/packages/view/useragenttool/: Package] . Altering the User Agent does not alter the browser, it merely changes the way the browser reports itself to websites; expect sites to load more slowly when using an alternate UA.

===Gmail===

You can access a Internet tablet friendly version of Gmail by pointing your browser at
http://mail.google.com/mail/x/gdlakb-/gp/

Hopefully a version of [http://maemo.org/downloads/product/OS2008/macuco/ macuco] will be ported to the N900 from the N810 that gives you finger friendly access to the gmail site.

Google wave has also been tried, and appears to work to some degree. You may need to use the Onscreen Cursor to get to some of the UI elements.

===Hotmail===

The mobile page for Windows Live Services (including Hotmail) is http://mobile.live.com . Although the page is intended for mobile users, it is not very tablet friendly. For example, the font size is too small for a Hi-res screen (like N900).

For the Modest client, Hotmail does not offer IMAP access. It only offers POP3 access. The user experience is not very good as a result. For instance deleting emails on your device doe not delete on your server. The best option for Hotmail is to use Nokia Messaging.

===Yahoo mail===

Yahoo Mail provides a mobile phone friendly version. http://m.yahoo.com/mail

Yahoo Mail also supports IMAP access. [[#Yahoo! Mail and IMAP| See above]]

In addition, you can push your Yahoo mails to your devices using Nokia Messaging.

If you use Yahoo Mail Plus!, you can have POP3. The settings can be found in the setup wizard.

===Ovimail===

Nokia provides its own webmail service designed to work with your mobile. create an account here https://mail.ovi.com/
Users have reported success combining Ovi mail with Nokia Messaging to get push email.

===Lotus Web Mail===

The Domino Web access's default user interface requires using double click, which per default used for zooming in the browser. The Domino offers another Light weight web user interfaces via the bellow urls.
  
http://&lt;server.domain&gt;/&lt;mailfile path&gt;/?OpenDatabase&amp;ui=dwa_ulite 

http://&lt;server.domain&gt;/&lt;mailfile path&gt;/?OpenDatabase&amp;ui=webmail

Please add services that you have tried

==Third Party Email options==

Please add your experience with other email options here

Users have reported success with [http://www.nuevasync.com/ Nuevasync]. This service allows you to sync from various sources including any IMAP server, Google mail, contacts and calendar, and also Yahoo contacts, with your N900.

===Lotus Domino (Notes)===

The backend for Notes is called Domino Server. Domino 8.5.1 was released in October 2009 and added an optional software module called [http://www-01.ibm.com/software/lotus/products/notes/traveler.html  Lotus Notes Traveler]. This module implements ActiveSync.

In theory the Mail for Exchange (MfE) application should work against Lotus Notes Traveler. However it does not, because the Lotus Notes Traveler implements the ActiveSync on non-standard path and there seems to be version incompatibilities between the Maemo version of MfE and the Lotus Notes Traveler.

There is no support for using MfE against a Lotus Notes Traveler server.

*** Correction, it will work, albeit unsupported... you can change the 
NTSConfigTemplate.xml file in the .../notesdata/traveler/cfg/ directory to turn off policy enforcing and use a non-standard path. 

Search for my post for instructions on talk.maemo.org (cotoole)

==Additional  Resources==

Nokia Messaging options website http://messaging.nokia.com/site/main.do

[[Category:N900]]
[[Category:Software]]
[[Category:Users]]</text>
    </revision>
  </page>
  <page>
    <title>Email and Mail for Exchange n9</title>
    <id>5027</id>
    <revision>
      <id>49391</id>
      <timestamp>2012-09-02T23:44:22Z</timestamp>
      <contributor>
        <username>rzr</username>
        <id>946</id>
      </contributor>
      <comment>sed</comment>
      <text xml:space="preserve">=== How can I ask questions or report issues ? ===

* '''Join the discussion here:''' http://talk.maemo.org/showthread.php?p=1102037#post1102037


=== How can I turn the logging ON or OFF? ===

Warning:

''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 confidential!''


==== Turning the logging ON ==== 

&lt;ol&gt;
&lt;li&gt;
Enable Developer mode from  settings --&gt; Security --&gt; Developer Mode.
&lt;/li&gt;
&lt;li&gt;
Wait until the device reboots.
&lt;/li&gt;
&lt;li&gt;
Connect the device to PC in mass storage mode and create the files below in your PC and copy them into MyDocs folder.
&lt;/li&gt;
* activesync.conf
&lt;pre&gt;
[Syslog]
Enabled=0

[FileLog]
Path=/home/user/MyDocs/activesync.log
Enabled=1

[StdStreamLog]
Enabled=0
StdErrEnabled=0

[ExtendedLog]
Enabled=1

[Log%20categories]
Calendar=1
Contacts=1
Settings=1
Statistic=0
Transfer=
Meetings=1
Network=1
Storage=1
DBus=1
AS_LIB=1
General=1
&lt;/pre&gt;
* Fenix.conf
&lt;pre&gt;
[Syslog]
Enabled=0

[FileLog]
Path=/home/user/MyDocs/fenix.log
Enabled=1

[StdStreamLog]
Enabled=1

[Log%20categories]
Fenix=1

&lt;/pre&gt;
* Messageserver.conf
&lt;pre&gt;
[Syslog]
Enabled=0

[FileLog]
Path=/home/user/MyDocs/messageserver.log
Enabled=1

[StdStreamLog]
Enabled=0

[Log%20categories]
IMAP=1
Messaging=1
POP=1
SMTP=1

&lt;/pre&gt;
* Msgindexer.conf
&lt;pre&gt;
[Syslog]
Enabled=0

[FileLog]
Path=/home/user/MyDocs/msgindexer.log
Enabled=1

[StdStreamLog]
Enabled=1

[Log%20categories]
Notification=1
Queries=0
Indexer=0
Heartbeat=1
Scheduler=1
Watcher=1

[Notification]
Enabled=1

&lt;/pre&gt;
&lt;li&gt;
Launch terminal application and run the following command:
&lt;/li&gt;
&lt;pre&gt;
cd /home/user/MyDocs/
cp activesync.conf Fenix.conf Messageserver.conf Msgindexer.conf /home/user/.config/Nokia/
&lt;/pre&gt;
&lt;li&gt;
Reboot the device and reproduce your problem.
&lt;/li&gt;
&lt;li&gt;
Connect the device to PC in mass storage mode and copy the log files from the MyDocs folder. 
&lt;/li&gt;
&lt;/ol&gt;

==== Turning the logging OFF ==== 

&lt;br&gt;
In order to turn the logs OFF, you can disable logging in all the files copied above or remove them.

* To disable logging change all &quot;Enabled&quot; fields from '1' to '0' : 
&lt;pre&gt;
sed -e 's|Enabled=1|Enabled=0|g' -i ~/.config/Nokia/*
&lt;/pre&gt;


* To remove the files you can use the following command on terminal:

&lt;pre&gt;
cd /home/user/.config/Nokia/
rm activesync.conf Fenix.conf Messageserver.conf Msgindexer.conf
&lt;/pre&gt;

After device reboot the logs will not be collected.

===== MORE ====

[[Fenix]] [[Harmattan]] [[NokiaN9]] [[NokiaN950]]</text>
    </revision>
  </page>
  <page>
    <title>Emulators</title>
    <id>3321</id>
    <revision>
      <id>41740</id>
      <timestamp>2011-02-09T09:57:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>reformat list into article text, cut games emulators already listed at [[Games#Emulators]]</comment>
      <text xml:space="preserve">There have been several '''emulators''' or virtual machines ported to Maemo tablets that can run [[alternative operating systems]]. The best known operating system emulators are the [http://www.access-company.com/products/gvm/ Garnet VM] (Palm OS), [http://talk.maemo.org/showthread.php?t=16306 Basilisk II] (Macintosh OS up to 8.1) and [http://maemo.org/packages/view/dosbox DOSBox]/[[RubyBox]] (MS-DOS and Windows 3.1). Emulation often introduces a large amount of overhead, so emulators tend to be limited to older operating systems that were designed to run on old, limited hardware. For example, there are calculator emulators, such as [http://maemo.org/packages/view/ati85/ AlmostTI] and [http://maemo.org/packages/view/x48 x48].

Others include [http://maemo.org/packages/view/fmsx/ fMSX] (emulating the 8 bit MSX homecomputer), [http://maemo.org/downloads/product/Maemo5/mg/ Mastergear] (SEGA 8 bit console), [http://maemo.org/packages/view/bochs/ Bochs] (IA-32 PC), [http://maemo.org/packages/view/ColEm/ ColEm] (ColecoVision), [http://maemo.org/packages/view/CPCm/ CPCm] (CPS2), [http://maemo.org/packages/view/hercules/ Hercules] (Hercules system/370, ESA/390, and z/Architecture) and [http://maemo.org/packages/view/speccy/ Speccy] (ZX Spectrum).

''See also [[Games#Emulators]]''

{{stub}}

[[Category:Games]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Enable screen rotation in OS2008 Diablo</title>
    <id>1146</id>
    <revision>
      <id>20996</id>
      <timestamp>2009-10-26T01:25:05Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <minor/>
      <comment>fix broken redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Rotation]]</text>
    </revision>
  </page>
  <page>
    <title>Enterprise - Manual Installation and Configuration</title>
    <id>4144</id>
    <revision>
      <id>35201</id>
      <timestamp>2010-06-01T13:20:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Enterprise]]</comment>
      <text xml:space="preserve">The intention here is not to gather all possible installation and configuration steps for enterprise environments but to use a brief example to show what the difference is for the end user when setting everything manually compared to solutions that automate the tasks.

= Installation =
== Adding a repository ==

If the software that you need for the device is not provided directly in Nokia software catalogue or in Maemo Extras you need to add the repository that provides the software for your environment.

To add the repository open the application manager and tap the menu bar and select &quot;Application catalogs&quot;.

[[Image:edg_app_manager_menu.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 1. Application manager menu&lt;/div&gt;

Select new to create a new repository entry.

[[Image:edg_app_manager_repositories.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 2. Repository listing&lt;/div&gt;

[[Image:edg_app_manager_new_repository.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 3. Create a new repository&lt;/div&gt;

== Installing software ==

Depending on your environment needs install the necessary software for your environment, example here for installing pidgin.

Open the application manager and tap on Download.

[[Image:edg_app_manager.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 4. Application manager&lt;/div&gt;

Tap on the menu and select &quot;Search&quot;.

[[Image:edg_app_manager_download_menu.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 5. Application manager download menu&lt;/div&gt;

Type in the name of application to install.

[[Image:edg_app_manager_search.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 6. Search for application&lt;/div&gt;

Select the application from installation results, here for example pidgin listed along with OCS plugin.

[[Image:edg_app_manager_search_results.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 7. Search results&lt;/div&gt;

Here is the publicly available OTR plugin being installed that needs the installation approved.

[[Image:edg_app_manager_install_pidgin_otr.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 8. Example of installing Pidgin Off The Record plugin&lt;/div&gt;

Software is being installed.

[[Image:edg_app_manager_installing.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 9. Example of installing Pidgin Off The Record plugin&lt;/div&gt;

Finished.

[[Image:edg_app_manager_installed.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 10. Example of installing Pidgin Off The Record plugin&lt;/div&gt;

And then repeat for all the necessary software for your corporate environment.

= Configuration =
== VPN ==
=== Configuring VPN on device ===
VPN can be accessed from the Status menu of the device.

[[Image:edg_access_vpn.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 11. Accessing VPN&lt;/div&gt;

To configure the VPN, tap on the ‘New’ button in the VPN Gateways dialog.

[[Image:edg_base_vpn_gui.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 12. VPN GUI&lt;/div&gt;

Configure the details of VPN Gateway details. This information should be obtained from the Gateway administrator.

[[Image:edg_configure_vpn.jpg]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 13. Configure VPN&lt;/div&gt;

After saving the Gateway details it shall appear in the VPN Gateways dialog.

== Mail for Exchange ==
=== Configuring Exchange server ===

MfE client on N900 supports the following Microsoft Exchange versions:
* Exchange ActiveSync for Exchange Server 2003 Service Pack 2
* Exchange ActiveSync for Exchange Server 2007
* Exchange Server 2010 connectivity has been reported to work as well but this is unconfirmed.

The Autodiscover service is supported by N900 MfE client. It uses the entered email address, username, password and domain to detect the Exchange server information.

Searching in Exchange global address list is also supported by N900 MfE client, so users are able to search for contacts in the corporate address book stored on the Exchange server.

MfE client on N900 doesn’t support server policies, so the Exchange server shall be configured in a way that doesn’t require the client to use any provisioned policy. Device security settings on server side shall be turned off.

Exchange server needs to be configured for enable unsupported devices.

=== Configuring Mail for Exchange account on device ===

It is possible to configure only one Mail for Exchange account on device. It can be done from Settings &gt; Mail for Exchange. If the account has not yet configured, it launches the configuration wizard

[[Image:edg_msexchange_config_welcome.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 14. MS Exchange setup wizard&lt;/div&gt;

Just press “Next” on the first page. On the Credential page, the following information should be filled in:
* E-mail address – the user’s complete email address
* User name – the user’s login for the account on Exchange server
* Password – the password to access the user’s account on Exchange server
* Domain – the domain name (this field may be left empty if not used for accessing the user’s account)


[[Image:edg_msexchange_config_credentials.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 15. MS Exchange credentials&lt;/div&gt;

The device supports the Autodiscover service which uses the provided information from Credentials page to detect the internet address of Exchange server. It starts automatically when you tap on “Next”. If the service is accessible and the provided information is enough, the Exchange server’s internet address will be pre-filled on the next “Server settings” page. Otherwise, it shall be entered.

[[Image:edg_msexchange_config_server_settings.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 16. MS Exchange server settings&lt;/div&gt;

Then, after tapping on “Next”, the wizard will try to access the Exchange server and verify the credentials entered on the first page. If it detects that something is wrong, it will navigate to the corresponding wizard page. If it is correct, on the next page user is prompted to select the synchronization content. Note that calendar events and tasks are combined together.

[[Image:edg_msexchange_config_sync_content.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 17. MS Exchange synchronization content&lt;/div&gt;

The option “First synchronization” is related to contacts only and if selected as “Keep items on device” means that all contacts currently existing on device will be synchronized to the Exchange server. If “Delete items on device” is selected, all the contacts currently existing on device will be removed prior to synchronization and later be replaced by the ones from user’s account on the Exchange server.
The next page is the last chance to modify the synchronization settings. All these settings are set to optimal values by default, but modifiable if necessary.
Note that it is not recommended to synchronize the same content using different synchronization methods (PC Suite with Mail for Exchange, for example).

[[Image:edg_msexchange_config_advanced.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 18. MS Exchange Advanced settings&lt;/div&gt;

Tapping on “Advanced settings” brings up the full list of settings.
There are 2 synchronization schedules: peak and off-peak.

[[Image:edg_msexchange_config_sync_schedule.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 19. MS Exchange synchronization schedule&lt;/div&gt;

It is possible to specify the conflict resolution policy, i.e. which side takes priority if a conflict modification is done on both sides: on device and on server at the same time.

[[Image:edg_msexchange_config_sync_resolution.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 20. MS Exchange conflict resolution policy&lt;/div&gt;

Also, the email auto-signature text, email age filter and email sending policy can be changed.

[[Image:edg_msexchange_config_settings.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 21. MS Exchange settings&lt;/div&gt;

Calendar synchronization settings include also the calendar name option. By default it synchronizes into the device main calendar, however it is possible to synchronize it into a separate calendar by selecting “Create new” option. The age filter for calendar is independent on the email’s one.

[[Image:edg_msexchange_config_calendar.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 22. MS Exchange Calendar content&lt;/div&gt;

No additional options for contacts, but here you can modify the ones you saw on previous pages.

[[Image:edg_msexchange_config_contacts.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 23. MS Exchange Contacts content&lt;/div&gt;

The next page starts initial synchronization. It can take quite a long time depending on the amount of synchronization content.

[[Image:edg_msexchange_config_first_sync.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 24. MS Exchange first synchronization&lt;/div&gt;

When it is done, “Finish” button closes the wizard and you have the Mail for Exchange account fully operable.
If you want to modify some settings, you just need to go to Settings &gt; Mail for Exchange &gt; Settings. 

[[Image:edg_msexchange_config_sync_status.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 25. MS Exchange synchronization status and Settings access&lt;/div&gt;

There you can find the same list of settings as you saw in the wizard’s “advanced settings”. You can also synchronize your content any time just by tapping on “Synchronize manually”. The “Details” screen will show the statistics of the last synchronization session.

[[Image:edg_msexchange_config_sync_progress.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 26. MS Exchange synchronization progress indication&lt;/div&gt;

== Remote desktop ==
=== Setup the remote computer ===

Get admin rights to your remote Windows computer. Install the Remote Desktop Server side software in the computer from http://www.microsoft.com/windowsxp/downloads/tools/default.mspx. Ensure that the computer is setup for allowing rdesktop clients to access it.

[[Image:edg_rdesktop_pcconfig.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 27. Remote computer configuration&lt;/div&gt;

=== Configuring Remote Desktop on device ===

The Remote Desktop application can be accessed from the Application Launcher &gt;More &gt;rdesktop.

[[Image:edg_rdesktop_appl_access.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 28. RDesktop application access&lt;/div&gt;

The configuration dialog is shown on launching the rdesktop application. Fill the details required for configuration the application
* RDP Server – The remote laptop or desktop computer running the remote desktop server software.
* Username – The user id for logging into the remote computer
* Password – The password corresponding to Username field
* Domain – The domain to which the computer and the username belongs.
* Keyboard layout – Layout of the keyboard on device.

[[Image:edg_rdesktop_server_details.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 29. Remote computer details&lt;/div&gt;

[[Image:edg_rdesktop_pc_list.png]]
&lt;div style=&quot;margin-left:200px;&quot;&gt;Figure 30. Remote computer list&lt;/div&gt;

= Summary =

On this page we looked at how much steps a user needs to go through to do manual installation and configuration. While this could work for a small company with very few services but to lower administrator time spent updating every screenshot and explanation it is better to start examine how to simplify this with [[Enterprise_Provisioning|provisioning]].

[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>Enterprise - Tried and tested provisioning strategies</title>
    <id>4146</id>
    <revision>
      <id>41274</id>
      <timestamp>2011-01-21T11:18:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">Each of the provisioning strategies in this chapter are either in daily use or at least built and tested as proof-of concept.

In the pictures, thick red dashed lines represent ''logical'' connections between actors. If a line has an arrow, it represents direction of the initiation of the communication (which is the direction of the required firewall rule).

== Strategy 1: Simple and direct ==

This is the most simple strategy and the most straightforward to implement. In this strategy, direct enrollment is used. Also, since the whole process takes place at the same server, the line between the enrollment and the bootstrapping phases are blurred.

[[Image:Combined_Enrollment_Installation_server_at_lobby_network.png|thumb|900px|alt=Diagram of a combined ecrollment/installation server installed at a lobby network|Figure 1: Combined Enrollment/Installation server at lobby network]]

=== The process ===

# Since repositories at the public Internet are usually not accessible, to avoid Application Manager halting problem, the user needs to disable all repositories on the device. Alternatively, the user may authenticate him/herself to pass through the Access Gateway.
# The user connects directly, using the device keyboard and display, to a URL on the Enrollment/Installation server.
# The user provides his/her credentials. 
# The Enrollment/Installation server generates the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources. &quot;&gt;EUF&lt;/span&gt; and bootstraps the installation.

=== Components ===

* Web application (CGI script) running at the Enrollment/Installation server. An example (skeleton) CGI script will be provided soon in gagare.maemo.org that corresponds to the examples given for the [[Enterprise_Device_Configuration|device side configuration]].

=== Firewall rules ===

{| class=&quot;wikitable&quot;
|+ Firewall rules: Simple and direct strategy
|-
! Source !! Target !! Protocol !! Direction !! Notes
|-
| Enrollment server || Enterprise User Database || LDAPS (636)|| Inbound ||   
|-
| Admin server || Installation server || SSH (22)||Outbound ||   
|-
| Admin server || Installation server || HTTPS (443)||Outbound || Optional 
|}

=== Security considerations ===

* The Enterprise User Database must be accessible. This needs a hole on its inbound firewall. This is a concern in case the Enrollment Server is compromized.
* The user password travels (in encrypted form) in an insecure network outside the corporate firewalls.

=== Pros and cons ===

* + Simple and straightforward to implement.
* - Potentially tedious to the user, at worst case they have to authenticate themselves '''twice''' using the device keyboad (first for Access Gateway, then for Enrollment Server).

== Strategy 2: SMS based ==

Although the device does not currently support OTA configuration messages, there is a way to utilize SMS messages in provisioning. The idea is to deliver the configuration data from Enrollment Server to Installation Server behind the scenes, and simultaneously deliver to the device via SMS a one-time time-limited URL which enables access to the configuration data.

This strategy is more complicated to implement but easier to use. It uses indirect enrollment.

[[Image:Separate_Enrollment_and_Installation_servers.png|thumb|900px|alt=Diagram of separate enrollment and installation servers|Figure 2: Separate Enrollment and Installation servers]]

=== The process ===

# Since repositories at the public Internet are usually not accessible, to avoid Application Manager halting problem, the user needs to disable all repositories from the device. Alternatively, the user may authenticate him/herself to pass through the Access Gateway.
# User connects to the Enrollment Server using a desktop computer and provides his/her credentials.
# Using the credentials, the Enrollment Server queries user information from Enterprise User Database, including the phone number of the users device.
# Enrollment Server generates a random pin code.
# Enrollment Server generates the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources. &quot;&gt;EUF&lt;/span&gt; and transfers it, along with the pin code, to Installation Server.
# Enrollment Server generates a URL which points to a CGI script at the Installation Server and contains the pin code. For example, &lt;code&gt;&lt;nowiki&gt;https://server.example.com/indirect.cgi?pincode=aa913a5b-6558-44a5-a501-bbf5c81078d3&lt;/nowiki&gt;&lt;/code&gt;.
# Enrollment Server generates an SMS message which contains the URL and sends it to the device using SMS gateway.
# When the user opens the SMS message at the device, Conversations application displays the URL as a clickable link. When the user clicks the link, the Web Browser application is invoked and the URL is opened.
# When the CGI script at the Installation Server is called, it checks whether there is an &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources. &quot;&gt;EUF&lt;/span&gt; matching the pincode. If there is, the script checks the age of the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources. &quot;&gt;EUF&lt;/span&gt;. If the file is older than a predefined time limit (e.g., 5 minutes) an error message is generated and processing stops.
# If the file age is OK, the script bootstraps the installation according selected bootstrapping strategy. &quot;Via package&quot; bootstrap strategy is probably more feasible, especially if ease of use is among the reasons.
# At the device, the Web Browser invokes the Application Manager, which installs the on-the-fly generated package and all packages in the dependency chain
# Post-install script runs and re-enables repositories disabled at step 1

To clean up, Installation server runs a cron job at every few minutes, removing all generated temporary files which are older than predefined time limit

=== Components ===

* Web application (CGI script) running at Enrollment Server
* Web application (CGI script) running at Installation Server
* SMS gateway

=== Firewall rules ===

{| class=&quot;wikitable&quot;
|+ Firewall rules: SMS-based strategy
|-
! Source !! Target !! Protocol !! Direction !! Notes 
|-
|Admin server || Installation server || SSH (22)||Outbound ||   
|-
|Enrollment server || Installation server || SSH (22)||Outbound ||   
|-
|Admin server || Installation server || HTTPS (443)||Outbound ||Optional 
|}

=== Security considerations ===

* PIN code can and should be fairly long, longer than a typical username and password together.
* No need for inbound firewall holes.
* User password does not travel outside corporate intranet.

=== Pros and cons ===

* + The obvious advantage of indirect enrollment combined with SMS-URL based bootstrapping is the minimization of user interaction performed from the device keyboard and display. Writing the provisioning URL, username and password from the device keyboard are all avoided. Most of the user interaction can be performed using full size keyboard and display, only couple of touchscreen clicks is left to be to done at the device. 
* - A bit more laborious to implement
* - Requires more servers (not necessarily if Admin server can host as Enrollment server as well)

== Strategy 3: Offline installation ==

This strategy is probably used as a complement to previous strategies. The server topology may be similar to either of the descried ones.

The most important use case for this strategy is to enable provisioning for users located at remote sites and unable to access corporate WLAN.

=== The process ===

# To avoid Application Manager halting problem, user needs to disable all repositories from the device. Or alternatively, connect to a 3G network.
# User connects to the Enrollment Server via a VPN connection to the corporate intranet using a desktop computer and provides his/her credentials.
# Using the credentials, the Enrollment Server queries the user information from the Enterprise User Database.
# Enrollment Server generates a random pin code.
# Enrollment Server generates &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources. &quot;&gt;EUF&lt;/span&gt;, transfers it and the pin code to Installation server.
# Enrollment Server generates an URL which points to a CGI script at the Installation Server and contains the pin code. For example, &lt;code&gt;&lt;nowiki&gt;https://server.example.com/offline.cgi?pincode=a913a5bXTgd&lt;/nowiki&gt;&lt;/code&gt;.
# Enrollment Server redirects the web browser to that URL, or presents a clickable link.
# When the CGI script at the Installation Server is called, it checks if there is an &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources. &quot;&gt;EUF&lt;/span&gt; matching the pincode. If yes, the script checks the age of the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources. &quot;&gt;EUF&lt;/span&gt;. If the file is older than a predefined time limit (e.g., 5 minutes), an error message is generated and processing stops.
# If the file age is OK, the script (See [[Enterprise_Provisioning_-_Appendix|Appendix]] for further instructions for implementing this phase)
** Generates User Info package (&quot;Via package&quot; bootstrapping strategy is recommended).
** Produces a list of required packages from the dependencies of the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise Package: Contains the Enterprise Configurator and also contains a reference to all other required packages.&quot;&gt;EP&lt;/span&gt;.
** Creates a temporary repository which contains all the required packages and the User Info package.
** Creates an install file which contains 
*** The User Info package and
*** The URL to the local repository on the device.
** Generates a zip file from the repository and the install file
# The script outputs the zip file with appropriate content type definitions. See [[Enterprise_Provisioning_-_Appendix|Appendix]].
# User connects the device to the desktop computer via USB cable.
# User copies the zip file to her device.
# At the device, the user extracts the repository and the install file from the zip file.
# User taps the install file to invoke the Application Manager, which installs the User Info package and all the packages in the dependency chain.

=== Components ===

* Web application (CGI script) running at Enrollment server
* Web application (CGI script) running at Installation server

=== Firewall rules ===

Same as in previous two strategies, depending on which server topology is used

=== Security considerations ===

* None

=== Pros and cons ===

* + Enables provisioning at remote locations
* + Fairly simple to use
* - Can be fairly laborious to implement
* - Presumably slow and storage space consuming

== Summary ==

Here we looked at the tried out solutions for provisioning but some readers might be interested to read our [[Enterprise Provisioning - Strategy Variations|alternative solution considerations]] or about [[Enterprise Provisioning - Future_Prospects|future prospects for provisioning]]. If on the other hand these solutions suited already your needs you can move onward to [[Enterprise Provisioning Summary|provisioning summary]].

[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>Enterprise Configurator</title>
    <id>4152</id>
    <revision>
      <id>41576</id>
      <timestamp>2011-02-02T10:20:51Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add links</comment>
      <text xml:space="preserve">Epconf helps to configure software components that are commonly used in an enterprise environment (e.g. at companies).

Supported devices:
* [[Nokia N900|N900]] ([[Open development/Maemo roadmap/Fremantle|Fremantle]])

It supports the installation and modification of:
* Browser bookmark thumbnail images: &lt;code&gt;thumbnail_*&lt;/code&gt; files.
* Wifi root certificates: &lt;code&gt;*.crt&lt;/code&gt; files are used when authenticating via WLAN.
* GConf schemas: &lt;code&gt;*.schemas&lt;/code&gt; files are registered with GConf.
* VCard files: &lt;code&gt;*.vcard&lt;/code&gt; files are added to the contact list.
* Custom actions: Custom configuration can be done with epconftool in-files (&lt;code&gt;*.epin&lt;/code&gt;).

The above mentioned input files are taken from the &lt;code&gt;/usr/share/epconf-sets/SET&lt;/code&gt; directory.

With epconf in-files you can configure:
* Arbitrary XML files
* GConf values
* Anything with script files

If an epconf in-file file matches &lt;code&gt;*.do-as-user.epin&lt;/code&gt; then the
operations described by it will be executed as the user &lt;code&gt;'user'&lt;/code&gt;.
For more information about in-files, please refer to epconftool. See [[#epconftool|the epconftool section]] for more details about epconftool in-files.

== Command line syntax ==

&lt;pre&gt;
usage: epconf [debug] macro file_name ACTION SET[:GROUP[:ELEMENT]]...
    debug            Enables debug output.
    macro            Uses the specified macro file instead of the default one.
    ACTION           May be either install or uninstall.
    SET              Name of the configuration set to process.
                     It may be &quot;all&quot; which means &quot;Process all the available set&quot;.
                     &quot;all&quot; cannot be mixed with other sets!
    GROUP            Can be one of
                         thumbnail: Process thumbnail_* thumbnails
                         crt: Process *.crt certificates
                         vcard: Process *.vcard vCards.
                         schemas: Process *.schemas GConf schemas
                         epin: Process *.epin epconftool in-files
                     If it is not given then all the groups are processed.
    ELEMENT          This can be used only with epin group.
                     Only the infile with the given name willbe processed.
&lt;/pre&gt;

The following example pulls the input files from &lt;code&gt;/usr/share/enterprise_pilot/my_set&lt;/code&gt;:

 epconf macro /home/user/macro.xml install my_set

The following example processes
* &lt;code&gt;best_in*.epin&lt;/code&gt; from &lt;code&gt;/usr/share/enterprise_pilot/my_set&lt;/code&gt; then
* &lt;code&gt;*.vcard&lt;/code&gt; from &lt;code&gt;/usr/share/enterprise_pilot/your_set&lt;/code&gt; and finally
* all supported files from &lt;code&gt;/usr/share/enterprise_pilot/their_set&lt;/code&gt;:

 epconf install my_set:epin:best_in your_set:vcard their_set

== epconftool ==

Epconftool processes in-files that can be used for the creation of sophisticated configuration
scripts.

=== Command line syntax ===

&lt;pre&gt;
usage: epconftool [-f] [-s] [-d] { -x | -l } macro-file { -i | -u } in-files...

  -i    Install using the given input files.
  -u    Uninstall using the given input files.
  -x    Macro file in XML format
  -l    Macro file in plain key-value format
  -f    Force. If the process fails at one input file it goes on to the next one.
        Without this option (default), a bad input file stops the entire process
        and the subsequent input files are not processed.
  -s    Do simple macro substitution (a macro in a macro is not processed).
  -d    Print debug output to stderr.
        Either -i or -u can be used. They cannot be mixed.
&lt;/pre&gt;

Built-in macros:
* &lt;code&gt;TIME_EPOCH&lt;/code&gt;: The seconds elapsed since 1970.01.01 (see 'man 2 time').
* &lt;code&gt;INFILE_DIR&lt;/code&gt;:  Absolute path of the directory containing the in-file being processed.
* &lt;code&gt;MARKER&lt;/code&gt;: This may be used e.g. in XML in-files. If a node_path node contains this as a text field anywhere in its subtree, then that node is removed during un-installation. Otherwise it is not removed!

=== Macro file ===

The MACRO file contains usernames, passwords, etc. Each value in this file has a key associated with it. E.g., the WLAN_username key may have the value Jack. The keys of the MACRO file can be used in in-files as &lt;code&gt;%key_name%&lt;/code&gt;. E.g., &lt;code&gt;%WLAN_username%&lt;/code&gt;.

Two kinds of macro files are supported:
* XML
* Key-value list

==== XML ====

Let's take the following as an example:

&lt;source lang=&quot;xml&quot;&gt;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
&lt;CONF&gt;
  &lt;NAME&gt;Joe Buck&lt;/NAME&gt;
  &lt;REMOTE_ACCESS&gt;
    &lt;LOGIN&gt;joebuck&lt;/LOGIN&gt;
  &lt;/REMOTE_ACCESS&gt;
  &lt;SIP&gt;
    &lt;NAME&gt;ext-joe.4.buck&lt;/NAME&gt;
    &lt;PASS&gt;98765876&lt;/PASS&gt;
  &lt;/SIP&gt;
  &lt;WLAN&gt;
    &lt;RESTAURANT&gt;
      &lt;LOGIN&gt;joejoe&lt;/LOGIN&gt;
      &lt;PASS&gt;buckybuck&lt;/PASS&gt;
    &lt;/RESTAURANT&gt;
  &lt;/WLAN&gt;
  &lt;EMAIL&gt;
    &lt;ADDRESS&gt;ext-joe.4.buck@company.org&lt;/ADDRESS&gt;
  &lt;/EMAIL&gt;
&lt;/CONF&gt;
&lt;/source&gt;

When using the above example macro file, the macro values are the text nodes and the macro names are formed formed the tag names. For example, the &lt;code&gt;%CONF_REMOTE_ACCESS_LOGIN%&lt;/code&gt; macro refers to the value &lt;code&gt;&quot;joebuck&quot;&lt;/code&gt;.

==== Key-value list ====

Let's take the following as an example:
&lt;pre&gt;
&quot;CONF_NAME&quot; &quot;Joe Buck&quot;
&quot;CONF_REMOTE_ACCESS_LOGIN&quot; &quot;joebuck&quot;
&quot;CONF_SIP_NAME&quot; &quot;ext-joe.4.buck&quot;
&quot;CONF_SIP_PASS&quot; &quot;98765876&quot;
&quot;CONF_WLAN_RESTAURANT_LOGIN&quot; &quot;joejoe&quot;
&quot;CONF_WLAN_RESTAURANT_PASS&quot; &quot;buckybuck&quot;
&quot;CONF_EMAIL_ADDRESS&quot; &quot;ext-joe.4.buck@company.org&quot;
&lt;/pre&gt;

When using the above example macro file, the &lt;code&gt;%CONF_REMOTE_ACCESS_LOGIN%&lt;/code&gt; macro refers to the value &quot;joebuck&quot;.

If the &quot; (double quote) character appears in a key or a value, then it must be escaped. For example, &quot;Norton said \&quot;Howdy!\&quot; and then he left.&quot;. Same for the \ (backslash) character. For example, &quot;\\&quot; represents a single backslash character.

=== Input Template file (in-file) ===

In-files have the following general format:

&lt;pre&gt;
[CONTROL]
# Comment
type:gconf|xml|shell
...

[DATA]
...
...%MACRO%...
...
&lt;/pre&gt;

The following lines are ignored:
* empty lines: lines with only whitespace or newline
* comments: lines whose first non-whitespace character is hash-mark (&quot;#&quot;)

The tag (e.g., &quot;type&quot;) and its value (e.g., &quot;xml&quot;) in the &lt;code&gt;CONTROL&lt;/code&gt; section are
separated by a single colon character. The &quot;type&quot; tag is mandatory, and it must be the first non-ignored line in the &lt;code&gt;CONTROL&lt;/code&gt; section.

Every &lt;code&gt;%MACRO%&lt;/code&gt; macro is replaced with the matching value from the &lt;code&gt;MACRO&lt;/code&gt; file during the installation/un-installation process. Macro substitution
is applied to the entire in-file (e.g. if the value of &lt;code&gt;MARKER&lt;/code&gt; is &quot;Hello Hippo&quot; then &lt;code&gt;[CON%MARKER%TROL]&lt;/code&gt; is replaced with &lt;code&gt;[CONHello HippoTROL]&lt;/code&gt;).

No recursive macro substitution is done. For example, if macro &lt;code&gt;%APPLE%&lt;/code&gt; has the value &lt;code&gt;&quot;Hello %WORLD%&quot;&lt;/code&gt; then the &lt;code&gt;%WORLD&quot;&lt;/code&gt; is not considered as a macro for substitution.

==== GConf ====

This in-file is used to add/remove GConf values. See [2] for an example!

Syntax:
&lt;pre&gt;
[CONTROL]
type:gconf

[DATA]
dir:/path/to/gconf/directory
behavior:type:key_name:value
behavior:type-list:key_name:[value,value,...]
...
&lt;/pre&gt;
The &lt;code&gt;&quot;type&quot;&lt;/code&gt; tag tells that it's a gconf in-file. The first line in the DATA section is the gconf directory that we want to configure. Subsequent lines describe key/value pairs for GConf keys, whitespaces are not allowed. Value lists are also supported. In this case, the type name is suffixed with the &lt;code&gt;&quot;-list&quot;&lt;/code&gt; word and the value is a comma separated list enclosed in brackets. The behavior can be one of the following:
* &lt;code&gt;replace&lt;/code&gt;: If the key already exists, it is replaced.
* &lt;code&gt;merge&lt;/code&gt;: Only for value lists. If the key already exists, it is merged with the specified one.
* &lt;code&gt;keepold&lt;/code&gt;: If the key already exists, it is not changed.

Installation:
* In the &lt;code&gt;DATA&lt;/code&gt; section, all the &lt;code&gt;%MACRO%&lt;/code&gt; tags are replaced with the proper values.
* If the gconf directory &lt;code&gt;/path/to/gconf/directory&lt;/code&gt; does not exist, it is created and populated with the provided key/value pairs.
* If the gconf directory &lt;code&gt;/path/to/gconf/directory&lt;/code&gt; exists:
** If a provided key does not exist, it is created and its value is set.
** If a provided key exists, the action taken depends on the specified behavior.

Uninstallation:
* Simple values: The key is deleted.
* List values: If behavior is &lt;code&gt;&quot;merge&quot;&lt;/code&gt; only the values given in the in-file are removed from the list. For other behaviors, the entire key is deleted.
* If after removing the keys, the entire &lt;code&gt;/path/to/gconf/directory&lt;/code&gt; directory is deleted from gconf if it has become empty.

==== XML ====

This in-file is used to add/remove nodes in XML files, such as bookmarks and Pidgin accounts.

Syntax:
&lt;pre&gt;
[CONTROL]
type:xml
target:/path/to/the/xml/file/that/we/want/to/modify/or/create.xml
node_path:/xml/path/to/a/node
node_id_path:/xml/path/to/the/id/node /xml/path/to/another/id/node
remove_by:id|marker
if_exists:replace|keepold

[DATA]
A complete XML document...
&lt;/pre&gt;
* &lt;code&gt;type&lt;/code&gt;: Tells that it's an XML in-file.
* &lt;code&gt;target&lt;/code&gt;: The file system path of the final output. If the file exists, it is also used as input.
* &lt;code&gt;node_path&lt;/code&gt;: It is an XML-path that defines the nodes in the in-file &lt;code&gt;DATA&lt;/code&gt; section that will be added to the target file.
* &lt;code&gt;node_id_path&lt;/code&gt;: It is a spaces and/or tabs separated list of XML-paths. These paths are combined and used as the primary-key to identify duplicate/existing entries.
* &lt;code&gt;if_exists&lt;/code&gt;: Optional. Default is &lt;code&gt;&quot;keepold&quot;&lt;/code&gt;. Defines the behavior for installation. When set to &lt;code&gt;&quot;replace&quot;&lt;/code&gt;, existing nodes are replaced with the ones in the &lt;code&gt;DATA&lt;/code&gt; section. When set to &lt;code&gt;&quot;keepold&quot;&lt;/code&gt;, existing nodes are left intact.
* &lt;code&gt;remove_by&lt;/code&gt;: Optional. Default is &lt;code&gt;&quot;marker&quot;&lt;/code&gt;. Defines the behavior for uninstallation. When set to &lt;code&gt;&quot;id&quot;&lt;/code&gt;, nodes that match the &lt;code&gt;node_path/node_id_path&lt;/code&gt; are removed. When set to &lt;code&gt;&quot;marker&quot;&lt;/code&gt;, nodes that contain the &lt;code&gt;%MARKER%&lt;/code&gt; value in any of their (or children) attributes or children nodes, are removed.

All XML-paths use the X-Path syntax, see http://www.w3schools.com/XPath/default.asp, http://www.w3.org/TR/xpath20/, http://xmlsoft.org/html/libxml-xpath.html.

The &lt;code&gt;DATA&lt;/code&gt; section contains a complete XML document.

Installation:
* In the &lt;code&gt;DATA&lt;/code&gt; section, all the &lt;code&gt;%MACRO%&lt;/code&gt; tags are replaced with the proper values.
* If the target file does not exist, it is created with the output of the previous steps, which is the processed &lt;code&gt;DATA&lt;/code&gt; section (the un-macroed &lt;code&gt;DATA&lt;/code&gt; section).
* If the target file exists:
** Based on the &lt;code&gt;node_id_path&lt;/code&gt; and &lt;code&gt;node_path&lt;/code&gt;, nodes from the processed &lt;code&gt;DATA&lt;/code&gt; section are added to the target file. If a node already exists (based on &lt;code&gt;node_id_path&lt;/code&gt;), the node is not added.

Uninstallation:
* If &lt;code&gt;remove_by&lt;/code&gt; is &lt;code&gt;&quot;marker&quot;&lt;/code&gt;: Delete every node (based on &lt;code&gt;node_path&lt;/code&gt;), from the target file that has a text element anywhere in it with the &lt;code&gt;%MARKER%&lt;/code&gt; macro. Therefore, you MUST add the &lt;code&gt;%MARKER%&lt;/code&gt; macro somewhere in the nodes that you want to be removed later.
* If &lt;code&gt;remove_by&lt;/code&gt; is &lt;code&gt;&quot;id&quot;&lt;/code&gt;: Delete every node (based on &lt;code&gt;node_path&lt;/code&gt;), from the target file that has the same id value (based on &lt;code&gt;node_id_path&lt;/code&gt;) as the XML in the &lt;code&gt;DATA&lt;/code&gt; section.

==== shell ====

Shell in-files are a flexible way to create custom configurator scripts.

Syntax:
&lt;pre&gt;
[CONTROL]
type:shell

[DATA]
install:
commands
commands
commands
...

uninstall:
commands
commands
commands
...
&lt;/pre&gt;

The &lt;code&gt;DATA&lt;/code&gt; section consists of and &lt;code&gt;&quot;install&quot;&lt;/code&gt; and an &lt;code&gt;&quot;uninstall&quot;&lt;/code&gt; subsection. The command lines below the subsections constitute the content of the script. A script file is created with that content and is executed. So basically, you can write, e.g., shell scripts, perl and python scripts, etc.. Command lines cannot start with &lt;code&gt;&quot;install:&quot;&lt;/code&gt; or &lt;code&gt;&quot;uninstall:&quot;&lt;/code&gt;!

[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>Enterprise Deployment Guide</title>
    <id>4143</id>
    <revision>
      <id>41388</id>
      <timestamp>2011-01-25T08:50:41Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">This document is an unofficial guide as the [[Nokia N900]] is not categorized as an enterprise device.

== Table of contents ==

* [[Enterprise_Deployment_Guide|N900 Enterprise Deployment Guide]]
** [[Enterprise_-_Manual_Installation_and_Configuration|Enterprise Manual Installation and Configuration]]
** [[Enterprise_Provisioning|Enterprise Provisioning]]
*** [[Enterprise_-_Tried_and_tested_provisioning_strategies|Tried and tested provisioning strategies]]
*** [[Enterprise_Provisioning_-_Strategy_Variations|Provisioning Strategy Variations]]
*** [[Enterprise_Provisioning_-_Appendix|Provisioning Appendix]]
*** [[Enterprise_Provisioning_-_Future_Prospects|Provisioning Future Prospects]]
*** [[Enterprise_Provisioning_Summary|Enterprise Provisioning Summary]]
** [[Enterprise_Device_Configuration|Enterprise Device configuration]]
*** [[Enterprise_Configurator|Enterprise Configurator]]

== N900 and Maemo ==
The Nokia N900 is a powerful mobile computer with a phone feature. One area where the capabilities of N900 can be harnessed is the Enterprise environment. The device can be configured easily for providing access to corporate services and resources like:
* email
* intranet web pages
* instant messenger
* VoIP services

The open architecture of the Maemo platform enables the integration of such enterprise services with minimal effort.

== Purpose ==
This document describes the steps involved in deploying Nokia N900 in Enterprise environment. The primary objective of deploying the device in Enterprise environment is to improve the productivity of users in their work life.

== Scope of document ==
The document gives examples of software that can be installed and configured on the N900 for the Enterprise environment. Additionally the document describes the infrastructure to be put in place for installing the device side software.

== Enterprise environment ==

Enterprise environments vary greatly and it is impossible to give a description that fits any company. However, most companies utilize a rather similar strategy in controlling access to their networks and the following description is rather close to most common solutions.

[[Image:EDG_Typical_Enterprise_network_environment.png|thumb|900px|alt=Diagram of a typical enterprise network environment|Figure 1: Typical Enterprise network environment]]

Figure 1 describes a typical arrangement of networking components at an enterprise. The picture is simplified and only components that are relevant for Enterprise provisioning are displayed. 

Typically, corporate intranet is not directly accessible via WLAN connection due to obvious security implications. Instead, WLAN connections allow access to some &quot;lobby&quot; network. These lobby networks might or might not allow access to the public Internet. Lobby networks might be public, or they might be protected using some WLAN encryption technology.

The arrangement shown in Figure 1 consists of two different kinds of lobby networks and an access gateway between these. In addition, there is usually a 3G access network. Arrangements in different enterprises may vary, but the picture shows typical ways a device can be connected. Relevant characteristics of these networks are
* Public access network:
** Access is public, features are limited
** No connection to public Internet
** Mostly used for VPN connections to corporate intranet
** Might offer access to public Internet via authenticating gateway
* Restricted access network
** Access is restricted, features are unlimited
** Connection to public Internet
** Uses some WLAN encryption technology
** Device is unable to use the network until encryption keys are delivered
* 3G network
** Unrestricted access to public Internet
** No simultaneous access to WLAN networks above

== Provisioning ==

Provisioning strategies are ways to get the device configured for enterprise use so that the user doesn't have to [[Enterprise_-_Manual_Installation_and_Configuration|manually install and configure]] all the software on the device.

The selection of the provisioning strategy has a strong influence in every subsequent step and it is best to [[Enterprise_Provisioning|start by reading the provisioning introduction]] which is a highly recommended reading for first time readers to understand our terminology better.

[[Category:Power users]]
[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>Enterprise Device Configuration</title>
    <id>4151</id>
    <revision>
      <id>46042</id>
      <timestamp>2011-12-15T06:33:44Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 46013 by [[Special:Contributions/114.79.28.10|114.79.28.10]] ([[User talk:114.79.28.10|Talk]]) vandalism/spam</comment>
      <text xml:space="preserve">The user device is configured using the following components:
* User configuration file: Enterprise User Configuration File (EUF)
* Configuration package: Enterprise Package (EP)

== Enterprise User Configuration File ==

The &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources.&quot;&gt;EUF&lt;/span&gt; is a result of the provisioning phase of the installation (recall [[Enterprise_-_Tried_and_tested_provisioning_strategies|the tried and tested]] or [[Enterprise_Provisioning_-_Strategy_Variations|the alternate]] provisioning strategies depending on your environment setup).
It may contain, e.g., user specific information. It is a simple XML file. We use the following as an example:

&lt;source lang=&quot;xml&quot;&gt;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
&lt;CONF&gt;
  &lt;NAME&gt;Joe Buck&lt;/NAME&gt;
  &lt;REMOTE_ACCESS&gt;
    &lt;LOGIN&gt;joebuck&lt;/LOGIN&gt;
  &lt;/REMOTE_ACCESS&gt;
  &lt;SIP&gt;
    &lt;NAME&gt;ext-joe.4.buck&lt;/NAME&gt;
    &lt;PASS&gt;98765876&lt;/PASS&gt;
  &lt;/SIP&gt;
  &lt;WLAN&gt;
    &lt;RESTAURANT&gt;
      &lt;LOGIN&gt;joejoe&lt;/LOGIN&gt;
      &lt;PASS&gt;buckybuck&lt;/PASS&gt;
    &lt;/RESTAURANT&gt;
  &lt;/WLAN&gt;
  &lt;EMAIL&gt;
    &lt;ADDRESS&gt;ext-joe.4.buck@company.org&lt;/ADDRESS&gt;
  &lt;/EMAIL&gt;
&lt;/CONF&gt;
&lt;/source&gt;

This file is used by configuration scripts and programs to automatically fill-in e-mail addresses, passwords, etc. in the configuration files of the supported
applications. This way, after the installation of the Enterprise Package, the user will need to do only the minimal (if any) amount of manual setup.

In our examples, this configuration file is assumed to be in &lt;code&gt;/home/user/MyDocs/.documents/EnterpriseConfig.xml&lt;/code&gt; after the provisioning.

== Enterprise Package ==

The &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise Package: Contains the Enterprise Configurator and also contains a reference to all other required packages.&quot;&gt;EP&lt;/span&gt; is an installable application package that contains the following main parts:
* List of included applications
* Configuration scripts and configuration data: Used to configure the supported settings and applications on the device.

In this section, we create a simple &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise Package: Contains the Enterprise Configurator and also contains a reference to all other required packages.&quot;&gt;EP&lt;/span&gt; that you can soon download from carage. This example can be used as a template to create your own customized package.

=== Adding applications ===

The &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise Package: Contains the Enterprise Configurator and also contains a reference to all other required packages.&quot;&gt;EP&lt;/span&gt; may contain references to applications that are automatically installed when &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise Package: Contains the Enterprise Configurator and also contains a reference to all other required packages.&quot;&gt;EP&lt;/span&gt; is installed.

To add an application you need to do the following steps:
# Make sure that a Debian package is available of the application.
# Make sure that the repository where the debian package is found is accessible via the Application Manager during the installation of the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise Package: Contains the Enterprise Configurator and also contains a reference to all other required packages.&quot;&gt;EP&lt;/span&gt;.
# Edit the debian/control file of &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise Package: Contains the Enterprise Configurator and also contains a reference to all other required packages.&quot;&gt;EP&lt;/span&gt;. For example, to add an application called &quot;vpngui&quot; you will have a control file similar to this:

&lt;pre&gt;
Source: ep-example
Section: user/office
Priority: optional
Maintainer: Joe Buck &lt;joe.buck@net.org&gt;
Build-Depends: debhelper (&gt;= 4.0.0), maemo-optify
Standards-Version: 3.6.0

Package: ep-example
Architecture: all
Section: user/office
Depends: ${shlibs:Depends}, rdesktop-maemo (&gt;= 1.6.0-2maemo1), rdesktop-m5ui (&gt;= 1.0), enterprise-configurator (&gt;= 1.0), vpngui (&gt;= 5.5.0), vpnc (&gt;= 0.5.9-1m6)
Description: Enterprise application package for Joe Buck and his company.
XB-Maemo-Display-Name: Joe Buck's Enterprise Package
&lt;/pre&gt;

[http://www.debian.org/doc/debian-policy/ch-controlfields.html Debian Policy Manual: Chapter 5 - Control files and their fields] has more information about creating Debian control files.

=== Configuring applications ===

When you look in the data directory of the example, you will see several different files.

The configurator uses a utility called enterprise-configurator. Here we demonstrate its usage by some practical examples.

This package contains command line utilities that simplify some common tasks.
One major component is the epconf program. It is called from the debian/postinst, preinst and prerm scripts (see [http://www.debian.org/doc/debian-policy/ch-maintainerscripts.html Debian Policy Manual: Chapter 6 - Package maintainer scripts and installation procedure] for more information about Debian maintainer scripts).

The files from the data directory are installed under &lt;code&gt;/usr/share/epconf-sets/ep-example&lt;/code&gt; (see &lt;code&gt;data/Makefile.am&lt;/code&gt;). The &lt;code&gt;epconf&lt;/code&gt; utility processes them, for example, after installation based on debian/postinst:

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
epconf macro /home/user/MyDocs/.documents/EnterpriseConfig.xml install ep-example
exit 0
&lt;/source&gt;

The epconf utility then processes the following files in &lt;code&gt;/usr/share/epconf-sets/ep-example&lt;/code&gt;:

* &lt;code&gt;clean-user-data.sh&lt;/code&gt;: This script is called when the users requests to clear the user data. It should remove user specific configuration files and sensitive data related to the applications that &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise Package: Contains the Enterprise Configurator and also contains a reference to all other required packages.&quot;&gt;EP&lt;/span&gt; is responsible for.
* &lt;code&gt;process-list&lt;/code&gt;: A list of processes that have to be stopped when &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise Package: Contains the Enterprise Configurator and also contains a reference to all other required packages.&quot;&gt;EP&lt;/span&gt; is being configured. For example, if &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise Package: Contains the Enterprise Configurator and also contains a reference to all other required packages.&quot;&gt;EP&lt;/span&gt; configures an IM client, probably the IM client should be stopped before the configuration starts. Every line in this file contains a process name as seen with the &quot;ps&quot; command.
* &lt;code&gt;process-list.stop&lt;/code&gt;: This script is called if any of the processes listed in process-list is found running during configuration. It is responsible to stop those processes.

The device configuration is done with the following files:
   
* &lt;code&gt;*.epin&lt;/code&gt;: These are in-files for the epconftool utility used by epconf.
* &lt;code&gt;*.crt&lt;/code&gt;: These must be certificates in DER format. They are registered in the device for WLAN authentication.
* &lt;code&gt;*.vcard&lt;/code&gt;: Every VCard file is inserted into the Contacts list.
* &lt;code&gt;thumbnail_*&lt;/code&gt;: These image files are copied to the device and can be used in, e.g., Web bookmarks for thumbnail images (see [[Enterprise_Device_Configuration#Browser_Bookmarks|Browser Bookmarks]] for more information).

Epconf has two main arguments, &lt;code&gt;&quot;install&quot;&lt;/code&gt; and &lt;code&gt;&quot;uninstall&quot;&lt;/code&gt;, that do the configuration and de-configuration respectively. Epconf processes these above files during both installation and uninstallation.

Epconf in-files (&lt;code&gt;*.epin&lt;/code&gt;) are special. In these, you can refer to text node values in the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources.&quot;&gt;EUF&lt;/span&gt;. For example, based on our sample &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources.&quot;&gt;EUF&lt;/span&gt; above, if &lt;code&gt;&quot;%CONF_SIP_NAME%&quot;&lt;/code&gt; appears anywhere in an in-file, it is replaced by epconf with the text &lt;code&gt;&quot;ext-joe.4.buck&quot;&lt;/code&gt; (both without the double quotes). This is how the values in the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources.&quot;&gt;EUF&lt;/span&gt; can be used to configure the device.

=== Configuration examples ===

The configurations below are included in our example.

==== Contacts ====

Contacts can be added to the contact list by providing the corresponding VCards in the data directory of &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise Package: Contains the Enterprise Configurator and also contains a reference to all other required packages.&quot;&gt;EP&lt;/span&gt;.
An FN field must exist in each VCard that serves as an identifier. During installation, this FN field is used to detect duplicate contacts. During uninstallation, it is used to find the contact to be deleted.

For example:
&lt;pre&gt;
BEGIN:VCARD
VERSION:3.0
N:Helpline;Company
FN:Company Emergency Helpline
ORG:Company Co.
TEL;TYPE=WORK:+456789098765
END:VCARD
&lt;/pre&gt;

During uninstallation, all the contacts that have the &quot;Company Emergency Helpline&quot; FN field are deleted.

==== Desktop shortcuts ====

Desktop shortcuts are small icons on the desktop screen of the device. These are created by modifying the GConf database. The configuration file that is responsible for this in our example is &lt;code&gt;data/shortcuts.do-as-user.epin&lt;/code&gt;:

&lt;pre&gt;
[CONTROL]
type:gconf

[DATA]
dir:/apps/osso/hildon-home/bookmarks/company
replace:string:icon:%INFILE_DIR%/company_160x96.png
replace:string:label:Company
replace:string:url:http://www.company.com

dir:/apps/osso/hildon-home/bookmarks/company-support
replace:string:icon:%INFILE_DIR%/company_160x96.png
replace:string:label:Support
replace:string:url:http://www.company.com/support

dir:/apps/osso/hildon-home
merge:string-list:bookmark-shortcuts:[company,company-support]
&lt;/pre&gt;

This is a GConf in-file that is processed by &lt;code&gt;epconf&lt;/code&gt;. The &lt;code&gt;CONTROL&lt;/code&gt; section tells that it contains GConf-related settings. The &lt;code&gt;DATA&lt;/code&gt; section describes the GConf directories and their nodes that are modified during installation/uninstallation.

This example creates two shortcuts to two web pages. The &lt;code&gt;%INFILE_DIR%&lt;/code&gt; macro is replaced by the &lt;code&gt;/usr/share/epconf-sets/ep-example&lt;/code&gt; string. So, the icons are taken from &lt;code&gt;/usr/share/epconf-sets/ep-example/company_160x96.png&lt;/code&gt;. Those icons are provided in the data directory of the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise Package: Contains the Enterprise Configurator and also contains a reference to all other required packages.&quot;&gt;EP&lt;/span&gt; package and are installed to /usr/share/epconf-sets/ep-example when the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise Package: Contains the Enterprise Configurator and also contains a reference to all other required packages.&quot;&gt;EP&lt;/span&gt; is installed.

==== WLAN ====

WLAN access points are also configured by using gconf in-files. The data/wlan.do-as-user.epin configures our example WLAN AP. The new AP will be available in the list of Access Points by the name &lt;code&gt;&quot;COMPANY_RESTAURANT&quot;&lt;/code&gt;:

&lt;pre&gt;
[CONTROL]
type:gconf

[DATA]
dir:/system/osso/connectivity/IAP/COMPANY_RESTAURANT
replace:int:EAP_default_type:25
replace:int:proxy_https_port:0
replace:int:proxy_http_port:0
replace:string:type:WLAN_INFRA
replace:string:ipv4_address:0.0.0.0
replace:string:EAP_manual_username:anonymous@anon1
replace:bool:ipv4_autodns:true
replace:int:EAP_GSMSIM_max_reauth_count:100
replace:string:ipv4_gateway:0.0.0.0
replace:string:proxytype:NONE
replace:int:wlan_powersave:4
replace:string:autoconf_url:
replace:string:proxy_https:
replace:string:EAP_MSCHAPV2_username:%CONF_WLAN_RESTAURANT_LOGIN%
replace:bool:TLS_server_authenticates_client_policy_in_client:false
replace:string:wlan_security:WPA_EAP
replace:string:proxy_rtsp:
replace:bool:EAP_use_manual_username:true
replace:int:proxy_ftp_port:0
replace:int:proxy_rtsp_port:0
replace:int-list:wlan_ssid:[87,73,86,79]
replace:bool:EAP_wpa2_only_mode:false
replace:int:wlan_adhoc_channel:0
replace:string:ipv4_dns1:0.0.0.0
replace:string:ipv4_dns2:0.0.0.0
replace:string:proxy_http:
replace:string:ipv4_netmask:0.0.0.0
replace:int:PEAP_tunneled_eap_type:26
replace:int-list:omit_proxy:[]
replace:string:ipv4_type:AUTO
replace:bool:wlan_hidden:false
replace:string:EAP_MSCHAPV2_password:%CONF_WLAN_RESTAURANT_PASS%
replace:int:EAP_MSCHAPV2_password_prompt:0
replace:string:proxy_ftp:
&lt;/pre&gt;

Here the &lt;code&gt;%CONF_WLAN_RESTAURANT_USER%&lt;/code&gt; macro will be automatically replaced by epconf with the value of the &lt;code&gt;/CONF/WLAN/RESTAURANT/USER&lt;/code&gt; node from the &lt;code&gt;/home/user/MyDocs/.documents/EnterpriseConfig.xml&lt;/code&gt; file. The &lt;code&gt;%CONF_WLAN_RESTAURANT_PASS%&lt;/code&gt; is processed similarly.

Our WLAN needs also a root certificate used for authentication. It is in &lt;code&gt;data/wlan.crt&lt;/code&gt; and it is automatically installed to the right place by epconf so, no special in-file is necessary.

==== Mail for Exchange ====

The Mail for Exchange (MfE) account is not fully configured due to the unavailability of the user's password. Nevertheless, the &lt;code&gt;data/activesync.do-as-user.epin&lt;/code&gt; fills in most of the fields of the MfE setup wizard so, the user needs to provide only her password:

&lt;pre&gt;
[CONTROL]
type:gconf

[DATA]
dir:/apps/activesync/preconfigure
replace:string:credentials/username:%CONF_REMOTE_ACCESS_LOGIN%
replace:string:email/email_addr:%CONF_EMAIL_ADDRESS%
replace:string:connection/exchange_server:mail.company.org
replace:string:credentials/domain:COMPANY
replace:int:connection/port:443
replace:int:contacts/first_sync:1
replace:bool:connection/secure_connection:true
replace:bool:connection/sync/mail:true
replace:bool:connection/sync/contacts:true
replace:bool:connection/sync/calendar:true
&lt;/pre&gt;

Here the &lt;code&gt;%CONF_REMOTE_ACCESS_LOGIN%&lt;/code&gt; macro will be automatically replaced by epconf with the value of the &lt;code&gt;/CONF/REMOTE_ACCESS/LOGIN&lt;/code&gt; node from the &lt;code&gt;/home/user/MyDocs/.documents/EnterpriseConfig.xml&lt;/code&gt; file. The &lt;code&gt;%CONF_EMAIL_ADDRESS%&lt;/code&gt; is processed similarly.

==== SIP Account ====

A SIP VoIP account is created by &lt;code&gt;data/im-sip.do-as-user.epin&lt;/code&gt;. It is an in-file that contains two shell scripts in its &lt;code&gt;DATA&lt;/code&gt; section. One for installation and
one for uninstallation. The scripts after the &lt;code&gt;&quot;install:&lt;/code&gt;&quot; mark is executed when epconf is invoked with the &lt;code&gt;&quot;install&quot;&lt;/code&gt; argument. Similarly, the script after the &lt;code&gt;&quot;uninstall:&lt;/code&gt;&quot; mark is executed during uninstallation (i.e. de-configuration).

==== Browser Bookmarks ====

Browser bookmarks are stored in an XML file. Modifying XML files is a complicated task so, &lt;code&gt;epconf&lt;/code&gt; provides a way to do it relatively easily with in-files. In our examples, web browser bookmarks are configured by &lt;code&gt;data/bookmarks.do-as-user.epin&lt;/code&gt;:

&lt;pre&gt;
[CONTROL]
type:xml
target:/home/user/.bookmarks/MyBookmarks.xml
node_path:/xbel/bookmark
node_id_path:./title
if_exists:replace

[DATA]
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;DOCTYPE xbel PUBLIC &quot;+//IDN python.org//DTD XML Bookmark Exchange Language 1.0//EN//XML&quot; &quot;http://www.python.org/topics/xml/dtds/xbel-1.0.dtd&quot;&gt;
&lt;xbel version=&quot;1.0&quot;&gt;
  &lt;info&gt;
    &lt;metadata&gt;
      &lt;default_folder&gt;yes&lt;/default_folder&gt;
    &lt;/metadata&gt;
  &lt;/info&gt;
  &lt;title&gt;My bookmarks&lt;/title&gt;
  &lt;info&gt;
    &lt;metadata&gt;
      &lt;time_visited&gt;%TIME_EPOCH%&lt;/time_visited&gt;
      &lt;time_added&gt;%TIME_EPOCH%&lt;/time_added&gt;
      &lt;operator_bookmark&gt;1&lt;/operator_bookmark&gt;
      &lt;deleted&gt;0&lt;/deleted&gt;
    &lt;/metadata&gt;
  &lt;/info&gt;
  &lt;bookmark href=&quot;https://mail.company.com&quot; favicon=&quot;&quot; thumbnail=&quot;thumbnail_company.png&quot;&gt;
    &lt;title&gt;Company Email&lt;/title&gt;
    &lt;desc&gt;%MARKER%&lt;/desc&gt;
  &lt;/bookmark&gt;
  &lt;bookmark href=&quot;company.com/&quot; favicon=&quot;&quot; thumbnail=&quot;thumbnail_company.png&quot;&gt;
    &lt;title&gt;Company Home Page&lt;/title&gt;
    &lt;desc&gt;%MARKER%&lt;/desc&gt;
  &lt;/bookmark&gt;
&lt;/xbel&gt;
&lt;/pre&gt;

The &lt;code&gt;&quot;target&quot;&lt;/code&gt; tag in the &lt;code&gt;CONTROL&lt;/code&gt; section tells the location of the bookmark file on the device. The &lt;code&gt;&quot;node_path&quot;&lt;/code&gt; identifies (by an XPath expression) the nodes that are to be inserted. The &lt;code&gt;node_id_path&lt;/code&gt; (also an XPath expression) tells what part of the nodes (identified by &lt;code&gt;node_id_path&lt;/code&gt;) should be used for detection duplicate entries (nodes).

The &lt;code&gt;DATA&lt;/code&gt; section contains the XML that we want to merge with the contents of the &lt;code&gt;&quot;target&quot;&lt;/code&gt;. It must be a complete XML file because if the target does not exist it will be created with the full contents of the &lt;code&gt;DATA&lt;/code&gt; section.

So, in our example, we want to add two bookmarks to &lt;code&gt;/home/user/.bookmarks/MyBookmarks.xml&lt;/code&gt;. The bookmark nodes are taken from the &lt;code&gt;/xbel/bookmark&lt;/code&gt; tags (subtrees). We use the &lt;code&gt;&quot;title&quot;&lt;/code&gt; tag inside the &lt;code&gt;&quot;bookmark&quot;&lt;/code&gt; tags for detecting if a bookmark already exists in the target. If a duplicate is detected, &quot;if_exists&quot; tells that we want our bookmarks to overwrite the existing ones.

==== VPNGUI ====

The VPN client software has a UI called VPNGUI. The &lt;code&gt;data/vpngui-gateways.epin&lt;/code&gt; configures two VPN gateways for our Joe Buck user. It is done by modifying the gconf database. Every VPN gateway has its own gconf directory under &lt;code&gt;/apps/osso/vpngui/ap/&lt;/code&gt;. The gateway directory name must be a positive integer. For example, we create gateway 0 (Company-Berlin) and 1 (Company-Vancouver):

&lt;pre&gt;
[CONTROL]
type:gconf

[DATA]
dir:/apps/osso/vpngui/ap/0
replace:string:name:Company-Berlin
replace:string:secret:aruba1
replace:bool:secret_obf:false
replace:string:group:company
replace:string:gateway:192.122.220.123
# Possible values: none, manual or auto
replace:string:proxytype:manual
replace:string:proxy_server:proxy.europe.company.com
replace:int:proxy_port:8080
replace:string:proxy_autoconfig_url:http://proxyconf.company.com/proxy.pac
replace:string-list:proxy_ignore_hosts:[*.company.com]

dir:/apps/osso/vpngui/ap/1
replace:string:name:Company-Vancouver
replace:string:secret:SDFGHJK1234567SDFGH34567XSDCFG34567XDCG
replace:bool:secret_obf:true
replace:string:group:linux-vpn
replace:string:gateway:123.123.123.123
# Possible values: none, manual or auto
replace:string:proxytype:manual
replace:string:proxy_server:proxy.americas.company.com
replace:int:proxy_port:8080
replace:string:proxy_autoconfig_url:http://proxyconf.company.com/proxy.pac
replace:string-list:proxy_ignore_hosts:[*.company.com]
&lt;/pre&gt;

Whenever Joe Buck connects to a VPN gateway, we may need to run some actions. The VPNGUI supports post-connect and post-disconnect scripts that are run after connection and after disconnection respectively. These scripts are put in place by &lt;code&gt;data/vpngui-scripts.epin&lt;/code&gt;:

&lt;pre&gt;
[CONTROL]
type:shell

[DATA]
install:
#!/bin/sh
for PHASE in post-connect post-disconnect; do
        mkdir -p /etc/vpngui/$PHASE
        for i in `ls %INFILE_DIR%/*.$PHASE.vpns 2&gt; /dev/null`; do
                NAME=`basename $i | cut -f1 -d.`
                chmod +x $i
                ln -sf $i /etc/vpngui/$PHASE/$NAME
        done
done

uninstall:
#!/bin/sh
for PHASE in post-connect post-disconnect; do
        for i in `ls %INFILE_DIR%/*.$PHASE.vpns 2&gt; /dev/null`; do
                NAME=`basename $i | cut -f1 -d.`
                rm -f /etc/vpngui/$PHASE/$NAME
        done
        rmdir -p /etc/vpngui/$PHASE &gt; /dev/null || true
done
&lt;/pre&gt;

It basically copies (links) the &lt;code&gt;data/*.vpns&lt;/code&gt; files to the proper place where VPNGUI can find them during run-time. In our example, these scripts (&lt;code&gt;data/50_company*.vpns&lt;/code&gt;) force the SIP account to use the VPN connection (this is necessary due to a problem in the N900 software as of 2010.04.28).

==== RDesktop ====

In our example, we use a remote desktop client, rdesktop-maemo, which supports the configuration of a custom help file. We install a company specific help file with &lt;code&gt;data/rdesktop.epin&lt;/code&gt;:

&lt;pre&gt;
[CONTROL]
type:shell

[DATA]
install:
#!/bin/sh -ue
mkdir -p /usr/share/rdesktop-m5ui
ln -sf %INFILE_DIR%/rdesktop__help.pdf /usr/share/rdesktop-m5ui/

uninstall:
#!/bin/sh
rm -f /usr/share/rdesktop-m5ui/rdesktop__help.pdf
rmdir -p /usr/share/rdesktop-m5ui 2&gt;/dev/null || true
&lt;/pre&gt;

== Summary ==

In this page, we looked at how to create a custom Enterprise User Configuration File and a corresponding Enterprise Package. The provided examples can be used as a basis for your own deployment purposes. If you wish to learn more about epconf, feel free to read about [[Enterprise_Configurator|Enterprise Configurator]].

[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>Enterprise Provisioning</title>
    <id>4145</id>
    <revision>
      <id>41272</id>
      <timestamp>2011-01-21T10:58:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">Here we describe some of the challenges related to provisioning, discuss the solutions and after looking into server side requirement briefly, continue to some tried-out provisioning strategies. We do not yet offer turnkey solutions or program code, excluding some snippets in the [[Enterprise Provisioning - Appendix|Appendix]].

== Acronyms and definitions ==

* Enterprise User Configuration File: EUF. A container for user-specific and enterprise-specific configuration values collected from various sources.
* Enterprise Package: EP. It contains the Enterprise Configurator and also contains a reference to all other required packages.
* Enterprise Configurator: Part of the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise Package: Contains the Enterprise Configurator and also contains a reference to all other required packages.&quot;&gt;EP&lt;/span&gt;. It is an application which reads the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources. &quot;&gt;EUF&lt;/span&gt; and applies the configuration values into device and applications configuration.
* Content Type definitions: Using different Content Type definitions, the web browser can be made to either prompt the user to save a file or invoke the Application Manager. See the [[Enterprise Provisioning - Appendix|Appendix]] for more details about Content Type definitions.
* Device: The user device that is being configured.

== The Provisioning Process ==

=== The wireless challenge ===

Accessing a company network usually requires some keys that are available only inside the network to be accessed.

For illustration, picture a man standing at the courtyard of a house. Inside the house, all room doors are locked. In a hallway there is a strongbox with a combination lock. Inside strongbox are keys to all room doors. The man knows the strongbox lock combination. The only problem is that the front the door of the house is locked as well and the man does not have the key. The front door key is in the strongbox. This is roughly equal with the starting point of provisioning a wireless device.

=== Additional challenges ===

In addition to general problem, there is a set of features which create more challenges for the provisioning process. These include:

* Currently, the device ships without any kind of enterprise configurator or pre-configurator.
* The device is unable to handle SMS configuration messages.
* Application Manager has, in the default configuration, repositories which are located in the public Internet. If these repositories are not accessible from the network the device is connected to, the Application Manager halts completely for extremely long periods (around 30 minutes). We call this as &quot;the Application Manager halting problem&quot;.

The main source of these challenges is the consumer-oriented factory set-up of the (N-series) devices. Future firmware/software upgrades might address some of these issues.

=== Provisioning phases ===

[[Image:EDG_Phases_of_the_provisioning_process.png|frame|center|alt=Diagram of phases of the provisioning process; enrollment to bootstrapping to installation|Figure 1: Phases of the provisioning process]]

==== Enrollment ====

Purpose of the enrollment phase is to 
# Overcome the wireless challenge by creating a controlled way to create and deliver the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources. &quot;&gt;EUF&lt;/span&gt;.
# Create the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources. &quot;&gt;EUF&lt;/span&gt; which consists only of the required information.
# Store the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources. &quot;&gt;EUF&lt;/span&gt; securely to be used by subsequent phases.
# Initiate the bootstrapping phase.

In this document, we distinguish between two kinds of enrollment:
* direct: The user performs it by using the device itself.
* indirect: The user performs it by using some other method, for example, a desktop computer.

==== Bootstrapping ====

Purpose of the bootstrapping phase is to 
# Connect the device to the Installation Server.
# Possibly, retrieve the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources. &quot;&gt;EUF&lt;/span&gt; and store it on the device.
# Invoke the Application Manager for performing the installation phase.

In most cases, there are two alternative ways to deliver the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources.&quot;&gt;EUF&lt;/span&gt;:

* Via file
** Easy-to-implement
** Deliver &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources. &quot;&gt;EUF&lt;/span&gt; as a file to be saved by the Web Browser
** Deliver &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise Package: Contains the Enterprise Configurator and also contains a reference to all other required packages.&quot;&gt;EP&lt;/span&gt; install file to invoke Application Manager
** See Appendix for required content headers
* Via package
** Easy-to-use
** Create a package on-the-fly that contains the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources. &quot;&gt;EUF&lt;/span&gt; and includes &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise Package: Contains the Enterprise Configurator and also contains a reference to all other required packages.&quot;&gt;EP&lt;/span&gt; as a dependency
** Create a temporary repository and an install file for the package
** Deliver the created install file to invoke the Application Manager
** See Appendix for further instructions

==== Installation ====

Purpose of the installation phase is to
# Retrieve the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise Package: Contains the Enterprise Configurator and also contains a reference to all other required packages.&quot;&gt;EP&lt;/span&gt; and install it.
# Retrieve other application packages and install them.
# Execute Enterprise Configurator to apply the configurations on the device.

== Server setup ==

=== Server roles ===

For provisioning, three kinds of server roles are required. Each role may have their own server, all roles may be executed in one server, or anything in between.

* Installation server: User devices download application packages from this server.
* Enrollment server: User devices contact this server to prove their identity and generate the &lt;span style=&quot;color:#0000ff&quot; title=&quot;Enterprise User Configuration File: A container for user-specific and enterprise-specific configuration values collected from various sources. &quot;&gt;EUF&lt;/span&gt;.
* Admin server:
** The server which uploads packages to provisioning server
** Likely acts also as development/build server

=== Minimal requirements ===

Enterprise application suite as such does not set requirements for the server hardware or operating system. Minimum functional requirements are:
* Installation Server
** Few gigabytes of storage space (current release takes roughly half gigabyte)
** A web server running at port 443 (http over SSL)
** Ability to run in-house server end applications of technology choice of the enterprise
* Enrollment Server
** Access to Enterpise User Databases
** Access to upload data to provisioning server
* Admin Server
** Access to upload data to provisioning server

However, in order to keep things simple it is strongly advised to follow the recommendations below.

=== Practical recommendations ===

Hardware requirements are fairly modest (it would take quite many of these tiny devices to overload a server)
* Entry level server hardware
* 10 GB or more storage space
* High availability and backup arrangements according enterprise policies
** Criticality note: Provisioning service being down does not prevent ''use'' of the devices, only installations and updates 

The recommended operating system is Linux (e.g., a server-oriented distribution).
* Install minimal set of packages
* SELinux is recommended to be turned on (enforcing) for all servers located outside corporate firewalls

The following table defines the recommended applications for each server role:

{| class=&quot;wikitable sortable&quot;
|+ Recommended applications for server roles
|-
! Application !! Installation !! Enrollment !!  Admin
|-
| Apache web server || yes || yes ||  no
|-
| CGI support || yes || yes || no
|-
| SSL support || yes || yes || no
|-
| Python || yes || yes || no
|-
| python-ldap || no || yes || no
|-
| python-cheetah || yes || yes || no
|-
| OpenSSH client || no || yes || yes
|-
| OpenSSH server || yes || no || no
|}

It is also recommended to purchase an SSL certificate for the provisioning server from a commercial CA, such as Verisign or Thawte. These certificates are readily installed on device. This removes one configuration step (accepting the certificate) from the device user. It also increases security (users usually blindly give approval to many questions during software installations).

== Summary ==

As we can see, the requirements are quite similar to any Linux distribution mirror with added requirements to connectivity towards enterprise databases. Enabling the gathering of the necessary account information poses security considerations to the solution as well.

Now we can continue to [[Enterprise - Tried and tested provisioning strategies|learn about tried and tested provisioning strategies]].

[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>Enterprise Provisioning - Appendix</title>
    <id>4147</id>
    <revision>
      <id>39326</id>
      <timestamp>2010-10-04T12:51:17Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">== Appendix 1: Content Type headers ==

Content Type headers direct the web browser behaviour. Headers must be the first output of the web application. 

* HTML content: Directs the web browser to display a web page.

 Content-Type: text/html
 &lt;span style=&quot;color:green&quot;&gt;&lt;empty line&gt;&lt;/span&gt;
 &lt;span style=&quot;color:green&quot;&gt;&lt;html content here&gt;&lt;/span&gt;

* &quot;Save as&quot; file: Directs the web browser to open a &quot;Save As...&quot; dialog

 Content-Type: application/x-unknown
 Content-Disposition: attachment; filename=&quot;EnterpriseConfig.xml&quot;
 &lt;span style=&quot;color:green&quot;&gt;&lt;empty line&gt;&lt;/span&gt;
 &lt;span style=&quot;color:green&quot;&gt;&lt;file content here&gt;&lt;/span&gt;

* Install file: Directs web browser to open Application Manager.

 Content-Type: application/x-install-instructions
 Content-Disposition: inline; filename=&quot;temp.install&quot;
 &lt;span style=&quot;color:green&quot;&gt;&lt;empty line&gt;&lt;/span&gt;
 &lt;span style=&quot;color:green&quot;&gt;&lt;install file content here&gt;&lt;/span&gt;

* Multipart: A web server reply may contain multiple content types. Following example directs the web browser to display a web page and open a &quot;Save As&quot; dialog simultaneously:

 MIME-version: 1.0
 Content-Type: multipart/mixed; boundary=xAAAAAx
 &lt;span style=&quot;color:green&quot;&gt;&lt;empty line&gt;&lt;/span&gt;
 --xAAAAAx
 Content-Type: text/html
 &lt;span style=&quot;color:green&quot;&gt;&lt;empty line&gt;&lt;/span&gt;
 &lt;span style=&quot;color:green&quot;&gt;&lt;html content here&gt;&lt;/span&gt;
 --xAAAAAx
 Content-Type: application/x-unknown
 Content-Disposition: attachment; filename=&quot;EnterpriseConfig.xml&quot;
 &lt;span style=&quot;color:green&quot;&gt;&lt;empty line&gt;&lt;/span&gt;
 &lt;span style=&quot;color:green&quot;&gt;&lt;file content here&gt;&lt;/span&gt;

== Appendix 2: Creating a package on-the-fly ==

The following section gives an example how to create an application package. In the example, a package containing the EUF is created. The file will be first created in &lt;code&gt;/etc/EnterpriseConfig.xml&lt;/code&gt; and then copied to its final place by a post-install script. The reasons to do it this are:
* To demonstrate the creation of a post-install script
* Package managers might not always like to create files under the user's home directory.

This approach enables building packages also in a limited or &quot;alien environment&quot;. (For example in RPM based distribution)

The &quot;dpkg-deb&quot; command is needed. Usually, it is available in package called &lt;code&gt;dpkg&lt;/code&gt; or &lt;code&gt;dpkg-dev&lt;/code&gt;, depending on the distribution (available also in RPM based distributions)

Setup the &quot;buildroot&quot;:

 mkdir -p user-info-1.2345/DEBIAN

Create the package content: In this case, the file &lt;code&gt;/etc/EnterpriseConfig.xml&lt;/code&gt;.

 mkdir -p user-info-1.2345/etc
 cp /path/to/EnterpriseConfig.xml user-info-1.2345/etc/EnterpriseConfig.xml

Create the post-install script:

 cat &lt;&lt;@EOF &gt; user-info-1.2345/DEBIAN/postinst
 #!/bin/sh
 if [ &quot;\$1&quot; = &quot;configure&quot; -o &quot;\$1&quot; = &quot;install&quot; -o &quot;\$1&quot; = &quot;triggered&quot; ]; then
    mkdir -p /home/user/MyDocs/.documents
    su user -c &quot;cp -f /etc/EnterpriseConfig.xml /home/user/MyDocs/.documents/EnterpriseConfig.xml&quot;
 fi
 
 #DEBHELPER#
 exit 0
 @EOF
 chmod 755 user-info-1.2345/DEBIAN/postinst


Note, the &lt;code&gt;if&lt;/code&gt; clause, &lt;code&gt;&quot;#DEBHELPER#&quot;&lt;/code&gt; text and exit command must be present in the script as in the example.

Create metadata:

 cat &lt;&lt;@EOF &gt; user-info-1.2345/DEBIAN/control
 Package: user-info
 Version: 1.2345
 Section: user/Enterprise
 Priority: extra
 Maintainer: John Smith &lt;john.smith@example.com&gt;
 Architecture: all
 Description: Package for Enterprise User Configuration File
  On-the-fly created package containing user personal data
 @EOF

Note about the version number: In a package like this, it might be a good idea to use an automatically increasing number such as a timestamp. That would cause subsequent provisionings behave as upgrades, which is in most cases the desired behaviour. As an example, in a Python script, a suitable timestamp (minutes since Epoch) can be created by 

 str(int(time.time()/60)

Build the package:

 dpkg-deb --build user-info-1.2345

This command will create a package called &lt;code&gt;user-info-1.2345.deb&lt;/code&gt;.

== Appendix 3: Creating a repository on-the-fly ==

The following section gives an example of how to create a temporary repository.
The sample procedure creates a temporary repository named &lt;code&gt;tmprepo123&lt;/code&gt; which contains the &lt;code&gt;user-info&lt;/code&gt; package created earlier. Inside the repository, &quot;distribution&quot; is &lt;code&gt;fremantle&lt;/code&gt; and &quot;component&quot; is &lt;code&gt;userinfo&lt;/code&gt;.

The &lt;code&gt;dpkg-scanpackages&lt;/code&gt; command is needed. It is usually available in the &lt;code&gt;dpkg&lt;/code&gt; or &lt;code&gt;dpkg-dev&lt;/code&gt; packages, depending on the distribution (available also in RPM based distributions)

Create &quot;bindir&quot; environment variable:

 arch=`dpkg -I /path/to/user-info-1.2345.deb | grep Architecture: | awk '{print $NF}'`
 bindir=&quot;dists/fremantle/userinfo/binary-${arch}&quot;

Create directory structure and go in the top level:

 mkdir -p tmprepo123/${bindir}/
 cd tmprepo123

Symlink (or copy) the package into repository:

 ln -sf /path/to/user-info-1.2345.deb  ${bindir}/

Create and compress the repository metadata:

 dpkg-scanpackages ${bindir} /dev/null &gt; ${bindir}/Packages
 gzip -f -9 ${bindir}/Packages

Creating the install file: The following install file, when served with the correct Content-type header, would cause the device web browser to open the Application Manager and initiate the installation of the &lt;code&gt;user-info&lt;/code&gt; package. This example contains also an &lt;code&gt;Enterprise&lt;/code&gt; repository, which contains the packages that &lt;code&gt;user-info&lt;/code&gt; depends on.

 [install]
 package =  user-info
 catalogues = Temporary; Enterprise
 
 [Temporary]
 name = Personal Info (temporary)
 uri = https://server.example.com/tmprepos/tmprepo123/
 components = userinfo
 
 [Enterprise]
 name = Enterprise Package Repository
 uri = https://server.example.com/repository/enterprise/
 components = sample1 sample2

== Appendix 4a:  Creating an offline repository on-the-fly ==

The following section gives an example how to create an &quot;offline repository&quot; (i.e., a local repository on the device).
The offline repository presented here does need an Internet connection, but it does not need a connection to the Enterprise Intranet or VPN.

You can create the repository the same way as in Appendix 3 (or use some other repository).
You might consider merging the &quot;enterprise repository&quot; and &quot;personal repository&quot; into one for &quot;offline usage&quot;.

Once you have the repository, continue with the installation file. You don't need the install-file shown in Appendix 3.
In this example, the repository is called &quot;Maemolocal&quot; and we expect it to have a &quot;userinfo&quot; component (same as in Appendix 3 example).

If you leave out the &quot;package = user-info&quot; it will just install the repository, but won't install any actual packages. You may replace the &quot;user-info&quot; with some other package you want to get installed when this repository is configured.

 cd ..
 cat &lt;&lt; @EOF &gt; Maemolocal.install
 [install]
 package =  user-info
 catalogues = Maemolocal
 
 [Maemolocal]
 name = Enterprise Repository - Local copy
 uri = file:/media/mmc1/Maemolocal
 components = userinfo
 
 @EOF

Notes
* If you really need a self contained offline (ie no network connection available) repository, then see the Appendix 4b.

Create the zip:

 rm -f maemolocal.zip
 zip -9 -r maemolocal.zip  *install Maemolocal/

Connect the device to the desktop computer with a usb-cable and unpack the contents of this zip file (with directories) to the top directory of the memorycard (MMC1).
Unplug the usb-cable when it is ready.

To install the repository on the device:
* Open the Filemanager,
* Go to the top directory of the memory card,
* Tap the &quot;Maemolocal&quot;-install file to start the repository configuration and installation.

=== Appendix 4b - Selfcontained Offline repository ===

If you need a repository which can be used completely offline, it needs to be self-contained (i.e., no dependencies for any other repositories)

# Create a repository directory and copy some packages there:
 $ mkdir MaemoOffline
 $ cp somewhere/*.deb MaemoOffline/
 $ (cd MaemoOffline &amp;&amp; apt-ftparchive packages . &gt;Packages)
# Create a matching MaemoOffline.install file:
 [card_install]
 card_catalogues = MaemoOffline
 packages = app-1; app-2
 
 [MaemoOffline]
 file_uri = MaemoOffline
 dist = ./

Create the zip file:

 rm -f maemooffline.zip
 zip -9 -r maemooffline.zip  MaemoOffline.install MaemoOffline/

Then you can continue as in Appendix 4a.

Automatic triggering of memory card installs (TO_BE_VERIFIED): Whenever a memory card is inserted that contains a file called &lt;b&gt;.auto.install&lt;/b&gt;, that file is processed by the Application Manager. If you copy this MaemoOffline.install into .auto.install then the repository should get installed when user inserts the memory card.

== Appendix 5: Application Manager repository configuration commands ==

The Application Manager repository configuration may need to be changed manually as a prerequisite for the Enterprise Package installation.

One good place to set repository configuration into sensible values is in the post-install script of the &lt;code&gt;user-info&lt;/code&gt; package. 

Reset to factory defaults: Following commands reset the repository configuration to the factory defaults:

 hildon-application-manager-util restore-catalogues
 hildon-application-manager-util clear-user-catalogues

You might want to add the Enterprise Package repository or some other repository to the device repository configuration. This requires the following two steps:

First, create an XML file containing the desired repository configuration. In this example, we define two repositories, the second one being disabled.

&lt;source lang=&quot;xml&quot;&gt;
&lt;config&gt;
   &lt;catalogue&gt;
      &lt;name&gt;Enterprise Repository&lt;/name&gt;
      &lt;uri&gt;https://server.example.com/repository/enterprise/&lt;/uri&gt;
      &lt;components&gt;base extras&lt;/components&gt;
   &lt;/catalogue&gt;
   &lt;catalogue&gt;
      &lt;name&gt;Test Repository&lt;/name&gt;
      &lt;uri&gt;https://server.example.com/repository/test/&lt;/uri&gt;
      &lt;components&gt;base extras&lt;/components&gt;
      &lt;disabled/&gt;
   &lt;/catalogue&gt;
&lt;/config&gt;
&lt;/source&gt;

Second, run the following command (assuming the XML file is at &lt;code&gt;/etc/repoconf.xml&lt;/code&gt;)

 hildon-application-manager-config add /etc/repoconf.xml

[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>Enterprise Provisioning - Future Prospects</title>
    <id>4149</id>
    <revision>
      <id>41389</id>
      <timestamp>2011-01-25T08:56:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">The purpose of this section is to give some insight on what can be expected in an enterprise deployment space in future releases. The intention is to provide some guidance for planning future activities. 

== Enterprise preconfiguration utility ==

One of the major obstacles to overcome with the enterprise deployment is the lack of a suitable pre-installed configuration application. There is no such application downloadable on default repositories. This leads to a complicated provisioning process where the user needs to go through many steps and enter unnecessarily large amounts of information on the device.

A dedicated configurator application pre-installed at the factory would solve this problem. However, enterprises do have diverse requirements and system management processes. Trying to build one monolithic configurator application which suits everyone is next to impossible. This approach would probably also lead to bloated application, too big to be included in the device factory set-up.

Better strategy would be building a split-configuration. In this approach, the device has a tiny pre-configuration utility pre-installed when it leaves the factory. The sole purpose of this utility is to download and install the actual configuration application and pass the control to it. The preconfiguration utility would have capabilities to perform some basic networking and repository setup (such as switching between networks and disable/enable repositories) and perform the autodiscovery described in the next chapter but basically nothing else.

In the split-configuration approach enterprises can utilize a wide selection of actual configuration applications. These applications can vary from small dedicated set-up applications into full-blown device management applications.

== Auto-discovery ==

Another problem in the enterprise deployment is that the source of configuration is unknown, thus it has to be provided by the user. This can be a tedious and error prone step. This could be avoided by using a pre-configurator application with suitable service auto-discovery features. Below are some options to implement auto-discovery.

=== Auto-discovery utilizing DNS service records ===

This option relies on DNS entries controlled by the corporate. The process goes roughly as follows:

# The device connects to a network and receives the DNS domain as part of the configuration from DHCP
# Preconfigurator prompts the user if the domain is a correct one
# User invokes preconfigurator application. It queries appropriate service record, for example &lt;code&gt;_maemo_autoconf._tcp._srv.example.com&lt;/code&gt;
# DNS returns configuration server URL. Or a list of those
# Preconfigurator prompts the user his/her login credentials and connects to the configuration server
#* For additional security, the preconfigurator might require that the client part of SSL certificate is already at the device (requires a commercial certificate or pre-approved self-signed certificate)
# Configuration server validates credentials and sends back (perhaps wrapped into an XML file) a bundle of information which contains
#* User personal info
#* An URL from where the actual configurator application can be downloaded from
#* Data needed by the configuration application, such as
#** Certificates
#** URL to configuration data
#** Device identifier and password
#** Application package checksum
# Preconfigurator downloads and installs the configurator application and puts other information in appropriate places
# Preconfigurator invokes the configurator application, which performs the actual device configuration

=== Auto-discovery SMS and web browser integration ===

Another option is to use a variation of the &quot;SMS based&quot; provisioning strategy described earlier. The main differences are:
* The one-time URL (sent via SMS) is served using a special content type, for example &lt;code&gt;application/x-maemo-autoconfiguration&lt;/code&gt;
* The web browser of the device is capable to open the pre-configuration application for that content type

Rest of the process goes like in DNS autodiscovery option above.

== Device management ==

An obvious shortcoming in the current provisioning process is the lack of any device management capability. After the device is provisioned, all traces are lost. There is no statistics about provisioned devices, no information about what packages were installed, how succesful was the configuration. The devices do not periodically report they are still in use, and what is perhaps most important, is the configuration still up-to-date. 

In a sense, it is like standing at a waterfront, throwing rocks into a lake. They are never seen again.

These shortcomings, and a number of others, could be addressed using some device management application as a configurator application. One option would be use an open source configuration management software commonplace in management of more &quot;traditional&quot; computers (desktops and servers), such as Bcfg2, CFEngine and Puppet.

If you are interested, you can read [[Device_Management_using_Bcfg2|more information on Bcfg2]].

== Summary ==

Let's proceed to [[Enterprise_Provisioning_Summary|provisioning summary]].

[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>Enterprise Provisioning - Strategy Variations</title>
    <id>4148</id>
    <revision>
      <id>41281</id>
      <timestamp>2011-01-21T13:36:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">Note: Following variations have not been tried out

== Pincode based bootstrapping ==

A variation of SMS based bootstrapping. Instead of using SMS, the user connects using the device to Installation server which prompts a pincode. Otherwise the process is identical.

=== Components ===

Identical with strategy &quot;Indirect enrollment, SMS based bootstrapping&quot;

=== Firewall rules ===

Identical with strategy &quot;Indirect enrollment, SMS based bootstrapping&quot;

=== Security considerations ===

* Requires using a fairly short pincode

=== Pros and cons ===

* + No SMS gateway needed
* - Tedious to user since they still need to key in Installation server URL and the pin code
* - As laborious to implement as &quot;Indirect enrollment, SMS based bootstrapping&quot; strategy

== Installation server at Internet ==

The installation server could also be located in the public Internet. We present this alternative as a variation of the &quot;Indirect enrollment, SMS based bootstrapping&quot; strategy, since that is probably the most secure one.

[[Image:EDG_Installation_server_at_public_Internet.png|thumb|900px|alt=Diagram of installation server on the public Internet|Figure 1: Installation server on the public Internet]]

Feasibility of this strategy likely requires flat 3G data transfer rates.

=== The process ===

Identical to the &quot;Indirect enrollment, SMS based bootstrapping&quot; strategy, but step 1 is not needed.

=== Components ===

Identical with &quot;Indirect enrollment, SMS based bootstrapping&quot; strategy.

=== Firewall rules ===

Identical with &quot;Indirect enrollment, SMS based bootstrapping&quot; strategy.

=== Security considerations ===

* SMS pincode can be set very long, and it is delivered using entirely different network than where it is used. No additional security considerations foreseen here.
* The biggest security risk is the server being compromised. Servers facing public Internet are under constant attack. They have to be properly hardened and managed professionally
* Likely, this option becomes feasible only in cases there is already a Internet-facing hardened and well-managed server at disposal

=== Pros and cons ===

* + Very simple to use. As close to &quot;single click install&quot; as it can get
* + Usable practically everywhere, including remote sites
* - Probably slow
* - Data transfer rates

== Summary ==

Now we can either read about [[Enterprise Provisioning - Future Prospects|future prospects for provisioning]] or move onward to [[Enterprise Provisioning Summary|provisioning summary]].

[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>Enterprise Provisioning Summary</title>
    <id>4150</id>
    <revision>
      <id>41390</id>
      <timestamp>2011-01-25T08:57:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut level one heading</comment>
      <text xml:space="preserve">We have now gone through the provisioning, it's server requirements and provisioning methods. Now it is time to start choosing the provisioning method that best suites the enterprise environment.

== Required steps ==

=== Step 1: Decide the provisioning strategy. ===

Provisioning strategies are not exclusive, you can have several at the same time. For example, it is possible to start from simplest strategy and then implement other strategies as needed.

# [[Enterprise_-_Tried_and_tested_provisioning_strategies#Strategy_1:_Simple_and_direct|Simple and direct]]
# [[Enterprise_-_Tried_and_tested_provisioning_strategies#Strategy_2:_SMS_based|SMS based]]
# [[Enterprise_-_Tried_and_tested_provisioning_strategies#Strategy_3:_Offline_installation|Offline installation]]
# [[Enterprise_Provisioning_-_Strategy_Variations#Pincode_based_bootstrapping|Pincode based bootstrapping]]
# [[Enterprise_Provisioning_-_Strategy_Variations#Installation_server_at_Internet|Installation server at Internet]]

=== Step 2: Deploy the server infra structure ===

A server infrastructure is needed for enterprise provisioning. The infrastructure needed may depend on the selected provisioning strategy.

Review the guidance about [[Enterprise_Provisioning#Server_setup|server infrastructure and requirements]].

=== Step 3: Create the customized server side software ===

Enterprise networks and backbone information systems are all different. Software eligible to be used in every enterprise would have to be massively configurable. For the time being, no such software exists.

Luckily, needed software is fairly simple and straightforward to write in-house. At simplest form, one CGI script is enough.

Which kind of software is required depends on the selected provisioning strategy.

Review [[Enterprise_-_Tried_and_tested_provisioning_strategies|tried and tested provisioning strategies]] and [[Enterprise_Provisioning_-_Strategy_Variations|provisioning strategy variations]] for guidance on writing software for the selected strategy.

=== Step 4: Create customized packages for the device ===

Large part of the enterprise configuration is executed by installing customized software packages.

From here we continue with [[Enterprise_Device_Configuration|guidance for creating the required packages]].

[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>Ereswap</title>
    <id>5172</id>
    <revision>
      <id>47782</id>
      <timestamp>2012-05-29T18:36:11Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>/* Main Swap Partition on Micro SD */</comment>
      <text xml:space="preserve">=Introduction=

ereswap is a set of scripts, allowing to detect swap fragmentation and to refresh it, by re-enabling swap, when needed (or doing the latter no matter of conditions, if user decide to).

The appliction is a terminal tool and requires knowledge of using terminal commands.
Although ereswap has no GUI it is easily customizable and extendable. The user can create a .desktop shortcut for it, invoke via QueenBeeconWidget, shortcutd, or any other way.

===Partition Requirements===

To work properly, ereswap require existence of 2 swap partitions (on microSD or eMMC, all combinations allowed). For maximum performance of Maemo, using swap on microSD *only* and keeping backup, unused swap on eMMC is recommended - the later can be of default size (768 MB), or anything of 200MB or more (in case someone want to repartition and reclaim space for other partitions).

===Fragmentation===

Swap fragmentation starts to occur, when total number of megabytes written during swap's life time exceed it's maximum size. Until that, swap is written in purely sequential manner (blocks that are no longer needed, are marked as free, but never used) - hoever, after reaching end of swap space, previously used (freed) blocks are rewritten, using new content. This mean no longer writing sequentially, causing massive slowdowns, to already slow (compared to RAM) swap. A workaround to this is to disable and enable swap again - linuxswap filesystem content doesn't live through restarts, and once re-enabled, is written sequentially again.

ereswap achieve it, by counting - via iostat - number of megabytes saved to swap partition during runtime (*not* current swap usage) and comparing it to adjacent numbers during last reswap (or boot). If it's higher than set value, swap is re-enabled, and user informed via Maemo notification system. In case of failure, the same notification system is used to inform user about step, that created problems. Location of swaps and it's sizes are fully configurable.

===Main Swap Partition on Micro SD===
Putting the Main Swap space on your microSD saves the device from I/O conflicts between swap and /opt requests. 
Also flash based devices don't handle simultaneous, autonomous requests very well. 
Another huge advantage is that it reduces a large amount of wear &amp; tear from the devices non-replaceable flash device, at expense of a cheap and replaceable microSD card.

More information on [[http://wiki.maemo.org/Swap_on_microSD Swap on Micro SD]]

''Please note:- Some parts of the Swap on Micro SD wiki are baised towards Easy Debian installation and may not be applicable.''

===More===

More information on the package can be found ...

[http://talk.maemo.org/showthread.php?t=84413 talk.maemo.org ereswap]

[http://maemo.org/packages/view/ereswap/ ereswap Package Page]

==Installation==

The latest versions can be found in the Devel repository and can be installed using the N900 Application Manager (HAM). 

==Operation==

'''After installation...'''

edit:
 /home/user/.config/ereswap/config

...providing locations for main swap, it's size, and backup swap. 

'''Then, run:'''
 /home/user/.config/ereswap/adjust-rcS-late.sh

It will adjust Your &quot;/etc/event.d/rcS-late&quot;, to - during boot - enable Your main swap and to reset Mb's-written-to-swap counter. This step must be done only once.

'''Now, at any time, invoke:'''
 ereswap

...from terminal. It will check counter and inform You about amount of data left before hitting swap fragmentation (or any arbitrary value set in config file), or, how many Mb's after it You are. In second case, it will also re-enable swap.

'''To re-enable swap at any time, unconditionally, invoke:'''
 freswap

...it's useful, if You're close to hit limit, and planning to do memory-hungry stuff.

'''If You ever change Your swap's location, just edit config file and invoke:'''
 /home/user/.config/ereswap/update-rcS-late.sh

It will update Your rcS-late with respect to new swap locations and/or size.

===Note on changes made to rcS-late===

After invoking adjust-rcS-late.sh

'''This script replaces line:'''
 swapon -a || &quot;Failed to enable paging partition&quot;

...with a superior code, that check if our main swap is functional, and in case of main swap's failure (for example, it's partition on microSD, and the latter got screwed), it enables backup swap. 
This approach ensures, that no reboot loop will occur, in case of swap failures- as long as user provide sane settings (using main and backup swap on, lets say, same microSD card isn't most failsafe solution, for example).

''Patching rcS-late was thoroughly tested, yet, for maximum safety, backup it before adjusting.''

==Bugs==

Link to Maintainer's Bugtracker information is available here

[http://maemo.org/packages/view/ereswap/ ereswap Package Page]

===FAQ===

'''Q: Something went wrong with my main swap, and backup swap got enabled. Why ereswap doesn't properly count Mb's to hit swap fragmentation?'''

''A: It's by design - written data counter is *always* set to Your main swap. Using backup swap is just a failsafe, and everything is done to make You know about it, the sooner, the better. If You can't fix issue with main swap quickly, yet, you desperately need capabilities to refresh swap, either use freswap, or edit config, and enable Your backup swap as main.''

'''Q: I changed my swap layout, so I wanted to run update-rcS-late.sh, but, by mistake, I've executed adjust-rcS-late.sh, on already patched rcS-late! Is my rcS-late damaged? will I get into bootloop, after reboot?'''

''A: Scripts are written in an intelligent way, that should result on absolutely no problems, after executing on wrong version of rcS-late (i.e. trying to update stock rcS-late, or trying to patch already adjusted one) - script will end with exit 0 (success), but without commuting changes to file.

For maximum safety, You may want to restore rcS-late from backup, though. Also, I can't predict what will happen, if You use any of rcS-late patcher scripts on custom-modified rcS-late (one modified *not* by this program) - generally, You should be ok, as long as default swap enabling line wasn't changed, but be extra careful in such case.''

==License/Disclaimer==

ereswap is licensed under terms of GPL (latest). It is provided as-is, without any warranty whatsoever. Using it, You're able to modify critical system components, responsible for booting device - doing it all on your risk. You've been warned.

==Credits==

*Thanks to shadowjk for swap refreshing concept and proof' implementation.
*Thanks to Hurrian for pointing to a concept of backup swap mechanism in rcS-late, created by GameboyRMH.
*Huge thanks for merlin1991, DocScrutinizer, Sicelo and everyone else answering my countless questions and providing working code samples on #maemo. Guys, You rox! Also, thanks to merlin1991 (again) and X-Fade, for help with proper packaging.
*Especially huge thanks for Sc0rpius, for sitting with me for hours and working to fix sed's commands in update/adjust-rcS-late.sh scripts. I would be nowhere, without Your help!
*Thanks to sixwheeledbeast, for creating this wiki page.

=Versions/Change Log=

'''1.2  ''(Current Devel)'''''
* Fix to another issue preventing system from boot ;) (tried to save reswap stat on optfs, before it's mounted...)
* Another try to add busybox-power as dependency

'''1.1''' 
* Fix for method of validating swap, that could lead to non-bootable device (via faulthy /etc/event.d/rcS-late)
* Program's folder changed to &quot;/home/user/.config/ereswap/config&quot;. Config and rcS-late's adjusters now live there. Changed, due to popular request.
* Program's executables changed from &quot;ereswap.sh&quot; and &quot;freswap.sh&quot; to &quot;ereswap&quot; and &quot;freswap&quot;. Changed, due to popular request.
* Depends on busybox-power[/list]

'''1.0'''
* Initial Release.

=Wiki Update Info=
:'''''Last Updated - sixwheeledbeast - 28 May 2012 17:47 UTC'''''
:''Wiki Created - sixwheeledbeast - 24 May 2012 20:20 UTC''</text>
    </revision>
  </page>
  <page>
    <title>Events</title>
    <id>3102</id>
    <revision>
      <id>48129</id>
      <timestamp>2012-06-04T13:03:53Z</timestamp>
      <contributor>
        <username>mrsellout</username>
        <id>3603</id>
      </contributor>
      <comment>Updated events</comment>
      <text xml:space="preserve">The Maemo community regularly gets together to learn more about Maemo, share progress on projects, and in general have fun and get to know each other.

= Upcoming events =
* [[BlackBerry Jam World Tour 2012]] - Various locations worldwide, June-August 2012
* [https://metalab.at/wiki/Hack-A-N9 Hack-A-N9] - Vienna, 4 June 2012
* [http://summit.devaamo.fi/ Devaamo Summit] - Tampere, 15-16 June 2012
* [http://qt-project.org/groups/qt-contributors-summit-2012/wiki Qt Contributors Summit 2012] - Berlin, 21-23June 2012

= Past events =

* [[MeeGo Coding Competition 2011#Coding Qt - Workshop - 2011-04-01|Qt Coding Workshop, 2011-04-01]]
* [[Maemo-Italian Long Weekend]]
* [[LinuxTag 2008]] - Berlin, 28-31 May 2008
* [[Maemo in OSiM World 2008 | OSiM World 2008]] - Berlin, 17-18 September 2008
* [[Maemo Summit 2008]] - Berlin, 19-20 September 2008
* [[FOSDEM 2009]] - Brussels, 7-8 February 2009
* [[Mozilla Maemo Danish Weekend]] - Copenhagen, 30-31 May 2009
* [[Maemo Summit 2009]] - Amsterdam, 9-11 October 2009
* [[Foss.in | Maemo at Foss.in]] - Bangalore, 1 December 2009
* [[Maemo-Barcelona Long Weekend]] - Barcelona, 4-6 December 2009
* [[FOSDEM 2010]] - Brussels, 6-7 February 2010
* [[Mobile Dev Camp 2010]] - Helsinki, Finland, 27th February 2010

[[Category:Events]]</text>
    </revision>
  </page>
  <page>
    <title>Events</title>
    <id>3102</id>
    <revision>
      <id>48129</id>
      <timestamp>2012-06-04T13:03:53Z</timestamp>
      <contributor>
        <username>mrsellout</username>
        <id>3603</id>
      </contributor>
      <comment>Updated events</comment>
      <text xml:space="preserve">The Maemo community regularly gets together to learn more about Maemo, share progress on projects, and in general have fun and get to know each other.

= Upcoming events =
* [[BlackBerry Jam World Tour 2012]] - Various locations worldwide, June-August 2012
* [https://metalab.at/wiki/Hack-A-N9 Hack-A-N9] - Vienna, 4 June 2012
* [http://summit.devaamo.fi/ Devaamo Summit] - Tampere, 15-16 June 2012
* [http://qt-project.org/groups/qt-contributors-summit-2012/wiki Qt Contributors Summit 2012] - Berlin, 21-23June 2012

= Past events =

* [[MeeGo Coding Competition 2011#Coding Qt - Workshop - 2011-04-01|Qt Coding Workshop, 2011-04-01]]
* [[Maemo-Italian Long Weekend]]
* [[LinuxTag 2008]] - Berlin, 28-31 May 2008
* [[Maemo in OSiM World 2008 | OSiM World 2008]] - Berlin, 17-18 September 2008
* [[Maemo Summit 2008]] - Berlin, 19-20 September 2008
* [[FOSDEM 2009]] - Brussels, 7-8 February 2009
* [[Mozilla Maemo Danish Weekend]] - Copenhagen, 30-31 May 2009
* [[Maemo Summit 2009]] - Amsterdam, 9-11 October 2009
* [[Foss.in | Maemo at Foss.in]] - Bangalore, 1 December 2009
* [[Maemo-Barcelona Long Weekend]] - Barcelona, 4-6 December 2009
* [[FOSDEM 2010]] - Brussels, 6-7 February 2010
* [[Mobile Dev Camp 2010]] - Helsinki, Finland, 27th February 2010

[[Category:Events]]</text>
    </revision>
  </page>
  <page>
    <title>Evopedia</title>
    <id>3353</id>
    <revision>
      <id>46035</id>
      <timestamp>2011-12-15T06:30:48Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 46005 by [[Special:Contributions/114.79.28.10|114.79.28.10]] ([[User talk:114.79.28.10|Talk]]) vandalism/spam</comment>
      <text xml:space="preserve">Evopedia is an offline Wikipedia viewer. It allows to search for articles based on their title or the geographic location on a map. If there is a connection to the internet, even images are displayed.

'''The information here is partly outdated. Please visit the
[http://evopedia.info project website].'''

== Dumps ==

'''BitTorrent'''

Since downloads of the dumps caused 2 TB of data transfer on the server in one week, the big dumps are now only available via BitTorrent. Please install a [http://www.bittorrent.com BitTorrent client] (if not already installed on your system) to use the .torrent files.

'''New dumps:'''
* [http://dumpathome.evopedia.info/dumps/finished List of dumps]

Note that you need evopedia version 0.3.0 (NOT 0.3.0 RC 3) for the search function to work properly for languages not based on the latin alphabet.

Dumping Wikipedia is a very time-consuming task. Please be patient or [http://dumpathome.evopedia.info/contribute help creating the dumps].

Please report if you find errors in the dumps.

'''Distributed dump processing'''
* [http://dumpathome.evopedia.info/ Distributed dumping for evopedia at dumpathome].

== Dump Installation ==

Extract one (or more) of the .zip-Files to your device and select it from within evopedia. The dump that is used can be changed using the (second) link at the top-left of the search screen.

Note that you cannot directly download dumps greater than 4 GB onto your device (FAT file size limitation). Please download it to a computer with a non-FAT filesystem and then unzip it directly onto your device (via USB for example).

== Tweaks ==

Evopedia creates a configuration file at &lt;code&gt;/home/user/.evopediarc&lt;/code&gt; when it is first started. Most of the options are self-explanatory.

By changing listen_address to 0.0.0.0 you (or anybody else, so be careful) can also access evopedia from a different computer using the url http://&lt;ip adress of your device&gt;:8080/

maptile_repositories is a string that specifies which map types are available and where the tile images are stored. If it is empty, tiles are not stored at all and only OpenStreetmap is available. If this is not done automatically, you can set it to

 maptile_repositories = [OpenStreetMap I|http://tile.openstreetmap.org/%d/%d/%d.png|/home/user/MyDocs/.maps/OpenStreetMap I/|0,OpenStreetMap II|http://tah.openstreetmap.org/Tiles/tile/%d/%d/%d.png|/home/user/MyDocs/.maps/OpenStreetMap II/|0,OpenCycleMap|http://c.andy.sandbox.cloudmade.com/tiles/cycle/%d/%d/%d.png|/home/user/MyDocs/.maps/OpenCycleMap/|0,Public Transport|http://tile.xn--pnvkarte-m4a.de/tilegen/%d/%d/%d.png|/home/user/MyDocs/.maps/Public Transport/|0]

(without line breaks) to use the files also used by maep.

== Creating a Wikipedia Dump ==

'''Please consider joining the distributed dump system mentioned above. Also, the information below is a bit outdated.'''

Creating a Wikipedia dump is unfortunately a rather lengthy process (some days). If you have any suggestions for speeding it up, please step forward. Concerning space, 20 GB should be enough for creating the dump.

For the advanced users, note that the process can be distributed over many computers by calling dumpWiki with the slice number to process on each computer.

==== 1. install needed software (please add packages if I forgot some): ====

 apt-get install php5-cli php5-mysql python mysql-server mysql-client wget zip tidy git-core texlive texlive-math-extra 

On some distributions, texlive must be replaced by tetex and texlive-math-extra by tetex-extra

==== 2. download evopedia source code ====
 git://gitorious.org/evopedia/evopedia.git
 
Note: '''Please don't use the github address anymore, it's deprecated:''' 
 &lt;strike&gt;git clone git://github.com/crei/evopedia.gitr (deprecated) &lt;/strike&gt;

==== 3. adjust settings ====

Set php's memory_limit to some higher value (128 MB) in &lt;code&gt;/etc/php5/cli/php.ini&lt;/code&gt; (or similar)

Create empty mysql database and grant all rights to some user - 
e.g. for database named ''wikidb'', user ''thomas'' and password ''x1lx'':
 &gt; mysql -p
 mysql&gt; create database wikidb;
 mysql&gt; grant all privileges on wikidb.* to thomas@localhost identified by 'x1lx';

Edit paths and database settings in &lt;code&gt;dumpscripts/createdump.sh&lt;/code&gt;
(especially: dbuser, password, REPODIR, DUMPDIR) - make sure DUMPDIR points to area with plenty of space

Change the dump language (&quot;de&quot; in &quot;for&quot; statement at bottom of dumpscripts/createdump.sh)

Make &lt;code&gt;~/evopedia/evopedia/evopedia/*.py&lt;/code&gt; files executable (chmod a+x ...).

==== 4. start the dump process ====

call &lt;code&gt;createdump.sh&lt;/code&gt;

(Don't be too optimistic though. After part of the day the database is filled with several gigabytes of downloaded wikipedia content, but something is broken and the final dump gives no results.)

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Ext2 on microSD card</title>
    <id>4514</id>
    <revision>
      <id>42348</id>
      <timestamp>2011-03-04T15:35:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>typo, use {{ambox}}</comment>
      <text xml:space="preserve">{{ambox|text='''DISCLAIMER: By changing system's internals like described in that article you can easily break you device!'''

Do so at your own risk! Do not type in terminal commands you do not understand! You are fully responsible for your actions.}}

'''WARNING!''' Formatting your MicroSD card to another file system will erase all data on it! Backup the data first!

If you want to format your MicroSD card with ext2 file system to get permissions, symlink/hardlink and big files (bigger than 2 gigabytes) support you have to do the following:

===Format the cart into ext2===

Everything have to be performed [[root access|as root]]!
First make sure that you have e2fsprogs package installed
 apt-get install e2fsprogs
Check your MicroSD card's device name (I think it have to be the same on all N900's, but it is worth to recheck which device you are going to format anyway)
 mount | grep /media/mmc1
The output have to contain something like that:
 /dev/mmcblk1p1 on /media/mmc1
here &lt;code&gt;/dev/mmcblk1p1&lt;/code&gt; is the MicroSD's card device name.
Then unmount your MicroSD card:
 umount /media/mmc1/

Mark the card partition type as Linux 83
 sfdisk -c /dev/mmcblk1 1 83

Format the card:
 mkfs.ext2 /dev/mmcblk1p1

Now you can try to mount the card manually
 mount -t ext2 /dev/mmcblk1p1 /media/mmc1/
To fix permissions problem you can do the following:
 chown -R user:users /media/mmc1/

===Make the card to be automounted by system===

As described here [http://forums.internettablettalk.com/showpost.php?p=510591&amp;postcount=16] and here [http://forums.internettablettalk.com/showpost.php?p=510591&amp;postcount=16] you have to do the following:
*Become root
*Back up the file &lt;code&gt;/usr/sbin/osso-mmc-mount.sh&lt;/code&gt;
*Use vi or your favourite editor to edit &lt;code&gt;/usr/sbin/osso-mmc-mount.sh&lt;/code&gt;
*Make this change (it is line 46 on [[Maemo 5/PR1.1|PR1.1]] and [[Maemo 5/PR1.2|PR1.2]])
Old:
 b | c | e | 4 | 6 | 14 | 16 | 1b | 1c | 1e)
New:
 b | c | e | 4 | 6 | 14 | 16 | 1b | 1c | 1e | 83)
*Save the file
*Back up the file &lt;code&gt;/usr/sbin/mmc-mount&lt;/code&gt;
*Use vi or your favourite editor to edit &lt;code&gt;/usr/sbin/mmc-mount&lt;/code&gt;
*Make the file to contain the following:
&lt;source lang=&quot;bash&quot;&gt;#!/bin/sh
mount -t vfat -o $3,noauto,nodev,noexec,nosuid,noatime,nodiratime,utf8,uid=29999,shortname=mixed,dmask=000,fmask=0133,rodir &quot;$1&quot; &quot;$2&quot; &gt; /dev/null || mount -t ext2 -o $3,noauto,noatime,nodiratime &quot;$1&quot; &quot;$2&quot; &gt; /dev/null
&lt;/source&gt;
'''NOTE''' Patola [http://forums.internettablettalk.com/showpost.php?p=574704&amp;postcount=17] originally suggested to modify the file that way:
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
mount -t vfat -o $3,noauto,nodev,noexec,nosuid,noatime,nodiratime,utf8,uid=29999,shortname=mixed,dmask=000,fmask=0133,rodir &quot;$1&quot; &quot;$2&quot; &gt; /dev/null || mount -o $3,noauto,noatime,nodiratime &quot;$1&quot; &quot;$2&quot; &gt; /dev/null
&lt;/source&gt;
This way, if mmc-mount is unable to mount it as a vfat card, with all the options, it tries to mount the card with the filesystem type autodetected. But I've mentioned that it does not work if you don't have loaded kernel module of the file system you are going to use. So if you want to use that approach you have to take care that you have ext2's kernel module loaded before the execution of that script.

Save the file and reboot, now the card have to be mounted automatically in all cases.

[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Extras</title>
    <id>656</id>
    <revision>
      <id>47075</id>
      <timestamp>2012-04-02T15:41:06Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <comment>Revert useless change</comment>
      <text xml:space="preserve">'''Extras''' is the primary [[repository]] for [[Maemo]] [[Software|applications]] where most community software can be found. You can browse the applications available in Extras at [http://maemo.org/downloads Maemo Downloads].


== Using Extras ==
The Extras repository is pre-configured on the [[Nokia N900|N900]] and listed as '''maemo.org''' and is [[Maemo_5/PR1.1#Application_Manager|enabled by default in PR1.1]]. 
=== To enable Extras repository for pre-PR1.1, just open [https://garage.maemo.org/extras-assistant/install/extras.install this link] on your tablet. ===

Or you can enable it by hand:

 Go into the Application manager.
 Tap the menu -&gt; Tools -&gt; Application catalog...
 Double-tap maemo Extras.
 Uncheck Disabled.

If you don't have maemo Extras among your catalogs, you can manually add it. The configuration below is for N900 up to firmware PR 1.1.1:

 Application manager --&gt; Application catalogs --&gt; New
 Catalog name: maemo.org
 Web address: http://repository.maemo.org/extras/
 Distribution: fremantle
 Components: free non-free

The configuration below is for N900 for firmware [[Maemo 5/PR1.2|PR 1.2]]:

 Application manager --&gt; Application catalogs --&gt; New
 Catalog name: maemo.org
 Web address: http://repository.maemo.org/extras/
 Distribution: fremantle-1.2
 Components: free non-free

The configuration below is for N900 for firmware [[Maemo 5/PR1.3|PR 1.3]]:

 Application manager --&gt; Application catalogs --&gt; New
 Catalog name: maemo.org
 Web address: http://repository.maemo.org/extras/
 Distribution: fremantle-1.3
 Components: free non-free

=== Diablo ===

# Open &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; with a text editor
# Append the following line to that file:&lt;br/&gt;&lt;pre&gt;deb http://repository.maemo.org/extras/ diablo free non-free&lt;/pre&gt;
# Update your APT cache with:&lt;br/&gt;&lt;pre&gt;apt-get update&lt;/pre&gt;

== About Extras ==
Extras is split into two areas:
* '''free''' applications are open source have been through the Maemo [[Extras repository process definition| Extras vetting process]]
* '''non-free''' applications are usually closed, binary only and their quality and security must be taken on trust

Anyone interested in contributing to Extras should look at the [[Extras repository process definition]].

Developers should also consult [[Packaging#Packaging_policy|the extras policy]] for information on handling interactions with other distributions.

== Extras-testing ==
'''The software hosted in extras-testing might not be ready for end users!''' Please don't play with it unless you really know what you are doing. See [http://talk.maemo.org/showpost.php?p=431432&amp;postcount=5 this post] for a more user-specific discussion of the risks. There is also some tips at [[Installing unstable applications]] -article.

Extras-testing is a repository that holds applications waiting to be tested (that is, those that the maintainer believes are ready for public release). It is a place where power users can download the latest developer releases, test them out and evaluate them. User backups and predisposition to [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5|re-flash]] your device in case of trouble is assumed. All apps must go through [[Extras-testing]] and receive a minimum number of tester approval votes before they can be promoted to Extras.

* [[Extras-testing| More information about Extras-testing]]
* [http://maemo.org/packages/repository/qa/fremantle_extras-testing/ List of user apps in testing]

== Extras-devel ==
'''The software hosted in extras-devel is most likely not ready for end users!''' PLEASE PLEASE PLEASE don't play with it unless you really know what you are doing.

Developers upload the newest version of their software to [[Extras-devel]]. From there the packages go through an automatic and human Quality Assurance process. This is a repository for developers and regular contributors of specific software projects. If you want to play with extras-devel software you need to be prepared to feel some pain sooner or later.

In theory, packages can be mass downgraded from extras-devel to extras but the exact procedure is TBD.

[[Extras-devel|More information about Extras-devel]]

[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Extras-Devel</title>
    <id>3169</id>
    <revision>
      <id>24408</id>
      <timestamp>2009-12-11T07:50:32Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <comment>Add a redirection page for URL typos</comment>
      <text xml:space="preserve">#REDIRECT [[Extras-devel]]</text>
    </revision>
  </page>
  <page>
    <title>Extras-Testing</title>
    <id>3168</id>
    <revision>
      <id>24407</id>
      <timestamp>2009-12-11T07:50:09Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <comment>Add a redirection page for URL typos</comment>
      <text xml:space="preserve">#REDIRECT [[Extras-testing]]</text>
    </revision>
  </page>
  <page>
    <title>Extras-devel</title>
    <id>2821</id>
    <revision>
      <id>49697</id>
      <timestamp>2012-09-17T16:08:36Z</timestamp>
      <contributor>
        <ip>80.221.43.219</ip>
      </contributor>
      <comment>/* How to activate Extras-devel */</comment>
      <text xml:space="preserve">{{ambox
| type = notice
| image= 
| text = '''The software hosted in [[extras-devel]] is not ready for normal users!'''&lt;br /&gt;&lt;small&gt;PLEASE PLEASE PLEASE don't play with it unless you really know what you are doing. Be ready to [http://maemo.org/development/bugs/ file proper bug reports] instead of posting complaints.
'''Expected problems''': crashes, battery drain, poor system performance, full disk space &amp; more - SERIOUSLY!
Don't play with Extras-devel if you haven't '''backed up your data''' or aren't prepared to [[Updating the firmware|re-flash your device]].&lt;/small&gt;
}}


Developers upload the newest version of their software to extras-devel. From there the packages go [[Extras-testing]] and finally [[Extras]] through an automatic and human Quality Assurance process. This is a repository for developers and regular contributors of specific software projects. If you want to play with extras-devel software you need to be prepared to feel some pain sooner or later.

== For developers ==
=== Uploading to Extras-devel ===
{{main|Uploading to Extras-devel}}
Anyone with a [http://garage.maemo.org/ Garage] account can upload packages to Extras-devel in order to share new updates and start the community QA process. It is important to note that the ''uploader'' needs a Garage account: the package itself does not need to be hosted in the Garage.

==== Promoting packages to extras-testing ====

Developers can tinker as much as they want in the extras-devel repository. Once they think their application is ready to go public they need to promote it to extras-testing by following these steps:

1. Go to the armel version of your application in the [http://maemo.org/packages/ maemo.org packages interface].
* This will be at maemo.org &gt; packages &gt; Fremantle Extras-devel free armel &gt; ''packagename'' &gt; ''version''

2. Check if you are listed as maintainer for the package.
* This should correspond to your login name - you must be logged in

3. Check if there is a 'Promote package' link, if there is: click it
* This is normally in the lower-right corner of the package description

If there are no errors shown your application will be promoted to extras-testing. This can take some time.

In case there are warning or errors on the details page of your package, please try to resolve these issues first. If the interface doesn't detect any problem, it will unlock the 'Promote package' link automatically.

You don't have to promote the i386 versions of your packages, they will be promoted automatically.

A promotion can fail because your application depends on an other 'user/*' category application. In this case you need to promote the other application first and wait until that package shows up in Extras-testing.

==== Promotion checks ====

The package interface will try to prevent promotion for packages with known issues. The following tests are in place:

* Application is using one of the official 'user/*' sections.
* Promoting person is maintainer for the package.
* All specified dependencies can be found in the origin repository or neighbour repositories.
* All specified version dependencies are met.
* Application doesn't depend on another 'user/*' application which hasn't been promoted yet.
* Check if all dependencies which are in origin and not in target can be promoted.
* Check dependencies of dependencies. (Check complete tree)
* Check if the application hasn't been promoted already

==== Maemian/Minimae checks after builds ====

Jeremiah implemented the following checks in minimae for the October Sprint:

* Control information is UTF-8
* Control file contains an image (Not having an image is not an error, it's just that minimae should notice if there is an image or not, its size and type. This check is only done for user/ apps since libs have no icon.)
* XB- (or XS-) Fields in control file
* Version is consistent with what is in changelog
* Use of trademarked names in package (not in version string.) i.e. A package cannot be called MaemoCamera or MaemoMusic since that is use of a registered trademark.
* Make sure the name of the binary package that gets built is the same as the package name. i.e. a package called foo should build a binary called foo, not bar.
* Each package has to have a copyright file
* Copyright file cannot be compressed, i.e. zipped
* Remove helper files from copyright, check for properly assigned copyright
* Make sure the Architecture field is correct according to debian specifications. I.e. all, any, or a specific arch - multiple arches not allowed.

=== Policy ===
{{main|Task:Consolidation of Extras}}
The Extras policies are still in the process of being defined and refined. See [[Extras repository process definition]] and [[Diablo Extras repository proposal]] for details and discussion.

See also the [[Extras/3rd Party Package Policy]] being tested in Fremantle.

=== Downloads OBSOLETE FIXME===
{{main|Task:Providing changes since last version of a package}}
You can [https://maemo.org/downloads/product/create/OS2008/application.html create an entry] for your application in the [http://maemo.org/downloads maemo.org downloads section]. If the unixname of your entry is the same as your debian package in Extras, the version information will be automatically updated when you upload a new package.

There is a discussion going on about how to provide changes since last version of a package. At the moment there isn't a conclusion to this discussion yet.

=== How to activate Extras-devel ===

In the Application Manager:

# Navigate to the application menu (tap the title bar)
# Select ‘Application catalogs’
# Select ‘New’
# Enter a catalog name of ‘Maemo extras-devel’
# Enter a web address of http://repository.maemo.org/extras-devel/
# Enter a distribution of ‘fremantle’ (‘fremantle-1.2’ and ‘fremantle-1.3’ now have the same content)
# Enter components of ‘free non-free’
# Select ‘Save’

=== Limiting the damage ===
To keep from unintentionally upgrading to an extras-testing or extras-devel software version, it is possible to tell apt to always prefer stable packages over these other repositories via apt-pinning. 

Note: If you use Faster Application Manager, then the following will cause errors, so don't do it and just be careful with what repos you enable.

Create the file /etc/apt/preferences with the following content:
 Package: *
 Pin: release l=Extras
 Pin-Priority: 1001

Then run
 rm /var/cache/apt/*.bin
 apt-get update

In order to install versions of software from extras-testing or extras-devel when there is a copy available in extras, you now must tell apt exactly what version of software to install.  Run 
 apt-cache showpkg &lt;package&gt;

At the bottom there will be a listing of versions under &quot;Provides:&quot; .  To install a particular version use 
 apt-get install &lt;package&gt;=&lt;version&gt;
In the application manager, if you look in install/details/summary, there is a line &quot;Catalog.&quot;  Applications being installed from extras have the catalog &quot;maemo.org&quot;, applications from extras-testing have &quot;Maemo extras testing&quot;, and applications from devel have &quot;devel&quot;.


[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Extras-devel</title>
    <id>2821</id>
    <revision>
      <id>49697</id>
      <timestamp>2012-09-17T16:08:36Z</timestamp>
      <contributor>
        <ip>80.221.43.219</ip>
      </contributor>
      <comment>/* How to activate Extras-devel */</comment>
      <text xml:space="preserve">{{ambox
| type = notice
| image= 
| text = '''The software hosted in [[extras-devel]] is not ready for normal users!'''&lt;br /&gt;&lt;small&gt;PLEASE PLEASE PLEASE don't play with it unless you really know what you are doing. Be ready to [http://maemo.org/development/bugs/ file proper bug reports] instead of posting complaints.
'''Expected problems''': crashes, battery drain, poor system performance, full disk space &amp; more - SERIOUSLY!
Don't play with Extras-devel if you haven't '''backed up your data''' or aren't prepared to [[Updating the firmware|re-flash your device]].&lt;/small&gt;
}}


Developers upload the newest version of their software to extras-devel. From there the packages go [[Extras-testing]] and finally [[Extras]] through an automatic and human Quality Assurance process. This is a repository for developers and regular contributors of specific software projects. If you want to play with extras-devel software you need to be prepared to feel some pain sooner or later.

== For developers ==
=== Uploading to Extras-devel ===
{{main|Uploading to Extras-devel}}
Anyone with a [http://garage.maemo.org/ Garage] account can upload packages to Extras-devel in order to share new updates and start the community QA process. It is important to note that the ''uploader'' needs a Garage account: the package itself does not need to be hosted in the Garage.

==== Promoting packages to extras-testing ====

Developers can tinker as much as they want in the extras-devel repository. Once they think their application is ready to go public they need to promote it to extras-testing by following these steps:

1. Go to the armel version of your application in the [http://maemo.org/packages/ maemo.org packages interface].
* This will be at maemo.org &gt; packages &gt; Fremantle Extras-devel free armel &gt; ''packagename'' &gt; ''version''

2. Check if you are listed as maintainer for the package.
* This should correspond to your login name - you must be logged in

3. Check if there is a 'Promote package' link, if there is: click it
* This is normally in the lower-right corner of the package description

If there are no errors shown your application will be promoted to extras-testing. This can take some time.

In case there are warning or errors on the details page of your package, please try to resolve these issues first. If the interface doesn't detect any problem, it will unlock the 'Promote package' link automatically.

You don't have to promote the i386 versions of your packages, they will be promoted automatically.

A promotion can fail because your application depends on an other 'user/*' category application. In this case you need to promote the other application first and wait until that package shows up in Extras-testing.

==== Promotion checks ====

The package interface will try to prevent promotion for packages with known issues. The following tests are in place:

* Application is using one of the official 'user/*' sections.
* Promoting person is maintainer for the package.
* All specified dependencies can be found in the origin repository or neighbour repositories.
* All specified version dependencies are met.
* Application doesn't depend on another 'user/*' application which hasn't been promoted yet.
* Check if all dependencies which are in origin and not in target can be promoted.
* Check dependencies of dependencies. (Check complete tree)
* Check if the application hasn't been promoted already

==== Maemian/Minimae checks after builds ====

Jeremiah implemented the following checks in minimae for the October Sprint:

* Control information is UTF-8
* Control file contains an image (Not having an image is not an error, it's just that minimae should notice if there is an image or not, its size and type. This check is only done for user/ apps since libs have no icon.)
* XB- (or XS-) Fields in control file
* Version is consistent with what is in changelog
* Use of trademarked names in package (not in version string.) i.e. A package cannot be called MaemoCamera or MaemoMusic since that is use of a registered trademark.
* Make sure the name of the binary package that gets built is the same as the package name. i.e. a package called foo should build a binary called foo, not bar.
* Each package has to have a copyright file
* Copyright file cannot be compressed, i.e. zipped
* Remove helper files from copyright, check for properly assigned copyright
* Make sure the Architecture field is correct according to debian specifications. I.e. all, any, or a specific arch - multiple arches not allowed.

=== Policy ===
{{main|Task:Consolidation of Extras}}
The Extras policies are still in the process of being defined and refined. See [[Extras repository process definition]] and [[Diablo Extras repository proposal]] for details and discussion.

See also the [[Extras/3rd Party Package Policy]] being tested in Fremantle.

=== Downloads OBSOLETE FIXME===
{{main|Task:Providing changes since last version of a package}}
You can [https://maemo.org/downloads/product/create/OS2008/application.html create an entry] for your application in the [http://maemo.org/downloads maemo.org downloads section]. If the unixname of your entry is the same as your debian package in Extras, the version information will be automatically updated when you upload a new package.

There is a discussion going on about how to provide changes since last version of a package. At the moment there isn't a conclusion to this discussion yet.

=== How to activate Extras-devel ===

In the Application Manager:

# Navigate to the application menu (tap the title bar)
# Select ‘Application catalogs’
# Select ‘New’
# Enter a catalog name of ‘Maemo extras-devel’
# Enter a web address of http://repository.maemo.org/extras-devel/
# Enter a distribution of ‘fremantle’ (‘fremantle-1.2’ and ‘fremantle-1.3’ now have the same content)
# Enter components of ‘free non-free’
# Select ‘Save’

=== Limiting the damage ===
To keep from unintentionally upgrading to an extras-testing or extras-devel software version, it is possible to tell apt to always prefer stable packages over these other repositories via apt-pinning. 

Note: If you use Faster Application Manager, then the following will cause errors, so don't do it and just be careful with what repos you enable.

Create the file /etc/apt/preferences with the following content:
 Package: *
 Pin: release l=Extras
 Pin-Priority: 1001

Then run
 rm /var/cache/apt/*.bin
 apt-get update

In order to install versions of software from extras-testing or extras-devel when there is a copy available in extras, you now must tell apt exactly what version of software to install.  Run 
 apt-cache showpkg &lt;package&gt;

At the bottom there will be a listing of versions under &quot;Provides:&quot; .  To install a particular version use 
 apt-get install &lt;package&gt;=&lt;version&gt;
In the application manager, if you look in install/details/summary, there is a line &quot;Catalog.&quot;  Applications being installed from extras have the catalog &quot;maemo.org&quot;, applications from extras-testing have &quot;Maemo extras testing&quot;, and applications from devel have &quot;devel&quot;.


[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Extras-testing</title>
    <id>2281</id>
    <revision>
      <id>50431</id>
      <timestamp>2012-10-25T17:12:52Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Extras-testing]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">{{Extras-testing}}

&lt;br&gt;
The maemo.org extras-testing repository hosts community applications and related packages that are waiting to be evaluated and promoted to Maemo 5 [[Extras]]. The packages hosted here are promoted from [[extras-devel]] and have gone through an automated quality check. Now they need real humans assessing that they are indeed ready to be released. If this article is hard to understand but you want to test software, please see [[Help testing software]] -article.

== Community Quality Assurance ==
Offering good quality community software to owners of Maemo devices is a top priority. We have a chance to show the world that open source software developed by community projects can match commercial software in terms of features, usability, reliability and fun. But we also face the risk of getting maemo.org Extras associated with beta quality software made by geeks for geeks only, without the last mile of polishing.

This is why we have put a community QA process in place in order to help developers to get their software ready for end users. Free community certification for free software.

You can help improve this QA process. Feel free to check the [[Talk:Extras-testing/QA_Checklist|discussion page]] and the [http://talk.maemo.org/showthread.php?t=33317 Talk discussion thread].

We run occasional [[Extras-testing/Testing marathon | testing marathons]], where we get together for a day and work on getting through the extras-testing queue. Join in!

== How it works in practice ==
Developers upload their software to [[Extras-devel]], the unstable repository. extras-devel is where anything can break and where no end users are expected unless they know perfectly well what they are doing. When the developer of an application thinks that it's ready for the masses, he or she promotes it to extras-testing. There is a series of automatic tests to filter the jump from extras-devel to extras-testing already. If everything is ok, the application ends up in extras-testing, and from that point it will be subject to a human evaluation.

===Follow new packages on Twitter (@maemoextras)===
If you want to be informed when new packages enter the Extras-Testing repository, you might want to follow [http://twitter.com/maemoextras maemoextras on Twitter].

== The extras-testing QA queue &amp; you ==
The list of applications waiting to be evaluated in Extras-testing can be found at 
 http://maemo.org/packages/repository/qa/fremantle_extras-testing/ 

They are sorted by age: the first application is the oldest in the extras-testing queue and the last is the youngest. When a developer sends a new version of an application the old version disappears from the list and the new one is located at the end of the list.

There are three basic types of beta testers:
* The ones that concentrate on the applications on top of the list (the apps that have been longest in the queue). Do this unless you have a better agenda. It is important to give feedback to developers soon. Either they get their software approved to Extras or they get bad reports so work on a new version in extras-devel.
* The ones that concentrate on the applications they regularly use. By following this path you become an expert in specific applications, able to evaluate new releases quickly and get involved in the project as a regular.
* The ones that concentrate on a type of testing. Some prefer to check that the features work and there are no crashes. Others might prefer to look at performance or power management metrics. Testing is a complex activity and nobody is expected to be an expert in all fields.

=== Report soon, report often ===
Testing a specific version of an application thoroughly takes time, and most of us are busy. This is why you are encouraged to handle testing in chunks, testing a specific aspect of one application and reporting back to the page where the evaluations are made. If you report that the content of ExampleApp is correct (something that took you only ten minutes to check), then someone else after you can concentrate on something else. Ten people can look at one thing each, instead of ten people each having to go through the ten things.

=== Try to find the blockers first ===
The [[Extras-testing/QA Checklist|QA Checklist]] contains several points that block an app from promotion to Extras. If there is a flagrant and evident blocker (e.g. wrong use of the Maemo trademark) then there is no immediate need to go further on testing more complex and subtle aspects like power management or system reliability. Just file the blocker bug and raise the flag asking the developer to prepare a fixed version in Extras-devel.

=== One after another ===
If you are testing aspects like power management and system stability it is recommended that you install and try out applications one by one (this is a good idea for all users anyway). If you install many applications at once then it will be difficult to find out which one is causing trouble.

Below you have a modular checklist to help you evaluate apps soon and often.

== How to activate Extras-testing ==

Users willing to give a hand testing and evaluating community applications must start activating the extras-testing repository in the Application Manager of their Maemo 5 compatible device. Note, the word 'fremantle' contains only two letter 'e'. Note the trailing slash in the URL

 Application manager, menu, Application catalogs, New
 Catalog name: maemo.org extras-testing
 Web address: http://repository.maemo.org/extras-testing/
 Distribution: fremantle
 Components: free non-free

== Vote on Packages waiting to be evaluated ==

* Voting for fremantle extras-testing packages takes place at [http://maemo.org/packages/repository/qa/fremantle_extras-testing/ Fremantle Repository QA Queue] after completing your QA evaluation.
* Developers might want to have a look at the [http://maemo.org/packages/repository/qa/all/fremantle_extras-testing_free_armel/ full list of packages] as well.

== Quality Assurance criteria ==
There are several elements to be considered before voting Up/Down. Please take your time looking at them. Don't evaluate an application lightly! If you are busy or in a hurry, perhaps let others do the testing. 

If you want to help evaluating one application follow the [[Extras-testing/QA checklist|Extras-testing QA Checklist]]

=== Thumbs Up ===

'''Don't vote up an application before having a good understanding of its quality''' based on your own testing and the opinion of other contributors involved.

=== Thumbs Down ===

Whenever you decide to vote an application '''down''', please leave a comment describing the issues you found. The best feedback is a bug report from the bug-tracking system of the application because it allows the developers and testers to track and discuss the problems effectively. Voting thumbs down without any explanation doesn't help the developer in providing better software for you and the end users. Remember, this is not about &quot;like&quot; nearly as much as it is about &quot;doesn't break things&quot;.

There is also a mailing [https://garage.maemo.org/mailman/listinfo/testingsquad-comments comments list] that contains all the traffic from the comments on QA pages - it is a good reference to see how testing communication works, what the common issues are, etc.

== Command line applications ==

[[/Command line applications | Command line apps]] are a special-case in apps and app testing. They have their own special icon, and should have detailed descriptions and documentation describing their function.

== Promotion  ==
An application is promoted to Extras when these criteria are fulfilled:
* At least 10 days of quarantine
* Karma &gt;10 (1 vote up = 1 karma point / 1 vote down = -1 karma points)
* At least 3 members of the testers group have voted. (proposed improvement, not implemented/final)

== Demotion ==
An application is demoted from Extras-testing to Extras-devel when these criteria are fulfilled:
* At least 10 days of quarantine
* Karma &lt; -5 (1 vote up = 1 karma point / 1 vote down = -1 karma points)
* When the maintainer votes down the application
*At least 3 members of the testers group have voted down. (proposed improvement, not implemented/final)

== Tools for testers ==

{{main|Documentation/devtools/maemo5}}

Testing tools help finding non-obvious flaws and getting useful data from visible problems. Several things can be observed from the application to give an idea of whether it is performing as it should. For all these areas tools exist to analyse the application. To get an idea of what kind of tools are in the Maemo 5 SDK tools repository, see the list of [[Documentation/devtools/maemo5#Categories|Maemo 5 developer tools]].

Some the tools mentioned below are available from the Maemo 5 SDK tools repository. Even though the repository is intended for SDK use, all tools in the repository can be run on-device as well. To activate the tools repository, [[Documentation/devtools/maemo5#Installation|follow the installation instructions]].


=== Process tracing ===
Tracing process activity can tell whether the application is working as it should, but it is also a good indicator of battery usage. If an application wakes up unnecessarily (i.e. no user interaction or absolutely mandatory timed operations) this can be seen in traces.

=== CPU usage ===
* Terminal applications: top, [[Documentation/devtools/maemo5/htop|htop]]
* Applet: [http://maemo.org/downloads/product/Maemo5/load-applet/ load-applet] or [http://maemo.org/downloads/product/Maemo5/cpumem-applet/ cpumem-applet] from Extras are handy graphical tools to monitor CPU usage from the Status area on the desktop. The blinking column on the left indicates CPU activity.
* Applications: [http://maemo.org/downloads/product/Maemo5/conky/ conky] can also be used to monitor cpu usage.

=== Memory usage ===
Tracking memory use for leaks. 

[http://maemo.org/downloads/product/Maemo5/load-applet/ load-applet from Extras] is a handy graphical tool to monitor memory usage from the Status area on the desktop. The blinking column on the right indicates memory use.

=== Network traffic ===
Network use can also be looked at to see whether the application is behaving as expected.

=== Power consumption ===
For widgets:
Users should [[Root access|run as root]] the command &quot;[http://maemo.org/packages/view/powertop/ powertop]&quot; before and after adding the widget to the desktop.  Symptoms of a power-hungry application are a large increase in the number of overall wakeups from the &quot;hildon-home&quot; process.

== Testing marathons ==

Every now and again, we hold testing marathons, to help clear the queue of applications awaiting approval for extras-testing. You can find out more about the [[Extras-testing/Testing marathon | testing marathons]] here.

[[Category:Development]]
[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Extras-testing</title>
    <id>2281</id>
    <revision>
      <id>50431</id>
      <timestamp>2012-10-25T17:12:52Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Extras-testing]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">{{Extras-testing}}

&lt;br&gt;
The maemo.org extras-testing repository hosts community applications and related packages that are waiting to be evaluated and promoted to Maemo 5 [[Extras]]. The packages hosted here are promoted from [[extras-devel]] and have gone through an automated quality check. Now they need real humans assessing that they are indeed ready to be released. If this article is hard to understand but you want to test software, please see [[Help testing software]] -article.

== Community Quality Assurance ==
Offering good quality community software to owners of Maemo devices is a top priority. We have a chance to show the world that open source software developed by community projects can match commercial software in terms of features, usability, reliability and fun. But we also face the risk of getting maemo.org Extras associated with beta quality software made by geeks for geeks only, without the last mile of polishing.

This is why we have put a community QA process in place in order to help developers to get their software ready for end users. Free community certification for free software.

You can help improve this QA process. Feel free to check the [[Talk:Extras-testing/QA_Checklist|discussion page]] and the [http://talk.maemo.org/showthread.php?t=33317 Talk discussion thread].

We run occasional [[Extras-testing/Testing marathon | testing marathons]], where we get together for a day and work on getting through the extras-testing queue. Join in!

== How it works in practice ==
Developers upload their software to [[Extras-devel]], the unstable repository. extras-devel is where anything can break and where no end users are expected unless they know perfectly well what they are doing. When the developer of an application thinks that it's ready for the masses, he or she promotes it to extras-testing. There is a series of automatic tests to filter the jump from extras-devel to extras-testing already. If everything is ok, the application ends up in extras-testing, and from that point it will be subject to a human evaluation.

===Follow new packages on Twitter (@maemoextras)===
If you want to be informed when new packages enter the Extras-Testing repository, you might want to follow [http://twitter.com/maemoextras maemoextras on Twitter].

== The extras-testing QA queue &amp; you ==
The list of applications waiting to be evaluated in Extras-testing can be found at 
 http://maemo.org/packages/repository/qa/fremantle_extras-testing/ 

They are sorted by age: the first application is the oldest in the extras-testing queue and the last is the youngest. When a developer sends a new version of an application the old version disappears from the list and the new one is located at the end of the list.

There are three basic types of beta testers:
* The ones that concentrate on the applications on top of the list (the apps that have been longest in the queue). Do this unless you have a better agenda. It is important to give feedback to developers soon. Either they get their software approved to Extras or they get bad reports so work on a new version in extras-devel.
* The ones that concentrate on the applications they regularly use. By following this path you become an expert in specific applications, able to evaluate new releases quickly and get involved in the project as a regular.
* The ones that concentrate on a type of testing. Some prefer to check that the features work and there are no crashes. Others might prefer to look at performance or power management metrics. Testing is a complex activity and nobody is expected to be an expert in all fields.

=== Report soon, report often ===
Testing a specific version of an application thoroughly takes time, and most of us are busy. This is why you are encouraged to handle testing in chunks, testing a specific aspect of one application and reporting back to the page where the evaluations are made. If you report that the content of ExampleApp is correct (something that took you only ten minutes to check), then someone else after you can concentrate on something else. Ten people can look at one thing each, instead of ten people each having to go through the ten things.

=== Try to find the blockers first ===
The [[Extras-testing/QA Checklist|QA Checklist]] contains several points that block an app from promotion to Extras. If there is a flagrant and evident blocker (e.g. wrong use of the Maemo trademark) then there is no immediate need to go further on testing more complex and subtle aspects like power management or system reliability. Just file the blocker bug and raise the flag asking the developer to prepare a fixed version in Extras-devel.

=== One after another ===
If you are testing aspects like power management and system stability it is recommended that you install and try out applications one by one (this is a good idea for all users anyway). If you install many applications at once then it will be difficult to find out which one is causing trouble.

Below you have a modular checklist to help you evaluate apps soon and often.

== How to activate Extras-testing ==

Users willing to give a hand testing and evaluating community applications must start activating the extras-testing repository in the Application Manager of their Maemo 5 compatible device. Note, the word 'fremantle' contains only two letter 'e'. Note the trailing slash in the URL

 Application manager, menu, Application catalogs, New
 Catalog name: maemo.org extras-testing
 Web address: http://repository.maemo.org/extras-testing/
 Distribution: fremantle
 Components: free non-free

== Vote on Packages waiting to be evaluated ==

* Voting for fremantle extras-testing packages takes place at [http://maemo.org/packages/repository/qa/fremantle_extras-testing/ Fremantle Repository QA Queue] after completing your QA evaluation.
* Developers might want to have a look at the [http://maemo.org/packages/repository/qa/all/fremantle_extras-testing_free_armel/ full list of packages] as well.

== Quality Assurance criteria ==
There are several elements to be considered before voting Up/Down. Please take your time looking at them. Don't evaluate an application lightly! If you are busy or in a hurry, perhaps let others do the testing. 

If you want to help evaluating one application follow the [[Extras-testing/QA checklist|Extras-testing QA Checklist]]

=== Thumbs Up ===

'''Don't vote up an application before having a good understanding of its quality''' based on your own testing and the opinion of other contributors involved.

=== Thumbs Down ===

Whenever you decide to vote an application '''down''', please leave a comment describing the issues you found. The best feedback is a bug report from the bug-tracking system of the application because it allows the developers and testers to track and discuss the problems effectively. Voting thumbs down without any explanation doesn't help the developer in providing better software for you and the end users. Remember, this is not about &quot;like&quot; nearly as much as it is about &quot;doesn't break things&quot;.

There is also a mailing [https://garage.maemo.org/mailman/listinfo/testingsquad-comments comments list] that contains all the traffic from the comments on QA pages - it is a good reference to see how testing communication works, what the common issues are, etc.

== Command line applications ==

[[/Command line applications | Command line apps]] are a special-case in apps and app testing. They have their own special icon, and should have detailed descriptions and documentation describing their function.

== Promotion  ==
An application is promoted to Extras when these criteria are fulfilled:
* At least 10 days of quarantine
* Karma &gt;10 (1 vote up = 1 karma point / 1 vote down = -1 karma points)
* At least 3 members of the testers group have voted. (proposed improvement, not implemented/final)

== Demotion ==
An application is demoted from Extras-testing to Extras-devel when these criteria are fulfilled:
* At least 10 days of quarantine
* Karma &lt; -5 (1 vote up = 1 karma point / 1 vote down = -1 karma points)
* When the maintainer votes down the application
*At least 3 members of the testers group have voted down. (proposed improvement, not implemented/final)

== Tools for testers ==

{{main|Documentation/devtools/maemo5}}

Testing tools help finding non-obvious flaws and getting useful data from visible problems. Several things can be observed from the application to give an idea of whether it is performing as it should. For all these areas tools exist to analyse the application. To get an idea of what kind of tools are in the Maemo 5 SDK tools repository, see the list of [[Documentation/devtools/maemo5#Categories|Maemo 5 developer tools]].

Some the tools mentioned below are available from the Maemo 5 SDK tools repository. Even though the repository is intended for SDK use, all tools in the repository can be run on-device as well. To activate the tools repository, [[Documentation/devtools/maemo5#Installation|follow the installation instructions]].


=== Process tracing ===
Tracing process activity can tell whether the application is working as it should, but it is also a good indicator of battery usage. If an application wakes up unnecessarily (i.e. no user interaction or absolutely mandatory timed operations) this can be seen in traces.

=== CPU usage ===
* Terminal applications: top, [[Documentation/devtools/maemo5/htop|htop]]
* Applet: [http://maemo.org/downloads/product/Maemo5/load-applet/ load-applet] or [http://maemo.org/downloads/product/Maemo5/cpumem-applet/ cpumem-applet] from Extras are handy graphical tools to monitor CPU usage from the Status area on the desktop. The blinking column on the left indicates CPU activity.
* Applications: [http://maemo.org/downloads/product/Maemo5/conky/ conky] can also be used to monitor cpu usage.

=== Memory usage ===
Tracking memory use for leaks. 

[http://maemo.org/downloads/product/Maemo5/load-applet/ load-applet from Extras] is a handy graphical tool to monitor memory usage from the Status area on the desktop. The blinking column on the right indicates memory use.

=== Network traffic ===
Network use can also be looked at to see whether the application is behaving as expected.

=== Power consumption ===
For widgets:
Users should [[Root access|run as root]] the command &quot;[http://maemo.org/packages/view/powertop/ powertop]&quot; before and after adding the widget to the desktop.  Symptoms of a power-hungry application are a large increase in the number of overall wakeups from the &quot;hildon-home&quot; process.

== Testing marathons ==

Every now and again, we hold testing marathons, to help clear the queue of applications awaiting approval for extras-testing. You can find out more about the [[Extras-testing/Testing marathon | testing marathons]] here.

[[Category:Development]]
[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Extras-testing</title>
    <id>2281</id>
    <revision>
      <id>50431</id>
      <timestamp>2012-10-25T17:12:52Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Extras-testing]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">{{Extras-testing}}

&lt;br&gt;
The maemo.org extras-testing repository hosts community applications and related packages that are waiting to be evaluated and promoted to Maemo 5 [[Extras]]. The packages hosted here are promoted from [[extras-devel]] and have gone through an automated quality check. Now they need real humans assessing that they are indeed ready to be released. If this article is hard to understand but you want to test software, please see [[Help testing software]] -article.

== Community Quality Assurance ==
Offering good quality community software to owners of Maemo devices is a top priority. We have a chance to show the world that open source software developed by community projects can match commercial software in terms of features, usability, reliability and fun. But we also face the risk of getting maemo.org Extras associated with beta quality software made by geeks for geeks only, without the last mile of polishing.

This is why we have put a community QA process in place in order to help developers to get their software ready for end users. Free community certification for free software.

You can help improve this QA process. Feel free to check the [[Talk:Extras-testing/QA_Checklist|discussion page]] and the [http://talk.maemo.org/showthread.php?t=33317 Talk discussion thread].

We run occasional [[Extras-testing/Testing marathon | testing marathons]], where we get together for a day and work on getting through the extras-testing queue. Join in!

== How it works in practice ==
Developers upload their software to [[Extras-devel]], the unstable repository. extras-devel is where anything can break and where no end users are expected unless they know perfectly well what they are doing. When the developer of an application thinks that it's ready for the masses, he or she promotes it to extras-testing. There is a series of automatic tests to filter the jump from extras-devel to extras-testing already. If everything is ok, the application ends up in extras-testing, and from that point it will be subject to a human evaluation.

===Follow new packages on Twitter (@maemoextras)===
If you want to be informed when new packages enter the Extras-Testing repository, you might want to follow [http://twitter.com/maemoextras maemoextras on Twitter].

== The extras-testing QA queue &amp; you ==
The list of applications waiting to be evaluated in Extras-testing can be found at 
 http://maemo.org/packages/repository/qa/fremantle_extras-testing/ 

They are sorted by age: the first application is the oldest in the extras-testing queue and the last is the youngest. When a developer sends a new version of an application the old version disappears from the list and the new one is located at the end of the list.

There are three basic types of beta testers:
* The ones that concentrate on the applications on top of the list (the apps that have been longest in the queue). Do this unless you have a better agenda. It is important to give feedback to developers soon. Either they get their software approved to Extras or they get bad reports so work on a new version in extras-devel.
* The ones that concentrate on the applications they regularly use. By following this path you become an expert in specific applications, able to evaluate new releases quickly and get involved in the project as a regular.
* The ones that concentrate on a type of testing. Some prefer to check that the features work and there are no crashes. Others might prefer to look at performance or power management metrics. Testing is a complex activity and nobody is expected to be an expert in all fields.

=== Report soon, report often ===
Testing a specific version of an application thoroughly takes time, and most of us are busy. This is why you are encouraged to handle testing in chunks, testing a specific aspect of one application and reporting back to the page where the evaluations are made. If you report that the content of ExampleApp is correct (something that took you only ten minutes to check), then someone else after you can concentrate on something else. Ten people can look at one thing each, instead of ten people each having to go through the ten things.

=== Try to find the blockers first ===
The [[Extras-testing/QA Checklist|QA Checklist]] contains several points that block an app from promotion to Extras. If there is a flagrant and evident blocker (e.g. wrong use of the Maemo trademark) then there is no immediate need to go further on testing more complex and subtle aspects like power management or system reliability. Just file the blocker bug and raise the flag asking the developer to prepare a fixed version in Extras-devel.

=== One after another ===
If you are testing aspects like power management and system stability it is recommended that you install and try out applications one by one (this is a good idea for all users anyway). If you install many applications at once then it will be difficult to find out which one is causing trouble.

Below you have a modular checklist to help you evaluate apps soon and often.

== How to activate Extras-testing ==

Users willing to give a hand testing and evaluating community applications must start activating the extras-testing repository in the Application Manager of their Maemo 5 compatible device. Note, the word 'fremantle' contains only two letter 'e'. Note the trailing slash in the URL

 Application manager, menu, Application catalogs, New
 Catalog name: maemo.org extras-testing
 Web address: http://repository.maemo.org/extras-testing/
 Distribution: fremantle
 Components: free non-free

== Vote on Packages waiting to be evaluated ==

* Voting for fremantle extras-testing packages takes place at [http://maemo.org/packages/repository/qa/fremantle_extras-testing/ Fremantle Repository QA Queue] after completing your QA evaluation.
* Developers might want to have a look at the [http://maemo.org/packages/repository/qa/all/fremantle_extras-testing_free_armel/ full list of packages] as well.

== Quality Assurance criteria ==
There are several elements to be considered before voting Up/Down. Please take your time looking at them. Don't evaluate an application lightly! If you are busy or in a hurry, perhaps let others do the testing. 

If you want to help evaluating one application follow the [[Extras-testing/QA checklist|Extras-testing QA Checklist]]

=== Thumbs Up ===

'''Don't vote up an application before having a good understanding of its quality''' based on your own testing and the opinion of other contributors involved.

=== Thumbs Down ===

Whenever you decide to vote an application '''down''', please leave a comment describing the issues you found. The best feedback is a bug report from the bug-tracking system of the application because it allows the developers and testers to track and discuss the problems effectively. Voting thumbs down without any explanation doesn't help the developer in providing better software for you and the end users. Remember, this is not about &quot;like&quot; nearly as much as it is about &quot;doesn't break things&quot;.

There is also a mailing [https://garage.maemo.org/mailman/listinfo/testingsquad-comments comments list] that contains all the traffic from the comments on QA pages - it is a good reference to see how testing communication works, what the common issues are, etc.

== Command line applications ==

[[/Command line applications | Command line apps]] are a special-case in apps and app testing. They have their own special icon, and should have detailed descriptions and documentation describing their function.

== Promotion  ==
An application is promoted to Extras when these criteria are fulfilled:
* At least 10 days of quarantine
* Karma &gt;10 (1 vote up = 1 karma point / 1 vote down = -1 karma points)
* At least 3 members of the testers group have voted. (proposed improvement, not implemented/final)

== Demotion ==
An application is demoted from Extras-testing to Extras-devel when these criteria are fulfilled:
* At least 10 days of quarantine
* Karma &lt; -5 (1 vote up = 1 karma point / 1 vote down = -1 karma points)
* When the maintainer votes down the application
*At least 3 members of the testers group have voted down. (proposed improvement, not implemented/final)

== Tools for testers ==

{{main|Documentation/devtools/maemo5}}

Testing tools help finding non-obvious flaws and getting useful data from visible problems. Several things can be observed from the application to give an idea of whether it is performing as it should. For all these areas tools exist to analyse the application. To get an idea of what kind of tools are in the Maemo 5 SDK tools repository, see the list of [[Documentation/devtools/maemo5#Categories|Maemo 5 developer tools]].

Some the tools mentioned below are available from the Maemo 5 SDK tools repository. Even though the repository is intended for SDK use, all tools in the repository can be run on-device as well. To activate the tools repository, [[Documentation/devtools/maemo5#Installation|follow the installation instructions]].


=== Process tracing ===
Tracing process activity can tell whether the application is working as it should, but it is also a good indicator of battery usage. If an application wakes up unnecessarily (i.e. no user interaction or absolutely mandatory timed operations) this can be seen in traces.

=== CPU usage ===
* Terminal applications: top, [[Documentation/devtools/maemo5/htop|htop]]
* Applet: [http://maemo.org/downloads/product/Maemo5/load-applet/ load-applet] or [http://maemo.org/downloads/product/Maemo5/cpumem-applet/ cpumem-applet] from Extras are handy graphical tools to monitor CPU usage from the Status area on the desktop. The blinking column on the left indicates CPU activity.
* Applications: [http://maemo.org/downloads/product/Maemo5/conky/ conky] can also be used to monitor cpu usage.

=== Memory usage ===
Tracking memory use for leaks. 

[http://maemo.org/downloads/product/Maemo5/load-applet/ load-applet from Extras] is a handy graphical tool to monitor memory usage from the Status area on the desktop. The blinking column on the right indicates memory use.

=== Network traffic ===
Network use can also be looked at to see whether the application is behaving as expected.

=== Power consumption ===
For widgets:
Users should [[Root access|run as root]] the command &quot;[http://maemo.org/packages/view/powertop/ powertop]&quot; before and after adding the widget to the desktop.  Symptoms of a power-hungry application are a large increase in the number of overall wakeups from the &quot;hildon-home&quot; process.

== Testing marathons ==

Every now and again, we hold testing marathons, to help clear the queue of applications awaiting approval for extras-testing. You can find out more about the [[Extras-testing/Testing marathon | testing marathons]] here.

[[Category:Development]]
[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Extras-testing/Command line applications</title>
    <id>3634</id>
    <revision>
      <id>43735</id>
      <timestamp>2011-06-02T15:43:10Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>/* Custom Icons */ Add clarification about using &quot;badge&quot; directly</comment>
      <text xml:space="preserve">Command line applications are a special case when uploading to Extras, so they must address two extra rules, a custom application manager icon and a detailed description.

==Icon==
You can use two variaties of the CLI icon, the standard version that can be applied directly or the custom version that can be applied on top of another icon.

===Standard Icon=== 

[[image:Cli_icon_48p_embedded.png]]

Here is the uuencoded version ready to [[Packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package|add to the debian/control file]] of your CLI apps:

&lt;pre&gt;
XB-Maemo-Icon-26: 
 [encoded data, 4200 characters]
 YII=
&lt;/pre&gt;

===Custom Icons===
Can be used as a &quot;badge&quot; to be placed on custom iconography.

This icon cannot be used in &lt;code&gt;debian/control&lt;/code&gt; files directly, and '''must''' be super-imposed on another icon before use.

[[Image:Cli_icon_48p.png]]
[[Image:Cli_icon_64p.png]]
[[Image:Cli_icon_256p.png]]

== Sample Icon Usage ==

[[Image:Cli_icon_appman_sample.png]]

== Description ==
The CLI application description must clearly says that the application only runs from the command line. 

Example:
 XPTO app is a command line application that allow to run XPTO scripts. This application can only be executed from the command line.

== FAQ ==

=== '''My application is a daemon without any graphical part, is it considered a CLI application ?''' ===

Yes, daemons like OpenSSH for example are considered CLI apps, so you should use the CLI icon and a good description for your application.

=== ''' My application has a menu icon that opens a curses GUI, is it considered a CLI application ? '''===

No, only applications without any sort of GUI are considered CLI applications.

[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Extras-testing/Command line applications</title>
    <id>3634</id>
    <revision>
      <id>43735</id>
      <timestamp>2011-06-02T15:43:10Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>/* Custom Icons */ Add clarification about using &quot;badge&quot; directly</comment>
      <text xml:space="preserve">Command line applications are a special case when uploading to Extras, so they must address two extra rules, a custom application manager icon and a detailed description.

==Icon==
You can use two variaties of the CLI icon, the standard version that can be applied directly or the custom version that can be applied on top of another icon.

===Standard Icon=== 

[[image:Cli_icon_48p_embedded.png]]

Here is the uuencoded version ready to [[Packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package|add to the debian/control file]] of your CLI apps:

&lt;pre&gt;
XB-Maemo-Icon-26: 
 [encoded data, 4200 characters]
 YII=
&lt;/pre&gt;

===Custom Icons===
Can be used as a &quot;badge&quot; to be placed on custom iconography.

This icon cannot be used in &lt;code&gt;debian/control&lt;/code&gt; files directly, and '''must''' be super-imposed on another icon before use.

[[Image:Cli_icon_48p.png]]
[[Image:Cli_icon_64p.png]]
[[Image:Cli_icon_256p.png]]

== Sample Icon Usage ==

[[Image:Cli_icon_appman_sample.png]]

== Description ==
The CLI application description must clearly says that the application only runs from the command line. 

Example:
 XPTO app is a command line application that allow to run XPTO scripts. This application can only be executed from the command line.

== FAQ ==

=== '''My application is a daemon without any graphical part, is it considered a CLI application ?''' ===

Yes, daemons like OpenSSH for example are considered CLI apps, so you should use the CLI icon and a good description for your application.

=== ''' My application has a menu icon that opens a curses GUI, is it considered a CLI application ? '''===

No, only applications without any sort of GUI are considered CLI applications.

[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Extras-testing/Darp</title>
    <id>5227</id>
    <revision>
      <id>49178</id>
      <timestamp>2012-08-20T20:46:19Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>/* Development Applications Requiring Promotion */</comment>
      <text xml:space="preserve">=Development Applications Requiring Promotion=
	
'''''DARP - Development Applications Requiring Promotion'''''

This wiki is for testers to compile a list of &quot;seemingly stable&quot; applications in extras-devel for promotion to extra-testing.

For a while stable packages have been stuck in Devel with no active maintainer. Hopefully with this table (and a lot of work) we can start to promote some of these &quot;stuck&quot; packages into Testing and on into Extras.

'''''Table Information'''''

Packages in the table now have links to there package page; were all the useful information is.

Dates in columns are in international format

 example:-   20120131   is    31 January 2012

Links with these dates to TMO posts are useful, if you can include them.

==DARP Packages Table==

{| class=&quot;wikitable sortable&quot;
! width=&quot;190&quot; | Application Package Name
! width=&quot;100&quot; | Version
! width=&quot;120&quot; | Maintainer
! width=&quot;86&quot; | Maintainer Status
! width=&quot;80&quot; | Bump TMO
! width=&quot;80&quot; | Email Maintainer
! width=&quot;50&quot; | Package Status
! width+&quot;220&quot; | Notes
|-
|[http://maemo.org/packages/view/aisleriot/ aisleriot]|| 2.23.92-1 || Mikko Vartiainen || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/alarmed/ alarmed]|| 0.3.0-1 || Carol Alexandru || Unknown || [http://talk.maemo.org/showpost.php?p=1240692&amp;postcount=515 20120721] || No || Devel || 
|-
|[http://maemo.org/packages/view/backupmenu/ Backupmenu]|| 1.2.0-1 || RobbieThe1st || Active || No || No || Devel ||
|-
|[http://maemo.org/packages/view/ballgame/ ballgame]|| 1.1-5 || Csaba Kertész || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/brainparty brainparty]|| 0.5.91-2 || Thomas Perl || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/cal-home-widget cal-home-widget]||  1.5 || Nicolai Hess || Active || No || No || Devel ||
|-
|[http://maemo.org/packages/view/callerxui callerxui]|| 0.0.5 || Khoung Nguyen || Unknown || [http://talk.maemo.org/showpost.php?p=1240476&amp;postcount=151 20120720] || No || Devel || 
|-
|[http://maemo.org/packages/view/callerid-widget callerid-widget]|| 0.2-4 || Faheem Pervez || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/celltowerinfo celltowerinfo]|| 0.0.2-0maemo2 || Emmanuel Bretelle || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/connectagram connectagram]|| 1.0.1maemo0-1 || Nicolai Hess || Active || No || No || Devel ||
|-
|[http://maemo.org/packages/view/connectnow-home-widget connectnow-home-widget]|| 1.3 || Nicolai Hess || Active || No || No || Devel ||
|-
|[http://maemo.org/packages/view/dorian dorian]|| 0.4.7-1 || Akos Polster || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/dosbox DOSBox]|| 0.74-0maemo6 || Javier S. Pedro, Teemu Huhtala || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/ereswap ereswap]|| 1.2 || Piotr Jawidzyk || Active || N/A || N/A || Devel ||[http://talk.maemo.org/showpost.php?p=1214451&amp;postcount=60 Puts application data in /home.]  
|-
|[http://maemo.org/packages/view/extkbd extkbd]|| 1.0.3 || Ivaylo Dimitrov || Active || [http://talk.maemo.org/showpost.php?p=1234020&amp;postcount=360 20120708] || No || Devel ||
|-
|[http://maemo.org/packages/view/file-roller file-roller]|| 2.24.3-1maemo2 || Mohammad Abu-Garbeyyeh || Active (N9) || N/A || N/A || Devel || Not promotional due to optification issues. 
|-
|[http://maemo.org/packages/view/filebox filebox]|| 0.7-4 || Matias Perez || Active (N9) || See Notes || See Notes || Devel || [http://talk.maemo.org/showpost.php?p=1145540&amp;postcount=391 Bugs require fixing]
|-
|[http://maemo.org/packages/view/fping fping]|| 2.4b2maemo1 || Mohammad Abu-Garbeyyeh || Active (N9) || No || No || Devel ||
|-
|[http://maemo.org/packages/view/frozen-bubble frozen-bubble]|| 2.2.0-1maemo5-2 || Mohammad Abu-Garbeyyeh || Active (N9) || N/A || N/A || Devel || Not promotional due to optification issues. 
|-
|[http://maemo.org/packages/view/gboggle gboggle]|| 1.1.4maemo1-1 || Viktor Nagy || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/gconf-editor gconf-editor]|| 2.18.0-maemo7 || Aapo Rantalainen || Active || No || No || Devel ||
|-
|[http://maemo.org/packages/view/gpsjinni gpsjinni]|| 0.6.20100209-2 || Tim Teulings || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/guitar-chords guitar-chords]|| 1.0-2 || Tuomas Siipola || Unknown || No || No || Devel || Application works ok some of the chords are wrong. 
|-
|[http://maemo.org/packages/view/hangman hangman]|| 0.3 || Tuomas Siipola || Unknown || No || No || Devel || 
|-
|[http://maemo.org/packages/view/imagesetmaker imagesetmaker]|| 0.3.2 || S Dijkstra || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/impuzzle impuzzle]|| 0.8.1-1maemo0 || Timo Härkönen || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/inner-spin inner-spin]|| 0.2.0-13 || Tony Day || Unknown || No || No || Devel || [http://talk.maemo.org/showpost.php?p=1183231&amp;postcount=34 Possible issue with uninstalling]
|-
|[http://maemo.org/packages/view/irggu irggu]|| 1.0.1 || Arttu Liimola || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/kblayout-status kblayout-status]|| 0.2-5 || Emil Biserov || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/led-pattern-editor led-pattern-editor]|| 0.0.5-1 || Philipp Zabel || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/lowbatled lowbatled]|| 0.0.1-1 || Philipp Zabel || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/marketstoday marketstoday]|| 0.4-0maemo5 || Sudheer K. || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/mathjinni mathjinni]|| 0.12.20101220-1 || Tim Teulings || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/meecalc meecalc]|| 1.2-1 || Gabriel Böhme || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/phone-control phone-control]|| 0.2-4 || Mohammad Abu-Garbeyyeh || Active (N9) || No || No || Devel ||
|-
|[http://maemo.org/packages/view/pierogi pierogi]|| 1.1.4 || John Pietrzak || Unknown|| [http://talk.maemo.org/showpost.php?p=1183923&amp;postcount=569 20120325] || No || Devel ||
|-
|[http://maemo.org/packages/view/powatool powatool]|| 0.1 || Jakub Pavelek || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/powertop powertop]|| 1.2 || Mohammad Abu-Garbeyyeh || Active (N9) || No || No || Devel ||
|-
|[http://maemo.org/packages/view/qnetman qnetman]|| 0.9.2-1 || Anatoliy Kozlov || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/reaction reaction]|| 0.1-3 || kunal Parmar || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/shoplist shoplist]||  0.5.3-0 || César Themudo || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/simple-brightness-applet simple-brightness-applet]|| 1.4-1 || Faheem Pervez || Unknown || No || No ||  Devel ||
|-
|[http://maemo.org/packages/view/smscounter SMScounter]|| 0.5 || Nerd Knight || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/smsfaker SMSfaker]|| 0.1.1-5 || John Goldsworthy|| Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/thomsonkeys thomsonkeys]|| 1.0.1-5 || Diego Cerda Garza || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/timerjinni timerjinni]|| 1.3.20101221-2 || Tim Teulings || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/tracker-cfg tracker-cfg]|| 0.3.2-4 || Tomas Walch || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/updateconfigurator updateconfigurator]|| 0.0.6-6 || Marian Klühspies || Unknown || No || No || Devel ||
|-
|[http://maemo.org/packages/view/whoami whoiam]|| 1.3.20101220-2 || Tim Teulings || Unknown || No || No || Devel ||
|-
|}</text>
    </revision>
  </page>
  <page>
    <title>Extras-testing/QA Checklist</title>
    <id>3009</id>
    <revision>
      <id>22535</id>
      <timestamp>2009-11-12T08:18:53Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Extras-testing/QA Checklist]] moved to [[Extras-testing/QA checklist]]: Capitalisation</comment>
      <text xml:space="preserve">#REDIRECT [[Extras-testing/QA checklist]]</text>
    </revision>
  </page>
  <page>
    <title>Extras-testing/QA Checklist/QA Improvements</title>
    <id>3354</id>
    <revision>
      <id>34288</id>
      <timestamp>2010-05-12T13:12:07Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>/* Speed Promotion */ Alternative</comment>
      <text xml:space="preserve">'''Note: Work in progress, none of the action points below are definitive.'''

== Roles ==
* Maintainer - the owner of the package under testing
* Tester - Any community member
* Master/Admin - selected testing squad members.

== Automatic checks/Autobuilder ==
* &lt;s&gt;Bugtracker field&lt;/s&gt; - '''Done'''
* &lt;s&gt;That the description field is not empty&lt;/s&gt; - '''Done'''
* Require description field content check only if description has changed
* Optified and dependencies are optified too
* License files included and headers have copyright/license.

== Tool for easy on device testing ==
* Some easy way to capture a log of power usage, used files and open ports.

== Package Interface ==
* &lt;s&gt;Changelog should be displayed&lt;/s&gt; - '''Done'''
* A list of application specific test cases should be displayed (if available. if not available testers should be able to create one.)
* If the package is a library there should be shown packages of application using this library. So everybody can test libraries indirect on application level.
* &lt;s&gt;Votes should be changeable&lt;/s&gt; - '''Done'''
* Each package that enters or leaves testing triggers a e-mail for the testing squad list
* Link to Wiki so that details of test criteria are always accessible to new testers

=== Thumbs Up ===
* Collapsable [[#Check_List | check list]] will appear, testers should mark the fields tested. 
* Promotion should occur at +10 karma (if there's at least one completed check list ???)
** or maybe it would be better to have one check per testing task expect for  &quot;Working provided features.&quot; which should have for example 5 votes. This would be better to make sure that there is no functionality blockers than just one cheking the functionality. (see detailed description in http://talk.maemo.org/showpost.php?p=481536&amp;postcount=55 )

=== Thumbs Down ===
* Testers must comment on thumbs down.
* Maintainers thumb down will demote the application from the testing queue.
* X (fix me) thumbs down will demote the app.

=== Demotion ===
* Packages can be demoted at any time by their maintainers ('''Implemented''') or by a member of the testing squad (demotions should be advertised in the testing squad list).
* When demoting a package there's an option to keep the current app karma (minor issues) or reset it (big blockers), and a text field where should be added the reason for demotion.

=== Speed Promotion ===
* Maintainer can request speed promotion through interface in well defined cases: critical bug in &quot;Extras&quot;-version needs urgent fix; only cosmetic changes (new translations, icons, package description,...); 
* Changes must be easily visible/documented (run diff agains version in Extras)
* Speed promotion is done by selected members of the testing sqad. No extra requirements like &quot;10 days&quot; or minimum package karma. [[User:ossi1967|ossi1967]]

=== Speed Promotion (alternative) ===
Alternate suggestion: given that the smallest change by a developer can cause a serious regression, and there's no way round that - is that once a package reaches the &quot;tipping point&quot; (say, 5 days and 8 votes) another version of the package is let into Extras-testing.

However, people can still rate the earlier version (although not install it) and get it through; whilst the newer version starts its QA process. Obviously if there's a bug, the developer can demote their earlier version and prevent it going through to Extras. --[[User:jaffa|Jaffa]] 13:12, 12 May 2010 (UTC)

== Check List ==
&lt;pre&gt;
1. [ ] Licensing ok.
2. [ ] Description field ok.
--
3. [ ] Announced features available.
4. [ ] Working provided features.
--
5. [ ] No performance problems.
6. [ ] No power management issues.
7. [ ] No known security risks.
8. [ ] No illegal/dubious content.

Additional comments:
&lt;/pre&gt;

* Put [x] for those tests you have done, elaborate on separate row if the test is FAIL.
* Vote up if there were no FAILs. If there was even one FAIL, vote down.
* UI usability issues cannot be used as a reason for vote down.
* Always test functionality - that is, run the program and try if it works as it should.

imaginary example:
&lt;pre&gt;
1. [x] Licensing ok.
2. [x] Description field ok.
 FAIL: the package doesn't have a description.
--
3. [ ] Announced features available.
4. [x] Working provided features.
 FAIL: There is choice between tabs and spaces as separators but spaces are always used (see bug: http://url/123). 
 FAIL: When exporting file the program crashes (see bug: http://url/456)
--
5. [ ] No performance problems.
6. [ ] No power management issues.
7. [ ] No known security risks.
8. [ ] No illegal/dubious content.

Additional comments: 
I liked the program, even though, as is, I have to vote it down due to the bugs. I added few usability enhancements to bugzilla, see http://url/567 and http://url/678
&lt;/pre&gt;

== Testing Squad ==
* Can demote packages when there are known blockers.
* Can promote packages when they are stuck in the testing queue for a while without any known blocker.
* Can promote packages in speed promotion process [[User:ossi1967|ossi1967]]

=== Testing Squad mailing list ===
* Public mailing list where are discussed any situation/issue concerning the applications in the maemo.org repositories.
* Receives an automatic notification for each package that enters testing, is demoted or is promoted.
[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Extras-testing/QA checklist</title>
    <id>2814</id>
    <revision>
      <id>47710</id>
      <timestamp>2012-05-28T10:53:42Z</timestamp>
      <contributor>
        <username>sim6</username>
        <id>4903</id>
      </contributor>
      <comment>/* Blockers */</comment>
      <text xml:space="preserve">{{Extras-testing}}

There are several elements to be considered by developers before promoting software to extras-testing. The same criteria are useful for beta testers before approving applications to go to Extras. Please take your time looking at them. Don't evaluate an application lightly! If you are busy or in a hurry just let others do the job.

Please check the points of this list. Don't rush to give thumbs up to an application before it is tested. But don't try to delay the release of an app with minor bugs or enhancement proposals separate from this discrete QA checklist.

==QA Improvements==

There is a ongoing QA (Quality Assurance) improvements discussion in talk.maemo.org (see [http://talk.maemo.org/showthread.php?t=41179 here] and [http://talk.maemo.org/showthread.php?t=33317 here]) and the [http://lists.maemo.org/pipermail/maemo-community/2010-January/003834.html mailing list]. One task is to [http://talk.maemo.org/showthread.php?t=42055 establish a testing squad].
The results can be found at this wiki page: [[Extras-testing/QA_Checklist/QA_Improvements|QA improvements]]

===QA checklist===

Use this checklist until the extras-testing approval interface is fixed. It helps to see what you have tested and what other testers should still test. This checklist condenses the blockers explained below, read the explanation below before you mark a test as done.

&lt;pre&gt;
1. [ ] Bug database exist.
2. [ ] Licensing ok.
3. [ ] No illegal/dubious content.
4. [ ] Working provided features.
5. [ ] No missing announced features.
6. [ ] Optification ok.
7. [ ] No performance problems.
8. [ ] No power management issues.
9. [ ] No known security risks.

Additional comments:
&lt;/pre&gt;

'''Note: Only paste this template if there is some problem with the application or if you have not tested some of the points above, let's not spam the developers.'''

* Copy&amp;paste this to the comment box.
* Put [x] for those tests you have done, elaborate on separate row if the test is FAIL.
* Vote up if there were no FAILs. If there was even one FAIL, vote down.
* UI usability issues cannot be used as a reason for vote down.
* Always test functionality - that is, run the program and try if it works as it should.

imaginary example:
&lt;pre&gt;
1. [x] Bug database exist.
2. [ ] Licensing ok.
3. [ ] No illegal/dubious content.
4. [x] Working provided features.
 FAIL: There is choice between tabs and spaces as separators but spaces are always used (see bug: http://url/123). 
 FAIL: When exporting file the program crashes (see bug: http://url/456)
5. [ ] No missing announced features.
6. [x] Optification ok.
 FAIL: the package uses 1512kb from root.
7. [ ] No performance problems.
8. [ ] No power management issues.
9. [ ] No known security risks.

Additional comments: 
I liked the program, even though, as is, I have to vote it down due to the bugs. I added few usability enhancements to bugzilla, see http://url/567 and http://url/678
&lt;/pre&gt;

==== Blockers ====

A &quot;blocker&quot; is any item not met in the QA checklist.  If any one of the criteria in the QA checklist is not met, the application cannot go into Extras. A Critical bug at http://bugs.maemo.org/ against the application is required to justify your thumbs down.

#  Lack of bug reporting database
#: It needs to be [[Packaging#Bugtracker location|identified in the http://maemo.org/packages/ page]].&lt;br&gt; http://bugs.maemo.org/ is the preferred option. 
#: '''A missing bugtracker is NOT a blocker''' as of 01.09.2010, but use of bugtracking facilities IS strongly recommended.
#:''Developers: If the bugtracker field is not specified, the address is defaulted to be that of the package itself on maemo.org: &lt;nowiki&gt;http://maemo.org/packages/view/&lt;package&gt;(/&lt;version&gt;)&lt;/nowiki&gt; Resolutions for bugtracking are found at [[Packaging#Bugtracker_location]]''
# Licensing and legal issues
#: Evident licensing problems or copyright violation. The open source licenses need to be compliant. It needs to be clear that the product is not officially supported by Nokia, Maemo or other commercial entities and trademarks.
# Illegal or dubious content
#: To avoid any doubt, the content must not depict explicit sexual activity; depict or endorse acts that cause or are intended to cause excessive pain or suffering; promote or endorse the misuse of alcohol, tobacco, illegal drugs or other addictive substances; promote intolerance or discrimination based on racial, political, ethnic, religious, gender differences or sexuality; promote invasion of rights of privacy; promote gambling or promote illegal activity.
# Working features, broken functionality or reproducible crashes
#: There is some functionality that does not work or produces a crash. Report the problem in the application's bug reporting database. There you can provide a list of steps that lead to the problem.
# Missing announced features
#:Core features advertised through UI or product page don't work or are missing.
# Optification
#: '''''Test using the ''df'' command:'''''
#: In Xterminal, run &lt;code&gt;df -h | grep -e rootfs -e mmcblk0p2&lt;/code&gt; before and after you install the package being tested, and see how much the usage of each partition changes. If more than, say, 300 kb (0.3 MB) are added to usage of rootfs, it's too much and the package needs to be optified.
#: '''''Test using the ''dpkg'' command:'''''
#: After installation of the package being tested, run in Xterminal &lt;code&gt;dpkg -L packagename&lt;/code&gt; It will show all the files installed by the package.  Inspect the result to confirm that some of the files are placed in the /opt or MyDocs directories.
#: Please add those packages which fail optification to the list at [[Opt_Problem/Non-Optified_packages]].
#: ''Developers: An application is correctly &quot;optified&quot; if all files created during the normal operation of the application are created and stored in /opt or MyDocs, since these directories are not stored on the root filesystem.  If the application or its dependencies ignore the recommendation to [[Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing/Installing under opt and MyDocs|use the eMMC to install as much files as possible]], filling the root partition with 500kb or more, this can be considered a blocker.  Also see [[Opt Problem]].''
# System performance compromised
#: Running the application visibly affects the performance and responsiveness of the system, either through specific actions or leaving the application open/running during a long period of time.
# Power management issues
#: Battery life is diminished beyond acceptable standards by having the application running in the background or just through normal use. The use case of a full day without charging should not be compromised.
#: If specific applications are explicitly using a lot of power to boost speed or performance (for instance games, Wi-Fi heavy apps) then they must warn the user explicitly with a first boot banner.
# Security risks
#: The main security risks are financial damage, access to private data and harm to device components. If you find such risk in an application then you need to [http://maemo.org/community/security/ report] it and the app can't be uploaded to Extras until a deeper analysis has been done with favourable results.

====Non-blockers====

The extras-testing QA process should not be used to delay the release of new applications and updates with minor/normal bugs or enhancement requests. These can be filed as bugs just as usual.

* Developers are encouraged to adopt the Maemo 5 UI guidelines and optimize their application to finger use. However, lack of Maemo 5 UI optimization is not a reason to block an application in its way to Extras unless it is unusable even with stylus.
* Maemo 5 offers stock icons covering most regular use cases, but developers can use the icons they prefer as long as they respect copyrights. Broken icons can be a major bug stopping a release to Extras but discussions about beauty/ugliness of a UI are out of scope in the QA process.

====Warnings====

If one of these warning criteria are not met, the developers will be asked to fix them urgently. Still, the app can make it slowly to Extras unless a blocker is raised.

* Details at http://maemo.org/packages/ are missing or incomplete: summary, URL to project, updates info.
* Application icon missing or not visible in the device. This is only optional for command-line applications.

Testers with good technical knowledge are invited to look deeper in the [http://maemo.org/maemo_release_documentation/maemo4.1.x/node16.html Maemo Quality considerations] (((waiting for Fremantle update))) in order to find weak points in applications waiting to be promoted.

===Command Line applications===

Command line applications are a special case, so two extra checks should be performed, these are blockers:

* The application uses the [[Extras-testing/Command_line_applications | CLI icon]] in the application manager.
* The application [[Extras-testing/Command_line_applications#Description|description]] clearly says that the application only runs from the command line.

==Testing software==

===Power use===

The [[Nokia N900|N900]] has extensive powersaving technologies. It can achieve in some circumstances very good battery life. For example, with a wifi AP that supports powersaving properly, connected over ssh and to a GSM network, battery life can be around 5 days idle.

Leaving an application inactive (accidentally or not) is not uncommon, and the application must not use significant power when doing nothing with the screen locked.

This is a list of some applications that may be of use to ensure that the application you are testing does not damage suspend time. 

* Powertop - is available in [http://maemo.org/packages/package_instance/view/fremantle_extras-devel_non-free_armel/powertop/1.0/ the extras-devel] repository.

(for best results, run with screen locked, over ssh, with nothing plugged into USB, as this minimises normal system activity)

 C#      | Ratio  | Avg/dura | Frequency | Ratio
 --------+--------+----------+-----------+--------+
      C0 |  57.8% |          |   600 MHz |   0.0% |
      C1 |  22.4% |    0.9ms |   550 MHz |   0.0% |
      C2 |  19.8% |    3.3ms |   500 MHz | 100.0% |
      C3 |   0.0% |          |   250 MHz |   0.0% |
      C4 |   0.0% |          | 

This is an example of an app that when idle does not powersave at all.
The CPU is continually active.

The 'C0' state is the state where the CPU is actively running - 60% of the time, and it is spending 100% of its time when running at 500 MHz.

The battery may last 10-12 hours.

C1 through C4 are various powersaving states - with C4 being the deepest, it is spending at most 3 ms - 1/300th of a second in shallow powersaving.

In comparison - the same phone when idle - the stats look like:

 C#      | Ratio  | Avg/dura | Frequency | Ratio
 --------+--------+----------+-----------+--------+
      C0 |   1.0% |          |   600 MHz |   0.0% |
      C1 |   0.0% |    0.2ms |   550 MHz |   0.0% |
      C2 |   3.0% |    5.9ms |   500 MHz |   0.0% |
      C3 |  17.6% |  252.0ms |   250 MHz | 100.0% |
      C4 |  78.3% |  810.5ms | 

The phone spends most of its time in the deepest powersaving state, is only actually running 1% of the time, and when it does, is running at 250 MHz.

The battery in this case will last over 110 hours.

===top===

Top or [http://maemo.org/packages/view/htop/ htop in extras] can also be very handy. If when idle, the package you're testing is using 50% CPU - it is never going to be very good for battery life!

Cumulative time can be of use here - if every time you have looked, it has been using .4% CPU, but over half an hour it has used 10 min of CPU, something is wrong.

[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Extras-testing/QA checklist</title>
    <id>2814</id>
    <revision>
      <id>47710</id>
      <timestamp>2012-05-28T10:53:42Z</timestamp>
      <contributor>
        <username>sim6</username>
        <id>4903</id>
      </contributor>
      <comment>/* Blockers */</comment>
      <text xml:space="preserve">{{Extras-testing}}

There are several elements to be considered by developers before promoting software to extras-testing. The same criteria are useful for beta testers before approving applications to go to Extras. Please take your time looking at them. Don't evaluate an application lightly! If you are busy or in a hurry just let others do the job.

Please check the points of this list. Don't rush to give thumbs up to an application before it is tested. But don't try to delay the release of an app with minor bugs or enhancement proposals separate from this discrete QA checklist.

==QA Improvements==

There is a ongoing QA (Quality Assurance) improvements discussion in talk.maemo.org (see [http://talk.maemo.org/showthread.php?t=41179 here] and [http://talk.maemo.org/showthread.php?t=33317 here]) and the [http://lists.maemo.org/pipermail/maemo-community/2010-January/003834.html mailing list]. One task is to [http://talk.maemo.org/showthread.php?t=42055 establish a testing squad].
The results can be found at this wiki page: [[Extras-testing/QA_Checklist/QA_Improvements|QA improvements]]

===QA checklist===

Use this checklist until the extras-testing approval interface is fixed. It helps to see what you have tested and what other testers should still test. This checklist condenses the blockers explained below, read the explanation below before you mark a test as done.

&lt;pre&gt;
1. [ ] Bug database exist.
2. [ ] Licensing ok.
3. [ ] No illegal/dubious content.
4. [ ] Working provided features.
5. [ ] No missing announced features.
6. [ ] Optification ok.
7. [ ] No performance problems.
8. [ ] No power management issues.
9. [ ] No known security risks.

Additional comments:
&lt;/pre&gt;

'''Note: Only paste this template if there is some problem with the application or if you have not tested some of the points above, let's not spam the developers.'''

* Copy&amp;paste this to the comment box.
* Put [x] for those tests you have done, elaborate on separate row if the test is FAIL.
* Vote up if there were no FAILs. If there was even one FAIL, vote down.
* UI usability issues cannot be used as a reason for vote down.
* Always test functionality - that is, run the program and try if it works as it should.

imaginary example:
&lt;pre&gt;
1. [x] Bug database exist.
2. [ ] Licensing ok.
3. [ ] No illegal/dubious content.
4. [x] Working provided features.
 FAIL: There is choice between tabs and spaces as separators but spaces are always used (see bug: http://url/123). 
 FAIL: When exporting file the program crashes (see bug: http://url/456)
5. [ ] No missing announced features.
6. [x] Optification ok.
 FAIL: the package uses 1512kb from root.
7. [ ] No performance problems.
8. [ ] No power management issues.
9. [ ] No known security risks.

Additional comments: 
I liked the program, even though, as is, I have to vote it down due to the bugs. I added few usability enhancements to bugzilla, see http://url/567 and http://url/678
&lt;/pre&gt;

==== Blockers ====

A &quot;blocker&quot; is any item not met in the QA checklist.  If any one of the criteria in the QA checklist is not met, the application cannot go into Extras. A Critical bug at http://bugs.maemo.org/ against the application is required to justify your thumbs down.

#  Lack of bug reporting database
#: It needs to be [[Packaging#Bugtracker location|identified in the http://maemo.org/packages/ page]].&lt;br&gt; http://bugs.maemo.org/ is the preferred option. 
#: '''A missing bugtracker is NOT a blocker''' as of 01.09.2010, but use of bugtracking facilities IS strongly recommended.
#:''Developers: If the bugtracker field is not specified, the address is defaulted to be that of the package itself on maemo.org: &lt;nowiki&gt;http://maemo.org/packages/view/&lt;package&gt;(/&lt;version&gt;)&lt;/nowiki&gt; Resolutions for bugtracking are found at [[Packaging#Bugtracker_location]]''
# Licensing and legal issues
#: Evident licensing problems or copyright violation. The open source licenses need to be compliant. It needs to be clear that the product is not officially supported by Nokia, Maemo or other commercial entities and trademarks.
# Illegal or dubious content
#: To avoid any doubt, the content must not depict explicit sexual activity; depict or endorse acts that cause or are intended to cause excessive pain or suffering; promote or endorse the misuse of alcohol, tobacco, illegal drugs or other addictive substances; promote intolerance or discrimination based on racial, political, ethnic, religious, gender differences or sexuality; promote invasion of rights of privacy; promote gambling or promote illegal activity.
# Working features, broken functionality or reproducible crashes
#: There is some functionality that does not work or produces a crash. Report the problem in the application's bug reporting database. There you can provide a list of steps that lead to the problem.
# Missing announced features
#:Core features advertised through UI or product page don't work or are missing.
# Optification
#: '''''Test using the ''df'' command:'''''
#: In Xterminal, run &lt;code&gt;df -h | grep -e rootfs -e mmcblk0p2&lt;/code&gt; before and after you install the package being tested, and see how much the usage of each partition changes. If more than, say, 300 kb (0.3 MB) are added to usage of rootfs, it's too much and the package needs to be optified.
#: '''''Test using the ''dpkg'' command:'''''
#: After installation of the package being tested, run in Xterminal &lt;code&gt;dpkg -L packagename&lt;/code&gt; It will show all the files installed by the package.  Inspect the result to confirm that some of the files are placed in the /opt or MyDocs directories.
#: Please add those packages which fail optification to the list at [[Opt_Problem/Non-Optified_packages]].
#: ''Developers: An application is correctly &quot;optified&quot; if all files created during the normal operation of the application are created and stored in /opt or MyDocs, since these directories are not stored on the root filesystem.  If the application or its dependencies ignore the recommendation to [[Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing/Installing under opt and MyDocs|use the eMMC to install as much files as possible]], filling the root partition with 500kb or more, this can be considered a blocker.  Also see [[Opt Problem]].''
# System performance compromised
#: Running the application visibly affects the performance and responsiveness of the system, either through specific actions or leaving the application open/running during a long period of time.
# Power management issues
#: Battery life is diminished beyond acceptable standards by having the application running in the background or just through normal use. The use case of a full day without charging should not be compromised.
#: If specific applications are explicitly using a lot of power to boost speed or performance (for instance games, Wi-Fi heavy apps) then they must warn the user explicitly with a first boot banner.
# Security risks
#: The main security risks are financial damage, access to private data and harm to device components. If you find such risk in an application then you need to [http://maemo.org/community/security/ report] it and the app can't be uploaded to Extras until a deeper analysis has been done with favourable results.

====Non-blockers====

The extras-testing QA process should not be used to delay the release of new applications and updates with minor/normal bugs or enhancement requests. These can be filed as bugs just as usual.

* Developers are encouraged to adopt the Maemo 5 UI guidelines and optimize their application to finger use. However, lack of Maemo 5 UI optimization is not a reason to block an application in its way to Extras unless it is unusable even with stylus.
* Maemo 5 offers stock icons covering most regular use cases, but developers can use the icons they prefer as long as they respect copyrights. Broken icons can be a major bug stopping a release to Extras but discussions about beauty/ugliness of a UI are out of scope in the QA process.

====Warnings====

If one of these warning criteria are not met, the developers will be asked to fix them urgently. Still, the app can make it slowly to Extras unless a blocker is raised.

* Details at http://maemo.org/packages/ are missing or incomplete: summary, URL to project, updates info.
* Application icon missing or not visible in the device. This is only optional for command-line applications.

Testers with good technical knowledge are invited to look deeper in the [http://maemo.org/maemo_release_documentation/maemo4.1.x/node16.html Maemo Quality considerations] (((waiting for Fremantle update))) in order to find weak points in applications waiting to be promoted.

===Command Line applications===

Command line applications are a special case, so two extra checks should be performed, these are blockers:

* The application uses the [[Extras-testing/Command_line_applications | CLI icon]] in the application manager.
* The application [[Extras-testing/Command_line_applications#Description|description]] clearly says that the application only runs from the command line.

==Testing software==

===Power use===

The [[Nokia N900|N900]] has extensive powersaving technologies. It can achieve in some circumstances very good battery life. For example, with a wifi AP that supports powersaving properly, connected over ssh and to a GSM network, battery life can be around 5 days idle.

Leaving an application inactive (accidentally or not) is not uncommon, and the application must not use significant power when doing nothing with the screen locked.

This is a list of some applications that may be of use to ensure that the application you are testing does not damage suspend time. 

* Powertop - is available in [http://maemo.org/packages/package_instance/view/fremantle_extras-devel_non-free_armel/powertop/1.0/ the extras-devel] repository.

(for best results, run with screen locked, over ssh, with nothing plugged into USB, as this minimises normal system activity)

 C#      | Ratio  | Avg/dura | Frequency | Ratio
 --------+--------+----------+-----------+--------+
      C0 |  57.8% |          |   600 MHz |   0.0% |
      C1 |  22.4% |    0.9ms |   550 MHz |   0.0% |
      C2 |  19.8% |    3.3ms |   500 MHz | 100.0% |
      C3 |   0.0% |          |   250 MHz |   0.0% |
      C4 |   0.0% |          | 

This is an example of an app that when idle does not powersave at all.
The CPU is continually active.

The 'C0' state is the state where the CPU is actively running - 60% of the time, and it is spending 100% of its time when running at 500 MHz.

The battery may last 10-12 hours.

C1 through C4 are various powersaving states - with C4 being the deepest, it is spending at most 3 ms - 1/300th of a second in shallow powersaving.

In comparison - the same phone when idle - the stats look like:

 C#      | Ratio  | Avg/dura | Frequency | Ratio
 --------+--------+----------+-----------+--------+
      C0 |   1.0% |          |   600 MHz |   0.0% |
      C1 |   0.0% |    0.2ms |   550 MHz |   0.0% |
      C2 |   3.0% |    5.9ms |   500 MHz |   0.0% |
      C3 |  17.6% |  252.0ms |   250 MHz | 100.0% |
      C4 |  78.3% |  810.5ms | 

The phone spends most of its time in the deepest powersaving state, is only actually running 1% of the time, and when it does, is running at 250 MHz.

The battery in this case will last over 110 hours.

===top===

Top or [http://maemo.org/packages/view/htop/ htop in extras] can also be very handy. If when idle, the package you're testing is using 50% CPU - it is never going to be very good for battery life!

Cumulative time can be of use here - if every time you have looked, it has been using .4% CPU, but over half an hour it has used 10 min of CPU, something is wrong.

[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Extras-testing/Testing marathon</title>
    <id>2879</id>
    <revision>
      <id>32129</id>
      <timestamp>2010-04-08T09:01:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify links</comment>
      <text xml:space="preserve">'''Welcome to the Extras-testing Marathon'''

There are two ways of participation in this marathon:

* Group testing - The group will test each package at the same time.
* Free for all - You can test any package in the list at any time.

Please read these documents in advance: 

Test Criteria: [[Extras-testing]]

Extras-testing Q&amp;A checklist: [[Extras-testing/QA_Checklist]]

Rules:

* If you have Extras-devel enabled, please disable it for the testing marathon, in order to check for possible missing dependencies in the applications;
* If you find a problem (bug/blocker), please report it in the channel before voting, in order for others to confirm it. Once confirmed, and if it's not already there, please fill the bug in the corresponding package bug tracker (use maemo.org/packages to find bugtracker URL).
* Some application-developers also attend the marathon, if you have any doubts or questions, feel free to ask in the channel:

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Extras/3rd Party Package Policy</title>
    <id>2041</id>
    <revision>
      <id>32163</id>
      <timestamp>2010-04-08T13:11:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>[[Extras]]</comment>
      <text xml:space="preserve">== The problem ==

The official [[Seamless Software Update]] (SSU) need to work flawlessly, no matter what 3rd party packages the user has installed from any kind of sources. Conflicts between packages need to be avoided since most users will not understand what is happening and how to solve it. The Application Manager could just act blindly imposing an official SSU and removing anything else conflicting, but this situation would also confuse and upset not only users but the affected developers too.

== A solution ==
Create a new Maemo Policy requirement: No package must block an OS update. 

Develop specific rules that can be automatically checked. For example:
* Packages outside of the OS must either not depend on a OS package at all, or be happy with all versions greater than a certain minimum (of their own choice).
* A OS update must not force the removal of a package that used to be part of a previous OS release. 

These rules are used to check all Maemo packages and the OS releases.

Include every package in the [[Extras|Maemo Extras]] repositories and elsewhere in the OS update testing and fix packages that break the requirement before releasing the OS update.

SSU meta package has a very strong depends/conflicts policy. So all packages have to not break it, which will cause SSU fails. So basic policy check could based on:
 
* 3rd party packages can not: (foo is the one of system update packages defines in SSU meta package)

 Depends:    foo ( =  version A)
 Depends:    foo ( &lt;&lt; version A)
 
 Conflicts:  foo ( &gt;= version A)  


* Instead, following scenario are allowed:

 Depends:    foo ( &gt;= version A)
 Depends:    foo ( &gt;&gt; version A)
 
 Conflicts:  foo ( &lt;&lt; version A)
 Conflicts:  foo ( &lt;= version A)
 Conflicts:  foo ( =  version A)


The Package Policy check needs to be applied to any package before it is uploaded to the Extras (extras-devel?) repository. This decreases the chances of leaving all the work to the Application Manager. 

Automated checks will also be implemented in the Application Manager against other 3rd party repositories added by the user. If a package fails this check, it will not be allowed to be installed, then leads to an understandable error message to instruct the end user. These cheks are implemented in the apt-worker.cc file. 

== Impact ==

* Application Manager: Dependency/conflicts check will be enabled as well as relevant error message &amp; UI flow update.
* Infrastructure: Needs to appliy the policy check tool to &quot;Nokia SW&quot;, &quot;Nokia certified SW&quot;. The Maemo community needs to be put in the loop and helped to use the check in the Extras repositories. 
* The policy is also applied in internal integration processing, not only targetting 3rd party packages.

== Implementation ==
http://gitorious.org/hildon-application-manager

== Testing ==

How can we test that all 3rd party SW available doesn't break the SSU installation? Before SSU goes public to a repository, rebuilding all 3rd party SW is the best way. This is a huge work and can not be controlled easily, but at least it should be feasible within the maemo.org Extras scope.

== Discussion ==
See [http://talk.maemo.org/showthread.php?t=29752 app manager: &lt;package&gt; breaks the 3rd party package policy]

[[Category:Packaging]]</text>
    </revision>
  </page>
  <page>
    <title>Extras repository process definition</title>
    <id>304</id>
    <revision>
      <id>48426</id>
      <timestamp>2012-06-14T14:10:15Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Extras repository process definition]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">{{quotation|To provide the simplest interface for end users to get good quality third party software that downloads and installs flawlessly, without compromising their default system. To provide maemo tools and infrastructure to developers so they can check the quality of their software, offer it to end users and promote it.|Quim Gil}}

== Analysis of current situation ==
The Extras repository needs to maintain a high level of quality applications.

=== Nokia ===
* There are many applications that would increase the value of our product(s), but we must guarantee:
** Quality (Quality)
** Ease of use (Simplicity)
* We want to empower the community to push and promote the software they think is good enough for that. For this we think a centralized aproach makes sense and will make things easier&quot;, &quot;simpler&quot; and adds service—without compromising the open source ideal. (Simplicity, centric, scalability)
* We must keep security in mind—nobody must be able to inject bad packages etc... (Security, Control)
* We want to attract new developers and give them a guided testing bed. (Iterative)

=== Developers ===
* We have problems promoting their software. (Promote)
* It is difficult to assure that the application is installing and running well on all devices. (Quality Assurance)
* There are multiple platforms that we need to build manually for. (Build Management)
* We have problems to coordinating our work with the work of other developers—especially if using common libraries. (Coordination)
* Not every developer is alike. The process must support:
** Garage projects
** External projects with local packaging
** External projects (Flexible)

=== Users ===
* There are a huge number of applications. Most of the applications would promote the devices and the platform, but it is difficult to:
** Find applications (Locate)
** Judge if the application is of good &quot;quality&quot; (Quality)

== Resulting Claims ==

We need a process that...

* '''Defines Quality''': What constitutes quality? A checklist for determining if a package is satisfactory.
* '''Assures Quality''': Each package undergoes QA to make sure it is satisfactory.
* '''Is simple''': Avoid unnecessary esoteric complications. Keep the process straightforward and well-documented.
* '''Is somewhat centralized''': The system is centralized for better control and better QA.
* '''Is scalable''': The system will scale easily and cleanly under increased load.
* '''Assures security and control over the process''': Centralized system to control the quality of packages and help assure packages and the system are safe and secure. 
* '''Is iterative for developers''': Development can take place in small steps.
* '''Eases building packages''': Reduces developer workload
* '''Helps user finding applications''': Clear, clean, centralized organization helps users to find the software they need.
* '''Helps promoting software''': Help advertise and promote good software to users and the community.
* '''Must be flexible regarding package sources''': Flexible build and distribution system for a variety of package sources.

== Concepts ==

* We need a very clear definition of quality (with possible exceptions to avoid excessively stringent qualifications).
* Use Debian staging approach with multiple repositories (unstable, testing, stable). Tune it to fit for smaller number of packages and smaller community. This includes uploading of only source packages and an autobuilder.
* Define a bug tracking system as master for all Extras packages.
* Enhance the application catalog to give the user a hint about the measured quality of an application. 
* Enhance the application catalog to allow the user to rate the quality of an application.
* Try to directly link (aka http links) and integrate (linking information) bug tracking system and application catalog.
* Enhance the packaging format link to package specific information in the bug tracking system and in the application catalog.
* Enhance the device to simplify the rating, quality assurance and bug tracking process.
* While the process itself should be as much automated as possible we still need a team that decides in situations like:
** MIA
** Packaging conflicts (multiple packages for the same software, different required versions)—especially for shared libraries and base packages.

== Solution strategies ==

The resulting solution strategy consists of a number of concrete proposals for changes and additions to the existing infrastructure to create an environment to fit the requirements.

=== Bugzilla ===

* Each extras package should have its own defined bug tracking system (either in garage or a component in bugs.maemo.org?).
** Ensuring that each package has its own bug-tracking system isn't feasible.  What about trivial make/compile ports, and packages which are adapted from debian largely unchanged.  These will appropriately have essentially no maemo-specific infrastructure, and will have infrastructure upstream instead.  Also consider the case of a very immature project with a single developer who hasn't created infrastructure yet.
** Instead, extras should have its own bug-tracker which applies to extras as a whole.
** Each package should have an owner, who may or may not be the upstream developer.  The owner must watch the extras bug-tracker for bugs submitted against their packages.
** Bugs which are appropriately resolved upstream should be resubmitted there, either by the package owner, or by closing the bug wontfix with a comment that certain types of need to be dealt with upstream and a polite message requesting that the submitter resubmit the bug there.
** Extras is essentially a linux distro.  The above bug handling strategies are used by every major distro on the planet, we should use them too.
* Try to synchronize application bug tracking system with upstream bug tracking system.

=== Downloads ===

* Add statistical information from the bug tracking system.
* [http://bugs.maemo.org/show_bug.cgi?id=2179 Bug 2179 - Visualize rating creation date and related software version].
* Directly display available version in the Extras repository '''- [http://lists.maemo.org/pipermail/maemo-developers/2008-July/034212.html maemo.org/downloads automatic updates from Extras]'''
* Directly link to bug tracking &quot;new bug&quot; package for this application.

=== Device ===
* [http://bugs.maemo.org/show_bug.cgi?id=1563 Bug 1563 - Application installer to send feedback to the providing site if install fails]
* Desktop should open crash report dialog if application crashes.
* Application Manager should integrate rating of applications (possibly 3rd party application first).

=== Repository ===

* Nokia has initiated creation of an extras-devel repository.
* Initiate some variant of the debian staging process.

=== autobuilder ===

''The autobuilder automatically builds packages based on source packages.''

Package requirements:

* Needs to be a source package.
* Needs to have a Garage page or at least links to maintainer, upstream and a bug tracking system.

Process requirements:

* Simple (re)upload of packages
* Automatically compile one package for multiple OSs (OS 2006, OS 2007, OS 2008)
* Automatically recompile everything for a new OS.
* Automatically update corresponding downloads.maemo.org page.
* Should honor build dependencies (build dependencies first).
* Always build in a clean environment that only has build dependencies preinstalled. Thus checking for missing build dependencies.
* Possibility to manually force rebuild of a certain package or all dependencies of a certain package (e.g. an unversioned dependency changes).
* Push packages only into the repository, if all runtime dependencies are fulfilled.
* Automatically notify the package maintainer on build failures (per email or per bug tracking system).
* Uploading to the autobuilder should be possibly directly from the garage project page.

=== autotester ===

The autotester does some automatic tests on build packages to assure certain packaging quality constraints.

* Possibly use [http://lintian.debian.org/ Lintian] as part of such solution ([https://bugs.maemo.org/show_bug.cgi?id=2240 Bug 2240 - Add Lintian])
* Regularly install everything in the archive in a clean environment to check if there are installation installation conflicts (multiple packages installing same files).

=== autostager ===

The autostager does some automatic rating of a package base on a number of criteria and information source to judge its quality and thus add the package to a certain staging repository or to remove it from a staging repository.

* Automatically create a page on Downloads if it does not exist.

=== Package ===

* [http://www.hadrons.org/~guillem/debian/docs/origin.proposal Origin field in deb]

=== Quality Assurance ===

Your ideas here.

* Visibility and promotion of [http://maemo.org/maemo_release_documentation/maemo4.1.x/node16.html Quality considerations] for application developers.
** A checkbox requesting the developer to say 'Yes, I'm aware of the quality considerations and I have done my best implementing them in my software&quot;? Might sound a bit stupid and totally by-passable but it might be a good promotion of these quality considerations.--[[User:qgil|qgil]] 09:28, 21 November 2008 (UTC)
* Perhaps a very basic and descriptive list of Very Basic Testing to do in each release?
* Automated testing, what can be done on the server side?
* Some days of quarantene in extras-testing when promoting a package from extras-devel, no matter what?
** Hum, falling again in the unstable-testing-stable paradigm.--[[User:qgil|qgil]] 09:28, 21 November 2008 (UTC)
* Objective criteria to demote a package from extras to testing/devel?
** What would happen to regular users with that package installed? They might be confused if a human-readable notification doesn't tell them what's going on.--[[User:qgil|qgil]] 09:28, 21 November 2008 (UTC)
* Nokia to include extras apps in their own testing.
* Specific QA routines to be defined for extras apps being promoted in maemo.nokia.com or other marketing activities.
* Automated use of Debian tools like [http://wiki.debian.org/piuparts piuparts] would help find issues with installing, upgrading, downgrading, and removing packages.

== Links ==

* [http://lists.maemo.org/pipermail//maemo-developers/2007-October/012192.html related thread on maemo-developers mailing list regarding extra repository]
* [http://lists.maemo.org/pipermail//maemo-developers/2007-November/012600.html related thread on maemo-developers mailing list regarding autobuilder]

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>FAQ</title>
    <id>2484</id>
    <revision>
      <id>27445</id>
      <timestamp>2010-01-26T14:30:23Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[User FAQ]]</text>
    </revision>
  </page>
  <page>
    <title>FIXED in Fremantle Hall of Fame</title>
    <id>2985</id>
    <revision>
      <id>44302</id>
      <timestamp>2011-07-01T13:25:10Z</timestamp>
      <contributor>
        <username>farmatito</username>
        <id>2011</id>
      </contributor>
      <minor/>
      <comment>/* Who got the shirt already */</comment>
      <text xml:space="preserve">In the months before the release of the N900, a number of bugs in Bugzilla were closed with the enigmatic comment &quot;FIXED in Fremantle&quot;. This became such a common occurrence that the phrase even featured in a Maemo Talk drinking game, along with other gems like &quot;Is it a phone?&quot; and &quot;Does it come with a PIM suite?&quot; At the time, there were some complaints because many of these fixes would never see the day on older versions of the OS. Now that Fremantle has been released, we can finally see the great result which is a combination of all of those bugs reported and FIXED in Fremantle.

In one of the most secret actions known at the Maemo community, some core members close to the [[Bugsquad]] team decided to praise [http://maemo.org/profile/list/category/bugzilla_reported/ remarkable] [http://maemo.org/profile/list/category/bugzilla_comments/ contributors] of http://bugs.maemo.org during the Fremantle unstable releases. 

How? No less than with a prêt-à-porter shirt made of Amsterdam orange, maemo.org logo and FIXED IN FREMANTLE legend in the back - an exclusive design of our beloved artist Tim Samoff. Delivered in person at the Maemo Summit Grande Finale or by snail/fly mail.

== Who got the shirt already ==
FIXME: I just sent the original list to Quim via email. --[[User:timsamoff|timsamoff]] 15:19, 14 December 2009 (UTC)

* [[User:jukey|jukey]]
* [[User:dneary|dneary]]
* [[User:qgil|qgil]]
* [[User:andre|andre]]
* [[User:thp|thp]]
* [[User:peterschneider|peterschneider]]
* [[User:vdvsx|vdvsx]]
* [[User:conny|conny]]
* [[User:lma|lma]]
* [[User:jaffa|Jafa]]
* [[User:timsamoff|Tim Samoff]]
* [[User:sjgadsby|sjgadsby]]

FIXME: If you got one, add your name here</text>
    </revision>
  </page>
  <page>
    <title>FMMS</title>
    <id>3382</id>
    <revision>
      <id>37571</id>
      <timestamp>2010-08-06T19:27:22Z</timestamp>
      <contributor>
        <username>frals</username>
        <id>1206</id>
      </contributor>
      <comment>/* Tutorial */ updated instructions</comment>
      <text xml:space="preserve">'''fMMS''' is an application for MMS sending/receiving with GUI for Fremantle, written in python + gtk.

* [https://garage.maemo.org/projects/fmms Project home]

==Tutorial==
While the steps are generally the same for multiple providers, these instructions contains settings that are specific to '''T-Mobile USA'''

===Dependencies===
* Install [http://maemo.org/packages/view/fmms/ fMMS]; located in [[Extras]]

===Config===
#fMMS Setting
##Open fMMS, verify settings are correct in &quot;Internet connection&quot; settings. For list of operator settings (if the fields arent prefilled) see [[MMS]].

===Usage===
#Open fMMS, if not already running.
#Tap on the top center (where you see fMMS V )
#Hit '''New MMS'''
#Put in number to send mms to
#put in message
#put in attachment (photos)
#Connect to the connection called &quot;MMS&quot; (same place where you usually connect to wifi). You can do this before Step 4 if you want. For some reason, if I don't connect to this first, it doesn't work (I will get a &quot;network error&quot; message).
#Hit '''SEND'''

You should see a ''&quot;resizing&quot;'' notice and then a &quot;Message sent&quot; banner. Enjoy! :)

==See also==
* [http://talk.maemo.org/showthread.php?t=39737 Project announcement discussion thread]
* [[MMS|MMS Configuration Settings]]

[[Category:Software]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>FOSDEM 2009</title>
    <id>1410</id>
    <revision>
      <id>23556</id>
      <timestamp>2009-11-30T11:53:21Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">
'''Brussels, 7-8 February 2009'''
About Fosdem - http://fosdem.org

==Recommended sessions==
With a topic and/or a speaker somehow related to Maemo (add your own choices):

* [http://fosdem.org/2009/schedule/tracks/embedded Embedded Developer Room] contains several sessions, some of them about Maemo or closely related topics:
** [http://fosdem.org/2009/schedule/events/emb_hackable_1 Development on the Openmoko with hackable:1] by Pierre Pronchery. Know your neighbours!
** [http://fosdem.org/2009/schedule/events/emb_maemo_beagleboard Maemo on BeagleBoard] by Juha Kallioinen (who happens to work at Maemo SW).
** [http://fosdem.org/2009/schedule/events/emb_power_mgmt_omap3 Advanced powermanagement for OMAP3] by Peter De Schrijver (who happens to work at Maemo SW).
** [http://fosdem.org/2009/schedule/events/emb_emdebian_1_0 Emdebian 1.0 release - small &amp; super small Debian] by Neil Williams.
** [http://fosdem.org/2009/schedule/events/emb_wrapup Embedded Devroom wrap-up &amp; feedback session] by Philippe De Swert (who happens to work at Maemo SW).
* [http://fosdem.org/2009/schedule/events/gnome_hynerian The Hynerian Empire] by Zeeshan Ali (who happens to work at Maemo SW). Know about Rygel, the UPnP server planned to be included in Harmattan.
* [http://fosdem.org/2009/schedule/events/kde_koffice_2_0 KOffice 2.0: KOffice coming to KDE4] by Marijn Kruisselbrink, author of the [http://www.kdedevelopers.org/node/3879 Maemo port].
* [http://fosdem.org/2009/schedule/events/gnome_tracker Tracker] by Philip Van Hoof, involved in the Fremantle implementation.
* [http://fosdem.org/2009/schedule/events/opensuse_obs_crossdev Putting Cross Development Support into (OpenSUSE) OBS] by Martin Mohring. See [http://lizards.opensuse.org/2009/01/27/build-maemo-apps-with-opensuse-buildservice-it-works/ Build maemo-apps with openSUSE BuildService ? - It works !]
* [http://fosdem.org/2009/schedule/events/java_jalimo Jalimo: Cross-compiling OpenJDK using IcedTea and OpenEmbedded], by Robert Schuster (who knows a lot about Java &amp; Maemo)
* [http://fosdem.org/2009/schedule/events/upstart Upstart], by Scott James Remnant. Know more about the tool that boots Fremantle.
* [http://fosdem.org/2009/schedule/events/xd_webkit_ebook WebKit on ebook readers] by Marco Barisione, who knows about WebKit and Maemo.
* [http://fosdem.org/2009/schedule/events/moz_mobile_fennec Mobile/Fennec] and [http://fosdem.org/2009/schedule/events/moz_embedding Embedding] by Mark Finkle.


==Attendees==

Please keep the list in alphabetical order by first name.
{| class=&quot;wikitable&quot;
|- style=&quot;background-color: #eef&quot;
! Name !! Nick !! Friday Beer Event ? !! Maemo Dinner ?
|-
|  Andre Klapper|| andre__ || Don't know yet (late arrival) || Yes
|-
|  Jeremiah Foster|| jeremiah || Yes, but will be late-ish || Yes
|-
|  Juha Kallioinen|| kaltsi || Arriving on Saturday || Yes
|-
|  Kees Jongenburger || keesj || No  || Yes
|-
|  Lucas Maneos|| lma || Yes || Yes
|-
|  Marc-Andre Lureau || elmarco || Probably not || maybe
|-
|  Marc Ordinas i Llopis || [[User:marcoil|marcoil]] || Yes || Yes
|-
|  Marijn Kruisselbrink || Mek || Yes || Probably not
|-
|  Miia Ranta|| [[User:myrtti|Myrtti]]  || Maybe ||
|-
|  Nick Loeve|| trickie  || Yes ||
|-
|  Pierre-Luc Beaudoin || [[User:pierlux|pierlux]] || Yes || Yes
|-
|  Quim Gil|| qgil || Yes || Yes
|-
|  Siarhei Siamashka|| ssvb || Yes || Yes
|-
|  Valério Valério|| VDVsx || Yes || Yes
|-
|  Zeeshan Ali || zeenix || Yes || Yes 
|-
|  || timeless  ||  No || Yes
|-
|}

== Dinner, anyone? ==
We have booked a big table for SATURDAY at 20h

 Restaurant Au Boeuf qui Rit
 32 Rue des Bouchers (the little street with plenty of seafood restaurants)
 1000 Brussels
 02.512.95.45

This one has been choosed because it has the big table and also options for fish, meat and I some vegetarian too. (also I had 5 minutes to find the place and run to FOSDEM)  :) 

Some of us will meet at 19:15 at the [http://fosdem.org/2009/maps/campus main FOSDEM entrance]. Otherwise you can just be there on time.

There is a GNOME Beer Event starting at 19h30 i La Porte Noire - Rue Alexiens, 67 (in the center, near the restaurant as well). It will last till late, GNOME sources say.

Add yourself to the list. We have made a reservation &quot;for about 20 people&quot; and a few more would fit if needed.

* Kees Jongenburger
* Quim
* timeless
* VDVsx
* andre
* zeenix
* pierlux (maybe)
* marcoil (maybe)
* ssvb
* kaltsi
* lma (+1, in case reservation needed)
* jeremiah [Please note I will be in the debian dev room announcing speakers until 19:00 at least.]

[[Category:Community]]
[[Category:Development]]
[[Category:Events]]</text>
    </revision>
  </page>
  <page>
    <title>FOSDEM 2010</title>
    <id>2819</id>
    <revision>
      <id>45958</id>
      <timestamp>2011-12-10T23:07:36Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45954 by [[Special:Contributions/109.230.216.60|109.230.216.60]] ([[User talk:109.230.216.60|Talk]]) unproductive edit aka vandalism. If info considered obsolete then request page delete</comment>
      <text xml:space="preserve">'''FOSDEM''' is a yearly free and non-commercial event in Brussels, from February 5th till February 7th 2010.  It's organized by the community, for the community. Its goal is to provide free and open source developers a place to meet.  This page is to coordinate Maemo participation.   See also the Maemo activity on [[FOSDEM 2009]]


Join the [http://talk.maemo.org/showthread.php?p=356121 Talk discussion thread]

== Tracks ==

There will be Maemo content in several different tracks this year, reflecting the nature of the project as both a contributor to upstream projects and an entire distribution.

Here you will find information about Maemo content in each of the tracks.

=== [http://fosdem.org/2010/schedule/rooms/chavanne Security - main track] ===

* '''[http://fosdem.org/2010/schedule/events/maemo Maemo 6 security framework, making happy DRM business and freedom lovers with the same device]''': Elena Reshetova 
*: Saturday 14:00 - 14:45
*: Room: Chavanne

=== [http://fosdem.org/2010/schedule/devrooms/embedded Embedded] ===

The biggest contingent of Maemo-related content will be in the Embedded track.

; Room
: Lameere
; Description
: The embedded/mobile room is the place to be for people with an interest in everything small, hidden, with different CPU's and/or a gadget or mobile device.
Here we discuss and present things like hacking your phone, PDA or router and everything about cross-compiling. The people that gather here are usually doing tons of cool stuff with small low-powered devices, from playing music to controlling big and complex systems.

Maemo related content:
* '''[http://fosdem.org/2010/schedule/events/emb_seriesfinale SeriesFinale, a TV show tracker for Maemo 5]''': Joaquim Rocha
*: Sunday 10:30 - 11:00
* '''[http://fosdem.org/2010/schedule/events/emb_ofono Ofono and how to use the Nokia modem plugin]''': Aki Niemi
*: Sunday 11:30 - 12:00
* '''[http://www.fosdem.org/2010/schedule/events/emb_dspbridge ARM and DSP talking to each other in OMAP3: the dspbridge]''': Víctor Manuel Jáquez Leal
*: Sunday 16:00 - 17:00

=== [http://fosdem.org/2010/schedule/devrooms/crossdesktop Cross-desktop] ===

; Room
: H.1309

'''Maemo related content'''
* '''[http://fosdem.org/2010/schedule/events/xd_gupnp_rygel GUPnP &amp; Rygel: Liberating Digital Living]''': Zeeshan Ali
*: Sunday 10:15 - 11:00
* '''[http://fosdem.org/2010/schedule/events/xd_syncml SyncML]''': Patrick Ohly
*: Sunday 15:15 - 16:00

=== [http://fosdem.org/2010/schedule/devrooms/distributions Crossdistro Summit] ===
; Room
: H.1302 / H.1308
; Description
: The FOSDEM organisers want to push the envelope of their mission even further by organizing something along the lines of a &quot;distribution summit&quot; during FOSDEM 2010.
: The idea is that rather than having several distributions with their own respective and individual Developer Room, we will host mixed conference rooms where talks and sessions will be organized by topic, with contributors from all distributions attending and participating. Any linux distribution can participate.

'''Maemo related content'''
* '''[http://fosdem.org/2010/schedule/events/dist_maemo_council The Maemo Council: A case study in governance]''': Dave Neary
*: Saturday 14:00 - 14:45 H.1308
* '''[http://www.fosdem.org/2010/schedule/events/dist_mobile_upstream Mobile distributions and upstream challenges]'''
*: Saturday 16:45 - 17:30 H.1308
* '''[http://fosdem.org/2010/schedule/events/dist_gnome Working with GNOME upstream]''': Vincent Untz
*: A workshop on what can be done to make it easier to work with upstream projects like GNOME
*: Saturday 17.30 - 18.15 H.1302

=== [http://www.fosdem.org/2010/schedule/devrooms/xorg X.org] ===
; Room
: AW1.124
'''Maemo related content'''
* '''[http://www.fosdem.org/2010/schedule/events/xorg_shiny Polishing X11 and making it shiny]''': Daniel Stone
*: Sunday 13:00 - 13:45

=== [http://www.fosdem.org/2010/schedule/devrooms/mozilla Mozilla] ===
; Room
: H.1301
* '''[http://www.fosdem.org/2010/schedule/events/moz_firefox_mobile Firefox Mobile]''': Mark Finkle
*: Sunday 11:15 - 12:30

== Saturday evening ==

Unless anyone has a better idea, let's meet up in [http://www.laportenoire.be/ la Porte Noir] from 19h30 on (or later), where the GNOME hackers are meeting. Apparently they have a great [http://www.laportenoire.be/carte.php?clef=Fut collection of beers].
Address: La Porte Noir, 67 rue des Alexiens, Bruxelles

==Attendees==

Please keep the list in alphabetical order by first name.
{| class=&quot;wikitable sortable&quot;
|+ List of attendees
|-
! Name !! Nick !! Attendance !! class=&quot;unsortable&quot; | Friday Beer Event? !! class=&quot;unsortable&quot; | Maemo Dinner?  !! class=&quot;unsortable&quot; | More? 
|-
|  Alberto Garcia || [http://maemo.org/profile/view/agarcia/ agarcia] || Confirmed || Probably || Probably ||
|-
|  Andrea Borgia || [http://maemo.org/profile/view/aboaboit/ aboaboit] || Confirmed || Probably || Maybe ||
|-
|  Andre Klapper || [http://maemo.org/profile/view/andre/ andre] || Yeah || Sure || I'd love to ||
|-
|  Arnim Sauerbier || [http://maemo.org/profile/view/arnims/ arnims] || Confirmed || Yes || Yes || Hanging out in Aachen
|-
|  Asbjørn Sloth Tønnesen || [http://maemo.org/profile/view/asbjornit/ asbjornit] || Confirmed || Sure || No || Will bring N900
|-
| Chris Phillips || [http://maemo.org/profile/view/chrisp7/ chrisp7] || Possibly, depends on costs/time off || If Im going, definitely || ditto ||
|-
| Dave Neary || [http://maemo.org/profile/view/dneary/ dneary] || Yes || No ||  Yup || Flying with Easyjet, arriving around 10pm Friday.
|-
|  David King || [http://maemo.org/profile/view/amigadave/ amigadave] || Confirmed || Maybe || Sure ||
|-
|  Ekaterina Gerasimova || [http://maemo.org/profile/view/kittykat/ kittykat] || Confirmed || Maybe || Sure ||
|-
|  Florian Boor || [http://maemo.org/profile/view/florian/ florian] || Confirmed || No || Maybe  ||
|-
|  Gerard Braad || [http://maemo.org/profile/view/gbraad/ gbraad] || Planned, not confirmed || ? || Probably ||
|-
|  Henri Bergius || [http://maemo.org/profile/view/bergie/ bergie] || Yes || Yes || Maybe ||
|-
|  Jeremiah C. Foster || [http://maemo.org/profile/view/jeremiah/ Jeremiah] ||  Confirmed || Most likely will show up, won't get drunk though. || Let's make this happen. :) ||
|-
| [[User:Guaka|Kasper Souren]]  || [http://maemo.org/profile/view/guaka guaka] || Definitely. || Likely || Possibly  || [http://bewelcome.org/people/guaka can host!]
|-
|  Kees Jongenburger || [http://maemo.org/profile/view/keesj/ keesj] || Confirmed || No || No ||
|-
|  Lucas Maneos || [http://maemo.org/profile/view/lma/ lma] || Confirmed || Probably || Probably ||
|-
|  Marc Blumenfrucht || [http://maemo.org/profile/view/realitygaps/ realitygaps] || Confirmed || Yes || Probably ||
|-
|  Marcin Juszkiewicz || [http://maemo.org/profile/view/hrw/ hrw] || Confirmed || Yes || Rather not || Catch me at OpenEmbedded stand
|-
|  Martin Dengler || [http://maemo.org/profile/view/mdengler/ mtd] || Confirmed || Yes || Yes || Will bring N900
|-
|  Michael Hasselmann || [http://maemo.org/profile/view/mikhas mikhas] || Confirmed || Confirmed || OK! ||
|-
|  Mustali Dalal || [http://maemo.org/profile/view/archebyte/ archebyte] || Confirmed || Yes || Yes || Will bring [http://myn900.wordpress.com my N900]
|-
|  Per Wille || [http://maemo.org/profile/view/wille wille] || Confirmed || Yes ||Probably ||
|-
|  Peter De Schrijver || [http://maemo.org/profile/view/p2mate p2mate] || Confirmed || Yes || Maybe || 
|}

== Other useful information ==
* [https://mobilevikings.com/ Mobile Vikings] offers prepaid Belgian SIM cards with 1 GB data, 1000 SMS messages and 60 minutes calling for 15 euro (if porting number, else the card costs 15 euro in addition to the minimum top-up of 15 euro to get data/sms offer)

* [http://www.brusselsinternational.be/wabxlint/nl/12290/brussel-groen-mobiliteit-fietsen.act] Bicycle Rental opportunities (weather permitting)
[[Category:Community]]
[[Category:Development]]
[[Category:Events]]</text>
    </revision>
  </page>
  <page>
    <title>FREE-mantle</title>
    <id>5111</id>
    <revision>
      <id>47086</id>
      <timestamp>2012-04-04T10:06:04Z</timestamp>
      <contributor>
        <username>pali</username>
        <id>2764</id>
      </contributor>
      <comment>fix link for Fremantle_closed_packages</comment>
      <text xml:space="preserve">FREE-mantle is movement to ''Free our Phone''. 


Ultimate goal is to have totally Free (as freedom) phone. This project is not competing with [http://wiki.maemo.org/CSSU CSSU] or [http://wiki.maemo.org/Kernel_Power PowerKernel], but using them and pushing results forward. This is not either competing with Debian/Ubuntu/Nemo/Fedora on N900, but hopefully producing building blocks for them also.


One way to achieve Free phone is to start from Maemo5-Fremantle and 
drop/rewrite/replace every [http://wiki.maemo.org/Fremantle_closed_packages closed source packages]. Some of them are easy to replace, some are already replaced, some has useful features...


Benefits of 100% Free system
*Recompile everything using any optimization/flags
*Freely redistributable firmware image</text>
    </revision>
  </page>
  <page>
    <title>Fcron</title>
    <id>3749</id>
    <revision>
      <id>43039</id>
      <timestamp>2011-04-12T14:56:14Z</timestamp>
      <contributor>
        <username>mdengler</username>
        <id>1884</id>
      </contributor>
      <comment>/* Update e-mail */ improve script</comment>
      <text xml:space="preserve">[http://fcron.free.fr fcron] is standard Linux scheduler used to schedule any command at any time. So this means that it doesn't have any limits and you can schedule just about anything. It is run as daemon in the background so you don't need to worry about it. You set it up with a config file which contains schedule.

==Alternatives==

'''cron'''

Why not: cron is older than fcron and doesn't sleep between events.


'''anacron'''

Why not: anacron is used to schedule daily jobs, fcron can schedule to minutes.


[http://maemo.org/packages/view/ses/ '''ses''']

Why not: ses is buggy, buggy and buggy. It doesn't even uninstall properly.


[http://talk.maemo.org/showthread.php?t=46594 '''Alarmed''']

Alarmed uses the Nokia's (non-standard) &quot;alarmd&quot; daemon which is already part of Maemo 5 and uses Python/Qt for GUI. You can use custom commands and set single and/or recurring events.

==Current issues==

# Current version for Maemo is not the latest available ''(although the difference is minor)''.
# When you edit fcrontab it wants to execute vi from /scratchbox ''(editor variable has to be defined manually each time fcrontab is run)''.
# Some stuff has to be done manually after the installation ''(with proper packaging the whole &quot;Installation&quot; chapter from this wiki would be unnecessary)''.
# It needs to be added to official maemo.org repositories so it can be used by anyone ''(it is currently availible in user ruskie's repository)''.

But these are not major things and as you can see it can be used already - current solutions and workarounds are in ''(brackets)''. Otherwise it's stable, does not have important bugs and does not affect battery life at all. It's a mature software which just needs some manual work.

==Installation==

Everything should be done from [[root access|root terminal]]. First you need to download the .deb from [https://repo.codemages.net/opt/fcron_3.0.1-2_armel_opt.deb ruskie's repository]. Put it somewhere on the device and execute the following commands, one by one:

 dpkg -i /path/to/deb/fcron_3.0.1-2_armel_opt.deb
 useradd fcron
 chown root:fcron /etc/fcron.*
 chmod 644 /etc/fcron.*
 chown -R fcron:fcron /var/spool/fcron
 /etc/init.d/fcron start

Now fcron has to be set to start on boot. This is done by creating a proper [[startup script]]. If you don't already have a custom one, then you need to create an empty file in /etc/event.d/ folder named as you like (&quot;fcron&quot; for example). Put this into the file:

 start on started hildon-desktop
 stop on starting shutdown
 console none
 service
 script
 /etc/init.d/fcron start
 end script

And save it. This makes fcron run at startup.

==Configuration==

fcrontab is a program which parses config file so fcron daemon can use it. It is used to modify schedule. First edit fcron's global configuration file, which is located at /etc/fcron.conf. The last configuration entry (line) must be changed to:

 editor = /usr/bin/vi

This will use vi as fcrontab editor. You can use another editor. If this doesn't work, you can manually define editor every time before fcrontab is run. The command is run from the root terminal:

 export EDITOR=vi

Next, fcrontab must be executed in edit mode:

 fcrontab -e

The config file opens and it is empty first time we open it. Now we will enter commands we would like to schedule. An example config file looks like:

 !nolog(true)
 
 # COMMENT
 0 9 * * 1-5 run-standalone.sh /path/to/script/silent_profile.sh
 &lt;more scheduled scripts&gt;
 
 !bootrun(true)
 0 0 1 * * /path/to/script/reset_gprs_data_counter.sh
 &lt;a backup script also suits here if you have one&gt;

''!nolog(true)'' is the first line and specifies that successful executions aren't logged (we really don't need or want that). Also, if we use a script with dbus call, ''run-standalone.sh'' must be in front of it. It sets up environment variables correctly for sending dbus calls as root. ''!bootrun(true)'' specifies that commands after this line are executed at next boot if system wasn't on when they should be executed. This is useful only for clearing the GPRS counter or backup scripts, for example if you switch the phone off every night the GPRS counter will still be reset every first of the month when you turn the phone on in the morning.

The first five fields are separated by a space:

'''MINUTE''' space '''HOUR''' space '''DAY_OF_MONTH''' space '''MONTH''' space '''DAY_OF_WEEK''' space '''/path/script.sh'''

To interpret the two example lines: GPRS data counter is reset every 1st of the month at 00:00. Silent profile is set every Monday to Friday at 9:00. Possible values for fields are:

* '''Minute''': 0-59
* '''Hour''': 0-23
* '''Day of month''': 1-31
* '''Month''': 1-12
* '''Day of week''': 0-7 (0 and 7 are both Sunday)

Asterisk (*) means &quot;any&quot;, or to put it differently: it means that this value does not define when the command is run.

After saving the edited config file, fcrontab will install it automatically and it will work from that moment on. Also don't forget that commenting out lines is useful for temporarily disabling a command. Just put an # in front of the line.

==Scripts==

So we have fcron now executing scripts at defined time. But we still need to provide scripts that are executed. Here is a collection of them, but you can easily make new ones based on the example scripts here and [[Phone control]] wiki page. Don't forget to add them here though. And keep in mind that they have to be marked executable (&lt;code&gt;chmod +x script.sh&lt;/code&gt;) to work. The second D-Bus call in some scripts is a notification and can be modified, removed or added.

===Profiles===

====Silent====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
dbus-send --type=method_call --dest=com.nokia.profiled /com/nokia/profiled com.nokia.profiled.set_profile string:&quot;silent&quot;
dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:&quot;Profile is set to Silent&quot;
&lt;/source&gt;

====General====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
dbus-send --type=method_call --dest=com.nokia.profiled /com/nokia/profiled com.nokia.profiled.set_profile string:&quot;general&quot;
dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:&quot;Profile is set to General&quot;
&lt;/source&gt;

===Radio mode===

====2G====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:1
dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:&quot;Network mode is set to 2G&quot;
&lt;/source&gt;

====3G====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:2
dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:&quot;Network mode is set to 3G&quot;
&lt;/source&gt;

====Dual====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:0
dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:&quot;Network mode is set to Dual&quot;
&lt;/source&gt;

===Networking===

====Disconnect internet connection====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true
dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:&quot;Internet connection is disconnected&quot;
&lt;/source&gt;

====Connect to any saved internet connection====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
dbus-send --system --type=method_call --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:&quot;[ANY]&quot; uint32:0
&lt;/source&gt;

====Disconnect mobile network====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
dbus-send --system --type=method_call --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.set_radio boolean:false
dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:&quot;Mobile network is disconnected&quot;
&lt;/source&gt;

====Connect mobile network====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
dbus-send --system --type=method_call --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.set_radio boolean:true
dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:&quot;Mobile network is connected&quot;
&lt;/source&gt;

====Disable Wi-Fi====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
run-standalone.sh dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true
ifconfig wlan0 down
rmmod wl12xx
run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:'Wi-Fi disabled'
&lt;/source&gt;

====Enable Wi-Fi====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
modprobe wl12xx
wl1251-cal
stop wlancond
start wlancond
ifconfig wlan0 up
run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:'Wi-Fi enabled'
&lt;/source&gt;

===Securing device===

====Lock====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
dbus-send --system --type=method_call --dest=com.nokia.system_ui /com/nokia/system_ui/request com.nokia.system_ui.request.devlock_open string:&quot;com.nokia.mce&quot; string:&quot;/com/nokia/mce/request&quot; string:&quot;com.nokia.mce.request&quot; string:&quot;devlock_callback&quot; uint32:'3'
&lt;/source&gt;

====Unlock====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
dbus-send --system --type=method_call --dest=com.nokia.system_ui /com/nokia/system_ui/request com.nokia.system_ui.request.devlock_close string:&quot;com.nokia.mce&quot; string:&quot;/com/nokia/mce/request&quot; string:&quot;com.nokia.mce.request&quot; string:&quot;devlock_callback&quot; uint32:'0'
&lt;/source&gt;

===Reset GPRS data counter===

This script is now PR1.2 compliant and does not work on previous versions.

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
gconftool-2 -u /system/osso/connectivity/network_type/GPRS/gprs_home_rx_bytes
gconftool-2 -u /system/osso/connectivity/network_type/GPRS/gprs_home_tx_bytes
gconftool-2 -s /system/osso/connectivity/network_type/GPRS/gprs_home_reset_time --type=string $(date +%s)
&lt;/source&gt;

===Update e-mail===

This script has already necessary &lt;code&gt;run-standalone.sh&lt;/code&gt; prefixes so the whole script does not need to be run through &lt;code&gt;run-standalone.sh&lt;/code&gt; in fcrontab.

It checks whether the phone is connected to the internet and if it is not, connect is done, send and receive is performed and then script waits about minute and a half (Modest e-mail client which N900 uses is slow in this aspect) and if the phone is connected to a Wi-Fi, it stays connected and if it is not (is connected to GPRS), it disconnects.

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
#
# n900 / maemo script to trigger an email fetch; connect to the internet if possible &amp; necessary
#
# Copyright: 2011 Martin Dengler &lt;martin@martindengler.com&gt;
# Dual License: MIT / GPL v3+
# Latest version: http://wiki.maemo.org/Fcron#Update_e-mail

retrys=5

while [ $retrys -gt 0 ] ; do
    if /sbin/route | grep -q &quot;^default &quot; ; then
        break  #...we are connected
    else
        run-standalone.sh dbus-send --system --type=method_call --dest=com.nokia.icd --print-reply /com/nokia/icd com.nokia.icd.connect string:&quot;[ANY]&quot; uint32:0
        retrys=`expr $retrys - 1`
        sleep 1
    fi
done

/sbin/route | grep -q &quot;^default &quot; || exit 1

run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:&quot;Updating e-mail...&quot;
run-standalone.sh dbus-send --type=method_call --dest=com.nokia.modest /com/nokia/modest com.nokia.modest.SendReceive

sleep 120

# if we connected just for this, disconnect
if [ $retrys -lt 5 ]; then
  run-standalone.sh dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true
fi

# no need to send another notification because we can't be sure the email updated anyway, and if you're still staring at the screen after two minutes waiting for a five-second notification to appear you need something better to do
&lt;/source&gt;

===Backup===

The scripts used for backing up can be found on [[Manual backup and restore]] wiki page. They overlap with scripts needed here, so they should be collected there.

===Reboot===

Just put it directly in fcrontab:

 0 0 * * * reboot

Warning 1: Never put it after ''!bootrun(true)'' line in fcrontab! It could result in an endless reboot loop.

Warning 2: Think twice before making a wrong time entry in fcrontab! The example here should suffice for most (it reboots device every midnight). Change the two zeroes in other numbers if you want, but don't put asterisks or ranges in those two fields!

Also remember that PIN has to be entered after a reboot. There is another way with sending reboot call via D-Bus which doesn't request to reenter PIN, but that is a forced reboot (no filesystem synchronization, etc.) and thus not the proper way of doing it.

===Tweakr profiles===

This script is not tested yet. Also you must replace both &quot;tweakrprofile&quot; instances with the name of your profile (which should not be general or silent and should not be capitalized).

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh

DBUSSET=&quot;dbus-send --print-reply --dest='com.nokia.profiled' /com/nokia/profiled com.nokia.profiled.set_value string:general string:\'%s\' string:\'%s\'&quot;

dbus-send --type=method_call --dest=com.nokia.profiled /com/nokia/profiled com.nokia.profiled.set_profile string:&quot;general&quot;

gconftool-2 -s /system/tweakr/current-preset --type=string &quot;tweakrprofile&quot;
gconftool-2 -a /system/tweakr/tweakrprofile|sed 's/^ //'|sed 's/ = /=/'|awk -F'=' &quot;{cmd=sprintf(\&quot;${DBUSSET}\&quot;, \$1, \$2);system(cmd)}&quot;
&lt;/source&gt;

===Auto 2G with Wi-Fi===

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
#
# auto2g by J.LeFebvre
#
# Automatically sets 2G cellular mode when a valid Wi-Fi connection is running
# This helps conserve battery life
#
# If an automatic connection to 3G is required when not on Wi-Fi then uncomment the two dbus commands under &quot;set to 3G&quot; line
#
if `/sbin/ifconfig wlan0 2&gt;/dev/null | grep -q RUNNING`; then
   if `dbus-send --system --print-reply --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_selected_radio_access_technology | grep -q 'byte 2'`; then
      if (/bin/ping -c 1 www.google.com &gt; /dev/null); then
         # set to 2G
         dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:1
         dbus-send --system --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:'2G (GSM) cellular mode set'
      fi
   fi;
else
   if `dbus-send --system --print-reply --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_selected_radio_access_technology | grep -q 'byte 1'`; then
      # set to 3G
      # dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:2
      # dbus-send --system --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:'3G cellular mode set'
      echo '' &gt; /dev/null
   fi
fi
&lt;/source&gt;

===Gradually increase the volume===

For an example, you can use this if you softly want to wake up to music.

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
# Gradually increase the volume, by raffe 
for i in 0 10 20 30 40 50 60 70 80 90 100
do
  dbus-send --session --type=method_call --dest=com.nokia.mafw.renderer.Mafw-Gst-Renderer-Plugin.gstrenderer /com/nokia/mafw/renderer/gstrenderer com.nokia.mafw.extension.set_extension_property string:'volume' variant:uint32:$i
  /bin/sleep 5
done
&lt;/source&gt;
Note:tested and OK on PR1.2

[[Category:Software]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Fennec</title>
    <id>3546</id>
    <revision>
      <id>40302</id>
      <timestamp>2010-11-25T08:53:22Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Firefox mobile]]</text>
    </revision>
  </page>
  <page>
    <title>File:01 MADDE create key.jpg</title>
    <id>3742</id>
    <revision>
      <id>39021</id>
      <timestamp>2010-09-22T13:47:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:01 client start.png</title>
    <id>3656</id>
    <revision>
      <id>39022</id>
      <timestamp>2010-09-22T13:48:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cagegorize</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:01 linux qtcreator add qmake.png</title>
    <id>3768</id>
    <revision>
      <id>39327</id>
      <timestamp>2010-10-04T13:28:16Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:01 mac qtcreator madde.png</title>
    <id>3704</id>
    <revision>
      <id>39328</id>
      <timestamp>2010-10-04T13:28:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:01 pccon select.jpg</title>
    <id>3658</id>
    <revision>
      <id>39329</id>
      <timestamp>2010-10-04T13:28:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:01 project created.png</title>
    <id>3555</id>
    <revision>
      <id>39330</id>
      <timestamp>2010-10-04T13:29:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:01 qtcreator components.JPG</title>
    <id>3659</id>
    <revision>
      <id>39331</id>
      <timestamp>2010-10-04T13:30:41Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:02 linux qtcreator select qmake.png</title>
    <id>3769</id>
    <revision>
      <id>39333</id>
      <timestamp>2010-10-04T13:31:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:02 mac usbnetwork.png</title>
    <id>3705</id>
    <revision>
      <id>39334</id>
      <timestamp>2010-10-04T13:32:28Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:02 pccon config.jpg</title>
    <id>3661</id>
    <revision>
      <id>39335</id>
      <timestamp>2010-10-04T13:32:42Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:02 qtcreator qtversions.jpg</title>
    <id>3662</id>
    <revision>
      <id>39336</id>
      <timestamp>2010-10-04T13:32:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:02 remove bars.png</title>
    <id>3556</id>
    <revision>
      <id>39337</id>
      <timestamp>2010-10-04T13:35:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:031730mod.jpg</title>
    <id>4426</id>
    <revision>
      <id>38275</id>
      <timestamp>2010-09-01T08:22:25Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:03 change size.png</title>
    <id>3557</id>
    <revision>
      <id>39338</id>
      <timestamp>2010-10-04T13:36:16Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:03 client ether.png</title>
    <id>3663</id>
    <revision>
      <id>39339</id>
      <timestamp>2010-10-04T13:36:42Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:03 linux qtcreator qmake rebuild.png</title>
    <id>3770</id>
    <revision>
      <id>39340</id>
      <timestamp>2010-10-04T13:37:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:03 mac qtcreator usbnetwork.png</title>
    <id>3706</id>
    <revision>
      <id>39341</id>
      <timestamp>2010-10-04T13:37:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:03 qtcreator add qmake.jpg</title>
    <id>3664</id>
    <revision>
      <id>39342</id>
      <timestamp>2010-10-04T13:37:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:04 a client edit.png</title>
    <id>3665</id>
    <revision>
      <id>43748</id>
      <timestamp>2011-06-03T08:15:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:04 b client ready.png</title>
    <id>3666</id>
    <revision>
      <id>43747</id>
      <timestamp>2011-06-03T08:14:29Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:04 button layout.png</title>
    <id>3558</id>
    <revision>
      <id>43800</id>
      <timestamp>2011-06-03T12:33:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:04 linux qtcreator qmake ready.png</title>
    <id>3771</id>
    <revision>
      <id>43749</id>
      <timestamp>2011-06-03T08:17:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:04 mac qtcreator wlan.png</title>
    <id>3707</id>
    <revision>
      <id>43750</id>
      <timestamp>2011-06-03T08:17:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:04 qtcreator init.jpg</title>
    <id>3667</id>
    <revision>
      <id>43751</id>
      <timestamp>2011-06-03T08:19:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:05 client pw.png</title>
    <id>3668</id>
    <revision>
      <id>43752</id>
      <timestamp>2011-06-03T08:20:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:05 creator add device.jpg</title>
    <id>3669</id>
    <revision>
      <id>43753</id>
      <timestamp>2011-06-03T08:22:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:05 linux network.png</title>
    <id>3772</id>
    <revision>
      <id>43754</id>
      <timestamp>2011-06-03T08:24:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:05 list button grid.png</title>
    <id>3559</id>
    <revision>
      <id>43801</id>
      <timestamp>2011-06-03T12:33:30Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:05 mac qtcreator select madde.png</title>
    <id>3708</id>
    <revision>
      <id>43755</id>
      <timestamp>2011-06-03T08:26:22Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:05 qtcreator maemodev.jpg</title>
    <id>3670</id>
    <revision>
      <id>43756</id>
      <timestamp>2011-06-03T08:27:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:06 linux configure usb.png</title>
    <id>3773</id>
    <revision>
      <id>43757</id>
      <timestamp>2011-06-03T09:10:18Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:06 mac qtcreator init.png</title>
    <id>3709</id>
    <revision>
      <id>43758</id>
      <timestamp>2011-06-03T09:11:51Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:06 qtcreator build.jpg</title>
    <id>3671</id>
    <revision>
      <id>43759</id>
      <timestamp>2011-06-03T09:13:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:06 result.png</title>
    <id>3560</id>
    <revision>
      <id>43760</id>
      <timestamp>2011-06-03T09:16:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:07 linux qtcreator usb.png</title>
    <id>3774</id>
    <revision>
      <id>43761</id>
      <timestamp>2011-06-03T09:19:24Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:07 mac qtcreator maemo build.png</title>
    <id>3710</id>
    <revision>
      <id>43762</id>
      <timestamp>2011-06-03T09:24:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:07 qtcreator selectdev.jpg</title>
    <id>3672</id>
    <revision>
      <id>43763</id>
      <timestamp>2011-06-03T09:25:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:08 linux qtcreator wlan.png</title>
    <id>3775</id>
    <revision>
      <id>43764</id>
      <timestamp>2011-06-03T09:27:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:08 mac qtcreator maemo run.png</title>
    <id>3711</id>
    <revision>
      <id>43765</id>
      <timestamp>2011-06-03T09:28:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:08 qtcreator final.jpg</title>
    <id>3673</id>
    <revision>
      <id>43766</id>
      <timestamp>2011-06-03T09:31:02Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:09 linux keygen.png</title>
    <id>3776</id>
    <revision>
      <id>43767</id>
      <timestamp>2011-06-03T09:32:10Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:09 mac qtcreator final.png</title>
    <id>3712</id>
    <revision>
      <id>43768</id>
      <timestamp>2011-06-03T09:34:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:09 qtcreator deploy key.jpg</title>
    <id>3743</id>
    <revision>
      <id>43769</id>
      <timestamp>2011-06-03T09:39:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:1-1.png</title>
    <id>5069</id>
    <revision>
      <id>46121</id>
      <timestamp>2011-12-29T07:36:06Z</timestamp>
      <contributor>
        <username>bizoom</username>
        <id>4894</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:1-1.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:1.png</title>
    <id>4304</id>
    <revision>
      <id>46119</id>
      <timestamp>2011-12-29T07:06:10Z</timestamp>
      <contributor>
        <username>bizoom</username>
        <id>4894</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:1.png]]&quot;: desktop 1</comment>
      <text xml:space="preserve">1</text>
    </revision>
  </page>
  <page>
    <title>File:10072011102.jpg</title>
    <id>4928</id>
    <revision>
      <id>44457</id>
      <timestamp>2011-07-10T17:35:28Z</timestamp>
      <contributor>
        <username>ammyt</username>
        <id>3702</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:10072011102.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:10 linux select pubkey.png</title>
    <id>3777</id>
    <revision>
      <id>43770</id>
      <timestamp>2011-06-03T09:41:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:10 mac mad-dev wlan.png</title>
    <id>3713</id>
    <revision>
      <id>43771</id>
      <timestamp>2011-06-03T09:43:38Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:10 qtcreator key deployed.jpg</title>
    <id>3745</id>
    <revision>
      <id>43772</id>
      <timestamp>2011-06-03T09:52:14Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:10hvs6s.jpg</title>
    <id>4466</id>
    <revision>
      <id>39062</id>
      <timestamp>2010-09-23T09:33:55Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:11 linux setkey.png</title>
    <id>3778</id>
    <revision>
      <id>43773</id>
      <timestamp>2011-06-03T09:54:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:12 linux initial config.png</title>
    <id>3779</id>
    <revision>
      <id>43774</id>
      <timestamp>2011-06-03T10:00:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:13 linux start new project.png</title>
    <id>3780</id>
    <revision>
      <id>43775</id>
      <timestamp>2011-06-03T10:03:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:14 linux select device.png</title>
    <id>3781</id>
    <revision>
      <id>43776</id>
      <timestamp>2011-06-03T10:03:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:15 linux select runtime.png</title>
    <id>3782</id>
    <revision>
      <id>43777</id>
      <timestamp>2011-06-03T10:05:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:MADDE]]</text>
    </revision>
  </page>
  <page>
    <title>File:169rlh2.png</title>
    <id>4023</id>
    <revision>
      <id>33503</id>
      <timestamp>2010-04-26T18:42:26Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:20091219 001.jpg</title>
    <id>3208</id>
    <revision>
      <id>24882</id>
      <timestamp>2009-12-21T09:30:43Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:20091219 001.jpg]]&quot;</comment>
      <text xml:space="preserve">Offline chess concept UI</text>
    </revision>
  </page>
  <page>
    <title>File:2009 summer of code logo.png</title>
    <id>1574</id>
    <revision>
      <id>39031</id>
      <timestamp>2010-09-22T14:04:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>File:2011-07-26 12-48-59.png</title>
    <id>4955</id>
    <revision>
      <id>44674</id>
      <timestamp>2011-07-26T19:54:31Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Miniature dirty login page.</comment>
      <text xml:space="preserve">Miniature dirty login page.</text>
    </revision>
  </page>
  <page>
    <title>File:2011-07-26 16-56-32.png</title>
    <id>4956</id>
    <revision>
      <id>44676</id>
      <timestamp>2011-07-27T02:35:50Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>First version of the board window. I still don't know how the tools bar got there instead of the bottom...</comment>
      <text xml:space="preserve">First version of the board window. I still don't know how the tools bar got there instead of the bottom...</text>
    </revision>
  </page>
  <page>
    <title>File:2011-07-27 14-02-59.png</title>
    <id>4957</id>
    <revision>
      <id>44683</id>
      <timestamp>2011-07-27T21:09:13Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Miniature chess board test.</comment>
      <text xml:space="preserve">Miniature chess board test.</text>
    </revision>
  </page>
  <page>
    <title>File:2011-08-12 16-25-47.png</title>
    <id>4967</id>
    <revision>
      <id>44846</id>
      <timestamp>2011-08-12T23:41:10Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Projected Miniature's online board. It's a real screenshot taken from the UI code available at https://gitorious.org/testdef/testdef but it lacks the Miniature backend to play real games. Soon?</comment>
      <text xml:space="preserve">Projected Miniature's online board. It's a real screenshot taken from the UI code available at https://gitorious.org/testdef/testdef but it lacks the Miniature backend to play real games. Soon?</text>
    </revision>
  </page>
  <page>
    <title>File:2011-08-22 13-53-16.png</title>
    <id>4974</id>
    <revision>
      <id>44951</id>
      <timestamp>2011-08-22T23:48:07Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <text xml:space="preserve">Miniature: list of games looking for an opponent(or &quot;seeks&quot;). The color of the item shows whether the player has a preference for a color or not.</text>
    </revision>
  </page>
  <page>
    <title>File:2011-08-22 13-53-40.png</title>
    <id>4975</id>
    <revision>
      <id>44928</id>
      <timestamp>2011-08-22T22:29:41Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Miniature: selecting a game highlights it and adds a &quot;+&quot; to start the game.</comment>
      <text xml:space="preserve">Miniature: selecting a game highlights it and adds a &quot;+&quot; to start the game.</text>
    </revision>
  </page>
  <page>
    <title>File:2011-08-22 13-54-11.png</title>
    <id>4976</id>
    <revision>
      <id>44929</id>
      <timestamp>2011-08-22T22:30:34Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Miniature: all FICS chess variants are supported (in theory).</comment>
      <text xml:space="preserve">Miniature: all FICS chess variants are supported (in theory).</text>
    </revision>
  </page>
  <page>
    <title>File:2011-08-22 13-54-33.png</title>
    <id>4977</id>
    <revision>
      <id>44930</id>
      <timestamp>2011-08-22T22:31:34Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Miniature: selection of time &amp; increment is done this way. We're waiting for a TimePicker QML component...</comment>
      <text xml:space="preserve">Miniature: selection of time &amp; increment is done this way. We're waiting for a TimePicker QML component...</text>
    </revision>
  </page>
  <page>
    <title>File:2011-08-22 13-55-19.png</title>
    <id>4978</id>
    <revision>
      <id>44931</id>
      <timestamp>2011-08-22T22:32:56Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Miniature: FICS games can be filtered by unrated, rated or any.</comment>
      <text xml:space="preserve">Miniature: FICS games can be filtered by unrated, rated or any.</text>
    </revision>
  </page>
  <page>
    <title>File:2011-08-22 13-57-04.png</title>
    <id>4979</id>
    <revision>
      <id>44932</id>
      <timestamp>2011-08-22T22:33:33Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Miniature: starting position.</comment>
      <text xml:space="preserve">Miniature: starting position.</text>
    </revision>
  </page>
  <page>
    <title>File:2011-08-22 13-57-29.png</title>
    <id>4980</id>
    <revision>
      <id>44933</id>
      <timestamp>2011-08-22T22:36:37Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Miniature: the square of a valid piece selected turns blue.</comment>
      <text xml:space="preserve">Miniature: the square of a valid piece selected turns blue.</text>
    </revision>
  </page>
  <page>
    <title>File:2011-08-22 13-58-07.png</title>
    <id>4981</id>
    <revision>
      <id>44934</id>
      <timestamp>2011-08-22T22:37:36Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Miniature: after a piece is selected, aiming to a valid square turns it green.</comment>
      <text xml:space="preserve">Miniature: after a piece is selected, aiming to a valid square turns it green.</text>
    </revision>
  </page>
  <page>
    <title>File:2011-08-22 13-58-31.png</title>
    <id>4982</id>
    <revision>
      <id>44935</id>
      <timestamp>2011-08-22T22:38:51Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Miniature: once a piece has been selected as well as a valid aiming square, the &quot;+&quot; is pressed to confirm, and the move is complete.</comment>
      <text xml:space="preserve">Miniature: once a piece has been selected as well as a valid aiming square, the &quot;+&quot; is pressed to confirm, and the move is complete.</text>
    </revision>
  </page>
  <page>
    <title>File:2011-08-22 13-59-01.png</title>
    <id>4983</id>
    <revision>
      <id>44936</id>
      <timestamp>2011-08-22T22:40:02Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Miniature: tapping on the chat area expands it and allows to post messages.</comment>
      <text xml:space="preserve">Miniature: tapping on the chat area expands it and allows to post messages.</text>
    </revision>
  </page>
  <page>
    <title>File:2011-08-22 14-00-29.png</title>
    <id>4984</id>
    <revision>
      <id>44937</id>
      <timestamp>2011-08-22T22:40:53Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Miniature: typing a new message.</comment>
      <text xml:space="preserve">Miniature: typing a new message.</text>
    </revision>
  </page>
  <page>
    <title>File:2011-08-22 14-01-20.png</title>
    <id>4985</id>
    <revision>
      <id>44938</id>
      <timestamp>2011-08-22T22:41:53Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Miniature: pressing the 'back' button in the board view opens the options for leaving the game. Note: additional options are currently added only for testing purposes.</comment>
      <text xml:space="preserve">Miniature: pressing the 'back' button in the board view opens the options for leaving the game. Note: additional options are currently added only for testing purposes.</text>
    </revision>
  </page>
  <page>
    <title>File:2011-08-22 14-01-55.png</title>
    <id>4986</id>
    <revision>
      <id>44939</id>
      <timestamp>2011-08-22T22:42:29Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Miniature: example of a dialog to leave a game.</comment>
      <text xml:space="preserve">Miniature: example of a dialog to leave a game.</text>
    </revision>
  </page>
  <page>
    <title>File:2011-08-22 15-51-28.png</title>
    <id>4987</id>
    <revision>
      <id>44940</id>
      <timestamp>2011-08-22T22:53:56Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Miniature: opening.</comment>
      <text xml:space="preserve">Miniature: opening.</text>
    </revision>
  </page>
  <page>
    <title>File:2011-09-01 11-45-37.png</title>
    <id>5005</id>
    <revision>
      <id>45123</id>
      <timestamp>2011-09-01T18:51:59Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>A smothered mate as seeen in De Lucena's book.</comment>
      <text xml:space="preserve">A smothered mate as seeen in De Lucena's book.</text>
    </revision>
  </page>
  <page>
    <title>File:20121021183904.png</title>
    <id>5282</id>
    <revision>
      <id>50311</id>
      <timestamp>2012-10-21T23:07:13Z</timestamp>
      <contributor>
        <username>aranelsurion</username>
        <id>3546</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:213ly69.jpg</title>
    <id>4469</id>
    <revision>
      <id>39065</id>
      <timestamp>2010-09-23T09:43:12Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:2898548020 f296152527 b.jpg</title>
    <id>1235</id>
    <revision>
      <id>7481</id>
      <timestamp>2008-09-29T10:13:05Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Proposal for the maemo.org homepage</comment>
      <text xml:space="preserve">Proposal for the maemo.org homepage</text>
    </revision>
  </page>
  <page>
    <title>File:29q0575.png</title>
    <id>4024</id>
    <revision>
      <id>33504</id>
      <timestamp>2010-04-26T18:43:30Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:345be2q.jpg</title>
    <id>4354</id>
    <revision>
      <id>36862</id>
      <timestamp>2010-07-15T13:41:17Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:3D03C5DC-655D-418C-98F0-919B1EAF4FAB.JPG</title>
    <id>5174</id>
    <revision>
      <id>47584</id>
      <timestamp>2012-05-24T20:31:29Z</timestamp>
      <contributor>
        <username>nieldk</username>
        <id>5106</id>
      </contributor>
      <comment>nieldk</comment>
      <text xml:space="preserve">nieldk</text>
    </revision>
  </page>
  <page>
    <title>File:41591 155698967779136 7796 s.jpg</title>
    <id>4925</id>
    <revision>
      <id>44434</id>
      <timestamp>2011-07-10T10:50:35Z</timestamp>
      <contributor>
        <username>ammyt</username>
        <id>3702</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:4ih8y1.jpg</title>
    <id>4468</id>
    <revision>
      <id>39064</id>
      <timestamp>2010-09-23T09:36:00Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:6yzfat.jpg</title>
    <id>4467</id>
    <revision>
      <id>39063</id>
      <timestamp>2010-09-23T09:34:58Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:770.jpg</title>
    <id>1258</id>
    <revision>
      <id>39027</id>
      <timestamp>2010-09-22T13:58:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:770]]
[[Category:Devices]]</text>
    </revision>
  </page>
  <page>
    <title>File:ABCrunch.gif</title>
    <id>5289</id>
    <revision>
      <id>50450</id>
      <timestamp>2012-10-25T21:43:30Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>tenminutecore crunches gif</comment>
      <text xml:space="preserve">tenminutecore crunches gif</text>
    </revision>
  </page>
  <page>
    <title>File:Abook-components.png</title>
    <id>2372</id>
    <revision>
      <id>17285</id>
      <timestamp>2009-09-02T12:35:39Z</timestamp>
      <contributor>
        <username>bijjal</username>
        <id>338</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Actman-screenshot1.png</title>
    <id>4648</id>
    <revision>
      <id>41118</id>
      <timestamp>2011-01-17T10:45:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">screenshot of actman v1.1

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>File:Actman-ss-more.png</title>
    <id>4649</id>
    <revision>
      <id>41117</id>
      <timestamp>2011-01-17T10:45:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">actman screenshot of &quot;more actions&quot;

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>File:AddApplication.png</title>
    <id>1592</id>
    <revision>
      <id>10963</id>
      <timestamp>2009-02-17T11:00:09Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Add repository.png</title>
    <id>3099</id>
    <revision>
      <id>23538</id>
      <timestamp>2009-11-30T07:48:49Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <comment>Screenshot from Maemo5 HAM</comment>
      <text xml:space="preserve">Screenshot from Maemo5 HAM</text>
    </revision>
  </page>
  <page>
    <title>File:Adduser 3.63 all.deb.svg</title>
    <id>4086</id>
    <revision>
      <id>34292</id>
      <timestamp>2010-05-12T16:25:47Z</timestamp>
      <contributor>
        <username>speculatrix</username>
        <id>392</id>
      </contributor>
      <comment>rename this, dropping the .svg</comment>
      <text xml:space="preserve">rename this, dropping the .svg</text>
    </revision>
  </page>
  <page>
    <title>File:Af startup.png</title>
    <id>1445</id>
    <revision>
      <id>9938</id>
      <timestamp>2009-01-21T14:01:12Z</timestamp>
      <contributor>
        <username>qlin</username>
        <id>517</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Agtl-coords.png</title>
    <id>4039</id>
    <revision>
      <id>33628</id>
      <timestamp>2010-04-29T09:06:25Z</timestamp>
      <contributor>
        <username>webhamster</username>
        <id>2416</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Agtl-details.png</title>
    <id>3797</id>
    <revision>
      <id>31670</id>
      <timestamp>2010-03-27T14:46:24Z</timestamp>
      <contributor>
        <username>webhamster</username>
        <id>2416</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Agtl-geocaching.png</title>
    <id>3795</id>
    <revision>
      <id>31668</id>
      <timestamp>2010-03-27T14:45:36Z</timestamp>
      <contributor>
        <username>webhamster</username>
        <id>2416</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Agtl-overview.png</title>
    <id>3796</id>
    <revision>
      <id>31669</id>
      <timestamp>2010-03-27T14:46:03Z</timestamp>
      <contributor>
        <username>webhamster</username>
        <id>2416</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Aisleriot pearl.png</title>
    <id>1499</id>
    <revision>
      <id>10167</id>
      <timestamp>2009-01-23T16:06:30Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Allegro442maemo5fullscr.png</title>
    <id>4966</id>
    <revision>
      <id>44834</id>
      <timestamp>2011-08-11T15:41:01Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>Allegro application tries to be fullscreen, but top panel covers it.</comment>
      <text xml:space="preserve">Allegro application tries to be fullscreen, but top panel covers it.</text>
    </revision>
  </page>
  <page>
    <title>File:Allegro from menu.jpg</title>
    <id>4965</id>
    <revision>
      <id>44833</id>
      <timestamp>2011-08-11T15:33:30Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>Allegro application started from menu goes bottom of dashboard</comment>
      <text xml:space="preserve">Allegro application started from menu goes bottom of dashboard</text>
    </revision>
  </page>
  <page>
    <title>File:Alpinetheme.png</title>
    <id>3642</id>
    <revision>
      <id>30031</id>
      <timestamp>2010-02-23T11:32:36Z</timestamp>
      <contributor>
        <username>torpedo48</username>
        <id>2090</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Alternative Layout.jpg</title>
    <id>4784</id>
    <revision>
      <id>42527</id>
      <timestamp>2011-03-08T18:22:49Z</timestamp>
      <contributor>
        <username>godofwar424</username>
        <id>4012</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Alternative Layout.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Ambox content.png</title>
    <id>606</id>
    <revision>
      <id>39025</id>
      <timestamp>2010-09-22T13:56:14Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>File:Ambox notice.png</title>
    <id>604</id>
    <revision>
      <id>39024</id>
      <timestamp>2010-09-22T13:56:09Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>File:Ambox speedy deletion.png</title>
    <id>619</id>
    <revision>
      <id>39026</id>
      <timestamp>2010-09-22T13:56:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>File:Andre klapper.jpg</title>
    <id>875</id>
    <revision>
      <id>5174</id>
      <timestamp>2008-07-22T23:12:13Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Andy80 Amsterdam 256x256.jpg</title>
    <id>4484</id>
    <revision>
      <id>39142</id>
      <timestamp>2010-09-26T16:52:37Z</timestamp>
      <contributor>
        <username>andy80</username>
        <id>199</id>
      </contributor>
      <comment>Andrea Grandi</comment>
      <text xml:space="preserve">Andrea Grandi</text>
    </revision>
  </page>
  <page>
    <title>File:Andy80 avatar.jpg</title>
    <id>808</id>
    <revision>
      <id>4698</id>
      <timestamp>2008-07-17T16:45:19Z</timestamp>
      <contributor>
        <username>andy80</username>
        <id>199</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Anidel head.jpg</title>
    <id>810</id>
    <revision>
      <id>4702</id>
      <timestamp>2008-07-17T17:18:27Z</timestamp>
      <contributor>
        <username>anidel</username>
        <id>44</id>
      </contributor>
      <comment>That's me :) who else :P</comment>
      <text xml:space="preserve">That's me :) who else :P</text>
    </revision>
  </page>
  <page>
    <title>File:App install updates.png</title>
    <id>4675</id>
    <revision>
      <id>41450</id>
      <timestamp>2011-01-26T12:22:03Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:App install updates.png]]&quot;: Crop image</comment>
      <text xml:space="preserve">HAM's install updates icon from Maemo 5</text>
    </revision>
  </page>
  <page>
    <title>File:App manager extras devel screenshot.png</title>
    <id>3675</id>
    <revision>
      <id>30254</id>
      <timestamp>2010-02-26T18:05:31Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:App sidebar.png</title>
    <id>1678</id>
    <revision>
      <id>11435</id>
      <timestamp>2009-03-04T15:25:52Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Application-view-mockup.png</title>
    <id>1315</id>
    <revision>
      <id>8267</id>
      <timestamp>2008-10-31T09:07:58Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>Mockup of the fullscreen application info pane.</comment>
      <text xml:space="preserve">Mockup of the fullscreen application info pane.</text>
    </revision>
  </page>
  <page>
    <title>File:ApplicationCatalog.png</title>
    <id>3681</id>
    <revision>
      <id>30312</id>
      <timestamp>2010-02-28T15:40:05Z</timestamp>
      <contributor>
        <username>xomm</username>
        <id>2155</id>
      </contributor>
      <comment>Opening Application Catalog(ue)
Part two of five of an App Manager tutorial.</comment>
      <text xml:space="preserve">Opening Application Catalog(ue)
Part two of five of an App Manager tutorial.</text>
    </revision>
  </page>
  <page>
    <title>File:Application development sequence.jpg</title>
    <id>305</id>
    <revision>
      <id>1925</id>
      <timestamp>2008-06-19T08:14:23Z</timestamp>
      <contributor>
        <username>peterschneider</username>
        <id>29</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Application development sequence.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Application manager column-view mockup.jpg</title>
    <id>313</id>
    <revision>
      <id>1969</id>
      <timestamp>2008-06-19T15:40:42Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>Mock-up of a column view for the Application manager category view.</comment>
      <text xml:space="preserve">Mock-up of a column view for the Application manager category view.</text>
    </revision>
  </page>
  <page>
    <title>File:Application manager description mock-up.png</title>
    <id>350</id>
    <revision>
      <id>2050</id>
      <timestamp>2008-06-19T20:27:36Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Application manager description mock-up.png]]&quot;: Mock-up of an improved description for the Application manager info.</comment>
      <text xml:space="preserve">Mock-up of an improved description for the Application manager info.</text>
    </revision>
  </page>
  <page>
    <title>File:Application manager grid-view mockup.jpg</title>
    <id>315</id>
    <revision>
      <id>1971</id>
      <timestamp>2008-06-19T15:46:26Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>Mock-up of a grid view for the Application manager category view.</comment>
      <text xml:space="preserve">Mock-up of a grid view for the Application manager category view.</text>
    </revision>
  </page>
  <page>
    <title>File:Application manager icon.png</title>
    <id>352</id>
    <revision>
      <id>2062</id>
      <timestamp>2008-06-19T21:59:55Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Application manager installing mock-up.png</title>
    <id>349</id>
    <revision>
      <id>2051</id>
      <timestamp>2008-06-19T20:28:00Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Application manager installing mock-up.png]]&quot;: Mock-up of an improved installing for the Application manager info.</comment>
      <text xml:space="preserve">Mock-up of an improved installing for the Application manager info.</text>
    </revision>
  </page>
  <page>
    <title>File:Application manager summary mock-up.png</title>
    <id>348</id>
    <revision>
      <id>2052</id>
      <timestamp>2008-06-19T20:28:51Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Application manager summary mock-up.png]]&quot;: Mock-up of an improved summary for the Application manager info.</comment>
      <text xml:space="preserve">Mock-up of an improved summary for the Application manager info.</text>
    </revision>
  </page>
  <page>
    <title>File:Application manager tree-view mockup.jpg</title>
    <id>314</id>
    <revision>
      <id>1970</id>
      <timestamp>2008-06-19T15:42:24Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>Mock-up of a tree view for the Application manager category view.</comment>
      <text xml:space="preserve">Mock-up of a tree view for the Application manager category view.</text>
    </revision>
  </page>
  <page>
    <title>File:Applicationdevelopment.png</title>
    <id>471</id>
    <revision>
      <id>2481</id>
      <timestamp>2008-06-23T11:06:52Z</timestamp>
      <contributor>
        <username>peterschneider</username>
        <id>29</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Applications.png</title>
    <id>2580</id>
    <revision>
      <id>19383</id>
      <timestamp>2009-10-06T09:03:09Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Appmgr-13.png</title>
    <id>2593</id>
    <revision>
      <id>19396</id>
      <timestamp>2009-10-06T09:05:03Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Appmgr.png</title>
    <id>2581</id>
    <revision>
      <id>19384</id>
      <timestamp>2009-10-06T09:03:17Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Appmgr10.png</title>
    <id>2590</id>
    <revision>
      <id>19393</id>
      <timestamp>2009-10-06T09:04:28Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Appmgr11.png</title>
    <id>2591</id>
    <revision>
      <id>19394</id>
      <timestamp>2009-10-06T09:04:44Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Appmgr12.png</title>
    <id>2592</id>
    <revision>
      <id>19395</id>
      <timestamp>2009-10-06T09:04:54Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Appmgr2.png</title>
    <id>2582</id>
    <revision>
      <id>19385</id>
      <timestamp>2009-10-06T09:03:24Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Appmgr3.png</title>
    <id>2583</id>
    <revision>
      <id>19386</id>
      <timestamp>2009-10-06T09:03:33Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Appmgr4.png</title>
    <id>2584</id>
    <revision>
      <id>19387</id>
      <timestamp>2009-10-06T09:03:43Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Appmgr5.png</title>
    <id>2585</id>
    <revision>
      <id>19388</id>
      <timestamp>2009-10-06T09:03:50Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Appmgr6.png</title>
    <id>2586</id>
    <revision>
      <id>19389</id>
      <timestamp>2009-10-06T09:03:58Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Appmgr7.png</title>
    <id>2587</id>
    <revision>
      <id>19390</id>
      <timestamp>2009-10-06T09:04:06Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Appmgr8.png</title>
    <id>2588</id>
    <revision>
      <id>19391</id>
      <timestamp>2009-10-06T09:04:12Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Appmgr9.png</title>
    <id>2589</id>
    <revision>
      <id>19392</id>
      <timestamp>2009-10-06T09:04:19Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Appmgr 016 5.jpg</title>
    <id>2411</id>
    <revision>
      <id>17966</id>
      <timestamp>2009-09-10T14:00:39Z</timestamp>
      <contributor>
        <username>celtica96</username>
        <id>1141</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Appmgr all apps 016 5.jpg</title>
    <id>2413</id>
    <revision>
      <id>17975</id>
      <timestamp>2009-09-10T14:16:11Z</timestamp>
      <contributor>
        <username>celtica96</username>
        <id>1141</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Appmng1.png</title>
    <id>2594</id>
    <revision>
      <id>19397</id>
      <timestamp>2009-10-06T09:05:10Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Architecture test envi.jpg</title>
    <id>1917</id>
    <revision>
      <id>13654</id>
      <timestamp>2009-05-25T14:11:55Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>SSO Architecture overview</comment>
      <text xml:space="preserve">SSO Architecture overview</text>
    </revision>
  </page>
  <page>
    <title>File:Array3.png</title>
    <id>3721</id>
    <revision>
      <id>30695</id>
      <timestamp>2010-03-07T19:44:14Z</timestamp>
      <contributor>
        <username>joppu</username>
        <id>1571</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Au81ut.jpg</title>
    <id>4470</id>
    <revision>
      <id>39066</id>
      <timestamp>2010-09-23T09:43:51Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Audio decomposition.png</title>
    <id>2620</id>
    <revision>
      <id>19431</id>
      <timestamp>2009-10-06T09:45:57Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Auto-maemo-install-nokia-binaries.png</title>
    <id>1449</id>
    <revision>
      <id>9942</id>
      <timestamp>2009-01-21T14:06:16Z</timestamp>
      <contributor>
        <username>qlin</username>
        <id>517</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Auto-maemo-package-selection.png</title>
    <id>1448</id>
    <revision>
      <id>9941</id>
      <timestamp>2009-01-21T14:05:44Z</timestamp>
      <contributor>
        <username>qlin</username>
        <id>517</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Auto-maemo-summary.png</title>
    <id>1450</id>
    <revision>
      <id>9943</id>
      <timestamp>2009-01-21T14:06:44Z</timestamp>
      <contributor>
        <username>qlin</username>
        <id>517</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:AutoBuilderWidget.png</title>
    <id>4775</id>
    <revision>
      <id>42376</id>
      <timestamp>2011-03-07T12:26:30Z</timestamp>
      <contributor>
        <username>asys3</username>
        <id>40</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Avatar Planet.png</title>
    <id>1593</id>
    <revision>
      <id>10964</id>
      <timestamp>2009-02-17T11:01:15Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Background.jpg</title>
    <id>1523</id>
    <revision>
      <id>10331</id>
      <timestamp>2009-01-26T22:58:01Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Bad Normal.png</title>
    <id>1594</id>
    <revision>
      <id>10965</id>
      <timestamp>2009-02-17T11:01:59Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Bad over.png</title>
    <id>1595</id>
    <revision>
      <id>10966</id>
      <timestamp>2009-02-17T11:02:36Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Bad rollover.png</title>
    <id>1639</id>
    <revision>
      <id>11079</id>
      <timestamp>2009-02-17T21:06:30Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Banner.png</title>
    <id>2157</id>
    <revision>
      <id>15455</id>
      <timestamp>2009-07-13T12:40:27Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Bar Normal.png</title>
    <id>1596</id>
    <revision>
      <id>10968</id>
      <timestamp>2009-02-17T11:03:17Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Bar Over.png</title>
    <id>1597</id>
    <revision>
      <id>10969</id>
      <timestamp>2009-02-17T11:04:01Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Bar rollover.png</title>
    <id>1616</id>
    <revision>
      <id>11056</id>
      <timestamp>2009-02-17T20:52:13Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Basyskom logo rgb w300.png</title>
    <id>4654</id>
    <revision>
      <id>41145</id>
      <timestamp>2011-01-18T15:29:35Z</timestamp>
      <contributor>
        <username>rolf-bittner</username>
        <id>3844</id>
      </contributor>
      <comment>basysKom company Logo</comment>
      <text xml:space="preserve">basysKom company Logo</text>
    </revision>
  </page>
  <page>
    <title>File:Blacketwhitetheme.png</title>
    <id>3641</id>
    <revision>
      <id>30029</id>
      <timestamp>2010-02-23T11:30:39Z</timestamp>
      <contributor>
        <username>torpedo48</username>
        <id>2090</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Bluetooth 016 5.jpg</title>
    <id>2415</id>
    <revision>
      <id>17981</id>
      <timestamp>2009-09-10T14:25:47Z</timestamp>
      <contributor>
        <username>celtica96</username>
        <id>1141</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Bm-andre klapper.jpg</title>
    <id>1352</id>
    <revision>
      <id>8948</id>
      <timestamp>2008-11-24T12:22:09Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Book1.pdf</title>
    <id>4926</id>
    <revision>
      <id>44441</id>
      <timestamp>2011-07-10T12:31:49Z</timestamp>
      <contributor>
        <username>ammyt</username>
        <id>3702</id>
      </contributor>
      <comment>NITDroid Game Compatibility.pdf</comment>
      <text xml:space="preserve">NITDroid Game Compatibility.pdf</text>
    </revision>
  </page>
  <page>
    <title>File:Borg-ultra.gif</title>
    <id>3606</id>
    <revision>
      <id>29637</id>
      <timestamp>2010-02-16T22:08:50Z</timestamp>
      <contributor>
        <username>labaudio</username>
        <id>942</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Borg-ultra.gif]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Brainparty-48x48.png</title>
    <id>3944</id>
    <revision>
      <id>32937</id>
      <timestamp>2010-04-18T13:14:15Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Brainparty-64x64.png</title>
    <id>3945</id>
    <revision>
      <id>32938</id>
      <timestamp>2010-04-18T13:14:35Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Brainparty-old.png</title>
    <id>3943</id>
    <revision>
      <id>32936</id>
      <timestamp>2010-04-18T13:12:31Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Brainstorm frontpage.png</title>
    <id>1786</id>
    <revision>
      <id>12654</id>
      <timestamp>2009-04-20T17:31:42Z</timestamp>
      <contributor>
        <username>netblade</username>
        <id>164</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Browser.png</title>
    <id>2595</id>
    <revision>
      <id>19398</id>
      <timestamp>2009-10-06T09:05:25Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Bubble Conversation.jpg</title>
    <id>4788</id>
    <revision>
      <id>42530</id>
      <timestamp>2011-03-08T18:23:22Z</timestamp>
      <contributor>
        <username>godofwar424</username>
        <id>4012</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Bubble Conversation.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Bugsquad-logo-wazd-small.png</title>
    <id>3120</id>
    <revision>
      <id>40950</id>
      <timestamp>2010-12-29T10:41:30Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize, add link to large version</comment>
      <text xml:space="preserve">Bugsquad logo by Andrew Zhilin (wazd), small version. Large version is [[Image:Bugsquad-logo-wazd.png]]

[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>File:Bugsquad-logo-wazd.png</title>
    <id>3119</id>
    <revision>
      <id>23744</id>
      <timestamp>2009-12-02T17:05:01Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <comment>Bugsquad logo by Andrew Zhilin (wazd).</comment>
      <text xml:space="preserve">Bugsquad logo by Andrew Zhilin (wazd).</text>
    </revision>
  </page>
  <page>
    <title>File:Bullet.png</title>
    <id>1644</id>
    <revision>
      <id>11092</id>
      <timestamp>2009-02-17T22:16:24Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Bundyo.jpg</title>
    <id>812</id>
    <revision>
      <id>4732</id>
      <timestamp>2008-07-17T22:51:53Z</timestamp>
      <contributor>
        <username>bundyo</username>
        <id>21</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Busybox.png</title>
    <id>1084</id>
    <revision>
      <id>6310</id>
      <timestamp>2008-08-05T16:17:48Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Buttons.png</title>
    <id>2158</id>
    <revision>
      <id>15456</id>
      <timestamp>2009-07-13T12:40:44Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:By-sa.png</title>
    <id>1439</id>
    <revision>
      <id>9928</id>
      <timestamp>2009-01-21T13:02:18Z</timestamp>
      <contributor>
        <username>qlin</username>
        <id>517</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:C-logo claim blue.png</title>
    <id>922</id>
    <revision>
      <id>5444</id>
      <timestamp>2008-07-25T10:15:46Z</timestamp>
      <contributor>
        <username>cven</username>
        <id>234</id>
      </contributor>
      <comment>c-base logo</comment>
      <text xml:space="preserve">c-base logo</text>
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration about.png</title>
    <id>4823</id>
    <revision>
      <id>42775</id>
      <timestamp>2011-03-21T22:40:23Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration about1.png</title>
    <id>4913</id>
    <revision>
      <id>45228</id>
      <timestamp>2011-09-11T12:55:21Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:CSSUfeaturesConfiguration about1.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration about2.png</title>
    <id>4914</id>
    <revision>
      <id>45231</id>
      <timestamp>2011-09-11T13:09:31Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:CSSUfeaturesConfiguration about2.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration current.png</title>
    <id>4817</id>
    <revision>
      <id>42761</id>
      <timestamp>2011-03-21T21:46:11Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration default.png</title>
    <id>4818</id>
    <revision>
      <id>42762</id>
      <timestamp>2011-03-21T21:46:31Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration edit1.jpg</title>
    <id>4911</id>
    <revision>
      <id>44195</id>
      <timestamp>2011-06-26T09:44:38Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration edit2.jpg</title>
    <id>4912</id>
    <revision>
      <id>44196</id>
      <timestamp>2011-06-26T09:45:33Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration error1.jpg</title>
    <id>4824</id>
    <revision>
      <id>42780</id>
      <timestamp>2011-03-21T23:02:14Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration fixWindow.png</title>
    <id>5006</id>
    <revision>
      <id>45234</id>
      <timestamp>2011-09-11T13:19:27Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration fixWindow optionDefault.png</title>
    <id>5008</id>
    <revision>
      <id>45236</id>
      <timestamp>2011-09-11T13:21:19Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration fixWindow optionFix.png</title>
    <id>5007</id>
    <revision>
      <id>45235</id>
      <timestamp>2011-09-11T13:20:37Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration main1.png</title>
    <id>4815</id>
    <revision>
      <id>44189</id>
      <timestamp>2011-06-26T09:25:10Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:CSSUfeaturesConfiguration main1.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration main1p.png</title>
    <id>4909</id>
    <revision>
      <id>44190</id>
      <timestamp>2011-06-26T09:27:40Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration main2.png</title>
    <id>4816</id>
    <revision>
      <id>42760</id>
      <timestamp>2011-03-21T21:45:34Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration main2p.png</title>
    <id>4910</id>
    <revision>
      <id>44191</id>
      <timestamp>2011-06-26T09:28:00Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration powerkeyentry.png</title>
    <id>4821</id>
    <revision>
      <id>45232</id>
      <timestamp>2011-09-11T13:11:56Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:CSSUfeaturesConfiguration powerkeyentry.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration removedpowerkeyentry.png</title>
    <id>4822</id>
    <revision>
      <id>42769</id>
      <timestamp>2011-03-21T22:01:00Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration restore.png</title>
    <id>4819</id>
    <revision>
      <id>42763</id>
      <timestamp>2011-03-21T21:47:22Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CSSUfeaturesConfiguration update.png</title>
    <id>4820</id>
    <revision>
      <id>42764</id>
      <timestamp>2011-03-21T21:49:54Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:CacheDesc.png</title>
    <id>2344</id>
    <revision>
      <id>16979</id>
      <timestamp>2009-08-26T17:38:40Z</timestamp>
      <contributor>
        <username>mve</username>
        <id>109</id>
      </contributor>
      <comment>GPXView cache description view</comment>
      <text xml:space="preserve">GPXView cache description view</text>
    </revision>
  </page>
  <page>
    <title>File:CacheGoto.png</title>
    <id>2345</id>
    <revision>
      <id>16980</id>
      <timestamp>2009-08-26T17:39:20Z</timestamp>
      <contributor>
        <username>mve</username>
        <id>109</id>
      </contributor>
      <comment>GPXView Goto view</comment>
      <text xml:space="preserve">GPXView Goto view</text>
    </revision>
  </page>
  <page>
    <title>File:CacheList.png</title>
    <id>2342</id>
    <revision>
      <id>16977</id>
      <timestamp>2009-08-26T17:35:31Z</timestamp>
      <contributor>
        <username>mve</username>
        <id>109</id>
      </contributor>
      <comment>GPXView cache list</comment>
      <text xml:space="preserve">GPXView cache list</text>
    </revision>
  </page>
  <page>
    <title>File:CacheMainView.png</title>
    <id>2343</id>
    <revision>
      <id>16978</id>
      <timestamp>2009-08-26T17:36:32Z</timestamp>
      <contributor>
        <username>mve</username>
        <id>109</id>
      </contributor>
      <comment>GPXView cache main view</comment>
      <text xml:space="preserve">GPXView cache main view</text>
    </revision>
  </page>
  <page>
    <title>File:Calendar.png</title>
    <id>2597</id>
    <revision>
      <id>43867</id>
      <timestamp>2011-06-06T13:54:16Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Canola popular.png</title>
    <id>1500</id>
    <revision>
      <id>10169</id>
      <timestamp>2009-01-23T16:07:27Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Catalogue details.png</title>
    <id>3100</id>
    <revision>
      <id>23539</id>
      <timestamp>2009-11-30T07:49:57Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <comment>Maemo 5 HAM &amp; Extras testing repository data</comment>
      <text xml:space="preserve">Maemo 5 HAM &amp; Extras testing repository data</text>
    </revision>
  </page>
  <page>
    <title>File:CgFqes.png</title>
    <id>2735</id>
    <revision>
      <id>20127</id>
      <timestamp>2009-10-14T14:22:44Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Checkbuttons.png</title>
    <id>2159</id>
    <revision>
      <id>43866</id>
      <timestamp>2011-06-06T13:53:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Choices.png</title>
    <id>2199</id>
    <revision>
      <id>43868</id>
      <timestamp>2011-06-06T13:55:40Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Cleven Dropdown.png</title>
    <id>4938</id>
    <revision>
      <id>44538</id>
      <timestamp>2011-07-17T01:57:54Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cleven about1.png</title>
    <id>4939</id>
    <revision>
      <id>46588</id>
      <timestamp>2012-02-11T13:32:50Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Cleven about1.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cleven about2.png</title>
    <id>4940</id>
    <revision>
      <id>46589</id>
      <timestamp>2012-02-11T13:33:16Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Cleven about2.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cleven decrypt.png</title>
    <id>4942</id>
    <revision>
      <id>46583</id>
      <timestamp>2012-02-11T13:21:27Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Cleven decrypt.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cleven decrypt WPA.png</title>
    <id>4969</id>
    <revision>
      <id>44851</id>
      <timestamp>2011-08-13T01:45:10Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cleven decrypt common.png</title>
    <id>4944</id>
    <revision>
      <id>46584</id>
      <timestamp>2012-02-11T13:22:16Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Cleven decrypt common.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cleven decrypt dictionary.png</title>
    <id>4970</id>
    <revision>
      <id>44852</id>
      <timestamp>2011-08-13T01:45:44Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cleven delete.png</title>
    <id>4945</id>
    <revision>
      <id>44555</id>
      <timestamp>2011-07-17T21:39:35Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cleven delete common.png</title>
    <id>4948</id>
    <revision>
      <id>44853</id>
      <timestamp>2011-08-13T01:46:33Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Cleven delete common.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cleven delete disable.png</title>
    <id>4947</id>
    <revision>
      <id>44558</id>
      <timestamp>2011-07-17T21:54:38Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cleven delete enable.png</title>
    <id>4946</id>
    <revision>
      <id>44557</id>
      <timestamp>2011-07-17T21:54:15Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cleven keysManagement.png</title>
    <id>4943</id>
    <revision>
      <id>44552</id>
      <timestamp>2011-07-17T21:36:24Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cleven main.png</title>
    <id>5101</id>
    <revision>
      <id>46586</id>
      <timestamp>2012-02-11T13:25:42Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cleven mainWindow.png</title>
    <id>4941</id>
    <revision>
      <id>46582</id>
      <timestamp>2012-02-11T13:19:50Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Cleven mainWindow.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cleven startup.png</title>
    <id>4936</id>
    <revision>
      <id>46581</id>
      <timestamp>2012-02-11T13:19:01Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Cleven startup.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cleven startupError.png</title>
    <id>4968</id>
    <revision>
      <id>44848</id>
      <timestamp>2011-08-13T01:40:03Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cleven systemConfiguration.png</title>
    <id>4937</id>
    <revision>
      <id>44543</id>
      <timestamp>2011-07-17T02:22:45Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Cleven systemConfiguration.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cli icon 256p.png</title>
    <id>3638</id>
    <revision>
      <id>30012</id>
      <timestamp>2010-02-22T19:03:37Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cli icon 48p.png</title>
    <id>3636</id>
    <revision>
      <id>30009</id>
      <timestamp>2010-02-22T19:02:11Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cli icon 48p embedded.png</title>
    <id>3700</id>
    <revision>
      <id>30513</id>
      <timestamp>2010-03-04T15:51:54Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Final Maemo CLI icon with embedded blue application icon.</comment>
      <text xml:space="preserve">Final Maemo CLI icon with embedded blue application icon.</text>
    </revision>
  </page>
  <page>
    <title>File:Cli icon 64p.png</title>
    <id>3637</id>
    <revision>
      <id>30011</id>
      <timestamp>2010-02-22T19:02:51Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cli icon appman sample.png</title>
    <id>3635</id>
    <revision>
      <id>30008</id>
      <timestamp>2010-02-22T19:01:23Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:ClickToInstall.png</title>
    <id>1598</id>
    <revision>
      <id>10970</id>
      <timestamp>2009-02-17T11:04:46Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:ClickToInstallDisabled.png</title>
    <id>4662</id>
    <revision>
      <id>41233</id>
      <timestamp>2011-01-20T15:36:58Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>Version of ClickToInstall.png which is greyed out.</comment>
      <text xml:space="preserve">Version of ClickToInstall.png which is greyed out.</text>
    </revision>
  </page>
  <page>
    <title>File:Clock.png</title>
    <id>2599</id>
    <revision>
      <id>43869</id>
      <timestamp>2011-06-06T13:57:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Cloudgps 01.png</title>
    <id>5033</id>
    <revision>
      <id>45535</id>
      <timestamp>2011-10-08T16:06:57Z</timestamp>
      <contributor>
        <username>henkka</username>
        <id>2019</id>
      </contributor>
      <comment>CloudGPS screenshot 01</comment>
      <text xml:space="preserve">CloudGPS screenshot 01</text>
    </revision>
  </page>
  <page>
    <title>File:Cloudgps icon.png</title>
    <id>5032</id>
    <revision>
      <id>45519</id>
      <timestamp>2011-10-08T10:02:42Z</timestamp>
      <contributor>
        <username>henkka</username>
        <id>2019</id>
      </contributor>
      <comment>CloudGPS Icon</comment>
      <text xml:space="preserve">CloudGPS Icon</text>
    </revision>
  </page>
  <page>
    <title>File:Codethink logo.gif</title>
    <id>1051</id>
    <revision>
      <id>6016</id>
      <timestamp>2008-07-30T16:15:02Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Collabora logo.png</title>
    <id>1049</id>
    <revision>
      <id>6013</id>
      <timestamp>2008-07-30T16:00:42Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Combined Enrollment Installation server at lobby network.png</title>
    <id>4186</id>
    <revision>
      <id>34978</id>
      <timestamp>2010-05-27T12:24:38Z</timestamp>
      <contributor>
        <username>jpalko</username>
        <id>2404</id>
      </contributor>
      <comment>Combined Enrollment Installation server at lobby network</comment>
      <text xml:space="preserve">Combined Enrollment Installation server at lobby network</text>
    </revision>
  </page>
  <page>
    <title>File:Community.png</title>
    <id>1392</id>
    <revision>
      <id>9417</id>
      <timestamp>2008-12-22T21:06:13Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>community page</comment>
      <text xml:space="preserve">community page</text>
    </revision>
  </page>
  <page>
    <title>File:Configuration dialog.png</title>
    <id>2376</id>
    <revision>
      <id>19282</id>
      <timestamp>2009-10-05T12:22:47Z</timestamp>
      <contributor>
        <username>mgimpl</username>
        <id>1252</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Configuration dialog.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Confirmation note.png</title>
    <id>2160</id>
    <revision>
      <id>15458</id>
      <timestamp>2009-07-13T12:41:05Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Contacts.png</title>
    <id>2600</id>
    <revision>
      <id>43870</id>
      <timestamp>2011-06-06T14:00:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Core top level decomposition.png</title>
    <id>2383</id>
    <revision>
      <id>17385</id>
      <timestamp>2009-09-03T14:06:39Z</timestamp>
      <contributor>
        <username>bijjal</username>
        <id>338</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Crazyparking.png</title>
    <id>2206</id>
    <revision>
      <id>15541</id>
      <timestamp>2009-07-13T15:14:09Z</timestamp>
      <contributor>
        <username>bijjal</username>
        <id>338</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cssu-108.png</title>
    <id>4808</id>
    <revision>
      <id>42692</id>
      <timestamp>2011-03-18T11:17:27Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>wazd's CSSU icon at 108x108px for Community_SSU front page.</comment>
      <text xml:space="preserve">wazd's CSSU icon at 108x108px for Community_SSU front page.</text>
    </revision>
  </page>
  <page>
    <title>File:Cssu both 5.png</title>
    <id>5099</id>
    <revision>
      <id>46554</id>
      <timestamp>2012-02-01T14:46:40Z</timestamp>
      <contributor>
        <username>wirta</username>
        <id>4983</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cssu stable 5.png</title>
    <id>5098</id>
    <revision>
      <id>46552</id>
      <timestamp>2012-02-01T14:45:35Z</timestamp>
      <contributor>
        <username>wirta</username>
        <id>4983</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cssu testing 5.png</title>
    <id>5097</id>
    <revision>
      <id>46550</id>
      <timestamp>2012-02-01T14:44:32Z</timestamp>
      <contributor>
        <username>wirta</username>
        <id>4983</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Cycling.gif</title>
    <id>5284</id>
    <revision>
      <id>50443</id>
      <timestamp>2012-10-25T21:39:25Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>tenminutecore cycling gif</comment>
      <text xml:space="preserve">tenminutecore cycling gif</text>
    </revision>
  </page>
  <page>
    <title>File:DEVELOPMENT.png</title>
    <id>1368</id>
    <revision>
      <id>9157</id>
      <timestamp>2008-12-03T20:42:40Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>This is a Andre`s proposal for the development page whith the changes made</comment>
      <text xml:space="preserve">This is a Andre`s proposal for the development page whith the changes made</text>
    </revision>
  </page>
  <page>
    <title>File:DSME.png</title>
    <id>2358</id>
    <revision>
      <id>17101</id>
      <timestamp>2009-08-31T11:26:11Z</timestamp>
      <contributor>
        <username>bijjal</username>
        <id>338</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:DTl8W.png</title>
    <id>4547</id>
    <revision>
      <id>39864</id>
      <timestamp>2010-10-29T15:22:47Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Data Management decomposition.png</title>
    <id>2361</id>
    <revision>
      <id>17106</id>
      <timestamp>2009-08-31T11:30:19Z</timestamp>
      <contributor>
        <username>bijjal</username>
        <id>338</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Data Management sw context.png</title>
    <id>2360</id>
    <revision>
      <id>17105</id>
      <timestamp>2009-08-31T11:29:49Z</timestamp>
      <contributor>
        <username>bijjal</username>
        <id>338</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Date button.png</title>
    <id>2161</id>
    <revision>
      <id>43871</id>
      <timestamp>2011-06-06T14:01:23Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Date selector.png</title>
    <id>2162</id>
    <revision>
      <id>43872</id>
      <timestamp>2011-06-06T14:03:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Dave and sean small.jpg</title>
    <id>1355</id>
    <revision>
      <id>8954</id>
      <timestamp>2008-11-24T19:15:14Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Dbus-send-SystemNoteDialog.png</title>
    <id>4577</id>
    <revision>
      <id>40297</id>
      <timestamp>2010-11-24T19:50:20Z</timestamp>
      <contributor>
        <username>peppe78</username>
        <id>3348</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Debian-logo-100.png</title>
    <id>1074</id>
    <revision>
      <id>6261</id>
      <timestamp>2008-08-05T11:06:21Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Debmastrer supplimental.png</title>
    <id>1518</id>
    <revision>
      <id>10271</id>
      <timestamp>2009-01-25T03:11:23Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>For maemo.org blog post.</comment>
      <text xml:space="preserve">For maemo.org blog post.</text>
    </revision>
  </page>
  <page>
    <title>File:DefaltApplication.png</title>
    <id>1599</id>
    <revision>
      <id>10971</id>
      <timestamp>2009-02-17T11:05:59Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Default-application-icon-set.png</title>
    <id>3281</id>
    <revision>
      <id>25424</id>
      <timestamp>2009-12-31T02:23:58Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>Default application icon set</comment>
      <text xml:space="preserve">Default application icon set</text>
    </revision>
  </page>
  <page>
    <title>File:DefaultAvatarProfile.png</title>
    <id>1600</id>
    <revision>
      <id>10972</id>
      <timestamp>2009-02-17T11:06:38Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Delete Normal.png</title>
    <id>1591</id>
    <revision>
      <id>10962</id>
      <timestamp>2009-02-17T10:58:42Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>Delete</comment>
      <text xml:space="preserve">Delete</text>
    </revision>
  </page>
  <page>
    <title>File:Delete over.png</title>
    <id>1601</id>
    <revision>
      <id>10973</id>
      <timestamp>2009-02-17T11:07:57Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Delete rollover.png</title>
    <id>1640</id>
    <revision>
      <id>11080</id>
      <timestamp>2009-02-17T21:07:00Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Desktop-views.png</title>
    <id>2375</id>
    <revision>
      <id>17353</id>
      <timestamp>2009-09-03T11:51:13Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Desktop.png</title>
    <id>2602</id>
    <revision>
      <id>19405</id>
      <timestamp>2009-10-06T09:06:09Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:DesktopSearchHackfest.jpg</title>
    <id>1211</id>
    <revision>
      <id>7359</id>
      <timestamp>2008-09-19T17:38:10Z</timestamp>
      <contributor>
        <username>cven</username>
        <id>234</id>
      </contributor>
      <comment>maemo c-base E:T:I: Berlin Desktop Search Hackfest</comment>
      <text xml:space="preserve"> maemo c-base E:T:I: Berlin Desktop Search Hackfest</text>
    </revision>
  </page>
  <page>
    <title>File:Desktop 016 5.jpg</title>
    <id>2408</id>
    <revision>
      <id>17955</id>
      <timestamp>2009-09-10T13:50:02Z</timestamp>
      <contributor>
        <username>celtica96</username>
        <id>1141</id>
      </contributor>
      <comment>Taken from the SmartDevices Q5 running 0.16-5 Mer OS.</comment>
      <text xml:space="preserve">Taken from the SmartDevices Q5 running 0.16-5 Mer OS.</text>
    </revision>
  </page>
  <page>
    <title>File:Desktop no app 016 5.jpg</title>
    <id>2412</id>
    <revision>
      <id>17974</id>
      <timestamp>2009-09-10T14:15:43Z</timestamp>
      <contributor>
        <username>celtica96</username>
        <id>1141</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Desktop overview.png</title>
    <id>2198</id>
    <revision>
      <id>15506</id>
      <timestamp>2009-07-13T14:00:04Z</timestamp>
      <contributor>
        <username>bijjal</username>
        <id>338</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Desktop view.png</title>
    <id>2163</id>
    <revision>
      <id>15461</id>
      <timestamp>2009-07-13T12:42:00Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Development wireframe.png</title>
    <id>1338</id>
    <revision>
      <id>8761</id>
      <timestamp>2008-11-14T18:47:41Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Wireframe for Development page</comment>
      <text xml:space="preserve">Wireframe for Development page</text>
    </revision>
  </page>
  <page>
    <title>File:Device image-1.jpg</title>
    <id>1442</id>
    <revision>
      <id>9935</id>
      <timestamp>2009-01-21T13:56:45Z</timestamp>
      <contributor>
        <username>qlin</username>
        <id>517</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Device image-2.jpg</title>
    <id>1444</id>
    <revision>
      <id>9937</id>
      <timestamp>2009-01-21T14:00:20Z</timestamp>
      <contributor>
        <username>qlin</username>
        <id>517</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Diablo-Modest editor view.png</title>
    <id>2270</id>
    <revision>
      <id>16373</id>
      <timestamp>2009-08-10T14:14:30Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Diablo-Modest viewer view.png</title>
    <id>2269</id>
    <revision>
      <id>16371</id>
      <timestamp>2009-08-10T14:11:39Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Diablo-modest-account-settings.png</title>
    <id>2271</id>
    <revision>
      <id>16384</id>
      <timestamp>2009-08-10T14:27:33Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Diablo-modest-account-settings.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Diagram chinook.png</title>
    <id>2164</id>
    <revision>
      <id>15462</id>
      <timestamp>2009-07-13T12:42:11Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:DialCentral Account.png</title>
    <id>4593</id>
    <revision>
      <id>40465</id>
      <timestamp>2010-12-04T18:51:50Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:DialCentral BroadcastSMS.png</title>
    <id>4594</id>
    <revision>
      <id>40466</id>
      <timestamp>2010-12-04T18:51:54Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:DialCentral Call.png</title>
    <id>4595</id>
    <revision>
      <id>40467</id>
      <timestamp>2010-12-04T18:52:00Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:DialCentral Contacts.png</title>
    <id>4596</id>
    <revision>
      <id>40468</id>
      <timestamp>2010-12-04T18:52:05Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:DialCentral Dialpad.png</title>
    <id>4597</id>
    <revision>
      <id>40469</id>
      <timestamp>2010-12-04T18:52:10Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:DialCentral History.png</title>
    <id>4598</id>
    <revision>
      <id>40470</id>
      <timestamp>2010-12-04T18:52:16Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:DialCentral Messages.png</title>
    <id>4599</id>
    <revision>
      <id>40471</id>
      <timestamp>2010-12-04T18:52:30Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:DialCentral SMS.png</title>
    <id>4600</id>
    <revision>
      <id>40472</id>
      <timestamp>2010-12-04T18:52:34Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Dialog.png</title>
    <id>2165</id>
    <revision>
      <id>15463</id>
      <timestamp>2009-07-13T12:42:28Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Different Colours.jpg</title>
    <id>4785</id>
    <revision>
      <id>42528</id>
      <timestamp>2011-03-08T18:23:04Z</timestamp>
      <contributor>
        <username>godofwar424</username>
        <id>4012</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Different Colours.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:DisableCatalog.png</title>
    <id>3684</id>
    <revision>
      <id>30315</id>
      <timestamp>2010-02-28T15:43:49Z</timestamp>
      <contributor>
        <username>xomm</username>
        <id>2155</id>
      </contributor>
      <comment>Disabling a Catalog
Part 4.5 of five of an App Manager tutorial.</comment>
      <text xml:space="preserve">Disabling a Catalog
Part 4.5 of five of an App Manager tutorial.</text>
    </revision>
  </page>
  <page>
    <title>File:Dish.gif</title>
    <id>5285</id>
    <revision>
      <id>50445</id>
      <timestamp>2012-10-25T21:40:04Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>tenminutecore dish gif</comment>
      <text xml:space="preserve">tenminutecore dish gif</text>
    </revision>
  </page>
  <page>
    <title>File:Dneary front page mockup.jpg</title>
    <id>1237</id>
    <revision>
      <id>7513</id>
      <timestamp>2008-09-30T14:13:24Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[User:Dneary | Dave Neary]]'s attempt at mocking up a new maemo.org front page.</comment>
      <text xml:space="preserve">[[User:Dneary | Dave Neary]]'s attempt at mocking up a new maemo.org front page.</text>
    </revision>
  </page>
  <page>
    <title>File:Double leg pressouts.gif</title>
    <id>5286</id>
    <revision>
      <id>50446</id>
      <timestamp>2012-10-25T21:40:25Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>tenminutecore double leg pressouts gif</comment>
      <text xml:space="preserve">tenminutecore double leg pressouts gif</text>
    </revision>
  </page>
  <page>
    <title>File:Download- 03.png</title>
    <id>1652</id>
    <revision>
      <id>11182</id>
      <timestamp>2009-02-25T23:06:30Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>Application profile</comment>
      <text xml:space="preserve">Application profile</text>
    </revision>
  </page>
  <page>
    <title>File:Download.png</title>
    <id>1428</id>
    <revision>
      <id>9726</id>
      <timestamp>2009-01-16T03:50:29Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>Download page</comment>
      <text xml:space="preserve">Download page</text>
    </revision>
  </page>
  <page>
    <title>File:Download section.JPG</title>
    <id>224</id>
    <revision>
      <id>1468</id>
      <timestamp>2008-06-12T12:43:50Z</timestamp>
      <contributor>
        <username>peterschneider</username>
        <id>29</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Download section.jpg</title>
    <id>225</id>
    <revision>
      <id>1472</id>
      <timestamp>2008-06-12T12:48:53Z</timestamp>
      <contributor>
        <username>peterschneider</username>
        <id>29</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Download v 02.png</title>
    <id>1460</id>
    <revision>
      <id>9957</id>
      <timestamp>2009-01-21T14:59:03Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>download version 2</comment>
      <text xml:space="preserve">download version 2</text>
    </revision>
  </page>
  <page>
    <title>File:Download with rating.png</title>
    <id>1575</id>
    <revision>
      <id>10815</id>
      <timestamp>2009-02-11T22:30:31Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>Download page (rating activity)</comment>
      <text xml:space="preserve">Download page (rating activity)</text>
    </revision>
  </page>
  <page>
    <title>File:EDG Installation server at public Internet.png</title>
    <id>4187</id>
    <revision>
      <id>34981</id>
      <timestamp>2010-05-27T12:27:29Z</timestamp>
      <contributor>
        <username>jpalko</username>
        <id>2404</id>
      </contributor>
      <comment>Installation server at public Internet</comment>
      <text xml:space="preserve">Installation server at public Internet</text>
    </revision>
  </page>
  <page>
    <title>File:EDG Phases of the provisioning process.png</title>
    <id>4181</id>
    <revision>
      <id>34973</id>
      <timestamp>2010-05-27T12:21:19Z</timestamp>
      <contributor>
        <username>jpalko</username>
        <id>2404</id>
      </contributor>
      <comment>Phases of the provisioning process</comment>
      <text xml:space="preserve">Phases of the provisioning process</text>
    </revision>
  </page>
  <page>
    <title>File:EDG Typical Enterprise network environment.png</title>
    <id>4153</id>
    <revision>
      <id>34938</id>
      <timestamp>2010-05-27T12:02:18Z</timestamp>
      <contributor>
        <username>jpalko</username>
        <id>2404</id>
      </contributor>
      <comment>Typical Enterprise network environment</comment>
      <text xml:space="preserve">Typical Enterprise network environment</text>
    </revision>
  </page>
  <page>
    <title>File:Ecoach fresh.png</title>
    <id>1501</id>
    <revision>
      <id>10170</id>
      <timestamp>2009-01-23T16:07:56Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Edg access vpn.png</title>
    <id>4164</id>
    <revision>
      <id>43873</id>
      <timestamp>2011-06-06T14:04:05Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg app manager.png</title>
    <id>4157</id>
    <revision>
      <id>43875</id>
      <timestamp>2011-06-06T14:05:41Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Fremantle]] to [[Category:Enterprise]]</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg app manager download menu.png</title>
    <id>4158</id>
    <revision>
      <id>43876</id>
      <timestamp>2011-06-06T14:07:41Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg app manager install pidgin otr.png</title>
    <id>4161</id>
    <revision>
      <id>43877</id>
      <timestamp>2011-06-06T14:11:13Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg app manager installed.png</title>
    <id>4163</id>
    <revision>
      <id>43878</id>
      <timestamp>2011-06-06T14:11:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg app manager installing.png</title>
    <id>4162</id>
    <revision>
      <id>43879</id>
      <timestamp>2011-06-06T14:12:16Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg app manager menu.png</title>
    <id>4154</id>
    <revision>
      <id>43880</id>
      <timestamp>2011-06-06T14:12:58Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg app manager new repository.png</title>
    <id>4156</id>
    <revision>
      <id>43881</id>
      <timestamp>2011-06-06T14:13:37Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg app manager repositories.png</title>
    <id>4155</id>
    <revision>
      <id>43882</id>
      <timestamp>2011-06-06T14:14:17Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg app manager search.png</title>
    <id>4159</id>
    <revision>
      <id>43883</id>
      <timestamp>2011-06-06T14:15:24Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg app manager search results.png</title>
    <id>4160</id>
    <revision>
      <id>43778</id>
      <timestamp>2011-06-03T10:18:58Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg base vpn gui.png</title>
    <id>4165</id>
    <revision>
      <id>43779</id>
      <timestamp>2011-06-03T10:20:32Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg configure vpn.jpg</title>
    <id>4166</id>
    <revision>
      <id>43780</id>
      <timestamp>2011-06-03T10:20:58Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg msexchange config advanced.png</title>
    <id>4171</id>
    <revision>
      <id>43781</id>
      <timestamp>2011-06-03T10:21:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg msexchange config calendar.png</title>
    <id>4175</id>
    <revision>
      <id>43782</id>
      <timestamp>2011-06-03T10:59:32Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg msexchange config contacts.png</title>
    <id>4176</id>
    <revision>
      <id>43783</id>
      <timestamp>2011-06-03T11:00:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cateogorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg msexchange config credentials.png</title>
    <id>4168</id>
    <revision>
      <id>43784</id>
      <timestamp>2011-06-03T11:01:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg msexchange config first sync.png</title>
    <id>4177</id>
    <revision>
      <id>43785</id>
      <timestamp>2011-06-03T11:02:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg msexchange config server settings.png</title>
    <id>4169</id>
    <revision>
      <id>43786</id>
      <timestamp>2011-06-03T11:03:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg msexchange config settings.png</title>
    <id>4174</id>
    <revision>
      <id>43787</id>
      <timestamp>2011-06-03T11:12:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg msexchange config sync content.png</title>
    <id>4170</id>
    <revision>
      <id>43788</id>
      <timestamp>2011-06-03T11:16:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg msexchange config sync progress.png</title>
    <id>4179</id>
    <revision>
      <id>43789</id>
      <timestamp>2011-06-03T11:18:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg msexchange config sync resolution.png</title>
    <id>4173</id>
    <revision>
      <id>43790</id>
      <timestamp>2011-06-03T11:20:58Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg msexchange config sync schedule.png</title>
    <id>4172</id>
    <revision>
      <id>43791</id>
      <timestamp>2011-06-03T11:21:13Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg msexchange config sync status.png</title>
    <id>4178</id>
    <revision>
      <id>43792</id>
      <timestamp>2011-06-03T11:22:16Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg msexchange config welcome.png</title>
    <id>4167</id>
    <revision>
      <id>48497</id>
      <timestamp>2012-06-16T20:27:38Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Image:Edg msexchange config welcome.png]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg rdesktop appl access.png</title>
    <id>4182</id>
    <revision>
      <id>43797</id>
      <timestamp>2011-06-03T11:43:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg rdesktop pc list.png</title>
    <id>4184</id>
    <revision>
      <id>43796</id>
      <timestamp>2011-06-03T11:43:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg rdesktop pcconfig.png</title>
    <id>4180</id>
    <revision>
      <id>43795</id>
      <timestamp>2011-06-03T11:39:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edg rdesktop server details.png</title>
    <id>4183</id>
    <revision>
      <id>43794</id>
      <timestamp>2011-06-03T11:32:04Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edit toolbar.png</title>
    <id>2166</id>
    <revision>
      <id>43884</id>
      <timestamp>2011-06-06T14:15:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Enterprise]]</text>
    </revision>
  </page>
  <page>
    <title>File:Edit toolbar list view.png</title>
    <id>2406</id>
    <revision>
      <id>17938</id>
      <timestamp>2009-09-10T13:37:12Z</timestamp>
      <contributor>
        <username>tatiana</username>
        <id>1062</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Egl-example output.png</title>
    <id>3609</id>
    <revision>
      <id>29667</id>
      <timestamp>2010-02-17T12:00:29Z</timestamp>
      <contributor>
        <username>endboss</username>
        <id>2143</id>
      </contributor>
      <comment>this is a screen shot of the egl-example.cpp which is part of the wiki and demonstrates the usage of openGL ES</comment>
      <text xml:space="preserve">this is a screen shot of the egl-example.cpp which is part of the wiki and demonstrates the usage of openGL ES</text>
    </revision>
  </page>
  <page>
    <title>File:Eitama Minimal.png</title>
    <id>4797</id>
    <revision>
      <id>42542</id>
      <timestamp>2011-03-08T18:25:37Z</timestamp>
      <contributor>
        <username>godofwar424</username>
        <id>4012</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Eitama Minimal.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Ejpi.png</title>
    <id>4591</id>
    <revision>
      <id>40462</id>
      <timestamp>2010-12-04T18:47:20Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Ejpi enter.png</title>
    <id>4592</id>
    <revision>
      <id>40463</id>
      <timestamp>2010-12-04T18:47:22Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Email.png</title>
    <id>2603</id>
    <revision>
      <id>19406</id>
      <timestamp>2009-10-06T09:06:18Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Emelfm2 copy.png</title>
    <id>3075</id>
    <revision>
      <id>23276</id>
      <timestamp>2009-11-24T21:27:25Z</timestamp>
      <contributor>
        <username>ethanthekiwi</username>
        <id>1479</id>
      </contributor>
      <comment>Copy Files in emelfm2.</comment>
      <text xml:space="preserve">Copy Files in emelfm2.</text>
    </revision>
  </page>
  <page>
    <title>File:Emelfm2 root.png</title>
    <id>3074</id>
    <revision>
      <id>23268</id>
      <timestamp>2009-11-24T21:13:05Z</timestamp>
      <contributor>
        <username>ethanthekiwi</username>
        <id>1479</id>
      </contributor>
      <comment>Run emelfm2 as root</comment>
      <text xml:space="preserve">Run emelfm2 as root</text>
    </revision>
  </page>
  <page>
    <title>File:EnterCatalogDetails.png</title>
    <id>3683</id>
    <revision>
      <id>30314</id>
      <timestamp>2010-02-28T15:42:47Z</timestamp>
      <contributor>
        <username>xomm</username>
        <id>2155</id>
      </contributor>
      <comment>Entering Catalog Details
Part four of five of an App Manager tutorial.</comment>
      <text xml:space="preserve">Entering Catalog Details
Part four of five of an App Manager tutorial.</text>
    </revision>
  </page>
  <page>
    <title>File:EricWarnke.jpg</title>
    <id>840</id>
    <revision>
      <id>4973</id>
      <timestamp>2008-07-20T18:13:57Z</timestamp>
      <contributor>
        <username>brontide</username>
        <id>200</id>
      </contributor>
      <comment>Picture of Eric Warnke / User:Brontide</comment>
      <text xml:space="preserve">Picture of Eric Warnke / User:Brontide</text>
    </revision>
  </page>
  <page>
    <title>File:Estel.jpg</title>
    <id>5176</id>
    <revision>
      <id>47612</id>
      <timestamp>2012-05-25T20:38:31Z</timestamp>
      <contributor>
        <username>estel</username>
        <id>4426</id>
      </contributor>
      <comment>Nah, it's me!</comment>
      <text xml:space="preserve">Nah, it's me!</text>
    </revision>
  </page>
  <page>
    <title>File:Example-application-menu-clicked.png</title>
    <id>2168</id>
    <revision>
      <id>15466</id>
      <timestamp>2009-07-13T12:43:07Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Example-application-menu.png</title>
    <id>2167</id>
    <revision>
      <id>15465</id>
      <timestamp>2009-07-13T12:42:56Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Example-gtktoolbar.png</title>
    <id>2169</id>
    <revision>
      <id>15467</id>
      <timestamp>2009-07-13T12:43:16Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Example-migrating-menu-help.png</title>
    <id>2171</id>
    <revision>
      <id>15469</id>
      <timestamp>2009-07-13T12:43:46Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Example-migrating-menu-view.png</title>
    <id>2172</id>
    <revision>
      <id>16279</id>
      <timestamp>2009-08-07T11:04:55Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Example-migrating-menu-view.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Example-migrating-menu1.png</title>
    <id>2170</id>
    <revision>
      <id>16277</id>
      <timestamp>2009-08-07T10:43:38Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Example-migrating-menu1.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Example-pannable-area.png</title>
    <id>2173</id>
    <revision>
      <id>15471</id>
      <timestamp>2009-07-13T12:44:15Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Example-picker-button-selector-entry.png</title>
    <id>2175</id>
    <revision>
      <id>15473</id>
      <timestamp>2009-07-13T12:44:56Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Example-picker-button-selector-entry2.png</title>
    <id>2176</id>
    <revision>
      <id>15474</id>
      <timestamp>2009-07-13T12:45:15Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Example-picker-button-selector-entry3.png</title>
    <id>2192</id>
    <revision>
      <id>15490</id>
      <timestamp>2009-07-13T12:55:05Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Example-picker-button.png</title>
    <id>2174</id>
    <revision>
      <id>15472</id>
      <timestamp>2009-07-13T12:44:41Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Example-single-column-selector.png</title>
    <id>2177</id>
    <revision>
      <id>15475</id>
      <timestamp>2009-07-13T12:45:39Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Example-single-text-column-selector.png</title>
    <id>2417</id>
    <revision>
      <id>17988</id>
      <timestamp>2009-09-10T14:40:57Z</timestamp>
      <contributor>
        <username>tatiana</username>
        <id>1062</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Example-toolbar.png</title>
    <id>2178</id>
    <revision>
      <id>15476</id>
      <timestamp>2009-07-13T12:46:24Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Example.jpg</title>
    <id>5090</id>
    <revision>
      <id>46412</id>
      <timestamp>2012-01-16T04:14:47Z</timestamp>
      <contributor>
        <username>mikefila</username>
        <id>4947</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Example wizard dialog.png</title>
    <id>2418</id>
    <revision>
      <id>18076</id>
      <timestamp>2009-09-11T12:13:12Z</timestamp>
      <contributor>
        <username>tatiana</username>
        <id>1062</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Expanded.png</title>
    <id>5092</id>
    <revision>
      <id>46416</id>
      <timestamp>2012-01-16T04:25:03Z</timestamp>
      <contributor>
        <username>mikefila</username>
        <id>4947</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Expanded.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:ExportPOI.png</title>
    <id>2340</id>
    <revision>
      <id>16975</id>
      <timestamp>2009-08-26T17:34:17Z</timestamp>
      <contributor>
        <username>mve</username>
        <id>109</id>
      </contributor>
      <comment>GPXview export POI to Maemo Mapper</comment>
      <text xml:space="preserve">GPXview export POI to Maemo Mapper</text>
    </revision>
  </page>
  <page>
    <title>File:Extras 016 5.jpg</title>
    <id>2416</id>
    <revision>
      <id>17984</id>
      <timestamp>2009-09-10T14:33:15Z</timestamp>
      <contributor>
        <username>celtica96</username>
        <id>1141</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Extrasend.png</title>
    <id>5093</id>
    <revision>
      <id>46432</id>
      <timestamp>2012-01-16T18:54:47Z</timestamp>
      <contributor>
        <username>mikefila</username>
        <id>4947</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Fahrplan.png</title>
    <id>3950</id>
    <revision>
      <id>32951</id>
      <timestamp>2010-04-18T13:39:12Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Farnsworth.jpg</title>
    <id>872</id>
    <revision>
      <id>5144</id>
      <timestamp>2008-07-22T18:08:34Z</timestamp>
      <contributor>
        <username>frethop</username>
        <id>220</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:File rename.png</title>
    <id>3076</id>
    <revision>
      <id>23277</id>
      <timestamp>2009-11-24T21:30:06Z</timestamp>
      <contributor>
        <username>ethanthekiwi</username>
        <id>1479</id>
      </contributor>
      <comment>Rename a file in File Manager</comment>
      <text xml:space="preserve">Rename a file in File Manager</text>
    </revision>
  </page>
  <page>
    <title>File:Filemanager.png</title>
    <id>2604</id>
    <revision>
      <id>19407</id>
      <timestamp>2009-10-06T09:06:27Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Flame.gif</title>
    <id>2888</id>
    <revision>
      <id>21477</id>
      <timestamp>2009-11-01T12:29:35Z</timestamp>
      <contributor>
        <username>josefdk</username>
        <id>1273</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Flattr-badge-large.png</title>
    <id>4631</id>
    <revision>
      <id>40995</id>
      <timestamp>2011-01-05T07:36:33Z</timestamp>
      <contributor>
        <username>fredrik_wendt</username>
        <id>1469</id>
      </contributor>
      <comment>Flattr badge</comment>
      <text xml:space="preserve">Flattr badge</text>
    </revision>
  </page>
  <page>
    <title>File:Fle tut app menu portrait.jpg</title>
    <id>1989</id>
    <revision>
      <id>14175</id>
      <timestamp>2009-06-12T10:42:11Z</timestamp>
      <contributor>
        <username>conny</username>
        <id>951</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Fle tut app menu with filters.jpg</title>
    <id>1984</id>
    <revision>
      <id>14164</id>
      <timestamp>2009-06-12T09:26:56Z</timestamp>
      <contributor>
        <username>conny</username>
        <id>951</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Fle tut button auto finger.jpg</title>
    <id>2000</id>
    <revision>
      <id>14333</id>
      <timestamp>2009-06-17T07:42:22Z</timestamp>
      <contributor>
        <username>conny</username>
        <id>951</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Fle tut button finger finger.jpg</title>
    <id>2001</id>
    <revision>
      <id>14334</id>
      <timestamp>2009-06-17T07:42:34Z</timestamp>
      <contributor>
        <username>conny</username>
        <id>951</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Fle tut button finger thumb.jpg</title>
    <id>2002</id>
    <revision>
      <id>14335</id>
      <timestamp>2009-06-17T07:42:44Z</timestamp>
      <contributor>
        <username>conny</username>
        <id>951</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Fle tut context menu.jpg</title>
    <id>1985</id>
    <revision>
      <id>14166</id>
      <timestamp>2009-06-12T10:01:05Z</timestamp>
      <contributor>
        <username>conny</username>
        <id>951</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Fle tut filter long strings.jpg</title>
    <id>1988</id>
    <revision>
      <id>14171</id>
      <timestamp>2009-06-12T10:30:18Z</timestamp>
      <contributor>
        <username>conny</username>
        <id>951</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Fle tut radio buttons.jpg</title>
    <id>1982</id>
    <revision>
      <id>14159</id>
      <timestamp>2009-06-12T08:59:36Z</timestamp>
      <contributor>
        <username>conny</username>
        <id>951</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Fle tut toggle buttons.jpg</title>
    <id>1983</id>
    <revision>
      <id>14160</id>
      <timestamp>2009-06-12T09:00:48Z</timestamp>
      <contributor>
        <username>conny</username>
        <id>951</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Fle tut tree view.jpg</title>
    <id>1986</id>
    <revision>
      <id>14168</id>
      <timestamp>2009-06-12T10:12:52Z</timestamp>
      <contributor>
        <username>conny</username>
        <id>951</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Fle tut tree view filter.jpg</title>
    <id>1987</id>
    <revision>
      <id>14169</id>
      <timestamp>2009-06-12T10:13:28Z</timestamp>
      <contributor>
        <username>conny</username>
        <id>951</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Fluendo logo.png</title>
    <id>1050</id>
    <revision>
      <id>6014</id>
      <timestamp>2008-07-30T16:03:49Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Fluxbox0.png</title>
    <id>1948</id>
    <revision>
      <id>13892</id>
      <timestamp>2009-06-02T18:10:06Z</timestamp>
      <contributor>
        <username>capn_fish</username>
        <id>935</id>
      </contributor>
      <comment>Fluxbox on Mer screenshot 0</comment>
      <text xml:space="preserve">Fluxbox on Mer screenshot 0</text>
    </revision>
  </page>
  <page>
    <title>File:Fluxbox1.png</title>
    <id>1949</id>
    <revision>
      <id>13893</id>
      <timestamp>2009-06-02T18:10:48Z</timestamp>
      <contributor>
        <username>capn_fish</username>
        <id>935</id>
      </contributor>
      <comment>Fluxbox on Mer screenshot 1</comment>
      <text xml:space="preserve">Fluxbox on Mer screenshot 1</text>
    </revision>
  </page>
  <page>
    <title>File:Freedesktop-logo-small.png</title>
    <id>1079</id>
    <revision>
      <id>6300</id>
      <timestamp>2008-08-05T15:42:27Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Fresh overlay.png</title>
    <id>1546</id>
    <revision>
      <id>10495</id>
      <timestamp>2009-01-28T17:25:41Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Frontpage breadcrum-nav sample.png</title>
    <id>1738</id>
    <revision>
      <id>12171</id>
      <timestamp>2009-03-31T14:02:31Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Frontpage breadcrumb-nav sample.png</title>
    <id>1739</id>
    <revision>
      <id>12172</id>
      <timestamp>2009-03-31T14:04:48Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:GA mini.png</title>
    <id>1503</id>
    <revision>
      <id>10172</id>
      <timestamp>2009-01-23T16:24:53Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:GPodderFremantle.png</title>
    <id>2474</id>
    <revision>
      <id>18568</id>
      <timestamp>2009-09-22T16:56:32Z</timestamp>
      <contributor>
        <username>hugo_pl</username>
        <id>1200</id>
      </contributor>
      <comment>gPoddler on Fremantle</comment>
      <text xml:space="preserve">gPoddler on Fremantle</text>
    </revision>
  </page>
  <page>
    <title>File:GSoC 2009 mentors.png</title>
    <id>1569</id>
    <revision>
      <id>39032</id>
      <timestamp>2010-09-22T14:11:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>File:GSoC 2009 project ideas.png</title>
    <id>1570</id>
    <revision>
      <id>39033</id>
      <timestamp>2010-09-22T14:11:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>File:GSoC 2009 projects.png</title>
    <id>1804</id>
    <revision>
      <id>39034</id>
      <timestamp>2010-09-22T14:11:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>File:GSoc 2009 students.png</title>
    <id>1568</id>
    <revision>
      <id>39035</id>
      <timestamp>2010-09-22T14:12:19Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>File:Gba gpSP.png</title>
    <id>4830</id>
    <revision>
      <id>42944</id>
      <timestamp>2011-04-05T12:24:50Z</timestamp>
      <contributor>
        <username>luiscesjr</username>
        <id>3854</id>
      </contributor>
      <comment>To use under gpSP maemo wiki, aswell as any other page anyone deems
necessary.</comment>
      <text xml:space="preserve">To use under gpSP maemo wiki, aswell as any other page anyone deems
necessary.</text>
    </revision>
  </page>
  <page>
    <title>File:General default avatar.png</title>
    <id>3827</id>
    <revision>
      <id>31971</id>
      <timestamp>2010-04-03T14:54:36Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>Maemo 5's default avatar</comment>
      <text xml:space="preserve">Maemo 5's default avatar</text>
    </revision>
  </page>
  <page>
    <title>File:Gitk-glib.png</title>
    <id>2004</id>
    <revision>
      <id>14350</id>
      <timestamp>2009-06-17T15:18:45Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>Snapshot of git merge of glib</comment>
      <text xml:space="preserve">Snapshot of git merge of glib</text>
    </revision>
  </page>
  <page>
    <title>File:Gltron.png</title>
    <id>3949</id>
    <revision>
      <id>32949</id>
      <timestamp>2010-04-18T13:36:58Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:GnomeLogoBitsream horisontal.png</title>
    <id>1077</id>
    <revision>
      <id>6292</id>
      <timestamp>2008-08-05T14:39:42Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Gnu-head.png</title>
    <id>1083</id>
    <revision>
      <id>6308</id>
      <timestamp>2008-08-05T16:16:59Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Gnuton.png</title>
    <id>895</id>
    <revision>
      <id>5277</id>
      <timestamp>2008-07-24T07:59:34Z</timestamp>
      <contributor>
        <username>gnuton</username>
        <id>225</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Gonvert Categories.png</title>
    <id>4585</id>
    <revision>
      <id>40455</id>
      <timestamp>2010-12-04T18:39:28Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Gonvert Condensed.png</title>
    <id>4586</id>
    <revision>
      <id>40456</id>
      <timestamp>2010-12-04T18:40:18Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Gonvert Favorites.png</title>
    <id>4587</id>
    <revision>
      <id>40457</id>
      <timestamp>2010-12-04T18:40:21Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Gonvert QuickJump.png</title>
    <id>4588</id>
    <revision>
      <id>40458</id>
      <timestamp>2010-12-04T18:40:28Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Gonvert Recent.png</title>
    <id>4589</id>
    <revision>
      <id>40459</id>
      <timestamp>2010-12-04T18:40:34Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Gonvert Units.png</title>
    <id>4590</id>
    <revision>
      <id>40460</id>
      <timestamp>2010-12-04T18:40:40Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Good Normal.png</title>
    <id>1602</id>
    <revision>
      <id>10974</id>
      <timestamp>2009-02-17T11:08:28Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Good over.png</title>
    <id>1603</id>
    <revision>
      <id>10975</id>
      <timestamp>2009-02-17T11:08:58Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Good rollover.png</title>
    <id>1638</id>
    <revision>
      <id>11078</id>
      <timestamp>2009-02-17T21:06:04Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Goofy samoff.jpg</title>
    <id>805</id>
    <revision>
      <id>4689</id>
      <timestamp>2008-07-17T16:23:35Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Normally, I'd post a better photo, but honestly, I make a lot of goofy faces.</comment>
      <text xml:space="preserve">Normally, I'd post a better photo, but honestly, I make a lot of goofy faces.</text>
    </revision>
  </page>
  <page>
    <title>File:Gpodder 1 small.jpg</title>
    <id>2456</id>
    <revision>
      <id>18481</id>
      <timestamp>2009-09-21T20:51:22Z</timestamp>
      <contributor>
        <username>setanta</username>
        <id>1012</id>
      </contributor>
      <comment>gPodder running on Maemo without any modifications</comment>
      <text xml:space="preserve">gPodder running on Maemo without any modifications</text>
    </revision>
  </page>
  <page>
    <title>File:Gpodder 2 small.jpg</title>
    <id>2457</id>
    <revision>
      <id>18482</id>
      <timestamp>2009-09-21T20:51:44Z</timestamp>
      <contributor>
        <username>setanta</username>
        <id>1012</id>
      </contributor>
      <comment>gPodder using HildonProgram and HildonWindow</comment>
      <text xml:space="preserve">gPodder using HildonProgram and HildonWindow</text>
    </revision>
  </page>
  <page>
    <title>File:Gpodder 3 small.jpg</title>
    <id>2458</id>
    <revision>
      <id>18483</id>
      <timestamp>2009-09-21T20:52:05Z</timestamp>
      <contributor>
        <username>setanta</username>
        <id>1012</id>
      </contributor>
      <comment>gPodder using HildonWindow's menu bar</comment>
      <text xml:space="preserve">gPodder using HildonWindow's menu bar</text>
    </revision>
  </page>
  <page>
    <title>File:Gpodder 4 small.jpg</title>
    <id>2459</id>
    <revision>
      <id>18484</id>
      <timestamp>2009-09-21T20:52:28Z</timestamp>
      <contributor>
        <username>setanta</username>
        <id>1012</id>
      </contributor>
      <comment>gPodder using GTK's file chooser dialog</comment>
      <text xml:space="preserve">gPodder using GTK's file chooser dialog</text>
    </revision>
  </page>
  <page>
    <title>File:Gpodder 5 small.jpg</title>
    <id>2460</id>
    <revision>
      <id>18485</id>
      <timestamp>2009-09-21T20:53:28Z</timestamp>
      <contributor>
        <username>setanta</username>
        <id>1012</id>
      </contributor>
      <comment>gPodder using Hildon's file chooser dialog</comment>
      <text xml:space="preserve">gPodder using Hildon's file chooser dialog</text>
    </revision>
  </page>
  <page>
    <title>File:Gpodder 6 small.jpg</title>
    <id>2461</id>
    <revision>
      <id>18486</id>
      <timestamp>2009-09-21T20:53:46Z</timestamp>
      <contributor>
        <username>setanta</username>
        <id>1012</id>
      </contributor>
      <comment>gPodder with shortened tab names</comment>
      <text xml:space="preserve">gPodder with shortened tab names</text>
    </revision>
  </page>
  <page>
    <title>File:Gpodder 7 small.jpg</title>
    <id>2462</id>
    <revision>
      <id>18487</id>
      <timestamp>2009-09-21T20:54:26Z</timestamp>
      <contributor>
        <username>setanta</username>
        <id>1012</id>
      </contributor>
      <comment>gPodder in full screen mode</comment>
      <text xml:space="preserve">gPodder in full screen mode</text>
    </revision>
  </page>
  <page>
    <title>File:Gpodder glade 1.png</title>
    <id>2463</id>
    <revision>
      <id>18488</id>
      <timestamp>2009-09-21T20:54:50Z</timestamp>
      <contributor>
        <username>setanta</username>
        <id>1012</id>
      </contributor>
      <comment>Windows defined in gPodder's glade file</comment>
      <text xml:space="preserve">Windows defined in gPodder's glade file</text>
    </revision>
  </page>
  <page>
    <title>File:Gpodder glade 2.png</title>
    <id>2464</id>
    <revision>
      <id>18489</id>
      <timestamp>2009-09-21T20:55:11Z</timestamp>
      <contributor>
        <username>setanta</username>
        <id>1012</id>
      </contributor>
      <comment>Widget tree for the gPodder window</comment>
      <text xml:space="preserve">Widget tree for the gPodder window</text>
    </revision>
  </page>
  <page>
    <title>File:Gpodder glade 3.png</title>
    <id>2465</id>
    <revision>
      <id>18490</id>
      <timestamp>2009-09-21T20:55:32Z</timestamp>
      <contributor>
        <username>setanta</username>
        <id>1012</id>
      </contributor>
      <comment>destroy signal for gPodder window</comment>
      <text xml:space="preserve">destroy signal for gPodder window</text>
    </revision>
  </page>
  <page>
    <title>File:Group By Sender.jpg</title>
    <id>4787</id>
    <revision>
      <id>42529</id>
      <timestamp>2011-03-08T18:23:13Z</timestamp>
      <contributor>
        <username>godofwar424</username>
        <id>4012</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Group By Sender.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Gsoc 2010.jpg</title>
    <id>3571</id>
    <revision>
      <id>39036</id>
      <timestamp>2010-09-22T14:15:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>File:Gstreamer logo.png</title>
    <id>1080</id>
    <revision>
      <id>6301</id>
      <timestamp>2008-08-05T15:43:37Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Gtalk2.png</title>
    <id>2605</id>
    <revision>
      <id>19408</id>
      <timestamp>2009-10-06T09:06:35Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Gtalk3.png</title>
    <id>2607</id>
    <revision>
      <id>19410</id>
      <timestamp>2009-10-06T09:06:43Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Gtk-logo.png</title>
    <id>1078</id>
    <revision>
      <id>6298</id>
      <timestamp>2008-08-05T15:40:05Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:H22-Modest-Accounts-view.png</title>
    <id>2264</id>
    <revision>
      <id>16349</id>
      <timestamp>2009-08-10T13:30:59Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:H22-Modest-Editor-view.png</title>
    <id>2268</id>
    <revision>
      <id>16370</id>
      <timestamp>2009-08-10T14:08:06Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:H22-Modest-Folders-view.png</title>
    <id>2265</id>
    <revision>
      <id>16360</id>
      <timestamp>2009-08-10T13:52:46Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:H22-Modest-Messages-view.png</title>
    <id>2266</id>
    <revision>
      <id>16365</id>
      <timestamp>2009-08-10T13:57:53Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:H22-Modest-Viewer-view.png</title>
    <id>2267</id>
    <revision>
      <id>16368</id>
      <timestamp>2009-08-10T14:02:58Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:H22-Modest-account-settings.png</title>
    <id>2272</id>
    <revision>
      <id>16383</id>
      <timestamp>2009-08-10T14:25:33Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:HIM-comp.png</title>
    <id>2926</id>
    <revision>
      <id>21872</id>
      <timestamp>2009-11-05T13:18:01Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:HIM-ui.png</title>
    <id>2927</id>
    <revision>
      <id>21873</id>
      <timestamp>2009-11-05T13:18:08Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:HOME510.png</title>
    <id>1371</id>
    <revision>
      <id>9222</id>
      <timestamp>2008-12-05T20:34:19Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>andre`s layout final update</comment>
      <text xml:space="preserve">andre`s layout final update</text>
    </revision>
  </page>
  <page>
    <title>File:HOME .png</title>
    <id>1367</id>
    <revision>
      <id>9156</id>
      <timestamp>2008-12-03T20:40:44Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>Little changes have been made on this proposal, just moved some boxes, changged some colors and buttons...</comment>
      <text xml:space="preserve">Little changes have been made on this proposal, just moved some boxes, changged some colors and buttons...</text>
    </revision>
  </page>
  <page>
    <title>File:HOME 03 MOD.png</title>
    <id>1301</id>
    <revision>
      <id>8090</id>
      <timestamp>2008-10-29T01:11:14Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>This is the modified home page submited by Andre with the modifications asked on maemo-community list and based on original TIm's proposal.</comment>
      <text xml:space="preserve">This is the modified home page submited by Andre with the modifications asked on maemo-community list and based on original TIm's proposal.</text>
    </revision>
  </page>
  <page>
    <title>File:HOME 04.png</title>
    <id>1331</id>
    <revision>
      <id>8676</id>
      <timestamp>2008-11-11T22:23:49Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>This is an alternate proposal for the homepage. I've moved the &quot;Search &amp; Log in&quot; to the header next too the main menu. I've also removed some boxes and reorganized the content. A problem that I noted in the layouts done so far is that all of them are stru</comment>
      <text xml:space="preserve">This is an alternate proposal for the homepage. I've moved the &quot;Search &amp; Log in&quot; to the header next too the main menu. I've also removed some boxes and reorganized the content. A problem that I noted in the layouts done so far is that all of them are structured in columns so the content is limited in that restricted space. This new layout tries to solve the problem with the distribution of the information.</text>
    </revision>
  </page>
  <page>
    <title>File:HOME 05.png</title>
    <id>1332</id>
    <revision>
      <id>8677</id>
      <timestamp>2008-11-11T22:27:11Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>This is an old proposal that I've made before the changes on Tim's layout were discussed on the list: A darker layout and horizontally structured.</comment>
      <text xml:space="preserve">This is an old proposal that I've made before the changes on Tim's layout were discussed on the list: A darker layout and horizontally structured.</text>
    </revision>
  </page>
  <page>
    <title>File:HOME 06.png</title>
    <id>1337</id>
    <revision>
      <id>8735</id>
      <timestamp>2008-11-13T14:16:45Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>I`ve changed the &quot;log in box&quot; and the &quot;search box&quot; of place. with that , I reduced the Header and shifted the rest of the pagebody up. 

I`ve also slightly diminished the maemo.org logo

The white brackets simule the n810 area</comment>
      <text xml:space="preserve">I`ve changed the &quot;log in box&quot; and the &quot;search box&quot; of place. with that , I reduced the Header and shifted the rest of the pagebody up. 

I`ve also slightly diminished the maemo.org logo

The white brackets simule the n810 area</text>
    </revision>
  </page>
  <page>
    <title>File:HOME 7.png</title>
    <id>1356</id>
    <revision>
      <id>8956</id>
      <timestamp>2008-11-24T20:12:48Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>that`s my white proposal 
it`s more organized and contrasting, now things are clear enought to read
thing we`ve worked on:
header received a new arrangement.
links are visible to click
legibility and text spacing are well defined 
new colors added</comment>
      <text xml:space="preserve">that`s my white proposal 
it`s more organized and contrasting, now things are clear enought to read
thing we`ve worked on:
header received a new arrangement.
links are visible to click
legibility and text spacing are well defined 
new colors added</text>
    </revision>
  </page>
  <page>
    <title>File:HOME 8.png</title>
    <id>1358</id>
    <revision>
      <id>10720</id>
      <timestamp>2009-02-06T20:09:29Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:HOME 8.png]]&quot;: home page</comment>
      <text xml:space="preserve">New layout with some adjustments proposed by Tim and Henri B.</text>
    </revision>
  </page>
  <page>
    <title>File:Hahlo.jpg</title>
    <id>3064</id>
    <revision>
      <id>23201</id>
      <timestamp>2009-11-23T21:57:30Z</timestamp>
      <contributor>
        <username>mikecy</username>
        <id>1355</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:He-menu-view-before-and-after.png</title>
    <id>4372</id>
    <revision>
      <id>37390</id>
      <timestamp>2010-07-30T08:10:45Z</timestamp>
      <contributor>
        <username>nix_nix</username>
        <id>3201</id>
      </contributor>
      <comment>HeMenuView before vs. after picture</comment>
      <text xml:space="preserve">HeMenuView before vs. after picture</text>
    </revision>
  </page>
  <page>
    <title>File:HeAboutDialog.png</title>
    <id>3723</id>
    <revision>
      <id>30721</id>
      <timestamp>2010-03-08T13:14:00Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <comment>The [[Hildon-Extras]] about dialog</comment>
      <text xml:space="preserve">The [[Hildon-Extras]] about dialog</text>
    </revision>
  </page>
  <page>
    <title>File:HeCheckButton.png</title>
    <id>3725</id>
    <revision>
      <id>30726</id>
      <timestamp>2010-03-08T13:21:56Z</timestamp>
      <contributor>
        <username>conny</username>
        <id>951</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:HeColorButton.png</title>
    <id>3730</id>
    <revision>
      <id>30738</id>
      <timestamp>2010-03-08T13:43:20Z</timestamp>
      <contributor>
        <username>conny</username>
        <id>951</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:HeColorDialog.png</title>
    <id>3727</id>
    <revision>
      <id>30734</id>
      <timestamp>2010-03-08T13:36:34Z</timestamp>
      <contributor>
        <username>conny</username>
        <id>951</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:HeFontButton.png</title>
    <id>3729</id>
    <revision>
      <id>30737</id>
      <timestamp>2010-03-08T13:43:03Z</timestamp>
      <contributor>
        <username>conny</username>
        <id>951</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:HeFontDialog.png</title>
    <id>3728</id>
    <revision>
      <id>30735</id>
      <timestamp>2010-03-08T13:36:50Z</timestamp>
      <contributor>
        <username>conny</username>
        <id>951</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:HeFullscreenButton.png</title>
    <id>3726</id>
    <revision>
      <id>30730</id>
      <timestamp>2010-03-08T13:25:48Z</timestamp>
      <contributor>
        <username>conny</username>
        <id>951</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:HeSimpleColorDialog.png</title>
    <id>3724</id>
    <revision>
      <id>30723</id>
      <timestamp>2010-03-08T13:18:20Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <comment>A simple color picker, from [[Hildon-Extras]]</comment>
      <text xml:space="preserve">A simple color picker, from [[Hildon-Extras]]</text>
    </revision>
  </page>
  <page>
    <title>File:Hello-world.png</title>
    <id>5010</id>
    <revision>
      <id>45245</id>
      <timestamp>2011-09-11T19:02:05Z</timestamp>
      <contributor>
        <username>inean</username>
        <id>4650</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Hello.png</title>
    <id>4516</id>
    <revision>
      <id>39530</id>
      <timestamp>2010-10-14T15:36:59Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>48x48 pixmap file made for demonstration purposes for a Hello, Woprld package</comment>
      <text xml:space="preserve">48x48 pixmap file made for demonstration purposes for a Hello, Woprld package</text>
    </revision>
  </page>
  <page>
    <title>File:Hello icon 26x26.jpg</title>
    <id>2466</id>
    <revision>
      <id>18491</id>
      <timestamp>2009-09-21T20:56:13Z</timestamp>
      <contributor>
        <username>setanta</username>
        <id>1012</id>
      </contributor>
      <comment>Hello PyMaemo icon|Hello PyMaemo icon</comment>
      <text xml:space="preserve">Hello PyMaemo icon|Hello PyMaemo icon</text>
    </revision>
  </page>
  <page>
    <title>File:Hello world 1 no theme small.jpg</title>
    <id>2467</id>
    <revision>
      <id>18492</id>
      <timestamp>2009-09-21T20:56:44Z</timestamp>
      <contributor>
        <username>setanta</username>
        <id>1012</id>
      </contributor>
      <comment>Application without the Hildon theme</comment>
      <text xml:space="preserve">Application without the Hildon theme</text>
    </revision>
  </page>
  <page>
    <title>File:Hello world 1 small.jpg</title>
    <id>2454</id>
    <revision>
      <id>18478</id>
      <timestamp>2009-09-21T20:31:43Z</timestamp>
      <contributor>
        <username>setanta</username>
        <id>1012</id>
      </contributor>
      <comment>Plain PyGTK &quot;Hello World!&quot; application</comment>
      <text xml:space="preserve">Plain PyGTK &quot;Hello World!&quot; application</text>
    </revision>
  </page>
  <page>
    <title>File:Hello world 3 small.jpg</title>
    <id>2468</id>
    <revision>
      <id>18493</id>
      <timestamp>2009-09-21T20:57:53Z</timestamp>
      <contributor>
        <username>setanta</username>
        <id>1012</id>
      </contributor>
      <comment>Hildon-compliant &quot;Hello World!&quot; application</comment>
      <text xml:space="preserve">Hildon-compliant &quot;Hello World!&quot; application</text>
    </revision>
  </page>
  <page>
    <title>File:Hello world home python1.png</title>
    <id>1923</id>
    <revision>
      <id>20393</id>
      <timestamp>2009-10-18T22:29:39Z</timestamp>
      <contributor>
        <username>lizardo</username>
        <id>923</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Hello world home python1.png]]&quot;</comment>
      <text xml:space="preserve">Screenshot showing the Hello World Home Widget (Python) (1/2)</text>
    </revision>
  </page>
  <page>
    <title>File:Hello world home python2.png</title>
    <id>1924</id>
    <revision>
      <id>20394</id>
      <timestamp>2009-10-18T22:31:44Z</timestamp>
      <contributor>
        <username>lizardo</username>
        <id>923</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Hello world home python2.png]]&quot;</comment>
      <text xml:space="preserve">Screenshot showing the Hello World Home Widget (Python) (2/2)</text>
    </revision>
  </page>
  <page>
    <title>File:Helloworld-with-theme.png</title>
    <id>2197</id>
    <revision>
      <id>40333</id>
      <timestamp>2010-11-26T14:33:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Helloworld-without-theme.png</title>
    <id>2196</id>
    <revision>
      <id>40330</id>
      <timestamp>2010-11-26T14:26:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Highlight states.png</title>
    <id>2377</id>
    <revision>
      <id>17359</id>
      <timestamp>2009-09-03T11:54:51Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Hildon-desktop decomposition.png</title>
    <id>2923</id>
    <revision>
      <id>21869</id>
      <timestamp>2009-11-05T13:17:06Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Hildon-home components.png</title>
    <id>2924</id>
    <revision>
      <id>21870</id>
      <timestamp>2009-11-05T13:17:27Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Hildon-statusmenu decomposition.png</title>
    <id>2925</id>
    <revision>
      <id>21871</id>
      <timestamp>2009-11-05T13:17:45Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Hildon helloworld-5.png</title>
    <id>1458</id>
    <revision>
      <id>9954</id>
      <timestamp>2009-01-21T14:28:03Z</timestamp>
      <contributor>
        <username>qlin</username>
        <id>517</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Home 06.png</title>
    <id>1336</id>
    <revision>
      <id>8733</id>
      <timestamp>2008-11-13T14:02:49Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Home 06.png]]&quot;: I`ve changed the &quot;log in box&quot; and the &quot;search box&quot; of place. with that , I reduced the Header and shifted the rest of the pagebody up. 

I`ve also slightly diminished the maemo.org logo

The white bracket</comment>
      <text xml:space="preserve">I`ve changed the &quot;log in box&quot; and the &quot;search box&quot; of place. with that , I reduced the Header and shifted the rest of the pagebody up. I`ve also slightly diminished the maemo.org logo, The white brackets simule the n810 area</text>
    </revision>
  </page>
  <page>
    <title>File:Home clean.png</title>
    <id>2609</id>
    <revision>
      <id>19412</id>
      <timestamp>2009-10-06T09:06:57Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Homepage-proposal-4.png</title>
    <id>1266</id>
    <revision>
      <id>7746</id>
      <timestamp>2008-10-15T06:35:49Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Proposal departing from Andre's mockup, concentrating on relocation of items (no on final design!)</comment>
      <text xml:space="preserve">Proposal departing from Andre's mockup, concentrating on relocation of items (no on final design!)</text>
    </revision>
  </page>
  <page>
    <title>File:Hot overlay.png</title>
    <id>1547</id>
    <revision>
      <id>10496</id>
      <timestamp>2009-01-28T17:26:07Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Hrw-photo.jpg</title>
    <id>868</id>
    <revision>
      <id>5114</id>
      <timestamp>2008-07-22T10:30:38Z</timestamp>
      <contributor>
        <username>hrw</username>
        <id>9</id>
      </contributor>
      <comment>Photo of Marcin 'Hrw' Juszkiewicz</comment>
      <text xml:space="preserve">Photo of Marcin 'Hrw' Juszkiewicz</text>
    </revision>
  </page>
  <page>
    <title>File:Htop.png</title>
    <id>4387</id>
    <revision>
      <id>37615</id>
      <timestamp>2010-08-08T21:51:11Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <comment>Own work, a screenshot of htop running over ssh onto a n900.</comment>
      <text xml:space="preserve">Own work, a screenshot of htop running over ssh onto a n900.</text>
    </revision>
  </page>
  <page>
    <title>File:IMG 2360.jpg</title>
    <id>2715</id>
    <revision>
      <id>20082</id>
      <timestamp>2009-10-14T13:23:21Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:IMG 2363.jpg</title>
    <id>2716</id>
    <revision>
      <id>20083</id>
      <timestamp>2009-10-14T13:23:36Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:IRC ChatRoom.png</title>
    <id>1395</id>
    <revision>
      <id>9428</id>
      <timestamp>2008-12-23T19:13:04Z</timestamp>
      <contributor>
        <username>frankusb</username>
        <id>354</id>
      </contributor>
      <comment>RTComm Chat Room</comment>
      <text xml:space="preserve">RTComm Chat Room</text>
    </revision>
  </page>
  <page>
    <title>File:IRC ConnectingEnterChatRoom.png</title>
    <id>1396</id>
    <revision>
      <id>9429</id>
      <timestamp>2008-12-23T19:15:15Z</timestamp>
      <contributor>
        <username>frankusb</username>
        <id>354</id>
      </contributor>
      <comment>RTComm IRC Enter chat room</comment>
      <text xml:space="preserve">RTComm IRC Enter chat room</text>
    </revision>
  </page>
  <page>
    <title>File:IRC ConnectingSelectAccount.png</title>
    <id>1397</id>
    <revision>
      <id>9430</id>
      <timestamp>2008-12-23T19:16:33Z</timestamp>
      <contributor>
        <username>frankusb</username>
        <id>354</id>
      </contributor>
      <comment>RTComm IRC Select Account</comment>
      <text xml:space="preserve">RTComm IRC Select Account</text>
    </revision>
  </page>
  <page>
    <title>File:IRC EnterChatRoom.png</title>
    <id>1398</id>
    <revision>
      <id>9431</id>
      <timestamp>2008-12-23T19:17:45Z</timestamp>
      <contributor>
        <username>frankusb</username>
        <id>354</id>
      </contributor>
      <comment>RTComm IRC Enter Chat Room</comment>
      <text xml:space="preserve">RTComm IRC Enter Chat Room</text>
    </revision>
  </page>
  <page>
    <title>File:IRC Service.png</title>
    <id>1399</id>
    <revision>
      <id>9432</id>
      <timestamp>2008-12-23T19:19:07Z</timestamp>
      <contributor>
        <username>frankusb</username>
        <id>354</id>
      </contributor>
      <comment>RTComm IRC Account Setup Service</comment>
      <text xml:space="preserve">RTComm IRC Account Setup Service</text>
    </revision>
  </page>
  <page>
    <title>File:IRC UserName.png</title>
    <id>1400</id>
    <revision>
      <id>9433</id>
      <timestamp>2008-12-23T19:20:10Z</timestamp>
      <contributor>
        <username>frankusb</username>
        <id>354</id>
      </contributor>
      <comment>RTComm IRC User Name</comment>
      <text xml:space="preserve">RTComm IRC User Name</text>
    </revision>
  </page>
  <page>
    <title>File:ITV interaction diagram.png</title>
    <id>1409</id>
    <revision>
      <id>9534</id>
      <timestamp>2009-01-05T18:07:19Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Icecc create env sbox.sh</title>
    <id>3552</id>
    <revision>
      <id>28657</id>
      <timestamp>2010-02-08T11:23:03Z</timestamp>
      <contributor>
        <username>mairas</username>
        <id>1622</id>
      </contributor>
      <comment>icecc environment tarball creation script for scratchbox</comment>
      <text xml:space="preserve">icecc environment tarball creation script for scratchbox</text>
    </revision>
  </page>
  <page>
    <title>File:Icon-community.gif</title>
    <id>1796</id>
    <revision>
      <id>12756</id>
      <timestamp>2009-04-23T16:13:22Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Icon-started-download.gif</title>
    <id>1797</id>
    <revision>
      <id>12757</id>
      <timestamp>2009-04-23T16:16:54Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Icons.png</title>
    <id>1548</id>
    <revision>
      <id>10814</id>
      <timestamp>2009-02-11T22:24:59Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Icons.png]]&quot;</comment>
      <text xml:space="preserve">update</text>
    </revision>
  </page>
  <page>
    <title>File:Ifconfg-ping.png</title>
    <id>3046</id>
    <revision>
      <id>23089</id>
      <timestamp>2009-11-22T16:29:33Z</timestamp>
      <contributor>
        <username>archebyte</username>
        <id>1464</id>
      </contributor>
      <comment>Output of 'ifconfig usb0' and 'ping 192.168.2.15' on the N900 after successfully configuring USB Networking mode.</comment>
      <text xml:space="preserve">Output of 'ifconfig usb0' and 'ping 192.168.2.15' on the N900 after successfully configuring USB Networking mode.</text>
    </revision>
  </page>
  <page>
    <title>File:Igalia logo.gif</title>
    <id>1048</id>
    <revision>
      <id>6012</id>
      <timestamp>2008-07-30T15:56:13Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:ImageMaemo.org logo contest nazo logo.png</title>
    <id>772</id>
    <revision>
      <id>4345</id>
      <timestamp>2008-07-10T11:09:51Z</timestamp>
      <contributor>
        <username>nazo</username>
        <id>192</id>
      </contributor>
      <comment>logo</comment>
      <text xml:space="preserve">logo</text>
    </revision>
  </page>
  <page>
    <title>File:ImageMaemo.org logo contest nazo logoB.png</title>
    <id>773</id>
    <revision>
      <id>4348</id>
      <timestamp>2008-07-10T11:34:23Z</timestamp>
      <contributor>
        <username>nazo</username>
        <id>192</id>
      </contributor>
      <comment>Logo proposal B</comment>
      <text xml:space="preserve">Logo proposal B</text>
    </revision>
  </page>
  <page>
    <title>File:ImageMaemo.org logo contest nazo tshirt A.png</title>
    <id>771</id>
    <revision>
      <id>4343</id>
      <timestamp>2008-07-10T10:51:56Z</timestamp>
      <contributor>
        <username>nazo</username>
        <id>192</id>
      </contributor>
      <comment>Tshirt with logo</comment>
      <text xml:space="preserve">Tshirt with logo</text>
    </revision>
  </page>
  <page>
    <title>File:Imaging Sharing sw context.png</title>
    <id>2557</id>
    <revision>
      <id>19336</id>
      <timestamp>2009-10-06T06:31:23Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Imaging decomposition.png</title>
    <id>2621</id>
    <revision>
      <id>19432</id>
      <timestamp>2009-10-06T09:46:07Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Imendio.png</title>
    <id>1047</id>
    <revision>
      <id>6010</id>
      <timestamp>2008-07-30T15:51:41Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Import.png</title>
    <id>2338</id>
    <revision>
      <id>16973</id>
      <timestamp>2009-08-26T17:32:02Z</timestamp>
      <contributor>
        <username>mve</username>
        <id>109</id>
      </contributor>
      <comment>Selecting import directory from GPXView</comment>
      <text xml:space="preserve">Selecting import directory from GPXView</text>
    </revision>
  </page>
  <page>
    <title>File:Information note.png</title>
    <id>2180</id>
    <revision>
      <id>15478</id>
      <timestamp>2009-07-13T12:46:53Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Jamie large.jpg</title>
    <id>820</id>
    <revision>
      <id>4757</id>
      <timestamp>2008-07-18T09:06:44Z</timestamp>
      <contributor>
        <username>baloo</username>
        <id>128</id>
      </contributor>
      <comment>Jamie Bennett</comment>
      <text xml:space="preserve">Jamie Bennett</text>
    </revision>
  </page>
  <page>
    <title>File:Jebba-oldfone.jpg</title>
    <id>3226</id>
    <revision>
      <id>25025</id>
      <timestamp>2009-12-22T21:40:07Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>My old nokia phone, finally replaced after many long years of service by the exceptional Nokia N900.</comment>
      <text xml:space="preserve">My old nokia phone, finally replaced after many long years of service by the exceptional Nokia N900.</text>
    </revision>
  </page>
  <page>
    <title>File:Jedit.png</title>
    <id>3524</id>
    <revision>
      <id>28376</id>
      <timestamp>2010-02-04T21:09:36Z</timestamp>
      <contributor>
        <username>mcbrown</username>
        <id>2050</id>
      </contributor>
      <comment>Jedit running in OpenJDK on Nokia N900</comment>
      <text xml:space="preserve">Jedit running in OpenJDK on Nokia N900</text>
    </revision>
  </page>
  <page>
    <title>File:Jeremiah.jpg</title>
    <id>3389</id>
    <revision>
      <id>26474</id>
      <timestamp>2010-01-13T19:05:23Z</timestamp>
      <contributor>
        <username>jeremiah</username>
        <id>585</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Jeremiah.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:JoshuaReynoldsParty.jpg</title>
    <id>4223</id>
    <revision>
      <id>35416</id>
      <timestamp>2010-06-06T12:10:57Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <comment>test</comment>
      <text xml:space="preserve">test</text>
    </revision>
  </page>
  <page>
    <title>File:Jsm-256.jpg</title>
    <id>819</id>
    <revision>
      <id>7852</id>
      <timestamp>2008-10-22T08:25:02Z</timestamp>
      <contributor>
        <username>jsmanrique</username>
        <id>191</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Jsm-256.jpg]]&quot;</comment>
      <text xml:space="preserve">Manrique Lopez's photo</text>
    </revision>
  </page>
  <page>
    <title>File:Jukey08.jpg</title>
    <id>1169</id>
    <revision>
      <id>6878</id>
      <timestamp>2008-08-31T11:19:10Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <comment>Uwe 'jukey' Kaminski</comment>
      <text xml:space="preserve">Uwe 'jukey' Kaminski</text>
    </revision>
  </page>
  <page>
    <title>File:Karma details.png</title>
    <id>3806</id>
    <revision>
      <id>31814</id>
      <timestamp>2010-04-01T12:55:59Z</timestamp>
      <contributor>
        <username>feri</username>
        <id>2</id>
      </contributor>
      <comment>A sample maemo.org user profile page with karma points.</comment>
      <text xml:space="preserve">A sample maemo.org user profile page with karma points.</text>
    </revision>
  </page>
  <page>
    <title>File:Kathy.jpg</title>
    <id>4485</id>
    <revision>
      <id>39143</id>
      <timestamp>2010-09-26T17:02:32Z</timestamp>
      <contributor>
        <username>revdkathy</username>
        <id>1360</id>
      </contributor>
      <comment>Kathy Smith</comment>
      <text xml:space="preserve">Kathy Smith</text>
    </revision>
  </page>
  <page>
    <title>File:Kernelconcepts-logo.png</title>
    <id>1046</id>
    <revision>
      <id>6009</id>
      <timestamp>2008-07-30T15:46:51Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Knots-0.2.6-homescreen.png</title>
    <id>3066</id>
    <revision>
      <id>23235</id>
      <timestamp>2009-11-24T13:13:54Z</timestamp>
      <contributor>
        <username>mtron</username>
        <id>461</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Knots-0.2.6-movieinfo.png</title>
    <id>3068</id>
    <revision>
      <id>23238</id>
      <timestamp>2009-11-24T13:27:27Z</timestamp>
      <contributor>
        <username>mtron</username>
        <id>461</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Knots-0.2.6-mp3lyrics.png</title>
    <id>3071</id>
    <revision>
      <id>23241</id>
      <timestamp>2009-11-24T13:35:49Z</timestamp>
      <contributor>
        <username>mtron</username>
        <id>461</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Knots-0.2.6-mp3playlist.png</title>
    <id>3070</id>
    <revision>
      <id>23240</id>
      <timestamp>2009-11-24T13:34:32Z</timestamp>
      <contributor>
        <username>mtron</username>
        <id>461</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Knots-0.2.6-searchfile.png</title>
    <id>3069</id>
    <revision>
      <id>23239</id>
      <timestamp>2009-11-24T13:31:59Z</timestamp>
      <contributor>
        <username>mtron</username>
        <id>461</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Knots-0.2.6-tvchannels.png</title>
    <id>3067</id>
    <revision>
      <id>23237</id>
      <timestamp>2009-11-24T13:25:36Z</timestamp>
      <contributor>
        <username>mtron</username>
        <id>461</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Kobayashi home2.png</title>
    <id>2717</id>
    <revision>
      <id>20084</id>
      <timestamp>2009-10-14T13:23:50Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:L10n.pdf</title>
    <id>3144</id>
    <revision>
      <id>24095</id>
      <timestamp>2009-12-05T17:10:41Z</timestamp>
      <contributor>
        <username>mdamt</username>
        <id>157</id>
      </contributor>
      <comment>Minutes of the discussion in Maemo Barcelona Long Week End</comment>
      <text xml:space="preserve">Minutes of the discussion in Maemo Barcelona Long Week End</text>
    </revision>
  </page>
  <page>
    <title>File:LandscapeModeTest.png</title>
    <id>4778</id>
    <revision>
      <id>42410</id>
      <timestamp>2011-03-07T19:03:48Z</timestamp>
      <contributor>
        <username>godofwar424</username>
        <id>4012</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:LandscapeModeTest.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Lanedo.png</title>
    <id>4607</id>
    <revision>
      <id>40707</id>
      <timestamp>2010-12-13T13:12:36Z</timestamp>
      <contributor>
        <username>mjr</username>
        <id>3725</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Large-person-template.png</title>
    <id>1685</id>
    <revision>
      <id>11693</id>
      <timestamp>2009-03-10T12:39:07Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>large person template</comment>
      <text xml:space="preserve">large person template</text>
    </revision>
  </page>
  <page>
    <title>File:Leandro.jpg</title>
    <id>1698</id>
    <revision>
      <id>11861</id>
      <timestamp>2009-03-19T00:23:18Z</timestamp>
      <contributor>
        <username>leandro</username>
        <id>689</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:LibSharingClasses.jpg</title>
    <id>2560</id>
    <revision>
      <id>19342</id>
      <timestamp>2009-10-06T06:47:48Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Libdbus-example.png</title>
    <id>4579</id>
    <revision>
      <id>40331</id>
      <timestamp>2010-11-26T14:27:12Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Libio-multiplex-perl 1.08-1 all.deb.svg</title>
    <id>4087</id>
    <revision>
      <id>34293</id>
      <timestamp>2010-05-12T16:26:05Z</timestamp>
      <contributor>
        <username>speculatrix</username>
        <id>392</id>
      </contributor>
      <comment>rename this, dropping the .svg</comment>
      <text xml:space="preserve">rename this, dropping the .svg</text>
    </revision>
  </page>
  <page>
    <title>File:Libnet-server-perl 0.87-3sarge1 all.deb.svg</title>
    <id>4088</id>
    <revision>
      <id>34294</id>
      <timestamp>2010-05-12T16:26:17Z</timestamp>
      <contributor>
        <username>speculatrix</username>
        <id>392</id>
      </contributor>
      <comment>rename this, dropping the .svg</comment>
      <text xml:space="preserve">rename this, dropping the .svg</text>
    </revision>
  </page>
  <page>
    <title>File:Libosso tutorial small.jpg</title>
    <id>2469</id>
    <revision>
      <id>18494</id>
      <timestamp>2009-09-21T20:58:15Z</timestamp>
      <contributor>
        <username>setanta</username>
        <id>1012</id>
      </contributor>
      <comment>LibOSSO sample application</comment>
      <text xml:space="preserve">LibOSSO sample application</text>
    </revision>
  </page>
  <page>
    <title>File:Liqflow.png</title>
    <id>3951</id>
    <revision>
      <id>32953</id>
      <timestamp>2010-04-18T13:41:03Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:LittleBuddy Normal.png</title>
    <id>1604</id>
    <revision>
      <id>10976</id>
      <timestamp>2009-02-17T11:09:26Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:LittleBuddy over.png</title>
    <id>1605</id>
    <revision>
      <id>10977</id>
      <timestamp>2009-02-17T11:10:04Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:LittleBuddy rollover.png</title>
    <id>1643</id>
    <revision>
      <id>11084</id>
      <timestamp>2009-02-17T21:39:25Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Ljakob rescuemenu Sceenshot.png</title>
    <id>4225</id>
    <revision>
      <id>35423</id>
      <timestamp>2010-06-06T15:49:17Z</timestamp>
      <contributor>
        <username>ljakob</username>
        <id>2919</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Location widget.png</title>
    <id>2378</id>
    <revision>
      <id>17362</id>
      <timestamp>2009-09-03T11:57:46Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Login page.png</title>
    <id>1679</id>
    <revision>
      <id>11436</id>
      <timestamp>2009-03-04T15:27:29Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Logo-midgard.gif</title>
    <id>607</id>
    <revision>
      <id>3167</id>
      <timestamp>2008-06-28T10:07:31Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Logo-samba.png</title>
    <id>1086</id>
    <revision>
      <id>6312</id>
      <timestamp>2008-08-05T16:24:06Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Logo 1000x135.png</title>
    <id>1290</id>
    <revision>
      <id>7973</id>
      <timestamp>2008-10-27T20:26:46Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>The final version of maemo.org logo in png format</comment>
      <text xml:space="preserve">The final version of maemo.org logo in png format</text>
    </revision>
  </page>
  <page>
    <title>File:Logo Khertan.png</title>
    <id>1068</id>
    <revision>
      <id>6146</id>
      <timestamp>2008-08-01T14:01:12Z</timestamp>
      <contributor>
        <username>khertan</username>
        <id>26</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Logo Manual.pdf</title>
    <id>1289</id>
    <revision>
      <id>7972</id>
      <timestamp>2008-10-27T20:23:40Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>we`ve worked on the final logo for maemo.org. and for this, we built a  guide (pdf) which contains all of the logo parameters and the correct rules for their use</comment>
      <text xml:space="preserve">we`ve worked on the final logo for maemo.org. and for this, we built a  guide (pdf) which contains all of the logo parameters and the correct rules for their use</text>
    </revision>
  </page>
  <page>
    <title>File:Logo MeeGo Competition 2011.jpg</title>
    <id>4827</id>
    <revision>
      <id>43089</id>
      <timestamp>2011-04-15T14:20:01Z</timestamp>
      <contributor>
        <username>redex</username>
        <id>2628</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Logo MeeGo Competition 2011.jpg]]&quot;: Reverted to version as of 15:08, 30 March 2011 - a suggestion for a new Logo is not a approval - reverted to the currently official Logo</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Logo maemo.svg</title>
    <id>4464</id>
    <revision>
      <id>39019</id>
      <timestamp>2010-09-22T13:35:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">Final version of the maemo.org logo, uploaded from http://www.marceloeduardo.com/maemo_org/logo_maemo.svg

[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>File:LybnizFremantle.png</title>
    <id>2475</id>
    <revision>
      <id>18569</id>
      <timestamp>2009-09-22T16:57:28Z</timestamp>
      <contributor>
        <username>hugo_pl</username>
        <id>1200</id>
      </contributor>
      <comment>Lybniz on Fremantle</comment>
      <text xml:space="preserve">Lybniz on Fremantle</text>
    </revision>
  </page>
  <page>
    <title>File:M4w5Qh.png</title>
    <id>2732</id>
    <revision>
      <id>20119</id>
      <timestamp>2009-10-14T13:56:18Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:MOVIAL-logotype-small.jpg</title>
    <id>1045</id>
    <revision>
      <id>6008</id>
      <timestamp>2008-07-30T15:39:02Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:MaeFatAboutYou.png</title>
    <id>5061</id>
    <revision>
      <id>45965</id>
      <timestamp>2011-12-11T03:50:49Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:MaeFatDataEntry.png</title>
    <id>4767</id>
    <revision>
      <id>42818</id>
      <timestamp>2011-03-26T05:04:35Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:MaeFatDataEntry.png]]&quot;</comment>
      <text xml:space="preserve">[[MaeFat]] screenshot

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>File:MaeFatEditChooseMonth.png</title>
    <id>4769</id>
    <revision>
      <id>43508</id>
      <timestamp>2011-05-17T01:11:02Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:MaeFatEditChooseMonth.png]]&quot;</comment>
      <text xml:space="preserve">[[MaeFat]] screenshot

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>File:MaeFatEditList.png</title>
    <id>4768</id>
    <revision>
      <id>43564</id>
      <timestamp>2011-05-20T03:21:19Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:MaeFatEditList.png]]&quot;: Minor cosmetic changes.</comment>
      <text xml:space="preserve">[[MaeFat]] screenshot

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>File:MaeFatFitSettings.png</title>
    <id>5063</id>
    <revision>
      <id>45967</id>
      <timestamp>2011-12-11T03:52:36Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:MaeFatFormulae.jpg</title>
    <id>4806</id>
    <revision>
      <id>42616</id>
      <timestamp>2011-03-11T12:33:54Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:MaeFatFormulae.jpg]]&quot;: Weight trend formulae used by maeFat</comment>
      <text xml:space="preserve">Shows the formulae used for calculating weight trends</text>
    </revision>
  </page>
  <page>
    <title>File:MaeFatImportExport.png</title>
    <id>4918</id>
    <revision>
      <id>44236</id>
      <timestamp>2011-06-29T01:28:40Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>maeFat Import/Export page</comment>
      <text xml:space="preserve">maeFat Import/Export page</text>
    </revision>
  </page>
  <page>
    <title>File:MaeFatInitialScreen.png</title>
    <id>4764</id>
    <revision>
      <id>45961</id>
      <timestamp>2011-12-11T03:38:24Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:MaeFatInitialScreen.png]]&quot;</comment>
      <text xml:space="preserve">[[MaeFat]] screenshot

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>File:MaeFatMenu.png</title>
    <id>4770</id>
    <revision>
      <id>45963</id>
      <timestamp>2011-12-11T03:41:08Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:MaeFatMenu.png]]&quot;</comment>
      <text xml:space="preserve">[[MaeFat]] screenshot

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>File:MaeFatPlot.png</title>
    <id>4771</id>
    <revision>
      <id>43713</id>
      <timestamp>2011-06-01T04:26:49Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:MaeFatPlot.png]]&quot;</comment>
      <text xml:space="preserve">[[MaeFat]] screenshot

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>File:MaeFatPlotGoal.png</title>
    <id>4825</id>
    <revision>
      <id>44640</id>
      <timestamp>2011-07-24T10:36:12Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:MaeFatPlotGoal.png]]&quot;: Changed color scheme, added more info</comment>
      <text xml:space="preserve">maeFat default plot with weight goal shown.</text>
    </revision>
  </page>
  <page>
    <title>File:MaeFatPlotSettings.png</title>
    <id>5062</id>
    <revision>
      <id>46602</id>
      <timestamp>2012-02-13T00:30:12Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:MaeFatPlotSettings.png]]&quot;: Added new features to specify weightloss interval</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:MaeFatSettings.png</title>
    <id>4765</id>
    <revision>
      <id>44639</id>
      <timestamp>2011-07-24T10:34:46Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:MaeFatSettings.png]]&quot;: Re-aranged page layout, and added &quot;Fit from date&quot;</comment>
      <text xml:space="preserve">[[MaeFat]] screenshot

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>File:MaeFatTrends.png</title>
    <id>4766</id>
    <revision>
      <id>45969</id>
      <timestamp>2011-12-11T04:34:35Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:MaeFatTrends.png]]&quot;</comment>
      <text xml:space="preserve">[[MaeFat]] screenshot

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemap.jpg</title>
    <id>3063</id>
    <revision>
      <id>23200</id>
      <timestamp>2009-11-23T21:42:34Z</timestamp>
      <contributor>
        <username>mikecy</username>
        <id>1355</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo-org-joint-mockup.png</title>
    <id>1252</id>
    <revision>
      <id>7609</id>
      <timestamp>2008-10-02T07:00:50Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Homepage mockup bringing together the best parts from several proposals + good points in the maemo-community discussion.</comment>
      <text xml:space="preserve">Homepage mockup bringing together the best parts from several proposals + good points in the maemo-community discussion.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo-org logo contest charbucks-1-.png</title>
    <id>708</id>
    <revision>
      <id>4056</id>
      <timestamp>2008-07-04T20:53:17Z</timestamp>
      <contributor>
        <username>charbucks</username>
        <id>180</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:charbucks]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:charbucks]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo-org logo contest wazd.png</title>
    <id>468</id>
    <revision>
      <id>2472</id>
      <timestamp>2008-06-23T09:57:40Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo-org logo contest wazd.png]]&quot;: maemo.org logo contest entry from [[User:wazd]]</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo-org logo contest wazd 2.png</title>
    <id>499</id>
    <revision>
      <id>2592</id>
      <timestamp>2008-06-23T20:37:00Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <comment>maemo.org logo contest entry #2 from [[User:wazd]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry #2 from [[User:wazd]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo-org logo contest wazd 3.png</title>
    <id>500</id>
    <revision>
      <id>2594</id>
      <timestamp>2008-06-23T20:47:06Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <comment>maemo.org logo contest entry #3 from [[User:wazd]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry #3 from [[User:wazd]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo-org logo contest wazd 4.png</title>
    <id>795</id>
    <revision>
      <id>4547</id>
      <timestamp>2008-07-16T10:17:46Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo-org logo contest wazd 5.png</title>
    <id>869</id>
    <revision>
      <id>5122</id>
      <timestamp>2008-07-22T12:40:15Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo-sliders app menu.png</title>
    <id>2316</id>
    <revision>
      <id>16870</id>
      <timestamp>2009-08-25T15:09:51Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo-sliders scores window.png</title>
    <id>2317</id>
    <revision>
      <id>16871</id>
      <timestamp>2009-08-25T15:10:08Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo-sliders table.png</title>
    <id>2318</id>
    <revision>
      <id>16872</id>
      <timestamp>2009-08-25T15:10:31Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo-stock-000.jpg</title>
    <id>2881</id>
    <revision>
      <id>21415</id>
      <timestamp>2009-11-01T10:51:40Z</timestamp>
      <contributor>
        <username>josefdk</username>
        <id>1273</id>
      </contributor>
      <comment>maemo stock image</comment>
      <text xml:space="preserve">maemo stock image</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo-term icon v002b a001 48p.png</title>
    <id>3698</id>
    <revision>
      <id>30510</id>
      <timestamp>2010-03-04T15:48:16Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Final Maemo CLI icon with embedded blue application icon.</comment>
      <text xml:space="preserve">Final Maemo CLI icon with embedded blue application icon.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.jpg</title>
    <id>3788</id>
    <revision>
      <id>31606</id>
      <timestamp>2010-03-26T08:43:32Z</timestamp>
      <contributor>
        <username>feri</username>
        <id>2</id>
      </contributor>
      <comment>maemo.org logo</comment>
      <text xml:space="preserve">maemo.org logo</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org-community wireframe.png</title>
    <id>1387</id>
    <revision>
      <id>9376</id>
      <timestamp>2008-12-19T18:28:37Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Wireframe layout for new maemo.org Community page.</comment>
      <text xml:space="preserve">Wireframe layout for new maemo.org Community page.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org-gen-fluid wireframe.png</title>
    <id>1394</id>
    <revision>
      <id>9422</id>
      <timestamp>2008-12-23T14:12:37Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Wireframe idea for generic, fluid maemo.org page.</comment>
      <text xml:space="preserve">Wireframe idea for generic, fluid maemo.org page.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org-support wireframe.png</title>
    <id>1435</id>
    <revision>
      <id>9916</id>
      <timestamp>2009-01-21T02:04:35Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Support Page wireframe idea</comment>
      <text xml:space="preserve">Support Page wireframe idea</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org community layout idea 001.png</title>
    <id>1089</id>
    <revision>
      <id>6325</id>
      <timestamp>2008-08-05T19:59:41Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>New layout proposal for Community page.</comment>
      <text xml:space="preserve">New layout proposal for Community page.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest -rambutan-- -01--.png</title>
    <id>946</id>
    <revision>
      <id>5581</id>
      <timestamp>2008-07-26T10:51:07Z</timestamp>
      <contributor>
        <username>rambutan</username>
        <id>239</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:&lt;rambutan&gt;]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:&lt;rambutan&gt;]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest Cas-1-.png</title>
    <id>412</id>
    <revision>
      <id>2262</id>
      <timestamp>2008-06-21T17:55:51Z</timestamp>
      <contributor>
        <username>cas</username>
        <id>111</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:&lt;Cas&gt;]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:&lt;Cas&gt;]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest Munk 051.png</title>
    <id>941</id>
    <revision>
      <id>5572</id>
      <timestamp>2008-07-26T07:13:11Z</timestamp>
      <contributor>
        <username>munk</username>
        <id>237</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:Munk]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:Munk]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest Munk 052.png</title>
    <id>942</id>
    <revision>
      <id>5574</id>
      <timestamp>2008-07-26T07:16:27Z</timestamp>
      <contributor>
        <username>munk</username>
        <id>237</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:Munk]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:Munk]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest Munk 060.png</title>
    <id>1028</id>
    <revision>
      <id>5778</id>
      <timestamp>2008-07-27T18:59:57Z</timestamp>
      <contributor>
        <username>munk</username>
        <id>237</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:Munk]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:Munk]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest Munk 061.png</title>
    <id>937</id>
    <revision>
      <id>5561</id>
      <timestamp>2008-07-26T03:17:45Z</timestamp>
      <contributor>
        <username>munk</username>
        <id>237</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:Munk]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:Munk]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest Munk 062.png</title>
    <id>938</id>
    <revision>
      <id>5562</id>
      <timestamp>2008-07-26T03:24:11Z</timestamp>
      <contributor>
        <username>munk</username>
        <id>237</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:Munk]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:Munk]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest Munk 063.png</title>
    <id>939</id>
    <revision>
      <id>5564</id>
      <timestamp>2008-07-26T03:27:26Z</timestamp>
      <contributor>
        <username>munk</username>
        <id>237</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:Munk]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:Munk]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest Munk 064.png</title>
    <id>940</id>
    <revision>
      <id>5565</id>
      <timestamp>2008-07-26T03:27:56Z</timestamp>
      <contributor>
        <username>munk</username>
        <id>237</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:Munk]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:Munk]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest Munk 073.png</title>
    <id>976</id>
    <revision>
      <id>5656</id>
      <timestamp>2008-07-26T23:24:04Z</timestamp>
      <contributor>
        <username>munk</username>
        <id>237</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:Munk]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:Munk]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest Munk 074.png</title>
    <id>985</id>
    <revision>
      <id>5673</id>
      <timestamp>2008-07-27T00:40:03Z</timestamp>
      <contributor>
        <username>munk</username>
        <id>237</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest Munk 074.png]]&quot;: maemo.org logo contest entry from [[User:Munk]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:Munk]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest Munk 075.png</title>
    <id>1012</id>
    <revision>
      <id>5735</id>
      <timestamp>2008-07-27T05:39:07Z</timestamp>
      <contributor>
        <username>munk</username>
        <id>237</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest Munk 075.png]]&quot;: maemo.org logo contest entry from [[User:Munk]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:Munk]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest RayBuetens1.png</title>
    <id>894</id>
    <revision>
      <id>5270</id>
      <timestamp>2008-07-24T05:00:48Z</timestamp>
      <contributor>
        <username>samlowry</username>
        <id>224</id>
      </contributor>
      <comment>Logo idea number 1.</comment>
      <text xml:space="preserve">Logo idea number 1.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest Thiercito.png</title>
    <id>299</id>
    <revision>
      <id>1914</id>
      <timestamp>2008-06-19T05:33:17Z</timestamp>
      <contributor>
        <username>thiercito</username>
        <id>85</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest Thiercito.png]]&quot;: maemo.org logo contest entry from [[User:thiercito]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:&lt;thiercito&gt;]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest Thiercito2.png</title>
    <id>300</id>
    <revision>
      <id>1911</id>
      <timestamp>2008-06-19T05:09:04Z</timestamp>
      <contributor>
        <username>thiercito</username>
        <id>85</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:thiercito]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:thiercito]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest Thiercito3.png</title>
    <id>411</id>
    <revision>
      <id>2253</id>
      <timestamp>2008-06-21T16:26:30Z</timestamp>
      <contributor>
        <username>thiercito</username>
        <id>85</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:&lt;thiercito&gt;]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:&lt;thiercito&gt;]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest Thiercito4.jpg</title>
    <id>483</id>
    <revision>
      <id>2528</id>
      <timestamp>2008-06-23T15:29:28Z</timestamp>
      <contributor>
        <username>thiercito</username>
        <id>85</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:thiercito]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:thiercito]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest Thiercito7.jpg</title>
    <id>928</id>
    <revision>
      <id>5504</id>
      <timestamp>2008-07-25T15:24:56Z</timestamp>
      <contributor>
        <username>thiercito</username>
        <id>85</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:&lt;thiercito]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:&lt;thiercito]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest Thiercito8.jpg</title>
    <id>929</id>
    <revision>
      <id>5505</id>
      <timestamp>2008-07-25T15:25:27Z</timestamp>
      <contributor>
        <username>thiercito</username>
        <id>85</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:&lt;thiercito]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:&lt;thiercito]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest Thiercito9.jpg</title>
    <id>1058</id>
    <revision>
      <id>6042</id>
      <timestamp>2008-07-31T03:54:17Z</timestamp>
      <contributor>
        <username>thiercito</username>
        <id>85</id>
      </contributor>
      <comment>Maemo Logo Rounded</comment>
      <text xml:space="preserve">Maemo Logo Rounded</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest aakash121.png</title>
    <id>528</id>
    <revision>
      <id>2700</id>
      <timestamp>2008-06-25T01:49:58Z</timestamp>
      <contributor>
        <username>aakash121</username>
        <id>132</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:aakash121]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:aakash121]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest affonso 1.png</title>
    <id>740</id>
    <revision>
      <id>4204</id>
      <timestamp>2008-07-07T12:53:34Z</timestamp>
      <contributor>
        <username>affonso</username>
        <id>188</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:affonso]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:affonso]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest affonso 1 accessories.png</title>
    <id>741</id>
    <revision>
      <id>4205</id>
      <timestamp>2008-07-07T12:54:43Z</timestamp>
      <contributor>
        <username>affonso</username>
        <id>188</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:affonso]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:affonso]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest affonso 1 tshirts.png</title>
    <id>742</id>
    <revision>
      <id>4206</id>
      <timestamp>2008-07-07T12:55:20Z</timestamp>
      <contributor>
        <username>affonso</username>
        <id>188</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:affonso]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:affonso]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest affonso 1 using.png</title>
    <id>743</id>
    <revision>
      <id>4207</id>
      <timestamp>2008-07-07T12:55:55Z</timestamp>
      <contributor>
        <username>affonso</username>
        <id>188</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:affonso]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:affonso]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest affonso 2.png</title>
    <id>744</id>
    <revision>
      <id>4208</id>
      <timestamp>2008-07-07T12:56:42Z</timestamp>
      <contributor>
        <username>affonso</username>
        <id>188</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:affonso]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:affonso]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest affonso 2 accessories.png</title>
    <id>745</id>
    <revision>
      <id>4218</id>
      <timestamp>2008-07-07T13:14:41Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest affonso 2 accessories.png]]&quot;: Reverted to version as of 12:58, 7 July 2008</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:affonso]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest affonso 2 tshirts.png</title>
    <id>746</id>
    <revision>
      <id>4210</id>
      <timestamp>2008-07-07T12:59:25Z</timestamp>
      <contributor>
        <username>affonso</username>
        <id>188</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:affonso]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:affonso]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest affonso 2 using.png</title>
    <id>747</id>
    <revision>
      <id>4211</id>
      <timestamp>2008-07-07T13:00:11Z</timestamp>
      <contributor>
        <username>affonso</username>
        <id>188</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:affonso]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:affonso]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest alibouhali- 1-.png</title>
    <id>1027</id>
    <revision>
      <id>5777</id>
      <timestamp>2008-07-27T18:59:33Z</timestamp>
      <contributor>
        <username>alibouhali</username>
        <id>248</id>
      </contributor>
      <comment>logo contest entry from [[User:alibouhali]]</comment>
      <text xml:space="preserve">logo contest entry from [[User:alibouhali]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest amir- 1-.png</title>
    <id>956</id>
    <revision>
      <id>5606</id>
      <timestamp>2008-07-26T12:51:15Z</timestamp>
      <contributor>
        <username>amir</username>
        <id>213</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:&lt;amir&gt;]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:&lt;amir&gt;]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest amir- 2-.png</title>
    <id>957</id>
    <revision>
      <id>5607</id>
      <timestamp>2008-07-26T13:00:27Z</timestamp>
      <contributor>
        <username>amir</username>
        <id>213</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:amir]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:amir]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest amir- 3-.png</title>
    <id>1008</id>
    <revision>
      <id>5720</id>
      <timestamp>2008-07-27T04:31:52Z</timestamp>
      <contributor>
        <username>amir</username>
        <id>213</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:amir]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:amir]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest amirullah- 1-.png</title>
    <id>833</id>
    <revision>
      <id>5012</id>
      <timestamp>2008-07-21T03:01:05Z</timestamp>
      <contributor>
        <username>amirullah</username>
        <id>211</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest amirullah- 1-.png]]&quot;: maemo.org logo contest entry from [[User:amirullah]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:amirullah]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest amirullah- 2-.png</title>
    <id>834</id>
    <revision>
      <id>4936</id>
      <timestamp>2008-07-20T11:31:14Z</timestamp>
      <contributor>
        <username>amirullah</username>
        <id>211</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:amirullah]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:amirullah]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest amirullah- 3-.png</title>
    <id>832</id>
    <revision>
      <id>4949</id>
      <timestamp>2008-07-20T13:16:31Z</timestamp>
      <contributor>
        <username>amirullah</username>
        <id>211</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest amirullah- 3-.png]]&quot;: maemo.org logo contest entry from [[User:amirullah]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:amirullah]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest amirullah- 4-.png</title>
    <id>835</id>
    <revision>
      <id>4941</id>
      <timestamp>2008-07-20T11:59:54Z</timestamp>
      <contributor>
        <username>amirullah</username>
        <id>211</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:amirullah]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:amirullah]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest amirullah- 5-.png</title>
    <id>843</id>
    <revision>
      <id>5013</id>
      <timestamp>2008-07-21T03:05:02Z</timestamp>
      <contributor>
        <username>amirullah</username>
        <id>211</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:amirullah]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:amirullah]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest amirullah- 6-.png</title>
    <id>844</id>
    <revision>
      <id>5016</id>
      <timestamp>2008-07-21T03:25:30Z</timestamp>
      <contributor>
        <username>amirullah</username>
        <id>211</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest amirullah- 6-.png]]&quot;: maemo.org logo contest entry from [[User:amirullah]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:amirullah]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest angun33 1.png</title>
    <id>460</id>
    <revision>
      <id>2444</id>
      <timestamp>2008-06-23T06:20:36Z</timestamp>
      <contributor>
        <username>angun33</username>
        <id>118</id>
      </contributor>
      <comment>maemo.org logo contest entry from [User:angun33]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [User:angun33]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest angun33 2.png</title>
    <id>473</id>
    <revision>
      <id>2490</id>
      <timestamp>2008-06-23T12:21:24Z</timestamp>
      <contributor>
        <username>angun33</username>
        <id>118</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:angun33]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:angun33]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest angun33 3.png</title>
    <id>474</id>
    <revision>
      <id>2491</id>
      <timestamp>2008-06-23T12:22:24Z</timestamp>
      <contributor>
        <username>angun33</username>
        <id>118</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:angun33]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:angun33]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest angun33 4.png</title>
    <id>475</id>
    <revision>
      <id>2492</id>
      <timestamp>2008-06-23T12:24:43Z</timestamp>
      <contributor>
        <username>angun33</username>
        <id>118</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:angun33]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:angun33]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest angun33 5.png</title>
    <id>515</id>
    <revision>
      <id>2636</id>
      <timestamp>2008-06-24T10:58:52Z</timestamp>
      <contributor>
        <username>angun33</username>
        <id>118</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:angun33]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:angun33]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest angun33 6.png</title>
    <id>516</id>
    <revision>
      <id>2637</id>
      <timestamp>2008-06-24T10:59:26Z</timestamp>
      <contributor>
        <username>angun33</username>
        <id>118</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:angun33]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:angun33]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest asgari 1.png</title>
    <id>301</id>
    <revision>
      <id>1916</id>
      <timestamp>2008-06-19T06:08:51Z</timestamp>
      <contributor>
        <username>asgari</username>
        <id>88</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:asgari]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:asgari]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest asgari 2.png</title>
    <id>302</id>
    <revision>
      <id>1917</id>
      <timestamp>2008-06-19T06:10:46Z</timestamp>
      <contributor>
        <username>asgari</username>
        <id>88</id>
      </contributor>
      <comment>maemo.org logo contest entry from User : asgari</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User : asgari</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest asgari 3.png</title>
    <id>303</id>
    <revision>
      <id>1918</id>
      <timestamp>2008-06-19T06:12:02Z</timestamp>
      <contributor>
        <username>asgari</username>
        <id>88</id>
      </contributor>
      <comment>maemo.org logo contest entry from User: asgari</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User: asgari</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest attila 1.png</title>
    <id>270</id>
    <revision>
      <id>1833</id>
      <timestamp>2008-06-17T17:33:11Z</timestamp>
      <contributor>
        <username>attila</username>
        <id>64</id>
      </contributor>
      <comment>Maemo Butterfly (with light shadow)</comment>
      <text xml:space="preserve">Maemo Butterfly (with light shadow)</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest attila 2.png</title>
    <id>271</id>
    <revision>
      <id>1834</id>
      <timestamp>2008-06-17T17:34:06Z</timestamp>
      <contributor>
        <username>attila</username>
        <id>64</id>
      </contributor>
      <comment>Maemo Butterfly (without shadow)</comment>
      <text xml:space="preserve">Maemo Butterfly (without shadow)</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest attila 3.png</title>
    <id>291</id>
    <revision>
      <id>1883</id>
      <timestamp>2008-06-18T21:27:11Z</timestamp>
      <contributor>
        <username>attila</username>
        <id>64</id>
      </contributor>
      <comment>Maemo Butterfly Inverse with Shadow</comment>
      <text xml:space="preserve">Maemo Butterfly Inverse with Shadow</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest attila 4.png</title>
    <id>292</id>
    <revision>
      <id>1885</id>
      <timestamp>2008-06-18T21:37:02Z</timestamp>
      <contributor>
        <username>attila</username>
        <id>64</id>
      </contributor>
      <comment>Maemo Butterfly Inverse (no shadow)</comment>
      <text xml:space="preserve">Maemo Butterfly Inverse (no shadow)</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest baksiidaa 1.png</title>
    <id>351</id>
    <revision>
      <id>2060</id>
      <timestamp>2008-06-19T21:52:20Z</timestamp>
      <contributor>
        <username>baksiidaa</username>
        <id>99</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:baksiidaa]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:baksiidaa]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest baksiidaa 2.png</title>
    <id>353</id>
    <revision>
      <id>2064</id>
      <timestamp>2008-06-20T01:21:43Z</timestamp>
      <contributor>
        <username>baksiidaa</username>
        <id>99</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:baksiidaa]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:baksiidaa]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest baksiidaa 3.png</title>
    <id>354</id>
    <revision>
      <id>2065</id>
      <timestamp>2008-06-20T01:22:25Z</timestamp>
      <contributor>
        <username>baksiidaa</username>
        <id>99</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:baksiidaa]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:baksiidaa]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest blaxnux1-hand ok sign.png</title>
    <id>502</id>
    <revision>
      <id>2604</id>
      <timestamp>2008-06-23T23:09:51Z</timestamp>
      <contributor>
        <username>blaxnux</username>
        <id>124</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:blaxnux]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:blaxnux]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest blaxnux2-bricky.png</title>
    <id>503</id>
    <revision>
      <id>2605</id>
      <timestamp>2008-06-23T23:12:26Z</timestamp>
      <contributor>
        <username>blaxnux</username>
        <id>124</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:blaxnux]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:blaxnux]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest brnk 1.png</title>
    <id>857</id>
    <revision>
      <id>5092</id>
      <timestamp>2008-07-21T20:47:35Z</timestamp>
      <contributor>
        <username>brnk</username>
        <id>144</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest brnk 1.png]]&quot;: maemo.org logo contest entry from [[User:brnk]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:brnk]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest brnk 2.png</title>
    <id>858</id>
    <revision>
      <id>5093</id>
      <timestamp>2008-07-21T20:49:21Z</timestamp>
      <contributor>
        <username>brnk</username>
        <id>144</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest brnk 2.png]]&quot;: maemo.org logo contest entry from [[User:brnk]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:brnk]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest brnk 3.png</title>
    <id>859</id>
    <revision>
      <id>5088</id>
      <timestamp>2008-07-21T20:24:19Z</timestamp>
      <contributor>
        <username>brnk</username>
        <id>144</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:brnk]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:brnk]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest brnk 4.png</title>
    <id>860</id>
    <revision>
      <id>5089</id>
      <timestamp>2008-07-21T20:24:34Z</timestamp>
      <contributor>
        <username>brnk</username>
        <id>144</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:brnk]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:brnk]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest bundyo 01.png</title>
    <id>977</id>
    <revision>
      <id>5659</id>
      <timestamp>2008-07-26T23:28:41Z</timestamp>
      <contributor>
        <username>bundyo</username>
        <id>21</id>
      </contributor>
      <comment>This is first in an evolving series of designs, centered around a hand ladder, symbolizing collaboration. This one is depicting real hands. Not very good and kind of creepy. :)</comment>
      <text xml:space="preserve">This is first in an evolving series of designs, centered around a hand ladder, symbolizing collaboration. This one is depicting real hands. Not very good and kind of creepy. :)</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest bundyo 02.png</title>
    <id>978</id>
    <revision>
      <id>5660</id>
      <timestamp>2008-07-26T23:30:17Z</timestamp>
      <contributor>
        <username>bundyo</username>
        <id>21</id>
      </contributor>
      <comment>The second design is abstracting the hands and adding some color.</comment>
      <text xml:space="preserve">The second design is abstracting the hands and adding some color.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest bundyo 03.png</title>
    <id>979</id>
    <revision>
      <id>5661</id>
      <timestamp>2008-07-26T23:31:16Z</timestamp>
      <contributor>
        <username>bundyo</username>
        <id>21</id>
      </contributor>
      <comment>Another variant.</comment>
      <text xml:space="preserve">Another variant.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest bundyo 04.png</title>
    <id>980</id>
    <revision>
      <id>5662</id>
      <timestamp>2008-07-26T23:32:02Z</timestamp>
      <contributor>
        <username>bundyo</username>
        <id>21</id>
      </contributor>
      <comment>And another variant.</comment>
      <text xml:space="preserve">And another variant.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest bundyo 05.png</title>
    <id>981</id>
    <revision>
      <id>5663</id>
      <timestamp>2008-07-26T23:34:36Z</timestamp>
      <contributor>
        <username>bundyo</username>
        <id>21</id>
      </contributor>
      <comment>The next two designs depict separate people/idea, which combined can make whole structure. The transparent box/es depict openness.</comment>
      <text xml:space="preserve">The next two designs depict separate people/idea, which combined can make whole structure. The transparent box/es depict openness.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest bundyo 06.png</title>
    <id>982</id>
    <revision>
      <id>5664</id>
      <timestamp>2008-07-26T23:35:02Z</timestamp>
      <contributor>
        <username>bundyo</username>
        <id>21</id>
      </contributor>
      <comment>Second variant.</comment>
      <text xml:space="preserve">Second variant.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest bundyo 07.png</title>
    <id>983</id>
    <revision>
      <id>5665</id>
      <timestamp>2008-07-26T23:36:43Z</timestamp>
      <contributor>
        <username>bundyo</username>
        <id>21</id>
      </contributor>
      <comment>This one depicts that we all are gears in a bigger machine. :)</comment>
      <text xml:space="preserve">This one depicts that we all are gears in a bigger machine. :)</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest bundyo 08.png</title>
    <id>984</id>
    <revision>
      <id>5666</id>
      <timestamp>2008-07-26T23:38:37Z</timestamp>
      <contributor>
        <username>bundyo</username>
        <id>21</id>
      </contributor>
      <comment>This one depicts that we all are working together to reach common goal.

All designs are vector and available as Inkscape SVG format.</comment>
      <text xml:space="preserve">This one depicts that we all are working together to reach common goal.

All designs are vector and available as Inkscape SVG format.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest calderov 01.png</title>
    <id>374</id>
    <revision>
      <id>2109</id>
      <timestamp>2008-06-20T06:11:12Z</timestamp>
      <contributor>
        <username>calderov</username>
        <id>104</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest calderov 01.png]]&quot;: maemo.org logo contest entry from calderov</comment>
      <text xml:space="preserve">^^</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest chall3ng3r 1.png</title>
    <id>1014</id>
    <revision>
      <id>5747</id>
      <timestamp>2008-07-27T16:38:00Z</timestamp>
      <contributor>
        <username>chall3ng3r</username>
        <id>242</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest chall3ng3r 1.png]]&quot;: maemo.org logo contest entry from [[User:chall3ng3r]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:chall3ng3r]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest chall3ng3r 10.png</title>
    <id>1023</id>
    <revision>
      <id>5757</id>
      <timestamp>2008-07-27T16:45:08Z</timestamp>
      <contributor>
        <username>chall3ng3r</username>
        <id>242</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:chall3ng3r]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:chall3ng3r]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest chall3ng3r 11.png</title>
    <id>1024</id>
    <revision>
      <id>5758</id>
      <timestamp>2008-07-27T16:45:23Z</timestamp>
      <contributor>
        <username>chall3ng3r</username>
        <id>242</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:chall3ng3r]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:chall3ng3r]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest chall3ng3r 2.png</title>
    <id>1015</id>
    <revision>
      <id>5748</id>
      <timestamp>2008-07-27T16:39:10Z</timestamp>
      <contributor>
        <username>chall3ng3r</username>
        <id>242</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest chall3ng3r 2.png]]&quot;: maemo.org logo contest entry from [[User:chall3ng3r]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:chall3ng3r]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest chall3ng3r 3.png</title>
    <id>1016</id>
    <revision>
      <id>5749</id>
      <timestamp>2008-07-27T16:39:25Z</timestamp>
      <contributor>
        <username>chall3ng3r</username>
        <id>242</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest chall3ng3r 3.png]]&quot;: maemo.org logo contest entry from [[User:chall3ng3r]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:chall3ng3r]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest chall3ng3r 4.png</title>
    <id>1017</id>
    <revision>
      <id>5750</id>
      <timestamp>2008-07-27T16:39:45Z</timestamp>
      <contributor>
        <username>chall3ng3r</username>
        <id>242</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest chall3ng3r 4.png]]&quot;: maemo.org logo contest entry from [[User:chall3ng3r]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:chall3ng3r]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest chall3ng3r 5.png</title>
    <id>1018</id>
    <revision>
      <id>5751</id>
      <timestamp>2008-07-27T16:40:16Z</timestamp>
      <contributor>
        <username>chall3ng3r</username>
        <id>242</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:chall3ng3r]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:chall3ng3r]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest chall3ng3r 6.png</title>
    <id>1019</id>
    <revision>
      <id>5752</id>
      <timestamp>2008-07-27T16:41:22Z</timestamp>
      <contributor>
        <username>chall3ng3r</username>
        <id>242</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:chall3ng3r]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:chall3ng3r]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest chall3ng3r 7.png</title>
    <id>1020</id>
    <revision>
      <id>5753</id>
      <timestamp>2008-07-27T16:41:39Z</timestamp>
      <contributor>
        <username>chall3ng3r</username>
        <id>242</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:chall3ng3r]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:chall3ng3r]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest chall3ng3r 8.png</title>
    <id>1021</id>
    <revision>
      <id>5754</id>
      <timestamp>2008-07-27T16:41:56Z</timestamp>
      <contributor>
        <username>chall3ng3r</username>
        <id>242</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:chall3ng3r]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:chall3ng3r]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest chall3ng3r 9.png</title>
    <id>1022</id>
    <revision>
      <id>5756</id>
      <timestamp>2008-07-27T16:44:42Z</timestamp>
      <contributor>
        <username>chall3ng3r</username>
        <id>242</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:chall3ng3r]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:chall3ng3r]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest cjb 1.png</title>
    <id>916</id>
    <revision>
      <id>5355</id>
      <timestamp>2008-07-24T19:53:30Z</timestamp>
      <contributor>
        <username>cjb</username>
        <id>230</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[cjb]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[cjb]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest convulted.png</title>
    <id>392</id>
    <revision>
      <id>2171</id>
      <timestamp>2008-06-20T22:28:03Z</timestamp>
      <contributor>
        <username>convulted</username>
        <id>107</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:convulted]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:convulted]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest crawfordm 1.png</title>
    <id>290</id>
    <revision>
      <id>1882</id>
      <timestamp>2008-06-18T21:23:10Z</timestamp>
      <contributor>
        <username>crawfordm</username>
        <id>76</id>
      </contributor>
      <comment>maemo.org logo contest entry from User:crawfordm</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User:crawfordm</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest deadknight88 1-transmission.png</title>
    <id>280</id>
    <revision>
      <id>1870</id>
      <timestamp>2008-06-18T20:24:51Z</timestamp>
      <contributor>
        <username>deadknight88</username>
        <id>67</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:deadknight88]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:deadknight88]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest deadknight88 102.png</title>
    <id>526</id>
    <revision>
      <id>2685</id>
      <timestamp>2008-06-24T23:28:43Z</timestamp>
      <contributor>
        <username>deadknight88</username>
        <id>67</id>
      </contributor>
      <comment>maemo.org logo contest entry from deadknight88</comment>
      <text xml:space="preserve">maemo.org logo contest entry from deadknight88</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest deadknight88 103.png</title>
    <id>527</id>
    <revision>
      <id>2686</id>
      <timestamp>2008-06-24T23:29:26Z</timestamp>
      <contributor>
        <username>deadknight88</username>
        <id>67</id>
      </contributor>
      <comment>maemo.org logo contest entry from deadknight88</comment>
      <text xml:space="preserve">maemo.org logo contest entry from deadknight88</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest deadknight88 130.png</title>
    <id>968</id>
    <revision>
      <id>5639</id>
      <timestamp>2008-07-26T21:39:57Z</timestamp>
      <contributor>
        <username>deadknight88</username>
        <id>67</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest deadknight88 140.png</title>
    <id>972</id>
    <revision>
      <id>5645</id>
      <timestamp>2008-07-26T22:17:05Z</timestamp>
      <contributor>
        <username>deadknight88</username>
        <id>67</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest deadknight88 2-key.png</title>
    <id>281</id>
    <revision>
      <id>1871</id>
      <timestamp>2008-06-18T20:26:07Z</timestamp>
      <contributor>
        <username>deadknight88</username>
        <id>67</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:deadknight88]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:deadknight88]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest deadknight88 3-key2.png</title>
    <id>282</id>
    <revision>
      <id>1872</id>
      <timestamp>2008-06-18T20:31:38Z</timestamp>
      <contributor>
        <username>deadknight88</username>
        <id>67</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:deadknight88]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:deadknight88]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest deadknight88 4 - dashed.png</title>
    <id>283</id>
    <revision>
      <id>1873</id>
      <timestamp>2008-06-18T20:33:30Z</timestamp>
      <contributor>
        <username>deadknight88</username>
        <id>67</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:deadknight88]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:deadknight88]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest deadknight88 5-dashed2.png</title>
    <id>284</id>
    <revision>
      <id>1874</id>
      <timestamp>2008-06-18T20:34:25Z</timestamp>
      <contributor>
        <username>deadknight88</username>
        <id>67</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:deadknight88]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:deadknight88]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest deadknight88 6-digital.png</title>
    <id>285</id>
    <revision>
      <id>1875</id>
      <timestamp>2008-06-18T20:35:40Z</timestamp>
      <contributor>
        <username>deadknight88</username>
        <id>67</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[deadknight88]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[deadknight88]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest deadknight88 66.png</title>
    <id>396</id>
    <revision>
      <id>2205</id>
      <timestamp>2008-06-21T10:58:03Z</timestamp>
      <contributor>
        <username>deadknight88</username>
        <id>67</id>
      </contributor>
      <comment>maemo.org logo contest entry from deadknight88</comment>
      <text xml:space="preserve">maemo.org logo contest entry from deadknight88</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest deadknight88 67.png</title>
    <id>397</id>
    <revision>
      <id>2206</id>
      <timestamp>2008-06-21T11:00:19Z</timestamp>
      <contributor>
        <username>deadknight88</username>
        <id>67</id>
      </contributor>
      <comment>maemo.org logo contest entry from deadknight88</comment>
      <text xml:space="preserve">maemo.org logo contest entry from deadknight88</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest deadknight88 68.png</title>
    <id>398</id>
    <revision>
      <id>2207</id>
      <timestamp>2008-06-21T11:01:28Z</timestamp>
      <contributor>
        <username>deadknight88</username>
        <id>67</id>
      </contributor>
      <comment>maemo.org logo contest entry from deadknight88</comment>
      <text xml:space="preserve">maemo.org logo contest entry from deadknight88</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest deadknight88 70.png</title>
    <id>399</id>
    <revision>
      <id>2208</id>
      <timestamp>2008-06-21T11:02:30Z</timestamp>
      <contributor>
        <username>deadknight88</username>
        <id>67</id>
      </contributor>
      <comment>maemo.org logo contest entry from deadknight88</comment>
      <text xml:space="preserve">maemo.org logo contest entry from deadknight88</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest dzahariev 1.png</title>
    <id>288</id>
    <revision>
      <id>1879</id>
      <timestamp>2008-06-18T21:14:21Z</timestamp>
      <contributor>
        <username>dzahariev</username>
        <id>80</id>
      </contributor>
      <comment>maemo.org logo contest entry from User:dzahariev

The main idea is that Open Source software is like honey and all other products that are produced inside bee hive from the united efforts of the bees. 
So the bees are developers and the Maemo is a result </comment>
      <text xml:space="preserve">maemo.org logo contest entry from User:dzahariev

The main idea is that Open Source software is like honey and all other products that are produced inside bee hive from the united efforts of the bees. 
So the bees are developers and the Maemo is a result of their work.
I am not so good in design, but I think that the idea have a potential.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest dzahariev 2.png</title>
    <id>289</id>
    <revision>
      <id>1880</id>
      <timestamp>2008-06-18T21:16:11Z</timestamp>
      <contributor>
        <username>dzahariev</username>
        <id>80</id>
      </contributor>
      <comment>maemo.org logo contest entry from User:dzahariev 
This is an idea for the icon.</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User:dzahariev 
This is an idea for the icon.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest eemaju 1.png</title>
    <id>679</id>
    <revision>
      <id>4107</id>
      <timestamp>2008-07-05T11:11:56Z</timestamp>
      <contributor>
        <username>eemaju</username>
        <id>174</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest eemaju 1.png]]&quot;: maemo.org logo contest entry from eemaju</comment>
      <text xml:space="preserve">maemo.org logo contest entry from eemaju</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest eemaju 2.png</title>
    <id>680</id>
    <revision>
      <id>4108</id>
      <timestamp>2008-07-05T11:12:32Z</timestamp>
      <contributor>
        <username>eemaju</username>
        <id>174</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest eemaju 2.png]]&quot;: maemo.org logo contest entry from eemaju</comment>
      <text xml:space="preserve">maemo.org logo contest entry from eemaju</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest eemaju 4.png</title>
    <id>682</id>
    <revision>
      <id>3880</id>
      <timestamp>2008-07-02T23:01:58Z</timestamp>
      <contributor>
        <username>eemaju</username>
        <id>174</id>
      </contributor>
      <comment>maemo.org logo contest entry from eemaju</comment>
      <text xml:space="preserve">maemo.org logo contest entry from eemaju</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest eemaju 5.png</title>
    <id>681</id>
    <revision>
      <id>3879</id>
      <timestamp>2008-07-02T23:01:31Z</timestamp>
      <contributor>
        <username>eemaju</username>
        <id>174</id>
      </contributor>
      <comment>maemo.org logo contest entry from eemaju</comment>
      <text xml:space="preserve">maemo.org logo contest entry from eemaju</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest eemaju 6.png</title>
    <id>710</id>
    <revision>
      <id>4094</id>
      <timestamp>2008-07-05T09:13:53Z</timestamp>
      <contributor>
        <username>eemaju</username>
        <id>174</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest eemaju 6.png]]&quot;: maemo.org logo contest entry from eemaju</comment>
      <text xml:space="preserve">maemo.org logo contest entry from eemaju</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest femorandeira 1.png</title>
    <id>443</id>
    <revision>
      <id>2388</id>
      <timestamp>2008-06-23T00:48:24Z</timestamp>
      <contributor>
        <username>femorandeira</username>
        <id>116</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest femorandeira 1.png]]&quot;: maemo.org logo contest entry from femorandeira</comment>
      <text xml:space="preserve">Simple shapes that scale well. Tango colors.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest femorandeira 10.png</title>
    <id>596</id>
    <revision>
      <id>3076</id>
      <timestamp>2008-06-27T18:21:40Z</timestamp>
      <contributor>
        <username>femorandeira</username>
        <id>116</id>
      </contributor>
      <comment>maemo.org logo contest entry from femorandeira</comment>
      <text xml:space="preserve">maemo.org logo contest entry from femorandeira</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest femorandeira 2.png</title>
    <id>444</id>
    <revision>
      <id>2384</id>
      <timestamp>2008-06-23T00:28:05Z</timestamp>
      <contributor>
        <username>femorandeira</username>
        <id>116</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest femorandeira 2.png]]&quot;: maemo.org logo contest entry from femorandeira</comment>
      <text xml:space="preserve">Similar to the previous one, but with some fancy gradients.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest femorandeira 3.png</title>
    <id>445</id>
    <revision>
      <id>2385</id>
      <timestamp>2008-06-23T00:28:18Z</timestamp>
      <contributor>
        <username>femorandeira</username>
        <id>116</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest femorandeira 3.png]]&quot;: maemo.org logo contest entry from femorandeira</comment>
      <text xml:space="preserve">Simple shapes, dark background and some old school inspiration.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest femorandeira 5.png</title>
    <id>577</id>
    <revision>
      <id>2984</id>
      <timestamp>2008-06-27T01:33:36Z</timestamp>
      <contributor>
        <username>femorandeira</username>
        <id>116</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest femorandeira 5.png]]&quot;: maemo.org logo contest entry from femorandeira</comment>
      <text xml:space="preserve">maemo.org logo contest entry from femorandeira</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest femorandeira 6.png</title>
    <id>578</id>
    <revision>
      <id>2985</id>
      <timestamp>2008-06-27T01:33:39Z</timestamp>
      <contributor>
        <username>femorandeira</username>
        <id>116</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest femorandeira 6.png]]&quot;: maemo.org logo contest entry from femorandeira</comment>
      <text xml:space="preserve">maemo.org logo contest entry from femorandeira</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest femorandeira 7.png</title>
    <id>579</id>
    <revision>
      <id>2986</id>
      <timestamp>2008-06-27T01:34:05Z</timestamp>
      <contributor>
        <username>femorandeira</username>
        <id>116</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest femorandeira 7.png]]&quot;: maemo.org logo contest entry from femorandeira</comment>
      <text xml:space="preserve">maemo.org logo contest entry from femorandeira</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest femorandeira 8.png</title>
    <id>580</id>
    <revision>
      <id>3074</id>
      <timestamp>2008-06-27T18:20:37Z</timestamp>
      <contributor>
        <username>femorandeira</username>
        <id>116</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest femorandeira 8.png]]&quot;: maemo.org logo contest entry from femorandeira</comment>
      <text xml:space="preserve">maemo.org logo contest entry from femorandeira</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest femorandeira 9.png</title>
    <id>595</id>
    <revision>
      <id>3075</id>
      <timestamp>2008-06-27T18:20:46Z</timestamp>
      <contributor>
        <username>femorandeira</username>
        <id>116</id>
      </contributor>
      <comment>maemo.org logo contest entry from femorandeira</comment>
      <text xml:space="preserve">maemo.org logo contest entry from femorandeira</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest firebird8 0.png</title>
    <id>523</id>
    <revision>
      <id>2693</id>
      <timestamp>2008-06-25T00:04:16Z</timestamp>
      <contributor>
        <username>firebird8</username>
        <id>131</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest firebird8 0.png]]&quot;</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User: firebird8</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest firebird8 1.png</title>
    <id>524</id>
    <revision>
      <id>2683</id>
      <timestamp>2008-06-24T23:27:44Z</timestamp>
      <contributor>
        <username>firebird8</username>
        <id>131</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest firebird8 1.png]]&quot;</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User: firebird8</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest fredyrivera 1.png</title>
    <id>297</id>
    <revision>
      <id>1905</id>
      <timestamp>2008-06-19T01:33:18Z</timestamp>
      <contributor>
        <username>fredyrivera</username>
        <id>79</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:fredyrivera]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:fredyrivera]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest fredyrivera 2.png</title>
    <id>296</id>
    <revision>
      <id>1901</id>
      <timestamp>2008-06-19T01:28:26Z</timestamp>
      <contributor>
        <username>fredyrivera</username>
        <id>79</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:fredyrivera]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:fredyrivera]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest furrball1.png</title>
    <id>420</id>
    <revision>
      <id>2283</id>
      <timestamp>2008-06-22T03:57:08Z</timestamp>
      <contributor>
        <username>furrball</username>
        <id>112</id>
      </contributor>
      <comment>maemo.org logo contest entry from User:furrball</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User:furrball</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest furrball2.png</title>
    <id>421</id>
    <revision>
      <id>2284</id>
      <timestamp>2008-06-22T03:58:28Z</timestamp>
      <contributor>
        <username>furrball</username>
        <id>112</id>
      </contributor>
      <comment>maemo.org logo contest entry from User:furrball</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User:furrball</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest garethlwalt 1.png</title>
    <id>341</id>
    <revision>
      <id>2029</id>
      <timestamp>2008-06-19T17:56:15Z</timestamp>
      <contributor>
        <username>garethlwalt</username>
        <id>96</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest garethlwalt 10.png</title>
    <id>563</id>
    <revision>
      <id>2897</id>
      <timestamp>2008-06-26T18:17:46Z</timestamp>
      <contributor>
        <username>garethlwalt</username>
        <id>96</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest garethlwalt 10.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest garethlwalt 1b.png</title>
    <id>378</id>
    <revision>
      <id>2129</id>
      <timestamp>2008-06-20T15:58:49Z</timestamp>
      <contributor>
        <username>garethlwalt</username>
        <id>96</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest garethlwalt 2.png</title>
    <id>345</id>
    <revision>
      <id>2040</id>
      <timestamp>2008-06-19T19:07:03Z</timestamp>
      <contributor>
        <username>garethlwalt</username>
        <id>96</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest garethlwalt 2.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest garethlwalt 2b.png</title>
    <id>377</id>
    <revision>
      <id>2128</id>
      <timestamp>2008-06-20T15:48:41Z</timestamp>
      <contributor>
        <username>garethlwalt</username>
        <id>96</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest garethlwalt 2b.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest garethlwalt 2c.png</title>
    <id>485</id>
    <revision>
      <id>2548</id>
      <timestamp>2008-06-23T17:35:23Z</timestamp>
      <contributor>
        <username>garethlwalt</username>
        <id>96</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest garethlwalt 3.png</title>
    <id>476</id>
    <revision>
      <id>2561</id>
      <timestamp>2008-06-23T18:17:44Z</timestamp>
      <contributor>
        <username>garethlwalt</username>
        <id>96</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest garethlwalt 3.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest garethlwalt 4.png</title>
    <id>477</id>
    <revision>
      <id>2511</id>
      <timestamp>2008-06-23T14:25:24Z</timestamp>
      <contributor>
        <username>garethlwalt</username>
        <id>96</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest garethlwalt 4.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest garethlwalt 5.png</title>
    <id>478</id>
    <revision>
      <id>2513</id>
      <timestamp>2008-06-23T14:33:49Z</timestamp>
      <contributor>
        <username>garethlwalt</username>
        <id>96</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest garethlwalt 7.png</title>
    <id>481</id>
    <revision>
      <id>2540</id>
      <timestamp>2008-06-23T16:12:19Z</timestamp>
      <contributor>
        <username>garethlwalt</username>
        <id>96</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest garethlwalt 7.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest garethlwalt 8.png</title>
    <id>543</id>
    <revision>
      <id>2784</id>
      <timestamp>2008-06-25T18:46:44Z</timestamp>
      <contributor>
        <username>garethlwalt</username>
        <id>96</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest garethlwalt 9.png</title>
    <id>544</id>
    <revision>
      <id>2786</id>
      <timestamp>2008-06-25T19:36:39Z</timestamp>
      <contributor>
        <username>garethlwalt</username>
        <id>96</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest gavren 01.png</title>
    <id>707</id>
    <revision>
      <id>4030</id>
      <timestamp>2008-07-04T17:50:45Z</timestamp>
      <contributor>
        <username>gavren</username>
        <id>82</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest gavren 01.png]]&quot;: maemo.org logo contest entry from User:gavren</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User:gavren</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest glaoliver 1.png</title>
    <id>748</id>
    <revision>
      <id>4212</id>
      <timestamp>2008-07-07T13:04:03Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:glaoliver]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:glaoliver]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest glaoliver 1 accessories.png</title>
    <id>749</id>
    <revision>
      <id>4213</id>
      <timestamp>2008-07-07T13:08:13Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:glaoliver]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:glaoliver]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest glaoliver 1 tshirts.png</title>
    <id>750</id>
    <revision>
      <id>4214</id>
      <timestamp>2008-07-07T13:08:46Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:glaoliver]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:glaoliver]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest glaoliver 1 using.png</title>
    <id>751</id>
    <revision>
      <id>4215</id>
      <timestamp>2008-07-07T13:11:17Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:glaoliver]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:glaoliver]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest glaoliver 2.png</title>
    <id>752</id>
    <revision>
      <id>4216</id>
      <timestamp>2008-07-07T13:13:32Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:glaoliver]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:glaoliver]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest glaoliver 2 accessories.png</title>
    <id>4623</id>
    <revision>
      <id>4240</id>
      <timestamp>2008-07-07T15:10:21Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:glaoliver]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:glaoliver]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest glaoliver 2 tshirts.png</title>
    <id>754</id>
    <revision>
      <id>4220</id>
      <timestamp>2008-07-07T13:16:34Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:glaoliver]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:glaoliver]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest glaoliver 2 using.png</title>
    <id>755</id>
    <revision>
      <id>4221</id>
      <timestamp>2008-07-07T13:17:32Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:glaoliver]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:glaoliver]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest glaoliver 3.png</title>
    <id>756</id>
    <revision>
      <id>4222</id>
      <timestamp>2008-07-07T13:34:45Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:glaoliver]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:glaoliver]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest glaoliver 3 accessories.png</title>
    <id>757</id>
    <revision>
      <id>4223</id>
      <timestamp>2008-07-07T13:35:28Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:glaoliver]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:glaoliver]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest glaoliver 3 tshirts.png</title>
    <id>758</id>
    <revision>
      <id>4224</id>
      <timestamp>2008-07-07T13:36:03Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:glaoliver]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:glaoliver]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest glaoliver 3 using.png</title>
    <id>759</id>
    <revision>
      <id>4225</id>
      <timestamp>2008-07-07T13:37:09Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:glaoliver]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:glaoliver]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jensen 11.png</title>
    <id>970</id>
    <revision>
      <id>5642</id>
      <timestamp>2008-07-26T21:42:38Z</timestamp>
      <contributor>
        <username>jensen</username>
        <id>241</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jensen]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jensen]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jensen 12.png</title>
    <id>967</id>
    <revision>
      <id>5638</id>
      <timestamp>2008-07-26T21:38:04Z</timestamp>
      <contributor>
        <username>jensen</username>
        <id>241</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jensen]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jensen]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jensen 13.png</title>
    <id>969</id>
    <revision>
      <id>5640</id>
      <timestamp>2008-07-26T21:41:21Z</timestamp>
      <contributor>
        <username>jensen</username>
        <id>241</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jensen]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jensen]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jensen 14.png</title>
    <id>971</id>
    <revision>
      <id>5643</id>
      <timestamp>2008-07-26T21:54:45Z</timestamp>
      <contributor>
        <username>jensen</username>
        <id>241</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jensen]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jensen]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jensen 15.png</title>
    <id>973</id>
    <revision>
      <id>5648</id>
      <timestamp>2008-07-26T22:23:07Z</timestamp>
      <contributor>
        <username>jensen</username>
        <id>241</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jensen]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jensen]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 1.png</title>
    <id>321</id>
    <revision>
      <id>2143</id>
      <timestamp>2008-06-20T19:37:21Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 1.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 13.png</title>
    <id>333</id>
    <revision>
      <id>2163</id>
      <timestamp>2008-06-20T20:22:23Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 13.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 2.png</title>
    <id>322</id>
    <revision>
      <id>1984</id>
      <timestamp>2008-06-19T16:15:41Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 20.png</title>
    <id>343</id>
    <revision>
      <id>2035</id>
      <timestamp>2008-06-19T18:17:52Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 22.png</title>
    <id>365</id>
    <revision>
      <id>2086</id>
      <timestamp>2008-06-20T03:39:26Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 25.png</title>
    <id>369</id>
    <revision>
      <id>2780</id>
      <timestamp>2008-06-25T17:05:06Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 25.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 25 i.png</title>
    <id>716</id>
    <revision>
      <id>4131</id>
      <timestamp>2008-07-06T01:13:17Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 25 ts.png</title>
    <id>576</id>
    <revision>
      <id>2964</id>
      <timestamp>2008-06-26T22:38:53Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 25 ts.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 26.png</title>
    <id>375</id>
    <revision>
      <id>2153</id>
      <timestamp>2008-06-20T19:49:17Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 26.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 29.png</title>
    <id>395</id>
    <revision>
      <id>2767</id>
      <timestamp>2008-06-25T15:50:28Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 29.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 29 i.png</title>
    <id>717</id>
    <revision>
      <id>4146</id>
      <timestamp>2008-07-06T01:36:35Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 29 i.png]]&quot;: Reverted to version as of 01:13, 6 July 2008</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 29 ts.png</title>
    <id>574</id>
    <revision>
      <id>2967</id>
      <timestamp>2008-06-26T22:52:58Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 29 ts.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 3.png</title>
    <id>323</id>
    <revision>
      <id>1986</id>
      <timestamp>2008-06-19T16:16:03Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 30.png</title>
    <id>404</id>
    <revision>
      <id>2234</id>
      <timestamp>2008-06-21T14:25:52Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 31.png</title>
    <id>405</id>
    <revision>
      <id>2235</id>
      <timestamp>2008-06-21T14:26:36Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 32.png</title>
    <id>406</id>
    <revision>
      <id>2241</id>
      <timestamp>2008-06-21T15:10:45Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 32 i.png</title>
    <id>718</id>
    <revision>
      <id>4134</id>
      <timestamp>2008-07-06T01:15:16Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 32 ts.png</title>
    <id>570</id>
    <revision>
      <id>3018</id>
      <timestamp>2008-06-27T05:02:47Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 32 ts.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 34.png</title>
    <id>410</id>
    <revision>
      <id>2250</id>
      <timestamp>2008-06-21T16:09:28Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 34 i.png</title>
    <id>719</id>
    <revision>
      <id>4360</id>
      <timestamp>2008-07-10T17:27:11Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 34 i.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 34 ts.png</title>
    <id>564</id>
    <revision>
      <id>2902</id>
      <timestamp>2008-06-26T19:09:45Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 38.png</title>
    <id>416</id>
    <revision>
      <id>2269</id>
      <timestamp>2008-06-21T22:23:14Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 38 i.png</title>
    <id>721</id>
    <revision>
      <id>4137</id>
      <timestamp>2008-07-06T01:18:08Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 38 ts.png</title>
    <id>728</id>
    <revision>
      <id>4144</id>
      <timestamp>2008-07-06T01:25:32Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 39.png</title>
    <id>437</id>
    <revision>
      <id>2764</id>
      <timestamp>2008-06-25T15:43:35Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 39.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 39 i.png</title>
    <id>722</id>
    <revision>
      <id>4138</id>
      <timestamp>2008-07-06T01:18:45Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 39 ts.png</title>
    <id>565</id>
    <revision>
      <id>2935</id>
      <timestamp>2008-06-26T20:11:42Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 39 ts.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 4.png</title>
    <id>324</id>
    <revision>
      <id>3012</id>
      <timestamp>2008-06-27T04:36:21Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 4.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 40.png</title>
    <id>438</id>
    <revision>
      <id>2371</id>
      <timestamp>2008-06-22T23:08:06Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 40 i.png</title>
    <id>723</id>
    <revision>
      <id>4361</id>
      <timestamp>2008-07-10T17:30:49Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 40 i.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 40 ts.png</title>
    <id>582</id>
    <revision>
      <id>3020</id>
      <timestamp>2008-06-27T05:10:26Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 40 ts.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 41.png</title>
    <id>439</id>
    <revision>
      <id>2805</id>
      <timestamp>2008-06-25T23:27:39Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 41.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 41 i.png</title>
    <id>724</id>
    <revision>
      <id>4140</id>
      <timestamp>2008-07-06T01:20:08Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 41 ts.png</title>
    <id>566</id>
    <revision>
      <id>2961</id>
      <timestamp>2008-06-26T22:03:12Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 41 ts.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 42.png</title>
    <id>440</id>
    <revision>
      <id>2376</id>
      <timestamp>2008-06-23T00:06:06Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 44.png</title>
    <id>442</id>
    <revision>
      <id>2378</id>
      <timestamp>2008-06-23T00:07:42Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 44 i.png</title>
    <id>725</id>
    <revision>
      <id>4362</id>
      <timestamp>2008-07-10T17:32:28Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 44 i.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 44 ts.png</title>
    <id>581</id>
    <revision>
      <id>2989</id>
      <timestamp>2008-06-27T01:40:14Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 47.png</title>
    <id>448</id>
    <revision>
      <id>2409</id>
      <timestamp>2008-06-23T04:43:12Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 47.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 47 i.png</title>
    <id>726</id>
    <revision>
      <id>4359</id>
      <timestamp>2008-07-10T17:13:33Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 47 i.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 47 ts.png</title>
    <id>567</id>
    <revision>
      <id>2907</id>
      <timestamp>2008-06-26T19:17:59Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 48.png</title>
    <id>456</id>
    <revision>
      <id>2433</id>
      <timestamp>2008-06-23T05:31:24Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 48 i.png</title>
    <id>727</id>
    <revision>
      <id>4143</id>
      <timestamp>2008-07-06T01:22:11Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 48 ts.png</title>
    <id>568</id>
    <revision>
      <id>2915</id>
      <timestamp>2008-06-26T19:25:24Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 48 ts.png]]&quot;: maemo.org logo contest entry from [[User:&lt;your username&gt;]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 4 i.png</title>
    <id>714</id>
    <revision>
      <id>4129</id>
      <timestamp>2008-07-06T01:12:23Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 4 ts.png</title>
    <id>590</id>
    <revision>
      <id>3017</id>
      <timestamp>2008-06-27T04:55:42Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 4 ts.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 5.png</title>
    <id>325</id>
    <revision>
      <id>2410</id>
      <timestamp>2008-06-23T04:44:03Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 5.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 8.png</title>
    <id>328</id>
    <revision>
      <id>2775</id>
      <timestamp>2008-06-25T16:17:17Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 8.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 8 i.png</title>
    <id>715</id>
    <revision>
      <id>4130</id>
      <timestamp>2008-07-06T01:12:51Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 8 ts.png</title>
    <id>720</id>
    <revision>
      <id>4136</id>
      <timestamp>2008-07-06T01:17:13Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jobelium 9.png</title>
    <id>329</id>
    <revision>
      <id>2261</id>
      <timestamp>2008-06-21T17:44:49Z</timestamp>
      <contributor>
        <username>jobelium</username>
        <id>95</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jobelium 9.png]]&quot;: maemo.org logo contest entry from [[User:jobelium]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jobelium]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest joeaguy 1.png</title>
    <id>355</id>
    <revision>
      <id>2066</id>
      <timestamp>2008-06-20T01:34:44Z</timestamp>
      <contributor>
        <username>joeaguy</username>
        <id>101</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:joeaguy]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:joeaguy]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest joeaguy 2.png</title>
    <id>356</id>
    <revision>
      <id>2067</id>
      <timestamp>2008-06-20T01:35:37Z</timestamp>
      <contributor>
        <username>joeaguy</username>
        <id>101</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:joeaguy]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:joeaguy]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest joeaguy 3.png</title>
    <id>357</id>
    <revision>
      <id>2068</id>
      <timestamp>2008-06-20T01:35:57Z</timestamp>
      <contributor>
        <username>joeaguy</username>
        <id>101</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:joeaguy]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:joeaguy]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jrocha 01.png</title>
    <id>990</id>
    <revision>
      <id>5689</id>
      <timestamp>2008-07-27T01:57:50Z</timestamp>
      <contributor>
        <username>jrocha</username>
        <id>244</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jrocha]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jrocha]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jrocha 02.png</title>
    <id>991</id>
    <revision>
      <id>5690</id>
      <timestamp>2008-07-27T01:59:10Z</timestamp>
      <contributor>
        <username>jrocha</username>
        <id>244</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jrocha]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jrocha]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jrouyer 1.png</title>
    <id>767</id>
    <revision>
      <id>4378</id>
      <timestamp>2008-07-11T04:44:09Z</timestamp>
      <contributor>
        <username>jrouyer</username>
        <id>190</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jrouyer 1.png]]&quot;: Reverted to version as of 19:47, 10 July 2008</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User: jrouyer</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jussi -001-.png</title>
    <id>370</id>
    <revision>
      <id>2711</id>
      <timestamp>2008-06-25T04:03:38Z</timestamp>
      <contributor>
        <username>jussi</username>
        <id>94</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jussi -001-.png]]&quot;</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jussi]]

'''The idea:'''
The a and e ligature formed of dots signifies that the maemo is built on the collaborate effort of the community, and the mœbius loop / strip embedded in the ligature shows that there are infinite/limitless possibilities of working together.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jussi -002-.png</title>
    <id>371</id>
    <revision>
      <id>2461</id>
      <timestamp>2008-06-23T06:56:23Z</timestamp>
      <contributor>
        <username>jussi</username>
        <id>94</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jussi -002-.png]]&quot;: colour tweaks</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jussi]]

Symbol only on square, to use for instance as favicon or on t-shirt print.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jussi -003-.png</title>
    <id>372</id>
    <revision>
      <id>2096</id>
      <timestamp>2008-06-20T03:50:45Z</timestamp>
      <contributor>
        <username>jussi</username>
        <id>94</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jussi]]

T-shirt print</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jussi]]

T-shirt print</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jussi -004-.png</title>
    <id>373</id>
    <revision>
      <id>2097</id>
      <timestamp>2008-06-20T03:51:24Z</timestamp>
      <contributor>
        <username>jussi</username>
        <id>94</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jussi]]

I know this is a little above and beyond. I got a little carried away. These are ideas for implementation on the core maemo brand level, where colour can be used to signify the difference between the maemo</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jussi]]

I know this is a little above and beyond. I got a little carried away. These are ideas for implementation on the core maemo brand level, where colour can be used to signify the difference between the maemo os (green) and the maemo community (orange red). 

I suppose this is more up to Nokia. ;)</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jussi -006-.png</title>
    <id>458</id>
    <revision>
      <id>2459</id>
      <timestamp>2008-06-23T06:54:34Z</timestamp>
      <contributor>
        <username>jussi</username>
        <id>94</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jussi -006-.png]]&quot;: Colour tweaks</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jussi]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jussi -007-.png</title>
    <id>459</id>
    <revision>
      <id>2466</id>
      <timestamp>2008-06-23T08:11:56Z</timestamp>
      <contributor>
        <username>jussi</username>
        <id>94</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jussi -007-.png]]&quot;: improved with feedback from [[User:thiercito]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jussi]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jussi -014-.png</title>
    <id>513</id>
    <revision>
      <id>2632</id>
      <timestamp>2008-06-24T06:30:07Z</timestamp>
      <contributor>
        <username>jussi</username>
        <id>94</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:jussi]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:jussi]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jussi -101-.png</title>
    <id>950</id>
    <revision>
      <id>5596</id>
      <timestamp>2008-07-26T12:04:52Z</timestamp>
      <contributor>
        <username>jussi</username>
        <id>94</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jussi -102-.png</title>
    <id>951</id>
    <revision>
      <id>5597</id>
      <timestamp>2008-07-26T12:05:03Z</timestamp>
      <contributor>
        <username>jussi</username>
        <id>94</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jussi -103-.png</title>
    <id>952</id>
    <revision>
      <id>5603</id>
      <timestamp>2008-07-26T12:13:53Z</timestamp>
      <contributor>
        <username>jussi</username>
        <id>94</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest jussi -103-.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jussi -104-.png</title>
    <id>953</id>
    <revision>
      <id>5599</id>
      <timestamp>2008-07-26T12:05:32Z</timestamp>
      <contributor>
        <username>jussi</username>
        <id>94</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jussi -105-.png</title>
    <id>954</id>
    <revision>
      <id>5600</id>
      <timestamp>2008-07-26T12:05:43Z</timestamp>
      <contributor>
        <username>jussi</username>
        <id>94</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest jussi -106-.png</title>
    <id>955</id>
    <revision>
      <id>5601</id>
      <timestamp>2008-07-26T12:05:59Z</timestamp>
      <contributor>
        <username>jussi</username>
        <id>94</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest karnhack 01.png</title>
    <id>815</id>
    <revision>
      <id>4746</id>
      <timestamp>2008-07-18T08:43:36Z</timestamp>
      <contributor>
        <username>karnhack</username>
        <id>208</id>
      </contributor>
      <comment>maemo.org logo contest entry from karnhack</comment>
      <text xml:space="preserve">maemo.org logo contest entry from karnhack</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest karnhack 02.png</title>
    <id>816</id>
    <revision>
      <id>4747</id>
      <timestamp>2008-07-18T08:44:13Z</timestamp>
      <contributor>
        <username>karnhack</username>
        <id>208</id>
      </contributor>
      <comment>maemo.org logo contest entry from karnhack</comment>
      <text xml:space="preserve">maemo.org logo contest entry from karnhack</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest karnhack 03.png</title>
    <id>817</id>
    <revision>
      <id>4748</id>
      <timestamp>2008-07-18T08:44:41Z</timestamp>
      <contributor>
        <username>karnhack</username>
        <id>208</id>
      </contributor>
      <comment>maemo.org logo contest entry from karnhack</comment>
      <text xml:space="preserve">maemo.org logo contest entry from karnhack</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest karnhack 04.png</title>
    <id>818</id>
    <revision>
      <id>4749</id>
      <timestamp>2008-07-18T08:45:08Z</timestamp>
      <contributor>
        <username>karnhack</username>
        <id>208</id>
      </contributor>
      <comment>maemo.org logo contest entry from karnhack</comment>
      <text xml:space="preserve">maemo.org logo contest entry from karnhack</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 1.png</title>
    <id>685</id>
    <revision>
      <id>3899</id>
      <timestamp>2008-07-03T10:46:37Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <comment>Maemo.org
This name and logo is created keeping in the mind that now maemo can handles more and more complex apllcation and processes, e of maemo articulates that complexity with fresh illusive look. I hope you will like it.</comment>
      <text xml:space="preserve">Maemo.org
This name and logo is created keeping in the mind that now maemo can handles more and more complex apllcation and processes, e of maemo articulates that complexity with fresh illusive look. I hope you will like it.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 10.png</title>
    <id>706</id>
    <revision>
      <id>4017</id>
      <timestamp>2008-07-04T14:52:12Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 11.png</title>
    <id>879</id>
    <revision>
      <id>5211</id>
      <timestamp>2008-07-23T12:20:46Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 12.png</title>
    <id>880</id>
    <revision>
      <id>5212</id>
      <timestamp>2008-07-23T12:21:29Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 13.png</title>
    <id>881</id>
    <revision>
      <id>5213</id>
      <timestamp>2008-07-23T12:22:15Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 14.png</title>
    <id>882</id>
    <revision>
      <id>5214</id>
      <timestamp>2008-07-23T12:23:03Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 15.png</title>
    <id>883</id>
    <revision>
      <id>5215</id>
      <timestamp>2008-07-23T12:23:39Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 16.png</title>
    <id>884</id>
    <revision>
      <id>5216</id>
      <timestamp>2008-07-23T12:25:05Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 17.png</title>
    <id>885</id>
    <revision>
      <id>5217</id>
      <timestamp>2008-07-23T12:25:48Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 18.png</title>
    <id>886</id>
    <revision>
      <id>5218</id>
      <timestamp>2008-07-23T12:26:34Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 19.png</title>
    <id>887</id>
    <revision>
      <id>5219</id>
      <timestamp>2008-07-23T12:27:17Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 2.png</title>
    <id>686</id>
    <revision>
      <id>3900</id>
      <timestamp>2008-07-03T10:47:39Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 20.png</title>
    <id>888</id>
    <revision>
      <id>5220</id>
      <timestamp>2008-07-23T12:28:05Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 21.png</title>
    <id>907</id>
    <revision>
      <id>5319</id>
      <timestamp>2008-07-24T12:30:16Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 22.png</title>
    <id>908</id>
    <revision>
      <id>5320</id>
      <timestamp>2008-07-24T12:30:37Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 23.png</title>
    <id>909</id>
    <revision>
      <id>5322</id>
      <timestamp>2008-07-24T12:31:19Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 24.png</title>
    <id>910</id>
    <revision>
      <id>5323</id>
      <timestamp>2008-07-24T12:31:53Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 25.png</title>
    <id>911</id>
    <revision>
      <id>5324</id>
      <timestamp>2008-07-24T12:32:12Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 26.png</title>
    <id>912</id>
    <revision>
      <id>5325</id>
      <timestamp>2008-07-24T12:32:31Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 27.png</title>
    <id>913</id>
    <revision>
      <id>5326</id>
      <timestamp>2008-07-24T12:32:55Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 28.png</title>
    <id>921</id>
    <revision>
      <id>5408</id>
      <timestamp>2008-07-25T08:03:30Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 3.png</title>
    <id>687</id>
    <revision>
      <id>3908</id>
      <timestamp>2008-07-03T14:05:26Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 4.png</title>
    <id>688</id>
    <revision>
      <id>3909</id>
      <timestamp>2008-07-03T14:06:28Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 5.png</title>
    <id>701</id>
    <revision>
      <id>4005</id>
      <timestamp>2008-07-04T14:04:03Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 6.png</title>
    <id>702</id>
    <revision>
      <id>4006</id>
      <timestamp>2008-07-04T14:05:36Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 7.png</title>
    <id>703</id>
    <revision>
      <id>4007</id>
      <timestamp>2008-07-04T14:07:03Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 8.png</title>
    <id>704</id>
    <revision>
      <id>4008</id>
      <timestamp>2008-07-04T14:08:15Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest lav4you 9.png</title>
    <id>705</id>
    <revision>
      <id>4015</id>
      <timestamp>2008-07-04T14:49:59Z</timestamp>
      <contributor>
        <username>lav4you</username>
        <id>175</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest mexicopepito- 1-.png</title>
    <id>963</id>
    <revision>
      <id>5629</id>
      <timestamp>2008-07-26T18:40:26Z</timestamp>
      <contributor>
        <username>mexicopepito</username>
        <id>235</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:mexicopepito]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:mexicopepito]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest michael- 01-.png</title>
    <id>422</id>
    <revision>
      <id>5455</id>
      <timestamp>2008-07-25T11:07:09Z</timestamp>
      <contributor>
        <username>michael</username>
        <id>113</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest michael- 01-.png]]&quot;: maemo.org logo contest entry from [[User:michael]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:michael]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest michael- 02-.png</title>
    <id>423</id>
    <revision>
      <id>5456</id>
      <timestamp>2008-07-25T11:07:16Z</timestamp>
      <contributor>
        <username>michael</username>
        <id>113</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest michael- 02-.png]]&quot;: maemo.org logo contest entry from [[User:michael]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:michael]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest michael- 03-.png</title>
    <id>424</id>
    <revision>
      <id>4296</id>
      <timestamp>2008-07-08T20:08:32Z</timestamp>
      <contributor>
        <username>michael</username>
        <id>113</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest michael- 03-.png]]&quot;: maemo.org logo contest entry from [[User:michael]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:michael]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest michael- 04-.png</title>
    <id>425</id>
    <revision>
      <id>3984</id>
      <timestamp>2008-07-04T11:27:25Z</timestamp>
      <contributor>
        <username>michael</username>
        <id>113</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest michael- 04-.png]]&quot;: maemo.org logo contest entry from [[User:michael]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:michael]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest michael- 05-.png</title>
    <id>427</id>
    <revision>
      <id>5448</id>
      <timestamp>2008-07-25T10:32:55Z</timestamp>
      <contributor>
        <username>michael</username>
        <id>113</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest michael- 05-.png]]&quot;: maemo.org logo contest entry from [[User:michael]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:michael]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest michael- 06-.png</title>
    <id>426</id>
    <revision>
      <id>5459</id>
      <timestamp>2008-07-25T11:42:09Z</timestamp>
      <contributor>
        <username>michael</username>
        <id>113</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest michael- 06-.png]]&quot;: maemo.org logo contest entry from [[User:michael]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:michael]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest michael- 07-.png</title>
    <id>428</id>
    <revision>
      <id>5198</id>
      <timestamp>2008-07-23T09:23:28Z</timestamp>
      <contributor>
        <username>michael</username>
        <id>113</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest michael- 07-.png]]&quot;: maemo.org logo contest entry from [[User:michael]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:michael]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest michael- 08-.png</title>
    <id>429</id>
    <revision>
      <id>5451</id>
      <timestamp>2008-07-25T10:35:52Z</timestamp>
      <contributor>
        <username>michael</username>
        <id>113</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest michael- 08-.png]]&quot;: maemo.org logo contest entry from [[User:michael]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:michael]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest michael- 09-.png</title>
    <id>430</id>
    <revision>
      <id>5453</id>
      <timestamp>2008-07-25T10:36:19Z</timestamp>
      <contributor>
        <username>michael</username>
        <id>113</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest michael- 09-.png]]&quot;: maemo.org logo contest entry from [[User:michael]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:michael]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest michael- 10-.png</title>
    <id>431</id>
    <revision>
      <id>4251</id>
      <timestamp>2008-07-07T22:34:14Z</timestamp>
      <contributor>
        <username>michael</username>
        <id>113</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest michael- 10-.png]]&quot;: maemo.org logo contest entry from [[User:michael]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:michael]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest michael- 11-.png</title>
    <id>432</id>
    <revision>
      <id>5460</id>
      <timestamp>2008-07-25T11:42:11Z</timestamp>
      <contributor>
        <username>michael</username>
        <id>113</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest michael- 11-.png]]&quot;: maemo.org logo contest entry from [[User:michael]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:michael]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest michael- 12-.png</title>
    <id>433</id>
    <revision>
      <id>4295</id>
      <timestamp>2008-07-08T20:07:59Z</timestamp>
      <contributor>
        <username>michael</username>
        <id>113</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest michael- 12-.png]]&quot;: maemo.org logo contest entry from [[User:michael]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:michael]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest michael- 13-.png</title>
    <id>878</id>
    <revision>
      <id>5202</id>
      <timestamp>2008-07-23T09:53:26Z</timestamp>
      <contributor>
        <username>michael</username>
        <id>113</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:michael]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:michael]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest mrunx 1.png</title>
    <id>505</id>
    <revision>
      <id>2616</id>
      <timestamp>2008-06-24T00:51:02Z</timestamp>
      <contributor>
        <username>mrunx</username>
        <id>126</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:mrunx]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:mrunx]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest mrunx 2.png</title>
    <id>506</id>
    <revision>
      <id>2622</id>
      <timestamp>2008-06-24T00:57:11Z</timestamp>
      <contributor>
        <username>mrunx</username>
        <id>126</id>
      </contributor>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:mrunx]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest mrunx 3.png</title>
    <id>507</id>
    <revision>
      <id>2618</id>
      <timestamp>2008-06-24T00:52:56Z</timestamp>
      <contributor>
        <username>mrunx</username>
        <id>126</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:mrunx]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:mrunx]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest mrunx 4.png</title>
    <id>508</id>
    <revision>
      <id>2619</id>
      <timestamp>2008-06-24T00:53:56Z</timestamp>
      <contributor>
        <username>mrunx</username>
        <id>126</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:mrunx]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:mrunx]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest mrunx 5.png</title>
    <id>509</id>
    <revision>
      <id>2620</id>
      <timestamp>2008-06-24T00:54:12Z</timestamp>
      <contributor>
        <username>mrunx</username>
        <id>126</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:mrunx]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:mrunx]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest mrunx 6.png</title>
    <id>510</id>
    <revision>
      <id>2621</id>
      <timestamp>2008-06-24T00:54:30Z</timestamp>
      <contributor>
        <username>mrunx</username>
        <id>126</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:mrunx]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:mrunx]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest peres 1.png</title>
    <id>732</id>
    <revision>
      <id>4191</id>
      <timestamp>2008-07-07T12:39:28Z</timestamp>
      <contributor>
        <username>peres</username>
        <id>187</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:peres]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:peres]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest peres 1 accessories.png</title>
    <id>733</id>
    <revision>
      <id>4192</id>
      <timestamp>2008-07-07T12:40:25Z</timestamp>
      <contributor>
        <username>peres</username>
        <id>187</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:peres]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:peres]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest peres 1 tshirts.png</title>
    <id>734</id>
    <revision>
      <id>4193</id>
      <timestamp>2008-07-07T12:42:12Z</timestamp>
      <contributor>
        <username>peres</username>
        <id>187</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:peres]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:peres]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest peres 1 using.png</title>
    <id>735</id>
    <revision>
      <id>4198</id>
      <timestamp>2008-07-07T12:48:16Z</timestamp>
      <contributor>
        <username>peres</username>
        <id>187</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:peres]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:peres]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest peres 2.png</title>
    <id>736</id>
    <revision>
      <id>4199</id>
      <timestamp>2008-07-07T12:48:52Z</timestamp>
      <contributor>
        <username>peres</username>
        <id>187</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:peres]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:peres]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest peres 2 accessories.png</title>
    <id>737</id>
    <revision>
      <id>4200</id>
      <timestamp>2008-07-07T12:49:23Z</timestamp>
      <contributor>
        <username>peres</username>
        <id>187</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:peres]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:peres]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest peres 2 tshirts.png</title>
    <id>738</id>
    <revision>
      <id>4202</id>
      <timestamp>2008-07-07T12:49:59Z</timestamp>
      <contributor>
        <username>peres</username>
        <id>187</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:peres]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:peres]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest peres 2 using.png</title>
    <id>739</id>
    <revision>
      <id>4203</id>
      <timestamp>2008-07-07T12:52:02Z</timestamp>
      <contributor>
        <username>peres</username>
        <id>187</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:peres]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:peres]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest pixel6784 1.png</title>
    <id>691</id>
    <revision>
      <id>3961</id>
      <timestamp>2008-07-04T04:23:59Z</timestamp>
      <contributor>
        <username>pixel6784</username>
        <id>177</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest pixel6784 1.png]]&quot;: maemo.org logo contest entry from [[User:&lt;pixel6784&gt;]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:&lt;pixel6784&gt;]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest pixel6784 2.png</title>
    <id>692</id>
    <revision>
      <id>3962</id>
      <timestamp>2008-07-04T04:29:11Z</timestamp>
      <contributor>
        <username>pixel6784</username>
        <id>177</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest pixel6784 2.png]]&quot;: maemo.org logo contest entry from [[User:&lt;pixel6784&gt;]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:&lt;pixel6784&gt;]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest polyxena 1.png</title>
    <id>501</id>
    <revision>
      <id>2601</id>
      <timestamp>2008-06-23T21:48:33Z</timestamp>
      <contributor>
        <username>polyxena</username>
        <id>125</id>
      </contributor>
      <comment>maemo.org logo contest entry from polyxena</comment>
      <text xml:space="preserve">maemo.org logo contest entry from polyxena</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest polyxena 2.png</title>
    <id>511</id>
    <revision>
      <id>2660</id>
      <timestamp>2008-06-24T19:30:26Z</timestamp>
      <contributor>
        <username>polyxena</username>
        <id>125</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest polyxena 2.png]]&quot;: 2nd entry in the maemo.org logo contest</comment>
      <text xml:space="preserve">2nd maemo.org logo contest entry from polyxena</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest polyxena 3.png</title>
    <id>512</id>
    <revision>
      <id>2658</id>
      <timestamp>2008-06-24T19:25:21Z</timestamp>
      <contributor>
        <username>polyxena</username>
        <id>125</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest polyxena 3.png]]&quot;: 3rd entry for maemo.org logo contest</comment>
      <text xml:space="preserve">3rd maemo.org logo contest entry from polyxena</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest polyxena 4.png</title>
    <id>801</id>
    <revision>
      <id>4625</id>
      <timestamp>2008-07-17T07:03:30Z</timestamp>
      <contributor>
        <username>polyxena</username>
        <id>125</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest polyxena 4.png]]&quot;: Replacement version of entry</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:polyxena]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest rambutan 002.png</title>
    <id>947</id>
    <revision>
      <id>5591</id>
      <timestamp>2008-07-26T11:28:17Z</timestamp>
      <contributor>
        <username>rambutan</username>
        <id>239</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest rambutan 002.png]]&quot;: maemo.org logo contest entry from [[User:&lt;your rambutan&gt;]]</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest rambutan 003.png</title>
    <id>948</id>
    <revision>
      <id>5589</id>
      <timestamp>2008-07-26T11:24:12Z</timestamp>
      <contributor>
        <username>rambutan</username>
        <id>239</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:&lt;rambutan&gt;]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:&lt;rambutan&gt;]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest rambutan 004.png</title>
    <id>949</id>
    <revision>
      <id>5590</id>
      <timestamp>2008-07-26T11:26:09Z</timestamp>
      <contributor>
        <username>rambutan</username>
        <id>239</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:&lt;your rambutan&gt;]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:&lt;your rambutan&gt;]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest rrainist 1.png</title>
    <id>479</id>
    <revision>
      <id>2516</id>
      <timestamp>2008-06-23T14:56:52Z</timestamp>
      <contributor>
        <username>rrainist</username>
        <id>121</id>
      </contributor>
      <comment>maemo.org logo contest entry from rrainist.</comment>
      <text xml:space="preserve">maemo.org logo contest entry from rrainist.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest rrainist 2.png</title>
    <id>480</id>
    <revision>
      <id>2517</id>
      <timestamp>2008-06-23T14:57:19Z</timestamp>
      <contributor>
        <username>rrainist</username>
        <id>121</id>
      </contributor>
      <comment>maemo.org logo contest entry from rrainist.</comment>
      <text xml:space="preserve">maemo.org logo contest entry from rrainist.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest rsperberg 1.png</title>
    <id>316</id>
    <revision>
      <id>1977</id>
      <timestamp>2008-06-19T16:01:03Z</timestamp>
      <contributor>
        <username>rsperberg</username>
        <id>93</id>
      </contributor>
      <comment>Re-using Carolina's color scheme</comment>
      <text xml:space="preserve">Re-using Carolina's color scheme</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest rsperberg 2.png</title>
    <id>317</id>
    <revision>
      <id>1978</id>
      <timestamp>2008-06-19T16:02:32Z</timestamp>
      <contributor>
        <username>rsperberg</username>
        <id>93</id>
      </contributor>
      <comment>More logo-like</comment>
      <text xml:space="preserve">More logo-like</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest rsperberg 5.png</title>
    <id>339</id>
    <revision>
      <id>2019</id>
      <timestamp>2008-06-19T17:42:09Z</timestamp>
      <contributor>
        <username>rsperberg</username>
        <id>93</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest rsperberg 5.png]]&quot;: Splashy colors but any could be selected</comment>
      <text xml:space="preserve">Splashy colors, but any could be used</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest rsperberg 6.png</title>
    <id>340</id>
    <revision>
      <id>2017</id>
      <timestamp>2008-06-19T17:38:14Z</timestamp>
      <contributor>
        <username>rsperberg</username>
        <id>93</id>
      </contributor>
      <comment>Maemo.org isn't a company but a group of people who all contribute toward the same goal. So you don't get &quot;machined&quot; results. But a lot of the vibrancy comes from the non-automaton approach that is the essence of Linux and the FOSS movement.</comment>
      <text xml:space="preserve">Maemo.org isn't a company but a group of people who all contribute toward the same goal. So you don't get &quot;machined&quot; results. But a lot of the vibrancy comes from the non-automaton approach that is the essence of Linux and the FOSS movement.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest rsperberg 7.png</title>
    <id>346</id>
    <revision>
      <id>2042</id>
      <timestamp>2008-06-19T20:03:36Z</timestamp>
      <contributor>
        <username>rsperberg</username>
        <id>93</id>
      </contributor>
      <comment>When a horizontal layout is inappropriate, a square form can be used instead.</comment>
      <text xml:space="preserve">When a horizontal layout is inappropriate, a square form can be used instead.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest rsperberg 8.png</title>
    <id>347</id>
    <revision>
      <id>2057</id>
      <timestamp>2008-06-19T20:47:25Z</timestamp>
      <contributor>
        <username>rsperberg</username>
        <id>93</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest rsperberg 8.png]]&quot;</comment>
      <text xml:space="preserve">The square form with splashier colors.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest rsuplido 1.png</title>
    <id>400</id>
    <revision>
      <id>2224</id>
      <timestamp>2008-06-21T13:41:35Z</timestamp>
      <contributor>
        <username>rsuplido</username>
        <id>16</id>
      </contributor>
      <comment>maemo.org logo contest entry #1 from [[User:rsuplido]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry #1 from [[User:rsuplido]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest rsuplido 2.png</title>
    <id>401</id>
    <revision>
      <id>2225</id>
      <timestamp>2008-06-21T13:42:17Z</timestamp>
      <contributor>
        <username>rsuplido</username>
        <id>16</id>
      </contributor>
      <comment>maemo.org logo contest entry #2 from [[User:rsuplido]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry #2 from [[User:rsuplido]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest rsuplido 3.png</title>
    <id>402</id>
    <revision>
      <id>2226</id>
      <timestamp>2008-06-21T13:42:54Z</timestamp>
      <contributor>
        <username>rsuplido</username>
        <id>16</id>
      </contributor>
      <comment>maemo.org logo contest entry #3 from [[User:rsuplido]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry #3 from [[User:rsuplido]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest rsuplido 4.png</title>
    <id>403</id>
    <revision>
      <id>2227</id>
      <timestamp>2008-06-21T13:43:33Z</timestamp>
      <contributor>
        <username>rsuplido</username>
        <id>16</id>
      </contributor>
      <comment>maemo.org logo contest entry #4 from [[User:rsuplido]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry #4 from [[User:rsuplido]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest samantha 1.png</title>
    <id>917</id>
    <revision>
      <id>5359</id>
      <timestamp>2008-07-24T22:41:43Z</timestamp>
      <contributor>
        <username>samantha</username>
        <id>232</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:samantha]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:samantha]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest samantha 1 variations.png</title>
    <id>961</id>
    <revision>
      <id>5632</id>
      <timestamp>2008-07-26T20:08:42Z</timestamp>
      <contributor>
        <username>samantha</username>
        <id>232</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest samantha 1 variations.png]]&quot;: Color and position variations and favicons of the logo (click to enlarge).</comment>
      <text xml:space="preserve">Variations of colors and favicons</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest samantha 2.png</title>
    <id>960</id>
    <revision>
      <id>5618</id>
      <timestamp>2008-07-26T14:12:49Z</timestamp>
      <contributor>
        <username>samantha</username>
        <id>232</id>
      </contributor>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:samantha]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest samantha 3.png</title>
    <id>964</id>
    <revision>
      <id>5633</id>
      <timestamp>2008-07-26T20:34:19Z</timestamp>
      <contributor>
        <username>samantha</username>
        <id>232</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:samantha]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:samantha]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest samantha 4.png</title>
    <id>974</id>
    <revision>
      <id>5652</id>
      <timestamp>2008-07-26T22:46:14Z</timestamp>
      <contributor>
        <username>samantha</username>
        <id>232</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:samantha]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:samantha]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest samantha tshirts.png</title>
    <id>975</id>
    <revision>
      <id>5653</id>
      <timestamp>2008-07-26T22:51:05Z</timestamp>
      <contributor>
        <username>samantha</username>
        <id>232</id>
      </contributor>
      <comment>Possible usages</comment>
      <text xml:space="preserve">Possible usages</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest sample1 bundyo.png</title>
    <id>256</id>
    <revision>
      <id>1716</id>
      <timestamp>2008-06-15T16:30:08Z</timestamp>
      <contributor>
        <username>bundyo</username>
        <id>21</id>
      </contributor>
      <text xml:space="preserve">maemo.org logo contest sample entry from [[User:bundyo]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest sample2 bundyo.png</title>
    <id>257</id>
    <revision>
      <id>1717</id>
      <timestamp>2008-06-15T16:30:27Z</timestamp>
      <contributor>
        <username>bundyo</username>
        <id>21</id>
      </contributor>
      <text xml:space="preserve">maemo.org logo contest sample entry from [[User:bundyo]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest sample3 bundyo.png</title>
    <id>258</id>
    <revision>
      <id>1715</id>
      <timestamp>2008-06-15T16:29:51Z</timestamp>
      <contributor>
        <username>bundyo</username>
        <id>21</id>
      </contributor>
      <text xml:space="preserve">maemo.org logo contest sample entry from [[User:bundyo]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest setan666 1.png</title>
    <id>774</id>
    <revision>
      <id>4350</id>
      <timestamp>2008-07-10T12:14:19Z</timestamp>
      <contributor>
        <username>blaxnux</username>
        <id>124</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest shivankan 01.png</title>
    <id>533</id>
    <revision>
      <id>2720</id>
      <timestamp>2008-06-25T05:40:04Z</timestamp>
      <contributor>
        <username>shivankan</username>
        <id>133</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest shivankan 01.png]]&quot;: maemo.org logo contest entry from [[User:shivankan]]</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest shivankan 02.png</title>
    <id>534</id>
    <revision>
      <id>2721</id>
      <timestamp>2008-06-25T05:43:47Z</timestamp>
      <contributor>
        <username>shivankan</username>
        <id>133</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest shivankan 02.png]]&quot;: maemo.org logo contest entry from [[User:shivankan]]</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest shivankan 03.png</title>
    <id>535</id>
    <revision>
      <id>2722</id>
      <timestamp>2008-06-25T05:44:24Z</timestamp>
      <contributor>
        <username>shivankan</username>
        <id>133</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest shivankan 03.png]]&quot;: maemo.org logo contest entry from [[User:shivankan]]</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest shivankan 04.png</title>
    <id>536</id>
    <revision>
      <id>2723</id>
      <timestamp>2008-06-25T05:44:53Z</timestamp>
      <contributor>
        <username>shivankan</username>
        <id>133</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest shivankan 04.png]]&quot;: maemo.org logo contest entry from [[User:shivankan]]</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest shivankan 05.png</title>
    <id>537</id>
    <revision>
      <id>2724</id>
      <timestamp>2008-06-25T05:45:35Z</timestamp>
      <contributor>
        <username>shivankan</username>
        <id>133</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest shivankan 05.png]]&quot;: maemo.org logo contest entry from [[User:shivankan]]</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest shockgen 1.png</title>
    <id>914</id>
    <revision>
      <id>5346</id>
      <timestamp>2008-07-24T18:21:25Z</timestamp>
      <contributor>
        <username>shockgen</username>
        <id>228</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:shockgen]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:shockgen]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest shockgen 2.png</title>
    <id>918</id>
    <revision>
      <id>5362</id>
      <timestamp>2008-07-24T23:52:11Z</timestamp>
      <contributor>
        <username>shockgen</username>
        <id>228</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:&lt;shockgen&gt;]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:&lt;shockgen&gt;]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest shockgen 3.png</title>
    <id>926</id>
    <revision>
      <id>5494</id>
      <timestamp>2008-07-25T14:57:15Z</timestamp>
      <contributor>
        <username>shockgen</username>
        <id>228</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:shockgen]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:shockgen]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest shockgen 4.png</title>
    <id>930</id>
    <revision>
      <id>5510</id>
      <timestamp>2008-07-25T15:56:26Z</timestamp>
      <contributor>
        <username>shockgen</username>
        <id>228</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:shockgen]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:shockgen]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest shockgen 5.png</title>
    <id>962</id>
    <revision>
      <id>5623</id>
      <timestamp>2008-07-26T16:01:42Z</timestamp>
      <contributor>
        <username>shockgen</username>
        <id>228</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:shockgen]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:shockgen]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest sohle 1.png</title>
    <id>551</id>
    <revision>
      <id>2853</id>
      <timestamp>2008-06-26T13:30:33Z</timestamp>
      <contributor>
        <username>sohle</username>
        <id>142</id>
      </contributor>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:sohle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest sohle 2.png</title>
    <id>552</id>
    <revision>
      <id>2854</id>
      <timestamp>2008-06-26T13:31:10Z</timestamp>
      <contributor>
        <username>sohle</username>
        <id>142</id>
      </contributor>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:sohle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest sohle 3.png</title>
    <id>553</id>
    <revision>
      <id>2855</id>
      <timestamp>2008-06-26T13:31:15Z</timestamp>
      <contributor>
        <username>sohle</username>
        <id>142</id>
      </contributor>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:sohle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest sohle 4.png</title>
    <id>554</id>
    <revision>
      <id>2856</id>
      <timestamp>2008-06-26T13:31:23Z</timestamp>
      <contributor>
        <username>sohle</username>
        <id>142</id>
      </contributor>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:sohle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest sohle 5.png</title>
    <id>555</id>
    <revision>
      <id>2857</id>
      <timestamp>2008-06-26T13:31:25Z</timestamp>
      <contributor>
        <username>sohle</username>
        <id>142</id>
      </contributor>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:sohle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest sohle 6.png</title>
    <id>556</id>
    <revision>
      <id>2858</id>
      <timestamp>2008-06-26T13:31:31Z</timestamp>
      <contributor>
        <username>sohle</username>
        <id>142</id>
      </contributor>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:sohle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest sohle 7.png</title>
    <id>557</id>
    <revision>
      <id>2859</id>
      <timestamp>2008-06-26T13:31:33Z</timestamp>
      <contributor>
        <username>sohle</username>
        <id>142</id>
      </contributor>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:sohle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest sohle 8.png</title>
    <id>558</id>
    <revision>
      <id>2860</id>
      <timestamp>2008-06-26T13:31:43Z</timestamp>
      <contributor>
        <username>sohle</username>
        <id>142</id>
      </contributor>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:sohle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest sohle 9.png</title>
    <id>559</id>
    <revision>
      <id>2861</id>
      <timestamp>2008-06-26T13:31:44Z</timestamp>
      <contributor>
        <username>sohle</username>
        <id>142</id>
      </contributor>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:sohle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest srosa 1.png</title>
    <id>892</id>
    <revision>
      <id>5619</id>
      <timestamp>2008-07-26T14:15:56Z</timestamp>
      <contributor>
        <username>srosa</username>
        <id>223</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest srosa 1.png]]&quot;: Maemo.org logo contest entry from User:srosa</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User:srosa</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest srosa 2.png</title>
    <id>893</id>
    <revision>
      <id>5620</id>
      <timestamp>2008-07-26T14:15:57Z</timestamp>
      <contributor>
        <username>srosa</username>
        <id>223</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest srosa 2.png]]&quot;: Maemo.org logo contest entry from User:srosa</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User:srosa</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0001.png</title>
    <id>484</id>
    <revision>
      <id>2532</id>
      <timestamp>2008-06-23T15:34:49Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff; Submission #1</comment>
      <text xml:space="preserve">Tim Samoff; Submission #1</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0001b.png</title>
    <id>497</id>
    <revision>
      <id>2588</id>
      <timestamp>2008-06-23T19:44:59Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #1b</comment>
      <text xml:space="preserve">Tim Samoff: Submission #1b</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0001b fav.png</title>
    <id>594</id>
    <revision>
      <id>3263</id>
      <timestamp>2008-06-28T21:15:03Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest timsamoff 0001b fav.png]]&quot;: Tim Samoff: Submission #1b (favicon v2)</comment>
      <text xml:space="preserve">Tim Samoff: Submission #1b (favicon)</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0001c.png</title>
    <id>641</id>
    <revision>
      <id>3455</id>
      <timestamp>2008-06-30T14:02:33Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #1c</comment>
      <text xml:space="preserve">Tim Samoff: Submission #1c</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0001c fav.png</title>
    <id>626</id>
    <revision>
      <id>3387</id>
      <timestamp>2008-06-30T03:15:38Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #1 (favicon v3)</comment>
      <text xml:space="preserve">Tim Samoff: Submission #1 (favicon v3)</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0001d.png</title>
    <id>642</id>
    <revision>
      <id>3459</id>
      <timestamp>2008-06-30T14:21:47Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #1d</comment>
      <text xml:space="preserve">Tim Samoff: Submission #1d</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0001d fav.png</title>
    <id>643</id>
    <revision>
      <id>3462</id>
      <timestamp>2008-06-30T14:32:35Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #1d (favicon)</comment>
      <text xml:space="preserve">Tim Samoff: Submission #1d (favicon)</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0001e.png</title>
    <id>644</id>
    <revision>
      <id>3468</id>
      <timestamp>2008-06-30T14:42:14Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #1e</comment>
      <text xml:space="preserve">Tim Samoff: Submission #1e</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0001e fav.png</title>
    <id>645</id>
    <revision>
      <id>3469</id>
      <timestamp>2008-06-30T14:42:29Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #1e (favicon)</comment>
      <text xml:space="preserve">Tim Samoff: Submission #1e (favicon)</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0001f.png</title>
    <id>646</id>
    <revision>
      <id>3473</id>
      <timestamp>2008-06-30T15:13:51Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #1f</comment>
      <text xml:space="preserve">Tim Samoff: Submission #1f</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0001f favicon.png</title>
    <id>647</id>
    <revision>
      <id>3474</id>
      <timestamp>2008-06-30T15:14:12Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #1f (favicon)</comment>
      <text xml:space="preserve">Tim Samoff: Submission #1f (favicon)</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0001g.png</title>
    <id>665</id>
    <revision>
      <id>3715</id>
      <timestamp>2008-07-01T13:12:06Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #1g</comment>
      <text xml:space="preserve">Tim Samoff: Submission #1g</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0001g favicon.png</title>
    <id>854</id>
    <revision>
      <id>5073</id>
      <timestamp>2008-07-21T17:03:55Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest timsamoff 0001g favicon.png]]&quot;: Tim Samoff: Submission #1g (favicon)</comment>
      <text xml:space="preserve">Tim Samoff: Submission #1g (favicon)</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0002.png</title>
    <id>494</id>
    <revision>
      <id>2579</id>
      <timestamp>2008-06-23T18:35:02Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #2</comment>
      <text xml:space="preserve">Tim Samoff: Submission #2</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0003.png</title>
    <id>496</id>
    <revision>
      <id>2586</id>
      <timestamp>2008-06-23T19:33:12Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #3</comment>
      <text xml:space="preserve">Tim Samoff: Submission #3</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0004.png</title>
    <id>498</id>
    <revision>
      <id>2590</id>
      <timestamp>2008-06-23T20:15:51Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #4</comment>
      <text xml:space="preserve">Tim Samoff: Submission #4</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0005.png</title>
    <id>519</id>
    <revision>
      <id>2651</id>
      <timestamp>2008-06-24T16:30:45Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #5 (main)</comment>
      <text xml:space="preserve">Tim Samoff: Submission #5 (main)</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0005fav.png</title>
    <id>520</id>
    <revision>
      <id>2652</id>
      <timestamp>2008-06-24T16:31:21Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #5 (favicon)</comment>
      <text xml:space="preserve">Tim Samoff: Submission #5 (favicon)</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0006.png</title>
    <id>521</id>
    <revision>
      <id>2656</id>
      <timestamp>2008-06-24T18:34:02Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #6</comment>
      <text xml:space="preserve">Tim Samoff: Submission #6</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0007.png</title>
    <id>522</id>
    <revision>
      <id>2661</id>
      <timestamp>2008-06-24T20:04:10Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #7</comment>
      <text xml:space="preserve">Tim Samoff: Submission #7</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0008.png</title>
    <id>529</id>
    <revision>
      <id>2704</id>
      <timestamp>2008-06-25T02:59:49Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">Tim Samoff: Submission #8 (main)</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0008fav.png</title>
    <id>530</id>
    <revision>
      <id>2703</id>
      <timestamp>2008-06-25T02:58:49Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #8 (favicon)</comment>
      <text xml:space="preserve">Tim Samoff: Submission #8 (favicon)</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0009.png</title>
    <id>531</id>
    <revision>
      <id>2707</id>
      <timestamp>2008-06-25T03:54:08Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #9</comment>
      <text xml:space="preserve">Tim Samoff: Submission #9</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0009 fav.png</title>
    <id>618</id>
    <revision>
      <id>3278</id>
      <timestamp>2008-06-28T21:41:57Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Maemo.org logo contest timsamoff 0009 fav.png]]&quot;: Tim Samoff: Submission #9 (favicon v3)</comment>
      <text xml:space="preserve">Tim Samoff: Submission #9 (favicon)</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0009b.png</title>
    <id>628</id>
    <revision>
      <id>3389</id>
      <timestamp>2008-06-30T03:16:25Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #9b</comment>
      <text xml:space="preserve">Tim Samoff: Submission #9b</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0009b fav.png</title>
    <id>627</id>
    <revision>
      <id>3388</id>
      <timestamp>2008-06-30T03:16:05Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #9 (favicon v3)</comment>
      <text xml:space="preserve">Tim Samoff: Submission #9 (favicon v3)</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0010.png</title>
    <id>532</id>
    <revision>
      <id>2713</id>
      <timestamp>2008-06-25T04:13:46Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #10</comment>
      <text xml:space="preserve">Tim Samoff: Submission #10</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0011.png</title>
    <id>538</id>
    <revision>
      <id>2725</id>
      <timestamp>2008-06-25T05:49:06Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #11</comment>
      <text xml:space="preserve">Tim Samoff: Submission #11</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0012.png</title>
    <id>545</id>
    <revision>
      <id>2792</id>
      <timestamp>2008-06-25T20:25:48Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #12</comment>
      <text xml:space="preserve">Tim Samoff: Submission #12</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest ubikdosmil 1.png</title>
    <id>965</id>
    <revision>
      <id>5635</id>
      <timestamp>2008-07-26T20:50:41Z</timestamp>
      <contributor>
        <username>ubikdosmil</username>
        <id>240</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User: ubikdosmil]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User: ubikdosmil]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest ubikdosmil 2.png</title>
    <id>966</id>
    <revision>
      <id>5636</id>
      <timestamp>2008-07-26T20:53:15Z</timestamp>
      <contributor>
        <username>ubikdosmil</username>
        <id>240</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User: ubikdosmil]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User: ubikdosmil]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest ubikdosmil 3.png</title>
    <id>993</id>
    <revision>
      <id>5696</id>
      <timestamp>2008-07-27T02:05:49Z</timestamp>
      <contributor>
        <username>ubikdosmil</username>
        <id>240</id>
      </contributor>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:ubikdosmil]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest underscore 1.png</title>
    <id>583</id>
    <revision>
      <id>2992</id>
      <timestamp>2008-06-27T02:16:40Z</timestamp>
      <contributor>
        <username>underscore</username>
        <id>145</id>
      </contributor>
      <comment>maemo.org logo contest entry from User:underscore</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User:underscore</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest underscore 2.png</title>
    <id>584</id>
    <revision>
      <id>2993</id>
      <timestamp>2008-06-27T02:21:41Z</timestamp>
      <contributor>
        <username>underscore</username>
        <id>145</id>
      </contributor>
      <comment>maemo.org logo contest entry from User:underscore</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User:underscore</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest underscore 3.png</title>
    <id>585</id>
    <revision>
      <id>2994</id>
      <timestamp>2008-06-27T02:23:20Z</timestamp>
      <contributor>
        <username>underscore</username>
        <id>145</id>
      </contributor>
      <comment>maemo.org logo contest entry from User:underscore</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User:underscore</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest underscore 4.png</title>
    <id>586</id>
    <revision>
      <id>2995</id>
      <timestamp>2008-06-27T02:23:51Z</timestamp>
      <contributor>
        <username>underscore</username>
        <id>145</id>
      </contributor>
      <comment>maemo.org logo contest entry from User:underscore</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User:underscore</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest underscore 5.png</title>
    <id>587</id>
    <revision>
      <id>2996</id>
      <timestamp>2008-06-27T02:24:08Z</timestamp>
      <contributor>
        <username>underscore</username>
        <id>145</id>
      </contributor>
      <comment>maemo.org logo contest entry from User:underscore</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User:underscore</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest underscore 6.png</title>
    <id>588</id>
    <revision>
      <id>2997</id>
      <timestamp>2008-06-27T02:25:19Z</timestamp>
      <contributor>
        <username>underscore</username>
        <id>145</id>
      </contributor>
      <comment>maemo.org logo contest entry from User:underscore</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User:underscore</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest underscore 7.png</title>
    <id>589</id>
    <revision>
      <id>3000</id>
      <timestamp>2008-06-27T02:53:10Z</timestamp>
      <contributor>
        <username>underscore</username>
        <id>145</id>
      </contributor>
      <comment>maemo.org logo contest entry from User:underscore</comment>
      <text xml:space="preserve">maemo.org logo contest entry from User:underscore</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest unique311 1.png</title>
    <id>863</id>
    <revision>
      <id>5101</id>
      <timestamp>2008-07-22T05:00:43Z</timestamp>
      <contributor>
        <username>unique311</username>
        <id>86</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:unique311]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:unique311]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest unique311 2.png</title>
    <id>864</id>
    <revision>
      <id>5102</id>
      <timestamp>2008-07-22T05:01:41Z</timestamp>
      <contributor>
        <username>unique311</username>
        <id>86</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:unique311]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:unique311]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest unique311 3.png</title>
    <id>865</id>
    <revision>
      <id>5103</id>
      <timestamp>2008-07-22T05:02:31Z</timestamp>
      <contributor>
        <username>unique311</username>
        <id>86</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:unique311]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:unique311]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest unique311 4.png</title>
    <id>866</id>
    <revision>
      <id>5104</id>
      <timestamp>2008-07-22T05:03:08Z</timestamp>
      <contributor>
        <username>unique311</username>
        <id>86</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:unique311]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:unique311]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest vdepizzol 1.png</title>
    <id>936</id>
    <revision>
      <id>5560</id>
      <timestamp>2008-07-26T02:58:37Z</timestamp>
      <contributor>
        <username>vdepizzol</username>
        <id>236</id>
      </contributor>
      <comment>maemo.org logo contest entry from user vdepizzol</comment>
      <text xml:space="preserve">maemo.org logo contest entry from user vdepizzol</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest wavek9 1.png</title>
    <id>855</id>
    <revision>
      <id>5080</id>
      <timestamp>2008-07-21T20:10:27Z</timestamp>
      <contributor>
        <username>wavek9</username>
        <id>184</id>
      </contributor>
      <comment>I used the O to emphasize open source and even did the lettering in O type lettering.</comment>
      <text xml:space="preserve">I used the O to emphasize open source and even did the lettering in O type lettering.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest wavek9 2.png</title>
    <id>856</id>
    <revision>
      <id>5081</id>
      <timestamp>2008-07-21T20:11:40Z</timestamp>
      <contributor>
        <username>wavek9</username>
        <id>184</id>
      </contributor>
      <comment>This is the same version as my first logo but simplified to just straight lettering.</comment>
      <text xml:space="preserve">This is the same version as my first logo but simplified to just straight lettering.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org samoff.png</title>
    <id>1401</id>
    <revision>
      <id>9435</id>
      <timestamp>2008-12-24T01:22:58Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Maemo.org redesign &quot;notes.&quot;</comment>
      <text xml:space="preserve">Maemo.org redesign &quot;notes.&quot;</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org theme desktop.png</title>
    <id>3621</id>
    <revision>
      <id>29932</id>
      <timestamp>2010-02-21T17:43:02Z</timestamp>
      <contributor>
        <username>torpedo48</username>
        <id>2090</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo3 Normal.png</title>
    <id>1634</id>
    <revision>
      <id>11074</id>
      <timestamp>2009-02-17T21:02:20Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo3 Over.png</title>
    <id>1628</id>
    <revision>
      <id>11068</id>
      <timestamp>2009-02-17T20:59:00Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo3 rollover.png</title>
    <id>1622</id>
    <revision>
      <id>11062</id>
      <timestamp>2009-02-17T20:54:56Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo4 Normal.png</title>
    <id>1633</id>
    <revision>
      <id>11073</id>
      <timestamp>2009-02-17T21:01:38Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo4 Over.png</title>
    <id>1627</id>
    <revision>
      <id>11067</id>
      <timestamp>2009-02-17T20:58:36Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo4 rollover.png</title>
    <id>1621</id>
    <revision>
      <id>11061</id>
      <timestamp>2009-02-17T20:54:35Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo5 Normal.png</title>
    <id>1632</id>
    <revision>
      <id>11072</id>
      <timestamp>2009-02-17T21:01:14Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo5 Over.png</title>
    <id>1626</id>
    <revision>
      <id>11066</id>
      <timestamp>2009-02-17T20:58:14Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo5 rollover.png</title>
    <id>1620</id>
    <revision>
      <id>11060</id>
      <timestamp>2009-02-17T20:54:13Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:MaemoArchitecture.jpg</title>
    <id>236</id>
    <revision>
      <id>1557</id>
      <timestamp>2008-06-13T08:27:32Z</timestamp>
      <contributor>
        <username>peterschneider</username>
        <id>29</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:MaemoArchitecture.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:MaemoArchitecture.png</title>
    <id>470</id>
    <revision>
      <id>2478</id>
      <timestamp>2008-06-23T11:00:00Z</timestamp>
      <contributor>
        <username>peterschneider</username>
        <id>29</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:MaemoBCN back white.png</title>
    <id>3058</id>
    <revision>
      <id>40949</id>
      <timestamp>2010-12-29T10:39:21Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize, link to SVG</comment>
      <text xml:space="preserve">SVG version is [[Image:MaemoBCN back white.svg]]

[[Category:Maemo-Barcelona Long Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>File:MaemoBCN back white.svg</title>
    <id>3055</id>
    <revision>
      <id>23178</id>
      <timestamp>2009-11-23T13:58:21Z</timestamp>
      <contributor>
        <username>anidel</username>
        <id>44</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:MaemoBCN back white.svg]]&quot;: Correct version</comment>
      <text xml:space="preserve">The logo for the back</text>
    </revision>
  </page>
  <page>
    <title>File:MaemoBCN front white.png</title>
    <id>3060</id>
    <revision>
      <id>41213</id>
      <timestamp>2011-01-20T14:01:28Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize, link to SVG version</comment>
      <text xml:space="preserve">SVG version: [[Image:MaemoBCN front white.svg]]

[[Category:Maemo-Barcelona Long Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>File:MaemoBCN front white.svg</title>
    <id>3056</id>
    <revision>
      <id>41215</id>
      <timestamp>2011-01-20T14:07:51Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize and link to PNG version</comment>
      <text xml:space="preserve">The logo for the front. PNG version: [[Image:MaemoBCN front white.png]]

[[Category:Maemo-Barcelona Long Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>File:MaemoBCN frontback blue.png</title>
    <id>3059</id>
    <revision>
      <id>41212</id>
      <timestamp>2011-01-20T14:00:18Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>blue, not white</comment>
      <text xml:space="preserve">SVG version: [[Image:MaemoBCN_frontback_blue.svg]]

[[Category:Maemo-Barcelona Long Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>File:MaemoBCN frontback blue.svg</title>
    <id>3057</id>
    <revision>
      <id>41214</id>
      <timestamp>2011-01-20T14:02:41Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize and link to PNG version</comment>
      <text xml:space="preserve">The look with the blue. PNG version: [[Image:MaemoBCN_frontback_blue.png]]

[[Category:Maemo-Barcelona Long Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>File:MaemoFuse.png</title>
    <id>2452</id>
    <revision>
      <id>18473</id>
      <timestamp>2009-09-21T20:05:45Z</timestamp>
      <contributor>
        <username>renatofilho</username>
        <id>1197</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:MaemoLibniz.png</title>
    <id>2449</id>
    <revision>
      <id>18470</id>
      <timestamp>2009-09-21T20:03:07Z</timestamp>
      <contributor>
        <username>renatofilho</username>
        <id>1197</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:MaemoLocaties90x180cmAll.pdf</title>
    <id>2511</id>
    <revision>
      <id>19028</id>
      <timestamp>2009-10-01T04:07:54Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Samples of the Maemo Summit signals</comment>
      <text xml:space="preserve">Samples of the Maemo Summit signals</text>
    </revision>
  </page>
  <page>
    <title>File:MaemoMapperView.png</title>
    <id>2346</id>
    <revision>
      <id>16981</id>
      <timestamp>2009-08-26T17:40:21Z</timestamp>
      <contributor>
        <username>mve</username>
        <id>109</id>
      </contributor>
      <comment>Maemo Mapper map view</comment>
      <text xml:space="preserve">Maemo Mapper map view</text>
    </revision>
  </page>
  <page>
    <title>File:MaemoMirage.png</title>
    <id>2451</id>
    <revision>
      <id>18472</id>
      <timestamp>2009-09-21T20:04:54Z</timestamp>
      <contributor>
        <username>renatofilho</username>
        <id>1197</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:MaemoQtOnGit-Diagram-opt2.jpg</title>
    <id>2064</id>
    <revision>
      <id>14797</id>
      <timestamp>2009-06-29T01:06:12Z</timestamp>
      <contributor>
        <username>kimitake</username>
        <id>226</id>
      </contributor>
      <comment>Maemo Qt on Gitorious</comment>
      <text xml:space="preserve">Maemo Qt on Gitorious</text>
    </revision>
  </page>
  <page>
    <title>File:MaemoSummit091908.jpg</title>
    <id>1206</id>
    <revision>
      <id>7344</id>
      <timestamp>2008-09-19T11:17:28Z</timestamp>
      <contributor>
        <username>cven</username>
        <id>234</id>
      </contributor>
      <comment>maemo.org summit at c-base and E.T.I 19 sept. 2008</comment>
      <text xml:space="preserve">maemo.org summit at c-base and E.T.I 19 sept. 2008</text>
    </revision>
  </page>
  <page>
    <title>File:MaemoSummit catering.jpg</title>
    <id>1207</id>
    <revision>
      <id>7346</id>
      <timestamp>2008-09-19T11:19:46Z</timestamp>
      <contributor>
        <username>cven</username>
        <id>234</id>
      </contributor>
      <comment>FingerFood is ready</comment>
      <text xml:space="preserve">FingerFood is ready</text>
    </revision>
  </page>
  <page>
    <title>File:MaemoSummit catering day2.jpg</title>
    <id>1213</id>
    <revision>
      <id>7380</id>
      <timestamp>2008-09-20T11:04:05Z</timestamp>
      <contributor>
        <username>cven</username>
        <id>234</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:MaemoSummit template.odp</title>
    <id>2543</id>
    <revision>
      <id>19302</id>
      <timestamp>2009-10-05T17:59:00Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:MaemoSummit template.odp]]&quot;: Reverted to version as of 14:43, 2 October 2009</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:MaemoWordPy.png</title>
    <id>2448</id>
    <revision>
      <id>18469</id>
      <timestamp>2009-09-21T20:01:58Z</timestamp>
      <contributor>
        <username>renatofilho</username>
        <id>1197</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo 5 GUI 0 9-thumbnail.png</title>
    <id>2423</id>
    <revision>
      <id>18151</id>
      <timestamp>2009-09-14T14:51:09Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo Logo black.png</title>
    <id>263</id>
    <revision>
      <id>1745</id>
      <timestamp>2008-06-16T11:27:41Z</timestamp>
      <contributor>
        <username>peterschneider</username>
        <id>29</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo Summit 2009 - Juha Jarvi - Foreca.pdf</title>
    <id>2784</id>
    <revision>
      <id>20629</id>
      <timestamp>2009-10-20T10:18:36Z</timestamp>
      <contributor>
        <username>jjrv</username>
        <id>1236</id>
      </contributor>
      <comment>Slides for the Maemo Summit 2009 presentation &quot;Developing widgets on Maemo 5&quot; by Juha Järvi from Foreca Ltd.</comment>
      <text xml:space="preserve">Slides for the Maemo Summit 2009 presentation &quot;Developing widgets on Maemo 5&quot; by Juha Järvi from Foreca Ltd.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo Summit Community Council Presentation.pdf</title>
    <id>1217</id>
    <revision>
      <id>7413</id>
      <timestamp>2008-09-24T18:59:43Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Maemo Community Council presentation used at Maemo Summit 2008</comment>
      <text xml:space="preserve">Maemo Community Council presentation used at Maemo Summit 2008</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo contact icon.png</title>
    <id>27</id>
    <revision>
      <id>51</id>
      <timestamp>2008-05-23T12:46:22Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo logo.pdf</title>
    <id>1288</id>
    <revision>
      <id>7971</id>
      <timestamp>2008-10-27T20:09:20Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>The final version of the maemo.org logo in .pdf . It`s an editable .pdf format</comment>
      <text xml:space="preserve">The final version of the maemo.org logo in .pdf . It`s an editable .pdf format</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo org logo.png</title>
    <id>1090</id>
    <revision>
      <id>39020</id>
      <timestamp>2010-09-22T13:39:04Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">New Maemo.org logo

[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo org logo colour.png</title>
    <id>1073</id>
    <revision>
      <id>6256</id>
      <timestamp>2008-08-05T10:30:44Z</timestamp>
      <contributor>
        <username>peterschneider</username>
        <id>29</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo org logo contest chrismtn 001.png</title>
    <id>380</id>
    <revision>
      <id>2132</id>
      <timestamp>2008-06-20T16:31:36Z</timestamp>
      <contributor>
        <username>chrismtn</username>
        <id>106</id>
      </contributor>
      <comment>maemo.org logo contest entry from [[User:&lt;chrismtn&gt;]]</comment>
      <text xml:space="preserve">maemo.org logo contest entry from [[User:&lt;chrismtn&gt;]]</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo org logo contest narbat 11.png</title>
    <id>381</id>
    <revision>
      <id>2148</id>
      <timestamp>2008-06-20T19:47:24Z</timestamp>
      <contributor>
        <username>narbat</username>
        <id>102</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo org logo contest narbat 11v.png</title>
    <id>382</id>
    <revision>
      <id>2149</id>
      <timestamp>2008-06-20T19:47:44Z</timestamp>
      <contributor>
        <username>narbat</username>
        <id>102</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo org logo contest narbat 12.png</title>
    <id>383</id>
    <revision>
      <id>2150</id>
      <timestamp>2008-06-20T19:48:31Z</timestamp>
      <contributor>
        <username>narbat</username>
        <id>102</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo org logo contest narbat 12v.png</title>
    <id>384</id>
    <revision>
      <id>2151</id>
      <timestamp>2008-06-20T19:48:51Z</timestamp>
      <contributor>
        <username>narbat</username>
        <id>102</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo org logo contest narbat 13.png</title>
    <id>385</id>
    <revision>
      <id>2152</id>
      <timestamp>2008-06-20T19:49:12Z</timestamp>
      <contributor>
        <username>narbat</username>
        <id>102</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo org logo contest narbat 13v.png</title>
    <id>386</id>
    <revision>
      <id>2154</id>
      <timestamp>2008-06-20T19:49:45Z</timestamp>
      <contributor>
        <username>narbat</username>
        <id>102</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo org logo contest narbat 14.png</title>
    <id>387</id>
    <revision>
      <id>2155</id>
      <timestamp>2008-06-20T19:50:01Z</timestamp>
      <contributor>
        <username>narbat</username>
        <id>102</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo org logo contest narbat 14v.png</title>
    <id>388</id>
    <revision>
      <id>2156</id>
      <timestamp>2008-06-20T19:50:26Z</timestamp>
      <contributor>
        <username>narbat</username>
        <id>102</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo org logo contest narbat 15.png</title>
    <id>389</id>
    <revision>
      <id>2158</id>
      <timestamp>2008-06-20T19:50:41Z</timestamp>
      <contributor>
        <username>narbat</username>
        <id>102</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo org logo contest narbat 15v.png</title>
    <id>390</id>
    <revision>
      <id>2159</id>
      <timestamp>2008-06-20T19:51:00Z</timestamp>
      <contributor>
        <username>narbat</username>
        <id>102</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo overview.png</title>
    <id>472</id>
    <revision>
      <id>2483</id>
      <timestamp>2008-06-23T11:36:59Z</timestamp>
      <contributor>
        <username>peterschneider</username>
        <id>29</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemo stickers.pdf</title>
    <id>2435</id>
    <revision>
      <id>18313</id>
      <timestamp>2009-09-18T09:50:26Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>maemo.org stickers</comment>
      <text xml:space="preserve">maemo.org stickers</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo xterm icon-fade.png</title>
    <id>34</id>
    <revision>
      <id>63</id>
      <timestamp>2008-05-23T13:42:14Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>Maemo developer icon, faded to 32%</comment>
      <text xml:space="preserve">Maemo developer icon, faded to 32%</text>
    </revision>
  </page>
  <page>
    <title>File:MaemologoOrange.jpg</title>
    <id>1059</id>
    <revision>
      <id>6047</id>
      <timestamp>2008-07-31T04:02:25Z</timestamp>
      <contributor>
        <username>thiercito</username>
        <id>85</id>
      </contributor>
      <comment>Maemo in Orange</comment>
      <text xml:space="preserve">Maemo in Orange</text>
    </revision>
  </page>
  <page>
    <title>File:Maemoorg-home-proposal-3.jpg</title>
    <id>1261</id>
    <revision>
      <id>7671</id>
      <timestamp>2008-10-07T08:18:42Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>My third (and last?) proposal for the maemo.org homepage</comment>
      <text xml:space="preserve">My third (and last?) proposal for the maemo.org homepage</text>
    </revision>
  </page>
  <page>
    <title>File:Maemopad.png</title>
    <id>2350</id>
    <revision>
      <id>17028</id>
      <timestamp>2009-08-28T13:06:20Z</timestamp>
      <contributor>
        <username>esa</username>
        <id>1074</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemopad2.png</title>
    <id>2928</id>
    <revision>
      <id>21874</id>
      <timestamp>2009-11-05T13:18:34Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemopad menu.png</title>
    <id>2351</id>
    <revision>
      <id>17029</id>
      <timestamp>2009-08-28T13:09:42Z</timestamp>
      <contributor>
        <username>esa</username>
        <id>1074</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maemoz pic0001.jpg</title>
    <id>1941</id>
    <revision>
      <id>13811</id>
      <timestamp>2009-05-30T12:12:13Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maeom ico.png</title>
    <id>988</id>
    <revision>
      <id>5674</id>
      <timestamp>2008-07-27T00:43:43Z</timestamp>
      <contributor>
        <username>navneet</username>
        <id>243</id>
      </contributor>
      <comment>Favicon: Again 'M' with open doors represents open for everyone  and 'O' represents the open source and same time together it looks like a human face.
Thanks for  looking</comment>
      <text xml:space="preserve">Favicon: Again 'M' with open doors represents open for everyone  and 'O' represents the open source and same time together it looks like a human face.
Thanks for  looking</text>
    </revision>
  </page>
  <page>
    <title>File:Maeom ico bw.png</title>
    <id>989</id>
    <revision>
      <id>5688</id>
      <timestamp>2008-07-27T01:50:18Z</timestamp>
      <contributor>
        <username>navneet</username>
        <id>243</id>
      </contributor>
      <comment>In different colours</comment>
      <text xml:space="preserve">In different colours</text>
    </revision>
  </page>
  <page>
    <title>File:Maesum09 banner baloo.png</title>
    <id>2248</id>
    <revision>
      <id>16196</id>
      <timestamp>2009-08-05T10:53:41Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maesum09 banner tim.png</title>
    <id>2249</id>
    <revision>
      <id>16197</id>
      <timestamp>2009-08-05T10:59:41Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maesum09 banner wazd.png</title>
    <id>2250</id>
    <revision>
      <id>16200</id>
      <timestamp>2009-08-05T11:14:29Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Main-view-mockup.png</title>
    <id>1305</id>
    <revision>
      <id>8153</id>
      <timestamp>2008-10-30T10:50:16Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>Mockup of a proposal for the Application Manager's main view</comment>
      <text xml:space="preserve">Mockup of a proposal for the Application Manager's main view</text>
    </revision>
  </page>
  <page>
    <title>File:Main.png</title>
    <id>5253</id>
    <revision>
      <id>49815</id>
      <timestamp>2012-09-22T20:09:04Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <comment>Wazapp main screen</comment>
      <text xml:space="preserve">Wazapp main screen</text>
    </revision>
  </page>
  <page>
    <title>File:MainView.png</title>
    <id>2339</id>
    <revision>
      <id>16974</id>
      <timestamp>2009-08-26T17:33:07Z</timestamp>
      <contributor>
        <username>mve</username>
        <id>109</id>
      </contributor>
      <comment>GPXView Main screen</comment>
      <text xml:space="preserve">GPXView Main screen</text>
    </revision>
  </page>
  <page>
    <title>File:Make-mod1.png</title>
    <id>2299</id>
    <revision>
      <id>16725</id>
      <timestamp>2009-08-20T13:20:31Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Make-mod2.png</title>
    <id>2300</id>
    <revision>
      <id>16726</id>
      <timestamp>2009-08-20T13:20:45Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Make.png</title>
    <id>2298</id>
    <revision>
      <id>16724</id>
      <timestamp>2009-08-20T13:19:21Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Maqii stars.png</title>
    <id>1502</id>
    <revision>
      <id>10171</id>
      <timestamp>2009-01-23T16:08:49Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Marina theme appmanager.png</title>
    <id>3620</id>
    <revision>
      <id>29928</id>
      <timestamp>2010-02-21T17:31:14Z</timestamp>
      <contributor>
        <username>torpedo48</username>
        <id>2090</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Matrix theme multimedia.png</title>
    <id>3622</id>
    <revision>
      <id>29934</id>
      <timestamp>2010-02-21T17:49:10Z</timestamp>
      <contributor>
        <username>torpedo48</username>
        <id>2090</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mcc-Graham Cobb.jpg</title>
    <id>2496</id>
    <revision>
      <id>31882</id>
      <timestamp>2010-04-02T16:26:01Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mcc-Graham Cobb.jpg]]&quot;: Square off the photographic so that it displays consistently.</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mcc-Matthew Lewis.png</title>
    <id>2498</id>
    <revision>
      <id>18959</id>
      <timestamp>2009-09-29T21:40:00Z</timestamp>
      <contributor>
        <username>penguinbait</username>
        <id>891</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mcc-Matthew Lewis.png]]&quot;</comment>
      <text xml:space="preserve">Matthew Lewis AKA penguinbait</text>
    </revision>
  </page>
  <page>
    <title>File:Mcc-Valerio valerio.png</title>
    <id>2497</id>
    <revision>
      <id>18954</id>
      <timestamp>2009-09-29T21:15:10Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mcc-alan bruce.png</title>
    <id>1732</id>
    <revision>
      <id>12036</id>
      <timestamp>2009-03-23T18:44:38Z</timestamp>
      <contributor>
        <username>qole</username>
        <id>57</id>
      </contributor>
      <comment>Qole's &quot;manditory&quot; Maemo Community Council photo. 
For some reason, this is the photo that everyone thinks of when they think of me. The straw hat seems to be important.</comment>
      <text xml:space="preserve">Qole's &quot;manditory&quot; Maemo Community Council photo. 
For some reason, this is the photo that everyone thinks of when they think of me. The straw hat seems to be important.</text>
    </revision>
  </page>
  <page>
    <title>File:Mcc-andrew flegg.jpg</title>
    <id>1219</id>
    <revision>
      <id>36686</id>
      <timestamp>2010-07-12T17:11:01Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mcc-andrew flegg.jpg]]&quot;: Testing #9833 fix by reuploading the intended image.</comment>
      <text xml:space="preserve">Community Council photo: Andrew Flegg</text>
    </revision>
  </page>
  <page>
    <title>File:Mcc-atilla csipa.jpg</title>
    <id>3828</id>
    <revision>
      <id>42756</id>
      <timestamp>2011-03-21T14:12:30Z</timestamp>
      <contributor>
        <username>achipa</username>
        <id>954</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mcc-atilla csipa.jpg]]&quot;</comment>
      <text xml:space="preserve">Placeholder for achipa's photo</text>
    </revision>
  </page>
  <page>
    <title>File:Mcc-attila csipa-square.png</title>
    <id>5138</id>
    <revision>
      <id>47187</id>
      <timestamp>2012-04-09T01:55:18Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>Squaring off Attila's picture to better fit [[Community Council]].</comment>
      <text xml:space="preserve">Squaring off Attila's picture to better fit [[Community Council]].</text>
    </revision>
  </page>
  <page>
    <title>File:Mcc-avatar.png</title>
    <id>3814</id>
    <revision>
      <id>31880</id>
      <timestamp>2010-04-02T16:12:43Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>Avatar used by the CommunityCouncil account on talk.maemo.org</comment>
      <text xml:space="preserve">Avatar used by the CommunityCouncil account on talk.maemo.org</text>
    </revision>
  </page>
  <page>
    <title>File:Mcc-eduardo lima.jpg</title>
    <id>1220</id>
    <revision>
      <id>7417</id>
      <timestamp>2008-09-24T19:11:53Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Community Cuoncil photo: Eduardo Lima</comment>
      <text xml:space="preserve">Community Cuoncil photo: Eduardo Lima</text>
    </revision>
  </page>
  <page>
    <title>File:Mcc-javispedro.jpeg</title>
    <id>3816</id>
    <revision>
      <id>31896</id>
      <timestamp>2010-04-02T22:30:17Z</timestamp>
      <contributor>
        <username>javispedro</username>
        <id>1087</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mcc-kees jongenburger.jpg</title>
    <id>1729</id>
    <revision>
      <id>12013</id>
      <timestamp>2009-03-22T21:58:03Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mcc-ryan abel.jpg</title>
    <id>1218</id>
    <revision>
      <id>7415</id>
      <timestamp>2008-09-24T19:09:04Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Community Council photo: Ryan Abel</comment>
      <text xml:space="preserve">Community Council photo: Ryan Abel</text>
    </revision>
  </page>
  <page>
    <title>File:Mcc-simon pickering.jpg</title>
    <id>1221</id>
    <revision>
      <id>7418</id>
      <timestamp>2008-09-24T19:12:41Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Community Council photo: Simon Pickering</comment>
      <text xml:space="preserve">Community Council photo: Simon Pickering</text>
    </revision>
  </page>
  <page>
    <title>File:Mcc-tim samoff.jpg</title>
    <id>1222</id>
    <revision>
      <id>7419</id>
      <timestamp>2008-09-24T19:13:30Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Community Council photo: Tim Samoff</comment>
      <text xml:space="preserve">Community Council photo: Tim Samoff</text>
    </revision>
  </page>
  <page>
    <title>File:Mcc-woody14619.png</title>
    <id>5171</id>
    <revision>
      <id>47554</id>
      <timestamp>2012-05-24T17:54:51Z</timestamp>
      <contributor>
        <username>woody14619</username>
        <id>1579</id>
      </contributor>
      <comment>Image of Craig Woodward (Woody14619) - Maemo Community Council</comment>
      <text xml:space="preserve">Image of Craig Woodward (Woody14619) - Maemo Community Council</text>
    </revision>
  </page>
  <page>
    <title>File:Mcc2009 pic0001.jpg</title>
    <id>2805</id>
    <revision>
      <id>20768</id>
      <timestamp>2009-10-22T04:41:32Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Photo by Isko Salminen.</comment>
      <text xml:space="preserve">Photo by Isko Salminen.</text>
    </revision>
  </page>
  <page>
    <title>File:Mcc2009 pic0002.jpg</title>
    <id>2806</id>
    <revision>
      <id>20770</id>
      <timestamp>2009-10-22T04:46:25Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Photo by Isko Salminen.</comment>
      <text xml:space="preserve">Photo by Isko Salminen.</text>
    </revision>
  </page>
  <page>
    <title>File:Mcc movie still 0001.jpg</title>
    <id>2809</id>
    <revision>
      <id>20774</id>
      <timestamp>2009-10-22T05:04:13Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mdc.png</title>
    <id>3612</id>
    <revision>
      <id>29675</id>
      <timestamp>2010-02-17T14:25:24Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Meamo black.png</title>
    <id>994</id>
    <revision>
      <id>5704</id>
      <timestamp>2008-07-27T02:35:05Z</timestamp>
      <contributor>
        <username>navneet</username>
        <id>243</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Meamo black.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Meamo blue.png</title>
    <id>992</id>
    <revision>
      <id>5691</id>
      <timestamp>2008-07-27T02:00:44Z</timestamp>
      <contributor>
        <username>navneet</username>
        <id>243</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Meamo final.png</title>
    <id>986</id>
    <revision>
      <id>5702</id>
      <timestamp>2008-07-27T02:28:57Z</timestamp>
      <contributor>
        <username>navneet</username>
        <id>243</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Meamo final.png]]&quot;</comment>
      <text xml:space="preserve">Maemo: Open doors and open source, that's what i feel and also it is a serious tool which gave me the opportunity  to update by websites remotely.Orange dots on the period  before the (.org) look like a wireless signal and a human face at same time.</text>
    </revision>
  </page>
  <page>
    <title>File:Meamo reverse.png</title>
    <id>987</id>
    <revision>
      <id>5703</id>
      <timestamp>2008-07-27T02:31:41Z</timestamp>
      <contributor>
        <username>navneet</username>
        <id>243</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Meamo reverse.png]]&quot;</comment>
      <text xml:space="preserve">same  logo on the black background</text>
    </revision>
  </page>
  <page>
    <title>File:Media Purge.png</title>
    <id>4847</id>
    <revision>
      <id>43239</id>
      <timestamp>2011-04-26T16:15:00Z</timestamp>
      <contributor>
        <username>arrancamos</username>
        <id>4232</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Media Purge.png]]&quot;: This is the first preview of my GUI, the layout is a working one, simulated on Maemo, Symbian^1,^3,Touch,NonTouch :)... not bad for a newbie eh!</comment>
      <text xml:space="preserve">This is the first preview of my GUI, the layout is a working one, simulated on Maemo, Symbian^1,^3,Touch,NonTouch :)... not bad for a newbie eh!</text>
    </revision>
  </page>
  <page>
    <title>File:Mediaplayer.png</title>
    <id>2611</id>
    <revision>
      <id>19414</id>
      <timestamp>2009-10-06T09:07:11Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer-Wazd-Background-1900x1200.jpg</title>
    <id>1711</id>
    <revision>
      <id>14071</id>
      <timestamp>2009-06-09T21:25:38Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mer-Wazd-Background-1900x1200.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer-badges.jpeg</title>
    <id>2040</id>
    <revision>
      <id>14658</id>
      <timestamp>2009-06-24T18:54:20Z</timestamp>
      <contributor>
        <username>matthewcraig</username>
        <id>753</id>
      </contributor>
      <comment>Mer Project Case Badges.</comment>
      <text xml:space="preserve">Mer Project Case Badges.</text>
    </revision>
  </page>
  <page>
    <title>File:Mer-button-about.png</title>
    <id>1504</id>
    <revision>
      <id>10180</id>
      <timestamp>2009-01-23T17:06:33Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer-button-development.png</title>
    <id>1485</id>
    <revision>
      <id>10181</id>
      <timestamp>2009-01-23T17:06:51Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mer-button-development.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer-button-download.png</title>
    <id>1484</id>
    <revision>
      <id>10182</id>
      <timestamp>2009-01-23T17:07:04Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mer-button-download.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer-button-people.png</title>
    <id>1505</id>
    <revision>
      <id>10183</id>
      <timestamp>2009-01-23T17:07:15Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer-faded-background.png</title>
    <id>1497</id>
    <revision>
      <id>10178</id>
      <timestamp>2009-01-23T16:53:51Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mer-faded-background.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer-lbt-BigLogo.png</title>
    <id>1898</id>
    <revision>
      <id>13531</id>
      <timestamp>2009-05-21T16:12:18Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>Large background and logo to show it off</comment>
      <text xml:space="preserve">Large background and logo to show it off</text>
    </revision>
  </page>
  <page>
    <title>File:Mer-lbt-Slide-bg-800-600.png</title>
    <id>1900</id>
    <revision>
      <id>13534</id>
      <timestamp>2009-05-21T18:44:36Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer-lbt-Slide-bg.png</title>
    <id>1899</id>
    <revision>
      <id>13532</id>
      <timestamp>2009-05-21T17:18:36Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer-lbt-gitk-glib.png</title>
    <id>2005</id>
    <revision>
      <id>14351</id>
      <timestamp>2009-06-17T15:19:05Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>Snapshot of git merge of glib</comment>
      <text xml:space="preserve">Snapshot of git merge of glib</text>
    </revision>
  </page>
  <page>
    <title>File:Mer-lbt-gitk-him.png</title>
    <id>2008</id>
    <revision>
      <id>14380</id>
      <timestamp>2009-06-17T19:27:10Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer-lbt-logo.svg</title>
    <id>1897</id>
    <revision>
      <id>13529</id>
      <timestamp>2009-05-21T15:49:12Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mer-lbt-logo.svg]]&quot;</comment>
      <text xml:space="preserve">Manual trace of Mer logo</text>
    </revision>
  </page>
  <page>
    <title>File:Mer-logo.png</title>
    <id>1478</id>
    <revision>
      <id>10055</id>
      <timestamp>2009-01-22T09:05:22Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>wazd's mer logo in button-form</comment>
      <text xml:space="preserve">wazd's mer logo in button-form</text>
    </revision>
  </page>
  <page>
    <title>File:Mer-wazd logo-1920x1200.jpg</title>
    <id>1713</id>
    <revision>
      <id>11952</id>
      <timestamp>2009-03-20T14:07:37Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer0.11 AM.png</title>
    <id>1757</id>
    <revision>
      <id>12290</id>
      <timestamp>2009-04-05T11:02:23Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer0.11 AdvancedBacklight.png</title>
    <id>1755</id>
    <revision>
      <id>12288</id>
      <timestamp>2009-04-05T11:01:29Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer0.11 Blueman3.png</title>
    <id>1807</id>
    <revision>
      <id>12859</id>
      <timestamp>2009-04-27T08:35:16Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer0.11 Filechooser.png</title>
    <id>1758</id>
    <revision>
      <id>12291</id>
      <timestamp>2009-04-05T11:02:50Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer0.11 HAM.png</title>
    <id>1756</id>
    <revision>
      <id>12289</id>
      <timestamp>2009-04-05T11:02:00Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer0.11 Maemopad.png</title>
    <id>1760</id>
    <revision>
      <id>12293</id>
      <timestamp>2009-04-05T11:03:23Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer0.11 Mirage.png</title>
    <id>1759</id>
    <revision>
      <id>12292</id>
      <timestamp>2009-04-05T11:03:06Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer0.11 NetworkManager.png</title>
    <id>1752</id>
    <revision>
      <id>12285</id>
      <timestamp>2009-04-05T10:59:55Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer0.11 Notifications.png</title>
    <id>1753</id>
    <revision>
      <id>12286</id>
      <timestamp>2009-04-05T11:00:31Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer0.11 Xterm.png</title>
    <id>1754</id>
    <revision>
      <id>12287</id>
      <timestamp>2009-04-05T11:01:02Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer0.11 homeip.png</title>
    <id>1761</id>
    <revision>
      <id>12294</id>
      <timestamp>2009-04-05T11:03:55Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer0.12 Blueman7.png</title>
    <id>1808</id>
    <revision>
      <id>12860</id>
      <timestamp>2009-04-27T08:36:11Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer0.12 ShopperQt.png</title>
    <id>1843</id>
    <revision>
      <id>13127</id>
      <timestamp>2009-05-07T19:23:48Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer0.14 claws.png</title>
    <id>1994</id>
    <revision>
      <id>14256</id>
      <timestamp>2009-06-15T08:21:13Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer0.14 him arabic.png</title>
    <id>1993</id>
    <revision>
      <id>14255</id>
      <timestamp>2009-06-15T08:19:00Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:MerVendorRepositories binaries.png</title>
    <id>2013</id>
    <revision>
      <id>14449</id>
      <timestamp>2009-06-18T13:47:30Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer Incompatible Bootmenu Shark.jpg</title>
    <id>1723</id>
    <revision>
      <id>11968</id>
      <timestamp>2009-03-20T14:25:01Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer Incompatible Bootmenu Shark Brighter.jpg</title>
    <id>1724</id>
    <revision>
      <id>11970</id>
      <timestamp>2009-03-20T14:26:55Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer Logo 178x198.png</title>
    <id>1722</id>
    <revision>
      <id>11966</id>
      <timestamp>2009-03-20T14:21:16Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer Theme Outline.jpg</title>
    <id>1726</id>
    <revision>
      <id>11973</id>
      <timestamp>2009-03-20T14:32:42Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer Wazd ActuallyClose Button.png</title>
    <id>1708</id>
    <revision>
      <id>11938</id>
      <timestamp>2009-03-20T13:51:03Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer Wazd Application Menu.png</title>
    <id>1706</id>
    <revision>
      <id>11936</id>
      <timestamp>2009-03-20T13:39:54Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <comment>Artwork by Wazd, Application Menu, 64x64px scalable.</comment>
      <text xml:space="preserve">Artwork by Wazd, Application Menu, 64x64px scalable.</text>
    </revision>
  </page>
  <page>
    <title>File:Mer Wazd Logo And SeaStuff.jpg</title>
    <id>1719</id>
    <revision>
      <id>11960</id>
      <timestamp>2009-03-20T14:15:05Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer Wazd Logo And SeaStuff Brighter.jpg</title>
    <id>1720</id>
    <revision>
      <id>11961</id>
      <timestamp>2009-03-20T14:16:15Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer Wazd Logo Seastuff 1920x1200.jpg</title>
    <id>1721</id>
    <revision>
      <id>11964</id>
      <timestamp>2009-03-20T14:17:37Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer Wazd MagicX.png</title>
    <id>1709</id>
    <revision>
      <id>11939</id>
      <timestamp>2009-03-20T13:52:16Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer Wazd Mer Icon.png</title>
    <id>1710</id>
    <revision>
      <id>11942</id>
      <timestamp>2009-03-20T13:53:51Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer Wazd RescueMenu Console 800x480.jpg</title>
    <id>1715</id>
    <revision>
      <id>11955</id>
      <timestamp>2009-03-20T14:12:29Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer Wazd RescueMenu GSerial 800x480.jpg</title>
    <id>1716</id>
    <revision>
      <id>11957</id>
      <timestamp>2009-03-20T14:13:23Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer Wazd RescueMenu Reboot 800x480.jpg</title>
    <id>1717</id>
    <revision>
      <id>11958</id>
      <timestamp>2009-03-20T14:13:33Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer Wazd RescueMenu StartMerNormally 800x480.jpg</title>
    <id>1714</id>
    <revision>
      <id>11954</id>
      <timestamp>2009-03-20T14:11:28Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer Wazd RescueMenu USBnet 800x480.jpg</title>
    <id>1718</id>
    <revision>
      <id>11959</id>
      <timestamp>2009-03-20T14:13:49Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer Wazd Wallpaper Nokian Ship.jpg</title>
    <id>1725</id>
    <revision>
      <id>11971</id>
      <timestamp>2009-03-20T14:31:03Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer Wazd Wallpaper With Logo 800x480.jpg</title>
    <id>1712</id>
    <revision>
      <id>11948</id>
      <timestamp>2009-03-20T14:04:35Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer infobox icon.png</title>
    <id>4622</id>
    <revision>
      <id>40943</id>
      <timestamp>2010-12-29T08:59:59Z</timestamp>
      <contributor>
        <username>kittykat</username>
        <id>3784</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer logo svg.svg</title>
    <id>1969</id>
    <revision>
      <id>14067</id>
      <timestamp>2009-06-09T21:00:10Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mer logo svg.svg]]&quot;: Mer vector .svg logo. Use it for your presentations'n'stuff.</comment>
      <text xml:space="preserve">Mer white .svg logo. Use this one for all your possible stuff :)</text>
    </revision>
  </page>
  <page>
    <title>File:Mer logo test.jpg</title>
    <id>1970</id>
    <revision>
      <id>14069</id>
      <timestamp>2009-06-09T21:22:05Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer wazd test act.jpg</title>
    <id>1537</id>
    <revision>
      <id>10437</id>
      <timestamp>2009-01-27T16:02:42Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mer wazd test act.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer wazd test background.jpg</title>
    <id>1524</id>
    <revision>
      <id>10332</id>
      <timestamp>2009-01-26T22:59:37Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer wazd test btn com-.jpg</title>
    <id>1531</id>
    <revision>
      <id>10388</id>
      <timestamp>2009-01-27T08:12:17Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer wazd test btn com 1.jpg</title>
    <id>1539</id>
    <revision>
      <id>10449</id>
      <timestamp>2009-01-27T16:46:33Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer wazd test btn dev.jpg</title>
    <id>1532</id>
    <revision>
      <id>10389</id>
      <timestamp>2009-01-27T08:17:47Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer wazd test btn dwn.jpg</title>
    <id>1533</id>
    <revision>
      <id>10390</id>
      <timestamp>2009-01-27T08:19:04Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer wazd test btn ov.jpg</title>
    <id>1530</id>
    <revision>
      <id>10387</id>
      <timestamp>2009-01-27T08:10:20Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer wazd test corner bl.png</title>
    <id>1528</id>
    <revision>
      <id>10428</id>
      <timestamp>2009-01-27T15:31:00Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mer wazd test corner bl.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer wazd test corner bl2.png</title>
    <id>1535</id>
    <revision>
      <id>10429</id>
      <timestamp>2009-01-27T15:31:37Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer wazd test corner br.png</title>
    <id>1529</id>
    <revision>
      <id>10418</id>
      <timestamp>2009-01-27T15:07:33Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mer wazd test corner br.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer wazd test corner tl.png</title>
    <id>1526</id>
    <revision>
      <id>10419</id>
      <timestamp>2009-01-27T15:07:50Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mer wazd test corner tl.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer wazd test corner tr.png</title>
    <id>1527</id>
    <revision>
      <id>10420</id>
      <timestamp>2009-01-27T15:08:02Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mer wazd test corner tr.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer wazd test goals.jpg</title>
    <id>1536</id>
    <revision>
      <id>10439</id>
      <timestamp>2009-01-27T16:04:31Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mer wazd test goals.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer wazd test header.jpg</title>
    <id>1525</id>
    <revision>
      <id>10405</id>
      <timestamp>2009-01-27T12:44:06Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mer wazd test header.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer wazd test involv.jpg</title>
    <id>1540</id>
    <revision>
      <id>10450</id>
      <timestamp>2009-01-27T16:48:26Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer wazd test partic.jpg</title>
    <id>1541</id>
    <revision>
      <id>10451</id>
      <timestamp>2009-01-27T16:50:09Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer workflow-option2.svg</title>
    <id>1981</id>
    <revision>
      <id>14187</id>
      <timestamp>2009-06-12T15:01:12Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mer workflow-option2.svg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer workflow.png</title>
    <id>1979</id>
    <revision>
      <id>14438</id>
      <timestamp>2009-06-18T11:53:40Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mer workflow.png]]&quot;</comment>
      <text xml:space="preserve">png version</text>
    </revision>
  </page>
  <page>
    <title>File:Mer workflow.svg</title>
    <id>1978</id>
    <revision>
      <id>14142</id>
      <timestamp>2009-06-11T22:10:33Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mer workflow.svg]]&quot;</comment>
      <text xml:space="preserve">Based on madduck's DVCS packaging
* upstream is a cleaned upstream (ie no debian/ ... but pristine-tar handles tracking that)
* each mer/* branch is a debian/patches/* quilt patch that is a 'feature'
* each patch/* branch is intended to go upstream (maybe bug fixes)
* commits on master should only be in debian/* and should be pure packaging</text>
    </revision>
  </page>
  <page>
    <title>File:Mer workflow init.png</title>
    <id>2011</id>
    <revision>
      <id>14439</id>
      <timestamp>2009-06-18T11:54:17Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer workflow maint.png</title>
    <id>1990</id>
    <revision>
      <id>14442</id>
      <timestamp>2009-06-18T11:54:43Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mer workflow maint.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mer workflow upstream.png</title>
    <id>2012</id>
    <revision>
      <id>14440</id>
      <timestamp>2009-06-18T11:54:31Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Meta home1.png</title>
    <id>2718</id>
    <revision>
      <id>20085</id>
      <timestamp>2009-10-14T13:24:04Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Metadata decomposition.png</title>
    <id>2622</id>
    <revision>
      <id>19433</id>
      <timestamp>2009-10-06T09:46:18Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Miniatura-playgameh.png</title>
    <id>2892</id>
    <revision>
      <id>21575</id>
      <timestamp>2009-11-01T21:04:31Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Mockup of Miniatura playing a game in horizontal mode.</comment>
      <text xml:space="preserve">Mockup of Miniatura playing a game in horizontal mode.</text>
    </revision>
  </page>
  <page>
    <title>File:Miniatura alternative.png</title>
    <id>2893</id>
    <revision>
      <id>21581</id>
      <timestamp>2009-11-01T22:22:38Z</timestamp>
      <contributor>
        <username>andybehr</username>
        <id>1319</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Miniature-20091219-1.png</title>
    <id>3203</id>
    <revision>
      <id>24836</id>
      <timestamp>2009-12-19T16:12:21Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Miniature-20091219-3.png</title>
    <id>3205</id>
    <revision>
      <id>24838</id>
      <timestamp>2009-12-19T16:14:24Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Miniature-Down under.png</title>
    <id>3225</id>
    <revision>
      <id>25024</id>
      <timestamp>2009-12-22T21:36:52Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Miniature-FICS.png</title>
    <id>4973</id>
    <revision>
      <id>44967</id>
      <timestamp>2011-08-23T16:58:00Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Miniature-FICS.png]]&quot;: Now with the nice Miniature icon, featured big time in the background.</comment>
      <text xml:space="preserve">Currently the first window when booting Miniature.</text>
    </revision>
  </page>
  <page>
    <title>File:Miniature-between the turns.png</title>
    <id>3224</id>
    <revision>
      <id>25023</id>
      <timestamp>2009-12-22T21:36:21Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Miniature-play.svg</title>
    <id>3762</id>
    <revision>
      <id>31446</id>
      <timestamp>2010-03-22T21:11:16Z</timestamp>
      <contributor>
        <username>mikhas</username>
        <id>1376</id>
      </contributor>
      <comment>To confirm a move a player has to press the &quot;play&quot; button.</comment>
      <text xml:space="preserve">To confirm a move a player has to press the &quot;play&quot; button.</text>
    </revision>
  </page>
  <page>
    <title>File:Miniature-playgame-portrait-start.png</title>
    <id>3023</id>
    <revision>
      <id>22688</id>
      <timestamp>2009-11-14T23:35:22Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Miniature-playgame-portrait-start.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Miniature-playgame-portrait.png</title>
    <id>2919</id>
    <revision>
      <id>21929</id>
      <timestamp>2009-11-05T21:13:46Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Miniature-playgame-portrait.png]]&quot;: New version taking only the information that FICS is able to provide</comment>
      <text xml:space="preserve">Basic sketch to see spaces available and usability of the keyboard with one hand.</text>
    </revision>
  </page>
  <page>
    <title>File:Miniature-rewind.svg</title>
    <id>3761</id>
    <revision>
      <id>31445</id>
      <timestamp>2010-03-22T21:05:31Z</timestamp>
      <contributor>
        <username>mikhas</username>
        <id>1376</id>
      </contributor>
      <comment>Pressing the rewind button a player requests a move back.</comment>
      <text xml:space="preserve">Pressing the rewind button a player requests a move back.</text>
    </revision>
  </page>
  <page>
    <title>File:Miniature-stop.svg</title>
    <id>3763</id>
    <revision>
      <id>31447</id>
      <timestamp>2010-03-22T21:11:57Z</timestamp>
      <contributor>
        <username>mikhas</username>
        <id>1376</id>
      </contributor>
      <comment>Pressing the stop button a player requests some kind of resolution for the game.</comment>
      <text xml:space="preserve">Pressing the stop button a player requests some kind of resolution for the game.</text>
    </revision>
  </page>
  <page>
    <title>File:MiniatureArchClassDiagram.png</title>
    <id>3021</id>
    <revision>
      <id>24327</id>
      <timestamp>2009-12-08T23:45:15Z</timestamp>
      <contributor>
        <username>mikhas</username>
        <id>1376</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:MiniatureArchClassDiagram.png]]&quot;: Taken from http://gitorious.org/miniature/miniature/blobs/master/doc/class_diagram.png</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Miniature Berlin Defence.png</title>
    <id>4994</id>
    <revision>
      <id>45009</id>
      <timestamp>2011-08-23T22:29:57Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>The Berlin Defence, giving name to our first Miniature release for MeeGo Harmattan.</comment>
      <text xml:space="preserve">The Berlin Defence, giving name to our first Miniature release for MeeGo Harmattan.</text>
    </revision>
  </page>
  <page>
    <title>File:Miniature modules.png</title>
    <id>3024</id>
    <revision>
      <id>22690</id>
      <timestamp>2009-11-15T00:53:27Z</timestamp>
      <contributor>
        <username>boris_r</username>
        <id>1389</id>
      </contributor>
      <comment>updated Modules diagram for Miniature project</comment>
      <text xml:space="preserve">updated Modules diagram for Miniature project</text>
    </revision>
  </page>
  <page>
    <title>File:Miniature normal mode.jpg</title>
    <id>2911</id>
    <revision>
      <id>21764</id>
      <timestamp>2009-11-03T17:18:13Z</timestamp>
      <contributor>
        <username>andybehr</username>
        <id>1319</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Miniature normal mode.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Miniature normal options.jpg</title>
    <id>2912</id>
    <revision>
      <id>21651</id>
      <timestamp>2009-11-02T17:51:07Z</timestamp>
      <contributor>
        <username>andybehr</username>
        <id>1319</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Miniature rooks and knights.jpg</title>
    <id>3080</id>
    <revision>
      <id>23352</id>
      <timestamp>2009-11-25T20:39:48Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Minimal.jpg</title>
    <id>4802</id>
    <revision>
      <id>42540</id>
      <timestamp>2011-03-08T18:25:15Z</timestamp>
      <contributor>
        <username>godofwar424</username>
        <id>4012</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Minimal.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Missing-app-icon-small.png</title>
    <id>3947</id>
    <revision>
      <id>32944</id>
      <timestamp>2010-04-18T13:26:00Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Missing-app-icon.png</title>
    <id>3946</id>
    <revision>
      <id>32943</id>
      <timestamp>2010-04-18T13:25:49Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Missing-app-icon.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:MissingInstall.png</title>
    <id>1619</id>
    <revision>
      <id>11059</id>
      <timestamp>2009-02-17T20:53:36Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Missing 100X60.png</title>
    <id>1765</id>
    <revision>
      <id>12343</id>
      <timestamp>2009-04-07T13:24:59Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mmagnetic.png</title>
    <id>3984</id>
    <revision>
      <id>33354</id>
      <timestamp>2010-04-23T14:48:14Z</timestamp>
      <contributor>
        <username>donaggio</username>
        <id>2272</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mmf video decomposition.png</title>
    <id>2623</id>
    <revision>
      <id>19434</id>
      <timestamp>2009-10-06T09:46:28Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:ModRana-icon.png</title>
    <id>5072</id>
    <revision>
      <id>46139</id>
      <timestamp>2011-12-29T14:30:46Z</timestamp>
      <contributor>
        <username>martink</username>
        <id>3162</id>
      </contributor>
      <comment>ModRana icon.</comment>
      <text xml:space="preserve">ModRana icon.</text>
    </revision>
  </page>
  <page>
    <title>File:ModRana gui.png</title>
    <id>5074</id>
    <revision>
      <id>46153</id>
      <timestamp>2011-12-30T13:46:22Z</timestamp>
      <contributor>
        <username>martink</username>
        <id>3162</id>
      </contributor>
      <comment>A picture illustration how to use the modRana GUI.</comment>
      <text xml:space="preserve">A picture illustration how to use the modRana GUI.</text>
    </revision>
  </page>
  <page>
    <title>File:ModRana main menu.png</title>
    <id>5076</id>
    <revision>
      <id>46155</id>
      <timestamp>2011-12-30T13:48:07Z</timestamp>
      <contributor>
        <username>martink</username>
        <id>3162</id>
      </contributor>
      <comment>A screenshot of the modRana main menu.</comment>
      <text xml:space="preserve">A screenshot of the modRana main menu.</text>
    </revision>
  </page>
  <page>
    <title>File:ModRana overlay.png</title>
    <id>5075</id>
    <revision>
      <id>46154</id>
      <timestamp>2011-12-30T13:47:14Z</timestamp>
      <contributor>
        <username>martink</username>
        <id>3162</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:ModRana route profile.png</title>
    <id>5077</id>
    <revision>
      <id>46156</id>
      <timestamp>2011-12-30T13:48:44Z</timestamp>
      <contributor>
        <username>martink</username>
        <id>3162</id>
      </contributor>
      <comment>A screenshot of a route profile in modRana.</comment>
      <text xml:space="preserve">A screenshot of a route profile in modRana.</text>
    </revision>
  </page>
  <page>
    <title>File:Mode-selection.png</title>
    <id>3047</id>
    <revision>
      <id>23090</id>
      <timestamp>2009-11-22T16:32:48Z</timestamp>
      <contributor>
        <username>archebyte</username>
        <id>1464</id>
      </contributor>
      <comment>USB Mode-Selection on the N900 after connecting it to a host via the USB cable.</comment>
      <text xml:space="preserve">USB Mode-Selection on the N900 after connecting it to a host via the USB cable.</text>
    </revision>
  </page>
  <page>
    <title>File:Modest-ui-flow.png</title>
    <id>2261</id>
    <revision>
      <id>16299</id>
      <timestamp>2009-08-07T13:10:28Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Modest-ui-flow.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:MoonLight Style.png</title>
    <id>4800</id>
    <revision>
      <id>42545</id>
      <timestamp>2011-03-08T18:26:12Z</timestamp>
      <contributor>
        <username>godofwar424</username>
        <id>4012</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:MoonLight Style.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mplayer 48.png</title>
    <id>3963</id>
    <revision>
      <id>33104</id>
      <timestamp>2010-04-19T15:22:33Z</timestamp>
      <contributor>
        <username>joppu</username>
        <id>1571</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mplayer 48 commandline.png</title>
    <id>3967</id>
    <revision>
      <id>33181</id>
      <timestamp>2010-04-20T15:37:35Z</timestamp>
      <contributor>
        <username>joppu</username>
        <id>1571</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mplayer 48 commandline.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Ms09-logo 01g.png</title>
    <id>2262</id>
    <revision>
      <id>16311</id>
      <timestamp>2009-08-07T19:06:44Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Ms09-logo 01g.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Ms09-logo 02d.png</title>
    <id>2259</id>
    <revision>
      <id>16251</id>
      <timestamp>2009-08-06T19:44:51Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Maemo Summit logo idea #2d</comment>
      <text xml:space="preserve">Maemo Summit logo idea #2d</text>
    </revision>
  </page>
  <page>
    <title>File:Ms09-logo 05b2.png</title>
    <id>2279</id>
    <revision>
      <id>16498</id>
      <timestamp>2009-08-14T15:01:21Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Getting there...</comment>
      <text xml:space="preserve">Getting there...</text>
    </revision>
  </page>
  <page>
    <title>File:Ms09-logo XXX only.png</title>
    <id>4689</id>
    <revision>
      <id>19031</id>
      <timestamp>2009-10-01T04:52:09Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Ms09-logo back-final.svg</title>
    <id>2430</id>
    <revision>
      <id>18275</id>
      <timestamp>2009-09-17T11:59:47Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Maemo Summit 2009 T-shirt, front</comment>
      <text xml:space="preserve">Maemo Summit 2009 T-shirt, front</text>
    </revision>
  </page>
  <page>
    <title>File:Ms09-logo front-final.svg</title>
    <id>2431</id>
    <revision>
      <id>18276</id>
      <timestamp>2009-09-17T12:03:05Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Maemo Summit 2009 T-shirt, front</comment>
      <text xml:space="preserve">Maemo Summit 2009 T-shirt, front</text>
    </revision>
  </page>
  <page>
    <title>File:Ms09-shirt back-sample.png</title>
    <id>2432</id>
    <revision>
      <id>18278</id>
      <timestamp>2009-09-17T12:13:01Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>MS09 Shirt Back (Sample)</comment>
      <text xml:space="preserve">MS09 Shirt Back (Sample)</text>
    </revision>
  </page>
  <page>
    <title>File:Ms09-shirt front-sample.png</title>
    <id>2433</id>
    <revision>
      <id>18279</id>
      <timestamp>2009-09-17T12:14:06Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>MS09 Shirt Front (Sample)</comment>
      <text xml:space="preserve">MS09 Shirt Front (Sample)</text>
    </revision>
  </page>
  <page>
    <title>File:Multimedia overview.png</title>
    <id>2204</id>
    <revision>
      <id>15537</id>
      <timestamp>2009-07-13T15:07:25Z</timestamp>
      <contributor>
        <username>bijjal</username>
        <id>338</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Munin-node 1.2.3-1 all.deb.svg</title>
    <id>4089</id>
    <revision>
      <id>34295</id>
      <timestamp>2010-05-12T16:26:40Z</timestamp>
      <contributor>
        <username>speculatrix</username>
        <id>392</id>
      </contributor>
      <comment>rename this, dropping the .svg</comment>
      <text xml:space="preserve">rename this, dropping the .svg</text>
    </revision>
  </page>
  <page>
    <title>File:Mupen64plus-r1.pnd.png</title>
    <id>4667</id>
    <revision>
      <id>41301</id>
      <timestamp>2011-01-22T02:35:46Z</timestamp>
      <contributor>
        <username>luiscesjr</username>
        <id>3854</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Mwkn icon 02 256.png</title>
    <id>3469</id>
    <revision>
      <id>27807</id>
      <timestamp>2010-01-30T20:10:16Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Mwkn icon 02 256.png]]&quot;: MWKN Icon</comment>
      <text xml:space="preserve">MWKN Icon</text>
    </revision>
  </page>
  <page>
    <title>File:MyDocsFolder.png</title>
    <id>3152</id>
    <revision>
      <id>24186</id>
      <timestamp>2009-12-06T19:02:23Z</timestamp>
      <contributor>
        <username>archebyte</username>
        <id>1464</id>
      </contributor>
      <comment>Screenshot MyDocs folder</comment>
      <text xml:space="preserve">Screenshot MyDocs folder</text>
    </revision>
  </page>
  <page>
    <title>File:Mywx1a.png</title>
    <id>2736</id>
    <revision>
      <id>20129</id>
      <timestamp>2009-10-14T14:24:01Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:N800.jpg</title>
    <id>1259</id>
    <revision>
      <id>39028</id>
      <timestamp>2010-09-22T13:59:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:N8x0]]
[[Category:Devices]]</text>
    </revision>
  </page>
  <page>
    <title>File:N810.jpg</title>
    <id>1260</id>
    <revision>
      <id>39029</id>
      <timestamp>2010-09-22T14:02:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:N8x0]]
[[Category:Devices]]</text>
    </revision>
  </page>
  <page>
    <title>File:N810wimax.jpg</title>
    <id>260</id>
    <revision>
      <id>1742</id>
      <timestamp>2008-06-16T11:18:29Z</timestamp>
      <contributor>
        <username>peterschneider</username>
        <id>29</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:N810wimax.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:N900-fedora-f12.jpg</title>
    <id>3305</id>
    <revision>
      <id>25549</id>
      <timestamp>2010-01-01T19:06:55Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>Jebba's Nokia N900 running Fedora 12</comment>
      <text xml:space="preserve">Jebba's Nokia N900 running Fedora 12</text>
    </revision>
  </page>
  <page>
    <title>File:N900.jpg</title>
    <id>2658</id>
    <revision>
      <id>39030</id>
      <timestamp>2010-09-22T14:02:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:N900]]
[[Category:Devices]]</text>
    </revision>
  </page>
  <page>
    <title>File:N900Album.jpg</title>
    <id>2998</id>
    <revision>
      <id>22431</id>
      <timestamp>2009-11-11T15:37:32Z</timestamp>
      <contributor>
        <username>mikecy</username>
        <id>1355</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:N900 Compact.jpg</title>
    <id>4798</id>
    <revision>
      <id>42543</id>
      <timestamp>2011-03-08T18:25:47Z</timestamp>
      <contributor>
        <username>godofwar424</username>
        <id>4012</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:N900 Compact.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:N900 hebrew keymap.png</title>
    <id>3427</id>
    <revision>
      <id>27050</id>
      <timestamp>2010-01-21T12:32:22Z</timestamp>
      <contributor>
        <username>matan</username>
        <id>493</id>
      </contributor>
      <comment>Map of the Hebrew keyboard on N900.</comment>
      <text xml:space="preserve">Map of the Hebrew keyboard on N900.</text>
    </revision>
  </page>
  <page>
    <title>File:N900 keyboard keymap template.png</title>
    <id>3473</id>
    <revision>
      <id>27796</id>
      <timestamp>2010-01-30T16:06:03Z</timestamp>
      <contributor>
        <username>flandry</username>
        <id>1253</id>
      </contributor>
      <comment>A (mostly) overhead perspective of the N900 keyboard. This is a template for maintainers to use to make visual keymaps for their apps to include in the documentation for users.

Painting over the existing map in GIMP works well. See Uqm-keymap.jpg for an </comment>
      <text xml:space="preserve">A (mostly) overhead perspective of the N900 keyboard. This is a template for maintainers to use to make visual keymaps for their apps to include in the documentation for users.

Painting over the existing map in GIMP works well. See Uqm-keymap.jpg for an example.</text>
    </revision>
  </page>
  <page>
    <title>File:N950.jpg</title>
    <id>4906</id>
    <revision>
      <id>44124</id>
      <timestamp>2011-06-24T00:07:10Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <comment>N950 - from http://twitpic.com/5enaym
Site allows sharing with attribution.</comment>
      <text xml:space="preserve">N950 - from http://twitpic.com/5enaym
Site allows sharing with attribution.</text>
    </revision>
  </page>
  <page>
    <title>File:Ncalc.jpg</title>
    <id>3691</id>
    <revision>
      <id>30418</id>
      <timestamp>2010-03-02T18:07:22Z</timestamp>
      <contributor>
        <username>mikecy</username>
        <id>1355</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:New-bug-mockup.jpg</title>
    <id>766</id>
    <revision>
      <id>4318</id>
      <timestamp>2008-07-09T17:25:32Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>Mockup for a potential bug submission form template for bugzilla.</comment>
      <text xml:space="preserve">Mockup for a potential bug submission form template for bugzilla.</text>
    </revision>
  </page>
  <page>
    <title>File:NewAppCatalog.png</title>
    <id>3682</id>
    <revision>
      <id>30313</id>
      <timestamp>2010-02-28T15:41:35Z</timestamp>
      <contributor>
        <username>xomm</username>
        <id>2155</id>
      </contributor>
      <comment>Creating a new Application Catalog
Part three of five of an App Manager tutorial.</comment>
      <text xml:space="preserve">Creating a new Application Catalog
Part three of five of an App Manager tutorial.</text>
    </revision>
  </page>
  <page>
    <title>File:NewLog.png</title>
    <id>2348</id>
    <revision>
      <id>16988</id>
      <timestamp>2009-08-26T17:49:03Z</timestamp>
      <contributor>
        <username>mve</username>
        <id>109</id>
      </contributor>
      <comment>GPXView notes view (some Finnish text)</comment>
      <text xml:space="preserve">GPXView notes view (some Finnish text)</text>
    </revision>
  </page>
  <page>
    <title>File:No image.gif</title>
    <id>5137</id>
    <revision>
      <id>47186</id>
      <timestamp>2012-04-09T01:48:06Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>No-image icon as placeholder for missing portraits. Especially at [[Community Council]].</comment>
      <text xml:space="preserve">No-image icon as placeholder for missing portraits. Especially at [[Community Council]].</text>
    </revision>
  </page>
  <page>
    <title>File:Nokia-logo.gif</title>
    <id>603</id>
    <revision>
      <id>3146</id>
      <timestamp>2008-06-28T09:43:26Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Nokia-n900-1.jpg</title>
    <id>4779</id>
    <revision>
      <id>42409</id>
      <timestamp>2011-03-07T19:03:16Z</timestamp>
      <contributor>
        <username>godofwar424</username>
        <id>4012</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Nokia-n900-1.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Nokia-n900-keyboard-norwegian-arrows.png</title>
    <id>4962</id>
    <revision>
      <id>44768</id>
      <timestamp>2011-08-04T09:19:15Z</timestamp>
      <contributor>
        <username>ecloud</username>
        <id>4451</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Nokia-n900-keyboard-norwegian-arrows.png]]&quot;: now with PC keyboard layout for comparison</comment>
      <text xml:space="preserve">remapping N900 English keyboard to have extra Norwegian keys as arrow symbols</text>
    </revision>
  </page>
  <page>
    <title>File:Nokia N900 48.png</title>
    <id>4305</id>
    <revision>
      <id>36401</id>
      <timestamp>2010-06-30T21:33:20Z</timestamp>
      <contributor>
        <username>ursus</username>
        <id>3075</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Nokia N900 front internal-Hirose u.fl bluetooth wireless LAN and GPS test connectors.png</title>
    <id>4996</id>
    <revision>
      <id>45059</id>
      <timestamp>2011-08-26T09:49:04Z</timestamp>
      <contributor>
        <username>tuxsavvy</username>
        <id>3222</id>
      </contributor>
      <text xml:space="preserve">Nokia N900 PCB mainboard front view. Locations of Bluetooth/Wireless LAN Hirose U.FL test connector along with GPS Hirose U.FL test connector indicated. Thanks to FCC OET website for original photos.</text>
    </revision>
  </page>
  <page>
    <title>File:Nokia N900 rear-internal-Hirose u.fl GSM and non Hirose u.fl FM transmitter antenna and test pads.png</title>
    <id>4997</id>
    <revision>
      <id>45060</id>
      <timestamp>2011-08-26T09:51:03Z</timestamp>
      <contributor>
        <username>tuxsavvy</username>
        <id>3222</id>
      </contributor>
      <comment>Nokia N900 PCB mainboard rear view. Locations of GSM/Cellular Hirose U.FL test connector along with FM Transmitter antenna and its test pads indicated. Thanks to FCC OET website for original photos.</comment>
      <text xml:space="preserve">Nokia N900 PCB mainboard rear view. Locations of GSM/Cellular Hirose U.FL test connector along with FM Transmitter antenna and its test pads indicated. Thanks to FCC OET website for original photos.</text>
    </revision>
  </page>
  <page>
    <title>File:Nokia melody.png</title>
    <id>3640</id>
    <revision>
      <id>30027</id>
      <timestamp>2010-02-23T11:26:32Z</timestamp>
      <contributor>
        <username>torpedo48</username>
        <id>2090</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Nomovok logo.jpg</title>
    <id>4565</id>
    <revision>
      <id>40161</id>
      <timestamp>2010-11-16T21:11:16Z</timestamp>
      <contributor>
        <username>tazpa</username>
        <id>3412</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Norwegian-keys.jpg</title>
    <id>4963</id>
    <revision>
      <id>44766</id>
      <timestamp>2011-08-04T09:12:48Z</timestamp>
      <contributor>
        <username>ecloud</username>
        <id>4451</id>
      </contributor>
      <comment>the usual Norwegian PC keyboard layout</comment>
      <text xml:space="preserve">the usual Norwegian PC keyboard layout</text>
    </revision>
  </page>
  <page>
    <title>File:NotAbuse normal.png</title>
    <id>1606</id>
    <revision>
      <id>10978</id>
      <timestamp>2009-02-17T11:10:35Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:NotAbuse over.png</title>
    <id>1607</id>
    <revision>
      <id>10979</id>
      <timestamp>2009-02-17T11:11:09Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:NotAbuse rollover.png</title>
    <id>1641</id>
    <revision>
      <id>11082</id>
      <timestamp>2009-02-17T21:36:48Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:NotAbuse rollover.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:NotesView.png</title>
    <id>2347</id>
    <revision>
      <id>16986</id>
      <timestamp>2009-08-26T17:48:26Z</timestamp>
      <contributor>
        <username>mve</username>
        <id>109</id>
      </contributor>
      <comment>GPXView notes view</comment>
      <text xml:space="preserve">GPXView notes view</text>
    </revision>
  </page>
  <page>
    <title>File:Notification decomposition.png</title>
    <id>2624</id>
    <revision>
      <id>19435</id>
      <timestamp>2009-10-06T09:46:36Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Numptyphysics.png</title>
    <id>3948</id>
    <revision>
      <id>32947</id>
      <timestamp>2010-04-18T13:30:34Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Nuvo.PNG</title>
    <id>2729</id>
    <revision>
      <id>20114</id>
      <timestamp>2009-10-14T13:43:38Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OMAP architecture.png</title>
    <id>2625</id>
    <revision>
      <id>19436</id>
      <timestamp>2009-10-06T09:46:48Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OS2006 normal.png</title>
    <id>1637</id>
    <revision>
      <id>11077</id>
      <timestamp>2009-02-17T21:04:11Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OS2006 over.png</title>
    <id>1631</id>
    <revision>
      <id>11071</id>
      <timestamp>2009-02-17T21:00:17Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OS2006 rollover.png</title>
    <id>1625</id>
    <revision>
      <id>11065</id>
      <timestamp>2009-02-17T20:56:25Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OS2007 Normal.png</title>
    <id>1636</id>
    <revision>
      <id>11076</id>
      <timestamp>2009-02-17T21:03:38Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OS2007 Over.png</title>
    <id>1630</id>
    <revision>
      <id>11070</id>
      <timestamp>2009-02-17T20:59:52Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OS2007 rollover.png</title>
    <id>1624</id>
    <revision>
      <id>11064</id>
      <timestamp>2009-02-17T20:55:39Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OS2008 Normal.png</title>
    <id>1635</id>
    <revision>
      <id>11075</id>
      <timestamp>2009-02-17T21:03:19Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OS2008 Over.png</title>
    <id>1629</id>
    <revision>
      <id>11069</id>
      <timestamp>2009-02-17T20:59:29Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OS2008 rollover.png</title>
    <id>1623</id>
    <revision>
      <id>11063</id>
      <timestamp>2009-02-17T20:55:17Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Obra-etch.jpg</title>
    <id>3446</id>
    <revision>
      <id>27570</id>
      <timestamp>2010-01-28T02:19:56Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>Obra building etch.</comment>
      <text xml:space="preserve">Obra building etch.</text>
    </revision>
  </page>
  <page>
    <title>File:Occtrlpnl.jpg</title>
    <id>4378</id>
    <revision>
      <id>37495</id>
      <timestamp>2010-08-04T11:10:28Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Off.png</title>
    <id>1608</id>
    <revision>
      <id>10980</id>
      <timestamp>2009-02-17T11:11:38Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Oh logo large.png</title>
    <id>1044</id>
    <revision>
      <id>6007</id>
      <timestamp>2008-07-30T15:34:23Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Ohm.gif</title>
    <id>4961</id>
    <revision>
      <id>44756</id>
      <timestamp>2011-08-03T19:00:40Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <comment>Own work.</comment>
      <text xml:space="preserve">Own work.</text>
    </revision>
  </page>
  <page>
    <title>File:Okuda home.png</title>
    <id>2719</id>
    <revision>
      <id>20086</id>
      <timestamp>2009-10-14T13:24:16Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:On.png</title>
    <id>1609</id>
    <revision>
      <id>10981</id>
      <timestamp>2009-02-17T11:12:11Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Opengl-porting.svg</title>
    <id>3906</id>
    <revision>
      <id>32490</id>
      <timestamp>2010-04-12T08:25:00Z</timestamp>
      <contributor>
        <username>skyostil</username>
        <id>1825</id>
      </contributor>
      <comment>Porting between OpenGL versions</comment>
      <text xml:space="preserve">Porting between OpenGL versions</text>
    </revision>
  </page>
  <page>
    <title>File:Opengl.svg</title>
    <id>1733</id>
    <revision>
      <id>32482</id>
      <timestamp>2010-04-12T07:46:43Z</timestamp>
      <contributor>
        <username>skyostil</username>
        <id>1825</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Opengl.svg]]&quot;</comment>
      <text xml:space="preserve">OpenGL versions</text>
    </revision>
  </page>
  <page>
    <title>File:OpeningAppManager.png</title>
    <id>3680</id>
    <revision>
      <id>30310</id>
      <timestamp>2010-02-28T15:36:13Z</timestamp>
      <contributor>
        <username>xomm</username>
        <id>2155</id>
      </contributor>
      <comment>Opening the Application Manager.
Part one out of five of a App Manager tutorial.</comment>
      <text xml:space="preserve">Opening the Application Manager.
Part one out of five of a App Manager tutorial.</text>
    </revision>
  </page>
  <page>
    <title>File:Openismus web logo.png</title>
    <id>1042</id>
    <revision>
      <id>20230</id>
      <timestamp>2009-10-16T11:14:45Z</timestamp>
      <contributor>
        <username>murrayc</username>
        <id>36</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Openismus web logo.png]]&quot;</comment>
      <text xml:space="preserve">Openismus logo</text>
    </revision>
  </page>
  <page>
    <title>File:OrreryAnalemma.png</title>
    <id>4697</id>
    <revision>
      <id>41641</id>
      <timestamp>2011-02-05T23:31:38Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>New analemma page</comment>
      <text xml:space="preserve">New analemma page</text>
    </revision>
  </page>
  <page>
    <title>File:OrreryAsterisms 3.2.png</title>
    <id>4247</id>
    <revision>
      <id>35692</id>
      <timestamp>2010-06-12T02:37:35Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OrreryAzCompass 3.2.png</title>
    <id>4248</id>
    <revision>
      <id>35693</id>
      <timestamp>2010-06-12T02:38:09Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OrreryBayerNames.png</title>
    <id>4699</id>
    <revision>
      <id>41650</id>
      <timestamp>2011-02-06T01:16:13Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>Page showing Bayer designations in the orrery.</comment>
      <text xml:space="preserve">Page showing Bayer designations in the orrery.</text>
    </revision>
  </page>
  <page>
    <title>File:OrreryBigMoonCalendar 3.2.png</title>
    <id>4249</id>
    <revision>
      <id>35694</id>
      <timestamp>2010-06-12T02:38:33Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OrreryCometPage.png</title>
    <id>5291</id>
    <revision>
      <id>50526</id>
      <timestamp>2012-10-28T06:18:08Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>Orrery app Comet Page</comment>
      <text xml:space="preserve">Orrery app Comet Page</text>
    </revision>
  </page>
  <page>
    <title>File:OrreryConstellations 3.2.png</title>
    <id>4250</id>
    <revision>
      <id>35695</id>
      <timestamp>2010-06-12T02:38:56Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OrreryDefaultPage 3.2.png</title>
    <id>4259</id>
    <revision>
      <id>35705</id>
      <timestamp>2010-06-12T02:48:18Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OrreryHyadesMagComp.png</title>
    <id>3478</id>
    <revision>
      <id>27856</id>
      <timestamp>2010-02-01T04:01:14Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>Comparison of orrery display with two different magnitude limits.</comment>
      <text xml:space="preserve">Comparison of orrery display with two different magnitude limits.</text>
    </revision>
  </page>
  <page>
    <title>File:OrreryJovianMoonEvents.png</title>
    <id>5040</id>
    <revision>
      <id>45595</id>
      <timestamp>2011-10-21T11:05:39Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OrreryJovianMoonGraph.png</title>
    <id>5039</id>
    <revision>
      <id>45594</id>
      <timestamp>2011-10-21T11:03:06Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OrreryLunarEclipseMapKey.png</title>
    <id>5180</id>
    <revision>
      <id>47629</id>
      <timestamp>2012-05-27T03:35:46Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OrreryLunarEclipsePage1.png</title>
    <id>5178</id>
    <revision>
      <id>47766</id>
      <timestamp>2012-05-29T00:02:15Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:OrreryLunarEclipsePage1.png]]&quot;: Added instruction.</comment>
      <text xml:space="preserve">Checklist page for Lunar Eclipses</text>
    </revision>
  </page>
  <page>
    <title>File:OrreryLunarEclipsePage2.png</title>
    <id>5179</id>
    <revision>
      <id>47628</id>
      <timestamp>2012-05-27T03:06:53Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OrreryMainMenu-3.3.png</title>
    <id>3817</id>
    <revision>
      <id>31941</id>
      <timestamp>2010-04-03T13:23:07Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>Screenshot of the main menu for orrery version 3.1</comment>
      <text xml:space="preserve">Screenshot of the main menu for orrery version 3.1</text>
    </revision>
  </page>
  <page>
    <title>File:OrreryMeteorShower-3.1.png</title>
    <id>3822</id>
    <revision>
      <id>31956</id>
      <timestamp>2010-04-03T14:16:47Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OrreryMinimized.png</title>
    <id>5026</id>
    <revision>
      <id>45453</id>
      <timestamp>2011-09-29T20:50:54Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>Orrery minimized display</comment>
      <text xml:space="preserve">Orrery minimized display</text>
    </revision>
  </page>
  <page>
    <title>File:OrreryMonthlyMoonCalendar 3.2.png</title>
    <id>4252</id>
    <revision>
      <id>47139</id>
      <timestamp>2012-04-06T12:50:26Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:OrreryMonthlyMoonCalendar 3.2.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OrreryNamesWithZooming5.png</title>
    <id>4698</id>
    <revision>
      <id>41649</id>
      <timestamp>2011-02-06T01:06:03Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:OrreryNamesWithZooming5.png]]&quot;</comment>
      <text xml:space="preserve">Comparison of unzoomed and zoomed names on the orrery app.</text>
    </revision>
  </page>
  <page>
    <title>File:OrreryOtherPagesMenu-3.1.png</title>
    <id>3818</id>
    <revision>
      <id>50524</id>
      <timestamp>2012-10-28T06:15:13Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:OrreryOtherPagesMenu-3.1.png]]&quot;</comment>
      <text xml:space="preserve">Orrery version 3.1 &quot;Other Pages&quot; menu</text>
    </revision>
  </page>
  <page>
    <title>File:OrreryPlanetCompass 3.2.png</title>
    <id>4253</id>
    <revision>
      <id>45445</id>
      <timestamp>2011-09-29T19:56:31Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:OrreryPlanetCompass 3.2.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OrreryPlanetElevations.png</title>
    <id>5024</id>
    <revision>
      <id>45605</id>
      <timestamp>2011-10-24T07:32:58Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:OrreryPlanetElevations.png]]&quot;: Added labels for sunset and sunrise lines</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OrreryPlanetPhenomena.png</title>
    <id>5025</id>
    <revision>
      <id>45450</id>
      <timestamp>2011-09-29T20:29:34Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OrrerySagitarriusClusters 3.2.png</title>
    <id>4254</id>
    <revision>
      <id>35699</id>
      <timestamp>2010-06-12T02:40:29Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OrrerySchematicSolSys 3.2.png</title>
    <id>4255</id>
    <revision>
      <id>35700</id>
      <timestamp>2010-06-12T02:40:54Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OrrerySextantFullList.png</title>
    <id>5112</id>
    <revision>
      <id>47082</id>
      <timestamp>2012-04-04T08:50:46Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>Default page for orrery Sextant Navigation</comment>
      <text xml:space="preserve">Default page for orrery Sextant Navigation</text>
    </revision>
  </page>
  <page>
    <title>File:OrrerySextantSingleObject.png</title>
    <id>5113</id>
    <revision>
      <id>47083</id>
      <timestamp>2012-04-04T08:57:10Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>orrery Sextant Navigation single object page</comment>
      <text xml:space="preserve">orrery Sextant Navigation single object page</text>
    </revision>
  </page>
  <page>
    <title>File:OrrerySunAndMoon 3.2.png</title>
    <id>4256</id>
    <revision>
      <id>41638</id>
      <timestamp>2011-02-05T23:22:23Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:OrrerySunAndMoon 3.2.png]]&quot;: Added times for season changes</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OrrerySymbolKey 3.2.png</title>
    <id>4257</id>
    <revision>
      <id>50525</id>
      <timestamp>2012-10-28T06:16:57Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:OrrerySymbolKey 3.2.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:OrreryTimesPage.png</title>
    <id>4696</id>
    <revision>
      <id>41640</id>
      <timestamp>2011-02-05T23:30:48Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>New astronomical times page</comment>
      <text xml:space="preserve">New astronomical times page</text>
    </revision>
  </page>
  <page>
    <title>File:OrreryToScaleSolSys 3.2.png</title>
    <id>4258</id>
    <revision>
      <id>35703</id>
      <timestamp>2010-06-12T02:41:57Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Own Avatar.jpg</title>
    <id>4783</id>
    <revision>
      <id>42500</id>
      <timestamp>2011-03-08T17:59:08Z</timestamp>
      <contributor>
        <username>godofwar424</username>
        <id>4012</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:PC Normal.png</title>
    <id>1610</id>
    <revision>
      <id>10982</id>
      <timestamp>2009-02-17T11:12:41Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:PC Over.png</title>
    <id>1611</id>
    <revision>
      <id>10983</id>
      <timestamp>2009-02-17T11:13:16Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:PC Over rollover.png</title>
    <id>1618</id>
    <revision>
      <id>11058</id>
      <timestamp>2009-02-17T20:53:15Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:POIDatabase.png</title>
    <id>2341</id>
    <revision>
      <id>16976</id>
      <timestamp>2009-08-26T17:34:54Z</timestamp>
      <contributor>
        <username>mve</username>
        <id>109</id>
      </contributor>
      <comment>Change Maemo Mapper POI database</comment>
      <text xml:space="preserve">Change Maemo Mapper POI database</text>
    </revision>
  </page>
  <page>
    <title>File:Packaging 1 small.jpg</title>
    <id>2470</id>
    <revision>
      <id>18495</id>
      <timestamp>2009-09-21T20:58:40Z</timestamp>
      <contributor>
        <username>setanta</username>
        <id>1012</id>
      </contributor>
      <comment>The &quot;Hello World!&quot; properly installed.</comment>
      <text xml:space="preserve">The &quot;Hello World!&quot; properly installed.</text>
    </revision>
  </page>
  <page>
    <title>File:Panaroma.png</title>
    <id>2612</id>
    <revision>
      <id>19415</id>
      <timestamp>2009-10-06T09:07:22Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Paypal donate button.gif</title>
    <id>5195</id>
    <revision>
      <id>48102</id>
      <timestamp>2012-06-03T23:03:11Z</timestamp>
      <contributor>
        <username>mrsellout</username>
        <id>3603</id>
      </contributor>
      <comment>Payapal donate button image</comment>
      <text xml:space="preserve">Payapal donate button image</text>
    </revision>
  </page>
  <page>
    <title>File:Photoviewer.png</title>
    <id>2613</id>
    <revision>
      <id>19416</id>
      <timestamp>2009-10-06T09:07:27Z</timestamp>
      <contributor>
        <username>bijjal</username>
        <id>338</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Pic01 python install.jpg</title>
    <id>3565</id>
    <revision>
      <id>28763</id>
      <timestamp>2010-02-09T22:46:27Z</timestamp>
      <contributor>
        <username>henkka</username>
        <id>2019</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Pic02 Pyqt install winxp.jpg</title>
    <id>3566</id>
    <revision>
      <id>28764</id>
      <timestamp>2010-02-09T22:48:45Z</timestamp>
      <contributor>
        <username>henkka</username>
        <id>2019</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Picker button.png</title>
    <id>2181</id>
    <revision>
      <id>15479</id>
      <timestamp>2009-07-13T12:47:48Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Pictogram comment.png</title>
    <id>631</id>
    <revision>
      <id>39039</id>
      <timestamp>2010-09-22T14:36:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>File:Pictogram info.png</title>
    <id>632</id>
    <revision>
      <id>39038</id>
      <timestamp>2010-09-22T14:34:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>File:Pictogram tick.png</title>
    <id>630</id>
    <revision>
      <id>39037</id>
      <timestamp>2010-09-22T14:34:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>File:Pictogram wait.png</title>
    <id>629</id>
    <revision>
      <id>39040</id>
      <timestamp>2010-09-22T14:36:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>File:Picture 4 s.jpg</title>
    <id>1865</id>
    <revision>
      <id>13350</id>
      <timestamp>2009-05-14T14:00:36Z</timestamp>
      <contributor>
        <username>baloo</username>
        <id>128</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Planet Maemo.png</title>
    <id>1427</id>
    <revision>
      <id>9725</id>
      <timestamp>2009-01-16T03:49:07Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>Planet Maemo page</comment>
      <text xml:space="preserve">Planet Maemo page</text>
    </revision>
  </page>
  <page>
    <title>File:Plank.gif</title>
    <id>5283</id>
    <revision>
      <id>50442</id>
      <timestamp>2012-10-25T21:38:17Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>tenminutecore plank gif</comment>
      <text xml:space="preserve">tenminutecore plank gif</text>
    </revision>
  </page>
  <page>
    <title>File:Plaunchss.jpg</title>
    <id>1538</id>
    <revision>
      <id>10444</id>
      <timestamp>2009-01-27T16:35:40Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Plaunchss.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Policy decomposition.png</title>
    <id>2626</id>
    <revision>
      <id>19437</id>
      <timestamp>2009-10-06T09:47:08Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:PreenvSS-1.jpg</title>
    <id>4538</id>
    <revision>
      <id>39763</id>
      <timestamp>2010-10-27T07:19:39Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:PreenvSS-2.png</title>
    <id>4539</id>
    <revision>
      <id>39764</id>
      <timestamp>2010-10-27T07:28:23Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:PreenvSS-3.jpg</title>
    <id>4540</id>
    <revision>
      <id>39766</id>
      <timestamp>2010-10-27T07:33:04Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:PreenvSS-3.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:PreenvSS-4.jpg</title>
    <id>4544</id>
    <revision>
      <id>39817</id>
      <timestamp>2010-10-27T21:13:49Z</timestamp>
      <contributor>
        <username>aligatro</username>
        <id>3540</id>
      </contributor>
      <comment>Asphalt</comment>
      <text xml:space="preserve">Asphalt</text>
    </revision>
  </page>
  <page>
    <title>File:PreenvSS-5.jpg</title>
    <id>4549</id>
    <revision>
      <id>39888</id>
      <timestamp>2010-10-30T23:40:36Z</timestamp>
      <contributor>
        <username>scyzor</username>
        <id>3394</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Privoxy01.jpg</title>
    <id>1487</id>
    <revision>
      <id>10117</id>
      <timestamp>2009-01-22T20:44:33Z</timestamp>
      <contributor>
        <username>terrencegf</username>
        <id>523</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Privoxy02.jpg</title>
    <id>1488</id>
    <revision>
      <id>10118</id>
      <timestamp>2009-01-22T20:44:52Z</timestamp>
      <contributor>
        <username>terrencegf</username>
        <id>523</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Privoxy03.jpg</title>
    <id>1489</id>
    <revision>
      <id>10119</id>
      <timestamp>2009-01-22T20:45:02Z</timestamp>
      <contributor>
        <username>terrencegf</username>
        <id>523</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Privoxy04.jpg</title>
    <id>1490</id>
    <revision>
      <id>10120</id>
      <timestamp>2009-01-22T20:45:13Z</timestamp>
      <contributor>
        <username>terrencegf</username>
        <id>523</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Privoxy05.jpg</title>
    <id>1491</id>
    <revision>
      <id>10121</id>
      <timestamp>2009-01-22T20:45:31Z</timestamp>
      <contributor>
        <username>terrencegf</username>
        <id>523</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Privoxy06.jpg</title>
    <id>1492</id>
    <revision>
      <id>10122</id>
      <timestamp>2009-01-22T20:45:43Z</timestamp>
      <contributor>
        <username>terrencegf</username>
        <id>523</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Privoxy07.jpg</title>
    <id>1493</id>
    <revision>
      <id>10123</id>
      <timestamp>2009-01-22T20:45:53Z</timestamp>
      <contributor>
        <username>terrencegf</username>
        <id>523</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Profile List.png</title>
    <id>1680</id>
    <revision>
      <id>11437</id>
      <timestamp>2009-03-04T15:29:52Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Profile page.png</title>
    <id>1576</id>
    <revision>
      <id>10816</id>
      <timestamp>2009-02-11T22:31:54Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>Profile page - proposal</comment>
      <text xml:space="preserve">Profile page - proposal</text>
    </revision>
  </page>
  <page>
    <title>File:Profile pic.jpg</title>
    <id>2397</id>
    <revision>
      <id>17657</id>
      <timestamp>2009-09-08T08:45:02Z</timestamp>
      <contributor>
        <username>japolinario</username>
        <id>1121</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Progress indicator.png</title>
    <id>2182</id>
    <revision>
      <id>15480</id>
      <timestamp>2009-07-13T12:47:59Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:PyGTKEditor.png</title>
    <id>2450</id>
    <revision>
      <id>18477</id>
      <timestamp>2009-09-21T20:29:58Z</timestamp>
      <contributor>
        <username>renatofilho</username>
        <id>1197</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:PyGTKEditor.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:PyGTKEditorFremantle.png</title>
    <id>2473</id>
    <revision>
      <id>18567</id>
      <timestamp>2009-09-22T16:49:05Z</timestamp>
      <contributor>
        <username>hugo_pl</username>
        <id>1200</id>
      </contributor>
      <comment>PyGTKEditor on Fremantle</comment>
      <text xml:space="preserve">PyGTKEditor on Fremantle</text>
    </revision>
  </page>
  <page>
    <title>File:PyMaemoCarman.png</title>
    <id>2455</id>
    <revision>
      <id>18479</id>
      <timestamp>2009-09-21T20:44:20Z</timestamp>
      <contributor>
        <username>renatofilho</username>
        <id>1197</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:QBW Hot Spot Press.gif</title>
    <id>4311</id>
    <revision>
      <id>36469</id>
      <timestamp>2010-07-03T23:16:43Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:QR-wazapp-08102012-2200.png</title>
    <id>5274</id>
    <revision>
      <id>50137</id>
      <timestamp>2012-10-10T21:13:49Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <comment>Wazapp 08102012-2200 QR Code</comment>
      <text xml:space="preserve">Wazapp 08102012-2200 QR Code</text>
    </revision>
  </page>
  <page>
    <title>File:Qbw1.png</title>
    <id>3934</id>
    <revision>
      <id>32873</id>
      <timestamp>2010-04-18T01:07:42Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwamb.jpg</title>
    <id>3952</id>
    <revision>
      <id>32965</id>
      <timestamp>2010-04-18T16:13:06Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwcpuf.gif</title>
    <id>4129</id>
    <revision>
      <id>34749</id>
      <timestamp>2010-05-24T11:52:14Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwdbusm.jpg</title>
    <id>4279</id>
    <revision>
      <id>36016</id>
      <timestamp>2010-06-17T13:53:27Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwdfing.gif</title>
    <id>4389</id>
    <revision>
      <id>37656</id>
      <timestamp>2010-08-10T11:16:49Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwebay.jpg</title>
    <id>3969</id>
    <revision>
      <id>33191</id>
      <timestamp>2010-04-20T22:20:43Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwesllrnm.jpg</title>
    <id>3937</id>
    <revision>
      <id>32912</id>
      <timestamp>2010-04-18T09:18:11Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwfreq1.png</title>
    <id>4130</id>
    <revision>
      <id>34750</id>
      <timestamp>2010-05-24T11:55:23Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwgmn.jpg</title>
    <id>3954</id>
    <revision>
      <id>32969</id>
      <timestamp>2010-04-18T16:19:16Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwinst1.png</title>
    <id>4004</id>
    <revision>
      <id>33385</id>
      <timestamp>2010-04-24T09:41:17Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwinst2.png</title>
    <id>4005</id>
    <revision>
      <id>33386</id>
      <timestamp>2010-04-24T09:42:48Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwinst3.png</title>
    <id>4006</id>
    <revision>
      <id>33387</id>
      <timestamp>2010-04-24T09:43:01Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwinst4.png</title>
    <id>4007</id>
    <revision>
      <id>33388</id>
      <timestamp>2010-04-24T09:43:13Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwitr1.jpg</title>
    <id>3965</id>
    <revision>
      <id>33165</id>
      <timestamp>2010-04-20T11:37:42Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwitr2.jpg</title>
    <id>3966</id>
    <revision>
      <id>33166</id>
      <timestamp>2010-04-20T11:38:22Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwlf.jpg</title>
    <id>4009</id>
    <revision>
      <id>33392</id>
      <timestamp>2010-04-24T09:56:56Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwlsowk.jpg</title>
    <id>3957</id>
    <revision>
      <id>32977</id>
      <timestamp>2010-04-18T16:40:23Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwmlbmotd.jpg</title>
    <id>3956</id>
    <revision>
      <id>32973</id>
      <timestamp>2010-04-18T16:28:49Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwmonw.jpg</title>
    <id>4280</id>
    <revision>
      <id>36017</id>
      <timestamp>2010-06-17T13:57:29Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwmrltb.jpg</title>
    <id>3955</id>
    <revision>
      <id>32971</id>
      <timestamp>2010-04-18T16:24:13Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwmrtg.jpg</title>
    <id>3953</id>
    <revision>
      <id>32967</id>
      <timestamp>2010-04-18T16:15:42Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwn900hsm.jpg</title>
    <id>3936</id>
    <revision>
      <id>32904</id>
      <timestamp>2010-04-18T08:39:38Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwn900oc.jpg</title>
    <id>4096</id>
    <revision>
      <id>34346</id>
      <timestamp>2010-05-14T08:37:21Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwndr.jpg</title>
    <id>3938</id>
    <revision>
      <id>32921</id>
      <timestamp>2010-04-18T09:50:56Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwnmmeace.jpg</title>
    <id>4030</id>
    <revision>
      <id>33557</id>
      <timestamp>2010-04-27T10:19:03Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwrif0.jpg</title>
    <id>4123</id>
    <revision>
      <id>34680</id>
      <timestamp>2010-05-22T12:04:03Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwrif1.jpg</title>
    <id>4124</id>
    <revision>
      <id>34681</id>
      <timestamp>2010-05-22T12:05:35Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwrif2.jpg</title>
    <id>4125</id>
    <revision>
      <id>34682</id>
      <timestamp>2010-05-22T12:06:07Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwrips1.jpg</title>
    <id>4034</id>
    <revision>
      <id>33584</id>
      <timestamp>2010-04-27T20:42:27Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwrips2.jpg</title>
    <id>4035</id>
    <revision>
      <id>33585</id>
      <timestamp>2010-04-27T20:43:32Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwststvr.jpg</title>
    <id>3959</id>
    <revision>
      <id>32992</id>
      <timestamp>2010-04-18T19:35:36Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwwc2010sa.jpg</title>
    <id>3939</id>
    <revision>
      <id>32923</id>
      <timestamp>2010-04-18T09:56:13Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwwdanz.jpg</title>
    <id>3940</id>
    <revision>
      <id>32926</id>
      <timestamp>2010-04-18T10:00:18Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwwtsi.png</title>
    <id>3970</id>
    <revision>
      <id>33198</id>
      <timestamp>2010-04-21T08:23:50Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qbwzph.jpg</title>
    <id>4011</id>
    <revision>
      <id>33403</id>
      <timestamp>2010-04-24T21:23:22Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qole-n800-by-elia.png</title>
    <id>1730</id>
    <revision>
      <id>12017</id>
      <timestamp>2009-03-23T03:56:36Z</timestamp>
      <contributor>
        <username>qole</username>
        <id>57</id>
      </contributor>
      <comment>Qole's preferred image that jumps to people's minds when thinking about him.</comment>
      <text xml:space="preserve">Qole's preferred image that jumps to people's minds when thinking about him.</text>
    </revision>
  </page>
  <page>
    <title>File:Qr-wazapp-21092012-1445.png</title>
    <id>5267</id>
    <revision>
      <id>49884</id>
      <timestamp>2012-09-25T17:39:44Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <comment>qr-wazapp-21092012-1445</comment>
      <text xml:space="preserve">qr-wazapp-21092012-1445</text>
    </revision>
  </page>
  <page>
    <title>File:Qr.png</title>
    <id>5298</id>
    <revision>
      <id>50659</id>
      <timestamp>2012-11-05T00:52:02Z</timestamp>
      <contributor>
        <username>hariainm</username>
        <id>5460</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qt-Buttons.png</title>
    <id>3592</id>
    <revision>
      <id>29447</id>
      <timestamp>2010-02-12T16:36:58Z</timestamp>
      <contributor>
        <username>mikecy</username>
        <id>1355</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qt-Designer-Layout.png</title>
    <id>3589</id>
    <revision>
      <id>29423</id>
      <timestamp>2010-02-12T15:34:13Z</timestamp>
      <contributor>
        <username>mikecy</username>
        <id>1355</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qt-Edit-Resources.png</title>
    <id>3588</id>
    <revision>
      <id>29413</id>
      <timestamp>2010-02-12T14:56:42Z</timestamp>
      <contributor>
        <username>mikecy</username>
        <id>1355</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Qt-Edit-Resources.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qt-Edit-Stylsheet.png</title>
    <id>3590</id>
    <revision>
      <id>29450</id>
      <timestamp>2010-02-12T16:45:36Z</timestamp>
      <contributor>
        <username>mikecy</username>
        <id>1355</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Qt-Edit-Stylsheet.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qt-N900Customui.png</title>
    <id>3597</id>
    <revision>
      <id>29473</id>
      <timestamp>2010-02-12T17:53:33Z</timestamp>
      <contributor>
        <username>mikecy</username>
        <id>1355</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Qt-N900Customui.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qt-Object-Inspector.png</title>
    <id>3591</id>
    <revision>
      <id>29444</id>
      <timestamp>2010-02-12T16:31:35Z</timestamp>
      <contributor>
        <username>mikecy</username>
        <id>1355</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Qt-Object-Inspector.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qt-Preview.png</title>
    <id>3596</id>
    <revision>
      <id>29462</id>
      <timestamp>2010-02-12T17:22:03Z</timestamp>
      <contributor>
        <username>mikecy</username>
        <id>1355</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Qt-Preview.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qt-ResourceManager.png</title>
    <id>3587</id>
    <revision>
      <id>29395</id>
      <timestamp>2010-02-12T13:48:37Z</timestamp>
      <contributor>
        <username>mikecy</username>
        <id>1355</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Qt-ResourceManager.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qt-Select-Colour.png</title>
    <id>3595</id>
    <revision>
      <id>29457</id>
      <timestamp>2010-02-12T17:15:04Z</timestamp>
      <contributor>
        <username>mikecy</username>
        <id>1355</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qt-Select-Resource.png</title>
    <id>3593</id>
    <revision>
      <id>29451</id>
      <timestamp>2010-02-12T16:49:42Z</timestamp>
      <contributor>
        <username>mikecy</username>
        <id>1355</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:QtLogos.png</title>
    <id>1656</id>
    <revision>
      <id>11313</id>
      <timestamp>2009-02-28T00:35:37Z</timestamp>
      <contributor>
        <username>gnuton</username>
        <id>225</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qt designer winxp.jpg</title>
    <id>3567</id>
    <revision>
      <id>28765</id>
      <timestamp>2010-02-09T22:51:19Z</timestamp>
      <contributor>
        <username>henkka</username>
        <id>2019</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qtmobile-calc.jpg</title>
    <id>3586</id>
    <revision>
      <id>29340</id>
      <timestamp>2010-02-12T12:42:33Z</timestamp>
      <contributor>
        <username>mikecy</username>
        <id>1355</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Qtmobile-calc.jpg]]&quot;</comment>
      <text xml:space="preserve">image from qt mobile demos</text>
    </revision>
  </page>
  <page>
    <title>File:Queen-beecon-noimg.png</title>
    <id>3975</id>
    <revision>
      <id>33248</id>
      <timestamp>2010-04-21T14:44:42Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Queen-beecon.png</title>
    <id>3986</id>
    <revision>
      <id>39822</id>
      <timestamp>2010-10-27T22:50:08Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Queen-beecon.png]]&quot;: Reverted to version as of 22:48, 27 October 2010</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Qurgh home.png</title>
    <id>2720</id>
    <revision>
      <id>20087</id>
      <timestamp>2009-10-14T13:24:29Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:RSS feed.png</title>
    <id>1520</id>
    <revision>
      <id>10287</id>
      <timestamp>2009-01-25T15:20:20Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>A 12x12 RSS feed icon from http://www.feedicons.com/</comment>
      <text xml:space="preserve">A 12x12 RSS feed icon from http://www.feedicons.com/</text>
    </revision>
  </page>
  <page>
    <title>File:Rating-view-mockup.png</title>
    <id>1314</id>
    <revision>
      <id>8260</id>
      <timestamp>2008-10-31T08:27:35Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>Mockup of the package view with ratings (ignore the stars, they're entirely arbitrary ;)).</comment>
      <text xml:space="preserve">Mockup of the package view with ratings (ignore the stars, they're entirely arbitrary ;)).</text>
    </revision>
  </page>
  <page>
    <title>File:Rbox downloader.png</title>
    <id>1583</id>
    <revision>
      <id>10853</id>
      <timestamp>2009-02-14T14:59:38Z</timestamp>
      <contributor>
        <username>ukki</username>
        <id>471</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Rbox scanner.png</title>
    <id>1581</id>
    <revision>
      <id>10851</id>
      <timestamp>2009-02-14T14:59:08Z</timestamp>
      <contributor>
        <username>ukki</username>
        <id>471</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Rbox settings.png</title>
    <id>1582</id>
    <revision>
      <id>10852</id>
      <timestamp>2009-02-14T14:59:28Z</timestamp>
      <contributor>
        <username>ukki</username>
        <id>471</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Realiteits-beeldmerk-Cyaan.png</title>
    <id>2489</id>
    <revision>
      <id>18911</id>
      <timestamp>2009-09-29T13:48:02Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>WesterGasFabriek logo (PNG)</comment>
      <text xml:space="preserve">WesterGasFabriek logo (PNG)</text>
    </revision>
  </page>
  <page>
    <title>File:Recaller desktop.jpg</title>
    <id>5050</id>
    <revision>
      <id>45815</id>
      <timestamp>2011-11-23T10:10:30Z</timestamp>
      <contributor>
        <username>nilli</username>
        <id>4819</id>
      </contributor>
      <comment>This is what [[Recaller]] looks like when installed, just a button on the desktop.</comment>
      <text xml:space="preserve">This is what [[Recaller]] looks like when installed, just a button on the desktop.</text>
    </revision>
  </page>
  <page>
    <title>File:Recaller menu.jpg</title>
    <id>5051</id>
    <revision>
      <id>45816</id>
      <timestamp>2011-11-23T10:16:03Z</timestamp>
      <contributor>
        <username>nilli</username>
        <id>4819</id>
      </contributor>
      <comment>Go to desktop settings and click the wrench icon on [[Recaller]] to get this dialogue.</comment>
      <text xml:space="preserve">Go to desktop settings and click the wrench icon on [[Recaller]] to get this dialogue.</text>
    </revision>
  </page>
  <page>
    <title>File:Recaller settings.jpg</title>
    <id>5052</id>
    <revision>
      <id>45817</id>
      <timestamp>2011-11-23T10:24:13Z</timestamp>
      <contributor>
        <username>nilli</username>
        <id>4819</id>
      </contributor>
      <comment>These are the settings available for [[Recaller]].</comment>
      <text xml:space="preserve">These are the settings available for [[Recaller]].</text>
    </revision>
  </page>
  <page>
    <title>File:Reflect oskb.png</title>
    <id>3198</id>
    <revision>
      <id>24658</id>
      <timestamp>2009-12-15T17:20:54Z</timestamp>
      <contributor>
        <username>joppu</username>
        <id>1571</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Rga2.png</title>
    <id>3156</id>
    <revision>
      <id>47190</id>
      <timestamp>2012-04-09T02:00:01Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Rga2.png]]&quot;: Actually fixing squareness.</comment>
      <text xml:space="preserve">texrat</text>
    </revision>
  </page>
  <page>
    <title>File:Rootview.png</title>
    <id>2183</id>
    <revision>
      <id>15481</id>
      <timestamp>2009-07-13T12:48:10Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SMSCON About.png</title>
    <id>4603</id>
    <revision>
      <id>40588</id>
      <timestamp>2010-12-07T01:09:16Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SMSCON ChangePassword.png</title>
    <id>4604</id>
    <revision>
      <id>43975</id>
      <timestamp>2011-06-13T09:58:23Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:SMSCON ChangePassword.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor AskPassword.png</title>
    <id>4513</id>
    <revision>
      <id>43959</id>
      <timestamp>2011-06-13T09:42:59Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:SMSCON Editor AskPassword.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor Commands1.png</title>
    <id>4448</id>
    <revision>
      <id>43966</id>
      <timestamp>2011-06-13T09:52:25Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:SMSCON Editor Commands1.png]]&quot;</comment>
      <text xml:space="preserve">SMSCON Editor: Rename Commands tab (1)</text>
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor Commands2.png</title>
    <id>4894</id>
    <revision>
      <id>43968</id>
      <timestamp>2011-06-13T09:53:36Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor Commands prefix.png</title>
    <id>4479</id>
    <revision>
      <id>43977</id>
      <timestamp>2011-06-13T10:06:23Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:SMSCON Editor Commands prefix.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor Email.png</title>
    <id>4446</id>
    <revision>
      <id>43964</id>
      <timestamp>2011-06-13T09:50:30Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:SMSCON Editor Email.png]]&quot;</comment>
      <text xml:space="preserve">SMSCON Editor: Email Tab</text>
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor General.png</title>
    <id>4445</id>
    <revision>
      <id>43960</id>
      <timestamp>2011-06-13T09:44:32Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:SMSCON Editor General.png]]&quot;</comment>
      <text xml:space="preserve">SMSCON Editor: General Tab</text>
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor General1.png</title>
    <id>4892</id>
    <revision>
      <id>43962</id>
      <timestamp>2011-06-13T09:45:54Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor General2.png</title>
    <id>4893</id>
    <revision>
      <id>43963</id>
      <timestamp>2011-06-13T09:46:25Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor General selection.png</title>
    <id>4478</id>
    <revision>
      <id>39118</id>
      <timestamp>2010-09-25T22:43:53Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor Init.png</title>
    <id>4450</id>
    <revision>
      <id>43969</id>
      <timestamp>2011-06-13T09:54:34Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:SMSCON Editor Init.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor Init2.png</title>
    <id>4895</id>
    <revision>
      <id>43971</id>
      <timestamp>2011-06-13T09:55:35Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor Main.png</title>
    <id>4452</id>
    <revision>
      <id>39467</id>
      <timestamp>2010-10-08T21:00:58Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:SMSCON Editor Main.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor SSH.png</title>
    <id>4447</id>
    <revision>
      <id>43965</id>
      <timestamp>2011-06-13T09:51:32Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:SMSCON Editor SSH.png]]&quot;</comment>
      <text xml:space="preserve">SMSCON Editor: Reverse SSH tab</text>
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor Startup.png</title>
    <id>4444</id>
    <revision>
      <id>38586</id>
      <timestamp>2010-09-13T23:41:50Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">Popup when SMS Editor first starts</text>
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor Test.png</title>
    <id>4451</id>
    <revision>
      <id>43974</id>
      <timestamp>2011-06-13T09:57:29Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:SMSCON Editor Test.png]]&quot;</comment>
      <text xml:space="preserve">SMSCON Editor: Invoke test commands</text>
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor Test2.png</title>
    <id>4896</id>
    <revision>
      <id>43973</id>
      <timestamp>2011-06-13T09:56:47Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor disableReply.png</title>
    <id>4897</id>
    <revision>
      <id>43986</id>
      <timestamp>2011-06-13T10:15:37Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor disableReply2.png</title>
    <id>4899</id>
    <revision>
      <id>43991</id>
      <timestamp>2011-06-13T10:23:26Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor disableSMS.png</title>
    <id>4602</id>
    <revision>
      <id>40584</id>
      <timestamp>2010-12-07T00:56:12Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor selectReply.png</title>
    <id>4898</id>
    <revision>
      <id>43987</id>
      <timestamp>2011-06-13T10:16:04Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SMSCON Editor selectReply2.png</title>
    <id>4900</id>
    <revision>
      <id>43992</id>
      <timestamp>2011-06-13T10:23:58Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SMSCON UpdatedSettings.png</title>
    <id>4453</id>
    <revision>
      <id>38578</id>
      <timestamp>2010-09-13T23:12:08Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SNES.jpg</title>
    <id>3027</id>
    <revision>
      <id>22766</id>
      <timestamp>2009-11-16T20:38:50Z</timestamp>
      <contributor>
        <username>mikecy</username>
        <id>1355</id>
      </contributor>
      <comment>n900 SNES Screen shot</comment>
      <text xml:space="preserve">n900 SNES Screen shot</text>
    </revision>
  </page>
  <page>
    <title>File:SQLite.gif</title>
    <id>1085</id>
    <revision>
      <id>6311</id>
      <timestamp>2008-08-05T16:20:57Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SSO Architecture.jpg</title>
    <id>1727</id>
    <revision>
      <id>11976</id>
      <timestamp>2009-03-20T16:04:46Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>Simplified overview of the SSO concept for maemo.org</comment>
      <text xml:space="preserve">Simplified overview of the SSO concept for maemo.org</text>
    </revision>
  </page>
  <page>
    <title>File:Samoff-Maemo Summit Presentation.pdf</title>
    <id>1223</id>
    <revision>
      <id>7429</id>
      <timestamp>2008-09-24T19:24:06Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Screen shot 2009-12-22 at 10.24.11 PM.png</title>
    <id>3223</id>
    <revision>
      <id>24994</id>
      <timestamp>2009-12-22T20:27:38Z</timestamp>
      <contributor>
        <username>ukki</username>
        <id>471</id>
      </contributor>
      <comment>HTML-Frontend</comment>
      <text xml:space="preserve">HTML-Frontend</text>
    </revision>
  </page>
  <page>
    <title>File:Screenshot-1.jpg</title>
    <id>2727</id>
    <revision>
      <id>20094</id>
      <timestamp>2009-10-14T13:26:28Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Screenshot-20091013-121357.png</title>
    <id>2734</id>
    <revision>
      <id>20125</id>
      <timestamp>2009-10-14T14:18:26Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Screenshot-20091219-2.png</title>
    <id>3204</id>
    <revision>
      <id>24837</id>
      <timestamp>2009-12-19T16:13:06Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Screenshot-20100108-234612.jpg</title>
    <id>3623</id>
    <revision>
      <id>29936</id>
      <timestamp>2010-02-21T17:55:55Z</timestamp>
      <contributor>
        <username>torpedo48</username>
        <id>2090</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Screenshot-20101029-133324.jpg</title>
    <id>4548</id>
    <revision>
      <id>39869</id>
      <timestamp>2010-10-29T21:25:31Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Screenshot-20120115-221758.jpg</title>
    <id>5089</id>
    <revision>
      <id>46409</id>
      <timestamp>2012-01-16T03:52:52Z</timestamp>
      <contributor>
        <username>mikefila</username>
        <id>4947</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Screenshot-20120115-221758.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Screenshot-jebba-custom-iconset.png</title>
    <id>3279</id>
    <revision>
      <id>25416</id>
      <timestamp>2009-12-31T01:22:19Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>Custom application icon set example.</comment>
      <text xml:space="preserve">Custom application icon set example.</text>
    </revision>
  </page>
  <page>
    <title>File:Screenshot01.png</title>
    <id>2721</id>
    <revision>
      <id>20088</id>
      <timestamp>2009-10-14T13:24:43Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Screenshot02.png</title>
    <id>2722</id>
    <revision>
      <id>20089</id>
      <timestamp>2009-10-14T13:24:57Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Screenshot04.png</title>
    <id>2723</id>
    <revision>
      <id>20090</id>
      <timestamp>2009-10-14T13:25:14Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Screenshot08.png</title>
    <id>2724</id>
    <revision>
      <id>20091</id>
      <timestamp>2009-10-14T13:25:26Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Screenshot1.png</title>
    <id>3088</id>
    <revision>
      <id>23443</id>
      <timestamp>2009-11-27T08:18:36Z</timestamp>
      <contributor>
        <username>bbns</username>
        <id>1485</id>
      </contributor>
      <comment>Screenshot #1: Flickr QML Demo on N900</comment>
      <text xml:space="preserve">Screenshot #1: Flickr QML Demo on N900</text>
    </revision>
  </page>
  <page>
    <title>File:Screenshot12.png</title>
    <id>2725</id>
    <revision>
      <id>20092</id>
      <timestamp>2009-10-14T13:26:01Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Screenshot19.png</title>
    <id>2726</id>
    <revision>
      <id>20093</id>
      <timestamp>2009-10-14T13:26:12Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Screenshot2.png</title>
    <id>3089</id>
    <revision>
      <id>23446</id>
      <timestamp>2009-11-27T08:23:15Z</timestamp>
      <contributor>
        <username>bbns</username>
        <id>1485</id>
      </contributor>
      <comment>Screenshot #2: Scrolling Flickr QML Demo on N900</comment>
      <text xml:space="preserve">Screenshot #2: Scrolling Flickr QML Demo on N900</text>
    </revision>
  </page>
  <page>
    <title>File:Screenshot2010010518062.png</title>
    <id>3326</id>
    <revision>
      <id>25908</id>
      <timestamp>2010-01-05T21:30:19Z</timestamp>
      <contributor>
        <username>matiasm</username>
        <id>1736</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Screenshot3.png</title>
    <id>3090</id>
    <revision>
      <id>23447</id>
      <timestamp>2009-11-27T08:24:17Z</timestamp>
      <contributor>
        <username>bbns</username>
        <id>1485</id>
      </contributor>
      <comment>Screenshot #3: Flickr QML Demo on N900</comment>
      <text xml:space="preserve">Screenshot #3: Flickr QML Demo on N900</text>
    </revision>
  </page>
  <page>
    <title>File:Screenshot 01.png</title>
    <id>3561</id>
    <revision>
      <id>28703</id>
      <timestamp>2010-02-09T09:40:28Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Screenshot 20110501 140024.png</title>
    <id>4998</id>
    <revision>
      <id>45064</id>
      <timestamp>2011-08-26T16:38:10Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Miniature 0.3 running in MeeGo CE on N900. Notice the problem not showing TextField elements.</comment>
      <text xml:space="preserve">Miniature 0.3 running in MeeGo CE on N900. Notice the problem not showing TextField elements.</text>
    </revision>
  </page>
  <page>
    <title>File:Screenshot WordPy.png</title>
    <id>2447</id>
    <revision>
      <id>18465</id>
      <timestamp>2009-09-21T19:41:44Z</timestamp>
      <contributor>
        <username>renatofilho</username>
        <id>1197</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Screenshot lola rennt.png</title>
    <id>4757</id>
    <revision>
      <id>42153</id>
      <timestamp>2011-02-25T19:13:47Z</timestamp>
      <contributor>
        <username>norayr</username>
        <id>3591</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Screenshot reiser4.png</title>
    <id>4835</id>
    <revision>
      <id>42986</id>
      <timestamp>2011-04-09T14:28:10Z</timestamp>
      <contributor>
        <username>idont</username>
        <id>3617</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Screenshot reiser4.png]]&quot;: Screenshot of a repartitioned N900 (one single big /dev/mmcblk0p1) with reiser4 as its filesystem.</comment>
      <text xml:space="preserve">Screenshot of a repartitioned N900 (one single big /dev/mmcblk0p1) with reiser4 as its filesystem.</text>
    </revision>
  </page>
  <page>
    <title>File:SebastianMancke.jpg</title>
    <id>1093</id>
    <revision>
      <id>6407</id>
      <timestamp>2008-08-07T12:08:54Z</timestamp>
      <contributor>
        <username>smancke</username>
        <id>269</id>
      </contributor>
      <comment>Sebastian Mancke</comment>
      <text xml:space="preserve">Sebastian Mancke</text>
    </revision>
  </page>
  <page>
    <title>File:Separate Enrollment and Installation servers.png</title>
    <id>4185</id>
    <revision>
      <id>34977</id>
      <timestamp>2010-05-27T12:23:51Z</timestamp>
      <contributor>
        <username>jpalko</username>
        <id>2404</id>
      </contributor>
      <comment>Separate_Enrollment and Installation servers</comment>
      <text xml:space="preserve">Separate_Enrollment and Installation servers</text>
    </revision>
  </page>
  <page>
    <title>File:Serverstatuswidget.jpg</title>
    <id>5240</id>
    <revision>
      <id>49480</id>
      <timestamp>2012-09-07T16:14:26Z</timestamp>
      <contributor>
        <username>briggers</username>
        <id>5420</id>
      </contributor>
      <comment>A screenshot of the serverstatuswidget home widget for Maemo</comment>
      <text xml:space="preserve">A screenshot of the serverstatuswidget home widget for Maemo</text>
    </revision>
  </page>
  <page>
    <title>File:Settings1.png</title>
    <id>2610</id>
    <revision>
      <id>19413</id>
      <timestamp>2009-10-06T09:07:05Z</timestamp>
      <contributor>
        <username>bijjal</username>
        <id>338</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Settings2.png</title>
    <id>2608</id>
    <revision>
      <id>19411</id>
      <timestamp>2009-10-06T09:06:51Z</timestamp>
      <contributor>
        <username>bijjal</username>
        <id>338</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SharingAccounts.png</title>
    <id>2561</id>
    <revision>
      <id>19343</id>
      <timestamp>2009-10-06T06:48:02Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SharingDialogInterface.png</title>
    <id>2562</id>
    <revision>
      <id>19344</id>
      <timestamp>2009-10-06T06:48:20Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SharingPluginAPI.jpg</title>
    <id>2563</id>
    <revision>
      <id>19345</id>
      <timestamp>2009-10-06T06:48:34Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:ShopperQt.png</title>
    <id>1842</id>
    <revision>
      <id>13126</id>
      <timestamp>2009-05-07T19:19:00Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>Shopper 0.5.7 running on Qt 4.5.0 on Mer</comment>
      <text xml:space="preserve">Shopper 0.5.7 running on Qt 4.5.0 on Mer</text>
    </revision>
  </page>
  <page>
    <title>File:Side crunch.gif</title>
    <id>5287</id>
    <revision>
      <id>50447</id>
      <timestamp>2012-10-25T21:40:48Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>tenminutecore side crunch gif</comment>
      <text xml:space="preserve">tenminutecore side crunch gif</text>
    </revision>
  </page>
  <page>
    <title>File:Sigbelow.png</title>
    <id>5094</id>
    <revision>
      <id>46434</id>
      <timestamp>2012-01-16T19:09:31Z</timestamp>
      <contributor>
        <username>mikefila</username>
        <id>4947</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Simple.jpg</title>
    <id>4790</id>
    <revision>
      <id>42533</id>
      <timestamp>2011-03-08T18:23:55Z</timestamp>
      <contributor>
        <username>godofwar424</username>
        <id>4012</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Simple.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Sip-conf-1.png</title>
    <id>3164</id>
    <revision>
      <id>24398</id>
      <timestamp>2009-12-11T02:23:27Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>Sample SIP configuration screen 1</comment>
      <text xml:space="preserve">Sample SIP configuration screen 1</text>
    </revision>
  </page>
  <page>
    <title>File:Sip-conf-2.png</title>
    <id>3165</id>
    <revision>
      <id>24399</id>
      <timestamp>2009-12-11T02:24:41Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>Sample SIP configuration screen 2</comment>
      <text xml:space="preserve">Sample SIP configuration screen 2</text>
    </revision>
  </page>
  <page>
    <title>File:Sip-conf-3.png</title>
    <id>3166</id>
    <revision>
      <id>24400</id>
      <timestamp>2009-12-11T02:25:11Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>Sample SIP configuration screen 3</comment>
      <text xml:space="preserve">Sample SIP configuration screen 3</text>
    </revision>
  </page>
  <page>
    <title>File:Sip-conf-4.png</title>
    <id>3167</id>
    <revision>
      <id>24401</id>
      <timestamp>2009-12-11T02:25:20Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>Sample SIP configuration screen 4</comment>
      <text xml:space="preserve">Sample SIP configuration screen 4</text>
    </revision>
  </page>
  <page>
    <title>File:Sit-up.gif</title>
    <id>5288</id>
    <revision>
      <id>50448</id>
      <timestamp>2012-10-25T21:41:15Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>tenminutecore sit up gif</comment>
      <text xml:space="preserve">tenminutecore sit up gif</text>
    </revision>
  </page>
  <page>
    <title>File:Sleeper-widget.png</title>
    <id>3718</id>
    <revision>
      <id>30675</id>
      <timestamp>2010-03-07T16:47:36Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Sleeper-widget.png]]&quot;</comment>
      <text xml:space="preserve">The Sleeper widget in action</text>
    </revision>
  </page>
  <page>
    <title>File:Sliders.png</title>
    <id>2184</id>
    <revision>
      <id>15482</id>
      <timestamp>2009-07-13T12:48:21Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Small-and-bigger-version.png</title>
    <id>1651</id>
    <revision>
      <id>11180</id>
      <timestamp>2009-02-25T23:01:19Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>person profile</comment>
      <text xml:space="preserve">person profile</text>
    </revision>
  </page>
  <page>
    <title>File:Small user profile color.png</title>
    <id>1655</id>
    <revision>
      <id>11231</id>
      <timestamp>2009-02-26T10:30:16Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Small user profile - white bits are the basic template, red bits are context-specific content.</comment>
      <text xml:space="preserve">Small user profile - white bits are the basic template, red bits are context-specific content.</text>
    </revision>
  </page>
  <page>
    <title>File:SmartControl Main.jpg</title>
    <id>5233</id>
    <revision>
      <id>49339</id>
      <timestamp>2012-08-31T05:05:03Z</timestamp>
      <contributor>
        <username>guisoliver</username>
        <id>5411</id>
      </contributor>
      <comment>SmartControl Main</comment>
      <text xml:space="preserve">SmartControl Main</text>
    </revision>
  </page>
  <page>
    <title>File:Smartcontrol screen.jpg</title>
    <id>5232</id>
    <revision>
      <id>49338</id>
      <timestamp>2012-08-31T04:59:28Z</timestamp>
      <contributor>
        <username>guisoliver</username>
        <id>5411</id>
      </contributor>
      <comment>SmartControl Login</comment>
      <text xml:space="preserve">SmartControl Login</text>
    </revision>
  </page>
  <page>
    <title>File:Smartq5 front-view.jpg</title>
    <id>1850</id>
    <revision>
      <id>13235</id>
      <timestamp>2009-05-11T09:48:28Z</timestamp>
      <contributor>
        <username>rgs</username>
        <id>539</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Smartq5 pcb-1.jpg</title>
    <id>1848</id>
    <revision>
      <id>13233</id>
      <timestamp>2009-05-11T09:31:49Z</timestamp>
      <contributor>
        <username>rgs</username>
        <id>539</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Smartq5 pcb-1.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Smartq5 pcb-battery.jpg</title>
    <id>1849</id>
    <revision>
      <id>13234</id>
      <timestamp>2009-05-11T09:36:56Z</timestamp>
      <contributor>
        <username>rgs</username>
        <id>539</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snap017.png</title>
    <id>4099</id>
    <revision>
      <id>34436</id>
      <timestamp>2010-05-18T17:12:25Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snap030.png</title>
    <id>4525</id>
    <revision>
      <id>39692</id>
      <timestamp>2010-10-25T16:51:19Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snap031.png</title>
    <id>4526</id>
    <revision>
      <id>39694</id>
      <timestamp>2010-10-25T16:54:57Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snap032.png</title>
    <id>4527</id>
    <revision>
      <id>39696</id>
      <timestamp>2010-10-25T16:56:58Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snap033.png</title>
    <id>4529</id>
    <revision>
      <id>39703</id>
      <timestamp>2010-10-25T18:02:09Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snap034.png</title>
    <id>4528</id>
    <revision>
      <id>39698</id>
      <timestamp>2010-10-25T17:04:04Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snap035.png</title>
    <id>4530</id>
    <revision>
      <id>39705</id>
      <timestamp>2010-10-25T18:03:42Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snap037.png</title>
    <id>4531</id>
    <revision>
      <id>39711</id>
      <timestamp>2010-10-25T18:20:01Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snap038.png</title>
    <id>4532</id>
    <revision>
      <id>39713</id>
      <timestamp>2010-10-25T18:28:36Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Snap038.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snap039.png</title>
    <id>4534</id>
    <revision>
      <id>39718</id>
      <timestamp>2010-10-25T19:09:49Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snap090.jpg</title>
    <id>4393</id>
    <revision>
      <id>37683</id>
      <timestamp>2010-08-11T17:45:12Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snap091.jpg</title>
    <id>4392</id>
    <revision>
      <id>37682</id>
      <timestamp>2010-08-11T17:42:58Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snap094.jpg</title>
    <id>4402</id>
    <revision>
      <id>37725</id>
      <timestamp>2010-08-12T16:12:42Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snap190.jpg</title>
    <id>4321</id>
    <revision>
      <id>36562</id>
      <timestamp>2010-07-09T14:57:05Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snap191.jpg</title>
    <id>4322</id>
    <revision>
      <id>36564</id>
      <timestamp>2010-07-09T14:59:59Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snap193.jpg</title>
    <id>4343</id>
    <revision>
      <id>36752</id>
      <timestamp>2010-07-13T20:45:18Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snap201.jpg</title>
    <id>4346</id>
    <revision>
      <id>36755</id>
      <timestamp>2010-07-13T20:51:20Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snap203.jpg</title>
    <id>4347</id>
    <revision>
      <id>37750</id>
      <timestamp>2010-08-13T11:04:45Z</timestamp>
      <contributor>
        <username>nononoyes</username>
        <id>1993</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Snap203.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Snapshot-ktimetracker-n810.jpg</title>
    <id>3434</id>
    <revision>
      <id>27309</id>
      <timestamp>2010-01-24T18:23:37Z</timestamp>
      <contributor>
        <username>tstaerk</username>
        <id>1691</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Snapshot-ktimetracker-n810.jpg]]&quot;: snapshot from ktimetracker demonstrating that you can have many levels of subtasks.</comment>
      <text xml:space="preserve">ktimetracker running on the N810</text>
    </revision>
  </page>
  <page>
    <title>File:Spacing Mod 2.png</title>
    <id>4803</id>
    <revision>
      <id>42526</id>
      <timestamp>2011-03-08T18:22:11Z</timestamp>
      <contributor>
        <username>godofwar424</username>
        <id>4012</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Sparkline.png</title>
    <id>1654</id>
    <revision>
      <id>11229</id>
      <timestamp>2009-02-26T10:20:45Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Speedevil picture.gif</title>
    <id>3631</id>
    <revision>
      <id>29980</id>
      <timestamp>2010-02-22T13:07:51Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <comment>me</comment>
      <text xml:space="preserve">me</text>
    </revision>
  </page>
  <page>
    <title>File:Standard Page.png</title>
    <id>1426</id>
    <revision>
      <id>9724</id>
      <timestamp>2009-01-15T21:59:10Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>Thats a &quot;standard content page&quot;.

the content on the left side and a simple thin list, with the links on the right.</comment>
      <text xml:space="preserve">Thats a &quot;standard content page&quot;.

the content on the left side and a simple thin list, with the links on the right.</text>
    </revision>
  </page>
  <page>
    <title>File:Standard Page v 02.png</title>
    <id>1436</id>
    <revision>
      <id>9921</id>
      <timestamp>2009-01-21T11:35:05Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>standar page, version 2</comment>
      <text xml:space="preserve">standar page, version 2</text>
    </revision>
  </page>
  <page>
    <title>File:Star.png</title>
    <id>1095</id>
    <revision>
      <id>6448</id>
      <timestamp>2008-08-08T11:28:42Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Star Normal.png</title>
    <id>1612</id>
    <revision>
      <id>10984</id>
      <timestamp>2009-02-17T11:13:50Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Star Over.png</title>
    <id>1613</id>
    <revision>
      <id>10985</id>
      <timestamp>2009-02-17T11:14:44Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Star rollover.png</title>
    <id>1642</id>
    <revision>
      <id>11083</id>
      <timestamp>2009-02-17T21:37:49Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Start.png</title>
    <id>5091</id>
    <revision>
      <id>46415</id>
      <timestamp>2012-01-16T04:24:20Z</timestamp>
      <contributor>
        <username>mikefila</username>
        <id>4947</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Start.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Status-menu-1.png</title>
    <id>2479</id>
    <revision>
      <id>20391</id>
      <timestamp>2009-10-18T22:26:06Z</timestamp>
      <contributor>
        <username>lizardo</username>
        <id>923</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Status-menu-1.png]]&quot;</comment>
      <text xml:space="preserve">Shows the status menu icon in the upper left corner of the screen.</text>
    </revision>
  </page>
  <page>
    <title>File:Status-menu-2.png</title>
    <id>2480</id>
    <revision>
      <id>20392</id>
      <timestamp>2009-10-18T22:27:07Z</timestamp>
      <contributor>
        <username>lizardo</username>
        <id>923</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Status-menu-2.png]]&quot;</comment>
      <text xml:space="preserve">Shows the resulting screen after clicking on the status menu icon.</text>
    </revision>
  </page>
  <page>
    <title>File:Status rollover.png</title>
    <id>1617</id>
    <revision>
      <id>11057</id>
      <timestamp>2009-02-17T20:52:41Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Storageusage.png</title>
    <id>3653</id>
    <revision>
      <id>30171</id>
      <timestamp>2010-02-25T10:42:53Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Strace.png</title>
    <id>4388</id>
    <revision>
      <id>37618</id>
      <timestamp>2010-08-08T22:09:38Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <comment>own work, image of strace</comment>
      <text xml:space="preserve">own work, image of strace</text>
    </revision>
  </page>
  <page>
    <title>File:Stream output window.jpg</title>
    <id>1555</id>
    <revision>
      <id>10690</id>
      <timestamp>2009-02-06T04:36:33Z</timestamp>
      <contributor>
        <username>genewitch</username>
        <id>576</id>
      </contributor>
      <comment>VLC's stream output window for streaming to n8x0 series devices</comment>
      <text xml:space="preserve">VLC's stream output window for streaming to n8x0 series devices</text>
    </revision>
  </page>
  <page>
    <title>File:Subview.png</title>
    <id>2185</id>
    <revision>
      <id>15483</id>
      <timestamp>2009-07-13T12:48:51Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Sunsettheme.png</title>
    <id>3643</id>
    <revision>
      <id>30033</id>
      <timestamp>2010-02-23T11:36:12Z</timestamp>
      <contributor>
        <username>torpedo48</username>
        <id>2090</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Support.png</title>
    <id>1554</id>
    <revision>
      <id>10671</id>
      <timestamp>2009-02-04T20:51:46Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>Proposal for the support page based on Tim`s wireframe</comment>
      <text xml:space="preserve">Proposal for the support page based on Tim`s wireframe</text>
    </revision>
  </page>
  <page>
    <title>File:Sv Support .png</title>
    <id>1577</id>
    <revision>
      <id>10817</id>
      <timestamp>2009-02-11T22:33:22Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>Support page</comment>
      <text xml:space="preserve">Support page</text>
    </revision>
  </page>
  <page>
    <title>File:Sv Support 2.png</title>
    <id>1578</id>
    <revision>
      <id>10818</id>
      <timestamp>2009-02-11T22:34:15Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>Support page</comment>
      <text xml:space="preserve">Support page</text>
    </revision>
  </page>
  <page>
    <title>File:SwappolubeDropdown.png</title>
    <id>4474</id>
    <revision>
      <id>42737</id>
      <timestamp>2011-03-20T10:42:41Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:SwappolubeDropdown.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SwappolubeDropdown2.png</title>
    <id>4812</id>
    <revision>
      <id>42738</id>
      <timestamp>2011-03-20T10:43:11Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SwappolubeDropdown3.png</title>
    <id>4813</id>
    <revision>
      <id>42739</id>
      <timestamp>2011-03-20T10:43:29Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SwappolubeMain.png</title>
    <id>4473</id>
    <revision>
      <id>44519</id>
      <timestamp>2011-07-16T09:31:17Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:SwappolubeMain.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SwappolubeMain2.png</title>
    <id>4644</id>
    <revision>
      <id>41092</id>
      <timestamp>2011-01-15T21:54:50Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SwappolubeMain2 rotated.png</title>
    <id>4934</id>
    <revision>
      <id>44521</id>
      <timestamp>2011-07-16T09:39:58Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SwappolubeMain current.png</title>
    <id>4481</id>
    <revision>
      <id>41121</id>
      <timestamp>2011-01-17T11:11:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>File:SwappolubeMain custom.png</title>
    <id>4645</id>
    <revision>
      <id>41094</id>
      <timestamp>2011-01-15T21:59:33Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SwappolubeMain proposed.png</title>
    <id>4482</id>
    <revision>
      <id>41120</id>
      <timestamp>2011-01-17T11:11:32Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>File:SwappolubeMain rotated.png</title>
    <id>4933</id>
    <revision>
      <id>44520</id>
      <timestamp>2011-07-16T09:39:23Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:SwappolubePowerKeyMenu.png</title>
    <id>4814</id>
    <revision>
      <id>42740</id>
      <timestamp>2011-03-20T10:44:31Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Swappolube about1.png</title>
    <id>4572</id>
    <revision>
      <id>44514</id>
      <timestamp>2011-07-16T09:22:36Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Swappolube about1.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Swappolube about2.png</title>
    <id>4573</id>
    <revision>
      <id>44515</id>
      <timestamp>2011-07-16T09:23:13Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Swappolube about2.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Swappolube deleteTuning.png</title>
    <id>4489</id>
    <revision>
      <id>39161</id>
      <timestamp>2010-09-27T21:01:17Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Swappolube newConfigApplied.png</title>
    <id>4487</id>
    <revision>
      <id>41642</id>
      <timestamp>2011-02-05T23:37:08Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Swappolube newConfigApplied.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Swappolube newConfigCreated.png</title>
    <id>4488</id>
    <revision>
      <id>39160</id>
      <timestamp>2010-09-27T20:59:42Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Syncevolution-frontend icon.png</title>
    <id>3916</id>
    <revision>
      <id>32626</id>
      <timestamp>2010-04-13T16:01:32Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Syncevolution gui account detail settings.png</title>
    <id>3910</id>
    <revision>
      <id>32555</id>
      <timestamp>2010-04-13T06:20:39Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <comment>Some of the detail settings you can made for each configured account.</comment>
      <text xml:space="preserve">Some of the detail settings you can made for each configured account.</text>
    </revision>
  </page>
  <page>
    <title>File:Syncevolution gui main screen account.png</title>
    <id>3908</id>
    <revision>
      <id>32553</id>
      <timestamp>2010-04-13T06:15:59Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <comment>This screenshot is showing the main dialogue each configured sync account provides.</comment>
      <text xml:space="preserve">This screenshot is showing the main dialogue each configured sync account provides.</text>
    </revision>
  </page>
  <page>
    <title>File:Syncevolution gui select local calendar source.png</title>
    <id>3911</id>
    <revision>
      <id>32556</id>
      <timestamp>2010-04-13T06:22:12Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <comment>Syncevolution also allows you to select a local sync source if there are more than one available.</comment>
      <text xml:space="preserve">Syncevolution also allows you to select a local sync source if there are more than one available.</text>
    </revision>
  </page>
  <page>
    <title>File:Tag-search-mockup.png</title>
    <id>1306</id>
    <revision>
      <id>8154</id>
      <timestamp>2008-10-30T11:02:30Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>Mockup of a search view. Hopefully searching using Tracker and debtags.</comment>
      <text xml:space="preserve">Mockup of a search view. Hopefully searching using Tracker and debtags.</text>
    </revision>
  </page>
  <page>
    <title>File:Tarent logo.png</title>
    <id>1043</id>
    <revision>
      <id>6006</id>
      <timestamp>2008-07-30T15:26:49Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Tarent</comment>
      <text xml:space="preserve">Tarent</text>
    </revision>
  </page>
  <page>
    <title>File:TaskSwitcher.png</title>
    <id>2606</id>
    <revision>
      <id>19409</id>
      <timestamp>2009-10-06T09:06:36Z</timestamp>
      <contributor>
        <username>bijjal</username>
        <id>338</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Tear 016 5.jpg</title>
    <id>2410</id>
    <revision>
      <id>17964</id>
      <timestamp>2009-09-10T13:57:58Z</timestamp>
      <contributor>
        <username>celtica96</username>
        <id>1141</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Tear google 016 5.jpg</title>
    <id>2414</id>
    <revision>
      <id>17976</id>
      <timestamp>2009-09-10T14:16:38Z</timestamp>
      <contributor>
        <username>celtica96</username>
        <id>1141</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Test.ods</title>
    <id>2490</id>
    <revision>
      <id>18916</id>
      <timestamp>2009-09-29T14:18:26Z</timestamp>
      <contributor>
        <username>feri</username>
        <id>2</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Test.png</title>
    <id>4333</id>
    <revision>
      <id>36654</id>
      <timestamp>2010-07-12T09:06:40Z</timestamp>
      <contributor>
        <username>feri</username>
        <id>2</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Test.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Testpoints tx.jpg</title>
    <id>5164</id>
    <revision>
      <id>47400</id>
      <timestamp>2012-05-02T18:48:54Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>testpoint console UART TX under battery</comment>
      <text xml:space="preserve">testpoint console UART TX under battery</text>
    </revision>
  </page>
  <page>
    <title>File:Text widgets.png</title>
    <id>2186</id>
    <revision>
      <id>15484</id>
      <timestamp>2009-07-13T12:49:18Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:ThemeShot2.png</title>
    <id>2712</id>
    <revision>
      <id>20073</id>
      <timestamp>2009-10-14T12:50:59Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:ThemeShot3.jpg</title>
    <id>2713</id>
    <revision>
      <id>20074</id>
      <timestamp>2009-10-14T12:51:43Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Thememaker1.png</title>
    <id>1102</id>
    <revision>
      <id>6593</id>
      <timestamp>2008-08-14T20:05:14Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <comment>Screenshot of Theme Maker Application</comment>
      <text xml:space="preserve">Screenshot of Theme Maker Application</text>
    </revision>
  </page>
  <page>
    <title>File:Thememaker2.png</title>
    <id>1103</id>
    <revision>
      <id>6594</id>
      <timestamp>2008-08-14T20:05:55Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <comment>Screenshot of Theme Maker Application</comment>
      <text xml:space="preserve">Screenshot of Theme Maker Application</text>
    </revision>
  </page>
  <page>
    <title>File:Time button.png</title>
    <id>2187</id>
    <revision>
      <id>15485</id>
      <timestamp>2009-07-13T12:50:32Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Time selector.png</title>
    <id>2193</id>
    <revision>
      <id>15491</id>
      <timestamp>2009-07-13T12:57:48Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Titin.PNG</title>
    <id>2730</id>
    <revision>
      <id>20115</id>
      <timestamp>2009-10-14T13:43:49Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Tomcat in OpenJDK on N900.png</title>
    <id>3523</id>
    <revision>
      <id>28374</id>
      <timestamp>2010-02-04T21:01:14Z</timestamp>
      <contributor>
        <username>mcbrown</username>
        <id>2050</id>
      </contributor>
      <comment>Apache Tomcat running in OpenJDK on Nokia N900</comment>
      <text xml:space="preserve">Apache Tomcat running in OpenJDK on Nokia N900</text>
    </revision>
  </page>
  <page>
    <title>File:Top level architecture.png</title>
    <id>2566</id>
    <revision>
      <id>19354</id>
      <timestamp>2009-10-06T07:03:52Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Touch selector entry.png</title>
    <id>2188</id>
    <revision>
      <id>15486</id>
      <timestamp>2009-07-13T12:50:51Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Transifex-mobile-dashboard.png</title>
    <id>4394</id>
    <revision>
      <id>37691</id>
      <timestamp>2010-08-11T19:41:05Z</timestamp>
      <contributor>
        <username>v6sa</username>
        <id>934</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Transifex-mobile-dashboard.png]]&quot;: Dashboard of Transifex-Mobile</comment>
      <text xml:space="preserve">Dashboard of Transifex-Mobile</text>
    </revision>
  </page>
  <page>
    <title>File:Transifex-mobile-files.png</title>
    <id>4395</id>
    <revision>
      <id>37692</id>
      <timestamp>2010-08-11T19:41:38Z</timestamp>
      <contributor>
        <username>v6sa</username>
        <id>934</id>
      </contributor>
      <comment>Transifex-Mobile listing files of a project</comment>
      <text xml:space="preserve">Transifex-Mobile listing files of a project</text>
    </revision>
  </page>
  <page>
    <title>File:Transifex-mobile-menu-item.png</title>
    <id>4404</id>
    <revision>
      <id>37745</id>
      <timestamp>2010-08-13T07:20:56Z</timestamp>
      <contributor>
        <username>v6sa</username>
        <id>934</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Transifex-mobile-projects.png</title>
    <id>4396</id>
    <revision>
      <id>37693</id>
      <timestamp>2010-08-11T19:41:56Z</timestamp>
      <contributor>
        <username>v6sa</username>
        <id>934</id>
      </contributor>
      <comment>Transifex-Mobile listing projects</comment>
      <text xml:space="preserve">Transifex-Mobile listing projects</text>
    </revision>
  </page>
  <page>
    <title>File:Transifex-mobile-push-dialog.png</title>
    <id>4403</id>
    <revision>
      <id>37743</id>
      <timestamp>2010-08-13T07:07:50Z</timestamp>
      <contributor>
        <username>v6sa</username>
        <id>934</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Transifex-mobile-push-dialog.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Transifex-mobile-string-editor.png</title>
    <id>4397</id>
    <revision>
      <id>37694</id>
      <timestamp>2010-08-11T19:42:22Z</timestamp>
      <contributor>
        <username>v6sa</username>
        <id>934</id>
      </contributor>
      <comment>Transifex-Mobile string editor</comment>
      <text xml:space="preserve">Transifex-Mobile string editor</text>
    </revision>
  </page>
  <page>
    <title>File:Transifex-mobile-strings.png</title>
    <id>4398</id>
    <revision>
      <id>37695</id>
      <timestamp>2010-08-11T19:42:53Z</timestamp>
      <contributor>
        <username>v6sa</username>
        <id>934</id>
      </contributor>
      <comment>Transifex-Mobile listing strings of a translation</comment>
      <text xml:space="preserve">Transifex-Mobile listing strings of a translation</text>
    </revision>
  </page>
  <page>
    <title>File:Tritanium home.png</title>
    <id>2728</id>
    <revision>
      <id>20095</id>
      <timestamp>2009-10-14T13:26:41Z</timestamp>
      <contributor>
        <username>andrewfblack</username>
        <id>279</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Tsourakis.jpg</title>
    <id>1122</id>
    <revision>
      <id>6651</id>
      <timestamp>2008-08-17T10:26:33Z</timestamp>
      <contributor>
        <username>ntsourak</username>
        <id>251</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Tux.png</title>
    <id>1082</id>
    <revision>
      <id>6306</id>
      <timestamp>2008-08-05T16:13:01Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Twitter-Reply.png</title>
    <id>2304</id>
    <revision>
      <id>16800</id>
      <timestamp>2009-08-24T09:59:58Z</timestamp>
      <contributor>
        <username>kasun</username>
        <id>875</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Twitter-Twitpic.png</title>
    <id>2305</id>
    <revision>
      <id>16801</id>
      <timestamp>2009-08-24T10:01:55Z</timestamp>
      <contributor>
        <username>kasun</username>
        <id>875</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Twitter-list.png</title>
    <id>1967</id>
    <revision>
      <id>16803</id>
      <timestamp>2009-08-24T10:06:09Z</timestamp>
      <contributor>
        <username>kasun</username>
        <id>875</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Twitter-list.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Twitter-options.png</title>
    <id>2303</id>
    <revision>
      <id>16798</id>
      <timestamp>2009-08-24T09:57:59Z</timestamp>
      <contributor>
        <username>kasun</username>
        <id>875</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Twitter-textbox.png</title>
    <id>1966</id>
    <revision>
      <id>14033</id>
      <timestamp>2009-06-07T17:17:37Z</timestamp>
      <contributor>
        <username>kasun</username>
        <id>875</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Twitter-updates.png</title>
    <id>2098</id>
    <revision>
      <id>16797</id>
      <timestamp>2009-08-24T09:53:14Z</timestamp>
      <contributor>
        <username>kasun</username>
        <id>875</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Twitter-updates.png]]&quot;</comment>
      <text xml:space="preserve">Screen shot of twitter updates</text>
    </revision>
  </page>
  <page>
    <title>File:Twitter mockup.jpg</title>
    <id>1930</id>
    <revision>
      <id>13741</id>
      <timestamp>2009-05-28T05:29:22Z</timestamp>
      <contributor>
        <username>kasun</username>
        <id>875</id>
      </contributor>
      <comment>Mockups of canola twitter plugin</comment>
      <text xml:space="preserve">Mockups of canola twitter plugin</text>
    </revision>
  </page>
  <page>
    <title>File:UI-startup.png</title>
    <id>2195</id>
    <revision>
      <id>40327</id>
      <timestamp>2010-11-26T14:16:32Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>File:Ubuntu9.10 N900.jpg</title>
    <id>4307</id>
    <revision>
      <id>36413</id>
      <timestamp>2010-07-01T14:45:10Z</timestamp>
      <contributor>
        <username>mohammad7410</username>
        <id>2135</id>
      </contributor>
      <comment>Ubuntu 9.10 on the N900, with gnome-terminal showing the output of uname -a.</comment>
      <text xml:space="preserve">Ubuntu 9.10 on the N900, with gnome-terminal showing the output of uname -a.</text>
    </revision>
  </page>
  <page>
    <title>File:Ubuntu9.10 N900 LED blue.jpg</title>
    <id>4358</id>
    <revision>
      <id>36952</id>
      <timestamp>2010-07-17T16:29:14Z</timestamp>
      <contributor>
        <username>mohammad7410</username>
        <id>2135</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Ubuntu9.10 N900 Launcher.png</title>
    <id>4310</id>
    <revision>
      <id>36441</id>
      <timestamp>2010-07-02T01:55:33Z</timestamp>
      <contributor>
        <username>mohammad7410</username>
        <id>2135</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Ubuntu9.10 N900 Launcher.png]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:UkmpFremantle.png</title>
    <id>2476</id>
    <revision>
      <id>18570</id>
      <timestamp>2009-09-22T17:03:58Z</timestamp>
      <contributor>
        <username>hugo_pl</username>
        <id>1200</id>
      </contributor>
      <comment>Ukmp on Fremantle</comment>
      <text xml:space="preserve">Ukmp on Fremantle</text>
    </revision>
  </page>
  <page>
    <title>File:Uqm-keymap.jpg</title>
    <id>3472</id>
    <revision>
      <id>27794</id>
      <timestamp>2010-01-30T15:55:21Z</timestamp>
      <contributor>
        <username>flandry</username>
        <id>1253</id>
      </contributor>
      <comment>A keyboard control map for uqm (The Ur-Quan Masters). It is accurate for all N900s, in spite of locale, due to the workaround used.</comment>
      <text xml:space="preserve">A keyboard control map for uqm (The Ur-Quan Masters). It is accurate for all N900s, in spite of locale, due to the workaround used.</text>
    </revision>
  </page>
  <page>
    <title>File:Ur-Quan Masters-starmap.png</title>
    <id>3474</id>
    <revision>
      <id>27802</id>
      <timestamp>2010-01-30T18:30:59Z</timestamp>
      <contributor>
        <username>flandry</username>
        <id>1253</id>
      </contributor>
      <comment>A starmap for The Ur-Quan Masters game. This is a user-created map that includes the same information that was found on the poster map in the Star Control 2 box. Licensed for free distribution by creator tomt on the uqm forum: http://forum.uqm.stack.nl/in</comment>
      <text xml:space="preserve">A starmap for The Ur-Quan Masters game. This is a user-created map that includes the same information that was found on the poster map in the Star Control 2 box. Licensed for free distribution by creator tomt on the uqm forum: http://forum.uqm.stack.nl/index.php?topic=2043.0</text>
    </revision>
  </page>
  <page>
    <title>File:VLC-Encapsulation.jpg</title>
    <id>1556</id>
    <revision>
      <id>10691</id>
      <timestamp>2009-02-06T04:44:48Z</timestamp>
      <contributor>
        <username>genewitch</username>
        <id>576</id>
      </contributor>
      <comment>Encapsulation settings for VLC streaming to n8x0</comment>
      <text xml:space="preserve">Encapsulation settings for VLC streaming to n8x0</text>
    </revision>
  </page>
  <page>
    <title>File:VLC-audio-codec.jpg</title>
    <id>1559</id>
    <revision>
      <id>10694</id>
      <timestamp>2009-02-06T04:54:17Z</timestamp>
      <contributor>
        <username>genewitch</username>
        <id>576</id>
      </contributor>
      <comment>VLC audio codec settings for streaming to n8x0</comment>
      <text xml:space="preserve">VLC audio codec settings for streaming to n8x0</text>
    </revision>
  </page>
  <page>
    <title>File:VLC-video-codec.jpg</title>
    <id>1557</id>
    <revision>
      <id>10692</id>
      <timestamp>2009-02-06T04:46:23Z</timestamp>
      <contributor>
        <username>genewitch</username>
        <id>576</id>
      </contributor>
      <comment>VLC video codec settings for streaming to n8x0</comment>
      <text xml:space="preserve">VLC video codec settings for streaming to n8x0</text>
    </revision>
  </page>
  <page>
    <title>File:Vbk2.png</title>
    <id>2601</id>
    <revision>
      <id>19404</id>
      <timestamp>2009-10-06T09:05:58Z</timestamp>
      <contributor>
        <username>bijjal</username>
        <id>338</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:VertSMS.jpg</title>
    <id>4057</id>
    <revision>
      <id>33931</id>
      <timestamp>2010-05-06T07:31:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">VertSMS first release to [[extras-devel]]

[[Category:VertSMS]]</text>
    </revision>
  </page>
  <page>
    <title>File:Very-important-piechart.png</title>
    <id>1446</id>
    <revision>
      <id>9939</id>
      <timestamp>2009-01-21T14:01:54Z</timestamp>
      <contributor>
        <username>qlin</username>
        <id>517</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Vid editing01.jpg</title>
    <id>3290</id>
    <revision>
      <id>25511</id>
      <timestamp>2010-01-01T10:35:04Z</timestamp>
      <contributor>
        <username>revdkathy</username>
        <id>1360</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Vid editing02.jpg</title>
    <id>3291</id>
    <revision>
      <id>25512</id>
      <timestamp>2010-01-01T10:38:35Z</timestamp>
      <contributor>
        <username>revdkathy</username>
        <id>1360</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Vid editing03.jpg</title>
    <id>3292</id>
    <revision>
      <id>25513</id>
      <timestamp>2010-01-01T10:39:55Z</timestamp>
      <contributor>
        <username>revdkathy</username>
        <id>1360</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Vid editing04.jpg</title>
    <id>3293</id>
    <revision>
      <id>25514</id>
      <timestamp>2010-01-01T10:41:21Z</timestamp>
      <contributor>
        <username>revdkathy</username>
        <id>1360</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Vid editing05.jpg</title>
    <id>3294</id>
    <revision>
      <id>25515</id>
      <timestamp>2010-01-01T10:43:03Z</timestamp>
      <contributor>
        <username>revdkathy</username>
        <id>1360</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Vid editing06.jpg</title>
    <id>3295</id>
    <revision>
      <id>25516</id>
      <timestamp>2010-01-01T10:45:15Z</timestamp>
      <contributor>
        <username>revdkathy</username>
        <id>1360</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Vid editing07.jpg</title>
    <id>3296</id>
    <revision>
      <id>25517</id>
      <timestamp>2010-01-01T10:46:29Z</timestamp>
      <contributor>
        <username>revdkathy</username>
        <id>1360</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Vid editing08.jpg</title>
    <id>3297</id>
    <revision>
      <id>25518</id>
      <timestamp>2010-01-01T10:48:04Z</timestamp>
      <contributor>
        <username>revdkathy</username>
        <id>1360</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Vid editing09.jpg</title>
    <id>3298</id>
    <revision>
      <id>25519</id>
      <timestamp>2010-01-01T10:49:24Z</timestamp>
      <contributor>
        <username>revdkathy</username>
        <id>1360</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Vid editing10.jpg</title>
    <id>3299</id>
    <revision>
      <id>25520</id>
      <timestamp>2010-01-01T10:50:22Z</timestamp>
      <contributor>
        <username>revdkathy</username>
        <id>1360</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Vid editing11.jpg</title>
    <id>3300</id>
    <revision>
      <id>25521</id>
      <timestamp>2010-01-01T10:53:11Z</timestamp>
      <contributor>
        <username>revdkathy</username>
        <id>1360</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Vid editing12.jpg</title>
    <id>3301</id>
    <revision>
      <id>25522</id>
      <timestamp>2010-01-01T10:54:03Z</timestamp>
      <contributor>
        <username>revdkathy</username>
        <id>1360</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Video2.png</title>
    <id>3147</id>
    <revision>
      <id>24153</id>
      <timestamp>2009-12-06T11:50:45Z</timestamp>
      <contributor>
        <username>revdkathy</username>
        <id>1360</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Video3.png</title>
    <id>3148</id>
    <revision>
      <id>24155</id>
      <timestamp>2009-12-06T11:52:51Z</timestamp>
      <contributor>
        <username>revdkathy</username>
        <id>1360</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Video 1.png</title>
    <id>3146</id>
    <revision>
      <id>24143</id>
      <timestamp>2009-12-06T11:39:02Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:View menu.png</title>
    <id>2189</id>
    <revision>
      <id>15487</id>
      <timestamp>2009-07-13T12:51:02Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:View menu wrong.png</title>
    <id>2190</id>
    <revision>
      <id>15488</id>
      <timestamp>2009-07-13T12:51:21Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Vkb1.png</title>
    <id>2598</id>
    <revision>
      <id>19401</id>
      <timestamp>2009-10-06T09:05:40Z</timestamp>
      <contributor>
        <username>bijjal</username>
        <id>338</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:WGkaart.300dpi.jpg</title>
    <id>2513</id>
    <revision>
      <id>19030</id>
      <timestamp>2009-10-01T04:11:33Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Maemo Summit 2009 location map</comment>
      <text xml:space="preserve">Maemo Summit 2009 location map</text>
    </revision>
  </page>
  <page>
    <title>File:Wavlaunch.png</title>
    <id>2205</id>
    <revision>
      <id>15539</id>
      <timestamp>2009-07-13T15:11:35Z</timestamp>
      <contributor>
        <username>bijjal</username>
        <id>338</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Wazapp-conversation.png</title>
    <id>5255</id>
    <revision>
      <id>49818</id>
      <timestamp>2012-09-22T20:14:45Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <comment>Wazapp conversation view</comment>
      <text xml:space="preserve">Wazapp conversation view</text>
    </revision>
  </page>
  <page>
    <title>File:Wazapp-group-chat.png</title>
    <id>5258</id>
    <revision>
      <id>49821</id>
      <timestamp>2012-09-22T20:18:31Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <comment>Wazapp group chat</comment>
      <text xml:space="preserve">Wazapp group chat</text>
    </revision>
  </page>
  <page>
    <title>File:Wazapp-group-create.png</title>
    <id>5257</id>
    <revision>
      <id>49820</id>
      <timestamp>2012-09-22T20:17:39Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <comment>Wazapp create group</comment>
      <text xml:space="preserve">Wazapp create group</text>
    </revision>
  </page>
  <page>
    <title>File:Wazapp-loading.png</title>
    <id>5252</id>
    <revision>
      <id>49814</id>
      <timestamp>2012-09-22T20:08:26Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <comment>Wazapp loading screen</comment>
      <text xml:space="preserve">Wazapp loading screen</text>
    </revision>
  </page>
  <page>
    <title>File:Wazapp-logo.png</title>
    <id>5251</id>
    <revision>
      <id>49810</id>
      <timestamp>2012-09-22T19:27:58Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <comment>Wazapp logo</comment>
      <text xml:space="preserve">Wazapp logo</text>
    </revision>
  </page>
  <page>
    <title>File:Wazapp-main-messages-pending.png</title>
    <id>5256</id>
    <revision>
      <id>49819</id>
      <timestamp>2012-09-22T20:16:13Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <comment>Wazapp messages pending</comment>
      <text xml:space="preserve">Wazapp messages pending</text>
    </revision>
  </page>
  <page>
    <title>File:Wazapp-main.png</title>
    <id>5254</id>
    <revision>
      <id>49816</id>
      <timestamp>2012-09-22T20:10:11Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <comment>Wazapp main screen</comment>
      <text xml:space="preserve">Wazapp main screen</text>
    </revision>
  </page>
  <page>
    <title>File:Wazapp-settings-01.png</title>
    <id>5260</id>
    <revision>
      <id>49823</id>
      <timestamp>2012-09-22T20:22:06Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <comment>Wazapp settings 1</comment>
      <text xml:space="preserve">Wazapp settings 1</text>
    </revision>
  </page>
  <page>
    <title>File:Wazapp-settings-02.png</title>
    <id>5261</id>
    <revision>
      <id>49824</id>
      <timestamp>2012-09-22T20:22:15Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <comment>Wazapp settings 2</comment>
      <text xml:space="preserve">Wazapp settings 2</text>
    </revision>
  </page>
  <page>
    <title>File:Wazapp-settings-03.png</title>
    <id>5262</id>
    <revision>
      <id>49825</id>
      <timestamp>2012-09-22T20:22:27Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <comment>Wazapp settings 3</comment>
      <text xml:space="preserve">Wazapp settings 3</text>
    </revision>
  </page>
  <page>
    <title>File:Wazapp-settings-04.png</title>
    <id>5263</id>
    <revision>
      <id>49826</id>
      <timestamp>2012-09-22T20:22:39Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <comment>Wazapp settings 4</comment>
      <text xml:space="preserve">Wazapp settings 4</text>
    </revision>
  </page>
  <page>
    <title>File:Wazapp-settings-05-credits.png</title>
    <id>5264</id>
    <revision>
      <id>49827</id>
      <timestamp>2012-09-22T20:22:49Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <comment>Wazapp settings 5</comment>
      <text xml:space="preserve">Wazapp settings 5</text>
    </revision>
  </page>
  <page>
    <title>File:Wazapp-synching-contacts.png</title>
    <id>5259</id>
    <revision>
      <id>49822</id>
      <timestamp>2012-09-22T20:19:38Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <comment>Wazapp contact synchronisation</comment>
      <text xml:space="preserve">Wazapp contact synchronisation</text>
    </revision>
  </page>
  <page>
    <title>File:Wazapp-wp.jpg</title>
    <id>5266</id>
    <revision>
      <id>49848</id>
      <timestamp>2012-09-23T16:25:18Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <comment>WhatsApp on Windows Phone</comment>
      <text xml:space="preserve">WhatsApp on Windows Phone</text>
    </revision>
  </page>
  <page>
    <title>File:Wazapp 027.png</title>
    <id>5269</id>
    <revision>
      <id>50022</id>
      <timestamp>2012-10-01T02:48:42Z</timestamp>
      <contributor>
        <username>tgalal</username>
        <id>2431</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Web-hosting.jpg</title>
    <id>5030</id>
    <revision>
      <id>45504</id>
      <timestamp>2011-10-07T14:15:45Z</timestamp>
      <contributor>
        <username>avinrude</username>
        <id>4720</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Westergas.png</title>
    <id>2495</id>
    <revision>
      <id>20185</id>
      <timestamp>2009-10-15T12:44:58Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Westergas.png]]&quot;: Summit at the Westergas.</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Wgfplgr schema.jpg</title>
    <id>2512</id>
    <revision>
      <id>19029</id>
      <timestamp>2009-10-01T04:11:08Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Maemo Summit 2009 location map</comment>
      <text xml:space="preserve">Maemo Summit 2009 location map</text>
    </revision>
  </page>
  <page>
    <title>File:Wide app.png</title>
    <id>1677</id>
    <revision>
      <id>11434</id>
      <timestamp>2009-03-04T15:25:27Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Wide person template.png</title>
    <id>1676</id>
    <revision>
      <id>11433</id>
      <timestamp>2009-03-04T15:24:35Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Widget typography.png</title>
    <id>2381</id>
    <revision>
      <id>17369</id>
      <timestamp>2009-09-03T12:07:24Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Wifi-assistant-icon.png</title>
    <id>4640</id>
    <revision>
      <id>41006</id>
      <timestamp>2011-01-05T09:05:49Z</timestamp>
      <contributor>
        <username>fredrik_wendt</username>
        <id>1469</id>
      </contributor>
      <comment>The application icon for Wifi Assistant</comment>
      <text xml:space="preserve">The application icon for Wifi Assistant</text>
    </revision>
  </page>
  <page>
    <title>File:Wifi-assistant-screenshot-about.png</title>
    <id>4632</id>
    <revision>
      <id>40997</id>
      <timestamp>2011-01-05T08:05:29Z</timestamp>
      <contributor>
        <username>fredrik_wendt</username>
        <id>1469</id>
      </contributor>
      <comment>About dialog in Wifi Assistant</comment>
      <text xml:space="preserve">About dialog in Wifi Assistant</text>
    </revision>
  </page>
  <page>
    <title>File:Wifi-assistant-screenshot-daemon-settings.png</title>
    <id>4639</id>
    <revision>
      <id>41004</id>
      <timestamp>2011-01-05T08:27:29Z</timestamp>
      <contributor>
        <username>fredrik_wendt</username>
        <id>1469</id>
      </contributor>
      <comment>The Daemon Settings dialog in Wifi Assistant</comment>
      <text xml:space="preserve">The Daemon Settings dialog in Wifi Assistant</text>
    </revision>
  </page>
  <page>
    <title>File:Wifi-assistant-screenshot-delete.png</title>
    <id>4635</id>
    <revision>
      <id>41000</id>
      <timestamp>2011-01-05T08:08:43Z</timestamp>
      <contributor>
        <username>fredrik_wendt</username>
        <id>1469</id>
      </contributor>
      <comment>The Delete dialog in Wifi Assistant</comment>
      <text xml:space="preserve">The Delete dialog in Wifi Assistant</text>
    </revision>
  </page>
  <page>
    <title>File:Wifi-assistant-screenshot-launch-list.png</title>
    <id>4637</id>
    <revision>
      <id>41002</id>
      <timestamp>2011-01-05T08:13:11Z</timestamp>
      <contributor>
        <username>fredrik_wendt</username>
        <id>1469</id>
      </contributor>
      <comment>The list of networks in Wifi Assistant</comment>
      <text xml:space="preserve">The list of networks in Wifi Assistant</text>
    </revision>
  </page>
  <page>
    <title>File:Wifi-assistant-screenshot-launch-settings-empty.png</title>
    <id>4636</id>
    <revision>
      <id>41001</id>
      <timestamp>2011-01-05T08:08:52Z</timestamp>
      <contributor>
        <username>fredrik_wendt</username>
        <id>1469</id>
      </contributor>
      <comment>The Launch Settings dialog in Wifi Assistant</comment>
      <text xml:space="preserve">The Launch Settings dialog in Wifi Assistant</text>
    </revision>
  </page>
  <page>
    <title>File:Wifi-assistant-screenshot-launch-settings.png</title>
    <id>4638</id>
    <revision>
      <id>41003</id>
      <timestamp>2011-01-05T08:19:20Z</timestamp>
      <contributor>
        <username>fredrik_wendt</username>
        <id>1469</id>
      </contributor>
      <comment>The Launch Settings dialog in Wifi Assistant</comment>
      <text xml:space="preserve">The Launch Settings dialog in Wifi Assistant</text>
    </revision>
  </page>
  <page>
    <title>File:Wifi-assistant-screenshot-menu.png</title>
    <id>4634</id>
    <revision>
      <id>40999</id>
      <timestamp>2011-01-05T08:08:39Z</timestamp>
      <contributor>
        <username>fredrik_wendt</username>
        <id>1469</id>
      </contributor>
      <comment>The application menu in Wifi Assistant</comment>
      <text xml:space="preserve">The application menu in Wifi Assistant</text>
    </revision>
  </page>
  <page>
    <title>File:Wifi-assistant-screenshot-popup.jpg</title>
    <id>4633</id>
    <revision>
      <id>40998</id>
      <timestamp>2011-01-05T08:08:31Z</timestamp>
      <contributor>
        <username>fredrik_wendt</username>
        <id>1469</id>
      </contributor>
      <comment>The Popup dialog in Wifi Assistant</comment>
      <text xml:space="preserve">The Popup dialog in Wifi Assistant</text>
    </revision>
  </page>
  <page>
    <title>File:Wm-niels breet.png</title>
    <id>1351</id>
    <revision>
      <id>8947</id>
      <timestamp>2008-11-24T12:19:49Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:XOrg Logo.png</title>
    <id>1081</id>
    <revision>
      <id>6302</id>
      <timestamp>2008-08-05T15:48:42Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Xephyr af and gtk helloworld.png</title>
    <id>1454</id>
    <revision>
      <id>9948</id>
      <timestamp>2009-01-21T14:11:24Z</timestamp>
      <contributor>
        <username>qlin</username>
        <id>517</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Xephyr af and gtk helloworld runstandalone.png</title>
    <id>1455</id>
    <revision>
      <id>9949</id>
      <timestamp>2009-01-21T14:11:53Z</timestamp>
      <contributor>
        <username>qlin</username>
        <id>517</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Xephyr empty.png</title>
    <id>1452</id>
    <revision>
      <id>9946</id>
      <timestamp>2009-01-21T14:10:07Z</timestamp>
      <contributor>
        <username>qlin</username>
        <id>517</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Xephyr gtk helloworld.png</title>
    <id>1453</id>
    <revision>
      <id>9947</id>
      <timestamp>2009-01-21T14:10:46Z</timestamp>
      <contributor>
        <username>qlin</username>
        <id>517</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Xgrind.jpg</title>
    <id>4796</id>
    <revision>
      <id>42541</id>
      <timestamp>2011-03-08T18:25:25Z</timestamp>
      <contributor>
        <username>godofwar424</username>
        <id>4012</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Xgrind.jpg]]&quot;</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Xterm.png</title>
    <id>2596</id>
    <revision>
      <id>19399</id>
      <timestamp>2009-10-06T09:05:26Z</timestamp>
      <contributor>
        <username>bijjal</username>
        <id>338</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Xterm 016 5.png</title>
    <id>2409</id>
    <revision>
      <id>17961</id>
      <timestamp>2009-09-10T13:54:02Z</timestamp>
      <contributor>
        <username>celtica96</username>
        <id>1141</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:Zelda.jpg</title>
    <id>1841</id>
    <revision>
      <id>13124</id>
      <timestamp>2009-05-07T17:38:41Z</timestamp>
      <contributor>
        <username>qole</username>
        <id>57</id>
      </contributor>
      <comment>uploaded a new version of &quot;[[Image:Zelda.jpg]]&quot;: I want the full size version, we can show the thumbnail on the page.</comment>
      <text xml:space="preserve">This is a screen shot from KDE 3.5.8 from penguinbait</text>
    </revision>
  </page>
  <page>
    <title>File:ZipV2-48.png</title>
    <id>3961</id>
    <revision>
      <id>33001</id>
      <timestamp>2010-04-18T20:22:28Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>File:ZipV2-64.png</title>
    <id>3962</id>
    <revision>
      <id>33002</id>
      <timestamp>2010-04-18T20:23:59Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>Firefox mobile</title>
    <id>4574</id>
    <revision>
      <id>48850</id>
      <timestamp>2012-07-29T15:35:48Z</timestamp>
      <contributor>
        <username>qwazix</username>
        <id>4592</id>
      </contributor>
      <comment>/* Stable 1.1 */</comment>
      <text xml:space="preserve">Firefox mobile, &quot;Fennec&quot; which Mozilla uses as its project code name, is a mobile browser that uses the same engine as the popular desktop version. Unlike MicroB, which is also based on Firefox, supports tabbed browsing but can take longer to initially start.

==Versions of Firefox Mobile==

Nightly/trunk/minefield versions are updated every day and can contain all sorts of bugs, features and improvements.

Beta versions are more ready for general users, but they might contain some bugs, which should be reported by beta testers so that they would be fixed, and stable version released after beta was - stable.

Chinook is Maemo 3 version.

[[Open development/Maemo roadmap/Diablo|Diablo]] is Maemo 4 version.

[[Open development/Maemo roadmap/Fremantle|Fremantle]] is Maemo 5 version.

GTK+ is default cross-platform widget toolkit, which is slowly replaced by Qt cross-platform application framework.

For instance, default application on Maemo 5 are based on GTK+, and at the same time Maemo 5 includes Qt which can be used by additional applications. MeeGo is based on Qt, and GTK+ is included for compatibility.

Firefox mobile, Qt-based, is default browser for MeeGo Handset UX.

Now, the list of Firefox mobile versions.

===Stable 1.1===

* diablo [ftp://ftp.mozilla.org/pub/mozilla.org/mobile/releases/1.1/maemo4/en-US/fennec_1.1_armel.deb Latest diablo release]
* weave for 1.1 [http://download.cdn.mozilla.net/pub/labs/weave/development/1.7.x/ weave 1.7]
* fremantle [http://ftp.mozilla.org/pub/mozilla.org/mobile/releases/latest/maemo/en-US/dists/fremantle/release/binary-armel/ Latest fremantle release]

===beta 4.b4===

* fremantle
** [http://ftp.mozilla.org/pub/mozilla.org/mobile/releases/latest-beta/maemo/en-US/dists/fremantle/release/binary-armel/ Latest beta fremantle release]
** [http://ftp.mozilla.org/pub/mozilla.org/mobile/releases/latest-beta/maemo5-gtk/en-US/ Latest beta Maemo 5 GTK+ release]

Actually, I believe there is no difference between these two links.

===nightly 4.b5pre===

* fremantle-qt [http://ftp.mozilla.org/pub/mozilla.org/mobile/repos/trunk_en-US/dists/fremantle-qt/extras/binary-armel/ Latest nightly (trunk) fremantle qt release]
* fremantle [http://ftp.mozilla.org/pub/mozilla.org/mobile/repos/trunk_en-US/dists/fremantle/extras/binary-armel/ Latest nightly (trunk) fremantle (gtk) release]

===nightly 1.1b2pre===

* chinook [http://ftp.mozilla.org/pub/mozilla.org/mobile/repos/1.9.2_en-US/dists/chinook/extras/binary-armel/ Latest nightly (trunk) chinook release]
* fremantle [http://ftp.mozilla.org/pub/mozilla.org/mobile/repos/1.9.2_en-US/dists/fremantle/extras/binary-armel/ Latest nightly (trunk) fremantle release]

==Firefox Settings==

There are two ways to change the settings for Firefox. One is through the settings menu which can be accessed by dragging a webpage to the left and clicking on the cog icon near the bottom right. The other is through &quot;&lt;code&gt;about:config&lt;/code&gt;&quot; which allows you to further customize your Firefox configuration.

===Disabling Portrait Mode===
'''This is not working on January 2011''' (on fennec4-b4). Check status on: https://bugzilla.mozilla.org/show_bug.cgi?id=625350

# Press (shift+ctrl+o) to lock/unlock orientation (you will see notification)
OR
# In the location bar (Awesomebar) enter &quot;&lt;code&gt;about:config&lt;/code&gt;&quot; and press enter.
# Use the search bar to find the entry below:&lt;pre&gt;toolkit.screen.lock&lt;/pre&gt;
# change it to &lt;code&gt;true&lt;/code&gt;

===Disabling Auto-Zoom===

====On Input Box====

# Open page:&lt;pre&gt;about:config&lt;/pre&gt;
# Find setting:&lt;pre&gt;formhelper.autozoom&lt;/pre&gt;By default, it is set to true.
# Set it to false.

====On Find====

# Open page:&lt;pre&gt;about:config&lt;/pre&gt;
# Find setting:&lt;pre&gt;findhelper.autozoom&lt;/pre&gt;By default, it is set to true.
# Set it to false.

===Enabling Flash===

Firefox mobile has a flash plugin which is disabled by default for stability and speed. It can however be enabled by following these instructions

&lt;ol&gt;
&lt;li&gt;
In the location bar (Awesomebar) enter &quot;about:config&quot; and press enter. You should now also see a search bar below the location bar
&lt;/li&gt;
&lt;li&gt;
In the search bar enter &quot;plugin.d&quot; and you should see the two entries below
&lt;pre&gt;
plugin.default_plugin_disabled
plugin.disable
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
change both these entries to false and restart Firefox Mobile
&lt;/li&gt;
&lt;/ol&gt;

you should now have flash enabled.

==Copy and Paste Text==

Firefox Mobile does allow you to copy and paste text. Unlike MicroB you CANNOT enter a text selection mode by swiping to the right from off screen to onscreen.  To select text in Firefox mobile you must click on the position where you want to start highlighting text. Nothing will appear to have happened but an invisible cursor is placed where you have clicked. Now press

Shift + Left Arrow : to start highlighting left of the cursor 

or

Shift + Right Arrow : to start highlighting right of the cursor

Up and Down do not work. To copy the selected text you must perform the standard copy hotkey (Ctrl+C). Hotkeys for Firefox Mobile are shown below.

==Hotkeys==

This is a list of known hotkeys for Firefox Mobile. Hotkeys are very similar to the desktop version but there are some differences. 

* Ctrl + W  : Close Tab
* Ctrl + T  : New Tab
* Ctrl + R  : Reload page
* Ctrl + L  : Location bar (AwesomeBar)
* Ctrl + C  : Copy
* Ctrl + X  : Cut
* Ctrl + V  : Paste

[[Category:Web]]
[[Category:Fremantle]]
[[Category:OS2008]]
[[Category:Diablo]]</text>
    </revision>
  </page>
  <page>
    <title>First Steps With Your Nokia Tablet</title>
    <id>1880</id>
    <revision>
      <id>40598</id>
      <timestamp>2010-12-07T08:39:42Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">So, you've bought a [[Nokia N810]] or [[Nokia N800|N800]] internet tablet and you're now wondering what to do with it. To help you out, here's a brief guide to the first things you should do after getting it home.

== First walk-through ==

Check out [http://www.internettablettalk.com/tablet101/ this introductory video] to get started.

== Check everything is in the box==

The box should contain:

* The tablet itself (probably with a plastic film across the screen for shipping)
* Two styluses (one of them may be inserted in the tablet, the other is a spare)
* Battery (probably in a plastic pouch for shipping)
* Charger
* USB cable (miniUSB for the N800, microUSB for the N810)
* Possibly a memory card, the size seems to vary depending on where you buy it.
* A &quot;Getting Started&quot; pamphlet
* A pouch for the tablet
* 3.5mm earphones, which are actually a headset too as they contain a microphone in the large plastic section of the lead.
* The N810 includes a mounting kit for fitting it in your car, so you can use it for satellite navigation. The N800 does not have this kit.

If anything is missing and you've bought the tablet new, contact the shop you bought it from as it's their responsibility to supply a complete product. Do this as soon as you notice something is missing.

If you've bought the tablet second hand, you may need to replace any missing items yourself. Always check for a list of contents before buying a used item, so that you know exactly what comes with it.

== Charge the tablet until it's full ==

Put the battery into the tablet, making sure the prongs of the tablet match up to the prongs of the battery.

Plug the tablet in to charge using the charger that comes with it. Alternatively you can use chargers for Nokia phones as they are all compatible with each other, though the phone chargers tend to be slower than the tablet chargers.

You do NOT need to drain the battery before charging. The tablets use modern lithium batteries which do not require draining at all. If anyone has told you to drain the battery, they're wrong, don't listen to them. Some laptop batteries may require draining, but tablet batteries do not.

Charging an empty tablet battery should take from 1.5 hours to 4 hours, depending on what kind of charger you're using and other factors. If the battery isn't empty, charging will be faster. It's absolutely fine to charge a half-empty tablet battery, because lithium batteries have no &quot;memory effect&quot;.

When the tablet has fully charged, you will see a message on its screen telling you so. Unplug the charger, but do not switch the tablet on.

== Update the tablet's firmware ==

Before you start using the tablet for the first time, it's important to update its firmware first.

There are many good reasons for this. If you've bought the tablet new, the latest firmware will be the most reliable and contain the most features. If you've bought the tablet used, updating the firmware will restore the tablet to factory condition.

If you're not sure what firmware is, or how you can update it, see our complete tutorial at the link in the Maemo beginner's guide. Note that if you've just got your tablet you do not need to do any of the backup procedures described in the article, you can skip straight to the section on actually doing the firmware update.

== Connecting to the internet via Bluetooth ==

If you want to connect the tablet to the internet through your mobile phone, switch on its Bluetooth and make sure it's near the tablet.

The Nokia tablets can connect to the internet through Wi-Fi and through a Bluetooth mobile phone. Your tablet can connect through your phone as long as it's within 10 metres / 10 yards, so for example you could keep the phone in your pocket or bag while using the tablet.

When you switch the tablet on for the first time after a firmware update, it will ask you about setting up this kind of phone connection, so you might want to have your phone ready with its Bluetooth switched on.

However, the phone connection is totally optional, you can just use Wi-Fi if you prefer.

If you don't want to use your phone to connect the tablet, you can skip the part about setting up a phone connection. If you later decide you do want to use a phone after all, you can easily go back to the set-up process.

Note that phone internet connections can be very expensive or very cheap, depending on what your network operator charges and what kind of plan you're on. Contact your network operator and tell them you want to use your phone as a Bluetooth modem (that &quot;modem&quot; word is very important, don't just say you want to use the internet). Ask them how much this would cost and whether they have any special deals such as monthly flat fees. If it's too expensive for you, don't use the phone to connect your tablet.

== Switch on the tablet and set up its internet connection ==

You're now ready to switch on the tablet for the first time!

On the first switch-on after a firmware update, the tablet will ask you the time and date, and then ask you about setting up a mobile phone connection. If you don't want to use your phone to connect the tablet to the internet, just press cancel when it asks about the phone. You can always go back to this setup process later if you want.

You will then see the tablet desktop, where we can set up the Wi-Fi connection (also known as a &quot;WLAN&quot; connection).

Once you've got your tablet connected to the internet by either wi-fi or phone, you can try out all its main features.

== Try out the tablet's main features to make sure they work properly ==

Now that your internet tablet has been connected to the internet, it's time to take it for a spin and see if everything is working properly.

The three icons on the left are the most important: the Web icon, Contacts icon and Applications icon.

* The Web menu lets you open a new browser window, or select a bookmark. The web browser is based on the same technology as Firefox, and should render web pages in a similar way to a computer running Firefox. The tablet browser has Flash, AJAX and Javascript support, so you can visit almost all sites that a PC can. Click here to find out more about browsing the web in our tablet browser tutorial.
* The Contacts menu is used to access the tablet's own built-in e-mail, internet phone, internet video and instant messaging applications. You can use other third party applications instead, but they will appear in the Applications menu rather than the Contacts menu. Click here to find out more about using the tablet's built-in e-mail application, and also click here to find out more about using the tablet's built-in internet video call application.
* The Applications menu is used to access the tablet's other built-in applications, third party applications (such as Skype) and all of the tablet settings. If you install extra applications these tend to appear in the &quot;Extras&quot; section of the Applications menu.

Try out the different features, especially those that are important to you.

If something doesn't work, new tablets all come with a 1 or 2 year guarantee (depending on where you buy them in the world) which means you should be able to get free repairs or a replacement if it doesn't work properly. You can find out more by going to [http://www.nokia.com/support/ nokia.com/support] and selecting your country. The guarantee doesn't apply to used tablets though.

== If it works, enjoy ==

If all of the above works, then great! Here's how to get the most out of your tablet.

A [[Screen protector]] will help to keep your devices screen intact, even when putting the device in the same pocket as your keys.

One could start with [[Getting media content onto your tablet]] -article because own music and videos are an easy way to make device personal and carry your favourite media with you all the time.

If you want to get the most out of your tablet, beginners should check out the [[New users]] -article which contains lots of information for beginners.

You may also want to visit [http://talk.maemo.org maemo.org's] forums if you have problems. Try to use the &quot;Search&quot; option to see if your question has been asked before, and if you can't find the answer to your problem you could try starting a new topic detailing your problem.

It's worth remembering that the tablets provide something for people of all skill levels. You don't need to do anything nerdy to get a lot out of the tablets, their built-in applications are good enough for most people's internet-related needs. There are two categories: [[:Category:Beginners|Beginners]] and [[:Category:Power users|Power users]]

But the tablets are designed in a way that also leaves the door open for those who do want to mess around &quot;under the bonnet&quot;, so it keeps them happy too. If you have a feeling that you want to mess around, go ahead and browse through [[:Category:Power users|Power users]] category articles!

== Memory card ==

If you want to use your tablet for music and/or videos, you should buy a bigger memory card than the one that comes bundled with the tablet.

The N800 can use SD cards and SDHC cards up to any capacity, the official limit is 8 gigabytes but unofficially much bigger cards work too. It can also use microSD, microSDHC, miniSD and miniSDHC cards as long as they have an adaptor to make them physically SD-sized. The N800 can hold two memory cards at once.

The N810 can use miniSD and miniSDHC cards, or microSD and micrdSDHC cards with an adaptor to make them miniSD-sized. As on the N800, the cards can be any capacity, with the official limit being 8 gigabytes but unofficially bigger cards work too. The N810 can only hold one memory card at once, because it has a non-removable 2 gigabyte memory card built into itself.

You do NOT need to use Nokia-brand memory cards, any manufacturer's cards will do. Other brands such as SanDisk and Kingston are fine as long as you buy them from a reputable electronics shop. Try not to buy used memory cards or cards from online auction sites as they may not be very reliable.

[[Category:Beginners]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>Flasher</title>
    <id>1201</id>
    <revision>
      <id>33036</id>
      <timestamp>2010-04-19T11:52:29Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>reduce to redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5]]</text>
    </revision>
  </page>
  <page>
    <title>Flashing</title>
    <id>3127</id>
    <revision>
      <id>24056</id>
      <timestamp>2009-12-05T15:09:24Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>Redirecting to [[Updating the firmware]]</comment>
      <text xml:space="preserve">#REDIRECT [[Updating the firmware]]</text>
    </revision>
  </page>
  <page>
    <title>Flashing N9</title>
    <id>5163</id>
    <revision>
      <id>50653</id>
      <timestamp>2012-11-04T12:14:04Z</timestamp>
      <contributor>
        <username>unphysicalix</username>
        <id>5507</id>
      </contributor>
      <minor/>
      <comment>update for PR1.3, highlight youtube tutorial, recommend renaming firmware images</comment>
      <text xml:space="preserve">{{ambox
|type=notice
|text=This '''unofficial''' guide recommends downloads from '''untrusted''' third party servers. Nobody knows who hosts the content and whether the software has not been altered (e.g. spyware). '''Use at your very own risk.'''
}}

&lt;br/&gt;

 {{ambox
|type=notice
|text=&quot;Reflashing&quot; your phone with the original Nokia firmware can solve many problems and is necessary in a number of circumstances, but a lack of documentation has resulted in a lot of misinformation and confusion. Hopefully, this guide will demystify the process and help bring ailing N9s back to life. 
}}

&lt;br/&gt;

{{ambox
|type=delete
|text=Improperly using flasher could damage your phone and void your warranty. However, following these directions precisely to use flasher to install &quot;stock&quot; Nokia firmware images is quite safe, and can fix problems that would otherwise require warranty service. In any case, '''flashing your phone is at your own risk'''. Do not use this guide if you aren't somewhat familiar with the command prompt/terminal on your operating system. While many users have experienced success with this process, it is not officially recommended by Nokia in any way. '''Read the entire guide ''before'' you start.'''
}}

&lt;br/&gt;

{{ambox
|type=delete
|text=Installation of generic firmware images on certain carrier-branded phones seems to be blocked - if you're currently running a carrier-branded firmware image, it's recommended to wait for more details.
}}

&lt;br/&gt;

{{ambox
|type=delete
|text=Do not modify the product code of your N9. Doing so is not necessary to replace your phone's firmware, and some programs for changing the code could cause problems (namely NSS Pro).
}}


=== Tutorial ===
* YouTube Video Tutorial: http://youtu.be/u5Qp92WttU4

===Selecting a Firmware image===

Main firmware images for the Nokia N9 are divided up into &quot;variants&quot; by regions of the world. Except for carrier-branded variants and the 003 (China) firmware, these images are more or less the same.

 001 - Europe (1), Latin/South America, South Africa
 003 - China
 005 - Asia/Pacific (incl. Australia/New Zealand, excl. China) 
 006 - Middle East
 009 - Europe (2)
 2xx, 3xx, 4xx - &quot;Country Variant&quot; and carrier-branded images

Downgrades of firmware are normally blocked by the phone. Whether something is a &quot;downgrade&quot; is determined by comparing the entire version strings of the old and new firmware versions, which include the variant code, from left to right. As a result, the variant code must be the same or higher unless you also upgrade the firmware version at the same time. For example:

 PR 1.1 variant 009 to PR 1.1 variant 003: Blocked
 PR 1.1 variant 003 to PR 1.1 variant 009: Allowed
 PR 1.1 variant 009 to PR 1.2 variant 001: Allowed
 PR 1.1.1 variant 006 to PR 1.2 variant 005: Allowed
 PR 1.2 variant 001 to PR 1.1 variant 001: Blocked

Additionally, there is a content image (&quot;eMMC image&quot;) for most countries/regions that can be used to reset the user data on the phone and restore the wallpaper/music/map files that originally shipped with it. It is possible to &quot;mix and match&quot; any content image with any main firmware image, which is useful for installing your home country's maps on an imported N9. If you don't require preinstalled maps, or if Nokia doesn't produce a content image for your country (e.g. US and Canada), you can save time by using the content image for product code 059J1Z5 (&quot;rest of world&quot;), which doesn't include map files.

When downloading firmware images, it doesn't matter which color or capacity (16/64 GB) you select - the files are the same for all models.

Nokia recommends always using the latest firmware image for your phone's product code (printed on the SIM card tray). This is the safest option. However, you may wish to change to a different variant than what shipped with the phone for the following reasons:

* Receiving updates sooner - new firmware versions are normally released for the 001 variant first
* Removing carrier branding - installing 00x variant firmware makes your subsidized N9 act just like an unlocked one
* Switching away from 003 (China) firmware - firmware images for N9s shipped in China lack Western online service integration (Twitter, Facebook, Skype, Dropbox) and include the Chinese IM service QQ instead

==Download Firmware image==

Use the following steps to retrieve the appropriate firmware files for your phone:

===Windows===
Download and run [http://www.symbian-toys.com/navifirm.aspx NaviFirm+], a utility for downloading firmware files from Nokia's servers.
Make sure Server is set to Nokia Care Suite.
Find Nokia N9 (RM-696) in the Products list, then select the firmware release you wish to install.

 10.2011.34.1 = PR1.0 
 20.2011.40.4 = PR1.1
 22.2011.44.2 = PR1.1.1 (Middle East only)
 30.2012.7.1 = PR1.2
 40.2012.21.3 = PR1.3

Select the appropriate product code in the Variants list. In most cases, you should use the product code printed on the SIM tray.
Click Unmark All, then scroll to the bottom of the Files section. Tick the boxes for the two files starting with DFL61_HARMATTAN.
Click Download. Wait for the download to complete, then close NaviFirm+.

===Linux===
Install WINE using your Linux distro's packages.
Download and run [http://code.google.com/p/navifirmex/ NaviFirmEx], a replacement for Navifirm+ that doesn't use .NET.
Select Option &gt; Server &gt; Nokia Care Suit [sic] in the menu.
Find Nokia N9 (RM-696) in the Products list, then select the firmware release and variant you wish to install (see above).
Click Add to Download Task, then Inverse Select. Tick the boxes for the two files starting with DFL61_HARMATTAN.
Click Download. Wait for the download to complete, then close NaviFirmEx.

===Any OS===
Go to [http://www.btusers.com.ar/nan/nokia/ Nokia Firmwares] (unofficial firmware download site) and search for Nokia N9. Click CHECK! toward the right-hand side.
Click the link for the firmware release you wish to install (see above).
Click the link for the file starting with DFL61_HARMATTAN.
Unlike NaviFirm+, this website cannot retrieve content/eMMC images.

==Back up your data==

All of the procedures described below will destroy some or all of the data on your phone, so you should be sure to back up anything you care about first. This includes contacts, messages, game saves, music, .deb packages, etc. You can do this either through the built-in backup feature or manually using developer mode.

==Prepare to Flash==

If your phone has a low battery charge (less than 50%), plug it in and let it charge for a while. Then, make sure your phone is disconnected from any USB cables (including USB chargers). Power off the phone.

Go to the [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Flasher download site] and download/install the version for your operating system (WinFlasher_3.12.1.exe, MacFlasher_3.12.1.dmg, flasher_3.12.1_i386.deb, or flasher_3.12.1_amd64.deb). Do not use Flasher 3.5 - it isn't compatible with the N9/N950. You can skip this step if you've already installed Flasher.

On Windows, open a Command Prompt with Administrator permissions (with UAC, right-click Command Prompt and select Run as administrator). On Linux, open a root shell (sudo -i/su). Change to the directory containing the firmware images you downloaded.

On Windows, run the following command in order to add Flasher to the system path:

 set PATH=&quot;C:\Program Files\Nokia\Flasher;%PATH%&quot; 

'''Note''': In the following the main firmware image is called &quot;main.bin&quot; and the eMMC image is called &quot;emmc.bin&quot;. You must replace main.bin and emmc.bin in the commands with the actual names of the image files you are flashing or rename the downloaded files like this (e.g. under linux)

  mv DFL61_HARMATTAN_40.2012.21-3_PR_LEGACY_001-OEM1-958_ARM.bin main.bin
  mv DFL61_HARMATTAN_40.2012.13-7.ALPS_EMMC_ALPS.bin emmc.bin

==Flash the phone==

Run the following command, then connect the phone to your PC.

 flasher -i

The current firmware version of your phone should appear. It is now time to flash.

Use the following list to determine which of the steps below you need to use to accomplish a particular task:

* Upgrade operating system: Replace operating system
* Recover from damaged OS install: Replace operating system
* &quot;Unbrick&quot; phone: Replace operating system or Comprehensive reset
* Reset back to a &quot;clean slate&quot;: Comprehensive reset
* De-brand phone: Comprehensive reset
* Prepare for enabling open mode: Comprehensive reset
* Disable open mode: Comprehensive reset
* Prepare for selling, recycling, or destroying phone: Zeroize device
* Clear data before returning phone for warranty service (if possible): Zeroize device
* Reset device lock code: Zeroize device


===Replace operating system (preserves user data)===

The following command will replace your phone's operating system with the supplied firmware image. All applications will be removed, but music/documents/maps/etc. will be kept. This is equivalent to updating/restoring your phone using the Nokia Software Updater (NSU) utility.

 flasher -f -F main.bin

===Comprehensive reset (destroys user data)===

The following commands will remove all data from your phone and restore it to factory state. The provided content files (sample music, wallpaper, etc.) will be restored.


 flasher -f -F main.bin
 flasher -f -F main.bin -F emmc.bin --flash-only=mmc

===Zeroize device (destroys user data)===

The following commands will securely erase your phone such that no data can be recovered later, then restore the operating system and provided content.

{{ambox
|type=delete
|text=The secure erase feature has not been audited by a 3rd party. Do not rely on it to protect all traces of highly sensitive information from a well-funded attacker. The first part will take a very long time - let it run overnight.
}}

 flasher -f -F main.bin --erase-user-data=secure
 flasher -f -F main.bin -F emmc.bin --flash-only=mmc

==Recovering from flash errors==

'''Note''': If you did not receive any errors, you can skip this section.

In some cases, the new firmware image includes cellular modem (CMT) firmware that is older than what is already installed. This has typically happened when flashing N9s running 003 (China) firmware with other firmware variants. If you received an error about flashing the CMT, obtain the image for the firmware that was previously installed, then run:

 flasher -f -F old_main.bin --flash-only=cmt

If you previously upgraded your phone &quot;over the air&quot; (through SSU) and now receive a Downgrade disallowed error when flashing, try flashing an image with a higher variant code. For example, if you experienced the error with variant 001, try using variant 005 instead.

==Reboot into the new operating system==

The phone is now ready to leave flashing mode:

 flasher -R

Use the power/lock button to boot your phone into the new system. Your N9 is now ready to use!

== References ==
[http://talk.maemo.org/showthread.php?t=82693 HOWTO Comprehensive Firmware Flashing Guide for N9 by itsnotabigtruck]

[[Category:N9]]</text>
    </revision>
  </page>
  <page>
    <title>Flashing tablet with new image</title>
    <id>153</id>
    <revision>
      <id>27654</id>
      <timestamp>2010-01-28T14:05:40Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Updating the firmware]]</text>
    </revision>
  </page>
  <page>
    <title>ForceRotation</title>
    <id>4852</id>
    <revision>
      <id>43318</id>
      <timestamp>2011-05-04T08:52:17Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Using Fremantle widgets#Forcing screen rotation]]</comment>
      <text xml:space="preserve">#REDIRECT [[Using Fremantle widgets#Forcing screen rotation]]</text>
    </revision>
  </page>
  <page>
    <title>Foss.in</title>
    <id>3103</id>
    <revision>
      <id>23562</id>
      <timestamp>2009-11-30T12:02:14Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">'''Bangalore, India,  December 1-5 2009'''

Location: NIMHANS Convention Center, Marigowda Road, Bangalore, In 12° 56.628 N 77° 35.778 E

Maemo Devices will be present at http://foss.in/

Rough Agenda:
* hack sessions on the first two days
* regular tutorials and activities at the stall
* talks on the 4th day

Get info from the [http://maemobangalore.wordpress.com/ Maemo Bangalore blog].

[[Category:Events]]</text>
    </revision>
  </page>
  <page>
    <title>FreeMaemo</title>
    <id>3117</id>
    <revision>
      <id>23689</id>
      <timestamp>2009-12-02T02:27:01Z</timestamp>
      <contributor>
        <username>cwebber</username>
        <id>1523</id>
      </contributor>
      <comment>[[FreeMaemo]] moved to [[Free Maemo]]: Might as well have a space.</comment>
      <text xml:space="preserve">#REDIRECT [[Free Maemo]]</text>
    </revision>
  </page>
  <page>
    <title>Free Maemo</title>
    <id>3116</id>
    <revision>
      <id>46032</id>
      <timestamp>2011-12-15T06:29:35Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 46002 by [[Special:Contributions/114.79.28.10|114.79.28.10]] ([[User talk:114.79.28.10|Talk]]) vandalism/spam</comment>
      <text xml:space="preserve">{{out of date}}

The purpose of this page is to document efforts to free the
[http://maemo.org Maemo] mobile environment as well as document the
steps necessary to use the [[Nokia N900|N900]] device as a fully free phone.

At the time of writing, the N900 / [[Open development/Maemo roadmap/Fremantle|Maemo 5]] ship with a mix of free and nonfree components.  Our goal should be to figure out how to use only free components while still maintaining a usable and enjoyable device.

Some discussion is happening at http://maemo.org/community/maemo-developers/double_checking_free-nonfree_packages/.

== Components in need of attention ==

Graph depicting status of free/nonfree components on the N900:

[[Image:Top_level_architecture.png|800px]]

(nonfree components are in red, free components are in black)

(taken from [[Documentation/Maemo_5_Developer_Guide/Architecture/Top_Level_Architecture|Toplevel Architecture]] page)

'''NOTE:''' This list probably contains some items that are at the time of writing, actually free software. There is an [http://lists.maemo.org/pipermail/maemo-developers/2009-December/022747.html email thread aiming to clarify this], and once those clarifications are made certain items will be removed from the following list of non-free packages.

=== Sharing plugins / libsharing ===

http://maemo.org/api_refs/5.0/5.0-final/libsharing-plugin/ch07.html

=== calendar-backend ===

Appears to be a free version:

http://maemo.gitorious.org/calendar-backend

=== libtime ===

Time management service is a new subsystem to provide a common library
for all time-related (not alarms, though) services.

http://maemo.org/api_refs/5.0/beta/libtime/

=== libcityinfo ===

From [http://maemo.org/api_refs/5.0/beta/libcityinfo/]:

:Cityinfo library allows to get some informations about set of cities from all over the world. Each city is connected with one timezone (related to standard linux time zone database) so You can get local time in given city by calling functions from libtime (clockd) library.

Maemo mapper is apparently a free replacement: http://maemo.org/downloads/product/OS2008/maemo-mapper/

=== startup wizard ===

Presumably this is the &quot;wizard&quot; that appears when a user first logs in. This would be nice to be made free but is not critical.

=== factory store / clear user data ===

This would be nice to be made free but is not critical.

=== gypsy daemon ===

This appears to be free to me:

http://gypsy.freedesktop.org/wiki/

According to cool900: http://cool900.blogspot.com/2009/11/closed-source-components-in-maemo-5.html

(2009-11-13: Gypsy daemon in location framework is in free.)

=== liblocation / location daemon ===

Some information here: http://maemo.org/api_refs/5.0/5.0-final/liblocation/LocationGPSDevice.html

outdated stuff here: http://maemo.org/maemo_release_documentation/maemo4.1.x/node10.html#SECTION001027000000000000000

=== backup ===

[[Documentation/Maemo_5_Developer_Guide/Generic_Platform_Components/Using_Backup_Application]]

=== Address book / &quot;Contacts&quot; application ===

[[Documentation/Maemo_5_Developer_Guide/Using_Generic_Platform_Components/Using_Address_Book_API]]

Sits on top of evolution backend stuff. So might not be too hard to build a UI replacement that conforms to the the same backend?

=== Media player ===

This is allegedly nonfree

=== mission control ===

This is a strange one because Mission Control is itself free software, which is a Telepathy component:

http://mission-control.sourceforge.net/

However they apparently have some nonfree bits:

: &lt;wjt&gt; paroneayea: MC itself is LGPL  [15:13]
: &lt;wjt&gt; paroneayea: Maemo uses osso-mission-control, which is upstream MC plus
:       some proprietary bits

=== rtcom-eventlogger ===

Apparently recently freed according to:

http://cool900.blogspot.com/2009/11/closed-source-components-in-maemo-5.html

=== libaccounts ===

http://rtcomm.garage.maemo.org/docs/libaccounts/

=== SSO ===

????

Not even sure what this is. Supposedly single-signon related?

=== PulseAudio PEP ===

From
[[Documentation/Maemo_5_Developer_Guide/Architecture/Multimedia_Domain#PulseAudio_Policy_Enforcement_Point]]:

:PulseAudio plugin to manage volume levels, re-route streams and eventually forcefully shutdown streams.

=== libplayback ===

From
[[Documentation/Maemo_5_Developer_Guide/Architecture/Multimedia_Domain#libplayback]]:

:libplayback is a client API that allows an application to declare its playback state. The library uses D-Bus to talk to a central component that manages the states. Media applications can use the API to synchronize their playback state.

=== EAP ===

From
[[Documentation/Maemo_5_Developer_Guide/Architecture/Multimedia_Domain#EAP_and_AEP]]:

:The EAP (Entertainment Audio Platform) package is used for audio post-processing (music DRC and stereo widening).

=== AEP ===

From
[[Documentation/Maemo_5_Developer_Guide/Architecture/Multimedia_Domain#EAP_and_AEP]]:

:AEP (Audio Enhancements Package) is a full duplex speech audio enhancement package including echo cancellation, background noise suppression, DRC, AGC, etc. Both EAP and AEP are implemented as a PulseAudio module.

=== FMTX middleware ===

From
[[Documentation/Maemo_5_Developer_Guide/Architecture/Multimedia_Domain#FMTX_Middleware]]:

:FMTX middleware provides a daemon for controlling the FM Transmitter. The daemon listens to commands from clients via dbus system interface. The frequency of the transmitter is controlled via Video4Linux2 interface. [...]

=== Funambol SyncML ===

Claims &quot;Funambol is the leading mobile open source project and leading provider of open source mobile cloud sync and push email for billions of phones.&quot;

https://www.forge.funambol.org/DomainHome.html

If it's &quot;open source&quot;, is it really nonfree then?

Appears to be under the AGPL? https://core.forge.funambol.org/source/browse/core/trunk/LICENSE.txt?revision=28308&amp;view=markup

=== xml2wbxml ===

Appears to be linked to the wbxmllib project, which is under the gpl? http://sourceforge.net/projects/wbxmllib/develop

=== ICD2 ===

From [http://maemo.org/api_refs/5.0/beta/icd2/]:

:The Internet Connectivity daemon, ICd2, is responsible for network connectivity in the device. It is started at system boot time from the init script /etc/init.d/icd2, and stopped with the same script at system shutdown.

:Applications requesting network connections do not interact directly with ICd2, but instead use the shared libconic library API. The libconic library is the stable maintained API for network connectivity, which uses internal D-Bus APIs com.nokia.icd and com.nokia.icd2 APIs to communicate with ICd2. These D-Bus APIs are internal and may change without further notice.

libconic appears to be free though

https://stage.maemo.org/svn/maemo/projects/haf/branches/libconic/0.13/COPYING

=== Modem Services &amp; Cellular Modem Software ===

Proprietary, hard to find documentation?

Presumably should be replaced and made free by OFono: 
* http://ofono.org/
* http://git.kernel.org/?p=network/ofono/ofono.git;a=summary

=== softupd ===

From
[[Documentation/Maemo_5_Developer_Guide/Architecture/Core_Domain#Softupd]]:

Program for flashing the eMMC contents 
* Unpacks a FIASCO image fed to it
* Copies the unpacked contents to eMMC 

=== sysinfod ===

From
[[Documentation/Maemo_5_Developer_Guide/Architecture/Core_Domain#Sysinfod]]:

Provide interface for accessing device information 

Provide a DBUS interface to device specific information (HW id, WLAN MAC, …)

=== CertMan ===

Appears to be free or have a free implementation? http://gitorious.org/+mer/mer/certman

=== OpenGL ES 2.0 ===

Can't seem to find out details about this package

There appear to be some free software implementation tests here, but not really usable?: http://www.khronos.org/developers/resources/opengles/

Vincent 3d is a free software implementation? http://www.vincent3d.com/Vincent3D/index.html

Hm, looks like the problem may be on the driver end: http://forum.openhandhelds.org/viewtopic.php?f=14&amp;t=341

And it does not look likely that this is free or that it will be free soon.

=== Nolo bootloader ===

NoLo bootloader not only is proprietary and sucky, there's almost no documentation available for it anywhere.

Some questions here:
http://maemo.org/community/maemo-developers/debian_on_the_n900-_configuring_nolo/

Could u-boot be a possible replacement?: http://www.denx.de/wiki/U-Boot

Nobody appears to have tried such a thing and there is no documentation on whether or not that will be possible.

In the meanwhile people seem to be using bootmenu as a workaround for this completely unconfigurable bootloader:
http://talk.maemo.org/showpost.php?p=344412&amp;postcount=16

However this isn't ideal, either from a practical or a free software perspective.  U-boot is probably the best replacement option?

=== Flasher ===

[[Flasher]]

Not clear if this needs a free software replacement. If we can replace the bootloader, probably doesn't.

Is this a free software replacement?: http://www.nopcode.org/0xFFFF/

=== System UI ===

Part of the &quot;System Control&quot; whatever.

From
[[Documentation/Maemo_5_Developer_Guide/Architecture/System_Software#System_UI]]:

:SystemUI provides services to other components to display UI elements (dialogs, notifications, alarms) that does not have native UI on their own.

Powerlaunch aims to provide a free replacement: http://powerlaunch.garage.maemo.org/

=== DSME ===

Freed according to:
http://cool900.blogspot.com/2009/11/closed-source-components-in-maemo-5.htmlci
(2009-11-13: DSME is in free).

Part of the &quot;System Control&quot; whatever.

From
[[Documentation/Maemo_5_Developer_Guide/Architecture/System_Software#Device_State_Management_Entity_.28DSME.29]]:

:DSME is responsible of device state management , process lifeguard support, watch dogs and thermal management. DSME architecture is based on modular plugin architecture. DSME core provides message handling capabilities to modules. Each module is dynamically loaded library. DSME runs in single process and is single threaded. The D-Bus interface provides services to request reboot, shutdown or powerup (from acting dead mode), indication of shutdown, thermal events and data save.

=== BME ===

From
[[Documentation/Maemo_5_Developer_Guide/Architecture/System_Software#BME]]:

* Provides battery monitoring and charging service. 
* Provides battery identification, monitoring, charging and BME API.
* TSS interface for A/D converter calibration.
* Emulation libraries for Nokia OS services. 

=== Clockd ===

From [[Documentation/Maemo_5_Developer_Guide/Architecture/System_Software#Clockd]]:

Provides centralized place for handling time.

=== MCE ===

From
[[Documentation/Maemo_5_Developer_Guide/Architecture/System_Software#Mode_Control_Entity_.28MCE.29]]:

:MCE is responsible of handling display control (active/dim/blank), activity monitoring (keys, buttons), keyboard backlight, ambient light sensor (ALS), LEDs and device mode control. In addition, MCE is responsible for providing interface to proximity, accelometer and vibra devices.

Powerlaunch aims to provide a free replacement: http://powerlaunch.garage.maemo.org/

Harmattan/MeeGo version of MCE appears free:
https://meego.gitorious.org/meego-middleware/mce

=== IPHBD ===

Apparently used for synchronization, according to:

http://cool900.blogspot.com/2009/11/closed-source-components-in-maemo-5.html

=== Profiled ===

From
[[Documentation/Maemo_5_Developer_Guide/Architecture/System_Software#Profiled]]:

* Provides centralized place for handling (user) profiles related data and notifications.

=== sounds ===
=== icons ===
=== fonts ===
=== themes ===

=== SDK ===

maemo-scratchbox-install_5.0beta.sh is a shell script that claims to be proprietary software owned by Nokia. So does maemo-sdk-install_5.0beta.sh.

[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Free up rootfs space</title>
    <id>3387</id>
    <revision>
      <id>49948</id>
      <timestamp>2012-09-29T10:34:50Z</timestamp>
      <contributor>
        <ip>89.200.231.139</ip>
      </contributor>
      <comment>fixed new line before &quot;Moving Nokia Maps (has to be done as root) will save 8.7 Mb&quot;</comment>
      <text xml:space="preserve">{{Danger}}

Here's a simple howto for those suffering from lack of space in rootfs. The first suggestion is more of a temporary matter, for example to get enough space to install an update, but it's also the fastest and easiest. The suggestions are in order of potential threat to operating system. Least dangerous first and the most dangerous last. The rest are more permanent (and thus more useful), but they require [[root access]].

==Listing rootfs space on your device ==

Use this command to determine how much rootfs space is allocated, used, and available on your device.

 df -h /

If you want to see all filesystems, use only &quot;df -h&quot;.

If you want a comprehensive list of what packages are using what space on rootfs, which will take a little bit of time for your device to prepare, Chris Pitchford has prepared [http://discussions.europe.nokia.com/t5/Maemo-and-MeeGo-Devices/whats-apps-take-a-lots-of-roofts/td-p/715374 a couple of scripts] which will achieve this.

== Freeing up space ==

===Disable Extras-testing, Extras-devel, and/or any other third party repositories===

Simply check the disabled box and save in the Application Manager's catalogues menu. Wait for app manger to update the lists. This only helps if you actually had these repositories enabled.

Disabling [[extras-testing]] and [[extras-devel]] will (currently) give you an extra 5 MB in rootfs

===Clear apt cache===

Run following command (has to be done as root)

 apt-get clean

will release probably near 10 MB.

===Remove unused dependencies===

Run following command (has to be done as root)

 apt-get autoremove

===Purge unused configuration files===

Even when you have uninstalled a package it may leave configuration files on your system. Use dpkg to find uninstalled packages with configuration files still in place:

 dpkg -l|grep ^rc

Remove the configuration files by purging the packages:

 dpkg --purge foo bar

If you don't want to purge all packages with uninstalled configuration files by hand, this line might come handy (as root, or with sudo in xargs):

  dpkg -l | grep ^rc | cut -d &quot; &quot; -f 3 | xargs dpkg --purge

===List of big and rarely used files===

You can't just delete these files, this is just a list with ideas! You have to know what you are going to do with them (optify, backup+remove, etc.).

* &lt;code&gt;/usr/lib/locale/locale-archive&lt;/code&gt; (28 MB) : stupid idea : if you do such a thing, you will loose all the constant texts as the names of days (&quot;Monday&quot;,&quot;Tuesday&quot;,...). What kind of advice is this?
* &lt;code&gt;/usr/share/locale&lt;/code&gt; (10 MB, but you have to keep at least the languages you use)
* &lt;code&gt;/usr/share/themes/alpha&lt;/code&gt; and &lt;code&gt;/beta&lt;/code&gt; (they use 5-6 MB each, keep the one you use - REMOVING THESE WILL GENERALLY MESS UP YOUR UI - do not simply remove them with &quot;rm -f $dir&quot; - use &quot;apt-get remove [hildon-theme-alpha|hildon-theme-beta]&quot; Similarly you can reinstall them the same way. Dependency apps: &quot;bluezwitch cherry feedingit google-search-widget hildon-desktop hildon-desktop-python-loader hildon-theme-alpha&quot;)
  hildon-theme-beta mp-fremantle-002-pr osso-startup-wizard ovi-promotion-widget)
* &lt;code&gt;/usr/share/fonts/arabic&lt;/code&gt; and &lt;code&gt;/chinese&lt;/code&gt; (2,5 MB less for people who don't speak those two languages)

===Move apt cache outside of rootfs===

If you run into a problem while using apt-get you can temporarily (for one command only) have the apt cache outside rootfs to be able to download larger deb files.

Create a download folder on the eMMC to be used for the downloaded packages instead of the default apt archive folder.

 mkdir -p /home/user/MyDocs/apt-archive-cache/archives/partial

Now execute apt-get with the -o option as root:

 apt-get -o dir::cache=/home/user/MyDocs/apt-archive-cache &lt;command&gt;

for &lt;code&gt;&lt;command&gt;&lt;/code&gt; you can enter the command you normally would use after apt-get.

Examples:

 apt-get -o dir::cache=/home/user/MyDocs/apt-archive-cache dist-upgrade
 
 apt-get -o dir::cache=/home/user/MyDocs/apt-archive-cache install &lt;package&gt;

===Optify Python===

If you have installed python or a python program before it was optified, you can optify it with this method. First [[Terminal#Opening_the_terminal|open a console]], then type the following commands as root:

 apt-get install pymaemo-optify
 apt-get clean

When the program is installed, type df -h in the xterm to see if it worked.
The output should now contain lines similar to this one:

 /opt/pymaemo/usr/lib/python2.5
                       2064208    471712   1487640  24% /usr/lib/python2.5

===Remove non-optified packages===

If you have installed programs from extras-devel, third party repositories or rarely, but possible, extras-testing, the programs might not be properly optified. Removing these might help with rootfs space.

You can free space by uninstalling applications that you do not need. A problem is if you do not know how these applications are called. To find it out:

* [[Terminal#Opening_the_terminal|Open a console]]
* Start the application that you do not need
* In the Terminal/console, type:
 ps -ef
You get a listing of all running processes, including the application you just started. To find out what package an application belongs to, enter
 dpkg --search $(which ''processname'')

Source: http://talk.maemo.org/showpost.php?p=468063&amp;postcount=1

===Custom scripts===

====Script to free up space on rootfs====

This script will move some unnecessary files on rootfs to /home/opt/ to free up space on rootfs.

BEWARE: Icon Label Issue May Occur. 
http://talk.maemo.org/showthread.php?p=654384#post654384

First, create a file, move-to-opt.sh for example, containing this script:
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
# Nokia N900 Maemo 5 Script to free up space on rootfs
# ignoring errors when creating dirs that may already exist
 
# Moving ?? icons to /home/opt
mkdir -p /home/opt/usr/share/icons 2&gt; /dev/null
cp -r /usr/share/icons/* /home/opt/usr/share/icons
rm -r /usr/share/icons
ln -s /home/opt/usr/share/icons /usr/share/icons

# Moving video on start-up to /home/opt
mkdir -p /home/opt/usr/share/hildon-welcome 2&gt; /dev/null
cp -r /usr/share/hildon-welcome/* /home/opt/usr/share/hildon-welcome
rm -r /usr/share/hildon-welcome
ln -s /home/opt/usr/share/hildon-welcome /usr/share/hildon-welcome

# ??
mkdir -p /home/opt/usr/share/pixmaps 2&gt; /dev/null
cp -r /usr/share/pixmaps/* /home/opt/usr/share/pixmaps
rm -r /usr/share/pixmaps
ln -s /home/opt/usr/share/pixmaps /usr/share/pixmaps

# Moving 'apt cache' to /home/opt - Valid until [https://bugs.maemo.org/show_bug.cgi?id=5746 Bug 5746] is fixed.
mkdir -p /home/opt/var/cache/apt 2&gt; /dev/null
cp -r /var/cache/apt/* /home/opt/var/cache/apt
rm -r /var/cache/apt
ln -s /home/opt/var/cache/apt /var/cache/apt

# Moving locales [http://talk.maemo.org/showpost.php?p=568370&amp;postcount=11 Source]
mv /usr/share/locale /opt
ln -s /opt/locale /usr/share/locale
&lt;/source&gt;
Set the script's permission for executable:
 chmod +x move-to-opt.sh
(note that this step will - without warning you in any way - not work on partitions which are only FAT formatted, as maybe your microSD card will initially be; in such a case, move the script somewhere else)

Run the script as root:
 ./move-to-opt.sh

====Script to safely free space on rootfs====

[[User:Tanner#Safely_free_some_space_on_rootfs|This script]] shows you how much space will be freed and automatically detects whether some directories have already been moved.

BEWARE: Icon Label Issue May Occur. 
http://talk.maemo.org/showthread.php?p=654384#post654384

====Move some of the pre-installed applications into /opt====

Some applications like Nokia Maps and the microb-engine are placed in /usr/share taking up valuable root space, moving these files will not affect the apps. 

Moving Nokia Maps (has to be done as root) will save 8.7 Mb:

 mv /usr/share/nokia-maps /home/opt/
 ln -s /home/opt/nokia-maps /usr/share/nokia-maps
Moving the microb-engine (has to be done as root) will save 13.9 Mb:
 mv /usr/share/microb-engine /home/opt
 ln -s /home/opt/microb-engine /usr/share/microb-engine
Moving the &quot;Getting started&quot; app/tutorial (has to be done as root) will save 0.9 Mb:
 mv /usr/share/tutorial-applet /home/opt
 ln -s /home/opt/tutorial-applet /usr/share/tutorial-applet

(With the CSSU - and possibly without on PR1.3 - the tutorial may be uninstalled, getting rid of the tutorial folder entirely)


To get a bit more rootfs space you can move Flashplayer to opt; will save 3.5Mb:
 mv  /usr/lib/browser/plugins/libflashplayer.so /opt/usr/lib/
 ln -s /opt/usr/lib/libflashplayer.so  /usr/lib/browser/plugins/libflashplayer.so

====Move themes====

{{ambox
| type = notice
| text = '''This may cause problems when changing themes, and reversing it is NOT possible unless the device is [[Updating the firmware|reflashed]]
}}

Add the following into the script above OR add into another script (with #!/bin/sh at the start)

 # Moving themes to /home/opt
 mkdir -p /home/opt/usr/share/themes 2&gt; /dev/null
 cp -r /usr/share/themes/* /home/opt/usr/share/themes
 rm -r /usr/share/themes
 ln -s /home/opt/usr/share/themes /usr/share/themes

====See rootfs usage per package====

This script [http://www.robinhill.me.uk/downloads/pkgsize.py] outputs a list of all packages in rootfs and their size therein. I can not vouch for its validity but it seemed decent enough.
&quot;python pkgsize.py checkpkgs | sort -n&quot; gives you a sorted result in bytes. Most of these files are supposed to be there but it might help you find some non optified ones.

from [http://www.robinhill.me.uk/maemo/package_sizes.html]

[[Category:Power users]]
[[Category:N900]]
[[Category:Firmware update]]</text>
    </revision>
  </page>
  <page>
    <title>Fremantle</title>
    <id>2901</id>
    <revision>
      <id>21603</id>
      <timestamp>2009-11-02T06:13:22Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Fremantle]] moved to [[Open development/Maemo roadmap/Fremantle]]: Under open development</comment>
      <text xml:space="preserve">#REDIRECT [[Open development/Maemo roadmap/Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Fremantle Bluetooth Keyboard Layout</title>
    <id>3815</id>
    <revision>
      <id>46577</id>
      <timestamp>2012-02-09T17:30:03Z</timestamp>
      <contributor>
        <username>freemangordon</username>
        <id>3619</id>
      </contributor>
      <comment>/* Next steps */</comment>
      <text xml:space="preserve">Bluetooth keyboards are [[Fremantle_Unsupported_Bluetooth_profiles|not officially supported]] on the [[Nokia N900|N900]], that is Maemo [[Open development/Maemo roadmap/Fremantle|Fremantle]], but it is possible to get them working with some hacking.

== Devices ==

{| class=&quot;wikitable sortable&quot;
|+ Bluetooth keyboards
|-
! Device
! class=&quot;unsortable&quot; | Product Link
! class=&quot;unsortable&quot; | Success Reports
|-
| iGo Stowaway Keyboard
| Amazon: [http://www.amazon.com/dp/B0002OKCXE]
| [http://talk.maemo.org/showpost.php?p=490813&amp;postcount=29]
|-
| Nokia SU-8W
| Nokia: [http://www.nokia.co.uk/support/product-support/nokia-su-8w]
| [http://talk.maemo.org/showpost.php?p=490996&amp;postcount=31]
|-
| Neos BluSlim Bluetooth Compact Keyboard BTK-1
| Neos: [http://www.neos-world.com/]
| [http://talk.maemo.org/showpost.php?p=613850&amp;postcount=267]
|-
| Rocketfish RF-BTKB2
| Rocketfish: [http://www.rocketfishproducts.com/pc-85-3-rocketfish-wireless-multimedia-bluetooth-keyboard-and-laser-mouse-blacksilverred.aspx]
| [http://talk.maemo.org/showpost.php?p=659720&amp;postcount=273]
|-
| Apple Wireless Keyboard
| Amazon: [http://www.amazon.com/Apple-Wireless-Keyboard-Retail-Packaging/dp/B002TMRZOQ/ref=sr_1_1?ie=UTF8&amp;s=electronics&amp;qid=1277022601&amp;sr=1-1]
| [http://talk.maemo.org/showthread.php?p=722367#post722367]
|-
| Leasun Electronic Technology MP-0118+ 
| [http://www.made-in-china.com/showroom/darian88/product-detailuoEmwfydbkWn/China-Bluetooth-Keyboard-MP-0118-.html] (bought off eBay)
| [http://talk.maemo.org/showpost.php?p=730597&amp;postcount=294]
|-
| Logitech Cordless MediaBoard Pro(TM) 
| Logitech: [http://www.logitech.com/en-us/keyboards/keyboard/devices/3616]
| -
|-
| Freedom Universal Bluetooth Keyboard 2 (German layout)
| Amazon: [http://www.amazon.de/Freedom-Universal-Keyboard-Smartphone-BlackBerry/dp/B004480ILA/]
| [http://talk.maemo.org/showpost.php?p=905888&amp;postcount=148]
|}

== Procedure ==

* Enable HID support as described [[Fremantle_Unsupported_Bluetooth_profiles|here]].  Note that the DisablePlugins line needs to be there, but it should not include the &quot;input&quot; keyword.
* As root, download the tar file from [http://talk.maemo.org/showpost.php?p=441444&amp;postcount=3 here] and extract it:

 sudo gainroot
 cd /usr/share/X11/
 wget http://talk.maemo.org/attachment.php?attachmentid=5221 -O xkb-chinook.tar
 tar xf xkb-chinook.tar
 cp -i xkb-chinook/symbols/pc xkb/symbols/.
 cp -i xkb-chinook/symbols/us xkb/symbols/.
 cp -i xkb-chinook/geometry/pc xkb/geometry/.

* You need to know your keyboard ID
 hildon-im-xkbtool --list
will show the device #

* Every time the keyboard connects, you need to run setxkbmap:

 setxkbmap -device 4 -I -I/usr/share/X11/xkb-chinook -rules base -model pc105 -layout us

For the Nokia SU-8W keyboard, use &quot;nokiasu8w&quot; instead of &quot;pc105&quot;.

After running this command, press any key on the N900's internal keyboard, and you should be able to type numbers and symbols on the bluetooth keyboard.

The Freedom Universal Keyboard 2 runs with EXTKBD (see below) version 1.3 out of the box. Just install EXTKBD via program manager and you will find the setup in &quot;personalise&quot; of the &quot;settings&quot; tool.
Other keyboards will run as well.

== Setting Layout Automatically ==

There is a python script written by jakoleh which seems to work.  Copy it out of this post and save it as bluetooth-keyboard.py:

http://talk.maemo.org/showthread.php?p=525721

You need to set the KEYBOARDNAME, DEVICE, MODEL and LAYOUT parameters for your keyboard.  To do this go to the /var/lib/bluetooth directory.  There should be a directory there named after your device's bluetooth ID, such as &quot;08:00:69:02:01:FC&quot;.  Change into that directory and find your keyboard in the file called &quot;names&quot;.  For example:

 00:03:C9:3D:7D:B0 Think Outside Keyboard

In this case, you would set 

 KEYBOARDNAME = &quot;Think Outside Keyboard&quot;
 DEVICE = &quot;dev_00_03_C9_3D_7D_B0&quot;

The MODEL and LAYOUT depend on your keyboard.  For a standard 105-key layout, you might do:

 MODEL = &quot;pc105&quot;
 LAYOUT = &quot;us&quot;

Now open a terminal and run the command in the background like this:

 python bluetooth-keyboard.py &amp;

Now whenever you connect the keyboard it should automatically set the correct layout.  It should also give you a helpful yellow notification message saying that the keyboard connected.

== Starting daemon script automatically ==

Put this in /etc/init.d/bluetooth-keyboard. You need to replace bluetooth-keyboard.py with the absolute path.

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh

case &quot;$1&quot; in
start)
       python bluetooth-keyboard.py &amp;
       ;;
stop)
       kill $(ps ax | grep 'python bluetooth-keyboard.py' | grep -v grep | awk '{print $1}')
       ;;
restart)
       echo &quot;$0: not implemented&quot;
       exit 1
       ;;
force-reload)
       echo &quot;$0: not implemented&quot;
       exit 1
       ;;
*)
       echo &quot;Usage: $0 {start|stop}&quot;
       exit 1
       ;;
esac
&lt;/source&gt;
Make it executable and hook into init system

 chmod a+x /etc/init.d/bluetooth-keyboard
 update-rc.d bluetooth-keyboard start 99 1 2 3 4 5 . stop 99 0 6

== Next steps ==

It would be nice to build a package to do all of this:
Here is first version of packaged version: [http://talk.maemo.org/showpost.php?p=794981&amp;postcount=319 BlueKlase].

Another approach is the package &quot;[http://maemo.org/packages/view/extkbd/ extkbd]&quot; (currently in [[Extras]]) which simplifies the usage of external keyboards. It has an UI to select keyboard layout and language. See [http://talk.maemo.org/showthread.php?t=65577 this post] for some usage instructions on extkbd.

== References ==

* General procedure: [http://talk.maemo.org/showthread.php?p=490777#post490777]
* DisablePlugins is required: [http://talk.maemo.org/showpost.php?p=385463&amp;postcount=3]
* Installing the tarball: [http://talk.maemo.org/showpost.php?p=441137&amp;postcount=1]
* Special copy commands: [http://talk.maemo.org/showthread.php?p=490777#post490777]
* Script to automatically run the setxkbmap command: [http://talk.maemo.org/showthread.php?p=525721#post525721]

[[Category:Bluetooth]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Fremantle Developer Device Queue</title>
    <id>2763</id>
    <revision>
      <id>44096</id>
      <timestamp>2011-06-21T20:29:51Z</timestamp>
      <contributor>
        <username>noobmonkey</username>
        <id>1869</id>
      </contributor>
      <text xml:space="preserve">This is a list of developers who are working on projects for [[Open development/Maemo roadmap/Fremantle|Fremantle]] who do not have access to any Fremantle devices for live testing purposes. This is to allow Nokia and/or the [[Community Council|Maemo Community Council]] to redirect any available resources. Please link to your profile and products/packages to make the evaluation as easy as possible.

See also the related discussion threads in talk.maemo.org:
* [http://talk.maemo.org/showthread.php?t=32951 N900 device program for maemo.org developers]
* [http://talk.maemo.org/showthread.php?t=32978 Proposal: To include some Core Members with low Karma in Dev Program]

{| class=&quot;wikitable&quot;
|+ Developer device queue
|-
! Developer
! Project(s)/Product(s)
|-
| &lt;s&gt;[http://maemo.org/profile/view/nathanael/ Nathan Anderson]&lt;/s&gt;
|
* &lt;s&gt;[http://vpc-sdk.garage.maemo.org/ Virtual PC Scratchbox/SDK Image]&lt;/s&gt;
* &lt;s&gt;[http://katana.garage.maemo.org/ Katana (QT Bible Program)]&lt;/s&gt;
* &lt;s&gt;[http://maemo.org/packages/view/clucene-core/ CLucene Library]&lt;/s&gt;
* &lt;s&gt;[http://maemo.org/packages/view/libicu42/ ICU 4.2 Library]&lt;/s&gt;
* &lt;s&gt;[http://maemo.org/packages/view/sword16/ Sword Library]&lt;/s&gt;
* &lt;s&gt;[http://maemo.org/packages/view/swig1.3 Swig 1.3.40 ]&lt;/s&gt;
* &lt;s&gt;[http://maemo.org/packages/view/cbrpager cbrPager - Fremantle port]&lt;/s&gt;
No Longer Required - Purchased Retail
|-
| [http://maemo.org/profile/view/marcinw/ Marcin]
|
* [http://www.gammu.org/ Gammu+ or Gammu port (not submitted yet, at least getting files from other devices using OBEX and other protocols over BT, when will have time - importing bpk/calendar/sms/mms/etc., decoding/encoding special SMSes like EMS, non standard VCARDS, SMS setting indicators, etc.)]
|-
| [http://maemo.org/profile/view/firebird8/ Wilson Tang]
|
* [http://maemo.org/packages/view/pokerth/ PokerTH 0.7.1]
* [http://maemo.org/downloads/product/OS2008/slysics/ Slysics (Depends on below for fremantle)]
* [http://maemo.org/packages/view/libsdl1.3 libsdl1.3 with OpenGLES (Needs device testing)]
* [http://maemo.org/packages/view/knights/ Knights (internet game menu needs fixing)]
|-
| [http://maemo.org/profile/view/everaldo/ Everaldo Canuto]
|
* [http://www.mono-project.com/Maemo Mono for Maemo] Official Mono packages for Maemo platform.
* [http://ftp.novell.com/pub/mono/sources/maemo-sharp/ maemo-sharp] Official C# bindings for Maemo platform.
* [http://code.google.com/p/tomboy-maemo/ Tomboy Maemo] Tomboy port for Maemo platform.
|-
| [http://maemo.org/profile/view/dschmicker/ Detlef Schmicker]
|
* [http://vncviewer.garage.maemo.org/ VNC Viewer for Maemo] Maemo port of a Virtual Network Client
|-
| [http://maemo.org/profile/view/tlagarde/ Thierry Lagarde]
|
* [https://garage.maemo.org/projects/autoscan/ AutoScan-Network]  Author
* [http://autoscan-network.com/screenshots/maemo/ ScreenShots] 
|-
| [http://maemo.org/profile/view/niqt/ Nicola De Filippo]
| 
* [http://www.gitorious.org/+qt-maemo-developers/memberships Qt4 Maemo contributor]
* [https://garage.maemo.org/projects/badge Badge - Qt4 Maemo application]
* [https://garage.maemo.org/projects/qlshop QLShop - Qt Quick Maemo application]
|-
| [http://maemo.org/profile/view/wazd/ Andrew Zhilin]
|
* [http://maemo.org/downloads/product/OS2008/omweather/ OMWeather - Weather widget for Maemo ] UI designer, artwork, iconsets
* [http://maemo.org/downloads/product/OS2008/personal-menu/ Personal Menu ] UI designer
* [http://maemo.org/downloads/product/OS2008/personal-launch/ Personal Launcher ] UI designer, artwork
* [http://tabletui.wordpress.com/2009/07/12/preview-bluemaemo/ BlueMaemo ] Artwork, UI designer
* [http://maemo.org/downloads/product/OS2008/titan/ Titan theme ] Author
* [http://talk.maemo.org/showthread.php?t=32761 Marina theme ] Author (still in developement)
* [http://maemo.org/downloads/product/OS2008/ati85/ AlmostTi emulator ] Artwork
* [http://maemo.org/downloads/product/OS2008/drnoksnes/ DrNokSNES ] Artwork
* [http://tabletui.wordpress.com/2009/10/29/preview-fm-radio-for-n900/ FM Radio for n900 ] UI designer, artwork
* [http://tabletui.wordpress.com/2009/09/15/preview-mnemosyne-for-maemo/ Mnemosyne for Maemo ] Artwork, UI designer
* [http://maemo.org/downloads/product/OS2008/statusbarclock/ Large Statusbar Clock ] Concept
* [http://fms.komkon.org/ Marat Fayzullin's console emulators ] Icons
* [http://maemo.org/downloads/product/OS2008/osm2go/ OSM2Go ] Iconset
* [[Mer|Mer project ]] UI/UX designer, artwork
|-
| &lt;s&gt;[http://maemo.org/profile/view/xmob/ Pete Foster]&lt;/s&gt;
|
* &lt;s&gt;[http://maemo.org/downloads/product/OS2008/msideshow/ mSideShow] Application for Nokia Internet Tablets that allows them to act as a Windows SideShow device.&lt;/s&gt;
* &lt;s&gt;[http://garage.maemo.org/projects/mtunesremote mTunesRemote] Remote control for iTunes over TCP/IP.&lt;/s&gt;
* No longer required.  Purchased retail.
|-
| [http://maemo.org/profile/view/madman2k/ Pavel Rojtberg]
|
* [http://maemo.org/downloads/product/OS2008/youamp/ YouAmp] Quite Popular Music Player for OS2008 which focuses on Usability.
* [https://edge.launchpad.net/artoolkitplus ARToolkitPlus] Augmented Reality Toolkit. Need the device for a project work [http://www.youtube.com/watch?v=cNu4CluFOcw&amp;feature=player_embedded like this] on the N900.
|-
| [http://maemo.org/profile/view/monkeyiq/ Ben Martin]
|
* [http://www.libferris.com libferris] Virtual filesystem and search
* [http://vimeo.com/2833566 libsixdof] Six degree of freedom library (accelerometers)
* [http://monkeyiq.blogspot.com/2009/10/i-want-my-mythtv-clawmotia.html Clawmotia] Remote control for MythTV using qedje and Qt
* [http://monkeyiq.blogspot.com/2009/10/white-lightning-in-triplicate.html boostmmap soprano backend] An RDF storage and query backend for Soprano designed for mobile devices
|-
| [http://maemo.org/profile/view/luke-jr/ Luke Dashjr]
|
* [http://slonopotamus.org/gentoo-on-n8x0 Gentoo] source-based meta-distribution
|-
| [http://maemo.org/profile/view/pierlux/ Pierre-Luc Beaudoin]
|
* [http://maemo.org/packages/view/emerillon/ Emerillon] Map viewer with eye candy (Maintainer)
* [http://maemo.org/packages/view/libchamplain/ libchamplain] Map widget in Clutter (Maintainer)
|-
| [http://maemo.org/profile/view/cosmo/ Ville Ranki]
| 
* &lt;s&gt;[http://www.siilihai.com Siilihai] Web Forum Reader&lt;/s&gt;
* &lt;s&gt;Planning Poker cards (ppcards)&lt;/s&gt;
Received device.
|-
| [http://maemo.org/profile/view/cosmo/ Emanuele Vulcano]
|
* [http://cocotron.org The Cocotron], platform-neutral Objective-C runtime, port to ARM;
* [http://infinite-labs.net/mover Mover], port to Maemo using Qt + Cocotron's Foundation.
|-
| [http://maemo.org/profile/view/mblondel/ Mathieu Blondel]
|
* [http://www.tegaki.org Tegaki] Chinese and Japanese handwritten characters recognition (Lead developer)
|-
| [http://eurion.net Siegfried Gevatter]
|
* [https://launchpad.net/zeitgeist Zeitgeist], event logging framework (Core Developer &amp; Maintainer)
* Experience with packaging (Ubuntu Developer and in Debian New Maintainer process), so I may get involved with this too.
|-
| [http://grillbar.org Mikkel Kamstrup Erlandsen]
|
* [https://launchpad.net/zeitgeist Zeitgeist] Core developer &amp; Maintainer
|-
| [http://home.cs.tum.edu/siegel daniel g. siegel]
|
* [http://projects.gnome.org/cheese Cheese] Maemo port of Cheese 3.0 (Core developer and Maintainer)
|-
| [http://maemo.org/profile/view/timn/ Tim Niemueller]
|
* [http://www.fawkesrobotics.org Fawkes Robotics] Software Framework (Lead Developer, already runs on N810/N900, [http://www.fawkesrobotics.org/static/media/gallery/screenshots/scaled/lasergui-maemo5-lines._png_800x600_q85.jpg example GUI on Maemo 5])
* [http://playerstage.sourceforge.net Player/Stage] Robot Simulator
The primary plans are to provide software to remotely control/instruct robots and run a simulation environment on the N900. As a side effect, the N900 can become the control unit of a real robot.
|-
| [http://maemo.org/profile/view/litus/ Carles Mallafré]
|
* [http://behindmaemolines.blogspot.com Behind Maemo Lines] Development for N8X0 and N900.
* world wide killer -&gt; New project game for N900, iphone, android... Using latest technology like 3G, wifi triangulation, GPS.
|-
| [http://www.johnstowers.co.nz John Stowers]
|
* [http://nzjrs.github.com/osm-gps-map/ osm-gpd-map] Core developer &amp; Maintainer of [http://www.johnstowers.co.nz/blog/index.php/2010/01/11/gtk-map-widget/ popular] Gtk+ map widget used in a number of maemo apps (maep, osm2go, gpxview, ecoach).
|-
| &lt;s&gt;[http://maemo.org/profile/view/sebas/ Sebastian Colomar]&lt;/s&gt;
|
&lt;s&gt;
I've prepared some documentation for Maemo Support in the form of Maemo Wikis. Though I was the original editor other people have later collaborated, like excellent editor [http://maemo.org/profile/view/generalantilles/ Ryan Abel]. These wikis have been many times Wiki Of The Day, due to their interest and easiness of use. My project is to go on making nice documentation for N900 users. My main target is to help complete newbies and business users who aren't technical users at all, but need to exhaust the features of their Maemo devices...
* [[Booting_from_a_flash_card|How to easily boot from your MMC card]]
* [[Root_access|How to easily become root]]
* [[Partitioning_a_flash_card|How to easily partition your MMC card]]
* [[Back up your applications|Keep a safe copy of your favorite applications]]
&lt;/s&gt;
Received device.
|-
| [http://maemo.org/profile/view/tswindell/ Tom Swindell]
|
* ruby-maemo - Maintaining the Ruby interpreter and bindings for libraries available on the Maemo platform.
* call-blocker  - Incoming call blocking service.
* call-record   - Incoming call recorder and local voice mailbox application}
|-
| [http://maemo.org/profile/view/joerg_rw/ Joerg Reisenweber]
|
* &lt;s&gt;USB hostmode http://h-e-n.garage.maemo.org - enabling hostmode for N900, to allow direct plugin of kbd, memsticks, mice... http://wiki.maemo.org/N900_Hardware_USB http://talk.maemo.org/showthread.php?p=588950#post588950
* jrbme just replaces bme - opensource replacement for Battery Management Entity, to allow MeeGo w/o blobs, and also needed for hostmode (see above). http://wiki.maemo.org/N900_Software_BME
*As tweaking such low level stuff often renders system in a semi-broken state, I need a dedicated development device so I can continue to use my own N900 as a regular daily phone&lt;/s&gt;
processed

|-
| [http://maemo.org/profile/view/discus-axel/ Axel Pauli]
|
* [http://www.kflog.org/cumulus/ Cumulus], A soaring flight navigation application. I'm the current developer and maintainer of that project. I need a N900 device for testing the application on this hardware. I'm only an owner of a N810.

|-
| [http://maemo.org/profile/view/mrmoku/ Klaus Kurzmann]
|
* port the [http://shr-project.org/ SHR Distro] to run on the N900. As our beloved Openmoko devices are quite obsolete hardware wise we want to port our OE based Distro to the N900.
* help to make [http://h-e-n.garage.maemo.org/ USB Host Mode] work out of the box

|-
| [http://maemo.org/profile/view/paulfertser/ Paul Fertser]
|
I am a low-level (kernel, bootloader, hardware) developer coming from an [http://en.wikipedia.org/wiki/Openmoko Openmoko] background. As my Openmoko Freerunner is my only everyday cell phone, i've had plenty of experience debugging and bugfixing various kinds of software and hardware issues, tinkering with Debian and OE and community assistance.
I would like to have access to an N900 for the following projects:
* [http://h-e-n.garage.maemo.org USB hostmode] is the project to allow N900 to use all kinds of extension devices: from a mass storage flash to a custom made controller equipment. Getting this done right should involve considerable low-level driver fixing and testing. Also needs a working [http://wiki.maemo.org/N900_Software_BME bme replacenment].
* [http://www.freesmartphone.org/ freesmartphone.org] is a modern service-based middleware platform for Linux-based embedded systems. It is tailored for simple and uniform access of all features, thus leveraging innovation and keeping you in control. I would like to collaborate with Michael ‘Mickey’ Lauer on getting N900 supported by this middleware as it would open (a standardized) road for the diversity of dialers, contacts apps and any custom usecases one can have in mind.
* [http://wiki.github.com/paulfertser/fso-el/ fso.el] is a humble pet-project of mine, it's an Emacs interface for the most typical GSM telephony-related usecases: calling, text messages, contacts management and everything that makes smartphone usage more productive. It is usable both on device (with touchscreen or hw keyboard) and via ssh (when one has his phone on his desk connected to a PC).
|-
| [http://maemo.org/profile/view/mickeyl/ Michael 'Mickey' Lauer]
|
&lt;s&gt;I'm the architect behind the [http://freesmartphone.org/ freesmartphone.org middleware] project and would like to port this to run on the N900. It already runs on OpenEZX devices, OpenMoko devices, and some of the HTC devices, however those are getting obsolete very rapidly. FSO on the N900 would be a great opportunity for our future phone stack development and for renewed interest in the hardware itself.&lt;/s&gt;

Received device.
|-
| [http://freesmartphone.org FSO]/[http://shr-project.org SHR] group (SHR project lead [http://maemo.org/profile/view/mrmoku Klaus Kurzmann])
|
We, the combination of the FSO project ([http://freesmartphone.org freesmartphone.org]) and the SHR
project ([http://shr-project.org shr-project.org]) are developing a distro, including our own
middleware for handling system resources and our own phone UI on top of that
middleware - up to now for Openmoko devices. We're looking for a new platform
to develop for, as the Openmoko devices are obsolete hardwarewise and also
obsolete in number of distributed devices.

Coming from the background of the Openmoko community, we are looking for a
platform as open as possible - and we think N900 is the best fit available
nowadays.

We would like to kindly ask, if it would be possible to get developer
devices for the following developers of us:

* &lt;s&gt;[http://maemo.org/profile/view/dos/ Sebastian Krzyszkowiak], UI designer and PIM middleware maintainer&lt;/s&gt; - Received device.
* [http://maemo.org/profile/view/jama/ Martin Jansa], Distro and kernel maintainer
|

|-
| [http://talk.maemo.org/member.php?u=25973 Greg Roberts / Noobmonkey]
|

I have been part of the Maemo Community since September 2009 and have actively developed and assisted in the community.&lt;BR&gt;
I have learnt from scratch, first Healthcheck in py-maemo(python) and then secondly C++/qt. &lt;BR&gt; &lt;BR&gt;The application had developed very quickly and was a learning curve. But with so many downloads i started the second phase. I would like (as maemo-&gt;meego) to push that further and turn it into a superb system tool. But ultimatley as a development platform for me.  &lt;BR&gt; &lt;BR&gt;Having a device really means the ability to develop live. A further project Maecount has been developed originally for a single user, but has found a great base of users, meaning further development would be useful.
I have always had a good basing in IT and comms, and would love support in pushing this further.  &lt;BR&gt; &lt;BR&gt;
On a personal note, i work for the NHS as an IT advisor (UK, and would love to start developing apps relating to my staff - linking web apps/api's for staff benefit &lt;5k+staff in mental health)&lt;BR&gt;
* [http://maemo.org/downloads/product/Maemo5/healthcheck Healthcheck], Main Healthcheck download page - A system checker with tools. The main aim to allow standard users with a base to understand the device. Developed after an idea with other users in the community and eventually used by many other people. Initially learnt and developed within 2 weeks!
* [http://maemo.org/packages/view/maecount/ Maecount], Maecount Package Page, Designed and developed as a very very simple counting application. Developed for one purpose and designed in under 1 week. Further development and learning is needed to adapt to multiple devices.&lt;BR&gt;
Finally, i would love to develop a game. I have some idea's but learning QT to improve my skills.
|}

[[Category:Community]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Fremantle Stars</title>
    <id>1339</id>
    <revision>
      <id>46033</id>
      <timestamp>2011-12-15T06:30:03Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 46003 by [[Special:Contributions/114.79.28.10|114.79.28.10]] ([[User talk:114.79.28.10|Talk]]) vandalism/spam</comment>
      <text xml:space="preserve">== Status of Fremantle Stars and other great apps ==

You have an interesting Fremantle project. You want to have it ready by the [[Open development/Maemo roadmap/Fremantle|Maemo 5]] final release. You are willing to get help and promotion from Nokia. List your project here with the current status and the related links.

[http://maemo.org/news/announcements/0eb8fdfeedec11ddb28e1b3c4d7b308a308a/ Fremantle Stars] projects are encouraged to report here, but any other project can join as well. If your project rocks we will help you as well.

* Roadmap - A list of features and improvements planned for Fremantle, so everybody gets an idea on what to expect and what to look for when testing[http://talk.maemo.org/showpost.php?p=296871&amp;postcount=33]
* [[Bugs:Adding_Extra_products|HOWTO: Adding your product to bugs.m.o]]
* '''-devel''' means [http://repository.maemo.org/extras-devel/pool/fremantle/ Extras-Devel for Fremantle] (Upload via [https://garage.maemo.org/extras-assistant/ Extras Assistant])
* maemo-testing doesn't exist yet [http://talk.maemo.org/showpost.php?p=295552&amp;postcount=8]
* Extras - also does not exist yet
* Downloads means you have a proper page at http://maemo.org/downloads [http://talk.maemo.org/showpost.php?p=295552&amp;postcount=8]
* Showstoppers - Major problems blocking your development progress. If you need help from others shout here.

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Mission complete!
| style=&quot;background:LightBlue&quot; | Beta in progress
| style=&quot;background:Gold&quot; | Too alpha
| style=&quot;background:Crimson&quot; | Broken, can't test
| | Missing, can't evaluate
|}

{| class=&quot;wikitable sortable&quot;
|-
! Project
! Roadmap
! bugs.m.o
! -devel
! -testing
! extras
! Downloads
! Showstoppers
|- style=&quot;background:LightBlue&quot;
| [http://maemo.org/downloads/product/OS2008/ecoach eCoach] || [[Fremantle_Stars/eCoach|yes]] ||[https://bugs.maemo.org/enter_bug.cgi?product=eCoach Yes]|| 
[http://repository.maemo.org/extras-devel/pool/fremantle/free/e/ecoach/ Yes]
 || - || - || [http://maemo.org/downloads/product/OS2008/ecoach/ Yes] || 
|- style=&quot;background:LightBlue&quot;
| [http://maemo.org/downloads/product/OS2008/enigma Enigma] || done || | [https://bugs.maemo.org/enter_bug.cgi?product=enigma Yes] || 
[http://repository.maemo.org/extras-devel/pool/fremantle/free/e/enigma/ Yes]
 || - || - || [http://maemo.org/downloads/product/OS2008/enigma/ Yes] || It works! But gets the app/device frozen sometimes and the screen is dimmed sometimes while playing 
|- style=&quot;background:Crimson&quot;
| [http://maemo.org/downloads/product/OS2008/fbreader FBReader] || - || No || [http://repository.maemo.org/extras-devel/pool/fremantle/free/f/fbreader/ Yes] || Not ready - not installable || ? || ? || libfribidi0 missing due to SDK/image inconsistency
|- style=&quot;background:LightBlue&quot;
| [http://maemo.org/downloads/product/OS2008/gpxview GPXView] || Mostly done, internal map still under development || | No || 
[http://repository.maemo.org/extras-devel/pool/fremantle/free/g/gpxview/ Yes]
 || - || - || [http://maemo.org/downloads/product/OS2008/gpxview/ Yes] ||  
|- style=&quot;background:Crimson&quot;
| [http://maemo.org/downloads/product/OS2008/liqbase liqbase] || [[Fremantle_Stars/liqbase|yes]] || soon || No, only liqbase-playground || Not ready - missing || asap || asap || packaging broken and layout styling - liqbase-playground av available, but that is not the real app.
|- style=&quot;background:LightBlue&quot;
| [http://maemo.org/downloads/product/OS2008/mauku Mauku] 2.0 Application
|| Totally new Fremantle UI
|| [https://bugs.maemo.org/enter_bug.cgi?product=Mauku yes]
|| [http://repository.maemo.org/extras-devel/pool/fremantle/free/m/mauku/ yes]
|| Almost... || n/a
|| [http://maemo.org/downloads/product/OS2008/mauku Yes]
||  None (only small bugs and feature enhancements that are being worked)
|- style=&quot;background:LightBlue&quot;
| [http://maemo.org/downloads/product/OS2008/mauku Mauku] Widget
|| Desktop Widget is ready!
|| [https://bugs.maemo.org/enter_bug.cgi?product=Mauku yes]
|| [http://repository.maemo.org/extras-devel/pool/fremantle/free/m/mauku-widget/ yes]
|| Yes, assuming connection with app works || n/a
|| [http://maemo.org/downloads/product/OS2008/mauku Yes]
 || None (only minor finishing)
|- style=&quot;background:LightBlue&quot;
| [http://microfeed.org Microfeed]
|| Separate D-BUS-based backend library for Mauku
|| [https://bugs.maemo.org/enter_bug.cgi?product=Microfeed yes]
|| [http://repository.maemo.org/extras-devel/pool/fremantle/free/m/microfeed/ yes]
|| Yes... || n/a
|| [http://maemo.org/downloads/product/OS2008/mauku Yes]
 || None (beta testing) - Being a backend shouldn't appear in AM? Yes, it should, or it cannot be updated independently (blame the AM, please). Qaiku really works? Yes, it should.
|- style=&quot;background:Crimson&quot;
| [http://maemo.org/downloads/product/OS2008/numptyphysics NumptyPhysics] || - || ? || Yes || Not ready - unusable || ? || ? || Wrong startup and doesn't go further than BRAVO! screen. Once this raw testing package is available it will help to concentrate efforts and allow people to work on layouts.
|- style=&quot;background:LightBlue&quot;
| [http://maemo.org/downloads/product/OS2008/omweather OMWeather] || [[Fremantle_Stars/OMWeather|Yes]] || [https://bugs.maemo.org/enter_bug.cgi?product=OmWeather Yes] || [http://repository.maemo.org/extras-devel/pool/fremantle/free/o/omweather/ Yes] || Yes || n/a || [http://maemo.org/downloads/product/OS2008/omweather Yes] || None.
|- style=&quot;background:Gold&quot;
| [http://maemo.org/downloads/product/OS2008/osm2go OSM2Go] || [http://wiki.openstreetmap.org/wiki/Osm2go#What.27s_next.3F Yes] || |[https://bugs.maemo.org/enter_bug.cgi?product=osm2go Yes]|| 
[http://repository.maemo.org/extras-devel/pool/fremantle/free/o/osm2go/ Yes]
 || Ready with some limitations (which are these?) || - || [http://maemo.org/downloads/product/OS2008/osm2go/ Yes] ||
|- 
| [http://maemo.org/downloads/product/OS2008/vagalume Vagalume] || No || Soon || No || Not ready - missing || ? || [http://maemo.org/downloads/product/OS2008/vagalume Yes] || -
|- style=&quot;background:LightGreen&quot;
| [http://maemo.org/downloads/product/OS2008/gpodder gPodder] || [[Fremantle Stars/gPodder|Yes]] || [https://bugs.maemo.org/enter_bug.cgi?product=gPodder Yes] || [http://repository.maemo.org/extras-devel/pool/fremantle/free/g/gpodder/ Yes] || [http://maemo.org/packages/view/gpodder/ Yes] || - || [http://maemo.org/downloads/product/OS2008/gpodder Yes] || Works  [http://talk.maemo.org/showpost.php?p=311921&amp;postcount=38 according to qgil]
|-
| [https://garage.maemo.org/projects/easy-deb-chroot/ Easy Debian] || - || no || no || - || - || [http://maemo.org/downloads/product/OS2008/easy-deb-chroot Yes] || mount and chroot commands don't work in SDK (no permissions)
|- style=&quot;background:LightGreen&quot;
| [https://garage.maemo.org/projects/conboy Conboy] || [http://conbpoy.garage.maemo.org/ Yes] || [https://bugs.maemo.org/enter_bug.cgi?product=Conboy Yes] || [http://repository.maemo.org/extras-devel/pool/fremantle/free/c/conboy/ Yes] || [http://repository.maemo.org/extras-testing/pool/fremantle/free/c/conboy/ Yes] || - || [http://maemo.org/downloads/product/OS2008/conboy Yes] || 
|-
| [http://maemo.org/downloads/product/OS2008/bluemaemo/ BlueMaemo] || [http://www.valeriovalerio.org/?page_id=174 Yes] || [https://bugs.maemo.org/enter_bug.cgi?product=BlueMaemo Yes] || [http://maemo.org/packages/view/bluemaemo/ Yes] || - || - || [http://maemo.org/downloads/product/OS2008/bluemaemo/ Yes] || UI under development, waiting for feedback
|-
| [http://maemo.org/downloads/product/OS2008/pwsafe/ PasswordSafe] || No || [https://bugs.maemo.org/enter_bug.cgi?product=PasswordSafe Yes] || [http://repository.maemo.org/extras-devel/pool/fremantle/free/p/pwsafe/ Yes] || - || - || [http://maemo.org/downloads/product/OS2008/pwsafe/ Yes] || Need someone to test it on a real device ...
|-
| [http://maemo.org/downloads/product/OS2008/tabletbridge/ TabletBridge] || [http://tabletsb.garage.maemo.org/ Yes] || No || [http://repository.maemo.org/extras-devel/pool/fremantle/free/t/tabletbridge/ Yes] || - || - || [http://maemo.org/downloads/product/OS2008/tabletbridge/ Yes] || You need a Soundbridge device to test this...
|-
| [http://openbossa.indt.org/canola Canola] || - || [https://bugs.maemo.org/enter_bug.cgi?product=Canola Yes] || No || - || - || [http://maemo.org/downloads/product/OS2008/canola2 Yes] || Currently building packages for dependencies.
|-
|- style=&quot;background:LightGreen&quot;
| [http://maemo.org/downloads/product/OS2008/tennix Tennix] || Network play [http://thpmaemo.blogspot.com/2009/08/multiplayer-tennix-coming-to-your.html in development] || [https://bugs.maemo.org/enter_bug.cgi?product=Tennix Yes] || [http://repository.maemo.org/extras-devel/pool/fremantle/free/t/tennix/ Yes] || [http://maemo.org/packages/view/tennix/ Yes] || - || [http://maemo.org/downloads/product/OS2008/tennix Yes] || Works [http://talk.maemo.org/showpost.php?p=308544&amp;postcount=59 according to qgil]
|- style=&quot;background:Gold&quot;
| [http://maemo.org/downloads/product/OS2008/xournal Xournal] || Make the port work / Take advantage of a few Fremantle UI features || [https://bugs.maemo.org/enter_bug.cgi?product=Xournal bugs.m.o] || [http://repository.maemo.org/extras-devel/pool/fremantle/free/x/xournal -devel] || [http://maemo.org/packages/view/xournal Testing] || N || [http://maemo.org/downloads/product/os2008/xournal Download] || Early stage of porting to Fremantle. Apps starts. Works on Chinook/Diablo.
|-
|- style=&quot;background:LightGreen&quot;
| [http://maemo.org/packages/view/solarwolf/ SolarWolf] || Done || [https://bugs.maemo.org/enter_bug.cgi?product=SolarWolf Yes] || Yes || Yes || N || For Diablo || -
|- style=&quot;background:Crimson&quot;
| [https://launchpad.net/pyqtoreader Pyqtoreader] || Adapting to Fremantle class HW (OpenGL, accelerometers)|| N || N || N || N || N || Waiting for PyQt in the repos, PySide is still too flaky
|- style=&quot;background:Crimson&quot;
| [http://www.wormux.org Wormux] || Kinetic scrolling, more touchscreen control || [https://bugs.maemo.org/enter_bug.cgi?product=Wormux Yes] || Yes || [http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/wormux/0.8.4-0maemo1/ Yes] || N || [http://maemo.org/downloads/product/OS2008/wormux/ For Diablo] || Otherwise OK, but crashes on device. Reason unknown.
|-
| (name linked to project) || Y/N link || Y/N || Y/N || Y/N || Y/N || Y/N || Y/N link to news
|}

== Proposals for Fremantle Stars ==
Nokia wants to support application developers having third party software ready for prime time by the day Maemo 5 is released. The first action is to select few projects to be supported since the day the first Fremantle SDK is released.

If your project hasn't been selected do not surrender. More actions will come with the beta SDK.

Above you have the applications that were proposd by the community. Nokia picked the projects to be supported from that list.

See also the [[Task:Remarkable_community_projects]] and [[Killer_Apps]].

=== Release quality ===

* [http://maemo.org/downloads/product/OS2008/mauku/ Mauku]: The micro-blogging client for Maemo devices
: Mauku was proposed earlier by someone, but was not available in Extras that time. Now it is, and thus, Mauku fulfills all requirements listed above.
* [http://maemo.org/downloads/product/OS2008/maemopadplus/ Maemopad+]: pressure-sensitive sketching, available in Extras, now in development again with focus on fixing Usability issues and finger-friendliness
*[http://maemo.org/downloads/product/OS2008/maemo-mapper Maemo Mapper] [[Image:Star.png]]: Most downloaded application for Maemo. Best map application. Can interact with lots of different mapping sites, including OpenStreetmap.
*[http://maemo.org/downloads/product/OS2008/numptyphysics Numpty Physics] [[Image:Star.png]]: This game is educational, hard, fun. Made for the stylus.
: Any ideas for features making the most from an Internet connection? Adding (optionally) the online dimension would be phantastic.--[[User:qgil|qgil]] 06:35, 23 October 2008 (UTC)
:: High scores, level/content download, maybe co-op gameplay. —[[User:generalantilles|GeneralAntilles]] 08:48, 24 October 2008 (UTC)
: I've started working on online aspect for NP including level download and submission, demo recording and upload etc though obviously the amount of work to get this up and running, especially on the web side, is not insignificant.  Need more levels too.  In short, an injection of manpower could get NP polished and shiny but I personally am very short on spare time these days. —[[User:tim_edmonds|Tim]] 08:48, 27 October 2008 (UTC)
* [http://maemo.org/downloads/product/OS2008/scummvm/ ScummVM]: Point-and-click adventures are great for touchscreens, some free-as-in-beer games are available (Beneath a Steel Sky, etc..)
: This is an enabler. A user can't do much twith this alone. What about proposing a specific game (or set of games) using ScummVM? --[[User:qgil|qgil]] 06:35, 23 October 2008 (UTC)
:: As mentioned above, Beneath a Steel Sky, Flight of the Amazon Queen, etc. —[[User:generalantilles|GeneralAntilles]] 08:50, 24 October 2008 (UTC)
::: The problem with those is that they don't fit well onto device rootfs. Much better would be a Hildonized ScummVM &quot;Content frontend&quot; that would depend from ScummVM, list freely available games/gamedemos (with screenshot etc) and allow user to to launch them with ScummVM.  If the game/demo isn't yet in the device, the frontend would first automatically download the required files from the net to a external/internal memory card + setup them for ScummVM.  Similar thing would be useful also for other things that have large data sets (like Wesnoth). [Eero Tamminen, 2009-06-11]
* [http://maemo.org/downloads/product/OS2008/gpodder/ gPodder]: Finger-friendly UI, highlights the Internet aspect of the tablets (download podcasts); regular releases, many Maemo-specific UI changes; performance issues are worked on; tablet-related podcasts exist (example: [http://www.talkshoe.com/talkshoe/web/talkCast.jsp?masterId=27204&amp;cmd=tc]) - downloading podcasts directly on the mobile device is a thing that you can with Nokia's tablets and gPodder, but not with iPhone/iPod touch right now
: Needs a much better list of podcasts, possibly the list that the N95 podcast application uses if formats are compatible.  I've also had issues with gpodder leaking memory, and making my N810 slow down.--[[User:alan_peery|alan_peery]] 18:09, 31 December 2008 (UTC)
*[http://maemo.org/downloads/product/OS2008/xournal Xournal] [[Image:Star.png]]: A great notes/sketch utility.  One of ''few'' apps that utilize the pressure sensitivity of the screen!  Invaluable to create and annotate PDF documents on a pocket computer.
* [http://www.pimlico-project.org/index.html Pimlico]: PIM applications
* [http://clay.ll.pl/osmo Osmo]: PIM solution supporting open standards (SyncML, iCal)
* [http://tarot.freeshell.org/leafpad/ Leafpad]: for notes taking (and script programming)
: Too geeky for this call. --[[User:qgil|qgil]] 06:35, 23 October 2008 (UTC)
* [http://www.gnome.org/projects/gnumeric/ Gnumeric]: spreadsheet application
: Impressing users with a spreadheet editor? Don't get me wrong, I see the usefulness of the application but we are looking for more shiny things in this call.--[[User:qgil|qgil]] 06:35, 23 October 2008 (UTC)
* [http://www.abisource.com/ Abiword]: document editor
: Any thoughts on adding the real time collaborative editing feature? Still, perhaps this is another tool clearly useful but not really impressive for desktop users - nor seems to be taking many advantages of the Maemo 5 features.--[[User:qgil|qgil]] 06:35, 23 October 2008 (UTC)
:: Perhaps it lacks glitz, but it seems to me that an Office-compatible text editor might mean quite a bit to a lot of users (heck, a decent word processor of ''any'' sort is likely to make a lot of people happy). —[[User:generalantilles|GeneralAntilles]] 08:52, 24 October 2008 (UTC) 
* [http://pidgin.garage.maemo.org/ Pidgin]: for instant messaging
* [https://addons.mozilla.org/firefox/addon/748 Greasemonkey] support?
: Another enabler. It would be better to have an impressing candidate based on Greasemonkey. --[[User:qgil|qgil]] 06:35, 23 October 2008 (UTC)
:: [http://browser-extras.garage.maemo.org/downloads_os2008.html browser-extras for OS2008]
* [http://pymaemo.garage.maemo.org/ PyMaemo]
: PyMaemo is great, but it says nothing per se to users. --[[User:qgil|qgil]] 06:35, 23 October 2008 (UTC)
*[http://maemo.org/downloads/product/OS2008/maemo-wordpy Maemo WordPy] [[Image:Star.png]]: Blogging software that hooks to WordPress and Blogger accounts, allows image uploads, post creating and editing, tagging. Especially notable for its finger-friendly menu.
* [http://maemo.org/downloads/product/OS2008/quiver/ quiver]: image viewer
* [http://www.fbreader.org/ FBReader]: e-book reader.  Great functionality, but the UI is a bit clunky (file dialogs are not Hildonized, preferences dialogs are overwhelmingly complicated, there's no smooth touch scrolling).
: Will need at least one book included, and preferably a link to where to download more. My recommendation for the latter is manybooks.net, where many of the Gutenberg Project books have been reformatted. --[[User:alan_peery|alan_peery]] 18:05, 31 December 2008 (UTC)
* [https://wiki.mozilla.org/Fennec Fennec]: Mozilla Firefox-based browser made specifically for mobile devices &amp; touch screens. Currently (23 oct 2008) in Alpha phase.
* [http://www.v7f.eu/public/n800/chess/ Eboard and crafty chess engine] port of the [http://www.bergo.eng.br/eboard/ eboard] chess program. Main goal is playing on [http://www.freechess.org fics] or other online chess platforms against other human players. Analysis or games vs. engine are possible to. Can handle .pgn files and looks better than the chess &quot;application&quot; which is installed at the tablet after flashing the firmware.
* [http://maemo.org/downloads/product/OS2008/quickclip/ Quick Clip] A statusbar plugin that allows you to save text from any application (or input it directly) into categorized files; also comes with a fairly nifty viewer. Although relatively stable,  still very much in active development.
*[http://garage.maemo.org/projects/bluemaemo/ BlueMaemo]: BlueMaemo is a remote controller program for the Maemo-powered devices. Accelerometer controls and a 3d/air mouse are planned for Fremantle.

=== Alpha/Beta quality ===

*[http://conboy.garage.maemo.org/ conboy]: A port to Maemo of the Tomboy application, this personal wiki software is great for organizing notes, todos, etc.
*[http://maemo.org/downloads/product/OS2008/osm2go/ osm2go]: This is a tool to '''create''' maps. It makes use of the hirez (touch) screen, a permanent internet connection for up- and download and the GPS of course. No such tool seems to exist for any other mobile plattform.
: Very interesting. Any way to make this a plugin of the very popular Maemo Mapper? Imagine that users would just use the maps, having the ability to go for an &quot;editing mode&quot; by pressing a key.--[[User:qgil|qgil]] 08:14, 24 October 2008 (UTC)
::Sure, that's planned to happen soon. Currently not planned as a plugin (does MM support plugins?) but via dbus interaction to e.g. use the current Maemo-Mapper view as the area to work on. Pretty much like gpxview also interacts with Maemo-Mapper --[[User:harbaum|harbaum]] 12:50, 25 October 2008 (UTC)
::Done --[[User:harbaum|harbaum]] 22:50, 3 November 2008 (UTC)
::A freemantle release of osm2go could use the clutter canvas instead of goocanvas or gnomecanvas. This way it would immediately take advantage of the video accelerator. 
*[http://garage.maemo.org/projects/maemo-barcode/ maemo-barcode]: Alpha quality, could be a very cool application with some integration and interface development.
: I've not used maemo-barcode but I see something like this could encompass much more than barcodes. From a hi-res picture you can also extract text and then cross reference it on google.  Usually, even a short fragment of text can give a very specific match for example for article text, street signs, names numbers addresses etc, eg: similar to [http://exbiblio.com exbiblio].  Then you can log it and tag it with gps/cell-id and make it all searchable. Of course, this would require a high res camera that doesn't just point at your head. --[[User:tim_edmonds|Tim]]
*[http://garage.maemo.org/projects/liqbase liqbase]: Beta (now in extras) playground for sketching with kinetic graffiti with fullscreen tearfree refresh.  finger friendly and FAST.  shows off your tablet in the best light.
* Bring [http://garage.maemo.org/projects/gazpacho-maemo/ Gazpacho] back to life
: Developer tools are out of scope in this call.--[[User:qgil|qgil]] 06:35, 23 October 2008 (UTC)
*[http://garage.maemo.org/projects/tear/ Tear]: Beta quality, a WebKit-based browser which aims for better tablet-oriented experience (and maybe cross-engine).
*[http://www.estamos.de/projects/SyncML/index.html syncevolution]: A very powerful application to synchronize the tablets with a SyncML Server. Actually working with the osso-addressbook and pimlico dates.
*[http://maemo.org/downloads/product/OS2008/pwsafe/ PasswordSafe]: Password safe is a utility to keep a list of usernames and passwords encrypted with a single password by Peter Weston. Its file format is from Bruce Schneier's utility of the same name. the UI has been changed to a tree within a pannable area for Fremantle (that's why it's back to Beta in 1.5)
*[https://launchpad.net/pyqtoreader Pyqtoreader]: Pyqtoreader (pronounced pīkto- rē-dər) is a modular Qt based viewer primarily for books, large images, comic books (cbr/cbz), webcomics, flickr photostreams and through various plugins to any page/image oriented content.
*[http://maemo.org/downloads/product/OS2008/fuelpad/ FuelPad]: functional car fuel usage tracker.  The UI is a bit confusing (I always get confused by the labels -- &quot;trip&quot; versus &quot;km&quot;, does &quot;price&quot; mean total or per litre, etc?).

[[Category:Community]]
[[Category:Development]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Fremantle Stars/Conboy</title>
    <id>1996</id>
    <revision>
      <id>36230</id>
      <timestamp>2010-06-24T11:37:22Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut outdated information</comment>
      <text xml:space="preserve">== Status ==

This page is outdated. The new website can be found [http://conboy.garage.maemo.org here].

[[Category:Fremantle]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Fremantle Stars/OMWeather</title>
    <id>2035</id>
    <revision>
      <id>36233</id>
      <timestamp>2010-06-24T12:06:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{out of date}}</comment>
      <text xml:space="preserve">{{out of date}}

== Current status ==

The current '''stable''' version is '''0.24.2''' in Fremantle Extras-Devel.
All functions have to work.

All additional packages are placed in Extras-Devel repository:
*omweather-weather-com-stations-db [http://repository.maemo.org/extras-devel/pool/fremantle/free/o/omweather-weather-com-stations-db/omweather-weather-com-stations-db_0.6_i386.deb link]
*omweather-icons-beginning [http://repository.maemo.org/extras-devel/pool/fremantle/free/o/omweather-icons-beginning/omweather-icons-beginning_0.2_all.deb link]
*omweather-icons-contour [http://repository.maemo.org/extras-devel/pool/fremantle/free/o/omweather-icons-contour/omweather-icons-contour_0.2_all.deb link]
*omweather-icons-epona [http://repository.maemo.org/extras-devel/pool/fremantle/free/o/omweather-icons-epona/omweather-icons-epona_0.2_all.deb link]
*omweather-icons-grzankas [http://repository.maemo.org/extras-devel/pool/fremantle/free/o/omweather-icons-grzankas/omweather-icons-grzankas_0.2_all.deb link]
*omweather-icons-shiny [http://repository.maemo.org/extras-devel/pool/fremantle/free/o/omweather-icons-shiny/omweather-icons-shiny_0.2_all.deb link]

== Roadmap ==

* Add new iconset - Tango [http://darkobra.deviantart.com/art/GNOME-Weather-Icons-125584709 link]- ''25 June''- ''' Done '''[http://repository.maemo.org/extras-devel/pool/fremantle/free/o/omweather-icons-tango/omweather-icons-tango_0.2_all.deb]
* Release version 0.21.4. - ''26 June'' - '''Done''' [http://repository.maemo.org/extras-devel/pool/fremantle/free/o/omweather/omweather_0.22.4_armel.deb] 
** Remove all memory leaks in this version
** Fix various small bugs 
** Fix problem with package's icon
** Remove from package not using png and json files 
** Fix problem with crashing applet after changing orientation of device (Fremantle)
** Enable GPS check box for Fremantle 
* New revolutionary design - '''10 August'''
** New design of applet view
*** First preset '''Now''' (Draft) ''27 June'' '''Done'''
*** Small Vacation 1 July - 6 July
*** First preset '''Now''' (Finish variant) ''7 July'' '''Done''' [http://omweather.garage.maemo.org/down/screenshot17.png link]
*** Second preset '''Now + 2 days''' (Draft) ''14 July''  '''Done'''
*** Second preset '''Now + 2 days''' (Finish variant) ''16 July'' '''Done''' [http://omweather.garage.maemo.org/down/screenshot09.png link]
*** Third preset '''Now + 3 days vertical''' (Draft) ''17 July'' '''Done'''  
*** Third preset '''Now + 3 days vertical''' (Finish) ''18 July'' '''Done''' [http://omweather.garage.maemo.org/down/snapshot22.png link]
*** Fourth preset '''Now + 3 days horizontal ''' (Draft) ''19 July'' '''Done'''
*** Fourth preset '''Now + 3 days horizontal ''' (Finish) ''20 July'' '''Done''' [http://omweather.garage.maemo.org/down/screenshot_3h.png link]
*** Fifth preset '''Now + 7 days horizontal ''' (Finish) ''22 July'' '''Done''' [http://omweather.garage.maemo.org/down/screenshot_7h.png link]
** New design of window popup
*** Collapsed mode (Draft) ''26 July'' '''Done''' [http://omweather.garage.maemo.org/down/screenshot_new_popup.png link]
*** Collapsed mode (Finish) ''28 July'' 
*** Expanded mode ''31 July'' '''Done''' [http://omweather.garage.maemo.org/down/snapshot_expanded.png link]
** New design of settings window
*** Main settings window ''1 August'' '''Done''' [http://omweather.garage.maemo.org/down/snapshot_settings.png link]
** New design of application view
*Milestones
** Release 0.23 (alpha with new design)- ''5 August'' '''Done'''
*** ''Changelog:''
**** New design
** Release 0.23.1 (alpha with new design)- ''6 August'' '''Done'''
*** ''Changelog:''
**** Done scroll to child for pannable_area in window popup
**** Added button 'Clear' for window 'Configuring station'
**** Removed 'Expanded/Collapsed' togglebuttons in status window

** Release 0.23.2 (beta with new design)- ''7 August''  '''Done'''
*** ''Changelog:''
**** Fixed problem with switching between stations if stations list has nil stations.
**** Fixed problem with detailed weather for current day
**** Now next station changing in inside popup window without destroying it
**** Fixed problem with scrolling in popup window
**** Done feature request from Daniel Wilms &quot;automatically connect to gps service after selecting of gps station&quot;
** Release 0.23.3 (stable with new design) - ''11 August'' '''Done'''
*** ''Changelog:''
**** Modified acknowledgment and copyright lists
**** Various small fixes
**** Fixed memory leaks
**** Corrected behaviour of details weather forecasts for a current day
* Add new weather forecast sources
** Now I am trying to connect with Foreca company [http://foreca.com/ link]

== Need Help ==
The project needs in translations to:

* Danish
* Dutch
* Italian
* Norwegian
* Portuguese
* Swedish

Any suggestions and comments are welcomed. Thank you!

[[Category:Fremantle]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Fremantle Stars/eCoach</title>
    <id>2053</id>
    <revision>
      <id>38543</id>
      <timestamp>2010-09-13T14:54:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Roadmap / Current Status */ update version, text probably needs updating too</comment>
      <text xml:space="preserve">{{out of date}}

== Roadmap / Current Status ==

'''eCoach 1.65''' is in [[extras]]


* New UI almost ready
* New map engine - OSM-GPS-MAP (same as in OSM2GO). 
* User can now select used map source. Currently supports: OSM, Open Aerial Maps, Maps for free, Google Maps and Virtual Earth. New map engine also does map loading and caching itself so separate ecoach-maptile-loader package is no longer needed.
* User can now set GPS update interval, this will lower power consumption

'''Things still to be implemented:'''

* Proper view for showing information about on going activity speed,time,HR etc.
* Calendar integration (investigation going on)

[[Category:Fremantle]]
[[Category:GPS]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Fremantle Stars/gPodder</title>
    <id>1995</id>
    <revision>
      <id>36235</id>
      <timestamp>2010-06-24T12:12:02Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{out of date}}</comment>
      <text xml:space="preserve">{{out of date}}

The current version is '''0.16.1-10frmntl0''' (2009-08-26) in Fremantle Extras-Devel.

Screenshots as of 2009-06-16 can be found [http://talk.maemo.org/showpost.php?p=297135&amp;postcount=19 here] and [http://talk.maemo.org/showpost.php?p=297140&amp;postcount=20 here].

== Fixed problems/ChangeLog ==

* '''0.16.1-10frmntl0''': Add support for direct subscriptions from the browser using feedhandler
* '''0.16.1-9fremantleui''': Shorten application name to &quot;gPodder&quot; in application list to avoid it being cropped to &quot;gPodder Podcas&quot; ([http://www.mobile-review.com/review/image/nokia/rx51-n900/scr/scr29.jpg])
* '''0.16.1-8fremantleui''': Downloads are now stored in $HOME ([])
* '''0.16.1-7fremantleui''': The AppMenu is now shown in beta2 and (hopefully) on devices
* '''0.16.1-6fremantleui''': Welcome window now works again
* '''0.16.1-5fremantleui''': Several UI bugs/annoyances (Maemo bugs 4686, 4687, 4688 and 4689)
* '''0.16.1-4fremantleui''': Don't use &quot;I&quot; while writing messages from software ([https://bugs.maemo.org/show_bug.cgi?id=4684 bug 4684])
* '''0.16.1-3fremantleui''': Installation fails on postinst[http://talk.maemo.org/showpost.php?p=297085&amp;postcount=10]

== Already Working (List of things to test) ==

* Welcome screen at first start / when subscription list empty
* Find new podcasts - with podcast directory + YouTube search
* Login to my.gpodder.org and download subscription list
* App menu in main window
** Check for new episodes (update feeds; show progress in titlebar; offer new episodes)
** Downloads (opens the download status list; shows status as gray text)
** Add new podcast (subscribe to a podcast by entering/pasting the feed URL)
** Unsubscribe (remove the subscription and downloads of the selected podcast)
** Preferences (Set up audio and media player)
** About gPodder (About dialog.. nothing more)
** Podcast directory (OPML from web; suggested podcasts; top podcasts; YouTube subscriptions)
* Main window UI
** Left pane lists podcasts, right pane lists episodes in selected podcast
** Clicking on an episode opens its shownotes in a new stackable window
* Episode shownotes UI
** Has image of podcast, title of episode + podcast, shownotes
** Appmenu has: Play/Stream; Download/Cancel/Delete; Pause/Resume; Do not download/Mark as new; Open website (does this work with the browser??)
* Download status UI
** List of current downloads (queued, downloading, finished, paused, cancelled, failed)
** Clicking on an item opens the shownotes window
** Appmenu has: Pause all; Resume all; Cancel all; Clean up list (removes all with status: cancelled, finished, failed)

Advanced features:

* Close gPodder while downloads are running; on next startup, it asks you to resume the downloads

== Known problems ==

* Main window uses GtkPaned [http://talk.maemo.org/showpost.php?p=296852&amp;postcount=8]
* Podcast directory dialog uses GtkNotebook [http://talk.maemo.org/showpost.php?p=296852&amp;postcount=8] -- [https://bugs.maemo.org/show_bug.cgi?id=4690 bug 4690] has a solution; still needs implementation

== Planned/Ideas ==

* Integration with MAFW (downloaded episodes as MafwSource/MafwPlaylist?) -- depends on [https://bugs.maemo.org/show_bug.cgi?id=4675 bug 4675]
* Automatic updating in the background (depending on cellular/wlan connection?)
* Tablet-related content (Tablet School video podcast?) -- needs content publishers to provide their content as video podcast

== Need Help ==

* Playback + Streaming (How to interface with the Media Player in Maemo 5?)
* Better podcast directory - please suggest feeds[http://talk.maemo.org/showpost.php?p=296812&amp;postcount=6]
* HTML shownotes - is there a &quot;good&quot; HTML widget for PyMaemo?
* UI feedback

[[Category:Fremantle]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Fremantle Stars/liqbase</title>
    <id>1998</id>
    <revision>
      <id>28820</id>
      <timestamp>2010-02-10T16:22:21Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Software]]</comment>
      <text xml:space="preserve">Liqbase playground is a sliq graphical playground for the nokia internet tablet range. Running well on the n8x0 series is a defined goal, running better on the new device is an added bonus!

Have broken the application into 2 halves since the previous release and created an application framework for creating elements. Standalone applications can be created with the framework. If done carefully they can also integrate into the playground (shared source, multiple binary).

I have been building the applications within the framework now as shown by video overview 5: http://www.youtube.com/watch?v=vt7qB37sLLo

Specific targets for this release
* Multilayered zooming playground - inplace
* Instant live sketching - inplace rough, needs tools as original
* Graffiti wall - inplace rough
* Calendar with easy kinetics and sketch based entry - like your wall calendar - works VERY nicely
* Tagging of sketched elements

Lots of test widgets currently exist in the system which are test cases for the ugly corners of the framework - proof of concepts.

The sketching and calendar takes precedence, but requires a large number of support functions and ui interactions to be fully complete.


All graphical screens lack polish and styling, most don't need it, it shows the users' data and needs no UI but there are screens which require cleanup.

Once this raw testing package is available it will help to concentrate efforts and allow people to work on layouts.

Having lots of problems packaging, The library is one half, liqbase-playground and its widgets are the other.

http://github.com/lcuk/libliqbase/tree/master

http://github.com/lcuk/liqbase-playground/tree/master

[[Category:Fremantle]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Fremantle Unsupported Bluetooth profiles</title>
    <id>2472</id>
    <revision>
      <id>40931</id>
      <timestamp>2010-12-28T10:02:14Z</timestamp>
      <contributor>
        <username>jav_maemo</username>
        <id>3775</id>
      </contributor>
      <comment>Linked to forum post about extkbd</comment>
      <text xml:space="preserve">There are several [[Bluetooth]] profiles officially missing/unsupported in [[Open development/Maemo roadmap/Fremantle|Fremantle]] that are however supported by the upstream BlueZ project or can be made to work with some simple hacks. 

== DUN server ==

There's a tool called pnatd (short for PhoNet AT Daemon) which can act as a proxy between the cellular modem PhoNet interface and a TTY device.

=== Example script ===

&lt;source lang=&quot;bash&quot;&gt;
sdptool add --channel 1 DUN
while true; do
        rfcomm -S --listen -1 1 /usr/bin/pnatd '{}'
        sleep 1
done
&lt;/source&gt;

There is one known issue: Most likely due to a bug in the way that the Bluetooth and TTY subsystems in the kernel interact in this use case data can be lost if the DUN client starts immediately sending AT commands when the connection is created. This can e.g. be worked around by adding a 1 second delay to the chat script on the client side.

== HID host (i.e. support for Bluetooth keyboards and mice) ==

Fremantle comes with the bluetoothd input plugin installed but disabled through &lt;code&gt;/etc/bluetooth/main.conf&lt;/code&gt;

As shown by [[Maemo Summit 2009/Day 2#Hacking officially unsupported Bluetooth profiles to work in Fremantle|Johan Hedberg at the Maemo Summit 2009]]:

Your &lt;code&gt;main.conf&lt;/code&gt; should look like:
&lt;pre&gt;
[General]

#List of plugins that should not be loaded on bluetoothd startup
DisablePlugins = network,input,hal
...
&lt;/pre&gt;

[[root access|As root]] change it to:
&lt;pre&gt;
[General]

#List of plugins that should not be loaded on bluetoothd startup
DisablePlugins = network,hal
...
&lt;/pre&gt;

After saving, do a
&lt;pre&gt;
stop bluetoothd [RETURN]
start bluetoothd [RETURN]
&lt;/pre&gt;

Note that editing the bluetooth/main.conf file will conflict with SIXAXIS(TM) Support, the controller will not connect to the device until this is reversed.

=== Bluetooth Keyboard ===

Bluetooth keyboards should pair like any other bluetooth device.

You'll need to complete some extra steps to get the layout working properly. See [[Fremantle Bluetooth Keyboard Layout]].

The new application package &quot;[http://maemo.org/packages/view/extkbd/ extkbd]&quot; (currently in [[Extras-Testing]]) simplifies the usage of external Keyboards. See [http://talk.maemo.org/showthread.php?t=65577 this post] for some usage instructions.

=== Bluetooth Mouse ===

For a bluetooth mouse, extra steps are also required. By default, mouse sensitivity is unusably high. There are some modified versions of the evdev_drv.so driver (and bluetooth.ko module) available in [http://talk.maemo.org/showthread.php?t=57427 this talk.maemo.org thread] that will fix this problem. 

Depending on the mouse, you may also need to install the [http://packages.debian.org/lenny-backports/bluez-compat bluez-compat] package from Debian and libxmuu1, then run &quot;hidd --search&quot; in order to pair. See [http://talk.maemo.org/showthread.php?p=737916#post737916 this post] for more details.

Similar to extkbd, the new application package [http://maemo.org/packages/view/extmou/ extmou] (also currently in [[Extras-Testing]]) simplifies this process.

== PAN ==

Fremantle comes with the bluetoothd network plugin installed but disabled through &lt;code&gt;/etc/bluetooth/main.conf&lt;/code&gt; - to use your N900 as a PAN server for other clients (such as N8x0) just enable this.

If you want to connect to another device over PAN, see [[Bluetooth PAN]] for more detailed information.

== Phone Book Access Profile (PBAP) and IrMC Sync ==

{{main|Bluetooth PBAP}}

[[Category:Users]]
[[Category:Fremantle]]
[[Category:Bluetooth]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Fremantle build notes</title>
    <id>2006</id>
    <revision>
      <id>42385</id>
      <timestamp>2011-03-07T14:00:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Missing dependencies */ cmake works on Fremantle [[Developer_FAQ#QEMU_error_running_cmake_in_ARMEL_target_in_Fremantle.3F]]</comment>
      <text xml:space="preserve">== SDK Changes ==

1. E: Couldn't find package libhildondesktop-dev

You need to change the name of the package from libhildondesktop-dev to libhildondesktop1-dev.

2. E: Couldn't find package tslib-dev

This library seems to have changed its name to libts-dev.

== Build failures ==

1. [https://garage.maemo.org/builder/fremantle/automoc_1.0~svn843154-0maemo1/armel.build.log.FAILED.txt automoc segfaults] Contacted Maintainer: No&lt;br&gt;

2. [https://garage.maemo.org/builder/fremantle/anyremote_4.18.1-1maemo1/armel.build.log.FAILED.txt anyremote fails (needs a X header file.) ] Contacted Maintainer: Yes&lt;br&gt;

3. Even though bluemaemo builds, it won't ﻿in the current state in fremantle, the bluez project broke the api between v3.xx and v4.xx, so some minor changes are required 

4. debootstrap fails;&lt;br&gt;
&quot;E: Package makedev has no installation candidate&quot;  Contacted Maintainer: No&lt;br&gt;

5. [https://garage.maemo.org/builder/fremantle/midori_0.1.4-1maemo1/armel.root.log.FAILED.txt Midori fails; Cannot find libwebkit-dev]  Contacted Maintainer: No&lt;br&gt;

6. [https://garage.maemo.org/builder/fremantle/webkit_1.0-svn41137-8maemo1/armel.root.log.FAILED.txt webkit fails] because it needs bison!  Contacted Maintainer: No&lt;br&gt;

== Missing dependencies ==

1. libsoup2.2

Preventing GPE suite from building.

Package exists in Diablo extras-devel.  Not clear whether it would build for Fremantle.

2. cmake

Preventing opensync from building.

== Successfully built ==

Successfully built in this context means that the package has gone through the autobuilder on maemo.org - it doesn't mean that the package builds locally or runs without further testing on a device.

&lt;br&gt;1. bluemaemo
&lt;br&gt;2. zsync
&lt;br&gt;3. lynx
&lt;br&gt;4. xterm
&lt;br&gt;5. ganyremote
&lt;br&gt;6. filckrdemo
&lt;br&gt;7. file
&lt;br&gt;8. flac
&lt;br&gt;9. hexedit
&lt;br&gt;10. defoma
&lt;br&gt;11. exif
&lt;br&gt;12. flipclock
&lt;br&gt;13. debianutils
&lt;br&gt;14. help2man
&lt;br&gt;15. sisbit, sisusbvga, xsisusb -- no idea if they work without a real device
&lt;br&gt;16. libsoup
&lt;br&gt;17. libesd (esound)

== Libraries that have lower version number than the SDK on fremantle ==

{| class=&quot;wikitable&quot;
|  | Maemo 5 beta2 SDK
| style=&quot;background:Tomato&quot; | On Garage
|}

{| class=&quot;wikitable&quot;
| |
libaccounts-dev_4.5-1+0m5_i386.deb&lt;BR&gt;
libaccounts-glade_4.59-1+0m5_i386.deb&lt;BR&gt;
libaccounts0_4.5-1+0m5_i386.deb&lt;BR&gt;
libalarm-dev_1.1.8+0m5_i386.deb&lt;BR&gt;
libalarm2_1.1.8+0m5_i386.deb&lt;BR&gt;
libares-dev_1.6.0-1+0m5_i386.deb&lt;BR&gt;
libasound2-dev_1.0.20-0maemo1+0m5_i386.deb&lt;BR&gt;
libasound2-plugins_1.0.20-0maemo1+0m5_i386.deb&lt;BR&gt;
libasound2_1.0.20-0maemo1+0m5_i386.deb&lt;BR&gt;
libatk1.0-0_1.24.0-2maemo1_i386.deb&lt;BR&gt;
libatk1.0-dev_1.24.0-2maemo1_i386.deb&lt;BR&gt;
libatomic-ops-dev_1.2-3maemo1_i386.deb&lt;BR&gt;
libaudiofile-dev_0.2.6-3osso6_i386.deb&lt;BR&gt;
libaudiofile0_0.2.6-3osso6_i386.deb&lt;BR&gt;
libbluetooth3-dev_4.42-0maemo2+0m5_i386.deb&lt;BR&gt;
libbluetooth3_4.42-0maemo2+0m5_i386.deb&lt;BR&gt;
libbmeipc0_0.8.28+0m5_i386.deb&lt;BR&gt;
libbz2-1.0_1%3a1.0.5-3+0m5_i386.deb&lt;BR&gt;
libbz2-dev_1%3a1.0.5-3+0m5_i386.deb&lt;BR&gt;
libc6-dev_2.5.1-1eglibc15+0m5_i386.deb&lt;BR&gt;
libc6_2.5.1-1eglibc15+0m5_i386.deb&lt;BR&gt;
libcairo2-dev_1.8.6-0maemo3+0m5_i386.deb&lt;BR&gt;
libcairo2_1.8.6-0maemo3+0m5_i386.deb&lt;BR&gt;
libcal-dev_0.2.5.m5_i386.deb&lt;BR&gt;
libcal1_0.2.5.m5_i386.deb&lt;BR&gt;
libcanberra-dev_0.12-0maemo7+0m5_i386.deb&lt;BR&gt;
libcanberra-gtk-dev_0.12-0maemo7+0m5_i386.deb&lt;BR&gt;
libcanberra-gtk-module_0.12-0maemo7+0m5_i386.deb&lt;BR&gt;
libcanberra-gtk0_0.12-0maemo7+0m5_i386.deb&lt;BR&gt;
libcanberra0_0.12-0maemo7+0m5_i386.deb&lt;BR&gt;
libcityinfo-dev_0.5.7-1+0m5_i386.deb&lt;BR&gt;
libcityinfo0-0_0.5.7-1+0m5_i386.deb&lt;BR&gt;
libclockcore0-0_0.5.11-1+0m5_i386.deb&lt;BR&gt;
libclutter-0.8-0_0.8.2-0maemo39+0m5_i386.deb&lt;BR&gt;
libcodelockui1-dev_1%3a1.6.5+0m5_all.deb&lt;BR&gt;
libcodelockui1_1%3a1.6.5+0m5_i386.deb&lt;BR&gt;
libconic0-dev_0.22+0m5_i386.deb&lt;BR&gt;
libconic0_0.22+0m5_i386.deb&lt;BR&gt;
libcst-dev_1.7.19_i386.deb&lt;BR&gt;
libcst0_1.7.19_i386.deb&lt;BR&gt;
libcst_1.7.19_i386.deb&lt;BR&gt;
libcurl3-dev_7.18.2-8maemo5+0m5_all.deb&lt;BR&gt;
libcurl3_7.18.2-8maemo5+0m5_i386.deb&lt;BR&gt;
libcurl4-openssl-dev_7.18.2-8maemo5+0m5_i386.deb&lt;BR&gt;
libcurlpp-dev_0.6.0-2_i386.deb&lt;BR&gt;
libcurlpp0_0.6.0-2_i386.deb&lt;BR&gt;
libdb1-dev_1.85.4-osso8_i386.deb&lt;BR&gt;
libdb1_1.85.4-osso8_i386.deb&lt;BR&gt;
libdb4.2_4.2.52+dfsg-5maemo1_i386.deb&lt;BR&gt;
libdbus-1-3_1.2.12-0maemo6+0m5_i386.deb&lt;BR&gt;
libdbus-1-dev_1.2.12-0maemo6+0m5_i386.deb&lt;BR&gt;
libdbus-glib-1-2_0.78-0maemo4+0m5_i386.deb&lt;BR&gt;
libdbus-glib-1-dev_0.78-0maemo4+0m5_i386.deb&lt;BR&gt;
libdevlock-bin_1.0.8+0m5_i386.deb&lt;BR&gt;
libdevlock1_1.0.8+0m5_i386.deb&lt;BR&gt;
libdrm-dev_2.3.1-3_i386.deb&lt;BR&gt;
libdrm2_2.3.1-3_i386.deb&lt;BR&gt;
libdsme0.2.0_0.60.20+0m5_i386.deb&lt;BR&gt;
libebook-dev_1.4.2.1-20090629+0m5_i386.deb&lt;BR&gt;
libebook_1.4.2.1-20090629+0m5_i386.deb&lt;BR&gt;
libedata-book-dev_1.4.2.1-20090629+0m5_i386.deb&lt;BR&gt;
libedata-book_1.4.2.1-20090629+0m5_i386.deb&lt;BR&gt;
libedataserver-dev_1.4.2.1-20090629+0m5_i386.deb&lt;BR&gt;
libedataserver_1.4.2.1-20090629+0m5_i386.deb&lt;BR&gt;
libepeg0-dev_0.9.1.042maemo2+0m5_i386.deb&lt;BR&gt;
libepeg0_0.9.1.042maemo2+0m5_i386.deb&lt;BR&gt;
libexempi-dev_2.0.2-1maemo6+0m5_i386.deb&lt;BR&gt;
libexempi3_2.0.2-1maemo6+0m5_i386.deb&lt;BR&gt;
libexif-dev_0.6.16-2-1maemo3+0m5_i386.deb&lt;BR&gt;
libexif12_0.6.16-2-1maemo3+0m5_i386.deb&lt;BR&gt;
libexpat1-dev_1.95.8-4maemo1.0fremantle_i386.deb&lt;BR&gt;
libexpat1_1.95.8-4maemo1.0fremantle_i386.deb&lt;BR&gt;
libfontconfig1-dev_2.6.0-1osso1+0m5_all.deb&lt;BR&gt;
libfontconfig1_2.6.0-1osso1+0m5_i386.deb&lt;BR&gt;
libfontenc-dev_1%3a1.0.4-2_i386.deb&lt;BR&gt;
libfontenc1_1%3a1.0.4-2_i386.deb&lt;BR&gt;
libfreetype6-dev_2.3.9-1osso2+0m5_i386.deb&lt;BR&gt;
libfreetype6_2.3.9-1osso2+0m5_i386.deb&lt;BR&gt;
libgcc1_1%3a4.2.1-4maemo9+0m5_i386.deb&lt;BR&gt;
libgconf2-6_2.16.0-2osso5+0m5_i386.deb&lt;BR&gt;
libgconf2-dev_2.16.0-2osso5+0m5_i386.deb&lt;BR&gt;
libgl1_7.1~RC3-0maemo1-recomp1_i386.deb&lt;BR&gt;
libglade2-0_1%3a2.6.3-1maemo1_i386.deb&lt;BR&gt;
libglade2-dev_1%3a2.6.3-1maemo1_i386.deb&lt;BR&gt;
libglib2.0-0_2.20.1-1maemo3+0m5_i386.deb&lt;BR&gt;
libglib2.0-dev_2.20.1-1maemo3+0m5_i386.deb&lt;BR&gt;
libgmime-2.0-2-dev_2.2.20-maemo0_i386.deb&lt;BR&gt;
libgmime-2.0-2_2.2.20-maemo0_i386.deb&lt;BR&gt;
libgnome-menu2_2.23.3-0maemo+0m5_i386.deb&lt;BR&gt;
libgomp1_4.2.1-4maemo9+0m5_i386.deb&lt;BR&gt;
libgssdp-1.0-1_0.6.4-0maemo2+0m5_i386.deb&lt;BR&gt;
libgssdp-1.0-dev_0.6.4-0maemo2+0m5_i386.deb&lt;BR&gt;
libgstfarsight0.10-0_0.0.11-0maemo6+0m5_i386.deb&lt;BR&gt;
libgstfarsight0.10-dev_0.0.11-0maemo6+0m5_i386.deb&lt;BR&gt;
libgstreamer-plugins-base0.10-0_0.10.23-0maemo4+0m5_i386.deb&lt;BR&gt;
libgstreamer-plugins-base0.10-dev_0.10.23-0maemo4+0m5_i386.deb&lt;BR&gt;
libgstreamer0.10-0_0.10.23-0maemo5+0m5_i386.deb&lt;BR&gt;
libgstreamer0.10-dev_0.10.23-0maemo5+0m5_i386.deb&lt;BR&gt;
libgtk2.0-0_2%3a2.14.7-1maemo1+0m5_i386.deb&lt;BR&gt;
libgtk2.0-bin_2%3a2.14.7-1maemo1+0m5_i386.deb&lt;BR&gt;
libgtk2.0-common_2%3a2.14.7-1maemo1+0m5_all.deb&lt;BR&gt;
libgtk2.0-dev_2%3a2.14.7-1maemo1+0m5_i386.deb&lt;BR&gt;
libgupnp-1.0-2_0.12.8-0maemo1+0m5_i386.deb&lt;BR&gt;
libgupnp-1.0-dev_0.12.8-0maemo1+0m5_i386.deb&lt;BR&gt;
libgupnp-av-1.0-1_0.4-0maemo1+0m5_i386.deb&lt;BR&gt;
libgupnp-av-1.0-dev_0.4-0maemo1+0m5_i386.deb&lt;BR&gt;
libgupnp-igd-1.0-2_0.1.3-0maemo1+0m5_i386.deb&lt;BR&gt;
libgvfscommon-dev_1.0.3-3maemo2+0m5_i386.deb&lt;BR&gt;
libgvfscommon0_1.0.3-3maemo2+0m5_i386.deb&lt;BR&gt;
libgwobex-dev_0.62+0m5_i386.deb&lt;BR&gt;
libgwobex0_0.62+0m5_i386.deb&lt;BR&gt;
libgypsy-dev_0.6-9+0m5_i386.deb&lt;BR&gt;
libhal-dev_0.5.12~git20090219-0maemo4+0m5_i386.deb&lt;BR&gt;
libhal-storage-dev_0.5.12~git20090219-0maemo4+0m5_i386.deb&lt;BR&gt;
libhal-storage1_0.5.12~git20090219-0maemo4+0m5_i386.deb&lt;BR&gt;
libhal1_0.5.12~git20090219-0maemo4+0m5_i386.deb&lt;BR&gt;
libhildon-im-ui-dev_1%3a2.1.25-1+0m5_all.deb&lt;BR&gt;
libhildon-im-ui3_1%3a2.1.25-1+0m5_i386.deb&lt;BR&gt;
libhildon-thumbnail-dev_3.0.34+0m5_i386.deb&lt;BR&gt;
libhildon-thumbnail0-dbg_3.0.34+0m5_i386.deb&lt;BR&gt;
libhildon-thumbnail0_3.0.34+0m5_i386.deb&lt;BR&gt;
libhildon1-dev_2.1.86-2+0m5_i386.deb&lt;BR&gt;
libhildon1_2.1.86-2+0m5_i386.deb&lt;BR&gt;
libhildondesktop1-dev_2.1.28+0m5_i386.deb&lt;BR&gt;
libhildondesktop1_2.1.28+0m5_i386.deb&lt;BR&gt;
libhildonfm2-dev_1%3a2.21+0m5_all.deb&lt;BR&gt;
libhildonfm2_1%3a2.21+0m5_i386.deb&lt;BR&gt;
libhildonmime-dev_2.1.3-1+0m5_i386.deb&lt;BR&gt;
libhildonmime0_2.1.3-1+0m5_i386.deb&lt;BR&gt;
libhildonnotify-dev_0.0.2-1-recomp1_all.deb&lt;BR&gt;
libhildonnotify0_0.0.2-1-recomp1_i386.deb&lt;BR&gt;
libi18n-dev_0.1.7-1_i386.deb&lt;BR&gt;
libi18n0_0.1.7-1_i386.deb&lt;BR&gt;
libical-dev_0.51-1+0m5_i386.deb&lt;BR&gt;
libical_0.51-1+0m5_i386.deb&lt;BR&gt;
libice-dev_2%3a1.0.4-1_i386.deb&lt;BR&gt;
libice6_2%3a1.0.4-1_i386.deb&lt;BR&gt;
libid3-3.8.3-dev_3.8.3-5osso19_i386.deb&lt;BR&gt;
libid3-3.8.3_3.8.3-5osso19_i386.deb&lt;BR&gt;
libiphb-dev_0.0.12+0m5_i386.deb&lt;BR&gt;
libiphb0_0.0.12+0m5_i386.deb&lt;BR&gt;
libiptcdata0-dev_1.0.2+libtool01-2maemo1_i386.deb&lt;BR&gt;
libiptcdata0_1.0.2+libtool01-2maemo1_i386.deb&lt;BR&gt;
libisi-glib0_1.4.2+0m5_i386.deb&lt;BR&gt;
libisi1_1.4.2+0m5_i386.deb&lt;BR&gt;
libiw-dev_30~pre7-1.3maemo+0m5_i386.deb&lt;BR&gt;
libiw30_30~pre7-1.3maemo+0m5_i386.deb&lt;BR&gt;
libjingle-dev_0.3.11-0osso5cs2007q3a_i386.deb&lt;BR&gt;
libjingle-utils_0.3.11-0osso5cs2007q3a_i386.deb&lt;BR&gt;
libjinglebase0_0.3.11-0osso5cs2007q3a_i386.deb&lt;BR&gt;
libjinglep2p0_0.3.11-0osso5cs2007q3a_i386.deb&lt;BR&gt;
libjpeg62-dev_6b-9osso5+cs2007q3_i386.deb&lt;BR&gt;
libjpeg62_6b-9osso5+cs2007q3_i386.deb&lt;BR&gt;
liblas1_1.0.0_i386.deb&lt;BR&gt;
liblocation-dev_0.94-11+0m5_i386.deb&lt;BR&gt;
liblocation0_0.94-11+0m5_i386.deb&lt;BR&gt;
libloudmouth1-0_1.4.1-0osso4+0m5_i386.deb&lt;BR&gt;
libloudmouth1-dev_1.4.1-0osso4+0m5_i386.deb&lt;BR&gt;
libltdl7-dev_2.2.6a-1~maemo2_i386.deb&lt;BR&gt;
libltdl7_2.2.6a-1~maemo2_i386.deb&lt;BR&gt;
libmafw-doc_0.1.2009.27-2+0m5_all.deb&lt;BR&gt;
libmafw-shared-doc_0.1.2009.27-2+0m5_all.deb&lt;BR&gt;
libmafw-shared0-dev_0.1.2009.27-2+0m5_i386.deb&lt;BR&gt;
libmafw-shared0_0.1.2009.27-2+0m5_i386.deb&lt;BR&gt;
libmafw0-dev_0.1.2009.28-1+0m5_all.deb&lt;BR&gt;
libmafw0_0.1.2009.28-1+0m5_i386.deb&lt;BR&gt;
libmcclient-dev_5.1.1-0maemo3+0m5_i386.deb&lt;BR&gt;
libmcclient6_5.1.1-0maemo3+0m5_i386.deb&lt;BR&gt;
libmissioncontrol-dev_5.1.1-0maemo3+0m5_i386.deb&lt;BR&gt;
libmissioncontrol-server6_5.1.1-0maemo3+0m5_i386.deb&lt;BR&gt;
libmissioncontrol-utils_5.1.1-0maemo3+0m5_i386.deb&lt;BR&gt;
libmodest-dbus-client-dev_3.0.17-rc21+0m5_i386.deb&lt;BR&gt;
libmodest-dbus-client_3.0.17-rc21+0m5_i386.deb&lt;BR&gt;
libnavigation-dev_0.100-2+0m5_i386.deb&lt;BR&gt;
libnavigation0_0.100-2+0m5_i386.deb&lt;BR&gt;
libncurses5-dev_5.7+20081213-1.maemo1+0m5_i386.deb&lt;BR&gt;
libncursesw5-dev_5.7+20081213-1.maemo1+0m5_i386.deb&lt;BR&gt;
libnice-dev_1%3a0.0.8-0maemo1+0m5_i386.deb&lt;BR&gt;
libnice-gstreamer0.10_1%3a0.0.8-0maemo1+0m5_i386.deb&lt;BR&gt;
libnice0_1%3a0.0.8-0maemo1+0m5_i386.deb&lt;BR&gt;
libnotify-dev_0.4.4-2recomp1+0m5_i386.deb&lt;BR&gt;
libnotify1_0.4.4-2recomp1+0m5_i386.deb&lt;BR&gt;
liboil0.3-dev_0.3.15-1maemo7_i386.deb&lt;BR&gt;
liboil0.3_0.3.15-1maemo7_i386.deb&lt;BR&gt;
libomxil-bellagio-dev_0.3.5~r544-5+0m5_i386.deb&lt;BR&gt;
libomxil-bellagio0_0.3.5~r544-5+0m5_i386.deb&lt;BR&gt;
libopenobex1-dev_1.4-0maemo3+0m5_i386.deb&lt;BR&gt;
libopenobex1_1.4-0maemo3+0m5_i386.deb&lt;BR&gt;
libosso-abook-dev_4.20090630.2+0m5_i386.deb&lt;BR&gt;
libosso-abook_4.20090630.2+0m5_i386.deb&lt;BR&gt;
libosso-dbus-conf_2.21-1+0m5_all.deb&lt;BR&gt;
libosso-dev_2.21-1+0m5_i386.deb&lt;BR&gt;
libosso-gnomevfs2-0_2.16.3-2osso5+0m5_i386.deb&lt;BR&gt;
libosso-gnomevfs2-common_2.16.3-2osso5+0m5_i386.deb&lt;BR&gt;
libosso-gnomevfs2-dev_2.16.3-2osso5+0m5_i386.deb&lt;BR&gt;
libosso-gsf-1-dev_1.11.10.4-3+0m5_i386.deb&lt;BR&gt;
libosso-gsf-1_1.11.10.4-3+0m5_i386.deb&lt;BR&gt;
libosso1_2.21-1+0m5_i386.deb&lt;BR&gt;
libpango1.0-0_1.24.2-0maemo1+0m5_i386.deb&lt;BR&gt;
libpango1.0-common_1.24.2-0maemo1+0m5_i386.deb&lt;BR&gt;
libpango1.0-dev_1.24.2-0maemo1+0m5_i386.deb&lt;BR&gt;
libpciaccess-dev_0.10.3-1_i386.deb&lt;BR&gt;
libpciaccess0_0.10.3-1_i386.deb&lt;BR&gt;
libpixman-1-0_0.14.0-4+0m5_i386.deb&lt;BR&gt;
libpixman-1-dev_0.14.0-4+0m5_i386.deb&lt;BR&gt;
libplayback-1-0_0.5-18+0m5_i386.deb&lt;BR&gt;
libpng12-0_1.2.37-1maemo1+0m5_i386.deb&lt;BR&gt;
libpng12-dev_1.2.37-1maemo1+0m5_i386.deb&lt;BR&gt;
libpopt-dev_1.10-3osso3+0m5_i386.deb&lt;BR&gt;
libpopt0_1.10-3osso3+0m5_i386.deb&lt;BR&gt;
libprofile0_0.0.14+0m5_i386.deb&lt;BR&gt;
libpthread-stubs0-dev_0.1-2maemo1_i386.deb&lt;BR&gt;
libpthread-stubs0_0.1-2maemo1_i386.deb&lt;BR&gt;
libpulse-dev_0.9.15-1maemo16+0m5_i386.deb&lt;BR&gt;
libpulse-mainloop-glib0_0.9.15-1maemo16+0m5_i386.deb&lt;BR&gt;
libpulse0_0.9.15-1maemo16+0m5_i386.deb&lt;BR&gt;
libreadline4-dev_4.3-10.1+0m5_i386.deb&lt;BR&gt;
libreadline4_4.3-10.1+0m5_i386.deb&lt;BR&gt;
librtcom-accounts-ui-client-dev_4.63-3+0m5_i386.deb&lt;BR&gt;
librtcom-accounts-ui-dev_4.63-3+0m5_i386.deb&lt;BR&gt;
librtcom-accounts-widgets-dev_4.63-3+0m5_i386.deb&lt;BR&gt;
librtcom-accounts-widgets0_4.63-3+0m5_i386.deb&lt;BR&gt;
librtcom-eventlogger-dev_0.73-2+0m5_i386.deb&lt;BR&gt;
librtcom-eventlogger-plugins-dev_0.26-1+0m5_i386.deb&lt;BR&gt;
librtcom-eventlogger-plugins0_0.26-1+0m5_i386.deb&lt;BR&gt;
librtcom-eventlogger-ui-dev_0.46-2+0m5_i386.deb&lt;BR&gt;
librtcom-eventlogger-ui0_0.46-2+0m5_i386.deb&lt;BR&gt;
librtcom-eventlogger0_0.73-2+0m5_i386.deb&lt;BR&gt;
libsdl-image1.2-dev_1.2.4-5-recomp1_i386.deb&lt;BR&gt;
libsdl-image1.2_1.2.4-5-recomp1_i386.deb&lt;BR&gt;
libsdl-mixer1.2-dev_1.2.6-4-recomp1_i386.deb&lt;BR&gt;
libsdl-mixer1.2_1.2.6-4-recomp1_i386.deb&lt;BR&gt;
libsdl1.2-dev_1%3a1.2.13-2maemo3+0m5_i386.deb&lt;BR&gt;
libsdl1.2_1%3a1.2.13-2maemo3+0m5_i386.deb&lt;BR&gt;
libsharedmem1-dev_0.1.1-1_i386.deb&lt;BR&gt;
libsharedmem1_0.1.1-1_i386.deb&lt;BR&gt;
libsignon-glib0_0.36+0m5_i386.deb&lt;BR&gt;
libsm-dev_2%3a1.0.3-1_i386.deb&lt;BR&gt;
libsm6_2%3a1.0.3-1_i386.deb&lt;BR&gt;
libsndfile1-dev_1.0.20-0maemo1+0m5_i386.deb&lt;BR&gt;
libsndfile1_1.0.20-0maemo1+0m5_i386.deb&lt;BR&gt;
libsofia-sip-ua-dev_1.12.10-0maemo2+0m5_i386.deb&lt;BR&gt;
libsofia-sip-ua-glib-dev_1.12.10-0maemo2+0m5_i386.deb&lt;BR&gt;
libsofia-sip-ua-glib3_1.12.10-0maemo2+0m5_i386.deb&lt;BR&gt;
libsofia-sip-ua0_1.12.10-0maemo2+0m5_i386.deb&lt;BR&gt;
libsofia-tools-dev_1.12.10-0maemo2+0m5_i386.deb&lt;BR&gt;
libsofia-tools0_1.12.10-0maemo2+0m5_i386.deb&lt;BR&gt;
libsoup2.4-1_2.24.3-2maemo2+0m5_i386.deb&lt;BR&gt;
libsoup2.4-dev_2.24.3-2maemo2+0m5_i386.deb&lt;BR&gt;
libspeex-dev_1.2~rc1-1maemo7+0m5_i386.deb&lt;BR&gt;
libspeex1_1.2~rc1-1maemo7+0m5_i386.deb&lt;BR&gt;
libspeexdsp-dev_1.2~rc1-1maemo7+0m5_i386.deb&lt;BR&gt;
libspeexdsp1_1.2~rc1-1maemo7+0m5_i386.deb&lt;BR&gt;
libsqlite3-0_3.6.14-1maemo1+0m5_i386.deb&lt;BR&gt;
libsqlite3-dev_3.6.14-1maemo1+0m5_i386.deb&lt;BR&gt;
libssl-dev_0.9.8g-15maemo4+0m5_i386.deb&lt;BR&gt;
libssl0.9.8_0.9.8g-15maemo4+0m5_i386.deb&lt;BR&gt;
libstdc++6-4.2-dev_4.2.1-4maemo9+0m5_i386.deb&lt;BR&gt;
libstdc++6-4.2-pic_4.2.1-4maemo9+0m5_i386.deb&lt;BR&gt;
libstdc++6_4.2.1-4maemo9+0m5_i386.deb&lt;BR&gt;
libtelepathy-farsight-dev_0.0.7-0maemo3+0m5_i386.deb&lt;BR&gt;
libtelepathy-farsight0_0.0.7-0maemo3+0m5_i386.deb&lt;BR&gt;
libtelepathy-glib-dev_0.7.32-1maemo1+0m5_i386.deb&lt;BR&gt;
libtelepathy-glib0_0.7.32-1maemo1+0m5_i386.deb&lt;BR&gt;
libtiff4-dev_1%3a3.8.2-11maemo3_i386.deb&lt;BR&gt;
libtiff4_1%3a3.8.2-11maemo3_i386.deb&lt;BR&gt;
libtime-dev_0.0.34+0m5_i386.deb&lt;BR&gt;
libtime0_0.0.34+0m5_i386.deb&lt;BR&gt;
libtotem-plparser-dev_2.27.2-1maemo1+0m5_i386.deb&lt;BR&gt;
libtotem-plparser12_2.27.2-1maemo1+0m5_i386.deb&lt;BR&gt;
libtrace-dev_0.5.0_i386.deb&lt;BR&gt;
libtrace0_0.5.0_i386.deb&lt;BR&gt;
libtrackerclient0-dev_0.6.95-8maemo1+0m5_i386.deb&lt;BR&gt;
libtrackerclient0_0.6.95-8maemo1+0m5_i386.deb&lt;BR&gt;
libts-0.0-0_1.0-4_i386.deb&lt;BR&gt;
libusb++-0.1-4c2_2%3a0.1.12-5osso3+0m5_i386.deb&lt;BR&gt;
libusb++-dev_2%3a0.1.12-5osso3+0m5_i386.deb&lt;BR&gt;
libusb-0.1-4_2%3a0.1.12-5osso3+0m5_i386.deb&lt;BR&gt;
libusb-dev_2%3a0.1.12-5osso3+0m5_i386.deb&lt;BR&gt;
libuuid1_1.41.3-1maemo4+0m5_i386.deb&lt;BR&gt;
libvolume-id-dev_0.125-7maemo9+0m5_i386.deb&lt;BR&gt;
libvolume-id0_0.125-7maemo9+0m5_i386.deb&lt;BR&gt;
libwildmidi-dev_0.2.2-2maemo1_all.deb&lt;BR&gt;
libwildmidi0_0.2.2-2maemo1_i386.deb&lt;BR&gt;
libx11-6_2%3a1.1.99.5+0m5_i386.deb&lt;BR&gt;
libx11-data_2%3a1.1.99.5+0m5_all.deb&lt;BR&gt;
libx11-dev_2%3a1.1.99.5+0m5_i386.deb&lt;BR&gt;
libxau-dev_1%3a1.0.3-2osso1.1_i386.deb&lt;BR&gt;
libxau6_1%3a1.0.3-2osso1.1_i386.deb&lt;BR&gt;
libxaw-headers_2%3a1.0.4-1_all.deb&lt;BR&gt;
libxaw7-dev_2%3a1.0.4-1_i386.deb&lt;BR&gt;
libxaw7_2%3a1.0.4-1_i386.deb&lt;BR&gt;
libxcb-render0-dev_1.1.92-2downgraded_i386.deb&lt;BR&gt;
libxcb-render0_1.1.92-2downgraded_i386.deb&lt;BR&gt;
libxcb-xlib0-dev_1.1.92-2downgraded_i386.deb&lt;BR&gt;
libxcb-xlib0_1.1.92-2downgraded_i386.deb&lt;BR&gt;
libxcb1-dev_1.1.92-2downgraded_i386.deb&lt;BR&gt;
libxcb1_1.1.92-2downgraded_i386.deb&lt;BR&gt;
libxcomposite-dev_1%3a0.4.0-3+0m5_i386.deb&lt;BR&gt;
libxcomposite1_1%3a0.4.0-3+0m5_i386.deb&lt;BR&gt;
libxcursor-dev_1%3a1.1.9-1_i386.deb&lt;BR&gt;
libxcursor1_1%3a1.1.9-1_i386.deb&lt;BR&gt;
libxdamage-dev_1%3a1.1.1-3osso1.1_i386.deb&lt;BR&gt;
libxdamage1_1%3a1.1.1-3osso1.1_i386.deb&lt;BR&gt;
libxdmcp-dev_1%3a1.0.2-2osso1.1_i386.deb&lt;BR&gt;
libxdmcp6_1%3a1.0.2-2osso1.1_i386.deb&lt;BR&gt;
libxext-dev_2%3a1.0.99.1-0maemo20081209.0_i386.deb&lt;BR&gt;
libxext6_2%3a1.0.99.1-0maemo20081209.0_i386.deb&lt;BR&gt;
libxfixes-dev_1%3a4.0.3-2osso1.1_i386.deb&lt;BR&gt;
libxfixes3_1%3a4.0.3-2osso1.1_i386.deb&lt;BR&gt;
libxfont-dev_1%3a1.3.2-1maemo1_i386.deb&lt;BR&gt;
libxfont1_1%3a1.3.2-1maemo1_i386.deb&lt;BR&gt;
libxft-dev_2.1.12-2osso1.cs2007q3_i386.deb&lt;BR&gt;
libxft2_2.1.12-2osso1.cs2007q3_i386.deb&lt;BR&gt;
libxi-dev_2%3a1.2.99.1-1_i386.deb&lt;BR&gt;
libxi6_2%3a1.2.99.1-1_i386.deb&lt;BR&gt;
libxkbfile-dev_1%3a1.0.5-1_i386.deb&lt;BR&gt;
libxkbfile1_1%3a1.0.5-1_i386.deb&lt;BR&gt;
libxml2-dev_2.6.32.dfsg-5maemo1_i386.deb&lt;BR&gt;
libxml2_2.6.32.dfsg-5maemo1_i386.deb&lt;BR&gt;
libxmu-dev_2%3a1.0.4-1_i386.deb&lt;BR&gt;
libxmu-headers_2%3a1.0.4-1_all.deb&lt;BR&gt;
libxmu6_2%3a1.0.4-1_i386.deb&lt;BR&gt;
libxmuu-dev_2%3a1.0.4-1_i386.deb&lt;BR&gt;
libxmuu1_2%3a1.0.4-1_i386.deb&lt;BR&gt;
libxpm-dev_1%3a3.5.7-1_i386.deb&lt;BR&gt;
libxpm4_1%3a3.5.7-1_i386.deb&lt;BR&gt;
libxrandr-dev_2%3a1.2.99.4-2_i386.deb&lt;BR&gt;
libxrandr2_2%3a1.2.99.4-2_i386.deb&lt;BR&gt;
libxrender-dev_1%3a0.9.4-1_i386.deb&lt;BR&gt;
libxrender1_1%3a0.9.4-1_i386.deb&lt;BR&gt;
libxres-dev_3%3a1.0.3-1osso2.1_i386.deb&lt;BR&gt;
libxres1_3%3a1.0.3-1osso2.1_i386.deb&lt;BR&gt;
libxsp-dev_1.2.3-4.1_i386.deb&lt;BR&gt;
libxsp0_1.2.3-4.1_i386.deb&lt;BR&gt;
libxt-dev_1%3a1.0.5-3_i386.deb&lt;BR&gt;
libxt6_1%3a1.0.5-3_i386.deb&lt;BR&gt;
libxtst-dev_2%3a1.0.3-1_i386.deb&lt;BR&gt;
libxtst6_2%3a1.0.3-1_i386.deb&lt;BR&gt;
libxv-dev_2%3a1.0.4-1_i386.deb&lt;BR&gt;
libxv1_2%3a1.0.4-1_i386.deb&lt;BR&gt;


| style=&quot;background:Tomato&quot; | 
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
'''libasound2-dev_1.0.10-osso7_armel.deb'''&lt;BR&gt;
&lt;BR&gt;
'''libasound2_1.0.10-osso7_armel.deb'''&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
'''libexif-dev_0.6.16-2.1maemo2_armel.deb'''&lt;BR&gt;
'''libexif12_0.6.16-2.1maemo2_armel.deb'''&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
'''libgstreamer0.10-0_0.10.13-0osso13~diablo1_armel.deb'''&lt;BR&gt;
'''libgstreamer0.10-dev_0.10.13-0osso13~diablo1_armel.deb'''&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
'''libreadline5-dev_5.2-3maemo1_armel.deb'''&lt;BR&gt;
'''libreadline5_5.2-3maemo1_armel.deb'''&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
'''libsqlite0_2.8.17-4_armel.deb'''&lt;BR&gt;
'''libsqlite0-dev_2.8.17-4_armel.deb'''&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
'''libxml2-dev_2.6.27.dfsg-1.maemo1_armel.deb'''&lt;BR&gt;
'''libxml2_2.6.27.dfsg-1.maemo1_armel.deb'''&lt;BR&gt;
'''libxmu-dev_1.0.3-1osso2_armel.deb'''&lt;BR&gt;
&lt;BR&gt;
'''libxmu6_1.0.3-1osso2_armel.deb'''&lt;BR&gt;
'''libxmuu-dev_1.0.3-1osso2_armel.deb'''&lt;BR&gt;
'''libxmuu1_1.0.3-1osso2_armel.deb'''&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
&lt;BR&gt;
|}

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages</title>
    <id>4951</id>
    <revision>
      <id>49870</id>
      <timestamp>2012-09-24T13:02:58Z</timestamp>
      <contributor>
        <username>pali</username>
        <id>2764</id>
      </contributor>
      <comment>update links for bme</comment>
      <text xml:space="preserve">&lt;!--Note to future editors: Please leave these extra blank lines in place at the beginning of the page in order to prevent the oversized table from covering up and preventing the use of the wiki menu on the right side of the page--&gt;


'''Scroll down!''' Table is over-width and will cover right side panel if not moved little bit down.












































{| class=&quot;wikitable sortable&quot;
! Package !! File Location / Application !! Non-binary !! Third-Party !! Relicensed !! FOSS Replacement !! Source Code URL !! FOSS Version Working !! Needed For N900 !! Needed For Maemo
|-
| [[Fremantle_closed_packages/Adobe-flashplayer-package|adobe-flashplayer]] || flash-plugin for browser ||  || Yes ||  || Gnash in Easy Debian (?) ||  ||  || No || 
|-
| [[Fremantle_closed_packages/Alsa-policy-enforcement-package|alsa-policy-enforcement]] || /usr/sbin/alsaped  ||  ||  ||  || amixer (?) ||  ||  || Yes, for audio. || 
|-
| [[Fremantle_closed_packages/Maemo-installer-utils|amazon-installer]] ||  ||  || Yes ||  ||  ||  ||  || No || 
|-
| [[Fremantle_closed_packages/Maemo-installer-utils|ap-installer]] ||  ||  || Yes ||  ||  ||  ||  || No || 
|-
| [[Fremantle_closed_packages/Applet-datetime|applet-datetime]] || Change time/date/timezone easily ||  ||  ||  ||  ||  ||  || No || 
|-
| [[Fremantle_closed_packages/As-config-applet-0|as-config-applet-0]] || [[Mail_for_Exchange|MfE]] ||  ||  ||  ||  ||  ||  || No || 
|-
| [[Fremantle_closed_packages/as-daemon-0|as-daemon-0]] || [[Mail_for_Exchange|MfE]] ||  ||  ||  ||  ||  ||  || No || 
|-
| [[Fremantle_closed_packages/as-utils|as-utils]] || [[Mail_for_Exchange|MfE]] ||  ||  ||  ||  ||  ||  || No || 
|- style=&quot;background-color:#A0E75A;&quot;
| [[Fremantle_closed_packages/Bluetooth-sysinfo|bluetooth-sysinfo]] ||  ||  ||  ||  || Yes || http://lists.maemo.org/pipermail/maemo-developers/2012-July/028923.html ||  || No || 
|- style=&quot;background-color:yellow&quot;
| bme-rx-51 || Battery ||  ||  ||   || In progress || http://gitorious.org/rx51-bme-replacement http://lkml.org/lkml/2011/12/7/626 http://atrey.karlin.mff.cuni.cz/~pali/projects/maemo/bq2415x.html ||  || Yes || 
|- style=&quot;background-color:#A0E75A;&quot;
| [[Fremantle_closed_packages/MaemoBrowser|browser-neteal]] || Maemo Browser ||  ||  || Yes || Fennec (?) || http://garage.maemo.org/plugins/scmsvn/viewcvs.php/client-server/trunk/neteal/?root=browser || Yes || No || 
|-
| [[Fremantle_closed_packages/bt-firmware|bt-firmware]] || Bluetooth firmware ||  ||  ||  ||  || Closed source, but redistributable: http://build.pub.meego.com/package/files?package=bcm-bt-firmware&amp;project=CE%3AAdaptation%3AN900 ||  || Yes, for Bluetooth and FM-radio receiving || 
|-
| [[Fremantle_closed_packages/calendar|calendar]] || Maemo Calendar -application ||  ||  ||  ||  ||  ||  || No || 
|- style=&quot;background-color:#A0E75A;&quot;
| calendar-backend || Calendar backend (Library) ||  ||  || Yes ||  || http://maemo.gitorious.org/calendar-backend/calendar-backend/trees/PE1 || Yes ||  No (but no reason to remove open version)|| 
|- style=&quot;background-color:#A0E75A;&quot;
| calendar-backend-dev || Calendar ||  ||  || Yes ||  || http://maemo.gitorious.org/calendar-backend/calendar-backend/trees/PE1 || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| calendar-backend-doc || Calendar ||  ||  || Yes ||  || http://maemo.gitorious.org/calendar-backend/calendar-backend/trees/PE1 || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| calendar-home-applet || Calendar home applet||  ||  ||  || Yes || http://talk.maemo.org/showthread.php?t=55018 || Yes || No || 
|-
| [[Fremantle_closed_packages/calendar-ui|calendar-ui]] || Library (UI) for Maemo Calendar ||  ||  ||  ||  ||  ||  || No || 
|-
| [[Fremantle_closed_packages/calendar-ui-widgets-0|calendar-ui-widgets-0]] || (Library) '''ColorPicker''' UI Widget for Calendar and others ||  ||  ||  ||  ||  ||  || No || 
|-
| calendar-ui-widgets-0-dev ||  ||  ||  ||  ||  ||  ||  || No || 
|-
| [[Fremantle_closed_packages/camel-as-provider-0|camel-as-provider-0]] || Camel+ActiveSync  ||  ||  ||  ||  ||  ||  || No || 
|-
| [[Fremantle_closed_packages/camelisync|camelisync]] || Camel+NokiaMessaging ||  ||  ||  ||  || (Closed source, but redistribution allowed) || || No || 
|- style=&quot;background-color:#A0E75A;&quot;
| [[Fremantle_closed_packages/camera-firmware|camera-firmware]] || Camera-Firmware ||  ||  || Yes ||  || http://gitorious.org/omap3camera/camera-firmware/trees/31e2932b9b28e4f1d44b245148af103053db10de || Yes (version-0.25) || Camera needs it || 
|- style=&quot;background-color:#A0E75A;&quot;
| [[Fremantle_closed_packages/camera-ui|camera-ui]] || Maemo Camera ||  ||  ||  || Yes || http://gitorious.org/community-ssu/camera-ui || Yes || No || 
|-
| cellmo-headers ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| cellmo-icpr82-headers ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| [[Fremantle_closed_packages/clockd|clockd]] || Time daemon ||  ||  ||  ||  ||  ||  || Almost (userland time) || 
|-
| clockd-doc ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| clockd-settings-mr0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| clock-ui || Maemo World Clock ||  ||  ||  || Yes || http://gitorious.org/osso-clock || Yes ||  || 
|-
| cmt-firmware-rx51 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| connui-btsettings || Hildon control panel plugin ||  ||  ||  ||  ||  ||  ||  || 
|-
| connui-cellular-settings || Hildon control panel plugin ||  ||  ||  ||  ||  ||  ||  || 
|-
| connui-conndlgs ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| connui-conndlgs-bluetooth ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| connui-conndlgs-cellular ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| connui-conndlgs-internet ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| connui-conndlgs-wlan ||  ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| connui-home-cellular || Hildon home plugin ||  ||  ||  || Yes || http://talk.maemo.org/showthread.php?t=80526 http://gitorious.org/community-ssu/operator-name-cbs-widget || Yes ||  || 
|-
| connui-iapsettings ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| connui-iapsettings-gprs ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| connui-iapsettings-wlan ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| connui-statusbar-bluetooth || Hildon status menu plugin ||  ||  ||  ||  ||  ||  ||  || 
|-
| connui-statusbar-cellular || Hildon status menu plugin ||  ||  ||  ||  ||  ||  ||  || 
|-
| connui-statusbar-internet || Hildon status menu plugin ||  ||  ||  ||  ||  ||  ||  || 
|-
| csd-base || Cellular service ||  ||  ||  || Ofono ||  ||  || Yes || 
|-
| csd-call || Cellular service ||  ||  ||  || Ofono ||  ||  || Yes || 
|-
| csd-gprs || Cellular service ||  ||  ||  || Ofono ||  ||  || Yes || 
|-
| csd-info || Cellular service ||  ||  ||  || Ofono ||  ||  || Yes || 
|-
| csd-sat || Cellular service ||  ||  ||  || Ofono ||  ||  || Yes || 
|-
| csd-sms || Cellular service ||  ||  ||  || Ofono ||  ||  || Yes || 
|-
| csd-ss || Cellular service ||  ||  ||  || Ofono ||  ||  || Yes || 
|- style=&quot;background-color:#A0E75A;&quot;
| docpurge ||  ||  ||  || Yes ||  || http://maemo.gitorious.org/maemo-af/docpurge || Yes ||  || 
|-
|- style=&quot;background-color:#A0E75A;&quot;
| dsp-manager ||  ||  ||  || Yes ||  || http://meego.gitorious.org/maemo-multimedia/dsp-tools/trees/maemo5 || Yes ||  || 
|-
| [[Fremantle_closed_packages/Maemo-installer-utils|dtg-installer]] ||  ||  || Yes ||  ||  ||  ||  || No || 
|-
| eff-content-fonts ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| evolution-data-server-addressbook-backend-sim || Cellular service ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-czech || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-danish || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-dutch || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-english-gb || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-english-us || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-essential-plugins || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-finnish || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-french-ca || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-french-fr || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-german || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-greek || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-italian || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-norwegian || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-polish || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-portuguese-pt || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-russian || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-spanish-es || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-spanish-us || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| ezitext-swedish || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| [[Fremantle_closed_packages/Maemo-installer-utils|facebook-installer]] ||  ||  || Yes ||  ||  ||  ||  || No || 
|-
| facebook-services ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| feedservice ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| feedservice-plugin-amazon ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| feedservice-plugin-ap ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| feedservice-plugin-fb ||  ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| feedservice-plugin-fb-common ||  ||  ||  ||  || Yes || http://gitorious.org/community-ssu/feedservice-plugin-fb-common || Yes ||  || 
|-
| feedservice-utils ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| flasher ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| fmtx-middleware ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| fmtx-middleware-doc ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| [[Fremantle_closed_packages/Maemo-installer-utils|foreca-installer]] ||  ||  || Yes ||  ||  ||  ||  || No || 
|-
| foreca-weather-applet ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| funambol-cpp-api ||  ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| getbootstate ||  ||  ||  ||  || Yes || http://talk.maemo.org/showthread.php?t=80298 ||  ||  || 
|-
| google-search-widget || Hildon home plugin ||  ||  ||  ||  ||  ||  ||  || 
|-
| gprs-provisioning ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| gst-nokia-wm ||  ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| gstreamer0.10-dsp ||  ||  ||  || Yes ||  || http://meego.gitorious.org/maemo-multimedia/gst-dsp/trees/maemo5 || Yes ||  || 
|-
| gstreamer0.10-hantro ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| gstreamer0.10-ipp-nokia ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| gstreamer0.10-nokia-speech ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| gstreamer0.10-wma ||  ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| hald-addon-bme || Battery ||  ||  ||  || Yes || http://gitorious.org/rx51-bme-replacement/hald-addon-bme || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| hildon-application-manager-settings-standard ||  || Yes ||  ||  || Non binary package, it could be free || http://hildon-app-mgr.garage.maemo.org/testrepo/hildon-application-manager-settings-testrepo_5+1_all.deb ||  ||  || 
|-
| hildon-control-panel-personalisation ||  || Yes ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:red;&quot;
| hildon-desktop-applet-settings-mr0 ||  ||  ||  ||  ||  || In file /usr/share/doc/hildon-desktop-applet-settings-mr0/copyright is LGPL license, but package without source code?? ||  ||  || 
|- style=&quot;background-color:red;&quot;
| hildon-desktop-application-shortcuts-mr0 ||  ||  ||  ||  ||  || In file /usr/share/doc/hildon-desktop-application-shortcuts-mr0/copyright is LGPL license, but package without source code?? ||  ||  || 
|-
| hildon-im-common-virtual-settings || Hildon input method ||  ||  ||  ||  ||  ||  ||  || 
|-
| hildon-im-fkb || Hildon input method ||  ||  ||  ||  ||  ||  ||  || 
|-
| hildon-im-keyboard-assistant || Hildon input method ||  ||  ||  ||  ||  ||  ||  || 
|-
| hildon-im-keyboard-assistant-scv || Hildon input method ||  ||  ||  ||  ||  ||  ||  || 
|-
| hildon-im-plugin-base-settings || Hildon input method ||  ||  ||  ||  ||  ||  ||  || 
|-
| hildon-im-virtual-keyboard-layouts || Hildon input method ||  ||  ||  ||  ||  ||  ||  || 
|-
| hildon-input-method-configurator || Hildon input method ||  ||  ||  ||  ||  ||  ||  || 
|-
| hildon-input-method-plugins-western || Hildon input method ||  ||  ||  ||  ||  ||  ||  || 
|-
| hildon-input-method-widgets || Hildon input method ||  ||  ||  ||  ||  ||  ||  || 
|-
| hildon-plugins-notify-sv ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| hildon-startup-progress ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| hildon-status-bar-usb || Hildon status menu plugin ||  ||  ||  ||  ||  ||  ||  || 
|-
| hildon-theme-alpha ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| hildon-theme-beta ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| hildon-theme-devel ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| hildon-welcome-default-logo ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| cherry ||  || Yes ||  ||  ||  ||  ||  ||  || 
|-
| chinese-font ||  ||  ||  ||  || Droid fonts(?) || android.git.kernel.org/platform/frameworks/basedata/fonts ||  ||  || 
|-
| icd2 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| icd2-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| icd2-network-wlan-config ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| icd2-settings-default ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| imageviewer || Maemo Image Viewer ||  ||  ||  ||  ||  ||  ||  || 
|-
| imengines-ezitext || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| immvibe ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| initrd-progs || System utils ||  ||  ||  ||  ||  ||  ||  || 
|-
| iphbd || IP heartbeat daemon ||  ||  ||  ||  ||  ||  ||  || 
|-
| libaccounts-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libaccounts-doc ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libaccounts-glade ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libaccounts0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libas-common-ui-0 || [[Mail_for_Exchange|MfE]] ||  ||  ||  ||  ||  ||  ||  || 
|-
| libas-common-utils-0 || [[Mail_for_Exchange|MfE]] ||  ||  ||  ||  ||  ||  ||  || 
|-
| libas-protocol-0 || [[Mail_for_Exchange|MfE]] ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:red;&quot;
| libas-storage-0 || [[Mail_for_Exchange|MfE]] ||  ||  ||  ||  || In file /usr/share/doc/libas-storage-0/copyright is LGPL and GPL license, but package without source code?? ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libbmeipc0 || Battery ||  ||  || Yes ||  || http://meego.gitorious.org/~pali/meego-device-adaptation/pali-n900_libbme http://gitorious.org/rx51-bme-replacement/libbmeipc ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libbridge2 || TI DSP libraries ||  ||  || Yes ||  || http://dev.omapzoom.org/?p=tidspbridge/userspace-dspbridge.git;a=tree;f=source/mpu_api/src/bridge ||  ||  || 
|-
| libcail-common ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libcail-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libcal-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libcal1 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libcityinfo-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libcityinfo-doc ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libcityinfo0-0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libclockcore-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libclockcore0-0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:red;&quot;
| libcodelockui1 ||  ||  ||  ||  ||  || In file /usr/share/doc/libcodelockui1/copyright is LGPL license, but package without source code? ||  ||  || 
|- style=&quot;background-color:red;&quot;
| libcodelockui1-dev ||  ||  ||  ||  ||  || In file /usr/share/doc/libcodelockui1/copyright is LGPL license, but package without source code? ||  ||  || 
|-
| libconbtui0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libconnui ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libconnui-cellular ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libcscall2 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libcsnet-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libcsnet0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libcumulus0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libdevlock-bin ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libdevlock1 ||  ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libdres0 ||  ||  ||  || Yes ||  || http://meego.gitorious.org/maemo-multimedia/dres/trees/fb5db88146eec8433f78d543ab2dfc8dc203cacd || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libexempi-dev ||  ||  ||  || Yes ||  || http://maemo.gitorious.org/maemo-pkg/exempi || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libexempi3 ||  ||  ||  || Yes ||  || http://maemo.gitorious.org/maemo-pkg/exempi || Yes ||  || 
|-
| libezitext || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| libgles1 || PowerVR graphic driver ||  ||  ||  ||  ||  ||  ||  || 
|-
| libgles1-sgx-img || PowerVR graphic driver ||  ||  ||  ||  ||  ||  ||  || 
|-
| libgles1-sgx-img-dev || PowerVR graphic driver ||  ||  ||  ||  ||  ||  ||  || 
|-
| libgles2 || PowerVR graphic driver ||  ||  ||  ||  ||  ||  ||  || 
|-
| libgles2-sgx-img || PowerVR graphic driver ||  ||  ||  ||  ||  ||  ||  || 
|-
| libgles2-sgx-img-dev || PowerVR graphic driver ||  ||  ||  ||  ||  ||  ||  || 
|-
| libgpx0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libhildon-im-vkbrenderer3 || Hildon input method ||  ||  ||  ||  ||  ||  ||  || 
|-
| libhildon-im-western-plugin-common3 || Hildon input method ||  ||  ||  ||  ||  ||  ||  || 
|-
| libhildon-time-zone-chooser0-0 || Time daemon ||  ||  ||  ||  ||  ||  ||  || 
|-
| libhllc0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libicd-network-dummy ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libicd-network-eap ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libicd-network-gprs ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libicd-network-ipv4 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libicd-network-wlan ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libicd-network-wlan-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libicd-network-wps ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libicd2 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libimengines-wp4 || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| libimengines4 || Word prediction ||  ||  ||  ||  ||  ||  ||  || 
|-
| libimlayouts0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libimmvibe0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libimmvibe0-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libiphb-dev || IP heartbeat library ||  ||  || Yes ||  || http://gitorious.org/dsme/libiphb http://meego.gitorious.org/meego-middleware/libiphb || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libiphb0 || IP heartbeat library ||  ||  || Yes ||  || http://gitorious.org/dsme/libiphb http://meego.gitorious.org/meego-middleware/libiphb || Yes ||  || 
|-
| libipp-nokia ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libisi-glib0 || Cellular service ||  ||  ||  ||  ||  ||  ||  || 
|-
| libisi1 || Cellular service ||  ||  ||  ||  ||  ||  ||  || 
|-
| libi18n-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libi18n-locale-resolver0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libi18n0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libjpeg62 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libjpeg62-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libjpeg62-dbg ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| liblas1 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| liblocation-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| liblocation0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| liblocation0-doc ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| liblomesa0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libmaemosec-certman-applet0 || Certificate Manager ||  ||  || Yes ||  || http://gitorious.org/maemo-5-certificate-manager/maemo-security-certman-applet || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libmaemosec-certman0 || Certificate Manager ||  ||  || Yes ||  || http://gitorious.org/maemo-5-certificate-manager/maemo-security-certman || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libmaemosec0 || Certificate Manager ||  ||  || Yes ||  || http://gitorious.org/maemo-5-certificate-manager/maemo-security-certman || Yes ||  || 
|-
| libmaesync ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libnavigation-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libnavigation0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libnips0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| liboauth0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:red;&quot;
| libomap3cam ||  ||  ||  ||  ||  || In file /usr/share/doc/libomap3cam/copyright is LGPL license, but package without source code? Reported: http://bugs.maemo.org/show_bug.cgi?id=11715#c3||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libomxil-ti-components ||  ||  ||  || Yes ||  || http://gitorious.org/vjaquez-beagleboard/ti-omxil ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libomxil-ti0 ||  ||  ||  || Yes ||  || http://gitorious.org/vjaquez-beagleboard/ti-omxil ||  ||  || 
|-
| libosal0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libosso-abook || Maemo AddressBook ||  ||  ||  ||  ||  ||  ||  || 
|-
| libosso-abook-dev || Maemo AddressBook ||  ||  ||  ||  ||  ||  ||  || 
|-
| libosso-abook-doc || Maemo AddressBook ||  ||  ||  ||  ||  ||  ||  || 
|-
| libossoproductinfo0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libphinfo0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libplayback-1-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libplayback-1-doc ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libplayback-1-0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libppu0 ||  ||  ||  ||  || Yes || http://lists.maemo.org/pipermail/maemo-developers/2012-August/028926.html ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libprofile-dev || Profile Daemon ||  ||  || Yes ||  || http://meego.gitorious.org/meego-middleware/profiled || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libprofile-doc || Profile Daemon ||  ||  || Yes ||  || http://meego.gitorious.org/meego-middleware/profiled ||  Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libprofile0 || Profile Daemon ||  ||  || Yes ||  || http://meego.gitorious.org/meego-middleware/profiled || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libprolog0 ||  ||  ||  || Yes ||  || http://meego.gitorious.org/maemo-multimedia/prolog/trees/6feb212f9b720caa57ddffb935e3f3ac47f4a4e0 || Yes ||  || 
|-
| librtcom-accounts-ui-client-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| librtcom-accounts-ui-client0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| librtcom-accounts-ui-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| librtcom-accounts-widgets-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| librtcom-accounts-widgets0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| librtcom-call-ui0 || Maemo Call ||  ||  ||  ||  ||  ||  ||  || 
|-
| libsharing-plugin-dev || Sharing service ||  ||  ||  ||  ||  ||  ||  || 
|-
| libsharing-plugin-doc || Sharing service ||  ||  ||  ||  ||  ||  ||  || 
|-
| libsharing0 || Sharing service ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libsignon-glib-dev ||  ||  ||  || Yes ||  || http://gitorious.org/accounts-sso/signon-glib ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libsignon-glib0 ||  ||  ||  || Yes ||  || http://gitorious.org/accounts-sso/signon-glib ||  ||  || 
|-
| libsimpb0 || Cellular service ||  ||  ||  ||  ||  ||  ||  || 
|-
| libsim0 || Cellular service ||  ||  ||  ||  ||  ||  ||  || 
|-
| libsms-utils0 || Cellular service ||  ||  ||  ||  ||  ||  ||  || 
|-
| libsms0 || Cellular service ||  ||  ||  ||  ||  ||  ||  || 
|-
| libspeex-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libspeexdsp-dev ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libspeexdsp1 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libspeexdsp1-dbg ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libspeex1 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libspeex1-dbg ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libssoautologin ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libss1 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libsysinfo0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| libtelcommon0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| [[Fremantle_closed_packages/libtime0|libtime-dev]] || Time library ||  ||  ||  ||  ||  ||  || Yes, too many depends it. || 
|-
| [[Fremantle_closed_packages/libtime0|libtime-doc]] || Time library ||  ||  ||  ||  ||  ||  || Yes, too many depends it. || 
|-
| [[Fremantle_closed_packages/libtime0|libtime0]] || Time library ||  ||  ||  ||  ||  ||  || Yes, too many depends it. || 
|-
| libtopos0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libtrace-dev ||  ||  ||  || Yes ||  || http://meego.gitorious.org/maemo-multimedia/trace/trees/386a692cdaee8da088e5a362ffd5a43111889ecf || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libtrace0 ||  ||  ||  || Yes ||  || http://meego.gitorious.org/maemo-multimedia/trace/trees/386a692cdaee8da088e5a362ffd5a43111889ecf || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| libwl1251 ||  ||  ||  ||  || Yes || http://lists.maemo.org/pipermail/maemo-developers/2012-August/028926.html ||  ||  || 
|-
| locale-resolver-data ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| location-control ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| location-daemon ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| location-home-applet || Hildon home plugin ||  ||  ||  ||  ||  ||  ||  || 
|-
| location-proxy ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| location-settings-default ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| location-status ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| location-test-gui ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| location-ui ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| maemo-applet-fmtx || Hildon control panel plugin ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| maemo-applet-profiles || Hildon control panel plugin ||  ||  ||  || Yes || http://maemo.org/packages/view/profilesx/ || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| maemo-applet-tvout || Hildon control panel plugin ||  ||  ||  || Yes || http://gitorious.org/community-ssu/maemo-tvout-control || Yes ||  || 
|-
| maemo-input-sounds ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| [[Fremantle_closed_packages/Maemo-installer-utils|maemo-installer-utils]] ||  ||  ||  ||  ||  ||  ||  || No || 
|- style=&quot;background-color:red;&quot;
| maemointernal-keyring ||  || Yes ||  ||  ||  || In file /usr/share/doc/maemointernal-keyring/copyright is GPL license, but package without source code? || ||  || 
|-
| maemo-ringtones-mr0 ||  || Yes ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| maemosec-certman-applet || Hildon control panel plugin ||  ||  || Yes ||  || http://gitorious.org/maemo-5-certificate-manager/maemo-security-certman-applet || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| maemosec-certman-common-ca || Certificate Manager ||  ||  || Yes ||  || http://gitorious.org/maemo-5-certificate-manager/maemo-security-certman || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| maemosec-certman-tools || Certificate Manager ||  ||  || Yes ||  || http://gitorious.org/maemo-5-certificate-manager/maemo-security-certman || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| maemo-statusmenu-fmtx || Hildon status menu plugin ||  ||  ||  || Yes || http://gitorious.org/community-ssu/maemo-statusmenu-fmtx || Yes ||  || 
|-
| maemo-statusmenu-headset || Hildon status menu plugin ||  ||  ||  ||  ||  ||  ||  || 
|-
| maemo-statusmenu-volume || Hildon status menu plugin ||  ||  ||  ||  ||  ||  ||  || 
|-
| maesync-backend ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| maesync-controller ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| mafw-iradio-source-bookmarks-default ||  || Yes ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| mce || Mode Control Entity ||  ||  || Yes ||  || http://meego.gitorious.org/meego-middleware/mce ||  ||  || 
|-
| mediaplayer || Maemo MediaPlayer ||  ||  ||  ||  ||  ||  ||  || 
|-
| mediaplayerhomeapplet || Hildon home plugin ||  ||  ||  ||  ||  ||  ||  || 
|-
| mediaplayer-restore || ? ||  ||  ||  ||  ||  ||  ||  || 
|-
| modest-as-plugin-0 ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| modest-home-applet || Hildon home plugin ||  ||  ||  ||  ||  ||  ||  || 
|-
| modest-nokiamessaging-plugin ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| modest-providers-data ||  || Yes ||  ||  ||  ||  ||  ||  || 
|-
| mp-fremantle-generic-pr || Maemo 5 full metapackage || Yes ||  ||  ||  ||  ||  ||  || 
|-
| nokia-apps ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| nokia-binaries ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| nokia-maps-core || Nokia Maps ||  ||  ||  ||  ||  ||  ||  || 
|-
| nokia-maps-maplets || Nokia Maps ||  ||  ||  ||  ||  ||  ||  || 
|-
| nokiamaps-navigation-provider || Nokia Maps ||  ||  ||  ||  ||  ||  ||  || 
|-
| nokia-maps-ui || Nokia Maps ||  ||  ||  ||  ||  ||  ||  || 
|-
| nokiamessaging ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| nolo || Bootloader ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| ohm-plugin-prolog || OHM ||  ||  || Yes ||  || http://meego.gitorious.org/maemo-multimedia/prolog/trees/6feb212f9b720caa57ddffb935e3f3ac47f4a4e0/ohm-plugin || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| ohm-plugin-resolver || OHM ||  ||  || Yes ||  || http://meego.gitorious.org/maemo-multimedia/dres/trees/fb5db88146eec8433f78d543ab2dfc8dc203cacd || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| ohm-plugins-misc || OHM ||  ||  || Yes ||  || http://meego.gitorious.org/maemo-multimedia/ohm-plugins-misc/trees/9fd14014de73668b68c0a0f89dde1ef914869a77 || Yes ||  || 
|-
| omap3camd ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| omap3430-dsp-baseimage-ti || TI DSP libraries ||  ||  ||  ||  ||  ||  ||  || 
|-
| omap3430-dsp-libraries-ti || TI DSP libraries ||  ||  ||  ||  ||  ||  ||  || 
|-
| opengles-sgx-img-common || PowerVR graphic driver ||  ||  ||  ||  ||  ||  ||  || 
|-
| opengles-sgx-img-common-dev || PowerVR graphic driver ||  ||  ||  ||  ||  ||  ||  || 
|-
| operator-wizard-settings ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-abook-home-applet || Hildon home plugin ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-accounts-plugin-skype || Skype ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-addressbook || Maemo AddressBook ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-applet-device || Hildon control panel plugin ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-applet-devicelock || Hildon control panel plugin ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| osso-applet-display || Hildon control panel plugin ||  ||  ||  || Yes || http://gitorious.org/community-ssu/osso-applet-display || Yes ||  || 
|-
| osso-applet-languageregional || Hildon control panel plugin ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-applet-memory || Hildon control panel plugin ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| osso-applet-notificationlight || Hildon control panel plugin ||  ||  ||  || Yes || http://gitorious.org/community-ssu/osso-applet-notificationlight || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| osso-applet-textinput || Hildon control panel plugin ||  ||  ||  || Yes || http://maemo.org/packages/view/ukeyboard/ || Yes ||  || 
|- style=&quot;background-color:red;&quot;
| osso-backup || Maemo Backup ||  ||  ||  ||  || In file /usr/share/doc/osso-backup/copyright is GPL license, but package without source code? Reported: http://bugs.maemo.org/show_bug.cgi?id=12415 ||  ||  || 
|-
| [[Fremantle_closed_packages/MaemoBrowser|osso-bookmark-engine]] || Maemo Browser ||  ||  ||  || Fennec(?) ||  ||  || No || 
|-
| [[Fremantle_closed_packages/MaemoBrowser|osso-bookmark-engine-dev]] || Maemo Browser ||  ||  ||  || Fennec(?) ||  ||  || No || 
|-
| [[Fremantle_closed_packages/MaemoBrowser|osso-browser]] || Maemo Browser ||  ||  ||  ||Fennec(?)  ||  ||  || No || 
|- style=&quot;background-color:#A0E75A;&quot;
| osso-calculator || Maemo Calculator ||  ||  ||  || Yes || http://gitorious.org/community-ssu/osso-calculator || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| osso-calculator-ui || Maemo Calculator ||  ||  ||  || Yes || http://gitorious.org/community-ssu/osso-calculator || Yes ||  || 
|-
| osso-filemanager || Maemo FileManager ||  ||  ||  || Filebox (?) ||  ||  ||  || 
|-
| osso-filemanager-ui || Maemo FileManager ||  ||  ||  || Filebox (?) ||  ||  ||  || 
|-
| osso-graphics-game-chess || Maemo Chess ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-graphics-game-lmarbles || Maemo Marbles ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-graphics-game-mahjong || Maemo Mahjong ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-icons-default ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-icons-devel ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-maesync-plugin ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-maesync-ui ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-mission-control ||  ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| osso-notes || Maemo Notes ||  ||  ||  || Leafpad || http://maemo.org/packages/view/leafpad/ || Yes || || || 
|-
| osso-product-info ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-rss-feed-reader-list ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-sketch || Maemo Sketch ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-sounds-game-chess || Maemo Chess ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-sounds-game-mahjong || Maemo Mahjong ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-sounds-rtc ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-sounds-ui ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-startup-wizard ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-systemui || SystemUI ||  ||  ||  ||  ||  ||  ||  || 
|-
| [[Fremantle_closed_packages/osso-systemui-actingdead|osso-systemui-actingdead]] || SystemUI ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-systemui-alarm || SystemUI ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-systemui-conf || SystemUI ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-systemui-devlock || SystemUI ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-systemui-emergency || SystemUI ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-systemui-modechange || SystemUI ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-systemui-powerkeymenu || SystemUI ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-systemui-splashscreen || SystemUI ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-systemui-tklock || SystemUI ||  ||  ||  ||  ||  ||  ||  || 
|-
| osso-wlan-security ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| ota-settings ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| ovi-promotion-widget ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| pasr ||  ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| phonet-at || Phonet ||  ||  || Yes ||  || http://meego.gitorious.org/meego-cellular/matd ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| phonet-utils || Phonet ||  ||  || Yes ||  || http://meego.gitorious.org/meego-cellular/phonet-utils ||  ||  || 
|-
| policy-application-detector || Policy ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| [[Fremantle_closed_packages/policy-settings-rx51|policy-settings-rx51]] || Policy ||  ||  ||  || Yes || http://gitorious.org/community-ssu/policy-settings-rx51 || Yes || Yes (for alsaped) || 
|- style=&quot;background-color:#A0E75A;&quot;
| profiled || Profile Daemon ||  ||  || Yes ||  || http://meego.gitorious.org/meego-middleware/profiled || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| profile-data || Profile Daemon ||  ||  || Yes ||  || http://meego.gitorious.org/meego-middleware/profiled || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| profile-data-dev || Profile Daemon ||  ||  || Yes ||  || http://meego.gitorious.org/meego-middleware/profiled || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| prolog-extensions ||  ||  ||  || Yes ||  || http://meego.gitorious.org/maemo-multimedia/prolog/trees/6feb212f9b720caa57ddffb935e3f3ac47f4a4e0/extensions || Yes ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| pulseaudio-module-nokia-common ||  ||  ||  || Yes ||  || http://meego.gitorious.org/maemo-multimedia/pulseaudio-modules-meego ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| pulseaudio-module-nokia-music ||  ||  ||  || Yes ||  || http://meego.gitorious.org/maemo-multimedia/pulseaudio-modules-meego ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| pulseaudio-module-nokia-record ||  ||  ||  || Yes ||  || http://meego.gitorious.org/maemo-multimedia/pulseaudio-modules-meego ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| pulseaudio-module-nokia-voice ||  ||  ||  || Yes ||  || http://meego.gitorious.org/maemo-multimedia/pulseaudio-modules-meego ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| pulseaudio-policy-enforcement ||  ||  ||  || Yes ||  || http://meego.gitorious.org/maemo-multimedia/pulseaudio-policy-enforcement/trees/398b87a9d6a10c4fab03e15d83bcd8dba4bc49d7 || Yes ||  || 
|-
| rtcom-abook-skype-plugin || Skype ||  ||  ||  ||  ||  ||  ||  || 
|-
| rtcom-accounts-plugin-facebook || Maemo Messaging ||  ||  ||  ||  ||  ||  ||  || 
|-
| rtcom-accounts-plugin-gtalk || Maemo Messaging ||  ||  ||  ||  ||  ||  ||  || 
|-
| rtcom-accounts-plugin-jabber || Maemo Messaging ||  ||  ||  ||  ||  ||  ||  || 
|-
| rtcom-accounts-plugin-nokiachat || Maemo Messaging ||  ||  ||  ||  ||  ||  ||  || 
|-
| rtcom-accounts-plugin-sip || Maemo Messaging ||  ||  ||  ||  ||  ||  ||  || 
|-
| rtcom-accounts-ui || Maemo Messaging ||  ||  ||  ||  ||  ||  ||  || 
|-
| rtcom-accounts-voip-support || Maemo Call ||  ||  ||  ||  ||  ||  ||  || 
|-
| rtcom-call-ui || Maemo Call ||  ||  ||  ||  ||  ||  ||  || 
|-
| rtcom-messaging-ui || Maemo Messaging ||  ||  ||  ||  ||  ||  ||  || 
|-
| rtcom-notification-ui ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| rtcom-presence-ui ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| rtcom-skype-emoticons-theme || Skype ||  ||  ||  ||  ||  ||  ||  || 
|-
| sdk-fiasco-gen ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| sharing-account-manager || Sharing service ||  ||  ||  ||  ||  ||  ||  || 
|-
| sharing-dialog || Sharing service ||  ||  ||  ||  ||  ||  ||  || 
|-
| sharing-dialog-dev || Sharing service ||  ||  ||  ||  ||  ||  ||  || 
|-
| sharing-dialog-doc || Sharing service ||  ||  ||  ||  ||  ||  ||  || 
|-
| sharing-manager || Sharing service ||  ||  ||  ||  ||  ||  ||  || 
|-
| sharing-rtcom || Sharing service ||  ||  ||  ||  ||  ||  ||  || 
|-
| sharing-service-facebook || Sharing service ||  ||  ||  ||  ||  ||  ||  || 
|-
| sharing-service-flickr || Sharing service ||  ||  ||  ||  ||  ||  ||  || 
|-
| sharing-service-ovi || Sharing service ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| signond-dev ||  ||  ||  || Yes ||  || http://gitorious.org/accounts-sso/signon ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| signond0 ||  ||  ||  || Yes ||  || http://gitorious.org/accounts-sso/signon ||  ||  || 
|-
| signond-utils ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| skyhost-bin || Skype ||  ||  ||  ||  ||  ||  ||  || 
|-
| skyhost-vengine || Skype ||  ||  ||  ||  ||  ||  ||  || 
|-
| sms-manager || Cellular service ||  ||  ||  ||  ||  ||  ||  || 
|-
| softupd ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| speex-doc ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| ssc-daemon || Cellular service ||  ||  ||  ||  ||  ||  ||  || 
|-
| status-area-applet-activesync-0 || Hildon status menu plugin ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| status-area-applet-battery || Hildon status menu plugin ||  ||  ||  || Yes || http://gitorious.org/community-ssu/status-area-applet-battery ||  ||  || 
|-
| statusbar-alarm || Hildon status menu plugin ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| status-menu-applet-profiles || Hildon status menu plugin ||  ||  ||  || Yes || http://gitorious.org/community-ssu/status-menu-applet-profiles ||  ||  || 
|-
| sysinfo-common ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| sysinfod ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| sysinfo-tool ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| [[Fremantle_closed_packages/MaemoBrowser|tablet-bookmark-manager]] || Maemo Browser ||  ||  ||  || Fennec(?) ||  ||  || No || 
|-
| [[Fremantle_closed_packages/MaemoBrowser|tablet-browser-bookmarks-mr0]] || Maemo Browser ||  ||  ||  ||Fennec(?) ||  ||  || No || 
|-
| [[Fremantle_closed_packages/MaemoBrowser|tablet-browser-controls]] || Maemo Browser ||  ||  ||  || Fennec(?) ||  ||  || No || 
|- style=&quot;background-color:#A0E75A;&quot;
| [[Fremantle_closed_packages/MaemoBrowser|tablet-browser-daemon]] || Maemo Browser ||  ||  || Yes || Fennec(?) || http://garage.maemo.org/plugins/scmsvn/viewcvs.php/client-server/trunk/server/?root=browser || Yes || No || 
|-
| [[Fremantle_closed_packages/MaemoBrowser|tablet-browser-default-plugin]] || Maemo Browser ||  ||  ||  || Fennec(?) ||  ||  || No || 
|-
| [[Fremantle_closed_packages/MaemoBrowser|tablet-browser-dialogs]] || Maemo Browser ||  ||  ||  || Fennec(?) ||  ||  || No || 
|-
| [[Fremantle_closed_packages/MaemoBrowser|tablet-browser-mediaplayer-plugin]] || Maemo Browser ||  ||  ||  || Fennec(?) ||  ||  || No || 
|-
| [[Fremantle_closed_packages/MaemoBrowser|tablet-browser-ui]] || Maemo Browser ||  ||  ||  || Fennec(?) ||  ||  || No || 
|-
| [[Fremantle_closed_packages/MaemoBrowser|tablet-browser-view]] || Maemo Browser ||  ||  ||  || Fennec(?) ||  ||  || No || 
|-
| [[Fremantle_closed_packages/MaemoBrowser|tablet-browser-view-dev]] || Maemo Browser ||  ||  ||  || Fennec(?) ||  ||  || No || 
|-
| [[Fremantle_closed_packages/MaemoBrowser|tablet-browser-view-test]] || Maemo Browser ||  ||  ||  || Fennec(?) ||  ||  || No || 
|-
| [[Fremantle_closed_packages/MaemoBrowser|tablet-browser-widgets]] || Maemo Browser ||  ||  ||  || Fennec(?) ||  ||  || No || 
|-
|- style=&quot;background-color:#A0E75A;&quot;
| telepathy-ring || Cellular service ||  ||  || Yes (for Ofono) ||  || http://meego.gitorious.org/meego-cellular/telepathy-ring ||  ||  || 
|-
| telepathy-spirit || Skype ||  ||  ||  ||  ||  ||  ||  || 
|-
| testserver ||  ||  ||  ||  ||  ||  ||  ||  || 
|-
| theme-default-settings-mr0 ||  || Yes ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| tone-generator ||  ||  ||  || Yes ||  || http://meego.gitorious.org/maemo-multimedia/tone-generator/commit/4a2d6c04666ebc07cc4e51f00dc8c1ccce4288f7 || Yes ||  || 
|-
| tutorial-home-applet || Hildon home plugin ||  ||  ||  ||  ||  ||  ||  || 
|-
| ui-fonts ||  ||  ||  ||  || Droid fonts(?) || android.git.kernel.org/platform/frameworks/basedata/fonts ||  ||  || 
|-
| wappushd || Cellular service ||  ||  ||  ||  ||  ||  ||  || 
|-
| wappushd-dev || Cellular service ||  ||  ||  ||  ||  ||  ||  || 
|- style=&quot;background-color:#A0E75A;&quot;
| wl1251-cal ||  ||  ||  ||  || Yes || http://lists.maemo.org/pipermail/maemo-developers/2012-August/028926.html ||  ||  || 
|-
| [[Fremantle_closed_packages/wl1251-firmware|wl1251-firmware]] || Wifi firmware||  ||  ||  ||  || Closed source, but redistributable: http://build.pub.meego.com/package/files?package=ti-wl1251-firmware&amp;project=CE%3AAdaptation%3AN900 ||  || Yes, for wlan || 
|-
| xml2wbxml ||  ||  ||  ||  ||  ||  ||  ||  || 
|}</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/Adobe-flashplayer</title>
    <id>5126</id>
    <revision>
      <id>47123</id>
      <timestamp>2012-04-04T19:22:20Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>[[Fremantle closed packages/Adobe-flashplayer]] moved to [[Fremantle closed packages/Alsa-policy-enforcement]] over redirect: revert</comment>
      <text xml:space="preserve">#REDIRECT [[Fremantle closed packages/Alsa-policy-enforcement]]</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/Adobe-flashplayer-package</title>
    <id>5114</id>
    <revision>
      <id>47128</id>
      <timestamp>2012-04-04T19:34:44Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <minor/>
      <comment>[[Adobe-flashplayer]] moved to [[Fremantle closed packages/Adobe-flashplayer-package]]</comment>
      <text xml:space="preserve">Fremantle PR-1.3.

Closed source package '''adobe-flashplayer'''.

Metapackage mp-fremantle-generic-pr is not listed


default installed version
 apt-cache policy adobe-flashplayer
 Installed: 3.0.0.87+0m5


what is depending on it
 apt-cache showpkg adobe-flashplayer 
 Reverse Depends: 
 tutorial-home-applet,adobe-flashplayer 3.0.0.30+0m5
 
 Non-default applications:
 tweakflashver,adobe-flashplayer 3.0.0.87+0m5



provides files
 dpkg -L adobe-flashplayer
 /usr/lib/browser/plugins/libflashplayer.so
 /usr/share/doc/adobe-flashplayer/changelog.gz


----
If removed:
Flash functionality is then missing. Not critical for running N900.</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/Alsa-policy-enforcement</title>
    <id>5127</id>
    <revision>
      <id>47125</id>
      <timestamp>2012-04-04T19:28:13Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>[[Fremantle closed packages/Alsa-policy-enforcement]] moved to [[Adobe-flashplayer]] over redirect: revert</comment>
      <text xml:space="preserve">#REDIRECT [[Adobe-flashplayer]]</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/Alsa-policy-enforcement-package</title>
    <id>5115</id>
    <revision>
      <id>47138</id>
      <timestamp>2012-04-05T18:46:08Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>point to the policy-settings-rx51</comment>
      <text xml:space="preserve">Fremantle PR-1.3.

Closed source package '''alsa-policy-enforcement'''.
 alsaped - Alsa Policy Enforcement Daemon: for policy enforcement 
 Copyright (C) 2008 Nokia Corporation. All rights reserved.
 
 --/usr/share/doc/alsa-policy-enforcement/copyright


Metapackage mp-fremantle-generic-pr is not listed

default installed version
 apt-cache policy alsa-policy-enforcement
 Installed: 0.26+0m5

Nothing is depending on it.


Provides files
 dpkg -L alsa-policy-enforcement
 /usr/sbin/alsaped
 /etc/event.replace.d/alsaped

--

/etc/event.replace.d/alsaped is starting script which starts binary /usr/sbin/alsaped

ps -Af | grep alsaped
 741 root      4712 S    /usr/sbin/alsaped -p 4 -f /usr/share/policy/etc/current/alsaped.conf


And this /usr/share/policy/etc/current/alsaped.conf comes from
[http://wiki.maemo.org/Fremantle_closed_packages/policy-settings-rx51 policy-settings-rx51]


Some discussion about alsaped:
http://talk.maemo.org/showthread.php?p=1188455
----
If removed (do not remove (yet)):
*Phone will still start (not critical package)
*'''Audio need adjusted via alsamixer or amixer'''</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/Applet-datetime</title>
    <id>5117</id>
    <revision>
      <id>47115</id>
      <timestamp>2012-04-04T19:10:48Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <minor/>
      <comment>[[Applet-datetime]] moved to [[Fremantle closed packages/Applet-datetime]]</comment>
      <text xml:space="preserve">Closed source package '''applet-datetime'''

default installed version
 apt-cache policy applet-datetime
  Installed: 0.5.16-1+0m5

Only mp-fremantle-generic-pr depends on it.

It provides files:
 /usr/lib/hildon-control-panel/libcpdatetime.so
 /usr/share/applications/hildon-control-panel/cpdatetime.desktop


This is application (applet) for changing time with GUI.

There are two possible way to start it:
 ControlPanel -&gt; &quot;Date and time&quot;
 Clock -&gt; Tap the time


It has settings for
 12h/24h clock
 Update automatically
 Timezone
 Date
 Time

'Timezone'-button starts Timezonechooser (not in this package, maybe on another closed source package libhildon-time-zone-chooser0-0 )

What is started when date/time is clicked?

----
If removed
 *It is not critical, but handy tool
 *Missing feature to easily change these settings.
   commandline /usr/sbin/tzconfig can change timezone</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/As-config-applet-0</title>
    <id>5118</id>
    <revision>
      <id>47117</id>
      <timestamp>2012-04-04T19:11:00Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <minor/>
      <comment>[[As-config-applet-0]] moved to [[Fremantle closed packages/As-config-applet-0]]</comment>
      <text xml:space="preserve">Fremantle PR-1.3.

Closed source package '''as-config-applet-0'''.

default installed version
 as-config-applet-0:
 Installed: 0.0.4-6+0m5

Nothing is depending on it.

Description: 
 *Mail for Exchange configuration application
 *as-config-applet is the Maemo control panel applet, for configuring ActiveSync functionality.

Provides files
 dpkg -L as-config-applet-0
 /usr/lib/hildon-control-panel/libasconfigapplet.so.0.0.0
 /usr/share/applications/hildon-control-panel/libasconfigapplet.desktop


----
If removed
 *On Control Panel &quot;Mail for Exchange&quot; will disappear
 *Not critical</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/Bluetooth-sysinfo</title>
    <id>5119</id>
    <revision>
      <id>47119</id>
      <timestamp>2012-04-04T19:11:10Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <minor/>
      <comment>[[Bluetooth-sysinfo]] moved to [[Fremantle closed packages/Bluetooth-sysinfo]]</comment>
      <text xml:space="preserve">Fremantle PR-1.3.

Closed source package '''bluetooth-sysinfo''' 

installed version:
 apt-cache policy bluetooth-sysinfo
 Installed: 0.4+0m5

Contains one script:
 ./etc/event.replace.d/bluetooth-sysinfo

Description: 
 This application reads bluetooth address from certificate and pushes it to bluetooth driver.

'Reverse engineered' from description:
 /usr/bin/sysinfo-tool --list
 -&gt; /certs/npc/esn/bt_id
 /usr/bin/sysinfo-tool --get /certs/npc/esn/bt_id
 -&gt; 2cd2e70c2a62
 
  cat /sys/devices/platform/hci_h4p/bdaddr
 -&gt; 2c:d2:e7:0c:2a:62
 
 (Query bluetooth address, add colons and push to driver)


What is the purpose of this package, after removing (and booting) there are still address in /sys/devices/platform/hci_h4p/bdaddr ???

----
If removed: 
 *Not critical (device will boot without it)
 *still: cat /sys/devices/platform/hci_h4p/bdaddr = address
 *At least bluetooth filetransfer is still working</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/Maemo-installer-utils</title>
    <id>5116</id>
    <revision>
      <id>47113</id>
      <timestamp>2012-04-04T19:10:17Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <minor/>
      <comment>[[Maemo-installer-utils]] moved to [[Fremantle closed packages/Maemo-installer-utils]]</comment>
      <text xml:space="preserve">Fremantle PR-1.3.

Closed source package '''maemo-installer-utils'''. And closed packages '''amazon-installer ap-installer''' (AP News) '''dtg-installer''' (Documents To Go) '''facebook-installer foreca-installer''' 


default installed version:
 maemo-installer-utils:  Installed: 1.0-2+0m5
 amazon-installer: Installed: 1.0.1.1+0m5
 ap-installer:  Installed: 1.0.1.1+0m5
 dtg-installer:  Installed: 1.0-4.2+0m5
 facebook-installer:  Installed: 1.0-4.1.1+0m5
 foreca-installer:  Installed: 1.0.1.1+0m5


maemo-installer-utils is helper, which contains one binary file:
 ./usr/bin/maemoinstaller

XXX-installer contains files:
 XXX.desktop
 XXX.png
 XXX.install

And then clicking menu-item will execute (e.g.)
 /usr/bin/maemoinstaller amazoninstaller Amazon /usr/share/maemo-installer-utils/amazon.install

Which might add new repository and tries to install some package.

No other packages are depending on them.
----

Side note: uninstalling maemo-installer-utils, doesn't uninstall other packages, but renders them broken
use:
 apt-get remove maemo-installer-utils amazon-installer ap-installer dtg-installer  facebook-installer foreca-installer 

----

If removed 
*Menu-shortcuts for installing amazon, ap, dtg, facebook, foreca are removed</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/MaemoBrowser</title>
    <id>5146</id>
    <revision>
      <id>47214</id>
      <timestamp>2012-04-10T20:53:09Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>initial</comment>
      <text xml:space="preserve">PR-1.3

This page describes several packages which forms ''Maemo Browser''.

Some of them are now open sourced, and then there are some old (Maemo4) source code.
This is list of packages
 browser-neteal 
 osso-browser 
 tablet-bookmark-manager 
 tablet-browser-controls
 tablet-browser-daemon
 tablet-browser-default-plugin
 tablet-browser-dialogs
 tablet-browser-mediaplayer-plugin
 tablet-browser-ui
 tablet-browser-view
 tablet-browser-widgets 
 osso-bookmark-engine
 tablet-browser-bookmarks-mr0 

Open packages:
 browser-neteal:
 http://garage.maemo.org/plugins/scmsvn/viewcvs.php/client-server/trunk/neteal/?root=browser
 
 tablet-browser-daemon:
 http://garage.maemo.org/plugins/scmsvn/viewcvs.php/client-server/trunk/server/?root=browser
 (this provides: /usr/sbin/browserd)

Discussion about opening more of them:
http://talk.maemo.org/showthread.php?t=75590


-----
It is possible to remove MaemoBrowser entirely and use some of alternative web browser (for browsing, they will yet integrate as good as default one).

How to remove MaemoBrowser:

 #Step1: remove easy packages
 apt-get remove --purge browser-neteal osso-browser \
 tablet-bookmark-manager \
 tablet-browser-controls \
 tablet-browser-daemon \
 tablet-browser-default-plugin \
 tablet-browser-dialogs \
 tablet-browser-mediaplayer-plugin \
 tablet-browser-ui \
 tablet-browser-view \
 tablet-browser-widgets 
 
 rm /etc/X11/Xsession.post/30tablet-browser-daemon

 Step2: install hildon-home which is compiled without osso-bookmarks
 wget http://cc.oulu.fi/~rantalai/maemo/freemantle/hildon-home_0.3.70-1+0m5_armel.deb
 dpkg -i hildon-home_0.3.70-1+0m5_armel.deb

With this hildon-home 
 *bookmarks on desktop doesn't have images.
 *Adding new elements to the desktop doesn't have 'new bookmark'
(but if you have MaemoBrowser removed, bookmarks on desktop will not work any way)

 Step3: remove end of the MaemoBrowser
 apt-get remove --purge osso-bookmark-engine \
 tablet-browser-bookmarks-mr0

(Step2 and Step3 are optionals. Step1 and Step3 can be merged if Step2 has done already)


----
If removed
 *Not critical (if you really don't have /etc/X11/Xsession.post/tablet-browser-daemon trying to start browserd and reboot when fails)
 *There will be no anymore application 'web'
 *Bookmarks on desktop won't start
 *...
 *...</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/as-daemon-0</title>
    <id>5135</id>
    <revision>
      <id>47179</id>
      <timestamp>2012-04-08T18:59:17Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>initial</comment>
      <text xml:space="preserve">PR-1.3

Closed source package '''as-daemon-0'''

Default installed version:
 as-daemon-0:
 Installed: 0.0.4-24+0m5

Description: 
 Mail for Exchange. Daemon application.
 A daemon to synchronize e-mail, calendar and contacts with MS Exchange using ActiveSync protocol

Provides files:
 /etc/init.d/as-daemon-0
 /etc/osso-cud-scripts/activesync-clean.sh
 /etc/event.d/as-daemon
 /etc/osso-rfs-scripts/activesync-rfs.sh
 /etc/osso-backup/pre-backup.d/activesync-prebackup.sh
 /etc/osso-backup/restore.d/always/as-daemon_restart.sh
 /etc/osso-backup/restore.d/always/activesync-restore.sh
 /etc/osso-backup/post-backup.d/activesync-postbackup.sh
 /etc/osso-backup/applications/activesync.conf
 /usr/bin/activesync-backup-app
 /usr/sbin/as-daemon
 /usr/share/dbus-1/services/com.nokia.asdbus.service
 /usr/share/as-daemon/do-activesync-prebackup.sh
 /usr/share/applications/hildon/as-daemon.desktop
 +icons

----
If removed
 *Not critical (device will start without it)
 *No ActiveSync syncing anymore.</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/as-utils</title>
    <id>5136</id>
    <revision>
      <id>47180</id>
      <timestamp>2012-04-08T19:26:32Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>initial</comment>
      <text xml:space="preserve">PR-1.3

Closed source package '''as-utils'''

Default installed version:
 as-utils
 Installed: 0.0.4-5+0m5

Description: 
 Mail for Exchange utilities

Provides files:
 /usr/bin/ascontactsui
 /usr/share/dbus-1/services/com.nokia.AsDbusObject.service


No package is depending on it.
----
If removed
 *Not critical (device will start without it)
 *Something relating ActiveSync not working anymore (not tested with device which have ActiveSync working)</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/bt-firmware</title>
    <id>5134</id>
    <revision>
      <id>47198</id>
      <timestamp>2012-04-09T18:01:31Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>address and license of file from Meego</comment>
      <text xml:space="preserve">Pr-1.3

Closed source package '''bt-firmware'''

As name suggest, this is bluetooth firmware. BCM2048 is the name of the Bluetooth chip from Broadcom. Chip is combo chip and it contains '''bluetooth''', and ''' FM-radio receiver''' (FM-radio transmitter is in another chip: Silicon Labs Si4713 chipset).


Default installed version:
 bt-firmware:  Installed: 0.21-rc3+0m5

Provides files:
 /lib/firmware/bcmfw.bin

No package depends on it.

----
If removed (not suggested)
 *Not critical: device will still start
 *Can't turn bluetooth ON (as expected).
 *'About'-box will not show bluetooth address (cat /sys/devices/platform/hci_h4p/bdaddr is still showing it).
 *FM-radio receiving stop working (error message: 'cannot activate chip')
 (*FM-radio transmitting works as it is not in this chip)

Alternatives:
 MeeGo has closed source but redistributable (only for non-commercial usage) package 'bcm-bt-firmware' with description
 Firmware image for the BCM bluetooth chip. Firmware image is needed to boot up bluetooth chip that is found in Nokia Internet Tablets.
 Version: 0.21rc3
 
 It has file BCM2048B0_002.001.011.0190.0192.c.bin which has same md5sum than bcmfw 
 37db4bcf79fa7a85f1331c6df19115b9  /lib/firmware/bcmfw.bi


License of BCM2048B0_002.001.011.0190.0192.c.bin
 Copyright (c) Nokia Corporation 2010
 All Rights Reserved.
 This material, including documentation and any related computer programs, is protected by copyright controlled by Nokia Corporation. All rights are reserved. Modifying, adapting and/or translating, any or all of this material requires the prior written consent of Nokia. Distribution for commercial purposes not allowed without prior written approval from Nokia.</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/calendar</title>
    <id>5141</id>
    <revision>
      <id>47199</id>
      <timestamp>2012-04-09T18:23:22Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>initial</comment>
      <text xml:space="preserve">PR-1.3 

Closed source package '''calendar'''

Default installed version 
 calendar:
 Installed: 0.8-3+0m5

Nothing depends on it.

Provides files:
 /usr/bin/Calendar
 /usr/bin/Calendar.launch
 /usr/bin/smartcal
 /usr/share/calendar/theme/gtkrc
 /usr/share/applications/hildon/calendar.desktop
 /usr/share/gconf/schemas/calendar-rfs-schema.xml
 /usr/share/mime/packages/calendar.xml
 /usr/share/dbus-1/services/com.nokia.calendar.service
 /etc/osso-cud-scripts/calendar-clean.sh
 /etc/calendar/calendardb
 /etc/osso-rfs-scripts/calendar-rfs.sh
 /etc/osso-backup/restore.d/always/calendar-restore.sh
 /etc/osso-backup/pre-backup.d/calendar-pre-backup.sh
 /etc/osso-backup/applications/calendar.conf
 /etc/skel/.calendar/calendardb
 

/usr/bin/Calendar is started on boot. 

/usr/bin/smartcal is segfaulting if run manually, maybe it is called by /usr/bin/Calendar.launch

----
If removed
 *Not critical (device will still start. Doesn't even whine Calendar is missing)
 *No anymore application 'Calendar' 
 *(Alarms will still work, they are related clock, not calendar)</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/calendar-ui</title>
    <id>5142</id>
    <revision>
      <id>47200</id>
      <timestamp>2012-04-09T18:35:04Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>initial</comment>
      <text xml:space="preserve">PR-1.3

Closed source package '''calendar-ui'''

Description:
 A UI library for Calendar.

Default installed version 
 calendar-ui:
 Installed: 0.8-3+0m5


Provides files:
~ $ dpkg -L calendar-ui 
 /usr/lib/libcalendarui.so


Packages depending on this:
  calendar

----
If removed
 *Not critical (device will still start)
 *Applications using this library will be uninstalled. i.e calendar.</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/calendar-ui-widgets-0</title>
    <id>5143</id>
    <revision>
      <id>47201</id>
      <timestamp>2012-04-09T18:47:44Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>initial</comment>
      <text xml:space="preserve">PR-1.3

Closed source package '''calendar-ui-widgets-0'''

Description: 
 A ColorPicker UI Widget for Calendar and others

Default installed version:
 calendar-ui-widgets-0:
 Installed: 0.8-3+0m5

Packages depending on this:
 modest
 osso-notes
 calendar, calendar-home-applet and calendar-ui

(Calendar-ui is library used by calendar)

Provides files:
 /usr/lib/libcalendarui-widgets.so.0

-----
If removed
 *Not critical (device will still start)
 *Applications using this library will be uninstalled. i.e modest, osso-notes and calendar.</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/camel-as-provider-0</title>
    <id>5144</id>
    <revision>
      <id>47210</id>
      <timestamp>2012-04-10T15:59:23Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>added filelist</comment>
      <text xml:space="preserve">PR-1.3

Closed source package '''camel-as-provider-0'''.

Description: Mail for Exchange mail account. Camel provider.
 Binary package for Camel provider Mail for Exchange mail account.
 
 as-camel-provider is a plugin for Camel provides ActiveSync account.

Default installed version
 camel-as-provider-0:
 Installed: 0.0.4-12+0m5

Packages depending on it:
 as-config-applet-0

Provides files:
 /usr/lib/camel-lite-1.2/camel-providers/libcamelas.so
 /usr/lib/camel-lite-1.2/camel-providers/libcamelas.urls

(libcamel refers https://live.gnome.org/Evolution/Camel which is base of tinymail http://tinymail.org/)
----
If removed
 *Not critical (device will still start)
 *(not tested in real life): Missing some/all functionality of Exchange?</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/camelisync</title>
    <id>5145</id>
    <revision>
      <id>47209</id>
      <timestamp>2012-04-10T15:55:45Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>filelist and license added</comment>
      <text xml:space="preserve">PR-1.3

Closed source package '''camelisync'''.

Description: 
 libcamel provider for NokiaMessaging
 Interface for applications that are based on tinymail

Default installed version
 camelisync:
 Installed: 1.6.8+0m5

Packages depending on it:
 modest-nokiamessaging-plugin

Provides files:
 /usr/lib/camel-lite-1.2/camel-providers/libcamelisync.urls
 /usr/lib/camel-lite-1.2/camel-providers/libcamelisync.so

License:
 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
 
 * Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.
 * Neither the name of the Nokia Corporation nor the names of its
   contributors may be used to endorse or promote products derived from
   this software without specific prior written permission.

(libcamel refers https://live.gnome.org/Evolution/Camel which is base of tinymail http://tinymail.org/)
----
If removed
 *Not critical (device will still start)
 *(not tested in real life): Missing some/all functionality of NokiaMessaging?</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/camera-firmware</title>
    <id>5147</id>
    <revision>
      <id>47220</id>
      <timestamp>2012-04-11T09:02:16Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>no depends on this</comment>
      <text xml:space="preserve">PR-1.3

'''camera-firmware''' is under GPL2. Source package is not in repositories, and 
&quot;Reinstallation of camera-firmware is not possible, it cannot be downloaded.&quot;

Default installed version:
 0.0.25+0m5 0

Provides files (with m5dsums)
 5934f036ea96f44a11350f2c1af6c9a9  /lib/firmware/et8ek8-0002.bin
 f7a551eeb634688b3e944287f1b004c1  /lib/firmware/mt9p012-2802-10.bin
 417018dc47d07335ff1ddb2ca785cf32  /lib/firmware/smia-sensor-01-022b-00.bin
 417018dc47d07335ff1ddb2ca785cf32  /lib/firmware/smia-sensor-01-022b-04.bin
 ed4ae45b7220700d14f5646343e1705b  /lib/firmware/smia-sensor-0c-208a-03.bin

Nothing depends on this package.

Sources (and precompiled bins) can be found on: http://gitorious.org/omap3camera/camera-firmware Currently newest is version-0.26, and it is not working (if just dropped to the device).  Changelogs for 0.26 is: &quot;* Recompile everything due to changes in smiaregs structure. &quot;

Version 0.26 gives boottime error to the dmesg:
 [  705.277618] et8ek8 3-003e: Invalid value on entry 0 0x0
 [  705.277648] et8ek8 3-003e: invalid register list et8ek8-0002.bin, no POWERON mode found



On git version-0.25 is:
 git checkout 31e2932b9b28e4f1d44b245148af103053db10de
and there are very same bin files than on device as default (same hashsums)


----
If removed
 *Not critical (device will still start)
 *No camera. (&quot;operation failed&quot;)</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/camera-ui</title>
    <id>5148</id>
    <revision>
      <id>47221</id>
      <timestamp>2012-04-11T09:18:11Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>initial</comment>
      <text xml:space="preserve">PR-1.3

Closed source package '''camera-ui'''.

Default installed version:
 camera-ui:
 Installed: 1.1.29.1+0m5

Provides files:
 /usr/bin/camera-ui
 /usr/bin/camera-ui.launch
 /etc/X11/Xsession.post/17camera-ui
 /usr/share/camera-ui/dummy-preview.jpg
 /usr/share/applications/hildon/camera-ui.desktop
 /etc/others-menu/extra_applications/0000_camera-ui.desktop
 /usr/share/dbus-1/services/com.nokia.camera-ui.service

Nothing depends on this package.


----
If removed
 *Not critical (device will still start. NOTE: use --purge or remove /etc/X11/Xsession.post/17camera-ui manually)
 *No 'Camera' -application.

Checking that camera works without camera-ui:
 apt-get install gstreamer-tools
 gst-launch -vvv v4l2src !  autovideosink


Open alternatives:
 http://gitorious.org/community-ssu/camera-ui
 *Uses some closed libraries: liblocation-dev libnavigation-dev sharing-dialog-dev)
 *Uses CSSU-updated libraries: libgdigicam-dev (&gt;= 0.3.29.2) libgdigicam-gst-camerabin-dev (&gt;= 0.3.29.2) 
 *Seems it needs CSSU?</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/clockd</title>
    <id>5149</id>
    <revision>
      <id>47224</id>
      <timestamp>2012-04-11T13:21:09Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>documentation, version, link to libtime</comment>
      <text xml:space="preserve">PR-1.3

Closed source package '''clockd'''

Description: Clock daemon
 This package contains clock daemon which
 manages system wide time and date state

Relates: [http://wiki.maemo.org/Fremantle_closed_packages/libtime0 libtime]

This handles system wide time:
  -status bar
  -lock screen
  -'clock' -application
  -desktop menu

Default installed version:
  Installed: 0.0.41+0m5

Packages depending on this:
  calendar-backend
  (CSSU's osso-clock)

Provides files:
 /usr/bin/rclockd
 /usr/bin/clockd
 /etc/init.d/clockd
 /etc/osso-rfs-scripts/clockd-rfs.sh
 /etc/event.d/clock-daemon
 /etc/dbus-1/system.d/clockd.conf
 /etc/osso-backup/restore.d/always/clockd_restart.sh
 /etc/osso-backup/applications/clockd.conf


Documentation:
 http://maemo.org/api_refs/5.0/alpha/clockd/index.html
----
If removed
 *Not critical
 *'''Functionality missing'''
 *calendar-backend is removed, and there are several applications depending on it.</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/libtime0</title>
    <id>5151</id>
    <revision>
      <id>47227</id>
      <timestamp>2012-04-11T13:36:41Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>initial</comment>
      <text xml:space="preserve">PR-1.3

Closed source package '''libtime0'''

Description: API for [http://wiki.maemo.org/Fremantle_closed_packages/clockd clockd] service
 This package contains C API for using clockd services.

Default installed version:
  Installed: 0.0.41+0m5

Packages depending on this:
  advanced-clock-plugin
  alarmd
  as-config-applet-0
  as-daemon-0
  calendar
  calendar-backend
  calendar-home-applet
  calendar-ui
  clock-ui
  gpsrecorder 
  libalarm2
  libhildon-time-zone-chooser0-0
  libmaesync
  maesync-backend
  modest
  modest-home-applet
  modest-nokiamessaging-plugin
  opera-mobile
  osso-maesync-ui
  osso-systemui
  osso-systemui-alarm
  osso-systemui-tklock
  scout 
  status-area-applet-activesync-0
  statusbar-alarm

Provides files:
 /usr/lib/libtime.so.0

Documentation:
 http://maemo.org/api_refs/5.0/alpha/clockd/index.html
----
If removed (do not remove!)
 *'''Device will not start!'''
 *libalarm2 (which is open source) is removed, and there are several applications depending on it. (Lots of '''functionality missing''')</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/osso-systemui-actingdead</title>
    <id>5153</id>
    <revision>
      <id>47237</id>
      <timestamp>2012-04-11T20:10:27Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>initial</comment>
      <text xml:space="preserve">PR-1.3 

Closed source package '''osso-systemui-actingdead'''

Description: Acting dead UI
 This package contains the Acting dead UI.

Default installed version
 osso-systemui-actingdead:
 Installed: 0.1.8.9+0m5


Provides files:
 /usr/lib/systemui/libsystemuiplugin_actingdead.so

No package depends on it. (osso-systemui is listed as it's Reverse Depends, but it is not removed with this)

'''Who know what this package is?''' Initial version of this package is from Tue, 28 Dec 2004.


Some entries from changelog:
 * Fixes: NB#136541 Actingdead ui waste resources when playing charging sound
 * improved charging animation logic for battery power saving
 * Fixes: NB#128535 Battery does not get full in acting dead
 * Fixes: NB#131253 Display is on when charging with pc usb cable in acting dead

Some strings inside libsystemuiplugin_actingdead.so
 type='signal',interface='com.nokia.mce.signal',member='display_status_ind'
 maemo.charger.connection_status
 disconnected
 connected
 maemo.charger.type
 host 100 mA
 host 500 mA
 wall charger
 show_current_battery_level
 osso-powerup-shutdown
 /usr/share/sounds/ui-charging_started.wav
 /system/systemui/acting_dead/window_priority

----
If removed
 *Nothing happens!?
 (*Device will still dim the screen)
 (*Device will still play charging sound)</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/osso-systemui-splashscreen</title>
    <id>5152</id>
    <revision>
      <id>47236</id>
      <timestamp>2012-04-11T20:03:08Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>typo</comment>
      <text xml:space="preserve">PR-1.3 

Closed source package '''osso-systemui-splashscreen'''

Description: Splashscreen
 This package contains the splashscreen.

Provides files:
 /etc/event.replace.d/osso-systemui-splashscreen
 /usr/bin/splashscreen-util
 /usr/lib/systemui/libsystemuiplugin_splashscreen.so

Seems this package relates boot images or boot videos, but even this is uninstalled boot images/videos still works.

Default installed version
 osso-systemui-splashscreen:
 Installed: 0.2.3.0+0m5

No package depends on it. (even osso-systemui is listed as it's Reverse Depends)

----
If removed
 *Nothing happens!?</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/policy-settings-rx51</title>
    <id>5131</id>
    <revision>
      <id>49869</id>
      <timestamp>2012-09-24T12:53:16Z</timestamp>
      <contributor>
        <username>pali</username>
        <id>2764</id>
      </contributor>
      <comment>Info about policy.plc</comment>
      <text xml:space="preserve">Fremantle PR-1.3

Closed source package '''policy-settings-rx51'''

 Description: Policy RX51 configuration.

Version installed as default:
 0.4.10.7+0m5

Packages depending on it
 ohm-plugins-misc
 alsa-policy-enforcement (this needs 'policy-settings')

Contains files:
 ./usr/share/policy/rules/rx51/policy.plc
 ./usr/share/policy/rules/rx51/policy.dresc
 ./usr/share/policy/etc/rx51/alsaped.conf
 ./usr/share/policy/etc/rx51/syspart.conf
 ./usr/share/policy/etc/rx51/ohm/ohmd.ini
 ./usr/share/policy/etc/rx51/ohm/plugins.d
 ./usr/share/policy/etc/rx51/ohm/plugins.d/gconf.ini
 ./usr/share/policy/etc/rx51/pulse/xpolicy.conf
 ./usr/share/policy/etc/rx51/gconf/warranty.schemas

-----
If removed
 *Will uninstall package [http://wiki.maemo.org/Fremantle_closed_packages/Alsa-policy-enforcement-package alsa-policy-enforcement]

-----
Only two files are binary:
 ./usr/share/policy/rules/rx51/policy.plc
 ./usr/share/policy/rules/rx51/policy.dresc

First SWI prolog state file which contains policy rules, second compiled DRES rule file.

SWI prolog state files can be decompiled with shell scripts: [http://gitorious.org/community-ssu/policy-settings-rx51/blobs/master/scripts/plc-decompile plc-decompile] [http://gitorious.org/community-ssu/policy-settings-rx51/blobs/master/scripts/plc-predicates plc-predicates] (needs same version of SWI prolog interpreter as written in plc header)

File policy.plc was decompiled without problems back to prolog source files. CSSU now has modified version of policy.plc which enable headset jack button immediately when headset is connected. Original code enabled button only if there was active call. CSSU source repository si here:
 http://gitorious.org/community-ssu/policy-settings-rx51

File policy.dresc is still in binary form. There was no need to modify it. Some information about policy, prolog and dres written by Nokia developer is in TMO post: http://talk.maemo.org/showpost.php?p=1242804&amp;postcount=44 There is info how to decompile policy.dresc...</text>
    </revision>
  </page>
  <page>
    <title>Fremantle closed packages/wl1251-firmware</title>
    <id>5140</id>
    <revision>
      <id>47196</id>
      <timestamp>2012-04-09T17:50:01Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>initial</comment>
      <text xml:space="preserve">PR-1.3

Closed source package '''wl1251-firmware'''

Default installed version:
 wl1251-firmware
 Installed: 0.4+0m5


Provides files:
 /lib/firmware/wl1251-fw.bin
 /lib/firmware/wl1251-nvs.bin

 * wl1251-fw.bin   (firmware)
 * wl1251-nvs.bin  (calibration data)

Nothing depends on this package.

----
If removed (do not remove):
 *WLAN not working anymore (as expected)

Alternatives:
 Meego's N900 adaptation has closed source but redistibutable (used for TI's chip) firmware files on: https://build.pub.meego.com/package/files?package=ti-wl1251-firmware&amp;project=CE%3AAdaptation%3AN900
 
 They are very same than what are in device as default. Md5sums:
  3a68787e5b1cb75e2a8c160ad79297ab  /lib/firmware/wl1251-fw.bin
  6d570e73a9cb1f686b2ad5cdbbdf6b83  /lib/firmware/wl1251-nvs.bin

Relevant section from License [https://build.pub.meego.com/package/view_file?file=license.txt&amp;package=ti-wl1251-firmware&amp;project=CE%3AAdaptation%3AN900&amp;rev=3a5bcff15024a50be09a4ed04eafab64]

 1.Object Code License.  TI hereby grants to you a limited, non-exclusive license to reproduce and use the Licensed Materials provided to you in object code format and to distribute an unlimited number of object or executable copies of such Licensed Materials, provided that such object or executable copies are used solely and exclusively on devices manufactured by or for TI.</text>
    </revision>
  </page>
  <page>
    <title>Frequently asked questions</title>
    <id>3139</id>
    <revision>
      <id>24175</id>
      <timestamp>2009-12-06T13:15:42Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[User FAQ]]</comment>
      <text xml:space="preserve">#REDIRECT [[User FAQ]]</text>
    </revision>
  </page>
  <page>
    <title>GSOC 2009/</title>
    <id>1801</id>
    <revision>
      <id>12827</id>
      <timestamp>2009-04-26T15:30:14Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <comment>[[GSOC 2009/]] moved to [[GSoC 2009/Projects]]</comment>
      <text xml:space="preserve">#REDIRECT [[GSoC 2009/Projects]]</text>
    </revision>
  </page>
  <page>
    <title>GSOC 2009/Picasa plugin for Canola</title>
    <id>1802</id>
    <revision>
      <id>12830</id>
      <timestamp>2009-04-26T15:32:19Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <comment>[[GSOC 2009/Picasa plugin for Canola]] moved to [[GSoC 2009/Projects/Picasa plugin for Canola]]</comment>
      <text xml:space="preserve">#REDIRECT [[GSoC 2009/Projects/Picasa plugin for Canola]]</text>
    </revision>
  </page>
  <page>
    <title>GSOC 2009/Twitter Plugin And Twitpic Support For Canola</title>
    <id>1803</id>
    <revision>
      <id>12834</id>
      <timestamp>2009-04-26T15:35:39Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <comment>[[GSOC 2009/Twitter Plugin And Twitpic Support For Canola]] moved to [[GSoC 2009/Projects/Twitter Plugin And Twitpic Support For Canola]]</comment>
      <text xml:space="preserve">#REDIRECT [[GSoC 2009/Projects/Twitter Plugin And Twitpic Support For Canola]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009</title>
    <id>1566</id>
    <revision>
      <id>29210</id>
      <timestamp>2010-02-12T09:55:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Google Summer of Code]]</comment>
      <text xml:space="preserve">&lt;imagemap&gt;Image:2009_summer_of_code_logo.png|255px
rect 0 0 255 106 [http://code.google.com/soc/]
desc none&lt;/imagemap&gt;

[http://code.google.com/soc/ Google Summer of Code (GSoC)] is a program that offers student developers stipends to write code for various open source projects. Google will be working with several open source, free software, and technology-related groups to identify and fund several projects over a three month period. The maemo community has submitted a [[GSoC_2009/Proposal|proposal]] to include maemo-related projects in the GSoc.


&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:GSoC_2009_projects.png|249px
rect 0 0 254 115 [[GSoC 2009/Projects]]
desc none&lt;/imagemap&gt;&lt;/div&gt;
&lt;div style=&quot;height: 10em&quot;&gt;&amp;nbsp;&lt;/div&gt;

&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:GSoC_2009_project_ideas.png|249px
rect 0 0 249 107 [[GSoC 2009/Project ideas]]
desc none&lt;/imagemap&gt;&lt;/div&gt;
&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:GSoc_2009_students.png|249px
rect 0 0 249 107 [[GSoC 2009/Students]]
desc none&lt;/imagemap&gt;&lt;/div&gt;
&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:GSoC_2009_mentors.png|249px
rect 0 0 249 106 [[GSoC 2009/Mentors]]
desc none&lt;/imagemap&gt;&lt;/div&gt;
&lt;div style=&quot;height: 10em&quot;&gt;&amp;nbsp;&lt;/div&gt;

[[GSoC 2010| Google Summer of Code 2010]]


[[Category:Community]]
[[Category:Development]]
[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/</title>
    <id>1573</id>
    <revision>
      <id>10809</id>
      <timestamp>2009-02-11T19:41:23Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>Add redirect for incorrect URL</comment>
      <text xml:space="preserve">#redirect [[GSoC_2009]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Barcode scanner</title>
    <id>1737</id>
    <revision>
      <id>29211</id>
      <timestamp>2010-02-12T09:56:30Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Google Summer of Code]]</comment>
      <text xml:space="preserve">'''Barcode Project'''

The way I see it, there are 3 areas in which work could be done, or all 3 or combinations thereof could be combined. These are:

# Barcode decoding 
## writing new algorithms to decode barcodes for which there is existing code ''[I do not see much point in this being done for GSoC unless the student is particularly interested in the algorithmic side of things.]''
## improving the speed of existing code ''[Useful for 2D codes, but 1D code (e.g. batoo) is pretty fast already]''
## writing wrapper/glue code to present a unified API to the user ''[wrap the existing codes so that they all present the same interface]''
## supporting new barcode types ''[Either do 1.1 for the new code, or find and add some existing code to 1.3]''
## adding quick “identifier” functions, which can be used to select which barcode type is being scanned (this is useful if the main decoders are somewhat slow and therefore you don’t want or have the time to run each one back-to-back on the same image data)
# Obtaining information about a decoded barcode. I’m thinking mainly of 1D codes here, and therefore using the EAN/UPC/ISBN data. 2D codes also have lots of uses and someone might want to try to obtain data for these after they are decoded.
## Parsing e.g. Amazon (though I envisage having parsers for lots of different providers) to obtain
### Description (and other general info about the product)
### Price
### Images/thumbnails
### Track listing (in the case of CDs)
### Reviews
## Once we know what the product is, there is the option to search other providers to see where said product is cheapest, which provider is the closest (i.e. using integration with on-device location services), etc.
# Presenting and storing the above information so it is useful for the user. I have started doing some work on this last bit (see the simon_wip branch of maemo-barcode), but my code is very basic at the moment, and certainly needs lots more work if someone wants to work on this part (or even wants to replace it). I envisage something along these lines:
## GUI interface to scan barcodes (i.e. image/live-view window to see what you’re pointing at)
## Display of information about a scanned barcode (i.e. barcode/isbn + online look-up info if a web connection is available, or ask if the user wants to connect to look-up the product). If the barcode is 2D and contains a URL then spawn the browser, if it just contains text then display the text, etc.
## Database functionality in which to store multiple arbitrary tables containing the above information about each product (and probably a thumbnail too). E.g:
### CDs, DVDs, Books, etc. I own
### CDs, DVDs, Books, I’d like to get (i.e. a wishlist)
### Things I’ve loaned to someone (saying when and who)
### Shopping list
### Etc. (multiple tables, so the choice is up to the user)

'''Background information about barcodes'''

Wikipedia has a good overview of barcodes in general: http://en.wikipedia.org/wiki/Barcode

1D barcodes are generally UPC in the US (http://en.wikipedia.org/wiki/Universal_Product_Code) and this is a subset of the EAN 13 which is used in Europe (http://en.wikipedia.org/wiki/European_Article_Number).

For 2D barcodes, the most popular ones are:
* QR code: http://en.wikipedia.org/wiki/QR_Code
* Data matrix: http://en.wikipedia.org/wiki/Datamatrix
* PDF417 is another 2D code that might be worth looking at (a GPL decoder exists and this symbology is used). It is a stacked 1D code, making it 2D: http://en.wikipedia.org/wiki/PDF417

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Mentors</title>
    <id>1572</id>
    <revision>
      <id>29212</id>
      <timestamp>2010-02-12T09:56:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Google Summer of Code]]</comment>
      <text xml:space="preserve">Mentors are a crucial part for a good Summer of Code organization, without a good number of motivated mentors we are unable to do a good Summer of Code for the Maemo community.

==How to become a mentor==

In order to become a mentor, you must have done some contributions for the open source community in general, you can be a Maemo community person, or you can be from other community's that produce software that Maemo use (eg. Gnome, BlueZ, Telepathy, Mozilla, etc.). People that develop project to Maemo (eg. Maemo mapper, Canola, liqbase, etc.) are encouraged to become mentors, proposing also ideas for their project.

To become a mentor you only need to show your interest in participating in GSoC, send a mail to vdv100 at gmail dot com, with your name, maemo.org nickname (if you have one), your areas of expertise and if you participated in the past in GSoC as a mentor or student send informations about your participation too. 

If you have some project ideas just add it to the [[GSoC 2009/Project ideas|ideas page]].

==Mentor expectations==

* Mentors are expected to spend some time assisting the assigned students, the mentors should respond to the students questions as quickly as possible;
* Mentors are expected to be patient with their students, keep the students on the project schedule and motivating the student when difficulties arise;
* Mentors are expected to know, at any time, the current status of the projects of their assigned students.

==Benefits of GSoC for Mentors==

* Chance to help the Maemo Community and the projects around Maemo;
* Get some student labor in your &quot;pet&quot; projects;
* Receive some goodies (Book, t-shirt);
* Receive some money;

==Mentor resources==

* [http://code.google.com/p/google-summer-of-code/wiki/AdviceforMentors Advice for GSoC Mentors]
* [http://www.gnome.org/~federico/docs/summer-of-code-mentoring-howto/ Gnome GSoC mentoring howTo]

== Mentors ==

&lt;font color=&quot;#FF0000&quot;&gt;Note&lt;/font&gt;: Before add your name to this list, make sure you read [[GSoC_2009/Mentors#How_to_become_a_mentor|this]].

*Aniello Del Sorbo ([[User:anidel|anidel]]) - Xournal/Canola reader(RSS,Mail,...) plugin
*Csaba Kertész ([[User:kecsap|kecsap]]) - GTK+/OpenCV
*Eduardo Lima ([[User:etrunko|etrunko]]) 
*Eduard Bartosh ([[User:ed_|ed_]]) - Mnemosyne for Maemo
*Florian Boor ([[User:florian|florian]]) - GTK+/GPE/PIM/UI/Phones/Kernel
*Gary Birkett ([[User:lcuk|lcuk]]) - liqbase
*Gustavo Lima Chaves ([[User:glima|glima]]) - EFL/Canola
*Ilias Biris ([[User:ibiris|ibiris]]) - C/C++/Calendar
*Ivan Frade ([[User:ifrade|ifrade]]) - Tracker
*Leandro Sales ([[User:leandro|leandro]]) - BRisa-UPnP/Location Based Systems/Maemo PC-Connectivity/GStreamer
*Luis Felipe Moraes ([[User:lfelipe|lfelipe]]) - EFL/Canola 
*Luis Gustavo Lira ([[User:lglira|lglira]])- Python/Bluetooth/USB/Networking
*Mike Jipping ([[User:frethop|frethop]]) - Networking/Mobile phone operating systems/Distributed computing
*Mohammad Anwari ([[User:mdamt|mdamt]]) - i18n/New input methods 
*Rafael Antognolli ([[User:antognolli|antognolli]]) - EFL/Canola
*Thomas Perl ([[User:thp|thp]]) - Python/GTK+/SDL/UI design/Usability/UX
*Valério Valério ([[User:vdvsx|vdvsx]]) - Python/EFL/Bluetooth/GTK+/UI
*Zeeshan Ali ([[User:zeenix|zeenix]]) - GUPnP/Rygel

==Backup Mentors==

* Andrew Flegg ([[User:jaffa|Jaffa]])
* Kees Jongenburger ([[User:keesj|keesj]])
* Quim Gil ([[User:qgil|qgil]])
* Ryan Abel ([[User:generalantilles|GeneralAntilles]])
* Simon Pickering ([[User:lardman|lardman]])
* Tim Samoff ([[User:timsamoff|timsamoff]])

==Mentor FAQs==

If you have any questions regarding the Maemo organization, you can ask those questions in the [[community mailing lists]], the questions will be copied to this page in order to help other possible mentors with the same questions.

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Project ideas</title>
    <id>1567</id>
    <revision>
      <id>29213</id>
      <timestamp>2010-02-12T09:56:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Google Summer of Code]]</comment>
      <text xml:space="preserve">&lt;b&gt;Maemo&lt;/b&gt; provides a framework for developing applications for mobile devices, as well as porting existing applications in the Linux world. Look at the projects available at [http://garage.maemo.org garage.maemo.org] to get an idea of what already exists, in order to come up with your brand new ideas. They can be new functionality added to a consolidated application, a first prototype for promising new applications exploring new functionality, or a small but killer application bringing the unexpected. We recommend you to propose small challenges that can be completed successfully instead of big plans impossible to conclude in 3 months. It's useful to develop a cool new module to be used by other applications or setting a first stone in a project to attract new attention. 

Add your project ideas to the table below.

If you are an accepted mentor and want to mentor one of the possible projects, add your name to the table with your maemo.org nickname (eg. Valério Valério (vdvsx)).

&lt;font color=&quot;#FF0000&quot;&gt;Note&lt;/font&gt;: Everybody can add ideas to the list, there's no need to be a mentor or a student. Don't try to guess if your idea will be implemented in Fremantle or not, just add it to the list. Maemo SW will help in order to avoid duplicated work.

==Ideas List==

&lt;font color=&quot;#FF0000&quot;&gt;Note&lt;/font&gt;: This list isn't exclusive, if you are a student and have an idea that isn't listed here, don't hesitate to apply with your own idea, but it's probably a good idea to ask in the Maemo community opinions about your idea.

Other possible projects/ideas can be grabbed from the [[Community_wish-list|Maemo community wish-list]] and you can also take a look at the [http://maemo.org/development/documentation/apis/maemo_5/maemo5_alpha_apireferences/ open API's that Maemo provide].

All the ideas below are possible GSoC projects, some of them need more investigation work than others that are already in a final stages, but all of them start at the same level for us. The students must do some investigation work before proposing a project; we are here to help, but it isn't acceptable to just copy and paste the descriptions below to the student's applications.


{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Final proposal
| style=&quot;background:Orange&quot; | Study of alternatives needed 
| style=&quot;background:Tomato&quot; | Draft proposal
|}

{| class=&quot;wikitable&quot;
|- style=&quot;background-color: #eef&quot;
! Title !! Abstract/Description !! Skills !! Difficulty (Easy/Medium/Hard) !! Reporter !! Possible Mentor(s) !! Comments
|-style=&quot;background:LightGreen&quot;
| [[GSoC_2009/Barcode_scanner|''Barcode scanner'']] || ''Use the camera in the ITT devices to scan barcodes of products, in order to compare prices/features, read product reviews,etc. See [http://compare-everywhere.com/ compare everywhere] and [https://garage.maemo.org/projects/maemo-barcode/ maemo barcode]. Possible ideas - [http://www.delicious-monster.com/ Delicious Library],[http://www.getlibra.com/ lira],[http://www.amazon.com/gp/ays/index.html Amazon API's]. lardman has added some thoughts/ideas here: [http://wiki.maemo.org/GSoC_2009/Barcode_scanner Barcode_scanner_thoughts]'' || ''C/C++ or Python'' || ''Medium'' || ''vdvsx'' || ''florian,lglira'' ||
|-style=&quot;background:LightGreen&quot;
| ''Improve Xournal'' || ''Port Xournal to Fremantle and improve the GUI to take advantage of the upcoming Fremantle features, while keeping backward compatibility with Maemo OSes. See [http://maemo.org/downloads/product/OS2008/xournal]'' || ''C/GTK+/QT''  || ''Medium'' || ''anidel'' || ''florian'', ''anidel'' || Any way to add handwriting recognition? --[[User:timsamoff|timsamoff]] 13:54, 19 March 2009 (UTC)
|-style=&quot;background:LightGreen&quot;
| ''New plugin for Canola'' || ''Implement a new plugin for Canola, possibly for another web service such as Picasa or Blip.FM. There are lots of possibilities here.'' || ''Python/EFL'' || ''Easy/Medium'' || lfelipe || lfelipe, glima, antognolli || Other ideas that have been suggested: Jamendo, Magnatune... (keep suggesting)
|-style=&quot;background:LightGreen&quot;
| ''Bittorrent plugin for Canola'' || ''Implement a bittorrent plugin for Canola, that can use the RSS from sites such as http://legaltorrents.com'' || ''Python/EFL'' || ''Medium'' || lfelipe || lfelipe, antognolli || 
|-style=&quot;background:LightGreen&quot;
| ''New plugin for Canola'' || ''Implement a new plugin for Canola: local mail / news reader. Mail / news (RSS) can be downloaded locally by existent software. The Canola plug-in serves just as a reader, so that you don't need to leave it to read / interact with them.'' || ''Python/EFL'' || ''Medium'' || ''anidel'' || ''anidel''||
|-style=&quot;background:LightGreen&quot;
| ''Text optical recognition'' || ''Implement a recognition system which recognizes text snapped with the camera. The system then can be integrated into another application, such as when you want to contribute to the openstreetmap, you just fire up this application and start tracing the street, then snap the street name with the camera, and the street name will be recorded in that application and connected to the street data. Another use case would be to integrate this system with Hildon Input Method and you can send the text snapped into translate.google.com to have your own personal translator'' || ''C/Gtk+/Qt'' || ''Medium'' || mdamt || mdamt, lglira ||
|-style=&quot;background:LightGreen&quot;
| ''Maemo build system on SuSE open build system'' || ''Establish a fairly complete environment for building maemo packages on SuSE's build servers'' || ''System administration'' || ''Medium'' || Jeremiah ||  || 
|-style=&quot;background:LightGreen&quot;
| ''Enhance the libical/libkcal (KDEPIMPI)'' || ''Merge the vobject/vcc changes to the libical upstream version because KCal has a different branch with the vcc and vobject files which are part of the vcal parser. These changes should be merged to the libical upstream. Also various fixes can be done in the libical/libkcal because they are a bit buggy. :)'' || ''iCalendar/libical/libkcal/C/C++'' || ''Medium/Hard'' || ibiris || ibiris || 
|-style=&quot;background:LightGreen&quot;
| ''Enhance the OpenCV's maemo port'' || ''Needs to update to the latest upstream svn version, extensive testing on the tablet and fix the maemo issues, other upstream bugs effects the work with the tablet and send the patches upstream'' || ''OpenCV/C++'' || ''Medium/Hard'' || kecsap || kecsap || 
|-style=&quot;background:LightGreen&quot;
| ''Improve the location based travellerapplet'' || ''Traveller applet helps for travellers to open location sensitive services in the browser. It needs to add new services, optimize the current xml structure and other actions'' || ''Maemo/C/HTTP'' || ''Medium'' || kecsap || kecsap || 
|-style=&quot;background:LightGreen&quot;
| ''Mainlining N800/N810 kernel'' || ''Get drivers missing from diablo Linux kernel to the mainline (Linus's 2.6.30+) kernel release. The primary goal is to get n800/n810 booting with wifi ([http://wireless.kernel.org/en/users/Drivers/3 stlc45xx driver]) and power management support using a kernel from linus's tree. Fully functioning bluetooth and audio (porting current driver to ASoC) is secondary goal. Supporting dsp gateway is out of scope for this project. Before applying to project, previous experience on working with kernel drivers and kernel community should be demonstrated.'' || ''Kernel/C'' || ''Hard'' || Suihkulokki || ''florian'' ||  
|-style=&quot;background:LightGreen&quot;
| ''SocialApp based on OpenSocial'' || ''OpenSocial provides a common API for social websites. The idea is to build a client on top of that, which provides features to provide and collect social information to/from multiple websites. The work on this project will be mostly around UI. See [http://code.google.com/apis/opensocial/]'' || ''Python'' || ''Medium'' || danielwilms || ''vdvsx'' || 
|-style=&quot;background:LightGreen&quot;
| ''YouTube plugin for Rygel'' || ''Enable the user to easily browse and play her favorite videos on her UPnP control point/media player (think PS3) and also to be able to search and upload videos.'' || ''C/Vala'' || ''Medium'' || zeenix || zeenix ||
|-style=&quot;background:LightGreen&quot;
| ''Flickr plugin for Rygel'' || ''Enable the user to easily browse and play her (or her friends') pictures on Flickr using her UPnP control point/media player (think PS3) and also to be able to search and upload pictures to Flickr.'' || ''C/Vala'' || ''Medium'' || zeenix || zeenix ||
|-style=&quot;background:LightGreen&quot;
| ''(G)UPnP backend for GVFS'' || ''This will allow a generic access to all applications (not only media players) to contents on UPnP/DLNA Media Servers without them having to write any code. Many people (e.g Kilikali and Canonal2 authors) have already asked me if such a thing already exist. '' || ''C'' || ''Medium/Hard'' || zeenix || zeenix ||
|-style=&quot;background:LightGreen&quot;
| ''A threadless Webserver API for BRisa'' || ''Nowadays BRisa project uses CherryPy for delivery web content, but CherryPy is considered to use very threads that may be harmful for resource limited devices. In addition there is no decent webserver API focusing on embedded devices. The idea is to implement a light webserver framework focusing on embedded platforms that avoid high use of threads and memory.'' || ''C/C++ or Python'' || ''Medium/Hard'' || leandro || leandro ||
|-style=&quot;background:LightGreen&quot;
| ''UPnP Media Renderer for BRisa'' || ''BRisa project provides a decent UPnP framework to be used in resource limited devices. On top of this framework, we provide two applications example: the media server and media renderer. Current our focus is on the media server, but we need work to improve the media renderer. For example, current media renderer does not handle correct the rendering of many video and audio formats. We are using GStreamer as a backend.'' || ''C/C++/Python'' || ''Medium'' || leandro || leandro ||
|-style=&quot;background:LightGreen&quot;
| ''UPnP home automation devices for BRisa'' || ''BRisa project provides UPnP framework to be used in resource limited devices. On top of this framework, we want to implement a control point to control all the home automation UPnP devices, such binary lights, printers, security cameras, temperature sensors and generic switchers.'' || ''Python'' || ''Medium/Hard'' || leandro || leandro ||
|-style=&quot;background:LightGreen&quot;
| ''Videoconference environment based on BRisa UPnP'' || ''The idea is to implement a m-learning environment using BRisa and Telepathy to make the student receive on s/he device the classes. The system may also be able to allow the students interact with the professor by asking questions and so forth. When the student starts to interact, the stream captured from the tablet camera should be transmitted to all other students that are participating of that class. It will be necessary to develop both, the client and the server modules. The use of UPnP is for notifing the students with any information necessary and provided by the professor when the student enter in the class room, that not necessarily the professor will be there in that room, remember, it is a videoconference environment. We already have all the environment necessary for the experiment.'' || ''C++/QT/Python'' || ''Hard'' || leandro || leandro ||
|-style=&quot;background:LightGreen&quot;
| ''Maemo in OpenEmbedded'' || ''Integrate basic Maemo and Hildon components into the [http://www.openembedded.org OpenEmbedded] build system. The goal should be to create working Maemo filesystem images for one of the Internet Tablets using OpenEmbedded.'' || ''OE, Python''  || ''Medium'' || ''florian'' || ''florian, lglira'' ||
|-style=&quot;background:LightGreen&quot;
| ''Contacts Import/export'' || ''Import/export contacts to the ITT from various sources, like Thunderbird, Outlook, Gmail, Symbian Phones, etc. See [[Task:PIM]] and [http://www.google.com/mobile/default/sync.html Google Sync]'' || ''C/C++,Python or others''  || ''Medium'' || ''vdvsx'' || ''florian'' ||
|-style=&quot;background:LightGreen&quot;
| ''PIM Synchronisation'' || ''Synchronise PIM data (contacts, events...) with Symbian and server solutions such as Funambol, e. g. using [http://www.opensync.org OpenSync] The pad serves as synchronisation engine and keeps your personal data in sync. Of course applications running on the device can make use of this mechanism too.'' || ''C, Vala or others''  || ''Medium / Hard'' || ''florian'' || ''florian'' ||
|-style=&quot;background:LightGreen&quot;
| ''Implement Internet Storage client'' || ''Implement a client for an Internet storage system such as Dropbox or Box.net.  Modify existing source code for Linux to eliminate elements not implemented in Maemo (e.g., Nautilus for Dropbox)'' || ''C/C++'' || ''Medium'' || ''frethop'' || ''frethop'' || 
|-style=&quot;background:LightGreen&quot;
| ''Smart News Reader on N800/N810''|| ''A smart News Reader for users to subscribe news/information feeds on their favorite sites then this reader can filter information which user maybe does not care or be not interested in according to the user reading patterns and environment context. This application will use semantic technique, context-aware technique and machine learning algorithm to reach the goal.'' || ''Python/C'' || ''Medium'' || Derkaiser || ||  Actually I have implemented a prototype but the smart recommendation engine has not been done yet.I wonder whether there is anyone in community can be the mentor and give some instructions on how to complete the task for me. 
|-style=&quot;background:LightGreen&quot;
| ''Mnemosyne for Maemo''|| ''Maemo implementation of well-known Mnemosyne http://en.wikipedia.org/wiki/Mnemosyne_(software) flash-card sophisticated learning tool based on spaced repetition technique  http://en.wikipedia.org/wiki/Spaced_repetition '' || ''Python'' || ''Medium'' || Ed Bartosh || Ed Bartosh ||  Some basic implementation is already done. However, a lot of features need to be implemented: finger-friendly UI, support for all card types, synchronization with Desktop, web application. 
|-style=&quot;background:LightGreen&quot;
| ''Implement Gtk TreeModel/TreeView with lazy loading from tracker'' || ''Write a Gtk TreeModel/TreeView that loads the data from tracker on request. This would allow the user to run a query with 5000 results, show very fast in the UI the first 10, and retrieve in the background the next results or on demand when scrolling'' || ''C/GTK''  || ''Medium/Hard'' || ''ifrade'' || ''ifrade'' ||  
|-style=&quot;background:Orange&quot;
| ''Google Latitude/Nokia Friend view client'' || ''Port/make a Google Latitude/Nokia Friend view client to the ITT. See [http://www.google.com/latitude] and [http://www.xtify.com]'' || ''C/C++/Python/Clluter/others''  || ''Easy/Medium'' || ''vdvsx'' || ''vdvsx'' || Both APIs are closed :(
|-style=&quot;background:Orange&quot;
| ''Improve RTComm for the tablets'' || ''A single-click install for RTComm and all the required libraries to make the built-in IM client work with as many protocols as possible and (maybe even more important bit) finally improve the built-in contacts app import feature. See [http://rtcomm.garage.maemo.org/]'' || ''C/C++''  || ''Medium'' || ''stangri'' || || This can already be done easily with [http://www.math.sc.edu/~dschep/osso-rtcom-beta.install this] .install file, that is used in the current installation method.
|-style=&quot;background:Orange&quot;
| ''Maemo Alarm'' || ''Make a nice and customizable alarm application for Maemo. See [https://garage.maemo.org/projects/alarmd/]'' || ''C/C++/Python/Clluter/other''  || ''Easy'' || ''Denis Smolyar'' ||  || &quot;&quot;I don't see any nice alarm for maemo... cron? without giu i can't use them from maemo. -- Denis Smolyar @Dev-ML&quot;
|-style=&quot;background:Orange&quot;
| ''Implement Bluetooth Speaker Support'' || ''Add support for turning a tablet into a Bluetooth speaker system -- probably through headset or hands-free profile support.  Possibly extend BlueMaemo'' || ''Python''  || ''Medium/Easy'' || ''frethop'' || ''frethop'' ||  I think there was some work on this last year's GSoC on BlueZ (lfelipe)
|-style=&quot;background:Orange&quot;
| ''Port Conduit'' || ''Optimize the UI for the tablets, identify the subset of dataproviders that made sense on the tablets. See [http://www.conduit-project.org/]'' || ''Python'' || ''Medium'' || ''jaffa'' || ''vdvsx'' || 
|-style=&quot;background:Orange&quot;
| ''Compiz Cube for Maemo.'' || ''Use compiz-cube or similar to jump between four virtual desktops running:Hildon, Canola, PIM-Phone, locked up device (with widgets maybe).The cube would jump vertically instead of horizontally and a finger gesture would jump between them.'' || ''C/C++/Others'' || ''Medium/Hard'' || Eduard Pertíñez ||  ||
|-style=&quot;background:Tomato&quot;

| ''Developers IDE for Maemo'' || ''Development of an IDE For the Maemo Application Developer which supports HILDON Library and GTK+ support'' || ''C/C++/Others'' || ''Medium/Hard'' || Ankit Anand ||  ||
|}

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects</title>
    <id>1799</id>
    <revision>
      <id>14016</id>
      <timestamp>2009-06-06T16:56:49Z</timestamp>
      <contributor>
        <username>bolaum</username>
        <id>944</id>
      </contributor>
      <comment>/* Google Summer of Code 2009 */</comment>
      <text xml:space="preserve">== '''Google Summer of Code 2009''' ==


The following 10 projects were selected for [http://socghop.appspot.com/org/home/google/gsoc2009/maemo GSoC 2009]:

{| class=&quot;wikitable&quot;
|-
! Project name
! Student
! Mentor
! Project summary
|-
| [[GSoC_2009/Projects/Mnemosyne_for_Maemo|Mnemosyne for Maemo]]
| Max Usachev
| Eduard Bartosh
| [http://socghop.appspot.com//student_project/show/google/gsoc2009/maemo/t124022672861 Link]
|-
| [[GSoC_2009/Projects/Liqbase_Framework_Development_and_Application_Implementation|Liqbase Framework Development and Application Implementation]]
| Zachary Habersang
| Gary Birkett
| [http://socghop.appspot.com//student_project/show/google/gsoc2009/maemo/t124022672992 Link]
|-
| [[GSoC_2009/Projects/Semantic-Based_Context-aware_Personalized_News_reader_System_for_Maemo|Semantic-Based Context-aware Personalized News reader System for Maemo]]
| feng gao
| Thomas Perl
| [http://socghop.appspot.com//student_project/show/google/gsoc2009/maemo/t124022673156 Link]
|-
| [[GSoC_2009/Projects/BitTorrent_plugin_for_Canola|BitTorrent plugin for Canola]]
| Lauri Võsandi
| Luis Felipe Strano Moraes
| [http://socghop.appspot.com//student_project/show/google/gsoc2009/maemo/t124022673307 Link]
|-
| [[GSoC_2009/Projects/Remember_The_Milk_plugin_for_Canola|Remember The Milk plugin for Canola]]
| Andrey Popelo
| ulisses furquim freire da silva
| [http://socghop.appspot.com//student_project/show/google/gsoc2009/maemo/t124022673447 Link]
|-
| [[GSoC_2009/Projects/Barcode_scanner_and_Shopping_Assistant|Barcode scanner and Shopping Assistant]]
| Amit Sethi
| Valério Valério
| [http://socghop.appspot.com//student_project/show/google/gsoc2009/maemo/t124022673585 Link]
|-
| [[GSoC_2009/Projects/Picasa_plugin_for_Canola|Picasa plugin for Canola]]
| Andrei Mirestean
| Gustavo Chaves
| [http://socghop.appspot.com//student_project/show/google/gsoc2009/maemo/t124022673724 Link]
|-
| [[GSoC_2009/Projects/IM_Client_For_Canola|IM Client For Canola]]
| Thiago Borges Abdnur
| Rafael Antognolli
| [http://socghop.appspot.com//student_project/show/google/gsoc2009/maemo/t124022673888 Link]
|-
| [[GSoC_2009/Projects/Twitter_Plugin_And_Twitpic_Support_For_Canola|Twitter application and Twitpic support for Canola]]
| kasun herath
| Eduardo Lima
| [http://socghop.appspot.com//student_project/show/google/gsoc2009/maemo/t124022674028 Link]
|-
| [[GSoC_2009/Projects/Integrating_Maemo_in_Open_Embedded|Integrating Maemo in Open Embedded(OE) - Creating a &amp;#39;maemo image&amp;#39; in OE for the N800/N810]]
| Kirtika Ruchandani
| Florian Boor
| [http://socghop.appspot.com//student_project/show/google/gsoc2009/maemo/t124022674214 Link]
|-

|}


[[Category:Community]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects/Barcode scanner and Shopping Assistant</title>
    <id>1816</id>
    <revision>
      <id>29214</id>
      <timestamp>2010-02-12T09:56:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Google Summer of Code]]</comment>
      <text xml:space="preserve">== Barcode scanner and Shopping Assistant - GSoC 2009 Project ==

*'''Student''': Amit Sethi 
*'''Mentor''': Valério Valério
*'''Repository''': [https://garage.maemo.org/projects/shop-mate/ https://garage.maemo.org/projects/shop-mate/]



===Project summary===
Develop a barcode reader and shopping Assistant  that makes shopping a new experience. The application will read the bar-code of products using the camera on ITT devices and compare the price with other local stores, see product reviews and also build and share shopping lists, wish lists etc..


First step in the project is to develop  cython bindings for the barcode library.

===Project Reports===

*[http://n2.nabble.com/-GSoc-09--Barcode-Scanner-and-shopping-Assistant---report-1-td3036268.html Report 1]
*[http://n2.nabble.com/Barcode-Scanner-and-Shopping-Assistant--report-2--td3128846.html Report 2]
*[http://n2.nabble.com/GSOC-Barcode-Scanner-and-Shopping-Assistant--report-3--td3218694.html Report 3]

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects/BitTorrent plugin for Canola</title>
    <id>1814</id>
    <revision>
      <id>29215</id>
      <timestamp>2010-02-12T09:57:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Google Summer of Code]]</comment>
      <text xml:space="preserve">== BitTorrent plugin for Canola - GSoC 2009 Project ==

*'''Student''': Lauri Võsandi 
*'''Mentor''': Luis Felipe Strano Moraes 
*'''Repository''': http://gitorious.org/canola-bittorrent-plugin

== Intro ==
The purpose of this project is to develop a BitTorrent plugin for Canola2.

== Features ==
* Browse RSS feeds of several (legal) torrent sites. Includes detailed view of feed entry
* Allow seaching torrent sites: The Pirate Bay, Mininova and LegalTorrents
* Download torrents using built-in BitTorrent 3. Includes detailed view of download
* Download torrents using locally running Transmission via JSON RPC interface
* Manage torrent downloads on remote Transmission instance
* Allows accessing password protected remote instances of Transmission via standard URL format: http://user:pass@host:9091
* Respects your Canola settings of download folder
* Allows adding, modifying, deleting and renaming RSS feeds
* Allows adding, modifying, deleting and renaming Transmission hosts

== To-do ==
* Make possible to choose between built-in BitTorrent engine and running Transmission for local downloads
* Consistent terminology among the source code (leechers vs peers for example)
* Save some of the runtime options to SQL database included in Canola (SQL table for dict perhaps?)

== Other ideas ==
* Allow searching in RSS feed
* Allow browsing Torrent contents and playback of retrieved media.
* Clean up download view and feed entry view
* Clean up menus
* Debug

==Installing and usage==
Please follow manual [http://v6sa.itcollege.ee/shared/canola/man here]

==Reports==
[[GSoC_2009/Projects/BitTorrent_plugin_for_Canola/Report1|First report]], a bit late tough :P

[[GSoC_2009/Projects/BitTorrent_plugin_for_Canola/Report2|Second report]], some new stuff

[[GSoC_2009/Projects/BitTorrent_plugin_for_Canola/Report3|Third report]], we're approaching finish soon

[[GSoC_2009/Projects/BitTorrent_plugin_for_Canola/Report4|Final report]]

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects/BitTorrent plugin for Canola/Report1</title>
    <id>2043</id>
    <revision>
      <id>29216</id>
      <timestamp>2010-02-12T09:57:24Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Google Summer of Code]]</comment>
      <text xml:space="preserve">This is my first report on the GSoC project. During this month I have learned much about the internals of Canola. I first actually made a [http://v6sa.itcollege.ee/shared/canola/util/terra-indexer.py dummy program] for indexing all the Terra classes. I ran it on [http://v6sa.itcollege.ee/shared/canola/util/plugins-canola-core.html canola-core] and [http://v6sa.itcollege.ee/shared/canola/util/plugin-canola-tube.html canola-tube] plugins. Understanding Model, Controller, Settings and Options search prefixes was key issue. Danish Weekend was very helpful for that. I encountered many obstacles but in the end I understood what I wasn't doing or what I was doing wrong. I did't write report earlier because I didn't have much to say. Now I can say that I've had much progress and preliminary version is actually usable. In next weeks I intend to finish the GUI (add fullscreen views and more menu options). Finally I want to add libtransmission support also via Python wrappers.

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects/BitTorrent plugin for Canola/Report2</title>
    <id>2123</id>
    <revision>
      <id>32615</id>
      <timestamp>2010-04-13T13:47:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify link</comment>
      <text xml:space="preserve">This is my second report for Canola2 plugin. Adding built-in Torrent library was the key issue this time. I chose in favour for official BitTorrent 3.9 client, because it is written in Python, it doesn't depend on exotic libraries and it performs quite well. I could not find wrappers for libtransmission. Rasterbar's libtorrent had wrappers but it depended on huge Boost libraries. Other libtorrent (rtorrent) did not have python wrappers. Integrating BT3 was quite easy, I cleaned up the code, removed obsolete python support etc. Now I have both: built-in BT3 and Transmission JSON RPC interface.

Other issue was adding fullscreen views for feed entry view and torrent download view. There was a lot of hacking but now it works perfectly. I also added nice progress bar there based on the action button used in other menus.

Other work included debugging, making code cleaner and more readable. There are still some features missing but when they'll be implemented the plugin is finished. There is now beta Debian package of this plugin available on Maemo wiki:

[[GSoC_2009/Projects/BitTorrent_plugin_for_Canola]]

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects/BitTorrent plugin for Canola/Report3</title>
    <id>2263</id>
    <revision>
      <id>29218</id>
      <timestamp>2010-02-12T09:57:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify, [[Category:Google Summer of Code]]</comment>
      <text xml:space="preserve">This is my third report for [[Canola2]] plugin. A month has passed from last report. I had much progress previous time so I took some time off to think about fresh ideas for the plugin. In the end of July and in the beginning of August I implemented some new features:

* Cleaned up the code
* Removed download button from torrent feed list, now the download option is located under the options menu for fullscreen feed entry view. If there are remote Transmission instances, the download destination for them is also shown. Throbber window is also displayed while download is started.
* Max connections per torrent option in active downloads list
* Upload rate option in active downloads list
* Besides RSS feeds I implemented few built-in search engines: LegalTorrents, The Pirate Bay, Mininova
* More abstract feed entry view - it now fits for search results also. Depending on the context some fields are unavailible.
* Replaced the icon with the bubble style icon


Generally the plugin seems to be reaching maturity level enough to be called release candidate. There are some features that could be implemented in the future:

* Browsing torrent content (file names and sizes)
* Switching between local transmission and built-in BitTorrent for local engine
* More abstract and generic implementation for search engines
* Catergories (Audio, video, books) for search engines


So far I am in the schedule and I am taking next weeks until evaluation to:
* Write detailed user manual covering all the use scenarios for the plugin
* Write how-to about writing plugins for Canola2. This also includes helpful program pieces that I wrote to assist myself.
* Debug and clean up the code


By the end of august we will have a kick-ass Torrent plugin for Canola2. You can help by testing:

[[GSoC_2009/Projects/BitTorrent_plugin_for_Canola]]

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects/BitTorrent plugin for Canola/Report4</title>
    <id>2282</id>
    <revision>
      <id>29219</id>
      <timestamp>2010-02-12T09:58:13Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Google Summer of Code]]</comment>
      <text xml:space="preserve">To simplify writing the plugin I wrote a dummy program for generating plugins.info file. Just download it [http://v6sa.itcollege.ee/shared/canola/util/mkpluginsinfo.py here] and drop it next to your existing plugins.info file. Running it via python mkpluginsinfo.py displays suggested plugins.info file. Make a backup of your existing file by &quot;cp plugins.info plugins.backup&quot; and execute the script &quot;python mkpluginsinfo.py &gt; plugins.info&quot;

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects/IM Client For Canola</title>
    <id>1817</id>
    <revision>
      <id>41878</id>
      <timestamp>2011-02-18T09:19:24Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/72.4.71.66|72.4.71.66]] ([[User talk:72.4.71.66|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">*'''Student''': Thiago Borges Abdnur (aka: bolaum) 
*'''Mentor''': Rafael Antognolli 
*'''Repository''': http://code.openbossa.org/projects/canola-im
*'''Packages''': http://www.students.ic.unicamp.br/~ra025266/gsoc/

===Project summary===
This project intends to build a simple and easy to use IM client plugin for Canola. Initially, we intended to use python-purple as the lib for communications, but we decided to use telepathy instead to be compliant with Maemo's standard.

====Proposed and possible features====
* Client connected in background
* Tray icon to warn about received messages
* Auto-login option
* Bonjour protocol support for finding other Canola users in local network
* Suggest features! New ideas are always welcome!

===TODO===
* Basic tasks
** Use and play around with python-purple '''(DONE, but deprecated)'''
** Understand telepathy framework '''(DONE)'''
** Run and study example codes '''(DONE)'''
** Begin development of UI '''(DONE)'''
** Start backend dev. with:
*** Connect to IM networks (GTalk, MSN, Yahoo, ICQ and AIM) '''(DONE)'''
*** Buddy-list fetching '''(DONE)'''
**** Asynch status update '''(DONE)'''
*** Basic messaging support (GTalk, MSN, Yahoo, ICQ and AIM) '''(DONE)'''
*** Status setting '''(DONE)'''
*** Status message setting '''(DONE)'''
** File transfer support '''(in progress)'''

* Extra features
** Bonjour support for finding Canola users in LAN  '''(DONE)'''
** Improve UI considering community feedback  '''(in progress)'''
** Add features recommended by the community '''(in progress)'''
** Finish up documentation

===Project Reports===

*[http://n2.nabble.com/-GSoC-09--IM-Client-for-Canola---report-1-td3022902.html Report 1]
*[http://n2.nabble.com/-GSoC-09--IM-Client-for-Canola---report-2-td3214066.html Report 2]

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects/IM Client For Canola Using Python-purple</title>
    <id>1964</id>
    <revision>
      <id>14015</id>
      <timestamp>2009-06-06T16:55:42Z</timestamp>
      <contributor>
        <username>bolaum</username>
        <id>944</id>
      </contributor>
      <comment>[[GSoC 2009/Projects/IM Client For Canola Using Python-purple]] moved to [[GSoC 2009/Projects/IM Client For Canola]]: Project won't use python-purple anymore, so a title change must be done.</comment>
      <text xml:space="preserve">#REDIRECT [[GSoC 2009/Projects/IM Client For Canola]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects/Integrating Maemo in Open Embedded</title>
    <id>1818</id>
    <revision>
      <id>29221</id>
      <timestamp>2010-02-12T09:58:31Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Google Summer of Code]]</comment>
      <text xml:space="preserve">== Integrating Maemo in Open Embedded(OE) - Creating a 'maemo image' in OE for the N800/N810 - GSoC 2009 Project ==

*'''Student''': Kirtika Ruchandani 
*'''Mentor''': Florian Boor 
*'''Repository''': http://github.com/rkirti/maemo_angstrom/tree/master 
The above repo. is where the current recipes can be checked out from, in the form of an OE overlay. The recipes were previously hosted at 
http://github.com/rkirti/maemo-oe/tree/master which is synced with the new repo, but less frequently.


===Project summary===

The project aim is to get a file-system image of maemo built in OE for the
N800/N810 with all the Maemo software stack components - including the
hildon UI environment. The work done for this will also include making the
platform itself portable - i.e. being able to port Maemo components for a
device over a given base, say angstrom.

===Project Reports===

*[http://n2.nabble.com/-GSoC-09--Integrating-Maemo-in-Open-Embedded---Report-1-td3034362.html Report 1]
*[http://rkirti.wordpress.com/2009/06/25/report2/ Report 2]
*[http://rkirti.wordpress.com/2009/07/27/gsoc-updates-hildon-on-angstrom/ Report 3]
*[http://rkirti.wordpress.com/2009/08/15/gsoc-updates-report-4/ Report 4]
*[http://rkirti.wordpress.com/2009/08/16/gsoc-2009-winding-up/ GSoC Concluding Comments]

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects/Liqbase Framework Development and Application Implementation</title>
    <id>1812</id>
    <revision>
      <id>29222</id>
      <timestamp>2010-02-12T09:58:41Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Google Summer of Code]]</comment>
      <text xml:space="preserve">== Liqbase Framework Development and Application Implementation - GSoC 2009 Project ==

*'''Student''': Zachary Habersang
*'''Mentor''': Gary Birkett 
*'''Repository''': git@gitbase.com:liqbase/libliqbase/libliqbase.git


===Project summary===

My project aims to refine existing liqbase code, further develop the liqbase framework for modular application addition, and to actually build and document a Systems/Network monitor application so to establish a proof of concept for other developers to write applications using the highly interactive and innovative liqbase framework.

View the full proposal here:

http://socghop.appspot.com/student_project/show/google/gsoc2009/maemo/t124022672992

===Project Reports===

*[http://n2.nabble.com/-GSoC-09--Liqbase-Framework-Dev.-and-App.-Implementation---report-1-td3036283.html Report 1]
*[http://n2.nabble.com/-GSoC-09--Liqbase-Framework-Dev.-and-App.-Implementation---report-2-td3146580.html Report 2]
*[http://n2.nabble.com/-GSoC-09--Liqbase-Framework-Dev.-and-App.-Implementation---report-3-td3221516.html Report 3]
*[http://n2.nabble.com/-GSoC-09--Liqbase-Framework-Dev.-and-App.-Implementation---report-4-td3326860.html#a3326860 Report 4]
*[http://n2.nabble.com/Final--GSoC-09--Liqbase-Framework-Dev.-and-App.-Implementation----report-5-td3447805.html#a3447805 Report 5(final)]

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects/Mnemosyne for Maemo</title>
    <id>1811</id>
    <revision>
      <id>29225</id>
      <timestamp>2010-02-12T10:01:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Google Summer of Code]]</comment>
      <text xml:space="preserve">== Mnemosyne for Maemo - GSoC 2009 Project ==

*'''Student''': Max Usachev
*'''Mentor''': Eduard Bartosh 
*'''Repository''': http://github.com/umax/pomni/tree/master
*'''Assembla tickets''': https://www.assembla.com/spaces/pomni/tickets


The purpose of this project is to create mobile version of Mnemosyne [1] for Maemo platform. Mnemosyne is a learning tool based on spaced repetition technique [2]. Using this program you can learn foreign languages, sound fragments, graphic information.

The main idea of porting Mnemosyne is to adapt existing desktop interface for using it by finger, not by stylus and also add some additional features such as text-to-speech support and synchronization between mobile and desktop version. 


[1] - http://en.wikipedia.org/wiki/Mnemosyne_(software)

[2] - http://en.wikipedia.org/wiki/Spaced_repetition

===Project Reports===

*[https://www.assembla.com/wiki/show/pomni/GSoC2009_Report1 Report 1]
*[https://www.assembla.com/wiki/show/pomni/GSoC2009_Report2 Report 2]
*[https://www.assembla.com/wiki/show/pomni/GSoC2009_Report4 Report 3]
*[https://www.assembla.com/wiki/show/pomni/GSoC2009_Report4 Report 4]
*[https://www.assembla.com/wiki/show/pomni/GSoC2009_Report5_(Final) Report 5 (Final)]

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects/Picasa plugin for Canola</title>
    <id>1800</id>
    <revision>
      <id>31375</id>
      <timestamp>2010-03-21T14:51:05Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>/* Instructions to install the plugin */</comment>
      <text xml:space="preserve">== Picasa plugin for Canola - GSoC 2009 Project ==

*'''Student''': Mirestean Andrei, email: andrei dot mirestean at gmail dot com
*'''Mentor''': Gustavo Chaves
*'''Project Status''': accepted :D
*'''Repository''': 
** http://github.com/andrei1089/canola-picasa/tree (main repository)
** http://code.openbossa.org/projects/canola-picasa-plugin



===Project summary===
The aim of this project is to develop a Picasa plugin for Canola. The plugin will be able to access the web albums stored at Picasa, to upload new pictures, to add/update descriptions and tags). The plugin will ease and shorten the process of taking and sharing a picture on the Internet. It will also use GPS data to fill location information in picture's meta-data and to search for pictures taken in current region.

===Progress===

* Backend which interfaces with Google Picasa API '''(done)'''
* List user's albums with details (thumb, name, description) '''(done)'''
* Add album create / delete options '''(done)'''
* Show thumbs for pictures in each album '''(done)'''
* Show full size pictures '''(done, but should export some classes from canola-core )'''
* Show full screen pictures '''(done, but should export some classes from canola-core)'''
* Add support to delete pictures from albums '''(done)'''
* Add option to allow changes in album name, description and access '''(done)'''
* Add support for picture uploading '''(done)'''
* Add support for album uploading '''(done)'''
* Integrate with Photocast '''(done)'''
* Add support to view other public albums by username '''(done)'''
* Add support to search for public pictures:
** by name '''(done)'''
** by tag '''(done)'''
** by location name '''(done)'''
** by location using built-in GPS '''(done)'''
* Show comments and tags for pictures (similar to the Flickr plugin) '''(done)'''
* Support to add comments '''(done)'''
* Show favorites '''(done)'''

===Low priority tasks===
* add option to select thumbs location

===Screenshots===

* http://picasaweb.google.com/canolapicasa/CanolaPicasaScreenshots?feat=directlink
* http://www.youtube.com/watch?v=AbagUM3gqGM

===Instructions to install the plugin===

The package is available in the following repositories:
* extras-devel repositories for diablo and fremantle: http://maemo.org/packages/view/canola2-picasa-plugin/
* canola ppa: https://launchpad.net/~canola/+archive/ppa

Please contact me for any problems.

===Reports===
*[[GSoC_2009/Projects/Picasa_plugin_for_Canola/Report1|Report 1]] - [http://n2.nabble.com/-GSoC-09----Picasa-plugin-for-Canola---report-1-tt3038578.html Discussion]
*[[GSoC_2009/Projects/Picasa_plugin_for_Canola/Report2|Report 2]] - [http://n2.nabble.com/-GSoC-09----Picasa-plugin-for-Canola---report-2-td3143906.html Discussion]
*[[GSoC_2009/Projects/Picasa_plugin_for_Canola/Report3|Report 3]] - [http://n2.nabble.com/-GSoC-09----Picasa-plugin-for-Canola---report-3-td3291131.html#a3291131 Discussion]

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects/Picasa plugin for Canola/Report1</title>
    <id>1965</id>
    <revision>
      <id>29227</id>
      <timestamp>2010-02-12T10:02:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Google Summer of Code]]</comment>
      <text xml:space="preserve">== Picasa plugin for Canola - GSoC 2009 Project - Report 1 ==

This is my first report on the GSoC project. Since my proposal was accepted I started to use Canola, study the source code, to understand the way it works. For the development of the plugin I have started with a simple skeleton that was connecting to the Picasa API and was retrieving the name of the albums. During the last 2 weeks I've developed this skeleton. As for now it is able to display the online albums([http://img230.imageshack.us/img230/1391/screenshotcanola.png screenshot]). To do this I have studied the Youtube plugin and used similar code to display album's properties. 
The delete and new albums option are also implemented ( those were coded during the Danish Weekend:D [http://img230.imageshack.us/img230/3545/screenshotcanola2.png screenshot] )
The code that displays the thumbs of the pictures in each album is working but some improvements should be made([http://img230.imageshack.us/img230/1371/screenshotcanola1.png screenshot]) The thumbs are loaded from Picasa, they are not generated from the actual picture on the device, but the thumbnailer will be used to crop them. I will use the download manager to get the thumbs and the pictures from the server.
Also, an option to set the account username / password was added in the settings menu.

During the next 2 weeks, I will continue to develop the interface, add some of the other options( set album properties, upload pictures, .. ). I will try to integrate the plugin with Photocast, to automatically add user's albums. Photocast is already able to display Picasa albums from RSS feeds, so I only need to add the urls in the database. 

That's all for now!Please send me any suggestions or comments! Thank you!

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects/Picasa plugin for Canola/Report2</title>
    <id>2036</id>
    <revision>
      <id>29228</id>
      <timestamp>2010-02-12T10:02:30Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Google Summer of Code]]</comment>
      <text xml:space="preserve">== Picasa plugin for Canola - GSoC 2009 Project - Report 2 ==

This is the second report on the GSoC project. During the last 2 weeks I have continued the development of the plugin doing the following:
* added code to display pictures in normal and full screen sizes
* added the clear cache option ( the plugin stores the thumbs and pictures locally on the device in ~/.canola/picasa )
* revised parts of the code according to glima's suggestions
* integrated the plugin with Photocast
* coded the change album name, description and access options

For the next 2 weeks I plan to add some of the other options ( delete pictures from albums, support for picture uploading and search for public pictures made by community )

Any suggestions and comments are welcomed. Thank you!

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects/Picasa plugin for Canola/Report3</title>
    <id>2229</id>
    <revision>
      <id>29229</id>
      <timestamp>2010-02-12T10:10:42Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Google Summer of Code]]</comment>
      <text xml:space="preserve">== Picasa plugin for Canola - GSoC 2009 Project - Report 3 ==

This is the third report on the GSoC project. The following features were added to the plugin during the last weeks:
* upload for pictures
* upload for albums 
* icons for Canola's default themes
* search for community albums by user, name, location, tag
* view image info, description, comments
* support to post comments
* code clean-up

For the next weeks I plan to add the option to search for pictures taken around the current GPS location and to solve known bugs.

Any suggestions and comments are welcomed. Thank you!

===Screenshots===

* http://picasaweb.google.com/canolapicasa/CanolaPicasaScreenshots?feat=directlink
* http://www.youtube.com/watch?v=AbagUM3gqGM

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects/Remember The Milk plugin for Canola</title>
    <id>1815</id>
    <revision>
      <id>29230</id>
      <timestamp>2010-02-12T10:11:13Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <text xml:space="preserve">== Remember The Milk plugin for Canola - GSoC 2009 Project ==

*'''Student''': Andrey Popelo 
*'''Mentor''': ulisses furquim freire da silva 
*'''Garage page''': https://garage.maemo.org/projects/canola-rtm/
*'''Repository''': http://code.openbossa.org/projects/canola-rtm/repos/mainline



===Project summary===
The main goal of this project is to create a program which allows users to manage personal todo (or task) lists in easy and comfortable way with support of most the of modern features - synchronization, finger friendly interface, tags, integration with other applications.

Program will be implemented as a plugin for Canola. Task lists will be available locally on a tablet and can be synchronized with www.rememberthemilk.com service.


===Install===
Latest version of a plugin is always available at [http://popelo.com/canola-rtm/canola2-rtm-plugin-latest.deb http://popelo.com/canola-rtm/canola2-rtm-plugin-latest.deb]. You can install it directly on a tablet.

===Getting the source code===
Main project repository is hosted at [http://code.openbossa.org/projects/canola-rtm code.openbossa.org]. You can clone repository with the following command:

:&lt;code&gt;git clone git://code.openbossa.org/canola-rtm/mainline.git&lt;/code&gt;

===Adding RTM plugin to Canola===
Assuming you already have Canola working in your system (if not - [http://profusion.mobi/setting-up-canola-2.0 read this article] about how to build it yourself).

Get the source code of a plugin:

:&lt;code&gt;git clone git://code.openbossa.org/canola-rtm/mainline.git&lt;/code&gt;

Build theme files (example below is for default theme):

:&lt;code&gt;cd mainline/data/themes/default/&lt;/code&gt;
:&lt;code&gt;edje_cc default.edc default-rtm.edj&lt;/code&gt;

Move resulting *.edj file to &lt;canola_src_path&gt;/THEMES folder. Copy mainline/canola-rtm folder to &lt;canola_src_path&gt;/plugins folder:

:&lt;code&gt;mv default-rtm.edj &lt;canola_src_path&gt;/THEMES&lt;/code&gt;
:&lt;code&gt;cd ../../../&lt;/code&gt;
:&lt;code&gt;cp -r canola-rtm/ &lt;canola_src_path&gt;/plugins&lt;/code&gt;

Run terra-rescan-collections:

:&lt;code&gt;cd &lt;canola_src_path&gt;&lt;/code&gt;
:&lt;code&gt;terra-rescan-collections -c canola.conf&lt;/code&gt;

Now you can run Canola and try out new plugin.


===Progress===

====Week #1,2 (May 23 - June 07)====
* Backend which interfaces with RTM API implemented;
* A simple UI implemented. It allows to browse tasks, lists and search for tasks.

====Week #3,4 (June 07 - June 21)====
* Small amount of work done, mainly code cleanup and optimizations. I had exams at university.

====Week #5,6 (June 21 - Jul 05)====
* an options menu for editing main task properties created
* new tasks can be added from inside a plugin
* a backend for storing tasks and lists locally created
* lists are stored locally and can be synchronized with rememberthemilk.com

===Project Reports===

*[http://n2.nabble.com/-GSoC-09----Remember-The-Milk-plugin-for-Canola---report-1-td3042523.html Report 1]
*[http://n2.nabble.com/-GSoC-09----Remember-The-Milk-plugin-for-Canola---report-2-tp3230632p3230632.html Report 2]
*[http://n2.nabble.com/GSoC-09-Remember-The-Milk-plugin-for-Canola-final-report-tp3510778p3510778.html Final Report]

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects/Semantic-Based Context-aware Personalized News reader System for Maemo</title>
    <id>1813</id>
    <revision>
      <id>29231</id>
      <timestamp>2010-02-12T10:11:24Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <text xml:space="preserve">== Semantic-Based Context-aware Personalized News reader System for Maemo - GSoC 2009 Project ==

*'''Student''': feng gao 
*'''Mentor''': Thomas Perl 
*'''Repository''': https://garage.maemo.org/svn/newssprite
*'''project site''':https://garage.maemo.org/projects/newssprite/
*'''project maillist'''：newssprite-devel@garage.maemo.org
*'''Blog for devel''':http://newssprite.blogspot.com

===Project summary===
This project aims to implement a new news reader system on maemo having smart filter to filter ot recommmed information according to user interest and context information. During the GSOC period, the work will focus on context-aware module and semantic recommendation algorithm. The above two modules would be tested on my previous experimental system(it is a system that receives news pages broadcasted by server,stores them and presents them) and gpodder. After GSOC, I'll continue my work and revise previous system to receive RSS feeds then integrate it with GSOC's works.

===Project Reports===

*[http://n2.nabble.com/-GSoC-09-Semantic-Based-Context-aware-Personalized-News-reader-System-for-Maemo-td3035729.html Report 1]
*[http://n2.nabble.com/-GSoC09--Semantic-Based-Context-aware-Personalized-News-reader-System-for-Maemo--Report--2-td3136278.html Report 2]
*[http://n2.nabble.com/-GSoC09--Semantic-Based-Context-aware-Personalized-News-reader-System-for-Maemo--Report--3-td3218786.html Report 3]

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Projects/Twitter Plugin And Twitpic Support For Canola</title>
    <id>1798</id>
    <revision>
      <id>29232</id>
      <timestamp>2010-02-12T10:11:37Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <text xml:space="preserve">== Twitter application and Twitpic support for Canola - GSoC 2009 Project ==

*'''Student''': kasun herath 
*'''Mentor''': Eduardo Lima 
*'''Repository''': http://github.com/kasun/Canola-twitter/tree/master


===Project summary===

The aim of this project is to provide a twitter application and twitpic support for canola2. 

Twitter is a social networking and micro blogging system.

Twitpic could be used to share photos over twitter.

&lt;p&gt;
&lt;b&gt;Features to be implemented in the new twitter plugin&lt;/b&gt;

&lt;ul&gt;
&lt;li&gt;UI of the twitter plugin.&lt;/li&gt;
&lt;li&gt;Engaging in usual twitter activities.&lt;/li&gt;
&lt;li&gt;Posting pictures on the device over twitpic.&lt;/li&gt;
&lt;li&gt;Adding support to the flickr plugin to share URL's of photos over twitter.&lt;/li&gt;
&lt;li&gt;Adding suppport to the youtube plugin to share URL's of videos over twitter.&lt;/li&gt;
&lt;/ul&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;b&gt; Resources &lt;/b&gt; &lt;br/ &gt;
Mockups of the plugin - [[Media:twitter_mockup.jpg]]
Current Interfaces - [[Media:Twitter-textbox.png]] , [[Media:Twitter-list.png]] [[Media:Twitter-updates.png]] , [[Media:Twitter-options.png]] , [[Media:Twitter-Reply.png]] , [[Media:Twitter-Twitpic.png]]
&lt;/p&gt;

==Progress==
&lt;ul&gt;
&lt;li&gt;Settings options implemented.&lt;/li&gt;
&lt;li&gt;Twitter client implemented.&lt;/li&gt;
&lt;li&gt;Twitter options(Reply, Retweet, Delete) implemented&lt;/li&gt;
&lt;li&gt;Twitpic support integrated&lt;/li&gt;
&lt;/ul&gt;

===Project Reports===

*[http://n2.nabble.com/-GSoC-09----Twitter-application-and-Twitpic-support-for-Canola----Report-td3039268.html Report 1]
*[http://n2.nabble.com/-GSoC-09----Twitter-application-and-Twitpic-support-for-Canola----Report-2-td3169368.html Report 2]

== How to Install ==
&lt;ul&gt;
&lt;li&gt;Download the latest twitter-plugin using the command, git clone git://code.openbossa.org/canola-twitter-plugin/mainline.git&lt;/li&gt;
&lt;li&gt;copy the mainline/canola-twitter folder into canola-src/canola/plugins folder&lt;/li&gt;
&lt;li&gt;cd into, mainline/data/themes/default&lt;/li&gt;
&lt;li&gt; Run, edje_cc default.edc default-twitter.edj -id images command to compile the theme file&lt;/li&gt;
&lt;li&gt; copy the default-twitter.edj into canola-src/canola/THEMES folder&lt;/li&gt;
&lt;li&gt; Install python-twitter API from [http://code.google.com/p/python-twitter/]
&lt;/ul&gt;

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Proposal</title>
    <id>1579</id>
    <revision>
      <id>29233</id>
      <timestamp>2010-02-12T10:11:51Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Google Summer of Code]]</comment>
      <text xml:space="preserve">==&lt;b&gt;Describe your organization.&lt;/b&gt;==

The Maemo community is a open source community developing software around the Maemo platform. The Maemo community has over 16,000 registered members who contribute to more than 800 development projects. We work with open source tools and processes. We develop new software on top of the platform as well as for the core platform itself. Applications developed with the Maemo SDK are used today by thousands of Maemo users around the world. The Maemo community is a well-organized group of people, including a Community Council (elected by community members every six months). The Maemo Community Council exists to represent the interests of the greater Maemo community other affiliated bodies.

==&lt;b&gt;Why is your organization applying to participate in GSoC 2009? What do you hope to gain by participating?&lt;/b&gt;==

The Maemo community is applying to participate in GSoC, because we think that GSoC can help our organization in several ways. We also have former GSoC students and mentors who are very enthusiastic about the program.

Aside from the benefits of participating in a program like GSoC, we have already improved by the action of applying: a lot of brainstorming has been accomplished and new ideas have arisen.. Still, we have many goals to achieve through our participation in GSoC. These are:

* Attract new people to the open source world.
* Bring new, talented developers to our community.
* Get help in some of our community projects.
* Meet new people and have fun during the summer.

Effectively, the Maemo community is applying as a &quot;umbrella&quot; organization: we will host projects that will most likely benefit many other embedded platforms &amp; environments that have nothing to do with Maemo itself.

==&lt;b&gt;Did your organization participate in past GSoCs? If so, please summarize your involvement and the successes and challenges of your participation.&lt;/b&gt;==

Yes, in 2007.

This year, we have spoke with our GSoC 2007 mentors in order to acquire a big picture of our previous participation and found that there were some positive and negative aspects involved with the experience. In 2007, we had two successful projects that greatly helped our organization. But, during the course of the program, we had student attrition. In our opinion, this is something that our community must attempt to alleviate. This is true for the success of our role within GSoC and will also help to attract strong participants in the future.

One of our improvements for 2009 was to form a jointed group of former GsoC students and mentors, as well as some some newcomers. We strongly believe that this group will be able to keep our students motivated and excited about the projects that are taken on. Our main goal is to aid in developing a great summer of code.

==&lt;b&gt;If your organization has not previously participated in GSoC, have you applied in the past? If so, for what year(s)?&lt;/b&gt;==

N/A

==&lt;b&gt;What license(s) does your project use?&lt;/b&gt;==

The majority of our projects are licensed under:

* GPL v2 or later
* LGPL v2 or later
* MIT license

==&lt;b&gt;What is the URL for your ideas page?&lt;/b&gt;==

http://wiki.maemo.org/GSoC_2009

==&lt;b&gt;What is the main development mailing list or forum for your organization?&lt;/b&gt;==

The main Maemo development mailing list address is: maemo-developers@maemo.org

All Maemo community mailing lists can be found at: http://maemo.org/community/mailing-lists/

The main forum for discussing Maemo community-related topics is Internet Tablet Talk: http://www.internettablettalk.com/

==&lt;b&gt;What is the main IRC channel for your organization?&lt;/b&gt;==

The main IRC channel for the Maemo community is #maemo @ freenode.

==&lt;b&gt;Does your organization have an application template you would like to see students use? If so, please provide it now.&lt;/b&gt;==
Yes.

Student Template:

* Project title 
* Project Abstract (short description, can be the same used above)
* Project full description
* Project tasks and deliverables
* Project schedule
* Do you have other commitments during the summer of code coding period ? If yes, what kind of commitments ?
* Why are you the right person for this project ?
* What are the benefits of your project for the Maemo Community ?
* Short Biography (academic work, open source background and other activities that you like to do)

==&lt;b&gt;Who will be your backup organization administrator? Please include Google Account information.&lt;/b&gt;==

*Luis Felipe Moraes

==&lt;b&gt;Who will your mentors be? Please include Google Account information.&lt;/b&gt;==

Mentors:

* Aniello Del Sorbo
* Csaba Kertész 
* Eduardo Lima
* Florian Boor 
* Gustavo Lima Chaves
* Ilias Biris
* Leandro Sales 
* Luis Felipe Moraes (organization backup administrator)
* Luis Gustavo Lira
* Mike Jipping 
* Mohammad Anwari 
* Rafael Antognolli
* Thomas Perl
* Valério Valério (organization administrator)
* Zeeshan Ali

Backup Mentors:

* Andrew Flegg 
* Quim Gil 
* Ryan Abel 
* Simon Pickering
* Tim Samoff

==&lt;b&gt;What criteria did you use to select these individuals as mentors? Please be as specific as possible.&lt;/b&gt;==

We begin by inviting people who had some GSoC experience. The majority of our mentors are formerly GSoC students and mentors. We think that previous GSoC experience is an important factor in the success of GSoC.

There are also some newcomers who show enthusiasm in GSoC. Due their proven track record within our organization, they can also become mentors.

Our backup mentors are Maemo community members who are very active and respected within the community. They also possess a proven track record in the open source world. A few of them even have some experience in GSoC.

All of our mentors are strongly motivated and will help our community reach our GSoC goals. We desire to provide a pleasant summer of code to the students that we host.

==&lt;b&gt;What is your plan for dealing with disappearing students?&lt;/b&gt;==

We hope to overcome this issue as much as possible during the students selection process. We will be careful in selecting students who have additional commitments during the GSoC coding period, We would like to avoid those situations where a student might be overloaded with work.

Additionally, we will require students to submit weekly reports to their mentors and assigned backup mentors. This will help to keep track of the students progress. We are also going to require bi-weekly submissions of status reports for all projects to the Maemo community mailing list. This way, we can monitor our students status at any time in order to avoid potential issues that may arise during the coding period.

Lastly, at the beginning of the GSoC coding period the students and their mentors will review and adapt their project schedules in order to assure that project scopes are realistic.

Besides the preventive measures described above, we will always try to keep our students motivated.

==&lt;b&gt;What is your plan for dealing with disappearing mentors?&lt;/b&gt;==

We are planning in such a way that every project has at least one &quot;backup&quot; mentor. This person will be involved in the project development. In the case of problems with the primary mentor, the backup mentor shall assist the student in order to accomplish the final goals of the project. The organization administration will also be in touch with the all of the mentors, so that we can prevent possible problems throughout the duration of the project.

==&lt;b&gt;What steps will you take to encourage students to interact with your project's community before, during and after the program?&lt;/b&gt;==

We will encourage all of the students to get involved in our mailing lists and IRC channels. Before the coding period begins, we will encourage students to brainstorm all of their ideas for possible projects with the community. This way, the students will have a better grasp of the kinds of projects that the community would like to see developed. This preliminary discussion will be very important for our overall organization of the GSoC coding period.

During the coding period the students must send bi-weekly updates to the Maemo community mailing list. This way, they can share their thoughts, problems, and decisions with the community. The community will also be able to offer possible solutions for anything that comes up.

When GSoC ends, we don't want to have students anymore. We want to have motivated Maemo community members. We would like to keep our members involved with the GSoC projects as well as other Maemo community projects.

==&lt;b&gt;What will you do to ensure that your accepted students stick with the project after GSoC concludes?&lt;/b&gt;==

The Maemo community is a very active and friendly community. During the GSoc coding period, our mentors will help to motivate the students. But our community will also be integral in helping to motivate, making suggestions, and overseeing the scope of each project. In effect, the students can feel a community reward: to be a part of the community. This community commitment will ensure more collaboration with our community aside from GSoC. We believe that the community reward and motivation is one of the key factors for any good and solid open source project.

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2009/Students</title>
    <id>1571</id>
    <revision>
      <id>32186</id>
      <timestamp>2010-04-08T15:03:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify link</comment>
      <text xml:space="preserve">&lt;font color=&quot;#FF0000&quot;&gt;Important&lt;/font&gt;: Before reading this page make sure you have read all the [http://code.google.com/opensource/gsoc/2009/faqs.html Google summer of code FAQs], in order to understand the program, and see if you are a eligible student.

==How to apply to a Maemo project==

You can apply to one of the [[GSoC 2009/Project ideas |ideas]] in the Maemo ideas pages, but you can also apply with your own ideas, in the last case you must discuss your ideas with some Maemo mentors or Maemo community members in order to evaluate if your ideas fits the Maemo goals.

We encourage the students to submit their own ideas of possible projects.

Further information after the announcement of the mentoring organization accepted list

==Students expectations==

* Students are expected to work hard on their projects, like a full-time job, of course that the project schedule can be flexible at some times, where students have University assignments.
* The student are expected to be self-motivated. The mentors can help motivating the students, but if the student is not self-motivated to work, then the student probably won't get much out of participating in GSoC.
* The student should schedule time to work on the project each day following the schedule accorded with the mentor. It's not acceptable to fiddle around for days and then work over night just before deadlines.

==Benefits of GSoC for Students==

Apart from the money and the goodies that Google offer to students, the benefits of the program are huge:

* Chance to work with real &lt;i&gt;Rock Stars&lt;/i&gt; developers in projects that will be used around the world;
* The chance to become part of a global community, this can be lead to involvement in several project, social networks, make good friends around the world, and access to valuable resources;
* The student's project can be used for resume material for future employers;
* Summer of code is a really good thing to have on a CV.

==Application selection process==

All Maemo mentors and backup mentors will comment the students application, focusing in these aspects:

*The general project idea;
*What the project brings to Maemo;
*The scope of the project (will be used for a large user base or just a minority);
*The technical aspects of the project;
*The chances that the project is completed during the GSoC period.

After the initial application reviews, a group of mentors will choose the best projects based in the comments made previously.

==Student resources==

*[http://code.google.com/p/google-summer-of-code/wiki/WikiStart GSoC knowledge base]
*[http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for GSoC Students]

==Student application template==

* Project title
* Project Abstract (short description)
* Project full description
* Project tasks and deliverables
* Project schedule
* Do you have other commitments during the summer of code coding period ? If yes, what kind of commitments ?
* Why are you the right person for this project ?
* What are the benefits of your project for the Maemo Community ?
* Short Biography (academic work, open source background and other activities that you like to do) 

&lt;font color=&quot;#FF0000&quot;&gt;Note&lt;/font&gt;: You can/should add more informations, beyond the asked above.

==Contact us==

The Maemo community have two main channels of interaction, the IRC channel and the community mailing list (see info bellow), if you have questions about some of our project ideas or the maemo community in general, feel free to contact us.

==More Information about Maemo==

===Web pages ===

* [http://maemo.org/ maemo.org] - Maemo Community site;
* [[Main_Page|wiki]] - maemo.org wiki;
* [http://www.internettablettalk.com/ Internet Tablet Talk] - Discussion forum for all Maemo related stuff.

=== Mailing Lists ===

[[community mailing lists|Mailing lists]] are a great way to communicate with the Maemo Community.
The mailing lists are archived and the archives are a rich source of information regarding prior discussions and decisions. Bellow you will find some advices regarding mailing lists etiquette:

* Search through the archives for answers before asking on the list;
* Be courteous at all times;
* Be specific, cite data and references, use links when discussing technical stuff;
* Be patient, don't expect an answer within minutes or hours, people often read their mailing-list messages once per day.
* Avoid being rude;
* Avoid writing with all capital letters and excessive punctuation;

===IRC===

The friendly Maemo Community can be found on '''[[IRC|#maemo@freenode]]'''

==Student FAQs==

If you have some questions regarding the Maemo organization, you can ask those questions in the maemo mailing lists, the questions will be copied to this page in order to help other students with the same questions.

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2010</title>
    <id>3538</id>
    <revision>
      <id>33742</id>
      <timestamp>2010-05-03T09:17:40Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <comment>GSoC category added</comment>
      <text xml:space="preserve">&lt;imagemap&gt;Image:Gsoc_2010.jpg|255px
rect 0 0 255 106 [http://code.google.com/soc/]
desc none&lt;/imagemap&gt;


[http://code.google.com/soc/ Google Summer of Code (GSoC)] is a program that offers student developers stipends to write code for various open source projects. Google will be working with several open source, free software, and technology-related groups to identify and fund several projects over a three month period. The maemo community will submit a [[GSoC_2010/Proposal|proposal]] to include maemo-related projects in this year GSoC.

&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:GSoC_2009_projects.png|249px
rect 0 0 254 115 [[GSoC 2010/Projects]]
desc none&lt;/imagemap&gt;&lt;/div&gt;
&lt;div style=&quot;height: 10em&quot;&gt;&amp;nbsp;&lt;/div&gt;

&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:GSoC_2009_project_ideas.png|249px
rect 0 0 249 107 [[GSoC 2010/Project ideas]]
desc none&lt;/imagemap&gt;&lt;/div&gt;
&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:GSoc_2009_students.png|249px
rect 0 0 249 107 [[GSoC 2010/Students]]
desc none&lt;/imagemap&gt;&lt;/div&gt;
&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:GSoC_2009_mentors.png|249px
rect 0 0 249 106 [[GSoC 2010/Mentors]]
desc none&lt;/imagemap&gt;&lt;/div&gt;
&lt;div style=&quot;height: 10em&quot;&gt;&amp;nbsp;&lt;/div&gt;

[[GSoC 2009| Google Summer of Code 2009]]


[[Category:Community]]
[[Category:Development]]
[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2010/MeeGo Cloud Storage Integration</title>
    <id>4332</id>
    <revision>
      <id>36830</id>
      <timestamp>2010-07-14T18:34:34Z</timestamp>
      <contributor>
        <ip>66.83.172.34</ip>
      </contributor>
      <comment>/* Porting UbuntuOne to MeeGo - GSoC 2010 Project */</comment>
      <text xml:space="preserve">== Porting UbuntuOne to MeeGo - GSoC 2010 Project ==

*'''Student''': Eli Foley ([[User:eli|eli]]) , email: efoley at (gmail)
*'''Mentor''': Yan I Li
*'''Project Status''': accepted, in development
*'''Repository''': [http://code.google.com/p/meego-u1/ google code]

Status updates for the project can be found on my [http://elifoley.com/meego blog].

===Project summary===
As part of the Google Summer of Code 2010, I am working on bringing cloud storage to MeeGo. After some research it appears that UbuntuOne is the best basis. I am now in the process of porting the open-source client and daemon to MeeGo, as well as creating a GUI for configuring it.


[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2010/Mentors</title>
    <id>3542</id>
    <revision>
      <id>42504</id>
      <timestamp>2011-03-08T18:03:16Z</timestamp>
      <contributor>
        <ip>69.196.189.224</ip>
      </contributor>
      <comment>/* How to become a mentor */  typo</comment>
      <text xml:space="preserve">Mentors are a crucial part for a good Summer of Code organization, without a good number of motivated mentors we are unable to do a good Summer of Code for the Maemo community.

==How to become a mentor==

In order to become a mentor, you must have done some contributions for the open source community in general, you can be a Maemo community person, or you can be from other communities that produce software that Maemo use (eg. Gnome, BlueZ, Telepathy, Mozilla, etc.). People that develop project to Maemo (eg. Maemo mapper, liqbase, gpodder,...) are encouraged to become mentors, proposing also ideas for their project.

To become a mentor you only need to show your interest in participating in GSoC, send a mail to vdv100 at gmail dot com, with your name, maemo.org nickname (if you have one), your areas of expertise, if you participated in the past in GSoC as a mentor or student send informations about your participation too. 

If you have some project ideas just add them to the [[GSoC 2010/Project ideas|ideas page]].

==Mentor expectations==

* Mentors are expected to spend some time with their students, the mentors should respond to the students questions as quickly as possible;
* Mentors are expected to be patient with their students, keep the students on the project schedule and motivating the student when difficulties arise;
* Mentors are expected to know, at any time, the current status of the projects of their assigned students.

==Benefits of GSoC for Mentors==

* Chance to help the Maemo Community and the projects around Maemo;
* Get some student labor in your &quot;pet&quot; projects;
* Receive some goodies (Book, t-shirt);
* Receive some money;

==Mentor resources==

* [http://code.google.com/p/google-summer-of-code/wiki/AdviceforMentors Advice for GSoC Mentors]
* [http://www.gnome.org/~federico/docs/summer-of-code-mentoring-howto/ Gnome GSoC mentoring howTo]

== Mentors ==

&lt;font color=&quot;#FF0000&quot;&gt;Note&lt;/font&gt;: Before add your name to this list, make sure you read [[GSoC_2010/Mentors#How_to_become_a_mentor|this]].

*Carsten Munk ([[User:stskeeps|stskeeps]]) -  C/C++/Java/Python/packaging
*David Huggins-Daines ([[User:dhd|dhd]]) - C/Python/GStreamer/PocketSphinx/Speech Synthesis and Recognition
*Ed Page ([[User:epage|epage]]) - Linux/Python/PyGTK/python-dbus/telepathy-python/telepathy spec 
*Eduardo Lima ([[User:etrunko|Etrunko]]) - UI/C/Python/EFL/Canola
*Frederico Schardong ([[User:frede|frede]]) - UI/C/GTK+/PHP/JAVA/Web
*Florian Boor ([[User:florian|florian]]) - UI/C/GTK+/Hildon/Framework/Kernel
*Gustavo Lima Chaves ([[User:glima|glima]]) - C/Python/EFL
*Henri Bergius ([[User:bergie|bergie]]) - Midgard/Python/GeoClue
*Ivan Frade ([[User:ifrade|ifrade]]) - Tracker
*Luís Felipe Strano Moraes ([[User:lfelipe|lfelipe]]) - C/Python/EFL
*Mani Chandrasekar ([[User:maninc|maninc]]) - C++/Qt/f-office
*Mohammad Anwari ([[User:mdamt|mdamt]]) - Harmattan text input method framework
*Olivier Crete ([[User:tester|Tester]]) - GStreamer/VoIP/Telephony
*Robin Burchell ([[User:W00t|Robin Burchell]]) - UI/C/C++/Python
*Sivan Greenberg ([[User:sivang|sivang]]) - Python/PyGTK/PySide/Call Filter and notes
*Thomas Perl ([[User:thp|thp]]) - UI/Python/C++/C/GTK+/Hildon/Qt/Web
*Valério Valério ([[User:vdvsx|vdvsx]]) - Qt/EFL/Python/C++/Bluetooth/UI
*Yan Li ([[User:yanli|yanli]]) - MeeGo distro/OS/GNOME/X.org/C/C++/AI
*Zaheer Abbas Merali ([[User:zaheerm|zaheerm]]) - GStreamer/Python/C
*Zeeshan Ali ([[User:zeenix|zeenix]]) - GUPnP/Rygel

==Backup Mentors==

*Tim Samoff ([[User:timsamoff|timsamoff]]) - UI/UX/Interaction/Graphics
*Marat Fayzullin ([[User:fms|fms]]) - C/C++/Applications/OS
*Ryan Abel ([[User:Generalantilles|GeneralAntilles]]) - community

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2010/Project ideas</title>
    <id>3540</id>
    <revision>
      <id>37202</id>
      <timestamp>2010-07-22T07:23:46Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>/* Medium */</comment>
      <text xml:space="preserve">&lt;b&gt;Maemo&lt;/b&gt; provides a framework for developing applications for mobile devices, as well as porting existing applications in the Linux world. Look at the projects available at [http://garage.maemo.org garage.maemo.org] to get an idea of what already exists, in order to come up with your brand new ideas. They can be new functionality added to a consolidated application, a first prototype for promising new applications exploring new functionality, or a small but killer application bringing the unexpected. We recommend you to propose small challenges that can be completed successfully instead of big plans impossible to conclude in 3 months. It's useful to develop a cool new module to be used by other applications or setting a first stone in a project to attract new attention. 

Following the [http://www.nokia.com/press/press-releases/showpressrelease?newsid=1384419 merger] of Moblin and Maemo, this page will also hold ideas for the new &lt;b&gt;[http://meego.com MeeGo]&lt;/b&gt; project, for GSoC 2010.

'''Add your project ideas to the table below.'''

'''If you are an [[GSoC_2010/Mentors#How_to_become_a_mentor|accepted mentor]] and want to mentor one of the possible projects, add your name to the table with your maemo.org nickname (eg. Valério Valério (vdvsx))'''.

&lt;font color=&quot;#FF0000&quot;&gt;Note&lt;/font&gt;: Everybody can add ideas to the list, there's no need to be a mentor or a student. Don't try to guess if your idea will be implemented in MeeGo or not, just add it to the list. Maemo SW will help in order to avoid duplicated work.

==Ideas List==

&lt;font color=&quot;#FF0000&quot;&gt;Note&lt;/font&gt;: This list isn't exclusive, if you are a student and have an idea that isn't listed here, don't hesitate to apply with your own idea, but it's probably a good idea to ask in the Maemo community opinions about your idea.

Other possible projects/ideas can be grabbed from the [[Community_wish-list|Maemo community wish-list]], [[Applications_you_wish_were_ported_from_other_platforms| ports wish-list]] and you can also take a look at the [[Documentation/Maemo 5 Developer Guide|Maemo documentation]] in order to have some ideas.

All the ideas below are possible GSoC projects, some of them need more investigation work than others that are already in a final stages, but all of them start at the same level for us. The students must do some investigation before proposing a project; we are here to help, but it isn't acceptable to just copy and paste the descriptions below to the student's applications.


{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Final proposal
| style=&quot;background:Orange&quot; | Study of alternatives needed 
| style=&quot;background:Tomato&quot; | Draft proposal
|}

=== Easy ===

{| class=&quot;wikitable&quot;
|- style=&quot;background-color: #eef&quot;
! Title !! Abstract/Description !! Skills !! Reporter !! Possible Mentor(s) !! Comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
|-style=&quot;background:LightGreen&quot;
| ''Dooble Web Browser''  || Porting http://dooble.sf.net webkit browser to maemo platform || maemo SDK, packaging an installer || http://dooble.sf.net || http://dooble.sf.net || If someone is interested in a webbrowser on maemo, we would mentor it
|-style=&quot;background:LightGreen&quot;
| ''Facebook Events Sync''  || Creating an application/daemon to synchronise facebook events to the calendar  || maemo SDK, packaging an installer || cocayden || Frederico Schardong ([[User:frede|frede]]) || 
|-style=&quot;background:LightGreen&quot;
| Ad-hoc Telephony || Using techniques like Bluetooth or Wifi for direct voice-connection between phones which are in range. Put this in a nice and easy GUI. ||Gui, VoIP, wifi, bluetooth || || Frederico Schardong ([[User:frede|frede]]), epage || Why not just implement calls in telepathy-salut (the link local connection manager)
|-style=&quot;background:LightGreen&quot;
| Oscilloscope || Port [http://xoscope.sourceforge.net/ xoscope] to maemo5, using the microphone port as an input, possible carrying on the work of [http://talk.maemo.org/showthread.php?t=34099 pinnchus] || GTK/X11 || [[User:speculatrix|speculatrix]] ||  ||
|-style=&quot;background:Orange&quot; 
| Chirematic || View the world around you as if color blind or various other vision impairments || Maemo SDK, packaging, GStreamer || epage || epage || Possibly beneficial to desktop Linux as well
|-style=&quot;background:LightGreen&quot;
| ''Google Reader Offline'' || Creating an application synchronize with Google Reader to enable offline-reading of Google Reader's contents. || maemo SDK, packaging an installer || bob || Frederico Schardong ([[User:frede|frede]]) ||
|-style=&quot;background:LightGreen&quot;
| ''Advanced To-do list'' || Creating an advanced To-do list, with the ability to attach files, including audio recording, messages, emails, etc., linking multiple tasks and updating the priority of a task based on the time left || maemo SDK, Qt || || || The current To-do lists in most Nokia mobiles are disappointing. These added functionalities could make one's phone their own 24 hr assistant
|-style=&quot;background:LightGreen&quot;
| ''Selected frame video reversing'' || developing a mobile application which reverse  a selected video file. we could also provide editing options like providing an audio channel for special effects. a complex version is, we should be able to select a frame in video and reverse it so that rest of frame plays forward simultaneously || maemo sdk ,gstreamer || || || It would be a new form entertaining application. video reversing softwares are present but we cuold implement them first time in mobiles
|-style=&quot;background:LightGreen&quot;
| ''MyWallet'' || a personalized secure application that will keep track of user's accounts, expenses, savings, etc; set alarms for payment deadlines and schedule upcoming stuffs like insurance plan and loan payments.;can function as a database for for storing and organizing sensitive informations like credit card details, passwords, etc; || maemo SDK, Qt || || ||This would be an improvement upon the existing applications which provide similar services with great prospect for improvements and addition of features. Also versions with varied functionalities can help in reaching out to a larger pool of users.
|-style=&quot;background:&quot;
| ''FreOffice - Online doc viewer'' || Adding online document(Slide share / Zoho...) viewing support for FreOffice  || maemo SDK, Qt || || mani ||
|-style=&quot;background:&quot;
|  || || ||  || ||
|}

=== Medium ===
{| class=&quot;wikitable&quot;
|- style=&quot;background-color: #eef&quot;
! Title !! Abstract/Description !! Skills !! Reporter !! Possible Mentor(s) !! Comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
|-style=&quot;background:LightGreen&quot;
| ''Quran player for maemo''  || Creating a complete Quran application based on Qt|| maemo SDK, Qt || [[User:karatchov|karatchov]] ||  || Please see [http://talk.maemo.org/showthread.php?p=590086 this thread] for more informations
|-style=&quot;background:LightGreen&quot;
| ''RetroShare Messenger''  || Porting RetroShare Messenger  || maemo SDK, packaging an installer || http://retroshare.sf.net - http://retromessenger.sf.net ||  || There has been talk about it on the  [[http://lists.freedesktop.org/archives/telepathy/2010-March/004361.html  telepathy mailing list]].
|-style=&quot;background:LightGreen&quot;
| ''Remmina remote desktop''  || Porting Remmina (http://remmina.sf.net), a multi-protocol GTK+ remote desktop client that supports NX, to Maemo || maemo SDK, packaging an installer, familiarity with NX || nadavwr || [[User:thp|thp]] || Remmina supports VNC and RDP, and more importantly trunk has functional NX support. It has zooming and panning features, making it appealing for low resolution displays. The main motivation is having usable NX remoting on the N900, which would be game changing (for those who need it, anyway...)
|-style=&quot;background:LightGreen&quot;
| Google apps || Implement small applications and corresponding reusable libraries (Qt C++) for integrating with Google services like Mail (quick read/search without going through IMAP), Todo:s, Buzz, import opml from Google Reader || Qt, api design || [[User:vivainio|vivainio]] 08:13, 23 February 2010 (UTC) || [[User:vdvsx|VDVsx]] ||
|-style=&quot;background:LightGreen&quot;
| Global Search application || Global search application similar to Spotlight or Google desktop search || Maemo, Qt, Tracker || [http://talk.maemo.org/showpost.php?p=542942&amp;postcount=2 Sp1ke] || ||
|-style=&quot;background:LightGreen&quot;
| ''OTR Support for Telepathy'' || Integrate libotr support in the existing protocol stack || maemo SDK, packaging, telepathy, some crypto ||  ||  || This will require supporting it in Telepathy, the spec is being worked on. (but its doable)
|-style=&quot;background:LightGreen&quot;
| Answering Machine/Call Rejector || Answering machine and call rejector based on black lists and white lists. [http://maemo.org/community/brainstorm/view/answering_machine_on_n900/ Brainstorm entry], [http://maemo.org/community/brainstorm/view/call_rejector-developers_needed/ Brainstorm entry] || Maemo, Qt, GStreamer || [http://maemo.org/community/brainstorm/view/answering_machine_on_n900/ Brainstorm entry], [http://maemo.org/community/brainstorm/view/call_rejector-developers_needed/ Brainstorm entry] || [[User:zaheerm|zaheerm]] || An answering machine (with sound and possibly video) is a mildly complex gstreamer application
|-style=&quot;background:LightGreen&quot;
| sharing-service-telepathy || Integrate IM file transfer support with Maemo through the Sharing plugin system || Maemo SDK, packaging, Telepathy, Maemo Sharing Plugin system || epage || epage || I think this is feasible but the fact it hasn't been done yet makes me a bit hesitant. Jonny Lamb (who did the file transfer UI) already tried it.
|-style=&quot;background:LightGreen&quot;
| Gtk+ input context for Harmattan || Harmattan Text Input Method Framework can only accept text input from Qt based applications, this task is to enable text input of Gtk+ applications in Harmattan || dbus, gtk input context || Mohammad Anwari || Mohammad Anwari ([[User:mdamt|mdamt]]) || [http://qt.gitorious.com/maemo-6-ui-framework/duiimframework Harmattan Text Input Method Framework]
|-style=&quot;background:LightGreen&quot;
| ''Canola UPNP plugin''  || Creating a plugin for Canola to deal with UPNP, possibly using the eupnp library  || python, upnp || lfelipe || lfelipe ||
|-style=&quot;background:LightGreen&quot;
| [http://wiki.maemo.org/GSoC_2010/Projects/Porting_Canola_to_Maemo5 ''Porting Canola to Maemo5 and beyond'']  || This task involves making sure that Canola works on Maemo5 and also making changes to integrate it better, possibly switching from LMS to Tracker, etc. Taking Meego under consideration is a big plus. || python, C || lfelipe || lfelipe ||
|-style=&quot;background:LightGreen&quot;
| aGLESory || Adapt or implement a flexible OpenGL wrapper for Maemo. || OpenGL, libraries and gcc, packaging, documentation, maemo SDK || Flandry || [[User:thp|thp]] || This really needs no introduction...we all know how huge it would be to have a painless wrapper for at least basic OpenGL functionality. This project would be about getting someone to blaze the path and mark it clearly.
|-style=&quot;background:Orange&quot; 
| Desktop Couch || Port [http://www.freedesktop.org/wiki/Specifications/desktopcouch/Documentation Desktop Couch] to the maemo platform and integrate it with various applications (contacts, calender, etc)  || Desktop Couch, python packaging, documentation, maemo SDK ||  ||  || 
|-style=&quot;background:LightGreen&quot;
| Locality || An Android [http://the-gadgeteer.com/2009/05/29/locale-for-android-review/ Locale] clone to automate various aspects of the OS and life || Maemo SDK, packaging, UI, possibly DBus || epage || epage, [[User:thp|thp]] || Beneficial to desktop Linux as well.  Shepherd sounds like it might fill a similar role and is currently in development.
|-style=&quot;background:LightGreen&quot;
| Ebook reader || Implement a good, touch-optimized ebook reader with Qt (+ Maemo5 extensions) || Qt || [[User:vivainio|vivainio]] 08:15, 16 March 2010 (UTC) || [[User:vdvsx|VDVsx]] || This should become a bigger community project, but we need a good, working starting point. Perhaps base on Okular?
|-style=&quot;background:LightGreen&quot;
| MeeGo: cloud storage support || Bring cloud storage support to MeeGo. We are considering dropbox and Ubuntu One, and open to others. || GNOME, Python, packaging || Yan Li ([[User:yanli|yanli]]) || Yan Li ([[User:yanli|yanli]]) || Ubuntu One is interesting. Most of its code are [https://wiki.ubuntu.com/UbuntuOne/TechnicalDetails free] so we should be able to bring it to MeeGo. Same applies to dropbox.
|-style=&quot;background:LightGreen&quot;
| MeeGo: power usage tuning || Linux is far from being power-optimal, not to say the complex and bulky desktop components. There are so many things can be done in this area for the vast collection of free software running on MeeGo that I don't know which is most important yet. Do you know it? || OS, profiler || Yan Li ([[User:yanli|yanli]]) || Yan Li ([[User:yanli|yanli]]) || [http://www.lesswatts.org/projects/powertop/ PowerTOP] is a good start. The hard part in this idea is the participant has to have a power meter to measure the real-time power usage, or you have no way to know your progress. Some computer science or EE labs in universities have that meter. But there are still tasks can be done even without a power meter, like running major software parts within a profiler to identify and optimize hot spots.
|-style=&quot;background:LightGreen&quot;
| MaeAgent || How frustrating it is to have your mobile phone stolen! And how happy would you become if you got it back! The aim is to implement different methods to silently communicate with a stolen phone in order to retrieve it. || Learning from other code, Maemo DBUS APIs, and preferably C || Tarek Galal ([[User:tgalal|tgalal]])|| || There are some discussions and collection of ideas here [http://talk.maemo.org/showthread.php?t=38605 here]
|-style=&quot;background:LightGreen&quot;
| The Tablet of Adventure || a tool for generating and sharing location-based adventures with Maemo devices. The adventures may be manually created or follow the Geohashing &quot;automatic adventure generator&quot; concept as popularised by the xkcd comic. || Python, libchamplain, Midgard || Susanna Huhtanen ([[User:ihmis-suski|ihmis-suski]]) || [[User:bergie|bergie]] || [http://talk.maemo.org/showthread.php?t=48680 Proposal on TMO]
|-style=&quot;background:LightGreen&quot;
| Social location services aggregator || An applicattion that will integrate location services like Google Latitude, Fire eagle, Foursquare and Gowalla. Should show friends from all supported services on the same map. Chosing a venue should update location for all services. || Python, Geoclue, Qt || Andrei Mirestean ([[User:andrei1089|andrei1089]])  || [[User:thp|thp]], [[User:bergie|bergie]] || 
|-style=&quot;background:&quot;
| tracker full-text extractor || tracker extractor support full-text index of text,sms,email,and so on  ||  maemo,tracker,c++,gtk|| sunyi0225 ([[User:sunyi0225|sunyi0225]]),wangguan  ||  || 
|-style=&quot;background:&quot;
| ''FreOffice - EBook support'' || Adding DjVu/epub/PS/PDF support to FreOffice  || maemo SDK, Qt || || mani ||
|-style=&quot;background:LightGreen&quot;
| ''FaceBrick for maemo''  || Working on features and improvements for Maemo's Facebook client || maemo SDK, Qt, libqfacebook || [[User:W00t|w00t]] || [[User:W00t|w00t]] || Main thread: http://talk.maemo.org/showthread.php?t=49216

|-style=&quot;background:&quot;
|  || || ||  || ||
|}

=== Hard ===
{| class=&quot;wikitable&quot;
|- style=&quot;background-color: #eef&quot;
! Title !! Abstract/Description !! Skills !! Reporter !! Possible Mentor(s) !! Comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
|-style=&quot;background:LightGreen&quot;
| Pocket Jeeves  || Creating a framework, API and UI to provide context-based voice interaction with Maemo. [http://talk.maemo.org/showthread.php?t=45457 Brainstorm entry] || packaging, dbus, basic discrete math (language modeling), gstreamer, maemo SDK || Flandry (Cosponsored by [http://cmusphinx.sourceforge.net/wiki/summerofcode2010 Sphinx].) || [http://talk.maemo.org/member.php?u=35207 DHD] || Think handsfree mode, but for your entire mobile computer. Click the button on your headset and your Maemo butler asks &quot;What can i do for you?&quot; The accuracy and speed of the speech recognition can be immensely helped by making context-based grammars. E.g. if media player is operational, &quot;next&quot;, &quot;skip&quot; and &quot;softer&quot; would all be understood. This lends itself well to sub-projects for multiple people to work on. This is entirely feasible, but will take a significant amount of work to tie together everything. I have built Pocket Sphinx on Fremantle and it works as-is. Flite is already in the repos. The pieces are all there...  
|-style=&quot;background:LightGreen&quot;
| telepathy-[http://www.urbandictionary.com/define.php?term=bluewire bluewire] || A bluetooth Connection Manager for plugging into Conversations and providing Tubes for peer-to-peer applications || Maemo SDK, packaging, Telepathy, Bluetooth || epage || epage || The main aim would be a prototype to determine feasibility of the idea.  Beneficial to desktop Linux as well
|-style=&quot;background:LightGreen&quot;
| Qt perl bindings || Bring the Qt perl bindings to MeeGo so developers can take advantage of perl code in MeeGo || MeeGo build tool chain, perl, Qt, packaging || jeremiah || jeremiah || This would build upon a SoC project from last year. 
|-style=&quot;background:LightGreen&quot;
| MeeGo: boot time optimization || MeeGo is booting fast. But no one would blame it for being even more faster, do they? || OS, Linux kernel, C || Yan Li ([[User:yanli|yanli]]) || Yan Li ([[User:yanli|yanli]]) || Basic understanding of the current skills used in Linux fast boot is needed, as well as having a good picture of read-ahead. Of course, creative thinking is the most important.
|-style=&quot;background:LightGreen&quot;
| MeeGo: GUI for fsck || MeeGo lacks a beautiful GUI for fsck. When fsck is running, there should be a GUI to show the progress and when it's done, another dialog to show the result and ask for actions to take. || OS, C || Yan Li ([[User:yanli|yanli]]) || Yan Li ([[User:yanli|yanli]]) || The hard part here is that when fsck is supposed to be running, we have no X, so the GUI has to be running with framebuffer.
|-style=&quot;background:LightGreen&quot;
| MeeGo: Better handling of X failures || X should be running well and unknown to end user for most time, but it does fail, sometimes. When it fails, MeeGo should handle it gracefully. Currently MeeGo's uxlauncher just keeps fingers crossed and restarts X, but sometimes things go really wrong and X can't start at all, and the users are faced a dead-loop with screen flickrs every 10 seconds. We may need a safe-mode, or learn from Ubuntu's [https://wiki.ubuntu.com/BulletProofX BulletProofX] || MeeGo uxlaunch, C, X || Yan Li ([[User:yanli|yanli]]) || Yan Li ([[User:yanli|yanli]])|| We should start simple with a graphical notification, stating X can't start, when detected X has 2 failures in a row. Then add a safe mode, in which users can configure X accordingly
|-style=&quot;background:LightGreen&quot;
| MeeGo: online music services support || It's convenient and fun to have direct access to online music services from the media player, as you can see in Amarok and GNOME Rhythmbox. But MeeGo Media Player lacks this support for now and we should address it.|| C, Clutter || Yan Li ([[User:yanli|yanli]]) || Yan Li ([[User:yanli|yanli]]), [[User:thp|thp]] || You have to read through MeeGo Media Player's code and write patches to add this new function.
|-style=&quot;background:LightGreen&quot;
| UPnP Remote Access || [https://upnp.org UPnP] was originally designed for (private) home networks but recently UPnP forum came-up with a [http://upnp.org/specs/ra/ra1.asp specification] to bridge home networks securely across the globe. Since Maemo has a nice UPnP frameworks on it, implementing a service that implements this spec in question will be a very exciting and enjoyable project. || C or Vala || Zeeshan Ali ([[User:zeenix|zeenix]]) || Zeeshan Ali ([[User:zeenix|zeenix]])|| This is very similar to [http://coherence-project.org/wiki/MirabeauHowTo?redirectedfrom=Mirabeau Mirabeau] project but the difference is that this project will not be specific to XMPP and will use existing frameworks/libs on Maemo.
|-style=&quot;background:&quot;
| mAuth (pronounced moth) || The N900 is a very powerful device, however we can't shake away the fact that many of us still use desktops on a daily basis. Using username/password authentication is highly insecure, because it forces the repeated typing of the same credentials in the same room, roughly at the same time every day. One option for this are smart cards. However they are expensive and the concepts behind them are extremely complicated for anyone who doesn't work in the industry, and as such implementing them at home would be a nightmare. One solution around this would be to have the N900 (or any other NIT for that matter) emulate being a smart card, and use bluetooth to connect to the computer. The authentication and encryption certificates are stored on the N900 and provided to the computer when in bluetooth range, however as soon as the N900 is taken away, the session is locked as the computer believes the &quot;smart card&quot; has been removed. || - Maemo SDK to create the smart card emulator daemon - Bluetooth networking or bluetooth bi-directional communication - PC/SC driver for Windows - Excellent documentation - great packaging || [[User:crashanddie|crashanddie]] 07:46, 20 February 2010 (UTC) || || 
|-style=&quot;background:LightGreen&quot;
| Robotics Simulator || Bring a full-blown robotics simulator to Maemo/MeeGo. For the start, the 2.5D simulator Player/Stage (http://playerstage.sf.net) would be ported and a simple GUI be written. Later integration with Fawkes (http://www.fawkesrobotics.org) can provide some nice demos and scripting environment to start into robotics. If there is interest in this project some studies are needed to check whether the device is generally computationally powerful enough for simple scenarios. Although not a classic Maemo application, this can be seen as an educational effort to get students interested and start playing with (virtual) robots. || Maemo SDK, packaging, Player/Stage, Fawkes, background in robotics software strongly recommended || timn ||  || Given a mentor I would like to pursue this project over the summer. It can be an eye catcher for the N900, if you can have a simulated robot on the device and instruct it to accomplish tasks.
|-style=&quot;background:&quot;
|Radiator: Podcasting + conferencing + Twitter||The premise here is an audio conferencing app that supports 2 or more co-hosts collaborating in the same session.  Audio can be saved for podcasts.  For live events, audiences could &quot;call&quot; in or comment via twitter.  QT is the preferred development platform, with hope for a mobile client.  More info plus discussion: [http://tabulacrypticum.wordpress.com/2010/03/14/qt-podcasting-conferencing-twitter/ Blog article]||Qt, audio, networking, APIs||Randall Arnold ([[User:texrat|texrat]])||Randall Arnold, [[User:thp|thp]] ||Expectation is that live and saved sessions would both be possible.  There has been concern that audio quality from a multi-sourced event would be poor, but I challenge developers to test that.  Otherwise a live option is not practical 
|-style=&quot;background:&quot;
|  || || ||  || ||
|}

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2010/Projects</title>
    <id>3539</id>
    <revision>
      <id>36938</id>
      <timestamp>2010-07-16T15:48:53Z</timestamp>
      <contributor>
        <username>dmj726</username>
        <id>3148</id>
      </contributor>
      <comment>/* Google Summer of Code 2010 */</comment>
      <text xml:space="preserve">== '''Google Summer of Code 2010''' ==

[[GSoC 2010/Project ideas|Project Ideas]]

{| class=&quot;wikitable&quot;
|-
! Project name
! Student
! Mentor
! Project summary
|-
| [[GSoC 2010/Projects/Porting Canola to Maemo5|Porting Canola to Maemo 5 and beyond]]
| Andrei Mirestean ([[User:andrei1089|andrei1089]])
| Eduardo Lima ([[User:etrunko|etrunko]])
| 
[http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/maemo/t127230760962 Link]
|-
| [[GSoC 2010/Projects/FaceBrick|FaceBrick - a facebook client for Maemo / the N900]]
| Kamilla Bremeraunet ([[User:Brik|brik]])
| Robin Burchell ([[User:W00t|w00t]])
| [http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/maemo/t127230761033 Link]
|-
| [[GSoC 2010/Projects/UPnP Remote Access|UPnP Remote Access]]
| Sunil Kumar Ghai ([[User:Skg|Skg]])
| zeeshan Ali
| [http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/maemo/t127230761271 Link]
|-
| [[GSoC 2010/Projects/the Tablet of Adventure|The Tablet of Adventure: a location-based social adventure]]
| Susanna Huhtanen
| Henri Bergius ([[User:bergie|bergie]])
| [http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/maemo/t127230761218 Link]
|-
| [[GSoC_2010/Projects/Extending Shepherd|Extending Shepherd]]
| Linus Wallgren ([[User:ecksun|ecksun]])
| Attila Csipa ([[User:achipa|achipa]])
|[http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/maemo/t127230761170 Link]
|-
| [[GSoC 2010/Projects/ebook reader for Maemo 5|eBook reader for Maemo 5]]
| Juhana Jauhiainen
| Valerio Valerio ([[User:Vdvsx|VDVsx]])
| [http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/maemo/t127230761250 Link]
|-
| [[GSoC 2010/Projects/Gtk+ Input Method for the MeegoTouch Input Method UI Framework|Gtk+ Input Method for the MeegoTouch Input Method UI Framework]]
| Javier De San Pedro Martin ([[User:Javispedro|javispedro]])
| mohammad dhani anwari
| [http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/maemo/t127230760820 Link]
|-
| [[GSoC 2010/Projects/transifex-mobile|Transifex mobile]]
| Lauri Võsandi ([[User:v6sa|v6sa]])
| Thomas Perl ([[User:Thp|Thp]])
| [http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/maemo/t127230760988 Link]
|-
| [[GSoC 2010/Projects/page-reader|Optical Page Reader for the N900]]
| David Jordan
| Florian Boor ([[User:Florian|Florian]])
| [http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/maemo/t127230761074 Link]
|-
| [[GSoC_2010/MeeGo Cloud Storage Integration|MeeGo Cloud Storage Integration]]
| Eli Foley
| Yan Li
|[http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/maemo/t127230761193 Link]
|-
|}

[[Category:Community]]
[[Category:Development]]
[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2010/Projects/Extending Shepherd</title>
    <id>4328</id>
    <revision>
      <id>41461</id>
      <timestamp>2011-01-27T11:10:26Z</timestamp>
      <contributor>
        <ip>85.225.133.69</ip>
      </contributor>
      <comment>/* Extending Shepherd - GSoC 2010 Project */ Fixed broken link</comment>
      <text xml:space="preserve">== Extending [[Shepherd]] - GSoC 2010 Project ==

*'''Student''': Linus Wallgren ([[User:ecksun|ecksun]]) , email: linus dot wallgren at gmail dot com
*'''Mentor''': Attila Csipa ([[User:achipa|achipa]])
*'''Project Status''': accepted, in development
*'''Repository''': 
** http://gitorious.org/~ecksun/shepherd/shepherd-plugins
*'''Status updates''':
**http://ecksun.com/blog/?tag=maemo

===Project summary===
[[Shepherd]] is an advanced scheduler that can do a wide variety of tasks depending on a number of triggers.

The project will aim to improve on the capabilities of Shepherd. I plan to add more ways of triggering an action and more actions to be taken when the triggers is meet.

===Progress===

I have planned to write a couple of plug-ins for shepherd as well as to get the core and GUI in working order.

{| class=&quot;wikitable&quot;
|-
! Name 
! Progress 
! Status
! Category 
! Description 
|-
|WLAN SSID
|95%
|Real life testing left
|Trigger
|Check if a WLAN SSID is nearby
|-
|Location
|80%
|Real life testing left. A gui is needed however the plan is to use the Qt Mobility  location packate for that, which is not yet released.
|Trigger
|Check if the device is in a certain location by using the GPS and Cellular towers
|-
|Calendar
|95%
|Real life testing left
|Trigger
|Check if certain events are happening
|-
|Change profile
|95%
|Real life testing left
|Action
|-
|Turn Radio on/off
|95%
|Real life testing left
|Action
| Turn both WLAN and 3G on/off
|-
|Change Telepathy status
|0%
|Have been unsuccessfull in implementing this, might be a bug in TelepathyQt4.
|Action
|-
|Secure device
|95%
|Real life testing left
|Action
|Lock the device in the same way as the menu option
|-
|Display a notification
|95%
|Real life testing left
|Action
|Display a notification
|-
|Sensors - accelerometer, ambient light sensor, orientation, proximity sensor, rotation sensor.
|95%
|Real life testing left.
|Triggers
|Several triggers involving the sensors
|-
|Sensors (several triggers) - compass, magnetometer, tap sensor
|90%
|Untested as I have no device with these sensors.
|Triggers
|Several triggers involving the sensors.
|-
|Core
|~50%
|
|Shepherd
|Finish the core
|-
|GUI
|5%
|
|Shepherd
|Finish the GUI
|-
|}

The part that is missing from most of the plug-ins is to adopt it to the shepherds current API, the actual functionality is already there.

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2010/Projects/FaceBrick</title>
    <id>4331</id>
    <revision>
      <id>36619</id>
      <timestamp>2010-07-11T22:31:24Z</timestamp>
      <contributor>
        <ip>80.213.182.59</ip>
      </contributor>
      <comment>New page: == FaceBrick - a facebook client for Maemo / the N900==   '''Student:''' Kamilla Bremeraunet ([[User:brik|brik]])  '''Mentor:''' Robin Burchell ([[User:w00t|w00t]])  '''Project status:''' ...</comment>
      <text xml:space="preserve">== FaceBrick - a facebook client for Maemo / the N900==


'''Student:''' Kamilla Bremeraunet ([[User:brik|brik]])

'''Mentor:''' Robin Burchell ([[User:w00t|w00t]])

'''Project status:''' in development

'''Repository:''' http://github.com/brik/facebrick/

'''Weekly updates:''' http://kbremeraunet.blogspot.com


'''Project summary:''' The aim of this project is to add more functionality to Facebrick: mainly a desktop widget and inbox.


== Progress: ==

'''Settings [done]'''

• Add settings for changing the font size and automatic update interval.


'''Desktop widget [80% done]'''

• Desktop widget showing new statuses, the desktop widget would differ from the existing widget with that it would be scrollable, and have a more typical maemo design. It would also be linked to the full client rather than to www.facebook .com 


'''Inbox [10% done]'''

• View, send and receive messages: Each way of sending and viewing messages from FaceBrick, FaceBrick would check for new messages every so often.


[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2010/Projects/Porting Canola to Maemo5</title>
    <id>4324</id>
    <revision>
      <id>37810</id>
      <timestamp>2010-08-16T12:56:52Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>/* Progress */</comment>
      <text xml:space="preserve">== Porting Canola to Maemo 5 - GSoC 2010 Project ==

*'''Student''': Andrei Mirestean ([[User:andrei1089|andrei1089]]) , email: andrei dot mirestean at gmail dot com
*'''Mentor''': Eduardo Lima ([[User:etrunko|etrunko]])
*'''Project Status''': accepted, in development
*'''Repository''': 
** http://code.openbossa.org/projects/canola/repos/andrei1089-clone
** http://code.openbossa.org/projects/python-terra/repos/andrei1089-clone

Status updates for the project can be found on the blog: http://andrei1089.blogspot.com

===Project summary===
The aim of this project is to port Canola to Maemo 5, fixing problems that it shows. Also change some of the underlying libraries to adequate better to Maemo 5 infrastructure/guidelines. Moreover the project aims to prepare Canola for Meego.

===Progress===

* solve segmentation fault bug '''(done)'''
** this bug was causing Canola to crash while accessing most views in the options menu (theme change, download folder change, slideshow options and possibly others)
** it was a really strange bug as it can be reproduced only on the N900, the same code is running ok on the old N8x0 tablets

* keyboard input bug '''(done)'''
** this bug affects all EFL application running on the N900. The window manager requires that WM_TAKE_FOCUS or InputHint to be set in order to receive keyboard events. This is solved in recent versions of the EFL libraries. Eduardo Lima ([[User:etrunko|etrunko]]), the maintainer of those libraries said that he is going to update the libraries in the following weeks. 

* integrate Canola with [http://trac.enlightenment.org/e/wiki/Ethumb Ethumb]'''(done)'''
** recent EFL libraries provide a fast module for thumbnails generation, so using Canola's own implementation ( [http://code.openbossa.org/projects/canola-thumbnailer Canola-thumbnailer]) doesn't make sense anymore

* create a new Maemo5 system '''(done)'''
** some of the APIs to retrieve system information (battery status, wireless signal strength, etc) have changed in Maemo5 so Canola was not showing accurate information. Also a new icon to show the strength of the GSM/3G signal has been introduced in the status area.

* integrate Canola with Internet Connection Manager '''(done)'''
** Canola was displaying the message &quot;Network is down&quot; whenever it required internet access and no connection was available. This behavior was changed, showing the standard internet connection chooser dialog.

* integrate Canola with Tracker '''(100% done)'''
** Canola was using its own library to search for media files ([http://maemo.org/packages/view/liblightmediascanner0/ Light media scanner]]). Maemo 5 is using Tracker to index files so it doesn't make sense to have another database just for Canola. Canola is now checking Tracker's availability and is requesting data about videos, music and photos using D-bus calls.

* replace etk widgets with Elementary '''(95% done)'''
** Etk was the old widget toolkit used by the EFL applications. It is now deprecated, it's place was taken by Elementary. The aim is to remove the etk dependency for Canola. Also some nice elementary widgets (slideshow for example) could be integrated in Canola if there is enough time

A snapshot of the work done in the first half of the coding period is planned. After the update of the EFL libraries in the Maemo repository, Canola will also be updated.

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2010/Projects/UPnP Remote Access</title>
    <id>4336</id>
    <revision>
      <id>38075</id>
      <timestamp>2010-08-25T11:53:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* UPnP Remote Access */ wikify link</comment>
      <text xml:space="preserve">== UPnP Remote Access ==

* '''Student''' : Sunil Ghai [[User:Skg|(Skg)]] email : (sunilkrghai@gmail.com)
* '''Mentor''' : Zeeshan Ali [http://maemo.org/profile/view/zeenix (zeenix)]
* '''Project Status''' : accepted, in development
* '''Repository''' : [http://gitorious.com/gmoya/ (http://gitorious.com/gmoya/)]

Status updates for the project : [http://sghai.blogspot.com/search/label/gsoc http://sghai.blogspot.com/search/label/gsoc]


'''Project Summary''' : UPnP facilitates service discovery in a single network but the reach has been limited to a local domain, the project is to bridge them over the Internet


'''Progress''' :  We decided to do it in Vala, so present implementation uses GUPnP and Libsoup Vala bindings to implement the following features : 

* maintaining the state of local UPnP devices using proxy devices and services, to manage queries from external network - ('''done''')
* HTTP proxy in Libsoup to route data coming from external networks to the right local device - ('''done''')
* a discovery mechanism allowing external UPnP control points to search the local network through HTTP - ('''done''')
* keys handling in X.509 certificates (in C)- ('''done''')

'''Next Tasks'''
* proper representation of a remote host 
* extending UPnP event mechanism
* X.509 certificates integration

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2010/Projects/ebook reader for Maemo 5</title>
    <id>4337</id>
    <revision>
      <id>37831</id>
      <timestamp>2010-08-16T16:29:47Z</timestamp>
      <contributor>
        <username>parasight</username>
        <id>3125</id>
      </contributor>
      <comment>/* Done */</comment>
      <text xml:space="preserve">__NOTOC__
== eBook Reader for Maemo 5 ==


'''Student:''' Juhana Jauhiainen ([[User:parasight|parasight]])

'''Mentor:''' Valerio Valerio ([[User:Vdvsx|Vdvsx]])

'''Project status:''' in development

'''Repository:''' http://gitorious.org/maemo-ebook-reader-gsoc-2010

'''Blog:''' http://juhanagsoc.wordpress.com


'''Project summary:''' The aim of this project is to develop a touchscreen optimized eBook reader for the N900.

== Progress ==

==== Done ====

*Support for epub-files
*Scrolling viewmode
*Page based viewmode
*Table of contents navigation
*Fullscreen mode
*Bookmarks
*Remember progress (page/scroll)
*Saving and loading books from database
*Invert colors mode
*Changing font
*Force backlight on while reading
*Autoscroll
*Annotations
*Book catalog (http://www.feedbooks.com)
**Searching and downloading books
*Page jumping
*Show position in book

==== To-Do ====

*Support anchors in TOC
*Search library
[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2010/Projects/page-reader</title>
    <id>4357</id>
    <revision>
      <id>36940</id>
      <timestamp>2010-07-16T16:20:57Z</timestamp>
      <contributor>
        <username>dmj726</username>
        <id>3148</id>
      </contributor>
      <text xml:space="preserve">So far, unpaper and tesseract are ported and I have managed to convert images taken by the camera to text and output them via scripts from the command line.  My current task is to get the image processing working correctly, so that the spoken text is more accurate.  

...gotta go hit the road...will update in half hour...

== Optical Page Reader for the N900 - GSoC 2010 Project ==

*'''Student''': David Jordan ([[User:dmj726|dmj726]])
*'''Mentor''': Florian Boor ([[User:florian|florian]])
*'''Project Status''': accepted, in development
*'''Repository''': 
** todo

Status updates for the project can be found on the blog: todo

===Project summary===

I plan to make an application for the Nokia n900 to allow blind and visually impaired people to read books, newspapers, magazines, signs, and other printed text on their own. The user simply opens the app and takes a picture of the document. The app then processes the image with an OCRFeeder-based backend and reads it aloud via text-to-speech software.

===Progress===

So far, unpaper and tesseract are ported and I have managed to convert images taken by the camera to text and output them via scripts from the command line.  My current task is to get the image processing working correctly, so that the spoken text is more accurate.  By the end of today, I should have this automated.

* porting except for ocrfeeder and two image processing steps - done
* ocrfeeder needs pygoocanvas, which compiles but needs packaging
* camera app is mostly there but needs a few tweaks.
* GUI prototype is done, but needs some experimentation with controls.

Filed application for garage project, but haven't gotten approval yet.

===To-do===
* Finish porting and packaging OCRFeeder.
* Automate image processing.
* Tie this to the GUI.

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2010/Projects/the Tablet of Adventure</title>
    <id>4327</id>
    <revision>
      <id>37436</id>
      <timestamp>2010-08-02T15:41:23Z</timestamp>
      <contributor>
        <username>bergie</username>
        <id>260</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">* '''student:''' Susanna Huhtanen
* '''mentor:''' Henri Bergius
* '''Project Status:''' accepted, in development
* '''Repository''': http://github.com/cannonerd/adventure_tablet
* '''Package''': http://maemo.org/packages/view/adventure-tablet/
* '''Homepage''': http://cannonerd.wordpress.com/the-tablet-of-adventure/

Status updates for the project can be found on [http://cannonerd.wordpress.com/ the blog]

==Project summary==

The Tablet of Adventure is a tool for generating and sharing location-based adventures with Maemo devices. The adventures may be manually created or follow the Geohashing &quot;automatic adventure generator&quot; concept as popularized by the xkcd comic (#426)

==Progress==

'''what works'''

* geohash algorithm
* distance between your location and destination
* osmgps map
* pointers for your location and destination location
* bearing
* selecting between adventures - added hardcoded Malmi adventure until custom adventures are supported
* a finish for a mission
* social features
* generate new Geohash at midnight
* custom adventures

'''what doesn't'''

* generate neighboring graticules Geohashes (i.e. Helsinki and Vantaa)

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2010/Projects/transifex-mobile</title>
    <id>4326</id>
    <revision>
      <id>41555</id>
      <timestamp>2011-02-01T16:50:53Z</timestamp>
      <contributor>
        <username>v6sa</username>
        <id>934</id>
      </contributor>
      <comment>/* Transifex mobile - GSoC 2010 Project */</comment>
      <text xml:space="preserve">== Transifex mobile - GSoC 2010 Project ==

*'''Student''': Lauri Võsandi ([[User:v6sa|v6sa]]) , email: lauri.vosand@gmail.com
*'''Mentor''': Thomas Perl ([[User:Thp|Thp]])
*'''Project Status''': accepted, in development
*'''Repository''': 
** http://gitorious.org/transifex-mobile
*'''Documentation''': [[GSoC_2010/Projects/transifex-mobile/manual|User manual]]

Status updates for the project can be found on the blog: http://lauri.vosandi.eu/blog/?cat=9

===Project summary===

This is Google Summer of Code 2010 project which attempts to implement a translation application including heavy integration with Transifex.net web service and offline working support.

===Done===
* Logging into Transifex, session management, CSRF tokens
* Browsing projects/components/files/languages
* Pulling PO-files, storing them locally, pushing PO-files back to server
* Editing PO-files (via polib), Google Translate, update PO-file metainfo
* Transifex file locking
* Qt4 models, views, threading, dialogs
* Better icons so they would fit in better with N900
* Clean up menus, for example &quot;Exit&quot; is unneccessary
* Better undo capabilities, at least allow reverting to original string once in string editor window
* Improve locking logic, for example &quot;Forget changes&quot; upon closing the file should unlock the file
* Show translation completeness (percentage in PO file list)
* Check internet connectivity
* Opening and saving local PO-files
* [[GSoC_2010/Projects/transifex-mobile/manual|User manual]]

===Fixed in Git===
* Add support for projects with multiple files for same language

===To-do===
* (High priority) Do caching properly so after pulling files user could edit them offline
* Add icon in Application manager
* Remove search dialogs and implement addressbook-like in place searching
* Better error checking: if locking fails, if file is not in utf8
* Pushing and locking in background
* Make Transifex interface pluggable so string-level API could be dropped in easily afterwards.
* Support for custom servers, not only transifex.net
* Show only languages user wants
* Allow setting default target language (skip language selection view)
* Add Help menu with link to user manual at wiki
[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2010/Projects/transifex-mobile/manual</title>
    <id>4399</id>
    <revision>
      <id>38510</id>
      <timestamp>2010-09-13T10:32:42Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">=Intro=
Transifex-Mobile is a mobile localization application linked to translations portal [http://www.transifex.net Transifex.net]. It's written in Python, on top of Qt4 user interface framework and it's currently available for Maemo devices. 
It's Google Summer of Code 2010 project and it's licensed under GPL license.

* It is an application to translate texts that appear in applications
* It is an application integrated with [http://www.transifex.net Transifex.net] service
* It is an application to edit [http://en.wikipedia.org/wiki/GNU_gettext GNU Gettext] catalogs, or PO-files for short
* It's not an application to translate documents 
* It's not an application to do automated translations

=Installation=
* Start Application manager
* Enable [http://wiki.maemo.org/Extras Maemo Extras] repository
* Tap on &quot;Download&quot;
* Tap on &quot;Development&quot;
* Tap on &quot;Transifex-mobile&quot; to install it
* Icon with title &quot;Transifex-Mobile&quot; should appear in the menu, use it to run the application

=Usage=
==Icon==
After installing the icon should appear in the menu, tap it to start the program

[[Image:Transifex-mobile-menu-item.png]]

==Dashboard==
The main screen mimics [http://www.transifex.net/ Transifex]'s
dashboard view. 

To browse and search for projects available at [http://www.transifex.net/ Transifex] server, tap on &quot;Browse projects...&quot;

Left-top button shows user's first and last name plus e-mail
address. Verify that those are correct before pushing any files 
back to server, otherwise your work might go uncredited. The metadata of translations stored in PO-files is updated based on this information.

The locked files are shown in the list, a locked file indicates a translation the user is working with. Once a file is locked, another user can't update the file at [http://www.transifex.net/ Transifex] server. Tapping one of the locked files, opens up string list view.

Editing local PO-files is also enabled although this is a feature for hardcore hackers, just tap on &quot;Open local file&quot; in the menu. To open up the menu, tap on the title bar.


[[Image:Transifex-mobile-dashboard.png]]

==Projects==
This view is shown once user taps &quot;Browse projects...&quot; button in previous view.

Browsing projects is rather straightforward, to search tap on &quot;Search&quot; in the menu. To open up the menu, tap on the title bar. 

Each project is made up of components and each component in return contains bunch of translations, or files to be more precise. Tapping on one of the items displays component list view. 

[[Image:Transifex-mobile-projects.png]]

==Files==
Each component in a project contains files, or translations to
be more abstract. &quot;Language&quot; column indicates the language of translation. &quot;Translations&quot; column shows progress for each file, the number triplet in braces indicates the number of translated, fuzzy and untranslated strings. &quot;Filename&quot; indicates the path of the translation file in the source code management system. Tapping on one of the rows opens up the strings list view.

[[Image:Transifex-mobile-files.png]]

==Strings==
Each file contains a set of strings. In the left-bottom corner
there are some buttons for filtering.

* Green - Include translated strings
* Blue - Include fuzzy strings
* Red - Include not translated strings
* Magnifying glass - Filter strings by content

Tapping on a string opens up string editor where the user can actually modify the translation

[[Image:Transifex-mobile-strings.png]]

==String editor==

String editor view provides all the things you need to translate
one string. With the buttons on the bottom user can do following:
* Previous string - Go to previous string in current translation file
* Next string - Go to next string in current translation file
* Revert - Revert back to original translation since last save
* Copy source string - Copies the content of left-hand box to right-hand box
* Automatic translation - Use Google Translate to translate the string (this overwrites any previous work in right-hand box!)
* Green flag - Mark translation as finished or translated
* Blue flag - Mark translation as semi-finished or fuzzy
* Red flag - Mark translation as not started or untranslated (this clears right-hand box!)

[[Image:Transifex-mobile-string-editor.png]]

==Push dialog==
Upon closing the string list view user is confronted with push dialog. Here user can select whether changes are to be pushed back to server, or to be forgotten. Remember to unlock the file once you have finished translating, otherwise other translators can't work on those files! If you're just saving your changes so they won't get lost, keep the file locked.

[[Image:Transifex-mobile-push-dialog.png]]

=Reporting bugs and problems=

You can report bugs in [http://talk.maemo.org/showthread.php?t=58520&amp; this Maemo Talk thread], please include debugging output.

==Acquiring debugging output==

To start Transifex-Mobile in debugging mode, fire up terminal and execute following command:

 /opt/transifex-mobile/main.py -d

==Other relevant data==

Transifex-Mobile configuration file is located at:

 ~/.config/transifex-client.json

Cached PO files are stored in:

 ~/.cache/transifex-mobile

[[Category:Documentation]]
[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2010/Proposal</title>
    <id>3735</id>
    <revision>
      <id>30923</id>
      <timestamp>2010-03-10T15:33:56Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <comment>/* Describe your organization. */</comment>
      <text xml:space="preserve">== Describe your organization. ==

The Maemo community is a open source community developing software around the Maemo platform. The Maemo community has over 32,000 registered members who contribute to more than 1200 development projects. We work with open source tools and processes. We develop new software on top of the platform as well as for the core platform itself. Applications developed with the Maemo SDK are used today by thousands of Maemo users around the world. The Maemo community is a well-organized group of people, including a Community Council (elected by community members every six months). The Maemo Community Council exists to represent the interests of the greater Maemo community other affiliated bodies.

== Why is your organization applying to participate in GSoC 2010? What do you hope to gain by participating? ==

The Maemo community is applying to participate in GSoC, because we think that GSoC can help our organization in several ways. We also have former GSoC students and mentors who are very enthusiastic about the program.

Aside from the benefits of participating in a program like GSoC, we have already improved by the action of applying: a lot of brainstorming has been accomplished and new ideas have arisen.. Still, we have many goals to achieve through our participation in GSoC. These are:

* Attract new people to the open source world.
* Bring new, talented developers to our community.
* Get help in some of our community projects.
* Meet new people and have fun during the summer.

Effectively, the Maemo community is applying as a &quot;umbrella&quot; organization: we will host projects that will most likely benefit many other embedded platforms &amp; environments that have nothing to do with Maemo itself.

== Did your organization participate in past GSoCs? If so, please summarize your involvement and the successes and challenges of your participation. ==

Yes, in 2007 and 2009.

We don't have much information about the 2007 participation, but we know that there were some positive and negative aspects involved with the experience. In 2007, we had some successful projects that greatly helped our organization. But, during the course of the program, we had student attrition, something that didn't occurred last year mostly due to the commitment and work of everyone involved.

Last year we had a very successful participation, that in our opinion was a very pleasant experience to everyone, we totally achieved our main objectives.

== If your organization has not previously participated in GSoC, have you applied in the past? If so, for what year(s)? ==

N/A

== If your organization participated in past GSoCs, please let us know the ratio of students passing to students allocated, e.g. 2006: 3/6 for 3 out of 6 students passed in 2006. ==

2007: 3/5

2009: 10/10

== What license(s) does your project use? ==

The majority of our projects are licensed under:

* GPL v2 or later
* LGPL v2 or later
* MIT license

== What is the URL for your ideas page? ==

The ideas page is located at: http://wiki.maemo.org/GSoC_2010/Project_ideas

Our organization main page for GSoC can be found here: http://wiki.maemo.org/GSoC_2010

== What is the main development mailing list for your organization? ==

The main Maemo development mailing list address is: maemo-developers@maemo.org

All Maemo community mailing lists can be found at: http://maemo.org/community/mailing-lists/

The main forum for discussing Maemo community-related topics is Talk: http://talk.maemo.org/

== What is the main IRC channel for your organization? ==

The main IRC channel for the Maemo community is #maemo @ freenode.

== Does your organization have an application template you would like to see students use? If so, please provide it now. ==

Yes.

Student Template:

* Project title 
* Project Abstract (short description, can be the same used above)
* Project full description
* Project tasks and deliverables
* Project schedule
* Do you have other commitments during the summer of code coding period ? If yes, what kind of commitments ?
* Why are you the right person for this project ?
* What are the benefits of your project for the Maemo Community ?
* Contact information (email/IM/IRC nickname)
* Short Biography (academic work, open source background and other activities that you like to do)

== Who will be your backup organization administrator? ==

*Luis Felipe Moraes

== What criteria did you use to select these individuals as mentors? Please be as specific as possible. ==

We begin by inviting people who had some GSoC experience. The majority of our mentors are formerly GSoC students and mentors. We think that previous GSoC experience is an important factor in the success of GSoC.

There are also some newcomers who show enthusiasm in GSoC. Due their proven track record within our organization, they can also become mentors.

Our backup mentors are Maemo community members who are very active and respected within the community. They also possess a proven track record in the open source world. A few of them even have some experience in GSoC.

All of our mentors are strongly motivated and will help our community reach our GSoC goals. We desire to provide a pleasant summer of code to the students that we host.

== What is your plan for dealing with disappearing students? ==

We hope to overcome this issue as much as possible during the students selection process. We will be careful in selecting students who have additional commitments during the GSoC coding period, We would like to avoid those situations where a student might be overloaded with work.

Additionally, we will require students to submit weekly reports to their mentors and assigned backup mentors. This will help to keep track of the students progress. We are also going to require bi-weekly submissions of status reports for all projects to the Maemo community mailing list. This way, we can monitor our students status at any time in order to avoid potential issues that may arise during the coding period.

Lastly, at the beginning of the GSoC coding period the students and their mentors will review and adapt their project schedules in order to assure that project scopes are realistic.

Besides the preventive measures described above, we will always try to keep our students motivated.

== What is your plan for dealing with disappearing mentors? ==

We are planning in such a way that every project has at least one &quot;backup&quot; mentor. This person will be involved in the project development. In the case of problems with the primary mentor, the backup mentor shall assist the student in order to accomplish the final goals of the project. The organization administration will also be in touch with the all of the mentors, so that we can prevent possible problems throughout the duration of the project.

== What steps will you take to encourage students to interact with your project's community before, during and after the program? ==

We will encourage all of the students to get involved in our mailing lists and IRC channels. Before the coding period begins, we will encourage students to brainstorm all of their ideas for possible projects with the community. This way, the students will have a better grasp of the kinds of projects that the community would like to see developed. This preliminary discussion will be very important for our overall organization of the GSoC coding period.

During the coding period the students must send bi-weekly updates to the Maemo community mailing list. This way, they can share their thoughts, problems, and decisions with the community. The community will also be able to offer possible solutions for anything that comes up.

When GSoC ends, we don't want to have students anymore. We want to have motivated Maemo community members. We would like to keep our members involved with the GSoC projects as well as other Maemo community projects.

== What will you do to ensure that your accepted students stick with the project after GSoC concludes? ==

The Maemo community is a very active and friendly community. During the GSoC coding period, our mentors will help to motivate the students. But our community will also be integral in helping to motivate, making suggestions, and overseeing the scope of each project. In effect, the students can feel a community reward: to be a part of the community. This community commitment will ensure more collaboration with our community aside from GSoC. We believe that the community reward and motivation is one of the key factors for any good and solid open source project.

== Is there anything else you would like to tell the Google Summer of Code program administration team? ==

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GSoC 2010/Students</title>
    <id>3541</id>
    <revision>
      <id>32194</id>
      <timestamp>2010-04-08T15:14:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify link</comment>
      <text xml:space="preserve">&lt;font color=&quot;#FF0000&quot;&gt;Important&lt;/font&gt;: Before reading this page make sure you have read all the [http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/faqs Google summer of code FAQs], in order to understand the program, and see if you are a eligible student.

==How to apply to a Maemo project==

You can apply to one of the [[GSoC 2010/Project ideas |ideas]] in the Maemo ideas pages, but you can also apply with your own ideas, in the last case you must discuss your ideas with some Maemo mentors or Maemo community members in order to evaluate if your ideas fits the Maemo Community goals.

We encourage the students to submit their own ideas of possible projects.

''Further information after the announcement of the mentoring organization accepted list.''

==Students expectations==

* Students are expected to work hard on their projects, like a full-time job, of course that the project schedule can be flexible at some times, where students have University assignments.
* The student are expected to be self-motivated. The mentors can help motivating the students, but if the student is not self-motivated to work, then the student probably won't get much out of participating in GSoC.
* The student should schedule time to work on the project each day following the schedule accorded with the mentor. It's not acceptable to fiddle around for days and then work over night just before deadlines.

==Benefits of GSoC for Students==

Apart from the money and the goodies that Google offer to students, the benefits of the program are huge:

* Chance to work with real &lt;i&gt;Rock Stars&lt;/i&gt; developers in projects that will be used around the world;
* The chance to become part of a global community, this can be lead to involvement in several project, social networks, make good friends around the world, and access to valuable resources;
* The student's project can be used for resume material for future employers;
* Summer of code is a really good thing to have on a CV.

==Application selection process==

All Maemo mentors and backup mentors will comment the students application, focusing in these aspects:

*The general project idea;
*What the project brings to Maemo;
*The scope of the project (will be used for a large user base or just a minority);
*The technical aspects of the project;
*The chances that the project have to be concluded during the GSoC period.

After the initial application reviews, a group of mentors will choose the best projects based in the comments made previously. Some mentors can ask for small coding assignments during the selection period, in order to choose the best students.

==Student resources==

*[http://code.google.com/p/google-summer-of-code/wiki/WikiStart GSoC knowledge base]
*[http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for GSoC Students]

==Student application template==

* Project title
* Project Abstract (short description)
* Project full description
* Project tasks and deliverables
* Project schedule
* Do you have other commitments during the summer of code coding period ? If yes, what kind of commitments ?
* Why are you the right person for this project ?
* What are the benefits of your project for the Maemo Community ?
* Contact information (email/IM/IRC nickname)
* Short Biography (academic work, open source background and other activities that you like to do) 

&lt;font color=&quot;#FF0000&quot;&gt;Note&lt;/font&gt;: You can/should add more informations, beyond the asked above.

==Contact us==

The Maemo community have several channels of interaction, the IRC channel, community mailing list and the Talk forum are the more active (see info bellow), if you have questions about some of our project ideas or the Maemo community in general, feel free to contact us.

==More Information about Maemo==

===Web pages ===

* [http://maemo.org/ maemo.org] - Maemo Community site;
* [[Main_Page|wiki]] - maemo.org wiki;
* [http://talk.maemo.org/ Talk Forum] - Discussion forum for all Maemo related stuff.

=== Mailing Lists ===

[[community mailing lists|Mailing lists]] are a great way to communicate with the Maemo Community.
The mailing lists are archived and the archives are a rich source of information regarding prior discussions and decisions. Bellow you will find some advices regarding mailing lists etiquette:

* Search through the archives for answers before asking on the list;
* Be courteous at all times;
* Be specific, cite data and references, use links when discussing technical stuff;
* Be patient, don't expect an answer within minutes or hours, people often read their mailing-list messages once per day.
* Avoid being rude;
* Avoid writing with all capital letters and excessive punctuation;

===IRC===

The friendly Maemo Community can be found on '''[[IRC|#maemo@freenode]]'''

==Student FAQs==

If you have some questions regarding the Maemo organization, you can ask those questions in the maemo mailing lists, the questions will be copied to this page in order to help other students with the same questions.

[[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>GUI Design Template</title>
    <id>2422</id>
    <revision>
      <id>48665</id>
      <timestamp>2012-06-30T19:33:59Z</timestamp>
      <contributor>
        <ip>88.193.158.39</ip>
      </contributor>
      <comment>Undoing an accident or a vandalism</comment>
      <text xml:space="preserve">The purpose of the [[Open development/Maemo roadmap/Fremantle|Maemo 5]] GUI Design template is to facilitate creation of high-fidelity image mockups. This does not replace sketching on a notebook, but rather speeds up the pixel perfecting work, when making product presentations or when pitching a product to investors.

Currently the GUI Design template is available in Photoshop format that has a fairly comprehensive library of assets – all fully editable.

This document is supported by the [http://www.forum.nokia.com/info/sw.nokia.com/id/e778ba1f-2507-4672-be45-798359a3aea7/Fremantle_Master_Layout_Guide.html Fremantle Master Layout Guide] and [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] for visual guidance and references, as well as by the [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] for interaction and technical background information.

[[Image:Maemo_5_GUI_0_9-thumbnail.png|Maemo 5 GUI Design template]]

&lt;br&gt;

= Downloads =
* '''[https://garage.maemo.org/frs/download.php/6646/Maemo_5_GUI_0_9.zip Maemo 5 GUI Design Template v0.9]'''

* preliminary '''[https://garage.maemo.org/frs/download.php/6984/Maemo_5_GUI_0_9-GIMP.zip GIMP conversion]''' of the Maemo 5 GUI Design Template v0.9

&lt;br&gt;

= References =
* [https://garage.maemo.org/projects/guitemplate/ Maemo 5 GUI Template project]
* [http://www.buildtutorial.com N900 Tutorials]
&lt;br&gt;

[[Category:N900]]
[[Category:Design]]</text>
    </revision>
  </page>
  <page>
    <title>Game development</title>
    <id>205</id>
    <revision>
      <id>34231</id>
      <timestamp>2010-05-11T10:42:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* SDL specific notes */ tidy</comment>
      <text xml:space="preserve">This page contains tips on game development and SDL library usage for internet tablets.

==Useful Tips==

===Hardware notes===

* Internet tablets use a touchscreen, which enables new ways to implement game-features, such as on-screen buttons, in-game drawing, moving * character by tapping screen. etc.
* Since the device does not have any buttons on right side, implement those in software!
* Avoid using the 4 way rocker for fast and complex movements. It's not well suited for gaming.
* When using screen's vertical orientation (as in tetris) think other use for esc button than exiting game. It's so close to the rocker that accidental presses will happen.

===SDL specific notes===

Things to remember:
* The screen is natively 800x480 pixels. No resolution changes are supported. Maybe in the future we might have support for 400x240 res for faster graphics but this is quite unlikely. If trying to set a fullscreen window that is smaller than the native screen size, you will just have black borders.
* In windowed mode, matchbox will force the window to certain size (you should look at the UI specifications to see the actual window size). If your requested window is smaller than this, your window will be aligned to the upper-left and have black borders on the lower-right. Generally, SDL windows (not fullscreen) look quite bad with the theme, if nothing for the theme is done inside the SDL window, but it's up to you to decide.
* Avoid full 800x480 screen updates. Memory bandwidth is limited. If you still have to do these for some reason, you should make the area smaller (for example, having some statusbar or any GUI elements which doesn't need to be updated each time). Also do not use &lt;code&gt;SDL_Flip()&lt;/code&gt;, since it will update the whole screen. Use rect updating functions instead. Thank you.
* 32 bit mode doesn't work. The reason was that there was a bug that caused SDL to segfault when you had 32 bit window and you recreated the window. Since the display is only 16 bit, there is no reason to support 32 bit mode, which would just give an extra round of pixel conversion and therefore slow things down. Convert your images on loading to native 16-bit with SDL.
* Mouse events. There is touchscreen, and you cannot assume that an average end user would hack the device to give USB host mode and use the USB mouse. So, use absolute coordinates as much as possible. One example where relative coordinates are used is scummvm. If you use the keypad to move the cursor, and then use the touchscreen, the actuall cursor will be at offset from original touchpadpress. Think absolutely, not relatively ;)

===Adding support for the Task Navigator===

====Create an entry in the task list====

The Maemo Task Navigator identifies non-Maemo programs (like pure SDL applications) by matching the &lt;code&gt;StartupWMClass&lt;/code&gt;-variable in the &lt;code&gt;.desktop&lt;/code&gt;-file and the application &quot;window manager class&quot; name. By default all SDL applications have the name &lt;code&gt;SDL_App&lt;/code&gt;. This can be changed with the environment variable &lt;code&gt;SDL_VIDEO_X11_WMCLASS&lt;/code&gt;.

Here app.desktop is the desktop file, with:

&lt;pre&gt;
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=The Application
Exec=/var/lib/install/usr/bin/app
Icon=app
X-Window-Icon=tn-bookmarks-link
X-Osso-Type=application/x-executable
StartupWMClass=app
Terminal=false
&lt;/pre&gt;

* Alternative 1: Here &lt;code&gt;app.bin&lt;/code&gt; is the binary executable and &lt;code&gt;app&lt;/code&gt; is a wrapper script:

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
BASENAME=`basename $0`
export SDL_VIDEO_X11_WMCLASS=${BASENAME}
exec ${0}.bin &quot;$@&quot; 
&lt;/source&gt;

Notice that &lt;code&gt;StartupWMClass == SDL_VIDEO_X11_WMCLASS&lt;/code&gt;, and that &lt;code&gt;Exec&lt;/code&gt; points to the wrapper script, not the main program.

* Alternative 2: An other possibility that doesn't need a script is the following. Put the line

&lt;source lang=&quot;c&quot;&gt;
putenv(&quot;SDL_VIDEO_X11_WMCLASS=app&quot;);
&lt;/source&gt;

in your code. A good position is directly at the beginning of the &lt;code&gt;main&lt;/code&gt; method. This way there is no need for a helper script.

====Set the window title====

If you see &quot;unknown&quot; title in task list (OS2008 bug/feature), you can set it by using:

&lt;source lang=&quot;c&quot;&gt;
#include &lt;SDL/SDL_syswm.h&gt;
#include &lt;X11/Xutil.h&gt;
 
SDL_SysWMinfo info;
SDL_VERSION(&amp;info.version);
if ( SDL_GetWMInfo(&amp;info) ) {
  Display *dpy = info.info.x11.display;
  Window win;

  if (Video.FullScreen)
    win = info.info.x11.fswindow;
  else
    win = info.info.x11.wmwindow;
  if (dpy &amp;&amp; win) XStoreName(dpy, win, &quot;Title&quot;);
}
&lt;/source&gt;

Alternatively you can try to set title for both windows no matter if fullscreen or not. This seems to work and saves you setting the title again after fullscreen switch.

&lt;source lang=&quot;c&quot;&gt;
  Display *dpy = info.info.x11.display;
  Window win;
  if (dpy){
    win = info.info.x11.fswindow;
    if (win) XStoreName(dpy, win, &quot;Title&quot;);
    win = info.info.x11.wmwindow;
    if (win) XStoreName(dpy, win, &quot;Title&quot;);
  }
&lt;/source&gt;

If &lt;code&gt;SDL_WM_SetCaption&lt;/code&gt; is present in the code, add the code above after that call. Or, just remove &lt;code&gt;SDL_WM_SetCaption&lt;/code&gt; as the code above will set the window title and the icon for the window is handled by hildon-desktop using the Icon field in your desktop file.

If you wish for text to appear in the task navigator on the second line corresponding to your game; make &quot;Title&quot; be: &quot;'text to display on first line' - 'text to display on second line'&quot;. The &quot; - &quot; (with spaces) are important.

===Utilizing pixel doubling inside SDL===

As there is support for pixel-doubled drawing to the screen inside the HW, there is implementations to utilize that up to X. So if you want to use it you have to do some xlib code, therefore it might be a good idea to put this small piece of code to switch pixel doubling mode to a separate file.

'''NOTE:''' There is no Xsp scaling on [[Nokia N900|N900]] anymore. You might want to use Hildon Animation Actor to scale the pixmap. Either with [http://git.maemo.org/git/sdlhildon/?p=sdlhildon;a=tree;f=sdlhaa SDL_haa] or [[Documentation/Maemo_5_Developer_Guide/Porting_Software/Scaling_Fixed_Size_Windows|directly]].

====What is pixel doubling?====

Pixel doubling is a feature of the Xsp extension of the tablet's X server. When enabled, all draws to the display are doubled in size with a smoothing filter. This reduces required bandwidth for screen updates by a factor of 4, making full-motion fullscreen animation possible. This also allows lower-quality graphics to be drawn to portions of the screen (for example a low-res game area and a high-res status bar).

====Pixel doubling problems and workarounds====

* Be aware that Xsp pixel doubling feature was designed for scaling video-player videos (drawn by dsp, not X) and is not officially supported.
* Don't update areas which would exceed doubled coordinates 400x240.
* If possible, disable doubling when not drawing, because if another process draws to screen (like infoprints) while the Xsp doubling is active, results can be quite &quot;artistic&quot;.
* If mouse pointer is enabled, it will break pixel doubling. Disable it before turning on doubling with SDL_ShowCursor(0);.
* Many SDL games that draw several small updaterects will break Xsp pixel doubling, causing flicker. This has been discussed at length on the maemo-developer list without a resolution. If pixel doubling is causing areas to flicker, change the code from individual updated rectangles for sprites to one updaterect for your entire game screen, for example region (0,0,320,240).
* If your game crashes or exits before disabling pixel doubling, it will be left on until some application switches it off. This means that you will have 'artistic desktop' or a white screen or reboot. This can be avoided by reacting to SDL active events, if somebody else gets active status, immediately switch doubling off.

====Howto use it====

There exists one X extension (Xsp), which can be used for that. Sample piece of code with SDL:

&lt;source lang=&quot;c&quot;&gt;
#include &lt;X11/Xlib.h&gt;
#include &lt;X11/extensions/Xsp.h&gt;

#include &lt;SDL/SDL.h&gt;
#include &lt;SDL/SDL_syswm.h&gt;


void set_doubling(unsigned char enable)
{
  SDL_SysWMinfo wminfo;
  SDL_VERSION(&amp;wminfo.version);
  SDL_GetWMInfo(&amp;wminfo);
  XSPSetPixelDoubling(wminfo.info.x11.display, 0, enable);
}
&lt;/source&gt;

Note that when you compile it you have to include X include path and link this with libXsp (-lXsp).

==External Links==

* [http://www.libsdl.org/ Simple DirectMedia Layer Homepage]
* [http://www.gamedev.net/ Game Development Resources]

[[Category:Development]]
[[Category:Games]]</text>
    </revision>
  </page>
  <page>
    <title>Games</title>
    <id>3026</id>
    <revision>
      <id>45415</id>
      <timestamp>2011-09-26T16:14:38Z</timestamp>
      <contributor>
        <ip>90.181.95.68</ip>
      </contributor>
      <comment>Undo revision 45169 by [[Special:Contributions/210.48.147.2|210.48.147.2]] ([[User talk:210.48.147.2|Talk]])</comment>
      <text xml:space="preserve">[[Image:SNES.jpg]]

The [[Nokia N900|N900]] makes a great gaming device. It has TV out, accelerometers, and hardware support for 3D graphics.

[http://www.youtube.com/watch?v=zBzUNe5ov_o&amp;feature=player_embedded Video] showing what can be done with 3D and TV out 

There is a range of options to get games on your device.

==Native Games and  Games Publishers==

The N900 supports SDL and hardware accelerated 3D [[OpenGL-ES|OpenGL ES]], allowing it to run many Linux games.  Several are available in the [[Open development/Maemo roadmap/Fremantle|Maemo 5]] [[extras]] repository.

* [http://talk.maemo.org/showthread.php?t=34559 3d graphics engines]
* [http://maemo.org/downloads/Maemo5/games/?org_openpsa_qbpager_org_openpsa_products_product_dba_page=1 Maemo 5 Downloads]
* [http://maemo.org/downloads/OS2008/games/?org_openpsa_qbpager_org_openpsa_products_product_dba_page=1 OS2008 games] - most of these games should be [[:wikipedia:Porting|portable]] to the N900
* [[Chess]] - there are a variety of chess games available, including:
** [[Miniature]] - a networked, community-developed chess program, designed for Maemo - coming soon
* [http://talk.maemo.org/showthread.php?t=31658 Quake3]
* [[uqm|The Ur-Quan Masters (Starcontrol 2)]]
* [[Starcraft]]

===Rovio===

[http://www.rovio.com/ Rovio] have ported the following games to the N900:

* Bounce Evolution
* Angry Birds. The Community have also created [http://talk.maemo.org/showthread.php?t=42999&amp;highlight=angry+birds custom level] editor for this great game

Both are available from the Ovi store
[http://store.ovi.com/publisher/RovioMobile/ Ovi Rovio Games]

===SIO2 Interactive===

SIO2 Interactive  have ported their Open Source 3D engine to the N900, and have released a number of games.

[http://talk.maemo.org/showthread.php?t=43202 SIO2 Games Thread]

===Secret Exit===

Secret Exit will be releasing a number of games for N900

[http://talk.maemo.org/showthread.php?t=42412&amp;highlight=zeemote Secret Exit Game Thread]

== Palm WebOS games ==

[[Image:PreenvSS-1.jpg]]

{{main|Preenv}}

==Flash Games==

As the N900 supports Flash 9 and has a hardware keyboard, many Flash games should just work. [http://talk.maemo.org/showthread.php?t=34472&amp;highlight=flash+games Read more about the options].

==Emulators==

There are [http://talk.maemo.org/showthread.php?t=34526 many emulators] of older game consoles available for Maemo.

* Game boy colour - [http://maemo.org/downloads/product/Maemo5/vgb/ Vgb]
* Game boy advance - [http://maemo.org/downloads/product/Maemo5/vgba/ Vgba], [[GpSP]]
* Nintendo DS - [http://maemo.org/packages/view/desmume DeSmuME]
* Nintendo Entertainment System - [http://maemo.org/downloads/product/Maemo5/ines/ iNES]
* Nintendo SNES - [http://maemo.org/downloads/product/OS2008/drnoksnes/ DrNokSnes] - (See [[Games#WiiMote_as_Gamepad.2FRemote|Use WiiMote as Gamepad]])
* Nintendo N64 - [[Mupen64+]]
* Old PC (x86, DOS) - [http://maemo.org/packages/view/dosbox/ DOSBox]
* Sega Master System and GameGear - [http://maemo.org/downloads/product/Maemo5/mg/ Mastergear]
* Sega Genesis/Megadrive/Sega CD - [http://maemo.org/packages/view/picodrive/ PicoDrive]
* [http://maemo.org/packages/view/scummvm/ ScummVM]
* NeoGeo - [http://maemo.org/packages/view/gngeo/ gngeo], [http://maemo.org/packages/view/gngeo-gui/ gngeo-gui], [http://talk.maemo.org/showthread.php?t=72574&amp;highlight=gngeo gngeo-gui howto]
* Amiga - [http://maemo.org/downloads/product/Maemo5/uae4all/ UAE4All]
* C64, VIC20 - [http://maemo.org/packages/view/vice VICE]

Other console emulators are not working 100% yet, but are available for the adventurous:

* GemRB - [http://maemo.org/packages/view/gemrb/ GemRB N900]
* Frodo C64 - [http://talk.maemo.org/showthread.php...ighlight=Frodo Needs porting from 770 to N900]
* [[Mame|SDLMAME]] - MAME emulator
* [http://koti.mbnet.fi/tammat/hatari/index.shtml Hatari] - Atari ST(e)/TT/Falcon emu 
* Playstation - [http://talk.maemo.org/showthread.php?t=47227 PCSX-m], [http://talk.maemo.org/showthread.php?t=47904 PSX4All], [http://maemo.org/packages/view/psx4m/ PSX4M], [http://maemo.org/packages/view/pcsx-rearmed/ PCSX Rearmed]
* Sega Saturn - [http://talk.maemo.org/showthread.php?t=75992 Yabause]
* Amiga - [http://maemo.org/packages/view/e-uae/ E-UAE], [http://maemo.org/packages/view/uae/ UAE], [http://maemo.org/packages/view/uade UADE]

Some other terminal emulators exist for Linux, but do not work on Maemo:

* Exult - [http://talk.maemo.org/showthread.php?t=5978 The engine for some of the Ultima series has been run on previous versions of maemo]

==Game Controllers and Peripherals==

===WiiMote as Gamepad/Remote===

{{main|Wii remote}}

* [http://talk.maemo.org/showthread.php?t=43050 Wiimote] - Use your wiimote to play games! WiiMote can also be used GLOBALLY with your N900
* Configure WiiMote as Gamepad for Dr. NokSnes: http://talk.maemo.org/showthread.php?p=506339
[http://www.youtube.com/watch?v=E0wbLaMXeu4 Video Here]

===Play-station Six Axis Controller===

The Six axis Controller now works on the N900

* [http://talk.maemo.org/showthread.php?t=41693 Thread Here]
* [http://tomasz.sterna.tv/2010/02/play-games-on-nokia-n900-with-ps3-sixaxis-controller/ Instructions Here]
* [http://talk.maemo.org/showpost.php?p=517534&amp;postcount=220 Alternate Windows Instructions Here]
* [http://www.youtube.com/watch?v=tON2gO72b1U Video Here]
* [http://www.youtube.com/user/OzN900 More Videos Here]

===Wii Balance Board===

[http://www.youtube.com/watch?v=9lMtDv-khKQ  N900 and Wii Balance Board Video]

===Zeemote===

[http://talk.maemo.org/showthread.php?t=51209 Connect one or more Zeemote Joysticks to the N900 using ZeeControl]

===Game Gripper===

[http://www.home.game-gripper.com/ The Game Gripper is a slip-on gamepad accessory for the N900.]

== Frequently asked questions ==

===Will N900 play games from big companies?===

Nokia has publicly stated that they are fully committed to creating a proper channel for Premium content publishers to sell their content in a protected form via their Ovi Store. [http://talk.maemo.org/showthread.php?t=34783]

As for what we have now, well from what Ive researched there are vast repositories of games, both old and some semi new where one can get games for the N900. The very nature of the device is such that the onus is upon the user to do the necessary research to find what will work. 

There are numerous emulators where you can play thousands of old games for the NES, Gameboy, GBA, etc.

As for DOS Games, it is yet to be seen if we can expect full compatibility, but rest assured, someone, somewhere is working on it.

Being that it is such a new device, and has yet to achieve anywhere near market penetration, the number of developers working on is still relatively small. 

Maemo is a developers dream but give it 6 months before you have precompiled, easy to use games…

My two cents for now. You have the full internet in your pocket! Isn’t that enough?

===What if I want a game that is not yet available?===

See above (where do I get software from)

===All my previous phones have run Java games: why can’t I play them on N900?===

{{wikify|1=http://talk.maemo.org/showthread.php?t=37405}}

Java is currently available for the N900 but requires some manual installation.

[[Category:Software]]
[[Category:N900]]
[[Category:Games]]</text>
    </revision>
  </page>
  <page>
    <title>General precautions</title>
    <id>2746</id>
    <revision>
      <id>33042</id>
      <timestamp>2010-04-19T12:13:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>tidy</comment>
      <text xml:space="preserve">The point of this article is to give guidelines how to avoid tablet &quot;reflashing&quot; (see definition below). Yes, Maemo has command line access and everybody can gain superuser priviledges easily. With great power comes great responsibility. The base system can of course be installed again, aka &quot;reflashed&quot;. If you are interested in reflashing and want to know more, please read the article on [[updating the firmware]]


== How to stay safe ==

Staying on the safe side is rather easy. Install only signed software with the Application Manager, and do not open the command line application (xterm). 

X Term should only be opened if you know what you are/intend to do. 

'''DO NOT EXPERIMENT IN XTERM! READ UP ON WHAT YOU ARE DOING IF YOU HAVE THE SLIGHTEST DOUBTS IN YOUR ABILITIES.'''

You can find more info about xterm in the [[Terminal]] article.

== Take backups ==

'''Always keep valuable data in at least two places! This cannot be emphasized enough!'''

== The Don'ts -- what to avoid ==

Xterm:
*Gaining [[root access]]
*Copy-pasting commands from internet to command line
*Installing untrusted .debs

Application manager:
*Enabling the [[extras-testing]] repository.
*Enabling the [[extras-devel]] repository.
*Installing non-optified applications. (This issue is temporary but still valid)

== If something has already occurred ==

You should start with article [[Troubleshooting]] and see how the situation can be saved.

== I want to do something anyway ==

Then you should see [[Installing unstable applications]] -article.

== I think I messed things badly ==

[[Updating the firmware]] is a good option. Pretty quick and clears all possible things that can be messed.


[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>Gentoo/N900</title>
    <id>5208</id>
    <revision>
      <id>48320</id>
      <timestamp>2012-06-11T01:21:32Z</timestamp>
      <contributor>
        <username>luke-jr</username>
        <id>3167</id>
      </contributor>
      <comment>/* Modern kernel */</comment>
      <text xml:space="preserve">This is the official page for the unofficial port of Gentoo to N900 internet tablets.

If you have any questions/troubles, you can find me on freenode [irc://chat.freenode.net/maemo #maemo] and [irc://chat.freenode.net/gentoo-embededded #gentoo-embedded] ([http://webchat.freenode.net/?channels=%23Maemo,%23Gentoo-Embedded webchat]).

'''Bootable with X, WiFi, SMS, and GPRS'''

== Overview / Todo list ==
* &lt;s&gt;Main display&lt;/s&gt;
* Battery charger daemon (or kernel integration)
* &lt;s&gt;Keyboard (X11)&lt;/s&gt;
* &lt;s&gt;GPRS/UMTS data connections&lt;/s&gt;
** &lt;s&gt;Integrated with Gentoo network subsystems&lt;/s&gt;
* &lt;s&gt;SMS&lt;/s&gt;
* Audio output (NOT SAFE: see highpass filter)
* Voice calls
** Cellular
** Ring/vibrate
** SIP
** XMPP
* &lt;s&gt;Front camera&lt;/s&gt;
** Camera button
** Autofocus
* Usable GUI
** Razor-qt?
** KDE Plasma Active?
* Video calls (webcam)
** Skype support?
* Flashlight (SAFETY RESTRICTIONS NEEDED)
* GPS (gpsd driver)
** Road navigation
** Dead reckoning w/ accelerometers?
** [http://talk.maemo.org/showthread.php?t=72497 Cellular]
* [https://gitorious.org/community-ssu/maemo-tvout-control/trees/master/src TV out]
* FM transmitter
* Keyboard (console)
* Bluetooth
** Headset
** GPS
** ??
* Infrared transmitter
* 3D acceleration
* FM receiver

== Installation ==

=== Partitioning ===

If you use the internal memory card, be sure to leave your Maemo partitions in the same partition order as before (unless you don't want to run Maemo anymore, of course)

'''Unless you're super-careful doing this, you will probably lose all the data on the partitions you change. Backup!'''

First, dump your current partition layout:
 sfdisk -d /dev/mmcblk0 &gt; ptable
Now, edit the ptable file with your favourite editor and load the modified one:
 sfdisk --no-reread /dev/mmcblk0 &lt; ptable

Here is how I partitioned my internal SSD:
 unit: sectors
 /dev/mmcblk0p1 : start=       64, size=  4194304, Id= c
 /dev/mmcblk0p2 : start= 56631360, size=  4194304, Id=83
 /dev/mmcblk0p3 : start= 60825664, size=  1572864, Id=82
 /dev/mmcblk0p4 : start=  4194368, size= 52436992, Id= 5
 /dev/mmcblk0p5 : start=  4194384, size= 20971568, Id=83
 /dev/mmcblk0p6 : start= 25165968, size= 31465392, Id=83&lt;/blockquote&gt;

If you're more conforable with standard Linux fdisk, [https://garage.maemo.org/plugins/wiki/index.php?RepartitionInstructions&amp;id=1382&amp;type=g supposedly] [http://archive.debian.org/debian/pool/main/u/util-linux/util-linux_2.13.1.1-1_armel.deb the deb from Debian Lenny] works.
See the [http://www.gentoo.org/doc/en/handbook/handbook-arm.xml?part=1&amp;chap=4#doc_chap3 official Gentoo handbook] if you need help using fdisk to edit your partition table.

===Creating Filesystems===

Since you are installing on a SSD that may very well queue its writes out of order, ext3 and other journaling filesystems designed for magnetic/write-in-order drives are generally a bad idea and may be very dangerous to use.
If you're using an old kernel, such as the original Fremantle kernel, you'll have to stick to ext2. If you are using a recent &quot;power&quot; kernel (or modern kernel), you can use ext4 without journal support.

I recommend making swap on an external MicroSD so when you destroy it, it can be replaced (unlike the internal one).

===Mounting===

Due to Maemo using the FHS /media for other partitions, I chose to use it for the Gentoo mount too. You can use Gentoo's standard /mnt here if you want, I think.

 mount -t ext2 /dev/mmcblk0p5 /mnt/gentoo

===Installing Gentoo===

Be sure your system clock is correct before proceeding. Weird things happen when it's not.

Download [http://distfiles.gentoo.org/releases/arm/autobuilds/current-stage3-armv7a_hardfp/ the latest armv7a_hardfp stage3 from Gentoo], or, if you want to run the softfp ABI (still hardware-accelerated) for some reason (like better binary compatibility with Maemo), you can use [http://distfiles.gentoo.org/releases/arm/autobuilds/current-stage3-armv7a/ the armv7a stage3]. Note that I only run hardfp, so can't support problems specific to the softfp ABI and don't provide prebuilt binary packages for it.

Just in case, download the .DIGESTS file too, and verify your download with:
 sha1sum -c *.DIGEST

Now, proceed to unpack the stage3:
 cd /media/gentoo
 tar xvjpf stage3-*.tar.bz2

Configure your compile options (/media/gentoo/etc/make.conf) next.

Recommended (only safe to use unmodified for hardfp ABI!):
 CHOST=&quot;armv7a-hardfloat-linux-gnueabi&quot;
 CFLAGS=&quot;-O2 -pipe -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=hard&quot;
 CXXFLAGS=&quot;${CFLAGS}&quot;
 ASFLAGS=&quot;-mcpu=cortex-a8 -mfpu=neon -mfloat-abi=hard&quot;
 
 # Distcc is a good idea, if you [http://www.gentoo.org/doc/en/cross-compiling-distcc.xml setup a cross-compiler on another Gentoo system]
 FEATURES=&quot;${FEATURES} distcc&quot;
 # MAKEOPTS -jN should probably be the number of systems in your distcc array; but never more than 2 when building KDE software (meinproc uses a lot of memory and won't be distributed)!
 MAKEOPTS=&quot;-j2&quot;
 
 # Since the N900 doesn't have a lot of RAM, you'll probably need to sacrifice some CPU time to minimize memory usage
 LDFLAGS=&quot;${LDFLAGS} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads&quot;
 CFLAGS=&quot;${CFLAGS} --param ggc-min-expand=0 --param ggc-min-heapsize=32768&quot;
 
 PORTAGE_NICENESS=&quot;10&quot;
 PORTAGE_IONICE_COMMAND=&quot;ionice -c 3 -p \${PID}&quot;
 
 PORTAGE_BINHOST=&quot;http://luke.dashjr.org/programs/gentoo-n900/packages/hardfp/gcc45/&quot;
 EMERGE_DEFAULT_OPTS=&quot;--getbinpkg y&quot;

===Chroot===
 cp -L /etc/resolv.conf etc/
 mount -t proc proc proc
 mount -o bind /dev dev
 mount -t devpts devpts dev/pts
 env -i chroot . /bin/bash
 env-update
 source /etc/profile
 export PS1=&quot;(chroot) $PS1&quot;

===Install and configure the Portage tree, with N900 overlay===
 emerge --sync --quiet
 USE='-* git' emerge layman
 layman -a n900
 rm /etc/make.profile
 ln -s /var/lib/layman/n900/profiles/default/linux/arm/10.0/n900/ /etc/make.profile

===Configure timezone===
 ls /usr/share/zoneinfo
 cp /usr/share/zoneinfo/UTC /etc/localtime
 echo &quot;UTC&quot; &gt; /etc/timezone


==Booting==

===Configuring your kernel===
If you just want to use your Maemo kernel, simply copy /lib/modules/* from your Maemo partition into Gentoo (you'll need to exit the chroot first).

However, if you want to build one yourself (required for any custom kernel modules, or non-X11 console), follow these steps:
 emerge fremantle-power-sources  # regular fremantle-sources is also available
 cd /usr/src/linux
 make menuconfig
 # (configure the kernel as you like here)
 make &amp;&amp; make modules_install
 # (copy arch/arm/boot/zImage to your host system to flash as the N900's kernel)

Note that this kernel will not boot Maemo without setting up the modules on the Maemo partition. I believe this is as simple as copying the directory and running depmod on that side, but I'll have to review it before I'm sure.

You can skip the compiling (but you still need to install the sources!) if you want, by using [http://luke.dashjr.org/programs/gentoo-n900/kernels/ one of my prebuilt kernels].

===Configuring your system etc===
The following steps from Gentoo's official handbook are just fine here:
* [http://www.gentoo.org/doc/en/handbook/handbook-arm.xml?part=1&amp;chap=8 Configuring your System]
* [http://www.gentoo.org/doc/en/handbook/handbook-arm.xml?part=1&amp;chap=9 Installing Necessary System Tools]

===Installing N900-required stuff===
The n900-env metapackage should pull in all the essentials for your N900.
If you don't want some N900 functionality, you can change your USE flags in make.conf prior to installing it.

{| class=&quot;wikitable&quot;
! USE flag !! Description
|-
| bluetooth || BlueZ and Bluetooth firmware
|-
| cellular or gps || Ofono
|-
| nokia-osso-linux || Maemo &quot;bootmenu&quot; compatibility
|-
| v4l || Camera firmware
|-
| wifi || Wifi firmware and tools
|-
| X || X11 drivers
|}

 emerge n900-env

==X11 setup==
Create /etc/X11/xorg.conf with the following:
 Section &quot;Device&quot;
     Identifier &quot;Configured Video Device&quot;
     Driver &quot;omapfb&quot;
     Option &quot;fb&quot; &quot;/dev/fb0&quot;
 EndSection
 
 Section &quot;InputClass&quot;
     Identifier &quot;calibration&quot;
     MatchProduct &quot;TSC2005 touchscreen&quot;
     Option &quot;Calibration&quot; &quot;194 3901 3739 241&quot;
 EndSection
 
 Section &quot;InputClass&quot;
     Identifier  &quot;keyboard&quot;
     MatchProduct    &quot;omap_twl4030keypad&quot;
 
     Option &quot;XkbOptions&quot; &quot;grp:ctrl_shift_toggle&quot;
     Option &quot;XkbLayout&quot; &quot;nokia_vndr/rx-51(common)+nokia_vndr/rx-51(us)&quot;
     Option &quot;XkbModel&quot; &quot;nokia&quot;
 EndSection
 
 Section &quot;InputClass&quot;
     Identifier &quot;touchscreen&quot;
     MatchProduct &quot;TSC2005 touchscreen&quot;
 
     Driver &quot;tslib&quot;
     Option &quot;EmulateRightButton&quot;    &quot;1&quot;
 EndSection

==Sound setup==

This basically &quot;just works&quot;, but be careful when unmuting - it's possible to play audio that destroys the internal speakers! If you're experienced in writing highpass filters, please contact me to help resolve this.

==Cellular setup==

=== Install Ofono ===
 emerge net-misc/ofono

===Configure GPRS networking===
 ln -s net.lo /etc/init.d/net.gprs0
Edit /etc/conf.d/net:
 rc_need_gprs0='ofono'
 modem_gprs0='n9000'  # The extra zero is the n900 instance number 0 :)
 context_apn_gprs0='epc-scpcf000.t-mobile.com'  # Other providers need other APNs!
 context_protocol_gprs0='ipv6'

Start the GPRS interface:
 /etc/init.d/net.gprs0 start

=== Send SMS ===
 ofono-send-sms n9000 15555551212 'Hey there!'

=== Voice call ===
 ofono-dial-number n9000 15555551212

Note the other end will probably get silence, and you won't hear them either.
I'm working on an ALSA plugin to fix this.

== WiFi setup ==

 ln -s net.lo /etc/init.d/net.wlan0
Edit /etc/conf.d/net:
 mac_wlan0='00:1f:df:xx:xx:xx'  # You MUST set this, or N900's wlan MAC won't be initialized!
 preferred_aps='my_wep_network my_public_network linksys etc'
 key_my_wep_network='abcd-ef00-1234-5678-9abc-def0-12'
 modules=&quot;!wpa_supplicant&quot;

Start the wlan interface:
 /etc/init.d/net.wlan0 start

==Bluetooth setup==

It's on my todo list, but not very high priority since I don't really use anything Bluetooth...

==GPS setup==

I've reverse engineered the cellmo GPS protocols, and written [http://luke.dashjr.org/tmp/code/gps3.c a NMEA proxy] that mostly works with gpsd. When I get to properly integrating GPS support, I plan to write an actual gpsd driver so a proxy isn't needed.

==Known issues==
===Webkit linking memory usage===
WebKit requires an absurd amount of memory to link. I build binary packages inside qemu when it needs to be bumped. I suggest you use them.

==Modern kernel==
Current status: http://elinux.org/N900</text>
    </revision>
  </page>
  <page>
    <title>Geocaching</title>
    <id>2228</id>
    <revision>
      <id>35038</id>
      <timestamp>2010-05-28T10:05:22Z</timestamp>
      <contributor>
        <ip>89.247.172.25</ip>
      </contributor>
      <comment>/* Geocaching with Maemo Mapper and GPXView */</comment>
      <text xml:space="preserve">'''Geocaching''' is an outdoor activity in which the participants use a Global Positioning System (GPS) receiver or other navigational techniques to hide and seek containers (called &quot;geocaches&quot; or &quot;caches&quot;) anywhere in the world. Maemo devices make perfect companion for the cache hunting.

== Software ==
Maemo Mapper and GPXView are software to use for Geocaching on Maemo devices. You can install these with Application manager.

If you have the Nokia N900, you can use [http://danielfett.de/internet-und-opensource,software,agtl-on-maemo-n900 Advanced Geocaching Tool for Linux]. It integrates all features needed for ''offline'' geocaching. It doesn't require a premium membership.


== Geocaching with AGTL ==
[[Image:agtl-geocaching.png|thumb|left|300px|The GPS view.]]
=== Installation ===
AGTL is currently in [[Extras-devel]] but will eventually be promoted to [[Extras]].

Select '''Browse installable applications''' on Application manager and install  '''advancedcaching''' (or '''Advanced Geocaching Tool for Linux''').

=== First Steps ===
==== Setup user account ====
If you don't have geocaching.com user account yet, get a free membership at [http://www.geocaching.com]. 

After starting the application, enter your geocaching.com user data by opening the main (application) menu and clicking on '''options'''. 

[[Image:agtl-overview.png|thumb|left|300px|The map view.]]
==== Maps ====
Then you can return to the main (map) view and wait for the openstreetmaps to be loaded. If you want different maps, open the application menu and select a different map style. Please note that on darker map backgrounds, the geocache markers may be hard to see.

All openstreetmaps tiles are cached offline, so there's no need for an internet connection when you are on the tour. Make sure to zoom in as needed to download all necessary tiles.

[[Image:agtl-details.png|thumb|left|300px|All details for a geocache.]]
==== Downloading Geocaches ====
AGTL uses a two step procedure to download geocaches. First, you have to obtain an overview of the available geocaches in the selected map area. Select an area of interest (not too big and not too small) and select &quot;Download Overview&quot; in the application menu. AGTL will download all available geocaches in the area. To save bandwith, it will only get their positions, types and titles. 

[[Image:agtl-coords.png|thumb|left|300px|The incredibly cool coordinate calculation feature.]]
==== Selecting Geocaches ====
Select a geocache by clicking on it on the map. The details view will open and show you the available data for the geocache. 

If it sounds interesting, open the menu and select &quot;Download Details&quot; to see the full description etc.

==== Coordinate Management ====
In the &quot;coords&quot; tab, you can see up to three types of coordinates:

1. The main waypoint of the geocache is always shown. If there are additional waypoints available, they are shown in the list as well. 

2. If you selected a multi stage geocache, AGTL may have detected additional waypoints which require input in the description. This is what such a waypoint can look like: &quot;N30 12.(A+3)(B-1)E  W6 (A+B*C).DDD&quot;. If this is the case, the &quot;calc&quot; tab appears right next to the &quot;coords&quot; tab. You can complete the waypoints by entering the necessary information (e.g. A=3, B=1 and so on). All waypoints, for which sufficient input is available, will be shown in the list of coordinates as well.

3. Finally, you can add a waypoint on your own. To do so, just type it in the &quot;notes&quot; tab (in a format that AGTL recognizes) or click the &quot;Add Waypoint&quot; button in the &quot;notes&quot; tab. 

If you have solved a mystery cache, you can have a visual clue of the final waypoint on the map by selecting the coordinate and clicking &quot;Set as main waypoint&quot;. 


&lt;br style=&quot;clear:both&quot; /&gt;
== Geocaching with Maemo Mapper and GPXView ==

Further information can also be found in the [http://gpxview.garage.maemo.org GPXView manual page].

=== Installation === 

Extras repository must be enabled to install needed software. To enable Extras repository, just open [https://garage.maemo.org/extras-assistant/install/extras.install this link] on your tablet.

Or you can enable it by hand:
*  Go into the Application manager.
*  Tap the menu -&gt; Tools -&gt; Application catalog...
*  Double-tap maemo Extras.
*  Uncheck Disabled.

Next select '''Browse installable applications''' on Application manager and install '''gpxview''' and '''maemo-mapper''' (if you are located in Finland install also '''maemo-mapper-topomaps-fi''').

=== Obtaining Geocache data ===

Geocache location files can be found on many websites e.g:
  http://www.geocaching.com
  http://www.geocaching.com.au
  http://www.opencaching.de

You can import geocache location files (*.GPX, *.LOC ) found on these pages to GPXView. Sites may require registering before files can be downloaded.

Generally *.GPX files contains more detailed information of the caches than *.LOC files. Downloading *.GPX files from www.geocaching.com requires subscription (currently 30$ per year) but *.LOC files can be downloaded freely after registering. Download some caches near you location and transfer them to your Maemo device.

=== Importing files to GPXView ===

Open GPXView and select '''Import''' -&gt; '''File'' to import one file and '''Directory''' to import all supported files from one directory.

[[Image:Import.png|thumb|400px|]]

After that geocaches should be visible on GPXViews main screen. For more information how to use GPXView program look help from main menu.

[[Image:MainView.png|thumb|400px|]]

=== Export POIs to Maemo Mapper ===

When you have some caches in your GPXView main screen you can export location of those caches to the Maemo Mapper as a POI data. This makes it easier to get general overview of the cache area. To export caches as Maemo Mapper POI select '''Export''' -&gt; '''Maemo Mapper POI''' from the GPXViews menu.

[[Image:ExportPOI.png|thumb|400px|]]

You can take exported POI database in use by starting Maemo Mapper and selecting GPXViews POI-file in '''Settings''' -&gt; '''POI''' -&gt; '''POI database''' from Maemo Mappers menu.

[[Image:POIDatabase.png|thumb|400px|]]

=== Maemo Mapper Maps ===

By default Maemo Mapper uses maps from Open Street Map project. Maemo Mapper can use other map sources also which might suit better for geocashing. For example here in Finland it's possible to use maps from the National Land Survey (Maanmittauslaitos) by installing '''maemo-mapper-topomaps-fi''' package.

It's recommend to download maps with some different zoom levels before you go looking for them. Recommended zoom levels for cache hunting goes from level 4 to level 6 depending how accurate and detailed maps are. Higher zoom levels are also good for general overview. You can find more information about how to use Maemo Mapper from [http://talk.maemo.org Maemo Talk] discussions or from programs help section. 

=== Heading to the Cache ===

When you have some caches loaded in GPXView and you have also some maps in Memo Mapper it's time to start your first cache hunt. It's recommend to start with caches which difficulty is one star. If you have *.GPX files you can configure GPXView to show difficulty and terrain in cache list view.

 [[Image:CacheList.png|thumb|400px|]]

Same information can be also seen in '''Main''' tab on cache view for GPX files. See help file for more information about the GPXView configuration.

 [[Image:CacheMainView.png|thumb|400px|]]

*  First thing to do is to check cache description either from the website or if you are using GPX files from GPXViews '''Desc.''' tab. Usually there are very helpful hints and it might be impossible to found cache if you don't read it.

 [[Image:CacheDesc.png|thumb|400px|]]
 
*  Next thing to do is to go outside and start GPS receiver. If you are using device with integrated GPS receiver you only need to select '''Enable GPS''' from Maemo Mappers '''GPS'' menu and for GPXView you need to select '''Enable GPS''' in settings view. If you are using external Bluetooth GPS receiver you should configure it from the Control Panel (Main Menu -&gt; Settings -&gt; Control Panel -&gt; GPS location).
*  When GPS shows your position it's time to go as close as possible to cache location. You can use both Maemo Mapper and GPXView to get there. In GPXView select '''Goto''' tab.

 [[Image:CacheGoto.png|thumb|400px|]]

 On Maemo Mapper just use map to get over correct POI icon.

 [[Image:MaemoMapperView.png|thumb|400px|]]

=== Locating the Cache ===

When Maemo Mapper shows that you are over cache icon and GPXViews goto tab tells that you are on correct coordinates it's time to start looking for cache box. Cache box is normally put some place where it's very difficult to find by accident. It can be under rock, hanging in the tree or in urban areas also some magnetic cache box are used. 

If it seems to impossible to locate cache box you should check cache information once more and see if there are some additional hints attached to it. Hints are encrypted by default so your need to use '''Decrypt''' button to see actual hint. GPXView has '''Hint''' tab which can be seen for GPX files which include additional hints. Cache logs can be also very useful so you should read also them. If you can't find the cache don't worry, also most experienced geocaching veterans fail to found some caches in first try. Try some other caches and come back some other day. Every now and then some Mugglers destroy some caches so check cache logs later to see if some other people have found it after you first visit. 

When you manage to found cache box open it carefully and put your name or nickname to the log book. You should remember to put cache box carefully on same place it was and check that it is properly closed.

Now go to GPXView and select '''Notes''' tab and mark cache '''Found'''. You can also write some comments here if you want.

[[Image:NotesView.png|thumb|400px|]]

=== Logging your find (www.geocaching.com) ===

If you are connected to internet you can log your find directly from Maemo device. Just go to '''Logs''' tab and press '''Post a new log entry for this geocache'''. This opens a web browser and you can write you log entry.

[[Image:NewLog.png|thumb|400px|]]


[[Category:GPS]]
[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>Get your app tested</title>
    <id>4334</id>
    <revision>
      <id>36842</id>
      <timestamp>2010-07-15T09:07:50Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <text xml:space="preserve">This is a list of template requests for developers for attaching to talk.maemo.org threads etc.

This suggests people who likes the software to spend some time and test it properly and vote it to extras.

 If you like the software, please spare some time for learning how package testing works at http://wiki.maemo.org/Help_testing_software 
 If application passes every point required in http://wiki.maemo.org/Extras-testing/QA_Checklist , give it thumbs up!

 Feel free to support my work by testing the application in order to get it to Extras -repository. Further information: http://wiki.maemo.org/Help_testing_software

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Getbootstate</title>
    <id>4915</id>
    <revision>
      <id>45734</id>
      <timestamp>2011-11-16T22:13:08Z</timestamp>
      <contributor>
        <username>pali</username>
        <id>2764</id>
      </contributor>
      <text xml:space="preserve">Reverse enginnered code of Fremanle getbootstate (binary application found on Nokia N900) based on open source Meego version of getbootstate with informations is here:
http://talk.maemo.org/showthread.php?t=73792</text>
    </revision>
  </page>
  <page>
    <title>Getting Started</title>
    <id>1457</id>
    <revision>
      <id>21032</id>
      <timestamp>2009-10-26T09:25:01Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <comment>Redirecting to [[Maemo training material/Getting Started]]</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo training material/Getting Started]]</text>
    </revision>
  </page>
  <page>
    <title>Getting album art for the Media Player</title>
    <id>3533</id>
    <revision>
      <id>28497</id>
      <timestamp>2010-02-06T17:42:03Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Getting album art for the Media Player]] moved to [[Showing album art in the Media Player]]</comment>
      <text xml:space="preserve">#REDIRECT [[Showing album art in the Media Player]]</text>
    </revision>
  </page>
  <page>
    <title>Getting involved</title>
    <id>1189</id>
    <revision>
      <id>40300</id>
      <timestamp>2010-11-25T08:43:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>revert vandalism: Undo revision 40143 by [[Special:Contributions/202.86.21.186|202.86.21.186]] ([[User talk:202.86.21.186|Talk]])</comment>
      <text xml:space="preserve">The Maemo community is an active one, and there are lots of areas to get involved and help out. This is an overview of a few of those areas and how to get involved. As you will get more involved, you will see your [[karma]] level rise, and your name will climb the [http://maemo.org/profile/list Maemo community karma list].

== maemo.org ==

There are many ways to get involved with maemo.org and its development.

=== maemo.org content ===

Once you create a [http://maemo.org/profile Maemo profile] you will be able to add comments to your favourite products and rate them, you will be able to favourite or bury [http://planet.maemo.org blog posts] and [http://maemo.org/news maemo.org news items], and you will be able to edit pages in [[Main Page | the wiki]]. There is a dedicated page with tips on [[writing maemo.org content]], including how to get access to various resources.

=== Bugzilla ===

[http://bugs.maemo.org/ Bugzilla] is maemo.org's bug tracker. The [[Bugsquad]] is the place to go to get involved there. They're always looking for people to help out triaging incoming bugs, and keeping tabs on existing ones.

=== Brainstorm ===

[http://maemo.org/community/brainstorm/ Brainstorm] is where proposals for enhancements, new features, new applications etc can be put to the community for discussion.  All community members can post their ideas here, and developers are encouraged to look for ones they could help out with.  For more information on the Brainstorm process see [[Brainstorm|Brainstorm Intro]].

=== Wiki ===

The wiki is always in need of more help and the [[Wiki gardeners]] is an excellent place to start if you're looking for areas to help out. If you're not looking for too much structure, you'll likely find small typos and grammatical errors to fix while browsing around. New articles are always highly appreciated!

=== API documentation ===

Most of [http://maemo.org/development/sdks/maemo_5_api_documentation/ Maemo's API documentation] is available in source format along with the source code. Most of the source code for Maemo-specific components is available via [http://maemo.gitorious.org Gitorious].

For example, the [http://maemo.org/api_refs/5.0/5.0-final/libhildondesktop/ libhildondesktop] API documentation is generated using [http://library.gnome.org/devel/gtk-doc-manual/stable/documenting_symbols.html.en_GB gtk-doc] from comments in the source code, which is [http://maemo.gitorious.org/fremantle-hildon-desktop/libhildondesktop available via Gitorious].

To get a copy of the source code, clone the Gitorious module, and make changes to the relevant comments in the source code - for example, the symbol [http://maemo.org/api_refs/5.0/5.0-final/libhildondesktop/HDHomePluginItem.html#hd-home-plugin-item-heartbeat-signal-add hd-home-plugin-item-heartbeat-signal-add] is documented (at the time of writing) between line 564 and line 585 in the file [http://maemo.gitorious.org/fremantle-hildon-desktop/libhildondesktop/blobs/master/libhildondesktop/hd-home-plugin-item.c hd-home-plugin-item.c].

To propose a change to API documentation, submit your proposed change as a patch (in the diff -u format) to a relevant bug in [http://bugs.maemo.org Bugzilla], and if your change is accepted, it will be applied.

Other modules use [http://www.doxygen.org Doxygen] to document APIs rather than gtk-doc - aside from the tool and the mark-up used in the documentation, the rest of the process remains the same.
===  Forums ===

[http://talk.maemo.org/ talk.maemo.org], as well as the [http://maemo.org/community/maemo-users/ maemo.org users forum] is a great place to get help and hang out with fellow Maemo users. German-language readers may want to read [http://www.maemousers.de/ maemousers.de].

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Getting media content onto your tablet</title>
    <id>91</id>
    <revision>
      <id>46994</id>
      <timestamp>2012-03-17T22:12:12Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <comment>Remove irrelevant link that only refers to Lumia phones</comment>
      <text xml:space="preserve">==USB Mass storage ==
One way is to simply attach your PC to your Maemo device using the out-of-the-box USB cable. This will mount the storage of your device as a drive on your computer, if automount is enabled. You can now simply copy your files from your PC to the Maemo device.

=== Sync music on Linux ===
The following will allow the [[Nokia N900|N900]] to be recognized as a media player appearing in the list of devices in Banshee and Rhythmbox for instance.

Create an .is_audio_player file on the device with the following content:

&lt;pre&gt;
#
# .is_audio_player Configuration File for Rhythmbox 
#
# # works fine with my N900. 
# # lives in 
# # /home/user/MyDocs/.is_audio_player #n900 mounted
# # /media/Nokia\ N900/.is_audio_player #mounted on linux pc
# 
#
# Which folders should we look for audio content? 
# give a comma seperated list.
audio_folders=./music,./alben,./hoerbuch,./freemusic
#
folder_depth=3
#
#
# the following tells rhythmbox which formats can be read by the media player. 
# Rhythmbox supports drag&amp;drop to copy tracks or albums to the mp3 player.
# If the file format of a file you want to copy is not in the following list, the first of these options is the one that the file will be converted to.
# If you copy (drag&amp;drop) files to the media player rhythmbox will start copying or if necessary converting files in the background, silently, so don't be surprised, if you were expecting any kind of progressbar or something.
output_formats=application/ogg,audio/mpeg,audio/mp3
#
# These options specify where Rhythmbox or banshee(?) will look for playlists
playlist_format=audio/x-mpegurl
playlist_path=./music/
#
&lt;/pre&gt;

Could the maemo media player have an option to configure this file? or rhythmbox get a dialogue to configure mediaplayers?

==Using microSDHC cards==
Another way is to use the microSDHC (N900) or miniSD (N810) slot of your device together with a fitting memory card and a card reader on your PC. Simply swap the card between your devices and copy the content.

==Using SD Cards with the N810==
One common criticism of the N810 is its lack of SD card slot (instead, it features a mini and micro-SD card slot). Using the N810 as an SD card reader is, for some, quite desirable (digital cameras often use SD cards only, never the smaller kind).

Here is how I was able to get my N810 to read and write to an SD card:

# Setup [[USB_host_mode|USB host mode]]. This will allow the n810 to accept external USB devices
# Purchase a USB SD card reader. This will allow the n810 to read from the SD card using USB, as it lacks the ability to read normal sized SD cards. Likely, the cheaper and simpler, the better.
# Find the USB to micro-USB that came with your n810. This will let us turn the micro-USB plug on the n810 into a normal USB plug
# Purchase a USB gender changer (A Female To A Female). The card reader can only be plugged ''into'' a USB port. Similarly, the micro-USB cable we have can only be plugged ''into'' a USB port. Therefore, they aren't compatible and won't connect. This device let's us plug both cables into the gender changer, thereby connecting them together.
# Find an SD card for testing purposes.

With the hardware supplies found, first make sure the USB host mode software is installed. Restart as necessary. Plug the micro-USB cable into the n810 and then into the gender changer. Insert the SD card into the card reader. Connect the SD card reader into the other end of the gender changer. The n810 should detect the device and mount it automatically. You should be able to browse through the files and use it as normal. I tested reading from the SD card and I successfully wrote some video files to the SD card (and then later opened them on a laptop). Things seemed to work fine.

===Why Does it Work?===
The n810 does ''not'' provide a fully powered USB port. Normally, a powered hub is required to use external USB devices while operating the n810 in host mode. Powered hubs relatively bulky, especially if traveling. The n810 can only power USB devices which draw less than than 100mA. According to one source&lt;ref&gt;http://discussion.treocentral.com/accessories/42140-sd-card-power-consumption.html&lt;/ref&gt; SD cards use 40mA (although some websites mention higher numbers). Even with the SD card reader, the n810 should be able to power the SD card reader without any issues. To be extra safe, you should still test your setup (connectors, card reader, SD card, etc) with some dummy files that you don't mind using. Verify that it works before you plan to use your SD card reader on the go and always backup your data.

==UPnP Media Server==
Universal Plug and Play is a set of protocol for device inter-communication, sharing data in your home network - for details see [[:wikipedia:UPnP|wikipedia article on UPnP]].

[http://en.wikipedia.org/wiki/UPnP#UPnP_AV_MediaServers UPnP Media Servers] can be used to share your media content (music/video/pictures) with your tablet. All you need on your tablet is an UPnP capable application like the default media player (on N900) or a 3rd party player such as [https://maemo.org/downloads/product/OS2007/mediastreamer/ Media Streamer] or [https://maemo.org/downloads/product/OS2007/canola/ Canola] on older devices (N810, N800).

To set up your own UPnP Media Server I one recommends to take a closer look at [http://fuppes.ulrich-voelkel.de/ FUPPES] - short Free UPnP Entertainment Service, because it's free and platform indepentent. It's available for Unix (Linux/BSD/MacOS X) and Windows. Other servers that have been used are MediaTomb, uShare and Orb [(see forum thread) http://talk.maemo.org/showthread.php?t=51562]. Transcoding of video streams from the host helps your tablet in smoother playback of more video formats, but eats processing power from your host computer.

...to be continued soon

==Further Information==
* [http://maemo.org/downloads/product/PC/tablet-encode/ Tablet Encode]

[[Category:Media]]
[[Category:HowTo]]

[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>Getting started with Harmattan Python</title>
    <id>5056</id>
    <revision>
      <id>45835</id>
      <timestamp>2011-11-24T17:50:09Z</timestamp>
      <contributor>
        <username>wmoreira</username>
        <id>4818</id>
      </contributor>
      <comment>[[Getting started with Harmattan Python]] moved to [[Python/Harmattan/Getting started with Harmattan Python]]</comment>
      <text xml:space="preserve">#REDIRECT [[Python/Harmattan/Getting started with Harmattan Python]]</text>
    </revision>
  </page>
  <page>
    <title>Getting started with Maemo Garage</title>
    <id>623</id>
    <revision>
      <id>46591</id>
      <timestamp>2012-02-11T13:35:37Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 46579 by [[Special:Contributions/125.62.193.58|125.62.193.58]] ([[User talk:125.62.193.58|Talk]]) vandalism</comment>
      <text xml:space="preserve">See [[Task:Using_garage.maemo.org]]

== About Garage ==

Garage is a software hosting platform for Maemo-related projects.

=== Services provided by Garage ===

* Website hosting
* Bugtracker
** Also includes a patch tracker, support tracker and feature request tracker
* Subversion hosting ([[Git_For_Garage|Git]] available [[Git_For_Garage#Requesting Git for your Garage project |on request]])
** Web-based repository browsing
* Project file hosting (binary and source release archives)
** Ability to track number of downloads

== Creating a Garage project ==

=== Registering a Garage account ===

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].

=== Registering a project ===

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's home page].

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;!-- this list is unhelpful and should be removed, or moved to a sub-page (amigadave) --&gt;
==== Project purpose and summary ====

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.

==== License ====

Your project must have an open source license. Some suitable licenses are [http://opensource.org/licenses/category listed by the Open Source Initiative].

==== Project Public Description ====

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.

==== Project Unix Name ====

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 &lt;nowiki&gt;https://garage.maemo.org/projects/unixprojectname&lt;/nowiki&gt;, where ''unixprojectname'' is replaced with the selected name.

== Working with Subversion ==

{{main|Subversion}}
&lt;!-- More to come --&gt;

== Creating a website ==

To use Garage’s website hosting, a &lt;code&gt;www&lt;/code&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 &lt;code&gt;index.html&lt;/code&gt;, and be placed in the &lt;code&gt;www&lt;/code&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 [http://lists.maemo.org/pipermail/maemo-developers/2009-March/018717.html delay of upto 20 minutes]. A project website can be accessed from the project information page.

== Trackers and tasks ==

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].

== Making releases ==

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.

== External resources ==

* [http://gforge.org/ gForge] the project hosting software used by Garage
* [http://svnbook.red-bean.com/ Version control with Subversion book] a free online Subversion book, also available in print
* [http://tortoisesvn.tigris.org/ TortoiseSVN] a Windows SVN client
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Getting started with Maemo Garage</title>
    <id>623</id>
    <revision>
      <id>46591</id>
      <timestamp>2012-02-11T13:35:37Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 46579 by [[Special:Contributions/125.62.193.58|125.62.193.58]] ([[User talk:125.62.193.58|Talk]]) vandalism</comment>
      <text xml:space="preserve">See [[Task:Using_garage.maemo.org]]

== About Garage ==

Garage is a software hosting platform for Maemo-related projects.

=== Services provided by Garage ===

* Website hosting
* Bugtracker
** Also includes a patch tracker, support tracker and feature request tracker
* Subversion hosting ([[Git_For_Garage|Git]] available [[Git_For_Garage#Requesting Git for your Garage project |on request]])
** Web-based repository browsing
* Project file hosting (binary and source release archives)
** Ability to track number of downloads

== Creating a Garage project ==

=== Registering a Garage account ===

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].

=== Registering a project ===

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's home page].

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;!-- this list is unhelpful and should be removed, or moved to a sub-page (amigadave) --&gt;
==== Project purpose and summary ====

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.

==== License ====

Your project must have an open source license. Some suitable licenses are [http://opensource.org/licenses/category listed by the Open Source Initiative].

==== Project Public Description ====

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.

==== Project Unix Name ====

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 &lt;nowiki&gt;https://garage.maemo.org/projects/unixprojectname&lt;/nowiki&gt;, where ''unixprojectname'' is replaced with the selected name.

== Working with Subversion ==

{{main|Subversion}}
&lt;!-- More to come --&gt;

== Creating a website ==

To use Garage’s website hosting, a &lt;code&gt;www&lt;/code&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 &lt;code&gt;index.html&lt;/code&gt;, and be placed in the &lt;code&gt;www&lt;/code&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 [http://lists.maemo.org/pipermail/maemo-developers/2009-March/018717.html delay of upto 20 minutes]. A project website can be accessed from the project information page.

== Trackers and tasks ==

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].

== Making releases ==

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.

== External resources ==

* [http://gforge.org/ gForge] the project hosting software used by Garage
* [http://svnbook.red-bean.com/ Version control with Subversion book] a free online Subversion book, also available in print
* [http://tortoisesvn.tigris.org/ TortoiseSVN] a Windows SVN client
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Git For Garage</title>
    <id>1361</id>
    <revision>
      <id>46029</id>
      <timestamp>2011-12-15T06:28:22Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45999 by [[Special:Contributions/114.79.28.10|114.79.28.10]] ([[User talk:114.79.28.10|Talk]]) vandalism/spam</comment>
      <text xml:space="preserve">[http://git-scm.com/ Git] is available as an alternative version control system to [[Subversion]] for [[Getting started with Maemo Garage|Garage]] projects.

== Requesting Git for your Garage project ==

=== New Projects ===

When you start a new project at garage you can select &quot;git&quot; to be the default version control system. At the bottom of the request form you can pick between &quot;svn&quot; and &quot;git&quot;. Your new project will automatically have a &quot;git&quot; repository.

=== Old Project Can Request Conversion ===

This feature has not been advertized, but it is possible to convert an existing subversion repository to a &quot;git&quot; repo. All you need to do is to go to the &quot;Admin&quot; page of your project's SCM section and click the &quot;Convert to git repository&quot; button.

Your request will be scheduled and you can monitor the progress through a link that will be shown to you as soon as you hit the button.

The conversion works the best (tm) with svn repositories that have &quot;standard layout&quot;. Standard layout means that the root of the subversion repo has:

-trunk

-branches

-tags

Branches and tags will be converted to proper git branches, while trunk will be the master branch.

If your project has a 'www' directory in its root, then it is also supposed to be converted.

Conversion also works for repositories that do not have the standard layout. However this features was just recently introduced, so bugs might surface.

If the conversion was OK, then your subversion repo will be disabled, meaning that no further can commits can go into it. However it will remain safe on our servers and if you remember the URL than you can even read it. 

If you are unhappy with the result of the conversion then please request to restore it. We will revert your svn repository just like it was at the time of your conversion request. 

If the conversion FAILED, then the system will not do any changes to your project settings and your svn repo remains usable.

In case you have questions, feedback or experience problems please report them through bugzilla, or just send an email to &quot;garage at maemo dot org&quot;.

== Garage-specific information ==

Git on Garage uses the https access method via cURL (most Git installations use Git over ssh, and this is currently under development for Garage). This may cause problems due to the security certificate on https://vcs.maemo.org, so if you experience any issues with 'git clone' or 'git push' please try to set the &lt;code&gt;GIT_SSL_NO_VERIFY&lt;/code&gt; environment variable to 1, for example:
 export GIT_SSL_NO_VERIFY=1
in a terminal on Linux using bash.

For proxy users, the &lt;code&gt;https_proxy&lt;/code&gt; environment variable must be set, for example:
 export https_proxy=&quot;172.21.112.250:8080&quot;

To authenticate, make sure you have filled in your Garage credentials to ~/.netrc, for example:
 machine vcs.maemo.org
 login __garage user name__
 password __garage password__

== Additional info ==

The information on the Garage SCM page for Git projects seems incorrect or incomplete. If you want to push you will need to specify:

&lt;code&gt;&lt;nowiki&gt;https://&lt;garage username&gt;@vcs.maemo.org/git/&lt;project name&gt;&lt;/nowiki&gt;&lt;/code&gt;...as the URL of the repository.

== Further reading ==

* [http://git-scm.com/documentation Git documentation] at the Git homepage
* [http://git.or.cz/course/svn.html Subversion to Git documentation] for users familiar with Subversion but new to Git
* See the [[Git for Garage wishlist]]

[[Category:Community]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Git For Garage Wishlist</title>
    <id>3510</id>
    <revision>
      <id>28165</id>
      <timestamp>2010-02-02T16:38:45Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Git For Garage Wishlist]] moved to [[Git for Garage wishlist]]: CapitaliZation</comment>
      <text xml:space="preserve">#REDIRECT [[Git for Garage wishlist]]</text>
    </revision>
  </page>
  <page>
    <title>Git for Garage wishlist</title>
    <id>1742</id>
    <revision>
      <id>28164</id>
      <timestamp>2010-02-02T16:38:45Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>[[Git For Garage Wishlist]] moved to [[Git for Garage wishlist]]: CapitaliZation</comment>
      <text xml:space="preserve">== Overview ==

The page lists all wishes that arise related to the Git repository support for projects hosted at garage.maemo.org.

== Per-user git repositories ==

Sure, branches on a project repository is nice and all, but alike launchpad, it could be nice for users to have a git repository of their own to post to, which could enable easier merging of patches from that users' branches. Is this something that could be considered? Would be very useful for Mer development, i suspect. Also, is the plan to have /project/&lt;one or more repositories&gt; ? or only one repository possible per project? --[[User:stskeeps|stskeeps]] 19:02, 9 December 2008 (UTC)

== Feature requests ==

[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=3319&amp;group_id=841&amp;atid=3136 Allow multiple repositories per project]

[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=3320&amp;group_id=841&amp;atid=3136 Allow personal repositories]</text>
    </revision>
  </page>
  <page>
    <title>GoLang</title>
    <id>4138</id>
    <revision>
      <id>35161</id>
      <timestamp>2010-05-31T13:50:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify and categorize</comment>
      <text xml:space="preserve">This is a small Wiki page about the [http://maemo.org/packages/view/golang/ golang package] on Maemo. The package contains the standalone go compiler and libraries targeting armv6.

== Creating a Hello world application using the go programming language ==

Creating a Hello world application using the [http://golang.org/ go language] on the [[Nokia N900|N900]]. The go compiler and libraries for Maemo are packaged in a package called &lt;code&gt;golang&lt;/code&gt; that can be installed from the fremantle/free repository. The package puts all its content in a directory called &lt;code&gt;/opt/go&lt;/code&gt; to follow Maemo packaging policies.

Once the package is installed we need to set a few environments variables to make the go compiler happy.

Those are:

 export GOROOT=/opt/go
 export GOOS=linux
 export GOARCH=arm
 export GOBIN=/opt/go/bin
 export GOPKG=/opt/go/pkg
 PATH=$PATH:$GOBIN

The packager provides a script to to this that can be sourced

 ~ $ . /opt/go/bin/go_profile


Now off to create Hello world. We will create a directory in the users home directory create a small go hello world file, compile, link and run it.

Creating the directory using mkdir

 mkdir hello_go

Go into that directory and fire up an editor

 cd hello_go
 vi hello.go

Paste the following

&lt;source lang=&quot;c&quot;&gt;
package main

import &quot;fmt&quot;

func main() {
  fmt.Printf(&quot;Hello, Maemo\n&quot;)
}
&lt;/source&gt;


exit vi and compile hello.go

 ~/hello_go $ 5g hello.go

Link it against the go libs (the output is a staticaly linked binary)

 ~/hello_go $ 5l hello.5

and now run it

 ~/hello_go $ ./5.out
 Hello, Maemo

If all went well you just ran your first go code on Maemo!

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Gonvert</title>
    <id>4498</id>
    <revision>
      <id>41609</id>
      <timestamp>2011-02-04T11:57:11Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <comment>/* Trouble Shooting and Reporting of Bugs */</comment>
      <text xml:space="preserve">Gonvert is a thorough unit converter.


== Screenshots ==

[[Image:Gonvert_Condensed.png|frame|center|alt=Screenshot of Gonvert showing ‘Quick convert’ view|Condensed view for quickly changing what conversions you are doing]]

[[Image:Gonvert_Favorites.png|frame|center|alt=Screenshot of Gonvert showing ‘favorites’ view|Favorites support to hide uninteresting units]]

[[Image:Gonvert_QuickJump.png|frame|center|alt=Screenshot of Gonvert showing ‘quick jump’ view|Quickly search for a unit]]

[[Image:Gonvert_Recent.png|frame|center|alt=Screenshot of Gonvert showing ‘recent unit’ view|Return to a recently-used unit]]

[[Image:Gonvert_Categories.png|frame|center|alt=Screenshot of Gonvert showing ‘unit category’ view|Original Units view and category selector]]

[[Image:Gonvert_Units.png|frame|center|alt=Screenshot of Gonvert showing ‘unit conversion’ view|Converting between units]]

== Features ==

Basic features:
* 51+ categories with 972+ units
* Everything is updated as you type
* Unit Search, Recent Units

Keyboard Shortcuts
* Ctrl+Enter - toggle between fullscreen
* Ctrl+w, Ctrl+q - quit
* Ctrl+l - Copy the debug log contents
* Ctrl+j Quick Jump
* Ctrl+r Recent Units
* Ctrl+f Select Favorites

== Getting Gonvert ==

Getting Gonvert
* Maemo 4.1: Available in [[extras]] through the Application Manager.
* [http://maemo.org/downloads/product/Maemo5/gonvert/ Maemo 5] or available in extras through the Application Manager.
* [http://gonvert.garage.maemo.org/gonvert.deb Ubuntu]

Gonvert has been tested on:
* Ubuntu 10.04
* Maemo 4.1
* Maemo 5

== Contribute ==

* [https://bugs.maemo.org/enter_bug.cgi?product=Gonvert File a bug]
* [https://bugs.maemo.org/buglist.cgi?query_format=specific&amp;order=relevance+desc&amp;bug_status=__open__&amp;product=Gonvert&amp;content= View existing bug reports]
* [http://talk.maemo.org/showthread.php?t=34403 talk.maemo.org thread]
* [https://garage.maemo.org/projects/gonvert/ Garage Project (including code)]
* Learn about [[extras-testing]] and checkout the [http://maemo.org/packages/view/gonvert/ Package page (including voting)]

Gonvert is available under the [http://www.gnu.org/licenses/gpl-2.1.html GPL v2.1 license]

== Trouble Shooting and Reporting of Bugs ==

A very beneficial log can be found at &quot;&lt;code&gt;~/.gonvert/gonvert.log&lt;/code&gt;&quot;

[[Category:Software]]
[[Category:Diablo]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Google Data API for Python (Presentation)</title>
    <id>1191</id>
    <revision>
      <id>33462</id>
      <timestamp>2010-04-26T10:10:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add category</comment>
      <text xml:space="preserve">This presentation will be given at the [[Maemo Summit 2008]] by [[User:brontide| Eric Warnke]]

The goal of the presentation is to give users a quick introduction to using the python bindings.  Focus will be on showing enabling code snippits and how they can be used to enhance the Maemo experience.  

All source code will be available after the presentation.


==Outline of the Program==

20-22 minutes on slides, example code, and demo

# Atom and CRUD:  What it is and why it works
# Python library:  Code demos using the picasaweb service
# Authentication:  How to authenticate to google
# Examples: Authenticated access to google docs
# Brief discussion of services that might be interesting under maemo
# DocSync:  Full code and example working document sync process
# Problems:  Not everything is puppy dogs and rainbows, here are the hidden downsides.

3-5 minutes Q&amp;A

==Slides and Code ( Video? )==

To follow presentation at summit.

==Q&amp;A==

===Your question here?===
Copy and paste these two lines and add your question, I will respond and possibly your question in the presentation.

==Other sessions==

I will be presenting a demo of DocSync as a flash session.  I would be happy to demonstrate Picasa syncing as well to anyone interested.

==External Links==

* [http://code.google.com/p/gdata-python-client/ Google Data Python Bindings]
* [http://code.google.com/apis/gdata/index.html Google Data API's]
* [[:wikipedia:Atom_(standard)|Wikipedia page on the Atom standard]]

[[Category:Maemo Summit 2008]]</text>
    </revision>
  </page>
  <page>
    <title>Gorilla</title>
    <id>4739</id>
    <revision>
      <id>42788</id>
      <timestamp>2011-03-22T00:15:53Z</timestamp>
      <contributor>
        <ip>70.253.67.234</ip>
      </contributor>
      <comment>/* Getting Gorilla */</comment>
      <text xml:space="preserve">A remake of the [http://en.wikipedia.org/wiki/Gorillas_%28video_game%29 classic Gorilla.bas game] done for [http://inventwithpython.com/blog/2010/06/25/gorilla-py-a-remake-of-gorilla-bas/ &quot;Invent with Python]&quot; and ported to Maemo.

== Features ==

Keyboard Shortcuts
* Ctrl+q, Escape - quit

== Getting Gorilla ==

Getting Multilist
* Maemo 4.1: Available in [[extras-devel]] through the Application Manager. ''(Not, see [https://bugs.maemo.org/show_bug.cgi?id=12070 bug])''
* [http://maemo.org/downloads/product/Maemo5/gorilla/ Maemo 5] or available in extras through the Application Manager.
* [https://github.com/epage/gorilla/raw/master/www/gorilla.deb Ubuntu]

Multilist has been tested on:
* Ubuntu 10.04
* Maemo 5

== Contribute ==

* [https://bugs.maemo.org/enter_bug.cgi?product=Gorilla File a bug]
* [https://bugs.maemo.org/buglist.cgi?query_format=specific&amp;order=relevance+desc&amp;bug_status=__open__&amp;product=Gorilla&amp;content= View existing bug reports]
* [http://talk.maemo.org/showthread.php?t=69887 talk.maemo.org thread]
* [https://github.com/epage/gorilla github repository]
* Learn about [[extras-testing]] and checkout the [http://maemo.org/packages/view/gorilla/ Package page (including voting)]

Gorilla is available under the [http://creativecommons.org/licenses/by-nc-sa/3.0/us/ Creative Commons Attribution-Noncommercial-Share Alike]

== Troubleshooting and Reporting of Bugs ==

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>GpSP</title>
    <id>4832</id>
    <revision>
      <id>48821</id>
      <timestamp>2012-07-27T00:58:19Z</timestamp>
      <contributor>
        <username>luiscesjr</username>
        <id>3854</id>
      </contributor>
      <comment>Added one more workaround option</comment>
      <text xml:space="preserve">[[Image:Gba_gpSP.png|thumb|alt=Game Boy handheld|Game Boy handheld]]

gpSP (game play SP) is a Game Boy Advance emulator, made by Exophase, for use with the Sony PlayStation Portable and GP2X video game systems. There have been ports to iPod the iOS, Maemo, Symbian and many others.

The PSP version runs most commercial games at full speed, however some still have problems from minor or severe glitches, while others are very slow. The GP2X version is similar to the PSP one, but typically slower. Unlike VisualBoyAdvance, which high-level emulates the GBA BIOS, gpSP requires a GBA BIOS file in order to operate. Due to copyright reasons, this BIOS cannot be included with the emulator by Exophase, and users must dump it on their own using a Game Boy Advance flash cartridge. Some games do not need the BIOS file to play, however most do.

To date, gpSP has proven to be the most efficient, compatible and widely used of all GBA emulators for the PSP, GP2X.

Exophase has stopped working on the PSP version of GpSP, in favor of the GP2X and Pandora versions of gpSP. Future versions of gpSP will be closed source due to the constant third-party re-release of gpSP against Exophase's wishes.

(Copied and edited from [[:wikipedia:GpSP|Wikipedia]])

== Installation ==

{{ambox|text=gpSP for Maemo is already avaiable on Maemo Repositories,
What means you can eighter use your favourite app manager
to install it, or go through the following command on 
xterminal.:

&lt;pre&gt;
apt-get update
apt-get install gpspmgui
&lt;/pre&gt;

After you have installed gpSP, you must set right permissions to keys,
folders, emulator, etc. that is pretty easy, and should be done by following 
these commands.:

&lt;pre&gt;
root
mkdir -P /home/user/.config/Team16/gpsp/
chmod 777 /opt/maemo/usr/games
chown user /opt/maemo/usr/games
chown -R user:users /home/user/.config/Team16
chmod 666 /opt/gpspm/conf.gpsp 
&lt;/pre&gt;

Does that seems like a lot to type? Well, it's worth it, you are
getting a premium quality emulator on your hands for free, come on,
don't be lazy =)

}}

== How to uninstall ==

{{ambox|text= If you wish to uninstall gpSP from your phone, simply use
app manager. 
And that should uninstall gpSP from your device
}}

x-term way
&lt;pre&gt;
apt-get remove gpspmgui gpspm
&lt;/pre&gt;

also make sure to remove gba games(no use without emu) and savestates
&lt;pre&gt;
rm /opt/maemo/usr/games/*.sav
&lt;/pre&gt;

== How to run ==

Simply use the icon ! Enjoy your games!

* Make sure you have a copy of a gba_bios.bin on MyDocs.
Since we can't provide you one due to legal reasons, you can
eighter dump one from a gba, or download one through internet.

* Once you've grabbed one, make sure to copy it into MyDocs,
then, press the top bar menu of gpSP emulator &gt; GUI Config &gt;
Copy bios. Then just select the gba_bios.bin file you copied 
to MyDocs, the gui will make all the dirty work.

* Next step is to select a Directory where you stored your roms,
and the gui will automatically find and list all of them for you.
Top bar menu &gt; GUI config &gt; Rom directory.

* After that, the GUI may require reboot, so simply close it
and open again, your roms shall be listed for you.
Notice they may be on .zip or .GBA or .gba roms.

* Select a rom you wish to play, and push &quot;Configure&quot; button.
After this, a list of options will be shown to you, and these
options are.:

== Options ==


- Screen options.:

* Unscaled : Native gba resolution ( 240 x 160 )

* Scaled 2x : Twice gba screen ( 480 x 320 )

* Scaled 3x : 3 times a gba original screen ( 720 x 480 )

* Fullscreen : Fills up entire N900 screen ( 800 x 480 )

- Frameskipping.:

*Off : Do not skip any frames.

* Auto : Skip up to N frames ( N avaiable as an option ), automatically and consecutively.

* Manual : Always render 1 out of N + 1 frames, these frames will always be skipped.

* Random Skipping : May make imagine in some games smoother, when image flickers, but may also make image quality worse, especially in high motion games.

* Uniform Skipping : May make image on high motion games better, just the opposite of random skip.

- Audio Buffering.:
Set the size (in bytes) of the audio buffer. Larger values may result in slightly better performance at the cost of latency; the lowest value will give the most responsive audio.

 * Please, notice that low values are buggy, so please be sure to only choose values above 4096 bytes.

- FF ( Fastforward )
Is supposed to make emulator run faster than normal, what can prove to be useful in some games ( Subject to test workability ).

== How to play NES games ==

What you will need before starting ( download links, and reference at the end )

* PocketNES.gba file ( Avaiable on PocketNES v9.98 package )
* PocketNes menu maker

The PocketNes.gba file you can get from the Pocketness package, once you
have it, as well as the Menu maker, copy it to the menu maker folder,
open pnesmmw.exe &gt; click on options &gt; select the PocketNes.gba file 
from the PocketNes Rom option, then select your NES files using the Rom Path
option ( Both first and second options, do it in any order ).
Once you close the options your nes files should be listed, just chose ones,
and click Make Rom, a file called PocketNESMenu.gba will be created, just
rename it anyway you want, put on your device, and play.

* [http://www.summeli.fi/?p=2613 Summeli's Original Post ]
* [http://www.pocketnes.org/downloads.html PocketNES Host site with needed files ]

Instructions were copied and edited from Summeli's official site, NES games
shouldn't be listed on gpSP Working games list.

== Some games workarounds ==

On some games, you will need workarounds for now to get them working.

-Kingdom Hearts


{{ambox|text= Simply, before the game freezes on intro video, quicksave the
game, then load it back, it should work normally!
}}


-Mario Advanced 4 ( And probably many other games )


{{ambox|text= Refer to [http://www.summeli.fi/?p=2588 Summeli's post ] about patching Gba Roms.

If other games works using the Rom patching solution, please post them on
the game compability list and link them here.
}}

== Links ==

* [http://talk.maemo.org/showthread.php?p=1131846#post1131846 T.M.O Thread ]
* [[GpSP/Game_Compatibility|gpSP Game Compability List]]
* [https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=8X5V9U64RSWUU Maemo developer(Bonapart) paypal donate]

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>GpSP/Game Compatibility</title>
    <id>4833</id>
    <revision>
      <id>48822</id>
      <timestamp>2012-07-27T01:02:03Z</timestamp>
      <contributor>
        <username>luiscesjr</username>
        <id>3854</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">This is the game compability list for the maemo port of gpSP, if you would like
to help us develop this page, feel free to do so.

Before you start editing or searching for games on wiki, please, notice these.:

* All games listed here were tested on Stock Kernel Speed, which means
if it's commented it has slow emulation, a slight overclock will help it.

* Try testing game ROMs on EMMC instead of the MicroSD card.

* If you too wish to test a game and post here, please follow these simple
rules .:

- Games should be tested on stock kernel speed ( 600 mhz )

- Frameskipping, and sound buffer are not relevent here, only if it
makes a huge difference on game's performance, and so should be added
as a comment

- Always keep the wiki organized, with the names close to alphabetic
order, and in their respective colors.

- Green color background are for working games; Orange colored backgrounds
are for partially working games; Red colored background are for Non-Working
games.

- Before saving the wiki page, use the &quot; Show Preview button &quot;

* Thanks, and good gaming!

{| class=&quot;wikitable sortable&quot;
|+ List of working/non-working games
! Game !! Status !! Bug(s)/ Description !! Game Version/Region !! Modded Rom
|-
|007 - Everything or nothing|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No 
|-
|007 - Nightfire|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No 
|-
|Alladin|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Advance Wars|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Advance Wars|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No
|-	
|Advance Wars 2 : Black Hole Rising|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No
|-
|Banjo Pilot || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Beyblade G-Revolution || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Beyblade V-Force Ultimate Blader || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Beyblade V-Force 2 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || JAP || No
|-
|Bomberman Max 2 Blue Advance || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Castlevania: Aria of Sorrow|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Castlevania: Circle of the Moon|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Castlevania: Harmony of Dissonance|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Contra Advanced - The Alien Wars|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Crash and Spyro Superpack|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Crash Bandicoot Fusion|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Crash Bandicoot Purple Riptos Rampage|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Crash Bandicoot The huge Adventure|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Crash Bandicoot The Wrath of Cortex|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Crash Bandicoot XS|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Crash Nitro Kart|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No 
|-
|Crash of The Titans|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Digimon Battle Spirit || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Digimon Battle Spirit 2|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|DragonBall Buu's fury|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|DragonBall Legacy of Goku 2|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No  
|-
|DragonBall Z Supersonic Warriors|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|DragonBall GT Transformation|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good Emulation || USA || No 
|-
|Donkey Kong King of Swing|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Donkey Kong Country|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Donkey Kong Country 2|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Donkey Kong Country 3|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Doom|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Doom|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Driver 2 Advance|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Driv3r|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No  
|-
|ESPN Final Round Golf|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|ESPN Great Outdoor games Bass Fishing|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|ESPN X-Games Skateboarding|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|ESPN X-Winter Games Snowboarding|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|ESPN Internation Winter Sports|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Earthworm Jim|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Earthworm Jim 2|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No 
|-
|Eragon|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No 
|-
|F1 2002|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Fifa 2006|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Final fantasy IV|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Fire Emblem|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|F-Zero Maximum Velocity|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Ghouls' N Ghosts|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Harry Potter Collection || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No 
|-
|Harry Potter and The Chamber of Secrets || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No
|-
|Harry Potter and The Goblet of Fire || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No
|-
|Harry Potter and The Prisioner of Azkaban || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No
|-
|Harry Potter and The Sorcere's Stone || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No
|-
|Herbie Fully Loaded || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No
|-
|International Karate Plus|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No 
|-
|Jackie Chan Adventures Legend of The Dark Hand || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Jimmy Neutron Attack of the Twonkies || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Jimmy Neutron Boy Genius || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Jimmy Neutron Jet Fusion || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Jimmy Neutron vs Jimmy Negatron || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Jurassic Park 3 : Island Attack || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Jurassic Park 3 : Park Builder || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Jurassic Park 3 : The DNA Factor || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Jurassic Park 3 : Dino Attack || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Kingdom Hearts - chain of Memories|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires workaround detailed on main [http://wiki.maemo.org/GpSP#Some_games_workarounds wiki] || USA || No 
|-
|Klonoa 2 Dream Champ Tournament|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Legend of Zelda: The Minish Cap|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Legend of Zelda: A link to the past|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Lion King|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Looney Tunes Back in Action|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Lord of The Rings : The Fellowship of the Ring|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Lord of The Rings : The Third Age|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Lord of The Rings 2 : The Two Towers|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Lord of The Rings 3 : Return of The King|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Lunar Legend|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Mario Advanced 2- Mario World|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No  
|-
|Mario Advanced 3- Yoshi's Island|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No 
|-
|Mario Advanced 4- Mario Bros. 3 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires Rom patching workaround detailed on main [http://wiki.maemo.org/GpSP#Some_games_workarounds wiki] || USA || No 
|-
|Mario Ball|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No   
|-
|Mario and Luigi Superstars Saga|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Mario Golf Advance Tour|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Mario Kart Super Circuit|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Mario vs Donkey Kong|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No    
|-
|Max Payne|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Medabots : Metabee Version|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Medabots AX : Metabee Version|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Medabots : Rokusho Version|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Mega-Man Zero 2|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Mega-Man Zero 3|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No   
|-
|Mega-Man Zero 4|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No  
|-
|Mega-Man Battle Network || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Mega-Man Battle Network 2|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Mega-Man Battle Network 3 Blue|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Mega-Man Battle Network 4 Blue Moon|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Metal Slug Advance|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Metroid Fusion|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No         
|-
|Metroid : zero mission|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Micro Machines|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No   
|-
|Monster Trucks|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Monsters Inc.|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Moto GP|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No        
|-
|Motocross Maniacs Advanced|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No  
|-
|Nascar Heat 2002|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No    
|-
|Pokemon Emerald|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Pokemon Ruby|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || Yes 
|-
|Pokemon Fire Red|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Pokemon Mystery Dungeon Red Rescue Team|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Prehistorik Man|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Pro Beach Soccer|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Ray-man 10th Anniversary|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Ray-man Hoodlums Revenge|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Ray-man Advance|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Road Rash Jailbreak|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Sega Rally Championship|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Serious Sam Advance|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Shining Soul II || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Sims Bustin' Out|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Sims 2|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No
|-
|Sonic Advance|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Sonic Advance 2|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No
|-
|Sonic Advance 3|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No
|-
|Sonic The Hedgehog Genesis|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Splinter Cell|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Splinter Cell 2 Pandora Tomorrow|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || EU || No
|-
|Star Wars : Jedi Power Battles|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Star Wars : Attack of The Clones|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Star Wars : Revenge of The Sith|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Star Wars : Flight of The Falcon|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Slow emulation || USA || No
|-
|Star Wars : The New Droid Army|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Slow emulation || USA || No
|-
|Star Wars Trilogy : Apprentice of The Force|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Street Jam Basketball|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Street Fighter 2 Turbo Revival|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|Street Fighter Alpha 3|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No
|-
|The Tower SP|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation, game instability fixed on latest release || USA || No 
|-
|Tony Hawk's underground 2|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Top gear Rally|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || 3D game, slow emulation || USA || No 
|-
|Top Gear GT Championship|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Tron 2.0|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation || USA || No 
|-
|Winning Eleven World Soccer|| style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Good emulation ( sound avaible as of latest update ) || USA || No 
|-
|Sims 2 Pets|| style=&quot;background-color:orange;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Partially Working || Graphically Glitched, but not unplayable || USA || No
|-
|Banjo Kazooie Grunty's Revenge || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Crashes to bios in the very beggining || USA || No
|-
|DragonBall Legacy of Goku|| style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Freezes after hack announce || USA || Yes
|-
|DemiKids Light Version|| style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Crashes before begin a game || USA || No
|-
|Digimon Racing|| style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Freezes on beggining || USA || No
|-
|Doom 2|| style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Bad scaling, freezes on beggining || USA || No 
|-
|Grand Theft Auto Advance|| style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working ||Starts But crashes after first dialog || USA || No 
|-
|Harry Potter Quidditch World Cup || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Minor Graphical Glitches, and freezes before entering games || EU || No
|-
|Harry Potter and The Order of Phoenix || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Constantly coming back to Langauge selection screen || EU || No
|-
|Mario Tennis Power Tour|| style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Crashes to Bios || USA || No
|-
|Mega-Man Zero|| style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Heavy Graphical Glitches || USA || No
|-
|Nba Jam 2002|| style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Blank Screen on start || USA || No
|-
|Ray-man Raving Rabbids|| style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Heavy Graphical Glitches || USA || No      
|-
|Steel Empire|| style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Black Screen at start || USA || No
|-
|Super Monkey Ball Jr.|| style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Game crashes, was working on version 1.0.4 || USA || No
|-
|Street Racing Syndicate|| style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Crashing when choosing language || USA || No
|-
|}

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>GpSP/Game Settings Chart</title>
    <id>4834</id>
    <revision>
      <id>43262</id>
      <timestamp>2011-04-28T10:05:23Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[GpSP/Game Compatibility]]</comment>
      <text xml:space="preserve">#REDIRECT [[GpSP/Game Compatibility]]</text>
    </revision>
  </page>
  <page>
    <title>Greeters</title>
    <id>2941</id>
    <revision>
      <id>48106</id>
      <timestamp>2012-06-04T03:11:49Z</timestamp>
      <contributor>
        <username>polarbear</username>
        <id>5240</id>
      </contributor>
      <minor/>
      <comment>Updated for current status of initiative</comment>
      <text xml:space="preserve">==Welcome to the Maemo Greeters Page ==

'''Edit: As of 04 June 2012, this program appears to have gone inactive with listed members either inactive or engaging in little recent activity on TMO. The last previous edit of this article occurred 12 April 2010 and may now be out of date. If this conclusion is incorrect please update this article accordingly.'''

This is a voluntary initiative by members of the maemo community. 

Greeters here at meamo.org can be recognized by their distinctive (often multilingual) signatures within which are several useful links for the newcomer/beginner/curious. If you're new or curious, feel free to click through those links.

As well, Greeters are encouraged (but not expected) to perform typical help desk activities in talk.maemo.org.

Some notes for potential greeters:
* Try to remain courteous at all times
* This program is strictly voluntary
* There is no official status conferred by this &quot;title&quot;
* There are no offers or guarantees of any reward
* There will be no formal scoring of participation

Notes for newcomers:
* Please Thank any post that assists you, directly or indirectly
* Keep in mind that any Greeter is a volunteer
* Feel free to suggest ideas to any Greeter

It is expected that Greeter participation will result in Thanks from those who directly benefit, as well as anyone appreciative of the effort.

== List of Greeters ==

(Note - if you want to be a greeter, see below and feel free to add your name to this list...)

''in progress''

*[http://talk.maemo.org/member.php?u=14243 ossipena] - Finnish, English, German, Swedish (very little)
*[http://talk.maemo.org/member.php?u=13643 smarsh] - Steve speaks English and can talk non-techie as well.
*[http://talk.maemo.org/member.php?u=7900 Matyas] - Français, Italiano
*[http://talk.maemo.org/member.php?u=30543 b666m] - German &amp; English
*[http://talk.maemo.org/member.php?u=29845 xomm] - Andy - English, Vietnamese. Focus: FUDfight, Trollfight, Helping new users understand how the community works.

== Original post from Texrat ==
(Post: http://talk.maemo.org/showpost.php?p=365594&amp;postcount=1, in thread http://talk.maemo.org/showthread.php?t=33968)

After much discussion and deliberation, we are moving forward with testing the Maemo Greeters Brainstorm idea (see http://talk.maemo.org/showthread.php?t=32835). Note that the actual Brainstorm solution for this (#1) has not actually moved to the implementation stage as of this writing, but it will be.

The basic idea is that any member can volunteer for this activity, and it can be implemented by simply using the following (or similar) for your posting signature: 

 Hi! I'm a Maemo Greeter!
 
 Useful links for newcomers: New members say hello, New users start here, Community subforum, Beginners' wiki page, Maemo5 101, Frequently Asked Questions (FAQ)
 
 If I can help with anything else, just ask!  


In addition, participants are encouraged (but not expected) to perform typical help desk activities in talk.maemo.org.

Some notes for participants:
Try to remain courteous at all times
This program is strictly voluntary
There is no official status conferred by this &quot;title&quot;
There are no offers or guarantees of any reward
There will be no formal scoring of participation

Notes for newcomers:
Please Thank any post that assists you, directly or indirectly
Keep in mind that any Greeter is a volunteer
Feel free to suggest ideas to any Greeter

It is expected that Greeter participation will result in Thanks from those who directly benefit, as well as anyone appreciative of the effort.

Since this is a pilot, it is subject to change without notice, including dissolution of the program if it has too low or no participation, or there is no obvious benefit. Constructive feedback of all kinds is welcome. You may contact any Greeter, or me directly.

Let's make this work!

Thanks! And special thanks to Den in USA, whose shining example in New members say hello inspired this idea. You guys reward him by Thanking his greeting posts when you think of it.

== Greeters signature suggestions ==

There is no yet official signature (the whole idea is making its baby steps, see [http://maemo.org/community/brainstorm/view/routing_visitors_to_useful_resources/ brainstorm item]) but here is the original version [http://talk.maemo.org/member.php?u=2855 Texrat] suggested:

 Hi!  I'm a Maemo Greeter!
 Useful links for newcomers: [http://talk.maemo.org/showthread.php?t=28834 New members say hello] , [http://talk.maemo.org/showthread.php?t=32513 New users start here], [http://talk.maemo.org/forumdisplay.php?f=16 Community subforum], [http://wiki.maemo.org/Category:Beginners Beginners' wiki page], [http://wiki.maemo.org/index.php?title=Maemo5_101 Maemo5 101], [http://wiki.maemo.org/Frequently_asked_questions Frequently Asked Questions (FAQ)]
 
 If I can help with anything else, just ask!  :)

=== Basic English version ===
Greeters can copy latest(hopefully!) version of signature from here and paste it to their signatures. It should work straight.

 Hi!  I'm a Maemo Greeter!
 
 Useful links for newcomers: [url=http://talk.maemo.org/showthread.php?t=28834]New members say hello[/url], [url=http://talk.maemo.org/showthread.php?t=32513]New users start here[/url], [url=http://talk.maemo.org/forumdisplay.php?f=16]Community subforum[/url], [url=http://wiki.maemo.org/Category:Beginners]Beginners' wiki page[/url], [url=http://wiki.maemo.org/Maemo5_101]Maemo5 101[/url], [url=http://wiki.maemo.org/Frequently_asked_questions]Frequently Asked Questions (FAQ)[/url]
 
 If I can help with anything else, just ask!  :)

=== Version Française ===

Les volontaires devraient utiliser une signature unique et distinctive. J'invite les francophones à donner des avis et à améliorer le texte ci dessous ([http://http://talk.maemo.org/showthread.php?t=33968 discussion]). Le texte comprend du code HTML et il est prêt pour être copié dans votre profil, sans aucune modification de votre part.

 Nouveau venu ? Je peux vous aider : 
 
 Toutes les informations utiles (pages encore en anglais) : [url=http://talk.maemo.org/showthread.php?t=28834]Présentez-vous à la communauté[/url] , [url=http://talk.maemo.org/showthread.php?t=32513]L'essentiel pour bien commencer[/url], [url=http://wiki.maemo.org/Category:Beginners]Débuter sur Maemo 4 (N800 - N810)[/url], [url=http://wiki.maemo.org/Maemo5_101]Le Wiki sur Maemo 5 (N900)[/url], [url=http://wiki.maemo.org/Frequently_asked_questions]La FAQ[/url], [url=http://talk.maemo.org/forumdisplay.php?f=16]Le sous-forum dédié aux communautés[/url]
 
 En cas de souci, n'hésitez pas à me poser vos questions!

=== Nederlandse versie ===
Groeters kunnen hier de laatste versie naar hun onderschrift kopieren. De links zijn vooralsnog in het Engels.

 Hoi!  Ik ben een Maemo Groet!
 
 Handige links voor nieuwkomers (Engels): [url=http://talk.maemo.org/showthread.php?t=28834]Welkom nieuwe leden[/url] , [url=http://talk.maemo.org/showthread.php?t=32513]Startpunt voor nieuwe leden[/url], [url=http://talk.maemo.org/forumdisplay.php?f=16]Community subforum[/url], [url=http://wiki.maemo.org/Category:Beginners]Wiki pagina voor Beginners[/url], [url=http://wiki.maemo.org/Maemo5_101]Maemo 5 basisprincipes[/url], [url=http://wiki.maemo.org/Frequently_asked_questions]Vaakgestelde vragen[/url]
 
 Heb je nog vragen? Voel je vrij deze aan mij te stellen!

=== Versione Italiana ===

I volontari dovrebbero impiegare una firma uniforme e distintiva. Invitiamo i membri della comunità Maemo a migliorare il testo riportato nella casella sottostante ([http://http://talk.maemo.org/showthread.php?t=33968 discussione su talk.maemo.org]). Il testo contiene del codice HTML ed è pronto per essere copiato nel profilo dei volontari, senza alcuna necessità di apportare modifica.
 
 Benvenuto! Se hai bisogno di aiuto, sono a disposizione.
 Ecco dove iniziare (in inglese):
 
 [url=http://talk.maemo.org/showthread.php?t=28834]Presentazioni dei nuovi iscritti[/url],
 [url=http://talk.maemo.org/showthread.php?t=32513]Primi passi per nuovi iscritti[/url],
 [url=http://wiki.maemo.org/Category:Beginners]Wiki per chi inizia con Maemo 4 (N800 - N810)[/url],
 [url=http://wiki.maemo.org/Maemo5_101]Wiki per chi inizia con Maemo 5 (N900)[/url],
 [url=http://wiki.maemo.org/Frequently_asked_questions]FAQ[/url],
 [url=http://talk.maemo.org/forumdisplay.php?f=16]Subforum della Comunità[/url]
 
 In caso di dubbi o domande non esitare: contattami!

=== Svensk version ===
Välkomnare kan (förhoppningsvis!) kopiera den senaste versionen av signaturen härifrån till sin signatur.

 Hej! Jag är en av Maemos välkomnare!
 
 Användbara länkar för nykomlingar (på engelska): [url=http://talk.maemo.org/showthread.php?t=28834]Nya medlemmar säger hej[/url], [url=http://talk.maemo.org/showthread.php?t=32513]Nya användare: börja här[/url], [url=http://talk.maemo.org/forumdisplay.php?f=16]Subforum om communityn[/url], [url=http://wiki.maemo.org/Category:Beginners]Wikisida för nybörjare[/url], [url=http://wiki.maemo.org/Maemo5_101]Kort om Maemo 5[/url], [url=http://wiki.maemo.org/Frequently_asked_questions]Vanliga frågor (FAQ)[/url]
 
 Kan jag hjälpa till med något annat så säg till!  :)

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Harmattan</title>
    <id>2900</id>
    <revision>
      <id>21601</id>
      <timestamp>2009-11-02T06:05:46Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Harmattan]] moved to [[Open development/Maemo roadmap/Harmattan]]: Under open development</comment>
      <text xml:space="preserve">#REDIRECT [[Open development/Maemo roadmap/Harmattan]]</text>
    </revision>
  </page>
  <page>
    <title>Harmattan Python</title>
    <id>5046</id>
    <revision>
      <id>45823</id>
      <timestamp>2011-11-23T17:55:25Z</timestamp>
      <contributor>
        <username>wmoreira</username>
        <id>4818</id>
      </contributor>
      <comment>Redirecting to [[Python/Harmattan]]</comment>
      <text xml:space="preserve">#REDIRECT [[Python/Harmattan]]</text>
    </revision>
  </page>
  <page>
    <title>Harmattan Tips and Workarounds</title>
    <id>5080</id>
    <revision>
      <id>47213</id>
      <timestamp>2012-04-10T17:54:25Z</timestamp>
      <contributor>
        <ip>62.78.182.181</ip>
      </contributor>
      <comment>/* Workarounds */</comment>
      <text xml:space="preserve">The '''focus''' of this wiki is gathering: How-To's, Workarounds for issues, Mods/Tweaks, &amp; Killer Apps.

Sister TMO thread is [http://talk.maemo.org/showthread.php?p=1104892 here]

=How-To's/Tips=

Test beta community apps before they're released as stable

[http://wiki.meego.com/MeeGo_Apps/Community_QA http://wiki.meego.com/MeeGo_Apps/Community_QA]

Improve SSH security once dev-mode enabled (much of this applied in subsequent updates)

[http://www.basshero.org/blog/113/nokia-n9-developer-mode-ssh-security http://www.basshero.org/blog/113/nokia-n9-developer-mode-ssh-security]

Dismantling the N9 (Russian Video)

[http://www.youtube.com/watch?v=mSJtUbnM46E http://www.youtube.com/watch?v=mSJtUbnM46E]

iFixit N9 device stub: still waiting for folks to add their teardown/repair guides

[http://www.ifixit.com/Device/Nokia_N9 http://www.ifixit.com/Device/Nokia_N9]

Change the terminal font size (pretty obvious, maybe not worth documenting)

[http://forum.meego.com/showthread.php?t=4966 http://forum.meego.com/showthread.php?t=4966]

''Rain-X (for fixing scratched glass screens)''

Force a restart = hold power/lock-screen button for 10-sec (in manual)

It's perfectly fine to use the N900's charger with the N9 &amp; vice-versa

Package a *.DEB for N9 (Binary only)

[http://talk.maemo.org/showthread.php?t=80908 http://talk.maemo.org/showthread.php?t=80908]

Report Bugs! Pointers

[http://talk.maemo.org/showpost.php?p=1124887&amp;postcount=1 http://talk.maemo.org/showpost.php?p=1124887&amp;postcount=1]

Improve scratched Gorilla Glass:

&lt;nowiki&gt;*Rain-X (may not be suitable for smartphone screens w/hardend glass)&lt;/nowiki&gt;

&lt;nowiki&gt;*&lt;/nowiki&gt;[http://forum.ppcgeeks.com/moto-droid/114659-gorilla-glass-does-scratch-but-i-know-how-repair.html http://forum.ppcgeeks.com/moto-droid/114659-gorilla-glass-does-scratch-but-i-know-how-repair.html]

&lt;nowiki&gt;*&lt;/nowiki&gt;[http://www.google.com/url?q=http://talk.maemo.org/showpost.php?p=1134372&amp;postcount=72&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGRBSL6VFlLDzAS-v7emQm3eyESGA http://talk.maemo.org/showpost.php?p=1134372&amp;postcount=72]

Email &amp; MfE, getting help with issues by giving help

[http://wiki.maemo.org/Email_and_Mail_for_Exchange_n9 http://wiki.maemo.org/Email_and_Mail_for_Exchange_n9]

Make your own wallpaper

[http://talk.maemo.org/showthread.php?p=1132540 http://talk.maemo.org/showthread.php?p=1132540#post1132540]]

How to restore system w/o doing a total rootfs rewrite (i.e. losing most data)

[http://wiki.meego.com/N950/Fixing_MALF_state http://wiki.meego.com/N950/Fixing_MALF_state]

Unlock a accidentally locked N9 by obtaining your security code

[http://talk.maemo.org/showthread.php?p=1138501 http://talk.maemo.org/showthread.php?p=1138501#post1138501]

Add Harmattan-dev Nokia repository

[http://talk.maemo.org/showthread.php?t=81154 http://talk.maemo.org/showthread.php?t=81154]

Razr’s 3rd-party (community) repository

[http://talk.maemo.org/showthread.php?t=75815 http://talk.maemo.org/showthread.php?t=75815]

Transfer files to/from N9 via WiFi+SSH client (WinSCP)

[http://www.youtube.com/watch?v=wccMF2lDH5A http://www.youtube.com/watch?v=wccMF2lDH5A]

Accessing N9 through SSH over 3G

[http://forum.meego.com/showthread.php?t=4866 http://forum.meego.com/showthread.php?t=4866]

Text areas in harmattan browser, scroll with two fingers!

[http://talk.maemo.org/showthread.php?t=80482 http://talk.maemo.org/showthread.php?t=80482]

Import Calendars into N9

[http://forum.meego.com/showthread.php?t=5227 http://forum.meego.com/showthread.php?t=5227]

[http://forum.meego.com/showthread.php?t=3729 http://forum.meego.com/showthread.php?t=3729]

SIP + Google Voice (works like a cellular call, quality sometimes not quite as good)

[http://talk.maemo.org/showthread.php?t=80505 http://talk.maemo.org/showthread.php?t=80505]

Setup a Bluetooth PAN

[http://forum.meego.com/showthread.php?t=4867 http://forum.meego.com/showthread.php?t=4867]

How to enable SSH root access if you really must (not necessary as you can just use devel-su)

[http://sintonen.fi/n9_pr1.1_remote_root_ssh_login.txt http://sintonen.fi/n9_pr1.1_remote_root_ssh_login.txt]

Also apparently if you change user, dev, &amp; root pwds from their default, you can proceed w/root via SSH.

Connect to the net via USB using USBnet

[http://talk.maemo.org/showthread.php?t=79929 http://talk.maemo.org/showthread.php?t=79929]

Google Reader in Feeds App (2 approaches, one's a workaround the other's a tip)

[http://talk.maemo.org/showthread.php?t=80843 http://talk.maemo.org/showthread.php?t=80843]

Create desktop icon w/root access to a script (2 answers on post #5)

[http://talk.maemo.org/showthread.php?p=1135282 http://talk.maemo.org/showthread.php?p=1135282#post1135282]

Access touch friendly (mobile, not txt-only) version of some Google services

[http://talk.maemo.org/showthread.php?p=1129333 http://talk.maemo.org/showthread.php?p=1129333#post1129333]

Remove app shortcuts from the app launcher home-screen

[http://everythingn9.com/remove-application-shortcuts-nokia-n9/ http://everythingn9.com/remove-application-shortcuts-nokia-n9/]

Use a XMPP gateway for multiple messaging services at once, but w/only one connection!

[http://talk.maemo.org/showthread.php?p=1049366 http://talk.maemo.org/showthread.php?p=1049366#post1049366]

Re-encode video to a format more suited to the N9

[http://talk.maemo.org/showthread.php?p=1110680 http://talk.maemo.org/showthread.php?p=1110680#post1110680]

You can do it in the terminal on the phone like this, otherwise Handbrake's excellent.

I’m not aware of any transcoding software like Handbrake, but for Maemo.

Reduce N900 power consumption (much of it applicable to N9 owners)

[http://wiki.maemo.org/N900_Hardware_Power_Consumption http://wiki.maemo.org/N900_Hardware_Power_Consumption]

POI can be added &amp; then synced with the N9 in the maps apps

[http://maps.nokia.com/mapcreator http://maps.nokia.com/mapcreator]

==Virtual Keyboard==

Advanced keyboard functions, including arrows, copy paste, etc

[http://everythingn9.com/advanced-keyboard-functions-nokia-n9/ http://everythingn9.com/advanced-keyboard-functions-nokia-n9/]

[http://forum.meego.com/showthread.php?t=5288 http://forum.meego.com/showthread.php?t=5288]

Toggle between shell keys &amp; arrows keys for terminal in VKB (already doco'd?)

[http://talk.maemo.org/showthread.php?p=1123712 http://talk.maemo.org/showthread.php?p=1123712#post1123712]

===Swype specific===

Swype: How to delete words you don't want in dictionary

[http://talk.maemo.org/showthread.php?p=1135357 http://talk.maemo.org/showthread.php?p=1135357#post1135357]

[http://www.swype.com/category/tips/ http://www.swype.com/category/tips/]

==Update/Re-Install==

[http://europe.nokia.com/support/product-support/device-software-update http://europe.nokia.com/support/product-support/device-software-update]

NaviFirmEx: C++ version of NaviFirm that runs on WINE (Linux/OSX) &amp; in Windows

[http://talk.maemo.org/showthread.php?t=80874 http://talk.maemo.org/showthread.php?t=80874]

Flash Nokia N9 Using Win Flasher v3.12.1

[http://www.youtube.com/watch?v=70c1zqTn1aE&amp;feature=related http://www.youtube.com/watch?v=70c1zqTn1aE&amp;feature=related]

Change N9 product code (this isn’t actually needed for any reason I’m aware of)

[http://talk.maemo.org/showthread.php?p=1140016 http://talk.maemo.org/showthread.php?p=1140016#post1140016]

==Handy *nix Commands==

 &lt;code&gt;cat /proc/cpuinfo&lt;/code&gt;

To determine if a package is installed:

 &lt;code&gt;dpkg -l &lt;package name&gt;&lt;/code&gt;  

 &lt;code&gt;dpkg -l | grep &lt;package name&gt;&lt;/code&gt; 
Note: the &quot;-l&quot; is a small L

Installed is indicated with a &quot;ii&quot; and un-installed with &quot;un&quot; in-front of the package. 

If output is empty then it doesn't exist in the repo, &amp; needs to be installed via browser.

To see packages a package depends on (dependencies):

 &lt;code&gt;apt-cache showpkg &lt;package name&gt;&lt;/code&gt;

Installing a package...

 &lt;code&gt;pkgmgr install -V -p &lt;package name&gt;&lt;/code&gt;

=Workarounds=

(many are subject to change with new major releases)

&lt;nowiki&gt;*Issue with dloading voices for drive app&lt;/nowiki&gt;

[http://talk.maemo.org/showpost.php?p=1117934&amp;postcount=768 http://talk.maemo.org/showpost.php?p=1117934&amp;postcount=768]

&lt;nowiki&gt;*Using N9 w/latest version of Nokia Suite&lt;/nowiki&gt;

[http://forums.whirlpool.net.au/forum-replies.cfm?r=31711090 http://forums.whirlpool.net.au/forum-replies.cfm?r=31711090#r31711090]

&amp;nbsp;Also see post #31 here....

[http://betalabs.nokia.com/apps/nokia-suite-3-2-beta/suggestion/42076/n9-support http://betalabs.nokia.com/apps/nokia-suite-3-2-beta/suggestion/42076/n9-support]&amp;nbsp;

&lt;nowiki&gt;*Applications that use inverted theme, menu is transparent except for menu contents (fix).&lt;/nowiki&gt;

[http://fiferboy.blogspot.com/2011/10/harmattan-pr11-quick-fix-inverted-menu.html http://fiferboy.blogspot.com/2011/10/harmattan-pr11-quick-fix-inverted-menu.html]

Sometime lists of things like music/movies/msgs etc. don't update correctly.

Instead of a reboot this cmd can come in handy: tracker-control --hard-reset

NOTE!!! REMOVES ALL YOUR CONTACTS AND MESSAGES, 
so do only if you are fine with that.

&lt;nowiki&gt;*Not able to see updates for apps&lt;/nowiki&gt;

[http://talk.maemo.org/showthread.php?p=1119800 http://talk.maemo.org/showthread.php?p=1119800#post1119800]

&lt;nowiki&gt;*How to get terminal icon to appear in apps list w/o enabling dev mode&lt;/nowiki&gt;

[http://forum.meego.com/showthread.php?p=34681 http://forum.meego.com/showthread.php?p=34681#post34681]

&lt;nowiki&gt;*backed-up pre-loaded N9 content, should you want to do a full reset/reformat&lt;/nowiki&gt;

[http://www.n9fanclub.com/2011/11/recover-default-pre-loaded-content-of.html http://www.n9fanclub.com/2011/11/recover-default-pre-loaded-content-of.html]

&lt;nowiki&gt;*disabling the auto-lock when using MfE&lt;/nowiki&gt;

[http://talk.maemo.org/showpost.php?p=1122741&amp;postcount=875 http://talk.maemo.org/showpost.php?p=1122741&amp;postcount=875]

&lt;nowiki&gt;*How to enable/disable auto-connection of different connection types (wifi/3g etc)&lt;/nowiki&gt;

[http://talk.maemo.org/showpost.php?p=1123090&amp;postcount=877 http://talk.maemo.org/showpost.php?p=1123090&amp;postcount=877]

&lt;nowiki&gt;*Nokia won&lt;/nowiki&gt;'t support my N9 because it didn't originate in my country (if you're in the EU &amp; your N9 was bought in the EU, you're in luck)

[http://talk.maemo.org/showpost.php?p=1125033&amp;postcount=910 http://talk.maemo.org/showpost.php?p=1125033&amp;postcount=910]

&lt;nowiki&gt;*I'm about to update to 1.1 via OTA or NSU, will I lose my backed-up data?&lt;/nowiki&gt;

[http://talk.maemo.org/showpost.php?p=1125319&amp;postcount=917 http://talk.maemo.org/showpost.php?p=1125319&amp;postcount=917]

&lt;nowiki&gt;*Are the diff. updates methods (OTA/NSU/F&lt;/nowiki&gt;lash) really diff. in size, why?

[http://talk.maemo.org/showpost.php?p=1125697&amp;postcount=921 http://talk.maemo.org/showpost.php?p=1125697&amp;postcount=921]

&lt;nowiki&gt;*How to have FB/Gtalk etc automatically reconnect after a internet connection's been rest&lt;/nowiki&gt;ored (not really a soln)

[http://talk.maemo.org/showpost.php?p=1126548&amp;postcount=941 http://talk.maemo.org/showpost.php?p=1126548&amp;postcount=941]

Drive app not starting, how to get it working (Pre 1.1?)

[http://forum.meego.com/showthread.php?p=35241 http://forum.meego.com/showthread.php?p=35241#post35241]

Retrieve&lt;nowiki&gt;[a]&lt;/nowiki&gt;&amp;nbsp;forgotten security code….

[http://my-meego.com/faq/showquestion.php?fldAuto=20&amp;faq=1 http://my-meego.com/faq/showquestion.php?fldAuto=20&amp;faq=1]

Missing Quick Launch Icons

[http://talk.maemo.org/showthread.php?t=80019 http://talk.maemo.org/showthread.php?t=80019]

Adjust ringer volume &amp; balance:

-via terminal (alsa, set as start-up script explained in this one)

[http://talk.maemo.org/showthread.php?p=1129092 http://talk.maemo.org/showthread.php?p=1129092#post1129092]

-via GUI (no idea if this actually works, not really clear what the guy's saying)

[http://talk.maemo.org/showthread.php?p=1129196 http://talk.maemo.org/showthread.php?p=1129196#post1129196]

OpenMode kernel for PR1.1 (still a WIP)

[http://maemo.cloud-7.de/HARM/N9/openmode_kernel_PR1.1/ http://maemo.cloud-7.de/HARM/N9/openmode_kernel_PR1.1/]

Manual display brightness control

[http://forum.meego.com/showthread.php?t=4682&amp;page=2 http://forum.meego.com/showthread.php?t=4682&amp;page=2]

Emails being sent via IMAP acct staying in outbox (not sure if this is really because of OS or server end)

[http://talk.maemo.org/showpost.php?p=1130041&amp;postcount=351 http://talk.maemo.org/showpost.php?p=1130041&amp;postcount=351]

idle consumption issue

[http://talk.maemo.org/showpost.php?p=1131198&amp;postcount=72 http://talk.maemo.org/showpost.php?p=1131198&amp;postcount=72]

Terminal level reboot

[http://talk.maemo.org/showthread.php?p=1121191 http://talk.maemo.org/showthread.php?p=1121191#post1121191]

[http://talk.maemo.org/showpost.php?p=1143110&amp;postcount=3 http://talk.maemo.org/showpost.php?p=1143110&amp;postcount=3]

n9 pr 1.1 forgets all passwords after reboot (numerous tips for this issue &amp; similar ones)

[http://talk.maemo.org/showthread.php?t=80540 http://talk.maemo.org/showthread.php?t=80540]

Delete all accts, full reset, recreate all accts, problem should crop up again.

Strange Icon in app screen - help

[http://talk.maemo.org/showthread.php?t=80566 http://talk.maemo.org/showthread.php?t=80566]

N9 mUSB cover repair/replace

[http://talk.maemo.org/showthread.php?t=80024 http://talk.maemo.org/showthread.php?t=80024]

No sources outside Finland yet. A more common L800 will help for some countries.

Someone's looking at getting a 3d print service to make one w/better material.

In which case that post would belong in the Mods/Twks section

How-to access a gmail acct that's blocked, because you have several devices using it.

[http://talk.maemo.org/showthread.php?p=1133506 http://talk.maemo.org/showthread.php?p=1133506#post1133506]

unable to install apps from Nokia Store (2 potential workarounds)

[http://talk.maemo.org/showthread.php?t=79551 http://talk.maemo.org/showthread.php?t=79551]

Push mimetypes to the stock browser (handy as browser doesn’t have “save link as”!)

[http://talk.maemo.org/showthread.php?p=1118280 http://talk.maemo.org/showthread.php?p=1118280#post1118280]

^ Not sure if this is a workaround or mod/twk?

Adapter for earphones/headphones w/in-line mics that aren’t compatible w/the N9

[http://talk.maemo.org/showthread.php?p=1117179 http://talk.maemo.org/showthread.php?p=1117179#post1117179]

Reset GConf settings (for connectivity issues, fairly drastic)

[http://talk.maemo.org/showthread.php?p=1119262 http://talk.maemo.org/showthread.php?p=1119262#post1119262]

=Mods/Tweaks=

(many are subject to change with new major releases)

Disable home-screens &amp; lock screen portrait lock

[http://wiki.meego.com/Migrating_from_N900_to_N950 http://wiki.meego.com/Migrating_from_N900_to_N950#Harmattan_home_screens_in_landscape_mode]

Wallpaper format for landscape/portrait orientation

[http://talk.maemo.org/showpost.php?p=1110710&amp;postcount=60 http://talk.maemo.org/showpost.php?p=1110710&amp;postcount=60]

How to customise your lock-screen

[http://talk.maemo.org/showthread.php?t=79210 http://talk.maemo.org/showthread.php?t=79210]

Changing power button behavior (editing &lt;nowiki&gt;mce.in&lt;/nowiki&gt;i)

[http://shootspeak.com/2011/10/10/nokia-n9-get-extra-functions-by-editing-the-mce-ini-file/ http://shootspeak.com/2011/10/10/nokia-n9-get-extra-functions-by-editing-the-mce-ini-file/]

VKB modifications

[http://talk.maemo.org/showthread.php?t=79879 http://talk.maemo.org/showthread.php?t=79879]

Faster N9 transitions

[http://talk.maemo.org/showthread.php?p=1129426 http://talk.maemo.org/showthread.php?p=1129426#post1129426]

Faster Darker Theme (includes faster transitions)

[http://talk.maemo.org/showthread.php?p=1133468 http://talk.maemo.org/showthread.php?p=1133468#post1133468]

n9Tweak (kind of an app, but essentially many mods/twks rolled into one)

[http://forum.meego.com/showthread.php?t=4991 http://forum.meego.com/showthread.php?t=4991]

USB host-mode (relies on how well things go for kernel openmode)

[http://maemo.cloud-7.de/HARM/H_E_N9/ http://maemo.cloud-7.de/HARM/H_E_N9/]

Disabling/tweaking orientation sensor (alas no easy way to integrate into GUI yet)

[http://forum.meego.com/showthread.php?t=4475 http://forum.meego.com/showthread.php?t=4475]

[http://forum.meego.com/showthread.php?t=4908 http://forum.meego.com/showthread.php?t=4908]

Internet Messengers on the N9/N950

[http://talk.maemo.org/showthread.php?t=78922 http://talk.maemo.org/showthread.php?t=78922]

Proper integration of telepathy accounts

[http://talk.maemo.org/showthread.php?t=80501 http://talk.maemo.org/showthread.php?t=80501]

Integrating &amp; using AIM/ICQ/YM/ MSNM/Vkontakte/QIP (Haze)

[http://talk.maemo.org/showthread.php?t=80687 http://talk.maemo.org/showthread.php?t=80687]

GTK + Python+GTK for Harmattan

[http://talk.maemo.org/showthread.php?t=79229 http://talk.maemo.org/showthread.php?t=79229]

IP Address &quot;Widget&quot; for N9

[http://forum.meego.com/showthread.php?t=5310 http://forum.meego.com/showthread.php?t=5310]

Calenderr: Daily updated Calendar app icon

[http://forum.meego.com/showthread.php?t=4925 http://forum.meego.com/showthread.php?t=4925]

Faster A-GPS response on Nokia N9

[http://talk.maemo.org/showthread.php?t=80287 http://talk.maemo.org/showthread.php?t=80287]

Enable image sharing to Twitter in Gallery

[http://talk.maemo.org/showthread.php?t=80445 http://talk.maemo.org/showthread.php?t=80445]

mute the camera shutter sound (read till 7th post to learn of two methods)

[http://talk.maemo.org/showthread.php?t=80474 http://talk.maemo.org/showthread.php?t=80474]

Enable more Swype settings in the GUI

[http://talk.maemo.org/showthread.php?t=80573 http://talk.maemo.org/showthread.php?t=80573]

Limit swype to the langueges you use

[http://talk.maemo.org/showthread.php?t=80582 http://talk.maemo.org/showthread.php?t=80582]

Bluetooth PBAP (for N900, not yet tested/refined for N9)

[http://wiki.maemo.org/Bluetooth_PBAP http://wiki.maemo.org/Bluetooth_PBAP]

Modified Events screen

[http://talk.maemo.org/showthread.php?t=80906 http://talk.maemo.org/showthread.php?t=80906]

Change clock colour/font/format, &amp; notification icons in the standby screen

[http://talk.maemo.org/showthread.php?t=78536 http://talk.maemo.org/showthread.php?t=78536]

Changing/modifying the system's emoticons

[http://talk.maemo.org/showthread.php?t=80564 http://talk.maemo.org/showthread.php?t=80564]

How to have terminal on apps launcher home-screen w/o keeping dev mode on

[http://talk.maemo.org/showpost.php?p=1138773&amp;postcount=218 http://talk.maemo.org/showpost.php?p=1138773&amp;postcount=218]

Change your N9's fonts

[http://nokiamobileblog.com/how-to-change-the-font-of-your-nokia-n9/ http://nokiamobileblog.com/how-to-change-the-font-of-your-nokia-n9/]

Additional VKB layouts for N9: Greek, Slovenian, Bulgarian etc.

[http://talk.maemo.org/showthread.php?t=79492 http://talk.maemo.org/showthread.php?t=79492]

Repartition RootFS so there's more room for app storage/mem etc (take away space used by FAT32)

[http://my-symbian.com/forum/viewtopic.php?t=43603 http://my-symbian.com/forum/viewtopic.php?t=43603]

[http://talk.maemo.org/showthread.php?t=43833&amp;highlight=partition http://talk.maemo.org/showthread.php?t=43833&amp;highlight=partition]

Connect bluetooth keyboard to N9

[http://forum.meego.com/showthread.php?t=4828 http://forum.meego.com/showthread.php?t=4828]

Changing the User Agent on the N9/N950

[http://talk.maemo.org/showthread.php?t=81291 http://talk.maemo.org/showthread.php?t=81291]

VKB: full-stop button in front of the spacebar

[http://talk.maemo.org/showthread.php?t=81292 http://talk.maemo.org/showthread.php?t=81292]

=Killer Apps=

Mesinput

[http://www.mesinput.com/ http://www.mesinput.com]

Implimentation making use of it.

[http://talk.maemo.org/showthread.php?t=79492 http://talk.maemo.org/showthread.php?t=79492]

CuteTube (truly excellent youtube client/app)

QVDial (alternative to built-in GTalk)

Open Video Player (better than the built-in vidplayer)

[http://talk.maemo.org/showthread.php?t=79537 http://talk.maemo.org/showthread.php?t=79537]&amp;nbsp;

YTBD....

[http://hiro-n9.weebly.com/ http://hiro-n9.weebly.com]

OpenVPN (still crude, not integrated into UX)

[http://forum.meego.com/showthread.php?t=4226 http://forum.meego.com/showthread.php?t=4226]

&lt;nowiki&gt;https://12vpn.com/setup/harmattan/&lt;/nowiki&gt; &amp;nbsp;(slightly clearer help)

&lt;nowiki&gt;https://help.ubuntu.com/community/OpenVPN&lt;/nowiki&gt; (for creating the keys)

OpenJDK / IcedTea (Java SE 7 embedded)

[http://forum.meego.com/showthread.php?t=4012 http://forum.meego.com/showthread.php?t=4012]

Profilematic (user-defined rules for profiles)

[http://talk.maemo.org/showthread.php?t=79642 http://talk.maemo.org/showthread.php?t=79642]

Organiser Feed

[ http://talk.maemo.org/showthread.php?t=80141]

Calendar Feed (most accts I’ve read say the one above is better)

[http://talk.maemo.org/showthread.php?t=80909 http://talk.maemo.org/showthread.php?t=80909]

Toggle BT (handy because apparently Nokia Drv/Mps doesn’t do voice nav while BT is on)

[http://store.ovi.com/content/232250 http://store.ovi.com/content/232250]

DLNA server (Rygel, no GUI)

[http://forum.meego.com/showthread.php?t=4688 http://forum.meego.com/showthread.php?t=4688]

CoudGPS

[http://forum.meego.com/showthread.php?t=4034 http://forum.meego.com/showthread.php?t=4034]

GApp: browser optimised for many mobile google services

[http://www.crochik.com/gapp/ http://www.crochik.com/gapp/]

Outlook sync w/N9 (can also use Nokia Suite workaround to get N9 working w/it, probably better)

[http://forum.meego.com/showthread.php?t=4738 http://forum.meego.com/showthread.php?t=4738]

syncevolution (has carddav for folks who want to use icloud instead of google)

[http://forum.meego.com/showthread.php?t=4588 http://forum.meego.com/showthread.php?t=4588]

OSX iSync for N9

[http://forum.meego.com/showthread.php?t=4761 http://forum.meego.com/showthread.php?t=4761]

Cover-up (album art etc.)

[http://teknologsapps.wordpress.com/coverup/ http://teknologsapps.wordpress.com/coverup/]

KMPlayer

[http://forum.meego.com/showthread.php?t=4101&amp;page=3 http://forum.meego.com/showthread.php?t=4101&amp;page=3]

Swipe Lock app (BabyLock)

[http://forum.meego.com/showthread.php?t=5261&amp;page=2 http://forum.meego.com/showthread.php?t=5261&amp;page=2]

The flashlight N9

[http://store.ovi.com/content/224448?clickSource=browse&amp;categoryId=23&amp;contentArea=applications&amp;pos=2 http://store.ovi.com/content/224448?clickSource=browse&amp;categoryId=23&amp;contentArea=applications&amp;pos=2]

MythTV remote

[http://forum.meego.com/showthread.php?t=5324 http://forum.meego.com/showthread.php?t=5324]

QSpot (spotify &amp; grooveshark)

MyTopSites

[http://store.ovi.com/content/225055 http://store.ovi.com/content/225055]

Nokia LiveView (augmented reality browser)

[http://betalabs.nokia.com/apps/nokia-live-view?req=true http://betalabs.nokia.com/apps/nokia-live-view?req=true]

Home-screen Settings (enable/disable home-screen orientation lock, don’t bother w/manual mods, doesn’t do lock-screen)

[http://store.ovi.com/content/226693 http://store.ovi.com/content/226693]

mBarcode &amp; Photo Analyser

[http://forum.meego.com/showthread.php?p=30082 http://forum.meego.com/showthread.php?p=30082#post30082]

MeeScan

[http://store.ovi.com/content/231518 http://store.ovi.com/content/231518]

EmuMaster

[http://talk.maemo.org/showthread.php?t=80815 http://talk.maemo.org/showthread.php?t=80815]

Widget Canvas

[http://forum.meego.com/showthread.php?t=5410 http://forum.meego.com/showthread.php?t=5410]

Sigma Player (music player, supports gapless audio (could be wrong there) among other things)

[http://talk.maemo.org/showthread.php?p=1116247 http://talk.maemo.org/showthread.php?p=1116247#post1116247]

QuaserMX (music player, looks even better than Sigma, not free though)

[http://talk.maemo.org/showthread.php?t=81318 http://talk.maemo.org/showthread.php?t=81318]

Default Browser Setting: control panel applet for changing default browser

[http://my-meego.com/software/applications.php?name=Default_Browser_Setting&amp;fldAuto=683&amp;faq=9 http://my-meego.com/software/applications.php?name=Default_Browser_Setting&amp;fldAuto=683&amp;faq=9]

Netview: VNC client from Nokia for accessing your N9 from your PC/Laptop

[http://store.ovi.com/content/214366 http://store.ovi.com/content/214366]

Theme Changer

[http://leimu.drupalgardens.com/content/themechanger http://leimu.drupalgardens.com/content/themechanger]

Prey: F/OSS anti-theft app (possibly an easy port to the N9)

[http://preyproject.com/ http://preyproject.com/]

[http://talk.maemo.org/showthread.php?t=81209 http://talk.maemo.org/showthread.php?t=81209]

Live Clock (variation on some of the widget-like manual hacks/mods)

[http://store.ovi.com/content/238928 http://store.ovi.com/content/238928]

Ringing Restorer (restore ringing profile after a timeout)

[http://forum.meego.com/showthread.php?t=5448 http://forum.meego.com/showthread.php?t=5448]

MeePaper (Read It Later client)

[http://store.ovi.com/content/179437 http://store.ovi.com/content/179437]

Redak Text Editor

http://rzr.online.fr/q/redak# redak : #TexT #EditoR for #MeeGo #HarmattaN is alpha stage but more fingers friendly than #vi @n950club / #n9

= Packages Repo =

Add Harmattan-dev Nokia repository

http://talk.maemo.org/showthread.php?t=81154

[[User:rzr]]’s 3rd-party (community) repository

http://rzr.online.fr/q/harmattan

http://talk.maemo.org/showthread.php?t=75815


=Bugs: no confirmed fix, possibly a workaround=

[https://harmattan-bugs.nokia.com/show_bug.cgi?id=210 https://harmattan-bugs.nokia.com/show_bug.cgi?id=210]

[https://harmattan-bugs.nokia.com/show_bug.cgi?id=164 https://harmattan-bugs.nokia.com/show_bug.cgi?id=164]&amp;nbsp;(kinda has a solution, but it requires disabling swype &amp; rebooting)

[https://harmattan-bugs.nokia.com/show_bug.cgi?id=232 https://harmattan-bugs.nokia.com/show_bug.cgi?id=232]

[https://harmattan-bugs.nokia.com/show_bug.cgi?id=96 https://harmattan-bugs.nokia.com/show_bug.cgi?id=96]

[http://talk.maemo.org/showthread.php?t=79379&amp;page=2 How to selectively manipulate &quot;Top Sites&quot; in browser?]

=Design-flaw or missing feature: no confirmed enhancement=

[http://talk.maemo.org/showthread.php?t=80460 http://talk.maemo.org/showthread.php?t=80460]

=In-depth explanation of some underlying aspect of the OS=

Is Maemo 5 (Fremantle) possible on the N9? (terminology for project names etc, is outdated)

[http://talk.maemo.org/showthread.php?p=1076219 http://talk.maemo.org/showthread.php?p=1076219#post1076219]

[http://talk.maemo.org/showthread.php?p=1133375 Messaging's auto-merging]

[[N950/Aegis-notes| AEGIS notes]]

[http://talk.maemo.org/showthread.php?p=1137544 Can I run Fremantle apps on Harmattan?]

[[Category:Harmattan|N9|N950]]
[[Category:N9]]
[[Category:N950]]</text>
    </revision>
  </page>
  <page>
    <title>Harmattan Tips and Workarounds/</title>
    <id>5086</id>
    <revision>
      <id>46346</id>
      <timestamp>2012-01-14T10:30:03Z</timestamp>
      <contributor>
        <username>rzr</username>
        <id>946</id>
      </contributor>
      <comment>/* Packages */</comment>
      <text xml:space="preserve">It would be nice to reformat contents from :

https://docs.google.com/document/d/1a85BouTEB_Cr-K4StgDspSXUeWps-MwsA9gEyYtfrDI/edit

Keywords: [[N9]] [[N950]] [[Harmattan]]



[[Category:Harmattan]]</text>
    </revision>
  </page>
  <page>
    <title>Hebrew</title>
    <id>1785</id>
    <revision>
      <id>48673</id>
      <timestamp>2012-07-04T11:19:21Z</timestamp>
      <contributor>
        <ip>132.72.241.201</ip>
      </contributor>
      <comment>/* Fonts */</comment>
      <text xml:space="preserve">''These instructions refer to previous devices, for N900 please go to [[Hebrew N900]]''

This guide covers setting up Hebrew support in Maemo. These instructions assume [[root access]].

= Hebrew for N800/810 =

== Fonts ==

* Copying some Culmus fonts (Nachlieli, David, etc.) or Windows fonts with Hebrew (Arial, Tahoma, etc.) to &lt;code&gt;/home/user/.fonts&lt;/code&gt; is useful in some applications.
* Some applications' interface elements use Nokia fonts, so they need to be replaced with fonts that include Hebrew glyphs. Unfortunately, the fonts Nokia use are not free, so I can't distribute the Hebrew including version. To generate these fonts:
** Copy the files &lt;code&gt;nosnr.ttf&lt;/code&gt;, &lt;code&gt;nosnb.ttf&lt;/code&gt;, and &lt;code&gt;nscnr.ttf&lt;/code&gt; from &lt;code&gt;/usr/share/fonts/nokia&lt;/code&gt; on the device to a PC.
** Make sure you have [http://fontforge.sourceforge.net/ FontForge] installed.
** Copy Nachlieli Culmus fonts (all files beginning with Nach) from where they are installed in your system to the same directory as the Nokia files.
** Download [http://www.arava.co.il/matan/770/heb/fontmerge fontmerge] and run it in the same directory. to do that run:
::&lt;code&gt;fontforge -lang=ff -script fontmerge&lt;/code&gt;
&lt;ul&gt;&lt;ul&gt;
&lt;li&gt;Copy the generated &lt;code&gt;nosnb-h.ttf&lt;/code&gt;, &lt;code&gt;nosnr-h.ttf&lt;/code&gt;, and &lt;code&gt;nscnr-h.ttf&lt;/code&gt; to &lt;code&gt;/usr/share/fonts/nokia&lt;/code&gt; on the device, and remove the &lt;code&gt;-h&lt;/code&gt; from the name, in order to overwrite the original fonts.&lt;/li&gt;
&lt;li&gt;Other fonts that might need to be fixed similarly are &lt;code&gt;NtmRR4nh.ttf&lt;/code&gt;, &lt;code&gt;NcrRR4nh.ttf&lt;/code&gt;, and &lt;code&gt;SwaRR4nh.ttf&lt;/code&gt; from &lt;code&gt;/usr/share/fonts&lt;/code&gt;. This can be done with the [http://www.arava.co.il/matan/770/heb/fontmerge2 fontmerge2] script. It seems that &lt;code&gt;SwaRR4nh.ttf&lt;/code&gt; is the font used for the keyboard keys, so you must do this if you want to use Hebrew keyboard.&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;After installing or changing fonts, you should run &lt;code&gt;fc-cache -f&lt;/code&gt;. A reboot might be needed for some applications or parts of the GUI to use the new fonts.&lt;/li&gt;&lt;/ul&gt;

== Virtual keyboard ==

Copy the file &lt;code&gt;[http://www.arava.co.il/matan/770/heb/he_IL.vkb he_IL.vkb]&lt;/code&gt; to &lt;code&gt;/usr/share/keyboards&lt;/code&gt;. Then he_IL is added to the list of available languages for the keyboard.

== iconv modules ==

These modules are necessary for some applications (FBreader, Minimo). Download &lt;code&gt;[http://www.arava.co.il/matan/770/heb/gconv.tar.gz gconv.tar.gz]&lt;/code&gt; to the device, and run (as root):
&lt;pre&gt;
tar xzf gconv.tar.gz -C /usr/local
iconvconfig /usr/local/gconv
&lt;/pre&gt;

== Miscellaneous == 

* [http://live.gnome.org/Hildon/HowtoRTL HowToRTL] vaguely relates to BiDi

== Specific applications ==

* Included Opera has no BiDi support, but MicroB (Mozilla based browser) does support BiDi.
* Minimo works (both display and input), as long as gconv modules are installed.
* Claws appears to display Hebrew fine, as long as the encoding is correctly identified in the mail itself.
* FBReader: [http://www.arava.co.il/matan/770/heb/fb-0.8.1-bidi.diff patch] for rudimentary BiDi support. You can install regular packages of FBreader 0.8.1, and use [http://www.arava.co.il/matan/770/heb/FBReader this binary] to replace &lt;code&gt;/usr/bin/FBReader&lt;/code&gt; on the device.
* [http://www.arava.co.il/matan/770/heb/links links-2] (graphics) with some BiDi support is available (just run this binary from XTerm) [http://www.arava.co.il/matan/770/heb/links-fribidi.diff Patch] (relative to 2.1pre23).
* MaemoTeX - [http://www.arava.co.il/matan/770/heb/tex.tgz this] adds Hebrew (and ams) support to MaemoTeX 0.1.6. Just untar it from root directory, and run &lt;code&gt;mktexlsr&lt;/code&gt;. Leafnode appears to have no problems editing ISO-8859-8 files.

[[Category:Internationalization]]
[[Category:Power users]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>Hebrew N900</title>
    <id>3322</id>
    <revision>
      <id>41783</id>
      <timestamp>2011-02-11T13:39:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">== Hebrew Input In PR 1.2 ==

Install [http://maemo.org/downloads/product/Maemo5/ukeyboard/ Ukeyboard] from the application manager. Then select Hebrew as second language in the text input applet in the control panel, also select the hardware keyboard language as Hebrew. You should now be able to switch languages in the hardware keyboard by pressing Ctrl + Space.

== Hebrew Input In Older Releases ==

=== Virtual keyboard ===

Install [http://maemo.org/downloads/product/Maemo5/ukeyboard/ Ukeyboard] from the application manager. Then select Hebrew as second language in the text input applet in the control panel. If the first letter every time you type is changed to a Latin letter, disable auto-capitalisation in the text input applet in the control panel.
[https://bugs.maemo.org/show_bug.cgi?id=9931] ukeyboard now supports the hebrew slideout keyboard

=== Hardware keyboard ===

Install this [http://my.arava.co.il/~matan/repo/binary/hebrew-keymap_1.0_all.deb package]. Or select this [http://my.arava.co.il/~matan/770/n900/hebrew-keymap.install file] with the browser on the device. With this method, shift+backspaces switches between Hebrew and English.

In Hebrew mode, the keyboard map is:

[[Image:N900_hebrew_keymap.png]]

The green symbols represent shift+key. The top row gives F1-F11 with shift. FN gives the same symbols as in English mode.

==== Alternative ways ====

Download [http://my.arava.co.il/~matan/770/new-rx-51 this file], copy it to &lt;code&gt;/usr/share/X11/xkb/symbols/nokia_vndr/rx-51&lt;/code&gt; and reboot. You should now be able to switch between languages by using the FN + vol+/vol- keys.

In addition, the FN+arrows keys now enable Page Up/Down, Home and End, FN+Backspace is tab and FN+Enter is escape.

'''Warning: If you decide to make a backup of the file, make sure you save it in a different folder as keeping it will stop your device from booting. If for any reason your device does not boot after copying the file you should [http://wiki.maemo.org/Updating_the_firmware#Windows reflash] it.'''

===== Step by Step Guide =====

# Copy [http://my.arava.co.il/~matan/770/new-rx-51 this file] through your Maemo Browser by holding your pen over the link to your documents, it will save the file as new-rx-51.html.
# Go to the menu, click on &quot;More...&quot; and open X Terminal.
# Type &quot;sudo gainroot&quot; and press Enter.
# Type the following '''exactly''':&lt;pre&gt;mv /home/user/MyDocs/.documents/new-rx-51.html /usr/share/X11/xkb/symbols/nokia_vndr/rx-51&lt;/pre&gt; and press enter.
# Run the command &lt;code&gt;setxkbmap&lt;/code&gt;.

===== Alternative Language Switcher =====
Download [http://pastebin.com/pastebin.php?dl=f76a9a4d7 this file] to make the language change by pressing Fn + Down Arrow. Note that once the arrow is clicked you must switch languages again.

== Hebrew related issues in applications ==

=== SMS  ===

The current SMS aligning may be unsuited for Hebrew users as the writing direction is LTR and the text is aligned to the left. If you do not usually write English SMS's you may find this solution appropriate. 

Download [http://rapidshare.com/files/337973758/HebrewSMS.rar this file], copy the .mo file to /usr/share/locale/en_GB/LC_MESSAGES and the rest to /usr/share/rtcom-messaging-ui/html.

==== Step by Step Guide ====
# Download [http://rapidshare.com/files/337973758/HebrewSMS.rar this file] and extract it to .documents on your device (via PC).
# Go to the menu, click on &quot;More...&quot; and open X Terminal.
# Type &quot;sudo gainroot&quot; and press Enter.
# Type the following '''exactly''': &quot;mv /home/user/MyDocs/.documents/rtcom-messaging-ui.mo /usr/share/locale/en_GB/LC_MESSAGES/rtcom-messaging-ui.mo&quot; and press enter.
# Type the following '''exactly''':&lt;pre&gt;mv /home/user/MyDocs/.documents/MessagingWidgetsSMSConversation.css /usr/share/rtcom-messaging-ui/html/MessagingWidgetsSMSConversation.css&lt;/pre&gt; and press enter.
# Type the following '''exactly''':&lt;pre&gt;mv /home/user/MyDocs/.documents/MessagingWidgetsSMSConversation.html /usr/share/rtcom-messaging-ui/html/MessagingWidgetsSMSConversation.html&lt;/pre&gt;and press enter.
# Reboot.

=== Contact Index ===

If you open &quot;Phone -&gt; Select contact&quot; you may notice the option to scroll to a letter, this solution changes the letter to Hebrew. 

Download [http://my.arava.co.il/~matan/770/n900/osso-addressbook.mo this file] and copy it to &lt;code&gt;/usr/share/locale/en_GB/LC_MESSAGES&lt;/code&gt;. (Or to en_US depending on language).

==== Step by Step Guide ====

# Download [http://my.arava.co.il/~matan/770/n900/osso-addressbook.mo this file] and move it to .documents on your device (vis PC).
# Go to the menu, click on &quot;More...&quot; and open X Terminal.
# Type &quot;sudo gainroot&quot; and press Enter.
# Type the following '''exactly''':&lt;pre&gt;mv /home/user/MyDocs/.documents/osso-addressbook.mo /usr/share/locale/en_GB/LC_MESSAGES/osso-addressbook.mo&lt;/pre&gt; and press enter.
# Reboot.

=== iconv modules ===

Those modules are necessary for applications that use the character encoding support of the C library. The diablo package works on the [[Nokia N900|N900]]. Download from [http://repository.maemo.org/extras-devel/pool/diablo/free/m/more-gconv-modules/more-gconv-modules_2.5.0-1osso10-2_armel.deb here ] and install (requires [[root access]]).

[[Category:Internationalization]]
[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Help:Contents</title>
    <id>2398</id>
    <revision>
      <id>46834</id>
      <timestamp>2012-02-25T17:16:54Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <comment>Undo revision 46828 - Do not overwrite valid content, add or start a new page instead.</comment>
      <text xml:space="preserve">'''To quickly look for an article, just enter the desired keyword in the search box above on the right and click the orange &quot;GO&quot; button.'''
You can also browse the wiki either by going to a [[Special:Random|random page]], by browsing the various [[Special:Categories|categories]] or by clicking through the [http://wiki.maemo.org/index.php?title=Special%3ACategoryTree&amp;target=content&amp;mode=categories&amp;dotree=Show+Tree category hierarchy].

'''For questions and support, please [http://talk.maemo.org/ come to the Talk forum]!'''

----

To learn more about editing and creating pages in the proper way, read up the [http://meta.wikimedia.org/wiki/Help:Contents general wikimedia help].
In addition, editors are very welcome to our [[wiki gardeners]], a bunch of people (trying :-) to maintain the wiki. There, we also setup some guiding principlse that should help us all in ordering the chaos :-)

Our wiki uses the wikimedia software, the same as used on wikipedia.org. You can read more about it [http://meta.wikimedia.org/wiki/Help:Contents on their help page].</text>
    </revision>
  </page>
  <page>
    <title>Help:Editing</title>
    <id>1545</id>
    <revision>
      <id>46259</id>
      <timestamp>2012-01-08T13:31:46Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 46257 by [[Special:Contributions/112.203.62.148|112.203.62.148]] ([[User talk:112.203.62.148|Talk]])</comment>
      <text xml:space="preserve">This is a wiki. You can edit the articles. Just make sure to use the special syntax to properly format text, include links and so on.

== Format text ==

=== Headings ===

To make headings:
{| class=&quot;wikitable&quot;
! This markup !! produces
|-
| &lt;nowiki&gt;== Header ==&lt;/nowiki&gt; || 
== Header ==
|-
| &lt;nowiki&gt;=== Sub-Header ===&lt;/nowiki&gt; || 
=== Sub-Header ===
|-
| &lt;nowiki&gt;==== Sub-sub-Header ====&lt;/nowiki&gt; || 
==== Sub-sub-Header ====
|}

== Font Face ==

To make bold or italic font:
{| class=&quot;wikitable&quot;
! This markup !! produces
|-
| &lt;nowiki&gt;This is ''italic'' and this is '''bold'''.&lt;/nowiki&gt; || This is ''italic'' and this is '''bold'''.
|-
|}

=== Lists ===

An asterisk &quot;*&quot; at the start of each line indicates an item in a bullet list:
* One item
* and another one

Create a numbered list by adding a hash sign &quot;#&quot; at the start of the line:

# First item
# Second item
# Third item

=== Code ===

To make clear text is meant as code or computer in/output use &lt;nowiki&gt;&lt;pre&gt;&lt;/nowiki&gt; and &lt;nowiki&gt;&lt;/pre&gt;&lt;/nowiki&gt; tags to surround the text:

&lt;nowiki&gt;&lt;pre&gt;this is preformatted text&lt;/pre&gt;&lt;/nowiki&gt;

produces

&lt;pre&gt;this is preformatted text&lt;/pre&gt;

Alternatively, just prepend a space at the beginning of the line:
 &lt;- here is a space at the beginning of the line.

For code that appears in the middle of a sentence, use &lt;nowiki&gt;&lt;code&gt;&lt;/nowiki&gt; and &lt;nowiki&gt;&lt;/code&gt;&lt;/nowiki&gt; tags for formatting.

== Creating links ==

To link to another article in this wiki:
{| class=&quot;wikitable&quot;
! This markup !! produces
|-
| &lt;nowiki&gt;Have a look at our [[new users]] section.&lt;/nowiki&gt; || Have a look at our [[new users]] section.
|-
|}
To link to another namespace, e.g. a category:
{| class=&quot;wikitable&quot;
! This markup !! produces
|-
| &lt;nowiki&gt;Have a look at our [[:Category:Users]] section.&lt;/nowiki&gt; || Have a look at our [[:Category:Users]] section.
|-
|}

== Creating tables ==

Make a sortable table. This input:
&lt;pre&gt;
{| class=&quot;wikitable sortable&quot; border=1
! col1 !! col2 !! col3
|-
| field1 || field2 || field3
|-
| ZZZ    || AAA    || MMM
|}
&lt;/pre&gt;
Produces:
{| class=&quot;wikitable sortable&quot; border=1
! col1 !! col2 !! col3
|-
| field1 || field2 || field3
|-
| ZZZ    || AAA    || MMM
|}

== Templates ==

Templates allow you to pre-define text and layout that can be included in other pages. Examples are notifications like &quot;This site is a stub&quot; or information boxes for applications that contain certain fields like &quot;name&quot; and &quot;genre&quot;.
Include a template ''demo'' like this:
&lt;pre&gt;
{{demo}}
&lt;/pre&gt;

== Further information ==

This wiki is powered by MediaWiki. The [http://www.mediawiki.org/wiki/Help:Formatting full formatting help] is therefore available on their website.

[[Category:Documentation]]
[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>Help talk:Contents</title>
    <id>4480</id>
    <revision>
      <id>39133</id>
      <timestamp>2010-09-26T14:11:44Z</timestamp>
      <contributor>
        <ip>78.105.12.184</ip>
      </contributor>
      <text xml:space="preserve">== auto Switch 2G/3G ==

Can someone explain the auto Switch 2G/3G feature? The wiki does not explain it clearly! Thanks so much!</text>
    </revision>
  </page>
  <page>
    <title>Help testing software</title>
    <id>2753</id>
    <revision>
      <id>38009</id>
      <timestamp>2010-08-23T11:04:52Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/203.177.74.139|203.177.74.139]] ([[User talk:203.177.74.139|Talk]]); changed back to last version by [[User:Chemist|Chemist]]</comment>
      <text xml:space="preserve">{{extras-testing}}

If you want more info about extras testing risks, please see [http://talk.maemo.org/showthread.php?t=32676 Seriously: don't send users out of Extras without a big warning]. There is also a great summary of the different levels of stability by repository: [http://talk.maemo.org/showpost.php?p=431432&amp;postcount=5 at talk.maemo.org]

==Intro==
If you are eager to help the Maemo community, there are numerous ways to help. One pretty easy way is to help in application testing. This article is a beginner-friendly introduction to the [[Extras-testing]] repository and testing process.

'''Please see also [[Testing Squad]] -article and consider joining the squad!
'''

== Step by step instructions ==

===Finding Things and Getting Started===

Ultimately, as you become more comfortable with Maemo, you will to want to refer to the [[Extras-testing]] wiki page. This page has some specific guides for those who may be overwhelmed by the extras-testing page. 

===Finding an App to Test===
The applications waiting for testing are listed [http://maemo.org/packages/repository/qa/fremantle_extras-testing/ at maemo.org packages] by age (the oldest is first). When picking an app to test, note that those that already have 10 or more karma are &quot;done&quot;. Do not waste your time on those. The same applies if the package has less than -5 karma: such an app obviously needs to be fixed and re-released.

Pick an app to test. Maybe you have a particular interest in seeing one make it to [[Extras]]; maybe you just want to help and start at the top (oldest). Click on the link to open the package version page. Make sure you are testing the right version of the app: there may be an earlier version already in extras (which you might have already installed). In fact, there may even be a third version in extras-devel, but that won't show up unless you enable that repository.

In the case you have the Extras version installed, the newest version should show up as an available upgrade if you have the extras-testing repository enabled. You should uninstall the extras version first (rather than upgrading directly) so you can properly check for optification. Before you can install the package from testing, you'll need to add the [[repository]].

===Adding the Extras-testing Repository===
On your [[Nokia N900|N900]] device, go into App Manager, top menu, &quot;Repositories&quot;

[[Image:add_repository.png]]

and add the following repository:

[[Image:Catalogue_details.png]]


{| 
| Name: Maemo Extras Testing
|-
| URL: http://repository.maemo.org/extras-testing/
|-
| Distribution: fremantle
|-
| Sections: free
|-
| Enabled: YES
|}


*Do &quot;Update&quot;.

*Click on &quot;Download&quot; and find the app you want to test. make sure the version of the app you have decided to test is the same as the one in testing (remember the package version page you opened in your browser?).

'''Note: Each new version of the package has to be voted up separately!'''

== Testing process ==
[[Extras-testing/QA_Checklist|QA Checklist]] describes the different steps in testing. Here will be explanations to each step that isn't self-explanatory.
Quote from article for reference:
 1. [ ] Bug database exist.
 2. [ ] Licensing ok.
 3. [ ] No illegal/dubious content.
 4. [ ] Working provided features.
 5. [ ] No missing announced features.
 6. [ ] Optification ok.
 7. [ ] No performance problems.
 8. [ ] No power management issues.
 9. [ ] No known security risks.



===Testing for Optification===
&quot;Optification&quot; means moving anything of significant size out of the root partition and into the 2 GB /opt partition so that the very cramped 256 MB rootfs doesn't fill up (which can really ruin your day). You see disk usage by using the disk free command (df).

A typical N900 might show the following disk free output:
* rootfs use 76%
* mmcblk0p2 use 6%

Remember, the idea is to prevent the rootfs from being filled up. 

What you want to do is run
 df -h | grep -e rootfs -e mmcblk0p2

from the command line before and after you install and see how much the usage of each partition changes. If more than, say, 300 kb (0.3 MB) are added to usage of rootfs, it's too much and the package needs to be optified (so vote it down with that comment). BTW, the above command just filters out the unnecessary lines; you can just type
 df -h
if you want. The '-h' gives you the numbers in &quot;human-readable&quot; numbers like MB instead of bytes/blocks/kb.

You could also run a perl script that reports non-optified components of a package no matter when you installed it. You find this script in [http://talk.maemo.org/showpost.php?p=433336&amp;postcount=20 this post] on talk.maemo.org.

One of the other tests is that the package uninstalls cleanly. A (partial) way to check this is to uninstall it and see if the df returns to what it was before you installed.

=== Voting ===

Refer to [[Extras-testing/QA_Checklist|the QA Checklist]] to see the other criteria for a successful test. When you have evaluated the application, be sure to report your findings by voting on the package version page you opened in your browser. You may need to request a garage account first. Also leave a comment if you have anything to report besides success. Comments take a while to process, so assume it has been added or you may find yourself double-commenting.

sources:
* http://talk.maemo.org/showpost.php?p=349477&amp;postcount=63
* http://danielwilms.wordpress.com/2009/11/27/extras-testing-step-by-step/
* http://talk.maemo.org/showpost.php?p=431878&amp;postcount=24

[[Category:Development]]
[[Category:Power users]]
[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Hildon</title>
    <id>3452</id>
    <revision>
      <id>39425</id>
      <timestamp>2010-10-06T09:42:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Further reading */ add gitorious link</comment>
      <text xml:space="preserve">== What is Hildon? ==

Hildon is an application framework for Linux operating system mobile devices (PDAs, mobile phones, etc.), developed by Nokia for Maemo, that focuses on providing a finger friendly interface.

== Further reading ==

* [http://maemo.org/api_refs/5.0/5.0-final/hildon/ API reference for Fremantle]
* [http://maemo.gitorious.org/hildon/hildon Hildon source code]
* [[:wikipedia:Hildon|Hildon on Wikipedia]]
* [[Hildon-Extras]] additional community-created widgets for Hildon

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Hildon-Extras</title>
    <id>3722</id>
    <revision>
      <id>39462</id>
      <timestamp>2010-10-08T08:41:44Z</timestamp>
      <contributor>
        <ip>194.111.70.80</ip>
      </contributor>
      <comment>Link to package info page</comment>
      <text xml:space="preserve">Hildon-Extras is a set of community-contributed widgets (that's GTK+ widgets, not Desktop widgets) and dialogs that can be used by application developers to provide a usable, well-balanced interface. Some of these widgets provide functionality that the &quot;stock&quot; [[Hildon]] widgets don't provide, and some dialogs are touch-friendly versions of existing dialogs in GTK+ and/or Hildon.

A more detailed documentation of the components found in Hildon-Extras (currently excluding the Qt bindings in QtHeWrapper) can be found here:
* http://hildon-extras.garage.maemo.org/reference/current/

==Current status==

Hildon-Extras is now [http://maemo.org/packages/view/libhildon-extras1/ released]. The components are considered quite stable at this point.

===Translations===

If you are interested in translating Hildon-Extras, please have a look at the Transifex project here: http://www.transifex.net/projects/p/hildon_extras/c/trunk/ There are only about 7 strings that shouldn't take you more than a minute to translate.

===Qt integration===

There is a class called &lt;code&gt;QtHeWrapper&lt;/code&gt; in Hildon-Extras that is provided to developers of [[Qt-Maemo|Qt]]-based apps. It is a [[:wikipedia:Wrapper_library|wrapper]] that provides interoperability between Hildon-Extras and Qt code. It allows developers to call Hildon-Extras dialogs easily from Qt-based software.

&lt;code&gt;QtHeWrapper&lt;/code&gt; is a static class that currenty supports all the dialogs in Hildon-Extras. It contains static methods that display a given dialog. These methods accept such parameters and they also have such return types that make them easily callable from Qt code. (Eg. &lt;code&gt;QColor&lt;/code&gt; or &lt;code&gt;QString&lt;/code&gt;.) No actual reference to Gtk/Hildon headers is needed in order to have it working.

In order to use it, you must include &lt;code&gt;qt-he-wrapper.h&lt;/code&gt; which is a C++ header and contains a class called &lt;code&gt;QtHeWrapper&lt;/code&gt; with static functions:
* &lt;code&gt;showHeSimpleColorDialog&lt;/code&gt;
* &lt;code&gt;showHeColorDialog&lt;/code&gt;
* &lt;code&gt;showHeAboutDialog&lt;/code&gt;
* &lt;code&gt;showHeFontDialog&lt;/code&gt;

===List of applications using Hildon-Extras===

* [http://maemo.org/downloads/product/Maemo5/conboy/ Conboy] (&lt;code&gt;HeCheckButton&lt;/code&gt;, &lt;code&gt;HeFullscreenButton&lt;/code&gt;, &lt;code&gt;HeAboutDialog&lt;/code&gt;)
* [http://thpinfo.com/2010/maepad/ MaePad] (&lt;code&gt;HeAboutDialog&lt;/code&gt;, &lt;code&gt;HeFullscreenButton&lt;/code&gt;, &lt;code&gt;HeSimpleColorDialog&lt;/code&gt;)
* [http://mrawviewer.garage.maemo.org MRAWViewer] (&lt;code&gt;HeFullscreenManager&lt;/code&gt; at the moment, planning to add &lt;code&gt;HeAboutDialog&lt;/code&gt; for the next release)
* [https://garage.maemo.org/projects/maemo-mapper/ Mappero] (&lt;code&gt;HeAboutDialog&lt;/code&gt;)
* [https://garage.maemo.org/projects/mapper/ Mapper] (&lt;code&gt;HeAboutDialog&lt;/code&gt;)
* [http://maemo.org/downloads/product/Maemo5/custom-operator-name-widget/ Custom Operator Name Widget] (&lt;code&gt;HeColorDialog&lt;/code&gt;)
* [http://maemo.org/downloads/product/Maemo5/gpodder/ gPodder] (&lt;code&gt;HeAboutDialog&lt;/code&gt;)
* [http://maemo.org/downloads/product/Maemo5/panucci/ Panucci] (&lt;code&gt;HeAboutDialog&lt;/code&gt;)
* [[Queen BeeCon Widget]] (&lt;code&gt;HeFont*&lt;/code&gt;, &lt;code&gt;He*Color*&lt;/code&gt;)
* [https://garage.maemo.org/projects/sticky-notes/ Sticky Notes] (&lt;code&gt;HeSimpleColorDialog&lt;/code&gt;, &lt;code&gt;HeColorDialog&lt;/code&gt;, &lt;code&gt;HeFontDialog&lt;/code&gt; and &lt;code&gt;HeAboutDialog&lt;/code&gt; through &lt;code&gt;QtHeWrapper&lt;/code&gt;)
* [https://extcalllog.garage.maemo.org/ Extended Call Log] (&lt;code&gt;HeAboutDialog&lt;/code&gt;)
* [https://webtexter.garage.maemo.org/ WebTexter] (&lt;code&gt;HeAboutDialog&lt;/code&gt;)
* [https://pidgin.garage.maemo.org/ Pidgin] (&lt;code&gt;HeMenuView&lt;/code&gt;)
* ''(add yours here)''

==Widget Gallery==

Here is a list of widgets currently in Hildon-Extras.

===Dialogs===

Hildon-Extras has a nice collection of dialog windows that are optimized to be both good-looking and finger-friendly.

All of the dialogs support integration with Qt-based software via the &lt;code&gt;QtHeWrapper&lt;/code&gt; class (in the &quot;qt-he-wrapper.h&quot; header).

====HeAboutDialog====

[[Image:HeAboutDialog.png|thumb|About dialog in MaePad]]

The &lt;code&gt;HeAboutDialog&lt;/code&gt; is a replacement for &lt;code&gt;GtkAboutDialog&lt;/code&gt; and provides a finger-friendly, good-looking about dialog with optional buttons for:

* Project website
* Bug tracker (&quot;Enter new bug&quot;)
* Donations page

There is a [[:wikipedia:Wrapper_function|wrapper]] that can be used by Qt-based applications for this dialog in &lt;code&gt;QtHeWrapper&lt;/code&gt;.

If you are writing a Python application, you might be interested in the Python port of &lt;code&gt;HeAboutDialog&lt;/code&gt;: [http://repo.or.cz/w/gpodder.git/blob_plain/HEAD:/src/gpodder/gtkui/frmntl/about.py Download about.py]

====HeSimpleColorDialog====

[[Image:HeSimpleColorDialog.png|thumb|Simple color dialog]]

This dialog provides a finger-friendly, limited list of colors (a Tango-ish color palette) for the user to choose from. Especially useful when the color selection does not have to be &quot;that special shade of green&quot; but rather &quot;a nice green&quot; (for example to colorize categories or items).

There is also the possibility of an advanced mode for this dialog.
This presents an additional &quot;Advanced&quot; button above &quot;Select&quot;. When clicked, it presents the user with a regular &lt;code&gt;HeColorDialog&lt;/code&gt; to pick an exact colour.

Example code and use cases:

* MaePad uses it for coloring the text of checklist items and for the color in sketches ([http://repo.or.cz/w/maepad.git/blob/HEAD:/src/ui/callbacks.c src/ui/callbacks.c])

====HeColorDialog====

[[Image:HeColorDialog.png|thumb|Color dialog]]

This dialog lets the user to select a color by selecting the intensity of the red, green, and blue channels. Also provides hex input/output of colours.

It may come in handy when a developer wants his/her users to be able to pick an exact shade of an exact colour in a finger-friendly way.

====HeFontDialog====

[[Image:HeFontDialog.png|thumb|Font dialog]]

Lets the user choose a font together with a font size. It also offers bold and italic styles.

====HeMenuView====

[[Image:he-menu-view-before-and-after.png|thumb|Menu view]]

This widget allows you to display a GtkMenu as a series of columns in a dialog. In addition, you can hook into all your HildonWindow widgets and have those menus that are not HildonAppMenu widgets appear as HeMenuView dialogs.

===Buttons===

The buttons in Hildon-Extras provide commonly used behaviour and are looking nice.

====HeCheckButton====

[[Image:HeCheckButton.png|thumb|Check button]]

&lt;code&gt;HeCheckButton&lt;/code&gt; is a check button with primary and secondary labels. The standard HildonCheckButton supports only one label.

This button can be very handy for developers who would like to provide some description about the functionality of a check box.

====HeFullscreenButton====

[[Image:HeFullscreenButton.png|thumb|The HeFullScreenButton]]

&lt;code&gt;HeFullscreenButton&lt;/code&gt; is a button that allows users to '''leave''' full screen mode. It becomes visible after the user touched the screen or pressed a key and it vanishes after 5 seconds of inactivity.

It looks like the full screen button in the built-in applications of Maemo 5, so it is very good if a developer wants his/her application to blend in well with the rest of the platform.

====HeColorButton====

[[Image:HeColorButton.png|thumb|Color button]]

On tapping the &lt;code&gt;HeColorButton&lt;/code&gt; opens the &lt;code&gt;HeColorDialog&lt;/code&gt; and lets the user select a color. This color is then displayed on the &lt;code&gt;HeColorButton&lt;/code&gt;.

====HeFontButton====

[[Image:HeFontButton.png|thumb|Font button]]

On tapping the &lt;code&gt;HeFontButton&lt;/code&gt; displays a &lt;code&gt;HeFontDialog&lt;/code&gt; that lets the user select a font. The selected font is then displayed on the &lt;code&gt;HeFontButton&lt;/code&gt;.

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Hildon Desktop</title>
    <id>5206</id>
    <revision>
      <id>48292</id>
      <timestamp>2012-06-09T12:29:17Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>Redirecting to [[Hildon desktop]]</comment>
      <text xml:space="preserve">#REDIRECT [[Hildon desktop]]</text>
    </revision>
  </page>
  <page>
    <title>Hildon Event Feed</title>
    <id>5270</id>
    <revision>
      <id>50095</id>
      <timestamp>2012-10-04T19:54:18Z</timestamp>
      <contributor>
        <username>marxian</username>
        <id>4184</id>
      </contributor>
      <comment>/* Examples */</comment>
      <text xml:space="preserve">Hildon Event Feed is an event feed application and widget for Maemo5, with the purpose of display events posted by third-party applications and scripts. The event feed provides several DBus methods that can be used for posting events, removing events and adding refresh actions, which can be called using dbus-send or via one of the higher-level DBus APIs using Python, Qt etc.

The Hildon Event Feed DBus object is located at:

*Service: '''com.maemo.eventFeed'''
*Path: '''/'''
*Interface: '''com.maemo.eventFeed'''

==DBus Methods==

'''addEvent'''

Adds an event to the event feed.

Takes the following arguments:

 '''sourceName (string)''': The name used to identify the source of the event. Must be unique to the source.

 '''sourceDisplayName (string)''': The name representing the source for display purposes in the event feed UI.

 '''icon (string)''': The path to the icon for the source. Can be a path to a local file, or a link to a file on a remote server.

 '''title (string)''': The title of the event.

 '''body (string)''': The description/details of the event.

 '''images (array of strings)''': Images for the event (e.g video thumbnails). Only the first two images will be displayed. As with the icon, HTTP links can be used.

 '''footer (string)''': Useful for indicating the original source of the event (e.g twitter username).

 '''timestamp (string)''': The date and time of the event. 

Accepted formats for '''timestamp''':

*Timestamp in msecs since epoch, e.g '1349044868990' 
*String in ISO format, e.g '2012-09-30T23:41:08.000Z'
*String in Qt::TextDate format, e.g 'Sun Sep 30 23:41:08 2012'
*String format 'Sun, 30 Sep 2012 23:41:08'

 '''action (string)''': The action to be called when the user taps on the event in the event feed UI.

Accepted formats for '''action''':

*dbus:session [service] [path] [interface] [method] [argument(s)] For DBus calls on session bus.
*dbus:system [service] [path] [interface] [method] [argument(s)] For DBus calls on system bus.
*exec [command] [argument(s)] For calling an application/script directly.

Returns:

 '''eventId (long)''' if successful, else '''-1'''

'''removeEvent'''

Removes the specified event from the event feed.

Takes the following arguments:

 '''eventId (long)'''

Returns:

 '''success (boolean)'''

'''removeEventsBySourceName'''

Removes all events with sourceName equal to that specified.

Takes the following arguments:

 '''sourceName (string)'''

Returns:

 '''success (boolean)'''

'''addRefreshAction'''

Adds a refresh action for the specified source. This will be called when the user chooses to refresh the event feed.

Takes the following arguments:

 '''sourceName (string)'''

 '''refreshAction (string)''': Accepted formats are the same as for event action.

Returns:

 '''success (boolean)'''


'''removeRefreshAction'''

Removes the refresh action for the specified source, if it exists.

Takes the following arguments:

 '''sourceName (string)'''

Returns:

 '''success (boolean)'''

'''getRefreshAction'''

Retrieves the refresh action for the specified source, if it exists.

Takes the following arguments:

 '''sourceName (string)'''

Returns:

 '''action (string)''' if it exists, else an empty string.

==Examples==

'''Adding an event'''

dbus-send

 dbus-send --print-reply --type=method_call --dest=com.maemo.eventFeed / com.maemo.eventFeed.addEvent string:'my_source' string:'My Source' string:'/path/to/my/icon.png' string:'My Event' string:'This is an event' array:string:'/path/to/image/one.png', '/path/to/image/two.png' string:'Event footer' string:'2012-10-01T16:00:08.000Z' string:'exec /path/to/my/script argument'

Python

 import dbus
 import datetime
 
 current_date_time = datetime.datetime.now().strftime(&quot;%Y-%m-%dT%H:%M:%S&quot;)
 
 bus = dbus.SessionBus()
 iface = dbus.Interface(bus.get_object(&quot;com.maemo.eventFeed&quot;, &quot;/&quot;), &quot;com.maemo.eventFeed&quot;)
 
 event_id = iface.addEvent('my_source', 'My Source', '/path/to/my/icon.png', 'My Event', 'This is an event', ['/path/to/image/one.png', '/path/to/image/two.png'], 'Event footer', current_date_time, 'exec python /path/to/my/script argument')
 
 if event_id &gt; 0:
     print event_id
 else:
     print 'Error adding event'

'''Example Python script to retrieve YouTube videos and add them to the event feed'''

 #!/usr/bin/env python
 
 from __future__ import with_statement
 import urllib2
 import simplejson
 import dbus
 import datetime
 import sys
 
 LAST_RUN_DATE_TIME_FILE = '/home/user/Event Feed/examples/YouTube/last_run.txt' # File to read/write serialized date/time when script was last run.
 SCRIPT_FILE = '/home/user/Event\ Feed/examples/YouTube/get_youtube_videos' # Path to the script.
 
 def get_youtube_videos(query):
 	&quot;&quot;&quot; Retrieve YouTube videos and populate the Hildon Event Feed
 	
 	    Usage: get_youtube_videos [query]
         &quot;&quot;&quot;
     
 	query = query.strip().replace(' ', '+')
 	video_feed = 'http://gdata.youtube.com/feeds/api/videos?v=2.1&amp;max-results=20&amp;alt=json&amp;orderby=published&amp;q='
 	video_fields = 'entry(media:group(media:title,media:thumbnail,media:description,media:credit,yt:uploaded,yt:videoid))'
 	
 	source_name = 'youtube_example' # Identifies the source of the events. Must be unique to the source.
 	source_display_name = 'YouTube' # Display name for the source in the event feed UI.
 	icon = '/home/user/Event Feed/examples/YouTube/youtube_icon.png' # Icon to be displayed in the event feed UI.
 	action = 'dbus:system com.nokia.osso_browser /com/nokia/osso_browser/request com.nokia.osso_browser load_url' # This will be called when the user taps on an item in the event feed. In this example, the video url is opened in the browser.
 	refresh_action = 'exec python %s %s' % (SCRIPT_FILE, query) # This will be called when the user presses the 'Refresh' button in the event feed UI.
 	
 	bus = dbus.SessionBus()
 	iface = dbus.Interface(bus.get_object('com.maemo.eventFeed', '/'), 'com.maemo.eventFeed') # Connect to event feed dbus object
 	iface.addRefreshAction(source_name, refresh_action) # Add a refresh action to the event feed.
 	
 	last_run = script_last_run() # Time when script was last run. Will be used to check against the date/time of each video in the feed.
 	
 	result = urllib2.urlopen('%s%s&amp;fields=%s' % (video_feed, query, video_fields)).read()
 	json_result = simplejson.loads(result)
 	
 	try:
 		result = json_result['feed']
 		videos = result['entry']
 	except:
 		videos = []
 		print 'Error retrieving video feed'
 	
 	for video in videos:
 		try:
 			group = video['media$group']
 			video_id = group['yt$videoid']['$t']
 			title = group['media$title']['$t']
 			description = group['media$description']['$t']
 			thumbnail = group['media$thumbnail'][3]['url']
 			thumbnail2 = group['media$thumbnail'][4]['url']
 			uploader = group['media$credit'][0]['$t']
 			upload_date = group['yt$uploaded']['$t']
 			
 			try:
 				item_date_time = datetime.datetime.strptime(upload_date[0: upload_date.find('.')], '%Y-%m-%dT%H:%M:%S')
 			except:
 				print 'Cannot parse item date/time. Using default'
 				item_date_time = datetime.datetime.min
 			
 			if item_date_time &gt; last_run:
 				print iface.addEvent(source_name, source_display_name, icon, title, description, [thumbnail, thumbnail2], uploader, upload_date, '%s http://www.youtube.com/watch?v=%s' % (action, video_id))
 		
 		except:
 			print 'Error processing video item'
 			
 	set_script_last_run(datetime.datetime.now().strftime('%Y, %m, %d, %H, %M, %S'))
 
 def script_last_run():
 	&quot;&quot;&quot; Read serialized date/time from last_run.txt. &quot;&quot;&quot;
 	
 	date_time_string = ''
 	last_run = datetime.datetime.min
 	
 	try:
 		with open(LAST_RUN_DATE_TIME_FILE, 'r') as file:
 			date_time_string = file.read()
 			file.close()
 			
 		if date_time_string != '':
 			try:
 				last_run = datetime.datetime.strptime(date_time_string, '%Y, %m, %d, %H, %M, %S')
 			except:
 				print 'Saved date/time in incorrect format. Using default'
 				
 	except IOError:
 		print 'Cannot read date/time from file. Using default.'
 					
 	return last_run
 	
 def set_script_last_run(date_time_string):
 	&quot;&quot;&quot; Serialize the date/time the script was last run to last_run.txt. &quot;&quot;&quot;
 
 	try:
 		with open(LAST_RUN_DATE_TIME_FILE, 'w') as file:
 			file.write(unicode(date_time_string))
 			file.close()
 	except IOError:
 		print 'Cannot write date/time to file'
 
 if __name__ == '__main__':
 	if len(sys.argv) == 2:
 		sys.exit(get_youtube_videos(sys.argv[1]))
 	else:
 		print 'Usage: get_youtube_videos [query]'
 

'''Example Python script to retrieve an RSS feed (default is latest TMO threads) and post new items to the event feed.

 #!/usr/bin/env python
 
 from __future__ import with_statement
 import xml.dom.minidom as DOM
 import urllib2
 import dbus
 import re
 import datetime
 import sys
 
 LAST_RUN_DATE_TIME_FILE = '/home/user/Event Feed/examples/RSS Feed/last_run.txt' # File to read/write serialized date/time when script was last run.
 SCRIPT_FILE = '/home/user/Event\ Feed/examples/RSS\ Feed/get_rss_feed' # Path to the script.
 
 def get_rss_feed(feed = 'http://talk.maemo.org/external.php?type=RSS2'):
 	&quot;&quot;&quot; Retrieve the RSS feed (default is latest TMO threads) and post events to the Hildon Event Feed. &quot;&quot;&quot;
 	
 	source_name = 'rss_feed_example' # Source of the events
 	display_name = 'RSS Feed' # Source name displayed in the event feed UI
 	icon = '/usr/share/icons/hicolor/64x64/hildon/general_rss.png' # Icon for the events in the UI
 	action = 'dbus:system com.nokia.osso_browser /com/nokia/osso_browser/request com.nokia.osso_browser load_url' # This will be called when the user taps on an item in the event feed. In this example, the link is opened in the browser.
 	refresh_action = 'exec python %s %s' % (SCRIPT_FILE, feed) # When this refresh action is added, the script will be called again (with same feed) when the 'Refresh' button is pressed in the event feed UI.
 	
 	bus = dbus.SessionBus()
 	iface = dbus.Interface(bus.get_object('com.maemo.eventFeed', '/'), 'com.maemo.eventFeed') # Get the event feed dbus object
 	iface.addRefreshAction(source_name, refresh_action) # Add the refresh action to the event feed.
 	
 	last_run = script_last_run() # Time when script was last run. Will be used to check against the date/time of each item in the feed.
 	
 	rss = urllib2.urlopen(feed).read()
 	doc = DOM.parseString(rss)
 	items = doc.getElementsByTagName('item')
 		
 	link = ''
 	title = ''
 	body = ''
 	images = []
 	footer = ''
 	timestamp = ''
 		
 	for item in items:
 		for node in item.childNodes:
 			nodeName = node.nodeName
 			
 			if nodeName == 'link':
 				link = node.firstChild.data
 			elif nodeName == 'title':
 				title = node.firstChild.data
 			elif nodeName == 'description':
 				body = node.firstChild.data
 			elif nodeName == 'dc:creator':
 				footer = node.firstChild.data
 			elif nodeName == 'pubDate':
 				timestamp = node.firstChild.data
 			elif nodeName == 'content:encoded':
 				images = get_images(node.firstChild.data)
 		
 		try:
 			item_date_time = datetime.datetime.strptime(timestamp[0:timestamp.rfind(' ')], '%a, %d %b %Y %H:%M:%S')
 		except:
 			print 'Cannot parse item date/time. Using default'
 			item_date_time = datetime.datetime.min
 		
 		if item_date_time &gt; last_run:
 			print iface.addEvent(source_name, display_name, icon, title, body, images, footer, timestamp, '%s %s' % (action, link)) # If item is new, add an event to the event feed and print the reply.
 		
 	set_script_last_run(datetime.datetime.now().strftime('%Y, %m, %d, %H, %M, %S'))
 	
 def script_last_run():
 	&quot;&quot;&quot; Read serialized date/time from last_run.txt. &quot;&quot;&quot;
 	
 	date_time_string = ''
 	last_run = datetime.datetime.min
 	
 	try:
 		with open(LAST_RUN_DATE_TIME_FILE, 'r') as file:
 			date_time_string = file.read()
 			file.close()
 			
 		if date_time_string != '':
 			try:
 				last_run = datetime.datetime.strptime(date_time_string, '%Y, %m, %d, %H, %M, %S')
 			except:
 				print 'Saved date/time in incorrect format. Using default'
 				
 	except IOError:
 		print 'Cannot read date/time from file. Using default.'
 					
 	return last_run
 	
 def set_script_last_run(date_time_string):
 	&quot;&quot;&quot; Serialize the date/time the script was last run to last_run.txt. &quot;&quot;&quot;
 
 	try:
 		with open(LAST_RUN_DATE_TIME_FILE, 'w') as file:
 			file.write(unicode(date_time_string))
 			file.close()
 	except IOError:
 		print 'Cannot write date/time to file'
 	
 def get_images(content):
 	&quot;&quot;&quot; Try to extract image links from the content:encoded node. &quot;&quot;&quot;
 	
 	images = re.findall('http://[^\s]+jpg|http://[^\s]+png', content)
 	
 	if len(images) &gt; 2:
 		images = images[0:2]
 	
 	return images
 	
 if __name__ == '__main__':
 	if len(sys.argv) &gt; 1:
 		sys.exit(get_rss_feed(sys.argv[1]))
 	else:
 		sys.exit(get_rss_feed())
 
[[User:marxian|marxian]] 15:09, 4 October 2012 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Hildon desktop</title>
    <id>5205</id>
    <revision>
      <id>48291</id>
      <timestamp>2012-06-09T12:26:17Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>New page: =Hildon Desktop=  ==Introduction==  Hildon Desktop is the main UI component of the Maemo UI. It consists of two panels and the Home area. Each panel can house plugins and basically functio...</comment>
      <text xml:space="preserve">=Hildon Desktop=

==Introduction==

Hildon Desktop is the main UI component of the Maemo UI. It consists of two panels and the Home area. Each panel can house plugins and basically function like on an ordinary desktop environment except for that this user interface was designed for touch screen use on mind and was originally developed to Nokia 770 Internet tablet. 

==Build-Depends==
 libhildon1-dev, libosso-dev, osso-af-settings, libhildonfm2-dev, libhildonhelp-dev

==More Information==

[http://wiki.maemo.org/Legacy_Maemo_5_Documentation/Graphical_UI_Tutorial/Hildon_desktop UI Tutorial for hildon-desktop]

[http://wiki.maemo.org/Community_SSU/Features/hildon-desktop How to modify transistions in hildon-desktop]

[http://wiki.maemo.org/Modified_Hildon_Desktop Information about Modified hildon-desktop]</text>
    </revision>
  </page>
  <page>
    <title>HomeBank Maemo</title>
    <id>1264</id>
    <revision>
      <id>38867</id>
      <timestamp>2010-09-22T09:12:05Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{out of date}}</comment>
      <text xml:space="preserve">{{out of date}}

This is a port of [http://homebank.free.fr/ homebank]. HomeBank is a fast, simple and easy to use program to manage your accounts.
It differs from gnucash for the better look and feel, and for the greatest
start-up speed. It has a lot of features such as easy analysis with
graphical charts (statistics, budget, overdrawn, car cost), multi-accounts
support, budget management, reminder, import from  OFX/QFX-CSV files,
visual status of operations. It is based on GTK2.

I've started to port it to maemo, doing packages, fixing menu and toolbars and so on. Feel free to contact me (luca dot ognibene at gmail dot com) if you need help or just if you want to hug me! Please!

Some info:
 * project: http://garage.maemo.org/projects/homebank/
 * the package with dependencies are on extras-devel
 * code is here: http://gitweb.freedesktop.org/?p=users/skaboy/homebank.git;a=summary
 * port author: [http://lucaognibene.blogspot.com/ LucaOgnibene]

Don't report bugs upstream! Report them by mail or at the project tracker.. i'll contact upstream developer if it's a upstream bug!

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>HowTO EASILY boot from MMC card</title>
    <id>191</id>
    <revision>
      <id>21027</id>
      <timestamp>2009-10-26T09:23:27Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <comment>Redirecting to [[Booting from a flash card]]</comment>
      <text xml:space="preserve">#REDIRECT [[Booting from a flash card]]</text>
    </revision>
  </page>
  <page>
    <title>How To Fix Flash</title>
    <id>1881</id>
    <revision>
      <id>13473</id>
      <timestamp>2009-05-20T16:48:52Z</timestamp>
      <contributor>
        <username>krisse</username>
        <id>233</id>
      </contributor>
      <comment>[[How To Fix Flash]] moved to [[How to fix your tablet browser if Flash doesn't work]]: Renaming to make clear this article is about Flash web content.</comment>
      <text xml:space="preserve">#REDIRECT [[How to fix your tablet browser if Flash doesn't work]]</text>
    </revision>
  </page>
  <page>
    <title>How To Make Your Battery Last Longer</title>
    <id>3034</id>
    <revision>
      <id>22841</id>
      <timestamp>2009-11-18T08:26:31Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[How To Make Your Battery Last Longer]] moved to [[Make your battery last longer]]</comment>
      <text xml:space="preserve">#REDIRECT [[Make your battery last longer]]</text>
    </revision>
  </page>
  <page>
    <title>How to - Build an OS2008 Theme Source Package</title>
    <id>2737</id>
    <revision>
      <id>32144</id>
      <timestamp>2010-04-08T11:49:29Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>category and a couple of links</comment>
      <text xml:space="preserve">''Theme Maker is great for slicing your template file and making a nice install .deb to install your theme with, but if you want to put it on extras then you need to get a source package and Theme Maker wont do that for you but here is an easy guide to tell you how to do it. This guide will assume you have an n8x0 device and a windows computer. We will also use only free software in doing the steps.''


''First we need to get you authorized to maintain the extras repository.''

*Go to: Maemo Garage [http://garage.maemo.org/]
*Register for a garage account.
*Then you will need to email the garage admins to give you rights to maintain packages in [[extras]] and [[extras-devel]]

''Next we will download the software needed to design themes.''
&lt;br&gt;
&lt;br&gt;
''Download and Install to Windows Computer''
*Theme Maker download version 1.1.7 [https://garage.maemo.org/frs/?group_id=36]
*Gimp (or other image editing program) [http://www.gimp.org/]
*7zip [http://www.7-zip.org/]
*Filezilla [http://filezilla-project.org/]
*Script to build source deb [http://dl.getdropbox.com/u/2240466/build_myapp.py]

''Download and Install to (n8x0 tablet)''
*Py2deb
*Gainroot
*ssh server

Install Gimp and 7zip, and then unzip Theme Maker to a folder somewhere.

Edit the template.psd using Gimp or other program. 

Save images in .png format.

Open Theme Maker and Fill out/choose all options on Theme Maker

*Enter Theme Name Max Length 9 Characters.
*Enter Your Name or Screen Name if you wish to use that instead.
*Select Theme Background File.
*Select Theme Source File (Select the .png formatted file.)
*Select Font (if you wish to)
*Select Icon Template (default one is in theme maker folder.)
*Layout for Theme is Diablo
*Theme Version (I normally start with 0.1)
*Top Bar Height need to be at least 45 pixels but I always do 60 so the Top bar is always the same size since home view will always be 60.)
*System Font:I normally go with 12 -14
*Large Font: I notice anything over 20 and things start to get misshaped do to font size.
*Title Font: I normally got with 12 -14.

*Click Build Theme Tab
*Click Build Theme!

''Once Progress bar hits 100% you will find your theme files in the Theme Maker Folder you unzip earlier.''

''Extract Data Files''
*Now right click on your .deb file &gt; 7zip &gt; Extract Here
That will give you two files control.tar and data.tar.
*Right Click on data.tar.gz &gt; 7zip &gt; Extract Here
That will give you data.tar
*Right Click on data.tar &gt; 7zip &gt; Extract Here
That will give you a folder called usr
*Now Create a new folder called src and move folder usr into that folder.

Next edit the py2deb script you downloaded earlier

Upload source data to tablet
*Connect to tablet using filezilla
*Create folder called build in MyDocs Folder
*Upload src folder and py2deb script to build folder.

Build Source
*Open xterm on tablet
*Type the following commands in xterm

 sudo gainroot
 cd /home/user/MyDocs/build
 python build_myapp.py

*Follow the instructions given in xterm

Refresh view on filezilla &gt; View &gt; Refresh

Upload Source to extras-devel
*Download themename.changes, themename.dsc, and themename.tar.gz files
*Go to Garage Extras Assistant
*Login and follow steps to upload files an add files to builder queue. Wait about 30 minutes then your files will be on extra-devel.

Please let me know if you run into any problems following this guide.

[[Category:Design]]
[[Category:OS2008]]</text>
    </revision>
  </page>
  <page>
    <title>How to Install Octave</title>
    <id>2779</id>
    <revision>
      <id>30474</id>
      <timestamp>2010-03-04T12:03:04Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Installation */ add link to maeo.org/packages</comment>
      <text xml:space="preserve">GNU Octave is a numerically oriented high level mathematical programming language. It is useful for science, engineering and maths, and it is mostly compatible with matlab.&lt;ref&gt;Octave, [http://www.gnu.org/software/octave/ http://www.gnu.org/software/octave/].&lt;/ref&gt;

= Installation =
''Note that octave is [http://maemo.org/packages/view/octave/ currently available] in [[extras-devel]], with one dependency in the SDK repository.''

'''Please Note: Currently this is a rough outline of the steps to be taken. Steps other than these listed commands are required (eg: unpacking).'''

The following is a list of the steps I followed to install Octave on the [[Open development/Maemo roadmap/Fremantle|Maemo 5]] SDK:


== Download and Unpack ==

Gnuplot: [http://www.gnuplot.info/ http://www.gnuplot.info/] (I used version 4.2.6)


f2c/libf2c: [https://computation.llnl.gov/casc/Overture/henshaw/install/node8.html https://computation.llnl.gov/casc/Overture/henshaw/install/node8.html] This is where I got my version

(The f2c homepage is [http://www.netlib.org/f2c/ http://www.netlib.org/f2c/].)


Fort77: [https://computation.llnl.gov/casc/Overture/henshaw/install/node8.html https://computation.llnl.gov/casc/Overture/henshaw/install/node8.html] This is where I got my version.

(The fort77 homepage might be here [http://www.ibiblio.org/pub/Linux/devel/lang/fortran/ http://www.ibiblio.org/pub/Linux/devel/lang/fortran/].)


Octave: [http://www.gnu.org/software/octave/ http://www.gnu.org/software/octave/] (I used the latest stable version (3.2.3).) 

== Install ==

* Compile and Install Gnuplot

 ./configure
 make
 fakeroot make install
* Compile and Install f2c and libf2c
 cd src/
 make
 fakeroot make install
 cd ../libf2c
 make
 cp f2c.h /usr/include/
 cp libf2c.a /usr/lib/
* Install fort77 script
 cp fort77 /usr/bin
* Compile and Install GNU Octave
 ./configure F77=fort77 CXXFLAGS=-pthread FLIBS=-lf2c
 make
 fakeroot make install

The main obstacles were installing f2c, libf2c and fort77 and finding the necessary configure options to compile and install octave.

The information used for installation can be found here: &lt;br&gt;
[https://computation.llnl.gov/casc/Overture/henshaw/install/node8.html Using gfortran or installing f2c and fort77] &lt;br&gt;
[http://www.webmo.net/support/f2c_linux.html f2c / f77 Installation Instructions for Linux]

=References=

&lt;references /&gt;

[[Category:Software]]
[[Category:Development]]
[[Category:HowTo]]</text>
    </revision>
  </page>
  <page>
    <title>How to Internationalize python apps</title>
    <id>4293</id>
    <revision>
      <id>36240</id>
      <timestamp>2010-06-24T12:55:42Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[How to Internationalize python apps]] moved to [[Internationalize a Python application]]</comment>
      <text xml:space="preserve">#REDIRECT [[Internationalize a Python application]]</text>
    </revision>
  </page>
  <page>
    <title>How to Make a New Theme</title>
    <id>1105</id>
    <revision>
      <id>20995</id>
      <timestamp>2009-10-26T01:24:43Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <minor/>
      <comment>fix broken redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Making themes]]</text>
    </revision>
  </page>
  <page>
    <title>How to adjust the Nokia n800 and n810 nightlight</title>
    <id>1905</id>
    <revision>
      <id>28350</id>
      <timestamp>2010-02-04T13:59:14Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify, add category, tidy</comment>
      <text xml:space="preserve">===The Blinking Light===

The [[Nokia N800|N800]] and [[Nokia N810|N810]] internet tablets have a bright light built into their top left corner (on the N810 it is at the very edge of the corner, on the N800 it is under the direction pad).

This light can be made to blink during certain events. One of the most useful events is when the tablet is switched on but the screen is off, because the blinking light helps you find the tablet in a dark room.

Others find this light very annoying and wish they could switch it off!

Fortunately this tutorial tells you how to switch it on and off. It is simple, you just have to know where to look.

===How to switch the tablet &quot;night light&quot; on or off===

# Click on the sun icon in the status bar at the top
# Select &quot;Display Settings&quot;
# Click on LEDs
# Tick the &quot;Device On&quot; box if you want to switch on the night light, untick it if you want to switch it off
# Click on OK

That's it!

===Getting the light to blink on other occasions===

You'll notice from the LEDs menu mentioned above that there are many other opportunities for the light to blink.

However, these will only work if you are using the built-in applications which came with the tablet. For example you can only get the light to blink on new e-mail if you're using the tablet's own E-mail application.

If you are using the built-in apps, simply tick the boxes on the LEDs menu that you want to activate and click OK. To deactivate them just untick them and click OK.

===Does the blinking light use much battery life?===

No, not very much. It only flashes very briefly and it is just a small LED.

[[Category:HowTo]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>How to configure the location bar to search Google, IMDB etc.</title>
    <id>1285</id>
    <revision>
      <id>7942</id>
      <timestamp>2008-10-27T03:45:52Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[How to configure the location bar to search Google, IMDB etc.]] moved to [[Location bar tricks]]</comment>
      <text xml:space="preserve">#REDIRECT [[Location bar tricks]]</text>
    </revision>
  </page>
  <page>
    <title>How to connect a wireless bluetooth headset to the nokia n800 and n810</title>
    <id>1910</id>
    <revision>
      <id>32145</id>
      <timestamp>2010-04-08T12:03:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>N800 and N810 links</comment>
      <text xml:space="preserve">The latest tablet operating system, OS 2008, brings with it support for wireless Bluetooth headsets. These can be very handy, for example they let you talk to people on Skype with the tablet tucked away in your pocket or bag (or anywhere within a 10 metre/10 yard radius). The tablets can use both Nokia and non-Nokia headsets.

At the moment the tablets only support the basic headset Bluetooth modes, they don't support advanced modes such as high quality stereo sound. The upshot of this is that the headset is perfectly okay for voice calls, but it's not so good for listening to music.

===How to install a Bluetooth headset on the [[Nokia N800]] or [[Nokia N810|N810]]===

# Switch your Bluetooth headset on in its pairing mode (the procedure for doing this varies from model to model, check your headset's manual for instructions). Also make sure it's within 10 metres or 10 yards of the tablet
# On the tablet, click on the Applications menu (the green squares on the left)
# Click on Settings
# Click on Control Panel
# Double-click on Bluetooth
# Tick the box for &quot;Bluetooth On&quot; and &quot;Visible&quot;
# Click on Devices
# Click on New
# Wait for the tablet to find your headset, then select it from the list and click on OK.
# Highlight the passcode pairing number and delete it. Enter the fixed passcode pairing number for your headset (it should be printed somewhere in your headset's manual).
# Make sure the &quot;Set as trusted device&quot; box is ticked
# Click on OK
# Click on Close
# Click on OK
# Close the Control Panel using the X in the top right hand corner

The Bluetooth headset should now be paired with your tablet, and should automatically connect next time it's switched on within range of the tablet.

===How to use a Bluetooth headset on the Nokia N800 or N810===

# Make sure the tablet's Bluetooth is switched on. You can tell if it's on by the angular B icon that appears in the status bar at the top of the screen. If it's not there, go to the Control Panel, double-click on Bluetooth, tick the boxes for &quot;Bluetooth On&quot; and &quot;Visible&quot;, and click OK.
# Switch the Bluetooth headset on in normal mode (switch it off first if you've just paired it). If you're unsure about how to do this, consult the headset's manual.

...and that's it. A headset icon should appear in the status bar at the top of the screen, replacing the loudspeaker icon.

If the headset icon doesn't appear immediately, try launching an application which uses audio such as Skype or Media Player.

[[Category:HowTo]]
[[Category:N8x0]]
[[Category:OS2008]]</text>
    </revision>
  </page>
  <page>
    <title>How to connect a wireless bluetooth keyboard to the nokia n800 and n810</title>
    <id>1909</id>
    <revision>
      <id>28354</id>
      <timestamp>2010-02-04T14:15:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>add category, wikify</comment>
      <text xml:space="preserve">However good the on-screen keyboard of the [[Nokia N800|N800]] or the built-in keyboard of the [[Nokia N810|N810]] are, nothing can ever completely replace the speed and accuracy of a real full-size keyboard. Well, the N800 and N810 are actually compatible with many real full-size keyboards!

Keyboards that work with the N800 and N810 have to be wireless and use a standard called [[Bluetooth HID]], but this is the standard that most wireless keyboards use anyway, so it's not difficult to find a compatible model. There's a suitable Nokia branded keyboard called the SU-8W, but you can use non-Nokia keyboards too, as long as they're Bluetooth HID compatible.

In case you're wondering why anyone would want to use a keyboard with something as portable as an Internet Tablet, the answer is that many Bluetooth keyboards are just as portable. Many of them, such as the SU-8W, fold up into something about the same size and weight as the tablet itself. You can see an example of this in the video above.

===How to pair the N800 or N810 and a Bluetooth keyboard===

Once you've found a suitable keyboard, you need to do something called &quot;pairing&quot;. This involves sending a special code from the keyboard to the tablet so that the tablet knows it can let the keyboard connect to it in the future. Pairing is slightly tricky but only has to be done once for a pair of devices. After the pairing your keyboard will connect to the tablet completely automatically without you having to do anything except switching it on and pressing a key.

These instructions are for pairing the SU-8W, but they should work for any model of Bluetooth keyboard. If you run into any problems, consult your Bluetooth keyboard's manual, which will have a section on pairing.

# Switch on your Bluetooth keyboard.
# On the tablet, click on the Applications menu (the green squares on the left of the screen)
# Click on Settings
# Click on Control Panel
# Double click on Bluetooth
# Click on Devices
# Click on New
# You'll see a list of all nearby Bluetooth devices, though you may have to wait a few seconds while the tablet searches for them. Select your keyboard from the list when it appears.
# A box will appear with a four digit code (for example 1234). Click on OK.
# Type in the code on your keyboard and then press enter. IMPORTANT TIP: If you're using the Nokia SU-8W, hold down the green FN key while typing the numbers, then let go and press enter.

In theory this should be enough to pair the N800 and the keyboard. However, in real life Bluetooth pairing doesn't always go according to plan. If the pairing doesn't work, try entering the code again. If it still doesn't work, cancel the pairing and start all over again.

The pairing should work eventually, although it may take several attempts. However, this isn't as annoying as it sounds because YOU ONLY HAVE TO DO PAIRING ONCE. After the keyboard and tablet have been successfully paired, you never have to worry about connecting them ever again, they will connect automatically whenever both of them are switched on and within 10 metres of each other.

Incidentally, the people in charge of the Bluetooth standard are well aware of how annoying this code-swapping process can be. In recent public statements they've said that they're altering the standard so Bluetooth devices can be paired simply by touching them together. However, this new procedure is still in the future, so for the moment we have to put up with entering codes.

===How to use a Bluetooth keyboard with your N800 or N810===

Once you've got the keyboard and Internet Tablet paired, you can start using them together!

To connect the keyboard to the Internet Tablet, simply switch it on (and perhaps press a few keys). The tablet should connect to the keyboard within a few seconds, and you'll know it's connected because its Bluetooth logo (an angular &quot;B&quot; in the top row of status icons) will start to glow blue.

After connection, whenever you have to enter text on the N800 you will be able to do it with the Bluetooth keyboard. However, it's important to remember to select the area where you want to enter the text before you start typing (for example if you want to search Google, click the Google search text box before typing in your search terms).

You can switch the keyboard on and off whenever you like, it will always be able to re-connect automatically. You can also continue to use the touchscreen just as before.

===More than just typing===

You can use the keyboard for far more than just entering text. For example when you're viewing a website the arrow keys will let you scroll around the screen. Single presses of the arrow keys will jump from one link to the next, holding the arrow keys down will scroll the page.

You can also control most of the N800's functions from your keyboard without touching the screen, by using things called Keyboard Shortcuts. They're a particular combination of keys that you press in order to do a particular task on the N800

To see what the current shortcuts are, and to alter them (which you may have to do if your keyboard doesn't have the keys used in the shortcuts) do the following:

# Click on the Applications menu (the green squares on the left)
# Click on Settings
# Click on Control Panel
# Double click on Bluetooth Keyboard
# Click on the Shortcuts tab in the top right hand corner of the Bluetooth Keyboard box.
# If you want to alter a shortcut, select the one you want to alter.
# Click on Edit
# Using your Bluetooth keyboard, press the combination of keys you want to use for the shortcut you're currently editing.
# Click on OK
# Click on OK

If you alter the shortcuts to your liking, you should be able to easily control most of the things the tablet does entirely from your keyboard, without having to use the touchscreen at all. You can always still use the touchscreen if you want to though.

===How to change the keyboard country layout===

Different countries usually use different layouts of keyboards, and even a single model of Bluetooth keyboard can have many different layouts depending on where you buy it.

If the letters on your keyboard don't match the letters that appear when you type, it may be that the N800's keyboard country settings are wrong.

This is very easy to correct, just go to the Bluetooth Keyboard settings box as described above, and select the appropriate keyboard settings from the dropdown Keyboard Layout menu.

[[Category:HowTo]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>How to connect your tablet to the internet using Wi-Fi</title>
    <id>1884</id>
    <revision>
      <id>28361</id>
      <timestamp>2010-02-04T15:00:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify, add category</comment>
      <text xml:space="preserve">The [[Nokia N800|N800]] and [[Nokia N810|N810]] internet tablets can connect to the internet in two ways: through a Wi-Fi wireless router, or through a Bluetooth-compatible mobile phone. Connecting through a phone lets you use the tablet on the move, but this can be expensive and slow on some phone networks. Connecting through a wi-fi router can be free and very fast if you do it at home, though you do have to pay your usual broadband connection bill so that the wireless router has a connection to plug into.

This tutorial takes a look at connecting through Wi-Fi.

Wi-fi is also sometimes known as &quot;WLAN&quot;. (In case you're wondering, WLAN stands for Wireless Local Area Network, but you really don't need to know that.)

===How to set up a home wi-fi network===

Setting up a wi-fi network at home can be very useful, as it allows lots of computers and other gadgets (including internet tablets) to connect to the internet wirelessly within a range of 30 metres / 30 yards of your modem or router. The connection works through your usual broadband internet connection, so there's no extra charge for using wi-fi.

To set up a home wi-fi network, you need a wi-fi compatible modem or router, and an account with a broadband internet service provider. A computer will help with setting up the modem/router, though you don't need a computer in order to actually use the modem/router. After the modem/router has been set up, the tablet can use the home wi-fi network on its own.

First of all you need to set up wireless access on your wi-fi compatible modem/router. The procedure for this varies from model to model, and it's best if you consult the manual that came with it for more instructions.

However, here are a few things you should do when setting up your home wi-fi network:

# Give your network a memorable name, so you know which network to connect to on your portable devices. So many people have home wi-fi networks nowadays that you may well see a long list of nearby wi-fi networks when you try to connect to your own.
# You must use some level of security on your network. If you leave the connection without any security, it means absolutely anyone can use it to surf the internet. Not only does this slow down your own internet connection, it also may put you in danger of being arrested because criminals may use your internet connection to do something illegal (and any police traces on such illegal activity would end up at your house).
# Do NOT use the WEP security standard. WEP has become extremely weak over the past few years, and many hackers can break through WEP security in less than one minute. If you use WEP you will become a natural target for hackers.
# A much better security standard to use is WPA, and when your modem/router asks for a security key (called a Pre-Shared Key or PSK) try to use as many letters and numbers as possible. The maximum length is 63 characters, which might sound awkward but remember that you only have to enter this code once in order to connect a device to the wi-fi network. After you've entered it the first time, the device will remember the code for next time.
Note that you can often include spaces in this key, which means that you can
use a multi-word sentence as key. This can make it easier both to remember and
to enter, if your router supports it (many do).
# For added security, turn down the strength of your wi-fi network signal if your modem/router allows this. The higher the signal strength, the more hackers can potentially hijack your connection.

===How to connect your N800 or N810 to your home wi-fi network===

This is very simple:

# Turn on the tablet.
# Click on the connection icon in the status bar (the small dot with circular lines above it).
# Click on &quot;Select Connection&quot;.
# Wait while the tablet searches for nearby wi-fi networks. Don't worry if there seem to be lots of them, you may well see the networks of neighbouring houses listed.
# When you see the name of your own wi-fi network, click on it, and click on &quot;Select&quot;.
# If you're using WPA, it will ask you for the network's pre-shared key, which you chose earlier. Type this in on the tablet carefully, as it is difficult to spot mistakes in very long passwords. When you've finished typing the key, click on OK.
# The tablet should now connect to the network, and the status bar's connection icon will flash while it does so. When it has connected, the icon will remain white.

...and that's it, you are now connected to the internet through your home wi-fi network. Remember you have to be 30 metres / 30 yards from the modem/router for this connection to work well, but that can be in any direction so for example you can use the tablet upstairs.

===How to make your tablet connect to the internet automatically===

The N800 and N810 tablets offer a number of ways to automatically connect to the internet. One mode makes the tablet connect to your home wi-fi network automatically, another mode makes it connect to your phone automatically, and a third mode makes it try to connect to the home wi-fi network but if that's absent it tries your phone instead.

To select these modes, do the following:

# Click on the Connection icon in the status bar (the dot with curves above it).
# Click on &quot;Connectivity Settings&quot;.
# Click on &quot;Connect Automatically&quot;, and select &quot;WLAN&quot; if you want to just connect to your home wi-fi, &quot;Phone&quot; if you want to just connect through your phone, and &quot;Any&quot; if you want to connect through your home wi-fi or the phone if wi-fi is unavailable.
# If you want to alter how often it checks for new nearby connections, select the appropriate time from the &quot;Search Interval&quot; box.
# If you want the tablet to disconnect after a certain period of not using the internet connection, click on the &quot;Idle Times&quot; tab and select idle times for a wi-fi connection (&quot;WLAN&quot;) and a phone connection (&quot;Packet Data&quot;). There's not much point in using the idle times option though, in most circumstances it doesn't really have any practical use.
# When you've finished altering the settings, click on &quot;OK&quot;.

===How to change the Pre-Shared Key on your tablet===

The tablet will automatically remember the PSK for your home wi-fi network, so you never have to enter it again. However, if you change the PSK on the wi-fi router for some reason, you need to enter this new code on the tablet as well so it can continue to connect to the router. You can enter the new code using the following procedure:

# Disconnect the internet if you're using it, by clicking on the Connection icon and selecting &quot;Disconnect&quot; and then &quot;OK&quot;.
# In the Connection icon menu, click on &quot;Connectivity Settings&quot;.
# Click on &quot;Connections&quot;.
# Click on the name of your home wi-fi network, and then click on &quot;Edit&quot;.
# A setup box will appear. Click on &quot;Next&quot;.
# Click on &quot;Next&quot; again.
# Enter the Pre-Shared Key, then click on &quot;Next&quot;.
# Click on &quot;Finish&quot;.

===How to connect to other people's wi-fi routers===

The tablet can use other wi-fi routers too, for example many libraries and airports offer free wi-fi access, while many other places offer subscription-based wi-fi access. Publicly accessible wi-fi routers are also often known as &quot;hotspots&quot; or &quot;access points&quot;.

You can connect to other people's wi-fi networks just as you connect to your own, by clicking on the status bar's Connection icon (dot with curves going upwards), clicking on &quot;Select Connection&quot; and selecting the appropriate network from the list that appears.

* If the wi-fi connection you want to use is unsecured, it means you can use it without entering a password at all. This kind of connection will appear on the list of nearby connections with an open padlock icon. Make sure you have the owner's permission before using such a connection, because it is considered theft in some countries to use another person's wi-fi connection without their consent, even when the connection is unsecured. If you don't ask first, you could be prosecuted for stealing. Whether it's a crime or not, the non-consensual use of someone else's wi-fi connection is often known as &quot;leeching&quot;.
* If the wi-fi connection you want to use is secured, ask the owner about how to obtain the key. Secure connections appear on the list with closed padlock icons (one keyhole for WEP-secured connections, three keyholes for WPA-secured connections). Some connections will let you type the access key in just like at home, while others require you to go to a special web page on the tablet's web browser before you can be granted access.

As stated above, be aware that in a few countries, it may be a crime to use someone else's wi-fi connection without their permission.  In many countries like in much of the UE and most states in the USA, it is perfectly legal to use open wifi connections without explicit permission.  Software companies like Ubuntu, Apple and Microsoft seem to agree with this since you can configure their software to automatically connect to open wifi without any user action.

While some people do not want to share their wifi connections, they almost always put a password on their connections.  Many people are now deliberately leaving their wifi connections open so that they can share with their neighbors.  That said you should always be respectful when using someone else's wifi.  Don't hog the bandwidth and make it so that people regret sharing.

===Does using a home wi-fi network connect my tablet to my computer?===

No.

Your tablet and computer may sometimes use the same router and internet connection, but there is no direct connection between the tablet and computer.

You can of course send things between the computer and tablet through the internet by methods such as email, but this would work even if the computer and tablet were on opposite sides of the planet.

If you want to transfer material directly between the tablet and computer, the easiest way to do this is to use the tablet's USB cable.

Some people have asked us this so we'll repeat it again: you do not need a computer in order to connect the tablet to the internet, all that the tablet requires is a wi-fi router or a Bluetooth-compatible mobile phone. Even people who don't own a computer can still connect their tablet to the internet.

[[Category:HowTo]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>How to connect your tablet to the internet using a mobile phone</title>
    <id>1890</id>
    <revision>
      <id>28344</id>
      <timestamp>2010-02-04T13:28:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify, add category</comment>
      <text xml:space="preserve">The [[Nokia N800]] and [[Nokia N810|N810]] internet tablets can connect to the internet by two main methods: through a wi-fi / WLAN connection (for example a wi-fi router in your home), or through certain mobile phones (cell phones). The tablets can use phones which are Bluetooth compatible and use the [[Bluetooth DUN|DUN]] (Dial-Up Networking) Bluetooth profile. These phones do not have to be made by Nokia. If you're unsure about whether your phone is compatible, check the official technical specifications (you can find these tech specs on the manufacturer's website and possibly in the phone's manual too).

Bluetooth is a short range wireless standard intended for phones and other gadgets that are within about 10 metres (10 yards) of each other. It lets them exchange information, share an internet connection and many other things.

Connecting the N800 or N810 to the internet through your phone means you can use the tablet online anywhere that your phone can get a signal, which makes it much more portable. However, it will probably be significantly slower than using it through Wi-Fi, though speed can vary greatly from phone network to phone network. Some phone networks let you connect to the internet at very high speeds, perhaps faster than your home internet connection, while other networks only let you connect at very slow speeds. Here's a guide to the most common kinds of mobile phone networks available at the moment:

* 2G - The slowest current phone networks use standards called GSM or CDMA, which are also known as 2G.
* 2.5G - Slightly faster than these is a network standard called EDGE, which is also known as 2.5G.
* 3G - Even faster are 3G networks, which are also called WCDMA or UMTS.
* 3.5G - Fastest of all at the moment are 3.5G networks which use standards such as HSDPA.

To use a particular kind of network, you have to have a phone compatible with it, for example, to use a 3G network you need a 3G or better phone. Phones are compatible with slower networks too, so a 3G phone will switch to slower 2G mode when there's no 3G network available.

===How to set up your tablet's internet connection through your phone===

First of all, make sure that the phone's Bluetooth is switched on. The way to do this varies from phone to phone, but you should be able to find out how from the phone's manual. There's usually a phone menu called Bluetooth or Connectivity which should let you switch Bluetooth on.

When the phone's Bluetooth is switched on, it may show a very distinctive &quot;B&quot; logo somewhere on its main screen, perhaps with a blue circle in the background.

You now need to &quot;pair&quot; the phone and the tablet. Pairing means that the two devices exchange a special security code, so that in the future they can connect to each other automatically without asking permission. You only have to pair devices once, after that they should remember to trust each other.

# Click on the Applications icon (the green squares on the left)
# Click on Settings
# Click on Control Panel
# Double-click on Bluetooth
# Click on Devices
# Click on New
# Select your phone. A box with a security code will appear. Make sure you tick the small box marked &quot;Set As Trusted Device&quot;.
# Click OK.
# Your phone will now ask permission to pair with the N800. On your phone, press &quot;accept&quot; or &quot;yes&quot; or &quot;ok&quot;, or whatever it wants to hear in order to make the pairing happen.
# Enter the security code on your phone's keypad, and press OK on your phone.
# The pairing should now be complete. If something goes wrong in the above process, try again, it should work sooner or later. Remember to make sure your phone's Bluetooth is on before you start.
# Some phones may also add an extra step, where they require you to manually set the tablet as a trusted device on the phone, otherwise you will have to manually confirm every connection from the tablet on the phone itself. You should be able to set trusted devices from the phone's Bluetooth menu, but consult your phone's manual if you're unsure. However, many phones (including the Nokia 5300 used in the video above) automatically make the tablet a trusted device during the pairing process, and there is no need for any extra steps.
# The tablet will now ask if you want to use the phone as an internet connection. Click on &quot;Yes&quot;.
# The tablet will now start the Operator Setup Wizard, which will let you select which phone network operator you use. Click &quot;Next&quot; to continue.
# Select your country from the list, and click on &quot;Next&quot;.
# Click on the &quot;Mobile Operator&quot; drop-down menu, and select the phone network operator you use on your phone. Then click on &quot;Next&quot;.
# Click on &quot;Finish&quot;, then &quot;Close&quot;, then &quot;OK&quot;, then close the control panel with the &quot;X&quot; in the top right hand corner.

The tablet is now ready to use the phone to access the internet.

If you want to unpair the phone from your tablet, go to the Control Panel's Bluetooth menu, click on Devices and then delete your phone from the list that appears.

If your phone network operator doesn't appear on the list for your country, you will have to enter the settings manually, which is pretty tricky. If you have to enter settings manually, it's highly recommended that you find someone who is good with computers and phones to help you.

===Connecting your N800 or N810 to the internet with your mobile phone===

There are two ways to connect your tablet to the internet with your phone, manually or automatically. Manually means you have to start the connection yourself each time you want to use the internet, whereas automatically means the tablet and phone will connect to each other automatically whenever they're both switched on.

To connect manually, click on the connection icon (a dot with lines going upwards) in the status bar in the top right of the tablet's screen, and then click on &quot;Select Connection&quot;. Select the connection which has the same name as your phone network operator. The tablet should now connect to the internet through your phone. If your phone asks for confirmation of the connection, you'll need to set the tablet as a trusted device through your phone's Bluetooth menu. Consult your phone's manual for more details on setting trusted devices.

To disconnect manually, go to the connection icon in the top row as before, and select &quot;Disconnect&quot;. You can switch to a Wi-Fi connection manually by selecting &quot;Change Connection&quot;.

To connect automatically, you'll need to do the following:

# Go to the Control Panel as described before.
# Double click on Connectivity.
# From &quot;Connect Automatically&quot;, select &quot;Phone Connection&quot; for the tablet to automatically connect to your phone whenever it's available (&quot;WLAN Connection&quot; automatically connects to Wi-Fi whenever it's available, and &quot;Any Connection&quot; connects to Wi-Fi if possible or your phone if Wi-Fi isn't available). The &quot;Search Interval&quot; box lets you say how often the tablet should try to connect to the internet if it hasn't already connected.
# Click on OK. The tablet should immediately automatically connect to the internet via your phone. (If your phone asks you to confirm the connection, you need to set the tablet as a trusted Bluetooth device on your phone. See your phone's manual for instructions on how to do this.)

You can also set the tablet to disconnect automatically if it hasn't used the internet connection for a certain amount of time. This is known as &quot;idle time&quot;, and you can set the idle time from the Control Panel's Connectivity menu box. Click on the &quot;Idle Times&quot; tab to set the times for different types of connections, &quot;WLAN Idle Time&quot; means the idle time for Wi-Fi connections and &quot;Packet Data Idle Time&quot; means the idle time for phone connections. &quot;Unlimited&quot; means there is no idle time, the connection will stay open indefinitely.

===Using more than one phone with your tablet===

You can access the internet on your tablet through several different phones if you wish. First of all, you need to pair each phone using the process described above. Then you need to select which phone you wish to use from the Control Panel's Phone section.

===How much does this all cost?===

If you access the internet on your tablet through your mobile phone, you may have to pay data access charges to your phone network operator (phone service provider), which will appear on your phone bill or be deducted from credit on prepaid phone accounts.

Data use is normally charged by the amount of data sent and received, and NOT by the time you use the internet. For example, if you write and receive emails for half an hour this would use very little data and be very cheap, whereas if you listen to an internet radio station for half an hour this would use a lot of data and be more expensive.

However, many phone network operators nowadays have special deals which let you pay a flat monthly fee for unlimited access to the internet through their network. If you intend to use your tablet through your phone a lot, it may be worth investigating these flat rate internet deals by visiting your network operator's website or phoning their customer service helpline. Tell them you want to use your mobile phone as a modem for a computer, because that's how the tablet uses your phone.

Be careful though: some of the flat rate deals really are unlimited, but others have certain restrictions such as a cap on the amount of data you can send and receive.

===Can I use the tablet through my phone while overseas?===

You may technically be able to access the internet through your phone while abroad, but it will almost certainly cost a lot of money to do so.

Roaming charges on phone networks worldwide are stupidly high, and it's best to completely avoid using your mobile phone while abroad. If you have an unlocked phone, you might want to consider buying a prepaid SIM card locally while overseas and using that instead (if the prepaid SIM card allows data usage, some of them don't).

Phone network deals that allow unlimited internet access usually don't work overseas.

Alternatively, try to find a public Wi-Fi hotspot that you can use with the tablet instead. Many public places such as hotels, libraries, cafes and even trains offer Wi-Fi hotspots. Some of them are free, some of them charge a modest fee, while others are very expensive. Always ask a member of staff for more details before trying to use a public wi-fi hotspot.

[[Category:HowTo]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>How to connect your tablet to the internet with Fon routers</title>
    <id>1891</id>
    <revision>
      <id>32156</id>
      <timestamp>2010-04-08T12:55:31Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify</comment>
      <text xml:space="preserve">There's a public network of wi-fi routers called Fon. The idea of Fon is that everyone who owns a Fon router (also known as a &quot;La Fonera&quot;) can use other Fon owners' routers too, with the ultimate aim of building a worldwide network of free wi-fi access points.

However, if you try to connect a [[Nokia N810]] or [[Nokia N800|N800]] internet tablet to a Fon router it probably won't work. The reason for this is that Fon routers don't support power-saving measures used by the tablets and many laptops.

There is a way to get your tablet to work with a Fon router, by switching off the tablet's power-saving wi-fi mode. If you do that though, the tablet's battery will run out very quickly while using such a connection.

IF YOU ARE OKAY WITH A SHORT BATTERY LIFE WHILE CONNECTED TO FON, here is how to make Fon work with the Nokia tablets:

# Disconnect the tablet's current internet connection by clicking on the connection icon in the status bar (the curvy lines going upwards next to the battery icon) and selecting &quot;Disconnect&quot;.
# When the tablet is disconnected, click on the connection icon again and select &quot;Connectivity Settings&quot;.
# Select &quot;Connections&quot;.
# Click on the connection you use to access the Fon router and then select &quot;Edit&quot;. If you haven't set up a connection to the Fon router, click here to see our tutorial on setting up wi-fi connections.
# Keep selecting &quot;Next&quot; until you get to the box that says &quot;Connection Setup Complete&quot;. Do NOT press Finish, but instead click on the &quot;Advanced&quot; button.
# Click on the &quot;Other&quot; tab.
# Select &quot;On (Intermediate)&quot; from the power saving dropdown menu.
# Select &quot;OK&quot;, then &quot;Finish&quot;, then &quot;Done&quot;, then &quot;OK&quot;. You should now be back on the tablet's desktop.
# Click on the Connection icon in the status bar, then &quot;Select Connection&quot;.
# Select the connection you use to access the Fon router, which should now work. As noted above you will have a very reduced battery life when connected to Fon because power saving isn't at maximum.

If the tablet still can't connect to the Fon router, repeat the above process but at step 7 select &quot;Off&quot; from the power saving dropdown menu. This will switch the power saving completely off, and make the tablet's battery life very short when using the Fon router.

Note that these settings above only apply to the connection with the Fon router. Any other Wi-Fi connections you have will be untouched, and they will have full power saving.


===Why can't the tablets connect to the Fon routers with power saving fully on?===

Because Fon's routers are a bit old-fashioned and won't allow power saving wi-fi connections. There's absolutely nothing Nokia can do about this.

What needs to happen is for Fon to bring out a new router, or new firmware for existing routers, which supports power saving wi-fi connections. That hasn't happened yet.

This isn't just a problem for Nokia tablet users either, some Dell laptops won't work properly with Fon routers for exactly the same reason.

[[Category:HowTo]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>How to crochet a lovely pouch for the nokia n800 and n810</title>
    <id>1911</id>
    <revision>
      <id>32146</id>
      <timestamp>2010-04-08T12:03:40Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>links</comment>
      <text xml:space="preserve">A slight change of direction now. The Internet Tablet School proudly presents a guide to crocheting a wool pouch for the [[Nokia N800]] and [[Nokia N810|N810]] internet tablets.

The model for the pouch was an N810, but the N800 will fit just as snugly. It's not a high tech slim streamlined case, but it's thick and cuddly and looks very nice.

===How to make your own Nokia tablet pouch - the &quot;source code&quot;===

In the spirit of open source, here are the complete instructions on how to make your own tablet pouch:

Use thick wool, &quot;bulky&quot; or &quot;super bulky&quot;, 3.5oz/100g = around 65 yards/60m , 7 sts x 9 rows = 4 inches/10cm. The thickness of the wool should let you make the pouch very quickly. We used a 15/P/10mm crochet hook, but you can use a larger one if you prefer. If you use a smaller hook the pouch's surface will be denser.

Crochet 13 chain stitches, and then join the final chain stitch with the first one using a slip stitch, to form a ring. Mark the join with a stitch marker, do this with every row, and use it as a guide to where the next row has to finish. Make sure you keep the first chain stitch ring straight.

(The following is written using American crochet notation as most visitors to this site are from the USA. If you're British be careful not to take it at face value, for example &quot;single crochet&quot; in America means &quot;double crochet&quot; in Britain.)

RND 1: *1 sc at the end of each st*, repeat *-* until the pouch is about 6.5 inches / 16 cm.

RND 2: *1 chain stitch, turn, 5 sc*, repeat *-* back and forth until the cover is about 2 inches / 2 cm.

RND 3: 1 chain stitch, 1 sc, skip 1 sc, 1 chain stitch, 1 sc on the last two sts. You should now have your buttonhole. Fasten off (remember to leave enough yarn for it!), sew a large button onto the main part of the pouch, sew the bottom of the pouch shut. Congratulations, you now have a tablet pouch!

If you want to give your pouch a tail as shown in the photos, leave about 6 to 12 inches of yarn hanging free from the first stitch. When you sew the bottom of the pouch shut, you can let the yarn hang out of the middle of the bottom of the pouch. The beads of the tail can be kept in place by tying simple knots along the length of the yarn, and the end of the tail can be fluffed up to give a more animal-like effect.

For a really professional touch, you might want to investigate adding a lining to the pouch too.

Before putting the tablet in the pouch, make sure the screen and keys are locked. You can see a complete guide to this in our screen-locking tutorial.


===Washing instructions for your tablet pouch===

Handwash at about 30 degrees Centigrade / 86 degrees Fahrenheit with washing liquid.

[[Category:Users]]
[[Category:HowTo]]</text>
    </revision>
  </page>
  <page>
    <title>How to customise the desktop and interface on the N800 and N810</title>
    <id>1903</id>
    <revision>
      <id>32147</id>
      <timestamp>2010-04-08T12:11:17Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>category and links</comment>
      <text xml:space="preserve">The desktop and interface of the [[Nokia N800]] and [[Nokia N810|N810]] internet tablets can be customised quite a bit. The more extreme customisations require technical knowledge, but we're going to look at the simple customsations that anyone can do.


===How to add, remove and arrange applets on the desktop===

The various boxes you may see on the desktop are called applets, and they let you access specific features of the tablet directly. Some applets are built into the tablet, while others are added if you install certain applications.

All applets can be added or removed from the desktop by clicking on the &quot;Home&quot; menu at the top of the screen and clicking on &quot;Select Applets&quot;. You'll see a list of all the desktop applets currently installed on the tablet, and to add one you just tick the box next to it. To remove an applet from the desktop you just untick its box.

Once an applet is on the desktop, it can be moved about by touching and dragging it. When it's in the right place, let go. You can drop applets on top of each other if you want, though this can look rather confusing. Touching the edge of an overlapping applet puts it on top of the other applet.

Some applets can also be resized, for example the Google search box can be stretched horizontally by touching and dragging its right edge, and the RSS feed reader box can be resized by touching its bottom right hand corner.

When you've touched an applet in the correct manner to move it or resize it, a white box will appear round it, and when you let go the white box disappears.


===How to change the desktop wallpaper===

Click here to see our tutorial on customising the wallpaper.


===How to change the interface theme===

The N800 and N810 come with four themes built-in, which change the look of the menus, icon bars, and edges of windows.

You can change the current theme by clicking on the desktop's &quot;Home&quot; menu, then &quot;Set Theme&quot;, click on the theme you want, click on &quot;Apply&quot; and click on &quot;Close&quot;. The default theme is called Echo.

If you want to add extra themes, please click here to see our tutorial on how to do so.


===How to rearrange the side icons, edit the Applications menu and edit the status bar===

The tablet's Panels menu lets you rearrange the positions of the three icons at the right side of the screen, edit the contents of the Applications menu, and also choose which icons are displayed on the status bar at the top.

Here's how you access the Panels menu:

# Click on the Applications menu (the icon with the three green squares).
# Click on Settings.
# Click on Control Panel.
# Double-click on Panels (it's right at the bottom of the screen).

To rearrange the three main icons, just press the two arrows in the middle of the Panels box.

To edit the contents of the Applications menu, click on the &quot;Organise&quot; button.

To choose which icons can appear on the status bar, click on the &quot;Status Bar&quot; tab at the top of the Panels box.

When you've finished, click on &quot;OK&quot; to save changes, or &quot;Cancel&quot; to abandon changes. To exit the Control Panel click on the X in the top right hand corner.

[[Category:HowTo]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>How to customise the tablet wallpaper</title>
    <id>1885</id>
    <revision>
      <id>31570</id>
      <timestamp>2010-03-25T08:41:35Z</timestamp>
      <contributor>
        <username>onion</username>
        <id>10</id>
      </contributor>
      <comment>Add theme category</comment>
      <text xml:space="preserve">The [[Nokia N800|N800]] and [[Nokia N810|N810]] come with rather nice background images, but if you would like to use something else instead it is very easy to replace the default desktop wallpaper with any image you want.

===How to change the tablet wallpaper===

# On the desktop, click on the Home menu at the top, then select &quot;Set Background Image&quot;.
# Click on the Browse button, then on the left of the window click on the folder where you store your pictures. &quot;Images&quot; is probably the best folder to store pictures, as the N800 and N810 come with a few example photos in there and store photos taken with the camera in a sub-folder there. &quot;Internal Memory&quot; is the built-in memory on the N810 or the internal memory card slot on the N810, while &quot;External Memory&quot; is the external card slot on both the N800 and N810.
# When you have found the correct folder, click the image you want from the right of the window and then click the &quot;Select&quot; button. You'll be taken back to the Set Background Image window.
# Select how you want the wallpaper to be displayed from the Mode drop-down menu: &quot;Centred&quot; puts the image in the middle of the screen at full size, &quot;Scaled&quot; displays the entire image in the correct proportions (which may sometimes be the same thing as Centred), &quot;Stretched&quot; displays the entire image but stretched or squashed to fit the entire desktop, and &quot;Tiled&quot; will display the image like bathroom tiles, but you can only tile an image if it's smaller than the desktop. Background Colour lets you choose which colour is displayed around the edges if the image is in the wrong mode to cover the desktop entirely.
# You can preview the wallpaper by clicking &quot;Preview&quot;, and when you're satisfied click on &quot;OK&quot;.

===How to get the old wallpaper back===

Click on the desktop Home menu, then Set Background Image, then click on the Image drop-down menu and select the wallpaper you want to use again. The default wallpaper on the N800 and N810 is normally called &quot;Echo&quot;.

===How to get your own images onto the N800 or N810===

There are many ways to get images onto your tablet.

You can transfer photos from a phone or other device via Bluetooth.

Alternatively you can take a picture with the tablet's own built-in camera.

A third option is to save an image from the web: start up your browser, go to the website where you want to get the image from, hold the stylus down on that image until a menu appears, select &quot;Save As&quot;, click on &quot;Change Folder&quot; to select where you want to put the image (we recommend the Images folder or one of the memory cards), click OK to select a folder and then click OK again to save the image.

A fourth option is to put an N800 or N810 compatible memory card in a digital camera or cameraphone. After you've taken some pictures, put the card into the N800 to view and use the images. If you're unsure about which cards work on the N800, see our tutorial about N800 memory cards. The N810 uses miniSD memory cards which can be made SD-sized using an adaptor.

Lastly, you (or anyone else in the world) can send pictures to your N800 as email attachments, either in webmail or using the built-in email program. Just save the attachment to the folder you want to store images in.

[[Category:HowTo]]
[[Category:N8x0]]
[[Category:Themes]]</text>
    </revision>
  </page>
  <page>
    <title>How to find and install applications on the Nokia N800 and N810</title>
    <id>1889</id>
    <revision>
      <id>39305</id>
      <timestamp>2010-10-04T08:38:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>revert vandalism</comment>
      <text xml:space="preserve">The [[Nokia N800]] and [[Nokia N810|N810]] come with lots of on-board software that lets you do things like surf the web, write emails, listen to internet radio etc.

However, the tablets are also pocket computers running on a software platform called Maemo, which is an &quot;open platform&quot;. This means that anyone who wants to can write additional software for it, and you can install this software onto the tablet yourself. What's more, most of the software available for the tablets is totally free as it's mostly written by teams of open source volunteers.

Finding and installing software can be quite tricky, but this tutorial is going to look at the very easiest methods.

===Getting to know the Application Manager===

The tablets have a built-in program called Application Manager, which uses a system of &quot;catalogues&quot;, which are also known as &quot;repositories&quot; or &quot;repos&quot;. The idea of a catalogue is to greatly simplify the process of finding and installing new software.

New software often needs additional files to be installed on the tablet before it can work properly, and catalogues automatically add these files if you don't already have them. This need for additional files is called &quot;dependency&quot;, because the software depends on the presence of these files in order to work.

To access the App Manager, click on the Applications icon (the green squares on the left), select Settings, then select Application Manager.

Here's what all the bits of the App Manager do:

* Application Manager Menu (the bar at the top): This contains various advanced tools and settings to do with installing and using applications and catalogues. You probably won't need to use this but it's good to know where it is.
* Show Installed Applications: This displays all the software you've installed so far, along with various additional files that some of the software requires in order to work properly. You can remove installed software by selecting the relevant application and clicking on &quot;Uninstall&quot; at the bottom of the screen (the blue &quot;i&quot; icon gives you more information about the selected application). Be careful when you uninstall software as it may be needed by other applications. The App Manager should tell you if this is the case and warn you, and it may even prevent you uninstalling needed software.
* Browse Installable Applications: As the name suggests, this lets you view and install new software from all the catalogues added to the App Manager. You may have to click on &quot;All&quot; to see the complete list. If you select a particular item and click on &quot;Install&quot; it will install the software, while clicking on &quot;i&quot; gives you more information about the software. Some of the software listed may sound a bit strange and technical, don't worry about this as it may be intended only for the use of advanced users. When you first use your tablet, the App Manager will probably only has one or two catalogues installed, both of which are owned by Nokia and only have Nokia-approved software available on them. If you add software from other catalogues, the catalogue addresses are added to the App Manager, and all of the compatible software in these catalogues will automatically become available in the Browse Installable Applications section. We'll discuss adding software from other catalogues later in this tutorial.
* Check For Updates: Most of the time this page will probably be blank, but don't worry, this is perfectly normal. The purpose of the Check For Updates section is to tell you when updated versions are available of software which you've already installed. For example if you've installed Skype internet phone software on your tablet you may see an updated version of Skype appear in the Check For Updates section. If there are any updates available, select the update you want and click on the &quot;Update&quot; link at the bottom of the page. As with the other sections, the &quot;i&quot; logo gives you more information about the update.

===Installing software from maemo.org===

Nokia's Internet Tablets run on a software platform called Maemo, which is based on the Linux operating system. The version of Maemo used by the N800 and N810 is called OS 2008.

The official website for the Maemo platform is at maemo.org, and it includes a section called &quot;Downloads&quot; which is full of third party software which you can install on your tablet.

On your tablet, click on the globe in the top left, open a new browser window and go to the site maemo.org. Click on the Downloads link at the top of the site, and it should automatically take you to the &quot;OS 2008&quot; section which contains software that your N800 or N810 can run. Ignore the sections marked &quot;OS 2007&quot; and &quot;OS 2006&quot;, the software there will not run on your tablet.

To find some interesting software, try clicking on one of the categories on the right of the screen. Note that some categories contain many pages, and you should click on the page numbers at the bottom of the screen to see all the applications available in that category.

When you find an app or game you're interested in, click on its title to find out more information and see reviews posted by users. If you want to install it, click on the green arrow next to its name.

Clicking on this arrow will automatically start up your tablet's App Manager, install the selected software onto the tablet, and add the catalogue it came from to the App Manager. During the installation process, it will ask you where you want to put the application's icon in the Applications menu. By default it will put it in the section labelled &quot;Extras&quot;, but you can change this if you want.

After the new catalogue is added to the App Manager, you will see a wider range of software available in the App Manager's &quot;Browse Installable Applications&quot; section.

If an app or game has a grey arrow instead of a green one, it means they can't be installed automatically. Because of this, their installation can be very complicated, and we're not going to cover it in this tutorial.

===Security &amp; Reliability===

The advantage of an open platform like Maemo (or Windows, or Macintosh) is that it receives a lot of software support from both enthusiasts and commercial companies because literally anyone is allowed to write and release software without having to get anyone's permission. The disadvantage of this is that a small minority of software may do bad things, either intentionally or unintentionally.

The only catalogues guaranteed to be free of problems are Nokia's, but these only have a small range of applications. To install a wider range of software on your tablet you will have to install software from third party non-Nokia sources, and none of this third party software is guaranteed to be safe and reliable. Just like Windows and Macintosh, third party Maemo software carries a small risk of either causing problems or doing deliberate damage. If you wish to reduce this risk to a minimum, try to only install software which has received good ratings and comments in maemo.org's downloads section (to see an app's ratings and comments in detail, click on its title).

It's worth pointing out that the risk of software causing deliberate damage is particularly small on Maemo and Nokia's internet tablets. Almost all of the software available to the tablets is &quot;open source&quot;. Open source software means that the inner workings of the software are freely available on the internet to anyone who wants to take a look, so anything that's dangerous or malevolent usually gets spotted much more quickly than on closed source software.

===Broken catalogue trouble - &quot;Unable to refresh list.&quot;===

Catalogues make it very easy to install new software and keep it up to date, but they have a drawback: they're all hosted on various computers around the internet, and if one catalogue's computer breaks down it prevents the Application Manager from working properly.

If a catalogue does break down, you may see the error message &quot;Unable to refresh list.&quot; and find that you can't install any new software. Don't panic.

The way to fix this problem is to disable whichever catalogue is causing the problem. This can be done by clicking on the App Manager menu at the top of the screen, then click on Tools, then Application Catalogue, then select the catalogue causing the problems and click on Details. Tick the Disabled box and click OK, which will disable the broken catalogue and restore the App Manager to full working order.

However, you may be wondering how you can find out which catalogue is broken. A very good question.

The hard way to do this is through trial and error, by disabling each catalogue one by one until the App Manager starts working again.

The easier way is to look at the App Manager's log, which tells you the recent activity of the App Manager. The log can be accessed by clicking on the App Manager menu at the top, then Tools, then Log. To find a broken catalogue try to look for the phrase &quot;Failed to fetch&quot;, which should be next to the website address of the broken catalogue. The address of each catalogue is available from the Details button described in the paragraph above, so it's simply a case of comparing the &quot;Failed to fetch&quot; address in the log with the addresses of the catalogues in the Application Catalogue section. When the addresses match, you've found the broken catalogue and you can disable it.

You can try reactivating the broken catalogue later to see if it's been fixed by unticking the &quot;Disabled&quot; box, but if it still doesn't work you'll have to retick the box.

[[Category:HowTo]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>How to find built-in help on the Nokia n800 and n810</title>
    <id>1902</id>
    <revision>
      <id>28907</id>
      <timestamp>2010-02-11T13:02:58Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:N8x0]] and [[Category:OS2008]], wikify</comment>
      <text xml:space="preserve">The [[Nokia N800|N800]] and [[Nokia N810|N810]] contain a large number of built-in step-by-step tutorials and a complete user guide, but a lot of tablet owners seem to be unaware of their presence. Here's how to find and access them.

===How to browse through all the built-in help files===

Very very simple, just click on the Applications icon (the green squares on the left) and then click on help. You'll then see a long list of all the topics covered by the tutorials. Double-click on the topic you want to know more about, then click on the specific tutorial you want to read.

When you've finished reading a tutorial, just click on the X in the top right hand corner to close it.


===How to get help for the feature you're currently using===

Again, easy-peasy. Just click on the menu for the application you're currently running (this will be a grey bar at the top of the screen). One of the options will be Help, just click on it.

Applications runs separately from their help files, so you can close a tutorial without closing the app it discusses.


===How to find the hidden user guide===

For some reason the manual for the N800 and N810 is tucked away in the Documents folder. Here's how to find them and read it:

# Click on the Applications icon (green squares).
# Click on Utilities.
# Click on File Manager.
# Double click on Documents on the right.
# Double click on User Guides on the right.
# The user guide is displayed in all its different language versions. Double click on the language version you want (the English-language versions are near the bottom of the list).
# The user guide will be opened using the PDF reader application. To turn a page click on the small arrows at the bottom of the screen, and to zoom in and out click on the magnifying glasses.

[[Category:N8x0]]
[[Category:OS2008]]</text>
    </revision>
  </page>
  <page>
    <title>How to install themes on the N800 and N810</title>
    <id>2752</id>
    <revision>
      <id>20379</id>
      <timestamp>2009-10-18T20:32:32Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <comment>[[How to install themes on the N800 and N810]] moved to [[Themes]]: Much easier title, more general, device unspecific</comment>
      <text xml:space="preserve">#REDIRECT [[Themes]]</text>
    </revision>
  </page>
  <page>
    <title>How to lock the touchscreen and keys on the Nokia n800 and n810</title>
    <id>4509</id>
    <revision>
      <id>39386</id>
      <timestamp>2010-10-05T14:27:28Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Lock the screen and keyboard]]</text>
    </revision>
  </page>
  <page>
    <title>How to personalize your N900</title>
    <id>3340</id>
    <revision>
      <id>36091</id>
      <timestamp>2010-06-19T07:59:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/173.201.176.176|173.201.176.176]] ([[User talk:173.201.176.176|Talk]]); changed back to last version by [[User:Dneary|Dneary]]</comment>
      <text xml:space="preserve">#REDIRECT [[Customizing Maemo]]</text>
    </revision>
  </page>
  <page>
    <title>How to push a maemo.org task</title>
    <id>1159</id>
    <revision>
      <id>6824</id>
      <timestamp>2008-08-28T00:18:55Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[How to push a maemo.org task]] moved to [[Pushing a maemo.org task]]</comment>
      <text xml:space="preserve">#REDIRECT [[Pushing a maemo.org task]]</text>
    </revision>
  </page>
  <page>
    <title>How to set up Scratchbox on Ubuntu</title>
    <id>2840</id>
    <revision>
      <id>20988</id>
      <timestamp>2009-10-25T22:18:00Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <comment>Redirecting to [[Documentation/Maemo 5 Final SDK Installation#Installing Maemo 5 SDK on x86-32 Debian based distribution]]</comment>
      <text xml:space="preserve">#redirect [[Documentation/Maemo_5_Final_SDK_Installation#Installing_Maemo_5_SDK_on_x86-32_Debian_based_distribution]]</text>
    </revision>
  </page>
  <page>
    <title>How to update the firmware on the Nokia N800 and n810</title>
    <id>1892</id>
    <revision>
      <id>50164</id>
      <timestamp>2012-10-13T04:12:37Z</timestamp>
      <contributor>
        <ip>173.245.64.77</ip>
      </contributor>
      <comment>/* Upgrading your N800 to OS 2008 */</comment>
      <text xml:space="preserve">{{out of date}}
{{main|Updating the firmware}}

===What is firmware? Why would I want to update it?===

Like many electronic devices, the [[Nokia N800]] and [[Nokia N810|N810]] internet tablets have something called firmware (which Nokia confusingly calls &quot;software&quot;). Firmware is what tells the device how to behave, and includes all the applications you see when you first switch on a brand new tablet.

Electronics manufacturers often issue new versions of firmware which corrected mistakes and sometimes add new features. When you take an electronic gadget to a service centre, they will typically install updated firmware on it as this simple action can often solve many technical problems. Nowadays you can also install the new firmware yourself at home using your PC. It's completely free, it usually makes your device run more reliably, and it also may let it do new stuff it couldn't do before.

The downside of a firmware update is that you lose any data or programs you have installed on your gadget, though this can be dealt with by making backups of your data onto a memory card and then restoring the backups after the update.

Updating the firmware is also known as &quot;flashing&quot; the device.

===Upgrading your N800 to OS 2008===

N800 users have a particularly good reason for updating their firmware, because Nokia has just released a brand new version of the tablet's operating system called OS 2008.

OS 2008 is present on all N810s, but most N800s shipped with the older OS 2007, so N800 owners probably have to update their firmware in order to use OS 2008.

OS 2008 replaces OS 2007 and makes all sorts of improvements such as greatly increasing the processor speed, more finger-friendly menus, a constantly updated directory of internet radio stations, better sound quality on Skype, better video quality on YouTube etc. OS 2008 makes the N800 look and run exactly like the more recent N810 model, and run at the same speed too.

To upgrade your N800 from OS 2007 to OS 2008, simply follow the instructions below for doing a firmware update. The process of upgrading the OS is technically identical to the process of updating the firmware.

===How to back up and restore your N800 or N810 settings and data===

Before you do a firmware update, you may want to back up its settings and data.

Firmware updates usually wipe anything you store on the tablet's own memory, including e-mails, documents, music, videos, settings, bookmarks and contacts.

However, firmware updates do NOT wipe anything stored on memory cards including the N810's 2 gigabyte built-in memory card, because they're technically not part of the tablet itself.

Before you do a firmware update it's a good idea to back up your data and settings onto a memory card, so you can restore the data after the update is complete.

You can do this very very easily by using the built-in Backup/Restore application. Simply click on the Applications icon (the green squares on the left), click on Settings, and click on Backup/Restore. Click on New Backup, click OK, make sure all the boxes you want backed up are ticked, and click on OK.

When you have finished the firmware update (see below for how to do this), the tablet should ask you automatically if you want to restore your data and settings from the backup you just made. If it doesn't, just go to the Backup/Restore application yourself, select the backup from the screen and click on Restore.

PLEASE NOTE:If you are updating your N800 from OS 2007 to OS 2008, you should NOT back up and restore your data and settings using the built-in Backup/Restore app. Doing so may cause serious problems with using the N800 after the update. If you can, try to back up your files manually by moving them onto a memory card using the N800's file manager, as they will be safe on the card. There's nothing you can do about settings though.

===How to back up and restore your tablet's applications===

Firmware updates also wipe any extra applications you've installed since you got your tablet. Unfortunately there is no way to back these up, they have to just be reinstalled after the firmware update.

However, the Backup/Restore application can save a list of the apps you have, and then offer to automatically reinstall them after the update. In theory this should work, although in practice if one of the applications doesn't install properly it stops any of the others installing. If this happens, don't panic. You can still reinstall the apps one by one yourself, just like you installed them first time round.


===How to update the firmware on the Nokia N800 or N810 using the Update Wizard for Windows PCs===

# The firmware on Nokia's internet tablets can be updated on Windows PCs using the Nokia Internet Tablet Software Update Wizard, which you can download for free at the following link: http://europe.nokia.com/A4305010 (Scroll to the bottom of the page). After you've downloaded the Update Wizard file (it ends with .exe), double click on it to install it, and follow all the instructions.
# At this point, make sure your N800 or N810 is fully charged. Even if the battery logo looks full on the desktop, it may not actually be full. Plug the charger into tablet, and it should tell you when it really is full.
# Try and find the USB cable that came with your tablet (specifically, a miniUSB cable with the N800, a microUSB cable with the N810). Make sure your tablet is switched off, and connect it to your PC using the USB cable.
# Start the Update Wizard on your PC, but don't do anything with it.
# Press and hold the bottom button on the front of the N800, or the top button on the front of the N810. (See the appropriate video above if you're unsure which button to press.) While holding the correct button down, turn on the tablet with the power switch on the top. This will put the tablet into update mode, and if you do it correctly it will stop on the Nokia logo with a black USB logo in the top right hand corner of the screen. You can let go of both buttons now.
# On the Update Wizard on your PC, you should see the Wizard's welcome message. Press the Next button to go to the warning page. Then press the Next button to go to an instruction page, and it should show that it's found your device at the bottom of the screen. Press Next.
# The Update Wizard should now tell you two pieces of information: what firmware version you have on your tablet, and what the latest official version is. If the versions are the same, you probably don't need to update at all and can press Cancel. If the versions are different, click on Next to continue with the update. (If you get error messages instead of firmware versions, try pressing Back and then Next again, and if it still doesn't work try doing it again a few hours later.)
# Click on I Accept The Agreement and Next.
# The update will now start, and should be completely automatic from now on. You probably won't need to do anything more. The Wizard will first of all download the firmware (which can take a long time depending on the speed of your home internet connection), then it install it on your tablet (which happens very quickly). If you see an error message during the download process such as &quot;File Corrupted&quot;, press Back and then Next. If you see &quot;File Corrupted&quot; several times in a row, this may indicate that Nokia's servers which provide the firmware aren't working at the moment, and you should try again in a few hours time.
# After the tablet's firmware has been updated, it will automatically start up with the new firmware version, and you can unplug it when this happens.
# When the tablet starts up for the first time with the new firmware, if you have made a backup of your settings and data it will ask you if you want to restore this backup. This should work fine, unless you're upgrading from OS 2007 to OS 2008 in which case say no. For some reason many people upgrading from OS 2007 to OS 2008 have experienced problems using restored settings.
# When the tablet starts with new firmware, it may also ask you if you want to automatically reinstall the extra applications you had installed before the update. As noted above, this may or may not work, and if it doesn't you can reinstall the apps yourself one by one.

AUTHENTICATION/CLOCK ERROR NOTE: If you get a mysterious error message while using the wizard which talks about authentication and adjusting a clock, don't worry, you don't have to adjust any clocks. Try pressing the &quot;back&quot; button on the Update Wizard and then the &quot;next&quot; button.


===How to update the firmware on the Nokia N800 or N810 if you don't have a Windows PC===

By far the easiest way to update the N800 or N810 firmware is using the Update Wizard for Windows. Unfortunately the Wizard isn't available for other operating systems, so you can't use it on Linux PCs or Macintoshes.

If you're not technically-minded, try to find someone who does have a Windows PC, so you can use their machine for the update. You don't have to do firmware updates very often, in fact it's up to you how often you do them, and using the Wizard will save a lot of time and bother.

If you ARE reasonably good with computers, here are some suggestions for Mac and Linux users on how to update the N800 or N810 firmware:

* Macintosh users can use a utility called 770Flasher, which was originally written for the Nokia 770 tablet but which works on the N800 and N810 too. You can download 770Flasher by clicking here. You can get the latest N800 OS 2008 image by clicking here, and get the latest N810 OS 2008 image by clicking here.
* Linux users should click here to read a guide to updating firmware on internet tablets, over on maemo.org


===How to go back to OS 2007 on the N800===

Some people have expressed an interest in rolling back their N800 to OS 2007, often because a particular third party application they use on OS 2007 isn't available for OS 2008 yet.

Going back to OS 2007 is possible, though it's slightly trickier than an automatic update. First of all you have to manually download the latest version of OS 2007 for the N800 onto your computer, which you can get from maemo.org by going here. After you've done that, here's what you do next:
* If you have Windows, you can use the Update Wizard to go back to OS 2007. After you've downloaded the OS 2007 firmware from maemo.org onto your PC, run the Update Wizard as described above. When it gets to the point where it tells you the latest firmware version, click on the &quot;Change&quot; button and select the file name of the OS 2007 firmware you just downloaded. You can then proceed as described above, and it will install OS 2007 instead of OS 2008.
* If you have a Mac or Linux, simply use your firmware update methods described above, but using the N800 OS 2007 file you just downloaded instead of N800 OS 2008.

If you do reinstall OS 2007 but change your mind and want OS 2008 again, you can simply update the firmware to the latest OS 2008 version using the methods described earlier in this article.

You cannot use OS 2007 with the N810, OS 2007 has never been released for it.

[[Category:HowTo]]
[[Category:Power users]]
[[Category:OS2008]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>How to use e-mail on the nokia n800 and n810</title>
    <id>1915</id>
    <revision>
      <id>32148</id>
      <timestamp>2010-04-08T12:12:05Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>links</comment>
      <text xml:space="preserve">===How do I access my e-mail on the [[Nokia N800|N800]] and [[Nokia N810|N810]]?===

There are two ways to use e-mail on the tablets, webmail and the built-in e-mail application. Webmail is where you access e-mail through a website, while the built-in e-mail app lets you look at mails on the tablet itself.

The built-in e-mail application requires some setting up to get it working, but many people prefer to use it because they feel it's quicker and more flexible than webmail.

===How to use webmail on the tablets===

Webmail is by far the easiest to use, there's no set-up process at all.

You just open the tablet web browser and go to your usual webmail site (for example gmail.com). The site works just as it would do on a PC, you just log in and use the site as normal.

Incidentally, if you're a Gmail user and your tablet is on a slow connection, you might want to use the simpler version of the Gmail site by logging on as usual and then clicking on the &quot;HTML&quot; link at the bottom of the page. If you're on a VERY slow connection, there's an even simpler version of Gmail which you can access at the address m.gmail.com

===Do you often use Gmail through your tablet web browser? If so, read this===

If you use Gmail through the tablet's web browser, you might like to install the Gmail notification application called &quot;Mnotify&quot;, which automatically checks your e-mail at regular intervals and displays a white envelope at the top of the screen when you have unread mail. Clicking on the envelope lets you go straight to your Gmail inbox in the web browser.

To install Mnotify, go to the application menu (the green squares on the left), then Settings, then Application Manager, then &quot;Browse Installable Applications&quot;, then &quot;All&quot;, then scroll down the screen until you find Mnotify. Click on it, and then click &quot;Install&quot; at the bottom of the page.

After you've installed it, click on the envelope at the top of the screen (which will have a yellow exclamation mark on it). Click on settings, pick the interval at which you want it to check for new mail (the more often you do it, the more it uses the battery), then click on the &quot;Gmail Account&quot; tab. Enter your Gmail username and password, then click OK.

If Mnotify is set up correctly, the yellow exclamation mark should disappear and be replaced by a white envelope (if you have unread mail) or a dark one (if there's no unread mail). The white envelope will flash if you have brand new unread mail. Clicking on the envelope brings up a menu which includes a &quot;View Inbox&quot; option that opens a new browser window and takes you straight to your Gmail inbox. You can also select &quot;Check Mail Now&quot; if you want to manually check for new messages, though the app will automatically check at regular intervals anyway.

===How to use the tablets' built-in e-mail application===

IMPORTANT NOTE: This tutorial assumes you've updated your tablet to the very latest firmware. If you haven't done this in a while, do the update and then come back to this tutorial. You can find more about how to update your tablet by clicking here.

ANOTHER IMPORTANT NOTE: If you want to use Gmail or another webmail provider with the built-in e-mail application, you may have to switch on their POP or IMAP service first. You can see an example of how to activate the Gmail POP service in the video at the beginning of this tutorial.

Webmail is very easy to use, but some people prefer the tablets' built-in e-mail application. Many feel that the built-in app is faster to use and more flexible, and that's what we're going to look at now.

Some of the benefits of the built-in app include the ability to write e-mails while the tablet is disconnected from the internet, and also an on-screen notification icon which flashes when you receive new mail (it also makes your tablet's light flash).

Here's how to set up the application:

# Click on the contacts icon (the orange icon on the left).
# Click on &quot;View E-Mail Inbox&quot;.
# The app's account setup wizard will automatically appear. Click &quot;Next&quot;.
# Select your country from the dropdown &quot;Region&quot; list.
# Select your e-mail provider from the &quot;Service Provider&quot; dropdown list.
# If you want, give the account a name (e.g. &quot;Gmail&quot; or &quot;My email&quot; or whatever, it's not important). You can just leave it as &quot;Account&quot; if you want.
# Click on &quot;Next&quot;.
# Enter the name you want to appear on your e-mails.
# Enter the username of your e-mail account (write it in full including the part after the @ sign, e.g. example@example.com).
# Enter the password of your e-mail account.
# Enter the address of your e-mail account (e.g. example@example.com).
# Click on &quot;Next&quot;.
# Click on &quot;Finish&quot;.

The e-mail app should now be set up for use with your e-mail account. It will now automatically try to check your inbox, and if it succeeds then you have set everything up correctly.

Don't worry if you get a security warning about an &quot;unknown certificate&quot;, just click on OK. It will only show you the warning once.

Once the app is set up correctly, you can read e-mail in your inbox by double-clicking on it to see it in a new window. Close the new window to get back to the inbox. You can see more of the inbox by dragging the central line to the left.

You can write a new e-mail by clicking on the contacts icon (the orange icon) and selecting &quot;Compose E-Mail Message&quot;. The icons next to the &quot;To&quot; and &quot;CC&quot; fields let you select recipients from your tablet's contacts list, and the icon next to the subject line lets you attach a file from the tablet's memory. When you're ready to send the mail, click on the envelope icon in the bottom left of the screen.

===How to make the built-in e-mail app tell you when you've got new mail (and also how to turn this feature off)===

You can optionally make the built-in app check for new mail at regular intervals. If it finds new mail, it will display a flashing envelope icon in the bottom left corner of the screen. It will also make the tablet's light flash.

One important thing to note is that this feature works even when the e-mail app isn't running.

To switch this feature on, click on the contacts icon, then &quot;View E-Mail Inbox&quot;, then the grey E-Mail menu at the top, then Tools, then Settings and then tick the box marked &quot;Update Automatically&quot;. You can choose from the dropdown menu whether it only updates when connected to Wi-Fi (WLAN), or whether it can use other types of connection too. The update interval is also important because the more often it checks for new mail the more it will use the battery. Once you've chosen all the appropriate options, click on &quot;OK&quot;, then close the e-mail application using the X in the top right corner.

To switch the feature off, use the method above but UNtick the box marked &quot;Update Automatically.

===How to use the tablet's contacts list===

The tablet has a built-in contacts application which is an electronic address book.

The built-in e-mail application lets you make use of this contacts list, with icons on the e-mail composition screen that let you add addresses from your contacts.

By default the contacts list is blank of course, but you can add names and addresses very easily:

# Click on the contacts icon (the orange icon on the left).
# Click on &quot;View Contacts&quot;.
# Click on the + sign at the bottom of the screen.
# Enter whatever information you want to, and if you want to add a new category of information click on the &quot;Add Field&quot; option. You can also add an image for that contact by clicking on the &quot;Browse&quot; button and selecting the appropriate image file from your tablet's memory.
# When you've finished adding info about the contact, click on OK.

...and that's it, the contact is added to your tablet's list.

[[Category:HowTo]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>How to use skype on the nokia n800 and n810</title>
    <id>1916</id>
    <revision>
      <id>32149</id>
      <timestamp>2010-04-08T12:12:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>links</comment>
      <text xml:space="preserve">===What is Skype? What is it used for?===

Skype is a popular internet phone application, which lets you make and receive free calls to and from other Skype users. It doesn't matter where you are, you can talk to anyone else on Skype free of charge.

You can optionally also make and receive cheap calls to and from ordinary phones (including landline phones and mobile phones) by paying a fee to use the extra services SkypeOut (for calling normal phones) and SkypeIn (for receiving calls from normal phones).

Skype effectively turns the tablets into mobile phones, especially if you buy the extra services. It works through the tablets' Wi-Fi connection and also through their Bluetooth mobile phone connection, though the sound quality may be very low if your phone connection is very slow (for example the quality is very bad on 2G phone networks but better on 2.5G, 3G and 3.5G networks).

Skype on the tablet is the same thing as Skype on a PC or Skype on a smartphone, it's all one network and all Skype users can talk to each other whatever device they're using. You can use Skype on many devices simultaneously. For example, you could have the same Skype account running on your tablet and on your PC, and any incoming calls will ring on both devices. You can answer these calls on any device you want, it doesn't make any difference.

===How much does it cost to use Skype?===

Calls between Skype members are free, you can talk for as long as you want and Skype will not charge anything.

Bear in mind though that if you're using Skype on the tablets through a Bluetooth mobile phone connection, you will have to pay whatever data fees your phone network operator normally charges you for using the phone as a modem. Check with your network operator if you're unsure what these charges are, and ask them about any special deals they have as many networks offer deals where you just pay a flat monthly fee for unlimited access.

The cost of calls to ordinary phone numbers depends on which country they're in. You can see a complete list of these charges on the Skype website. It doesn't matter which country you are in, all that matters is which country the number you're ringing is in.

===How to install Skype on the N800 and N810===

The [[Nokia N800|N800]] and [[Nokia N810|N810]] have a Skype icon in the &quot;My Selection&quot; part of the Applications menu (the green squares on the left). If Skype is already installed, clicking on this icon starts it up. If Skype isn't already installed, clicking on this will start the automatic installation process. Say &quot;yes&quot; and &quot;ok&quot; and &quot;I agree&quot; to all the questions it asks, and the Skype app should install without any problems.

If the tablet won't let you install Skype by clicking on the icon, you probably need to update the tablet's firmware. You can find out how by clicking here to view our firmware update tutorial.

===How to sign in to Skype===

Once Skype is installed, click on its icon in the Applications menu to activate it. You may have to agree to the app's user agreement the first time you use it.

If you already have a Skype account, for example from Skype on your PC or any other device, you can use this same account to access Skype on the tablet. Simply enter your username and password, and tick the box if you want it to automatically log you in when you start the application in the future (this is highly recommended!).

If you don't have a Skype account, click on the &quot;New User?&quot; icon to create one.

After you've signed in with your account's username and password, you will see your Skype contacts list appear on the left of the screen. This will happen even if you normally use Skype on a PC, because the contacts list is stored online and automatically downloaded onto whatever device you're using.

===How to call other Skype members===

If you already have some Skype contacts, you can call them by just selecting their name from the list and pressing the green &quot;Call&quot; button.

When you do call people a special window will appear which includes buttons for ending the call, muting the call and adjusting the volume. It will ring just like a normal phone until the other person answers.

If you want to add Skype contacts, click on the menu at the top and then &quot;Add A Contact&quot;. It will then ask you to search for whoever you want to add as a contact. If you already know their Skype username, enter this in the search box and click on &quot;Find&quot;. If you only know their real name, you can enter this too but the results may not be the person you think they are. For example searching for &quot;John Smith&quot; displays the usernames of many people with that name.

When you do find a username you want to add to the contacts, click on it on the search results and then click on &quot;Add Skype Contact&quot; at the bottom of the screen. Tick or untick the box depending on whether you want to share your Skype details with that person, and then click on &quot;OK&quot; to add them to your contacts. If you don't want to add any contacts at all, click on the &quot;X&quot; in the top right hand corner.

Remember that you can use Skype on any device to call people on any device. Skype on a tablet can be used to call Skype members on a PC for example, and you can have Skype active on many devices at once. This is handy if you want to use the tablet as a Skype phone around the house or on the move, so that you're not tied down to using Skype on your PC.

===How to receive calls from Skype members===

To receive calls on Skype, the Skype application must be active. When someone calls a window will pop up in the application with an option to answer the call or to reject it.

However, you do not have to have Skype constantly on the screen for it to be active. After you've signed in, you can leave Skype running in the background and use the tablet for something else if you prefer. This can be done by clicking on the minimise icon in the top right hand corner (it looks like an arrow pointing down at a line).

When a call comes through, you will hear the Skype ringtone, a notice will appear in the top right corner saying there's an incoming call, and the Skype icon in the task bar will flash. See the video above for an example of this happening.

If the Skype app is minimised when the call comes through, you can restore it to full size by clicking on its icon on the left of the screen. You can then answer the call by clicking on &quot;Answer&quot;.

===How to call real phone numbers on Skype===

Skype lets you call real phone numbers using a service called SkypeOut. This costs money, in fact it's the main way that the Skype company receives an income.

If you want to call a real phone number, click on the blue phone icon near the top of the screen (watch the video above if you're unsure where this is).

You then enter the phone number using the on-screen keypad, but remember that you have to enter it in an international form, which means using the country code of the person you're calling and also dropping the first 0 from their number if there is one. For example, the country code for Finland is 358 so calls to Finland through Skype always begin +358. If a Finnish phone number has a 0 at its beginning, this is dropped in the international form of that number, so &quot;09 12345678&quot; would become &quot;+358 9 12345678&quot;.

(There are some exceptions to the rule above: For some Italian landline numbers
you will have to include the leading zero also in the international form. One example is Rome, which uses international numbers of the form +39 06 1234...)

You need to have Skype Credit if you want to phone real numbers though. This can be added by clicking on the &quot;Buy Skype Credit&quot; link in the Skype application, which is next to the on-screen keypad. You can pay for Skype Credit using a credit card, or alternatively you may be able to buy Skype Credit vouchers with cash in certain shops.

As noted in the costs section above, the cost of calls to real numbers on Skype depends entirely on where the number is. It makes no difference where you are. You can see the current rates by clicking on the &quot;SkypeOut rates&quot; link next to the on-screen keypad.

===How to receive calls from real numbers on Skype===

As well as SkypeOut, there's another service available from Skype called SkypeIn, which gives you a real phone number that other people can call. Calls to this number go automatically to your Skype account, and it effectively turns your Skype account into a phone line.

Like SkypeOut, you have to pay for SkypeIn, but it's just a flat fee which lets you use the number for a certain amount of time.

To add SkypeIn to your account using the tablet, click on the Skype menu at the top, then Tools, then Settings, then click on the small arrow pointing right on the right side of the screen until you get a tab called &quot;Services&quot;. Click on the &quot;Extend&quot; link next to the &quot;SkypeIn&quot; icon. It will then open part of the Skype website, follow the instructions to proceed.

===How to tell if you've received a missed call===

You can see a complete list of calls made and received by clicking on the History icon on the main page of the Skype app. The icon looks like a clock with a blue frame, it's next to the Contacts and SkypeOut icons.

If you have received an unanswered call, the History icon should have a red symbol next to it, and you can see who called you by clicking on the icon.

===Where is the tablet's microphone? Where should I talk into?===

In normal mode the tablet works like a speakerphone, you just put it on a table and talk to it like you would talk to a real person.

However, if you really want to know, the N800's microphone is in the middle of the top edge of the tablet, while the N810's microphone is in the middle of the bottom edge of the tablet.

===What about privacy? How do I call someone without the call coming through the tablet speakers?===

Very easy answer: just plug in some headphones. Any headphones will do as long as they have a standard 3.5mm plug.

You can also use the headphones that come with the tablet, which include a built-in microphone inside the plastic button along the length of the cable.

Alternatively you can use a Bluetooth wireless headset, which is useful if you want to handle calls without having to take the tablet out of a pocket or bag. Click here to see our tutorial on using Bluetooth headsets with the tablets.

===How to use Skype for instant messaging===

As well as voice calls, you can chat to other Skype members in text. To do so, just select a member from the contacts list and click on the blue &quot;Chat&quot; icon. Type in whatever you want to say, and they will see it the next time they log into Skype. They don't have to be logged on to start a chat with them. When you've finished with a chat close it by clicking on the &quot;X&quot; in the top right hand corner.

If you want to go back to a chat, click on the Skype menu at the top, then click on Chats, then select the name of the person you're chatting to.

===How to alter the settings on Skype on the tablet===

There are all kinds of options and settings on the Skype application. You can access these by clicking on the menu at the top of the screen, then Tools, then Settings.

The settings screen is divided up into many tabs, and you can scroll through these tabs by clicking on the small arrows on either side of them. When you reach the last tab in either direction, the arrow will turn grey.

When you've finished adjusting the settings, click &quot;OK&quot; to save your alterations, or &quot;Cancel&quot; to discard them.

===How to sign in with a different Skype account===

If you want to use a different Skype account on the same tablet, you have to sign out of the account you're currently using. To do this, click on the menu at the top and then Sign Out. You can then enter the username and password of the account you wish to use instead, and sign in to this different account.

===How do I install Skype on my computer?===

Just click here to go to Skype.com and then click on the Download link. There are versions of Skype for Windows PCs, Linux PCs and Macintoshes.

If you are going to use Skype on your computer, you will probably need a headset, but these can be bought very cheaply at any computer or electronics shop. Just ask the salesperson for help and explain you only want something cheap (don't let them sell you expensive headphones, you do not need them for Skype!).

[[Category:HowTo]]
[[Category:Media]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>How to use the web browser on the Nokia N800 and N810</title>
    <id>1888</id>
    <revision>
      <id>28346</id>
      <timestamp>2010-02-04T13:32:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify and add category</comment>
      <text xml:space="preserve">==Some hints and tips for using the web browser on the Nokia N800 &amp; N810==

The [[MicroB|web browser]] is the most important feature on the [[Nokia N800|N800]] and [[Nokia N810|N810]] [[internet tablets]] as it lets you look at websites, which is the main purpose of the tablets.

The browser is fairly easy to use, especially if you're used to using web browsers such as Firefox or Internet Explorer on computers. However, there are still a few quirks and features which may not be immediately obvious, and that's what we're going to look at in this tutorial.

For those who are interested, the browser used in the N800 and N810 is called MicroB, and is based on the same Mozilla technology that Firefox uses. It is compatible with all the major advanced website standards such as Flash, Javascript and AJAX, and is possibly the world's best web browser on a pocket-sized device. The tablets are compatible with far more websites than the iPhone or iPod Touch because Apple's gadgets cannot display Flash-based sites.

===How to open the browser===

There are actually many ways to get the browser window to open. The three most popular are:

* New Window method: Click on the browser icon (the globe in the top left hand corner), then click on &quot;Open New Browser Window&quot;, then enter the website address you want to go to in the address bar at the bottom of the screen (the one with the small globe next to it), then click on the green button to go to that address. You can open several new windows if you like, and you can switch between them by clicking on the icon featuring two white squares that appears in the bottom left hand corner and selecting the window you want. You can also close windows by clicking on the squares icon and then clicking on the &quot;X&quot; next to the window you want to close.
* Bookmark method: Click on the browser icon, then click on one of the bookmarks, and the site you selected will open in a browser window. If you already have a browser window open, the site you selected will appear in that open window. You can add your own bookmarks by going to the site you want to bookmark, then clicking on the small globe next to the address bar, then clicking on &quot;Add Bookmark&quot;.
* Keyword Search method: Click on the Google search box on the tablet desktop, then type in the words you want to search for, then click on the arrow on the right of the search box. The results of your search will appear in a new browser window, or if there's already a window open the results will appear in that. You can change to a Wikipedia search if you prefer, by clicking on the Google icon and selecting Wikipedia. If you can't see the search box on the desktop at all, click on the &quot;Home&quot; menu at the top of the desktop, then &quot;Select Applets&quot;, then tick the box marked &quot;Internet Search&quot;, then click on &quot;OK&quot;.

===Menus in the browser===

There are actually three separate menus in the browser window:

* The &quot;Web&quot; menu at the top of the screen, which is the most comprehensive and lets you access virtually all the browser's features.
* The Bookmarks menu, which is the small globe to the left of the address bar at the bottom of the screen. This lets you go to your favourite sites, lets you add a bookmark for the site you're currently viewing (&quot;Add Bookmark&quot;), and lets you remove and organise bookmarks using the &quot;Manage Bookmarks&quot; option.
* The Magnifying Glass menu, in the bottom right hand corner of the browser window. This lets you zoom in and out, choose whether to show images and lets you switch Flash and multimedia support on and off. It's also got a search function if you want to find a particular word or phrase on the page you're currently viewing. Do NOT tick the &quot;Fit Width To View&quot; option, see below for an explanation why.

===How to refresh web pages===

There's no &quot;Refresh&quot; or &quot;Reload&quot; button on the tablet browser, but you can refresh pages by simply clicking on the green arrow button next to the current page's address. For example if you're currently looking at www.google.com, you can refresh the page by pressing the green button next to &quot;http://www.google.com/&quot;.

However, this may not work on some sites which use a web technique called frames. Pages on sites that use frames can be refreshed by going to the &quot;Web&quot; menu at the top of the screen, then clicking on &quot;Web&quot;, then &quot;Navigation&quot;, then &quot;Reload&quot;. If you're using the web at full size the Web menu won't be visible. You can still access the reload option though, by holding the stylus down on the screen to make a menu appear (don't let go until you've selected an option), then select &quot;Navigation&quot;, then select &quot;Reload&quot;, then take the stylus off the screen.

===Do NOT use Fit Width To View===

There is an abominable option on the tablet browser called &quot;Fit Width To View&quot;, on the magnifying glass menu in the bottom right corner. Do not use this option. Make sure that this option is always unticked.

For more details on why Fit Width To View should be avoided, click here to see our special mini-tutorial on the subject.

===How to turn Flash on if it doesn't work===

If you're trying to access a Flash-based site (for example homestarrunner.com or youtube.com) and it doesn't seem to work, it may be that your tablet browser has Flash support switched off.

To switch it back on, click on the magnifying glass in the bottom right hand corner of the browser, then click on &quot;Components&quot;, then make sure you have ticked the &quot;Shockwave Flash&quot; option. Also make sure the &quot;Default Plugin&quot; option is also ticked.

===How to stop pages loading when they get stuck===

As regular web users will know, sometimes websites get stuck while they're loading, and you may want to just stop the page loading.

If a site gets stuck while it's loading, or if it's just loading too slowly, press the small red icon in the bottom right corner which appears during the loading process.

You can retry the loading by pressing the green button next to the website address bar. Alternatively, you can give up and go to another website by entering a different address or clicking on a bookmark.

===How to highlight and copy text on websites===

If you want to highlight text within a text entry box (for example in an e-mail or forum post you're writing), just sweep the stylus over the text you want to highlight.

If you want to highlight text on normal web pages, you have to use a special &quot;double tap&quot; method. Tap the stylus twice near the text you want to highlight AND DO NOT LET GO AFTER THE SECOND TAP. With the stylus still held down, move it over the text you want to highlight and the text should change colour as you do so. After the text is highlighted you can let go. If you want to copy highlighted text, hold the stylus on the highlighted text and select copy from the menu that appears.

The &quot;double tap&quot; method can take some getting used to, but once you get the knack of it it should be fairly easy to use.

The reason there is a double tap method at all is because a single tap could indicate you just want to scroll around the page. The tablet needs some way to tell that you want to highlight text rather than move the page. Ordinary computers with mice don't have this problem because you don't use the mouse buttons to scroll the page, they have a scroll wheel instead.

[[Category:HowTo]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>How to use the web browser on the Nokia N900</title>
    <id>4126</id>
    <revision>
      <id>38534</id>
      <timestamp>2010-09-13T14:13:05Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect</comment>
      <text xml:space="preserve">#REDIRECT [[N900 shortcuts and gestures#Web Browser Gestures]]</text>
    </revision>
  </page>
  <page>
    <title>Howto Fix Maemo</title>
    <id>2764</id>
    <revision>
      <id>20485</id>
      <timestamp>2009-10-19T16:13:52Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Howto Fix Maemo]] moved to [[Troubleshooting]]: Not a good name. Needs more content also.</comment>
      <text xml:space="preserve">#REDIRECT [[Troubleshooting]]</text>
    </revision>
  </page>
  <page>
    <title>Howto fix maemo</title>
    <id>2755</id>
    <revision>
      <id>21035</id>
      <timestamp>2009-10-26T09:25:53Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <comment>Redirecting to [[Troubleshooting]]</comment>
      <text xml:space="preserve">#REDIRECT [[Troubleshooting]]</text>
    </revision>
  </page>
  <page>
    <title>I18n python apps</title>
    <id>3983</id>
    <revision>
      <id>36242</id>
      <timestamp>2010-06-24T12:58:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Internationalize a Python application]]</text>
    </revision>
  </page>
  <page>
    <title>ICD Policy Plugins</title>
    <id>4677</id>
    <revision>
      <id>41478</id>
      <timestamp>2011-01-28T08:50:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">An Internet Connectivity Daemon policy plugin is a plugin used by the [[Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Maemo Connectivity#Internet Connectivity Daemon|Internet Connectivity Daemon]] to decide different things about an internet connection such as whether to connect or disconnect it.

By writing a new ICD policy plugin, it should be possible to do things like making one WiFi network take priority over another WiFi network (e.g. your home network taking priority over everything else)

The plugins included with Fremantle are (in priority order): (this information comes through GConf and can be changed via the normal GConf configuration-changing tools or tricks)
*&lt;code&gt;libicd_policy_merge.so&lt;/code&gt; (Merge a new request with an already existing one)
*&lt;code&gt;libicd_policy_ask.so&lt;/code&gt; (Request 'Select connection' dialog from UI)
*&lt;code&gt;libicd_policy_any.so&lt;/code&gt; (Any connection)
*&lt;code&gt;libicd_policy_change.so&lt;/code&gt; (Change to another connection)
*&lt;code&gt;libicd_policy_add.so&lt;/code&gt; (New IAP creation)
*&lt;code&gt;libicd_policy_always_online.so&lt;/code&gt; (Always online policy)
*&lt;code&gt;libicd_policy_one.so&lt;/code&gt; (One connection only)
*&lt;code&gt;libicd_policy_restart.so&lt;/code&gt; (IAP restart policy)
*&lt;code&gt;libicd_policy_nw_disconnect.so&lt;/code&gt; (Network disconnect reference count)

ICD policy plugins all &lt;code&gt;#include policy_api.h&lt;/code&gt; (the base API file for ICD policy plugins) and may optionally &lt;code&gt;#include icd_dbus.h&lt;/code&gt; (header file for working with D-Bus) and/or &lt;code&gt;icd_log.h&lt;/code&gt; (logging code for ICD2 policy plugins).

All ICD policy plugins export a function called &lt;code&gt;icd_policy_init&lt;/code&gt;. This function takes a variable of type &lt;code&gt;icd_policy_api *&lt;/code&gt; plus a number of callbacks that can be saved for later use. Your plugin does whatever initialization it wishes to do (registering D-Bus handlers for example), saves any private data in the &quot;private&quot; field of the &lt;code&gt;icd_policy_api&lt;/code&gt; structure (which may be a pointer to a data structure containing a bunch of data) and then fills in any appropriate function members of the &lt;code&gt;icd_policy_api&lt;/code&gt; that this plugin wishes to listen for.

Different callbacks have different prototypes but all of them get passed the private data stored earlier.

I am hoping that this information will be useful to someone and that someone will take it and build new policy plugins with it.

== External links ==

The policy API header files plus reverse engineered code (that may not be 100% correct) for &lt;code&gt;libicd_policy_one.so&lt;/code&gt; and &lt;code&gt;libicd_policy_add.so&lt;/code&gt; can be found here: http://code.google.com/p/icd-policy/source/browse/#svn%2Ftrunk

Documentation for all this stuff can be found here: http://maemo.org/api_refs/5.0/5.0-final/icd2/index.html

[[Category:Development]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>IRC</title>
    <id>136</id>
    <revision>
      <id>48880</id>
      <timestamp>2012-08-03T14:53:50Z</timestamp>
      <contributor>
        <username>mdn</username>
        <id>5377</id>
      </contributor>
      <comment>/* Logs */ old mer site is not accessible</comment>
      <text xml:space="preserve">== List of IRC channels ==

All channels are hosted on [http://www.freenode.net Freenode].

* #maemo - General discussion about the Maemo Platform.
* #maemo-bugs - General discussion about bug management and triaging.
* #maemo-devel - General discussion about development on the Maemo platform.
* #maemo-gsoc - Support channel for the Google Summer of Code students working/willing to work with the Maemo Community.
* #maemo-meeting - Meetings channel.
* #maemo-ui - Maemo 5 UX Design discussion/consultancy/advices.
* #maemo-ssu - General discussion about the Fremantle [[Community SSU]].
* #mer - General discussion about [[Mer]].
* #qt-maemo - Discussion/support for Qt in the Maemo platform.
* #meego - General discussion about the MeeGo Platform.
* #harmattan - Discussion around MeeGo 1.2 Harmattan.

== Chat and Help ==

If you want to try out IRC then [http://webchat.freenode.net/ click here] and pick a username when you're asked (it's not remembered or important for now) and type in one or more of the channels in the list above. This will give you a web-based chat window using the Freenode webchat service.

Say hello and mention that you followed the link on the wiki and ask for help or just talk to us :)

Then, if you like, you can search for an irc client for your machine and dive in.

== Meetings ==
There are regular IRC [[Task:Maemo-meeting|meetings]] of the Maemo community and representatives of Nokia on a variety of subjects. These meetings will be held in [irc://chat.freenode.net/maemo-meeting #maemo-meeting], and usually be announced on either the [[Community mailing lists|mailing lists]] or [http://maemo.org maemo.org].

Logs of these meetings are available [http://maemo.org/maemo-meeting/ here].

== Logs ==
Thanks to Marius Gedminas we have [http://mg.pov.lt/maemo-irclog/ logs] available in chronological order.

* [http://mg.pov.lt/maemo-irclog/ #maemo]
* [http://mg.pov.lt/maemo-bugs-irclog/ #maemo-bugs]
* [http://mg.pov.lt/maemo-devel-irclog/ #maemo-devel]
* [http://mg.pov.lt/maemo-meeting-irclog/ #maemo-meeting]
* [http://mg.pov.lt/maemo-ui-irclog/ #maemo-ui]
* [http://mg.pov.lt/maemo-ssu-irclog/ #maemo-ssu]

* [http://mg.pov.lt/meego-irclog/ #meego]

* [http://mg.pov.lt/harmattan-irclog/ #harmattan]

* [http://mer.bfst.de/logs/%23mer/ #mer]


Logs from some IRC channels are archived on ibot.rikers.org too (updated daily).

* [http://ibot.rikers.org/%23maemo/ #maemo]
* [http://ibot.rikers.org/%23maemo-ssu/ #maemo-ssu]


Live logs from #maemo channel are also on logs.nslu2-linux.org.

* [http://logs.nslu2-linux.org/livelogs/maemo/ #maemo]

== Cloaks ==

{{main|Task:maemo.org IRC cloaks}}

[[Category:Community]]
[[Category:Mer]]</text>
    </revision>
  </page>
  <page>
    <title>IRC rtcomm</title>
    <id>1377</id>
    <revision>
      <id>31061</id>
      <timestamp>2010-03-12T10:57:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>minor tidy</comment>
      <text xml:space="preserve">If you have the [http://rtcomm.garage.maemo.org/ Internet Communications Software Update for N8x0], otherwise known as rtcomm, installed, you have an [[IRC]] client available to you on your tablet.

== Adding a server ==

*In control panel, accounts select New. Select service type IRC and press next.
[[Image:IRC_Service.png]]

Enter a Nick name and Server and press Finish. The nick name must be unique to the server.

[[Image:IRC_UserName.png]]

Now you should have an IRC service in your list of accounts.

== Connecting to a channel ==

Start a New Chat. Under the chat menu, select Enter chat room...

[[Image:IRC_EnterChatRoom.png]]

You will be prompted to select an account. Select the account you entered in the previous step.

[[Image:IRC_ConnectingSelectAccount.png]]

Next you will be prompted for a Room name, such as #maemo.

[[Image:IRC_ConnectingEnterChatRoom.png]]

== Chat ==

Now you are in the channel. On the left is the list of users present, on the right is the conversation. Enter your messages on the bottom.

[[Image:IRC_ChatRoom.png]]

[[Category:HowTo]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>ISP Move</title>
    <id>3004</id>
    <revision>
      <id>22472</id>
      <timestamp>2009-11-11T18:32:57Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[ISP Move]] moved to [[ISP move]]</comment>
      <text xml:space="preserve">#REDIRECT [[ISP move]]</text>
    </revision>
  </page>
  <page>
    <title>ISP move</title>
    <id>2858</id>
    <revision>
      <id>38208</id>
      <timestamp>2010-08-30T12:20:18Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Single Sign On */ add link</comment>
      <text xml:space="preserve">Agreement with the new ISP has been signed.
Now we are waiting for them to get the hardware to the server room.
After that the services will be copied over to the new set-up.

The servers will be run side by side for a while to verify the set-up.


== Things to be done ==

* Discuss the nitty gritty details with Akamai - tekojo
* Physical copy or rsync or both? - tekojo, xfade, feri
* Verify connections once the hardware is there
* Document access and installations - feri, xfade, rambo
* Do the actual move of services - feri, xfade, rambo
* Verify all services to be running and connected
* Inform DNS on move and agree switchover time - tekojo
* Get new SSL Certificates - stezz

== Once in the new space ==

Some services could do with a version upgrade
* Bugzilla - karstenb, aklapper
* Garage - feri
* MediaWiki - feri

== Single Sign On ==

[[Task:Single sign-on|Single sign-on]] should have a machine in place after the move. Services can start to connect to that one by one. But it is a longer task.

== Questions: ==

Do we have some form of documentation describing the layout? That is to say, which machine holds the repos, which machine holds the web site, etc.

== The Bug ==
* [https://bugs.maemo.org/show_bug.cgi?id=5818 We need servers]

[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>ITP</title>
    <id>3632</id>
    <revision>
      <id>30000</id>
      <timestamp>2010-02-22T16:04:13Z</timestamp>
      <contributor>
        <username>jeremiah</username>
        <id>585</id>
      </contributor>
      <minor/>
      <comment>Minor changes</comment>
      <text xml:space="preserve">'''ITP - Intent To Package'''


== What is it? ==


An ITP is a way to say &quot;I intend to [[packaging|package]]&quot; a given package for Harmattan / Maemo / MeeGo. By doing this, you lessen the chances that someone else will duplicate your work. It is also a good indicator of what people want packaged, but is not a replacement for RFP - &quot;Request For Packaging.&quot; These to methods are way to inform the community of your interest in maemo packaging.

== How does it work? ==

You fill in the ITP form and that gets posted to a database. Once the form is filled out, you'll get an id number of your ITP request. This id number goes in your changelog in your package and will be used to update the database once your package is in the maemo repositories.

== Who can file an ITP? ==

Anyone is free to file an ITP. But if your ITP has been left to languish for more than two weeks, it may be completed by someone else.

== How do I file an ITP? ==

You can file an ITP at this link:

== How can I see the current ITP queue? ==

I don't know, but I'm sure Jeremiah does.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>ITVC architecture</title>
    <id>1408</id>
    <revision>
      <id>46041</id>
      <timestamp>2011-12-15T06:33:28Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 46012 by [[Special:Contributions/114.79.28.10|114.79.28.10]] ([[User talk:114.79.28.10|Talk]]) vandalism/spam</comment>
      <text xml:space="preserve">''Note: development of ITVC has stopped. There are [[Video encoding | many popular community-maintained alternatives]] for transcoding - for example [[Video encoding #tablet-encode |tablet-encode]]''

==Introduction==

The Internet Tablet Video Converter (from now on called ITVC) application is composed of two main components. The UI takes care of only the user interface and high level business logic, it does not process, or even handle, media files directly. This job is working with media files is delegated to a Media Handler process. This approach removes the burden of dealing with the universe of codecs and media conversion from the UI portion of the app and leaving it free to specialize in what it does best: top notch user interface and usability. This architecture also enables ITVC to use different multimedia frameworks seamlessly by isolating them in a completely independent process: the Media Handler.

But all that wouldn't mean much if the communication between ITVC and Media Handler was complicated and hard to implement. Thus the communication is done using simple XML-like elements via TCP sockets. Easy to debug, parse and implement.

This simple and modular architecture also opens the door for third-party developers to easily make their own Media Handlers.

This document describes how ITVC and a Media Handler interact. This is all that one needs to know to be able to develop a Media Handler or to write their own code to interface to it.

==Overview==

The Media Handler acts as a server listening for TCP connections on a given port. The GUI front end then opens one or more simultaneous client sockets to the Media Handler port and exchanges data in a 2-way communication

The Media Handler is launched by the main ITVC application, which reads the mhstarter.cfg file (in its main installation directory) to determine which application to actually launch.

You can start the built-in Media Handler provided by ITVC by launching it manually outside of the main application. To do this, simply open up a command line terminal and change directory to the place where the ITVC app was installed. The port to be listened to by the Media Handler is given as a parameter when launching it. The following command line command, for instance, will open a Media Handler using port 1234:

 $&gt; ./mediahandler 1234

Executing the Media Handler without specifying the port is considered to be an error.

There can be only one instance of a Media Handler implementation running at any given time. So when a Media Handler is started it should check whether there's already another instance of itself (regardless of the port being used) running and if that's the case it should quit (leaving the existing one untouched). Please note this design principle if you decide to implement your own Media Handler.

ITVC will maintain a separate idle connection to the Media Handler with the sole purpose of checking whether the Media Handler process is still running.
Communication Protocol

All communication is done using commands from the ITVC to a Media Handler. The data transfered is XML-like elements using regular ASCII characters for the tags. They are XML-like elements instead of regular XML because their format is very limited and strict in order to make the implementation of a command parser as simple as possible. No whitespaces is allowed inside or between the tags. All commands follows this syntax:

 &lt;command-name&gt;param1|param2|param3|...&lt;/command-name&gt;

Where command-name is the name of the command that is being issued and paramN is the command's Nth parameter. Parameters are separated by a vertical bar &quot;|&quot;. For example: Every single byte between &quot;&lt;command-name&gt;&quot; and the first &quot;|&quot; is considered to be the first parameter.

All defined command names and parameter values are case sensitive (they should be lower case, more specifically).

If a command has no parameters, it will look like the following:

 &lt;command-name&gt;&lt;/command-name&gt;

The collapsed format is not supported, so the following is invalid:

 &lt;command-name/&gt;

When the execution of a command has finished, Media Handler replies with:

 &lt;result&gt;value&lt;/result&gt;

Where value is the result value. If a command succeeds, Media Handler will return the following ASCII string to ITVC:

 &lt;result&gt;ok&lt;/result&gt;

The result value &quot;ok&quot; means a successful command execution. Any value different than that means an error. An error result should be a terse english sentence in ASCII. When possible, a Media Handler should try to use one of the defined error messages.

{|
|+ Command result error messages
|-
! Error message !! Description
|-
| unknown command
| The command issued by ITVC is not known.
|-
| invalid parameters
| If Media Handler fails to parse or recognize one or more parameters of a command.
|-
| command failed
| Media Handler received a known command, with apparently valid parameters, but its execution failed.
|-
| aborted
| If the command was aborted during its execution.
|}

The communication that can happen between ITVC issuing a command and Media Handler replying the result varies according to the command that has been issued.

==Commands==

A Media Handler has the following commands:

=== fetch-info===

Gathers information from the specified media file and, optionally, creates a thumbnail of it.

Parameters:
1. Media's full file path.
2. Optional. Full file path of the thumbnail to be generated.

Example:

 &lt;fetch-info&gt;/Users/foo/myvideo.mov|/Users/foo/myvideo_thumbnail.png&lt;/fetch-info&gt;

Before sending the command result element, Media Handler will send one or more media properties complying with the following format:

 &lt;name&gt;value&lt;/name&gt;

Where name and value are set according to the following table:

{|
|+ Possible media properties
! name !! value
|-
| video-codec
| Video codec name.
|-
| audio-codec
| Audio code name.
|-
| fps
| Frames per second. A positive integer.
|-
| width
| Width in pixels. A positive integer.
|-
| height
| Height in pixels. A positive integer.
|-
| length
| Media duration in seconds. A positive integer.
|-
| file-size
| File size in bytes. A positive integer.
|-
| video-bit-rate
| Video bit rate (per second). A positive integer.
|}

Example session:

ITVC -&gt; Media Handler:
 &lt;fetch-info&gt;/Users/foo/myvideo.mov|/Users/foo/myvideo_thumbnail.png&lt;/fetch-info&gt;

Media Handler -&gt; ITVC:
 &lt;audio-codec&gt;Ogg Vorbis&lt;/audio-codec&gt;

Media Handler -&gt; ITVC:
 &lt;length&gt;182&lt;/length&gt;

Media Handler -&gt; ITVC:
 &lt;file-size&gt;3072&lt;/file-size&gt;

Media Handler -&gt; ITVC:
 &lt;result&gt;ok&lt;/result&gt;

===transcode===

Converts the specified media file according to the given parameters saving the resulting file at the specified file path.

Parameters:
1. Input path. Full file path of the media that's going to be converted.
2. Output path. Full file path of the conversion result.
3. Width, in pixels, of the converted media file.
4. Height, in pixels, of the converted media file.
5. Preferred video compression technology.
6. Video data rate, in bits per second.
7. Audio data rate, in bits per second.
8. Video refresh rate, in frames per second.

If the video encoder specified in the fifth parameter is not available (or cannot be used for some reason), the Media Handler may fallback to a more convenient one without returning any error or specific feedback. This fallback action is considered a normal (although undesired) behavior.

The table below defines the valid values (along with their respective meanings) for the video compression parameter:

{|
|+ Video compression parameters
! Value !! Description
|-
| mpeg4
| MPEG-4 Part 2, Advanced Simple Profile (ASP)
|-
| h.264
| MPEG-4 Part 10, either Main or High Profile
|-
| theora
| Theora, from Xiph.org Foundation&lt;ref&gt;Note that the default codecs shipped with the ITVC do not support Theora as an output format. This parameter is there as a placeholder should a 3rd party developer actually implement Theora encoding in new codecs.&lt;/ref&gt;
|}


&lt;references/&gt;

Example:

 &lt;transcode&gt;C:\temp\myvideo.wmv|C:\temp\myconvertedvideo.mp4|400|240|mpeg4|350000|128000|24&lt;/transcode&gt;

During the conversion, Media Handler will inform ITVC about the conversion progress by sending progress messsages at arbitrary time intervals. Those messages have the following format:

 &lt;progress&gt;number&lt;/progress&gt;

Where number is a positive integer from 0 (inclusive, meaning 0% done) to 10000 (inclusive, meaning 100% done).

When Media Handler sends a progress status message, it waits for a response from ITVC on whether it should continue converting or promptly abort the conversion. The progress reply from ITVC has the following format:

 &lt;progress-reply&gt;value&lt;/progress-reply&gt;

Where value can be either &quot;proceed&quot;, meaning that Media Handler should proceed with the conversion, or &quot;abort&quot;, meaning that the conversion should stop at once.

Example session:

ITVC -&gt; Media Handler:
 &lt;transcode&gt;C:\temp\myvideo.wmv|C:\temp\myconvertedvideo.mp4|400|240|mpeg4|350000|128000|24&lt;/transcode&gt;

Media Handler -&gt; ITVC:
 &lt;progress&gt;204&lt;/progress&gt;

ITVC -&gt; Media Handler:
 &lt;progress-reply&gt;proceed&lt;/progress-reply&gt;

Media Handler -&gt; ITVC:
 &lt;progress&gt;510&lt;/progress&gt;

ITVC -&gt; Media Handler:
 &lt;progress-reply&gt;proceed&lt;/progress-reply&gt;

Media Handler -&gt; ITVC:
 &lt;progress&gt;948&lt;/progress&gt;

ITVC -&gt; Media Handler:
 &lt;progress-reply&gt;proceed&lt;/progress-reply&gt;

Media Handler -&gt; ITVC:
 &lt;progress&gt;1159&lt;/progress&gt;

ITVC -&gt; Media Handler:
 &lt;progress-reply&gt;abort&lt;/progress-reply&gt;

Media Handler -&gt; ITVC:
 &lt;result&gt;aborted&lt;/result&gt;

===quit===

Makes Media Handler's process exit.

Example:

 &lt;quit&gt;&lt;/quit&gt;

Here's a [[:Image:ITV_interaction_diagram.png | visual representation ]] of the interaction process between the ITVC GUI and the Media Handler process based on the above protocol.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>I am here</title>
    <id>4291</id>
    <revision>
      <id>42347</id>
      <timestamp>2011-03-04T15:04:09Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{ambox}}</comment>
      <text xml:space="preserve">I Am Here is an application that provides a way to track your phone if it's lost / stolen.

{{ambox|text='''This application has not been maintained since [[Maemo 5/PR1.1.1|PR1.1.1]]. [[#Warnings|See the warnings]]'''

The source code is not available. Some of the information collected are forwarded through a mail account owned by the author.

[[#Uninstalling|Uninstallation instructions are found below]]}}

==Warnings==

The author seems to have been away for a long time, and the state of the project is unknown. There are many bugs reported by users, most of them are misconfiguration bugs, but some are real bugs which exist in the current release.
Usage of this software is most likely to lead you to need a complete reflash of your rootfs.
This wiki is here to make sure you know what you are doing, in case you do choose to go through with the installation.
The information in this wiki has been added to aid people in using this application, and avoid the possible &quot;I can't remove the application, what should I do&quot; situation.

'''Based on the above it is recommended users to not install this application until further updates become available.'''

==Description==

I Am Here works as a daemon in the background. It can be activated in 2 different ways:
* Incoming SMS with specific text, case-sensitive, telling the application to become active.
* Once active the application will send reports as configured in the configuration wizard via SMS/E-Mail.
* The reports will continue, if configured, untill a diactivation SMS will arrive also requiring very specific text.

OR

* The application also monitors the sim card IMSI, if it detects a new simcard, it assumes the phone has been stolen, and it send via sms/e-mail information regarding the current status.

==Information sent==

The information sent by the phone includes the following :
* Current GPS lock
* Last known lock before current
* Front &amp; Back camera pictures.
* Current simcard details (Not Sure about this one)
* Google maps link to current phone location
* Low battery alert

==Usage Flow==

The application is often being accused of not working properly, not possible to remove, cannot find how-to configure, cannot activate, etc. - It is important to understand how this application works, and more importantly, why.
* Download and install the application
* During the install process, a wizard will show up.
* This wizard, if not configured correctly, or configured without writing down the configuration that was chosen by the user, will lead to &quot;misconfiguration&quot; and problems using / uninstalling the app.
* In this wizard the user is requested to choose several details:
** Activation text (password) - This is the text that must appear in an SMS to activate reports on the device. If you forget what you configured, you will not be able to activate reports. Simple.
** Deactivation, deactivates reports. Again, if you forget the value you entered here, you are in trouble.
** Config wizard text - If you ever decide you want to go through this wizard again, to change a password, or uninstall the application, this is the way. This is the most important password of them all.
** More details can be configured and are pretty much self explanatory.

==Uninstalling==

* Send the config text message, and enable uninstalling via the config wizard.
* Open the app manager, and uninstall.

If you are unable to uninstall the application this way, you are not alone. Several have experienced the same problem, and in [http://talk.maemo.org/showthread.php?p=822462&amp;posted=1#post822462 this thread], it has been suggested that you run the following commands in a terminal.

'''Warning: Use these commands at your own risk!''' They are provided by various authors at talk.maemo.org in hope that they will help other users, but have not been tested thoroughly neither by me nor anyone in the Maemo community. Thus, there is no guarantee that they will work without breaking the device. Make sure you back up your device and know what these commands do before applying them in your device.

You will need to install the package '''rootsh''' from [[Extras]] first.

&lt;pre&gt;
sudo gainroot
killall imhere-0.3
rm /var/lib/dpkg/info/imhere-0.3.prerm
rm /var/lib/dpkg/info/imhere-0.3.postinst
dpkg --purge --force-remove-reinstreq imhere-0.3
&lt;/pre&gt;

[[Category:Software]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>IcecreamScratchboxHowto</title>
    <id>3562</id>
    <revision>
      <id>28719</id>
      <timestamp>2010-02-09T11:38:56Z</timestamp>
      <contributor>
        <username>mairas</username>
        <id>1622</id>
      </contributor>
      <comment>[[IcecreamScratchboxHowto]] moved to [[Icecream Scratchbox Howto]]: Avoid CamelCase</comment>
      <text xml:space="preserve">#REDIRECT [[Icecream Scratchbox Howto]]</text>
    </revision>
  </page>
  <page>
    <title>Icecream Scratchbox Howto</title>
    <id>3550</id>
    <revision>
      <id>28800</id>
      <timestamp>2010-02-10T12:27:59Z</timestamp>
      <contributor>
        <username>lizardo</username>
        <id>923</id>
      </contributor>
      <comment>/* Prerequisites */</comment>
      <text xml:space="preserve">''Original instructions written by Anderson Lizardo.''

= Icecream + Scratchbox HOWTO =

'''''NB:''' With some Scratchbox versions, distributed arm target compilations occasionally fail due to gcc/g++ targeting wrong ARM variant. Once a workaround is developed, this warning will disappear.''

From Icecream web page &lt;ref&gt;http://en.opensuse.org/Icecream&lt;/ref&gt;:

&quot;Icecream is created by SUSE and is based on ideas and code by distcc. Like
distcc it takes compile jobs from your build and distributes it to remote
machines allowing a parallel build on several machines you've got.&quot;

This document describes how to use icrecream for parallel compilation inside
Scratchbox.

== Prerequisites ==

''Skip this section if you have a working Icecream setup on your network.''

Before attempting to use icecc with Scratchbox, be absolutely certain it runs without any issues on the host itself (and that the processes migrate properly in the network). Basic Icecream installation includes once machine running the scheduler and every participating host running the icecc daemon.

On Ubuntu, a basic Icecream setup can be achieved by installing the package icecc on every participating host. On the scheduler, modify /etc/default/icecc to enable the scheduler daemon. If some host can't find the scheduler, modify /etc/icecc/icecc.conf to explicitly set the scheduler hostname.

Make sure the host sees the scheduler by running icemon (package icecc-monitor on Ubuntu). You can leave icemon running to observe the task migration during compilations.

To enable automatic distributed compilations on the host OS in Ubuntu, add the following snippet to $HOME/.bashrc:

&lt;pre&gt;
# set the ICECC version and enable it by default
. /etc/lsb-release
procfamily=$(uname -m)
icecc_tarball=&quot;$(readlink -f $HOME/icecc/icecc-$procfamily-$DISTRIB_CODENAME.tar.gz)&quot;
if [ -f &quot;$icecc_tarball&quot; ]; then
    export ICECC_VERSION=$icecc_tarball
    export PATH=/usr/lib/icecc/bin:$PATH
    export DEB_BUILD_OPTIONS=$DEB_BUILD_OPTIONS,parallel=12
fi
unset icecc_tarball procfamily DISTRIB_ID DISTRIB_RELEASE DISTRIB_CODENAME DISTRIB_DESCRIPTION
&lt;/pre&gt;

Note that on other distributions than Ubuntu, you might have to modify this, depending on the contents on /etc/lsb-release.

Also note the &quot;parallel=N&quot; parameter being added to DEB_BUILD_OPTIONS. This enables parallel builds (limited to N parallel jobs) for those packages that support it. Alternatively, if you are doing your own builds by calling &quot;make&quot;, you should instead pass the &quot;-jN&quot; parameter to enable parallel builds, e.g. &quot;make -j12&quot;.

Then, create directory $HOME/icecc and run &lt;pre&gt;icecc --build-native&lt;/pre&gt; there. Symlink the created tarball to a descriptive name, e.g. icecc-i686-karmic.tar.gz (this name has to match the $icecc_tarball variable in the .bashrc snippet above).

Now, open a new terminal and ensure that $ICECC_VERSION variable is set. Then run a test compilation to see that the compilation tasks really migrate to other hosts.

Do not proceed beyond this point before you have made a test compilation and seen that your Icecream setup works as intended.

== Compiling icecc ==

To be able to use icecc both on ARM and x86 targets, we need to compile it use
the &quot;special&quot; host-gcc and host-g++ compilers inside a scratchbox target. The
binaries generated by these compilers can then be run from any target, because
they link to scratchbox own libraries.

We will use only the icecc client, and share the icecc daemon with the host.
This allows using icecc both inside and outside scratchbox.

To compile icecc, enter a scratchbox target (the architecture set on it is not
important) and unpack the icecc source tarball (you can download it from &lt;ref&gt;ftp://ftp.suse.com/pub/projects/icecream/&lt;/ref&gt;).
Next, enter the source directory and run:

&lt;pre&gt;
sbox &gt; ./configure --prefix=/scratchbox/tools CC=host-gcc CXX=host-g++
sbox &gt; make
&lt;/pre&gt;

== Installing icecc ==

The next commands should be done outside scratchbox, as root.

Copy the &quot;client/icecc&quot; binary to /scratchbox/tools/bin and a &quot;icecc++&quot;
symlink necessary for compiling C++ programs:

&lt;pre&gt;
host# cp -a client/icecc /scratchbox/tools/bin/icecc
host# ln -sfn icecc /scratchbox/tools/bin/icecc++
&lt;/pre&gt;

== Preparing toolchain tarballs ==

To make sure that the correct compiler is used, it is necessary to create a
tarball containing all files required by the toolchain. This can be done either
manually, or by using the &quot;icecc_create_env_sbox.sh&quot; script.

&lt;ol&gt;
&lt;li&gt;Download [[Media:Icecc_create_env_sbox.sh|icecc_create_env_sbox.sh]] script.&lt;/li&gt;
&lt;li&gt;(Optional) Edit the script and change the &quot;sbox_dir&quot; variable, in case your scratchbox is not installed in /scratchbox&lt;/li&gt;
&lt;li&gt;Run the script for each target you wish to use icecc for. E.g.:&lt;/li&gt;
&lt;pre&gt;
host$ ./icecc_create_env_sbox.sh FREMANTLE_ARMEL
host$ ./icecc_create_env_sbox.sh FREMANTLE_X86
&lt;/pre&gt;
&lt;/ol&gt;

For each run, two files will be created:
* a tarball named &lt;md5&gt;.tar.gz, where &lt;md5&gt; is the MD5 signature of the tarball contents.
* a symbolic link to this tarball, named &quot;icecc_box-&lt;compiler_name&gt;.tar.gz&quot;

Place the tarballs in $HOME/icecc inside Scratchbox. These tarballs will be used later when running icecc. It is important that they uniquely identify the toolchain, because all peers in the build network will use the same tarball, and will cache the toolchain locally using that name. Therefore we use the MD5 signature, plus a symlink to easily map it to the actual Scratchbox toolchain name.

== Using icecc ==

In order to run icecc, you need to set the ICECC_VERSION environment variable
to point to the tarball created in previous section. Note that this variable
will be set to different values, depending on which target icecc will run (ARM
or x86).

The ICECC_VERSION variable has the following format:

&lt;pre&gt;
&lt;build_architecture&gt;:&lt;cross_toolchain_for_target&gt;
&lt;/pre&gt;

Hint:

You can add the following snippet to ~/.bashrc (inside scratchbox) and have
that variable set automatically to the right value (change tarball names and
path accordingly):

&lt;pre&gt;
sbox_compiler=&quot;$(sb-conf show --compiler)&quot;
# use the tarball name with the MD5, avoiding conflicting names in peer caches
icecc_tarball=&quot;$(readlink -f $HOME/icecc/icecc_sbox-$sbox_compiler.tar.gz)&quot;
if [ -f &quot;$icecc_tarball&quot; ]; then
    export ICECC_VERSION=&quot;i486:$icecc_tarball&quot;
    # comment the following line if you don't want to build in parallel by default
    export MAKEFLAGS=&quot;-j12&quot;
fi
unset icecc_tarball sbox_compiler
&lt;/pre&gt;

Done! To effectively use icecc to compile code, set the compiler to &quot;icecc&quot;.
This is usually done by setting the CC and CXX environment variables.

== Using icecc &quot;transparently&quot; under Scratchbox ==

Modifying build systems to use &quot;icecc&quot; instead of the defaults g++/gcc can be error prone. Therefore, the following instructions can be used to make it transparent:

&lt;ol&gt;
&lt;li&gt;Create a &quot;/host_usr/bin&quot; directory if it does not exist already:&lt;/li&gt;

&lt;pre&gt;sbox &gt; mkdir -p /host_usr/bin&lt;/pre&gt;

(This directory is automatically added by Scratchbox to beginning of the PATH, therefore it is not necessary to add it manually.)

&lt;li&gt;Create &quot;gcc&quot; and &quot;g++&quot; symlinks into that directory, pointing to icecc:&lt;/li&gt;

&lt;pre&gt;
sbox &gt; ln -sfn /scratchbox/tools/bin/icecc /host_usr/bin/gcc
sbox &gt; ln -sfn /scratchbox/tools/bin/icecc++ /host_usr/bin/g++
&lt;/pre&gt;

&lt;li&gt;Disable Scratchbox redirection for the gcc and g++ binaries:&lt;/li&gt;

&lt;pre&gt;
sbox &gt; export SBOX_REDIRECT_IGNORE=/usr/bin/gcc,/usr/bin/g++
&lt;/pre&gt;
&lt;/ol&gt;

The snippet above can be placed in .bashrc as well.

You can now build applications normally and they will automatically use icecc when calling gcc or g++.

== References ==

&lt;references/&gt;


[[Category:Development]]
[[Category:Scratchbox]]</text>
    </revision>
  </page>
  <page>
    <title>File:HOME 03 MOD.png</title>
    <id>1301</id>
    <revision>
      <id>8090</id>
      <timestamp>2008-10-29T01:11:14Z</timestamp>
      <contributor>
        <username>glaoliver</username>
        <id>189</id>
      </contributor>
      <comment>This is the modified home page submited by Andre with the modifications asked on maemo-community list and based on original TIm's proposal.</comment>
      <text xml:space="preserve">This is the modified home page submited by Andre with the modifications asked on maemo-community list and based on original TIm's proposal.</text>
    </revision>
  </page>
  <page>
    <title>File:Maemo.org logo contest timsamoff 0005.png</title>
    <id>519</id>
    <revision>
      <id>2651</id>
      <timestamp>2008-06-24T16:30:45Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Tim Samoff: Submission #5 (main)</comment>
      <text xml:space="preserve">Tim Samoff: Submission #5 (main)</text>
    </revision>
  </page>
  <page>
    <title>Importing Windows Mobile contacts</title>
    <id>3179</id>
    <revision>
      <id>40600</id>
      <timestamp>2010-12-07T10:11:47Z</timestamp>
      <contributor>
        <ip>114.79.55.81</ip>
      </contributor>
      <comment>/* Updated script with more fields */</comment>
      <text xml:space="preserve">== Import how to ==

To import data, we need a backup file created by the approach mentioned in [[Importing data]], the script mentioned in the end of this page and a [[Nokia N900|N900]] (or another Maemo5 device). Power users don't need to follow this precisely, others do:

# connect N900 to PC using mass storage mode; from PC, create a directory &quot;datatransfer&quot; on the &quot;flash disk device&quot; - and copy the script (&lt;code&gt;pimbackup2vcf.py&lt;/code&gt;) and backup file (e.g. PIMBackup_20091220.pib) to the directory. Unmount and disconnect.
# on N900, run xterm
# &lt;pre&gt;cd /home/user/MyDocs/datatransfer; python pimbackup2vcf.py PIMBackup_20091220.pib contacts.vcf&lt;/pre&gt;
# start addressbook app, from the menu choose ''Get contacts'' and ''Import contacts file'' in the following popup. Choose the contacts.vcf file in datatransfer directory.
# You should have the contacts imported. :)

== pimbackup2vcf.py ==

&lt;source lang=&quot;python&quot;&gt;
#!/usr/bin/python2.5
# -*- coding: utf-8 -*-

import zipfile
import csv
import sys,os
import codecs


def unicode_csv_reader(unicode_csv_data, dialect=csv.excel, **kwargs):
	# csv.py doesn't do Unicode; encode temporarily as UTF-8:
	csv_reader = csv.reader(utf_8_encoder(unicode_csv_data), dialect=dialect, **kwargs)
	for row in csv_reader:
		# decode UTF-8 back to Unicode, cell by cell:
		yield [unicode(cell, 'utf-8') for cell in row]

def utf_8_encoder(unicode_csv_data):
	for line in unicode_csv_data:
		yield line.encode('utf-8')
	unicode_csv_data.close()

def csvf(row, f):
	try:
		i=csv_fields.index(f)
	except:
		return ''
	
	return row[i]

def convdate(d):
	if len(d)&lt;8:
		return ''
	return d[0]+d[1]+d[2]+d[3]+'-'+d[4]+d[5]+'-'+d[6]+d[7]

def addne(s, pre, post):
	if post==&quot;&quot;:
		return s;
	else:
		return s+pre+post+'\n';

def csvline2vcf(row):
	rv=&quot;&quot;
	rv+=&quot;BEGIN:VCARD&quot;+'\n'
	rv+=&quot;VERSION:3.0&quot;+'\n'
	rv=addne(rv, &quot;N:&quot;, csvf(row, &quot;Name&quot;))
	rv=addne(rv, &quot;FN:&quot;, csvf(row, &quot;First Name&quot;)+&quot; &quot;+csvf(row, &quot;Last Name&quot;))
	rv=addne(rv, &quot;NICKNAME:&quot;, csvf(row, &quot;NickName&quot;))
	rv=addne(rv, &quot;TEL;TYPE=CELL,VOICE:&quot;, csvf(row, &quot;Mobile Phone&quot;))
	rv=addne(rv, &quot;TEL;TYPE=WORK,VOICE:&quot;, csvf(row, &quot;Business Phone&quot;))
	rv=addne(rv, &quot;TEL;TYPE=WORK,VOICE:&quot;, csvf(row, &quot;Business Phone 2&quot;))
	rv=addne(rv, &quot;TEL;TYPE=HOME,VOICE:&quot;, csvf(row, &quot;Home Phone&quot;))
	rv=addne(rv, &quot;TEL;TYPE=HOME,VOICE:&quot;, csvf(row, &quot;Home Phone 2&quot;))
	rv=addne(rv, &quot;EMAIL;TYPE=PREF,INTERNET:&quot;, csvf(row, &quot;E-mail Address&quot;))
	rv=addne(rv, &quot;TEL;TYPE=WORK,VOICE:&quot;, csvf(row, &quot;Work Phone&quot;))
	rv=addne(rv, &quot;URL:&quot;, csvf(row, &quot;Web Page&quot;))
	if csvf(row, &quot;Home City&quot;)!=&quot;&quot;:
		rv=addne(rv, &quot;ADR:;;&quot;, csvf(row, &quot;Home Street&quot;)+';'+csvf(row, &quot;Home City&quot;)+';'+csvf(row, &quot;Home State&quot;)+';'+csvf(row, &quot;Home Postal Code&quot;)+';'+csvf(row, &quot;Home Country&quot;))
	
	rv=addne(rv, &quot;BDAY:&quot;, convdate(csvf(row, &quot;Birthday&quot;)))
	rv=addne(rv, &quot;X-ANNIVERSARY:&quot;, convdate(csvf(row, &quot;Anniversary&quot;)))
	rv+=&quot;END:VCARD&quot;+'\n'+'\n'
	
	return rv


TMPFILENAME=&quot;/tmp/contacts.csc&quot;

if len(sys.argv)&lt;3:
	print sys.argv[0], &quot; PIMbackupfile.pib output.vcf&quot;
	sys.exit()

print &quot;Processing&quot;, sys.argv[1]

zf=zipfile.ZipFile(sys.argv[1])

contactsFN=[fn for fn in zf.namelist() if 'contacts' in fn][0]


tmpfile=open(TMPFILENAME, 'w')

tmpfile.write(zf.read(contactsFN))

tmpfile.close()

cf=unicode_csv_reader(codecs.open(TMPFILENAME, 'r', &quot;utf-16&quot;), delimiter=';', quotechar='&quot;')

vcf=codecs.open(sys.argv[2], 'w', &quot;utf-8&quot;)

lineNo=0

for row in cf:
	if lineNo==0:
		csv_fields=row
		lineNo+=1
	else:
		vcf.write(csvline2vcf(row))

vcf.close()

os.remove(TMPFILENAME)
&lt;/source&gt;

== Extending the script ==

The script would, with little modifications, import contacts data from generally any csv file. The csv file has to contain initial line with columns' titles. Data contained in the output VCF file is defined in the '''csvline2vcf(row)''' function - which converts a csv line to a vcf record string.

== Updated script with more fields ==
Definition fields are extended, and include both Home and Work address.
More Cell Phone numbers created based on limitation of Windows Mobile that has only one Mobile Number field, but some people has more than one Cellphone number, so user usually utilize Radio, Pager, Car Phone as the subsequent mobile numbers.

The mapping is arbitrary, adjust to each need/usage.

Replace (pay attention to the start and end of the row) above with this code below.

&lt;source lang=&quot;python&quot;&gt;
def csvline2vcf(row):
    rv=&quot;&quot;
    rv+=&quot;BEGIN:VCARD&quot;+'\n'
    rv+=&quot;VERSION:3.0&quot;+'\n'
    rv=addne(rv, &quot;N:&quot;, csvf(row, &quot;Last Name&quot;)+&quot;;&quot;+csvf(row, &quot;First Name&quot;)+&quot; &quot;+csvf(row, &quot;Middle Name&quot;))
    rv=addne(rv, &quot;FN:&quot;, csvf(row, &quot;Display Name&quot;))
    rv=addne(rv, &quot;NICKNAME:&quot;, csvf(row, &quot;NickName&quot;))
    rv=addne(rv, &quot;TEL;TYPE=CELL,VOICE:&quot;, csvf(row, &quot;Mobile Phone&quot;))
    rv=addne(rv, &quot;TEL;TYPE=WORK,VOICE:&quot;, csvf(row, &quot;Business Phone&quot;))
    rv=addne(rv, &quot;TEL;TYPE=WORK,VOICE:&quot;, csvf(row, &quot;Business Phone 2&quot;))
    rv=addne(rv, &quot;TEL;TYPE=HOME,VOICE:&quot;, csvf(row, &quot;Home Phone&quot;))
    rv=addne(rv, &quot;TEL;TYPE=HOME,VOICE:&quot;, csvf(row, &quot;Home Phone 2&quot;))
    rv=addne(rv, &quot;TEL;TYPE=WORK,VOICE:&quot;, csvf(row, &quot;Work Phone&quot;))
    rv=addne(rv, &quot;TEL;TYPE=CELL,VOICE:&quot;, csvf(row, &quot;Car Phone&quot;))
    rv=addne(rv, &quot;TEL;TYPE=CELL,VOICE:&quot;, csvf(row, &quot;Pager&quot;))
    rv=addne(rv, &quot;TEL;TYPE=CELL,VOICE:&quot;, csvf(row, &quot;Radio Phone&quot;))
    rv=addne(rv, &quot;TEL;TYPE=CELL,VOICE:&quot;, csvf(row, &quot;Assistant's Phone&quot;))
    rv=addne(rv, &quot;TEL;TYPE=WORK,FAX:&quot;, csvf(row, &quot;Business Fax&quot;))
    rv=addne(rv, &quot;URL:&quot;, csvf(row, &quot;Web Page&quot;))
    rv=addne(rv, &quot;EMAIL;TYPE=PREF,INTERNET:&quot;, csvf(row, &quot;E-mail Address&quot;))
    rv=addne(rv, &quot;EMAIL;TYPE=HOME,INTERNET:&quot;, csvf(row, &quot;E-mail 2 Address&quot;))
    rv=addne(rv, &quot;EMAIL;TYPE=WORK,INTERNET:&quot;, csvf(row, &quot;E-mail 3 Address&quot;))
    rv=addne(rv, &quot;TITLE:&quot;, csvf(row, &quot;Job Title&quot;))
    rv=addne(rv, &quot;ROLE:&quot;, csvf(row, &quot;Department&quot;))
    rv=addne(rv, &quot;ORG:&quot;, csvf(row, &quot;Company&quot;))
    rv=addne(rv, &quot;ADR;TYPE=HOME:&quot;, &quot;;&quot;+&quot;;&quot;+csvf(row, &quot;Home Street&quot;)+';'+csvf(row, &quot;Home City&quot;)+';'+csvf(row, &quot;Home State&quot;)+';'+csvf(row, &quot;Home Postal Code&quot;)+';'+csvf(row, &quot;Home Country&quot;))
    rv=addne(rv, &quot;ADR;TYPE=WORK:&quot;, &quot;;&quot;+&quot;;&quot;+csvf(row, &quot;Business Street&quot;)+';'+csvf(row, &quot;Business City&quot;)+';'+csvf(row, &quot;Business State&quot;)+';'+csvf(row, &quot;Business Postal Code&quot;)+';'+csvf(row, &quot;Business Country&quot;))
    rv=addne(rv, &quot;ADR;TYPE=HOME:&quot;, &quot;;&quot;+&quot;;&quot;+csvf(row, &quot;Other Street&quot;)+';'+csvf(row, &quot;Other City&quot;)+';'+csvf(row, &quot;Other State&quot;)+';'+csvf(row, &quot;Other Postal Code&quot;)+';'+csvf(row, &quot;Other Country&quot;))
    rv=addne(rv, &quot;BDAY:&quot;, convdate(csvf(row, &quot;Birthday&quot;)))
    rv=addne(rv, &quot;X-ANNIVERSARY:&quot;, convdate(csvf(row, &quot;Anniversary&quot;)))
    rv+=&quot;END:VCARD&quot;+'\n'+'\n'

    return rv
&lt;/source&gt;

== Note ==
If on the Windows Mobile (WM 6.5.3) the address has a hard return character, the resulting vcf will have broken address field (hard return instead of one row). User might want to review this using text editor first prior to importing.
   
[[Category:Power users]]
[[Category:HowTo]]</text>
    </revision>
  </page>
  <page>
    <title>Importing data</title>
    <id>3178</id>
    <revision>
      <id>40550</id>
      <timestamp>2010-12-06T10:38:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">New users of Maemo operating system may run into trouble when trying to move their data (contacts, sms, calendar) from different platforms... This page contains informations on how to circumvent limitations of currently implemented Maemo's import functionality...

== Importing from Windows Mobile ==

{{main|Importing Windows Mobile contacts}}

For this to be done, it's probably the best to use the freeware app http://freewareppc.com/database/pimbackup.shtml on the WinMobile device and backup all the data to a single file (with binary storage turned off) - the following subsections contain simple scripts on how to import data from the backup file to a Maemo (N900) device...

Update Dec 6, 2010 - Use latest PPCPimBackup 2.8.0.0 and the following setting:
- Select contacts only - press / hit Next
- Select Compress Backup
- Do not select Binary backup
- Other settings are ok, for your own use (keep settings, etc.)

== Importing from Symbian ==

{{wikify|1=http://talk.maemo.org/showthread.php?t=37354 Importing Symbian SMS}}

== Importing from iPhone ==

{{main|Importing iPhone Contacts}}

[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Importing iPhone Contacts</title>
    <id>4198</id>
    <revision>
      <id>41570</id>
      <timestamp>2011-02-02T02:26:02Z</timestamp>
      <contributor>
        <ip>208.80.119.67</ip>
      </contributor>
      <comment>/* contact.py */</comment>
      <text xml:space="preserve">== Import how to ==

To import data, we first need to jailbreak the iPhone.  There are many tutorials for this on the net. After jailbreaking, ensure that you have the package &quot;Cydia&quot; installed (usually included by default).

# From Cydia, install securedContacts (from the BigBoss repository)
# Run securedContacts, and download the resulting csv file on your PC.

== contact.py ==

The following code will take the output csv file and transfer it into one large vcf file which you can import using the Contacts application on your [[Nokia N900|N900]]. One drawback to using the securedContacts seems to be that any location information is lost, but I found this import a million times better than doing it by hand. Just copy the code into a new file &quot;contact.py&quot; and then rename your csv along side it as &quot;contacts.csv&quot;.

You can run the code with:
 python contact.py &gt; contacts.vcf

&lt;source lang=&quot;python&quot;&gt;
#!/usr/bin/env python
import re
import datetime, time
fh = open('contacts.csv','r')
objectlist = []
class contact:
	def __init__(self,first,last):
		self.last = last
		self.first = first
		self.details={}
		
	def update(self,detail):
		value = detail.replace(&quot; &quot;,&quot;&quot;)
		value = value.strip('\n')
		homenum = re.compile(&quot;^[0-9]{8}$&quot;)
		mobnum = re.compile(&quot;^[0-9]{10}$&quot;)
		mobnum2 = re.compile(&quot;^\+[0-9]{11}$&quot;)
		email = re.compile(&quot;^.*@.*$&quot;)
	
		if homenum.search(value):
			self.details['TEL;TYPE=HOME,VOICE:']=value
		elif mobnum.search(value):
			self.details['TEL;TYPE=MOBILE,VOICE:']=value
		elif mobnum2.search(value):
			self.details['TEL;TYPE=MOBILE,VOICE:']=value
		elif email.search(value):
			self.details['EMAIL;TYPE=PREF,INTERNET:']=value
	def check(self,first,last):
		return first == self.first and last == self.last


for i in fh:
	line = i.replace(&quot;\n&quot;,&quot;&quot;)
	last,first,detail = i.split(';')
	
	for i in objectlist:
		if i.check(first,last):
			i.update(detail)
			break
	else:
		obj = contact(first,last)
		obj.update(detail)
		objectlist.append(obj)

for i in objectlist:
	print &quot;BEGIN:VCARD&quot;
	print &quot;VERSION:3.0&quot;
	print &quot;N:&quot;+i.last+&quot;;&quot;+i.first
	print &quot;FN:&quot;+i.first+&quot; &quot;+i.last
	for j, v in i.details.items():
		print j+v
	now = datetime.datetime
	n = now.now()
	print &quot;REV:&quot;+str(n.year)+str(n.month).zfill(2)+str(n.day).zfill(2)+&quot;T&quot;+str(n.hour).zfill(2)+str(n.minute).zfill(2)+str(n.second).zfill(2)+&quot;Z&quot;
	print &quot;END:VCARD&quot;
&lt;/source&gt;

After your vcf file is generated, you can place it onto your n900, then in the Contacts application, click the title bar &gt;&gt;&gt; &quot;Get contacts&quot; &gt;&gt;&gt; Import Contacts&quot;. Browse to your contacts.vcf file and click import!

Hope this helps someone, this code was pretty rushed and got the job done for me. Phone number regexps worked for my Australian phone numbers, you may have to make changes for overseas numbers.

[[Category:HowTo]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Improving Modest email sync reliability</title>
    <id>4240</id>
    <revision>
      <id>39664</id>
      <timestamp>2010-10-24T14:19:41Z</timestamp>
      <contributor>
        <ip>71.178.176.138</ip>
      </contributor>
      <comment>is to being =&gt; is being</comment>
      <text xml:space="preserve">Lots of complains have been reported regarding Modest [[Nokia N900|N900]] email client. Particularly when it comes to sync emails. Quoting [http://talk.maemo.org/showthread.php?t=37225 DaveQB]:

# It takes about 20mins to check my email.
# It uses 100% cpu for the entire time it is checking.
# Email that is read, deleted etc are not updated on the server-side, so when I check on a different client later, nothing I did on the N900 is reflected. 
# You can't do any searching.
# It doesn't respect subscribed folder settings on the server


I basically faced all these problems, but synchronization is the top most important one for me. This page is about trying to improve Modest email sync reliability and exploring other ways to read/write emails on N900. It mainly focuses on dealing with IMAP from a GMail account, but may be extended to other IMAP, and even other protocols such as POP.

== Disclaimer ==

Following instructions are provided as-is. Use them as you like and at your own risk. I'm not responsible of any emails losses or anything like that. You've been warned.

== Prerequisites ==

Before diving into details, you should be comfortable writing commands on terminal, editing files, etc... some basic Linux usage is required.

Because we'll write a lot, you may want to access your N900 through [[SSH]]. In order to do this, you'll need to deal with [[USB_networking]] between your PC and your phone.

Finally, you should know how to access your IMAP account, that is, all parameters should been known to work to avoid any doubts when testing your connection.

== Accessing a IMAP GMail account using mutt ==

So my first try was accessing my GMail account using mutt. There have been discussions about this here, though I couldn't find a deb package file for mutt in different repository. I had to create a new one, including some needed compilation option:

* slang: allowing 256 terminal colors, reported to work better than curses
* hcache: header caching enable, preventing always accessing remote IMAP account to list emails
* imap: because we want to access an IMAP account...
* ssl: because this IMAP account is an IMAPS account (using SSL encryption)

This deb file can be found, see links section at the end of this page.

First, copy mutt deb file to your N900 (scp, mail, etc...) and install it [[root access|as root]]:

 sudo gainroot
 dpkg -i mutt_1.5.20-2_armel.deb

You then need to write your .muttrc file to setup your IMAP account connection. Here's my basic muttrc file I used to access my Gmail account:
&lt;pre&gt;
# General
set move=no
set quit=ask-yes
set timeout=15
auto_view text/html
set realname=&quot;Sebastien Lelong&quot;

# IMAP
set imap_authenticators=&quot;login&quot;
set imap_passive=&quot;no&quot;
set imap_user = 'username'
set imap_pass = 'password'
set spoolfile = imaps://imap.gmail.com:993/INBOX
set folder = imaps://imap.gmail.com:993
set record=&quot;imaps://imap.gmail.com/[Gmail]/Sent Mail&quot;
set maildir_trash = yes
set postponed=&quot;imaps://imap.gmail.com/[Gmail]/Drafts&quot;
set header_cache = yes
set smtp_url = smtp://username@gmail.com@smtp.gmail.com:587/
set smtp_pass = &quot;password&quot;
&lt;/pre&gt;
Replace username and password as needed. Launch mutt:

 mutt

you'll be asked to confirm something about a certificate, then mutt will access your IMAP account and retrieve headers for all your emails. Yes, all headers (but not emails content...) ! There may be an option to only retrieve last email headers (only emails X days old), but I just don't know it. This can take quite a lot of time and kills your dataplan... Luckily this occurs only once: mutt is creating its header cache. When running again, mutt will just re-analyze its cache, locally. This can take quite some time anyway, when you have a large mailbox.

Using mutt like this is unfortunately not that nice:
* your network connection must be fast, because browsing emails will constantly make network connection to the remote IMAP account
* worst case, when you don't have network connection, you just can't read your emails, even old ones...

== offlineimap to read emails when no network connection is available == 

While one major advantage to IMAP protocol is being able to directly and remotely access emails on an account, when you don't have any network connection, you just can't access them... A workaround is to use a tool like [http://wiki.github.com/jgoerzen/offlineimap/ OfflineIMAP], which can synchronize an IMAP account with a local maildir.

This sync occurs both ways: changes on IMAP account will propagate to maildir, changes on maildir will propagate to IMAP account. This ensure what you'll locally read will also be marked as read on the IMAP server.

In order to use offlineimap, I had to get last sources including patches to select only emails not olders than X days. This will prevent getting *all* emails from the server (headers and bodies)... offlineimap package is available from extra-devel repository (optified to save some rootfs space). Install it as root:

 sudo gainroot
 apt-get install offlineimap
 exit

Once installed, you'll need to create &lt;code&gt;~/.offlineimaprc&lt;/code&gt; in order to define remote IMAP and local maildir accounts. Here's mine, again minimalist. See offlineimap.conf on OfflineIMAP website to figure out possible options.
&lt;pre&gt;
[general]
accounts = GMail
ui = Noninteractive.Basic 
socktimeout = 300

[Account GMail]
localrepository = Local
remoterepository = Remote
maxage = 5
 
[Repository Local]
type = Maildir
localfolders = ~/Mail/GMail 
sep = /
 
[Repository Remote]
type = Gmail
remoteuser = username
remotepass = password
realdelete = no
trashfolder = [Gmail].Trash
folderfilter = lambda foldername: foldername in ['INBOX', '[Gmail]/Brouillons','[Gmail]/Suivis']
nametrans = lambda foldername: foldername.replace(&quot;[Gmail]/&quot;,&quot;&quot;)
&lt;/pre&gt;
We are basically telling offlineimap to sync a GMail IMAP account on a local maildir located in &lt;code&gt;~/Mail/GMail&lt;/code&gt;. Only emails younger than 5 days will be considered. Only directories listed folderfilter will be synced. This is useful when you lots of GMail labels but don't want to sync every of them (this can take quite some time and bandwidth, depending your dataplan). Also, instead of having &quot;[Gmail]/Suivis&quot; directories, I prefer (and Modest too, see later) only having a &quot;Suivis&quot; directory. nametrans is used to translate local dirs, here we're telling it to remove the &quot;[Gmail]/&quot; part.

Also create maildir location:

 mkdir ~/Mail/GMail

Finally, because my deb packaging isn't that good, let's create a wrapper bash script to run offlineimap:
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/bash
offlineimap 2&gt;&amp;1 | tee /tmp/offlineimap.log
echo Last run: `/bin/date`
&lt;/source&gt;
Save this script in &lt;code&gt;~/bin&lt;/code&gt; (for instance) as &quot;syncemail.sh&quot;, and make executable:

 chmod +x syncemail.sh

Each time it's launched, you can check what it does looking as &lt;code&gt;/tmp/offlineimap.log&lt;/code&gt;.

Time to test. Run it !

 ./bin/syncemail.sh

Once it's done, you can run mutt to check what it retrieved, telling to access a maildir:

 mutt -f ~/Mail/GMail/INBOX

If it sounds good to you, you can program a task, for instance using Alarmed, and configure it to run this script every X minutes. If you don't plan or don't care having a GUI to setup this interval, you can also let offlineimap regularly check emails. In the account section, you can add something like:

 [account GMail]
 ...
 autorefresh = 15

this will tell offlineimap to sync every 15 minutes. Since it'll always run, you need to &quot;daemonize&quot; it when starting it. This upstart script can be saved as &lt;code&gt;/etc/event.d/offlineimap&lt;/code&gt; to start it at boot time:

 start on started hildon-desktop
 stop on starting shutdown
 service
 console none
 exec su user -c /home/user/bin/syncemail.sh
 post-stop script
     kill `cat /home/user/.offlineimap/pid`
 end script

CAREFUL: in &lt;code&gt;syncemail.sh&lt;/code&gt; script, offlinemap will log into &lt;code&gt;/tmp/offlineimap.log&lt;/code&gt;. Since we're daemonizing it, it'll run indefinitely. This log file may become huge. When fully tested, you should remove &quot;2&gt;&amp;1 | tee /tmp/offlineimap.log&quot; from syncemail.sh script. Also, post-stop step is here to actually kill the offlineimap python script, else only the bash launcher, syncemail.sh, will be killed, not the python process it runs.

So far so good, we have our emails synced. We can read them using mutt. Still, we may like to use a graphical front-end, fully integrated to N900 system (applet, widgets, contacts, etc...).

== Adding dovecot IMAP server to let Modest accessing emails locally ==

If only Modest could directly access our local maildir... Since it only support POP and IMAP account, we could install a local IMAP server, serving our maildir. Modest would then access this local IMAP server. This way, the remote sync part is delegated to offlineimap, while we can still use GUI front-ends. You'll still need to tell Modest to sync to the local maildir to check new emails. A short interval, 5 min, will ensure it'll be able to sync (since it's local, there's no network related issue anymore).

So, there are many IMAP server out there, I found dovecot to be easy to package and use. dovecot can be found in extra-devel (also optified to save rootfs space). Install it as root

 sudo gainroot
 apt-get install dovecot
 exit

Copy example configuration:

 sudo gainroot
 cp /usr/local/etc/dovecot-example.conf /usr/local/etc/dovecot.conf

Dovecot is very powerful, you can set a lot of parameters. I tried to keep it as simple as possible. Dovecot will &lt;code&gt;/etc/passwd&lt;/code&gt; as it's user/password database. Here's my &lt;code&gt;dovecot.conf&lt;/code&gt; file:
&lt;pre&gt;
base_dir = /var/run/dovecot/
protocols = imap
listen = 127.0.0.1
disable_plaintext_auth = no
ssl = no
login_user = dovecot
mail_location = maildir:~/Mail/GMail/INBOX

protocol imap {
}

auth default {
 
   mechanisms = plain
 
   passdb passwd {
   }
 
   userdb passwd {
   }

   user = root
}
&lt;/pre&gt;
Note dovecot will serve INBOX only (more work/search to be done in order to serve multiple maildirs...). Since we'll use it locally, we can specify an IP address to listen. Else you (or someone else) could access your IMAP account using Wifi for instance.

You can check configuration file syntax by running:

 dovecot -n

Dovecot auth will be done under user &quot;dovecot&quot;. We need to create it:

 sudo gainroot
 useradd -g mail dovecot

Also, we will access maildir from Modest email client. This maildir is owned by user &quot;user&quot;. This user doesn't have any password, but Modest won't allow you not specifying one. We thus need to set it (I'm not sure about potential side effects of setting a password for this default user. So far I haven't had any problems, but...):

 sudo gainroot
 passwd user

Launch dovecot, as root

 sudo gainroot
 /usr/local/sbin/dovecot

Test it's running with telnet:

 telnet 127.0.0.1 143

should give something like:

 * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE AUTH=PLAIN] Dovecot ready.

In order dovecot to be started at boot time, you can create this upstart script as /etc/event.d/dovecot

 start on started hildon-desktop
 stop on starting shutdown
 service
 console none
 exec dovecot -F

Now open Modest, and add a new account:

 Account name and name: whatever
 username: user
 password: yourpass
 IMAP server: 127.0.0.1 # &quot;localhost&quot; won't be recognized as legal hostname...
 IMAP: 143
 No secure connection

About SMTP, you can use the one you're used to use. Another improvement would be to install a small local SMTP server, and let it send its emails when it can. So far SMTP sending works with Modest, so I didn't dig further.

== Extra: defining subcriptions for Modest ==

When running, dovecot will create a &quot;subscriptions&quot; file into the maildir (I think it's dovecot). You can edit this file to add more directories to display within Modest GUI. For instance, my &lt;code&gt;/home/user/Mail/GMail/subscriptions&lt;/code&gt; is:

 INBOX
 Brouillons
 Suivis

Note: if you don't translate GMail folder, that is, if you keep &quot;[Gmail].Suivis&quot; for instance, Modest won't display directory correctly and split it as &quot;[Gmail]&quot; and &quot;.Suivis&quot;. That's why I added a nametrans paramater on my offlineimaprc configuration file.


== Conclusions ==

Using offlineimap and Dovecot, the synchronization process is removed from Modest email client. I'm still testing this configuration, it seems to work flawlessly. There are still issues and limitations:

* you can tell offlineimap to partially download emails, but you can't order it to fully download one specific emails (like on iPhone for instance). Attachments are also downloaded.
* some deb packaging would need to be improved. I did this quick &amp; dirty
* you can't access different IMAP folders and different accounts. This would need to be improved, probably on dovecot side.
* &quot;user&quot; needs to have a password set. There can be unknown side effects. This could be avoid by setting a PAM authentication in dovecot (doesn't use /etc/passwd, no need to have a system user).
* it only deals with IMAP. Accessing POP account could be done the same way: instead of offlineimap, you could setup fetchmail or getmail and put retrieved emails in maildirs, just like here.
* ...

== Where to find packages ? ==

dovecot, muut, msmtp and offlineimap used to be available from the following links:

* [http://dl.dropbox.com/u/7090003/dovecot_1.2.11-1_armel.deb dovecot_1.2.11-1_armel.deb]
* [http://dl.dropbox.com/u/7090003/msmtp_1.4.20-1_armel.deb msmtp_1.4.20-1_armel.deb]
* [http://dl.dropbox.com/u/7090003/mutt_1.5.20-2_armel.deb mutt_1.5.20-2_armel.deb]
* [http://dl.dropbox.com/u/7090003/offlineimap_6.2.1_all.deb offlineimap_6.2.1_all.deb]

I've also created and uploaded deb packages for dovecot and offlineimap to extra-devel repository for convenience. You should prefer install them from extra-devel, as these packages are cleaner and optified (they install in /opt, not in / rootfs).


Hope it helps.

Cheers,

Seb

== modest &amp; offlineimap &quot;shortcut&quot; ==

I am currently experimenting with this setup:

* offlineimap synchronizes normally (as above)
* the local repository looks like this

 type = Maildir
 localfolders = ~/.modest/local_folders/

* just to be safe, the remote repository does a nametrans: 'x' + foldername
* the end result is, that I can see synchronized folders in modest

Does anybody see a problem with this? It seems to work as it should.

* it seems that modest sees new mails as new only when you enter the folder, not in the folder overview (which would mean that in the long run, having built-in offline storage is better)

Gruss,
Christian


I don't know if it's the best place to comment but I tried to symlink ~/Mail/... with ~/.modest/local_folders/ and there were troubles (modest trying to create directory again ? I can't remember for sure). But this is interesting and could remove unnecessary complexity with dovecot. I'll try this setup !

Thanks &amp; Cheers
Seb

[[Category:HowTo]]</text>
    </revision>
  </page>
  <page>
    <title>Improving maemo.org</title>
    <id>662</id>
    <revision>
      <id>3698</id>
      <timestamp>2008-07-01T12:43:07Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Improving maemo.org]] moved to [[Task:Improving maemo.org]]: It's a task</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Improving maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Increasing transparency</title>
    <id>597</id>
    <revision>
      <id>21034</id>
      <timestamp>2009-10-26T09:25:35Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <comment>Redirecting to [[Task:Mapping openness]]</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Mapping openness]]</text>
    </revision>
  </page>
  <page>
    <title>Install PC Connectivity on a 64 bit host</title>
    <id>2384</id>
    <revision>
      <id>31135</id>
      <timestamp>2010-03-15T11:55:31Z</timestamp>
      <contributor>
        <ip>78.111.169.35</ip>
      </contributor>
      <comment>/* Step 4: You're on your own */ yes you need lib32 for running 32-bit apps in a 64-bit environment, they can't use 64-bit libs</comment>
      <text xml:space="preserve">Here is how to install PC Connectivity (the &quot;Host part&quot;) on a 64bit Linux Box.

== Precondition ==
* A Linux Box with Debian/Ubuntu at 64bit.
* You need to be a bit more than a newbie: I'm not going to describe you what to do command by command.

== Step 1: The easy part ==

Follow the instructions on [http://pc-connectivity.garage.maemo.org/2nd_edition/installation.html the PC connectivity install page] to install the &quot;Tablet part&quot;


== Step 2: The not so easy part ==

If you try to add the repository for the &quot;Host part&quot; to your &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; and run &lt;code&gt;$ sudo apt-get update&lt;/code&gt;, you will see the problem. Your Linux box is naturally looking for the 64bit packages, which are not available.

But your machine can actually run 32bit code: you just need some more &quot;hand work&quot;.

== Step 3: Looks like I'm helping you ==

# Install &lt;code&gt;filezilla&lt;/code&gt;, &lt;code&gt;ssh&lt;/code&gt;, &lt;code&gt;ia32-libs&lt;/code&gt;, &lt;code&gt;sbrsh&lt;/code&gt;, and &lt;code&gt;sbrshd&lt;/code&gt;
# Download from [http://pc-connectivity.garage.maemo.org/repository/pool/intrepid/main/ the PC connectivity repository]: &lt;code&gt;host-pc-connectivity_0.6_all.deb ssh-key-exchange_0.1_all.deb&lt;/code&gt;
# Install one by one the files you just downloaded with &lt;code&gt;dpkg -i --force-architecture PACKAGE_FILENAME&lt;/code&gt;

=== Step 4: You're on your own ===

100% of the time what will happen is that you are going to receive messages about unfulfilled dependencies. '''DON'T PANIC''': install what you are asked and install the package again. If you're experiencing issues, you may want to install the 32-bit library counterparts of the original dependencies.

Do this &quot;try and catch&quot; process, until you don't have any other error and everything installs fine.

Since &quot;''dependencies resolution''&quot; depends on what you already have installed on your machine, following the dependency chain is something you'll need to do for yourself.

Enjoy! ;-)

[[Category:Power users]]
[[Category:HowTo]]</text>
    </revision>
  </page>
  <page>
    <title>Install instructions</title>
    <id>3084</id>
    <revision>
      <id>23415</id>
      <timestamp>2009-11-26T17:26:58Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Install instructions]] moved to [[Unusual install instructions]]</comment>
      <text xml:space="preserve">#REDIRECT [[Unusual install instructions]]</text>
    </revision>
  </page>
  <page>
    <title>Install openssh on the N810</title>
    <id>3240</id>
    <revision>
      <id>38515</id>
      <timestamp>2010-09-13T10:47:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[SSH#Flavours to install on your device]]</comment>
      <text xml:space="preserve">#REDIRECT [[SSH#Flavours to install on your device]]</text>
    </revision>
  </page>
  <page>
    <title>Install openssh on the Nokia N810</title>
    <id>3264</id>
    <revision>
      <id>38809</id>
      <timestamp>2010-09-20T14:52:05Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[SSH#OpenSSH]]</text>
    </revision>
  </page>
  <page>
    <title>Install openssh on the Nokia N900</title>
    <id>3720</id>
    <revision>
      <id>38516</id>
      <timestamp>2010-09-13T10:47:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[SSH#Flavours to install on your device]]</comment>
      <text xml:space="preserve">#REDIRECT [[SSH#Flavours to install on your device]]</text>
    </revision>
  </page>
  <page>
    <title>Installation</title>
    <id>5</id>
    <revision>
      <id>27653</id>
      <timestamp>2010-01-28T14:05:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Updating the firmware]]</text>
    </revision>
  </page>
  <page>
    <title>Installing Munin Node</title>
    <id>3444</id>
    <revision>
      <id>27550</id>
      <timestamp>2010-01-27T19:36:25Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Installing Munin Node]] moved to [[Munin]]: This is a page about Munin</comment>
      <text xml:space="preserve">#REDIRECT [[Munin]]</text>
    </revision>
  </page>
  <page>
    <title>Installing PyKaraoke</title>
    <id>1155</id>
    <revision>
      <id>32150</id>
      <timestamp>2010-04-08T12:15:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add links, tidy</comment>
      <text xml:space="preserve">[http://www.kibosh.org/pykaraoke/ Pykaraoke] is a Python application to play karaoke files (.kar) which encompass midi background music,
lyrics and the actual lyrics progress while the song is playing on the screen.

I have tested it personally on the [[Nokia N810|N810]] though I assume it would run just as well on the [[Nokia 770|770]]/[[Nokia N800|N800]], please update this article if you have verified it works with either/both of them, thanks in advance.

== Dependencies ==

* python2.5 python2.5-pygame
* timidity
* freepats
* pykaraoke (obviously)

== Installation ==

=== Python ===

Either from the GUI's Application Manager or from a root shell you should install the two packages:
python2.5 and python2.5-pygame (from the root shell: apt-get install python2.5 python2.5-pygame)

=== Timidity ===

You should grab the &lt;code&gt;timidity&lt;/code&gt; and &lt;code&gt;timidity-data&lt;/code&gt; debs from the [https://garage.maemo.org/frs/?group_id=631&amp;release_id=1602 Garage page] and install them on your tablet.

=== Configuration ===

Create the directory /etc/timidity, create a new file called timidity.conf and add:
 source /etc/timidity/freepats.cfg

Create a new file called freepats.conf (also in /etc/timidity) and add:
&lt;code&gt;
 dir /usr/share/midi/freepats

 # Automatically generated on Sun Feb 19 19:22:39 EST 2006
 # by http://freepats.opensrc.org/mkcfg.sh.txt
 
 drumset 0

 25     Drum_000/025_Snare_Roll.pat
 26     Drum_000/026_Snap.pat
 27     Drum_000/027_High_Q.pat
 31     Drum_000/031_Sticks.pat
 32     Drum_000/032_Square_Click.pat
 33     Drum_000/033_Metronome_Click.pat
 34     Drum_000/034_Metronome_Bell.pat
 35     Drum_000/035_Kick_1.pat amp=100
 36     Drum_000/036_Kick_2.pat amp=100
 37     Drum_000/037_Stick_Rim.pat
 38     Drum_000/038_Snare_1.pat
 39     Drum_000/039_Clap_Hand.pat amp=100
 40     Drum_000/040_Snare_2.pat
 41     Drum_000/041_Tom_Low_2.pat amp=100
 42     Drum_000/042_Hi-Hat_Closed.pat
 43     Drum_000/043_Tom_Low_1.pat amp=100
 44     Drum_000/044_Hi-Hat_Pedal.pat
 45     Drum_000/045_Tom_Mid_2.pat amp=100
 46     Drum_000/046_Hi-Hat_Open.pat
 47     Drum_000/047_Tom_Mid_1.pat amp=100
 48     Drum_000/048_Tom_High_2.pat amp=100
 49     Drum_000/049_Cymbal_Crash_1.pat
 50     Drum_000/050_Tom_High_1.pat amp=100
 51     Drum_000/051_Cymbal_Ride_1.pat
 52     Drum_000/052_Cymbal_Chinese.pat
 53     Drum_000/053_Cymbal_Ride_Bell.pat amp=100
 54     Drum_000/054_Tombourine.pat
 55     Drum_000/055_Cymbal_Splash.pat
 56     Drum_000/056_Cow_Bell.pat
 57     Drum_000/057_Cymbal_Crash_2.pat
 58     Drum_000/058_Vibra-Slap.pat
 59     Drum_000/059_Cymbal_Ride_2.pat
 60     Drum_000/060_Bongo_High.pat
 61     Drum_000/061_Bongo_Low.pat
 62     Drum_000/062_Conga_High_1_Mute.pat
 63     Drum_000/063_Conga_High_2_Open.pat
 64     Drum_000/064_Conga_Low.pat
 65     Drum_000/065_Timbale_High.pat
 66     Drum_000/066_Timbale_Low.pat
 67     Drum_000/067_Agogo_High.pat
 68     Drum_000/068_Agogo_Low.pat
 69     Drum_000/069_Cabasa.pat amp=100
 70     Drum_000/070_Maracas.pat
 71     Drum_000/071_Whistle_1_High_Short.pat
 72     Drum_000/072_Whistle_2_Low_Long.pat

 73     Drum_000/073_Guiro_1_Short.pat
 74     Drum_000/074_Guiro_2_Long.pat
 75     Drum_000/075_Claves.pat amp=100
 76     Drum_000/076_Wood_Block_1_High.pat
 77     Drum_000/077_Wood_Block_2_Low.pat
 78     Drum_000/078_Cuica_1_Mute.pat amp=100
 79     Drum_000/079_Cuica_2_Open.pat amp=100
 80     Drum_000/080_Triangle_1_Mute.pat
 81     Drum_000/081_Triangle_2_Open.pat
 82     Drum_000/082_Shaker.pat
 84     Drum_000/084_Belltree.pat

 bank 0

 0      Tone_000/000_Acoustic_Grand_Piano.pat amp=120 pan=center
 1      Tone_000/001_Acoustic_Brite_Piano.pat
 2      Tone_000/002_Electric_Grand_Piano.pat
 4      Tone_000/004_Electric_Piano_1_Rhodes.pat
 5      Tone_000/005_Electric_Piano_2_Chorused_Yamaha_DX.pat
 6      Tone_000/006_Harpsichord.pat
 7      Tone_000/007_Clavinet.pat
 8      Tone_000/008_Celesta.pat
 9      Tone_000/009_Glockenspiel.pat
 13     Tone_000/013_Xylophone.pat
 14     Tone_000/014_Tubular_Bells.pat
 15     Tone_000/015_Dulcimer.pat
 16     Tone_000/016_Hammond_Organ.pat
 19     Tone_000/019_Church_Organ.pat
 21     Tone_000/021_Accordion.pat
 23     Tone_000/023_Tango_Accordion.pat
 24     Tone_000/024_Nylon_Guitar.pat
 25     Tone_000/025_Steel_Guitar.pat
 26     Tone_000/026_Jazz_Guitar.pat
 27     Tone_000/027_Clean_Electric_Guitar.pat
 28     Tone_000/028_Muted_Electric_Guitar.pat
 29     Tone_000/029_Overdriven_Guitar.pat
 30     Tone_000/030_Distortion_Guitar.pat
 32     Tone_000/032_Acoustic_Bass.pat
 33     Tone_000/033_Finger_Bass.pat
 34     Tone_000/034_Pick_Bass.pat
 35     Tone_000/035_Fretless_Bass.pat
 36     Tone_000/036_Slap_Bass_1.pat
 37     Tone_000/037_Slap_Bass_2.pat
 38     Tone_000/038_Synth_Bass_1.pat
 40     Tone_000/040_Violin.pat
 42     Tone_000/042_Cello.pat
 44     Tone_000/044_Tremolo_Strings.pat
 45     Tone_000/045_Pizzicato_Strings.pat
 46     Tone_000/046_Harp.pat
 47     Tone_000/047_Timpani.pat
 48     Tone_000/048_String_Ensemble_1_Marcato.pat
 53     Tone_000/053_Voice_Oohs.pat
 56     Tone_000/056_Trumpet.pat
 57     Tone_000/057_Trombone.pat
 58     Tone_000/058_Tuba.pat
 59     Tone_000/059_Muted_Trumpet.pat
 60     Tone_000/060_French_Horn.pat
 61     Tone_000/061_Brass_Section.pat
 64     Tone_000/064_Soprano_Sax.pat
 65     Tone_000/065_Alto_Sax.pat
 66     Tone_000/066_Tenor_Sax.pat
 67     Tone_000/067_Baritone_Sax.pat
 68     Tone_000/068_Oboe.pat
 69     Tone_000/069_English_Horn.pat
 70     Tone_000/070_Bassoon.pat
 71     Tone_000/071_Clarinet.pat
 72     Tone_000/072_Piccolo.pat
 73     Tone_000/073_Flute.pat
 74     Tone_000/074_Recorder.pat
 75     Tone_000/075_Pan_Flute.pat
 76     Tone_000/076_Bottle_Blow.pat
 79     Tone_000/079_Ocarina.pat
 80     Tone_000/080_Square_Wave.pat
 84     Tone_000/084_Charang.pat
 88     Tone_000/088_New_Age.pat
 94     Tone_000/094_Halo_Pad.pat
 95     Tone_000/095_Sweep_Pad.pat
 98     Tone_000/098_Crystal.pat
 101    Tone_000/101_Goblins--Unicorn.pat
 102    Tone_000/102_Echo_Voice.pat
 104    Tone_000/104_Sitar.pat
 114    Tone_000/114_Steel_Drums.pat
 115    Tone_000/115_Wood_Block.pat
 120    Tone_000/120_Guitar_Fret_Noise.pat
 122    Tone_000/122_Seashore.pat
 125    Tone_000/125_Helicopter.pat
&lt;/code&gt;

What's that freepats thing you ask? Well it's a bunch of MIDI patch sets. It is available as a debian package to get on an i386 under the name 'freepats' although it hasn't been packaged to the tablets so 2 things you can do (one or the other):
# Get the .pat files from the original website: http://freepats.opensrc.org/freepats/ if you do that, you need to create a directory called /usr/share/midi/freepats on the tablet and download from that website address the 2 directories Drum_000 and Tone_000 into /usr/share/midi
# Get the freepats debian package and unpack it to get the directories Drum_000 and Tone_000 and make sure both of them are in /usr/share/midi/freepats

=== PyKaraoke ===

Get the [http://www.kibosh.org/pykaraoke/downloads.php PyVaraoke zip archive] (current version is pykaraoke-0.6.zip) and unzip it to whatever directory you'd like in your tablet, then inside the pykaraoke directory create the link:

 ln -s /etc/timidity/timidity.cfg timidity.cfg

== Usage ==

We will be using the pykaraoke_mini.py program. It is a .kar player which stores your kar files entries in a database of it's own so the first
time we start it we need to tell it to scan the directory where you keep your .kar files so:

 ./pykaraoke_mini.py --scan --add-scan-dir=/whereever/you/keep/your/kar/files

It will then start and scan that directory for available .kar files and display them in a list. In the next time you can start the pykaraoke_mini.py program by itself without appending any arguments.

[[Category:Media]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Installing applications</title>
    <id>1187</id>
    <revision>
      <id>37400</id>
      <timestamp>2010-08-01T15:22:45Z</timestamp>
      <contributor>
        <username>debernardis</username>
        <id>285</id>
      </contributor>
      <comment>/* apt */  aggiunto apt-get purge</comment>
      <text xml:space="preserve">One of the major strengths of the Maemo platform is its expandability. There are all sorts of 3rd party applications and packages available to users, and a variety of ways to get a hold of these packages and install them.

'''DISCLAIMER: installing anything outside out of the box -repositories, official maemo.org or nokia.com websites or extras can break your device. If you still want to install something outside, please read [[Updating the firmware]] -article through and be sure you can do the operations necessary to reflash the device just in case something goes wrong!'''

== Repositories ==

The preferred method for installing most packages is from repositories through the Application manager. The primary (and recommended) repository for most of these packages is [[Extras]]. Once a repository is added to your application catalog in Application manager, you will see the packages from that repository listed in Application manager's package list and can install them directly from there.

== .installs ==

.install files are provided in many places as a way to install applications directly from the browser using Application manager. [http://downloads.maemo.org/ Downloads] is a good example of this (the green arrows are .install files). Most of these .installs simply tell the Application manager to grab a package from a certain repository, and can automatically add repositories to your application catalog if required.

== .debs ==
[http://en.wikipedia.org/wiki/Deb_(file_format) .deb] (short for Debian) is the package format used by Maemo. .deb packages are roughly analogous to OS X's [http://en.wikipedia.org/wiki/.pkg .pkg] or Windows' [http://en.wikipedia.org/wiki/EXE .exe]/[http://en.wikipedia.org/wiki/Windows_Installer .msi] installers. .debs are how almost all packages are delivered, but you usually don't deal with them directly, except when installing locally. Some packages are simply not distributed through repositories, or offered separately as .debs (which you may prefer for whatever reason).

You can install .debs by opening them from the browser, or opening local copies with Application manager. The major disadvantage to installing .debs locally as opposed to installing from a repository is that you wont be automatically notified of updates to the package. Also dependency installation is not automatic.

== Console ==

&lt;code&gt;apt&lt;/code&gt; and &lt;code&gt;dpkg&lt;/code&gt; are the tools for managing packages from the console. These can be used locally through XTerm or remotely through [[SSH]].

If you have no idea where your deb lies at the filesystem, please see article [[N900 filesystem]] for help.

=== apt ===

&lt;code&gt;apt&lt;/code&gt; generally deals with installing packages from repositories. This requires [[Root access]]. You can install packages from your repositories by running 
 &lt;code&gt;apt-get install &lt;package name&gt;&lt;/code&gt;
and apt will attempt to fetch the .deb and all of its dependencies and install them. You can then remove packages by running 
 &lt;code&gt;apt-get remove &lt;package name&gt;&lt;/code&gt;
This won't cancel the package configuration files, though. If you want to remove packages including their configuration files (i.e. because you suspect they are damaged), run
 &lt;code&gt;apt-get purge &lt;package name&gt;&lt;/code&gt;
To search the available packages from your repositories, simply run 
 &lt;code&gt;apt-cache search &lt;search string&gt;&lt;/code&gt; 
and it will display a list of matching packages.

=== dpkg ===

&lt;code&gt;dpkg&lt;/code&gt; is generally used for installing local .deb files directly, which can be done by running:
 &lt;code&gt;dpkg -i &lt;local .deb&gt;&lt;/code&gt; 
with a local .deb. 

'''Note: full path must be given.''' For example:
 &lt;code&gt;dpkg -i /home/user/MyDocs/sample.deb&lt;/code&gt;
if the deb lies at the root of &lt;code&gt;Nokia N900&lt;/code&gt; when viewed with file manager. See article [[N900 filesystem]] for further assistance.

== Troubleshooting ==

There are a variety of ways the application installation process can fail, only the common ones are outlined here. Application manager keeps a log of recent activity that's available in the menu (Menu -&gt; Tools -&gt; Log...) which may help you in diagnosing problems.

; Unable to download : Typically, when the Application manager instantly complains about not being able to download when you attempt to install applications, this means that your internal flash card is corrupt and set to read-only. This can be fixed by fixing whatever is wrong with the internal card (likely a corrupt filesystem).

== Individual instructions ==

There is a wiki page for individual instructions. It is called [[Unusual install instructions]]. There should be found instructions to every other piece of software that can't be installed by app manager or means above. If the article lacks instructions for some software, please contact the author and ask him to write instructions to wiki and link them to the [[Unusual install instructions]] -page.

== Application list ==
There is an [[Software|application list]] that lists every application that has a wiki page. That could be useful.

[[Category:Users]]
[[Category:HowTo]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Installing unstable applications</title>
    <id>3451</id>
    <revision>
      <id>33024</id>
      <timestamp>2010-04-19T10:26:10Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>tidy</comment>
      <text xml:space="preserve">This article describes how to select unstable applications while minimizing risks.


== Extras-testing vs Extras-devel ==

First step when minimizing risks is to disable the [[extras-devel]] repository. Packages that are in extras-devel are there because the developer thinks it is not yet ready for [[extras-testing]]. Further information can be found in the [[extras]] article.

== QA Queue ==

The QA Queue from extras-testing can be found at http://maemo.org/packages/repository/qa/fremantle_extras-testing/

The first column is the name of the package, the second is version number, and the third is karma.

=== Karma ===

QA Queue karma should not be confused personal [[karma]]. An application needs 10 karma in order to get moved from extras-testing to extras. Application gains one karma point when a tester has followed instructions from [[Help testing software]] and given a thumbs up vote for it.

So, one thumbs up means one karma and that means one person is certain that the application is stable, does not fill root partition (optified), etc.

The more karma for the package, the safer it should be to install and use.


=== Comments ===

When you click a name of package, it will open a page where you can either comment on the package or read comments. That can be very useful data for the decision.

=== Bugzilla ===

The address of the package bugtracker can be seen in the same page as the comments, or at least it should be. You can use the [https://bugs.maemo.org/query.cgi?format=advanced Bugzilla search] to find out if the package is already in maemo.org bugzilla. Just see if the packages name can be found in the 'product' box. If it is found, please note column &quot;Sev&quot;, aka Severity. If you can find red items in the list, you should be careful.

== Staying safe ==

* Install only applications with top karma rates
* See all the comments left in QA Queue (can be found when clicking package name) for possible problems
* When in doubt, stop and wait for package to enter extras.

and of course the article [[General precautions]] can be useful too.

[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>International pages</title>
    <id>3442</id>
    <revision>
      <id>27772</id>
      <timestamp>2010-01-29T19:35:57Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Simplified Chinese */</comment>
      <text xml:space="preserve">A dumping ground for pages which are either related to specific languages or regions, or which are translations of other pages. Translations should always point back to the original and vice versa.


= Language/region specific pages =

== Hebrew ==
* [[Hebrew]]
* [[Hebrew N900]]

== Korean ==
* [[Korean]]
* [[Korean input]]

= Translated pages =

== Simplified Chinese ==
* [[Maemo软件开发工具包]]
* [[Maemo 5 Final SDK 安装指南 ]]


[[Category:Internationalization]]</text>
    </revision>
  </page>
  <page>
    <title>Internationalize a Python application</title>
    <id>3981</id>
    <revision>
      <id>49409</id>
      <timestamp>2012-09-03T22:16:33Z</timestamp>
      <contributor>
        <ip>143.167.245.36</ip>
      </contributor>
      <comment>Simplify example code slightly</comment>
      <text xml:space="preserve">This page explains step by step how to add support for translations in a Python application for Maemo. 

There are already some [http://www.learningpython.com/2006/12/03/translating-your-pythonpygtk-application/ tutorials online] about how to internationalize (i18n) Python applications, but I find them difficult to follow and they lack some needed code and final tricks to make everything work fine. 

To support i18n we need to accomplish 5 tasks:
# Define correctly a function '&lt;code&gt;_()&lt;/code&gt;' that translates strings
# Mark the strings in the code with that function
# Generate a template for the translators
# Add translations
# Include the translations in the installation

== The overall process ==

From the source code, using a command line tool, we will generate a &quot;&lt;code&gt;.pot&lt;/code&gt;&quot; file. It is plain text file containing all strings that need translation in the project. This &lt;code&gt;.pot&lt;/code&gt; file only needs to be generated/recreated when the strings change in the code (and ''not'' in every build!). There is only one &lt;code&gt;.pot&lt;/code&gt; file per project.

Then, from the &lt;code&gt;.pot&lt;/code&gt; files and using another command line tool, we will generate the &lt;code&gt;.po&lt;/code&gt; files for each language. There is one &lt;code&gt;.po&lt;/code&gt; file per language, and it is the file that the translators need to complete. Both &lt;code&gt;.pot&lt;/code&gt; and all &lt;code&gt;.po&lt;/code&gt; files should be committed in the repository.

But once your program is running, it doesn't use &lt;code&gt;.po&lt;/code&gt; files directly, but a binary (compiled) version of them: the &lt;code&gt;.mo&lt;/code&gt; files. These &lt;code&gt;.mo&lt;/code&gt; files must be re-created on build time (when creating the package) and installed in the right location in the system. These are generated files, so don't commit them to the repository.

From the code point of view, you just need to call few functions to tell gettext where are the translation files, what language do you want to use (usually the locale of the environment), and then it will use its implementation to find the right string.

Ok, this is what we need to do. Let's code.

== Configure gettext Define the '_()' function ==

If you don't care too much about the details, just copy this [https://garage.maemo.org/plugins/ggit/browse.php/?p=mussorgsky;a=blob;f=src/i18n.py;hb=HEAD i18n.py] file in your src/ directory ('''change the APP_NAME''' variable there!), or copy the code block below into a file i18n.py:
&lt;source lang=&quot;python&quot;&gt;
# -*- coding: utf-8 -*-

import os, sys
import locale
import gettext

# Change this variable to your app name!
#  The translation files will be under
#  @LOCALE_DIR@/@LANGUAGE@/LC_MESSAGES/@APP_NAME@.mo
APP_NAME = &quot;SleepAnalyser&quot;

# This is ok for maemo. Not sure in a regular desktop:
#APP_DIR = os.path.join (sys.prefix, 'share')
LOCALE_DIR = os.path.join(APP_DIR, 'i18n') # .mo files will then be located in APP_Dir/i18n/LANGUAGECODE/LC_MESSAGES/

# Now we need to choose the language. We will provide a list, and gettext
# will use the first translation available in the list
#
#  In maemo it is in the LANG environment variable
#  (on desktop is usually LANGUAGES)
DEFAULT_LANGUAGES = os.environ.get('LANG', '').split(':')
DEFAULT_LANGUAGES += ['en_US']

lc, encoding = locale.getdefaultlocale()
if lc:
    languages = [lc]

# Concat all languages (env + default locale),
#  and here we have the languages and location of the translations
languages += DEFAULT_LANGUAGES
mo_location = LOCALE_DIR

# Lets tell those details to gettext
#  (nothing to change here for you)
gettext.install (True,localedir=None, unicode=1)

gettext.find(APP_NAME, mo_location)

gettext.textdomain (APP_NAME)

gettext.bind_textdomain_codeset(APP_NAME, &quot;UTF-8&quot;)

language = gettext.translation (APP_NAME, mo_location, languages = languages, fallback = True)
&lt;/source&gt;



And in '''every .py''' file that needs to translate any string, add these lines at the top:
&lt;source lang=&quot;python&quot;&gt;
import i18n
_ = i18n.language.ugettext #use ugettext instead of getttext to avoid unicode errors 
&lt;/source&gt;
Done. If you are curious about what is going on there, the file has plenty of comments explaining every line.

== Mark strings for i18n ==

This is one of the easiest parts. Browse the source code files that show something on the screen, and wrap the visible strings (window titles, dialog titles, notifications, labels, button labels and so on) with the '&lt;code&gt;_()&lt;/code&gt;' function.

For example:
&lt;source lang=&quot;python&quot;&gt;
# import the _() function!
import i18n
_ = i18n.language.gettext

class Example (hildon.StackableWindow):

   def __init__ (self):
       hildon.StackableWindow.__init__ (self)
       self.set_title ( _(&quot;All music&quot;) )   &lt;------- ADD THIS!
&lt;/source&gt;
== Generate template for the translators ==

Create a po folder in your project (usually at the same level as src/) and run the following command from the top directory of your project. You can do this inside or outside Scratchbox, there is no difference. Don't forget to replace PROJECTNAME with the name of your project.

 xgettext --language=Python --keyword=_ --output=po/PROJECTNAME.pot `find . -name &quot;*.py&quot;`

It will parse files, written in Python, looking for strings marked with the keyword (function name) '_' and saving the output in a file called '&lt;code&gt;po/PROJECTNAME.pot&lt;/code&gt;'. The list of files is the last argument. I like to use &quot;find&quot;, but you can manually put a list of files there.

That command will generate the &lt;code&gt;.pot&lt;/code&gt; file. Easy, isn't it?

If you get the error &quot;xgettext: Non-ASCII character at...&quot;, try to add the parameter &quot;--from-code=UTF-8&quot; to the command:

 xgettext --language=Python --keyword=_ --output=po/PROJECTNAME.pot --from-code=UTF-8 `find . -name &quot;*.py&quot;`

== How to add translations ==

Now you want to get a translation in an specific language. You need to generate a &lt;code&gt;.po&lt;/code&gt; for it.

There are several ways to do it. I suggest to do it the easy way with poEdit:
=== With poEdit ===
Poedit is cross-platform gettext catalogs (.po files) editor. For more information, see its website http://www.poedit.net/.
Just start it and generate a new catalog from the generated .pot file.
In the option window you can select the translated language, your name, email address and so on. This is useful, so others know who created this translation. 

Now you can start to translate all the text. If you modify your application and generate a new .pot file, you can easily import it. It will use all the existing translation and add the new/modified strings. If you changed the charset before like me, you will have to select it again.
Every time you save the file, poEdit will generate a .mo file. You can use it for testing the new translation.

=== Manual way ===
Go to the &lt;code&gt;po/&lt;/code&gt; folder and run this command (again, inside/outside scratchbox doesn't matter):

 msginit --input=PROJECTNAME.pot --locale=LOCALE

For instance, if I want a &lt;code&gt;.po&lt;/code&gt; file for the Spanish translation of my project Mussorgsky, I write:

 msginit --input=mussorgsky.pot --locale=es_ES

It will generate a file &quot;&lt;code&gt;es.po&lt;/code&gt;&quot; and translators can/must work on that file. 

'''IMPORTANT''': by default the generated &lt;code&gt;.po&lt;/code&gt; file declares its charset as ASCII. This means that translations with non-ascii characters will provoke an error in the program. To solve this, set the charset to '&lt;code&gt;utf-8&lt;/code&gt;':

 &quot;Language-Team: Spanish\n&quot;
 &quot;MIME-Version: 1.0\n&quot;
 &quot;Content-Type: text/plain; charset=utf-8\n&quot;  &lt;--- THIS MUST BE UTF-8

If you don't know the locale of a language, can check [http://www.roseindia.net/tutorials/I18N/locales-list.shtml www.roseindia.net/tutorials/I18N/locales-list.shtml] or [http://people.w3.org/rishida/utils/subtags/ people.w3.org/rishida/utils/subtags].

== Include translations in your installation ==
Here again are several ways of doing it. I suggest to do it the automatic way as it is way easier if you have scratchbox.
=== Automatic way ===
If you already have the .tar.gz file, then you already have the structure with the files. Just unpack the .tar.gz file into a folder. If you have to pack it for the first time, MohammadAG has a good page about how to generate the needed files: [[User:Mohammad7410/Packaging]]

Now you will have to add some basic lines to the debian/rules file.Under the line with &quot;install: build&quot; should be many lines with &quot;&lt;code&gt;mkdir&lt;/code&gt;&quot; and &quot;&lt;code&gt;cp -a&lt;/code&gt;&quot;. After the last one of them, add those two lines:

  #compile language files with msgfmt
  msgfmt src/opt/PROJECTNAME/i18n/de.po --output-file debian/PROJECTNAME/opt/PROJECTNAME/i18n/de/LC_MESSAGES/PROJECTNAME.mo
This will tell the autobuilder to generate the .mo files. You will need a line like that for every language!
Don't forget to adapt the file paths. In the example the .mo files are in the sub folder i18n/de/LC_MESSAGES/

=== Python way ===
This part is more tricky, because it depends on your build system. I'll explain how it goes with the common python 'distutils' (what makes the usual ''&lt;code&gt;python setup.py install&lt;/code&gt;'' command work). In distutils all the magic happens in the ''&lt;code&gt;setup.py&lt;/code&gt;'' file.

First of all, if in the previous steps you have added the &lt;code&gt;i18n.py&lt;/code&gt; file to your source tree, don't forget to include it in your &lt;code&gt;data_files&lt;/code&gt; list!

Then, copy to the root folder of your project the file [https://garage.maemo.org/plugins/ggit/browse.php/?p=mussorgsky;a=blob;f=msgfmt.py;hb=HEAD msgfmt.py]. It is a program that translates the .po files into the binary .mo files that the application needs.

In your &lt;code&gt;setup.py&lt;/code&gt; file you need to add all this code. It &quot;overloads&quot; the default 'build' and 'install' instructions to include the translations in the process. Now in 'build' time it will generate the .mo files (using the &lt;code&gt;msgfmt.py&lt;/code&gt; we added just now), and in 'install' time it will include the '&lt;code&gt;.mo&lt;/code&gt;' files in the &lt;code&gt;data_files&lt;/code&gt; list. The code is copied from this a [https://garage.maemo.org/plugins/ggit/browse.php/?p=mussorgsky;a=blob;f=setup.py;hb=HEAD setup.py] file.

&lt;source lang=&quot;python&quot;&gt;
from distutils.core import setup
from distutils import cmd
from distutils.command.install_data import install_data as _install_data
from distutils.command.build import build as _build

import msgfmt
import os
&lt;/source&gt;
This command compiles every &lt;code&gt;.po&lt;/code&gt; file under the &lt;code&gt;po/&lt;/code&gt; folder into a &lt;code&gt;.mo&lt;/code&gt; (the &lt;code&gt;.mo&lt;/code&gt; files will be under &lt;code&gt;build/locale/&lt;/code&gt;)
&lt;source lang=&quot;python&quot;&gt;
class build_trans(cmd.Command):
    description = 'Compile .po files into .mo files'
    def initialize_options(self):
        pass

    def finalize_options(self):
        pass

    def run(self):
        po_dir = os.path.join(os.path.dirname(os.curdir), 'po')
        for path, names, filenames in os.walk(po_dir):
            for f in filenames:
                if f.endswith('.po'):
                    lang = f[:-3]
                    src = os.path.join(path, f)
                    dest_path = os.path.join('build', 'locale', lang, 'LC_MESSAGES')
                    dest = os.path.join(dest_path, 'mussorgsky.mo')
                    if not os.path.exists(dest_path):
                        os.makedirs(dest_path)
                    if not os.path.exists(dest):
                        print 'Compiling %s' % src
                        msgfmt.make(src, dest)
                    else:
                        src_mtime = os.stat(src)[8]
                        dest_mtime = os.stat(dest)[8]
                        if src_mtime &gt; dest_mtime:
                            print 'Compiling %s' % src
                            msgfmt.make(src, dest)
&lt;/source&gt;
Now we append the previous command to the 'build' command.
&lt;source lang=&quot;python&quot;&gt;
class build(_build):
    sub_commands = _build.sub_commands + [('build_trans', None)]
    def run(self):
        _build.run(self)
&lt;/source&gt;
Installation time: put every &lt;code&gt;.mo&lt;/code&gt; file under &lt;code&gt;build/locale&lt;/code&gt; in the &lt;code&gt;data_files&lt;/code&gt; list (the list of things to be installed) and call the default 'install' operation
&lt;source lang=&quot;python&quot;&gt;
class install_data(_install_data):

    def run(self):
        for lang in os.listdir('build/locale/'):
            lang_dir = os.path.join('share', 'locale', lang, 'LC_MESSAGES')
            lang_file = os.path.join('build', 'locale', lang, 'LC_MESSAGES', 'mussorgsky.mo')
            self.data_files.append( (lang_dir, [lang_file]) )
        _install_data.run(self)
&lt;/source&gt;
Finally, add the new commands in distutils...
&lt;source lang=&quot;python&quot;&gt;
cmdclass = {
    'build': build,
    'build_trans': build_trans,
    'install_data': install_data,
}
&lt;/source&gt;
And don't forget to add this in your setup function, in the &lt;code&gt;setup.py&lt;/code&gt;
&lt;source lang=&quot;python&quot;&gt;
setup(name         = 'your project',
      ...
     license      = 'GPL v2 or later',
     data_files   = DATA,
     scripts      = SCRIPTS,
     cmdclass     = cmdclass   &lt;----- DON'T FORGET THIS
     )
&lt;/source&gt;
Ok, now everything should be ready. If you run

 python2.5 setup.py build

the terminal will print things like

 compiling es.po
 compiling de.po
 ...

Usually &lt;code&gt;dpkg-buildpackage&lt;/code&gt; uses &lt;code&gt;python2.5 setup.py build&lt;/code&gt; and &lt;code&gt;install&lt;/code&gt;, so everything should work out-of-the-box with your previous package configuration.

Feel free to complete/correct this wiki page with your own experience.

[[Category:Internationalization]]
[[Category:Development]]
[[Category:HowTo]]
[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>Internet bookmark speed dial</title>
    <id>1112</id>
    <revision>
      <id>21489</id>
      <timestamp>2009-11-01T12:35:24Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <text xml:space="preserve">== What does it do ==
This script shows links to the last 16 bookmarks you clicked on in the browsers bookmark-menu as a webpage. It allows you to quickly select bookmarks without using the menu.
[http://www.internettablettalk.com/forums/attachment.php?attachmentid=1010&amp;stc=1&amp;d=1203686568 screenshot]
== Requirements ==
* [[MicroB]]  (default in OS2008).
== How to install ==
* get the latest version [http://www.internettablettalk.com/forums/showthread.php?t=16756&amp;page=2 here]
* put the file 'last_accessed_bookmarks.htm' anywhere on the Internet Tablet and open it in the browser
* set it as your homepage (menu-&gt;Set home page')

If you also [http://www.internettablettalk.com/wiki/index.php?title=Internet:Microb_browser configure the address-bar ] so that it can be used both to enter urls and as a 'google toolbar' then you don't need the search form from the default homepage anymore.


[[Category:Users]]
[[Category:Web]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Internet bookmarklets</title>
    <id>1114</id>
    <revision>
      <id>21488</id>
      <timestamp>2009-11-01T12:34:58Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <text xml:space="preserve">Although not widely known, in most browsers you can run javascripts by typing them in the url-bar. This script can then do anything a regular script loaded from a website can. If you bookmark such a script then it is called a bookmarklet. 

[http://www.rit.albany.edu/~ew2193/bookmarklets.html Here are some examples]. Just bookmark the links on that page and you're ready to use them.

These scripts should start with 'javascript:', can only contain one line and function calls should be enclosed with the 'void()' statement, unless they're called from within another function. This bookmarklet for example changes the font and background color of a page:

 javascript:void(main());function main(){c('body');c('td');c('div');c('p');}
 function c(elname){el=document.getElementsByTagName(elname);
 for(i=0;i&lt;el.length;i++){el[i].style.background='black';el[i].style.color='white';}}
Note: The code has been divided into three lines to fit on the wiki page.

[[Category:Users]]
[[Category:Web]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Internet custom styles</title>
    <id>1113</id>
    <revision>
      <id>42346</id>
      <timestamp>2011-03-04T14:50:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">Most websites are not designed with the tablets in mind. They may have a very stripped down 'mobile' version that lacks certain features, usually accessed by a specific link on the page ([http://cantoni.mobi/ list of useful mobile websites]), a version specific for the iPhone/iPod Touch, and a regular version that does not fit on the tablet's screen. Below are some ways to make the regular version more usable and to access the iPhone version.

== Customizing userContent.css ==

With [[MicroB]], Just like with Firefox, you can customize the way the browser displays websites by changing the file userContent.css in the user profile folder. This can be used to force web pages to fit on the Internet Tablet screen. This is similar to the &quot;fit to screen&quot; option in Microb, but may look better in some cases. It also has the added benefit of having site-specific customizations. Forum member Brontide has collected various tips [http://www.internettablettalk.com/forums/showthread.php?t=19460 here]. Editing this file requires basic command line skills.

== Greasemonkey extension  ==

The Greasemonkey extension for Microb allows even more customizations. Besides changing the way a website looks using style sheets you can change the way a website works, by running custom javascripts in the browser. There are many ready made scripts you can install.

== 'Stylish'  extension ==

With some work the Stylish extension for Firefox can be used in Microb. This extension basically does what is described in the the 'Customizing usercontent' section above, only with an easy GUI. Using this you can install ready-made customizations. For a how-to see [http://www.internettablettalk.com/forums/showthread.php?p=206559#post206559 this forum post].

== Using a proxy ==

A proxy is a program that sits between your webbrowser and a website, and filters or changes the content. This way ads can be blocked, and any website can be turned into low-bandwidth/mobile version even if they don't support it on their own. A proxy can either be running locally on your Internet Tablet, such as Privoxy (see: [[Ad blocking]]), or on a different computer. Here are some free proxy servers running on a different computer that you can try:

* http://google.com/gwt/n
* http://skweezer.net/
* http://phonifier.com/
* http://mowser.com/
* http://mlvb.net/
* http://urlwash.com/
* http://jonathanhayward.com/m/

== Accessing iPhone versions of websites ==

It is possible to change the 'user-agent string' of the browser. This is what the browser uses to identify its type to a website. Websites usually detect this to decide which version to show. If you let the browser identify itself as iPhone you will see the iPhone version, if it exists. To do so make two bookmarks and copy this in the 'Address' field of the first one:

 about:config?prefname=general.useragent.override&amp;prefvalue=Mozilla%2F5.0+%28N8x0+like+iPhone%3B+U%3B+Linux+like+Mac+OS+X%3B+ARM%3B+en%29+AppleWebKit%2F420%2B+%28Gecko%2C+like+KHTML%29

and this in the 'Address' field of the other one:

 about:config?prefname=general.useragent.override&amp;prefvalue=Mozilla%2F5.0+%28X11%3B+U%3B+Linux+armv6l%3B+en-US%3B+rv%3A1.9a6pre%29+Gecko%2F20070807+Firefox%2F3.0a1+Tablet+browser+0.1.16+RX-34%2BRX-34_2008SE_2.2007.50-2

Note: To make these lines fit in the wiki they are broken up into several lines, but they should each be on one line. 

Use the first bookmark then to put Microb into 'iPhone' mode and the other to restore the default setting.

[[Category:Users]]
[[Category:Web]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Internet tablets</title>
    <id>2643</id>
    <revision>
      <id>33767</id>
      <timestamp>2010-05-03T14:35:10Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Nokia's 5 Steps */ QT-&gt;Qt</comment>
      <text xml:space="preserve">An Internet tablet (IT) (see also [[wikipedia:Mobile Internet Device|Mobile Internet Device]] (MID)) is a small portable computer with a touch-sensitive screen interface and wireless Internet access. Nokia has produced a series of ITs with the Maemo operating system, starting with the [[wikipedia:Nokia_770|Nokia 770]] in 2005. It was followed by the [[wikipedia:Nokia_N800|Nokia N800]] in early 2007. The updated [[wikipedia:Nokia_N810|Nokia N810]] in 2008 was the first to include a [[wikipedia:GPS|GPS]] receiver and slide-out keyboard. The [[wikipedia:Nokia_N900|Nokia N900]] was released at the end of 2009 and, with the addition of a multi-band [[wikipedia:GSM|GSM]] cell radio and a high-resolution camera, became a [[wikipedia:smart phone|smart phone]] in addition to an IT. Difference between models can be seen in [[Comparison of tablet models]]

== Nokia's 5 Steps ==


At the Web 2.0 Summit in October, 2007, Nokia Executive Vice President of Markets, Anssi Vanjoki, described the end game for the IT line. He described the N770 as the first step, the N800 from earlier in the year as the second step, and the N810 as the third step in a five step evolution toward a mobile Web 2.0 computer.

:&quot;The N810 is the first of these devices targeted at a 'normal' consumer group, beyond the geeks,&quot; Vanjoki added. &quot;It's a fairly small entity of technology leaders, but it's a very important step No. 3 for us.&quot;&lt;ref name=&quot;5step&quot;&gt;[http://www.informationweek.com/news/mobility/showArticle.jhtml?articleID=202403826 Information Week]&lt;/ref&gt;

The N900 has subsequently been described as the fourth step. 

It can be assumed that the next IT and Maemo 6.0, based on Nokia's newly-acquired Qt application framework, will be the final evolution to the mainstream connected computer Nokia has planned for world domination.

=== What ''are'' Nokia internet tablets? ===

Nokia's Internet Tablets are about the size of a small paperback book, have a large high resolution touch-sensitive screen, and include a PC-style web browser. They can connect to the internet through Wi-Fi or through Bluetooth-compatible mobile phones (including all Nokia and many non-Nokia Bluetooth models).

The web browser used on the N800 and N810 uses the same core as the PC browser Firefox, and is compatible with Flash-based sites too. It can display most websites pretty much like a PC, and can even cope with more demanding sites such as YouTube and Google Documents. As well as a browser, the Tablets also provide access to services such as internet phone calls (including Skype and Google Talk), email, instant messaging, video chat, internet radio and RSS news feeds.

The Tablets all have dedicated buttons for zooming in and out, and for switching to a full-screen view, which are most commonly used by the web browser but may be used by any application.

From a technical point of view, the Tablets are pocket-sized computers running a special portable version of the Linux operating system. Many Linux applications are available for the tablets, almost all of which are free of charge.

===What's the point of the Internet Tablets?===

When Nokia launched its Internet Tablet range with the Nokia 770 back in 2005, one of the main questions that came up again and again was &quot;Who would buy this?&quot;. It wasn't a phone, and it seemed an odd kind of PDA as it didn't contain much built-in software, though it did have by far the best web browser of any pocket-sized device.

The answer to the question above is: the Tablets provide PC-style access to the internet without having to sit in front of a PC.

The Tablets don't have the processing power or massive storage space of a current desktop or laptop PC, but the internet generally doesn't require that much processing power or storage space.

All websites, including complex ones such as Google Maps or Hotmail, aren't really running on your computer, they're actually running on the website's own computer which is possibly thousands of miles from you. When you use such websites, all you're actually doing is telling that remote computer what to do, and it sends back any information you've requested (for example a web page, or an e-mail, a map, a video clip etc). All the information you access on the internet is stored on remote computers, which is why you can access your Gmail inbox on any internet-connected computer just by entering a username and password.

In a nutshell, computing is moving off users' computers and onto the internet. PCs are increasingly becoming just a window onto the internet, and the Tablets are meant to provide a portable pocket-sized window.

The Tablets can do lots of non-internet things too, and the Maemo community which has built round them spends a lot of its time installing and using various applications and games. But portable access to popular internet services is what the Tablets were primarily designed for, and it's what they do best.


&lt;references/&gt;

[[Category:Hardware]]
[[Category:OS2008]]</text>
    </revision>
  </page>
  <page>
    <title>Ip</title>
    <id>3403</id>
    <revision>
      <id>26721</id>
      <timestamp>2010-01-16T18:20:04Z</timestamp>
      <contributor>
        <username>cas07</username>
        <id>1601</id>
      </contributor>
      <comment>[[Ip]] moved to [[Static IP Address]]: ambiguous title</comment>
      <text xml:space="preserve">#REDIRECT [[Static IP Address]]</text>
    </revision>
  </page>
  <page>
    <title>Irc rtcomm</title>
    <id>1378</id>
    <revision>
      <id>9312</id>
      <timestamp>2008-12-12T04:12:13Z</timestamp>
      <contributor>
        <username>frankusb</username>
        <id>354</id>
      </contributor>
      <comment>[[Irc rtcomm]] moved to [[IRC rtcomm]]</comment>
      <text xml:space="preserve">#REDIRECT [[IRC rtcomm]]</text>
    </revision>
  </page>
  <page>
    <title>JPush</title>
    <id>4518</id>
    <revision>
      <id>41636</id>
      <timestamp>2011-02-05T18:32:29Z</timestamp>
      <contributor>
        <username>xur17</username>
        <id>3472</id>
      </contributor>
      <comment>/* Server */</comment>
      <text xml:space="preserve">JPush provides a way for information to be pushed to a device or computer. It provides 'hooks' on the server that cause 'actions' to be performed on the device, such as checking for new email.

One common use is to get push email on a [[Nokia N900|N900]] device.

==How it Works==

JPush utilizes an existing XMPP (Jabber) connection to communicate with a device.  The client adds the server as a 'buddy' using any existing jabber account on the N900.

==Setup==

===Pre-Setup===

* Create jabber account separate from your own (anywhere works, gmail, jabber.org, etc).
* Add server account to buddy list of client account.
* Modest must be set to check for new email automatically (just set it to once every 24 hours). This is some odd issue that I ran into.
* Install the following files as instructed below.

===Install===

*Server: a .deb file is available [https://garage.maemo.org/frs/?group_id=1903&amp;release_id=4168 here].
*Client (N900): a .deb is not available yet. Download the source code from [https://garage.maemo.org/frs/?group_id=1903&amp;release_id=4168 here], and install the files in any directory. Make sure the files are executable (&lt;code&gt;chmod +x&lt;/code&gt;).

===Configuration===

====Server====

# Edit &lt;code&gt;/usr/bin/jpush-server&lt;/code&gt;
#* edit the config block:
#** insert username and password for a new jabber account created above.
#** set a secret that you will also put on the client (make this up).
#** set notifications (type of commands to be sent to the device). Leave this as the default if you only want email.
# Setup Email Hook
#* &lt;code&gt;/usr/bin/jpush-emailhook&lt;/code&gt; should be called whenever a new email is received.  This sends an update to JPushServer, which notifies the N900.
#* This file receives two arguments: &lt;code&gt;/usr/bin/jpush-emailhook username updateType&lt;/code&gt;
#** example: To receive push email, insert new line into &lt;code&gt;/etc/aliases&lt;/code&gt; as: &lt;pre&gt;part-of-email-before-at-symbol &quot;|/usr/bin/jpush-emailhook username email&quot;&lt;/pre&gt;
#** Run '&lt;code&gt;sudo newaliases&lt;/code&gt;' to make server update email config above.
#** Forward all email to part-of-email-before-at-symbol@server.com
# Starting
#* Run jpush-server start

====Client====

# Edit &lt;code&gt;/opt/jpush/jpush.py&lt;/code&gt;
#* edit the config block
#** set a secret (use the same value that you set for the server config above).
# Optional - Edit &lt;code&gt;/?/?/actions.py&lt;/code&gt;
#* Follow instructions in file.

==Download==

https://garage.maemo.org/projects/jpush/

[[Category:Software]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Java</title>
    <id>202</id>
    <revision>
      <id>45052</id>
      <timestamp>2011-08-25T07:54:26Z</timestamp>
      <contributor>
        <ip>94.177.40.82</ip>
      </contributor>
      <comment>/* Hardware support */</comment>
      <text xml:space="preserve">This page is about the Java programming language and Java Virtual Machine.

== Current state of affairs ==

=== Official support ===

==== SUN ====
There is no official Java ME or Java SE from SUN as of yet.

==== Nokia ====
Nokia does not plan support because Nokia already supports 2 development platforms with Maemo: either GTK (Maemo 5) or Qt (Maemo 6) as well as WRT (Web Run Time).

==== N900 Application Manager ====

Java now available on the N900 via the [http://maemo.org/packages/view/icedtea6/ icedTea6] version of OpenJDK(tm) in [[extras]]. Check your Application Manager for &quot;icedTea6&quot; to install.

=== Hardware support ===

==== 770/N800/N810(WME) ====
The Nokia 770, N800, N810(WME) CPUs have a proprietary extension called Jazelle which accelerates Java execution however this is technology requires a license. Nokia has not opted for such license hence there is no driver for this. For more information about Jazelle please see [[:wikipedia:Jazelle|the Jazelle entry at Wikipedia]].

==== N900 ====
Nokia N900 contains succesor of Jazelle found on ARMv7, called ThumbEE. This is more general JIT; not JVM-specific. Hardware support (driver) of ThumbEE is unknown.

== Solutions ==

=== [http://java.sun.com/javase/downloads/embedded.jsp Java SE for embedded 6] ===
* ARMv6 Linux - Headless (Early Access) EABI, glibc 2.5, Soft Float, Little Endian
* ARMv6 Linux - Headless (Early Access) EABI, glibc 2.5, Hard Float (VFP), Little Endian
* ARMv6 Linux - Headful (Early Access), EABI, glibc 2.5, Hard Float (VFP), Little Endian
* ARMv5 Linux - Headless (Early Access), EABI, glibc 2.5, Soft Float, Little Endian 
* ARMv5 Linux - Headful (Early Access), EABI, glibc 2.5, Soft Float, Little Endian)

=== OpenJDK 6 JRE ===
Is ported to Debian GNU/Linux ARMEL therefore should work.

The [http://mint.camswl.com/openjdk.htm Cambridge ARM-optimised OpenJDK] has been shown to work.

=== [https://wiki.evolvis.org/jalimo Jalimo] ===
Aims for Java SE compliance with pre-SUN_Java_GPLed_code, previously ported to Maemo.

Jalimo maemo 4 repo is giving a permission denied error and appear to be down.
Development appears to have moved on to openembedded, mailing list still active.

=== Google Android's Virtual Machine Dalvik ===

Maemo could greatly profit if it could run all Android apps. If Maemo subsumes Android, there is no reason anymore to choose Android. Moreover there is already an [https://blueprints.launchpad.net/ubuntu/+spec/mobile-karmic-android-execution-environment Ubuntu project] aiming at running Android apps in Ubuntu. 
The [http://mjfrey.blogspot.com/ main developer] does, however, not respond to emails.

=== [http://code.google.com/p/microemu/wiki/Maemo MicroEmu] ===
Java ME emulator written in Java SE previously ported to Maemo

=== [https://phoneme.dev.java.net/ phoneME] ===
Java ME emulator written in C previously ported to Maemo.

=== Qt Jambi ===
Provides Java bindings for Qt. Swing native supported by headful Java versions.

=== Unsorted ===
For Java support in Maemo Browser a plugin is required. (References to be written.)

== Brainstorm ==
Please see [[Task:Brainstorm_Java]] for an effort to outline possible solutions to improve Java support on Nokia N900.

[[Category:Development]]
[[Category:N900]]

== Tutorials ==
* [http://www.leolol.com/drupal/tutorials/java/lessons Java Programming Lessons]
* [http://www.leolol.com/drupal/tutorials/java/exercises Java Programming Exercises] with sample solutions</text>
    </revision>
  </page>
  <page>
    <title>Java virtual machine</title>
    <id>4386</id>
    <revision>
      <id>37651</id>
      <timestamp>2010-08-10T08:16:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>the wiki is not a forum</comment>
      <text xml:space="preserve">#REDIRECT [[Java]]</text>
    </revision>
  </page>
  <page>
    <title>KDE</title>
    <id>3259</id>
    <revision>
      <id>29400</id>
      <timestamp>2010-02-12T13:59:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:KDE]]</comment>
      <text xml:space="preserve">The KDE community is very maemo-friendly. Here is a collection of related links.

= Main page =
* [http://techbase.kde.org/Projects/Maemo KDE's maemo project]

= Maemo pages =
* [[KDE on scratchbox]]

= Blogs =
''Most recent on top''

* [http://www.kdedevelopers.org/node/3672 Marijn Kruisselbrink: Having fun with qemu]
* [http://www.kdedevelopers.org/node/3662 Marijn Kruisselbrink: KOffice on Maemo]
* [http://blog.forwardbias.in/2008/08/n810-is-awesome.html Girish Ramakrishnan: N810 is awesome]
* [http://www.kdedevelopers.org/node/3628 Fredrik Gladhorn: Various Qt apps]
* [http://www.kdedevelopers.org/node/3624 Marijn Kruisselbrink: KDE packages for maemo]
* [http://www.notmart.org/index.php/Software/Misc_plasmoids_on_n810 Marco Martin: Misc plasmoids on n810]
* [http://www.notmart.org/index.php/BlaBla/Akademy,_810_and_stuffs Marco Martin: Akademy, 810 and stuffs]
* [http://www.kdedevelopers.org/node/3623 Richard Dale: Building Ruby on the N810]
* [http://www.fredemmott.co.uk/blog_156 Fred Emmott: Ogg/Vorbis on N810]
* [http://www.omat.nl/drupal/content/N810-and-OpenStreetMap-and-toma Tom Albers: N810 and OpenStreetMap and toma]
* [http://tsdgeos.blogspot.com/2008/08/maemo-scratchbox-on-amd64.html Albert Astals Cid: Maemo scratchbox on amd64]
* [http://blogs.forum.nokia.com/blog/kate-alholas-forum-nokia-blog/maemo/2008/08/13/akademy-2008-embedded-day Kate Alhola: Akademy 2008 Embedded day] 
* [http://www.gnuton.org/blog/2008/07/qt-4-maemo-the-new-experience/ Antonio Aloisio: Qt 4 Maemo: the new experience.]
* [http://www.kdedevelopers.org/node/3605 Marijn Kruisselbrink: Getting KDE on an n810.]
* [http://www.kdedevelopers.org/node/3575 Marijn Kruisselbrink: Sound on Maemo]
* [http://www.kdedevelopers.org/node/3546 Marijn Kruisselbrink: Plasma on Maemo]

[[Category:KDE]]</text>
    </revision>
  </page>
  <page>
    <title>KDE on scratchbox</title>
    <id>3518</id>
    <revision>
      <id>31749</id>
      <timestamp>2010-03-31T07:01:05Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:KDE]]</comment>
      <text xml:space="preserve">These articles describe how to compile [[KDE]] applications on Scratchbox so that they can run on the [[Nokia N810|N810]] or [[Nokia N900|N900]].

* The N900 runs Maemo 5. To compile KDE for it, see [[KDE on scratchbox for maemo 5]]
* The N810 runs Maemo 4. To compile KDE for it, see [[KDE on scratchbox for maemo 4]]

[[Category:KDE]]</text>
    </revision>
  </page>
  <page>
    <title>KDE on scratchbox for maemo 4</title>
    <id>3263</id>
    <revision>
      <id>29401</id>
      <timestamp>2010-02-12T14:00:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:KDE]] and [[Category:Diablo]]</comment>
      <text xml:space="preserve">This article describes how to compile KDE for maemo. It takes the Nokia N810 as example device. It uses the cross-compiling environment scratchbox on an Intel-based computer. 

{|align=&quot;right&quot; 
    |[[image:Snapshot-ktimetracker-n810.jpg|thumb|400px|Many KDE applications can run on maemo, here: [http://userbase.kde.org/ktimetracker ktimetracker] (click to enlarge).]] 
    |}

== Overview ==
* [http://maemo.org/intro/platform/ '''maemo'''] is the core software stack that runs on mobile devices like Nokia's N810 or N900
* [https://garage.maemo.org/ '''garage'''] is where the projects for maemo are hosted, somewhat compareable to Sourceforge.
* OS2008 is maemo 4.x ([[Codenames|more info]]). Compare it with Debian's Lenny.
* [http://en.wikipedia.org/wiki/Maemo#Diablo '''Diablo'''] is the version (feature upgrade 2008) of maemo. 
* [http://www.scratchbox.org/ '''Scratchbox'''] is a cross-compiling environment to enable you to create software for maemo on an i386.
* [http://www.busybox.net/ '''Busybox'''] is a single binary that allows you to run commands like ls, cat and bunzip2
* [http://en.wikipedia.org/wiki/Hildon '''Hildon'''] is an application framework and desktop shell for maemo, compare it to the role that Plasma plays in KDE 4

= On the Nokia itself =
* [[install openssh on the Nokia N810]]
* install subversion
 ssh root@localhost
 apt-get install subversion

= On your desktop =
You cannot install scratchbox on an X64 computer, so, install an i386 into a VMWare virtual machine. The following describes how to install scratchbox into a SUSE 11.1 32bit installation. It might work same or similar with any Linux.

== Set up scratchbox ==
First, we want to compile a &quot;hello world&quot; program for the Nokia. Here is how.
* Set up VMWare Server 2.0
* Install a virtual machine into VMWare Server, 40GB hard drive, 1024 GB RAM
* Install SUSE Linux 11.1 from DVD. At the bootscreen, type F7 and select '''X86''' instead of '''X86_64'''. That way, you will get a 32bit operating system.
* Take a VMware SNAPSHOT from your virtual machine so you can revert to this state
* Boot your virtual machine
* Set up scratchbox
 root@i386 # useradd -m scratchboxuser
 root@i386 # passwd scratchboxuser
 root@i386 # wget http://repository.maemo.org/stable/diablo/maemo-scratchbox-install_4.1.2.sh
 root@i386 # chmod 777 maemo-scratchbox-install_4.1.2.sh
 root@i386 # ./maemo-scratchbox-install_4.1.2.sh -s /scratchbox
 root@i386 # /scratchbox/sbin/sbox_adduser scratchboxuser
 root@i386 # su - scratchboxuser
* set up the SDK
 scratchboxuser@i386 $ wget http://repository.maemo.org/stable/diablo/maemo-sdk-install_4.1.2.sh
Start the install script and accept all choices:
 scratchboxuser@i386 $ sh maemo-sdk-install_4.1.2.sh
* start scratchbox
 scratchboxuser@i386 $ /scratchbox/login
 [sbox-DIABLO_ARMEL: ~] &gt; sb-conf select DIABLO_ARMEL

== Re-login ==
To re-login after a reboot of your virtual machine run
 root@i386 $ /scratchbox/sbin/sbox_ctl start
 root@i386 $ su - scratchboxuser
 scratchboxuser@i386 $ /scratchbox/login

== Hello world ==
Now we write the canonical hello world program in C.
 [sbox-DIABLO_ARMEL: ~] &gt; cat &gt; main.c &lt;&lt; EOF
 #include &lt;stdio.h&gt;
 
 int main()
 {
   printf(&quot;hello world&quot;);
 }
 EOF
 [sbox-DIABLO_ARMEL: ~] &gt; gcc main.c
 [sbox-DIABLO_ARMEL: ~] &gt; file a.out
 a.out: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), not stripped
* copy the file to your Nokia N810 using scp

=&gt; the file is executable on the Nokia

== Install Qt ==
Now it's time to install qt. 
Add to your /etc/apt/sources.list:
 deb http://repository.maemo.org/extras/ diablo free non-free
 deb-src http://repository.maemo.org/extras/ diablo free
and tell the system to re-read it:
 apt-get update
install the qt development package:
 apt-get install libqt4-dev
verify it has been installed:
 mkdir qttest
 cd qttest/
 cat &gt;main.cpp
 #include &lt;QApplication&gt;
 #include &lt;QPushButton&gt;
 int main(int argc, char ** argv)
 {
   QApplication qa(argc,argv);
   QPushButton* qp=new QPushButton(&quot;hello world&quot;);
   qp-&gt;show();
   return qa.exec();
 }
 qmake -project &amp;&amp; qmake &amp;&amp; make &amp;&amp; ./qttest
 g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/targets/DIABLO_ARMEL/usr/share/qt4/mkspecs/linux-g++ -I. -I/targets/DIABLO_ARMEL/usr/include/qt4/QtCore -I/targets/DIABLO_ARMEL/usr/include/qt4/QtGui -I/targets/DIABLO_ARMEL/usr/include/qt4 -I. -I. -o main.o main.cpp
 g++ -Wl,-O1 -o qttest main.o    -L/usr/lib -lQtGui -lQtCore -lpthread
 qttest: cannot connect to X server

Good - it tries to connect the X server, so it works.

== See graphics ==
To see graphics, you need to start Xephyr. This example shows how to install and run it on SUSE Linux 11.1.
 root@i386 $ yast -i xorg-x11-server-extra
 root@i386 $ Xephyr :4
Now back in your scratchbox 
 [sbox-DIABLO_ARMEL: ~/qttest] &gt; export DISPLAY=:4
 [sbox-DIABLO_ARMEL: ~/qttest] &gt; ./qttest
Now you should see a &quot;hello world&quot; button in a graphical window.

== Install cmake ==
 [sbox-DIABLO_ARMEL: ~/qttest] &gt; wget http://www.cmake.org/files/v2.6/cmake-2.6.2.tar.gz
 [sbox-DIABLO_ARMEL: ~/qttest] &gt; tar xvzf cmake-2.6.2.tar.gz
 [sbox-DIABLO_ARMEL: ~/qttest] &gt; cd cmake-2.6.2
 [sbox-DIABLO_ARMEL: ~/qttest] &gt; ./bootstrap &amp;&amp; make -j4 &amp;&amp; make install
I ran into [http://www.cmake.org/pipermail/cmake/2009-February/027065.html this issue], so I created link.txt by compiling cmake in a non-scratchbox environment and copying it over.

== shared-mime-info ==
Shared-mime-info 0.2 or greater is needed for KDE.
 [sbox-DIABLO_ARMEL: ~] &gt; cd
 [sbox-DIABLO_ARMEL: ~] &gt; wget http://freedesktop.org/~hadess/shared-mime-info-0.20.tar.bz2
 [sbox-DIABLO_ARMEL: ~] &gt; bunzip2 shared-mime-info-0.20.tar.bz2
 [sbox-DIABLO_ARMEL: ~] &gt; tar xvf shared-mime-info-0.20.tar
 [sbox-DIABLO_ARMEL: ~] &gt; cd shared-mime-info-0.20
 [sbox-DIABLO_ARMEL: ~] &gt; ./configure &amp;&amp; make &amp;&amp; make install
Make sure version 0.2 is in place:
 [sbox-DIABLO_ARMEL: ~] &gt; update-mime-database -v
 update-mime-database (shared-mime-info) 0.19
 [...]
 [sbox-DIABLO_ARMEL: ~] &gt; export PATH=/usr/local/bin:$PATH
 [sbox-DIABLO_ARMEL: ~] &gt; update-mime-database -v
 update-mime-database (shared-mime-info) 0.20
 [...]

== kdesupport ==
Compile kdesupport
 apt-get install libboost-dev
 apt-get install libboost-program-options-dev
 apt-get install xsltproc
 svn co https://svn.kde.org/home/kde/trunk/kdesupport
 cd kdesupport
 cmake . &amp;&amp; make
If you again get the error about a missing link.txt, try copying /scratcbox/devkits/qemu/bin/qemu-arm-sb from a fremantle installation to /scratchbox/devkits/cputransp/bin and configure your target configuration to use this
 make install

== pcre ==
PCRE is needed for kdelibs
 cd
 curl ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.9.tar.gz&gt;pcre-7.9.tar.gz
 tar xvzf pcre-7.9.tar.gz
 cd pcre-7.9
 ./configure &amp;&amp; make &amp;&amp; make install

== libXslt ==
libxslt is needed for kdelibs
 cd
 curl ftp://xmlsoft.org/libxslt/libxslt-1.1.26.tar.gz&gt;libxslt-1.1.26.tar.gz
 tar xvzf libxslt-1.1.26.tar.gz
 cd libxslt-1.1.26
 ./configure &amp;&amp; make &amp;&amp; make install

== libgif-devel ==
 apt-get install giflib-dev

== kdelibs ==
 cd
 svn co https://svn.kde.org/home/kde/branches/KDE/4.1/kdelibs
 mkdir kdelibs-build
 cd kdelibs-build
 cmake ../kdelibs &amp;&amp; make &amp;&amp; make install

 [sbox-DIABLO_ARMEL: ~/kdelibs-build] &gt;
 [sbox-DIABLO_ARMEL: ~/kdelibs-build] &gt; kde4-config --version
 Qt: 4.5.2
 KDE: 4.1.4 (KDE 4.1.4)
 kde4-config(8125) KLocalePrivate::initEncoding: Cannot resolve system encoding, defaulting to ISO 8859-1.
 kde4-config: 1.0

Congratulations! Your first kde 4 software is running :)

== gpgme ==
gpgme is needed for kdepimlibs.
 apt-get install libgpgme11-dev libgpg-error-dev

== kdepimlibs ==
 cd                                                                 
 svn co https://svn.kde.org/home/kde/branches/KDE/4.1/kdepimlibs
 cd kdepimlibs
 cmake . &amp;&amp; make &amp;&amp; make install

== checkinstall ==
Checkinstall is needed to build packages that we will copy.
 wget http://www.asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz
 tar xvzf checkinstall-1.6.2.tar.gz
 make
 make install
Repair installwatch
 vi /usr/local/bin/installwatch
Set 
 FAIL=1
to 
 FAIL=0

== ktimetracker ==
As example application that we want to run on the N810, we take ktimetracker from the KDEPIM package. So, checkout kdepim
 cd
 svn co https://svn.kde.org/home/kde/branches/KDE/4.1/kdepim
 cd kdepim
 cmake . &amp;&amp; make
This results in an error, however we go on:
 cd ktimetracker
 make
Now, as checkinstall does not work, we manually put the dependencies into a package:
 ldd ktimetracker
Copy all the files into /root/slash on the N810. Copy the file ktimetracker there. Copy the menu file /usr/local/share/apps/ktimetracker/karmui.rc there.

= back on the N810 =
 cd /root/slash
 export LD_LIBRARY_PATH=.
 ./ktimetracker

= Hints =

== How to make a screenshot ==
Here is how you can trigger a screenshot from command line under maemo:
 apt-get install graphicsmagick
 [http://www.man-wiki.net/index.php/1:gm#GM_IMPORT gm import] -window root rootwindow.jpg

== How to use the SD storage ==
If you want to store your KDE executables on the large /media/mmc1, you have to play some tricks. Remember that your N810 cannot format anything as ext2 (let alone ext3 and ext4). So you have to mount your mini SD card as vfat with all permissions set, so that every file is executable:
 cd 
 umount /media/mmc1
 mount /dev/mmcblk1p1 /media/mmc1 -t vfat -o umask=000

= See also =
* http://techbase.kde.org/Projects/Maemo/kdepim

[[Category:KDE]]
[[Category:Diablo]]</text>
    </revision>
  </page>
  <page>
    <title>KDE on scratchbox for maemo 5</title>
    <id>3719</id>
    <revision>
      <id>31672</id>
      <timestamp>2010-03-27T15:38:37Z</timestamp>
      <contributor>
        <username>tstaerk</username>
        <id>1691</id>
      </contributor>
      <comment>/* giflib */</comment>
      <text xml:space="preserve">This describes how to compile KDE applications on Scratchbox so they can be run on a [[Nokia N900]]. A N900 runs [[Open development/Maemo roadmap/Fremantle|Maemo 5]]. You need to install Qt, kdesupport, kdelibs and kdepimlibs before you can run KDE applications. 

= How it goes =

== On the N900 ==

* [[install openssh on the Nokia N900]]
* install subversion
 ssh root@localhost
 apt-get install subversion

== On your desktop ==

=== Set up scratchbox ===

{{main|Documentation/Maemo 5 Final SDK Installation}}

* Install Scratchbox and the Maemo 5 SDK.
* Re-login to Linux so you belong to the group sbox.
* log in to scratchbox:
 $ /scratchbox/login
 [sbox-FREMANTLE_X86: ~] &gt; sb-conf select FREMANTLE_ARMEL

=== cmake ===

{{main|Qt4 Hildon#CMake}}

Install CMake:
 [sbox-FREMANTLE_ARMEL: ~] &gt; apt-get install cmake

=== subversion ===

Install Subversion:
 [sbox-FREMANTLE_ARMEL: ~] &gt; apt-get install subversion

=== Qt ===
Download Qt everywhere 4.6 and build it. E.g. on 2010-03-27 it worked with:
 cd
 wget http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.2.tar.gz
 tar xvzf qt-everywhere-opensource-src-4.6.2.tar.gz
 cd qt-everywhere-opensource-src-4.6.2
 ./configure --prefix=/usr &amp;&amp; make &amp;&amp; make install

=== libical ===
libical is needed for kdepimlibs:
 cd
 wget http://downloads.sourceforge.net/project/freeassociation/libical/libical-0.44/libical-0.44.tar.gz?use_mirror=switch
 tar xvzf libical-0.44.tar.gz
 cd libical-0.44
 ./configure &amp;&amp; make &amp;&amp; make install

=== gpgme ===
gpgme is needed for kdepimlibs:
 [sbox-FREMANTLE_ARMEL: ~] &gt; apt-get install libgpgme11-dev

=== boost ===
libboost is needed for kdepimlibs
 apt-get install libboost-graph-dev

=== giflib ===
 cd
 wget http://downloads.sourceforge.net/project/giflib/giflib%204.x/giflib-4.1.6/giflib-4.1.6.tar.bz2?use_mirror=switch
 bunzip2 giflib-4.1.6.tar.bz2
 tar xvf giflib-4.1.6.tar
 cd giflib-4.1.6
 ./configure &amp;&amp; make &amp;&amp; make install

= See also =
* [[KDE on scratchbox]]
* [[KDE]]

[[Category:KDE]]</text>
    </revision>
  </page>
  <page>
    <title>Karma</title>
    <id>1238</id>
    <revision>
      <id>44307</id>
      <timestamp>2011-07-01T14:08:50Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <minor/>
      <comment>Undo revision 44301 by [[Special:Contributions/Miracle23|Miracle23]] ([[User talk:Miracle23|Talk]]) SPAM</comment>
      <text xml:space="preserve">'''[http://bergie.iki.fi/blog/midgard_and_the_law_of_karma.html Karma]''' is a measure of the activity of [[Maemo]] [[community]] members. You can see it in practice in the list of [http://maemo.org/profile/list/ members ranked by karma].

Several factors are taken into account when counting a user's karma measurement, including:

* Having a maemo.org account
* Posting to core Maemo mailing lists - from email addresses authenticated in your maemo.org profile.
* Commenting or rating Maemo news items, blog posts or products
* Joining Garage groups related to products
* Maintaining products on the [[Getting_started_with_Maemo_Garage#About_Garage|Garage]]
* Writing blog posts aggregated to [http://maemo.org/news/planet-maemo/ Planet Maemo]
* Opening new bugs at https://bugs.maemo.org - from an email address authenticated in your maemo.org profile
* Commenting on bugs, for example as part of [[Bugs:Triage_guide|bug triaging]]
** If you would like to know more about contributing to this much needed function of the community, visit the [http://maemo.org/community/bugs_and_features/ Bugs &amp; Features] section of maemo.org
* creating/editing wiki pages
* Posts on [http://talk.maemo.org talk.maemo.org] forum after you [[Link talk.maemo.org account with maemo.org profile]]
* Thanks on talk.maemo.org forum
* Testing packages in [[Extras-testing]] and promoting/demoting them

Each of these is [http://trac.midgard-project.org/browser/trunk/midcom/net.nehmer.account/config/config.inc weighted] according to the activity to give the final karma total for a user. The maemo.org deployment of Midgard uses [https://garage.maemo.org/plugins/scmsvn/viewcvs.php/midgard-data/snippets/sitegroup-config/net.nehmer.account/config.php?view=markup&amp;root=maemo2midgard a different set of weights].

== Weights ==

The karma calculation for each of these is calculated as follows:

* '''Comments''', commenting a news item or a Maemo app in testing: 2 * sqrt(# comments)
* '''Favourites''', voting on news items: 0.25 * sqrt(# thumbs)
* '''Packagetesting''', promoting or demoting packages in Extras Testing: 0.5 * # thumbs
* '''Blog post''', 1-10 per post depending on votes it has received
* '''Products''', applications in Maemo Downloads: 7 * (1 + stars per application)
* '''Discussion''', posts to Maemo mailing lists: 2 * sqrt(# posts)
* '''Brainstorm''': 5 for idea under vote or in development, 10 for implemented idea, 2 for solution under vote or in development, 10 for implemented solution
* '''Groups''', 3 * # garage project memberships
* '''Bugzilla_reported''': 6 * sqrt(# bugs reported)
* '''Bugzilla_comments''': sqrt(# bug comments)
* '''Itt_thanks''', thanks for TMO posts: 8 * sqrt(# thanks)
* '''Itt_posts''', posts on TMO: sqrt(# posts)
* '''Mediawiki_edits''': 6 * sqrt(# edits)

== Proposed improvements ==

The following things should be measured, and be worth about the same karma:

* Being a maintainer of a popular project
* Being a member of 2 to 3 groups
* Writing about 5 popular blog entries
* Closing about 10 bugs
* Opening about 10 bugs
* Writing about 25 emails to mailing lists
* Making about 50 wiki edits
* Making about 50 comments in Bugzilla
* Making about 50 comments on maemo.org
* Favouriting/burying about 100 things
* Perhaps saying about 200 things on IRC
* Thanking posts of others on Talk

The Karma measure would be improved by the following simple changes to existing measures:

* Blog posts: Score individual posts as follows:
 score = 1 + (number of favourites for post) - (number of buries for post)
 if (score &lt; 1) then score = 1;
 if (score &gt; 10) then score = 10;
* Groups: Increase the groups modifier to 4
* Discussion: Modify discussion points to be scored as 2 * sqrt(# posts)
* Comments and favourites: Modify favourites and buries to sqrt (# favourites), and comments to 2 * sqrt(# comments)

New modules will be needed for three or four new karma measurements:
* Bugzilla: It makes sense to split out three activities: how many bugs someone has created '''done''', how many comments they have made '''done''', and how many bugs they have resolved.
* [[IRC]]: Perhaps use a bot to record daily comments? We need to measure how many IRC comments someone has made.

One other major improvement to karma would be to calculate only the *new* karma which someone has received since the last run, and add it to the running total. This would allow us to devalue old karma over time, making recent contributions worth more than old contributions, while keeping important contributions around from old-timers who have moved on. Devaluation might be something like 2% per month - the easy way to do this it to multiply current karma totals for everyone by 0.98 at the end of each month, and keep adding new karma points as before.

Unfortunately, we don't right now have an easy way to calculate this delta.

== Links ==
* [http://talk.maemo.org/forumdisplay.php?f=16 Community forum] is the place to discuss karma
* [http://talk.maemo.org/showthread.php?t=40329 Refine the karma system (community input requested)] is the place to propose changes for the calculation 
* See also [[social news]]

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Keep a safe copy of your favorite applications</title>
    <id>3267</id>
    <revision>
      <id>25298</id>
      <timestamp>2009-12-29T16:19:48Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Keep a safe copy of your favorite applications]] moved to [[Back up your applications]]</comment>
      <text xml:space="preserve">#REDIRECT [[Back up your applications]]</text>
    </revision>
  </page>
  <page>
    <title>Kernel BFS</title>
    <id>5009</id>
    <revision>
      <id>46044</id>
      <timestamp>2011-12-15T14:47:23Z</timestamp>
      <contributor>
        <ip>82.35.145.14</ip>
      </contributor>
      <comment>update to newer thread</comment>
      <text xml:space="preserve">The kernel-bfs project provides a bleeding-edge kernel with its main feature being Con Kolivas' BFS CPU scheduler. Kernel-bfs is derived from the [[Kernel Power|kernel-power]] project and thus retains all features from it (e.g. overclocking, IPv6, USB Host mode, ..). This page only contains information exclusive to kernel-bfs, please refer to the kernel-power wiki page for shared information.

== The BFS CPU scheduler ==
The CPU scheduler is responsible for assigning the CPU's timeslices to all processes which are being ran on the operating system. By default, Linux uses the Completely Fair Scheduler (CFS). However, this scheduler is designed to scale to ''&quot;monster proportion hardware that the common man will never see&quot;''. This can result in sub-optimal results on machines with lower specifications, like your typical desktop, laptop, and our phone.

From the BFS FAQ:
&lt;pre&gt;What is it?

BFS is the Brain Fuck Scheduler. It was designed to be forward looking only,
make the most of lower spec machines, and not scale to massive hardware. ie
it is a desktop orientated scheduler, with extremely low latencies for
excellent interactivity by design rather than &quot;calculated&quot;, with rigid
fairness, nice priority distribution and extreme scalability within normal
load levels.

Extreme scalability within normal load levels? Isn't that a contradiction?
 
For years we've been doing our workloads on linux to have more work than we
had CPUs because we thought that the &quot;jobservers&quot; were limited in their
ability to utilise the CPUs effectively (so we did make -j6 or more on a
quad core machine for example). This scheduler proves that the jobservers
weren't at fault at all, because make -j4 on a quad core machine with BFS
is faster than *any* choice of job numbers on CFS. See reverse scalability
graph courtesy of Serge Belyshev showing various job numbers on a kernel build
on a quad core machine. The problem has always been that the mainline
scheduler can't keep the CPUs busy enough; ie it doesn't make the most of
your hardware in the most common situations on a desktop!
&lt;/pre&gt;

The [http://ck.kolivas.org/patches/bfs/bfs-faq.txt BFS FAQ] also provides information on other typical questions. Please refer to it for more information.

== Bleeding-edge features ==
Besides the BFS CPU scheduler, kernel-bfs incorporates several bleeding-edge patches. At the moment of writing, the following additional patches over kernel-power are included:

* A set of patches from the -ck kernel patchset. These patches are designed to lighten the VM load and improve the desktop (i.e. non-server) Linux experience, with an emphasis on responsiveness. For example, one patch enables the kernel to identify large files that are unlikely to be fully cached in RAM. These files will then be the first thing to evict next time RAM is needed.
* The BFQ I/O scheduler (experimental)
* Support for the Reiser4 filesystem. This is an advanced filesystem with featured like transparent lzo/gzip compression.
* [http://git.infradead.org/users/dedekind/ubifs-v2.6.28.git/shortlog Backported UBIFS patches] for the Linux 2.6.28 kernel (not yet in kernel-bfs' git tree)
* A few minor fixes/enhancements

== See also ==
*[http://talk.maemo.org/showthread.php?p=1099211 talk.maemo.org: kernel-bfs discussion]
*[https://garage.maemo.org/projects/kernel-bfs/ garage.maemo.org: kernel-bfs development]
*[https://garage.maemo.org/tracker/?group_id=1886 garage.maemo.org: kernel-bfs bugtracker]

[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Kernel Power</title>
    <id>4012</id>
    <revision>
      <id>48253</id>
      <timestamp>2012-06-08T15:52:25Z</timestamp>
      <contributor>
        <username>hurrian</username>
        <id>5316</id>
      </contributor>
      <comment>Restructured and cleaned up.</comment>
      <text xml:space="preserve">The enhanced kernel &quot;kernel-power&quot; is compatible with [[Maemo_5/PR1.2|PR1.2]] and  [[Maemo_5/PR1.3|PR1.3]], contain lots of additional features (IPv6, NAT etc) and bugfixes.
The kernel can be installed via Application manager from the System section. Installation of the customization package Kernel-Power-Settings is sufficient, as it depends on the kernel page.

The custom kernel contains additional modules for IPv6, packet filtering, QoS, NAT, tunneling, kernel configuration, Wifi mesh networking, builtin ext3 for booting from other media, ext4, XFS, reiserfs, NTFS read support, ISO9660, UDF, CIFS, automounter, squashfs, unionfs, device mapper and dm-loop, cryptography, cryptoloop, EFI partitions, UTF8 codepages, mouse+joystick input, PPP, PPTP, serial support, USB hostmode (h-e-n), USB/IP and generic USB device drivers, battery info, overclocking and kexec support.

'''Note: This page is under construction and based on the [[Overclocking|overclocking/undervolting instructions]]. Hence the heavy bias to overclocking.''' For overclocking it includes a large set of possible frequencies (125 MHz-1.15 GHz) which you manually set and try out without flashing a new kernel. The defaults are set to the standard 250-600 MHz range. You can also fine tune the voltages for your device for power-saving. Every device is different.

[http://talk.maemo.org/showthread.php?t=43420 talk.maemo.org: Discussion of the enhanced kernel] 
[http://talk.maemo.org/showthread.php?t=71879: Discussion of the enhanced kernel beginning with version 47]


Changes between versions are announced on the [https://garage.maemo.org/news/?group_id=1528 garage page].

==Installing kernel-power==

'''Note:''' All commands on this page must be [[root access|run as root]] in [[terminal|X Terminal]] (install rootsh package and enter &quot;root&quot;)

'''Note: The power kernel may not be compatible with the currently-installed fcam-drivers package.''' Should you lose camera functionality, you can update them by running as root:&lt;pre&gt;apt-get install fcam-drivers&lt;/pre&gt;

===Installing the [http://maemo.org/downloads/product/Maemo5/kernel-power-flasher/ Stable Kernel]===

With this kernel you can change the frequency limits, the voltages and DSP frequencies online. It requires firmware [[Maemo 5/PR1.1|PR1.1]] or newer.
# Install the package &lt;code&gt;[http://maemo.org/downloads/product/Maemo5/kernel-power-settings/ kernel-power-settings]&lt;/code&gt; (section system in Application manager). It will automatically also install &lt;code&gt;kernel-power-flasher&lt;/code&gt;.
# Shutdown the device, and boot it up again.
# The kernel is now installed.

===Installing the Unstable Kernels===
This kernel version contains additional experimental features and patches.

Just enable the [[Extras-testing]] or [[Extras-devel]] catalogue and install according to [[#Installing the Stable Kernel|these instructions]].

Please follow the [[Help_testing_software|QA checklist]] and vote for the package to allow promotion to Extras.

=== Verifying Proper Installation === 
First verify, that the kernel is actually running:&lt;pre&gt;uname -r&lt;/pre&gt;
should return &quot;2.6.28.10power&lt;version&gt;&quot;.
If it does not, you should reboot or try to [[#Installing kernel-power|install the kernel again]].

=== Upgrade from older versions (&lt; maemo24)  ===
The kernel package was previously called &lt;code&gt;kernel-flasher-maemo&lt;/code&gt;. Unfortunately, Application Manager does not support package transitions, i.e. installation of the new version leads to conflicts with &lt;code&gt;kernel-maemo&lt;/code&gt; and &lt;code&gt;kernel-modules-maemo&lt;/code&gt;.
If you have one of the older packages installed it you need to upgrade in X Terminal.
&lt;pre&gt;root
apt-get install -y kernel-power-flasher
apt-get remove kernel-flasher-maemo
&lt;/pre&gt;
If the new kernel still doesn't boot up, try
&lt;pre&gt;apt-get install --reinstall -y kernel-power kernel-power-flasher&lt;/pre&gt;
Also try [http://talk.maemo.org/showpost.php?p=608343&amp;postcount=2603 other hints] for uninstalling the old package.

Make sure you reset &lt;code&gt;/etc/pmconfig&lt;/code&gt; to the defaults:
&lt;pre&gt;
# Power management configuration file
enable_off_mode 1
sleep_while_idle 1
sr_vdd1_autocomp 0
sr_vdd2_autocomp 0
clocks_off_while_idle 1
voltage_off_while_idle 1
scaling_governor ondemand
scaling_max_freq 600000
scaling_min_freq 125000
sleep_ind 1
&lt;/pre&gt;

===Uninstalling kernel-power===
Do not try to uninstall the &quot;kernel-power&quot; package in Application Manager!
This does not remove the kernel, as it is installed in the device's NAND.

'''You never want to uninstall a kernel''', as your device can't work without a kernel.
====Installing the Nokia Kernel with X Terminal====
The standard process for replacing the kernel is as follows:

# Ensure that you have a working Internet connection.
# Install the package '''rootsh'''. (available in the System section of the Application Manager)
# Close the Application Manager.
# Gain root permissions&lt;pre&gt;sudo gainroot&lt;/pre&gt;
# Reinstall the stock Nokia kernel&lt;pre&gt;apt-get install --reinstall -y kernel kernel-flasher&lt;/pre&gt;
# Should it complete successfully (with &quot;SIGTERM received&quot; and &quot;Image flashed successfully&quot; messages), then you can continue with &lt;pre&gt;apt-get remove -y kernel-power kernel-power-modules&lt;/pre&gt;
# After uninstallation, the command &lt;pre&gt;ls -l /lib/modules/current&lt;/pre&gt;should show: &lt;pre&gt;... /lib/modules/current -&gt; 2.6.28-omap1&lt;/pre&gt;
# Shutdown the device (without any USB cable connected) and boot again.
# The stock kernel should now be installed.

====Installing the Nokia Kernel (Graphical Method)====
If you have a recent kernel (&gt;v27), there is a &quot;Deinstall kernel&quot; application in your menu.
This application is however, still '''experimental''' (for &gt;v27 it is more stable). Only use if have can fall back to reflashing the kernel using the flasher (see below) in case of problems.
Read the instructions carefully when you start the deinstall application!

====Installing the Nokia Kernel with flasher-3.5====
If the device fails to boot or you have other problems, perform the uninstallation from a PC with USB cable and the flasher-3.5 utility:
'''NOTE''': This only works for kernel-power v28 and later. Versions prior to 28 interfere with system files, and may not work properly with the stock Nokia kernel.
# Make sure your battery is properly charged (if it fails, charge your battery)
# Execute the following on your PC (see [[Updating the firmware|this]] for more details)&lt;pre&gt;flasher-3.5 -f --flash-only=kernel -R -F &lt;firmware-image&gt;&lt;/pre&gt;
*The firmware image file could be, for example, &lt;code&gt;RX-51_2009SE_3.2010.02-8_PR_COMBINED_MR0_ARM.bin&lt;/code&gt;. This is only way of deinstallation with leaked release 1.2 firmware.

=== Upgrading to a new PR ===

Before upgrading, always make a backup. There are two ways of upgrading the firmware to a new Nokia public release (PR):
# [[Updating the firmware|reflashing the complete firmware]] via flasher or NSU. This is safest way (especially for PR1.2). In this case you simply reinstall the kernel after the upgrade. The settings should be restored by the backup application.
# Over The Air (OTA) upgrade: this upgrades only system components of your device so that you don't need to restore your settings or reinstall applications. see below

OTA upgrade:
Disable extras-devel and extras-testing. DIsable autodisconnect if is installed. Perform the upgrade. If the PR does not deliver a new kernel (PR1.1.1) then you're done. If it provides a new kernel (PR1.1 and PR1.2) then you need to reinstall the enhanced kernel with the following commands:
 root
 apt-get install --reinstall kernel-power kernel-power-modules kernel-power-flasher

=== Holding a specific kernel version ===
If your manually installed kernel should be not upgraded to the one in extras* try [http://talk.maemo.org/showpost.php?p=603915&amp;postcount=2063 this]:

&lt;pre&gt;
echo kernel-power-flasher hold | dpkg --set-selections
echo kernel-power hold | dpkg --set-selections
echo kernel-power-modules hold | dpkg --set-selections
&lt;/pre&gt;
to unlock the version:

&lt;pre&gt;
echo kernel-power-flasher install | dpkg --set-selections
echo kernel-power install | dpkg --set-selections
echo kernel-power-modules install | dpkg --set-selections
&lt;/pre&gt;

=== Issues after multiboot or Nitdroid installation ===

Multiboot changes the boot process and might not load kernel-power properly. This is not a kernel-power problem. Please read the multiboot threads or Nitdroid forums. For versions &gt;=v39 typically,
&lt;pre&gt;apt-get install kernel-power-bootimg
apt-get install --reinstall multiboot-kernel-power&lt;/pre&gt;
adds kernel-power to your boot menu.

== Features ==

=== Configuring the kernel speed/voltage settings ===

The instructions on the [[Overclocking]] page require the &lt;code&gt;kernel-power-flasher &gt;=v27&lt;/code&gt; and &lt;code&gt;kernel-power-settings &gt;=0.8&lt;/code&gt;.

If you upgraded from the old stable version the old settings should still work and be loaded during boot.

'''NOTE''': The kernel settings are not loaded after a crash. In that case the file &lt;code&gt;/etc/kernel-power/.notloaded&lt;/code&gt; is created
and a notification will be shown after booting. The settings will be loaded at the next boot again unless it crashes again.

=== Battery ===
'''bq27200.ko module conflicts with bme battery charging! A &quot;fix&quot; temporarily added to I2C driver broke system completely and thus got reverted'''
In kernels version &gt;=maemo20 you can read out the current battery info:

&lt;pre&gt;
modprobe bq27x00_battery
cat /sys/class/power_supply/bq27200-0/capacity
cat /sys/class/power_supply/bq27200-0/voltage_now
cat /sys/class/power_supply/bq27200-0/current_now
cat /sys/class/power_supply/bq27200-0/temp
cat /sys/class/power_supply/bq27200-0/charge_full
cat /sys/class/power_supply/bq27200-0/charge_full_design
cat /sys/class/power_supply/bq27200-0/charge_now
cat /sys/class/power_supply/bq27200-0/time_to_empty_avg
cat /sys/class/power_supply/bq27200-0/time_to_empty_now
cat /sys/class/power_supply/bq27200-0/time_to_full_now
&lt;/pre&gt;

*'capacity' value in percentage of battery level.
*'voltage_now' value in mV of battery voltage level.
*'current_now' value in microA of battery current consumption.
*'temp' value in degrees C of battery temperature. (&gt;= v47: in tenths of degree Celsius)

In kernel version &gt;= v47 is additional info:
*'charge_full' value in µAh - last remembered value of charge when battery became full
*'charge_full_design' value in µAh - design charge value, when battery considered full
*'charge_now' value in µAh - actual charge value
*'time_to_empty_avg' averaged value - seconds left for battery to be considered empty (i.e. while battery powers a load)
*'time_to_empty_now' seconds left for battery to be considered empty (i.e. while battery powers a load)
*'time_to_full_now' seconds left for battery to be considered full (i.e. while battery is charging)

To remove this kernel module use:

 rmmod bq27x00_battery

or reboot.

With kernel-power-settings &gt;=0.6 the module can be loaded on boot. Just execute this once:
&lt;pre&gt;root
echo bq27x00_battery &gt;&gt; /etc/modules&lt;/pre&gt;

With kernel version &gt;= v47 the bq module is automatically loaded on boot. To disable, blacklist bq27x00_battery module:
&lt;pre&gt;root
echo bq27x00_battery &gt;&gt; /etc/modprobe.d/blacklist&lt;/pre&gt;

===Mobile Hotspot===

all necessary modules are included. read [http://mobilehotspot.garage.maemo.org/ this] for more details.

===JoikuSpot=== 
seems to work.  read [http://talk.maemo.org/showpost.php?p=653966&amp;postcount=3592 this post].

Update: it doesn't work for me (recent version of Joikuspot and Maemo), ICMP and DNS resolving work OK, but TCP connections are completely freezed...If it works for you, let us know.

===CIFS Support===
You can now mount a network drive using Microsoft's CIFS protocol. To do so you need to do the following:

# Share a folder on your Windows PC, with the latest versions of Windows you will have to create a user account with a password to share a specific folder that is not the Public Library.

# Create a folder for the mount, pressumably on your /home/users/MyDocs folder, so that you could access your network drive through the file manager.

# Mount the folder on your device by typing the following into xterm under root:
&lt;pre&gt;mount -t cifs //netbiosname/sharename /media/sharename -o user=winusername,pass=winpassword,ip=destip,direct&lt;/pre&gt;

===kexec=== 

All necessary kexec patches are included. read [http://wiki.meego.com/ARM/N900/Install/kexec] and [http://lists.meego.com/pipermail/meego-dev/2010-May/002277.html this post]
for MeeGo support.

===Boot Options===

There is a separate file /etc/default/kernel-boot for extra boot options.
It requires kernel-power-settings &gt;= 0.11 and is disabled by default.
These two options are experimental and may brick your device!
Just install the template with the following commands and edit it (by default the options are disabled)
 root
 cp /usr/share/kernel-power-settings/boot /etc/default/kernel-boot

The default template looks like this
&lt;pre&gt;# start USB networking and sshd early during boot
EARLY_SSH=0
# fsck of /home partition before mounting?
# 1=if necessary, force=always check
FSCK_HOME=0&lt;/pre&gt;

====Filesystem Checking and Repair, and pre-mount Scripts====

See above for enabling this feature.
The following operations are performed before mounting /home:

# If you have a script (e.g. for repartitiong) called /etc/kernel-power/pre-mount.once it will be executed once and then moved away.
# if FSCK_HOME is enabled the /home partition (first ext3 on eMMC) will be fscked on boot.
Alternatively,
&lt;pre&gt;root
echo 1 &gt; /etc/kernel-power/force_fsck&lt;/pre&gt;
should check it only during next boot.
&lt;pre&gt;root
echo 0 &gt; /etc/kernel-power/force_fsck&lt;/pre&gt;
disables it only for the next boot.
If you reset or reboot the device during fsck, it will not fsck (only) during the next boot. All messages are logged to &lt;code&gt;/etc/kernel-power/pre-mount.log&lt;/code&gt;

===IPv6=== 

IPv6 support is enabled and many users are successfully using it.
Note however, not all applications are IPv6 compatible.

So far, it has been successfully used with Chromium and Firefox out of the box.  To run with the MicroB browser, you need to change one of the settings.

The setting is 'network.dns.disableIPv6' in about:config. When set to false, IPv6 just works when the phone has IPv6 connectivity.

IPv6 has also been used successfully with ssh and sshd.

Please share additional experiences here.

===PPTP===
[http://talk.maemo.org/showthread.php?t=36172 tutorial]

===Kismet===
[http://david.gnedt.eu/blog/2010/05/11/kismet-fully-functional-monitor-mode-for-the-n900/ tutorial] and
[http://talk.maemo.org/showthread.php?t=52393 TMO thread]

===Other Filesystems===
The kernel includes support for many alternative filesystems, including ext4 bugfixes and large file support.
You might want to repartition your eMMC or SD card with [[Repartitioning_the_flash]].

==Notes==

# even if 125 Mhz is disabled, the telephone app will always try to set the minimum freq. to 125 Mhz after a phone call, but it is ignored unless you enable 125 Mhz.
# if you enable 125 MHz also set  &quot;&lt;code&gt;echo 1 &gt; /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load&lt;/code&gt;&quot; [http://talk.maemo.org/showpost.php?p=602687&amp;postcount=185 hint]
# [http://talk.maemo.org/showpost.php?p=597703&amp;postcount=141 the 125 MHz issue]
# Installing another version of the enhanced kernel will just overwrite the older version. The stock kernel modules are preserved so that you can simply reflash the stock kernel via USB.
# The kernel supports 125 MHz but this frequency is [http://talk.maemo.org/showpost.php?p=617488&amp;postcount=3095 disabled by default] in avoid_frequencies. In version &lt;25, it is enabled by specifying &quot;124999&quot;, in later versions it is disabled in ''&lt;code&gt;/sys/devices/system/cpu/cpu0/cpufreq/ondemand/avoid_frequencies&lt;/code&gt;'' and can be enabled with: &lt;pre&gt;echo &gt; /sys/devices/system/cpu/cpu0/cpufreq/ondemand/avoid_frequencies&lt;/pre&gt;similarily, individual frequencies can be disabled in &gt;=v25:&lt;pre&gt;echo 125000 250000 750000 &gt; /sys/devices/system/cpu/cpu0/cpufreq/ondemand/avoid_frequencies&lt;/pre&gt;

[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Kernel Power</title>
    <id>4012</id>
    <revision>
      <id>48253</id>
      <timestamp>2012-06-08T15:52:25Z</timestamp>
      <contributor>
        <username>hurrian</username>
        <id>5316</id>
      </contributor>
      <comment>Restructured and cleaned up.</comment>
      <text xml:space="preserve">The enhanced kernel &quot;kernel-power&quot; is compatible with [[Maemo_5/PR1.2|PR1.2]] and  [[Maemo_5/PR1.3|PR1.3]], contain lots of additional features (IPv6, NAT etc) and bugfixes.
The kernel can be installed via Application manager from the System section. Installation of the customization package Kernel-Power-Settings is sufficient, as it depends on the kernel page.

The custom kernel contains additional modules for IPv6, packet filtering, QoS, NAT, tunneling, kernel configuration, Wifi mesh networking, builtin ext3 for booting from other media, ext4, XFS, reiserfs, NTFS read support, ISO9660, UDF, CIFS, automounter, squashfs, unionfs, device mapper and dm-loop, cryptography, cryptoloop, EFI partitions, UTF8 codepages, mouse+joystick input, PPP, PPTP, serial support, USB hostmode (h-e-n), USB/IP and generic USB device drivers, battery info, overclocking and kexec support.

'''Note: This page is under construction and based on the [[Overclocking|overclocking/undervolting instructions]]. Hence the heavy bias to overclocking.''' For overclocking it includes a large set of possible frequencies (125 MHz-1.15 GHz) which you manually set and try out without flashing a new kernel. The defaults are set to the standard 250-600 MHz range. You can also fine tune the voltages for your device for power-saving. Every device is different.

[http://talk.maemo.org/showthread.php?t=43420 talk.maemo.org: Discussion of the enhanced kernel] 
[http://talk.maemo.org/showthread.php?t=71879: Discussion of the enhanced kernel beginning with version 47]


Changes between versions are announced on the [https://garage.maemo.org/news/?group_id=1528 garage page].

==Installing kernel-power==

'''Note:''' All commands on this page must be [[root access|run as root]] in [[terminal|X Terminal]] (install rootsh package and enter &quot;root&quot;)

'''Note: The power kernel may not be compatible with the currently-installed fcam-drivers package.''' Should you lose camera functionality, you can update them by running as root:&lt;pre&gt;apt-get install fcam-drivers&lt;/pre&gt;

===Installing the [http://maemo.org/downloads/product/Maemo5/kernel-power-flasher/ Stable Kernel]===

With this kernel you can change the frequency limits, the voltages and DSP frequencies online. It requires firmware [[Maemo 5/PR1.1|PR1.1]] or newer.
# Install the package &lt;code&gt;[http://maemo.org/downloads/product/Maemo5/kernel-power-settings/ kernel-power-settings]&lt;/code&gt; (section system in Application manager). It will automatically also install &lt;code&gt;kernel-power-flasher&lt;/code&gt;.
# Shutdown the device, and boot it up again.
# The kernel is now installed.

===Installing the Unstable Kernels===
This kernel version contains additional experimental features and patches.

Just enable the [[Extras-testing]] or [[Extras-devel]] catalogue and install according to [[#Installing the Stable Kernel|these instructions]].

Please follow the [[Help_testing_software|QA checklist]] and vote for the package to allow promotion to Extras.

=== Verifying Proper Installation === 
First verify, that the kernel is actually running:&lt;pre&gt;uname -r&lt;/pre&gt;
should return &quot;2.6.28.10power&lt;version&gt;&quot;.
If it does not, you should reboot or try to [[#Installing kernel-power|install the kernel again]].

=== Upgrade from older versions (&lt; maemo24)  ===
The kernel package was previously called &lt;code&gt;kernel-flasher-maemo&lt;/code&gt;. Unfortunately, Application Manager does not support package transitions, i.e. installation of the new version leads to conflicts with &lt;code&gt;kernel-maemo&lt;/code&gt; and &lt;code&gt;kernel-modules-maemo&lt;/code&gt;.
If you have one of the older packages installed it you need to upgrade in X Terminal.
&lt;pre&gt;root
apt-get install -y kernel-power-flasher
apt-get remove kernel-flasher-maemo
&lt;/pre&gt;
If the new kernel still doesn't boot up, try
&lt;pre&gt;apt-get install --reinstall -y kernel-power kernel-power-flasher&lt;/pre&gt;
Also try [http://talk.maemo.org/showpost.php?p=608343&amp;postcount=2603 other hints] for uninstalling the old package.

Make sure you reset &lt;code&gt;/etc/pmconfig&lt;/code&gt; to the defaults:
&lt;pre&gt;
# Power management configuration file
enable_off_mode 1
sleep_while_idle 1
sr_vdd1_autocomp 0
sr_vdd2_autocomp 0
clocks_off_while_idle 1
voltage_off_while_idle 1
scaling_governor ondemand
scaling_max_freq 600000
scaling_min_freq 125000
sleep_ind 1
&lt;/pre&gt;

===Uninstalling kernel-power===
Do not try to uninstall the &quot;kernel-power&quot; package in Application Manager!
This does not remove the kernel, as it is installed in the device's NAND.

'''You never want to uninstall a kernel''', as your device can't work without a kernel.
====Installing the Nokia Kernel with X Terminal====
The standard process for replacing the kernel is as follows:

# Ensure that you have a working Internet connection.
# Install the package '''rootsh'''. (available in the System section of the Application Manager)
# Close the Application Manager.
# Gain root permissions&lt;pre&gt;sudo gainroot&lt;/pre&gt;
# Reinstall the stock Nokia kernel&lt;pre&gt;apt-get install --reinstall -y kernel kernel-flasher&lt;/pre&gt;
# Should it complete successfully (with &quot;SIGTERM received&quot; and &quot;Image flashed successfully&quot; messages), then you can continue with &lt;pre&gt;apt-get remove -y kernel-power kernel-power-modules&lt;/pre&gt;
# After uninstallation, the command &lt;pre&gt;ls -l /lib/modules/current&lt;/pre&gt;should show: &lt;pre&gt;... /lib/modules/current -&gt; 2.6.28-omap1&lt;/pre&gt;
# Shutdown the device (without any USB cable connected) and boot again.
# The stock kernel should now be installed.

====Installing the Nokia Kernel (Graphical Method)====
If you have a recent kernel (&gt;v27), there is a &quot;Deinstall kernel&quot; application in your menu.
This application is however, still '''experimental''' (for &gt;v27 it is more stable). Only use if have can fall back to reflashing the kernel using the flasher (see below) in case of problems.
Read the instructions carefully when you start the deinstall application!

====Installing the Nokia Kernel with flasher-3.5====
If the device fails to boot or you have other problems, perform the uninstallation from a PC with USB cable and the flasher-3.5 utility:
'''NOTE''': This only works for kernel-power v28 and later. Versions prior to 28 interfere with system files, and may not work properly with the stock Nokia kernel.
# Make sure your battery is properly charged (if it fails, charge your battery)
# Execute the following on your PC (see [[Updating the firmware|this]] for more details)&lt;pre&gt;flasher-3.5 -f --flash-only=kernel -R -F &lt;firmware-image&gt;&lt;/pre&gt;
*The firmware image file could be, for example, &lt;code&gt;RX-51_2009SE_3.2010.02-8_PR_COMBINED_MR0_ARM.bin&lt;/code&gt;. This is only way of deinstallation with leaked release 1.2 firmware.

=== Upgrading to a new PR ===

Before upgrading, always make a backup. There are two ways of upgrading the firmware to a new Nokia public release (PR):
# [[Updating the firmware|reflashing the complete firmware]] via flasher or NSU. This is safest way (especially for PR1.2). In this case you simply reinstall the kernel after the upgrade. The settings should be restored by the backup application.
# Over The Air (OTA) upgrade: this upgrades only system components of your device so that you don't need to restore your settings or reinstall applications. see below

OTA upgrade:
Disable extras-devel and extras-testing. DIsable autodisconnect if is installed. Perform the upgrade. If the PR does not deliver a new kernel (PR1.1.1) then you're done. If it provides a new kernel (PR1.1 and PR1.2) then you need to reinstall the enhanced kernel with the following commands:
 root
 apt-get install --reinstall kernel-power kernel-power-modules kernel-power-flasher

=== Holding a specific kernel version ===
If your manually installed kernel should be not upgraded to the one in extras* try [http://talk.maemo.org/showpost.php?p=603915&amp;postcount=2063 this]:

&lt;pre&gt;
echo kernel-power-flasher hold | dpkg --set-selections
echo kernel-power hold | dpkg --set-selections
echo kernel-power-modules hold | dpkg --set-selections
&lt;/pre&gt;
to unlock the version:

&lt;pre&gt;
echo kernel-power-flasher install | dpkg --set-selections
echo kernel-power install | dpkg --set-selections
echo kernel-power-modules install | dpkg --set-selections
&lt;/pre&gt;

=== Issues after multiboot or Nitdroid installation ===

Multiboot changes the boot process and might not load kernel-power properly. This is not a kernel-power problem. Please read the multiboot threads or Nitdroid forums. For versions &gt;=v39 typically,
&lt;pre&gt;apt-get install kernel-power-bootimg
apt-get install --reinstall multiboot-kernel-power&lt;/pre&gt;
adds kernel-power to your boot menu.

== Features ==

=== Configuring the kernel speed/voltage settings ===

The instructions on the [[Overclocking]] page require the &lt;code&gt;kernel-power-flasher &gt;=v27&lt;/code&gt; and &lt;code&gt;kernel-power-settings &gt;=0.8&lt;/code&gt;.

If you upgraded from the old stable version the old settings should still work and be loaded during boot.

'''NOTE''': The kernel settings are not loaded after a crash. In that case the file &lt;code&gt;/etc/kernel-power/.notloaded&lt;/code&gt; is created
and a notification will be shown after booting. The settings will be loaded at the next boot again unless it crashes again.

=== Battery ===
'''bq27200.ko module conflicts with bme battery charging! A &quot;fix&quot; temporarily added to I2C driver broke system completely and thus got reverted'''
In kernels version &gt;=maemo20 you can read out the current battery info:

&lt;pre&gt;
modprobe bq27x00_battery
cat /sys/class/power_supply/bq27200-0/capacity
cat /sys/class/power_supply/bq27200-0/voltage_now
cat /sys/class/power_supply/bq27200-0/current_now
cat /sys/class/power_supply/bq27200-0/temp
cat /sys/class/power_supply/bq27200-0/charge_full
cat /sys/class/power_supply/bq27200-0/charge_full_design
cat /sys/class/power_supply/bq27200-0/charge_now
cat /sys/class/power_supply/bq27200-0/time_to_empty_avg
cat /sys/class/power_supply/bq27200-0/time_to_empty_now
cat /sys/class/power_supply/bq27200-0/time_to_full_now
&lt;/pre&gt;

*'capacity' value in percentage of battery level.
*'voltage_now' value in mV of battery voltage level.
*'current_now' value in microA of battery current consumption.
*'temp' value in degrees C of battery temperature. (&gt;= v47: in tenths of degree Celsius)

In kernel version &gt;= v47 is additional info:
*'charge_full' value in µAh - last remembered value of charge when battery became full
*'charge_full_design' value in µAh - design charge value, when battery considered full
*'charge_now' value in µAh - actual charge value
*'time_to_empty_avg' averaged value - seconds left for battery to be considered empty (i.e. while battery powers a load)
*'time_to_empty_now' seconds left for battery to be considered empty (i.e. while battery powers a load)
*'time_to_full_now' seconds left for battery to be considered full (i.e. while battery is charging)

To remove this kernel module use:

 rmmod bq27x00_battery

or reboot.

With kernel-power-settings &gt;=0.6 the module can be loaded on boot. Just execute this once:
&lt;pre&gt;root
echo bq27x00_battery &gt;&gt; /etc/modules&lt;/pre&gt;

With kernel version &gt;= v47 the bq module is automatically loaded on boot. To disable, blacklist bq27x00_battery module:
&lt;pre&gt;root
echo bq27x00_battery &gt;&gt; /etc/modprobe.d/blacklist&lt;/pre&gt;

===Mobile Hotspot===

all necessary modules are included. read [http://mobilehotspot.garage.maemo.org/ this] for more details.

===JoikuSpot=== 
seems to work.  read [http://talk.maemo.org/showpost.php?p=653966&amp;postcount=3592 this post].

Update: it doesn't work for me (recent version of Joikuspot and Maemo), ICMP and DNS resolving work OK, but TCP connections are completely freezed...If it works for you, let us know.

===CIFS Support===
You can now mount a network drive using Microsoft's CIFS protocol. To do so you need to do the following:

# Share a folder on your Windows PC, with the latest versions of Windows you will have to create a user account with a password to share a specific folder that is not the Public Library.

# Create a folder for the mount, pressumably on your /home/users/MyDocs folder, so that you could access your network drive through the file manager.

# Mount the folder on your device by typing the following into xterm under root:
&lt;pre&gt;mount -t cifs //netbiosname/sharename /media/sharename -o user=winusername,pass=winpassword,ip=destip,direct&lt;/pre&gt;

===kexec=== 

All necessary kexec patches are included. read [http://wiki.meego.com/ARM/N900/Install/kexec] and [http://lists.meego.com/pipermail/meego-dev/2010-May/002277.html this post]
for MeeGo support.

===Boot Options===

There is a separate file /etc/default/kernel-boot for extra boot options.
It requires kernel-power-settings &gt;= 0.11 and is disabled by default.
These two options are experimental and may brick your device!
Just install the template with the following commands and edit it (by default the options are disabled)
 root
 cp /usr/share/kernel-power-settings/boot /etc/default/kernel-boot

The default template looks like this
&lt;pre&gt;# start USB networking and sshd early during boot
EARLY_SSH=0
# fsck of /home partition before mounting?
# 1=if necessary, force=always check
FSCK_HOME=0&lt;/pre&gt;

====Filesystem Checking and Repair, and pre-mount Scripts====

See above for enabling this feature.
The following operations are performed before mounting /home:

# If you have a script (e.g. for repartitiong) called /etc/kernel-power/pre-mount.once it will be executed once and then moved away.
# if FSCK_HOME is enabled the /home partition (first ext3 on eMMC) will be fscked on boot.
Alternatively,
&lt;pre&gt;root
echo 1 &gt; /etc/kernel-power/force_fsck&lt;/pre&gt;
should check it only during next boot.
&lt;pre&gt;root
echo 0 &gt; /etc/kernel-power/force_fsck&lt;/pre&gt;
disables it only for the next boot.
If you reset or reboot the device during fsck, it will not fsck (only) during the next boot. All messages are logged to &lt;code&gt;/etc/kernel-power/pre-mount.log&lt;/code&gt;

===IPv6=== 

IPv6 support is enabled and many users are successfully using it.
Note however, not all applications are IPv6 compatible.

So far, it has been successfully used with Chromium and Firefox out of the box.  To run with the MicroB browser, you need to change one of the settings.

The setting is 'network.dns.disableIPv6' in about:config. When set to false, IPv6 just works when the phone has IPv6 connectivity.

IPv6 has also been used successfully with ssh and sshd.

Please share additional experiences here.

===PPTP===
[http://talk.maemo.org/showthread.php?t=36172 tutorial]

===Kismet===
[http://david.gnedt.eu/blog/2010/05/11/kismet-fully-functional-monitor-mode-for-the-n900/ tutorial] and
[http://talk.maemo.org/showthread.php?t=52393 TMO thread]

===Other Filesystems===
The kernel includes support for many alternative filesystems, including ext4 bugfixes and large file support.
You might want to repartition your eMMC or SD card with [[Repartitioning_the_flash]].

==Notes==

# even if 125 Mhz is disabled, the telephone app will always try to set the minimum freq. to 125 Mhz after a phone call, but it is ignored unless you enable 125 Mhz.
# if you enable 125 MHz also set  &quot;&lt;code&gt;echo 1 &gt; /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load&lt;/code&gt;&quot; [http://talk.maemo.org/showpost.php?p=602687&amp;postcount=185 hint]
# [http://talk.maemo.org/showpost.php?p=597703&amp;postcount=141 the 125 MHz issue]
# Installing another version of the enhanced kernel will just overwrite the older version. The stock kernel modules are preserved so that you can simply reflash the stock kernel via USB.
# The kernel supports 125 MHz but this frequency is [http://talk.maemo.org/showpost.php?p=617488&amp;postcount=3095 disabled by default] in avoid_frequencies. In version &lt;25, it is enabled by specifying &quot;124999&quot;, in later versions it is disabled in ''&lt;code&gt;/sys/devices/system/cpu/cpu0/cpufreq/ondemand/avoid_frequencies&lt;/code&gt;'' and can be enabled with: &lt;pre&gt;echo &gt; /sys/devices/system/cpu/cpu0/cpufreq/ondemand/avoid_frequencies&lt;/pre&gt;similarily, individual frequencies can be disabled in &gt;=v25:&lt;pre&gt;echo 125000 250000 750000 &gt; /sys/devices/system/cpu/cpu0/cpufreq/ondemand/avoid_frequencies&lt;/pre&gt;

[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Kernel power</title>
    <id>5188</id>
    <revision>
      <id>47784</id>
      <timestamp>2012-05-29T21:40:39Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>Redirecting to [[Kernel Power]]</comment>
      <text xml:space="preserve">#REDIRECT [[Kernel Power]]</text>
    </revision>
  </page>
  <page>
    <title>Killer Apps</title>
    <id>3269</id>
    <revision>
      <id>25308</id>
      <timestamp>2009-12-29T17:38:07Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Killer Apps]] moved to [[Killer apps]]: capitalisation</comment>
      <text xml:space="preserve">#REDIRECT [[Killer apps]]</text>
    </revision>
  </page>
  <page>
    <title>Killer apps</title>
    <id>1280</id>
    <revision>
      <id>40929</id>
      <timestamp>2010-12-28T08:17:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* New Applications */ wikify slightly</comment>
      <text xml:space="preserve">See also the [[Task:Remarkable_community_projects]] and [[Fremantle Stars]].

= What is a Killer App? =

Before we decide what suits the definition we must define the definition. Therefore, we answer the question: ''what is a killer application?'' The Nokia Internet Tablet is versatile and flexible. It allows the user to run applications from a wide pool unlike most other platforms. A killer app(lication) is an application which adds substantial value to the NIT making the purchase of the NIT (more) worthwhile. Imagine an internet tablet without a browser. A newly added (good) browser for this internet tablet would potentially be defined as ''a killer app'' because it allows the user to do something worthwhile (surfing the web) which task she was otherwise unable to perform on the NIT. Please note that the application doesn't have to necessarily be popular or cater to the masses.

= Killer Applications for the next Nokia internet tablet (and for the current one too) =

Following on from Quim's calling out for ideas about applications which should be pushed by Nokia as part of the release of the next tablet and Fremantle software release, we should have a think about what would make a killer app. Please be fairly realistic.

To those submitting ideas - please give as full an explanation of the idea as you can. To everyone else, please comment if something similar already exists, any problems or added features you think might be cool, etc.

'''To everyone, please give your name &amp; time/date of your comment/addition'''

== New Applications ==

* Photogrammetry: For a system with a built-in camera such as the N900 and others, a program to image and quantify objects seen through the camera would make the device extremely useful for performing onsite measurements and even (possibly) to make 3D models of objects. Such a program as http://insight3d.sourceforge.net/ is limited to images but with the built-in camera this could be done in real-time. Even just a simple app to show distances and/or single dimensions would be nice. --[[User:theonelaw|theonelaw]] 2010.12.26+23:49UTC.
* Handwriting recognition: From what I hear some of the older models (e.g. 770) had this. Handwriting is much faster than typing, so it would be great if this could be implemented (perhaps by modifying the virtual keyboard?)
* games: could astraware be persuaded to port some of their games to Qt? there are some cracking games and I would be very happy to pay their very reasonable license fees.
* usenet reader with offline storage. could this be added to either the mail application or maybe the RSS reader could be adapted? Dejanews might cut this for now. There are various good news readers (even in GTK2) for Linux; e.g. Pan. For binary downloading there is NNTPGrab, but requires a lot of I/O.
* sportstracker - http://sportstracker.nokia.com - port the S60 application to the tablet!
::Ecoach does similar function to sportstracker. Take a look: http://maemo.org/downloads/product/OS2008/ecoach/
::Doesn't do the google maps mashup or the sharing.
* offline/online calendar and notes application (see google, yahoo, ovi or any other service)
::This exists: mcalendar - khertan is building it :) (url here: https://garage.maemo.org/projects/mcalendar/)
::''mCalendar is an simple editable agenda summary, NOT a calendar app (e.g. month view?).  We need much more.''
:::''Compare to Agendus on Palm or Pocket Informant on WinMo. Add syncing to those to get a killer app.''
:::mCalendar isn't a simple editable agenda summary, it a calendar app. Maybe not like you like it, for example i don't like Agendus.''
:::''Anyway, this is my point of view, and i post this to say that yes. Event of a months is displayed in list at this time,''
:::''but as many users ask it, i m currently writing a month view like the one on Palm.''
:::''The Main features is :''
::::'' - Usable with finger only''
::::'' - Using alarmd so alarms works when device is shutdown or sleeping''
::::'' - Google Sync ''

Let's take this to the discussion page...

* a good/intuitive/smart etc ... alarm clock (custom alarm sounds?)
::This one now also exists/is in active development (just going through the final stages of testing at time of writing): See FlipClock in the maemo Garage or extras-devel repository:
[https://garage.maemo.org/projects/flipclock/ https://garage.maemo.org/projects/flipclock/ FlipClock Garage Page]
::(Currently utilizes native alarmD stuff just like the built in clock, but allows for nice large clock display, custom alarm sounds, power management, etc)
* Tube (underground) map with routing, timetable and journey times (could also apply for overground trains). Add feature to go from closest station (gps, etc) to somewhere. --[[User:lardman|lardman]] 23 Oct 2008 17:47 BST
::''metromap (in Garage) does this for tube/underground journeys quite nicely. A later version allows you to select from a tube map. 
:::Will upload that one. Is for multiple cities, see here: http://metromap.antex.ru/ --[[User:lardman|lardman]] 29 Oct 2008 09:32 UTC''
::Live views of train times and delays. In the UK these are available from the National Rail Website, so adding a bookmark might be sufficient. --[[User:alan_peery|alan_peery]] 18:05, 31 December 2008 (UTC)
* Touchscreen PIM; a PIM usable with fingers.
* A GTD-style application similar to iGTD for the Mac.
::Zim-like deep/wiki note app is a killer app in this market ''if'' it implements a killer UI. A portable device that uses gestures, keyboard, camera, mic and even accelerometer (motion) as inputs to take and organize notes quickly and effortlessly would be '''the''' killer device for many, many people. It would create a whole new market...--[[User:flandry|flandry]] 17:34, 6 October 2009 (UTC)
* MobileOrg like UI to emacs org files (see http://mobileorg.ncogni.to/ ) --[[User:sami00sami|sami00sami]] 23:18, 9 December 2009 (UTC)
* Touchscreen browser; Fennec?
* Full phone integration over bluetooth. The NIT can fully remote a phone (and act like one), plus some other features like recording, playback? Imagine a scenario in which you have a slim phone (6500 or 5310 - or better) forgotten in a pocket and you can make all the calls/management etc, etc just using the NIT. --[[User:iancumihai|iancumihai]] 24 Oct 2008 10:23 EEST
* Not sure how it can be implemented, but would be very convenient to be able to sync the contacts between the NIT and BT-phones and laptops. I was shocked to see that I can't push my contacts from Mac to N810 (especially after using S60 phones for a while). --[[User:stangri|stangri]] 24 Oct 2008 01:45 PST.
::You'd need some kind of advanced SyncML framework, and/or iCal support. Former is 3rd party for current Maemo versions. Latter will be included in Fremantle. Nice GUI like [http://code.google.com/p/bergamot/wiki/Swim Swim for Symbian]--[[User:allnameswereout|allnameswereout]] 13:23, 11 January 2009 (UTC)
* Would also be great to see support for PPTP VPN built-in, like Windows and Mac OS X do. --[[User:stangri|stangri]] 24 Oct 2008 01:45 PST.
* Finally, an alternative GPS-navigation application would be great. And not just the mapping application, but the navigational one, which could plan the route from point to point, ideally have a database of POIs, etc. And do it all not depending on the WiFi/GSM connections. Maybe Nokia/Garmin can support Navit GPS project. --[[User:stangri|stangri]] 4 Nov 2008 03:14 PST.
** Maemo Mapper, if it has a more intuitive / touch screen based interface suitable for new NIT users.
*** If the Maemo Mapper comment was a response to the request for an alternative navigation app -- I've expanded the request above.  --[[User:stangri|stangri]] 4 Nov 2008 03:14 PST.
* ability to send a document as a fax using a bluetooth connection to a phone, or usb(host) to serial adaptor to serial modem. yes, there are people in the world who still use fax machines. this could be an add-on to file manager's &quot;send&quot; function!

== Existing applications which would need work/tweaks ==

=== calendar ===
Should have an option to repeat an event daily.
Also should have an option to edit a single occurrence of a repeating event

Alarms shouldt't only be set by time an date.
It should be possible o activate an event while getting X meters to an gps position (buy milk if you get to a shop).
Also should there be the posibility to get a reminder to anything if a custom contact is ringing (remeber to ask mom for the book).
Also combined things would be great (if i ever get to munich, than call sandra and bring her this present).

=== contacts ===
should synchronise with window's address book, exchange data with winmobe, palm and blackberry... needs pluggable messaging functions so can be extended by third parties, just like the IM client's telepathy suite.
also it should sync with system independet desktop clients like thunderbird and so on. therefore the syncml client should worked over.

=== kismet ===
hopefully the open-source driver will make a proper version of kismet work. also see Mickey Lauer's Wellenreiter which is a very nice tool for scanning wifi networks. It's not just for blackhats, we whitehats use them to watch out for unauthorised access points connected at work (yes, this really does happen!).

=== pluggable codecs in media player ===

current media player should have pluggable codecs - use the mplayer ones? - to support flac, ogg, dirac, various WMV and ASX flavours.

( http://maemo.org/downloads/product/Maemo5/decoders-support/ anyone? )

=== maemo-barcode ===
--[[User:lardman|lardman]] 23 Oct 2008 16:00 BST

Use camera to scan 1D barcodes; automatically lookup barcode information on the web - provide description, prices and places to buy; for things like CDs and DVD provide track listings, reviews, etc.

Maintain a number of database tables (wishlist items, shopping list, currently owned items - I have troubles with books, I can never remember which I have, must be getting old ;)) 

Expand to scan datamatrix and QRcode 2D barcodes (and pdf417 stacked 1D barcodes) - these can contain text, urls (in which case allow the user to open a browser to the scanned url), etc.

(An existing hardware project is mentioned on Thinkgeek; this is however quite pricey.)

=== mplayer ===
add a touch interface for mplayer (progress bar, volume control) - iphone like&lt;br&gt;

: I don't see why this would be a killer app, can you explain? It also sounds more like a port to me than a maemo-specific app (and who wrote this idea too?) --[[User:lardman|lardman]] 23 Oct 2008 16:36 BST
:: I I should add that applications such as Canola and Kagu exist with pretty iPhone-like interfaces and use mplayer as their backend, is there something missing from these apps that this proposal would bring? --[[User:lardman|lardman]] 23 Oct 2008 16:45 BST
: right it's a port (sorry, you can move it. this is what i mean [http://images.apple.com/iphone/features/images/main_youtube20080609.jpg scroll+volume as overlay]. i dont' quite like a mplayer canvas resize while controling the video.

''how about kmplayer? needs a re-skin to be touch friendly.''

=== mYTube ===
ui and other improvements. with a better mplayer (see the touch interface suggestion) the user experience will change.

=== Tear ===
Tear (a currently beta WebKit browser) will be modified to use a more finger-friendly Clutter GUI (or maybe not Clutter, I'll think of how to support both Fremantle and at least Diablo) after the release of a more final SDK.

=== Carman ===
Doesn't officially support much (OBD-II compatible hardware) yet even though these support BlueTooth 1.2, 2.0 or USB.
:Is this really a killer app? I can't see many people using it TBH --[[User:Lardman|Lardman]] 29 Oct 2008 09:35 UTC
:I would use this constantly. I always have my cell when in my car.  Integrating GPS, tracking, and engine stats would rock. --[[User:Woody14619|Woody14619]]

== Emulators ==

===Symbian/UIQ/S60===

:This is unrealistic and equally, is it really something people would consider to be a killer app? What does the S60 have that we couldn't write natively? --[[User:Lardman|Lardman]] 29 Oct 2008 09:37 UTC

::Complex topic. There are tons of + and - on either side. I'll give one example though: navigation software. On S60 you can pick Garmin, Wayfinder, Nokia Maps, McGriver, Google Maps, TomTom Navigator... you name it. Yes, most are proprietary. Able to run your application on the NIT which you previously ran on S60 while you own a legal license is awesome though.--[[User:allnameswereout|allnameswereout]] 13:17, 11 January 2009 (UTC)

===Windows Mobile/PocketPC/WinCE===
probably very difficult to do, and would probably violate all of MS's licensing

=== Palm Virtual Machine ===
it's a really neat package and one which many people overlook. What would be good is if the Palm vm could communicate with the N800 to exchange stuff, e.g. contact information, share a file store (even if only one way). Perhaps if the virtual palm had a virtual network device (like wifi on palm TX) it could communicate that way?

:It turns out that it is possible to let Garnet VM see an SD card. See [http://talk.maemo.org/showpost.php?p=278053&amp;postcount=28]. With this setup you can share data via files, and also install Palm applications on a card.

=== Android ===
It's a subset of Java (so that's the first hurdle), but getting Android apps running would open the entire Android appstore up to Maemo devices. That's the killer app that would establish the platform.

It's mostly open source and shares the same kernel, so the only real stumbling block is hooking up the UI to the underlying Maemo UI and enabling the hardware devices. (I make that sound so trivial).

[[Category:Community]]

[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Knots</title>
    <id>1414</id>
    <revision>
      <id>21344</id>
      <timestamp>2009-10-29T15:52:48Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>Redirecting to [[Knots2]]</comment>
      <text xml:space="preserve">#REDIRECT [[Knots2]]</text>
    </revision>
  </page>
  <page>
    <title>Knots2</title>
    <id>2389</id>
    <revision>
      <id>49891</id>
      <timestamp>2012-09-25T20:30:02Z</timestamp>
      <contributor>
        <ip>86.50.113.147</ip>
      </contributor>
      <comment>Added info about a working repository.</comment>
      <text xml:space="preserve">'''NOTICE! It seems VLC 1.1 was released with broken asf muxing and subtitles stopped working too, so don't upgrade from 1.0.6. You can use [http://downloads.sourceforge.net/portableapps/VLCPortable_1.0.5.paf.exe?download VLC Portable] too. Just copy it to Knots/win32 folder and change the path in settings.

Knots is a Media streaming application for Windows, Mac OS X, Linux and FreeBSD. It allows you to access your desktop computer media collection from anywhere with a browser or using the client available for [[Nokia N900]] and N8x0 internet tablets. Media streaming and transcoding is handled by the excellent [http://www.videolan.org VLC]. Adobe Flash-plugin or VLC browser plugin is needed for browsers that don't support Theora video codec.

Please note that transcoding requires a lot of CPU power and enough memory, especially if source material is high definition quality. If your CPU has several cores and decent amount of memory, you may be able to view 1080p material on your Nokia without the need to re-encode them first.

== Features ==

* Fully thumb driven UI
* Stream videos with on-the-fly transcoding to a Knots client or to a remote computer via the web-frontend. Seeking is supported when possible.
* Stream VDR/Dreambox Live-TV and recordings
* Stream MythTV recordings
* Automatic subtitle fetching for movies, provided by http://www.opensubtitles.org
* Additional info for movies, provided by http://themoviedb.org

== Quick setup guide ==

# Download and install VLC media player and the server software (see below).
# Start the server
# Open a browser (Firefox, Chrome, Safari, not IE) and enter address http://localhost:1978/
# Click on the status tab and make sure VLC is running. If it isn't,  make sure the path to vlc.exe executable is correct under 'settings' tab. Save settings and restart server.
# Click on the 'collection' tab, add the folders that contain your media to the list and click on 'update collection' button. Wait until scan is finished.
# Install client and start it. You should be automatically connected and able to listen/view your media.

'''If you want to be able to view media outside your home, through 3G for example, do the following:'''

# Click on settings tab and add a new user. Click on the username that appears on the list, set role to admin, add a password and save the user. Then set &quot;Use authentication without SSL&quot; to yes and save settings. Enter your admin username and password to login.
# Click on settings tab and enable remote discovery. You can use the same username and password you used to authenticate to server if you wish, but they can differ.
# Once you have enabled remote discovery, you need to open access to your computer. If it's directly connected to internet, open ports 1978, 19780-19790. If you use a wireless router or similar, consult the manual on how to do port forwarding. Forward ports 1978 and 19780-19790 to your computer.
# Once you have opened access to your computer, you can playback a video using the browser, click on the 'Hide window' button, click on settings tab and click on 'Check server accessibility from the internet' button. You should see a message saying everything is setup correctly if all is ok.
# Then finally open the client, click on window title bar, click on 'Remote discovery' and authenticate with your remote discovery username and password. If authentication succeeds, you should be able to access your computer automatically from outside your network even if your computer has dynamic ip address.
#* Please note that for watching video through 3G you need to lower the video quality a lot. You can try the Nokia N8x0 profile first and lower bitrate and resolution until it plays without glitches. You also need to have enough upload speed on your internet connection.

==Installation==

To get Knots running, some dependencies have to be met. After that, the server package and the tablet client must be installed. The following steps will guide you in those tasks.

===Dependencies===

Knots server uses [http://www.videolan.org/vlc/ VLC] for streaming and [http://www.ffmpeg.org/ FFmpeg] for screenshots and media info. The following steps explain how to setup those dependencies.

====Ubuntu====

These instructions are for Ubuntu Karmic Koala (9.10) 32 and 64 bit. Other Debian derivates might use slightly different package names, but the general concept of the install is the same for all distros.

 apt-get install ruby1.8 ruby rubygems libsqlite3-ruby libopenssl-ruby vlc ffmpeg 

* Add the [https://help.ubuntu.com/community/Medibuntu Medibuntu repository] (for ffmpeg), reload your Package information, update your system and open a root terminal (sudo -s), and:

 apt-get install libavcodec-unstripped-52 libavdevice-unstripped-52 libavfilter-unstripped-0 libavformat-unstripped-52 libavutil-unstripped-49 libpostproc-unstripped-51 libswscale-unstripped-0 ubuntu-restricted-extras

To get the best result, ubuntu users should compile ffmpeg themselves. [http://ubuntuforums.org/showthread.php?t=786095 Here] and [http://ubuntuforums.org/showpost.php?p=6963607&amp;postcount=360 here] are good guides, you only need to copy-paste few lines.

====Debian (sid)====

Debian follows the [[:wikipedia:Debian Free Software Guidelines|Debian Free Software Guidelines]] policy, which prevents inclusion of several codecs with potential patent issues. To run Knots2, add the [http://debian-multimedia.org/ Debian-Multimedia Repository] to your sources list, install the keyring to avoid warnings, then open a root terminal (su root) and:  

 apt-get update &amp;&amp; apt-get install ruby1.8 ruby rubygems libsqlite3-ruby libopenssl-ruby vlc ffmpeg 

Then, to ensure that all requisite libraries are installed:

 apt-get install libavcodec52 libavdevice52 libavfilter1 libavformat52 libavutil50 libmp3lame0 libpostproc51 libswscale0

This should allow the knots server to transcode using the default knots2 profiles.

====OS X====

Install latest [http://www.videolan.org/vlc/download-macosx.html VLC] and [http://www.ffmpegx.com/ ffmpegX] to &lt;code&gt;/Applications&lt;/code&gt;.

====Windows====

Download and install latest [http://www.videolan.org/vlc/download-windows.html VLC]. For easy setup, install it under &lt;code&gt;C:\Program Files&lt;/code&gt;, otherwise you will need to edit the path in server settings.

===Server===

====Linux / FreeBSD / OS X====

*nix compatible OS users can get the latest client and server with git:
 git clone https://github.com/andyleadbetter/knots-server.git

old repository info, it was no longer there:
 git clone git://github.com/solmis/knots.git
or download it from [http://github.com/solmis/knots/archives/master github]

Then start the server with
 cd knots
 ./knots.rb

OS X users can create a standalone app too:
 ./install/create_osx_app

&lt;code&gt;knots2&lt;/code&gt; application should appear in your home folder. You can move to that to &lt;code&gt;/Applications&lt;/code&gt;. After running the application an icon appears in the dock which then disappears, but knots should be running.

There is also a prebuilt [http://nakkiboso.com/knots2/knots_osx.zip package] for OS X users (Updated 2010-06-02).

====Windows====

Download the [http://www.mediafire.com/?zwnorymqyfg installer] (Updated 2010-06-13). Install and start the server from the start menu. Then select Configure server from the menu to configure it.

Advanced Windows users who want fixes and features quickly can use git too. Following is required only if you want to go through the trouble of updating the server by hand from time to time and report possible bugs about the new features.

Install Git for Windows from [http://code.google.com/p/msysgit/downloads/list here]. Be sure to add the git binary to your path when asked (2nd option). If you are using Vista/7, make sure you run the installer with administrator rights. Once it's installed, open cmd.exe and run these commands:

 cd c:\
 git clone git://github.com/solmis/knots.git

Then download the installer, install it somewhere and copy the ruby folder and all the executables and cmd files to &lt;code&gt;c:\knots&lt;/code&gt;. Then delete the folder made by the installer and edit the Knots 2 menu items to point to &lt;code&gt;c:\knots&lt;/code&gt;. After that you can always update the server to latest version: open &lt;code&gt;cmd.exe&lt;/code&gt; and run these commands:

 cd c:\knots
 git pull

after pulling the latest changes, run &lt;code&gt;Migrate.cmd&lt;/code&gt; to migrate possible database changes.

====Sheevaplug====

Sheevaplug doesn't have enough power to do transcoding, but you can listen to music and watch sd material using the Passthrough profile. VLC 0.9.9 that is available by default from the Ubuntu repository works well, but you need to either compile your own ffmpeg or install these [http://ugz.ath.cx:1415/ffmpeg_4_0.5_sheeva_armel.deb ffmpeg] and [http://nakkiboso.com/knots2/x264_1_0_sheeva_armel.deb x264] packages.

===Setup===

Just point your browser to http://localhost:1978 and add your media under settings. If you don't see the ''Update collection'' button, please make sure that both ffmpeg and VLC paths are correct.

[[Image:Screen shot 2009-12-22 at 10.24.11 PM.png|HTML-frontend|500px]]

===Client===

Client for the N8x0 (OS2008/diablo) is available from the [[extras]] repository. Client for the N900 (Maemo5/fremantle) is available from the [[extras-devel]] repository. Please bear in mind that the N900 client is still unfinished. You might come across bugs and other strange behavior (like quickly draining battery ect.) since mplayer currently can't utilize the full potential of the N900's hardware. You should not enable extras-devel if you don't know what you are doing. '''Please read [[extras-devel|the extras-devel article]] before installing Knots 2 for the N900'''

===Accessing the server from the internet securely===

You can stream videos and music from outside your home network using 3G or WLAN, but make sure you make the server more secure. Check '''Can I use the server to view stuff from the internet?''' under [[#Questions and Answers|Questions and Answers]] on how to enable basic auth for the server. If you want SSL encryption for more secure server, you need a custom libsoup library, because SSL is not supported by libsoup by default on Maemo platform. '''We take no responsibility if it messes up other applications using this library.''' Then install the latest client and rootsh from extras(-devel) repositories. Open terminal and run these commands:

'''For the N900'''
 root
 apt-get install libgnutls26 libgcrypt11 wget
 wget &quot;http://nakkiboso.com/libsoup2.4-1_2.26.3-0maemo3+0m5_armel.deb&quot;
 dpkg -i libsoup2.4-1_2.26.3-0maemo3+0m5_armel.deb
 rm libsoup2.4-1_2.26.3-0maemo3+0m5_armel.deb

'''For the N8x0'''
 root
 apt-get install libgnutls26 wget
 wget &quot;http://nakkiboso.com/knots2/libsoup2.2-8_2.2.105-4_armel.deb&quot;
 dpkg -i libsoup2.2-8_2.2.105-4_armel.deb
 rm libsoup2.2-8_2.2.105-4_armel.deb

Knots doesn't have a 3G profile currently, because the perfect quality depends on so many things, but you can create a copy of some profile like N8x0 and tune it to suit your network.

Knots now has a feature to automatically connect to your server outside your LAN. Go to Settings -&gt; Remote discovery and create an account for yourself. Server will then update your server location to a remote server every 6 hours. Open client and enable remote discovery by logging in with the same username and password. Client should then automatically connect to your server no matter where you are. After enabling remote discovery you can test your server setup with a click of a button.

==Screenshots==

[[Image:Knots-0.2.6-homescreen.png|Knots2 Client Start Screen|500px]]

[[Image:Knots-0.2.6-tvchannels.png|Knots2 Client browsing tv channels|250px]]
[[Image:Knots-0.2.6-movieinfo.png|Knots2 Client displaying movie info|250px]]

[[Image:Knots-0.2.6-searchfile.png|Knots2 Client searching for video files on server|500px]]

[[Image:Knots-0.2.6-mp3playlist.png|Knots2 Client with a mp3 playlist|250px]]
[[Image:Knots-0.2.6-mp3lyrics.png|Knots2 Client showing song lyrics and rating dialog|250px]]

==Questions and Answers==

===Windows===

* '''Knots finds my media, I can browse it, but everytime I click on play I get an error message saying Stream failed to start. What is wrong?'''
*:This may be caused by Windows Vista/7 UAC, that prevents VLC from starting properly. To fix this, select stop server from the menu to shutdown Knots. Then go to the directory where vlc.exe is, create an empty text file inside it with administrator rights and copy the following text to that file:
 vlc.exe -Vdummy --intf=telnet --telnet-host=localhost --telnet-port=4212 --telnet-password=knots -vvv
and save it. Then rename the file to startvlc.cmd and double click it. That should show the UAC prompt asking your permission to run VLC. Once you have allowed that, Knots should work normally.
* '''I want to run knots as a windows service.'''
*:Follow [http://talk.maemo.org/showpost.php?p=302977&amp;postcount=62 these steps].
* '''My virus scanner gives me a warning about netcat.exe that is bundled with Knots'''
*:Netcat is used for VDR support and it's clean so the warning is harmless.
* '''Knots doesn't play media if the path contains non-ascii characters.'''
*:This is an issue with Ruby and Windows. It's hard to fix it in Knots so we will have to wait for Ruby 1.9.2 which fixes these issues. Until then, try to avoid non-ascii characters in filenames. Other operating systems shouldn't be affected by this.

===Linux===

* '''I can't view any videos.'''
*:Did you install the correct packages of the FFmpeg libs? FFmpeg in Linux is a problem because all the license issues etc. so if your distro doesn't provide unrestricted builds you need to compile your own FFmpeg with at least libmp3lame and xvid support. Run ./scripts/vlctest to check what is wrong with your VLC/FFmpeg combo.
* '''Knots stopped working after I upgraded to VLC 1.1'''
*:VLC developers rewrote the telnet interface and renamed the old one. if VLC fails to start, run:
 killall -9 ruby vlc
 ./scripts/setup new_vlc 1 &quot;VLC &gt;= 1.1&quot;
and restart the server.
* '''How do I start Knots on startup?'''
*:It depends on your linux distribution, but usually you can add the following line to your /etc/rc.local
 su -c &quot;/full/path/to/knots.rb &gt; /dev/null 2&gt; /dev/null &amp;&quot; yourusername
*:If you want to be able to view your knots session that was autostarted, you may choose to use the 'screen' application that will create a separate shell session for your knots server.
First install 'screen', (if not already done):
 sudo apt-get install screen

Again, starting knots using screen is done from rc.local:
 sudo -u yourusername -H screen -d -m -S kno /home/'''yourusername'''/knots/startknots.sh

Where the &lt;code&gt;startknots.sh&lt;/code&gt; script is simply:
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
cd /home/'''yourusername'''/knots
./knots.rb
&lt;/source&gt;

The screen session can then be resumed from a shell session by issuing the command:
 screen -R kno

or to simplify this action further, put an alias in the file &lt;code&gt;/home/'''yourusername'''/.bash_aliases&lt;/code&gt;:
 alias kno='screen -R kno'

===OS X===

* '''Seeking freezes the video for a while and then stops it.'''
*:This is a VLC issue. It seems to have problems with certain codecs, mainly xvid/divx. Try updating VLC from time to time and see if it that helps. Or better yet, issue a bug report.

===Server===

* '''Page content doesn't seem to update.'''
*:That's because most tabs keep their state. Double click on the tab to force a refresh.
* '''I don't see the Update collection -button under settings.'''
*:Make sure both VLC and FFmpeg have correct paths.
* '''Certain videos only have sound.'''
*:Try changing the transcoding profile. 64-bit Windows seems to have issues transcoding to xvid, so try using the passthrough profile for SD content or browser/theora for HD content.
* '''Lyrics don't work.'''
*:Lyrics-site seems to be down from time to time, try leaving it alone for few days and try again.
* '''Can I use VLC browser plugin to view the video without transcoding?'''
*:Sure. Edit the passthrough profile and add a value vlc to embed and save. VLC plugin doesn't seem to close properly though, so you may need to restart the browser to kill it.
* '''I want to use VDR / MythTV / Dreambox with Knots but can't find a setting for them.'''
*:Stop the server, run &lt;code&gt;./install/vdr&lt;/code&gt;, &lt;code&gt;./install/mythtv&lt;/code&gt; or &lt;code&gt;./install/dreambox&lt;/code&gt; and answer the questions. Double click on Settings tab and you should see a button that updates them. If your VDR/Dreambox has several channels, be sure to change Capture screenshots for external urls to 0 before scanning them. Then change it back to 1 and use the Edit button to grab only the screenshots you want. Dreambox enigma1 requires the Zapstream plugin to be installed, enigma2 should work out-of-the-box.
* '''How can I make the server output some debugging messages to the terminal?'''
*:Run &lt;pre&gt;./scripts/enable_debug true&lt;/pre&gt; to enable debug and &lt;pre&gt;./scripts/enable_debug false&lt;/pre&gt; to disable it.
* '''Can I use the server to view stuff from the internet?'''
*:Yes, just create an admin user first. Then click on the username and set a password and save. Then enable '''Force authentication''' from the settings. If you want SSL encryption, '''enable SSL''' too. Make sure server asks for authentication and that you can login before enabling access from the internet. You need to open/forward the port you are using and then 19780 for the actual video stream (and +1 for each additional video stream). After enabling remote discovery you can check that your server is properly setup without having to use the client from outside your network. 
* '''I get black borders around the video. How can I force it to fullscreen?'''
*:Knots tries to maintain the original aspect ratio of the source material. To override this, stop the server and run 
 ./scripts/setup disable_aspect 1 &quot;Disable video aspect&quot;
:or add it with a browser using Add new setting -button. Adding this setting may also create less artifacts in the video.
* '''I want to tune the streaming profile. Where is some information on the available options?'''
*: Knots relies on vlc for handling the transcoding, so refer to it's [http://www.videolan.org/doc/streaming-howto/en/ch03.html Official Documentation] for the available settings.

===Client===

* '''Why isn't there a pause button?'''
*:Long story short, it would technically work as stop and resume now so use stop and resume instead. 
* '''How come the video plays fine with the client, but not when moved to the device?'''
*:Knots transcodes everything to a format your tablet supports. If your VLC can play it on your desktop, chances are your tablet then plays it as well.
* '''I see no rotation menu item on my N8x0.'''
*: Please see [[Rotation]]
* '''Can I just add sticky servers with credentials and disable the automatic discovery?'''
*:Sure, but you need to do it from the command line using xterminal. Here is an example of two sticky servers, first with authentication and SSL, second normal and discovery disabled for faster startup:
 gconftool-2 -s /apps/knots/sticky_server0 &quot;My Closed Server/1/1978/server_address/username/password&quot; -t string
 gconftool-2 -s /apps/knots/sticky_server1 &quot;My Open Server/0/1978/server_address&quot; -t string
 gconftool-2 -s /apps/knots/enable_discovery false -t string
* '''I do not hear sound on the tablet client, but i do on the server.'''
*:Ensure that the mplayer volume is up on the client by repeatedly pressing the + rocker button (volume up) For the n900 confirm the phone sound profile is &quot;general&quot; and not &quot;silent.&quot;
* '''Can I change the mplayer command used to view the stream?'''
 gconftool-2 -s /apps/knots/mplayer_command &quot;/usr/bin/mplayer -your custom -settings&quot; -t string

Amount of cache, X window id and stream address get appended automatically.

===Media===

* '''Some of my audio/video files aren't scanned.'''
*:You can add the the missing file extensions under settings and do a rescan. To keep the dependencies low, I only support MP3-tags out of the box. But it doesn't mean other audio formats won't work, they just don't get tagged properly.
* '''What about image support?'''
*:As a side effect, you can actually use Knots as an image viewer too. Knots will treat images as videos that will play for 5 seconds. You need to have the latest server installed for it to work. Just add jpg,jpeg,png,gif to the list of scanned file extensions in the settings. This is totally unsupported though and may cause some strange behavior.
* '''I have a folder with recorded tv-series and I want to move them all to Series category. How do I do that?'''
*:Go to Edit media, limit search results to - to list them all and use the path as a search criteria. Once they are listed, click on Select all, add a category or select the one you want to move them to, select Set category action and press Apply to selected. All selected videos are then moved to that category. Same idea works with all the actions.
* '''My mp3-tags are messed up and I have the same album with 3 different names. Can i easily fix that?'''
*:Sure. Just go to Edit media, select the album tag, then select the wrong value and rename it to the correct one. All the songs that are in that album are moved to the correct album. Do it for all the wrong names and all the songs should be in the same album.

===Problems===

* '''My VLC doesn't seem to work.'''
*:For now VLC version needs to be 0.9.3 - 1.0.6. Newer version may work if bugs get fixed, but older ones will not work.
* '''My database is all messed up, how do I start fresh?'''
*:Close the server, go to Knots folder, delete the .config folder and restart the server again. Linux/OS X users can do this easily from the command line when server is not running:
 rm -rf ~/.config/knots2
* '''My collections is very big and I often get 'No results' messages when browsing it. How do I make it faster?'''
*:You can speed it up by tagging your media so that results don't become so big, but you can also add a bigger value to the network timeout field of your transcoding profile. Try using something like 90.
* '''I locked myself out with user settings, how can I fix that?'''
*:Run the reset_settings script, it will remove all users, but keep the media. On Windows it's win32/ResetSettings.cmd and on Linux/OS X you can run:
 ./scripts/reset_settings
* '''Browsing etc. works fine, but playback only produces black screen with no sound and video. Progress bar works though. What's wrong?'''
*:You probably haven't opened/forwarded ports 19780-19790 on your router/desktop firewall.

==Bugs==

If you come across bugs report them at the [http://github.com/solmis/knots/issues Knots bugtracker]. Please attach the necessary information (used Operating System, Tablet Revision, terminal output) and clear steps to reproduce the malfunction.

==Discuss==

You can discuss Knots at [http://talk.maemo.org/showthread.php?t=30095 Talk]. Please submit bugs to github instead of discussion thread.

==Contact==

[http://webchat.freenode.net?channels=knots&amp;uio=d4 Please join our IRC channel #knots at Freenode] or email janne dot makinen at surffi dot fi

==Donate==

Knots 2 is free software, but if you feel like donating, you can donate via [http://nakkiboso.com/knots2/donate.html Paypal].

[[Category:Media]]
[[Category:Software]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Korean</title>
    <id>217</id>
    <revision>
      <id>27539</id>
      <timestamp>2010-01-27T19:04:54Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">== 환영합니다! ==
이 페이지에서는 maemo 플랫폼에서 한국어를 읽고, 쓸 수 있는 방법에 대해서 설명하고 있습니다.

아직까지 maemo 플랫폼을 사용하는 장비가 한국에는 출시되지 않았기 때문에, 여기에 딸린 페이지의 편집이 많지 않을 수도 있습니다.

=== 딸린 페이지 ===
* 한글 입력 방법: [[Korean input]]
* 한글 텍스트 보는 방법: [[Korean on Screen]]

== Welcome! ==
This page introduces how to read, write Korean language in maemo platform.

As there is no maemo-based device in Korea, there will be not so much edit.

=== Links ===
* How to input Korean: [[Korean input]]
* How to read Korean texts: [[Korean on Screen]]


[[Category:Users]]
[[Category:Internationalization]]</text>
    </revision>
  </page>
  <page>
    <title>Korean Input</title>
    <id>3441</id>
    <revision>
      <id>27537</id>
      <timestamp>2010-01-27T19:04:16Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Korean Input]] moved to [[Korean input]]: Naming conventions</comment>
      <text xml:space="preserve">#REDIRECT [[Korean input]]</text>
    </revision>
  </page>
  <page>
    <title>Korean input</title>
    <id>218</id>
    <revision>
      <id>27536</id>
      <timestamp>2010-01-27T19:04:16Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>[[Korean Input]] moved to [[Korean input]]: Naming conventions</comment>
      <text xml:space="preserve">= 한국어 =
한글 입력을 위한 방법은 여러 가지가 있습니다.

== Hildon IM 대체 ==
* maemo-cjk 프로젝트: [http://maemocjk.garage.maemo.org/]
* [http://kldp.net/projects/imhangul imhangul] maemo 포팅: 아직은 릴리즈되지 않음

== Hildon IM 기반 ==
* Hildon IM 기반 한글 입력기(원 저작자 연락처 알 수 없음): [http://dev.pinagalli.com/himkor/]

= English =
There are several Korean input methods available.

== Replaces Hildon IM ==
* maemo-cjk project: [http://maemocjk.garage.maemo.org/]
* Port of [http://kldp.net/projects/imhangul imhangul] to maemo: Not yet released

== Based on Hildon IM ==
* Hildon IM based Korean IM(original author unknown): [http://dev.pinagalli.com/himkor/]


[[Category:Users]]
[[Category:Internationalization]]</text>
    </revision>
  </page>
  <page>
    <title>LED Pattern Editor</title>
    <id>4189</id>
    <revision>
      <id>47548</id>
      <timestamp>2012-05-23T23:05:48Z</timestamp>
      <contributor>
        <ip>2.178.134.227</ip>
      </contributor>
      <comment>/* Restoring original patterns */</comment>
      <text xml:space="preserve">A control panel applet to edit notification light blinking patterns. 

The [[Nokia N900|N900]] has two configurable LED pattern engines.

Each engine can be flexibly programmed with up to 16 commands to vary the brightness of the LEDs it is connected to.

Either engine can be connected to one or more of the three LEDs (Red, Green, Blue) that make up the notification light.

Details can be found on the [[LED patterns]] page.

== Opening ==
To open the LED Pattern Editor, select ''Settings'' and ''LED Patterns''.

=== Viewing patterns ===
The ''LED Patterns'' dialog shows the list of defined patterns with a graphical representation of the LED brightness over time. Each vertical line corresponds to one second.

=== Editing patterns ===
Clicking on a pattern button opens the ''LED pattern editor'' dialog. Below the graphical pattern view, there is a list of commands that will be interpreted by the currently selected engine. Engine 1 or 2 can be selected by the toggle button to the right, below the color chooser buttons which assign the LEDs to drive to each of the engines.
* To edit a command in the currently selected engine's program, tap the command button in the list. Change the command's parameters in the command edit dialog and observe the changes in the graphical pattern view. Select ''Done'' when finished or close the dialog to revert the changes.
* Select ''Delete'' to remove the command from the list.
To add a new command, tap the ''New command'' button at the end of the list.

==== Pattern engine commands ====
Each of the two engines controls a single PWM output that can be used to drive any of the three LEDs in the notification light.
* The ''Set PWM'' command sets the PWM output to the specified level (0-255).
* The ''Ramp'' command increases or decreases the PWM output by the specified number of steps with a specified wait time after each step. The total duration of the ramp is the wait time multiplied by the number of steps plus one, (''wait_time'' * (''steps'' + 1)).
* The ''Wait'' command is the same as a ''Ramp'' with zero steps. The duration is equal to the wait time.
* A ''Trigger'' command is used to wait for a trigger from the other engine or to set a trigger to the other engine to release it from a waiting state. This command can be used to synchronize the two independently running engines.
* The ''Go To Start'' command is used to repeat the pattern from the first step. All patterns must end in a ''Go To Start'' or ''End'' command.
* The ''End'' command stops the engine, ending the program. It can be configured to either ''Hold'' the PWM level at the current value indefinitely or to ''Reset'' the PWM level to 0, turning off the connected LEDs.

=== Copy &amp; paste ===
Patterns can be copied to and pasted from the clipboard in the [[LED patterns#Pattern Format|format described here]].
* The ''Copy'' button (or the keyboard shortcut '''Ctrl+c''') copy the current pattern to the clipboard.
* To paste a pattern from the clipboard, use the keyboard shortcut '''Ctrl+v'''.
See [[LED patterns#Community-Made Patterns|Community-Made Patterns]] for some examples.

=== Testing patterns ===
The ''Test'' button will start to replay the current pattern if it is well-formed. Unfortunately, the mce process will stop the playback occasionally and uncontrollably.

=== Saving changes ===
Selecting ''Done'' in the ''LED pattern editor'' dialog will save the changes to the pattern in the ''LED Patterns'' list. At this point, the changes are not yet applied. Just closing the ''LED Patterns'' dialog will revert any changes. Selecting ''Save'' will store the changes to the mce configuration file after a warning and restart the mce process.

== Restoring original patterns ==
During the first installation, the LED Pattern Editor package stores a backup copy of the mce configuration file. Selecting ''Restore original patterns'' will restore the LED patterns from that file, overwriting all user-created patterns.

[[Category:Software]]
[[Category:Fremantle]]

----</text>
    </revision>
  </page>
  <page>
    <title>LED patterns</title>
    <id>3231</id>
    <revision>
      <id>45603</id>
      <timestamp>2011-10-23T16:25:23Z</timestamp>
      <contributor>
        <username>stefanl</username>
        <id>3806</id>
      </contributor>
      <comment>/* Low Level */</comment>
      <text xml:space="preserve">== N800 ==

The [[Nokia N800|N800]] has a single-colour (blue) LED behind the dpad.

== N810 ==

The [[Nokia N810|N810]] has an RGB LED.

== N900 ==

=== File Location ===

The software on the device that controls the LED colors is [[N900 Software MCE|MCE]].

The file defining patterns can be found in
 /etc/mce/mce.ini

An application ([http://talk.maemo.org/showthread.php?t=27818 mcedit]) for modifying LED patterns was written for the N8x0, but this will not work with the [[Nokia N900|N900]] due to the new &lt;code&gt;mce.ini&lt;/code&gt; format.

An app to edit LED patterns on the N900 is available in the [[extras]] repository ([http://maemo.org/downloads/product/Maemo5/led-pattern-editor Downloads Page]), [[LED Pattern Editor]]. This adds a way to edit LED patterns in the settings application.

=== Pattern Format ===

The patterns are broken down as follows:

:&lt;tt&gt;PatternName=Priority;ScreenOn;Timeout;LEDsToMap;Engine1Pattern;Engine2Pattern&lt;/tt&gt;

(Though the LP5523 chip has 3 engines meant to control R, G, and B, the mce program exlusively uses engine3 for kbd backlight and so doesn't support pattern
definitions for engine3. mce is closed source and thus this can't be fixed in any reasonable way. If mce were open, an alternative compatible format was possible:

:&lt;tt&gt;PatternName=Priority;ScreenOn;Timeout;LEDsToMap;Engine1Pattern;Engine2Pattern;Engine3Pattern&lt;/tt&gt;

where LEDsToMap was something like &quot;000012300&quot; to map the particular LED to either none, or Engine1..3 respectively. 

We could also fix mce to allow pattern definitions of arbitrary length up to the max RAM available, which is 96 commands with all RAM allocated to one engine - this would need a patch to support doing this in lp5523.ko driver as well.
)

==== Priority ====

0-255, 0 is highest, 255 is lowest.

Since currently only a single pattern at a time can be displayed, this is used to assign importance to the LED patterns. Although only a single LED pattern can be displayed at any time, multiple patterns may be active, the pattern with the highest priority being displayed.

A common example of this is where the N900 is on charge, the battery is full (starting PatternBatteryFull with a priority of 40), and an SMS message is received (PatternCommunicationSMS with a priority of 30). On receipt of the SMS, the LED begins to display the flashing blue led of an SMS. Once that SMS has been dismissed, the green LED of the full battery notification is again displayed.

==== ScreenOn ====

* 0: only show pattern when the display is off
* 1: show pattern even when the display is on
* 2: only show pattern when the display is off, including acting dead
* 3: show pattern even when the display is on, including acting dead
* 4: only show pattern if the display is off, or if in acting dead
* 5: always show pattern, even if LED disabled

==== TimeOut ====

This is the time-out of the LED pattern in seconds. 0 for infinite, i.e. until the notification is dismissed.

If this is set to 20, the pattern will display for 20 seconds, and then stop.

==== LEDsToMap ====

There are two engines that can be used to make custom LED patterns.&lt;ref name=&quot;engines&quot;&gt;Actually there are three, but the third engine is used exclusively for the keyboard LED.&lt;/ref&gt;

r, g, or b maps the corresponding colour channel to Engine 1.

R, G, or B maps the corresponding colour channel to Engine 2.

For example, &quot;rG&quot; maps the red channel to Engine 1, and the green channel to Engine 2.

You should avoid mapping the same channel to both engines, for example &quot;rR&quot;, &quot;gG&quot; or &quot;bB&quot; - it's not supported by the hardware, makes no sense anyway, and therefore probably never has been tested.

==== Engine Pattern ====

This is a series of text that describes the speed and intensity of changes in the LED(s) being managed by that particular engine. See below for a breakdown of the patterns. Each can be at most 16 commands long.

=== Lysti Format Engine Patterns and Commands ===

The LED patterns are of the form
:&lt;tt&gt;9d8040007f007f0040ff7f007f000000&lt;/tt&gt;

Breaking this down for ease of reading we get a list of 8 commands, each of which is four characters long. There may be up to 16 commands for a pattern (kernel driver limitation, the hardware could manage up to 96)
:&lt;tt&gt;9d80 4000 7f00 7f00 40ff 7f00 7f00 0000&lt;/tt&gt;

==== 9d80 - Refresh Engine Multiplexer ====

This is to be used as the first command of every pattern. If this is excluded from the pattern, the led won't flash. (actually this command loads the first [and only] entry of a predefined [by kernel driver] multiplexer table in chip's RAM to the multiplexer register)

==== 40xx - Set channel brightness ====

Where xx are two hexadecimal digits, e.g. 00 (for a brightness of 0) or ff (for a brightness of 255).

==== xxyy - Adjust channel brightness ====

Increment or decrement the channel brightness over a period of time (xx) and a number of steps (yy).

Where xx and yy are hexadecimal digits

xx - Time (per step?)

yy - Number of steps

The following rules apply to these:
* If xx is even, the steps are increment steps and brightness will increase.
* If xx is odd, the steps are decrement steps and brightness will decrease.
* If xx is between 02 and 3f, a short step time is used (granularity 0.49ms)
* If xx is between 42 and 7f, a long step time is used (granularity 15.6ms)
* yy can be any value between 00 and ff (0 to 255)
* Pauses can be achieved by using 00 steps, e.g. 7f00 where, where the 7f is how long each step takes and 00 is how many increment steps to take.

The mce.ini instructions (/etc/mce/mce.ini) also state that 
:Two consecutive increment/decrement sequences are needed to cover the entire range from 0-255
However I believe this is a throwback to the older patterns, and the full range of 00 to ff is available in a single step for the number of steps, since whether these are increment or decrement steps are now handled through use of even or odd xx values.

==== 0000 - Jump to start ====

Jump to the start of the pattern for this channel. You will see this at the end of most repeating patterns.

This command may not actually be needed to make the pattern repeat. If this is removed, the pattern will repeat anyway, although it's useful to have it there as an explicit command to repeat for clarity. If you wanted a pattern to run once and then terminate you would use the c000 command.


==== A000 .. BFFF - Branch (decrement and branch if non zero) ====

101&lt;llllll&gt;&lt;sssssss&gt; : 16bit

llllll : 6bit; Loop count, 0=infinite loop, or max 63 loops

sssssss : 7 bit; Step number; Value to store to PC (0-95 actual progspace of LP5523 of 96 16bit commands. [Unclear if that's absolute address, or probably offset relative to start of program space assigned to the particular engine])

You can build MUCH SMARTER loops with this! ;-D

==== c000 - End pattern execution ====

(also d000 = with hw INT; c800/d800 = with PC reset. INT might serve to signal end-of-pattern to main CPU -&gt;*)

The pattern is terminated without repeating. 

''the following is about mce, not about how LP5523 chip works''

It is important to note here that although that pattern has stopped, it is still active *) until the Timeout time has passed. As a consequence of this any higher priority patterns (patterns with a lower priority value, since 0 is the highest and 255 is the lowest) will not be displayed until the pattern has fully expired. In the case that the timeout is 0, it will not display until the notification is dismissed.

==== Sending and receiving engine triggers ====

Further complexity in patterns can be added through use of triggers. This is especially useful if we want to synchronise the two engines in time, for example to wait until the LED has turned red before turning it immediately to green. Rather than waste time with steps doing nothing, we can simply wait for a trigger to be received from the other engine.

The following pattern does exactly that:
:&lt;tt&gt;PatternTest=29;1;0;rG;9d80''4000''08ff''&lt;u&gt;e004&lt;/u&gt;''4000''c000'';9d80''&lt;u&gt;e080&lt;/u&gt;''40ff''c000''&lt;/tt&gt;

===== e002, e004, e008 - Send engine trigger =====

e002 - Send trigger to engine 1

e004 - Send trigger to engine 2

e008 - Send trigger to engine 3 (used by keyboard backlight)

A signal is sent from the current engine to signal another engine.

Although the trigger information for engine 3 is listed we have no control over the keyboard LED, so it has no effect. Attempting to add a pattern for engine 3 after the pattern for engine 2 causes the pattern to no longer function (unless you stop mce, so it doesn't mess with LP5523 anymore - see below).

===== e080, e100, e200 - Wait for engine trigger =====

e080 - Wait for trigger from engine 1

e100 - Wait for trigger from engine 2

e200 - Wait for trigger from engine 3 (used by keyboard backlight)

Although the trigger information for engine 3 is listed we have no control over the keyboard LED, so it has no effect. Attempting to add a pattern for engine 3 after the pattern for engine 2 causes the pattern to no longer function.

=== Default LED Patterns for Nokia N900 ===

 PatternError=0;5;0;r;9d8040007f007f0040ff7f007f000000;9d800000
 PatternDeviceOn=254;0;0;rgb;9d804000422043207f100000;9d800000
 PatternDeviceSoftOff=253;0;0;rg;9d804000423f433f7f100000;9d800000
 PatternPowerOn=9;3;0;rgb;9d80400042ff02ffc000;9d800000
 PatternPowerOff=10;3;0;rgb;9d80400001ff43ff7f007f00c000;9d800000
 PatternCommunicationCall=30;1;0;b;9d80400002ff03ff02ff03ff71080000;9d800000
 PatternCommunicationIM=30;1;0;b;9d80400002ff03ff02ff03ff71080000;9d800000
 PatternCommunicationSMS=30;1;0;b;9d80400002ff03ff02ff03ff71080000;9d800000
 PatternCommunicationEmail=30;1;0;b;9d80400002ff03ff02ff03ff71080000;9d800000
 PatternCommonNotification=30;1;0;b;9d80400002ff03ff02ff03ff71080000;9d800000
 PatternWebcamActive=20;1;0;r;9d80400004ffc0000000;9d800000
 PatternBatteryCharging=50;4;0;rg;9d804000427f0d7f7f007f0042000000;9d800000
 PatternBatteryFull=40;4;0;g;9d80407f0000;9d800000

=== Community-Made Patterns ===
''Please note that these patterns should each be on one line.''
''They can also be used for any notification by choosing the appropriately named &quot;Pattern... for the start of the line.''

A traffic-light battery charging pattern, courtesy of [http://talk.maemo.org/showthread.php?p=512430#post512430 blue_led]
 PatternBatteryCharging=50;4;0;Rg;9d80407f7f00e0047f0040007f007f007f00407f7f00e0047f007f000000;9d804000e080407fe0800000

A police-siren style pattern, idea by [http://talk.maemo.org/showthread.php?p=499305#post499305 mihapodb]. This pattern cuts quickly between blue and red.
 PatternCommunicationEmail=30;1;0;rB;9d8040ff7f00e00440007f000000;9d80e08040ff7f0040000000

A police-siren style pattern, idea by [http://talk.maemo.org/showthread.php?p=540959#post540959 villo]. This pattern fades between red and blue.
 PatternCommunicationEmail=30;1;0;rB;9d8004ff05ffe004e1000000;9d80e08004ff05ffe0020000

Cehteh's patterns with some comments

Slow dark glowing in cyan, never goes fully off, so you can locate the device in the dark:
 PatternDeviceOn=254;0;0;gb;9d804001620863087f007f007f007f007f007f007f007f007f007f007f000000;9d800000

Slow dark glowing in yellow, never goes fully off, so you can locate the device in the dark:
 PatternBatteryCharging=50;3;0;rg;9d804001427f0d7f7f007f0042000000;9d800000

Slow dark glowing in white, never goes fully off, so you can locate the device in the dark:
 PatternBatteryFull=40;3;0;rgb;9d804001620863087f007f007f007f007f007f007f007f007f007f007f000000;9d800000

White, bright flashing (must be enabled in 'LEDPatterns=' ?):
 PatternExample=42;1;30;rgb;9d8040007f007f0040ff42000000;9d800000

=== Step by step instructions ===
{{ambox
|type=notice
|text=There's a command 
IroN900:~# /usr/bin/mceledpattern --help
  Usage:
  mceledpattern add[_vibra] &lt;pattern_name&gt; &lt;pattern&gt;
  mceledpattern remove[_vibra] &lt;pattern_name&gt;

  To replace existing pattern use add, to restore replaced pattern back to previous value use remove
Please check if it's default or came with one of my additional packages}}
* Open terminal
* Gain [[root access]]
* Make a backup (for your own convenience) from original mce.ini -file, for example:&lt;pre&gt;cp /etc/mce/mce.ini /etc/mce/mce.ini_old&lt;/pre&gt;
* Open &lt;code&gt;/etc/mce/mce.ini&lt;/code&gt; with a text editor (nano, vim, leafpad...)
* Search for a line:&lt;pre&gt;[LEDPatternLystiRX51]&lt;/pre&gt;
* Make your changes to the lines below
* Save
* Restart mce -process. Either reboot or type in terminal:&lt;pre&gt;initctl stop mce; sleep 2; initctl start mce&lt;/pre&gt;

Please note: restarting mce several times in 2 minutes will cause the system to think there is a problem with mce, and so won't start it. The initctl program will inform you of this. When it does, simply wait a while before trying again.

Alternatively, mce is started using [[dsmetool]] which monitors and reboots the device on failure.
This monitoring can be adjusted for more convenient hacking.

/etc/event.d/mce

*         /usr/sbin/dsmetool -n -1 -t &quot;/sbin/mce --force-syslog&quot;

Replacing -t (start and restart) with -o (start once) eliminates this monitoring.

Please be aware that errors in editing these files could cause a reboot loop, which could require a reflash to stop.

=== Low Level ===
'''this section should get merged with [[N900_Hardware_LED]] !'''

The N8x0 had a LP5521&lt;ref name=&quot;lp5521-spec&quot;&gt;http://www.national.com/pf/LP/LP5521.html&lt;/ref&gt;  &lt;ref name=&quot;lp5521-driver&quot;&gt;http://mxr.maemo.org/fremantle/source/kernel/drivers/i2c/chips/lp5521.c&lt;/ref&gt; programmable three channel controller LED Driver which handles the leds.
(actually N900 has a LP5523 &lt;ref name=&quot;lp5523-spec&quot;&gt;http://www.national.com/pf/LP/LP5523.html&lt;/ref&gt; &lt;ref name=&quot;leds-lp5523-driver&quot;&gt;http://mxr.maemo.org/fremantle/source/kernel/drivers/leds/leds-lp5523.c&lt;/ref&gt;, which has 3 engines like LP5521 but can drive 9 LEDs via a multiplexer. This chip also has double the RAM size for 'programs', plus 2 per-machine and one global register variable and a true set of conditional branch and arithmetic commands. 

Alas the LP5523 driver doesn't support any of those advanced features of LP5523, and even abuses one of those extremely smart engines for a stupid occasional kbd backlight ramp-up/down.&lt;br&gt;
''This could as well get done in mce by a 25ms timer that writes 40 new brightness values to the master control of kbd LEDs during 1 second. There's really no reason why you need to assign 1 of those 3 machines to this *occasional* short ramp function and break true rainbow 3 color effects on indicator LED. Sound rationale: while kbd bl ramp the ''CPU is awake anyway''. No obvious benefit in offloading the task to a LP553 engine [except from saving 50 lines of code in mce]!)''

The controller can be programmed via &quot;/sys/class/i2c-adapter/i2c-2/2-0032&quot; (FIXME: is this stable?). In that directory there are three files corresponding to the three channels: engine1_mode, engine2_mode and engine3_mode. Each file &quot;stores&quot; one of &quot;run&quot;, &quot;load&quot;, &quot;disabled&quot; (it seems that there is another mode &quot;direct&quot; but it doesn't work):
* run: The program runs
* disabled: The channel is disabled - not running
* load: In that state, there are two more files in that directory: 
** engine1_leds is in the form &quot;0000rgb00&quot; (9 digits, &quot;1&quot; or &quot;0&quot;), where rgb control which leds should participate. The 6 &quot;0&quot; in the above pattern correspond to the 6 kbd white leds controlled by mce via engine3, so readout of engine3_leds gives 111100011 ;-)
** engine1_load accepts a string as specified above (e.g. 9d804000427f0d7f7f007f0042000000). Though LP5523 has an absolute storage of 96 steps a 16bits, which can dynamically partitioned between the three engines, the driver is retarded and limits this to a fixed 16 words a 16bit per engine (&lt;s&gt;ToDo: check if driver supports &gt;16 instructions / machine&lt;/s&gt; no it doesn't :-/)
After that, when the state is changed to &quot;run&quot;, the program will be run by the controller. 

In order for the leds to work, the led_current of the appropriate leds need to be set to non-zero values. This is accomplished by writing to files leds:lp5523:[bgr]/'''led_current''' under the same directory. '''Don't mess with''' the default settings here that come with driver init, they are suitable and changing to higher values may and for certain values '''will kill your LEDS'''!.

NOTE: There must be a delay (how much? The specs of LP5521 mentions it) between writes to sysfs files.

== References ==
Also see [[N900_Hardware_LED]]! (somebody should have cleaned this duplication rather than ruthlessly copying)

&lt;references /&gt;

[[Category:N900 Hardware]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Least cost routing</title>
    <id>4456</id>
    <revision>
      <id>38612</id>
      <timestamp>2010-09-15T07:15:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly, categorize</comment>
      <text xml:space="preserve">This page is a work in progress; it documents my efforts to hack up some sort of script-based Least Cost Routing arrangement on my [[Nokia N900|N900]]. 

== Objective 1: pre-dialing ==

The first step is to get this working for regular PSTN access numbers over the GSM channel, so that I can use inclusive minutes rather than get charged through the nose for calling 0845, 0870 and suchlike.

In order to do that, I need to:

# intercept an outgoing GSM call, check dial string and see if we need to intervene
# if so, end the call, rewrite the number to suit, and autoredial before I the end user know or care about it

Looking at D-Bus, when we place a call via GSM we get:

 =================================
 Arg 1: :1.20
 Arg 2: null
 Arg 3: com.nokia.csd.Call
 Arg 4: CreateRequested
 Arg 5: +442081802828
 =================================
 Arg 1: :1.20
 Arg 2: null
 Arg 3: com.nokia.csd.Call
 Arg 4: Created
 Arg 5: +442081802828
 =================================

so, we can hook a script onto that using the following in dbus-scripts-settings

 #:GSM Call Requested
 /opt/usr/bin/lcr * * com.nokia.csd.Call CreateRequested *

now, let's test that we can forcibly end the call before it happens:

&lt;source lang=&quot;bash&quot;&gt;
 #!/bin/sh
 echo &quot;Least Cost Routing script: detected outgoing call to $5&quot;;
 echo &quot;Ending call to $5&quot;
 dbus-send --system --print-reply --dest=com.nokia.csd.Call /com/nokia/csd/call com.nokia.csd.Call.Release
&lt;/source&gt;

[[Category:N900]]
[[Category:Connectivity]]</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation</title>
    <id>2676</id>
    <revision>
      <id>29171</id>
      <timestamp>2010-02-12T09:23:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Legacy documentation}}</comment>
      <text xml:space="preserve">{{Legacy documentation}}

= Legacy documents =

*[[{{PAGENAME}}/Human_Interface_Guidelines|&lt;font color=green&gt;Human Interface Guidelines&lt;/font&gt;]]
**[[{{PAGENAME}}/Human_Interface_Guidelines/Introduction| Introduction]]
**[[{{PAGENAME}}/Human_Interface_Guidelines/Usability Principles|Usability Principles]]
**[[{{PAGENAME}}/Human_Interface_Guidelines/Device Orientation| Device Orientation]]
**[[{{PAGENAME}}/Human_Interface_Guidelines/Windows|Windows]]
**[[{{PAGENAME}}/Human_Interface_Guidelines/Notes and Banners|Notes and Banners]]
**[[{{PAGENAME}}/Human_Interface_Guidelines/Dialogs|Dialogs]]
**[[{{PAGENAME}}/Human_Interface_Guidelines/View Menu|View Menu]]
**[[{{PAGENAME}}/Human_Interface_Guidelines/Hildonizing an Interface|Hildonizing an Interface]]
**[[{{PAGENAME}}/Human_Interface_Guidelines/Controls|Controls]]
**[[{{PAGENAME}}/Human_Interface_Guidelines/User Input|User Input]]
**[[{{PAGENAME}}/Human_Interface_Guidelines/Icons|Icons]]
**[[{{PAGENAME}}/Human_Interface_Guidelines/Reality Checks|Reality Checks]]

*[[{{PAGENAME}}/Graphical UI Tutorial|&lt;font color=green&gt;Graphical UI Tutorial&lt;/font&gt;]]
**[[{{PAGENAME}}/Graphical UI Tutorial/Introduction|Introduction]]
**[[{{PAGENAME}}/Graphical UI Tutorial/Getting_started|Getting Started]]
**[[{{PAGENAME}}/Graphical UI Tutorial/Hildon_desktop|Hildon Desktop]]
**[[{{PAGENAME}}/Graphical UI Tutorial/Windows_and_dialogs|Windows and Dialogs]]
**[[{{PAGENAME}}/Graphical UI Tutorial/Menus|Menus]]
**[[{{PAGENAME}}/Graphical UI Tutorial/Toolbars|Toolbars]]
**[[{{PAGENAME}}/Graphical UI Tutorial/Navigation|Navigation]]
**[[{{PAGENAME}}/Graphical UI Tutorial/Data_selection|Data Selection]]
**[[{{PAGENAME}}/Graphical UI Tutorial/Controls|Controls]]
**[[{{PAGENAME}}/Graphical UI Tutorial/Additions_to_GTK+|Additions to GTK+]]
**[[{{PAGENAME}}/Graphical UI Tutorial/Utilities|Utilities]]</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Desktop Widget UI Guidelines</title>
    <id>2374</id>
    <revision>
      <id>41539</id>
      <timestamp>2011-02-01T10:35:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">{{legacy documentation}}

The Desktop Widget Guidelines‐document is intended as an aid for developers to [[Documentation/Maemo 5 Developer Guide/Application Development/Writing Desktop Widgets|build Desktop Widgets]] according to the design philosophy, interaction model, and visual look‐and‐feel of Maemo 5. 

By following these guidelines, developers are assured to build Widgets that are consistent, and accessible for end‐users.

This document is supported by the [http://www.forum.nokia.com/info/sw.nokia.com/id/e778ba1f-2507-4672-be45-798359a3aea7/Fremantle_Master_Layout_Guide.html Fremantle Master Layout Guide] and [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] for visual guidance and references, as well as by the [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] for interaction and technical background information.

== Introduction ==

Desktop Widgets can be defined as miniature applications – or applets – that reside on the Desktop for convenient, fast access to useful information or controls. Maemo 5 contains up to '''four''' Desktops, as illustrated in Figure 1, totaling in 3200×424 pixels of screen real‐estate for Desktop Widgets.

[[Image:desktop-views.png|thumb|center|600px|alt=Screenshot of desktop views|Figure 1: Maemo 5 includes up to four Desktops for Widgets]]

{{ambox|text=In Maemo terminology, in addition to Widgets, Maemo 5 also includes ''Application shortcuts'', ''Web bookmarks'', and ''Contacts''. Technically, however, these are considered Desktop Widgets as well, and the same guidelines apply. Thus, for the sake of readability, the term “Widget” used in this document encompasses '''all''' the aforementioned applets.}}

== Widget design ==

=== Design philosophy ===

While Widgets can be understood as small applications, the design philosophy for developing a Widget differs greatly from that of an application. Most notably, Widgets are '''not supposed to replace applications''' in terms of their use and feature set, '''rather compliment them'''; consider the following guidelines as the fundamental design goals of building an appropriate Widget:

* Widgets must provide information or controls '''quickly''' and in an '''obvious manner'''; every feature and command should be '''immediately understandable''', and '''accessible with a single tap'''.
* Widgets must provide only the '''most crucial features'''; they must be '''simple and efficient''', designed to accomplish only a few tasks – but accomplish those extremely well.
* Widgets must be as '''compact in size''' as possible; even though Maemo 5 offers a generous amount of screen space, users must be able to place several widgets on each screen to minimize the need for excessive screen switching.

{{ambox|text=Due to the high pixel density of the physical screen, tappable elements must be at least 70×70 pixels in size for convenient finger use.}}

Due to the aforementioned design goals, not every application can be transformed into, or any data set presented with a legitimate Widget. Before starting development, consider whether the Widget provides any value for end‐users in comparison to existing applications or websites that can be one tap away via ''Application shortcuts'' or ''Web bookmarks''.

=== Stock Widgets ===

Maemo 5 includes following Widgets, outlined in Table 1.

{| class=&quot;wikitable&quot;
|+ Table 1. Overview of stock Widgets included in Maemo 5.
! Widget name
! Description
! Dimensions (in pixels)
|-
|Application shortcut
|Provides one‐touch access to an application
|96×96
|-
|Calendar widget
|Displays the current date and upcoming calendar events
|352×252
|-
|Google widget
|Provides one-touch access to Google search
|176×146
|-
|Location widget
|Displays the current location of the user on a map
|316×368
|-
|Media Player widget
|Provides Media Player status and controls.
|338×148
|-
|Ovi widget
|Provides access to Ovi services
|490×88
|-
|RSS widget
|Displays the latest RSS feeds
|316×368
|-
|Tutorial widget
|Presents a tutorial on how to use the device
|800×72
|-
|Web bookmark
|Provides one‐touch access to a web bookmark
|176×146
|}

=== Configuration options ===

Widgets that can be configured include a configuration‐button accessible in ''Edit mode''. Tapping on the button reveals a dialog containing all the available configuration options. Figure 2 presents a fictional example of a configuration dialog.

[[Image:configuration_dialog.png|thumb|center|300px|alt=Screenshot of configuration dialog|Figure 2: Example configuration dialog for a Widget]]

== Interaction ==

Within the Desktop, Widgets are interacted with by '''taps only''' (events should be initiated when the finger is released, not pressed down). Due to the prioritization of screen switching, Widgets '''do not support dragging or swiping gestures'''; this ensures that Desktop screens can be effortlessly panned even if they are filled with Widgets.  Furthermore, '''long-tapping''' (tapping and holding the finger on the screen for an extended period of time) cannot be used for Widget interaction, since it activates the Edit mode by default.

N.B. Dragging gestures are naturally enabled in the ''Edit mode'' for repositioning Widgets, where screen switching is not supported.

In Maemo 5, Widgets '''do not support resizing'''. It is advised to not develop Widgets that dynamically change their size, because their visibility cannot be ensured; since Widgets can be placed near the edges of the screen, or near each other, any appearing elements can become occluded or entirely overlapped by other Widgets, or hidden outside the bounds of the screen.

All tappable elements on Widgets must contain a graphical highlight (pressed‐down) state for providing visual feedback on the action. If the entire Widget is a tappable element, such as with ''Web bookmarks'', the highlight state also encompasses the whole Widget. Examples of highlight states are shown in Figure 3.

[[Image:highlight_states.png|thumb|center|300px|alt=Screenshot showing example widget states|Figure 3: Examples of highlight states of various widgets]]

While text entries and areas (also known as text input fields) are supported UI widgets, they should be used with care; if several text entries are needed, they can also be provided either via a custom dialog, or utilizing the Widget’s configuration dialog.

== Visual look-and-feel ==

=== Size ===

Widgets must be designed to be as compact in their size as possible, avoiding any excessive graphical elements that do not provide any meaningful information or controls. As a rule of thumb, the footprint of a Widget '''must never exceed half of the Desktop space''' allocated for Widgets, including a 24 pixel‐padding around the Widget (132,352 pixels total). The largest stock Widgets, ''Location'' and ''RSS'', are close to the maximum footprint of Widgets, as seen in Figure 4; another, ''Tutorial'', spans across the entire Desktop, but therefore remains limited in its height.

[[Image:location_widget.png|thumb|center|300px|alt=Screenshot of lactin widget|Figure 4: The Location Widget is close to the maximum size of Widgets]]

=== Margins and positioning ===

Layouts in Maemo 5 utilize a standardized set of margins. The recommended margins for Widgets are outlined in Table 2.

{| class=&quot;wikitable&quot;
|+ Table 2. Standard margins for Widgets.
! Logical name
! Size (pixels)
! Additional information
|-
|&lt;font color=&quot;red&quot;&gt;&lt;code&gt;HILDON_MARGIN_HALF&lt;/code&gt;&lt;/font&gt;
|&lt;font color=&quot;red&quot;&gt;4&lt;/font&gt;
|&lt;font color=&quot;red&quot;&gt;Marked as red bar in layout images&lt;/font&gt;
|-
|&lt;font color=&quot;blue&quot;&gt;&lt;code&gt;HILDON_MARGIN_DEFAULT&lt;/code&gt;&lt;/font&gt;
|&lt;font color=&quot;blue&quot;&gt;8&lt;/font&gt;
|&lt;font color=&quot;blue&quot;&gt;Marked as blue bar in layout images&lt;/font&gt;
|-
|&lt;font color=&quot;cyan&quot;&gt;&lt;code&gt;HILDON_MARGIN_DOUBLE&lt;/code&gt;&lt;/font&gt;
|&lt;font color=&quot;cyan&quot;&gt;16&lt;/font&gt;
|&lt;font color=&quot;cyan&quot;&gt;Marked as cyan bar in layout images&lt;/font&gt;
|}

Stock widgets share common margins and positioning rules. Elements within Widgets are separated from each other by &lt;code&gt;HILDON_MARGIN_HALF&lt;/code&gt;, and Widgets are surrounded by &lt;code&gt;HILDON_MARGIN_DEFAULT&lt;/code&gt;; the surrounding area includes both the outer border of the Widget, as well as a drop shadow. Some examples are presented in Figure 5, and Figure 6.

[[Image:applet-wireframes+specs.png|thumb|center|800px|alt=Illustration of widget margins|Figure 5. Examples of margin use in stock Widgets]]

[[Image:widgets+wireframes.png|thumb|center|800px|alt=Illustration of widget construction|Figure 6. Examples of visual Widget construction]]

The positioning of graphical elements such as text labels, buttons, icons and so on must be in line with the rest of the Maemo 5 guidelines.

=== Visuals ===

In Maemo 5, the overall graphical look‐and‐feel is designed as light‐colored text and icons on dark backgrounds. All of the default Widgets follow this principle; graphic themes also contain a so‐called ''reversed color palette'', which enable the use of dark text on light backgrounds.

=== Typography ===

Due to their compact size, default Widgets generally use &lt;code&gt;HomeSystemFont&lt;/code&gt; or &lt;code&gt;SmallSystemFont&lt;/code&gt; as the font size, while &lt;code&gt;DefaultTextColor&lt;/code&gt; is used as the default text color. There is also a standard Sans-Serif font available for use.

Text labels in Widgets should be separated with at least &lt;code&gt;HILDON_MARGIN_HALF&lt;/code&gt; from the edges of their respective container elements to make sure that long labels do not end up touching element borders; see Figure 5 for visualizations.

Figure 7 presents an example of the use of typography in Widgets.

[[Image:widget_typography.png|thumb|center|300px|alt=Screenshot of widget typography|Figure 7: An example of the use of typography in Widgets]]

== Development ==

=== Packaging ===

{{main|Packaging}}

Widgets are installed on the device using a normal Debian application package. As the package information of your desktop widget can be seen in Application manager (the application used to install Widgets), it is recommended to fill in the following information in the package:

* Application name – a descriptive name shown in the application package list view in Application manager 
* Application short description – the first line (or 60 first characters) of the application description 
* Application icon – a base64 encoded PNG image (sized 48×48 pixels). This icon is only shown in Application manager

Unless the installation script of the Widget package contains commands to place the Widget on the Desktop, users have to manually do so via Edit mode. Since this is an unnecessary step for the user, it is advised that the installation script handles the placement automatically. It is also possible to direct the Widget onto a specific Desktop view; however, the exact placement of the Widget cannot be specified in the script.

== References ==

* [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]
* [http://www.forum.nokia.com/info/sw.nokia.com/id/e778ba1f-2507-4672-be45-798359a3aea7/Fremantle_Master_Layout_Guide.html Fremantle Master Layout Guide]
* [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]

[[Category:Development]]
[[Category:Documentation]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Graphical UI Tutorial</title>
    <id>2294</id>
    <revision>
      <id>29195</id>
      <timestamp>2010-02-12T09:43:21Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Legacy documentation}}</comment>
      <text xml:space="preserve">{{Legacy documentation}}

*[[{{PAGENAME}}/Introduction|Introduction]]
*[[{{PAGENAME}}/Getting_started|Getting Started]]
*[[{{PAGENAME}}/Hildon_desktop|Hildon Desktop]]
*[[{{PAGENAME}}/Windows_and_dialogs|Windows and Dialogs]]
*[[{{PAGENAME}}/Menus|Menus]]
*[[{{PAGENAME}}/Toolbars|Toolbars]]
*[[{{PAGENAME}}/Navigation|Navigation]]
*[[{{PAGENAME}}/Data_selection|Data Selection]]
*[[{{PAGENAME}}/Controls|Controls]]
*[[{{PAGENAME}}/Input|Input]]
*[[{{PAGENAME}}/Additions_to_GTK+|Additions to GTK+]]
*[[{{PAGENAME}}/Utilities|Utilities]]</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Graphical UI Tutorial/Controls</title>
    <id>2135</id>
    <revision>
      <id>39529</id>
      <timestamp>2010-10-14T14:36:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">{{Legacy documentation}}

Hildon provides a set of controls specially designed for touchscreens that allows to build simple and easy-to-use interfaces. This chapter explains how to use these widgets.


== Buttons ==

A Hildon application can use several types of buttons. Hildon provides specialized buttons derived from GtkButton which provide additional commodities specific to the Hildon framework. Using &lt;code&gt;GtkButton&lt;/code&gt;s and &lt;code&gt;GtkToggleButton&lt;/code&gt;s is also recommended.

===Hildon Button===

&lt;code&gt;HildonButton&lt;/code&gt; is a &lt;code&gt;GtkButton&lt;/code&gt; which usually contains two labels: &lt;code&gt;title&lt;/code&gt; and &lt;code&gt;value&lt;/code&gt;. It can also include an image.

To create a &lt;code&gt;HildonButton&lt;/code&gt;, use the following functions:

&lt;source lang=&quot;c&quot;&gt;
GtkWidget*  hildon_button_new               (HildonSizeType size,
                                             HildonButtonArrangement arrangement);
GtkWidget*  hildon_button_new_with_text     (HildonSizeType size,
                                             HildonButtonArrangement arrangement,
                                             const gchar *title,
                                             const gchar *value);
&lt;/source&gt;

Note that in the creation of a &lt;code&gt;HildonButton&lt;/code&gt; you must indicate the value for the properties &quot;&lt;code&gt;size&lt;/code&gt;&quot; and &quot;&lt;code&gt;arrangement&lt;/code&gt;&quot;, choosing a [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Additions to GTK+#Hildon size types|Hildon size]] and a horizontal or vertical arrangement of the labels.

You can set and retrieve both labels by using the following convenience functions:

&lt;source lang=&quot;c&quot;&gt;
void        hildon_button_set_title         (HildonButton *button,
                                             const gchar *title);
void        hildon_button_set_value         (HildonButton *button,
                                             const gchar *value);
const gchar* hildon_button_get_title        (HildonButton *button);
const gchar* hildon_button_get_value        (HildonButton *button);
&lt;/source&gt;

Alternatively, use the following function to set both labels of a &lt;code&gt;HildonButton&lt;/code&gt;:

&lt;source lang=&quot;c&quot;&gt;
void        hildon_button_set_text          (HildonButton *button,
                                             const gchar *title,
                                             const gchar *value);
&lt;/source&gt;

To add images to &lt;code&gt;HildonButton&lt;/code&gt;s, use the following functions to set and retrieve the current image: &lt;code&gt;hildon_button_set_image()&lt;/code&gt; and &lt;code&gt;hildon_button_get_image()&lt;/code&gt;.

You can also set the position of the image.

&lt;source lang=&quot;c&quot;&gt;
void        hildon_button_set_image_position (HildonButton *button,
                                              GtkPositionType position);
&lt;/source&gt;

Currently supported positions are &lt;code&gt;GTK_POS_LEFT&lt;/code&gt; or &lt;code&gt;GTK_POS_RIGHT&lt;/code&gt;.

The visual style (color, fonts, etc.) of a &lt;code&gt;HildonButton&lt;/code&gt; can be changed by using the function &lt;code&gt;hildon_button_set_style()&lt;/code&gt;. Use &lt;code&gt;HILDON_BUTTON_STYLE_NORMAL&lt;/code&gt; to make it look like a normal &lt;code&gt;HildonButton&lt;/code&gt;, or &lt;code&gt;HILDON_BUTTON_STYLE_PICKER&lt;/code&gt; to make it look like a &lt;code&gt;HildonPickerButton&lt;/code&gt;.

The next simple example shows how to create a &lt;code&gt;HildonButton&lt;/code&gt;, set the label text and add an image.

'''Example 7.1. Example of a Hildon button with a label and an image'''

&lt;source lang=&quot;c&quot;&gt;
GtkWidget *
create_button (void)
{
    GtkWidget *button;
    GtkWidget *image;
    /* Create a hildon button */
    button = hildon_button_new (HILDON_SIZE_AUTO_WIDTH | HILDON_SIZE_FINGER_HEIGHT,
                                HILDON_BUTTON_ARRANGEMENT_VERTICAL);
    /* Set labels value */
    hildon_button_set_text (HILDON_BUTTON (button), &quot;Some title&quot;, &quot;Some value&quot;);
    /* Set image */
    image = gtk_image_new_from_stock (GTK_STOCK_INFO, GTK_ICON_SIZE_BUTTON);
    hildon_button_set_image (HILDON_BUTTON (button), image);
    hildon_button_set_image_position (HILDON_BUTTON (button), GTK_POS_RIGHT);
    return button;
}
&lt;/source&gt;

===Hildon Check Button===

&lt;code&gt;HildonCheckButton&lt;/code&gt; is a button that contains a label and a check box. The check box toggles between checked or unchecked.

To create a &lt;code&gt;HildonCheckButton&lt;/code&gt;:

&lt;source lang=&quot;c&quot;&gt;
GtkWidget*  hildon_check_button_new         (HildonSizeType size);
&lt;/source&gt;

Note that, again, you must specify the size of the button.

You can retrieve or set the current state of the button with the following functions, respectively:

&lt;source lang=&quot;c&quot;&gt;
gboolean    hildon_check_button_get_active  (HildonCheckButton *button);
void        hildon_check_button_set_active  (HildonCheckButton *button,
                                             gboolean is_active);
&lt;/source&gt;

The signal &quot;&lt;code&gt;toggled&lt;/code&gt;&quot; is emitted when the state of the button changes. A handler can be attached to this signal if a further action is required.

Here is a simple example which creates a check button and a simple callback to handle the signal &quot;&lt;code&gt;toggled&lt;/code&gt;&quot;.

'''Example 7.2. Example of a Hildon check button'''

&lt;source lang=&quot;c&quot;&gt;
void
button_toggled (HildonCheckButton *button, gpointer user_data)
{
    gboolean active;
    active = hildon_check_button_get_active (button);
    if (active)
       g_debug (&quot;Button is active&quot;);
    else
       g_debug (&quot;Button is not active&quot;);
}
GtkWidget *
create_button (void)
{
    GtkWidget *button;
    button = hildon_check_button_new (HILDON_SIZE_AUTO);
    gtk_button_set_label (GTK_BUTTON (button), &quot;Click me&quot;);
    g_signal_connect (button, &quot;toggled&quot;, G_CALLBACK (button_toggled), NULL);
    return button;
}
&lt;/source&gt;

==Using Gtk Buttons and Toggles==

As was said above, apart from Hildon specific buttons, use &lt;code&gt;GtkButton&lt;/code&gt; and &lt;code&gt;GtkToggleButton&lt;/code&gt; also in the Hildon framework.

===GtkButton===

If only a label is needed, you do not need to use &lt;code&gt;HildonButton&lt;/code&gt;s and a &lt;code&gt;GtkButton&lt;/code&gt; can be used instead. You can use it as you would do in a GTK+ application. The only change is the creation function that you must use:

&lt;source lang=&quot;c&quot;&gt;
GtkWidget*  hildon_gtk_button_new           (HildonSizeType size);
&lt;/source&gt;

This alternative constructor allows you to set a Hildon size for the newly create function.

===GtkToggleButton===

To create a &lt;code&gt;GtkToggleButton&lt;/code&gt; in a Hildon application you should use:

&lt;source lang=&quot;c&quot;&gt;
GtkWidget*  hildon_gtk_toggle_button_new    (HildonSizeType size);
&lt;/source&gt;

==GtkRadioButton==

To create a &lt;code&gt;GtkRadioButton&lt;/code&gt; in a Hildon application, use:

&lt;source lang=&quot;c&quot;&gt;
GtkWidget*  hildon_gtk_radio_button_new     (HildonSizeType size,
                                             GSList *group);
&lt;/source&gt;

The most common use case of this type of buttons in a Hildon application is as filters in a application menu. For more information, see section Touch View Menu.

==Text display and handling ==

Text entry fields are used for entering one or more lines of plain text. Use a &lt;code&gt;HildonEntry&lt;/code&gt; for a single-line text input or &lt;code&gt;HildonTextView&lt;/code&gt; if you need a multi-line text input.

===Hildon Text Entry===

The &lt;code&gt;HildonEntry&lt;/code&gt; is a GTK+ widget which represents a text entry. It is derived from the &lt;code&gt;GtkEntry&lt;/code&gt; widget and provides additional commodities specific to the Hildon framework.

The main additional feature is a placeholder text to display if the entry is empty and not in focus.

Creating a new &lt;code&gt;HildonEntry&lt;/code&gt;:

&lt;source lang=&quot;c&quot;&gt;
GtkWidget*  hildon_entry_new                (HildonSizeType size);
&lt;/source&gt;

Note that the creation function needs to specify a size from &lt;code&gt;HildonSizeType&lt;/code&gt;.

The placeholder is stored as a property. To set it, use the following convenience function:

&lt;source lang=&quot;c&quot;&gt;
void        hildon_entry_set_placeholder    (HildonEntry *entry,
                                             const gchar *text);
&lt;/source&gt;

Here's a very simple example showing how to create a HindonEntry.

'''Example 7.3. Example of a Hildon entry'''

&lt;source lang=&quot;c&quot;&gt;
GtkWidget *
create_entry (void)
{
    GtkWidget *entry;
    entry = hildon_entry_new (HILDON_SIZE_AUTO);
    hildon_entry_set_placeholder (HILDON_ENTRY (entry),
	                          &quot;First name&quot;);
    return entry;
}
&lt;/source&gt;

===Hildon Text Area===

The &lt;code&gt;HildonTextView&lt;/code&gt; is a GTK+ widget which represents a text area in Hildon applications. It is derived from the &lt;code&gt;GtkTextView&lt;/code&gt; widget and provides additional commodities specific to the Hildon framework.

Create a &lt;code&gt;HildonTextView&lt;/code&gt;:

&lt;source lang=&quot;c&quot;&gt;
GtkWidget*  hildon_text_view_new            (void);
&lt;/source&gt;

Like for the &lt;code&gt;HildonTextEntry&lt;/code&gt; presented above, you can store a placeholder as well using the function.

&lt;source lang=&quot;c&quot;&gt;
void        hildon_text_view_set_placeholder    (HildonTextView *text_view,
                                                 const gchar *text);
&lt;/source&gt;

The text that is being edited with a &lt;code&gt;HildonTextView&lt;/code&gt; is represented by a object &lt;code&gt;GtkTextBuffer&lt;/code&gt;. The following functions can be used to set and retrieve the buffer associated with a &lt;code&gt;HildonTextView&lt;/code&gt;.

&lt;source lang=&quot;c&quot;&gt;
void        hildon_text_view_set_buffer         (HildonTextView *text_view,
                                                 GtkTextBuffer *buffer);
GtkTextBuffer* hildon_text_view_get_buffer      (HildonTextView *text_view);
&lt;/source&gt;

Here is an example that shows how to create a &lt;code&gt;HildonTextView&lt;/code&gt; and how to set its placeholder. Also, the buffer is retrieved and a function is set as a handler to the &quot;changed&quot; of the buffer. The handler simply gets the text from the &lt;code&gt;HildonTextView&lt;/code&gt;'s buffer and prints it.

'''Example 7.4. Example of a Hildon text view with a placeholder'''

&lt;source lang=&quot;c&quot;&gt;
static void
text_changed (GtkTextBuffer *buffer, 
              gpointer *user_data)
{
    gchar *text;
    GtkTextIter start, end;
    gtk_text_buffer_get_start_iter (buffer, &amp;start);
    gtk_text_buffer_get_end_iter (buffer, &amp;end);
    text = gtk_text_buffer_get_text (buffer, &amp;start, &amp;end, FALSE);
    g_debug (text);
}
GtkWidget *
create_text_view (void)
{
    GtkWidget *text_view;
    GtkTextBuffer *buffer;
    text_view = hildon_text_view_new();
    hildon_text_view_set_placeholder (HILDON_TEXT_VIEW (text_view),
                                      &quot;Type some text here&quot;);
    buffer = hildon_text_view_get_buffer(HILDON_TEXT_VIEW(text_view));
    g_signal_connect (buffer,
                      &quot;changed&quot;,
                      G_CALLBACK (text_changed),
                      NULL);
    return text_view;
}
&lt;/source&gt;

===Warning===

Although &lt;code&gt;HildonTextView&lt;/code&gt; is derived from &lt;code&gt;GtkTextView&lt;/code&gt;, &lt;code&gt;gtk_text_view_get_buffer()&lt;/code&gt; and&lt;code&gt; gtk_text_view_set_buffer()&lt;/code&gt; must never be used to get/set the buffer in this widget, &lt;code&gt;hildon_text_view_get_buffer()&lt;/code&gt; and &lt;code&gt;hildon_text_view_set_buffer()&lt;/code&gt; must be used instead.

==Notification widgets ==

To cover the main use cases regarding notification of users, Hildon provides banners and notes. Banner widgets display a text information during a certain period of time. Notes are specialized &lt;code&gt;GtkDialog&lt;/code&gt;s that need a small amount of input from the user.

===Banners===

A &lt;code&gt;HildonBanner&lt;/code&gt; is useful to display information which does not need any user response. This widget automatically disappears after a certain time period.

To create and show a banner, use the following function:

&lt;source lang=&quot;c&quot;&gt;
GtkWidget*  hildon_banner_show_information  (GtkWidget *widget,
                                             const gchar *icon_name,
                                             const gchar *text);
GtkWidget*  hildon_banner_show_informationf (GtkWidget *widget,
                                             const gchar *icon_name,
                                             const gchar *format,
                                             ...);
GtkWidget*  hildon_banner_show_information_with_markup
                                            (GtkWidget *widget,
                                             const gchar *icon_name,
                                             const gchar *markup);
&lt;/source&gt;

All functions above require a widget as an argument that must be a pointer to the owner widget of the banner. Usually, the owner is the window that represents the currently displayed view.

Function &lt;code&gt;hildon_banner_show_information()&lt;/code&gt; shows a banner with the given text.

Function &lt;code&gt;hildon_banner_show_informationf()&lt;/code&gt; shows a banner which displays the text given by the printf-like formated string applied to the parameters that the rest of the function's arguments represent.

You can also apply a Pango markup and add some attributes to the displayed text. To do that, either use &lt;code&gt;hildon_banner_show_information_with_markup()&lt;/code&gt; to create the banner or setup the markup by calling &lt;code&gt;hildon_banner_set_markup()&lt;/code&gt; after the initialization. [@@COMMENT@@ LINK TO PANGO MARKUP]

===Warning===

Currently, icons are not displayed in banners, so any value that you pass as the &lt;code&gt;icon_name&lt;/code&gt; is ignored.

The period of time after the banner automatically disappear is stored in the property &quot;&lt;code&gt;timeout&lt;/code&gt;&quot; (in miliseconds). A convenience function to set this property is provided:

&lt;source lang=&quot;c&quot;&gt;
void        hildon_banner_set_timeout       (HildonBanner *self,
                                             guint timeout);
&lt;/source&gt;

Here is a simple example showing how to setup and show an informational banner.

'''Example 7.5. Setting up an informational banner'''

&lt;source lang=&quot;c&quot;&gt;
GtkWidget* banner;
/* Create a banner with a markup */
banner = hildon_banner_show_information_with_markup (widget,
                                                     NULL,
                                                     &quot;&lt;b&gt;Information banner&lt;/b&gt;&quot;);
hildon_banner_set_timeout (HILDON_BANNER (banner), 9000);
&lt;/source&gt;

===Note===

Only one timed banner can exist for each window in your application. If you spawn a new banner before the previous one has timed out, the first one is replaced.

====Notes====

&lt;code&gt;HildonNote&lt;/code&gt;s are &lt;code&gt;GtkDialog&lt;/code&gt;s designed to request a small amount of input from users. Usually, notes show an information text and buttons to confirm and cancel, for example, according to their type.

Unlike banners, notes always need a user action, that is, notes do not disappear automatically after a period of time.

The &lt;code&gt;HildonNote&lt;/code&gt; widget provides functions to create and show different types of notes: information notes, confirmation notes and cancel notes.

&lt;source lang=&quot;c&quot;&gt;
GtkWidget*  hildon_note_new_information     (GtkWindow *parent,
                                             const gchar *description);
GtkWidget*  hildon_note_new_confirmation    (GtkWindow *parent,
                                             const gchar *description);
GtkWidget*  hildon_note_new_confirmation_add_buttons
                                            (GtkWindow *parent,
                                             const gchar *description,
                                             ...);
GtkWidget*  hildon_note_new_cancel_with_progress_bar
                                            (GtkWindow *parent,
                                             const gchar *description,
                                             GtkProgressBar *progressbar);
&lt;/source&gt;

Every function to create notes receives as a parameter the parent window of the newly created note. This is important in order to allow the window manager to handle the windows properly.

====Information Notes====

Information notes are used to show an information to the users. This note disappears when user taps outside the note's area. Otherwise the note remains visible.

Here is an example of how to show an information note and handle the user's answer.

'''Example 7.6. Example of a Hildon information note'''

&lt;source lang=&quot;c&quot;&gt;
static void
show_information_note                          (GtkWidget *parent)
{
  GtkWidget *window, *note;
  gint response;
  note = hildon_note_new_information (NULL,
    &quot;Lorem ipsum dolor sit amet, consectetur adipiscing elit.&quot;
    &quot;Maecenas tristique dictum est. Aenean rhoncus aliquam mi.&quot;
    &quot;In hac habitasse platea dictumst.&quot;);
  response = gtk_dialog_run (GTK_DIALOG (note));
  if (response == GTK_RESPONSE_DELETE_EVENT)
    g_debug (&quot;%s: GTK_RESPONSE_DELETE_EVENT&quot;, __FUNCTION__);
  gtk_object_destroy (GTK_OBJECT (note));
}
&lt;/source&gt;

====Confirmation Notes====

Confirmation notes show an information text that is usually a question and two buttons labelled &quot;Yes&quot; and &quot;No&quot;.

To create a confirmation note with the text you specify and two buttons labelled &quot;Yes&quot;/&quot;No&quot;, use &lt;code&gt;hildon_note_new_confirmation()&lt;/code&gt; as follows:

'''Example 7.7. Example of a Hildon confirmation note'''

&lt;source lang=&quot;c&quot;&gt;
static void
show_confirmation_note                          (GtkWidget *parent)
{
    GtkWidget *note;
    gint response;
    note = hildon_note_new_confirmation (parent,
                                         &quot;Do you want foo ?&quot;);
    response = gtk_dialog_run (GTK_DIALOG (note));
    if (response == GTK_RESPONSE_DELETE_EVENT)
      g_debug (&quot;%s: GTK_RESPONSE_DELETE_EVENT&quot;, __FUNCTION__);
    gtk_object_destroy (GTK_OBJECT (note));
}
&lt;/source&gt;

Alternatively, you can use &lt;code&gt;hildon_note_new_confirmation_add_buttons()&lt;/code&gt; to create a confirmation note with custom buttons.

'''Example 7.8. Example of a Hildon confirmation note with custom buttons'''

&lt;source lang=&quot;c&quot;&gt;
static void
show_confirmation_note                          (GtkWidget *parent)
{
    GtkWidget *note;
    gint response;
    note = hildon_note_new_confirmation_add_buttons(parent,
                                                    &quot;Do you want foo?&quot;,
                                                    &quot;ACCEPT&quot;, GTK_RESPONSE_OK,
                                                    &quot;CANCEL&quot;, GTK_RESPONSE_CANCEL,
                                                    &quot;DELETE&quot;, GTK_RESPONSE_DELETE_EVENT,
                                                    NULL);
    response = gtk_dialog_run (GTK_DIALOG (note));
    if (response == GTK_RESPONSE_DELETE_EVENT)
      g_debug (&quot;%s: GTK_RESPONSE_DELETE_EVENT&quot;, __FUNCTION__);
    gtk_object_destroy (GTK_OBJECT (note));
}
&lt;/source&gt;

'''Cancel Notes'''

A cancel note displays a text, a Cancel button and a progress bar. They are useful to tell users that a long task is in progress. Also, cancel notes allow users to cancel the task in progress.

Next example shows how to create a cancel note with a progress bar. Note that to control the progress bar, additional code is needed.

'''Example 7.9. Example of a Hildon cancel note with a progress bar'''

&lt;source lang=&quot;c&quot;&gt;
static void
show_information_note                          (GtkWidget *parent)
{
  GtkWidget *note
  GtkProgressBar *progressbar
  gint response;
  progressbar = gtk_progress_bar_new()
  note = hildon_note_new_cancel_with_progress_bar (parent,
                                                  &quot;A large task is happening&quot;
                                                  progressbar);
  response = gtk_dialog_run (GTK_DIALOG (note));
  if (response == GTK_RESPONSE_DELETE_EVENT)
    g_debug (&quot;%s: GTK_RESPONSE_DELETE_EVENT&quot;, __FUNCTION__);
  gtk_object_destroy (GTK_OBJECT (note));
}
&lt;/source&gt;</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Graphical UI Tutorial/Data selection</title>
    <id>2134</id>
    <revision>
      <id>39549</id>
      <timestamp>2010-10-15T14:34:51Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">{{Legacy documentation}}

Hildon provides a set of widgets for data selection specially designed for touchscreens that allows to build simple and easy-to-use interfaces.

The key widget is a selector widget that allows users to select items from one to many predefined lists. It is similar to a combo box but allows several individual pannable columns.

In addition, Hildon also provides a specialized dialog and a specialized button to be used in combination with a selector.

==Touch selector ==

&lt;code&gt;HildonTouchSelector&lt;/code&gt; is the mentioned selector widget. This widget can display several pannable columns. Each column is represented by a &lt;code&gt;GtkTreeModel&lt;/code&gt; and single or multiple selection is allowed.

===Text Columns Example===

Let us see the simplest possible example. A selector that shows a single text column.

'''Example 6.1. Example of a single-column selector'''

[[Image:example-single-text-column-selector.png|frame|center|alt=Screenshot of TouchSelector|Single text column TouchSelector]]

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon/hildon.h&gt;

void selection_changed (HildonTouchSelector * selector, gint column, gpointer user_data);
static GtkWidget *create_simple_selector ();

void
selection_changed (HildonTouchSelector * selector, gint column,
                   gpointer user_data)
{
  gchar *current_selection = NULL;

  current_selection = hildon_touch_selector_get_current_text (selector);
  g_debug (&quot;Current selection : %s&quot;, current_selection);
  g_debug (&quot;User data=%s\n&quot;, (gchar*) user_data);
}

static GtkWidget *
create_simple_selector ()
{
  GtkWidget *selector = NULL;
  gint i;

  /* Create a HildonTouchSelector with a single text column */
  selector = hildon_touch_selector_new_text();

  g_signal_connect (G_OBJECT (selector), &quot;changed&quot;,
                    G_CALLBACK (selection_changed), (gpointer) &quot;some data&quot;);

  /* Populate selector */
  for (i = 1; i &lt;= 10 ; i++) {
    gchar *label = g_strdup_printf (&quot;Item %d&quot;, i);

    /* Add item to the column */
    hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector),
                                       label);

    g_free (label);
  }

  /* Set selection mode */
  hildon_touch_selector_set_column_selection_mode (HILDON_TOUCH_SELECTOR (selector),
                                                   HILDON_TOUCH_SELECTOR_SELECTION_MODE_MULTIPLE);

  return selector;
}

int
main (int argc, char **argv)
{
  HildonProgram *program = NULL;
  GtkWidget *window = NULL;
  GtkWidget *selector = NULL;
  GtkWidget *picker_button = NULL;

  hildon_gtk_init (&amp;argc, &amp;argv);

  program = hildon_program_get_instance ();
  g_set_application_name
    (&quot;hildon-touch-selector example program&quot;);

  window = hildon_stackable_window_new ();
  hildon_program_add_window (program, HILDON_WINDOW (window));

  /* Create touch selector */
  selector = create_simple_selector ();

  /* Create a picker button */
  picker_button = hildon_picker_button_new (HILDON_SIZE_AUTO,
                                            HILDON_BUTTON_ARRANGEMENT_VERTICAL);

  /* Set a title to the button*/
  hildon_button_set_title (HILDON_BUTTON (picker_button), &quot;Select an item&quot;);

  /* Attach touch selector to the picker button*/
  hildon_picker_button_set_selector (HILDON_PICKER_BUTTON (picker_button),
                                     HILDON_TOUCH_SELECTOR (selector));

  /* Add button to main window */
  gtk_container_add (GTK_CONTAINER (window), picker_button);

  g_signal_connect (G_OBJECT (window), &quot;destroy&quot;,
                    G_CALLBACK (gtk_main_quit), NULL);

  gtk_widget_show_all (GTK_WIDGET (window));

  gtk_main ();

  return 0;
}
&lt;/source&gt;

A &lt;code&gt;HildonTouchSelector&lt;/code&gt; with a single text column is created in this program using the following convenience constructor.

&lt;source lang=&quot;c&quot;&gt;
GtkWidget*  hildon_touch_selector_new_text  (void);
&lt;/source&gt;

To add text to a selector created by calling the constructor above, use the function.

&lt;source lang=&quot;c&quot;&gt;
void        hildon_touch_selector_append_text (HildonTouchSelector *selector,
                                               const gchar *text);
&lt;/source&gt;

Alternatively, you can use &lt;code&gt;hildon_touch_selector_prepend_text()&lt;/code&gt; or &lt;code&gt;hildon_touch_selector_insert_text()&lt;/code&gt; to add text to the selector in different positions.

You can set the desired selection with the function. In the example, the mode was set to allow multiple selection.

&lt;source lang=&quot;c&quot;&gt;
void        hildon_touch_selector_set_column_selection_mode (HildonTouchSelector *selector,
                                                             HildonTouchSelectorSelectionMode mode);
&lt;/source&gt;

This example shows a very common use case of this widget. Next section shows how to build a more complex selector with several columns of different types.

Also a simple function was set as a handler for the &quot;&lt;code&gt;changed&lt;/code&gt;&quot; signal which is emitted each time the selected items change.

The callback retrieves a text representation of the currently selected items in the selector by calling &lt;code&gt;hildon_touch_selector_get_current_text()&lt;/code&gt;. By default this function returns a concatenation of the items selected, separated by a comma.

To change how the text representation is generated, set your own function by  calling &lt;code&gt;hildon_touch_selector_set_print_func()&lt;/code&gt; and using the following signature for the function:

&lt;source lang=&quot;c&quot;&gt;
gchar*      user_function (HildonTouchSelector *selector);
&lt;/source&gt;

===Custom columns===

In the previous section, a selector with a text column was created. That is probably the most common use case of touch selectors. Convenience functions to deal with text columns was used. However, you can also set other type of columns.

Because each column is basically a treeview, you can use the same display to different data and in different ways as you would do with a &lt;code&gt;GtkTreeview&lt;/code&gt;. Thus, you can use the &lt;code&gt;GtkCellRenderer&lt;/code&gt;s available in GTK+ to display the data on each cell.

This section explains how to build a selector within a column displaying stock icons. Firstly, let us take a look on the function which used for appending new columns to a touchable selector.

&lt;source lang=&quot;c&quot;&gt;
HildonTouchSelectorColumn* hildon_touch_selector_append_column (HildonTouchSelector *selector,
                                                                GtkTreeModel *model,
                                                                GtkCellRenderer *cell_renderer,
                                                                ...);
&lt;/source&gt;

This functions adds a new column to the widget whose data is obtained from the passed model. Pass also a &lt;code&gt;GtkCellRenderer&lt;/code&gt; and a list of pairs property/value which is set as attributes of the renderer.

This function basically adds a &lt;code&gt;GtkTreeView&lt;/code&gt; to the widget. For more information on how &lt;code&gt;GtkTreeView&lt;/code&gt;s work, see [http://maemo.org/api_refs/5.0/beta/gtk/ GTK+ widgets] before.
The following example shows how to set a column to display images in a selector. For clarity, only the function which creates the selector is shown.

'''Example 6.2. Example of a selector with a custom column'''

[[Image:example-single-column-selector.png|frame|center|alt=Screenshot of TouchSelector|Single column TouchSelector]]

&lt;source lang=&quot;c&quot;&gt;
static GtkWidget *
create_customized_selector()
{
  GtkWidget *selector;
  GSList *icon_list = NULL;
  GtkListStore *store_icons = NULL;
  GSList *item = NULL;
  GtkCellRenderer *renderer = NULL;
  HildonTouchSelectorColumn *column = NULL;
  /* Create a touch selector */
  selector = hildon_touch_selector_new();
  /* Stock icons will be used for the example */
  icon_list = gtk_stock_list_ids();
  /* Create model to store selector's items */
  store_icons = gtk_list_store_new (1, G_TYPE_STRING);
  /* Populate model */
  for (item = icon_list; item; item = g_slist_next (item)) {
    GtkTreeIter iter;
    gchar *label = item-&gt;data;
    gtk_list_store_append (store_icons, &amp;iter);
    gtk_list_store_set (store_icons, &amp;iter, 0, label, -1);
    g_free (label);
  }
  g_slist_free (icon_list);
  /* Create and set up a pixbuf renderer to use in the selector */
  renderer = gtk_cell_renderer_pixbuf_new();
  gtk_cell_renderer_set_fixed_size (renderer, -1, 100);
  /* Add the column to the selector */
  column = hildon_touch_selector_append_column (HILDON_TOUCH_SELECTOR (selector),
                                                GTK_TREE_MODEL (store_icons),
                                                renderer,
                                                &quot;stock-id&quot;, 0,
                                                NULL);
  /* Set the selection mode */
  hildon_touch_selector_set_column_selection_mode (HILDON_TOUCH_SELECTOR (selector),
                                    HILDON_TOUCH_SELECTOR_SELECTION_MODE_MULTIPLE);
  /* Set the property &quot;text-column&quot; that indicates the column
   * of the model to get the string from */
  g_object_set (G_OBJECT (column), &quot;text-column&quot;, 0, NULL);
  return selector;
}
&lt;/source&gt;

The first step in the example is to create and populate a &lt;code&gt;GtkTreeModel&lt;/code&gt;. A &lt;code&gt;GtkListStore&lt;/code&gt; is used in the example. In most use cases of the touchable selectors a &lt;code&gt;GtkListStore&lt;/code&gt; fits well as selectors were designed to allow users to select from a list of items.

In this case, the model stores a list of GTK+ stock icons identifiers. The following call creates a list store with one column to store strings.

&lt;source lang=&quot;c&quot;&gt;
store_icons = gtk_list_store_new (1, G_TYPE_STRING);
&lt;/source&gt;

The following loop appends all stock identifiers in the newly created model. The identifiers were previously retrieved using

&lt;source lang=&quot;c&quot;&gt;
gtk_stock_list_ids().
  for (item = icon_list; item; item = g_slist_next (item)) {
    GtkTreeIter iter;
    gchar *label = item-&gt;data;
    gtk_list_store_append (store_icons, &amp;iter);
    gtk_list_store_set (store_icons, &amp;iter, 0, label, -1);
    g_free (label);
  }
  g_slist_free (icon_list);
&lt;/source&gt;

The next step is to set up the renderer which renders each row of the new column. We need a &lt;code&gt;GtkCellRendererPixbuf&lt;/code&gt; to display the stock icons.

&lt;source lang=&quot;c&quot;&gt;
renderer = gtk_cell_renderer_pixbuf_new();
&lt;/source&gt;

Finally, we create and append the new column, using the model and renderer previously created.

This call also sets the property &quot;&lt;code&gt;stock-id&lt;/code&gt;&quot; of the &lt;code&gt;GtkCellrendererPixbuf&lt;/code&gt;. The value is set to 0 which is the number of the column in the &lt;code&gt;GtkTreeModel&lt;/code&gt; that stores the &lt;code&gt;stock-id&lt;/code&gt;.

&lt;source lang=&quot;c&quot;&gt;
column = hildon_touch_selector_append_column (HILDON_TOUCH_SELECTOR (selector),
                                        GTK_TREE_MODEL (store_icons),
                                              renderer,
                                              &quot;stock-id&quot;, 0,
                                              NULL);
&lt;/source&gt;

To summarize, setting a new custom column in a touchable selector is quite similar to setting a new column in a normal &lt;code&gt;GtkTreeView&lt;/code&gt;. Create a model to store the data and a cell renderer to properly show this data in each row, and finally add the new column.

==Picker dialog and picker buttons ==

Normally, you use &lt;code&gt;HildonTouchSelector&lt;/code&gt; together with a &lt;code&gt;HildonPickerDialog&lt;/code&gt; activated from a button. For most common cases you use &lt;code&gt;HildonPickerButton&lt;/code&gt;.

This is the usual way to present a selector to the user. The picker button opens a dialog which presents the selector and properly manages user interaction.

'''Example'''

Previous sections showed you how to create a touchable selector. In most cases the next step is to attach the selector to a &lt;code&gt;HildonPickerButton&lt;/code&gt;.

A &lt;code&gt;HildonPickerButton&lt;/code&gt; is a special &lt;code&gt;GtkButton&lt;/code&gt; which displays two labels, title and value, and brings up a &lt;code&gt;HildonPickerDialog&lt;/code&gt;. The user chooses one or several items. A string representation of the chosen items is displayed in the value label of the picker button.

Below, a modified version of the previous main function is shown, in which you can check how a &lt;code&gt;HildonPickerButton&lt;/code&gt; is created and attached to a selector. Also a callback to catch the signal &quot;&lt;code&gt;value-changed&lt;/code&gt;&quot; emitted is added.

[[Image:example-picker-button.png|frame|center|alt=Screenshot of picker button|PickerButton]]

'''Example 6.3. Example of a Hildon picker button'''

&lt;source lang=&quot;c&quot;&gt;
static void
on_picker_value_changed (HildonPickerButton * button, gpointer data)
{
  g_print (&quot;Newly selected value: %s\n&quot;,
           hildon_button_get_value (HILDON_BUTTON (button)));
}

int
main (int argc, char **argv)
{
  HildonProgram *program;
  GtkWidget *window;
  GtkWidget *picker_button;

  hildon_gtk_init (&amp;argc, &amp;argv);

  program = hildon_program_get_instance ();
  g_set_application_name (&quot;hildon-touch-selector example program&quot;);

  window = hildon_stackable_window_new ();
  hildon_program_add_window (program, HILDON_WINDOW (window));

  /* Create touch selector */
  selector = create_customized_selector ();

  /* Create a picker button */
  picker_button = hildon_picker_button_new (HILDON_SIZE_AUTO,
                                            HILDON_BUTTON_ARRANGEMENT_VERTICAL);

  /* Set a title to the button */
  hildon_button_set_title (HILDON_BUTTON (picker_button), &quot;Select an item&quot;);

  /* Attach the touch selector to the picker button*/
  hildon_picker_button_set_selector (HILDON_PICKER_BUTTON (picker_button),
                                     HILDON_TOUCH_SELECTOR (selector));

  /* Attach callback to the &quot;value-changed&quot; signal*/
  g_signal_connect (G_OBJECT (picker_button), &quot;value-changed&quot;,
                    G_CALLBACK (on_picker_value_changed), NULL);

  /* Add button to main window */
  gtk_container_add (GTK_CONTAINER (window), picker_button);

  g_signal_connect (G_OBJECT (window), &quot;destroy&quot;,
                    G_CALLBACK (gtk_main_quit), NULL);

  gtk_widget_show_all (GTK_WIDGET (window));

  gtk_main ();

  return 0;
}
&lt;/source&gt;

In the above example a picker button is created. The reference to the attached selector is stored in the property &quot;touch-selector&quot; of the picker button. To retrieve the attached selector , use function &lt;code&gt;hildon_picker_button_get_selector()&lt;/code&gt;. To attach the selector, use the function &lt;code&gt;hildon_picker_button_set_selector()&lt;/code&gt;.

Note that you do not need to take care of the HildonPickerDialog. The dialog is automatically brought up when users click the picker button and closed when the selection is done.

The dialog shows a button &quot;Done&quot; to allow users finish the selection when the touchable selector allows multiple selection. When the selector allows only single selection, the dialog does not show any button and closes when the user taps on one item.

The label of the button &quot;Done&quot; can be set by using &lt;code&gt;hildon_picker_button_set_done_button_text()&lt;/code&gt; and retrieved by using &lt;code&gt;hildon_picker_button_get_done_button_text()&lt;/code&gt;.

When users finish their selection, the value label on the button automatically changes to show a textual representation of the item or items selected.

In most cases you want to perform any action when selection is finished. To do that, add a handler to the signal &quot;&lt;code&gt;value-changed&lt;/code&gt;&quot; of the picker button. In this example the handler attached to &quot;&lt;code&gt;value-changed&lt;/code&gt;&quot; signal retrieves the value label of the button and prints a debug message.

==Touch selector entry ==

The &lt;code&gt;HildonTouchSelectorEntry&lt;/code&gt; is a selector widget with a text entry that allows users to select an item from a predefined list or to enter a different one in a &lt;code&gt;HildonEntry&lt;/code&gt;. Items can also be searched and selected by typing in the entry.

An additional feature is that the &lt;code&gt;HildonEntry&lt;/code&gt; is auto-completed with the list's items as the user types their name.

Example below shows how to build a selector to pick a word in a list of words.

[[Image:Touch_selector_entry.png|frame|center|alt=Screenshot of TouchSelectorEntry|TouchSelectorEntry]]

'''Example 6.4. Example of a Hildon picker button with a selector entry'''

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon/hildon.h&gt;

static const gchar* artists [] = {
  &quot;AC/DC&quot;,
  &quot;Aerosmith&quot;,
  &quot;Alice in Chains&quot;,
  &quot;Black Sabbath&quot;,
  &quot;Carcass&quot;,
  &quot;Danzig&quot;,
  &quot;Deep Purple&quot;,
  &quot;Dream Theater&quot;,
  &quot;Eric Clapton&quot;,
  NULL
};

int
main (int argc, char **argv)
{
  HildonProgram *program;
  GtkWidget *window;
  GtkWidget *button;
  GtkWidget *selector;
  gint i;
  hildon_gtk_init (&amp;argc, &amp;argv);
  program = hildon_program_get_instance ();
  g_set_application_name
    (&quot;HildonTouchSelectorEntry example program&quot;);
  window = hildon_stackable_window_new ();
  hildon_program_add_window (program, HILDON_WINDOW (window));
  /* Create a picker button */
  button = hildon_picker_button_new (HILDON_SIZE_AUTO,
                                     HILDON_BUTTON_ARRANGEMENT_VERTICAL);
  hildon_button_set_title (HILDON_BUTTON (button), &quot;Pick a band!&quot;);
  /* Create a touch selector entry */
  selector = hildon_touch_selector_entry_new_text ();
  /* Populate the selector */
  for (i = 0; artists [i] != NULL; i++) {
    hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector),
                                       artists [i]);
  }
  /* Attach selector to the picker button */
  hildon_picker_button_set_selector (HILDON_PICKER_BUTTON (button),
                                     HILDON_TOUCH_SELECTOR (selector));
  gtk_container_add (GTK_CONTAINER (window), button);
  g_signal_connect (G_OBJECT (window), &quot;destroy&quot;,
                    G_CALLBACK (gtk_main_quit), NULL);
  gtk_widget_show_all (GTK_WIDGET (window));
  gtk_main ();
  return 0;
}
&lt;/source&gt;

As you can see in the example above, the use of this widget is similar to using a normal touchable selector.

You can also use custom columns in a &lt;code&gt;HildonTouchableEntry&lt;/code&gt; but at least one column must be a text column. The text column is indicated by the property &quot;&lt;code&gt;text_column&lt;/code&gt;&quot; which you set with &lt;code&gt;hildon_touch_selector_entry_set_text_column()&lt;/code&gt;.

==Pre-built selectors ==

The widgets &lt;code&gt;HildonDateButton&lt;/code&gt; and &lt;code&gt;HildonTimeButton&lt;/code&gt; are buttons displaying and allowing the selection of date and time, respectively. Developers can use them directly instead of building their own date or time selectors.

Both widgets are specialized picker buttons with a convenient touchable selector attached that you can use directly in your application.

Here a simple application using a &lt;code&gt;HildonDateButton&lt;/code&gt;.

'''Example 6.5. Example of a Hildon date button'''

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon/hildon.h&gt;

int
main (int argc, char **argv)
{
  HildonProgram *program = NULL;
  GtkWidget *window = NULL;
  GtkWidget *picker_button = NULL;

  hildon_gtk_init (&amp;argc, &amp;argv);

  program = hildon_program_get_instance ();
  g_set_application_name
    (&quot;hildon-date-button example program&quot;);

  window = hildon_stackable_window_new ();
  hildon_program_add_window (program, HILDON_WINDOW (window));

  /* Create a picker button */
  picker_button = hildon_date_button_new (HILDON_SIZE_AUTO,
                                          HILDON_BUTTON_ARRANGEMENT_VERTICAL);

  /* Set a title to the button*/
  hildon_button_set_title (HILDON_BUTTON (picker_button), &quot;Pick a date&quot;);

  /* Add button to main window */
  gtk_container_add (GTK_CONTAINER (window), picker_button);

  g_signal_connect (G_OBJECT (window), &quot;destroy&quot;,
                    G_CALLBACK (gtk_main_quit), NULL);

  gtk_widget_show_all (GTK_WIDGET (window));

  gtk_main ();

  return 0;
}
&lt;/source&gt;</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Graphical UI Tutorial/Getting started</title>
    <id>2129</id>
    <revision>
      <id>39539</id>
      <timestamp>2010-10-15T08:50:04Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">{{Legacy documentation}}

Before starting to develop your Hildon applications you need to get, install and properly configure the Maemo SDK. You can download and learn how to use the latest SDK in [http://maemo.org/development/sdks/ Maemo SDK Releases].

To begin our introduction to Hildon, we start with the simplest program possible - &lt;code&gt;base.c&lt;/code&gt;. This program creates a window and has no way of exiting except to be killed by using the shell.


'''Example 1.1. Simple Hildon program'''

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon/hildon.h&gt;
int main( int   argc,
          char *argv[] )
{
  GtkWidget *window;
  hildon_gtk_init (&amp;argc, &amp;argv);
  g_set_application_name (&quot;Simplest example&quot;);
  window = hildon_window_new ();
  gtk_widget_show  (window);
  gtk_main ();
  return 0;
}
&lt;/source&gt;

To compile the program, use the following command:

 gcc base.c `pkg-config hildon-1 --cflags --libs` -o base

All programs include &lt;code&gt;hildon/hildon.h&lt;/code&gt; which declares the variables, functions, structures, and so on, that are used in your Hildon application.

The next line is necessary in every program:

&lt;source lang=&quot;c&quot;&gt;
hildon_gtk_init (&amp;argc, &amp;argv);
&lt;/source&gt;

This function replaces a call to &lt;code&gt;gtk_init()&lt;/code&gt; and also initializes the Hildon library. This function also performs a call to &lt;code&gt;gtk_init()&lt;/code&gt;. For more information on GTK+ initialization and arguments that can be passed to your application on the command line, see [http://library.gnome.org/devel/gtk/unstable/gtk-General.html#gtk-init GTK+ Reference Manual]. The next two lines of code create and display a window.

&lt;source lang=&quot;c&quot;&gt;
window = hildon_window_new ();
gtk_widget_show  (window);
&lt;/source&gt;

The &lt;code&gt;HildonWindow&lt;/code&gt; used in this example represents a top-level window in the Hildon framework. It is derived from &lt;code&gt;GtkWindow&lt;/code&gt; and provides additional commodities specific to the Hildon framework.

In very simple applications, &lt;code&gt;HildonWindow&lt;/code&gt; can be enough. However, in most of the applications, use a &lt;code&gt;HildonStackableWindow&lt;/code&gt;.

The &lt;code&gt;gtk_widget_show()&lt;/code&gt; shows the widget (makes it visible) that would not be otherwise displayed.

The last line enters the GTK+ main processing loop.

&lt;source lang=&quot;c&quot;&gt;
gtk_main  ();
&lt;/source&gt;

This call exists in every GTK+ application and therefore in every Hildon application. When control reaches this point, GTK+ sleeps waiting for X events (for example, button or key presses), timeouts, or file I/O notifications to occur. In our simple example, however, events are ignored.

==Hello World in Hildon ==

To begin our introduction to Hildon, we introduce the classic Hello World, Hildon style. This program creates a window with a widget (a button).

'''Example 1.2. Hildon Hello World program'''

&lt;source lang=&quot;c&quot;&gt;
#include                                        &lt;hildon/hildon.h&gt;

/* This is a callback function. The data arguments are ignored
 * in this example. More on callbacks . */
static void hello (GtkWidget *widget,
                   gpointer   data)
{
  g_print (&quot;Hello World!\n&quot;);
}

int
main                                            (int argc,
                                                 char **argv)
{
  HildonProgram *program;
  GtkWidget *window;
  GtkWidget *button;

  /* This is called in all Hildon applications. Arguments are parsed
   * from the command line and are returned to the application. */
  hildon_gtk_init (&amp;argc, &amp;argv);

  /* Get an instance of HildonProgram. It is an object used to represent
   * an application running in the Hildon framework.               */
  program = hildon_program_get_instance ();

  /* create a new hildon window */
  window = hildon_window_new ();

  /* Registers a window as belonging to the program */
  hildon_program_add_window (program, HILDON_WINDOW (window));

  /* When the window is given the &quot;delete_event&quot; signal (this is given
   * by the window manager, usually by the &quot;close&quot; option, or on the
   * titlebar), we ask it to call the delete_event () function
   * as defined above. The data passed to the callback
   * function is NULL and is ignored in the callback function. */
  g_signal_connect (G_OBJECT (window), &quot;delete_event&quot;,
                    G_CALLBACK (gtk_main_quit), NULL);

  /* Create a new hildon button with its title label set to &quot;Hello world!&quot;,
   * also size and type of arrangement is set */
  button = hildon_button_new_with_text (HILDON_SIZE_AUTO,
                                        HILDON_BUTTON_ARRANGEMENT_VERTICAL,
                                        &quot;Hello world!&quot;,
                                        NULL);

  /* When the button is given the &quot;clicked&quot; signal, we ask it to call the
   * hello () function as defined above. The data passed to the callback
   * function is NULL and is ignored in the callback function. */
  g_signal_connect (G_OBJECT (button), &quot;clicked&quot;,
                    G_CALLBACK (hello), NULL);

  /* This packs the button into the window (a GTK+ container). */
  gtk_container_add (GTK_CONTAINER (window),
                     button);

  /* The final step is to display this newly created widget
   * and all widgets it contains. */
  gtk_widget_show_all (GTK_WIDGET (window));

  /* All GTK+ applications must have a gtk_main(). Control ends here
   * and waits for an event to occur (like a key press or
   * mouse event). */
  gtk_main ();

  return 0;
}
&lt;/source&gt;

As you can see in this simple example, writing Hildon applications is slightly different from writing standard GTK+ applications. We are going to review these differences through the next chapters.

==Compiling Hello World ==

To compile, use the following command:

 gcc hello-world.c `pkg-config hildon-1 --cflags --libs` -o hello

This uses the program pkg-config, which can be obtained from [http://www.freedesktop.org/wiki/Home Freedesktop]. The program reads the .pc files which come with Hildon to determine what compiler switches are needed to compile programs that use it. pkg-config hildon-1 -cflags outputs a list of include directories for the compiler to look in, and pkg-config hildon-1 -libs outputs the list of libraries for the compiler to link with and the directories to find them in. Although they could be used separately as `pkg-config hildon-1 -cflags` and `pkg-config hildon-1 -libs`, in the above example they were joined as a single instance because it is easier to understand.

N.B. Note that the type of single quote (back-tick) used in the compile command above is significant.

==Stepping through Hello World ==

This section explains the Hello World example above step-by-step.

The following lines define the callback function that is called when the button is clicked. We ignore both the widget and the data in this example, but usually developers would need to handle events from them.

&lt;source lang=&quot;c&quot;&gt;
static void hello( GtkWidget *widget,
                     gpointer   data )
{
  g_print (&quot;Hello World!\n&quot;);
}
&lt;/source&gt;

The following is the definition of the main function, similar to the standard main function you would find in any C program.

&lt;source lang=&quot;c&quot;&gt;
int
main  (int argc, char **argv){
&lt;/source&gt;

The next lines of code declare pointers to an object of type &lt;code&gt;HildonProgram&lt;/code&gt; which represents an application running in the Hildon framework. Pointers to the widgets which show the application are also declared.

&lt;source lang=&quot;c&quot;&gt;
HildonProgram *program;
GtkWidget *window;
GtkWidget *button;
&lt;/source&gt;

To use Hildon, initialize it first. Initialization connects to the window system display, and parses some standard command line arguments.

&lt;source lang=&quot;c&quot;&gt;
hildon_gtk_init (&amp;argc, &amp;argv);
&lt;/source&gt;

Only one &lt;code&gt;HildonProgram&lt;/code&gt; can be created per process. Use &lt;code&gt;hildon_program_get_instance()&lt;/code&gt; to access it.

&lt;source lang=&quot;c&quot;&gt;
program = hildon_program_get_instance ();
&lt;/source&gt;

In this simple example, a new &lt;code&gt;HildonWindow&lt;/code&gt; is created. In cases with nested views, use a &lt;code&gt;HildonStackableWindow&lt;/code&gt;.

&lt;source lang=&quot;c&quot;&gt;
window = hildon_window_new ();
&lt;/source&gt;

This call registers a window as belonging to the program. This allows applying program-wide settings to all the registered windows, such as assigning a common menu to all the registered windows by setting it to the program.

&lt;source lang=&quot;c&quot;&gt;
hildon_program_add_window (program, HILDON_WINDOW (window));
&lt;/source&gt;

The following code is an example of connecting a signal handler to an object, in this case, the window. The function &lt;code&gt;gtk_main_quit()&lt;/code&gt; is set as a handler to the &quot;&lt;code&gt;delete_event&lt;/code&gt;&quot; signal. The function tells GTK+ that it must exit from &lt;code&gt;gtk_main&lt;/code&gt; when control is returned to it, making the program terminate.

&lt;source lang=&quot;c&quot;&gt;
g_signal_connect (G_OBJECT (window), &quot;delete_event&quot;,
                 G_CALLBACK (gtk_main_quit), NULL);
&lt;/source&gt;

This call creates a new &lt;code&gt;HildonButton&lt;/code&gt;. This button allows to set two labels, one main label and another secondary one. You can also set the size of the button and the order of the labels. Notice that you can use &lt;code&gt;GtkButton&lt;/code&gt;'s in Hildon applications in case you do not need the additional features that Hildon provides.

&lt;source lang=&quot;c&quot;&gt;
button = hildon_button_new_with_text (HILDON_SIZE_AUTO,
                                     HILDON_BUTTON_ARRANGEMENT_VERTICAL,
                                     &quot;Hello world!&quot;,
                                     NULL);
&lt;/source&gt;

Here, a signal handler is attached to the newly created button so that when it emits the &quot;&lt;code&gt;clicked&lt;/code&gt;&quot; signal, our &lt;code&gt;hello()&lt;/code&gt; function is called. The data is ignored, so we simply pass in &lt;code&gt;NULL&lt;/code&gt; to the &lt;code&gt;hello()&lt;/code&gt; callback function. Obviously, the &quot;&lt;code&gt;clicked&lt;/code&gt;&quot; signal is emitted when the button is pressed.

&lt;source lang=&quot;c&quot;&gt;
g_signal_connect (G_OBJECT (button), &quot;clicked&quot;,
                    G_CALLBACK (hello), NULL);
&lt;/source&gt;

This packing call tells GTK+ to place the button in the window. For more information, see the Packing Widgets section of the [http://library.gnome.org/devel/gtk-tutorial/stable/ GTK+ 2.0] Tutorial.

&lt;source lang=&quot;c&quot;&gt;
gtk_container_add (GTK_CONTAINER (window),
                     button);
&lt;/source&gt;

When everything is set up with all signal handlers in place and the button placed in the window, we ask GTK to &quot;show&quot; the widgets on the screen.

&lt;source lang=&quot;c&quot;&gt;
gtk_widget_show_all (GTK_WIDGET (window));
&lt;/source&gt;

And of course, we call &lt;code&gt;gtk_main()&lt;/code&gt; which waits for events to come from the X server and calls on the widgets to emit signals when these events come.

&lt;source lang=&quot;c&quot;&gt;
gtk_main ();
&lt;/source&gt;

And the final return. Control returns here after &lt;code&gt;gtk_main_quit()&lt;/code&gt; is called.

&lt;source lang=&quot;c&quot;&gt;
return 0;
&lt;/source&gt;

&lt;hr/&gt;
&lt;table width=100%&gt;
&lt;tr&gt;
&lt;td width=30% align=left&gt;
Prev: [[{{BASEPAGENAME}}/Introduction|Introduction]]&lt;/td&gt;
&lt;td align=center&gt;Up: [[{{BASEPAGENAME}}|Table of Contents]]&lt;/td&gt;
&lt;td width=30% align=right&gt;
Next: [[{{BASEPAGENAME}}/Windows_and_dialogs|Windows and Dialogs]]&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Graphical UI Tutorial/Hildon desktop</title>
    <id>2295</id>
    <revision>
      <id>41540</id>
      <timestamp>2011-02-01T10:43:19Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add link</comment>
      <text xml:space="preserve">{{Legacy documentation}}

The end user's desktop experience on Maemo compatible devices is provided by the Hildon Desktop, which is based on Hildon. The latter provides several libraries to interface with the desktop environment UI elements and services.

The Hildon framework's main UI elements are separated to four categories and all of them can be extended with plug-ins:

* Hildon Home is the root desktop, which can be customized by Hildon home applets.
* Hildon Status bar provides area for information and quick-access items used mainly to communicate device status changes.
* Hildon Task Navigator plug-ins implement the top-level desktop menus.
* Hildon Control Panel is a general interface for application configuration and is extended by control panel plug-ins.

GUI applications in Maemo usually contain one or more &lt;code&gt;HildonWindow&lt;/code&gt;s, which are top-level application windows. They can include a standardized menubar and a toolbar.

The Hildon framework also includes other auxiliary widgets and services specialized for the Hildon environment. Examples of these are the Hildon-FM library for file system dialogs and widgets, &lt;code&gt;HildonBanner&lt;/code&gt; for displaying notifications to the user and &lt;code&gt;HildonWizardDialog&lt;/code&gt; for creating wizard user interfaces. For information about Hildon's widgets, see [http://maemo.org/development/sdks/maemo_5_api_documentation/ Maemo API References].

Another important element of the Hildon framework is the [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Extending Hildon Input Methods|Hildon Input Method API]], which is an interface for creating new user input systems in addition to the included virtual keyboard and handwriting recognition.</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Graphical UI Tutorial/Input</title>
    <id>3342</id>
    <revision>
      <id>29202</id>
      <timestamp>2010-02-12T09:44:30Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Legacy documentation}}</comment>
      <text xml:space="preserve">{{Legacy documentation}}

== Normal Text Entry ==
   Here Be an example how to create a text entry

== Numeric Entry ==
   Here Be an example how to create a numeric entry

== Password Entry ==

   Here Be an example how to create a password entry without auto-capitalization enabled.</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Graphical UI Tutorial/Introduction</title>
    <id>2128</id>
    <revision>
      <id>39538</id>
      <timestamp>2010-10-15T08:10:51Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">{{Legacy documentation}}

The following code examples are used in this chapter:

* [https://vcs.maemo.org/svn/maemoexamples/tags/maemo_5.0/hildon-examples/ hildon-examples]

Maemo platform's basic starting point for graphical user interface programming is [http://live.gnome.org/Hildon/ Hildon], an application framework comprising of a lightweight desktop, a set of widgets optimized for handheld devices, a set of theming tools and other complementary libraries and applications.

Hildon is based on [http://www.gnome.org/ GNOME] technologies to a great extent. Compared to a GNOME desktop from a user interface point of view, Hildon is designed to provide a new desktop for mobile embedded devices. Therefore, it uses, for example, a lighter window manager called [http://matchbox-project.org/ Matchbox].

Hildon is a user interface toolkit based on GTK+ that targets mobile devices. Hildon was originally developed by Nokia for the Maemo operating system that powered its Internet Tablet devices.

Because of Maemo version 5.0 (also known as Fremantle), Hildon widgets are specially designed to be finger-friendly, that is, easily used on touch-screen devices. Hildon is published under the LGPL license which gives you the right to develop free and open source, as well as commercial software with Hildon without being charged for licenses or royalties.

Because Hildon is based on GTK, it offers an object-oriented API, although written in C.

GTK+ is a library for creating user interfaces that is used in a number of important projects like GNOME. This topic includes many references to GTK and Glib. Glib is a library that offers functions to manage memory and data structures, as well as some replacements for standard calls in order to increase portability. For more information on GTK and Glib, see [http://www.gtk.org/documentation.html GTK and Glib documentation].

This document is intended for developers and covers the usage of Hildon to create graphical user interfaces. It starts from a simple &quot;Hello World&quot; program and expands to more complex examples, presenting a number of widgets and their usage to accomplish some tasks from a technical point of view. It enables you to understand the process of graphical user interface programming and build effective touch interfaces for mobile devices with Hildon.

This topic assumes a good knowledge of the C programming language. Previous experience in creating graphical user interfaces with GTK will be helpful but not mandatory. This topic targets the development of graphical user interfaces, not the design of such. For more information on designing interfaces with regard to usability and user experience, see the topic on [[Legacy Maemo 5 Documentation/Human Interface Guidelines | Hildon Human Interface Guidelines]].

== Desktop overview==

This section gives a brief overview of the Hildon desktop area in order to give you a better understanding of the application domains and layout.

The figure below illustrates the look of the desktop when an application's normal window is shown. As for the figure's legend, the following list explains it:

* A: Task switcher button. Tapping on it, the application is put into in the background and the desktop is quickly shown allowing you to choose any running application, as well as the application you had on before. To access the home view from this new view, press the dimmed area around the applications' thumbnails or launch another task by tapping the task switcher button which in this view becomes a task launcher button.
* B: Status area button. Provides information about the status of the device or applications. A status view can be accessed by pressing the status area.
* C: Close button. Closes the application. Note that if the current application's window is a subview (for more information, see [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Windows and dialogs | Windows and dialogs]]), a back button is displayed instead of a close button. The back button also closes the window but instead of closing the application, it goes back to a previous view.
* D: Title area. Shows an identifier of the application's current task, usually its name but may also be a document's name, and so on. Tapping on it calls the application's menu.
* F: Application area. Shows the actual application's contents.

[[Image:desktop_overview.png|frame|center|alt=Screenshot of desktop|Desktop overview]]

Note that the above explanation refers to the normal view of an application. When using an application on fullscreen mode, only the application area is shown. Also note that if an application has a toolbar widget, it is displayed at the very bottom of the application's area, both in normal and in fullscreen views.

== Typical Maemo GUI Application ==

The following shows the components making up a typical GUI application developed for Maemo (starting from the bottom):

* '''C library''': Implements wrappers around the system calls to the kernel and a lot of other useful things. However, the libraries presented below also provide their own APIs to similar functions, so always check whether they can be used directly, and avoid doing POSIX-level and system-level calls if possible. This makes the application easier to debug, and in some cases easier understand. This library is used (indirectly at least) by every application running on any Linux-based system.
* '''Xlib''': A library that allows an application to send graphics-related commands to the X server, and receive HID events from the server. Normally an application does not use Xlib API directly, but uses some easier toolkit instead, which in turn uses Xlib. 
* '''GLib''': A utility library that provides portable types, an object-oriented framework (GObject/GType), a general event mechanism (sometimes referred to as &lt;code&gt;GSignal&lt;/code&gt;), common abstract data structure types like hash tables, linked lists, etc.
* '''GDK''': A library that abstracts the Xlib and provides a lot of convenience code to implement most common graphical operations. Used by an application wanting to implement drawing directly, for example in order to implement custom widgets. In theory, GDK is meant to be independent of graphics systems, which it mostly is. Complete abstraction, however, is not yet complete, but for now, the original Xlib target is enough. GDK uses GLib internally.
* '''Pango''': A portable library designed to implement correct and flexible text layout for all languages. This is necessary to support the different text entry directions. Uses GLib and GDK. Used by GTK+ for all displayed text.
* '''ATK''': The Accessibility ToolKit. Provides generic methods by which an application can support people with special needs with respect to using computers.
* '''GTK+''': A library that provides a portable set of graphical elements, graphical area layout capabilities and interaction functions for applications. Graphical elements in GTK+ are called widgets. GTK+ also supports the notion of themes, which are user-switchable sets of graphics and behavior models. These are called skins in some other systems. Uses GLib, GDK, Pango and ATK.
* '''Hildon''': A library containing widgets and themes designed specifically for Maemo. This is necessary because the screen has very high PPI (compared to PCs), and applications are sometimes controlled with a stylus. Uses all of the libraries above.
* Other support libraries of interest:
** '''GConf''': A library from the GNOME project that allows applications to store and retrieve their settings in a consistent manner (in a way, similar to the registry in Windows). Uses GLib.
** '''GnomeVFS''': A library that provides a coherent set of file access functions, and implements those functions using plug-in libraries for different kinds of files and devices. Allows the application to ignore the semantics of implementations between different kinds of devices and services. By using GnomeVFS, an application does not need to care whether it reads a file from a web server (URLs are supported), from a compressed file archive (.zip, .rpm, .tar.gz, etc.) or from a memory card. Modeled to follow POSIX-style file and directory operations.
** '''GDK-Pixbuf''': A library that implements various graphical bitmap formats and also alpha-channeled blending operations using 32-bit pixels (RGBA). The Application Framework uses pixbufs to implement the shadows and background picture scaling if necessary. Uses GLib and GDK.
** '''LibOSSO''': A library specific to the Maemo platform, allowing an application to connect to D-Bus in a simple and consistent manner. Also provides an application state serialization mechanism. This mechanism can be used by an application to store its state, so that it can continue from the exact point in time when the user switched to another application. Useful to conserve battery life on portable devices.

There are some caveats related to API changes between major GTK+ versions, so do not copy and paste existing code blindly.

&lt;hr/&gt;
&lt;table width=100%&gt;
&lt;tr&gt;&lt;td width=30% align=left&gt;&lt;/td&gt;
&lt;td align=center&gt;Up: [[{{BASEPAGENAME}}|Table of Contents]]&lt;/td&gt;
&lt;td width=30% align=right&gt;
Next: [[{{BASEPAGENAME}}/Getting_started|Getting Started]]&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Graphical UI Tutorial/Menus</title>
    <id>2131</id>
    <revision>
      <id>40945</id>
      <timestamp>2010-12-29T09:18:31Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Touch view menu */ add images</comment>
      <text xml:space="preserve">{{Legacy documentation}}

The use of menus in Hildon applications follows a very different approach from the traditional application menus.

Hildon applications have no menu bar. Each window has an attached menu which activates when the user presses the window title area. Also, unlike typical menus in desktop applications, view menus do not follow a hierarchical structure. This menu, attached to a view, is called Touch View Menu.

Additionally Hildon provides Context menus, but avoid them when possible.

==Touch view menu ==

Use the &lt;code&gt;HildonAppMenu&lt;/code&gt; widget as a menu in the windows of a Hildon application.

This widget opens at the top of the screen, obscuring the topmost window, and contains several entries organized in one or two columns, depending on screen orientation. Besides entries, application menus can also contain a group of filter buttons.

The entries are &lt;code&gt;GtkButton&lt;/code&gt;s. Assign an action to the menu item for when they are activated.

Filters are toggle buttons that can be used for presentation/sorting purposes. For example, sorting alphabetically a list of contacts or changing the size of icons in a list.

To create a &lt;code&gt;HildonAppMenu&lt;/code&gt;, use the following command:

&lt;source lang=&quot;c&quot;&gt;
GtkWidget*  hildon_app_menu_new             (void);
&lt;/source&gt;

When the application menu is created, add entries to the menu by using the following functions:

&lt;source lang=&quot;c&quot;&gt;
void        hildon_app_menu_append          (HildonAppMenu *menu,
	                                     GtkButton *item);
void        hildon_app_menu_prepend         (HildonAppMenu *menu,
        	                             GtkButton *item);
void        hildon_app_menu_insert          (HildonAppMenu *menu,
                	                     GtkButton *item,
                        	             gint position);
&lt;/source&gt;

These functions allow you to append, prepend an entry or add it in a certain position (from 0 to N-1, where N is the number of menus).

It is important keep the UI simple. Try to keep the menu as short as possible and avoid adding unnecessary options. An application menu with more that 10 items is probably not displayed well.

To add filter buttons, use the following:

&lt;source lang=&quot;c&quot;&gt;
void        hildon_app_menu_add_filter      (HildonAppMenu *menu,
                              		               GtkButton *filter);
&lt;/source&gt;

Again, be careful with the number of filters that you add to the application menu. More than 4 might not be well displayed, even less, depending on the length of the labels. Filters should be grouped and act as radio buttons, that is, for any filter, at least another filter with a different/opposite action must exist. Actually, &lt;code&gt;GtkRadioButton&lt;/code&gt;s can be easily used to accomplish this by having them grouped (using &lt;code&gt;gtk_radio_button_new_from_widget()&lt;/code&gt; like the next example shows) and by not drawing their indicator - with the function &lt;code&gt;gtk_toggle_button_set_mode()&lt;/code&gt;.

When the menu is properly created and filled up with entries and filters, add the menu to a &lt;code&gt;HildonWindow&lt;/code&gt;. To set and retrieve a window's menu, use the following functions:

&lt;source lang=&quot;c&quot;&gt;
void        hildon_window_set_app_menu      (HildonWindow *self,
        	                             HildonAppMenu *menu);
HildonAppMenu* hildon_window_get_app_menu   (HildonWindow *self);
&lt;/source&gt;

As the menu is a widget, you finally have to display it:

&lt;source lang=&quot;c&quot;&gt;
void        gtk_widget_show_all          (GtkWidget *menu);
&lt;/source&gt;

The following example shows how to create and set up an application menu.

[[Image:Example-application-menu-clicked.png|frame|center|alt=Screenshot of Hildon application menu|'''Example 3.1''' Example of a Hildon application menu]]

&lt;source lang=&quot;c&quot;&gt;
#include                                        &lt;hildon/hildon.h&gt;

static void
menu_button_clicked                             (GtkButton *button,
                                                 GtkLabel *label)
{
  const char *buttontext = gtk_button_get_label (button);
  char *text = g_strdup_printf(&quot;Last option selected:\n%s&quot;, buttontext);
  gtk_label_set_text (label, text);
  g_free (text);
  g_debug (&quot;Button clicked: %s&quot;, buttontext);
}

static HildonAppMenu *
create_menu                                     (GtkWidget     *label)
{
  int i;
  gchar *command_id;
  GtkWidget * button;
  HildonAppMenu *menu = HILDON_APP_MENU (hildon_app_menu_new ());

  for (i = 1; i &lt; 6; i++) {
    /* Create menu entries */
    button = hildon_gtk_button_new (HILDON_SIZE_AUTO);
    command_id = g_strdup_printf (&quot;Menu command %d&quot;, i);
    gtk_button_set_label (GTK_BUTTON (button), command_id);

    /* Attach callback to clicked signal */
    g_signal_connect_after (button, &quot;clicked&quot;,
                            G_CALLBACK (menu_button_clicked),
                            label);

    /* Add entry to the view menu */
    hildon_app_menu_append (menu, GTK_BUTTON (button));
  }

  /* Create filters */
  button = hildon_gtk_radio_button_new (HILDON_SIZE_AUTO, NULL);
  gtk_button_set_label (GTK_BUTTON (button), &quot;filter one&quot;);
  g_signal_connect_after (button, &quot;clicked&quot;, G_CALLBACK (menu_button_clicked), label);
  hildon_app_menu_add_filter (menu, GTK_BUTTON (button));
  gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (button), FALSE);

  button = hildon_gtk_radio_button_new_from_widget (HILDON_SIZE_AUTO,
                                                    GTK_RADIO_BUTTON (button));
  gtk_button_set_label (GTK_BUTTON (button), &quot;filter two&quot;);
  g_signal_connect_after (button, &quot;clicked&quot;, G_CALLBACK (menu_button_clicked), label);
  hildon_app_menu_add_filter (menu, GTK_BUTTON (button));
  gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (button), FALSE);

  gtk_widget_show_all (GTK_WIDGET (menu));

  return menu;
}

int
main                                            (int argc,
                                                 char **argv)
{
  GtkWidget *win;
  GtkWidget *label;
  GtkWidget *label2;
  GtkBox *vbox;
  HildonAppMenu *menu;

  hildon_gtk_init (&amp;argc, &amp;argv);

  win = hildon_stackable_window_new ();

  /* Create and pack labels */
  label = gtk_label_new (&quot;This is an example of the\nHildonAppMenu widget.\n\n&quot;
                         &quot;Click on the titlebar\nto pop up the menu.&quot;);
  label2 = gtk_label_new (&quot;No menu option has been selected yet.&quot;);

  gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_CENTER);
  gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_CENTER);

  vbox = GTK_BOX (gtk_vbox_new (FALSE, 10));

  gtk_box_pack_start (vbox, label, TRUE, TRUE, 0);
  gtk_box_pack_start (vbox, label2, TRUE, TRUE, 0);

  /* Create menu */
  menu = create_menu (label2);

  /* Attach menu to the window */
  hildon_window_set_app_menu (HILDON_WINDOW (win), menu);

  /* Add label's box to window */
  gtk_container_add (GTK_CONTAINER (win), GTK_WIDGET (vbox));

  g_signal_connect (win, &quot;delete_event&quot;, G_CALLBACK (gtk_main_quit), NULL);

  gtk_widget_show_all (win);

  gtk_main ();

  return 0;
}
&lt;/source&gt;

[[Image:Example-application-menu.png|frame|center|alt=Screenshot of HildonAppMenu application before menu is displayed|Example HildonAppMenu, before displaying the menu]]

Each entry and filter button in this example is attached to a function that simply changes a label in the main window.

Note that the function used to attach handlers to the entries is &lt;code&gt;g_signal_connect_after()&lt;/code&gt;. So the handler are called after the default handler of the signal &quot;&lt;code&gt;clicked&lt;/code&gt;&quot;. The default handler for entries and filters closes the menu.

==Application menus and views ==

The previous example had only one view. In applications with several views, you can attach a different menu to each view and add only the options that are relevant to the displayed view.

The function &lt;code&gt;hildon_window_set_app_menu()&lt;/code&gt;allows to set a menu to an HildonWindow and its descendant &lt;code&gt;HildonStackableWindow&lt;/code&gt; widget.

&lt;source lang=&quot;c&quot;&gt;
hildon_window_set_app_menu (HILDON_STACKABLE_WINDOW (win), menu);
&lt;/source&gt;

Note that submenus are not supported by view menus. Usually a menu item that would have suboptions in a desktop application is implemented as a new subview in a Hildon application.

A callback function for a complex menu entry can create a new &lt;code&gt;HildonStackableWindow&lt;/code&gt; to accomplish the task that the option refers to. The new window can contain a different view menu to contain buttons to perform the action. The buttons can even reside in the window area.

==Context menu ==

Context menu is usually invoked through a long press over an item on the screen, like holding a finger over an image thumbnail. The menu must contain commands directly related to the chosen item.

Avoid using context menus, because they are a hidden and inconvenient way of interacting with the UI. Use &lt;code&gt;HildonAppMenu&lt;/code&gt;s instead.

To create a &lt;code&gt;GtkMenu&lt;/code&gt; in a Hildon application, use the following function instead of &lt;code&gt;gtk_menu_new()&lt;/code&gt;:

&lt;source lang=&quot;c&quot;&gt;
GtkWidget*  hildon_gtk_menu_new             (void);
&lt;/source&gt;

This function creates a &lt;code&gt;GtkMenu&lt;/code&gt; that allows Hildon specific styling.

When you use a &lt;code&gt;GtkMenu&lt;/code&gt; in your Hildon application, consider how many menu items you are going to use, because screen space is limited. Also consider the fact that in the interests of keeping the UI clear, submenus are not allowed.

&lt;hr/&gt;
&lt;table width=100%&gt;
&lt;tr&gt;
&lt;td width=30% align=left&gt;
Prev: [[{{BASEPAGENAME}}/Windows_and_dialogs|Windows and Dialogs]]&lt;/td&gt;
&lt;td align=center&gt;Up: [[{{BASEPAGENAME}}|Table of Contents]]&lt;/td&gt;
&lt;td width=30% align=right&gt;
Next: [[{{BASEPAGENAME}}/Toolbars|Toolbars]]&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Graphical UI Tutorial/Navigation</title>
    <id>2133</id>
    <revision>
      <id>39548</id>
      <timestamp>2010-10-15T13:51:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">{{Legacy documentation}}

In previous examples only one widget was added to a window so we can simply use a &lt;code&gt;gtk_container_add()&lt;/code&gt; to &quot;pack&quot; it into the window. To pack more than one widget into a window, use container widgets.

To develop Hildon user interfaces, use any container widget provided by GTK+. For more information, see the GTK+ 2.0 Tutorial.

Apart from supporting those containers, the Hildon framework also provides a new container widget called &lt;code&gt;HildonPannableArea&lt;/code&gt;, a scrolling widget designed for touch screens.

== Pannable area ==

&lt;code&gt;HildonPannableArea&lt;/code&gt; is used to create an area with another widget inside which is accessible regardless of the size using the touchscreen to scroll it. You can insert any type of widget into a pannable area; it is always accessible by using the fingers to pan, or scroll, in the area.

This widget can be &quot;panned&quot; (scrolled) in any direction using the touchscreen with the fingers. One remarkable characteristic is that the scrolling is &quot;kinetic&quot;, meaning that the motion continues from the initial motion by gradually slowing down to stop.

Using this widget is very similar to GTK+ scrolled windows. In fact, both widgets implement a similar concept and its APIs are very similar.

To create a new pannable area, choose one of the following functions:

&lt;source lang=&quot;c&quot;&gt;
GtkWidget*  hildon_pannable_area_new        (void);
GtkWidget*  hildon_pannable_area_new_full   (gint mode,
                                             gboolean enabled,
                                             gdouble vel_min,
                                             gdouble vel_max,
                                             gdouble decel,
                                             guint sps);
&lt;/source&gt;

The first one creates a new pannable area with the properties set to the default values. The second one allows you to set the value of the most important properties of this widget:

* &lt;code&gt;mode&lt;/code&gt;: Used to change the behaviour of the pannable area allowing to choose whether to use the &quot;kinetic&quot; effect described above.
* &lt;code&gt;enabled&lt;/code&gt;: Enable or disable finger-scroll.
* &lt;code&gt;vel_min&lt;/code&gt;, &lt;code&gt;vel_max&lt;/code&gt;: Allows developers to adjust how many pixels the child widget moves per &quot;frame&quot;.
* &lt;code&gt;decel&lt;/code&gt;: Value for the deceleration property.
* &lt;code&gt;sps&lt;/code&gt;: Amount of scroll events to generate per second.

The default values of these properties are right for most applications and so the simpler constructor is sufficient. For more information on the properties of the pannable area, see the Hildon reference manual.

When the area is created, place your object into the pannable window using the following function.

&lt;source lang=&quot;c&quot;&gt;
void        hildon_pannable_area_add_with_viewport (HildonPannableArea *area,
                                                    GtkWidget *child);
&lt;/source&gt;

That is a convenience function used to add a child to a &lt;code&gt;GtkViewport&lt;/code&gt;, and add the viewport to the pannable area.

'''Warning'''

Add widgets with native scrolling directly inside a pannable area. Add widgets such as &lt;code&gt;GtkTextView&lt;/code&gt;, &lt;code&gt;GtkTreeView&lt;/code&gt;, &lt;code&gt;GtkIconView&lt;/code&gt; and &lt;code&gt;GtkLayout&lt;/code&gt; by calling &lt;code&gt;gtk_container_add()&lt;/code&gt;. Otherwise, panning may not work properly.

== Pannable area example ==

Functions explained above are enough for a simple example. The following example packs a table with 100 toggle buttons into a pannable area.

[[Image:example-pannable-area.png|frame|center|alt=Screenshot of pannable area with buttons|Pannable area]]

'''Example 5.1. Example of a pannable area'''

&lt;source lang=&quot;c&quot;&gt;
#include &lt;stdio.h&gt;
#include &lt;hildon/hildon.h&gt;

static GtkWidget *create_table ()
{

  GtkWidget *hbox;
  GtkWidget *table;
  GtkWidget *button;
  char buffer[32];
  int i, j;

  /* create a table of 10 by 10 squares. */
  table = gtk_table_new (10, 10, FALSE);

  /* set the spacing to 10 on x and 10 on y */
  gtk_table_set_row_spacings (GTK_TABLE (table), 10);
  gtk_table_set_col_spacings (GTK_TABLE (table), 10);

  gtk_widget_show (table);

  /* this simply creates a grid of toggle buttons on the table
   * to demonstrate the scrolled window. */
  for (i = 1; i &lt; 10; i++)
    for (j = 1; j &lt; 10; j++) {
      sprintf (buffer, &quot;button (%d,%d)\n&quot;, i, j);
      button = gtk_toggle_button_new_with_label (buffer);

      gtk_table_attach_defaults (GTK_TABLE (table), button,
                                 i, i+1, j, j+1);
    }

  return table;
}

int main( int   argc,
          char *argv[] )
{
  static GtkWidget *window;
  GtkWidget *button;
  GtkWidget *pannable_area;
  GtkWidget *table;

  hildon_gtk_init (&amp;argc, &amp;argv);

  window = hildon_stackable_window_new ();
  g_signal_connect (G_OBJECT (window), &quot;destroy&quot;,
                    G_CALLBACK (gtk_widget_destroy), NULL);

  pannable_area = hildon_pannable_area_new ();

  table = create_table ();

  /* pack the table into the scrolled window */
  hildon_pannable_area_add_with_viewport (
    HILDON_PANNABLE_AREA (pannable_area), table);

  /* Add the box into the window*/
  gtk_container_add (GTK_CONTAINER (window), pannable_area);

  gtk_widget_show_all (window);

  gtk_main ();

  return 0;
}
&lt;/source&gt;

In the example above, two calls are enough to use a pannable area. The rest of the code in the example is no different from the one used in a GTK+ application.

&lt;source lang=&quot;c&quot;&gt;
/* Create a new pannable area. */
pannable_area = hildon_pannable_area_new ();
/* Pack the table into the pannable area */
hildon_pannable_area_add_with_viewport ( HILDON_PANNABLE_AREA (pannable_area), table);
&lt;/source&gt;

To see all the buttons, users can scroll with the fingers. In this example, horizontal and vertical panning are activated because that is needed to allow users to be able to interact both all the widgets. The property &quot;&lt;code&gt;mov-mode&lt;/code&gt;&quot; controls if the area can scroll horizontally, vertically (default value) or both, using &lt;code&gt;HILDON_MOVEMENT_MODE_HORIZ&lt;/code&gt;, &lt;code&gt;HILDON_MOVEMENT_MODE_VERT&lt;/code&gt; or &lt;code&gt;HILDON_MOVEMENT_MODE_BOTH&lt;/code&gt;, respectively.

== Additional features ==

Pannable areas provide a set of convenience functions that make it easier to move to a certain element inside the area without users interaction.

These functions allow to scroll or jump to a position which ensures that a certain point or a certain child widget is visible for the user.

For example, the first of the functions changes the current position on the pannable area to ensure position (x,y) is visible. The movement is a quick jump. The second function performs a smoothly scroll towards the selected position.

&lt;source lang=&quot;c&quot;&gt;
void        hildon_pannable_area_jump_to    (HildonPannableArea *area,
                                             const gint x,
                                             const gint y);
void        hildon_pannable_area_scroll_to  (HildonPannableArea *area,
                                             const gint x,
                                             const gint y);
&lt;/source&gt;

The following functions make it possible to jump or scroll to a certain descendent of the area. The argument should be a reference to a descendent widget.

&lt;source lang=&quot;c&quot;&gt;
void        hildon_pannable_area_jump_to_child (HildonPannableArea *area,
                                                GtkWidget *child);
void        hildon_pannable_area_scroll_to_child
                                            (HildonPannableArea *area,
                                             GtkWidget *child);
&lt;/source&gt;

Here is a modified version of the previous example. The pannable area is packed into an &lt;code&gt;GtkVBox&lt;/code&gt; and a new button is also added to navigate to the last clicked button.

'''Example 5.2. Example of a pannable area and a &quot;jump-to&quot; button'''

&lt;source lang=&quot;c&quot;&gt;
#include &lt;stdio.h&gt;
#include &lt;hildon/hildon.h&gt;

GtkWidget * last_clicked_button;
GtkWidget * pannable_area;


static void destroy( GtkWidget *widget,
                     gpointer   data )
{
    gtk_main_quit ();
}

static void clicked (GtkButton *button,
                     gpointer   user_data)
{
     last_clicked_button = GTK_WIDGET (button);
}

static void go_to_last_clicked (GtkButton *button,
                                gpointer   user_data)
{
  hildon_pannable_area_jump_to_child    (HILDON_PANNABLE_AREA (pannable_area),
                                         last_clicked_button);
}

static GtkWidget *create_table ()
{
    GtkWidget *table;
    GtkWidget *button;
    char buffer[32];
    int i, j;

    /* create a table of 10 by 10 squares. */
    table = gtk_table_new (10, 10, FALSE);

    /* set the spacing to 10 on x and 10 on y */
    gtk_table_set_row_spacings (GTK_TABLE (table), 10);
    gtk_table_set_col_spacings (GTK_TABLE (table), 10);

    gtk_widget_show (table);

    /* this simply creates a grid of toggle buttons on the table
     * to demonstrate the scrolled window. */
    for (i = 1; i &lt; 10; i++)
       for (j = 1; j &lt; 10; j++) {
          sprintf (buffer, &quot;button (%d,%d)\n&quot;, i, j);
	  button = gtk_toggle_button_new_with_label (buffer);

          g_signal_connect (G_OBJECT (button),
                            &quot;clicked&quot;,
                            G_CALLBACK (clicked),
                            NULL);

	  gtk_table_attach_defaults (GTK_TABLE (table), button,
	                             i, i+1, j, j+1);

          gtk_widget_show (button);
       }

    return table;
}

int main( int   argc,
          char *argv[] )
{
    static GtkWidget *window;
    GtkWidget *button;
    GtkWidget *table;
    GtkWidget *hbox;

    hildon_gtk_init (&amp;argc, &amp;argv);

    /* Create a new hildon window for the pannable area to be
     * packed into.  */
    window = hildon_stackable_window_new ();
    g_signal_connect (G_OBJECT (window), &quot;destroy&quot;, G_CALLBACK (destroy), NULL);
    gtk_window_set_title (GTK_WINDOW (window), &quot;HildonPannableArea example&quot;);

    /* Create a table which will be inside the pannable area */
    table = create_table ();

    /* Create a box and pack the widgets into it */
    hbox = gtk_hbox_new (FALSE, 0);

    /* Add a button to jump */
    /* Button to go to last clicked */
    button = gtk_button_new_with_label (&quot;Go to last clicked&quot;);

    g_signal_connect (G_OBJECT (button),
                      &quot;clicked&quot;,
                      G_CALLBACK (go_to_last_clicked),
                      NULL);

    gtk_box_pack_start (GTK_BOX (hbox),
                        button,
                        FALSE,
                        FALSE,
                        0);

    /* create a new pannable area. */
    pannable_area = hildon_pannable_area_new ();
    g_object_set (G_OBJECT (pannable_area),
                  &quot;mov-mode&quot;, HILDON_MOVEMENT_MODE_BOTH, NULL);

    /* pack the table into the scrolled window */
    hildon_pannable_area_add_with_viewport (
                   HILDON_PANNABLE_AREA (pannable_area), table);

    gtk_box_pack_start (GTK_BOX (hbox),
                        pannable_area,
                        TRUE,
                        TRUE,
                        0);

    /* Add the box into the window*/
    gtk_container_add (GTK_CONTAINER (window), hbox);

    gtk_widget_show_all (window);
    gtk_main();

    return 0;
}
&lt;/source&gt;

The example used a global variable to store a reference to the last clicked button. This reference is used by the callback &lt;code&gt;go_to_last_clicked&lt;/code&gt; to jump to it by calling one of the navigation functions. This function is used as a handler for the signal &quot;&lt;code&gt;clicked&lt;/code&gt;&quot; of the button outside the pannable area.

To test the different navigation functions, just change the call in the callback.

When you use the navigation functions that allow to navigate to a certain child, the widget must already be realized. Use the &lt;code&gt;GTK_WIDGET_REALIZED&lt;/code&gt; macro to check it. If you want to call it during the initialization process, use the navigation function inside a callback to the &quot;&lt;code&gt;realized&lt;/code&gt;&quot; signal, connecting it with &lt;code&gt;g_signal_connect_after()&lt;/code&gt;.</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Graphical UI Tutorial/Toolbars</title>
    <id>2132</id>
    <revision>
      <id>39528</id>
      <timestamp>2010-10-14T13:24:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">{{Legacy documentation}}

Toolbars usually simplify the customization of widget look and layout by grouping widgets. The Hildon framework provides two specialized toolbars: &lt;code&gt;HildonFindToolbar&lt;/code&gt; and &lt;code&gt;HildonEditToolbar&lt;/code&gt;. You can also use &lt;code&gt;GtkToolbar&lt;/code&gt;s in your Hildon application.

==Find toolbars ==

&lt;code&gt;HildonFindToolbar&lt;/code&gt; is a toolbar that contains a search entry and a dropdown list with previously searched strings. An internal &lt;code&gt;GtkListStore&lt;/code&gt; stores the items in the dropdown list. This list is a property of the widget called &quot;&lt;code&gt;list&lt;/code&gt;&quot;.

To create a &lt;code&gt;HildonFindToolbar&lt;/code&gt;, use the following:

&lt;source lang=&quot;c&quot;&gt;
GtkWidget*  hildon_find_toolbar_new            (const gchar *label);
GtkWidget*  hildon_find_toolbar_new_with_model (const gchar *label,
                                                GtkListStore *model,
                                                gint column);
&lt;/source&gt;

In both functions the argument label is used as label which be displayed as label for the dropdown box.

The second function above allows you to set the model used for storing the dropdown box. Also indicate which column the search retrieves the string from.

If you use the first function to create the toolbar, set the properties &quot;&lt;code&gt;list&lt;/code&gt;&quot; and &quot;&lt;code&gt;column&lt;/code&gt;&quot; manually.

This widget provides the function &lt;code&gt;f&lt;/code&gt; to set and retrieve the index in the model of the current active item on the combo. An index of &lt;code&gt;-1&lt;/code&gt; indicates no active items in both functions.

&lt;source lang=&quot;c&quot;&gt;
void        hildon_find_toolbar_set_active  (HildonFindToolbar *toolbar,
                                             gint index);
gint        hildon_find_toolbar_get_active  (HildonFindToolbar *toolbar);
&lt;/source&gt;

To get the index of the most recently added item in the toolbar, use the following function:

&lt;source lang=&quot;c&quot;&gt;
gint32      hildon_find_toolbar_get_last_index (HildonFindToolbar *toolbar);
&lt;/source&gt;

Alternatively, you can use a &lt;code&gt;GtkTreeIter&lt;/code&gt; to reference the current active item.

&lt;source lang=&quot;c&quot;&gt;
void        hildon_find_toolbar_set_active_iter (HildonFindToolbar *toolbar,
                                                 GtkTreeIter *iter);
gboolean    hildon_find_toolbar_get_active_iter (HildonFindToolbar *toolbar,
                                                 GtkTreeIter *iter);
&lt;/source&gt;

After creating and properly setting up the toolbar, attach it to any window. &lt;code&gt;HildonWindow&lt;/code&gt; provides the following function to attach a toolbar:

&lt;source lang=&quot;c&quot;&gt;
void        hildon_window_add_toolbar       (HildonWindow *self,
                                             GtkToolbar *toolbar);
&lt;/source&gt;

In case you need to add a common toolbar to all windows in your program, &lt;code&gt;HildonProgram&lt;/code&gt; provides the following function to set and retrieve a common toolbar to each window registered into the current program:

&lt;source lang=&quot;c&quot;&gt;
void        hildon_program_set_common_toolbar (HildonProgram *self,
                                               GtkToolbar *toolbar);
GtkToolbar* hildon_program_get_common_toolbar (HildonProgram *self);
&lt;/source&gt;

Here a simple example that shows how to deal with a HildonFindToolbar.

[[Image:example-toolbar.png|frame|center|alt=Screenshot of example toolbar|'''Example 4.1''' Using a Find Toolbar]]

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon/hildon.h&gt;
gboolean
on_history_append (HildonFindToolbar *toolbar,
                   gpointer user_data)
{
  gchar *item;
  GtkTreeIter iter;
  gint index ;
  GtkListStore *list;
  /* Get last added index */
  index = hildon_find_toolbar_get_last_index (toolbar);
  /* Get the inner list */
  g_object_get (G_OBJECT (toolbar),
                &quot;list&quot;,&amp;list,
                NULL);
  /* Get the item */
  gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL (list) ,
                                       &amp;iter,
                                       g_strdup_printf (&quot;%d&quot;,index));
  gtk_tree_model_get (GTK_TREE_MODEL (list),
                      &amp;iter,
                      0, &amp;item,
                      -1);
  g_debug (&quot;ADDED TO THE LIST : %s&quot;, item);
  return FALSE;
}
                                                                                                                          int main (int argc, char **argv)
{
  HildonProgram *program;
  GtkWidget *window;
  GtkWidget *toolbar = NULL;
  GtkListStore *store;
  GtkTreeIter iter;
  hildon_gtk_init (&amp;argc, &amp;argv);
  program = hildon_program_get_instance ();
  window = hildon_window_new ();
  hildon_program_add_window (program, HILDON_WINDOW (window));
  /* Create and populate history list model */
  store = gtk_list_store_new (1, G_TYPE_STRING);
  gtk_list_store_append (store, &amp;iter);
  gtk_list_store_set (store, &amp;iter, 0, &quot;Foo&quot;, -1);
  gtk_list_store_append (store, &amp;iter);
  gtk_list_store_set (store, &amp;iter, 0, &quot;Bar&quot;, -1);
  gtk_list_store_append (store, &amp;iter);
  gtk_list_store_set (store, &amp;iter, 0, &quot;Baz&quot;, -1);
  /* Create find toolbar */
  toolbar = hildon_find_toolbar_new_with_model (&quot;Find&quot;, store, 0);
  /* Set item on index 0 as the current active*/
  hildon_find_toolbar_set_active (HILDON_FIND_TOOLBAR (toolbar), 0);
  /* Attach a callback to handle &quot;history-append&quot; signal */
  g_signal_connect_after (G_OBJECT (toolbar), &quot;history-append&quot;, G_CALLBACK (on_history_append), NULL);
  /* Attach toolbar to window */
  hildon_window_add_toolbar (HILDON_WINDOW (window), GTK_TOOLBAR (toolbar));
  gtk_widget_show_all (GTK_WIDGET (window));
  gtk_main ();
  return 0;
}
&lt;/source&gt;

In the example above a callback is set to handle the signal &quot;&lt;code&gt;history-append&lt;/code&gt;&quot;, emitted by the toolbar when a new item is added to the history. Other signals like &quot;history-append&quot; can trigger additional actions when emitted.

Apart from the property which stores the internal list, other properties are available such as &quot;max-characters&quot;, which set the maximum length of the search string. For a complete description of the signals and properties available, see the Hildon reference manual.

==Edit toolbars ==

Edit toolbars are implemented by the widget &lt;code&gt;HildonEditToolbar&lt;/code&gt;. This widget is a toolbar to be used as main control and navigation interface for the edit UI mode. The toolbar contains a label and two buttons, being one of them an arrow pointing backwards and the other a button to perform a certain action. It also display a label which explain to the users the action that the button performs and give intructions to user on how to perform the action properly.

A typical example could be a view to delete several items in a list. The label would advice the user to select the items to delete and those items are deleted by clicking the button.

Typically, the toolbar is attached to an edit view, meaning a &lt;code&gt;HildonStackableWindow&lt;/code&gt; used in the program to perform a certain editing action.

The action to be performing by clicking the action button should be implemented in a callback to handle the signal &quot;&lt;code&gt;button-clicked&lt;/code&gt;&quot;, shown in the example.

To create a new &lt;code&gt;HildonEditToolbar&lt;/code&gt;, use:

&lt;source lang=&quot;c&quot;&gt;
GtkWidget*  hildon_edit_toolbar_new           (void);
GtkWidget*  hildon_edit_toolbar_new_with_text (const gchar *label,
                                               const gchar *button);
&lt;/source&gt;

The second creation function allows to set the two labels of the widget. If you use the simple creation function, set the labels by using the following functions.

&lt;source lang=&quot;c&quot;&gt;
void                hildon_edit_toolbar_set_label       (HildonEditToolbar *toolbar,
                                                         const gchar *label);
void                hildon_edit_toolbar_set_button_label
                                                        (HildonEditToolbar *toolbar,
                                                         const gchar *label);

&lt;/source&gt;

When the edit toolbar is configured, attach it to a window by using:

&lt;source lang=&quot;c&quot;&gt;
void        hildon_window_add_toolbar       (HildonWindow *self,
                                             GtkToolbar *toolbar);
&lt;/source&gt;

Implement the action to be done by clicking the button in a callback attached to the signal &quot;&lt;code&gt;button-clicked&lt;/code&gt;&quot;. These widgets define also another signal, &quot;&lt;code&gt;arrow-clicked&lt;/code&gt;&quot;, emitted when users click the arrow. Typically, the callback for the signal &quot;&lt;code&gt;arrow-clicked&lt;/code&gt;&quot; destroys the current edit view.

The example below shows how to use an edit toolbar. This example builds a main window showing a list of items and a button to go to a edit view where users can select several items and deleted by clicking the action button of the toolbar.

[[Image:Edit_toolbar_list_view.png|frame|center|alt=Screenshot of edit toolbar|'''Example 4.2''' Using an Edit Toolbar]]

&lt;source lang=&quot;c&quot;&gt;
#include                                        &lt;hildon/hildon.h&gt;

enum { TEXT_COLUMN, N_COLUMNS };

static GtkTreeModel *
get_model                                       (void)
{
  int i;
  static GtkListStore *store = NULL;

  if (store != NULL)
    return GTK_TREE_MODEL (store);

  store = gtk_list_store_new (1, G_TYPE_STRING);

  for (i = 0; i &lt; 50; i++)
    {
      gchar *str;

      str = g_strdup_printf (&quot;\nRow %d\n&quot;, i);
      gtk_list_store_insert_with_values (store, NULL, i, 0, str, -1);
      g_free (str);
    }

  return GTK_TREE_MODEL (store);
}

GtkWidget *
create_treeview                                 (HildonUIMode tvmode)
{
  GtkWidget *tv;
  GtkTreeViewColumn *col;
  GtkCellRenderer *renderer;
  GtkTreeModel *model;
  GtkTreeSelection *selection;

  tv = hildon_gtk_tree_view_new (tvmode);
  renderer = gtk_cell_renderer_text_new ();
  col = gtk_tree_view_column_new_with_attributes (&quot;Title&quot;, renderer,
                                                  &quot;text&quot;, TEXT_COLUMN, NULL);
  gtk_tree_view_append_column (GTK_TREE_VIEW(tv), col);

  /* Set multiple selection mode*/
  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tv));
  gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE);

  model = get_model ();

  gtk_tree_view_set_model (GTK_TREE_VIEW (tv), model);

  return tv;
}


static void
delete_button_clicked                           (GtkButton   *button,
                                                 GtkTreeView *treeview)
{
  GtkTreeModel *model;
  GtkTreePath *path;
  GtkTreeIter iter;
  GtkTreeRowReference *ref;
  GtkTreeSelection *selection;
  GList *selected_rows, *list, *row_references = NULL;

  selection = gtk_tree_view_get_selection (treeview);

  selected_rows = gtk_tree_selection_get_selected_rows (selection,
                                                        &amp;model);

  for (list = selected_rows; list; list = g_list_next(list)) {

    path = list-&gt;data;

    ref = gtk_tree_row_reference_new (model,
                                      path);

    row_references = g_list_append (row_references,
                                    ref);
  }

  for (list = row_references; list; list = g_list_next(list)) {

    path = gtk_tree_row_reference_get_path ((GtkTreeRowReference *) (list-&gt;data));

    gtk_tree_model_get_iter (model, &amp;iter, path);

    gtk_list_store_remove (GTK_LIST_STORE (model), &amp;iter);

    gtk_tree_path_free (path);

  }

  g_list_free (selected_rows);
  g_list_free (row_references);
  g_list_free (list);
}

static void
edit_window                                     (void)
{
  GtkWidget *window;
  GtkWidget *tree_view;
  GtkWidget *toolbar;
  GtkWidget *area;

  window = hildon_stackable_window_new ();
  gtk_container_set_border_width (GTK_CONTAINER (window), 6);

  /* Create a new edit toolbar */
  toolbar = hildon_edit_toolbar_new_with_text (&quot;Choose items to delete&quot;,
                                               &quot;Delete&quot;);
  area = hildon_pannable_area_new ();
  tree_view = create_treeview (HILDON_UI_MODE_EDIT);

  /* Add toolbar to the window */
  hildon_window_set_edit_toolbar (HILDON_WINDOW (window),
                                  HILDON_EDIT_TOOLBAR (toolbar));

  gtk_container_add (GTK_CONTAINER (area), tree_view);
  gtk_container_add (GTK_CONTAINER (window), area);

  g_signal_connect (toolbar, &quot;button-clicked&quot;,
                    G_CALLBACK (delete_button_clicked),
                    tree_view);

  g_signal_connect_swapped (toolbar, &quot;arrow-clicked&quot;,
                            G_CALLBACK (gtk_widget_destroy),
                            window);

  gtk_widget_show_all (window);

  /* Set window to fullscreen */
  gtk_window_fullscreen (GTK_WINDOW (window));
}

int
main                                            (int    argc,
                                                 char **argv)
{
  GtkWidget *window;
  GtkWidget *tree_view;
  GtkWidget *vbox;
  GtkWidget *button;
  GtkWidget *area;

  hildon_gtk_init (&amp;argc, &amp;argv);

  window = hildon_stackable_window_new ();
  g_signal_connect (window, &quot;destroy&quot;, G_CALLBACK (gtk_main_quit), NULL);

  vbox = gtk_vbox_new (FALSE, 10);
  area = hildon_pannable_area_new ();

  tree_view = create_treeview (HILDON_UI_MODE_NORMAL);

  button = hildon_gtk_button_new (HILDON_SIZE_AUTO_WIDTH | HILDON_SIZE_FINGER_HEIGHT);
  gtk_button_set_label (GTK_BUTTON (button), &quot;Delete some items&quot;);

  gtk_container_add (GTK_CONTAINER (area), tree_view);
  gtk_box_pack_start (GTK_BOX (vbox), area, TRUE, TRUE, 0);
  gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);

  gtk_container_add (GTK_CONTAINER (window), vbox);

  g_signal_connect (button, &quot;clicked&quot;, G_CALLBACK (edit_window), NULL);

  gtk_widget_show_all (window);

  gtk_main ();

  return 0;
}
&lt;/source&gt;

The most things related to &lt;code&gt;HildonEditToolbar&lt;/code&gt; is in the function &lt;code&gt;edit_window&lt;/code&gt;. This function creates a edit view, meaning that a new &lt;code&gt;HildonStackableWindow&lt;/code&gt; is created showing a treeview in which users can select several items.

Note that the edit window is set to fullscreen and thus displaying the &lt;code&gt;HildonEditToolbar&lt;/code&gt; obscures the usual window controls.

== Using GtkToolbars in Hildon applications ==

Use the widget &lt;code&gt;GtkToolbar&lt;/code&gt; as you would use it in a GTK+ application, but consider the following:

* Use &lt;code&gt;GtkToolbar&lt;/code&gt;s when only one content item is visible (for example when editing a single image or editing a single email).
* Provide no menu commands or settings for hiding or showing toolbar. The toolbar is always shown in the view where you decided to put it.

Like the others toolbars, attach a &lt;code&gt;GtkToolbar&lt;/code&gt; to a window by using:

&lt;source lang=&quot;c&quot;&gt;
void        hildon_window_add_toolbar       (HildonWindow *self,
                                             GtkToolbar *toolbar);
&lt;/source&gt;

The following example shows how to use a &lt;code&gt;GtkToolBar&lt;/code&gt;. The use is very close to how it would be use in a normal GTK+ application.

[[Image:example-gtktoolbar.png|frame|center|alt=Screenshot of example GtkToolbar|'''Example 4.3''' Using a GtkToolbar in a Hildon application]]

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon/hildon.h&gt;
void on_clicked (GtkToolButton *toolbutton,
                 gint index)
{
  g_debug (&quot;Index of clicked item : %d&quot;, index);
}
int
main (int argc, char **argv)
{
  HildonProgram *program;
  GtkWidget *window;
  GtkWidget *toolbar;
  GtkToolItem *toolitem;
  hildon_gtk_init (&amp;argc, &amp;argv);
  program = hildon_program_get_instance ();
  window = hildon_window_new ();
  hildon_program_add_window (program, HILDON_WINDOW (window));
  /* Create a toolbar */
  toolbar = gtk_toolbar_new ();
  /* Add items to the toolbar */
  toolitem = gtk_tool_button_new (
    gtk_image_new_from_stock(GTK_STOCK_HOME, HILDON_ICON_PIXEL_SIZE_TOOLBAR),
    &quot;Home&quot;);
  g_signal_connect (G_OBJECT (toolitem),
                    &quot;clicked&quot;,
                    G_CALLBACK (on_clicked),
                    (gpointer) 0);
  gtk_toolbar_insert (GTK_TOOLBAR (toolbar),
                      toolitem,
                      0);
  toolitem = gtk_tool_button_new (
    gtk_image_new_from_stock(GTK_STOCK_GO_BACK, HILDON_ICON_PIXEL_SIZE_TOOLBAR),
    &quot;Back&quot;);
  g_signal_connect (G_OBJECT (toolitem),
                    &quot;clicked&quot;,
                    G_CALLBACK (on_clicked),
                    (gpointer) 1);
  gtk_toolbar_insert (GTK_TOOLBAR (toolbar),
                      toolitem,
                      1);
  toolitem = gtk_tool_button_new (
    gtk_image_new_from_stock(GTK_STOCK_GO_FORWARD, HILDON_ICON_PIXEL_SIZE_TOOLBAR),
    &quot;Forward&quot;);
  g_signal_connect (G_OBJECT (toolitem),
                    &quot;clicked&quot;,
                    G_CALLBACK (on_clicked),
                    (gpointer) 2);
  gtk_toolbar_insert (GTK_TOOLBAR (toolbar),
                      toolitem,
                      2);
  /* Add toolbar to the window */
  hildon_window_add_toolbar (HILDON_WINDOW (window),
                             GTK_TOOLBAR(toolbar));
  gtk_widget_show_all (GTK_WIDGET (window));
  gtk_main ();
  return 0;
}
&lt;/source&gt;</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Graphical UI Tutorial/Utilities</title>
    <id>2137</id>
    <revision>
      <id>39574</id>
      <timestamp>2010-10-18T09:32:21Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">{{Legacy documentation}}

Apart from the widgets, Hildon provides a set of helper functions and objects. 

== The Program object ==

Hildon provides an object to represent a whole application, the &lt;code&gt;HildonProgram&lt;/code&gt; object. This object provides several convenience functions that make it easier to develop Hildon applications.

The &lt;code&gt;HildonProgram&lt;/code&gt; provides the programmer with commodities including applying a common menu or toolbar to every &lt;code&gt;HildonWindow&lt;/code&gt; registered with it.

To apply a shared menu and toolbar, register all windows as belonging to the program.

To register or unregister windows, use the following functions:

&lt;source lang=&quot;c&quot;&gt;
void        hildon_program_add_window       (HildonProgram *self,
                                             HildonWindow *window);
void        hildon_program_remove_window    (HildonProgram *self,
                                             HildonWindow *window);
&lt;/source&gt;

The following functions take effect over each registered window, providing a convenient way to set up common elements for each registered window in your application.

&lt;source lang=&quot;c&quot;&gt;
void           hildon_program_set_common_menu        (HildonProgram *self,
                                                      GtkMenu *menu);
GtkMenu*       hildon_program_get_common_menu        (HildonProgram *self);
void           hildon_program_set_common_app_menu    (HildonProgram *self,
                                                      HildonAppMenu *menu);
HildonAppMenu* hildon_program_get_common_app_menu    (HildonProgram *self);
void           hildon_program_set_common_toolbar     (HildonProgram *self,
                                                      GtkToolbar *toolbar);
GtkToolbar*    hildon_program_get_common_toolbar     (HildonProgram *self);
&lt;/source&gt;

&lt;code&gt;HildonProgram&lt;/code&gt; also allows users to apply program-wide properties. For example, the property &quot;&lt;code&gt;can-hibernate&lt;/code&gt;&quot; that specify whether the program should be set to hibernate by the Task Navigator in a low memory situation or not.

The following convenience functions are provided to set and retrieve the value of the property &quot;&lt;code&gt;can-hibernate&lt;/code&gt;&quot;.

&lt;source lang=&quot;c&quot;&gt;
void        hildon_program_set_can_hibernate      (HildonProgram *self,
                                                   gboolean can_hibernate);
gboolean    hildon_program_get_can_hibernate      (HildonProgram *self);
&lt;/source&gt;

==Sound utilities ==

Hildon provides the following function to play a sample. The function receives the sample file name as parameter and the volume level is controlled by the gconf variable &lt;code&gt;/apps/osso/sound/system_alert_volume&lt;/code&gt;

&lt;source lang=&quot;c&quot;&gt;
void        hildon_play_system_sound        (const gchar *sample);
&lt;/source&gt;

== Miscellaneous helper functions ==

===Text Font and Colors===

The following funtions allows you to set a font or color for the text diplayed by a certain widget. The size or color is identified by a logical name which must be defined by the GTK's rc files defined as part of the themes definition.

Because logical names are used to identify the colors and font, they are independent from the theme, meaning that if you change the theme, the widget keeps the same logical font or color set by these functions.

&lt;source lang=&quot;c&quot;&gt;
gulong      hildon_helper_set_logical_font  (GtkWidget *widget,
                                             const gchar *logicalfontname);
gulong      hildon_helper_set_logical_color (GtkWidget *widget,
                                             GtkRcFlags rcflags,
                                             GtkStateType state,
                                             const gchar *logicalcolorname);
&lt;/source&gt;

These functions keep the set logical font or color by connecting to &quot;&lt;code&gt;style-set&lt;/code&gt;&quot; signal. Use the returned signal identifier to disconnect the signal.

To set a logical color, pass in the &lt;code&gt;GtkRcFlags&lt;/code&gt; and &lt;code&gt;GtkStateType&lt;/code&gt; to indicate which color you want to modify. For example, to modify the foreground color of the widget during normal operations then set rcflags to &lt;code&gt;GTK_RC_BG&lt;/code&gt; and state to &lt;code&gt;GTK_STATE_NORMAL&lt;/code&gt;.

===Finger Events===

The following function can be in callbacks that handle button events to check if the given button event is a finger event, meaning that the event was emitted as a result of a push with the finger somewhere on the touchscreen.

&lt;source lang=&quot;c&quot;&gt;
gboolean    hildon_helper_event_button_is_finger (GdkEventButton *event);
&lt;/source&gt;

This function is rarely used in application development.

===Thumbable Scrollbars===

The function showed bellow enables a thumb scrollbar on a given scrolled window, converting the existing normal scrollbar into a larger, finger-usable scrollbar that works without a stylus.

&lt;source lang=&quot;c&quot;&gt;
void        hildon_helper_set_thumb_scrollbar (GtkScrolledWindow *win,
                                               gboolean thumb);
&lt;/source&gt;</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Graphical UI Tutorial/Windows and dialogs</title>
    <id>2130</id>
    <revision>
      <id>39544</id>
      <timestamp>2010-10-15T10:43:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>another &lt;code&gt;</comment>
      <text xml:space="preserve">{{Legacy documentation}}

When creating applications for hand-held devices, you should take into account several issues about usability and device limitations. Screen size is a particularly large restriction; a simple interface is essential.

In contrast with GTK+ applications, Hildon applications display only one window at a time. A typical Hildon application uses several windows representing different views in a tree-like hierarchy.

[[Documentation/Maemo 5 Developer Guide/Application Development/Getting started#Hello World in Hildon | Example 1.2]] has already shown how to use a simple &lt;code&gt;HildonWindow&lt;/code&gt; can be used and how it resembles the use of a classical GTK+ window. The tree-like views represent a new concept introduced by Hildon.

To properly understand what views are, think of an application as a program that allows the user to perform one or more tasks. Each task can be broken down into several main activities.

Main activities in tasks must be done and presented in separate application views or windows, while assistance activities and steps to fulfill those tasks must be done in dialogs and menus on top of the currently displayed view.

Views work in a tree-like hierarchy. Root View acts as the &quot;root&quot; for the tree, and the subsequent Sub Views branch down the hierarchy.

[[Image:Rootview.png|thumb|center|400px|alt=Screenshot of root view|Root view]] [[Image:Subview.png|thumb|center|400px|alt=Screenshot of sub view|Sub view]]

The view concept is implemented by the widget &lt;code&gt;HildonStackableWindow&lt;/code&gt;. This widget allows building a navigable hierarchy of windows with less code.

==Stackable windows ==

The &lt;code&gt;HildonStackableWindow&lt;/code&gt; is a GTK+ widget which represents a top-level window in the Hildon framework. Stackable windows can be organized in a hierarchical way.

A stack sets the hierarchical relationships between windows. A child window is on top of its parent window. That allows navigation to previous window by removing the topmost window.

Users can only see and interact with the window on the top of stack. All other windows are mapped and visible but they are obscured by the topmost one. And the users can go back to a root view from a subview by clicking in the navigation button in the top right corner of the window.

Each application has a default stack, and windows are automatically added to it when they are shown using &lt;code&gt;gtk_widget_show()&lt;/code&gt;. Most applications do not need to create extra stacks. Create more than one stack could make your UI too complex, so think twice before doing it.

Let's see a simple example to show the use of this widget. This simple program creates a stackable window with a button to navigate towards a subview, a new window on top of the stack.

'''Example 2.1. Example of stackable windows'''

&lt;source lang=&quot;c&quot;&gt;
#include                                        &lt;hildon/hildon.h&gt;

static void
show_new_window (void)
{
    GtkWidget *win;
    GtkWidget *vbox;
    GtkWidget *label;

    /* Create the main window */
    win = hildon_stackable_window_new();
    gtk_window_set_title ( GTK_WINDOW (win), &quot;Subview&quot;);

    /* Setting a label in the new window */
    label =  gtk_label_new (&quot;This is a subview&quot;);

    vbox = gtk_vbox_new (FALSE, 0);
    gtk_box_pack_start (GTK_BOX (vbox),
                        label,
                        TRUE,
                        TRUE,
                        0);

    gtk_container_add (GTK_CONTAINER (win),
                       vbox);

    /* This call show the window and also add the window to the stack */
    gtk_widget_show_all (win);
}


int
main (int argc,
      char **argv)
{
    HildonProgram *program;

    GtkWidget *win;
    GtkWidget *button;

    hildon_gtk_init (&amp;argc, &amp;argv);

    program = hildon_program_get_instance ();

    /* Create the main window */
    win = hildon_stackable_window_new ();
    gtk_window_set_title ( GTK_WINDOW (win), &quot;Main window&quot;);

    button =  gtk_button_new_with_label (&quot;Go to subview&quot;);
    gtk_container_add ( GTK_CONTAINER (win),
                        button);

    g_signal_connect (button, &quot;clicked&quot;, G_CALLBACK (show_new_window), NULL);

    g_signal_connect (win, &quot;destroy&quot;, G_CALLBACK (gtk_main_quit), NULL);

    /* This call show the window and also add the window to the stack */
    gtk_widget_show_all (win);
    gtk_main();

    return 0;
}
&lt;/source&gt;

The function &lt;code&gt;show_new_window()&lt;/code&gt; is set up as a handler for when the signal &quot;clicked&quot; is emitted. This function creates a new stackable window which is added on top of the stack by calling &lt;code&gt;gtk_widget_show()&lt;/code&gt;.

Displaying a stackable window by calling &lt;code&gt;gtk_widget_show()&lt;/code&gt; or &lt;code&gt;gtk_widget_show_all()&lt;/code&gt; automatically adds it on top of the default stack.

Note that no extra code exists for navigation between views because the navigation button in the top-right corner of the window allows users to return from subviews. When the user presses the navigation button, the topmost window is destroyed and the previous window becomes the topmost one.

In some applications it could be necessary to push and/or pop windows on the stack without destroying them, or even to build and handle extra windows' stacks. Next section explains how to do that.

==Advanced stack handling ==

The object which represents a stack of windows in the Hildon framework is the &lt;code&gt;HildonWindowStack&lt;/code&gt;. This object provides functions to push and/or pop windows on the stack, functions to access the topmost window or retrieve the current size of the stack are provided as well. Usual operations

To access the default stack, use the function &lt;code&gt;hildon_window_stack_get_default()&lt;/code&gt;. To access the stack that contains a particular window, use &lt;code&gt;hildon_stackable_window_get_stack()&lt;/code&gt;.

&lt;source lang=&quot;c&quot;&gt;
HildonWindowStack* hildon_window_stack_get_default          (void);
&lt;/source&gt;

The following functions are available to push and/or pop windows on a stack:

&lt;source lang=&quot;c&quot;&gt;
void        hildon_window_stack_push              (HildonWindowStack *stack,
                                                  HildonStackableWindow *win1,
        	                                   ...);
void        hildon_window_stack_push_list         (HildonWindowStack *stack,
        	                                   GList *list);
void        hildon_window_stack_push_1            (HildonWindowStack *stack,
        	                                   HildonStackableWindow *win);
void        hildon_window_stack_pop               (HildonWindowStack *stack,
        	                                   gint nwindows,
                	                           GList **popped_windows);
GtkWidget*  hildon_window_stack_pop_1             (HildonWindowStack *stack);
void        hildon_window_stack_pop_and_push      (HildonWindowStack *stack,
        	                                   gint nwindows,
                	                           GList **popped_windows,
                        	                   HildonStackableWindow *win1,
                                	           ...);
void        hildon_window_stack_pop_and_push_list (HildonWindowStack *stack,
        	                                   gint nwindows,
                	                           GList **popped_windows,
                        	                   GList *list);
&lt;/source&gt;

The example shows how to get the default stack and push a newly created window on the stack. (Note that you also can do the same in a single stack by calling &lt;code&gt;gtk_widget_show()&lt;/code&gt;).

'''Example 2.2. Pushing a new window into a stack'''

&lt;source lang=&quot;c&quot;&gt;
HildonWindowStack *stack = NULL;
GtkWidget *window;
window = hildon_stackable_window_new ();
stack = hildon_window_stack_get_default ();
hildon_window_stack_push_1 (stack, HILDON_STACKABLE_WINDOW (window));
&lt;/source&gt;

The push functions also displays the window. &lt;code&gt;gdk_window_show()&lt;/code&gt; is not needed after a push operation.

A function also exists to push a list of windows in a single step. Windows are stacked in the listed order and users only see the window that was last pushed.

'''Example 2.3. Pushing a list of windows into a stack'''

&lt;source lang=&quot;c&quot;&gt;
GList *list = NULL;
HildonWindowStack *stack = NULL;
HildonStackableWindow *window;
gint nwindows = 10;

stack = hildon_stackable_window_get_stack (window);

while (nwindows &gt; 0) {
    parent = hildon_stackable_window_new ();
    list = g_list_append (list, window);
    nwindows--;
}
hildon_window_stack_push_list (stack, list);
g_list_free (list);
&lt;/source&gt;

Similar functions exist for the pop operation. The example uses &lt;code&gt;hildon_window_stack_pop_list()&lt;/code&gt; to pop N windows from the default stack and stores them in the list of arguments. Notice that &lt;code&gt;hildon_stackable_window_size()&lt;/code&gt; is used to check the size of the stack.

'''Example 2.4. Popping a number of windows from a stack into a list'''

&lt;source lang=&quot;c&quot;&gt;
GList *list = NULL;
HildonWindowStack *stack;
HildonStackableWindow *window;
gint nwindows = 10;
stack = hildon_stackable_window_get_default ();
if (hildon_stackable_window_size (stack) &gt; nwindows){
    hildon_window_stack_pop (stack, nwindows, list);
}
&lt;/source&gt;

HildonWindowStack object also provides more advanced functions to perform both pop and push operations at once such as, for example, &lt;code&gt;hildon_window_stack_pop_and_push()&lt;/code&gt; or &lt;code&gt;hildon_window_stack_pop_and_push_list()&lt;/code&gt;. These functions do everything in a single transition, so the user only sees the last pushed window.

When you perform push/pop operations, consider two things:

* All stacked windows are visible and all visible windows are stacked.
* Each window can only be in one stack at a time.

Due to the first one, a push operation always shows the window and a pop operation always hides the window. Functions &lt;code&gt;gtk_widget_show()&lt;/code&gt; and &lt;code&gt;gdk_window_hide()&lt;/code&gt; always push and remove the window from its current stack, respectively.

Regarding the second one, operation push has no effect on windows which are already on a stack.

'''Multiple Stacks'''

Most applications do not need more than the default stack. Although you can use multiple stacks in one application, note that this increases the complexity of the UI, which is not desirable.

To create a new stack just use &lt;code&gt;hildon_window_stack_new()&lt;/code&gt;. A new stacks behaves like a new application or task. Newly created stacks are displayed on top of the current stack. Users need to use the task selector to change between stacks when they change tasks (applications).

Once a new stack is created, use the functions explained in the previous section to pop and/or push windows on the stack.

==Dialogs ==

Dialog boxes are a convenient way to prompt the user for a small amount of input, for example to display a message, ask a question, or anything else that does not require extensive effort on the user's part.

Hildon provides specialized widgets to cover the most common dialog's use cases: &lt;code&gt;HildonNote&lt;/code&gt; and &lt;code&gt;HildonBanner&lt;/code&gt;.

&lt;code&gt;HildonNote&lt;/code&gt; is useful to ask users a question and &lt;code&gt;HildonBanner&lt;/code&gt; is used to show textual information which automatically disappear after a certain period of time without user interaction. For more information on these widgets, see [[Documentation/Maemo_5_Developer_Guide/Application_Development/Controls#Notification_widgets|Notification widgets]] .

Besides those widgets, Hildon provides also specialized GtkDialogs designed to cover different use cases: &lt;code&gt;HildonPickerDialog&lt;/code&gt; and &lt;code&gt;HildonWizardDialog&lt;/code&gt;.

The widget &lt;code&gt;HildonPickerDialog&lt;/code&gt; is used along with &lt;code&gt;HildonPickerButton&lt;/code&gt; and &lt;code&gt;HildonTouchSelector&lt;/code&gt; to give a way to make data selections. [[Documentation/Maemo 5 Developer Guide/Application Development/Data selection|Data Selection]] explains the use of such widgets.

To create a guided process which helps users accomplish complex tasks step by step, Hildon provides the &lt;code&gt;HildonWizardDialog&lt;/code&gt; widget.

===HildonWizardDialog===

&lt;code&gt;HildonWizardDialog&lt;/code&gt; is a widget that allows one to create a guided process. The dialog has three standard buttons, previous, next and finish, and contains several pages. Users can close the dialog by tapping the dimmed area outside the dialog's window.

A good example of a guided process which can be implemented with this widget is the setup of a new e-mail account in an e-mail client. Users have to fill several entries through several steps to accomplish the setup of the new account. The process of installing an application is another example of the uses of this widget.

This widget uses a &lt;code&gt;GtkNotebook&lt;/code&gt; that contains the actual wizard pages. The notebook widget is pointed by the property &quot;&lt;code&gt;wizard-notebook&lt;/code&gt;&quot; of the wizard. You need to create the notebook as well as the pages that are displayed. For more information on &lt;code&gt;GtkNotebook&lt;/code&gt;, see the GTK+ Reference Manual.

To create a new wizard dialog, call:

&lt;source lang=&quot;c&quot;&gt;
GtkWidget*  hildon_wizard_dialog_new        (GtkWindow *parent,
                                             const char *wizard_name,
                                             GtkNotebook *notebook);
&lt;/source&gt;

The parent window is usually the current visible view. The wizard name is displayed as title in the wizard dialog.

Usually, you want to validate user input to decide whether it should move to the next step or not. To do that, set a user function by using:

&lt;source lang=&quot;c&quot;&gt;
gboolean    (*HildonWizardDialogPageFunc)   (GtkNotebook *notebook,
                                             gint current_page,
                                             gpointer data);
&lt;/source&gt;

The function above sets the function &quot;&lt;code&gt;page_func&lt;/code&gt;&quot; to be used to decide whether the user can go to the next page when pressing the forward button. The function must have the following signature:

&lt;source lang=&quot;c&quot;&gt;
gboolean    (*HildonWizardDialogPageFunc)   (GtkNotebook *notebook,
                                             gint current_page,
                                             gpointer data);
&lt;/source&gt;

Here, an example of using a &lt;code&gt;HildonWizardDialog&lt;/code&gt;

[[Image:example_wizard_dialog.png‎|frame|center|alt=Screeshot of wizard dialog|Wizard dialog]]

'''Example 2.5. Example of a Hildon wizard dialog'''

&lt;source lang=&quot;c&quot;&gt;
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;string.h&gt;
#include &lt;hildon/hildon.h&gt;
                                                                                                                         gboolean
on_page_switch (GtkNotebook *notebook,
                GtkNotebookPage *page,
                guint num,
                HildonWizardDialog *dialog)
{
    g_debug (&quot;Page %d&quot;, num);
    return TRUE;
}
                                                                                                                           static gboolean
some_page_func (GtkNotebook *nb,
                gint current,
                gpointer userdata)
{
  HildonEntry *entry;
  /* Validate data only for the third page. */
  switch (current) {
  case 2:
    entry = HILDON_ENTRY (gtk_notebook_get_nth_page (nb, current));
    return (strlen (hildon_entry_get_text (entry)) != 0);
  default:
    return TRUE;
  }
}
                                                                                                                            int
main (int argc, char **argv)
{
    hildon_gtk_init (&amp;argc, &amp;argv);
    GtkWidget *dialog,*notebook, *label_1, *label_2, *entry_3, *label_4;
    /* Create a notebook */
    notebook = gtk_notebook_new ();
    /* Create widgets to palce into the notebook's pages */
    label_1 = gtk_label_new (&quot;Page 1&quot;);
    label_2 = gtk_label_new (&quot;Page 2&quot;);
    entry_3 = hildon_entry_new (HILDON_SIZE_AUTO);
    hildon_entry_set_placeholder (HILDON_ENTRY (entry_3),
                                  &quot; Write something to continue&quot;);
    label_4 = gtk_label_new (&quot;Page 4&quot;);
    /* Append pages */
    gtk_notebook_append_page (GTK_NOTEBOOK (notebook), label_1, NULL);
    gtk_notebook_append_page (GTK_NOTEBOOK (notebook), label_2, NULL);
    gtk_notebook_append_page (GTK_NOTEBOOK (notebook), entry_3, NULL);
    gtk_notebook_append_page (GTK_NOTEBOOK (notebook), label_4, NULL);
    /* Create wizard dialog */
    dialog = hildon_wizard_dialog_new (NULL, &quot;Wizard&quot;,
                                       GTK_NOTEBOOK (notebook));
    /* Set a handler for &quot;switch-page&quot; signal */
    g_signal_connect (G_OBJECT (notebook),
                      &quot;switch-page&quot;,
                      G_CALLBACK (on_page_switch),
                      dialog);
    /* Set a function to decide if user can go to next page */
    hildon_wizard_dialog_set_forward_page_func (HILDON_WIZARD_DIALOG (dialog),
                                                some_page_func, NULL, NULL);
    gtk_widget_show_all (dialog);
    gtk_dialog_run (GTK_DIALOG (dialog));
    return 0;
}
&lt;/source&gt;

Apart from how to create and use a wizard dialog, this example also sets up a handler to catch the signal &quot;&lt;code&gt;switch-page&lt;/code&gt;&quot; from the notepad. This signal is emitted by the widget &lt;code&gt;GtkNotebook&lt;/code&gt; when the user or a function changes the current page.

===Using GtkDialogs in Hildon applications===

In general, you can use &lt;code&gt;GtkDialog&lt;/code&gt; much like you use it in a GTK+ application, but consider the following:

* In Hildon applications, buttons &quot;cancel&quot;, &quot;reject&quot; and &quot;close&quot; are allowed. However, buttons which emit the signal &quot;&lt;code&gt;response&lt;/code&gt;&quot; with &lt;code&gt;GTK_RESPONSE_CANCEL&lt;/code&gt;, &lt;code&gt;GTK_RESPONSE_REJECT&lt;/code&gt; or &lt;code&gt;GTK_RESPONSE_CLOSE&lt;/code&gt; as the response's identifier are not displayed. Therefore, if you need to deal with the action of closing a GtkDialog in a Hildon application, be aware of this detail and handle the &lt;code&gt;GTK_RESPONSE_DELETE_EVENT&lt;/code&gt; response identifier properly.
* Another detail to take care of is that &lt;code&gt;GtkDialog&lt;/code&gt;s can work in two modalities in a Hildon application: task-model or system-model. A dialog is task-modal if it is transient for the main window. That is the case when the function &lt;code&gt;gtk_window_set_transient_for()&lt;/code&gt; is used or the dialog was created by calling &lt;code&gt;gtk_dialog_new_with_buttons()&lt;/code&gt; specifying a parent window. Otherwise, the dialog is system-modal.

If the dialog is task-modal, the Platform UI (Task button and Status area) are visible on top and can be used normally to switch between tasks.

If the dialog is system-modal, both the task button and status area are blurred and dimmed. They are not active while the dialog is open and task switching is not possible until it closes.

The following is an example for creating a task-modal dialog.

'''Example 2.6. Application modal dialog example'''

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon/hildon.h&gt;
int
main                                            (int argc,
                                                 char **argv)
{
  GtkWidget *dialog;
  GtkWidget *win;
  hildon_gtk_init (&amp;argc, &amp;argv);
  win = hildon_stackable_window_new () ;
  gtk_widget_show (win);
  dialog = gtk_dialog_new ();
  gtk_window_set_transient_for  (GTK_WINDOW (dialog),
                                 GTK_WINDOW (win));
  gtk_window_set_title (GTK_WINDOW (dialog), &quot;Hello!&quot;);
  gtk_widget_show_all (GTK_WIDGET (dialog));
  gtk_dialog_run (GTK_DIALOG (dialog));
  return 0;
}
&lt;/source&gt;

&lt;hr/&gt;
&lt;table width=100%&gt;
&lt;tr&gt;&lt;td width=30% align=left&gt;
Prev: [[{{BASEPAGENAME}}/Getting_started|Getting Started]]&lt;/td&gt;
&lt;td align=center&gt;Up: [[{{BASEPAGENAME}}|Table of Contents]]&lt;/td&gt;
&lt;td width=30% align=right&gt;
Next: [[{{BASEPAGENAME}}/Menus|Menus]]&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Graphical UI Tutorial/Windows and dialogs</title>
    <id>2130</id>
    <revision>
      <id>39544</id>
      <timestamp>2010-10-15T10:43:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>another &lt;code&gt;</comment>
      <text xml:space="preserve">{{Legacy documentation}}

When creating applications for hand-held devices, you should take into account several issues about usability and device limitations. Screen size is a particularly large restriction; a simple interface is essential.

In contrast with GTK+ applications, Hildon applications display only one window at a time. A typical Hildon application uses several windows representing different views in a tree-like hierarchy.

[[Documentation/Maemo 5 Developer Guide/Application Development/Getting started#Hello World in Hildon | Example 1.2]] has already shown how to use a simple &lt;code&gt;HildonWindow&lt;/code&gt; can be used and how it resembles the use of a classical GTK+ window. The tree-like views represent a new concept introduced by Hildon.

To properly understand what views are, think of an application as a program that allows the user to perform one or more tasks. Each task can be broken down into several main activities.

Main activities in tasks must be done and presented in separate application views or windows, while assistance activities and steps to fulfill those tasks must be done in dialogs and menus on top of the currently displayed view.

Views work in a tree-like hierarchy. Root View acts as the &quot;root&quot; for the tree, and the subsequent Sub Views branch down the hierarchy.

[[Image:Rootview.png|thumb|center|400px|alt=Screenshot of root view|Root view]] [[Image:Subview.png|thumb|center|400px|alt=Screenshot of sub view|Sub view]]

The view concept is implemented by the widget &lt;code&gt;HildonStackableWindow&lt;/code&gt;. This widget allows building a navigable hierarchy of windows with less code.

==Stackable windows ==

The &lt;code&gt;HildonStackableWindow&lt;/code&gt; is a GTK+ widget which represents a top-level window in the Hildon framework. Stackable windows can be organized in a hierarchical way.

A stack sets the hierarchical relationships between windows. A child window is on top of its parent window. That allows navigation to previous window by removing the topmost window.

Users can only see and interact with the window on the top of stack. All other windows are mapped and visible but they are obscured by the topmost one. And the users can go back to a root view from a subview by clicking in the navigation button in the top right corner of the window.

Each application has a default stack, and windows are automatically added to it when they are shown using &lt;code&gt;gtk_widget_show()&lt;/code&gt;. Most applications do not need to create extra stacks. Create more than one stack could make your UI too complex, so think twice before doing it.

Let's see a simple example to show the use of this widget. This simple program creates a stackable window with a button to navigate towards a subview, a new window on top of the stack.

'''Example 2.1. Example of stackable windows'''

&lt;source lang=&quot;c&quot;&gt;
#include                                        &lt;hildon/hildon.h&gt;

static void
show_new_window (void)
{
    GtkWidget *win;
    GtkWidget *vbox;
    GtkWidget *label;

    /* Create the main window */
    win = hildon_stackable_window_new();
    gtk_window_set_title ( GTK_WINDOW (win), &quot;Subview&quot;);

    /* Setting a label in the new window */
    label =  gtk_label_new (&quot;This is a subview&quot;);

    vbox = gtk_vbox_new (FALSE, 0);
    gtk_box_pack_start (GTK_BOX (vbox),
                        label,
                        TRUE,
                        TRUE,
                        0);

    gtk_container_add (GTK_CONTAINER (win),
                       vbox);

    /* This call show the window and also add the window to the stack */
    gtk_widget_show_all (win);
}


int
main (int argc,
      char **argv)
{
    HildonProgram *program;

    GtkWidget *win;
    GtkWidget *button;

    hildon_gtk_init (&amp;argc, &amp;argv);

    program = hildon_program_get_instance ();

    /* Create the main window */
    win = hildon_stackable_window_new ();
    gtk_window_set_title ( GTK_WINDOW (win), &quot;Main window&quot;);

    button =  gtk_button_new_with_label (&quot;Go to subview&quot;);
    gtk_container_add ( GTK_CONTAINER (win),
                        button);

    g_signal_connect (button, &quot;clicked&quot;, G_CALLBACK (show_new_window), NULL);

    g_signal_connect (win, &quot;destroy&quot;, G_CALLBACK (gtk_main_quit), NULL);

    /* This call show the window and also add the window to the stack */
    gtk_widget_show_all (win);
    gtk_main();

    return 0;
}
&lt;/source&gt;

The function &lt;code&gt;show_new_window()&lt;/code&gt; is set up as a handler for when the signal &quot;clicked&quot; is emitted. This function creates a new stackable window which is added on top of the stack by calling &lt;code&gt;gtk_widget_show()&lt;/code&gt;.

Displaying a stackable window by calling &lt;code&gt;gtk_widget_show()&lt;/code&gt; or &lt;code&gt;gtk_widget_show_all()&lt;/code&gt; automatically adds it on top of the default stack.

Note that no extra code exists for navigation between views because the navigation button in the top-right corner of the window allows users to return from subviews. When the user presses the navigation button, the topmost window is destroyed and the previous window becomes the topmost one.

In some applications it could be necessary to push and/or pop windows on the stack without destroying them, or even to build and handle extra windows' stacks. Next section explains how to do that.

==Advanced stack handling ==

The object which represents a stack of windows in the Hildon framework is the &lt;code&gt;HildonWindowStack&lt;/code&gt;. This object provides functions to push and/or pop windows on the stack, functions to access the topmost window or retrieve the current size of the stack are provided as well. Usual operations

To access the default stack, use the function &lt;code&gt;hildon_window_stack_get_default()&lt;/code&gt;. To access the stack that contains a particular window, use &lt;code&gt;hildon_stackable_window_get_stack()&lt;/code&gt;.

&lt;source lang=&quot;c&quot;&gt;
HildonWindowStack* hildon_window_stack_get_default          (void);
&lt;/source&gt;

The following functions are available to push and/or pop windows on a stack:

&lt;source lang=&quot;c&quot;&gt;
void        hildon_window_stack_push              (HildonWindowStack *stack,
                                                  HildonStackableWindow *win1,
        	                                   ...);
void        hildon_window_stack_push_list         (HildonWindowStack *stack,
        	                                   GList *list);
void        hildon_window_stack_push_1            (HildonWindowStack *stack,
        	                                   HildonStackableWindow *win);
void        hildon_window_stack_pop               (HildonWindowStack *stack,
        	                                   gint nwindows,
                	                           GList **popped_windows);
GtkWidget*  hildon_window_stack_pop_1             (HildonWindowStack *stack);
void        hildon_window_stack_pop_and_push      (HildonWindowStack *stack,
        	                                   gint nwindows,
                	                           GList **popped_windows,
                        	                   HildonStackableWindow *win1,
                                	           ...);
void        hildon_window_stack_pop_and_push_list (HildonWindowStack *stack,
        	                                   gint nwindows,
                	                           GList **popped_windows,
                        	                   GList *list);
&lt;/source&gt;

The example shows how to get the default stack and push a newly created window on the stack. (Note that you also can do the same in a single stack by calling &lt;code&gt;gtk_widget_show()&lt;/code&gt;).

'''Example 2.2. Pushing a new window into a stack'''

&lt;source lang=&quot;c&quot;&gt;
HildonWindowStack *stack = NULL;
GtkWidget *window;
window = hildon_stackable_window_new ();
stack = hildon_window_stack_get_default ();
hildon_window_stack_push_1 (stack, HILDON_STACKABLE_WINDOW (window));
&lt;/source&gt;

The push functions also displays the window. &lt;code&gt;gdk_window_show()&lt;/code&gt; is not needed after a push operation.

A function also exists to push a list of windows in a single step. Windows are stacked in the listed order and users only see the window that was last pushed.

'''Example 2.3. Pushing a list of windows into a stack'''

&lt;source lang=&quot;c&quot;&gt;
GList *list = NULL;
HildonWindowStack *stack = NULL;
HildonStackableWindow *window;
gint nwindows = 10;

stack = hildon_stackable_window_get_stack (window);

while (nwindows &gt; 0) {
    parent = hildon_stackable_window_new ();
    list = g_list_append (list, window);
    nwindows--;
}
hildon_window_stack_push_list (stack, list);
g_list_free (list);
&lt;/source&gt;

Similar functions exist for the pop operation. The example uses &lt;code&gt;hildon_window_stack_pop_list()&lt;/code&gt; to pop N windows from the default stack and stores them in the list of arguments. Notice that &lt;code&gt;hildon_stackable_window_size()&lt;/code&gt; is used to check the size of the stack.

'''Example 2.4. Popping a number of windows from a stack into a list'''

&lt;source lang=&quot;c&quot;&gt;
GList *list = NULL;
HildonWindowStack *stack;
HildonStackableWindow *window;
gint nwindows = 10;
stack = hildon_stackable_window_get_default ();
if (hildon_stackable_window_size (stack) &gt; nwindows){
    hildon_window_stack_pop (stack, nwindows, list);
}
&lt;/source&gt;

HildonWindowStack object also provides more advanced functions to perform both pop and push operations at once such as, for example, &lt;code&gt;hildon_window_stack_pop_and_push()&lt;/code&gt; or &lt;code&gt;hildon_window_stack_pop_and_push_list()&lt;/code&gt;. These functions do everything in a single transition, so the user only sees the last pushed window.

When you perform push/pop operations, consider two things:

* All stacked windows are visible and all visible windows are stacked.
* Each window can only be in one stack at a time.

Due to the first one, a push operation always shows the window and a pop operation always hides the window. Functions &lt;code&gt;gtk_widget_show()&lt;/code&gt; and &lt;code&gt;gdk_window_hide()&lt;/code&gt; always push and remove the window from its current stack, respectively.

Regarding the second one, operation push has no effect on windows which are already on a stack.

'''Multiple Stacks'''

Most applications do not need more than the default stack. Although you can use multiple stacks in one application, note that this increases the complexity of the UI, which is not desirable.

To create a new stack just use &lt;code&gt;hildon_window_stack_new()&lt;/code&gt;. A new stacks behaves like a new application or task. Newly created stacks are displayed on top of the current stack. Users need to use the task selector to change between stacks when they change tasks (applications).

Once a new stack is created, use the functions explained in the previous section to pop and/or push windows on the stack.

==Dialogs ==

Dialog boxes are a convenient way to prompt the user for a small amount of input, for example to display a message, ask a question, or anything else that does not require extensive effort on the user's part.

Hildon provides specialized widgets to cover the most common dialog's use cases: &lt;code&gt;HildonNote&lt;/code&gt; and &lt;code&gt;HildonBanner&lt;/code&gt;.

&lt;code&gt;HildonNote&lt;/code&gt; is useful to ask users a question and &lt;code&gt;HildonBanner&lt;/code&gt; is used to show textual information which automatically disappear after a certain period of time without user interaction. For more information on these widgets, see [[Documentation/Maemo_5_Developer_Guide/Application_Development/Controls#Notification_widgets|Notification widgets]] .

Besides those widgets, Hildon provides also specialized GtkDialogs designed to cover different use cases: &lt;code&gt;HildonPickerDialog&lt;/code&gt; and &lt;code&gt;HildonWizardDialog&lt;/code&gt;.

The widget &lt;code&gt;HildonPickerDialog&lt;/code&gt; is used along with &lt;code&gt;HildonPickerButton&lt;/code&gt; and &lt;code&gt;HildonTouchSelector&lt;/code&gt; to give a way to make data selections. [[Documentation/Maemo 5 Developer Guide/Application Development/Data selection|Data Selection]] explains the use of such widgets.

To create a guided process which helps users accomplish complex tasks step by step, Hildon provides the &lt;code&gt;HildonWizardDialog&lt;/code&gt; widget.

===HildonWizardDialog===

&lt;code&gt;HildonWizardDialog&lt;/code&gt; is a widget that allows one to create a guided process. The dialog has three standard buttons, previous, next and finish, and contains several pages. Users can close the dialog by tapping the dimmed area outside the dialog's window.

A good example of a guided process which can be implemented with this widget is the setup of a new e-mail account in an e-mail client. Users have to fill several entries through several steps to accomplish the setup of the new account. The process of installing an application is another example of the uses of this widget.

This widget uses a &lt;code&gt;GtkNotebook&lt;/code&gt; that contains the actual wizard pages. The notebook widget is pointed by the property &quot;&lt;code&gt;wizard-notebook&lt;/code&gt;&quot; of the wizard. You need to create the notebook as well as the pages that are displayed. For more information on &lt;code&gt;GtkNotebook&lt;/code&gt;, see the GTK+ Reference Manual.

To create a new wizard dialog, call:

&lt;source lang=&quot;c&quot;&gt;
GtkWidget*  hildon_wizard_dialog_new        (GtkWindow *parent,
                                             const char *wizard_name,
                                             GtkNotebook *notebook);
&lt;/source&gt;

The parent window is usually the current visible view. The wizard name is displayed as title in the wizard dialog.

Usually, you want to validate user input to decide whether it should move to the next step or not. To do that, set a user function by using:

&lt;source lang=&quot;c&quot;&gt;
gboolean    (*HildonWizardDialogPageFunc)   (GtkNotebook *notebook,
                                             gint current_page,
                                             gpointer data);
&lt;/source&gt;

The function above sets the function &quot;&lt;code&gt;page_func&lt;/code&gt;&quot; to be used to decide whether the user can go to the next page when pressing the forward button. The function must have the following signature:

&lt;source lang=&quot;c&quot;&gt;
gboolean    (*HildonWizardDialogPageFunc)   (GtkNotebook *notebook,
                                             gint current_page,
                                             gpointer data);
&lt;/source&gt;

Here, an example of using a &lt;code&gt;HildonWizardDialog&lt;/code&gt;

[[Image:example_wizard_dialog.png‎|frame|center|alt=Screeshot of wizard dialog|Wizard dialog]]

'''Example 2.5. Example of a Hildon wizard dialog'''

&lt;source lang=&quot;c&quot;&gt;
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;string.h&gt;
#include &lt;hildon/hildon.h&gt;
                                                                                                                         gboolean
on_page_switch (GtkNotebook *notebook,
                GtkNotebookPage *page,
                guint num,
                HildonWizardDialog *dialog)
{
    g_debug (&quot;Page %d&quot;, num);
    return TRUE;
}
                                                                                                                           static gboolean
some_page_func (GtkNotebook *nb,
                gint current,
                gpointer userdata)
{
  HildonEntry *entry;
  /* Validate data only for the third page. */
  switch (current) {
  case 2:
    entry = HILDON_ENTRY (gtk_notebook_get_nth_page (nb, current));
    return (strlen (hildon_entry_get_text (entry)) != 0);
  default:
    return TRUE;
  }
}
                                                                                                                            int
main (int argc, char **argv)
{
    hildon_gtk_init (&amp;argc, &amp;argv);
    GtkWidget *dialog,*notebook, *label_1, *label_2, *entry_3, *label_4;
    /* Create a notebook */
    notebook = gtk_notebook_new ();
    /* Create widgets to palce into the notebook's pages */
    label_1 = gtk_label_new (&quot;Page 1&quot;);
    label_2 = gtk_label_new (&quot;Page 2&quot;);
    entry_3 = hildon_entry_new (HILDON_SIZE_AUTO);
    hildon_entry_set_placeholder (HILDON_ENTRY (entry_3),
                                  &quot; Write something to continue&quot;);
    label_4 = gtk_label_new (&quot;Page 4&quot;);
    /* Append pages */
    gtk_notebook_append_page (GTK_NOTEBOOK (notebook), label_1, NULL);
    gtk_notebook_append_page (GTK_NOTEBOOK (notebook), label_2, NULL);
    gtk_notebook_append_page (GTK_NOTEBOOK (notebook), entry_3, NULL);
    gtk_notebook_append_page (GTK_NOTEBOOK (notebook), label_4, NULL);
    /* Create wizard dialog */
    dialog = hildon_wizard_dialog_new (NULL, &quot;Wizard&quot;,
                                       GTK_NOTEBOOK (notebook));
    /* Set a handler for &quot;switch-page&quot; signal */
    g_signal_connect (G_OBJECT (notebook),
                      &quot;switch-page&quot;,
                      G_CALLBACK (on_page_switch),
                      dialog);
    /* Set a function to decide if user can go to next page */
    hildon_wizard_dialog_set_forward_page_func (HILDON_WIZARD_DIALOG (dialog),
                                                some_page_func, NULL, NULL);
    gtk_widget_show_all (dialog);
    gtk_dialog_run (GTK_DIALOG (dialog));
    return 0;
}
&lt;/source&gt;

Apart from how to create and use a wizard dialog, this example also sets up a handler to catch the signal &quot;&lt;code&gt;switch-page&lt;/code&gt;&quot; from the notepad. This signal is emitted by the widget &lt;code&gt;GtkNotebook&lt;/code&gt; when the user or a function changes the current page.

===Using GtkDialogs in Hildon applications===

In general, you can use &lt;code&gt;GtkDialog&lt;/code&gt; much like you use it in a GTK+ application, but consider the following:

* In Hildon applications, buttons &quot;cancel&quot;, &quot;reject&quot; and &quot;close&quot; are allowed. However, buttons which emit the signal &quot;&lt;code&gt;response&lt;/code&gt;&quot; with &lt;code&gt;GTK_RESPONSE_CANCEL&lt;/code&gt;, &lt;code&gt;GTK_RESPONSE_REJECT&lt;/code&gt; or &lt;code&gt;GTK_RESPONSE_CLOSE&lt;/code&gt; as the response's identifier are not displayed. Therefore, if you need to deal with the action of closing a GtkDialog in a Hildon application, be aware of this detail and handle the &lt;code&gt;GTK_RESPONSE_DELETE_EVENT&lt;/code&gt; response identifier properly.
* Another detail to take care of is that &lt;code&gt;GtkDialog&lt;/code&gt;s can work in two modalities in a Hildon application: task-model or system-model. A dialog is task-modal if it is transient for the main window. That is the case when the function &lt;code&gt;gtk_window_set_transient_for()&lt;/code&gt; is used or the dialog was created by calling &lt;code&gt;gtk_dialog_new_with_buttons()&lt;/code&gt; specifying a parent window. Otherwise, the dialog is system-modal.

If the dialog is task-modal, the Platform UI (Task button and Status area) are visible on top and can be used normally to switch between tasks.

If the dialog is system-modal, both the task button and status area are blurred and dimmed. They are not active while the dialog is open and task switching is not possible until it closes.

The following is an example for creating a task-modal dialog.

'''Example 2.6. Application modal dialog example'''

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon/hildon.h&gt;
int
main                                            (int argc,
                                                 char **argv)
{
  GtkWidget *dialog;
  GtkWidget *win;
  hildon_gtk_init (&amp;argc, &amp;argv);
  win = hildon_stackable_window_new () ;
  gtk_widget_show (win);
  dialog = gtk_dialog_new ();
  gtk_window_set_transient_for  (GTK_WINDOW (dialog),
                                 GTK_WINDOW (win));
  gtk_window_set_title (GTK_WINDOW (dialog), &quot;Hello!&quot;);
  gtk_widget_show_all (GTK_WIDGET (dialog));
  gtk_dialog_run (GTK_DIALOG (dialog));
  return 0;
}
&lt;/source&gt;

&lt;hr/&gt;
&lt;table width=100%&gt;
&lt;tr&gt;&lt;td width=30% align=left&gt;
Prev: [[{{BASEPAGENAME}}/Getting_started|Getting Started]]&lt;/td&gt;
&lt;td align=center&gt;Up: [[{{BASEPAGENAME}}|Table of Contents]]&lt;/td&gt;
&lt;td width=30% align=right&gt;
Next: [[{{BASEPAGENAME}}/Menus|Menus]]&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Human Interface Guidelines</title>
    <id>2194</id>
    <revision>
      <id>29172</id>
      <timestamp>2010-02-12T09:24:10Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Legacy documentation}}</comment>
      <text xml:space="preserve">{{Legacy documentation}}

*[[{{PAGENAME}}/Introduction| Introduction]]
*[[{{PAGENAME}}/Usability Principles|Usability Principles]]
*[[{{PAGENAME}}/Device Orientation| Device Orientation]]
*[[{{PAGENAME}}/Windows|Windows]]
*[[{{PAGENAME}}/Notes and Banners|Notes and Banners]]
*[[{{PAGENAME}}/Dialogs|Dialogs]]
*[[{{PAGENAME}}/View Menu|View Menu]]
*[[{{PAGENAME}}/Hildonizing an Interface|Hildonizing an Interface]]
*[[{{PAGENAME}}/Controls|Controls]]
*[[{{PAGENAME}}/User Input|User Input]]
*[[{{PAGENAME}}/Icons|Icons]]
*[[{{PAGENAME}}/Reality Checks|Reality Checks]]</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Human Interface Guidelines/Controls</title>
    <id>2215</id>
    <revision>
      <id>41534</id>
      <timestamp>2011-01-31T14:34:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Text Entry Fields */ add link</comment>
      <text xml:space="preserve">{{Legacy documentation}}

==Using Controls Effectively==

Although a good number of GTK+ widgets can be used the same way in Hildon as they are with GTK+, some of them require special attention. Apart from that, there are several widgets that are related only to Hildon and were specially designed for mobile devices with touch screens.

Never alter the widgets standard behavior. This allows users to predict the effects of their actions, and thus learn to use your application more quickly and efficiently. Controls that behave in a non-standard way break the user's mental model of how your application works and dilute the meaning of the interface's visual language.

==Text Entry Fields==

{{main|Legacy Maemo 5 Documentation/Graphical UI Tutorial/Controls#Text display and handling}}

Text entry fields are used for entering one or more lines of plain text. Use a &lt;code&gt;HildonEntry&lt;/code&gt; for a single-line text input or &lt;code&gt;HildonTextView&lt;/code&gt; if you need a multi-line text input. 

[[Image:text_widgets.png|frame|center|alt=Screenshot of text input widgets|Figure 10: Text input widgets]]

===Guidelines===

* When the user gives focus to an entry field using the keyboard, place the text cursor at the end of the existing text and highlight its contents (but do not overwrite or delete the existing PRIMARY clipboard selection). This makes it easy to immediately overtype or append new text, the two most common operations performed on entry fields.
* Size text entry fields according to the likely size of the input. This gives a useful visual cue to the amount of input expected, and breaks up the dialog making it easier to scan. Do not make all the fields in the dialog the same width just to make everything line up nicely.
* In a dialog, for example, validate the contents of the entry field when it loses focus or when the window is closed, not after each keypress.

==Behavior of Tab key==

The behavior of the Tab key in Hildon differs from what a user might be used in a desktop application. Because no widgets, apart from the Text Entry and Text View, can have focus, the Tab key will only set or change focus if any of the text widgets is present. Otherwise, by default it does not do anything.

==Touch Selectors==

Touch Selectors are a set of widgets introduced by Hildon that allow a user to select one or several items from a list. You can use a Touch Selector to achieve similar functionalities that you do with GTK+ widgets that are not advised to be used for mobile devices. For example, consider an application that requires the user to select a favorite fruit from a list. A touch selector can be used for this task.

==Touch Selector Entry==

A Touch Selector Entry is a special kind of selector that apart from the normal touch selector functionality also has a text entry on top of the list (see figure 11).

[[Image:touch_selector_entry.png|frame|center|alt=Screenshot of TouchSelectorEntry|Figure 11: Touch selector entry]]

This widget can be used for example in an application where the user is asked to provide a favorite route destination and the application keeps saving the destinations previously entered and suggesting them by having them in the list of the Touch Selector Entry. A different example that might be worth mentioning is an application that asks the user to provide a number that is inside a certain range. The application can provide the most common choices in the list but still allow the user to enter any number in the entry (which would need validation afterwards).

===Picker Button===

Picker buttons are the way to use a touch selector. When the user presses a picker button, the assigned touch selector is shown so the user can choose an option. The button holds the text returned from the touch select print function as its value like shown in figure 12.

[[Image:picker_button.png|frame|center|alt=Screenshot of picker button|Figure 12: Picker button]]

Generally, any group of options from which a user must choose, one must be presented using a picker button.

===Date Selector===

Date selectors are touch selectors that provide an easy way for the user to pick a date like shown in figure 13.

[[Image:date_selector.png|frame|center|alt=Screenshot of date selector|Figure 13: Date selector]]

====Guidelines====

* Assign the initial date of the date selector according to what is needed, that is, if the date is supposed to represent a future event, set the initial date to either the current day or the day after.
* On the other hand, if what is asked is a birthday, set the initial date to January 1st of the previous year.

===Date Button===

Date buttons work just like a picker button but use a date selector instead of a general touch selector (see figure 14).

[[Image:date_button.png|frame|center|alt=Screenshot of date button|Figure 14: Date button]]

===Time Selector===

Just like date selectors, time selectors are touch selectors but target the selection of time like figure 15 shows (hour, minute, second and the AM/PM format depending on the 12/24 hour settings).

[[Image:time_selector.png|frame|center|alt=Screenshot of time selector|Figure 15: Time selector]]

====Guidelines====

* As mentioned for the date selector, set the time selector's initial time taking into account its purpose and context.
* For example, if an application asks for a date and time of a future event and the user was already asked for the date, in case they pick today's date, set the time selector's initial value to later time than the current time.

===Time Button===

Time buttons launch a time selector when the user presses them and they are the most common way of using a time selector.

[[Image:time_button.png|frame|center|alt=Screenshot of time button|Figure 16: Time button]]

==Toolbars==

{{main|Legacy Maemo 5 Documentation/Graphical UI Tutorial/Toolbars}}

Avoid using regular toolbars in a Hildon application. Fixed widgets like this waste too much precious space that the application can use in a better way.

Many times, toolbars hold controls that perform the exactly same actions as for example a menu or a button. Hence, one way of removing a toolbar is to not consider the actions present on it that the user can already accomplish from another place. For example, text edition applications often use the buttons &quot;New&quot;, &quot;Open&quot; and &quot;Save&quot; in their toolbars, when those actions are already present in a menu.

If there are actions designed for a toolbar that were not to be available from anywhere else in the application, then consider creating a new menu item that shows up a subview with those actions. On the other hand, there are actions in a toolbar that are constantly used - in an email application, the &quot;New Message&quot; is likely to be used all the time. Place actions like this together with the application's main contents. So, place the &quot;New Message&quot; button on top of the application's list of messages. 

===Exceptional Usage of Toolbars===

Although you should avoid toolbars, there are special cases where they can come handy without compromising usability. For example, in an image edition application, if the application shows only the image, you can use a toolbar to provide quick access to edition tools.

===Special Toolbars===

Hildon provides special toolbars that target some specific need: find toolbar and edit toolbar.

===Find Toolbar===

A find toolbar presents a familiar way for the user to enter search content. It provides a text entry with a dropdown list that contains the search terms previously entered.

Applications must use this toolbar for search instead of having their own individual search interface.

===Edit Toolbar===

An edit toolbar allows the user to perform an action for a number of previously edited items. For example, an application that allows the user to delete a list of messages must have an edit toolbar that deletes the selected messages when the user clicks the toolbar's button.

[[Image:edit_toolbar.png|400px]]

''Figure 17: Edit toolbar''

The toolbar's button should display a label describing what will be done. For the mentioned example, the button's label must be &quot;Delete&quot; (similar to what is shown in figure 17).

==Buttons==

In Hildon, you can use either a classical GTK+ button or a Hildon button. The latter has a title and value instead of just a label. The title appears in an upper area in the button with the value on the bottom part. For the GTK+ button case, you can create a normal GTK+ button but establishing a size that is optimized to be used by fingers - like the first and third buttons on the left side of figure 18.

[[Image:buttons.png|frame|center|alt=Screenshot of buttons|Figure 18: Buttons]]

Apart from the automatic height (button on the right in figure 18), a Hildon button is usually set to a &quot;finger&quot; or &quot;thumb&quot; heights like the buttons labeled &quot;Update&quot; and &quot;Undo&quot; in figure 18 respectively.

===Guidelines===

* Label all buttons with imperative verbs, using [http://library.gnome.org/devel/hig-book/2.26/design-text-labels.html.en#layout-capitalization header capitalization]. For example, Save, Sort or Update Now.
* After pressing a button, the user expects to see the result of its action within one second. For example, closing the window or opening another.
* Avoid using dimmed/insensitive/disabled buttons if possible. Especially when that button is the main element to be pressed to continue the UI flow. For those situations, the button must always just keep the active look, but do nothing when the action cannot be performed. Banners or errors must not show.

==Check Buttons==

Check buttons are very close to the GTK+'s check boxes but in a form of a button (see figure 19) like the name suggests. They are used to represent two states of a given property. Below there are some guidelines taken and adapted from the GNOME HIG's [http://library.gnome.org/devel/hig-book/2.26/controls-check-boxes.html.en Check Boxes Section] as they apply to this widget.

[[Image:checkbuttons.png|frame|center|alt=Screenshot of check buttons|Figure 19: Check buttons]]

===Guidelines===

* Do not initiate an action when the user presses a check button.
* Pressing a check button should not affect the values of any other controls. It may hide or show other controls, however. Avoid using disabled/dimmed state.
* If toggling a check button affects the visibility of other controls, place the check box immediately above or to the left of the controls that it affects. This helps to indicate that the controls are dependent on the state of the check box.
* Use [http://library.gnome.org/devel/hig-book/2.26/design-text-labels.html.en#layout-capitalization sentence capitalization] for check box labels, for example, Use custom font.
* Label check button to clearly indicate the effects of both their checked and unchecked states, for example, Show icons in menus. Where this proves difficult, consider using two radio buttons instead, so that both states can be given labels.
* Label a group of check buttons with a descriptive heading above or to the left of the group.
* Do not place more than about four check buttons under the same group heading if they are the height of a finger or three if they are the height of a thumb. If you need more check buttons, consider using a touch selector with multiple selection enabled.

==Toggle Buttons==

Toggle buttons look similar to regular buttons, but are used to show or change a state rather than initiate an action. A toggle button's two states, set and unset, are shown by its appearing &quot;pushed in&quot; or &quot;popped out&quot; respectively.

Use toggle buttons only as filters in a View Menu (see figure 8), outside the menu, use a picker button instead, because toggle buttons can create confusion because they look like regular buttons.

As for the filters in a View Menu, just like in other uses, group the buttons visually. This makes it easier for the user to understand that each button represents an option among others when different options are displayed together. Also note that the toggle buttons are in fact GTK+ buttons and so they do not support having a title and a value, for example, as a Hildon button does.

===Guidelines===

* Only use toggle buttons as filters in a menu. Use them in groups, so they are not mistaken for regular buttons. Make the group behave like either a group of check buttons or a group of GTK+ radio buttons, as required.
* Use the same text or graphical label for a toggle button whether it is set or unset.

==Notebooks==

The only case where a notebook must not be used in Hildon is to be assigned to a wizard. The normal use of a tabbed notebook is not advised in Hildon, use subviews instead.

==Progress Indicator==

Sometimes, you must show the user that the application is performing some kind of task for which the user must wait. To do this, assign a progress indicator to the dialog or window.

[[Image:progress_indicator.png|frame|center|alt=Screenshot of progress indicatior|Figure 20: Progress indicator]]

A progress indicator is a non-intrusive spinning icon that is placed in a dialog's or window's title area, and it gives the immediate feeling that some operation is being processed (like shown in figure 20).

===Guidelines===

* Avoid the use of classical progress bars. Instead, use the progress indicator.
* When the progress indicator is set on a dialog, the dialog should not be allowing any use of the contents, that is, either showing non-interactive contents or not showing any content at all.
* For operations that take a while, consider also showing a banner when the long lasting operation starts. The banner should just remind the user that the task has started, for example, &quot;Downloading messages&quot;. The banner should have a standard timeout, it should not be always visible during the time the task is being performed.
* If you need to explain the user what the current step of the operation that a progress indicator is representing, use a banner. Use simple and short descriptions for the steps, for example, &quot;Authenticating&quot;, &quot;Downloading&quot; or &quot;Closing connection&quot;, instead of &quot;Authenticating user in the server&quot;, &quot;Downloading all messages from server&quot; or &quot;Shutting down the connection with the server&quot;. 
* Even if some widgets present in the dialog are related to each step of a running operation, do not show them after the step, show all of them when the application is finished.

==Sliders==

In Hildon, a &lt;code&gt;GtkVScale&lt;/code&gt; or &lt;code&gt;GtkHScale&lt;/code&gt; which returns a vertical or horizontal finger usable slider (like in figure 21), respectively. This widget must follow the same guidelines that are advised on GNOME HIG in the [http://library.gnome.org/devel/hig-book/2.26/controls-sliders.html.en Sliders section].

[[Image:sliders.png|frame|center|alt=Screenshot of sliders|Figure 21: Sliders figure]]</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Human Interface Guidelines/Device Orientation</title>
    <id>2209</id>
    <revision>
      <id>39577</id>
      <timestamp>2010-10-18T09:36:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut toplevel heading</comment>
      <text xml:space="preserve">{{Legacy documentation}}

Hildon is optimized for full functionality with landscape screen orientation. Although both orientations are supported, some framework level functionalities such as the status bar, are not available in the portrait mode.

The switch between orientation modes can be done by the Hildon framework transparently for the application developer. The only relevant decisions for application developers are whether to request the portrait orientation mode and which interface elements to use on it.

The portrait mode is intended for simplified, one-handed use. Limit functionality in this orientation, for example, a ''Now Playing'' message for a media application, a read view for a PDF reading application, or simplified call handle controls.</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Human Interface Guidelines/Dialogs</title>
    <id>2212</id>
    <revision>
      <id>41531</id>
      <timestamp>2011-01-31T14:19:22Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add link</comment>
      <text xml:space="preserve">{{Legacy documentation}}

{{main|Legacy Maemo 5 Documentation/Graphical UI Tutorial/Windows and dialogs#Dialogs}}

Although still created with a &lt;code&gt;GtkDialog&lt;/code&gt;, Hildon dialogs are really different from the ones in a desktop environment. For a better usage, they are placed in the bottom of the screen and their buttons are placed on the right side. Dialogs can be closed by pressing the dimmed area that remains as the desktop background.

Keep the number of dialog buttons low. Dialogs should not have a cancel button, that task is accomplished by pressing the dimmed area.

Dialogs should be used for small tasks, for example, asking for a category name when creating a new category in an email client application. In this example, there should be an entry for the user to enter the category name and a button &quot;Create&quot;.

[[Image:dialog.png|frame|center|alt=Screenshot of a dialog|Figure 6: A dialog]]

For bigger tasks like managing an email account folder like &quot;Inbox&quot; (browsing through the messages, deleting, editing them, and so on), use a view, not a simple dialog.

==Wizard Dialogs==

A wizard is a dialog that divides a certain task in sequential steps. With this special dialog, you can present a complex operation to the user in an easier and simpler way.

The first page of the wizard is a welcome page and its title is the wizard's name followed by &quot;Welcome&quot;. Similarly, the title of the wizard's last page is the wizard's name combined with &quot;Finished&quot;. The in-between pages' titles are a result of the combination of the wizard's name and that page's title in wizard's assigned notebook.

[[Image:Example wizard dialog.png|frame|center|alt=Screenshot of a wizard dialog|Figure 7: A wizard dialog]]

Wizards contain three buttons - Finish, Previous and Next - which are dimmed or undimmed automatically according to the current page of the wizard.

Because the first page is the welcome page, it should not have widgets that require user input (apart from the buttons) but instead tell the user what the wizard is there for. That information must suggest what to expect from the wizard's steps as well as what will happen when the wizard finishes. The last page must resume important choices made by the users along the pages and recall what will happen when they press the &quot;Finish&quot; button. Widgets that express important choices must not be added to the last page although simple choices, like showing a README file, can be added. The in-between pages are the ones where users should be asked to enter information or choose important/main choices. For these pages, explain by providing labels and captions what each requested information or choice is about.

Remember, a wizard is supposed to make a task simpler, not the opposite. Hence, you should not use it unless you are sure you will simplify things for the user. For example, if the task is just to present some information and a couple of checkboxes for the user to set some preferences, use a normal dialog, not a wizard. On the other hand, if the user is requested to set a number of settings dependent on each other in a sequential way, use a wizard.</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Human Interface Guidelines/Hildonizing an Interface</title>
    <id>2214</id>
    <revision>
      <id>41541</id>
      <timestamp>2011-02-01T10:55:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add link</comment>
      <text xml:space="preserve">{{Legacy documentation}}

{{main|Documentation/Maemo 5 Developer Guide/Porting Software}}

Although HIG is not a guide about migrating a desktop application to its mobile version, this section talks a little about this because often people think about desktop applications when designing interfaces for mobile devices. This leads to common misunderstandings that compromise the usability of an application. With a limited working area, mobile devices' screens cannot support all the types of widgets that a desktop computer application normally supports. On a mobile device, you're working with an entirely different paradigm.

When developing an application for a mobile device, you must not think of it as a direct translation of one platform to another but rather as an adaption of ways to accomplish the same tasks. Cases that express this adaption are present all over this document but this section takes a special look at them.

By following the principles covered in this section, your application will end up simpler to use and easier to learn.

==Divide and Conquer==

Divide the content to simplify the interface but still maintain full functionality in a Hildon application. The limited screen size makes it difficult to include and use a large number of controls on the screen at the same time, so the solution is not to have them together.

For example, consider an email client application that usually has a split view containing on one side a tree view with a list of accounts and respective folders and on the other side a view of a list of messages within the currently selected folder. This is obviously too much for a small size screen and the solution is to divide the contents. So, the first view should display the available accounts for the user to choose one. After the account is chosen, a new view should display the different folders (&quot;Inbox&quot;, &quot;Outbox&quot;, &quot;Drafts&quot;, etc.). Choosing a folder brings up a new view with the list of messages in it.

Keep in mind that the division must be well balanced in the way that things must not be divided to a point where the user needs to navigate a number of views to do obvious things. For example, in the list of messages in the &quot;Inbox&quot; it is likely that next steps for the user are to open a message, delete a message, or create a new one. Hence, a button &quot;Create Message&quot; can be added to the same view where the message list is.

==Do Not Repeat Yourself==

Several desktop applications have repeated functionality for many tasks. For example, you can edit a message from a message list by using the Edit menu from the menubar, by using the popup menu from the mouse right button or even by using the toolbar. In Hildon, in order to simplify and save space for the sake of usability, a task must not be repeated. If the user can create a new message by pressing a button in the interface, then do not add a &quot;Create New Message&quot; menu item.</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Human Interface Guidelines/Icons</title>
    <id>2217</id>
    <revision>
      <id>39587</id>
      <timestamp>2010-10-18T13:39:21Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut toplevel heading</comment>
      <text xml:space="preserve">{{Legacy documentation}}

Many applications share similar tasks that can can be represented by a generally known icon. For example, several applications have &quot;Previous&quot;, &quot;Next&quot;, &quot;Back&quot; or &quot;Forward&quot; actions that can represented by arrow icons. For these kind of actions applications must not ship their own icons, they must use the system icons instead (known as stock icons). An alternative is to ship any desired icons but using the common task ones only when there is no equivalence in the system.

Because there is no mouse on a touch screen device, there are no tooltips. Therefore, choosing an icon when there is no text label in the widget involves a more important decision than on a desktop computer. If users do not understand what action is assigned to a button with only an icon, they need to read any help document about the application but are likely to press that button to check its function (which might not result in what the user wants). If an icon is not clear enough for the task it represents, do not use it, use a text label instead. Text labels generally give a better explanation to the user. Apart from the mentioned common tasks, the only way where an icon might be preferable to a text label is when there is no space for the text.

For general guidelines on the design of good icons, see the GNOME HIG [http://library.gnome.org/devel/hig-book/2.26/icons.html.en Icons section].</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Human Interface Guidelines/Introduction</title>
    <id>2207</id>
    <revision>
      <id>39575</id>
      <timestamp>2010-10-18T09:35:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut toplevel heading</comment>
      <text xml:space="preserve">{{Legacy documentation}}

'''Partial Copyright © 2002-2008 Calum Benson, Adam Elman, Seth Nickell, colin z robertson'''

This document presents a series of guidelines to help you create Hildon applications that provide the user with a good experience. The principles and advices covered here are intended to help interface designers, software developers and graphic artists to create well-designed and intuitive tools fully adapted to mobile devices, considering their capabilities and limitations.

Following these guidelines, your work will result in an application which is attractive and simple to use. Also, you can expect that:

* Users learn to use your application faster, because interface elements look and behave the way the users are used to.
* Novice and advanced users alike will be able to accomplish tasks quickly and easily, because the interface will not be confusing or make things difficult.
* Your application continues to look good when users change color themes, fonts and languages.
* Your application is usable, especially adapted to mobile devices with a limited screen and input methods.

To help you achieve these goals, these guidelines cover the basic user interface elements, how to use them together effectively, how to make your application integrate well in mobile devices, and the important differences you should consider between mobile and traditional environments.

Because GNOME is the basis of Hildon, this document is based on [http://library.gnome.org/devel/hig-book/ GNOME Human Interface Guidelines]. The guidelines are adapted for the development of software for a mobile platform. Some sections of the GNOME HIG are referenced and linked directly, because they are particularly relevant, but also read the GNOME HIG, because it contains a lot of generally useful interface design advice.</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Human Interface Guidelines/Notes and Banners</title>
    <id>2211</id>
    <revision>
      <id>45706</id>
      <timestamp>2011-11-12T04:56:31Z</timestamp>
      <contributor>
        <ip>46.33.241.195</ip>
      </contributor>
      <text xml:space="preserve">=Notes and Banners=
Notes or Banners should be used when it is necessary to present users with application-specific information or to ask for some kind of confirmation.

Because these widgets interrupt the natural flow of most application interactions, they should be used sparingly and only when crucial to a specific function of the application. 

While banners do not require any user interaction in order to be dismissed, notes always need one.

==Information Notes==
Information notes are modal dialogs that display information, but have no buttons -- simply pressing anywhere on the screen will make the note disappear. 

[[Image:information_note.png|400px]]

''Figure 3: An information note''


This kind of a note should only be used when immediate attention is required (information that users must read). For example, if an application is performing an important task that requires user input in order to complete the task. 

Information Notes should only be used when necessary, as there are other, less obtrusive ways to interact with users. 

==Confirmation Notes==
Confirmation Notes are modal dialogs with two or more options available to the user. Confirmation Notes can be viewed as the Hildon equivalent to GTK's alert dialogs. 

[[Image:confirmation_note.png|400px]]

''Figure 4: An confirmation note''


These notes should be used when the application is about to perform a task that might lead to an unintended action like destroying data, compromising security, or requiring inordinate processing time. Unlike Information Notes, Confirmation Notes only disappear after a user's response, that is, they won't go away until the user presses one of the note's buttons. 

Use Confirmation Notes in moderation and consider making their frequency user-configurable in the application's Preferences dialog (i.e., allow users to turn off features like confirming to quit the application, etc). 

===Note Buttons===

In most cases, Confirmation Notes should only ask &quot;Yes&quot; or &quot;No&quot; questions where the text on the buttons is &quot;Yes&quot; and &quot;No.&quot; Also, assure that button ordering is consistent across your application. Don't set the &quot;Yes&quot; button as the first button in one Confirmation Note but as the second button in other notes. 


==Banner==
Banners are used to display information for a specified duration. This type of notification should be used to display non-critical information (that a certain task is complete, or that an application state has changed, etc.).

The period of time that a banner will stay onscreen can be adjusted. However, the duration should not be excessive, as it is an intrusive method for displaying information.

[[Image:banner.png|400px]]

''Figure 5: An banner''

Banners should be distinguished from the system's own banners, that is, they should suggest to the user which application they belong to. This can be done by displaying the application's name or by making it clear in the message's text.</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Human Interface Guidelines/Reality Checks</title>
    <id>2218</id>
    <revision>
      <id>39588</id>
      <timestamp>2010-10-18T13:42:37Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">{{Legacy documentation}}

The sections in this chapter give advices on how to make your application even more usable when it can already be tested. For more information on useful checks, see GNOME HIG [http://library.gnome.org/devel/hig-book/2.26/reality-checks.html.en Checklists Section].

==Hardware Keys==

Check the keys of the mobile device you are testing your application with to see if you can assign to the keys any already existing or new functions. This way you can find out that some actions do not need an actual control on screen because you can assign them to a commonly used hardware key.

==Different Devices==

Because of the plurality of mobile devices and their differences, some features of your application may not behave as desired in one device or another. Therefore, you must either test the feature with those devices or let those devices' users give you feedback about it.</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Human Interface Guidelines/Usability Principles</title>
    <id>2208</id>
    <revision>
      <id>41530</id>
      <timestamp>2011-01-31T14:16:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Size Matters */ add link</comment>
      <text xml:space="preserve">{{Legacy documentation}}

This section gives some basic principles that are core to the development of touch interfaces and mobile applications. Concepts introduced later in this document build upon the principles in this section. The principles present in the [http://library.gnome.org/devel/hig-book/2.26/principles.html.en Principles Section] of GNOME HIG, although not so related to mobile applications, are also very useful reference and you should be familiar with them as well.

==Diversity==

Mobile devices have a wide variety of available hardware. For example, some devices have special buttons to raise the volume, to call a menu, to navigate through the menus, and so on. Other devices may not have any of these buttons. Because of this diversity, avoid using icons or actions that are intimately related to a specific device or brand. For example, do not use a mouse icon with one of its buttons highlighted to suggest the user to click. Also, avoid messages that mention specific hardware features like &quot;Use the menu button to...&quot; (unless you are referring to a graphical button). The developer only controls the software's user interface and cannot depend on any particular hardware features.

==Size Matters==

{{main|Legacy Maemo 5 Documentation/Graphical UI Tutorial/Additions to GTK+#Hildon size types}}

A mobile device is neither a desktop nor a laptop computer. Screen size is an obvious and important difference. Small size screens make the interaction with an application a very different experience than working with a standard computer screen.

Remember that mobile device screens are not only small, but they vary widely in size and dimensions. Do not assume that your user's device will have the same screen size as the one you are using. Some devices have a landscape display while others have a portrait display. Some are even able to change the display orientation. Mobile applications must adapt to all these displays. Avoid fixed-sized application widgets. For example, instead of defining a fixed size for example for a button, let Hildon itself adapt that button to the label and screen layout.

Hildon is designed for touch interfaces and if you wish your application to be finger-friendly, be aware of the size of the widgets with which the user interacts. Small touch surfaces, such as small buttons, are difficult and frustrating to use.

==Using Fingers==

Being designed to be used by fingers, Hildon also requires some changes in what comes to the widget's placement in the application. For example, consider an application divided in two columns, the left one that displays information, and the right one that holds control widgets. If the users are left-handed, they may cover up the display area with their fingers when touching the control widgets. Letting the users choose the position of the mentioned areas is good but a better approach is to place the control widgets in the bottom and the information on top of them, if possible.</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Human Interface Guidelines/User Input</title>
    <id>2216</id>
    <revision>
      <id>39586</id>
      <timestamp>2010-10-18T13:36:32Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">{{Legacy documentation}}

There can be several ways to use a Hildon powered device. Users might be able to use the device in a specific orientation - landscape or portrait - using their fingers or a stylus. These various types of input and usage influence the way a user interacts with a graphical interface and hence influence the way the interface is developed. This chapter covers those different types of usage advising the interface designer or developer about what can result from choices about widgets placement and introduces concepts to avoid such problems.

==Input Hardware==

The input hardware is the hardware that a Hildon device provides the users so they can interact with it. When the user interacts with a component of the input hardware, the device must provide feedback.

===Hard Keys===

The hard keys are the keys in the device that constitute hardware - the ones you can physically touch. The set of hard keys available in a device surely varies according to the device and that difference must be taken into account when developing a Hildon application. Nonetheless, there are sets of keys that can be found in pretty much any device.

====Common Hard Keys====

* ''Power'': This key is the most common because of its basic but vital function.
* ''Lock/Unlock'': This is also a common key that sets the device either sensitive or not to the touch. Note that although common there are devices who substitute is by soft keys.
* ''Increase/Decrease'': Normally these keys are used to adjust the volume of the device sound or the zoom value in an application.

====Optional Hard Keys====

* ''Capture'': Devices that feature such a key, use it normally to active a camera and capture an image.
* ''Keyboard'': Many devices feature a keyboard either always present or a slide-out one. Hildon supports two types of text input - the hardware keyboard and a touch screen text input method. The latter should not be activated when the keyboard is available or slid out.

==Finger Interaction==

Devices using Hildon can be used with the fingers without the need of a stylus pointer. Also, devices using Hildon should be used in either a landscape or portrait orientation. Some devices might also be able to detect the orientation and adapt themselves to that mode. Like described in the principles section, you must keep in mind that using the fingers to interact with the device will result in covering parts of the application. If the area that is being covered by the user's fingers/hand displays an important message, the user is not able to see it. Hence, you must choose a good placement of the widgets as well as to offer ways of letting the users do it themselves.

===Two Hand Usage===

The two hand usage of a device happens when the user is holding the device with both hands and using the fingers to interact with it. In this case, the device is in the landscape mode. If the user is using for example both thumbs to interact with the device, the area covered by them will be greater than if it was just one finger, and this constitutes a bigger challenge for the interface designer.

===Two Hand Usage with Keyboard===

Pay special attention to the fact that some devices also include an external keyboard that slides out.

In this case, the user keeps in the two hand mode but it can be difficult to reach for areas on the device screen as easily as if the keyboard was not out. So, pay special attention to widgets that request interaction and are placed on the top of the screen if the keyboard is out because they require extra effort from the user.

===One Hand Usage===

When the user is using only one hand to hold and interact with the device, the device must be in the portrait mode as it is not be easy to use in the landscape orientation. The horizontal size of the screen is less than the vertical size and the applications must adapt themselves to it. Using fixed sizes or static placements make the adaption difficult.

===Soft Keys and Touch Types===

The user interacts with a Hildon device mainly by touching the screen, so there are different types of taps that Hildon supports.

====Single Tap====

The user can activate all interactive elements like controls, buttons, links, and so on, by tapping and releasing on top of the element's control area. The process of doing a ''single tap'' is divided in states. The following list describes those states for a better understanding of what a user can do with a ''single tap''.

* ''Tap down'': When users touch the screen, a visual effect might be produced in the element they are touching. For example, it highlights a button or makes the scroll indicator visible.
* ''Tap release'': This state happens when users lift up their finger after a tap down. This activates the element that was tapped, such as a button or task launcher.
* ''Tap and cancel'': If the users tap down on a fixed position element (such as button) and then move their finger out of the element's area, it does not activate that element.

====Long-Tap====

Whenever a user taps and keeps the finger down for longer than usual, it produces a long tap. Use long taps only as a shortcut to a function that can be accessed in another way. Typically, a long tap is used to bring out a context-sensitive menu in a list of items. For example, the user can 'long tap a contact in the contacts list to bring out a menu with options.

== Stylus Interaction ==
Although Hildon widgets aim at being used by fingers, the stylus can obviously still be used when it is part of the hardware. However, its usage is only advisable for tasks that require a bigger precision such as browsing the web (most websites are designed to be used by a mouse), imaging applications like a drawing application and applications that need too many widgets to be shown at the same time, leaving no space for fingers.

==Dimensions==

A button that the user is meant to click with a mouse or a stylus is not usually easily pressed with a finger because of the small size. Apart from the size, the placement of a widget right next to another will require more precision and hence make the widgets difficult to be pressed by fingers.

The horizontal size of the screen is less than the vertical size and the applications must adapt themselves to it. Using fixed sizes or static placements make the adaptation difficult.

The Hildon API provides defined values to make it easy to set the size of controls in a relative way.

===Hildon control size types===

* &lt;code&gt;HILDON_SIZE_AUTO_WIDTH&lt;/code&gt;:  Automatic width
* &lt;code&gt;HILDON_SIZE_HALFSCREEN_WIDTH&lt;/code&gt;: Half of the screen width
* &lt;code&gt;HILDON_SIZE_FINGER_HEIGHT&lt;/code&gt;: A finger height
* &lt;code&gt;HILDON_SIZE_THUMB_HEIGHT&lt;/code&gt;: A thumb height
* &lt;code&gt;HILDON_SIZE_AUTO&lt;/code&gt;: Automatic height and width

Use the size variables above when you need to choose a size for a widget that requires the user's control according to the way you want the user to use it. For example, if you place a button on a bottom corner of the screen, it is likely that that the user will use thumbs to press the button, so you should choose the &lt;code&gt;HILDON_SIZE_THUMB_HEIGHT&lt;/code&gt; for it.

==Interaction Actions==

A Hildon powered device provides different types of actions that can be done. Some of them are equal to the actions on a computer while others are rather different or innovative.

The following sections describe these actions or interactions.

===Copy, paste, cut===

The text input fields support the common actions of copying, pasting or cutting. For that, the user can use the hardware keyboard (if available) shortcuts ''Ctrl+c'', ''Ctrl+v'', ''Ctrl+x'', respectively.

===Panning===

Hildon discourages the use of scrollbars on interfaces intended to be used with fingers. The concept of panning refers to navigating through content on screen by dragging on top of the contents. When the user enters elements that hold content that cannot be fully viewed within the screen area, a scroll indicator must appear on the right and bottom sides of the screen and the user can drag on top of that area to navigate through the contents.</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Human Interface Guidelines/View Menu</title>
    <id>2213</id>
    <revision>
      <id>41528</id>
      <timestamp>2011-01-31T14:06:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add link</comment>
      <text xml:space="preserve">{{Legacy documentation}}

The [[Legacy Maemo 5 Documentation/Graphical UI Tutorial/Menus#Touch view menu|View Menu]] does not have a traditional menu bar like desktop application menus have. The user activates the View Menu by pressing the application's title area.

The View Menu can hold up to ten menu items and can be divided into two columns -- or one column when in portrait orientation. The View Menu can also include filters. As with selectable items within window views, menu items are in fact buttons, and have no submenus. 

[[Image:view_menu.png|frame|center|alt=Screenshot of view menu|Figure 8: A view menu]]

Place menu items that perform similar actions (&quot;Previous&quot; and &quot;Next&quot;, for example) side by side within a View Menu, and place the most important menu items on the top of the view.

Do not repeat actions that are available from other locations within the application (either in the onscreen interface or via a hardware key) in a menu view.

The View Menu must differ depending on the current view in the application. For example, if users are viewing the &quot;Inbox&quot; subview of an email application, they should access the view menu of the &quot;Inbox&quot; and not the view menu of the root view. 

==What if more menus are needed?==

Follow the principles stated in section 1.8, &quot;Hildonizing an Interface,&quot; to keep the interface simple yet functional.

Avoid any use of submenus beyond what fits in the 10 menu item slots in the View menu. Even just removing those menu commands that do not fit, should be considered.

The fallback way to support additional menu items (in corner cases) is to have an menu item in the view menu that opens a dialog. That dialog has the action area removed, and contains a dialog wide grid of command buttons in two columns. Visually this is quite similar to the view menu itself.

The less menu items, the better. This is important not only because there are a limited number of items allowed within Hildon, but also because it is good practice to limit the amount of menu items a user is forced to navigate through to achieve a particular action. Again, if some other widget can perform an action within the application's interface, do not include a menu item for it.

==Filters==

Along with typical menu items, you can also use filters within a View Menu. Filters are toggle buttons that can be used for presentation/sorting purposes. For example, sorting a list of contacts alphabetically, or changing the size of icons in a list.

As a general rule, these actions should not change the amount of data displayed, just how that data is displayed.

Always present filters in groups. There should always be at least two menu filters (for example, a menu filter that sorts a list of email messages alphabetically and one that sorts them by date -- not just one filter for alphabetical sorting).

==Menu Keyboard Shortcuts==

Sometimes it makes sense to add keyboard shortcuts to some actions that can also be performed via the View Menu.

If the shortcut performs a common action like creating something new, formatting the text as bold, or undoing a previous action, take care in utilizing common shortcuts that are generally used in other applications. For example, the previous mentioned actions are Ctrl+n, Ctrl+b, and Ctrl+z, respectively.

==Unavailable Menu Items==

Even though it is a common and useful practice in desktop applications to make certain menu items unavailable (for example, &quot;dimmed&quot;), when their actions are not available, Hildon takes a different approach: the menu items must not be visible at all. Although dimmed menu items suggest actions that are unavailable, they can cramp menu space on the small screen and make interaction with available menu items more confusing. 

[[Image:view_menu_wrong.png|frame|center|alt=Screenshot of incorrect view menu|Figure 9: An incorrect view menu]]</text>
    </revision>
  </page>
  <page>
    <title>Legacy Maemo 5 Documentation/Human Interface Guidelines/Windows</title>
    <id>2210</id>
    <revision>
      <id>41529</id>
      <timestamp>2011-01-31T14:09:02Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Window Views */ add link</comment>
      <text xml:space="preserve">{{Legacy documentation}}

The concept of windows in Hildon is considerably different to windows in a traditional desktop application. In Hildon, the organization of windows, as well as the parts that compose them, and their behavior change a lot. For example, users cannot drag a window and move it around, because application windows in Hildon are fully maximized and the position of dialogs is fixed.

This section covers these differences by describing some of the windows' properties as well as how to organize windows and use particular types of windows (like wizard dialogs).

== Window Views==

{{main|Legacy Maemo 5 Documentation/Graphical UI Tutorial/Windows and dialogs#Stackable windows}}

The concept of window organization changes in Hildon. On a traditional desktop application, it is normal that an action performed over an element in a window  brings up another window which can bring up a third one, and so on. On Hildon, the concept of window views is introduced. The idea behind window views is that windows are actually stacked and the user can only see the topmost one. An application can have several windows describing main tasks which are called root views (figure 1) and, on top of which, subviews (figure 2) are created. Whenever a subview is closed, the user sees the previous view. For instance, a root view can contain a list of email messages; selecting one of them brings a subview displaying it.


[[Image:rootview.png|frame|center|alt=Screnshot of root window|Figure 1: A root window]]

Many activities in an application must be presented and done in a subview and, after the users are done interacting with it, they can press the back button to return to the previous view.

[[Image:subview.png|frame|center|alt=Screenshot of subview|Figure 2: A sub view]]

Hence, do not use split or tree views. Instead, each area that could be split should be added to a window in the window stack. Consider as an example an email application. The root view presents the users with a list of options they can choose like 'Inbox', 'Outbox', 'Drafts', and so on. If the user chooses 'Inbox', a new window is presented with the list of messages in the email's inbox. Clicking on a message from the list brings in a new window with that message's content.

You must choose when an action on an element in a window of a stack will either initialize a new subview or a fully independent window. Normally, new tasks that cut with the flow of actions are likely to mean a new independent window and not a new subview. For example, when browsing a to-do list, the action of creating a new to-do item must be a subview and not an individual window.

==Properties of Windows==

===Titles===

Every window must have a title. Mind that because of the small screen dimensions, the window title should not be long nor contain unnecessary information. For example, do not include the program's version number in the title text.

Because only one window is shown at a time, it is easier for the user to identify which application a window belongs to. This way, you do not need to repeat the application's name in each window title unless not doing so might confuse the user. For example, it is not necessary to include the application name in the title of a subview, because it is easy for the user to note where the subview comes from.

===Sizes===

When not on fullscreen mode, an application's main window size is always the maximum it can occupy, that is, the desktop size minus the area where framework specific information is displayed.

===Window Modes===

A window can be either in normal or fullscreen mode, the availability of the latter depending on the application type.</text>
    </revision>
  </page>
  <page>
    <title>Link talk.maemo.org account with maemo.org profile</title>
    <id>2274</id>
    <revision>
      <id>20808</id>
      <timestamp>2009-10-22T08:41:21Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <text xml:space="preserve">At the moment, there is no account synchronisation in place between [http://talk.maemo.org talk.maemo.org] and [http://maemo.org/profile/list/ maemo.org] accounts.

Linking your accounts will earn you [[karma]] which is used in assessing device discount programmes, summit sponsorship and [[Community Council]] voting rights.

== Step 1: Finding your talk.maemo.org account URL ==
# Log in to [http://talk.maemo.org talk.maemo.org]
# Your username should appear at the top-right. Right-click or tap-and-hold on it and select ''Copy link location''.
# The URL should be of the form &lt;code&gt;http://talk.maemo.org/member.php?u=...&lt;/code&gt; - use the clipboard: do not try to transcribe it.

== Step 2: Connecting your maemo.org account ==
# [https://garage.maemo.org/account/register.php Create] a maemo.org account if you do not already have one.
# Log in to your maemo.org account and go to the ''edit account'' page: '''http://maemo.org/profile/edit/'''
# Enter any details you want, but - in particular - paste the URL from step 1 in the box labelled ''talk.maemo.account url''.
# Press ''Save''.
# Check your privacy settings and click ''Publish''.

== Conclusion ==
Karma is calculated every couple of days, so you will not see the changes immediately. For talk-Karma, it takes a maximum of about 2 days to get updated (currently processing about 600 users per hour).
You can keep track of your - and everyone else's - karma here on the [http://maemo.org/profile/list/ profile list] page.

[[Category:Community]]
[[Category:maemo.org]]
[[Category:Talk]]</text>
    </revision>
  </page>
  <page>
    <title>LinuxTag 2008</title>
    <id>138</id>
    <revision>
      <id>38235</id>
      <timestamp>2010-08-31T07:32:19Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Fall-out */ better links</comment>
      <text xml:space="preserve">The maemo track of [http://www.linuxtag.org/2008/ LinuxTag 2008] happened on Thursday 29th May 2008 in Berlin, Germany.

Four hours of sessions dedicated to maemo were planned. Each session consisted of 3 short presentations of 10-15 mins to kick off the discussion on each topic.

== maemo community update ==

Where are we &amp; questions and comments...

 * Quim Gil - [http://www.slideshare.net/qgil/maemo-linuxtag-update Opening &amp; the Nokia perspective] ([http://flors.wordpress.com/2008/06/01/maemo-linuxtag-update/ audio is available])
 * Gary Birkett aka lcuk - A new developer's perspective on maemo
 * Niels Breet aka X-Fade - A foot in each side

== Cool maemo apps ==

Some demos + meet the developers

 * Urho Konttori - UKMP
 * Alberto Garcia - Vagalume
 * Florian Boor - GPE


== Cool platform hacks ==

A couple of demos + meet the developers

 * Kees Jongenburger - Mamona &amp; Open Embedded approach
 * Armin Sauerbier aka pupnik - Emulators anywhere
 * Kate Alhola - USB &amp; cables do wonders

== maemo.org - what next? ==

Mid term: What Nokia should do + What the community could do

 * Marius Gedminas
 * Simon Pickering aka [http://maemo.org/profile/view/lardman.html lardman]. [http://people.bath.ac.uk/enpsgp/nokia770/musings/ Presentation here]
 * Sebastian Mancke

The session was on Thursday afternoon. Afterwards, a rgoup of about 20 people retired to the Cafe am Neuen See for huge pizzas and beers.

=== Attendees ===

* [http://maemo.org/profile/view/qgil Quim Gil]
* Niels Breet
* [http://maemo.org/profile/view/jsmanrique.html Manrique] (not 100% sure)
* [http://maemo.org/profile/view/smancke.html Sebastian Mancke]
* [http://maemo.org/profile/view/florian.html Florian Boor]
* Nick Loeve
* [http://maemo.org/profile/view/jlittler.html John Littler]
* [http://maemo.org/profile/view/dneary.html Dave Neary]
* [http://maemo.org/profile/view/jukey.html Uwe Kaminski]
* [http://maemo.org/profile/view/agarcia.html Alberto Garcia]
* Marcell Lengyel
* [http://www.ii.uam.es/~rribalda Ricardo Ribalda]

== Fall-out ==

* Quim announced that the first maemo summit would be taking place on September 19th, after OSiM World (also held in Berlin).
* He also announced the start of the [[Task:100Days|100 days]] and [[Task:2010 Agenda|Maemo in 2010]] brainstorming initiatives, to plan the future of maemo.org with input from the community.

[[Category:Events]]</text>
    </revision>
  </page>
  <page>
    <title>Liqbase</title>
    <id>1393</id>
    <revision>
      <id>34236</id>
      <timestamp>2010-05-11T12:34:14Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">== Liqbase ==

Liqbase is fast-graphics swiss army knife created and developed by Gary Birkett for the Maemo platform. Although Liqbase provides several distinctive features its primary applied functions are note-taking and sketching.

http://maemo.org/downloads/product/OS2008/liqbase/

The features utilized within liqbase are being developed into a library and toolkit for creating applications for the maemo platform
[[Liqbase_library_overview]]


== Features ==

* Finger friendly menus
* Variable resolution kinetic scrolling fullscreen document viewer
* Pressure sensitivity sketching with a graffiti wall showing all drawings
* CPU throttling adjustments
* Fullscreen starfield screensaver

== Wanted Features ==

Please use this area to highlight any desired features in the next release.
I will try to stay out of this part of the process ;) --[[User:lcuk|lcuk]] 15:20, 23 December 2008 (UTC)

- Captures images at full resolution&lt;br /&gt;
- Save those images to tablet, where other programs can access&lt;br /&gt;
- Edit those images in liqbase&lt;br /&gt;
- Ability to horizontally flip image capture (to act like a ''real'' camera).
- Record video (and sound) at a half-decent resolution and quality&lt;br /&gt;
- Use liqbase as the default image viewer&lt;br /&gt;
- LiqRSS feed reader&lt;br /&gt;
- Export notes to plaintext&lt;br /&gt;
- Note play-back through text-to-speech&lt;br /&gt;
- Real-time, over network, image sharing and co-editing&lt;br /&gt;
- Ability to upload notes to web or web services&lt;br /&gt;
- Bacon maker&lt;br /&gt;
- Import graphic (png,vector,pdf,etc) as drawing background&lt;br /&gt;
- Templates using backgrounds and ink colors&lt;br /&gt;
- Own product in http://bugs.maemo.org to track bugs and enhancement requests.

== Planned Features ==

these depend on numerous things, but are on my personal list of todo items.&lt;br /&gt;

the current release contains elements required to create a whole host of applications.&lt;br /&gt;
however the framework and coding style is limited and restrictive, this is undergoing a redesign to accommodate things in a more friendly manner.&lt;br /&gt;
this may involve the use of clutter as an intermediate tile manager, partially dependent upon whether I can opengl rendering performance or workaround it.&lt;br /&gt;

- Sketching background styling and images&lt;br /&gt;
- sketching directly onto new photographs, instant postcards&lt;br /&gt;
- sending postcards and handwritten messages to mail recipients or bluetooth users&lt;br /&gt;
- LAN syncing, if multiple devices are situated locally they should share media&lt;br /&gt;
- text snippet support (jaiku/tweets)&lt;br /&gt;
- combined graffiti wall incorporating sketches/images/text fragments&lt;br /&gt;
- improved edit interactions with graffiti, less difference between &quot;Do some drawing&quot; and editing an existing sketch&lt;br /&gt;
- sketch pagination allowing notes to be larger than the screen to keep continuous segments together&lt;br /&gt;
- alternative graffiti views including calendar and timeline views&lt;br /&gt;
- Stamp tool should work with any sketch, not just itself (technically it does already, but no other sketches are loaded or available in 0.1.5)&lt;br /&gt;
most of these are adjustments upon the core and do not involve major reworking, however some will benefit from the background reworking I've done recently.
--[[User:lcuk|lcuk]] 14:50, 24 December 2008 (UTC)

- tagging/grouping/rating, this will change the data layout more than any other modification and if done in the simplest way will cause problems later.  this needs consulatation with people to plan the attack.&lt;br /&gt;
(this is only a problem due to the network sync aspects and handling multiple people tagging and rating elements) --[[User:lcuk|lcuk]] 14:58, 24 December 2008 (UTC)

== Clutter Investigation ==

After looking extensively at clutter for the last few days I find it has nice features for handling bitmap assets, but had a great deal of trouble with one of the core aspects of liqbase :: sketch strokings and lines - clutter includes no native line primative in its toolkit.
To implement liqbase inside clutter will require going deeper into the core opengl and is outside my experience level at this time.

In doing so, I have ported liqbase 0.1.5 to x86 (for my tablet pc) and boy does it fly!


--[[User:lcuk|lcuk]] 13:27, 31 December 2008 (UTC)

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Liqbase library overview</title>
    <id>1544</id>
    <revision>
      <id>41704</id>
      <timestamp>2011-02-08T12:59:02Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly, mark as outof date</comment>
      <text xml:space="preserve">{{out of date}}

==liqbase :: the core library==

'''Note, this document describes a library which is not currently available, however its precursor [[liqbase]] is available for download:'''

'''http://maemo.org/downloads/product/OS2008/liqbase/.'''

This is preliminary outline documentation for my library and toolkit.
it will be expanded upon over the coming days.

===Rationale===

liqbase was born of frustration.

It started out as a collection of ideas and principles which show off the nokia internet tablet as a fast versatile handheld computer which very rapidly grew into a large monolithic application.

It was the first application I have written in C in many years has been used to learn about the device and the various libraries and interactions on the Nokia internet tablets.

A proof of concept so to speak.

The library is aimed to correct the mistakes I made and to provide a framework to continue building my shiny applications.

It contains a small set of classes which are usable for creating rich touchable GUI components.
It has been written in C for both speed and expandability.

At present it is very specifically focused upon the Nokia internet tablet computers though it is compilable and usable within x86 linux as well.

===Why not GTK+ or Qt?===

I looked carefully at GTK+ when I first got my tablet and would have been happy it if it had the required performance, it has (semi) sane construction methods and an expansive library of controls and utility functions.

However on the tablet graphical performance was so poor that anything I attempted felt slow and applications crawled along. Qt had its own problems and still is not a viable option on the devices.

I wanted to do things which I took for granted on my old PDA and have done for years in Visual Basic and found the existing toolkits lacking.

===Dependencies===

liqbase makes use of the following libraries: 

*X11 window manager for the events.
*XVideo, an x11 graphics accelerator usually used for rendering video frames.
*Gstreamer, for the camera
*Esound for the audio output
*xsp for the pressure sensitive mouse input
*ttflib ttf font handling
*libpng for reading and writing image data
*libjpeg
*sqlite3 for the database manipulation

graphics are rendered using the XV library using the YUV video format. This is a lower bandwidth video mode which has full resolution Luma, but half resolution Chroma.

===Base Classes===

It is being constructed around a core set of interrelated classes

*liqapp		core system functions
*liqcanvas	provides actual display backbuffer and event sink
*liqimage	native image class, allows alpha, files of type png and jpeg supported
*liqfont	a renderable font library, extensive caching
*liqsketch	a dynamic sketch built up from various strokes and points
*liqcliprect	a physical rectangle within an image with direct drawing routines

Beyond the core there is a second layer of classes dealing with structured layout and rendering

*liqcell	a single unit capable of holding or representing physical or meta data
*liqgraph	a special resolution independent graphics interface which a cell uses

With these classes I will be able to construct the applications started inside liqbase.

The classes outlined here existed in some form or other in the old liqbase and I have not yet documented the descendants of the cell class which sit together to form the UI itself. 
 
===system class structure===

The system classes created in liqbase follow the same object pattern and contain the following default standard methods:
&lt;source lang=&quot;c&quot;&gt;
class *class_new()
{
	// Create a brand new instance of the class
}

int class_hold(class *self)
{
	// Add a reference to an existing instance
}

int class_release(class *self)
{
	// release a reference to an instance
	// if there are no more instances, call _free on the instance
}

int class_free(class *self)
{
	// release all memory for this instance
	// call _release on all members of this class
}
&lt;/source&gt;

User classes and instances built from cells do not require this interface.

The reference counting is held as a private member inside the instance itself.
There is no concept of inheritance at this level, however once you have instances of cell classes (described in detail below) they follow generic inheritance rules and can expand.

===Example cell lifespan===

A usual cycle goes something like this

&lt;source lang=&quot;c&quot;&gt;
void hello_world()
{
    liqcell * myform		= liqcell_newwidget(“myform”,”form”, 340, 60);
    liqcell *l1		= liqcell_newwidget(“hello”,”label”, 60, 60);
    liqcell *l2 		= liqcell_newwidget(“world”,” label”, 60, 60);

    // do stuff with these instances and maybe create a tree of objects

    liqcell_child_insert(myform , l1 );
    liqcell_child_insert(myform , l2 );
    liqcell_child_arrange_automatic(myform);

    liqcell_show(myform);

    // now we are finished release the root of the tree.  
    // all items inserted will be recursively released.

    liqcell_release(myform);
}
&lt;/source&gt;

===Cell inheritance===

The cell class provides a basic unit which everything is built up from. When used in a visual context, it represents a rectangular area on the screen. A cell can also be used as a simple  property holding information intended for its parent. Each cell can hold references to a font, an image and a sketch or even another cell. It can be inherited from other cells which expand its utility and purpose.

===Dynamic scaling===

liqbase is designed to operate in a truly resolution independent manner, after designing a widget according to specifications, it does not matter whether it is run on a lower or higher resolution display as the content will render correctly.

I have taken special care ensuring the font class operates as expected within a dynamic resolution independent environment. At design time, the operator configures a form to certain dimensions (at 225dpi) and configures font sizes and positions relative to this. The fonts make use of extensive dynamic caching to both improve loading speed and to ensure that the correct glyph is displayed at the correct size as required.  The slight drawback with this approach is that at different scales there is some very slight variation in the exact final font size due to integer only glyph widths.

At runtime, the entire screen is situated within the available boundary and rendered accordingly. A landscape layout will run correctly in portrait mode, however it will be displayed at a reduced size to maintain its aspect ratio.

===Event handlers===

You can assign event handlers to any cell in liqbase and have a routine called when the event is required.
New events can be dynamically created and utilized as required.

====Linking handler to cell====

&lt;source lang=&quot;c&quot;&gt;
	*vcell_handleradd(self,    &quot;paint&quot;,   world_paint);
&lt;/source&gt;

====Handler Code====

&lt;source lang=&quot;c&quot;&gt;
	static int world_paint(vcell *self, vcellpainteventargs *args)
	{
		//liqapp_log(&quot;painting...&quot;);
		// tell the subsystem this event has been handled (returning 0 will cause the chain to continue)
		return 1;
	}
&lt;/source&gt;

====Using a handler====

&lt;source lang=&quot;c&quot;&gt;
	vcell_handlerrun(self,&quot;paint&quot;,&amp;paintargs);
&lt;/source&gt;

[[Category:Software]]
[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>List of Themes for Maemo5</title>
    <id>2733</id>
    <revision>
      <id>30696</id>
      <timestamp>2010-03-07T19:45:25Z</timestamp>
      <contributor>
        <username>joppu</username>
        <id>1571</id>
      </contributor>
      <text xml:space="preserve">Themes for [[Open development/Maemo roadmap/Fremantle|Maemo 5]]. &lt;br&gt;
Please note that many of these themes will occupy some memory in your rootfs: install them with your own responsibility.

== Hitech ==

'''Designer''': joppu&lt;br&gt;
'''Site''':&lt;br&gt;
'''Thread''': [http://talk.maemo.org/showthread.php?t=32195]&lt;br&gt;
'''Screenshot''':&lt;br&gt;
[[Image:M4w5Qh.png]]

----


== Marina ==

'''Designer''': Wazd&lt;br&gt;
'''Site''':&lt;br&gt;
'''Extras page''': [http://maemo.org/downloads/product/Maemo5/hildon-theme-marina/ Theme Marina]&lt;br&gt;
'''Thread''': [http://talk.maemo.org/showthread.php?t=32761]&lt;br&gt;
'''Screenshot''':&lt;br&gt;
[[Image:Marina_theme_appmanager.png]]

----

== 9x - A Redmond 95/98 styled theme ==

'''Designer''': joppu&lt;br&gt;
'''Site''':&lt;br&gt;
'''Thread''': [http://talk.maemo.org/showthread.php?t=32584]&lt;br&gt;
'''Screenshot''':&lt;br&gt;
[[Image:Mywx1a.png]]

----

== Reflect ==

'''Designer''': joppu&lt;br&gt;
'''Site''':&lt;br&gt;
'''Extras page''': [http://maemo.org/downloads/product/Maemo5/reflect/ Theme Reflect]&lt;br&gt;
'''Thread''':&lt;br&gt;
'''Screenshot''':&lt;br&gt;
[[Image:Reflect_oskb.png]]

----

== Maemo.org ==

'''Designer''': Andrew Black&lt;br&gt;
'''Site''':&lt;br&gt;
'''Extras page''': [http://maemo.org/downloads/product/Maemo5/maemo-org/ Maemo.org Theme]&lt;br&gt;
'''Thread''': &lt;br&gt;
'''Screenshot''':&lt;br&gt;
[[Image:maemo.org_theme_desktop.png]]

----

== Matrix ==

'''Designer''': kontorri&lt;br&gt;
'''Site''':&lt;br&gt;
'''Thread''': [http://talk.maemo.org/showthread.php?t=39851]&lt;br&gt;
'''Screenshot''':&lt;br&gt;
[[Image:Matrix theme multimedia.png]]

----

== Red Alert ==

'''Designer''': MOWMO &amp; Lacedaemon &lt;br&gt;
'''Site''':&lt;br&gt;
'''Thread''': [http://talk.maemo.org/showthread.php?t=39791]&lt;br&gt;
'''Screenshot''':&lt;br&gt;
[[Image:Screenshot-20100108-234612.jpg]]

----

== Array ==

'''Designer''': joppu &lt;br&gt;
'''Site''': &lt;br&gt;
'''Thread''': [http://talk.maemo.org/showthread.php?t=46610]&lt;br&gt;
'''Screenshot''':&lt;br&gt;
[[Image:array3.png]]

----

==Ovi Store Themes==

=== Melody ===

'''Designer''': Nokia&lt;br&gt;
'''Site''': [http://store.ovi.com/content/22835 OVI Page]&lt;br&gt;
'''Screenshot''':&lt;br&gt;
[[Image:Nokia melody.png]]

----

=== Black &amp; White ===

'''Designer''': [http://store.ovi.com/publisher/DP/ DP]&lt;br&gt;
'''Site''': [http://store.ovi.com/content/22886 OVI Page]&lt;br&gt;
'''Screenshot''':&lt;br&gt;
[[Image:blacketwhitetheme.png]]

----

=== Alpine ===

'''Designer''': [http://store.ovi.com/publisher/DP/ DP]&lt;br&gt;
'''Site''': [http://store.ovi.com/content/22882 OVI Page]&lt;br&gt;
'''Screenshot''':&lt;br&gt;
[[Image:alpinetheme.png]]

----

=== Sunset ===

'''Designer''': [http://store.ovi.com/publisher/DP/ DP]&lt;br&gt;
'''Site''': [http://store.ovi.com/content/22895 OVI Page]&lt;br&gt;
'''Screenshot''':&lt;br&gt;
[[Image:Sunsettheme.png]]

----

[[Category:Community]]
[[Category:Design]]</text>
    </revision>
  </page>
  <page>
    <title>List of Themes for OS2008</title>
    <id>2710</id>
    <revision>
      <id>41484</id>
      <timestamp>2011-01-28T11:04:51Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">This list of [[themes]] for [[:Category:OS2008|OS2008]] is a work in progress it may never be complete since new themes are added often. I will try to keep the list updated as much as possible. I decided to open up the thread so people can let me know of themes I miss or let me know of any missing information. Please do not quote this message.


== Okuda ==
'''Designer''': Ian Ryge (artwork) and Leif Ryge (packaging)&lt;br /&gt;
'''Site''': [https://synthesize.us/Maemo_themes/LCARS_complete]&lt;br /&gt;
'''Thread''':&lt;br /&gt;
'''Screenshot''':&lt;br /&gt;
[[Image:Okuda_home.png]]

== LCARS PADD ==
'''Designer''': Ian Ryge (artwork) and Leif Ryge (packaging)&lt;br /&gt;
'''Site''': [https://synthesize.us/Maemo_themes/LCARS_complete]&lt;br /&gt;
'''Thread''':&lt;br /&gt;
'''Screenshots''':&lt;br /&gt;
[[Image:ThemeShot3.jpg]]

== LCARS Bridge ==

Designer: Ian Ryge (artwork) and Leif Ryge (packaging)&lt;br /&gt;
Site: [https://synthesize.us/Maemo_themes/LCARS_complete]&lt;br /&gt;
Thread:&lt;br /&gt;
Screenshot:&lt;br /&gt;
[[Image:IMG_2363.jpg]]

== LCARS Modern ==

Designer: Ian Ryge (artwork) and Leif Ryge (packaging)&lt;br /&gt;
Site: [https://synthesize.us/Maemo_themes/LCARS_complete]&lt;br /&gt;
Thread:&lt;br /&gt;
Screenshot:&lt;br /&gt;
[[Image:IMG_2360.jpg]]

== Meta ==

Designer: Ian Ryge (artwork) and Leif Ryge (packaging)&lt;br /&gt;
Site: [https://synthesize.us/Maemo_themes/]&lt;br /&gt;
Thread:&lt;br /&gt;
Screenshot:&lt;br /&gt;
[[Image:Meta_home1.png]]

== Tritanium ==

Designer: Ian Ryge (artwork) and Leif Ryge (packaging)&lt;br /&gt;
Site: [https://synthesize.us/Maemo_themes/]&lt;br /&gt;
Thread:&lt;br /&gt;
Screenshot:&lt;br /&gt;
[[Image:Tritanium_home.png]]

== Kobayashi ==

Designer: Ian Ryge (artwork) and Leif Ryge (packaging)&lt;br /&gt;
Site: [https://synthesize.us/Maemo_themes/]&lt;br /&gt;
Thread:&lt;br /&gt;
Screenshot:&lt;br /&gt;
[[Image:Kobayashi_home2.png]]

== Klingon PADD ==

Designer: Qurgh&lt;br /&gt;
Site: [http://www.wizage.net/]&lt;br /&gt;
Thread:&lt;br /&gt;
Screenshot:&lt;br /&gt;
[[Image:Qurgh_home.png]]

== Titan ==

Designer: Wazd&lt;br /&gt;
Site: [http://tabletui.wordpress.com/]&lt;br /&gt;
Thread: [http://forums.internettablettalk.com/showthread.php?t=24659]&lt;br /&gt;
Screenshot:&lt;br /&gt;
[[Image:Titin.PNG]]

== NuvoPearl ==

Designer: Konttori&lt;br /&gt;
Site:&lt;br /&gt;
Thread:&lt;br /&gt;
Screenshot:&lt;br /&gt;
[[Image:Nuvo.PNG]]

== 3D Mania ==

Designer: Ciroip&lt;br /&gt;
Site:&lt;br /&gt;
Thread: [http://talk.maemo.org/showthread.php?t=24736&amp;highlight=mania]&lt;br /&gt;
Screenshot:&lt;br /&gt;
[[Image:Screenshot-1.jpg]]

== Windows Vista ==

Designer: alex alex, eric king&lt;br /&gt;
Site: [https://garage.maemo.org/projects/vistatheme/]&lt;br /&gt;
Thread: &lt;br /&gt;
Screenshot:&lt;br /&gt;
[[Image:ThemeShot2.png]]

== Borg ==

Designer: eric king&lt;br /&gt;
Site: [https://garage.maemo.org/projects/borg]&lt;br /&gt;
Thread: &lt;br /&gt;
Screenshot:&lt;br /&gt;
[[Image:Borg-ultra.gif|frame]]

== EchoWB ==

Designer: ah sima&lt;br /&gt;
Site: Link&lt;br /&gt;
Thread: &lt;br /&gt;
Screenshot:

== Linux Mint ==

Designer: andrewfblack&lt;br /&gt;
Site: Link&lt;br /&gt;
Thread: &lt;br /&gt;

== MerEcho ==

Designer: andrewfblack&lt;br /&gt;
Site: [https://garage.maemo.org/projects/themehackers/]&lt;br /&gt;
Thread: &lt;br /&gt;
Screenshot:&lt;br /&gt;
[[Image:Screenshot04.png]]

== Windows XP ==

Designer: andrewfblack&lt;br /&gt;
Site: [https://garage.maemo.org/projects/themehackers/]&lt;br /&gt;
Thread: &lt;br /&gt;
Screenshot:&lt;br /&gt;
[[Image:Screenshot02.png]]

== Fremantle for Diablo ==

Designer: andrewfblack&lt;br /&gt;
Site: [https://garage.maemo.org/projects/themehackers/]&lt;br /&gt;
Thread: &lt;br /&gt;
Screenshot:&lt;br /&gt;
[[Image:Screenshot19.png]]

== Buuf ==

Designer: andrewfblack&lt;br /&gt;
Site: [https://garage.maemo.org/projects/themehackers/]&lt;br /&gt;
Thread: &lt;br /&gt;
Screenshot:&lt;br /&gt;
[[Image:Screenshot01.png]]

== Buuf Grey ==

Designer: andrewfblack&lt;br /&gt;
Site: [https://garage.maemo.org/projects/themehackers/]&lt;br /&gt;
Thread: &lt;br /&gt;
Screenshot:&lt;br /&gt;
[[Image:Screenshot08.png]]

== Buuf Blue ==

Designer: andrewfblack&lt;br /&gt;
Site: [https://garage.maemo.org/projects/themehackers/]&lt;br /&gt;
Thread: &lt;br /&gt;
Screenshot:&lt;br /&gt;
[[Image:Screenshot12.png]]

[[Category:Community]]
[[Category:Design]]
[[Category:Themes]]</text>
    </revision>
  </page>
  <page>
    <title>Livewallpaper</title>
    <id>4408</id>
    <revision>
      <id>38010</id>
      <timestamp>2010-08-23T11:10:58Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">API(Draft) for external theme :

&lt;ol&gt;
&lt;li&gt;
You need to create XML file with description your external theme. See example below:

Example for external theme Abstractile:
&lt;source lang=&quot;xml&quot;&gt;
&lt;theme&gt;
 &lt;name&gt;Abstractile&lt;/name&gt;
 &lt;exec_path&gt;/usr/lib/xscreensaver/abstractile&lt;/exec_path&gt;
 &lt;window_id&gt;-window-id&lt;/window_id&gt;
 &lt;view&gt;-view&lt;/view&gt;
 &lt;category&gt;xscreensaver&lt;/category&gt;
&lt;/theme&gt;
&lt;/source&gt;

Where
* &lt;code&gt;name&lt;/code&gt; - name of theme.
* &lt;code&gt;exec_path&lt;/code&gt; - path to the executable binary file for this theme.
* &lt;code&gt;window_id&lt;/code&gt; - option name for the X11 Window ID. Your application should take value from this option and to use this 'window' for drawing. 
* &lt;code&gt;view&lt;/code&gt; - option name for the view number on which your application will be started). Your application should take this option.
* &lt;code&gt;category&lt;/code&gt; - category name for theme.
&lt;/li&gt;
&lt;li&gt;
Your application must go to sleep on the D-Bus signal:
&lt;pre&gt;
interface='org.maemo.livewp', member='pause_livebg_on_view%i'
&lt;/pre&gt;
and wake up on the D-Bus signal:
&lt;pre&gt;
interface='org.maemo.livewp', member='play_livebg_on_view%i'
&lt;/pre&gt;
where %i - view number.
&lt;/li&gt;
&lt;/ol&gt;
        
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Location bar tricks</title>
    <id>1110</id>
    <revision>
      <id>39435</id>
      <timestamp>2010-10-06T19:41:39Z</timestamp>
      <contributor>
        <username>tomj</username>
        <id>2261</id>
      </contributor>
      <comment>Link to new file for traintimes.org.uk support.</comment>
      <text xml:space="preserve">This article outlines some methods for improving the functionality of the location bar in the browser.

==  Default search engine ==

Just like with Firefox you can use the browser location bar to search Google. By default, if you enter more than one word in the location bar you will be taken to the Google's first search result (i.e. 'I Feel Lucky'). To see the normal search results instead do the following:

# Type about:config in the location bar.
# Type in 'Name' field (case sensitive): &lt;code&gt;keyword.URL&lt;/code&gt;
# Type or paste in the 'Value' field: &lt;code&gt;http://www.google.com/search?ie=UTF-8&amp;oe=UTF-8&amp;sourceid=navclient&amp;gfns=1&amp;q=&lt;/code&gt;
# Tap 'Set preference'
# Restart the browser

Alternatively, use this link (one line):

 about:config?prefname=keyword.URL&amp;prefvalue=http%3A%2F%2Fwww.google.com%2Fsearch%3Fie%3DUTF-8%26oe%3DUTF-8%26sourceid%3Dnavclient%26gfns%3D1%26q%3D

This will make the change in about:config.

You can replace Google with your preferred search engine.

== Yubnub shortcuts ==

If instead you change the default search engine from Google's I'm Feeling Lucky to Yubnub, you can search almost any web site directly from the address line. So, you can for example do the following searches:

* g ''&lt;search&gt;'': Searches Google for ''&lt;search&gt;''.
* am ''&lt;search&gt;'': Searches Amazon for ''&lt;search&gt;''.
* wi ''&lt;search&gt;'': Searches Wikipedia for ''&lt;search&gt;''.
* imdb ''&lt;search&gt;'': Searches IMDb for ''&lt;search&gt;''.

See the list of  [http://yubnub.org/kernel/most_used_commands the common shortcuts] for more.

This functionality is similar to that of Opera and Firefox, but with Yubnub, you don't need to tweak it. The shortcuts are already there. (Though this has the disadvantage that you can't tweak them to your preferences. For example, I usually use w for Wikipedia; but it is reserved for weather.com on Yubnub.)

To enable:

# Type about:config in the location bar.
# Type in 'Name' field (case sensitive): &lt;code&gt;keyword.URL&lt;/code&gt;
# Type or paste in the 'Value' field: &lt;code&gt;http://yubnub.org/parser/parse?command=&lt;/code&gt;
# Tap 'Set preference'
# Restart the browser2. Enter &quot;keyword.URL&quot; into the Name box at the top (above Set Preference).

Alternatively, use this link (one line): 

 about:config?prefname=keyword.URL&amp;prefvalue=http%3A%2F%2Fyubnub.org/parser/parse%3fcommand%3d

Also, if you use [http://www.internettablettalk.com/forums/showthread.php?t=16756&amp;highlight=speeddial Speed Dial], your browsing experience will be much better. (Remember to use iamthewalrus' and Benson's version, not mine. That one is much improved.)

== OpenDNS method ==

heeeeeey party people..... OpenDNS is free, but you have to register and make your IP address or network recognized. (This is done only once if you have a static IP or use the dynamic IP software of OpenDNS.)

Steps:
# Register your network on OpenDNS.
# Define shortcuts. Shortcuts fall into two categories:
#* Site shortcuts: For example, typing m can you to mail.google.com
#* Search shortcuts: For example, typing &quot;g asd fgh&quot; will search for asd fgh on Google, or &quot;w asd fgh&quot; for Wikipedia search etc. To create such a shortcut, make a search for asd and replace the part &quot;asd&quot; in the resulting search result page's URL to %s. So for Google, searching for asd will be: &quot;http://www.google.com/search?rls=en&amp;q=asd&amp;ie=utf-8&amp;oe=utf-8&quot; and as a shortcut URL one needs to give &quot;http://www.google.com/search?rls=en&amp;q=%s&amp;ie=utf-8&amp;oe=utf-8&quot;.
# Make microb work with the shortcuts. Follow the instructions on this page: http://www.opendns.com/support/article/123 .

== On-device configureable shortcuts ==

# Download [http://talk.maemo.org/attachment.php?attachmentid=7533&amp;d=1267167539 this file] to your [[Nokia N900|N900]], prefereably to the Documents folder.
# In [[terminal|X terminal]] enter the command &lt;pre&gt;mv MyDocs/.documents/search.txt search.htm&lt;/pre&gt; 
#*NB If you saved to a folder other than Documents from the webbrowser MyDocs/.documents will need to be changed to the requisite path
# Use the method outlined above to change the search URL to &lt;pre&gt;file:///home/user/search.htm?&lt;/pre&gt;

Now when you type a search into the address bar you can choose the following search engines by prefixing them with the letters lited below:

*go - regular Google search (not mobile!)
*wiki - wikipedia
*map - Google Maps UK
*ebay - eBay UK
*php - PHP manual
*mysql - MySQL manual
*acronym - acronymfinder.com
*urban - urbandictionary.com

(eg. ebay n900 in the address bar will seach ebay.co.uk for an N900, whereas wiki n900 will search wikpedia)

You can add to or edit the choice of engines by editing &lt;code&gt;search.htm&lt;/code&gt; using pygtkeditor or other text editor.  Editing the line 
 urls['go']='http://www.google.com/search?q=%s';
to read 
 urls['g']='http://www.google.co.uk/search?q=%s';
which means that instead of typing &lt;code&gt;go foo&lt;/code&gt; into the address bar to get a search for foo from the full-fat google.com one would type &lt;code&gt;g foo&lt;/code&gt; to search google.co.uk.

An alternative, UK-centric version of the search file is available [http://talk.maemo.org/attachment.php?attachmentid=14436&amp;d=1286383620 here].  Follow the instructions above to use it.  Diferences include making google.co.uk the default search engine, usind Oxford English Dictionaries reather than dictionary.com and adding [http://traintimes.org.uk traintimes.org.uk] support. For instance, putting &lt;code&gt;tt hitchin york 1000 tomorrow&lt;/code&gt; will search for tomorrow's departures from Hitchin to York at around 1000; you can click the iCal links from its search results to get the times entered into your N900 calendar.  The site can also use the N900's geolocation abilities; typing &lt;code&gt;tt nearest York&lt;/code&gt; or &lt;code&gt;tt n York&lt;/code&gt; will, after prompting for permission to use geolocation, search for the next service to York from the station neaest to you.  For more on how to use this look at information on bookmarable searches on the [http://traintimes.org.uk traintimes] frontpage.

[[Category:Web]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Lock the screen and keyboard</title>
    <id>1906</id>
    <revision>
      <id>41917</id>
      <timestamp>2011-02-21T13:35:03Z</timestamp>
      <contributor>
        <username>ljl</username>
        <id>3948</id>
      </contributor>
      <comment>Automatic locking</comment>
      <text xml:space="preserve">If you want to carry your [[Nokia N900|N900]], [[Nokia N810|N810]] or [[Nokia N800|N800]] in a pocket or bag, it's a good idea to deactivate the touchscreen and keys so they don't accidentally get pressed.

== N900 ==

To lock, either slide the dedicated lock slider on the right side of the device until the display switches off, or press the power button on the top of the device and select &quot;Lock screen and keys&quot;. To unlock, either open the keyboard, press the power button on top of the device and swipe the on-screen slider or slide the lock slider on the right side of the device.

== N810 ==

To lock the N810, simply push and hold the dedicated lock switch for a second, then let it spring back into place. To unlock it just repeat this same procedure.

Incidentally, a locked touchscreen will automatically unlock when you open the N810's built-in keyboard, and then automatically relock when you close the keyboard. An unlocked touchscreen isn't affected by opening or closing the keyboard.

== N800 ==

To lock, press the power button very briefly, and this should bring up a menu of various options. Select the option to lock the screen and keys.

To unlock, press the power button again very briefly, then press the direction pad button (aka the rocker key).

== Automatic locking ==

It's possible to get the N800 and N810 to lock automatically under various circumstances.

Under OS2008, you can go to the control panel, Display, and select &quot;Lock screen and keys&quot; to have the device lock when the screen goes off.

'''Warning''': the following options involve installing packages from outside the recoveries, and are only suggested for advanced users.

There is [https://garage.maemo.org/frs/?group_id=653&amp;release_id=1887 AutoLock], which uses your N810's light sensor to decide when to lock the device. It might not be ideal if you use it in the dark (although with the screen set to medium brightness, it won't lock even in the dark) or if you tend to cover the sensor with your finger.

Another option is [http://talk.maemo.org/showthread.php?t=19386 SlideLock], which locks your N810 when you slide the keyboard in.

[[Category:HowTo]]
[[Category:N8x0]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Lpsmagic</title>
    <id>5096</id>
    <revision>
      <id>50476</id>
      <timestamp>2012-10-26T10:35:56Z</timestamp>
      <contributor>
        <ip>98.237.16.32</ip>
      </contributor>
      <comment>/* Feature Requests for v2 */</comment>
      <text xml:space="preserve">You can find more info on first post of tmo thread.
[http://talk.maemo.org/showthread.php?t=81923 Info]
=== Feature Requests for v2 ===


-wolke-

1) user-editable rc file that gets read on lpsm startup[BR]
sample ~/.lpsmrc
   date.format=dd/MM/YYYY HH:mm:ss
   interval=60

or have a template file:
    %img:calendar% %date:MM/dd/YY%   %img:clock% %uptime%
    %img:cpu%  %cpu% %%  %img:load% %load:1% %load:5% %load:15%
    %img:power% %battery:percent% %battery:capacity% mAh   %img:mem% %mem% %%

admiral0: 
second is being in the works. Example
 %wifi{Icon} %wifiPower{wlan0}

Plugins can register for any prefixes.

2) easy way to restart/reread rc file {via command line}

admiral0:
sighup? I'll take a look

3) on-demand image generation {for testing mostly}
admiral0 how do you think i'm testing? :D

4) plugin support {for, e.g.: unread text count. thats the one id write, anyway}
{i would make all the built-in ones just be plugins as well; would give folks a jumping off place and makes good design sense}

admiral0: i call them renderers, not plugins but idea is the same.

wolke: awesome! thats 4 for 4. thanks!
--

-noetus-

How about the ability to change the colour, from white to user-definable colour?

Any way to add info showing avg. battery usage in mA?  Thank you.

=== Planned Features for v2 ===
 * C++ rewrite
 * plugin system</text>
    </revision>
  </page>
  <page>
    <title>MADDE</title>
    <id>3216</id>
    <revision>
      <id>41466</id>
      <timestamp>2011-01-27T14:56:23Z</timestamp>
      <contributor>
        <username>too</username>
        <id>1866</id>
      </contributor>
      <comment>MADDE 0.7.48</comment>
      <text xml:space="preserve">{{MADDE}}


== Introduction ==

This is a '''TECHNOLOGY PREVIEW''' of a new development tool for Maemo. MADDE stands for '''M'''aemo '''A'''pplication '''D'''evelopment and '''D'''ebugging '''E'''nvironment and offers the following features:

* Command-line cross-compiling
* Multi-platform support (Linux (32-bit/64-bit), Windows, Mac OS X)
* Configurable for different targets &amp; toolchains
* Client for the device to simplify the development process 
* Simplicity

Latest '''TECHNOLOGY PREVIEW''' is version 0.7.48, published 2010-10-21.

You are welcome to test the tool in your development process. But keep in mind that this is a technology preview. We highly appreciate your feedback in talk, the [https://lists.maemo.org/mailman/listinfo/maemo-developers maemo-developers mailing list] and especially in [https://bugs.maemo.org/ bugzilla] (Developer Platform -&gt; MADDE).

Find the talk-thread around MADDE [http://talk.maemo.org/showthread.php?t=38075 here].

== MADDE and Nokia Qt SDK (Release Candidate) ==

The newest version of MADDE is part of the release candidate of the [http://www.forum.nokia.com/info/sw.nokia.com/id/e920da1a-5b18-42df-82c3-907413e525fb/Nokia_Qt_SDK.html Nokia Qt SDK]. This means that you can install QtCreator and MADDE with one single file for Windows and Linux. This page serves to explain in more detail how to use MADDE as a single component, or to link your QtCreator installation, with MADDE. If you are staring with the Qt development, it is recommended to use the Nokia Qt SDK, which makes some manual installation steps obsolete.

'''[http://www.forum.nokia.com/info/sw.nokia.com/id/e920da1a-5b18-42df-82c3-907413e525fb/Nokia_Qt_SDK.html Nokia Qt SDK (Release Candidate)]'''

'''In the latest version of the Nokia Qt SDK (1.0.1) setting up a N900 Emulator likely won't work, so I recommend using the newest stand-alone version of MADDE'''

== Installation ==

# Download the file for your operating system from [http://tablets-dev.nokia.com/MADDE.php MADDE downloads]
# Depending on your operating system:
#* '''Windows:''' Execute the downloaded file and follow the instructions&lt;br /&gt;NOTE: You need NTFS file system for installing MADDE on the drive.
#* '''Linux, Mac OS X:''' Open the terminal and run:&lt;pre&gt;sh &lt;MADDE installer&gt;&lt;/pre&gt;
# Start the environment
#* '''Windows:''' Find the MADDE terminal in:&lt;pre&gt;Start -&gt; Programs -&gt; MADDE -&gt; MADDE terminal&lt;/pre&gt;General information for Windows users: Projects, which are created in MADDE are stored in:&lt;pre&gt;C:\MADDE\&lt;version&gt;\home\&lt;username&gt;&lt;/pre&gt;
#* '''Linux, Mac OS X:''' Use the terminal to run the MADDE commands as described in the guides.

== Guides ==

* '''Guides: MADDE integration for QtCreator
**[[/QtCreator_integration_for_windows | QtCreator integration for Windows]]
**[[/QtCreator_integration_for_Mac | QtCreator integration for Mac]]
**[[/QtCreator_integration_for_linux| QtCreator integration for Linux]]
* '''New: [[/QEMU_runtime | How to use the QEMU runtime]]'''
* [[/Known issues | Enter New Bug / Known issues]]
* [[/Configuration | Guide: Configuration of the development environment]]
* [[/Qt example | Guide: Using the template for a small Qt example]]
* [[/Qt extended example|Extended Qt example]]
* [[/GTK Example|Guide: Using a template for a minimal GTK+ example]]
* [[/Device runtime | Guide: Connecting MADDE with your device]]
* [[/Packaging | Guide: Packaging and Deploying to Device with Icon]]
* [[/Theme building|Theme building]]
* [[/Mounting | MADDE remote filesystem mounting]]
* [[/FAQ | FAQ: Frequently asked questions]]

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>MADDE/Configuration</title>
    <id>3217</id>
    <revision>
      <id>33225</id>
      <timestamp>2010-04-21T12:50:29Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>{{MADDE}}</comment>
      <text xml:space="preserve">{{MADDE}}


===Introduction===
This guide explains how to configure the development environment in [[MADDE]] and introduces the most important commands. These commands are used in the same way on all supported operating systems.

===Commands &quot;mad&quot; and &quot;mad-admin&quot;===


:Basically MADDE can be used and configured by using these two basic commands with different parameters:

* '''mad''' is used for cross-compiling and getting general information.
* '''mad-admin''' is needed to set up and configure the development environment.

=== Check the configuration ===


:Before it is possible to use MADDE for cross-compiling, it has to be configured correctly. By default the environment is set up for Fremantle. To check, which software versions of the Maemo OS (&quot;target&quot;) are available, installable or set as default use the command:

 '''mad list'''
 
 Targets:
 fremantle-qt-0942  (default)
 maemo412-1         (installable)

:This means, that the Fremantle target is installed and set as default. Diablo can be installed, but is not available yet. If a target is set as default, it means that it will be used automatically for cross-compiling, if nothing else is specified.

===Choose a target===


:An installed target can be set as 'default' by:

 mad set &lt;target name&gt;

:Besides the default option, a target can be set to be used with the parameter '''-t &lt;target name&gt;'''. For example:

 mad -t &lt;target name&gt; make

:If a target is set by the -t parameter, it will be used, regardless which target is set as default.




===Install a target===


:If a target is marked as 'installable', it has to be installed, before it can be taken into use. This is done by: 

 mad-admin create &lt;target name&gt;

:If the target is created successfully, it can be set as default or manually for each command as described before. It might be that necessary components (sysroot/toolchain) are missing. In this case the following error message will be shown:

 Can not find /home/dwilms/madde_latest/.madde/0.5/cache/maemo-sdk-rootstrap_4.1.2_armel -- no such file.
 
 Please enter 'mad-admin fetch maemo-sdk-rootstrap_4.1.2_armel' to get one. 
 
 Then try again.


:Then use the following command to download the missing files:

 mad-admin fetch &lt;URL|URL_ALIAS&gt;


:This command downloads the file from the location specified with URL. For convenience URL aliases can be used instead of complete URLs. To list available URL_ALIASES give the 'mad-admin fetch' command without arguments:

 mad-admin fetch


:After the missing sysroot and/or toolchain have been fetched, run the command for the target installation again:

 mad-admin create &lt;target name&gt;


:Finally check if the target is installed by running:
 'mad list'

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>MADDE/Device runtime</title>
    <id>3219</id>
    <revision>
      <id>34102</id>
      <timestamp>2010-05-10T08:06:30Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>/* Install the client */</comment>
      <text xml:space="preserve">{{MADDE}}

===Introduction===

This guide shows how to connect [[MADDE]] with your device. This guide requires:

* Basic configuration of the development environment. ([[MADDE/Configuration |Guide]])
* Basic understanding of MADDE ([[MADDE/Qt example |Example]])


This guide shows how to:

* install the client on device
* connect MADDE with the device
* send, install and execute files remotely

===Install the client===

# Open the Application Manager.
# Enable the [[extras]] repository.
# Go to: Download -&gt; Development -&gt; mad-developer
# Install the client

===Set up a &quot;Device runtime&quot;===

Following steps are needed to create a device runtime:


'''1. ON DEVICE: Install mad-developer package, as described above.'''

:The program creates a 'developer' user account on device and installs the packages to enable the device runtime usage in MADDE. Further the mad-developer package contains also a GUI application to view information about the available network interfaces, to configure the USB networking interface and manage 'developer' user password generation.
 


'''2. ON DEVICE: Set up networking interface between your host PC and device.'''

:On the device you can use the mad-developer GUI application to view the information about available network interfaces and to configure [[N900_USB_networking | USB networking interface]]. You can choose one of the available network interfaces.
:A Wifi interface is a good alternative if you don't want to plug the USB cable every time you want to test an app. You can use an Ad-Hoc Wifi network set up for the occasion, or if the computer and the N900 are connected to the same network, you can simply use this network.



'''3. ON DEVICE: Prepare to start'''

:After setting up the network connection, start the mad-developer GUI application (if it is not running yet) and click the 'Password' button. This generates a password for the which is needed for the communication between MADDE and the device.



'''4. ON HOST: Create runtime'''

:Create the device runtime by:

 mad-admin create &lt;runtime name&gt; -a &lt;ip-address&gt;

:The IP-address is shown within the application, which is running on the device. Then enter the password, you got in step 3 shown on mad-developer application window when requested. After the command is accomplished you can click the 'Close' button in the mad-developer application window.After that you can close the application. The set up of the device runtime is completed. You can check this by running:

 mad list

:In this example the runtime name is &quot;n900&quot;:

 Targets:
 fremantle-qt-0942  (default)
 maemo412-1         (installable)
 
 Runtimes:
 n900  (installed)


'''5. ON HOST: Remove device runtime:'''

:If you ever finish working with the device, the runtime can be removed by:

 mad-admin remove &lt;runtime name&gt;

=== How to use the device runtime ===

The following shows the basic steps on how to use the MADDE with the device runtime. The parameter 'remote' is used for everything regarding the runtime. A runtime cannot be set as 'default', so that it has to be specified with every call of the command. For example to start a remote shell run:

 mad remote -r &lt;runtime name&gt; shell

To check whether the runtime is available use:

 mad remote -r &lt;runtime name&gt; ping



=== Test the [[MADDE/Qt Example|example]] on device ===

After creating and compiling a simple example and the device runtime set up, it is now possible to run and test it directly on device. Here we assume, that the example is already created and compiled. The name of this example application  is &quot;qthello&quot;. Further the Qt GUI library has to be installed on device to run the example.


1. Go to the directory of the &quot;qthello&quot; example before. 


3. Check if the connection works:
 
 mad remote -r &lt;runtime name&gt; ping


2. Send the executable file to the device, by running:

 mad remote -r &lt;runtime name&gt; send build/qthello


3. Run the program on device:

 mad remote -r &lt;runtime name&gt;  run qthello


4. To stop the program from command line, type:

 mad remote -r &lt;runtime name&gt;  stop qthello

5. After creating a package with MADDE, as shown in the example, you can send and install it by:

 mad remote -r &lt;runtime name&gt;  send ../qthello_0.1_armel.deb
 mad remote -r &lt;runtime name&gt;  install qthello_0.1_armel.deb

===More commands===

With 'mad remote' command you can also remove files from runtime, uninstall debian packages and check if the runtime is up and connectable.


'''Remove files from the runtime:'''

 mad remote -r &lt;runtime name&gt; remove qthello


'''Uninstall debian package'''

 mad remote -r &lt;runtime name&gt; uninstall qthello


'''Check if the runtime is up and connectable'''

 mad remote -r &lt;runtime name&gt; ping

[[Category:Development]]
[[Category:Qt]]</text>
    </revision>
  </page>
  <page>
    <title>MADDE/FAQ</title>
    <id>3436</id>
    <revision>
      <id>50034</id>
      <timestamp>2012-10-01T11:25:05Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[MADDE/FAQ]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">{{MADDE}}

=== What is MADDE? ===

MADDE stands for Maemo Application Development and Debugging Environment. It is SDK for cross compile, debug and package new application for Maemo. It is not meant to use to build debian packages that use Autotools or anything that aids compilation by figuring out native system information.

=== What platforms are supported? ===

MADDE supports Windows (XP, Vista, 7), Linux variants, Mac OS X (Snow Leopard). It probably works on other Unix variants too but it is not tested there. 

=== Where can I get MADDE? ===

You can download the installer from [http://tablets-dev.nokia.com/MADDE.php MADDE downloads] 

=== How do I install MADDE? ===

Installation instructions can be found from main page [[MADDE]]

=== How do I setup cross compilation environment? ===

Cross compilation environment is created by using 'mad-admin create target' command. You can list supported targets by using 'mad list targets' command.

=== How do I use created cross compilation target? ===

Usually you compile your program by using Makefile and make command.  Now you can give command 'mad -t &lt;target&gt; make' and compilation is  done by using cross compilation environment named &lt;target&gt;. 

=== Why doesn't the installer come with the toolchains and sysroots for all available targets? ===

Not every developer needs every target. Installation is faster when  no unneeded components come with the installer. Furthermore, this approach  makes it easier to provide more targets in the future.

=== Can I use several targets simultaneously? ===

Yes you can. When you have created several targets use  'mad -t &lt;target&gt;' to cross compile for &lt;target&gt;.

=== How well does MADDE work for GTK+ development (in C)? ===

MADDE works well for GTK+ development (in C). At minimum the lines 'pkg-config --cflags gtk+-2.0' (for source to object file compiling) and 'pkg-config --libs gtk+-2.0' (for linking) is needed in your Makefile

Use 'mad pkg-config --list-all' to see some other (gtk) modules you may need.

(Note that if you try to run gcc compilation from command line outside mad environment the line must be like

mad gcc -o foo foo.c `mad pkg-config --cflags --libs gtk+-2.0'

to get both gcc and pkg-config be run inside mad environment -- When inside Makefile this is not a problem as whole make is run inside mad environment...).

=== How about Hildon development (in C)? ===

Like the above; just replace 'gtk+-2.0' with 'hildon-1 libosso'

=== Is there an emulator for testing? ===
From the version 0.6.72 there is QEMU based emulator.

=== Where can I get source code? ===

The source code is available [http://meego.gitorious.org/meego-developer-tools/madde on gitorious], and can be downloaded using git:
 git clone git://gitorious.org/meego-developer-tools/madde.git

=== How does MADDE work? ===

MADDE is basically a cross-compiler. Cross-compilation are done via 'target'.  Without 'target' one cannot compile. 'Target' hides from the end user the fact that she/he is actually cross-compiling. The end user can use same Makefile as in native compilation. Usually no modifications are needed.

Traditionally cross-toolchain contains sysroot. MADDE separates toolchain and sysroot into different components, because libraries and header files are updated more often than compilation tools. MADDE supports GNU GCC and binutils as a toolchain. No others are currently supported. Support for other toolchains is quite easy to add if they offer similar feature than GCC's --sysroot option. 

Compilation is done through 'target' specific wrappers. GCC wrappers work so that they add --sysroot=$SYSROOT_DIR option (SYSROOT_DIR is absolute path into target specific sysroot) and mangle all absolute paths from arguments to be relative to the $SYSROOT_DIR. After that wrappers call a real GCC binary.  Path mangling is done by changing first '/' character with '='.  If path prefix already contains SYSROOT_DIR it is not mangled.

In practice SYSROOT_DIR is patched inside wrapper when target is created.

'mad' command finds out the used 'target'. The it adds 'target' specific bin/ (wrappers are there) into PATH environment variable. Now when GCC family is called OS finds out first our wrappers.
Process is simple, isn't it?

=== Where is IDE? ===

Under the work. Qt Creator + madde integration is coming soon.

=== How do I mount local directory to N900 with MADDE? ===

See instructions from there [[MADDE/Mounting| Mounting]]

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>MADDE/GTK Example</title>
    <id>3971</id>
    <revision>
      <id>33295</id>
      <timestamp>2010-04-22T11:56:22Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>remove [[Category:Qt]]</comment>
      <text xml:space="preserve">{{MADDE}}


=== Introduction ===

This example requires a working configuration of [[MADDE]]. At least one target has to be installed and set as 'default'. The basic steps to do this are described in this [[MADDE/Configuration | guide]]. 

* start a project in MADDE 
* use template-projects for developing
* compile a project in MADDE
* build a package

=== Templates ===

Templates are used in MADDE to simplify the set up of the basic skeleton for a project. The following command shows the list of available templates:

 mad pscreate -l

:The command gives following output:

 TEMPLATE NAME    TYPE     DESCRIPTION
 empty            prog     Empty project
 lib_simple       lib      Simple example for C/C++ libraries
 qt_lib_simple    qtlib    Simple example for Qt libraries
 qt_simple        qtprog   Simple example for Qt programs
 simple           prog     Simple example for C/C++ programs

=== Start the project ===

The goal of this example is to create a simple GTK helloworld application. Therefore we can use the &quot;simple&quot; template out of the list with small modifications. The following command creates a project using the &quot;simple&quot; template and named as &quot;helloworld&quot;

 mad pscreate -t simple helloworld

Afterwards the skeleton is created with the following subdirectories:

* '''src''': place for sourcefiles
* '''debian''':configuration files, which are needed to create the package later on
* '''uis''':empty folder for ui files which would be needed with Qt applications

Further it contains a file named &quot;prog.pro&quot;, which is a [http://doc.trolltech.com/4.5/qmake-project-files.html project file], needed to create the Makefile with qmake.

Lets create a small GTK helloworld application hello.c in src directory:

&lt;source lang=&quot;c&quot;&gt;
#include &lt;gtk/gtk.h&gt;

static void destroy( GtkWidget *widget,
                     gpointer   data )
{
   gtk_main_quit ();
}

int main( int   argc,
         char *argv[] )
{
   GtkWidget *window;
   GtkWidget *label;
   gtk_init (&amp;argc, &amp;argv);
   label = gtk_label_new(&quot;Hello world&quot;);
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);   
   g_signal_connect (G_OBJECT (window), &quot;destroy&quot;, G_CALLBACK (destroy), NULL);
   gtk_container_add (GTK_CONTAINER (window), label);
   gtk_widget_show (window);
   gtk_widget_show(label);
   gtk_main ();
   return 0;
}
&lt;/source&gt;

=== Compile &amp; build ===

Before we can compile GTK application we have to modify prog.pro file.
In prog.pro file edit SOURCES  += and HEADERS +=   lines to contain source files in the project, in our case wee need only following line:
SOURCES  += hello.c

For GTK applications we want to use pkgconfig to help compiling and linking against correct libraries.

For our example we add following lines:
CONFIG      += link_pkgconfig  
and
PKGCONFIG   += gtk+-2.0

Now we are ready to build our application.

The following steps describe how to compile and build the project.

1. Create the Makefile:

 cd helloworld
 mad qmake

2. Compile the project.

 mad make

:Now the executable program helloworld is created in the helloworld/build directory. 

3. Create a debian package:

 mad dpkg-buildpackage

:This command will build the project and make a debian package called helloworld_0.1_armel.deb. The debian package will be created in the projects' parent directory.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>MADDE/KnownIssues</title>
    <id>4042</id>
    <revision>
      <id>33669</id>
      <timestamp>2010-04-30T16:07:38Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[MADDE/KnownIssues]] moved to [[MADDE/Known issues]]: Avoid CamelCase</comment>
      <text xml:space="preserve">#REDIRECT [[MADDE/Known issues]]</text>
    </revision>
  </page>
  <page>
    <title>MADDE/Known issues</title>
    <id>3516</id>
    <revision>
      <id>38361</id>
      <timestamp>2010-09-08T09:09:11Z</timestamp>
      <contributor>
        <username>too</username>
        <id>1866</id>
      </contributor>
      <comment>/* Known Issues */</comment>
      <text xml:space="preserve">{{MADDE}}

== Add New Bug ==

Use this link to add new MADDE bug:

https://bugs.maemo.org/enter_bug.cgi?product=Development%20platform&amp;component=Madde


== Known Issues ==

As of this moment (2010-05-11) the list of open bugs in https://bugs.maemo.org/buglist.cgi?component=madde are not mentioned here:

* [https://bugs.maemo.org/show_bug.cgi?id=8918 8918]

=== General ===

No general items for MADDE 0.6.72 (so far)

=== Windows ===

* When home directory path has whitespaces MADDE environment sets alternate home directory for user. This breaks interaction with non-msys programs in some special cases (almost all 'qmake' invocations are such a cases). To &quot;fix&quot; this one needs to enter &lt;tt&gt;echo &gt;/etc/fstab&lt;/tt&gt; in MADDE terminal.

* On some versions of Windows, &quot;Madde Terminal&quot; may not start. A workaround is to remove &lt;tt&gt;-rxvt&lt;/tt&gt; from &quot;Madde Terminal&quot; icon properties. &lt;br/&gt;See https://bugs.maemo.org/show_bug.cgi?id=8622

* On some version of Windows, &quot;Madde terminal&quot; takes ages to start. It seems some programs sleep 30 secs doing nothing. (Update: this does not happen to the reporter anymore (too). Maybe related to the windows 7 (64bit) update happened recently). 

* &lt;tt&gt;ar p&lt;/tt&gt; on windows toolhains does LF -&gt; CRLF conversions, breaking output.

* Some F-Secure products may identify the file xtar.exe suspicious. In this case, mark the file as trusted, and restart the installation process.

* Some Avira products may identify the file utfs-server.exe suspicious.

* MADDE can be only installed on NTFS file system.

=== Linux ===

Madde installer for version 0.6.72 will fail if there is system 'mad' command
(package 'mmv' installs such a command).

Simplest workaround is to remove 'mmv' before installation and then
reinstall it. Next simplest is to move /usr/bin/mad (or whatever it is called)
to different name before MADDE installation.

=== Mac ===

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>MADDE/Mounting</title>
    <id>3448</id>
    <revision>
      <id>33231</id>
      <timestamp>2010-04-21T12:58:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>{{MADDE}}</comment>
      <text xml:space="preserve">{{MADDE}}

=== From host to runtime ===

Currently [[MADDE]] supports mounting of the host file system to [[Nokia N900|N900]] runtime.

This is a very convenient feature when developing software.

All supported platforms (windows, linux, mac) are supported.

The syntax of mount command is:
 mad remote [-r runtime] mount &lt;directory&gt;

The command mounts &lt;code&gt;&amp;lt;directory&gt;&lt;/code&gt; to the N900 to a mount point &lt;code&gt;/home/developer/mnt&lt;/code&gt;.

mad remote run supports finding executable software with given name from this directory.

In case of mounting fails due to stale previous mount, running &lt;code&gt;mad remote umount&lt;/code&gt; fixes this problem -- try it always if mounting fails.

Example usages:

&lt;pre&gt;
$ mad remote -r n900 mount .
$ mad remote -r n900 shell
/home/developer $ cd mnt
/home/developer/mnt $ ls
...
/home/developer/mnt $ exit
&lt;/pre&gt;

 mad remote -r n900 mount .
 mad make hello
 mad remote -r n900 run hello

=== From runtime to host ===

Currently MADDE does not support mounting a directory from N900 to host pc, but it is quite easily possible with userspace filesystems in all supported platforms.

Linux and Mac hosts can use 'sshfs' fuse filesystem utility.

Windows hosts can use 'Dokan SSHFS' software (see http://dokan-dev.net/en/).

Example usage with sshfs (dokan interface is probably similar):

&lt;pre&gt;
$ mkdir mnt_n900
$ sshfs developer@&lt;addr-of-n900&gt;: mnt_n900
&lt;/pre&gt;

Now host mount point &lt;code&gt;mnt_n900&lt;/code&gt; sees &lt;code&gt;/home/developer&lt;/code&gt;
on n900.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>MADDE/Packaging</title>
    <id>3423</id>
    <revision>
      <id>36070</id>
      <timestamp>2010-06-18T13:55:09Z</timestamp>
      <contributor>
        <ip>192.100.124.219</ip>
      </contributor>
      <text xml:space="preserve">{{MADDE}}

===Introduction===
This guide explains how to take a simple [[Qt-Maemo|Qt]] application and compile it so that it deploys to the [[Nokia N900|N900]] with an Icon. It is supposed to be step by step guide on how to take a (simple) Qt app and package and deploy it with an Icon using [[MADDE]].

=== Prerequisites ===

The project I have is simple, 1 window called mainwindow.

'''Note:''' As a convention I like to keep all my code together, so I have created any extra files in the &quot;src&quot; folder.

=== Steps ===

&lt;ol&gt;
&lt;li&gt;Create simple project through MADDE.
  mad pscreate -t qt_simple projectname&lt;/li&gt;

&lt;li&gt;Edit and test with Qt Creator (or whatever your favorite tool is).&lt;/li&gt;

&lt;li&gt;Once ready to deploy create a clean empty top level folder &lt;code&gt;&lt;projectname&gt;-0.x&lt;/code&gt; where &lt;code&gt;x&lt;/code&gt; is your revision number, for example &lt;code&gt;C:\Madde\0.5\home\shep\wwcalc-0.1&lt;/code&gt; in the OS 
'''Note: the following 3 steps apply each time you go to build.'''
  &lt;ol&gt;&lt;li&gt;ensure there is no &lt;code&gt;debian&lt;/code&gt; folder at the same level as &lt;code&gt;src&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;ensure there is no folder structure called &lt;code&gt;&lt;projectname&gt;-0.x-orig&lt;/code&gt; left over from a failed compile&lt;/li&gt;
  &lt;li&gt;remove old compiles from the &lt;code&gt;Madde\home\user&lt;/code&gt;, for example &lt;code&gt;C:\Madde\0.5\home\Shep&lt;/code&gt; folder.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;

&lt;li&gt;Copy the &lt;code&gt;src&lt;/code&gt; folder from the tested Qt project into the &lt;code&gt;&lt;projectname-0.x&lt;/code&gt; folder&lt;/li&gt;

&lt;li&gt;Create (or obtain) an application Icon. This should be a 64x64 PNG. Call it &lt;code&gt;&lt;projectname&gt;.png&lt;/code&gt; and place it in the &lt;code&gt;src&lt;/code&gt; folder.&lt;/li&gt;

&lt;li&gt;Again inside the &lt;code&gt;src&lt;/code&gt; folder create a new file called &lt;code&gt;&lt;projectname&gt;.desktop&lt;/code&gt;
Code:
&lt;pre&gt;
[Desktop Entry]
Encoding=UTF-8
Version=0.x
Type=Application
Name=&lt;Long Descriptive Project Name&gt;
Exec=/usr/bin/&lt;projectname&gt;
Icon=&lt;projectname&gt;
X-HildonDesk-ShowInToolbar=true
X-Osso-Type=application/x-executable
&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;Inside the &lt;code&gt;src&lt;/code&gt; folder added a file called &lt;code&gt;src.pro&lt;/code&gt;. Getting this right is the key to getting the Makefile correct and hence the install working. At the end of this file there is a section called &lt;code&gt;INSTALLS += ...&lt;/code&gt; for every file you want installed in a location you need an entry here. In the example here we install the target, icon and desktop files.
Code:
&lt;pre&gt;
TARGET = wwcalc
TEMPLATE = app
SOURCES += qtmain.cpp \
    mainwindow.cpp 
HEADERS += mainwindow.h 
FORMS += mainwindow.ui 

unix {
  PREFIX = /usr
  BINDIR = $$PREFIX/bin
  DATADIR =$$PREFIX/share

  DEFINES += DATADIR=\&quot;$$DATADIR\&quot; PKGDATADIR=\&quot;$$PKGDATADIR\&quot;

  #MAKE INSTALL

  INSTALLS += target desktop icon64 

  target.path =$$BINDIR

  desktop.path = $$DATADIR/applications/hildon
  desktop.files += wwcalc.desktop

  icon64.path = $$DATADIR/icons/hicolor/64x64/apps
  icon64.files += wwcalc.png
}
&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;Up one level and inside the top level folder (that is,  &lt;code&gt;C:\Madde\0.5\home\&lt;YOU!&gt;\&lt;projectname&gt;-0.x&lt;/code&gt; ) create a file called &lt;code&gt;&lt;projectname&gt;.pro&lt;/code&gt; with the following exact contents.
Code:
&lt;pre&gt;
TEMPLATE = subdirs
SUBDIRS  = src
&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;In Madde make sure the [[MADDE/Device runtime|runtime is up and connectible]] and then execute.
Code:
&lt;pre&gt;
mad dh_make --createorig --single -e foo.bar@gmail.com -c gpl
&lt;/pre&gt;
''Several people have commented that mad qmake is not required, but I find there are times that it is, ignore this next line if you wish''
&lt;pre&gt;
mad qmake
mad dpkg-buildpackage
mad remote -r org.maemo.&lt;projectname&gt; send ../&lt;projectname&gt;_0.x-1_armel.deb
mad remote -r org.maemo.&lt;projectname&gt; install &lt;projectname&gt;_0.x-1_armel.deb&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;Uninstalling - from an X_Terminal.
Code:
&lt;pre&gt;
sudo gainroot
dpkg -r &lt;projectname&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;

== Additional information ==

* [[Packaging a Qt application]]
* [[Packaging]]

[[Category:Development]]
[[Category:Qt]]</text>
    </revision>
  </page>
  <page>
    <title>MADDE/QEMU runtime</title>
    <id>4193</id>
    <revision>
      <id>35186</id>
      <timestamp>2010-06-01T10:35:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{MADDE}}</comment>
      <text xml:space="preserve">{{MADDE}}

==Creating QEMU runtime==

To run your application in QEMU runtime, you must create QEMU runtime for the Maemo platform version for which you are developing applications. To view available Maemo platform versions for QEMU runtimes and the targets these are bound to, use the following command:

 mad list -v

QEMU runtimes can have the same states as targets: 'installable', 'installed', or 'default'. If the runtime is in 'installed' or 'default' state, you can start to use it.

There are two ways to create QEMU runtimes in 'installable' state - together with the target, as described earlier, or separately with the following command:

 mad-admin create &lt;runtime name&gt;

It can take several minutes to create QEMU runtime. During command execution, QEMU runtime is started and it stays open after the command is finished. After the command has finished, check with the &lt;code&gt;mad list&lt;/code&gt; command that runtime state is either 'installed' or 'default'. The created QEMU runtime is in 'default' state if the target it is bound to is set as 'default'. QEMU runtime cannot be set as 'default' explicitly.

After QEMU is created, it can be switched on and off with the following commands:

 mad remote -r &lt;runtime name&gt; poweron 
 mad remote -r &lt;runtime name&gt; poweroff

Note that all the changes you make in QEMU runtime when it is running - installing Debian packages, copying/removing/modifying files etc - are stored and available after closing (poweroff) and opening (poweron) QEMU runtime again. To reset QEMU runtime back to initial (factory) state, remove it and create again:

 mad-admin remove &lt;runtime name&gt;
 mad-admin create &lt;runtime name&gt;

To take a snapshot of QEMU runtime, use the &lt;code&gt;mad-admin clone&lt;/code&gt; command. Runtime must not be running when cloning is done. 

 mad-admin clone &lt;snapshot name&gt;

If runtime is not specified with the &lt;code&gt;-r&lt;/code&gt; option, the clone is done of the runtime bound to the default target. To specify the runtime to be cloned, use the following command:

 mad-admin clone -r &lt;runtime name&gt; &lt;snapshot name&gt;


== How to use the QEMU runtime ==

Please have a look at the [[MADDE/Device_runtime#How_to_use_the_device_runtime | device runtime]] documentation, where you can find more information on how to use the runtime in MADDE.</text>
    </revision>
  </page>
  <page>
    <title>MADDE/QtCreator integration for Mac</title>
    <id>3714</id>
    <revision>
      <id>42323</id>
      <timestamp>2011-03-03T09:50:38Z</timestamp>
      <contributor>
        <ip>93.50.167.127</ip>
      </contributor>
      <comment>remove spam</comment>
      <text xml:space="preserve">{{MADDE}}

= QtCreator and MADDE on Mac OS X =

This is a guide on how to enable MADDE in QtCreator. This is part of the technology preview. After following this guidance you are able to build your sources within QtCreator for your device, and deploy, run and debug your applications with few mouse clicks from your OS X installation.

Requires:

* [[MADDE]] installed on your Mac
* If you want to compile your code natively then you have to have [http://developer.apple.com/tools/xcode/ XCode] installed on your machine




== Install latest QtCreator on your Mac ==

'''You cannot use the latest official QtCreator for this. The version has to be &gt;= 1.3.80! For these instructions the version of the 2010-03-04 is used!''' Find the latest build of QtCreator for Mac OS X here:

http://qt.nokia.com/developer/qt-snapshots

== Add Qt for Maemo5 ==

You can change the configuration of the Qt-version in your QtCreator installation by clicking:

 QtCreator -&gt; Preferences -&gt; Qt4 -&gt; Qt Versions

'''Tip:''' If you do not see any Qt version by default here, you most likely haven't installed the needed Qt libraries to compile your Qt application for your Mac.


In the next step you have to add the Qt version for Maemo5 to the configuration of QtCreator. It is needed to compile your sources for your Maemo device. Click on the &quot;+&quot; in the upper-right corner. The configuration form will ask you to enter a &quot;Version name&quot; and to locate &quot;qmake&quot;. You can find it in your MADDE installation folder under:

 &lt;MADDE_folder&gt;/targets/&lt;target_name&gt;/bin

For the '''standard installation''' it would be for example:

 Version name: Maemo Qt4.5
 qmake Location: /Users/&lt;username&gt;/.madde/0.6.14/targets/fremantle-qt-0951/bin/qmake



'''Tip:''' You cannot find the folder if you click on &quot;Choose...&quot;, as it is hidden. But after entering &quot;/Users/&lt;username&gt;/.madde/&quot; in the text-field &quot;qmake Location&quot; you can select the rest via the &quot;Choose...&quot; button.


Now you will see Qt for Maemo as a new Qt Version in Qt Creator. But first you will see the red cross next to the Qt Version in the column &quot;Debugging Helper&quot;. The last step you have to do now is clicking on &quot;Rebuild&quot; and after a while (you can follow the status in the QtCreator main window) it should look like this:

[[Image:01_mac_qtcreator_madde.png|500px]]

== Configure device run-time in Qt Creator ==

After setting up the connection between your Mac and your device, you will be able to compile, deploy, test and debug your application with a single mouse-click. The description shows the configuration for USB-networking and WLAN and is for each divided into two parts. It shows:

* what to install on device, and
* how to set-up your Mac





=== General device set-up ===

Please find the instructions on how to set up the device runtime from here:

* [[MADDE/QtCreator_integration_for_windows#Install_the_client | Install the client]]




=== Connect via USB-networking ===


==== Device configuration ====

The following guide shows you, what to do on your device to set up the USB connection. This has to be done '''before''' you connect your device with the Mac:

* [[MADDE/QtCreator_integration_for_windows#Configure_the_client_for_USB | Configure the client for USB networking]]


==== Mac configuration ====

Connect the device with your mac, open the network configurations out of the upcoming dialog and enter the following details. Finally click on &quot;Apply&quot;. Then the connection should be established.

[[Image:02_mac_usbnetwork.png|400px]]


'''Possible connection problem:'''

In some versions of Mac OS X ''' &lt; 10.5.8''', the system selects the [http://docwiki.gumstix.org/index.php/Setting_up_USBnet#USBnet_on_Mac_OS_X_10.5.X wrong interface] by default, so that you won't be able to connect your device as a network component with the Mac via USB. OS X detects the N900 in those cases as a modem and not as a network device. Follow these instructions to install the necessary driver information:

http://bugcommunity.com/wiki/index.php/Start_Guide_Mac_OS_X_10.5


After installing the patch, you can connect the device and configure the network interface as shown in the screen-shot above.

=== Connect via WLAN ===

If both devices are connected to the same wireless network the configuration is a bit easier, but be aware that the IP address might not be the same all the time. This effects the set up of your QtCreator configuration.

==== Device configuration ====

Please open the mad-developer application. If you are connected already to the wireless network, you can find the IP address in the initial window of the application:

[[Image:10_mac_mad-dev_wlan.png|300px]]

==== Mac configuration ====

Please just make sure, that your Mac and device are connected to the same network.



=== QtCreator Configuration ===

After the connection between your PC and the device is set up, you can configure QtCreator to deploy and run the built applications on device. You can add your device in the configuration. You will find it in:

 QtCreator -&gt; Preferences -&gt; Projects -&gt; Maemo Device Configurations


First get the password from the Mad Developer application. You get it by clicking on &quot;Developer Password&quot; in the main view. '''Be aware''' that each time you click on the button, a new password will be created and that the password is only valid for the time it is shown in the application. 

[[Image:04_b_client_ready.png|300px]] [[Image:05_client_pw.png|300px]] 


====Instructions for USB-network====

Add the password and all the data you see in the screenshot below. Check the box, that you want to use the password as the authentication method. After that click on &quot;test&quot; and see if the connection can be set up.

[[Image:03_mac_qtcreator_usbnetwork.png|300px]]


====Instructions for WLAN====

If your device is using the WLAN interface, please enter the IP address you can see in the mad-developer application on device.

[[Image:04_mac_qtcreator_wlan.png|300px]]


'''Tip''' You can use your ssh key for the connection. Click on &quot;Deploy Key ...&quot; and select your key. If the other settings are correct the key will be automatically deployed on your device, so that you don't have to worry about the passwords anymore.

== Use Maemo5 build settings ==

Now all the configuration is done and you can select Maemo as a build configuration. If you have a project, which you want to compile for Maemo, then click on the project button in the menu of the left side. Now you should seen a screen, like in the screen shot below. If you have the Qt libraries installed, then you will have the &quot;Desktop&quot; as the default option selected.

[[Image:06_mac_qtcreator_init.png]]


'''Tip:''' 

* It might be that you don't see the &quot;Desktop&quot; widget in your project configuration. In this case it might be that the configuration of the MADDE is not correct, or that a little bug prevents the widget from showing up. In this case click on &quot;Dependencies&quot; and then go back to &quot;Build&quot;.



* If you start a new project you can add the Maemo build-configuration at the beginning:

:[[Image:05_mac_qtcreator_select_madde.png|300px]]



Now press the plus in the widget, which shows, that &quot;Desktop&quot; is selected as default. This should open a new dialog, where you select &quot;Maemo Device&quot;. After that you will find a new build-configuration:

[[Image:07_mac_qtcreator_maemo_build.png]]





Now click there on &quot;Run&quot; and select your device, which you have configured before. In the example it was called Maemo5 Device.

[[Image:08_mac_qtcreator_maemo_run.png]]






Finally you can now set in the down left corner, which build configuration you want to use:

[[Image:09_mac_qtcreator_final.png]]


Now you can click on the run button, and your application will be automatically compiled for the Maemo device, delpoyed, and started.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>MADDE/QtCreator integration for linux</title>
    <id>3783</id>
    <revision>
      <id>41782</id>
      <timestamp>2011-02-11T12:07:22Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">{{MADDE}}

This is a guide on how to enable MADDE in QtCreator. This is part of the technology preview. After following this guidance you are able to build your sources within QtCreator for your device, and deploy, run and debug your applications with few mouse clicks from your Linux installation (Ubuntu was used for this tutorial).

Requires:

* [[MADDE]] installed on your Linux machine
* If you want to compile your code natively then you have to have &quot;make&quot; installed on your machine. If it is not install yet you can do that with:

 sudo apt-get install make

== Install latest QtCreator on your Linux computer ==

'''You cannot use the latest official QtCreator for this. The version has to be &gt;= 1.3.80! For these instructions the version of the 2010-03-04 is used!''' Find the latest build of QtCreator for Linux here:

http://qt.nokia.com/developer/qt-snapshots

== Add Qt for Maemo5 ==

You can change the configuration of the Qt-version in your QtCreator installation by clicking:

 Tools -&gt; Options -&gt; Qt4 -&gt; Qt Versions

'''Tip:''' If you do not see any Qt version by default here, you most likely haven't installed the needed Qt libraries to compile your Qt application for your Linux environment.

In the next step you have to add the Qt version for Maemo5 to the configuration of QtCreator. It is needed to compile your sources for your Maemo device. Click on the &quot;+&quot; in the upper-right corner. The configuration form will ask you to enter a &quot;Version name&quot; and to locate &quot;qmake&quot;. You can find it in your MADDE installation folder under:

 &lt;MADDE_folder&gt;/targets/&lt;target_name&gt;/bin

For the '''standard installation''' it would be for example:

 Version name: Maemo Qt4.5
 qmake Location: /home/&lt;username&gt;/.madde/0.6.14/targets/fremantle-qt-0951/bin/qmake

'''Tip:''' You cannot find the folder if you click on &quot;Choose...&quot;, as it is hidden. But after entering &quot;/home/&lt;username&gt;/.madde/&quot; in the text-field &quot;qmake Location&quot; you can select the rest via the &quot;Choose...&quot; button.

[[Image:01_linux_qtcreator_add_qmake.png|300px]]  [[Image:02_linux_qtcreator_select_qmake.png|300px]]

Now you will see Qt for Maemo as a new Qt Version in Qt Creator. But first you will see the red cross next to the Qt Version in the column &quot;Debugging Helper&quot;. The last step you have to do now is clicking on &quot;Rebuild&quot; and after a while (you can follow the status in the QtCreator main window) it should look like this:

[[Image:03_linux_qtcreator_qmake_rebuild.png|300px]] [[Image:04_linux_qtcreator_qmake_ready.png|300px]]

== Configure device run-time in Qt Creator ==

After setting up the connection between your Linux computer and your device, you will be able to compile, deploy, test and debug your application with a single mouse-click. The description shows the configuration for USB-networking and WLAN and is for each divided into two parts. It shows:

* what to install on device, and
* how to set-up your Linux machine

=== General device set-up ===

Please find the instructions on how to set up the device runtime from here:

* [[MADDE/QtCreator_integration_for_windows#Install_the_client | Install the client]]

=== Connect via USB-networking ===

==== Device configuration ====

The following guide shows you, what to do on your device to set up the USB connection. This has to be done '''before''' you connect your device with the Linux computer:

* [[MADDE/QtCreator_integration_for_windows#Configure_the_client_for_USB | Configure the client for USB networking]]

==== Linux configuration ====

Connect the device with your Linux machine. Then you click on &quot;PC Suite mode&quot; as connection mode. Now you should be able to see the device as a new wired network connection named &quot;Auto usb0&quot;. Now you can configure the connection as follows.

Edit Thu 12 aug: &lt;br /&gt;
If the usb0 interface does not show up on the host machine you might be missing an USB Gadget driver in the kernel, it is found under Device drivers -&gt; USB support -&gt; USB Gadget Support and in that menu you have to enable USB Gadget Driver and choose the Ethernet Gadget (with CDC Ethernet support)
or the module simply didn't load, try to load it manually with &quot;modprobe g_ether&quot;

1. Open the network connection settings:

[[Image:05_linux_network.png|400px]]

2. Change the method from &quot;DHCP&quot; to &quot;Manual&quot; and enter the details as shown in the screen-shot:

[[Image:06_linux_configure_usb.png|400px]]

After you have done this your connection should be established and the set-up ready to be used with QtCreator.

=== Connect via WLAN ===

If both devices are connected to the same wireless network the configuration is a bit easier, but be aware that the IP address might not be the same all the time. This effects the set up of your QtCreator configuration.

==== Device configuration ====

Please open the mad-developer application. If you are connected already to the wireless network, you can find the IP address in the initial window of the application:

[[Image:10_mac_mad-dev_wlan.png|300px]]

==== Linux configuration ====

Please just make sure, that your Linux computer and device are connected to the same network.

=== QtCreator Configuration ===

After the connection between your PC and the device is set up, you can configure QtCreator to deploy and run the built applications on device. You can add your device in the configuration. You will find it in:

 QtCreator -&gt; Preferences -&gt; Qt4 -&gt; Maemo Device Configurations

First get the password from the Mad Developer application. You get it by clicking on &quot;Developer Password&quot; in the main view. '''Be aware''' that each time you click on the button, a new password will be created and that the password is only valid for the time it is shown in the application. 

[[Image:04_b_client_ready.png|300px]] [[Image:05_client_pw.png|300px]] 

====Instructions for USB-network====

Add the password and all the data you see in the screenshot below. Check the box, that you want to use the password as the authentication method. After that click on &quot;test&quot; and see if the connection can be set up.

[[Image:07_linux_qtcreator_usb.png|300px]]

====Instructions for WLAN====

If your device is using the WLAN interface, please enter the IP address you can see in the mad-developer application on device.

[[Image:08_linux_qtcreator_wlan.png|300px]]

'''Tip''' You can use your ssh key for the connection. Click on &quot;Deploy Key ...&quot; and select your key. If the other settings are correct the key will be automatically deployed on your device, so that you don't have to worry about the passwords anymore.

=== Deploy SSH key ===

If you have already created a key for other purposes you don't have to create a new one and you can ignore the description on how to create the key and just continue with the deployment of the key. 

==== Create a key ====

To create a key please open terminal and run:

 ssh-keygen -t rsa -b 1024

Then please follow the instructions. If you don't choose a new location, the key will be stored in the standard location in the home folder (recommended). The terminal should look like this:

[[Image:09_linux_keygen.png|400px]]

==== Deploy the key from QtCreator ====

To be able to connect to your device by using the key, you have to:

* deploy your public key on your device, and
* specify in QtCreator, where to find the private key

You can configure these settings in the Maemo Device Configurations

 Tools -&gt; Options... -&gt; Qt4 -&gt; Maemo Device Configurations

'''Note: ''' For these steps your device has to be connected to the PC and the password has to be valid. By clicking &quot;Test&quot; button, you can check if that is the case.

Now you click on &quot;Deploy...&quot; and select the public key you have created before. 

[[Image:10_linux_select_pubkey.png‎|300px]]

Once the key is deployed correctly you can set up your device-configuration to use the key to connect to the device. Change now the &quot;Authentication type&quot; from &quot;Password&quot; to &quot;Key&quot;.

[[Image:11_linux_setkey.png‎|300px]]

Now click on &quot;Apply&quot; and your QtCreator installation is set up to connect to the device via SSH key.

== Use Maemo5 build settings ==

Now all the configuration is done and you can select Maemo as a build configuration. If you have a project, which you want to compile for Maemo, then click on the project button in the menu of the left side. Now you should seen a screen, like in the screen shot below. If you have the Qt libraries installed, then you will have the &quot;Desktop&quot; as the default option selected.

[[Image:12_linux_initial_config.png]]

'''Tip:''' 

* It might be that you don't see the &quot;Desktop&quot; widget in your project configuration. In this case it might be that the configuration of the MADDE is not correct, or that a little bug prevents the widget from showing up. In this case click on &quot;Dependencies&quot; and then go back to &quot;Build&quot;.
* If you start a new project you can add the Maemo build-configuration at the beginning:

:[[Image:13_linux_start_new_project.png|300px]]

Now press the plus in the widget, which shows, that &quot;Desktop&quot; is selected as default. This should open a new dialog, where you select &quot;Maemo&quot;. After that you will find a new build-configuration. Now click in &quot;Maemo&quot; on &quot;Run&quot; and select your device, which you have configured before. In the example it was called Maemo 5.

[[Image:14_linux_select_device.png]]

Finally you can now set in the down left corner, which build configuration you want to use:

[[Image:15_linux_select_runtime.png]]

Now you can click on the run button, and your application will be automatically compiled for the Maemo device, delpoyed, and started.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>MADDE/QtCreator integration for windows</title>
    <id>3674</id>
    <revision>
      <id>37066</id>
      <timestamp>2010-07-20T01:44:42Z</timestamp>
      <contributor>
        <username>karipulli</username>
        <id>3156</id>
      </contributor>
      <comment>/* Deploy the key from QtCreator */</comment>
      <text xml:space="preserve">{{MADDE}}

= QtCreator and MADDE on Windows =

This is a guide on how to enable MADDE in QtCreator. This is part of the technology preview. After following this guidance you are able to build your sources within QtCreator for your device, and deploy, run and debug your applications with few mouse clicks from your Windows installation.

Requires:

* [[MADDE]] installed on your Windows machine




== Install latest QtCreator on your PC ==

'''You cannot use the latest official QtCreator for this. The version has to be &gt;= 1.3.80! For these instructions the version of the 2010-02-24 is used!''' Find the latest build of QtCreator for windows here:

http://qt.nokia.com/developer/qt-snapshots

Please install besides the basic installation at least the components called &quot;MinGW&quot; and &quot;Post mortem debugging&quot; of QtCreator to be able to follow all the steps of the instructions. You should be able to select those, during the installation process in a dialog like this:

[[Image:01_qtcreator_components.JPG|400px]]




== Add Qt for Maemo5 ==

You can change the configuration of the Qt-version in your QtCreator installation by clicking:

 Tools -&gt; Options... -&gt; Qt4 -&gt; Qt Versions

The screen you see then should look like the screenshot below. By default the Qt-versions are shown, which are installed on your system.

[[Image:02_qtcreator_qtversions.jpg|500px]]



'''Tip:''' If you do not see any Qt version by default here, you most likely haven't installed the needed Qt libraries to compile your Qt application for your Windows environment.


In the next step you have to add the Qt version for Maemo5 to the configuration of QtCreator. It is needed to compile your sources for your Maemo device. Click on the &quot;+&quot; in the upper-right corner. The configuration form will ask you to enter a &quot;Version name&quot; and to locate &quot;qmake&quot;. You can find it in your MADDE installation folder under:

 &lt;MADDE_folder&gt;/targets/&lt;target_name&gt;/bin

For the '''standard installation''' it would be for example:

 Version name: Maemo Qt4.5
 qmake Location: c:\madde\0.6.14\targets\fremantle-qt-0951\bin\qmake.exe

Now you will see Qt for Maemo as a new Qt Version in Qt Creator. But first you will see the red cross next to the Qt Version in the column &quot;Debugging Helper&quot;. The last step you have to do now is clicking on &quot;Rebuild&quot; and after a while (you can follow the status in the QtCreator main window) it should look like this:

[[Image:03_qtcreator_add_qmake.jpg|500px]]




== Configure device run-time in Qt Creator ==

After setting up the connection between your Windows PC and your device, you will be able to compile, deploy, test and debug your application with a single mouse-click. The description is divided into two parts and shows:

* what to install on device, and
* how to set-up your windows environment





===Device configuration===




==== Install the client ====

1. Open the Application Manager.

2. Enable the [[extras]] repository. 

3. Go to: Download -&gt; Development -&gt; mad-developer

4. Install the client


The following instructions show how to connect your device with your PC by using the USB connection.

==== Configure the client for USB ====



Please start the client on your device. As you want to use Windows as your development environment, you have to change the driver, which is loaded to instantiate the connection. You have to follow these steps:



1. After starting the client click on &quot;Manage Usb&quot;

:[[Image:01_client_start.png|300px]]




2. If Module in use is not &quot;g_ether&quot; choose &quot;Load g_ether&quot;. Then click &quot;Close&quot;.

:[[Image:03_client_ether.png|300px]]




3. Now you can set up the USB settings. Please click on &quot;Edit&quot;, which shows you the USB-configuration settings. Then click on &quot;Configure&quot;. After that your client is set up for the connection with your PC.

:[[Image:04_a_client_edit.png|300px]]    [[Image:04_b_client_ready.png|300px]]




'''TIP:''' There might be problems if you have a GPRS connection running on the device. Please shut that down while testing.

=== Windows configuration ===

The easiest way to connect your device to the PC is to install PC-Connectivity. The install-file you find here:

[https://garage.maemo.org/frs/download.php/7104/PC-Connectivity_0.9.4.exe PC Connectivity]

Then follow the instruction and choose just the option USB-Networking, like in this screenshot:

[[Image:01_pccon_select.jpg|300px]]


Connect your device with the PC. The client should be configured as described before. Choose &quot;PC suite mode&quot; as connection method. If not already automatically happened, enter these configuration details:

[[Image:02_pccon_config.jpg]]


After clicking on &quot;apply&quot;, in your network configuration you should see that the connection is established.




'''Tip:''' In some cases problems might occur, if you have an active VPN connection.

'''Important:''' If you have User Account Control enabled on Windows Vista/7, you MUST run this tool with the &quot;Run as Administrator&quot; option.

=== QtCreator Configuration ===

After the connection between your PC and the device is set up, you can configure QtCreator to deploy and run the built applications on device. You can add your device in the configuration. You will find it in:

 Tools -&gt; Options... -&gt; Qt4 -&gt; Maemo Device Configurations


First get the password from the Mad Developer application. You get it by clicking on &quot;Developer Password&quot; in the main view. '''Be aware''' that each time you click on the button, a new password will be created and that the password is only valid for the time it is shown in the application.

[[Image:04_b_client_ready.png|300px]] [[Image:05_client_pw.png|300px]] 


Add the password and all the data you see in the screenshot below. Check the box, that you want to use the password as the authentication method. After that click on &quot;test&quot; and see if the connection can be set up.

*Note: It seems that with the newer QT Creator (1.3.84), the location of the settings in the image below have moved to Tools-&gt;Options-&gt;Projects-&gt;Maemo Device Configurations

[[Image:05_creator_add_device.jpg|300px]]




'''Tip''' You can use your ssh key for the connection. Click on &quot;Deploy Key ...&quot; and select your key. If the other settings are correct the key will be automatically deployed on your device, so that you don't have to worry about the passwords anymore. To Deploy the SSH key, you first need to obtain it. Here are the steps :

# Open up MADDE terminal in Windows. (In Start &gt; Programs &gt; MADDE &gt; MADDE terminal)
# type &quot;cd /&quot;
# Type &quot;ssh-keygen -t rsa&quot;
# Pick a name for your key (I just called mine rsa1)
# Pick a password if you want one (I left it blank so no password)
# In Qt click &quot;deploy key&quot; and browse to where the key is (MADDE\MADDE_VERSION\home\&lt;username&gt;\.ssh)
# Select your_key_name.pub file
# Qt should say key sucessfully deployed
# Change &quot;Authentication Type&quot; option in Qt to &quot;key&quot;
# In the Private Key file entry at the same window, browse for the 2nd file generated at step 3. &quot;id_rsa&quot;
# Click &quot;Test&quot; in Qt to check it works properly
[[Image:Example.jpg]]

=== Deploy SSH key ===

If you have already created a key for other purposes you don't have to create a new one and you can ignore the description on how to create the key and just continue with the deployment of the key. 

==== Create a key ====

To create a key please open the &quot;MADDE Terminal&quot; and run:

 ssh-keygen.exe

Then please follow the instructions. In this example the name of the key is set to &quot;maemo-test&quot;. The terminal should look like this:

[[Image:01_MADDE_create_key.jpg‎|400px]]


==== Deploy the key from QtCreator ====

To be able to connect to your device by using the key, you have to:

* deploy your public key on your device, and
* specify in QtCreator, where to find the private key

You can configure these settings in the Maemo Device Configurations

 Tools -&gt; Options -&gt; Projects -&gt; Maemo Device Configurations

'''Note: ''' In older versions of Qt  Creator the Maemo Device Configuration is under Qt4 tab.

'''Note: ''' For these steps your device has to be connected to the PC and the password has to be valid. By clicking &quot;Test&quot; button, you can check if that is the case.


Now you click on &quot;Deploy...&quot; and select the public key you have created before. If you have specified a file name you will find it in:

 C:\MADDE\&lt;version&gt;\home\&lt;username&gt;\&lt;keyname&gt;.pub


[[Image:09_qtcreator_deploy_key.jpg‎|400px]]

Once the key is deployed correctly you can set up your device configuration to use the key to connect to the device. Change now the &quot;Authentication type&quot; from &quot;Password&quot; to &quot;Key&quot;. Now it uses a standard location, for the private key, which should not exist. Change the location, with the one of your real key. Following this tutorial you will find it in:

 C:\MADDE\&lt;version&gt;\home\&lt;username&gt;\&lt;keyname&gt;

[[Image:10_qtcreator_key_deployed.jpg‎|400px]]

Now click on &quot;Apply&quot; and your QtCreator installation is set up to connect to the device via SSH key.

== Use Maemo5 build settings ==

Now all the configuration is done and you can select Maemo as a build configuration. If you have a project, which you want to compile for Maemo, then click on the project button in the menu of the left side. Now you should see a screen, like in the screen shot below. If you have the Qt libraries installed, then you will have the &quot;Desktop&quot; as the default option selected.

[[Image:04_qtcreator_init.jpg]]




Now press the plus in the widget, which shows, that &quot;Desktop&quot; is selected as default. This should open a new dialog, where you select &quot;Maemo Device&quot;:


[[Image:05_qtcreator_maemodev.jpg]]





After that you will find a new build-configuration.

[[Image:06_qtcreator_build.jpg]]





Now click there on &quot;Run&quot; and select your device, which you have configured before. In the example it was called Maemo5 Device.

[[Image:07_qtcreator_selectdev.jpg]]






Select the build configuration you want to use (located in the bottom left corner):

[[Image:08_qtcreator_final.jpg]]


By clicking the run button, your application will be automatically compiled for the Maemo device, deployed, and started.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>MADDE/Qt Example</title>
    <id>4043</id>
    <revision>
      <id>33672</id>
      <timestamp>2010-04-30T16:09:00Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[MADDE/Qt Example]] moved to [[MADDE/Qt example]]: Capitalisation consistency</comment>
      <text xml:space="preserve">#REDIRECT [[MADDE/Qt example]]</text>
    </revision>
  </page>
  <page>
    <title>MADDE/Qt example</title>
    <id>3218</id>
    <revision>
      <id>45960</id>
      <timestamp>2011-12-10T23:11:28Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45956 by [[Special:Contributions/200.251.58.190|200.251.58.190]] ([[User talk:200.251.58.190|Talk]]) vandalism</comment>
      <text xml:space="preserve">{{MADDE}}


=== Introduction ===

This example requires a working configuration of [[MADDE]]. At least one target has to be installed and set as 'default'. The basic steps to do this are described in this [[MADDE/Configuration | guide]]. If you want to run the example on the device, please install the Qt Gui library. This example will show how to:

* start a project in MADDE 
* use template-projects for developing
* compile a project in MADDE
* build a package

=== Templates ===

Templates are used in MADDE to simplify the set up of the basic skeleton for a project. The following command shows the list of available templates:

 mad pscreate -l

:The command gives following output:

 TEMPLATE NAME    TYPE     DESCRIPTION
 empty            prog     Empty project
 lib_simple       lib      Simple example for C/C++ libraries
 qt_lib_simple    qtlib    Simple example for Qt libraries
 qt_simple        qtprog   Simple example for Qt programs
 simple           prog     Simple example for C/C++ programs

=== Start the project ===

The goal of this example is to create a simple Qt application. Therefore we can use the &quot;qt_simple&quot; template out of the list. The following command creates a project using the &quot;qt_simple&quot; template and named as &quot;qthello&quot; (In Windows MADDE Terminal this template seems to be qt-simple)

 mad pscreate -t qt_simple qthello

Afterwards the skeleton is created with the following subdirectories:

* '''src''':qtmain.cpp - a simple hello world in Qt
* '''debian''':configuration files, which are needed to create the package later on
* '''uis''':empty folder for ui files, which are created with Qt Designer.

Further it contains a file named &quot;qtprog.pro&quot;, which is a [http://doc.trolltech.com/4.5/qmake-project-files.html project file], needed to create the Makefile with qmake.


 /*
 * Created: 05/25/09-15:51:27
 * Author: username
 */
 #include &lt;QApplication&gt;
 #include &lt;QPushButton&gt;
 
 int main(int argc, char *argv[])
 {
        QApplication app(argc, argv);
 
        QPushButton hello(&quot;Hello world!&quot;);
 
        hello.show();
        return app.exec();
 }

=== Compile &amp; build ===

The following steps describe how to compile and build the project.

1. Create the Makefile:

 cd qthello
 mad qmake

2. Compile the project.

 mad make

:Now the executable program qthello is created in the qthello/build directory. 

3. Create a debian package:

 mad dpkg-buildpackage

:This command will build the project and make a debian package called qthello_0.1_armel.deb. The debian package will be created in the projects' parent directory.

[[Category:Development]]
[[Category:Qt]]</text>
    </revision>
  </page>
  <page>
    <title>MADDE/Qt extended example</title>
    <id>3553</id>
    <revision>
      <id>35613</id>
      <timestamp>2010-06-10T20:35:49Z</timestamp>
      <contributor>
        <username>alexbravo</username>
        <id>2952</id>
      </contributor>
      <comment>/* Complete Qt-example with MADDE */</comment>
      <text xml:space="preserve">{{MADDE}}

= Complete Qt-example with MADDE =

This guide describes how the set-up, implementation and packaging of a more complex example works in MADDE. There exists a pretty technical description of how to package a Qt application. This guide follows this description and shows with an example, how that would work in practice. In this guide you will see:

* description of how to start developing for Maemo5 with Qt
* extended application example
* description of how the packaging process works in MADDE
* usage of qmake as a basis
* links to further documentation

'''Requirements:'''
* [http://qt.nokia.com/products/developer-tools QtCreator (incl. QtDesigner)] installed
* [[MADDE]] installed

'''Nice to have:'''
* [[MADDE/Device_runtime | Mad developer client installed and set up]]


== Description ==

The idea of the example application is to create a list of files, which can be opened according to their MIME-types, by the correct application. The goal is to combine some different use-cases in a single example. It should explain how to:

* [[MADDE/Qt_extended_example/Part1 | create a project and UI with QtCreator]]
* use of slots and signals with QPushButtons
* add non-Qt libraries to a project
* test the project on device
* prepare the package using MADDE
* package the application
* upload to extras-devel


{{expand}}

[[Category:Qt]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>MADDE/Qt extended example/Part1</title>
    <id>3554</id>
    <revision>
      <id>29655</id>
      <timestamp>2010-02-17T08:19:22Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>/* PART 1: Create a project and the basic UI in QtCreator */</comment>
      <text xml:space="preserve">== Create a project and the basic UI in QtCreator ==

=== Start a new project with QtCreator ===

In a first step you have to create a project in QtCreator. '''Windows user should consider to save the project in the MADDE folder''' (default location: C:\MADDE\&lt;version&gt;\home\&lt;username&gt;), to make the testing on device easier. Please follow these steps to do that:

 File -&gt; New File or Project
 
 Select:
 Qt4 Gui Application -&gt; OK
 
 Choose a Name and location for the project -&gt; Next
 
 Select no additional module -&gt; Next
 
 Leave the class information as it is -&gt; Next
 
 Finally click on Finish

Now the project is created and the result should be the following:

[[Image:01_project_created.png | 600px]]


The structure of the new project is the following:

 wiki-example
     Forms
       mainwindow.ui
     Headers
       mainwindow.h
     Sources
       mainwindow.cpp
       main.cpp

=== Create the user interface ===

The goal of the next step is to use QtDesigner to create the user-interface. To get a general idea about QtDesigner, .ui files and how you can use them in your application, please consider the [http://doc.trolltech.com/4.5/designer-manual.html QtDesigner manual], which provides you further information. The following shows, how to build a simple UI for the example application, which should contain a [http://doc.trolltech.com/4.5/qlistwidget.html QListWidget] and three [http://doc.trolltech.com/4.5/qpushbutton.html QPushButtons]. In the first step after creating the project, you have to open the mainwindow.ui file, which you will find in &quot;Forms&quot;. In the view you should see now the main window of the application. Now you can start creating the customised user-interface:


'''1. Remove menuBar, mainToolBar, statusBar'''

As it is shown on the picture above, please remove these three components, as they are not supported in Maemo5.

[[Image:02_remove_bars.png | 500px]]




'''2. Change the size of the mainwindow to 800x400.'''

In the down-right corner you can specify the preferred size of the window. Please make sure, that it is 800x400.

[[Image:03_change_size.png | 200 px]]




'''3. Create and place the needed components'''

As described earlier, we need one QListWidget and three QPushButtons. Drag them from the list besides onto the mainwindow. It makes sense to give them reasonable names, which you can do in the object-list in the upper right corner. The mainwindow should now look like:

[[Image:04_button_layout.png | 500px]]


In the next step, please select first the three buttons and then click on &quot;Lay Out Vertically&quot; like in the picture above. After that is done select the list widget and the button-layout together and click on &quot;Lay Out in a Grid&quot;, as you can see in the following picture.


[[Image:05_list_button_grid.png | 500px]]


Finally please maximise the grid-layout to fill the whole mainview and change the label of the push-buttons by double-clicking on them to &quot;Add&quot;, &quot;Remove&quot; and &quot;Open&quot;. By double-clicking on the list-widget you can add an item like &quot;No file added yet&quot; and disable it in the properties. The result should be like:

[[Image:06_result.png | 600px]]

=== On Device ===

Now it is already possible to test the result on the device. Therefore you can use the mad-developer client. Please have a look at the chapters, which explain:

* [[MADDE/Device_runtime | how to set up the mad-developer client]]
* how to test the example

Following this, the result should look similar to this screenshot:


[[Image: screenshot_01.png | 400px]]

=== Useful links: ===
* [http://qt.nokia.com/products/developer-tools QtCreator]
* [[Qt4 Hildon|Qt &amp; Maemo]]
* [http://doc.trolltech.com/4.5/designer-manual.html QtDesigner manual]
* [http://doc.trolltech.com/4.5/classes.html Documentation Qt 4.5 classes]

[[Category:Development]]
[[Category:Qt]]</text>
    </revision>
  </page>
  <page>
    <title>MADDE/Theme building</title>
    <id>3655</id>
    <revision>
      <id>33230</id>
      <timestamp>2010-04-21T12:57:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>{{MADDE}}</comment>
      <text xml:space="preserve">{{MADDE}}

== Background ==

Recently, three source packages that were published in Diablo times was released in their Fremantle versions which I had waited for a long time for. These are:

* A source package which generates a theme, [http://gitorious.org/hildon-theme-example-stskeeps/hildon-theme-example-stskeeps/trees/master]
* This is done on the basis of [http://maemo.gitorious.org/fremantle-hildon-desktop/hildon-theme-layout-5 hildon-theme-layout-5] (also published in Maemo5.0 update2 SDK), a package that provides the GTK theming and how to slice and dice a template into the theme elements.
* The slicers and dicers and dithers are provided in [http://maemo.gitorious.org/fremantle-hildon-desktop/hildon-theme-tools hildon-theme-tools] (also published in Maemo5.0 update2 SDK).

hildon-theme-variant-example is CC BY SA 2.5, hildon-theme-layout-5 is CC BY SA 3.0 and hildon-theme-tools is GPL 2.0 for those who are interested in that.

== Building a theme ==

What I am going to provide you theme makers of Maemo, is a way to make theme packages similar to how the vendor-provided themes on your device is made. We had this ability in Diablo and now we have it in Fremantle.

There was a catch with the Diablo method - it required you installing Maemo SDK, well, under Linux and this isn't always commonly found on graphics designers computers which typically ran Windows or MacOS X.

Thus, cross-platform solutions like [https://garage.maemo.org/projects/thememaker Kontorri's Theme Maker] was made which emulated what these packages described are doing. It made a binary Debian package, which could only be uploaded to Maemo Extras in the non-free section.

Normally, developers upload a source package to [[Extras|Maemo Extras]] and the autobuilder builds it for us.

Now, the ballgame has changed with [[MADDE]]. MADDE is a cross-platform Maemo SDK (Linux, Windows, MacOS X), which basically implements just about enough to cross-compile a Qt application. But why is this interesting for theme makers?

I've discovered that it is possible to generate the source package for a theme package within MADDE. What does this mean for your workflow as designers? Let me guide you through a workflow of theme design with the help of MADDE and the Maemo Extras repository.

=== Requirements ===

* Install MADDE on your computer - it's a quite big download but it may be useful when you'd like to wander into Qt development as well. In this example I will be referring to paths from Windows MADDE but it should be transferable to your

* Something to open tar.gz files, such as [http://www.rarsoft.com/ WinRAR] or similar.

* The garage.maemo.org and Extras upload invitation from [[Uploading_to_Extras-devel]]. Currently you will need to set a SSH key (write 'blahblahblah' if this is nonsense to you)

* Patience and willingness to learn :)

=== Workflow when creating a new theme ===

'''Step 1: Downloading the theme source package template'''

On [http://gitorious.org/hildon-theme-example-stskeeps/hildon-theme-example-stskeeps/commits/master this page] there is a link that is called Download master as tar.gz. What is this? This is a theme template source package which you can customize to your own needs. Unpack the directory inside this into C:\MADDE\0.5\home\your username. Feel free to rename the directory to your intended theme name.

'''Step 2: Executing MADDE'''

In your start menu (or whatever your OS calls it's launcher), there should be MADDE -&gt; MADDE Terminal.

You will now end up in your 'home directory' in MADDE, which is C:\MADDE\0.5\home\your username.

In there, you can 'cd directory name' where directory name is the name you gave the folder/directory from before.

'''Step 3: Customizing the source package template, basics'''

In the folder you should now 'sh try_it_out.sh'. This will ask you a couple of questions. You only have to do this once.

It will ask you the following questions:

* What should the package name of your theme be? (Example: hildon-theme-example)

* What should be theme name be? (Example: My example theme)

* Who is the maintainer of this theme?

* What should the directory name be (Example: example)

It will then set up the theme template.

'''Step 4: Customize the graphics - the fun step!'''

You can see in the directory several interesting places. The primary place for your work is in the template directory. This contains template.svg (SVG version of the basis template) and template.png (PNG version of the template). While it is up to you which one you want to edit, remember to always export template.png from the SVG.

Similar directories, icons, background images and other things to customize can be found in the applications directory.

'''Step 5: Building the source package'''

When you're done customizing, you can finally build your source package. In MADDE, you can do this:

 username $ mad dpkg-buildpackage -S -us -uc -d

This will generate a .dsc and .tar.gz in the parent directory which you can use in the next step.

'''Step 6: Uploading to Maemo Extras'''

You can now upload this .dsc and .tar.gz file to Maemo Extras through the [https://garage.maemo.org/extras-assistant/ Maemo Extras Assistant]. The autobuilder will then build the theme package for you and your theme will show up in [[Extras-devel]].

As a bonus, anyone can base their themes upon yours as they have the 'source code' of your theme (under CC SA BY 2.5 conditions) - something not possible with ThemeMaker.

There are probably more maintaining issues which I hope the real theme makers will explore such as adding new versions to changelogs and such and tell about in their blogs.

If you have problems with any of the steps, prod me (Stskeeps) on [[IRC]] in the #maemo channel, irc.freenode.net or comment this post.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>MAG:Categorization</title>
    <id>143</id>
    <revision>
      <id>32677</id>
      <timestamp>2010-04-14T12:11:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikipedia link</comment>
      <text xml:space="preserve">Categories allow you to group pages by theme, or by target audience.

To add a page to a category, simply add a link to Category:Name of category to the bottom of the page. A page can belong to several categories - just add them all at the end of the page.

A Category page contains first some wikitext (optionally), followed by a list of all of the pages marked with the category. Categories themselves can be in a category, in this case, they will be a sub-category. For example, to add Category:Football to Category:Sport, add a link to the parent category to the sub-category.

== Resources ==
* [http://meta.wikimedia.org/wiki/Help:Category Reference for MediaWiki categories]
* [[:wikipedia:Wikipedia:Category|Wikipedia categorization guidelines]]

== Proposed categories ==

I propose one category per front page section:

* [[:Category:Community]] - pages related to the maemo.org community, including information about maemo, its mailing lists, IRC channels, real-life meetings, rules and norms. Maybe maemo training?
* [[:Category:Development]] - reference information and tips for developers. Setting up a development environment, tools for debugging, API documentation, tutorials, sample code, the development roadmap, technical specifications, reporting bugs, contributing to Bugzilla, reflashing the tablet, etc.
* [[:Category:Users]] - pages for (presumably) advanced users of the tablet. Where to get software, configuring services, playing ogg files, streaming video, VNC, SSH, getting root, etc.

Sub-categories make sense for some things. Some ideas of useful sub-categories: [[:Category:Events]] as a sub-category of [[:Category:Community]]. [[:Category:Connectivity]] as a subcategory of [[:Category:Users]] for everything to do with wifi, Bluetooth networking, etc.

[[Category:Community]]
[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>MAG:Templates</title>
    <id>121</id>
    <revision>
      <id>42255</id>
      <timestamp>2011-03-01T09:52:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Template examples */ add ambox and template links</comment>
      <text xml:space="preserve">[http://www.mediawiki.org/wiki/Help:Templates Templates] are an important part of any good wiki. They help tag, categorize, identify, stylize and format articles, and improve code readability and clarity, and generally make life easier for everybody.

To that end, I'd like to focus efforts here on creating and maintaining a set of templates for maemowiki.

== Tasks ==

* Develop guidelines for the creation, categorization, style and format of new templates.
** Ensure existing templates comply with these guidelines.
* Figure out what templates we need (this is a very fluid task that will likely never be completed).
* Create those templates.

=== Open/Closed table, justification, and petition templates ===

We need to put together templates for the open/closed-source plan outlined in the [[Task:Mapping openness]] page.

* We need templates for:
** Individual packages (or package sets, as, say, alarmd and alarmtool can probably both be filed under alarmd), their source-state and (if closed) justification for that state.
*** Should these templates be set up as &quot;justification tables&quot; to be inserted into larger articles or as individual articles?
** Petition templates for requesting that a closed package be opened.

=== Standard Wikipedia template set ===

* Equivalent to &quot;This article has poor language/grammar, please help fixing it.&quot;--[[User:qgil|qgil]] 07:53, 28 June 2008 (UTC)

== Template examples ==

=== ambox ===

Usage:
&lt;pre&gt;
{{ambox
|type=notice
|text='''Body text for the box.'''&lt;br/&gt;It is suggested to make the first line bold.
}}
&lt;/pre&gt;

Use the [[Template:Ambox|ambox template]] to insert a box for a warning or notice. The &quot;&lt;code&gt;type&lt;/code&gt;&quot; parameter can be omitted and defaults to &quot;&lt;code&gt;notice&lt;/code&gt;&quot;. There are several templates based on the ambox, such as [[Template:Delete]], [[Template:Out of date]] and [[Template:Expand]].

=== clear ===

Usage:
&lt;pre&gt;{{clear}}&lt;/pre&gt;

Use the [[Template:Clear|clear template]] to insert HTML that clears any floats. This is used at the end of a section with floating divs, such as image thumbnails, to make sure that they do not overflow onto the next section. See the [[Orrery]] article for example usage.

=== main ===

Usage:
&lt;pre&gt;{{main|Wikilink to main article}}&lt;/pre&gt;

Use the [[Template:Main|main template]] to insert a wikilink to another article, which appears indented and preceded by &quot;''Main article:''&quot;.

[[Category:Community]]
[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>MAG:Templates</title>
    <id>121</id>
    <revision>
      <id>42255</id>
      <timestamp>2011-03-01T09:52:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Template examples */ add ambox and template links</comment>
      <text xml:space="preserve">[http://www.mediawiki.org/wiki/Help:Templates Templates] are an important part of any good wiki. They help tag, categorize, identify, stylize and format articles, and improve code readability and clarity, and generally make life easier for everybody.

To that end, I'd like to focus efforts here on creating and maintaining a set of templates for maemowiki.

== Tasks ==

* Develop guidelines for the creation, categorization, style and format of new templates.
** Ensure existing templates comply with these guidelines.
* Figure out what templates we need (this is a very fluid task that will likely never be completed).
* Create those templates.

=== Open/Closed table, justification, and petition templates ===

We need to put together templates for the open/closed-source plan outlined in the [[Task:Mapping openness]] page.

* We need templates for:
** Individual packages (or package sets, as, say, alarmd and alarmtool can probably both be filed under alarmd), their source-state and (if closed) justification for that state.
*** Should these templates be set up as &quot;justification tables&quot; to be inserted into larger articles or as individual articles?
** Petition templates for requesting that a closed package be opened.

=== Standard Wikipedia template set ===

* Equivalent to &quot;This article has poor language/grammar, please help fixing it.&quot;--[[User:qgil|qgil]] 07:53, 28 June 2008 (UTC)

== Template examples ==

=== ambox ===

Usage:
&lt;pre&gt;
{{ambox
|type=notice
|text='''Body text for the box.'''&lt;br/&gt;It is suggested to make the first line bold.
}}
&lt;/pre&gt;

Use the [[Template:Ambox|ambox template]] to insert a box for a warning or notice. The &quot;&lt;code&gt;type&lt;/code&gt;&quot; parameter can be omitted and defaults to &quot;&lt;code&gt;notice&lt;/code&gt;&quot;. There are several templates based on the ambox, such as [[Template:Delete]], [[Template:Out of date]] and [[Template:Expand]].

=== clear ===

Usage:
&lt;pre&gt;{{clear}}&lt;/pre&gt;

Use the [[Template:Clear|clear template]] to insert HTML that clears any floats. This is used at the end of a section with floating divs, such as image thumbnails, to make sure that they do not overflow onto the next section. See the [[Orrery]] article for example usage.

=== main ===

Usage:
&lt;pre&gt;{{main|Wikilink to main article}}&lt;/pre&gt;

Use the [[Template:Main|main template]] to insert a wikilink to another article, which appears indented and preceded by &quot;''Main article:''&quot;.

[[Category:Community]]
[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>MBX drivers status</title>
    <id>3639</id>
    <revision>
      <id>43294</id>
      <timestamp>2011-05-01T09:23:55Z</timestamp>
      <contributor>
        <username>mrsellout</username>
        <id>3603</id>
      </contributor>
      <comment>Undo revision 43292 by [[Special:Contributions/59.95.175.208|59.95.175.208]] ([[User talk:59.95.175.208|Talk]])</comment>
      <text xml:space="preserve">The OMAP2420 used in [[Nokia N800|N800]] and [[Nokia N810|N810]] devices contain PowerVR MBX 3D accelerator, which is not used in official firmware. Thanks to Nokia and TI engineers and Maemo community members [http://talk.maemo.org/showthread.php?p=528791#post528791 we now have alpha-quality driver available]. Currently it is not usable for anything except kernel hacking.

For history see also [[Drivers justification]] and [[Talk:Drivers justification]]

== How to get it ==

Driver is published at TI site as part of OMAP Gaming SDK. Download is restricted to registered users.

# Obtain a http://my.ti.com account by visiting the site and registering appropriately. 
# Send an email to 'gamingonomap@list.ti.com' requesting extranet access to the 'OpenGL®ES Graphics SDK for OMAP2420 Nokia N800 OpenGL ES v1.1 and OpenVG 1.0 SDK based on Linux kernel 2.6.21' release through your my.ti.com account, and give them your my.ti.com username (email address). 
# Wait for e-mail with link to another registration to get Extranet access. (You need to enter lot of personal data and pick up another password and 5 verification questions)
# Log-in to my.ti, click &quot;Extranets&quot; on my.ti.com and then WTBU-OMAP Gaming SDK and then OpenGL®ES Graphics SDK for OMAP2420 Nokia N800 OpenGL ES v1.1 and OpenVG 1.0 SDK based on Linux kernel 2.6.21

== Installation and setup ==

TODO, see

* {{wikify|1=http://talk.maemo.org/showthread.php?p=540939#post540939}}
* {{wikify|1=http://talk.maemo.org/showthread.php?p=541795#post541795}}

== Current issues ==

* allocation failure due to fragmented physical memory
* video output not customized to N8x0 with external Epson display controller
* stability (crashes, reboots, memory leaks .. you name it)

{{wikify|1=http://talk.maemo.org/showthread.php?p=541894#post541894}}

== Driver structure ==

TODO - document GPL-ed kernel parts

* mbxaccess.ko
* omaplcd.ko

[[Category:Software]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>MBarcode</title>
    <id>4317</id>
    <revision>
      <id>40903</id>
      <timestamp>2010-12-24T08:25:46Z</timestamp>
      <contributor>
        <username>lardman</username>
        <id>60</id>
      </contributor>
      <comment>/* ToDo/Stuff for volunteers */</comment>
      <text xml:space="preserve">mBarcode is an application which allows the user to scan barcodes using the device camera and then use the data they contain.  mBarcode has a history list which remembers the last 10 scanned barcodes (images and data). mBarcode's barcode payload (i.e. the data encoded in the barcode) handling is implemented through a system of plugins, which you can add to.

== Barcode Types ==

mBarcode uses [http://zbar.sourceforge.net/ ZBar] and [http://www.libdmtx.org/ libdmtx] to perform the barcode decoding.

=== Currently handled barcode types ===

==== 1D ====
* EAN-13/UPC-A (ZBar)
* UPC-E (ZBar)
* EAN-8 (ZBar)
* Code 128 (ZBar)
* Code 39 (ZBar)
* Interleaved 2 of 5 (ZBar)

==== 2D ====
* Data matrix (libdmtx)
* QR Code (ZBar)

=== Other barcode types wishlist ===
Please add other barcode types below and we will fill in the status/likelihood of them being added.

==== 1D ====
* (well stacked 1D anyway) [[:wikipedia:PDF417|PDF417]] - work in progress in ZBar
* [[:wikipedia:Intelligent_Mail_barcode|Intelligent mail]]
* [[:wikipedia:POSTNET|POSTNET]]

==== 2D ====
* [[:wikipedia:Aztec_Code|Aztec Code]] - I'll look into this

== Currently handled barcode payloads ==

* Weblookup for all payloads (this should handle EAN/UPC until someone writes a specific plugin to present data about them)
* isbn lookups
* vCards
* MECARDs
* iCal (will be handled as soon as we have Qt Mobility 1.1.x available - code is in SVN, but waiting for functions from Qtm 1.1.x)
* SMS/MMS
* Email payloads
* geo://
* tel://
* install files - this is currently disabled as the install files generated huge barcodes, but certainly we could re-implement this if wanted (a la Android), or simply encode a URL to the downloads.maemo.org location.

If there are any other things you'd like to see, please file an enhancement request and/or catch me on IRC to discuss.

== Plugins ==

list of plugins here...

== Post PR1.3 issues ==

Some users have reported problems loading plugins after upgrading their [[Nokia N900|N900]] device to [[Maemo 5/PR1.3|PR1.3]]. A reinstall of the mbarcode package and the plugin packages (just reinstall mbarcode-plugins-all to fetch all default ones) has been reported to fix this issue.

With PR1.3 and the newest packages, mbarcode should work fine. 

== Developers ==

=== Plugins ===

The mBarcode plugin API allows users to write plugins in Qt/C++ or Qt/Python. When a barcode is decoded, the type of barcode and data are passed to the plugins so that they can begin processing if they are interested. The user is then presented with a dialog showing the names of the plugins that are interested, and can select which one to open by clicking on the list. 

At this point the plugin in question is informed that it has been selected and is free to open a window or do other processing to handle the barcode payload.

If you would like to get started on developing plugins for mBarcode, please [[Mbarcode_Plugin_Tutorial|check out our tutorial]].

=== ToDo/Stuff for volunteers ===

Check the [https://bugs.maemo.org/buglist.cgi?query_format=specific&amp;order=relevance+desc&amp;bug_status=__open__&amp;product=mbarcode&amp;content= bugtracker enhancement and bug requests of course]

Catch me on irc (lardman) if you want to chat about any of these or the following topics.

Other items:

* Plugin API modification - currently each plugin implements an isReady() method which is called to see whether the plugin is ready to be displayed in the ResultsWindow. This means that we continue to poll plugins to see if they are &quot;ready&quot; when they might in fact not be interested in the barcode payload at all. We should change this to something along the lines of an isInterested() method and an isReady() method for those that are &quot;interested&quot;. Talking to Dragly it might be worth implementing this using signals and slots.
* Support more barcode types - this is mainly down to [http://zbar.sourceforge.net/ ZBar] (though if you find a good decoder for an unsupported barcode type I'm quite happy to look at adding it in in addition to the current ones). Currently in the works is PDF417 and it would also be good to have things like Aztec. Please head over to the ZBar site to grab their code and do some hacking if you think you can help with this or any other barcodes.
* Speed up Data Matrix decoding - work is underway in the [http://www.libdmtx.org/ libdmtx] project to re-write the code and make it run faster. I imagine that as with other open source projects, offers of help would be gratefully received.
* Modify code so that more than one barcode can be returned and processes sequentially if visible in an image - both backends support this afaiu, but we currently just grab the first decoded barcode, even though more may be available.
* Improve 1D decoding in low contrast conditions (down to ZBar)
* Improve performance of decoding from file - currently Data Matrix barcodes can't be scanned this way
* Allow arbitrarily sized barcodes to be scanned from file - currently they are limited to 800x480, but we should alter the decoder backend to allow changes to the maximum frame buffer size.
* Improve appearance of the plugin settings window
* Create an icon for the &quot;decode from file&quot; button (bottom right button on the main screen.
* Return location of detected barcode from backends (possible at least with libdmtx) so we can highlight it in the live view (to look pretty, no other purpose!) :)
* More to be added as I think of them! :)

[[Category:Software]]
[[Category:mBarcode]]</text>
    </revision>
  </page>
  <page>
    <title>MDC</title>
    <id>3616</id>
    <revision>
      <id>29711</id>
      <timestamp>2010-02-18T10:46:41Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[MDC]] moved to [[Mobile Dev Camp 2010]]: TLAs are confusing</comment>
      <text xml:space="preserve">#REDIRECT [[Mobile Dev Camp 2010]]</text>
    </revision>
  </page>
  <page>
    <title>MMS</title>
    <id>3399</id>
    <revision>
      <id>41444</id>
      <timestamp>2011-01-26T11:34:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">==Official solution==
There is no native mms support for [[Open development/Maemo roadmap/Fremantle|Maemo 5]] devices yet.
==Community solution==
* [http://maemo.org/community/brainstorm/view/mms_support/ Brainstorm] for this topic
* There exists fmms to send and receive mms on the [[Nokia N900|N900]] ([http://talk.maemo.org/showthread.php?t=51890 Thread in talk.maemo.org])

=== fMMS ===
==== Configuration &amp; Setup ====
* Configuration data in fmms
* [[FMMS]]

#  '''Only required if you want to test latest non-stable version, as latest stable version is now in the standard Extras catalogue - most people can skip to step 2'''&lt;br /&gt;[[Extras-devel#How_to_activate_Extras-devel|Create devel catalog]] (applications from this catalog can damage your phone but don't have to so if you are not sure about your needs or skills dont use it and wait for official applications from Nokia or firmware update)&lt;br /&gt;The software hosted in [[Extras-devel]] is NOT ready for normal users!&lt;br /&gt;PLEASE PLEASE PLEASE do not play with it unless you really know what you are doing. Be ready to file proper bug reports instead of posting complaints. Expected problems: crashes, battery drain, poor system performance, full disk space &amp; more - SERIOUSLY!&lt;br /&gt;Do not play with Extras-devel if you haven't backed up your data or are prepared to re-flash your device.
#* Application manager --&gt; Application catalogs --&gt; New
#* Catalog name: Extras-devel
#* Web address: http://repository.maemo.org/extras-devel
#* Distribution: fremantle
#* Components: free non-free
# Refresh catalogue
# Run fMMS and it will start with configuration
## Press 'Configure' next to the APN label.
##* Please note that some of the fields below has been deprecated in later iterations of the application and might no longer be available for configuration through the graphical interface.
## Enter your settings as listed below unless the fields are already filled.
## &lt;del&gt;&quot;Your number&quot; field should work if you enter a 0 (zero), if sending fails, please consult settings from the table below.&lt;/del&gt; As of 1.0.5 this option has been removed.
## Put max size of pics you want to have in outgoing MMS
# Save all and start sending MMS from fMMS menu.

It is very important to put correct setting in new APN and be sure if there is proxy needed in your operator.

The most important thing: when you have MMS ready to send you have to manualy connect to MMS APN from phone menu because it doesn't force this conection by itself (unless you use Havoc or Rude connection modes)

==== Troubleshooting fMMS ====
==== How to verify settings are correct ====
# Select 'Polite' mode in fMMS configuration
# Press the taskbar (where signal strength, battery etc is shown), connect to the internet connection called &quot;MMS&quot;
#* If this fails, your settings are wrong.
#* If this suceeds, proceed
# Open the browser and try browsing to the same location that is specified in the &quot;MMSC&quot; field in fMMS connection settings
#* If this fails, please double check all settings
#* If this suceeds, you should hopefully be able to send MMSes!
 
===== Problems receiving MMS =====
* Problem #1 :
** '''Symptom''' : Even though I am able to send MMS to other people, but I get an SMS from my operator, stating that I have a new MMS message waiting for me in my online album - (There are many variations of this), instead of receiving the actual MMS.
** '''Reason''' : If you are able to send MMS's, your operator has probably flagged you as a user that cannot receive MMS messages, and so it forwards incoming MMS messages to you online album accessible via the operator website.
** '''Solution''' : Call your operator and let them know your phone supports MMS, and that they should stop forwarding incoming MMS to your online album.

===== Problems sending MMS =====
* Problem #1 :
** '''Symptom''' : 'Name or service not known'
** '''Reason''' : Connected to the wrong APN or settings are incorrect
** '''Solution''' : Please double check the configuration, especially the field 'Access Point Name'. Note that this field should NOT be what you want to call the access point (eg &quot;MyOperator MMS&quot;) but instead what is required by your operator (eg &quot;mms.myoperatore.com&quot;). If settings seems to be correct, connect manually to the MMS APN through the regular interface (as you would connect to a wireless) and make sure you can visit the url specified in the &quot;MMSC&quot; configuration field in the Web browser application.

* Problem #2 :
** '''Symptom''' : 'Sending failed. MSSC: 200_OK'
** '''Reason''' : Sent file is to large. This can happen when sending 5MP photos with some operators.
** '''Solution''' : In fMMS settings set the &quot;Resize to&quot; option to something smaller. Note that &quot;Original&quot; can an usually will be bigger than &quot;Large&quot;. Most operators resize incoming images anyway, so sending larger images just uses up more traffic with no end result improvement.

===== Problems since installing fMMS =====
* Problem #1
** '''symptom''' : Since creating a separate APN for MMS (''what does this mean?''), 'automatically connect' set up always connects to the MMS connection instead of regular internet connection
** '''Reason''' : n900 currently only allows one (un-editable) APN in 'connect automatically'. [https://bugs.maemo.org/show_bug.cgi?id=9476 See Bug 9476]: [https://bugs.maemo.org/show_bug.cgi?id=9500 See Bug 9500]
** '''Solution''' : Open X-Terminal and enter: /opt/fmms/fmms_config.py and press enter.

== List of MMS parameters (Country and Providers) ==

{{main|MMS configurations}}

[[Category:Cellular]]</text>
    </revision>
  </page>
  <page>
    <title>MMS configurations</title>
    <id>4653</id>
    <revision>
      <id>50508</id>
      <timestamp>2012-10-27T10:03:12Z</timestamp>
      <contributor>
        <ip>95.166.151.17</ip>
      </contributor>
      <comment>/* Denmark */  small change to bibob connection name</comment>
      <text xml:space="preserve">This page is a list of configurations for [[MMS]] on the [[Nokia N900|N900]] with [[fMMS]]. You must use international notation for both your phone number and your recipient's phone number. National notation (using 0 in front of the phone number) will not work.

Please keep the list sorted.

==Australia==

{| class=&quot;wikitable sortable&quot;
|+ Australian MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Crazy John's || Packet data || Purtona.net || ''leave blank'' || ''leave blank'' || Yes || 10.202.2.20 || 8080 || &lt;nowiki&gt;http://purtona.mms/mmssend&lt;/nowiki&gt;
|-
| Optus || Packet data || mms || ''leave blank'' || ''leave blank'' || Yes || 61.88.190.10 || 8070 || &lt;nowiki&gt;http://mmsc.optus.com.au:8002&lt;/nowiki&gt;
|-
| Telstra || Packet data || telstra.mms || ''leave blank'' || ''leave blank'' || Yes || 10.1.1.180 || 80 || &lt;nowiki&gt;http://mmsc.telstra.com.au:8002&lt;/nowiki&gt;
|-
| Three (3) Australia || Packet data or GPRS || 3services || ''leave blank'' || ''leave blank'' || Yes || mmscprox.three.net.au or 10.176.57.25 || 8799 || &lt;nowiki&gt;mmsc.three.net.au:10021/mmsc&lt;/nowiki&gt;
|-
| Virgin || Packet data || virginmms || ''leave blank'' || ''leave blank'' || Yes || 202.139.083.152 || 8070 || &lt;nowiki&gt;http://mms.virginvibe.com.au:8002&lt;/nowiki&gt;
|-
| Vodafone || Packet data || live.vodafone.com || ''leave blank'' || ''leave blank'' || Yes || 10.202.2.60 || 8080 || &lt;nowiki&gt;http://pxt.vodafone.net.au/pxtsend&lt;/nowiki&gt;
|}

If using Nokia N900 and fMMS with Optus, only polite and rude can be used as havoc will fail. As havoc cannot be used ensure that whenever you're sending and receiving MMS messages you manually change your connection to Optus MMS, change it back to Optus Internet or Wifi for browsing the internet and other services.

==Austria==

{| class=&quot;wikitable sortable&quot;
|+ Austrian MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| A1 (Mobilkom Austria) || Packet data || free.a1.net || ppp@A1plus.at || ppp || Yes || 194.48.124.71 || 8001 || &lt;nowiki&gt;http://mmsc.a1.net&lt;/nowiki&gt;
|-
| Drei (3) || Packet data || drei.at || ''leave blank'' || ''leave blank'' || Yes || 213.94.78.133 || 8799 || &lt;nowiki&gt;http://mmsc&lt;/nowiki&gt;
|-
| Orange Austria || Packet data || orange.mms || mms || mms || Yes || 194.24.128.118 || 8080 || &lt;nowiki&gt;http://mmsc.orange.at/mms/wapenc&lt;/nowiki&gt;
|-
| T-Mobile || Packet data || gprsmms || ''leave blank'' || ''leave blank'' || Yes || 10.12.0.2 || 80 || &lt;nowiki&gt;http://mmsc.t-mobile.at/servlets/mms&lt;/nowiki&gt;
|}

==Bosnia and Herzegovina==

{| class=&quot;wikitable sortable&quot;
|+ Bosnian and Herzegovinian MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| m:tel ||  || mtelmms || ''leave blank'' || ''leave blank'' || Yes || 192.168.061.011 || 9201 || &lt;nowiki&gt;http://mmsc.mtel.ba/mms/wapenc&lt;/nowiki&gt;
|}

==Brasil==

{| class=&quot;wikitable sortable&quot;
|+ Brazilian MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Claro Brasil || Packet data || mms.claro.br || claro || claro || Yes || 200.169.126.010 || 8799 || &lt;nowiki&gt;http://mms.claro.com.br/&lt;/nowiki&gt;
|-
| Oi Brasil || Packet data || mmsgprs.oi.com.br || oimms || oioioi || Yes || 192.168.10.50 || 3128 || &lt;nowiki&gt;http://200.222.42.204:8002&lt;/nowiki&gt;
|-
| Tim Brasil || Packet data || mms.tim.br || tim || tim || Yes || 200.179.66.242 || 8080 || &lt;nowiki&gt;http://mms.tim.br/&lt;/nowiki&gt;
|-
| Vivo Brasil || Packet data || mms.vivo.com.br || vivo || vivo || Yes || 200.142.130.104 || 80 || &lt;nowiki&gt;http://termnat.vivomms.com.br:8088/mms&lt;/nowiki&gt;
|}

==Bulgaria==

{| class=&quot;wikitable sortable&quot;
|+ Bulgarian MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| M-Tel || || (mms-gprs.mtel.bg - not working ) (NEW) M-Tel MMS || mtel || mtel || Yes || 10.150.0.33 || 8080 || &lt;nowiki&gt;http://mmsc/&lt;/nowiki&gt;
|-
| VivaCom || || mms.vivacom.bg || mms || mms || Yes || 192.168.123.123 || 8080 || &lt;nowiki&gt;http://mmsc.vivacom.bg&lt;/nowiki&gt;
|}

==Canada==

{| class=&quot;wikitable sortable&quot;
|+ Canadian MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Fido || Packet data || mms.fido.ca || ''leave blank'' || ''leave blank'' || Yes || mm1.fido.ca || 80 || &lt;nowiki&gt;mms.fido.ca&lt;/nowiki&gt;
|-
| Rogers || GPRS || media.com || media || mda01 || Yes || 172.25.0.107 || 8080 || &lt;nowiki&gt;http://mms.gprs.rogers.com&lt;/nowiki&gt;
|-
| Wind || Packet data || mms.windmobile.ca || ''leave blank'' || ''leave blank'' || Yes || 74.115.197.70 || 8080 || &lt;nowiki&gt;http://mms.Windmobile.ca&lt;/nowiki&gt;
|}

==Czech Republic==

{| class=&quot;wikitable sortable&quot;
|+ Czech MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| O2 || Packet data || mms || ''leave blank'' || ''leave blank'' || Yes || 160.218.160.218 || 8080 || &lt;nowiki&gt;http://mms.o2active.cz:8002&lt;/nowiki&gt;
|-
| T-Mobile || Packet data || mms.t-mobile.cz || mms || mms || Yes || 10.0.0.10 || 80 || &lt;nowiki&gt;http://mms&lt;/nowiki&gt;
|-
| Vodafone || Packet data || mms || mms || mms || Yes || 10.11.10.11 || 80 || &lt;nowiki&gt;http://mms&lt;/nowiki&gt;
|}

==Channel Islands==

{| class=&quot;wikitable sortable&quot;
|+ Channel Islands MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Airtel Vodafone || Packet data || airtel-ci-mms.com || ''leave blank'' || ''leave blank'' || Yes || 10.200.61.17 || 9401 || &lt;nowiki&gt;http://10.200.61.17/servlets/mms&lt;/nowiki&gt;
|}

==Denmark==

{| class=&quot;wikitable sortable&quot;
|+ Danish MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Call Me || GPRS || mmsSP || ''leave blank'' || ''leave blank'' || Yes || 193.209.134.131 || 8080 || &lt;nowiki&gt;http://mms.telia.dk&lt;/nowiki&gt; 
|-
| Onfone || GPRS || mms || ''leave blank'' || ''leave blank'' || Yes || 194.182.251.15 || 8080 || &lt;nowiki&gt;http://192.168.241.114:8002&lt;/nowiki&gt;
|-
| TDC || GPRS || mms || ''leave blank'' || ''leave blank'' || Yes || 194.182.251.15 || 8080 || &lt;nowiki&gt;http://192.168.241.114:8002&lt;/nowiki&gt;
|-
| Telenor || GPRS || internet || telenor || ''your password'' || Yes || 212.88.64.8 || 8080 || &lt;nowiki&gt;http://mms.telenor.dk&lt;/nowiki&gt;
|-
| Telia || GPRS || www.mms.mtelia.dk || ''leave blank'' || ''leave blank'' || Yes || 193.209.134.131 || 8080 || &lt;nowiki&gt;http://mms.telia.dk&lt;/nowiki&gt;
|-
| Telmore || GPRS || mms || ''leave blank'' || ''leave blank'' || Yes || 194.182.251.15 || 8080 || &lt;nowiki&gt;http://192.168.241.114:8002&lt;/nowiki&gt;
|-
| Tre (3) DK || GPRS || data.tre.dk || ''leave blank'' || ''leave blank'' || Yes || 172.16.1.25 || 8799 || &lt;nowiki&gt;http://mms.3.dk&lt;/nowiki&gt;
|-
| Oister || GPRS || data.dk || ''leave blank'' || ''leave blank'' || Yes || 172.16.53.12 || 8799 || &lt;nowiki&gt;http://mms.oister.dk&lt;/nowiki&gt;
|-
| BiBob || GPRS || internet || ''leave blank'' || ''leave blank'' || Yes || 212.88.64.8 || 8080 || &lt;nowiki&gt;http://mms.telenor.dk&lt;/nowiki&gt;
|}

==Finland==

{| class=&quot;wikitable sortable&quot;
|+ Finnish MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Dicame (ex. GSM Suomi) || Packet data || mms.gsm-suomi.fi || ''leave blank'' || ''leave blank'' || Yes || 10.1.1.13 || 8080 || &lt;nowiki&gt;http://mmsc.gsm-suomi.fi&lt;/nowiki&gt;
|-
| DNA || Packet data || mms || dna || mms || Yes || 10.1.1.2 || 8080 || &lt;nowiki&gt;http://mmsc.dnafinland.fi&lt;/nowiki&gt;
|-
| Elisa || Packet data || mms || ''leave blank'' || ''leave blank'' || Yes || 213.161.41.57 || 80 || &lt;nowiki&gt;http://mms.elisa.fi&lt;/nowiki&gt;
|-
| Saunalahti || GPRS || mms.saunalahti.fi || ''leave blank'' || ''leave blank'' || Yes || 62.142.4.197 || 8080 || &lt;nowiki&gt;http://mms.saunalahti.fi:8002&lt;/nowiki&gt;
|-
| Sonera || GPRS || wap.sonera.net || ''leave blank'' || ''leave blank'' || Yes || 195.156.25.33 || 80 || &lt;nowiki&gt;http://mms.sonera.net:8002&lt;/nowiki&gt;
|-
| TDC || Packet data || mms.tdc.fi || ''leave blank'' || ''leave blank'' || Yes || 10.1.12.2 || 8080 || &lt;nowiki&gt;http://mmsc.tdc.fi&lt;/nowiki&gt;
|}

Note! DNA has problems with N900 and MMS! If these settings do not work and you cannot send MMS, please contact the DNA customer care and insist that the technical care should enable MMS messages on your mobile again.

==France==

{| class=&quot;wikitable sortable&quot;
|+ French MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Bouygues Telecom || GPRS || mmsbouygtel.com || ''leave blank'' || ''leave blank'' || Yes || 62.201.137.17 || 8080 || &lt;nowiki&gt;http://mms.bouyguestelecom.fr/mms/wapenc&lt;/nowiki&gt;
|-
| Orange || GPRS || orange.acte || orange || orange || Yes || 192.168.10.200 || 8080 || &lt;nowiki&gt;http://mms.orange.fr&lt;/nowiki&gt;
|-
| SFR || GPRS || mmssfr || ''leave blank'' || ''leave blank'' || Yes || 10.151.0.1 || 8080 || &lt;nowiki&gt;http://mms1&lt;/nowiki&gt;
|-
| Virgin Mobile || GPRS || orange.acte or ofnew.fr || orange || orange || Yes || 192.168.10.200 || 8080 || &lt;nowiki&gt;http://mms.orange.fr&lt;/nowiki&gt;
|}

 '''Note:''' Bouygues Telecom usually disable MMS services for N900 by default, you must contact Bouygues Telecom customer services to ask them to add the MMS option to your contract. They sometimes need to disable it and enable it again for the service to work.

==Germany==

{| class=&quot;wikitable sortable&quot;
|+ German MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Congstar (T-Mobile reseller) || Packet data || internet.t-mobile || congstar || congstar || Yes || 172.28.23.131 || 8008 (DNS server 193.254.160.1) || &lt;nowiki&gt;http://mms.t-mobile.de/servlets/mms&lt;/nowiki&gt;
|-
| E-Plus || GPRS || mms.eplus.de || mms || eplus || Yes || 212.23.97.153 || 8080 || &lt;nowiki&gt;http://mms/eplus&lt;/nowiki&gt;
|-
| Fonic (O2) || GPRS or UMTS || pinternet.interkom.de || ''leave blank'' || ''leave blank'' || Yes || 82.113.100.6 || 8080 || &lt;nowiki&gt;http://10.81.0.7:8002&lt;/nowiki&gt;
|-
| O2 Germany || GPRS || internet || ''leave blank'' || ''leave blank'' || Yes || 82.113.100.6 || 8080 || &lt;nowiki&gt;http://10.81.0.7:8002&lt;/nowiki&gt;
|-
| T-Mobile Germany || Packet data || mms.t-d1.de || t-mobile || mms || Yes || 172.28.23.131 || 8008 || &lt;nowiki&gt;http://mms.t-mobile.de/servlets/mms/&lt;/nowiki&gt;
|-
| Vodafone Germany || Packet data || event.vodafone.de || ''leave blank'' || ''leave blank'' || Yes || 139.7.29.17 || 80 || &lt;nowiki&gt;http://139.7.24.1/servlets/mms&lt;/nowiki&gt;
|}

Note: It appears that Simyo (E-Plus brand) users have to set the proxy also for every other protocol (https,...) and have to set ports to 5080. It is also possible to autoconfigure the N900 via the Simyo web page using the settings for Nokia N95.

==Hungary==

{| class=&quot;wikitable sortable&quot;
|+ Hungarian MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| T-Mobile Hungary || Packet data || mms || mms || mms || Yes || 212.51.126.10 || 8080 || &lt;nowiki&gt;http://mms.t-mobile.hu/servlets/mms&lt;/nowiki&gt;
|}

==Israel==

{| class=&quot;wikitable sortable&quot;
|+ Israeli MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Cellcom || || mms || HyD43f || cellcom || Yes || 172.31.29.38 || 8080 || &lt;nowiki&gt;http://mms.cellcom.co.il&lt;/nowiki&gt;
|-
| Orange || || uwap.orange.co.il || orange || Mobile54 || Yes || 192.118.11.55 || 8080 || &lt;nowiki&gt;http://192.168.220.15/servlets/mms&lt;/nowiki&gt;
|-
| Pelephone || || mms.pelephone.net.il || pcl@3g || pcl || Yes || 10.170.9.54 || 9093 || &lt;nowiki&gt;http://mmsu.pelephone.net.il&lt;/nowiki&gt;
|}

Note for Orange: If you receive a small pictures like 240x180px, in order to fix this problem and for receiving/viewing the pictures to full screen size, you have to run this command in the X-term: &lt;pre&gt;gconftool-2 -s /apps/fmms/useragent --type string &quot;Nokia N900 RX-51&quot;&lt;/pre&gt;

Note for Pelephone: If you can't send/recive MMS message (authorization error) call to customer service (*160 and then press 4) and ask for portal authorization.

==Italy==

{| class=&quot;wikitable sortable&quot;
|+ Italian MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| H3g Italy / Tre Italia || || mms || ''leave blank'' || ''leave blank'' || Yes || 62.13.171.3 || 8799 || &lt;nowiki&gt;http://10.216.59.240:10021/mmsc&lt;/nowiki&gt;[http://talk.maemo.org/showpost.php?p=471798&amp;postcount=162]
|-
| TIM Italy || GPRS || mms.tim.it || ''leave blank'' || ''leave blank'' || Yes || 213.230.130.89 || 80 || &lt;nowiki&gt;http://mms.tim.it/servlets/mms&lt;/nowiki&gt;
|-
| Vodafone Italy || GPRS || mms.vodafone.it || ''leave blank'' || ''leave blank'' || Yes || 10.128.224.10 || 8080 || &lt;nowiki&gt;http://mms.vodafone.it/servlets/mms&lt;/nowiki&gt;
|-
| Wind Italy || GPRS || mms.wind || ''leave blank'' || ''leave blank'' || Yes || 212.245.244.100 or 212.245.244.11 || 8080 || &lt;nowiki&gt;http://mms.wind.it&lt;/nowiki&gt;
|}

==Ireland==

{| class=&quot;wikitable sortable&quot;
|+ Irish MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Meteor Ireland || Packet data || mms.mymeteor.ie || my || mms || Yes || 10.85.85.85 || 8799 || &lt;nowiki&gt;http://mms.mymeteor.ie&lt;/nowiki&gt;
|-
| O2 Ireland || Packet data || wap.dol.ie or internet || user || user || Yes || 62.40.32.40 || 8080 || &lt;nowiki&gt;http://mmsc.mms.o2.ie:8002&lt;/nowiki&gt;
|-
| Three (3) Ireland || Packet data || 3ireland.ie || ''leave blank'' || ''leave blank'' || Yes || mms.3ireland.ie || 8799 || &lt;nowiki&gt;http://mms.um.3ireland.ie:10021/mmsc/&lt;/nowiki&gt;
|-
| Vodafone Ireland || Packet data || mms.vodafone.net || dublin || dublin || Yes || 10.24.59.200 || 80 || &lt;nowiki&gt;http://www.vodafone.ie/mms&lt;/nowiki&gt;
|}

==Latvia==

{| class=&quot;wikitable sortable&quot;
|+ Latvian MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| LMT || Packet data || mms.lmt.lv || ''leave blank'' || ''leave blank'' || No || ''leave blank'' || ''leave blank'' || &lt;nowiki&gt;http://mmsc.lmt.lv/mmsc&lt;/nowiki&gt;
|}

==Montenegro==

{| class=&quot;wikitable sortable&quot;
|+ Montenegrin MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Telenor (ProMonte) || Packet data || mms || mms || mms || Yes || 192.168.246.5 || 8080 || &lt;nowiki&gt;http://mm.vor.telenor.me&lt;/nowiki&gt;
|}

==Moldova==

{| class=&quot;wikitable sortable&quot;
|+ Moldavian MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Orange Moldova || Packet data || mms.orange.md || ''leave blank'' || ''leave blank'' || Yes || 192.168.127.125 || 3128 || &lt;nowiki&gt;http://mms/mms&lt;/nowiki&gt;
|}

==Netherlands==

{| class=&quot;wikitable sortable&quot;
|+ Dutch MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| KPN/HI || Packet data || portalmmm.nl || ''leave blank'' || ''leave blank'' || Yes || 10.10.100.20 || 5080 || &lt;nowiki&gt;http://mp.mobiel.kpn.nl/mmsc&lt;/nowiki&gt;
|-
| T-Mobile || Packet data || mms || tmobilemms || tmobilemms || Yes || 10.10.10.11 || 8080 || &lt;nowiki&gt;http://t-mobilemms&lt;/nowiki&gt;
|-
| Vodafone || Packet data || live.vodafone.com || vodafone || vodafone || Yes || 192.168.251.150 || 8799 || &lt;nowiki&gt;http://mmsc.mms.vodafone.nl&lt;/nowiki&gt;
|}

==New Zealand==
{| class=&quot;wikitable sortable&quot;
|+ New Zealand MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Vodafone NZ || Packet data || live.vodafone.com || ''leave blank'' || ''leave blank'' || Yes || 172.30.38.3 || 8080 || &lt;nowiki&gt;http://pxt.vodafone.net.nz/pxtsend&lt;/nowiki&gt;
|}

==Nigeria==

{| class=&quot;wikitable sortable&quot;
|+ Nigerian MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| MTN || Packet data || web.gprs.mtnnigeria.net || web || web || Yes || 10.199.212.2 || 8080 || &lt;nowiki&gt;http://10.199.212.8/servlets/mms&lt;/nowiki&gt;
|}

==Norway==

{| class=&quot;wikitable sortable&quot;
|+ Norwegian MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Chess || || netcom || chess || chess || Yes || 193.209.134.133 || 8080 || &lt;nowiki&gt;http://mm/&lt;/nowiki&gt;
|-
| Netcom || Packet data || netcom || mms || ''leave blank'' || Yes ||  212.169.66.4 || 80 || &lt;nowiki&gt;http://mm/&lt;/nowiki&gt;
|-
| OneCall || Packet data || mms || ''leave blank'' || ''leave blank'' || Yes || 89.254.65.20 || 80 || &lt;nowiki&gt;http://mms.nwn.no&lt;/nowiki&gt;
|-
| Tele2 || GPRS || internet.tele2.no || ''leave blank'' || ''leave blank'' || Yes || 193.12.40.14 || 8080 || &lt;nowiki&gt;http://mmsc.tele2.no&lt;/nowiki&gt;
|-
| Telenor || Packet data || MMS || Std || mms || Yes || 10.10.10.11 || 8080 || &lt;nowiki&gt;http://mmsc/&lt;/nowiki&gt;
|-
| Ventelo || Packet data || mms.ventelo.no || ventelo || 1111 || Yes || 10.10.10.11 || 8080 || &lt;nowiki&gt;http://mmsc/&lt;/nowiki&gt;
|}

==Pakistan==

{| class=&quot;wikitable sortable&quot;
|+ Pakistani MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Telenor || || mms || Telenor || Telenor || Yes || 172.018.019.011 || 8080 || &lt;nowiki&gt;http://mmstelenor&lt;/nowiki&gt;
|-
| Warid || || mms.warid || ''leave blank'' || ''leave blank'' || Yes || 10.4.2.1 || 8080 || &lt;nowiki&gt;http://10.4.0.132/servlets/mms&lt;/nowiki&gt;
|}

==Poland==
{| class=&quot;wikitable sortable&quot;
|+ Polish MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| ERA || || eramms || eramms || eramms || Yes || 213.158.194.226 || 8080 || &lt;nowiki&gt;http://mms.era.pl/servlets/mms&lt;/nowiki&gt;
|-
| Heyah Poland || || heyahmms || heyah || heyah || Yes || 213.158.194.226 || 8080 || &lt;nowiki&gt;http://mms.heyah.pl/servlets/mms&lt;/nowiki&gt;
|-
| Orange Poland || || mms || mms || mms || Yes || 192.168.6.104 || 8080 || &lt;nowiki&gt;http://mms.orange.pl&lt;/nowiki&gt;
|-
| Play Mobile Poland || || mms || ''leave blank'' || ''leave blank'' || Yes || 10.10.25.5 || 8080 || &lt;nowiki&gt;http://10.10.28.164/mms/wapenc&lt;/nowiki&gt;
|-
| Plus || Packet data || mms.plusgsm.pl || ''leave blank'' || ''leave blank'' || Yes || 212.2.96.16 || 8080 || &lt;nowiki&gt;http://mms.plusgsm.pl:8002&lt;/nowiki&gt;
|}

==Portugal==

{| class=&quot;wikitable sortable&quot;
|+ Portuguese MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Optimus || Packet data || mms || ''leave blank'' || ''leave blank'' || Yes || 62.169.66.1 || 8799 or 9201 || &lt;nowiki&gt;http://mmsc:10021/mmsc&lt;/nowiki&gt;
|-
| Vodafone || Packet data || vas.vodafone.pt || vas || vas || Yes || 213.30.27.63 || 8799 or 9201 || &lt;nowiki&gt;http://mms/servlets/mms&lt;/nowiki&gt;
|}

==Republic of Maldives==

{| class=&quot;wikitable sortable&quot;
|+ Maldivian MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Dhiraagu || GPRS || mms.dhimobile || ''leave blank'' || ''leave blank'' || Yes || 172.24.97.4 || 8080 || http://mmsc.dhimobile.com.mv
|}

==Russia==

{| class=&quot;wikitable sortable&quot;
|+ Russian MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Beeline (Moscow) || Packet data || mms.beeline.ru || beeline || beeline || Yes || 192.168.94.23 || 8080 || &lt;nowiki&gt;http://mms/&lt;/nowiki&gt;
|-
| Megafon (Moscow) || Packet data || internet || mms || mms || Yes || 10.10.10.10 || 8080 || &lt;nowiki&gt;http://mmsc:8002/&lt;/nowiki&gt;
|-
| MTS || Packet data || mms.mts.ru || mts || mts || No || 192.168.192.192 || 9201 || &lt;nowiki&gt;http://mmsc/&lt;/nowiki&gt;
|}

&lt;span onmouseover=&quot;_tipon(this)&quot; onmouseout=&quot;_tipoff()&quot;&gt;&lt;span class=&quot;google-src-text&quot; style=&quot;direction: ltr; text-align: left&quot;&gt;==Serbia== {| class=&quot;wikitable sortable&quot; |+ Serbian MMS providers |- !&lt;/span&gt; == Сербии == {| класс = &quot;wikitable сортировки&quot; | + сербского MMS провайдров | -!&lt;/span&gt; &lt;span onmouseover=&quot;_tipon(this)&quot; onmouseout=&quot;_tipoff()&quot;&gt;&lt;span class=&quot;google-src-text&quot; style=&quot;direction: ltr; text-align: left&quot;&gt;Provider !!&lt;/span&gt; Поставщик!&lt;/span&gt; &lt;span onmouseover=&quot;_tipon(this)&quot; onmouseout=&quot;_tipoff()&quot;&gt;&lt;span class=&quot;google-src-text&quot; style=&quot;direction: ltr; text-align: left&quot;&gt;class=&quot;unsortable&quot; | Connection type !!&lt;/span&gt; класс = &quot;unsortable&quot; | Тип соединения!&lt;/span&gt; &lt;span onmouseover=&quot;_tipon(this)&quot; onmouseout=&quot;_tipoff()&quot;&gt;&lt;span class=&quot;google-src-text&quot; style=&quot;direction: ltr; text-align: left&quot;&gt;class=&quot;unsortable&quot; | AP name !!&lt;/span&gt; класс = &quot;unsortable&quot; | AP имя!&lt;/span&gt; &lt;span onmouseover=&quot;_tipon(this)&quot; onmouseout=&quot;_tipoff()&quot;&gt;&lt;span class=&quot;google-src-text&quot; style=&quot;direction: ltr; text-align: left&quot;&gt;class=&quot;unsortable&quot; | Username !!&lt;/span&gt; класс = &quot;unsortable&quot; | Имя пользователя!&lt;/span&gt; &lt;span onmouseover=&quot;_tipon(this)&quot; onmouseout=&quot;_tipoff()&quot;&gt;&lt;span class=&quot;google-src-text&quot; style=&quot;direction: ltr; text-align: left&quot;&gt;class=&quot;unsortable&quot; | Password !!&lt;/span&gt; класс = &quot;unsortable&quot; | Пароль!&lt;/span&gt; &lt;span onmouseover=&quot;_tipon(this)&quot; onmouseout=&quot;_tipoff()&quot;&gt;&lt;span class=&quot;google-src-text&quot; style=&quot;direction: ltr; text-align: left&quot;&gt;class=&quot;unsortable&quot; | Use Proxy !!&lt;/span&gt; класс = &quot;unsortable&quot; | Использовать прокси-сервер!&lt;/span&gt; &lt;span onmouseover=&quot;_tipon(this)&quot; onmouseout=&quot;_tipoff()&quot;&gt;&lt;span class=&quot;google-src-text&quot; style=&quot;direction: ltr; text-align: left&quot;&gt;class=&quot;unsortable&quot; | HTTP proxy !!&lt;/span&gt; класс = &quot;unsortable&quot; | HTTP прокси!&lt;/span&gt; &lt;span onmouseover=&quot;_tipon(this)&quot; onmouseout=&quot;_tipoff()&quot;&gt;&lt;span class=&quot;google-src-text&quot; style=&quot;direction: ltr; text-align: left&quot;&gt;class=&quot;unsortable&quot; | Port !!&lt;/span&gt; класс = &quot;unsortable&quot; | Порт!&lt;/span&gt; &lt;span onmouseover=&quot;_tipon(this)&quot; onmouseout=&quot;_tipoff()&quot;&gt;&lt;span class=&quot;google-src-text&quot; style=&quot;direction: ltr; text-align: left&quot;&gt;clas=&quot;unsortable&quot; | MMSC |- | Telenor || Packet data || mms || ''leave blank'' || ''leave blank'' || Yes || 217.65.192.33 || 8080 || &lt;nowiki&gt;http://mms.telenor.rs/servlets/mms&lt;/nowiki&gt; |}&lt;/span&gt; класс = &quot;unsortable&quot; | MMSC | - | Telenor | | Пакетные данные | | мм | |''оставьте пустым''| |''оставьте пустым''| | Да | | 217.65.192.33 | | 8080 | | &lt;nowiki&gt; http://mms.telenor.rs/servlets/mms &lt;/ Nowiki&gt; |}&lt;/span&gt;

==Singapore==

{| class=&quot;wikitable sortable&quot;
|+ Singaporean MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Singtel ||  || e-ideas || 65IDEAS || eideas || Yes || 165.21.42.84 || 8080 || &lt;nowiki&gt;http://mms.singtel.com:10021/mmsc&lt;/nowiki&gt;
|-
| Starhub ||  || shmms || ''leave blank'' || ''leave blank'' || Yes || 10.12.1.80 || 80 || &lt;nowiki&gt;http://mms.starhubgee.com.sg:8002/&lt;/nowiki&gt;
|}

==Slovakia==

{| class=&quot;wikitable sortable&quot;
|+ Slovakian MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| O2 SK || Packet data || o2mms || ''leave blank'' || ''leave blank'' || Yes || 10.97.1.11 || 8080 || &lt;nowiki&gt;http://mms.o2world.sk:8002&lt;/nowiki&gt;
|-
| Orange SK || Packet data || mms || wap || wap || Yes || 213.151.208.145 || 8799 || &lt;nowiki&gt;http://imms.orange.sk&lt;/nowiki&gt;
|-
| T-Mobile SK || Packet data || mms || mms || mms || Yes || 198.168.1.1 || 8080 || &lt;nowiki&gt;http://mms&lt;/nowiki&gt;
|}

==Slovenia==

{| class=&quot;wikitable sortable&quot;
|+ Slovenian MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Debitel || Packet data || mms.mobitel.si || mobitel || internet || Yes || 213.229.249.40 || 8080 || &lt;nowiki&gt;http://mms.mobitel.si/servlets/mms&lt;/nowiki&gt;
|-
| Simobil || Packet data || mms.simobil.si || simobil || internet || Yes || 80.95.224.46 || 9201 || &lt;nowiki&gt;http://mmc&lt;/nowiki&gt;
|-
| Tušmobil ||  || mms.tusmobil.si || tusmobil || mms || Yes || 91.185.221.85 || 8080 || &lt;nowiki&gt;http://mms.tusmobil.si:8002&lt;/nowiki&gt;
|}

==Spain==

{| class=&quot;wikitable sortable&quot;
|+ Spanish MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Movistar Spain ||  || mms.movistar.es || MOVISTAR@mms || MOVISTAR || Yes || 10.138.255.5 || 8080 || &lt;nowiki&gt;http://mms.movistar.com&lt;/nowiki&gt;
|-
| Pepephone Spain ||  || mms.pepephone.com || wap@wap || wap125 || Yes || 212.73.32.10 || 80 || &lt;nowiki&gt;http://mms.pepephone.com/servlets/mms&lt;/nowiki&gt;
|-
| SIMYO Spain ||  || gprs-service.com || ''leave blank'' || ''leave blank'' || Yes || 217.18.32.181 || 8080 || &lt;nowiki&gt;http://mms-services.eu&lt;/nowiki&gt;
|-
| Yoigo Spain ||  || mms || ''leave blank'' || ''leave blank'' || Yes || 193.209.134.141 || 80 || &lt;nowiki&gt;https://services.sonera.net/authentication/21404/login.html&lt;/nowiki&gt;
|-
| Vodafone Spain ||  || mms.vodafone.net || mfortea@e-metge.com || 1072 || Yes || 212.73.32.10 || 80 || &lt;nowiki&gt;http://mmsc.vodafone.es/servlets/mms&lt;/nowiki&gt;
|}

==Sweden==

{| class=&quot;wikitable sortable&quot;
|+ Swedish MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Halebop ||  || mms.telia.se || mms || telia || Yes || 193.209.134.132 || 8080 || &lt;nowiki&gt;http://mmss/&lt;/nowiki&gt;[http://www.meegosweden.com/component/kunena/6-program-och-applikationer/1318-fmms?limit=15&amp;start=30#5322]
|-
| Tele2 SE || Packet data || internet.tele2.se || ''leave blank'' || ''leave blank'' || Yes || 130.244.202.30 || 8080 || &lt;nowiki&gt;http://mmsc.tele2.se&lt;/nowiki&gt;
|-
| Telenor || Packet data || services.telenor.se || ''leave blank'' || ''leave blank'' || Yes || 172.30.253.241 || 8799 || &lt;nowiki&gt;http://mms/&lt;/nowiki&gt;
|-
| Telia || Packet data || mms.telia.se || mms || telia || Yes || 193.209.134.132 || 8080 || &lt;nowiki&gt;http://mmss/&lt;/nowiki&gt;
|-
| Tre (3) || Packet data || data.tre.se || ''leave blank'' || ''leave blank'' || Yes || mmsproxy.tre.se || 8799 || mms.tre.se
|}

==Switzerland==

{| class=&quot;wikitable sortable&quot;
|+ Swiss MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Orange || GPRS || mms || ''leave blank'' || ''leave blank'' || Yes || 192.168.151.2 || 8080 || &lt;nowiki&gt;http://192.168.151.3:8002/&lt;/nowiki&gt;
|-
| Sunrise (TDC) || GPRS || mms.sunrise.ch || mms || mms || Yes || 212.35.34.75 || 8080 || &lt;nowiki&gt;http://mmsc.sunrise.ch&lt;/nowiki&gt;
|-
| Swisscom || GPRS || event.swisscom.ch || ''leave blank'' || ''leave blank'' || Yes || 192.168.210.2 || 8080 || &lt;nowiki&gt;http://mmsc.swisscom.ch&lt;/nowiki&gt;
|}

IMPORTANT: Swisscom does not recognize the N900 as MMS capable device and blocks the MMS funktion from this device. You get some sort of send-conf-d service autorization error message if you try to send MMS. Call Swisscom Customer Support and ask them to enable the MMS function for your subscription. Then fMMS will work perfectly.

==United Arab Emirates==

{| class=&quot;wikitable sortable&quot;
|+ Emirati MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| Etisalat ||  || mms || mms || mms || Yes || 10.12.0.30 || 8080 || &lt;nowiki&gt;http://10.99.52.150/servlets/mms&lt;/nowiki&gt;
|}

==United Kingdom==

{| class=&quot;wikitable sortable&quot;
|+ British MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| O2 UK || GPRS or Packet data || wap.o2.co.uk ''(contract)'' '''or''' payandgo.o2.co.uk ''(pay as you go)'' || o2wap ''(contract)'' '''or''' payandgo ''(pay as you go)'' || password || Yes || 193.113.200.195 || 8080 || &lt;nowiki&gt;http://mmsc.mms.o2.co.uk:8002&lt;/nowiki&gt;
|-
| Orange UK || GPRS || orangemms || ''leave blank'' || ''leave blank'' || Yes || 192.168.224.10 || 8080 || &lt;nowiki&gt;http://mms.orange.co.uk&lt;/nowiki&gt;
|-
| T-Mobile UK || GPRS || general.t-mobile.uk || user || pass || Yes || 149.254.201.135 || 8080 || &lt;nowiki&gt;http://mmsc.t-mobile.co.uk:8002&lt;/nowiki&gt;
|-
| Three (3) UK || GPRS || three.co.uk || ''leave blank'' || ''leave blank'' || Yes || 217.171.129.2 || 8799 || &lt;nowiki&gt;http://mms.um.three.co.uk:10021/mmsc&lt;/nowiki&gt;
|-
| Vodafone UK || Packet data || wap.vodafone.co.uk || wap || user || Yes || 212.183.137.12 || 8799 '''or''' 9201 || &lt;nowiki&gt;http://mms.vodafone.co.uk/servlets/mms&lt;/nowiki&gt;
|-
| Virgin UK || Packet data || goto.virginmobile.uk || user || ''leave blank'' || Yes || 193.030.166.001 || 8080 || &lt;nowiki&gt;http://mms.virginmobile.co.uk:8002&lt;/nowiki&gt;
|-
| Tesco Mobile UK  ''(Pay as you go)'' || Packet data || prepay.tesco-mobile.com || tescowap || password || Yes || 193.113.200.195 || 8080 || &lt;nowiki&gt;http://mmsc.mms.o2.co.uk:8002&lt;/nowiki&gt;
|-
| BT Mobile UK || Packet data || mobile.bt.uk || user || btmms || Yes || 212.183.137.012 '''or''' 62.239.21.123 || 8799 || &lt;nowiki&gt;http://mms.bt.com/servlets/mms&lt;/nowiki&gt; '''or''' &lt;nowiki&gt;http://mmsc.btmms.co.uk:8002&lt;/nowiki&gt;
|-
| ASDA Mobile UK || Packet data || asdamobiles.co.uk || wap || wap || Yes || 212.183.137.12 || 8799 || &lt;nowiki&gt;http://mms.asdamobiles.co.uk/servlets/mms&lt;/nowiki&gt;
|}

 '''Note:''' Virgin MMS is disabled by default, you must contact Virgin customer services to enable.
 '''Note:''' Tesco use o2 cell towers, so the use of the o2 MMSC is not a typo!

==United States==

{| class=&quot;wikitable sortable&quot;
|+ American MMS providers
|-
! Provider !! class=&quot;unsortable&quot; | Connection type !! class=&quot;unsortable&quot; | AP name !! class=&quot;unsortable&quot; | Username !! class=&quot;unsortable&quot; | Password !! class=&quot;unsortable&quot; | Use Proxy !! class=&quot;unsortable&quot; | HTTP proxy !! class=&quot;unsortable&quot; | Port !! class=&quot;unsortable&quot; | MMSC
|-
| AT&amp;T Mobility || GPRS || wap.cingular || WAP@CINGULARGPRS.COM || CINGULAR1 || Yes || 66.209.11.32 || 80 || &lt;nowiki&gt;http://mmsc.cingular.com&lt;/nowiki&gt;
|-
| T-Mobile USA || GPRS || &lt;nowiki&gt;epc.tmobile.com&lt;/nowiki&gt; or &lt;nowiki&gt;wap.voicestream.com&lt;/nowiki&gt; || ''leave blank'' || ''leave blank'' || Yes || 216.155.165.050 || 8080 or 9201 || &lt;nowiki&gt;http://mms.msg.eng.t-mobile.com/mms/wapenc&lt;/nowiki&gt; or &lt;nowiki&gt;http://216.155.174.84/servlets/mms&lt;/nowiki&gt; or &lt;nowiki&gt;http://208.67.216.231/servlets/mms&lt;/nowiki&gt; or &lt;nowiki&gt;http://2mms.msg.eng.t-mobile.com/mms/wapenc&lt;/nowiki&gt;
|}

==OTHERS==
*Other Carriers
**An external resource for finding additional settings is http://www.activexperts.com/xmstoolkit/mmsclist/. Note that they do not list the HTTP Proxy Port Numbers. In most cases 8080 or 80 should work.

[[Category:N900]]
[[Category:Cellular]]</text>
    </revision>
  </page>
  <page>
    <title>MMS implementation</title>
    <id>2870</id>
    <revision>
      <id>21309</id>
      <timestamp>2009-10-29T15:07:52Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[MMS implementation]] moved to [[Task:MMS]]</comment>
      <text xml:space="preserve">#REDIRECT [[Task:MMS]]</text>
    </revision>
  </page>
  <page>
    <title>MSN messenger</title>
    <id>2903</id>
    <revision>
      <id>41702</id>
      <timestamp>2011-02-08T12:43:37Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>minor corrections</comment>
      <text xml:space="preserve">You can install MSN messenger as a plugin at least on [[:Category:OS2008|Maemo OS2008]] and [[Open development/Maemo roadmap/Fremantle|Fremantle]]. This means that you can use devices integrated messaging software to chat with your friends at MSN.

== Questions and answers ==

*Will you be able to view messages that you have received while offline like you can on PC?
:''Yes''

*Is there a chat history?
:''Yes, its the same history and the same UI as other IM protocols''

* Will it support MSN Video calls?
:''Yes, on the N900 using butterfly (not with Haze).''

*Can you leave MSN running in the background and receive instant messages from multiple people while doing other things on the phone? 
:''Yes, just like when using other build-in IM protocols.''

*If i am for example watching a movie, will a message pop up saying I have an instant message from a contact? 
:''Yes.''

*There will be support for MSN games?
:''No.'' For now, they are not supported by papyon/butterfly, but someone could implement them.

*Where can I download MSN Messenger for my [[Nokia N900]]?
:Install it from [[extras-devel]] through the Application Manager. The name of the package is [http://maemo.org/packages/view/account-plugin-butterfly/ MSN Protocol Plugin For Conversations And Contacts] and it is in the ''networking'' section.

[[Category:Fremantle]]
[[Category:Beginners]]
[[Category:OS2008]]</text>
    </revision>
  </page>
  <page>
    <title>MT-Toggles</title>
    <id>5222</id>
    <revision>
      <id>48828</id>
      <timestamp>2012-07-27T10:57:43Z</timestamp>
      <contributor>
        <username>mohammad7410</username>
        <id>2135</id>
      </contributor>
      <comment>New page: MT-Toggles (MeeGoTouch Toggles) is a toggles platform for Harmattan, it mimics SBSettings for iOS or Notification Center toggles in Android.</comment>
      <text xml:space="preserve">MT-Toggles (MeeGoTouch Toggles) is a toggles platform for Harmattan, it mimics SBSettings for iOS or Notification Center toggles in Android.</text>
    </revision>
  </page>
  <page>
    <title>MaeFat</title>
    <id>4763</id>
    <revision>
      <id>46605</id>
      <timestamp>2012-02-13T00:39:38Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>/* Editing the Log */</comment>
      <text xml:space="preserve">maeFat is a [[Open development/Maemo roadmap/Fremantle|Maemo 5]] app for the [[Nokia N900|N900]] which helps you to track your weight history. It is similar to the [http://www.fourmilab.ch/hackdiet/ Hacker's Diet] tools, but not identical to them. It allows you to log your weight, plot that data along with an exponentially weighted running average, and determine caloric excess/deficit over a variety of time intervals. maeFat is open source and cost-free.

== The Initial Display ==

[[Image:maeFatInitialScreen.png|thumb|200px|alt=Screenshot of maeFat Initial Screen|Initial Screen]]

When you initially run the program, there will be no data available, and you will see the display shown on the right. You must either enter data through the app, or copy a data file of your own into the proper location. Also, you must use the About You menu option in order to enter your height (which is used to calculate your [[:wikipedia:Body_mass_index|Body Mass Index]] (BMI).
{{clear}}

== Menu ==

[[Image:maeFatMenu.png|thumb|200px|alt=Screenshot of maeFat Menu|Menu]]

The image to the right shows the maeFat menu. To enter data, select the Data Entry option.   The Log option allows you to edit entries which have already been entered. The Trend Analysis option displays statistics about the data which has been entered. The About You option allows you to enter personal information, such as your height, your target weight, etc.  The Plot Settings option allows you to control the main data plot, which shows your weight and BMI as a function of time.   The Fit Settings page allows you to define a time interval overwhich the program will do a linear least sqares fit to your weight data, in order to estimate the time at which you will meet your weight goal.   The Import/Export Data option allows you to write out or read in multiple weight-time data points. The Help option displays this page in the unit's web browser, and the About options shows a page containing copyright and other information about the program.   The Hacker Diet help button opens the Hacker Diet website in the browser (maeFat is very similar to the Hacker Diet &quot;Eat Watch&quot;).
{{clear}}

== Data Entry ==

[[Image:maeFatDataEntry.png|thumb|200px|alt=maeFat Data Entry|Data Entry]]

The Data Entry page allows you to enter new weight data. It does that without requiring you to use the N900's keyboard. It contains hildon Date and Time widgets preloaded with the current time and date. You can use these to change the time tag for the weight data you are entering, if you don't want to use the current time. The Weight widget is used to enter the weight. If no data has yet been entered, it will be preloaded with 150 pounds (unless you chosen metric units), otherwise it will be preloaded with the most recent weight entry. The comments widget allows you to tag the entry with an optional text comment. 
You must press the Enter This Value button, to put the data into your weight log.
If you press the arrow at the upper right corner (the normal way to exit a page) the new data will NOT be entered into the log. 

It is recommended that you not enter more than one weight entry per day, although the software allows you to do so if you wish to.
{{clear}}

== Settings ==

There are three pages which allow you to change how the program operates:

=== About You ===

[[Image:maeFatAboutYou.png|thumb|200px|alt=maeFat About You|About You]]

The About You page must be used at least once, to enter your height.
When you enter your height, you should select centimeter units if that's what you wish to use (rather than inches). You may also select metric units for weight.
You may also set a target weight, which can be displayed as a green line on the weight vs time plot, and which will be used to calculate when you will reach your goal.   You may set a target date, which will cause the Trend Analysis page to show how many more (or fewer) calories you must consume per day in order to meet your goal weight by the goal date.

You may specify whether your goal is to gain or lose weight.   That selection controls the colors shown in some plots and text boxes.   For example if your goal is to lose weight, and you are in fact losing weight, the rate of
weight change shown on the Trend Analysis page will be shown in green.   Otherwise it will be shown in red.

The Hacker Diet button controls the formula used to calculate the trend weight (see explanation below).   The Start With Data Entry button controls what is shown when the program begins running.   By default the weight vs time plot is shown, but if you check the Start With Data Entry the program will initialize on the page which allows you to enter a weight value, which can save a few menu navigation steps.

=== Plot Settings ===

[[Image:maeFatPlotSettings.png|thumb|200px|alt=maeFat Plot Settings|Plot Settings]]

The Plot Settings page controls the main weight vs time plot.   The Plot Target Weight checkbox controls whether or not your goal weight in shown on the plot.   The Plot Comments checkbox controls whether any comments you have entered along with your weight values get shown on the plot.  

By default, things which are usually considered bad, such as having a BMI in the obese range, are shown in red.   Good things, like losing weight when your goal is to lose weight, are shown in green.  The BMI color code is:

* '''Red''': Obese or Severely Underweight
* '''Yellow''': Overweight or Underweight
* '''Green''': Normal weight range

You can suppress all this color coding with the Nonjudgemental Colors checkbox.

The Plot Trend Line checkbox controls whether or not the exponentially weighted average weight value is shown on the plot.   The Plot Data Points checkbox controls whether or not your individual weight entries are plotted.

There is a set of three buttons which controls the format used to print dates throughout the program.

The next set of buttons control the time range for the plot.   If you select Plot Interval, you will be presented with a range of standard time intervals for the plot.   If, for example, you choose Plot Last Month, then all the data enterred in the last 30 days will be plotted. If you select Plot Date Range, you can set a custom time interval by specifying the starting and ending dates for the plot.   You can also specify just one date, and have the program plot all the data before or after that date.

The final set of buttons at the bottom of the page allows you to specify the time range used for the weight loss summary printed at the bottom of the plot.   By default the app calculates how much weight you've lost of gained during the last week, and uses that number for calculating the daily caloric deficit or excess.   These buttons allow you to change that interval.

=== Fit Settings ===

[[Image:maeFatFitSettings.png|thumb|200px|alt=maeFat Fit Settings|Fit Settings]]

The Fit Settings page allows you to specify a time range overwhich the program will perform a linear least squares fit to your data points.   This least squares fit will be used to estimate the time at which you will reach your goal weight.   This is shown on the Trend Analysis page.   Also, if you tell the program to plot your goal weight, the linear fit will also be shown on the plot, along with the slope which tells you how many pounds (or kg) per week you are losing or gaining.

{{clear}}

== Import/Export Data ==

[[Image:maeFatImportExport.png|thumb|200px|alt=maeFat Import/Export|Import/Export]]

The Import/Export page allows you to write out your weight log (Export) or read a new one in (Import).   You may select the format used by the Hacker Diet Online website, or a custom comma (or whitespace) separated list.  If you choose a custom format, you may specify which fields of the weight log are written/read, and in which order.   You must specify at least date and weight fields if you're reading in a custom format file.

Note that the Hacker Diet format does not contain a field for time of day, so the measurements will be treated as having been made at the time 00:00. 
{{clear}}

== Plot Page ==

[[Image:maeFatPlot.png|thumb|200px|alt=maeFat Plot|Plot]]

The program's default page shows a plot of the data you have entered, and a trend line.   The yellow trend line is the exponentially weighted running average of the weight data. The scale on the left of the plot is in the weight units you have chosen. On the right is shown the corresponding BMI values. The line at the bottom presents your current weight (from the trend line, not any particular data entry), the weight lost or gained over the last week (regardless of the plot interval) and the number of excess/deficit calories per day which will produce that weight change.

The nice thing about plotting the trend line is that it smooths out the fluctuations which inevitably will appear in your weight log, due to how recently you've eaten, the time of day when you weighed yourself, etc.   If you are losing or gaining weight, the trend line will drop or rise nearly monotonically, even if your daily measurements are quite noisy.
{{clear}}

== Trend Page ==

[[Image:maeFatTrends.png|thumb|200px|alt=maeFat Trend Page|Trend Page]]

The Trend Page shows statistical information about your weight data over differing time intervals. Initially, when little data is available, it will show only the values for the entire log history. Eventually data for the last week, fortnight (2 weeks), month (30 days), quarter (91 days) and year will be shown, when enough data is available to calculate those values.

If you have entered a goal weight and a goal date, the program will display how many more or fewer calories you must consume per day, in order to meet both of those goals.   

{{clear}}

=== Methods of Weight Trend Calculation ===
[[Image:maeFatFormulae.jpg|thumb|200px|alt=maeFat Trend Formulae| Trend Formulae]]

The trend line (shown in yellow on the Plot Page) and the trend values shown on the Trend Page are calculated using one of the two formulae shown on the right.
The Settings page allows you to chose which formula to use.   If you enter a weight value every day, the two formulae will give nearly identical results.   The difference between them appears if you have gaps in your weight log.   The Hacker Diet formula does not take elapsed time into account when calculating the trend.   So if you enter a weight after having not weighed yourself for a month, the Hacker Diet formula will give as much (mathematical) weight to the penultimate and earlier weight values as they would have had if you had no gap in your weight log.    The default formula used by maeFat takes the time interval into account, and will decrease the (mathematical) weight given to entries which were made long ago.   The Hacker Diet formula is less computationally expensive, so if you have a weight log with many thousands of entries, it will be faster to use the Hacker Diet formula, which will also save a tiny amount of battery power.


The weight values shown on the Trend Page are calculated with these formulae, and the caloric excess/deficit values are calculated using the difference in trend value over the specified interval, with the assumption that one pound of weight change corresponds to 3500 calories.
{{clear}}

== Estimating When You Will Reach Your Target Weight ==

[[Image:maeFatPlotGoal.png|thumb|200px|alt=maeFat Plot with Target and Fit|Plot with Target and Fit]]

If you have entered a target weight, and defined a fit interval (both may be set on the Settings Page), maeFat will estimate when you will reach your target weight, based on a linear least squares fit to your weight entries, over the time interval you have specified.   The estimated date (and exact time of day!) that you will reach your target weight will be displayed on the Trend Page.
In addition, if you select the Plot Target Weight option, the weight vs time plot will show the least squares fit to your data, and the point at which that line
will intersect your target weight (see plot to the right, for which all data after June 13, 2011 was used for the fit).   A grey vertical line is drawn at
the beginning of the fit interval.  All points to the right of that line were
used in the fit.
{{clear}}

== Editing the Log ==

[[Image:maeFatEditChooseMonth.png|thumb|200px|alt=maeFat Edit Choose Month Page|Edit Choose Month Page]]

If you select the Edit option, you will first be presented with a page containing a widget which allows you to select which month's data you wish to edit. This widget will be loaded with every month for which data is available.

[[Image:maeFatEditList.png|thumb|200px|alt=maeFat Edit List|Edit List]]

Once you have selected the month and have pushed the View Selected Month button, you will be presented with a page listing all the data entries for that month. The green weight values are the measurements that you have entered.  The yellow weight values are trend weights, calculated with one of the formulae shown above. If you press on one of these entries, you will be sent to the Data Entry page, which will be preloaded with the selected day's values, where you may change the values. You may also press the Delete button to remove the entry entirely.

If the month you chose to display contains more than 33 weight entries, the log display will be split across multiple pages.   Blue arrows will appear at the top of the page to allow you to navigate from page to page.
{{clear}}

== Data File Format / Entering Many Data Points ==

If you have a pre-existing weight log that you wish to enter, it will be very tedious to enter each point individually using the GUI interface. It makes much more sense to convert your weight log into the format maeFat uses using some external script. The data is kept in the file $HOME/.maeFat/data. A backup copy is kept on the microSD card (so that if you have to reflash the N900, your log won't be lost) in the file /media/mmc1/.maeFat/data . The data file is a flat text file, with one line per log entry, using the following format:

 DD/MM/YYYY HH:MM XXX.X # Optional comment here

where DD is the day of the month, MM is the number of the month, YYYY is the year, HH is the hour, MM is the minutes, and XXX.X is the weight. The weight should be in kgs or pounds depending on whether maeFat has been configured to display metric units or not. Any comment must be preceded by a #, but no # is needed for entries without a comment.

There is no need for you to load your data into the backup file, because it will be rewritten automatically once any data is entered or edited with the program's GUI.

== Entering Weights Outside the Default Range ==

When the program is first run, it has no way of knowing what the proper range is for the weight selector widget on the Data Entry page. The weight selector is initially loaded with weight values from 50 to 250 pounds (or 23 to 113 kg, if metric units have been selected). If you wish to enter an initial weight which falls outside of that range, you can just use a text editor to edit the &lt;code&gt;/media/mmc1/.maeFat/data&lt;/code&gt; file, with the format described above, to enter your initial weight. After the first value has been entered, the weight selector will display a range of weights near that value when the Data Entry page is displayed, so only the first value will need to be entered with the text editor.

== Availability ==

maeFat is available in the Extras Devel repository.   The source code is hosted on github.

== Support Information ==

If you have questions, comments or requests concerning this program, please send them to [mailto:orrery.moko@gmail.com orrery.moko@gmail.com].   maeFat uses the official Maemo bugzilla for bug tracking.

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>MaeLyrica/How to write plugins</title>
    <id>5226</id>
    <revision>
      <id>49191</id>
      <timestamp>2012-08-23T08:09:19Z</timestamp>
      <contributor>
        <username>marmistrz</username>
        <id>4691</id>
      </contributor>
      <comment>/* Requirements for functions */</comment>
      <text xml:space="preserve">== How to write a plugin for MaeLyrica? ==
=== What is a MaeLyrica plugin? ===
A MaeLyrica plug-in is a class inheriting a lyricsDownloader class

=== Which data should be provided? ===
A MaeLyrica plug-in is just a class containing these functions and variables:

    virtual std::string toProviderCode(string artist, string track) const;
    virtual bool parse();

The following function can be provided too:
    virtual short perform(string a, string t);
    virtual CURLcode download(string a, string t); 

=== Requirements for functions ===
==== toProviderCode ====
The toProviderCode function should return the URL as std::string, from which data should be downloaded. The default download function will follow any redirects.

==== parse ====

The parse function should save the plain text lyrics to variable
    QString lyrics_qstr;
which is a member of lyricsDownloader

The non-parsed text downloaded by the default download function is available in a variable, a member of lyricsDownloader
    std::ostringstream buff</text>
    </revision>
  </page>
  <page>
    <title>MaeMeeMo</title>
    <id>5107</id>
    <revision>
      <id>49012</id>
      <timestamp>2012-08-09T20:54:38Z</timestamp>
      <contributor>
        <username>sifo</username>
        <id>5350</id>
      </contributor>
      <comment>/* How to setup the rest of layout */</comment>
      <text xml:space="preserve">== Installing Maemeemo ==
At first you need [https://wiki.maemo.org/Extras-devel extras-devel] repository enabled in your application manager then simply install maemeemo from it or via this commands in terminal ( rootsh needed ) :
 sudo gainroot
 apt-get install maemeemo
if you got an error message like ( could not find package maemeemo ) then you need to make sure you have an updated package list, you can update it by the application manager or this commands if you are using HAM ( hildon application manager ) to install packages :
 sudo gainroot
 apt-get update

when choosing maemeemo to be installed a few dependencies will be installed with it such as the new Harmattan theme called &quot;maemeemo-theme&quot; and other packages.


Please note that CSSU-Testing is needed for maemeemo and it is in dependencies.


== How to configure ==

=== How to setup the transitions.ini ===

Install rootsh or sudser. Rootsh example will be user there, but with sudser you just need not to use sudo gainroot but sudo before every mv or cp command

 sudo gainroot
 cd /usr/share/hildon-desktop
 mv transitions.ini transitions.ini-prem3
 mv transitions.ini.maemeemo transitions.ini

If you needed to restore the maemeemo transitions.ini in case it gets corrupt, its copy is in /opt/maemeemo/

=== How to setup the rest of layout ===


==== Wallpapers ====


In the latest version 1.4 there is no wallpapers in MyDocs partition it is now included in maemeemo-theme, old and new wallpapers can be found in /opt/maemeemo/ 


Note: If the Portrait wallpapers function doesn‟t work for you, you will only have portrait or landscape functionality according to the wallpaper set by you.
==== Settingup the Qtlockscreen ====


Open QtLockscreen-Configuration App and set [MaeMeeMo Slide lockscreen or Nemo Lockscreen or Nemo-MaeMeeMo lockscreens or the new one MaeMeeMo 1.4 lockscreen.] [As per your choice]

==== Setiingup thenme and icons  ====


Open Settings&gt;[http://talk.maemo.org/showthread.php?t=62960 Theme customizer] and set maeemo-theme, Harmattan-icons-pack-for-white-themes, and select font “Nokia Pure” or “SwissW” (optional) font as per your preference and check the size of App Shortcuts is at “100”, and Menu Bar visibility is „0‟ [Zero]. [Check screenshots in ThemeCustomizer.rar if needed]</text>
    </revision>
  </page>
  <page>
    <title>Maemian</title>
    <id>1937</id>
    <revision>
      <id>46893</id>
      <timestamp>2012-03-05T16:20:39Z</timestamp>
      <contributor>
        <ip>213.167.203.149</ip>
      </contributor>
      <comment>/* Maemian - The maemo policy checker */</comment>
      <text xml:space="preserve">== Maemian - The maemo policy checker ==

This is the wiki page for Maemian, the maemo policy checker. Maemian is designed to check maemo packages for policy compliance like Debian's lintian does. The purpose is to try and improve the quality of packages, and therefore the user experience, of Maemo software. Maemian is designed to follow [[Packaging/Guidelines|packaging policy as defined by Maemo]] which means that the community is encouraged to participate in its design and functionality. 

Currently, Maemian is a straight port of linitan from debian. As such, it has limited use since maemo is not debian and has different needs and policy. Work is underway to convert lintian to Maemian however, and anyone interested is encouraged to join the project. [https://garage.maemo.org/projects/maemian/ The garage page] for Maemian shows some information on the project and how to get involved. You can also [https://git.maemo.org/projects/maemian/gitweb?p=maemian browse the git repository] or clone it and start hacking if you wish.

The first step in getting Maemian running is for me to create a small version of Maemian that we can hook into the QA scripts already running on garage. That small version is called minimae. It looks at a recently uploaded package and produces a report in the summary log.

== Proposed checks for Maemian ==

* does the package -actually- insert into a [[Nokia N900|N900]] chroot

[[Category:Packaging]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo</title>
    <id>232</id>
    <revision>
      <id>41469</id>
      <timestamp>2011-01-27T15:42:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>recategorize</comment>
      <text xml:space="preserve">What ''is'' Maemo? How does one define Maemo? Today it is explained at http://maemo.org but tomorrow could be something different, evolved. Join the [[Task:Defining maemo]] and make it happen.

[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo-Barcelona Long Weekend</title>
    <id>2915</id>
    <revision>
      <id>39674</id>
      <timestamp>2010-10-25T07:34:23Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/92.249.101.64|92.249.101.64]] ([[User talk:92.249.101.64|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">&lt;center&gt;[[Image:MaemoBCN_back_white.png]]&lt;/center&gt;

A call to all Maemo, Linux and open source lovers:

 Maemo-Barcelona Long Weekend
 December 4-6 @ http://citilab.eu - Check [http://maemo.org/news/events/maemo-barcelona_long_weekend/ who is coming]
 Follow on Twitter: [http://twitter.com/#search?q=%23maebar #maebar]
 Event @ [http://events.linkedin.com/Maemo-Barcelona-Long-Weekend/pub/163544 Linkedin], [http://www.facebook.com/event.php?eid=181221688634 Facebook]

&lt;div style=&quot;font-size: 18px; background-color: #afa; padding: 18px; border: 1px #171 solid; text-align: center;&quot;&gt;Registration is '''free''', but '''mandatory''' for planning purposes: '''[http://maemo.org/news/events/registrations/ REGISTER NOW]'''&lt;/div&gt;


[http://talk.maemo.org/showthread.php?t=34390 We will raffle one N900 on a 1 year loan for every 50 participants registered]


Everything started willing to organize a '''UX meets Code''' hackfest. Then some local supporters asked about the possibility of having more activities around. Now the schedule is all yours / toda vuestra / tota vostra. See below.

Join the discussion: http://talk.maemo.org/showthread.php?p=364433

== Agenda ==
Work in progress @ [[Maemo-Barcelona Long Weekend/Agenda|Agenda]]

=== Presentación N900 &amp; Maemo 5  ===
Estamos preparando una serie de actividades para usuarios, desarrolladores y medios interesados en Maemo 5 y la Nokia N900. Esperamos concretar la agenda en los próximos días pero lo que es seguro es que vamos a concentrarlo todo en el Viernes 4.

=== Formación para programadores ===
Trae tu portátil y ganas de aprender. Estamos preparando una agenda para los tres días combinando Hildon/GTK+ y Qt con niveles básico y medio. Todo bastante informal, flexible y coordinado por desarrolladores con experiencia práctica. '''[[Maemo-Barcelona_Long_Weekend/Formación|MÁS]]'''

=== UX meets Code ===

About 50 community developers and user experience professionals work together during 3 days. '''[[Maemo-Barcelona_Long_Weekend/UX_meets_Code|MORE]]'''

=== Documentation ===

There will be a Documentation workshop in Barcelona, where we will discuss the needs of user and developer documentation during a half day, and have a &quot;docfest&quot; to work on a specific wiki task for another half day. [[/Documentation | MORE]]

=== Localization ===
Barcelona is a great place to discuss about localization, with a multilingual setting and an excellent track of free software L10n projects pushed by local communities.

Let's work towards the [[Objective:Community_localization|2010 Objective Community localization]].

If there is enough local interest we could organize practical L10n activities taking Catalan as a test case.

'''[[Maemo-Barcelona Long Weekend/Localization|MORE]]'''

== Llamada a las organizaciones locales ==
Hacemos una llamada a todas las organizaciones locales interesadas en software libre con un interés potencial en Maemo. Mozilla, GNOME, KDE, Hispalinux, Softcatalà, Debian, LUGs, CreativeCommons... Lista no exhaustiva.

Tenemos un modesto presupuesto para esponsorizar viaje y alojamiento de destacados desarrolladores o representantes de proyectos de software libre. Si te interesa regístrate y solicita esponsorización.

== Sponsored participants ==
We have some budget to sponsor the travel and accommodation of selected maemo.org contributors. If you want to request sponsorship do it when registering.

Sponsored participants need to arrange their trip with the travel agency. You will receive the information in the email with the sponsorship approval.

=== Accomodation ===

We have booked 15 double rooms for the accommodation at [http://www.nh-hotels.com/nh/en/hotels/spain/barcelona/nh-cornella.html NH Cornellà].

If you're a sponsored participant please add your name to the [[/Accommodation | Shared Room Allocations]] table.

If you live in Barcelona and are willing to host people, feel free to add your name to the [[/Hosting_in_Barcelona | Hosting in Barcelona]] page.

'''How to get from the Hotel NH to Citilab.eu:''' http://is.gd/4UY7Y

=== Travel ===

It is good to know when people are arriving and departing. If you want to coordinate with other participants please add your name to the [[/Travel | Travel]] table. Please share also the best options to go from the airport to the hotel.

=== T-shirts ===

{{main|/Merchandising and printing}}

== Participants ==

&lt;div style=&quot;font-size: 18px; background-color: #afa; padding: 20px; border: 1px #171 solid; text-align: center;&quot;&gt;The wiki list of participants is now obsolete.&lt;br&gt;
'''Please register for this event at the [http://maemo.org/news/events/registrations/ registration page]!'''&lt;br&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;(You need to register even if you have put your name in this list previously!)&lt;/span&gt;&lt;/div&gt;

[[Category:Maemo-Barcelona Long Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo-Barcelona Long Weekend/Accommodation</title>
    <id>3011</id>
    <revision>
      <id>29097</id>
      <timestamp>2010-02-11T16:27:40Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo-Barcelona Long Weekend]]</comment>
      <text xml:space="preserve">We have booked 15 double rooms for the accommodation at [http://www.nh-hotels.com/nh/en/hotels/spain/barcelona/nh-cornella.html NH Cornellà].


== Shared Room Allocations ==

* '''If you would like to share a double room with someone, please add your name to the table below.'''
* If you find yourself rooming with someone who's not your best choice, just remove yourself from the room and add it somewhere else. '''''No hurt feelings please. This will all work out.'''''

* '''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.'''

{| class=&quot;wikitable sortable&quot;
|- style=&quot;background-color: #eef&quot;
! Room #
! Roommate 1
! Roommate 2
! Special Notes/Considerations
|-
| 1
| [http://maemo.org/profile/view/vdvsx/ Valério Valério]
| [http://maemo.org/profile/view/generalantilles/ Ryan Abel]
|
|-
| 2
| [http://maemo.org/profile/view/yerga/ Daniel Martin Yerga]
| [http://maemo.org/profile/view/andy80/ Andrea Grandi]
| yerga needs to count sheep to sleep.
|-
| 3
| [http://maemo.org/profile/view/avalon84/ Ignacio Garcia]
| 
| 
|-
| 4
| [http://maemo.org/profile/view/thp/ Thomas Perl]
| [http://maemo.org/profile/view/tomaszd/ Tomasz Dominikowski]
| 
|-
| 5
| [http://maemo.org/profile/view/conny/ Cornelius Hald]
| [http://maemo.org/profile/view/mikhas/ Michael Hasselmann]
| 
|-
| 6
| [http://wouwlabs.com/blogs/jeez/ Jesus Sanchez-Palencia]
| [http://maemo.org/profile/view/allsomm/ Allysson Santos]
| 
|-
| 7
| [http://maemo.org/profile/view/framstag/ Tim Teulings]
|
|
|-
| 8
|[http://maemo.org/profile/view/revdkathy/ Kathy Smith]
| 
| 
|-
| 9
| [http://maemo.org/profile/view/alup/ Andreas Loupasakis]
| 
|  
|-
| 10
| [http://maemo.org/profile/view/anidel/ Aniello Del Sorbo]
| [http://maemo.org/profile/view/samantha/ Samantha Baldini]
|
|-
| 11
| [http://maemo.org/profile/view/patifa/ Patricia Montenegro]
|
| 
|-
| 12
| [http://maemo.org/profile/view/lbt/ David Greaves/lbt]
| [http://maemo.org/profile/view/lcuk/ Gary Birkett]
| 
|-
| 13
| [http://maemo.org/profile/view/pycage/ Martin Grimme]
| 
| 
|-
| 14
| [http://maemo.org/profile/view/joravasal/ Jorge Avalos Salguero]
| [http://maemo.org/profile/view/korosu_itai/ Alejandro Blanco Escudero]
| 
|-
| 15
| [http://maemo.org/profile/view/pasarela/ Ruben Yedra]
| [http://maemo.org/profile/view/sebas/ Sebastian Colomar]
|
|}


*'''Please don't add more lines in the table, we only have 15 rooms booked'''


[[Category:Maemo-Barcelona Long Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo-Barcelona Long Weekend/Agenda</title>
    <id>3042</id>
    <revision>
      <id>29101</id>
      <timestamp>2010-02-11T16:28:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo-Barcelona Long Weekend]]</comment>
      <text xml:space="preserve">
== Friday 4 ==

=== Agenda ===

On Friday, attendees interested in documentation and on improving the user experience of their applications are invited to attend UX meets Code, to learn in a hands on manner about improving mobile concepting, persona creation and the importance of design documentation.

{| class=&quot;wikitable&quot; border=&quot;2&quot;
|-
! Time
! Auditorium
! Formación
! UX meets Code/Documentation
! Localization
|-
| align=&quot;right&quot; | 9.00  
| colspan=&quot;4&quot; align=&quot;center&quot; | Acreditación con buen café (o té etc) 
|- 
| 10.00 - 10.30 
| align=&quot;center&quot; | '''Benvinguts, Bienvenidos, Welcome'''&lt;br/&gt;''Quim Gil, Maemo Devices @ Nokia''&lt;br/&gt; 
| rowspan=&quot;2&quot; colspan=&quot;3&quot; align=&quot;center&quot; | 
|- 
| 10.30 - 11.30 
| align=&quot;center&quot; | '''Keynote: José Luis Martínez, VP, Marketing @ Nokia''' 
|- 
| 11.30 - 12.00
| colspan=&quot;4&quot; align=&quot;center&quot; | Más café (o té etc)
|- 
| 12.00 - 12.30 
| colspan=&quot;2&quot; align=&quot;center&quot; | [http://open.movilforum.com/ Open movilforum] &amp; Maemo &lt;br/&gt;''Jose A. Vallés'', Head of Open Telefonica
| The Basics of Concepting
''Jan Krebber''
| Start
|- 
| 12.30 - 13.00 
| colspan=&quot;2&quot; align=&quot;center&quot; | [http://mozilla.org Mozilla] &amp; Maemo''&lt;br/&gt;[https://wiki.mozilla.org/User:Toniher Toni Hermoso], Mozilla project.
| 
| 
|- 
| 13.00 - 13.30 
| colspan=&quot;2&quot; align=&quot;center&quot; | Qué ofrece [http://maemo.org maemo.org]
| Workshop: Focus on Liqbase Calendar, Video Editor
| 
|- 
| 13.30 - 14.00 
| colspan=&quot;2&quot; align=&quot;center&quot; | Qué ofrece [http://forum.nokia.com/maemo Forum Nokia]
| 
| 
|- 
| 14.00 - 15.00 
| colspan=&quot;4&quot; align=&quot;center&quot; | '''La Hora de Comer''' Citilab Catering
|- 
| 15.00 - 15.30 
| rowspan=&quot;6&quot; valign=&quot;middle&quot; align=&quot;center&quot; | '''Estrénate con la N900'''&lt;br&gt;Presentación, demos y un buen rato para familiarizarse con ella.
| Información General 

''Quim Gil''
| Breakout groups: Concepting your apps
| 
|- 
| 15.30 - 16.00 
| [http://people.igalia.com/berto/files/maemo5-barcelona.pdf Interfaz de usuario en Maemo 5]

''[http://maemo.org/profile/view/agarcia/ Alberto Garcia]''
| 
|
|- 
| 16.00 - 16.30 
| rowspan=&quot;2&quot; | Introducciones básicas a varias tecnologías: 
[http://proli.net/meu/talks/qtintro-maemolw.pdf Qt] ''Aleix Pol''


| 
|
|- 
| 16.30 - 17.00 
| 
|
|- 
| 17.00 - 17.30 
| [http://proli.net/meu/talks/kde-maemolw.pdf KDE]

''Aleix Pol''
| 
|
|- 
| 17.30 - 18.00 
| UI from a broken home: The relationship between developers and designers 

''Patricia Montenegro''
| 
|
|- 
| 18.00 - ??.?? 
| colspan=&quot;2&quot; | Setting up the development environment in preparation for the weeken's training
| 
|
|-
| ??.??:-
| colspan=&quot;4&quot; align=&quot;center&quot; | '''Festa Fiesta Party''' (On?)
|}

== Saturday 5 ==
'''UX Meets Code: Focus on Graphics'''
The UX Meets Code track on Saturday will concentrate on how to create the best graphics for your maemo application and cover such concepts as optimization, iconography and layouts.  The beginning of the day focuses on core concepts, followed by intense workshopping and working on individual projects.

=== Trainings Overview ===
'''Qt on Maemo Training:''' Qt is a cross-platform application framework from Nokia. It is the framework from KDE and will be the future of Maemo and all Nokia Symbian devices.
On this training we will cover both sides of Qt: the QWidget family and the QGraphicsView family (its canvas), besides some of the new Qt 4.6 API's.
The whole training will be fully hands-on, covered by examples, and in the end the audience will have 2hrs to develop their first Qt (fancy) application for Maemo, based on a preset of images, concepts and ideas from the openBossa designers.
Let's hack! &lt;br&gt;
Needed stuff: a computer with the latest Qt 4.6 SDK available :) (Qt 4.6 is finally available at: http://qt.nokia.com/downloads), and the Maemo5 SDK.

'''First steps to GTK (Hildon):''' 

Introduction to GTK for C programmers,    how to write a &quot;Hello world&quot; app, how to create a window, add some   buttons, ... and how the GTK/Hildon toolkit works overall.

=== Agenda ===
{| class=&quot;wikitable&quot; border=&quot;2&quot;
|-
! Time
! Formación
! UX meets Code
! Documentation
! Localization
|-
| align=&quot;right&quot; | 8.30 - 9.00  
| colspan=&quot;3&quot; align=&quot;center&quot; | '''Acreditación con buen café (o té etc)'''
|- 
| 9.00 - 11.00 
| align=&quot;center&quot; width=&quot;300&quot; | '''Qt on Maemo'''&lt;br/&gt;''Jesus Sanchez-Palencia (OpenBossa)&lt;br/&gt; Aleix Pol (KDE)'' 

'''[http://proli.net/meu/talks/qtpres-maemolw.pdf Introduction and What is Qt?]'''&lt;br/&gt;
'''Hands-on Examples''': a more complete hello world, phonon, extending Qt

'''QGraphicsView''': introduction, &lt;br/&gt; QGraphicsScene, items, widgets, very simple example 

| 
| Maemo documentation brainstorming session. ''Mary Nurminen, Titta Väyrynen''
| Start
|- 
| 11.00 - 11.15
| colspan=&quot;4&quot; align=&quot;center&quot; | '''Más café (o té etc)'''
|- 
| 11.15 - 13.00
|'''Primeros pasos con GTK (y Hildon)'''&lt;br/&gt;
''[http://maemo.org/profile/view/agarcia/ Alberto Garcia]''
&lt;br /&gt;

'''Demo: mi primer desktop widget'''&lt;br/&gt;
''[http://maemo.org/profile/view/marcoil/ Marc Ordinas i Llopis]''
| align=&quot;center&quot; | Graphics and Maemo apps ''Ulla Niemelä''
| align=&quot;center&quot; | Maemo documentation brainstorming session continued ''Mary Nurminen, Titta Väyrynen''
| align=&quot;center&quot; | Continuación
|- 
| 13.00 - 14.00 
| colspan=&quot;4&quot; align=&quot;center&quot; | '''La Hora de Comer''' 
|- 
| 14.00 - 16.00
| '''QGraphicsLayouts''': Grid, Linear and the &lt;br/&gt;
brand new AnchorLayout

'''Webkit''': introduction to webkit, an 
example using webkit (webview, webelement) and anchorlayout + Hands-on

'''State Machine and Animation API's''': intro to State Machine, intro to Animations (vs QTimeLine), an example + Hands-on
| align=&quot;center&quot; | Workshop: Focus on gPodder, MaStory
| align=&quot;center&quot; | Maemo Wiki hackfest: Frequently Asked Questions ''Dave Neary''
| align=&quot;center&quot; |   
|- 
| 16.00 - 16.15
| colspan=&quot;4&quot; align=&quot;center&quot; | '''Más café (o té etc)'''
|- 
| 16.15 - 18.00 
|'''SDK &amp; Developer tools'''&lt;br/&gt;''Daniel Wilms'' &lt;br/&gt;


'''Porting GNOME applications to Maemo 5'''&lt;br/&gt;''Felipe Erias''
&lt;br/&gt;

+ more

| align=&quot;center&quot; | Breakout groups: Improving the graphics on your apps
| align=&quot;center&quot; | Maemo Wiki hackfest: Beginner Material ''Dave Neary''
| align=&quot;center&quot; | Continuación 
|-
| ??.??:-
| colspan=&quot;4&quot; align=&quot;center&quot; | '''Tapas!''' 
|}

== Sunday 6 ==
'''UX Meets Code: Focus on Interaction Design and Usability'''
The UX Meets Code track on Sunday will focus on Interaction Design and basic concepts such as flow and prototyping.  The beginning of the day focuses on core concepts, followed by intense workshopping and working on individual projects.

=== Trainings Overview ===
Continuation of the courses started on Saturday

=== Agenda ===

{| class=&quot;wikitable&quot; border=&quot;2&quot;
|-
! Time
! Formación
! UX meets Code
! Documentation
! Localization
|-
| align=&quot;right&quot; | 8.30 - 9.00  
| colspan=&quot;3&quot; align=&quot;center&quot; | '''Acreditación con buen café (o té etc)'''
|- 
| 9.00 - 11.00 
| width=&quot;300&quot; | '''Qt Hands-on hacking session:''' developing a more complex example (or your first app) using some of the new Qt 4.6 API's

| Interaction and Usability ''Kirsi Rönkko''
| Start
| Start
|- 
| 11.00 - 11.15
| colspan=&quot;4&quot; align=&quot;center&quot; | '''Más café (o té etc)'''
|- 
| 11.15 - 12.00
|'''Hacking with the experts'''
| align=&quot;center&quot; | Workshop: Focus on Mapper and Xournal
| align=&quot;center&quot; | Continuación
| align=&quot;center&quot; | Continuación
|- 
| 12.00 - 13.00
|'''Hacking with the experts'''
| align=&quot;center&quot; | Improve the Interaction Design and Usabilty of your app 
| align=&quot;center&quot; | Continuación
| align=&quot;center&quot; | Continuación
|- 
| 13.00 - 14.00 
| colspan=&quot;4&quot; align=&quot;center&quot; | '''La Hora de Comer''' (comida no incluída)
|- 
| 14.00 - 15.00
| '''Hacking with the experts'''
| align=&quot;center&quot; | Continuación
| align=&quot;center&quot; | Continuación
| align=&quot;center&quot; | Continuación
|- 
| 15.00 - 16.00 
|'''Hacking with the experts'''
| align=&quot;center&quot; | Continuación
| align=&quot;center&quot; | Continuación
| align=&quot;center&quot; | Continuación 
|- 
| 16.00 - 16.15
| colspan=&quot;4&quot; align=&quot;center&quot; | '''Más café (o té etc)'''
|- 
| 16.15 - 18.00 
| '''Hacking with the experts'''
| align=&quot;center&quot; | Continuación
| align=&quot;center&quot; | Continuación
| align=&quot;center&quot; | Continuación 
|-
| ??.??:-
| colspan=&quot;4&quot; align=&quot;center&quot; | '''Tapas!''' 
|}

[[Category:Maemo-Barcelona Long Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo-Barcelona Long Weekend/Documentation</title>
    <id>3032</id>
    <revision>
      <id>29102</id>
      <timestamp>2010-02-11T16:29:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <text xml:space="preserve">= Documentation workshop =

'''This wiki page is complemented by [http://talk.maemo.org/showthread.php?t=34605 this discussion thread]'''

A Documentation workshop was held as part of the Maemo Long Weekend in Barcelona. The needs of user and developer documentation for maemo.org were discussed during a half day, and have a &quot;docfest&quot; to work on a specific wiki task for another half day.

Just now our minds are being boggled by questions on Maemo documentation. Things like: what kind of info is needed, by what kinds of users, how should it be structured so that everyone finds what they need, what's the easiest way for you to add information, questions, answers, etc? How can we get more and better info onto maemo.org, how can we get beginners up and running in the quickest way possible? What questions are boggling your mind? Where do you look for answers?

And most of all: how should Maemo documentation be produced in the future? How can we ensure that community participation in documentation writing and maintenance continues to be possible?

Join us to brainstorm on this important area!

In addition, we are asking people for short interviews on their exepriences with Maemo documentation throughout the weekend. This involves chocolate!


== Schedule ==

; Friday 4th December
: Attend UX meets Code sessions, and find out expectations developers have of Maemo developer documentation
: Participate in discussions of UX documentation

; Saturday 5th December
: '''Morning:'''
: Brainstorming session, around the following core goal - how can we structure Maemo documentation and infrastructure to best facilitate work on Maemo? This question leads to others:
:* What do Maemo developers expect from documentation on maemo.org?
:* What do community documentation contributors expect from infrastructure?
:* What are the various roles of maemo.org and wiki.maemo.org?
:* How can we ensure that the Maemo wiki grows in a healthy way?
:* Should the focus of efforts be on writing new material or on cleaning up existing material?
:* What are the main places where newcomers look for information?
:* Where do more experienced Maemo community members go for information?


: '''Afternoon:'''
: Working session to improve some content in the wiki and on maemo.org.
:* Consolidate and improve FAQs
:* Improve navigation to wiki from maemo.org &amp; within wiki
:* Work on maemo.org/intro as an introduction &amp; filter page for new Maemo visitors
; Sunday 6th December
: '''Morning:'''
: Continue workshop from Saturday, or participate in [[../UX meets Code | UX meets Code]] workshop (to be decided)

== Participants ==
* [http://maemo.org/profile/view/sebas/ Sebastián Colomar] - Maemo Wiki volunteer

== Notes ==

=== Dave Neary ===

'''Shortcomings'''

* Need aggregation pages which give you a summary of everything to do
with X - link collections.
* Search on maemo.org sucks for finding answers to questions. Straight
Google search works better.
* Need to be able to link directly to the user guide &amp; style guides from
the wiki. Need to be able to link to sections
* Intro does not serve any of maemo.org target audiences
* Search bar on maemo.org isn't very obvious on Support or Development
* No obvious way to navigate to a list of all applications à la Nokia's
&quot;community applications&quot; page

'''Gap analysis'''
* Need help! (Support page) (Improved, but needs more work)
* Page(s) pointing to code samples with a description of what they do -
links need to be in developer guide too
* Signposting - sites, roles, when are we in a wiki, when are we not?

'''Concrete results'''
* [http://maemo.org/support Support page]
* [[Contributing to the wiki]] guide
* [[Developer Guide table of contents]] sketch

[[Category:Maemo-Barcelona Long Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo-Barcelona Long Weekend/HostingInBarcelona</title>
    <id>3013</id>
    <revision>
      <id>22606</id>
      <timestamp>2009-11-13T14:59:51Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <comment>[[Maemo-Barcelona Long Weekend/HostingInBarcelona]] moved to [[Maemo-Barcelona Long Weekend/Hosting in Barcelona]]: No CamelCase please :P</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo-Barcelona Long Weekend/Hosting in Barcelona]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo-Barcelona Long Weekend/Hosting in Barcelona</title>
    <id>3012</id>
    <revision>
      <id>29098</id>
      <timestamp>2010-02-11T16:28:04Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo-Barcelona Long Weekend]]</comment>
      <text xml:space="preserve">Simply edit the page and add your name and a means to be contacted.
If someone coming to Barcelona is looking at a very cheap way of staying in Barcelona, he may contact you for arrangements.

Thank you!

* People willing to host

{| class=&quot;wikitable sortable&quot;
|- style=&quot;background-color: #eef&quot;
! Name !! Nick !! class=&quot;unsortable&quot; | How many people !! class=&quot;unsortable&quot; | Coming from || Comments / Comentarios / Comentaris
|-
| Name Last Name || [http://maemo.org/profile/view/nick &lt;Nick&gt;] || &lt;number&gt; || &lt;city&gt;,&lt;country&gt; || &lt;comments&gt;
|-
|}

* People looking for a host

{| class=&quot;wikitable sortable&quot;
|- style=&quot;background-color: #eef&quot;
! Name !! Nick !! class=&quot;unsortable&quot; | How many people !! class=&quot;unsortable&quot; | Coming from || Comments / Comentarios / Comentaris
|-
| Aniello Del Sorbo || [http://maemo.org/profile/view/anidel Anidel] || 2, me and girlfriend || London, UK || [http://www.couchsurfing.org/profile.html?id=1LNMEJU CS profile]
|-
|}

[[Category:Maemo-Barcelona Long Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo-Barcelona Long Weekend/Localization</title>
    <id>3086</id>
    <revision>
      <id>41210</id>
      <timestamp>2011-01-20T13:18:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Result */ add PDF link</comment>
      <text xml:space="preserve">This wiki page is a complement of [http://talk.maemo.org/showthread.php?p=395595 this discussion thread]

Just some brainstorming here. Feel free to add/modify/remove :)

* For Developers
** How to enable localization in your application (for different languages)
** How to write good strings (singular, plural, format strings, ...)
** What to avoid when writing strings (positional arguments, ...)
** How to enable Transifex submissions into your SCM repository
* For Translators
** How to get started / i18n basics
** Translation best practices / common pitfalls
** How to test your translations on the device
** How to commit translations using Transifex
** Available tools
** How to translate packages name and description
* Translators meet Developers
** Goal: Complete translations into Spanish/Catalan/... of community applications by the end of the weekend
* Translators meet Maemo
** [[Objective:Community localization]]

== Result ==
The result of the workshop was the [[Community_localization|Community Localization System]]. See also [[:Image:L10n.pdf|a PDF of notes from the workshop]].

== Participants ==

* [http://maemo.org/profile/view/noguer/ Joaquim Perez]
* [http://maemo.org/profile/view/mdamt/ Mohammad Anwari]
* [http://maemo.org/profile/view/papapep/ Josep Sanchez Mesegue]
* [http://maemo.org/profile/view/gforcada/ Gil Forcada]
* Andreas Loupasakis (Transifex)
* Cornelius Hald
* Eduard Pertinez

[[Category:Maemo-Barcelona Long Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo-Barcelona Long Weekend/Merchandising and printing</title>
    <id>3054</id>
    <revision>
      <id>41577</id>
      <timestamp>2011-02-02T11:27:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wkify slightly</comment>
      <text xml:space="preserve">== Maemo-Barcelona Long Weekend Artwork &amp; Design ==

SVG files:
* [[:Image:MaemoBCN_front_white.svg|Maemo Barcelona front white]]
* [[:Image:MaemoBCN_back_white.svg|Maemo Barcelona back white]]
* [[:Image:MaemoBCN_frontback_blue.svg|Maemo Barcelona front &amp; back blue]]

Preview:
* [[Image:MaemoBCN_front_white.png|Maemo Barcelona front white]]
* [[Image:MaemoBCN_back_white.png|Maemo Barcelona back white]]
* [[Image:MaemoBCN_frontback_blue.png|Maemo Barcelona front &amp; back blue]]

[[Category:Maemo-Barcelona Long Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo-Barcelona Long Weekend/Travel</title>
    <id>3035</id>
    <revision>
      <id>29100</id>
      <timestamp>2010-02-11T16:28:30Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo-Barcelona Long Weekend]]</comment>
      <text xml:space="preserve">It is good to know when people are arriving and departing. You might want to coordinate with other participants.

=== Traveling to/from the Barcelona airport to/from the [http://www.nh-hotels.com/nh/en/hotels/spain/barcelona/nh-cornella.html NH Cornellà] hotel ===

Please share the best options to go from the airport to the hotel. 


* Taxi approx € 20
* Aerobus (every 6 minutes, € 5 from T1 or 4.25 from T2) to Placa Catalunya, there take Rodalies/Cercanies 4 to Cornella (direction St Vicenc de Calders)
* Train from airport (every 30 minutes) to Sants Estacio, there take Rodalies/Cercanies 4 to Cornella (direction St Vicenc de Calders) or Metro Line 5 to Cornella (last stop and slower than Rodalies/Cercanies)

== Arrival ==

'''Please keep it in chronological order!'''

=== Thursday 3 ===

{| class=&quot;wikitable&quot; border=&quot;2&quot;
! Time
! Name
! Place of arrival
! Means of transport
! Notes
|-
| 13:25
| [[User:revdkathy | Kathy Smith]]
| Barcelona airport
| Flight 6025 from Bristol UK
| 
|-
| 14:55
| [[User:tomaszd | Tomasz Dominikowski]]
| Barcelona airport
| Flight LH 4454 From Frankfurt, DE
|
|-
| 14:55
| [[User:conny | Cornelius Hald]]
| Barcelona airport
| Flight LH 4454 From Frankfurt, DE
|
|-
| 16:05
| [[User:mikhas | Michael Hasselmann]]
| Barcelona airport Terminal T2
| Flight AB 7526 from Palma Mallorca, ES
|
|-
| 16:05
| [[User:sebas | Sebastian Colomar]]
| Barcelona airport Terminal T1
| Flight IB 8833 from Valencia, ES
| Hi Michael, maybe we could share a taxi or travel together by bus/metro/train :-)
|-
| 16:55
| [[User:dneary | Dave Neary]]
| Barcelona airport
| Flight AF 5898 From Lyon, FR
|
|-
| 18:00
| [[User:alup | Andreas Loupasakis]]
| Barcelona airport Terminal T1
| Flight IB 5767 from Athens, GR
|
|-
| 18:50
| [[User:framstag | Tim Teulings]]
| Barcelona airport
| Flight 4U526 from Colone/Bonn, DE
|
|-
| 18:50
| [[User:lcuk | Gary Birkett]]
| Barcelona airport T1
| Flight KL 1675 from Amsterdam, NL
|
|-
| 19:00
| [[User:vdvsx | Valério Valério]]
| Barcelona airport
| Flight TP 752 From Lisbon, PT
|
|-
| 19:35
| [[User:yerga | Daniel Martin Yerga]]
| Barcelona airport
| Flight IB 5619 from Asturias, ES
|
|-
| 21:15
| [[User:anidel | Aniello Del Sorbo]]
| Barcelona airport
| Flight EZY5139 from London Gatwick, UK
| Martin, let's share that taxi! I've PMed you.
|-
| 21:15
| [[User:samantha | Samantha Baldini]]
| Barcelona airport
| Flight EZY5139 from London Gatwick, UK
| 
|-
| 21:30
| [[User:pycage|Martin Grimme]]
| Barcelona airport
| Flight LH 4484 from Munich International Airport, Germany
| Aniello, great! Let's share that taxi!
|-
| 22:10
| [[User:thp|Thomas Perl]]
| Barcelona airport
| Flight OS 395 from Vienna, AT
|
|-
| 22:15
| [[User:zaheerm | Zaheer Abbas Merali]]
| Barcelona airport T1
| Flight BA 488 from London Heathrow, UK
|
|-
|}

=== Friday 4 ===

{| class=&quot;wikitable&quot; border=&quot;2&quot;
! Time
! Name
! Place of arrival
! Means of transport
! Notes
|-
| 06:30
| [[User:Pasarela | Rubén Yedra]]
| Barcelona Sants Bus Station
| Bus from Santander (Cantabria/Spain)
|
|-
| 07:45
| [[User:Generalantilles|Ryan Abel]]
| Barcelona airport
| Flight DL 094 from JFK
|
|-
| 08:08
| [[User:jsmanrique | Manrique Lopez]]
| Barcelona Sans train station
| Train from Gijon (Asturias/Spain)
| 
|-
| 12:00
| [[User:lbt | David Greaves]]
| Barcelona airport
| SK1585 from CPH
| 
|-
|}

== Departure ==

'''Please keep it in chronological order!'''

=== Sunday 6 ===

{| class=&quot;wikitable&quot; border=&quot;2&quot;
! Time
! Name
! Place of departure
! Means of transport
! Notes
|-
| 12:15
| [[User:tomaszd|Tomasz Dominikowski]]
| Barcelona airport
| Flight LH 4453 to Frankfurt, DE
|
|-
| 14:15
| [[User:thp|Thomas Perl]]
| Barcelona airport
| Flight OS 398 to Vienna, AT
| 
|-
| 16:15
| [[User:yerga| Daniel Martin Yerga]]
| Barcelona airport
| Flight IB 5618 to Asturias, ES
| 
|-
| 16:35
| [[User:lbt| David Greaves]]
| Barcelona airport
| Flight BA 475 to London, UK
| Daniel... since there's this taxi share thing... ? :)
|-
| 17:30
| [[User:revdkathy | Kathy Smith]]
| Barcelona airport
| Flight 6030 to Bristol, UK
| Can I share that taxi too please?
|-
| 17:35
| [[User:vdvsx | Valério Valério]]
| Barcelona airport
| Flight TP 747 to Lisbon, PT
|
|-
| 17:35
| [[User:dneary | Dave Neary]]
| Barcelona airport
| Flight AF 5907 to Lyon, FR
| Want to share a taxi Valério?
|-
| 18:10
| [[User:pycage | Martin Grimme]]
| Barcelona airport
| Flight LH 4481 to Munich, Germany
| Looks like two taxis are needed for Dave, Valério, Gary, Kathy, Martin. :)  Let's share the taxis.
|-
| 18:20
| [[User:lcuk | Gary Birkett]]
| Barcelona airport T1
| Flight AF 1949 to Paris, FR
| Dave, Valério, Martin may I share your taxi?
|-
| 19:30
| [[User:framstag | Tim Teulings]]
| Barcelona airport
| Flight 4U527 to Colone/Bonn, DE
| 
|-
| 20:05
| [[User:sebas | Sebastian Colomar]]
| Barcelona airport T1
| Flight IB 8828 to Valencia, ES
| Hi Michael and Zaheer, may we share a taxi? Michael says: OK!
|-
| 20:10
| [[User:mikhas | Michael Hasselmann]]
| Barcelona airport T2
| Flight AB 8793 to Berlin-Tegel, BRD
|
|-
| 20:25
| [[User:zaheerm | Zaheer Abbas Merali]]
| Barcelona airport T1
| Flight BA 487 to London Heathrow, UK
| Hi Sebastian, good idea. My wife Alia will also come so cab between 4 is perfect
|-
| 20:45
| [[User:jsmanrique | Manrique Lopez]]
| Barcelona Sans train station
| Train to Gijon (Asturias/Spain)
|
|-
| 22:50
| [[User:Pasarela | Rubén Yedra]]
| Barcelona Sants Bus Station
| Bus to Santander (Cantabria/Spain)
|
|-
|}

=== Monday 7 ===

{| class=&quot;wikitable&quot; border=&quot;2&quot;
! Time
! Name
! Place of arrival
! Means of transport
! Notes
|-
| 09:55
| [[User:Generalantilles|Ryan Abel]]
| Barcelona airport
| Flight DL 095 to JFK
|
|-
| 11:30
| [[User:alup|Andreas Loupasakis]]
| Barcelona airport
| Flight A3 00681 to Athens, Gr
|
|-
| 21:50
| [[User:anidel|Aniello Del Sorbo]]
| Barcelona airport
| Flight EZY5140 to London Gatwick, UK
|
|-
| 21:50
| [[User:samanthal|Samantha Baldini]]
| Barcelona airport
| Flight EZY5140 to London Gatwick, UK
|
|-
|}

[[Category:Maemo-Barcelona Long Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo-Barcelona Long Weekend/UX meets Code</title>
    <id>3019</id>
    <revision>
      <id>29105</id>
      <timestamp>2010-02-11T16:29:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo-Barcelona Long Weekend]]</comment>
      <text xml:space="preserve">This wiki page is complemented by [http://talk.maemo.org/showthread.php?p=393329 this discussion thread]

About 50 community developers and user experience professionals work together during 3 days.

=== 3 goals ===

* Improve the usability and visual appeal of great Maemo apps.
* Improve the UX documentation for Maemo developers.
* Get a critical mass of people interested in pushing forward UX meets Code activities online and face to face.

=== Way of working ===

All the activity happens in a big room (official capacity for 70 people).

The first thing we will do each day is have a talk by one of the UX specialists who are attending, and will share the basic principles behind the concept of the day (Concepting, Interaction Design/Usability, and Graphics).

Then, we will have an interactive workshop where we will break into groups and focus on the two main projects of the day, helping to improve the user experience as a community. 

Finally, we will have breakout sessions, where developers and UX specialists can team up and you can focus on improving your application on a coding level.

The scheduling for the talks and the workshops has been added to the Long Weekend agenda at http://wiki.maemo.org/Maemo-Barcelona_Long_Weekend/Agenda#Agenda.

===Projects===

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. 

{|width=100%
!width=10%| 
!width=30% align=center style=&quot;background-color:#efe;&quot;|&lt;span style=&quot;font-size: 20pt; font-weight: bold;&quot;&gt;Friday&lt;/span&gt;&lt;br&gt;concepting
!width=30% align=center style=&quot;background-color:#eef;&quot;|&lt;span style=&quot;font-size: 20pt; font-weight: bold;&quot;&gt;Saturday&lt;/span&gt;&lt;br&gt;graphics
!width=30% align=center style=&quot;background-color:#fee;&quot;|&lt;span style=&quot;font-size: 20pt; font-weight: bold;&quot;&gt;Sunday&lt;/span&gt;&lt;br&gt;interaction
|-
|align=right style=&quot;padding:10px;&quot;|11:00-12:00
|style=&quot;padding:10px;background-color:#efe;&quot;|[http://www.youtube.com/watch?v=9rEZxWjVvGo liqbase Calendar]
|style=&quot;padding:10px;background-color:#eef;&quot;|[http://maemo.org/downloads/product/Maemo5/gpodder/ gPodder]
|style=&quot;padding:10px;background-color:#fee;&quot;|[[Maemo-Barcelona_Long_Weekend/UX_meets_Code/MaemoMapper|Mapper]]
|-
|align=right style=&quot;padding:10px;&quot;|14:00-16:00
|style=&quot;padding:10px;background-color:#efe;&quot;|Video editor
|style=&quot;padding:10px;background-color:#eef;&quot;|MaStory
|style=&quot;padding:10px;background-color:#fee;&quot;|[http://maemo.org/downloads/product/Maemo5/xournal/ Xournal]
|}

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!

* [http://maemo.org/downloads/product/Maemo5/fmradio/ FM Radio], [http://maemo.org/downloads/product/OS2008/mediabox/ MediaBox] - Martin Grimme - general UI overhaul for a better user experience
* [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
* [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!
* [http://maemo.org/downloads/product/Maemo5/zoutube/ zoutube] - Zaheer Merali - general UI improvement especially the video player widget and see how other features like browsing other video sites would work from a UI perspective
* [http://wiki.maemo.org/User_talk:Vdvsx/MemVenatus#MemVenatus MemVenatus(memory game)] - Valério Valério - Getting ideas/concepts, simple graphics and animations - Qt developers are welcome :).

=== Participants ===
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.

* [http://maemo.org/profile/view/martin/ Martin Schuele] - Principal UI designer for N900
* [http://maemo.org/profile/view/msoini/ Mox Soini] - Interaction Designer, Concepting, Maemo-as-platform
* Steffen Halme - Graphic Designer specializing in icons
* [http://personal.inet.fi/koti/mgimpl/ Martin Gimpl] - Graphic Designer, Concepting, Transitions, Graphics
* [http://maemo.org/profile/view/asimula/ Adele Simula] - UX Graphic Designer, Concepting, Layout Design, Graphics
* Sanna Nordling - Interaction designer, Concepting, Application UX design
* [http://maemo.org/profile/view/jmaaniit/ Jussi Maaniitty] - UX Management, Concepting
* Juha Vartiainen - Interaction Design, Concepting, Application UI design
* Jaakko Viitanen - Interaction Design, Concepting, Application UI design
* [http://blogs.forum.nokia.com/blog/arabella-davids-forum-nokia-blog Arabella David], Design &amp; User Experience Program Manager @ Forum Nokia
* [http://maemo.org/profile/view/sannah/ Sanna Häivalainen] - UX Specialist @ Forum Nokia
* [http://maemo.org/profile/view/tigert/ Tuomas Kuosmanen] - Senior Designer @ Nokia
* [http://maemo.org/profile/view/patifa/ Patricia Montenegro] - Lead User Experience Designer @ INdT
* [http://maemo.org/profile/view/allsomm/ Alysson Santos] - Senior Designer @ INdT - interested in the video editor
* [http://maemo.org/profile/view/annumaaria/ Annu-Maaria Nivala] - Usability Specialist and User Experience Project Manager
* [http://talk.maemo.org/member.php?u=27199/ Jan Krebber] - Interaction Designer and Usability Specialist
* [http://maemo.org/profile/view/catangel/ Kirsi Rönkkö] - Interaction Designer and Usability Specialist
* Ulla Niemelä - Graphic Designer
* [http://maemo.org/profile/view/prometoys/ Keywan N. Tonekaboni] - Student with special interest in UI and Usability
* [http://maemo.org/profile/view/pasarela/ Rubén Yedra] - PHP &amp; Mobile Programmer/Developer @Pasarela Directa S.L.(GSMspain). Interested in concepting, graphics and interaction
* [http://maemo.org/profile/view/sebas/ Sebastián Colomar] - General interest in end-user performance experience... 
* [http://maemo.org/profile/view/biquillo/ Victor Diaz] - Master student in Cognitive Sciences and Interactive Media &amp; Programmer &amp; Designer
* [http://maemo.org/profile/view/beastmaster/ Vicky Vouloutsi] - Master student in Cognitive Sciences and Interactive Media
* [http://maemo.org/profile/view/jmoraguiard/ Joan Mora] - Master student in Cognitive Sciences and Interactive Media / Amateur Programmer

===Help with specific technologies===

====Developers willing to help====
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.

* Thomas Perl: PyMaemo, GTK+, Hildon, PyGTK, Python
* [http://maemo.org/profile/view/andy80/ Andrea Grandi]: Pymaemo, Python, UI design concepts
* [http://maemo.org/profile/view/anidel/ Aniello Del Sorbo]: GTK, C, Debian packaging. Not an expert.
* Jesus Sanchez-Palencia: Qt 4.6, libqt4-maemo5 (Qt 4.6 for Maemo5)
* Zaheer Abbas Merali: GStreamer, Python, PyGTK
* [http://maemo.org/profile/view/vdvsx/ Valério Valério]: Python, C/C++, EFL, PyGTK, Qt (not an expert).
* [http://maemo.org/profile/view/mardy/ Alberto Mardegan]: GTK, Hildon, C/C++, Qt, Clutter (just basics).
* [http://maemo.org/profile/view/marcoil/ Marc Ordinas i Llopis]: C, Gtk+, Hildon, Hildon-desktop.
* [http://maemo.org/profile/view/pycage/ Martin Grimme]: PyMaemo, GDK, UPnP with Python, V4L2 in Python, controlling N800 &amp; N900 FM receivers, D-Bus services with GObject (C)
* [http://maemo.org/profile/view/mikhas/ Michael Hasselmann]: Qt 4.6 for Maemo5 (novice), autotroll
* [http://maemo.org/profile/view/bilboed/ Edward Hervey]: Video Editing, GStreamer, PiTiVi, GStreamer Editing Services, GNonLin
* [http://maemo.org/profile/view/conny/ Cornelius Hald]: C, Gtk+, Hildon, Eclipse, transifex.net, hildon-extras 
* [http://maemo.org/profile/view/biquillo/ Victor Diaz]: C/C++, Python, Processing 
* ''&lt;Your name here&gt;: &lt;Your technologies here&gt;''

====How to get help====

# Look up developers who work with the technology you need help with in the list above
# Approach the developers and ask them for help/advice :)
# In the neighbor room there will be [[Maemo-Barcelona_Long_Weekend/Formaci%C3%B3n|a developer
training track]]. Feel free jumping there to ask questions, too!


You can always get help regarding UX on IRC by joining #maemo (anytime) or #maebar (for the Long Weekend) on the server irc.freenode.net - there are usually one or two UX people online who can help you out!

=== Interested? ===

If you want to be invited please provide in [http://talk.maemo.org/showthread.php?t=33719 this thread]:

* 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.
* 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].
* If you are more into UX, a link to wherever your work can be seen.

Forward this to your colleagues working on great stuff!

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.

[[Category:Maemo-Barcelona Long Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo-Barcelona Long Weekend/UX meets Code/MaemoMapper</title>
    <id>3112</id>
    <revision>
      <id>29106</id>
      <timestamp>2010-02-11T16:29:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo-Barcelona Long Weekend]]</comment>
      <text xml:space="preserve">Here's a list of items I'd like to go through in the MaemoMapper session:

* Welcome screen: I'd like to get rid of it
* UI improvements for some dialogs
* Design the on-screen menu so that the most frequently used actions can be accessed in as few clicks as possible
* Map rotation: how to do it
* Some very hypothetical discussion about integration with other routing services (such as YTV for the Helsinki region)
* All the rest :-)

I'll try go get the current development version of maemo-mapper released in extras-devel.

[[Category:Maemo-Barcelona Long Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo-Italian Long Weekend</title>
    <id>3048</id>
    <revision>
      <id>42816</id>
      <timestamp>2011-03-25T12:05:32Z</timestamp>
      <contributor>
        <username>natan_xy</username>
        <id>2405</id>
      </contributor>
      <comment>/* Interested in attending */</comment>
      <text xml:space="preserve">'''BIG FAT WARNING''': this event is still ''vaporware''

(please keep all tables sorted alphabetically / chronologically as applicable)

Maemo Italian Long Weekend (tentative name)

Date: most likely march/april 2010

[http://talk.maemo.org/showthread.php?t=34744 Discussion thread on t.m.o.]

[http://www.facebook.com/event.php?eid=259497138791&amp;ref=nf Facebook event]

== Interested in attending ==
{| class=&quot;wikitable&quot; border=&quot;2&quot;
|-
! Full name
! Username
! Coming from
! Main interest
! How sure?
|-
| Andrea Borgia
| [http://maemo.org/profile/view/aboaboit/ aboaboit]
| Castello d'Argile, Bologna, IT
| Dev training
| I'm the organiser :)
|-
| Andrea Carron
| [http://maemo.org/profile/view/hox/ hox]
| Turin, IT
| 
| 95%
|-
| Andrea Grandi
| [http://maemo.org/profile/view/andy80/ andy80]
| Valencia, ES
| Open source / Maemo.org development
| 95% if it's after February
|-
| Aniello Del Sorbo
| [http://maemo.org/profile/view/anidel/ anidel]
| Twickenham, London, UK
| Open source / Maemo.org development
| 90%
|-
| Antonio Di Cello
| [http://maemo.org/profile/view/rafanto/ rafanto]
| Platania (CZ) Calabria, IT
|
|
|-
| Carmine De Rosa
| [http://maemo.org/profile/view/dslaky/ dslaky]
| Salerno, IT
| Open source
| Can organize for Salerno. 
|-
| Claudio Mezzasalma
| [http://maemo.org/profile/view/lorthirk/ lorthirk]
| L'Aquila, IT
| Introductions to Maemo Dev &amp; Community
|
|-
| Daniele Lacamera
| [http://maemo.org/profile/view/danielinux/ danielinux]
| Bologna, IT
|
| 90%
|-
| Daniele Maio
| [http://maemo.org/profile/view/b0unc3/ b0unc3]
| Milazzo (ME), Sicily, IT
| Open source / Maemo.org development
| 99%
|-
| Emanuele Vulcano
| [http://maemo.org/profile/view/millenomi/ millenomi]
| Milano, IT
| Development
| 100% if Milan or near enough.
|-
| Francesco Baldassarri
| [http://maemo.org/profile/view/monoceros/ monoceros]
| Bologna, IT
| Development
| 90%, it depends on location.
|-
| Gianluca Varisco
| [http://maemo.org/profile/view/gvarisco/ gvarisco]
| Milano, IT
| 
|
|-
| Giuseppe Marzio
| [http://maemo.org/profile/view/Gmarzio/ Gmarzio]
| Catania, IT
|
|
|-
| Gabor Ambrozy
| [http://maemo.org/profile/view/renegadefanboy/ RenegadeFanboy]
| Milano, IT
| Introductions to Maemo Dev &amp; Community
| 
|-
| Luca Donaggio
| [http://maemo.org/profile/view/donaggio/ donaggio]
| Venezia, IT
| Application development
| Depending on location
|-
| Luca Franchi
| [http://maemo.org/profile/view/NataN_xy/ NataN_xy]
| Avezzano, IT
| 
| 
|-
| Manuele Cappelleri
| [http://talk.maemo.org/member.php?u=27270 corVONero]
| Rome, IT
| Forensic
| (&lt; 2hrs from Rome) ? 100%
|-
| Marco Barisione
| [http://maemo.org/profile/view/barisione/ barisione]
| Cambridge, UK
| GTK, Telepathy IM/VoIP framework
| 30%
|-
| Marco Poletti
| [http://maemo.org/profile/view/poletti_marco/ poletti_marco]
| Parma, IT
| Fremantle devel, Qt devel
| 70%, if nothern Italy
|-
| Massimiliano Goriup
| [http://maemo.org/profile/view/maxppc/ maxppc]
| Trieste, IT
| Dev training
| Depends on location
|-
| Matteo Nerozzi
| [http://maemo.org/profile/view/matteone/ matteone]
| Castenaso, Bologna, IT
| Dev training
| 
|-
| Mauro Foti
| [http://maemo.org/profile/view/skler/ skler]
| Catania, IT
| 
| 
|-
| Michele Tameni
| [http://maemo.org/profile/view/netvandal/ netvandal]
| Brescia, IT
| development
| 99% :) I'm trying to help
|-
| Radu Andries
| [http://maemo.org/profile/view/admiral0/ admiral0]
| ~Milano, IT
| Dev training
| Can help organising for Milano.
|-
| Rodrigo Linfati
| [http://maemo.org/profile/view/rlinfati/ rlinfati]
| Bologna, IT
| 
|
|-
| Thomas Perl
| [http://maemo.org/profile/view/thp/ thp]
| Vienna, AT
| Application development / UX
| 95%
|-
| Torello Querci
| [http://maemo.org/profile/view/mk8/ mk8]
| Firenze, IT
| Dev training
|
|-
| Vincenzo Tarricone
| [http://maemo.org/profile/view/vinz486/ vinz486]
| Milano, IT
| Dev training
| 100% if good location
|-
| Giuseppe Patanè
| [http://maemo.org/profile/view/gotrek/ gotrek]
| Catania, IT
| 
| 100% if in Catania
|}

== Preferred location ==

{| class=&quot;wikitable&quot; border=&quot;2&quot;
|-
! City
! Venue / institution
! Suggested by
! Reason for suggesting
|-
| Bologna
| TBD
| [http://maemo.org/profile/view/aboaboit/ aboaboit]
| I can show you around ;)
|-
| Catania
| TBD
| [http://maemo.org/profile/view/b0unc3/ b0unc3]
| nice / well-connected
|-
| Firenze
| TBD
| [http://maemo.org/profile/view/andy80/ Andrea Grandi]
| no need to describe the city / contacts with local university
|-
| Milano
| TBD
| [http://maemo.org/profile/view/andy80/ Andrea Grandi]
| well-connected
|-
| Padova
| TBD
| [http://maemo.org/profile/view/anidel/ anidel]
| smaller place
|-
| Pisa
| TBD
| [http://maemo.org/profile/view/anidel/ anidel]
| smaller place
|-
| Roma
| TBD
| [http://maemo.org/profile/view/andy80/ andy80]
| well-connected
|-
| Salerno
| TBD
| [http://maemo.org/profile/view/anidel/ anidel] [https://garage.maemo.org/users/dslaky/ dslaky]
| smaller place / well-connected / nice / contacts with local university
|-
| Torino
| TBD
| [http://maemo.org/profile/view/elris/ elris]
| possible support from local UNIs and LUGs
|-
| Venezia
| TBD
| [http://maemo.org/profile/view/maxppc/ maxppc]
| nice / well-connected
|-
| Milano
| TBD
| [http://maemo.org/profile/view/vinz486/ Vincenzo Tarricone]
| well-connected / great community
|-
|}

== Preferred topics ==

{| class=&quot;wikitable&quot; border=&quot;2&quot;
|-
! Target audience
! Topic
! Language(s)
|-
| Newcomers
| Getting started with Maemo (Qt)
| TBD
|-
| Newcomers
| Introducing Maemo, the Maemo.org community and ways to help
| TBD
|-
| Newcomers
| Maemo Openness &amp; Alternatives
| TBD
|-
| Developers / Translators
| Localisation
| Italian
|-
| Developers
| First step in Maemo development
| Italian
|-
| Developers
| UX
| English
|-
| Developers
| Integration workshop
| TBD
|-
| Harmattan - Maemo6 [PLEASE FIX: target is a group of people]
| PlayDRM
| Maemo and OVI [PLEASE FIX: language is italian, english or to-be-decided]
|-
| Law Enforcement
| Forensic analysis of maemo devices
| Italian/English
|-
| Developers
| Telepathy IM / VoIP framework
| TBD
|-
| Developers
| Side by side comparison maemo / debian-like classic systems
| Italian
|-
|}

[[Category:Events]]
[[Category:Maemo Italian Long Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo-installer-utils</title>
    <id>5122</id>
    <revision>
      <id>47114</id>
      <timestamp>2012-04-04T19:10:17Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>[[Maemo-installer-utils]] moved to [[Fremantle closed packages/Maemo-installer-utils]]</comment>
      <text xml:space="preserve">#REDIRECT [[Fremantle closed packages/Maemo-installer-utils]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo-mapper topomaps</title>
    <id>4385</id>
    <revision>
      <id>37596</id>
      <timestamp>2010-08-08T09:11:39Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <comment>[[Maemo-mapper topomaps]] moved to [[Mappero topomaps]]: the name of the application has changed.</comment>
      <text xml:space="preserve">#REDIRECT [[Mappero topomaps]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo-meeting</title>
    <id>454</id>
    <revision>
      <id>2405</id>
      <timestamp>2008-06-23T04:36:29Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Maemo-meeting]] moved to [[Task:Maemo-meeting]]: Still needs to be defined</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Maemo-meeting]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo-meeting/1</title>
    <id>451</id>
    <revision>
      <id>8023</id>
      <timestamp>2008-10-28T04:50:44Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <minor/>
      <comment>Categorization</comment>
      <text xml:space="preserve">[http://maemo.org/maemo-meeting/maemo-meeting-2008-05-13.html Maemo-meeting #1 log]


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo-meeting/2</title>
    <id>452</id>
    <revision>
      <id>33055</id>
      <timestamp>2010-04-19T13:10:40Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>direct link</comment>
      <text xml:space="preserve">This is the organization page for [[Task:Maemo-meeting]] #2.

== Time ==
To be determined, please see the [[Talk:Maemo-meeting/2#Time|discussion page]].

== Topic ==
meamo.org Community and Diablo

== Agenda ==
In the process of being determined, please see the [[Talk:Maemo-meeting/2#Agenda|discussion page]].

=== maemo.org Community ===

==== Fast Server ====
* When might we expect the server upgrades to maemo.org to take place?
:Niels knows surely better than me. The connection with the cache network was finally fixed, being the proofpoint the Diablo release.--[[User:qgil|qgil]] 21:43, 27 June 2008 (UTC)

==== Defining Maemo ====
* The trademark and branding for Maemo seems to have been rather heavily revamped the way the Maemo trademark is used, when might we expect a more official announcement from Nokia about this change up?
:I don't expect announcements but actions. New usage of the term in online communications, presentation materials... When it comes to official products (e.g. nokia.com pages, sales boxes) it will take longer. In the Fremantle release everything needs to be in place.--[[User:qgil|qgil]] 21:49, 27 June 2008 (UTC)
:* When are we likely to see visible changes in Nokia's usage?
::OSiM &amp; Maemo Summit.--[[User:qgil|qgil]] 21:49, 27 June 2008 (UTC)
:* How dependent is this on the maemo.org logo contest being completed and getting the maemo.org trademark changes underway?
::Of course we won't touch a thing before having a new maemo.org logo. The new Maemo trademark will take a bit longer though. It involves legal review, management approval and other stuff dependant on people that like to have holidays in Summer. ;) --[[User:qgil|qgil]] 21:49, 27 June 2008 (UTC)
* Will this result in a new Maemo logo from Nokia?
:There are no plans for a Maemo logo from Nokia. &quot;Maemo&quot; will be used by Nokia written with regular Nokia fonts.--[[User:qgil|qgil]] 21:49, 27 June 2008 (UTC)

==== Extras ====
* Diablo Extras
** autobuilder
** Moving over existing Chinook stuff

=== Diablo ===

==== SSU ====
* Can Nokia make any comments on how they plan to use SSU?
:Yes: don't expect to see new packages every day. The plan is to do slow but solid steps from the current full release setting to more agile and focused small releases.--[[User:qgil|qgil]] 21:58, 27 June 2008 (UTC) 
:* Will we see more frequent updates?
:* Will we see updates to individual packages?
::(Amswer to both points) Probably yes, but we really don't want to awake big expectations, and specially not to an audience used to daily updates coming from their Linux distro of choice in their PC/laptop. However, bugfixes to issues like the SDHC corruption card can be pushed now really faster and with really less hassle for end users.--[[User:qgil|qgil]] 21:58, 27 June 2008 (UTC)
:* Related, are there any plans in place yet for handling the new versioning in Bugzilla if package updates are decoupled from the major Maemo point releases?
::I don't see a big issue in version numbering. Partial upgrades to 4.1 can be tagged as e.g. &quot;4.1+&quot; or something. Debian or Ubuntu don't change the version number between major releases even if they upgrade apps, middleware packages and even kernel images.--[[User:qgil|qgil]] 21:58, 27 June 2008 (UTC)

==== GPS ====
* An AGPS beta was released to go with Diablo, but a lot of users are unclear on where to get it, how to use it and how it works, might Nokia provide some documentation for the agps-ui to make its usage and capabilities clearer?
:Just wait a bit.--[[User:qgil|qgil]] 21:58, 27 June 2008 (UTC)


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo-releases</title>
    <id>2865</id>
    <revision>
      <id>36053</id>
      <timestamp>2010-06-18T11:40:52Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>mark as {{out of date}}</comment>
      <text xml:space="preserve">{{out of date}}

== The rationale behind maemo-release ==

The [http://maemo.org/packages/view/maemo-release/ maemo-release package] seeks to address the situation wherein a source package is forked into gregale/bora/chinook/[[Open development/Maemo roadmap/Diablo|diablo]]/[[Open development/Maemo roadmap/Fremantle|fremantle]] versions of itself because one set of Build-Depends does not work for all distributions.

Example: Fremantle provides libgstfarsight0.10-dev, whereas previous distributions do not. pidgin needs to Build-Depend on it for voice/video support to be compiled in during the build process. However, the libgstfarsight0.10-dev package does not exist in any previous distribution.

This results in having to provide a different &lt;code&gt;debian/control&lt;/code&gt; file for the various distributions, which in turn forces one to make a different &lt;code&gt;debian/changelog&lt;/code&gt; file for the various distributions. At this point, different distributions have different source packages.

To prevent this one reason for forking the source package, we need the maemo-release package. Then, knowing which distribution(s) contain a needed package foo, we can create an appropriate &lt;code&gt;debian/control&lt;/code&gt; entry.

Example: Suppose Bora and Diablo contain package foo, but the other distributions do not. The corresponding debian/control Build-Depends entry will be:

&lt;pre&gt;
Build-Depends: package1-dev, 
 package2-dev, 
 ..., 
 foo | maemo-release (= 1.0.0) | maemo-release (= 3.0.0) | maemo-release (= 5.0.0),
 ...,
 packagen-dev
&lt;/pre&gt;

This way you can describe intervals of distributions wherein a certain package has become available. Examples:

{|style=&quot;border:1px solid;&quot;
|-
!align=&quot;center&quot;| &amp;nbsp; (1.0.0) Gregale &amp;nbsp;
!align=&quot;center&quot;| &amp;nbsp; (2.0.0) Bora &amp;nbsp;
!align=&quot;center&quot;| &amp;nbsp; (3.0.0) Chinook &amp;nbsp;
!align=&quot;center&quot;| &amp;nbsp; (4.0.0) Diablo &amp;nbsp;
!align=&quot;center&quot;| &amp;nbsp; (5.0.0) Fremantle &amp;nbsp;
|-
|colspan=&quot;5&quot; style=&quot;border:1px solid;&quot; | Example: &lt;code&gt;foo | maemo-release (&lt; 3.0.0)&lt;/code&gt;
|-
| align=&quot;center&quot; style=&quot;background:red; color:white&quot; colspan=&quot;2&quot; | foo is absent
| align=&quot;center&quot; style=&quot;background:green; color:white&quot; colspan=&quot;3&quot; | foo is present
|-
|-
|colspan=&quot;5&quot; style=&quot;border:1px solid;&quot; | Example: &lt;code&gt;foo | maemo-release (&lt; 3.0.0) | maemo-release (&gt; 4.0.0)&lt;/code&gt;
|-
| align=&quot;center&quot; style=&quot;background:red; color:white&quot; colspan=&quot;2&quot; | foo is absent
| align=&quot;center&quot; style=&quot;background:green; color:white&quot; colspan=&quot;2&quot; | foo is present
| align=&quot;center&quot; style=&quot;background:red; color:white&quot; colspan=&quot;1&quot; | foo is absent
|-
|-
|colspan=&quot;5&quot; style=&quot;border:1px solid;&quot; | Example: &lt;code&gt;foo | maemo-release (= 1.0.0) | maemo-release (= 3.0.0) | maemo-release (= 5.0.0)&lt;/code&gt;
|-
| align=&quot;center&quot; style=&quot;background:red; color:white&quot; colspan=&quot;1&quot; | foo is absent
| align=&quot;center&quot; style=&quot;background:green; color:white&quot; colspan=&quot;1&quot; | foo is present
| align=&quot;center&quot; style=&quot;background:red; color:white&quot; colspan=&quot;1&quot; | foo is absent
| align=&quot;center&quot; style=&quot;background:green; color:white&quot; colspan=&quot;1&quot; | foo is present
| align=&quot;center&quot; style=&quot;background:red; color:white&quot; colspan=&quot;1&quot; | foo is absent
|-
|}

Of course, the rest of the build process has also to be made tolerant of the presence/absence of a given package.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Coding Competition 2012</title>
    <id>5170</id>
    <revision>
      <id>50691</id>
      <timestamp>2012-11-06T10:45:13Z</timestamp>
      <contributor>
        <username>kojacker</username>
        <id>3195</id>
      </contributor>
      <comment>/* Prizes */</comment>
      <text xml:space="preserve">== Introduction ==

('''NB: VOTING IS NOW closed! And results are coming soon...

[http://talk.maemo.org/showpost.php?p=1273254&amp;postcount=748 Preliminary reesults are here.]'''
 
You can see a list of registered and submitted applications in the [http://wiki.maemo.org/Maemo.org_coding_competition_2012#Participants Participants section])


Welcome to the maemo.org '''Coding Competition 2012''' wiki page! Beginning Monday '''11th June''', and running for '''3 months''', new applications for '''Maemo and MeeGo Harmattan''' devices (and significant updates to existing ones) will be eligible to enter in this years competition. Whether you are an experienced developer or a beginner on your very first application, we have a category that suits you and your application!

Nokia has generously donated '''14 N950s and 11 N9s''' that we will assign to the winners and runner ups across the various categories. There will also be a '''community bounty''' made up of individual donations which will also be shared out amongst the best placed entries.

'''Entry is free.''' If there are any questions we have a discussion thread for the competition at http://talk.maemo.org/showthread.php?t=83761

If you are new to the Maemo community, please feel free to check out [http://maemo.org/intro/ our introduction page] to learn more about us.

Thanks for your interest in taking part, we can't wait to see what you'll develop for us! :)

(NB: The final details are still being ironed out, so the below is subject to change. Keep watching this space!)

== Categories ==

The 5 main categories are for new application submissions:

* Desktop, System &amp; Utilities (''Part 1'' [http://talk.maemo.org/showpost.php?p=1267671&amp;postcount=622] | ''Part 2''[http://talk.maemo.org/showpost.php?p=1267672&amp;postcount=623] | ''Part 3''[http://talk.maemo.org/showpost.php?p=1267674&amp;postcount=624])
* Games, Graphics &amp; Multimedia (''Part 1''[http://talk.maemo.org/showpost.php?p=1266564&amp;postcount=601] | ''Part 2''[http://talk.maemo.org/showpost.php?p=1266566&amp;postcount=602])
* Network &amp; Communications (''Part 1''[http://talk.maemo.org/showpost.php?p=1266030&amp;postcount=587] | ''Part2''[http://talk.maemo.org/showpost.php?p=1266031&amp;postcount=588])
* Location &amp; Navigation ([http://talk.maemo.org/showpost.php?p=1265628&amp;postcount=582])
* Other (''Part 1''[http://talk.maemo.org/showpost.php?p=1266013&amp;postcount=584] | ''Part 2''[http://talk.maemo.org/showpost.php?p=1266016&amp;postcount=585])

There is also a category for updated code and functionality on already released applications (inc porting applications from other platforms):

* Updates and development on existing apps (''Part 1'' [http://talk.maemo.org/showpost.php?p=1269280&amp;postcount=670]| ''Part 2'' [http://talk.maemo.org/showpost.php?p=1269282&amp;postcount=671] | ''Part 3'' [http://talk.maemo.org/showpost.php?p=1269283&amp;postcount=672]) 

And finally, there is an extra category specifically for those new to Maemo/MeeGo Harmattan development:

* Beginners (made up of entries from the above categories) (''Part 1'' [http://talk.maemo.org/showpost.php?p=1269327&amp;postcount=677] | ''Part 2'' [http://talk.maemo.org/showpost.php?p=1269328&amp;postcount=678] | ''Part 3'' [http://talk.maemo.org/showpost.php?p=1269329&amp;postcount=679] | ''Part 4'' [http://talk.maemo.org/showpost.php?p=1269330&amp;postcount=680])

Therefore, in total there are 7 categories in the coding competition.

== Results ==

The competition has now ended. The winning application and runners ups for each category is as follows:

{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Category
! Winning App
! 1st Runner Up
! 2nd Runner Up
! 3rd Runner Up
|-
| '''Desktop, System, &amp; Utilities'''
| Saera
| maecaltasks
| widgets
| KhtNotes
|-
| '''Location &amp; Navigation'''
| meeTrainer
| GeePS2
| EnyTrip
| Next BART
|-
| '''Network and Communications'''
| WifiTrans
| User Agent Tool
| genwall
| Transmission Remote
|-
| '''Games, Graphics &amp; Multimedia'''
| pcam
| Alpha Strike
| Crosswords
| Instago
|-
| '''Other'''
| MeeCoLay
| SIM-Switcher
| Pomodoro
| BioPower
|-
| '''Updates &amp; Development on Existing Apps'''
| modRana
| ProfileMatic
| N9 Quick Tweak
| MeeDocs 
|-
| '''Beginners'''
| Alpha Strike
| SIM-Switcher
| meeTrainer
| Crosswords
|}

== Competition Timeline ==

The competition is currently scheduled to accept submissions for 3 months, starting on '''Monday 11 June 2012''' and ending on '''Monday 10th September 2012'''. Competition entries must be submitted by 12 midnight on Sunday 9th September (UTC time). Voting will run from '''September 19th through September 27th 2012, 23:59 UTC'''.

==How to Submit an Application==

('''NB: Entry is now closed!''' The final date for submissions was September 9th at midnight. You can see a list of registered and submitted applications in the Participation table.
http://wiki.maemo.org/Maemo.org_coding_competition_2012#Participants)


To enter, you can submit your application entry via one of two ways - the '''competition submission page''' available at [http://kojacker.net/blog/?page_id=170#entryform] or by emailing directly to the email address '''maemo.competition2012@gmail.com'''. You will also align your entry to one of the judging categories[http://wiki.maemo.org/Maemo.org_coding_competition_2012#Categories] at that time. in addition, you will also need to provide some details for the judging thread, including 2 screenshots, a brief description of your application, and an outline of what work you personally completed on it. 

Eligible authors who mark their entry as 'beginner' will also have their application automatically entered into the beginner category. 

Only applications received via the submission page or emailed directly to the competition email address will be counted as valid entries in the competition. New participants are welcome to join at any time up until the closing date.

== Prizes ==

Nokia have generously donated '''14 Nokia N950 handsets''' and '''11 Nokia N9 handsets''' and these will be shipped free to the winners and runners up in each category, in accordance with the Nokia community device program. The devices assigned for each category is outlined below - the winner of each category will have first choice, followed by the second placed runner up, and so on until all devices have been assigned.
 
* Desktop, System &amp; Utilities (2 N950, 2 N9) 
* Games, Graphics &amp; Multimedia (2 N950, 2 N9) 
* Network &amp; Communications (2 N950, 2 N9) 
* Location &amp; Navigation (2 N950, 2 N9) 
* Other (2 N950, 2 N9) 

* Updates and development on existing apps (2 N950, 1 N9) 

* Beginners (made up of entries from the 5 main categories) (2 N950)

In addition, there will be share of the community prize fund made up of donations from community members. The split for the community donation collection is still to be confirmed at this time (this section will be updated later).


{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Category
! Developer
! Application
! Prize
! Nokia Developer Username
! Prize Received
|-
| Desktop, System, &amp; Utilities
| taixzo
| Saera
| N9
| taixzo
| Yes
|-
| Desktop, System, &amp; Utilities
| jackburton
| maecaltasks
| N950
| jackburton
| Yes
|-
| Desktop, System, &amp; Utilities
| Lucien XU
| widgets
| N9
| Sfiet_Konstantin
| 
|-
| Desktop, System, &amp; Utilities
| Khertan
| KhtNotes
| N9 (swapped from Network category)
| Khertan
| Yes
|-
| Desktop, System, &amp; Utilities
| 
| 
| 
|-
| Desktop, System, &amp; Utilities
| 
| 
| 
|-
| Games, Graphics, &amp; Multimedia
| qwazix
| pcam
| N9
| mikedem
| Yes
|-
| Games, Graphics, &amp; Multimedia
| aStrike
| Alpha Strike
| N950
| aStrike
| 
|-
| Games, Graphics, &amp; Multimedia
| draxcp6
| Crosswords
| N9
| DRAX
| Yes
|-
| Games, Graphics, &amp; Multimedia
| dirksonguer 
| Instago
| N950
| DirkSonguer
| Yes
|-
| Games, Graphics, &amp; Multimedia
| 
| 
| 
|-
| Games, Graphics, &amp; Multimedia
| 
| 
| 
|-
| Location &amp; Navigation
| Paolo Angelelli
| meeTrainer
| N950
| tedturbo
| 
|-
| Location &amp; Navigation
| fcrochik
| GeePS2
| N9
| felipecrochik
|
|-
| Location &amp; Navigation
| netvandal
| enyTrip
| N9
| netvandal
|
|-
| Location &amp; Navigation
| ikkysleepy
| Next BART
| N950
| ikkysleepy
| Yes
|-
| Location &amp; Navigation
| N/A
| 
| To be reallocated
|-
| Location &amp; Navigation
| N/A
| 
| To be reallocated
|-
| Network &amp; Communication
| cckwes
| WifiTrans
| Share of Bounty
|
|-
| Network &amp; Communication
| Halftux
| genwall
| N950
| Halftux
| Yes
|-
| Network &amp; Communication
| titilambert 
| HeySMS
| N950
| titilambert
| Yes
|-
| Network &amp; Communication
| shwstppr
| Bumblr
| Second Bounty Share
|
|-
| Network &amp; Communication
| kesrut
| ServerMonitor
| N950 (swapped from Desktop category)
| kesrut
|
|-
| Network &amp; Communication
| leon.anavi
| MoGateway
| N9
| leonanavi
| Yes
|-
| Other
| marmistrz
| MeeCoLay
| N950
| marmistrz
|
|-
| Other
| munozferna
| Pomodoro
| N9
| fmunozs
| Yes
|-
| Other
| jukra
| BioPower
| N950
| jukra
| Yes
|-
| Other
| helex
| WPx Emulatoor
| N9
| QtHelex
| 
|-
| Other
| 
| 
| 
|-
| Other
| 
| 
| 
|-
| Updates &amp; Development on Existing Apps
| MartinK
| modRana
| N9
| m4rtink
| Yes
|-
| Updates &amp; Development on Existing Apps
| ajalkane
| ProfileMatic
| Share of Bounty
|
|-
| Updates &amp; Development on Existing Apps
| Schturman
| N9 Quick Tweak
| N950
| schturman
| Yes
|-
| Updates &amp; Development on Existing Apps
| Marrat
| MeeDocs
| N950
| marrat
| 
|-
| Updates &amp; Development on Existing Apps
| 
| 
| 
|-
| Beginners
| Peter Leinchen
| SIM-Switcher
| N950
| lotte0509
| Yes
|-
| Beginners
| saidinesh5
| Puppy File Server
| N950
| saidinesh5
| 
|-
| Beginners
| 
| 
| 
|-
| Beginners
| 
| 
| 
|-
|}

== Donations for the Community Prize Fund ==

The following list shows all of the donations and pledges made to the community prize fund so far. There is no fixed amount - all donations are very welcome - and will be accepted from now until the closing date of the competition. 


To donate via PayPal, just click on the following link and specify the amount you want to donate. 
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=FTU62WATF94BW

Please don't forget to include your maemo.org username in the PayPal message to be mentioned in the following list. If no maemo.org username is included, the donation will be marked as anonymous. You can find more information on the donation paypal process (with screenshots) [http://talk.maemo.org/showpost.php?p=1223732&amp;postcount=262 on this post]


Our special thanks to the following people for their generous contributions:

{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Date'''
! Nickname'''
! Amount (gross) in €
! PayPal fee in €
! Amount (net) in €
! Paid
|-
| 24/5/2012||[http://talk.maemo.org/member.php?u=32339 kojacker]||50,00||1,30 ||48,70||yes, 15/6/2012
|-
| 25/5/2012||[http://talk.maemo.org/member.php?u=29528 Wonko]||40,00||1,11||38,89||yes
|-
| 25/5/2012||Anonymous||15,00||0,64||14,36||yes
|-
| 25/5/2012||Anonymous||50,00||2,80||47,20||yes
|-
| 26/5/2012||[http://talk.maemo.org/member.php?u=38083 helex]||50,00|| ||50,00||yes, 27/6/2012
|-
| 26/5/2012||[http://talk.maemo.org/member.php?u=30579 ljo]||60,00||1,49||58,51||yes
|-
| 03/6/2012||[http://maemo.org/profile/view/mrsellout/ mrsellout]||50,00||1,30||48,70||yes, 18/6/2012
|-
| 03/6/2012||Anonymous||5,00||0,45||4,55||yes
|-
| 12/6/2012||[http://talk.maemo.org/member.php?u=58874 zwevert]||5,00||0,45||4,55||yes
|-
| 12/6/2012||[http://talk.maemo.org/member.php?u=7630 qgil]||30,00||1,52||28,48||yes
|-
| 17/6/2012||[http://talk.maemo.org/member.php?u=44905 bingomion]||10,00||0,87||9,13||yes
|-
| 18/6/2012||[http://talk.maemo.org/member.php?u=58159 almamo]||20,00||1,33||18,67||yes
|-
| 22/6/2012||[http://talk.maemo.org/member.php?u=31497 P@t]||10,00||0,54||9,46||yes
|-
| 23/6/2012||[http://talk.maemo.org/member.php?u=32339 kojacker, in memory of Gary Birkett (lcuk)]||50,00||1,30 ||48,70||yes
|-
| 28/6/2012||[http://talk.maemo.org/member.php?u=30579 ljo]||60,00||1,49||58,51||yes
|-
| 04/7/2012||[http://talk.maemo.org/member.php?u=34156 ZogG]||20,00||1,39||18,61||yes
|-
| 18/7/2012||[http://talk.maemo.org/member.php?u=44304 marxian]||25,00||0,83||24,17||yes
|-
| 18/7/2012||[http://talk.maemo.org/member.php?u=20901 javispedro]||15,00||0,64||14,36||yes
|-
| 18/7/2012||[http://talk.maemo.org/member.php?u=20798 pigling]||10,00||0,87||9,13||yes
|-
| 26/7/2012||Anonymous||10,00||0,54||9,46||yes
|-
| 10/8/2012||[http://talk.maemo.org/member.php?u=41529 eduperez]||50,00||2,95||47,05||yes
|-
| 19/8/2012||[http://talk.maemo.org/member.php?u=63161 proprog]||15,00||0,64||14,36||yes
|-
| 24/8/2012||[http://talk.maemo.org/member.php?u=59339 Sap]||10,00||0,74||9,26||yes
|-
| 24/8/2012||[http://talk.maemo.org/member.php?u=16742 OVK]||30,00||0,92||29,08||yes
|-
| 31/8/2012||[http://talk.maemo.org/member.php?u=55015 leon-anavi]||10,00||0,54||9,46||yes
|-
| 03/9/2012||[http://talk.maemo.org/member.php?u=1203 jurop88]||20,00||0,73||19,27||yes
|-
| 08/9/2012||[http://talk.maemo.org/member.php?u=30535 Schturman]||15,00||1,13||13,87||yes
|-
| 08/9/2012||[http://talk.maemo.org/member.php?u=58873 justadude]||70,00||3,08||66,92||yes
|-
| 11/9/2012||Anonymous||10,00||0,54||9,46||yes
|-
| 13/9/2012||[http://talk.maemo.org/member.php?u=42513 rotoflex]||10,00||0,74||9,26||yes
|-
| 20/9/2012||[http://talk.maemo.org/member.php?u=26315 sony123]||10,00||0,74||9,26||yes
|-
| 27/9/2012||Anonymous||5,00||0,45||4,55||yes
|-
|||Totals||840,00 (Pledged)||33,06||805,94 (Paid)
|}

== Participants ==

The final list of participants for voting is available at http://talk.maemo.org/showpost.php?p=1264774&amp;postcount=579

And you can see the application submissions listed by category on the external website http://cc2012.crochik.com/ and also on forum posts via the links below:

*Location and Navigation [http://talk.maemo.org/showpost.php?p=1265628&amp;postcount=582]

*Others 1/2 [http://talk.maemo.org/showpost.php?p=1266013&amp;postcount=584]
*Others 2/2 [http://talk.maemo.org/showpost.php?p=1266016&amp;postcount=585]

*Network and Communications 1/2 [http://talk.maemo.org/showpost.php?p=1266030&amp;postcount=587]
*Network and Communications 2/2 [http://talk.maemo.org/showpost.php?p=1266031&amp;postcount=588]

*Games, Graphic and Multimedia 1/2 [http://talk.maemo.org/showpost.php?p=1266564&amp;postcount=601]
*Games, Graphic and Multimedia 2/2 [http://talk.maemo.org/showpost.php?p=1266566&amp;postcount=602]

*Desktop, Systems and Utilities 1/3 [http://talk.maemo.org/showpost.php?p=1267671&amp;postcount=622]
*Desktop, Systems and Utilities 2/3 [http://talk.maemo.org/showpost.php?p=1267672&amp;postcount=623]
*Desktop, Systems and Utilities 3/3 [http://talk.maemo.org/showpost.php?p=1267674&amp;postcount=624]

*Updates and development on existing applications 1/3 [http://talk.maemo.org/showpost.php?p=1269280&amp;postcount=670]
*Updates and development on existing applications 2/3 [http://talk.maemo.org/showpost.php?p=1269282&amp;postcount=671]
*Updates and development on existing applications 3/3 [http://talk.maemo.org/showpost.php?p=1269283&amp;postcount=672])

*Beginners 1/4 [http://talk.maemo.org/showpost.php?p=1269327&amp;postcount=677]
*Beginners 2/4 [http://talk.maemo.org/showpost.php?p=1269328&amp;postcount=678]
*Beginners 3/4 [http://talk.maemo.org/showpost.php?p=1269329&amp;postcount=679]
*Beginners 4/4 [http://talk.maemo.org/showpost.php?p=1269330&amp;postcount=680]


The below table displays the submission details, as received, for each application. (The table is currently in process of being updated with the final details.)

{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Developer
! Application
! Category
! Beginner Entry (Y/N)
! Platform (MeeGo/Maemo/etc)
! Entry Received?
|-
| marrat (Marcel D. Juhnke)
| MeeDocs (Google Docs/GDrive client for N9)
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| Khertan (Benoît HERVIER)
| [http://khertan.net/KhtBMA KhtBMA]
| Desktop, System &amp; Utilities 
| N
| Harmattan
| YES
|-
| Khertan (Benoît HERVIER)
| [http://khertan.net/KhtNotes KhtNotes]
| Desktop, System &amp; Utilities 
| N
| Harmattan
| YES
|-
| Khertan (Benoît HERVIER)
| [http://khertan.net/Wleux Wleux]
| Desktop, System &amp; Utilities 
| N
| Harmattan
| YES
|-
| titilambert (Thibault Cohen)
| [http://talk.maemo.org/showthread.php?t=84705 HeySms]
| Network &amp; Communications
| N
| Fremantle
| YES
|-
| chrm (Christoph Maciejewski)
| [http://talk.maemo.org/showthread.php?t=85427 DingMee] 
| Desktop, System &amp; Utilities
| Y
| Harmattan
| YES
|-
| bibek (Anand Bibek)
| DoMee 
| Desktop, System &amp; Utilities
| N
| Harmattan
| YES
|-
| bibek (Anand Bibek)
| Blob 
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| taixzo
| [http://talk.maemo.org/showthread.php?t=84753 Saera] (Voice command and AI)
| Desktop, System &amp; Utilities
| N
| Fremantle
| YES
|-
| pa (Paolo Angelelli)
| meeTrainer 
| Location &amp; Navigation
| Y
| Harmattan
| YES
|-
| pa (Paolo Angelelli)
| syncgcontacts 
| Network &amp; Communications 
| Y
| Harmattan
| YES
|-
| piggz (Adam Pigg)
| Square-It (Old fashioned game)
| Games
| N
| Harmattan, Fremantle
| YES
|- 
| sakya (Paolo Iommarini)
| Lone Wolf for Maemo
| Games, Graphics &amp; Multimedia
| N
| [http://talk.maemo.org/showthread.php?t=86352 Fremantle]
| YES
|-
| kunal_the_one (Kunal Parmar)
| Crazy Chickens game
| Updates and development on existing apps
| N
| Fremantle
| YES
|-
| kunal_the_one (Kunal Parmar)
| Audiobook Reader
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| swinkels (Slawomir Musial)
| [http://talk.maemo.org/showthread.php?t=86715 Nyan Cat. The Game] 
| Games, Graphics &amp; Multimedia
| N
| Harmattan
| YES
|-
| rfeese (Roger Feese)
| Math Bingo
| Games, Graphics &amp; Multimedia
| Y
| Fremantle
| YES
|-
| rainisto (Jonni Rainisto )
| [http://store.ovi.com/content/283951 Presence VNC] with full VKB support for N9
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| jackburton (Brandon Saxe)
| [http://talk.maemo.org/showthread.php?t=86736 maecalTasks] (N900)
| Desktop, System &amp; Utilities
| N
| Fremantle
| YES
|-
| ajalkane (Arto Jalkanen)
| ProfileMatic
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| adityamhatre (Aditya Mhatre)
| Sync yourself 
| Desktop, System &amp; Utilities
| Y
| Harmattan
| YES
|-
| Iktwo sh
| Meemory, puzzle game to test your memory
| Games, Graphics &amp; Multimedia
| N
| Fremantle
| YES
|-
| Iktwo sh
| Sim shorcut remover
| Other
| N
| Harmattan
| YES
|-
| [http://talk.maemo.org/member.php?u=51684 draxcp6]
| [http://talk.maemo.org/showthread.php?t=86355 Crosswords]
| Games, Graphics &amp; Multimedia
| Y
| [http://www.4shared.com/file/7V6QXKSX/crosswordsqml_0_0_1_armel_frem.html Fremantle], [http://www.4shared.com/file/fkRgqHt5/crosswordsqml_001_armel_harmat.html Harmattan], [http://www.4shared.com/file/gKk0U5-a/Crosswords_Install.html Desktop]
| YES
|-
| adityamhatre (Aditya Mhatre)
| Reaction Challenge (First one to tap wins)
| Games, Graphics &amp; Multimedia
| Y
| Harmattan
| YES
|-
| fcrochik (Felipe Crochik)
| [http://store.ovi.com/content/286776 GeePS2] 
| Location &amp; Navigation 
| N
| Harmattan
| YES
|-
| trx (Svetozar Belic)
| TxPad QML (Total rewrite of Maemo5 TxPad for Harmattan)
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| qwazix (Michael Demetriou)
| [http://talk.maemo.org/showthread.php?t=85512 &amp;rho;cam] (raw image capture sοftware)
| Games, Graphics &amp; Multimedia
| Ν
| Fremantle
| YES
|-
| shwstppr (Abhishek Kumar)
| Bumblr(Tumblr App)
| Network &amp; Communications
| N
| Harmattan
| YES
|-
| cckwes (Wesley Chong)
| ThrowIn
| Games, Graphics &amp; Multimedia
| N
| Harmattan
| YES
|-
| [http://talk.maemo.org/member.php?u=18368 rash.m2k]  (Rashad Mughal)
| [http://talk.maemo.org/showthread.php?t=86740 meeBay] 
| Network &amp; Comminucations
| N
| Harmattan
| YES
|-
| 3clch4pawlakov, Tomx95 (Tomasz Pastusiak)
| [http://talk.maemo.org/showthread.php?t=86661 BlockMaster] - Puzzle solving 2D platformer
| Games
| Y
| Fremantle
| YES
|-
| [http://maemo.org/profile/view/Halftux Halftux (Christian Weniger)]
| [http://talk.maemo.org/showthread.php?t=85444 Genwall] (Iptables firewall gui)
| Network &amp; Communications
| Y
| [http://maemo.org/packages/view/genwall/ Fremantle]
| YES
|-
| cckwes (Wesley Chong)
| [http://talk.maemo.org/showthread.php?t=85632 WifiTrans]
| Network &amp; Communications
| N
| Harmattan, Fremantle
| YES
|-
| everall (Eddy Alleman)
| NumboTime
| Other
| Y
| Harmattan
| YES
|-
| [http://maemo.org/profile/view/Avis Avis (Alek Terekhov)]
| [http://store.ovi.com/content/301269 TriQuick]   
| Games, Graphics and Multimedia
| N
| Fremantle, Harmattan
| YES
|-
| MartinK (Martin Kolman)
| modRana flexible GPS navigation system
| Updates and development on existing apps
| N
| [http://modrana.org/trac/wiki/SystemDownloadEN#maemo Fremantle], [http://modrana.org/trac/wiki/SystemDownloadEN#harmattan Harmattan], [http://modrana.org/trac/wiki/SystemDownloadEN#tarball Desktop]
| YES
|-
| MartinK (Martin Kolman)
| Mieru flexible manga and comic book reader
| Updates and development on existing apps
| N
| Fremantle
| YES
|-
| qwazix (Michael Demetriou)
| [http://talk.maemo.org/showthread.php?t=83682 timenow], proximity enabled time on the idle screen of the N900
| Desktop, System &amp; Utilities
| Ν
| Fremantle
| YES
|-
| saidinesh5 (Dinesh Manajipet)
| [http://garageresearch.blogspot.com/p/puppy-file-server.html Puppy File Server]
| Network, System &amp; Utilities
| Y
| Harmattan
| YES
|-
| munozferna (Fernando Muñoz)
| [http://talk.maemo.org/showthread.php?p=1255042 Transmission remote]
| Network &amp; Communications
| Ν
| Harmattan
| YES
|-
| kosirj (Jan Košir)
| FilmNotes
| Desktop, System &amp; Utilities
| Y
| Harmattan
| YES
|-
| [http://maemo.org/profile/view/b0unc3 b0unc3] (Daniele Maio)
| [http://store.ovi.com/content/281831 AutoCallSMS]
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| [http://maemo.org/profile/view/noidea/ noidea] (Leonid Gusak)
| [http://qmetro.sf.net qMetro] 
| Location &amp; Navigation 
| N
| Fremantle
| YES
|-
| [http://talk.maemo.org/member.php?u=45252 peterleinchen] (Peter Leinchen)
| [http://talk.maemo.org/showthread.php?p=1243525#post1243525 SIM-Switcher]
| Other
| Y
| Fremantle
| YES
|-
| jmankinen (Janne Mankinen)
| QMetronome
| Other
| Y
| Harmattan
| YES
|-
| EmaNymton (Boris Pohler)
| [http://talk.maemo.org/showthread.php?t=86388 MeeGoal] 
| Other
| N
| Harmattan
| YES
|-
| helihyv (Heli Hyvättinen)
| [http://talk.maemo.org/showthread.php?t=86675 CountYourScores]
| Desktop, System &amp; Utilities
| N
| Harmattan, Fremantle
| YES
|-
| jukra (Jukka Rajaniemi)
| [http://talk.maemo.org/showthread.php?t=86608 BioPower]
| Other
| Y
| Fremantle
| YES
|-
| bober12 (Dmitrijs Juškovs)
| [http://ftpud-apps.blogspot.com/2012/09/hits-nokia-n900-rhythm-game.html Hits] - Rhythm game.
| Games, Graphics &amp; Multimedia
| Y
| Fremantle
| YES
|-
| heymaster (Kęstutis Rutkauskas)
| ServerMonitor 
| Network &amp; Communications 
| Y
| Harmattan
| YES
|-
| [http://talk.maemo.org/member.php?u=38083 helex (Michael Muth)]
| [http://talk.maemo.org/showthread.php?t=86217 WPx Emulator]
| Other 
| N
| Harmattan, Fremantle
| YES
|-
| [http://talk.maemo.org/member.php?u=55015 leon.anavi (Leon Anavi)]
| MoGateway
| Network &amp; Communications
| N
| [http://store.ovi.com/content/304993 Harmattan]
| YES
|-
| [http://talk.maemo.org/member.php?u=55015 leon.anavi (Leon Anavi)]
| location2sms
| Updates and development on existing apps 
| N
| [http://store.ovi.com/content/168861 Harmattan]/[https://play.google.com/store/apps/details?id=com.anavi.location2sms Android]
| YES
|-
| Sfiet_Konstantin (Lucien XU)
| widgets
| Desktop, System &amp; Utilities 
| N
| Harmattan
| YES
|-
| [http://maemo.org/profile/view/Avis Avis (Alek Terekhov)] 
| [http://talk.maemo.org/showthread.php?t=86563 USSD Balance] (Get mobile balance over USSD).  
| Desktop, System &amp; Utilities
| N
| Harmattan
| YES
|-
| [http://maemo.org/profile/view/qnetman/ Anatoly Kozlov]
| [http://projects.developer.nokia.com/qnetman/wiki QNetMan2]
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| [http://maemo.org/profile/view/qnetman/ Anatoly Kozlov]
| [http://projects.developer.nokia.com/meegim/wiki MeegIM] - xmpp client
| Network &amp; Communications
| N
| Harmattan, Fremantle
| YES
|-
| [http://maemo.org/profile/view/rzr/ rzr (Phil Coval)]
| [http://projects.developer.nokia.com/redak/wiki Redak]
| Updates and development on existing apps
| N
| [http://store.ovi.com/content/269879 Harmattan]
| YES
|-
| munozferna (Fernando Muñoz)
| [http://talk.maemo.org/showthread.php?p=1263412 Pomodoro]
| Other
| Ν
| Harmattan
| YES
|-
| tigre-bleu (Antoine Vacher)
| [http://tigre-bleu.github.com/allocine-harmattan/ AlloCine]
| Desktop, System &amp; Utilities
| Y
| Harmattan, Symbian later
| YES
|-
| opax
| SMS Scheduler
| Network &amp; Communications
| Ν
| Harmattan
| YES
|-
| CaCO3
| MiniBible
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| CaCO3
| CacheMe
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| Wikiwide
| [http://talk.maemo.org/showthread.php?t=86640 VirtRanSim], applet to choose virtual keyboard
| Desktop, System &amp; Utilities
| N
| Fremantle
| YES
|-
| [http://talk.maemo.org/member.php?u=64345 abhinav12] (Abhinav Singh)
| [http://talk.maemo.org/showthread.php?t=86721 ReferIt] N9 online dictionary app with audio pronunciation
| Desktop, System &amp; Utilities
| Y
| Harmattan
| YES
|-
| ikkysleepy
| Next BART
| Location &amp; Navigation
| Y
| Harmattan
| YES
|-
| ajalkane (Arto Jalkanen)
| ToggleWlanScan
| Network &amp; Communications
| N
| Harmattan
| YES
|-
| tommyj23 (Jonathan Rejon)
| Adventlands
| Games, Graphics &amp; Multimedia
| N
| Harmattan
| YES
|-
| briggers (Ashish Bhate)
| [http://talk.maemo.org/showthread.php?t=86645 Server Status Widget]
| Desktop, System &amp; Utilities 
| Y
| Fremantle
| YES
|-
| Schturman (Emil Yozgin)
| [http://talk.maemo.org/showthread.php?t=80600 N9 Quick Tweak]
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| dirksonguer (Dirk Songuer)
| [http://n9development.tumblr.com/ Instago, an Instagram client for MeeGo.]
| Games, Graphics &amp; Multimedia
| N
| Harmattan
| YES
|-
| aStrike
| Alpha Strike
| Games, Graphics, % Multimedia
| Y
| Fremantle 
| YES
|-
| [http://maemo.org/profile/view/frafl/ frafl]
| [http://maemo.org/packages/view/flatboat/ modern computer flatboat ] [http://talk.maemo.org/showthread.php?s=fcfddc31eef76b3b0ff647165f128e7e&amp;t=86538 TMO], a simple pdf viewer
| Desktop, System &amp; Utilities
| N
| Fremantle, harmattan (UNTESTED!)
| YES
|-
| [http://maemo.org/profile/view/computerinfo21/ computerinfo21]
| [http://talk.maemo.org/showthread.php?p=1263351#post1263351 Task Poach]
| Other
| Y
| Fremantle
| YES
|-
| pipould
| Clock My World
| Location &amp; Navigation
| Y
| Harmattan
| YES
|-
| Lars Arnbak / fl4f
| MeeWOD
| Desktop, System &amp; Utilities
| Y
| Harmattan
| YES
|-
| [http://talk.maemo.org/member.php?u=62213 Hossein]
| [http://talk.maemo.org/showthread.php?p=1263245 Kana of The Day]
| Other
| Y
| Fremantle
| YES
|-
| mbo
| [http://talk.maemo.org/showthread.php?t=86712 Klippr]
| Desktop, System, &amp; Utilities
| N
| Harmattan
| YES
|-
| marmistrz (Marcin Mielniczuk)
| [http://talk.maemo.org/showthread.php?t=86633 PowEdit]
| Desktop, System, &amp; Utilities
| N
| Fremantle
| YES
|-
| marmistrz (Marcin Mielniczuk)
| [http://talk.maemo.org/showthread.php?t=86714 User Agent Tool]
| Network &amp; Communications
| N
| Fremantle
| YES
|-
| marmistrz (Marcin Mielniczuk)
| [http://talk.maemo.org/showthread.php?t=84482 MeeCoLay]
| Other
| N
| Fremantle
| YES
|-
| marmistrz (Marcin Mielniczuk)
| MaeLyrica
| Games, Graphics, Multimedia 
| N
| Fremantle
| YES
|-
| [http://talk.maemo.org/member.php?u=63873 Alexislavie (Alexis Lavie)]
| [http://talk.maemo.org/showthread.php?p=1263221 ext2Manager]
| Desktop, System &amp; Utilities
| Y
| Harmattan
| YES
|-
| gionni88
| NoStopPlayer
| Games, Graphics, &amp; Multimedia
| N
| Harmattan
| YES
|-
| netvandal
| enyTrip
| Location &amp; Navigation
| N
| Harmattan
| YES
|-
| inz (Santtu Lakkala)
| Irssi optimized terminal IrsTerm
| Network &amp; Communication
| N
| Fremantle
| YES
|}

== Rules ==

To ensure that the event runs properly, there are a few essential rules:

*Only individuals may participate. Companies are excluded from the competition because of equity reasons.

*If you have coded your app in a team and you win one of the prizes, your team has to designate one person as the winner.

*Any number of apps can be submitted and elected as winners but, as communally agreed, there will be one prize per developer.

*Apps must be available as executable and your entry should include at least two screen shots and a brief description to take part in the election. The applications have to run on default hardware running on an official version of Maemo or Harmattan.

*All applications, which are created and uploaded during the duration of the competition and do not violate any laws or copyright will take part in the election.

*A new application, in the context of the competition, is one which has not been previously developed for the Maemo or MeeGo Harmattan platform.

*Ported applications are welcome, however only the work of porting will be considered (unless the original program is from the same developer and was developed or extended within the competition timeframe). These entries should include a description of work done during the porting process to enable the application to run on the Maemo/MeeGo Harmattan platform.

*Already released software must have a substantial upgrade from previous releases to qualify for entry to the 'Updates to existing applications' category. These entries should also include a list of changes the author has made to the previous version. 

*Coding competition entries marked as beginner will also automatically be entered into the beginners contest if they meet the following criteria: entries to the beginners competition should be the authors first released coding project(s) for the Maemo and MeeGo Harmattan platforms, and must have been first released between the competition start and end dates. 

*Entries that are not stand alone software will have to include any libraries or files required to run, or they should be easily available via the normal Maemo.org and Nokia repositories. Clear instructions will have to be provided. In the case of interpreters and emulators copyrighted files should not be included. 

*There will be a feature freeze on entries during the voting stage of the competition. Please limit your code changes to bug fix only for any competition entry release during this period, and this restriction should remain until the end of the vote.

*Only users of [http://maemo.org maemo.org] who are registered at the start of the competition and have at least 10 karma at the time of voting are entitled to vote.

*Device prizes are distributed by Nokia, in accordance with any rules and restrictions of the Nokia device program. Receipt of devices from previous distribution programs could affect the competition winner(s) options of available device. To maintain consistency, device prizes are restricted to models the winner has not received from a previous device program. If a suitable device cannot be assigned, we will make efforts to substitute a share of the community prize fund.

*In the event where one or more applications are tied in a prize winning position after voting has ended, the application whose submission was received first by the competition email address (either directly or via the web page form) will take precendence.

*There is no legal right to win.

== Voting ==
('''NB: VOTING IS NOW closed! And results are coming soon...

[http://talk.maemo.org/showpost.php?p=1273254&amp;postcount=748 Preliminary reesults are here.]''')


Voting will run from '''September 19th through September 27th 2012, 23:59 UTC'''

The voting frontend, the [http://maemo.org/vote/ webinterface] via which you enter your vote, is the same as for the Maemo Council elections. So you can establish an order among the participating applications indicating your preferences. Thereby, the first choice has the most impact. With following choices the impact gets less and less. The last choice has the least impact. 

=== Counting Votes ===
After the voting period has finished the votes are counted. The ranking order of participants is determined based on all valid votes.

The tool used for counting the votes is OpenSTV. We use OpenSTV version 1.6.1-1 which can be publicly downloaded from http://packages.debian.org/squeeze/openstv . The openstv executable used is extracted from the *.deb package.

For each category, the ranking of candiates is determined individually.

As general &quot;vote counting system&quot; Fractional Transfer Single Transferable Vote (FTSTV) is used. FTSTV, however, does not provide a way for determining the order of participants out of the box.  

For determining the ranking among the participating applications the following approach is used:
* The winner is determined by running OpenSTV for one seat.
* Subsequently, the second place is determined by running OpenSTV for two seats. Thereby, the winner from step 1 plus another participant will be elected. The newly added/elected participant is placed second.
* For determining the third place, OpenSTV is run for three seats. The newly added/elected participant takes the third place.
* This process is repeated until the number of seats reaches n-1 with n being the number of participants. The remaining participant not being added or elected yet takes the last place.

For automating this counting process the following script is used
&lt;pre&gt;
election=$1

tail -n 1 $election | sed 's/&quot;//g'

&gt;/tmp/result
for i in $(seq $(expr $(head -c 2 $election) - 1))
do
  openstv-run-election -r CsvReport -s $i FTSTV $election \
    | awk -F, '/Elected/ { print $1 }' \
    | while read w
        do if ! grep -q &quot;$w&quot; /tmp/result
          then
            echo $w &gt;&gt; /tmp/result
            break
          fi
        done
done
awk 'BEGIN { i = 1; } { print i, $0; i++; }' /tmp/result | sed 's/&quot;//g'
&lt;/pre&gt; 
This script should be saved to a file named &quot;results&quot; and can be called as follows:
&lt;pre&gt;
for i in *.blt; do sh results $i; done
&lt;/pre&gt;
Assuming the script + openstv-run-election are in the same directory as the result files (the *.blt files) for all categories and the current directory is this directory, this way of calling the script will perform the counting for all categories.
The '''only''' thing that may be changed in the above script is the passage &quot;openstv-run-election&quot; for adding a proper path to the actual location of the OpenSTV executable, e.g., to point to &quot;/usr/bin/openstv-run-election&quot;. Aside from this exception the script must not be changed at all.

However it is still possible to also do the vote counting manually using the described process. Vote counting process, OpenSTV version used, and counting script are all publicly available so everyone can perform the voting and verify the final official results.

== App Developer Resources ==

=== Getting started with Maemo application development ===

The [http://www.forum.nokia.com/info/sw.nokia.com/id/e920da1a-5b18-42df-82c3-907413e525fb/Nokia_Qt_SDK.html Nokia Qt SDK] is the official set of tools with everything needed to design and create applications for the N900. The [http://maemo.org/development/ development wiki] is a great place to start, it contains lots of code examples and development guides. The [http://talk.maemo.org/showthread.php?t=43663 &quot;Windows Python and Qt in 30 mins&quot; thread] is a great PyQt tutorial for beginners and will have you coding your first app in minutes, and here's a [http://www.linuxuser.co.uk/tutorials/programming/develop-for-the-nokia-n900/ tutorial from Linuxuser.co.uk]. 

The [http://talk.maemo.org/forumdisplay.php?f=13 'Developer' forum on maemo.org] is an excellent resource to find answers and ask questions of your own.

== FAQ ==

=== Spreading the word ===

====Q: Which Twitter Hashtag to use for this Competition?====
: '''A:''' Please use [https://twitter.com/#!/search/%23mccXII '''#mccXII''']

=== Application requirements ===

====Q: It is obligatory to code in Qt?====
: '''A:''' No, it isn't, but it would make your life probably a lot easier because you will be able to reach more platforms. We encourage everyone to use Qt.

=== App/Application submission process ===

====Q: Where to submit my application?====

: '''A:''' You can enter your application via the competition entry form available at http://kojacker.net/blog/?page_id=170#entryform or by emailing your application to maemo.competition2012@gmail.com directly.



====Q: Who selects the category of the application?====
Will the developers select the category when they join the competition or will someone sort it into the correct category before the voting begins?

: '''A:''' They will choose the category for their app, but everyone should keep an eye on that. Before the voting process starts we'll check if every app is in a reasonable category, so that it is not possible to cheat by choosing the category with the lowest competition.

== Application proposal ==

http://www.developer.nokia.com/Community/Wiki/Apps_Missing Desirable apps missing from Nokia platforms

If you would like to have an App but you can't code yourself, write it down here! Many devs are happy to get a new idea input. (Rom Manager was a proposal from last year).

{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! scope=&quot;col&quot; width=&quot;10%&quot; |application name
! scope=&quot;col&quot; width=&quot;20%&quot; | short description
! scope=&quot;col&quot; width=&quot;60%&quot; |features
! scope=&quot;col&quot; width=&quot;10%&quot; |link to similar app or screenshots
|-
| Rom Manager
| A rom manager for emulators.
| Choose folders for roms of different systems.

Rom audition and fixing using [http://www.romcenter.com/ Romcenter] databases

Rom downloading.

Integration with most popular emulators (DrNokSnes, PicoDrive, ...)
| Rom Gripper for Android. 
|-

|-
| Tumblr client
| Tumblr client for n900 and n9/50
| login, post, read, follow, unfollow, etc.
| http://tumblita.com/ for example
|-

|-
| NFC Alarm clock
| An alarm clock that only turns off when a certain nfc tag is detected
| Clock, alarm, and assigning different tags to different alarms
| Don't know any
|-

|-
| NFC Card emulator
| Use nfc to simulate cards
| Store and manage different nfc/rfid cards, using the phone instead of the plastic
| Do not know any similar
|-



|}

== Discussion ==

Please participate in the discussion at [http://talk.maemo.org/showthread.php?t=83761 talk.maemo.org]

== Contact ==

You still have questions? Contact us!
* http://twitter.com/meetmeego
* http://facebook.com/meetmeego
* info@meetmeego.org

== Previous competitions ==

*[http://wiki.maemo.org/Maemo_Coding_Competition_1 Maemo Coding Competiton 1]
*[http://wiki.maemo.org/MeeGo_Coding_Competition_2011 MeeGo Coding Competition 2011]
== Events ==


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Coding Competition 2012</title>
    <id>5170</id>
    <revision>
      <id>50691</id>
      <timestamp>2012-11-06T10:45:13Z</timestamp>
      <contributor>
        <username>kojacker</username>
        <id>3195</id>
      </contributor>
      <comment>/* Prizes */</comment>
      <text xml:space="preserve">== Introduction ==

('''NB: VOTING IS NOW closed! And results are coming soon...

[http://talk.maemo.org/showpost.php?p=1273254&amp;postcount=748 Preliminary reesults are here.]'''
 
You can see a list of registered and submitted applications in the [http://wiki.maemo.org/Maemo.org_coding_competition_2012#Participants Participants section])


Welcome to the maemo.org '''Coding Competition 2012''' wiki page! Beginning Monday '''11th June''', and running for '''3 months''', new applications for '''Maemo and MeeGo Harmattan''' devices (and significant updates to existing ones) will be eligible to enter in this years competition. Whether you are an experienced developer or a beginner on your very first application, we have a category that suits you and your application!

Nokia has generously donated '''14 N950s and 11 N9s''' that we will assign to the winners and runner ups across the various categories. There will also be a '''community bounty''' made up of individual donations which will also be shared out amongst the best placed entries.

'''Entry is free.''' If there are any questions we have a discussion thread for the competition at http://talk.maemo.org/showthread.php?t=83761

If you are new to the Maemo community, please feel free to check out [http://maemo.org/intro/ our introduction page] to learn more about us.

Thanks for your interest in taking part, we can't wait to see what you'll develop for us! :)

(NB: The final details are still being ironed out, so the below is subject to change. Keep watching this space!)

== Categories ==

The 5 main categories are for new application submissions:

* Desktop, System &amp; Utilities (''Part 1'' [http://talk.maemo.org/showpost.php?p=1267671&amp;postcount=622] | ''Part 2''[http://talk.maemo.org/showpost.php?p=1267672&amp;postcount=623] | ''Part 3''[http://talk.maemo.org/showpost.php?p=1267674&amp;postcount=624])
* Games, Graphics &amp; Multimedia (''Part 1''[http://talk.maemo.org/showpost.php?p=1266564&amp;postcount=601] | ''Part 2''[http://talk.maemo.org/showpost.php?p=1266566&amp;postcount=602])
* Network &amp; Communications (''Part 1''[http://talk.maemo.org/showpost.php?p=1266030&amp;postcount=587] | ''Part2''[http://talk.maemo.org/showpost.php?p=1266031&amp;postcount=588])
* Location &amp; Navigation ([http://talk.maemo.org/showpost.php?p=1265628&amp;postcount=582])
* Other (''Part 1''[http://talk.maemo.org/showpost.php?p=1266013&amp;postcount=584] | ''Part 2''[http://talk.maemo.org/showpost.php?p=1266016&amp;postcount=585])

There is also a category for updated code and functionality on already released applications (inc porting applications from other platforms):

* Updates and development on existing apps (''Part 1'' [http://talk.maemo.org/showpost.php?p=1269280&amp;postcount=670]| ''Part 2'' [http://talk.maemo.org/showpost.php?p=1269282&amp;postcount=671] | ''Part 3'' [http://talk.maemo.org/showpost.php?p=1269283&amp;postcount=672]) 

And finally, there is an extra category specifically for those new to Maemo/MeeGo Harmattan development:

* Beginners (made up of entries from the above categories) (''Part 1'' [http://talk.maemo.org/showpost.php?p=1269327&amp;postcount=677] | ''Part 2'' [http://talk.maemo.org/showpost.php?p=1269328&amp;postcount=678] | ''Part 3'' [http://talk.maemo.org/showpost.php?p=1269329&amp;postcount=679] | ''Part 4'' [http://talk.maemo.org/showpost.php?p=1269330&amp;postcount=680])

Therefore, in total there are 7 categories in the coding competition.

== Results ==

The competition has now ended. The winning application and runners ups for each category is as follows:

{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Category
! Winning App
! 1st Runner Up
! 2nd Runner Up
! 3rd Runner Up
|-
| '''Desktop, System, &amp; Utilities'''
| Saera
| maecaltasks
| widgets
| KhtNotes
|-
| '''Location &amp; Navigation'''
| meeTrainer
| GeePS2
| EnyTrip
| Next BART
|-
| '''Network and Communications'''
| WifiTrans
| User Agent Tool
| genwall
| Transmission Remote
|-
| '''Games, Graphics &amp; Multimedia'''
| pcam
| Alpha Strike
| Crosswords
| Instago
|-
| '''Other'''
| MeeCoLay
| SIM-Switcher
| Pomodoro
| BioPower
|-
| '''Updates &amp; Development on Existing Apps'''
| modRana
| ProfileMatic
| N9 Quick Tweak
| MeeDocs 
|-
| '''Beginners'''
| Alpha Strike
| SIM-Switcher
| meeTrainer
| Crosswords
|}

== Competition Timeline ==

The competition is currently scheduled to accept submissions for 3 months, starting on '''Monday 11 June 2012''' and ending on '''Monday 10th September 2012'''. Competition entries must be submitted by 12 midnight on Sunday 9th September (UTC time). Voting will run from '''September 19th through September 27th 2012, 23:59 UTC'''.

==How to Submit an Application==

('''NB: Entry is now closed!''' The final date for submissions was September 9th at midnight. You can see a list of registered and submitted applications in the Participation table.
http://wiki.maemo.org/Maemo.org_coding_competition_2012#Participants)


To enter, you can submit your application entry via one of two ways - the '''competition submission page''' available at [http://kojacker.net/blog/?page_id=170#entryform] or by emailing directly to the email address '''maemo.competition2012@gmail.com'''. You will also align your entry to one of the judging categories[http://wiki.maemo.org/Maemo.org_coding_competition_2012#Categories] at that time. in addition, you will also need to provide some details for the judging thread, including 2 screenshots, a brief description of your application, and an outline of what work you personally completed on it. 

Eligible authors who mark their entry as 'beginner' will also have their application automatically entered into the beginner category. 

Only applications received via the submission page or emailed directly to the competition email address will be counted as valid entries in the competition. New participants are welcome to join at any time up until the closing date.

== Prizes ==

Nokia have generously donated '''14 Nokia N950 handsets''' and '''11 Nokia N9 handsets''' and these will be shipped free to the winners and runners up in each category, in accordance with the Nokia community device program. The devices assigned for each category is outlined below - the winner of each category will have first choice, followed by the second placed runner up, and so on until all devices have been assigned.
 
* Desktop, System &amp; Utilities (2 N950, 2 N9) 
* Games, Graphics &amp; Multimedia (2 N950, 2 N9) 
* Network &amp; Communications (2 N950, 2 N9) 
* Location &amp; Navigation (2 N950, 2 N9) 
* Other (2 N950, 2 N9) 

* Updates and development on existing apps (2 N950, 1 N9) 

* Beginners (made up of entries from the 5 main categories) (2 N950)

In addition, there will be share of the community prize fund made up of donations from community members. The split for the community donation collection is still to be confirmed at this time (this section will be updated later).


{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Category
! Developer
! Application
! Prize
! Nokia Developer Username
! Prize Received
|-
| Desktop, System, &amp; Utilities
| taixzo
| Saera
| N9
| taixzo
| Yes
|-
| Desktop, System, &amp; Utilities
| jackburton
| maecaltasks
| N950
| jackburton
| Yes
|-
| Desktop, System, &amp; Utilities
| Lucien XU
| widgets
| N9
| Sfiet_Konstantin
| 
|-
| Desktop, System, &amp; Utilities
| Khertan
| KhtNotes
| N9 (swapped from Network category)
| Khertan
| Yes
|-
| Desktop, System, &amp; Utilities
| 
| 
| 
|-
| Desktop, System, &amp; Utilities
| 
| 
| 
|-
| Games, Graphics, &amp; Multimedia
| qwazix
| pcam
| N9
| mikedem
| Yes
|-
| Games, Graphics, &amp; Multimedia
| aStrike
| Alpha Strike
| N950
| aStrike
| 
|-
| Games, Graphics, &amp; Multimedia
| draxcp6
| Crosswords
| N9
| DRAX
| Yes
|-
| Games, Graphics, &amp; Multimedia
| dirksonguer 
| Instago
| N950
| DirkSonguer
| Yes
|-
| Games, Graphics, &amp; Multimedia
| 
| 
| 
|-
| Games, Graphics, &amp; Multimedia
| 
| 
| 
|-
| Location &amp; Navigation
| Paolo Angelelli
| meeTrainer
| N950
| tedturbo
| 
|-
| Location &amp; Navigation
| fcrochik
| GeePS2
| N9
| felipecrochik
|
|-
| Location &amp; Navigation
| netvandal
| enyTrip
| N9
| netvandal
|
|-
| Location &amp; Navigation
| ikkysleepy
| Next BART
| N950
| ikkysleepy
| Yes
|-
| Location &amp; Navigation
| N/A
| 
| To be reallocated
|-
| Location &amp; Navigation
| N/A
| 
| To be reallocated
|-
| Network &amp; Communication
| cckwes
| WifiTrans
| Share of Bounty
|
|-
| Network &amp; Communication
| Halftux
| genwall
| N950
| Halftux
| Yes
|-
| Network &amp; Communication
| titilambert 
| HeySMS
| N950
| titilambert
| Yes
|-
| Network &amp; Communication
| shwstppr
| Bumblr
| Second Bounty Share
|
|-
| Network &amp; Communication
| kesrut
| ServerMonitor
| N950 (swapped from Desktop category)
| kesrut
|
|-
| Network &amp; Communication
| leon.anavi
| MoGateway
| N9
| leonanavi
| Yes
|-
| Other
| marmistrz
| MeeCoLay
| N950
| marmistrz
|
|-
| Other
| munozferna
| Pomodoro
| N9
| fmunozs
| Yes
|-
| Other
| jukra
| BioPower
| N950
| jukra
| Yes
|-
| Other
| helex
| WPx Emulatoor
| N9
| QtHelex
| 
|-
| Other
| 
| 
| 
|-
| Other
| 
| 
| 
|-
| Updates &amp; Development on Existing Apps
| MartinK
| modRana
| N9
| m4rtink
| Yes
|-
| Updates &amp; Development on Existing Apps
| ajalkane
| ProfileMatic
| Share of Bounty
|
|-
| Updates &amp; Development on Existing Apps
| Schturman
| N9 Quick Tweak
| N950
| schturman
| Yes
|-
| Updates &amp; Development on Existing Apps
| Marrat
| MeeDocs
| N950
| marrat
| 
|-
| Updates &amp; Development on Existing Apps
| 
| 
| 
|-
| Beginners
| Peter Leinchen
| SIM-Switcher
| N950
| lotte0509
| Yes
|-
| Beginners
| saidinesh5
| Puppy File Server
| N950
| saidinesh5
| 
|-
| Beginners
| 
| 
| 
|-
| Beginners
| 
| 
| 
|-
|}

== Donations for the Community Prize Fund ==

The following list shows all of the donations and pledges made to the community prize fund so far. There is no fixed amount - all donations are very welcome - and will be accepted from now until the closing date of the competition. 


To donate via PayPal, just click on the following link and specify the amount you want to donate. 
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=FTU62WATF94BW

Please don't forget to include your maemo.org username in the PayPal message to be mentioned in the following list. If no maemo.org username is included, the donation will be marked as anonymous. You can find more information on the donation paypal process (with screenshots) [http://talk.maemo.org/showpost.php?p=1223732&amp;postcount=262 on this post]


Our special thanks to the following people for their generous contributions:

{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Date'''
! Nickname'''
! Amount (gross) in €
! PayPal fee in €
! Amount (net) in €
! Paid
|-
| 24/5/2012||[http://talk.maemo.org/member.php?u=32339 kojacker]||50,00||1,30 ||48,70||yes, 15/6/2012
|-
| 25/5/2012||[http://talk.maemo.org/member.php?u=29528 Wonko]||40,00||1,11||38,89||yes
|-
| 25/5/2012||Anonymous||15,00||0,64||14,36||yes
|-
| 25/5/2012||Anonymous||50,00||2,80||47,20||yes
|-
| 26/5/2012||[http://talk.maemo.org/member.php?u=38083 helex]||50,00|| ||50,00||yes, 27/6/2012
|-
| 26/5/2012||[http://talk.maemo.org/member.php?u=30579 ljo]||60,00||1,49||58,51||yes
|-
| 03/6/2012||[http://maemo.org/profile/view/mrsellout/ mrsellout]||50,00||1,30||48,70||yes, 18/6/2012
|-
| 03/6/2012||Anonymous||5,00||0,45||4,55||yes
|-
| 12/6/2012||[http://talk.maemo.org/member.php?u=58874 zwevert]||5,00||0,45||4,55||yes
|-
| 12/6/2012||[http://talk.maemo.org/member.php?u=7630 qgil]||30,00||1,52||28,48||yes
|-
| 17/6/2012||[http://talk.maemo.org/member.php?u=44905 bingomion]||10,00||0,87||9,13||yes
|-
| 18/6/2012||[http://talk.maemo.org/member.php?u=58159 almamo]||20,00||1,33||18,67||yes
|-
| 22/6/2012||[http://talk.maemo.org/member.php?u=31497 P@t]||10,00||0,54||9,46||yes
|-
| 23/6/2012||[http://talk.maemo.org/member.php?u=32339 kojacker, in memory of Gary Birkett (lcuk)]||50,00||1,30 ||48,70||yes
|-
| 28/6/2012||[http://talk.maemo.org/member.php?u=30579 ljo]||60,00||1,49||58,51||yes
|-
| 04/7/2012||[http://talk.maemo.org/member.php?u=34156 ZogG]||20,00||1,39||18,61||yes
|-
| 18/7/2012||[http://talk.maemo.org/member.php?u=44304 marxian]||25,00||0,83||24,17||yes
|-
| 18/7/2012||[http://talk.maemo.org/member.php?u=20901 javispedro]||15,00||0,64||14,36||yes
|-
| 18/7/2012||[http://talk.maemo.org/member.php?u=20798 pigling]||10,00||0,87||9,13||yes
|-
| 26/7/2012||Anonymous||10,00||0,54||9,46||yes
|-
| 10/8/2012||[http://talk.maemo.org/member.php?u=41529 eduperez]||50,00||2,95||47,05||yes
|-
| 19/8/2012||[http://talk.maemo.org/member.php?u=63161 proprog]||15,00||0,64||14,36||yes
|-
| 24/8/2012||[http://talk.maemo.org/member.php?u=59339 Sap]||10,00||0,74||9,26||yes
|-
| 24/8/2012||[http://talk.maemo.org/member.php?u=16742 OVK]||30,00||0,92||29,08||yes
|-
| 31/8/2012||[http://talk.maemo.org/member.php?u=55015 leon-anavi]||10,00||0,54||9,46||yes
|-
| 03/9/2012||[http://talk.maemo.org/member.php?u=1203 jurop88]||20,00||0,73||19,27||yes
|-
| 08/9/2012||[http://talk.maemo.org/member.php?u=30535 Schturman]||15,00||1,13||13,87||yes
|-
| 08/9/2012||[http://talk.maemo.org/member.php?u=58873 justadude]||70,00||3,08||66,92||yes
|-
| 11/9/2012||Anonymous||10,00||0,54||9,46||yes
|-
| 13/9/2012||[http://talk.maemo.org/member.php?u=42513 rotoflex]||10,00||0,74||9,26||yes
|-
| 20/9/2012||[http://talk.maemo.org/member.php?u=26315 sony123]||10,00||0,74||9,26||yes
|-
| 27/9/2012||Anonymous||5,00||0,45||4,55||yes
|-
|||Totals||840,00 (Pledged)||33,06||805,94 (Paid)
|}

== Participants ==

The final list of participants for voting is available at http://talk.maemo.org/showpost.php?p=1264774&amp;postcount=579

And you can see the application submissions listed by category on the external website http://cc2012.crochik.com/ and also on forum posts via the links below:

*Location and Navigation [http://talk.maemo.org/showpost.php?p=1265628&amp;postcount=582]

*Others 1/2 [http://talk.maemo.org/showpost.php?p=1266013&amp;postcount=584]
*Others 2/2 [http://talk.maemo.org/showpost.php?p=1266016&amp;postcount=585]

*Network and Communications 1/2 [http://talk.maemo.org/showpost.php?p=1266030&amp;postcount=587]
*Network and Communications 2/2 [http://talk.maemo.org/showpost.php?p=1266031&amp;postcount=588]

*Games, Graphic and Multimedia 1/2 [http://talk.maemo.org/showpost.php?p=1266564&amp;postcount=601]
*Games, Graphic and Multimedia 2/2 [http://talk.maemo.org/showpost.php?p=1266566&amp;postcount=602]

*Desktop, Systems and Utilities 1/3 [http://talk.maemo.org/showpost.php?p=1267671&amp;postcount=622]
*Desktop, Systems and Utilities 2/3 [http://talk.maemo.org/showpost.php?p=1267672&amp;postcount=623]
*Desktop, Systems and Utilities 3/3 [http://talk.maemo.org/showpost.php?p=1267674&amp;postcount=624]

*Updates and development on existing applications 1/3 [http://talk.maemo.org/showpost.php?p=1269280&amp;postcount=670]
*Updates and development on existing applications 2/3 [http://talk.maemo.org/showpost.php?p=1269282&amp;postcount=671]
*Updates and development on existing applications 3/3 [http://talk.maemo.org/showpost.php?p=1269283&amp;postcount=672])

*Beginners 1/4 [http://talk.maemo.org/showpost.php?p=1269327&amp;postcount=677]
*Beginners 2/4 [http://talk.maemo.org/showpost.php?p=1269328&amp;postcount=678]
*Beginners 3/4 [http://talk.maemo.org/showpost.php?p=1269329&amp;postcount=679]
*Beginners 4/4 [http://talk.maemo.org/showpost.php?p=1269330&amp;postcount=680]


The below table displays the submission details, as received, for each application. (The table is currently in process of being updated with the final details.)

{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Developer
! Application
! Category
! Beginner Entry (Y/N)
! Platform (MeeGo/Maemo/etc)
! Entry Received?
|-
| marrat (Marcel D. Juhnke)
| MeeDocs (Google Docs/GDrive client for N9)
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| Khertan (Benoît HERVIER)
| [http://khertan.net/KhtBMA KhtBMA]
| Desktop, System &amp; Utilities 
| N
| Harmattan
| YES
|-
| Khertan (Benoît HERVIER)
| [http://khertan.net/KhtNotes KhtNotes]
| Desktop, System &amp; Utilities 
| N
| Harmattan
| YES
|-
| Khertan (Benoît HERVIER)
| [http://khertan.net/Wleux Wleux]
| Desktop, System &amp; Utilities 
| N
| Harmattan
| YES
|-
| titilambert (Thibault Cohen)
| [http://talk.maemo.org/showthread.php?t=84705 HeySms]
| Network &amp; Communications
| N
| Fremantle
| YES
|-
| chrm (Christoph Maciejewski)
| [http://talk.maemo.org/showthread.php?t=85427 DingMee] 
| Desktop, System &amp; Utilities
| Y
| Harmattan
| YES
|-
| bibek (Anand Bibek)
| DoMee 
| Desktop, System &amp; Utilities
| N
| Harmattan
| YES
|-
| bibek (Anand Bibek)
| Blob 
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| taixzo
| [http://talk.maemo.org/showthread.php?t=84753 Saera] (Voice command and AI)
| Desktop, System &amp; Utilities
| N
| Fremantle
| YES
|-
| pa (Paolo Angelelli)
| meeTrainer 
| Location &amp; Navigation
| Y
| Harmattan
| YES
|-
| pa (Paolo Angelelli)
| syncgcontacts 
| Network &amp; Communications 
| Y
| Harmattan
| YES
|-
| piggz (Adam Pigg)
| Square-It (Old fashioned game)
| Games
| N
| Harmattan, Fremantle
| YES
|- 
| sakya (Paolo Iommarini)
| Lone Wolf for Maemo
| Games, Graphics &amp; Multimedia
| N
| [http://talk.maemo.org/showthread.php?t=86352 Fremantle]
| YES
|-
| kunal_the_one (Kunal Parmar)
| Crazy Chickens game
| Updates and development on existing apps
| N
| Fremantle
| YES
|-
| kunal_the_one (Kunal Parmar)
| Audiobook Reader
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| swinkels (Slawomir Musial)
| [http://talk.maemo.org/showthread.php?t=86715 Nyan Cat. The Game] 
| Games, Graphics &amp; Multimedia
| N
| Harmattan
| YES
|-
| rfeese (Roger Feese)
| Math Bingo
| Games, Graphics &amp; Multimedia
| Y
| Fremantle
| YES
|-
| rainisto (Jonni Rainisto )
| [http://store.ovi.com/content/283951 Presence VNC] with full VKB support for N9
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| jackburton (Brandon Saxe)
| [http://talk.maemo.org/showthread.php?t=86736 maecalTasks] (N900)
| Desktop, System &amp; Utilities
| N
| Fremantle
| YES
|-
| ajalkane (Arto Jalkanen)
| ProfileMatic
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| adityamhatre (Aditya Mhatre)
| Sync yourself 
| Desktop, System &amp; Utilities
| Y
| Harmattan
| YES
|-
| Iktwo sh
| Meemory, puzzle game to test your memory
| Games, Graphics &amp; Multimedia
| N
| Fremantle
| YES
|-
| Iktwo sh
| Sim shorcut remover
| Other
| N
| Harmattan
| YES
|-
| [http://talk.maemo.org/member.php?u=51684 draxcp6]
| [http://talk.maemo.org/showthread.php?t=86355 Crosswords]
| Games, Graphics &amp; Multimedia
| Y
| [http://www.4shared.com/file/7V6QXKSX/crosswordsqml_0_0_1_armel_frem.html Fremantle], [http://www.4shared.com/file/fkRgqHt5/crosswordsqml_001_armel_harmat.html Harmattan], [http://www.4shared.com/file/gKk0U5-a/Crosswords_Install.html Desktop]
| YES
|-
| adityamhatre (Aditya Mhatre)
| Reaction Challenge (First one to tap wins)
| Games, Graphics &amp; Multimedia
| Y
| Harmattan
| YES
|-
| fcrochik (Felipe Crochik)
| [http://store.ovi.com/content/286776 GeePS2] 
| Location &amp; Navigation 
| N
| Harmattan
| YES
|-
| trx (Svetozar Belic)
| TxPad QML (Total rewrite of Maemo5 TxPad for Harmattan)
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| qwazix (Michael Demetriou)
| [http://talk.maemo.org/showthread.php?t=85512 &amp;rho;cam] (raw image capture sοftware)
| Games, Graphics &amp; Multimedia
| Ν
| Fremantle
| YES
|-
| shwstppr (Abhishek Kumar)
| Bumblr(Tumblr App)
| Network &amp; Communications
| N
| Harmattan
| YES
|-
| cckwes (Wesley Chong)
| ThrowIn
| Games, Graphics &amp; Multimedia
| N
| Harmattan
| YES
|-
| [http://talk.maemo.org/member.php?u=18368 rash.m2k]  (Rashad Mughal)
| [http://talk.maemo.org/showthread.php?t=86740 meeBay] 
| Network &amp; Comminucations
| N
| Harmattan
| YES
|-
| 3clch4pawlakov, Tomx95 (Tomasz Pastusiak)
| [http://talk.maemo.org/showthread.php?t=86661 BlockMaster] - Puzzle solving 2D platformer
| Games
| Y
| Fremantle
| YES
|-
| [http://maemo.org/profile/view/Halftux Halftux (Christian Weniger)]
| [http://talk.maemo.org/showthread.php?t=85444 Genwall] (Iptables firewall gui)
| Network &amp; Communications
| Y
| [http://maemo.org/packages/view/genwall/ Fremantle]
| YES
|-
| cckwes (Wesley Chong)
| [http://talk.maemo.org/showthread.php?t=85632 WifiTrans]
| Network &amp; Communications
| N
| Harmattan, Fremantle
| YES
|-
| everall (Eddy Alleman)
| NumboTime
| Other
| Y
| Harmattan
| YES
|-
| [http://maemo.org/profile/view/Avis Avis (Alek Terekhov)]
| [http://store.ovi.com/content/301269 TriQuick]   
| Games, Graphics and Multimedia
| N
| Fremantle, Harmattan
| YES
|-
| MartinK (Martin Kolman)
| modRana flexible GPS navigation system
| Updates and development on existing apps
| N
| [http://modrana.org/trac/wiki/SystemDownloadEN#maemo Fremantle], [http://modrana.org/trac/wiki/SystemDownloadEN#harmattan Harmattan], [http://modrana.org/trac/wiki/SystemDownloadEN#tarball Desktop]
| YES
|-
| MartinK (Martin Kolman)
| Mieru flexible manga and comic book reader
| Updates and development on existing apps
| N
| Fremantle
| YES
|-
| qwazix (Michael Demetriou)
| [http://talk.maemo.org/showthread.php?t=83682 timenow], proximity enabled time on the idle screen of the N900
| Desktop, System &amp; Utilities
| Ν
| Fremantle
| YES
|-
| saidinesh5 (Dinesh Manajipet)
| [http://garageresearch.blogspot.com/p/puppy-file-server.html Puppy File Server]
| Network, System &amp; Utilities
| Y
| Harmattan
| YES
|-
| munozferna (Fernando Muñoz)
| [http://talk.maemo.org/showthread.php?p=1255042 Transmission remote]
| Network &amp; Communications
| Ν
| Harmattan
| YES
|-
| kosirj (Jan Košir)
| FilmNotes
| Desktop, System &amp; Utilities
| Y
| Harmattan
| YES
|-
| [http://maemo.org/profile/view/b0unc3 b0unc3] (Daniele Maio)
| [http://store.ovi.com/content/281831 AutoCallSMS]
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| [http://maemo.org/profile/view/noidea/ noidea] (Leonid Gusak)
| [http://qmetro.sf.net qMetro] 
| Location &amp; Navigation 
| N
| Fremantle
| YES
|-
| [http://talk.maemo.org/member.php?u=45252 peterleinchen] (Peter Leinchen)
| [http://talk.maemo.org/showthread.php?p=1243525#post1243525 SIM-Switcher]
| Other
| Y
| Fremantle
| YES
|-
| jmankinen (Janne Mankinen)
| QMetronome
| Other
| Y
| Harmattan
| YES
|-
| EmaNymton (Boris Pohler)
| [http://talk.maemo.org/showthread.php?t=86388 MeeGoal] 
| Other
| N
| Harmattan
| YES
|-
| helihyv (Heli Hyvättinen)
| [http://talk.maemo.org/showthread.php?t=86675 CountYourScores]
| Desktop, System &amp; Utilities
| N
| Harmattan, Fremantle
| YES
|-
| jukra (Jukka Rajaniemi)
| [http://talk.maemo.org/showthread.php?t=86608 BioPower]
| Other
| Y
| Fremantle
| YES
|-
| bober12 (Dmitrijs Juškovs)
| [http://ftpud-apps.blogspot.com/2012/09/hits-nokia-n900-rhythm-game.html Hits] - Rhythm game.
| Games, Graphics &amp; Multimedia
| Y
| Fremantle
| YES
|-
| heymaster (Kęstutis Rutkauskas)
| ServerMonitor 
| Network &amp; Communications 
| Y
| Harmattan
| YES
|-
| [http://talk.maemo.org/member.php?u=38083 helex (Michael Muth)]
| [http://talk.maemo.org/showthread.php?t=86217 WPx Emulator]
| Other 
| N
| Harmattan, Fremantle
| YES
|-
| [http://talk.maemo.org/member.php?u=55015 leon.anavi (Leon Anavi)]
| MoGateway
| Network &amp; Communications
| N
| [http://store.ovi.com/content/304993 Harmattan]
| YES
|-
| [http://talk.maemo.org/member.php?u=55015 leon.anavi (Leon Anavi)]
| location2sms
| Updates and development on existing apps 
| N
| [http://store.ovi.com/content/168861 Harmattan]/[https://play.google.com/store/apps/details?id=com.anavi.location2sms Android]
| YES
|-
| Sfiet_Konstantin (Lucien XU)
| widgets
| Desktop, System &amp; Utilities 
| N
| Harmattan
| YES
|-
| [http://maemo.org/profile/view/Avis Avis (Alek Terekhov)] 
| [http://talk.maemo.org/showthread.php?t=86563 USSD Balance] (Get mobile balance over USSD).  
| Desktop, System &amp; Utilities
| N
| Harmattan
| YES
|-
| [http://maemo.org/profile/view/qnetman/ Anatoly Kozlov]
| [http://projects.developer.nokia.com/qnetman/wiki QNetMan2]
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| [http://maemo.org/profile/view/qnetman/ Anatoly Kozlov]
| [http://projects.developer.nokia.com/meegim/wiki MeegIM] - xmpp client
| Network &amp; Communications
| N
| Harmattan, Fremantle
| YES
|-
| [http://maemo.org/profile/view/rzr/ rzr (Phil Coval)]
| [http://projects.developer.nokia.com/redak/wiki Redak]
| Updates and development on existing apps
| N
| [http://store.ovi.com/content/269879 Harmattan]
| YES
|-
| munozferna (Fernando Muñoz)
| [http://talk.maemo.org/showthread.php?p=1263412 Pomodoro]
| Other
| Ν
| Harmattan
| YES
|-
| tigre-bleu (Antoine Vacher)
| [http://tigre-bleu.github.com/allocine-harmattan/ AlloCine]
| Desktop, System &amp; Utilities
| Y
| Harmattan, Symbian later
| YES
|-
| opax
| SMS Scheduler
| Network &amp; Communications
| Ν
| Harmattan
| YES
|-
| CaCO3
| MiniBible
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| CaCO3
| CacheMe
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| Wikiwide
| [http://talk.maemo.org/showthread.php?t=86640 VirtRanSim], applet to choose virtual keyboard
| Desktop, System &amp; Utilities
| N
| Fremantle
| YES
|-
| [http://talk.maemo.org/member.php?u=64345 abhinav12] (Abhinav Singh)
| [http://talk.maemo.org/showthread.php?t=86721 ReferIt] N9 online dictionary app with audio pronunciation
| Desktop, System &amp; Utilities
| Y
| Harmattan
| YES
|-
| ikkysleepy
| Next BART
| Location &amp; Navigation
| Y
| Harmattan
| YES
|-
| ajalkane (Arto Jalkanen)
| ToggleWlanScan
| Network &amp; Communications
| N
| Harmattan
| YES
|-
| tommyj23 (Jonathan Rejon)
| Adventlands
| Games, Graphics &amp; Multimedia
| N
| Harmattan
| YES
|-
| briggers (Ashish Bhate)
| [http://talk.maemo.org/showthread.php?t=86645 Server Status Widget]
| Desktop, System &amp; Utilities 
| Y
| Fremantle
| YES
|-
| Schturman (Emil Yozgin)
| [http://talk.maemo.org/showthread.php?t=80600 N9 Quick Tweak]
| Updates and development on existing apps
| N
| Harmattan
| YES
|-
| dirksonguer (Dirk Songuer)
| [http://n9development.tumblr.com/ Instago, an Instagram client for MeeGo.]
| Games, Graphics &amp; Multimedia
| N
| Harmattan
| YES
|-
| aStrike
| Alpha Strike
| Games, Graphics, % Multimedia
| Y
| Fremantle 
| YES
|-
| [http://maemo.org/profile/view/frafl/ frafl]
| [http://maemo.org/packages/view/flatboat/ modern computer flatboat ] [http://talk.maemo.org/showthread.php?s=fcfddc31eef76b3b0ff647165f128e7e&amp;t=86538 TMO], a simple pdf viewer
| Desktop, System &amp; Utilities
| N
| Fremantle, harmattan (UNTESTED!)
| YES
|-
| [http://maemo.org/profile/view/computerinfo21/ computerinfo21]
| [http://talk.maemo.org/showthread.php?p=1263351#post1263351 Task Poach]
| Other
| Y
| Fremantle
| YES
|-
| pipould
| Clock My World
| Location &amp; Navigation
| Y
| Harmattan
| YES
|-
| Lars Arnbak / fl4f
| MeeWOD
| Desktop, System &amp; Utilities
| Y
| Harmattan
| YES
|-
| [http://talk.maemo.org/member.php?u=62213 Hossein]
| [http://talk.maemo.org/showthread.php?p=1263245 Kana of The Day]
| Other
| Y
| Fremantle
| YES
|-
| mbo
| [http://talk.maemo.org/showthread.php?t=86712 Klippr]
| Desktop, System, &amp; Utilities
| N
| Harmattan
| YES
|-
| marmistrz (Marcin Mielniczuk)
| [http://talk.maemo.org/showthread.php?t=86633 PowEdit]
| Desktop, System, &amp; Utilities
| N
| Fremantle
| YES
|-
| marmistrz (Marcin Mielniczuk)
| [http://talk.maemo.org/showthread.php?t=86714 User Agent Tool]
| Network &amp; Communications
| N
| Fremantle
| YES
|-
| marmistrz (Marcin Mielniczuk)
| [http://talk.maemo.org/showthread.php?t=84482 MeeCoLay]
| Other
| N
| Fremantle
| YES
|-
| marmistrz (Marcin Mielniczuk)
| MaeLyrica
| Games, Graphics, Multimedia 
| N
| Fremantle
| YES
|-
| [http://talk.maemo.org/member.php?u=63873 Alexislavie (Alexis Lavie)]
| [http://talk.maemo.org/showthread.php?p=1263221 ext2Manager]
| Desktop, System &amp; Utilities
| Y
| Harmattan
| YES
|-
| gionni88
| NoStopPlayer
| Games, Graphics, &amp; Multimedia
| N
| Harmattan
| YES
|-
| netvandal
| enyTrip
| Location &amp; Navigation
| N
| Harmattan
| YES
|-
| inz (Santtu Lakkala)
| Irssi optimized terminal IrsTerm
| Network &amp; Communication
| N
| Fremantle
| YES
|}

== Rules ==

To ensure that the event runs properly, there are a few essential rules:

*Only individuals may participate. Companies are excluded from the competition because of equity reasons.

*If you have coded your app in a team and you win one of the prizes, your team has to designate one person as the winner.

*Any number of apps can be submitted and elected as winners but, as communally agreed, there will be one prize per developer.

*Apps must be available as executable and your entry should include at least two screen shots and a brief description to take part in the election. The applications have to run on default hardware running on an official version of Maemo or Harmattan.

*All applications, which are created and uploaded during the duration of the competition and do not violate any laws or copyright will take part in the election.

*A new application, in the context of the competition, is one which has not been previously developed for the Maemo or MeeGo Harmattan platform.

*Ported applications are welcome, however only the work of porting will be considered (unless the original program is from the same developer and was developed or extended within the competition timeframe). These entries should include a description of work done during the porting process to enable the application to run on the Maemo/MeeGo Harmattan platform.

*Already released software must have a substantial upgrade from previous releases to qualify for entry to the 'Updates to existing applications' category. These entries should also include a list of changes the author has made to the previous version. 

*Coding competition entries marked as beginner will also automatically be entered into the beginners contest if they meet the following criteria: entries to the beginners competition should be the authors first released coding project(s) for the Maemo and MeeGo Harmattan platforms, and must have been first released between the competition start and end dates. 

*Entries that are not stand alone software will have to include any libraries or files required to run, or they should be easily available via the normal Maemo.org and Nokia repositories. Clear instructions will have to be provided. In the case of interpreters and emulators copyrighted files should not be included. 

*There will be a feature freeze on entries during the voting stage of the competition. Please limit your code changes to bug fix only for any competition entry release during this period, and this restriction should remain until the end of the vote.

*Only users of [http://maemo.org maemo.org] who are registered at the start of the competition and have at least 10 karma at the time of voting are entitled to vote.

*Device prizes are distributed by Nokia, in accordance with any rules and restrictions of the Nokia device program. Receipt of devices from previous distribution programs could affect the competition winner(s) options of available device. To maintain consistency, device prizes are restricted to models the winner has not received from a previous device program. If a suitable device cannot be assigned, we will make efforts to substitute a share of the community prize fund.

*In the event where one or more applications are tied in a prize winning position after voting has ended, the application whose submission was received first by the competition email address (either directly or via the web page form) will take precendence.

*There is no legal right to win.

== Voting ==
('''NB: VOTING IS NOW closed! And results are coming soon...

[http://talk.maemo.org/showpost.php?p=1273254&amp;postcount=748 Preliminary reesults are here.]''')


Voting will run from '''September 19th through September 27th 2012, 23:59 UTC'''

The voting frontend, the [http://maemo.org/vote/ webinterface] via which you enter your vote, is the same as for the Maemo Council elections. So you can establish an order among the participating applications indicating your preferences. Thereby, the first choice has the most impact. With following choices the impact gets less and less. The last choice has the least impact. 

=== Counting Votes ===
After the voting period has finished the votes are counted. The ranking order of participants is determined based on all valid votes.

The tool used for counting the votes is OpenSTV. We use OpenSTV version 1.6.1-1 which can be publicly downloaded from http://packages.debian.org/squeeze/openstv . The openstv executable used is extracted from the *.deb package.

For each category, the ranking of candiates is determined individually.

As general &quot;vote counting system&quot; Fractional Transfer Single Transferable Vote (FTSTV) is used. FTSTV, however, does not provide a way for determining the order of participants out of the box.  

For determining the ranking among the participating applications the following approach is used:
* The winner is determined by running OpenSTV for one seat.
* Subsequently, the second place is determined by running OpenSTV for two seats. Thereby, the winner from step 1 plus another participant will be elected. The newly added/elected participant is placed second.
* For determining the third place, OpenSTV is run for three seats. The newly added/elected participant takes the third place.
* This process is repeated until the number of seats reaches n-1 with n being the number of participants. The remaining participant not being added or elected yet takes the last place.

For automating this counting process the following script is used
&lt;pre&gt;
election=$1

tail -n 1 $election | sed 's/&quot;//g'

&gt;/tmp/result
for i in $(seq $(expr $(head -c 2 $election) - 1))
do
  openstv-run-election -r CsvReport -s $i FTSTV $election \
    | awk -F, '/Elected/ { print $1 }' \
    | while read w
        do if ! grep -q &quot;$w&quot; /tmp/result
          then
            echo $w &gt;&gt; /tmp/result
            break
          fi
        done
done
awk 'BEGIN { i = 1; } { print i, $0; i++; }' /tmp/result | sed 's/&quot;//g'
&lt;/pre&gt; 
This script should be saved to a file named &quot;results&quot; and can be called as follows:
&lt;pre&gt;
for i in *.blt; do sh results $i; done
&lt;/pre&gt;
Assuming the script + openstv-run-election are in the same directory as the result files (the *.blt files) for all categories and the current directory is this directory, this way of calling the script will perform the counting for all categories.
The '''only''' thing that may be changed in the above script is the passage &quot;openstv-run-election&quot; for adding a proper path to the actual location of the OpenSTV executable, e.g., to point to &quot;/usr/bin/openstv-run-election&quot;. Aside from this exception the script must not be changed at all.

However it is still possible to also do the vote counting manually using the described process. Vote counting process, OpenSTV version used, and counting script are all publicly available so everyone can perform the voting and verify the final official results.

== App Developer Resources ==

=== Getting started with Maemo application development ===

The [http://www.forum.nokia.com/info/sw.nokia.com/id/e920da1a-5b18-42df-82c3-907413e525fb/Nokia_Qt_SDK.html Nokia Qt SDK] is the official set of tools with everything needed to design and create applications for the N900. The [http://maemo.org/development/ development wiki] is a great place to start, it contains lots of code examples and development guides. The [http://talk.maemo.org/showthread.php?t=43663 &quot;Windows Python and Qt in 30 mins&quot; thread] is a great PyQt tutorial for beginners and will have you coding your first app in minutes, and here's a [http://www.linuxuser.co.uk/tutorials/programming/develop-for-the-nokia-n900/ tutorial from Linuxuser.co.uk]. 

The [http://talk.maemo.org/forumdisplay.php?f=13 'Developer' forum on maemo.org] is an excellent resource to find answers and ask questions of your own.

== FAQ ==

=== Spreading the word ===

====Q: Which Twitter Hashtag to use for this Competition?====
: '''A:''' Please use [https://twitter.com/#!/search/%23mccXII '''#mccXII''']

=== Application requirements ===

====Q: It is obligatory to code in Qt?====
: '''A:''' No, it isn't, but it would make your life probably a lot easier because you will be able to reach more platforms. We encourage everyone to use Qt.

=== App/Application submission process ===

====Q: Where to submit my application?====

: '''A:''' You can enter your application via the competition entry form available at http://kojacker.net/blog/?page_id=170#entryform or by emailing your application to maemo.competition2012@gmail.com directly.



====Q: Who selects the category of the application?====
Will the developers select the category when they join the competition or will someone sort it into the correct category before the voting begins?

: '''A:''' They will choose the category for their app, but everyone should keep an eye on that. Before the voting process starts we'll check if every app is in a reasonable category, so that it is not possible to cheat by choosing the category with the lowest competition.

== Application proposal ==

http://www.developer.nokia.com/Community/Wiki/Apps_Missing Desirable apps missing from Nokia platforms

If you would like to have an App but you can't code yourself, write it down here! Many devs are happy to get a new idea input. (Rom Manager was a proposal from last year).

{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! scope=&quot;col&quot; width=&quot;10%&quot; |application name
! scope=&quot;col&quot; width=&quot;20%&quot; | short description
! scope=&quot;col&quot; width=&quot;60%&quot; |features
! scope=&quot;col&quot; width=&quot;10%&quot; |link to similar app or screenshots
|-
| Rom Manager
| A rom manager for emulators.
| Choose folders for roms of different systems.

Rom audition and fixing using [http://www.romcenter.com/ Romcenter] databases

Rom downloading.

Integration with most popular emulators (DrNokSnes, PicoDrive, ...)
| Rom Gripper for Android. 
|-

|-
| Tumblr client
| Tumblr client for n900 and n9/50
| login, post, read, follow, unfollow, etc.
| http://tumblita.com/ for example
|-

|-
| NFC Alarm clock
| An alarm clock that only turns off when a certain nfc tag is detected
| Clock, alarm, and assigning different tags to different alarms
| Don't know any
|-

|-
| NFC Card emulator
| Use nfc to simulate cards
| Store and manage different nfc/rfid cards, using the phone instead of the plastic
| Do not know any similar
|-



|}

== Discussion ==

Please participate in the discussion at [http://talk.maemo.org/showthread.php?t=83761 talk.maemo.org]

== Contact ==

You still have questions? Contact us!
* http://twitter.com/meetmeego
* http://facebook.com/meetmeego
* info@meetmeego.org

== Previous competitions ==

*[http://wiki.maemo.org/Maemo_Coding_Competition_1 Maemo Coding Competiton 1]
*[http://wiki.maemo.org/MeeGo_Coding_Competition_2011 MeeGo Coding Competition 2011]
== Events ==


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org IRC cloak list</title>
    <id>3432</id>
    <revision>
      <id>42316</id>
      <timestamp>2011-03-02T15:18:52Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add table caption, make table sortable</comment>
      <text xml:space="preserve">{| class=&quot;wikitable sortable&quot;
|+ Cloak list for [[IRC|Maemo IRC channels]]
|-
! maemo.org nick
! Requested?
! Special
! Cloak
|-
|achipa || Yes || ||  Maemo/community/contributor/achipa
|-
|andre || Yes || bugmaster || Maemo/community/bugmaster/andre
|-
|andy80 || Yes || || Maemo/community/contributor/andy80
|-
|anidel || Yes || || Maemo/community/contributor/Anidel
|-
|asimulator || Yes || Nokia || Maemo/uxdesigner/aSIMULAtor
|-
|atmasphere || || || 
|-
|baloo || Yes || || Maemo/community/contributor/JamieBennett
|-
|barbieri || || ||
|-
|bergie || || ||
|-
|bundyo || || ||
|-
|conny || || ||
|-
|crashanddie || Yes || || Maemo/community/contributor/crashanddie
|-
|danielwilms || Yes || Nokia || Maemo/maemo.org/developer-support
|-
|detective || || || 
|-
|dneary || Yes || docmaster || Maemo/community/docmaster/dneary
|-
|ed_ || Yes || Nokia ||    Maemo/community/contributor/Ed_B
|-
|fanoush || || ||
|-
|feri || || ||
|-
|fiferboy || Yes || || Maemo/community/contributor/fiferboy
|-
|florian || Yes || || Maemo/community/contributor/florian
|- 
|fms || No || ||
|-
|framstag || || ||
|-
|fredoll || || ||
|-
|gcobb || Yes || Council || Maemo/community/council/gcobb
|-
|jaakkov    || Yes || Nokia || Maemo/uxdesigner/JaakkoV
|-
|jaffa || Yes || || Maemo/community/contributor/Jaffa |
|-
|jatikka || || ||
|-
|jeremiah || Yes || debmaster || Maemo/community/debmaster/jeremiah
|-
|jku || ||  ||
|-
|khertan || || ||
|-
|konttori ||Yes || Nokia || Maemo/Nokia/OS/konttori
|-
|kulve || No || ||
|-
|lardman || Yes || || Maemo/community/contributor/lardman
|-
|lbt || Yes || || Maemo/community/contributor/lbt
|-
|lcuk || Yes || || Maemo/community/contributor/lcuk
|-
|lma || || || 
|-
|lucianomw || || || 
|-
|marting    || Yes || Nokia || Maemo/uxdesigner/MartinG
|-
|mgedmin || Yes || || Maemo/community/contributor/mgedmin
|-
|mikkov || || ||
|-
|milhouse ||Yes || || Maemo/community/contributor/Milhouse
|-
|MohammadAG ||Yes || || Maemo/community/contributor/MohammadAG
|-
|murrayc || || ||
|-
|mvo || Nokia || ||
|-
|nakkebar || Nokia || ||
|-
|ossi1967 || || ||
|-
|pipeline || || ||
|-
|pycage || || ||
|-
|qgil || Nokia || || 
|-
|qole || Yes || Council || Maemo/community/council/qole
|-
|qwerty12 || Yes || || Maemo/community/contributor/qwerty12
|-
|rsuplido || || talkmaster || Maemo/community/talkmaster/Reggie
|-
|sarev0k || || ||
|-
|sjgadsby || || ||
|-
|stskeeps ||Yes || distmaster || Maemo/community/distmaster/Stskeeps
|-
|texrat || Yes || Council || Maemo/community/council/Texrat
|-
|thoughtfix || No || ||
|-
|thp || Yes || || Maemo/community/contributor/thp
|-
|timeless || Yes || || Maemo/community/contributor/timeless
|-
|timsamoff || Yes || || Maemo/community/contributor/timsamoff
|-
|tomazd || || || 
|-
|torpedo48 || || || 
|-
|vdvsx || Yes || Council || Maemo/community/council/VDVsx
|-
|xfade || Yes || webmaster || Maemo/community/webmaster/X-Fade
|-
|yerga || Yes || || Maemo/community/contributor/yerga
|-
|zerojay || Yes || || Maemo/community/contributor/zerojay
|-
|}


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints</title>
    <id>2743</id>
    <revision>
      <id>20199</id>
      <timestamp>2009-10-15T14:39:18Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Maemo.org Sprints]] moved to [[Maemo.org sprints]]: Standardise capitalisation of page names</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo.org sprints]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints</title>
    <id>2743</id>
    <revision>
      <id>20199</id>
      <timestamp>2009-10-15T14:39:18Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Maemo.org Sprints]] moved to [[Maemo.org sprints]]: Standardise capitalisation of page names</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo.org sprints]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/April 09</title>
    <id>1763</id>
    <revision>
      <id>33806</id>
      <timestamp>2010-05-04T09:53:04Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}
== April 2009 Sprint planning ==
* [[Maemo.org Sprints/April 09/Meeting|Planning meeting]]: Monday, 2009-04-06 at [http://www.timeanddate.com/worldclock/fixedtime.html?month=4&amp;day=6&amp;year=2009&amp;hour=13&amp;min=30&amp;sec=0 13:30 UTC] in [[IRC|#maemo-meeting]].
* Right after [[Maemo.org Sprints/March 09]] review.
* Followed by [[Maemo.org Sprints/May 09]].
* This sprint will be formally reviewed on [http://timeanddate.com/worldclock/fixedtime.html?month=5&amp;day=7&amp;year=2009&amp;hour=13&amp;min=30&amp;sec=0&amp;p1=0 2009-0507 at 13:30 UTC] in [[IRC|#maemo-meeting]].

==Tasks==
[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Task ID
! Committed
! Due date
! Task
! Sprint priority
! Owner
! Percentage complete
! Notes
|- style=&quot;background:Tomato&quot;
|8.11-01
|2008-11-04
|[[Maemo.org Sprints/May 09|May 09]]
|[[Task:Texts for maemo.nokia.com|Texts for maemo.nokia.com]]
|Should
|qgil
|20%
|Maemo 5 beta and Danish Weekend ate most of the time I had prepared for this.
|- style=&quot;background:LightGreen&quot;
|8.11-02
|2008-11-04
|[[Maemo.org Sprints/April 09|April 09]]
|[http://bugs.maemo.org/show_bug.cgi?id=2179 Karma for applications - publish proposal]
|Must
|Bergie
|100%
|[[Task:Karma for applications|Karma providers list]] done
|-
|9.02-01
|2009-02-04
|[[Maemo.org Sprints/April 09|April 09]]
|[http://bugs.maemo.org/show_bug.cgi?id=3846 List Maemo bugzilla patches - create patchset]
|Should
|andre
|?
|- style=&quot;background:LightBlue&quot;
|9.03-01
|2009-03-05
|[[Maemo.org Sprints/May 09|May 09]]
|[[Maemo Summit 2009]] - finalise venue
|Should
|qgil
|33%
|Venues visited by Kees, Niels and Quim. Decision between [http://www.westergasfabriek.nl/english/engels_welcome.php WesterGasFabriek] (waiting for their budget) and [http://www.felixmeritis.nl/en/ Felix Meritis].
|-
|9.03-02
|2009-03-05
|[[Maemo.org Sprints/?|?]]
|Create maemian from lintian
|Could / Should
|jeremiah
|5%
|https://garage.maemo.org/projects/maemian/
|-
|9.03-03
|2009-03-10
|[[Maemo.org Sprints/April 09|April 09]]
|[[Task:Reducing number of external repositories|Update canonical list of external repositories.]]
|Must
|jeremiah
|10%
|Include key packages not in any repo
|-
|9.03-04
|2009-03-10
|[[Maemo.org Sprints/April 09|April 09]]
|[[Task:Reducing number of external repositories|Reducing number of external repositories - contact outstanding owners]]
|Should
|jeremiah
|5%
|Includes chinook -&gt; diablo
|-
|9.04-01
|2009-04-06
|[[Maemo.org Sprints/April 09|April 09]]
|[[Talk:Git For Garage|Git For Garage - svn-git tooling]]
|Must
|ferenc
|50%
|Script done, and tested. Integration to the GForge UI is needed. Remaining tasks are to be pushed to May.
|-
|9.04-02
|2009-04-06
|[[Maemo.org Sprints/April 09|April 09]]
|[[Talk:Git For Garage|Git For Garage - garage integration]]
|Should
|ferenc
|90%
|Gitweb's skin is not matching garage, but other than that this is done. Remaining task is to be pushed to May.
|- style=&quot;background:LightGreen&quot;
|9.04-03
|2009-04-06
|[[Maemo.org Sprints/April 09|April 09]]
|[[Task:Implement new maemo.org layout and style|Implement new maemo.org layout and style - midgard]]
|Must
|Niels
|100%
|Deployed
|- style=&quot;background:LightGreen&quot;
|9.04-04
|2009-04-06
|[[Maemo.org Sprints/April 09|April 09]]
|[[Task:Implement new maemo.org layout and style|Implement new maemo.org layout and style - mediawiki]]
|Must
|Niels
|100%
|Deployed
|-
|9.04-05
|2009-04-06
|[[Maemo.org Sprints/May 09|May 09]]
|[[Task:Implement new maemo.org layout and style|Implement new maemo.org layout and style - bugs]]
|Should
|X-Fade
|0%
|
|-
|9.04-06
|2009-04-06
|[[Maemo.org Sprints/May 09|May 09]]
|[[Task:Implement new maemo.org layout and style|Implement new maemo.org layout and style - ?]]
|Could
|X-Fade
|?
|
|-
|9.04-07
|2009-04-06
|[[Maemo.org Sprints/May 09|May 09]]
|[http://bugs.maemo.org/show_bug.cgi?id=2179 Karma for applications - implement]
|Should
|Hirvinen
|0%
|
|- style=&quot;background:LightBlue&quot;
|9.04-08
|2009-04-06
|[[Maemo.org Sprints/April 09|April 09]]
|Propose ITP process/workflow
|Should
|jeremiah
|75%
|[[ITP|http://wiki.maemo.org/ITP]]
|-
|9.04-09
|2009-04-06
|[[Maemo.org Sprints/May 09|May 09]]
|Setup SSO testing environment
|Must
|danielwilms
|0%
|URL?
|-
|9.04-10
|2009-04-06
|[[Maemo.org Sprints/April 09|April 09]]
|Port packages from diablo -&gt; fremantle
|Could
|jeremiah
|0%
|Specific enough? Needs task URL
|- style=&quot;background:LightGreen&quot;
|9.04-11
|2009-04-06
|[[Maemo.org Sprints/April 09|April 09]]
|[[Task:Open Source Proof Points|Open Source Proof Points - tidy up and merge wiki pages]]
|Must
|qole
|100%
|Rewrote [[Alternative operating systems]], pointed [[Task:Open Source Proof Points]] there. Done as much as I can do for now. Willing to add [[Alternative desktop environments]] in the next sprint.
|- style=&quot;background:LightGreen&quot;
|9.04-12
|2009-04-06
|[[Maemo.org Sprints/April 09|April 09]]
|[[Task:Implement new maemo.org layout and style|Implement new maemo.org layout and style - testing]]
|Must
|timsamoff
|100%
| Beta launch date set for 1200 UTC, Wednesday, 22-04-2009.
|- style=&quot;background:LightGreen&quot;
|9.04-13
|2009-04-06
|[[Maemo.org Sprints/April 09|April 09]]
|[[Task:Maemo brainstorm|Maemo brainstorm]]
|Must
|NetBlade
|100%
| &quot;Soft launched&quot; on maemo.org, process needs a bit of discussion
|- style=&quot;background:LightGreen&quot;
|9.04-14
|2009-04-06
|[[Maemo.org Sprints/April 09|April 09]]
|Discuss sprint process improvements
|Must
|qole
|100%
|See [http://lists.maemo.org/pipermail//maemo-community/2009-April/thread.html#3636 thread]
|-style=&quot;background:LightGreen&quot;
|9.04-10
|2009-04-07
|[[Maemo.org Sprints/April 09|April 09]]
|Reduce the number of packages in diablo through elimination of duplicate packages, old packages.
|Should
|jeremiah
|100%
|Script to do this [http://github.com/jeremiah/debian--package--array/blob/93bf80481e2a20c0fd0c0836dc4e5b9b19ee9e9a/pkg-parse.pl Now on github]
|-
|9.04-10
|2009-05-03
|[[Maemo.org Sprints/April 09|April 09]]
|Diagnose autobuilder issues
|Should
|jeremiah
|0%
| Autobuilder apparently removes source packages.
|-
|}

==Activity log==
Latest activity report goes on top.

;2006-05-07

* Niels
** Yesterday: Worked on dependency problem in autobuilder. Tried to debug login problem. Tested brainstorm.
** Today: Work on some documentation importing, continue debugging login issue. Attend meeting.

* Andre
** Yesterday: Mostly cleaning up older tickets &amp; syncing
** Today: Continued cleaning up older tickets; bug 3846; meeting

* Dave
** Past 5 days: Working on a client project
** Since last report (21/4): May 1st long weekend. Working on content issues with new maemo.org, track newstyle fall-out &amp; bugs, and dig into Midgard to allow me to start fixing some of these bugs on my own.

* Tim
** Attended May 2009 Sprint meeting.
** Altered maemo.org CSS (master.css &amp; planet.css) so that link titles were #404040 instead of orange.

;2009-05-05
* Niels
** Yesterday: Visited possible summit locations in Amsterdam together with Quim and Kees
** Today: Catch up on email, look at autobuilder and dependency issues. Look at login issues.

* Jeremiah
** Updating external repos list
** Built search.maemo.org prototype -&gt; [http://test.maemo.org/cgi-bin/search.cgi here]

;2009-05-04
* Niels
** Today: visit possible summit locations in Amsterdam together with Quim and Kees

* Jeremiah
** Started hacking on a search script for packages

;2009-05-01

* Ryan
** Past days: Dealing with [http://talk.maemo.org Talk] fallout, opened [http://bugs.maemo.org/describecomponents.cgi?product=Website bugzilla component] for Talk, filing Talk bugs.
** Today: Pushing Maemo School towards using the wiki, more Talk bugs.
** Problems: People hate change.
** Kudos: Reggie really kicks ass at bugzilla!

* Jeremiah 
** A little community chatter in #maemo and on lists
** Gave the queue-manager a punch in the stomach to get it to index things.
** Re-installing fremantle 5 beta SDK

;2009-04-30

* Jeremiah
** Trying to get fremantle SDK to work on my machine
** re-indexing diablo on garage as it has stopped for some reason

; 2009-04-29

* Niels
** Yesterday: Beta SDK related work. Styled search.maemo.org and Extras Assistant. Forced new style on wiki. Helped on git.maemo.org issues and published qt4 fremantle binaries. Attended web meeting.
** Today: Try to get everything needed to upgrade the autobuilder to Maemo5 beta SDK. Look at login issues and fix bugs.

* Jeremiah
** Installing Beta SDK for testing.
** Removed 7 Gigs of old, duplicate packages from diablo

; 2009-04-28
* Niels
** Yesterday: Prepare for beta. Documentation related work
** Today: Beta SDK related work. Style search.maemo.org, style Extras Assistant.

* Andre
** Yesterdays: Prepare SDK beta ChangeLog; normal triaging work...
** Today: Potential Brainstorm tickets; SDK beta release it seems (reset Target Milestones etc); internal weekly report

* Jeremiah
** Beginning to sketch out maemian, reading lintian code
** Working on a python packaging tutorial
** tweaks to package removal code

* Tim
** 9.04-12: maemo.org redesign meeting.

; 2009-04-27
* Niels
** Friday: Worked on and published wiki styling, fixed bugs in newstyle. Talk related things. Discussed app karma and brainstorm testing. Git work.
** Today: Fix login issues. Repository related work. Documentation related work. Some server administration related work. Work work work...

* Jeremiah
** Finished first version of package removal script. (Does not remove sources, that hill have to be done later)
** Removed about 3.5 gigs of duplicate packaging on a test server, about 25% reduction.

* Tim
** 9.04-12: Created new graphical icons/buttons for talk.maemo.org.

; 2009-04-24

* Ryan
** Yesterday: Worked on front page, filed newstyle bugs.
** Today: Last touches on front page (Thanks, Niels!), prod Niels about last touches on wiki template, triage and file some more Newstyle bugs.

* Niels
** Yesterday: Worked on new wiki styling, some newstyle fixes. Debugged repository issues.
** Today: Work on new wiki styling, look at other templates too.

* Jeremiah
** Added a feature to pkg-parse.pl
** Lots of testing, none of it built in
** Largely feature complete for the moment - parses a Packages file and outputs the different package version of _all_ packages in the repository
** Need to be automated and combined with another script that moves packages from the repos to a &quot;morgue&quot;

; 2009-04-23

* Ryan
** Yesterday: Yet more wiki cleanup, filed a lot of bugs on newstyle, fixed up some of the content.
** Today: Even yet more wiki cleanup, put together and deploy new wiki front page, test and criticize new wiki style for Niels (:P), file more newstyle bugs.

* Andre
** Yesterday: Feature jar
** Today: Mostly syncing internal tickets with public tickets (esp. version information - different systems and workflows...)

* Niels
** Yesterday: Worked on newstyle, published website!
** Today: Fix some newstyle bugs, use static version of avatar everywhere to speed things up, work on wiki style.

* Jeremiah 
** Lots of hacking and testing of pkg-parse.pl
** Pushed to github so anyone can fork ;)
; 2009-04-22

* Ryan
** Yesterday: More wiki cleanup.
** Today: Yet more wiki cleanup, test newstyle.

* Niels
** Yesterday: Work on newstyle
** Today: Work on newstyle .. publish website

* Tim
** 9.04-12: A little newstyle bug testing -- more tomorrow.
** 9.04-12: Wrote another [http://maemo.org/community/council/so_what_do_you_think/ blog post] about site launch.

* Jeremiah 
** Did some repo removal of more qt packages
** Started hacking on pkg-parse.pl, a script to manage duplicate packages in the repos

; 2009-04-21

* Andre
** Yesterdays: Usual business; Some internal stuff; bug 3846
** Today: Usual business; Feature Jar; Internal weekly report

* Jeremiah
** Mail, repo reduction 

* Dave
** Yesterday: Working on newstyle - Community page
** Today: Finish content review of Community, improve &quot;Get involved&quot; and IRC pages, run web devel meeting.

* Niels
** Yesterday: Work on newstyle
** Today: Work on newstyle .. getting close! :)

* Tim
** 9.04-12: maemo.org redesign meeting.
** 9.04-12: Wrote [http://maemo.org/community/council/the_final_countdown/ blog post] about new maemo.org launch.

; 2009-04-20

* Jeremiah
** Hacked on an automated script to move packages out of the repos to reduce the load on indexing 
** Discussed the repos and managing packages with Niels who had a lot of good ideas and experience to share

* Ryan
** Last few days: Wiki cleanup.
** Today: More wiki cleanup.

* Niels
** Friday: Worked on newstyle, debugged some git repository issues.
** Today: Work on newstyle.

* Tim
** 9.04-12: Various newstyle bug reports and conversations.

; 2009-04-17

* Quim
** Yesterday and before: Took officially the action of &quot;Maemo Summit 2009 - finalise venue&quot; from Dave. Kees and I have reduced the number of candidates to 3. I need to contact them and fix the timing for a visit by Kees and myself, hopefully on May 4th. I expect the decision about the venue to be made on that week of May.
** Today: Contact venues and update [[Maemo_Summit_2009]].

* Dave
** Yesterday: Mostly caught up with administravia. One expense report left :(
** Today: Meet accountant, content revision for http://newstyle.maemo.org - fix links in community page - [https://bugs.maemo.org/show_bug.cgi?id=4316 bug #4316], revise &amp; review Support and Development pages &amp; text.

;2009-04-16

* Dave
** Yesterday: Caught up on email and attended web design IRC meeting.
** Today: Catching up on expenses and accounts, tracking email, and meetings.

* Niels
** Yesterday: Worked on newstyle. Attended web meeting.
** Today: Work on newstyle.

* Tim
** 9.04-12: Wrote a News [http://maemo.org/community/council/new_maemo-org_soon_to_launch/ blog post] about newstyle progress.

;2009-04-15

* Dave
** Last week: Travelled to San Francisco for the Collaboration Summit. Kept up with email &amp; IRC, and co-ordinated with Quim on visiting possible locations (conclusion: too costly, I will travel if there is a need later to see the final venue)
** Yesterday: Long weekend for Easter, spent the day with my parents visiting from Ireland.
** Today: Catch up after lay-off, and commit something other than venue to this Sprint.

* Niels
** Yesterday: Followed up on some upgrades. Catched up on mail. Work on newstyle.
** Today: Work on newstyle.

* Andrew
** Moved discussion on releasing HAM update to maemo-developers

* Tim
** 9.04-12: maemo.org redesign meeting.

;2009-04-14

* Niels
** Few days ago: Worked on Downloads styling for newstyle, small style fixes.
** Today: Follow up on some hardware upgrades, catch up on mail. Work on newstyle.

* Jeremiah
** Removing a host of qt packages (v. 4.4) from diablo - they are no longer needed.

;2009-04-13

* Tim
** 9.04-12: Moved all newstyle.maemo.org Checklist items to Bugzilla.
** 9.04-12: Updated newstyle wiki page to reflect said changes (i.e., verbiage, link, etc.).
** 9.04-12: Added (and continuing to add) new requests for newstyle to Bugzilla.

* Jeremiah
** Away for Easter

;2009-04-09

* Niels
** Yesterday: Downloads api improvements, registration testing/fixes, some downloads import script fixes.
** Today: Website bug fixes, work on newstyle.

* Jeremiah
** List mail, reading about the dput bug that maybe I can work on.
** Wiki work, specifically [[debmaster]]  page
** Not much else I am afraid, I have to clean my office and get ready to go away for Easter.

;2009-04-08

* Dave
** This week: Attending the Collaboration Summit in San Francisco, so will be mostly unavailable (but reading email).
** Yesterday: Web development IRC meeting (arrived late). Thanks to Tim for running &amp; minuting it. Slow progress.
** Problems: Wondering if Niels &amp; Neithan have the new website as their top priority? Things seem to be taking so much longer than estimated.

* Andre
** Last days: Fiddling with setting up a test environment &amp; start creating patchsets for [https://bugs.maemo.org/show_bug.cgi?id=3846 bug 3846]
** Today: Collect a list of potential tickets for a potential [[Task:Maemo_brainstorm|brainstorm]]. Yes, I said &quot;potential&quot;. ;-)

* Niels
** Yesterday: Set up test environment for Daniel, requested more disk space for test vm, fixed time synchronisation issues on webserver cluster, traced some performance issues on internal server, worked on event registration for Quim. Fixed mail for webserver cluster. Monitored autobuilder for qwerty12. Discussed rebuild ideas with Jeremiah. Attended website redesign meeting. Pinged Ferenc about git.maemo.org ssl issue with git.
** Today: Downloads API improvements. Work on wiki documentation importing. 

* Jeremiah 
** Reducing the number of packages in diablo, reduced the repo by about 310 Megs. needs to come down a bit more since the package file is large.
** Build order list refinements
** Scan of ITt, mailing lists and #maemo
** Preparing to package git for maemo

;2009-04-07

* Niels
** Yesterday: Ragnaroek performance tracing/testing together with bergie. Apply karma ghost fixes. Look at static cache issues. Attend Sprint meeting. Push on SDK issues.
** Today: Setup test environment for Daniel. More performance tracing. Work on styling issues open issues.

* Jeremiah
** Mailing lists with council
** Trying to reduce the number of packages in diablo

* Tim
** 9.04-12: Website redesign meeting.
** 9.04-12: Sent out meeting minutes.

;2009-04-06

* Tim
** 9.04-12: Sent [http://lists.maemo.org/pipermail/maemo-community/2009-April/003634.html email] to maemo-community asking about using Bugzilla to test/log [http://newstyle.maemo.org newstyle.maemo.org].

* Andrew
** Put up draft of April 09 task log and asked for feedback/blanks to be filled in.

* Jeremiah
** Moved build order file to garage, working on building packages for fremantle with dpkg-buildpackage, hope to confer with Niels about the autobuild after meeting today.

;2009-04-03

* Jeremiah 
** Nothing maemoish, working on my local infrastructure and dev machines</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/April 09/Meeting</title>
    <id>1764</id>
    <revision>
      <id>12687</id>
      <timestamp>2009-04-21T10:17:20Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>Categorization</comment>
      <text xml:space="preserve">== Agenda ==
{|
|-
! Date/time:
| Monday, 2009-04-06 [http://www.timeanddate.com/worldclock/fixedtime.html?month=4&amp;day=6&amp;year=2009&amp;hour=13&amp;min=30&amp;sec=0 13:30 UTC]
|-
! Location: 
| [[IRC|#maemo-meeting IRC channel]]
|-
! rowspan=&quot;2&quot; | Invitees:
| [[User:qgil|Quim Gil]]*, [[User:xfade|Niels Breet]], [[User:jeremiah|Jeremiah Foster]], [[User:dneary|Dave Neary]]*, [[User:andre|Andre Klapper]], [[User:hirvinen|Patrik Hirvinen]], [[User:bergie|Henri Bergius]], [[User:tekojo|Tero Koko]], [[User:danielwilms|Daniel Wilms]], [[User:ferenc|Ferenc Szekely]], [[Community Council]]
|-
| &lt;small&gt;* declined&lt;/small&gt;
|}

# '''Review of [[maemo.org Sprints/March 09]] tasks'''
## Quim - via email, see below
## Patrik
## Ferenc
## Henri
## Niels
## Andre
## Jeremiah
## Dave - via email, see below
# '''Committing of April sprint tasks - including end dates'''
## Anyone
# '''AOB'''
## Anyone

==== Quim Gil's status report ====
http://wiki.maemo.org/Task:Texts_for_maemo.nokia.com - Nothing done from
my side. I need to deliver those texts in the April sprint, otherwise
I'm risking a crisis relationship with Jussi, owner of maemo.nokia.com.  :)

http://wiki.maemo.org/Objective:Community_localization updated with a
section explaining the current status. Should go better back to the
backlog since I'm basically waiting for the Maemo SW localization team
to evaluate the tools and see which one could be better adapted to the
Harmattan UI &amp; localization processes.

http://wiki.maemo.org/Task:Open_Source_Proof_Points Nothing done from my
side. The task can probably be dropped from the sprint as I don't see it
anymore as a task that requires to be completed but as an ongoing work
of documentation where anybody can participate. I can explain more if
you wish.

==== Dave Neary's status report ====
Modified election software
Ran the council election
Maemo Summit - I need to co-ordinate with Kees on this, I have time in
April for this.
Implementing maemo.org style (my name's not on the task, but I'm
co-ordinating it): Feels about 60% to 70% finished, and I am looking
forward to Neithan and Niels to start requesting feedback on pages they
think are done any day now.

== Minutes ==
Primary actions are in the [[maemo.org Sprints/April 09]] page.


[[Category:Community]]
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/April 10</title>
    <id>3925</id>
    <revision>
      <id>33824</id>
      <timestamp>2010-05-04T10:14:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}
== April 2010 Sprint planning ==

* Planning meeting: none

* Follows [[maemo.org Sprints/March 10|March 10]]. Precedes [[maemo.org Sprints/May 10|May 10]].

== Tasks ==
[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Task ID
! Task
! Sprint priority
! Owner
! Percentage complete
! Notes
|- style=&quot;background:LightGreen&quot;
| 10.02-04
| Prepare repository for PR1.2 change.
| Must
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 100%
| 
|- style=&quot;background:LightBlue&quot;
| 10.04-01
| Web site bug fixing - Fix 10 bugs and get updates for another 20
| Must
| [http://maemo.org/profile/view/feri/ Ferenc]
| 50% 
|
|- style=&quot;background:LightGreen&quot;
| 10.04-02
| Enable git over ssh support for garage projects.
| Must
| [http://maemo.org/profile/view/feri/ Ferenc]
| Done 
|
|- style=&quot;&quot;
| 10.04-03
| Bugzilla 3.4 migration
| Must
| [http://maemo.org/profile/view/karstenb/ Karsten]
|
| &quot;Migrate Bugzilla to the latest version. Porting of custom features and initial styling to match maemo.org style&quot; 
|- style=&quot;&quot;
| 10.01-06
| Midgard &amp; Midgard2 data sync
| Should
| [http://maemo.org/profile/view/indeyets/ indeyets]
| 0% 
| &quot;Implemented already, needs to be enabled and tested&quot;
|- style=&quot;&quot;
| 10.01-08
| Enable CAS for Midgard
| Should
| [http://maemo.org/profile/view/indeyets/ indeyets]
| 0% 
| 
|- style=&quot;&quot;
| 9.12-07
| maemo.org styling for Bugzilla
| Should
| [http://maemo.org/profile/view/karstenb/ Karsten]
|
|
|- style=&quot;&quot;
| 10.02-12
| Implement Maintainer part for Packages interface
| Should
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 30%
| 
|- style=&quot;&quot;
| 10.04-04
| Establish foundation for recompiling Fremantle for ARMv6+VFP in OBS
| Should
| [http://maemo.org/profile/view/Stskeeps/ Stskeeps]
|
|
|- style=&quot;&quot;
| 10.04-05
| Participate in technical preparation of a maemo.org OBS
| Should
| [http://maemo.org/profile/view/Stskeeps/ Stskeeps]
|
|
|- style=&quot;&quot;
| 10.04-06
| Help create hardware adaptation of MeeGo for N8x0
| Should
| [http://maemo.org/profile/view/Stskeeps/ Stskeeps]
|
|
|- style=&quot;&quot;
| 10.04-04
| Bugzilla feature requests
| Could
| [http://maemo.org/profile/view/karstenb/ Karsten]
|
| &quot;Implementing additional feature requests, as filed in Bugzilla&quot;
|- style=&quot;&quot;
| 10.04-5
| Garage facelift
| Could
| [http://maemo.org/profile/view/feri/ Ferenc]
| 0%
| 
|}

== Actions ==
''None yet''

== Activity log ==
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;rss title=&quot;off&quot; desc=&quot;off&quot; text time=&quot;3600&quot;&gt;http://pipes.yahoo.com/pipes/pipe.run?_id=b517f9f63b700b37c72fd42ebda3bca3&amp;_render=rss&amp;channel=maemork&amp;v=6&lt;/rss&gt;</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/August 09</title>
    <id>2245</id>
    <revision>
      <id>33812</id>
      <timestamp>2010-05-04T09:59:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}
== August 2009 Sprint planning ==

* [http://bleb.org/software/maemo/maemo-meeting-2009-08-04.txt Planning meeting]: [http://www.timeanddate.com/worldclock/fixedtime.html?month=8&amp;day=4&amp;year=2009&amp;hour=13&amp;min=30&amp;sec=0 Tuesday, 4th August 13:30 UTC] in [[IRC|#maemo-meeting]].
* Follows [[maemo.org Sprints/July 09|July 09]]. Precedes [[maemo.org Sprints/September 09|September 09]].
* Main themes: September council election; October summit

== Tasks ==
[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Task ID
! Task
! Sprint priority
! Owner
! Percentage complete
! Notes
|- style=&quot;&quot;
| 9.08-01
| Get &quot;Nokia patches&quot; cleanly into Bugzilla .4 test install, dropping as many deltas as possible
| Must
| Ferenc
| 0%
| Got no time after the mailing list imports. This has to be completed in September.
|- style=&quot;background:LightGreen&quot;
| 9.08-02
| [https://bugs.maemo.org/show_bug.cgi?id=3692 #3692] Re-import discussion karma
| Must
| Ferenc
| Done
| The dev list import has completed.
|- style=&quot;background:LightGreen&quot;
| 9.08-03
| Fix any other logged karma issues
| Must
| Ferenc
| Done
| Checked all bugs that refer to &quot;karma&quot;. There is no outstanding issue which should not be solved by re-importing the mailing lists. 
|- style=&quot;background: LightGreen&quot;
| 9.06-05
| Package promotion/repository management/community QA interface
| Must
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 100%
| Basic interface is in place, most tests look promising.
|- style=&quot;background:LightBlue&quot;
| 9.08-04
| Integrate minimae into package promotion to get infrastructure &amp; UI in place
| Must
| [http://maemo.org/profile/view/jeremiah/ Jeremiah]
| 90%
|[[Extras-testing#Maemian.2FMinimae_checks_after_builds|minimae checks implemented this sprint]]&lt;BR&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.
|- style=&quot;background: LightGreen&quot;
| 9.06-07
| [http://bugs.maemo.org/show_bug.cgi?id=2179 Karma for applications - get agreement on formula]
| Must
| [http://maemo.org/profile/view/indeyets/ indeyets]
| 100%
| Data is gathered, app-karma generation code is in place. There's no consensus on formula - will implement for feedback
|- style=&quot;background: LightGreen&quot;
| 9.07-01
| Setup [[Task:Single_sign-on|SSO]]-integration (GForge)
| Must
| [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 100%
| 
|- style=&quot;background: LightGreen&quot;
| 9.08-05
| Identify/communicate to tmo users about upcoming election
| Must
| [http://maemo.org/profile/view/jaffa/ Jaffa]
| 100%
| Email sent to 1,599 tmo users giving them instructions on how to link accounts
|- style=&quot;background:Tomato&quot;
| 9.08-06
| Produce [[Maemo Summit 2009]] budget v0.99
| Must
| [http://maemo.org/profile/view/qgil/ qgil]
| 0%
| Haven'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.
|- style=&quot;background: LightGreen&quot;
| 9.08-07
| Drive [[Community Council|election process]]
| Must
| [http://maemo.org/profile/view/jaffa/ Jaffa]
| 100%
| 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.
|- style=&quot;background:LightBlue&quot;
| 9.08-08
| Co-ordinate summit council responsibilities
| Must
| [http://maemo.org/profile/view/timsamoff/ timsamoff]
| 60%
| Merchandising/accomodation etc.
|- style=&quot;background:LightGreen&quot;
| 9.08-09
| Promote summit &amp; buzz/communication plan
| Must
| [http://maemo.org/profile/view/vdvsx/ VDVsx]
| Done
|[[Maemo_Summit_2009/Marketing]], [http://www.valeriovalerio.org/?p=251 Call for help] and [https://twitter.com/#search?q=%23maesum Twitter buzz]
|- style=&quot;background:Tomato&quot;
| 9.08-10
| Draft [[/Extras_repository_process_definition#Quality_Assurance|quality guidelines]] for extras-testing to extras promotion
| Should
| [http://maemo.org/profile/view/qgil/ qgil]
| 10%
| 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's needed to define 100% the promotion to Extras.
|- style=&quot;background:LightGreen&quot;
| 9.06-12
| [https://bugs.maemo.org/show_bug.cgi?id=4405 #4405]: [[Task:Proof-read Human Interface Guidelines]]
| Should
| [http://maemo.org/profile/view/dneary/ dneary]
| DONE
| Changes are merged into official docs and are in wiki at [[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines]]
|- style=&quot;background:Tomato&quot;
| 9.04-05
| [[Task:Implement new maemo.org layout and style|Implement new maemo.org layout and style - Bugzilla]]
| Should
| [http://maemo.org/profile/view/andre/ Andre]
| 80%
| Rough version in place. Not much progress in August; lots of Fremantle stuff in the last weeks...
|- style=&quot;&quot;
| 9.08-11
| Document &amp; communicate packages interface to testers
| Should
| [http://maemo.org/profile/view/jaffa/ Jaffa]
| 0%
| Not done anything - somewhat dependent on testing reqs. documentation &amp; &quot;finished&quot; packages interface
|- style=&quot;&quot;
| 9.06-09
| [[Vendor Hardware Repositories]] - decide on sub-tasks for next sprint
| Should
| [http://maemo.org/profile/view/stskeeps/ Stskeeps]
| 0%
|
|- style=&quot;background:Tomato&quot;
| 9.06-14
| Plan for the OMAP2 acceleration [[Drivers justification|drivers]]
| Could
| [http://maemo.org/profile/view/qgil/ qgil]
| 10%
| 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?
|- style=&quot;&quot;
| 9.08-12
| Improve reporting feed appearance on sprint page
| Could
| Ferenc
| 0%
| To liaise with [http://maemo.org/profile/view/jaffa/ Jaffa]
|- style=&quot;&quot;
| 9.04-08
| [[ITP]] process/workflow around [http://test.maemo.org/cgi-bin/itp.cgi prototype]
|Could
| [http://maemo.org/profile/view/jeremiah/ Jeremiah]
| 90%
|
|}

== Actions ==
* [http://maemo.org/profile/view/jaffa/ Jaffa]: &lt;s&gt;try and get some UI love for 9.06-05&lt;/s&gt; [http://talk.maemo.org/showthread.php?p=308799 done]
* [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.
*[http://maemo.org/profile/view/vdvsx/ VDVsx]: 9.08-09 done for this sprint, I'll continue with the task in the next sprint.

== Activity log ==
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.

'' See latest sprint for activity ''</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/December 08</title>
    <id>1359</id>
    <revision>
      <id>33800</id>
      <timestamp>2010-05-04T09:44:38Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}

==December 2008 Sprint planning==
* Planning meeting organized in the [[IRC|#maemo-meeting IRC channel]] on Wednesday 2008/12/03 at [http://www.timeanddate.com/worldclock/fixedtime.html?month=12&amp;day=3&amp;year=2008&amp;hour=20&amp;min=0&amp;sec=0&amp;p1=0 20:00 UTC]. ([http://maemo.org/maemo-meeting/maemo-meeting-2008-12-03.html log of the meeting])
* Right after [[Maemo.org Sprints/November 08]] review.
* Followed by [[Maemo.org Sprints/January 09]].

==Tasks==
[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightGreen&quot;
| 2008-08-12 || [[Task:Getting Nokia involved in bugs.maemo.org|Better organization of bugs.maemo.org components]] || Andre || 100% || [[Talk:Task:Getting_Nokia_involved_in_bugs.maemo.org#Draft_structure_.28implemented_on_Dec_06th.2C_2008.29|Draft]] implemented; [http://blogs.gnome.org/aklapper/2008/12/18/watching-products-in-maemoorg-bugzilla/ fixed watchlist mail notification].
|- style=&quot;background:LightGreen&quot; 
| 2008-09-30 || [[Task:Content Cleanup#Development|Finalise layout for maemo.org/development]] || Dave || 100% || [[Task:Improving maemo.org/Development|Proposal]] exists, with a first design mock-up from INdT. Task complete. Next step: generate HTML version, and figure out how to get it done in Midgard, as part of overall maemo.org task.
|- style=&quot;background:Tomato&quot;
| 2008-09-30 || [[Task:Reducing number of external repositories]] || Niels || 40% || Contacted most owners. Had a lot of positive responses, but need to gently push most of them again..
|-style=&quot;background:LightGreen&quot;
| 2008-09-30 || Define and publish first Feature Jar for the community and Nokia product managers || Andre || 100% || [http://lists.maemo.org/pipermail/maemo-community/2008-October/001217.html See this email]; [http://lists.maemo.org/pipermail/maemo-community/2008-December/002816.html second iteration done]; going to become a monthly recurring task
|- style=&quot;background:Tomato&quot;
| 2008-09-30 || [[Task:Open Source Proof Points]] || Quim || 5% || Nothing done in this sprint, sigh.
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || [https://bugs.maemo.org/show_bug.cgi?id=2179 Karma for applications] || Hirvinen || 0% || 
|- style=&quot;background:LightBlue&quot;
| 2008-11-04 || Finalise design &amp; stylesheets for maemo.org || Dave || 50% || First versions of html/css rolling in -- still need code cleanup, Nemein review, and sub-page work.
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || Finalise layout for maemo.org/support || Dave &amp; Tim || 0% || No-one working on this right now.
|- style=&quot;background:LightGreen&quot;
| 2008-11-04 || Finalise layout for maemo.org/community || Dave &amp; Tim || 100% || Complete.
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || [[Task:Texts for maemo.nokia.com]] || Quim || 20% || Drafted the &quot;Open Source&quot; part, but need to complete out of this sprint.
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || Define what is needed to get git up on maemo.org || Tero || 80% || Talk page up at [[Talk:Git For Garage|Git for garage]], Plans up at [[Git For Garage]]. 80% because discussion still takes place. But nothing stopping from moving ahead.
|-
| 2008-12-03 || [[Task:Implement new maemo.org layout and style]] || Henri/Niels || 5% || 
|- style=&quot;background:LightGreen&quot;
| 2008-12-03 || Review the [[Maemo contribution guidelines]] || Quim || 100% || Went through several rounds, official blessing to be given in the following weeks.
|- style=&quot;background:Tomato&quot;
| 2008-12-03 || [[Objective:Community localization]] || Quim || 10% || Objective roadmapped in Harmattan, all details need to be figured out 
|}

==Bugs in product Website==
The bugs assigned in the last sprint meeting are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=High&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= HIGH]. The bugs proposed for the next sprint are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=Medium&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= MEDIUM]. Only product/component maintainers can change this status. Comment on a bug if you want to push it up. Check also those marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=easyfix&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= EASYFIX].

What follows are the bugs that need special attention/progress.

For the record:

{{#bugzilla:id=1660,2179,3177,3178,3432,3562,3767,3788,3794,3796,3846
  |columns=id,severity,product,status,resolution,summary,to
}}

==Activity log==
Latest activity report goes on top.

; Wednesday 2009-01-07

* Andre:
** Yesterday: Get through older mail; triage some older reports; struggle again with Fremantle pre-alpha SDK on Fedora; fail; install on a fresh Ubuntu machine; quick look at [http://bugs.maemo.org/show_bug.cgi?id=3846 bug 3846]; internal report
** Today: Trying to get an overview for bug 3846; reproduce some core issues in Fremantle; meeting tonight

* Niels
** Yesterday: Fixed wiki login/account creation link, worked on Extras stats.
** Today: Work on Extras stats, look at some website issues, prepare for meeting tonight.

; Tuesday 2009-01-06

* Dave
** Yesterday: Collected status reports &amp; updates from Tim, Andre, Glaubert. Fixed [http://bugs.maemo.org/show_bug.cgi?id=3903 bug #3903]
** Today: Follow up with Henri, and co-ordinate status reports from everyone. Get back to Andre clarifying what needs doing on his end for the HTML/CSS.

* Niels
** Yesterday: Looked at repository issues, planned sprint meeting. Website bug checking and fixing.
** Today: Add support for 2009 stats for Extras. Look at stats improvements.

; Monday 2009-01-05

* Dave
** Three weeks ago: Visited Gran Canaria for the GNOME Foundation - GUADEC organisation
** Two weeks ago: Follow up on website redesign progress. Clarified what Nemein expects from INdT. Clarified what remaining design work we need done by INdT.
** Last week: Christmas holidays
** Today: Catch up with holiday email. Follow up on web design progress with Glaubert, Andre, Tim, Henri. Get next actions and waiting-ons from everyone.

* Niels
** Friday: Fixed mailing issues again. Fixed problems in feeds for downloads and added paging to all blocks in /downloads/.
** Today: Plan next Sprint meeting, work on repository issues.

; Friday 2009-01-02

* Niels
** (Happy New Year!)
** Last days: Fixed mailing issues. Documentation configuration. Tested RC versions of midgard on internal test machine. Misc small issues.
** Today: Look at open bugs.

; Tuesday 2008-12-30

* Quim
* Past days: plenty of stuff but only a tiny % related to my sprint tasks. Most remarkably, [[Objective:Community localization]] made it to the [[Task:Maemo_roadmap/Harmattan|Harmattan roadmap]].
* Today: Little fix to [[Maemo_contribution_guidelines]] and now it's practically blessed for a v1.0 (to be improved based on practice). 

* Andre
** Yesterday: Mostly bugmail; updated [http://maemo.org/community/bugs_and_features/ bugs_and_features.html] ([https://bugs.maemo.org/show_bug.cgi?id=3971 bug 3971])
** Today: Continue triage new bugs; internal report; play with queries for yearly stats

; Monday 2008-12-22

* Andre
** Thursday: Feature jar
** Today: Mostly triage the new bugs; go through lots of bugmail

* Niels
** Today: Look at documentation issues. Push layouts for other maemo.org pages.

; Thursday 2008-12-18

* Andre
** Yesterday: Update Bugzilla for SSU update; fix all &quot;QA contact&quot; mail settings in Bugzilla
** Today: Feature jar
** Tomorrow: off

* Niels
** Yesterday: Setup vhost for testing and developing the new maemo.org styling. Test SSU and look for issues. Troubleshoot some server issues.
** Today: Go through bugs, check out some garage issues. Work on styling.
** Problem: It is getting lonely in here. ''Where is everybody?''

; Wednesday 2008-12-17

* Niels
** Yesterday: performance/regression tests for new ragnaroek release on internal machine, bug fixes to our settings/styles, a lot of little things.
** Today: Setup vhost for testing and developing the new maemo.org styling.

; Tuesday 2008-12-16

* Niels
** Yesterday: preparations for styling update, investigated some autobuilder issues.
** Today: performance/regression tests for new ragnaroek release on internal machine, a lot of little things.

; Monday 2008-12-15

* Niels
** Last days: Worked on FAQ for Extras, preparations for styling update, investigated some autobuilder issues.
** Today: More preparations for styling update, performance/regression tests for new ragnaroek release on internal machine.

; Thursday 2008-12-11

* Ryan
** Last few days: Generally dealing with the Fremantle pre-alpha SDK drop, helping a bit redirecting Mer.
** Today: Finally blog about external repositories, push the [http://maemo.org/news/events/mer-project-bootstrapping-meeting/ Mer meeting] for Sunday.
** Problems: Not done with finals yet, but oh so tantalizingly close. . . .

* Niels
** Last days: Worked on doc import, applied fixes for the website. Tuned search.maemo.org. Looked into [[Task:Implement_new_maemo.org_layout_and_style]].
** Today: Work on FAQ for Extras, look into autobuilder improvements.

; Tuesday 2008-12-09

* Andre
** Saturday: Implemented [[Talk:Task:Getting_Nokia_involved_in_bugs.maemo.org#Draft_structure_.28implemented_on_Dec_06th.2C_2008.29|Bugzilla Reorg]]
** Yesterday: Off
** Today: Work on outstanding Reorg issues, work on Feature Jar, blog, internal weekly report

* Niels
** Yesterday: Worked on [[Task:Implement_new_maemo.org_layout_and_style]], applied some patches to midgard, looked into some technical issues.
** Today: Work on [[Task:Implement_new_maemo.org_layout_and_style]] and start a FAQ for Extras.

; Monday 2008-12-08

* Niels
** Friday: Lots of small issues.
** Today: Work on TODO list for the technical implementation of new maemo2009 style.

; Friday 2008-12-05
* Ryan
** Today: Bugging the Maemo Integration people about using an @maemo.org address, more debmaster discussion.
** Yesterday: debmaster discussion, we're narrowing down the list a bit.
** Problems: Can't seem to get past writing a title for a blog post about [[Task:Reducing number of external repositories]].

; Thursday 2008-12-04
* Niels
** Last few days: Fixed wiki logins, lots of random fixes to website.
** Today: Catch up with my backlog.

* Ryan
** Yesterday: Facilitated Sprint meeting, updated wiki (all tables should be more or less uniform now), and triaged website bugs based on meeting.
** Today: Get with Stskeeps and johnx about [[Task:Collaboration infrastructure]], see about pushing [[Task:Reducing number of external repositories]] some more Council-side.

* Bergie
** Today: Removing legacy code from GForge user import
** Yesterday: Sprint meeting, some bug management</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/December 09</title>
    <id>2918</id>
    <revision>
      <id>34314</id>
      <timestamp>2010-05-12T20:41:53Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">{{sprint}}
== December 2009 Sprint planning ==

* Planning meeting: [http://www.timeanddate.com/worldclock/fixedtime.html?month=12&amp;day=1&amp;year=2009&amp;hour=14&amp;min=30&amp;sec=0 Tuesday, 1st December 14:30 UTC] in [[IRC|#maemo-meeting]].
* Follows [[maemo.org Sprints/November 09|November 09]]. Precedes [[maemo.org Sprints/January 10|January 10]].

== Tasks ==
[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Task ID
! Task
! Sprint priority
! Owner
! Percentage complete
! Notes
|- style=&quot;background:lightgreen&quot;
| 9.08-12
| Improve reporting feed appearance on sprint page
| Must
| [http://maemo.org/profile/view/feri/ Ferenc]
| 100%
| {Jaffa} Done - see below. {Ferenc} Many thanks Jaffa!!
|- style=&quot;&quot;
| 9.09-01
| Push packaging policy updates
| Must
| [http://maemo.org/profile/view/xfade/ X-Fade], [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 60%
| Unfortunately more changes needed than expected, not completed yet
|- style=&quot;&quot;
| 9.10-07
| Server migration
| Must
| [http://maemo.org/profile/view/feri/ Ferenc]
| 30%
| Two servers have been moved completely. The SMTP switch over including the mailing list server are done. Next is switching maemo.org and garage. Linked to [[ISP move]].
|- style=&quot;&quot;
| 9.11-01
| Refresh [http://maemo.org/intro maemo.org intro]
| Must
| [http://maemo.org/profile/view/qgil/ qgil]
| 0%
| See [http://talk.maemo.org/showthread.php?t=33577 Talk thread] and [http://wiki.maemo.org/User:Josefdk/Intro_Mockup Josefdk wiki proposal]
|- style=&quot;&quot;
| 9.11-02
| [http://maemo.org/community/brainstorm/view/routing_visitors_to_useful_resources/ Maemo Greeters program]
| Must
| [http://maemo.org/profile/view/texrat/ texrat]
| 100%
| Pilot started: http://talk.maemo.org/showthread.php?t=33968.  Very quick engagement by members, better than expected.  Ideas coming fast and furious!  A Greeters page has been started by member smarsh and slowly being expanded: http://wiki.maemo.org/Greeters .  Some refining left to be done; will create new subtask.
|- style=&quot;background:LightGreen&quot;
| 9.11-03
| Get a decision on [http://maemo.org/community/brainstorm/view/developers_should_get_karma_based_on_the_relevance_of_their_software/ Developers should get karma based on the relevance of their software]
| Must
| [http://maemo.org/profile/view/vdvsx/ VDVsx]
| DONE
| [http://n2.nabble.com/Proposal-Developers-should-get-karma-based-on-the-relevance-of-their-software-td4080063.html#a4080063 Discussion]. Need to be implement and further discussed along with the other karma changes, remaining bits will be carry into the next sprint in a new task.
|- style=&quot;&quot;
| 9.11-04
| Openness data; web site containing the various status of openness of packages and components in the maemo OS
| Must
| [http://maemo.org/profile/view/stskeeps/ Stskeeps]
| 99%
| Almost done, will publish when polished.
|- style=&quot;&quot;
| 9.11-05
| Starting to work on a open sourcing queue 
| Must
| [http://maemo.org/profile/view/stskeeps/ Stskeeps]
| 70%
| Edited Why_the_closed_packages and began blog series to improve open sourcing process.
|- style=&quot;&quot;
| 9.11-06
| Help out the SSU team to get them started 
| Must
| [http://maemo.org/profile/view/stskeeps/ Stskeeps]
| 70%
| Spent time with TI drivers to get those proper and discussions about how in practice to implement a SSU. TI drivers now mostly work, waiting for TI to release a shrinkwrap package. Helped jeremiah bootstrap SSU repositories.
|- style=&quot;&quot;
| 9.11-07
| Mer 0.17 release and facilitating Maemo on non-N900 OMAP3 boards (beagle, etc)
| Must
| [http://maemo.org/profile/view/stskeeps/ Stskeeps]
| 95%
| Mer 0.17 release a bit delayed due to various technical issues. Beagle and Zoom2 ports work but got set back by the new SDK.
|- style=&quot;background:LightBlue&quot;
| 9.11-08
| No [[Special:Lonelypages | orphaned pages]] and revise Wiki navigation
| Must
| [http://maemo.org/profile/view/dneary/ dneary]
| 30%
| See [[Wiki gardeners]] page for precise details, and [[Special:Lonelypages]] for progress.
|- style=&quot;&quot;
| 9.11-10
| Integrate ITP database with general package database
| Must
| [http://maemo.org/profile/view/jeremiah/ jeremiah]
|100%
| Also changed the style somewhat so that it looks good on the N900 :)
|- style=&quot;background:LightGreen&quot;
| 9.11-11
| Install and test reprepro on new infrastructure
| Must
| [http://maemo.org/profile/view/jeremiah/ jeremiah]
| 100%
| Installed reprepro and dependencies. Able to import packages manually as debs, automatically through inoticoming. Later I'll work with Ed and X-Fade tosee if I can pull in new packages via NFS to the builder.
|- style=&quot;&quot;
| 9.12-1
| Working bugzilla 3.4, migration path notes
| Must
| [http://maemo.org/profile/view/andre/ Andre], [http://maemo.org/profile/view/karstenb/ Karsten]
| 70%
| Making progress, some lagging due to new infra (which is very good in the long run).
|- style=&quot;background:LightBlue&quot;
| 9.12-2
| SSO: Testing/deployment user-management backend
| Must
| [http://maemo.org/profile/view/indeyets/ indeyets]
| 90%
| Backend passes internal tests. Can create/get/edit users from command line client
|- style=&quot;&quot;
| 9.11-3
| Maemo event flyer (initial)
| Must
| [http://maemo.org/profile/view/texrat/ texrat]
| 90%
| Several drafts completed.  Excellent feedback provided by Tim Samoff and  Vaino Vallina.  Continual progress made. Hope to have preliminary flyers for  distribution at local (Dallas) linux user event 9 January 2010.
|- style=&quot;background:LightBlue&quot;
| 9.11-4
| CLI application icon for HAM
| Must
| [http://maemo.org/profile/view/timsamoff/ timsamoff]
| 80%
|
* Sent first version to -community and -developers mailing lists: http://samoff.com/random/maemo/term_icon/
* Will increase or decrease % based on community feedback.
* A second version was sent to the list, but receive very little feedback.
* I don't know if a full icon is required, or just a &quot;badge.&quot;
* First use of the new CLI icon: http://maemo.org/packages/view/tf/
* Need final feedback and final approval.
|- style=&quot;background:LightBlue&quot;
| 9.09-10
| Implement SSO sync-API endpoint for garage
| Should
| [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 80%
| implemented new server instance for midgard account-sync, cas change from ldap to MySQL, certificates in place for endpoint-sync
|- style=&quot;background:LightBlue&quot;
| 9.10-13
| Distribute 'Fixed In Fremantle' shirts to contributors that didn't make it to the Summit
| Should
| [http://maemo.org/profile/view/qgil/ qgil]
| 0%
| http://wiki.maemo.org/FIXED_in_Fremantle_Hall_of_Fame started
|- style=&quot;background:LightBlue&quot;
| 9.10-14
| Create a RFP (Request for Packaging) interface just like the ITP
| Should
| [http://maemo.org/profile/view/jeremiah/ jeremiah]
| 80%
| 
|- style=&quot;background:LightGreen&quot;
| 9.10-15
| Prepare a Bugday
| Should
| [http://maemo.org/profile/view/andre/ andre]
| 100%
| Updated &amp; restructured [http://wiki.maemo.org/Bugsquad Bugsquad wikipage]. 2009-11-30: Greasemonkey script published; asked for defining a Bugday date (Doodle) on the community mailing list. 2009-12-02: Set up Bugday wikisubpage, split &quot;Potential tasks&quot; into &quot;Recurring&quot; and &quot;Others&quot; and move it to its own subpage, and link to it from Bugdays and Triage Guide. 2009-12-07: Announce final date everywhere (planet, forum, mailing lists) &amp; introduce [http://maemo.org/profile/view/wazd wazd]'s cool Bugsquad logo. Hence DONE. 2009-12-15: Have our first Bugday. Bonus points for volunteers or Andre in case of providing a video screencast that introduces new people into triaging. See [http://blip.tv/file/2527267 Ubuntu example].
|- style=&quot;&quot;
| 9.12-5
| BMO: maemo.org custom features backport, Nokia patches
| Should
| [http://maemo.org/profile/view/andre/ Andre], [http://maemo.org/profile/view/karstenb/ Karsten]
| 0%
| 
|- style=&quot;background:LightBlue&quot;
| 9.12-6
| SSO: midgard syncing with usermanagement-server
| Should
| [http://maemo.org/profile/view/indeyets/ indeyets]
| 30%
| 
|- style=&quot;&quot;
| 9.10-09
| Prototype [[Task:Publishing_API_docs | library.maemo.org]]
| Could
| [http://maemo.org/profile/view/dneary/ dneary]
| 0%
| No progress - vacation &amp; wiki clean-up got in the way.
|- style=&quot;&quot;
| 9.10-10
| Add extra info fields from control files to interface - Changelog
| Could
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 0% 
|
|- style=&quot;&quot;
| 9.11-16
| Update [http://wiki.maemo.org/Open_development/Maemo_roadmap/Fremantle Fremantle roadmap]
| Could
| [http://maemo.org/profile/view/qgil/ qgil]
| 0% 
|
|- style=&quot;&quot;
| 9.11-17
| Implement new UI for the application-downloader
| Could
| [http://maemo.org/profile/view/danielwilms/ danielwilms], [http://maemo.org/profile/view/wazd/ wazd]
| 60% 
| changes in REST-API done, now completing UI changes
|- style=&quot;&quot;
| 9.12-7
| BMO: CSS, maemo.org style
| Should
| [http://maemo.org/profile/view/andre/ Andre], [http://maemo.org/profile/view/karstenb/ Karsten]
| 0%
| 
|}

== Actions ==
''None yet''

== Activity log ==
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.

''See latest sprint for activity''</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/February 09</title>
    <id>1552</id>
    <revision>
      <id>33804</id>
      <timestamp>2010-05-04T09:51:24Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}
==February 2009 Sprint planning==
* Planning meeting organized in the [[IRC|#maemo-meeting IRC channel]] on Wednesday 2009/02/04 at [http://www.timeanddate.com/worldclock/fixedtime.html?month=2&amp;day=4&amp;year=2009&amp;hour=14&amp;min=0&amp;sec=0 14:00 UTC] ().
* Right after [[Maemo.org Sprints/January 09]] review.
* Followed by [[Maemo.org Sprints/March 09]].

==Tasks==
[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:Tomato&quot;
| 2008-09-30 || [[Task:Reducing number of external repositories]] || Niels || 40% || Contacted most owners. Had a lot of positive responses, but need to gently push most of them again..
|- style=&quot;background:Tomato&quot;
| 2008-09-30 || [[Task:Open Source Proof Points]] || Quim || 5% || Nothing done in this sprint, sigh.
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || [https://bugs.maemo.org/show_bug.cgi?id=2179 Karma for applications] || Hirvinen || 0% || 
|- style=&quot;background:LightGreen&quot;
| 2008-11-04 || Finalise layout for maemo.org/support || Dave &amp; Tim || '''DONE''' || Done. Page will be laid out by Niels or Neithan.
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || [[Task:Texts for maemo.nokia.com]] || Quim || 20% || Drafted the &quot;Open Source&quot; part, but need to complete out of this sprint.
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || Define what is needed to get git up on maemo.org || Ferenc || 80% || Talk page up at [[Talk:Git For Garage|Git for garage]], Plans up at [[Git For Garage]]. 80% because discussion still takes place. But nothing stopping from moving ahead.
|- style=&quot;background:Tomato&quot;
| 2008-12-03 || [[Task:Implement new maemo.org layout and style]] || Henri/Niels || 20% || 
|- style=&quot;background:Tomato&quot;
| 2008-12-03 || [[Objective:Community localization]] || Quim || 10% || Objective roadmapped in Harmattan, all details need to be figured out 
|- style=&quot;background:Tomato&quot;
| 2008-01-07 || Plan to redesign Downloads and add functionality || Niels ||30% || Need to pick ideas to commit to in next Sprint
|- style=&quot;background:Tomato&quot;
| 2009-02-04 || [https://bugs.maemo.org/show_bug.cgi?id=3846 List Maemo Bugzilla custom code changes] || Andre || 30% || ...in order to port maemo.org Bugzilla to a more recent codebase (long term). See bug report and [[User:Andre/bug3846|diff dump]] for more details.
|- style=&quot;background:LightGreen&quot;
| 2009-02-20 || Analyze the suitability of lintian for QA || Jeremiah || '''DONE''' || I think lintian (the debian policy enforcer) would be an excellent automated tool for maemo if it were &quot;maemoized&quot;.
|}

==Bugs in product Website==
The bugs assigned in the last sprint meeting are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=High&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= HIGH]. The bugs proposed for the next sprint are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=Medium&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= MEDIUM]. Only product/component maintainers can change this status. Comment on a bug if you want to push it up. Check also those marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=easyfix&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= EASYFIX].

What follows are the bugs that need special attention/progress.

For the record:

{{#bugzilla:id=1660,2179,3177,3178,3692,3911,3432
  |columns=id,severity,product,status,resolution,summary,to
}}

==Activity log==
Latest activity report goes on top.

; Thursday 2009-03-05
* Andre
** Last days: Fremantle alpha ChangeLog; setting more exact Target Milestones in maemo.org Bugzilla; Scratchbox fun; normal bug business
** Today: bug 3846; sprint meeting
** Tomorrow: Holiday

* Ryan
** Last few days: Alpha SDK stuff (fixed release notes, etc), nominate self for next Council election, maemobox/box.maemo.org discussion, moved Qt into bugzilla.
** Today: Chairing sprint review.

* Niels
** Last few days: Worked on Fremantle Extras-devel repository issues. Disussed more Fremantle repo plans Jeremiah and people inside Nokia. Worked on website styling.
** Today: More Fremantle work and work on new styling.

; Monday 2009-03-02

* Jeremiah
** More maemian hacking
** worked a little on maemian.garage.maemo.org

;Friday 2009-02-27

* Jeremiah
** dak doc reading, code reading, IRC with dak developer
** dak wiki @ debian
** latest dak download from ftp-master.debian.org
** mail business

; Thursday 2009-02-26

* Niels
** Yesterday: Worked on website styling and a lot of little tasks.
** Today: Work on website styling. Make plans for Fremantle Extras-devel together with Jeremiah.

* Jeremiah
** dak reading, comparing to Ubuntu's Launchpad
** Reading wikis, writing to wikis
** login to test.maemo.org
** #maemo

; Wednesday 2009-02-25

* Niels
** Yesterday: Worked on front page and downloads styling. Investigated a performance issue. Attended web meeting.
** Today: Work on styling. Look into maemo.org summit venue. 

* Jeremiah
** mail, build logs, voting issues, planet maemo

; Tuesday 20090-02-24

* Jeremiah
** Hacking on maemian, set up repo, started coding. Discussion with Niels on Jabber
** #maemo

; Monday 2009-02-23

* Jeremiah
** Learning more about lintian, signed up for debian's lintian mailinglist
** downloaded latest version of source code, set up development environment

* Niels
** Friday: Worked on frontpage and downloads styling. Did some repository related work.
** Today: Test maemo.org performance issue. Work on frontpage and downloads styling.

* Andre
** Last days: How to provide a useful ChangeLog for the next release; Sort out Testzilla access/account stuff; triage older bugs; normal bug business...
** Today: Feature jar; ITT/new bugs; [https://bugs.maemo.org/show_bug.cgi?id=3846 #3846]

; Saturday 2009-02-21

* Jeremiah 
** Work on [https://bugs.maemo.org/show_bug.cgi?id=4139 #4139]

; Friday 2009-02-20

* Niels
** Yesterday: A day where external factors dictated my day ;) Fix RSS feed issues, Security QA discussion. Looked into application karma. Applied various patches for midgard to fix some website bugs. Worked on new styling. Overloaded Jeremiah with info again.
** Today: Work on front page and Downloads styling.

* Jeremiah
** Spoke with people on #maemo about versions of tools in maemo sdk, they are starting to show their age according to some. (i.e. debhelper is version 5 in sdk, version 7 in lenny)
** Downloaded forjx.zip, timeless' package
** Reading &quot;Maemo Packaging Policy v.023&quot;

; Thursday 2009-02-19

* Niels
** Yesterday: Fixed a few repository and autobuilder issues. Applied some patches to the voting software. Gave Jeremiah access to repository machine and overloaded him with info :) Discussed alternative repository management tools. Worked with bergie on an account issue on maemo.org.
** Today: Fix feed issue for Council. Work on front page styling.

* Jeremiah 
** Discussion with Kevin Hurewitz at Nokia about lintian and its suitability for maemo.org and Nokia (I would like to create a git or svn repo where we can keep our version of lintian so anyone can work on it.)
** Dug up some data on creating man pages for Kevin
** Reading documentation
** Security / QA discussion this morning with bunch of folks, blogged about it

; Wednesday 2009-02-18
* Niels
** Yesterday: Worked on repository issues and voting software. Tested doc importing. Attended web design meeting and worked on new style.
** Today: Fix chinook builder and promoter issues (index corruption?). Work on new styling for frontpage.

* Jeremiah 
** Still reading lots of docs
** Got Mer up and running in VirtualBox, still need to work on getting complete diablo 4.1.2 environment so I can go through building a package
** Set up my environment on garage.maemo.org
** Discussed dak with Niels

; Tuesday 2009-02-17
* Niels
** Yesterday: Tried to catch up on email, looked at some repository issues, worked on documentation importing. Installed voting software, upgraded servers and fired off voting mails.
** Today: Try to finish doc importing, start working on new styling again, overload Jeremiah with even more info ;)

* Jeremiah
** Slurping up more links and data from Niels
** Wiki reading / editing
** Emails, bug reporting regarding email addresses in the changelog file
** Built diablo sdk following instructions, using apophis on my debian testing chroot

; Monday 2009-02-16

* Jeremiah
** Finishing up some paperwork, i.e. NDA
** Relishing being a debmaster ;)
** Getting my development environment up and running so that I can reproduce packaging issues
** Being debriefed by Niels - lots of good info :)
** Would like to begin a long term discussion regarding security

* Niels
** Past week: Holiday
** Today: Catch up with email backlog, get Jeremiah started. Help Dave out with documentation import and voting.

; Thursday 2009-02-12

* Ryan
** Past days: Helping timeless with improved l10n, bugzilla stuff, working on pushing h-a-m improvements, debmaster stuff etc.
** Today: Try to get another highlights blog post out the door.
** Problems: Sprint reporting has gone totally down the toilet. Perhaps we need some sort of incentive. . . .

; Wednesday 2009-02-11

* Andre
** Yesterday: Normal bug business; triaging reports with version &lt; 4.0; internal weekly report
** Today: Bug 3846 again; discuss testing in Testzilla with Karsten; triage some older reports for relaxation ;-)</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/February 10</title>
    <id>3339</id>
    <revision>
      <id>34317</id>
      <timestamp>2010-05-12T20:43:37Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Tasks */</comment>
      <text xml:space="preserve">{{sprint}}
== February 2010 Sprint planning ==

* Planning meeting: [http://www.timeanddate.com/worldclock/fixedtime.html?month=2&amp;day=2&amp;year=2010&amp;hour=14&amp;min=30&amp;sec=0 Tuesday, 2sd February 14:30 UTC] in [[IRC|#maemo-meeting]].
* Follows [[maemo.org Sprints/January 10|January 10]]. Precedes [[maemo.org Sprints/March 10|March 10]].

== Tasks ==
[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Task ID
! Task
! Sprint priority
! Owner
! Percentage complete
! Notes
|- style=&quot;&quot;
| 9.09-01
| Push packaging policy updates
| Must
| [http://maemo.org/profile/view/xfade/ X-Fade], [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 60%
| Unfortunately more changes needed than expected, not completed yet
|- style=&quot;background:LightBlue&quot;
| 9.09-10
| Implement SSO sync-API endpoint for garage
| Must
| [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 80%
| implemented new server instance for midgard account-sync, cas change from ldap to MySQL, certificates in place for endpoint-sync
|- style=&quot;background:LightGreen&quot;
| 9.11-08
| No [[Special:Lonelypages | orphaned pages]] and revise Wiki navigation
| Must
| [http://maemo.org/profile/view/dneary/ dneary]
| DONE
| See [[Wiki gardeners]] page for precise details, and [[Special:Lonelypages]] for progress. I'm ready to call this DONE, and keep the rest as BAU house-keeping.
|- style=&quot;&quot;
| 9.12-01
| Working bugzilla 3.4, migration path notes
| Must
| [http://maemo.org/profile/view/andre/ Andre], [http://maemo.org/profile/view/karstenb/ Karsten]
| 90%
| pending some last checks with the live server
|- style=&quot;&quot;
| 9.12-05
| BMO: maemo.org custom features backport, Nokia patches
| Must
| [http://maemo.org/profile/view/andre/ Andre], [http://maemo.org/profile/view/karstenb/ Karsten]
| 70%
| 
|- style=&quot;&quot;
| 9.12-07
| BMO: CSS, maemo.org style
| Must
| [http://maemo.org/profile/view/andre/ Andre], [http://maemo.org/profile/view/karstenb/ Karsten]
| 50%
| needs some more styling, then community peer review phase
|- style=&quot;background:LightBlue&quot;
| 10.01-03
| [[Task:Document maemo.org processes | Document processes for maemo.org infrastructure]]
| Must
| [http://maemo.org/profile/view/dneary/ dneary]
| 50%
| Niels has been busy with server moves, and hasn't had a chance to talk to me this month. Ferenc will be documenting the server set-up during the move.
|- style=&quot;background:LightGreen&quot;
| 10.02-01
| Improve package interface - Auto-checks: Bugtracker and description field
| Must
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 100%
| Bugtracker and description check in place.
|- style=&quot;background:LightGreen&quot;
| 10.02-02
| Improve package interface - Ability to change votes
| Must
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 100%
| Implemented
|- style=&quot;background:LightGreen&quot;
| 10.02-03
| Improve package interface - Add package changelog
| Must
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 100%
| Done
|- style=&quot;background:LightBlue&quot;
| 10.02-04
| Cleanup repository, remove old versions.
| Must
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 80%
| Testing with Fremantle Extras-devel, after that it is just setting values per repository.
|- style=&quot;background:LightGreen&quot;
| 10.02-05
| Announce March 10 Community Council elections
| Must
| [http://maemo.org/profile/view/dneary/ dneary]
| DONE
| See [[Community Council/Council election Q1 2010]]
|- style=&quot;&quot;
| 10.02-06
| Prepare a Bugday
| Must
| [http://maemo.org/profile/view/andre/ Andre]
| 30%
| doodle set up; request sent to mailing list. Final date to define on monday.
|- style=&quot;&quot;
| 10.02-07
| Implement karma changes
| Must
| [http://maemo.org/profile/view/bergie/ bergie]
| 0%
| 
|- style=&quot;&quot;
| 10.01-08
| Prepare appdownloader for extras-testing
| Must
| [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 0% 
| 
|- style=&quot;&quot;
| 10.01-09
| Setup a rsync server for the maemo.org repos
| Must
| [http://maemo.org/profile/view/jeremiah/ jeremiah]
| 90% 
| Need to have port 873 opened in the firewall so that access to rsync server is available.
|- style=&quot;background:LightGreen&quot;
| 10.01-10
| Start the Testing Squad activities 
| Must
| [http://maemo.org/profile/view/vdvsx/ VDVsx]
| DONE 
| 
|- style=&quot;background:LightGreen&quot;
| 10.01-11
| Prepare/discuss the GSoC'10 proposal
| Must
| [http://maemo.org/profile/view/vdvsx/ VDVsx]
| DONE 
| 
|- style=&quot;&quot;
| 10.01-09
| Maemo User Experience Framework presentation
| Should
| [http://maemo.org/profile/view/texrat/ Randall Arnold]
| 30%
| proposed methodology for enabling bug reporting, app rating and similar user activities on devices 
|- style=&quot;&quot;
| 10.02-12
| Implement Maintainer part for Packages interface
| Should
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 0%
| 
|- style=&quot;&quot;
| 10.02-13
| Brainstorm diagram
| Should
| [http://maemo.org/profile/view/texrat/ Randall Arnold]
| 10%
| proposed methodology for Brainstorm
|- style=&quot;&quot;
| 10.01-06
| Midgard &amp; Midgard2 data sync
| Could
| [http://maemo.org/profile/view/indeyets/ indeyets]
| 0% 
| Implemented already, needs to be enabled and tested
|- style=&quot;&quot;
| 10.01-07
| Wiki &amp; Midgard2 data sync
| Could
| [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 0% 
| Component of gforge can partly be reused 
|- style=&quot;&quot;
| 10.01-08
| Enable CAS for Midgard
| Could
| [http://maemo.org/profile/view/indeyets/ indeyets]
| 0% 
| 
|- style=&quot;&quot;
| 10.02-14
| Change/improve repository management tools 
| Could
| [http://maemo.org/profile/view/xfade/ X-Fade], [http://maemo.org/profile/view/jeremiah/ jeremiah]
| 0%
| 
|}

== Actions ==
''None yet''

== Activity log ==
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.

''See latest sprint for activity''</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/January 09</title>
    <id>1407</id>
    <revision>
      <id>33802</id>
      <timestamp>2010-05-04T09:47:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}
==January 2009 Sprint planning==
* Planning meeting organized in the [[IRC|#maemo-meeting IRC channel]] on Wednesday 2009/01/07 at [http://www.timeanddate.com/worldclock/fixedtime.html?month=1&amp;day=7&amp;year=2009&amp;hour=20&amp;min=0&amp;sec=0 20:00 UTC] ([http://maemo.org/maemo-meeting/maemo-meeting-2009-01-07.html meeting log]).
* Right after [[Maemo.org Sprints/December 08]] review.
* Followed by [[Maemo.org Sprints/February 09]].

==Tasks==
[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:Tomato&quot;
| 2008-09-30 || [[Task:Reducing number of external repositories]] || Niels || 40% || Contacted most owners. Had a lot of positive responses, but need to gently push most of them again..
|- style=&quot;background:Tomato&quot;
| 2008-09-30 || [[Task:Open Source Proof Points]] || Quim || 5% || Nothing done in this sprint, sigh.
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || [https://bugs.maemo.org/show_bug.cgi?id=2179 Karma for applications] || Hirvinen || 0% || 
|- style=&quot;background:LightGreen&quot;
| 2008-11-04 || Finalise design for maemo.org || Dave || DONE ||
|- style=&quot;background:LightBlue&quot;
| 2008-11-04 || Finalise layout for maemo.org/support || Dave &amp; Tim || 70% || Wireframe and content done. Awaiting design by Glaubert.
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || [[Task:Texts for maemo.nokia.com]] || Quim || 20% || Drafted the &quot;Open Source&quot; part, but need to complete out of this sprint.
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || Define what is needed to get git up on maemo.org || Tero || 80% || Talk page up at [[Talk:Git For Garage|Git for garage]], Plans up at [[Git For Garage]]. 80% because discussion still takes place. But nothing stopping from moving ahead.
|- style=&quot;background:LightBlue&quot;
| 2008-12-03 || [[Task:Implement new maemo.org layout and style]] || Henri/Niels || 20% || 
|- style=&quot;background:Tomato&quot;
| 2008-12-03 || [[Objective:Community localization]] || Quim || 10% || Objective roadmapped in Harmattan, all details need to be figured out 
|- style=&quot;background:LightBlue&quot;
| 2008-01-07 || Plan to redesign Downloads and add functionality || Niels ||30% || Need to pick ideas to commit to in next Sprint
|}

==Bugs in product Website==
The bugs assigned in the last sprint meeting are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=High&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= HIGH]. The bugs proposed for the next sprint are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=Medium&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= MEDIUM]. Only product/component maintainers can change this status. Comment on a bug if you want to push it up. Check also those marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=easyfix&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= EASYFIX].

What follows are the bugs that need special attention/progress.

For the record:

{{#bugzilla:id=1660,2179,3177,3178,3432,3562,3767,3788,3794,3796,3846
  |columns=id,severity,product,status,resolution,summary,to
}}

==Activity log==
Latest activity report goes on top.

; Tuesday 2009-02-03

* Dave
** Yesterday: Moved the referendum debate along, but didn't really close the discussion.
**Today: Working out some stats based on the karma of those who voted last election.

* Niels
** Yesterday: Worked on website regressions, planned Sprint meeting and had some discussions about syncing downloads to maemo.nokia.com and TestLink.
** Today: Work on new styling for downloads, screenshot regeneration.

* Bergie
** Today: relative style paths

; Monday 2009-02-02

* Dave
** Today: Finalise referendum wording, launch council referendum. Review [[Task:Content Cleanup]].

* Niels
** Friday: Worked on new styles and looked at regenerating screenshot thumbnails for new site.
** Today: Plan Sprint meeting, work on new styling.

* Bergie
** Today: looking at URL generation

; Friday 2009-01-30

* Dave
** This week: Sat in on job interviews for Debmaster, and generally helped out with the interview process, organised &amp; ran web design meeting on Tuesday, contributed to election process debate and looked into openstv some more, worked on some graphics stuff for the new site.

* Niels
** Yesterday: Worked on new styling. Debugged some proxy issues. Worked on some website issues.
** Today: Fix a few website bugs and work on new styling on internal machine.

* Bergie
** Today: relative style paths, post-.3 RSS issue

; Thursday 2009-01-29

* Andre
** Yesterday: Reading diffs (see [https://bugs.maemo.org/show_bug.cgi?id=3846#c4 bug 3846] for the whole story); the normal repetitive bug business
** Today: Same as yesterday. Yeah, not that exciting, I know. Move along, nothing to see here! ;-)
** Niels: [echo]

* Niels
** Tuesday: Worked on maemo.org styling, attended webdesign meeting. Fixed some repository issues.
** Yesterday: Upgraded maemo.org to Midgard ragnaroek 8.09.3 and worked on some related issues.
** Today: Work on new maemo.org styling, add more scalable elements to standard pages.
** Problem: What are the others doing? Hello? [echo] [echo]

* Bergie
** Yesterday: Maemo ragnaroek .3 upgrade and some bug fixes
** Today: working around pearified.com having disappeared, some bug fixes

; Tuesday 2009-01-27

* Niels
** Yesterday: Autobuilder issues. Worked on new styling and caching issues for newstyle.maemo.org
** Today:  Work on styles, attend webdesign meeting.

; Monday 2009-01-26

* Niels
** Friday: Blogged about [http://communitizer.blogspot.com/2009/01/improving-maemoorg-downloads.html Downloads improvement ideas]. Worked on newstyle vhost. Added new wiki plugins and worked on wiki search indexing. Tweaked mysql for maemo.org a bit.
** Today: Look at autobuilder issues, work on new styling.

; Friday 2009-01-23

* Niels
** Yesterday: Specify [[Task:Improving_maemo.org/Design_requested]] list of pages/items that need a design from glaubert. Had some nice discussions about Downloads (Need to blog about that). Tweaked wiki settings, installed plugin. Worked on fluid layout a bit.
** Today: Blog about Downloads improvement ideas. Work on new styling for Downloads for the newstyle vhost.

; Thursday 2009-01-22

* Andre
** Yesterday: Triage some bugs in unconfirmed state; [http://bugs.maemo.org/show_bug.cgi?id=3846 bug 3846]; having fun with scratchbox crashing my entire system
** Today: The normal Triaging/Forwarding business; more [http://bugs.maemo.org/show_bug.cgi?id=3846 bug 3846] (hope to succeed in getting a *useful* diff against debian upstream package)

* Niels
** Yesterday: Worked on new styling, had some discussions and attended webdesign meeting.
** Today: Specify list of pages/items that need a design from glaubert, work on downloads improvement ideas.

; Wednesday 2009-01-21

* Niels
** Yesterday: Worked on maemo.org styling. HTML + CSS work. Synced changes from old style to new one in svn.
** Today: Webdesign meeting, work on downloads improvement ideas. Work on new styling.

; Tuesday 2009-01-20

* Andre
** Yesterday: Triage weekend's new bugs; take a look at Quim's Fremantle bug comments; quick look at [http://bugs.maemo.org/show_bug.cgi?id=4019 bug 4019]; Feature jar
** Today: Mostly lots of bug triaging; internal report

* Niels
** Yesterday: Fixed bug in Extras stats and get all missing stats. Applied bug #4010. Pushed web design.
** Today: Work on new maemo.org styling. (html + css work) Create fluid layout based on new design, so we can discuss it.

; Monday 2009-01-19

* Niels
** Friday: Worked on [[Task:Downloads_catalog_improvements#OS200x vs Maemo x]], lotsoflittlethings.
** Today: Work on Extras stats, fix open bugs, work on new styling for website.

* Andre
** Yesterfriday: off
** Today: Triage weekend's new bugs; Feature jar; take a look at Quim's Fremantle bug comments

; Friday 2009-01-16

* Niels
** Wednesday: Worked on jobs expiry. Worked on a better abstract algo for planet.
** Yesterday: Worked on jobs expiry. Old jobs will now not be visible after the expiry date. (Can also be added for announcements if we want.) Worked on downloads improvement plan.
** Today: Work on downloads improvement plan. Weigh in/work on web design.

* Dave
** Tuesday: Prepare &amp; run web design meeting. 
** Wednesday: Lots of debate following on from the design meeting this week. How to include Talk
** Yesterday: Followed up on feedback from the web design meeting on Tuesday. Started reviewing content of Support page.
** Today: Make proposal for Support page, and ask Glaubert to lay out &amp; design it. Follow up with Henri and Glaubert on deliverables that are due. Follow up on fixed-width vs fluid-width comment by Ryan.

; Wednesday 2009-01-14

* Niels
** Yesterday: web design meeting, worked on maemo.org site. Installed ragnaroek .3 release on internal machine.
** Today: Work on/plan new style. Prepare midgard upgrade for maemo.org.

; Tuesday 2009-01-13

* Andre
** Yesterday: bug 3846, catch up with bugmail/ITt, general bugtriage etc.
** Today: bug 3846, upstream some busybox issues, work on internal report stuff

; Monday 2009-01-12

* Niels
** Friday: Final tests for ragnaroek .3RC3 on internal machine, look at some design issues.
** Today: Publish new Extras stats, tune database server a bit. Work on better downloads wiki page.

; Friday 2009-01-09

* Niels:
** Yesterday: Published [http://maemo.org/maemo-meeting/maemo-meeting-2009-01-07.html IRC log for meeting], worked on spam and search bot spidering issues on bugs.maemo.org. Investigated spamassassin issues.
** Today: Test ragnaroek .3RC3 on internal machine, discuss some design issues.

; Thursday 2009-01-08

* Andre
** Yesterday: getting overview for bug 3846; meeting
** Today: [http://bugs.maemo.org/show_bug.cgi?id=3711 bug 3711]; reproduce some core issues in Fremantle; work on [http://bugs.maemo.org/show_bug.cgi?id=3846 bug 3846]

* Niels
** Yesterday: Worked on Extras stats, git.maemo.org website debugging and attended meeting.
** Today: Publish IRC log for meeting, investigate spam in bugzilla, look at google indexation of bugzilla, investigate spamassassin issues for lists, work on new styling for maemo.org.</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/January 10</title>
    <id>3115</id>
    <revision>
      <id>34316</id>
      <timestamp>2010-05-12T20:43:02Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Tasks */</comment>
      <text xml:space="preserve">{{sprint}}
== January 2010 Sprint planning ==

* Planning meeting: [http://www.timeanddate.com/worldclock/fixedtime.html?month=1&amp;day=5&amp;year=2010&amp;hour=14&amp;min=30&amp;sec=0 Tuesday, 5th January 14:30 UTC] in [[IRC|#maemo-meeting]].
* Follows [[maemo.org Sprints/December 09|December 09]]. Precedes [[maemo.org Sprints/February 10|February 10]].

== Tasks ==
[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Task ID
! Task
! Sprint priority
! Owner
! Percentage complete
! Notes
|- style=&quot;background:LightGreen&quot;
| 9.10-07
| Server migration
| Must
| [http://maemo.org/profile/view/feri/ Ferenc]
| Done
| Server move completed.
|- style=&quot;background:LightBlue&quot;
| 9.11-08
| No [[Special:Lonelypages | orphaned pages]] and revise Wiki navigation
| Must
| [http://maemo.org/profile/view/dneary/ dneary]
| 80%
| See [[Wiki gardeners]] page for precise details, and [[Special:Lonelypages]] for progress.
|- style=&quot;&quot;
| 9.12-1
| Working bugzilla 3.4, migration path notes
| Must
| [http://maemo.org/profile/view/andre/ Andre], [http://maemo.org/profile/view/karstenb/ Karsten]
| 80%
| 
|- style=&quot;background:LightGreen&quot;
| 10.01-01
| Refine the karma system
| Must
| [http://maemo.org/profile/view/vdvsx/ VDVsx]
| DONE 
| Discussion [http://talk.maemo.org/showthread.php?t=40329 here] and [http://n2.nabble.com/Sprint-task-Refine-the-karma-system-td4293910.html#a4293910 here]. Changes sent to the maemo.org team. App karma still need to be refined.
|- style=&quot;background:LightGreen&quot;
| 10.01-02
| Testing Squad
| Must
| [http://maemo.org/profile/view/vdvsx/ VDVsx]
| Done
| Discussion [http://talk.maemo.org/showthread.php?t=42055 here] and [http://n2.nabble.com/Community-Testing-Squad-Sprint-task-10-01-02-td4453389.html#a4453389 here]. [https://garage.maemo.org/projects/testingsquad/ Team] created, gathering members.
|- style=&quot;background:LightBlue&quot;
| 10.01-03
| [[Task:Document maemo.org processes | Document processes for maemo.org infrastructure]] - dneary
| Must
| [http://maemo.org/profile/view/dneary/ dneary]
| 50%
| Niels has been busy with server moves, and hasn't had a chance to talk to me this month. Ferenc will be documenting the server set-up during the move.
|- style=&quot;background:LightGreen&quot;
| 10.01-04
| Co-ordinate [[FOSDEM 2010 | Maemo presence in FOSDEM]] - dneary
| Must
| [http://maemo.org/profile/view/dneary/ dneary]
| DONE
| There is Maemo content in 4 or 5 different tracks, and a Maemo night out on Saturday
|- style=&quot;&quot;
| 9.09-01
| Push packaging policy updates
| Should
| [http://maemo.org/profile/view/xfade/ X-Fade], [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 60%
| Unfortunately more changes needed than expected, not completed yet
|- style=&quot;background:LightBlue&quot;
| 9.09-10
| Implement SSO sync-API endpoint for garage
| Should
| [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 80%
| implemented new server instance for midgard account-sync, cas change from ldap to MySQL, certificates in place for endpoint-sync
|- style=&quot;background:LightGreen&quot;
| 9.11-17
| Implement new UI for the application-downloader
| Should
| [http://maemo.org/profile/view/danielwilms/ danielwilms], [http://maemo.org/profile/view/wazd/ wazd]
| Done 
| changes in REST-API done, now completing UI changes
|- style=&quot;&quot;
| 9.12-5
| BMO: maemo.org custom features backport, Nokia patches
| Should
| [http://maemo.org/profile/view/andre/ Andre], [http://maemo.org/profile/view/karstenb/ Karsten]
| 25%
| 
|- style=&quot;&quot;
| 9.12-7
| BMO: CSS, maemo.org style
| Should
| [http://maemo.org/profile/view/andre/ Andre], [http://maemo.org/profile/view/karstenb/ Karsten]
| 0%
| 
|- style=&quot;&quot;
| 10.01-09
| Maemo User Experience Framework presentation
| Should
| [http://maemo.org/profile/view/texrat/ Randall Arnold]
| 30%
| proposed methodology for enabling bug reporting, app rating and similar user activities on devices 
|- style=&quot;background:LightGreen&quot;
| 10.01-05
| Setting up CAS &amp; Midgard2 to use the same database
| Could
| [http://maemo.org/profile/view/danielwilms/ danielwilms], [http://maemo.org/profile/view/indeyets/ indeyets]
| Done
| At the moment separated for initial testing.
|- style=&quot;&quot;
| 10.01-06
| Midgard &amp; Midgard2 data sync
| Could
| [http://maemo.org/profile/view/indeyets/ indeyets]
| 0% 
| Implemented already, needs to be enabled and tested
|- style=&quot;&quot;
| 10.01-07
| Wiki &amp; Midgard2 data sync
| Could
| [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 0% 
| Component of gforge can partly be reused 
|- style=&quot;&quot;
| 10.01-08
| Enable CAS for Midgard
| Could
| [http://maemo.org/profile/view/indeyets/ indeyets]
| 0% 
| 
|}

== Actions ==
''None yet''

== Activity log ==
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.

''See latest sprint for activity''</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/July 09</title>
    <id>2115</id>
    <revision>
      <id>33811</id>
      <timestamp>2010-05-04T09:58:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}
== June 2009 Sprint planning ==

* [http://maemo.org/maemo-meeting/maemo-meeting-2009-07-07.html|Planning meeting]: Thursday, 2009-08-04 at [http://www.timeanddate.com/worldclock/fixedtime.html?month=8&amp;day=4&amp;year=2009&amp;hour=13&amp;min=30&amp;sec=0 13:30 UTC] in [[IRC|#maemo-meeting]].
* Right after [[Maemo.org Sprints/June 09]] review.
* Followed by [[Maemo.org Sprints/August 09]].

==Tasks==

[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Task ID
! Task
! Sprint priority
! Owner
! Percentage complete
! Notes
|- style=&quot;background:LightGreen&quot;
|8.11-01
|[[Task:Texts for maemo.nokia.com|Texts for maemo.nokia.com]]
|Must
|qgil
|DONE
|Text about openness and community complete. The another one about development considered not needed. We will direct to Forum Nokia as developer point, and from there they will link to http://maemo.org/development/
|- style=&quot;background:LightBlue&quot;
|9.02-01
|[http://bugs.maemo.org/show_bug.cgi?id=3846 List Maemo bugzilla patches - create patchset]
|Must
|Andre
|90%
|Patchsets exist locally so I consider this part more or less done. They do not yet cleanly apply though. Thanks to Ferenc there's a 3.4 test installation online.
|- style=&quot;&quot;
|9.04-05
|[[Task:Implement new maemo.org layout and style|Implement new maemo.org layout and style - Bugzilla]]
|Must
|Andre
|80%
|Rough version in place. Working on two targets (9.02-01) doesn't make much sense. On the list after the Nokia non-template changes are in 3.4.
|- style=&quot;background:LightGreen&quot;
|9.06-03
|Further 20 packages through from Diablo Extras to Fremantle Extras
|Must
|Jeremiah
|DONE
| [http://wiki.maemo.org/Fremantle_build_notes Includes tracking down and reporting errors.]
|- style=&quot;background:LightBlue&quot;
|9.06-05
|Package promotion/repository management/community QA interface
|MUST
|X-Fade
|90%
|Basic interface is in place, most tests look promising. Currently blocking on actual promotion in the repository. Jeremiah needs to fix the promotion script, once this is done I consider this part of the task 100%. Improvements should go into separate tasks.
|-
|9.06-07
|[http://bugs.maemo.org/show_bug.cgi?id=2179 Karma for applications - get agreement on formula]
|Must
|[http://maemo.org/profile/view/indeyets/ indeyets]
|25%
|updating on behalf on indeyets: stats collecting has been started on 2009-07-29. we have to go with that for 1 week at least. we will have to push finishing this task in August.
|- style=&quot;&quot;
|9.06-06
|Further 40 packages through from Diablo Extras to Fremantle Extras
|Must
|Jeremiah
|50%
|
|- style=&quot;&quot;
|9.06-10
|[[Task:Publishing API docs|Modify library.gnome.org to use debs of docs, rather than building tar.gzs]]
|Must
|dneary
|0%
|Hopefully will be working with Fred Peters to get this done
|- style=&quot;background:LightBlue&quot;
|9.07-01
|Setup [[Task:Single_sign-on|SSO]]-integration (GForge)
|Should
|danielwilms
|60%
|Single Sign-out not ready yet. But almost there.
|- style=&quot;background:LightGreen&quot;
|9.07-02
|Finish Mediawiki [[Task:Single_sign-on|SSO]]-integration
|Should
|danielwilms
|done
|Ongoing status updates: [[Task:Single_sign-on/Status|status]]
|- style=&quot;background:LightGreen&quot;
|9.06-04
|[[Talk:Git For Garage|Git For Garage - Conversion UI]]
|Must
|Ferenc
|DONE
|Final test completed with the maemomm project. Branches / tags looked good in git. Marking the task done.
|-
|9.06-09
|[[Vendor Hardware Repositories]] - decide on sub-tasks for next sprint
|Should
|[http://maemo.org/profile/view/stskeeps/ Stskeeps]
|0%
|
|- style=&quot;background:LightGreen&quot;
|9.06-13
|[[Maemo Summit 2009]] rough budget
|Should
|qgil
|DONE
|
|- style=&quot;&quot;
|9.06-14
|Plan for the OMAP2 acceleration [[Drivers justification|drivers]]
|Could
|qgil
|10%
|Waiting for a status report. The reporter (TI partner) seems to be still on holidays.
|- style=&quot;&quot;
|9.06-11
|[[Task:Publishing API docs|Ensure library updated on Maemo release]]
|Could
|dneary
|0%
|
|- style=&quot;background:LightBlue&quot;
|9.06-12
|[[Task:Proof-read Human Interface Guidelines]]
|Could
|dneary
|98%
|Crowd-source [https://bugs.maemo.org/show_bug.cgi?id=4405 HIG proof-reading] with a bunch of volunteers. Go Tim! Go qole! Everyone else can join in too. Next step: merging changes back upstream
|- style=&quot;&quot;
|9.04-08
|[[ITP]] process/workflow around [http://test.maemo.org/cgi-bin/itp.cgi prototype]
|Could
|Jeremiah
|90%
| I am going to finish this up, doesn't need much. http://test.maemo.org/cgi-bin/itp.cgi
|-
|9.05-05
|[[Task:Implement new maemo.org layout and style|Style and layout for MXR]]
|Could
|GeneralAntilles
|20%
|Jaffa to contact Ryan about &quot;VCS issues&quot;
|-
|9.05-08
|[[Task:Maemo_brainstorm|Brainstorm documentation]]
|Could
|GeneralAntilles
|0%
|
|-
|9.06-08
|[http://bugs.maemo.org/show_bug.cgi?id=2179 Karma for applications - deploy formula]
|Must
|[http://maemo.org/profile/view/indeyets/ indeyets]
|0%
|Depends on 9.06-07
|
|- style=&quot;background:LightGreen&quot;
|9.06-15
|[http://talk.maemo.org/showthread.php?p=295808#post295808 Maemo Summit registration system]
|Must
|[http://maemo.org/profile/view/netblade/ NetBlade]
|100%
|done and [http://maemo.org/news/announcements/registration_maemo_summit_2009_open/ live]
|}

== Activity log ==

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;rss title=&quot;off&quot; desc=&quot;off&quot; number=&quot;40&quot; time=&quot;3600&quot;&gt;http://pipes.yahoo.com/pipes/pipe.run?_id=mvdCJrB_3hGfIDijIDfpSg&amp;_render=rss&lt;/rss&gt;</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/June 09</title>
    <id>2018</id>
    <revision>
      <id>33810</id>
      <timestamp>2010-05-04T09:57:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}
== May 2009 Sprint planning ==

* [http://maemo.org/maemo-meeting/maemo-meeting-2009-06-18.html|Planning meeting]: Thursday, 2009-06-18 at [http://www.timeanddate.com/worldclock/fixedtime.html?month=6&amp;day=18&amp;year=2009&amp;hour=13&amp;min=30&amp;sec=0 13:30 UTC] in [[IRC|#maemo-meeting]].
* Right after [[Maemo.org Sprints/May 09]] review.
* Followed by [[Maemo.org Sprints/July 09]].

==Tasks==

[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Task ID
! Task
! Sprint priority
! Owner
! Percentage complete
! Notes
|- style=&quot;&quot;
|8.11-01
|[[Task:Texts for maemo.nokia.com|Texts for maemo.nokia.com]]
|Must
|qgil
|20%
|
|- style=&quot;&quot;
|9.02-01
|[http://bugs.maemo.org/show_bug.cgi?id=3846 List Maemo bugzilla patches - create patchset]
|Must
|Andre
|40%
|
|- style=&quot;background:LightGreen&quot;
|9.06-01
|[[Task:Publishing API docs|Get library.gnome.org working locally]]
|Must
|dneary
|DONE
|Spent a day installing, downloading, rebuilding &amp; trying to understand lgo. Next step: set up a Debian repository, and figure out how to get lgo downloading .debs instead of looking for .tar.gzs
|- style=&quot;background:LightGreen&quot;
|9.06-02
|[[Talk:Git For Garage|Git For Garage - skin]]
|Must
|Ferenc
|DONE
|e.g. [https://garage.maemo.org/plugins/ggit/browse.php/?p=qemu to browse the Qemu repo]
|- style=&quot;&quot;
|9.04-05
|[[Task:Implement new maemo.org layout and style|Implement new maemo.org layout and style - Bugzilla]]
|Must
|Andre
|80%
|
|- style=&quot;background:LightBlue&quot;
|9.06-03
|Further 20 packages through from Diablo Extras to Fremantle Extras
|Must
|Jeremiah
|85%
| [http://wiki.maemo.org/Fremantle_build_notes Includes tracking down and reporting errors.]
|- style=&quot;&quot;
|9.06-05
|Package promotion/repository management/community QA interface
|MUST
|X-Fade
|60%
|Making good progress, internal testing with fremantle to start this week. As said in the meeting, this task will span 2 sprints.
|-
|9.06-07
|[http://bugs.maemo.org/show_bug.cgi?id=2179 Karma for applications - get agreement on formula]
|Should
|[http://maemo.org/profile/view/indeyets/ indeyets]
|0%
|
|- style=&quot;&quot;
|9.06-06
|Further 40 packages through from Diablo Extras to Fremantle Extras
|Should
|Jeremiah
|0%
|
|- style=&quot;&quot;
|9.06-10
|[[Task:Publishing API docs|Modify library.gnome.org to use debs of docs, rather than building tar.gzs]]
|Should
|dneary
|0%
|Hopefully will be working with Fred Peters to get this done
|-style=&quot;background:LightBlue&quot;
|9.04-09
|Setup [[Task:Single_sign-on|SSO]] testing environment
|Should
|danielwilms
|75%
|The test environment is running containing a ldap server, CAS, Mediawiki integrated with CAS, and an easy UI to create new test users. Accounts for the people, who work actively with it created. Follow as well the status: [[Task:Single_sign-on/Status|status]].
|- style=&quot;&quot;
|9.06-04
|[[Talk:Git For Garage|Git For Garage - Conversion UI]]
|Should
|Ferenc
|99%
|Finishing feature request for converting branches should be pushed to July.
|-
|9.06-09
|[[Vendor Hardware Repositories]] - decide on sub-tasks for next sprint
|Should
|[http://maemo.org/profile/view/stskeeps/ Stskeeps]
|0%
|
|- style=&quot;&quot;
|9.06-13
|[[Maemo Summit 2009]] rough budget
|Should
|qgil
|0%
|
|- style=&quot;&quot;
|9.06-14
|Plan for the OMAP2 acceleration [[Drivers justification|drivers]]
|Could
|qgil
|0%
|
|- style=&quot;&quot;
|9.06-11
|[[Task:Publishing API docs|Ensure library updated on Maemo release]]
|Could
|dneary
|0%
|
|- style=&quot;background:LightBlue&quot;
|9.06-12
|[[Task:Proof-read Human Interface Guidelines]]
|Could
|dneary
|90%
|Crowd-source [https://bugs.maemo.org/show_bug.cgi?id=4405 HIG proof-reading] with a bunch of volunteers. Go Tim! Go qole! Everyone else can join in too. Next step: merging changes back upstream
|- style=&quot;&quot;
|9.04-08
|[[ITP]] process/workflow around [http://test.maemo.org/cgi-bin/itp.cgi prototype]
|Could
|Jeremiah
|90%
| I am going to finish this up, doesn't need much. http://test.maemo.org/cgi-bin/itp.cgi
|-
|9.05-05
|[[Task:Implement new maemo.org layout and style|Style and layout for MXR]]
|Could
|GeneralAntilles
|20%
|Jaffa to contact Ryan about &quot;VCS issues&quot;
|-
|9.05-08
|[[Task:Maemo_brainstorm|Brainstorm documentation]]
|Could
|GeneralAntilles
|0%
|
|-
|9.06-08
|[http://bugs.maemo.org/show_bug.cgi?id=2179 Karma for applications - deploy formula]
|Could
|[http://maemo.org/profile/view/indeyets/ indeyets]
|0%
|Depends on 9.06-07
|
|-
|9.06-15
|[http://talk.maemo.org/showthread.php?p=295808#post295808 Maemo Summit registration system]
|Must
|[http://maemo.org/profile/view/netblade/ NetBlade]
|0%
|
|}

== Activity log ==

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 RSS feed]) or talk.maemo.org.

;2009-07-07
* Tim
** HIG Editing.

;2009-07-03
* Tim
** HIG Editing.

; 2009-07-02
* Dave
** Tomorrow: Fly to Gran Canaria, set up a local Debian repository on my laptop
** Today: Catching up on an old unfinished project which has been hanging around my neck like an albatross, finalising some paperwork for 3 month old expense claims &amp; invoices, nothing Maemo related.
** Last few days: Aside from reviewing Maemo Summit content as it arrives, and keeping up with forums and mailing lists, it's been all Gran Canaria all the time - organising football match facilities, ensuring pick-ups for keynotes at the airport, updating the agenda with last minute changes, pushing for the press schedule to be organised, finalising budget discussions, making sure invited press get their tickets bought.

* Andre
** Tomorrow: Fly to GCDS/Guadec conference
** Today: Mostly continue updating reports wrt to Fremantle and run into way heavier issues while trying this.
** Yesterday: BAU (syncing); Mailing lists; Thinking about Communication vs Real-time communication category (hmm...).

* Tim
** HIG Editing.

; 2009-06-30
* Andre
** Today: BAU (Syncing); Restructure Chat/Internet Call bugs a bit; internal weekly report; continue updating tickets wrt Fremantle
** Yesterday: BAU (Syncing); Updating tickets in UNCONFIRMED state 

; 2009-06-26
* Andre
** Today: BAU (Syncing); Restructure Chat/Internet Call bugs a bit; Create Mauku product in Extras (pending on email answer); Newstyle/CSS Testzilla hacking
** Yesterday: BAU (Syncing and retest latest bug reports); Some Newstyle/CSS Testzilla hacking

; 2009-06-25
* Andre
** Today: Create Mauku and Microfeed products in Extras; BAU (Syncing and retest latest bug reports); Newstyle/CSS Testzilla hacking; Maybe continue updating reports wrt Fremantle
** Yesterday: BAU (Syncing); Continue updating reports wrt Fremantle; Newstyle/CSS hacking

; 2009-06-24
* Andre
** Today: BAU (Syncing); Continue updating reports wrt Fremantle; Newstyle/CSS hacking
** Yesterday: Create Enigma product; BAU (Syncing); Internal weekly report; Newstyle/CSS hacking with Ryan; Continue updating reports wrt Fremantle (especially some Backup bugs)

; 2009-06-23
* Andre
** Today: Create Enigma product; BAU (Syncing); Newstyle/CSS hacking; Internal weekly report; Continue updating reports wrt Fremantle
** Yesterday: Continued updating (~40) reports wrt Fremantle (Testing, Reproducing etc) 

; 2009-06-22
* Dave
** Today: Install &amp; learn about library.gnome.org 
** Friday: Launched HIG proof-reading, did some proof-reading &amp; set up the structure for the rest
; 2009-06-19
* Dave
** Today: Catching up, GUADEC press work, GNOME Mobile track, push Call for content, brainstorm moderator list, and start the &quot;HIG proof-read&quot; tracking page.
** Yesterday: Salon des Entrepreneurs all day, representing the association des Jeunes Entrepreneurs Lyonnais.

* Andre
** Today: Monthly Feature Jar; Continue CSS hacking/apply Newstyle to Bugzilla; Create Password Safe Look in Extras; Maybe continue updating reports wrt Fremantle (Testing, Reproducing etc)
** Yesterday: Create Conboy in Extras; getting Testzilla live hacking to work; monthly Sprint meeting; CSS hacking/apply Newstyle to Bugzilla (thanks Ryan for initial patch)

* Tim
** Wrote blog posts about [http://maemo.org/community/council/maemo_summit_2009-call_for_content_now_open/ Summit Content Submissions] and [http://maemo.org/community/council/maemo_brainstorm/ Brainstorm].

; 2009-06-18

* Jeremiah
** Looking into tools to push around packages in a debian repository so I don't re-invent the wheel. (This is designed to be the backend to Niel's package promotion tools.)
** Setting up a reporting system with Qaiku
* Andre
** Today: Create Conboy and Password Safe Look in Extras; play with Ryan's Newstyle patch; Continue updating reports wrt Fremantle (Testing, Reproducing etc)
** Last two days: Updating reports wrt Fremantle (Testing, Reproducing etc); Thinking about Fremantle bug objectives &amp; querying stats; internal weekly report</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/March 09</title>
    <id>1668</id>
    <revision>
      <id>33805</id>
      <timestamp>2010-05-04T09:52:16Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}
==March 2009 Sprint planning==
* Planning meeting organized in the [[IRC|#maemo-meeting IRC channel]] on Wednesday 2009/03/05 at [http://www.timeanddate.com/worldclock/fixedtime.html?month=3&amp;day=5&amp;year=2009&amp;hour=14&amp;min=0&amp;sec=0 14:00 UTC] ().
* Right after [[Maemo.org Sprints/February 09]] review.
* Followed by [[Maemo.org Sprints/April 09]].

==Tasks==
[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:Tomato&quot;
| 2008-09-30 || [[Task:Open Source Proof Points]] || Quim || 5% || Nothing done in this sprint, sigh.
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || [https://bugs.maemo.org/show_bug.cgi?id=2179 Karma for applications] || Hirvinen || 0% || 
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || [[Task:Texts for maemo.nokia.com]] || Quim || 20% || Drafted the &quot;Open Source&quot; part, but need to complete out of this sprint.
|- style=&quot;background:LightGreen&quot;
| 2008-11-04 || Define what is needed to get git up on maemo.org || Ferenc || DONE || Talk page up at [[Talk:Git For Garage|Git for garage]], Plans up at [[Git For Garage]]. 80% because discussion still takes place. But nothing stopping from moving ahead.
|- style=&quot;background:Tomato&quot;
| 2008-12-03 || [[Task:Implement new maemo.org layout and style]] || Henri/Niels || 20% || 
|- style=&quot;background:Tomato&quot;
| 2008-12-03 || [[Objective:Community localization]] || Quim || 10% || Objective roadmapped in Harmattan, all details need to be figured out 
|- style=&quot;background:Tomato&quot;
| 2008-01-07 || Plan to redesign Downloads and add functionality || Niels ||30% || Need to pick ideas to commit to in next Sprint
|- style=&quot;background:Tomato&quot;
| 2009-02-04 || [https://bugs.maemo.org/show_bug.cgi?id=3846 List Maemo Bugzilla custom code changes] || Andre || 30% || ...in order to port maemo.org Bugzilla to a more recent codebase (long term). See bug report and [[User:Andre/bug3846|diff dump]] for more details.
|-
| 2009-03-05 || Adapt debian's lintian tool to Maemo || Jeremiah || 10% || Maemoize lintian into maemian - this involves defining packaging policy, then coding it into lintian (maemian) and passing any relevant changes upstream.
|-
| 2009-03-10 || [[Task:Reducing number of external repositories]] || Jeremiah, taking over from Niels || 45% ||  Contacted most owners. Had a lot of positive responses, but need to gently push most of them again. Composing an email about Fremantle repos and inviting external repos back into the fold.
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || [https://bugs.maemo.org/show_bug.cgi?id=2179 Finalize design and plan for karma for applications] || Hirvinen || 0% || 
|- style=&quot;background:LightBlue&quot;
| 2008-12-03 || [[Task:Implement new maemo.org layout and style]] || Henri/Niels || 60% || Getting there, still quite a few details to take care of.
|- style=&quot;background:LightGreen&quot;
| 2009-03-05 || Modify election app to handle preferential voting and counting || Dave || DONE || Running a dry run test election to test.
|- style=&quot;background:LightGreen&quot;
| 2009-03-05 || Run community council election || Dave || DONE || Congratulations to the new community council.
|-
| 2009-03-05 || Maemo Summit 2009 - finalise venue || Dave ||  || Kees has done some work on this. Need to co-ordinate with him.
|}

==Bugs in product Website==
The bugs assigned in the last sprint meeting are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=High&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= HIGH]. The bugs proposed for the next sprint are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=Medium&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= MEDIUM]. Only product/component maintainers can change this status. Comment on a bug if you want to push it up. Check also those marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=easyfix&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= EASYFIX].

What follows are the bugs that need special attention/progress.

For the record:

{{#bugzilla:id=1660,2179,3177,3178,3692,3911,3432,3576
  |columns=id,severity,product,status,resolution,summary,to
}}

==Activity log==
Latest activity report goes on top.


; Wednesday 2009-04-01
* Dave
** Yesterday: Caught up with a bunch of stuff, not finished yet. Web design IRC meeting.
** Today: Catch up with Kees on the summit sites, finish catching up post-travel. Blogging &amp; editing article.

; Tuesday 2009-03-31
* Dave
** Today: Back from San Francisco, still suffering some jet-lag. Co-ordinate with Kees on Maemo Summit sites (share names &amp; contact details, get availability info). Reduce inbox after trip. Playing catch-up today.
** Last week: Panel on company-driven communities went well. Presentation on leveraging communities got good response. Followed the newstyle.maemo.org implementation from a distance.

* Jeremiah
** More src-builder internals
** More sbdmocking and package building

;Monday 2009-03-30
* Niels
** Friday: Worked on Downloads styling, managed to get a lot done there. Improved Fremantle import script.
** Today: Look at autobuilder issues. Check status on broken packages/missing deps. Work on documentation infra.

* Jeremiah
**  Fighting with sbdmock and friends 
** Created a build order at least for diablo -&gt; fremantle

;Friday 2009-03-27
* Niels
** Yesterday: Worked on a script to automatically create entries in Downloads for Fremantle when a package has been uploaded to Extras. Copies data from entries for other OS with fallback to info from Packages itself. Worked on Downloads for Fremantle.
** Today: Work on newstyle styling. Work on Fremantle import script.

* Jeremiah
** Spent most of the day trying to build a replica of garage.maemo.org so that build scripts work
** Lots of work creating a build environment consisting of a debian virtual machine, with build tools, right version of helper scripts, proprietary build scripts, sdk 5
** Building packages from diablo for fremantle

;Thursday 2009-03-26
* Andre
** Yesterday: ITt'ify Feature Jar (and document HTML-&gt;ITt markup for once); Triaging older bugs (the mail unread backlog); think&amp;work on some stats for internal reports; smaller hacking on my Greasemonkey bug scripts
** Today: Triaging older bugs; bug 3846 (upstream Bugzilla code etc)

* Jeremiah
** Pulled in packages from diablo and checked their sources (free, non-free)
** started using / documenting src-builder, ran chkloops.sh 

;Wednesday 2009-03-25
* Niels
** Yesterday: Email backlog, added support for Downloads to know if an application is in Extras. Looked at some repository issues and future features.
** Today: Lots of discussions about little things that need to be arranged for us to be ready for Fremantle. Help some Nokia internal teams with technical requirements. Look at some website issues.

* Jeremiah
** Pulling in sources from free, non-free in diablo
** Some hacking on scripts for src-builder

;Tuesday 2009-03-24

* Dave
** Travelling to OSBC this week, so there will be no updates from me this week.
** Past weeks: (eek!) Modified Maemo election software &amp; set up the elections, ran Maemo Community Council election &amp; dealt with various election-related issues, and have started work on identifying &amp; reserving Maemo Summit location

* Andre
** Yesterday: Also catching up on email (been off for two days); New incoming bugs; General triaging.
** Today: Triaging older unread bug tickets from my inbox; Feature Jam; internal weekly report.

* Niels
** Last week: Traveled to Finland and Sweden, had some interesting meetings to help move things along. Worked on new styling and downloads improvements.
** Today: Catch up on email and tasks.

* Jeremiah
** Worked on scripts for downloading diablo sources for fremantle
** Began download of sources from diablo

;Monday 2009-03-23

* Andre
** Today: New incoming bugs; Feature Jam

* Jeremiah
** Need to establish new key with garage.m.o

;Friday 2009-03-20

* Ryan
** Past days: Election stuff.
** Today: New council organizational stuff, register as Maemo mentor for [[GSoC 2009]].

* Jeremiah
** Travel to the United States

;Thursday

* Jeremiah
** Synergy should be available in the repos, haven't tested it yet, also needs a quick bit of documentation
** worked on moving packages from diablo to fremantle

;Wednesday 2009-03-18

* Andre 
** Last days &amp; today: Nothing special - normal bug business (triaging, forwarding, discussing) and bug 3846
** Th/Fr: Off for relocating

* Jeremiah
** Presented the Maemo platform to students at Chalmers Technical University in Gothenburg, Sweden as part of a career day
** Working on getting my new development environment up and running. 

;Tuesday 2009-03-17

* Jeremiah 
** Hacked on a deb package removal script, mostly done with that.
** Still trying to get synergy's dependencies into maemo
** Worked on presentation at Chalmers 

; Monday 2009-03-16

* Ryan
** Past week: Spring Break.
** Today: See if a better CC image is possible for the footer.

* Jeremiah
** synergy and related fun

; Saturday 2009-03-14

* Jeremiah 
** Quick look at email and lists

; Friday 2009-03-13

* Daniel
** Continued working on SSO-concept -&gt; analysis of different option -&gt; try to finish it next week
** Continued on queue service

* Jeremiah 
** Built synergy and its dependencies successfully, installed them on my N810, blogged about it
** Spoke with Timeless about his pile of debs

; Thursday 2009-03-12

* Niels
** Yesterday: Talked to Jeremiah about missing runtime dependency checks in autobuilder. Updated ssl certificate for garage, still waiting for maemo.org. Worked on autobuilder.
** Today: Look at autobuilder/Fremantle SDK issues. Kick off elections.

* Daniel
** worked on SSO-concept -&gt; first ideas how it could look like, evaluating different options

* Jeremiah 
** Spoke with Pavlov on #maemo, working with timeless regarding triggers, dpkg-divert
** Hack, hack on synergy

; Wednesday 2009-03-11

* Niels
** Yesterday: Worked on autobuilder and repository related tasks. Fix scripts on garage to prevent runaway situations like the one that happened yesterday. Attended web meeting. Applied some changes to voting software for Dave.
** Today: Try to find a solution for missing dependency checks in autobuilder. Update ssl certificates for hosts which are about to expire soon.

* Daniel
** worked on queue system, test-service works, has to be integrated with promoter

* Jeremiah
** worked on repo scripts, reprepro documentation, discussion with author, code reading (dak and reprepro)
** packaged libxinerama and libxinerama-dev

; Tuesday 2009-03-10
* Niels
** Yesterday: Worked on autobuilder. Installed and tested new election software. Helped testing/finding discussion karma issues. Looked into svn server upgrades. Looked at garage runaway processes. Talked with Jeremiah about repository management tools.
** Today: Fix scripts on garage to prevent runaway issues. Fix garage mail problem. Look at fremantle extras-devel issues. Web design meeting. Do some updates to election software for Dave.

* Jeremiah
** python script, check_depends.py, designed to check dependencies
** Discussed dependency issues with Niels, how to handle the same

* Daniel
** Yesterday: Used some spare time to start with the SSO-concept.
** Today: Worked on promoter script and tried to figure out how to integrate a queue system. Poco a poco I get a clue how to solve that.

; Monday 2009-03-09
* Dave
** Friday: Debugging election software. Propose calculating election results once and storing them after the end of the election. Make required changes in election software.
** Today: Finish working on election software. Implement export of .blt file format for election result calculation. Run fake election to test.

* Niels
** Friday, weekend: Finally got everything to be able to setup autobuilder for Fremantle. Worked on wiki styling.
** Today: Test autobuilder. Look at repository management tools with Jeremiah, try to document a list of requirements. See if I can find out if Ryan's concerns can be resolved.

* Jeremiah
** Mostly played with my new N810 today, fun. 
** Packaging discussion with Jeffery via mail, Jabber with Niels about repo tools, hopefully we can spec out what we need

; Sunday 2009-03-08

* Ryan
** Yesterday: Worked myself into a fury over the [[Task:Package categories|package categories]] and the likelyhood of Nokia screwing us over on them.
** Today: Going to try to get some answers, and maybe lose it depending on the answer.
** Problem: Nokia loves putting up roadblocks.

* Jeremiah
** Worked on repo cleaning script, correspondence with Niels regarding dak, looked at packaging XCAS

; Friday 2009-03-06

* Jeremiah
** Hardware failure on my main development machine put me out of commission 
** Worked on dak and dak's upstream wiki

* Niels
** Yesterday: Worked on Fremantle extras-devel related issues, worked on wiki style. Did a test import for maemo-community mails to see if karma issues were fixed (Looks good!)
** Today: See if we can get this autobuilder issue cleared up. Work on new styling.

* Ryan
** Yesterday: Chaired Sprint meeting, poked at Niels' latest awesome newstyle stuff, gave Jeremiah an overview of the [[Task:Reducing number of external repositories|external repositories]] task.
** Today: Discuss new [[https://bugs.maemo.org/show_bug.cgi?id=3576|maemo.org footer]], start working on a final plan for karma for applications.

* Dave
** Yesterday: Sprint meeting, created placeholder Support page, debug election software, work on integrating counting into web app, finish article, work on GUADEC Call for Papers
** Today: Election software - I want to dry-run test the election software before going live, decide on counting and results display.
 
; Thursday 2009-03-05

* Jeremiah 
** Sprint meeting, discussed external repos with GA (Ryan)
** Installed Xapian on test.m.o, reading Xapian docs.</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/March 10</title>
    <id>3512</id>
    <revision>
      <id>33822</id>
      <timestamp>2010-05-04T10:13:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}
== March 2010 Sprint planning ==

* Planning meeting: [http://www.timeanddate.com/worldclock/fixedtime.html?month=3&amp;day=2&amp;year=2010&amp;hour=14&amp;min=30&amp;sec=0 Tuesday, 2nd March 14:30 UTC] in [[IRC|#maemo-meeting]]. You can [http://www.google.com/calendar/event?action=TEMPLATE&amp;text=Maemo%20Sprint-meeting&amp;dates=20100302T143000Z/20100302T163000Z&amp;details=&amp;location=FreeNode%2C%20%23maemo-meeting%20channel&amp;trp=false&amp;sprop=&amp;sprop=name: add it to your Google Calendar]
* Follows [[maemo.org Sprints/February 10|February 10]]. Precedes [[maemo.org Sprints/April 10|April 10]].

== Tasks ==
[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Task ID
! Task
! Sprint priority
! Owner
! Percentage complete
! Notes
|- style=&quot;background:LightBlue&quot;
| 9.09-01
| Push packaging policy updates
| Must
| [http://maemo.org/profile/view/xfade/ X-Fade], [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 70%
| Went over this with Marius and Daniel, should be published to the wiki soon. - Niels
|- style=&quot;background:LightBlue&quot;
| 9.09-10
| Implement SSO sync-API endpoint for garage
| Must
| [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 80%
| implemented new server instance for midgard account-sync, cas change from ldap to MySQL, certificates in place for endpoint-sync
|- style=&quot;&quot;
| 9.12-01
| Working bugzilla 3.4, migration path notes
| Must
| [http://maemo.org/profile/view/andre/ Andre], [http://maemo.org/profile/view/karstenb/ Karsten]
| 90%
| pending some last checks with the live server
|- style=&quot;&quot;
| 9.12-05
| BMO: maemo.org custom features backport, Nokia patches
| Must
| [http://maemo.org/profile/view/andre/ Andre], [http://maemo.org/profile/view/karstenb/ Karsten]
| 70%
| 
|- style=&quot;&quot;
| 9.12-07
| BMO: CSS, maemo.org style
| Must
| [http://maemo.org/profile/view/andre/ Andre], [http://maemo.org/profile/view/karstenb/ Karsten]
| 50%
| needs some more styling, then community peer review phase
|- style=&quot;background:LightBlue&quot;
| 10.01-03
| [[Task:Document maemo.org processes | Document processes for maemo.org infrastructure]]
| Must
| [http://maemo.org/profile/view/dneary/ dneary], [http://maemo.org/profile/view/xfade/ X-Fade]
| 50%
| Niels has been busy with server moves, and hasn't had a chance to talk to me this month. Ferenc will be documenting the server set-up during the move.
|- style=&quot;background:LightGreen&quot;
| 10.02-04
| Cleanup repository, remove old versions.
| Must
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 100%
| Applications now only have one version in the repo when they are not a dependency for something else. This seems fine for now.
|- style=&quot;background:LightGreen&quot;
| 10.02-06
| Prepare a Bugday
| Must
| [http://maemo.org/profile/view/andre/ Andre]
| 100%
| Bugday was held on March 17th. Hopefully to become a monthly recurring task now as this was fun and quite successful.
|- style=&quot;&quot;
| 10.02-07
| Implement karma changes
| Must
| [http://maemo.org/profile/view/bergie/ bergie]
| 60%
| The rest of changes must be discussed with the new council
|- style=&quot;&quot;
| 10.01-08
| Prepare appdownloader for extras-testing
| Must
| [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 0% 
| 
|- style=&quot;&quot;
| 10.01-09
| Setup a rsync server for the maemo.org repos
| Must
| [http://maemo.org/profile/view/jeremiah/ jeremiah]
| 0% 
| Back to the drawing board. Needs special VM setup for this to work, needs discussion.
|- style=&quot;background:LightBlue&quot;
| 10.02-12
| Implement Maintainer part for Packages interface
| Must
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 30%
| Implemented maintainer request and approval by maintainers, working on list packages by maintainer.
|- style=&quot;background:LightGreen&quot;
| 10.03-01
| Prepare the GSoC'10 proposal
| Must
| [http://maemo.org/profile/view/vdvsx/ VDVsx]
| DONE 
|
|- style=&quot;background:LightGreen&quot;
| 10.03-02
| Testing Marathon
| Must
| [http://maemo.org/profile/view/vdvsx/ VDVsx]
| DONE
|
|- style=&quot;background:LightGreen&quot;
| 10.02-01
| Co-ordinate Q1 2010 council elections
| Must
| [http://maemo.org/profile/view/dneary/ dneary]
| DONE
| Congratulations to Randall, Andrew, Ryan, Attila and Javier on their election.
|- style=&quot;background:LightGreen&quot;
| 10.02-02
| Synchronise wiki theme in svn &amp; live version
| Must
| [http://maemo.org/profile/view/dneary/ dneary]
| DONE
| Diffs synced in maemo2midgard/mediawiki, core mediawiki with some custom patches also imported, and bug fixes committed &amp; synced 
|- style=&quot;background:LightGreen&quot;
| 10.02-03
| Import docs updates from Nokia documentation team into the wiki 
| Must
| [http://maemo.org/profile/view/dneary/ dneary]
| DONE
| Docs imported! See [[Documentation/Maemo_Flasher-3.5_Tutorial]], [[Documentation/Maemo_SDK_Virtual_Image_Tutorial]], [[Documentation/Maemo_PC_Connectivity_Tutorial]], [[Documentation/Maemo_For_Symbian_Developers_Guide]], [[Documentation/Maemo_Eclipse_Tutorial]] and [[Documentation/Maemo_Documentation_Guidelines]]
|- style=&quot;background:LightBlue&quot;
| 10.02-04
| Prepare repository for PR1.2 change.
| Must
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 80%
| Most backend changes are in place. -devel and -testing might need some changes, pending discussion.
|- style=&quot;&quot;
| 10.02-05
| Add icons to Downloads
| Must
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 0%
| 
|- style=&quot;&quot;
| 10.01-09
| Maemo User Experience Framework presentation
| Should
| [http://maemo.org/profile/view/texrat/ Randall Arnold]
| 30%
| proposed methodology for enabling bug reporting, app rating and similar user activities on devices 
|- style=&quot;&quot;
| 10.02-13
| Brainstorm diagram
| Should
| [http://maemo.org/profile/view/texrat/ Randall Arnold]
| 10%
| proposed methodology for Brainstorm
|- style=&quot;&quot;
| 10.01-06
| Midgard &amp; Midgard2 data sync
| Could
| [http://maemo.org/profile/view/indeyets/ indeyets]
| 0% 
| Implemented already, needs to be enabled and tested
|- style=&quot;&quot;
| 10.01-07
| Wiki &amp; Midgard2 data sync
| Could
| [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 0% 
| Component of gforge can partly be reused 
|- style=&quot;&quot;
| 10.01-08
| Enable CAS for Midgard
| Could
| [http://maemo.org/profile/view/indeyets/ indeyets]
| 0% 
| 
|- style=&quot;&quot;
| 10.02-14
| Change/improve repository management tools 
| Could
| [http://maemo.org/profile/view/xfade/ X-Fade], [http://maemo.org/profile/view/jeremiah/ jeremiah]
| 0%
| 
|}

== Actions ==
''None yet''

== Activity log ==
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.

''Moved to April 10''</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/May 09</title>
    <id>1844</id>
    <revision>
      <id>33808</id>
      <timestamp>2010-05-04T09:55:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categories from template</comment>
      <text xml:space="preserve">{{sprint}}
== May 2009 Sprint planning ==

* [[Maemo.org Sprints/May 09/Meeting|Planning meeting]]: Thursday, 2009-05-07 at [http://www.timeanddate.com/worldclock/fixedtime.html?month=5&amp;day=7&amp;year=2009&amp;hour=13&amp;min=30&amp;sec=0 13:30 UTC] in [[IRC|#maemo-meeting]].
* Right after [[Maemo.org Sprints/April 09]] review.
* Followed by [[Maemo.org Sprints/June 09]].

==Tasks==

[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Task ID
! Committed
! Due date
! Task
! Sprint priority
! Owner
! Percentage complete
! Notes
|- style=&quot;background:Tomato&quot;
|8.11-01
|2008-11-04
|[[Maemo.org Sprints/May 09|May 09]]
|[[Task:Texts for maemo.nokia.com|Texts for maemo.nokia.com]]
|Should
|Quim
|20%
|No progress due to many internal tasks. Jussi has given me an ultimatum for the June sprint.
|- style=&quot;background:Orange&quot;
|9.02-01
|2009-02-04
|[[Maemo.org Sprints/April 09|April 09]]
|[http://bugs.maemo.org/show_bug.cgi?id=3846 List Maemo bugzilla patches - create patchset]
|Should
|Andre
|40%
|Some progress but not as much as wanted, mainly due to other stuff and to massive Fremantle testing (I consider this important to do currently). Make this a MUST for July.
|- style=&quot;background:LightGreen&quot;
|9.03-01
|2009-03-05
|[[Maemo.org Sprints/May 09|May 09]]
|[[Maemo Summit 2009]] - finalise venue
|Must
|Quim
|DONE
|[[Maemo Summit 2009]] will be held in [http://www.westergasfabriek.nl/english/engels_welcome.php WesterGasFabriek]
|-
|9.04-02
|2009-04-06
|[[Maemo.org Sprints/April 09|April 09]]
|[[Talk:Git For Garage|Git For Garage - garage integration]]
|Must
|Ferenc
|90%
|Gitweb is functional, the skin is not matching garage. Got no time working on it. Must be pushed to June.
|- style=&quot;background:LightBlue&quot;
|9.04-05
|2009-04-06
|[[Maemo.org Sprints/May 09|May 09]]
|[[Task:Implement new maemo.org layout and style|Implement new maemo.org layout and style - Bugzilla]]
|Must
|Ryan
|80%
|Sent the templates off to Andre. Waiting on progress there.
|-
|9.04-07
|2009-04-06
|[[Maemo.org Sprints/May 09|May 09]]
|[http://bugs.maemo.org/show_bug.cgi?id=2179 Karma for applications - implement]
|Should
|indeyets
|60%
|Application-stats are gathered since 2009-06-10
|- style=&quot;background:LightBlue&quot;
|9.04-08
|2009-04-06
|[[Maemo.org Sprints/May 09|May 09]]
|[[ITP]] process/workflow
|Could
|jeremiah
|90%
| Have a rough prototype up and running on test.m.o -&gt; http://test.maemo.org/cgi-bin/itp.cgi
|- style=&quot;background:LightBlue&quot;
|9.04-09
|2009-04-06
|[[Maemo.org Sprints/May 09|May 09]]
|Setup [[Task:Single_sign-on|SSO]] testing environment
|Must
|Daniel
|75%
|The test environment is running containing a ldap server, CAS, Mediawiki integrated with CAS, and an easy UI to create new test users. Accounts for the people, who work actively with it created. Follow as well the status: [[Task:Single_sign-on/Status|status]].
|- style=&quot;background:LightBlue&quot;
|9.04-10
|2009-04-06
|[[Maemo.org Sprints/May 09|May 09]]
|Run a test build of all Diablo Extras packages on Fremantle
|Must
|Jeremiah
|75%
|I will try to build as many packages from diablo as possible and file bugs when found, contact developers when needed. Built a build order list for extras-devel, Niels wrote a script to automate build of libs from that. Still some packages needed to build.
|- style=&quot;background:LightBlue&quot;
|9.05-01
|2009-05-07
|[[Maemo.org Sprints/May 09|May 09]]
|[[Talk:Git For Garage|Git For Garage - UI]]
|Must
|Ferenc
|99%
|Change requests received to convert svn &quot;branches&quot; to real git branches. Therefore task is still open.
|-
|9.05-02
|2009-05-07
|[[Maemo.org Sprints/May 09|May 09]]
|[[Task:Using garage.maemo.org]]
|Could
|Ferenc
|0%
|
|- style=&quot;background:LightGreen&quot;
|9.05-03
|2009-05-07
|[[Maemo.org Sprints/May 09|May 09]]
|[[Task:Maemo_brainstorm|Moderators and moderation for Brainstorm]]
|Must
|Dave
|DONE
| Moderators all informed, sent to Council
|- style=&quot;background:LightGreen&quot;
|9.05-04
|2009-05-07
|[[Maemo.org Sprints/May 09|May 09]]
|Break down [[Maemo Summit 2009|Summit]] into subtasks
|Should
|Dave
|DONE
| See [[Maemo Summit 2009/Organization|Summit planning page]]. Current top priority is the call for content. Nokia events will do much of the preparation of the site &amp; parties.
|-
|9.05-05
|2009-05-07
|[[Maemo.org Sprints/May 09|May 09]]
|[[Task:Implement new maemo.org layout and style|Style and layout for MXR]]
|Must
|Ryan
|20%
|Started playing with the templates, but probably can't finish this month. Having VCS issues and don't really have time to resolve them with work.
|- style=&quot;background:LightGreen&quot;
|9.05-06
|2009-05-07
|[[Maemo.org Sprints/May 09|May 09]]
|[[Task:Implement new maemo.org layout and style#lists.maemo.org|Style and layout for lists]]
|Must
|Niels
|100%
|'''done'''
|- style=&quot;background:LightGreen&quot;
|9.05-07
|2009-05-07
|[[Maemo.org Sprints/May 09|May 09]]
|[[Task:Implement new maemo.org layout and style#Extras Promoter|Style and layout for Extras promoter]]
|Must
|Niels
|100%
|'''done'''
|-
|9.05-08
|2009-05-07
|[[Maemo.org Sprints/May 09|May 09]]
|[[Task:Maemo_brainstorm|Brainstorm documentation]]
|Should
|Ryan
|0%
|Will start looking next week.
|-
|9.05-09
|2009-05-07
|[[Maemo.org Sprints/May 09|May 09]]
|Finish up [[alternative desktop environments]]
|Could
|qole
|35%
|Need screen shots, 2x text for all projects
|-
|9.05-10
|2009-05-07
|[[Maemo.org Sprints/May 09|May 09]]
|Create [[Emulators and virtual machines]]
|Could
|qole
|0%
|Probably not happening this month.
|- style=&quot;background:LightGreen&quot;
|9.05-11
|2009-05-07
|[[Maemo.org Sprints/May 09|May 09]]
|Create [[alternative operating systems]] sticky for Talk
|Should
|qole
|Done
|
|- style=&quot;background:LightGreen&quot;
|9.05-12
|2009-05-07
|[[Maemo.org Sprints/May 09|May 09]]
|Put together minimal [[Extras repository process definition|Extras QA]]
|Should
|Jeremiah
|DONE
|Read that long and confusing QA page. Began discussion with Niels and have started coding. Would like greater participation from everyone on the wiki.
|}

== Activity log ==

Latest activity report goes on top.

; 2009-06-18
* Andre
** Today: Create Conboy and Password Safe Look in Extras; play with Ryan's Newstyle patch; Continue updating reports wrt Fremantle (Testing, Reproducing etc)
** Last two days: Updating reports wrt Fremantle (Testing, Reproducing etc); Thinking about Fremantle bug objectives &amp; querying stats; internal weekly report

; 2009-06-17
* Dave
** Today: Get the Call for Content out, catch up with various discussions on documentation, start work on library.gnome.org install locally
** Yesterday: Contribute to &quot;Publishing developer documentation&quot; thread, finish call for content, and set up stand for the Salon des Entrepreneurs (local association)

* Jeremiah
** About half an hour of bug filing and working in the SDK (like qole's mount issue)
** Building diablo packages for fremantle. Script needs work.
** Some internal discussions about SDK content and such

* Neithan
** Maemo project management
** Going through Maemo buglist 
** Fixed bugs #4351 and #4497 
  
; 2009-06-16

* Jeremiah
** Working on tools to integrate with package promotion web front end
** hacked on package_mangler.pl which moves packages around
** Discussion with SDK folks about libraries

* Bergie
** Brainstorm launch: configuration, blog entry, microblogging etc
** Project management Skype call with Tero and Ferenc

* NetBlade
** Fixing deleting of idea and solution in Brainstorm

; 2009-06-15

* Andre
** Today: Look at open H-A-M bugs and update wrt Fremantle; Check/Fix group access permissions (thanks Quim for telling me about issues!); Create eCoach product in Extras; Think about Fremantle bug objectives
** Friday: Import outstanding api doc bugs; Normal sync/bugmail gruntwork; Continue updating reports wrt Fremantle (Testing, Reproducing etc)

* Niels
** Friday: Worked on some maemo.org bugs. Worked on [[Task:Package_QA_web_interface]]
** Today: Look at autobuilder issue, talk with Ferenc about supporting plain git on git.maemo.org.

* NetBlade
** HTML-entities and url-encoding issues in Brainstorm

; 2009-06-12

* Andre
** Today: Import outstanding api doc bugs; Normal sync/bugmail gruntwork; Think about Fremantle bug objectives; Continue updating reports wrt Fremantle (Testing, Reproducing etc)
** Yesterday: Discussing doc issues; Update&amp;document doc bugs handling in [[Bugs:Triage_guide|Bugsquad wikipages]]; [[Bugs:Adding_Extra_products|Documented for Extras maintainers how to get a bugzilla entry]]; Created OmWeather and BlueMaemo in Bugzilla.

* Dave
** Today: Draft call for content for Maemo Summit, push along content committee for conference
** Yesterday: Email and forums. Mostly got waylaid working on the Gran Canaria Desktop Summit and helping co-ordinate a conference stand for a local non-profit.

* Jeremiah
** Building some apps in fremantle
** Considering how to remove python apps in the SDK and releasing them to the world

* Alexey
** Helped Niels to trace-down some weird package-installation bug (related to App Karma task). Outcome: [http://trac.midgard-project.org/ticket/1213 midgard-bug]

; 2009-06-11

* Niels
** Today: Work on app voting, Work on productsstats from app karma, brainstorm fixes, Package QA interface.

* Dave
** Today: Finalise initial list of moderators for Brainstorm
** Last few days: Working out issues with Fremantle beta, working on bugs, initial planning for library.maemo.org, Council public IRC meeting.

* Andre
** Today: Discussing doc issues + some Fremantle bug objectives; Update&amp;document doc bugs handling in [[Bugs:Triage_guide|Bugsquad wikipages]]; Import outstanding api doc bugs of modules that are not handled in public; Continue updating reports wrt Fremantle (Testing, Reproducing etc)
** Yesterday: [http://lists.maemo.org/pipermail/maemo-community/2009-May/002466.html Add 'docs' keyword] and split doc bugs into general and api-refs; Updating reports wrt Fremantle (Testing, Reproducing etc)

* Jeremiah
** Worked on the inotify interface to incoming packages to fremantle, that looks perhaps ready to use. Need to confer with Niels on when and how to move away from cron
** Styled itp.cgi a bit since people said it looked web 1.0 (or web 0.5 :p)

* Rambo
** Fix potential HTMLPurifier issue with html (from latex docs) import 


; 2009-06-10

* Andre
** Today: [http://lists.maemo.org/pipermail/maemo-community/2009-May/002466.html Add 'docs' keyword] and split doc bugs into general and api-refs; Updating reports wrt Fremantle (Testing, Reproducing etc)
** Yesterday: Updating reports wrt Fremantle (Testing, Reproducing etc); internal weekly report

* Alexey
** Today: org.maemo.productstats component is running and gathering stats for App-karma

* Jeremiah
** Major hacking on ITP, testing, fixing bugs, exposing it to users to test
** itp.cgi will be used for RFP as well

* NetBlade
** Fiquring out why css-files aren't working in Brainstorm

; 2009-06-09

* Niels
** Today: Website bug fixing, work on QA interface doc.

* Jeremiah
** Connecting database to front-end cgi
** This should allow us a way to search and see which packages are already in maemo, packages coming in, and what package people want

*NetBlade
** figuring out why css-file for brainstorm isn't working at maemo.org and instructing Niels how to fix it 


; 2009-06-08

* Niels
** Friday: Checked aftermath of webserver harddisk failure issues, tested products stats module for App karma, checked clutter dependency fixes on autobuilder.
** Today: Fixes for Downloads automatic import script (version issue),more app karma testing, attend council meeting. Look at broken packages in extras.

* Andre
** Today &amp; Friday: Mostly updating report statuses wrt Fremantle (Testing, Reproducing etc)

* Alexey
** Added workaround for a bug in midgard, which messed stats-dates (App Karma task)


; 2009-06-06

* Jeremiah
** More work on itp.cgi, weekend hacking is fun

* NetBlade
** Fixing internal.maemo.org after broken configuration
** Images-widget to Brainstorm

; 2009-06-05

* Jeremiah
** Hacked on itp.cgi, the interface to creating an &quot;Intent to Package&quot; event.

*NetBlade
** brainstorm image-listing and magnifying 

*Neithan
** updating brainstorm files to dratini 


; 2009-06-04

* Jeremiah
** Hacked maemian mostly, integrating upstream code base
** Nokia changes available

* rambo
** Fix images datatype problems 
 
* Bergie
** Helped Niels and Alexey with App Karma counter

* Alexey
** Continuing work on stats-grabber for app-karma


; 2009-06-03
* Andre
** Yesterday: Mostly some Scratchbox bugs reproducing and testing
** Today: Some Brainstorm discussing &amp; beta-testing; hacking on my Greasemonkey scripts

* Dave
** Yesterday: Continued discussion on brainstorm moderators. Niels had some suggestions about adding moderator groups per brainstorm module to ensure that only moderators who are competent to change state of ideas do so. I'm not convinced it's a problem. Invitations for initial moderators sent. Awaiting replies.
** Today: Bits &amp; pieces - email, bugs &amp; forums. Mostly working on a different project.

* Niels
** Yesterday: Caught up on email, got good news on bug 4503. Updated and worked on stats. Discussed brainstorm workflow with Dave. Lots of minor things.
** Today: Plot out QA plan. Discuss with Jeremiah who does what. Talk to Alexey about App Karma.

* Jeremiah
** Maemian upstream integration, styling, and logic changes
** Maemian actually parses debs and spits out info, still lots of warnings though

* Bergie
** Status meeting with Tero

* Alexey
** Started implementation of stats-grabber for app-karma


; 2009-06-02
* Niels
** Friday: Traveled to Copenhagen, had some great discussions at the social event at ITU.
** Saturday: Had some talks about autobuilding with developers. Decreased autobuilder and repository processing delays for Fremantle Extras-devel. Ported some libs to Fremantle, tested some extras-devel apps out on the developer device. Worked on enhancements for Downloads
** Sunday: Talked with Fennec guys about how to provide updates through Extras. Had discussions with Mer guys about how to offer Nokia binaries for Mer through maemo.org. Looked at a demonstration of OBS by David Greaves to see how Mer uses this service. Sat down with Andre and Soumya to push bug #4503. Discussed the use of Transiflex for community translations.

; 2009-06-01
* Dave
** Friday: Made good progress on Brainstorm - discussed with Henri, council and Andre, copying Ubuntu brainstorm moderator guidelines, prepared initial proposal for moderators
** Today: Short day today. Follow up on moderators, adding a few more people on suggestion of council. Awaiting approval before sending out invitations.

* Jeremiah
** Recovering from MozMae! :)

* Neithan
** Maemo bugs 4368 and 4358 
** bug 4352 

* Alexey
** implemented sorting of products by app-karma (now we need to, actually, get that karma numbers for apps)


; 2009-05-31
* Andre (at Mozilla/Maemo Danish weekend)
** Yesterday: collected bugs and added &quot;upstream&quot; [https://bugs.maemo.org/describekeywords.cgi keyword] them; write [[Bugs:Cloning|guidelines]] for Cloning internal bugs; fixed obsolete milestones so Bugzilla database sanity check succeeds; conference talks/presentations/discussions
** Today: Some triaging; discussed bug 4503 with Niels &amp; Soumya; conference talks/presentations/discussions

* Jeremiah (at Mozilla/Maemo Danish weekend)
** Pulled down the fennec deb to try to do some reverse engineering
** Spoke with the Mozilla team about packaging fennec

; 2009-05-30
* Jeremiah (at Mozilla/Maemo Danish weekend)
** Worked a bit with Kees to get gary's liqbase into a deb
** Conferencing with the rest of the folks, listening to talks, etc.
** Short discussion with Niels about autobuilding

; 2009-05-29
* Dave
** Yesterday: library.maemo.org - Meetings with Soumya and Jarmo, Stefan, a detailed discussion with Murray, more exchanges with Fred, and a good exchange between Murray, Jarmo and myself on the new docs infrastructure.
** Today: Continue discussion on docs, try to figure out the major issues with the proposed architecture. Research Ubuntu Brainstorm. Talk to Jaffa, GA, Henri about what they expect from moderation guidelines and moderators.

* Jeremiah 
** Maemian hacking. 
** Finally fixed a bug that was plaguing me on test.m.o but did not exist in later versions of debian, (test.m.o is debian etch).

; 2009-05-28
* Dave
** This week: Work through several documentation bugs, catch up with email, forums, and start plans for library.maemo.org - talked to Fred Peters to get more technical details about library.gnome.org
** Today: Phone meeting with Jarmo and Soumya about coproduction of Maemo documentation, first draft of moderator guidelines for Maemo ideas, talk to Murray and Stefan about requirements and path to attaining them.

* Jeremiah
** Trying to track down a bug in one of the maemian perl modules
** Sent a mail to lintian team about it, and have filed a bug in Perl's RT

* Bergie
** Design work on app karma

; 2009-05-26
* Niels
** Yesterday: Worked on garage performance issues. Added new styling skin for promoter.
** Today: Look at autobuilder version comparison issue. Work on Package QA and interface. 

* Bergie
** Hacking on Maemo Brainstorm

; 2009-05-25
* Niels
** Today: Work on garage performance issues. Add new styling skin for promoter. Talk to Jeremiah about the package database etc.

; 2009-05-22
* Jeremiah
** Working on maemian, did a test run on some .dsc files
** Found a way to add uploaders to the packaging database
** Needs more discussion with Niels before implementation

* Alexey
** Changed url-schema of net.nehmer.account to fix [https://bugs.maemo.org/show_bug.cgi?id=3854 #3854]

; 2009-05-21
* Jeremiah
** Sending some more packages to the automated builder
** Serious work on maemian

; 2009-05-20

* Niels
** Today: Automatically rebuild all libs from diablo for fremantle. 

* Andre
** Last days: Normal Triage/Sync; Clean up oops/admin group in Bugzilla; Contact packagers using maemo-select-menu-location; Bug 3846...
** Today: Monthly Feature Jar; bug 3846
** Tomorrow&amp;Friday: Two days off

* Bergie
** Fix authentication issues with favouriting

; 2009-05-19

* Jeremiah
** Packaging discussion with Jani
** Began work on [http://maemian.garage.maemo.org/ maemian], coding in earnest
** Discussed a bit automated package building with Niels, wrote out a build order for extras-devel

* Niels
** Last Thursday: Worked on website bugs and did a run of the automatic import for Extras -&gt; Downloads, there are a few little issues but seemed to work.
** Today: Catch up on email. Create script which automatically tries to build all libs in Diablo Extras for Fremantle.

* Daniel
** working on test environment:
*** CAS is running
*** LDAP directory contains few test accounts
*** Wiki is integrated
*** working on GForge and User Management
*** will update the wiki today

; 2009-05-15
* Jeremiah
** Building diablo packages in the autobiulder
** Surfed iTT and #maemo

; 2009-05-14

* Jeremiah
** Building packages from diablo in fremantle
** Blogged about  packaging resources
** Created a simple python app to be used as a packaging example
** Surfing iTT for packaging problems

* Rambo
** Cache issues investigation 


; 2009-05-13
* Niels
** Yesterday and Monday: Worked on website bugs, fixed some styling issues, had some QA discussions and started to draw up an idea for the repository management interface for QA.
** Today: Work on more website bugs and work on the Extras QA scripts/backend.
** Friday, weekend, Monday: Not available because of a short trip.

* Andre
** Yesterday &amp; Monday: Lots of syncing/forwarding issues; internal weekly report; short discussion about status whiteboard usage with GA
** Today: Work on diffsets for bug 3846...

* Jeremiah
** Began porting diablo packages to fremantle
** Created a script that pushes packages into the incoming fremantle builder

; 2009-05-12
* Dave
** Friday: Bank holiday here in France for VE Day
** Sunday: Ran my first marathon in Geneva in 2h26:33
** Yesterday: Caught up with email and backlog
** Today: Start work on the Maemo Summit sub-tasks checklist

* Jeremiah
** Discussing approach to QA Niels
** Working with garage.m.o and testing.m.o to create git repos 
** Setting up local environment to do diablo package building

;2009-05-11
* Niels
** Friday: Worked on some website bugs, tested Brainstorm. Created a script for api documentation sync.
** Today: Work on website bugs. Discuss concrete implementation plans for Extras QA with Jeremiah.

* Jeremiah
** More QA policy discussion
** Working on a database schema to use for QA testing
** Looking at lintian source

* NetBlade
** Bugfixes to Brainstorm

* Rambo
** Talking with Niels about the cache issues 


;2009-05-08

* Ryan
** Yesterday: Chaired Sprint review.
** Today: Inputing all of the May tasks (whew!).

* Jeremiah 
** Sprint review - well done Ryan!
** Finishing up search prototype

* Quim
** Yesterday: opened tmo threads for sprint tasks [http://talk.maemo.org/showthread.php?t=28816 Task: Maemo Brainstorm] &amp; [http://talk.maemo.org/showthread.php?t=28800 Task:Single sign-on for maemo.org] - [[Maemo.org_Sprints/May_09/Meeting||sprint meeting]] - ping WesterGasFabriek to get their budget for Summit venue - [[Talk:Task:Maemo_brainstorm|feedback]] on [[Task:Maemo_brainstorm|Maemo Brainstorm]]. Not in the sprint but relevant: work on promotion of [[Mozilla Maemo Danish Weekend]].
** Today: Proposal of Brainstorm categories - expecting to get the budget from WesterGasFabriek + work on promotion of [[Mozilla Maemo Danish Weekend]].

* Bergie
** Status meeting with Tero

* NetBlade
** Styling Brainstorm

;2009-05-06

* NetBlade
** Finalizing Brainstorm

;2009-05-05

* Jeremiah
** Updating external repos list
** Built search.maemo.org prototype -&gt; [http://test.maemo.org/cgi-bin/search.cgi here]

* NetBlade
** refactoring some listing handlers in Brainstorm after more spesifications

;2009-05-04

* Jeremiah
** Started hacking on a search script for packages

;2009-05-01

* Jeremiah 
** A little community chatter in #maemo and on lists
** Gave the queue-manager a punch in the stomach to get it to index things.
** Re-installing fremantle 5 beta SDK

* NetBlade
** Brainstorm listing handlers and planning</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/May 09/Meeting</title>
    <id>1833</id>
    <revision>
      <id>13116</id>
      <timestamp>2009-05-07T13:33:59Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <minor/>
      <comment>/* Agenda */</comment>
      <text xml:space="preserve">== Agenda ==
{|
|-
! Date/time:
| (Preliminary) Tuesday, 2009-05-05 [http://www.timeanddate.com/worldclock/fixedtime.html?month=5&amp;day=5&amp;year=2009&amp;hour=14&amp;min=00&amp;sec=0 14:00 UTC]
|-
! Location: 
| [[IRC|#maemo-meeting IRC channel]]
|-
! rowspan=&quot;2&quot; | Invitees:
| [[User:xfade|Niels Breet]], [[User:bergie|Henri Bergius]], [[User:jeremiah|Jeremiah Foster]], [[User:qgil|Quim Gil]], [[User:andre|Andre Klapper]], [[User:netblade|Oskari Kokko]], [[User:tekojo|Tero Kojo]], [[User:dneary|Dave Neary]], [[User:danielwilms|Daniel Wilms]], [[User:ferenc|Ferenc Szekely]], [[Community Council]] ([[User:timsamoff|Tim Samoff]])
|-
| &lt;small&gt;* declined&lt;/small&gt;
|}

# '''Review of [[maemo.org Sprints/April 09]] tasks'''
## Quim
## Ferenc
## Henri
## Niels
## Andre
## Jeremiah
## Dave
## Daniel
## Oskari
## Alan
## Tim
# '''Committing of May sprint tasks - including end dates'''
## Anyone
# '''AOB'''
## Anyone

== Minutes ==
Primary actions are in the [[maemo.org Sprints/May 09]] page.


[[Category:Community]]
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/November 08</title>
    <id>1316</id>
    <revision>
      <id>33799</id>
      <timestamp>2010-05-04T09:42:09Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}

==November 2008 Sprint planning==
* Planning meeting organized in the [[IRC|#maemo-meeting IRC channel]] on Tuesday 2008/11/04 at [http://www.timeanddate.com/worldclock/fixedtime.html?year=2008&amp;month=11&amp;day=4&amp;hour=20&amp;min=0&amp;sec=0 20:00 UTC] ([http://maemo.org/maemo-meeting/maemo-meeting-2008-11-04.html log of the meeting]).
* Right after [[Maemo.org Sprints/October 08]] review.
* Followed by [[Maemo.org Sprints/December 08]].

==Tasks==
[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightBlue&quot;
| 2008-08-12 || [[Task:Getting Nokia involved in bugs.maemo.org|Better organization of bugs.maemo.org components]]: Sort out last unclear issues, come up with implementation plan || Andre || 70% || Draft available at [[Talk:Task:Getting Nokia involved in bugs.maemo.org#Draft_structure]], implementation planned for Saturday 6 of December
|- style=&quot;background:LightGreen&quot;
| 2008-09-02 || [[Task:Fast Server]] || Tero || '''DONE''' || Ragnaroek upgrade done, new DB server in place, static file server up
|- style=&quot;background:LightBlue&quot;
| 2008-09-02 || [[Task:ITt Collaboration|ITT app catalog feeds ]] || Henri || 60% || Matched existing XML feeds to requested ones, working on docs and missing features
|- style=&quot;background:LightGreen&quot;
| 2008-09-30 || Who and how works on the maemo.org design || Dave || '''DONE''' || Work method defined, designs in progress, should be competely agreed by the end of the month.
|- style=&quot;background:Orange&quot;
| 2008-09-30 || [[Task:Content Cleanup#Development|Finalise layout for maemo.org/development]] || Dave || 30% || [[Task:Improving maemo.org/Development|Proposal]] exists, wireframe exists, needs some design work from INdT.
|- style=&quot;background:Tomato&quot;
| 2008-09-30 || [[Task:Reducing number of external repositories]] || Niels || 40% || Contacted most owners. Had a lot of positive responses, but need to gently push most of them again..
|-style=&quot;background:Tomato&quot;
| 2008-09-30 || Define and publish first Feature Jar for the community and Nokia product managers || Andre || 80% || [http://lists.maemo.org/pipermail/maemo-community/2008-October/001217.html See this email] - second iteration planned after Bugzilla reorganization
|- style=&quot;background:Tomato&quot;
| 2008-09-30 || [[Task:Open Source Proof Points]] || Quim || 5% || Nothing done in this sprint, sigh.
|-
| 2008-11-04 || [https://bugs.maemo.org/show_bug.cgi?id=2179 Karma for applications] || Hirvinen || 0% || 
|-
| 2008-11-04 || Finalise design &amp; stylesheets for maemo.org || Dave || 50% || Design proposals converging on something good.
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || Finalise layout for maemo.org/support || Dave &amp; Tim || 0% || No-one working on this right now.
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || Finalise layout for maemo.org/community || Dave &amp; Tim || 0% || No-one working on this right now.
|- style=&quot;background:LightGreen&quot;
| 2008-11-04 || [[Task:Packaging policy proposed changes]] || Ryan || '''DONE''' || This one may end up blocked waiting for Application Manager to be updated (policy follows tools), but it's been pushed to the appropriate people, so probably out of my hands.
|- style=&quot;background:LightGreen&quot;
| 2008-11-04 || [[Task:Document the maemo.org Sprint procedure]] || Ryan || '''DONE''' || I'm satisfied, if anybody wants more, let me know.
|- style=&quot;background:LightGreen&quot;
| 2008-11-04 || [[Task:Define voting procedure for Community Council elections]] || Ryan || '''DONE''' || Benson really helped out and put together an outline on the wiki. The procedure is defined, now we'll just have to look at voting software and perhaps some additional specifics.
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || [[Task:Texts for maemo.nokia.com]] || Quim || 20% || Drafted the &quot;Open Source&quot; part, but need to complete out of this sprint.
|-
| 2008-11-04 || [[Task:Collaboration infrastructure]] for a single project (e.g. Application Manager) || etrunko || 0% || 
|- style=&quot;background:LightBlue&quot;
| 2008-11-04 || Define what is needed to get git up on maemo.org || Tero || 80% || Talk page up at [[Talk:Git For Garage|Git for garage]], Plans up at [[Git For Garage]]. 80% because discussion still takes place. But nothing stopping from moving ahead.
|}

==Bugs in product Website==
The bugs assigned in the last sprint meeting are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=High&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= HIGH]. The bugs proposed for the next sprint are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=Medium&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= MEDIUM]. Only product/component maintainers can change this status. Comment on a bug if you want to push it up. Check also those marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=easyfix&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= EASYFIX].

What follows are the bugs that need special attention/progress.

For the record:

{{#bugzilla:id=1660,2179,3177,3178,3432,3562,3846,3906
  |columns=id,severity,product,status,resolution,summary,to
}}

==Activity log==
Latest activity report goes on top.

; Wednesday 2008-12-03

* Quim
** Past days: A lot of internal work (mainly SDK release related but also, Fremantle Stars, bugs.maemo.org involvement, drivers, variants and community translations. Took part in talk.maemo.org discussion. Stirred discussion outside &amp; inside about preferred tool for [[Talk:Task:Maemo_brainstorm|maemo.org brainstorm]]. No progress in my committed tasks, sorry.
** Today: Attending first maemo.org development meeting as plain contributor. :)

* Andre
** Yesterdays: cleaning up and triaging old bugs, internal weekly report, talk with Stefano &amp; Karsten about server part of this weekend's Reorg
** Today: cleaning up and triaging old bugs, creating/preparing products for Bugzilla reorg, maemo irc team meeting

; Tuesday 2008-12-02

* Bergie
** Yesterday: Fixed attachment cache
** Today: Missing XML feeds from application catalogue for ITT integration

* Ferenc
** Yesterday: see yesterday ;)
** Today: Started [https://bugs.maemo.org/show_bug.cgi?id=3177 adding RSS feeds to mailing lists] 

; Monday 2008-12-01

* Ferenc
** Yesterday: drafting the [http://wiki.maemo.org/Git_For_Garage git for garage plan] 
** Today: fixed: [https://bugs.maemo.org/show_bug.cgi?id=3794 broken viewcvs &quot;Download&quot; link in garage bug]

* Bergie
** Today: Look into the [http://trac.midgard-project.org/ticket/582 attachment cache issue]

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration: ready for testing by Nokia

; Friday 2008-11-28

* Dave
** Since last update: Continue work on- and off-list on website redesign. Very useful IRC meeting to get people back on track. Good progress on design discussions, and fast approaching something final. Tim has been an amazing help.
** Today: Finally upgraded my N810 to Diablo, and installed a Scratchbox environment on my laptop. Mailing list, respond to recent design discussions, follow up off-list with people to make sure we're all on the same page.
** Apologies for the lack of updates - I have gotten out of the habit recently.

* Niels
** Yesterday: Did some bugfixing/triaging and a lot of random small tasks.
** Today: Only available in the morning, following up on a lot of little things...

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration

; Thursday 2008-11-27

* Andre
** Yesterday: Cleaning up old bugs, lots of mail, some tests for Bugzilla Reorg
** Today: Work on preparing Bugzilla Reorg.
** Tomorrow: Off (holiday).

* Niels
** Yesterday: Website bug fixes, worked on autobuilder improvements, planning of [[Maemo.org_Sprints/December_08]] meeting.
** Today: Finalize planning [[Maemo.org_Sprints/December_08]], work on website bugs.

; Wednesday 2008-11-26

* Niels
** Yesterday: worked on logging, did a lot of bug hunting/fixing.
** Today: work on some website bugs and work on autobuilder improvements.

* Emilia
** Today: work on html-import tool documentation, taking screenshots. Waiting for final comments.

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration

; Tuesday 2008-11-25

* Ryan
** Past weeks: Mer stuff, Canola in Bugzilla, category stuff, other stuff I don't remember. ;)
** Today: Thinking up random stuff to make Niels fix :P, [http://maemo.org/communicy/council finally] using the council blog for what it was supposed to be used for.

* Niels
** Yesterday: Fixed wiki issues by removing squid setup. Fixed cron issues, random bug fixes. Extras user support.
** Today: Look at logging for servers, look at autobuilder improvements, issues GA tends to throw at me :) 

* Bergie
** Today: Improvements with URL handling, feeds, other things with Niels

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration

; Monday 2008-11-24

* Andre
** Last days: Triaging old bugs, fixed some Bugzilla bugs in SVN, a few preparations for Bugzilla Reorg
** Today: Forward some older bugs, some tests for Bugzilla Reorg, internal report (improve &amp; write, actually)

* Niels
** last few days: Worked on maemo.org stability, performance improvements, bug fixes. Enabled static.maemo.org for static files like stylesheets,javascript and images. Helped developer with stability issues in his app.
** today: Add static.maemo.org support for attachments too. Work on cron issues. Look at removing squid in front of this wiki.
** problems: It seems that if I stop reporting activity because of a busy schedule, everybody else does too ;)

* Emilia (Nemein)
** Today: found out how HTML-import tool should work, asked which kind of user manual / documentation I should provide. Wrote 2 drafts of the manual and sent them to Jarmo Tikka to get comments.

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration

; Friday 2008-11-21

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration, mailing list to forum integration [http://trac.midgard-project.org/ticket/286 bug] with multipart messages: more bug hunting, still couldn't reproduce. set up a test system to catch cases that would still break it.


; Thursday 2008-11-20

* Bergie
** Yesterday: Static file cache setup with Niels
** Today: Help Niels with cron issues and other debugging

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration, mailing list to forum integration [http://trac.midgard-project.org/ticket/286 bug] with multipart messages: finished the repair tool, bug reopened by Niels, couldn't reproduce.

; Wednesday 2008-11-19

* Andre
** Yesterday: Triage some older bugs, worked on internal report
** Today: Enhance internal report, fix some Bugzilla bugs in SVN, change/seperate some QA contacts in Website component, triage

* Niels
** Yesterday: Did some tuning, bugfixing, tracing for maemo.org. Started on setting up static.maemo.org
** Today: Update shell scripts to be ragnaroek compatible. Work on static.maemo.org. Do some more tuning.

* Bergie
** Yesterday: Helped neals with post-upgrade tasks, some more performance tuning and minor layout improvements
** Today: Helping Hirvinen with cleaning messed up Gmail HTML messages in discussion forums

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration

; Tuesday 2008-11-18

* Niels
** Yesterday: Upgraded webservers to ragnaroek together with Bergie. Moved database to another server.
** Today: Check out some small problems on maintenance node. Tune database a bit. Prepare setup for static file serving through static.maemo.org.

* Hirvinen
** Today: mailing list to forum integration [http://trac.midgard-project.org/ticket/286 bug] with multipart messages fixed, started work on tool to fix them.

* Bergie
** Yesterday: Upgraded servers to Ragnaroek
** Today: Helping Niels with some post-upgrade issues, more performance tuning

; Monday 2008-11-17

* Niels
** Friday: Prepare for ragnaroek upgrade on monday. Worked on new database server.
** Today: Upgrading maemo.org to [http://www.midgard-project.org/midgard/8.09 Ragnaroek]

* Bergie
** Today: Upgrading maemo.org to [http://www.midgard-project.org/midgard/8.09 Ragnaroek]

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration

; Friday 2008-11-14

* Quim
** Yesterday: Out of office. Just some ITt evening posts clarifying some confusion about [http://www.internettablettalk.com/forums/showthread.php?t=24473&amp;page=11 Fremantle stars and pearls] and [http://www.internettablettalk.com/forums/showthread.php?t=24926 Bugzilla or else to handle feature requests?].
** Today: [[Task:Texts for maemo.nokia.com]], but I'm going to request an extended deadline to Jussi (next week).

* Niels
** Yesterday: Worked on Downloads improvements, styling and testing for discussions.
** Today: Prepare for ragnaroek upgrade on monday. See if we have not forgotten anything. Tune new database server ''if'' it gets delivered today.
* Dave
** Yesterday: Made some suggested edits for [[Task:Texts for maemo.nokia.com]], had a good long chat with Quim, responded to latest design drafts.
** Today: Design draft work, propose a text for [[Task:Texts for maemo.nokia.com]], push the wireframe I did (which I'm unhappy with) for the Development page to start layout discussion
* Bergie
** Yesterday: Solved discussion karma issues, helped Hirvinen in his tasks
** Today: Ensuring all is in packages that we need for Monday's upgrade

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration, mailing list to forum integration [http://trac.midgard-project.org/ticket/286 bug] with multipart messages

; Thursday 2008-11-13

* Dave
** Tuesday: Summarised IRC website design meeting, hopefully we've unblocked the blockage in the website design work now. Suggest useful links for [[Task:Texts for maemo.nokia.com]]
** Yesterday: Upgraded to Intrepid Ibex Tuesday afternoon. Spent yesterday morning fixing stuff. Yeuch. Responded to design proposal from Glaubert
** Today: Plan to help work on [[Task:Texts for maemo.nokia.com]]

* Niels
** Yesterday: Worked on website bugs and Downloads improvement.
** Today: Continue working on website bugs and Downloads improvements.

* Bergie
** Today: Solving discussion karma issues

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration

; Wednesday 2008-11-12

* Quim
** Yesterday: Started [[Task:Texts for maemo.nokia.com]].
** Today: Continue [[Task:Texts for maemo.nokia.com]]. Ask [http://www.internettablettalk.com/forums/showthread.php?t=24926 Bugzilla or else to handle feature requests?] in ITt.

* Niels
** Yesterday: deployed mediawiki and bugzilla comments karma plugins, fixed favouriting to not force to https when logged in on http. Did some fixes to products. Fixed the https login trap. Triaged website bugs.
** Today: Work on website bugs and Downloads.

* Hirvinen
** Today: Started work on fi.hut.htmlimport-latex2html maemo docs integration

; Tuesday 2008-11-11

* Andre
** Yesterday: Cleaning up current Default QA and assignee email address scheme a bit, Forwarding/syncing reports
** Today: [[Talk:Task:Getting_Nokia_involved_in_bugs.maemo.org#Draft_structure|Bugzilla Reorg]], Rework feature jam, Move &quot;safe&quot; @maemo.org virtual bugzilla accounts to @maemo.bugs, Create some of the new assignees as preparation for Reorg, Internal report

* Quim
** Last days: Updated the Tasks table. [http://lists.maemo.org/pipermail/maemo-community/2008-November/001263.html Bugzilla or else to handle feature requests?]. Details on maemo.org debmaster profile.
** Today: Don't expect much. I'm a victim of fragmentation these days.

* Dave
** Yesterday: Prepared &amp; ran IRC meeting on web design. Talked to Niels about [[Karma]].
** Today: Post minutes for IRC meeting for design discussion around maemo.org. Upgrade computer to Intrepid. It's a holiday in France today.

* Hirvinen
** Detached thumbs down from blog karma

; Monday 2008-11-10

* Niels
** Last days: worked on maemo services documentation, investigated promotion issues, lot's of small admin tasks done.
** Today: Clean up admin backlog because of weekend break, work on open bugs.

; Friday 2008-11-07

* Andre
** Yesterday: Take a look at Fremantle structures/categories in internal Bugtracker; cleaning up/recategorize Multimedia bugs
** Today: Analyze current Default QA and assignee email address scheme and come up with consistent policy as part of [[Talk:Task:Getting_Nokia_involved_in_bugs.maemo.org#Draft_structure]]; Work on feature jam

* Quim
** Yesterday: Full day event out of office = nothing done.
** Today: Update the Tasks table. Start drafting [[Task:Texts_for_maemo.nokia.com]].

; Thursday 2008-11-06

* Dave
** Yesterday: Took a rest day after watching US election results all night.
** Today: Follow up with Henri about Karma blog &quot;thumbs down&quot; patch. Nothing else for Maemo today.

* Andre
** Yesterday: Getting through Desktop/User Interaction and Theme bugs, [[Talk:Task:Getting_Nokia_involved_in_bugs.maemo.org#Draft_structure]]
** Today: Take a look at Fremantle structures/categories in internal Bugtracker; cleaning up/recategorize Multimedia bugs

* Niels
** Yesterday: Created [http://maemo.org/maemo-meeting/maemo-meeting-2008-11-04.html irc log for the meeting] and did some general maintenance tasks.
** Today: Document server landscape for configuration guide (Sysadmins). Investigate Extras promotion problems.

; Wednesday 2008-11-05

* Ryan
** Yesterday: Helped Niels complete [[Task:Package_categories]] and blogged about it, wrapped up [[Task:Kill the old wiki]], pushed [[Task:Define voting procedure for Community Council elections]] on itT, sprint meeting.
** Today: Start work on [[Task:Document the maemo.org Sprint procedure]], cleanup and push [[Task:Packaging policy proposed changes]] to the right people.
* Quim
** Yesterday: Completed [[Why the closed packages]] and [[Task:Maemo contributions]]. Facilitated sprint meeting.
** Today: Update list of tasks as soon as log of the meeting is posted. Review status of my tasks and see how to start.</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/November 08</title>
    <id>1316</id>
    <revision>
      <id>33799</id>
      <timestamp>2010-05-04T09:42:09Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}

==November 2008 Sprint planning==
* Planning meeting organized in the [[IRC|#maemo-meeting IRC channel]] on Tuesday 2008/11/04 at [http://www.timeanddate.com/worldclock/fixedtime.html?year=2008&amp;month=11&amp;day=4&amp;hour=20&amp;min=0&amp;sec=0 20:00 UTC] ([http://maemo.org/maemo-meeting/maemo-meeting-2008-11-04.html log of the meeting]).
* Right after [[Maemo.org Sprints/October 08]] review.
* Followed by [[Maemo.org Sprints/December 08]].

==Tasks==
[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightBlue&quot;
| 2008-08-12 || [[Task:Getting Nokia involved in bugs.maemo.org|Better organization of bugs.maemo.org components]]: Sort out last unclear issues, come up with implementation plan || Andre || 70% || Draft available at [[Talk:Task:Getting Nokia involved in bugs.maemo.org#Draft_structure]], implementation planned for Saturday 6 of December
|- style=&quot;background:LightGreen&quot;
| 2008-09-02 || [[Task:Fast Server]] || Tero || '''DONE''' || Ragnaroek upgrade done, new DB server in place, static file server up
|- style=&quot;background:LightBlue&quot;
| 2008-09-02 || [[Task:ITt Collaboration|ITT app catalog feeds ]] || Henri || 60% || Matched existing XML feeds to requested ones, working on docs and missing features
|- style=&quot;background:LightGreen&quot;
| 2008-09-30 || Who and how works on the maemo.org design || Dave || '''DONE''' || Work method defined, designs in progress, should be competely agreed by the end of the month.
|- style=&quot;background:Orange&quot;
| 2008-09-30 || [[Task:Content Cleanup#Development|Finalise layout for maemo.org/development]] || Dave || 30% || [[Task:Improving maemo.org/Development|Proposal]] exists, wireframe exists, needs some design work from INdT.
|- style=&quot;background:Tomato&quot;
| 2008-09-30 || [[Task:Reducing number of external repositories]] || Niels || 40% || Contacted most owners. Had a lot of positive responses, but need to gently push most of them again..
|-style=&quot;background:Tomato&quot;
| 2008-09-30 || Define and publish first Feature Jar for the community and Nokia product managers || Andre || 80% || [http://lists.maemo.org/pipermail/maemo-community/2008-October/001217.html See this email] - second iteration planned after Bugzilla reorganization
|- style=&quot;background:Tomato&quot;
| 2008-09-30 || [[Task:Open Source Proof Points]] || Quim || 5% || Nothing done in this sprint, sigh.
|-
| 2008-11-04 || [https://bugs.maemo.org/show_bug.cgi?id=2179 Karma for applications] || Hirvinen || 0% || 
|-
| 2008-11-04 || Finalise design &amp; stylesheets for maemo.org || Dave || 50% || Design proposals converging on something good.
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || Finalise layout for maemo.org/support || Dave &amp; Tim || 0% || No-one working on this right now.
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || Finalise layout for maemo.org/community || Dave &amp; Tim || 0% || No-one working on this right now.
|- style=&quot;background:LightGreen&quot;
| 2008-11-04 || [[Task:Packaging policy proposed changes]] || Ryan || '''DONE''' || This one may end up blocked waiting for Application Manager to be updated (policy follows tools), but it's been pushed to the appropriate people, so probably out of my hands.
|- style=&quot;background:LightGreen&quot;
| 2008-11-04 || [[Task:Document the maemo.org Sprint procedure]] || Ryan || '''DONE''' || I'm satisfied, if anybody wants more, let me know.
|- style=&quot;background:LightGreen&quot;
| 2008-11-04 || [[Task:Define voting procedure for Community Council elections]] || Ryan || '''DONE''' || Benson really helped out and put together an outline on the wiki. The procedure is defined, now we'll just have to look at voting software and perhaps some additional specifics.
|- style=&quot;background:Tomato&quot;
| 2008-11-04 || [[Task:Texts for maemo.nokia.com]] || Quim || 20% || Drafted the &quot;Open Source&quot; part, but need to complete out of this sprint.
|-
| 2008-11-04 || [[Task:Collaboration infrastructure]] for a single project (e.g. Application Manager) || etrunko || 0% || 
|- style=&quot;background:LightBlue&quot;
| 2008-11-04 || Define what is needed to get git up on maemo.org || Tero || 80% || Talk page up at [[Talk:Git For Garage|Git for garage]], Plans up at [[Git For Garage]]. 80% because discussion still takes place. But nothing stopping from moving ahead.
|}

==Bugs in product Website==
The bugs assigned in the last sprint meeting are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=High&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= HIGH]. The bugs proposed for the next sprint are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=Medium&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= MEDIUM]. Only product/component maintainers can change this status. Comment on a bug if you want to push it up. Check also those marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=easyfix&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= EASYFIX].

What follows are the bugs that need special attention/progress.

For the record:

{{#bugzilla:id=1660,2179,3177,3178,3432,3562,3846,3906
  |columns=id,severity,product,status,resolution,summary,to
}}

==Activity log==
Latest activity report goes on top.

; Wednesday 2008-12-03

* Quim
** Past days: A lot of internal work (mainly SDK release related but also, Fremantle Stars, bugs.maemo.org involvement, drivers, variants and community translations. Took part in talk.maemo.org discussion. Stirred discussion outside &amp; inside about preferred tool for [[Talk:Task:Maemo_brainstorm|maemo.org brainstorm]]. No progress in my committed tasks, sorry.
** Today: Attending first maemo.org development meeting as plain contributor. :)

* Andre
** Yesterdays: cleaning up and triaging old bugs, internal weekly report, talk with Stefano &amp; Karsten about server part of this weekend's Reorg
** Today: cleaning up and triaging old bugs, creating/preparing products for Bugzilla reorg, maemo irc team meeting

; Tuesday 2008-12-02

* Bergie
** Yesterday: Fixed attachment cache
** Today: Missing XML feeds from application catalogue for ITT integration

* Ferenc
** Yesterday: see yesterday ;)
** Today: Started [https://bugs.maemo.org/show_bug.cgi?id=3177 adding RSS feeds to mailing lists] 

; Monday 2008-12-01

* Ferenc
** Yesterday: drafting the [http://wiki.maemo.org/Git_For_Garage git for garage plan] 
** Today: fixed: [https://bugs.maemo.org/show_bug.cgi?id=3794 broken viewcvs &quot;Download&quot; link in garage bug]

* Bergie
** Today: Look into the [http://trac.midgard-project.org/ticket/582 attachment cache issue]

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration: ready for testing by Nokia

; Friday 2008-11-28

* Dave
** Since last update: Continue work on- and off-list on website redesign. Very useful IRC meeting to get people back on track. Good progress on design discussions, and fast approaching something final. Tim has been an amazing help.
** Today: Finally upgraded my N810 to Diablo, and installed a Scratchbox environment on my laptop. Mailing list, respond to recent design discussions, follow up off-list with people to make sure we're all on the same page.
** Apologies for the lack of updates - I have gotten out of the habit recently.

* Niels
** Yesterday: Did some bugfixing/triaging and a lot of random small tasks.
** Today: Only available in the morning, following up on a lot of little things...

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration

; Thursday 2008-11-27

* Andre
** Yesterday: Cleaning up old bugs, lots of mail, some tests for Bugzilla Reorg
** Today: Work on preparing Bugzilla Reorg.
** Tomorrow: Off (holiday).

* Niels
** Yesterday: Website bug fixes, worked on autobuilder improvements, planning of [[Maemo.org_Sprints/December_08]] meeting.
** Today: Finalize planning [[Maemo.org_Sprints/December_08]], work on website bugs.

; Wednesday 2008-11-26

* Niels
** Yesterday: worked on logging, did a lot of bug hunting/fixing.
** Today: work on some website bugs and work on autobuilder improvements.

* Emilia
** Today: work on html-import tool documentation, taking screenshots. Waiting for final comments.

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration

; Tuesday 2008-11-25

* Ryan
** Past weeks: Mer stuff, Canola in Bugzilla, category stuff, other stuff I don't remember. ;)
** Today: Thinking up random stuff to make Niels fix :P, [http://maemo.org/communicy/council finally] using the council blog for what it was supposed to be used for.

* Niels
** Yesterday: Fixed wiki issues by removing squid setup. Fixed cron issues, random bug fixes. Extras user support.
** Today: Look at logging for servers, look at autobuilder improvements, issues GA tends to throw at me :) 

* Bergie
** Today: Improvements with URL handling, feeds, other things with Niels

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration

; Monday 2008-11-24

* Andre
** Last days: Triaging old bugs, fixed some Bugzilla bugs in SVN, a few preparations for Bugzilla Reorg
** Today: Forward some older bugs, some tests for Bugzilla Reorg, internal report (improve &amp; write, actually)

* Niels
** last few days: Worked on maemo.org stability, performance improvements, bug fixes. Enabled static.maemo.org for static files like stylesheets,javascript and images. Helped developer with stability issues in his app.
** today: Add static.maemo.org support for attachments too. Work on cron issues. Look at removing squid in front of this wiki.
** problems: It seems that if I stop reporting activity because of a busy schedule, everybody else does too ;)

* Emilia (Nemein)
** Today: found out how HTML-import tool should work, asked which kind of user manual / documentation I should provide. Wrote 2 drafts of the manual and sent them to Jarmo Tikka to get comments.

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration

; Friday 2008-11-21

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration, mailing list to forum integration [http://trac.midgard-project.org/ticket/286 bug] with multipart messages: more bug hunting, still couldn't reproduce. set up a test system to catch cases that would still break it.


; Thursday 2008-11-20

* Bergie
** Yesterday: Static file cache setup with Niels
** Today: Help Niels with cron issues and other debugging

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration, mailing list to forum integration [http://trac.midgard-project.org/ticket/286 bug] with multipart messages: finished the repair tool, bug reopened by Niels, couldn't reproduce.

; Wednesday 2008-11-19

* Andre
** Yesterday: Triage some older bugs, worked on internal report
** Today: Enhance internal report, fix some Bugzilla bugs in SVN, change/seperate some QA contacts in Website component, triage

* Niels
** Yesterday: Did some tuning, bugfixing, tracing for maemo.org. Started on setting up static.maemo.org
** Today: Update shell scripts to be ragnaroek compatible. Work on static.maemo.org. Do some more tuning.

* Bergie
** Yesterday: Helped neals with post-upgrade tasks, some more performance tuning and minor layout improvements
** Today: Helping Hirvinen with cleaning messed up Gmail HTML messages in discussion forums

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration

; Tuesday 2008-11-18

* Niels
** Yesterday: Upgraded webservers to ragnaroek together with Bergie. Moved database to another server.
** Today: Check out some small problems on maintenance node. Tune database a bit. Prepare setup for static file serving through static.maemo.org.

* Hirvinen
** Today: mailing list to forum integration [http://trac.midgard-project.org/ticket/286 bug] with multipart messages fixed, started work on tool to fix them.

* Bergie
** Yesterday: Upgraded servers to Ragnaroek
** Today: Helping Niels with some post-upgrade issues, more performance tuning

; Monday 2008-11-17

* Niels
** Friday: Prepare for ragnaroek upgrade on monday. Worked on new database server.
** Today: Upgrading maemo.org to [http://www.midgard-project.org/midgard/8.09 Ragnaroek]

* Bergie
** Today: Upgrading maemo.org to [http://www.midgard-project.org/midgard/8.09 Ragnaroek]

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration

; Friday 2008-11-14

* Quim
** Yesterday: Out of office. Just some ITt evening posts clarifying some confusion about [http://www.internettablettalk.com/forums/showthread.php?t=24473&amp;page=11 Fremantle stars and pearls] and [http://www.internettablettalk.com/forums/showthread.php?t=24926 Bugzilla or else to handle feature requests?].
** Today: [[Task:Texts for maemo.nokia.com]], but I'm going to request an extended deadline to Jussi (next week).

* Niels
** Yesterday: Worked on Downloads improvements, styling and testing for discussions.
** Today: Prepare for ragnaroek upgrade on monday. See if we have not forgotten anything. Tune new database server ''if'' it gets delivered today.
* Dave
** Yesterday: Made some suggested edits for [[Task:Texts for maemo.nokia.com]], had a good long chat with Quim, responded to latest design drafts.
** Today: Design draft work, propose a text for [[Task:Texts for maemo.nokia.com]], push the wireframe I did (which I'm unhappy with) for the Development page to start layout discussion
* Bergie
** Yesterday: Solved discussion karma issues, helped Hirvinen in his tasks
** Today: Ensuring all is in packages that we need for Monday's upgrade

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration, mailing list to forum integration [http://trac.midgard-project.org/ticket/286 bug] with multipart messages

; Thursday 2008-11-13

* Dave
** Tuesday: Summarised IRC website design meeting, hopefully we've unblocked the blockage in the website design work now. Suggest useful links for [[Task:Texts for maemo.nokia.com]]
** Yesterday: Upgraded to Intrepid Ibex Tuesday afternoon. Spent yesterday morning fixing stuff. Yeuch. Responded to design proposal from Glaubert
** Today: Plan to help work on [[Task:Texts for maemo.nokia.com]]

* Niels
** Yesterday: Worked on website bugs and Downloads improvement.
** Today: Continue working on website bugs and Downloads improvements.

* Bergie
** Today: Solving discussion karma issues

* Hirvinen
** Today: fi.hut.htmlimport-latex2html maemo docs integration

; Wednesday 2008-11-12

* Quim
** Yesterday: Started [[Task:Texts for maemo.nokia.com]].
** Today: Continue [[Task:Texts for maemo.nokia.com]]. Ask [http://www.internettablettalk.com/forums/showthread.php?t=24926 Bugzilla or else to handle feature requests?] in ITt.

* Niels
** Yesterday: deployed mediawiki and bugzilla comments karma plugins, fixed favouriting to not force to https when logged in on http. Did some fixes to products. Fixed the https login trap. Triaged website bugs.
** Today: Work on website bugs and Downloads.

* Hirvinen
** Today: Started work on fi.hut.htmlimport-latex2html maemo docs integration

; Tuesday 2008-11-11

* Andre
** Yesterday: Cleaning up current Default QA and assignee email address scheme a bit, Forwarding/syncing reports
** Today: [[Talk:Task:Getting_Nokia_involved_in_bugs.maemo.org#Draft_structure|Bugzilla Reorg]], Rework feature jam, Move &quot;safe&quot; @maemo.org virtual bugzilla accounts to @maemo.bugs, Create some of the new assignees as preparation for Reorg, Internal report

* Quim
** Last days: Updated the Tasks table. [http://lists.maemo.org/pipermail/maemo-community/2008-November/001263.html Bugzilla or else to handle feature requests?]. Details on maemo.org debmaster profile.
** Today: Don't expect much. I'm a victim of fragmentation these days.

* Dave
** Yesterday: Prepared &amp; ran IRC meeting on web design. Talked to Niels about [[Karma]].
** Today: Post minutes for IRC meeting for design discussion around maemo.org. Upgrade computer to Intrepid. It's a holiday in France today.

* Hirvinen
** Detached thumbs down from blog karma

; Monday 2008-11-10

* Niels
** Last days: worked on maemo services documentation, investigated promotion issues, lot's of small admin tasks done.
** Today: Clean up admin backlog because of weekend break, work on open bugs.

; Friday 2008-11-07

* Andre
** Yesterday: Take a look at Fremantle structures/categories in internal Bugtracker; cleaning up/recategorize Multimedia bugs
** Today: Analyze current Default QA and assignee email address scheme and come up with consistent policy as part of [[Talk:Task:Getting_Nokia_involved_in_bugs.maemo.org#Draft_structure]]; Work on feature jam

* Quim
** Yesterday: Full day event out of office = nothing done.
** Today: Update the Tasks table. Start drafting [[Task:Texts_for_maemo.nokia.com]].

; Thursday 2008-11-06

* Dave
** Yesterday: Took a rest day after watching US election results all night.
** Today: Follow up with Henri about Karma blog &quot;thumbs down&quot; patch. Nothing else for Maemo today.

* Andre
** Yesterday: Getting through Desktop/User Interaction and Theme bugs, [[Talk:Task:Getting_Nokia_involved_in_bugs.maemo.org#Draft_structure]]
** Today: Take a look at Fremantle structures/categories in internal Bugtracker; cleaning up/recategorize Multimedia bugs

* Niels
** Yesterday: Created [http://maemo.org/maemo-meeting/maemo-meeting-2008-11-04.html irc log for the meeting] and did some general maintenance tasks.
** Today: Document server landscape for configuration guide (Sysadmins). Investigate Extras promotion problems.

; Wednesday 2008-11-05

* Ryan
** Yesterday: Helped Niels complete [[Task:Package_categories]] and blogged about it, wrapped up [[Task:Kill the old wiki]], pushed [[Task:Define voting procedure for Community Council elections]] on itT, sprint meeting.
** Today: Start work on [[Task:Document the maemo.org Sprint procedure]], cleanup and push [[Task:Packaging policy proposed changes]] to the right people.
* Quim
** Yesterday: Completed [[Why the closed packages]] and [[Task:Maemo contributions]]. Facilitated sprint meeting.
** Today: Update list of tasks as soon as log of the meeting is posted. Review status of my tasks and see how to start.</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/November 09</title>
    <id>2618</id>
    <revision>
      <id>34313</id>
      <timestamp>2010-05-12T20:41:19Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">{{sprint}}
== November 2009 Sprint planning ==

* Planning meeting: [http://www.timeanddate.com/worldclock/fixedtime.html?month=11&amp;day=3&amp;year=2009&amp;hour=13&amp;min=30&amp;sec=0 Tuesday, 3rd November 13:30 UTC] in [[IRC|#maemo-meeting]].
* Follows [[maemo.org Sprints/October 09|October 09]]. Precedes [[maemo.org Sprints/December 09|December 09]].
* Main themes: TBD; 

== Tasks ==
[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Task ID
! Task
! Sprint priority
! Owner
! Percentage complete
! Notes
|- style=&quot;background:Tomato&quot;
| 9.04-05
| [[Task:Implement new maemo.org layout and style|Implement new maemo.org layout and style - Bugzilla]]
| Must
| [http://maemo.org/profile/view/andre/ Andre], [http://maemo.org/profile/view/karstenb/ Karsten]
| 80%
| [http://blogs.gnome.org/kbrae/2009/11/30/bugzilla-maintenance-to-trunk-progress/ A bit of progress here in November]. Karsten's proposal: Split up Andre's busted vague task description here into three maintainable subtasks.
|- style=&quot;background:orange&quot;
| 9.08-01
| Document &amp; communicate packages interface to testers
| Must
| [http://maemo.org/profile/view/jaffa/ Jaffa]
| 50%
| danielwilms has produced [http://danielwilms.wordpress.com/2009/11/27/extras-testing-step-by-step/ this]. Stick in wiki and emphasise in links?
|- style=&quot;&quot;
| 9.09-01
| Push packaging policy updates
| Must
| [http://maemo.org/profile/view/xfade/ X-Fade], [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 60%
| Waiting for changes/approval inside Nokia - most properly be done until end of Nov
|- style=&quot;&quot;
| 9.10-03
| Implement SSO backend
| Must
| [http://maemo.org/profile/view/indeyets/ indeyets]
| 50%
| most of the code is in place. need to add details and do some internal testing before demonstrating
|- style=&quot;background:LightBlue&quot;
| 9.10-04
| Brainstorm: bug fixes and new features
| Must
| [http://maemo.org/profile/view/netblade/ NetBlade]
| 75%
| On internal.maemo.org waiting for more comments
|- style=&quot;background:LightBlue&quot;
| 9.10-05
| Brainstorm: better categories view
| Must
| [http://maemo.org/profile/view/netblade/ NetBlade]
| 75%
| On internal.maemo.org waiting for more comments
|- style=&quot;background:LightBlue&quot;
| 9.10-06
| Brainstorm: automoderation from sandbox to under consideration
| Must
| [http://maemo.org/profile/view/netblade/ NetBlade]
| 75%
| [https://bugs.maemo.org/show_bug.cgi?id=5282 Related bug] On internal.maemo.org waiting for more comments
|- style=&quot;&quot;
| 9.10-07
| Server migration
| Must
| [http://maemo.org/profile/view/feri/ Ferenc]
| 2%
| Work started. The first machines are being installed. Linked to [[ISP move]].
|- style=&quot;&quot;
| 9.11-01
| Refresh [http://maemo.org/intro maemo.org intro]
| Must
| [http://maemo.org/profile/view/qgil/ qgil]
| 0%
| See [http://talk.maemo.org/showthread.php?t=33577 Talk thread] and [http://wiki.maemo.org/User:Josefdk/Intro_Mockup Josefdk wiki proposal]
|- style=&quot;&quot;
| 9.11-02
| [http://maemo.org/community/brainstorm/view/routing_visitors_to_useful_resources/ Maemo Greeters program]
| Must
| [http://maemo.org/profile/view/texrat/ texrat]
| 50%
| Pilot started: http://talk.maemo.org/showthread.php?t=33968.  Very quick engagement by members, better than expected.  Ideas coming fast and furious!  A Greeters page has been started by member smarsh: http://wiki.maemo.org/Greeters
|- style=&quot;background:Orange&quot;
| 9.11-03
| Get a decision on [http://maemo.org/community/brainstorm/view/developers_should_get_karma_based_on_the_relevance_of_their_software/ Developers should get karma based on the relevance of their software]
| Must
| [http://maemo.org/profile/view/vdvsx/ VDVsx]
| 60%
| [http://n2.nabble.com/Proposal-Developers-should-get-karma-based-on-the-relevance-of-their-software-td4080063.html#a4080063 Discussion]
|- style=&quot;&quot;
| 9.11-04
| Openness data 
| Must
| [http://maemo.org/profile/view/stskeeps/ Stskeeps]
| 90%
| Needs to implement openness data from 
|- style=&quot;&quot;
| 9.11-05
| Starting to work on a open sourcing queue 
| Must
| [http://maemo.org/profile/view/stskeeps/ Stskeeps]
| 0%
| Depends on openness data
|- style=&quot;&quot;
| 9.11-06
| Help out the SSU team to get them started 
| Must
| [http://maemo.org/profile/view/stskeeps/ Stskeeps]
| 30%
| Spent time with TI drivers to get those proper and discussions about how in practice to implement a SSU.
|- style=&quot;&quot;
| 9.11-07
| Mer 0.17 release and facilitating Maemo on non-N900 OMAP3 boards (beagle, etc)
| Must
| [http://maemo.org/profile/view/stskeeps/ Stskeeps]
| 90%
| Mer 0.17 release a bit delayed due to various technical issues. Beagle and Zoom2 ports work but got set back by the new SDK.
|- style=&quot;background:LightBlue&quot;
| 9.11-08
| No [[Special:Lonelypages | orphaned pages]] and revise Wiki navigation
| Must
| [http://maemo.org/profile/view/dneary/ dneary]
| 30%
| See [[Wiki gardeners]] page for precise details, and [[Special:Lonelypages]] for progress.
|- style=&quot;background:LightBlue&quot;
| 9.11-09
| Integrate more minimae checks (around ten new checks)
| Must
| [http://maemo.org/profile/view/jeremiah/ jeremiah]
| 100%
| I'll add some more checks and fill in more information on minimae so that developers can look up errors.
|- style=&quot;&quot;
| 9.11-10
| Integrate ITP database with general package database
| Must
| [http://maemo.org/profile/view/jeremiah/ jeremiah]
| 80%
| It would be good if the current package search that Niels built would somehow show a package that has been requested to be ported to Maemo or is being ported.
|- style=&quot;&quot;
| 9.11-11
| Install and test reprepro on new infrastructure
| Must
| [http://maemo.org/profile/view/jeremiah/ jeremiah]
| 0%
| I will install and test on test.maemo.org for the time being, obviously the new servers are a blocker. (Still no login as of 2009-11-25)(Just got logins recently)
|- style=&quot;background:LightGreen&quot;
| 9.11-12
| Brainstorm/improve [http://wiki.maemo.org/Extras-testing Extras-testing Q&amp;A]
| Must
| [http://maemo.org/profile/view/vdvsx/ VDVsx], [http://maemo.org/profile/view/jeremiah/ jeremiah], [http://maemo.org/profile/view/lma/ lma]
| DONE
| See [http://n2.nabble.com/Quality-Assurance-and-Extras-testing-discussion-on-IRC-td3945607.html#a3945607 discussion].
|- style=&quot;background:LightBlue&quot;
| 9.09-10
| Implement SSO sync-API endpoint for garage
| Should
| [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 50%
| implemented new server instance for midgard account-sync, cas change from ldap to MySQL, certificates in place for endpoint-sync
|- style=&quot;background:LightBlue&quot;
| 9.10-13
| Distribute 'Fixed In Fremantle' shirts to contributors that didn't make it to the Summit
| Should
| [http://maemo.org/profile/view/qgil/ qgil]
| 0%
| http://wiki.maemo.org/FIXED_in_Fremantle_Hall_of_Fame started
|- style=&quot;background:LightBlue&quot;
| 9.10-14
| Create a RFP (Request for Packaging) interface just like the ITP
| Should
| [http://maemo.org/profile/view/jeremiah/ jeremiah]
| 60%
| 
|- style=&quot;background:LightBlue&quot;
| 9.10-15
| Prepare a Bugday
| Should
| [http://maemo.org/profile/view/andre/ andre]
| 40%
| Updated &amp; restructured [[Bugsquad|Bugsquad wikipage]]. 2009-11-30: Greasemonkey script published; asked for defining a Bugday date (Doodle) on the community mailing list. 2009-12-02: Set up Bugday wikisubpage (to include: Future plans), split &quot;Potential tasks&quot; into &quot;Recurring&quot; and &quot;Others&quot; and move it to its own subpage, and link to it from Bugdays and Triage Guide. 2009-12-04: Announce final date everywhere &amp; introduce [http://maemo.org/profile/view/wazd wazd]'s cool Bugsquad logo. Week after: Have our first Bugday. Bonus points for volunteers or Andre in case of providing a video screencast that introduces new people into triaging. See [http://blip.tv/file/2527267 Ubuntu example].
|- style=&quot;&quot;
| 9.08-12
| Improve reporting feed appearance on sprint page
| Could
| [http://maemo.org/profile/view/feri/ Ferenc]
| 0%
| To liaise with [http://maemo.org/profile/view/jaffa/ Jaffa]. I am happy to pass it on, I will have no time for this in the near future. Update: I will do it in December! 
|- style=&quot;&quot;
| 9.10-09
| Prototype [[Task:Publishing_API_docs | library.maemo.org]]
| Could
| [http://maemo.org/profile/view/dneary/ dneary]
| 0%
| No progress - vacation &amp; wiki clean-up got in the way.
|- style=&quot;&quot;
| 9.10-10
| Add extra info fields from control files to interface - Changelog
| Could
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 0% 
|
|- style=&quot;&quot;
| 9.11-16
| Update [http://wiki.maemo.org/Open_development/Maemo_roadmap/Fremantle Fremantle roadmap]
| Could
| [http://maemo.org/profile/view/qgil/ qgil]
| 0% 
|
|- style=&quot;&quot;
| 9.11-17
| Implement new UI for the application-downloader
| Could
| [http://maemo.org/profile/view/danielwilms/ danielwilms], [http://maemo.org/profile/view/wazd/ wazd]
| 40% 
| some big parts already implemented, changes in REST-API needed
|}

== Actions ==
''None yet''

== Activity log ==
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.

''See latest sprint for activity''</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/October 08</title>
    <id>1229</id>
    <revision>
      <id>33798</id>
      <timestamp>2010-05-04T09:41:12Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}

==October 2008 Sprint planning==
* Planning meeting organized in the [[IRC|#maemo-meeting IRC channel]] on Tuesday 2008/09/30 at [http://www.timeanddate.com/worldclock/fixedtime.html?month=9&amp;day=30&amp;year=2008&amp;hour=19&amp;min=0&amp;sec=0&amp;p1=0 19:00 UTC].
* Right after [[100Days/Sprint5]] review.
* Followed by [[Maemo.org Sprints/November 08]]

==Tasks==
[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightGreen&quot;
| 2008-06-10 || [[Package_Categories|Better extras categories and debtags]] || Niels || DONE || See [http://maemo.org/community/council/view/1225812124/ Ryan's post] and [http://communitizer.blogspot.com/2008/11/packaging-policy-change-proposal.html my proposal]
|- style=&quot;background:LightGreen&quot;
| 2008-08-12 || Push [[Task:Getting Nokia involved in bugs.maemo.org|Better organization of bugs.maemo.org components]] to 70% || Andre || 70% || Draft now available at [[Talk:Task:Getting_Nokia_involved_in_bugs.maemo.org#Draft_structure]], still a few open questions left to solve/find out
|- style=&quot;background:Tomato&quot;
| 2008-09-02 || [[Task:Fast Server]] || Tero || 30% || Half-way there, we still need to upgrade to Ragnaroek
|- style=&quot;background:LightGreen&quot;
| 2008-09-02 || [[Task:Maemo_contributions]] to open source projects || Quim || DONE || List of relevant projects completed. Enough detail for now. More upon request.
|- style=&quot;background:LightGreen&quot;
| 2008-09-02 || [[Why_the_closed_packages|Explanation of the reasons why the &quot;Top 10&quot; closed source packages are closed]] || Quim || DONE || Main reasons and most requested packages/areas answered.
|- style=&quot;background:LightGreen&quot;
| 2008-09-02 || [[Task:ITt_Collaboration|ITt karma counting ]] || Henri || DONE || Karma plugins done and in action, see [http://maemo.org/profile/view/fredp/ example]
|- style=&quot;background:Tomato&quot;
| 2008-09-02 || [[Task:ITt_Collaboration|ITT app catalog feeds ]] || Henri || 0% ||
|- style=&quot;background:LightGreen&quot;
| 2008-09-02 || Complete and agreed [[Task:Improving_maemo.org/proposal|proposal]] to improve maemo.org || Dave || DONE || The [[Task:Improving maemo.org | proposal]] looks OK to me. After 10 days, no feedback received, considering this task DONE.
|- style=&quot;background:LightGreen&quot;
| 2008-09-30 || [[Task:Improving_maemo.org#Maemo.org_Homepage_refresh|New maemo.org homepage specs agreed]] || Dave || DONE || Consensus reached around a proposal by Tim Samoff
|- style=&quot;background:Tomato&quot;
| 2008-09-30 || Who and how works on the maemo.org design || Dave || 50% || Process proposed, waiting for feedback and confirmation of roles. Dave Neary, Tim Samoff and Jaffa will work with INdT's designers to get a final design, before working on getting it implemented in Midgard.
|- style=&quot;background:Tomato&quot;
| 2008-09-30 || [[Task:Content_Cleanup#Development|Propose a new structure for maemo.org/development]] || Dave || 30% || [[Task:Improving_maemo.org/Development | Proposal]] exists, I would like to wireframe some mock-ups. Layout will depend on the final layout of the front page, most likely. Waiting for INdT relationship &amp; contacts to be clarified.
|- style=&quot;background:LightGreen&quot;
| 2008-09-30 || Agreed plan for [[Task:Improving maemo.org/community]] || Tim || DONE || Complete barring feedback from Nokia.
|- style=&quot;background:LightGreen&quot;
| 2008-09-30 || [[Task:Kill the old wiki]] || Ryan || DONE || Niels killed the wiki and put the redirects in place.
|- style=&quot;background:Tomato&quot;
| 2008-09-30 || [[Task:Reducing number of external repositories]] || Niels || 40% || Contacted most owners. Had a lot of positive responses, but need to gently push most of them again..
|- style=&quot;background:Tomato&quot;
| 2008-09-30 || Define and publish first Feature Jar for the community and Nokia product managers || Andre || 80% || [http://lists.maemo.org/pipermail/maemo-community/2008-October/001217.html See this email] - second iteration based on Quim's feedback planned for first week of November
|- style=&quot;background:Tomato&quot;
| 2008-09-30 || [[Task:Open Source Proof Points]] || Quim || 5% || Started preliminary [[Talk:Task:Open Source Proof Points|discussion]].
|}

==Bugs in product Website==
The bugs assigned in the last sprint meeting are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=High&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= HIGH]. The bugs proposed for the next sprint are marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=Medium&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= MEDIUM]. Only product/component maintainers can change this status. Comment on a bug if you want to push it up. Check also those marked as [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=easyfix&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= EASYFIX].

What follows are the bugs that need special attention/progress.

For the record:

{{#bugzilla:id=1805,2179,2296,2303,2304,3178,3236,3241,3280,3363,3432,3562,3696,3747
  |columns=id, priority, severity, modified,  product,  status, summary, to
}}

==Activity log==
Latest activity report goes on top.

; Tuesday 2008-11-04

* Andre
** Past days: Cleaning up (triaging/reproducing/moreinfo'ing) old non-enhancement bugs (should be 60 or 70 less now).
** Today: Enhance [[Talk:Task:Getting_Nokia_involved_in_bugs.maemo.org#Draft_structure]]; work on improving internal report; community meeting.

* Niels
** Past days: Did a lot of maintenance. Worked on Packaging Policy change proposal and found out how to submit change requests. Deployed and tested new karma plugins for itT karma. Discussed server issues and plans with Tero.
** Today: Publish [[Task:Packaging_policy_proposed_changes]] and try to finalize the first part of [[Task:Package categories]]. Setup redirects for Ryan's [[Task:Kill the old wiki]]. Attend the sprint meeting + publish logs.

* Quim
** Past days: [[Why_the_closed_packages]] explanation on several packages. Publishing info about next sprint meeting. Bug/feature work, including [https://bugs.maemo.org/show_bug.cgi?id=2878 Very poor satellite acquisition with internal GPS].
** Today: Completing [[Why_the_closed_packages]] and [[Task:Maemo_contributions]]. Facilitating sprint meeting, still?

; Friday 2008-10-31

* Niels
** Past 2 days: Karma recount debugging, http auth testing for maemo.org, installed new karma packages, performance testing on internal machine. Find out about Packaging Policy change request. Clean up downloads a bit. Investigated static file serving. Fixed database backup issue.
** Today: Discuss server issues with tekojo. Write Packaging Policy change request proposal wiki page. Blog about progress with [[Task:Package categories]]. Do a last round of performance improvement tests on internal machine.

* Ryan
** Past week: Helping Niels push [[Task:Package categories]]. Pushing [[Task:Improving the Application manager]]. Pushing for confirmation on [[Task:Kill the old wiki]]. Working on wiki categorization.
** Today: Work on more mockups for [[Task:Improving the Application manager]] and continue pushing.

* Quim
** Past days: Application Manager open development setup. Small progress on [[Why_the_closed_packages]] - bme &amp; mce. Ping for November sprint meeting. Helped that guy blaming Nokia Care. Feedback on Feature Jar. Spinned off PIM discussion in ITt. Forwarded request for Calling All Innovators banner in maemo.org frontpage. Feedback on development and 3D acceleration for N8*0 devices in maemo-users and ITt.
** Today: Creating event for next sprint meeting. Blog about all the open items. Still aiming to close [[Why_the_closed_packages]] and [[Task:Maemo_contributions]] this sprint.
** Problems: Too many items at the same time. Willing to be responsive to all open issues makes me work a lot less fixing actually stuff. /me should stick more to committed tasks - conclude them and then take new ones.

* Bergie
** Yesterday: Tweaked karma recounts with Niels, some work on favouriting over the new authentication system, RSS importer debugging because of FeedBurner timeouts
** Today: Discussing Ragnaroek upgrade schedule

; Wednesday 2008-10-29

* Niels: 
** Yesterday: Worked on section checking in Extras Assistant. Did some cleanup in downloads. Performance work on internal server, everything looks good for implementing on maemo.org.
** Today: Work on/test authenticated sessions on http for maemo.org together with rambo. Look into separate vhost for static files. Push [[Task:Package categories]] some more.

* Bergie
** Yesterday: Implemented needed Documentation HTML importer features, optimized Downloads component
** Today: Changing karma calculation scheduling, implementing ITT karma importers

; Tuesday 2008-10-28

* Dave
** Today: Visited offices this morning. Processing email, following up on home page refresh &amp; working on mocking up the Development page this afternoon. Sick baby at home.
** Yesterday: Administrative work

* Bergie
** Last week: Major performance tuning with Ragnaroek that we will soon run
** Today: HTML documentation importer, query tuning with Downloads component

* Niels
** Friday,Monday: Clean up downloads and look at performance issues. Looked at options for [[Task:Package categories]]. Pinged about server issues again.
** Today: Work on [[Task:Package categories]]. Clean up some duplicated items in Downloads. Work on Extras assistant to add section checking (warnings).

* Quim
** Past days: DSP finally added to [[Why_the_closed_packages]]. Discussion supporting [[Talk:Killer Apps]]. Discussion about [http://flors.wordpress.com/2008/10/24/distro-zen-question-of-the-day/ Maemo vs mainstream Linux] - Started [[Mainstream Linux Alignment‎]]. Mondays are becoming bug triaging days thanks to Bug Jar.
** Today: [[Why_the_closed_packages]] - bme &amp; mce. Continue with [[Mainstream Linux Alignment‎]] discussion. Ping for November sprint meeting. Hopefully leave [[Task:Maemo_contributions]] ready for this sprint.

; Thursday 2008-10-22

* Niels
** Yesterday: Performance tracing/ testing on internal server, made quite some progress. Published some jobs.
** Today: Wrap up performance tuning so we can test for regressions before moving this to the live server. Work on [[Task:Package categories]].

* Dave
** Yesterday: Handled a lot of backlog, and made proposal to get moving regarding the front page. Asked for clarification on the &quot;Calling all innovators&quot; initiative.
** Today: Wire-frame new Development page, and start Support page proposal.
**  Problems: Need more reactivity from INdT - request for all versions of logo went unanswered for a week, and I have not heard back from Andre in a week either.

* Quim
** Yesterday: Pushing discussion on [http://lists.maemo.org/pipermail/maemo-developers/2008-October/035303.html Projects Nokia should support (yours?)]. [[Talk:Task:Getting_Nokia_involved_in_bugs.maemo.org#Better_organization_of_products_and_components|Better_organization_of_products_and_components]] &amp; internal discussion.
** Today: Continue with [[Why_the_closed_packages]]. More definition on events. More [[Talk:Task:Getting_Nokia_involved_in_bugs.maemo.org#Better_organization_of_products_and_components|Better_organization_of_products_and_components]].

; Wednesday 2008-10-22

* Dave
** Monday: Prepared lecture I gave Tuesday
** Tuesday: Half-day lecture for library administrators, afternoon &amp; evening meeting with a local non-profit here in Lyon
** Today: First day since last week for working on Maemo. Urgency seems to be the front page redesign, discussion has petered out. I will plant a stake in the ground, and ensure INdT are working on the design &amp; implementation, and move discussion to content &amp; wireframing of Development, Community and Support pages
* Niels
** Yesterday: Tracing and logging performance issues on internal server together with Bergie. Worked on Extras Assistant to add [http://communitizer.blogspot.com/2008/10/new-features-autobuilder-and-extras.html new features]. Discussed and tested the idea of subcategories for packages.
** Today: Work on [[Package_Categories]], work on performance enhancements for maemo.org.
* Quim
** Last days: swallowed by Maemo internal work, nothing done on my maemo.org tasks.
** Today: Continue with [[Why_the_closed_packages]]. More definition on events. Also some steps on [[Task:Getting_Nokia_involved_in_bugs.maemo.org]].
* Bergie
** Yesterday: Major performance improvements with Ragnaroek
** Today: Performance tuning for downloads and social news, implementing new cache strategy

; Tuesday 2008-10-21

* Niels
** Yesterday: 'Downloads' / ragnaroek performance tracing on test machine.
** Today: Remove package signing requirement from Extras Assistant. More 'Downloads' optimization.

; Monday 2008-10-20

* Niels
** Friday: Worked on [[Task:Reducing_number_of_external_repositories]], database tuning, upgraded the internal test server to Ragnaroek.
** Today: 'Downloads' performance tracing on test machine. Remove package signing requirement from Extras Assistant.
* Bergie
** Today: Working on Ragnaroek traces with Niels, tuning performance where appropriate
* Joonas
** Today: Fixing the image resizer JS

; Friday 2008-10-17

* Dave
** Yesterday: Spent the day chasing down the GNOME Event Box, and organising an emergency replacement for the GNOME stand at JDLL in Lyon.
** Today: Attending JDLL, getting posters printed.
** Tomorrow: JDLL day 2 - giving a presentation on GNOME accessibility at 9:30am.

* Niels
** Yesterday: Looked at performance issues, maemo.org maintenance. Worked on [[Task:Reducing_number_of_external_repositories]].
** Today: Work on [[Package_Categories]], follow up on [[Task:Reducing_number_of_external_repositories]] and prepare internal test machine for Midgard Ragnaroek upgrade.

; Wednesday 2008-10-15

* Dave
** Yesterday: Little maemo.org progress, out of the office all afternoon. Asked for clarification on prime time community software.
** Today: Hopefully we can close the maemo.org front page discussion and encapsulate the principles we agree on. I need to prepare a presentation for Saturday morning and a lecture for next week. I also want to (finally) make the updates I've been planning to the [[Task:Improving_maemo.org/Development]] proposal.

* Niels
** Yesterday: Worked on database performance. Updated Worked on [[Task:Reducing_number_of_external_repositories]].
** Today: Work on performance issues database and downloads.

* Quim
** From Friday to yesterday: Planning 1H2008 events and too many scattered little works.
** Today: Blog about [http://lists.maemo.org/pipermail//maemo-community/2008-October/001090.html Pushing community software to prime time] and http://www.callingallinnovators.com/ . Continue with [[Why_the_closed_packages]].

; Tuesday 2008-10-14

* Niels
** Friday: Worked on server/database issues. Worked on [[Task:Reducing_number_of_external_repositories]]. Worked on Extras issues.
** Today: Do a slow query analysis on the database. Work on [[Task:Reducing_number_of_external_repositories]].

; Monday 2008-10-13

* Dave
** Friday: Worked on [[Task:Kill the old wiki]], updated [[Task:Improving_maemo.org]] to remove discussion, and make it a more concrete proposal, update [[karma]], co-ordinate with INdT to make sure they're working in the wiki and on the list for the site refresh and front page.
** Today: Finally push [[Task:Improving_maemo.org/Development]] content finally, work on presentation I'm giving on Saturday, visit another office.

; Friday 2008-10-09

* Dave
** Wednesday: Paperwork, prepared a lecture for Thursday morning, processed email, worked on development page.
** Thursday: Lecture, accountant, processed email.
** Today: Visit office space, reviewed [[Task:Kill the old wiki]] - added a bunch of page redirects we need, and will review further the pages we brought over from the wiki. Those redirects are going to take time to set up. Frustratingly unproductive week.

* Ryan
** Past week: Improving maemo.org discussion, asked Dave to review [[Task:Kill the old wiki]], remarkable community projects discussion.
** Today: Bug package maintainers about packages with invalid sections, ponder on the categories issue.

* Quim
** Yesterday: Commented on homepage discussion. Wrote about [http://lists.maemo.org/pipermail//maemo-community/2008-October/001090.html Pushing community software to prime time].
** Today: Try to push DSP out of the waiting list at [[Why_the_closed_packages]]. Blog about [http://lists.maemo.org/pipermail//maemo-community/2008-October/001090.html Pushing community software to prime time]. Push [http://lists.maemo.org/pipermail/maemo-community/2008-October/001065.html Proposal for approaching events].

; Thursday 2008-10-09

* Niels
** Yesterday: Worked on server/database issues. A bit of progress on [[Task:Reducing_number_of_external_repositories]].
** Today: Fix profile category issues and feed issues. Work on [[Task:Reducing_number_of_external_repositories]].

* Quim
** Yesterday: [[Why_the_closed_packages]], asking about DSP and those low level little components. [http://lists.maemo.org/pipermail/maemo-community/2008-October/001065.html Proposal for approaching events].
** Today: Not much, full day training.

; Wednesday 2008-10-08

* Quim
** Yesterday: [[:Image:Maemoorg-home-proposal-3.jpg|Proposal for maemo.org homepage]]. Improved [[Task:Maemo_roadmap/Fremantle]]. Blogged about [http://flors.wordpress.com/2008/10/07/meeting-at-fosdem-bossa-where-else/ events in 1H2009]. Started with [[Talk:Task:Open Source Proof Points‎]].
** Today: [[Why_the_closed_packages]], ask Eero about all those low level little components. Push the events discussion.

* Dave
** Yesterday: Not much - Pushed update for maemo.org revision proposal, have been working on content of maemo.org/development, followed up on several mailing list threads
** Today: Paperwork this morning, and following up on recent revisions of maemo.org designs. Will push update to development content which will propose a reorganisation of existing content.

* Niels
** Yesterday: Worked on server issues, cleared admin backlog, made progress on [[Task:Reducing_number_of_external_repositories]]
** Today: Check out some server issues, work on [[Task:Reducing_number_of_external_repositories]].

; Tuesday 2008-10-07

* Dave
** Yesterday: Follow up with INdT on layout and design work for community pages and for maemo.org redesign. Looked at some office space in the afternoon.
** Today: Try to crystallise front page discussion - but since this morning I'm unsure if we're going in circles. Fill out proposal for maemo.org rework overall.

* Niels
** Today: Catch up with backlog of maemo.org work. Work on [[Task:Reducing_number_of_external_repositories]] and Extras categories.

* Quim
** Monday: [[Why_the_closed_packages]]: tablet-browser-ui &amp; dsme. Approaching to common proposal for maemo.org homepage.
** Today: [[Why_the_closed_packages]]: chasing power management, DSP, wlan. Proposal for maemo.org homepage. Improve [[Task:Maemo_roadmap/Fremantle]]. Blog about events in 1H2009.

; Monday 2008-10-06

* Dave
** Friday: Passed a major hurdle for the invoicing system in Nokia. Travelled to the UK for the weekend, so was only around in the morning. Continued working on karma and refining front page design. I think we're ready to nail our flag to the post and get working on the realisation of a design now.
** Today: Wind up the discussion on the front page design, we seem to be converging on something now. Start working with Nemein to figure out how we can implement this in Midgard. Also looking at some office space today.

* Quim
** Friday: [[Why_the_closed_packages]] published. Discussion about maemo.org homepage.
** Today: Reasons [[Why_the_closed_packages]] for specific packages. Discussion about maemo.org homepage.

; Friday 2008-10-03

* Dave (adding Monday - wiki was down Friday when I tried to connect)
** Yesterday: Keep working on refining front page design. I think we're close to a final version. Worked on a proposal for reforming karma, made good progress in that discussion.
** Today: Start working on patches for some simple karma fixes. Make progress on getting into Nokia's invoicing system.

* Quim
** Yesterday: Discussion about maemo.org homepage. Cut lot of text at Explanation of the reasons why the closed source packages are closed.
** Today: Publishing Explanation of the reasons why the closed source packages are closed. Discussion about maemo.org homepage, still. Finding a basic way to proceed with community editions, distros and etc.

; Thursday 2008-10-02

* Niels
** Yesterday: Worked on [[Task:Reducing_number_of_external_repositories]], worked on some server issues and repository.
** Today: Try to fix some server issues.
** Tomorrow - weekend - Monday: I will be away for a long weekend, (probably) not reading email. Urgent matters: SMS.
** Problem: The flue. 

* Ryan
** Yesterday: Worked on [[Task:Kill the old wiki]], started putting together a proposal for [[Task:Maemo Community distribution]], pushed discussion in -developers and bugzilla. Started work on [[Task:Kill the old wiki]].
** Today: Talk to Marcell about a non-free section for tableteer. Get with Dave on [[Task:Kill the old wiki]]. Continue working on [[Task:Maemo Community distribution]].

* Dave
** Yesterday: Cleaned up [[Task:Content Cleanup]] and created [[Task:Improving maemo.org/Development]]. Proposed organisation for content in the Development page. Continue pushing discussion for maemo.org front page.
** Today: Keep moving on [[Task:Improving maemo.org/Development]], build out content and work on a layout proposal. Work with [[User:GeneralAntilles]] on old wiki migration &amp; killing task. Try to move towards a concensus on maemo.org homepage.

* Quim
** Yesterday: Reflecting decisions of maemo.org sprint meeting in this wiki page. Discussion on maemo.org homepage. [[Task:ITt Collaboration‎]] cleaning. Reviewing priorities in Website bugs, pushed some to Medium.
** Today: Publishing Explanation of the reasons why the closed source packages are closed (everyday there is something that gets in between!). Discussion on maemo.org homepage.

; Wednesday 2008-10-01

* Ryan
** Yesterday: Tech-support on the ground in -users and itT, bug triaging. IRC review meeting.
**Today: Run through [http://maemo.org/community/wiki/wikireorg/ the old midgard wiki pages] to see what's salvageable and what needs a redirect for [[Task:Kill the old wiki]].

* Dave
** Yesterday: Work on [[:Image:Dneary_front_page_mockup.jpg | my proposal for front page redesign]]. Contact Marcelo and Tim to get some layout proposals for maemo.org/community. IRC sprint meeting. Document [[karma]].
** Today: Start work on proposal for developer portal. Identify key resources that should be put on a pedestal. Clean up [[Task:Content Cleanup]].

* Niels
** Yesterday: Worked on [[Task:Reducing_number_of_external_repositories]], debugged some autobuilder problems, worked on new servers
** Today: Publish IRC logs, publish and work on [[Task:Reducing_number_of_external_repositories]], start on [[Package_Categories]]

* Quim
** Yesterday: Discussion on maemo.org homepage. Facilitation of the maemo.org sprint meeting.
** Today: Reflecting decisions in maemo.org sprint in this wiki page. Discussion on maemo.org homepage. Publishing Explanation of the reasons why the closed source packages are closed.</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/October 09</title>
    <id>2371</id>
    <revision>
      <id>33814</id>
      <timestamp>2010-05-04T10:03:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}</comment>
      <text xml:space="preserve">{{sprint}}
== October 2009 Sprint planning ==

* Planning meeting: [http://www.timeanddate.com/worldclock/fixedtime.html?month=10&amp;day=6&amp;year=2009&amp;hour=13&amp;min=30&amp;sec=0 Tuesday, 6th October 13:30 UTC] in [[IRC|#maemo-meeting]].
* Follows [[maemo.org Sprints/September 09|September 09]]. Precedes [[maemo.org Sprints/November 09|November 09]].
* Main themes: New council; summit

== Tasks ==
[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Task ID
! Task
! Sprint priority
! Owner
! Percentage complete
! Notes
|- style=&quot;background:Tomato&quot;
| 9.04-05
| [[Task:Implement new maemo.org layout and style|Implement new maemo.org layout and style - Bugzilla]]
| Must
| [http://maemo.org/profile/view/andre/ Andre]
| 80%
| Nokia surprised me by handing out devices at the Summit - hence bug reports got filed like mad =&gt; No progress here in October. Good news: Got Karsten back for a few hours per week for the rest of the year.
|- style=&quot;background:LightGreen&quot;
| 9.04-08
| [[ITP]] process/workflow around [http://test.maemo.org/cgi-bin/itp.cgi prototype]
| Must
| [http://maemo.org/profile/view/jeremiah/ Jeremiah]
| 100%
|
|- style=&quot;background:LightGreen&quot;
| 9.08-04
| Integrate [[Extras-testing#Maemian.2FMinimae_checks_after_builds|minimae]] into package promotion to get infrastructure &amp; UI in place
| Must
| [http://maemo.org/profile/view/jeremiah/ Jeremiah]
| 100%
|
|- style=&quot;background:orange&quot;
| 9.08-11
| Document &amp; communicate packages interface to testers
| Must
| [http://maemo.org/profile/view/jaffa/ Jaffa]
| 0%
| Been blocked on 9.08-10, struggling to fit in time.
|- style=&quot;&quot;
| 9.09-01
| Push packaging policy updates
| Must
| [http://maemo.org/profile/view/xfade/ X-Fade], [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 40%
| Make some changes, waiting for Daniel to pass it to Nokia internal team.
|- style=&quot;background:LightGreen&quot;
| 9.10-01
| Discuss [[Token_based_access_restriction | Token based access restriction]] at Summit
| Must
| [http://maemo.org/profile/view/stskeeps/ Stskeeps], [http://maemo.org/profile/view/xfade/ X-Fade]
| DONE
| 
|- style=&quot;background:LightGreen&quot;
| 9.10-02
| Define docmaster priorities
| Must
| [http://maemo.org/profile/view/dneary/ dneary]
| DONE
| Done as part of preparation for summit, and discussions before, during &amp; after summit. First big job: Getting the [[Maemowiki Action Group]] working effectively.
|- style=&quot;&quot;
| 9.10-03
| Implement SSO backend
| Must
| [http://maemo.org/profile/view/indeyets/ indeyets]
| 0%
| 
|- style=&quot;&quot;
| 9.10-04
| Brainstorm: bug fixes and new features
| Must
| [http://maemo.org/profile/view/netblade/ NetBlade]
| 0%
| [https://bugs.maemo.org/show_bug.cgi?id=5282 Related bug]
|- style=&quot;&quot;
| 9.10-05
| Brainstorm: better categories view
| Must
| [http://maemo.org/profile/view/netblade/ NetBlade]
| 0%
| 
|- style=&quot;&quot;
| 9.10-06
| Brainstorm: automoderation from sandbox to under consideration
| Must
| [http://maemo.org/profile/view/netblade/ NetBlade]
| 0%
| 
|- style=&quot;background:Tomato&quot;
| 9.10-07
| Server migration
| Must
| [http://maemo.org/profile/view/feri/ Ferenc]
| 0%
| Servers will be available in November only.
|- style=&quot;background:LightGreen&quot;
| 9.10-08
| Maemo Summit council meeting agenda
| Must
| new &amp; old council &amp; maemo.org staff
| DONE
| 
|- style=&quot;background:LightGreen&quot;
| 9.08-10
| Draft [[Extras_repository_process_definition#Quality_Assurance|quality guidelines]] for extras-testing to extras promotion
| Should
| [http://maemo.org/profile/view/qgil/ qgil]
| DONE
| [[Extras-testing/QA_Checklist]] Jaffa takes over.
|- style=&quot;&quot;
| 9.10-09
| Prototype [[Task:Publishing_API_docs | library.maemo.org]]
| Should
| [http://maemo.org/profile/view/dneary/ dneary]
| 0%
| No progress - vacation &amp; wiki clean-up got in the way.
|- style=&quot;background:LightGreen&quot;
| 9.06-14
| Plan for the OMAP2 acceleration [[Drivers justification|drivers]]
| Could
| [http://maemo.org/profile/view/qgil/ qgil]
| DONE
| My part has been done after TI's commitment to release the drivers announced in the maemo Summit.
|- style=&quot;&quot;
| 9.08-12
| Improve reporting feed appearance on sprint page
| Could
| [http://maemo.org/profile/view/feri/ Ferenc]
| 0%
| To liaise with [http://maemo.org/profile/view/jaffa/ Jaffa]. I am happy to pass it on, November will be the month of the server move.
|- style=&quot;&quot;
| 9.09-10
| Implement SSO sync-API endpoint for garage
| Could
| [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 0%
| 
|- style=&quot;&quot;
| 9.10-10
| Add extra info fields from control files to interface - Changelog
| Could
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 0% 
|
|}

== Actions ==
''None yet''

== Activity log ==
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.

'' See latest sprint for activity ''</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/September 09</title>
    <id>2247</id>
    <revision>
      <id>33813</id>
      <timestamp>2010-05-04T10:01:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{sprint}}, wikify links</comment>
      <text xml:space="preserve">{{sprint}}
== September 2009 Sprint planning ==

* [http://bleb.org/software/maemo/maemo-meeting-2009-09-01.txt Planning meeting]: [http://www.timeanddate.com/worldclock/fixedtime.html?month=9&amp;day=1&amp;year=2009&amp;hour=13&amp;min=30&amp;sec=0 Tuesday, 1st September 13:30 UTC] in [[IRC|#maemo-meeting]].
* Follows [[maemo.org Sprints/August 09|August 09]]. Precedes [[maemo.org Sprints/October 09|October 09]].
* Main themes: September council election; October summit

== Tasks ==
[[: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]].

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Task ID
! Task
! Sprint priority
! Owner
! Percentage complete
! Notes
|- style=&quot;background:LightGreen&quot;
| 9.08-01
| Get &quot;Nokia patches&quot; cleanly into Bugzilla 3.4 test install, dropping as many deltas as possible
| Must
| [http://maemo.org/profile/view/feri/ Ferenc]
| DONE
| [[User:Feri#Notes_on_checking_Nokia_bugzilla_patches|See my comments on the various patches]]
|- style=&quot;&quot;
| 9.08-04
| Integrate [[Extras-testing#Maemian.2FMinimae_checks_after_builds|minimae]] into package promotion to get infrastructure &amp; UI in place
| Must
| [http://maemo.org/profile/view/jeremiah/ Jeremiah]
| 90%
|
|- style=&quot;background:LightGreen&quot;
| 9.08-06
| Produce [[Maemo Summit 2009]] budget v0.99
| Must
| [http://maemo.org/profile/view/qgil/ qgil]
| DONE
| It's done. I just didn't find the time to share with the council. What counts is that we allocated all the budget satisfying all the needs.
|- style=&quot;background:LightGreen&quot;
| 9.08-08
| Co-ordinate summit council responsibilities
| Must
| [http://maemo.org/profile/view/timsamoff/ timsamoff]
| 100%
| Merchandising/accomodation etc:
* Accomodation: [http://www.ibishotel.com/gb/hotel-1556-ibis-amsterdam-centre/index.shtml Ibis Amsterdam Centre], 8-11 Oct.
* Sticker &amp; Shirt designs have been finalized.
* Stickers have been printed.
* T-shirts are at Nokia-contracted printer, to be delivered by 7-8 Oct.
|- style=&quot;background:Orange&quot;
| 9.04-05
| [[Task:Implement new maemo.org layout and style|Implement new maemo.org layout and style - Bugzilla]]
| Must
| [http://maemo.org/profile/view/andre/ Andre]
| 80%
| 
|- style=&quot;&quot;
| 9.08-11
| Document &amp; communicate packages interface to testers
| Must
| [http://maemo.org/profile/view/jaffa/ Jaffa]
| 0%
| Not done.
|- style=&quot;&quot;
| 9.09-01
| Push packaging policy updates
| Must
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 40%
| Make some changes, waiting for Daniel to pass it to Nokia internal team.
|- style=&quot;background:LightGreen&quot;
| 9.09-02
| Run council election
| Must
| [http://maemo.org/profile/view/dneary/ dneary]
| 100%
|
|- style=&quot;background:LightGreen&quot;
| 9.09-03
| Finalise summit community day schedule
| Must
| [http://maemo.org/profile/view/dneary/ dneary], [http://maemo.org/profile/view/vdvsx/ VDVsx], [http://maemo.org/profile/view/baloo/ baloo]
|100%
|
|- style=&quot;background:LightGreen&quot;
| 9.09-04
| Approve/reject all summit sponsorship requests
| Must
| [http://maemo.org/profile/view/jaffa/ Jaffa]
| 100%
|
|- style=&quot;&quot;
| 9.08-10
| Draft [[Extras_repository_process_definition#Quality_Assurance|quality guidelines]] for extras-testing to extras promotion
| Should
| [http://maemo.org/profile/view/qgil/ qgil]
| 10%
| Drafting at [[Extras-testing#Quality_criteria|Extras-testing Quality_criteria]] + [http://talk.maemo.org/showthread.php?t=30541 tmo discussion].
|- style=&quot;background:LightGreen&quot;
| 9.06-09
| [[Vendor Hardware Repositories]] - decide on sub-tasks for next sprint
| Should
| [http://maemo.org/profile/view/stskeeps/ Stskeeps]
| 100%
| Got a single task for X-Fade to do.
|- style=&quot;background:LightGreen&quot;
| 9.09-05
| Add source packages and repositories to packages interface
| Should
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 100%
| DONE
|- style=&quot;background:LightGreen&quot;
| 9.09-06
| Put Maemo 5 section for Downloads online
| Should
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 99%
| Will announce before summit
|- style=&quot;&quot;
| 9.09-07
| Fremantle documentation priorities investigation
| Should
| [http://maemo.org/profile/view/dneary/ dneary]
| 0%
| 
|- style=&quot;&quot;
| 9.06-14
| Plan for the OMAP2 acceleration [[Drivers justification|drivers]]
| Could
| [http://maemo.org/profile/view/qgil/ qgil]
| 15%
| TI contact has resources ready. They are getting access to the source code from TI and maemo in order to start the work. Sadly not much real progress. Ask TI in the Summit. ;)
|- style=&quot;&quot;
| 9.08-12
| Improve reporting feed appearance on sprint page
| Could
| [http://maemo.org/profile/view/feri/ Ferenc]
| 0%
| To liaise with [http://maemo.org/profile/view/jaffa/ Jaffa]
|- style=&quot;&quot;
| 9.04-08
| [[ITP]] process/workflow around [http://test.maemo.org/cgi-bin/itp.cgi prototype]
|Could
| [http://maemo.org/profile/view/jeremiah/ Jeremiah]
| 90%
|
|- style=&quot;background:LightGreen&quot;
| 9.09-08
| Add extra info fields from control files to interface
| Could
| [http://maemo.org/profile/view/xfade/ X-Fade]
| 100%
| Added icon and bugtracker
|- style=&quot;&quot;
| 9.09-09
| Build a testing mirror of repos
| Could
| [http://maemo.org/profile/view/jeremiah/ Jeremiah]
| 0%
| 
|- style=&quot;&quot;
| 9.09-10
| Implement SSO sync-API endpoint for garage
| Could
| [http://maemo.org/profile/view/danielwilms/ danielwilms]
| 0%
| 
|}

== Actions ==
* [http://maemo.org/profile/view/vdvsx/ VDVsx]: continue to promote [[Maemo Summit 2009|summit]]. - Done

== Activity log ==
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.

'' See latest sprint for activity ''</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org Sprints/Task:Implement new maemo.org layout and style</title>
    <id>1373</id>
    <revision>
      <id>9251</id>
      <timestamp>2008-12-09T13:54:59Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Maemo.org Sprints/Task:Implement new maemo.org layout and style]] moved to [[Task:Implement new maemo.org layout and style]]</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Implement new maemo.org layout and style]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org backlog</title>
    <id>873</id>
    <revision>
      <id>34338</id>
      <timestamp>2010-05-13T15:22:43Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">{{lowercase}}
These tasks are [[:Category:Accepted|accepted]] but not committed in the current sprint. Check also the  [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;component=Bugzilla&amp;component=Calendar&amp;component=Documentation&amp;component=Downloads&amp;component=Garage&amp;component=General&amp;component=News&amp;component=Profile&amp;component=Repositories&amp;component=Wiki&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=Medium&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= medium priority bugs]. Nothing stops you from pushing them, though.

{| class=&quot;wikitable sortable&quot;
! Added
! Task
! Owner
! Highlights
|-
|  || [https://bugs.maemo.org/show_bug.cgi?id=2495 Package search page]  || Jeremiah ||  Hacked a little on [http://test.maemo.org/cgi-bin/search.cgi this prototype.]
|-
|  || [[Task:3rd party bug tracking in bugs.maemo.org]] || - || 
|-
|  || [[Task:donation on download page]] || - || 
|-
| 2008-12-03 || [[Task:Collaboration infrastructure]] for a single project (e.g. Application Manager) || Eduardo || 
|-
| 2008-01-07 || Downloads redesign agreed || Niels ||
|-
| 2008-03-05 || [[Task:Reducing number of external repositories]] || Jeremiah || Contacted most owners. Had a lot of positive responses. People have mentioned that they think this should be a higher priority than just backlogged.
|-
| 2008-05-08 || Create [http://garage.maemo.org/projects/maemian/ Maemian] from Lintian || Jeremiah || Development has progressed, received sources from Nokia
|-
| 2009-05-31 || Make Maemo.org event calendar more social || Bergie || 
|-
| 2009-06-18 || [https://wiki.mozilla.org/Fennec Create a buildable, installable fennec package] || Jeremiah || Proposed as COULD for the June sprint. This is going to be a little tricky, but I think we definitely want this for Fremantle. I have had discussions with the Mozilla team and have contact info and a bit of a plan so I think this is realistic. Great opportunity to work with upstream here.
|-
| 2009-06 || [[Task:Publishing API docs|Modify library.gnome.org to use debs of docs, rather than building tar.gzs]] || dneary || Hopefully will be working with Fred Peters to get this done
|-
| 2009-06 || [[Task:Publishing API docs|Ensure library updated on Maemo release]] || dneary ||
|-
| 2010-04 || Change maemo.org search to a custom Google Search. See [http://talk.maemo.org/showthread.php?t=34422&amp;highlight=google+custom+search Reggie's proposal]. || ferenc ||
|-
| 2010-04 || [[Task:Git over ssh]] - implement git over ssh for garage projects || ferenc || Practically done, but there are some authentication issues that I am still working on. [[User:feri|feri]] 19:20, 10 May 2010 (UTC)
|-
| 2010-04 || [[Task:Garage facelift]] - implement the current maemo.org theme || ferenc ||
|-
| 2010-04 || [http://code.google.com/p/pubsubhubbub/ pubsubhubbub for Planet Maemo] || ferenc ||
|-
| 2010-04 || Allow commenting on Planet Maemo articles || ferenc ||
|-
| 2010-04 || Karma from vcs.maemo.org (git and svn) commits || ferenc ||
|-
| 2010-04 || [[Task:Karma details]] - add quick links to e.g. blog posts, email messages etc. that were written / done by the person in question || ferenc ||
|}

There are more tasks queuing in the [[Maemo.org_proposals|list of proposals]].

See also the [[Nemein backlog]] for a backlog of tasks which Nemein have committed to as part of their maintenance contract for maemo.org servers.


[[Category:Community]]
[[Category:maemo.org]]
[[Category:Sprints]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org coding competition 2012</title>
    <id>5209</id>
    <revision>
      <id>48322</id>
      <timestamp>2012-06-11T02:12:36Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Maemo.org coding competition 2012]] moved to [[Maemo.org Coding Competition 2012]]: Fixing capitalization</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo.org Coding Competition 2012]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org coding competition 2012</title>
    <id>5209</id>
    <revision>
      <id>48322</id>
      <timestamp>2012-06-11T02:12:36Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Maemo.org coding competition 2012]] moved to [[Maemo.org Coding Competition 2012]]: Fixing capitalization</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo.org Coding Competition 2012]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org coding competition 2012</title>
    <id>5209</id>
    <revision>
      <id>48322</id>
      <timestamp>2012-06-11T02:12:36Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Maemo.org coding competition 2012]] moved to [[Maemo.org Coding Competition 2012]]: Fixing capitalization</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo.org Coding Competition 2012]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org logo</title>
    <id>1291</id>
    <revision>
      <id>39018</id>
      <timestamp>2010-09-22T13:34:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>uploaded SVG version of logo</comment>
      <text xml:space="preserve">{{lowercase}}

* [[:Image:Logo maemo.svg|Final version of the maemo.org logo in .svg format]]
* [http://www.marceloeduardo.com/maemo_org/logo_maemo.ai Final version of the maemo.org logo in .ai format]
* [[:Image:Maemo_logo.pdf|Final version of the maemo.org logo in .pdf (editable) format]]
* [[:Image:Logo_1000x135.png|Final version of the maemo.org logo in .png format]]
* [[:Image:Logo_Manual.pdf|Logo manual and style guide]]


[[Category:Community]]
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org logo contest</title>
    <id>237</id>
    <revision>
      <id>33082</id>
      <timestamp>2010-04-19T14:32:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>summit link</comment>
      <text xml:space="preserve">{{lowercase}}

As the Maemo brand is being [[Task:Maemo brand|redefined]], maemo.org becomes clearly ''the space of collaboration of the Maemo community, organized around open source tools and ways of working''. A new &quot;maemo.org&quot; logo defined and produced by the community will embody the new values. Once selected, it will become the logo used in *.maemo.org and it will inspire a new web layout to be implemented this year.

== Results ==

After the [[Maemo.org logo contest submissions|many great entries]] recieved during the contest, the judges decided on this logo from [[User:Glaoliver|Glauber Olivier]] to represent the Maemo community:

[[Image:Maemo_org_logo.png]]

The Maemo web team will now proceed to update maemo.org to use [[Maemo.org_logo|this new logo]].

== Contest procedure ==

The logo contest was organized in the following terms:

* Design the new maemo.org logo
* Submit it before the 27th of July 2008
* Win a trip to OSiM World and the [[Maemo Summit 2008|Maemo Summit]] (Berlin, 17-19/Sep) + a Nokia N810 WiMAX Edition'''


=== Rules ===

Inspired by https://help.launchpad.net/logo/ (with some ideas integrated from http://wiki.apache.org/spamassassin/LogoContest)

* All maemo.org registered users can participate presenting one or more proposals under their name.
* All the proposals will be submitted by the authors publicly in this wiki.
* Logo submitters agree to licence their submissions under [http://creativecommons.org/licenses/by-nd/3.0/ Creative Commons BY-ND]. The submitter will keep ownership, and be credited as the designer of the logo.
* The deadline for submissions is 2008/07/27 23:59 UTC.
* No age restrictions apply to submission, but some prizes may not be feasible for underage contestants.
* One winner will be selected by a procedure to be defined by the community.
* Nokia employees may enter the competition, but are not eligible to receive a prize, in the event that they win. In the case a Nokia employee's submission is chosen, the prize will go to the runner-up.
* The winning logo should be original, and clear of trademark encumbrance.

=== Submission guidelines ===

* Logos must be available in a vector format (SVG, PDF, AI), but should be submitted as PNG.
* The size of the logo should be approximately 500 pixels on its longest axis.
* The winning logo will be used in contexts ranging from a small 16x16 favicon to a high quality t-shirt print, and should adapt well to all resolutions in between.
* &quot;maemo.org&quot; should be the only text used. It should be converted to paths in your vector format file.
* Fresh look recommended. No need to be tied to the current logo or maemo.org website design.
* The best logo will represent the values of the maemo.org community.
* Avoid any resemblance to Nokia fonts, color schemes or graphical elements.
* Avoid gradients, and prefer a small number of colours.

=== Post-contest ===
* The winner plus whoever else wants to help will develop also designs for a shirt and a sticker. Nokia will fund the production. They will be distributed in the Maemo Summit and other channels to be decided.

=== Procedure for submitting logos ===

Submitters must have a maemo account, and sign their entries in the wiki.

Submitters must follow the following procedure for submitting their logos:

# The logo will be uploaded to [[Special:Upload]]. Please name your images in this format:
 Maemo.org_logo_contest_&lt;your username&gt;[_&lt;entry number&gt;].png
and enter this into the summary:
 maemo.org logo contest entry from [[User:&lt;your username&gt;]]
# After the logo has been uploaded, the user should then add their submission to the bottom of [[maemo.org logo contest submissions]] in this format:
&lt;pre&gt;
=== &lt;your username&gt; ===
 
[[Image:Maemo.org_logo_contest_&lt;your username&gt;.png]]
&lt;/pre&gt;
or use the template created to do this for you:
&lt;pre&gt;
{{Logo entry|&lt;your username&gt;}}
&lt;/pre&gt;
[[Maemo.org_logo_contest_submissions|For example]], [[User:GeneralAntilles]]'s submission would be uploaded here: [[:Image:Maemo.org_logo_contest_GeneralAntilles.png]], and his entry would look like:
&lt;pre&gt;
{{Logo entry|GeneralAntilles}}
&lt;/pre&gt;

Users submitting several entries should use a gallery, like this:
&lt;pre&gt;

=== username ===

&lt;gallery widths=&quot;300px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo.org_logo_contest_[username]_1.png|Caption 1
Image:Maemo.org_logo_contest_[username]_2.png|Caption 2
Image:Maemo.org_logo_contest_[username]_3.png|Caption 3
&lt;/gallery&gt;
&lt;/pre&gt;

which will result in something like this:

=== Example username ===

&lt;gallery widths=&quot;300px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo.org_logo_contest_sample1_bundyo.png|Caption 1
Image:Maemo.org_logo_contest_sample2_bundyo.png|Caption 2
Image:Maemo.org_logo_contest_sample3_bundyo.png|Caption 3
&lt;/gallery&gt;


[[Category:Community]]
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org logo contest submissions</title>
    <id>249</id>
    <revision>
      <id>30497</id>
      <timestamp>2010-03-04T15:21:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>expunge [[Template:Logo entry]]</comment>
      <text xml:space="preserve">{{lowercase}}

This page contains submissions for the [[maemo.org logo contest]]. The contest is now closed. The closing date for entries was the 27th of July, 2008. For rules and submission guidelines, please see [[maemo.org_logo_contest|the contest page]].

== Entries for maemo.org logo contest ==

=== attila ===

&lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_attila_1.png|Maemo Butterfly (shadows)
Image:Maemo.org_logo_contest_attila_2.png|Maemo Butterfly (no shadows)
Image:Maemo.org_logo_contest_attila_3.png‎|Maemo Butterfly Inverse (shadows)
Image:Maemo.org_logo_contest_attila_4.png‎|Maemo Butterfly Inverse (no shadows)
&lt;/gallery&gt;

=== deadknight88 ===

&lt;gallery widths=&quot;300px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo.org logo contest deadknight88 1-transmission.png | wifi-transmission
Image:Maemo.org logo contest deadknight88 2-key.png | key to future!!
Image:Maemo.org logo contest deadknight88 3-key2.png | key2
Image:Maemo.org logo contest deadknight88 4 - dashed.png | dashed
Image:Maemo.org_logo_contest_deadknight88_5-dashed2.png | dashed2
Image:Maemo.org logo contest deadknight88 6-digital.png | digital
Image:Maemo.org logo contest deadknight88 7-darkblue&amp;lime.png | darkblue&amp;lime
Image:Maemo.org_logo_contest_deadknight88_66.png
Image:Maemo.org_logo_contest_deadknight88_67.png
Image:Maemo.org_logo_contest_deadknight88_68.png
Image:Maemo.org_logo_contest_deadknight88_70.png
Image:Maemo.org_logo_contest_deadknight88_102.png
Image:Maemo.org_logo_contest_deadknight88_130.png | Community presentation
Image:Maemo.org_logo_contest_deadknight88_140.png | 
&lt;/gallery&gt;

=== crawfordm ===

&lt;gallery widths=&quot;650px&quot; perrow=&quot;1&quot;&gt;
Image:Maemo.org_logo_contest_crawfordm_1.png|Signifying community and wireless technology.
&lt;/gallery&gt;

=== thiercito ===
Less is More concept of the maemo.org logo. By adapting the letter &quot;a&quot; into the &quot;e&quot; we are suggesting the versatility and adaptiveness of the maemo platform
&lt;gallery widths=&quot;500px&quot; × perrow=&quot;1&quot;&gt;Image:Maemo.org_logo_contest_Thiercito.png‎&lt;/gallery&gt;
&lt;gallery widths=&quot;500px&quot; × perrow=&quot;1&quot;&gt;Image:Maemo.org_logo_contest_Thiercito7.jpg‎&lt;/gallery&gt;
&lt;gallery widths=&quot;500px&quot; × perrow=&quot;1&quot;&gt;Image:Maemo.org_logo_contest_Thiercito8.jpg&lt;/gallery&gt;

=== jobelium ===
I did that with free font and a lot of fun ! :p

NB: Most of then can be colored differently.

J'ai fait cela avec des fonts gratuits et beaucoup de plaisir ! ;)

NB:la couleur de la majorité de mes logos peut être modifié.


PS: im a frenchspeaker, sory for the inconveniant!   
&lt;gallery heights=&quot;100px&quot; widths=&quot;250px&quot; perrow=&quot;3&quot;&gt;

Image:Maemo.org_logo_contest_jobelium_32.png |the nerds glass logo's
Image:Maemo.org_logo_contest_jobelium_32_ts.png |t-shirt version
Image:Maemo.org_logo_contest_jobelium_32_i.png |the icon version
Image:Maemo.org_logo_contest_jobelium_38.png |red version of the nerds glass logo's
Image:Maemo.org_logo_contest_jobelium_38_ts.png |t-shirt version
Image:Maemo.org_logo_contest_jobelium_38_i.png |the icon version
Image:Maemo.org_logo_contest_jobelium_25.png |this his the modified version &quot;integrate .org&quot;
Image:Maemo.org_logo_contest_jobelium_25_ts.png |t-shirt version
Image:Maemo.org_logo_contest_jobelium_25_i.png |the icon version 



Image:Maemo.org_logo_contest_jobelium_29.png |the big AE square style in blue color with the &quot;org&quot; under de &quot;maemo&quot; on yellow background
Image:Maemo.org_logo_contest_jobelium_29_ts.png |tshirt version
Image:Maemo.org_logo_contest_jobelium_29_i.png |the icon version
Image:Maemo.org_logo_contest_jobelium_34.png |&quot;big AE square style&quot; straighted.
Image:Maemo.org_logo_contest_jobelium_34_ts.png |t-shirt version
Image:Maemo.org_logo_contest_jobelium_34_i.png |the icon version
Image:Maemo.org_logo_contest_jobelium_41.png | red version with 
Image:Maemo.org_logo_contest_jobelium_41_ts.png |t-shirt version
Image:Maemo.org_logo_contest_jobelium_41_i.png |the icon version
Image:Maemo.org_logo_contest_jobelium_39.png |the O upper the M represente a buddy with wireless communication (telepathy?)
Image:Maemo.org_logo_contest_jobelium_39_ts.png |t-shirt version (both logo can be in front)
Image:Maemo.org_logo_contest_jobelium_39_i.png |the icon version
Image:Maemo.org_logo_contest_jobelium_40.png |a variant with only the head of the buddy,and also look like a tablet with wireless!
Image:Maemo.org_logo_contest_jobelium_40_ts.png |t-shirt version (both logo can be in front)
Image:Maemo.org_logo_contest_jobelium_40_i.png |the icon version
Image:Maemo.org_logo_contest_jobelium_44.png |this is a concept of the fusion of the letter A E O.
Image:Maemo.org_logo_contest_jobelium_44_ts.png |t-shirt version
Image:Maemo.org_logo_contest_jobelium_44_i.png |the icon version
Image:Maemo.org_logo_contest_jobelium_47.png |an alternate version of &quot;the fusion of the letter A E O&quot; logo.
Image:Maemo.org_logo_contest_jobelium_47_ts.png |t-shirt version (both logo can be in front)
Image:Maemo.org_logo_contest_jobelium_47_i.png |the icon version
Image:Maemo.org_logo_contest_jobelium_48.png |this is the &quot;o under the word maem(o)&quot; with the .org into the O.
Image:Maemo.org_logo_contest_jobelium_48_ts.png |t-shirt version (both logo can be in front)
Image:Maemo.org_logo_contest_jobelium_48_i.png |the icon version
Image:Maemo.org_logo_contest_jobelium_4.png |this is the &quot;o under the word maem(o)&quot; with green on black.
Image:Maemo.org_logo_contest_jobelium_4_ts.png |t-shirt version (both logo can be in front)
Image:Maemo.org_logo_contest_jobelium_4_i.png |the icon version
Image:Maemo.org_logo_contest_jobelium_8.png |this is a variant of &quot;the O under the word maem(o)&quot; logo.
Image:Maemo.org_logo_contest_jobelium_8_ts.png |the t-shirt version (both logo can be  in front)
Image:Maemo.org_logo_contest_jobelium_8_i.png |the icon version
&lt;/gallery&gt;

=== rsperberg ===
Some thoughts behind the design posted [http://www.internettablettalk.com/forums/showthread.php?p=195266&amp;postcount=35 at Internet Tablet Talk]. The &quot;M&quot; in the first logo, the &quot;g&quot; in the latter can be tweaked to satisfy everyone. Enjoy!  Roger
&lt;gallery widths=&quot;520px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_rsperberg_1.png|Re-using Karoliina's original color scheme
Image:Maemo.org_logo_contest_rsperberg_2.png|More logo-like
Image:Maemo.org_logo_contest_rsperberg_6.png|Maemo.org isn't a company but a group of people who all contribute toward the same goal. So you don't get &quot;machined&quot; results. But a lot of the vibrancy comes from the non-automaton approach that is the essence of Linux and the FOSS movement.
Image:Maemo.org_logo_contest_rsperberg_5.png|Version with splashier colors (but any could be used). The handlettering is available as a font so that it can be used for tabs, titles and such in the wiki redesign.
Image:Maemo.org_logo_contest_rsperberg_7.png|When a horizontal layout is inappropriate, a square form can be used instead.
Image:Maemo.org_logo_contest_rsperberg_8.png|The square form with splashier colors. Favicon could use &quot;m.o&quot; or just &quot;m&quot; to remain readable, in the color scheme chosen, of course.&lt;/gallery&gt;

=== GarethLWalt ===
&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_garethlwalt_2b.png|Custom typography. The lettering on this logo was created carefully on a grid. The color and outline are examples.
Image:Maemo.org_logo_contest_garethlwalt_2c.png|White background alternative.
Image:Maemo.org_logo_contest_garethlwalt_3.png|Focus on wireless.
Image:Maemo.org_logo_contest_garethlwalt_4.png|Alternative typography.
Image:Maemo.org_logo_contest_garethlwalt_5.png|Plain, simple, limitless.
Image:Maemo.org_logo_contest_garethlwalt_7.png|Boxed.
Image:Maemo.org_logo_contest_garethlwalt_8.png|Boxed alternative.
Image:Maemo.org_logo_contest_garethlwalt_9.png|Alternative to a previously removed image (due to a resemblance to another company's logo. More info in the [http://wiki.maemo.org/Talk:Maemo.org_logo_contest_submissions Discussion].)
Image:Maemo.org_logo_contest_garethlwalt_10.png|Modern typeface with alternate underlines.
&lt;/gallery&gt;

=== baksiidaa ===

&lt;gallery widths=&quot;300px&quot; heights=&quot;300px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo.org_logo_contest_baksiidaa_1.png
Image:Maemo.org_logo_contest_baksiidaa_2.png
Image:Maemo.org_logo_contest_baksiidaa_3.png
&lt;/gallery&gt;

=== joeaguy ===

&lt;gallery widths=&quot;300px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo.org_logo_contest_joeaguy_1.png|Bitmap with negative space, wide.  Big, bold, technical, with a soft edge.
Image:Maemo.org_logo_contest_joeaguy_2.png|Bitmap with negative space, narrow.  Minimalist pixel theater.
Image:Maemo.org_logo_contest_joeaguy_3.png|Bitmap with negative space, narrow and inverse.  Now is the time on Sprockets when we dance.
&lt;/gallery&gt;

=== Narbat ===

Variations on a theme, using different fonts. The &quot;ae&quot; in &quot;maemo&quot; seems to stand out, so I wanted to incorporate that into the design. I also wanted to incorporate something about what the platform ''is'', hence the globe and wifi signal bars.  These logos can be used with the full &quot;maemo.org&quot; spelled out, or just the globe and &quot;ae&quot; portion for when something narrower is needed.  In the variations you can see what the logo looks like in monochrome, and how it looks as a 16x16 favicon.  This logo uses only four colors (blue, green, orange, and black) with no gradients or dithering, which makes it easy to silk-screen onto a t-shirt.
&lt;gallery widths=&quot;300px&quot; heights=&quot;100px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo_org_logo_contest_narbat_11.png|Font A
Image:Maemo_org_logo_contest_narbat_11v.png|Font A Variations
Image:Maemo_org_logo_contest_narbat_12.png|Font B
Image:Maemo_org_logo_contest_narbat_12v.png|Font B Variations
Image:Maemo_org_logo_contest_narbat_13.png|Font C
Image:Maemo_org_logo_contest_narbat_13v.png|Font C Variations
Image:Maemo_org_logo_contest_narbat_14.png|Font D
Image:Maemo_org_logo_contest_narbat_14v.png|Font D Variations
Image:Maemo_org_logo_contest_narbat_15.png|Font E
Image:Maemo_org_logo_contest_narbat_15v.png|Font E Variations
&lt;/gallery&gt;

=== jussi ===

'''The basic idea:''' The dots represent the many parts which make up the community, and together they form the ae-ligature and a moebius strip, to signify the infinite possibilities of collaboration.



I started over a little.
After coming back a while later and looking at my submissions, this is what I thought. 

- After looking at it again; I felt like the ae-ligature didn't really work as it was. It is not 100% clear, and it doesn't work nicely with the typography; and I don't think it will in the current dot format.

- I still liked the moebius strip formed of dots, though, which I think is a strong idea which works really well in this context, so I decided to keep it.

- I wanted the logo to be &quot;nicer&quot;, friendlier, more organic. That is more what a community is like, not something digital, gridded and rough.

- This also applied to the colours. A cooler, smoother colour would be better than an agressive orange.

- The typography was changed to one that has a little more character.


Updated as of july 26.


&lt;gallery perrow=&quot;2&quot; widths=&quot;500&quot; heights=&quot;300&quot; border=&quot;0&quot;&gt;
Image:Maemo.org_logo_contest_jussi_-101-.png|Main logo
Image:Maemo.org_logo_contest_jussi_-102-.png|Negative
Image:Maemo.org_logo_contest_jussi_-103-.png|Alternative version (for vertically challenged placing), and black and white.
Image:Maemo.org_logo_contest_jussi_-104-.png|Just the icon! (with a touch of gradient) 
Image:Maemo.org_logo_contest_jussi_-105-.png|Alternative colours.   
Image:Maemo.org_logo_contest_jussi_-106-.png|By popular(?) demand. I kinda like it, but it's not as clear as the other ones.  
&lt;/gallery&gt;

(the old ones are on the [[Talk:Maemo.org_logo_contest_submissions#jussi | talk page]])

=== calderov ===
&lt;gallery widths=&quot;472px&quot; perrow=&quot;1&quot;&gt;
Image:Maemo.org_logo_contest_calderov_01.png|I hope you like this ^^.
&lt;/gallery&gt;

=== chrismtn ===
&lt;gallery widths=&quot;258px&quot; perrow=&quot;1&quot;&gt;
Image:maemo_org_logo_contest_chrismtn_001.png| Have fun!.
&lt;/gallery&gt;

=== convulted ===

&lt;gallery widths=&quot;300px&quot; perrow=&quot;1&quot;&gt;
Image:Maemo.org_logo_contest_convulted.png|Maemo.org
&lt;/gallery&gt;

=== rsuplido ===
[http://en.wikipedia.org/wiki/Helvetica Helvetica] is used on all logos, my favorite font. All logos use orange-red as the background but can be anything. I hope you enjoy them. --[[User:rsuplido|Reggie]] 13:45, 21 June 2008 (UTC)
&lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_rsuplido_1.png|Morse Code: Simple and sharp. I added the [http://en.wikipedia.org/wiki/Morse_code morse code] version of 'maemo' at the bottom to signify a classic sense of 'communication.' Click image for a sharper version of the logo.
Image:Maemo.org_logo_contest_rsuplido_2.png|Zen: maemo is syllabicated and placed inside a [http://en.wikipedia.org/wiki/Enso Zen Enso symbol]. Parts of 'maemo' and '.org' touch the circle. Circle is intentionally broken since &quot;imperfection is an essential and inherent aspect of existence.&quot; Click image for a sharper version of the logo.
Image:Maemo.org_logo_contest_rsuplido_3.png|Syntax 1: maemo.org is represented in a [http://en.wikipedia.org/wiki/Syntax_diagram Syntax diagram]. It somehow shows that maemo can be open source via the '.org' or can be bypassed, maybe to signify commercial apps. Click image for a sharper version of the logo.
Image:Maemo.org_logo_contest_rsuplido_4.png|Syntax 2: maemo.org is represented in a [http://en.wikipedia.org/wiki/Syntax_diagram Syntax diagram]. A playful version to represent an infinite loop -- a never-ending maemo community discussion. Click image for a sharper version of the logo.
&lt;/gallery&gt;

=== Cas ===
&lt;gallery widths=&quot;300px&quot; perrow=&quot;1&quot;&gt;
Image:Maemo.org_logo_contest_Cas-1-.png‎ | Sorry about the amount of gradients also using the old Color scheme 
&lt;/gallery&gt;

=== furrball ===

&lt;gallery widths=&quot;300px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo.org_logo_contest_furrball1.png|I didn't actually set off to create something that looks so much like the contacts icon. This is just what came to mind when I thought of a collaborative process and these colors are what looked best after trying many combinations.
Image:Maemo.org_logo_contest_furrball2.png|The blue and orange were my second choice so I included them. I felt the styled &quot;e&quot; should stay as a nod to the past, contrasted by the sharp angled font on the word &quot;maemo&quot; and coming together for something similar but unlike either in the &quot;RG&quot; of org. Perhaps I thought about it a bit too much :)
&lt;/gallery&gt;

=== michael ===

&lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_michael-_12-.png
Image:Maemo.org_logo_contest_michael-_03-.png
Image:Maemo.org_logo_contest_michael-_06-.png
Image:Maemo.org_logo_contest_michael-_11-.png
Image:Maemo.org_logo_contest_michael-_07-.png
Image:Maemo.org_logo_contest_michael-_13-.png
Image:Maemo.org_logo_contest_michael-_08-.png
Image:Maemo.org_logo_contest_michael-_09-.png
Image:Maemo.org_logo_contest_michael-_01-.png
Image:Maemo.org_logo_contest_michael-_02-.png
Image:Maemo.org_logo_contest_michael-_04-.png|Variation on n.06
Image:Maemo.org_logo_contest_michael-_10-.png|Variation on n.11
Image:Maemo.org_logo_contest_michael-_05-.png
&lt;/gallery&gt;

=== femorandeira ===

&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_femorandeira_1.png|Geometric shapes that scale well and Tango colors for a robotic look.
Image:Maemo.org_logo_contest_femorandeira_2.png|Similar to the previous one, but with fancy gradients.
Image:Maemo.org_logo_contest_femorandeira_10.png|A geometric and old school look.
Image:Maemo.org_logo_contest_femorandeira_9.png|Some gradients and reflections for the web.
&lt;/gallery&gt;

=== angun33 ===
&lt;gallery widths=&quot;350px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_angun33_1.png|Community connected
Image:Maemo.org_logo_contest_angun33_2.png|Using different icons for representation of the people (community)
Image:Maemo.org_logo_contest_angun33_3.png|3D look version
Image:Maemo.org_logo_contest_angun33_4.png|Just for fun the logo on the t-shirt. Showing different people come together for maemo :)
Image:Maemo.org_logo_contest_angun33_5.png|OK another version with the icon as a person figure now
Image:Maemo.org_logo_contest_angun33_6.png|3D look version
&lt;/gallery&gt;

=== wazd ===
Hello. I had some troubles with &quot;Maemo.org&quot; name so I used &quot;Maemo-org&quot; instead. Sorry for that. &lt;br&gt; Logo symbolizes I think all of the community aspects. A not childish but not too old (as our community is) human (as a main part of the community) spread his hands to all the people (we are welcome to everyone) and same time he breaks the borders and reaches the outer perspectives (same thing that we do in our open source world without any limitations) By the way &quot;open source&quot; is nicely integrated here too. His head shines bright with ideas in all ways like the sun. And if you'll place two logos near, people will look like they shaking hands. Logo can be anycoloured, but I prefer blue cause it's very calm for website design :) Whew, I'm done :)
&lt;gallery widths=&quot;300px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo-org_logo_contest_wazd.png|Full logo
Image:Maemo-org_logo_contest_wazd_2.png|Slightly simplified (maybe better)
Image:Maemo-org_logo_contest_wazd_3.png‎|Usage example :) 
Image:Maemo-org_logo_contest_wazd_4.png‎|Slightly improved logo, now Maemo Guy is looking forward into the future. I've removed visual division between maemo and org because community is in close touch with platform. Some fancy senseless gradient also added :)
Image:Maemo-org_logo_contest_wazd_5.png‎|Minimalistic style. This looks like mathematic function that represents unity of Maemo platform and Maemo Community. Some &quot;wireless smell&quot; also added :)
[[Image:Example.jpg]]
&lt;/gallery&gt;

=== rrainist ===
&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_rrainist_1.png|In the first version, the open community acts like a forum/shelter, lifting the maemo up. 
Image:Maemo.org_logo_contest_rrainist_2.png|In the second version, the open community acts like a foundation, pushing the maemo upwards. :)
&lt;/gallery&gt;



=== polyxena ===
&lt;gallery widths=&quot;500px&quot; perrow=&quot;1&quot;&gt;
Image:Maemo.org_logo_contest_polyxena_1.png| keyboard letters! (the .org part could be in alternate colors - I orginally used orange to mimic the WiMax version I am so eagerly awaiting but then decided not to tie it so explicitly to that)
Image:Maemo.org_logo_contest_polyxena_2.png| vresion 1 of maemo and org co-joined through the linked Os
Image:Maemo.org_logo_contest_polyxena_3.png| version 2 - with wireless added and showing an alternate color
Image:Maemo.org_logo_contest_polyxena_4.png| version 3 - with .org in casual writing to reflect the community
&lt;/gallery&gt;

=== blaxnux ===
&lt;gallery widths=&quot;500px&quot; perrow=&quot;1&quot;&gt;
Image:Maemo.org_logo_contest_blaxnux1-hand_ok_sign.png| An OK Sign. The code is on your hands anyway... :P The OK sign is the faveicon.
Image:Maemo.org_logo_contest_blaxnux2-bricky.png| Brick that glow without grads or blurs. Mind-tricky aura. :P The blue AE is the faveicon.
&lt;/gallery&gt;


=== mrunx ===
Variations on a Maemo &quot;good vibes&quot; theme...
* Typography used: &quot;Domestic Manners&quot;, a Public Domain/GPL font by Dustismo
&lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_mrunx_1.png
Image:Maemo.org_logo_contest_mrunx_2.png
Image:Maemo.org_logo_contest_mrunx_3.png
Image:Maemo.org_logo_contest_mrunx_4.png
Image:Maemo.org_logo_contest_mrunx_5.png
Image:Maemo.org_logo_contest_mrunx_6.png
&lt;/gallery&gt;


=== firebird8 ===
&lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_firebird8_0.png|&quot;Openess, Creativity, and Direction&quot;
Image:Maemo.org_logo_contest_firebird8_1.png|&quot;Simple&quot;
&lt;/gallery&gt;

=== aakash121 ===

&lt;gallery widths=&quot;500px&quot; perrow=&quot;1&quot;&gt;
Image:Maemo.org_logo_contest_aakash121.png|Dispersal
&lt;/gallery&gt;


=== shivankan ===

&lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_shivankan_01.png|Characterization - bringing in a life element
Image:Maemo.org_logo_contest_shivankan_02.png|O.O
Image:Maemo.org_logo_contest_shivankan_03.png|maemo dot org
Image:Maemo.org_logo_contest_shivankan_04.png|maemo as an org
Image:Maemo.org_logo_contest_shivankan_05.png|can see a version of TUX / individual's (live orange) contribution to the maemO.Org (the big circle with a concentrating dot at center - focus)
&lt;/gallery&gt;

=== sohle ===
 
&lt;gallery widths=&quot;300px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo.org_logo_contest_sohle_1.png|1: Easy to read font, only two different colors, abstract people building the logo from the left and right side (symbolizes the community)
Image:Maemo.org_logo_contest_sohle_2.png|2: Same theme, different font
Image:Maemo.org_logo_contest_sohle_3.png|3: Same theme as submission 2 but with bold &quot;ae&quot;
Image:Maemo.org_logo_contest_sohle_4.png|4: Same theme as 1 but green
Image:Maemo.org_logo_contest_sohle_5.png|5: Same theme as 2 but green
Image:Maemo.org_logo_contest_sohle_6.png|6: Same theme as 5 but with bold &quot;ae&quot;
Image:Maemo.org_logo_contest_sohle_7.png|7: Small versions of 1, 2, 3 (for stickers, pins, etc.)
Image:Maemo.org_logo_contest_sohle_8.png|8: Small versions of 4, 5, 6
Image:Maemo.org_logo_contest_sohle_9.png|9: Alternative small versions
&lt;/gallery&gt;

=== underscore ===
Two versions of each image were submitted in case there was an issue using the Nokia stylus in the logo. I substituted a generic stylus into the second image. Hopefully this wont cause any complications. :) *I have the images available without gradients as well, if that becomes an issue.
:The ideas is cool and personaly I like the little man drawing. However, an issue to consider here is that Maemo-the-software is moving towards thumb/finger use as default, being a stylus a secondary case. In my opinion this concept wouldn't survive the next Maemo releases...--[[User:qgil|qgil]] 06:45, 27 June 2008 (UTC) 
&lt;gallery widths=&quot;500&quot; heights=&quot;400&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_underscore_1.png|The person drawing the Maemo.org logo shows that members of the community can make contributions to Maemo. M can be used as a favicon.
Image:Maemo.org_logo_contest_underscore_2.png|With generic stylus.
Image:Maemo.org_logo_contest_underscore_3.png|Emphasizes the use of a stylus in Maemo linux. The touchscreen feature is the most important feature to me.
Image:Maemo.org_logo_contest_underscore_4.png|With generic stylus.
Image:Maemo.org_logo_contest_underscore_5.png|This is a variation of entries 3 and 4. It's a bit more complex, but I think it looks nicer. If the judges are leaning towards a simpler look to the logo, then 3 or 4 would be better.
Image:Maemo.org_logo_contest_underscore_6.png|With generic stylus.
&lt;/gallery&gt;
[[Image:Maemo.org_logo_contest_underscore_7.png]] This is a possible favicon for entries 3, 4, 5, and 6.

=== eemaju ===
The purpose was to emphasize strong and happy colors and humane factors. Bright color was selected to gain more visibility, and orange contains legacy from maemo perspective. Fingerprint is driven by the presence of touch, as well as the font face which looks like that it is hand drawn. Tried to remove everything that can be considered &quot;technical&quot;.

&lt;gallery widths=&quot;300px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo.org_logo_contest_eemaju_1.png|Maemo fingerprint
Image:Maemo.org_logo_contest_eemaju_2.png|Maemo fingerprint inverted
Image:Maemo.org_logo_contest_eemaju_5.png|T-shirt example 1
Image:Maemo.org_logo_contest_eemaju_4.png|T-shirt example 2
Image:Maemo.org_logo_contest_eemaju_6.png|Icon
&lt;/gallery&gt;

=== lav4you ===


Maemo.org This name and logo is created keeping in the mind that now maemo can handles more and more complex apllication and processes, e of maemo articulates that complexity of it and the integrity among the community and developer with fresh illusive look. I hope you will like it.


&lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_lav4you_1.png| Name1
Image:Maemo.org_logo_contest_lav4you_2.png| Icon1
Image:Maemo.org_logo_contest_lav4you_3.png| Name2
Image:Maemo.org_logo_contest_lav4you_4.png| Icon2
Image:Maemo.org_logo_contest_lav4you_8.png| Name3
Image:Maemo.org_logo_contest_lav4you_6.png| Icon3
Image:Maemo.org_logo_contest_lav4you_7.png| Name4
Image:Maemo.org_logo_contest_lav4you_5.png| Name5
&lt;/gallery&gt;



Here joint m indicates the integrity between man (Developer Community &amp; users), maemo and mobile.


&lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_lav4you_10.png| Name6
Image:Maemo.org_logo_contest_lav4you_9.png| Icon4
&lt;/gallery&gt;



Below design reflect the horizon at which Maemo stands. Its simplicity and usability is indicated in the form of illusive teddy bear look, M with the butterfly effect indicates the open source community philosophy. Its rareness is indicated by illusive panda effect,integrity and sharing between community members is indicated through joint OO effect and popularity of Maemo is reflected in these catchy icon.


&lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_lav4you_11.png| Name7
Image:Maemo.org_logo_contest_lav4you_17.png| Icon5
Image:Maemo.org_logo_contest_lav4you_15.png| Name8
Image:Maemo.org_logo_contest_lav4you_16.png| Icon6
Image:Maemo.org_logo_contest_lav4you_13.png| Name9
Image:Maemo.org_logo_contest_lav4you_20.png| Icon7
Image:Maemo.org_logo_contest_lav4you_12.png| Name10
Image:Maemo.org_logo_contest_lav4you_18.png| Icon8
Image:Maemo.org_logo_contest_lav4you_28.png| Name11
Image:Maemo.org_logo_contest_lav4you_19.png| Icon9
&lt;/gallery&gt;



In these design the butterfly effect reflects the open source community philosophy. Different colors in butterfly wings or M articulates the wide application of Maemo software, its mobility aspects and different culture of developers and users.


&lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_lav4you_21.png| Name12
Image:Maemo.org_logo_contest_lav4you_22.png| Icon10
Image:Maemo.org_logo_contest_lav4you_24.png| Name13
Image:Maemo.org_logo_contest_lav4you_25.png| Icon11
Image:Maemo.org_logo_contest_lav4you_23.png| Name14
Image:Maemo.org_logo_contest_lav4you_26.png| Icon12
Image:Maemo.org_logo_contest_lav4you_14.png| Name15
Image:Maemo.org_logo_contest_lav4you_27.png| Icon13
&lt;/gallery&gt;

=== pixel6784 ===

&lt;gallery widths=&quot;500px&quot; heights=&quot;320&quot; perrow=&quot;1&quot;&gt;
Image:Maemo.org_logo_contest_pixel6784_1.png|Large size Logo email me at pixel_6784@yahoo.com
Image:Maemo.org_logo_contest_pixel6784_2.png|Large size Logo with Silhouette and 16x16 favicon
&lt;/gallery&gt;


=== gavren ===
&lt;gallery widths=&quot;500px&quot;&gt;
Image:Maemo.org_logo_contest_gavren_01.png
&lt;/gallery&gt;

=== charbucks ===
&lt;gallery widths=&quot;500px&quot;&gt;
Image:Maemo-org logo contest charbucks-1-.png
&lt;/gallery&gt;

=== affonso ===
This logo focus on transmitting two of the key concepts of maemo.org: team work and freedom. To illustrate these ideas the typography was drawn with characters that varies on rotation and size but at the same time supersedes it other and sharing the same place. --Abraão Affonso @ OpenBossa Design Team (http://www.openbossa.org)
&lt;gallery widths=&quot;500&quot; heights=&quot;250&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_affonso_1.png|Fluffy render
Image:Maemo.org_logo_contest_affonso_1_tshirts.png|t-shirts
Image:Maemo.org_logo_contest_affonso_1_using.png‎|Flat render with color variations and icons.
Image:Maemo.org_logo_contest_affonso_1_accessories.png‎|Gift suggestions
&lt;/gallery&gt;
&lt;br/&gt;
&lt;br/&gt;
This logo aims to highlight though simple forms the most important characteristics of Maemo.org like the sense of community and spirit of innovation. It also transmits the feeling of continuity, one of the keys to open source success, by using a custom font that mimics  the word &quot;maemo&quot; as it would like if written with a single stroke. --Abraão Affonso @ OpenBossa Design Team (http://www.openbossa.org)
&lt;gallery widths=&quot;500&quot; heights=&quot;250&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_affonso_2.png|Flat render
Image:Maemo.org_logo_contest_affonso_2_tshirts.png|t-shirts
Image:Maemo.org_logo_contest_affonso_2_using.png‎|Flat render with color variations and icons.
Image:Maemo.org_logo_contest_affonso_2_accessories.png‎|Gift suggestions
&lt;/gallery&gt;

=== glaoliver ===
Simplicity and connectivity were the main concepts used to design this logo. Though its elegant forms and precise use of color represents some of the basic valors of maemo.org: like creativity. stability and cleverness, something that can be trust. --Glaubert Oliveira @ OpenBossa Design Team (http://www.openbossa.org)
&lt;gallery widths=&quot;500&quot; heights=&quot;250&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_glaoliver_1.png|Fluffy render
Image:Maemo.org_logo_contest_glaoliver_1_tshirts.png|t-shirts
Image:Maemo.org_logo_contest_glaoliver_1_using.png‎|Flat render with color variations and icons.
Image:Maemo.org_logo_contest_glaoliver_1_accessories.png‎|Gift suggestions
&lt;/gallery&gt;
&lt;br/&gt;
&lt;br/&gt;
The idea behind this logo is about continuity and improvement of a process, it reflects how maemo.org acts as a bridge uniting people who share the same objectives and goals. --Glaubert Oliveira @ OpenBossa Design Team (http://www.openbossa.org)
&lt;gallery widths=&quot;500&quot; heights=&quot;250&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_glaoliver_2.png|Flat render
Image:Maemo.org_logo_contest_glaoliver_2_tshirts.png|t-shirts
Image:Maemo.org_logo_contest_glaoliver_2_using.png‎|Flat render with color variations and icons.
Image:Maemo.org_logo_contest_glaoliver_2_accessories.png‎|Gift suggestions
&lt;/gallery&gt;
&lt;br/&gt;
&lt;br/&gt;
This logo is based on the relationship, evolution and continuous effort of the maemo community to attain better solutions and products in less time. It also transmits trough it typography and discreet use of  color the idea of technology, movement and boldness. --Glaubert Oliveira @ OpenBossa Design Team (http://www.openbossa.org)
&lt;gallery widths=&quot;500&quot; heights=&quot;250&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_glaoliver_3.png|Flat render
Image:Maemo.org_logo_contest_glaoliver_3_tshirts.png|t-shirts
Image:Maemo.org_logo_contest_glaoliver_3_using.png‎|Flat render with color variations and icons.
Image:Maemo.org_logo_contest_glaoliver_3_accessories.png‎|Gift suggestions
&lt;/gallery&gt;

=== peres ===
This logo focus on the technological and sharing aspects of maemo.org, It represents the bound and the energy that constantly flows from the point where the platform  meets the community. --Miguel Peres @ OpenBossa Design Team (http://www.openbossa.org)
&lt;gallery widths=&quot;500&quot; heights=&quot;250&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_peres_1.png|Fluffy render
Image:Maemo.org_logo_contest_peres_1_tshirts.png|t-shirts
Image:Maemo.org_logo_contest_peres_1_using.png‎|Flat render with color variations and icons.
Image:Maemo.org_logo_contest_peres_1_accessories.png‎|Gift suggestions
&lt;/gallery&gt;
&lt;br/&gt;
&lt;br/&gt;
This logo emphasizes some of the principals aspects and objectives of the maemo community like sharing/reuse, technology and improvement. It transmits a solid aspect and at the same time illustrates something flexible with parts that can be easily rearranged. Its unique and simple typography aims to look clear in different sizes and resolutions and has also a hidden catch to make &quot;maemo.org&quot; easy to remember, representing some of the fun and joy of being part of this community. --Miguel Peres @ OpenBossa Design Team (http://www.openbossa.org)
&lt;gallery widths=&quot;500&quot; heights=&quot;250&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_peres_2.png|Flat render
Image:Maemo.org_logo_contest_peres_2_tshirts.png|t-shirts
Image:Maemo.org_logo_contest_peres_2_using.png‎|Flat render with color variations and icons.
Image:Maemo.org_logo_contest_peres_2_accessories.png‎|Gift suggestions
&lt;/gallery&gt;

=== nazo===
This logo is simple and clean. It's easy and economic for producing promotional gifts and brochures as it contains two colours.
&lt;gallery widths=&quot;300&quot; heights=&quot;200&quot; perrow=&quot;2&quot;&gt;
Image:ImageMaemo.org_logo_contest_nazo_logo.png|Logo and icon
Image:ImageMaemo.org_logo_contest_nazo_tshirt_A.png|Tshirt
&lt;/gallery&gt;
&lt;gallery widths=&quot;300&quot; heights=&quot;200&quot; perrow=&quot;2&quot;&gt;
Image:ImageMaemo.org_logo_contest_nazo_logoB.png|Logo and icon
&lt;/gallery&gt;


=== setan_666 ===
&lt;gallery widths=&quot;500px&quot; perrow=&quot;1&quot;&gt;
Image:Maemo.org_logo_contest_setan666_1.png‎ | Simple blue butterfly logo. Beautiful and free.
&lt;/gallery&gt;

=== jrouyer ===

&lt;gallery widths=&quot;500px&quot; perrow=&quot;1&quot;&gt;
Image:Maemo.org_logo_contest_jrouyer_1.png|Dialogue Motif
&lt;/gallery&gt;

=== karnhack ===

&lt;gallery widths=&quot;500px&quot; heights=&quot;250&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_karnhack_01.png|code in your hands
Image:Maemo.org_logo_contest_karnhack_02.png|code in your hands
Image:Maemo.org_logo_contest_karnhack_03.png|code in your hands
Image:Maemo.org_logo_contest_karnhack_04.png|code in your hands
&lt;/gallery&gt;

=== wavek9 ===

&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_wavek9_1.png | Emphasizing Open Source
Image:Maemo.org_logo_contest_wavek9_2.png | Simplified version
&lt;/gallery&gt;

=== amirullah ===

&lt;gallery widths=&quot;500px&quot; perrow=&quot;1&quot;&gt;
Image:Maemo.org logo contest amirullah- 1-.png|flexybility, applicable (eq.: like 'E' to 'M') 
Image:Maemo.org logo contest amirullah- 2-.png|across the world
Image:Maemo.org logo contest amirullah- 3-.png|menembus batas (speed, accuracy, break the target)
Image:Maemo.org logo contest amirullah- 4-.png
Image:Maemo.org logo contest amirullah- 5-.png
Image:Maemo.org logo contest amirullah- 6-.png
&lt;/gallery&gt;

=== brnk ===

&lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_brnk_1.png|The ae feature symbolizes the interaction of people within the community. The hand has many meanings in this context, the most important being that Maemo is used in hand-held devices, the 'hand-work' of the community and the outreach to future contributors (its a high-five, isn't it... or some sort of greating).
Image:Maemo.org_logo_contest_brnk_2.png|The main features joined makes the icon.
Image:Maemo.org_logo_contest_brnk_3.png|Main logo with black background. Makes for a nice t-shirt.
Image:Maemo.org_logo_contest_brnk_4.png|The icon on a black background.
&lt;/gallery&gt;

=== unique311 ===

&lt;gallery widths=&quot;300px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo.org_logo_contest_unique311_1.png|give me an n810
Image:Maemo.org_logo_contest_unique311_2.png|please give me an n810
Image:Maemo.org_logo_contest_unique311_3.png|my n800 is kinda getting old
Image:Maemo.org_logo_contest_unique311_4.png|perty please, give me an n810
&lt;/gallery&gt;

=== srosa ===
&lt;gallery widths=&quot;500px&quot; heights=&quot;167&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_srosa_1.png|Pure typographic submission — avoiding trendy style —; the middle 'm' stem as stylus; strong visual impact; good readability at small sizes. Just one color/ink. Original color and variation.
Image:Maemo.org_logo_contest_srosa_2.png|''Update: 'maemo' logos without the '.org', and the t-shirt and screen applications deleted. Just symbol, logo and favicon''
&lt;/gallery&gt;

=== samlowry ===
&lt;gallery widths=&quot;500px&quot; perrow=&quot;1&quot;&gt;
Image:Maemo.org_logo_contest_RayBuetens1.png|Simple, clean, happy.
&lt;/gallery&gt;

=== shockgen ===
&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_shockgen_1.png‎ |The origami, trys to transmits the idea of open source free software.
Image:Maemo.org_logo_contest_shockgen_2.png‎| White background. The big maemo community and the big box of software and possibilites that an Internet Tablet offers you.
Image:Maemo.org_logo_contest_shockgen_3.png|With darker background, that highlights the box. The big maemo community and the big box of software and possibilites that an Internet Tablet offers you.
Image:Maemo.org_logo_contest_shockgen_4.png‎|Simply, maemo around the world.
Image:Maemo.org_logo_contest_shockgen_5.png|All type of exchange software and source code. Avaliable in other colors.
&lt;/gallery&gt;

=== cjb ===
&lt;gallery widths=&quot;500px&quot; perrow=&quot;1&quot;&gt;
Image:Maemo.org_logo_contest_cjb_1.png‎|This peculiar design may not seem creative, but hope to add some meaning to maemo. The m2o icon is a isolation of three letters in maemo “mmo” (the number 2 representing two m’s)  which stands for maemo | mobile | open source. I know this is debatable and probably will not be used. But hope to spark interest of what maemo is.
&lt;/gallery&gt;

=== samantha ===
&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_samantha_2.png‎|The dots represent the community.
Image:Maemo.org_logo_contest_samantha_3.png‎|Again, community is the idea around which I've designed this logo.
&lt;/gallery&gt;
&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_samantha_4.png‎|The birds simbolize free software, open source and the openness of the community.
Image:Maemo.org_logo_contest_samantha_tshirts.png‎|Possible usages of the logos.
&lt;/gallery&gt;

=== vdepizzol ===
 &lt;gallery widths=&quot;500px&quot; heights=&quot;250px&quot; perrow=&quot;1&quot;&gt;
Image:Maemo.org_logo_contest_vdepizzol_1.png|Simple and smooth logo created with custom typography. Less is mo :). 
&lt;/gallery&gt;

=== Munk ===
&lt;gallery widths=&quot;500&quot; heights=&quot;280&quot; perrow=&quot;1&quot;&gt;
Image:Maemo.org_logo_contest_Munk_060.png|Maemo is primarily progressing towards a finger only based input + notice the flat, no edges, paper like hardware which again we are progressing towards.
&lt;/gallery&gt;
&lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_Munk_061.png|Green background
Image:Maemo.org_logo_contest_Munk_062.png|Orange background
Image:Maemo.org_logo_contest_Munk_063.png|Red background
Image:Maemo.org_logo_contest_Munk_064.png|Blue background
Image:Maemo.org_logo_contest_Munk_051.png|Touch as the center of the interface
Image:Maemo.org_logo_contest_Munk_052.png|Without the hand
&lt;/gallery&gt;
&lt;gallery widths=&quot;500&quot; heights=&quot;273&quot; perrow=&quot;1&quot;&gt;
Image:Maemo.org_logo_contest_Munk_073.png|Evolution!  This is to symbolize evolution from feather and ink interface to pencil to pen to mouse to stylus to arrive at touch.  The lines that make up them symbolize time lines in history.
Image:Maemo.org_logo_contest_Munk_074.png|Evolution!  Blue.  (Keeping the color palette simple for elegance and I also can't make up my mind)
Image:Maemo.org_logo_contest_Munk_075.png|Evolution!  Colored and spelled out.
&lt;/gallery&gt;

=== amir ===
&lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_amir_1.png| red arrow at 'M', likely accuracy 
Image:Maemo.org_logo_contest_amir_2.png| red arrow at smooth 'M', likely accuracy 
Image:Maemo.org_logo_contest_amir_3.png| the sign, simplicity but validity -- applicable in many background colours.
&lt;/gallery&gt;

=== mexicopepito ===

&lt;gallery widths=&quot;400px&quot; perrow=&quot;1&quot;&gt;
Image:Maemo.org_logo_contest_mexicopepito-_1-.png|Universal logo
&lt;/gallery&gt;

=== ubikdosmil ===
&lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_ubikdosmil_1.png| Logo 1
Image:Maemo.org_logo_contest_ubikdosmil_2.png| Logo 2 (Variation)
Image:Maemo.org_logo_contest_ubikdosmil_3.png| Logo 3
&lt;/gallery&gt;

=== jensen ===
&lt;gallery widths=&quot;400px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_jensen_11.png|Networked tablet platform supported by a community
Image:Maemo.org_logo_contest_jensen_14.png|Favicon (suggests community interaction provides support) 
Image:Maemo.org_logo_contest_jensen_13.png|...more people providing support
Image:Maemo.org_logo_contest_jensen_14.png|Favicon (suggests community interaction provides support) 
Image:Maemo.org_logo_contest_jensen_12.png|An open and well-supported platform 
Image:Maemo.org_logo_contest_jensen_15.png|Favicon (suggests support and wireless capability)
&lt;/gallery&gt;

=== Bundyo ===
&lt;gallery widths=&quot;300px&quot; heights=&quot;200px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo.org_logo_contest_bundyo_01.png|This is first in an evolving series of designs, centered around a hand ladder, symbolizing collaboration. This one is depicting real hands. Not very good and kind of creepy. :) 
Image:Maemo.org_logo_contest_bundyo_02.png|The second design is abstracting the hands and adding some color. 
Image:Maemo.org_logo_contest_bundyo_03.png‎|Another variant. 
Image:Maemo.org_logo_contest_bundyo_04.png‎|And another variant. 
Image:Maemo.org_logo_contest_bundyo_05.png|The next two designs depict separate people/idea, which combined can make whole structure. The transparent box/es depict openness. 
Image:Maemo.org_logo_contest_bundyo_06.png|Second variant. 
Image:Maemo.org_logo_contest_bundyo_07.png‎|This one depicts that we all are gears in a bigger machine. :) 
Image:Maemo.org_logo_contest_bundyo_08.png‎|This one depicts that we all are working together to reach common goal. 
All designs are vector and available as Inkscape SVG format. 
&lt;/gallery&gt;

=== navneet ===

&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:meamo_final.png|Maemo: Open Source &gt; Open Doors, that's what i feel and also it is a serious tool which gave me the opportunity to update my websites remotely.Orange dots on the period before the (.org) look like a wireless signal and a human face at same time. 
Image:meamo_reverse.png|just in black and white, so can be printed in any colour and in any size with easily readable letters even in a very small size screen prints on small handheld devices and on other merchandises.
Image:maeom_ico.png|Favicon: Again 'M' with open doors represents open for everyone and 'O' represents the open source and same time together it looks like a human face. Thanks for looking , please click on the image to see actual size. All logos are available in vector format.
Image:maeom_ico_bw.png|In other colours, please click to see actual size
Image:meamo_blue.png|In other colours and size
Image:meamo_black.png|In small size, please click on the image to see the actual size
&lt;/gallery&gt;

=== jrocha ===

&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_jrocha_01.png|The way each of the &quot;ae&quot; curves fit into each other sugests interaction, contact and communication at a high-speed which, from simple shapes form the letters &quot;ae&quot;. This is what happens in an FOSS comunity, everybody syncs and interacts with each other to come up with great tools. Also it suggests the hability for Maemo to allow one to do all this  from any place.
Image:Maemo.org_logo_contest_jrocha_02.png|The mirrored and reversed component parts of &quot;ae&quot; works like when you have several people from different backgrounds and different ideas and places who get together and work/interact as a community to develop great tools.
&lt;/gallery&gt;

=== amir ===

&lt;gallery widths=&quot;500px&quot; heights=&quot;250&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_amir-_1-.png|red arrow 'at M' up right to the target
Image:Maemo.org_logo_contest_amir-_2-.png|smooth red arrow 'at M' up right to target
Image:Maemo.org_logo_contest_amir-_3-.png|the sign : maemo is unique and character, aplicable in many background colours, you can get any.
&lt;/gallery&gt;

=== chall3ng3r ===

&lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_chall3ng3r_1.png|Maemo Logo 1 - Logo displaying &quot;Maemo.org&quot;
Image:Maemo.org_logo_contest_chall3ng3r_2.png|Maemo Logo 2 - Logo displaying &quot;Maemo.org&quot;
Image:Maemo.org_logo_contest_chall3ng3r_3.png|Maemo Logo 3 - Logo displaying &quot;Maemo.org&quot;
Image:Maemo.org_logo_contest_chall3ng3r_4.png|Maemo Logo 4 - Logo displaying &quot;Maemo.org&quot;
&lt;/gallery&gt;

=== alibouhali ===

&lt;gallery widths=&quot;500px&quot; heights=&quot;250&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_alibouhali-_1-.png‎
&lt;/gallery&gt;

[[Category:Community]]
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org proposals</title>
    <id>874</id>
    <revision>
      <id>42328</id>
      <timestamp>2011-03-03T14:11:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>reformat tables</comment>
      <text xml:space="preserve">{{lowercase}}
These tasks are [[:Category:Proposed|proposed]] to be included in the [[Maemo.org_backlog|maemo.org development backlog]]. See [[Pushing a maemo.org task|how to push a maemo.org task]] for details. Also check the [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=Low&amp;priority=Unspecified&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= low priority bugs].

Nothing stops you from pushing a proposed task and even completing it if you are able. :)

== New &amp; Renewed ==
These proposals will be reviewed in the next sprint meeting. They should either be new or brought from the Reviewed list below, and they should link to a wiki page or a bug report.

{| class=&quot;wikitable sortable&quot;
|+ New and renewed maemo.org proposals
! width=&quot;13%&quot; | Added
! width=&quot;13%&quot; | Reviewed
! class=&quot;unsortable&quot; | Task
! Owner?
|-
| 2009-05-10 ||  || [[Task:Comments2Talk|Integrate comments in talk.maemo.org]] || Henri/Reggie? 
|-
| 2009-08-12 || Not Yet || [[Task:Evaluate_Transifex|Evaluate Transifex localization platform]] || [[User:Zerojay|Jason Carter?]]
|-
| 2009-10-26 || || [http://talk.maemo.org/showthread.php?p=358073 A single landing place for bug reporting info] || Andre Klapper?
|-
| 2009-10-27 || || http://maemo.org/intro refresh || Quim Gil volunteers
|-
| 2009-10-29 || || [[Task:Using garage.maemo.org]] was at some point in the 100 Days committed by Ferenc but somehow got dropped || ?
|-
| 2009-11-02 || || Distribute Fixed In Fremantle shirts to contributors that didn't make it to the Summit || Quim
|-
| 2009-11-02 || || Maemo 5 localization: what is needed? || ?
|-
| 2009-11-02 || || Update [[Task:Components_and_packages]] with Maemo 5 data || ?
|-
| 2009-11-02 || || Update [[Open_development/Why_the_closed_packages]] with Maemo 5 data || ?
|-
| 2009-11-02 || || Update [[Open development/Maemo roadmap/Fremantle|Fremantle]] || Quim
|-
| 2009-11-25 || || Create a key for community SSU repositories || Jeremiah
|-
| 2009-11-02 || || Update [[Open development/Maemo roadmap/Harmattan|Harmattan]] || Quim
|-
| 2010-02-01 || || [[Task:rsyncd]] || ?
|-
| 2010-02-01 || || [[Task:Move_DNS]] || ?
|-
| 2010-02-01 || || [[Task:Wiki_dumps]] || ?
|-
| || unknown || [[Task:File hosting on maemo.org | Offer file hosting services on maemo.org]] ||
|-
| || unknown || [[Task:RSS feed reader | Design and implement Free RSS feed reader for Maemo]] ||
|-
| || unknown || [[Task:Download client for extras-applications | Design and implement an attractive Extras installer]] ||
|-
| || unknown || [[Task:RSS feed reader | Design and implement Free RSS feed reader for Maemo]] ||
|}

==Reviewed==
These task have been reviewed and are waiting for better times. Feel free to push any of these. Once a proposal is ready you can move it to the '''(Re)New(ed)''' subsection for review in the next sprint meeting.

{| class=&quot;wikitable sortable&quot;
|+ Reviewed maemo.org proposals
|-
! width=&quot;13%&quot; | Added
! width=&quot;13%&quot; | Reviewed
! class=&quot;unsortable&quot; | Task
! Owner?
|-
| || || Define maemo.org policies for things like editbugs, getting @maemo.org email addresses, svn access || Dave
|-
| || || News archives improved. || 
|-
| || || [[Task:Single-click publishing for Garage]] || Ferenc
|-
| || || [[Task:maemo.org IRC feeds]] || Ryan
|}

==Dropped==

These task have been killed, you may renew them if you ''really'' feel the need, but please have a good reason in hand. ;)

{| class=&quot;wikitable sortable&quot;
|+ Dropped maemo.org proposals
|-
! width=&quot;13%&quot; | Added
! width=&quot;13%&quot; | Killed
! class=&quot;uinsortable&quot; | Task
! Reason
|-
| || || [http://maemo.org/community/calendar/ Maemo Community calendar] [https://bugs.maemo.org/show_bug.cgi?id=2985 beta] || It was decided to discontinue this project.
|-
| || 2009-05-07 || [[Task:ITt Collaboration|itT app catalog feeds]] || Talk is now part of maemo.org. Thread integration with Downloads will likely be put together in the future.
|}

[[Category:Community]]
[[Category:maemo.org]]
[[Category:Sprints]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org sprints</title>
    <id>1322</id>
    <revision>
      <id>33836</id>
      <timestamp>2010-05-04T12:57:23Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Sprints */</comment>
      <text xml:space="preserve">{{lowercase}}
A sprint is the culmination of a month of development. maemo.org development is handled through a [[:wikipedia:SCRUM|scrum]] process (scrum is a development process which utilizes month-long development periods that have a set of tasks to be completed by the end of the sprint) with a planning meeting held on [[IRC]] in [irc://chat.freenode.net/maemo-meeting #maemo-meeting], and daily status reporting and task-specific progress reporting on that Sprint's wiki page.

Anyone interested in following the maemo.org development process should review the [[Maemo.org Sprints/April 10|current month's]] Sprint page and consider attending the [[IRC]] meeting.

== Process ==

The scrum process is adaptable, simple, and ease for newcomers to pick up. Development is broken up into month-long periods (sprints). A number of tasks are committed to each month-long sprint to be completed by the end of the month. A planning and review meeting is held at the beginning of each month where progress is reviewed and new tasks (and, often, incomplete tasks from the last sprint) are committed to the next sprint. Daily progress reports are also posted to that month's wiki page.

Each task is assigned a [[:wikipedia:MoSCoW_Method|MoSCoW]] prioritisation:

* MUST
* SHOULD
* COULD
* (WONT)

=== Sprints ===
&lt;small&gt;''Note: Sprint 1 of the [[100Days]] was handled internally.''&lt;/small&gt;

Development is broken down into monthly sprints with an [[IRC]] review and planning meeting at the beginning of the month of each sprint.

These are all of the previous Sprints:

{|
|-valign=&quot;top&quot;
|
* [[Maemo.org Sprints/May 10|May 10]]
* [[Maemo.org Sprints/April 10|April 10]]
* [[Maemo.org Sprints/March 10|March 10]]
* [[Maemo.org Sprints/February 10|February 10]]
* [[Maemo.org Sprints/January 10|January 10]]
* [[Maemo.org Sprints/December 09|December 09]]
* [[Maemo.org Sprints/November 09|November 09]]
|
* [[Maemo.org Sprints/October 09|October 09]]
* [[Maemo.org Sprints/September 09|September 09]]
* [[Maemo.org Sprints/August 09|August 09]]
* [[Maemo.org Sprints/July 09|July 09]]
* [[Maemo.org Sprints/June 09|June 09]]
* [[Maemo.org Sprints/May 09|May 09]]
* [[Maemo.org Sprints/April 09|April 09]]
|
* [[Maemo.org Sprints/March 09|March 09]]
* [[Maemo.org Sprints/February 09|February 09]]
* [[Maemo.org Sprints/January 09|January 09]]
* [[maemo.org Sprints/December 08|December 08]]
* [[maemo.org Sprints/November 08|November 08]]
* [[maemo.org Sprints/October 08|October 08]]
* [[100Days/Sprint5|Sprint 5]]
|
* [[100Days/Sprint4|Sprint 4]]
* [[100Days/Sprint3|Sprint 3]]
* [[100Days/Sprint2|Sprint 2]]
* [https://garage.maemo.org/plugins/wiki/index.php?June2008Sprint&amp;id=106&amp;type=g June 08]
* [https://garage.maemo.org/plugins/wiki/index.php?May2008Sprint&amp;id=106&amp;type=g May 08]
* [https://garage.maemo.org/plugins/wiki/index.php?April2008Sprint&amp;id=106&amp;type=g April 08]
* [https://garage.maemo.org/plugins/wiki/index.php?Sprint3Tasks&amp;id=106&amp;type=g February &amp; March 08]
|}

=== Tasks ===
''&lt;small&gt;For more information about bug tracking and priorities, please see [http://www.bugzilla.org/docs/2.18/html/bug_page.html Anatomy of a Bug] and [http://www.bugzilla.org/docs/2.18/html/lifecycle.html Life Cycle of a Bug].&lt;/small&gt;''

A written description of every proposed and committed task for maemo.org will be provided in a wikipage for that task. The task page should outline the plan for that task and centralize any relevant information for that task. This ensures that everybody agrees on the same plan for the task, and provides a centralized place to track the specifics of the development of that task.

All tasks willing to be commited in a maemo.org sprint should have either:
* [[:Category:Proposed|A proposal]] in a wiki page starting with &quot;Task:&quot; using the [[Template:Task]] by adding &lt;nowiki&gt;{{task|proposed}}&lt;/nowiki&gt; to the top of the task's page.
:''&lt;small&gt;(i.e., if you want to put together a task for documenting the maemo.org Sprint procedure, you might create a new page titled [[Task:Document the maemo.org Sprint procedure]] and add &lt;nowiki&gt;{{task|proposed}}&lt;/nowiki&gt; to top of the page.)&lt;/small&gt;
* Or a bug report in the maemo.org Website classification with [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=Medium&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=  MEDIUM priority].

Only tasks with wiki pages can be committed for a Sprint.

Once the task is committed for a sprint, the task template should be changed to &lt;nowiki&gt;{{task|accepted}}&lt;/nowiki&gt; and then &lt;nowiki&gt;{{task|ongoing}}&lt;/nowiki&gt; once work begins. As work on the task progresses, the wiki page should be updated to reflect the current progress. Once work on the task is completed, the task template should be changed to &lt;nowiki&gt;{{task|completed}}&lt;/nowiki&gt;.

=== Planning meeting ===

The planning and review meeting is held on the first Tuesday of the month at 13:30 UTC. It will be announced on the [https://lists.maemo.org/mailman/listinfo/maemo-community maemo-community] mailing list. The meetings typically last between 1.5 and 2 hours. If you are unable to attend, [http://maemo.org/maemo-meeting/ logs are posted to the website] usually by the next day.

The channel is unmoderated for the duration of the meeting, but extraneous and off-topic comments and conversation must be kept to an absolute minimum (#maemo can be used for chatter). There is a lot of information being exchanged between a lot of different people, and chatter slows us down and confuses the meeting.

==== Outline ====

Direction of the meeting is typically handled by either Nokia's community representative or one of the [[Community Council]] members (depending on who is available).

To save time, some preparation work should be completed before the start of the meeting:
* The meeting facilitator creates a new sprint page and links it to the sprint meeting announcement.
* Task owners leave the final status of their tasks in the sprint: 
** Task should be marked as DONE (green background) or, if not DONE, % of completion (with a red background).
** Comment for posterity summarizing what was done/left.
** Update the status banner of the wiki task page (&lt;nowiki&gt;{{task|ongoing}}&lt;/nowiki&gt; or &lt;nowiki&gt;{{task|completed}}&lt;/nowiki&gt;).
* Facilitator moves all the incomplete tasks to the table of the new sprint.
* Anybody willing to propose a new task needs to list it in the [[Maemo.org proposals|Proposals]] page.
* Anybody willing to push a bug needs to get it to MEDIUM priority (request it in the bug itself if you don't have permissions).

Meeting agenda:
# Progress of the past sprint:
## Only general/exceptional comments, since the progress as such is left in the table and daily reports.
## Any objections to a task being marked &quot;DONE&quot;?
# Planning of the next sprint:
## Any task moved from the previous sprint considered not appropriate for the new sprint e.g. better moved back to the backlog or dropped?
## Tasks from the backlog to be committed.
## Tasks from the Proposals page to be committed, to the backlog or sent back for improvement.
## Any pending HIGH bugs to be dropped to MEDIUM, LOW, or WONTFIX?
## Any MEDIUM bugs promoted to HIGH and committed to the sprint?

Just to clarify: no new tasks and no LOW bugs taken if they were not proposed/promoted before the meeting. They don't have to be committed to be worked on. You can always work on them out of the official sprint.

Actions to be taken after the meeting:
* Update the tasks and bugs tables according to the meeting agreements.
* Upload meeting log and link it from the new sprint page.
* Review old and new committed task pages, making sure they have the correct status banner.

=== Daily reporting ===

Having daily standup scrum meetings when working online is difficult, so, Instead, developers involved in the Sprint will report their daily progress (assuming they're working on anything Maemo-related) in a workstream.

The preferred way to report day-to-day activity progress is through the [http://www.qaiku.com/channels/show/maemork/ Qaiku #maemork channel] (see [http://bergie.iki.fi/blog/maemo-org_is_testing_workstreaming_with_qaiku/ Bergie's blog entry]). Alternatively, a thread (per-task) on [http://talk.maemo.org/forumdisplay.php?f=16 tmo].

All updates should include either the task ID (of the form &lt;year&gt;-&lt;month&gt;-&lt;id&gt;) or &quot;BAU&quot; (Business As Usual).

The reports should be reasonably short and clear [http://webworkerdaily.com/2007/03/03/workstreaming-the-new-face-time/ workstreaming] entries, containing things like:

* '''What have I done since my last report.''' This is useful for others to see what is the progress.
* '''What are the obstacles I'm facing.''' This is useful to highlight problems (e.g. non-evident dependencies) where others can help.
* '''What is my plan today.''' This helps you to get organized and provides an orientation to others working in related tasks.

The reports are necessary for other developers and interested community members to be able to follow the Sprint's progress, so reporting is ''highly'' recommended for paid contributors, and suggested for volunteers.

=== Task progress table ===

A simple table is used to provide a quick, color-coded overview of the current progress of the committed tasks for the Sprint. Task owners will updated the color-status, percent completed and comments as they work on their tasks.

{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightGreen&quot;
| 2008-06-24 || Task D || Miguel || '''DONE''' || LightGreen = Completed
|- style=&quot;background:LightBlue&quot;
| 2008-03-21 || Task B || Micaela || 50% || LightBlue = Good progress
|-
| 2008-02-20 || Task A || Mika || 50% || Default = Just standing
|- style=&quot;background:Orange&quot;
| 2008-04-22 || Task C || Michael || 50% || Orange = Some help needed!
|- style=&quot;background:Tomato&quot;
| 2008-05-23 || Task D || Michelle || 50% || Tomato = Really stuck/delayed
|}


[[Category:Community]]
[[Category:maemo.org]]
[[Category:Sprints]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org team</title>
    <id>1354</id>
    <revision>
      <id>47441</id>
      <timestamp>2012-05-06T19:35:08Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Maemo.org team]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">{{lowercase}}

== Webmaster ==

{| style=&quot;text-align: center;&quot;
!width=&quot;100&quot;| [[Image:Wm-niels_breet.png|72px]]
|-
| Niels Breet&lt;br/&gt; ([[User:Xfade|X-Fade]])
|}

Among other things, Niels is the administrator of the [http://maemo.org/infra Maemo servers].

== Docmaster ==

Currently vacant

'''Docmaster from May 2008 - December 2010:'''

{| style=&quot;text-align: center;&quot;
!width=&quot;100&quot;| [[Image:Dave_and_sean_small.jpg|72px]]
|-
| Dave Neary&lt;br/&gt; ([[User:dneary|dneary]])
|}

Dave was in the role of docmaster until December 2010, and is still active in Maemo and MeeGo.

The goal of the docmaster is to enable [[Objective:Co-production of official &amp; community documentation | co-production of documentation]] - by removing any barriers and by organising the community around that goal.

The ongoing tasks of the docmaster are:
* Tracking of documentation bugs in bugzilla
* Co-ordination of maintenance work in the maemo.org wiki
* Identification of points which can be improved in terms of availability and access to documentation resources related to Maemo
* Maintaining elections
=== Docmaster related documentation ===
* [[/Generating election results]]
* [[/Creating an election]]
* [[/Updating maemo.org sites]] - how to update the deployed Midgard install and the other maemo.org websites after making a change
* [[Documentation/Patching API docs | How to fix API documentation issues]]
* [[User:Dneary#.22Edit_help.22_extension | Edit help extension]]

== Bugmaster ==

{| border=&quot;1&quot; style=&quot;text-align: center;&quot;
!width=&quot;100&quot;| [[Image:Bm-andre_klapper.jpg|72px]]
|-
| Andre Klapper&lt;br/&gt; ([[User:andre|andre__]])&lt;br/&gt;
|}

Taking care of [https://bugs.maemo.org maemo.org Bugzilla], mainly:
* Triage/Clean up reports and get them into a valuable state whenever needed
* Import and keep in sync with Nokia's internal bug database
* Maintenance (Adding / setting new products, milestones, 3rd party apps etc)
* [[Bugsquad]] community building (e.g. having Bugdays, #maemo-bugs on IRC)
* Internal weekly report for Nokia; Public monthly feature jar

=== Bugmaster documentation ===
* [[Bugs:Administration guide | Bugzilla administration guide]]
* [[Bugs:Adding Extra products | How to add a product from Extras to bugs.maemo.org]]
* [[Bugs:Triage guide | Bugzilla triage guide]]
* [[Bugs:Cloning | How to clone bugs from public to internal bugzilla]]
* [[Bugs:Stock answers | Stock answers to common situations that arise for bug triagers]]

== Talkmaster ==

{| style=&quot;text-align: center;&quot;
!width=&quot;100&quot;| [[Image:DefaultAvatarProfile.png]]
|-
| Reggie Suplido&lt;br/&gt; ([http://talk.maemo.org/member.php?u=2 Reggie])
|}


The primary role of the Talkmaster is to make sure that talk.maemo.org, the forum section of maemo.org is running smoothly. Below are his additional responsibilities:

* Perform daily forum administration
* Manage / help forum moderators
* Interface with maemo.org when needed
* Perform forum software and forum related add-ons upgarde
* Perform daily forum backup and replicate backup off-site
* Perform forum database administration / optimization
* Perform server administration /optimization / upgrades

== Administrator Holidays ==

Upcoming vacations for maemo.org staff and related people with admin rights: [[Administrator holidays]]

== Community Council ==

There is a special [[Community Council]] page containing the current council members.

== Wiki sysops ==

This is the team of people who have special permissions on the wiki including blocking IP addresses, deleting pages and granting new permissions to others.
User:
* [[User:feri|    Ferenc Szekely]]
* [[User:marcell| Marcell Lengyel]]
* [[User:qgil    |Quim Gil]]
* [[User:dneary  |Dave Neary]]
* [[User:generalantilles| Ryan Abel]]
* [[User:jaffa   |Andrew Flegg]]
* [[User:xfade   |Niels Breet]]
* [[User:andre   |Andre Klapper]]
* [[User:finni   |Olli Finni]]
* [[User:andrewfblack|    Andrew Black]]
* [[User:vdvsx   |Valério Valério]]
* [[User:myrtti  |Miia Ranta]]
* [[User:danielwilms|     daniel wilms]]
* [[User:zerojay |Jason Carter]]
* [[User:amigadave|       David King]]
* [[User:jacktanner|      Jack Tanner]]

== Community processes and documentation ==

A list of community-related processes and documentation managed or generated by the maemo.org team:

* [[Karma]] - documentation for how users get karma points
* [[Social news]] - a description of the social news algorithm
* [[Maemo Weekly News]]
* [[Vcs bat | Basic acceptance tests for vcs.maemo.org]]

[[Category:Community]]
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org team/Creating an election</title>
    <id>4458</id>
    <revision>
      <id>42369</id>
      <timestamp>2011-03-07T11:28:36Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Resending tokens */</comment>
      <text xml:space="preserve">These are the steps required to create a new election for the [[Community Council]] - essentially the same process applies for a referendum.

; Get list of maemo.org accounts
: Request a dump of maemo.org accounts including karma and account creation date from Henri or Neithan at the karma cut-off date. The format for each row is:
 username,&quot;Real name&quot;,firstname,surname,emails(; separated),&quot;join date&quot;,karma,talk profile URL

; Create database if necessary
: The schema is:

&lt;source lang=&quot;sql&quot;&gt;
DROP TABLE IF EXISTS `electorate`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `electorate` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) DEFAULT NULL,
`firstname` varchar(50) NOT NULL DEFAULT '',
`lastname` varchar(50) NOT NULL DEFAULT '',
`email` varchar(50) NOT NULL DEFAULT '',
`karma` int(11) NOT NULL DEFAULT '0',
`creation_date` datetime DEFAULT NULL,
`talk_id` varchar(70) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=32822 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
&lt;/source&gt;

; Create election in the database
: For the Q3 2010 election, that means running the following on the maemoelections database on test.maemo.org:
 /* Fields are ID, type ('elections' or 'referendum'), name, start date, end date, # of seats, question */
 insert into elections values(10, 'elections', 'Maemo Community Council elections, Q3 2010', '2010-09-16 00:00:00', '2010-09-22 23:59:59', 5, 'In order of preference, which of the following candidates do you want to represent you on the Maemo Community Council?');
 
&lt;source lang=&quot;sql&quot;&gt;
/* Fields are id, election id, name - id is auto-increment */
insert into election_choices values
  (0, 10, 'Andrea Grandi (andy80)'),
  (0, 10, 'Tim Samoff (timsamoff)'),
  (0, 10, 'R&amp;amp;uuml;diger Schiller (chemist)'),
  (0, 10, 'Cosimo Kroll (zehjotkah)'),
  (0, 10, 'Andrew Flegg (Jaffa)'),
  (0, 10, 'Stephen Gadsby (sjgadsby)'),
  (0, 10, 'Felipe Crochik (fcrochik)'),
  (0, 10, 'Robin Burchell (w00t)'),
  (0, 10, 'Kathy Smith (revdkathy)'),
  (0, 10, 'Attila Csipa (achipa)')
;
&lt;/source&gt;

; Insert electorate into database
: Insert the rows into your database using the following (note, we ignore the talk profile URL now, but there is still a column for it in the database):

&lt;source lang=&quot;sql&quot;&gt;
/* Truncate old electorate table and old temp tokens */
truncate electorate;
truncate election_tmp_tokens;
 
/* Load data file using LOAD DATA INFILE (or mysqlimport) */
load data local infile '/path/to/data/users.csv' into table electorate
   fields terminated by ',' optionally enclosed by '&quot;'
   (username,@dummy,firstname,lastname,@email,creation_date,karma,@talk)
   set email=substring_index(@email,';',1), 
       talk_id=substring_index(@talk,'=',-1)
;
/* This is a complicated line, worth explaining.
 * LOAD DATA INFILE basically does a series of inserts, one for each 
 * line of data in the input file.
 * The part in brackets matches fields or variables to entries in the 
 * data line, with separator, quote and line ending bevahiour as specified.
 * We drop the &quot;Real name&quot; field. The email field contains semi-colon
 * separated list of all the email addresses associated with the account,
 * so we search the field for a semicolon, and just take the first one.
 * The talk field contains a URL with a talk_id after &quot;=&quot;, which is what we
 *  want, so we look for = and take everything after the first occurrence.
 */
 
/* Delete from electorate anyone with insufficient karma */
delete from electorate where karma &lt; 10;
/* Delete accounts created too recently (3 months before end of election) */
delete from electorate where creation_date &gt; '2010-06-23';
&lt;/source&gt;

It is also possible to filter on older talk_ids, even if the maemo account was created recently. Ask Reggie for the cut-off Talk user id for the electorate date, and include the cut-off in the &quot;delete from&quot; for recently created accounts.

; Extract eligible candidates

Generating the list:

  mysql -e 'select username, firstname, lastname, karma  from electorate where karma&gt;100 order by lastname'&gt; eligible.txt

Awk script to generate the table:
&lt;source lang=&quot;awk&quot;&gt;
BEGIN{ FS=&quot;\t&quot;;
print &quot;{|\n|-\n! Username\n! Real name\n! Karma&quot;;
}

{
print &quot;|-&quot;;
username=$1;
print &quot;| [http://maemo.org/profile/view/&quot; username &quot;.html &quot; username &quot;]&quot;;
print &quot;| &quot; $2 &quot; &quot; $3;
print &quot;| &quot; $4;
}
END{
print &quot;|}&quot;;
}
&lt;/source&gt;

; Generate election tokens and send out emails
: Tokens and emails are created with [https://garage.maemo.org/plugins/scmsvn/viewcvs.php/maemo-elections/scripts/?root=maemo2midgard scripts in the maemo2midgard repository] - create-tmp-tokens.pl and mail-instructions.pl  Database credentials are in a private local file called config.pl
: We need to modify the email instructions (instructions.txt) every election with the candidate list, links to election materials, etc. First we generate the tmp tokens, insert them in the database by running the resulting file through the mysql client, and then using the instructions and the generated maildata.txt file as inputs, we mail the instructions out.
 ./create-tmp-tokens.pl &lt;election_id&gt; &lt;tokens_file&gt; &lt;maildata_file&gt;
 mysql -u&lt;dbuser&gt; -p&lt;dbpasswd&gt; -h&lt;dbhost&gt; &lt; &lt;tokens_file&gt;
 ./mail-instructions.pl &lt;maildata_file&gt; &lt;instructions&gt;

And we're all done! The election will run until its closing date, at which point you can [[../Generating election results | generate the results]]

== Resending tokens ==

Sometimes token emails get caught in spam filters, or accidentally deleted, or the first email address associated with their account is dead, or whatever. You can find the anonymous token associated with someone as long as they have not voted yet.

In a Plain Old mysql client, run the following query:
&lt;source lang=&quot;sql&quot;&gt;
 select e.id, e.username, e.firstname, e.lastname, e.email,
        t.election_id, t.tmp_token
 from electorate as e, election_tmp_token as t
 where e.id=t.member_id and e.username='&lt;username&gt;';
&lt;/source&gt;

You can also look using &quot;LIKE&quot; on the username, first name or last name if you need to. This will give you the email/tmp_token pairing which the person can then use to vote, and which you can then send on to them, after verifying that they are who they say they are.

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org team/Generating election results</title>
    <id>3222</id>
    <revision>
      <id>31772</id>
      <timestamp>2010-03-31T11:12:03Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Update instructions to use the much easier &quot;LOAD_FILE&quot; rather that copy &amp; paste results file</comment>
      <text xml:space="preserve">Instructions for generating election results once an election is completed. In this example, the election ID is 8.

# Go to http://maemo.org/vote/
# Click on election link - get to http://maemo.org/vote/results.php?election_id=8
# Click on [http://maemo.org/vote/votes.php?election_id=8 &quot;List of all votes&quot;]
# Click on [http://maemo.org/vote/blt.php?election_id=8 &quot;Download the ballots&quot;]
# Browser proposes open or save - save the file (election.blt)
# Launch [http://www.openstv.org/ OpenSTV] (version 1.5 is latest as of writing)
# File-&gt;New election
# Load election.blt file - Method: Fractional transfer STV (for the character survey, I chose the Borda method, because fractional transfer didn't make any sense)
# Election options: Seat number = number of desired elected candidates (1 for referendum, 5 for council, etc); Threshold = Droop, Static, Whole; Delay surplus transfer = Off; Batch elimination = Zero; click OK
# Election results generated - you can see the winners &amp; count details. To generate HTML version: Results-&gt;Save results as HTML - save file election_results.html
# Edit HTML file to take care of MySQL formating (escape quotes, backslashes, etc) and remove HTML headers - manual process
#* remove &lt;html&gt; and &lt;head&gt;,
#*  change &lt;body&gt; into &lt;nowiki&gt;&lt;div&gt;&lt;/nowiki&gt;
#* sed/\'center\'/\&quot;center\&quot;/g
#* Ensure HTML attributes are quoted (colspan, rowspan, border, cellspacing)
#* Massage output as necessary (removing &quot;symbols are elected&quot; for characters survey, replacing characters with HTML entities, etc)
# Insert results in non-production database to test (ensure that the file is world readable &amp; the directory hierarchy is world executable, and that the DB user has the FILE privilege):
#: mysql -uelection -p election
#: $ insert into election_results values (8 &lt;the election_id on the results URL above&gt;, LOAD_FILE('/path/to/html/file');
# Check that results display correctly, and massage results field if needed.
# Dump insert from non-prod DB to send for insertion in prod DB (as an SQL statement, to make it as easy as possible - ensures quoting &amp; character escaping is done correctly):
#: mysqldump -uelection -p -t -w 'election_results.election_id=8' election election_results &gt; results.sql
# On production database, mysql -u&lt;db user&gt; -p &lt; results.sql

[[Category:Maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org team/Updating maemo.org</title>
    <id>3468</id>
    <revision>
      <id>27753</id>
      <timestamp>2010-01-29T17:53:08Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Maemo.org team/Updating maemo.org]] moved to [[Maemo.org team/Updating maemo.org sites]]</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo.org team/Updating maemo.org sites]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org team/Updating maemo.org sites</title>
    <id>3466</id>
    <revision>
      <id>32189</id>
      <timestamp>2010-04-08T15:09:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify links</comment>
      <text xml:space="preserve">There are several ways to modify the behaviour of the main [http://maemo.org maemo.org website], and there are similarly several steps required to update the site when changes have been made.

= maemo.org =
{{Server admins| maintenance.maemo.org | Niels, Ferenc, Daniel}}

== Installation details ==

maemo.org is based on the [http://www.midgard-project.org/ Midgard] CMS, which contains a persistent storage system and provides infrastructure for custom page templates, and dynamic and static content.

Midgard is installed on the server ''maintenance.maemo.org'', and consists of a core application, plus a set of PHP components (such as socialnews, brainstorm, midcom) which are packaged upstream and deployed using [http://pear.php.net/ Pear]. The same Midgard install is then duplicated across several nodes.

There is a central DB instance which is used to serve content. Templates and config snippets are served from this database.

Static content (CSS files, image files, etc) is served from the server ''static.maemo.org'', which runs a [http://www.lighttpd.net/ lighttpd] server.

On top of this, like every CMS, page contents can be created through a web admin interface, for users connected with sufficient privileges.

== Updating Midgard ==

On maemo.org, Midgard can be updated by root via apt-get or dpkg.

Midgard components are updated by being published in the [http://ragnaroek.pear.midgard-project.org/ Midgard pear channel] and updated on ''maintenance.maemo.org'' using 
 datagard -a pear -p package_name
where package_name can be any of the modules available for Midgard.

The modules installed on maemo.org are:
* [http://trac.midgard-project.org/browser/branches/ragnaroek/midcom/org.maemo.packages Packages interface]
* [http://trac.midgard-project.org/browser/branches/ragnaroek/midcom/org.maemo.brainstorm Brainstorm]
* ''List modules here''

== Updating maemo.org specific styles ==

Modules, styles and snippets specific to maemo.org (typically sidebars, RSS feeds, footers and headers) are stored in the SVN module [https://garage.maemo.org/plugins/scmsvn/viewcvs.php/?root=maemo2midgard maemo2midgard] (see [https://garage.maemo.org/projects/maemo2midgard/ the project's Garage page] for more information).  You can get a copy of the module with the command 
 svn checkout https://vcs.maemo.org/svn/maemo2midgard

The page style for maemo.org is currently [https://garage.maemo.org/plugins/scmsvn/viewcvs.php/midgard-data/style/maemo2009/?root=maemo2midgard maemo2009]. To modify the sidebar of [http://maemo.org/development the development page], for example, we should modify the page template [https://garage.maemo.org/plugins/scmsvn/viewcvs.php/midgard-data/style/maemo2009/development/style-init.php?root=maemo2midgard&amp;view=markup development/style-init.php]. To change the CSS applied to files, we modify the relevant CSS files in the [https://garage.maemo.org/plugins/scmsvn/viewcvs.php/midgard-data/style/maemo2009/static/css/?root=maemo2midgard static/css directory]. Once we have made and tested modifications, we can commit to the maemo2midgard subversion repository.

Once a change has been made, to push it live, we must update the checked out working copy of maemo2midgard on ''maintenance.maemo.org''. This requires root access, and can this only be done by ''list people who have admin rights for maintenance''.

If we have modified any of the static files for the site, we must also synchronise these files with ''static.maemo.org''. ''TODO: how is this done?''

Finally, we must update the Midgard database with any config or style snippets which have changed. This is done by running the admin utility scripts 
 midcom-import-styles
and
 midcom-import-snippets

== Updating page content ==

Finally, to update the content of a page such as [http://maemo.org/development the development page], log on to the system with a valid maemo.org account with admin privileges, and in the floating menu, choose ''Page-&gt;Edit''. You will be able to modify the content of everything inside
 &lt;div id=&quot;content&quot;&gt;
 ...
 &lt;/div&gt;

= wiki.maemo.org =
{{Server admins| maintenance.maemo.org | Niels, Ferenc, Daniel}}

[[Main Page|The Maemo Wiki]] is a standard [http://www.mediawiki.org MediaWiki] installation on ''wiki.maemo.org''. The stylesheets used for the wiki are taken directly from ''static.maemo.org'', and are the same as those used for [http://maemo.org the Maemo site].

The &lt;nowiki&gt;MediaWiki&lt;/nowiki&gt; install is from the following standard Debian packages:

{| class=&quot;wikitable&quot;
! Name !! Version !! Description
|-
| mediawiki || 1:1.12.0-2lenny3 ||website engine for collaborative work
|-
| mediawiki-extensions || 1.4 ||set of extensions for MediaWiki
|-
| mediawiki-math || 1:1.12.0-2lenny3 ||math rendering plugin for MediaWiki
|}

The following custom extensions are installed and deployed on the Maemo wiki in /var/lib/mediawiki/extensions:
* [[User:Dneary#.22Edit_help.22_extension | &quot;Edit Help&quot; extension]]
* BugzillaReports
* ''CategoryTree''
* ''Cite''
* ''ConfirmEdit''
* DynamicPageList
* GForgeAuthentication
* ImageMap
* ''ParserFunctions''
* RSSReader
* Userlogin_maemo
* UserMerge

''Indented plug-ins are available as part of the Debian packages mentioned previously''


The stylesheets for wiki pages come from three separate sources:
* maemo2midgard static CSS files used for the main site (in the midgard-data/style/maemo2009/static/css directory of maemo2midgard svn) 
* Wiki specific style sheets (in the /mediawiki/2009/monobookmaemo2009 directory of maemo2midgard)
* Stylesheets which are stored directly as wiki pages ([[:MediaWiki:Common.css]])

= bugzilla.maemo.org =

{{Server admins| maintenance.maemo.org | Niels, Ferenc, Daniel, Andre}}

[[Category:Maemo.org]]
[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>maemo.org wiki:About</title>
    <id>3509</id>
    <revision>
      <id>34319</id>
      <timestamp>2010-05-12T20:45:18Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">[[Main_Page | wiki.maemo.org]] is a stock [http://www.mediawiki.org/ Mediawiki] install, with some additional modules enabled.

There are a number of policies related to the Maemo wiki which newcomers should read:
* [[Contributing to the wiki]] describes naming conventions and style guides
* [[Help:Contents]] will point you to lots of help material if you need more information (but check the above link first!)
* [[Meta:Anonymous editing]] describes the current status of anonymous editing for the wiki. We recommend that you create a Maemo account before editing.
* [[Getting involved]] - there's lots to do outside of the wiki
* [[Wiki gardeners]] lists our top wiki priorities for content and clean-ups
* Check out the [[documentation wishlist]] for documents we'd like to see created.

[[Category:Community]]
[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo.org writers crash course</title>
    <id>2974</id>
    <revision>
      <id>22203</id>
      <timestamp>2009-11-09T09:36:38Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Maemo.org writers crash course]] moved to [[Writing maemo.org content]]: Name corresponds better to the reason one might visit the page</comment>
      <text xml:space="preserve">#REDIRECT [[Writing maemo.org content]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo5 101</title>
    <id>2673</id>
    <revision>
      <id>42345</id>
      <timestamp>2011-03-04T14:18:41Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Tips and tricks */ cut content that already exists in [[N900 shortcuts and gestures]]</comment>
      <text xml:space="preserve">Here will be short introduction to Maemo5 and how it functions.

[[Image:N900Album.jpg|frame|center|alt=Photo of N900 with kickstand|[[Nokia N900]]]]
{{clear}}

== Video Walkthroughs ==

Here are some short walkthroughs from [http://www.youtube.com YouTube].
*[http://www.youtube.com/watch?v=IzLdXEigd4c First boot-up and putting settings to shape]
*[http://www.youtube.com/watch?v=vzdxID_mSlU Calendar Application]
*[http://thenokiablog.com/2009/10/27/maemo-extras-nokia-n900-applications/ Installing Community Applications]
*[http://www.youtube.com/user/Maemo5UITeam#p/u/0/30kPxiyzrmI Contacts Application]
*[http://www.youtube.com/user/palmsolo#p/u/3/nNxULgpHWmU Conference Calling]
*[http://www.youtube.com/watch?v=gvTaMsS3L_4 Conversations Application]
*[http://www.youtube.com/user/palmsolo#p/u/0/q6WrgS3pwt0 Games on N900]
*[http://www.youtube.com/user/Maemo5UITeam#p/u/9/Nr1_5smsdJM HTML Email reading]
*[http://www.youtube.com/user/Maemo5UITeam#p/u/5/UpTzV3TGvHU Keyboard shortcuts]
*[http://www.youtube.com/user/Maemo5UITeam#p/u/3/eq9tIZwJV6w Locking N900 with Touchscreen]
*[http://www.youtube.com/watch?v=3eZu3nku2uM Making calls]
*[http://www.youtube.com/user/palmsolo#p/a/u/2/2tktVfOmROM Messaging Applications (Email,SMS, IM)]
*[http://www.youtube.com/user/palmsolo#p/u/4/ey5Z8PX1LbI Media and Camera Applications]
*[http://www.youtube.com/watch?v=HPdgF2axNdU&amp;feature=player_embedded Phone Application]
*[http://www.youtube.com/user/palmsolo#p/a/u/1/YVCZ3f8-AhI Settings]
*[http://www.youtube.com/user/Maemo5UITeam#p/u/2/tGXAVLSyc_E Sharing Images Online]
*[http://www.youtube.com/watch?v=QzRMhq_RU-Q Taking shortcuts]
*[http://www.youtube.com/user/Maemo5UITeam#p/u/4/5vSqGSG9riU Tethering to OSX Mac]
*[http://www.youtube.com/watch?v=h5s9lqnQu48 Web Browsing]
*[http://www.youtube.com/user/Maemo5UITeam#p/u/1/At9tJHmgnrE Wireless updating of your N900]

== Tips and tricks ==

If you want to customize your N900 look and feel go to the [[Customizing Maemo]] page

Nokiaexperts.com has made excellent instructions, that can be found from their [http://nokiaexperts.com/tips-shortcuts-handy-tidbits-nokia-n900-user-guide/ N900 user guide].

Here's some citations:

===Notification light colors===

The notification light found on the front of the N900 (upper left corner) changes colors to indicate different states. As stated in the User Guide:
* Blue is for application triggered notifications (received text, IM, or email)
* Orange is for battery charging
* Green is for battery full

===Keyboard shortcuts===

{{main|N900 shortcuts and gestures}}

[[Category:Beginners]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo5 clutter performance</title>
    <id>1831</id>
    <revision>
      <id>13010</id>
      <timestamp>2009-05-04T14:09:46Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Maemo5 clutter performance]] moved to [[Maemo 5 Clutter performance]]</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo 5 Clutter performance]]</text>
    </revision>
  </page>
  <page>
    <title>MaemoSecurity</title>
    <id>2661</id>
    <revision>
      <id>19827</id>
      <timestamp>2009-10-11T18:20:41Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[MaemoSecurity]] moved to [[Maemo security]]: No CamelCase!!!</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo security]]</text>
    </revision>
  </page>
  <page>
    <title>MaemoTrainingAddons</title>
    <id>675</id>
    <revision>
      <id>3835</id>
      <timestamp>2008-07-02T14:30:38Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[MaemoTrainingAddons]] moved to [[Maemo training addons]]: Renaming properly</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo training addons]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5</title>
    <id>3396</id>
    <revision>
      <id>27657</id>
      <timestamp>2010-01-28T14:07:58Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Open development/Maemo roadmap/Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5/Latest Version</title>
    <id>3734</id>
    <revision>
      <id>40629</id>
      <timestamp>2010-12-09T10:27:31Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>update to PR1.3</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo_5/PR1.3]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5/PR1.0</title>
    <id>4679</id>
    <revision>
      <id>41601</id>
      <timestamp>2011-02-04T10:30:51Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use template</comment>
      <text xml:space="preserve">PR1.0 was the sales release of [[Open development/Maemo roadmap/Fremantle|Maemo 5]], shipped with the first available [[Nokia N900|N900s]] and [http://flors.wordpress.com/2009/11/16/maemo-5-final-release-updated-sdk-and-firmware/ released on 16th November 2009]. It was followed by [[Maemo 5/PR1.1|PR1.1]].

{{Maemo 5 firmware updates}}

[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5/PR1.1</title>
    <id>3391</id>
    <revision>
      <id>45639</id>
      <timestamp>2011-10-30T21:44:08Z</timestamp>
      <contributor>
        <username>nin101</username>
        <id>4525</id>
      </contributor>
      <minor/>
      <comment>Vandalism removed.</comment>
      <text xml:space="preserve">{{Firmware update}}

Maemo 5 PR1.1 was released on January 14, 2010, starting in Finland at 7am local time and following a staggered process country by country through the different time zones.

This update can be installed over the air.  See [http://conversations.nokia.com/2010/01/14/nokia-n900-software-update-part-2/ the Nokia Conversations blog post] for a consumer friendly announcement. Below you will find additional technical details. See also the related Talk thread: [http://talk.maemo.org/showthread.php?t=40421 Maemo 5 PR1.1 released today (January 14)].

The Maemo 5 SDK and tools are being updated as well in order to match the OS content. The update will be available later today.

== Release Notes ==

Summary of SW changes from Sales Release 1.2009.42-11 to PR1.1 release 2.2009.51-1

=== New features ===
* 3UK SIM cards are supported.
* MS Exchange 2003 support.

=== Maemo  Update ===
* Bootloader (Nolo) can be updated over Maemo Update.
* Cellular software can be updated over Maemo Update.
* Icon cache removed to allow more memory space for Maemo Update.
* Application Manager: Available space check moved to apt-worker for more accurate results.

=== Reliability ===
* Improvements in SGX performance and reliability.

=== Use-time and power consumption ===
* API for status area applets to detect if they are invisible/absent.
* Fixes to Pulseaudio timer increasing power saving when starting/closing apps. 
* Browser: Removed unnecessary serial logging.
* Reduction of wake-ups in Desktop, Connectivity, Conversations, RSS Feed Reader, 
* Backup correctly handles directories containing pairs of symlinks. 
* Less CPU load caused during video recording. 
* Support disabling Virtual Keyboard in input field. 
* Performance improvements in Browser.
* Lock: &quot;swipe to unlock&quot; will not stay on. 
* CPU idle latencies and thresholds updated. 
* Fixing eMMC data lines while sleeping.
* CellMO power consumption reduced. 

=== Usability ===
* Volume button operation in call flipped based on audio routing (no more on screen orientation). 
* Browser: Downloading &amp; rendering of page content runs promptly. 
* Helping to avoid capacity limits of rootfs when installing apps (make Docpurge aware of /opt).
* Stability and usability fixes to the Profiles applet. Selection, usage and restoring of ringtones. 
* Fast call from home shortcuts. 
* Fast SMS rejection of incoming call. 
* Avoid false alarms in pocket.
* Silence ringing by flipping face down.
* Fix to Camera photo orientation problem: correct orientation is now written to EXIF.

=== Performance ===
* X: performance of GLES apps improved. 
* Lower RAM consumption while capturing video. 
* Phone-UI &amp; Msg-UI always ready to appear. 
* Application Manager UI speed improvements.
* Email faster with large mailboxes.
* Large file copy (SD-&gt;MMC) doesn't degrade system performance.

=== OVI Maps ===
* Route calculation and search performance improved.

=== Connectivity ===
* BT Secure Simple Pairing fixed for Windows Vista.
* BT transfer progress indicated.
* Improving WLAN connection stability.
* Improved WLAN negotiation when going out of reach of access point.  

=== Phonecalls ===
* Add voicemail shortcut support. 
* Showing call forwarding correctly when busy forwarding is not set. 
* Call log improved. 

=== Audio &amp; Video ===
* Audio volume control works with +/- keys in full-screen playback of flash.
* Handling corrupted ring tone files better.
* HW volume keys always have same orientation. 
* Media Player UI now provides feedback when tapping control buttons in video playback. 
* MIC input not clipped when loud voice in VoIP call. 
* Pulseaudio: Ringtone is heard from the loudspeaker if BT connected. 
* Ringtone played both to headset (BT or wired) and to internal HF speakers. 
* AV sync fix for recorded videos.

=== Camera ===
* ISO EXIF value for images saved when automatic sensitivity in use. 
* Vignetting test of 2nd camera fixed, VGA sensor stability. 

=== Battery and Charging ===
* Improved charging in case of low charging power (PC USB charging). 

=== USB ===
* Fixing the USB detection and card mounting issue related to quickly attaching/detaching the cable.
* Able to format corrupted eMMC properly. 
* Hang fixed in case of WLAN disconnection while copying files.

=== Synchronization ===
* Activesync supports now MS Exchange 2003.
* Activesync - fixes the forwarding of attachments showing incorrect sizes (Exchange server 2003). 
* Content copier of PC Suite enabled. Whole content backup (including Notes) can now be restored from PCSuite.

=== 3rd party applications ===
* Policy-settings: Fixes rotation transition for 3rd party applications.
* Policy-settings: By default, 3rd party apps should have the same limits as our applications.

=== Calendar ===
* Public API for color picker. Home widget is now translucent.
* Set/get alarms API. 
* Syncing of task alarms supported. 

=== Image Viewer ===
* Thumbnailing faster.

=== Application Manager ===
* Rename Maemo Extras to maemo.org and enable by default. 
* Grid view applied for the categories in download view. Added API for filtering packages.

=== Development Platform ===
* SDK content and tools updated.
* SDK GUI installer updated.
* New sharing-dialog-dev package added to enable Bluetooth and email sending.
* New wappushd-dev package documenting MMS interfaces available.

=== Upstream Security Issues ===

* Fix for CVE-2009-2417 in curl.

== Community reports fixed ==

Reports in http://bugs.maemo.org that have been fixed for PR1.1:

=== Browser ===
* [https://bugs.maemo.org/show_bug.cgi?id=3186 &quot;&quot;About Flash Player&quot;&quot; contextual menu item treated as unrequested pop-up]
* [https://bugs.maemo.org/show_bug.cgi?id=3298 Focus not set to location bar after Ctrl-L shortcut is used]
* [https://bugs.maemo.org/show_bug.cgi?id=5367 Spacebar scrolls more than 1 page]
* [https://bugs.maemo.org/show_bug.cgi?id=5413 microb doesn't trigger onchange]
* [https://bugs.maemo.org/show_bug.cgi?id=5527 Page is not rerendered when JavaScript actions increase page length]
* [https://bugs.maemo.org/show_bug.cgi?id=5720 Complete Browsing History on the N900 sometimes displays &quot;&quot;None&quot;&quot;]
* [https://bugs.maemo.org/show_bug.cgi?id=6100 The menu item &quot;&quot;copy&quot;&quot; in the browser menu does not work]
* [https://bugs.maemo.org/show_bug.cgi?id=6270 OK button remains disabled in dialog for Integer settings in about:config]
* [https://bugs.maemo.org/show_bug.cgi?id=6669 Browser window checkerboards and repaints when navigated to from multi-task view]
* [https://bugs.maemo.org/show_bug.cgi?id=6671 Sometimes the browser window goes black for over a second after clicking the fullscreen/restore button]

=== Calendar ===
* [https://bugs.maemo.org/show_bug.cgi?id=5790 Start and end times are changing when daylight saving time ends (begins)]
* [https://bugs.maemo.org/show_bug.cgi?id=6811 Incorrect entries in the Birthday Smart Calendar]
* [https://bugs.maemo.org/show_bug.cgi?id=7027 Changing to next week is very slow]
* [https://bugs.maemo.org/show_bug.cgi?id=7469 Smart birthday-widget doesn't show up any birthdays or shows one on random]

=== Chat &amp; Call &amp; SMS ===
* [https://bugs.maemo.org/show_bug.cgi?id=5353 Phone app crashed as call ending]
* [https://bugs.maemo.org/show_bug.cgi?id=5380 Dialer does not accept SS (3GPP TS 22.030) dial strings]
* [https://bugs.maemo.org/show_bug.cgi?id=5440 Unclear how to open a contact (sender/receiver) of a conversation]
* [https://bugs.maemo.org/show_bug.cgi?id=5523 High latency between UI and SIP events being sent]
* [https://bugs.maemo.org/show_bug.cgi?id=5718 clicking on notification window fails for 2 or more messages when in Dashboard]
* [https://bugs.maemo.org/show_bug.cgi?id=5998 Skype does not allow entering DTMF tones]
* [https://bugs.maemo.org/show_bug.cgi?id=6139 skype: Call does not support DTMF tones]
* [https://bugs.maemo.org/show_bug.cgi?id=6152 Can't send sms/chat to known contact from the Call list]
* [https://bugs.maemo.org/show_bug.cgi?id=6384 Volume buttons should be swapped when using the phone in  portrait mode.]
* [https://bugs.maemo.org/show_bug.cgi?id=6651 Call Log only displays contact name that called, not phone number]
* [https://bugs.maemo.org/show_bug.cgi?id=6984 Show wrong Contact for a SMS after a couple of days]
* [https://bugs.maemo.org/show_bug.cgi?id=7279 scrollbar instead of kinetic scrolling]
* [https://bugs.maemo.org/show_bug.cgi?id=7359 Chat window for jabber / xmpp is not always updated with new incoming messages]

=== Connectivity ===
* [https://bugs.maemo.org/show_bug.cgi?id=5518 Bluetooth DBUS UI dialogs - wrong args in the example code]
* [https://bugs.maemo.org/show_bug.cgi?id=5626 Button style in Bluetooth file receive applet is wrong]
* [https://bugs.maemo.org/show_bug.cgi?id=5857 Inconsistent keyboard behaviour when configuring a static ip address]
* [https://bugs.maemo.org/show_bug.cgi?id=6530 Drops WLAN connection to Linksys WRT610N after 10-15 minutes]
* [https://bugs.maemo.org/show_bug.cgi?id=6675 after failed pairing to bluetooth car kit bluetooth can't be turned on]
* [https://bugs.maemo.org/show_bug.cgi?id=6953 Wrong settings for Orange (France) gprs]
* [https://bugs.maemo.org/show_bug.cgi?id=7215 udhcpc overriding default routes]

=== Contacts ===
* [https://bugs.maemo.org/show_bug.cgi?id=5347 address book cannot import vcards from benq/siemens phones properly]
* [https://bugs.maemo.org/show_bug.cgi?id=5593 Contacts re-appear in list after disableing and re-enableing accounts]
* [https://bugs.maemo.org/show_bug.cgi?id=5633 No hint that it is impossible to paste an strings containing non-numeric characters into a phone number field]
* [https://bugs.maemo.org/show_bug.cgi?id=6138 Skype Support&gt;Report problem leads to an error page]

=== Core ===
* [https://bugs.maemo.org/show_bug.cgi?id=6004 N900 sometimes ignores USB data cable]
* [https://bugs.maemo.org/show_bug.cgi?id=7521 N900 doesn't start charging]

=== Desktop platform ===
* [https://bugs.maemo.org/show_bug.cgi?id=3635 Publish sources of alarm framework]
* [https://bugs.maemo.org/show_bug.cgi?id=4594 Failed to build libosso-2.19 from Fremantle repo (ggc 4.3.2)]
* [https://bugs.maemo.org/show_bug.cgi?id=4917 wdgt_va_full_12h_time, wdgt_va_12h_hours should be replaced by wdgt_va_full_12h_time_am/wdgt_va_full_12h_time_pm and wdgt_va_12h_hours_am/wdgt_va_12h_hours_pm]
* [https://bugs.maemo.org/show_bug.cgi?id=5314 Easy to enter ~ ^ ' ` &quot;&quot; symbols with 3rd row of special character view]
* [https://bugs.maemo.org/show_bug.cgi?id=5343 &quot;&quot;More...&quot;&quot; applications launcher does't allow scrolling]
* [https://bugs.maemo.org/show_bug.cgi?id=5372 Can't easily align desktop widgets (snap to position) on home screens]
* [https://bugs.maemo.org/show_bug.cgi?id=5395 No rubber-banding effect in the Main &quot;&quot;More...&quot;&quot; menu (task launcher)]
* [https://bugs.maemo.org/show_bug.cgi?id=5419 WiFi password shows up in auto-completion]
* [https://bugs.maemo.org/show_bug.cgi?id=5559 When applying a different theme, not all colors change in application manager]
* [https://bugs.maemo.org/show_bug.cgi?id=5601 libsdl: Task switcher area can be a dead area]
* [https://bugs.maemo.org/show_bug.cgi?id=5628 FN-lock and Ctrl+Backspace breaks input for used application]
* [https://bugs.maemo.org/show_bug.cgi?id=5694 Application Manager moves to background after start when quickly clicking]
* [https://bugs.maemo.org/show_bug.cgi?id=5745 Typing in newly opened window brings up contact search]
* [https://bugs.maemo.org/show_bug.cgi?id=5972 Race condition with hardware shift key]
* [https://bugs.maemo.org/show_bug.cgi?id=5993 Home view blurs on triple-tapping the launcher grid icon]
* [https://bugs.maemo.org/show_bug.cgi?id=6039 Hanging application menu requires system reboot]
* [https://bugs.maemo.org/show_bug.cgi?id=6203 Rotation in 42-11 is not as smooth as in 41-10 for some third party apps]
* [https://bugs.maemo.org/show_bug.cgi?id=6932 &quot;&quot;More...&quot;&quot; view is not sorted at all]
* [https://bugs.maemo.org/show_bug.cgi?id=7079 Add a (short shown) scroll bar in the status area window to indicate that there are more elements inside as actually shown]
* [https://bugs.maemo.org/show_bug.cgi?id=7388 Updating software removes desktop shortcuts]

=== Desktop Widgets ===
* [https://bugs.maemo.org/show_bug.cgi?id=5351 AP News Widget causes Excessive CPU wakeups]
* [https://bugs.maemo.org/show_bug.cgi?id=5415 Contact widgets move to active desktop after merge]
* [https://bugs.maemo.org/show_bug.cgi?id=6907 Media Player widget suddenly starts music after Phone call ends]

=== Development Platform ===
* [https://bugs.maemo.org/show_bug.cgi?id=5152 Link to C code not working (not a link in fact) on Fremantle camera api dev page]
* [https://bugs.maemo.org/show_bug.cgi?id=5287 Package downloads should be retried when the http connection time-outs]
* [https://bugs.maemo.org/show_bug.cgi?id=5763 Link for osso_wlan documentation broken]
* [https://bugs.maemo.org/show_bug.cgi?id=6177 Consider pushing sharing-dialog-dev to nokia-binaries to encourage developer usage of sharing dialog]
* [https://bugs.maemo.org/show_bug.cgi?id=6207 Video indexing failed in SDK (Tracker issue?)]
* [https://bugs.maemo.org/show_bug.cgi?id=7101 xkbdata: Inconsistency between installed packages in SDK and FW]
* [https://bugs.maemo.org/show_bug.cgi?id=7280 example source code not available in &quot;Writing a new maemo application&quot;]
* [https://bugs.maemo.org/show_bug.cgi?id=7516 e2fsprogs derivative packages not available?]
* [https://bugs.maemo.org/show_bug.cgi?id=7603 HildonTouchSelector example has wrong parameters in callback function]
* [https://bugs.maemo.org/show_bug.cgi?id=7766 URL for sharing plugin template missing]

=== Email ===
* [https://bugs.maemo.org/show_bug.cgi?id=2987 Does not always mark e-mails as read (dovecot/cyrus/google IMAP server)]
* [https://bugs.maemo.org/show_bug.cgi?id=3728 Modest reports email username / password incorrect when it is correct]
* [https://bugs.maemo.org/show_bug.cgi?id=3762 Performance is unusable on IMAP accounts with a large number of messages in one or more folders (e.g. INBOX)]
* [https://bugs.maemo.org/show_bug.cgi?id=4719 When an IMAP account is selected, only refresh that account's folders]
* [https://bugs.maemo.org/show_bug.cgi?id=4918 Locales not working correctly]
* [https://bugs.maemo.org/show_bug.cgi?id=5109 Deleting email should be more evident...]
* [https://bugs.maemo.org/show_bug.cgi?id=5156 Fix modest compilation warning]
* [https://bugs.maemo.org/show_bug.cgi?id=5188 Remove HildonDialog deprecated symbol]
* [https://bugs.maemo.org/show_bug.cgi?id=5241 Import conic support only if It's available]
* [https://bugs.maemo.org/show_bug.cgi?id=5242 Remove Hildon 0.x conditional code]
* [https://bugs.maemo.org/show_bug.cgi?id=5249 Remove Hildon 1.x conditional code in Hildon2 version of modest]
* [https://bugs.maemo.org/show_bug.cgi?id=6219 Modest doesn't take care of preferences for automatic update]
* [https://bugs.maemo.org/show_bug.cgi?id=6349 New email notification leads to blank email instead of email itself]
* [https://bugs.maemo.org/show_bug.cgi?id=6622 nokia messaging doesn't synchronize selected imap folders]
* [https://bugs.maemo.org/show_bug.cgi?id=7236 Long delays when opening emails - viewer window shows &quot;&quot;Updating&quot;&quot;]

=== Images and Camera ===
* [https://bugs.maemo.org/show_bug.cgi?id=5493 When ISO sensitivity is set to automatic, ISO EXIF value in resulting image is 0]
* [https://bugs.maemo.org/show_bug.cgi?id=5603 Vertical photos from other devices should fill more space when shown in portrait.]
* [https://bugs.maemo.org/show_bug.cgi?id=5663 User-facing camera produces a left side dark vertical band]
* [https://bugs.maemo.org/show_bug.cgi?id=5676 Audio does not sync with video (and is ultimately unsyncable)]
* [https://bugs.maemo.org/show_bug.cgi?id=5688 Improve zooming]
* [https://bugs.maemo.org/show_bug.cgi?id=6838 Portrait images are scaled to 480px height (instead of width) when displayed in portrait mode]
=== Location ===
* [https://bugs.maemo.org/show_bug.cgi?id=5761 Bluetooth GPS reconnect dialog refuses to go away after clicking &quot;&quot;No&quot;&quot;]

=== Map ===
* [https://bugs.maemo.org/show_bug.cgi?id=6544 USA localization displays distance in kilometers]
* [https://bugs.maemo.org/show_bug.cgi?id=6770 Can't delete route waypoints in Map application]
* [https://bugs.maemo.org/show_bug.cgi?id=7048 Route Settings screen is not finger friendly]

=== Media player ===
* [https://bugs.maemo.org/show_bug.cgi?id=5305 Information on artist / track not updated in media player with internet radio]
* [https://bugs.maemo.org/show_bug.cgi?id=5522 Plays next radio station when current station cuts out / has playback issues]
* [https://bugs.maemo.org/show_bug.cgi?id=5558 flashing pixels around the lock button if media player is playing a video.]
* [https://bugs.maemo.org/show_bug.cgi?id=5879 Media player track search only matches the beginning of title/artist]
* [https://bugs.maemo.org/show_bug.cgi?id=5901 Viewing songs by &quot;&quot;Artists&quot;&quot; automatically scrolls to the end of the list]

=== Multimedia ===
* [https://bugs.maemo.org/show_bug.cgi?id=5948 N900 needs to be rebooted if media player fails to play video (h264dec)]
* [https://bugs.maemo.org/show_bug.cgi?id=6410 Volume in media player jumps when receiving emails, IMÂ´s or smsÂ´s]
* [https://bugs.maemo.org/show_bug.cgi?id=7271 Can't change FM TX radio station name]
* [https://bugs.maemo.org/show_bug.cgi?id=7327 Xvid encoded videos unwatchable]

=== Settings and Maintenance ===
* [https://bugs.maemo.org/show_bug.cgi?id=3279 Streamlining user access to the Extras repository]
* [https://bugs.maemo.org/show_bug.cgi?id=5135 Should remember position in packages list after installing package]
* [https://bugs.maemo.org/show_bug.cgi?id=5295 Other Category appears twice]
* [https://bugs.maemo.org/show_bug.cgi?id=5450 Installing many packages at a time via App Manager exhausts rootfs space]
* [https://bugs.maemo.org/show_bug.cgi?id=5545 Artifacts (visual noise) when tapping screen in Screen Calibration]
* [https://bugs.maemo.org/show_bug.cgi?id=5725 docpurge is not aware of /opt]
* [https://bugs.maemo.org/show_bug.cgi?id=5768 Inconsistent layout on similar Sharing/VOIP applets]
* [https://bugs.maemo.org/show_bug.cgi?id=6107 Background image settings not restored]

=== Sharing ===
* [https://bugs.maemo.org/show_bug.cgi?id=6737 Evernote uses too much space in root partition, should use /opt]

=== Statusbar Widgets ===
* [https://bugs.maemo.org/show_bug.cgi?id=5744 Volume slider doesn't notice when you plug in headphones]
* [https://bugs.maemo.org/show_bug.cgi?id=6771 Currently active connection should be first in Connections list]

=== Synchronization ===
* [https://bugs.maemo.org/show_bug.cgi?id=5597 First Synchronization between N900 and Exchange 2003 Server always fails]
* [https://bugs.maemo.org/show_bug.cgi?id=6145 MfE spams screen with error messages when it cannot connect to the server]
* [https://bugs.maemo.org/show_bug.cgi?id=6517 MfE wont keep Exchange account updated]
* [https://bugs.maemo.org/show_bug.cgi?id=7073 Changing password on Exchange 2007 makes MfE go crazy]
* [https://bugs.maemo.org/show_bug.cgi?id=7222 Company Directory not present]
* [https://bugs.maemo.org/show_bug.cgi?id=7357 MfE is missing some CA cert symlinks on some devices (NuevaSync)]
* [https://bugs.maemo.org/show_bug.cgi?id=7513 Initial sync fails with exchange 2007]

=== System Analysis ===
* [https://bugs.maemo.org/show_bug.cgi?id=6350 getbootstate bricks the device after 17 reboots if there are no normal boots in between them]

=== System software ===
* [https://bugs.maemo.org/show_bug.cgi?id=5911 Shaking device switches between landscape and portrait modes]
* [https://bugs.maemo.org/show_bug.cgi?id=6470 Charger not recognized when plugged in when in Touch &amp; Key lock]
* [https://bugs.maemo.org/show_bug.cgi?id=6752 Low power/battery beep does not sound if you're on a call]
* [https://bugs.maemo.org/show_bug.cgi?id=6877 Pin / lock code entry dialog reveals digits on backspace]

=== Telephony ===
* [https://bugs.maemo.org/show_bug.cgi?id=5315 3 Mobile SIM card rejected]
* [https://bugs.maemo.org/show_bug.cgi?id=5607 Call forwarding settings not being saved]
* [https://bugs.maemo.org/show_bug.cgi?id=7001 No pause before sending DTMF tones]
* [https://bugs.maemo.org/show_bug.cgi?id=7882 Ring tone played through Bluetooth headset instead of internal speakers]

=== Translations ===
* [https://bugs.maemo.org/show_bug.cgi?id=5308 Change 'TV uit' (TV out) to 'TV-uitgang']
* [https://bugs.maemo.org/show_bug.cgi?id=5392 &quot;Ładowanie&quot; used without distinction between &quot;&quot;charging&quot;&quot; and &quot;&quot;loading&quot;&quot;]
* [https://bugs.maemo.org/show_bug.cgi?id=5418 addr_va_lastname has a comma that it shouldn't have]
* [https://bugs.maemo.org/show_bug.cgi?id=5602 IP address field in WiFi advanced settings partially hidden (&quot;&quot;Recuperar automáticamente dirección IP&quot;&quot; string too long)]
* [https://bugs.maemo.org/show_bug.cgi?id=5819 Some sentences in the User Guide don't make sense]
* [https://bugs.maemo.org/show_bug.cgi?id=5820 Wrong profile names in the User Guide]
* [https://bugs.maemo.org/show_bug.cgi?id=6261 Delete dialog text missing a space]
* [https://bugs.maemo.org/show_bug.cgi?id=6736 Polish string too long in UPnP browsing menu bar]
* [https://bugs.maemo.org/show_bug.cgi?id=7639 Wrong PO Box translation for CZ language]

=== Utilities ===
* [https://bugs.maemo.org/show_bug.cgi?id=4916 Re-enable reset and/or reset-and-clear in osso-xterm]
* [https://bugs.maemo.org/show_bug.cgi?id=5605 &quot;&quot;Already at minimum / maximum font size.&quot;&quot; not translated]
* [https://bugs.maemo.org/show_bug.cgi?id=6612 File manager fails to show folder sizes beyond 999,9 MB]
* [https://bugs.maemo.org/show_bug.cgi?id=7795 Clock alarm status icon is sometimes shown as dash (-)&quot;]

== Content comparison ==
Comparison between w42-11 (sales release) and w51-1 (PR1.1) at a package level.
* [http://repository.maemo.org/stable/5.0/1.2009.42-11_vs_2.2009.51-1_content_comparison.html Full comparison]
* [http://repository.maemo.org/stable/5.0/1.2009.42-11_vs_2.2009.51-1_content_changes.html Changes only]

{{Maemo 5 firmware updates}}

[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5/PR1.1.1</title>
    <id>3603</id>
    <revision>
      <id>41603</id>
      <timestamp>2011-02-04T10:32:18Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use template</comment>
      <text xml:space="preserve">{{Firmware update}}

Maemo 5 PR1.1.1 was released on February 16, 2010, and follows the earlier [[Maemo 5/PR1.1|PR 1.1]] update.

This update can be installed over the air. Below you will find additional technical details.

The Maemo 5 SDK and tools were not updated as this is just a minor release.

== Included packages ==
 apt
 apt-transport-https
 cmt-firmware-rx51
 connui-conndlgs
 flasher
 hildon-application-manager
 icd2
 libas-protocol-0
 libconbtui0
 libconnui
 libgles2-sgx-img
 libicd2
 librtcom-call-ui0 
 locale-resolver-data
 Maemo5
 nolo
 opengles-sgx-img-common
 operator-wizard-settings
 osso-accounts-plugin-skype
 osso-applet-lanuageregional
 osso-wlan
 posix-locales
 rtcom-call-ui
 tablet-browser-controls
 tablet-browser-daemon
 tablet-browser-ui
 tablet-browser-view
 wl1251-firmware

=== Application manager ===
* Disables apt-get from installing ovi store content
* Enables .deb installation from file manager/browser/email/whatnot

=== locales ===
* Adds roughly 18 new regions

=== OpenGL ES 1.x ===
Passes conformity tests, so can be used for full blown game development.

== Community reports fixed ==

=== Connectivity ===
* [https://bugs.maemo.org/show_bug.cgi?id=6416 Wifi won't connect until rebooted...]
* [https://bugs.maemo.org/show_bug.cgi?id=6699 Vodafone Italy: Wrong APN is autoconfigured]

=== Core ===
* [https://bugs.maemo.org/show_bug.cgi?id=6816 OpenGL ES 1.1 should be supported]

=== Settings and Maintenance ===
* [https://bugs.maemo.org/show_bug.cgi?id=6153 apt-get segfaults when system has ran out of ptys]

=== System software ===
* [https://bugs.maemo.org/show_bug.cgi?id=6615 Battery Dies Under 6 Hours with Very Moderate Use (Static IP?)]

=== Telephony ===
* [https://bugs.maemo.org/show_bug.cgi?id=7757 wrong cmt-firmware-rx51 (cell modem) version in published firmware?]

{{Maemo 5 firmware updates}}

[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5/PR1.2</title>
    <id>3598</id>
    <revision>
      <id>41604</id>
      <timestamp>2011-02-04T10:33:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use template</comment>
      <text xml:space="preserve">{{Firmware update}}



[[Maemo 5/PR1.1.1|PR 1.1.1]] was the preparatory release for PR1.2 (V10.2010.19-1), which was [http://conversations.nokia.com/2010/05/25/nokia-n900-software-update-release-1-2/ released on May 25/26, 2010].


The PR1.2 SDK and tools has been updated on March 22nd, 2010 in order to give the developers time to adapt to the new firmware update and Qt 4.6.

== New Features ==

* Skype video call (with PC and other Skype video capable clients)
* XMPP video call (with Google Talk, PC web client or other GTalk video capable clients like N900, N810, N800 etc., or GNOME desktop client). In general, with any XMPP Jingle video call capable client.
* SIP video call (with supported SIP video call clients)
* Skype multiuser chat
* Qt 4.6.2 is now preinstalled on the OS.
* Changes for the video recording in the Camera Application.
* Video calling can be accessed through contacts (Skype and gtalk).
* Can dial USSD Codes.
* SS codes dialing available as ester egg (go figure).
* No more &quot;More&quot; menu in application launcher, and is rearrangeable.
* Virtual Keyboard has been modified and now looks different.
* Long-press on hardware keyboard equivalent to Fn key (blue arrow)
* File Manager is now able to share any file and/or folder.
* Typing in Application Manager starts a search (like it is in Contacts or Media Player).
* New design of Maps, navigation now with waypoints and arrows
* Tab on address in contact starts Maps and shows position of contact-address
* [[PR1.2 compulsory My Nokia subscription|My Nokia subscription]]
* &lt;s&gt;Portrait mode Virtual Keyboard for browser. *Not yet confirmed* [http://talk.maemo.org/showpost.php?p=583355&amp;postcount=206 (Source)]&lt;/s&gt;

== Resolved bugs ==

Please note that this list is not necessarily complete.

See [https://bugs.maemo.org/buglist.cgi?classification=Maemo%20Official%20Applications&amp;classification=Maemo%20Official%20Platform&amp;resolution=FIXED&amp;target_milestone=5.0%2F%2810.2010.19-1%29&amp;order=map_products.name%2Cbugs.bug_id this] query for more accurate/up-to-date report.

=== maemo.org Official Applications: ===

==== Browser ====

* [https://bugs.maemo.org/show_bug.cgi?id=1800 Tapping browser RSS icon lists two RSS feeds, one from an iframe]
* [https://bugs.maemo.org/show_bug.cgi?id=1801 Tapping browser RSS icon should list ATOM feed, not just RSS]
* [https://bugs.maemo.org/show_bug.cgi?id=5485 &quot;&quot;restart&quot;&quot; button after finishing download not localized (in Finnish)]
* [https://bugs.maemo.org/show_bug.cgi?id=5526 Type-to-find behaviour is inconsistent and suboptimal in browser]
* [https://bugs.maemo.org/show_bug.cgi?id=5684 History images do not match actual URLs under them]
* [https://bugs.maemo.org/show_bug.cgi?id=5705 Browser drawing issue in web pages with (multiple?) Flash applets]
* [https://bugs.maemo.org/show_bug.cgi?id=5783 Smooth scrolling not active using arrow keys until current page tapped]
* [https://bugs.maemo.org/show_bug.cgi?id=5829 &quot;&quot;Select user name&quot;&quot; dialog not finger friendly]
* [https://bugs.maemo.org/show_bug.cgi?id=5945 URL proposals in browser disappear after some hours]
* [https://bugs.maemo.org/show_bug.cgi?id=6066 Sticky shift &amp; Fn not working for Flash text input fields: Impossible to use special characters palette]
* [https://bugs.maemo.org/show_bug.cgi?id=6184 Find on page causes page to reload]
* [https://bugs.maemo.org/show_bug.cgi?id=6269 Can't reuse the name of a bookmark that has been deleted]
* [https://bugs.maemo.org/show_bug.cgi?id=6342 Use Volume hardware key for adjust the device volume instead of zooming a website]
* [https://bugs.maemo.org/show_bug.cgi?id=6396 Zooming is not working right away when link clicked from desktop]
* [https://bugs.maemo.org/show_bug.cgi?id=6598 Browser should display passwords one character at a time like other applications]
* [https://bugs.maemo.org/show_bug.cgi?id=6743 Screen sometimes flickers when scrolling through bookmarks triggers rubber banding]
* [https://bugs.maemo.org/show_bug.cgi?id=6819 High CPU usage for 15 seconds after page loaded (Deleting History helps)]
* [https://bugs.maemo.org/show_bug.cgi?id=7174 specifying &quot;&quot;DejaVu Sans Mono&quot;&quot;,&quot;&quot;Courier New&quot;&quot;,monospace,Freemono fonts break pre]
* [https://bugs.maemo.org/show_bug.cgi?id=7235 g_mozilla_parse_env_proxy limits proxy server names to about 20 characters [http_proxy]]
* [https://bugs.maemo.org/show_bug.cgi?id=7335 Browser shows strong font kerning bugs (esp. when zooming)]
* [https://bugs.maemo.org/show_bug.cgi?id=7445 mobile4arab.com: After zooming in, sometimes cannot drag to the right side]
* [https://bugs.maemo.org/show_bug.cgi?id=7566 Browser toolbar steals text focus in fullscreen mode when &quot;&quot;Auto focus address field&quot;&quot; is enabled]
* [https://bugs.maemo.org/show_bug.cgi?id=7567 Browser toolbar steals text focus in fullscreen mode with remapped arrow keys]
* [https://bugs.maemo.org/show_bug.cgi?id=7568 Sites in history overview that were loaded in portrait mode appear distorted]
* [https://bugs.maemo.org/show_bug.cgi?id=7620 Browser process opens ports on all interfaces.]
* [https://bugs.maemo.org/show_bug.cgi?id=7806 Browser crashes while sending a comment to Maemo.org]
* [https://bugs.maemo.org/show_bug.cgi?id=7890 Clicking on webcal:// link does nothing (not even an error dialog)]
* [https://bugs.maemo.org/show_bug.cgi?id=8010 Browser repaints after switching from contacts]
* [https://bugs.maemo.org/show_bug.cgi?id=8091 Press and hold in Browser portrait mode does nothing]
* [https://bugs.maemo.org/show_bug.cgi?id=8104 Browser portrait mode makes it stop working after a while]
* [https://bugs.maemo.org/show_bug.cgi?id=8117 Browser doesn't show progress indicator when user selects url from urlbar completion list]
* [https://bugs.maemo.org/show_bug.cgi?id=8252 Browser address bar refreshes/blanks shortly after new window opens]
* [https://bugs.maemo.org/show_bug.cgi?id=8276 Imported SSL Certificates not recognized after PR1.1]
* [https://bugs.maemo.org/show_bug.cgi?id=8362 Some combination of Maemo 5 + Nokia N900 results in improper onChange callbacks in the maemo browser]
* [https://bugs.maemo.org/show_bug.cgi?id=8385 New browser windows' contents are not updated when page loads in background]
* [https://bugs.maemo.org/show_bug.cgi?id=8601 Provide UI to enable/disable portrait mode]
* [https://bugs.maemo.org/show_bug.cgi?id=8606 Cannot scroll web bookmark folders if more than 5 folders]
* [https://bugs.maemo.org/show_bug.cgi?id=8683 Browser crashes when browsing some websites]
* [https://bugs.maemo.org/show_bug.cgi?id=8763 Back yields grayed page]
* [https://bugs.maemo.org/show_bug.cgi?id=8784 Browser crashes while changing system theme]
* [https://bugs.maemo.org/show_bug.cgi?id=8920 MicroB loses first keystroke]
* [https://bugs.maemo.org/show_bug.cgi?id=9362 Page view &quot;&quot;unstable&quot;&quot; (due to animated GIFs?)]
* [https://bugs.maemo.org/show_bug.cgi?id=9365 Maemo Browser does not honor CSS serif font specifications]
* [https://bugs.maemo.org/show_bug.cgi?id=9460 Disable show images leads to failure in opening links in a new window]
* [https://bugs.maemo.org/show_bug.cgi?id=9555 Only the address bar is visible on the bottom panel]
* [https://bugs.maemo.org/show_bug.cgi?id=9566 Browser doesn't stop flash or another plugins while device is locked]
* [https://bugs.maemo.org/show_bug.cgi?id=9926 No more search results loads new page]
* [https://bugs.maemo.org/show_bug.cgi?id=10101 Browser: Incorrect display then internal error (double access to the same buffer)]

==== Calendar ====

* [https://bugs.maemo.org/show_bug.cgi?id=6431 Alarm setting for Birthday is removed after adding photo to contact]
* [https://bugs.maemo.org/show_bug.cgi?id=6687 Calendar (and Calendar desktop Widget) can take up to 30 seconds to become responsive when a lot of Smart Calendar items are present]
* [https://bugs.maemo.org/show_bug.cgi?id=6909 Calendar launches automatically at 4:00 each night]
* [https://bugs.maemo.org/show_bug.cgi?id=8169 Exported .ics calendars have bad line format (LF for empty lines)]
* [https://bugs.maemo.org/show_bug.cgi?id=8175 Exported calendars lack PRODID properties]
* [https://bugs.maemo.org/show_bug.cgi?id=8332 Day View doesn't display synced events with complex uneditable repeats]
* [https://bugs.maemo.org/show_bug.cgi?id=8448 Tasks also displayed as notes]
* [https://bugs.maemo.org/show_bug.cgi?id=8463 libcalendar produces AALARM properties containing unescaped CRLF which prevents OSX synchronisation]
* [https://bugs.maemo.org/show_bug.cgi?id=8481 Notes imported without DTSTART fields are not displayed]
* [https://bugs.maemo.org/show_bug.cgi?id=8678 Overdue tasks should be displayed as today's]
* [https://bugs.maemo.org/show_bug.cgi?id=8889 New event in calendar causes crash when using bg_BG locales]
* [https://bugs.maemo.org/show_bug.cgi?id=9048 &quot;&quot;Internal Error: Application 'Calendar' closed when importing ics file]

==== Chat &amp; Call &amp; SMS ====

* [https://bugs.maemo.org/show_bug.cgi?id=5357 Does not accept GSM (USSD) Codes starting with *#]
* [https://bugs.maemo.org/show_bug.cgi?id=6016 Can't see the number an SMS was sent to]
* [https://bugs.maemo.org/show_bug.cgi?id=6201 libnice violates Debian packaging policy for description of package &quot;&quot;libnice0&quot;&quot;]
* [https://bugs.maemo.org/show_bug.cgi?id=6300 :/ in http:// is converted into an emoticon in some cases]
* [https://bugs.maemo.org/show_bug.cgi?id=6641 Sofia-SIP throws 500 Internal Server Error]
* [https://bugs.maemo.org/show_bug.cgi?id=6692 Unable to set a Google Talk account to Away]
* [https://bugs.maemo.org/show_bug.cgi?id=6733 gmail status set to away when skype status set to invisible]
* [https://bugs.maemo.org/show_bug.cgi?id=6769 Can't  answer a phone call with a short caller ID]
* [https://bugs.maemo.org/show_bug.cgi?id=6857 USSD codes are not recognized in chat]
* [https://bugs.maemo.org/show_bug.cgi?id=6936 Caller voice gets minced after some time when taking call via SIP]
* [https://bugs.maemo.org/show_bug.cgi?id=7052 Unable to see the sender's phone number used for a received sms]
* [https://bugs.maemo.org/show_bug.cgi?id=7212 Sent text messages are shown as unsent]
* [https://bugs.maemo.org/show_bug.cgi?id=7227 Contact names do not resolve correctly when country code is prefixed.]
* [https://bugs.maemo.org/show_bug.cgi?id=7361 Make a phone call to a contact from the sms view]
* [https://bugs.maemo.org/show_bug.cgi?id=7375 account-plugin-butterfly - delete contacts doesn't work]
* [https://bugs.maemo.org/show_bug.cgi?id=7856 Recent Call entries are shown in conversations]
* [https://bugs.maemo.org/show_bug.cgi?id=7886 Tapping 'Task Manager' shows 'Clear Conversation' option while in a conversation]
* [https://bugs.maemo.org/show_bug.cgi?id=7933 Conversation IM window is not responding when Select contact dialog is displayed in background]
* [https://bugs.maemo.org/show_bug.cgi?id=7952 GTalk contact offline text is shown in conversion even if contact is back online]
* [https://bugs.maemo.org/show_bug.cgi?id=8082 Voice can be heard only one way with Saunalahti Nettipuhelin]
* [https://bugs.maemo.org/show_bug.cgi?id=8428 Carrier doesn't stop attempting to send USSD codes that aren't received (automated balance receipt)]
* [https://bugs.maemo.org/show_bug.cgi?id=8441 Messages don't change to &quot;&quot;read&quot;&quot; status after being read]
* [https://bugs.maemo.org/show_bug.cgi?id=8454 Placing a call in portrait mode gets desktop stuck in portrait mode upon exit.]
* [https://bugs.maemo.org/show_bug.cgi?id=8573 Conversation doesn't respect aspect ratio in avatars]
* [https://bugs.maemo.org/show_bug.cgi?id=8581 Reduce XMPP data packets to save battery]
* [https://bugs.maemo.org/show_bug.cgi?id=8854 Jabber opens unnecessary proxy connections]
* [https://bugs.maemo.org/show_bug.cgi?id=8954 SMS Sort/Filter/Search does not allow numbers to be entered (Fn key does not work beyond first digit)]
* [https://bugs.maemo.org/show_bug.cgi?id=8958 portrait layout for receiving call shown in landscape mode (-&gt; no Reject button)]
* [https://bugs.maemo.org/show_bug.cgi?id=9005 XMPP lacks option to require TLS (vulnerable to MITM attacks)]
* [https://bugs.maemo.org/show_bug.cgi?id=9231 Open contact card' broken for newly sent SMS]
* [https://bugs.maemo.org/show_bug.cgi?id=9243 Telephony uses 100% CPU for video call (using Google Talk)]
* [https://bugs.maemo.org/show_bug.cgi?id=9501 Phone UI not rotating to portrait mode]
* [https://bugs.maemo.org/show_bug.cgi?id=9973 SIP account can not be re-activated]

==== Contacts ====

* [https://bugs.maemo.org/show_bug.cgi?id=2962 Not able to open Maps application with contacts location as a search string]
* [https://bugs.maemo.org/show_bug.cgi?id=5510 Contact merge of number dialed manually via Skype fails due to internal error]
* [https://bugs.maemo.org/show_bug.cgi?id=5742 Contacts: Provide &quot;&quot;Fax&quot;&quot; field(s)]
* [https://bugs.maemo.org/show_bug.cgi?id=6375 Provides SMS buttons for &quot;&quot;Phone&quot;&quot; entries and not only &quot;&quot;Mobile&quot;&quot; entries]
* [https://bugs.maemo.org/show_bug.cgi?id=6503 only 2 Lines of Notes are visible in Contacts]
* [https://bugs.maemo.org/show_bug.cgi?id=6945 Skype: merged contact has duplicate phone number]
* [https://bugs.maemo.org/show_bug.cgi?id=7515 List of countries not shown on tapping the country picker button]
* [https://bugs.maemo.org/show_bug.cgi?id=8022 Making a SIP call crashes osso-addressbook]
* [https://bugs.maemo.org/show_bug.cgi?id=8159 Missing direct shortcut to use SIP/Skype again in Recent Calls list]
* [https://bugs.maemo.org/show_bug.cgi?id=8495 &quot;&quot;SIP audio&quot;&quot;  buttons active with no SIP accounts active]
* [https://bugs.maemo.org/show_bug.cgi?id=9010 Merging contacts, unable to select neither as an option in conflict field]

==== Desktop Widgets ====

* [https://bugs.maemo.org/show_bug.cgi?id=5331 Add AVRCP support to the Media Player widget (and system-wide?)]
* [https://bugs.maemo.org/show_bug.cgi?id=5894 Play track button doesn't work]
* [https://bugs.maemo.org/show_bug.cgi?id=6748 Small line visible below media player widget]
* [https://bugs.maemo.org/show_bug.cgi?id=7996 Media player's desktop widget displays wrong metadata of internet radios]
* [https://bugs.maemo.org/show_bug.cgi?id=8002 Being offline, RSS Reader tries to connect for refresh unconditionally]

==== Email ====

* [https://bugs.maemo.org/show_bug.cgi?id=2582 Option to download messages but not attachments (&quot;&quot;Messages only&quot;&quot;)]
* [https://bugs.maemo.org/show_bug.cgi?id=2922 Want ability to delete POP mail from server]
* [https://bugs.maemo.org/show_bug.cgi?id=3387 Modest doesn't fetch GMX IMAP mail (issuing LIST &quot;&quot;&quot;&quot; instead of LIST &quot;&quot;*&quot;&quot;)]
* [https://bugs.maemo.org/show_bug.cgi?id=4211 There should be a desktop widget for mail (like rss)]
* [https://bugs.maemo.org/show_bug.cgi?id=4834 Remove deprecated GTK+ symbols]
* [https://bugs.maemo.org/show_bug.cgi?id=4876 Remove libgnomeui dependency]
* [https://bugs.maemo.org/show_bug.cgi?id=4887 Use accessor functions instead direct access]
* [https://bugs.maemo.org/show_bug.cgi?id=4889 Use single GTK+ includes]
* [https://bugs.maemo.org/show_bug.cgi?id=4973 Support silent build rules with automake 1.11]
* [https://bugs.maemo.org/show_bug.cgi?id=4976 Add option in modest to add/not add new contact when replying to mail]
* [https://bugs.maemo.org/show_bug.cgi?id=5033 Select/Copy text within email is nonintuitive/broken]
* [https://bugs.maemo.org/show_bug.cgi?id=5161 Fix some compilation warnings in GNOME version]
* [https://bugs.maemo.org/show_bug.cgi?id=5266 Remove unneeded modest_osso_load_state () calls]
* [https://bugs.maemo.org/show_bug.cgi?id=5267 Remove unused modest-osso-autosave-callbacks.c/h files]
* [https://bugs.maemo.org/show_bug.cgi?id=5341 Can't disable email notification - makes notification unusable if you receive lots of mail]
* [https://bugs.maemo.org/show_bug.cgi?id=5417 Delete button greyed out when opening from notification popup]
* [https://bugs.maemo.org/show_bug.cgi?id=5503 Failed outgoing mails when using Nokia Messaging and Exchange]
* [https://bugs.maemo.org/show_bug.cgi?id=5634 Deleted IMAP messages are not expunged]
* [https://bugs.maemo.org/show_bug.cgi?id=5836 POP3 TCP connection is left open leading to locking issues]
* [https://bugs.maemo.org/show_bug.cgi?id=5870 Long emails can't be read - distorted output on screen after scrolling]
* [https://bugs.maemo.org/show_bug.cgi?id=6027 Only require libmodest-dbus-client in maemo platform]
* [https://bugs.maemo.org/show_bug.cgi?id=6048 Volume hardware key works only once; afterwards &quot;&quot;Unable to zoom&quot;&quot; in list of mail accounts, list of mail folders, New Mail editor]
* [https://bugs.maemo.org/show_bug.cgi?id=6279 Modest is very slow at loading images]
* [https://bugs.maemo.org/show_bug.cgi?id=6541 Polish Subject line violates RFC (&quot;&quot;Odp.&quot;&quot; prefix)]
* [https://bugs.maemo.org/show_bug.cgi?id=6570 Double-tapping &quot;&quot;Inbox&quot;&quot; sometimes opens 'empty' Inbox]
* [https://bugs.maemo.org/show_bug.cgi?id=6575 Tapping new Email notification does not bring up email message]
* [https://bugs.maemo.org/show_bug.cgi?id=6700 Semicolon in To field should be ignored when sending a message]
* [https://bugs.maemo.org/show_bug.cgi?id=6702 email application does not see folders on imap4 with namespace]
* [https://bugs.maemo.org/show_bug.cgi?id=7139 Replying to an email with non-ascii chars in From cuts name short]
* [https://bugs.maemo.org/show_bug.cgi?id=7485 Email message viewer window refreshes a second time when email opened from Notification icon]
* [https://bugs.maemo.org/show_bug.cgi?id=7701 Arabic language not shown or encoded in Modest]
* [https://bugs.maemo.org/show_bug.cgi?id=7718 Unable to save attachment from e-mail without e-mail body]
* [https://bugs.maemo.org/show_bug.cgi?id=8230 cannot move message anywhere]
* [https://bugs.maemo.org/show_bug.cgi?id=8574 Subfolders of Zimbra IMAP server not appearing/not available]
* [https://bugs.maemo.org/show_bug.cgi?id=8604 Type-to-find behaviour is inconsistent and suboptimal in modest]
* [https://bugs.maemo.org/show_bug.cgi?id=10108 hyperlinks in email program terminates on &amp;]

==== Games ====

* [https://bugs.maemo.org/show_bug.cgi?id=3748 Erroneous &quot;&quot;Game not started yet&quot;&quot; message]
* [https://bugs.maemo.org/show_bug.cgi?id=5276 hildon-games-wrapper crashes in hgw_conf_request_string if gconf key has no value]
* [https://bugs.maemo.org/show_bug.cgi?id=5868 Games do not respect master volume (&quot;&quot;sound effects&quot;&quot; enabled though)]
* [https://bugs.maemo.org/show_bug.cgi?id=5869 Chess game over dialog button is unreadable in some themes]
* [https://bugs.maemo.org/show_bug.cgi?id=6616 Mahjong: Łamigłówka (Confounding cross) does not display high score time in Polish]

==== Images and Camera ====

* [https://bugs.maemo.org/show_bug.cgi?id=4053 Confusing behaviour when saving to a file that matches an existing directory]
* [https://bugs.maemo.org/show_bug.cgi?id=6194 Shutter release button does not always work]
* [https://bugs.maemo.org/show_bug.cgi?id=6372 Sometimes photos are not deleted if you delete directly after taking them]
* [https://bugs.maemo.org/show_bug.cgi?id=7060 Sometimes photos are very green]
* [https://bugs.maemo.org/show_bug.cgi?id=7160 Camera app hardcodes and requires FAT partition]
* [https://bugs.maemo.org/show_bug.cgi?id=7394 Some photos are missing EXIF DateTimeOriginal data]
* [https://bugs.maemo.org/show_bug.cgi?id=7559 Old image displayed as a new one when swiping]
* [https://bugs.maemo.org/show_bug.cgi?id=7758 Daily image counter in photo filenames not incrementing in some cases]
* [https://bugs.maemo.org/show_bug.cgi?id=8087 Photo autorotation issue]
* [https://bugs.maemo.org/show_bug.cgi?id=8310 Image Viewer shows only black screen]
* [https://bugs.maemo.org/show_bug.cgi?id=8698 camera does not have the night mode function]
* [https://bugs.maemo.org/show_bug.cgi?id=8877 Volume buttons should work in camera window when lens cover is not opened]

==== Map ====

* [https://bugs.maemo.org/show_bug.cgi?id=5337 Ovi Maps gives up finding GPS lock too soon]
* [https://bugs.maemo.org/show_bug.cgi?id=5391 Virtual keyboard doesn't appear in Maps]
* [https://bugs.maemo.org/show_bug.cgi?id=5905 ovi maps brings up &quot;&quot;Select connection&quot;&quot; dialog relentlessly]
* [https://bugs.maemo.org/show_bug.cgi?id=8850 Ovi Maps search history]
* [https://bugs.maemo.org/show_bug.cgi?id=9532 Search: can input numbers and other &quot;&quot;blue&quot;&quot; characters only with -holding- &quot;&quot;alt&quot;&quot; key]

==== Media player ====

* [https://bugs.maemo.org/show_bug.cgi?id=5318 Missing &quot;&quot;Remove from Playlist&quot;&quot; option]
* [https://bugs.maemo.org/show_bug.cgi?id=5319 Ugly &quot;&quot;now playing&quot;&quot; animation]
* [https://bugs.maemo.org/show_bug.cgi?id=5522 Plays next radio station when current station cuts out / has playback issues]
* [https://bugs.maemo.org/show_bug.cgi?id=5805 Album art disappears when next song is played and you unlock the device]
* [https://bugs.maemo.org/show_bug.cgi?id=6067 Media player becomes unusable if a dialog is open when opening a stream link from browser]
* [https://bugs.maemo.org/show_bug.cgi?id=6823 media player won't play any video files now (.avi) divx / xvid]
* [https://bugs.maemo.org/show_bug.cgi?id=7124 media player loses cover art if song changes while screen is locked]
* [https://bugs.maemo.org/show_bug.cgi?id=7211 &quot;&quot;Unable to play media. Media format not supported&quot;&quot; for recently recorded video]
* [https://bugs.maemo.org/show_bug.cgi?id=7353 RDS station name should not contain album (esp. when its unknown)]
* [https://bugs.maemo.org/show_bug.cgi?id=7464 mediaplayer treats youtube mp4 urls as audio streams]
* [https://bugs.maemo.org/show_bug.cgi?id=7536 Can't search album titles (GtkIconView) by typing on keyboard]
* [https://bugs.maemo.org/show_bug.cgi?id=7634 Media player volume bar doesn't work when a browser with youtube played is opened in background.]
* [https://bugs.maemo.org/show_bug.cgi?id=7802 Media Player Streaming: Elapsed time advances by 1sec when playback is paused and reduced by 1sec when the playback is resumed.]
* [https://bugs.maemo.org/show_bug.cgi?id=7995 Internet radio (ogg) stream metadata not displayed]
* [https://bugs.maemo.org/show_bug.cgi?id=8035 Selecting song in media player doesn't cause song to play]
* [https://bugs.maemo.org/show_bug.cgi?id=8043 AVI Streaming  broken. Local playback works fine.]
* [https://bugs.maemo.org/show_bug.cgi?id=8050 Media Player displays stop button during the playback of an AAC stream. It should display pause button.]
* [https://bugs.maemo.org/show_bug.cgi?id=8189 Strange black box icon in media player's album list]
* [https://bugs.maemo.org/show_bug.cgi?id=8438 Media player playlist icon when not playing is difficult to notice]
* [https://bugs.maemo.org/show_bug.cgi?id=8499 Music stops when &quot;&quot;low battery&quot;&quot; hildon banner is displayed]
* [https://bugs.maemo.org/show_bug.cgi?id=8525 Media Player is not playing WMV Video streams but KMPlayer can]
* [https://bugs.maemo.org/show_bug.cgi?id=8653 Media Player crashed when viewing UPNP contents.]
* [https://bugs.maemo.org/show_bug.cgi?id=9020 Media player crashes when trying to search in ''All songs'']
* [https://bugs.maemo.org/show_bug.cgi?id=9084 Media Player bridge_work-que battery drain]
* [https://bugs.maemo.org/show_bug.cgi?id=9182 No video shown, only audio, when streaming over upnp]
* [https://bugs.maemo.org/show_bug.cgi?id=9308 Media Player doesn't allow to search russian tags]
* [https://bugs.maemo.org/show_bug.cgi?id=9809 Scrolling animation on jump-to-song is too CPU heavy]

==== RSS feed reader ====

* [https://bugs.maemo.org/show_bug.cgi?id=304 Automatic proxy configuration URL not obeyed by RSS feed reader]
* [https://bugs.maemo.org/show_bug.cgi?id=5625 Feed list (Folder tree) uses non-finger friendly classic scrollbars]

==== Settings and Maintenance ====

* [https://bugs.maemo.org/show_bug.cgi?id=5546 In Certificate manager, &quot;&quot;Authorities&quot;&quot; title is shown two times]
* [https://bugs.maemo.org/show_bug.cgi?id=5560 Application manager shows &quot;&quot;ai_ib_unable_edit&quot;&quot; instead of proper, localised string when it has a repository of which it cannot change the details of]
* [https://bugs.maemo.org/show_bug.cgi?id=5746 symlink /var/cache/apt/archives to /home/apt-archives]
* [https://bugs.maemo.org/show_bug.cgi?id=6392 Unable to filter/search applcations' name in Application Manager]
* [https://bugs.maemo.org/show_bug.cgi?id=7446 Unlocking SIM card from control panel fails]
* [https://bugs.maemo.org/show_bug.cgi?id=7483 &quot;&quot;Enter code for unlocking SIM card&quot;&quot; button visible even if phone is not SIM locked]
* [https://bugs.maemo.org/show_bug.cgi?id=8194 General locale settings for new users does not set the correct locale for text input]
* [https://bugs.maemo.org/show_bug.cgi?id=8696 Search results window is not responding when search dialog is displayed in background]
* [https://bugs.maemo.org/show_bug.cgi?id=9229 Upgrade from PR1.1 to PR1.1.1 produces 'Operation failed' error]
* [https://bugs.maemo.org/show_bug.cgi?id=9621 Cannot perform a new search after an initial search in Uninstall section]
* [https://bugs.maemo.org/show_bug.cgi?id=9738 Popup &quot;&quot;Search complete&quot;&quot; blocks view, not useful]
* [https://bugs.maemo.org/show_bug.cgi?id=9794 Missing a searchfunction to select Ringtone]

==== Utilities ====

* [https://bugs.maemo.org/show_bug.cgi?id=4852 Remove Scratchboxism in wpeditor packaging]
* [https://bugs.maemo.org/show_bug.cgi?id=5300 Support sending files via Bluetooth in file manager]
* [https://bugs.maemo.org/show_bug.cgi?id=5810 automatically update date/time did not update after plane journey]
* [https://bugs.maemo.org/show_bug.cgi?id=5824 Maximum number of pseudo terminals too low (4)]
* [https://bugs.maemo.org/show_bug.cgi?id=6351 Context menu isn't thumbable/hildonized - options too small]
* [https://bugs.maemo.org/show_bug.cgi?id=6481 Buenos Aires, Argentina time off by 1 hour]
* [https://bugs.maemo.org/show_bug.cgi?id=6553 Calculator should remember mode setting]
* [https://bugs.maemo.org/show_bug.cgi?id=6882 Deletes file to move if destination filename already exists and choosing to not overwrite]
* [https://bugs.maemo.org/show_bug.cgi?id=8115 Having a modal dialog in background, Alarm dialog blocks entire UI =&gt; battery removal]
* [https://bugs.maemo.org/show_bug.cgi?id=8198 FIle manager should filter view if somethings is written on the keyboard]

=== maemo.org Official Platform: ===

==== Connectivity ====

* [https://bugs.maemo.org/show_bug.cgi?id=1635 Eduroam (EAP-TTLS+PAP) WiFi auth]
* [https://bugs.maemo.org/show_bug.cgi?id=4789 ipctest.c input_cb seems to pass a reference to a freed pointer to sscanf]
* [https://bugs.maemo.org/show_bug.cgi?id=5550 &quot;&quot;Not enough memory in target location&quot;&quot; when receiving image from Nokia SU-1B using Bluetooth]
* [https://bugs.maemo.org/show_bug.cgi?id=6502 Control Panel: Cannot change Network mode when Network selection is &quot;&quot;Automatic&quot;&quot;]
* [https://bugs.maemo.org/show_bug.cgi?id=7843 BH-103 - Annoying Beeps when calling or receiving a phone call or SMS]
* [https://bugs.maemo.org/show_bug.cgi?id=8004 PR1.1 has introduced a battery drain bug (not wifi related)]
* [https://bugs.maemo.org/show_bug.cgi?id=8133 dnsmasq segfaults when connecting to a certain WLAN AP]
* [https://bugs.maemo.org/show_bug.cgi?id=9057 Wifi wont connect to Dlink DI-524 using WEP]
* [https://bugs.maemo.org/show_bug.cgi?id=9117 Wrong IAP set for SFR (France)]
* [https://bugs.maemo.org/show_bug.cgi?id=9272 TDC (Denmark) GPRS settings are &quot;&quot;incorrect&quot;&quot; (or could be better)]
* [https://bugs.maemo.org/show_bug.cgi?id=9662 DHCP with redundant Gateway does not configure any routes]

==== Core ====

* [https://bugs.maemo.org/show_bug.cgi?id=5712 Ad-hoc wifi leaks kernel memory, puts N900 into unusable swap hell]
* [https://bugs.maemo.org/show_bug.cgi?id=5917 Not possible to answer incoming call with wired headset buttons.]
* [https://bugs.maemo.org/show_bug.cgi?id=6088 Very low touchscreen sensivitivity in the area near the left edge of the screen]
* [https://bugs.maemo.org/show_bug.cgi?id=6176 bashism in bash uninstall script causes busybox error]
* [https://bugs.maemo.org/show_bug.cgi?id=6450 libglslcompiler crashes when fragment shader contains a for-loop]
* [https://bugs.maemo.org/show_bug.cgi?id=7029 Device reboots when trying to connect to WIFI due to Oops in rate_control_get_rate()]
* [https://bugs.maemo.org/show_bug.cgi?id=8268 Unable to authenticate on light.webmoney.ru with user's SSL certificate.]
* [https://bugs.maemo.org/show_bug.cgi?id=9577 Reboot caused by bluetooth probe]
* [https://bugs.maemo.org/show_bug.cgi?id=9688 GL textures may get corrupted on upload]

==== Desktop platform ====

* [https://bugs.maemo.org/show_bug.cgi?id=1163 GtkCellRendererText: Can not edit with virtual keyboard]
* [https://bugs.maemo.org/show_bug.cgi?id=3659 Changing icon theme requires reboot to be applied correctly]
* [https://bugs.maemo.org/show_bug.cgi?id=3890 Missing libhildonmime API documentation]
* [https://bugs.maemo.org/show_bug.cgi?id=3910 Allow transparent desktop (wallpaper)]
* [https://bugs.maemo.org/show_bug.cgi?id=4579 HildonWindowClipboardOperation is completely undocumented]
* [https://bugs.maemo.org/show_bug.cgi?id=4608 HildonBanner does not except NULL value for deprecated icon argument]
* [https://bugs.maemo.org/show_bug.cgi?id=4619 Panning and selecting are mutually exclusive]
* [https://bugs.maemo.org/show_bug.cgi?id=4638 HildonPannableArea description should mention mov-mode property]
* [https://bugs.maemo.org/show_bug.cgi?id=4640 hildon_touch_selector_get_active_iter() needed.]
* [https://bugs.maemo.org/show_bug.cgi?id=4658 Documentation: HildonTouchSelectorEntry is unclear about auto-completion/text column]
* [https://bugs.maemo.org/show_bug.cgi?id=4695 HildonAnimationActor defines are passively documented in function descriptions]
* [https://bugs.maemo.org/show_bug.cgi?id=4718 GtkButton + hildon_gtk_widget_set_theme_size() has wrong style when created via GtkBuilder]
* [https://bugs.maemo.org/show_bug.cgi?id=4845 Remove Scratchboxism in libosso packaging]
* [https://bugs.maemo.org/show_bug.cgi?id=4851 libosso assumes that all ARM platforms has VFP instructions.]
* [https://bugs.maemo.org/show_bug.cgi?id=5173 HildonPickerDialog selects the first item always if appended into shown widget]
* [https://bugs.maemo.org/show_bug.cgi?id=5284 HildonPannableArea: size-request-policy property should be deprecated]
* [https://bugs.maemo.org/show_bug.cgi?id=5349 Can't organize applications menu]
* [https://bugs.maemo.org/show_bug.cgi?id=5388 Allow keyboard input to jump to an entry in a list (&quot;&quot;type ahead&quot;&quot;)]
* [https://bugs.maemo.org/show_bug.cgi?id=5421 keys when long pressed should give the blue symbol/number]
* [https://bugs.maemo.org/show_bug.cgi?id=5445 Status menu not available in portrait mode]
* [https://bugs.maemo.org/show_bug.cgi?id=5482 missing: system-wide &quot;&quot;start typing to eliminate items from list&quot;&quot;]
* [https://bugs.maemo.org/show_bug.cgi?id=5496 HildonTouchSelector: No hint that there are more items]
* [https://bugs.maemo.org/show_bug.cgi?id=5609 Displays very small fonts (happened once)]
* [https://bugs.maemo.org/show_bug.cgi?id=5716 Popup menus with rounded corners missing transparency]
* [https://bugs.maemo.org/show_bug.cgi?id=5743 Show ALL installed applications in application menu; get rid of &quot;&quot;More...&quot;&quot;]
* [https://bugs.maemo.org/show_bug.cgi?id=5838 Certain directory entries are duplicated (listed twice / doubled)]
* [https://bugs.maemo.org/show_bug.cgi?id=6017 Clicking the dashboard icon highlights it but does not open the dashboard]
* [https://bugs.maemo.org/show_bug.cgi?id=6060 Application manager finishing an installation in background blocks keyboard input]
* [https://bugs.maemo.org/show_bug.cgi?id=6069 Documentation missing on HildonNote vs &quot;&quot;Cancel&quot;&quot; button]
* [https://bugs.maemo.org/show_bug.cgi?id=6099 Incremental search function is case sensitive for &quot;&quot;select objects&quot;&quot; dialogue in html form elements like drop-down menus]
* [https://bugs.maemo.org/show_bug.cgi?id=6233 HildonPickerButton opens HildonPickerDialog dialog in landscape mode]
* [https://bugs.maemo.org/show_bug.cgi?id=6268 The required #include directives are not documented for Hildon]
* [https://bugs.maemo.org/show_bug.cgi?id=6361 base' and 'more' applications are visible sametime (messed)]
* [https://bugs.maemo.org/show_bug.cgi?id=6494 Can't change desktop Background]
* [https://bugs.maemo.org/show_bug.cgi?id=6545 HildonAppMenu doesn't show when another top level widget is around]
* [https://bugs.maemo.org/show_bug.cgi?id=6931 After installation of software last icon in &quot;&quot;More...&quot;&quot; view has default icon instead of own one]
* [https://bugs.maemo.org/show_bug.cgi?id=7126 Notification messages not displayed when optional &quot;&quot;category&quot;&quot; not set]
* [https://bugs.maemo.org/show_bug.cgi?id=7285 VKB has strange behavior when using the browser in portrait mode]
* [https://bugs.maemo.org/show_bug.cgi?id=7694 FN/Shift Locks get disabled by inserting a symbol with Sym]
* [https://bugs.maemo.org/show_bug.cgi?id=7852 After every boot the phone switches to the default theme]
* [https://bugs.maemo.org/show_bug.cgi?id=8038 Unlocking screen using power button/touch slide tops last application when on the desktop]
* [https://bugs.maemo.org/show_bug.cgi?id=8069 Cannot see the track time after black fill covers the white time font]
* [https://bugs.maemo.org/show_bug.cgi?id=8390 Fast search on the desktop doesn't work with cyrillic (Русский) layout]
* [https://bugs.maemo.org/show_bug.cgi?id=8731 Memory leaks in widget HildonAnimationActor]
* [https://bugs.maemo.org/show_bug.cgi?id=9059 Status bar icons shown on top of the virtual keyboard.]
* [https://bugs.maemo.org/show_bug.cgi?id=9194 hildon_pannable_area_scroll_to example is wrong (pointer instead of struct)]
* [https://bugs.maemo.org/show_bug.cgi?id=9552 Polish virtual keyboard: Cannot enter CAPITAL chars with diacritical signs]
* [https://bugs.maemo.org/show_bug.cgi?id=10041 Calender and Clock crash in Arabic localizition]

==== Location ====

* [https://bugs.maemo.org/show_bug.cgi?id=6284 Documentation in header files inaccurate - what unit does altitude have?]

==== Multimedia ====

* [https://bugs.maemo.org/show_bug.cgi?id=5524 PulseAudio clients are muted and hang on exit when media player is playing music]
* [https://bugs.maemo.org/show_bug.cgi?id=5554 Embedded windows media stream (ASF) at omroep.nl doesn't work]
* [https://bugs.maemo.org/show_bug.cgi?id=6365 maemo-xinput-sounds uses all available CPU]
* [https://bugs.maemo.org/show_bug.cgi?id=6506 Hardware keys do not change volume when status menu in foreground &amp; browser in background]
* [https://bugs.maemo.org/show_bug.cgi?id=6792 FM radio transmitter does not play while USB cord is connected]
* [https://bugs.maemo.org/show_bug.cgi?id=6868 Pulseaudio uses cpu constantly after a phone call.]
* [https://bugs.maemo.org/show_bug.cgi?id=7082 mafw-dbus-daemon killed by podcast]
* [https://bugs.maemo.org/show_bug.cgi?id=7133 Shuffle all songs often plays a non-random sequence after the first song]
* [https://bugs.maemo.org/show_bug.cgi?id=7147 After playing video and canceling a couple of applications crashes and N900 slows down]
* [https://bugs.maemo.org/show_bug.cgi?id=7271 Can't change FM TX radio station name]
* [https://bugs.maemo.org/show_bug.cgi?id=7327 Xvid encoded videos unwatchable]
* [https://bugs.maemo.org/show_bug.cgi?id=7552 fmtx_client should pad station names shorter than 8 chars with spaces]
* [https://bugs.maemo.org/show_bug.cgi?id=7642 Playback of MP3 files might be cut-off at the end after seeking in file]
* [https://bugs.maemo.org/show_bug.cgi?id=8011 Changing volume without unlocking the phone no longer works]
* [https://bugs.maemo.org/show_bug.cgi?id=8172 PR 1.1 Regression: MP4 files with chapters hang playback]
* [https://bugs.maemo.org/show_bug.cgi?id=8396 FM Transmitter displays gibberish text in Radio player]

==== Synchronization ====

* [https://bugs.maemo.org/show_bug.cgi?id=6576 Alarm for a dropped occurrence of a recurring event]
* [https://bugs.maemo.org/show_bug.cgi?id=6582 exchange sync cant handle certificate exceptions]
* [https://bugs.maemo.org/show_bug.cgi?id=6703 MfE calendar sync causes dummy email sync account to appear]
* [https://bugs.maemo.org/show_bug.cgi?id=7971 mail for exchange freezes when trying to sync calendar and tasks]
* [https://bugs.maemo.org/show_bug.cgi?id=8373 N900 no longer accepting updates from Outlook 2007]
* [https://bugs.maemo.org/show_bug.cgi?id=8552 URLs in emails from Exchange are parsed incorrectly]
* [https://bugs.maemo.org/show_bug.cgi?id=8671 Deletion of messages should move first those items to &quot;&quot;Deleted Items&quot;&quot; folder]
* [https://bugs.maemo.org/show_bug.cgi?id=9296 Exchange event invitations scheduled without a prompt]

==== System software ====

* [https://bugs.maemo.org/show_bug.cgi?id=5530 Device autolock switches on the display]
* [https://bugs.maemo.org/show_bug.cgi?id=5674 Autobuilder fails to use opt-ified packages]
* [https://bugs.maemo.org/show_bug.cgi?id=5982 Phone unlocked when receiving call]
* [https://bugs.maemo.org/show_bug.cgi?id=6558 ohmd fails if discover_plugins cannot open plugin directory]
* [https://bugs.maemo.org/show_bug.cgi?id=6746 USB mass storage enabled when connected while device is off]
* [https://bugs.maemo.org/show_bug.cgi?id=7432 /opt and /home/user  not cleared after firmware reflash]
* [https://bugs.maemo.org/show_bug.cgi?id=9270 Device unlockable if it get locked when being in portrait mode]

==== Telephony ====
* [https://bugs.maemo.org/show_bug.cgi?id=5457 Skype: &quot;&quot;Incorrect address&quot;&quot; for phone numbers missing the country code in Contacts]
* [https://bugs.maemo.org/show_bug.cgi?id=9073 callerid displays as &quot;&quot;Unknown number&quot;&quot; even though it is received by the N900]

==== Translations ====

* [https://bugs.maemo.org/show_bug.cgi?id=5602 IP address field in WiFi advanced settings partially hidden (&quot;&quot;Recuperar automáticamente direccíon IP&quot;&quot; string too long)]
* [https://bugs.maemo.org/show_bug.cgi?id=5819 Some sentences in the User Guide don't make sense]
* [https://bugs.maemo.org/show_bug.cgi?id=5820 Wrong profile names in the User Guide]
* [https://bugs.maemo.org/show_bug.cgi?id=6261 Delete dialog text missing a space]
* [https://bugs.maemo.org/show_bug.cgi?id=6476 Email: Awkward text: &quot;&quot;Connecting Nokia servers to check service availability&quot;&quot;]
* [https://bugs.maemo.org/show_bug.cgi?id=6662 Wrong Danish translation: &quot;&quot;Programmet 1 er installeret&quot;&quot;]
* [https://bugs.maemo.org/show_bug.cgi?id=6736 Polish string too long in UPnP browsing menu bar]
* [https://bugs.maemo.org/show_bug.cgi?id=6982 Spanish: &quot;&quot;Tipo de fuente cambiado a %s&quot;&quot; when switching input languages]
* [https://bugs.maemo.org/show_bug.cgi?id=6997 Camera: Wrong translation &quot;&quot;Hochformat&quot;&quot; of &quot;&quot;Portrait&quot;&quot; in German UI]
* [https://bugs.maemo.org/show_bug.cgi?id=7274 Settings menu: String doesn't fit the button (&quot;&quot;Inserir código para desbloquear cartão SIM&quot;&quot;)]
* [https://bugs.maemo.org/show_bug.cgi?id=7345 Context menu in file manager should say &quot;&quot;Sformatuj&quot;&quot; or &quot;&quot;Formatuj&quot;&quot; instead of &quot;&quot;Format&quot;&quot;]
* [https://bugs.maemo.org/show_bug.cgi?id=7476 Truncation of Flickr sharing introductory text in Polish]
* [https://bugs.maemo.org/show_bug.cgi?id=7477 &quot;&quot;sparowane&quot;&quot;, &quot;&quot;paruj&quot;&quot;, &quot;&quot;Paruj&quot;&quot;, &quot;&quot;Parowanie&quot;&quot; in Bluetooth settings]
* [https://bugs.maemo.org/show_bug.cgi?id=7639 Wrong PO Box translation for CZ language]
* [https://bugs.maemo.org/show_bug.cgi?id=7687 Clock: Incorrect Danish translation of the phrase 'Remote time']
* [https://bugs.maemo.org/show_bug.cgi?id=8052 &quot;&quot;Dane sieci komórkowej niedostępne&quot;&quot; sounds strange]
* [https://bugs.maemo.org/show_bug.cgi?id=8257 &quot;&quot;Prześlij ponownie&quot;&quot; button label truncated (MicroB)]
* [https://bugs.maemo.org/show_bug.cgi?id=8560 Dutch translation in &quot;&quot;Settings&quot;&quot; doesnt fit on the screen]
* [https://bugs.maemo.org/show_bug.cgi?id=8713 Incorrect Danish translation of 'Extras' in Settings]
* [https://bugs.maemo.org/show_bug.cgi?id=8742 New E-mail Format translated illogically]
* [https://bugs.maemo.org/show_bug.cgi?id=9144 pl-PL: &quot;&quot;Nazwa autora&quot;&quot; in camera general settings should be &quot;&quot;Autor&quot;&quot; or &quot;&quot;Imię autora&quot;&quot;]

==== UI Specification ====

* [https://bugs.maemo.org/show_bug.cgi?id=5420 Don't show hildon banner every tap when browsing UPnP shares]
* [https://bugs.maemo.org/show_bug.cgi?id=5516 Image Viewer: Dealing with &quot;&quot;occupied&quot;&quot; images is confusing]
* [https://bugs.maemo.org/show_bug.cgi?id=5610 &quot;&quot;Regional settings&quot;&quot; items sorted by languages instead of countries]
* [https://bugs.maemo.org/show_bug.cgi?id=7054 Cannot set &quot;&quot;Regional Settings&quot;&quot; to &quot;&quot;English (Australia)&quot;&quot; or &quot;&quot;English (New Zealand)&quot;&quot;]
* [https://bugs.maemo.org/show_bug.cgi?id=8201 (metabug) Make more use of the keyboard in the dialogs / lists]

== Updated packages ==

* +alarmd 1.1.16+0m5
* +apt 0.7.20.2maemo13.1+0m5
* +base-files 3.1.osso2+3.1.10.osso25+0m5
* +bash 2.05b-2-26osso8+0m5
* +bluez 4.60-0maemo1.4+0m5
* +browser-eal 0.5.5-6.1+0m5
* +cairo 1.8.8-0maemo1+0m5
* +clinkc 2.0-0osso17+0m5
* +clutter 0.8.2-0maemo66+0m5
* +dbus 1.2.14-0maemo4+0m5
* +dbus-glib 0.78-0maemo7+0m5
* +desktop-file-utils 0.12-2osso7+0m5
* +dnsmasq 2.45-1+lenny1+maemo3+0m5
* +dosfstools 3.0.1-1maemo6+0m5
* +dpkg 1.14.25maemo3+0m5
* +dsme 0.60.44+0m5
* +eds-backend-telepathy 0.4.62-1+0m5
* +evolution-data-server 1.4.2.1-20100226+0m5
* +farsight2 0.0.17-0maemo13+0m5
* +gcc-4.2 4.2.1-4maemo12+0m5
* +gconf2 2.16.0-2osso6.2+0m5
* +gdigicam 0.3.5.1+0m5
* +glib2.0 2.20.3-1maemo4+0m5
* +glibc 2.5.1-1eglibc23+0m5
* +gnome-menus 2.23.3-2maemo+0m5
* +gssdp 0.7.1-0maemo2+0m5
* +gst-openmax 0.10.0.6~1-0maemo17+0m5
* +gst-plugins-bad0.10 0.10.14-git265-0maemo10+0m5
* +gst-plugins-base0.10 0.10.25-0maemo14+0m5
* +gst-plugins-good0.10 0.10.16-git276-0maemo14+0m5
* +gstreamer0.10 0.10.25-0maemo4+0m5
* +gstreamer0.10-plugins-camera 0.79-1+0m5
* +gtk+2.0 2:2.14.7-1maemo29+0m5
* +gtkhtml3.14 3.24.4-osso18+0m5
* +gupnp 0.13.2-0maemo2+0m5
* +gupnp-av 0.5.2-0maemo2+0m5
* +gupnp-igd 0.1.4-0maemo3+0m5
* +hal 0.5.12~git20090219-0maemo7+0m5
* +hildon-application-manager 1:2.2.60-1+0m5
* +hildon-application-manager-l10n-public 6.0+r7611+0m5
* +hildon-control-panel 1:2.2.27-2+0m5
* +hildon-control-panel-l10n-public 6.0+r7640+0m5
* +hildon-desktop 1:2.2.135-2+0m5
* +hildon-fm-l10n-public 6.0+r7483+0m5
* +hildon-games-wrapper 1.9.4-5+0m5
* +hildon-home 0.3.66-2+0m5
* +hildon-input-method 1:2.1.46-1+0m5
* +hildon-input-method-framework 1:2.1.56-1+0m5
* +hildon-input-method-l10n-public 6.0+r7520+0m5
* +hildon-libs-l10n-public 6.0+r7510+0m5
* +hildon-status-menu 0.3.34+0m5
* +hildon-theme-layout-5 0.15.0-1+0m5
* +hildon-thumbnail 3.0.44+0m5
* +ke-recv-l10n-public 6.0+r7611+0m5
* +kernel 2.6.28-20100903+0m5
* +libcanberra 0.14-0maemo4+0m5
* +libcomapp 1.8.03-01+0m5
* +libconbtui 1.4.3+0m5
* +libconic 0.24+0m5
* +libdsme 0.60.30+0m5
* +libexif 0.6.17-1maemo3+0m5
* +libffi 3.0.7-2maemo2+0m5
* +libgtkadi 0.7.13-1+0m5
* +libgtkmozembed 1.8.7-2.1+0m5
* +libhildon 2.2.15-1+0m5
* +libhildondesktop 2.1.40+0m5
* +libhildonfm 1:2.28.17+0m5
* +libhildonmime 2.1.5-1+0m5
* +libical 1.43-101+0m5
* +libmafw 0.2.2010.06-1+0m5
* +libmlocknice 0.1+0m5
* +libmodest-dbus-client 4:3.2.5-0+0m5
* +libnice 1:0.0.9-0maemo8.0rtc+0m5
* +libosso 2.31-1+0m5
* +librtcom-telepathy-glib 0.1.49+0m5
* +libsoup2.4 2.26.3-0maemo3+0m5
* +libunwind 0.99+git20080421-2+0m5
* +libwidgetutils 1.4.1-6+0m5
* +libwww-perl 5.803-4osso1+0m5
* +loudmouth 1.4.1-0osso10+0m5
* +maemo-af-desktop-l10n-public 6.0+r7640+0m5
* +maemo-maf 5.0+3+0m5
* +maemo-mmf 5.0+3+0m5
* +maemopad 2.6-3
* +maemo-version 5.0update5+0m5
* +mafw-gst-renderer 0.2.2010.07-2+0m5
* +mafw-iradio-source 0.2.2010.06-1+0m5
* +mafw-shared 0.2.2010.06-1+0m5
* +mafw-test-gui 0.2.2010.06-1+0m5
* +mafw-tracker-source 0.2.2010.06-1+0m5
* +mafw-upnp-source 0.2.2010.07-2+0m5
* +matchbox-window-manager-2 0.2.89-1+0m5
* +mce-dev 1.8.17+0m5
* +microb-eal 2.9.5-1.15+0m5
* +microb-engine 20091230-1.9.2-6.8+0m5
* +mini-rc 0.2.67+0m5
* +modest 3.2.13-3+0m5
* +obexd 0.18-0maemo5+0m5
* +ohm 0.1.2-0maemo33+0m5
* +osso-af-utils 2.12-1+0m5
* +osso-app-killer 1.33-3+0m5
* +osso-filemanager-l10n-public 6.0+r7611+0m5
* +osso-games-startup 1.7.49-1+0m5
* +osso-gnome-vfs2 2.16.3-2osso11+0m5
* +osso-gwobex 0.64+0m5
* +osso-rss-feed-reader 1.8.03-3+0m5
* +osso-rss-feed-reader-applet 1.7.03-1+0m5
* +osso-rss-feed-reader-lib 1.8.01-1+0m5
* +osso-system-lock-l10n-public 6.0+r7585+0m5
* +osso-uri-l10n-public 6.0+r7510+0m5
* +pango1.0 1.24.2-0maemo4+0m5
* +pixman 0.16.2-4+0m5
* +poppler 0.4.5-5.1etch3maemo1+0m5
* +posix-locales 2.7.2-1maemo7-binonly0+0m5
* +pulseaudio 0.9.15-1maemo38+0m5
* +qt4-x11 4.6.2~git20100224-0maemo1+0m5
* +rtcom-eventlogger 1.3-4+0m5
* +rtcom-eventlogger-plugins 1.4-1+0m5
* +rtcom-eventlogger-ui 1.4-2+0m5
* +sapwood 3.1.1-10+0m5
* +sqlite3 3.6.14-1maemo3+0m5
* +telepathy-farsight 0.0.13-0maemo5+0m5
* +telepathy-gabble 0.8.11-0maemo2+0m5
* +telepathy-mission-control 5.2.7-0maemo6+0m5
* +tetex-bin 3.0-30maemo2+0m5
* +tiff 1:3.8.2-11maemo5+0m5
* +tinymail 1.1.90-svn4193+0m5
* +totem-pl-parser 2.27.2-1maemo2+0m5
* +tracker 0.6.95-25maemo1+0m5
* +upstart 0.3.8-64+0m5
* +wpeditor 3.53-1+0m5
* +xkeyboard-config 1.5-2maemo15+0m5
* +xorg-server 2:1.6.99.1-0osso20090208.108+0m5
* +xserver-xorg-video-fbdev 1:0.4.0-180+0m5

{{Maemo 5 firmware updates}}

[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5/PR1.3</title>
    <id>4523</id>
    <revision>
      <id>49956</id>
      <timestamp>2012-09-29T17:35:05Z</timestamp>
      <contributor>
        <username>wendys</username>
        <id>5463</id>
      </contributor>
      <comment>/* Resolved bugs */</comment>
      <text xml:space="preserve">{{firmware update}}

Maemo 5 PR1.3 was [http://maemo.nokia.com/news/new-n900-software-update-available/ released] on October 25, 2010, together with [http://repository.maemo.org/stable/fremantle/Maemo_5_SDK_Release_Notes_v1_7_en.txt an update of the SDK] for developers. The product version is 20.2010.36-2.

== New features ==

* Qt Mobility API 1.0.2, which is now integrated into the device software.
* Qt Core libraries updated to 4.7.0 version.
* Full OVI-Suite support

== Resolved bugs ==

{{#bugzilla:
  |status=*
  |resolution=FIXED
  |milestone=5.0/(20.2010.36-2)
  |columns=id,status,resolution,summary
}}


Alternatively, see [https://bugs.maemo.org/buglist.cgi?classification=Maemo%20Official%20Applicatiuons&amp;classification=Maemo%20Official%20Platform&amp;resolution=FIXED&amp;target_milestone=5.0%2F%2820.2010.36-2%29&amp;order=map_products.name%2Cbugs.bug_id this] Bugzilla query for a list of issues that have been fixed for PR1.3.

== Kernel changes ==

Some important kernel-related bugs were fixed, for details (changelog
and the actuall diff to the previous version) refer to [https://garage.maemo.org/plugins/ggit/browse.php/?p=h-e-n;a=commitdiff;h=a2abd51199b9e61542a24ae9086ac1c6263106c4#patch9].

== Further reading ==

* [http://lists.maemo.org/pipermail/maemo-developers/2010-October/027794.html maemo-developers SDK accouncement]

{{Maemo 5 firmware updates}}

[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5 Clutter performance</title>
    <id>1829</id>
    <revision>
      <id>40630</id>
      <timestamp>2010-12-09T11:05:42Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">This page has been created so that all working solutions to get the clutter performace better in the [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK|SDK]] can be consolidated. 

Since the SDK uses Clutter and 3d effects, the speed of the UI depends greatly on the 3D acceleration speed on the host system. For many popular display adapters (nVidia, ATI) this means that the vendor provided closed source driver is needed for fully utilizing the 3D acceleration provided by the hardware. Using Intel cards, the hardware acceleration should basically work with the available open source drivers, but unfortunately some versions of the driver have been buggy in a way that causes problems for the 3d accelerated applications and thus also the SDK.

Here are some scenarios that have worked during the internal testing activity. Please add in any related information that you feel may help the users of the Maemo 5 SDK.
 
==Debian Lenny with ATI drivers==
 
Graphics card on the test machine: Dell Latitude d610 ATI Mobility Radeon X300

Following the instruction in http://forums.debian.net/viewtopic.php?t=17776 helped. Shortly:
&lt;ol&gt;
&lt;li&gt;
Add the &quot;Non-DFSG-compatible Software (non-free) into software sources
&lt;/li&gt;
&lt;li&gt;
Install:
&lt;ul&gt;
&lt;li&gt;module-assistant&lt;/li&gt;
&lt;li&gt;build-essential&lt;/li&gt;
&lt;li&gt;linux-headers-$(uname -r)&lt;/li&gt;
&lt;li&gt;fglrx-amdcccle&lt;/li&gt;
&lt;li&gt;fglrx-control&lt;/li&gt;
&lt;li&gt;fglrx-driver&lt;/li&gt;
&lt;li&gt;fglrx-kernel-src&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
Reboot into Single User Mode. Enter the root password
&lt;/li&gt;
&lt;li&gt;
Give commands:
&lt;pre&gt;
$&gt; m-a prepare
$&gt; m-a a-i fglrx
$&gt; modprobe -v fglrx
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Add the &lt;code&gt;Driver&lt;/code&gt; line and &lt;code&gt;DefaultDepth&lt;/code&gt; line to &lt;code&gt;xorg.conf&lt;/code&gt; files.
&lt;pre&gt;
Section &quot;Device&quot;
       Driver          &quot;fglrx&quot;
EndSection
Section &quot;Screen&quot;
       DefaultDepth	24
EndSection
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

==Debian Lenny with Intel drivers==

Test machine: Dell Optiplex GX620

Display controller:Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02)

Display controller driver:xserver-xorg-video-intel version 2:2.3.2-2+lenny6 

To get the UI framework to work with usable speed we need newer version of the kernel.

&lt;ol&gt;
&lt;li&gt;
Install packages needed for compilation:
&lt;pre&gt;
sudo apt-get install kernel-package ncurses-dev fakeroot zlib1g-dev
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Fetch the source code from kernel.org
&lt;pre&gt;
wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.1.tar.bz2&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Unpack the kernel sources:
&lt;pre&gt;
tar xjf linux-2.6.28.1.tar.bz2
cd linux-2.6.28.1
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Run menuconfig and load the current kernel configuration file from &lt;code&gt;/boot/&lt;/code&gt; directory, e.g &lt;code&gt;/boot/config-2.6.26-2-686&lt;/code&gt; and save it to your source directory with name &lt;code&gt;.config&lt;/code&gt;.
&lt;pre&gt;
make menuconfig
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
And select options:
&lt;ul&gt;
&lt;li&gt;Load an Alternate Configuration File&lt;/li&gt;
&lt;li&gt;Save Configuration to an Alternate File&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
Then run the following commands:
&lt;pre&gt;
fakeroot make-kpkg --initrd --revision=custom.1.0 kernel_image
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
If no error occurs you will find the new kernel from parent directory as a Debian package called &lt;code&gt;linux-image-2.6.28.1_custom.1.0_i386.deb&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
Install the new kernel:
&lt;pre&gt;
sudo dpkg -i linux-image-2.6.28.1_custom.1.0_i386.deb
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Reboot
&lt;/li&gt;
&lt;/ol&gt;

Alternative way.
If you don't want to compile the kernel from source you could install the latest kernel from Debian unstable.

Steps:
&lt;ol&gt;
&lt;li&gt;
Add the repository of debian unstable (e.g deb http://ftp.fi.debian.org/debian/ sid main) to &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;
&lt;pre&gt;
sudo apt-get update 
sudo apt-get install linux-image-2.6.29-2-486
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Remember to remove repository of debian unstable from &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; and run:
&lt;pre&gt;
sudo apt-get update
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Reboot
&lt;/li&gt;
&lt;/ol&gt;

Another alternative:
# Install the compiz window manger.&lt;pre&gt;sudo apt-get install compiz&lt;/pre&gt;
# And run the compiz&lt;pre&gt;compiz --replace&lt;/pre&gt;

==Ubuntu with nVidia/ATI drivers==

Installing restricted drivers by Ubuntu gets the UI framework in usable speed. This does bring along some desktop effects that one may not like. (We just turned such effects off.)

==Ubuntu with Intel drivers==

Graphics card on the test machine: Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02)
In the recent update of Ubuntu Jaunty, there are improvements.
A default installation of Ubuntu Jaunty works OK with the desktop effects enabled.

'''Update:''' With the Fremantle beta2 release the Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07) aka 4500MHD aka GM45 on Ubuntu 9.04 seems to work fast out of the box without any special configuration.

==Fedora 10 with Intel drivers==

SDK has worked alright here without additional installations.

==Useful links==
* http://www.h-online.com/open/Ubuntu-9-04-and-Intel-graphics--/features/113196
* https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/262164
* http://forums.debian.net/viewtopic.php?t=17776

[[Category:Development]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5 Developer Guide/Application Development/Installing under opt and MyDocs</title>
    <id>2401</id>
    <revision>
      <id>28123</id>
      <timestamp>2010-02-02T15:29:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing/Installing under opt and MyDocs]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5 Developer Guide/Application Development/LibOSSO library</title>
    <id>2936</id>
    <revision>
      <id>21890</id>
      <timestamp>2009-11-05T13:24:08Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[Maemo 5 Developer Guide/Application Development/LibOSSO library]] moved to [[Documentation/Maemo 5 Developer Guide/Application Development/LibOSSO library]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Application Development/LibOSSO library]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5 Developer Guide/Application Development/MIME type mapping</title>
    <id>2940</id>
    <revision>
      <id>21898</id>
      <timestamp>2009-11-05T13:33:12Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[Maemo 5 Developer Guide/Application Development/MIME type mapping]] moved to [[Documentation/Maemo 5 Developer Guide/Application Development/MIME type mapping]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Application Development/MIME type mapping]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5 Developer Guide/Application Development/Writing a new maemo application</title>
    <id>2937</id>
    <revision>
      <id>21892</id>
      <timestamp>2009-11-05T13:24:25Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[Maemo 5 Developer Guide/Application Development/Writing a new maemo application]] moved to [[Documentation/Maemo 5 Developer Guide/Application Development/Writing a new maemo application]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Application Development/Writing a new maemo application]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5 Developer Guide/Architecture/Changes</title>
    <id>2559</id>
    <revision>
      <id>19340</id>
      <timestamp>2009-10-06T06:35:48Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[Maemo 5 Developer Guide/Architecture/Changes]] moved to [[Documentation/Maemo 5 Developer Guide/Architecture/Changes]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Architecture/Changes]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5 Developer Guide/Architecture/Imaging and Sharing</title>
    <id>2558</id>
    <revision>
      <id>19338</id>
      <timestamp>2009-10-06T06:35:21Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[Maemo 5 Developer Guide/Architecture/Imaging and Sharing]] moved to [[Documentation/Maemo 5 Developer Guide/Architecture/Imaging and Sharing]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Architecture/Imaging and Sharing]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5 Developer Guide/Architecture/Multimedia Domain</title>
    <id>2627</id>
    <revision>
      <id>19439</id>
      <timestamp>2009-10-06T09:48:21Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[Maemo 5 Developer Guide/Architecture/Multimedia Domain]] moved to [[Documentation/Maemo 5 Developer Guide/Architecture/Multimedia Domain]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Architecture/Multimedia Domain]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5 Developer Guide/Architecture/RTCOM</title>
    <id>2863</id>
    <revision>
      <id>21139</id>
      <timestamp>2009-10-27T12:10:12Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[Maemo 5 Developer Guide/Architecture/RTCOM]] moved to [[Documentation/Maemo 5 Developer Guide/Architecture/RTCOM]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Architecture/RTCOM]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5 Developer Guide/Architecture/Top Level Architecture</title>
    <id>2568</id>
    <revision>
      <id>19358</id>
      <timestamp>2009-10-06T07:04:56Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[Maemo 5 Developer Guide/Architecture/Top Level Architecture]] moved to [[Documentation/Maemo 5 Developer Guide/Architecture/Top Level Architecture]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Architecture/Top Level Architecture]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5 Developer Guide/Architecture/UI Framework</title>
    <id>2938</id>
    <revision>
      <id>21894</id>
      <timestamp>2009-11-05T13:24:39Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[Maemo 5 Developer Guide/Architecture/UI Framework]] moved to [[Documentation/Maemo 5 Developer Guide/Architecture/UI Framework]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Architecture/UI Framework]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5 Developer Guide/Generic Platform Components/Application Preferences-Gconf</title>
    <id>2908</id>
    <revision>
      <id>38249</id>
      <timestamp>2010-08-31T10:03:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Application Preferences-Gconf]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5 Developer Guide/Generic Platform Components/Extending Hildon Input Methods</title>
    <id>2934</id>
    <revision>
      <id>38250</id>
      <timestamp>2010-08-31T10:06:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Extending Hildon Input Methods]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5 Developer Guide/Generic Platform Components/GnomeVFS File System</title>
    <id>2909</id>
    <revision>
      <id>38251</id>
      <timestamp>2010-08-31T10:08:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/GnomeVFS File System]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5 Developer Guide/Generic Platform Components/Using Backup Application</title>
    <id>2907</id>
    <revision>
      <id>38252</id>
      <timestamp>2010-08-31T10:09:31Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Using Backup Application]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5 Developer Guide/Using Data Sharing/Clipboard Usage</title>
    <id>2935</id>
    <revision>
      <id>21888</id>
      <timestamp>2009-11-05T13:23:53Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[Maemo 5 Developer Guide/Using Data Sharing/Clipboard Usage]] moved to [[Documentation/Maemo 5 Developer Guide/Using Data Sharing/Clipboard Usage]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Using Data Sharing/Clipboard Usage]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 5 Developer Guide/Using Data Sharing/Sharing Plug-in</title>
    <id>2565</id>
    <revision>
      <id>19349</id>
      <timestamp>2009-10-06T06:51:20Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[Maemo 5 Developer Guide/Using Data Sharing/Sharing Plug-in]] moved to [[Documentation/Maemo 5 Developer Guide/Using Data Sharing/Sharing Plug-in]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Using Data Sharing/Sharing Plug-in]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo 6 Developer Guide table of contents</title>
    <id>3163</id>
    <revision>
      <id>42550</id>
      <timestamp>2011-03-09T09:29:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>out of date with regards to MeeGo</comment>
      <text xml:space="preserve">{{out of date}}

This is a proposed table of contents for the [[Open development/Maemo roadmap/Harmattan|Maemo 6]] developers guide. There is an [http://talk.maemo.org/showthread.php?p=421680 ongoing related discussion] on talk.maemo.org.

== Rationale ==

The developer guide is set up to answer two main questions for a developer of Maemo: 
# What do I need to do to be able to write my first Maemo application
# What can the Maemo platform do?

The proposed table of contents has two main sections: Getting started &amp; prerequisites, and an in-depth guide to components of the Maemo platform, from a functional point of view.

# Setup
## Hardware
### PC
### Mac
### Windows
## SDK
### Install
### Code
#### C
#### C++
#### Python
## Getting Src
### DVCS
## Compile + Build
## Package
## Delivery
### Extras Repository
### Ovi
## Test
### Tools
### Process
### QA
## Appendix: Reference Links
##: Including
### Detailed Reference Material
### UI Guidance
### UX Links

# Lego
## Software Architecture (top-down approach)
## Flow Suggestion
##: Start with 'upstream' and core linux
### gtk
### dbus
### kernel
##: Move on to Maemo services. Focus on high level APIs first and move on to deeper ones (reflects order of interaction for dev)
### location
####  (library / interfaces / api)
#### best practice
#### tutorial / example
### telephony
### gpio
### multimedia framework
### contacts
# Appendix Machine Architecture
# Integration Tutorial

[[Category:Harmattan]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Basics</title>
    <id>2741</id>
    <revision>
      <id>20192</id>
      <timestamp>2009-10-15T14:31:59Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Maemo Basics]] moved to [[Maemo basics]]: Standardise capitalisation. No capitalised words (apart from the first word) except in proper nouns in wiki page names.</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo basics]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Co-Creation</title>
    <id>2789</id>
    <revision>
      <id>24570</id>
      <timestamp>2009-12-14T12:46:04Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">'''Place-holder. Please do not delete (since it's orphaned, etc.).''' --[[User:timsamoff|timsamoff]] 03:22, 22 October 2009 (UTC)

&lt;div style=&quot;font-size: 1em;&quot;&gt;

[[Image:Mcc2009_pic0001.jpg‎|Maemo Co-Creation Day 2009]]

''(Photo by [http://www.flickr.com/photos/iskosalminen/ Isko Salminen].)''

&lt;h2&gt;Maemo Co-Creation 2009&lt;/h2&gt;
&lt;div style=&quot;width:100%;&quot;&gt;{{MCC Intro}}&lt;/div&gt;

&lt;h3&gt;The Purpose&lt;/h3&gt;
&lt;div style=&quot;width:100%;&quot;&gt;{{MCC Detail}}&lt;/div&gt;

&lt;div class=&quot;sections&quot;&gt;

&lt;div class=&quot;column&quot;&gt;

&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;#1 Contagious Content&lt;/h2&gt;
&lt;h3&gt;&lt;em&gt;Content Flu&lt;/em&gt;&lt;/h3&gt;
&lt;ul class=&quot;document&quot;&gt;{{MCC Concept 001}}&lt;/ul&gt;
&lt;/div&gt;

&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;#2 Smart Tags&lt;/h2&gt;
&lt;h3&gt;&lt;em&gt;N-Rich&lt;/em&gt;&lt;/h3&gt;
&lt;ul class=&quot;document&quot;&gt;{{MCC Concept 002}}&lt;/ul&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&quot;column&quot;&gt;

&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;#3 Live Editing&lt;/h2&gt;
&lt;h3&gt;&lt;em&gt;MAEmoments&lt;/em&gt;&lt;/h3&gt;
&lt;ul class=&quot;document&quot;&gt;{{MCC Concept 003}}&lt;/ul&gt;
&lt;/div&gt;

&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;#4 Collaborative Experiences&lt;/h2&gt;
&lt;h3&gt;&lt;em&gt;Join the Band&lt;/em&gt;&lt;/h3&gt;
&lt;ul class=&quot;document&quot;&gt;{{MCC Concept 004}}&lt;/ul&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&quot;sections&quot;&gt;

&lt;div class=&quot;column&quot;&gt;

&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Additional Concepts&lt;/h2&gt;
&lt;ul class=&quot;document&quot;&gt;{{MCC Other Concepts}}&lt;/ul&gt;
&lt;/div&gt;

&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Photos &amp; Movies&lt;/h2&gt;
&lt;ul class=&quot;document&quot;&gt;{{MCC Media}}&lt;/ul&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&quot;column&quot;&gt;

&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Interesting Links&lt;/h2&gt;
&lt;ul class=&quot;document&quot;&gt;{{MCC Links}}&lt;/ul&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;

[[Image:Mcc2009_pic0002.jpg‎‎|Maemo Co-Creation Day 2009]]

''(Photo by [http://www.flickr.com/photos/iskosalminen/ Isko Salminen].)''

&lt;/div&gt;

__NOEDITSECTION__ &lt;!-- disables the [edit] links from being shown --&gt;
__NOTOC__ &lt;!-- disable the table of contents from ever being shown --&gt;

[[Category:Community]]
[[Category:Co-Creation]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Co-Creation/MCC Concept 001 Feedback</title>
    <id>3052</id>
    <revision>
      <id>29079</id>
      <timestamp>2010-02-11T16:07:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Co-Creation]]</comment>
      <text xml:space="preserve">Feel free to '''provide your feedback''' and '''share new ideas''' here on the Contagious Content idea.


'''FEEDBACK PROVIDED DURING SUMMIT'''

On Saturday, the following feedback for Contagious Content was given during the Maemo Summit:


[image]

[[Category:Co-Creation]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Co-Creation/MCC Concept 001 Session Results</title>
    <id>3050</id>
    <revision>
      <id>29080</id>
      <timestamp>2010-02-11T16:08:13Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Co-Creation]]</comment>
      <text xml:space="preserve">'''WHAT IS IT?'''

Everybody is using a lot of content. This software solution will enable you to spread it around you and others can 'pick it up'. When walking into a room or on the street, you can see on your device what content is being used by the people around you. Same types of content create &quot;heat-pools&quot; around a person. You can see what content is used the most &amp; might be interesting for you. People using the same content form 'groups', they are linked by preference. Outside of your 'profile content' are the 'free radicals'. This type of content is not really discovered yet and lights up as small dots. Once more people are 'contaminated' by it, it is not a free radical anymore, but becomes a heat-pool. 


'''WOW FACTOR'''

Serendipity: the perfect way to discover new content in a very cool way


'''&quot;MAEMO-NESS&quot;'''

A software solutions that can grow. The concept is based on co-creation, together you create the heat-pools


'''RESULTS CO-CREATION SESSION'''

[image]
[image]

[[Category:Co-Creation]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Co-Creation/MCC Concept 001 Workshop Results</title>
    <id>3051</id>
    <revision>
      <id>29081</id>
      <timestamp>2010-02-11T16:08:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Co-Creation]]</comment>
      <text xml:space="preserve">On Saturday the 10th of October we have presented the co-creation workshop concepts at the Maemo Summit, during the Maemo Co-Creation Showcase. After that, everybody was invited to provide feedback and help further develop the concepts. This was very successful, many Summit attendees joined us on the stage to elaborate on the 4 concepts.

On Sunday, we had another co-creation 'Garage' session in the Entry Hall of the Maemo Summit. The 4 concepts and the feedback from the day before were put on the wall and again, people were invited to further develop the concepts. Two visualisers were present to help make all ideas tangible on the spot. 


'''RESULTS MAEMO SUMMIT WORKSHOPS'''

During the Maemo Summit, the first ideas for a UI for Contagious Content was thought of: 


[image]

[[Category:Co-Creation]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Co-Creation/MCC Concept 002 Feedback</title>
    <id>3186</id>
    <revision>
      <id>29082</id>
      <timestamp>2010-02-11T16:08:52Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Co-Creation]]</comment>
      <text xml:space="preserve">Feel free to '''provide your feedback''' and '''share new ideas''' here on the N-Rich concept.


'''FEEDBACK PROVIDED DURING SUMMIT'''

On Saturday, the following feedback for N-Rich was given during the Maemo Summit:


[image]

[[Category:Co-Creation]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Co-Creation/MCC Concept 002 Session Results</title>
    <id>3181</id>
    <revision>
      <id>29083</id>
      <timestamp>2010-02-11T16:08:58Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Co-Creation]]</comment>
      <text xml:space="preserve">'''WHAT IS IT?'''

Content is exponentially created and tagged. How to find the right content or your own content history in an easy way and tag it in a smart way? N-rich starts at the address book: your contacts and the people you trust are right there in your phone. They bring with them an amount of content. When adding a contact to your device, N-rich collects all content related to this contact from all different content-silos (Facebook, Flickr, LinkedIn, etc): photo's, video's, contact info, and: tags. The tags are used to smarten your tag vocabulary, it is a learning system that learns what tags are most commonly used and how to best tag content in the future. When adding a tag in the future, it will propose the right name (predictive tagging). Next to that you will always have your auto-info: the &quot;objective&quot; tags: time, place, author. Secondly, you can use your contacts to easier find the right content. You can 'scale' them according to their knowledge and expertise. So if you're looking for a new car, the content and tags related to your friend that is a car-expert will be in your first 'circle' of interest. 


'''WOW-FACTOR'''

Cross-silo, enriched tagging &amp; scaling friends for high relevancy


'''MAEMO-NESS'''

You can build on each others ideas and link it to Maemo contacts as well


'''RESULTS CO-CREATION SESSION'''

[[Category:Co-Creation]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Co-Creation/MCC Concept 002 Workshop Results</title>
    <id>3182</id>
    <revision>
      <id>29085</id>
      <timestamp>2010-02-11T16:09:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Co-Creation]]</comment>
      <text xml:space="preserve">On Saturday the 10th of October we have presented the co-creation workshop concepts at the Maemo Summit, during the Maemo Co-Creation Showcase. After that, everybody was invited to provide feedback and help further develop the concepts. This was very successful, many Summit attendees joined us on the stage to elaborate on the 4 concepts.

On Sunday, we had another co-creation 'Garage' session in the Entry Hall of the Maemo Summit. The 4 concepts and the feedback from the day before were put on the wall and again, people were invited to further develop the concepts. Two visualisers were present to help make all ideas tangible on the spot.


'''RESULTS MAEMO SUMMIT WORKSHOPS'''

During the Maemo Summit, the first ideas for a part of the UI was thought of, focusing on the tagging of content with 'help' of your friends and other users. 


[image]

The content (here: a photo) on your device has automated tags (location, author etc), you added your own tags (amsterdam, N900..). Below that, you can see the tags your friends have added, which you can choose also. Below that, you can see the tags of everyone (at the event) added, from which you can choose again.

[[Category:Co-Creation]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Co-Creation/MCC Concept 003 Feedback</title>
    <id>3187</id>
    <revision>
      <id>29084</id>
      <timestamp>2010-02-11T16:09:05Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Co-Creation]]</comment>
      <text xml:space="preserve">Feel free to '''provide your feedback''' and '''share new ideas''' here on the MAEmoments concept.


'''FEEDBACK PROVIDED DURING SUMMIT'''

On Saturday, the following feedback for MAEmoments was given during the Maemo Summit:


[image]

[[Category:Co-Creation]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Co-Creation/MCC Concept 003 Session Results</title>
    <id>3183</id>
    <revision>
      <id>29086</id>
      <timestamp>2010-02-11T16:09:19Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Co-Creation]]</comment>
      <text xml:space="preserve">'''WHAT IS IT?'''

Live in the power of now. In stead of having to edit all your photo's afterwards, something you hardly ever do, you can now edit the picture at the spot. You adjust your settings (lighting, contrast, special effects, etc) with easy touch-screen sliders before you take the picture/movie. You aim, shoot, and voila: a perfect picture, all real-time, ready to store, share or send into the cloud for others to find &amp; enjoy. Of course it is possible to keep the non-edited original as well. 


'''WOW-FACTOR'''

An instant &amp; fun media capturing &amp; editing experience 


'''MAEMO-NESS'''

Open source software, everybody can add apps


'''RESULTS CO-CREATION SESSION'''

[image]

[image]

[[Category:Co-Creation]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Co-Creation/MCC Concept 003 Workshop Results</title>
    <id>3184</id>
    <revision>
      <id>29087</id>
      <timestamp>2010-02-11T16:09:30Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Co-Creation]]</comment>
      <text xml:space="preserve">On Saturday the 10th of October we have presented the co-creation workshop concepts at the Maemo Summit, during the Maemo Co-Creation Showcase. After that, everybody was invited to provide feedback and help further develop the concepts. This was very successful, many Summit attendees joined us on the stage to elaborate on the 4 concepts.

On Sunday, we had another co-creation 'Garage' session in the Entry Hall of the Maemo Summit. The 4 concepts and the feedback from the day before were put on the wall and again, people were invited to further develop the concepts. Two visualisers were present to help make all ideas tangible on the spot.


'''RESULTS MAEMO SUMMIT WORKSHOPS'''

Several ideas for applications were thought of: 

[image]

1. The blue colour is chosen to be edited on the photo. The camera recognises it and the viewfinder shows the result.
2. While you are making a video, you can add little items to the setting. For example some hearts/kisses/music note etc. They will be in the movie, when playing it later. 

[image]



[[Category:Co-Creation]]
Two problems that have to be solved relate to the plug-ins used for an application like this. Right now Gstreamer and Quill are used for either still or moving images. An 'all-in-one' plug-in would highly improve the usability of this application. Next to that, the plug-ins used have to be secured, the user has to be sure that his/her device can 'take all the action'.

Also, a first idea for the UI was visualised:

[image]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Co-Creation/MCC Concept 004 Feedback</title>
    <id>3188</id>
    <revision>
      <id>29088</id>
      <timestamp>2010-02-11T16:09:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Co-Creation]]</comment>
      <text xml:space="preserve">Feel free to '''provide your feedback''' and '''share new ideas''' here on the Join the Band concept.


'''FEEDBACK PROVIDED DURING SUMMIT'''

On Saturday, the following feedback for Join the Band was given during the Maemo Summit:


[image]

[[Category:Co-Creation]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Co-Creation/MCC Concept 004 Workshop Results</title>
    <id>3185</id>
    <revision>
      <id>34638</id>
      <timestamp>2010-05-21T12:33:24Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <minor/>
      <comment>minor grammar</comment>
      <text xml:space="preserve">On Saturday the 10th of October we  presented the co-creation workshop concepts at the Maemo Summit, during the Maemo Co-Creation Showcase. After that, everybody was invited to provide feedback and help further develop the concepts. This was very successful, many Summit attendees joined us on the stage to elaborate on the 4 concepts.

On Sunday, we had another co-creation 'Garage' session in the Entry Hall of the Maemo Summit. The 4 concepts and the feedback from the day before were put on the wall and again, people were invited to further develop the concepts. Two visualisers were present to help make all ideas tangible on the spot.


'''RESULTS MAEMO SUMMIT WORKSHOPS'''

During the Summit, two different point of views emerged for this concept. They were both explained in case of a wedding. 


[image]


In this first, the central point is a tangible box people (bride &amp; groom) can take with them afterwards. All guests have collaboratively helped create this experience. 


[image]


The other idea is that it all happens in the cloud. The subject is central (wedding) and everybody can hop on/hop off the collaboration flow. You get in, help create around the subject, synchronise, hop of, check in later what has changed, etc. The latest version is always available for you. 

The first ideas for a UI for this concept was also created: 


[image]


Level 0: you see what you are working on, you choose 'website'
Level 1: you see the others who are working on this and what they have done so far. You click on the document
Level 2: You see the details of the document, you can edit it, view other comments, still see the action-lines to others who are connected to the document.

[[Category:Co-Creation]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Co-Creation/MCC IFS</title>
    <id>3189</id>
    <revision>
      <id>29090</id>
      <timestamp>2010-02-11T16:10:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Co-Creation]]</comment>
      <text xml:space="preserve">During the Maemo Summit, additional ideas were thought of, next to the four concepts. One is about sharing, a concept closely related to the 4 concepts


'''IDEAS FOR SHARING'''


[image]


1: your device has a 'private' screen and a 'sharing' screen. You can easily drag items from one screen to another to ensure the right items are (not) found by others


2: 'Throw' the content you want to share towards the other device, where you can see it being received.

[[Category:Co-Creation]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Co-Creation/MCC Movie</title>
    <id>2810</id>
    <revision>
      <id>29091</id>
      <timestamp>2010-02-11T16:10:09Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Co-Creation]]</comment>
      <text xml:space="preserve">== Maemo Co-Creation Movie ==

[[Image:Mcc_movie_still_0001.jpg‎|Maemo Co-Creation Movie]]

Click [http://vimeo.com/7006565 here] to watch the Maemo Co-Creation movie at [http://vimeo.com Vimeo].

[[Category:Co-Creation]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Co-Creation/MCC Session Photos</title>
    <id>2807</id>
    <revision>
      <id>29092</id>
      <timestamp>2010-02-11T16:10:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Co-Creation]]</comment>
      <text xml:space="preserve">== Maemo Co-Creation Session Photos ==

''Specific photos will go here.''

=== Maemo Co-Creation Flickr Stream ===

&lt;rss title=&quot;off&quot; desc=&quot;off&quot; number=&quot;20&quot; time=&quot;3600&quot;&gt;http://api.flickr.com/services/feeds/photos_public.gne?tags=maemo%20co-creation&amp;format=rss_200&lt;/rss&gt;

[[Category:Co-Creation]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Co-Creation/MCC Summit Photos</title>
    <id>2808</id>
    <revision>
      <id>29093</id>
      <timestamp>2010-02-11T16:10:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Co-Creation]]</comment>
      <text xml:space="preserve">== Maemo Summit Co-Creation Photos ==

''Specific photos will go here.''

=== Maemo Co-Creation Flickr Stream ===

&lt;rss title=&quot;off&quot; desc=&quot;off&quot; number=&quot;20&quot; time=&quot;3600&quot;&gt;http://api.flickr.com/services/feeds/photos_public.gne?tags=maemo%20co-creation&amp;format=rss_200&lt;/rss&gt;

[[Category:Co-Creation]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Co-Creation/MCC TTF</title>
    <id>3190</id>
    <revision>
      <id>29094</id>
      <timestamp>2010-02-11T16:10:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Co-Creation]]</comment>
      <text xml:space="preserve">During the Maemo Summit, additional ideas were thought of, next to the four concepts. One is about trust, a concept closely related to the 4 concepts


'''THE TRUST FACTOR'''


[image]



When sharing content and interacting, trust becomes more and more important. You trust two of your friends 100% - you put this in your pre-settings for receiving content from them. These two people, who trust you, don't know eachother. But when one of them wants to share content with the other, the fact that you trust him, becomes the start of their trustbuilding. You are the aggregator of their trust, because you trust them both. The more they successfully share, the more their trus-indicator increases.

[[Category:Co-Creation]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Coding Competition 1</title>
    <id>4121</id>
    <revision>
      <id>40556</id>
      <timestamp>2010-12-06T12:35:42Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify some links</comment>
      <text xml:space="preserve">== Welcome to the first App development Contest for Maemo devices. ==

'''''NB: Competition entry has now ended, [[#Results|see the results]]'''''

Are you bored waiting for new games to be released for your [[Nokia N900|N900]]? Is your forehead wrinkled stressing about the lack of applications in the [[extras]] repository? Does the emptiness of the Ovi store make you urinate in your sleep? And do you call out your mother's name when making love to your girlfriend because of step 4 of 5 disappointment and unrelated mental issues?

Well now YOU can change that, my friends! Introducing the first ever N900 Coding Competition!

If you are new to programming or want to learn, here's the excuse to finally make something. Anything. Qt, PyQt, PyGTK, whatever language you like as long as it's functionally complete, runs safely, easily, and is targeted at the N900 platform. Don't make a virus kthx.

'''The winning application(s) will be decided by forum poll after the closing date of July 21st, 2010.''' 

Good luck and most of all have fun!

== Categories and voting ==

''NB: Competition entry is now closed and voting has been completed.'' 

There are 6 main categories for submissions:

* Desktop - http://talk.maemo.org/showthread.php?p=760304 [http://talk.maemo.org/showthread.php?p=760304]
* System &amp; Utilities - http://talk.maemo.org/showthread.php?p=764039 [http://talk.maemo.org/showthread.php?p=764039]
* Games - http://talk.maemo.org/showthread.php?t=58990 [http://talk.maemo.org/showthread.php?t=58990]
* Graphics &amp; Multimedia - http://talk.maemo.org/showthread.php?p=763679 [http://talk.maemo.org/showthread.php?p=763679]
* Location &amp; Navigation - http://talk.maemo.org/showthread.php?t=58964 [http://talk.maemo.org/showthread.php?t=58964]
* Other - http://talk.maemo.org/showthread.php?t=59038 [http://talk.maemo.org/showthread.php?t=59038]

In addition, there is an extra category for those new to N900 development:

* Beginners - http://talk.maemo.org/showthread.php?t=59074[http://talk.maemo.org/showthread.php?t=59074]

== Results ==

The competition has now ended. The winning application and runners ups for each category is as follows:

{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Category
! Winning App
! 1st Runner Up
! 2nd Runner Up
! 3rd Runner Up
|-
| '''Desktop'''
| Queen Beecon
| MyContacts
| Maenotify	
| Sticky notes
|-
| '''Location &amp; Navigation'''
| CloudGPS 
| Advanced Geocaching Tool
| modRana
| MetroMap
|-
| '''System &amp; Utilities'''
| Faster Application Manager 
| ApMeFo
| Alarmed
| Extended Call Log
|-
| '''Games'''
| PSX4M
| Destroid
| Bos Wars
| Skid Stone
|-
| '''Graphics &amp; Multimedia'''
| PenPen Sketchbook
| Metre
| eSpeak GUI Client
| DreamRemote
|-
| '''Other'''
| TweeGo
| Scout
| qexercise
| DropN900
|-
| '''Beginners'''
| DropN900 
| qexercise
| ApMeFo
| BackupMenu
|}

== Prizes ==

'''Nokia invites the seven winners (winner of each category) to the [http://wiki.meego.com/MeeGo_Conference_2010 MeeGo Conference 2010], due to be held in Dublin, Ireland!
Travel and accommodation costs will be covered by Nokia. If the winner is unable to attend, a N900 can be offered in exchange.'''

Sources:
[http://talk.maemo.org/showpost.php?p=668884&amp;postcount=43]
[http://talk.maemo.org/showpost.php?p=669252&amp;postcount=63]

Also there will be a prize fund into which the community will be able to donate.  If you would like to add to the prize fund please reply here[http://talk.maemo.org/showthread.php?p=666733].. $5, $10, anything would be gratefully received. Why not sponsor your favourite category?

The bounty share out will be decided by a forum poll here [http://talk.maemo.org/showthread.php?t=59132]

==Bounty Roll of Honor==

The list of pledges and donations
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Name
! Amount
! After PayPal
! Paid
|-
| kojacker 
| €41
| €39.87
| Confirmed
|-
| lcuk
| €50
| €48.70
| Confirmed
|-
| cheve 
| €20
| €18.87
| Confirmed
|- 
| ArchiMark 
| €10
| €9.26
| Confirmed
|- 
| felbutss
| $20
| tbc
| tbc
|-
| mymybib
| €5
| €4.55
| Confirmed
|- 
| mobiledivide
| €10
| €9.26
| Confirmed
|-
| hepokatti 
| ?
| tbc
| tbc
|-
| bald.eagle.one
| €15
| €14.36
| Confirmed
|-
| adib
| €15
| €14.36
| Confirmed
|-
| qwertyberty
| €25
| €24.17
| Confirmed
|-
| Ken-Young
| €100
| €95.75
| Confirmed
|-
| jacobkorf
| $20
| tbc
| tbc
|-
| lukash
| €20
| €19.27
| Confirmed
|-
| amh
| €22
| €21.23
| Confirmed
|-
| DanielW
| €10
| €9.46
| Confirmed
|-
| MikeC
| $20
| tbc
| tbc
|-
| Mve
| €25
| €24.17
| Confirmed
|-
| Kalle
| €40
| €38.89
| Confirmed
|-
| dj_steve
| €7.28
| €6.79
| Confirmed
|-
| McRae
| €10
| €9.46
| Confirmed
|-
| OVK
| €30
| €29.08
| Confirmed
|-
| Rob1n
| €25
| €24.17
| Confirmed
|-
| rcastberg
| €25
| €24.17
| Confirmed
|-
| rustler
| €20
| €18.87
| Confirmed
|-
| mdb666
| €30
| €29.08
| Confirmed
|-
| Slocan
| €10
| €9.26
| Confirmed
|-
| SallyJane (1st)
| €20
| €18.87
| Confirmed
|-
| SallyJane (2nd)
| €20
| €18.87
| Confirmed
|-
| Smoku
| €10
| €9.26
| Confirmed
|-
| Laughing Man 
| €15.00
| €14.06
| Confirmed
|-
| Kolos
| €5
| €4.55
| Confirmed
|-
| jer006
| €10
| €9.26
| Confirmed
|-
| navsin
| €20
| €18.87
| Confirmed
|-
| Anonymous
| €50
| €48.70
| Confirmed
|-
| gs1
| €10
| €9.46
| Confirmed
|-
| magullo
| €10
| tbc
| tbc
|-
| Total
| 
| 
|}

== Participants ==

''NB: Competition entry is now closed'' 

Fill in the table with your application informations and progress. New participants can join at any time up until the closing date.

If you have not already done so, please PM the contest organiser with further info on your project to be used in the voting thread. As an example outline:

*App name:
*Author:
*Brief description:
*Screenshot(s):
*Features/work to be judged:
*Package name and where to find the app/repository:
*Maemo.org thread or garage thread (if exists) 

{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Developer
! Application
! Category
! Current Progress (%)
! Beginner Entry (Y/N)
|-
| [http://maemo.org/profile/view/emesem/ emesem]
| [http://sites.google.com/site/markusscharnowski/n/pushit/ Push-It!] or [http://talk.maemo.org/showthread.php?t=59134 Talk]
| Utilities
| 100%
| Y
|-
| [http://maemo.org/profile/view/nononoyes/ No!No!No!Yes!]
| [[Queen BeeCon Widget]]
| Desktop
| 99.9%
|
|-
| [http://maemo.org/profile/view/b0unc3/ b0unc3]
| [https://garage.maemo.org/projects/maenotify/ maenotify-0.4]
| Desktop
| 55%
|
|-
| rmerren
| Old School
| Other
| 5%
|
|-
| [http://maemo.org/profile/view/amandalam/ amandalam]
| [http://maemo.org/packages/view/espeakgui/ eSpeak GUI Client]
| Graphics &amp; Multimedia
| 90%
| Y
|-
| [http://maemo.org/profile/view/mmlado/ mmlado]
| [https://garage.maemo.org/projects/peqersi/ PeQersi]
| Games
| 40%
| N
|-
| [http://maemo.org/profile/view/pine/ pine]
| [http://maemo.org/packages/view/metromap-fremantle/ MetroMap]
| Location &amp; Navigation
| 99%
|
|-
| [http://maemo.org/profile/view/lukash/ lukash]
| [https://garage.maemo.org/projects/case/ Case File Manager]
| System &amp; Utilities
| 2%
|
|-
| [http://maemo.org/profile/view/jolouis/ jolouis] &amp;&amp; [http://maemo.org/profile/view/spenc3/ Spenc3]
| [https://garage.maemo.org/projects/flipclock/ Flipclock 1.0]
| System &amp; Utilities
| 75%
|
|-
| [http://maemo.org/profile/view/jolouis/ jolouis] &amp;&amp; [http://maemo.org/profile/view/spenc3/ Spenc3]
| NetSlider
| Graphics &amp; Multimedia
| 60%
|
|-
| [http://maemo.org/profile/view/helex/ helex]
| [http://dreamremote.garage.maemo.org/ DreamRemote] or [http://talk.maemo.org/showthread.php?t=52589 talk.Maemo.org]
| Graphics &amp; Multimedia
| 95%
| 
|-
| [http://maemo.org/profile/view/fieldofcows/ fieldofcows]
| [https://garage.maemo.org/projects/classiccam/ Classic Cam]
| Graphics &amp; Multimedia
| 100%
|
|-
| [http://maemo.org/profile/view/fieldofcows/ fieldofcows]
| [https://garage.maemo.org/projects/classicprint/ Classic Print]
| Graphics &amp; Multimedia
| 100%
|
|-
| [http://maemo.org/profile/view/digitalsurgeon/ digitalsurgeon]
| Easy Wallpaper
| Utilities &amp; Desktop
| 35%
|
|-
| [http://maemo.org/profile/view/jmacalinao/ JMacalinao]
| Tumblr for N900
| Other
| 45%
| N
|-
| [http://maemo.org/profile/view/khertan/ Khertan]
| [http://khertan.net/khteditor KhtEditor]
| Other
| 80%
|
|-
| [http://maemo.org/profile/view/khertan/ Khertan]
| [http://khertan.net/vectormine VectorMine]
| Game
| 99%
|
|-
| [http://maemo.org/profile/view/tahitibob35/ tahitibob35]
| [http://david.hautbois.free.fr/wordpress/index.php/realisations/libellule/ Libellule]
| Location &amp; Navigation
| 100%
|
|-
| [http://maemo.org/profile/view/lullen/ lullen]
| qexercise
| Other
| 30%
| Y
|-
| [http://maemo.org/profile/view/webhamster/ webhamster]
| [http://www.danielfett.de/internet-und-opensource,software,agtl-on-maemo-n900 Advanced Geocaching Tool (new Features)]
| Location &amp; Navigation
| 50%
|
|-
| [http://maemo.org/profile/view/smoku/ smoku]
| [http://maemo.org/packages/view/boswars/ Bos Wars]
| Games
| 100%
|
|-
| [http://maemo.org/profile/view/smoku/ smoku]
| [http://maemo.org/packages/view/psx4m/ PSX4M]
| Games
| 50%
|
|-
| [http://maemo.org/profile/view/mikhail_ramalho Mikhail_Ramalho] &amp;&amp; [http://maemo.org/profile/view/rodavelino/ Rodavelino] 
| [https://garage.maemo.org/projects/tweego/ TweeGo] 
| Other
| 100% 
| N
|-
| [http://maemo.org/profile/view/slocan/ Slocan]
| [http://maemo.org/packages/view/feedingit/ FeedingIt (Home-Screen Widget only)]
| Desktop
| 60%
|
|-
| [http://maemo.org/profile/view/slocan/ Slocan]
| Flobby
| Games
| 10%
|
|-
| [http://maemo.org/profile/view/jerem/ JereM]
| [https://garage.maemo.org/projects/netstory/ NetStory]
| System &amp; Utilities
| 100%
|
|-
| [http://maemo.org/profile/view/caco3/ CaCO3]
| [https://garage.maemo.org/projects/shiprolling/ ShipRolling]
| System &amp; Utilities
| 100%
|
|-
| [http://maemo.org/profile/view/dotblank/ Dotblank]
| Groove
| Graphics &amp; Multimedia
| 70%
| Y
|-
| [http://maemo.org/profile/view/davidh101/ davidh101]
| ParcelGenie
| System &amp; Utilities (I think)
| 0%
|
|-
| [http://maemo.org/profile/view/rob1n/ Rob1n]
| [http://talk.maemo.org/showthread.php?t=55884 AutoComplete Editor]
| System &amp; Utilities
| 90%
|
|-
| [http://maemo.org/profile/view/krk969/ krk969]
| [http://buddy.passiongarage.co.uk Buddy, a budget/expense manager application for Maemo/Windows/Linux ]
[http://talk.maemo.org/showthread.php?t=52203 Maemo.org thread]
| System &amp; Utilities
| 100%
|
|-
| [http://maemo.org/profile/view/joorin/ joorin]
| [http://talk.maemo.org/showthread.php?t=52917 footify, a Spotify client]
| Graphics &amp; Multimedia
| 85%
|
|-
| [http://maemo.org/profile/view/benlau/ Ben Lau]
| [http://talk.maemo.org/showthread.php?p=717597 PenPen Sketchbook]
| Graphics &amp; Multimedia
| 90%
|
|-
| [http://maemo.org/profile/view/caco3/ CaCO3]
| [https://garage.maemo.org/projects/sleepanalyser/ SleepAnalyser]
| System &amp; Utilities
| 100%
|
|-
| [http://maemo.org/profile/view/helihyv/ helihyv]
| [https://garage.maemo.org/projects/kitchenalert/ KitchenAlert]
| System &amp; Utilities
| 100%
| Y
|-
| [http://maemo.org/profile/view/artohyv/ artohyv] &amp; [http://maemo.org/profile/view/helihyv/ helihyv]
| [http://urpo.garage.maemo.org/ URPO]
| System &amp; Utilities
| 100%
| Y
|-
| [http://maemo.org/profile/view/vmp/ vmp]
| [http://maemo.org/packages/view/espeaktime/ eSpeakTime]
| Graphics &amp; Multimedia
| 95%
|
|-
| [http://maemo.org/profile/view/amandalam/ amandalam]
| [http://maemo.org/packages/view/strokeorder/ Stroke Order Chinese Input Method]
| System &amp; Utilities
| 80%
| Y
|-
| [http://maemo.org/profile/view/fcrochik/ fcrochik]
| [http://talk.maemo.org/showthread.php?t=57162 Contacts Desktop Widget]
| Desktop
| 80%
|
|-
| [http://maemo.org/profile/view/venemo/ Venemo]
| [http://talk.maemo.org/showthread.php?t=57049 Sticky Notes]
| Desktop
| 110%
|
|-
| [http://maemo.org/profile/view/nathraiben/ Nathraiben]
| [http://talk.maemo.org/showthread.php?t=56844 ApMeFo]
| System &amp; Utilities
| 95%
| Y
|-
| [http://maemo.org/profile/view/alexbravo/ AlexBravo]
| Nokia Bots on N900
| System &amp; Utilities
| 5%
|
|-
| [http://maemo.org/profile/view/realsportcars realsportcars]
| [http://talk.maemo.org/showthread.php?t=56220 FastSMS]
| System &amp; Utilities 
| 20%
|
|-
| [http://maemo.org/profile/view/matrim matrim]
| [http://maemo.org/packages/view/extcalllog/ Extended Call Log]
| System &amp; Utilities
| To be updated
|
|-
| [http://maemo.org/profile/view/andy80 Andrea Grandi] [http://maemo.org/profile/view/lorebett Lorenzo Bettini]
| [http://gitorious.org/msoma mSoma]
| Graphics &amp; Multimedia
| 60%
|
|-
| [http://maemo.org/profile/view/epage Ed Page]
| [http://maemo.org/packages/view/gonvert/ Gonvert]
| System &amp; Utilities
| 100%
|
|-
| [http://maemo.org/profile/view/nicolai/ nicolai]
| [http://maemo.org/packages/view/scout/ scout]
| Other
| 100%
|
|-
| [http://maemo.org/profile/view/sharky76/ Alex]
| [http://maemo.org/packages/view/qvernote/ Qvernote]
| Other
| 100%
|
|-
| [http://maemo.org/profile/view/hqh/ hqh]
| [http://maemo.org/packages/view/fapman/ Faster Application Manager]
| System &amp; Utilities
| 100%
|
|-
| [[User:Robbiethe1st]]
| [http://talk.maemo.org/showthread.php?p=754837#post754837 BackupMenu (system image utility)]
| Other (not an in-OS tool)
| 100%
| Y
|-
| [http://maemo.org/profile/view/andy80 Andrea Grandi]
| [http://gitorious.org/lastgo LastGo]
| Graphics &amp; Multimedia
| 95%
| Y
|-
| [http://maemo.org/profile/view/vrwarp/ Benson Tsai]
| [http://maemo.org/packages/view/k9call/ K9 Call]
| Desktop
| 90%
| Y
|-
| [http://maemo.org/profile/view/avis/ Alek Terekhov]
| [http://talk.maemo.org/showthread.php?t=58692 Skid Stone]
| Games
| 100%
| Y
|-
| [http://maemo.org/profile/view/dwaradzyn/ Damian Waradzyn]
| [http://talk.maemo.org/showthread.php?t=58402 CloudGPS]
| Location &amp; Navigation
| 25%
|
|-
| [http://maemo.org/profile/view/shapeshifter/ Shapeshifter]
| [http://talk.maemo.org/showthread.php?t=46594 Alarmed]
| System &amp; Utilities
| 100%
| 
|-
| [http://maemo.org/profile/view/shapeshifter/ Shapeshifter]
| [http://talk.maemo.org/showthread.php?t=58147 Reaction face-off]
| Games
| 99.9%
| 
|-
| [http://maemo.org/profile/view/gryllida Gryllida]
| [http://maemo.org/packages/view/eye4/ eye4]
| Other
| 100%
| Y
|-
| [http://talk.maemo.org/member.php?u=37879 MartinK]
| [http://talk.maemo.org/showthread.php?p=758642 modRana]
| Location &amp; Navigation
| 95%
| 
|-
| [http://talk.maemo.org/member.php?u=42987 destroid]
| [http://talk.maemo.org/showthread.php?p=758622 Destroid]
| Games
| 100%
| Y
|-
| [http://talk.maemo.org/member.php?u=38025 jonnenau]
| [http://talk.maemo.org/showthread.php?t=58882 DropN900]
| Other (suits best?)
| 100%
| Y
|-
| [http://maemo.org/profile/view/b0unc3/ b0unc3]
| [https://garage.maemo.org/projects/quicklaunch/ quick-launch]
| System &amp; Utilities 
| 73%
| N
|-
| [http://talk.maemo.org/member.php?u=43068 Bzouk]
| [http://talk.maemo.org/showthread.php?p=759616#post759616 N9Profile]
| Other 
| 100%
| Y
|-
| [http://talk.maemo.org/member.php?u=28619 klen]
| [http://talk.maemo.org/showthread.php?p=759913#post759913 Ruler App]
| Graphics &amp; Multimedia  
| 100%
| Y
|}

== Beginners spinoff competition ==

'''''Nb: Beginners competition entry has now ended'''''

In addition to the main coding competition, we are also running a separate spin off beginners coding competition. Participants who marked their entries as beginner to the main contest are automatically entered.

As mentioned in the rules, entries to the beginners competition must be the authors first released coding project(s) for the N900, and must have been first released between the competition start and end dates. In addition, the same rules as the main comp also apply.

This competition is not eligible to make use of the main coding competition bounty and prizes. However there is expected to be a small bounty offered by the community to the winner(s) of this competition, this is still to be finalised.

Here is the final table of participants:
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Developer
! Application
! Category
|-
| [http://maemo.org/profile/view/emesem/ emesem]
| [http://sites.google.com/site/markusscharnowski/n/pushit/ Push-It!] or [http://talk.maemo.org/showthread.php?t=59134 Talk]
| Utilities
|-
| [http://maemo.org/profile/view/amandalam/ amandalam]
| [http://maemo.org/packages/view/espeakgui/ eSpeak GUI Client]
| Graphics &amp; Multimedia
|-
| [http://maemo.org/profile/view/lullen/ lullen]
| qexercise
| Other
|-
| [http://maemo.org/profile/view/dotblank/ Dotblank]
| Groove
| Graphics &amp; Multimedia
|-
| [http://maemo.org/profile/view/helihyv/ helihyv]
| [https://garage.maemo.org/projects/kitchenalert/ KitchenAlert]
| System &amp; Utilities
|-
| [http://maemo.org/profile/view/artohyv/ artohyv] &amp; [http://maemo.org/profile/view/helihyv/ helihyv]
| [http://urpo.garage.maemo.org/ URPO]
| System &amp; Utilities
|-
| [http://maemo.org/profile/view/amandalam/ amandalam]
| [http://maemo.org/packages/view/strokeorder/ Stroke Order Chinese Input Method]
| System &amp; Utilities
|-
| [http://maemo.org/profile/view/nathraiben/ Nathraiben]
| [http://talk.maemo.org/showthread.php?t=56844 ApMeFo]
| System &amp; Utilities
|-
| [[User:Robbiethe1st]]
| [http://talk.maemo.org/showthread.php?p=754837#post754837 BackupMenu (system image utility)]
| Other (not an in-OS tool)
|-
| [http://maemo.org/profile/view/andy80 Andrea Grandi]
| [http://gitorious.org/lastgo LastGo]
| Graphics &amp; Multimedia
|-
| [http://maemo.org/profile/view/vrwarp/ Benson Tsai]
| [http://maemo.org/packages/view/k9call/ K9 Call]
| Desktop
|-
| [http://maemo.org/profile/view/avis/ Alek Terekhov]
| [http://talk.maemo.org/showthread.php?t=58692 Skid Stone]
| Games
|-
| [http://maemo.org/profile/view/gryllida Gryllida]
| [http://maemo.org/packages/view/eye4/ eye4]
| Other
|-
| [http://talk.maemo.org/member.php?u=42987 destroid]
| [http://talk.maemo.org/showthread.php?p=758622 Destroid]
| Games
|-
| [http://talk.maemo.org/member.php?u=38025 jonnenau]
| [http://talk.maemo.org/showthread.php?t=58882 DropN900]
| Other (suits best?)
|-
| [http://talk.maemo.org/member.php?u=43068 Bzouk]
| [http://talk.maemo.org/showthread.php?p=759616#post759616 N9Profile]
| Other 
|-
| [http://talk.maemo.org/member.php?u=28619 klen]
| [http://talk.maemo.org/showthread.php?p=759913#post759913 Ruler App]
| Graphics &amp; Multimedia  
|}

== Rules ==

* The competition start date is May 21st, 2010.
* Entries to be submitted no later than Wednesday July 21 Midnight Greenwich time.
* Entries will only be accepted for the following formats: Nokia N900.
* Entries may be accepted for other systems but only if they benefit the above format. For example development tools, video encoders, game makers etc that run on PC/Mac/Linux... 
* Already released software must have a substantial upgrade from previous releases to qualify for judging and must also contain a list of changes the author has made to the previous version. 
* Submitted entries should be accompanied by a forum post, pm to competition organiser and/or a text file with the authors email, PayPal address (can be retrieved later), the name of the software and a brief description of the software. If this entry text file is packaged with your project, this file should be called &quot;entry.txt&quot;. You should also provide a brief description of your work done and, if possible, a screenshot to be used in the voting thread. 
* Entries that are not stand alone software will have to include any libraries or files required to run, or they should be easily available via the normal Maemo.org and Nokia repositories. Clear instructions will have to be provided. In the case of interpreters and emulators copyrighted files should not be included.
* If there are too many qualifying entries that the forum software cannot facilitate a single voting thread, multiple threads and polls may need to be used to determine which group will be entered into the final vote. Prizes will not be awarded for winners of any such qualifying rounds.
* Coding competition entries marked as beginner will also automatically be entered into a separate beginners contest if they meet the following criteria: entries to the beginners competition must be the authors first released coding project(s) for the N900, and must have been first released between the competition start and end dates. 
* Voting is strictly one vote per user. The use of multiple accounts to vote, creating fake accounts to register votes, or using other illegal means to register votes is strictly prohibited and may be seen as an attempt to defraud the poll and community. Your votes may be discounted and/or your entries disqualified if judged by the contest organiser that you have done so.
* There will be a feature freeze on entries during the voting stage of the competition. Please limit your competition entry code changes to bug fix only for any release during this period, and this restriction should remain until the end of the vote.
* Entries in languages other than English will be accepted as long as sufficient English documentation is provided.
* Prize winners receiving a share of the collected bounty will be paid through Paypal transaction. Any fees charged by Paypal will be deducted from the prize amount.

== Useful contacts ==

* Competition organiser: kojacker
* Competition treasurer: zehjotkah
* Competition thread, for answers and discussion: &quot;The First N900 Coding Competition! 21st May-21st July. Open to all!&quot; [http://talk.maemo.org/showthread.php?t=53112]

== Getting started with N900 development ==

The Nokia Qt SDK is the official set of tools with everything needed to design and create applications for the N900 [http://www.forum.nokia.com/info/sw.nokia.com/id/e920da1a-5b18-42df-82c3-907413e525fb/Nokia_Qt_SDK.html]. The [http://maemo.org/development/ development wiki] is a great place to start, it contains lots of code examples and development guides. The &quot;Windows Python and Qt in 30 mins&quot;[http://talk.maemo.org/showthread.php?t=43663] thread is a great tutorial for beginners and will have you coding your first app in minutes, and here's a link to a tutorial from Linuxuser.co.uk[http://www.linuxuser.co.uk/tutorials/programming/develop-for-the-nokia-n900/]. The key is to get started, and do not be afraid to ask questions. Beginners are definitely welcome in this comp, great oaks from little acorns grow..

The 'Developer' forum on maemo.org[http://talk.maemo.org/forumdisplay.php?f=13] is an excellent resource to find answers and ask questions of your own.

== Wishlist ==

{| class=&quot;wikitable&quot; border=&quot;2&quot;
|-
! Category
! Description
|-
| Desktop
| Browser Widget - see http://talk.maemo.org/showthread.php?t=52003
|-
|Games
| Mupen64 (Nintendo 64 emulator) proper port with full GUI. Pandora version with OpenGL ES plugin available. See: http://talk.maemo.org/showthread.php?t=56752
|-
| Graphics &amp; Multimedia 
| N900 as usb webcam - see http://talk.maemo.org/showthread.php?t=52585
|-
| Graphics &amp; Multimedia 
| Equalizer for N900 - An equalizer plugin for default media player
This has already been implemented, see http://blogs.igalia.com/jasuarez/2009/10/21/mafw-renderer-plugin-with-equalizer/
|-
| Location &amp; Navigation 
| Execute script/actions when entering/leaving a GSM cell or GPS based- see http://talk.maemo.org/showthread.php?p=667173 and http://talk.maemo.org/showthread.php?t=53172
|-
| System &amp; Utilites
| a customisable news/weather alarm clock - see http://talk.maemo.org/showpost.php?p=667626&amp;postcount=34
|-
| Office
| LaTex Editor with GUI.. There are already LaTex library
|-
| Office
| Advanced Pdf reader with comment and highlight..
|-
| System &amp; Utilites
| GUI for titan kernel
|-
| System &amp; Utilites
| GUI for truecrypt
|-
| Other
| Sleep Cycle Analyzer clone - see http://lifehacker.com/5441045/sleep-cycle-analyzes-your-sleep-patterns-for-a-better-wake+up
There are 2 projects trying to fullfill this challenge:
Sleppy and SleepAnalyser
|-
| Other
| M-Fart (iFart clone)
|-
| Other 
| M-Boobs (iBoobs clone)
|-
| Desktop
| Maemo optimized e-book/pdf reader with touch gestures
|-
| Desktop
| statusarea/statusmenu items editor
|-
| Graphics &amp; Multimedia 
| configurable Sharing Plug-in for the Image Application - see http://talk.maemo.org/showpost.php?p=704394&amp;postcount=235
|-
| System &amp; Utilites
| Application to create and setup Folders in the Programmenu. - see http://talk.maemo.org/showthread.php?t=54924 and http://talk.maemo.org/showthread.php?t=37874
|-
| Bluetooth
| Bluetooth rSAP protocol integration
see: http://maemo.org/community/brainstorm/view/rsap-remote_sim-support_for_n900/#make_this_a_solution
see: http://talk.maemo.org/showthread.php?t=31962
see: http://talk.maemo.org/showthread.php?t=34027

maybe portable from Samsung Galaxy S (Android):
see http://www.samsungmobile.co.uk/mobile-phones/samsung-galaxy-s-specification - also there is an Android SDK with the protocol within:
see http://www.sybase.com/products/allproductsa-z/mobiledevicesdks/bluetoothsdks


|}

For more, see the [[Community_wish-list|Wish List]] and [[Applications_you_wish_were_ported_from_other_platforms|Ports]] pages

[[Category:Community]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo For Beginners</title>
    <id>1876</id>
    <revision>
      <id>40597</id>
      <timestamp>2010-12-07T08:33:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>reformat section headings</comment>
      <text xml:space="preserve">If you've bought a [[Nokia N800]], [[Nokia N810|N810]] or [[Nokia N900|N900]] and need help with the basics of how to use it, this might be a good place to start.

The tutorials in this section deal with all the main stuff you can do with the Nokia tablets, and they're written in a language that (hopefully!) anyone can understand.

In case you're wondering what &quot;Maemo&quot; actually means, the Nokia tablets run on an operating system called Linux Maemo, and maemo.org is the official website of the Maemo developer and user community.

The original versions of these tutorials were published on the Internet Tablet School site and are used here with permission.

Anyway, on with the tutorials!

==Start Here!==

*'''[[First_Steps_With_Your_Nokia_Tablet|So you've bought a Nokia N800 or N810? Here's what you should do first...]]'''
*'''[[How_to_find_built-in_help_on_the_Nokia_n800_and_n810|How to find the official manual and built-in help on the N800 and N810]]'''

==Miscellaneous Important Stuff==

*'''[[Switching_Off_Fit_Width_To_View|Web pages distorted and slow to load? Try switching off the Fit Width To View option]]'''
*'''[[How_to_fix_your_tablet_browser_if_Flash_doesn%27t_work|How to fix the web browser if it won't display Flash-based pages]]'''
*'''[[How_To_Make_Your_Battery_Last_Longer|How to make your tablet's battery last as long as possible]]'''
*'''[[N810_Memory_Card_Bug|Do you use the internal memory card on the Nokia N810? If so, read this.]]'''

==About The Internet Tablets==

*'''[[Internet_tablets|What are internet tablets, and why would I want to use one?]]'''

==Connecting The Tablets To The Internet==

*'''[[How_to_connect_your_tablet_to_the_internet_using_Wi-Fi|How to connect your tablet to the internet using Wi-Fi / WLAN]]'''
*'''[[How_to_connect_your_tablet_to_the_internet_using_a_mobile_phone|How to connect your tablet to the internet using a mobile phone (cell phone)]]'''
*'''[[How_to_connect_your_tablet_to_the_internet_with_Fon_routers|How to connect your tablet to the internet using a Fon connection (La Fonera)]]'''

==Setting Up &amp; Customising The Tablets==

*'''[[How_to_update_the_firmware_on_the_Nokia_N800_and_n810|How to update the firmware on the N800 and N810]]'''
*'''[[How_to_customise_the_tablet_wallpaper|How to customise the tablet's desktop wallpaper]]'''
*'''[[Themes|How to change the tablet's theme]]'''
*'''[[How_to_customise_the_desktop_and_interface_on_the_N800_and_N810|How to customise the N800 and N810 desktop and interface]]'''
*'''[[How_to_adjust_the_Nokia_n800_and_n810_nightlight|How to customise the N800 and N810 blinking light]]'''
*'''[[Lock the screen and keyboard|How to lock the touchscreen and keys on the N900, N810 and N800]]'''

==Tablet Accessories==

*'''[[Using_memory_cards_with_the_Nokia_N800|A guide to memory cards on the Nokia N800]]'''
*'''[[What_comes_with_the_nokia_n810_and_how_to_replace_anything_broken_or_lost|What comes with the N810 and how to replace anything that's missing or broken]]'''
*'''[[What_comes_with_the_nokia_n800_and_how_to_replace_anything_broken_or_lost|What comes with the N800 and how to replace anything that's missing or broken]]'''
*'''[[How_to_connect_a_wireless_bluetooth_keyboard_to_the_nokia_n800_and_n810|How to connect and use a wireless Bluetooth keyboard with the N800 and N810]]'''
*'''[[How_to_connect_a_wireless_bluetooth_headset_to_the_nokia_n800_and_n810|How to connect and use a wireless Bluetooth headset with the N800 and N810]]'''
*'''[[How_to_crochet_a_lovely_pouch_for_the_nokia_n800_and_n810|How to crochet a lovely pouch for the N800 and N810]]'''

==Using The Tablets For Internet Stuff==

*'''[[How_to_use_the_web_browser_on_the_Nokia_N800_and_N810|Hints and tips on using the web browser on the Nokia N800 and N810]]'''
*'''[[How_to_use_e-mail_on_the_nokia_n800_and_n810|How to use e-mail on the Nokia N800 and N810]]'''
*'''[[How_to_use_skype_on_the_nokia_n800_and_n810|How to use Skype on the Nokia N800 and N810]]'''
*'''[[How to use the web browser on the Nokia N900]]'''

==Using The Tablets For Other Stuff==

*'''[[How_to_find_and_install_applications_on_the_Nokia_N800_and_N810|How to find and install applications and games on the Nokia N800 and N810]]'''

[[Category:Beginners]]
[[Category:N8x0]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo PirateBox</title>
    <id>4753</id>
    <revision>
      <id>42194</id>
      <timestamp>2011-02-27T22:51:38Z</timestamp>
      <contributor>
        <username>rolfok</username>
        <id>1657</id>
      </contributor>
      <comment>/* Start access point */</comment>
      <text xml:space="preserve">This manual explains how to turn your [[Nokia N810|N810]] or [[Nokia N900|N900]] Maemo device into a PirateBox.
[[Image:Screenshot_lola_rennt.png|350px|thumb|right| n810 connected to n900 piratebox]]
In case you don't know what is piratebox go to [http://wiki.daviddarts.com/PirateBox David Darts page] or [http://www.thepiratebox.net/ here]. Also, there are script called [https://github.com/cr/mkPirateBox mkPirateBox] for hardware router devices.
I also found [http://talk.maemo.org/member.php?u=51085 Plissken]'s [http://forum.daviddarts.com/read.php?2,57 implementation] for n900, however it requires custom kernel. This solution is much simpler and works with maemo default kernels. It does not support file uploading, and thus is not a &quot;canonical&quot; piratebox. However, it allows to create your own web page with links, and distribute them everywhere you go.

==Install web server==

Basically what we need is a web server and wireless-tools:

 apt-get install lighttpd wireless-tools

I also edited the server's config file:

 vi /etc/lighttpd.conf

and changed document root directory to &lt;code&gt;/media/mmc1/www&lt;/code&gt;

 server.document-root = &quot;/media/mmc1/www/&quot;

put your website data there and start http server if it's not started:

 /etc/init.d/lighttpd restart

==Start access point==

So, dnsmasq is available in Maemo out of the box. It is a DNs and DHCP server. [[root access|As root]], start the following script:

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/bash
set -x
IFACE=wlan0
ESSID=welcome_to_norayrs_mobile_server #set this yourself
MYTEMPHOSTNAME=maemo
ADDR=23.23.23.23
NETMASK=255.255.255.0
ADDR_MIN=23.23.23.0
ADDR_MAX=23.23.23.255
INT=1

ifconfig $IFACE down
sleep $INT 
ifconfig $IFACE up 
sleep $INT
iwconfig $IFACE mode ad-hoc
sleep $INT
iwconfig $IFACE essid $ESSID
sleep $INT
ifconfig $IFACE $ADDR netmask $NETMASK up
sleep $INT

/usr/sbin/dnsmasq -i $IFACE -a $ADDR -I lo -z -d \
                  -x /var/run/dnsmasq.$IFACE.pid \
                  --dhcp-range=$ADDR_MIN,$ADDR_MAX,12h \
		  --address=/#/$ADDR \
		  --no-resolv
&lt;/source&gt;
Here &lt;pre&gt;--address=/#/$ADDR&lt;/pre&gt; option is used in order to forward all the requests (i. e. to google or facebook) to the local web server.

This is it, now anybody can connect to your access point, type any address in the browser's address bar, and see your personal PirateBox on your N900 or N810 running under maemo

''I have written some comments and additions here: http://wiki.maemo.org/User:Rolfok#PirateBox''

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Qt Extra Libraries</title>
    <id>2815</id>
    <revision>
      <id>42342</id>
      <timestamp>2011-03-04T14:05:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{ambox}}, add to out of date category</comment>
      <text xml:space="preserve">{{ambox|text=Qt 4.6 for Fremantle, included in [[Maemo 5/PR1.2|PR1.2]], includes the same functionality without the need for additional libraries. The extra libraries described below are '''obsolete'''.}}

Maemo Qt Extra Libraries are extensions to the community supported Qt (version 4.5) available for [[Open development/Maemo roadmap/Fremantle|Maemo5 aka Fremantle]]. The libraries provide easier access to Fremantle specific functionality for Maemo Qt application developers. The libraries functionality include for example screen orientation changing and displaying [[Hildon]] notifications.

== Installing Qt Extra Libs ==

The libraries are currently available from [[extras-devel]]. Libraries can be installed using apt-get. Note that on the device you have to have [[root access|root shell]] enabled.

== Installation to Scratchbox ==

Install libraries and development headers by running
 fakeroot apt-get install qhildon-notifications qhildon-widgetcapabilities qhildon-systemcapabilities qmaemo-ext-libs-dev

== Installation to N900 ==

To install the libraries you have to have root shell enabled in the device. Access root shell and run

 apt-get install qhildon-notifications qhildon-systemcapabilities qhildon-widgetcapabilities

Metapackages for installing all the libraries with single install will be available soon.

== Minimal API documentation ==

''Please note that all the classes are inside Maemo namespace.''

'''QHildon-WidgetCapabilities'''
 '''QOrientationCapability'''
 
 QOrientationCapability(QWidget* parent, bool automaticOrientationUpdate = false)
 ''set application window as the parent. Usually derived from QMainWindow''
 ''set the second parameter to true, if you want the orientation change''
 ''when you physically turn the device. Otherwise you can leave out the''
 ''second parameter.'' 
 
 void setOrientation(QOrientation orientation);
 ''Set screen orientation to QOrientation''
 ''Use value Maemo::Landscape or Maemo::Portrait''
 
 void setListeningForOrientationChanges(bool enabled)
 ''Set automatic orientation changing on/off''
 
 void orientationChanged(QOrientation orientation) 
 ''This signal is emitted when orientation changes.''

'''QHildon-Notifications'''
 '''QOrientationCapability'''
 
 QNotifications(QObject *parent = 0)
 ''Constructor''
 
 void showBanner(const QString &amp;text)
 ''Shows Hildon banner with text''
 
 void showSystemNote(const QString &amp;text)
 ''Shows system note with text.''


'''QHildon-SystemCapabilities'''
 '''QOrientationInfo'''
 
 static QOrientationInfo *instance()
 ''Get pointer to the QOrientation object''
 ''Usage: QOrientationInfo::instance()''
 
 void startListening()
 void stopListening()
 ''Start/Stop listening to device orientation''
 
 void orientationChanged(qreal pitch, qreal roll)
 ''Connect to this signal to get the devices pitch and roll''

== Example application ==

Not yet available.

=== Sources ===

The libaries are released under GNU LGPL and the source code is available from gitorious.org [http://gitorious.org/qt-maemo/qmaemo-ext-libs]

 git clone git://gitorious.org/qt-maemo/qmaemo-ext-libs.git

[[Category:Development]]
[[Category:Qt]]
[[Category:Out of date]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Reconstructed</title>
    <id>1320</id>
    <revision>
      <id>42343</id>
      <timestamp>2011-03-04T14:10:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use ambox</comment>
      <text xml:space="preserve">{{ambox|text=[[Maemo Reconstructed]] was a proposal that eventually led to the '''Mer''' project. You can find out more about Mer on its Wiki page: [[Mer]], where you can also download flashable images and get involved in the project.}}

Our goal is to bring together Nokia and community developers who have an interest in the Maemo platform and reach a vision of the future Maemo system architecture that's satisfying to both Nokia and the community.

These are the low level ''technical'' system goals (use of booting process, busybox/coreutils, kernel features etc.), and not high level stuff like &quot;Ogg support&quot; or &quot;open source everything&quot;. The process is called Maemo &quot;Reconstructed&quot; to indicate we can remix parts from and disassemble the current Maemo platform and augment it until we get a vision that would be fitting as the future of the Maemo platform.

If you have anything to contribute that is constructive criticism, or alternate proposals for parts of the proposal, please add it to the [[Talk:Maemo Reconstructed|talk page]]. Again, this is not the place for discussion on high-level topics like A2DP support and finger-friendliness. These are low-level platform issues. If you want to shoot down part of the proposal, document your findings on why it is not possible or should not be done and discuss it on the talk page.

This proposal was initially written by [[User:Stskeeps|Stskeeps]] (Carsten V. Munk), but is intended to be a unified vision that Nokia and the community will agree upon.

This discussion was sparked by:
* [[Mainstream Linux Alignment]]
* [http://qgil.jaiku.com/presence/47635104 Jaiku | The Deblet Project]
* [http://lists.maemo.org/pipermail/maemo-developers/2008-October/035409.html Maemo &amp; Linux mainstream again]

Thanks to Ryan Abel for proofreading and to other #maemo members for comments.

A small bunch of individuals are working on a proof of concept of this platform, can be followed on http://jaiku.com/channel/reconstructedPOC and on irc.freenode.net #maemo.

== The Maemo &quot;Reconstructed&quot; platform ==

The purposes of Maemo &quot;Reconstructed&quot; are to make Maemo a general platform for tablet devices (including Nokia devices), to make it more developer-friendly, and to bring it into alignment with standard Linux distributions. It is also within the philosophy that the platform should be &quot;hackable&quot;, a main selling point with open-source friendly hardware.

We should stop seeing the tablets as strictly under-powered embedded systems, and see them for what they really are—powerful, power-efficient, economical handheld computers. Not simply hopped-up electronic calendars, but real computers that are capable of almost as much computing as a laptop.

For distribution, the methods, categories, and distributions outlined in the [https://stage.maemo.org/svn/maemo/projects/haf/doc/mvo/system-model-2.txt Maemo System Model - Part II] could come to good use in Maemo &quot;R&quot;. Maybe a part about Maemo vs Maemo + Nokia closed source components and seperation in archives?

There should exist scripts and documented methods for creating a Maemo &quot;R&quot; image that can be adapted to any setup or device. It should be easy to build your own jffs2 image.

Development of the Maemo &quot;R&quot; platform (non-device-specific and non-vendor-specfic differentiation) should be done in the open, with public SCM, bugtrackers and [[Mer/Blueprints | blueprints]]. This way, developers can adjust their applications to later 'stable' releases and know what is coming regarding the Maemo API.

One of the goals of the Maemo &quot;R&quot; platform is that it should be easy to port an existing desktop application by hildonizing it and adjusting to the form factor of a tablet, without having to deal with platform particularities like what features the busybox version of a tool uses or other factors. A secondary goal is to have a platform that is flexible enough to encourage experimentation and development for tablets.

== Kernel ==

For the Maemo &quot;R&quot; platform specific kernels do not matter, but it may be relevant to discuss certain features that would be nice to have for the platform to work correctly.

== Boot process ==

The basic boot process of a Maemo &quot;R&quot; platform consists of loading a kernel from a flash area, or from a file on a partition either on flash, MMC or USB, which then mounts the chosen root partition. This could be done with uBoot for instance (as seen on Beagle Boards), but the bootloader choice is up to the vendor, with the stipulation that it should support some of the following abilities:

In the boot process of the Maemo &quot;R&quot; platform, there should be a way to use alternate boot configurations. This menu of alternate boot configurations should be possible to enter through a key combination while turning on the device (as with the current bootmenu and holding down the menu key). The primary use for this would be to get the device into a rescue menu for recovering the rootfs after a reboot-loop or other crash.

The behaviour of the boot process should be modelled on grub's menu.lst, as to allow different boot configurations. Possible ways to deal with this can be alike with a /etc/bootmenu.d like setting which updates the boot configuration with refresh_bootmenu.d (inspiration from grub menu.lst, http://internettablettalk.com/forums/showthread.php?t=23051).

Cloning to and booting from a flash card is a popular hack, as it offers significantly more storage space and some performance improvements. A bundled boot menu system will streamline the setup of multi-boot systems, and reduce the impact of SSU on these setups. The boot menu should be unintrusive and invisible to the &quot;normal&quot; user, except when activated with the boot menu key combination (but may be activated to show the menu always at boot in a control panel).

There should exist a rescue partition in standard Maemo &quot;R&quot; image, possibly like http://www.youtube.com/watch?v=h24f2YjzWBE (or in text form). This can both activate certain services from the rescue partition or set boot settings such as framebuffer console or other settings for the Maemo system (think F8-while-boot in Windows.)

Many users often run into the reboot loops. A rescue partition will help users recover from these loops by offering a remote shell, dumping the user's files from /home/user to a connected PC, and allowing for the creation and restoration  of backups on a flash card or a connected PC. These abilities should be modelled with a &quot;plugin&quot; structure, to encourage innovation in this area.

Busybox+uclibc should be used to ensure minimal rescue partition size. Toolkit for the right combination should be as easy to get as Maemo SDK. Busybox shouldn't be stuck at 1.0 like it is in initfs right now.

The rescue partition should be possible to update without having to reflash, and may employ a package system, to encourage innovation in this area (referencing to the case of initfs getting reflashed completely, removing boot menus and other initfs modifications, in Diablo).

== Base system ==

Maemo needs to be brought into alignment with &quot;major&quot; distributions like Ubuntu and Debian, and the base system is a good place to begin. Maemo is its own distribution, targeted toward embedded systems, but on the other hand Maemo runs on systems that are as powerful as the computers these distributions were initially developed on, and many of the typical embedded tricks may simply not be needed. It is helpful seeing Maemo targeted at power-saving mobile devices where it's fine to be able to run a traditional &quot;desktop&quot; base system.

{{quotation|Nokia should embrace the Debian heritage of Maemo fully and put processes and practices into place that make Maemo a Debian derivative like Ubuntu, only better.|Marius Volmer}}

This proposal tries to see Maemo as a deriative of Ubuntu. The reasons for this direction is:

* [http://mojo.handhelds.org Handhelds Mojo], which is sponsored by Nokia.
* Debian, for now, targets armv4t, and Mojo has already done the hard work to target typical Maemo device processors.
* Taking Ubuntu over Debian (for now), gives us upstart along (part of [[Task:Maemo roadmap/Fremantle]]), which has not been adapted properly (except in Debian experimental) in Debian just yet.
* A remark however should be that Debian and Ubuntu is not very different, at base system level. '''The choice of Ubuntu here has been done to illustrate a base Linux system optimized for the Internet Tablets, with some of the technologies such as Upstart pre-existing in the distribution'''. armv5 was chosen for no particular reason except that the Hasty armv6 build has not yet been completed.

Maemo base system includes:

* 'minbase' Mojo handhelds Ubuntu 'Hasty' (based on Hardy, or later)
** '''Motivation''': This is a proof of concept. How functional and how well performing is a standard minimal ubuntu base image on a N800? Our restrictions is about 250mb flash availiable to us, with ideally space to spare. 
** '''Details''':
*** # cp /usr/share/debootstrap/scripts/hardy /usr/share/debootstrap/scripts/hasty
*** # debootstrap --arch=arm --variant=minbase hasty /target http://repository.handhelds.org/hasty-armv5el-vfp/
*** # chroot /target mount -t proc proc /proc
*** # chroot /target mount -t devpts devpts /dev/pts
*** # apt-get install apt-utils udev
*** # cd /dev; /sbin/MAKEDEV fb0 fb1 and such.
*** # apt-get autoclean; apt-get clean
*** add in a couple of boot scripts from and framebuffer console kernel drivers from Deblet, and docpurge-1.6 from Maemo.
*** Now you have a bootable minimal ubuntu image (tested on N800 with bootmenu with linuxrc ability), with full coreutils and bsdutils, etc.
** '''Performance''': From selecting in boot menu to boot, 12 seconds to get to framebuffer console login, with ext3 mount, udev and all.
** '''Size''': uncompressed ''89.5mb'' but, mkfs.jffs2 -r /target -o maemo-r.jffs2 -e 128 -l -n , ''37.0mb'' in JFFS2.
** '''Contents''': http://bsd.tspre.org/~stskeeps/minboot.txt + docpurge
** Other examples, http://bsd.tspre.org/~stskeeps/ubuntumin.txt (69m jffs2, may have forgotten docpurge in this one.)
** '''Advantages''': We now have a full ubuntu base system on our tablet. We've got Upstart for for free without any development. We have a base we can easily work with upstream on, as we base on typical packages. The mojo project also gets to have instant value to the Nokia/Maemo development and Nokia gets a return from the research investment in it. 
** '''Discussion''': ''Is busybox really needed on a tablet''? In initfs, sure, but in the actual system? Having sane coreutils and bsdutils (and debconf) -really- helps porting. Now that dash exists, is there a reason for busybox as sh? This avoids any conflicts with coreutils, bsdutils etc if they are going to be used. 
*** Following experiment was done: 
**** These packages dpkg-deb -x'ed into a path: '''findutils'''_4.2.32-1ubuntu2_arm.deb '''gzip'''_1.3.12-3.2_arm.deb '''hostname'''_2.94_arm.deb '''ifupdown'''_0.6.8ubuntu8_arm.deb '''module-init-tools'''_3.3-pre11-4ubuntu5_arm.deb '''net-tools'''_1.60-19ubuntu1_arm.deb '''procps'''_3.2.7-9ubuntu1-mojo0_arm.deb '''sed'''_4.1.5-5_arm.deb '''tar'''_1.19-3_arm.deb '''coreutils'''_6.10-3ubuntu2_arm.deb '''grep'''_2.5.3~dfsg-3_arm.deb '''mount'''_2.13.1-5ubuntu1_arm.deb '''bsdutils'''_2.13.1-5ubuntu1_arm.deb '''dash'''_0.5.4-8ubuntu1_arm.deb '''debianutils'''_2.28.2-0ubuntu1_arm.deb '''vim-tiny'''_7.1-138+1ubuntu3_arm.deb '''mawk'''_1.3.3-11ubuntu2_arm.deb '''mktemp'''_1.5-5ubuntu2_arm.deb '''sysvutils'''_2.86.ds1-14.1ubuntu45_arm.deb '''iputils-ping'''_20071127-1_arm.deb '''psmisc'''_22.6-1_arm.deb '''time'''_1.7-21build1_arm.deb '''bash'''_3.2-0ubuntu16_arm.deb '''login'''_4.0.18.2-1ubuntu2_arm.deb '''passwd'''_4.0.18.2-1ubuntu2_arm.deb 
**** Stripping man pages, locales and info pages. 7.6mb uncompressed ''3.8mb'' jffs2 flash. And with busybox getting same treatment, 300k flash.
*** Is ''3.5mb'' flash so much to sacrifice for making porting for Maemo a matter of hildonization and platform-centric things, instead of hunting debconf, busybox incompatibilities and such for weird libraries you never heard of?
*** Are there any direct and noticable differences in performance that justifies the use of busybox, and do they justify the lessened ability of being able to port to Maemo without hassle?
*** Result: It should be possible to have busybox in Maemo images instead of coreutils and others, but the busybox package should then be able to co-exist with coreutils. If a package needs coreutils, it should depend on coreutils which will then take over key functions. Maybe a system of depending on coreutils | busybox-coreutils, could do the trick, for the packages that work fine with busybox coreutils.
** '''Problems''': For some reason the mojo people decided to divert from Debian arch notation and call their ARM EL distribution arch type 'arm', not 'armel', which is in wide use with Maemo.
* '''Upstart'''
** Part of Fremantle roadmap, and with the integration of alarmd functionality (Events generated at timed intervals or scheduled times), Upstart could replace alarmd.
* '''DSME (Device State Management)'''
** Basic device/Mobile service DSME should be open sourced, but may load modules of hardware-specific closed source modules (CAL access, watchdog kicker, etc), and DSME protocol should be documented and the modules associated with it (CAL access seems to be a touchy subject though).
** DSME is a good part of a mobile platform (process watchdog, etc), but needs documentation of the communication protocol (even though most of it has been reverse engineered) for community OS developers to work properly with it. Can it really be true things like Advanced Backlight (http://adv-backlight.garage.maemo.org/) has to use undocumented DSME protocol to do what it should?
* '''OHM (Open Hardware Manager)'''
** Part of [[Task:Maemo roadmap/Fremantle]]. http://ohm.freedesktop.org/wiki/UseCases OHM may apply device-specific plugins but these are not included in the Maemo &quot;R&quot; base. Developers should strive towards not using sysvinit init scripts, but go for upstart job descriptions instead, which can be controlled by OHM (disable RSS feed reader download attempts while obviously offline, for instance). 
* '''GUPnP'''
** Part of [[Task:Maemo roadmap/Fremantle]]
* '''Meta Tracker (trackerd)'''
** Part of [[Task:Maemo roadmap/Fremantle]]
* '''D-Bus'''
** Part of the Maemo platform as of now, - is ideal for embedded systems as it works with signals and events.
* '''HAL'''
** Part of the Maemo platform as of now, needed for OHM. HAL should be patched towards mobile systems but should not contain device specific patches. These should be published as HAL addons instead (and may be closed source, example could be hald-addon-bme as the principle done right, and hald-addon-omap-gpio not), as to keep as close to HAL upstream as possible.
* '''Generic API for connectivity''' (libconic comes to mind), using D-Bus. It should not be needed to include a ICD as some vendors may vary on that (Nokia), but libconic should be generic and usable in both Nokia ICD and NetworkManager based setups. Ideally a NM-based ICD or a stub ICD should be provided along with platform, but should be replaceable. The ICD would traditionally depend on software like iptables, udhcpc, dnsmasq etc.
** Many Maemo applications depend on libconic and this could be a showstopper for portability.
* '''Udev'''
** Part of Maemo platform already, and useful for desktop and embedded systems.
* '''Ke-recv'''
** Some daemon representing this (Kernel event handling + scripts, maybe OHM?)
* '''GConf'''
** Central repository for system-wide configuration.

Other things like supporting libraries such as OpenSSL and such are not directly mentioned but obviously needed as dependancies.

== Hardware Support ==

A Maemo &quot;R&quot; image may contain closed-source hardware-specific firmware, drivers (cx3110x), daemons (BME, hw watchdog kicker). This will probably be common on commercial platforms since there are trade secrets to protect and NDAs to consider. Vendors for the Maemo platform should strive towards allowing redistribution of the binary blobs (restricting to use only on the hardware they are intended for should be acceptable), to encourage remixing and experimentation with the system and the device.

In case of kernel drivers these should ideally be open source, but this may not always be possible. Nokia, for instance is going in the right direction with open source wifi driver. In case of newer kernels for &quot;old&quot; devices, vendors should aim for giving a community developer access to kernel module source for recompiling (with possible NDA) for later versions or provide build services (insert kernel tar.gz, get out .ko).

In case of closed source daemons (BME, DSME modules) the protocols should ideally be documented (it should be possible to get remaining battery time and bars to show and such from BME, maybe even current power usage of the device). This will satisfy most OSS OS developers, but the problem about closed source daemons is that there should optimally be updates of the software, even for old devices. Backwards compatible daemons could be an idea, maybe automated build services again/community/head contributors access to recompile, so Nokia wouldn't have to invest time to support &quot;old&quot; devices.

In case of generic devices that will exist on multiple platforms (battery for instance), it is encouraged to work on standardization of the interface for the daemons (HAL battery status comes to mind).

== User Experience Base ==

* '''Xorg'''
** Part of Fremantle roadmap. 
** Device-specific Xorg drivers (omap for N8x0's, other devices has other drivers, etc.). It should not be a requirement which Xorg driver is in use, but the capabilities of this. 
** In the case of OMAP framebuffers, work has been done at http://gitweb.pingu.fi/?p=xf86-video-omapfb.git;a=tree for a Xorg driver for both BeagleBoards and N8x0, packaged for Debian at http://nchipin.kos.to/deblet/
* '''GStreamer'''
** Part of Maemo platform as of now, ideal for codecs, include vendor-specific proprietary ones.
* '''PulseAudio'''
** Part of [[Task:Maemo roadmap/Fremantle]]. Optional part of platform? What does Maemo really target of device types?
* '''BlueZ'''
** Part of Maemo platform as of now. Optional part of platform?
* '''Hildon desktop &amp; Matchbox WM'''
** A basic part of the Maemo platform as of now. However, the initialization of Hildon should be done through an alternatives system like in Debian (update-alternatives --config) x-session-manager, so having Hildon on top of a Maemo system is one use interface. The Maemo system should not depend on it being Hildon running on the device.
* '''GTK/GDK/etc.'''
** The base graphical framework of Maemo. This GTK version should be Maemo 'GTK', but the following things should hold true for the Maemo GTK.
*** Maemo GTK is designed for power-saving low-freq devices. It is designed for touchscreens and with memory conservation in mind
*** It should not alter its behaviour in such a way that a certain window manager or desktop environment is needed to run applications using this toolkit. If this change of behaviour is needed, the toolkit should detect the WM/DE and enable the behaviour if it's Hildon+Matchbox. 
*** It should not change upstream API (but may add or cause breakage that would make normal GTK applications not work with it.
* '''GTKMM'''
** There should be possibility to use two versions of GTKMM, one with vfuncs removed for embedded usage and one with them enabled for running GTK applications that require these to make porting easier (or simply enabling vfuncs in GTKMM for Maemo.). The replacement GTKMM may be a package that is downloadable which replaces the non-vfunc GTKMM.
* '''Hildon application manager'''
** A mobile system must have ability to add/remove applications..
* '''Hildon control panel'''
** The Maemo &quot;R&quot; platform can be adjusted from in here, but the configuration settings used in various applets should be fully documented on how to do programmatically.
* '''Hildon input method'''
** Input method for touchscreens.
* '''Basic Hildon theme'''
** Plankton or the likes to start building Maemo systems that look &quot;good&quot; from the start.
* '''Other open source components currently in Maemo.'''
** There are plenty other open source components currently in Maemo, which is not listed here, but considered part of the platform.

The goal of this user experience base is to have a solid open-source base to build Maemo platform devices, both for Nokia and for community to remix, or use on other devices. This user experience base should be usable, but should be augmented with vendor-specific differentiations (ICD, Applications, Browser support, drivers, hardware support, home applets, etc.), but documenting the interfaces developed for these.

Developing for the Maemo platform, and not for the actual devices, should be encouraged except in cases where the applications require certain non-standardized (yet) interfaces. This will be useful for hardware vendors as well as development and change in hardware contents will be easier to achieve, with the applications still working on new hardware as they target the Maemo platform, not the device.

== SDK (developer kit for the platform) ==

The SDK is a basic part of developing for Maemo.

Maemo &quot;R&quot; SDK should be easy to install. It should be a matter of apt-get'ing a package or installing a VMware appliance for non-Linux users. It's alright for device-specific dev packages &amp; emulator images to require a license to download, but the base Maemo &quot;R&quot; SDK should be easily installable and allow you to start developing for the base Maemo &quot;R&quot; platform immediately. You shouldn't have to go through hoops to get Scratchbox + Rootstrap + Generic Maemo device emulator image and such, - this attracts developers.

A prime example is Maemo SDK+, http://maemo-sdk.garage.maemo.org/ 

Maemo &quot;R&quot; SDK should not only focus on native application development, but also embrace developer environments for non-native languages such as Python, Java, etc, to show the versatile nature of the Maemo &quot;R&quot; platform. Maemo SDK+ would be able to contain these and could also allow for Eclipse-based development environments etc.

Maemo &quot;R&quot; SDK should not be the only way to develop for the tablet - it should be just as possible to get the needed compilers and dev packages and be able to compile on tablet - which is easy as the rootstrap is really the Maemo &quot;R&quot; OS with build-essentials packages on top.

Maemo &quot;R&quot; SDK, should consist of four parts:

=== Scratchbox 2 (cross-compilation environment) ===

Build programs for another architecture/target than on the one compiling.

Packages for Maemo should not expect Scratchbox to be where they're compiled (There's been seen examples of this amongst Nokia code.). This increases portability of Maemo platform. A package that builds in Scratchbox should also build on a tablet.

Scratchbox 2 is obviously the way to go, as it provides a more seamless way to deal with cross-compilation.

Cross-compiliation certainly speeds up compilation and allows a proper developer environment for developing for Maemo &quot;R&quot;. 

=== Maemo &quot;R&quot; rootstraps ===

The SDK should contain at least one rootstrap - the Maemo &quot;R&quot; base OS, targeted towards both cross-compilation towards the reference platform, for instance targeted towards ARMv5EL and the QEMU versatile-pb emulator.

Developers should be encouraged to develop for this platform API - the reference Maemo &quot;R&quot; platform API. Though, there will be device-specific features that vendors would like to make developers able to develop for. The vendors would then either provide hardware support packages to include on top of the base OS or provide additional rootstraps which represent the device and device-specific APIs shipped on the actual tablets with build-essentials and such on top. These rootstraps or packages would probably be provided under some kind of licensing scheme.

A rootstrap may be either device-specific (processor types/etc) or have device-specific packages in it. Vendors providing device-specific interfaces for the platform should strive towards standardizing similar types of hardware interfaces (HAL battery templates come to mind, GPS or Bluetooth interfacing), but the vendor may provide subtypes of the APIs - extended APIs for component-specific things.

Maemo has great possibility to become a general platform for tablet like devices. The possibility of additional device platforms which also embrace the Maemo &quot;R&quot; base direction will cause every Maemo-using device to have additional applications as well when they appear for other devices.

=== QEMU, able to emulate target device(s) emulated ===

Vendors should strive for contributing hardware emulation for QEMU for their devices or provide stubs inside the hardware support packages but should act as close to the actual device as possible.

There should exist a reference generic Maemo &quot;R&quot; platform to develop for, with associated emulator - in the proof of concept this will be the n800 machine and arm1136-r2 CPU emulated in qemu.

Vendors should provide emulator images (in the form of flash images, disk images) associated to the device rootstraps to make users able to test on their platforms. 

N8x0 emulation is already seen (http://blog.haerwu.biz/2008/04/11/nokia-n800-emulation/) and in qemu SVN HEAD. Being able to boot their development environments will allow the user to instantly test how their applications work on the actual device or an emulated version.

Maemo SDK+ already provides the &quot;maemo-runtime&quot; scripts which could be adapted to include features like this.

=== Deployment and debugging support scripts ===

It's much better when you can test on an emulated device instead of dealing with a rootstrap trying to act like it's a device. Easy development ability is needed - it's a question that's often seen when people start developing for Maemo (how do we transfer to the device? Try see Visual Studio's deployment ways)

Work could be done on easy deployment of developed packages (# sb-copy-to-tablet -i usb, -i emu, etc) or running in similar manner to sbrsh with NFS and the likes.

Again, Maemo SDK+ seems to provide much of this and is definately the way to go regarding SDK plugins (GUIs, Anjuta as an example). Through a simple interface it could be extended to provide deploying and remote debugging features. GDB supports remote debugging for instance.

[[Category:Mer]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2008</title>
    <id>141</id>
    <revision>
      <id>46014</id>
      <timestamp>2011-12-15T04:00:34Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Undo revision 46007 by [[Special:Contributions/114.79.28.10|114.79.28.10]] ([[User talk:114.79.28.10|Talk]])</comment>
      <text xml:space="preserve">[[image:C-logo_claim_blue.png‎|right]]
[[image:MaemoSummit091908.jpg‎ ]]

'''Join the first Maemo Summit'''


'''Berlin, September 19-20''' @ [http://c-base.org/ c-base] - right after the OSiM World http://www.osimworld.com


'''[https://maemo.org/news/events/registrations/register/2f91448248e711dd8bcbb7b26102ad49ad49.html Free registration]''' - '''[http://maemo.org/news/events/maemo_summit-001/ Who is attending]'''

In Maemo Summit 2008 you will learn more about Nokia's Linux platform and its evolution. Meet the core team, 3rd party professional developers and key community contributors. Showcase and discuss your work. Learn, share, hack. And have fun!

The [http://www.osimworld.com Open Source in Mobile World] conference is an interesting venue to know more about the business and technical context of the Maemo platform. Nokia is active in this event and invites the Maemo community to join it. After the conference we propose the first Maemo Summit calling to all contributors.

== Schedule ==

=== &lt;center&gt;Friday 19 ([http://internettabletblog.de/maemo-summit-friday.ics .ics])&lt;/center&gt; ===
{|  width=&quot;100%&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; bordercolor=&quot;#000000&quot;
|+
|- 
|  width=&quot;112&quot; | '''9:00'''
|  colspan=&quot;3&quot; | '''Doors open'''
|- 
| '''9:30'''
|  colspan=&quot;3&quot; | '''Welcome&amp;#33;''', by [http://maemo.org/profile/view/jaaksi/ Ari Jaaksi] (VP - Maemo Software @ Nokia)
|- 
| '''10:00'''
|  colspan=&quot;3&quot; | '''The outside view''', by [http://dailythemes.wordpress.com/ Jay Sullivan] ([http://www.mozilla.com/ Mozilla Corp.]) 
|- 
| '''10:30'''
|  colspan=&quot;3&quot; |  '''Maemo UI Vision''', by Harri Kiljander (Director, User Experience - Maemo Software @ Nokia)
|- 
| '''11:00'''
|  colspan=&quot;3&quot; | '''What Maemo users want''', by [http://tabletblog.com/2008/05/3rd-anniversary-community-spotlight.html Reggie Suplido] ([http://www.internettablettalk.com/ Internet Tablet Talk])
|-
| '''11:30'''
|  colspan=&quot;3&quot; | '''Summary: What can we get out of Fremantle''' ([http://www.slideshare.net/silpol/maemo-community-fremantle-support-september-2008-presentation slides]) ([http://www.vimeo.com/1853196?pg=embed&amp;sec=1853196 video]), by [http://maemo.org/profile/view/peterschneider.html Peter Schneider] (Head of Product Marketing, Maemo Software @ Nokia) 
|- 
| '''12:00'''
|  colspan=&quot;3&quot; | '''Break.'''
|- 
| '''12:15'''
|  colspan=&quot;3&quot; | &lt;p&gt;'''Lightning sessions''', 5 min each. No more, no less.
# '''Maemo in police cars''': presentation of an embedded project based on N800's [[User:smancke|Sebastian Mancke]]
# '''Developing Multilingual Multimodal Applications in Maemo'''. A Mobile Medical Speech Translator &amp; A Mobile Meeting Calendar by [[User:ntsourak|Nikos Tsourakis]]
# '''[http://liquid.googlepages.com/lcuk liqbase]''', by Gary Birkett ([http://maemo.org/profile/view/lcuk.html lcuk])
# '''Reality or Vision?''' - The Nokia tablets for mobile and desktop use. LiveDemo/Presentation with [http://xsisusb.garage.maemo.org/ USB2VGA Adapter], bluetooth [http://anyremote.sourceforge.net/ anyremote] control by [http://www.linuxvision.de/ Uwe Koch]. ([http://maemo.org/profile/view/asys3/ asys3]) [http://www.linuxvision.de/nokia/maemoSummit2008-RealityOrVision.pdf Presentation slides] .
# '''Screencasting''':  x11vnc and pyvnc2swf bring visual documentation to users by [[User:brontide|Eric Warnke]]
# '''[[Maemo User Interface Issues Overview (Presentation)|Maemo User Interface Issues Overview]]''', by [[User:Timsamoff |Tim Samoff]].
# '''[http://esbox.garage.maemo.org/ ESBox] and [http://pluthon.garage.maemo.org/ Pluthon] Eclipse plugins''': how to use Eclipse to develop Maemo applications, by [[User:andy80|Andrea Grandi]].
# '''[http://elisator.garage.maemo.org Elisator] project and how [http://easy.garage.maemo.org Easy] library has helped and how could be improved'''. Elisator has been developed for cow's health analisys based in [http://en.wikipedia.org/wiki/ELISA ELISA assays] in poor Africa's regions and it has been funded by [http://www.fao.org FAO]. [http://www.slideshare.net/jsmanrique/elisator-slides-for-maemo-summit-2008-presentation/ Slides] (by [[user:jsmanrique|jsmanrique]])
# '''Teaser: maemo development using [http://illumination.sf.net Illumination]''' by [[User:framstag|Tim Teulings]] ([http://www.anderenen.de/anderenende/Illumination_Maemo_Submit_2008.pdf Presentation slides]).
# '''[http://dev.openbossa.org/trac/qedje/ QEdje]''', by [[user:etrunko|Eduardo Lima (Etrunko)]].
# '''Maemo Bug Jar: Origins, Results, and Future Plans''', by Stephen Gadsby ([http://maemo.org/profile/view/sjgadsby/ sjgadsby]).
# '''Unit/Integration Test Framework for Maemo''' by [[User:aheimola|Antti Heimola]].
# '''[http://www.internettablettalk.com/forums/showthread.php?t=21629 Debian in a chroot on the tablet]''', demo by Alan Bruce (qole).
# '''[http://codespeak.net/pypy PyPy] Python for Maemo''' (by [[user:hpk|Holger Krekel]] and/or [[user:fijal|Maciej Fijalkowski]]).
|- 
| '''14:00'''
|  colspan=&quot;3&quot; | '''Lunch&amp;#33;''' [[image:MaemoSummit_catering.jpg‎ ]]
|- 
|  rowspan=&quot;3&quot; | '''15:00'''
|  colspan=&quot;3&quot; | '''Meet the Maemo SW developers''' (a representation of the main platform and OSS teams developing Maemo @ Nokia + special guests)
|- 
|  width=&quot;33%&quot; | '''STREAM 1: ROOM UPSTAIRS'''
|  width=&quot;33%&quot; | '''STREAM 2: ROOM DOWNSTAIRS'''
|  width=&quot;33%&quot; | '''STREAM 3: C-BASE'''
|- 
|  width=&quot;33%&quot; | '''Desktop''' by [http://maemo.org/profile/view/rodarvus/ Rodrigo Novo] (Nokia)
|  width=&quot;33%&quot; | '''Connectivity''' by [http://maemo.org/profile/view/kvalo.html Kalle Valo] and [http://maemo.org/profile/view/pfl.html Patrik Flykt] ([http://www.slideshare.net/pflykt/connectivity-maemo-summit-2008-presentation Connectivity slides] [http://stlc45xx.garage.maemo.org/stlc45xx-maemo-summit-2008.pdf WLAN slides])
|  width=&quot;33%&quot; | '''Development Platform''' by [http://maemo.org/profile/view/bijjal/ Soumya Bijjal], [http://maemo.org/profile/view/kaltsi/ Juha Kallioinen] (tbc), [http://maemo.org/profile/view/marcell/ Marcell Lengyel], [http://maemo.org/profile/view/qgil.html Quim Gil]
|- 
|  '''16:00''' 
|  width=&quot;33%&quot; | '''Browser''' by [http://maemo.org/profile/view/andreypetrov.html Andrey Petrov], [http://maemo.org/profile/view/timeless.html timeless]
|  width=&quot;33%&quot; | '''Real-Time Communication''' by [http://maemo.org/profile/view/kh_naba/ Naba Kumar], [http://maemo.org/profile/view/mzabaluev/ Mikhail Zabaluev]
|  width=&quot;33%&quot; | '''Technology &amp; Architecture''' by [http://maemo.org/profile/view/jtukkine/ Juha Tukkinen], [http://maemo.org/profile/view/bittinen/ Mika Leppinen]
|- 
|  '''17:00''' 
|  width=&quot;33%&quot; | '''Core System''' by Kai Svahn (tbc), [http://maemo.org/profile/view/nakkebar/ Eero Tamminen], [http://maemo.org/profile/view/igor_stoppa.html Igor Stoppa], [http://maemo.org/profile/view/poussa.html Sakari Poussa]
|  width=&quot;33%&quot; | '''Multimedia''' by [http://maemo.org/profile/view/ensonic.html Stefan Kost], [http://maemo.org/profile/view/luc/ Luc Pionchon], ([http://www.slideshare.net/ensonic/maemo-multimedia-framework-presentation Slides])
|  width=&quot;33%&quot; | '''[[Desktop_Search_Hackfest|Desktop Search Hackfest]]''' link, by [http://maemo.org/profile/view/konttori/ Urho Konttori], [http://maemo.org/profile/view/ifrade/ Iván Frade] + Jamie McCracken (Tracker)
|- 
| '''18:00'''
| colspan=&quot;3&quot; | '''c-base reconstruction project³ - be future compatible- reboot universe now'''
*learn more about the crashed spacestation c-base ([http://maemosummit.ext.c-base.org/index.php/Videos Video])
|-
| '''18:30'''
|  colspan=&quot;3&quot; | '''Chill out.'''
* Dinner, music, drinks tbd.
* Dress code recommended: t-shirt with the maemo.org logo of [[Maemo.org_logo_contest_submissions|your choice]]. DISCLAIMER: can't be the winner logo. ;)
: Now that the new logo has been chosen, what exactly does this mean? --[[User:timsamoff|timsamoff]] 12:24, 5 August 2008 (UTC)
:: Wear a t-shirt with a maemo.org logo that you like from the competition. The official one isn't allowed ;) --[[User:xfade|xfade]] 14:47, 5 August 2008 (UTC)
::: what if you liked the official one? --[[User:dneary|Dave Neary]] 22:14, 6 August 2008 (UTC)
|}

{|  width=&quot;100%&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; bordercolor=&quot;#000000&quot;
|+

===Saturday 20===

Coordinated by [[User:brontide| Eric Warnke]]

|-
|  width=&quot;53&quot; | '''9:00'''
|  colspan=&quot;3&quot; | '''Opening doors''' and wlan.
|-
| '''9:30'''
|  colspan=&quot;3&quot; | '''[http://flors.files.wordpress.com/2008/09/howmaemooss.pdf How Maemo Approaches Open Source]''', by [http://flors.wordpress.com/ Quim Gil] (marketing manager, open source - Maemo Software @ Nokia)
|-
|  '''10:00'''
|  colspan=&quot;3&quot; | '''Introducing the [[Community Council|Maemo Community Council]]''', by [[Community_Council|the members]].
|-
| '''10:30'''
|  colspan=&quot;3&quot; | '''&quot;We are not the Users&quot;: The hate and love behind the custom User experiences on Maemo.''' [[User:handful|Marcelo eduardo]]
|-
|  width=&quot;53&quot; | '''11:00'''
|  colspan=&quot;3&quot; | '''BoF: Future of maemo.org extras''', by Niels (and Ed?) [http://www.slideshare.net/nbreet/maemo-extras-future-presentation Slides]
|-
| '''11:30'''
| colspan=&quot;3&quot; | '''Lightning sessions''', 5 min each. No more, no less.
# '''WorldTV99''': Watching TV on your tablet by [[User:bunanson|bunanson]] and koos
# '''Cloud storage:''' Improve your app by syncing with internet services like Google Docs or Picasaweb by [[User:brontide|Eric Warnke]]
# '''Tablet-encode''': Converting videos on Linux using [http://mediautils.garage.maemo.org/tablet-encode.html tablet-encode], by Andrew Flegg ([http://maemo.org/profile/view/jaffa/ Jaffa])
# '''py2deb''': packaging your app onboard using py2deb and extras autobuilder [[User:khertan|Benoît HERVIER]]
# '''Podcasts on NITs''': [http://maemo.gpodder.org/ gPodder] and [http://thpinfo.com/2008/panucci/ Panucci] by ([http://maemo.org/profile/view/thp.html Thomas Perl])
# '''KDE on maemo''': by Marijn Kruisselbrink
# '''An activist’s wish list''': A location aware software suite to use in reporting, and forensic investigation of, human rights violations by [[User:tonypercy|Tony Percy]]
# '''mCalendar and mContact''': advanced syncing with google services [[User:khertan|Benoît HERVIER]]
|-
|  '''12:15'''
|  colspan=&quot;3&quot; | '''Break'''
|-
|  '''TRACKS'''
|  width=&quot;33%&quot; | '''Community/Discussion'''
|  width=&quot;33%&quot; | '''Development'''
|  width=&quot;33%&quot; | '''Core Platform'''
|-
|  '''12:30''' 
|  width=&quot;33%&quot; | '''Community story – Productivity suite in Nokia IT''', by Miika Kuha
|  width=&quot;33%&quot; | '''Packaging and publishing software??? (no show)''', Changed to: '''Maemo plugin for Anjuta DevStudio''', [http://maemo.org/profile/view/kh_naba/ Naba Kumar]
|  width=&quot;33%&quot; | '''libchamplain''': A Clutter/Gtk+ Map Widget for your application and maybe some Clutter demos :) by [[User:pierlux|Pierre-Luc Beaudoin]]
|- 
|  '''13:00'''
|  width=&quot;33%&quot; | '''[http://dev.openbossa.org/trac/mamona Mamona] &amp;amp; Maemo: 2 way contribution (How to learn and grow up together)''', by Mamona developers from INdT. 
|  width=&quot;33%&quot; | '''Porting Applications and exploiting the maemo platform'''  lead by [[User:anidel|Aniello Del Sorbo]] ([http://www.slideshare.net/anidel/exploiting-maemo-presentation/ Slides])
|  width=&quot;33%&quot; | '''maemo.org extras Package Cleanup Sprint'''
|- 
|  '''13:30'''
|  width=&quot;33%&quot; | '''[[Maemo User Interface Issues (Presentation)|Maemo User Interface Issues]]''',  by [[User:Timsamoff |Tim Samoff]] + chat with Nokia Fremantle UI designers.
|  width=&quot;33%&quot; | '''Using [http://mud-builder.garage.maemo.org/ mud-builder] to build packages''', by [[User:Jaffa|Jaffa]].
|  width=&quot;33%&quot; | '''Maemo in QEMU N8x0 emulation:''' by [[User:hrw|Marcin 'hrw' Juszkiewicz]] ([http://blog.haerwu.biz/2008/09/20/maemo-in-qemu-n8x0-emulation-presentation/ materials to download])
|-
|  '''14:00'''
| colspan=&quot;3&quot;  | '''Lunch&amp;#33;''' [[image:MaemoSummit_catering_day2.jpg‎ ]]
|-
|  '''15:00''' 
|  width=&quot;33%&quot; rowspan=&quot;2&quot; | '''Workshop: Maemo hacking introduction''': coordinated by [[User:kate |Kate Alhola]]
|  width=&quot;33%&quot; | '''Embedded Webapps''' Using webpy framework for on tablet web services by [[user:fpp]]
|  width=&quot;33%&quot; | '''maemo.org website redesign meeting''': ([http://www.slideshare.net/nearyd/maemoorg-presentation-presentation presentation]) A meeting to specify the design requirements for restyling the maemo.org website (reference: [[Task:Improving_maemo.org#maemo.org_homepage_refresh|Homepage Refresh]] &amp; [[Task:Maemo.org_facelift|maemo.org Facelift]]). by [[User:dneary|Dave Neary]]
|-
|  '''15:30'''
|  width=&quot;33%&quot; | '''Introduction To Telepathy:'''  Components and use on the maemo platform. by Marco Barisione from [http://www.collabora.co.uk Collabora]
|  width=&quot;33%&quot; | '''Introduction to DSP programming''' by [[User:lardman|Simon Pickering]]. Presentation [http://people.bath.ac.uk/enpsgp/nokia770/dsp/linux_summit.odp|here], expanded version to replace wiki page to follow.
|-
| '''16:00'''
|  width=&quot;33%&quot; | '''Building a Business on Maemo:''' by [[User:dob|Doug Petkanics]] from [http://frogmetrics.com Frogmetrics]
|  width=&quot;33%&quot; | '''Qt Maemo-Hildon Port &amp; How to Develop Qt Application for the Maemo Platform''', by [[User:kate |Kate Alhola]] &amp; [[User:gnuton |Antonio Aloisio]].
|  width=&quot;33%&quot; | '''BoF: Building a vector data extension to maemo Mapper''' Soliciting feedback and developers for the project. by [[user:gnuite]]
|-
|  '''16:30'''
|  width=&quot;33%&quot; | '''[[User:Andre/Presentations|Bugsquad meeting]]''' Anybody interested in helping managing the Maemo bugs is welcome! Hosted by [[User:Andre|Andre Klapper]] and [[User:Karstenb|Karsten Bräckelmann]]
|  width=&quot;33%&quot; | [[Google Data API for Python (Presentation)|'''Introduction to Google's python based Data API's''']]  by [[User:Brontide|Eric Warnke]]
|  width=&quot;33%&quot; | '''Introduction to WebKit''' Come see WebKit's internals, 2 of its ports (Gtk and Qt). by [[User:pierlux |Pierre-Luc Beaudoin]] from [http://www.collabora.co.uk Collabora]
|-
|  '''17:00'''
|  colspan=&quot;3&quot; | [[2010 Agenda|'''Maemo 2010''']]: Brainstorming session  discussing current status / future desires for the Maemo platform. Where do we want to go in the next 24 months?  What can we learn and share from other mobile platforms?  Bring the whole community together to get input.
|-
| '''18:00'''
|  colspan=&quot;3&quot; | '''End.''' &lt;br&gt;&lt;br&gt;'''Note: Software Freedom Day (20th of September) [http://softwarefreedomday.org/teams/europe/germany/FreieSoftwareBerlin also in Berlin]'''
|-
| '''20:00-24:00'''
|  colspan=&quot;3&quot; | '''Post-Summit Openismus Party''': [http://www.openismus.com Openismus] welcome you to their new office at Kastanienallee 88, with beer and pizza. [http://www.murrayc.com/blog/permalink/2008/09/20/openismus-party-tonight/ Directions]
|}

== Venue ==

The Maemo Summit is held in the headquarter of '''[http://www.c-base.org c-base]''' and the contiguous [http://www.eti-berlin.de/ eti Schauspielschule Berlin]. 

c-base is a non-profit association which has about 300 members. The purpose of this association is to increase knowledge and know-how regarding computer software, hardware and data networks ([http://en.wikipedia.org/wiki/C-base more]). eti Berlin is a school of actors based in a building with several rooms and a total surface available of 1.200m&lt;sup&gt;2&lt;/sup&gt;. The perfect mix, full of creativity!

See [http://share.ovi.com/channel/qgil.public the videos].

c-base is in the very Mitte of Berlin. [http://maps.google.co.uk/maps?ie=UTF-8&amp;oe=utf-8&amp;rls=com.ubuntu:en-GB:unofficial&amp;client=firefox-a&amp;um=1&amp;q=c-base&amp;near=Berlin,+Germany&amp;fb=1&amp;cid=0,0,5828762841994571845&amp;sa=X&amp;oi=local_result&amp;resnum=1&amp;ct=image Map]

== Participants ==
'''[https://maemo.org/news/events/registrations/register/2f91448248e711dd8bcbb7b26102ad49ad49.html REGISTER]'''

It's the first Maemo Summit and it is good to know in advance who plans to attend, to fine tune practicalities and have enough space, connection, drinks, food.

Yes, the entrance is free. Registration is still requested for planning purposes.

== Travel ==
See [[Maemo_Summit_2008/Travel|when people are arriving in and leaving Berlin]].

[[Talk:Maemo_Summit_2008#Travel|Apparently]] there are options as affordable as 20€ including taxes from Stansted! [[Talk:Maemo_Summit_2008#Travel|Share your travel tips]] from different locations.

== Accommodation ==
See [[Maemo Summit 2008/Accommodation]].

== Sponsoring community contributors ==

See [[Maemo Summit 2008/Sponsorship]].

== Maemo in the OSiM program ==
See [[Maemo in OSiM World 2008]].

== Organization ==
See [[Maemo_Summit_2008/Organization]]. Volunteers needed!

== Streaming video ==
Since nearly all of the attendees are carrying internet-connected video cameras, it is possible that someone may find a way to stream live video of the event. ([https://bugs.maemo.org/show_bug.cgi?id=1889 Bug 1889] makes this harder, but it should still be possible...)

== Links ==

Feel free to share/spread/forward/email...

* [http://upcoming.yahoo.com/event/839617/ Maemo summit on Upcoming!]
* [http://www.facebook.com/event.php?eid=16582874206 Maemo summit on Facebook - requires FB registration]
* [http://www.internettablettalk.com/forums/showthread.php?t=21569 Maemo summit discussion at Internet Tablet Talk]
* [http://lwn.net/Calendar/Monthly/2008-09/ LWN Calendar]
* [http://www.flickr.com/groups/maemosummit2008/ Flickr Photo Group Pool: maemo summit 2008]

[[Category:Maemo Summit 2008]]
[[Category:Community]]
[[Category:Events]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2008</title>
    <id>141</id>
    <revision>
      <id>46014</id>
      <timestamp>2011-12-15T04:00:34Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Undo revision 46007 by [[Special:Contributions/114.79.28.10|114.79.28.10]] ([[User talk:114.79.28.10|Talk]])</comment>
      <text xml:space="preserve">[[image:C-logo_claim_blue.png‎|right]]
[[image:MaemoSummit091908.jpg‎ ]]

'''Join the first Maemo Summit'''


'''Berlin, September 19-20''' @ [http://c-base.org/ c-base] - right after the OSiM World http://www.osimworld.com


'''[https://maemo.org/news/events/registrations/register/2f91448248e711dd8bcbb7b26102ad49ad49.html Free registration]''' - '''[http://maemo.org/news/events/maemo_summit-001/ Who is attending]'''

In Maemo Summit 2008 you will learn more about Nokia's Linux platform and its evolution. Meet the core team, 3rd party professional developers and key community contributors. Showcase and discuss your work. Learn, share, hack. And have fun!

The [http://www.osimworld.com Open Source in Mobile World] conference is an interesting venue to know more about the business and technical context of the Maemo platform. Nokia is active in this event and invites the Maemo community to join it. After the conference we propose the first Maemo Summit calling to all contributors.

== Schedule ==

=== &lt;center&gt;Friday 19 ([http://internettabletblog.de/maemo-summit-friday.ics .ics])&lt;/center&gt; ===
{|  width=&quot;100%&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; bordercolor=&quot;#000000&quot;
|+
|- 
|  width=&quot;112&quot; | '''9:00'''
|  colspan=&quot;3&quot; | '''Doors open'''
|- 
| '''9:30'''
|  colspan=&quot;3&quot; | '''Welcome&amp;#33;''', by [http://maemo.org/profile/view/jaaksi/ Ari Jaaksi] (VP - Maemo Software @ Nokia)
|- 
| '''10:00'''
|  colspan=&quot;3&quot; | '''The outside view''', by [http://dailythemes.wordpress.com/ Jay Sullivan] ([http://www.mozilla.com/ Mozilla Corp.]) 
|- 
| '''10:30'''
|  colspan=&quot;3&quot; |  '''Maemo UI Vision''', by Harri Kiljander (Director, User Experience - Maemo Software @ Nokia)
|- 
| '''11:00'''
|  colspan=&quot;3&quot; | '''What Maemo users want''', by [http://tabletblog.com/2008/05/3rd-anniversary-community-spotlight.html Reggie Suplido] ([http://www.internettablettalk.com/ Internet Tablet Talk])
|-
| '''11:30'''
|  colspan=&quot;3&quot; | '''Summary: What can we get out of Fremantle''' ([http://www.slideshare.net/silpol/maemo-community-fremantle-support-september-2008-presentation slides]) ([http://www.vimeo.com/1853196?pg=embed&amp;sec=1853196 video]), by [http://maemo.org/profile/view/peterschneider.html Peter Schneider] (Head of Product Marketing, Maemo Software @ Nokia) 
|- 
| '''12:00'''
|  colspan=&quot;3&quot; | '''Break.'''
|- 
| '''12:15'''
|  colspan=&quot;3&quot; | &lt;p&gt;'''Lightning sessions''', 5 min each. No more, no less.
# '''Maemo in police cars''': presentation of an embedded project based on N800's [[User:smancke|Sebastian Mancke]]
# '''Developing Multilingual Multimodal Applications in Maemo'''. A Mobile Medical Speech Translator &amp; A Mobile Meeting Calendar by [[User:ntsourak|Nikos Tsourakis]]
# '''[http://liquid.googlepages.com/lcuk liqbase]''', by Gary Birkett ([http://maemo.org/profile/view/lcuk.html lcuk])
# '''Reality or Vision?''' - The Nokia tablets for mobile and desktop use. LiveDemo/Presentation with [http://xsisusb.garage.maemo.org/ USB2VGA Adapter], bluetooth [http://anyremote.sourceforge.net/ anyremote] control by [http://www.linuxvision.de/ Uwe Koch]. ([http://maemo.org/profile/view/asys3/ asys3]) [http://www.linuxvision.de/nokia/maemoSummit2008-RealityOrVision.pdf Presentation slides] .
# '''Screencasting''':  x11vnc and pyvnc2swf bring visual documentation to users by [[User:brontide|Eric Warnke]]
# '''[[Maemo User Interface Issues Overview (Presentation)|Maemo User Interface Issues Overview]]''', by [[User:Timsamoff |Tim Samoff]].
# '''[http://esbox.garage.maemo.org/ ESBox] and [http://pluthon.garage.maemo.org/ Pluthon] Eclipse plugins''': how to use Eclipse to develop Maemo applications, by [[User:andy80|Andrea Grandi]].
# '''[http://elisator.garage.maemo.org Elisator] project and how [http://easy.garage.maemo.org Easy] library has helped and how could be improved'''. Elisator has been developed for cow's health analisys based in [http://en.wikipedia.org/wiki/ELISA ELISA assays] in poor Africa's regions and it has been funded by [http://www.fao.org FAO]. [http://www.slideshare.net/jsmanrique/elisator-slides-for-maemo-summit-2008-presentation/ Slides] (by [[user:jsmanrique|jsmanrique]])
# '''Teaser: maemo development using [http://illumination.sf.net Illumination]''' by [[User:framstag|Tim Teulings]] ([http://www.anderenen.de/anderenende/Illumination_Maemo_Submit_2008.pdf Presentation slides]).
# '''[http://dev.openbossa.org/trac/qedje/ QEdje]''', by [[user:etrunko|Eduardo Lima (Etrunko)]].
# '''Maemo Bug Jar: Origins, Results, and Future Plans''', by Stephen Gadsby ([http://maemo.org/profile/view/sjgadsby/ sjgadsby]).
# '''Unit/Integration Test Framework for Maemo''' by [[User:aheimola|Antti Heimola]].
# '''[http://www.internettablettalk.com/forums/showthread.php?t=21629 Debian in a chroot on the tablet]''', demo by Alan Bruce (qole).
# '''[http://codespeak.net/pypy PyPy] Python for Maemo''' (by [[user:hpk|Holger Krekel]] and/or [[user:fijal|Maciej Fijalkowski]]).
|- 
| '''14:00'''
|  colspan=&quot;3&quot; | '''Lunch&amp;#33;''' [[image:MaemoSummit_catering.jpg‎ ]]
|- 
|  rowspan=&quot;3&quot; | '''15:00'''
|  colspan=&quot;3&quot; | '''Meet the Maemo SW developers''' (a representation of the main platform and OSS teams developing Maemo @ Nokia + special guests)
|- 
|  width=&quot;33%&quot; | '''STREAM 1: ROOM UPSTAIRS'''
|  width=&quot;33%&quot; | '''STREAM 2: ROOM DOWNSTAIRS'''
|  width=&quot;33%&quot; | '''STREAM 3: C-BASE'''
|- 
|  width=&quot;33%&quot; | '''Desktop''' by [http://maemo.org/profile/view/rodarvus/ Rodrigo Novo] (Nokia)
|  width=&quot;33%&quot; | '''Connectivity''' by [http://maemo.org/profile/view/kvalo.html Kalle Valo] and [http://maemo.org/profile/view/pfl.html Patrik Flykt] ([http://www.slideshare.net/pflykt/connectivity-maemo-summit-2008-presentation Connectivity slides] [http://stlc45xx.garage.maemo.org/stlc45xx-maemo-summit-2008.pdf WLAN slides])
|  width=&quot;33%&quot; | '''Development Platform''' by [http://maemo.org/profile/view/bijjal/ Soumya Bijjal], [http://maemo.org/profile/view/kaltsi/ Juha Kallioinen] (tbc), [http://maemo.org/profile/view/marcell/ Marcell Lengyel], [http://maemo.org/profile/view/qgil.html Quim Gil]
|- 
|  '''16:00''' 
|  width=&quot;33%&quot; | '''Browser''' by [http://maemo.org/profile/view/andreypetrov.html Andrey Petrov], [http://maemo.org/profile/view/timeless.html timeless]
|  width=&quot;33%&quot; | '''Real-Time Communication''' by [http://maemo.org/profile/view/kh_naba/ Naba Kumar], [http://maemo.org/profile/view/mzabaluev/ Mikhail Zabaluev]
|  width=&quot;33%&quot; | '''Technology &amp; Architecture''' by [http://maemo.org/profile/view/jtukkine/ Juha Tukkinen], [http://maemo.org/profile/view/bittinen/ Mika Leppinen]
|- 
|  '''17:00''' 
|  width=&quot;33%&quot; | '''Core System''' by Kai Svahn (tbc), [http://maemo.org/profile/view/nakkebar/ Eero Tamminen], [http://maemo.org/profile/view/igor_stoppa.html Igor Stoppa], [http://maemo.org/profile/view/poussa.html Sakari Poussa]
|  width=&quot;33%&quot; | '''Multimedia''' by [http://maemo.org/profile/view/ensonic.html Stefan Kost], [http://maemo.org/profile/view/luc/ Luc Pionchon], ([http://www.slideshare.net/ensonic/maemo-multimedia-framework-presentation Slides])
|  width=&quot;33%&quot; | '''[[Desktop_Search_Hackfest|Desktop Search Hackfest]]''' link, by [http://maemo.org/profile/view/konttori/ Urho Konttori], [http://maemo.org/profile/view/ifrade/ Iván Frade] + Jamie McCracken (Tracker)
|- 
| '''18:00'''
| colspan=&quot;3&quot; | '''c-base reconstruction project³ - be future compatible- reboot universe now'''
*learn more about the crashed spacestation c-base ([http://maemosummit.ext.c-base.org/index.php/Videos Video])
|-
| '''18:30'''
|  colspan=&quot;3&quot; | '''Chill out.'''
* Dinner, music, drinks tbd.
* Dress code recommended: t-shirt with the maemo.org logo of [[Maemo.org_logo_contest_submissions|your choice]]. DISCLAIMER: can't be the winner logo. ;)
: Now that the new logo has been chosen, what exactly does this mean? --[[User:timsamoff|timsamoff]] 12:24, 5 August 2008 (UTC)
:: Wear a t-shirt with a maemo.org logo that you like from the competition. The official one isn't allowed ;) --[[User:xfade|xfade]] 14:47, 5 August 2008 (UTC)
::: what if you liked the official one? --[[User:dneary|Dave Neary]] 22:14, 6 August 2008 (UTC)
|}

{|  width=&quot;100%&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; bordercolor=&quot;#000000&quot;
|+

===Saturday 20===

Coordinated by [[User:brontide| Eric Warnke]]

|-
|  width=&quot;53&quot; | '''9:00'''
|  colspan=&quot;3&quot; | '''Opening doors''' and wlan.
|-
| '''9:30'''
|  colspan=&quot;3&quot; | '''[http://flors.files.wordpress.com/2008/09/howmaemooss.pdf How Maemo Approaches Open Source]''', by [http://flors.wordpress.com/ Quim Gil] (marketing manager, open source - Maemo Software @ Nokia)
|-
|  '''10:00'''
|  colspan=&quot;3&quot; | '''Introducing the [[Community Council|Maemo Community Council]]''', by [[Community_Council|the members]].
|-
| '''10:30'''
|  colspan=&quot;3&quot; | '''&quot;We are not the Users&quot;: The hate and love behind the custom User experiences on Maemo.''' [[User:handful|Marcelo eduardo]]
|-
|  width=&quot;53&quot; | '''11:00'''
|  colspan=&quot;3&quot; | '''BoF: Future of maemo.org extras''', by Niels (and Ed?) [http://www.slideshare.net/nbreet/maemo-extras-future-presentation Slides]
|-
| '''11:30'''
| colspan=&quot;3&quot; | '''Lightning sessions''', 5 min each. No more, no less.
# '''WorldTV99''': Watching TV on your tablet by [[User:bunanson|bunanson]] and koos
# '''Cloud storage:''' Improve your app by syncing with internet services like Google Docs or Picasaweb by [[User:brontide|Eric Warnke]]
# '''Tablet-encode''': Converting videos on Linux using [http://mediautils.garage.maemo.org/tablet-encode.html tablet-encode], by Andrew Flegg ([http://maemo.org/profile/view/jaffa/ Jaffa])
# '''py2deb''': packaging your app onboard using py2deb and extras autobuilder [[User:khertan|Benoît HERVIER]]
# '''Podcasts on NITs''': [http://maemo.gpodder.org/ gPodder] and [http://thpinfo.com/2008/panucci/ Panucci] by ([http://maemo.org/profile/view/thp.html Thomas Perl])
# '''KDE on maemo''': by Marijn Kruisselbrink
# '''An activist’s wish list''': A location aware software suite to use in reporting, and forensic investigation of, human rights violations by [[User:tonypercy|Tony Percy]]
# '''mCalendar and mContact''': advanced syncing with google services [[User:khertan|Benoît HERVIER]]
|-
|  '''12:15'''
|  colspan=&quot;3&quot; | '''Break'''
|-
|  '''TRACKS'''
|  width=&quot;33%&quot; | '''Community/Discussion'''
|  width=&quot;33%&quot; | '''Development'''
|  width=&quot;33%&quot; | '''Core Platform'''
|-
|  '''12:30''' 
|  width=&quot;33%&quot; | '''Community story – Productivity suite in Nokia IT''', by Miika Kuha
|  width=&quot;33%&quot; | '''Packaging and publishing software??? (no show)''', Changed to: '''Maemo plugin for Anjuta DevStudio''', [http://maemo.org/profile/view/kh_naba/ Naba Kumar]
|  width=&quot;33%&quot; | '''libchamplain''': A Clutter/Gtk+ Map Widget for your application and maybe some Clutter demos :) by [[User:pierlux|Pierre-Luc Beaudoin]]
|- 
|  '''13:00'''
|  width=&quot;33%&quot; | '''[http://dev.openbossa.org/trac/mamona Mamona] &amp;amp; Maemo: 2 way contribution (How to learn and grow up together)''', by Mamona developers from INdT. 
|  width=&quot;33%&quot; | '''Porting Applications and exploiting the maemo platform'''  lead by [[User:anidel|Aniello Del Sorbo]] ([http://www.slideshare.net/anidel/exploiting-maemo-presentation/ Slides])
|  width=&quot;33%&quot; | '''maemo.org extras Package Cleanup Sprint'''
|- 
|  '''13:30'''
|  width=&quot;33%&quot; | '''[[Maemo User Interface Issues (Presentation)|Maemo User Interface Issues]]''',  by [[User:Timsamoff |Tim Samoff]] + chat with Nokia Fremantle UI designers.
|  width=&quot;33%&quot; | '''Using [http://mud-builder.garage.maemo.org/ mud-builder] to build packages''', by [[User:Jaffa|Jaffa]].
|  width=&quot;33%&quot; | '''Maemo in QEMU N8x0 emulation:''' by [[User:hrw|Marcin 'hrw' Juszkiewicz]] ([http://blog.haerwu.biz/2008/09/20/maemo-in-qemu-n8x0-emulation-presentation/ materials to download])
|-
|  '''14:00'''
| colspan=&quot;3&quot;  | '''Lunch&amp;#33;''' [[image:MaemoSummit_catering_day2.jpg‎ ]]
|-
|  '''15:00''' 
|  width=&quot;33%&quot; rowspan=&quot;2&quot; | '''Workshop: Maemo hacking introduction''': coordinated by [[User:kate |Kate Alhola]]
|  width=&quot;33%&quot; | '''Embedded Webapps''' Using webpy framework for on tablet web services by [[user:fpp]]
|  width=&quot;33%&quot; | '''maemo.org website redesign meeting''': ([http://www.slideshare.net/nearyd/maemoorg-presentation-presentation presentation]) A meeting to specify the design requirements for restyling the maemo.org website (reference: [[Task:Improving_maemo.org#maemo.org_homepage_refresh|Homepage Refresh]] &amp; [[Task:Maemo.org_facelift|maemo.org Facelift]]). by [[User:dneary|Dave Neary]]
|-
|  '''15:30'''
|  width=&quot;33%&quot; | '''Introduction To Telepathy:'''  Components and use on the maemo platform. by Marco Barisione from [http://www.collabora.co.uk Collabora]
|  width=&quot;33%&quot; | '''Introduction to DSP programming''' by [[User:lardman|Simon Pickering]]. Presentation [http://people.bath.ac.uk/enpsgp/nokia770/dsp/linux_summit.odp|here], expanded version to replace wiki page to follow.
|-
| '''16:00'''
|  width=&quot;33%&quot; | '''Building a Business on Maemo:''' by [[User:dob|Doug Petkanics]] from [http://frogmetrics.com Frogmetrics]
|  width=&quot;33%&quot; | '''Qt Maemo-Hildon Port &amp; How to Develop Qt Application for the Maemo Platform''', by [[User:kate |Kate Alhola]] &amp; [[User:gnuton |Antonio Aloisio]].
|  width=&quot;33%&quot; | '''BoF: Building a vector data extension to maemo Mapper''' Soliciting feedback and developers for the project. by [[user:gnuite]]
|-
|  '''16:30'''
|  width=&quot;33%&quot; | '''[[User:Andre/Presentations|Bugsquad meeting]]''' Anybody interested in helping managing the Maemo bugs is welcome! Hosted by [[User:Andre|Andre Klapper]] and [[User:Karstenb|Karsten Bräckelmann]]
|  width=&quot;33%&quot; | [[Google Data API for Python (Presentation)|'''Introduction to Google's python based Data API's''']]  by [[User:Brontide|Eric Warnke]]
|  width=&quot;33%&quot; | '''Introduction to WebKit''' Come see WebKit's internals, 2 of its ports (Gtk and Qt). by [[User:pierlux |Pierre-Luc Beaudoin]] from [http://www.collabora.co.uk Collabora]
|-
|  '''17:00'''
|  colspan=&quot;3&quot; | [[2010 Agenda|'''Maemo 2010''']]: Brainstorming session  discussing current status / future desires for the Maemo platform. Where do we want to go in the next 24 months?  What can we learn and share from other mobile platforms?  Bring the whole community together to get input.
|-
| '''18:00'''
|  colspan=&quot;3&quot; | '''End.''' &lt;br&gt;&lt;br&gt;'''Note: Software Freedom Day (20th of September) [http://softwarefreedomday.org/teams/europe/germany/FreieSoftwareBerlin also in Berlin]'''
|-
| '''20:00-24:00'''
|  colspan=&quot;3&quot; | '''Post-Summit Openismus Party''': [http://www.openismus.com Openismus] welcome you to their new office at Kastanienallee 88, with beer and pizza. [http://www.murrayc.com/blog/permalink/2008/09/20/openismus-party-tonight/ Directions]
|}

== Venue ==

The Maemo Summit is held in the headquarter of '''[http://www.c-base.org c-base]''' and the contiguous [http://www.eti-berlin.de/ eti Schauspielschule Berlin]. 

c-base is a non-profit association which has about 300 members. The purpose of this association is to increase knowledge and know-how regarding computer software, hardware and data networks ([http://en.wikipedia.org/wiki/C-base more]). eti Berlin is a school of actors based in a building with several rooms and a total surface available of 1.200m&lt;sup&gt;2&lt;/sup&gt;. The perfect mix, full of creativity!

See [http://share.ovi.com/channel/qgil.public the videos].

c-base is in the very Mitte of Berlin. [http://maps.google.co.uk/maps?ie=UTF-8&amp;oe=utf-8&amp;rls=com.ubuntu:en-GB:unofficial&amp;client=firefox-a&amp;um=1&amp;q=c-base&amp;near=Berlin,+Germany&amp;fb=1&amp;cid=0,0,5828762841994571845&amp;sa=X&amp;oi=local_result&amp;resnum=1&amp;ct=image Map]

== Participants ==
'''[https://maemo.org/news/events/registrations/register/2f91448248e711dd8bcbb7b26102ad49ad49.html REGISTER]'''

It's the first Maemo Summit and it is good to know in advance who plans to attend, to fine tune practicalities and have enough space, connection, drinks, food.

Yes, the entrance is free. Registration is still requested for planning purposes.

== Travel ==
See [[Maemo_Summit_2008/Travel|when people are arriving in and leaving Berlin]].

[[Talk:Maemo_Summit_2008#Travel|Apparently]] there are options as affordable as 20€ including taxes from Stansted! [[Talk:Maemo_Summit_2008#Travel|Share your travel tips]] from different locations.

== Accommodation ==
See [[Maemo Summit 2008/Accommodation]].

== Sponsoring community contributors ==

See [[Maemo Summit 2008/Sponsorship]].

== Maemo in the OSiM program ==
See [[Maemo in OSiM World 2008]].

== Organization ==
See [[Maemo_Summit_2008/Organization]]. Volunteers needed!

== Streaming video ==
Since nearly all of the attendees are carrying internet-connected video cameras, it is possible that someone may find a way to stream live video of the event. ([https://bugs.maemo.org/show_bug.cgi?id=1889 Bug 1889] makes this harder, but it should still be possible...)

== Links ==

Feel free to share/spread/forward/email...

* [http://upcoming.yahoo.com/event/839617/ Maemo summit on Upcoming!]
* [http://www.facebook.com/event.php?eid=16582874206 Maemo summit on Facebook - requires FB registration]
* [http://www.internettablettalk.com/forums/showthread.php?t=21569 Maemo summit discussion at Internet Tablet Talk]
* [http://lwn.net/Calendar/Monthly/2008-09/ LWN Calendar]
* [http://www.flickr.com/groups/maemosummit2008/ Flickr Photo Group Pool: maemo summit 2008]

[[Category:Maemo Summit 2008]]
[[Category:Community]]
[[Category:Events]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2008</title>
    <id>141</id>
    <revision>
      <id>46014</id>
      <timestamp>2011-12-15T04:00:34Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Undo revision 46007 by [[Special:Contributions/114.79.28.10|114.79.28.10]] ([[User talk:114.79.28.10|Talk]])</comment>
      <text xml:space="preserve">[[image:C-logo_claim_blue.png‎|right]]
[[image:MaemoSummit091908.jpg‎ ]]

'''Join the first Maemo Summit'''


'''Berlin, September 19-20''' @ [http://c-base.org/ c-base] - right after the OSiM World http://www.osimworld.com


'''[https://maemo.org/news/events/registrations/register/2f91448248e711dd8bcbb7b26102ad49ad49.html Free registration]''' - '''[http://maemo.org/news/events/maemo_summit-001/ Who is attending]'''

In Maemo Summit 2008 you will learn more about Nokia's Linux platform and its evolution. Meet the core team, 3rd party professional developers and key community contributors. Showcase and discuss your work. Learn, share, hack. And have fun!

The [http://www.osimworld.com Open Source in Mobile World] conference is an interesting venue to know more about the business and technical context of the Maemo platform. Nokia is active in this event and invites the Maemo community to join it. After the conference we propose the first Maemo Summit calling to all contributors.

== Schedule ==

=== &lt;center&gt;Friday 19 ([http://internettabletblog.de/maemo-summit-friday.ics .ics])&lt;/center&gt; ===
{|  width=&quot;100%&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; bordercolor=&quot;#000000&quot;
|+
|- 
|  width=&quot;112&quot; | '''9:00'''
|  colspan=&quot;3&quot; | '''Doors open'''
|- 
| '''9:30'''
|  colspan=&quot;3&quot; | '''Welcome&amp;#33;''', by [http://maemo.org/profile/view/jaaksi/ Ari Jaaksi] (VP - Maemo Software @ Nokia)
|- 
| '''10:00'''
|  colspan=&quot;3&quot; | '''The outside view''', by [http://dailythemes.wordpress.com/ Jay Sullivan] ([http://www.mozilla.com/ Mozilla Corp.]) 
|- 
| '''10:30'''
|  colspan=&quot;3&quot; |  '''Maemo UI Vision''', by Harri Kiljander (Director, User Experience - Maemo Software @ Nokia)
|- 
| '''11:00'''
|  colspan=&quot;3&quot; | '''What Maemo users want''', by [http://tabletblog.com/2008/05/3rd-anniversary-community-spotlight.html Reggie Suplido] ([http://www.internettablettalk.com/ Internet Tablet Talk])
|-
| '''11:30'''
|  colspan=&quot;3&quot; | '''Summary: What can we get out of Fremantle''' ([http://www.slideshare.net/silpol/maemo-community-fremantle-support-september-2008-presentation slides]) ([http://www.vimeo.com/1853196?pg=embed&amp;sec=1853196 video]), by [http://maemo.org/profile/view/peterschneider.html Peter Schneider] (Head of Product Marketing, Maemo Software @ Nokia) 
|- 
| '''12:00'''
|  colspan=&quot;3&quot; | '''Break.'''
|- 
| '''12:15'''
|  colspan=&quot;3&quot; | &lt;p&gt;'''Lightning sessions''', 5 min each. No more, no less.
# '''Maemo in police cars''': presentation of an embedded project based on N800's [[User:smancke|Sebastian Mancke]]
# '''Developing Multilingual Multimodal Applications in Maemo'''. A Mobile Medical Speech Translator &amp; A Mobile Meeting Calendar by [[User:ntsourak|Nikos Tsourakis]]
# '''[http://liquid.googlepages.com/lcuk liqbase]''', by Gary Birkett ([http://maemo.org/profile/view/lcuk.html lcuk])
# '''Reality or Vision?''' - The Nokia tablets for mobile and desktop use. LiveDemo/Presentation with [http://xsisusb.garage.maemo.org/ USB2VGA Adapter], bluetooth [http://anyremote.sourceforge.net/ anyremote] control by [http://www.linuxvision.de/ Uwe Koch]. ([http://maemo.org/profile/view/asys3/ asys3]) [http://www.linuxvision.de/nokia/maemoSummit2008-RealityOrVision.pdf Presentation slides] .
# '''Screencasting''':  x11vnc and pyvnc2swf bring visual documentation to users by [[User:brontide|Eric Warnke]]
# '''[[Maemo User Interface Issues Overview (Presentation)|Maemo User Interface Issues Overview]]''', by [[User:Timsamoff |Tim Samoff]].
# '''[http://esbox.garage.maemo.org/ ESBox] and [http://pluthon.garage.maemo.org/ Pluthon] Eclipse plugins''': how to use Eclipse to develop Maemo applications, by [[User:andy80|Andrea Grandi]].
# '''[http://elisator.garage.maemo.org Elisator] project and how [http://easy.garage.maemo.org Easy] library has helped and how could be improved'''. Elisator has been developed for cow's health analisys based in [http://en.wikipedia.org/wiki/ELISA ELISA assays] in poor Africa's regions and it has been funded by [http://www.fao.org FAO]. [http://www.slideshare.net/jsmanrique/elisator-slides-for-maemo-summit-2008-presentation/ Slides] (by [[user:jsmanrique|jsmanrique]])
# '''Teaser: maemo development using [http://illumination.sf.net Illumination]''' by [[User:framstag|Tim Teulings]] ([http://www.anderenen.de/anderenende/Illumination_Maemo_Submit_2008.pdf Presentation slides]).
# '''[http://dev.openbossa.org/trac/qedje/ QEdje]''', by [[user:etrunko|Eduardo Lima (Etrunko)]].
# '''Maemo Bug Jar: Origins, Results, and Future Plans''', by Stephen Gadsby ([http://maemo.org/profile/view/sjgadsby/ sjgadsby]).
# '''Unit/Integration Test Framework for Maemo''' by [[User:aheimola|Antti Heimola]].
# '''[http://www.internettablettalk.com/forums/showthread.php?t=21629 Debian in a chroot on the tablet]''', demo by Alan Bruce (qole).
# '''[http://codespeak.net/pypy PyPy] Python for Maemo''' (by [[user:hpk|Holger Krekel]] and/or [[user:fijal|Maciej Fijalkowski]]).
|- 
| '''14:00'''
|  colspan=&quot;3&quot; | '''Lunch&amp;#33;''' [[image:MaemoSummit_catering.jpg‎ ]]
|- 
|  rowspan=&quot;3&quot; | '''15:00'''
|  colspan=&quot;3&quot; | '''Meet the Maemo SW developers''' (a representation of the main platform and OSS teams developing Maemo @ Nokia + special guests)
|- 
|  width=&quot;33%&quot; | '''STREAM 1: ROOM UPSTAIRS'''
|  width=&quot;33%&quot; | '''STREAM 2: ROOM DOWNSTAIRS'''
|  width=&quot;33%&quot; | '''STREAM 3: C-BASE'''
|- 
|  width=&quot;33%&quot; | '''Desktop''' by [http://maemo.org/profile/view/rodarvus/ Rodrigo Novo] (Nokia)
|  width=&quot;33%&quot; | '''Connectivity''' by [http://maemo.org/profile/view/kvalo.html Kalle Valo] and [http://maemo.org/profile/view/pfl.html Patrik Flykt] ([http://www.slideshare.net/pflykt/connectivity-maemo-summit-2008-presentation Connectivity slides] [http://stlc45xx.garage.maemo.org/stlc45xx-maemo-summit-2008.pdf WLAN slides])
|  width=&quot;33%&quot; | '''Development Platform''' by [http://maemo.org/profile/view/bijjal/ Soumya Bijjal], [http://maemo.org/profile/view/kaltsi/ Juha Kallioinen] (tbc), [http://maemo.org/profile/view/marcell/ Marcell Lengyel], [http://maemo.org/profile/view/qgil.html Quim Gil]
|- 
|  '''16:00''' 
|  width=&quot;33%&quot; | '''Browser''' by [http://maemo.org/profile/view/andreypetrov.html Andrey Petrov], [http://maemo.org/profile/view/timeless.html timeless]
|  width=&quot;33%&quot; | '''Real-Time Communication''' by [http://maemo.org/profile/view/kh_naba/ Naba Kumar], [http://maemo.org/profile/view/mzabaluev/ Mikhail Zabaluev]
|  width=&quot;33%&quot; | '''Technology &amp; Architecture''' by [http://maemo.org/profile/view/jtukkine/ Juha Tukkinen], [http://maemo.org/profile/view/bittinen/ Mika Leppinen]
|- 
|  '''17:00''' 
|  width=&quot;33%&quot; | '''Core System''' by Kai Svahn (tbc), [http://maemo.org/profile/view/nakkebar/ Eero Tamminen], [http://maemo.org/profile/view/igor_stoppa.html Igor Stoppa], [http://maemo.org/profile/view/poussa.html Sakari Poussa]
|  width=&quot;33%&quot; | '''Multimedia''' by [http://maemo.org/profile/view/ensonic.html Stefan Kost], [http://maemo.org/profile/view/luc/ Luc Pionchon], ([http://www.slideshare.net/ensonic/maemo-multimedia-framework-presentation Slides])
|  width=&quot;33%&quot; | '''[[Desktop_Search_Hackfest|Desktop Search Hackfest]]''' link, by [http://maemo.org/profile/view/konttori/ Urho Konttori], [http://maemo.org/profile/view/ifrade/ Iván Frade] + Jamie McCracken (Tracker)
|- 
| '''18:00'''
| colspan=&quot;3&quot; | '''c-base reconstruction project³ - be future compatible- reboot universe now'''
*learn more about the crashed spacestation c-base ([http://maemosummit.ext.c-base.org/index.php/Videos Video])
|-
| '''18:30'''
|  colspan=&quot;3&quot; | '''Chill out.'''
* Dinner, music, drinks tbd.
* Dress code recommended: t-shirt with the maemo.org logo of [[Maemo.org_logo_contest_submissions|your choice]]. DISCLAIMER: can't be the winner logo. ;)
: Now that the new logo has been chosen, what exactly does this mean? --[[User:timsamoff|timsamoff]] 12:24, 5 August 2008 (UTC)
:: Wear a t-shirt with a maemo.org logo that you like from the competition. The official one isn't allowed ;) --[[User:xfade|xfade]] 14:47, 5 August 2008 (UTC)
::: what if you liked the official one? --[[User:dneary|Dave Neary]] 22:14, 6 August 2008 (UTC)
|}

{|  width=&quot;100%&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; bordercolor=&quot;#000000&quot;
|+

===Saturday 20===

Coordinated by [[User:brontide| Eric Warnke]]

|-
|  width=&quot;53&quot; | '''9:00'''
|  colspan=&quot;3&quot; | '''Opening doors''' and wlan.
|-
| '''9:30'''
|  colspan=&quot;3&quot; | '''[http://flors.files.wordpress.com/2008/09/howmaemooss.pdf How Maemo Approaches Open Source]''', by [http://flors.wordpress.com/ Quim Gil] (marketing manager, open source - Maemo Software @ Nokia)
|-
|  '''10:00'''
|  colspan=&quot;3&quot; | '''Introducing the [[Community Council|Maemo Community Council]]''', by [[Community_Council|the members]].
|-
| '''10:30'''
|  colspan=&quot;3&quot; | '''&quot;We are not the Users&quot;: The hate and love behind the custom User experiences on Maemo.''' [[User:handful|Marcelo eduardo]]
|-
|  width=&quot;53&quot; | '''11:00'''
|  colspan=&quot;3&quot; | '''BoF: Future of maemo.org extras''', by Niels (and Ed?) [http://www.slideshare.net/nbreet/maemo-extras-future-presentation Slides]
|-
| '''11:30'''
| colspan=&quot;3&quot; | '''Lightning sessions''', 5 min each. No more, no less.
# '''WorldTV99''': Watching TV on your tablet by [[User:bunanson|bunanson]] and koos
# '''Cloud storage:''' Improve your app by syncing with internet services like Google Docs or Picasaweb by [[User:brontide|Eric Warnke]]
# '''Tablet-encode''': Converting videos on Linux using [http://mediautils.garage.maemo.org/tablet-encode.html tablet-encode], by Andrew Flegg ([http://maemo.org/profile/view/jaffa/ Jaffa])
# '''py2deb''': packaging your app onboard using py2deb and extras autobuilder [[User:khertan|Benoît HERVIER]]
# '''Podcasts on NITs''': [http://maemo.gpodder.org/ gPodder] and [http://thpinfo.com/2008/panucci/ Panucci] by ([http://maemo.org/profile/view/thp.html Thomas Perl])
# '''KDE on maemo''': by Marijn Kruisselbrink
# '''An activist’s wish list''': A location aware software suite to use in reporting, and forensic investigation of, human rights violations by [[User:tonypercy|Tony Percy]]
# '''mCalendar and mContact''': advanced syncing with google services [[User:khertan|Benoît HERVIER]]
|-
|  '''12:15'''
|  colspan=&quot;3&quot; | '''Break'''
|-
|  '''TRACKS'''
|  width=&quot;33%&quot; | '''Community/Discussion'''
|  width=&quot;33%&quot; | '''Development'''
|  width=&quot;33%&quot; | '''Core Platform'''
|-
|  '''12:30''' 
|  width=&quot;33%&quot; | '''Community story – Productivity suite in Nokia IT''', by Miika Kuha
|  width=&quot;33%&quot; | '''Packaging and publishing software??? (no show)''', Changed to: '''Maemo plugin for Anjuta DevStudio''', [http://maemo.org/profile/view/kh_naba/ Naba Kumar]
|  width=&quot;33%&quot; | '''libchamplain''': A Clutter/Gtk+ Map Widget for your application and maybe some Clutter demos :) by [[User:pierlux|Pierre-Luc Beaudoin]]
|- 
|  '''13:00'''
|  width=&quot;33%&quot; | '''[http://dev.openbossa.org/trac/mamona Mamona] &amp;amp; Maemo: 2 way contribution (How to learn and grow up together)''', by Mamona developers from INdT. 
|  width=&quot;33%&quot; | '''Porting Applications and exploiting the maemo platform'''  lead by [[User:anidel|Aniello Del Sorbo]] ([http://www.slideshare.net/anidel/exploiting-maemo-presentation/ Slides])
|  width=&quot;33%&quot; | '''maemo.org extras Package Cleanup Sprint'''
|- 
|  '''13:30'''
|  width=&quot;33%&quot; | '''[[Maemo User Interface Issues (Presentation)|Maemo User Interface Issues]]''',  by [[User:Timsamoff |Tim Samoff]] + chat with Nokia Fremantle UI designers.
|  width=&quot;33%&quot; | '''Using [http://mud-builder.garage.maemo.org/ mud-builder] to build packages''', by [[User:Jaffa|Jaffa]].
|  width=&quot;33%&quot; | '''Maemo in QEMU N8x0 emulation:''' by [[User:hrw|Marcin 'hrw' Juszkiewicz]] ([http://blog.haerwu.biz/2008/09/20/maemo-in-qemu-n8x0-emulation-presentation/ materials to download])
|-
|  '''14:00'''
| colspan=&quot;3&quot;  | '''Lunch&amp;#33;''' [[image:MaemoSummit_catering_day2.jpg‎ ]]
|-
|  '''15:00''' 
|  width=&quot;33%&quot; rowspan=&quot;2&quot; | '''Workshop: Maemo hacking introduction''': coordinated by [[User:kate |Kate Alhola]]
|  width=&quot;33%&quot; | '''Embedded Webapps''' Using webpy framework for on tablet web services by [[user:fpp]]
|  width=&quot;33%&quot; | '''maemo.org website redesign meeting''': ([http://www.slideshare.net/nearyd/maemoorg-presentation-presentation presentation]) A meeting to specify the design requirements for restyling the maemo.org website (reference: [[Task:Improving_maemo.org#maemo.org_homepage_refresh|Homepage Refresh]] &amp; [[Task:Maemo.org_facelift|maemo.org Facelift]]). by [[User:dneary|Dave Neary]]
|-
|  '''15:30'''
|  width=&quot;33%&quot; | '''Introduction To Telepathy:'''  Components and use on the maemo platform. by Marco Barisione from [http://www.collabora.co.uk Collabora]
|  width=&quot;33%&quot; | '''Introduction to DSP programming''' by [[User:lardman|Simon Pickering]]. Presentation [http://people.bath.ac.uk/enpsgp/nokia770/dsp/linux_summit.odp|here], expanded version to replace wiki page to follow.
|-
| '''16:00'''
|  width=&quot;33%&quot; | '''Building a Business on Maemo:''' by [[User:dob|Doug Petkanics]] from [http://frogmetrics.com Frogmetrics]
|  width=&quot;33%&quot; | '''Qt Maemo-Hildon Port &amp; How to Develop Qt Application for the Maemo Platform''', by [[User:kate |Kate Alhola]] &amp; [[User:gnuton |Antonio Aloisio]].
|  width=&quot;33%&quot; | '''BoF: Building a vector data extension to maemo Mapper''' Soliciting feedback and developers for the project. by [[user:gnuite]]
|-
|  '''16:30'''
|  width=&quot;33%&quot; | '''[[User:Andre/Presentations|Bugsquad meeting]]''' Anybody interested in helping managing the Maemo bugs is welcome! Hosted by [[User:Andre|Andre Klapper]] and [[User:Karstenb|Karsten Bräckelmann]]
|  width=&quot;33%&quot; | [[Google Data API for Python (Presentation)|'''Introduction to Google's python based Data API's''']]  by [[User:Brontide|Eric Warnke]]
|  width=&quot;33%&quot; | '''Introduction to WebKit''' Come see WebKit's internals, 2 of its ports (Gtk and Qt). by [[User:pierlux |Pierre-Luc Beaudoin]] from [http://www.collabora.co.uk Collabora]
|-
|  '''17:00'''
|  colspan=&quot;3&quot; | [[2010 Agenda|'''Maemo 2010''']]: Brainstorming session  discussing current status / future desires for the Maemo platform. Where do we want to go in the next 24 months?  What can we learn and share from other mobile platforms?  Bring the whole community together to get input.
|-
| '''18:00'''
|  colspan=&quot;3&quot; | '''End.''' &lt;br&gt;&lt;br&gt;'''Note: Software Freedom Day (20th of September) [http://softwarefreedomday.org/teams/europe/germany/FreieSoftwareBerlin also in Berlin]'''
|-
| '''20:00-24:00'''
|  colspan=&quot;3&quot; | '''Post-Summit Openismus Party''': [http://www.openismus.com Openismus] welcome you to their new office at Kastanienallee 88, with beer and pizza. [http://www.murrayc.com/blog/permalink/2008/09/20/openismus-party-tonight/ Directions]
|}

== Venue ==

The Maemo Summit is held in the headquarter of '''[http://www.c-base.org c-base]''' and the contiguous [http://www.eti-berlin.de/ eti Schauspielschule Berlin]. 

c-base is a non-profit association which has about 300 members. The purpose of this association is to increase knowledge and know-how regarding computer software, hardware and data networks ([http://en.wikipedia.org/wiki/C-base more]). eti Berlin is a school of actors based in a building with several rooms and a total surface available of 1.200m&lt;sup&gt;2&lt;/sup&gt;. The perfect mix, full of creativity!

See [http://share.ovi.com/channel/qgil.public the videos].

c-base is in the very Mitte of Berlin. [http://maps.google.co.uk/maps?ie=UTF-8&amp;oe=utf-8&amp;rls=com.ubuntu:en-GB:unofficial&amp;client=firefox-a&amp;um=1&amp;q=c-base&amp;near=Berlin,+Germany&amp;fb=1&amp;cid=0,0,5828762841994571845&amp;sa=X&amp;oi=local_result&amp;resnum=1&amp;ct=image Map]

== Participants ==
'''[https://maemo.org/news/events/registrations/register/2f91448248e711dd8bcbb7b26102ad49ad49.html REGISTER]'''

It's the first Maemo Summit and it is good to know in advance who plans to attend, to fine tune practicalities and have enough space, connection, drinks, food.

Yes, the entrance is free. Registration is still requested for planning purposes.

== Travel ==
See [[Maemo_Summit_2008/Travel|when people are arriving in and leaving Berlin]].

[[Talk:Maemo_Summit_2008#Travel|Apparently]] there are options as affordable as 20€ including taxes from Stansted! [[Talk:Maemo_Summit_2008#Travel|Share your travel tips]] from different locations.

== Accommodation ==
See [[Maemo Summit 2008/Accommodation]].

== Sponsoring community contributors ==

See [[Maemo Summit 2008/Sponsorship]].

== Maemo in the OSiM program ==
See [[Maemo in OSiM World 2008]].

== Organization ==
See [[Maemo_Summit_2008/Organization]]. Volunteers needed!

== Streaming video ==
Since nearly all of the attendees are carrying internet-connected video cameras, it is possible that someone may find a way to stream live video of the event. ([https://bugs.maemo.org/show_bug.cgi?id=1889 Bug 1889] makes this harder, but it should still be possible...)

== Links ==

Feel free to share/spread/forward/email...

* [http://upcoming.yahoo.com/event/839617/ Maemo summit on Upcoming!]
* [http://www.facebook.com/event.php?eid=16582874206 Maemo summit on Facebook - requires FB registration]
* [http://www.internettablettalk.com/forums/showthread.php?t=21569 Maemo summit discussion at Internet Tablet Talk]
* [http://lwn.net/Calendar/Monthly/2008-09/ LWN Calendar]
* [http://www.flickr.com/groups/maemosummit2008/ Flickr Photo Group Pool: maemo summit 2008]

[[Category:Maemo Summit 2008]]
[[Category:Community]]
[[Category:Events]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2008/Accommodation</title>
    <id>784</id>
    <revision>
      <id>29109</id>
      <timestamp>2010-02-11T16:32:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2008]]</comment>
      <text xml:space="preserve">How are you sorting out your accommodation for the [[Maemo Summit 2008]]. Share tips and details!

Note that OSiM World and the Maemo Summit are happening in '''very''' different and distant parts of the city. The recommended location is in Berlin Mitte, close to the Maemo Summit and, well, in the Mitte of Berlin.  :) Public transport in Berlin is excellent anyway.

== Confirmed bookings ==
Where are you staying?
* [http://www.generatorhostels.com/Berlin/ Generator Berlin Hostel] - [http://maps.google.fr/maps?ie=UTF-8&amp;oe=utf-8&amp;rls=org.mozilla:fr:official&amp;client=firefox-a&amp;um=1&amp;q=generator&amp;near=Berlin,+Allemagne&amp;fb=1&amp;cid=0,0,9864521125646164502&amp;sa=X&amp;oi=local_result&amp;resnum=1&amp;ct=image Distance to c-base]
** [[user:khertan | Benoît HERVIER]] - 168 Euros - 3 Nights and Breakfast
** [[user:fredp| fpp]] : me too :-) (friday night only)

* [http://www.marriott.com/hotels/travel/bermc-berlin-marriott-hotel/ Berlin Marriott Hotel] ([http://tinyurl.com/5aq8ur map])
** [[user:rsuplido | Reggie Suplido]] and [[user:rsperberg | Roger Sperberg]] sharing a room - (using wife's discount at 135 EUR/night for 5 nights -- divided by two = 67 EUR each/night, breakfast extra)

* [http://www.accorhotels.com/accorhotels/fichehotel/gb/mer/4988/fiche_hotel.shtml Mercure Hotel Berlin Mitte]  ( Out of single and double beds the night of the 20th it appeared prior to the 6th September -- might have been a cancellation though I got just now.)
** Jaffa
** Jamie Bennett (Baloo)
** [[user:Timsamoff | Tim Samoff]] ('''HOT DEAL!''' 4 nights at 99 EUR/night = 396.00 EUR)
** Simon Pickering (lardman) - 248 Euros (2 nights' stay); breakfast is 14 Euros per day (self funded).
** [[user:frethop | Mike Jipping]] -- Thanks, Tim!
** [[user:gnuite|John Costigan]]
** Gosia Ciesielska (18-20th)
** [[user:TonyPercy | Tony Percy]] 5 nights. Late booking due to flakey friend -- bed only, also saved on OSiM by getting accredited though.
** [[user:gcobb | Graham Cobb]]
** '''''[http://bleb.org/misc/mercure-mitte.pdf Combined Google Map &amp; Hotel Directions]'''''

Distance between Mercure and Ibis: [http://maps.google.ca/maps?f=d&amp;hl=en&amp;geocode=&amp;saddr=Prenzlauer+Allee+4,+berlin+(Ibis)&amp;daddr=Luckenwalder+Strasse+11,+10963+Berlin+(Mercure)&amp;sll=52.52231,13.482688&amp;sspn=0.178395,0.41954&amp;doflg=ptk&amp;ie=UTF8&amp;ll=52.516952,13.392677&amp;spn=0.044605,0.104885&amp;z=13 GMap] --[[User:qole|qole]] 01:18, 22 July 2008 (UTC)

* [http://www.accorhotels.com/accorhotels/fichehotel/gb/ibi/0357/fiche_hotel.shtml Hotel Ibis Berlin Mitte]
** [[user:andy80 | Andrea Grandi]] (This hotel is cheaper, only 299€ for 4 nights, than Mercure Hotel and more close to the c-base. Check the distance on [http://maps.google.co.uk/maps?f=d&amp;geocode=&amp;saddr=Prenzlauer+Allee+4,+10405+Berlin,+Germany+(Hotel+Ibis+Berlin+Mitte)&amp;daddr=Rungestra%C3%9Fe+20,+10179+Berlin,+Germany+(c-base+Raumstation)&amp;mra=cc&amp;dirflg=h&amp;doflg=ptk&amp;sll=52.521966,13.418341&amp;sspn=0.024859,0.075102&amp;ie=UTF8&amp;ll=52.521653,13.420057&amp;spn=0.024859,0.075102&amp;t=h&amp;z=14 Google Maps])
** [[user:barbieri | Gustavo Barbieri]] 5 nights is 375€
** Lucas Maneos (2 nights only)
** [[user:framstag|Tim Teulings]] 3 Nights (18. evening till 21. morning) for 233€ (plus breakfast)
** [[user:qole | Alan Bruce]] 5 nights (Tues to Sat)
** [[user:sjgadsby | Stephen Gadsby]] 5 nights for 375€
** [[user:mgedmin | Marius Gedminas]] 3 nights (18-21) for 233EUR (breakfast +28.5EUR extra)
** Jiri Benc (3 nights: 18-21)
** Daniel Gentleman (5 nights)
** [[user:brontide|Eric Warnke]] 17-21st
** Edward Hervey and Benjamin Otte 18-21 (268EUR for 3 nights and 2 people =&gt; 134EUR/person)
** [[user:lool | Loïc Minier]] 5 nights (16-21) for 375 €
** [[user:hhedberg | Henrik Hedberg]] (15-21)
** [[user:b0unc3 | Daniele Maio]] and [[user:skler | Mauro Foti]] 5 nights (16-21) for 440 €
** [[user:ntsourak | Nikos Tsourakis]] 5 nights (16-21) for 355 €
** [[user:hrw | Marcin Juszkiewicz]] 1 night (19/20)
** Desktop search hackfest participants will also be staying at Ibis Mitte (19 people from 18th to 22nd). [http://wiki.maemo.org/index.php?title=Desktop_Search_Hackfest]
** [[user:asys3 | Uwe Koch]] 1 night (19/20)

* [http://www.relexa-hotel.de/content/english/viewer/berlin_start_3.html Stuttgarter Hof]
** Quim Gil - 16-21st (I was looking for something different but this is the easiest/closest/affordable to book for Nokia employees due to company arrangements) 
** [[user:rrainist | Roope Rainisto]] 18-21st
** [[user:xfade | Niels Breet]] 16-21st
** [[user:marcell | Marcell Lengyel]] 16-21st

* [http://www.marriott.com/hotels/travel/bermt-courtyard-berlin-city-center/ Courtyard Berlin City Center]
** [[user:ensonic | Stefan Kost]] closer and cheaper than Stuttgarter Hof
** [[user:nakkebar | Eero Tamminen]]
** [[user:kad | Alexander Kanevskiy]]
** [[user:stezz | Stefano Mosconi]]
** [[user:erkki | Eric Le Roux]]

* [http://www.parkplaza.com/ppwa Park Plaza Wallstreet Berlin]
** [[user:kvalo | Kalle Valo]] - 18-21st 

* [http://www.singer109.com/ Singer109 Hostel, cheap but ok, shared rooms] [http://maps.google.com/maps?f=d&amp;saddr=Rungestra%C3%9Fe+20,+Mitte+10179+Berlin,+Berlin,+Berlin,+Germany&amp;daddr=Singerstr.+109,+10179+Berlin,+Germany+(Singer109+-+Backpacker+Hostel+Berlin)&amp;hl=en&amp;geocode=%3BFSVXIQMdl9rMACGZV5wAYaBLfQ&amp;mra=pe&amp;mrcr=0&amp;sll=52.635147,13.335342&amp;sspn=0.347124,0.617981&amp;ie=UTF8&amp;ll=52.514053,13.422997&amp;spn=0.010878,0.019312&amp;z=16 Very short! gmap route from c-base to the hostel]
** [[user:twaelti| Tom Wälti]] - 18-21st 
** [[user:darklajid| Benjamin Podszun]] - 18-20st

* [http://www.aohostels.com/en/berlin/hotel-mitte/ AO Mitte Hotel]
** [[User:jsmanrique|jsmanrique]] - 18-21st
** [[User:netblade|Oskari Kokko]] - 19-21st
** [[User:rambo|Eero af Heurlin]] - 19-21st

* Couchsurfers
** [[user:anidel | Aniello Del Sorbo]] 3 nights at [[user:jukey | Uwe Kaminski ]]'s place with my girlfriend (0€, unless Jukey asks for money :-p :-D)

== Find your bed ==
=== Host a Maemo contributor ===
Some people living in or near berlin (including me :)) could provide accommodation in their residences. I think I have space enough for two people...
An other idea would be something like: [http://www.couchsurfing.com/] --[[User:jukey|jukey]] 15:24, 19 June 2008 (UTC)
:Still space for two people ? me and my girlfriend ? We are couchsurfers and are also looking for hosts--[[User:anidel|anidel]] 07:14, 15 July 2008 (UTC)
:: Also looking for a place to crash just for Saturday, couch or floorspace all good.  -- [[User:horkana|horkana]] 12:59, 15 July 2008 (UTC)
:::Would be nice to welcome you, anidel, your girlfriend and horkana too. Please contact me by mail so we can go into details.--[[User:jukey|jukey]] 16:04, 17 July 2008 (UTC)

Stefan Constantinescu here, Nokia Employee and blogger at IntoMobile, looking to split a hotel room. Please email me at my personal account: devilsrejection[at]gmail[dot]com I am flying in on the 18th and leaving the 21st.

=== Cheap accommodation ===
The location of the summit is here: [http://maps.google.de/maps?f=q&amp;hl=de&amp;geocode=&amp;q=rungestra%C3%9Fe+20,+berlin&amp;sll=52.523451,13.323373&amp;sspn=0.007873,0.018797&amp;ie=UTF8&amp;z=16&amp;iwloc=addr] 

The closest hostel to the venue is [http://www.aohostels.com/en/berlin/hostel-mitte/ AO Hostel Mitte] (with shared rooms starting at 10€) and the [http://www.aohostels.com/en/berlin/hotel-mitte/ AO Hotel], which is a 2-star hotel sharing the same building and offering single and double rooms from 15€ and 28€. 
Check also the AO [http://www.aohostels.com/en/berlin/hostel-friedrichshain/ Hostel] and [http://www.aohostels.com/en/berlin/hotel-friedrichshain/ Hotel] Friedrichshain. It's 5km away but only 3 train stops.
A problem here is that they have dynamic prices à la Ryanair and the days of OSiM &amp; Summit seem to be quite booked already. Worth giving a try though, I checked a couple of rooms and were clean and decent. 860 beds in total!--[[User:qgil|qgil]] 20:44, 18 July 2008 (UTC)
Worth noting is that in AO internet access is 1EUR/20 minutes.[[User:bundyo|bundyo]] 20:44, 28 July 2008 (UTC)

Some colleagues gave me the following tips: 
::* [http://www.diefabrik.com/3-1-rates.html Die Fabrik] (from 18 EUR/person/night - 2,6 km away from the summit place) [http://maps.google.de/maps?f=d&amp;hl=de&amp;geocode=&amp;saddr=Schlesische+Stra%C3%9Fe+18&amp;daddr=rungestra%C3%9Fe+20,+berlin&amp;sll=52.512261,13.419842&amp;sspn=0.007875,0.018797&amp;ie=UTF8&amp;z=15 route from hostel to summit place]
::: Die Fabrik looks pretty cool, but when I Googled it (according to the address on the OSiM World website), I came up with different directions and route distance ([http://maps.google.com/maps?f=d&amp;hl=en&amp;geocode=&amp;saddr=Budapester+Str.+45+10787+Berlin&amp;daddr=Schlesische+Stra%C3%9Fe+18+10997+Berlin&amp;sll=52.498867,13.446113&amp;sspn=0.008726,0.018518&amp;ie=UTF8&amp;ll=52.501907,13.391647&amp;spn=0.069804,0.148144&amp;z=13 8.2 km]). --[[User:timsamoff|timsamoff]] 13:05, 17 July 2008 (UTC)
::: Die Fabrik doesn't have phones and TVs in the rooms, internet is not even mentioned.[[User:bundyo|bundyo]] 20:45, 28 July 2008 (UTC)
::* [http://www.hotelpensionberlin.de/hotel/preise.php?o=1357&amp;startdatum=2008-09-01&amp;p=1&amp;s=de BaxPax Hostel Kreutzberg] (from 12 EUR/person/night - 2,4 km away from the summit place) [http://maps.google.de/maps?f=d&amp;hl=de&amp;geocode=&amp;saddr=Skalitzer+Str.+104&amp;daddr=52.503187,13.421001+to:rungestra%C3%9Fe+20,+berlin&amp;mra=dpe&amp;mrcr=0&amp;mrsp=1&amp;sz=15&amp;via=1&amp;sll=52.50546,13.417139&amp;sspn=0.015752,0.037594&amp;ie=UTF8&amp;z=15 route from hostel to summit place]
::* [http://www.hostelxberger.com/index.php?show=preise&amp;lang=eng Hostel X-berger] (from 12 EUR/person/night - 2,8 km from the summit place) [http://maps.google.de/maps?f=d&amp;hl=de&amp;geocode=&amp;saddr=Schlesische+Stra%C3%9Fe+18&amp;daddr=rungestra%C3%9Fe+20,+berlin&amp;sll=52.512261,13.419842&amp;sspn=0.007875,0.018797&amp;ie=UTF8&amp;ll=52.505669,13.431301&amp;spn=0.015751,0.037594&amp;z=15 route hostel to summit place]. Free internet in X-berger.
::* [http://www.aohostels.com/en/berlin/apartment-mitte/apartment/rates/ Apartment for up to 4 persons] (from 79 EUR/appartment - 1km from the summit place) [http://maps.google.de/maps?f=d&amp;hl=de&amp;geocode=14407242129449315458,52.503158,13.420980&amp;saddr=K%C3%B6penicker+Str.+127-129&amp;daddr=rungestra%C3%9Fe+20,+berlin&amp;mra=pr&amp;mrcr=0&amp;sll=52.507811,13.418941&amp;sspn=0.015751,0.037594&amp;ie=UTF8&amp;z=15 route from hostel to summit place]
::* [http://www.singer109.com/ Singer109 Hostel, quite close (just across the river), with WiFi in Attic]

:::Other berlin-mitte locations are listet in [http://wikivoyage.org wikivoyage] ([http://translate.google.com/translate?u=http%3A%2F%2Fwww.wikivoyage.org%2Fde%2FBerlin%2FMitte%23Unterkunft&amp;hl=en&amp;ie=UTF8&amp;sl=de&amp;tl=en here translated via google translate])

:::::::::::::::::::::::--[[User:jukey|jukey]] 14:10, 3 July 2008 (UTC)

There is ''share rooms'' option in some hostels, what about managing 4-6 people coming from different locations to share a ''maemo-summit room''? --[[User:jsmanrique|jsmanrique]] 09:07, 7 Ago 2008 (UTC)

=== Affordable hotels ===
September is very high season in Berlin due to congresses, concerts, the Marathon... At least in the Mitte quarter many hotels of 3 and 4 stars are quite booked. Still, it depends a lot on the exact night you are staying. Be fast!

The closest hotel with rooms available (checked on July 18) is the [http://www.luisenhof.de Luisenhof]. Very nice one, old and stylish. If someone wants to share, there were double rooms at 109€ total breakfast included. No Internet, though (but c-base has free wifi and is just in a 2min walk).

People who may want something a bit classier than a hostel (presumably not sponsored by the Maemo Software Team) may be interested in this [http://www.berlin-landmarks.com/mitte_hotels.html list of hotels] which should be near the venue. For example, [http://www.accorhotels.com/frm_fiche_hotel.svlt?code_hotel=0357 Ibis Berlin Mitte] has rooms for about 74 EUR/night. --[[User:jaffa|Jaffa]] 20:11, 3 July 2008 (UTC)
:: Ibis Berlin Mitte is [http://maps.google.com/maps?f=d&amp;hl=en&amp;geocode=&amp;saddr=Budapester+Str.+45+10787+Berlin&amp;daddr=Prenzlauer+Allee+4+-+10405+-+BERLIN&amp;sll=52.529074,13.417822&amp;sspn=0.009059,0.018518&amp;ie=UTF8&amp;z=13 7.3 km] from the OSiM World venue. --[[User:timsamoff|timsamoff]] 13:22, 17 July 2008 (UTC)

Here is an Accor hotels search for [http://maps.maporama.com/idl/accor/drawsa.aspx?xml=common&amp;xsl=liste_hotel&amp;Lang=En&amp;MD_height=265&amp;MD_width=372&amp;_rawxml=1&amp;MD_scale=0.00013333&amp;SA_config=1&amp;SiteOrigine=ALL&amp;GC_address=Rungestra%C3%9Fe+20&amp;GC_city=Berlin&amp;GC_zip=&amp;GC_country=DE hotels near the c-base].  The cheapest one is [http://www.accorhotels.com/accorhotels/fichehotel/gb/etp/5058/fiche_hotel.shtml Etap Berlin Potsdamer Platz] at 65 EUR/night, [http://www.accorhotels.com/frm_fiche_hotel.svlt?code_hotel=0357 Ibis] is second at 75 EUR/nigh.  The prices are for the whole 5-day stay; if you stay for only 3 days, Ibis is more expensive per night (but the total is still under 375 EUR).

=== Pure luxury ===
If you really need it a hint could be [http://www.osimworld.com/newt/l/handsetsvision/osim08/venue.html Hotel Palace], the venue of OSiM World.

[[Category:Maemo Summit 2008]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2008/Exhibit</title>
    <id>1061</id>
    <revision>
      <id>29110</id>
      <timestamp>2010-02-11T16:32:40Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2008]]</comment>
      <text xml:space="preserve">Anyone want to be in charge on having a mini exhibit -- maybe for the OSiM Maemo booth as well as at the Maemo Summit? Someone can contact, coordinate, and round-up remarkable apps, hacks, and interfaces and help set them up so enthusiasts and guests can see and play with them. The objective here is to show what the Internet Tablet is capable of doing.

Here are some ideas: ( cleanup by [[User:brontide|Eric Warnke]] lets concentrate on community items )

I would like to see a handful of units out with a selection of [[Task:Remarkable_community_projects#Born_for_Maemo|&quot;Born for Maemo&quot;]] loaded on each as well as a number of non-conflicting [[Task:Remarkable_community_projects#Outstanding_utilities|Outstanding Utilities]].  Below are the items that I believe would be booth and OSiM friendly.  The nice thing about this list is that we can consume any number of units with this same software and rotate what's being demo'ed easily. [[User:brontide|brontide]] 14:34, 27 July 2008 (UTC)

* Canola2
* Carman
* Maemo Mapper
* Maeno WordPy
* WorldTV99
* Numpty Physics
* OMWeather
* Personal Menu
* Personal Launcher
* Advanced Backlight
* USB Control
* Rotation support
* Quiver
* Large Statusbar clock
* MPlayer / mediaserv / tablet-encode (the entire video playback pipeline) - rm_you volunteer
* Connecting a Hard Drive ([http://tabletschool.blogspot.com/2008/06/nokia-n800-n810-how-to-attach-hdd-aka.html link 1], [http://www.internettablettalk.com/forums/showthread.php?t=22187 link 2]) - volunteer [[User:bunanson|bunanson]] 19:50, 24 July 2008 (UTC)
* Running VNC
: Client or server?  I think I would want to load vnc server on many of the units to allow for us to &quot;demo&quot; on a monitor.  [[User:brontide|brontide]] 14:34, 27 July 2008 (UTC)
* A2DP? - Is this ready to be demo'ed at OSiM?
: Shouldn't be a problem with demo'ing either ARM or DSP version, might be worth bringing some 3.5mm speakers to plug into a headset so more than one person can head the output -[[User:lardman|lardman]] 13:36, 28 July 2008 (UTC+1)

Nice to show, if we have enough demo units:

* Running Android
: I know we can, but is there legal issues here if maemo.org does it? [[User:brontide|brontide]] 23:41, 25 July 2008 (UTC)
::I don't know. Why not asking them? Mike Jennings will come to OSiM, perhaps contacting in advance would a nice gesture. To avoid confusion, it should be clear that this is a move from maemo.org - the Maemo community and nothing Nokia official (this will be clear in the stand, if only by seeing a big maemo.org logo and many tablets with no-Maemo and non-Nokia 3rd party apps inside).--[[User:qgil|qgil]] 18:41, 26 July 2008 (UTC)
::: Sounds good.  I think one unit with Andriod would be great assuming we have enough units, but I would say it's low priority. [[User:brontide|brontide]] 14:34, 27 July 2008 (UTC)
* Running Garnet VM


Ideas that I don't think will work well: ( maybe at the summit )

* [http://www.redferret.net/?p=9533 Haptic Technology]
: I think we should keep it to things we will have access to [[User:brontide|brontide]] 23:41, 25 July 2008 (UTC)
* [http://symbianwebblog.wordpress.com/2008/05/08/puppy-robot-controlled-by-nokia-internet-tablet/ Puppy Robot]
:The puppies are getting a bit old... I can ask the developers if you really want them there, though.--[[User:qgil|qgil]] 18:41, 26 July 2008 (UTC)
::IMHO, the puppies are very important - robotics is always at the forefront of media attention.  Dont we just get some pics from Mars 2 months ago? I would strongly recommend to have the puppies presented.
::: If we get the coverage for the table ( still WAYYY short on hours ) I will ask, but honestly I'm not expecting Nokia will just hand over the research hardware for a community table.  If we don't get coverage it's a moot point.  [[User:brontide|brontide]] 16:32, 30 July 2008 (UTC)
::: Robots are cools and bring media attention, sure. This was one reason why I convinced the guys to go to GUADEC last year. I'm not sure we want to have media attention one year later about the same, Bora technology in the times of Fremantle.--[[User:qgil|qgil]] 19:56, 30 July 2008 (UTC)
* Running Debian, KDE
:While interesting to hackers, I don't know how much of a splash they would make at OSiM.  If we do a summit table then I think it would be great there. [[User:brontide|brontide]] 14:34, 27 July 2008 (UTC)
::If we have enough devices (I'm waiting for the exhibit to be confirmed to make an internal request) then why not. Tablets with full GNOME on Debian and Ubuntu, KDE, XFCE... are proofs of R&amp;D that can be done with open devices. You can't just do this with most of devices fitting in your pocket. They are also proofs of concept for platform improvements and applications that could be brought on top of Maemo on the same hardware.--[[User:qgil|qgil]] 20:28, 31 July 2008 (UTC)   


I'm more than willing to demonstrate things at both OSiM and the summit if the hardware can be organised (I have an n800 I can bring a long). -- [[User:baloo|baloo]] 19:50, 24 July 2008 (UTC)

I have my own laptop and N800 that can be used for the video pipeline demos, but it would be nice to show them on an N810 and not have to use my own hardware for demos if possible. -- [[User:rm_you|Adam Harwell]] 04:39, 26 July 2008 (PST)

== Signup ==

If this is to be a reality we have to have at least 24 hours of coverage ( guestimate ) 6hours x2 days x2 people.  Signup below and then we will talk about what is realistic in terms of Demo's/Units.

* [[User:brontide|Eric Warnke]] - 2 hours
* [[User:Timsamoff|Tim Samoff]] - 2 hours
* [[User:bunanson|bunanson]] - 4 hours ( Connect HD and WorldTV99 ) Summit ONLY, no OSiM
* [[User:qole|Alan Bruce]] - whatever you need (except during the Ari keynote and Maemo devsesh) :)
* [[User:rm_you|Adam Harwell]] - whatever you need
* [[User:wazd|Andrew Zhilin]] - 4 hours, OMWeather (with Vlad Vasiliev), Personal Software (on behalf of Andrew &quot;Personal&quot; Olmsted)
* [[User:baloo|Jamie Bennett]] - Flexible, let me know what is needed. Do we have a coordinator for the 2 days? If not I'm willing to organise people.
* [[User:tsorro|Teemu Sorvisto]] - Flexible schedule, general arrangements and normal stand duty when needed. I will bring 3 x N810s to OSiM World and Maemo Summit for demo purposes. In addition, I will bring a couple of maemo.org roll-up screens and posters for the demo booth. Please contact me if you have questions about general demo/stand arrangements.
* [[User:sjgadsby|Stephen Gadsby]] - as needed
* '''SIGNUP HERE, WE STILL NEED MANY MORE'''

I think I would request at least two of each, preferably three, N800 and N810, for a total of 4 (or 6) with ALL the accessories, USB cables, AC adapters etc.
: You are a volunteer.  If you are demo-ing these projects what hardware support do you need?  I will try and make one request to Nokia once we have enough coverage to make the booth possible [[User:brontide|brontide]] 02:26, 26 July 2008 (UTC)

=== Slot Schedule ===

Please fill your name in beside the slot(s) you are willing to man the booth.

{|  width=&quot;80%&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; bordercolor=&quot;#000000&quot;
| colspan=&quot;3&quot; | '''Wednesday''' 
|-
| width=&quot;20%&quot; | '''8am-10am''' 
| [[user:baloo|Jamie Bennett]]
| [[User:sjgadsby|Stephen Gadsby]]
|-
| width=&quot;20%&quot; |'''10am-11:45am''' 
| ''volunteer''
| ''volunteer''
|-
| colspan=&quot;3&quot; | '''Booth closed for Ari Jaaksi's keynote''' 
|-
| width=&quot;20%&quot; |'''12:30pm-2pm''' 
| [[User:sjgadsby|Stephen Gadsby]]
| [[User:rm_you|Adam Harwell]]  [[User:brontide|Eric Warnke]] (if needed)
|-
| width=&quot;20%&quot; |'''2pm-4pm''' 
| [[user:timsamoff|Tim Samoff]]
| [[user:qole|Alan Bruce]]
|-
| width=&quot;20%&quot; |'''4pm-6pm''' 
| ''volunteer''
| ''volunteer''
|-
|}


{|  width=&quot;80%&quot; border=&quot;1&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; bordercolor=&quot;#000000&quot;
|- 
| colspan=&quot;3&quot; | '''Thursday'''
|-
| width=&quot;20%&quot; | '''8am-10am''' 
| [[User:Thp|Thomas Perl]]
| [[User:sjgadsby|Stephen Gadsby]]
|-
| width=&quot;20%&quot; |'''10am-11:45am''' 
| [[user:brontide|Eric Warnke]]
| ''volunteer''
|-
| colspan=&quot;3&quot; | '''Booth closed for Nokia Dev Session''' 
|-
| width=&quot;20%&quot; |'''2:30pm-4:30pm''' 
| [[user:baloo|Jamie Bennett]]
| [[User:rm_you|Adam Harwell]]
|-
|}

I was waiting for others to sign up first as my schedule is extremely flexible and I was planning on helping fill the hard to fill spots, but now I'm wondering if everyone else is waiting for the same reason.    --[[User:rm_you|rm_you]] 17:23, 7 September 2008 (UTC)

Yeah me too :-) I will gladly fill in a few empty spots, put me where you want me! [[User:qole|qole]] 16:30, 9 September 2008 (UTC)

It [http://linuxuk.org/node/53#comment-76 appears] as though we should staff the booth more heavily following Ari's keynote. --[[User:sjgadsby|sjgadsby]] 13:23, 10 September 2008 (UTC)

Flexible schedule here as well. Will show up wednesday and coordinate then. [[User:simon|simon]] 00:22, 11 September 2008 (UTC)

== Showcased Apps ==

Without wanting to upset developers who think their app should be demonstrated at the show I have made a list of app's that I think would give the most 'WOW factor'. These are not necessarily the most useful or highly regarded. Please note that when talking to a newcomer to the platform, bling, extensibility and potential are the important things in a 5 minute conversation.

* Canola2
* Carman
* Maemo Mapper
* Maemo WordPy
* WorldTV99
* Numpty Physics
* Rotation support (Show off evince for Amazon kindle competition?)
* MPlayer / mediaserv / tablet-encode (the entire video playback pipeline) - rm_you volunteer
* Connecting a Hard Drive
* VNC with laptop
* Mplayer with Big Bug Bunny
* ScummVM - Everyone loves Sam and Max.

Other bling
* MCE Guru - How would we set up a back end? Is it ready for a demo?
* liqbase - again, is it ready?
* Maemo Puppy - It may be old but any robot on a stand _WILL_ draw attention much more than bling on any screen.

Lets not forget that if we can keep an attendee at the booth for 5mins+ then its a bonus so short, sharp WOW's are needed.

[[Category:Maemo Summit 2008]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2008/Organization</title>
    <id>2966</id>
    <revision>
      <id>22171</id>
      <timestamp>2009-11-08T21:39:14Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Maemo Summit 2008/Organization]] moved to [[Task:Maemo Summit 2008/Organization]]: This is a Task</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Maemo Summit 2008/Organization]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2008/Organization</title>
    <id>2966</id>
    <revision>
      <id>22171</id>
      <timestamp>2009-11-08T21:39:14Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Maemo Summit 2008/Organization]] moved to [[Task:Maemo Summit 2008/Organization]]: This is a Task</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Maemo Summit 2008/Organization]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2008/Organization</title>
    <id>2966</id>
    <revision>
      <id>22171</id>
      <timestamp>2009-11-08T21:39:14Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Maemo Summit 2008/Organization]] moved to [[Task:Maemo Summit 2008/Organization]]: This is a Task</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Maemo Summit 2008/Organization]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2008/Organization</title>
    <id>2966</id>
    <revision>
      <id>22171</id>
      <timestamp>2009-11-08T21:39:14Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Maemo Summit 2008/Organization]] moved to [[Task:Maemo Summit 2008/Organization]]: This is a Task</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Maemo Summit 2008/Organization]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2008/Organization</title>
    <id>2966</id>
    <revision>
      <id>22171</id>
      <timestamp>2009-11-08T21:39:14Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Maemo Summit 2008/Organization]] moved to [[Task:Maemo Summit 2008/Organization]]: This is a Task</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Maemo Summit 2008/Organization]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2008/Organization</title>
    <id>2966</id>
    <revision>
      <id>22171</id>
      <timestamp>2009-11-08T21:39:14Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Maemo Summit 2008/Organization]] moved to [[Task:Maemo Summit 2008/Organization]]: This is a Task</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Maemo Summit 2008/Organization]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2008/Organization</title>
    <id>2966</id>
    <revision>
      <id>22171</id>
      <timestamp>2009-11-08T21:39:14Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Maemo Summit 2008/Organization]] moved to [[Task:Maemo Summit 2008/Organization]]: This is a Task</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Maemo Summit 2008/Organization]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2008/Organization</title>
    <id>2966</id>
    <revision>
      <id>22171</id>
      <timestamp>2009-11-08T21:39:14Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Maemo Summit 2008/Organization]] moved to [[Task:Maemo Summit 2008/Organization]]: This is a Task</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Maemo Summit 2008/Organization]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2008/Participant Photos</title>
    <id>807</id>
    <revision>
      <id>45928</id>
      <timestamp>2011-12-05T12:14:25Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>removing my picture here as it's also on the maemo.org profile</comment>
      <text xml:space="preserve">== How do we know who we are? ==

'''Update: It has been suggested in the Talk section that we just update our maemo.org profiles with current photos. Please do what you can to comply and move your photos there.'''

: Aren't the photos on maemo.org so tiny as to be completely useless for face recognition? --[[User:mgedmin|mgedmin]] 16:39, 18 July 2008 (UTC)
:: Yes. And, view the Talk section. --[[User:timsamoff|timsamoff]] 16:44, 18 July 2008 (UTC)
::: I've tried to upload my own picture in the profile, but failed. Where the heck is the option ??--[[User:anidel|anidel]] 16:41, 22 July 2008 (UTC)
=== Manrique Lopez (jsmanrique) ===

{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Photo
! Description
|-
| [[Image:jsm-256.jpg | Manrique]]
| It is the first photo I've found with my new haircut, but usually I am not that serious.
|}

=== Tim Samoff ===

{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Photo
! Description
|-
| [[Image:Goofy_samoff.jpg | Tim Samoff]]
| Normally, I'd post a better photo, but honestly, I make a lot of goofy faces. So, look for this delightful face on the streets of Berlin.
|}

=== Andrea Grandi (aka Andy80) ===

{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Photo
! Description
|-
| [[Image:Andy80_avatar.jpg | Andrea Grandi]]
| I hope nobody scares looking at my pic ;)
|}

=== Aniello Del Sorbo (aka Anidel) ===

{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Photo
! Description
|-
| [[Image:Anidel_head.jpg | Aniello Del Sorbo]]
| That's me!
|}

=== Kamen Bundev (Bundyo) ===

{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Photo
! Description
|-
| [[image:bundyo.jpg | left | thumb | 200px|]]
| Me with my little Kalinka.
|}

=== Jamie Bennett (aka Baloo) ===

{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Photo
! Description
|-
| [[Image:Jamie_large.jpg | Jamie Bennett]]
| Me.
|}

=== Marcin 'Hrw' Juszkiewicz ===

[[Image:Hrw-photo.jpg | Marcin Juszkiewicz ]]

=== Nikos Tsourakis (aka ntsourak) ===

{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Photo
! Description
|-
| [[Image:Tsourakis.jpg | Nikos Tsourakis]]
| Me, myself and I!
|}

===Uwe 'jukey' Kaminski===

{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Photo
! Description
|-
|[[Image:Jukey08.jpg | Uwe Kaminski]]
|My cap, my glas, myself!
|}

[[Category:Maemo Summit 2008]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2008/Speakers</title>
    <id>1202</id>
    <revision>
      <id>29112</id>
      <timestamp>2010-02-11T16:33:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2008]]</comment>
      <text xml:space="preserve">Q&amp;A for Maemo Summit speakers. Add your question and an answer should pop up. Feel free improving the answers if you know more.

* How big is the room / how many people will it hold?
** The main room is really big and can hold the whole attendance. Main sessions and track sessions in the left side are held there. The other 2 rooms are medium size and can hold around 50 people each.
* Are there mics (what kind? Portable, stationary?, portable for audience questions)
** To be confirmed, but no mic planned for medium rooms and perhaps not for the big room either (will ask).
* Is there a podium
** Mmm... I think the big room had one, but not the medium.
* If we need a moderator can we get one?
** You run your session yourself. If you need a moderator pickm a friend.
* Is there a projector?
** Each room is equipped with projector, yes.
* Can we project n810/n800's?
** According to the plan, yes.
* Can we use powerpoint/equivs?
** PDFs are lovely for interoperability. If you want to be sure bring your laptop and have a USB stick at hand just in case.
* Is there wifi? Will it work? Will we need to tell everyone in the audience to stop using the network whlie we try to setup our presentation?
** WiFi is there and supposed to work with enough bandwidth, as long as everybody has anything better to do than downloading those movies.
* Will there be any time to set anything up?
** 5 minutes unless you agreed anything else with the previous speaker. You need time to setup your thing and people need time to move to/from other rooms.

[[Category:Maemo Summit 2008]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2008/Sponsorship</title>
    <id>683</id>
    <revision>
      <id>41493</id>
      <timestamp>2011-01-28T14:45:54Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>add links</comment>
      <text xml:space="preserve">Nokia offers a limited budget for sponsoring [[../Travel|travel]] and [[../Accommodation|accommodation]] of Very Interesting People in the Maemo community and related open source upstream projects. If you are doing a remarkable contribution to Maemo or upstream projects around and you are in non-profit mode you are invited to apply for sponsorship. 

==Requirements==

* First of all make sure you can make it to Berlin on September 17-20, OSiM World + Maemo Summit. Exceptions can be made but full attendance to 18-19 or 19-20 is the minimum required. This means you have passport and legal stuff in place + time availability confirmed. 
* Apply fast! We want to approve a first round of sponsorships by July 15. See how much budget is left after people has booked their trips. Go for a second and last round with the remaining budget, setting a hard deadline by the end of July.
* [https://maemo.org/profile/edit/ Edit] your [https://maemo.org/profile/ maemo.org profile] providing all the relevant information about you in the Maemo context. This will help us knowing/remembering who are you and what are you doing here.
* When registering, explain in your sponsorship request how can you contribute to the success of the Summit: run a session, get a responsibility in the organization, develop a demo to showcase... up to you. We just want to avoid sponsoring passive participants, no matter how much active they have been in the past. This sponsorship is not a prize for past contributions. 
* Once approved you have to make it. Cancelling accepted sponsorship requests is a real hassle, a waste of time and money. You understand this.  :)
* If your request is not approved you understand it's for a reason and you won't argue about it. We might even make potential mistakes, but not even in this case we will respond to an argument. You also understand this. :)

=== Bookings, payments, reimbursement... ===
Steps to be made by those getting a sponsorship request approved.

* Once approved you will get an email asking you to contact asap the travel agent arranged by Nokia, providing them the basic information: Full name (needs to be the same as in your profile), origin &amp; departure dates for outbund and return flights.
** If your trip can be cheaper than with carrier flight companies (Ryanair and the like as opposed to Lufthansa etc) or if you can travel easier/cheaper by train or bus, then it's better that you book your own tickets and Nokia will reimburse you. The travel agents can't operate with those &quot;cheap&quot; airlines. By taking this shortcut you will help getting more Maemo contributors covered by the sponsorship budget. Thanks!
*** Please note that apparently in this case you '''must not''' contact the travel agency mentioned in the Mail from Quim. For me they immediately tried to reserve a flight with an &quot;expensive&quot; airline, resulting in a double booking for me - I hope this will get resolved. (simon)
* We still need to sort out the accommodation. Nokia would be happy making a group reservation but we need a venue for that e.g. a hostel. Recommendations are welcome.
** If we can't make it for this group preservation then everybody will need to pay their own accommodation first, and then Nokia will reimburse you within 30 days after receiving your tickets. Still, cheap and decent hostels need to be found for a recommendation.
* '''Keep your travel and accommodation tickets!''' Otherwise Nokia won't be able to refund your expenses. Food and local transport is not covered by the sponsorship.

== Also: reasons not to get a sponsorship request accepted ==

These are the reasons why we are not accepting some sponsorship requests. We hope you understand.

* You show good intentions and interesting ideas, but this sponsorship program focuses on Maemo or OSS upstream developers with a clear involvement and on-topic contributions made.
* You are a professional developer earning your income in the Maemo platform or similar projects, and we want to concentrate our budget in developers with a non-profit approach to the Maemo platform or related upstream projects.
* Since you are really far away sponsoring you would cost a nice % of the budget available. We are inviting people from outside Europe but they are rock stars in the Maemo community or related upstream projects.

[[Category:Maemo Summit 2008]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2008/Travel</title>
    <id>796</id>
    <revision>
      <id>29114</id>
      <timestamp>2010-02-11T16:36:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2008]]</comment>
      <text xml:space="preserve">It is good to know when people are arriving and departing. You might want to coordinate with other participants. Also, the organization takes this list as a basis to request a group registration to http://www.osimworld.com - covered by Nokia.

Discuss your tips and offers at [[Talk:Maemo_Summit_2008/Travel]].

== Arrival ==

=== Sunday 14 ===
Arrive early to tour Berlin or prepare for the conference before the chaos of two separate conferences.

{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Time
! Name
! Place of arrival
! Means of transport
|-
| 12:30
| [[User:gnuite|John Costigan]]
| Berlin Tegel
| Flight UA 8974
|}

=== Monday 15 ===
Arrive one day before the conference.

{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Time
! Name
! Place of arrival
! Means of transport
|-
| 10:35
| [[User:hhedberg | Henrik Hedberg]]
| Berlin Tegel
| Flight AY911 from Helsinki, Finland
|}

=== Tuesday 16 ===
Recommended day for arrivals. Be in Berlin at this point or before if you want an invitation to OSiM World.

{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Time
! Name
! Place of arrival
! Means of transport
|-
| 08:05
| [[User:rm_you | Adam Harwell]]
| Berlin Tegel
| Continental Airlines CO096 from Newark, USA
|-
| 08:55
| [[User:ntsourak | Nikos Tsourakis]]
| Berlin Tegel
| Swiss - LX 974 from Zurich
|-
| 09:10
| [[User:TonyPercy | Tony Percy]]
| Berlin Schonefeld 
| Ryanair - 8542 from London Stansted
|-
| 09:30
| [[User:rsperberg | Roger Sperberg]]
| Berlin Tegel
| Lufthansa LH174 from Frankfurt a.M.
|-
| 9:40
| Mark Guim
| Berlin Tegel
| Flight DL 78 from JFK
|-
| 11:35
| Reggie Suplido ([[User:rsuplido|rsuplido]])
| Berlin Tegel
| Flight KL1823 from Amsterdam
|-
| 11:35
| Niels Breet ([[User:xfade|xfade]])
| Berlin Tegel
| Flight KL1823 from Amsterdam
|-
| 12:25
| Daniele Maio ([[User:b0unc3|b0unc3]]), Mauro Foti ([[User:skler|skler]])
| Berlin Tegel
| Alitalia AZ 420
|-
| 13:15
| Thomas Perl ([[User:thp|thp]])
| Berlin Tegel
| Flight AB8269 from Vienna
|-
| 14:25
| Florian Boor ([[User:florian|florian]])
| Berlin Tegel
| Flight LH180 from Frankfurt/Main
|-
| 14:25
| Eduardo Lima ([[User:etrunko|Etrunko]]) | Marcelo Oliveira ([[User:handful|Handful]]) | Glaubert | Aloisio
| Berlin Tegel
| Flight TP7700 from Frankfurt
|-
| 15:40
| Stephen Gadsby ([[User:sjgadsby|sjgadsby]]), Alan Bruce ([[User:qole|qole]])
| Berlin Tegel
| Flight BA984 from London
|-
| 15:45
| Quim Gil ([[User:qgil|qgil]])
| Berlin Tegel
| Flight Air Berlin 8309 from Helsinki
|-
| 15:45
| Peter Schneider ([[User:peterschneider|peterschneider]])
| Berlin Tegel
| Flight Air Berlin 8309 from Helsinki
|-
| 15:45
| Marcell Lengyel ([[User:marcell|marcell]])
| Berlin Tegel
| Flight Air Berlin 8309 from Helsinki
|-
| 15:45
| Juha Tukkinen ([[User:jtukkine|jtukkine]])
| Berlin Tegel
| Flight Air Berlin 8309 from Helsinki
|-
| 18:35
| Simon Budig ([[User:simon|simon]])
| Berlin Schönefeld
| Flight Germanwings 4U 0016 from Köln/Bonn
|-
| 18:45
| Alberto Garcia ([[User:agarcia | agarcia]])
| Berlin Tegel
| IB3548
|-
| 18:55
| Daniel Gentleman ([[User:thoughtfix|thoughtfix]])
| Berlin Tegel
| British Airways 0986 from London/Heathrow
|-
| 20:10
| Andrew Flegg ([[User:jaffa|Jaffa]])
| Berlin Hbf
| Train ICE943 from Essen
|-
| 20:40
| Loïc Minier ([[User:lool]])
| Berlin Tegel
| Air France AF2534
|-
| 20:50
| Jamie Bennett ([[User:baloo|Baloo]])
| Berlin Schoenefeld
| Flight EasyJet 6237 from Bristol
|-
| 22:00
| Dave Neary ([[User:dneary]])
| Berlin Tegel
| Lufthansa LH 234
|}

=== Wednesday 17 ===
OSiM Day 1
{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Time
! Name
! Place of arrival
! Means of transport
|-
| 09:10
| [[User:Timsamoff | Tim Samoff]]
| Berlin Tegel
| Lufthansa LH248 from Dusseldorf
|-
| 09:40
| [[User:Brontide | Eric Warnke]]
| Berlin Tegel
| Delta Air Lines DL078 from JFK
|}

=== Thursday 18 ===
OSiM Day 2
{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Time
! Name
! Place of arrival
! Means of transport
|-
| 8:05
| [[User:bunanson|bunanson]]
| Berlin Tegel
| Wilson, North Carolina, USA
|-
| 9:30
| Benoît HERVIER ([[User:khertan|khertan]])
| Berlin Tegel
| Flight AF 1434 From France
|-
| 9:30
| Mike Jipping ([[User:frethop|frethop]])
| Berlin Tegel
| Holland, Michigan, USA
|-
| 14:05
| Marius Gedminas ([[User:mgedmin|mgedmin]])
| Berlin Tegel
| Flight BT 0217 From Riga
|-
| 14:25
| Kamen Bundev ([[User:bundyo|bundyo]])
| Dortmund
| Flight W6 635 from Sofia
|-
| 15:45
| [[User:nakkebar|Eero Tamminen]]
| Berlin Tegel
| Flight AB 8309 from Helsinki
|-
| 15:45
| Juha Kallioinen ([[User:kaltsi|kaltsi]])
| Berlin Tegel
| Flight AB 8309 from Helsinki
|-
| 15:45
| Stefano Mosconi ([[User:stezz|stezz]])
| Berlin Tegel
| Flight AB 8309 from Helsinki
|-
| 16:30
| Andrea Grandi ([[User:andy80|andy80]])
| Berlin Schoenefeld
| Flight EasyJet 4580 From Pisa
|-
| 17:13
| [[User:jbenc|Jiri Benc]]
| Berlin Hbf
| Train EC 174
|-
| 18:25
| [[User:kvalo|Kalle Valo]]
| Berlin Tegel
| Flight AY 917 from Helsinki
|-
|-
| 18:25
| [[User:erkki|Eric Le Roux]]
| Berlin Tegel
| Flight AY 917 from Helsinki
|-
|-
| 18:25
| [[User:kh_naba|Naba Kumar]]
| Berlin Tegel
| Flight AY 917 from Helsinki
|-
|-
| 18:25
| [[User:mzabaluev|Mikhail Zabaluev]]
| Berlin Tegel
| Flight AY 917 from Helsinki
|-
|-
| 18:25
| [[User:leoz|Leonid Zolotarev]]
| Berlin Tegel
| Flight AY 917 from Helsinki
|-
| 19:00
| [[User:anidel|Aniello Del Sorbo]]
| Berlin Schoenefeld
| Flight EasyJet 4574 From Naples
|-
| 20:30
| [[User:twaelti|Tom Waelti]]
| Berlin Tegel
| Flight AB8121 from Zurich
|-
| 20:50
| Simon Pickering ([[User:lardman|lardman]])
| Berlin Schoenefeld
| Flight Easyjet 6237 From Bristol
|-
| 20:50
| [[User:gcobb|Graham Cobb]]
| Berlin Tegel
| Flight BA 988 from London Heathrow
|-
| 21:30
| Lucas Maneos
| Berlin Schoenefeld
| Flight FR8546 from London Stansted
|-
| 21:27
| Krischan Keitsch
| Berlin Hbf
| Train ICE 1090
|-
| 22:30
| [[User:jsmanrique|jsmanrique]]
| Berlin Tegel
| Flight IB3546 from Madrid
|-
| 23:08
| [[User:Framstag|Tim Teulings]]
| Berlin Hbf
| Train from Bonn (using ICE from Köln)
|-
| Afternoon
| [[User:andre|Andre Klapper (andre)]]
| Berlin Hbf
| Some train from Prague

|}

=== Friday 19 ===
Maemo Summit Day 1 - Hopefully everybody is having breakfast in Berlin.

{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Time
! Name
! Place of arrival
! Means of transport
|-
| 9:00
| [[User:hrw|Marcin Juszkiewicz]]
| Berlin Tegel
| Berlinia bus from Szczecin
|}

== Departure ==

=== Friday 19 ===
Maemo Summit Day 1 - Don't leave! There will be a night party.

=== Saturday 20 ===
Maemo Summit Day 2 - Sure? Still many sessions ongoing.

{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Time
! Name
! Place of departue
! Means of transport
|-
| 16:38
| Andrew Flegg ([[User:jaffa|Jaffa]])
| Berlin Hbf
| Train IC140 to Apeldoorn
|-
| 19:00 
| [[User:dneary|Dave Neary]]
| Berlin Tegel
| Lufthansa LH 195 to Frankfurt
|-
| 19:45 
| [[User:gcobb|Graham Cobb]]
| Berlin Tegel
| Flight BA 987 to London Heathrow
|-
| 19:45 
| [[User:hrw|Marcin Juszkiewicz]]
| Berlin Tegel
| Berlinia bus to Szczecin
|-
| 21:15 
| Simon Pickering ([[User:lardman|lardman]])
| Berlin Schoenefeld
| Flight Easyjet 6238 to Bristol
|-
| 21:55
| Lucas Maneos
| Berlin Schoenefeld
| Flight FR8547 to London Stansted
|-
| 21:55
| [[User:anidel|Aniello Del Sorbo]]
| Berlin Schoenefeld
| Flight FR8547 to London Stansted
|}

=== Sunday 21 ===
Recommended day for departures.
{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Time
! Name
! Place of departure
! Means of transport
|-
| 06:00
| Mike Jipping ([[User:frethop|frethop]])
| Berlin Tegel
| KLM 1818 to Amsterdam
|-
| 06:10
| Thomas Perl ([[User:thp|thp]])
| Berlin Tegel
| Flight AB8358 to Vienna
|-
| 07:20
| Stephen Gadsby ([[User:sjgadsby|sjgadsby]])
| Berlin Tegel
| Flight BA981 to London
|-
| 07:35
| Alberto Garcia ([[User:agarcia|agarcia]])
| Berlin Tegel
| IB3549
|-
| 07:35
| [[User:jsmanrique|jsmanrique]]
| Berlin Tegel
| Flight IB3549 to Madrid
|-
| 08:15
| Marius Gedminas ([[User:mgedmin|mgedmin]])
| Berlin Tegel
| Flight BT 0216 to Vilnius
|-
| 08:30
| Benoît HERVIER ([[User:khertan|khertan]])
| Berlin Tegel
| Flight AF 1435 to Paris
|-
| 09:35
| [[User:rm_you | Adam Harwell]]
| Berlin Tegel
| Continental Airlines CO097 to Newark, USA
|-
| 09:48
| [[User:Framstag|Tim Teulings]]
| Berlin Hbf
| back to Bonn (ICE to Köln)
|-
| 09:55
| Loïc Minier ([[User:lool]])
| Berlin Tegel
| Air France AF1435
|-
| 10:15
| [[User:TonyPercy | Tony Percy]]
| Berlin Schonefeld
| Ryanair 8543 to London Stansted 
|-
| 10:20
| [[User:xfade | Niels Breet]]
| Berlin Tegel
| KLM KL1822 to Amsterdam
|-
| 10:25
| [[User:Timsamoff | Tim Samoff]]
| Berlin Tegel
| Lufthansa LH181 to Frankfurt
|-
| 10:46
| [[User:jbenc|Jiri Benc]]
| Berlin Hbf
| Train EC 175
|-
| 11:25
| [[User:brontide|Eric Warnke]]
| Berlin Tegel
| Delta Air Lines DL079 to JFK
|-
| 11:25
| [[User:thenokiablog|Mark Guim]]
| Berlin Tegel
| Delta Air Lines DL 79 to JFK
|-
| 12:05
| [[User:qgil | Quim Gil]]
| Berlin Tegel
| Air Berlin 8308 to Helsinki
|-
| 12:05
| [[User:marcell | Marcell Lengyel]]
| Berlin Tegel
| Air Berlin 8308 to Helsinki
|-
| 12:05
| [[User:nakkebar | Eero Tamminen]]
| Berlin Tegel
| Air Berlin 8308 to Helsinki
|-
| 12:05
| [[User:jtukkine | Juha Tukkinen]]
| Berlin Tegel
| Air Berlin 8308 to Helsinki
|-
| 12:05
| [[User:kaltsi | Juha Kallioinen]]
| Berlin Tegel
| Air Berlin 8308 to Helsinki
|-
| 12:05
| [[User:kvalo | Kalle Valo]]
| Berlin Tegel
| Air Berlin 8308 to Helsinki
|-
| 12:05
| [[User:stezz | Stefano Mosconi]]
| Berlin Tegel
| Air Berlin 8308 to Helsinki
|-
| 12:20
| [[User:thoughtfix | Daniel Gentleman]]
| Berlin Tegel
| British Airways 0983 to London
|-
| 13:05
| [[User:rsperberg | Roger Sperberg]]
| Berlin Tegel
| Lufthansa LH223 to Munich
|-
| 13:15
| [[User:b0unc3 | Daniele Maio]], [[User:skler | Mauro Foti ]]
| Berlin Tegel
| Alitalia AZ 421
|-
| 14:35
| Alan Bruce([[User:qole|qole]])
| Berlin Tegel
| Flight BA993 to London
|-
| 15:15
| [[User:gnuite|John Costigan]]
| Berlin Tegel
| Flight UA 8991
|-
| 15:30
| [[User:simon|Simon Budig]]
| Berlin Schönefeld
| Flight Germanwings 4U 0017 to Köln/Bonn
|-
| 18:10
| [[User:ntsourak|Nikos Tsourakis]]
| Berlin Tegel
| Swiss - LX 3655 to Zurich
|-
| 19:10
| [[User:hhedberg|Henrik Hedberg]]
| Berlin Tegel
| Flight AY918 to Helsinki, Finland
|-
| 19:10
| [[User:erkki|Eric Le Roux]]
| Berlin Tegel
| Flight AY918 to Helsinki, Finland
|-
| 19:10
| [[User:kh_naba|Naba Kumar]]
| Berlin Tegel
| Flight AY918 to Helsinki, Finland
|-
| 19:10
| [[User:mzabaluev|Mikhail Zabaluev]]
| Berlin Tegel
| Flight AY918 to Helsinki, Finland
|-
| 19:10
| [[User:leoz|Leonid Zolotarev]]
| Berlin Tegel
| Flight AY918 to Helsinki, Finland
|-
| 21:25
| Eduardo Lima ([[User:etrunko|Etrunko]])
| Berlin Tegel
| Flight LH199 to Frankfurt
|-
| 21:30
| Jamie Bennett ([[User:baloo|Baloo]])
| Berlin Schoenefeld
| Flight EasyJet 6238 to Bristol
|}

=== Monday 22 ===
Just in case.

{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Time
! Name
! Place of departue
! Means of transport
|-
| 09:35
| [[User:bunanson|bunanson]]
| Berlin Tegel
| Wilson, North Carolina, USA
|-
| 12:10
| Andrea Grandi ([[User:andy80|andy80]])
| Berlin Schoenefeld
| Flight EasyJet 4579 to Pisa
|-
| 12:25
| Reggie Suplido ([[User:rsuplido|Reggie]])
| Berlin Tegel
| Flight KL1824 to Amsterdam
|}

=== Tuesday 23 ===

{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Time
! Name
! Place of departue
! Means of transport
|-
| 14:50
| Kamen Bundev ([[User:bundyo|bundyo]])
| Dortmund
| Flight W6 636 to Sofia
|}

[[Category:Maemo Summit 2008]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2008 recordings</title>
    <id>789</id>
    <revision>
      <id>35147</id>
      <timestamp>2010-05-31T11:18:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>dead link</comment>
      <text xml:space="preserve">Recordings of talks at the [[Maemo Summit 2008]] should be collected at http://maemosummit.ext.c-base.org (dead link, May 2010)

[[Category:Maemo Summit 2008]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009</title>
    <id>1856</id>
    <revision>
      <id>46056</id>
      <timestamp>2011-12-16T17:50:03Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Undo revision 46055 by [[Special:Contributions/114.79.29.89|114.79.29.89]] ([[User talk:114.79.29.89|Talk]])</comment>
      <text xml:space="preserve">'''October 9-10-11, 2009- [http://www.westergasfabriek.nl/english/engels_welcome.php WesterGasFabriek] - Amsterdam'''

[[Image:Realiteits-beeldmerk-Cyaan.png|400px|alt=WesterGasFabriek logo]]
[[Image:Westergas.png‎]]

== Conference archive ==
Videos, slides and other materials related to the sessions. Feel free to update your own.

=== Thursday, October 8 ===

17:00 - 19:00 Registration at the Community Room (Zuiveringshal Oost). '''Early registrations encouraged to avoid queues and stress on Friday morning!'''

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;source=s_q&amp;hl=en&amp;geocode=&amp;q=Kolksteeg+3+1012+PT+Amsterdam&amp;sll=52.377171,4.897242&amp;sspn=0.005803,0.016512&amp;ie=UTF8&amp;hq=&amp;hnear=Kolksteeg+3,+1012+Amsterdam,+North+Holland&amp;t=h&amp;z=16 Map]).

=== [[/Schedule/Day 1 | Friday, October 9]] ===

9:00    Registration at the Community Room (Zuiveringshal Oost). '''Come early: you won't get to the conference without your badge.'''

10:00   '''Programme starts at N900 (Transformatorhuis)'''

10:00    '''Welcome - Opening of Summit ''' by [http://maemo.org/profile/view/peterschneider.html Peter Schneider], Head of Maemo Marketing @ Nokia

10:15     '''[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)]

11:00    '''[[Maemo Summit 2009/Schedule/Day 1#Changing PC .26 Mobile Landscape.3B Why Linux will play a Critical Role|Changing PC &amp; Mobile Landscape; Why Linux will play a Critical Role]]'''  by Jim Zemlin, Executive Director @ Linux Foundation

11:30  '''Break'''

11:45    '''[[Maemo Summit 2009/Schedule/Day 1#Nokia Nseries Devices on Maemo|Nokia Nseries Devices on Maemo]]''' by Jose-Luis Martinez Merino, VP, Marketing @ Nokia [http://www.slideshare.net/peterschneider/nokia-nseries-and-maemo-6 (slides)]

12:15    '''[[Maemo Summit 2009/Schedule/Day 1#Harmattan Highlights - Developer Opportunities|Harmattan Highlights - Developer Opportunities]]''' 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)]

13:00  '''Lunch - Maemo Expo opens'''

14:15  '''[[Maemo Summit 2009/Schedule/Day 1#Why the Maemo Community matters to Nokia|Why the Maemo Community matters to Nokia]]''' - Alan &quot;[http://maemo.org/profile/view/qole/ qole]&quot; Bruce of [[Community Council|Maemo Community Council]] interviewing Ari Jaaksi, VP - Maemo Devices @ Nokia

15:00      '''Expert streams'''

{| class=&quot;wikitable&quot; border=&quot;2&quot;
|-
! Time
! N900 - ''chair: John Loughney''
! N810 - ''chair: Anthony Fabbricino''
! N800 - ''chair: Quim Gil'' 
|-

|- 
| 15:00 - 15:25 
| rowspan=&quot;2&quot; | '''[[Maemo Summit 2009/Schedule/Day 1#UX panel|UX Panel]]''' 
''Moderated by: [http://maemo.org/profile/view/timsamoff Tim Samoff], Maemo Council,''
''with Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5''
| '''UI design of Maemo 5 apps'''
''Annu-Maaria Nivala, UX team, Digia'' [http://www.slideshare.net/annumaaria/ui-design-of-maemo-5-apps-digia (slides)]
| '''[[Maemo Summit 2009/Schedule/Day 1#Cross-platform with Qt - live|Cross-platform with Qt - live]]'''
''Ariya Hidayat, Software Engineer, Nokia''
|-
| 15:30 - 15:55 
| '''[[Maemo Summit 2009/Schedule/Day 1#Developing widgets on Maemo 5 - showcase Foreca Weather|Developing widgets on Maemo 5 - showcase Foreca Weather]]'''
''Juha Järvi, Software Designer, Foreca''
| '''[[Maemo Summit 2009/Schedule/Day 1#Mer - how the community innovates|Mer - how the community innovates]]'''
''Carsten Munk, Lead Developer, Mer project'' [http://www.slideshare.net/carstenmunk/mer-how-the-community-innovates (slides)]
|-
| 16.00 - 16.25 
| '''[[Maemo Summit 2009/Schedule/Day 1#Firefox on Maemo|Firefox on Maemo]]'''
''Stuart Parmenter, Director of Engineering, Mozilla''

| '''Developing apps with Qt for Maemo5'''
''Kate Alhola, Forum Nokia, Chief Guru on Maemo
| | '''[[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]]'''
''Ameet Suri, Texas Instruments''
|-
| 16.30 - 16.55
| '''[[Maemo Summit 2009/Schedule/Day 1#Present and future of Maemo digital marketing|Present and future of Maemo digital marketing]]'''
''Isko Salminen, Production Manager, Activeark &amp; Jussi Mäkinen, Maemo Marketing, Nokia''' [http://www.slideshare.net/isko/present-and-future-of-maemo-digital-marketing (slides)]
| '''Developing apps with Qt on Harmattan'''
''Ville Lavonius, Product Manager Developer Offering, Nokia'' [http://www.slideshare.net/lavonardo/qt-application-development-on-harmattan (slides)]
| '''Feedservice and plug-ins development in Maemo 5'''
''Mikko Levonmaa, Ixonos''
|-
| 17.00 - 17.25 
| '''[[Maemo Summit 2009/Schedule/Day 1#Biz apps on Maemo|Biz apps on Maemo]]'''
''Kari Pikkarainen, Product Manager Productivity, Nokia''
| '''Developing apps with Nokia Web Runtime'''
''Santtu Ahonen, Head of Developer Offering, Nokia'' [http://www.slideshare.net/santtuahonen/developing-apps-on-maemo-with-nokia-web-runtime (slides)]
| '''[http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Harmattan Architecture Overview]'''
''Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia'' [http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview (slides)]
|-
| 17.30 - 18.00 
| '''[[Maemo Summit 2009/Schedule/Day 1#Skype on Maemo|Skype on Maemo]]'''
''Mark Douglas, Mobile Product Manager, Skype''
| '''[[Maemo Summit 2009/Schedule/Day 1#Developer Support for Maemo by Forum Nokia|Developer Support for Maemo by Forum Nokia]]'''
''Matt Collins, Director, Forum Nokia Marketing'' [http://www.slideshare.net/matcolli/maemo-summit-fndc-story-final (slides)]
| '''[[Maemo Summit 2009/Schedule/Day 1#Porting an OpenGL game to GL ES|Porting an OpenGL game to GL ES]]'''
''Oliver Mcfadden, Software Engineer, Nokia'' [http://www.slideshare.net/omcfadde/maemo-summit-quake3 (slides)]
|-
|}

20:00    '''Maemo Party in FlexBar''' DJ's [http://valeriecherie.blogspot.com/2008/02/from-britain-with-love.html Russ Chimes] &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's]. coordinated by Jussi Mäkinen. It's a public bar and the doors are open to anybody. Our ''program'' 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't forget the Saturday schedule, though.  :)

=== [[/Day 2 | Saturday, October 10]] ===

{| class=&quot;wikitable&quot; border=&quot;2&quot;
|-
! Time
! N900
! N810
! N800
! 770
|-
| align=&quot;right&quot; | 9.00  
| colspan=&quot;4&quot; align=&quot;center&quot; | Doors Open
|- 
| 10.00 - 10.15 
| colspan=&quot;4&quot; align=&quot;center&quot; | '''Welcome to Community days'''&lt;br/&gt;''Maemo Community Council''&lt;br/&gt;([http://www.youtube.com/watch?v=6Mm-OS__8V0 Video])
|- 
| 10.15 - 10:45 
| colspan=&quot;4&quot; align=&quot;center&quot; | '''Keynote: Ton Roosendaal, the Blender Foundation'''
|- 
| 10.45 - 11:00
| colspan=&quot;4&quot; align=&quot;center&quot; | Coffee-break
|- 
| 11.00 - 11.25 
| [[/Day 2#Designing_UI_for_Maemo_5 | '''Designing UI for Maemo 5''']]&lt;br /&gt;
''Mox Soini''&lt;br /&gt;([http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Slides])
| [[/Day 2#PyQt_application_development_on_Maemo | '''PyQt application development on Maemo''']]&lt;br /&gt;
''Attila Csipa''&lt;br /&gt;([http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides], [http://web.atombiztos.hu/pyqt_on_maemo.zip .odp with demo videos])
|rowspan=&quot;2&quot; | [[/Day 2#Getting_started_session | '''Getting started session''']]&lt;br /&gt;''Daniel Wilms and others''
| ------
|-
| 11.30 - 11.55 
| [[/Day 2#Personalizing_your_Maemo_5_device | '''Personalizing your Maemo 5 device''']]&lt;br/&gt;''Hartti Suomela'' ([http://www.slideshare.net/hartti/n900-personalization Slides])
| [[/Day 2#Canola_application_and_framework_for_rich_GUI | '''Canola application and framework for rich GUI''']]&lt;br/&gt;
''Gustavo Sverzut Barbieri''
| ------
|-
| 12.00 - 12.25 
| [[/Day 2#Modest.2C_email_client_for_Fremantle | '''Modest, email client for Fremantle''']] &lt;br/&gt;
''Sergio Villar, Jose Dapena''
| [[/Day_2#Introducing_the_Harmattan_UI_framework | '''Introducing the Harmattan UI framework''']]&lt;br/&gt;
''Tomas Junnonen''
| [[/Day 2#Maemomm:_Maemo_with_C.2B.2B_and_a_Gtkmm_flavour | '''Maemomm: Maemo with C++ and a Gtkmm flavour''']]&lt;br/&gt;
''David King''
| rowspan=&quot;2&quot; | [[/Day 2#Extras.2Fautobuilder.2Finterfaces_round-table | '''Extras/autobuilder/interfaces round-table''']]
|-
| 12.30 - 12.55 
| [[/Day_2#Maemo_Co-creation | '''Maemo Co-Creation Showcase''']]&lt;br /&gt;
''Jussi Mäkinen''
| [[/Day 2#Creating_packages_for_the_Maemo_platform | '''Creating packages for the Maemo platform''']] &lt;br/&gt;
''Jeremiah Foster'' &lt;br/&gt;
[http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform (slides)]
| [[/Day 2#Developments_in_The_Qt_WebKit_Integration | '''Developments in The Qt WebKit Integration''']] &lt;br/&gt;
''Kenneth Rohde Christiansen''
|-
| 13.00 - 14.30 
| colspan=&quot;4&quot; align=&quot;center&quot; | Lunch
|-
| 14.30 - 15.25
| colspan=&quot;4&quot; | '''[[/Lightning talks | Lightning talks]]''', 5 min each 
# [[/Lightning talks#Giving_Great_Presentations | '''Giving Great Presentations''']] - ''Dave Neary''
# [[/Lightning talks#Feedhandler_-_Integrating_RSS_newsreaders_with_the_browser | '''Feedhandler - Integrating RSS newsreaders with the browser''']] - ''Thomas Perl''
# [[/Lightning talks#python-mafw:_MAFW_framework_for_Python_developers | '''python-mafw: MAFW framework for Python developers''']] - ''Andrea Grandi'' - [http://www.slideshare.net/andy80/pythonmafw-intoduction-at-maemo-summit-2009 (Slides)]
# [[/Lightning talks#DVCS.3F_git.3F_-_How_does_that_work_then.3F | '''DVCS? git? - How does that work then?''']] - ''David Greaves'' - [http://www.slideshare.net/mrlbt/git-how-does-that-work-then (Slides)]
# [[/Lightning_talks#BlueMaemo_-_Bluetooth_HID_mouse_.26_keyboard_for_Maemo | '''BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo''']] - ''Valério Valério'' [http://www.slideshare.net/VDVsx/bluemaemo-bluetooth-hid-mouse-keyboard-for-maemo (Slides)]
# [[/Lightning_talks#Continous_Integration_with_CruiseControl_and_Scratchbox | '''Continous Integration with CruiseControl and Scratchbox''']] - ''Jani Mikkonen'' [http://www.slideshare.net/rasjani/continuous-integration-with-scratchbox-and-cruisecontrol (Slides)]
# [[/Lightning_talks#Conboy.2C_Tomboy_and_Snowy | '''Conboy, Tomboy and Snowy''']] - ''Cornelius Hald''
# [[/Lightning_talks#Ogg_support_status | '''Ogg support status''']] - ''Tuomas Kulve''
# [[/Lightning_talks#Maemo_Platform_Security | '''Maemo Platform Security''']] - ''Elena Reshetova''
|-
| 15:25 - 15:45
| colspan=&quot;4&quot; align=&quot;center&quot; | Break
|-
| 15.45 - 16.10 
| [[/Day 2#GUPnP_and_Rygel:_The_UPnP.2FDLNA_solution_for_Maemo | '''GUPnP and Rygel: The UPnP/DLNA solution for Maemo''']]&lt;br/&gt;
''Zeeshan Ali'' [http://github.com/zeenix/rygel-presentation-2009/raw/maemo-summit/slides.odp (slides)]
| [[/Day 2#Adapting_GNOME_applications_to_Maemo_Fremantle | '''Adapting GNOME applications to Maemo Fremantle''']]&lt;br/&gt;
''Joaquim Rocha'' [http://www.slideshare.net/j_rocha/adapting-gnome-applications-to-maemo-fremantle (slides)]
| [[/Day 2#Contributing_with_Git_.26_Gitorious | '''Contributing with Git &amp; Gitorious''']]&lt;br/&gt;Johan Sørensen
| [[/Day_2#High-resolution_image_processing_on_Maemo_devices | '''High-resolution image processing on Maemo devices''']]&lt;br/&gt;
''Alexander Bokovoy''
|-
| 16.15 - 16.40 
| [[/Day 2#Mer:_A_year_after| '''Mer: A year after''']]&lt;br/&gt;
''Carsten Valdemar Munk'' [http://www.slideshare.net/carstenmunk/mer-a-year-after (slides)]
| [[/Day_2#Intelligent_Usage_of_Fremantle_Location_Framework_For_Location-aware_Applications | '''Intelligent Usage of Fremantle Location Framework For Location-aware Applications''']]&lt;br/&gt;
''Quanyi Sun''
| [[/Day 2#Hildon_toolkit_for_Fremantle | '''Hildon toolkit for Fremantle''']]&lt;br/&gt;
''Alberto Garcia, Claudio Saavedra''
| rowspan=&quot;2&quot; | [[/Day_2#Git_hands-on_workshop | '''Git hands-on workshop''']]&lt;br/&gt;
''David Greaves''
|-
| 16.45 - 17.10 
| [[/Day 2#maemo.org_Bug_Management | '''maemo.org Bug Management''']]&lt;br/&gt;
''Andre Klapper'' [http://home.arcor.de/ak-47/en/linux/maemosummit2009.pdf (slides)]
| [[/Day 2#Go-to_market_opportunities_for_mobile_application_developers | '''Go-to market opportunities for mobile application developers''']]&lt;br/&gt;
''Boaz Zilberman''
| [[/Day_2#Tracker:_Dial_M_for_Metadata | '''Tracker: Dial M for Metadata''']]&lt;br/&gt;
''Ivan Frade, Iridian Kiiskinen''
|-
| 17.10 - 17.30 
| colspan=&quot;4&quot; align=&quot;center&quot; | Break
|-
| 17.30 - 17.55 
| [[/Day 2#Canola:_Beyond_the_media_playback | '''Canola: Beyond the media playback''']]&lt;br/&gt;''Eduardo Lima''
| [[/Day 2#Hands-on_development_with_Nokia_Web_Runtime | '''Hands-on development with Nokia Web Runtime''']]&lt;br/&gt;
''Oren Levine'' [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)]
| [[/Day 2#The_Qt_Mobility_Project | '''The Qt Mobility Project''']]&lt;br/&gt;''Alex Luddy''
| [[/Day_2#Hacking_officially_unsupported_Bluetooth_profiles_to_work_in_Fremantle | '''Hacking officially unsupported Bluetooth profiles to work in Fremantle''']]&lt;br/&gt;
''Johan Hedberg''
|-
| 18.00 - 18.25 
| [[/Day_2#The_Maemo_5_Address_Book | '''The Maemo 5 Address Book''']]&lt;br/&gt;
''Mathias Hasselmann, Travis Reiter''
| [[/Day 2#Publishing_your_software_through_maemo.org | '''Publishing your software through maemo.org''']] &lt;br/&gt;''Niels Breet''
| [[/Day_2#Maemo_and_oFono | '''Maemo and oFono''']]&lt;br/&gt;
''Aki Niemi, Rémi Denis-Courmont''
| [[/Day_2#The_future_of_GTK.2B.2FHildon_in_Maemo_Harmattan | '''The future of GTK+/Hildon in Maemo Harmattan''']]&lt;br/&gt;
''Alberto Garcia, Claudio Saavedra''
|-
| 18.45 - 20.30 
| colspan=&quot;4&quot; align=&quot;center&quot; | Maemo Drinks in N900 room
|}

=== [[/Day 3 | Sunday, October 11]] ===

{| class=&quot;wikitable&quot; border=&quot;2&quot;
|-
! Time
! N900
! N810
! N800
! 770
|-
| align=&quot;right&quot; | 9.00  
| colspan=&quot;4&quot; align=&quot;center&quot; | Doors Open
|- 
| 10.00 - 10.45 
| colspan=&quot;4&quot; align=&quot;center&quot; | [[/Day 3#Fremantle_Stars_showcase | '''Fremantle Stars showcase''']]&lt;br/&gt;Including liqbase, [http://www.slideshare.net/harbaum/maemo-summit-osm2go OSM2Go], [http://mauku.innologies.com Mauku], OMWeather [http://www.slideshare.net/vasvlad/omweather-in-maemo-summit-2009 (Slides+notes)], eCoach and more.
|- 
| 10.45 - 11.00 
| colspan=&quot;4&quot; align=&quot;center&quot; | Coffee-break
|- 
| 11.00 - 11.25 
| [[/Day 3#Maemo_Browser_for_power_users  | '''Maemo Browser for power users''']]&lt;br/&gt; ''Mikko Korpelainen'' - [http://www.slideshare.net/mtkorpel/maemo-browser (presentation content)]
&lt;br/&gt; [[/Day 3#Maemo_Browser_evolution  | ''Maemo Browser evolution'']]&lt;br/&gt; ''Oleg Romashin''
&lt;br/&gt;
&lt;br/&gt; [[/Day 3#Maemo_Browser_extension_development  | ''Maemo Browser extension development'']]&lt;br/&gt; ''Sudarsana Nagineni''

| [[/Day 3#JamMo_-_Jamming_mobile_game_for_children | '''JamMo - Jamming mobile game for children''']]&lt;br /&gt;
''Aapo Rantalainen''
| [[/Day_3#Building_for_Mer | '''Building for Mer''']]&lt;br/&gt;''David Greaves'' - [http://www.slideshare.net/mrlbt/building-for-mer (Slides+notes)]&lt;br/&gt;[[Mer/Build | (see also Mer Build page)]]
| rowspan=&quot;2&quot; | [[/Day 3#Hackathon:_Integrating_Canola_with_Fremantle | '''Canola Fremantle Hackathon''']]
|-
| 11.30 - 11.55 
| [[/Day 3#Maemo_documentation_co-creation  | '''Maemo documentation co-creation ''']]&lt;br/&gt;
''Dave Neary''
| [[/Day_3#Designing_QT_application_for_Maemo_5_and_Maemo_6 | '''Designing Qt application for Maemo 5 and Maemo 6''']] &lt;br/&gt;''Sergiy Dubovik, Ian Monroe''
| [[/Day 3#Writing_plugins_for_MAFW | '''Writing plugins for MAFW ''']]&lt;br/&gt;''Iago Toral'' [http://blogs.igalia.com/itoral/2009/10/11/writing-mafw-plugins-talk-maemo-summit/ (blog post with slides and source code examples)]
|-
| 12.00 - 12.25 
| [[/Day_3#Mobile_Office_based_on_KOffice_Open_Source_Project | '''Mobile Office based on KOffice Open Source Project''']]&lt;br/&gt;
''Suresh Chande'' [http://sureshchande.blogspot.com/2009/10/mobile-office-based-on-koffice-for.html (blog post + video demo)]
| [[/Day 3#Handheld_Glom:_Easy_database_applications | '''Handheld Glom: Easy database applications''']] &lt;br/&gt;
''Murray Cumming''
| [[/Day_3#Maemo_Platform_Security:_Principles_and_Concepts | '''Maemo Platform Security: Principles and Concepts''']] &lt;br/&gt;
''Elena Reshetova'' ([http://www.slideshare.net/peterschneider/maemo-6-platform-security slides])
|[[/Day_3#Extending_the_Hildon_desktop | '''Extending the Hildon desktop ''']]&lt;br/&gt;
''Marc Ordinas i Llopis''
|-
| 12.30 - 12.55 
| [[/Day 3#Towards_painless_and_quality_translations | '''Towards painless and quality translations''']]&lt;br/&gt;Dimitris Glezos ([http://media.indifex.com/other/maesum.pdf slides])
| [[/Day_3#10_Tips_for_Designing_Mobile_Widgets | '''10 Tips for Designing Mobile Widgets''']] &lt;br/&gt;
''Rajesh Lal'' ([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], [http://vimeo.com/7260267 video])
| [[/Day_3#Telepathy_on_Maemo | '''Telepathy on Maemo''']]&lt;br/&gt;
''Marco Barisione''
| [[/Day_3#What_to_do_about_.2Fopt_in_Fremantle | '''What to do about /opt in Fremantle''']]&lt;br/&gt;
''Marius Vollmer''
|-
| 13.00 - 14.30 
| colspan=&quot;4&quot; align=&quot;center&quot; | Lunch
|-
| 14.30 - 15.25
| colspan=&quot;4&quot; | '''[[/Lightning talks | Lightning talks]]''', 5 min each 
# [[/Lightning talks#Issues_on_adapting_Maemo_4_application_to_Maemo_5 | '''Issues on adapting Maemo 4 application to Maemo 5''']] - ''Aniello del Sorbo'' - [http://www.slideshare.net/anidel/issues-on-adapting-maemo-4-applications-to-maemo-5-2229255 (Slides)]
# [[/Lightning talks#How_to_speed_up_your_Maemo_application_development | '''How to speed up your Maemo application development''']] - ''Raul Herbster''
# [[/Lightning talks#Development_Nirvana:_How_Maemo_Application_Development_Should_Be | '''Development Nirvana: How Maemo Application Development Should Be''']] - ''Andrew Flegg''
# [[/Lightning talks#GSoC_presentation:_BitTorrent_plugin_for_Canola | '''GSoC presentation: BitTorrent plugin for Canola''']] - ''Lauri Võsandi''
# [[/Lightning talks#GSoC_Project_presentation:_Picasa_plugin_for_Canola | '''GSoC Project presentation: Picasa plugin for Canola''']] - ''Andrei Mirestean''
# [[/Lightning talks#Behaviour-Driven_Development_on_Maemo | '''Behaviour-Driven Development on Maemo''']] - ''Jose Teixeira''
# [[/Lightning_talks#N900_HW_architecture_overview_.26_power_management | '''N900 HW architecture overview &amp; power management''']] - ''Igor Stoppa''
# [[/Lightning talks#From_corporations_to_communities:_responsible_and_effective_engagement | '''From corporations to communities: responsible and effective engagement''']] - ''Randall &quot;Texrat&quot; Arnold''
# [[/Lightning talks#Mer_from_a_user.27s_perspective | '''Mer from a user's perspective''']] - ''Tomasz Dominikowski'' - [http://www.slideshare.net/guesta05d7a/mer-from-users-perspective-2409559 (Slides, fixed fonts)]
# [[/Lightning talks#Nokia_PUSH_N900_Project_Showcase | '''Nokia PUSH N900 Project Showcase''']] - ''Ben Mason and Gary Birkett''
|-
| 15.30 - 16.00 
| colspan=&quot;4&quot; align=&quot;center&quot; | Grand Finale
|}

== News ==
Link here Summit related news that made it to the homepage of recognized media.
* Made it to homepage of slideshare.net as Spotlight: Maemo Summit 2009, Amsterdam in the right navigation

== User-created content ==

===Tagged===

Please use the tag &quot;maesum&quot; (or hashtag &quot;#maesum&quot; on Identi.ca/Twitter) to tag your content.

Here are some helpful links to search for Maemo Summit content:

* [http://www.flickr.com/photos/tags/maesum/interesting/ maesum on Flickr]
* [http://picasaweb.google.com/lh/view?q=maesum&amp;psc=G maesum on Picasa]
* [http://search.twitter.com/search?q=maesum maesum on Twitter]
* [http://identi.ca/tag/maesum maesum on Identi.ca]
* [http://www.youtube.com/results?search_query=+%22maesum%22 maesum on YouTube]
* [http://technorati.com/search/maesum maesum on Technorati]
* [http://www.slideshare.net/event/maemo-summit-2009 maesum on Slideshare]
* [http://vimeo.com/tag:maesum maesum on Vimeo]

===Blogs===

See [http://planet.maemo.org Planet Maemo] for some additional posts.

* [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] ('''''in portuguese'''''); 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;sl=&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;sl=&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;sl=&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;sl=&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;sl=&amp;tl=en Co-creation workshop]
* 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]
* [http://blog.bdesmet.be/?p=228 biertie's blogpost]
* Add a link to your blog post here

===Videos===

Please add videos that have been taken directly at the Summit (Talks, Interviews, etc..).

* [http://www.youtube.com/watch?v=n7a2Vz9msq4 Quake 3 Presentation]
* [http://www.youtube.com/watch?v=-xzD7UrrP9w Intro Video (N900 room, Friday morning)]
* [http://vimeo.com/7109463 Mer: how the community innovates]
* [http://vimeo.com/7260267 10 Tips for Designing Mobile Widgets]
* [http://vimeo.com/7059150 Summit Finale] 
* Add a link to your video here

===Photos===

Please add links to your photos, either as a Flickr photoset, Picasa album or personal website.

* [http://www.flickr.com/photos/63684846@N00/sets/72157622451059219/ thp's photos on Flickr]
* [http://www.flickr.com/photos/43614522@N08/ rajesh lal's photos on Flickr]
* [http://www.flickr.com/photos/32856926@N06/sets/72157622622073500/ toninikkanen's photos on Flickr]
* [http://www.flickr.com/photos/markosaari/sets/72157622548660960/ mrksaari's photos on Flickr]
* [http://www.flickr.com/photos/timsamoff/sets/72157622599144192/ timsamoff's photos on Flickr]
* [http://www.flickr.com/photos/sjgadsby/sets/72157622534786276/ sjgadsby's photos on Flickr]
* Add a link to your photos here

== Old ==

&lt;div style=&quot;font-size: 1em;&quot;&gt;
&lt;div class=&quot;sections&quot;&gt;
&lt;div class=&quot;column&quot;&gt;
&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Schedule&lt;/h2&gt;
&lt;ul class=&quot;document&quot;&gt;{{Summit 2009 Schedule}}
&lt;/ul&gt;&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Location&lt;/h2&gt;
&lt;ul class=&quot;help&quot;&gt;{{Summit 2009 Location}}
&lt;/ul&gt;&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Attendees&lt;/h2&gt;
&lt;ul class=&quot;help&quot;&gt;{{Summit 2009 Attendees}}&lt;/ul&gt;
* [[Maemo_Summit_2009/Speakers|Information for Speakers]]
&lt;/div&gt;
&lt;div class=&quot;column&quot;&gt;
&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Organization&lt;/h2&gt;
&lt;ul class=&quot;help&quot;&gt;{{Summit 2009 Organization}}
&lt;/ul&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;


=== Latest News ===
&lt;rss title=&quot;off&quot; desc=&quot;off&quot; number=&quot;10&quot; time=&quot;3600&quot;&gt;http://search.twitter.com/search.rss?q=%23maesum&lt;/rss&gt;

[[Category:Community|Mer]]
[[Category:Events]]
[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Accommodation</title>
    <id>1860</id>
    <revision>
      <id>48389</id>
      <timestamp>2012-06-13T15:32:45Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Maemo Summit 2009/Accommodation]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">{{ambox
|text=Looking for the MeeGo Conference 2010 Accommodation page?
See http://wiki.meego.com/MeeGo_Conference_2010/Accommodation}}

We should offer people a range of accommodation options, from low-cost youth hostel beds to cheap hotels. Encourage people to stay close together.

== Checklist ==

* Draft recommended hotel &amp; hostel list
** [http://www.hostelworld.com HostelWorld]: a reliable website where you can find cheap hostel. You can see on the map where they're placed so you can choose one close to the Summit.
**[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).
**[http://www.westcordhotels.nl/hotels/Art-Hotel-Amsterdam**** Art Hotel Amsterdam]: recommended to those more interested in a 4 star hotel. 
**[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])


* Block book and/or obtain group rates
** Requires visiting hotel, asking for accommodation manager, and negotiating a group price.
** Sell the conference as important, high visibility, and argue that being a recommended hotel being a benefit for the hotel
 
* Put hotel list online
* Book hotel rooms pre-paid for sponsored attendees, maybe?


== Shared Room Allocations ==

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].

* '''If you would like to share a double room with someone, please add your name to the table below.'''
* If you find yourself rooming with someone who's not your best choice, just remove yourself from the room and add it somewhere else. '''''No hurt feelings please. This will all work out.'''''

* '''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.'''

{| border=&quot;5&quot;
! Room #
! Roommate 1
! Roommate 2
! Special Notes/Considerations
|-
| 1
| [[User:timsamoff|Tim Samoff]]
| [[User:sjgadsby|Stephen Gadsby]]
|
|-
| 2
| [[User:texrat|Randall Arnold]]
| [[User:eipi|Sanjeev Visvanatha]]
| Looking for new roomie-- zerojay can't make it :( 
snoring not an issue.  I'm no zerojay - will try to be a good roomie :)
|-
| 3
| [[User:Jaffa|Andrew Flegg]]
| [[User:andy80|Andrea Grandi]]
| Non-smoking
|-
| 4
| [[User:Lbt|David Greaves]]
| [[User:fiferboy|Andrew Olmsted]]
|
|-
| 5
| [[User:framstag|Tim Teulings]]
| [[User:glezos|Dimitris Glezos]]
| Non-Smoking
|-
| 6
| [[User:qole|Alan Bruce]]
| [[User:achipa|Attila Csipa]]
| 
|-
| 7
| [[User:conny|Cornelius Hald]]
| [[User:thp|Thomas Perl]]
|
|-
| 8
| [[User:bundyo|Kamen Bundev]]
| [[User:frethop|Mike Jipping]]
| 
|-
| 9
| [http://maemo.org/profile/view/mike_morrison mike morrison]
| [[User:khertan|Benoît HERVIER]]
| non-smoking. 
|-
| 10
| [[User:vdvsx|Valério Valério]]
| timeless
|
|-
| 11
| [http://maemo.org/profile/view/plastun/ Max Usachev]
| [http://maemo.org/profile/view/vasvlad/ Vlad Vasiliev]
| Non-smoking
|-
| 12
| Aapo Rantalainen
| [[User:hhedberg|Henrik Hedberg]]
| Non-smoking
|-
| 13
| [[User:johnx|John Bloom]]
| [[User:rm_you|Adam Harwell]]
| Non-smoking
|-
| 14
| [[User:aikipy|Raluca Pataliu]]
| [[User:azbuky|Iulian Blajut]]
| 
|-
| 15
| [[User:Tomaszd|Tomasz Dominikowski]]
| [[User:stskeeps|Carsten Munk]]
| 
|-
| 16
| [[User:andrei1089|Andrei Mirestean]]
| [[User:apopelo|Andrey Popelo]]
|
|-
| 17
| [[User:mikkov|Mikko Vartiainen]] (Thu-Sat)
| [[User:edgar2|Thomas Pakalén]]
| 
|-
| 18
| [[User:etrunko|Eduardo Lima (Etrunko)]]
| [[User:kenneth|Kenneth Rohde Christiansen]]
| Leaving on Tue 13th Oct
|-
| 19
| [[User:aboaboit|Andrea Borgia]]
| [[User:Matteone|Matteo Nerozzi]]
| Leaving on Tue 13th Oct... will decide later for extra nights!
|-
| 20
| [[User:ukki|Janne Mäkinen]]
| [[User:onion|Kaj-Michael Lang]]
| 
|-
| 21
| [[User:n8willis|Nathan Willis]] (Fri-Mon)
| [[User:segphault|Ryan Paul]]
| 
|-
| 22
| [[User:vudentz|Luiz Augusto von Dentz]]
| [[User:barbieri|Gustavo Sverzut Barbieri]]
| 
|-
| 23
| [[User:fms|Marat Fayzullin]]
| [http://maemo.org/profile/view/twaelti/ Tom Waelti]
|
|-
| 24
| [[User:thenokiablog|Mark Guim]]
|
| wife is w/ me. if possible, requesting if we can be only ones in the room. 
|-
| 25
| Brecht Fourneau
| Miquël Vermeulen
| Mobilejuice
|-
| 26
| Lennart Poettering
| Marc-Andre Lureau
| 
|-
| 27
| Sampo Savola(Thu-Sun)
| Lauri Võsandi
|
|-
| 28
| Tuomas Kulve
| -
| -
|-
| 29
|[[User:baloo|Jamie Bennett]]
|[[User:rsperberg|Roger Sperberg]] 
|RogerS staying Sunday night also.
|-
| 30
| Till Harbaum
| [[User:raul|Raul Herbster]]
| 
|-
| 31
| Dieter Plaetinck
| Bert Desmet
|
|-
| 32
| Marijn Kruisselbrink
| Gary Birkett(Wed-Mon)
| 
|-
| 33
| [[User:b0unc3|Daniele Maio]]
| [[User:skler|Mauro Foti]]
| 
|-
| 34
| Naba Kumar
| Nokia
| 
|-
| 35
| Yan Minagawa
| Jim Cognito
| 
|-
| 36
| [http://maemo.org/profile/view/nnod.html Donn Morrison]  
|[http://maemo.org/profile/view/jeninfanti.html Jennifer Infanti]
| Small bricks
|-
| 37
| Oliver Mcfadden
| Nokia
| 
|-
| 38
| Ed Bartosh
| Nokia
| 
|-
| 39
| Igor Stoppa
| Nokia
| 
|-
| 40
| [[User:juarezjunior|Juarez Junior]]
| keywan
| Non-smoking
|}


*'''Please don't add more lines in the table, we only have 40 rooms booked'''

== Who needs a room? ==

Please say if you prefer a hotel (or are happy with a hostel), if you need a double room (i.e. because you're bringing your wife/gf) or a single (if you don't want to share) or shared (if you're happy to share).

* '''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.'''

{| border=&quot;5&quot;
! Name
! Hotel/hostel/other
! Type of room
! Arriving
! Leaving
! Sponsorship?
|-
| [[User:edgar2|Thomas Pakalen]]
| hotel
| Single/Shared
| Fri 9th October
| Sun 11th October
| not applied
|-
| [[User:twaelti|Thomas Waelti]]
| hotel/hostel/whatever
| Single/Shared
| Thu 8th October
| Sun 11th October
| not applied 
|-
| [[User:harbaum|Till Harbaum]]
| Hotel
| Single
| Oct 8
| Oct 12
| Approved
|-
| [[User:vdvsx|Valerio Valerio]]
| Hotel/hostel/whatever
| Single/Shared
| October 7,
| October 12, 2009
| Approved
|-
| [[User:juarezjunior|Juarez Junior]]
| Hotel/hostel/whatever
| Single/Shared
| October 7th,
| October 11th, 2009
| Approved
|-
| [[User:barbieri|Gustavo Barbieri]]
| Hotel/hostel/whatever
| Single/Shared
| October 8th (from Sao Paulo KL792),
| October 11th (to Paris)
| Approved
|-
| [[User:texrat|Randall Arnold]]
| Hotel/hostel/whatever
| Single/Shared
| Thur 8th October
| Mon 12th October
| Approved
|-
| [[User:nirave|Nirave Gondhia]] *
| Hotel
| Single room
| Thur 8th October
| Mon 12th October
| Applied for
|-
| [[User:andy80|Andrea Grandi]]
| Hotel
| Single/Shared
| Thur 8th October
| Sun 11th October
| Approved
|-
| [[User:lcuk|Gary Birkett]]
| Hotel
| Single/Shared at a push (late night coding..)
| October 7,
| October 12, 2009
| Approved
|-
| [[User:achipa|Attila Csipa]]
| Hotel/hostel
| Shared
| Thur 8th October
| Sun 11th October
| Approved
|-
| [[User:timsamoff|Tim Samoff]]
| Hotel
| Single/Shared
| Wed 7th Oct
| Tues 13th Oct
| Approved
|-
| [[User:sjgadsby|Stephen Gadsby]]
| Hotel
| Single/Shared
| tbd
| tbd
| Approved
|-
| [[User:Generalantilles|Ryan Abel]]
| Hotel
| Single/Shared
| tbd
| tbd
| Approved
|-
| [[User:conny|Cornelius Hald]]
| Hotel
| Single/Shared
| Thur 8th October
| Sun 11th October
| Approved
|-
| [[User:stskeeps|Carsten Munk]]
| Hotel
| Single/Shared
| Thur 8th October
| Sun 11th October
| Approved
|-
| [[User:qole|Alan Bruce]]
| Hotel
| Single/Shared
| Wed Oct 6
| Tue Oct 13
| Approved
|-
| [[User:bundyo|Kamen Bundev]]
| Hotel/Hostel
| Single preferred but shared okay
| October 9, 2009
| October 11, 2009
| Approved
|-
| [[User:thenokiablog|Mark Guim]]
| Hotel
| Double w. wife
| October 8, 2009
| October 12, 2009
| Approved
|-
| [[User:ukki|Janne Mäkinen]]
| Hotel/hostel
| Single/shared
| October 8, 2009
| October 11, 2009
| Approved
|-
| [[User:eipi|Sanjeev Visvanatha]]
| Hotel
| Single/shared
| Oct 9 (7am)
| Oct 11
| Approved
|-
| [[User:thp|Thomas Perl]]
| Hotel
| Single/shared
| October 8, 2009
| October 11, 2009
| Approved
|-
| [[User:fiferboy|Andrew Olmsted]]
| Hotel
| Single/shared
| October 8, 2009
| October 12, 2009
| Approved
|-
| [http://maemo.org/profile/view/plastun/ Max Usachev]
| Hotel/Hostel
| Shared
| October 8, 2009
| October 12, 2009
| Approved
|-
| [[User:Hhedberg|Henrik Hedberg]]
| Hotel/Hostel
| Shared
| October 8, 2009
| October 11, 2009
| Approved
|-
| Aapo Rantalainen
| Hotel/Hostel
| Shared
| October 8, 2009
| October 11, 2009
| Approved
|-
| [http://maemo.org/profile/view/vasvlad/ Vlad Vasiliev]
| Hotel/Hostel
| Shared
| October 8, 2009
| October 12, 2009
| Approved
|-
| [http://maemo.org/profile/view/baloo/ Jamie Bennett]
| Hotel
| Single (other commitments may require me to return funky hours).
| tbd
| tbd
| Approved
|-
| [http://maemo.org/profile/view/glezos/ Dimitris Glezos]
| Hotel/Hostel
| Shared
| October 8, 2009
| October 11, 2009
| Approved
|-
| [http://maemo.org/profile/view/khertan/ Benoît HERVIER]
| Hotel/Hostel
| Shared
| October 9, 2009
| October 11, 2009
| Approved
|-
| [http://maemo.org/profile/view/andrei1089/ Andrei Mirestean]
| Hotel/Hostel
| Shared
| October 8, 2009
| October 12, 2009
| Approved
|-
| [http://maemo.org/profile/view/tomaszd/ Tomasz Dominikowski]
| Hotel
| Single/Shared
| Thur 8th October
| Sun 11th October
| Approved
|-
| [http://maemo.org/profile/view/fms/ Marat Fayzullin]
| Hotel
| Single/Shared
| Thur 8th October
| Sun 11th October
| Approved
|-
| [http://maemo.org/profile/view/mike_morrison mike morrison]
| Hotel/Hostel
| Single/Shared
| Thur 8th October
| Mon 12th October
| Approved
|-
| [http://maemo.org/profile/view/sampp Sampo Savola]
| Hotel
| Single/Shared
| Thur 8th October
| Sun 11th October
| Approved
|-
| [http://maemo.org/profile/view/onion Kaj-Michael Lang]
| Hostel
| Single/Shared
| Thur 8th October
| Sun 11th October
| Approved
|-
| [[User:etrunko|Eduardo Lima (Etrunko)]]
| Hotel
| Single/Shared
| Thur 8th October
| Tue 13th October
| Approved
|-
| [[User:kenneth|Kenneth Rohde Christiansen (kenneth)]]
| Hotel
| Single/Shared
| Thur 8th October
| Tue 12th October
| Approved
|-
| [[User:Detronizator|Ivan De Marino (detro)]]
| Hotel
| Single/Shared
| Thur 8th Oct evening
| Mon 12th Oct morning (to confirm)
| Approved
|-
| [[User:n8willis|Nathan Willis]]
| Hotel
| Single preferred, to write stories at night
| Fri 9th Oct
| Mon 12th Oct
| Approved
|-
| [[User:vudentz|Luiz Augusto von Dentz (Vudentz)]]
| Hotel
| Single/Shared
| Thur 8th Oct evening
| Tue 13th Oct
| Approved
|-
| [[User:b0unc3|Daniele Maio (b0unc3)]]
| Hotel
| Single/Shared
| Thur 8th Oct
| Mon 12th Oct
| no
|-
| [http://maemo.org/profile/view/apopelo/ Andrey Popelo]
| Hotel/Hostel
| Single/Shared
| October 8, 2009
| October 12, 2009
| Approved
|-
| Lennart Poettering
| Hotel
| Single/Shared
| Thu 8th Oct
| Sun 11th Oct
| Approved
|-
| Ryan Paul
| Hotel
| Single
| October 8
| October 12
| Approved
|-
| Marc-Andre Lureau
| Hotel
| Single/Shared
| Thu 8th Oct
| Sun 11th Oct
| not applied
|-
| [[User:rsperberg|Roger Sperberg]]
| Hotel
| Single/Shared
| Thu 8th October
| Mon 12th October
| Approved
|}

(*) - Not registered

== Who's staying where? ==
{| border=&quot;5&quot;
! Name
! Hotel
! Arriving
! Leaving
! Cost
! Sponsorship?
! Notes (e.g. spare place, etc.)
|-
| [[User:lardman|Simon Pickering]]
| Hotel Ibis Amsterdam Centre
| Thur 8th October
| Mon 12th October
| 510.30 Euros for 4 nights (w/out breakfast)
| Applied for
| Staying with my wife
|-
| [[User:mgedmin|Marius Gedminas]]
| Hotel Arts (Golden Tulip Amsterdam Art)
| Thur 8th October
| Mon 12th October
| 440 Euros for 4 nights (w/out breakfast)
| No
| free wifi!
|-
| [[User:gcobb|Graham Cobb]]
| Hotel Arts
| Thur 8th October
| Sun 11th October
| 310 Euros for 3 nights (w/out breakfast)
| No
| Single room
|-
| [[User:riussi|Juha Ristolainen]]
| Hem Hotel Amsterdam 
| Thur 8th October
| Sun 11th October
| 313 Euros for 3 nights (w/out breakfast)
| No
| double room with two attendees
|-
| [[User:jeremiah|Jeremiah C. Foster]]
| Hotel Arts
| Thur 8th October
| Sun 11th October
| 387 Euros for 3 nights (w/out breakfast)
| No.
| My wife will be with me.
|-
| [[User:anidel|Aniello Del Sorbo]]
| A whole house in Bethanienstraat
| Sat 10th October
| Tue 13th October
| 270€ Euros for 3 nights (w/out breakfast)
| Applied for/Accepted
| Staying with my partner (sharing the house with a couple of friends)
|-
| [[User:lma|Lucas Maneos]]
| Hotel Arts
| Thur 8th October
| Sun 11th October
|
| No.
| 
|-
| [[User:Detronizator|Ivan De Marino]]
| Hotel Arts (Golden Tulip Amsterdam Art)
| Thur 8th October
| Mon 12th October
|
| No
| Would be great to hook up after the Summit to take a walk around Amsterdam. Anyone?
|
|-
| [[User:dneary|Dave Neary]]
| Ibis Centrum
| Thur 8th October
| Sun 11th October
|
| No.
| 
|-
| [[User:gosia|Malgorzata Ciesielska]]
| Ibis Amsterdam Centre
| Thur 8th October
| Sun 11th October
|
| No
| 
|-
| [[User:rsuplido|Reggie Suplido]]
| Renaissance Amsterdam
| Thur 8th October
| Mon 12th October
| 243€ for 4 nights (wife discount) (w/o breakfast)
| Yes
| Staying with wife
|-
| [[User:mustalinux|Mustali Dalal]]
| Best Western Blue Tower Hotel
| Friday 9th October
| Sunday 11th October
| 188€ for 2 nights (w/o breakfast)
| No
|}

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Call for content</title>
    <id>1974</id>
    <revision>
      <id>32610</id>
      <timestamp>2010-04-13T13:38:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify link</comment>
      <text xml:space="preserve">== Call for content ==

The Maemo community invites you to participate in the second Maemo Summit in Amsterdam, the Netherlands, from October 9th to October 11th 2009. The core themes of the conference will be Fremantle and Harmattan; the forthcoming and future releases of the Maemo platform.

The Maemo community invites talks, lightning presentations and BOFs in three main tracks:

* Users: Show off something cool that lets people get the most out of their hardware, or present an aspect of the Maemo community where you need help
* Application developers: Help people get the most out of the Maemo platform, and write great apps
* Platform developers: You're hacking on the platform and want to show off great low-level hacks, this is the place for you

We are asking for two types of submissions:

* 30 minute long presentations, BOFs or workgroup sessions.
* 5 minute long lightning talks.

We invite people to submit a short description of the session they would like to give, including the talk title, intended audience, a short description, a short biographical note and contact details of the presenter(s).

We also welcome proposals for 5 minute lightning talks which will be held each day during the conference. 

All submissions should be made [[Maemo_Summit_2009/Submissions|on the Maemo wiki]].

The submissions received will be reviewed periodically by the content committee starting on July 5th. Sessions approved will be communicated to the speakers and published in a draft schedule asap.

The final deadline for submissions will be September 13th but the sooner you submit your proposal the better chances you will have to get a slot.

The final schedule will be published on the week of September 13th.

==Call for content template ==
See [[../Submissions]] for details of how to submit a proposal for the summit.

The following template should be used for submissions:

=== Talk Title Goes Here ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Call for content template</title>
    <id>2003</id>
    <revision>
      <id>14341</id>
      <timestamp>2009-06-17T12:47:52Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Maemo Summit 2009/Call for content template]] moved to [[Maemo Summit 2009/Call for content]]: Drop &quot;template&quot; from name, since this is now just the call for content</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo Summit 2009/Call for content]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Content</title>
    <id>1957</id>
    <revision>
      <id>21031</id>
      <timestamp>2009-10-26T09:24:37Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <minor/>
      <comment>Redirecting to [[Maemo Summit 2009]]</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 2</title>
    <id>2045</id>
    <revision>
      <id>45153</id>
      <timestamp>2011-09-06T02:32:45Z</timestamp>
      <contributor>
        <ip>208.82.99.70</ip>
      </contributor>
      <comment>/* Intelligent Usage of Fremantle Location Framework For Location-aware Applications */</comment>
      <text xml:space="preserve">== Maemo Summit day 2, Saturday 10 October ==


=== Designing UI for Maemo 5 ===
* Mox Soini, mox.soini at movial.com
* Intended audience: Platform/Application Developers, users
* Talk type: presentation
* Slides: [http://www.slideshare.net/moximillian/soini-designing-ui-for-maemo-5 Available online at slideshare]
* Abstract/description:
: How to make the applications work together as an integrated whole?
 
: This talk will discuss the UI Design of the Maemo 5 product as an &quot;application portfolio&quot;. Design patterns as well as application specific designs are presented, and the reasoning for the design decisions.

: 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 &quot;look and feel&quot; of the applications is categorized, resulting in a conceptual design tool for 3rd party application designers and developers.

* Author bio:
: 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.

=== PyQt application development on Maemo ===
*Author: Attila Csipa, attila77 at talk.maemo.org
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: A complete walkthrough of creating applications for the Maemo platform with Python and Qt. The presentation would contain two segments, the first being the 'why' - 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)
: The second segment of the presentation focuses on the 'how' 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. 
*Author bio
: 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.

[http://www.slideshare.net/guestb404461/pyqt-application-development-on-maemo Slides (web)]

[http://web.atombiztos.hu/pyqt_on_maemo.zip OpenOffice presentation (with demo videos)]

=== Getting started session ===
* Daniel Wilms, ... (others will be announced later)
* Intended audience: developers
* Length: 2 slots (approx. 55 min)
* Talk type: demo

*Abstract/description
: 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.

: '''Introduction:'''
: - The Maemo.org infrastructure (components, documentation, community)
: - Introduction development environment (SDK, SDK+, Eclipse, Qt)

: '''Demonstrations:'''
: - Setting up SDK
: - Setting up SDK+
: - Development with Eclipse
: - Development in Qt
: - Download client for Maemo.org 

*Author bio
: 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.

=== Personalizing your Maemo 5 device ===
* Hartti Suomela (hartti dot suomela at nokia dot com)
* Intended audience: users
* Talk type: presentation
* Abstract/description
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 &quot;heavy&quot; power users (e.g. how to change the system sounds).
*Author bio
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's software laboratory for example managing university collaborations in U.S.

=== Go-to market opportunities for mobile application developers ===
*Author: Boaz Zilberman, co-founder and Chief Architect of fring.
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

===  Canola application and framework for rich GUI ===
*Gustavo Sverzut Barbieri (http://blog.gustavobarbieri.com.br/contact/)
*Intended audience: Application Developers
*Talk type: presentation
*Slides: http://talks.gustavobarbieri.com.br/maemo_summit/oct-2009/presentation.pdf
*Abstract/description
: 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'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.
: 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.
*Author bio
: 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.

=== Maemo Co-creation ===
* Organiser: Jussi Mäkinen
* Intended audience: Users
* Talk type: Presentation and Workshop
* Abstract/description
: 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.
: Maemo co-creation 2009 will now open up for the Maemo community by presenting [[Maemo_Co-Creation|the workshop results]] on the Saturday showcase and crafting the ideas forward with anyone willing to participate on our Sunday working session.
* Organizer bio
: [http://twitter.com/luovanto Jussi Mäkinen] is responsible for lead consumer marketing &amp; co-creation activities @ Maemo Devices.

=== Maemomm: Maemo with C++ and a Gtkmm flavour ===
*Author: David King, davidk at openismus dot com, amigadave on IRC, http://amigadave.blogspot.com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Slides: [http://amigadave.com/presentations/maemo_summit_2009.pdf Available as PDF]
*Abstract/description
: 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++'s object-orientation features and simpler reference-counting semantics.
: 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/
*Author bio
: 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.

=== Extras/autobuilder/interfaces round-table ===
*Author: Ed Bartosh, Alexander Kanevskiy, Niels Breet
*Intended audience: application and platform developers 
*Talk type: round-table
*Room: Oostelijk Meterhuis
*Duration: 1 hour
*Abstract/description
: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. 
*Author bio
: 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.


=== GUPnP and Rygel: The UPnP/DLNA solution for Maemo ===
*Author: Zeeshan Ali, Lead-Developer at Maemo Devices, Nokia.
*Intended audience: everyone
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Contributing with Git &amp; Gitorious ===
*Johan Sørensen (johan at shortcut.no)
*Maemo devs and application developers
*Talk type - Presentation
*Abstract/description
: 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.
*Author bio
: Johan Sørensen is the original developer of Gitorious, which is now driven by Shortcut AS, a company he co-founded.

=== Hildon toolkit for Fremantle ===
*Authors: Alberto Garcia, Claudio Saavedra
*Intended audience: Platform/Application Developers
*Talk type presentation
*Abstract/description
: 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.

: 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.
*Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== Developments in The Qt WebKit Integration ===
*Author: Kenneth Rohde Christiansen kenneth.christiansen at openbossa dot org
*Intended audience: Application/Platform Developers
*Talk type: Presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Modest, email client for Fremantle ===
*Authors: Sergio Villar, Jose Dapena
*Intended audience: users, application developers
*Talk type: presentation
*Slides: [http://www.slideshare.net/jdapena/modest-maemo-summit-09 Modest Maemo summit 2009 slides at slideshare]
*Abstract/description
: 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's the default e-mail client for the Nokia N810 device.

: 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.

*Author bio
: 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's a member of Modest development team, and also a regular contributor to Tinymail. 

: 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.

=== Mer: A year after ===
*Carsten Valdemar Munk (carsten.munk at gmail dot com , also known as Stskeeps)
*Intended audience: Users, application developers, platform developers
*Talk type: Presentation
*Abstract/description
: October'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'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.
*Author bio
: 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.

=== maemo.org Bug Management ===
*Andre Klapper, aklapper at openismus dot com, andre__ in #maemo
*Intended audience: Everyone (Users, Developers, Non-coders, ...)
*Talk type: Presentation (and discussion/BoF after that?)
*Abstract/description
: 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; community participation). Inform how to participate (report in bugzilla / brainstorm; bugsquad) and how it can help Nokia developers&amp;managers and the maemo.org community to be more productive in the Maemosphere.
*Additional Information
: I always fail to convince my laptop to work with beamers at conferences. Be warned. ;-)
*Author bio
: Andre Klapper is the maemo.org Bugmaster and works for Openismus GmbH. He is also part of the GNOME Release Team &amp; Bugsquad.


=== Adapting GNOME applications to Maemo Fremantle ===
*Author: Joaquim Rocha, jrocha at igalia dot com
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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're UI is needed.

: I'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.

*Author bio
: Joaquim Rocha has worked from web programming to OCR, desktop and mobile programming and is a proud Open Source an Linux advocate. He's now doing all this while working for Igalia. When he's not coding he's listening to metal, watching movies, playing console games or having a nice cold beer if the weather demands so.


=== Tracker: Dial M for Metadata ===
*Ivan Frade &lt;ifrade@gnome.org&gt;, Iridian Kiiskinen &lt;ext dash iridian dot kiiskinen at nokia dot com&gt;
*Intended audience: application developers/platform developers
*Presentation
*Abstract/description
: 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 &quot;linkable&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.

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.

*Author bio
: 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.
: 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.

=== Canola: Beyond the media playback ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Users
*Talk type: Presentation/Round Table
*Abstract/description
: The first half of this session, will give a quick presentation of some &quot;advanced&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.
*Author bio
: 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.

=== Hands-on development with Nokia Web Runtime ===
* Oren Levine, &lt; oren dot levine at nokia.com &gt;
* Intended audiences: application developers and advanced users
* Talk type: presentation
* Abstract/description
: 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'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!

*Author bio
: Oren Levine is a Senior Technology Marketing Manager in Nokia'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.

=== The Qt Mobility Project ===
*Author: Alex Luddy, alexander.luddy at nokia dot com
*Intended audience: application and platform developers 
*Talk type: presentation
*Abstract/description
: 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 
: 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.
*Author bio
: 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.

=== Publishing your software through maemo.org===
*Author: Niels Breet
*Intended audience: application developers 
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Niels Breet is the maemo.org webmaster, working on web services available at maemo.org.

=== Introducing the Harmattan UI framework ===
*Author: Tomas Junnonen - tomas.junnonen at nokia.com
*Intended audience: application developers
*Talk type: presentation
*Abstract/description:
: 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. 
: This presentation gives a sneak peek at what's currently cooking in Harmattan. We will share our initial thoughts and plans regarding the future of the Maemo application framework.
*Author bio:
: 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.

=== Creating packages for the Maemo platform ===

-&gt; [http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform Slides available here.]

* Jeremiah C. Foster &lt;jeremiah at maemo dot org&gt;
* Intended audience -&gt; application developers and platform developers
* Talk type -&gt; presentation
* 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.  

* Author Bio

: I am the current &quot;debmaster&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.

Last one to utilize this is a rttoen egg!

=== The Maemo 5 Address Book ===
*Author: Travis Reiter travis dot reitter AT collabora dot co dot uk, Mathias Hasselmann mathias AT openismus dot com
*Intended audience: users and application developers
*Talk type: presentation
*Abstract/description

In Maemo 5, contacts are handled by several components that make up the
Address Book. In its first part, this talk will provide an overview of
the components in the new system, as well changes in the interface and
functionality of the Contacts application. A lot has changed since the
last major release, so this talk has a lot of interesting bits to cover!

The second part of this talk will focus on developers who want to
incorporate contacts in their applications. Address Book 5 includes a
powerful high-level library for accessing contacts on the system. If
your application needs to present all contacts on the system, find
specific ones, watch changes to the contacts, pick out avatars, start
conversations, or much more, it's all here. And this library,
libosso-abook, has become the ideal way to access contacts, so we'll
provide some tips on porting older Maemo applications based directly on
Evolution Data Server to libosso-abook.

*Author bio
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's Address Book.

=== Maemo and oFono  ===

* By Rémi Denis-Courmont (remi dot denis-courmont at nokia dot com) and Aki Niemi (aki dot niemi at nokia dot com)
* For platform developers
* Presentation (could be shortened to lightning talk but...)
* 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.

:How is it different from earlier attempts? What is it all about? What can you do with Ofono and Nokia N900?

* For demoing purpose, the presenter will need to use his own laptop and Nokia devices.

* 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's also been involved in the VideoLAN project.

[http://www.remlab.net/op/maemo2009.pdf Presentation material]

=== The future of GTK+/Hildon in Maemo Harmattan  ===
* Alberto Garcia (_berto_) and Claudio Saavedra (csaavedra)
* Intended audience: developers
* Talk type: BoF
* Abstract/description:
: 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.
: 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.
: In this BoF we'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.
* Author bio
: 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's currently working on the new version of the Hildon toolkit for the new release of Maemo, codenamed 'Fremantle'. Besides programming, Alberto also loves cinema, music and going to the beach.
: 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 'Fremantle', developing the Hildon library and also maintaining other parts of the toolkit stack.

=== High-resolution image processing on Maemo devices ===
*Author: Alexander Bokovoy - alexander dot bokovoy AT nokia dot com
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description

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.

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.

*Author bio

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.

=== Hacking officially unsupported Bluetooth profiles to work in Fremantle ===
*Johan Hedberg - johan.hedberg at nokia.com
*Intended audience: users,application developers,platform developers
*Talk type: presentation
*Abstract/description
: Fremantle doesn'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. 
*Author bio
: 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.

=== Git hands-on workshop ===
*Author name and contact details
*Intended audience (users/application developers/platform developers)
*Talk type (presentation/lightning talk)
*Abstract/description
: Abstract goes here. A two paragraph overview of the proposed talk content is sufficient.
*Additional Information (optional)
: Additional information on extra equipment you might need or something else goes here
*Author bio
: A short (1 paragraph) note about who the author is goes here

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Day 3</title>
    <id>2074</id>
    <revision>
      <id>46832</id>
      <timestamp>2012-02-25T17:14:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/85.126.222.107|85.126.222.107]] ([[User talk:85.126.222.107|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= Maemo Summit day 3, Sunday 11 October =

=== Fremantle Stars showcase ===

Take a tour of the Fremantle Stars, the best of the best in Maemo community developed applications, featuring:
; liqbase
: Gary Birkett, liquid at gmail dot com, lcuk on #maemo
; [http://mauku.innologies.com Mauku]
: [http://www.henrikhedberg.net Henrik Hedberg]
; OSM2Go
: Till Harbaum
; OMWeather
: Vlad Vasilyev
; eCoach
: Sampo Savola

=== Maemo Browser for power users ===
*Author: Mikko Korpelainen, mikko.korpelainen at nokia dot com
*Intended audience: users
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: Mikko Korpelainen is a senior product manager @ Maemo for browser, FlashPlayer, maps and location.

=== Maemo Browser evolution ===
*Author: Oleg Romashin, oleg.romashin at nokia dot com
*Intended audience: developers
*Talk type: presentation
*Abstract/description
: Quick overview of the Maemo Browser improvement process, rendering architecture.
  Link to presentation: http://docs.google.com/present/view?id=ajk2s2df9zhr_144fb8zrrck
*Author bio
: Oleg Romashin is a senior lead developer @ Maemo for browser.

=== Maemo Browser extension development ===
*Author: Sudarsana Nagineni, sudarsana.nagineni at nokia dot com
*Intended audience: developers
*Talk type: presentation - [http://docs.google.com/present/view?id=dct6z7j7_25zrcj3hs Slides]
*Abstract/description
: A tutorial on how to develop extensions for Maemo Browser. 
*Author bio
: Sudarsana Nagineni is a senior developer at Maemo for browser. 

=== [http://jammo.garage.maemo.org JamMo - Jamming mobile game for children] ===
* Author: Aapo Rantalainen (aapodotrantalainenatgmaildotcom)
* Intended audience: application developers
* Talk type: presentation
* Abstract/description
: 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/
* Additional Information
: Needed equipment: video projector, canvas, speakers.

* Author bio
: JamMo is a product of an EU funded [http://www.umsic.org/ UMSIC project]. Aapo Rantalainen is the head developer of JamMo.

=== Writing plugins for MAFW ===
*Author: Iago Toral - itoral at igalia dot com
*Intended audience: platform and application developers.
*Talk type: Presentation (Tutorial)
*Abstract/description
: 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.
*Author bio
: 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.

=== Hackathon: Integrating Canola with Fremantle ===
*Author: [http://maemo.org/profile/view/etrunko Eduardo Lima (Etrunko)]
*Intended audience: Application Developers
*Talk type: Hands-on/Hackathon
*Abstract/description
: 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.

: ''Why??''

: 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'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 &quot;legacy&quot; platforms, such as Diablo.

: People interested in developing plugins for Canola and/or developing using EFL/PyEFL are more than welcome to join us.
*Extra equipment
**&lt;strike&gt;''Guns, lots of guns.''&lt;/strike&gt;
**Brave hacker souls
**Power outlets galore
**Internet Connection
**Whiteboard/Flipchart
**Coffe
*Author bio
: 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.

=== Maemo documentation co-creation ===

*Dave Neary, dneary at maemo dot org
*Intended audience: Users
*Talk type: Presentation
*Abstract/description
: The stated goal in the 2010 agenda for maemo.org is the co-creation of all Maemo documentation.
: 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.

*Author bio
: 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.

=== Designing QT application for Maemo 5 and Maemo 6===
*Sergiy Dubovik &lt;sergiy dot dubovik &quot;at sign&quot; nokia point com&gt;, Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: presentation
*Abstract/description

: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.

*Additional information on extra equipment you might need or something else goes here
:Just a projector

*Author bio
: Sergiy Dubovik is a senior software developer working in Nokia, designing and developing UI frameworks for Harmattan program.

: 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's video player, Dragon Player.

=== Building for Mer ===
* [[User:lbt|David Greaves]]
* Intended audience: application &amp; platform developers
* Talk type : Presentation/demo
* Abstract
: 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'm looking at you autobuilder and scratchbox), dependency driven build environment. I'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.

*Additional Information
: Live web link to OBS would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== Handheld Glom: Easy database applications ===
* Murray Cumming &lt;murrayc at openismus dot com&gt;
* Intended audience: application developers
* Talk type: Presentation
* Abstract/description:
: 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.
*Author bio:
: Murray Cumming runs Openismus GmbH in Berlin and Munich. We work on Maemo'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.

=== Towards painless and quality translations ===
* Dimitris Glezos (glezos _at_ indifex _dot_ com)
* Intended audience: developers, translators, docs writers, webmasters
* Talk type: Presentation
* Material: [http://media.indifex.com/other/maesum.pdf Slides (pdf)]
* Abstract/description
: Most developers agree: &quot;Translations are hard&quot;. And while Maemo's localization is already in place, we'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're hosted on git.. *especially* when they're hosted on git).
: 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.
*Additional Information
: The session will most likely turn into a BoF, bringing together application and platform developers, translators and webmasters/admins.
*Author bio
: 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's Board member and Translation Leader. He works at Indifex, providing enterprise-level support on complex localization scenarios.

=== 10 Tips for Designing Mobile Widgets ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation

*Abstract/description
: 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 'invisible' 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.

*Author bio
: 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's Mobile, Apple's Iphone, Nokia S60 and Maemo devices. His blog on design and user experience can be found at http://abcofdesign.com

=== Mobile Office based on KOffice Open Source Project===
*Suresh Chande, suresh.chande at nokia.com
*Intended audience: Application &amp; Platform developers
*Talk type: Presentation
*Abstract/description
: We will present here Mobile Office project developed for Fremantle based on KOffice, a Qt based open source project.

*Additional Information (optional)
: We will demonstrate Mobile Office (KOffice) running on the N900.
: Blog Entry: http://labs.trolltech.com/blogs/2009/09/17/office-viewer-for-maemo5-based-on-koffice/ 

*Author bio
: Suresh Chande, works for Nokia  in Device R&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.

=== Maemo Platform Security: Principles and Concepts ===

* Elena Reshetova - elena.reshetova@nokia.com
* Intended audience: users, application developers, platform developers
* Talk type: presentation - [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Abstract/description:

: 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. 

: 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. 

: The presentation will cover the main principles and concepts of the Maemo Platform Security.

*Author bio
: 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.

=== Telepathy on Maemo ===
* Author: Marco Barisione, marco.barisione at collabora.co.uk
* Intended audience: application developers/platform developers
* Talk type: presentation

* Abstract/description:
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.

The talk will introduce the Telepathy framework, its basic concepts and current functionality. It will focus in particular on:
- The Telepathy architecture
- How Telepathy is used on Maemo 5 for chat, VOIP calls, telephony calls and SMS messages
- How to use Telepathy from your program

* Author bio:
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.
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.

=== Extending the Hildon desktop ===
*Author: Marc Ordinas i Llopis ([[User:Marcoil|marcoil]]), marcoil at collabora dot co dot uk
*Intended audience: application developers/platform developers
*Talk type: presentation
*Abstract/description
: Developers can easily extend Maemo 5's desktop, giving users new ways to view and interact with the data in their mobile device. In this talk I'll describe the basic architecture and components of the desktop and show how to extend it.
*Author bio
: Marc is a programmer at Collabora and has been working on hildon-desktop for the last year.

=== What to do about /opt in Fremantle ===
Author: [[User:mvo|Marius Vollmer]]
*Intended audience: TBD
*Talk type: BoF
*Abstract/description
: For Fremantle, packages in the Extras repository are asked to install files into /opt to make better use of the available flash space.
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.
*Author bio
: TBD

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Infrastructure</title>
    <id>1855</id>
    <revision>
      <id>29124</id>
      <timestamp>2010-02-11T16:41:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">We need to be very clear what we require from the venue in terms of infrastructure - everything costs money.

== Checklist ==

* Low-tech: flip-charts &amp; markers
* Projectors, a/v, mics?
* Wifi - Big Pipe, up to 1.5x attendees connected to wifi at same time, allocate 100kB/s/connection - 300 attendees = 45MB/s bandwidth requirement (plus the ability to handle 450 simultaneous connections / IP addresses).
* Electricity - need power strips everywhere. Every seat should be within reach of one.
* Room configurations - chairs, podiums, etc
* Staff

==Infrastructure for presentations==
* Standard PC in the 3 rooms with current versions of Firefox, OpenOffice.org, PDF reader, Flash player, Xephyr, Maemo 5 SDK, Maemo 4.1 SDK.
* Maemo 5 compatible device provided by Nokia (e.g. developer unit) in each room.
* Dedicated wlan for these PCs and devices so they don't depend on the overall bandwidth
* Projector in each room satisfying the dimensions of the space.
** Supporting 800x480 resolution for the devices and the standard resolutions available in the PC.
** VGA connector and RCA jacks.

Speakers needing anything different need to do their requests in due time or come with their equipment at their own risk.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Lightning talks</title>
    <id>2046</id>
    <revision>
      <id>39625</id>
      <timestamp>2010-10-20T11:12:53Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>Undo revision 39624 by [[Special:Contributions/173.72.110.90|173.72.110.90]] ([[User talk:173.72.110.90|Talk]])</comment>
      <text xml:space="preserve">== Saturday October 10 ==
=== Giving Great Presentations ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Everyone
*Abstract/description
: Giving great presentations is a learned craft. While I'm not a master story-teller, I have learned a lot over the years about the theory of giving great presentations - enough to know that most people don't do it in technical conferences. I hope to use five minutes to entertain, astound and educate the Maemo community on the skill of giving a good presentation.
*Author bio
: 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.

=== Feedhandler - Integrating RSS newsreaders with the browser===
*Author: [http://maemo.org/profile/view/thp/ Thomas Perl]
*Intended audience: application developers and end users
*Talk type: lightning talk
*Abstract/description
: Introduction: From the problem of subscribing to newsfeeds and podcasts directly from within the web browser to the solution feedhandler. This is followed by a short demo and then some info for developers of RSS-related applications (RSS news readers and podcast aggregators) on how to integrate their applications with feedhandler.
*Author bio
: [[User:thp|Thomas Perl]] is a computer science student from Austria, working on projects like [http://gpodder.org gPodder], [http://icculus.org/tennix/ Tennix] and [http://panucci.garage.maemo.org/ Panucci].
*Links
**[http://thpinfo.com/2009/feedhandler/ Feedhandler Homepage]
**[https://garage.maemo.org/projects/feedhandler/ Garage Project] (+Git repository)
**[http://maemo.org/downloads/product/OS2008/feedhandler/ Feedhandler in Maemo Downloads] (+Screenshots)

=== python-mafw: MAFW framework for Python developers ===

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: light talk
*Abstract/description
: I'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.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

=== DVCS? git? - How does that work then? ===
* [[User:lbt|David Greaves]]
* Intended audience: application developers
* Talk type : Presentation/demo
* Abstract
: A few years ago the world changed when DVCS systems arrived. You probably didn't notice. After all they are extraordinarily complex and unsuitable for mere mortals... aren't they?&lt;br&gt;
: No, they're not. I'll explain a little about git and how we use it in Mer; I'll cover the basics and then run through some more interesting issues like managing branches &amp; patches, managing merges with upstream (useful if you are hildonising an application) and also some of my favourite tricks and tips.

: There will, of course, be loads of fancy graphical effects for the eye-candy junkies.

*Additional Information
: Live web link to Gitorious would be good.

*Author bio
: David is the Mer build mentor; he's been a solutions architect at a major telco for several years but still (kinda) knows how to code. He's a passionate believer in the commercial viability of OSS. Previous contributions include kick-starting the git documentation &amp; establishing wikis for Linux RAID and MythTV. He runs linux everywhere.

=== BlueMaemo - Bluetooth HID mouse &amp; keyboard for Maemo ===
*[http://maemo.org/profile/view/vdvsx/ Valério Valério]
*Intended audience: users
*Talk type: lightning talk
*Abstract/description
: BlueMaemo is a remote controller application that turns your Maemo device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
: This presentation will be a showcase of the application new UI, some new features that will be introduced in Fremantle will be shown as well.

*Author bio
: Valério is a MSc researcher at University of Évora, Portugal. During his free time he has actively participated in several open source community's and projects.

=== Continous Integration with CruiseControl and Scratchbox ===
*Jani Mikkonen, ext dash jani dot mikkonen at nokia dot com, rasjani @ #mer
*Application developers / QA People
*Lightning talk / Can extend to presentation if interest demands
*Abstract/description
: Topic is about how to harness Cruisecontrol to full build / packaging / testing and repository update cycle for development teams big and small.
*Additional Information (optional)
: Projector for showing live demostration and own laptop.
*Author bio
: 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; bofh background.

=== Conboy, Tomboy and Snowy ===
*[http://maemo.org/profile/view/conny Cornelius Hald]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
: 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.
*Author bio
: I'm a computer science student looking for distraction while writing my final thesis.

=== Ogg support status ===

*[http://maemo.org/profile/view/kulve Tuomas Kulve]
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:OGG support status on Maemo: What it does and it doesn't.
* Author bio
: Tuomas Kulve has been a senior software engineer over five
years at Movial. He has been following the Maemo scene since the Nokia
770 launch.

=== Maemo Platform Security ===
*Elena Reshetova
*Intended audience: users and application developers
*Talk type: lightning talk
*Abstract/description
:Lots of questions are being asked about the level of lock-down which Maemo-based devices will have - Elena will address some of those questions.

== Sunday October 11 ==

=== Issues on adapting Maemo 4 application to Maemo 5 ===
*Author: Aniello Del Sorbo, anidel at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: lightning talk 
*Abstract/description
: Fremantle SDK brings in a whole set of new features. Many applications developed for Maemo 4 need to be adapted to Maemo 5. This lightning talk aims at presenting a list of common issues a developer will face when porting his application to the new Maemo 5 environment.

*Author bio
: Aniello Del Sorbo got his Laurea degree and PhD in Computer Science from the University of Salerno in Italy. He developed the Transparent Crypted file-system (TCFS) for Linux while he was studying in Salerno. He was also a post-doc at the JHUISI - Johns Hopkins Information Security Institute in Baltimore, USA where he worked on a new approach to the DNS security.
: He also is the author of the port of the note-taking application Xournal to the Maemo platform.

=== How to speed up your Maemo application development ===

*Author: Raul Herbster, raul.herbster at signove dot com
*Intended audience: Application/Platform Developers
*Talk type: Lightning talk
*Abstract/description
: 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).

*Author bio
: 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.

=== Development Nirvana: How Maemo Application Development Should Be ===
*[[User:Jaffa|Andrew Flegg]] [mailto:andrew@bleb.org &lt;andrew@bleb.org&gt;]
*''Intended audience:'' application developers
*''Abstract/description:''
: In the words of Steve Ballmer, the key to a platform is &quot;developers! developers! developers!&quot; However, Maemo SDKs have a painful install process, supported only on x86 Linux with primitive tooling.
: This talk will demonstrate how much better Maemo development can be; from cross-platform, easy-to-use Maemo SDKs to a brief runthrough of what a real, professional development environment is like. The author will also describe his perfect Maemo development environment: and whether it's something we're ever likely to see.
*''Author bio:''
: Andrew Flegg has been a professional software developer for over 15 years and is currently lead architect and developer for his employer's next generation application. He has been a Maemo user since the 770 launch and has been elected to the Maemo Community Council twice.

=== GSoC presentation: [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola BitTorrent plugin for Canola] ===
*Author: Lauri Võsandi, lauri dot vosandi at gmail dot com
*Intended audience: Everyone
*Talk type: lightning talk 
*Abstract/description
: BitTorrent plugin for Canola allows downloading material available on peer-to-peer networks and it includes wide feature set. I can have little demo of the plugin.

*Author bio
: I have been Free Software activist for a while in Estonia. I am currently studying at Estonian IT College. I am member of Estobuntu team. I was selected for GSoC and I successfully finished with my project.

:http://v6sa.itcollege.ee/shared/cv.html

=== GSoC Project presentation: [http://wiki.maemo.org/GSoC_2009/Projects/Picasa_plugin_for_Canola Picasa plugin for Canola] ===
* Andrei Mirestean, andrei.mirestean at gmail dot com
* Intended audience: everyone
* Talk type: lightning talk
* Abstract/description

: I'll do a short presentation of the plugin I have developed as a Summer of Code project. I will talk about the main features (picture uploading, albums management, integration with Photocast, the use of GPS .. ), some small problems that I've encountered and finally few words about the GSoC experience. Also I would like to include a live demonstration of the plugin.

*Author bio

: I'm studing Computer Science (first year, undergraduate) at the Babes-Bolyai University in Cluj-Napoca, Romania. I've been accepted as a Google Summer of Code student for Maemo. This represented my first serious contact with the open source software, but now I'm planning to continue to help the community and develop new applications.

=== Behaviour-Driven Development on Maemo ===
*[http://wiki.maemo.org/User:Japolinario Jose Teixeira] 
*Intended audience: Application developers &amp; platform developers 
*Talk type: Lightning talk
*Abstract/description
: '''What''' is Behaviour-Driven Development (BDD)? '''Why''' BDD matters to Maemo developers? And '''How''' to setup and open-source BDD tool-chain for Maemo ? And, finally '''How''' 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]. 
* I already made a deep dive in the subject. I try now to capture the attention of others to follow. 
*Author bio
: [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.

* After AMS Summit ... 
: The ran presentation is online [http://www.scribd.com/doc/21329144/MaemoSummit-BDD here]. Note that http://cukes.info/ and http://behaviour-driven.org/ are great sites to the ones looking for more information on BDD. 

: Just try it. You and your team will love it.

=== N900 HW architecture overview &amp; power management ===
*Author: Igor Stoppa - igor.stoppa@nokia.com
*Intended audience: application &amp; platform developers
*Talk type: lightning talk
*Abstract/description:
overview of the system HW architecture, with focus on the OMAP processor and how to write power efficient code.
*Author bio:
Igor is project manager for the Core Team (kernel, X, production support, power management) and responsible for the overall use time; in the past he has been developing the power management solution for 770, n800 and n810.

=== From corporations to communities: responsible and effective engagement ===
*Randall &quot;Texrat&quot; Arnold, fabricator at cynicalsigns dot com, http://tabulacrypticum.wordpress.com
*Intended audience is Nokia PR; Nokia Maemo team; Maemo developer, tester and superuser community; other interested parties
*Talk type : best practice/lessons learned presentation
*Abstract/description
: 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).

: This will not be a &quot;what Nokia did wrong&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
.
*Author bio
: 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

=== Mer from a user's perspective ===
*Author: Tomasz Dominikowski (dominikowski at gmail dot com)
*Intended audience: everyone, but aimed at developers in general
*Talk type: lightning talk
*Abstract/description
: Will cover Mer from a purposefully ordinary user's perspective, who just wants it work and get things done while using it, dishearteningly ignoring the sweat and tears of developers, who worked hard to get to this point. 
: Will discuss problems that may arise from raised expectations as Mer's UI starts looking very attractive, but the internals are still not up to scratch. More and more people will get attracted, with next to no clue of what Mer really is and an overwhelming sense of entitlement, the &quot;I want my money back&quot; kind.
*Additional Information
: Might need to show some Mer screenshots.
*Author bio 
:Tomasz Dominikowski is a Linux user since 2004, a GNOME and Ubuntu translator since 2006 (Ubuntu Polish translators admin). Aviary.pl member since 2007, where I he takes care of GNOME and Novell SUSE Enterprise Desktop. In his spare time he remasters Ubuntu for the Polish community. Now involved in Mer, where he helps out by managing translations, patching, packaging, testing and making a general fuss.

=== Nokia PUSH N900 Project Showcase ===
* Ben Mason, Hyper - ben AT hyperhappen.com and Gary Birkett
*Intended audience: platform developers
*Talk type: lightning talk
*Abstract/description
: Nokia has recently launched the PUSH N900 project and we'd like to take the opportunity to showcase it to the Maemo community, hopefully inspiring people to take part.
:PUSH is a unique project from Nokia that brings together the world's most
skilled designers, creatives, artists, hackers, modders and coders to push
the N900 and Maemo to its limits - a competition to build the most
innovative hacks possible using the most advanced technology we know today.
:We'll be running through the background to the project, sharing some of the
hacks we've already created and hopefully answering lots of questions and
inspiring people to get involved.
:Check out http://blogs.nokia.com/pushn900/ for more details.

*Additional Information (optional)
: We'll be bring a laptop, some N900 devices and most likely some other equipment to showcase some of the hacks.

*Author bio
: Ben Mason is a communications strategist responsible for the PUSH N900 project. He has worked with Nokia on a number of device and service launches. He is also a keen follower of digital culture and he writes at http://101culture.com

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Location</title>
    <id>1854</id>
    <revision>
      <id>40958</id>
      <timestamp>2010-12-29T14:47:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add plan</comment>
      <text xml:space="preserve">== WesterGasFabriek ==

[[Image:WGkaart.300dpi.jpg|thumb|400px|alt=Map of WesterGasFabriek|WesterGasFabriek map]]

[[Image:Wgfplgr_schema.jpg|thumb|400px|alt=Plan of WesterGasFabriek|WesterGasFabriek Plan]]
* [http://www.westergasfabriek.nl/english/engels_welcome.php Location Website]
* Four [http://www.youtube.com/watch?v=wSkAFGGv5nY post-industrial spaces] surrounded by culture, parks, canals and fun in [http://www.westergasfabriek.nl/english/engels_welcome.php WesterGasFabriek]:
** [http://www.westergasfabriek.nl/english/engels_zalen_detail.php?detail=295 Transformatorhuis] aka N900 room: keynotes &amp; track 1. 
** [http://www.westergasfabriek.nl/english/engels_zalen_detail.php?detail=313 Machinegebouw] aka N810: track 2. 
** [http://www.flickr.com/photos/quimgil/3527500913/ De Kapel] aka N800: track 3 
** [http://www.westergasfabriek.nl/english/engels_zalen_detail.php?detail=453 Oostelijk Meterhuis] aka 770: special activities.
** Zuiveringshal Oost aka Community room: Maemo Expo, lunch &amp; free space.

== Maps ==

* [http://maps.google.nl/maps/ms?ie=UTF8&amp;hl=en&amp;msa=0&amp;msid=101830574838473753472.0004719766a23bd2a3364&amp;ll=52.386591,4.871587&amp;spn=0.001585,0.004823&amp;t=h&amp;z=18 Google Maps]
* [http://maps.google.com/maps/ms?ie=UTF8&amp;hl=en&amp;msa=0&amp;msid=106262236872679344931.0004740e1bd58b4da44eb&amp;ll=52.360925,4.851151&amp;spn=0.110702,0.193977&amp;z=12 Google Map of surrounding points of interest]
* [http://www.westergasfabriek.nl/uploads/wgf_plattegrond.pdf Location plan] (1,1MB)

== Directions ==

You can go to/from WesterGasFabriek with bus, night bus, tram and of course by car. For details see http://www.westergasfabriek.nl/english/engels_routebeschrijving.php

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Marketing</title>
    <id>1858</id>
    <revision>
      <id>41494</id>
      <timestamp>2011-01-28T14:52:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify links</comment>
      <text xml:space="preserve">The Maemo Summit is a showcase for the Maemo community, so it's important to get the word out.

You can help us promote the event in several ways: 

* Create cool promotion [[#Banners|banners, web badges or flyers]].
* Write about the summit on your website, and add the url below.
* Help in the [http://maemo.org/community/council/maemo_summit_2009-help_finalize_merchandise/ Summit merchandise design].
* Add [[#Banners|banners/web badges]] to your website, put flyers in your work place/university/user group.
* Join the [[#Social networks|Maemo Summit groups]] in social networks.
* Spread the word about the summit, among your friends and colleagues.

== Banners ==

By [http://maemo.org/profile/view/timsamoff/ timsamoff]


[[Image:Ms09-logo_05b2.png]]
[[Image:Ms09-logo_01g.png]]
[[Image:Maesum09_banner_tim.png]]
[[Image:Ms09-logo_02d.png]]

By [http://maemo.org/profile/view/baloo/ baloo]:

[[Image:Maesum09_banner_baloo.png]]

By [http://maemo.org/profile/view/wazd/ wazd]

[[Image:Maesum09_banner_wazd.png]]

== Web Badges ==


== Flyers ==

== Maemo Summit in the news ==

* Add your url here (newer first)

* [http://www.forum.nokia.com/info/sw.nokia.com/id/049a76eb-1a69-436d-af98-c26e05af8e6a/maemo_summit_2009.html Forum Nokia - Event Calendar]
* [http://moblinzone.com/events/66 Moblin Zone]
* [http://upcoming.yahoo.com/event/2974467/ Upcoming - Event Calendar] 
* [http://www.linux-magazine.com/Resources/Event-Calendar Linux Magazine - Event Calendar]
* [http://lwn.net/Calendar/Monthly/2009-10/ LWN.net Community Calendar]
* [http://linux.com/community/events/details/169-maemo-summit-2009 Linux.com - Event Calendar]
* [http://www.linuxjournal.com/content/maemo-summit-2009 Linux Journal - Event Calendar]
* [http://www.valeriovalerio.org/?p=251 Maemo Summit 2009 – Help promote the event!]
* [http://maemo.org/community/council/maemo_summit_2009-help_finalize_merchandise/ Maemo Summit 2009: Help finalize merchandise!]
* [http://linuxuk.org/summit_registration Maemo Summit registration is now open]
* [http://www.valeriovalerio.org/?p=240 Maemo Summit 2009: Call for Content Now Open!]

== Social networks ==

* [https://twitter.com/#search?q=%23maesum Event @ Twitter]
* [http://www.facebook.com/event.php?eid=119955883708&amp;ref=mf Event @ Facebook]
* [http://events.linkedin.com/Maemo-Summit-2009/pub/86202 Event @ Linkedin]


== Checklist ==

* Press releases? On what subject, who will draft &amp; issue, how?
* Press - inviting journalists, issuing press passes, organising interview schedules
* Analysts - do we want to invite any?
* Live (micro)blogging - Twitter/Jaiku # to use, promoting Maemo Summit on blogs, collecting blog posts - leverage maemo.org
* Embargoed announcements - co-ordinate with Nokia to build buzz around big news, if there is any.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Merchandising and printing</title>
    <id>1857</id>
    <revision>
      <id>41670</id>
      <timestamp>2011-02-07T11:41:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Artwork &amp; Design */ add links to SVGs of tshirt logos</comment>
      <text xml:space="preserve">We will need banners, posters, t-shirts, stickers and more.

== Checklist ==

* Requirements list - what are our merchandising options and requirements?
* Quotes - for each option, who will do the printing, for how much?
* Budget - How much is our overall budget?
* T-shirt design - can I enlist the help of Nokia marketing or get a Maemo community member to design this? Run a community competition?
* Poster designs

== Artwork &amp; Design == 

* [[:Image:Ms09-logo_XXX_only.png|Maemo Summit 2009 &quot;XXX&quot; design]] (PNG)
* [http://samoff.com/random/ms09/ms09-logo_back-final.eps Maemo Summit 2009 T-shirt design, back] (EPS CMYK)
* [http://samoff.com/random/ms09/ms09-logo_front-final.eps  Maemo Summit 2009 T-shirt design, front] (EPS CMYK)
** [http://samoff.com/random/ms09/ms09-logo_back-final-PMS.eps Maemo Summit 2009 T-shirt design, back] (EPS PMS)
** [http://samoff.com/random/ms09/ms09-logo_front-final-PMS.eps  Maemo Summit 2009 T-shirt design, front] (EPS PMS)
* [[:Image:Realiteits-beeldmerk-Cyaan.png|WesterGasFabriek logo]] (PNG Cyan)
* [http://samoff.com/random/ms09/ms09-oval_sticker_final.eps Sticker #1] (EPS CMYK)
* [http://samoff.com/random/ms09/ms09-rect_sticker_final.eps Sticker #2] (EPS CMYK)
* [http://samoff.com/random/ms09/maemo.org_logo-cmyk.eps maemo.org logo] (EPS CMYK)
* [[:Image:Maemo_stickers.pdf|maemo.org stickers]] (PDF)
* [[Image:Ms09-shirt_back-sample.png‎|Maemo Summit T-Shirt Back (Sample)]] [[:Image:Ms09-logo_back-final.svg|SVG]]
* [[Image:Ms09-shirt_front-sample.png‎|Maemo Summit T-Shirt Back (Sample)]] [[:Image:Ms09-logo_front-final.svg|SVG]]

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Organization</title>
    <id>1862</id>
    <revision>
      <id>29128</id>
      <timestamp>2010-02-11T16:42:17Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">== Conference checklist ==

Organisation of the conference splits nicely into a number of distinct subsets. Quim Gil did a really great job of tracking the organisation of the [[Maemo Summit 2008]], which made coming up with this list much easier:

* [[../Location]] - including required facilities, catering
* [[../Infrastructure]] - streaming, wifi, electricity - our requirements
* [[../Schedule]] - Conference presentations, lightning talks
* [[../Registration]] and [[../Sponsored travel]] - who is coming, who will have their travel covered, required infrastructure for registration, what is the procedure for payment of expenses
* [[../Merchandising and printing]] - All the Maemo branded stuff we will need for the conference - suppliers, cost proposals, deadlines
* [[../Marketing]]
* [[../Social events]]
* [[../Accommodation]] - collect accommodation options &amp; prices
* [[../Travel]] - How to get there? Maps, travel advice &amp; tips

== Timekeepers ==

We need timekeepers for community day tracks, and I'm looking for volunteers. Please contact Dave Neary &lt;dneary@maemo.org&gt; saying which (available) track &amp; time you can help with. Thanks!

{| class=&quot;wikitable&quot;
! Room
! Time slot
! Volunteer
|-
| Keynotes (N900)
| 10:15 Saturday, 10:00 Sunday
| Dave Neary
|-
| Lightning talks (N900)
| 14:30 Saturday, 14:30 Sunday
| Quim Gil
|-
| N900
| 11:00 - 12:55 Saturday
| Roger Sperberg
|-
| N810
| 11:00 - 12:55 Saturday
| Kamen Bundev (Bundyo)
|-
| N800
| 11:00 - 12:55 Saturday
|
|-
| N900
| 15:45 - 17:10 Saturday
| Mike Jipping
|-
| N810
| 15:45 - 17:10 Saturday
| Valerio Valerio
|-
| N800
| 15:45 - 17:10 Saturday
| Andrei Mirestean
|-
| N900
| 17:30 - 18:25 Saturday
| Dimitris Glezos
|-
| N810
| 17:30 - 18:25 Saturday
| Niels Breet
|-
| N800
| 17:30 - 18:25 Saturday
| Andrea Grandi
|-
| N900
| 11:00 - 12:55 Sunday
| 
|-
| N810
| 11:00 - 12:55 Sunday
| Aniello Del Sorbo
|-
| N800
| 11:00 - 12:55 Sunday
| Keywan
|-
|}

== Live blogging ==

jsmanrique says:
:I think there should/could be:
:* Two people for posting photos and briefing for each talk in a blog (will be there a summit webpage?)
:* On each talk there should be at least one person posting on twitter/identi.ca/jaiku about what's happenning (creating a microblogging chat), also linked to summit webpage
:* [[IRC]] channel on Freenode.
:—[[user:jsmanrique|jsmanrique]]

Ian Lawrence says:
:it seems like ubuntu will be rolling out a micro blogging aggregator for UDS Karmic..there is a mock up here http://uds.striderlance.com/lifestream.html ..seems like it is just some javascript and reg ex parsing so maybe it is a good idea to do something like this for the maemo summit ?

== Live streaming ==

Several solutions:

* [http://qik.com Qik] for live streaming from mobile phone (Nokia has already use it on an event)
* Fluendo technologies?

—[[user:jsmanrique|jsmanrique]]

* [http://www.ustream.tv Ustream.tv]
* [http://www.justin.tv/ Justin.tv]

—[[User:andy80|Andrea Grandi]] 10:17, 11 February 2009 (UTC)

== Post Summit Recordings ==

Recordings will need to be posted online after the event. For this there should be at least one individual recording as many talks, happenings, back stage stuff, as possible. This will need to be edited afterward and posted to an online video delivery site such as vimeo (http://www.vimeo.com). I have full editing facilities available with HD recording equipment so hopefully this years coverage will be much better than last years.

--[[User:baloo|baloo]] 19:22, 13 May 2009 (UTC)

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Planning</title>
    <id>1952</id>
    <revision>
      <id>13912</id>
      <timestamp>2009-06-03T10:07:35Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Maemo Summit 2009/Organization]]</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo Summit 2009/Organization]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Registration</title>
    <id>1852</id>
    <revision>
      <id>29129</id>
      <timestamp>2010-02-11T16:42:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">We will use the same registration module which was used last year to make things simple. We will need a separate new database for people to register.

Registration allows us to estimate the required quantity of things like food, t-shirts, conference space.

== Checklist ==

* Set up new database and registration application
* What is the cost for attending? Free last year, assume it should be free this year again.
* Target registration count: 300. What is the event capacity? At what stage do we shut down registrations?
* Attendee badges - design, printing, include schedule on back?
* Welcome desk - need volunteers to assist attendees, give their badges, give directions

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule</title>
    <id>2665</id>
    <revision>
      <id>19844</id>
      <timestamp>2009-10-12T06:14:41Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Maemo Summit 2009/Schedule]] moved to [[Maemo Summit 2009]]: merge</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Day 1</title>
    <id>2478</id>
    <revision>
      <id>29130</id>
      <timestamp>2010-02-11T16:42:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">=== Maemo 5 and the Nokia N900 ===
* Presenter: Ari Jaaksi, VP Maemo Devices, Nokia 
 
* 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.

=== Changing PC &amp; Mobile Landscape; Why Linux will play a Critical Role  ===
* Presenter: Jim Zemlin, Executive Director of the Linux Foundation 

* 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. 
: 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'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.

=== Nokia Nseries Devices on Maemo===
* Presenter: Jose-Luis Martinez Merino, VP, Marketing, Nokia  
 
* Abstract: Jose-Luis will explain which role Maemo-based Nseries devices play in Nokia's portfolio.

=== Harmattan Highlights - Developer Opportunities ===
* Presenter: Janne Heikkinen, Director Maemo Product Planning, Nokia 

* 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.

=== Why the Maemo Community matters to Nokia ===
* Inteviewer: Alan &quot;qole&quot; Bruce of the 2nd &amp; 3rd Maemo Community Councils
* Interviewee: Ari Jaaksi, VP Maemo Devices, Nokia
 
* 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.

=== UI design of Maemo 5 apps ===
* Presenter: Annu-Maaria Nivala, Project Manager, User Experience, Digia  
 
* Abstract: Digia's User Experience Team'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.

=== Developing widgets on Maemo 5 - showcase Foreca Weather ===
* Presenter: Juha Järvi, Software Designer, Foreca   
 
* 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'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. See [[:Image:Maemo_Summit_2009_-_Juha_Jarvi_-_Foreca.pdf | Slides]].

=== Developing apps with Qt for Maemo5 ===
* Presenter: Kate Alhola, Forum Nokia, Chief Guru on Maemo  
 
* Abstract: coming soon

=== Developing apps with Qt on Harmattan ===
* Presenter: Ville Lavonius, Product Manager Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developing apps with Nokia Web Runtime ===
* Presenter: Santtu Ahonen, Head of Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developer Support for Maemo by Forum Nokia ===
* Presenter: Matt Collins, Director, Forum Nokia Marketing     
 
* Abstract: Forum Nokia is the world'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's offerings, and our promise to developers for fostering an open cross-platform ecosystem.

=== UX panel ===
* Moderator:  Tim Samoff, 2nd Maemo Community Council
* Panelists: Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5  
 
* 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.

* Tim Samoff is an award-winning filmmaker and designer who has been working in various industries for almost 20 years. He'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, &quot;An Unofficial Guide to Creating a Most Excellent Maemo User Interface.&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.

* 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's corporate user experience strategy, and working in various UX design management and research positions in Nokia'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'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 &quot;Mobile Usability: How Nokia Changed the Face of the Mobile Phone&quot;.

* 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

=== Firefox on Maemo ===
* Presenter: Stuart Parmenter, Director of Engineering, Mozilla     
 
* Abstract: coming soon

=== Present and future of Maemo digital marketing ===
* Presenter: Isko Salminen, Production Manager, Activeark and Jussi Mäkinen, Maemo Marketing, Nokia     
 
* Abstract: coming soon

* 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. 
    Contact:
    @isko (twitter)
    isko.salminen@activeark.com (email)

=== Biz apps on Maemo ===
* Presenter: Kari Pikkarainen, Product Manager Productivity, Nokia      
 
* 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.

*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.

=== Skype on Maemo ===
* Presenter: Mark Douglas, Mobile Product Manager, Skype      
 
* Abstract: coming soon

=== Cross-platform with Qt - live ===
* Presenter: Ariya Hidayat, Software Engineer, Nokia       

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.
 
* Abstract:
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 '''live demos'''.

=== Mer - how the community innovates ===
* Presenter: Carsten Munk, Lead Developer, Mer project 
      
* 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.

=== Your foundation for open-source innovation: TI’s OMAP processor-based Zoom platform  ===
* Presenter: Ameet Suri, Marketing Manager, OMAP™ Mobile Communication and Computing Business Line, Wireless Business Unit, Texas Instruments.

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.

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. 

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.  

Suri previously held engineering positions at Samsung and Mastech. At these companies, he gained experience developing and architecting various software technologies for handsets. 

Suri earned a bachelor’s degree in computer science from MGM College of Engineering and Technology in India. 
     
* 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.

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.

=== Feedservice and plug-ins development in Maemo 5 ===
* Presenter: Mikko Levonmaa, Ixonos       
 
* 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.

=== Harmattan Architecture Overview ===
* Presenter: Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia       
* Presentation: [http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Maemo 6 &quot;Harmattan&quot; Architecture Overview] on slideshare.net

=== Porting an OpenGL game to GL ES ===
* Presenter: Oliver Mcfadden, Software Engineer, Nokia       

* 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.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Day 1</title>
    <id>2478</id>
    <revision>
      <id>29130</id>
      <timestamp>2010-02-11T16:42:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">=== Maemo 5 and the Nokia N900 ===
* Presenter: Ari Jaaksi, VP Maemo Devices, Nokia 
 
* 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.

=== Changing PC &amp; Mobile Landscape; Why Linux will play a Critical Role  ===
* Presenter: Jim Zemlin, Executive Director of the Linux Foundation 

* 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. 
: 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'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.

=== Nokia Nseries Devices on Maemo===
* Presenter: Jose-Luis Martinez Merino, VP, Marketing, Nokia  
 
* Abstract: Jose-Luis will explain which role Maemo-based Nseries devices play in Nokia's portfolio.

=== Harmattan Highlights - Developer Opportunities ===
* Presenter: Janne Heikkinen, Director Maemo Product Planning, Nokia 

* 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.

=== Why the Maemo Community matters to Nokia ===
* Inteviewer: Alan &quot;qole&quot; Bruce of the 2nd &amp; 3rd Maemo Community Councils
* Interviewee: Ari Jaaksi, VP Maemo Devices, Nokia
 
* 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.

=== UI design of Maemo 5 apps ===
* Presenter: Annu-Maaria Nivala, Project Manager, User Experience, Digia  
 
* Abstract: Digia's User Experience Team'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.

=== Developing widgets on Maemo 5 - showcase Foreca Weather ===
* Presenter: Juha Järvi, Software Designer, Foreca   
 
* 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'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. See [[:Image:Maemo_Summit_2009_-_Juha_Jarvi_-_Foreca.pdf | Slides]].

=== Developing apps with Qt for Maemo5 ===
* Presenter: Kate Alhola, Forum Nokia, Chief Guru on Maemo  
 
* Abstract: coming soon

=== Developing apps with Qt on Harmattan ===
* Presenter: Ville Lavonius, Product Manager Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developing apps with Nokia Web Runtime ===
* Presenter: Santtu Ahonen, Head of Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developer Support for Maemo by Forum Nokia ===
* Presenter: Matt Collins, Director, Forum Nokia Marketing     
 
* Abstract: Forum Nokia is the world'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's offerings, and our promise to developers for fostering an open cross-platform ecosystem.

=== UX panel ===
* Moderator:  Tim Samoff, 2nd Maemo Community Council
* Panelists: Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5  
 
* 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.

* Tim Samoff is an award-winning filmmaker and designer who has been working in various industries for almost 20 years. He'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, &quot;An Unofficial Guide to Creating a Most Excellent Maemo User Interface.&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.

* 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's corporate user experience strategy, and working in various UX design management and research positions in Nokia'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'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 &quot;Mobile Usability: How Nokia Changed the Face of the Mobile Phone&quot;.

* 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

=== Firefox on Maemo ===
* Presenter: Stuart Parmenter, Director of Engineering, Mozilla     
 
* Abstract: coming soon

=== Present and future of Maemo digital marketing ===
* Presenter: Isko Salminen, Production Manager, Activeark and Jussi Mäkinen, Maemo Marketing, Nokia     
 
* Abstract: coming soon

* 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. 
    Contact:
    @isko (twitter)
    isko.salminen@activeark.com (email)

=== Biz apps on Maemo ===
* Presenter: Kari Pikkarainen, Product Manager Productivity, Nokia      
 
* 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.

*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.

=== Skype on Maemo ===
* Presenter: Mark Douglas, Mobile Product Manager, Skype      
 
* Abstract: coming soon

=== Cross-platform with Qt - live ===
* Presenter: Ariya Hidayat, Software Engineer, Nokia       

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.
 
* Abstract:
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 '''live demos'''.

=== Mer - how the community innovates ===
* Presenter: Carsten Munk, Lead Developer, Mer project 
      
* 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.

=== Your foundation for open-source innovation: TI’s OMAP processor-based Zoom platform  ===
* Presenter: Ameet Suri, Marketing Manager, OMAP™ Mobile Communication and Computing Business Line, Wireless Business Unit, Texas Instruments.

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.

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. 

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.  

Suri previously held engineering positions at Samsung and Mastech. At these companies, he gained experience developing and architecting various software technologies for handsets. 

Suri earned a bachelor’s degree in computer science from MGM College of Engineering and Technology in India. 
     
* 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.

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.

=== Feedservice and plug-ins development in Maemo 5 ===
* Presenter: Mikko Levonmaa, Ixonos       
 
* 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.

=== Harmattan Architecture Overview ===
* Presenter: Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia       
* Presentation: [http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Maemo 6 &quot;Harmattan&quot; Architecture Overview] on slideshare.net

=== Porting an OpenGL game to GL ES ===
* Presenter: Oliver Mcfadden, Software Engineer, Nokia       

* 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.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Day 1</title>
    <id>2478</id>
    <revision>
      <id>29130</id>
      <timestamp>2010-02-11T16:42:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">=== Maemo 5 and the Nokia N900 ===
* Presenter: Ari Jaaksi, VP Maemo Devices, Nokia 
 
* 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.

=== Changing PC &amp; Mobile Landscape; Why Linux will play a Critical Role  ===
* Presenter: Jim Zemlin, Executive Director of the Linux Foundation 

* 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. 
: 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'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.

=== Nokia Nseries Devices on Maemo===
* Presenter: Jose-Luis Martinez Merino, VP, Marketing, Nokia  
 
* Abstract: Jose-Luis will explain which role Maemo-based Nseries devices play in Nokia's portfolio.

=== Harmattan Highlights - Developer Opportunities ===
* Presenter: Janne Heikkinen, Director Maemo Product Planning, Nokia 

* 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.

=== Why the Maemo Community matters to Nokia ===
* Inteviewer: Alan &quot;qole&quot; Bruce of the 2nd &amp; 3rd Maemo Community Councils
* Interviewee: Ari Jaaksi, VP Maemo Devices, Nokia
 
* 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.

=== UI design of Maemo 5 apps ===
* Presenter: Annu-Maaria Nivala, Project Manager, User Experience, Digia  
 
* Abstract: Digia's User Experience Team'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.

=== Developing widgets on Maemo 5 - showcase Foreca Weather ===
* Presenter: Juha Järvi, Software Designer, Foreca   
 
* 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'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. See [[:Image:Maemo_Summit_2009_-_Juha_Jarvi_-_Foreca.pdf | Slides]].

=== Developing apps with Qt for Maemo5 ===
* Presenter: Kate Alhola, Forum Nokia, Chief Guru on Maemo  
 
* Abstract: coming soon

=== Developing apps with Qt on Harmattan ===
* Presenter: Ville Lavonius, Product Manager Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developing apps with Nokia Web Runtime ===
* Presenter: Santtu Ahonen, Head of Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developer Support for Maemo by Forum Nokia ===
* Presenter: Matt Collins, Director, Forum Nokia Marketing     
 
* Abstract: Forum Nokia is the world'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's offerings, and our promise to developers for fostering an open cross-platform ecosystem.

=== UX panel ===
* Moderator:  Tim Samoff, 2nd Maemo Community Council
* Panelists: Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5  
 
* 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.

* Tim Samoff is an award-winning filmmaker and designer who has been working in various industries for almost 20 years. He'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, &quot;An Unofficial Guide to Creating a Most Excellent Maemo User Interface.&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.

* 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's corporate user experience strategy, and working in various UX design management and research positions in Nokia'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'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 &quot;Mobile Usability: How Nokia Changed the Face of the Mobile Phone&quot;.

* 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

=== Firefox on Maemo ===
* Presenter: Stuart Parmenter, Director of Engineering, Mozilla     
 
* Abstract: coming soon

=== Present and future of Maemo digital marketing ===
* Presenter: Isko Salminen, Production Manager, Activeark and Jussi Mäkinen, Maemo Marketing, Nokia     
 
* Abstract: coming soon

* 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. 
    Contact:
    @isko (twitter)
    isko.salminen@activeark.com (email)

=== Biz apps on Maemo ===
* Presenter: Kari Pikkarainen, Product Manager Productivity, Nokia      
 
* 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.

*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.

=== Skype on Maemo ===
* Presenter: Mark Douglas, Mobile Product Manager, Skype      
 
* Abstract: coming soon

=== Cross-platform with Qt - live ===
* Presenter: Ariya Hidayat, Software Engineer, Nokia       

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.
 
* Abstract:
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 '''live demos'''.

=== Mer - how the community innovates ===
* Presenter: Carsten Munk, Lead Developer, Mer project 
      
* 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.

=== Your foundation for open-source innovation: TI’s OMAP processor-based Zoom platform  ===
* Presenter: Ameet Suri, Marketing Manager, OMAP™ Mobile Communication and Computing Business Line, Wireless Business Unit, Texas Instruments.

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.

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. 

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.  

Suri previously held engineering positions at Samsung and Mastech. At these companies, he gained experience developing and architecting various software technologies for handsets. 

Suri earned a bachelor’s degree in computer science from MGM College of Engineering and Technology in India. 
     
* 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.

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.

=== Feedservice and plug-ins development in Maemo 5 ===
* Presenter: Mikko Levonmaa, Ixonos       
 
* 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.

=== Harmattan Architecture Overview ===
* Presenter: Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia       
* Presentation: [http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Maemo 6 &quot;Harmattan&quot; Architecture Overview] on slideshare.net

=== Porting an OpenGL game to GL ES ===
* Presenter: Oliver Mcfadden, Software Engineer, Nokia       

* 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.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Day 1</title>
    <id>2478</id>
    <revision>
      <id>29130</id>
      <timestamp>2010-02-11T16:42:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">=== Maemo 5 and the Nokia N900 ===
* Presenter: Ari Jaaksi, VP Maemo Devices, Nokia 
 
* 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.

=== Changing PC &amp; Mobile Landscape; Why Linux will play a Critical Role  ===
* Presenter: Jim Zemlin, Executive Director of the Linux Foundation 

* 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. 
: 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'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.

=== Nokia Nseries Devices on Maemo===
* Presenter: Jose-Luis Martinez Merino, VP, Marketing, Nokia  
 
* Abstract: Jose-Luis will explain which role Maemo-based Nseries devices play in Nokia's portfolio.

=== Harmattan Highlights - Developer Opportunities ===
* Presenter: Janne Heikkinen, Director Maemo Product Planning, Nokia 

* 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.

=== Why the Maemo Community matters to Nokia ===
* Inteviewer: Alan &quot;qole&quot; Bruce of the 2nd &amp; 3rd Maemo Community Councils
* Interviewee: Ari Jaaksi, VP Maemo Devices, Nokia
 
* 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.

=== UI design of Maemo 5 apps ===
* Presenter: Annu-Maaria Nivala, Project Manager, User Experience, Digia  
 
* Abstract: Digia's User Experience Team'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.

=== Developing widgets on Maemo 5 - showcase Foreca Weather ===
* Presenter: Juha Järvi, Software Designer, Foreca   
 
* 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'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. See [[:Image:Maemo_Summit_2009_-_Juha_Jarvi_-_Foreca.pdf | Slides]].

=== Developing apps with Qt for Maemo5 ===
* Presenter: Kate Alhola, Forum Nokia, Chief Guru on Maemo  
 
* Abstract: coming soon

=== Developing apps with Qt on Harmattan ===
* Presenter: Ville Lavonius, Product Manager Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developing apps with Nokia Web Runtime ===
* Presenter: Santtu Ahonen, Head of Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developer Support for Maemo by Forum Nokia ===
* Presenter: Matt Collins, Director, Forum Nokia Marketing     
 
* Abstract: Forum Nokia is the world'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's offerings, and our promise to developers for fostering an open cross-platform ecosystem.

=== UX panel ===
* Moderator:  Tim Samoff, 2nd Maemo Community Council
* Panelists: Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5  
 
* 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.

* Tim Samoff is an award-winning filmmaker and designer who has been working in various industries for almost 20 years. He'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, &quot;An Unofficial Guide to Creating a Most Excellent Maemo User Interface.&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.

* 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's corporate user experience strategy, and working in various UX design management and research positions in Nokia'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'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 &quot;Mobile Usability: How Nokia Changed the Face of the Mobile Phone&quot;.

* 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

=== Firefox on Maemo ===
* Presenter: Stuart Parmenter, Director of Engineering, Mozilla     
 
* Abstract: coming soon

=== Present and future of Maemo digital marketing ===
* Presenter: Isko Salminen, Production Manager, Activeark and Jussi Mäkinen, Maemo Marketing, Nokia     
 
* Abstract: coming soon

* 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. 
    Contact:
    @isko (twitter)
    isko.salminen@activeark.com (email)

=== Biz apps on Maemo ===
* Presenter: Kari Pikkarainen, Product Manager Productivity, Nokia      
 
* 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.

*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.

=== Skype on Maemo ===
* Presenter: Mark Douglas, Mobile Product Manager, Skype      
 
* Abstract: coming soon

=== Cross-platform with Qt - live ===
* Presenter: Ariya Hidayat, Software Engineer, Nokia       

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.
 
* Abstract:
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 '''live demos'''.

=== Mer - how the community innovates ===
* Presenter: Carsten Munk, Lead Developer, Mer project 
      
* 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.

=== Your foundation for open-source innovation: TI’s OMAP processor-based Zoom platform  ===
* Presenter: Ameet Suri, Marketing Manager, OMAP™ Mobile Communication and Computing Business Line, Wireless Business Unit, Texas Instruments.

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.

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. 

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.  

Suri previously held engineering positions at Samsung and Mastech. At these companies, he gained experience developing and architecting various software technologies for handsets. 

Suri earned a bachelor’s degree in computer science from MGM College of Engineering and Technology in India. 
     
* 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.

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.

=== Feedservice and plug-ins development in Maemo 5 ===
* Presenter: Mikko Levonmaa, Ixonos       
 
* 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.

=== Harmattan Architecture Overview ===
* Presenter: Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia       
* Presentation: [http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Maemo 6 &quot;Harmattan&quot; Architecture Overview] on slideshare.net

=== Porting an OpenGL game to GL ES ===
* Presenter: Oliver Mcfadden, Software Engineer, Nokia       

* 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.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Day 1</title>
    <id>2478</id>
    <revision>
      <id>29130</id>
      <timestamp>2010-02-11T16:42:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">=== Maemo 5 and the Nokia N900 ===
* Presenter: Ari Jaaksi, VP Maemo Devices, Nokia 
 
* 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.

=== Changing PC &amp; Mobile Landscape; Why Linux will play a Critical Role  ===
* Presenter: Jim Zemlin, Executive Director of the Linux Foundation 

* 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. 
: 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'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.

=== Nokia Nseries Devices on Maemo===
* Presenter: Jose-Luis Martinez Merino, VP, Marketing, Nokia  
 
* Abstract: Jose-Luis will explain which role Maemo-based Nseries devices play in Nokia's portfolio.

=== Harmattan Highlights - Developer Opportunities ===
* Presenter: Janne Heikkinen, Director Maemo Product Planning, Nokia 

* 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.

=== Why the Maemo Community matters to Nokia ===
* Inteviewer: Alan &quot;qole&quot; Bruce of the 2nd &amp; 3rd Maemo Community Councils
* Interviewee: Ari Jaaksi, VP Maemo Devices, Nokia
 
* 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.

=== UI design of Maemo 5 apps ===
* Presenter: Annu-Maaria Nivala, Project Manager, User Experience, Digia  
 
* Abstract: Digia's User Experience Team'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.

=== Developing widgets on Maemo 5 - showcase Foreca Weather ===
* Presenter: Juha Järvi, Software Designer, Foreca   
 
* 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'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. See [[:Image:Maemo_Summit_2009_-_Juha_Jarvi_-_Foreca.pdf | Slides]].

=== Developing apps with Qt for Maemo5 ===
* Presenter: Kate Alhola, Forum Nokia, Chief Guru on Maemo  
 
* Abstract: coming soon

=== Developing apps with Qt on Harmattan ===
* Presenter: Ville Lavonius, Product Manager Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developing apps with Nokia Web Runtime ===
* Presenter: Santtu Ahonen, Head of Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developer Support for Maemo by Forum Nokia ===
* Presenter: Matt Collins, Director, Forum Nokia Marketing     
 
* Abstract: Forum Nokia is the world'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's offerings, and our promise to developers for fostering an open cross-platform ecosystem.

=== UX panel ===
* Moderator:  Tim Samoff, 2nd Maemo Community Council
* Panelists: Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5  
 
* 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.

* Tim Samoff is an award-winning filmmaker and designer who has been working in various industries for almost 20 years. He'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, &quot;An Unofficial Guide to Creating a Most Excellent Maemo User Interface.&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.

* 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's corporate user experience strategy, and working in various UX design management and research positions in Nokia'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'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 &quot;Mobile Usability: How Nokia Changed the Face of the Mobile Phone&quot;.

* 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

=== Firefox on Maemo ===
* Presenter: Stuart Parmenter, Director of Engineering, Mozilla     
 
* Abstract: coming soon

=== Present and future of Maemo digital marketing ===
* Presenter: Isko Salminen, Production Manager, Activeark and Jussi Mäkinen, Maemo Marketing, Nokia     
 
* Abstract: coming soon

* 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. 
    Contact:
    @isko (twitter)
    isko.salminen@activeark.com (email)

=== Biz apps on Maemo ===
* Presenter: Kari Pikkarainen, Product Manager Productivity, Nokia      
 
* 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.

*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.

=== Skype on Maemo ===
* Presenter: Mark Douglas, Mobile Product Manager, Skype      
 
* Abstract: coming soon

=== Cross-platform with Qt - live ===
* Presenter: Ariya Hidayat, Software Engineer, Nokia       

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.
 
* Abstract:
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 '''live demos'''.

=== Mer - how the community innovates ===
* Presenter: Carsten Munk, Lead Developer, Mer project 
      
* 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.

=== Your foundation for open-source innovation: TI’s OMAP processor-based Zoom platform  ===
* Presenter: Ameet Suri, Marketing Manager, OMAP™ Mobile Communication and Computing Business Line, Wireless Business Unit, Texas Instruments.

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.

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. 

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.  

Suri previously held engineering positions at Samsung and Mastech. At these companies, he gained experience developing and architecting various software technologies for handsets. 

Suri earned a bachelor’s degree in computer science from MGM College of Engineering and Technology in India. 
     
* 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.

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.

=== Feedservice and plug-ins development in Maemo 5 ===
* Presenter: Mikko Levonmaa, Ixonos       
 
* 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.

=== Harmattan Architecture Overview ===
* Presenter: Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia       
* Presentation: [http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Maemo 6 &quot;Harmattan&quot; Architecture Overview] on slideshare.net

=== Porting an OpenGL game to GL ES ===
* Presenter: Oliver Mcfadden, Software Engineer, Nokia       

* 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.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Day 1</title>
    <id>2478</id>
    <revision>
      <id>29130</id>
      <timestamp>2010-02-11T16:42:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">=== Maemo 5 and the Nokia N900 ===
* Presenter: Ari Jaaksi, VP Maemo Devices, Nokia 
 
* 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.

=== Changing PC &amp; Mobile Landscape; Why Linux will play a Critical Role  ===
* Presenter: Jim Zemlin, Executive Director of the Linux Foundation 

* 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. 
: 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'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.

=== Nokia Nseries Devices on Maemo===
* Presenter: Jose-Luis Martinez Merino, VP, Marketing, Nokia  
 
* Abstract: Jose-Luis will explain which role Maemo-based Nseries devices play in Nokia's portfolio.

=== Harmattan Highlights - Developer Opportunities ===
* Presenter: Janne Heikkinen, Director Maemo Product Planning, Nokia 

* 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.

=== Why the Maemo Community matters to Nokia ===
* Inteviewer: Alan &quot;qole&quot; Bruce of the 2nd &amp; 3rd Maemo Community Councils
* Interviewee: Ari Jaaksi, VP Maemo Devices, Nokia
 
* 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.

=== UI design of Maemo 5 apps ===
* Presenter: Annu-Maaria Nivala, Project Manager, User Experience, Digia  
 
* Abstract: Digia's User Experience Team'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.

=== Developing widgets on Maemo 5 - showcase Foreca Weather ===
* Presenter: Juha Järvi, Software Designer, Foreca   
 
* 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'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. See [[:Image:Maemo_Summit_2009_-_Juha_Jarvi_-_Foreca.pdf | Slides]].

=== Developing apps with Qt for Maemo5 ===
* Presenter: Kate Alhola, Forum Nokia, Chief Guru on Maemo  
 
* Abstract: coming soon

=== Developing apps with Qt on Harmattan ===
* Presenter: Ville Lavonius, Product Manager Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developing apps with Nokia Web Runtime ===
* Presenter: Santtu Ahonen, Head of Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developer Support for Maemo by Forum Nokia ===
* Presenter: Matt Collins, Director, Forum Nokia Marketing     
 
* Abstract: Forum Nokia is the world'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's offerings, and our promise to developers for fostering an open cross-platform ecosystem.

=== UX panel ===
* Moderator:  Tim Samoff, 2nd Maemo Community Council
* Panelists: Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5  
 
* 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.

* Tim Samoff is an award-winning filmmaker and designer who has been working in various industries for almost 20 years. He'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, &quot;An Unofficial Guide to Creating a Most Excellent Maemo User Interface.&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.

* 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's corporate user experience strategy, and working in various UX design management and research positions in Nokia'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'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 &quot;Mobile Usability: How Nokia Changed the Face of the Mobile Phone&quot;.

* 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

=== Firefox on Maemo ===
* Presenter: Stuart Parmenter, Director of Engineering, Mozilla     
 
* Abstract: coming soon

=== Present and future of Maemo digital marketing ===
* Presenter: Isko Salminen, Production Manager, Activeark and Jussi Mäkinen, Maemo Marketing, Nokia     
 
* Abstract: coming soon

* 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. 
    Contact:
    @isko (twitter)
    isko.salminen@activeark.com (email)

=== Biz apps on Maemo ===
* Presenter: Kari Pikkarainen, Product Manager Productivity, Nokia      
 
* 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.

*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.

=== Skype on Maemo ===
* Presenter: Mark Douglas, Mobile Product Manager, Skype      
 
* Abstract: coming soon

=== Cross-platform with Qt - live ===
* Presenter: Ariya Hidayat, Software Engineer, Nokia       

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.
 
* Abstract:
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 '''live demos'''.

=== Mer - how the community innovates ===
* Presenter: Carsten Munk, Lead Developer, Mer project 
      
* 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.

=== Your foundation for open-source innovation: TI’s OMAP processor-based Zoom platform  ===
* Presenter: Ameet Suri, Marketing Manager, OMAP™ Mobile Communication and Computing Business Line, Wireless Business Unit, Texas Instruments.

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.

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. 

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.  

Suri previously held engineering positions at Samsung and Mastech. At these companies, he gained experience developing and architecting various software technologies for handsets. 

Suri earned a bachelor’s degree in computer science from MGM College of Engineering and Technology in India. 
     
* 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.

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.

=== Feedservice and plug-ins development in Maemo 5 ===
* Presenter: Mikko Levonmaa, Ixonos       
 
* 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.

=== Harmattan Architecture Overview ===
* Presenter: Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia       
* Presentation: [http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Maemo 6 &quot;Harmattan&quot; Architecture Overview] on slideshare.net

=== Porting an OpenGL game to GL ES ===
* Presenter: Oliver Mcfadden, Software Engineer, Nokia       

* 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.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Day 1</title>
    <id>2478</id>
    <revision>
      <id>29130</id>
      <timestamp>2010-02-11T16:42:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">=== Maemo 5 and the Nokia N900 ===
* Presenter: Ari Jaaksi, VP Maemo Devices, Nokia 
 
* 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.

=== Changing PC &amp; Mobile Landscape; Why Linux will play a Critical Role  ===
* Presenter: Jim Zemlin, Executive Director of the Linux Foundation 

* 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. 
: 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'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.

=== Nokia Nseries Devices on Maemo===
* Presenter: Jose-Luis Martinez Merino, VP, Marketing, Nokia  
 
* Abstract: Jose-Luis will explain which role Maemo-based Nseries devices play in Nokia's portfolio.

=== Harmattan Highlights - Developer Opportunities ===
* Presenter: Janne Heikkinen, Director Maemo Product Planning, Nokia 

* 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.

=== Why the Maemo Community matters to Nokia ===
* Inteviewer: Alan &quot;qole&quot; Bruce of the 2nd &amp; 3rd Maemo Community Councils
* Interviewee: Ari Jaaksi, VP Maemo Devices, Nokia
 
* 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.

=== UI design of Maemo 5 apps ===
* Presenter: Annu-Maaria Nivala, Project Manager, User Experience, Digia  
 
* Abstract: Digia's User Experience Team'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.

=== Developing widgets on Maemo 5 - showcase Foreca Weather ===
* Presenter: Juha Järvi, Software Designer, Foreca   
 
* 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'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. See [[:Image:Maemo_Summit_2009_-_Juha_Jarvi_-_Foreca.pdf | Slides]].

=== Developing apps with Qt for Maemo5 ===
* Presenter: Kate Alhola, Forum Nokia, Chief Guru on Maemo  
 
* Abstract: coming soon

=== Developing apps with Qt on Harmattan ===
* Presenter: Ville Lavonius, Product Manager Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developing apps with Nokia Web Runtime ===
* Presenter: Santtu Ahonen, Head of Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developer Support for Maemo by Forum Nokia ===
* Presenter: Matt Collins, Director, Forum Nokia Marketing     
 
* Abstract: Forum Nokia is the world'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's offerings, and our promise to developers for fostering an open cross-platform ecosystem.

=== UX panel ===
* Moderator:  Tim Samoff, 2nd Maemo Community Council
* Panelists: Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5  
 
* 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.

* Tim Samoff is an award-winning filmmaker and designer who has been working in various industries for almost 20 years. He'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, &quot;An Unofficial Guide to Creating a Most Excellent Maemo User Interface.&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.

* 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's corporate user experience strategy, and working in various UX design management and research positions in Nokia'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'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 &quot;Mobile Usability: How Nokia Changed the Face of the Mobile Phone&quot;.

* 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

=== Firefox on Maemo ===
* Presenter: Stuart Parmenter, Director of Engineering, Mozilla     
 
* Abstract: coming soon

=== Present and future of Maemo digital marketing ===
* Presenter: Isko Salminen, Production Manager, Activeark and Jussi Mäkinen, Maemo Marketing, Nokia     
 
* Abstract: coming soon

* 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. 
    Contact:
    @isko (twitter)
    isko.salminen@activeark.com (email)

=== Biz apps on Maemo ===
* Presenter: Kari Pikkarainen, Product Manager Productivity, Nokia      
 
* 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.

*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.

=== Skype on Maemo ===
* Presenter: Mark Douglas, Mobile Product Manager, Skype      
 
* Abstract: coming soon

=== Cross-platform with Qt - live ===
* Presenter: Ariya Hidayat, Software Engineer, Nokia       

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.
 
* Abstract:
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 '''live demos'''.

=== Mer - how the community innovates ===
* Presenter: Carsten Munk, Lead Developer, Mer project 
      
* 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.

=== Your foundation for open-source innovation: TI’s OMAP processor-based Zoom platform  ===
* Presenter: Ameet Suri, Marketing Manager, OMAP™ Mobile Communication and Computing Business Line, Wireless Business Unit, Texas Instruments.

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.

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. 

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.  

Suri previously held engineering positions at Samsung and Mastech. At these companies, he gained experience developing and architecting various software technologies for handsets. 

Suri earned a bachelor’s degree in computer science from MGM College of Engineering and Technology in India. 
     
* 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.

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.

=== Feedservice and plug-ins development in Maemo 5 ===
* Presenter: Mikko Levonmaa, Ixonos       
 
* 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.

=== Harmattan Architecture Overview ===
* Presenter: Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia       
* Presentation: [http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Maemo 6 &quot;Harmattan&quot; Architecture Overview] on slideshare.net

=== Porting an OpenGL game to GL ES ===
* Presenter: Oliver Mcfadden, Software Engineer, Nokia       

* 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.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Day 1</title>
    <id>2478</id>
    <revision>
      <id>29130</id>
      <timestamp>2010-02-11T16:42:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">=== Maemo 5 and the Nokia N900 ===
* Presenter: Ari Jaaksi, VP Maemo Devices, Nokia 
 
* 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.

=== Changing PC &amp; Mobile Landscape; Why Linux will play a Critical Role  ===
* Presenter: Jim Zemlin, Executive Director of the Linux Foundation 

* 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. 
: 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'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.

=== Nokia Nseries Devices on Maemo===
* Presenter: Jose-Luis Martinez Merino, VP, Marketing, Nokia  
 
* Abstract: Jose-Luis will explain which role Maemo-based Nseries devices play in Nokia's portfolio.

=== Harmattan Highlights - Developer Opportunities ===
* Presenter: Janne Heikkinen, Director Maemo Product Planning, Nokia 

* 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.

=== Why the Maemo Community matters to Nokia ===
* Inteviewer: Alan &quot;qole&quot; Bruce of the 2nd &amp; 3rd Maemo Community Councils
* Interviewee: Ari Jaaksi, VP Maemo Devices, Nokia
 
* 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.

=== UI design of Maemo 5 apps ===
* Presenter: Annu-Maaria Nivala, Project Manager, User Experience, Digia  
 
* Abstract: Digia's User Experience Team'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.

=== Developing widgets on Maemo 5 - showcase Foreca Weather ===
* Presenter: Juha Järvi, Software Designer, Foreca   
 
* 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'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. See [[:Image:Maemo_Summit_2009_-_Juha_Jarvi_-_Foreca.pdf | Slides]].

=== Developing apps with Qt for Maemo5 ===
* Presenter: Kate Alhola, Forum Nokia, Chief Guru on Maemo  
 
* Abstract: coming soon

=== Developing apps with Qt on Harmattan ===
* Presenter: Ville Lavonius, Product Manager Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developing apps with Nokia Web Runtime ===
* Presenter: Santtu Ahonen, Head of Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developer Support for Maemo by Forum Nokia ===
* Presenter: Matt Collins, Director, Forum Nokia Marketing     
 
* Abstract: Forum Nokia is the world'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's offerings, and our promise to developers for fostering an open cross-platform ecosystem.

=== UX panel ===
* Moderator:  Tim Samoff, 2nd Maemo Community Council
* Panelists: Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5  
 
* 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.

* Tim Samoff is an award-winning filmmaker and designer who has been working in various industries for almost 20 years. He'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, &quot;An Unofficial Guide to Creating a Most Excellent Maemo User Interface.&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.

* 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's corporate user experience strategy, and working in various UX design management and research positions in Nokia'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'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 &quot;Mobile Usability: How Nokia Changed the Face of the Mobile Phone&quot;.

* 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

=== Firefox on Maemo ===
* Presenter: Stuart Parmenter, Director of Engineering, Mozilla     
 
* Abstract: coming soon

=== Present and future of Maemo digital marketing ===
* Presenter: Isko Salminen, Production Manager, Activeark and Jussi Mäkinen, Maemo Marketing, Nokia     
 
* Abstract: coming soon

* 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. 
    Contact:
    @isko (twitter)
    isko.salminen@activeark.com (email)

=== Biz apps on Maemo ===
* Presenter: Kari Pikkarainen, Product Manager Productivity, Nokia      
 
* 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.

*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.

=== Skype on Maemo ===
* Presenter: Mark Douglas, Mobile Product Manager, Skype      
 
* Abstract: coming soon

=== Cross-platform with Qt - live ===
* Presenter: Ariya Hidayat, Software Engineer, Nokia       

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.
 
* Abstract:
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 '''live demos'''.

=== Mer - how the community innovates ===
* Presenter: Carsten Munk, Lead Developer, Mer project 
      
* 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.

=== Your foundation for open-source innovation: TI’s OMAP processor-based Zoom platform  ===
* Presenter: Ameet Suri, Marketing Manager, OMAP™ Mobile Communication and Computing Business Line, Wireless Business Unit, Texas Instruments.

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.

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. 

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.  

Suri previously held engineering positions at Samsung and Mastech. At these companies, he gained experience developing and architecting various software technologies for handsets. 

Suri earned a bachelor’s degree in computer science from MGM College of Engineering and Technology in India. 
     
* 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.

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.

=== Feedservice and plug-ins development in Maemo 5 ===
* Presenter: Mikko Levonmaa, Ixonos       
 
* 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.

=== Harmattan Architecture Overview ===
* Presenter: Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia       
* Presentation: [http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Maemo 6 &quot;Harmattan&quot; Architecture Overview] on slideshare.net

=== Porting an OpenGL game to GL ES ===
* Presenter: Oliver Mcfadden, Software Engineer, Nokia       

* 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.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Day 1</title>
    <id>2478</id>
    <revision>
      <id>29130</id>
      <timestamp>2010-02-11T16:42:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">=== Maemo 5 and the Nokia N900 ===
* Presenter: Ari Jaaksi, VP Maemo Devices, Nokia 
 
* 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.

=== Changing PC &amp; Mobile Landscape; Why Linux will play a Critical Role  ===
* Presenter: Jim Zemlin, Executive Director of the Linux Foundation 

* 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. 
: 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'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.

=== Nokia Nseries Devices on Maemo===
* Presenter: Jose-Luis Martinez Merino, VP, Marketing, Nokia  
 
* Abstract: Jose-Luis will explain which role Maemo-based Nseries devices play in Nokia's portfolio.

=== Harmattan Highlights - Developer Opportunities ===
* Presenter: Janne Heikkinen, Director Maemo Product Planning, Nokia 

* 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.

=== Why the Maemo Community matters to Nokia ===
* Inteviewer: Alan &quot;qole&quot; Bruce of the 2nd &amp; 3rd Maemo Community Councils
* Interviewee: Ari Jaaksi, VP Maemo Devices, Nokia
 
* 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.

=== UI design of Maemo 5 apps ===
* Presenter: Annu-Maaria Nivala, Project Manager, User Experience, Digia  
 
* Abstract: Digia's User Experience Team'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.

=== Developing widgets on Maemo 5 - showcase Foreca Weather ===
* Presenter: Juha Järvi, Software Designer, Foreca   
 
* 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'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. See [[:Image:Maemo_Summit_2009_-_Juha_Jarvi_-_Foreca.pdf | Slides]].

=== Developing apps with Qt for Maemo5 ===
* Presenter: Kate Alhola, Forum Nokia, Chief Guru on Maemo  
 
* Abstract: coming soon

=== Developing apps with Qt on Harmattan ===
* Presenter: Ville Lavonius, Product Manager Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developing apps with Nokia Web Runtime ===
* Presenter: Santtu Ahonen, Head of Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developer Support for Maemo by Forum Nokia ===
* Presenter: Matt Collins, Director, Forum Nokia Marketing     
 
* Abstract: Forum Nokia is the world'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's offerings, and our promise to developers for fostering an open cross-platform ecosystem.

=== UX panel ===
* Moderator:  Tim Samoff, 2nd Maemo Community Council
* Panelists: Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5  
 
* 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.

* Tim Samoff is an award-winning filmmaker and designer who has been working in various industries for almost 20 years. He'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, &quot;An Unofficial Guide to Creating a Most Excellent Maemo User Interface.&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.

* 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's corporate user experience strategy, and working in various UX design management and research positions in Nokia'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'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 &quot;Mobile Usability: How Nokia Changed the Face of the Mobile Phone&quot;.

* 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

=== Firefox on Maemo ===
* Presenter: Stuart Parmenter, Director of Engineering, Mozilla     
 
* Abstract: coming soon

=== Present and future of Maemo digital marketing ===
* Presenter: Isko Salminen, Production Manager, Activeark and Jussi Mäkinen, Maemo Marketing, Nokia     
 
* Abstract: coming soon

* 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. 
    Contact:
    @isko (twitter)
    isko.salminen@activeark.com (email)

=== Biz apps on Maemo ===
* Presenter: Kari Pikkarainen, Product Manager Productivity, Nokia      
 
* 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.

*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.

=== Skype on Maemo ===
* Presenter: Mark Douglas, Mobile Product Manager, Skype      
 
* Abstract: coming soon

=== Cross-platform with Qt - live ===
* Presenter: Ariya Hidayat, Software Engineer, Nokia       

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.
 
* Abstract:
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 '''live demos'''.

=== Mer - how the community innovates ===
* Presenter: Carsten Munk, Lead Developer, Mer project 
      
* 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.

=== Your foundation for open-source innovation: TI’s OMAP processor-based Zoom platform  ===
* Presenter: Ameet Suri, Marketing Manager, OMAP™ Mobile Communication and Computing Business Line, Wireless Business Unit, Texas Instruments.

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.

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. 

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.  

Suri previously held engineering positions at Samsung and Mastech. At these companies, he gained experience developing and architecting various software technologies for handsets. 

Suri earned a bachelor’s degree in computer science from MGM College of Engineering and Technology in India. 
     
* 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.

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.

=== Feedservice and plug-ins development in Maemo 5 ===
* Presenter: Mikko Levonmaa, Ixonos       
 
* 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.

=== Harmattan Architecture Overview ===
* Presenter: Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia       
* Presentation: [http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Maemo 6 &quot;Harmattan&quot; Architecture Overview] on slideshare.net

=== Porting an OpenGL game to GL ES ===
* Presenter: Oliver Mcfadden, Software Engineer, Nokia       

* 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.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Day 1</title>
    <id>2478</id>
    <revision>
      <id>29130</id>
      <timestamp>2010-02-11T16:42:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">=== Maemo 5 and the Nokia N900 ===
* Presenter: Ari Jaaksi, VP Maemo Devices, Nokia 
 
* 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.

=== Changing PC &amp; Mobile Landscape; Why Linux will play a Critical Role  ===
* Presenter: Jim Zemlin, Executive Director of the Linux Foundation 

* 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. 
: 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'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.

=== Nokia Nseries Devices on Maemo===
* Presenter: Jose-Luis Martinez Merino, VP, Marketing, Nokia  
 
* Abstract: Jose-Luis will explain which role Maemo-based Nseries devices play in Nokia's portfolio.

=== Harmattan Highlights - Developer Opportunities ===
* Presenter: Janne Heikkinen, Director Maemo Product Planning, Nokia 

* 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.

=== Why the Maemo Community matters to Nokia ===
* Inteviewer: Alan &quot;qole&quot; Bruce of the 2nd &amp; 3rd Maemo Community Councils
* Interviewee: Ari Jaaksi, VP Maemo Devices, Nokia
 
* 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.

=== UI design of Maemo 5 apps ===
* Presenter: Annu-Maaria Nivala, Project Manager, User Experience, Digia  
 
* Abstract: Digia's User Experience Team'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.

=== Developing widgets on Maemo 5 - showcase Foreca Weather ===
* Presenter: Juha Järvi, Software Designer, Foreca   
 
* 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'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. See [[:Image:Maemo_Summit_2009_-_Juha_Jarvi_-_Foreca.pdf | Slides]].

=== Developing apps with Qt for Maemo5 ===
* Presenter: Kate Alhola, Forum Nokia, Chief Guru on Maemo  
 
* Abstract: coming soon

=== Developing apps with Qt on Harmattan ===
* Presenter: Ville Lavonius, Product Manager Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developing apps with Nokia Web Runtime ===
* Presenter: Santtu Ahonen, Head of Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developer Support for Maemo by Forum Nokia ===
* Presenter: Matt Collins, Director, Forum Nokia Marketing     
 
* Abstract: Forum Nokia is the world'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's offerings, and our promise to developers for fostering an open cross-platform ecosystem.

=== UX panel ===
* Moderator:  Tim Samoff, 2nd Maemo Community Council
* Panelists: Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5  
 
* 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.

* Tim Samoff is an award-winning filmmaker and designer who has been working in various industries for almost 20 years. He'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, &quot;An Unofficial Guide to Creating a Most Excellent Maemo User Interface.&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.

* 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's corporate user experience strategy, and working in various UX design management and research positions in Nokia'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'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 &quot;Mobile Usability: How Nokia Changed the Face of the Mobile Phone&quot;.

* 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

=== Firefox on Maemo ===
* Presenter: Stuart Parmenter, Director of Engineering, Mozilla     
 
* Abstract: coming soon

=== Present and future of Maemo digital marketing ===
* Presenter: Isko Salminen, Production Manager, Activeark and Jussi Mäkinen, Maemo Marketing, Nokia     
 
* Abstract: coming soon

* 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. 
    Contact:
    @isko (twitter)
    isko.salminen@activeark.com (email)

=== Biz apps on Maemo ===
* Presenter: Kari Pikkarainen, Product Manager Productivity, Nokia      
 
* 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.

*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.

=== Skype on Maemo ===
* Presenter: Mark Douglas, Mobile Product Manager, Skype      
 
* Abstract: coming soon

=== Cross-platform with Qt - live ===
* Presenter: Ariya Hidayat, Software Engineer, Nokia       

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.
 
* Abstract:
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 '''live demos'''.

=== Mer - how the community innovates ===
* Presenter: Carsten Munk, Lead Developer, Mer project 
      
* 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.

=== Your foundation for open-source innovation: TI’s OMAP processor-based Zoom platform  ===
* Presenter: Ameet Suri, Marketing Manager, OMAP™ Mobile Communication and Computing Business Line, Wireless Business Unit, Texas Instruments.

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.

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. 

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.  

Suri previously held engineering positions at Samsung and Mastech. At these companies, he gained experience developing and architecting various software technologies for handsets. 

Suri earned a bachelor’s degree in computer science from MGM College of Engineering and Technology in India. 
     
* 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.

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.

=== Feedservice and plug-ins development in Maemo 5 ===
* Presenter: Mikko Levonmaa, Ixonos       
 
* 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.

=== Harmattan Architecture Overview ===
* Presenter: Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia       
* Presentation: [http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Maemo 6 &quot;Harmattan&quot; Architecture Overview] on slideshare.net

=== Porting an OpenGL game to GL ES ===
* Presenter: Oliver Mcfadden, Software Engineer, Nokia       

* 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.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Day 1</title>
    <id>2478</id>
    <revision>
      <id>29130</id>
      <timestamp>2010-02-11T16:42:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">=== Maemo 5 and the Nokia N900 ===
* Presenter: Ari Jaaksi, VP Maemo Devices, Nokia 
 
* 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.

=== Changing PC &amp; Mobile Landscape; Why Linux will play a Critical Role  ===
* Presenter: Jim Zemlin, Executive Director of the Linux Foundation 

* 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. 
: 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'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.

=== Nokia Nseries Devices on Maemo===
* Presenter: Jose-Luis Martinez Merino, VP, Marketing, Nokia  
 
* Abstract: Jose-Luis will explain which role Maemo-based Nseries devices play in Nokia's portfolio.

=== Harmattan Highlights - Developer Opportunities ===
* Presenter: Janne Heikkinen, Director Maemo Product Planning, Nokia 

* 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.

=== Why the Maemo Community matters to Nokia ===
* Inteviewer: Alan &quot;qole&quot; Bruce of the 2nd &amp; 3rd Maemo Community Councils
* Interviewee: Ari Jaaksi, VP Maemo Devices, Nokia
 
* 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.

=== UI design of Maemo 5 apps ===
* Presenter: Annu-Maaria Nivala, Project Manager, User Experience, Digia  
 
* Abstract: Digia's User Experience Team'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.

=== Developing widgets on Maemo 5 - showcase Foreca Weather ===
* Presenter: Juha Järvi, Software Designer, Foreca   
 
* 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'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. See [[:Image:Maemo_Summit_2009_-_Juha_Jarvi_-_Foreca.pdf | Slides]].

=== Developing apps with Qt for Maemo5 ===
* Presenter: Kate Alhola, Forum Nokia, Chief Guru on Maemo  
 
* Abstract: coming soon

=== Developing apps with Qt on Harmattan ===
* Presenter: Ville Lavonius, Product Manager Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developing apps with Nokia Web Runtime ===
* Presenter: Santtu Ahonen, Head of Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developer Support for Maemo by Forum Nokia ===
* Presenter: Matt Collins, Director, Forum Nokia Marketing     
 
* Abstract: Forum Nokia is the world'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's offerings, and our promise to developers for fostering an open cross-platform ecosystem.

=== UX panel ===
* Moderator:  Tim Samoff, 2nd Maemo Community Council
* Panelists: Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5  
 
* 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.

* Tim Samoff is an award-winning filmmaker and designer who has been working in various industries for almost 20 years. He'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, &quot;An Unofficial Guide to Creating a Most Excellent Maemo User Interface.&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.

* 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's corporate user experience strategy, and working in various UX design management and research positions in Nokia'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'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 &quot;Mobile Usability: How Nokia Changed the Face of the Mobile Phone&quot;.

* 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

=== Firefox on Maemo ===
* Presenter: Stuart Parmenter, Director of Engineering, Mozilla     
 
* Abstract: coming soon

=== Present and future of Maemo digital marketing ===
* Presenter: Isko Salminen, Production Manager, Activeark and Jussi Mäkinen, Maemo Marketing, Nokia     
 
* Abstract: coming soon

* 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. 
    Contact:
    @isko (twitter)
    isko.salminen@activeark.com (email)

=== Biz apps on Maemo ===
* Presenter: Kari Pikkarainen, Product Manager Productivity, Nokia      
 
* 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.

*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.

=== Skype on Maemo ===
* Presenter: Mark Douglas, Mobile Product Manager, Skype      
 
* Abstract: coming soon

=== Cross-platform with Qt - live ===
* Presenter: Ariya Hidayat, Software Engineer, Nokia       

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.
 
* Abstract:
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 '''live demos'''.

=== Mer - how the community innovates ===
* Presenter: Carsten Munk, Lead Developer, Mer project 
      
* 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.

=== Your foundation for open-source innovation: TI’s OMAP processor-based Zoom platform  ===
* Presenter: Ameet Suri, Marketing Manager, OMAP™ Mobile Communication and Computing Business Line, Wireless Business Unit, Texas Instruments.

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.

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. 

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.  

Suri previously held engineering positions at Samsung and Mastech. At these companies, he gained experience developing and architecting various software technologies for handsets. 

Suri earned a bachelor’s degree in computer science from MGM College of Engineering and Technology in India. 
     
* 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.

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.

=== Feedservice and plug-ins development in Maemo 5 ===
* Presenter: Mikko Levonmaa, Ixonos       
 
* 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.

=== Harmattan Architecture Overview ===
* Presenter: Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia       
* Presentation: [http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Maemo 6 &quot;Harmattan&quot; Architecture Overview] on slideshare.net

=== Porting an OpenGL game to GL ES ===
* Presenter: Oliver Mcfadden, Software Engineer, Nokia       

* 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.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Day 1</title>
    <id>2478</id>
    <revision>
      <id>29130</id>
      <timestamp>2010-02-11T16:42:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">=== Maemo 5 and the Nokia N900 ===
* Presenter: Ari Jaaksi, VP Maemo Devices, Nokia 
 
* 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.

=== Changing PC &amp; Mobile Landscape; Why Linux will play a Critical Role  ===
* Presenter: Jim Zemlin, Executive Director of the Linux Foundation 

* 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. 
: 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'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.

=== Nokia Nseries Devices on Maemo===
* Presenter: Jose-Luis Martinez Merino, VP, Marketing, Nokia  
 
* Abstract: Jose-Luis will explain which role Maemo-based Nseries devices play in Nokia's portfolio.

=== Harmattan Highlights - Developer Opportunities ===
* Presenter: Janne Heikkinen, Director Maemo Product Planning, Nokia 

* 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.

=== Why the Maemo Community matters to Nokia ===
* Inteviewer: Alan &quot;qole&quot; Bruce of the 2nd &amp; 3rd Maemo Community Councils
* Interviewee: Ari Jaaksi, VP Maemo Devices, Nokia
 
* 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.

=== UI design of Maemo 5 apps ===
* Presenter: Annu-Maaria Nivala, Project Manager, User Experience, Digia  
 
* Abstract: Digia's User Experience Team'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.

=== Developing widgets on Maemo 5 - showcase Foreca Weather ===
* Presenter: Juha Järvi, Software Designer, Foreca   
 
* 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'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. See [[:Image:Maemo_Summit_2009_-_Juha_Jarvi_-_Foreca.pdf | Slides]].

=== Developing apps with Qt for Maemo5 ===
* Presenter: Kate Alhola, Forum Nokia, Chief Guru on Maemo  
 
* Abstract: coming soon

=== Developing apps with Qt on Harmattan ===
* Presenter: Ville Lavonius, Product Manager Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developing apps with Nokia Web Runtime ===
* Presenter: Santtu Ahonen, Head of Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developer Support for Maemo by Forum Nokia ===
* Presenter: Matt Collins, Director, Forum Nokia Marketing     
 
* Abstract: Forum Nokia is the world'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's offerings, and our promise to developers for fostering an open cross-platform ecosystem.

=== UX panel ===
* Moderator:  Tim Samoff, 2nd Maemo Community Council
* Panelists: Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5  
 
* 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.

* Tim Samoff is an award-winning filmmaker and designer who has been working in various industries for almost 20 years. He'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, &quot;An Unofficial Guide to Creating a Most Excellent Maemo User Interface.&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.

* 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's corporate user experience strategy, and working in various UX design management and research positions in Nokia'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'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 &quot;Mobile Usability: How Nokia Changed the Face of the Mobile Phone&quot;.

* 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

=== Firefox on Maemo ===
* Presenter: Stuart Parmenter, Director of Engineering, Mozilla     
 
* Abstract: coming soon

=== Present and future of Maemo digital marketing ===
* Presenter: Isko Salminen, Production Manager, Activeark and Jussi Mäkinen, Maemo Marketing, Nokia     
 
* Abstract: coming soon

* 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. 
    Contact:
    @isko (twitter)
    isko.salminen@activeark.com (email)

=== Biz apps on Maemo ===
* Presenter: Kari Pikkarainen, Product Manager Productivity, Nokia      
 
* 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.

*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.

=== Skype on Maemo ===
* Presenter: Mark Douglas, Mobile Product Manager, Skype      
 
* Abstract: coming soon

=== Cross-platform with Qt - live ===
* Presenter: Ariya Hidayat, Software Engineer, Nokia       

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.
 
* Abstract:
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 '''live demos'''.

=== Mer - how the community innovates ===
* Presenter: Carsten Munk, Lead Developer, Mer project 
      
* 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.

=== Your foundation for open-source innovation: TI’s OMAP processor-based Zoom platform  ===
* Presenter: Ameet Suri, Marketing Manager, OMAP™ Mobile Communication and Computing Business Line, Wireless Business Unit, Texas Instruments.

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.

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. 

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.  

Suri previously held engineering positions at Samsung and Mastech. At these companies, he gained experience developing and architecting various software technologies for handsets. 

Suri earned a bachelor’s degree in computer science from MGM College of Engineering and Technology in India. 
     
* 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.

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.

=== Feedservice and plug-ins development in Maemo 5 ===
* Presenter: Mikko Levonmaa, Ixonos       
 
* 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.

=== Harmattan Architecture Overview ===
* Presenter: Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia       
* Presentation: [http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Maemo 6 &quot;Harmattan&quot; Architecture Overview] on slideshare.net

=== Porting an OpenGL game to GL ES ===
* Presenter: Oliver Mcfadden, Software Engineer, Nokia       

* 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.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Day 1</title>
    <id>2478</id>
    <revision>
      <id>29130</id>
      <timestamp>2010-02-11T16:42:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">=== Maemo 5 and the Nokia N900 ===
* Presenter: Ari Jaaksi, VP Maemo Devices, Nokia 
 
* 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.

=== Changing PC &amp; Mobile Landscape; Why Linux will play a Critical Role  ===
* Presenter: Jim Zemlin, Executive Director of the Linux Foundation 

* 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. 
: 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'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.

=== Nokia Nseries Devices on Maemo===
* Presenter: Jose-Luis Martinez Merino, VP, Marketing, Nokia  
 
* Abstract: Jose-Luis will explain which role Maemo-based Nseries devices play in Nokia's portfolio.

=== Harmattan Highlights - Developer Opportunities ===
* Presenter: Janne Heikkinen, Director Maemo Product Planning, Nokia 

* 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.

=== Why the Maemo Community matters to Nokia ===
* Inteviewer: Alan &quot;qole&quot; Bruce of the 2nd &amp; 3rd Maemo Community Councils
* Interviewee: Ari Jaaksi, VP Maemo Devices, Nokia
 
* 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.

=== UI design of Maemo 5 apps ===
* Presenter: Annu-Maaria Nivala, Project Manager, User Experience, Digia  
 
* Abstract: Digia's User Experience Team'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.

=== Developing widgets on Maemo 5 - showcase Foreca Weather ===
* Presenter: Juha Järvi, Software Designer, Foreca   
 
* 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'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. See [[:Image:Maemo_Summit_2009_-_Juha_Jarvi_-_Foreca.pdf | Slides]].

=== Developing apps with Qt for Maemo5 ===
* Presenter: Kate Alhola, Forum Nokia, Chief Guru on Maemo  
 
* Abstract: coming soon

=== Developing apps with Qt on Harmattan ===
* Presenter: Ville Lavonius, Product Manager Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developing apps with Nokia Web Runtime ===
* Presenter: Santtu Ahonen, Head of Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developer Support for Maemo by Forum Nokia ===
* Presenter: Matt Collins, Director, Forum Nokia Marketing     
 
* Abstract: Forum Nokia is the world'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's offerings, and our promise to developers for fostering an open cross-platform ecosystem.

=== UX panel ===
* Moderator:  Tim Samoff, 2nd Maemo Community Council
* Panelists: Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5  
 
* 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.

* Tim Samoff is an award-winning filmmaker and designer who has been working in various industries for almost 20 years. He'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, &quot;An Unofficial Guide to Creating a Most Excellent Maemo User Interface.&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.

* 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's corporate user experience strategy, and working in various UX design management and research positions in Nokia'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'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 &quot;Mobile Usability: How Nokia Changed the Face of the Mobile Phone&quot;.

* 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

=== Firefox on Maemo ===
* Presenter: Stuart Parmenter, Director of Engineering, Mozilla     
 
* Abstract: coming soon

=== Present and future of Maemo digital marketing ===
* Presenter: Isko Salminen, Production Manager, Activeark and Jussi Mäkinen, Maemo Marketing, Nokia     
 
* Abstract: coming soon

* 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. 
    Contact:
    @isko (twitter)
    isko.salminen@activeark.com (email)

=== Biz apps on Maemo ===
* Presenter: Kari Pikkarainen, Product Manager Productivity, Nokia      
 
* 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.

*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.

=== Skype on Maemo ===
* Presenter: Mark Douglas, Mobile Product Manager, Skype      
 
* Abstract: coming soon

=== Cross-platform with Qt - live ===
* Presenter: Ariya Hidayat, Software Engineer, Nokia       

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.
 
* Abstract:
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 '''live demos'''.

=== Mer - how the community innovates ===
* Presenter: Carsten Munk, Lead Developer, Mer project 
      
* 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.

=== Your foundation for open-source innovation: TI’s OMAP processor-based Zoom platform  ===
* Presenter: Ameet Suri, Marketing Manager, OMAP™ Mobile Communication and Computing Business Line, Wireless Business Unit, Texas Instruments.

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.

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. 

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.  

Suri previously held engineering positions at Samsung and Mastech. At these companies, he gained experience developing and architecting various software technologies for handsets. 

Suri earned a bachelor’s degree in computer science from MGM College of Engineering and Technology in India. 
     
* 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.

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.

=== Feedservice and plug-ins development in Maemo 5 ===
* Presenter: Mikko Levonmaa, Ixonos       
 
* 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.

=== Harmattan Architecture Overview ===
* Presenter: Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia       
* Presentation: [http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Maemo 6 &quot;Harmattan&quot; Architecture Overview] on slideshare.net

=== Porting an OpenGL game to GL ES ===
* Presenter: Oliver Mcfadden, Software Engineer, Nokia       

* 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.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Day 1</title>
    <id>2478</id>
    <revision>
      <id>29130</id>
      <timestamp>2010-02-11T16:42:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">=== Maemo 5 and the Nokia N900 ===
* Presenter: Ari Jaaksi, VP Maemo Devices, Nokia 
 
* 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.

=== Changing PC &amp; Mobile Landscape; Why Linux will play a Critical Role  ===
* Presenter: Jim Zemlin, Executive Director of the Linux Foundation 

* 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. 
: 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'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.

=== Nokia Nseries Devices on Maemo===
* Presenter: Jose-Luis Martinez Merino, VP, Marketing, Nokia  
 
* Abstract: Jose-Luis will explain which role Maemo-based Nseries devices play in Nokia's portfolio.

=== Harmattan Highlights - Developer Opportunities ===
* Presenter: Janne Heikkinen, Director Maemo Product Planning, Nokia 

* 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.

=== Why the Maemo Community matters to Nokia ===
* Inteviewer: Alan &quot;qole&quot; Bruce of the 2nd &amp; 3rd Maemo Community Councils
* Interviewee: Ari Jaaksi, VP Maemo Devices, Nokia
 
* 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.

=== UI design of Maemo 5 apps ===
* Presenter: Annu-Maaria Nivala, Project Manager, User Experience, Digia  
 
* Abstract: Digia's User Experience Team'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.

=== Developing widgets on Maemo 5 - showcase Foreca Weather ===
* Presenter: Juha Järvi, Software Designer, Foreca   
 
* 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'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. See [[:Image:Maemo_Summit_2009_-_Juha_Jarvi_-_Foreca.pdf | Slides]].

=== Developing apps with Qt for Maemo5 ===
* Presenter: Kate Alhola, Forum Nokia, Chief Guru on Maemo  
 
* Abstract: coming soon

=== Developing apps with Qt on Harmattan ===
* Presenter: Ville Lavonius, Product Manager Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developing apps with Nokia Web Runtime ===
* Presenter: Santtu Ahonen, Head of Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developer Support for Maemo by Forum Nokia ===
* Presenter: Matt Collins, Director, Forum Nokia Marketing     
 
* Abstract: Forum Nokia is the world'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's offerings, and our promise to developers for fostering an open cross-platform ecosystem.

=== UX panel ===
* Moderator:  Tim Samoff, 2nd Maemo Community Council
* Panelists: Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5  
 
* 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.

* Tim Samoff is an award-winning filmmaker and designer who has been working in various industries for almost 20 years. He'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, &quot;An Unofficial Guide to Creating a Most Excellent Maemo User Interface.&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.

* 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's corporate user experience strategy, and working in various UX design management and research positions in Nokia'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'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 &quot;Mobile Usability: How Nokia Changed the Face of the Mobile Phone&quot;.

* 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

=== Firefox on Maemo ===
* Presenter: Stuart Parmenter, Director of Engineering, Mozilla     
 
* Abstract: coming soon

=== Present and future of Maemo digital marketing ===
* Presenter: Isko Salminen, Production Manager, Activeark and Jussi Mäkinen, Maemo Marketing, Nokia     
 
* Abstract: coming soon

* 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. 
    Contact:
    @isko (twitter)
    isko.salminen@activeark.com (email)

=== Biz apps on Maemo ===
* Presenter: Kari Pikkarainen, Product Manager Productivity, Nokia      
 
* 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.

*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.

=== Skype on Maemo ===
* Presenter: Mark Douglas, Mobile Product Manager, Skype      
 
* Abstract: coming soon

=== Cross-platform with Qt - live ===
* Presenter: Ariya Hidayat, Software Engineer, Nokia       

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.
 
* Abstract:
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 '''live demos'''.

=== Mer - how the community innovates ===
* Presenter: Carsten Munk, Lead Developer, Mer project 
      
* 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.

=== Your foundation for open-source innovation: TI’s OMAP processor-based Zoom platform  ===
* Presenter: Ameet Suri, Marketing Manager, OMAP™ Mobile Communication and Computing Business Line, Wireless Business Unit, Texas Instruments.

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.

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. 

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.  

Suri previously held engineering positions at Samsung and Mastech. At these companies, he gained experience developing and architecting various software technologies for handsets. 

Suri earned a bachelor’s degree in computer science from MGM College of Engineering and Technology in India. 
     
* 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.

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.

=== Feedservice and plug-ins development in Maemo 5 ===
* Presenter: Mikko Levonmaa, Ixonos       
 
* 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.

=== Harmattan Architecture Overview ===
* Presenter: Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia       
* Presentation: [http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Maemo 6 &quot;Harmattan&quot; Architecture Overview] on slideshare.net

=== Porting an OpenGL game to GL ES ===
* Presenter: Oliver Mcfadden, Software Engineer, Nokia       

* 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.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Day 1</title>
    <id>2478</id>
    <revision>
      <id>29130</id>
      <timestamp>2010-02-11T16:42:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">=== Maemo 5 and the Nokia N900 ===
* Presenter: Ari Jaaksi, VP Maemo Devices, Nokia 
 
* 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.

=== Changing PC &amp; Mobile Landscape; Why Linux will play a Critical Role  ===
* Presenter: Jim Zemlin, Executive Director of the Linux Foundation 

* 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. 
: 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'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.

=== Nokia Nseries Devices on Maemo===
* Presenter: Jose-Luis Martinez Merino, VP, Marketing, Nokia  
 
* Abstract: Jose-Luis will explain which role Maemo-based Nseries devices play in Nokia's portfolio.

=== Harmattan Highlights - Developer Opportunities ===
* Presenter: Janne Heikkinen, Director Maemo Product Planning, Nokia 

* 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.

=== Why the Maemo Community matters to Nokia ===
* Inteviewer: Alan &quot;qole&quot; Bruce of the 2nd &amp; 3rd Maemo Community Councils
* Interviewee: Ari Jaaksi, VP Maemo Devices, Nokia
 
* 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.

=== UI design of Maemo 5 apps ===
* Presenter: Annu-Maaria Nivala, Project Manager, User Experience, Digia  
 
* Abstract: Digia's User Experience Team'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.

=== Developing widgets on Maemo 5 - showcase Foreca Weather ===
* Presenter: Juha Järvi, Software Designer, Foreca   
 
* 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'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. See [[:Image:Maemo_Summit_2009_-_Juha_Jarvi_-_Foreca.pdf | Slides]].

=== Developing apps with Qt for Maemo5 ===
* Presenter: Kate Alhola, Forum Nokia, Chief Guru on Maemo  
 
* Abstract: coming soon

=== Developing apps with Qt on Harmattan ===
* Presenter: Ville Lavonius, Product Manager Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developing apps with Nokia Web Runtime ===
* Presenter: Santtu Ahonen, Head of Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developer Support for Maemo by Forum Nokia ===
* Presenter: Matt Collins, Director, Forum Nokia Marketing     
 
* Abstract: Forum Nokia is the world'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's offerings, and our promise to developers for fostering an open cross-platform ecosystem.

=== UX panel ===
* Moderator:  Tim Samoff, 2nd Maemo Community Council
* Panelists: Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5  
 
* 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.

* Tim Samoff is an award-winning filmmaker and designer who has been working in various industries for almost 20 years. He'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, &quot;An Unofficial Guide to Creating a Most Excellent Maemo User Interface.&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.

* 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's corporate user experience strategy, and working in various UX design management and research positions in Nokia'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'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 &quot;Mobile Usability: How Nokia Changed the Face of the Mobile Phone&quot;.

* 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

=== Firefox on Maemo ===
* Presenter: Stuart Parmenter, Director of Engineering, Mozilla     
 
* Abstract: coming soon

=== Present and future of Maemo digital marketing ===
* Presenter: Isko Salminen, Production Manager, Activeark and Jussi Mäkinen, Maemo Marketing, Nokia     
 
* Abstract: coming soon

* 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. 
    Contact:
    @isko (twitter)
    isko.salminen@activeark.com (email)

=== Biz apps on Maemo ===
* Presenter: Kari Pikkarainen, Product Manager Productivity, Nokia      
 
* 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.

*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.

=== Skype on Maemo ===
* Presenter: Mark Douglas, Mobile Product Manager, Skype      
 
* Abstract: coming soon

=== Cross-platform with Qt - live ===
* Presenter: Ariya Hidayat, Software Engineer, Nokia       

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.
 
* Abstract:
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 '''live demos'''.

=== Mer - how the community innovates ===
* Presenter: Carsten Munk, Lead Developer, Mer project 
      
* 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.

=== Your foundation for open-source innovation: TI’s OMAP processor-based Zoom platform  ===
* Presenter: Ameet Suri, Marketing Manager, OMAP™ Mobile Communication and Computing Business Line, Wireless Business Unit, Texas Instruments.

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.

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. 

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.  

Suri previously held engineering positions at Samsung and Mastech. At these companies, he gained experience developing and architecting various software technologies for handsets. 

Suri earned a bachelor’s degree in computer science from MGM College of Engineering and Technology in India. 
     
* 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.

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.

=== Feedservice and plug-ins development in Maemo 5 ===
* Presenter: Mikko Levonmaa, Ixonos       
 
* 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.

=== Harmattan Architecture Overview ===
* Presenter: Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia       
* Presentation: [http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Maemo 6 &quot;Harmattan&quot; Architecture Overview] on slideshare.net

=== Porting an OpenGL game to GL ES ===
* Presenter: Oliver Mcfadden, Software Engineer, Nokia       

* 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.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Day 1</title>
    <id>2478</id>
    <revision>
      <id>29130</id>
      <timestamp>2010-02-11T16:42:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">=== Maemo 5 and the Nokia N900 ===
* Presenter: Ari Jaaksi, VP Maemo Devices, Nokia 
 
* 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.

=== Changing PC &amp; Mobile Landscape; Why Linux will play a Critical Role  ===
* Presenter: Jim Zemlin, Executive Director of the Linux Foundation 

* 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. 
: 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'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.

=== Nokia Nseries Devices on Maemo===
* Presenter: Jose-Luis Martinez Merino, VP, Marketing, Nokia  
 
* Abstract: Jose-Luis will explain which role Maemo-based Nseries devices play in Nokia's portfolio.

=== Harmattan Highlights - Developer Opportunities ===
* Presenter: Janne Heikkinen, Director Maemo Product Planning, Nokia 

* 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.

=== Why the Maemo Community matters to Nokia ===
* Inteviewer: Alan &quot;qole&quot; Bruce of the 2nd &amp; 3rd Maemo Community Councils
* Interviewee: Ari Jaaksi, VP Maemo Devices, Nokia
 
* 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.

=== UI design of Maemo 5 apps ===
* Presenter: Annu-Maaria Nivala, Project Manager, User Experience, Digia  
 
* Abstract: Digia's User Experience Team'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.

=== Developing widgets on Maemo 5 - showcase Foreca Weather ===
* Presenter: Juha Järvi, Software Designer, Foreca   
 
* 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'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. See [[:Image:Maemo_Summit_2009_-_Juha_Jarvi_-_Foreca.pdf | Slides]].

=== Developing apps with Qt for Maemo5 ===
* Presenter: Kate Alhola, Forum Nokia, Chief Guru on Maemo  
 
* Abstract: coming soon

=== Developing apps with Qt on Harmattan ===
* Presenter: Ville Lavonius, Product Manager Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developing apps with Nokia Web Runtime ===
* Presenter: Santtu Ahonen, Head of Developer Offering, Nokia    
 
* Abstract: coming soon

=== Developer Support for Maemo by Forum Nokia ===
* Presenter: Matt Collins, Director, Forum Nokia Marketing     
 
* Abstract: Forum Nokia is the world'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's offerings, and our promise to developers for fostering an open cross-platform ecosystem.

=== UX panel ===
* Moderator:  Tim Samoff, 2nd Maemo Community Council
* Panelists: Harri Kiljander, Director Maemo UX Design and Martin Schüle, Principal Designer Maemo 5  
 
* 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.

* Tim Samoff is an award-winning filmmaker and designer who has been working in various industries for almost 20 years. He'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, &quot;An Unofficial Guide to Creating a Most Excellent Maemo User Interface.&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.

* 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's corporate user experience strategy, and working in various UX design management and research positions in Nokia'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'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 &quot;Mobile Usability: How Nokia Changed the Face of the Mobile Phone&quot;.

* 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

=== Firefox on Maemo ===
* Presenter: Stuart Parmenter, Director of Engineering, Mozilla     
 
* Abstract: coming soon

=== Present and future of Maemo digital marketing ===
* Presenter: Isko Salminen, Production Manager, Activeark and Jussi Mäkinen, Maemo Marketing, Nokia     
 
* Abstract: coming soon

* 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. 
    Contact:
    @isko (twitter)
    isko.salminen@activeark.com (email)

=== Biz apps on Maemo ===
* Presenter: Kari Pikkarainen, Product Manager Productivity, Nokia      
 
* 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.

*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.

=== Skype on Maemo ===
* Presenter: Mark Douglas, Mobile Product Manager, Skype      
 
* Abstract: coming soon

=== Cross-platform with Qt - live ===
* Presenter: Ariya Hidayat, Software Engineer, Nokia       

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.
 
* Abstract:
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 '''live demos'''.

=== Mer - how the community innovates ===
* Presenter: Carsten Munk, Lead Developer, Mer project 
      
* 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.

=== Your foundation for open-source innovation: TI’s OMAP processor-based Zoom platform  ===
* Presenter: Ameet Suri, Marketing Manager, OMAP™ Mobile Communication and Computing Business Line, Wireless Business Unit, Texas Instruments.

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.

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. 

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.  

Suri previously held engineering positions at Samsung and Mastech. At these companies, he gained experience developing and architecting various software technologies for handsets. 

Suri earned a bachelor’s degree in computer science from MGM College of Engineering and Technology in India. 
     
* 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.

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.

=== Feedservice and plug-ins development in Maemo 5 ===
* Presenter: Mikko Levonmaa, Ixonos       
 
* 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.

=== Harmattan Architecture Overview ===
* Presenter: Juha Tukkinen, Principal Engineer, Maemo Devices, Nokia       
* Presentation: [http://www.slideshare.net/jtukkine/maemo-6-harmattan-architecture-overview Maemo 6 &quot;Harmattan&quot; Architecture Overview] on slideshare.net

=== Porting an OpenGL game to GL ES ===
* Presenter: Oliver Mcfadden, Software Engineer, Nokia       

* 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.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Day 2</title>
    <id>2667</id>
    <revision>
      <id>19849</id>
      <timestamp>2009-10-12T07:15:22Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Maemo Summit 2009/Schedule/Day 2]] moved to [[Maemo Summit 2009/Day 2]]: move</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo Summit 2009/Day 2]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Day 3</title>
    <id>2666</id>
    <revision>
      <id>19847</id>
      <timestamp>2009-10-12T07:15:06Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Maemo Summit 2009/Schedule/Day 3]] moved to [[Maemo Summit 2009/Day 3]]: move</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo Summit 2009/Day 3]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/Lightning talks</title>
    <id>2668</id>
    <revision>
      <id>19851</id>
      <timestamp>2009-10-12T07:16:08Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Maemo Summit 2009/Schedule/Lightning talks]] moved to [[Maemo Summit 2009/Lightning talks]]: move</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo Summit 2009/Lightning talks]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Schedule/MaemoCoCreation</title>
    <id>2073</id>
    <revision>
      <id>21106</id>
      <timestamp>2009-10-27T00:38:24Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <comment>Redirecting to [[Maemo Summit 2009/Day 2]]</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo Summit 2009/Day 2]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Social events</title>
    <id>1859</id>
    <revision>
      <id>29131</id>
      <timestamp>2010-02-11T16:42:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">The Maemo Summit will be a social event above all else.

We should have one big party with beer &amp; music at least, and facilitate hanging out during the conference also.

== Checklist ==

* Party budget
* Required catering, staff &amp; facilities
* Venue - close to conference site? Cool enough?

To be filled out later.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Speakers</title>
    <id>2542</id>
    <revision>
      <id>35160</id>
      <timestamp>2010-05-31T13:05:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>links</comment>
      <text xml:space="preserve">Information relevant to Maemo Summit speakers:

* You are encouraged to use the [[Maemo Summit 2009]] template for presentations, available as [[Media:MaemoSummit_template.odp|odp]] and [http://www.valeriovalerio.org/images/MaemoSummit_template.ppt ppt].
* The best format for the presentations is 16x9 since this is the proportion of the screens in use. Presentations with 3x4 format might get black strips on the sides or get slightly squeezed.
* There are Windows laptops with Internet connection for speakers in the N900, N810 and N800 rooms. They are equipped with OpenOffice.org, MS Office, Adobe Acrobat and Firefox.
* Bring your presentation to your session room in a USB stick around 9:30, 13:30 (Friday) or 14:30 (Saturday). Have copies in our laptop or online just in case.
* You can use your own laptop if you really need to. At your own risk, we won't change the schedule if you have problems. Definitely not recommended for lightning sessions.
* There will be [[Nokia N900|N900]] devices for speakers willing to demo their software. These devices can be connected to the projector with TV-Out.
* The N810 room will have 2 independent projectors. You can use them to have e.g. slides and a device demo in parallel.
* The 770 room will have a projector and a flat screen.

Maybe you find more useful information in this [http://talk.maemo.org/showthread.php?p=338240 discussion thread], maybe not.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Sponsored travel</title>
    <id>1853</id>
    <revision>
      <id>29133</id>
      <timestamp>2010-02-11T16:43:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">Sponsored participants will receive an e-mail with instructions to contact the travel agent and their request: flight dates, origin, full name, phone number and any other special consideration.

Each sponsored participant is responsible of providing the information to the travel agent and answer any questions from them.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Submissions</title>
    <id>1999</id>
    <revision>
      <id>29134</id>
      <timestamp>2010-02-11T16:43:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2009]]</comment>
      <text xml:space="preserve">= Talk submissions for Maemo Summit 2009 =

Talk submissions for the Maemo Summit were accepted through the wiki, and they were added to this page.

You can follow deliberations and discussion of the proposals which were made, and see some details of the proposals which missed the cut, in the [[Talk:Maemo Summit 2009/Submissions | Talk page]].

The schedule for the summit is now closed.

[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Summit 2009/Travel</title>
    <id>1861</id>
    <revision>
      <id>46833</id>
      <timestamp>2012-02-25T17:16:07Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/176.31.50.191|176.31.50.191]] ([[User talk:176.31.50.191|Talk]]); changed back to last version by [[User:Andre|Andre]]</comment>
      <text xml:space="preserve">It is good to know when people are arriving and departing. You might want to coordinate with other participants. 

'''Please keep it in chronological order!'''

== Arrival ==

Schipol airport map. Meeting point is the cafe at marker 'N' on the arrivals level.
http://content.schiphol.nl/info/plattegronden/pdf/plattegrond_plaza_uk.pdf



=== Wednesday 7 ===

{| class=&quot;wikitable&quot; border=&quot;2&quot;
! Time
! Name
! Place of arrival
! Means of transport
! Notes
|-
| 08:35
| [[User:sjgadsby | Stephen Gadsby]]
| Schiphol airport
| Flight US 798 from Philadelphia, USA
|
|-
| 12:50
| [[User:timsamoff | Tim Samoff]]
| Schiphol airport
| Flight NW 0056 from Minneapolis, MN
|
|-
| 13:15
| [[User:qole | Alan Bruce]]
| Schiphol airport
| Flight KL 0682 from Vancouver
|
|-
| 14:00
| [[User:vdvsx | Valério Valério]]
| Schiphol airport
| Flight HV 5356 from Faro, PT
|
|-
| 16:05
| [[User:lcuk | Gary Birkett]]
| Schiphol airport
| Flight KL 1084 from MANCHESTER GB
|
|}

=== Thursday 8 ===

{| class=&quot;wikitable&quot; border=&quot;2&quot;
! Time
! Name
! Place of arrival
! Means of transport
! Notes
|-
| 06:00
| [[User:texrat | Randall Arnold]]
| Schiphol airport (AMS)
| Flight DL 0080 from New York, NY
| Still trying to figure out Thursday hotel stay-- ideas? send me PM or email
|-
| 06:00
| [[User:zgold550 | Zach Goldberg]]
| Schiphol airport (AMS)
| Flight DL 0080 from New York, NY
| 
|-
| 07:00
| [[User:fiferboy | Andrew Olmsted]]
| Schiphol airport
| Flight KL692 from Toronto, On
|-
| 07:40
| [[User:johnx | John Bloom]]
| Schiphol airport
| Flight NW0034 from Seattle, United States
|-
| 08:15
| [[User:rsperberg | Roger Sperberg]]
| Schiphol airport
| Flight CO070 from Newark (EWR), United States
|-
| 08:20
| [[User:'rm_you' | Adam Harwell]]
| Schiphol airport
| Flight CO058 from San Antonio, United States
|-
| 08:20
| [[User:Jaffa|Andrew Flegg]]
| Schiphol airport
| Flight KL1420 from Birmingham, UK
|-
| 09:25
| [[User:thp|Thomas Perl]]
| Schiphol airport
| Flight  OS371 from Vienna
|-
| 09:25
| [http://maemo.org/profile/view/plastun.html Max Usachev]
| Schiphol airport
| Flight  OS0371  from Vienna
|-
| 09:25
| [http://maemo.org/profile/view/vasvlad.html Vlad Vasiliev]
| Schiphol airport
| Flight  OS0371  from Vienna
|-
| 09:45
| [[User:bergie | Henri Bergius]]
| Schiphol airport
| Flight AY841 from Helsinki
|-
| 09:45
| [[User:feri | Ferenc Szekely]]
| Schiphol airport
| Flight AY841 from Helsinki
|-
| 09:45
| [[User:rambo | Eero af Heurlin]]
| Schiphol airport
| Flight AY841 from Helsinki
|-
| 09:45
| [[User:neithan | Lauri Manner]]
| Schiphol airport
| Flight AY841 from Helsinki
|-
| 11:20
| [[User:achipa | Attila Csipa]]
| Schiphol airport
| Flight MA662 from Budapest
|-
| 11:45
| [[User:b0unc3 | Daniele Maio]]
| Schiphol Airport
| Flight HV832 from Catania (IT)
|-
| 11:50
| [[User:ccooke | Charles Cooke]]
| Schipol Airport
| Flight KL2754 from London City (LCY)
|-
| 11:55
| [[User:jeremiah | Jeremiah Foster]]
| Schipol Airport
| Flight KL1154 from Landvetter (GOT)
|-
| 12:10
| [[User:conny | Cornelius Hald]]
| Schiphol airport
| Flight LH4674 from Frankfurt
| Flight was canceled. will be there around 5pm. dont wait for me ;)
|-
| 14:10
| [[User:lbt | David Greaves]]
| Schiphol airport
| Flight KL1010 from London Heathrow
|-
| 14:15
| [[User:Stskeeps | Carsten Munk]]
| Schiphol airport
| Flight KL1364  from Warsaw
|-
| 16:35
| [[User:andrei1089 | Andrei Mirestean]]
| Schiphol airport (AMS)
| Flight KLM1390 from Bucharest
| initial flight was cancelled, got new tickets
|-
| 17:10
| [[User:fms | Marat Fayzullin]]
| Schiphol airport
| Flight KL0904 from Moscow
|-
| 17:45
| [[User:onion | Kaj-Michael Lang]]
| Schiphol airport
| Flight AY0845 from Helsinki
|-
| 17:45
| [[User:ymb | Mike Bradshaw]]
| Schiphol airport
| Flight AY0845 from Helsinki
|-
| 17:45
| [[User:ifrade | Ivan Frade]]
| Schiphol airport
| Flight AY0845 from Helsinki
|-
| 17:45
| [http://maemo.org/profile/view/sampp Sampo Savola]
| Schiphol airport
| Flight AY0845 from Helsinki
|-
| 17:45
| [[user:mgedmin | Marius Gedminas]]
| Schiphol airport
| Flight AY0845 from Helsinki
|
|-
| 17:50
| [[User:barisione | Marco Barisione]]
| Schiphol airport
| Flight EasyJet 3005 from London Stansted
|-
| 17:50
| [[User:treitter | Travis Reitter]]
| Schiphol airport
| Flight EasyJet 3005 from London Stansted
|-
| 18:15
| [[User:gcobb | Graham Cobb]]
| Schiphol airport
| Flight BA440 from LHR
|-
| 18:15
| [[User:etrunko | Eduardo Lima (Etrunko)]]
| Schiphol airport
| Flight TP660 from Lisbon
|-
| 18:15
| Kenneth Christiansen
| Schiphol airport
| Flight TP660 from Lisbon
|-
| 18:20
| [[User:lma | Lucas Maneos]]
| Schiphol airport
| Flight KL2758 from LCY
|-
| 18:20
| [[User:aboaboit | Andrea Borgia]]
| Schiphol airport
| Flight HV5466 from Verona
|-
| 18:20
| [[User:Matteone | Matteo Nerozzi]]
| Schiphol airport
| Flight HV5466 from Verona
|-
| 18:20
| [[User:andy80 | Andrea Grandi]]
| Schiphol airport
| Flight HV6332 from Valencia
|-
| 18:25
| [[User:ovjo12 | Ove Nordström]]
| Schiphol airport
| Flight SK1555 from Stockholm
|-
| 19:35
| [[User:ogallego1979 | Oscar Gallego]]
| Schiphol airport
| Flight KL1022 from London
|-
| &lt;strike&gt;19:35&lt;/strike&gt;
| &lt;strike&gt;Andrey Popelo&lt;/strike&gt;
| &lt;strike&gt;Schiphol airport&lt;/strike&gt;
| &lt;strike&gt;Flight 1386 from Kiev&lt;/strike&gt;
| Problems with visa :(
|-
| 20:25
| [[User:framstag | Tim Teulings]]
| Station Amsterdam Centraal
| By train (ICE 122) from Germany (Bonn)
|-
| 21:05
| [[User:lardman | Simon Pickering]]
| Schiphol Airport
| Flight Easyjet 2165 from London Luton
|-
| 21:20
| [[User:crashanddie | Sebastian Lauwers]]
| Schiphol Airport (AMS)
| Flight 8881 from London Gatwick
|-
| 21:55
| [[User:harbaum | Till Harbaum]]
| Amsterdam Centraal station
| ICE 104 from Karlsruhe, Germany
|-
| 00:20
| [[User:Marcoil | Marc Ordinas i Llopis]]
| Schiphol Airport (AMS)
| Flight HV5624 from Mallorca
|}

=== Friday 9 ===

{|  class=&quot;wikitable&quot; border=&quot;2&quot;
! Time
! Name
! Place of arrival
! Means of transport
! Notes
|-
|7:00
| | [[User:eipi | Sanjeev Visvanatha]]
| Schiphol airport
| KLM 692 from Toronto (YYZ) 
|-
|7:30
| | [[User:n8willis | Nathan Willis]]
| Schipol airport
| KLM 670 from Dallas (DFW)
| happy to share transport to conference
|-
|7:40
| | [[User:eean | Ian Monroe]]
| Schipol airport
| Northwest Airlines 68 from Detroit
| ian.monroe@gmail.com to exchange phone #'s. I'm taking the train and then probably a cab to the conf directly.
|-
|8:10
| | [[User:v6sa | Lauri Võsandi]]
| Schipol airport
| Estonian Air OV173 
| If you're arriving around same time as me please contact me!
|-
|8:40
| | [[User:khertan | Benoît HERVIER]]
| Schipol airport
| Air France AF1240 
| If you're arriving around same time as me please contact me! khertan@khertan.net
|-
|9:00
| | [[User:bundyo | Kamen Bundev]]
| Schiphol airport
| Bulgaria Air - FB 461
| If you're arriving around same time as me please contact me at bundyo@gmail.com
|-
| 09:10
| [[User:rsuplido|Reggie Suplido]]
| Schiphol airport
| Flight NW36 from Detroit, United States
|-
|9:45
| | [[User:mdk | Michael Dominic K.]]
| Schipol airport
| LO 265 from Warsaw
| Share a taxi?
|}

=== Saturday 10 ===

{|  class=&quot;wikitable&quot; border=&quot;2&quot;
! Time
! Name
! Place of arrival
! Means of transport
! Notes
|-
| 9:05
| | [[User:anidel | Aniello Del Sorbo]]
| Schiphol airport
| EasyJet 3001 from London Stansted 
|}

== Departure ==

=== Sunday 11 ===

{|  class=&quot;wikitable&quot; border=&quot;2&quot;
! Time
! Name
! Place of departure
! Means of transport
! Notes
|-
| 17:30
| [[User:bundyo | Kamen Bundev]]
| Schiphol Airport
| Flight KL1731 to Brussels
|-
| 18:00
| [[User:achipa | Attila Csipa]]
| Schiphol Airport
| Flight MA667 to Budapest
|-
| 18:20
| [[User:eipi | Sanjeev Visvanatha]]
| Schiphol Airport
| Flight KL695 to Toronto (YYZ)
|-
| 18:34
| [[User:framstag | Tim Teulings]]
| Station Amsterdam Centraal
| With train (ICE 227) to Germany (Bonn)
|-
| 18:50
| [[User:onion | Kaj-Michael Lang]]
| Schiphol Airport
| Flight AY0846 to Helsinki
|-
| 18:50
| [[User:ymb | Mike Bradshaw]]
| Schiphol Airport
| Flight AY0846 to Helsinki
|-
| 18:50
| [[User:bergie | Henri Bergius]]
| Schiphol Airport
| Flight AY0846 to Helsinki
|-
| 18:50
| [[User:feri | Ferenc Szekely]]
| Schiphol Airport
| Flight AY0846 to Helsinki
|-
| 18:50
| [[User:neithan | Lauri Manner]]
| Schiphol Airport
| Flight AY0846 to Helsinki
|-
| 18:50
| [[User:ifrade | Ivan Frade]]
| Schiphol Airport
| Flight AY0846 to Helsinki
|-
| 18:55
| [[User:lma | Lucas Maneos]]
| Schiphol Airport (AMS)
| Flight KL2765 to LCY
|-
| 19:00
| [[User:rambo|Eero af Heurlin]]
| Schiphol airport
| Flight JL412 to Tokyo Narita
|-
| 19:05
| [[User:conny|Cornelius Hald]]
| Schiphol airport
| Flight LH4701 to Munich
|-
| 19:45
| [[User:mdk|Michael Dominic K.]]
| Schiphol airport
| Flight LO268 to Warsaw
|-
| 20:00
| [[User:Stskeeps|Carsten Munk]]
| Schiphol airport
| Flight KL1369 to Warsaw
|-
| 20:10
| [[User:thp|Thomas Perl]]
| Schiphol airport
| Flight OS376 to Vienna
|-
| 20:40
| [[User:fms|Marat Fayzullin]]
| Schiphol airport
| Flight KL0907 to Moscow
|-
| 20:45
| [[User:jeremiah|Jeremiah Foster]]
| Schiphol airport
| Flight  KL1163 to Gothenburg
|-
| 20:50
| [[User:khertan|Benoît HERVIER]]
| Schiphol airport
| Air France AF2241 to Paris
|- 
| 21:05
| [[User:Jaffa|Andrew Flegg]]
| Schiphol airport
| Flight KL1435 to Birmingham, UK
|-
| 21:15
| [[User:andy80|Andrea Grandi]]
| Schiphol airport
| Flight VY7217 to Valencia, Spain
|-
| 21:50
| [[User:crashanddie | Sebastian Lauwers]]
| Schiphol Airport (AMS)
| Flight 8882 to London Gatwick
|}

=== Monday 12 ===

{|  class=&quot;wikitable&quot; border=&quot;2&quot;
! Time
! Name
! Place of departure
! Means of transport
! Notes
|-
| 07:20
| [[User:gcobb|Graham Cobb]]
| Schiphol airport
| Flight BA423 to LHR
|-
| 10:00
| [[User:andrei1089 | Andrei Mirestean]]
| Schiphol airport (AMS)
| Flight MA661 to Budapest
|-
| 10:05
| [[User:texrat | Randall Arnold]]
| Schiphol airport (AMS)
| Flight KL 0669 to Dallas, TX USA
|-
| 10:25
| [[User:rsuplido|Reggie Suplido]]
| Schiphol airport
| Flight NW67 to Detroit, USA
|-
| 10:45
| [[User:sjgadsby | Stephen Gadsby]]
| Schiphol airport
| Flight US 799 to Philadelphia, USA
|-
| 11:55
| [[user:mgedmin | Marius Gedminas]]
| Schiphol airport
| Flight AY 842 to Helsinki, FI
|-
| 12:30
| [[User:lcuk | Gary Birkett]]
| Schiphol airport
| Flight KL 1083 to MANCHESTER GB
|-
| 13:30
| [[User:zgold550 | Zach Goldberg]]
| Schiphol airport
| Flight DL9348 to JFK, NY
|-
| 16:50
| [http://maemo.org/profile/view/plastun.html Max Usachev]
| Schiphol airport
| Flight OS 0374 to Vienna
|-
| 16:50
| [http://maemo.org/profile/view/vasvlad.html Vlad Vasiliev]
| Schiphol airport
| Flight OS 0374 to Vienna
|-
| 17:05
| [[User:vdvsx | Valério Valério]]
| Schiphol airport
| Flight HV 5357 to Faro, PT
|-
| 17:55
| [[User:Marcoil | Marc Ordinas i Llopis]]
| Schiphol airport
| Flight AB9264 to Mallorca
|-
| 18:15
| [[User:lardman | Simon Pickering]]
| Schiphol airport
| Flight Easyjet 6168 to Bristol, UK
|}

=== Tuesday 13 ===

{|  class=&quot;wikitable&quot; border=&quot;2&quot;
! Time
! Name
! Place of departure
! Means of transport
! Notes
|-
| 10:25
| [[User:timsamoff | Tim Samoff]]
| Schiphol airport
| Flight NW 67 to Detroit, MI
|-
| 12:30
| [[User:etrunko | Eduardo Lima (Etrunko)]]
| Schiphol airport
| Flight TP665 to Lisbon
|-
| 14:20
| [[User:b0unc3 | Daniele Maio]]
| Eindhoven Airport
| Flight FR4536 to Milano, IT
|-
| 15:40
| [[User:qole | Alan Bruce]]
| Schiphol airport
| Flight KL 0681 to Vancouver
|-
| 19:20
| [[User:aboaboit | Andrea Borgia]]
| Schiphol airport
| Flight HV5465 to Verona
|-
| 19:20
| [[User:Matteone | Matteo Nerozzi]]
| Schiphol airport
| Flight HV5465 to Verona
|-
| 19:20
| [[User:anidel | Aniello Del Sorbo]]
| Schiphol airport
| EasyJet 8878 to London Stansted
|}


[[Category:Maemo Summit 2009]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Theme Maker HOWTO</title>
    <id>2761</id>
    <revision>
      <id>32176</id>
      <timestamp>2010-04-08T14:18:31Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Making themes]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo UK variant firmware</title>
    <id>3543</id>
    <revision>
      <id>42964</id>
      <timestamp>2011-04-06T17:04:52Z</timestamp>
      <contributor>
        <username>mrsellout</username>
        <id>3603</id>
      </contributor>
      <comment>/* Maemo 5 UK variant firmware */</comment>
      <text xml:space="preserve">[[Updating the firmware|Instructions to flash or update the firmware]]

== Maemo 5 UK variant firmware ==

'''By downloading the software, you have accepted the end-user software agreement.'''

Initial Public Release: '''1.2009.42-11'''
* [http://tablets-dev.nokia.com/nokia_N900.php RX-51_2009SE_1.2009.42-11.203.2_PR_F5_203_ARM.bin]

Public Release 1.01: '''1.2009.44-1'''
* [http://rapidshare.com/files/346900877/RX-51_2009SE_1.2009.44-1.203.4_PR_F5_203_ARM.bin RX-51_2009SE_1.2009.44-1.203.4_PR_F5_203_ARM.bin]
** Size: 158881514
** MD5: 3E0DE1CB317C22D41D2A318F4E3706A6

[[Maemo 5/PR1.1|Public Release 1.1]]: '''2.2009.51-1'''
* [http://rapidshare.com/files/346892600/RX-51_2009SE_2.2009.51-1.203.2_PR_F5_203_ARM.bin RX-51_2009SE_2.2009.51-1.203.2_PR_F5_203_ARM.bin]
** Size: 165606178
** MD5: 194B3BCF7195BA0EFE5F3D11E499567A

[[Maemo 5/PR1.1.1|Public Release 1.1.1]]: '''3.2010.02-8'''
* [http://tablets-dev.nokia.com/nokia_N900.php RX-51_2009SE_3.2010.02-8.203.1_PR_F5_203_ARM.bin]

[[Maemo 5/PR1.2|Public Release 1.2]]: '''10.2010.19-1'''
* [http://tablets-dev.nokia.com/nokia_N900.php RX-51_2009SE_10.2010.19-1.203.1_PR_COMBINED_203_ARM.bin]
** Size: 187852801
** MD5: 0a8f877fef95b5e67da52c9e42d1fbf5

[[Maemo 5/PR1.3|Public Release 1.3]]: '''10.2010.36-2'''
* [http://tablets-dev.nokia.com/nokia_N900.php RX-51_2009SE_20.2010.36-2.203.1_PR_COMBINED_203_ARM.bin]
** Size: 200174209
** MD5: 4ee539021762f8fd3b54320326ce4876

== Maemo 5 Vodafone UK variant firmware ==

'''By downloading the software, you have accepted the end-user software agreement.'''

Initial Public Release: '''1.2009.42-11'''
* [http://rapidshare.com/files/346901765/RX-51_2009SE_1.2009.42-11.205.1_PR_F5_205_ARM.bin RX-51_2009SE_1.2009.42-11.205.1_PR_F5_205_ARM.bin]
** Size: 161237484 
** MD5: C34986D04A334CF6885E1FC548E6B081

Public Release 1.01: '''1.2009.44-1'''
* [http://rapidshare.com/files/346901803/RX-51_2009SE_1.2009.44-1.205.1_PR_F5_205_ARM.bin RX-51_2009SE_1.2009.44-1.205.1_PR_F5_205_ARM.bin]
** Size: 158750442
** MD5: 9E093CD7FD5061304F46DEA92079A0EF

[[Maemo 5/PR1.1|Public Release 1.1]]: '''2.2009.51-1'''
* [http://rapidshare.com/files/346895475/RX-51_2009SE_2.2009.51-1.205.1_PR_F5_205_ARM.bin RX-51_2009SE_2.2009.51-1.205.1_PR_F5_205_ARM.bin]
** Size: 165475106
** MD5: 35F5D4AC5CD07579534332DAA2BA4470

[[Maemo 5/PR1.1.1|Public Release 1.1.1]]: '''3.2010.02-8'''
** Size: ''Awaiting public release''
** MD5: ''Awaiting public release''

[[Category:Power users]]
[[Category:N900]]
[[Category:Firmware update]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo User Interface Issues (Presentation)</title>
    <id>1194</id>
    <revision>
      <id>30447</id>
      <timestamp>2010-03-03T15:25:09Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2008]]</comment>
      <text xml:space="preserve">This presentation will be given at the [[Maemo Summit 2008]] by [[User:Timsamoff| Tim Samoff]]

&quot;An Unofficial Guide to Creating a Most Excellent maemo User Interface&quot; is about a year old. It was written in an attempt to assemble some useful Maemo-related UI philosophies and techniques for Maemo developers to consider when coding and/or porting software to the Maemo platform. Initially, there was a little help and guidance from the Nokia Maemo team, but little input from the greater Maemo Community (aside from blog comments and miscellaneous emails). I'd like to open the document up for community scrutiny, critique, and editing -- with the possibility of adding it to the official maemo.org wiki compendium.

==Outline of the Program==

15-20 minutes on slides and explanation

* Title
* About Me
* About Guide
** Inception
** Participation
** Hopes &amp; Dreams
*** Wiki
* Why?
** Developers &amp; End-Users
** Gnome Human Interface Guidelines
* Utopian User Cycle
* The &quot;Bridge&quot; Metaphor
* Examples
** Facebook Updater
*** Process
*** Standards
*** Consistency
* Conclusion
** Community-driven
* Questions/Comments

5-10 minutes Q&amp;A &amp; Discussion.

==Slides==

* [[Media:Samoff-Maemo_Summit_Presentation.pdf|View the presentation]].

==Commentary==

===From Eric Warnke / brontide===

I don't know if I will be able to attend this session, but wanted to give my feedback on the current state of the Maemo UI standard by Tim.  I agree that we need to improve the quality of the baseline Maemo application that is out there, but I think we are shooting too short with many of the examples given.  Modal dialogs are something that all applications should attempt to minimize at all costs.  I'm not saying that dangerous actions should be taken without some sort of mitigation, but the UI should be optimized for speed and obviousness.

In the example of closing the facebook app there are a few other possibilities that might be better in a mobile applications and still fulfill the rule of last surprise for the user.

# Ok:  Confirmation prompt to close the app.  This fulfills the rule of least surprise, but forces the user to confirm a rather trivial action.
# Better:  Confirmation prompt if the user has a facebook request pending, or un-sent status text.  This allows the application to close is there is no danger in loss
# Good: Close never prompts, but unsaved text is automatically saved and restored on next launch.  Transactions with facebook run until completion even if the UI is closed.
# Best: Good + uses osso tools to save the state automatically so that hildon can close this application when it's in the background and the system needs memory; hildon will relaunch it when needed.  The user need never know the application was closed.

So I say that we need the UI to get out of the users way.  Applications should be quick to launch and quick to close, state should be updated at regular and sane intervals so that accidental, deliberate, or powerloss does not result in loss of data to the user.  Dialog boxes demand attention and should be used sparingly as it prevents other things from occurring.  I would personally rather see an action as undoable rather than prompting to confirm.

My other pet peeve is not taking advantage of the, poorly documented, hildon-input-mode in order to hint to the system what kind of data to expect.  This allows, for example, turning off auto-capitalize, turning on the numbers only, activating &quot;phone number&quot; mode so that the OSK has keys grayed out.  I will post a python example soon so that other developers need not suffer as I did to figure this out.

==Q&amp;A==

===Your Question(s) Here===

@Developers and End-Users:

* Who are the Maemo target users?
* Is there existing user research about the Maemo end users?

Thanks,
Ellen

==External Links==

* &quot;[http://samoff.com/maemoui/ An Unofficial Guide to Creating a Most Excellent maemo User Interface]&quot;
* [http://library.gnome.org/devel/hig-book/stable/ Gnome Human Interface Guidlines]

[[Category:Maemo Summit 2008]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo User Interface Issues Overview (Presentation)</title>
    <id>1195</id>
    <revision>
      <id>30448</id>
      <timestamp>2010-03-03T15:26:52Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Maemo Summit 2008]]</comment>
      <text xml:space="preserve">This is a ''Lightning session'' that introduces the '''[[Maemo_User_Interface_Issues_(Presentation)|full presentation]]''' given at the [[Maemo Summit 2008]] by [[User:Timsamoff| Tim Samoff]]

&quot;An Unofficial Guide to Creating a Most Excellent maemo User Interface&quot; is about a year old. It was written in an attempt to assemble some useful Maemo-related UI philosophies and techniques for Maemo developers to consider when coding and/or porting software to the Maemo platform. Initially, there was a little help and guidance from the Nokia Maemo team, but little input from the greater Maemo Community (aside from blog comments and miscellaneous emails). I'd like to open the document up for community scrutiny, critique, and editing -- with the possibility of adding it to the official maemo.org wiki compendium.

==Outline of the Program==

3-minute explanation that asks for community involvement.

* About Guide
** Inception
** Participation
** Hopes &amp; Dreams

==External Links==

* &quot;[http://samoff.com/maemoui/ An Unofficial Guide to Creating a Most Excellent maemo User Interface]&quot;
* '''[[Maemo_User_Interface_Issues_(Presentation)|Full presentation]]''' (during Saturday sessions)

[[Category:Maemo Summit 2008]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo Weekly News</title>
    <id>3095</id>
    <revision>
      <id>45887</id>
      <timestamp>2011-11-29T08:08:44Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>Remove hashtag contribution</comment>
      <text xml:space="preserve">&lt;div style=&quot;float: right; width: 50%&quot;&gt;&lt;rss&gt;http://www.mwkn.net/issues.rss&lt;/rss&gt;&lt;/div&gt; [[Image:Mwkn_icon_02_256.png‎|Maemo Weekly News]]

== Background ==
There are a lot of facets to the Maemo community, whether it's Bugzilla, maemo-developers, #maemo, Planet, Talk or Brainstorm. With the N900 and Maemo 5, there's been a noticeable increase in traffic in all these areas.

There have been suggestions of Maemo magazines before, but they've fallen over because:
# The people involved haven't been integrated into the community.
# They've been a lot of work to create.
# They tried to move away from [http://maemo.org/news/ maemo.org/news/]

Similarly, there are blogs (like Reggie's Maemo Talk) which highlight key important things; but some of them also suffer from the same problems above.

With the increase in volume, and limits on my own time, I'm finding it harder to be aware of all the things going on. In particular, little asides and so on on talk which are key to the community, but buried in a thread. The old complaint of &quot;too much happening outside of talk.maemo.org&quot; is now reversed, IMHO, but the SNR is too low to follow &quot;New Posts&quot; religiously *and* develop software at the same time.

== Idea ==
A weekly news digest of key useful/informative/interesting/insightful news from all Maemo news sources. Similar in style and approach to [http://lwn.net/Articles/360596/ Linux Weekly News], and Wine Weekly News.

This is, in many ways, a continuation of Ryan's &quot;[http://maemo.org/community/council/community_highlights_for_december_2008-part_i-january_2009-part_ii/ Community] [http://maemo.org/community/council/635a8ae4fd0f11dd90b3938ce0b5aa01aa01/ Highlights]&quot; but doing less work, being more encompassing and more repeatable.

This is NOT an attempt to aggregate ALL Maemo-related news, but provide a selection of highlights during the week; of interest to those who are involved in the platform and the community, but without the time to follow enough of the conversations in all the places to find the ones interesting to them. By acting as a filter, more people will be able to be involved in the things which interest them, resulting in an increase of higher quality submissions for members of the community who might not be heard from as much.

== Implementation ==
The key to its success is to produce something which is useful, integrated and deterministic; but without being a massive resource hog.

Produced weekly, every week, with a series of sections - probably similar to those on [http://talk.maemo.org/ tmo]:

* '''Front page''' (&lt;code&gt;front&lt;/code&gt;)
*: The front page of the issue. Most of the content here will be decided by the sub-editors and editors whilst pulling the issue together.
* '''Applications''' (&lt;code&gt;apps&lt;/code&gt;)
*: Applications, games and utilities. Substantial news or exciting new developments.
* '''Development''' (&lt;code&gt;devel&lt;/code&gt;)
*: News impacting the development of Maemo applications.
* '''Community''' (&lt;code&gt;community&lt;/code&gt;)
*: Community news, events, efforts. For example, council elections etc.
* '''Devices''' (&lt;code&gt;devices&lt;/code&gt;)
*: OS news, device news, ...
* '''Maemo in the Wild''' (&lt;code&gt;wild&lt;/code&gt;)
*: Exciting instances of Maemo being discussed outside the main Maemo community.
* '''Announcements''' (&lt;code&gt;announce&lt;/code&gt;)
*: Key announcements from around the Maemo community which don't go anywhere else.

To gather the news, a series of sub-editors/contributors would have access to a Twitter account ([http://twitter.com/mwkn @mwkn]). The posts to this feed would consist of the section, a few keywords and a link to the content (thread, post, email message, blog) which triggered it. For example, recently this may include:

  Apps wazd helping qwerty12 on Transmission: http://s56.radikal.ru/i152/0911/34/a388e13890a0.png
  Devices Release firmware available to download: http://flors.wordpress.com/2009/11/16/maemo-5-final-release-updated-sdk-and-firmware/
  Community Move official community discussion to tmo: http://talk.maemo.org/showthread.php?t=40526
  Devices DDP recipients' limited warranty http://talk.maemo.org/showpost.php?p=387051&amp;postcount=441

Anyone would be able to suggest content by directing a message @mwkn from their own Twitter accounts. The sub-editors would then be able to pick and choose from these if it's something they'd missed.

As each issue is being pulled together, one or more sub-editors would then review the posts to that Twitter feed for their sections and flesh it out with a longer paragraph/quote. Full-blown stories would also be possible, but I imagine that being a rarity (if ever). There would then be an overall editor(s) making sure there's no duplication and also including things from maemo.org/downloads/ (top 10 apps, and new apps this week) and the bug jars (top 10 activity, probably).

The completed digest would then be posted to a site and the front page syndicated to Planet and a thread opened at talk.maemo.org.

Hopefully this shouldn't be too much work; and sub-editors/contributors would be able to post to the feed during their daily review of their slice of the community.

=== Contributor Reference ===
Using your favourite Twitter client (browser-based ones like Echofon may be particularly effective), post tweets during your Maemo day (on anything interesting/useful that's found) in one of the following forms:

  @mwkn &lt;section&gt; &lt;message&gt;
  d mwkn &lt;section&gt; &lt;message&gt;

If your &quot;&lt;section&gt;&quot; isn't one of the valid ones above (case doesn't matter), you will receive a direct message from the bot informing you of the problem.

==== Bookmarklets ====
These bookmarklets help you find a URL to post:

* Gmail -&gt; maemo.org mailing lists:
&lt;pre&gt;javascript:(function()%20{%20var%20t=document.title.replace(/^.*?%20-%20(.*)%20-%20[^-]+/g,%20&quot;$1&quot;);%20window.open('http://www.google.com/search?q=inurl:lists.maemo.org%20&quot;'+t+'&quot;');%20})();&lt;/pre&gt;
* Current IRC log for #maemo:
&lt;pre&gt;javascript:(function(){var%20d=new%20Date();var%20m=d.getUTCMonth()+1;window.open('http://mg.pov.lt/maemo-irclog/%2523maemo.'+d.getUTCFullYear()+'-'+(m&lt;10?'0'+m:m)+'-'+d.getUTCDate()+'.log.html');})();&lt;/pre&gt;
* talk.maemo.org/forum.meego.com thread (from post):
&lt;pre&gt;javascript:(function()%20{location.href=location.href.replace(/^(https?:\/\/[^\/]+).*/, &quot;$1/showthread.php?&quot;)+document.getElementById('threadtools_menu').childNodes[1].action.toString().replace(/.*?(t=\d+).*/,&quot;$1&quot;)})();&lt;/pre&gt;

''Wiki problems prevent these being drag &amp; droppable, so when mwkn.net is up &amp; running they'll move there.''

=== Sub-editor Reference ===
'''This is a stop-gap, pending the full blown drag &amp; drop site below.'''

On Sunday, a skeleton &lt;code&gt;issue.txt&lt;/code&gt; file will be shared with the sub-editors containing all the tweets made by the contributors. It will be of the following format:

  [Title]
  Section=...
  LeadIn=...
  Quote=... (optional)
  LeadOut=... (optional)
  URL=...

In the lead-in and lead-out, &lt;code&gt;{user:maemo.org Username}&lt;/code&gt; can be used to put in someone's name and profile link.

The order of the entries overall is not significant, but the order they appear within the document determines the order within their section.

The sub-editors should fill out most of the content for their section, and the order of items within it, before the editors ensure consistent style and pull out some content for the front-page. However, whilst the &quot;fleshing out&quot; has to be done on a Sunday, everyone should get stuck in to ensure the issue is published on time.

== People ==
=== Contributors ===
Well-respected members of the community to volunteer to highlight content they see during their Maemo day. This could be whilst sat on IRC, reading the mailing lists, watching maemo.org/news/, contributing on Brainstorm or reading Talk. '''The only extra work should be to use their favourite Twitter client to post links that should be in the digest.'''
* [[User:timsamoff|Tim Samoff]]
* [http://maemo.org/profile/view/anidel/ Aniello Del Sorbo]
* [[User:andy80|Andrea Grandi]]
* [[User:jukey|Uwe Kaminski]]
* [http://maemo.org/profile/view/reggie/ Reggie Suplido]
* [[User:lma|Lucas Maneos]]
* [http://maemo.org/profile/view/jonquark/ Jon Levell]

=== Editors ===
The people with ultimate responsibility. People who are also willing to flesh out the links each week by selecting a representative quote; who make sure the whole thing is consistent.
* [[User:Jaffa|Andrew Flegg]] - ''editor-in-chief''
* [[User:Generalantilles|Ryan Abel]]
* [http://maemo.org/profile/view/fiferboy/ Andrew Olmsted]

== Technical implementation ==
[http://maemo.org/profile/view/crashanddie/ Sebastian Lauwers] has volunteered to assist with the website tooling. The key to the success of MWkN is streamlined tooling and process to make the editions as easy to pull together as possible.

Imagine an issue being put together as:
# Log in.
# Open the current in-progress digest to edit.
# Select a section from a drop-down. A list of Twitter posts from the MWkN account in that section appears in a side-bar.
# Each Twitter post can be clicked on to add the lead-in text, an appropriate quote and any lead-out text necessary.
# Items can then be dragged on to the section, and re-ordered. Possibly with WYSWIWYG editing. (i.e. steps 4 &amp; 5 could be combined)
# Changes are instanta-save and, ideally, shared between any sub-editors looking at the section (one step at a time).

Using lots of tools like JQuery and YUI! to make it really quick and
simple to flesh out a few links into a paragraph each and pull each
section together.

So, for example, the links above:

{| class=&quot;wikitable&quot;
! colspan=&quot;2&quot; | Applications - wazd helping qwerty12 on Transmission: http://s56.radikal.ru/i152/0911/34/a388e13890a0.png
|-
! Title:
| wazd helping qwerty12 on Transmission &lt;--- auto-created but editable
|-
! Lead-in:
| {user:wazd}, our prolific community graphic designer, is
helping {user:qwerty12} with the UI for his port of Transmission, a
Bittorrent client; allowing the user to download (legal) content from
various places on the Internet.
|-
! Quote:
| [none]
|-
! Lead-out:
| [none]
|-
! colspan=&quot;2&quot; | Renders as:
|-
| colspan=&quot;2&quot; | &lt;pre&gt;&lt;nowiki&gt;
&lt;h3&gt;wazd helping qwerty12 on Transmission&lt;/h3&gt;
&lt;p&gt;&lt;span class=&quot;lead-in&quot;&gt;&lt;a href=&quot;http://maemo.org/profile/view/wazd/&quot; class=&quot;user&quot; title=&quot;wazd&quot;&gt;Andrew Zhilin&lt;/a&gt;, our prolific community graphic designer, is helping &lt;a href=&quot;http://maemo.org/profile/view/qwerty12&quot; class=&quot;user&quot; title=&quot;qwerty12&quot;&gt;Faheem Pervez&lt;/a&gt; with the UI for his port of
Transmission, a Bittorrent client; allowing the user to download (legal) content from various places on the Internet.&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;link&quot;&gt;&lt;a href=&quot;http://s56.radikal.ru/i152/0911/34/a388e13890a0.png&quot;&gt;Read more&lt;/a&gt;&lt;/div&gt;
&lt;/nowiki&gt;&lt;/pre&gt;
|}

{| class=&quot;wikitable&quot;
! colspan=&quot;2&quot; | Devices - Release firmware available to download: http://flors.wordpress.com/2009/11/16/maemo-5-final-release-updated-sdk-and-firmware/
|-
! Title:
| Summit N900 owners rejoice: release firmware available to download &lt;--- defaulted, but edited.
|-
! Lead-in:
| Those of us who received loan devices at the Maemo Summit have been using pre-production firmware; until now:
|-
! Quote:
| The Nokia N900 is landing in the hands of real users with the Maemo 5 final release that we have been polishing in the last weeks. The fortunate users of a pre-production Nokia N900 are encouraged to flash completely their devices in order to have them as they come out of a sales box.
|-
! Lead-out:
| Simultaneously released is the final release SDK, allowing developers to run the same environment  on their device and in Scratchbox.
|-
! colspan=&quot;2&quot; | Renders as:
|-
| colspan=&quot;2&quot; | &lt;pre&gt;&lt;nowiki&gt;
&lt;h3&gt;Summit N900 owners rejoice: release firmware available to download&lt;/h3&gt;
&lt;p&gt;&lt;span class=&quot;lead-in&quot;&gt;Those of us who received loan devices at the
Maemo Summit have been using pre-production firmware; until
now:&lt;/span&gt; &lt;span class=&quot;quote&quot;&gt;The Nokia N900 is landing in the hands
of real users with the Maemo 5 final release that we have been
polishing in the last weeks. The fortunate users of a pre-production
Nokia N900 are encouraged to flash completely their devices in order
to have them as they come out of a sales box.&lt;/span&gt; &lt;span
class=&quot;lead-out&quot;&gt;Simultaneously released is the final release SDK,
allowing developers to run the same environment  on their device and
in Scratchbox.&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;link&quot;&gt;&lt;a
href=&quot;http://flors.wordpress.com/2009/11/16/maemo-5-final-release-updated-sdk-and-firmware/&quot;&gt;Read
more&lt;/a&gt;&lt;/div&gt;
&lt;/nowiki&gt;&lt;/pre&gt;
|}

{| class=&quot;wikitable&quot;
! colspan=&quot;2&quot; | Devices - DDP recipients' limited warranty http://talk.maemo.org/showpost.php?p=387051&amp;postcount=441
|-
! Title:
| Device programme recipients' limited warranty
|-
! Lead-in:
| {user:milhouse} has asked the Forum Nokia folks behind the device discount programme (DDP) as to the warranty included in the half-price N900s available to high-profile members of the community, and the news isn't good:
|-
! Quote:
| The devices that are sold through the Discounted Device Program (DDP) do not have Nokia's standard Product warranty. If the device that you receive is defect, you can return it within one (1) week from the purchase with a written note explaining what the defect is.
|-
! Lead-out:
| Obviously, this has caused some consternation; and it's not yet clear what happens after the one week has expired.
|}

== Next Steps ==
Next tasks as of 2010-01-17:
# &lt;strike&gt;Register mwkn.net and twitter.com/mwkn&lt;/strike&gt;
# &lt;strike&gt;Design logo &amp; Twitter avatar (above is, a, err, draft ;-))&lt;/strike&gt;
# Decisions:
#* Should contributors need access to @mwkn, or is it fine for them to be followed by mwkn and they just post with an &quot;@mwkn&quot; prefix?
#*: I think posting with @mwkn works just as well as anything. --[[User:timsamoff|timsamoff]] 13:43, 18 January 2010 (UTC)
#*: The advantage of having everything which probably will be included in the issue go out under a single Twitter account is that it's similar to Slashdot's &quot;Firehose&quot;. Perhaps it could just retweet anything it gets from the contributors it's following? --[[User:jaffa|Jaffa]] 14:03, 18 January 2010 (UTC)
#*: I like the idea of retweeting, but in that case, I'd ask people to use a #mwkn Hashtag rather than posting to @mwkn. Then, everything on the @mwkn page remains contained to posts and retweets. --[[User:timsamoff|timsamoff]] 14:28, 18 January 2010 (UTC)
#* Release date/time: every Monday, 6am UTC? Gives time on Sunday evenings to pull it together.
#* Section list.
# Get sub-editors responsible for pulling together category pages.
# Build site for pulling together issue.
#: Spoke to crashanddie, thinking PHP + MySQL from editor interface; static HTML output for the issue; collection from Twitter using its RESTful API, in one of Perl/Python/PHP; host on badger.bleb.org (infrastructure already present) --[[User:jaffa|Jaffa]] 21:26, 18 January 2010 (UTC)
# CSS/HTML for resulting issues.
#* Front page has some entries pulled up from other sections.
#* At end, contains headlines from first 5 items in each section.
#* Has &quot;Download issue&quot; link which returns all issue in one HTML file for easy downloading and offline reading.
#* Otherwise, each section is in a series of pages, linked together. See LWN for example.
# Pull together launch issue
# Put out &amp; promote
# Rinse, repeat.
# Profit.


__NOEDITSECTION__ &lt;!-- disables the [edit] links from being shown --&gt;
__NOTOC__ &lt;!-- disable the table of contents from ever being shown --&gt;

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo basics</title>
    <id>2638</id>
    <revision>
      <id>48111</id>
      <timestamp>2012-06-04T05:19:35Z</timestamp>
      <contributor>
        <username>polarbear</username>
        <id>5240</id>
      </contributor>
      <minor/>
      <comment>Fixed basic syntax error in introduction</comment>
      <text xml:space="preserve">If you just bought a new Maemo-based device, you might want to start with the [[User_FAQ]] and come back after reading it. The [[new users]] page is a more general overview. 

This is a brief introduction for people who are new to the Maemo community. The goal of this page is to explain Maemo devices, operating systems, Linux, software development, and what new users need to know to understand Maemo.

== What is Maemo? ==

[[wikipedia:Maemo|Maemo]] is the name of an operating system and Linux-based application platform which Nokia introduced in 2005 to run on the [[Nokia 770]]. But Maemo is more than just an OS, It is the community and tools and devices&amp;mdash;everything&amp;mdash;to do with the operating system. maemo.org is the home of the Maemo Community. The resources available here are [http://maemo.org/downloads/ Downloads], [http://maemo.org/community/ Documentation], [http://maemo.org/development/ development resources], [http://maemo.org/news/ news] and a [http://talk.maemo.org/ forums].

* [http://maemo.org/downloads/ Downloads] is a showcase for applications and other software, some of it developed by Nokia, and some of it from members of this Maemo community.
* [http://maemo.org/community/ Community] is a collection of useful information and links for both developers and users. For new users the [[Main Page|wiki]] can be especially useful for [[User FAQ|frequently asked questions]], and general information.
* [http://maemo.org/development/ Development] is a resource for developers. If you are interested in writing code for Maemo, there is a wealth of information and downloadable resources there to help you get started.
* [http://maemo.org/news/ News] is a collection of announcements and blogs about Maemo and the community.
* [http://talk.maemo.org/ Talk] comprises a number of forums about Maemo. Some are technical forums for developers but others are for ordinary users.

== Why Maemo? ==

; Power : It is a complete, full-featured and open operating system that runs on a mobile computer.
; Synergy : It is a collaborative effort using the resources and backing of a successful, for-profit company (Nokia) and the talents and resources of an enthusiastic community of volunteers.
; Flexibility : It is a Linux distribution. The main competing mobile operating systems are built on Linux, but deliberately restricted ([http://www.android.com/ Google's Android]), cut down and closed ([http://www.microsoft.com/windowsphone/en-us/default.aspx Windows Phone]),  or closed and deliberately limited ([http://www.apple.com/iphone/ iOS]).

== How can I run Maemo? ==

Maemo runs on Nokia's Maemo devices. It is available in several versions and not all tablets will run all versions.

; Maemo 5 : The most recent Maemo release is [[Open development/Maemo roadmap/Fremantle|Maemo 5]] (Fremantle) and it runs on the [[Nokia N900]].

; Maemo 4 : Maemo 4 (Chinook), also known as OS2008, runs on the [[Nokia N800|N800]], [[Nokia N810|N810]] and N810 WiMAX Edition. It had a major upgrade to version 4.1 ([[Open development/Maemo roadmap/Diablo|Diablo]]). None of the N8x0 models can be upgraded to Maemo 5, but [[Mer]], an alternative, community maintained operating system is also in development with a new goal: To bring as much of Fremantle as possible on the N800/N810. 

; Maemo 3 : Maemo 3 (Bora), also know as OS2007, runs on the N800. The N800 can be upgraded to Maemo 4.

; Maemo 1/2 : Maemo 1 and Maemo 2 were installed on the 770 (depending on the date the 770 was manufactured). The 770 cannot be upgraded to the official versions of Maemo 3 or Maemo 4 but it can be updated with unofficial &quot;Hacker's Editions&quot; (OS2007HE and OS2008HE).

== What can I do with Maemo? ==

Maemo now provides almost everything you would expect a smartphone to have&amp;mdash;and then some! When you need something more, you can easily install a new application. That is life with a pocketable computer.

Maemo 5 features:
* Email
* Alarms
* Web browsing and Newsfeeds
* Internet and cell calls
* Contacts address book
* Calendar and appointments
* Still and motion photography
* Media (music and movies) player
* Instant messaging (IM) and texting (SMS)
* Maps and Navigation
* Games

One basic limitation is that MMS is not officially supported (but there is [[fMMS]].)

See the [http://maemo.org/downloads/ Downloads] section to get an idea of additional possibilities. The [http://maemo.org/downloads/OS2008/ software for OS2008] runs on the Nokia [[Nokia N800|N800]] and [[Nokia N810|N810]] tablets. The [http://maemo.org/downloads/Maemo5/ Maemo 5] downloads page is for the [http://maemo.nokia.com/n900/ Nokia N900]. There's also a showcase of the greatest Maemo software collected from maemo.org and Nokia's [https://store.ovi.com Ovi Store] at [http://maemo.nokia.com/maemo-select/applications/ Maemo Select].

Installation is as easy as starting up the application manager on your Maemo device.

== Other Resources ==

Nokia maintains an official user-oriented site at [http://maemo.nokia.com/ maemo.nokia.com]. If your questions weren't answered there, see the [[frequently asked questions|FAQ]]. If additional help is needed, try the [http://talk.maemo.org/ talk.maemo.org forums], where there is a [http://talk.maemo.org/showthread.php?p=340908 thread for newcomers].

Browse the [http://wiki.maemo.org/Category:Beginners Beginners] category.

If you need to have software ported from other OSes, visit [[Applications you wish were ported from other platforms]]. Requests for apps is evolving as a process and instructions to that will come later.


[[Category:Users]]
[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo brainstorm</title>
    <id>2964</id>
    <revision>
      <id>22167</id>
      <timestamp>2009-11-08T21:37:27Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Maemo brainstorm]] moved to [[Task:Maemo Brainstorm]]: This is a Task</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Maemo Brainstorm]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo contribution guidelines</title>
    <id>1345</id>
    <revision>
      <id>42341</id>
      <timestamp>2011-03-04T13:58:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify section headings</comment>
      <text xml:space="preserve">These are the guidelines third party developers need to observe when contributing code to open source software maintained or distributed by Nokia in the Maemo platform:

== Contributions welcome! ==

The Maemo SW team at Nokia encourages revision and feedback of the open source components of the Maemo platform and related open source applications.

== Sources ==

The sources of the Maemo platform and related Nokia developed open source applications are available at git.maemo.org. (planned)

== Releases ==

Patches are most welcome in the ongoing alpha/beta release. Bugfixes on new stable releases are encouraged too.

Note that it is very complex for maintainers to apply UI changes on final releases since they might originate new iterations in localization, usability and testing.

== Submissions ==

Bugfixes need to be referenced in existing or new bugs filed at https://bugs.maemo.org, including the keyword &quot;[https://bugs.maemo.org/describekeywords.cgi#patch patch]&quot;. 

Developers can attach patches to the bug report or can host them in their own git directory at git.maemo.org (planned).

== Upstream ==

Patches to software components developed upstream need to be submitted following the contribution guidelines of the original projects.

If the upstream component has no Maemo specific versioning, it is better to contribute the patch directly upstream. Please notify the Maemo SW maintainers through https://bugs.maemo.org, they might get your patch anyway and help you getting it committed upstream.

== Quality ==

Software contributions need to take into account the Maemo [http://maemo.org/maemo_release_documentation/maemo4.1.x/node16.html quality considerations] and [http://maemo.org/maemo_release_documentation/maemo4.1.x/node16.html#SECTION001630000000000000000 coding style]. 

Learn more about [[The Good Patch]].

== License ==

If you want your patch to be accepted you better use the same license used by the component patched.

== Copyright ==

Developers of significant code contributions retain their copyrights and are credited.

Ideas or contributions below 15 lines are usually not considered subject to copyrights. For details see the definition of [http://www.gnu.org/prep/maintain/maintain.html#Legally-Significant legally significant changes] made by the GNU Project.

[[Category:Development]]
[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo developer tools</title>
    <id>36</id>
    <revision>
      <id>41545</id>
      <timestamp>2011-02-01T11:37:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>move information and redirect to [[Documentation/devtools]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/devtools]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo in OSiM World 2008</title>
    <id>684</id>
    <revision>
      <id>6882</id>
      <timestamp>2008-09-01T07:42:26Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>/* Sponsored participants */ (missed Alan aka qole)</comment>
      <text xml:space="preserve">The Maemo related activity in http://www.osimworld.com is concentrated in two sessions.

==Nokia and Maemo: Next Iteration==
Ari Jaaksi has a keynote on [http://www.osimworld.com/newt/l/handsetsvision/osim08/agenda_d1.html Wednesday 17] at 11.40:

* Maemo: one step further
* maemo.org and the maturity of a community
* Linux in the context of Nokia today
Ari Jaaksi, Vice President, Maemo Software, Nokia Devices R&amp;D Nokia

==Get ready for 2009!==
There is a Maemo [http://www.osimworld.com/newt/l/handsetsvision/osim08/dev_zone.html developer session] on Thursday 18 at 10.30-12.15. '''Free access for developers!'''

This program is '''provisional''' and, in fact, Nokia is doing heavy changes on it. The content will change in order to introduce in more detail the news presented by Ari that are relevant to developers.

* Meet the core maemo development team.
* OSS details about the next release.
* Diablo plans and evolution.
* maemo developer community: the next level.
Facilitators: QuimGil, Marketing Manager,Open Source, maemo software@Nokia&lt;br&gt;
Niels Breet, maemo community webmaster&lt;br&gt;
Dave Neary, maemo community docmaster&lt;br&gt;
Andre Klapper, maemo community bugmaster&lt;br&gt;

==Sponsored participants==
Nokia is covering their registration as independent developers. The OSiM organization will contact them to have the registration complete.

* John Costigan
* Adam Harwell
* Nikos Tsourakis
* Roger Sperberg
* Reggie Suplido
* Thomas Perl
* Florian Boor
* Stephen Gadsby
* Simon Budig
* Andrew Flegg
* Loïc Minier
* Jamie Bennett
* Tim Samoff
* Eric Warnke
* Henrik Hedberg
* Alan Bruce

== And more! ==
* Dave Neary is participating in a panel on Thursday: [http://www.osimworld.com/newt/l/handsetsvision/osim08/agenda_d2.html#s3d2 &quot;Panel Discussion: Effectively Building and Maintaining an Open Source Community&quot;].

[[Category:Events]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo on Debian</title>
    <id>3619</id>
    <revision>
      <id>45149</id>
      <timestamp>2011-09-05T19:35:24Z</timestamp>
      <contributor>
        <username>farmatito</username>
        <id>2011</id>
      </contributor>
      <comment>/* Integrate minimal nokia system with Debian infrastructure */</comment>
      <text xml:space="preserve">= Moebian: Maemo5 and MeeGo on Debian =

[https://garage.maemo.org/projects/moebian/ garage project page]
[https://garage.maemo.org/mailman/listinfo/moebian-devel developer mailing list]

== Motivation ==

The purpose of this project is to port the proprietary Nokia components of Maemo 5 to a Debian base system running on the [[Nokia N900]] and future devices.
It should be possible run both Maemo5 and standard Debian software on this platform natively and in the same environment.
In the future, the project will package and integrate the MeeGo components and know-how to enable the installation of MeeGo applications. 

=== Why not MeeGo?  ===

MeeGo is supposed to be a merger of Maemo 5 and Moblin and therefore the future of Maemo.
While Maemo 5 is similar to Debian and reuses most of its tools and policies, it is still significantly different from Debian so that porting Debian packages is not always trivial.
Installation of native Debian packages is in most cases impossible.

For many users, the similarity to Debian and the relative openness of Maemo 5 has been precisely the reason they have bought the Nokia N900. 
So far Nokia has not committed to porting Harmattan, the successor of Maemo 5, which is supposed to be MeeGo compatible, or the official MeeGo to the N900. 
Now, a few months after its public release, owners of the sophisticated, but expensive N900 have the impression that they are left with an abandoned OS and have little hope to be able to upgrade to its successors.

This projects aims to give N900 users immediate access to the Debian software pool and the prospect to be able to install MeeGo applications in the future.
It also intends to try and convince Nokia to open-source as many applications and drivers for the N900 as possible in order to integrate them better into this project.

The commercial initiative of Intel and Nokia, called MeeGo, is supposed to be open-source and open for the community.
However, important decisions have been made behind closed doors and are unlikely to change.
One of those decisions is to switch from a base system that is similar to Debian, to an independent base that uses the RPM package manager and that is not required to be compatible with any of the major Linux distributions.
MeeGo users and developers could therefore only use and rely on designated MeeGo applications and libraries, if they do not port third-party software to it themselves.
MeeGo apparently only targets mainstream mobile applications, while this project aims to satisfy the needs of both mainstream and experts.
This project is therefore not a fork or competitor to MeeGo but rather a project with a broader scope than MeeGo.
The MeeGo software stack is just one part of this project.

=== Advantages for users and developers ===

The integration of Debian, Maemo 5 and MeeGo in this project has the following advantages:

'''Users''' will have the freedom to install 
# all Maemo 5 applications (incl. the non-free Nokia binaries), and improved free Nokia packages (which is not possible for standard Maemo5 firmware)
# future mobile-optimized MeeGo applications (RPM packages), and
# all packages from the huge Debian software pool, which is constantly maintained and updated (incl. security fixes) by the Debian community.
# novel mobile, Debian compatible applications written for this project
Only few packages will require modification to run on this platform (excluding complete GUI adapations).
The main contribution of this project is to perform and maintain such modifications, and if possible, to send them upstream.  

'''Developers''' of third-party apps could simply integrate all software packages (for example, libraries)
that are available in the huge Debian pool, without the need to port and to maintain them themselves.
If they are familiar with the mature Debian development tools and policies, there is no need to learn something new.
They could also build and test the apps natively on their Debian desktop.

=== The .deb vs. .rpm debate ===

{{main|DebForMeeGo}}

There are only subtle differences between the two package formats .deb and .rpm and their respective package managers.
Many MeeGo supporters make a category error by confusing the underlying package format with the higher goal.
The purpose of this project is not necessarily to have .deb packages and dpkg as a front end, but to be able to integrate existing Debian and Maemo work and know-how.
Since both of them are based on dpkg, choosing the same format is required for retaining compatibility.
To emphasize this point: if Maemo and Debian were using .rpm, this project would use it, too.

Also many people not familiar with packaging erroneously believe that packages could be simply converted using tools like alien.
However, this only works for very simple packages with minimal dependencies. For packages with library dependencies
and specific file system layout expectations this is not possible and requires manual packaging.

=== Differences to Easy Debian ===
The Easy Debian project proves that it's possible to run a full Debian distribution within a chroot on the N900.
However, the Debian applications run rather independently from Maemo5 and there are problems with hardware access (keyboard, sound etc.).
This project tries to integrate Debian packages directly with Maemo5 so that both can access the hardware natively and share the same up to date libraries.
Disc access would also be much faster than through a disc image.

== Implementation plan ==

Currently, project is in it's very early stage.

Here are several steps that we are going to do:

=== Determine a place for the installation of the Debian base system on a N900 ===
Ideally, we'd like to be able to boot and use Maemo5 and the new experimental system in parallel on the device
in order to compare differences, and get access to more beta-testers which would not risk breaking their device.
By default, N900 has a fast 256MB NAND flash and a slower 32G eMMC flash (/dev/mmcblk0 device), that is split into a 768k swap partition, a 2 Gb /home partition, and a 27GB vfat /home/MyDocs partition.

However, the rootfs is too small to store all packages, user data  and addon-software.
Maemo5 tries to solves this problem with problematic [http://wiki.maemo.org/Opt_Problem &quot;optification&quot;], which is not compatible with standard Linux distributions.
We should try to solve this problem in a more elegant way which is FHS compatible.
The simplest solution is to keep the rootfs (or the largest part of it) not on NAND but on eMMC.

There are several possible solutions where to store the Debian base system and its rootfs:
# installation in a /home. pros: simple installation, no need for partitioning (unless repartitioned for larger /home), fast, cons: only one installation possible, limited to 2GB (unless repartitioned)
# installation in a chroot on /home. pros: simple installation, no need for partitioning (unless repartitioned for larger /home), fast, multiple chroots. cons: not useable as independent boot device? limited to 2GB (unless repartitioned)
# installation in a new partition or on SD card: pros: independent and isolated, could be USB exported, fast, less space constraints. cons: requires partitioning and setting up a file system, fixed size, only one simultaneous installation possible
# installation in a disk image. pros: isolated, prepared image could be downloaded, size up to 27GB in MyDocs could be USB exported, multiple chroots. cons: quite slow

see
#[https://garage.maemo.org/pipermail/moebian-devel/2010-March/000012.html Moebian installation]
#[http://maemo.org/packages/view/easy-chroot/ easy-chroot]
#[http://talk.maemo.org/showthread.php?p=462139 thread about building a chroot for installing the SDK]

=== Repartitioning the flash ===

see [[Repartitioning_the_flash]]

Most users of this project have a Debian background and would probably like to reserve more space for packages or POSIX compatible data storage than for a large partition with an outdated filesystem (vfat).
The obvious solution is to repartition the flash. There are several typical scenarios:
# Swap /home and MyDocs partition to get a 2GB vfat MyDocs and a 27GB ext3 /home. No partition size need to be changed and the change could be done online.
# get rid of the MyDocs partition, setup a single 31GB ext3 partition, and replace MyDocs with loopback file(s) that could also be USB exported and have arbitrary size and filesystem. However, the loopback files may be significantly slower. ext3 partitions can be grown online.
# setup an arbitrary /home and MyDocs division of the space. This may require partitioning before any eMMC is mounted (/home cannot be unmounted) and may be much more dangerous. But it may be the least intrusive and visible solution for applications.

Solutions 1 and 2 require modifications to ke-recv, which hardcodes /dev/mmcblk0p1, upstart scripts (rcS-late) and possibly the USB export scripts to enable USB mass storage support.
For the camera application the DCIM directory has to be created with [https://bugs.maemo.org/show_bug.cgi?id=7160 proper permissions].

We should design and document a clean procedure, how to make /home/MyDocs partition smaller, and get a new free partition for Debian. This should be done such that all current content of /home/MyDocs is preserved, and device keeps booting and working normally.
Once such a procedure is designed and debugged, it will be documented here.

=== Determine minimal subset of Nokia's firmware to work with ===

It will be easier to work with smaller system. I think that complete Nokia's firmware is a bit large to start with. Better to find a smallest subset that is enough for communication functions (UI/phone/messaging) and work with that.

This subset is likely a set of Nokia's original .deb packages (from some particular firmware release), plus maybe some files that are not in any package [don't know if there are such].

It should be possible to unpack the debs in the subset into our free partition (perhaps in the way similar to debootstrap: first unpack, then run postinst scripts and hooks), add not-in-deb files if any (hook can do that), and then boot device into that.

Having device that dual-boots into original system and this minimal subset is a big milestone.

=== Integrate minimal nokia system with Debian infrastructure ===

Next step is to understand the relation between our minimal system and the rest of the debian. There will likely be different sort of incompatibilities between minimal Nokia system and normal Debian: files provided by both Nokia and Debian packages, namespace collisions, incompatible packaging practices, and all other sort of problems. These should be determined and faced somehow, step-by-step.

At some point we should get system that is still functional as a phone, and that can install packages from Debian repositories.

=== To be continued ... ===

Then we should integrate rest of Nokia apps, as well as Maemo and/or Meego apps, and also do numerous enhancements that definitly will be needed and possible.

== Roadmap ==
All tasks within one phase can be done independently.
Later phases require all tasks in previous phases to be done. 
You can assign ourselves by adding your nickname or email.

=== Phase 0 ===
# DONE: decide on the name for the project, register a domain, setup a homepage, and make it public. Some ideas for the name: Moebian, Debian Mobile, Debian/MeeGo, Maebian

=== Phase 1 ===
# DONE: set up mailing lists with public archive, http://garage.maemo.org/mailman/listinfo/moebian-devel
# DONE: set up bug/issue/task tracker and wiki, VCS, https://garage.maemo.org/projects/moebian/
# DONE: set up a repository for updated, but N900 specific free packages or rebuild Debian, Maemo and MeeGo packages, temporary location: http://maemory.com/moebian/
# DONE: write scripts to setup Maemo5 chroots or partitions which can be booted (bootmenu) or chrooted to. titan has written a script to symlink all necessary system in the rootfs from a chroot. The advantage over copying the rootfs  are the higher speed of NAND,the automatic update by firmware upgrades and less disc usage.
# fix hanging startup-pin-query when booting from flash
# identify more shared directories in /usr where packages install their files. create them before symlinking

=== Milestone 1 ===
successfully dual-boot or chroot into the Maemo5 copy

=== Phase 2 ===
# identify non-free packages names in the firmware and repack the binaries with [http://maemo.org/packages/view/dpkg-repack/ dpkg-repack]
# set up or get access to a build system (OBS?)
# create a Maemo package in extras-devel which automatically setups a chroot or partition (incl. repartitioning)
# build a dependency graph for the non-free packages so that we know which packages could be broken by what library upgrade. Use [http://collab-maint.alioth.debian.org/debtree/ debtree]?
# modify dpkg-repack so that dependencies can be modified
# try to replace essential libraries (libc, libgcc, Gtk) and software step by step and check which packages would break
# for packages which break, keep the original dependency at another place and fix the rpaths with chrpath. Alternatively, create a sub-chroot which contains the minimal dependencies to run the application. Also ask Nokia to open-source the code, or rebuild the binary in a more compatible way.
# install essential Debian packages and disable all services that would run in the background or unnecessarily slow down the system (PAM) in order to save battery.

=== Milestone 2 ===
run the core Nokia binaries (phone,calendar etc) on a base system with essential libraries replaced by their Debian versions

=== Phase 3 ===
# adapt more Debian packages to mobile usage
# make sure Maemo5 applications can be installed or port more essential Maemo5 packages to the new base (e.g., pymaemo).

=== Phase ? ===

# integrate MeeGo components, send fixes to MeeGo

== Infrastructure == 

[http://talk.maemo.org/showthread.php?t=44967 discussion about the project]

== Resources ==

=== Discussions ===
#[http://lists.debian.org/debian-devel/2010/02/msg00428.html Thread on Debian-devel]
#[http://talk.maemo.org/showthread.php?t=22557 old Deblet thread]
#[http://talk.maemo.org/showthread.php?t=44597 poll and discussion about the switch to RPM]

=== Related projects ===
#[http://wiki.debian.org/Mobile Debian Wiki]
#[http://wiki.meego.com/Proposal_for_a_Debian_Packaging_working_group MeeGo: Debian Packaging]
#[[Mer]] [http://www.maemonokian900.com/maemo-news/dual-booting-mer-on-nokia-n900/ dual-booting Mer]
#[http://meego.com MeeGo]
#[[Easy Debian]] [http://talk.maemo.org/showthread.php?t=34550 thread]
#[http://talk.maemo.org/showthread.php?t=43188 Debian rebuild for Maemo5]
#[http://moblin.org/ Moblin]
#[http://wiki.debian.org/DebianEeePC Debian for Eee PC]
#[http://www.ubuntu.com/products/whatisubuntu/arm Ubuntu ARM port] and [http://www.linuxuk.org/2010/02/the-new-ui-for-arm-based-ubuntu-devices/ with new UI]
#[http://tuxmobil.org/debian_linux_phones.html Debian for Linux phones]
#[http://www.canonical.com/projects/ubuntu/unr Ubuntu Netbook Remix]
#[http://www.emdebian.org/grip/ Embeddian]
#[http://wiki.debian.org/Teams/DebianFSO Debian on FreeRunner]
#[http://www.hackable1.org/ Hackable:1]
#[http://www.sugarlabs.org/ Sugar]
#[https://wiki.ubuntu.com/MobileTeam/UbuntuLiquid Ubuntu Mobile]

=== Proprietary Maemo components ===

#[[Open development/Why the closed packages|Why close packages?]]
#[http://stskeeps.subnetmask.net/maemo.org/openness/pr1.1/ Openness report]
#[[Free Maemo]]
#[[Open development/Licensing change requests|Licensing change requests]] and [http://talk.maemo.org/showthread.php?t=44991 thread for license change requests]

=== Build systems and toolchains ===
#[http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/Platforms/Maemo/ Maemo SDK]
#[http://maemo-sdk.garage.maemo.org/ Maemo SDK+ based on scratchbox2 and lenny tools]
#[[Building packages with sbdmock|sbdmock for Maemo]]
#[https://build.opensuse.org/ OBS]
=== Packaging, tools ===
#[[Packaging|Packaging for Maemo5]]

[[Category:Software]]
[[Category:Development]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo package source status</title>
    <id>487</id>
    <revision>
      <id>5545</id>
      <timestamp>2008-07-25T20:52:24Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Out of the backlog</comment>
      <text xml:space="preserve">{{Template:100Days agenda}}

The table on this page indicates the current source status of all Maemo packages. Closed packages may also have a petition for their source to be opened.

== Petition ==
Closed source packages may have a petition to have their sources opened. If you see a closed source package in this list that does not have a petition, and you'd like to see the packaged opened, please use the [[Template:Source petition|petition template]] to put together a petition, then change the petition field to &lt;nowiki&gt;{{petitionexists|''package name''}}&lt;/nowiki&gt;.

== Table ==
{| class=&quot;wikitable&quot;
! Package || Version || Source status || Petition
|-
| ''Package name'' || ''Version number'' || ''Open or closed'' || ''Petition yes/no''
|- style=&quot;background-color:#A0E75A;&quot;
| ''Open source example package'' || ''1.0'' || ''Open'' || -
|- style=&quot;background-color:#fa8072;&quot; 
| ''Closed source example package'' || ''1.2'' || ''Closed'' || {{petitionexists|example package}}
|}</text>
    </revision>
  </page>
  <page>
    <title>Maemo packaging</title>
    <id>1277</id>
    <revision>
      <id>27437</id>
      <timestamp>2010-01-26T13:53:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to Packcaging after merge</comment>
      <text xml:space="preserve">#REDIRECT [[Packaging]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo packaging</title>
    <id>1277</id>
    <revision>
      <id>27437</id>
      <timestamp>2010-01-26T13:53:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to Packcaging after merge</comment>
      <text xml:space="preserve">#REDIRECT [[Packaging]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo packaging quick start guide</title>
    <id>3430</id>
    <revision>
      <id>42476</id>
      <timestamp>2011-03-08T15:28:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>redirect to specific section</comment>
      <text xml:space="preserve">#REDIRECT [[Packaging#A concrete example - hello]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo professionals</title>
    <id>2766</id>
    <revision>
      <id>44232</id>
      <timestamp>2011-06-28T22:31:24Z</timestamp>
      <contributor>
        <ip>91.117.165.97</ip>
      </contributor>
      <comment>Removing SPAM.</comment>
      <text xml:space="preserve">Many companies have participated in the development of free software components of the Maemo platform through contracts with Nokia. There are also a number of independent professionals active in the Maemo project. Here is a list of some of the individuals companies, with a short description, that have contributed to making Maemo what it is.

== Maemo Professionals ==
'''Please keep it in alphabetic order!''' 

{| class=&quot;wikitable&quot; border=&quot;1&quot;
|-
! Name 
! Expertise 
! CV/Linkedin
! Looking for: (job/internship/freelancer)
! Contact(s)
|-
| [http://maemo.org/profile/view/anidel/ Aniello Del Sorbo]
| Software developer / PhD in Network Security / OSS developer-enthusiast
| http://www.linkedin.com/in/anidel
| Full-time
| 
* anidel *at* gmail *dot* com
* [http://anidel.blogspot.com anidel.blogspot.com]
|-
| [http://maemo.org/profile/view/lcuk/ Gary Birkett]
| System Architect / Optimized UX applications / consultancy
| http://www.linkedin.com/pub/gary-birkett/16/550/41b
| the correct role
| 
* liquid@gmail.com
* [http://liqbase.net liqbase.net]
|-
|[http://maemo.org/profile/view/mikec/ Mike Choy]
| Account Director IT Services
| http://www.linkedin.com/pub/mike-choy/1/423/9a8
| Full Time
| 
* mcychoy*at*gmail*dot*com
* [http://www.acaciaclose.co.uk Linux Multimedia]
|-
| [http://maemo.org/profile/view/crashanddie/ Sebastian Lauwers]
| Security Consultancy / Evangelist
| http://www.linkedin.com/in/sebastianlauwers
| Consulting offers / Job proposals
| sebastian.lauwers *at* gmail
|-
| [http://maemo.org/profile/view/timsamoff/ Tim Samoff]
| Graphic/UI/UX designer &amp; Creative Director
| http://www.linkedin.com/in/timsamoff
| Full-time or contract work
| 
* tim *at* samoff *dot* com
* [http://samoff.com samoff.com]
|-
| [http://maemo.org/profile/view/vdvsx/ Valério Valério]
| Software developer / OSS advocate
| http://www.linkedin.com/in/valeriovalerio
| Job/internship proposals
| 
* vdv100 *at* gmail *dot* com
* [http://www.valeriovalerio.org/ www.valeriovalerio.org]
|-
|}


== Companies in Maemo ==

=== basysKom ===

[[Image:Basyskom logo rgb w300.png|basysKom|300px]]

[http://www.basyskom.de/index.pl/enhome basysKom] is the leading MeeGo and Qt consulting company in Europe offering professional services for the Qt cross platform framework developed by Qt Development Frameworks/Nokia and is Qt Partner since more than 5 years. basysKom develops intuitive and appealing GUIs and supports customers in migrating their applications to open standards.

basysKom is your expert in cross-platform Software Development. We build sophisticated Embedded Systems software on desktop and embedded systems including mobile devices and industry applications. We automate the Quality Assurance of your software and provide consulting services, training, release and life cycle management and support for the full development process.

=== CodeThink ===

[[Image:Codethink_logo.gif|CodeThink]]

[http://codethink.co.uk CodeThink] specializes in providing expert consultancy on the Linux, Freedesktop and GNOME software stack. They maintain a network of expert consultants, all of whom are well known experts in areas of the stack.

They provide the service of creating a group of experts to solve your development needs, architecting solutions and managing the lifetime of your project, both for the development period and for its expected lifetime within the open source community.

=== Collabora ===

[[Image:Collabora_logo.png|Collabora]]

[http://www.collabora.co.uk/ Collabora] is a software consultancy specialising in bringing companies and the open source software community together.

They combine years of open source software experience with an understanding of the challenges that businesses face in engaging external developers.

=== Fluendo ===

[[Image:Fluendo_logo.png|Fluendo]]

[http://www.fluendo.com/ Fluendo] is a company specialized in delivering products and consulting services for Unix and Linux multimedia. Their flagship product is their streaming media server, [http://www.fluendo.com/products.php?product=flumotion Flumotion].

They support the development of the GStreamer multimedia framework, which is emerging as the standard media framework on Unix and Linux platforms.

=== Igalia ===

[[Image:Igalia_logo.gif|Igalia]]

[http://www.igalia.com/ Igalia] is a company from south-western Europe (Galicia, Spain), specialized in the development of innovative free software technologies and solutions. Igalia has been increasing its involvement in the GNOME community since its creation eight years ago, contributing with code and documentation to various platform components and applications, and sponsoring and organizing events. During the last five years, the company has applied its experience on free software and GNOME to the mobile market, contributing to related platforms like Maemo, and developing projects for relevant international companies.
 Igalia is founding member of GNOME Mobile and member of the GNOME Foundation's Advisory Board.

=== Imendio ===

[[Image:Imendio.png|Imendio]]

[http://www.imendio.com/ Imendio] is a small European company employing some of the world's most experienced and talented GTK+ developers. They focus on library and API development, targeting platforms ranging from embedded devices to desktops. With extensive experience in GLib/GTK+ solutions, Imendio provides first class software development services.

=== Kernel Concepts ===

[[Image:Kernelconcepts-logo.png|Kernel Concepts]]

[http://www.kernelconcepts.de/ Kernel Concepts] offer a broad range of services and products around open source, especially Linux.
Key aspects of their work are development and consulting for industrial and professional use.

=== Lanedo ===

[[Image:Lanedo.png|Lanedo|300px]]

[http://www.lanedo.com/ Lanedo] is a small European company employing some of the world's most experienced and talented Linux developers. They focus on library and API development, targeting platforms ranging from embedded devices to desktops. With extensive experience in GLib/GTK+/Tracker solutions and the ecosystems around those projects, Lanedo provides first class software development services.


=== Movial ===

[[Image:MOVIAL-logotype-small.jpg|Movial]]

[http://www.movial.fi/en/index.html Movial] inspires rich, intuitive Internet experiences for companies embracing transformational technologies. Leveraging its deep expertise in Internet, Linux and mobile devices, Movial seamlessly enables its customers to deliver richer user experiences to millions of people on PCs and on mobile devices.

=== Nomovok ===

[[Image:Nomovok_logo.jpg‎|Nomovok]]

[http://nomovok.com/ Nomovok Ltd.] is focused on Open Source software technologies and deployments. Our core competence is building products and services. By deploying the Z Corporate Community (ZCOCO) in a distributed organisation, Nomovok is innovating the way software delivery projects are executed.

=== OpenedHand ===

[[Image:oh_logo_large.png|OpenedHand]]

[http://o-hand.com/ OpenedHand] was a team of talented and creative people passionate about open source and embedded devices. They were committed to creatively pushing boundaries, innovatively solving problems and providing second to none customer service. They loved what they did and their clients loved their ability to deliver on time combined with an honest, down to earth approach.

OpenedHand was acquired by Intel in 2009, and no longer works on the Maemo platform.

=== Openismus ===

[[Image:Openismus_web_logo.png|Openismus]]

[http://www.openismus.com/ Openismus] provides custom software development, specializing in GNOME,
gtkmm, Qt, GTK+, databases, communications, and embedded Linux. They are based in Germany.

=== Tarent ===

[[Image:Tarent_logo.png|Tarent]]

[http://www.tarent.com/ Tarent] is specialized in developing enterprise solutions for big customers in the industrial and public sector.
This includes classic server side business applications as well as applications in the mobile and embedded space.
All solutions of Tarent are build on top of open source platforms. Tarent's main contribution to Maemo was done through the [http://www.jalimo.org Jalimo] project, which brings a Java 1.5 comparable stack for Maemo.

Tarent People active in Maemo:
[http://maemo.org/profile/view/smancke.html Sebastian Mancke], [http://www.fsfe.org/en/fellows/robertschuster/weblog Robert Schuster]

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo professionals</title>
    <id>2766</id>
    <revision>
      <id>44232</id>
      <timestamp>2011-06-28T22:31:24Z</timestamp>
      <contributor>
        <ip>91.117.165.97</ip>
      </contributor>
      <comment>Removing SPAM.</comment>
      <text xml:space="preserve">Many companies have participated in the development of free software components of the Maemo platform through contracts with Nokia. There are also a number of independent professionals active in the Maemo project. Here is a list of some of the individuals companies, with a short description, that have contributed to making Maemo what it is.

== Maemo Professionals ==
'''Please keep it in alphabetic order!''' 

{| class=&quot;wikitable&quot; border=&quot;1&quot;
|-
! Name 
! Expertise 
! CV/Linkedin
! Looking for: (job/internship/freelancer)
! Contact(s)
|-
| [http://maemo.org/profile/view/anidel/ Aniello Del Sorbo]
| Software developer / PhD in Network Security / OSS developer-enthusiast
| http://www.linkedin.com/in/anidel
| Full-time
| 
* anidel *at* gmail *dot* com
* [http://anidel.blogspot.com anidel.blogspot.com]
|-
| [http://maemo.org/profile/view/lcuk/ Gary Birkett]
| System Architect / Optimized UX applications / consultancy
| http://www.linkedin.com/pub/gary-birkett/16/550/41b
| the correct role
| 
* liquid@gmail.com
* [http://liqbase.net liqbase.net]
|-
|[http://maemo.org/profile/view/mikec/ Mike Choy]
| Account Director IT Services
| http://www.linkedin.com/pub/mike-choy/1/423/9a8
| Full Time
| 
* mcychoy*at*gmail*dot*com
* [http://www.acaciaclose.co.uk Linux Multimedia]
|-
| [http://maemo.org/profile/view/crashanddie/ Sebastian Lauwers]
| Security Consultancy / Evangelist
| http://www.linkedin.com/in/sebastianlauwers
| Consulting offers / Job proposals
| sebastian.lauwers *at* gmail
|-
| [http://maemo.org/profile/view/timsamoff/ Tim Samoff]
| Graphic/UI/UX designer &amp; Creative Director
| http://www.linkedin.com/in/timsamoff
| Full-time or contract work
| 
* tim *at* samoff *dot* com
* [http://samoff.com samoff.com]
|-
| [http://maemo.org/profile/view/vdvsx/ Valério Valério]
| Software developer / OSS advocate
| http://www.linkedin.com/in/valeriovalerio
| Job/internship proposals
| 
* vdv100 *at* gmail *dot* com
* [http://www.valeriovalerio.org/ www.valeriovalerio.org]
|-
|}


== Companies in Maemo ==

=== basysKom ===

[[Image:Basyskom logo rgb w300.png|basysKom|300px]]

[http://www.basyskom.de/index.pl/enhome basysKom] is the leading MeeGo and Qt consulting company in Europe offering professional services for the Qt cross platform framework developed by Qt Development Frameworks/Nokia and is Qt Partner since more than 5 years. basysKom develops intuitive and appealing GUIs and supports customers in migrating their applications to open standards.

basysKom is your expert in cross-platform Software Development. We build sophisticated Embedded Systems software on desktop and embedded systems including mobile devices and industry applications. We automate the Quality Assurance of your software and provide consulting services, training, release and life cycle management and support for the full development process.

=== CodeThink ===

[[Image:Codethink_logo.gif|CodeThink]]

[http://codethink.co.uk CodeThink] specializes in providing expert consultancy on the Linux, Freedesktop and GNOME software stack. They maintain a network of expert consultants, all of whom are well known experts in areas of the stack.

They provide the service of creating a group of experts to solve your development needs, architecting solutions and managing the lifetime of your project, both for the development period and for its expected lifetime within the open source community.

=== Collabora ===

[[Image:Collabora_logo.png|Collabora]]

[http://www.collabora.co.uk/ Collabora] is a software consultancy specialising in bringing companies and the open source software community together.

They combine years of open source software experience with an understanding of the challenges that businesses face in engaging external developers.

=== Fluendo ===

[[Image:Fluendo_logo.png|Fluendo]]

[http://www.fluendo.com/ Fluendo] is a company specialized in delivering products and consulting services for Unix and Linux multimedia. Their flagship product is their streaming media server, [http://www.fluendo.com/products.php?product=flumotion Flumotion].

They support the development of the GStreamer multimedia framework, which is emerging as the standard media framework on Unix and Linux platforms.

=== Igalia ===

[[Image:Igalia_logo.gif|Igalia]]

[http://www.igalia.com/ Igalia] is a company from south-western Europe (Galicia, Spain), specialized in the development of innovative free software technologies and solutions. Igalia has been increasing its involvement in the GNOME community since its creation eight years ago, contributing with code and documentation to various platform components and applications, and sponsoring and organizing events. During the last five years, the company has applied its experience on free software and GNOME to the mobile market, contributing to related platforms like Maemo, and developing projects for relevant international companies.
 Igalia is founding member of GNOME Mobile and member of the GNOME Foundation's Advisory Board.

=== Imendio ===

[[Image:Imendio.png|Imendio]]

[http://www.imendio.com/ Imendio] is a small European company employing some of the world's most experienced and talented GTK+ developers. They focus on library and API development, targeting platforms ranging from embedded devices to desktops. With extensive experience in GLib/GTK+ solutions, Imendio provides first class software development services.

=== Kernel Concepts ===

[[Image:Kernelconcepts-logo.png|Kernel Concepts]]

[http://www.kernelconcepts.de/ Kernel Concepts] offer a broad range of services and products around open source, especially Linux.
Key aspects of their work are development and consulting for industrial and professional use.

=== Lanedo ===

[[Image:Lanedo.png|Lanedo|300px]]

[http://www.lanedo.com/ Lanedo] is a small European company employing some of the world's most experienced and talented Linux developers. They focus on library and API development, targeting platforms ranging from embedded devices to desktops. With extensive experience in GLib/GTK+/Tracker solutions and the ecosystems around those projects, Lanedo provides first class software development services.


=== Movial ===

[[Image:MOVIAL-logotype-small.jpg|Movial]]

[http://www.movial.fi/en/index.html Movial] inspires rich, intuitive Internet experiences for companies embracing transformational technologies. Leveraging its deep expertise in Internet, Linux and mobile devices, Movial seamlessly enables its customers to deliver richer user experiences to millions of people on PCs and on mobile devices.

=== Nomovok ===

[[Image:Nomovok_logo.jpg‎|Nomovok]]

[http://nomovok.com/ Nomovok Ltd.] is focused on Open Source software technologies and deployments. Our core competence is building products and services. By deploying the Z Corporate Community (ZCOCO) in a distributed organisation, Nomovok is innovating the way software delivery projects are executed.

=== OpenedHand ===

[[Image:oh_logo_large.png|OpenedHand]]

[http://o-hand.com/ OpenedHand] was a team of talented and creative people passionate about open source and embedded devices. They were committed to creatively pushing boundaries, innovatively solving problems and providing second to none customer service. They loved what they did and their clients loved their ability to deliver on time combined with an honest, down to earth approach.

OpenedHand was acquired by Intel in 2009, and no longer works on the Maemo platform.

=== Openismus ===

[[Image:Openismus_web_logo.png|Openismus]]

[http://www.openismus.com/ Openismus] provides custom software development, specializing in GNOME,
gtkmm, Qt, GTK+, databases, communications, and embedded Linux. They are based in Germany.

=== Tarent ===

[[Image:Tarent_logo.png|Tarent]]

[http://www.tarent.com/ Tarent] is specialized in developing enterprise solutions for big customers in the industrial and public sector.
This includes classic server side business applications as well as applications in the mobile and embedded space.
All solutions of Tarent are build on top of open source platforms. Tarent's main contribution to Maemo was done through the [http://www.jalimo.org Jalimo] project, which brings a Java 1.5 comparable stack for Maemo.

Tarent People active in Maemo:
[http://maemo.org/profile/view/smancke.html Sebastian Mancke], [http://www.fsfe.org/en/fellows/robertschuster/weblog Robert Schuster]

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo roadmap</title>
    <id>2898</id>
    <revision>
      <id>21597</id>
      <timestamp>2009-11-02T06:05:12Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Maemo roadmap]] moved to [[Open development/Maemo roadmap]]: Subpage of Open development</comment>
      <text xml:space="preserve">#REDIRECT [[Open development/Maemo roadmap]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo security</title>
    <id>2660</id>
    <revision>
      <id>46028</id>
      <timestamp>2011-12-15T06:28:02Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45998 by [[Special:Contributions/114.79.28.10|114.79.28.10]] ([[User talk:114.79.28.10|Talk]]) vandalism/spam</comment>
      <text xml:space="preserve">At the [[Maemo Summit 2009]], Nokia shared a great deal of information about the  security mechanisms that would be available and/or mandated in upcoming platforms.

* [http://www.slideshare.net/peterschneider/maemo-6-platform-security Slides]
* Video (TBC)
* [http://meego.gitorious.org/meego-platform-security Source Code]

The concepts outlined include well established favourites in the OSS world (like privilege management) as well as some that are rather less well regarded - such as relatives of the Trusted Computing Platform and DRM.

Inevitably there will be a significant amount of interest and concern about how this affects the open nature of the Maemo platform.

This page is intended to capture community questions (and, eventually I hope, Nokia's answers) about these issues.

''Initially please add questions to the [[Talk:MaemoSecurity|discussion]] page and once they've been refined and consolidated, we'll add them onto this page.''

Some examples:

==Is there a diagram showing the security framework and components?==

See [http://www.slideshare.net/peterschneider/maemo-6-platform-security slide] #2, #5 and #9 of Elena Reshetova's [[Maemo Summit 2009/Day 3#Maemo_Platform_Security:_Principles_and_Concepts | Maemo Summit presentation]]

Elena Reshetova: The presentation was [http://www.slideshare.net/peterschneider/maemo-6-platform-security uploaded], and currently it is the only information, which I can share.

==What is &quot;Open Mode&quot; and can it be revoked remotely?==

&quot;Open&quot; mode is when an unsigned kernel has been booted. Disabling it remotely would, presumably, require a change to the bootloader. See [http://www.slideshare.net/peterschneider/maemo-6-platform-security slide] #??? --[[User:jaffa|Jaffa]] 11:36, 13 October 2009 (UTC)

==What does closed mode restrict you from doing?==

* Terminal?
* Root?

Elena Reshetova: In general &quot;close&quot; mode has its own security policy, which user won't be able to change. 

* Cellular is marked as a protected ressource in the slide. Can one still use it (phone, data, sms etc.) while running in open mode? While running a rebuilt kernel?

Elena Reshetova: If you use your own kernel, you are the one to set the security policy for the device, meaning that your SW in this case can make calls, send SMS and so on (for example). Please note that the list of protected resources on the slide is given just as example (to show the possible granularity level), so it doesn't mean that we would have exactly these resources.

==How easy is it to switch between Open and Closed modes?==

Is it so trivial that you would want to and be able to do it several times a day and on the go (without restart)?

Elena Reshetova: I should be able to tell the exact procedure in the future, but for now I can say that it won't be so trivial (like press the GUI button :-)), and the restart is needed. The checks for the SW image are done by the Loader, and during the boot time, so you do need to restart.

==Can network operators restrict you switching to Open mode?==

Like if a device is SIM-locked to a particular network, does the device get locked down in closed DRM mode only too? Can you always switch to open mode?

Elena Reshetova: If the device is SIM-locked, operator can restrict you to the usage of one particular kernel (slide 5), for example the one, which was shipped with a device. However, it is up to you to decide to buy the device from the operator or from the Nokia store.

Till Harbaum: Imho GPLv3 requires you to provide &quot;installation instructions&quot;. gstreamer comes under GPLv3, MeeGo uses gstreamer, hence no distributor is allowed to prevent the installation of e.g. a modified version of gstreamer. They are even required to tell you how to do that.

==How granular is the encryption?==

If my app creates content in the closed mode can I see it in open mode?

Elena Reshetova: If your application uses the Protected Storage for encryption (slide 8) in the initial mode, and after you switch to another mode, the application won't be able to get decrypted data. If your application just stores the data in the filesystem, after switching to your own kernel, you will be able to access the data (because they are just plain files in the filesystem).

==Can open applications use the privilege mechanisms in the Open and Closed modes?==

Elena Reshetova: I guess the question is &quot;Can the applications access protected resources in both modes?&quot; I hope I got the question correctly. The answer is that the Device Security Policy (slide 7) defines the resources can be potentially granted to the SW coming from a particular SW source. When one uses the Nokia signed kernel, the device security policy is defined, and user can't change it. If one uses its own kernel (or community kernel for example), he (or community) is the one to define/change the device policy. This means that one can, for example, change the policy in the way that the SW coming from the maemo.org gets access to all protected resources (of course some content becomes unavailable when one switch to its own kernel, for example DRM). However, again, it is possible only while using your own kernel.

==Can open applications use the DRM encryption mechanisms in the Open and Closed modes?==

==Will community extensions to the kernel (modules) be permitted in Open/Closed modes?==
I can't see how - which leads to the question: How do community 'enhancements' to the kernel get adopted?

Elena Reshetova: In the &quot;Open&quot; mode any changes of the kernel are allowed. Regarding the &quot;closed&quot; mode, unfortunately I am not the right person to answer this question.

==Is there any GPLv3 software impacted?==

[[Category:Harmattan]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo summit 2008</title>
    <id>658</id>
    <revision>
      <id>3671</id>
      <timestamp>2008-07-01T11:12:40Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Maemo summit 2008]] moved to [[Maemo Summit 2008]]: Looks nicer</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo Summit 2008]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo training addons</title>
    <id>73</id>
    <revision>
      <id>47066</id>
      <timestamp>2012-03-31T17:51:00Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">{{Out of date}}

'''This is a collection of new added or extended material contributions to the official maemo training material'''

Notice that all contributions and add-ons should use the same (or fully compatible) licensing as original maemo training material. Especially important is that example code provided together with material is freely usable for everybody for anything.

Preferred license to all training material contributions are: Base material licensed under a Creative Commons Attribution-Share Alike 3.0 License and code examples included to training material licensed under MIT-style License. Both license texts are included to official maemo training material package.

'''Give information like Title: short one line title for material'''

*'''Type''': eLearning, lecture, class room 
*'''Base''': which maemo release this will cover 
*'''Description''': short introduction to content 
*'''License''': license material has been published 
*'''Creator''': link to info who has created material 
*'''Download''': link to the actual material 

=Maemo training material add-ons=
==Setting up the maemo Development Environment==
*'''Type''': eLearning 
*'''Base''': maemo 4.x Chinook 
*'''Description''': Setting up the Maemo Development Environment is a basic introductory learning solution that every developer should learn before starting development on the maemo environment. It gives valuable information on the development environment, maemo SDK installation, porting the application to target devices, application framework, and other topics. 
*'''License''': Proprietary, Nokia copyright 
*'''Creator''': [http://www.forum.nokia.com/ Forum Nokia] 
*'''Download''': [http://www.forum.nokia.com/info/sw.nokia.com/id/c715c52a-536d-4e95-ab74-09dcd9e714bf/maemo_4_0.html?cp=0108A&amp;entry=settingupMaemoAtricle6CTA online material and download]

==Remote virtual keyboard (Spanish and English)==
*'''Type''': Tutorial 
*'''Base''': OS2005 (should work with new versions) 
*'''Description''': When a keyboard is needed when using remote X applications , the virtual keyboard is the solution. This tutorial explains how to use it in the Nokia 770. 
*'''License''': Creative Commons Attribution-Share Alike 3.0 
*'''Creator''': [http://www.forum.nokia.com/ Alfredo J. Fabretti]
*'''Download''': [http://digitalen.blogspot.com/2006/05/log-2-nokia-770-remote-virtual.html online material]

==Nokia 770 bluetooth internet connection (Spanish)==
*'''Type''': Tutorial 
*'''Base''': OS2006 
*Description: How to setup a bluetooth internet connection with the Nokia 770. 
*'''License''': Creative Commons Attribution-Share Alike 3.0 
*'''Creator''': [http://www.forum.nokia.com/ Alfredo J. Fabretti]
*'''Download''':[http://digitalen.blogspot.com/2006/09/nokia-770-nokia-8801-como-modem.html online material]

==Maemo 4.x development environment installation (Spanish)==
*'''Type''': Tutorial 
*'''Base''': maemo 4.x Chinook 
*'''Description''': This tutorial explains how to setup Maemo 4.x development environment including Scratchbox and Maemo sdk. 
*'''License''': Creative Commons Attribution-Share Alike 3.0 
*'''Creator''': [https://maemo.org/profile/view/ajf.html Alfredo J. Fabretti] 
*'''Download''': [http://digitalen.blogspot.com/2007/11/programacin-en-maemo-40-os2008-1.html online material]
*'''Type''': Tutorial 
*'''Base''': OS2005 (should work with new versions) 
*'''Description''': When a keyboard is needed when using remote X applications , the virtual keyboard is the solution. This tutorial explains how to use it in the Nokia 770. 
*'''License''': Creative Commons Attribution-Share Alike 3.0 
*'''Creator''': [https://maemo.org/profile/view/ajf.html Alfredo J. Fabretti]
*'''Download''': [http://digitalen.blogspot.com/2007/11/programacin-en-maemo-40-os2008-1.html online material]

==Nokia 770 bluetooth internet connection (Spanish)==
*'''Type''': Tutorial 
*'''Base''': OS2006 
*'''Description''': How to setup a bluetooth internet connection with the Nokia 770. 
*'''License''': Creative Commons Attribution-Share Alike 3.0 
*'''Creator''': Alfredo J. Fabretti 
*'''Download''': [http://digitalen.blogspot.com/2007/11/programacin-en-maemo-40-os2008-1.html online material]

==An Unofficial Guide to Creating a Most Excellent maemo User Interface==
*'''Type''': Developers Guide 
*'''Base''': maemo 3.x Bora &amp; 4.x Chinook 
*'''Description''': This document discusses concepts that developers should consider while creating user interfaces for maemo applications. It is written by a designer, not a developer, and stresses the importance of user-centered UI design for Bora 3.x and Chinook 4.x. 
*'''License''': Creative Commons Attribution-No Derivative Works 3.0 United States 
*'''Creator''': Tim Samoff 
*'''Issue Tracker''': maemo Garage 
*'''Download''': online material

==Getting started with Java on maemo==
*'''Type''': Developers Guide 
*'''Base''': maemo 4.x Chinook 
*'''Description''': This article covers the development for maemo using the Jalimo platform. Beside Jalimo, there are other approaches to bring a Java platform to maemo. In contrast to the others, unique characteristic of Jalimo is not only to concentrate on a runtime for the device, but to support the complete application development and life cycle. In short, the aim of Jalimo is to provide everything a Java developer needs to feel comfortable with developing for mobile and embedded Linux. 
*'''License''': ??? 
*'''Creator''': Forum Nokia wiki, several writes 
*'''Download''': Online material

==Maemo for Mobile Developers==
*'''Type''': Developers Guide (Beta version) 
*'''Base''': maemo 4.x Chinook 
*'''Description''': This document is intended for any developer with Symbian C++ or Windows Mobile .NET Compact Framework programming experience who wants to develop applications for the maemo platform. Additionally, any developer with C++ background can also use the document. It is assumed that the reader has at least some basic knowledge about C++. 
*'''License''': ??? 
*'''Creator''': Forum Nokia 
*'''Download''': [http://maemo4mobile.garage.maemo.org/ Online material]

==Using Python in maemo==
*'''Type''': Developers Guide 
*'''Base''': maemo 4.x Chinook 
*'''Description''': This document explains how to develop applications for the maemo platform using the Python programming language. To use the document, you must have a basic knowledge of Python and PyGTK (advanced knowledge is not required, but you must be able to write simple GTK programs in Python). 
*'''License''': ??? 
*'''Creator''': INdT 
*'''Download''': Online material for tutorial and Python for maemo project page in garage

==Building Kernel Modules for the Nokia N800/N810==
*'''Type''': Developers Guide 
*'''Base''': maemo 3.x Bora (and 4.x Chinook) 
*'''Description''': This step-by-step guide describes the steps necessary to build out-of-tree kernel modules for the Nokia N800 and the Nokia N810. It mainly covers OS2007/Bora but includes a section on changes required for OS2008/Chinook (N810) at the end. 
*'''License''': ??? 
*'''Creator''': Aleksandr Koltsoff 
*'''Download''': [http://koltsoff.com/pub/hello-n800/ Online material] (Notice that this link has problems with IE but works with Firefox).

==General teaching slides for Maemo in Russian==
*'''Type''': Lecture notes and demos
*'''Base''': 4.x Chinook 
*'''Description''': The material is to be used for lectures. It aims to introduce the students to the fundamentals of the concept and to encourage the student to use the platform in their student project. 
*'''License''': Creative Commons Attribution-Share Alike 3.0 
*'''Creator''': Kasper Revsbech, Mobile devices Aalborg university 
*'''Download''': Lecture homepage

==Maemo teaching materials in Russian==
*'''Type''': Lecture 
*'''Base''': 4.1.x Diablo 
*'''Description''': You are welcome to download the first version of Maemo teaching materials in Russian language. The download is free of charge and only requires a simple registration on the site, which will take not more than a minute of your time. The materials are developed by the Department of Computer Science of the Petrozavodsk State University with support of Nokia company .
*'''License''': Creative Commons Attribution-Share Alike 3.0 
*'''Creator''': The author of the materials is Senior Lecturer [http://www.cs.karelia.ru/u/aborod/ Alexandr Borodin], Web site System Administrator is Senior Lecturer [http://www.cs.karelia.ru/u/vadim Vadim Ponomarev]. Responsible person from Nokia company is Sergey Balandin.
*'''Download''': [http://cs.karelia.ru/maemo/ Online material and download]

[[Category:Community]]
[[Category:Out of date]]</text>
    </revision>
  </page>
  <page>
    <title>Maemo training material/Getting Started</title>
    <id>1438</id>
    <revision>
      <id>11421</id>
      <timestamp>2009-03-03T10:29:19Z</timestamp>
      <contributor>
        <username>myrtti</username>
        <id>518</id>
      </contributor>
      <minor/>
      <comment>/* Licenses */</comment>
      <text xml:space="preserve">{{LaTeX2HTML2Wiki}}
&lt;div class=&quot;author_info&quot;&gt;

'''Last updated: December 19, 2008'''

&lt;/div&gt;&lt;div class=&quot;margins&quot;&gt;

=Legal notice=

Copyright ©2007-2008 Nokia Corporation. All rights reserved.

Nokia and maemo are trademarks or registered trademarks of Nokia Corporation. Other product and company names mentioned herein may be trademarks or trade names of their respective owners.

&lt;!-- sometimes the script indents the first paragraphs by starting the line with a space, this needs to be checked or corrected later by a bot --&gt;

=Disclaimer=

The information in this document is provided &quot;as is,&quot; with no warranties whatsoever, including any warranty of merchantability, fitness for any particular purpose, or any warranty otherwise arising out of any proposal, specification, or sample. This document is provided for informational purposes only. Nokia Corporation disclaims all liability, including liability for infringement of any proprietary rights, relating to implementation of information presented in this document. Nokia Corporation does not warrant or represent that such use will not infringe such rights. Nokia Corporation retains the right to make changes to this material at any time, without notice.

=Licenses=

[[Image:by-sa.png|88px|Image by-sa]]

This training material is licensed under a [http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-Share Alike 3.0 License].

The code examples copyrighted by Nokia Corporation that are included to this training material are licensed to you under following MIT-style License:

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the &quot;Software&quot;), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. &lt;br /&gt;

----

* [[Maemo training material/Getting Started/Introduction|Introduction]]
* [[Maemo training material/Getting Started/What is maemo|What is maemo]]
* [[Maemo training material/Getting Started/Installing the SDK|Installing the SDK]]
* [[Maemo training material/Getting Started/Testing the installation|Testing the installation]]

&lt;!-- we don't have published tar ball yet --&gt;</text>
    </revision>
  </page>
  <page>
    <title>Maemo training material/Getting Started/Installing the SDK</title>
    <id>1447</id>
    <revision>
      <id>41752</id>
      <timestamp>2011-02-09T15:04:39Z</timestamp>
      <contributor>
        <username>bolle</username>
        <id>3933</id>
      </contributor>
      <comment>/* 2.7 Automatic install of the maemo SDK */</comment>
      <text xml:space="preserve">{{LaTeX2HTML2Wiki}}
=&lt;span class=&quot;arabic&quot;&gt;2&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;1&lt;/span&gt; Getting started=

This chapter covers the pre-requisites and installation of the development environment. The maemo SDK consists of libraries and tools enabling the development of applications for maemo and Internet Tablets. This SDK must be installed into an development environment called Scratchbox in order for it to be useful.

At this point, you should check the [http://maemo.org/community/wiki/maemoTraining maemo training wiki pages] maintained by maemo community. They might contain some information which affects the SDK installation process. Notice that the information in maemo wiki is not verified by Nokia and thus Nokia cannot be responsible of that information.

We'll start by installing Scratchbox first and then proceed by installing the maemo SDK inside Scratchbox. The next chapter covers testing of the installation using simple text and graphical programs.

Installing the SDK can also be done by using automatic installation scripts, using which is covered in the SDK installation instructions (part of the SDK). This material will cover installation in a more step-by-step fashion, so that you may easily create custom Scratchbox targets in the future.

=&lt;span class=&quot;arabic&quot;&gt;2&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;2&lt;/span&gt; What is Scratchbox?=

Now that you've seen what both Internet Tablet and applications designed for maemo are made of, you might be wondering how to write your own applications. If you've used the various GNU tools before you also might be wondering how all the different versions of tools and libraries are handled during development.

Enter Scratchbox, a specially packaged &quot;sandbox&quot; environment which provides the necessary tools and also isolates your development efforts from your real Linux system. Scratchbox also makes it easy to do cross compiling which means building your software into a binary format that is executable in your target device.

The name &quot;Scratchbox&quot; comes from &quot;Linux from scratch&quot; + &quot;chroot jail&quot; (sandbox). This also tells you something about its implementation and intended use. While working inside Scratchbox, you'll be running programs in a changed root environment (chroot). In Linux systems it's possible to change the part of file paths that a process will see. Scratchbox uses this mechanism on start to switch its root directory (/) to something else 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 you can 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.

Scratchbox:

* Is a software package to implement development sandboxes (for isolation)
* Contains easy to use tools to assist cross-compilation
* Supports multiple developers using the same development system (not covered in this material).
* Supports multiple configurations for each developer.
* Supports executing target executables on the hardware target, via a mechanism called &lt;code&gt;sbrsh&lt;/code&gt; (not covered in this material).
* Supports running non-native binaries on the host system via instruction set emulators (Qemu is used).

Beside these main features, it's possible to develop your own software packages that can be installed and used inside a Scratchbox environment. Scratchbox also includes some integration for Debian package management, so that once we have setup our source files correctly and write a couple of configuration files, we can create binary distribution packages 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 we can install other development packages over the Internet when we need them (by using standard Debian package management tools).

The Internet Tablet also uses a similar packaging system, and this means that packages built using Scratchbox and the SDK can be installed on the real device.

Scratchbox is licensed under the GPL and it's open for outside contributions. For an in depth coverage on Scratchbox capabilities please see [http://www.scratchbox.org/ scratchbox.org].

In this material we'll be using only the Scratchbox capabilities that are necessary to use the maemo SDK.

=&lt;span class=&quot;arabic&quot;&gt;2&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;3&lt;/span&gt; Scratchbox components=

Before installing Scratchbox, we need to cover some terminology that it uses in its documentation. For most of the time Scratchbox will be abbreviated as sbox from now on.

Scratchbox terminology:

; '''core package'''
: package that contains the core tools implementing sbox. These also include a host compiler (gcc) that can be used to build additional tools for sbox.
; '''libs package'''
: contains the necessary libraries for the core to operate.
; '''devkit'''
: a package for sbox that contains additional development tools. We'll be interested in 4 devkits (listed later).
; '''toolchain'''
: compilers, linkers and tools for a specific target. We'll be needing two, but we'll use the x86-one for now.
; '''target'''
: the active toolchain and configuration we're using currently. A target uses a selected toolchain and contains a filesystem to use and related configuration. You can have multiple targets, even if they all use the same toolchains. This makes it easy to try something different, or start a parallel target to test things from scratch.
:* Note that an sbox target doesn't technically mean the same thing as the physical target device you might have (&lt;span class=&quot;textbf&quot;&gt;Internet Tablet&lt;/span&gt;).
; '''rootstrap'''
: a target root filesystem image that can be used as a basis for further development. Rootstraps normally contain the necessary files for some specific development target, but sometimes only act as a starting point for the target. There is a rootstrap for developing applications for maemo, and we'll refer to it with &quot;maemo SDK&quot; for the rest of the material. The maemo SDK rootstrap is also slightly special in that one normally will also run &lt;code&gt;apt-get&lt;/code&gt; to install the &quot;rest of&quot; the SDK after extracting the base rootstrap.

=&lt;span class=&quot;arabic&quot;&gt;2&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;4&lt;/span&gt; Prerequisites=

Before continuing, the installation instructions of the maemo SDK should be reviewed.

There is a special feature that the kernel needs to support in order for the instruction emulator in sbox to work properly. This is the binfmt_misc-feature. It is normally built as a module, so verify that it is loaded in Linux (no root access needed for this): &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 user@system:~$ lsmod | grep binfmt
 binfmt_misc 12936 0

&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

If you do not see a line of output, attempt to do a modprobe binfmt_misc as root (or with sudo). If this still does not work, you will have to find the module somewhere, or even recompile the kernel. On most Debian-based systems (Debian, Ubuntu), the module is included, so there should not be any problems, unless you have built your own kernel. It is also possible that the feature has been built inside the kernel directly, instead of a module.

Also a pseudo X server should be installed to act as an X client to the real system. It will be necessary to run the applications that are developed, after installing the SDK.

There are a few options for this purpose, but this material will cover the usage of Xephyr. Xephyr is a Kdrive-based X server/client that can emulate 16-color depth for its clients even if it is acting as a client to an 24-bit depth real X server. It also implements modern X protocol extensions.

The concept of having a program that is both X server and a client may seem weird. However, there is no reason to worry, as it is a tested technology and works quite well. If, on the other hand, it does not make any sense, revisit the X Window System introduction in the previous chapter.

To install Xephyr:

* Issue the command sudo apt-get install xserver-xephyr on your real Linux system.
* Verify installation status by issuing the command 'dpkg -l | grep xephyr' (as non-root).

=&lt;span class=&quot;arabic&quot;&gt;2&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;5&lt;/span&gt; Automatic install of Scratchbox=

Up-to-date installation instructions can be found from [http://maemo.org/development/sdks/ maemo.org] with instructions for each maemo SDK Release.

The preferred way to install the Scratchbox is to use the automated installation script. Manual installation of the Scratchbox is described here for educational purposes, and for situations where the automatic installation script fails.

Quick installation of Scratchbox on a Debian system with the automated install-script: &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 user@system:~$ sudo sh ./maemo-scratchbox-install_X.X.sh -u user

&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

The &lt;code&gt;-u user&lt;/code&gt; option is used, so that Scratchbox will add the user account &quot;user&quot; automatically into the group that is allowed to use Scratchbox.

=&lt;span class=&quot;arabic&quot;&gt;2&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;6&lt;/span&gt; Manual install of Scratchbox=

Scratchbox can also be installed manually. The Debian packages (for the real Linux system) are located at [http://www.scratchbox.org/download/scratchbox-apophis/ scratchbox.org]. Apophis is the release of Scratchbox that is suited to be used with maemo 4.x SDK. Please refer to the Scratchbox documentation for further instructions [http://www.scratchbox.org/documentation/user/scratchbox-1.0/html/installdoc.html scratchbox.org].

=&lt;span class=&quot;arabic&quot;&gt;2&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;7&lt;/span&gt; Automatic install of the maemo SDK=

Up-to-date installation instructions can be found from [http://maemo.org/development/sdks/ maemo.org], with instructions for each maemo SDK Release.

The preferred way to install the the maemo SDK is to use the automated installation script. In some cases, using a manual process is more suitable; this is covered later. Installing the SDK in an offline environment is officially unsupported, but possible as well.

Quick installation with automated install-script: &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;


 user@system:~$ sh maemo-sdk-install_X.X.sh

&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

if you get the error &quot;Error opening terminal: xterm.&quot; try:

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;


 user@system:~$ sudo ln -s /lib/terminfo/x/xterm /usr/share/terminfo/x/xterm

&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

Running this script will display the end user license agreement. Pressing Enter key to accept the license presents you with package selection dialog. &lt;br /&gt;

&lt;br /&gt;&lt;div align=&quot;CENTER&quot;&gt;[[Image:auto-maemo-package-selection.png|657px|Image auto-maemo-package-selection]]&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

You are presented with four options of installing SDK:

# Minimal Rootstrap only. Choose this only if you are going to install all packages you need from repository.
# Runtime Environment. Use this to install and run software inside Scratchbox. Cannot be used for building software.
# Runtime Environment + All Dev Packages. Choose this to get a full development environment.
# Runtime Environment + All Dev and Dbg Packages. You will get a full development environment plus debug symbols for many system components.

By default, option 3 is selected.

&lt;span class=&quot;textbf&quot;&gt;N.B&lt;/span&gt;&lt;nowiki&gt;: The SDK installer will always download and install the minimal rootstrap, but will install additional packages using apt-get based on your choice. &lt;/nowiki&gt;

In the next dialog, you can choose to install closed Nokia binaries or not. &lt;br /&gt;

&lt;br /&gt;&lt;div align=&quot;CENTER&quot;&gt;[[Image:auto-maemo-install-nokia-binaries.png|657px|Image auto-maemo-install-nokia-binaries]]&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

Selecting 'yes' will run the Nokia binaries installer script which will display the EUSA(End User Software Agreement). If you accept the agreement, the installer script will extract the Nokia binaries into a folder under the user's home directory inside scratchbox. It will also configure the /etc/apt/sources.list file in the scratchbox targets to make this 'local repository' visible to the Debian apt tools.

In the next dialog, a summary of your selections so far and the default settings are listed. &lt;br /&gt;

&lt;br /&gt;&lt;div align=&quot;CENTER&quot;&gt;[[Image:auto-maemo-summary.png|657px|Image auto-maemo-summary]]&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

Selecting 'Continue' will initiate the SDK installation process. If the selection summary is not OK, you can cancel the process and re-start the SDK installation script.

After it's successful execution, you will have 2 scratchbox targets ready for use:

* &lt;code&gt;DIABLO_X86&lt;/code&gt;&lt;nowiki&gt;: Suitable for software development and testing. &lt;/nowiki&gt;
* &lt;code&gt;DIABLO_ARMEL&lt;/code&gt;&lt;nowiki&gt;: Suitable for building software for the ARM architecture. &lt;/nowiki&gt;

The Nokia binaries are not installed by default but just made available. If you wish to install all of them , then execute the following command inside the scratchbox targets: &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 [sbox-DIABLO_&lt;target&gt;: ~] &gt; fakeroot apt-get install maemo-explicit

&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

&lt;span class=&quot;textbf&quot;&gt;N.B.&lt;/span&gt; The installer script by default will prompt the user to install the Nokia binaries, which are not open source. To disable this feature, please use -f command line parameter for the script. For more options, use the command line help option. &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 user@system:~$ sh maemo-sdk-install_X.X.sh --help

&lt;/div&gt;

=&lt;span class=&quot;arabic&quot;&gt;2&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;8&lt;/span&gt; Manual install of the maemo SDK=

In order to install the maemo SDK manually, the first step is to download the necessary rootstrap files. There will be two: one for the X86 target, and the other one for the ARM target.

The rootstrap files are available in the same location as the automatic install scripts (for maemo 4.1 SDK they can be found at [http://repository.maemo.org/stable/diablo/ maemo.org]).

It is necessary to download the minimal rootstraps for i386 and arm, so the filenames will be as follows:

* i386/maemo-sdk-rootstrap_4.1_i386.tgz for the X86 version
* armel/maemo-sdk-rootstrap_4.1_armel.tgz for the ARMEL version

For other versions of the SDK, the exact path names above will need to be adjusted (please consult the SDK installation instructions).

Do not extract the downloaded files. They have to be moved under a location where Scratchbox setup tools can find them (&lt;span class=&quot;textbf&quot;&gt;/scratchbox/packages/&lt;/span&gt;): &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 user@system:~$ sudo mv /tmp/download-location/maemo-sdk-rootstrap*  \
  /scratchbox/packages/

&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

You are now ready to setup your first sbox target. Scratchbox comes with a simple menu-driven tool (sb-menu), which can be used for this. The other option would be using a command line driver tool (sb-conf), but using the menu driver tool is easier.

The first step is to log in on the Scratchbox environment: &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 user@system:~$ /scratchbox/login
 
 You dont have active target in scratchbox chroot.
 Please create one by running &quot;sb-menu&quot; before continuing
 
 
 Welcome to Scratchbox, the cross-compilation toolkit!
 
 Use 'sb-menu' to change your compilation target.
 See /scratchbox/doc/ for documentation.
 
 sb-conf: No current target
 [sbox-: ~] &gt;

&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

By default, Scratchbox will activate the same target that was used previously, but since this is the first time Scratchbox is used, there is no target to activate. One can be built with sb-menu:

# Type sb-menu inside Scratchbox to launch the tool. &lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt; 
 [sbox-: ~] &gt; sb-menu
&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;
# Select &quot;Setup&quot; in order to create a new target. Normally the tool would display all configured targets in a list, but since there are none, the dialog is empty. Select &quot;NEW&quot; in order to create a new target.
# Using the same names as the automatic install script uses allows you to use the Nokia binaries installer later. Type DIABLO_X86 as the target name.
# Since the first target will be for X86 environment, select the i386 compiler version (&lt;code&gt;cs2005q3.2-glibc2.5-i386&lt;/code&gt;).
# Next, you will need to select all the devkit packages that you want to enable for the new target. You will need &lt;code&gt;debian-etch&lt;/code&gt;, &lt;code&gt;maemo3-tools&lt;/code&gt; and &lt;code&gt;perl&lt;/code&gt;. Do not select cputransp for the X86 target. Select each of them in a row and then press &quot;DONE&quot;.
# Since the cputransp devkit was not selected in the previous step, selecting the CPU transparency becomes &quot;none&quot;.
# This concludes the target-specific tool choices, but there are still things to do. The next step is to select a rootstrap package to extract into the target (select &quot;Yes&quot;).
# And since the rootstraps were already downloaded and copied to the proper location, select &quot;File&quot;.
# Using TAB arrows, navigate to the proper rootstrap file (the one that ends with i386), and select it by pressing space and then press ENTER to go forward.
# Unpacking the rootstrap will not take long, and soon after that, a dialog will come up with a question about files installation. Select &quot;Yes&quot; (even if it is not entirely obvious what the question means), and then select the &lt;code&gt;C-library&lt;/code&gt;, &lt;code&gt;/etc&lt;/code&gt;, &lt;code&gt;Devkits&lt;/code&gt; and &lt;code&gt;fakeroot&lt;/code&gt;. Other tools can be installed later from the maemo SDK repository (or local mirror of the repository).
# After extracting the selected files from the rootstrap, the target is now ready. You should next opt to select the target (so that it becomes active and will be default target from now on). Selecting the target will restart the Scratchbox session and if everything went well, you are now left with a very minimal maemo SDK environment: &lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;graybox&quot;&gt; 
 Shell restarting...
 [sbox-DIABLO_X86: ~] &gt; arch
 i686
 [sbox-DIABLO_X86: ~] &gt; dpkg -l | grep maemo-repository
 ii  maemo-repository       4.1-1               Configuration for maemo repository.
&lt;/div&gt;

# In order to complete the SDK installation, you will have to fetch the package list and then install the maemo-sdk-dev meta-package. The package depends on a lot of other packages, and all of them will be downloaded into the target. The number of packages is quite significant, so reserve some time for this step. This step will require a working Internet connection (or DNS redirection into a local copy of the repository). &lt;br /&gt;&lt;br /&gt;

&lt;div class=&quot;graybox&quot;&gt; 
 [sbox-DIABLO_X86: ~] &gt; apt-get update
&lt;/div&gt;

&lt;div class=&quot;graybox&quot;&gt; 
 [sbox-DIABLO_X86: ~] &gt; fakeroot apt-get install maemo-sdk-dev
&lt;/div&gt;

Using fakeroot is important in the above command so that the package install scripts think that they are running as the root user. Otherwise the installation phase will fail with errors. Modern Debian-style repositories are signed with GPG keys in order to prevent tampering with the repository contents. The maemo repositories, however, do not use this convention, and this makes &lt;code&gt;apt-get&lt;/code&gt; slightly conserned. This can be ignored by accepting installation of unverified packages.
# The closed Nokia binaries can be obtained by running the script maemo-sdk-nokia-binaries_X.X.sh. If you choose to accept the EUSA, then proceed to the following step.
# You can install all the nokia binaries in your targets by installing the meta package 'maemo-explicit'.

After &lt;code&gt;apt-get&lt;/code&gt; finishes installing all the packages, the SDK installation is ready.

When you are finished with sbox, you need to logout. This is done by terminating the command shell with the exit command, or by using logout.

=&lt;span class=&quot;arabic&quot;&gt;2&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;9&lt;/span&gt; Manual install of the ARMEL target=

If the X86 target was installed manually (above), it is advisable to create the ARMEL target to enable building software for the Internet Tablets. This step can also be postponed until the need to perform cross-building for Internet Tablets arises.

If the automatic install process was used, the ARMEL target is already available (as DIABLO_ARMEL), and the following steps are not necessary.

Creating the ARMEL target requires creating a new target in Scratchbox, using the same steps that were taken for the X86 target.

Here is how the ARMEL target install process differs from the X86 (described above):

* Stop any processes you may have running on the X86 sbox target (sb-conf killall)
* Then start sb-menu as you did with the X86 target:
** Name your target DIABLO_ARMEL (for compatibility)
** You will need to select the arm version of the compiler.
** You will need to select the cputransp devkit and then select qemu-arm-0.8.2-sb2 as the CPU transparency method (instead of none, as used for X86).
** You will need to select the arm version of the maemo SDK base rootstrap.

The apt-get command remains exactly the same, as do all of the other steps.

You may wish to verify the target by using the steps below (&quot;Testing Scratchbox&quot;), at least build the hello world program and verify the architecture of the resulting executable with file command.</text>
    </revision>
  </page>
  <page>
    <title>Maemo training material/Getting Started/Introduction</title>
    <id>1441</id>
    <revision>
      <id>11415</id>
      <timestamp>2009-03-03T10:25:57Z</timestamp>
      <contributor>
        <username>myrtti</username>
        <id>518</id>
      </contributor>
      <minor/>
      <comment>[[Training material/Getting Started/Introduction]] moved to [[Maemo training material/Getting Started/Introduction]]</comment>
      <text xml:space="preserve">{{LaTeX2HTML2Wiki}}
&lt;!-- the index in the beginning of each file needs to be deleted. Also the first top level heading, as that's supposed to be handled by the page name (article name) itself --&gt;
&lt;div align=&quot;CENTER&quot;&gt;

{| summary=&quot;Nokia N810&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 1:''' Nokia N810
|-
|
[[Image:device_image-1.jpg|604px|Image device_image-1]]
|}

&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

On the 25th of May 2005 Nokia released the first version of maemo&lt;sup&gt;&lt;small&gt;TM&lt;/small&gt;&lt;/sup&gt;software development kit to the public. After the first release, multiple updates have been made to the SDK. The SDK is meant for software development with the new Internet Tablet-class devices and this is the first time that a major company is basing their commercial product so much on free software. Since the underlying software in the devices consists of mainly open source software, this makes the devices an attractive platform for which to write software. Basing the SDK and the device on open source software also means that porting existing software is fairly easy.

This material covers the basics of installing the maemo SDK version 4.x.

Pre-requisites for using this material effectively are: knowledge of C programming in Linux-environment, basic knowledge about Debian command-line tools and utilities used in software installation and development in Debian based Linux systems.

The SDK contains a broad range of software which is in use in a lot of free software projects. The material will however only cover the minimal amount required to get you up and running with maemo development.

The material starts by covering the basic environment of the target devices and then covers the range of tools to use and their best uses in software development.

Where applicable, the material will also note the recommended development and design practices, since the target devices are not &quot;ordinary PCs&quot;. If your background is working with restricted resource device environments, you'll already know most of these rules, but there are also some additional hints sprinkled throughout the material.

More information about the maemo training material is available from the maemo training wiki pages ([http://maemo.org/community/wiki/maemoTraining maemo.org/community/wiki/maemoTraining]) maintained by maemo community. Notice that the information in maemo wiki is not verified by Nokia and thus Nokia cannot be responsible of that information.

We hope that you will enjoy the environment, your imagination is the only thing stopping you now!</text>
    </revision>
  </page>
  <page>
    <title>Maemo training material/Getting Started/Testing the installation</title>
    <id>1451</id>
    <revision>
      <id>21358</id>
      <timestamp>2009-10-30T11:35:57Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>update as per http://talk.maemo.org/showthread.php?t=33712</comment>
      <text xml:space="preserve">{{LaTeX2HTML2Wiki}}
=&lt;span class=&quot;arabic&quot;&gt;3&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;1&lt;/span&gt; Testing Scratchbox=

The following shows how to create a small non-graphical Hello World program, to verify that the Scratchbox environment works: &lt;br /&gt;

&lt;br /&gt;Program listing for our Hello World (helloworld.c)

 &lt;tt&gt;''&lt;font color=&quot;#9A1900&quot;&gt;/**&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; * helloworld.c&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; *&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; * This maemo code example is licensed under a MIT-style license,&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; * that can be found in the file called &quot;License&quot; in the same&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; * directory as this file.&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; *&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; * Simple standard I/O (printf)-based Hello World that we can use to&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; * test our toolchains.&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; */&lt;/font&gt;''
 
 '''&lt;font color=&quot;#000080&quot;&gt;&lt;nowiki&gt;#include&lt;/nowiki&gt;&lt;/font&gt;''' &lt;font color=&quot;#FF0000&quot;&gt;&lt;stdio.h&gt;&lt;/font&gt; ''&lt;font color=&quot;#9A1900&quot;&gt;/* printf */&lt;/font&gt;''
 
 ''&lt;font color=&quot;#9A1900&quot;&gt;/* main implementation */&lt;/font&gt;''
 &lt;font color=&quot;#009900&quot;&gt;int&lt;/font&gt; '''&lt;font color=&quot;#000000&quot;&gt;main&lt;/font&gt;'''&lt;font color=&quot;#990000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#009900&quot;&gt;int&lt;/font&gt; argc&lt;font color=&quot;#990000&quot;&gt;,&lt;/font&gt; &lt;font color=&quot;#009900&quot;&gt;char&lt;/font&gt;&lt;font color=&quot;#990000&quot;&gt;&lt;nowiki&gt;**&lt;/nowiki&gt;&lt;/font&gt; argv&lt;font color=&quot;#990000&quot;&gt;)&lt;/font&gt; &lt;font color=&quot;#FF0000&quot;&gt;{&lt;/font&gt;
 
   '''&lt;font color=&quot;#000000&quot;&gt;printf&lt;/font&gt;'''&lt;font color=&quot;#990000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#FF0000&quot;&gt;&quot;Hello world&lt;/font&gt;&lt;font color=&quot;#CC33CC&quot;&gt;\n&lt;/font&gt;&lt;font color=&quot;#FF0000&quot;&gt;&quot;&lt;/font&gt;&lt;font color=&quot;#990000&quot;&gt;);&lt;/font&gt;
 
   ''&lt;font color=&quot;#9A1900&quot;&gt;/* In Linux, each process upon termination must set its exit code.&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt;     Exit code 0 means success to whoever executed this program. It&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt;     is routinely used inside scripts to test whether running some&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt;     program succeeded or not. Other exit codes mean failure. Each&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt;     program is free to use different non-zero codes to signify&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt;     different kinds of failures. These are normally listed in the&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt;     manual page for the program (since there is no standard). If you&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt;     forget to set your exit code, it will be undefined. */&lt;/font&gt;''
   '''&lt;font color=&quot;#0000FF&quot;&gt;return&lt;/font&gt;''' &lt;font color=&quot;#990000&quot;&gt;&lt;nowiki&gt;;&lt;/nowiki&gt;&lt;/font&gt;
 &lt;font color=&quot;#FF0000&quot;&gt;}&lt;/font&gt;
 &lt;/tt&gt;

First, it has to be verified that the proper directory is chosen. This can be done by using pwd (print working directory). At this point, the directory should be the home directory: &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 [sbox-DIABLO_X86: ~] &gt; pwd
 /home/user

&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

Then, start an editor and write the small hello world program (you may use the above listing as a template if you wish): &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 [sbox-DIABLO_X86: ~] &gt; nano helloworld.c

&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

nano is a GNU version of &quot;pico&quot; editor, which is a simple text file editor. Use Control+character to execute the commands listed on the bottom of the screen. WriteOut means &quot;save&quot;. You may also use vi or an external editor to the SDK environment (see below for hints on using vi and emacs). &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 [sbox-DIABLO_X86: ~] &gt; gcc -Wall -g helloworld.c -o helloworld
 [sbox-DIABLO_X86: ~] &gt; ls -F hello* 
 helloworld* helloworld.c

&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

The -g option to gcc 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 then tells the output filename to which gcc will write the result binary.

The -F option to ls is mainly useful when working with a non-color terminal (e.g. paper) to indicate the type of different files. The asterisk after helloworld signifies that the file is an executable. &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 [sbox-DIABLO_X86: ~] &gt; ./helloworld
 Hello world

&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

Running the binary should not produce any surprises. &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 [sbox-DIABLO_X86: ~] &gt; file helloworld
 helloworld: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
 for GNU/Linux 2.6.0, dynamically linked (uses shared libs), not stripped

&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

The file tool is a generic utility that will load some bytes from the start of the given file and then use its internal database to decode what the file might &quot;mean&quot;. In this case, it will correctly decode the file as a X86 format binary file. &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 [sbox-DIABLO_X86: ~] &gt; ldd helloworld
    linux-gate.so.1 =&gt;  (0xffffe000)
    libc.so.6 =&gt; /lib/libc.so.6 (0xb7e9f000)
    /lib/ld-linux.so.2 (0xb7fd2000)
 [sbox-DIABLO_X86: ~] &gt; ls -l /lib/libc.so.6
 lrwxrwxrwx  1 user user 11 Nov 12 15:52 /lib/libc.so.6 -&gt; libc-2.5.so
 [sbox-DIABLO_X86: ~] &gt; ls -l /lib/libc-2.5.so
 -rwxr-xr-x  1 user user 1213256 Sep  7 13:28 /lib/libc-2.5.so

&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

The names of dynamic libraries that the executable uses will be shown on the left-hand column, and the files where the libraries live on the system if executing the program will be shown on the right-hand column. After that, use ls to check out the exact version of the C library that is used in the SDK by using the &quot;long listing format&quot; -l option (running these commands using the ARMEL target would yield more or less the same results). 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.

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 sbox use libraries that are also inside sbox. This also means a stable development platform, especially when working in team where each member has their own Linux, which they 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 sbox will come in handy.

Scratchbox does not contain any logic to emulate the kernel (or to use a different kernel for running programs inside sbox). The only easy possibility for this is using the sbrsh CPU-transparency option. &lt;br /&gt;

&lt;br /&gt;&lt;br /&gt;

&lt;span class=&quot;textbf&quot;&gt;vi&lt;/span&gt;

It is also possible to use vi (Visual Interactive) editor inside sbox. It is possible to install own favorite editors inside sbox (with the debian-devkit), but the following examples will use nano, since it is the easiest to start with. To learn vi, it is best to ask an Internet search engine for a &quot;vi tutorial&quot;. There are lots of them to be found. To understand why vi can be considered to be &quot;strange&quot;, it is useful to know its history first. Using vi is optional of course.

The version of vi that is commonly installed on Linux systems is really vim (VI iMproved), which is a more user friendly vi, including syntax high-lighting and all kinds of improvements. sbox has a program called vimtutor installed to help in learning the use of vi interactively.

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 high-lighting and multiple tabs for editing multiple files at the same time.

And as a final note, also emacs can be used.

Here is how to do it:

* Start emacs outside of sbox
* In emacs, use M-x server-start
* Inside sbox use emacsclient filename to open the file for editing in your emacs

=&lt;span class=&quot;arabic&quot;&gt;3&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;2&lt;/span&gt; Writing a GUI Hello World=

The following example shows how to write the first GUI program. N.B. Only GTK+ library is used here, meaning that the platform provided widgets or coding style are not utilized. That will be discussed soon. &lt;br /&gt;&lt;br /&gt;A simple GTK+ Hello World (gtk_helloworld-1.c)

 &lt;tt&gt;''&lt;font color=&quot;#9A1900&quot;&gt;/**&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; * gtk_helloworld-1.c&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; *&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; * This maemo code example is licensed under a MIT-style license,&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; * that can be found in the file called &quot;License&quot; in the same&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; * directory as this file.&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; * Copyright (c) 2007-2008 Nokia Corporation. All rights reserved.&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; *&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; * A simple GTK+ Hello World. You need to use Ctrl+C to terminate&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; * this program since it doesn't implement GTK+ signals (yet).&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt; */&lt;/font&gt;''
 
 '''&lt;font color=&quot;#000080&quot;&gt;&lt;nowiki&gt;#include&lt;/nowiki&gt;&lt;/font&gt;''' &lt;font color=&quot;#FF0000&quot;&gt;&lt;stdlib.h&gt;&lt;/font&gt; ''&lt;font color=&quot;#9A1900&quot;&gt;/* EXIT_* */&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt;/* Introduce types and prototypes of GTK+ for the compiler. */&lt;/font&gt;''
 '''&lt;font color=&quot;#000080&quot;&gt;&lt;nowiki&gt;#include&lt;/nowiki&gt;&lt;/font&gt;''' &lt;font color=&quot;#FF0000&quot;&gt;&lt;gtk/gtk.h&gt;&lt;/font&gt;
 
 &lt;font color=&quot;#009900&quot;&gt;int&lt;/font&gt; '''&lt;font color=&quot;#000000&quot;&gt;main&lt;/font&gt;'''&lt;font color=&quot;#990000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#009900&quot;&gt;int&lt;/font&gt; argc&lt;font color=&quot;#990000&quot;&gt;,&lt;/font&gt; &lt;font color=&quot;#009900&quot;&gt;char&lt;/font&gt;&lt;font color=&quot;#990000&quot;&gt;&lt;nowiki&gt;**&lt;/nowiki&gt;&lt;/font&gt; argv&lt;font color=&quot;#990000&quot;&gt;)&lt;/font&gt; &lt;font color=&quot;#FF0000&quot;&gt;{&lt;/font&gt;
 
   ''&lt;font color=&quot;#9A1900&quot;&gt;/* We'll have two references to two GTK+ widgets. */&lt;/font&gt;''
   GtkWindow&lt;font color=&quot;#990000&quot;&gt;&lt;nowiki&gt;*&lt;/nowiki&gt;&lt;/font&gt; window&lt;font color=&quot;#990000&quot;&gt;&lt;nowiki&gt;;&lt;/nowiki&gt;&lt;/font&gt;
   GtkLabel&lt;font color=&quot;#990000&quot;&gt;&lt;nowiki&gt;*&lt;/nowiki&gt;&lt;/font&gt; label&lt;font color=&quot;#990000&quot;&gt;&lt;nowiki&gt;;&lt;/nowiki&gt;&lt;/font&gt;
 
   ''&lt;font color=&quot;#9A1900&quot;&gt;/* Initialize the GTK+ library. */&lt;/font&gt;''
   '''&lt;font color=&quot;#000000&quot;&gt;gtk_init&lt;/font&gt;'''&lt;font color=&quot;#990000&quot;&gt;(&amp;&lt;/font&gt;argc&lt;font color=&quot;#990000&quot;&gt;,&lt;/font&gt; &lt;font color=&quot;#990000&quot;&gt;&amp;&lt;/font&gt;argv&lt;font color=&quot;#990000&quot;&gt;);&lt;/font&gt;
 
   ''&lt;font color=&quot;#9A1900&quot;&gt;/* Create a window with window border width of 12 pixels and a&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt;     title text. */&lt;/font&gt;''
   window &lt;font color=&quot;#990000&quot;&gt;&lt;nowiki&gt;=&lt;/nowiki&gt;&lt;/font&gt; '''&lt;font color=&quot;#000000&quot;&gt;g_object_new&lt;/font&gt;'''&lt;font color=&quot;#990000&quot;&gt;(&lt;/font&gt;GTK_TYPE_WINDOW&lt;font color=&quot;#990000&quot;&gt;,&lt;/font&gt;
     &lt;font color=&quot;#FF0000&quot;&gt;&quot;border-width&quot;&lt;/font&gt;&lt;font color=&quot;#990000&quot;&gt;,&lt;/font&gt; &lt;font color=&quot;#993399&quot;&gt;12&lt;/font&gt;&lt;font color=&quot;#990000&quot;&gt;,&lt;/font&gt;
     &lt;font color=&quot;#FF0000&quot;&gt;&quot;title&quot;&lt;/font&gt;&lt;font color=&quot;#990000&quot;&gt;,&lt;/font&gt; &lt;font color=&quot;#FF0000&quot;&gt;&quot;Hello GTK+&quot;&lt;/font&gt;&lt;font color=&quot;#990000&quot;&gt;,&lt;/font&gt;
     NULL&lt;font color=&quot;#990000&quot;&gt;);&lt;/font&gt;
 
   ''&lt;font color=&quot;#9A1900&quot;&gt;/* Create the label widget. */&lt;/font&gt;''
   label &lt;font color=&quot;#990000&quot;&gt;&lt;nowiki&gt;=&lt;/nowiki&gt;&lt;/font&gt; '''&lt;font color=&quot;#000000&quot;&gt;g_object_new&lt;/font&gt;'''&lt;font color=&quot;#990000&quot;&gt;(&lt;/font&gt;GTK_TYPE_LABEL&lt;font color=&quot;#990000&quot;&gt;,&lt;/font&gt;
     &lt;font color=&quot;#FF0000&quot;&gt;&quot;label&quot;&lt;/font&gt;&lt;font color=&quot;#990000&quot;&gt;,&lt;/font&gt; &lt;font color=&quot;#FF0000&quot;&gt;&quot;Hello World!&quot;&lt;/font&gt;&lt;font color=&quot;#990000&quot;&gt;,&lt;/font&gt;
     NULL&lt;font color=&quot;#990000&quot;&gt;);&lt;/font&gt;
 
   ''&lt;font color=&quot;#9A1900&quot;&gt;/* Pack the label into the window layout. */&lt;/font&gt;''
   '''&lt;font color=&quot;#000000&quot;&gt;gtk_container_add&lt;/font&gt;'''&lt;font color=&quot;#990000&quot;&gt;(&lt;/font&gt;'''&lt;font color=&quot;#000000&quot;&gt;GTK_CONTAINER&lt;/font&gt;'''&lt;font color=&quot;#990000&quot;&gt;(&lt;/font&gt;window&lt;font color=&quot;#990000&quot;&gt;),&lt;/font&gt; '''&lt;font color=&quot;#000000&quot;&gt;GTK_WIDGET&lt;/font&gt;'''&lt;font color=&quot;#990000&quot;&gt;(&lt;/font&gt;label&lt;font color=&quot;#990000&quot;&gt;));&lt;/font&gt;
 
   ''&lt;font color=&quot;#9A1900&quot;&gt;/* Show all widgets that are contained by the window. */&lt;/font&gt;''
   '''&lt;font color=&quot;#000000&quot;&gt;gtk_widget_show_all&lt;/font&gt;'''&lt;font color=&quot;#990000&quot;&gt;(&lt;/font&gt;'''&lt;font color=&quot;#000000&quot;&gt;GTK_WIDGET&lt;/font&gt;'''&lt;font color=&quot;#990000&quot;&gt;(&lt;/font&gt;window&lt;font color=&quot;#990000&quot;&gt;));&lt;/font&gt;
 
   ''&lt;font color=&quot;#9A1900&quot;&gt;/* Start the main event loop. */&lt;/font&gt;''
   '''&lt;font color=&quot;#000000&quot;&gt;g_print&lt;/font&gt;'''&lt;font color=&quot;#990000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#FF0000&quot;&gt;&quot;main: calling gtk_main&lt;/font&gt;&lt;font color=&quot;#CC33CC&quot;&gt;\n&lt;/font&gt;&lt;font color=&quot;#FF0000&quot;&gt;&quot;&lt;/font&gt;&lt;font color=&quot;#990000&quot;&gt;);&lt;/font&gt;
   '''&lt;font color=&quot;#000000&quot;&gt;gtk_main&lt;/font&gt;'''&lt;font color=&quot;#990000&quot;&gt;();&lt;/font&gt;
 
   ''&lt;font color=&quot;#9A1900&quot;&gt;/* Display a message to the standard output and exit. */&lt;/font&gt;''
   '''&lt;font color=&quot;#000000&quot;&gt;g_print&lt;/font&gt;'''&lt;font color=&quot;#990000&quot;&gt;(&lt;/font&gt;&lt;font color=&quot;#FF0000&quot;&gt;&quot;main: returned from gtk_main and exiting with success&lt;/font&gt;&lt;font color=&quot;#CC33CC&quot;&gt;\n&lt;/font&gt;&lt;font color=&quot;#FF0000&quot;&gt;&quot;&lt;/font&gt;&lt;font color=&quot;#990000&quot;&gt;);&lt;/font&gt;
 
   ''&lt;font color=&quot;#9A1900&quot;&gt;/* The C standard defines this condition as EXIT_SUCCESS, and this&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt;     symbolic macro is defined in stdlib.h (which GTK+ will pull in&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt;     in-directly). There is also a counter-part for failures:&lt;/font&gt;''
 ''&lt;font color=&quot;#9A1900&quot;&gt;     EXIT_FAILURE. */&lt;/font&gt;''
   '''&lt;font color=&quot;#0000FF&quot;&gt;return&lt;/font&gt;''' EXIT_SUCCESS&lt;font color=&quot;#990000&quot;&gt;&lt;nowiki&gt;;&lt;/nowiki&gt;&lt;/font&gt;
 &lt;font color=&quot;#FF0000&quot;&gt;}&lt;/font&gt;
 &lt;/tt&gt;

Build your program: &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 [sbox-DIABLO_X86: ~] &gt; gcc -Wall -g gtk_helloworld-1.c -o gtk_helloworld-1
 gtk_helloworld-1.c:15:21: gtk/gtk.h: No such file or directory
 gtk_helloworld-1.c: In function `main':
 gtk_helloworld-1.c:20: error: `GtkWindow' undeclared (first use in this function)
 gtk_helloworld-1.c:20: error: (Each undeclared identifier is reported only once
 gtk_helloworld-1.c:20: error: for each function it appears in.)
 gtk_helloworld-1.c:20: error: `window' undeclared (first use in this function)
 gtk_helloworld-1.c:21: error: `GtkLabel' undeclared (first use in this function)
 gtk_helloworld-1.c:21: error: `label' undeclared (first use in this function)
 gtk_helloworld-1.c:24: warning: implicit declaration of function `gtk_init'
 gtk_helloworld-1.c:28: warning: implicit declaration of function `g_object_new'
 gtk_helloworld-1.c:28: error: `GTK_TYPE_WINDOW' undeclared (first use in this function)
 gtk_helloworld-1.c:34: error: `GTK_TYPE_LABEL' undeclared (first use in this function)
 gtk_helloworld-1.c:39: warning: implicit declaration of function `gtk_container_add'
 gtk_helloworld-1.c:39: warning: implicit declaration of function `GTK_CONTAINER'
 gtk_helloworld-1.c:39: warning: implicit declaration of function `GTK_WIDGET'
 gtk_helloworld-1.c:42: warning: implicit declaration of function `gtk_widget_show_all'
 gtk_helloworld-1.c:45: warning: implicit declaration of function `g_print'
 gtk_helloworld-1.c:46: warning: implicit declaration of function `gtk_main'

&lt;/div&gt;&lt;div align=&quot;CENTER&quot;&gt;&lt;small class=&quot;FOOTNOTESIZE&quot;&gt;Compiling leads to a lot of errors&lt;/small&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

As can be seen, this does not look at all promising. At the start of the source code, there was #include. The compiler needs to be told where it should look for that critical GTK+ header file. It is also quite likely that some special flags need to be passed to the compiler in order for it to use the proper compilation settings when building GTK+ software. How to decide which flags to use?

This is where a tool called pkg-config comes to the rescue. It is a simple program that provides a unified interface to output compiler, linker flags and library version numbers. Its utility will be discussed later, when starting the automating of the building process. For now, the pkg-config will be used manually. &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 [sbox-DIABLO_X86: ~] &gt; pkg-config --list-all | sort
 .. listing cut to include only relevant libraries ..
 dbus-glib-1    dbus-glib - GLib integration for the free desktop message bus
 gconf-2.0      gconf - GNOME Config System.
 gdk-2.0        GDK - GIMP Drawing Kit (x11 target)
 gdk-pixbuf-2.0 GdkPixbuf - Image loading and scaling
 glib-2.0       GLib - C Utility Library
 gnome-vfs-2.0  gnome-vfs - The GNOME virtual file-system libraries
 gtk+-2.0       GTK+ - GIMP Tool Kit (x11 target)
 hildon-1       hildon - Hildon widgets library
 hildon-fm-2    hildon-fm - Hildon file management widgets
 pango          Pango - Internationalized text handling
 x11            X11 - X Library

&lt;/div&gt;&lt;div align=&quot;CENTER&quot;&gt;&lt;small class=&quot;FOOTNOTESIZE&quot;&gt;Listing the installed &lt;code&gt;pkg-config&lt;/code&gt; packages.&lt;/small&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

&lt;code&gt;pkg-config&lt;/code&gt; also has some other commands that will prove useful: &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 [sbox-DIABLO_X86: ~] &gt; pkg-config --modversion gtk+-2.0
 2.10.12

&lt;/div&gt;&lt;div align=&quot;CENTER&quot;&gt;&lt;small class=&quot;FOOTNOTESIZE&quot;&gt;Listing the version of an installed &lt;code&gt;pkg-config&lt;/code&gt; package, GTK+ in this case.&lt;/small&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 [sbox-DIABLO_X86: ~] &gt; pkg-config --cflags gtk+-2.0
 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0
 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0
 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2
 -I/usr/include/libpng12

&lt;/div&gt;&lt;div align=&quot;CENTER&quot;&gt;&lt;small class=&quot;FOOTNOTESIZE&quot;&gt;Getting the necessary options and flags for &lt;code&gt;gcc&lt;/code&gt; that allow using proper header files with GTK+&lt;/small&gt;&lt;/div&gt;. &lt;br /&gt;&lt;br /&gt;

As can be seen, there are many. With this version of GTK+, all of them are -I options. They are used to tell the compiler which additional directories to check for system header files in addition to the default ones. &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 [sbox-DIABLO_X86: ~] &gt; pkg-config --libs gtk+-2.0
 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm
 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2
 -ldl -lglib-2.0

&lt;/div&gt;&lt;div align=&quot;CENTER&quot;&gt;&lt;small class=&quot;FOOTNOTESIZE&quot;&gt;Getting the necessary options and flags for &lt;code&gt;gcc&lt;/code&gt; that allow linking against the GTK+ library.&lt;/small&gt;&lt;/div&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 shortly) without this information.

Now it is time to try and compile the software again, this time using the compilation flags that pkg-config provides: &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 &lt;nowiki&gt;
 [sbox-DIABLO_X86: ~] &gt; gcc -Wall -g gtk_helloworld-1.c  \
  `pkg-config --cflags gtk+-2.0` -o gtk_helloworld-1
 /var/tmp/ccQ14x4c.o: In function `main':/home/user/gtk_helloworld-1.c:24:
  undefined reference to `gtk_init'
 :/home/user/gtk_helloworld-1.c:28: undefined reference to `gtk_window_get_type'
 :/home/user/gtk_helloworld-1.c:28: undefined reference to `g_object_new'
 :/home/user/gtk_helloworld-1.c:34: undefined reference to `gtk_label_get_type'
 :/home/user/gtk_helloworld-1.c:34: undefined reference to `g_object_new'
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `gtk_widget_get_type'
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `g_type_check_instance_cast'
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `gtk_container_get_type'
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `g_type_check_instance_cast'
 :/home/user/gtk_helloworld-1.c:39: undefined reference to `gtk_container_add'
 :/home/user/gtk_helloworld-1.c:42: undefined reference to `gtk_widget_get_type'
 :/home/user/gtk_helloworld-1.c:42: undefined reference to `g_type_check_instance_cast'
 :/home/user/gtk_helloworld-1.c:42: undefined reference to `gtk_widget_show_all'
 :/home/user/gtk_helloworld-1.c:45: undefined reference to `g_print'
 :/home/user/gtk_helloworld-1.c:46: undefined reference to `gtk_main'
 :/home/user/gtk_helloworld-1.c:49: undefined reference to `g_print'
 collect2: ld returned 1 exit status
 &lt;/nowiki&gt;

&lt;/div&gt;&lt;div align=&quot;CENTER&quot;&gt;&lt;small class=&quot;FOOTNOTESIZE&quot;&gt;Trying to build again, with proper C flags.&lt;/small&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

The command above might seem somewhat strange to someone not having used UNIX command shells. What is happening here is the backtick expansion. It is an operation where the shell will start another shell to execute just the text inside the backticks. In this case, another shell is started to run &lt;code&gt;pkg-config&lt;/code&gt; &lt;code&gt;--cflags&lt;/code&gt; &lt;code&gt;gtk+-2.0&lt;/code&gt;. Normal output from the commands is then read into the main shell, and this output is replaced into the location where the backticks were. N.B. It is very important to use the ` character. Not ', nor the other quote character that might be used in a Swedish keyboard layout (also used in Finland). In some keyboard layouts, it will be necessary to press space after the backtick since it is also used for character composition (try backtick and letter 'a').

Something like $(pkg-config ..) might also be encountered. This is the same operation as backtick. However, backtick is more portable across antique UNIX shells. Nowadays, it is a matter of taste which way to use it.

The errors printed by gcc are quite different this time. These errors come from ld, which is the binary code linker in Linux systems and it is complaining about missing symbols (the undefined references). Obviously something is still missing.

The linker needs to be told where to find the missing symbols. Since it is the linker this is all about, and not the compiler, the missing symbols are found in the library files. To fix the problem (again with the backticks), &lt;code&gt;pkg-config&lt;/code&gt; &lt;code&gt;--libs&lt;/code&gt; can be used: &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 [sbox-DIABLO_X86: ~] &gt; gcc -Wall -g gtk_helloworld-1.c  \
  `pkg-config --cflags gtk+-2.0` -o gtk_helloworld-1  \
  `pkg-config --libs gtk+-2.0`
 [sbox-DIABLO_X86: ~] &gt;

&lt;/div&gt;&lt;div align=&quot;CENTER&quot;&gt;&lt;small class=&quot;FOOTNOTESIZE&quot;&gt;Successful compile and linking.&lt;/small&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

The order and placement of the pkg-configs above is important: the &lt;code&gt;--cflags&lt;/code&gt; need to be placed as early as feasible, but the &lt;code&gt;--libs&lt;/code&gt; must come last (this does matter in some problematic linking scenarios).

The next step is to repeat the basic commands that were used before with the non-GUI hello world: &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 [sbox-DIABLO_X86: ~] &gt; ls -l gtk_helloworld-1
 -rwxrwxr-x  1 user user 16278 Nov 20 00:22 gtk_helloworld-1
 [sbox-DIABLO_X86: ~] &gt; file gtk_helloworld-1
 gtk_helloworld-1: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
 for GNU/Linux 2.6.0, dynamically linked (uses shared libs), not stripped
 [sbox-DIABLO_X86: ~] &gt; ldd gtk_helloworld-1
   linux-gate.so.1 =&gt;  (0xffffe000)
   libgtk-x11-2.0.so.0 =&gt; /usr/lib/libgtk-x11-2.0.so.0 (0xb7c4c000)
   libgdk-x11-2.0.so.0 =&gt; /usr/lib/libgdk-x11-2.0.so.0 (0xb7bc8000)
   libatk-1.0.so.0 =&gt; /usr/lib/libatk-1.0.so.0 (0xb7bad000)
   libgdk_pixbuf-2.0.so.0 =&gt; /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb7b97000)
   libm.so.6 =&gt; /lib/libm.so.6 (0xb7b71000)
   libpangocairo-1.0.so.0 =&gt; /usr/lib/libpangocairo-1.0.so.0 (0xb7b68000)
   libpango-1.0.so.0 =&gt; /usr/lib/libpango-1.0.so.0 (0xb7b2b000)
   libcairo.so.2 =&gt; /usr/lib/libcairo.so.2 (0xb7ab5000)
   libgobject-2.0.so.0 =&gt; /usr/lib/libgobject-2.0.so.0 (0xb7a7a000)
   libgmodule-2.0.so.0 =&gt; /usr/lib/libgmodule-2.0.so.0 (0xb7a76000)
   libdl.so.2 =&gt; /lib/libdl.so.2 (0xb7a71000)
   libglib-2.0.so.0 =&gt; /usr/lib/libglib-2.0.so.0 (0xb79dd000)
   libc.so.6 =&gt; /lib/libc.so.6 (0xb78b2000)
   libX11.so.6 =&gt; /usr/lib/libX11.so.6 (0xb77bd000)
   libXfixes.so.3 =&gt; /usr/lib/libXfixes.so.3 (0xb77b8000)

   libXtst.so.6 =&gt; /usr/lib/libXtst.so.6 (0xb77b3000)
   libfontconfig.so.1 =&gt; /usr/lib/libfontconfig.so.1 (0xb7788000)
   libXext.so.6 =&gt; /usr/lib/libXext.so.6 (0xb777a000)
   libXrender.so.1 =&gt; /usr/lib/libXrender.so.1 (0xb7771000)
   libXi.so.6 =&gt; /usr/lib/libXi.so.6 (0xb7769000)
   libXrandr.so.2 =&gt; /usr/lib/libXrandr.so.2 (0xb7762000)
   libXcursor.so.1 =&gt; /usr/lib/libXcursor.so.1 (0xb7759000)
   /lib/ld-linux.so.2 (0xb7fc3000)
   libpangoft2-1.0.so.0 =&gt; /usr/lib/libpangoft2-1.0.so.0 (0xb772b000)
   libfreetype.so.6 =&gt; /usr/lib/libfreetype.so.6 (0xb76c6000)
   libz.so.1 =&gt; /usr/lib/libz.so.1 (0xb76b7000)
   libpng12.so.0 =&gt; /usr/lib/libpng12.so.0 (0xb7692000)
   libXau.so.6 =&gt; /usr/lib/libXau.so.6 (0xb768f000)
   libXdmcp.so.6 =&gt; /usr/lib/libXdmcp.so.6 (0xb7689000)
   libexpat.so.1 =&gt; /usr/lib/libexpat.so.1 (0xb7669000)

&lt;/div&gt;&lt;div align=&quot;CENTER&quot;&gt;&lt;small class=&quot;FOOTNOTESIZE&quot;&gt;Victory at last!&lt;/small&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

As can be seen from the last ldd listing, this simple Hello World manages to require quite a number of other libraries to run. The program directly 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.

So, what is seen here is almost the full list of all required libraries to run. Almost, because modern UNIX systems (and Linux) can also load libraries on demand (called runtime dynamic module loading).

This might make one wonder, whether writing simple a Hello World really is so painful. It is actually much simpler in real life. The reason why this chapter introduces the various errors is that they will be encountered in actual situations quite early on. This chapter serves as a reference to some possible errors, and (hopefully) also show a solution.

All of these tools will be needed later on, when starting the packaging of the software, and they will not be covered at this level of detail there.

=&lt;span class=&quot;arabic&quot;&gt;3&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;3&lt;/span&gt; Running the GUI Hello World=

 Let's try to execute our nice Hello World (inside sbox): &lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 [sbox-DIABLO_X86: ~] &gt; ./gtk_helloworld-1
 gtk_helloworld-1[4759]: GLIB WARNING ** Gtk - cannot open display:
 [sbox-DIABLO_X86: ~] &gt; echo $DISPLAY

&lt;/div&gt;&lt;div align=&quot;CENTER&quot;&gt;&lt;small class=&quot;FOOTNOTESIZE&quot;&gt;Don't despair, the end is near.&lt;/small&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

Seems that GTK+ is having problems opening the connection to the X server. This can be verified by displaying the contents of the DISPLAY environmental variable, and indeed, it comes out empty. If the DISPLAY variable contains :0.0, it means that the value has been copied from the real graphical session into sbox, and clients will try to connect to the real X server (and probably fail in authentication).

Xephyr was set up in the previous chapter, so now it has to be started so that it can be used as the server for all clients running inside the Scratchbox session.

=&lt;span class=&quot;arabic&quot;&gt;3&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;4&lt;/span&gt; Starting virtual X server (Xephyr)=

Open another terminal emulator (don't close your sbox session).

Start up the server with: &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 user@system:~$ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb

&lt;/div&gt;&lt;div align=&quot;CENTER&quot;&gt;&lt;small class=&quot;FOOTNOTESIZE&quot;&gt;Starting Xephyr for use with the SDK.&lt;/small&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

The first parameter is the Display number (&lt;code&gt;&lt;nowiki&gt;:2&lt;/nowiki&gt;&lt;/code&gt;) that X server should start on (and provide to clients). &lt;code&gt;&lt;nowiki&gt;:2&lt;/nowiki&gt;&lt;/code&gt; is used here since it is normally unused in regular Linux desktop environments.

The &lt;code&gt;screen&lt;/code&gt; parameters tells Xephyr how large the screen should be (in pixels) and how many bits to use for color-information (16). This is the resolution in pixels of Internet Tablets. &lt;code&gt;-dpi 96&lt;/code&gt; tells the server to tell its clients that the logical to physical size mapping should be done with 96 dots-per-inch setting (should the client request that information). The DPI setting is mainly important when dealing with fonts and text.

&lt;code&gt;-ac&lt;/code&gt; tells Xephyr that any client may connect to it. This means that you should be extremely careful about your networking environment so that rogue users will not target your Xephyr with their own clients.

The last parameter (&lt;code&gt;-extension Composite&lt;/code&gt;) disables the Composite extension.

When Xephyr starts, it will connect to the X server given in the &lt;code&gt;DISPLAY&lt;/code&gt; environmental variable that &lt;span class=&quot;textbf&quot;&gt;it&lt;/span&gt; sees. Do not modify or touch your real &lt;code&gt;DISPLAY&lt;/code&gt; variable that Xephyr sees.

&lt;div align=&quot;CENTER&quot;&gt;

{| summary=&quot;Only the X server running&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.1:''' Only the X server running
|-
|
[[Image:xephyr_empty.png|604px|Image xephyr_empty]]
|}

&lt;/div&gt;

By default the server will have one screen, and it will be filled by the default X server background pattern (a tight braid made out of white pixels on black).

Note that the terminal emulator (more specifically, the shell that the emulator started) is waiting for Xephyr to end. If you ever need to kill all the graphical applications running in the SDK, you can just close your Xephyr. This will leave the daemons running inside sbox (D-Bus and friends). Normally this is not a good idea. To ask the foreground process to terminate itself, use &lt;code&gt;Ctrl+c&lt;/code&gt;. Inside sbox this same technique can be used to terminate a graphical client that you start from the command line (as will be done shortly).

=&lt;span class=&quot;arabic&quot;&gt;3&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;5&lt;/span&gt; Directing the client to virtual server=

Now that we have an X server running, it's time to switch back to sbox.

We start by setting the environmental variable to use a local domain socket to the X server, and tell all X clients to connect to Display number 2, since that's where we just started our Xephyr on: &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 &lt;nowiki&gt;
 [sbox-DIABLO_X86: ~] &gt; export DISPLAY=:2
 [sbox-DIABLO_X86: ~] &gt; ./gtk_helloworld-1
 main: calling gtk_main
 [[Ctrl+c]]
 &lt;/nowiki&gt;

&lt;/div&gt;&lt;div align=&quot;CENTER&quot;&gt;&lt;small class=&quot;FOOTNOTESIZE&quot;&gt;Setting the correct &lt;code&gt;DISPLAY&lt;/code&gt; content and running a simple GUI program.&lt;/small&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

We'll need to terminate the program with &lt;code&gt;Ctrl+c&lt;/code&gt;, since it doesn't implement any graphical methods of closing it. Note that you'll need to set your &lt;code&gt;DISPLAY&lt;/code&gt; correctly on each sbox login (or target switch).

&lt;div align=&quot;CENTER&quot;&gt;

{| summary=&quot;A puny little Hello World&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.2:''' A puny little Hello World
|-
|
[[Image:xephyr_gtk_helloworld.png|604px|Image xephyr_gtk_helloworld]]
|}

&lt;/div&gt;

Not really impressive, is it? If you remember what a window manager is, you will note that since it's missing (we didn't start any for the X server) you cannot control the Hello World with your mouse. Kill it with &lt;code&gt;Ctrl+c&lt;/code&gt; for now (we'll start it again in a moment).

To quickly detach the foreground process from your shell and continue running it in the background, use the following key-combination &lt;code&gt;Ctrl+z&lt;/code&gt; and then use the shell command &lt;code&gt;bg&lt;/code&gt;. Between those two steps the process will be &quot;paused&quot;.

=&lt;span class=&quot;arabic&quot;&gt;3&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;6&lt;/span&gt; Starting the Application Framework=

The next step is to have a nice graphical environment that will implement a nicer graphical screen. We will start a series of clients each of which have a specific role. These were introduced before.

To start the Application Framework (referred to as AF from now on), we can use a handy script that comes with the SDK: &lt;br /&gt;

&lt;br /&gt;&lt;div class=&quot;graybox&quot;&gt;

 
 [sbox-DIABLO_X86: ~] &gt; af-sb-init.sh start
 Sample files present.
 Starting DBUS system bus
 Starting D-BUS session bus daemon
 Starting Maemo Launcher: maemo-launcher
 maemo-launcher: error rising the oom shield for pid=4847 status=5632.
 Starting Sapwood image server
 Starting Matchbox window manager
 sapwood-server[4858]: GLIB INFO default - server started
 Starting clipboard-manager
 Starting Keyboard
 maemo-launcher: invoking '/usr/bin/hildon-input-method.launch'
 Starting Hildon Desktop
 maemo-launcher: invoking '/usr/bin/hildon-desktop.launch'
 .. listing cut for brevity ..
 [sbox-DIABLO_X86: ~] &gt;

&lt;/div&gt;&lt;div align=&quot;CENTER&quot;&gt;&lt;small class=&quot;FOOTNOTESIZE&quot;&gt;Using the &lt;code&gt;af-sb-init.sh&lt;/code&gt; script to start the AF.&lt;/small&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

We use &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;stop&lt;/code&gt; parameters to start and stop the graphical environment. If everything works, you should see a screen resembling this one:

&lt;div align=&quot;CENTER&quot;&gt;

{| summary=&quot;Much better&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 3.3:''' Much better
|-
|
[[Image:af_startup.png|604px|Image af_startup]]
|}

&lt;/div&gt;

=&lt;span class=&quot;arabic&quot;&gt;3&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;7&lt;/span&gt; Running Hello World in the AF=

 While AF is running, let's start our Hello World again (&lt;code&gt;./gtk_helloworld-1&lt;/code&gt; in sbox): &lt;div align=&quot;CENTER&quot;&gt;[[Image:xephyr_af_and_gtk_helloworld.png|604px|Image xephyr_af_and_gtk_helloworld]]&lt;/div&gt;

Since there now is a window manager running, our client will get much larger window to draw in. GTK+ will scale the widget accordingly (only there is only one widget in our Hello World). Note that the screen still looks a bit off. If you &quot;close the application&quot; by pressing the X in top-right corner, you will notice that our Hello World will disappear from the screen. Since we haven't implemented signals yet and thus don't handle window destruction, our Hello World application will only be hidden. It is still running (as you can see in your sbox terminal emulator since the shell doesn't display its prompt). Stop the Hello World with &lt;code&gt;Ctrl+c&lt;/code&gt;.

Next we'll use a SDK utility script called &lt;code&gt;run-standalone.sh&lt;/code&gt;. Its job is to setup correct environmental variables for themes and communication for the command that is given to it as its command line parameter.

Use &lt;code&gt;run-standalone.sh ./gtk_helloworld-1&lt;/code&gt; to start your X client again: &lt;br /&gt;

&lt;br /&gt;&lt;div align=&quot;CENTER&quot;&gt;[[Image:xephyr_af_and_gtk_helloworld_runstandalone.png|604px|Image xephyr_af_and_gtk_helloworld_runstandalone]]&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

The screen is still a bit off (we don't get nice borders around our main GtkLabel widget) but looks already somewhat better. The text is scaled to be more in sync with the other text sizes and also the color is in sync with the platform color (it's not gray anymore).

In &quot;maemo Application Development&quot; material you'll learn how to adapt our application for maemo, so that it will &quot;sit better&quot; in the environment. You'll also learn how to react to HID-events, how to use widgets and how to package your software so that it can be easily distributed to users and installed on Internet Tablets.</text>
    </revision>
  </page>
  <page>
    <title>Maemo training material/Getting Started/What is maemo</title>
    <id>1443</id>
    <revision>
      <id>11417</id>
      <timestamp>2009-03-03T10:26:17Z</timestamp>
      <contributor>
        <username>myrtti</username>
        <id>518</id>
      </contributor>
      <minor/>
      <comment>[[Training material/Getting Started/What is maemo]] moved to [[Maemo training material/Getting Started/What is maemo]]</comment>
      <text xml:space="preserve">{{LaTeX2HTML2Wiki}}
=&lt;span class=&quot;arabic&quot;&gt;1&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;1&lt;/span&gt; What is this thing called maemo&lt;sup&gt;&lt;small&gt;TM&lt;/small&gt;&lt;/sup&gt;?=

Maemo is an open source development platform for Internet Tablets. It means the collection of software that is used to develop and test software for the Internet Tablet-class devices, the first of which was the Nokia 770. It was later followed by the Nokia N800 and the Nokia N810. In this material we will be referring to all of these devices as &lt;span class=&quot;textbf&quot;&gt;Internet Tablets&lt;/span&gt;. Maemo is a registered trademark of Nokia Corporation.

This version of the material covers maemo SDK version 4.x as well as Nokia N800 and Nokia N810 Internet Tablets running OS2008. &lt;br /&gt;

&lt;br /&gt;&lt;div align=&quot;CENTER&quot;&gt;

{| summary=&quot;Nokia N800&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 1.1:''' Nokia N800
|-
|
[[Image:device_image-2.jpg|604px|Image device_image-2]]
|}

&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

For a programmer, the Internet Tablets are really interesting as so much in them is based on free software and thus it's possible to use the same tools that are used in normal software development on other free and open source environments.

If you're coming from the Windows-world, or even the Symbian-world, this might be a new kind of encounter for you. All the tools, libraries and development processes that are used in maemo are equally used and applied in the desktop application arena, as well as for building server software. This is in part due to the GNU project ([http://www.gnu.org/ gnu.org]), which has implemented a lot of the tools infrastructure in a highly portable way. The main graphical interface libraries come from the GNOME project ([http://www.gnome.org/ gnome.org]), which is one of the most popular graphical environments used in Linux distributions.

By reusing existing portable and tested tools, we gain in an accelerated application development time. This also means that we can take the tool-set and apply it for writing software for embedded systems.

=&lt;span class=&quot;arabic&quot;&gt;1&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;2&lt;/span&gt; Internet Tablet overview=

The devices are smaller than a laptop, larger than a PDA, and quite light-weight. Some of them (Nokia N810) have a small keyboard, and all of them have a stylus and a touch-sensitive screen. The stylus-driven GUI will cause some design challenges later on, since your software will need to be designed this in mind. There is also a possibility of using an on-screen keyboard with the stylus and this includes a hand-writing recognition and a predictive input system to aid the user. In all devices, there is a limited set of hardware buttons available for applications. &lt;br /&gt;

&lt;br /&gt;&lt;div align=&quot;CENTER&quot;&gt;

{| summary=&quot;The Virtual Keyboard (VKB)&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 1.2:''' The Virtual Keyboard (VKB)
|-
|
[[Image:hildon_helloworld-5.png|604px|Image hildon_helloworld-5]]
|}

&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;

As programmers appreciate knowing a bit about the fundamentals of the devices for which they program, table 1.1 presents a short list of the most important components. &lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;

&lt;div align=&quot;CENTER&quot;&gt;

{| summary=&quot;Internet Tablet components&quot;
|+ '''Table 1.1:''' Internet Tablet components
|-
|
&lt;div align=&quot;CENTER&quot;&gt;

{| border=&quot;1&quot; cellpadding=&quot;3&quot; align=&quot;CENTER&quot;
| width=&quot;150&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; |
[http://en.wikipedia.org/wiki/Nokia_N800 N800]
| width=&quot;150&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; |
[http://en.wikipedia.org/wiki/Nokia_N810 N810]
| width=&quot;150&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; |
[http://en.wikipedia.org/wiki/Nokia_N810#Nokia_N810_WiMAX_Edition N810 WiMax Edition]
|-
| colspan=&quot;3&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; | an 800x480 pixel, 225 pixels-per-inch (PPI) wide-screen touch screen display with 16-bits per pixel color depth
|-
| colspan=&quot;3&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; | Hardware buttons with a layout optimized for Web surfing
|-
| width=&quot;150&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; | Virtual Keyboard
| colspan=&quot;2&quot; width=&quot;1&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; | Small slide-out keyboard (&amp; VKB)
|-
| colspan=&quot;3&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; | Wi-Fi (802.11b/g)
|-
| colspan=&quot;2&quot; width=&quot;1&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; |
| width=&quot;150&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; | WiMAX 802.16e / 2.5GHz
|-
| width=&quot;150&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; | External GPS via Bluetooth
| colspan=&quot;2&quot; width=&quot;1&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; | Integrated GPS (external also supported)
|-
| colspan=&quot;3&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; | 1500 mAh battery
|-
| colspan=&quot;3&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; | 3.5 mm stereo audio out socket (works also as mic input on N800/N810)
|-
| colspan=&quot;3&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; | Built-in VGA resolution webcam
|-
| colspan=&quot;3&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; | USB 2.0 port (in target mode by default)
|-
| colspan=&quot;3&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; | 128 MiB of RAM
|-
| colspan=&quot;3&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; | 256 MiB flash memory with JFFS2 file system
|-
| width=&quot;150&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; | Two memory card slots, SD, MicroSD, MiniSD, MMC, and RS-MMC (some types with extender).
| colspan=&quot;2&quot; width=&quot;1&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; | One memory card slot, compatible with MiniSD and MicroSD (with extender).
|-
| colspan=&quot;3&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; | Bluetooth 2.0
|-
| colspan=&quot;3&quot; align=&quot;LEFT&quot; valign=&quot;TOP&quot; |
&lt;span class=&quot;textbf&quot;&gt;TI OMAP 2420&lt;/span&gt; multi-core processor with maximum clock frequency of 400 MHz, with:

* &lt;span class=&quot;textbf&quot;&gt;TMS320C55x DSP logic&lt;/span&gt; (Backward compatibility with the 54x-series)
* &lt;span class=&quot;textbf&quot;&gt;ARM1136 core&lt;/span&gt; (&quot;ARMv6&quot;) with an MMU (Backward compatibility with ARM926)
|}

&lt;/div&gt;
|}

&lt;/div&gt;&lt;br /&gt;

The USB port normally acts as a USB target, although the direction can be reversed, and the device can be the USB host (i.e. initiator). The port is not capable of providing USB power, so an external power feed is necessary. This allows various usage scenarios, when the R&amp;D mode is enabled on a device. The default version of Internet Tablet software runs in target mode only.

Some noteworthy points about the hardware and software:

* There is not a lot of RAM (compared to a &quot;PC&quot;), and the memory is shared between all the applications that are executing at any given time.
* The system runs a modified Linux kernel 2.6 (omap-port).
* The system library is GNU libc 2, meaning that most software can be ported without too much effort (even networking software).
* To conserve battery power, one needs to be careful with application core logic (loops, delays, timeouts, threads etc.)
* There is no hardware acceleration for graphics operations (2D or 3D).
* The built-in flash contains approximately 64 MiB of shipped software. This means that about 192 MiB is available to be shared between applications.
* The built-in flash uses a file system specifically designed for flash memory, and contains transparent compression and decompression. This means that sometimes optimizing for space requirements is not sensible. Compressing an image as a &lt;span class=&quot;textbf&quot;&gt;.gif&lt;/span&gt; is not very good idea, as it would have been compressed anyhow. However, the RS-MMC card uses FAT/VFAT file system. The compression rates may vary, and if space conservation is important for an application, it is abvisable to test the specific use scenario properly.
* There is some support for Java acceleration in the ARM core, but this is not utilized, since there is no supported JVM to execute Java code.

&lt;span class=&quot;textbf&quot;&gt;N.B.&lt;/span&gt; The above feature list holds for the &quot;end user&quot; version of the software that is shipped with Internet Tablets.

=&lt;span class=&quot;arabic&quot;&gt;1&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;3&lt;/span&gt; Maemo runtime environment=

Below is a table of the software &quot;stack&quot; for the maemo platform:
&lt;!-- This table did not export with the perl script correctly from the original file. We ended up using the Reference manual one from the Architecture Chapter because it was exported nicely. --&gt;
{| style=&quot;background-color: rgb(238, 238, 238)&quot; border=&quot;1&quot; cellpadding=&quot;3&quot; align=&quot;center&quot;
| style=&quot;background-color: rgb(238, 238, 170); text-align: center; vertical-align: middle&quot; colspan=&quot;7&quot; |
&lt;small class=&quot;SMALL&quot;&gt;Applications&lt;/small&gt;
|-
| style=&quot;background-color: rgb(238, 238, 238); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; |
&lt;small class=&quot;SMALL&quot;&gt;Fonts&lt;/small&gt;
| style=&quot;background-color: rgb(238, 238, 238); text-align: center; vertical-align: middle&quot; colspan=&quot;3&quot; |
&lt;small class=&quot;SMALL&quot;&gt;Sounds&lt;/small&gt;
| style=&quot;background-color: rgb(238, 238, 238); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; |
&lt;small class=&quot;SMALL&quot;&gt;Icons&lt;/small&gt;
|-
| style=&quot;background-color: rgb(238, 238, 170); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; | &lt;small class=&quot;SMALL&quot;&gt;Connectivity&lt;/small&gt;
| style=&quot;background-color: rgb(238, 238, 170); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; | &lt;small class=&quot;SMALL&quot;&gt;System UI&lt;/small&gt;
| style=&quot;background-color: rgb(238, 238, 170); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; | &lt;small class=&quot;SMALL&quot;&gt;Search&lt;/small&gt;
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; | &lt;small class=&quot;SMALL&quot;&gt;Text Input&lt;/small&gt;
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; | &lt;small class=&quot;SMALL&quot;&gt;MIME Types&lt;/small&gt;
|-
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; | &lt;small class=&quot;SMALL&quot;&gt;Home Applets&lt;/small&gt;
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; | &lt;small class=&quot;SMALL&quot;&gt;Control Panel&lt;/small&gt;
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; | &lt;small class=&quot;SMALL&quot;&gt;Task Navigator&lt;/small&gt;
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; | &lt;small class=&quot;SMALL&quot;&gt;Status Bar&lt;/small&gt;
|-
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; | &lt;small class=&quot;SMALL&quot;&gt;Backup&lt;/small&gt;
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; | &lt;small class=&quot;SMALL&quot;&gt;Installer&lt;/small&gt;
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; | &lt;small class=&quot;SMALL&quot;&gt;Alarm&lt;/small&gt;
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; | &lt;small class=&quot;SMALL&quot;&gt;Help&lt;/small&gt;
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; | &lt;small class=&quot;SMALL&quot;&gt;Launcher&lt;/small&gt;
|-
| style=&quot;background-color: rgb(197, 210, 200); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://xmlsoft.org/ &lt;small class=&quot;SMALL&quot;&gt;XML&lt;/small&gt;]
| style=&quot;background-color: rgb(197, 210, 200); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; |
[http://www.gnome.org/projects/evolution/arch.shtml &lt;small class=&quot;SMALL&quot;&gt;E-D-S&lt;/small&gt;]
| style=&quot;background-color: rgb(197, 210, 200); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; |
[http://telepathy.freedesktop.org/wiki &lt;small class=&quot;SMALL&quot;&gt;Telepathy&lt;/small&gt;]
| style=&quot;background-color: rgb(197, 210, 200); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; |
[http://www.gnome.org/projects/gconf/index.html &lt;small class=&quot;SMALL&quot;&gt;GConf&lt;/small&gt;]
|-
| style=&quot;background-color: rgb(197, 210, 200); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; |
[http://gstreamer.freedesktop.org/ &lt;small class=&quot;SMALL&quot;&gt;GStreamer&lt;/small&gt;]
| style=&quot;background-color: rgb(197, 210, 200); text-align: center; vertical-align: middle&quot; colspan=&quot;4&quot; |
[http://library.gnome.org/devel/gnome-vfs-2.0/unstable &lt;small class=&quot;SMALL&quot;&gt;GnomeVFS&lt;/small&gt;]
| style=&quot;background-color: rgb(197, 210, 200); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://library.gnome.org/devel/gsf/unstable/index.html &lt;small class=&quot;SMALL&quot;&gt;GSF&lt;/small&gt;]
|-
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; | &lt;small class=&quot;SMALL&quot;&gt;Sapwood&lt;/small&gt;
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; | &lt;small class=&quot;SMALL&quot;&gt;Hildon Widgets&lt;/small&gt;
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; | &lt;small class=&quot;SMALL&quot;&gt;Hildon File UI&lt;/small&gt;
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://freshmeat.net/projects/libgtkhtml &lt;small class=&quot;SMALL&quot;&gt;HTML&lt;/small&gt;] [http://freshmeat.net/projects/libgtkhtml &lt;small class=&quot;SMALL&quot;&gt;Widget&lt;/small&gt;]
|-
| style=&quot;background-color: rgb(197, 210, 200); text-align: center; vertical-align: middle&quot; colspan=&quot;7&quot; |
[http://www.gtk.org/ &lt;small class=&quot;SMALL&quot;&gt;GTK+&lt;/small&gt;]
|-
| style=&quot;background-color: rgb(197, 210, 200); text-align: center; vertical-align: middle&quot; colspan=&quot;4&quot; |
[http://en.wikipedia.org/wiki/Gdk &lt;small class=&quot;SMALL&quot;&gt;GDK&lt;/small&gt;]
| style=&quot;background-color: rgb(197, 210, 200); text-align: center; vertical-align: middle&quot; colspan=&quot;3&quot; |
[http://library.gnome.org/devel/gdk-pixbuf/unstable/index.html &lt;small class=&quot;SMALL&quot;&gt;GdkPixbuf&lt;/small&gt;]
|-
| style=&quot;background-color: rgb(197, 210, 200); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; |
[http://www.pango.org/ &lt;small class=&quot;SMALL&quot;&gt;Pango&lt;/small&gt;]
| style=&quot;background-color: rgb(197, 210, 200); text-align: center; vertical-align: middle&quot; colspan=&quot;3&quot; |
[http://cairographics.org/ &lt;small class=&quot;SMALL&quot;&gt;Cairo&lt;/small&gt;]
| style=&quot;background-color: rgb(197, 210, 200); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; |
[http://en.wikipedia.org/wiki/Accessibility_Toolkit &lt;small class=&quot;SMALL&quot;&gt;Atk&lt;/small&gt;]
|-
| style=&quot;background-color: rgb(197, 210, 200); text-align: center; vertical-align: middle&quot; colspan=&quot;4&quot; |
[http://en.wikipedia.org/wiki/GLib &lt;small class=&quot;SMALL&quot;&gt;GLib&lt;/small&gt;]
| style=&quot;background-color: rgb(197, 210, 200); text-align: center; vertical-align: middle&quot; colspan=&quot;3&quot; |
[http://library.gnome.org/devel/gobject/unstable &lt;small class=&quot;SMALL&quot;&gt;GObject&lt;/small&gt;]
|-
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://u3.samba.org/samba &lt;small class=&quot;SMALL&quot;&gt;Samba&lt;/small&gt;]
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://gpsd.berlios.de/ &lt;small class=&quot;SMALL&quot;&gt;GPS&lt;/small&gt;]
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://sourceforge.net/projects/openobex &lt;small class=&quot;SMALL&quot;&gt;Obex&lt;/small&gt;]
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; | &lt;small class=&quot;SMALL&quot;&gt;ConIC&lt;/small&gt;
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://www.cybergarage.org/net/upnp/c/index.html &lt;small class=&quot;SMALL&quot;&gt;UPnP&lt;/small&gt;]
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://en.wikipedia.org/wiki/Jpeg &lt;small class=&quot;SMALL&quot;&gt;JPEG&lt;/small&gt;] [http://en.wikipedia.org/wiki/Png &lt;small class=&quot;SMALL&quot;&gt;PNG&lt;/small&gt;] [http://en.wikipedia.org/wiki/Tiff &lt;small class=&quot;SMALL&quot;&gt;TIFF&lt;/small&gt;] [http://librsvg.sourceforge.net/ &lt;small class=&quot;SMALL&quot;&gt;SVG&lt;/small&gt;]
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://matchbox-project.org/ &lt;small class=&quot;SMALL&quot;&gt;Matchbox&lt;/small&gt;]
|-
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; |
[http://www.freedesktop.org/wiki/Software/dbus &lt;small class=&quot;SMALL&quot;&gt;D-BUS&lt;/small&gt;]
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://www.freedesktop.org/wiki/Software/hal &lt;small class=&quot;SMALL&quot;&gt;HAL&lt;/small&gt;]
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://www.sqlite.org/ &lt;small class=&quot;SMALL&quot;&gt;SQLite&lt;/small&gt;]
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://curl.haxx.se/ &lt;small class=&quot;SMALL&quot;&gt;curl HTTP&lt;/small&gt;]
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; | &lt;small class=&quot;SMALL&quot;&gt;Clipboard&lt;/small&gt;
|-
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://www.freedesktop.org/wiki/Software/dbus &lt;small class=&quot;SMALL&quot;&gt;SSL&lt;/small&gt;]
| style=&quot;background-color: rgb(238, 238, 170); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; | &lt;small class=&quot;SMALL&quot;&gt;System SW&lt;/small&gt;
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; | &lt;small class=&quot;SMALL&quot;&gt;Cert. mgnt&lt;/small&gt;
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; | &lt;small class=&quot;SMALL&quot;&gt;libosso&lt;/small&gt;
| style=&quot;background-color: rgb(239, 227, 242); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; |
[http://x.org/ &lt;small class=&quot;SMALL&quot;&gt;X&lt;/small&gt;]
|-
| style=&quot;background-color: rgb(239, 255, 239); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; |
[http://en.wikipedia.org/wiki/Libstdc++ &lt;small class=&quot;SMALL&quot;&gt;Libstd C++&lt;/small&gt;]
| style=&quot;background-color: rgb(239, 255, 239); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; | &lt;small class=&quot;SMALL&quot;&gt;Compression&lt;/small&gt;
| style=&quot;background-color: rgb(239, 255, 239); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://en.wikipedia.org/wiki/Dpkg &lt;small class=&quot;SMALL&quot;&gt;dpkg&lt;/small&gt;]
| style=&quot;background-color: rgb(239, 255, 239); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://en.wikipedia.org/wiki/Advanced_Packaging_Tool &lt;small class=&quot;SMALL&quot;&gt;apt&lt;/small&gt;]
| style=&quot;background-color: rgb(239, 255, 239); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://www.freetype.org/ &lt;small class=&quot;SMALL&quot;&gt;Freetype&lt;/small&gt;]
| style=&quot;background-color: rgb(239, 255, 239); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://www.fontconfig.org/ &lt;small class=&quot;SMALL&quot;&gt;Fontconfig&lt;/small&gt;]
|-
| style=&quot;background-color: rgb(239, 255, 239); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://en.wikipedia.org/wiki/Sysvinit &lt;small class=&quot;SMALL&quot;&gt;Sysvinit&lt;/small&gt;]
| style=&quot;background-color: rgb(239, 255, 239); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; | &lt;small class=&quot;SMALL&quot;&gt;Base Files&lt;/small&gt;
| style=&quot;background-color: rgb(239, 255, 239); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://busybox.net/ &lt;small class=&quot;SMALL&quot;&gt;Busybox&lt;/small&gt;]
| style=&quot;background-color: rgb(239, 255, 239); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://www.gnu.org/software/libc &lt;small class=&quot;SMALL&quot;&gt;GNU C Library&lt;/small&gt;]
| style=&quot;background-color: rgb(239, 255, 239); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
&lt;small class=&quot;SMALL&quot;&gt;Core Libs&lt;/small&gt;
| style=&quot;background-color: rgb(239, 255, 239); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
&lt;small class=&quot;SMALL&quot;&gt;Core Utils&lt;/small&gt;
| style=&quot;background-color: rgb(239, 255, 239); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; | &lt;small class=&quot;SMALL&quot;&gt;Core Daemons&lt;/small&gt;
|-
| style=&quot;background-color: rgb(239, 255, 239); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; |
[http://www.bluez.org/ &lt;small class=&quot;SMALL&quot;&gt;BlueZ&lt;/small&gt;]
| style=&quot;background-color: rgb(239, 255, 239); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; | &lt;small class=&quot;SMALL&quot;&gt;Power mgnt&lt;/small&gt;
| style=&quot;background-color: rgb(238, 238, 170); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
&lt;small class=&quot;SMALL&quot;&gt;WLAN security&lt;/small&gt;
| style=&quot;background-color: rgb(239, 255, 239); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://www.alsa-project.org/ &lt;small class=&quot;SMALL&quot;&gt;ALSA&lt;/small&gt;]
| style=&quot;background-color: rgb(239, 255, 239); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
[http://www.thedirks.org/v4l2 &lt;small class=&quot;SMALL&quot;&gt;Video4-Linux&lt;/small&gt;]
|-
| style=&quot;background-color: rgb(238, 238, 170); text-align: center; vertical-align: middle&quot; colspan=&quot;2&quot; |
&lt;small class=&quot;SMALL&quot;&gt;Bootloader&lt;/small&gt;
| style=&quot;background-color: rgb(239, 238, 239); text-align: center; vertical-align: middle&quot; colspan=&quot;4&quot; |
[http://en.wikipedia.org/wiki/Linux_kernel &lt;small class=&quot;SMALL&quot;&gt;Linux kernel&lt;/small&gt;] &lt;small class=&quot;SMALL&quot;&gt;including&lt;/small&gt; [http://en.wikipedia.org/wiki/Jffs2 &lt;small class=&quot;SMALL&quot;&gt;JFFS2, &lt;/small&gt;] [http://en.wikipedia.org/wiki/Tcp/ip &lt;small class=&quot;SMALL&quot;&gt;TCP/IP&lt;/small&gt;]
| style=&quot;background-color: rgb(238, 238, 170); text-align: center; vertical-align: middle&quot; colspan=&quot;1&quot; |
&lt;small class=&quot;SMALL&quot;&gt;InitFS including&lt;/small&gt; [http://www.uclibc.org/ &lt;small class=&quot;SMALL&quot;&gt;uClibc&lt;/small&gt;] &lt;small class=&quot;SMALL&quot;&gt;dsme&lt;/small&gt;
|}

We'll start from the bottom layer and go upwards by covering the services:

; '''Linux 2.6 kernel'''
: Processes hardware events, system-wide memory allocation, process creation and everything that you would expect from a modern multi-tasking UNIX-like kernel. Not covered in this material.
; '''X Server'''
: A program that implements access to the graphics hardware and converts HID (human interface device) events from the kernel into events for the X server's clients. Explained shortly.
; '''D-Bus'''
: A service that allows related processes to pass events to each other. The service runs as a daemon, which is a process that runs in the background. The D-Bus daemon also passes important events from the core system to applications (e.g., &quot;battery low&quot;). Interfacing with D-Bus is an important part of integrating your application with the runtime environment. D-Bus was developed to provide a message bus for Linux desktop applications, the D comes from &quot;Desktop&quot;. In fact, normally one would have at least two daemons, one that processes and sends system level events and one to allow related processes to communicate with each other inside one user's graphical session. D-Bus is more thoroughly covered in the &quot;maemo Platform Development&quot; material.
; '''X window manager (customized Matchbox)'''
: Controls where the graphical applications' windows will be placed.
; '''Task navigator'''
: Graphical program that is used to switch between applications. Always running, even if your application will be full-screen (Task navigator will be invisible in this case). Appears on left side of the screen when applications are not running in full-screen mode.
; '''Home/Desktop'''
: A graphical program that implements a user-selectable background picture. Also provides space for applets which are small programs that draw on the background some useful (or not) information to the user. Applets are not covered in this material.
; '''Status bar'''
: Implements the top-right area of the screen that holds the various plug-ins that indicate status and allow the user to easily change settings. Together with Task navigator and Home/Desktop, implements the screen that the user will see when the device has started.
; '''Sapwood'''
: A daemon that caches images used to implement the overall graphical look and feel for applications designed for maemo. Used in the background by the GTK+ library.
; '''Control panel'''
: A simple application for most system configration tasks. It is possible to write your own Control panel plug-ins by making them dynamically loadable objects which the Control panel will load on demand. Not covered in this material.

&lt;div align=&quot;CENTER&quot;&gt;

{| summary=&quot;Task navigator, Home and Status bar. Also shown are the icons (the GNU heads) of the hello-world-app package.&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 1.3:''' Task navigator, Home and Status bar. Also shown are the icons (the GNU heads) of the hello-world-app package.
|-
|
[[Image:af_startup.png|604px|Image af_startup]]
|}

&lt;/div&gt;

=&lt;span class=&quot;arabic&quot;&gt;1&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;4&lt;/span&gt; X Window System=

This is a short and simplified introduction to the X Window System. It is covered here because it is the underlying system by which graphics and user interaction is implemented in both the maemo platform and the Internet Tablets.

The X Window System is an architecture independent client/server system that allows multiple programs to interact with a user via a graphical (pixel-based) screen, keyboard and a pointing device (traditionally a mouse).

The program that wants to display something to the user, and read input from the user is called the &lt;span class=&quot;textbf&quot;&gt;X client&lt;/span&gt;. Each X client connects to one X server which will perform the requested graphics operations and will relay keyboard and pointer events back to the client.

When speaking about clients and servers, it's easy to make the mistake of reversing the meaning of client and server. It helps to think about the roles from the standpoint of the application, not the user. When the client starts, it will connect to some X server to create a window. A window is a rectangular area into which the client can draw. Note that the client can ask the server to position the window at some screen location, but normally doesn't. There is a special kind of client that will handle the placement of the windows of all other clients. This client is called the &lt;span class=&quot;textbf&quot;&gt;window manager&lt;/span&gt;. The window manager usually draws some graphical elements around each client's window, so that the user can more easily tell the boundaries between the windows. It also handles all HID-events in the window decoration areas, implements window minimizing, closing, etc. The HID-events that occur within the client area of the window are passed to the client.

There are a lot of different window managers, but most work in similar ways. The &quot;Desktop&quot; (whatever the word means inside a computer) is normally implemented by yet another client. And yes, the taskbar that you might see is yet another client. Even the screen saver is a separate client. In the real world there are some exceptions to the above arrangement, but having separate clients for all the elements is the most common case.

The protocol that clients use with the server is called X11. It is stream-based and bi-directional (for obvious reasons).

Clients can commonly connect to the server in two ways:

* By connecting to an IP address / TCP port on which the server is listening.
* By connecting locally using a UNIX domain socket. A UNIX domain socket is similar to TCP, but without the network in between, and the client will find the server using a name in the filesystem (note that this name does not correspond to a &quot;regular&quot; file).

How does the client know where to connect? By using an environmental variable called &lt;code&gt;DISPLAY&lt;/code&gt;. There are only a handful of applications that know how to implement the X11-protocol, because it's quite complicated to encode and decode. Normally clients will use a library called &lt;code&gt;Xlib&lt;/code&gt;, which was developed for this purpose. Xlib also contains the logic to read the &lt;code&gt;DISPLAY&lt;/code&gt;-variable and will get the address to connect to from the contents of the variable. It is also possible to tell the client to use a specific display via a command line parameter (&lt;code&gt;--display=&lt;/code&gt;). The parameter will be processed internally by Xlib and override the environmental variable (if any).

The content of the &lt;code&gt;DISPLAY&lt;/code&gt;-variable consists of two parts:

; '''Hostname'''
: a text field that contains a name that will go through a &lt;code&gt;gethostbyname&lt;/code&gt; library call. In practice this is most often a DNS-name or an IP-address of the server, but depending on local NSS (Name Service Switch) be something else as well. This material will assume that DNS or IP will be used.
; '''Display/Screen-pair'''
: number of the X server instance, and a number of a screen within that instance. Normally 0 is the only X server instance you have and it will number its screens starting from 0. You may also omit the screen number and 0 will be used by default.

So, for example: &lt;code&gt;DISPLAY=remote.machine.com:0.0&lt;/code&gt; would mean the first screen on the first X server running on &lt;code&gt;remote.machine.com&lt;/code&gt;. When starting an X server, you normally can tell it which screen to create and control.

Wait a moment! What about the &quot;similar to TCP but not quite&quot; UNIX domain socket? Xlib will connect using a system specific file system path when the hostname-portion is empty. You can try it out on your Linux desktop like this: type &lt;code&gt;echo $DISPLAY&lt;/code&gt; in a terminal emulator. Your graphical terminal emulator will connect to your X server knowing the &lt;code&gt;DISPLAY&lt;/code&gt;-variable. It most probably is &lt;code&gt;&lt;nowiki&gt;:0.0&lt;/nowiki&gt;&lt;/code&gt; unless you have a more complicated system (e.g., split dual-head).

To instruct an X client to connect to another X server, it's then necessary to modify the environmental variable: &lt;code&gt;export DISPLAY=:2.0&lt;/code&gt; for example. Then start your X client and it will at least try to connect to the X server specified. In the example above the server is running on the same system as the client (the hostname part is empty). Since the screen part is optional, you may also use &lt;code&gt;export DISPLAY=:2&lt;/code&gt; .

You might be wondering what all of this has to do with maemo, but you'll see in a short while when we install the environment and start testing the applications.

In the case that you skipped the intro, this is a good point to remind you that X11 is architecture independent. This means that applications running on Internet Tablets (ARM-binaries) can connect to an X server running on a x86/PC Linux (or even to an X server running on Apple OS X, Windows or other operating systems).

As a side note, the Internet Tablet has an X server as well. It runs as &lt;code&gt;&lt;nowiki&gt;:0.0&lt;/nowiki&gt;&lt;/code&gt;. It is a special version of an X server that requires less memory and has been configured to support most of the extensions used on the Linux desktop. The version on Internet Tablet is based on the &lt;code&gt;Kdrive&lt;/code&gt; version of the X.Org X server (yes, so many versions). However, your Linux desktop is running a regular X.Org server.

Also note that by default most modern Linux distributions ship with the X server not listening for network connections. They will only accept local connections through the UNIX domain socket (&lt;code&gt;/tmp/.X11-unix/X0&lt;/code&gt; where  is server screen number).

For more information on X, please see the X.Org-project pages ([http://www.x.org/ x.org]) and [http://www.rahul.net/kenton/xsites.framed.html rahul.net/kenton/xsites.framed.html]. Also, ssh can be used to tunnel X11 connections securely over networks. Please see [http://www.vanemery.com/Linux/XoverSSH/X-over-SSH2.html X Over SSH2 Tutorial] for examples.

=&lt;span class=&quot;arabic&quot;&gt;1&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;5&lt;/span&gt; Typical maemo GUI application=

We next take a look at the components making up a typical GUI application developed for maemo (starting from the bottom):

; '''C library'''
: Implements wrappers around the system calls to the kernel and a lot of other useful stuff. However, the libraries presented below also provide their own APIs to similar functions, so you should always check whether you can use them directly, and avoid doing POSIX-level and system-level calls when possible. This will make your application easier to debug and in some cases easier understand. This library is used (indirectly at least) by every application running on any Linux-based system. Not really covered in this material since most of the things that we need are in the higher-level libraries.
; '''Xlib'''
: A library that allows an application to send graphics-related commands to the X server and receive HID events from the server. Normally an application wouldn't use Xlib API directly but would instead use some easier toolkit which in turn will use Xlib. Not covered in this material other than the introduction and on a &quot;need to know&quot;-basis.
; '''GLib'''
: An utility library that provides portable types, an object oriented framework (GObject/GType), a general event mechanism (sometimes referred to as GSignal), common abstract data structure types like hash tables, linked lists, etc.
; '''GDK'''
: A library that abstracts the Xlib and provides a lot of convenience code to implement most common graphical operations. Used by an application which wants to implement drawing directly, for example in order to implement custom widgets. In theory, GDK is meant to be graphics system independent and mostly is. Complete abstraction however is not yet complete, but for us the original Xlib target will be enough. GDK Uses GLib internally.
; '''Pango'''
: A portable library designed to implement correct and flexible text layout for various cultures around the world. This is necessary to support the different ways that people read and write text, since it's not always from top-to-bottom and left-to-right. Uses GLib and GDK. Used by GTK+ for all displayed text. Covered only where necessary in this material.
; '''ATK'''
: The Accessibility ToolKit. Provides generic methods by which an application can support people with special needs with respect to using computers. Not covered in this material.
; '''GTK+'''
: A library that provides a portable set of graphical elements, graphical area layout capabilities and interaction functions for applications. Graphical elements in GTK+ are called widgets. GTK+ also supports the notion of themes, which are user switchable sets of graphics and behavior models. These are called skins in some other systems. Uses GLib, GDK, Pango and ATK.
; '''Hildon'''
: A library containing widgets and themes designed specifically for maemo. This is necessary since the screen has very high PPI (compared to &quot;PCs&quot;) and applications are sometimes controlled via a stylus. Uses all of the libraries above.
: Other support libraries of interest:
;; '''GConf'''
:: A library from the GNOME-project that allows applications to store and retrieve their settings in a consistent manner (in a way, similar to the registry in Windows). Uses GLib. Basic operations are covered in this material.
;; '''GnomeVFS'''
:: A library that provides a coherent set of file access functions and implements those functions using plug-in libraries for different kinds of files and devices. Allows the application to ignore the semantics of implementations between different kind of devices and services. By using GnomeVFS, an application doesn't need to care whether it will read a file coming from a web server (URLs are supported), or from within an compressed file archive (&lt;code&gt;.zip&lt;/code&gt;, &lt;code&gt;.rpm&lt;/code&gt;, &lt;code&gt;.tar.gz&lt;/code&gt;, etc.) or a memory card. Modeled to follow POSIX-style file and directory operations. Basic operations are covered in this material.
;; '''GDK-Pixbuf'''
:: A library that implements various graphical bitmap formats and also alpha-channeled blending operations using 32-bit pixels (RGBA). The Application Framework uses pixbufs to implement the shadows and background picture scaling when necessary. Uses GLib and GDK.
;; '''LibOSSO'''
:: A library specific to the maemo platform that allows an application to connect to D-Bus in a simple and consistent manner. Also provides an application state serialization mechanism. This mechanism can be used by an application to store its state so that it can continue from the exact point in time when user switched to another application. Useful to conserve battery life on portable devices. Only basic parts of LibOSSO are covered in this material and more advanced use is covered in &quot;maemo Platform Development&quot; material.

Whew, that was quite a list. As you can imagine, an introductory material like this cannot even try to cover all the possibilities or the API functions available in these libraries. We will try to do our best describing the bare minimum in order for you to start writing applications for maemo.

There are some caveats related to API changes between major GTK+ versions, which will be mentioned in the text, so do not go and copy-paste existing code blindly. Also this is a good place to remind you that most of the source code that you can find easily is covered by either the GPL or LGPL licenses. This material tries to stay away from legalese, but to put it bluntly, &lt;span class=&quot;textbf&quot;&gt;you cannot copy GPL-ed source code into your proprietary projects (i.e., closed source). This is against the license. GPL considers static linking as distribution (copying) too. Even linking dynamically from proprietary code against GPL-ed libraries might be interpreted as prohibited by the license!&lt;/span&gt;

Note that it is normally allowable to read and learn from GPL-ed source code. Indeed, unless you're copying line by line from existing code base, this can be an invaluable tool to learn how things are done in the &quot;real world&quot;. This is quite the opposite when reading proprietary source code as there is a risk of learning something that the code owner will consider &quot;intellectual property&quot;. If you then use this &quot;knowledge&quot; in a free or open source project, you risk polluting that project with unnecessary legalese.

As a side note, you might be interested to learn that almost all of the GNOME-libraries are released under the LGPL-license. This means that you can create proprietary software which will link into LGPL-libraries dynamically at runtime. If you however modify the LGPL-library, the modifications must be available in source form to the entities you distribute the binaries to under the original license (LGPL).

=&lt;span class=&quot;arabic&quot;&gt;1&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;6&lt;/span&gt; Battery Doesn't Last Forever!=

Low power consumption is one of main hardware design goals with mobile devices because of the limited electric charge in their power supplies. If the hardware is designed correctly, it may itself contain logic and rules to enter different power saving states. To enter these power saving states the hardware requires that there is no activity in the system, in other words, there is no task ready to be run by the OS kernel scheduling mechanism. Even if power saving functionality is implemented in the hardware, activating it might not always be possible. If the applications running on the hardware are &quot;misbehaving&quot;, then the system will be active all of the time and this makes it impossible for the power saving features to be activated at hardware level. Some of these power saving features include: changing the clock frequency dynamically, supporting multiple operating voltages and switching integrated peripherals' sleep modes.

Different parts of the hardware will require different amounts of power to run. The following pie diagram is not based on any real measurements but roughly shows how power consumption is distributed between different subsystems in a device:

&lt;div align=&quot;CENTER&quot;&gt;

{| summary=&quot;Diagram of power consumption in Mobile Devices&quot;
|+ align=&quot;BOTTOM&quot; |'''Figure 1.4:''' Diagram of power consumption in Mobile Devices
|-
|
[[Image:very-important-piechart.png|500px|Image very-important-piechart]]
|}

&lt;/div&gt;

Keep the previous diagram in mind when you consider your application's &quot;electricity needs&quot;. For example, in a GPS mapping application, the GUI interface is a graphical map with the position and other relevant information. If such display would keep the backlight active all the time, it would cause excessive power usage. In this case, it might be prudent to ask the user whether they really want to keep the backlight on, or provide a user-controllable button for switching the backlight on/off.

When designing for mobile devices, it's important that you (as the application designer) consider different approaches to problems. You should also consider system-wide power usage, i.e., how your application will change the power performance of the device. The above diagram might seem rather obvious, but it is often too tempting to start premature optimization of memory usage or code speed, and forget about power optimization. In mobile environments, all three are important.

=&lt;span class=&quot;arabic&quot;&gt;1&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;7&lt;/span&gt; maemo development resources=

maemo has its own website (at [http://maemo.org maemo.org]), which includes:

* Links to mailing lists (and their archives)
* Link to the defect tracking system (bugzilla) at [https://bugs.maemo.org bugs.maemo.org]
* White papers and tutorials
* Licenses used
* Trademark usage guidelines
* Development news
* Download information
* API references library versions used in maemo SDK
* The maemo wiki and other community supported resources (garage)

There is also an IRC channel for developers (#maemo@FreeNode). You can find people related to Scratchbox and maemo hanging there lot of times. Scratchbox also has its own channel.

Note that everything you discuss on the IRC channel and mailing lists (as well as bugs you post using bugzilla) is *public information*. You might want to ask someone whether your working environment has a policy on using public resources before using them.

=&lt;span class=&quot;arabic&quot;&gt;1&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;8&lt;/span&gt; Other programming interfaces=

Using the previously presented software library stack is not the only possibility. The platform also includes SDL (Simple DirectMedia Layer) which is a library that was originally developed by Loki Entertainment, a company that specialized in creating Linux-versions of popular commercial games. It contains most of the code necessary to write games and implement low-level graphics. SDL is not covered by this material, but you can find the API (and other) documentation at [http://www.libsdl.org/ libsdl.org] .

If you like to work with APIs that are hard to understand, you can use the Xlib-interface and implement your interactive program directly with it (not recommended for the faint hearted).

Using either SDL or Xlib is not directly supported by the environment and will lead to applications which will not conform to the &quot;look and feel&quot; common to applications designed for maemo. Such problems should be avoided so that end-users do not get confused (they would expect an uniform interface for all the applications they use). You won't be able to utilize the virtual keyboard or handwriting recognition in your application either. For some fullscreen pointer driven games this might not be a big issue, but for &quot;normal&quot; GUI applications that the user will enter data and text, it is an issue.

It is also be possible to use the [http://pymaemo.garage.maemo.org/ Python] programming language to write GUI programs (there are bindings for the Hildon toolkit as well) and there are community driven projects for using [http://maemo.rubyx.co.uk/ruby-maemo/ Ruby] and [http://live.gnome.org/Vala Vala] as well as others.</text>
    </revision>
  </page>
  <page>
    <title>Maemowiki Action Group</title>
    <id>4090</id>
    <revision>
      <id>34305</id>
      <timestamp>2010-05-12T20:06:49Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Wiki gardeners]]</comment>
      <text xml:space="preserve">#REDIRECT [[Wiki gardeners]]</text>
    </revision>
  </page>
  <page>
    <title>Mail For Exchange (MfE) Heartbeat and FAQ</title>
    <id>3381</id>
    <revision>
      <id>26407</id>
      <timestamp>2010-01-12T16:40:18Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Mail For Exchange (MfE) Heartbeat and FAQ]] moved to [[Mail for Exchange]]: Excessively long name</comment>
      <text xml:space="preserve">#REDIRECT [[Mail for Exchange]]</text>
    </revision>
  </page>
  <page>
    <title>Mail for Exchange</title>
    <id>3307</id>
    <revision>
      <id>48693</id>
      <timestamp>2012-07-07T04:54:13Z</timestamp>
      <contributor>
        <ip>178.83.230.188</ip>
      </contributor>
      <comment>/* Sync with Exchange 2003 is broken. &quot;Error in communication with Exchange Server&quot; is displayed */</comment>
      <text xml:space="preserve">''For general information on synchronizing your N900 with a mail or calendar server, please see the [[sync]] page''

This page answers questions which are commonly asked by new N900 MfE users.
It is mostly based on the analysis of the [http://talk.maemo.org/showthread.php?t=35136 MfE support thread.]     

The current version of the page addresses three versions of MfE:

* [[Maemo 5/PR1.0|PR1.0]], also known as &quot;Sales release&quot; (1.2009.42-11)
* [[Maemo 5/PR1.1|PR1.1]] (2.2009.51-1).  [http://conversations.nokia.com/2010/01/14/nokia-n900-software-update-part-2/ PR1.1 firmware update]
* [[Maemo_5/PR1.1.1|PR1.1.1]] (3.2010.02-8)

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.

If you use PR1.0 (sales release) it is strongly advised to update to PR1.1.1 
See [[Maemo_5/PR1.1.1|PR1.1.1 summary]] for additional details and update instructions. 

== Compatibility ==

=== Which server versions are supported by N900 MfE client? ===

==== PR 1.0 ====

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.]

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.

==== PR 1.1 and PR 1.1.1 ==== 

* 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.]
* Microsoft Exchange 2003.

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.

=== Which server versions are NOT supported by N900 MfE client? ===

==== PR 1.0 ====

* Microsoft Exchange 2003 is not supported.
* Microsoft Exchange 2007 without service packs is not supported.

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.]]

==== PR 1.1 and PR 1.1.1 ====

* All non-MS services, although there has been [[Sync#Synchronising with Google|reported success]] synchronizing with Google and other non-MS services.

=== Why is feature XXX present in MfE for S60 but not for the N900? ===

S60 and Maemo MfE are different implementations.

The table below tries to summarize the most important differences between S60 and Maemo MfE implementations.

{| class=&quot;wikitable&quot;
|+ Maemo and S60 MfE feature summary
|-
! Feature
! S60 status
! Maemo status
|-
| ''E-Mail''
| YES, subfolders are not synced 
| YES, subfolders are synced
|-
| ''Calendar''
| YES
| YES
|-
| ''Tasks''
| YES
| YES
|-
| ''Notes''
| ?
| NO
|-
| ''Meeting invitations replying''
| YES
| NO
|-
| ''Private appointments''
| YES
| NO
|-
| ''Corporate address book (GAL)''
| YES
| YES (*)
|-
| ''Exchange servers support''
| 2003, 2007
| 2003, 2007
|-
| ''Autodiscover''
| YES
| YES
|-
| ''Provisioning support''
|  Partly YES
|  NO
|}

(*) This feature is supported in PR1.1 and PR1.1.1 releases but not in PR1.0 (sales release).

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.

== Known issues ==

=== Provisioning ===

N900 is considered to be &quot;non provisioning device&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.

Exchange administrator can configure the server in two 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.

[http://talk.maemo.org/showpost.php?p=350081&amp;postcount=33  Post with Exchange server 2003 management console]

=== GAL support for Exchange 2003 in PR1.1 release ===

==== PR 1.1 ====

Corporate phone book support is broken for PR 1.1 release.  Update to PR1.1.1 or later releases of the software. It is broken only in PR1.1 release and only for Exchange 2003 servers (in more technical terms, for the EAS protocol 2.5).

=== SSL-related errors ===

The error message is displayed &quot;Exchange server requires secure connection or account is disabled&quot;.

This infamous error message is caused by the fact that server certificate is untrusted from Maemo MfE client point of view.

Possible root causes and workarounds:

==== Server certificate is either self-signed or signed by the non-trusted authority (root certificate is not visible in N900 &quot;Certificates&quot; application).====

In this case, the server certificate shall be added to N900 certificate storage.  Check [http://talk.maemo.org/showpost.php?p=401238&amp;postcount=171  this message] and the thread after it for additional details.

Keep in mind - self-signed certificate shall have &quot;CA&quot; field.  Otherwise, N900 certificate manager will not allow to install it.  [http://talk.maemo.org/showpost.php?p=474320&amp;postcount=871 This message] tells how to check does certificate has &quot;CA&quot; field or not.

Unfortunately, there is no way to disable certificates check at the client side in the current MfE releases (both PR1.0 and PR1.1/PR1.1.1).

==== PR1.0 ====

Disclaimer: 

''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 or later releases instead of following the advices below.''

* [http://talk.maemo.org/showpost.php?p=422732&amp;postcount=312 Another important hint about importing certificates.]
* Server certificate is valid and trusted but MfE fails to sync. Check [https://bugs.maemo.org/show_bug.cgi?id=7357 this bug.]

=== HTML Messages ===

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.

=== Sync with Exchange 2003 is broken. &quot;Error in communication with Exchange Server&quot; is displayed===

[http://talk.maemo.org/showpost.php?p=520334&amp;postcount=1152  Problem statement.] Occurs only in PR1.1 and PR1.1.1 releases of the software.

This bug is fixed in the releases of the software later than PR.1.1.1.

The workaround is [[#How can I disable the synchronization of specific folders ?|to use mfefolders application]] and disable synchronization of &quot;Deleted Items&quot; folder.

=== Sync with Google Mail / Google Calendar is broken. &quot;Error in communication with Exchange Server&quot; is displayed===
There is a work-around which works for some people, but not all: [http://talk.maemo.org/showpost.php?p=1219009&amp;postcount=1554]

== Troubleshooting ==

=== How can I check what version of the software is installed in my N900? ===

* Open &quot;Settings&quot; view
* Scroll to the &quot;General&quot; section
* Open &quot;About product&quot; applet
* Check the &quot;Version&quot; string

Versions strings versus releases: 

{| class=&quot;wikitable&quot;
|+ N900 firmware versions and releases
|-
! Version
! Release
|-
| 1.2009.42-11
| PR 1.0 (sales) 
|-
| 2.2009.51-1
| PR 1.1 
|-
| 3.2010.02-8 
| PR 1.1.1
|- 
| 10.2010.19-1 
| PR 1.2 
|}

If you do not use the latest version it is strongly advised to update to PR1.2. 
See [[Maemo 5/PR1.2|PR1.2 summary]] for additional details and update instructions.

===  How can I check what versions of EAS protocol are supported by my server? ===   

# 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?]]
# Grep (search) for &quot;MS-ASProtocolVersions:&quot; in the logs. It will contain the EAS protocol versions supported by your server.

=== How can I turn the logging ON or OFF? ===

Warning:

''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!''

==== Turning the logging ON ==== 

&lt;ol&gt;
&lt;li&gt;
[[Documentation/devtools/maemo5/syslog|Install syslog]] and reboot the device
&lt;/li&gt;
&lt;li&gt;
open terminal
&lt;/li&gt;
&lt;li&gt;
Execute the command:&lt;pre&gt;sudo gainroot&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Execute the command:&lt;pre&gt;cat /dev/null &gt; /var/log/syslog&lt;/pre&gt;
Why? This will just clear your current syslog file. This step should be considered optional and not recommended.
&lt;/li&gt;
&lt;li&gt;
Execute the following commands:
&lt;pre&gt;
 gconftool-2 -s --type=int /apps/activesync/AsDaemon/Syslog/MinLogLevel 0
 gconftool-2 -s --type=int /apps/activesync/modest/Syslog/MinLogLevel 0
 gconftool-2 -s --type=int /apps/activesync/AsProvider/Syslog/MinLogLevel 0
 gconftool-2 -s --type=int /apps/activesync/AsBackup/Syslog/MinLogLevel 0
 gconftool-2 -s --type=int /apps/activesync/asapplet/Syslog/MinLogLevel 0
 gconftool-2 -s --type=int /apps/activesync/AsStatusApplet/Syslog/MinLogLevel 0
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Reboot the device
&lt;/li&gt;
&lt;li&gt;
Initiate the synchronization session
&lt;/li&gt;
&lt;/ol&gt;

&lt;code&gt;/var/log/syslog&lt;/code&gt; will contain the logs. In order to filter only activesync-specific logs the following command can be used:

 grep activesync /var/log/syslog

In order to copy the activesync log to your computer follow the steps below:

# Make sure your N900 is not connected to any other device (including your desktop computer) through USB
# Open xterm (if it is not opened yet)
# Issue the command:&lt;pre&gt;sudo gainroot&lt;/pre&gt;(if it was not issued yet)
# Issue the command:&lt;pre&gt;grep activesync /var/log/syslog &gt;  /home/user/MyDocs/activesync.log&lt;/pre&gt;
# Close xterm
# Connect your N900 to the computer through USB
# Wait while flash drive(s) will appear in your computer
# Find activesync.log in one of the disk drives
# Copy it to your computer
# Remove the file from N900
# (Safely) disconnect N900 from the computer

==== Turning the logging OFF ==== 
 
In order to turn the logs OFF, execute the following commands from xterm:

&lt;pre&gt;
gconftool-2 -u /apps/activesync/AsDaemon/Syslog/MinLogLevel
gconftool-2 -u /apps/activesync/modest/Syslog/MinLogLevel
gconftool-2 -u /apps/activesync/AsProvider/Syslog/MinLogLevel
gconftool-2 -u /apps/activesync/AsBackup/Syslog/MinLogLevel
gconftool-2 -u /apps/activesync/asapplet/Syslog/MinLogLevel
gconftool-2 -u /apps/activesync/AsStatusApplet/Syslog/MinLogLevel
&lt;/pre&gt;

After device reboot the logs will not be collected.

==== Extended logging ==== 

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:

 $ ps ax | grep as-daemon

This command will produce output like this:

 1503 user 25756 S /usr/sbin/as-daemon -D --pidfile=/var/lock/as-daemon

where 1503 is the &lt;pid&gt; value needed for the next command. The next command is kill -USR2 &lt;pid&gt;, so for this case, it is:

 $ kill -USR2 1503

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 &lt;pid&gt; command again. 

Warning:

''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!''

=== Pre-setting EAS protocol to be used on sync/ disable auto-negotiation ===

In certain scenarios it might be useful to disable MfE'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). Before forcing MfE to use a specific protocol version make sure it is supported on the server-side.

To force MfE to use a particular protocol follow these steps:

&lt;ol&gt;
&lt;li&gt;
Start MfE configuration wizard entering the credentials on the first page and press &quot;next&quot;. Do not enter the server address on page 2 yet!
&lt;/li&gt;
&lt;li&gt;
Open xterm and execute:&lt;pre&gt;sudo gainroot&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Execute the following commands:
&lt;pre&gt;
gconftool-2 -s --type=string /apps/activesync/ActiveSyncAccount1/use_version 2.5
gconftool-2 -s --type=string /apps/activesync/ActiveSyncAccount1Temp/use_version 2.5
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Now continue MfE setup wizard and enter server address. Click next and follow the procedure to finish the wizard.
&lt;/li&gt;
&lt;/ol&gt;

To check whether your changes have succesfully been submitted make sure you have [[Documentation/devtools/maemo5/syslog|syslog]] installed and type in xterm:

 sudo gainroot tail -f /var/log/syslog | grep &quot;Created factory&quot;

There won't be a output right away but when

* credentials are verified
* first sync started
* Wizard setup completed

you should be able to see *Created factory for version 2.5* on the terminal. Pressing Ctrl+C will bring you back to the shell.

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.

Of course the above described way will also let you set EAS 12.0 or 12.1 as default protocols. Simply change the values of &lt;code&gt;use_version&lt;/code&gt; in the respective gconftool commands.

=== Debugging possible certificate errors on self-signed certificates ===

You might experience an error message like &quot;Either exchange server requires a secure connection or your account is disabled&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.

A quick way to check whether your certificate info gets rosolved properly by the maemo OS is a cli-tool called &quot;cmcli&quot;.

Note: This is a system-wide certificate check - not a MfE-specific issue!

Please open terminal and type:

 cmcli -T common-ca -v &lt;your-server-dns-name-or-ip-address&gt;:&lt;port-number&gt;

to check with one of the 118 pre-installed certificate authorities or:

 cmcli -t ssl-ca -v &lt;your-server-dns-name-or-ip-address&gt;:&lt;port-number&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:

 cmcli -T common-ca -t ssl-ca -v &lt;your-server-dns-name-or-ip-address&gt;:&lt;port-number&gt;

The missing tags have to be replaced with your personal server-address and respective port number (mostly 443 on SSL connections).

For instance: cmcli -T common-ca -v localhost:443

The output should read something like this:
     0115e5345e4dd64855ed1e3d44060be25f26c2e6 nixu-jum
 trust chain(1):
   b5567d6c9eef05f07966d98eb2a85716bff4e80d Maemosec test CA
     Verified OK

or

     0115e5345e4dd64855ed1e3d44060be25f26c2e6 nixu-jum
 Verification failed: self signed certificate

depending whether the verification succeeds or not.

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:

 cmcli -T common-ca -sv &lt;your-servers-dns-name-or-ip-address&gt;:&lt;port-number&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

 openssl x509 -text -in &lt;certificate-file&gt;

== Miscellaneous ==

=== How can I use my corporate address book (GAL) ? ===

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.

It is possible to search for a contact in your corporate address book using &quot;Contacts&quot; application.

Follow these steps to add the contact from your corporate address book to the N900 address book:

# Open &quot;Contacts&quot; application
# Select &quot;Get Contacts&quot; option from the menu
# Choose &quot;Import Mail Exch. contacts&quot; option 
## Type parts of the first or last name
## Press &quot;Search&quot;
## Select contact from the results. (If the results are not sufficient press outside the window to return in step 1)
## Press &quot;Import&quot;

=== How can I disable the synchronization of specific folders ? ===

Nokia does not provide the software for selecting the server folders which are synced to device. However, community does.  Use [http://mfefolders.garage.maemo.org/ mfefolders] application to disable/enable synchronization of specific folders and assign them the names you wish to see in N900 mail client!

=== How do I synchronize mail for exchange from the command line ? ===

Open xterminal and type the following dbus command (note, I am not sure of the difference between &lt;code&gt;fullSync&lt;/code&gt; and &lt;code&gt;sync&lt;/code&gt;. I thought sync was safer so that is what I used and it seemed to work.):

 dbus-send --print-reply --type=method_call --session --dest=com.nokia.asdbus /com/nokia/asdbus com.nokia.asdbus.&lt;option&gt;

&lt;option&gt; can be:
* &lt;code&gt;fullSync&lt;/code&gt;,
* &lt;code&gt;sync&lt;/code&gt;,
* &lt;code&gt;syncEmail&lt;/code&gt; or
* &lt;code&gt;stopSync&lt;/code&gt;

[[Category:HowTo]]
[[Category:Software]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Mail for Exchange n9</title>
    <id>5028</id>
    <revision>
      <id>45493</id>
      <timestamp>2011-10-06T08:08:15Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <comment>[[Mail for Exchange n9]] moved to [[Email and Mail for Exchange n9]]</comment>
      <text xml:space="preserve">#REDIRECT [[Email and Mail for Exchange n9]]</text>
    </revision>
  </page>
  <page>
    <title>Main Page</title>
    <id>1</id>
    <revision>
      <id>48485</id>
      <timestamp>2012-06-16T13:39:59Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <minor/>
      <comment>undo last bug-triggering &quot;edit&quot; and hope to receive changenotice mail</comment>
      <text xml:space="preserve">&lt;div style=&quot;font-size: 1em;&quot;&gt;
&lt;!-- ==== &quot;Welcome to maemo.org Wiki&quot; and article count ======== --&gt;
Welcome to the Maemo Wiki, currently featuring [[Special:Statistics|{{NUMBEROFARTICLES}}]] articles. Read [[Special:Newpages|new]] ones, 
browse the [[Special:Categories|categories]], follow the [http://wiki.maemo.org/index.php?title=Special%3ACategoryTree&amp;target=content&amp;mode=categories&amp;dotree=Show+Tree category tree], jump to a [[Special:Random|random page]] or select your favorite topic from the list below.

&lt;div class=&quot;sections&quot;&gt;
&lt;div class=&quot;column&quot;&gt;
&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Hot Topics&lt;/h2&gt;
&lt;ul class=&quot;document&quot;&gt;{{Hot Topics}}
&lt;/ul&gt;&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
==[[:Category:Community|Our Community]]==
&lt;ul class=&quot;help&quot;&gt;{{Community}}
&lt;/ul&gt;&lt;h4&gt;Upcoming [[Events]]&lt;/h4&gt;
&lt;ul class=&quot;document&quot;&gt;{{Events}}
&lt;span style=&quot;font-size: 0.9em; margin-left: 3em;&quot;&gt;&lt;em&gt;{{More topics|Community|community}}&lt;/em&gt;&lt;/span&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;column&quot;&gt;
&lt;div class=&quot;section&quot;&gt;
&lt;!--&gt;Audience specific topics&lt;--&gt;
==[[:Category:Beginners|Beginner]]==
&lt;ul class=&quot;help&quot;&gt;{{Basics}}
&lt;/ul&gt;&lt;span style=&quot;font-size: 0.9em; margin-left: 3em;&quot;&gt;&lt;em&gt;{{More topics|Beginners|beginner}}&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
==[[:Category:Power users|Power User]]==
&lt;ul class=&quot;help&quot;&gt;{{Power users}}
&lt;/ul&gt;&lt;span style=&quot;font-size: 0.9em; margin-left: 3em;&quot;&gt;&lt;em&gt;{{More topics|Power users|power user}}&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
==[[:Category:Development|Developer]]==
&lt;ul class=&quot;document&quot;&gt;{{Development}}
&lt;/ul&gt;&lt;span style=&quot;font-size: 0.9em; margin-left: 3em;&quot;&gt;&lt;em&gt;{{More topics|Development|developer}}&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;


__NOEDITSECTION__ &lt;!-- disables the [edit] links from being shown --&gt;
__NOTOC__ &lt;!-- disable the table of contents from ever being shown --&gt;

[[Category:Content]]</text>
    </revision>
  </page>
  <page>
    <title>Main page</title>
    <id>4562</id>
    <revision>
      <id>40315</id>
      <timestamp>2010-11-26T08:54:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Main page]]&quot;: prevent some spam [edit=sysop:move=sysop]</comment>
      <text xml:space="preserve">#REDIRECT [[Main Page]]</text>
    </revision>
  </page>
  <page>
    <title>Mainstream Linux Alignment</title>
    <id>1287</id>
    <revision>
      <id>15495</id>
      <timestamp>2009-07-13T13:02:16Z</timestamp>
      <contributor>
        <ip>82.208.42.129</ip>
      </contributor>
      <comment>/* freedesktop.org */ added bug 4766</comment>
      <text xml:space="preserve">Let's list here bugs and enhancement requests relating to the Maemo architecture and its proximity/compatibility with mainstream linux standards. The progress on these tasks should bring easier life for application developers and also to platform developers willing to close ties with Debian, Ubuntu, etc.

Useful information:
* [http://maemo.org/maemo_release_documentation/maemo4.1.x/node6.html#SECTION00660000000000000000 Maemo Compared to Desktop Linux Distributions]
* [http://maemo.org/maemo_release_documentation/maemo4.1.x/node6.html#SECTION00635100000000000000 Essential Packages and Delta to Standard Debian Systems]

Proposals:

* [[Maemo_Reconstructed]]

== General upstream ==
{{#bugzilla:id=3826,3827
  |columns=id,priority,severity,product,status,resolution,summary
}}

== Debian / GNU / Linux ==
{{#bugzilla:id=752,1621,2896,3825,3951,3989,4008,4078,4248
  |columns=id,priority,severity,product,status,resolution,summary
}}

== freedesktop.org ==
{{#bugzilla:id=657,1303,3817,3818,3828,3822,3913,4766
  |columns=id,priority,severity,product,status,resolution,summary
}}

== GTK+ ==
{{#bugzilla:id=1464
  |columns=id,priority,severity,product,status,resolution,summary
}}

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Make your battery last longer</title>
    <id>1878</id>
    <revision>
      <id>50173</id>
      <timestamp>2012-10-14T13:54:10Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>/* Switch off Bluetooth when you don't need it */ edited weird instructions about &quot;doubleclicking&quot; etc</comment>
      <text xml:space="preserve">The battery life on modern portable gadgets is much lower than ten or twenty years ago, mainly because electronics technology is developing much more quickly than battery technology. Batteries are struggling to keep up with all the amazing new things that portable gadgets are capable of.

With this in mind, it's important to use a portable device's battery as efficiently as possible. This tutorial will look at some simple ways to do this on the Nokia tablets. The point is to put the most effective measures first but it can't be guaranteed that it compares straight to reality. There are too many scenarios for every aspect to keep the order always 110% right.

Before reading on, have a look at the N900 User Guide on your tablet, and read the section '''Prolong battery life''' in the chapter '''Find help'''.

== Do not put your device in a pouch with magnetic clasp ==

This is a rather odd problem, but is actually quite common. It is alone sufficient to spend a fully charged battery in less than a day.

The keyboard slide is detected by a magnetic coupling and nearby magnets may confuse this function. So if you put your device in a pouch or jacket pocket that uses a magnetic clasp, the device might believe that the keyboard is opened and closed all the time.

== Don't have 3G enabled unnecessarily ==

This applies more to the [[Nokia N900|N900]], but if you use a 3G-enabled cell phone to connect your older tablet to the web, this tip should help your phones' battery life.

Even when you would have a good 3G coverage, turning the connection to GSM only will help battery life immensely. Your connection speed will slow down if you do it, but not as bad as you would imagine. The phone will use EDGE speed (2.5G) which is 384 kbps at theoretical maximum. This is in many situations sufficient. 

Turning off 3G will help your battery life even more under spotty or non-existent 3G coverage when the phone doesn't have to search for the 3G connection all the time.

There is a [http://maemo.org/packages/view/3g2g-mode-selection-applet/ small status bar applet] that lets you switch easily between full 3G and GSM only. Using such an app lets you mostly have the phone in GSM mode for background tasks, and switch to 3G only when you actively use the internet.

Many users find that they have about 50% battery left after a full day's worth of usage if they only use 3G when really needed (and don't have the magnetic clasp problem).

== Turn down the screen brightness as low as you can cope with ==

One of the major sources of battery drain on a portable device is the screen. If it's very large and very bright, it will use up a lot of battery life when it's lit.

One of the best things you can do to save battery life is to turn down the brightness on your tablet's screen to the lowest level that you feel comfortable with. The lower it is, the more battery life you will save. Just click on the screen brightness icon (the icon that looks like a sun in the status bar at the top) and adjust the brightness on the sliding scale.

For Maemo 5, you can use the [http://maemo.org/downloads/product/Maemo5/simple-brightness-applet/ Simple Brightness Applet] (available in Extras) to have easy access to the brightness controls.

== Make the screen dim and switch off as soon as possible when not in use ==

Like all portable gadgets, Nokia's internet tablets have an automatic dimming and shut down period on their screens. If you don't use a tablet within a certain time period, the screen will dim, and if it continues to be unused the screen will switch off. You can make it switch back on at any time just by touching the screen.

To get the maximum battery life, set the time-out period for screen dimming and shut down to the shortest possible time. To do this click on the brightness icon in the status bar (the one that looks like a sun at the top of the screen), click on &quot;Display Settings&quot;, set Brightness Period to 10 seconds and Switch Off Display to 30 seconds. Click &quot;OK&quot;.

If you get annoyed by how quickly the screen dims or shuts off, you can always increase the Brightness Period and Switch Off Display time until you feel more comfortable. However, this will use up more battery life than the minimum times.

[http://maemo.org/downloads/product/Maemo5/simple-brightness-applet/ Simple Brightness Applet] has a very convenient way to keep display on without timeout: just click and hold the rectangle &quot;screen&quot; icon on left side of slider

== Switch off Bluetooth when you don't need it ==

The Bluetooth wireless system is intended to let the tablet easily connect to nearby accessories or computers, but if you're not using the connection then it's worth switching it off to avoid it needlessly wasting battery life.

Bluetooth doesn't use much power in standby mode (some 2..3mA) so this may not have much of an impact on battery life, but if you genuinely don't need it then there's no point having it switched on. Tests proved that BT doesn't use any significant power on N900 when set to active+'''invisible'''.

To switch off Bluetooth just click on the status bar at the top (or open the system-settings dialog), click on &quot;Bluetooth Settings&quot;, and tick or untick the box marked &quot;Bluetooth On&quot;. Click &quot;OK&quot; and the Bluetooth will switch on/off accordingly.
The very next checkbox in the same dialog is for selecting visibility status of BT. Setting it to &quot;off&quot; (aka &quot;not visible&quot;) will make BT not send own name all the time, thus saving part of the above mentioned power consumption of BT.

== Switch off Wi-Fi when you don't need it ==

Again, like Bluetooth the Wi-Fi wireless standard doesn't actually use that much power when it's in standby mode (but there are still some nasty bugs in the wifi subsystem that can drain your battery in an hour, like https://bugs.maemo.org/show_bug.cgi?id=6615), but if you really don't need the Wi-Fi connection then there's no point having it switched on.

To disconnect Wi-Fi, just click on the connection icon in the status bar at the top (it looks like a small ball with curved lines radiating upwards) and then click on &quot;Disconnect&quot;. Click &quot;OK&quot; and the Wi-Fi connection will be disconnected.

To re-connect, click on the same icon, then &quot;Select Connection&quot;, then click on the connection you were using before and press &quot;Connect&quot;.

It's worth noticing that the WLAN chip is using considerable amounts of battery energy during scanning for APs. This is where the setting for scan period becomes relevant: set it to a period as long as acceptable for your usage patterns. A scan may easily take longer than 60 seconds, during which the WLAN chip is consuming full power, so for shortest &quot;search interval&quot; setting in &quot;settings -&gt; internet connections&quot;  of 5 minutes you have a so called duty cycle of 60/300 = 20%. Do your math for search interval = 30 minutes.

== Turn on Wifi power saving mode ==

{{main|Wifi power saving mode}}

The Nokia tablets support power saving mode (PSM) for wifi. You can find out more about how to turn it on, and the positive and possible negative consequences in [[Wifi power saving mode|this page]].

== Don't switch off the tablet! ==

Yes, that's right, if you want to save battery life then do NOT switch off the tablet when you've finished using it.

You can charge it while it's switched on, and if you want to carry it you can lock the touchscreen and keys so it doesn't accidentally activate anything while in your pocket or bag.

Leaving the tablet on to save power might sound absolutely insane, but it does work apparently, and there are good reasons why it works.

When you switch on any modern computing device such as a PC, smartphone or pocket computer, it has to go through a complex and intensive process of getting the device ready for use. This takes a lot of effort by the computer, and anyone who has booted up a PC knows how long they have to wait between powering up and actually getting to use it. This effort uses a lot more power than simply staying switched on doing nothing.

If you switch off your tablet and then switch it on a few hours later, this apparently uses up more battery life than just leaving the tablet switched on for several days. For this reason, it saves energy if you leave your tablet switched on all the time, just like you'd leave a mobile phone switched on all the time.

== Use Offline Mode (aka Flight Mode) ==
'''N.B.''' Calls and texts cannot be made/sent or received in these modes, so ensure call-forwarding is active before enabling either flight- or tablet- mode.

===Offline (flight) mode===
A quick and easy way to shut down the tablet's radio transmissions (ie. Bluetooth and Wi-Fi) is to put the tablet into offline mode, which is the same thing as flight mode.

To do this, press the power button briefly so that a menu appears, click on &quot;Offline Mode&quot;, click on &quot;OK&quot; as necessary, and you will be in offline mode.

To get back to normal mode, just press the power button briefly again, click on &quot;Normal Mode&quot; from the menu, click on &quot;OK&quot; as necessary, and you will be back in normal mode.

The reason this is also known as flight mode is because many airlines have a ban on passengers using devices which transmit radio signals (including phone signals, bluetooth and wi-fi). If a device is in flight mode it does not transmit any radio signals, so many airlines will allow its use in this mode.

This is useful also at night if you don't want to be disturbed by messages etc with N900. Just put it to flight mode when going to sleep and online when you wake up. No need to be afraid that silent mode has the alarm too silent etc.

===Tablet mode===
Traditionally, tablet computers have no GSM/GPRS/EDGE/UTMS/etc. connection but can connect to wifi, bluetooth and hardware connections. Tablet-mode replicates this by preventing phone functionality and preserving access to other connections. Therefore, tablet-mode reduces battery consumption compared with &quot;normal&quot; mode, yet allows some connectivity. As such, it is a useful alternative to the complete blackout of flight-mode, even though it is not quite as power-conserving.

For the N900 (Maemo5), Cellular Modem Control Buttons [http://maemo.org/downloads/product/Maemo5/cell-modem-ui/ V0.5.1-1] is available in -extras; its package name is &quot;cell-modem-ui&quot;. This software allows tablet-mode to be en/dis -abled in the same way as flight-mode: from the power button menu.

== Replace your SIM card ==

As it turns out, an old SIM card will have a lot of scratches on its pins. Some of them may even be bent inwards or otherwise damaged.The SIM cards are not designed to last more than couple of years and they really should not be taken out of the phone frequently as this damages the pins.

Long story short, old SIM cards &quot;leak&quot; power due to bad contacts and increased internal resistance. In addition, other users have mentioned that depending on their age, different SIM cards operate in different voltages (5V, 3V, 1.8V). The N900 has support for legacy SIM cards which means older SIMs will require more power.

The operator probably will give you a new sim for free if you ask kindly.

== Shut down any applications you're not using, and be careful when using unofficial applications ==

If you have an application running in the background, this uses up battery life. If you're not using an app, it's a good idea to shut it down (or &quot;kill&quot; it) using the task icon in the bottom left hand corner of the screen: just click on it and click on the X next to whichever app you want to shut down.

Some applications, especially unofficial ones, may use up far more battery life than they're supposed to because they're badly programmed. If you find that your tablet's battery life has suddenly turned to mush since you installed an application even though you don't use it very much, bad programming in the application may well be to blame. The easiest way to check if this is the case is to remove the application and see if the battery life improves.

Most applications work fine and don't mess around with battery life, but some do, and it's this minority that you have to watch out for. One pretty notorious 'candidate' is skype!

== Adjust refresh rates for apps that fetch data from internet ==

This appliese to every app that has a setting for refresh rate. Do you really need to have every time max 29 minute old weather forecasts or could you cope with 2 hours old data? What about fetching email every 15 minutes, what if you would get mail once in a hour? And one can always manually poll the mailbox when needed.

== Remove Widgets from desktop ==

It probably isn't very great idea but if you need to really optimize battery life, you should remove every widget.

But every time a widget refreshes it's display, it uses the processor and consumes battery.

== Trim mailbox ==

If your mailbox has 50 folders, it will slow the fetching and therefore consume much more battery.

== Know how to spare batteries ==

The batteries wear out eventually. To increase using time and see some tips when buying new batteries, look through [[batteries]] article first. It has a lot of useful information. Also, charge up when you have the chance.

If you really need to stay out long with your device without a chance to charge, invest in a spare battery. These are even available with standalone chargers on eBay, so you can charge the spare battery while using your device with the other battery.

== Check your profile settings ==

Do you really need your phone to vibrate and play a sound as loud as possible when an email is received? Or could the notification light do the trick fully?

This is also very minimal amount of battery drainage but still worth considering.

== Observe your usage ==

Some of these techniques are more efficient than others, and some affect the user-experience more than others. Try out different combinations to improve your battery life, but don't compromise too much. Find the best way for your own usage and keep your device usable!

There are good apps to help you keep tabs on your battery usage profile like [http://maemo.org/downloads/product/Maemo5/battery-eye/ Battery-Eye] that shows a history-graph of your battery levels and has some nice usage statistics, [http://maemo.org/downloads/product/Maemo5/batterygraph/ BatteryGraph] that shows everything Battery-Eye shows and can show the state of use of your processor in each time (thus showing any leakage of processing by an undesired program), so that you can see if you really have a bad process running in background and [http://maemo.org/downloads/product/Maemo5/conky/ Conky] that (among other useful things) shows your current CPU load and the most CPU-intensive apps running at the moment. All are available from the [[Extras|Extras repository]].

== Perform power-saving actions on phone lock/unlock ==

One of the simplest uses of [[DbusScripts]] is to detect when the phone is locked or unlocked and run scripts to reduce the cpu frequency, system load, etc.

=== Suspend user processes ===

See Xagoln's post: http://talk.maemo.org/showpost.php?p=1005668&amp;postcount=1

=== Change kernel powersave bias ===

Over on the [[Overclocking]] page, Fecn describes a set of scripts to modify the [[Kernel Power]] settings on phone lock/unlock, basically to underclock the CPU (or at least, undo overclocking it) whilst the device is locked.

== Use the Kernel for Power Users ==

Not just for [[Overclocking]], the [[Kernel Power]] package helps to save battery power and makes it easy to configure CPU frequency scaling. You should be using this for power saving purposes even if you never choose to go over the stock 600 MHz.

=== Enable SmartReflex ===

[[Smartreflex]] is stable up to 900Mhz with =&gt;KP50 (recommended)
Having both VDD1 &amp; VDD2 enabled will increase your battery life.

=== Powersave bias ===

The powersave bias setting modifies the behaviour of the ondemand governor to save more power by reducing the target frequency by a specified percentage. This can be used to limit the extent to which the phone will overclock, according to user-specified criteria.

== links ==

http://wiki.maemo.org/N900_Hardware_Power_Consumption
http://wiki.maemo.org/N900_software_power_management

[[Category:Users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Making themes</title>
    <id>1104</id>
    <revision>
      <id>41655</id>
      <timestamp>2011-02-06T16:21:30Z</timestamp>
      <contributor>
        <ip>178.26.116.152</ip>
      </contributor>
      <comment>/* Extract Data File */</comment>
      <text xml:space="preserve">This tutorial is to help people make new themes. I have had several people ask me how to make new themes. Creating a theme is very easy; all you need is a image editing program like Photoshop, GIMP, Paintshop Pro, or any other. I prefer one that has Layers and other advance features but any will work. You will also need to download the theme maker from [https://garage.maemo.org/frs/?group_id=36&amp;release_id=1629 the Garage download page].

== Guide ==

=== Making a binary package ===

&lt;ol&gt;
&lt;li&gt;
''unzip'' the folder to your computer. (I keep the Theme maker folder on my desktop since that is where the program creates the theme files and it’s easy to get to).
&lt;/li&gt;
&lt;li&gt;
look into the folder there is an a file called &lt;code&gt;NuvoPearl-template.psd&lt;/code&gt; that is the file you will ''edit'' to make your new theme.  ''Open'' it up with your image editor.
&lt;/li&gt;
&lt;li&gt;
''Edit'' this file to look like what ever you want your theme to look like (I wont go into how to edit the file in this document but I normally do layers over the background image this has several advantages over just editing the image.)
&lt;/li&gt;
&lt;li&gt;
''save'' your file twice once in the &lt;code&gt;.psd&lt;/code&gt; format and once in the &lt;code&gt;.png&lt;/code&gt; format.
&lt;/li&gt;
&lt;li&gt;
Next ''Open'' '''MaemoThemeMaker.jar'''

[[Image:Thememaker1.png]]

Make the theme file.
&lt;ol&gt;
&lt;li&gt;
Enter Theme Name Max Length 9 Characters.  
&lt;/li&gt;
&lt;li&gt;
Enter Your Name or Screen Name if you wish to use that instead.
&lt;/li&gt;
&lt;li&gt;
Select Theme Background File.
&lt;/li&gt;
&lt;li&gt;
Select Theme Source File(Select the .png formatted file.)
&lt;/li&gt;
&lt;li&gt;
Layout for Theme is Chinook (Still works for Diablo)
&lt;/li&gt;
&lt;li&gt;
Theme Version ( I normally start with 0.1)
&lt;/li&gt;
&lt;li&gt;
Top Bar Height need to be at least 45 pixels but I always do 60 so the Top bar is always the same size since home view will always be 60.)
&lt;/li&gt;
&lt;li&gt;
I normally go with 12 or higher for system font.
&lt;/li&gt;
&lt;li&gt;
I notice anything over 20 and things start to get misshaped do to font size.
&lt;/li&gt;
&lt;li&gt;
I normally go with 12 or so on Title font also.
&lt;/li&gt;
&lt;li&gt;
I don’t use this but it just makes your borders smaller.
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
''Click'' '''Build Theme Tab''' then '''Build Theme!''' 

[[Image:Thememaker2.png]]

Once Progress bar hits 100% (sometimes I get a popup saying its done sometimes I don’t) you will find your theme files in the ThemeMaker Folder you unzip earlier.
&lt;/li&gt;
&lt;li&gt;
''Upload'' that file to your Tablet or Web and ''Install''.  Then share with everyone else.
&lt;/li&gt;
&lt;/ol&gt;

=== Making a source package ===

==== Prerequisites ====

*7zip
*Filezilla
*Script to build source deb

Download and Install to (N8x0 tablet):
*Py2deb
*Gainroot
*ssh server

==== Extract Data File ====

# Now right click on your .deb file &gt; 7zip &gt; Extract Here. That will give you two files: &lt;code&gt;control.tar&lt;/code&gt; and &lt;code&gt;data.tar&lt;/code&gt;.
# Right Click on &lt;code&gt;data.tar.gz&lt;/code&gt; &gt; 7zip &gt; Extract Here. That will give you &lt;code&gt;data.tar&lt;/code&gt;
# Right Click on &lt;code&gt;data.tar&lt;/code&gt; &gt; 7zip &gt; Extract Here. That will give you a folder called &lt;code&gt;usr&lt;/code&gt;
# Now Create a new folder called &lt;code&gt;src&lt;/code&gt; and move folder &lt;code&gt;usr&lt;/code&gt; into that folder.
# Next edit the py2deb script you downloaded earlier
# Upload source data to tablet
# Connect to tablet using filezilla
# Create folder called &lt;code&gt;build&lt;/code&gt; in &lt;code&gt;MyDocs&lt;/code&gt; Folder
# Upload &lt;code&gt;src&lt;/code&gt; folder and &lt;code&gt;py2deb&lt;/code&gt; script to build folder.

==== Build Source ====

&lt;ol&gt;
&lt;li&gt;
Open xterm on tablet
&lt;/li&gt;
&lt;li&gt;
Type the following commands in xterm:

&lt;pre&gt;
sudo gainroot
cd /home/user/MyDocs/build
python build_myapp.py
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Follow the instructions given in xterm
&lt;/li&gt;
&lt;li&gt;
Refresh view on filezilla &gt; View &gt; Refresh
&lt;/li&gt;
&lt;/ol&gt;

==== Upload Source to extras-devel ====

* Download &lt;code&gt;themename.changes&lt;/code&gt;, &lt;code&gt;themename.dsc&lt;/code&gt;, and &lt;code&gt;themename.tar.gz&lt;/code&gt; files
* Go to the [https://garage.maemo.org/extras-assistant/index.phpGarage Extras Assistant]
* Login and follow steps to upload files an add files to builder queue.
* Wait about 30 minutes then your files will be on [[extras-devel]].

== Further information ==

* [http://talk.maemo.org/showthread.php?p=339928#post339928 How to - Build a source package and upload os2008 themes to extras-devel]

[[Category:HowTo]]
[[Category:Power users]]
[[Category:Themes]]</text>
    </revision>
  </page>
  <page>
    <title>Mame</title>
    <id>3503</id>
    <revision>
      <id>43348</id>
      <timestamp>2011-05-06T00:10:39Z</timestamp>
      <contributor>
        <username>samipower</username>
        <id>3771</id>
      </contributor>
      <comment>/* Playable */</comment>
      <text xml:space="preserve">SDLMAME is the [http://www.libsdl.org/ Simple Directmedia Layer] [[:wikipedia:Porting|port]] of the [http://mamedev.org/ Multiple Arcade Machine Emulator]. MAME has the ambitious goal to make it possible to archive all arcade machines by creating working hardware emulators to host all the the game code, or ROMs, that these machines employ.

==Project Status==

The SDL variant of mainline, modern MAME is currently being ported to [[Open development/Maemo roadmap/Fremantle|Maemo 5]]. For MAME for earlier Maemo versions, see [http://maemo.org/downloads/product/OS2008/xmame/ XMAME]. At this point, MAME is only available in [[Extras-devel]], due to its incomplete state. For example, it might occasionally lock up your phone. There's no ETA on a completed version due to the huge scope of the project.

See [http://talk.maemo.org/showthread.php?t=42824 the Talk thread] for discussion of the progress. Also, you can help out a lot by designing keymaps and other settings for your favorite ROMs and sharing them. For example, portrait mode via rotation (in the settings, push the volume control) is available for games that orient that way, but special consideration of controls are required. Doing the footwork for this kind of thing will greatly help out because the maintainer has neither the time nor the inclination to do this for all ROMs.

Available tools are the settings in MAME and the settings in Accelemymote, which controls the accelerometer input as joystick events.

==ROM Directory==

ROMS go into any of the following folders:
* &lt;code&gt;/home/user/MyDocs/roms&lt;/code&gt; (This is roms in N900 when mounted via USB mass storage)
* &lt;code&gt;/home/user/roms&lt;/code&gt;
* &lt;code&gt;/media/mmc1/roms&lt;/code&gt; (a roms directory on your microSD card)

==ROM Status==

Remember, for the sake of organization:
# Add games alphabetically and in the appropriate category. 
# Make sure a game doesn't already exist in a different category.
## If a game is already in the list and in the same category as you would put it, make it '''bold''' by adding triple single quotes on either side of the name to indicate confirmation by a second tester.
## If the game is in a different category than you have it, move it to the Mixed Reviews list and indicate next to it the two conflicting experiences. 
## If it's already in the Mixed Reviews list and you confirm one of the previous reviews, move it to that list.


Thanks for your help maintaining this list!

===Playable===
''These are games that seem identical to the arcade experience.''

* 1943 - 95% speed, Sound fair.
* Aerofighters
* Aliens
* '''Arkanoid'''
* Astro blaster - working / good - 100% speed
* Astro Force
* '''Atari Tetris''' (very minor sound crackle)
* Aurail
* Black Tiger (blktiger1, I couldn't run the original rom)
* Block
* Block Out (blockout)
* '''Blood Brothers (bloodbro)'''
* '''Bomb Jack'''
* '''Bubble Bobble'''
* Burnin rubber - working / good - 100% speed
* Cabal - working / good - 94% speed (very minor sound crackle)
* Cameltry
* Carnival - working / good - 100% speed (very minor dip in speed now &amp; again)
* Centipede - working / good
* Commando - working / good - 99% speed
* '''Dig Dug'''
* DonDonPachi
* Dragon buster - working / good - 99% speed
* Exerion (exerion)
* Gaplus
* Galaga
* '''Ghosts'n Goblins (gng)'''
* Gorf - working / good - 98% speed (works great it just needs portrait mode)
* Hyper sports - working / good - 100% speed
* Jungle King
* '''Mr Do'''
* Pacman
* '''Pacland'''
* Pang (pang)
* Rainbow islands - working . good - 91% speed (the odd stutter but playable)
* Rygar (rygar)
* Side Pocket
* Sky kid - working / good - 99% speed
* '''Tehkan World Cup (tehkanwc)''' - working / good - 100% (very very minor sound crackle)
* Snow Bros (snowbros)
* Track &amp; field - working / good - 100% speed
* '''Wonderboy'''
* Wonderboy in monster land - working / good - 99% speed (very very slight sound crackle)
* Vulgus
* '''Zaxxon'''

------------------------------------------------------------------------

'''MAME 0.138 working games with n900 850cpu/450dsp or higher //by samipower//
26-12-2010'''

*GAMES                  SPEED 

*alien vs predator       1OO
*asterix (EAD)            75                   
*boble boble (bublbol)   100
*bonanza bros           80-85
*blood bros              100
*cadilacs dinosaurs      100
*caveman ninja           100
*double dragon 2          70
*golden axe revenge...    50
*golden axe               90 (goldnaxe ,set6,us)
*joe mac returns         100
*king of fighter          90  run neogeo-versions-with bios files into game
*metal slug             80-85  with neogeo bios files into game
*metal slug x           75-80  with neogeo bios files into game
*metal slug 5           75-95  with neogeo bios files //differents zone games
*metal slug 4           85-90  with neogeo bios files into game
*neo turf masters       70-75  with neogeo bios files into game
*neobomberman           95-100 with neogeo bios files into game
*paclan                  100
*pacman plus             100
*pang3                   100
*super pang              100
*puzle boble 4 (2.040)    50
*puzle boble (pboble)    100  japan, 180kb
*punisher                100
*rampage world 1.3       35-40
*real but special         80  with neogeo bios files into game
*robocop                  100
*samurai showdown 5       80  with neogeo bios files into game
*sengoku 3              90-95 with neogeo bios files into game
*shadow dancer          90-95
*simpsons                100
*snow bros               100
*soul calibur             12
*sunset riders eac 4p     90
*tekken 2.b                7 
*turtle in time           65
*vendetta                 95
*ultraman                100
*versus net soccer       16-18
*wonder boy 3             90
*world heroes perfect     75  with neogeo bios files into game
*windjammers             100
*xmen children of atom   100

*this speed are playing with n900 keyboard 
*playing with ps3 bluetoth game pad , games run about 15% more slow
*playing with usb gamepad (hen beta+kernel46 neccesary for it) more slow
*playing with two players , with usb gamepad and ps3 gamepad , n900 950mhz and full battery, 2hours and little(about 15 min) and battery low-nothing.

===Problematic===

''These are games that run significantly below 100% or have other problems that make them less than ideal for playing.''

* After burner - working / very slow - 29% speed (sound crackle)
* After burner 2 - working / very slow - 27% speed (sound crackle)
* Arkanoid 2 Revenge of Doh (arkanoid2) - Very slow 45%
* Bad dudes vs dragon ninja - working / ok/jerky - 73% speed (sound crackle)
* Chase hq - working / jerky - 42% speed (some sound crackle)
* Continental circus - working / jerky - 46% speed (sound crackle)
* Double Dragon (ddragon) --&gt; Very slow 50%. Can't start game when using same key for coin/start.
* Dungeons &amp; Dragons Tower of Doom (ddtod) --&gt; Slow 65%
* Empire strikes back - working / jerky - 50% speed(sound crackle &amp; dark vector grafix)
* Final Fight --&gt; Freezes N900 after 10-15 minutes of gameplay (reboot needed)
* Galaga 88
* Galaxian
* '''Gauntlet''' --&gt; Some audio distortion
* Ghouls n ghosts - working / jerky - 77% speed (some sound crackle)
* Golden Axe (goldnaxe) --&gt; Slow 67%
* Golden Axe 2 --&gt; somewhat slow but runs
* Marble madness - working / slow/jerky - 61% speed (sound crackle)
* Megatech (small selection of megadrive and sms games) - working / jerky and slow - 32% speed (sound crackle and small screen due to megatech layout)
* Metal Slug X - working / jerky - 36% speed (sound crackle)
* Moonwalker - working / jerky and slow - 53% speed (sound crackle)
* Nemesis - working / jerky - 70% speed (some sound crackle)
* Outrun - working / very slow - 16% speed (keys stuck on mouse setting)
* Pacmania
* Paperboy - working / jerky - 53% speed (sound crackle)
* Phoenix (amstar) - working / jerky - 42% speed (sound crackle)
* Road runner - working / jerky - 53% speed (sound crackle)
* Pole position 2 - working / slow - 54% speed
* Rastan (rastan) --&gt; Very slow 55%.
* R-type - working / good-ish - 32% speed then after 40secs jumps to 80%(very odd)
* Road blasters - working / slow/jerky - 44% speed (sound crackle)
* Robocop - working / slow/jerky - 66% speed (sound crackle)
* Robocop 2 - working / jerky - 60% speed (sound crackle)
* Salamander - working / slow/jerky - 56% (sound skips)
* Sega rally championship - working / very slow - 16% speed (graphics incorrect)
* Space harrier - working / slow - 41% (speed sound crackle)
* Spy hunter - working / jerky - 42% speed (some sound crackle)
* Star wars - working / jerky - 62% speed (sound crackle &amp; dark vector grafix) 
* Star wars arcade - working / jerky very slow - 26% speed (crackle on sound)
* Strider - working / slow/jerky - 84% speed (sound jumps)
* Super space invaders 91 - works / jerky - 67% speed (some sound crackle)
* Tecmo world cup millenium - working / slow &amp; jerky - 32% speed i think (very small text) sound crackle
* Tecmo world cup 90 - working / good - 94% speed (speed drops for 2secs now &amp; then)
* Vulcan venture - working / jerky - 52% speed (sound crackle)
* Wec le mans - working / jerky - 48% speed (some sound crackle)

===Broken===

''These are games that crash, lockup or otherwise simply fail to work.'

* 1945iii = s1945iii.zip (loading)
* Dragonblaze = dragblz.zip (loading)
* Frogger - not working - crashes emulator
* Hard drivin - not working -locks up phone
* Ridge racer - not working - crashes emulator
* Salamander 2 - not working - black screen
* Super World Series = sws.zip (playing)
* Tekken - not working and crashes emulator
* Vs super mario bros - does not load

===Mixed Reviews===

''These ROMs have given two different experiences. A third review confirming one of the other two can move it to the right category.''

[[Category:Games]]
[[Category:Users]]</text>
    </revision>
  </page>
  <page>
    <title>ManualBackupAndRestore</title>
    <id>3083</id>
    <revision>
      <id>23404</id>
      <timestamp>2009-11-26T15:27:23Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[ManualBackupAndRestore]] moved to [[Manual backup and restore]]: Capitalisation standards</comment>
      <text xml:space="preserve">#REDIRECT [[Manual backup and restore]]</text>
    </revision>
  </page>
  <page>
    <title>Manual backup and restore</title>
    <id>3061</id>
    <revision>
      <id>40615</id>
      <timestamp>2010-12-08T10:15:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>move information from [[backing up N900 to a Linux PC]]</comment>
      <text xml:space="preserve">There are several scenarios where you might want to manually backup and restore your [[Nokia N900|N900]]. Using manual methods (as opposed to using osso-backup) is convenient for advanced users (to have more control over their phone), scheduling backups with fcron and the like, starting from scratch (if you want to wipe the phone and restore file-by-file) - because osso-backup can also backup problematic files.

This was discussed at [http://talk.maemo.org/showthread.php?t=35037] and [http://talk.maemo.org/showthread.php?t=48488&amp;page=2].

== Background ==

=== Connectivity ===

As the USB mass storage mode on the phone does not provide access to the root file system, some other way of transferring backups is required. Therefore, the first prerequisite is a working TCP/IP network between the phone and the target machine. Alternatively, a microSD card could be used.

=== Power ===

We do not want our backups to drain the phone's battery, so we should only consider running the backup if we are connected to external power.

=== Automation ===

Once set up, the backups should happen automatically without intervention from the user, BUT complain loudly if they fail. This implies a script that we can schedule from cron that should perform whatever combination of tests and operations we may need. It also implies key-based access to our backup host.

=== Snapshots ===

At any given time we want a decent ability to backtrack, which means storing regular snapshots using something like rdiff-backup or rsnapshot.

So, what we've got so far is that we want to run a script on the N900 that tests whether we have external power (or dies), then tries to get a wireless connection to the backup server (or dies), then performs an incremental backup of the entire phone.

==Backup methods==

===Copying===

This script backs up contacts (database and also exports them with osso-addressbook-backup for safety), conversations, calendar, bookmarks, repository and packages list to external memory card's directory Backup which then contains subdirectories named with date and time when the backup was performed. The path is also definable. For example: &quot;Memory_card/Backup/2010-03-03_00-00&quot;. It also displays notification during backup, because it was made to be used with [[fcron]].

====Script====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh

path=/media/mmc1/Backup/`date +&quot;%F_%H-%M&quot;`

run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:&quot;Making backup...&quot;

mkdir -p &quot;$path&quot;/home/user/.bookmarks
mkdir    &quot;$path&quot;/home/user/.calendar
mkdir    &quot;$path&quot;/home/user/.osso-abook
mkdir    &quot;$path&quot;/home/user/.osso-abook-backup
mkdir    &quot;$path&quot;/home/user/MyDocs
mkdir -p &quot;$path&quot;/var/lib/hildon-application-manager

cp    /home/user/.bookmarks/MyBookmarks.xml*                &quot;$path&quot;/home/user/.bookmarks
cp    /home/user/.calendar/calendardb                       &quot;$path&quot;/home/user/.calendar
cp -r /home/user/.osso-abook/db                             &quot;$path&quot;/home/user/.osso-abook
cp -r /home/user/.osso-abook-backup/db                      &quot;$path&quot;/home/user/.osso-abook-backup
cp -r /home/user/.rtcom-eventlogger                         &quot;$path&quot;/home/user
cp -r /home/user/MyDocs/.documents                          &quot;$path&quot;/home/user/MyDocs
cp    /var/lib/hildon-application-manager/catalogues*       &quot;$path&quot;/var/lib/hildon-application-manager
cp    /var/lib/hildon-application-manager/packages.backup   &quot;$path&quot;/var/lib/hildon-application-manager

echo &quot;osso-addressbook-backup -e &quot;$path&quot;/osso-addressbook-backup&quot; | su - user

run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:&quot;Backup created&quot;
&lt;/source&gt;

===osso-backup (what is backed up by it)===

[[Documentation/Maemo 5 Developer Guide/Generic Platform Components/Using Backup Application|osso-backup]] is the default Backup application on the phone. You can use it for &quot;manual&quot; backup, because it produces standard .zip compressed files which can be opened on any system. The list of files that osso-backup backs up can be obtained by making a backup with it and opening these zip files (the list is too long for this wiki page).

===osso-addressbook-backup===

It is an executable which exports (or imports) address book to a vCard v3.0 format. It is used by osso-backup, but it can also be manually executed which is great for making a backup. You have to execute it as user &quot;user&quot;.

 osso-addressbook-backup -e /path/file

And if you're executing it from a root terminal:

 echo &quot;osso-addressbook-backup -e /path/file&quot; | su - user

===rsync===

rsync is standard Linux/Unix file and directory synchronization tool. It is in extras repository. An example backup script is shown here:

====Script====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh

if [ `whoami` != &quot;root&quot; ]; then
 echo &quot;Please run as root to preserve file ownership.&quot;
 exit 1
fi

dpkg -l &gt; /root/dpkg.txt

gconftool-2 -R /system/osso/connectivity/IAP &gt; /root/iap.txt

rsync   -avz                    \
        --numeric-ids           \
        --exclude=/dev          \
        --exclude=/media        \
        --exclude=/mnt/initfs   \
        --exclude=/proc         \
        --exclude=/sys          \
        /                       \
        mypc.example.com:/home/archive/mytablet/
&lt;/source&gt;

Change &lt;code&gt;mypc.example.com&lt;/code&gt; to the IP/hostname of your computer and the target directory to whatever suits you. Don't forget to make the script executable and it must be run as root of course.

The &lt;code&gt;dpkg -l&lt;/code&gt; command makes a list of installed packages and gconftool-2 lists all internet access points (Wi-Fi and GPRS), so you can copypaste details back later.

==Automatic/periodic/scheduled backups==

Maemo currently does not provide an option to schedule backups nor does the osso-backup have interface to be run from command line and thus be scheduled. So the backup scripts needs to be written manually. You get them here (or you write your own), but to schedule them periodically you need fcron or similar. The scheduling part is covered in detail on [[fcron]] wiki page. With combining these two wiki pages you can have fully working automatic backups.

==Wipe methods==

Wiping the device clean is achieved with reflashing. This is covered in the [[updating the firmware]] article and similar.

==Restore methods==

Restoring is the hardest part in this process and you need to have a little knowledge about your system, otherwise backup and restore rather with osso-backup. It is a good choice to perform a full backup after a successful setup/reflash/restore.

Restoring entries below were made by the author of the rsync backup script, but they are very similar to any restoring process. Also don't forget that the applications which use the files you are restoring need to be closed/stopped/killed.

===Contacts===

You need to create a dummy entry before restoring contacts. Run the contacts application first and create a contact, anything will do. Then exit the contacts application and restore the files in &lt;code&gt;/home/user/.osso-abook/db&lt;/code&gt; and &lt;code&gt;/home/user/.osso-abook-backup/db&lt;/code&gt;. The contacts will be restored after rebooting the device.

===Bookmarks===

Close the browser first, then simply copy the files from your archive to the phone to &lt;code&gt;/home/user/.bookmarks&lt;/code&gt;. The bookmarks should appear immediately.

The bookmarks are saved in &lt;code&gt;MyBookmarks.xml&lt;/code&gt; file, so this is the one that you really need, other files are thumbnails and the like.

===Calendar===

The calendar entries are in the file &lt;code&gt;/home/user/.calendar/calendardb&lt;/code&gt;.

===Repository and packages list===

These are located in &lt;code&gt;/var/lib/hildon-application-manager&lt;/code&gt;, files &lt;code&gt;catalogues.backup&lt;/code&gt;, &lt;code&gt;catalogues2.backup&lt;/code&gt; and &lt;code&gt;packages.backup&lt;/code&gt;. These can't be just copied back, because osso-backup uses them in its own way (asks which applications should be reinstalled), but you can use them as list of what you had installed.

===IM/Chat/SIP accounts===

These accounts are stored in &lt;code&gt;/var/lib/gconf/apps/telepathy/mc/accounts&lt;/code&gt;. It's probably a good idea to set your presence to &quot;off&quot; before trying to restore.

===E-mail (Modest)===

Restoring &lt;code&gt;/home/users/.modest&lt;/code&gt; and &lt;code&gt;/var/lib/gconf/apps/modest&lt;/code&gt; doesn't work properly. I had to create the email server settings, but at least the old email did come back. Actually, I think it might have worked, but the mailbox didn't appear. I discovered that the old mailboxes were there when I looked for them in Menu-&gt;View and chose one of the mailboxes.

The rabbit hole goes deeper. I didn't notice there was a problem after restoring, as I use a special email address for my tablet and it didn't get any email for a while, so I was quite happy accessing my recovered emails. When a new email arrived, it killed modest, and I was unable to restart it - the UI would show up briefly before modest died. The only way I could make modest run without crashing was to rename &lt;code&gt;/home/user/.modest&lt;/code&gt; to &lt;code&gt;/home/user/.modest.xxx&lt;/code&gt;.

===RSS Feeds===

Close RSS application and copy files to &lt;code&gt;/home/user/.osso_rss_feed_reader&lt;/code&gt;.

===Wi-Fi and GPRS access points===

You'll have to manually re-enter them, but you can copypaste details from the file created with rsync backup script (iap.txt).

===Other===

====gPodder====

Close gPodder and copy its config directory to &lt;code&gt;/home/user/.config/gpodder&lt;/code&gt;.

====OpenVPN Applet====

If you use the [[OpenVPN]] Applet the configuration files are stored in &lt;code&gt;/etc/openvpn&lt;/code&gt;. After you copy them be sure to have them owned by user &quot;root&quot;, group &quot;root&quot;, and protected so that user (root) has rw privileges, and no one else has anything.

[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Manual video encoding</title>
    <id>762</id>
    <revision>
      <id>48702</id>
      <timestamp>2012-07-09T09:41:55Z</timestamp>
      <contributor>
        <username>lameventanas</username>
        <id>5353</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">__FORCETOC__
For automatic video conversion tools, see the [[video encoding]] article.

== Mencoder ==

One tool you can use to encode video is mencoder that comes with mplayer on Linux. Always start with the cleanest video you can, and make sure it has good A/V sync before you start by watching it on a PC. Make sure the original has a frame rate greater than or equal to the one you are trying to generate. 

The recommended way to run mencoder is through tablet-encoder. You can however try running mencoder directly and playing with the options. Be careful about forcing the output frame rate, however. I didn't get any good result with the below commands. Instead, I got A/V desync and bad effects due do frame rate changes, so I now use some variation of the above shell scripts.

 mencoder infile.avi -oac mp3lame -ovc lavc \
  -lavcopts vcodec=mpeg4 -vf scale=352:208 -ffourcc DIVX \
  -ofps 15 -o outfile.avi

This will generate a 15fps 352x208 avi file.

The following mencoder command line will make smaller videos:

 mencoder infile.avi -oac mp3lame -ovc lavc \
  -lavcopts vcodec=mpeg4:mbd=1:vbitrate=300 -vf scale=352:208 \
  -ffourcc DIVX -ofps 15 -o outfile.avi

mplayer will play 30 fps video fine.  The following command produces acceptable video with no A/V sync issues.

 mencoder infile.avi -oac mp3lame -ovc lavc \
  -lavcopts vcodec=mpeg4:mbd=1:vbitrate=300 -vf scale=352:208 \
  -ffourcc DIVX -o outfile.avi

The above command was tested on 30 fps source file and creates 30 fps video that plays back fine on the N810.

To make even smaller, you can drop down the quality of audio to 64 kbit/s (for 300 kbit video stream, converting audio to 64 kbit versus 128 kbit yields a total save of approx 20%. Notice that for lower bitrate movies percentage is considerably higher):

 mencoder infile.avi -oac mp3lame -lameopts abr:br=64 -ovc lavc \
  -lavcopts vcodec=mpeg4:mbd=1:vbitrate=300 -vf scale=352:208 \
  -ffourcc DIVX -ofps 15 -o outfile.avi

The differences are the block detection method (mbd=1) and a capped bitrate.

See man mencoder for more options.

== ffmpeg ==

It is possible to transcode a video with ffmpeg. The video will have a corrupted fourcc header, but this can be corrected with the tool avifix from transcode or by using -vtag DIVX in ffmpeg command line:

 ffmpeg -i infile -vcodec mpeg4 -acodec mp3 -s 176:144 -b 200 -pass 1 outfile.avi
 ffmpeg -i infile -vcodec mpeg4 -acodec mp3 -s 176:144 -b 200 -pass 2 outfile.avi
 avifix -i outfile.avi -F &quot;divx&quot;

Or directly (without avifix):

 ffmpeg -i infile -vcodec mpeg4 -acodec mp3 -vtag DIVX -s 176:144 -b 200 -pass 1 outfile.avi
 ffmpeg -i infile -vcodec mpeg4 -acodec mp3 -vtag DIVX -s 176:144 -b 200 -pass 2 outfile.avi

The N900 supports AAC and H.264 up to Baseline 3.0 profile. This produces quite good quality, but takes a while to encode:

 ffmpeg -i input.avi -threads 0 -vcodec libx264 -acodec libfaac -vpre hq -vpre baseline -ab 128k -b 600k output.mp4

===ffmpeg 0.7.0===
ffmpeg 0.7.0 require different parameters to produce a Baseline 3.0 video file that the N900 will play.
 ffmpeg -threads 0 -i input.mkv -vcodec libx264 -s 852x480 -b 1200k -ac 2 -ab 160k -flags +loop+mv4 -cmp 256 -partitions +parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 -me_method umh -subq 7 -refs 5 -me_range 16 -g 250 -qmin 10 -qmax 51 -vpre baseline -f mp4 output.mp4

===ffmpeg 0.10.3===
ffmpeg 0.10.3 requires different parameters.  The previous command should be written as:
 ffmpeg -threads 0 -i input.mkv -vcodec libx264 -s 852x480 -b:v 1200k -ac 2 -b:a 160k -flags +loop+mv4 -cmp 256 -partitions +parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 -me_method umh -subq 7 -refs 5 -me_range 16 -g 250 -qmin 10 -qmax 51 -vprofile baseline -f mp4 output.mp4

== transcode ==

You can convert a DVD using transcode using the following command line:

 transcode -i /dev/dvd \
          -x dvd \
          -T 1,1-16 \
          -a 0 
          -j 48,0,48,0 \
          -Z 240x160 \
          -y xvid \
          -V -w 300 \
          -N 0x55 \
          -b 48 \
          -o output.avi

This transcodes chapters 1 to 16 of title 1. The DVD has 720x576, but uses only 720x480, so the command clips off the remaining 96 black pixels with the -j option. Output size is 240x160. Video bitrate is 300kbps, audio is 48kbps. The &quot;xvid&quot; codec (a symlink to xvid2 on some systems) gives very good results with the default settings. Do not use &quot;mpeg4&quot;, it needs too much processor power for decoding which causes loads of artefacts when playing on the Nokia, even if it looks good on a PC.

Fix the FOURCC with

 avifix -i output.avi -F DIVX

The resulting AVI file has 114 MByte for 45 minutes/25fps. Things can certainly be improved by tuning xvid options using a ./xvid2.cfg.

Here is another example, where the DVD has 720x576 fully used for 4:3 content. The output size is 256x192 (4x64, 3x64). This example uses the xvid4 codec. Note that you must not use B-frames, the 770/N800 doesn't seem to be able to handle them. You can turn them off by setting max_bframes=0 in your xvid4.cfg, you can easily do this with the xvid4conf tool. After you did this, the following command line will do the rest:

 transcode -i /dev/dvd \
          -x dvd \
          -T 1,-1 \
          -a 0 
          -Z 256x192 \
          -y xvid4 \
          -V -w 300 \
          -N 0x55 \
          -b 48 \
          -o output.avi

The -T 1,-1 option will convert the whole title 1 (all chapters). You can try a lower video bitrate by adjusting the -w parameter (300kbps in this example). Don't forget to fix the FOURCC with the avifix command (as above). The quality is very good, and it works fine with 25fps.

Additional informations regarding transcode and IT 2006 beta :

I suggest using the following command-line :

 transcode -i /dev/dvd \
          -x dvd \
          -T 1,-1 \
          -a 0 
          -Z 352x208 \
          --keep_asr \
          -y ffmpeg \
          -F mpeg4 \
          -w 300 \
          -N 0x55 \
          -b 48 \
          -R 1 \
          -o output.avi

and 
 transcode -i /dev/dvd \
          -x dvd \
          -T 1,-1 \
          -a 0 
          -Z 352x208 \
          --keep_asr \
          -y ffmpeg \
          -F mpeg4 \
          -w 300 \
          -N 0x55 \
          -b 48 \
          -R 2 \
          -o output.avi

using ffmpeg, there is no need to fix FOURCC. -R x is used to do two-pass encoding. --keep_asr will resize source video to fit in the specified target resolution, no need to worry about cropping or adding black borders if source isn't using the same aspect ratio (DVD often uses 1.77 anamorphic format ), transcode will take care of it. The only choice to do is target resolution : 320x208 or 240x144 for 16:9 source, 352x288 or 176x144 for 4:3 source.

== H.264 (with mencoder) ==

Both OS2008 (N800/N810) and Maemo 5 (N900) play H.264 videos out of the box - in theory. A lot of existing H.264-material will not play well, though. [http://talk.maemo.org/showthread.php?t=13514&amp;page=4 This thread] on talk.maemo.org indicates that a video file must adhere to the Baseline Profile, level 1.2, of the H.264-standard to be compatible with both the Maemo Media Player and MPlayer. (See Wikipedia for a detailed information on [http://en.wikipedia.org/wiki/H.264#Profiles profiles] and [http://en.wikipedia.org/wiki/H.264#Levels levels].)

The N900 has the same restrictions. [https://bugs.maemo.org/show_bug.cgi?id=6635 This bug report] tells us that with Maemo 5, H.264-videos still must be Baseline.

With mencoder, the following settings are known to work. (Simplified; you may use 2-pass etc.) They are originally taken and adapted from a website about H.264 on the N95 and given here only as an example for those who want to experiment with manual settings.


 ## Create video 
 #  I omitted various filters I use to make the video smaller
 #  while encoding. A video resolution of 352:208 is assumed here,
 #  you can achieve it by adding something like 
 #  -vf dsize=15/9,scale=352:208
 #  Whats important is the part after -x264encopts:
 #  * bitrate=300: max would be 364 according to level 1.2
 #  * nocabac: no CABAC Entropy Coding according to Baseline profile
 #  * partitions=p8×8,b8×8,i4×4: no idea what this is, but didn't work 
 #    with different settings
 #  * level_idc=12: indicate to decoder that we're at level 1.2
 #  * frameref=2: influences peak signal to noise ratio (?)
 #  * me=umh: motion estimation search method
 #  * bframes=0: no B-frames according to basline profile
 #  * nodeblock: (?)
 #  * noweightb: (?)
 #  * nomixed_refs: unknown, but didn't work without it
 #  so:
 mencoder $INPUTFILE  \
    -nosound \
    -ovc x264 \
 &amp;nbsp;&amp;nbsp;&amp;nbsp;-x264encopts&amp;nbsp;bitrate=300:nocabac:partitions=p8×8,b8×8,i4×4:level_idc=12:frameref=2:me=umh:bframes=0:nodeblock:noweightb:nomixed_refs&amp;nbsp;\
    -of rawvideo -o N800.264
 #
 #
 ## Create audio
 #  The standard is picky about valid container formats for h.264
 #  and audio codecs within these containers.
 #  AAC is a good choice; bitrate settings may be too conservative
 mencoder $INPUTFILE  \
 	-ovc copy \
 	-oac faac -faacopts br=40:mpeg=4:object=2 \
 	-af resample=32000:0:2,volume=4:1 \
 	-of rawaudio -o N800.aac
 #
 ## Mux MPEG4 file
 #  MP4Box is part of the GPAC package.
 #  You could also use mp4creator, 
 #  but that's buggy and no longer actively developed
 #  -fps ist frames per second; you need to give this info
 MP4Box -new -add N800.264 -add N800.aac -fps 25.000 N800.mp4


The thread on talk.maemo.org gives an idea how other software may work. 



[[Category:Users]]
[[Category:Media]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Mapdata</title>
    <id>4026</id>
    <revision>
      <id>45877</id>
      <timestamp>2011-11-27T03:38:47Z</timestamp>
      <contributor>
        <username>rlinfati</username>
        <id>1473</id>
      </contributor>
      <comment>/* Navicore Wayfinder Mapdata for N8x0 */</comment>
      <text xml:space="preserve">==How to Install== 

In case if you cannot install maps with your device you can do it manually with your PC.

Please follow these instructions:

* Download the desired map file to your PC.
* Unzip the files
* Create a folder &quot;Map&quot; on your Internet Tablet internal memory ([[Nokia N810|N810]]) or Internal SDcard ([[Nokia N800|N800]])
* Copy folder named &quot;mapdata_&lt;REGION&gt;&quot; to the folder &quot;Map&quot; created before
* Replace any existing files.
* Add additional map regions by repeating the previous steps.
 
Please note, that you need a valid license key to use the application premium services. These maps are only for Internet Tablet device.

Copied from http://www.navicoretech.com/Consumer/Support/Downloads/tablet/en_GB/wfnavigator/

==Navicore Wayfinder Mapdata for N8x0==

* Files deleted

# eec315e551197105cec1d01f2c811b17  mapdata_Argentina.zip (repack)
# c71931cbf06a674451d83b4e70c50b64  mapdata_Australia_and_New_Zealand.zip
# 307928b6a0b15565813bb821ed37e45b  mapdata_Benelux.zip
# 0315f5f77141fa90e22b4e985fa9f70c  mapdata_Brazil.zip
# 08aed8ef2889fc793aa4cdfaabde1fa0  mapdata_Canada-Alaska.zip
# 010d2e297a29dc7ad2ff55c7e379b9b4  mapdata_Central-Eastern-Europe.zip
# 66463d37cf63f140347f832e8917a577  mapdata_France.zip
# 0581aaf9386cc52f0acd65892eb7c3a8  mapdata_Germany-Alps.zip
# 345a13008c6d33989842f675d3579954  mapdata_Greece.zip
# fab845083c9189c4a7dd5f9afc6b006d  mapdata_Hawaii.zip
# c017e300c0decf527ee51c53360f6663  mapdata_Italy.zip
# 1926c85c0e6b3062abbdf5685f81f0c8  mapdata_Malaysia.zip
# 608d6ba734dcf2b7dd9ac0278b9b48be  mapdata_Mexico.zip
# 2cad020dd630884d20b68f63bdf3e6ae  mapdata_Middle-East.zip
# 0c228020689c7adbed3e3f14a2280ea1  mapdata_Russia.zip
# a315cda1dd8a14f4016a4347e38e414e  mapdata_Scandinavia.zip
# 40c11189ae1b9565d83e4e57572bc06f  mapdata_Singapore.zip
# c75e5f62bc551064e61951a7649c9070  mapdata_South-Africa.zip
# 53ae32ae7c2659e0b67452efec505ef1  mapdata_Spain-Portugal.zip
# c4ba1e1ba38d12bbfb213ab7e8074a22  mapdata_Turkey.zip
# a6aa3a104e5fa0ff0895b163642cd2fb  mapdata_UK-Ireland.zip
# 3946997bdf711193c023b7d728df4cf8  mapdata_USA-East.zip
# 76e50975f860c15fe0f0dd7b7b37628c  mapdata_USA-West.zip</text>
    </revision>
  </page>
  <page>
    <title>Mappero topomaps</title>
    <id>3547</id>
    <revision>
      <id>41012</id>
      <timestamp>2011-01-05T20:07:06Z</timestamp>
      <contributor>
        <ip>84.251.153.209</ip>
      </contributor>
      <comment>/* Notice! The Finnish topomaps are not available anymore (dec 2010). */</comment>
      <text xml:space="preserve">== Notice! The Finnish topomaps are not available anymore (dec 2010). ==

The service was closed by Nokia in 2010. A placeholder is available at [http://topomaps.tableteer.nokia.com topomaps.tableteer.nokia.com].

&quot;Dear user of map service.

The topographic maps of this repository are not up to date. Distribution of the map material is closed.

Thank you for participating the pilot usage.&quot;


Thread: http://talk.maemo.org/showthread.php?t=65922

== Here are instructions to get topomaps to Mappero / maemo-mapper. ==



== Step by step instructions ==

The easiest way to get the Finnish topomaps working with Mappero is to update the map repositories. This can be done by following these simple steps:

* Open Mappero :-)
* Open the menu by tapping on the title bar.
* Choose &quot;Maps&quot;, then &quot;Repositories&quot;.
* Click on the &quot;Sync&quot; button (need to be connected to the internet).
* A banner should appear and inform you about the successful completion of the operation. Dismiss the banner.
* Dismiss all the dialogs (due to a bug, the newly downloaded repositories are not available in the repository selector).
* Reopen the menu.
* Choose &quot;Maps&quot;.
* Choose &quot;Finnish topomaps&quot;, and press OK.

== Manual configuration ==

This section should not be needed anymore; it is left here because it can still be used in case the update of the repositories described above fails for whatever reason.
When adding the tile and map repositories, make sure you set all the fields correctly before you save and go forward. The most common problems seem to be getting the URL wrong and forgetting to set type and image type for tiles. If it doesn't work, delete both repositories and start over from scratch.

* Open maemo-mapper
* Tap title bar and select: Maps - Manage Tiles/Layers...
* Add new and set Name, UniqIDand and Cache Dir for example: NLS
* Paste correct address below to URL-field. Ensure that there are exactly 50 'space' characters in that long space, copy paste seems to create only 49.
* Set type according to information below
* Set image type according to information below
* Save settings

* Next tap title bar again and select: Maps - Manage Repositories...
* Add new and set name for example: NLS
* Select Min zoom: 5
* Select Max zoom: 20
* select zoom step: 1
* Select Tiles: NLS (or whatever name you set earlier for tiles)
* Then save repository

== Local repositories ==

=== Finland ===

 http://tableteer.nokia.com:80                                                 © NLS 20O8 …þ@topomaps.tableteer.nokia.com/_tTilesD/%0d/%d/%d.jpg

'''Repository settings for Mapper alpha 8(and newer)'''

 Tile type: XYZ_INV
 Image type: JPEG


[http://laimeasilli.wordpress.com/2009/12/27/maastokartat-toimivat-n900ssa/#comment-906]
[http://talk.maemo.org/showpost.php?p=564697&amp;postcount=13]

[[Category:Beginners]]
[[Category:GPS]]</text>
    </revision>
  </page>
  <page>
    <title>Mapping openness</title>
    <id>598</id>
    <revision>
      <id>3091</id>
      <timestamp>2008-06-27T20:44:06Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Mapping openness]] moved to [[Task:Mapping openness]]: Keeping nomenclature</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Mapping openness]]</text>
    </revision>
  </page>
  <page>
    <title>Mar-Rotation Manager</title>
    <id>5022</id>
    <revision>
      <id>45553</id>
      <timestamp>2011-10-11T16:49:12Z</timestamp>
      <contributor>
        <username>marmistrz</username>
        <id>4691</id>
      </contributor>
      <comment>/* Mar-Rotation Manager */</comment>
      <text xml:space="preserve">==Mar-Rotation Manager==

PROJECT TEMPORARILY FROZEN - I'm working on DR meter and it's more important to me.

Mar-Rotation Manager is an app to make easy managing which apps are rotated and which not. 

===Download===

Not already working :D

===Dependencies===

* sudser
* [[CSSU]] - program will run without it, but won't give anything

==Current developement status==
Alpha (no GUI, poor interface) &lt;br /&gt;
Expected release date: up to 29th October &lt;br /&gt;
User interface: interactive, console (Qt GUI planned)

==Features==
{| border=&quot;1&quot; align=&quot;center&quot;;&quot;
|'''Feature'''
|'''Dev status'''
|'''Description'''
|-
|backup
|partially done (only one at time)
|You can backup the transitions.ini file to restore it.
|-
|wrtiting data
|done
|Writing 'blacklist &lt;app&gt;' or 'whitelist &lt;app&gt;' to transitions.ini
|-
|controlling for duplicates
|partially done (only reading)
|It controls if you haven't added this app to transitions.ini yet.
|-
|restore
|partially done (only one at time)
|You can restore the backuped transitions.ini file.
|-
|GUI in Qt
|not attempted yet
|There'll be a GUI to avoid all this typing
|}

==FAQ==

===std::out_of_range error===

I found it while testing. The fix is copying the binary by (assuming it's in MyDocs):

&lt;code&gt; sudo mv MyDocs/mar-rotationmgr .&lt;/code&gt;

==TODO==
* Qt GUI
* improve backup &amp; restore</text>
    </revision>
  </page>
  <page>
    <title>Mbarcode Plugin Tutorial</title>
    <id>4318</id>
    <revision>
      <id>44046</id>
      <timestamp>2011-06-14T09:58:31Z</timestamp>
      <contributor>
        <ip>81.217.39.232</ip>
      </contributor>
      <text xml:space="preserve">This tutorial will give you a quick introduction to writing plugins for [[mBarcode]]. We will try to guide you from your very first steps all the way to a full fledged plugin.

The plugin we are going to create will show a quick dialog with info about the data contained in the barcode.

== Prerequisites ==

In this tutorial we'll be using Qt together with C++ to connect to the mBarcode plugin framework. To make the process very easy we are also using Qt Creator to write our code and Scratchbox to test and compile it. You don't have to use Scratchbox or Qt Creator if you don't want to, but this is not covered by this tutorial.

Heck, you can even get through this without Qt installed, but bare in mind that you are on your own then.

You must have:
* Some basic knowledge about C++ and Qt
* Scratchbox installed
* Qt
* Access to a terminal
* An OS with dpkg

You could use:
* Qt Creator

Using [[MADDE]] for development is currently a bit of a pain since it lacks an option for third party libraries. There is a tutorial that covers writing these plugins using the Nokia Qt SDK available here [[Mbarcode_Plugin_Tutorial_MADDE]]

== Writing the plugin ==

Using Scratchbox is the easiest way to get started. Log in to Scratchbox by typing

 /scratchbox/login

Install the &lt;code&gt;mbarcode-dev&lt;/code&gt; package

 apt-get install mbarcode-dev

Next, create a new &quot;Empty Qt project&quot; using Qt Creator and store this in &lt;code&gt;/scratchbox/users/&lt;your username&gt;/home/&lt;your username&gt;/&lt;/code&gt;. For the sake of simplicity, we'll name our project &quot;plugin&quot;. 

Alternatively, create an empty folder using the terminal and add an empty plugin.pro file.

=== The project file ===

Add the following to your plugin.pro file:

&lt;pre&gt;
TEMPLATE = lib
CONFIG += plugin
INCLUDEPATH += ../..

HEADERS = plugin.h \
    showdialogaction.h
SOURCES = plugin.cpp \
    showdialogaction.cpp
TARGET = $$qtLibraryTarget(mbarcode_myplugin)

unix {
    # VARIABLES
    isEmpty(PREFIX):PREFIX = /usr
    BINDIR = $$PREFIX/bin
    DATADIR = $$PREFIX/share
    DEFINES += DATADIR=\&quot;$$DATADIR\&quot; \
        PKGDATADIR=\&quot;$$PKGDATADIR\&quot;

    # MAKE INSTALL
    INSTALLS += target
    target.path = $$DATADIR/mbarcode/plugins
}
OTHER_FILES += debian/changelog \
    debian/control
&lt;/pre&gt;

=== The plugin actions ===

Let's add some actions for our plugin! In Qt Creator, right click on your project and select &quot;Add New...&quot;. Choose &quot;C++ Class&quot; and name it &lt;code&gt;ShowDialogAction&lt;/code&gt;.

Open the &lt;code&gt;showdialogaction.h&lt;/code&gt; file and overwrite it with the following:

&lt;source lang=&quot;cpp&quot;&gt;
#ifndef SHOWDIALOGACTION_H
#define SHOWDIALOGACTION_H

#include &lt;QtCore&gt;
#include &lt;mbarcode-qt/plugininterfaces.h&gt;
#include &lt;mbarcode-qt/pluginaction.h&gt;

class ShowDialogAction : public PluginAction
{
    Q_OBJECT
public:
    ShowDialogAction(const PluginInterface *interface);
    QString getName() { return &quot;EAN Local Analyser&quot;; } // This name is just for convenience
    QString getText(); // This is the text that will show in the list
    void clickAction(QWidget *parentWindow); // The action which is called whenever we are clicked
signals:
    void isReady();
private slots:
    void barcodeAnalysed(QString barcodeType, QString barcodeData); // The slot where all the processing goes down
private:
    QString barcodeType;
    QString barcodeData;
};

//Q_DECLARE_METATYPE(ShowDialogAction *);

#endif // SHOWDIALOGACTION_H
&lt;/source&gt;

Open the &lt;code&gt;showdialogaction.cpp&lt;/code&gt; file and overwrite it with the following:

&lt;source lang=&quot;cpp&quot;&gt;
#include &quot;showdialogaction.h&quot;

#include &lt;QMessageBox&gt;

ShowDialogAction::ShowDialogAction(const PluginInterface *interface) : PluginAction(interface)
{
    // Do your initialization here.
}
QString ShowDialogAction::getText() {
    // This is the text which will show in the list of results.
    return &quot;Show Dialog&quot;;
}
void ShowDialogAction::clickAction(QWidget* parentWindow)
{
    // This is what happens when the user clicks our button.
    QMessageBox msg(parentWindow);
    msg.setWindowTitle(&quot;You clicked the button!&quot;);
    msg.setText(&quot;A window should be a dynamic object. Otherwise it is removed at the end of this function. A message box, on the other hand, has the exec().&quot;);
    msg.exec();
}
void ShowDialogAction::barcodeAnalysed(QString barcodeType, QString barcodeData) {
    // In this function you process the data. This could be used for early web lookups or whatever.
    // We just store the data in memory for now.
    this-&gt;barcodeType = barcodeType;
    this-&gt;barcodeData = barcodeData;
    // We've done what we need to and are ready to show ourselves
    emit isReady();
}
&lt;/source&gt;

You could add more classes like this if you want different buttons with different actions, but for now, this will do.

=== Plugin interface ===

Let's connect to mBarcode's plugin interface. In Qt Creator, right click on your project and select &quot;Add New...&quot;. Choose &quot;C++ Class&quot; and name it &lt;code&gt;Plugin&lt;/code&gt;.

Open your &lt;code&gt;plugin.h&lt;/code&gt; file and overwrite it with the following:

&lt;source lang=&quot;cpp&quot;&gt;
// This is a plugin used as an example in different tutorials.

#ifndef PLUGIN_H
#define PLUGIN_H

#include &lt;QObject&gt;

#include &lt;mbarcode-qt/plugininterfaces.h&gt;
#include &lt;mbarcode-qt/pluginaction.h&gt;

class Plugin : public QObject, public PluginInterface
{
    Q_OBJECT
    Q_INTERFACES(PluginInterface)
public:
    void initInterface(QWidget *parent);

    QSet&lt;PluginAction*&gt; getPluginActions(); // returns a list of actions this plugin provides
    QString getName() { return &quot;My Plugin&quot;; } // a name of your choosing

private:
    QWidget *parent;
    QSet&lt;PluginAction*&gt; pluginActions;

};

#endif // PLUGIN_H
&lt;/source&gt;

Open your &lt;code&gt;plugin.cpp&lt;/code&gt; file and add the following:

&lt;source lang=&quot;cpp&quot;&gt;
#include &quot;plugin.h&quot;
#include &quot;showdialogaction.h&quot;

void Plugin::initInterface(QWidget *parent)
{
    this-&gt;parent = parent;

    // Create an action

    ShowDialogAction *showDialogAction = new ShowDialogAction(this);

    // Add our action to the list

    pluginActions.insert(showDialogAction);

    // Connect the signal from the MaemoBarcodeWindow to our Action classes.

    connect(parent, SIGNAL(barcodeAnalysedSignal(QString,QString)),
            showDialogAction, SLOT(barcodeAnalysed(QString,QString)));

    // If you like to, you can connect this to whatever you want.
    // This means that you could even connect it to a slot in this class.
    // We've only chosen to do it this way for convenience.
}

QSet&lt;PluginAction*&gt; Plugin::getPluginActions() {
    return pluginActions;
}

Q_EXPORT_PLUGIN2(mbqt_myplugin, Plugin) // Please change this name
&lt;/source&gt;

=== Testing your fancy new plugin ===

There you go! You are now ready to build your plugin and test it out. Before we build a complete Debian package, let's see if everything works.

Build your plugin by issuing this command in your project folder in Scratchbox:

 qmake &amp;&amp; make

Go to your directory and pick up the new file named &lt;code&gt;libmbarcode_myplugin.so&lt;/code&gt;. Copy this to your device and place it in &lt;code&gt;/home/user/.config/mbarcode/plugins&lt;/code&gt;. (Note: final plugins are stored in &lt;code&gt;/usr/share/mbarcode/plugins&lt;/code&gt;. The former path with .config didn't work for me).

Start mBarcode and scan a barcode as usual. Your plugin should now show up.

==== Troubleshooting ====

If your plugin doesn't load, please run mbarcode from terminal and look for error messages during the loading of the application.

== Creating a Debian package ==

To be continued...

[[Category:Development]]
[[Category:mBarcode]]</text>
    </revision>
  </page>
  <page>
    <title>Mbarcode Plugin Tutorial - Qt SDK</title>
    <id>4869</id>
    <revision>
      <id>43644</id>
      <timestamp>2011-05-28T13:49:35Z</timestamp>
      <contributor>
        <username>spartan563</username>
        <id>4360</id>
      </contributor>
      <minor/>
      <comment>[[Mbarcode Plugin Tutorial MADDE]] moved to [[Mbarcode Plugin Tutorial - Qt SDK]]: This tutorial was in fact written using, and aimed at people using, the Nokia Qt SDK. Not MADDE, however Nokia's Qt SDK does include MADDE.</comment>
      <text xml:space="preserve">This tutorial will try to guide you through the process of creating an [[MBarcode]] plugin using the Nokia Qt SDK. The aim of this tutorial is to give you the knowledge necessary to create a basic plugin for [[MBarcode]] without having to rely on Scratchbox.

If you are looking to develop a plugin for mBarcode using Scratchbox then please see this tutorial: [[Mbarcode_Plugin_Tutorial]]


== Prerequisites ==
In this tutorial we'll be using Qt together with C++ to connect to the mBarcode plugin framework. Unlike the other tutorial this one is aimed at using the Nokia Qt SDK. This can be downloaded from Nokia's website at [http://qt.nokia.com/downloads qt.nokia.com/downloads]

You must have:
 * Nokia Qt SDK [http://qt.nokia.com/downloads qt.nokia.com/downloads]
 * An N900 (may work on older tablets as well)
 * A linux OS (haven't tested this on Windows but it would probably work with a few tweaks)
 * Some basic C++ knowledge, though you can probably do this without any

== Initial Setup ==
To start with you will need to install the Nokia Qt SDK, this process is very self explanatory and easy to follow. Just make sure you install the correct version of the SDK, it will have Qt Simulator and the Maemo libraries bundled with it. Provided you download the SDK from the above link ([http://qt.nokia.com qt.nokia.com]) you shouldn't have any problems.

== Getting the required headers ==
Since the Nokia Qt SDK doesn't currently support installing packages in any easy manner the easiest way to do this would be to install &quot;mbarcode-dev&quot; on your N900 and then copying the headers. This can be done by opening a terminal (Ctrl + Shift + X) and typing the following:
&lt;blockquote&gt;
sudo gainroot
apt-get install mbarcode-dev
cp /usr/include/mbarcode-qt/* /home/user/MyDocs/
&lt;/blockquote&gt;
That should copy the required header files to your MyDocs directory on the N900, which you can then access by putting it into Mass Storage mode and copying the header files. You should get the following:
* maemobarcodewindow.h
* pluginaction.h
* plugininterfaces.h
These files then need to be copied onto your development machine. Copy them into the following folders on your computer:
* /usr/include/mbarcode-qt/*
* /home/&lt;your username&gt;/QtSDK/Maemo/sysroots/&lt;the only folder&gt;/usr/include/mbarcode-qt/*

== Creating the Project ==
To create the project, launch Qt Creator and click New Project. Select &quot;Empty Qt Application&quot; as the type (under &quot;Other Project&quot;). 
When asked make sure that you choose to include the versions of Qt for Maemo and the Qt Simulator. This will allow you to compile your plugin for your phone and eventually package it.

== Setting up your .PRO file ==
The .PRO file tells Qt what to do with your project, so that will be the first thing we are going to set up. The easiest way to do this is to open up your .PRO file and paste the following code into it (overwriting everything else)
&lt;syntaxhighlight lang=&quot;text&quot;&gt;
TEMPLATE = lib
CONFIG += plugin
INCLUDEPATH += /usr/include/mbarcode-qt

# Please do not modify the following two lines. Required for deployment.
include(deployment.pri)
qtcAddDeployment()
&lt;/syntaxhighlight&gt;

== Setting up your Deployment Script ==

Next we are going to add our deployment script, this in necessary for creating the DEB file used to install your plugin.
Right click on your project's name in the left hand side of Qt Creator and choose &quot;Add New&quot;. Choose &quot;Text File&quot; from the &quot;General&quot; category and name the file '''deployment.pri'''.
When that is done you just need to copy the following into your new file. Don't worry about what it does, it is a slightly modified version of the standard '''deployment.pri''' file created when you create a new Qt Mobile Application in Qt Creator.
&lt;syntaxhighlight lang=&quot;text&quot;&gt;

# checksum 0xfb0c version 0x30001
# This file was generated by an application wizard of Qt Creator.
# The code below handles deployment to Symbian and Maemo, aswell as copying
# of the application data to shadow build directories on desktop.
# It is recommended not to modify this file, since newer versions of Qt Creator
# may offer an updated version of it.

defineTest(qtcAddDeployment) {
for(deploymentfolder, DEPLOYMENTFOLDERS) {
    item = item$${deploymentfolder}
    itemsources = $${item}.sources
    $$itemsources = $$eval($${deploymentfolder}.source)
    itempath = $${item}.path
    $$itempath= $$eval($${deploymentfolder}.target)
    export($$itemsources)
    export($$itempath)
    DEPLOYMENT += $$item
}

MAINPROFILEPWD = $$PWD


maemo5 {
	installPrefix = /usr/share/mbarcode/plugins
    } 
    for(deploymentfolder, DEPLOYMENTFOLDERS) {
	item = item$${deploymentfolder}
	itemfiles = $${item}.files
	$$itemfiles = $$eval($${deploymentfolder}.source)
	itempath = $${item}.path
	$$itempath = $${installPrefix}/$$eval($${deploymentfolder}.target)
	export($$itemfiles)
	export($$itempath)
	INSTALLS += $$item
    }
    target.path = $${installPrefix}
    export(target.path)
    INSTALLS += target
}

export (INSTALLS)
export (DEPLOYMENT)
export (TARGET.EPOCHEAPSIZE)
export (TARGET.CAPABILITY)
export (LIBS)
export (QMAKE_EXTRA_TARGETS)
}
&lt;/syntaxhighlight&gt;

The final step is to go back into your .PRO file and remove the line that reads:
&lt;blockquote&gt;
OTHER_FILES += \
    deployment.pri
&lt;/blockquote&gt;

== Creating your Plugin ==
Now that you have created the files needed by Qt Creator for packaging your plugin we can start creating the actual plugin. To start off we are going to need to create a new C++ class. This is done in the same way as you created your '''deployment.pri''' file. Give it the name &quot;PluginLogic&quot; and click OK.


=== pluginlogic.h ===
Inside the pluginlogic.h file paste the following code. This will form the basic structure for our plugin and should give you a good idea of what we are going to do with it.

&lt;syntaxhighlight lang=&quot;cpp&quot;&gt;

#ifndef PLUGINLOGIC_H
#define PLUGINLOGIC_H


// Here we import the core Qt modules which we need for
// all our base classes, we also need to do this so that
// we can generate signals (needed to let mBarcode know
// that we are ready to process a barcode)
#include &lt;QtCore&gt;

// We also import the headers used by mBarcode. These will
// only appear if you have added the
// INCLUDEPATH += /usr/include/mbarcode-qt
// line to your PRO file.
#include &quot;pluginaction.h&quot;
#include &quot;plugininterfaces.h&quot;

class PluginLogic : public PluginAction
{
    Q_OBJECT

public:
    //This will form the constructor that handles initialization of your
    //plugin. In here you can created any refereces to databases or whatever
    //else you want access to in your plugin.
    PluginLogic(const PluginInterface *interface);

    // This is just a name that you are going to give to the plugin.
    // It won't actually be used anywhere
    QString getName() { return &quot;Test Plugin&quot;; }


    // This is the text that will show in the list as the title for the
    // plugin item. It can be used to show the plugin's name or alternatively
    // some information about the barcode.
    QString getText();



    // This acts as a handler for when the plugin's list item gets clicked on
    void clickAction(QWidget *parentWindow);

    // This gets the text that gets shown underneath the plugin's name. It is
    // useful for showing some instructions or giving an idea of what the plugin does.
    void getInformativeText();


signals:

    // This &quot;signal&quot; gets sent if this plugin thinks it can handle the barcode we are sending it
    void isReady();

private slots:

    // This function gets called when a barcode gets scanned.
    // In it we will decide whether our plugin can read it and if so
    // we will let mBarcode know. We can also do a bit of processing
    // here if we want to.
    void barcodeAnalysed(QString barcodeType, QString barcodeData);


private:

    // This variable is used to store the barcode type for use after a barcode
    // has been scanned. You don't technically need this but it tends to make
    // life easier to have access to it from places other than in the
    // barcodeAnalysed function.
    QString barcodeType;

    // Same idea as above, except this one stores the data that the barcode contained.
    QString barcodeData;
};

#endif // PLUGINLOGIC_H
&lt;/syntaxhighlight&gt;

=== pluginlogic.cpp ===
We will also need to create the actual code that goes in our pluginlogic.cpp file. This code will do the work of the plugin. I am not going to add it here since using the header you should be able to create it easily enough. It will be added at a later stage though.

=== plugin.h ===
The next thing we will need for our plugin is the class that handles loading of the plugin files. This class we will call Plugin and should be created the same way you created &quot;PluginLogic&quot;.
As with &quot;pluginlogic.h&quot; you just need to copy the following code into your header file:

&lt;syntaxhighlight lang=&quot;cpp&quot;&gt;

#ifndef PLUGIN_H
#define PLUGIN_H

// We need to import this since it is used to allow us access
// to Qt's SIGNALS and SLOTS.
#include &lt;QObject&gt;

// We also need to import the mBarcode plugin headers that we
// are using. Bear in mind that these won't appear unless you added
// INCLUDEPATH += /usr/include/mbarcode-qt
// to your PRO file.
#include &quot;pluginaction.h&quot;
#include &quot;plugininterfaces.h&quot;

// Finally, we also need to import our PluginLogic class since
// we are going to use that to do the actual heavy lifting...
#include &quot;pluginlogic.h&quot;

class Plugin : public QObject, public PluginInterface
{
    Q_OBJECT

    // This just lets Qt know that we are going to structure this
    // class in the same way as a PluginInterfaces class would be.
    // This allows mBarcode to assume that the behave the same way
    // and is the core of how the plugin framework works.
    Q_INTERFACES(PluginInterface)

public:
    // We will do all of our initialization work here, this gets called
    // the first time the plugin is loaded and its purpose is to load
    // all the plugin's actions and get them set up correctly.
    void initInterface(QWidget *parent);

    // This will return a list of all the plugin actions available within
    // this plugin library. This allows one plugin file to provide numerous
    // different plugins.
    QSet&lt;PluginAction*&gt; getPluginActions();

    // This is the name used to describe your plugin.
    // This name appears on the Plugins page of mBarcode
    QString getName() { return &quot;My Plugin&quot;; }

private:
    QWidget *parent;

    // We just use this list to store the list of plugin actions for access
    // later from the getPluginActions() function.
    QSet&lt;PluginAction*&gt; pluginActions;

};

#endif // PLUGIN_H
&lt;/syntaxhighlight&gt;

=== plugin.cpp ===
And now we are almost at the final part of creating the plugin, this is where we add the code that initializes the plugin for use by mBarcode. You can copy the following code into it, just make sure to change the plugin name at the bottom to make sure you don't break something ;)

&lt;syntaxhighlight lang=&quot;cpp&quot;&gt;
// Obviously we need to import our header file...
#include &quot;plugin.h&quot;

// Here is our initialization function, in it we are going to
// do initialization for all of the plugin's features
void Plugin::initInterface(QWidget *parent)
{
    // First lets store the parent object for future reference.
    // In our plugin we won't be using this but it is a good idea
    // to store it regardless.
    this-&gt;parent = parent;

    // We need to create a new instance of our PluginLogic class
    // which we will be using.
    PluginLogic *logic = new PluginLogic(this);

    // Now we add our PluginLogic object to the list of available
    // plugin actions. If we don't do this then mBarcode won't realise
    // that our plugin actually can do anything so make sure you don't
    // forget it.
    pluginActions.insert(logic);

    // Now we need to create a signal handler for when a barcode gets
    // scanned. We would need to do this for each instance of our PluginLogic
    // class if we were providing more than one sub plugin.
    connect(parent, SIGNAL(barcodeAnalysedSignal(QString,QString)),
	    scanner, SLOT(barcodeAnalysed(QString,QString)));

    
}

// We need to implement this function to allow mBarcode to get the list of
// our plugins. If you don't mBarcode won't list your plugin, but worse Qt
// will get angry at your for not doing so (beacuse your header has this function
// declared in it)
QSet&lt;PluginAction*&gt; Plugin::getPluginActions() {
    
    // Of course we just need to return the list of actions.
    return pluginActions;
}

// Now for the final part, we let Qt know that this is a plugin.
// Just replace &quot;my_plugin&quot; with the name of your plugin and Qt will handle the rest.
Q_EXPORT_PLUGIN2(my_plugin, Plugin)
&lt;/syntaxhighlight&gt;

== Packaging ==
Okay, now that our plugin is complete you can try compiling it. It should do so without any difficulty (provided you didn't break something). Once it has been built you will need to open up your project's folder and open the &quot;qtc_packaging/debian_freemantle&quot; folder. Inside this folder are the files that will be used to create your DEB file. You can read more about what they do [http://www.debian.org/doc/debian-policy/ch-controlfields.html here] but in the mean time I will try to give you a rough guide through. Basically you need to edit the '''control''' file to add information about your package. Simply change whatever needs changing (usually enclosed in &amp;lt; and &amp;gt;). You may also want to change the '''copyright''', '''README''' and '''changelog''' files. Do '''NOT''' edit '''rules''' or '''compat''' though.

Once you have edited the package's details to your liking go back into Qt Creator and choose Maemo as your build target. To do this simply click on the picture of a computer in the bottom left of the window and choose the Maemo option. When that is done click on the Build menu (top of the screen) and choose &quot;Deploy &lt;your plugin name&gt;&quot;. This will cause Qt Creator to start building your application and when it is done it will try to send it to your phone. If your phone isn't connected (which I assume it isn't since you have been following this tutorial...you have haven't you?) it will fail on the last step. Don't worry, this is not a problem because if you open up your projects folder you should see a folder called '''&lt;your plugin name&gt;-build-maemo''' and inside that should be your shiny new DEB file.

Copy it onto your N900 and install it using dpkg like so:
&lt;blockquote&gt;
sudo gainroot
cd &lt;the folder on your N900 where you have your deb file, usually /home/user/MyDocs&gt;
dpkg -i &lt;your deb file's name&gt;
&lt;/blockquote&gt;

The final step is to open up [[MBarcode]] and scan a barcode...with any luck your plugin will  show up and process the barcode.

--[[User:spartan563|spartan563]] 23:04, 20 May 2011 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Mbarcode Plugin Tutorial MADDE</title>
    <id>4871</id>
    <revision>
      <id>43645</id>
      <timestamp>2011-05-28T13:49:35Z</timestamp>
      <contributor>
        <username>spartan563</username>
        <id>4360</id>
      </contributor>
      <comment>[[Mbarcode Plugin Tutorial MADDE]] moved to [[Mbarcode Plugin Tutorial - Qt SDK]]: This tutorial was in fact written using, and aimed at people using, the Nokia Qt SDK. Not MADDE, however Nokia's Qt SDK does include MADDE.</comment>
      <text xml:space="preserve">#REDIRECT [[Mbarcode Plugin Tutorial - Qt SDK]]</text>
    </revision>
  </page>
  <page>
    <title>Mcallerx</title>
    <id>5273</id>
    <revision>
      <id>50205</id>
      <timestamp>2012-10-15T22:29:07Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>update 0.0.2</comment>
      <text xml:space="preserve">=Introduction=

'''''Mcallerx is currently in development''''' 

Mcallerx is an application written in QML to help quickly navigate around automated call centres.

It's main use is if you require to call a call centre and you have to press lots of buttons to get through to the correct person. 

I have to do this at work multiple times a day.


There are three parts to the phone number Mcallerx sends to the phone application.

*Pre - the number you wish to dial before your user defined part.
*Root - the number in the middle (user defined part) you type this in with the applications keypad.
*Post - The number dialled after the user defined part.

===More===

More information on the package can be found ...

[http://talk.maemo.org/showthread.php?p=1276209 talk.maemo.org Mcallerx]

[http://maemo.org/packages/view/Mcallerx Package Page]

==Installation==

The latest versions can be found in the devel repository and can be installed using the N900 Application Manager (HAM). 

==Operation==

Currently in 0.0.1 the only way to set the &quot;pre&quot; and &quot;post&quot; numbers is to edit the main.qml file directly, with a text editor.

 opt/mcallerx/qml/main.qml

Locate the fixed number &quot;in the Text Section&quot; 
 default as &quot;01234567890p12341234#p1234#p1#&quot; + root.number + &quot;p1#&quot;

*The first &quot;quote&quot; of numbers is the &quot;pre&quot;

*The last &quot;quote&quot; of numbers is the &quot;post&quot;

*root.number is the part you will type in when you run the application.

==Bugs==

Please report bugs to the [http://talk.maemo.org/showthread.php?p=1276209 talk.maemo.org thread] page.


===FAQ===

&lt;none&gt;

==License/Disclaimer==

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (Version 2) as published by the Free Software. 

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 

==Credits==

Big Thank you to all that helped me with my first applcation.

Including...

Nicolai - made the original QML file 

Copernicus - help in setting up QT SDK

==To Do==

*&lt;s&gt;Initial Release&lt;/s&gt;
*&lt;s&gt;Wiki&lt;/s&gt;
*&lt;s&gt;TMO [Announce]&lt;/s&gt;
*&lt;s&gt;Bugtracker Link&lt;/s&gt;
*GUI for setting Pre and Post numbers

==Changelog==
'''0.0.2'' (Current Devel)'''''
* Fix Bugtracker Link

'''0.0.1'''
* Initial Release

==Legacy==
&lt;For future use&gt;

==Wiki Update==

:sixwheeledbeast - 15 Oct 2012 22:39 UTC</text>
    </revision>
  </page>
  <page>
    <title>MediaWiki:Common.css</title>
    <id>98</id>
    <revision>
      <id>40855</id>
      <timestamp>2010-12-21T15:23:43Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Apply underlining of headers to wiki only</comment>
      <text xml:space="preserve">/* CSS placed here will be applied to all skins */

.category_header
{
border: 1px solid #aea395; 
background:#ffd9ac; 
height: 52px; 
display: block;
position: relative;
padding: 0.1em 0.1em 0.1em 0.5em;
}

.category_header_title
{
font-size: 120%;
font-weight: bold;
position: absolute;
z-index: 10;
border: none;
text-decoration: none;
}

.category_block, td.category_block_stage
{
width:32%;
border:1px solid #e2dbd2;
background:#fff0df;
vertical-align:top;
color:#000;
}

/* wikitable/prettytable class for skinning normal tables */
table.wikitable,
table.prettytable {
    margin: 1em 1em 1em 0;
    background: #f9f9f9;
    border: 1px #aaa solid;
    border-collapse: collapse;
}
 
table.wikitable th, table.wikitable td,
table.prettytable th, table.prettytable td {
    border: 1px #aaa solid;
    padding: 0.2em;
}
 
table.wikitable th,
table.prettytable th {
    background: #f2f2f2;
    text-align: center;
}
 
table.wikitable caption,
table.prettytable caption {
    margin-left: inherit;
    margin-right: inherit;
    font-weight: bold;
}
 
table.prettytable code,
table.wikitable code {
    background-color: transparent;
}

/* Article message box styles */
table.ambox {            /* 10% = Will not overlap with other elements */
    margin: -1px 10% 0px;    /* -1px = Single border between stacked boxes in all browsers */
    border: 1px solid #aaa; 
    border-bottom: 3px solid #1e90ff;    /* Default &quot;notice&quot; blue */
    background: #fbfbfb; 
}
th.ambox-text, td.ambox-text {     /* The message body cell(s) */
    border: none; 
    padding: 0.25em 0.5em;         /* 0.5em left/right */
    width: 100%;                   /* Make all templates the same width regardless of text length */
}
td.ambox-image {                   /* The left image cell */
    border: none; 
    padding: 2px 0 2px 0.5em;      /* 0.5em left, 0px right */
    text-align: center; 
}
td.ambox-imageright {              /* The right image cell */
    border: none; 
    padding: 2px 0.5em 2px 0;      /* 0px left, 0.5em right */
    text-align: center; 
}
 
table.ambox-notice {
    border-bottom: 3px solid #1e90ff;    /* Blue */
}
table.ambox-speedy {
    border-bottom: 3px solid #b22222;    /* Red */
    background: #fee;                   /* Pink */
}
table.ambox-delete,
table.ambox-serious {
    border-bottom: 3px solid #b22222;    /* Red */
}
table.ambox-content {
    border-bottom: 3px solid #f28500;    /* Orange */
}
table.ambox-style {
    border-bottom: 3px solid #f4c430;    /* Yellow */
}
table.ambox-move,
table.ambox-merge {
    border-bottom: 3px solid #9932cc;    /* Purple */
}
table.ambox-protection {
    border-bottom: 3px solid #bba;       /* Gray-gold */
}
table.ambox.ambox-mini {    /* Small floating box variant */
    float: right;
    clear: right;
    margin: 0 0 0 1em;
    width: 25%;
}
@media print {              /* Do not print article message boxes */
    .ambox {
        display: none;
    }
}

h1, h2
{
    border-bottom-width: 1px;
    border-bottom-style: solid;
    border-bottom-color: rgb(170,170,170);
}</text>
    </revision>
  </page>
  <page>
    <title>Media Player Album Art</title>
    <id>3532</id>
    <revision>
      <id>28499</id>
      <timestamp>2010-02-06T17:43:32Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Showing album art in the Media Player]]</comment>
      <text xml:space="preserve">#REDIRECT [[Showing album art in the Media Player]]</text>
    </revision>
  </page>
  <page>
    <title>MeeCoLay</title>
    <id>5187</id>
    <revision>
      <id>50652</id>
      <timestamp>2012-11-04T08:45:33Z</timestamp>
      <contributor>
        <username>marmistrz</username>
        <id>4691</id>
      </contributor>
      <minor/>
      <comment>/* Extra */</comment>
      <text xml:space="preserve">== What is MeeCoLay? ==

MeeCoLay stands for MeeGo Compatibility Layer. It allows to run Harmattan apps on Fremantle.

== Configuration ==

The first configuration should be in your mind ;)

DO NOT RUN MEEGO APPS AS ROOT. This may cause them to crash.

=== First preparations ===

First of all you need to have an updated packages list and extras-devel repository enabled, as meecolay always having new updates, new dependencies, new libraries packs.

Each command should be run as root. You can obtain root shell by

 sudo gainroot

Beware of root shell, as using it wrong you may brick your N900.

Update your package list using application manager via &quot;update&quot; button or using terminal
 apt-get update

Now you are ready to install meecolay ! 
 apt-get install meecolay
Will install almost everything needed.
Meecolay ships with its own included repo if you haven't manually installed newer version of glib2.0-0 or sqlite3, you may want to download them with
 apt-get install libglib2.0-0 sqlite3 libsqlite3-0
Even if you don't install those packages, they should be automatically installed when they're needed when you try to correct dependencies 
 apt-get install -f
Note: that if the package gets uninstalled after this command, you need to modify its DEBIAN/control. Uninstall it, otherwise you won't be able to install anything else !. Modify the depends and install again. This should be eased up in the future.
Now you are ready to try MeeGo games and apps using this command
 meecolay /path/to/executable

== Compatibility ==
{{main|MeeCoLay/Compatibility}}
The [[MeeCoLay/Compatibility|compatibility page]] lists programs that could be successfully executed and worked, reported by users. It also lists programs that partially work and also incompatible (yet?) programs.

== Workarounds ==
{{main|MeeCoLay/Workarounds}}
The [[MeeCoLay/Workarounds|workarounds page]] lists some common errors you might encounter while running an app through MeeCoLay, and how you can fix those errors.

== Bugs and Discussion ==
Discuss MeeCoLay in [http://talk.maemo.org/showthread.php?t=84482 this talk.maemo.org thread].

Missing libraries and bugs should be reported in bugtracker: https://bugs.maemo.org/enter_bug.cgi?product=MeeCoLay

== Extra ==
Would you like to have a GUI for MeeCoLay?
It will:

*make installing Harmattan applications on Fremantle (N900) much easier and more user-friendly.

*move the icons and the desktop file to the right directory, so that you can launch it from the menu straight after installation.

*contain a function to add custom commands in the desktop file for running the applications.

*fetch any other changes than need to be done for flawless installation under Fremantle

*ask you how you want the apps to be installed - whether automatically with HAM (Hildon Application Manager) or manually (e.g. with dpkg)

*add to the menu entries a fix for forced rotation: you won't have to lock the rotation manually anymore!

*be a graphically-rich Qt/QML user interface

*include command-line tools, hopefully :)

Do you like the idea? If yes, please consider giving more motivation to the MeeCoLay developer (marmistrz) and donating.

You may as well pledge the donation, and pay after the development of the user interface has finished.

Donation link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=WUAUBSU3QQLNL

The more donations are received/pledged, the faster the GUI will be created!</text>
    </revision>
  </page>
  <page>
    <title>MeeCoLay</title>
    <id>5187</id>
    <revision>
      <id>50652</id>
      <timestamp>2012-11-04T08:45:33Z</timestamp>
      <contributor>
        <username>marmistrz</username>
        <id>4691</id>
      </contributor>
      <minor/>
      <comment>/* Extra */</comment>
      <text xml:space="preserve">== What is MeeCoLay? ==

MeeCoLay stands for MeeGo Compatibility Layer. It allows to run Harmattan apps on Fremantle.

== Configuration ==

The first configuration should be in your mind ;)

DO NOT RUN MEEGO APPS AS ROOT. This may cause them to crash.

=== First preparations ===

First of all you need to have an updated packages list and extras-devel repository enabled, as meecolay always having new updates, new dependencies, new libraries packs.

Each command should be run as root. You can obtain root shell by

 sudo gainroot

Beware of root shell, as using it wrong you may brick your N900.

Update your package list using application manager via &quot;update&quot; button or using terminal
 apt-get update

Now you are ready to install meecolay ! 
 apt-get install meecolay
Will install almost everything needed.
Meecolay ships with its own included repo if you haven't manually installed newer version of glib2.0-0 or sqlite3, you may want to download them with
 apt-get install libglib2.0-0 sqlite3 libsqlite3-0
Even if you don't install those packages, they should be automatically installed when they're needed when you try to correct dependencies 
 apt-get install -f
Note: that if the package gets uninstalled after this command, you need to modify its DEBIAN/control. Uninstall it, otherwise you won't be able to install anything else !. Modify the depends and install again. This should be eased up in the future.
Now you are ready to try MeeGo games and apps using this command
 meecolay /path/to/executable

== Compatibility ==
{{main|MeeCoLay/Compatibility}}
The [[MeeCoLay/Compatibility|compatibility page]] lists programs that could be successfully executed and worked, reported by users. It also lists programs that partially work and also incompatible (yet?) programs.

== Workarounds ==
{{main|MeeCoLay/Workarounds}}
The [[MeeCoLay/Workarounds|workarounds page]] lists some common errors you might encounter while running an app through MeeCoLay, and how you can fix those errors.

== Bugs and Discussion ==
Discuss MeeCoLay in [http://talk.maemo.org/showthread.php?t=84482 this talk.maemo.org thread].

Missing libraries and bugs should be reported in bugtracker: https://bugs.maemo.org/enter_bug.cgi?product=MeeCoLay

== Extra ==
Would you like to have a GUI for MeeCoLay?
It will:

*make installing Harmattan applications on Fremantle (N900) much easier and more user-friendly.

*move the icons and the desktop file to the right directory, so that you can launch it from the menu straight after installation.

*contain a function to add custom commands in the desktop file for running the applications.

*fetch any other changes than need to be done for flawless installation under Fremantle

*ask you how you want the apps to be installed - whether automatically with HAM (Hildon Application Manager) or manually (e.g. with dpkg)

*add to the menu entries a fix for forced rotation: you won't have to lock the rotation manually anymore!

*be a graphically-rich Qt/QML user interface

*include command-line tools, hopefully :)

Do you like the idea? If yes, please consider giving more motivation to the MeeCoLay developer (marmistrz) and donating.

You may as well pledge the donation, and pay after the development of the user interface has finished.

Donation link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=WUAUBSU3QQLNL

The more donations are received/pledged, the faster the GUI will be created!</text>
    </revision>
  </page>
  <page>
    <title>MeeCoLay/Compatibility</title>
    <id>5175</id>
    <revision>
      <id>49846</id>
      <timestamp>2012-09-23T13:36:22Z</timestamp>
      <contributor>
        <username>sifo</username>
        <id>5350</id>
      </contributor>
      <text xml:space="preserve">{| class=&quot;wikitable sortable&quot;
| App Name
| Package name
| Version
! width=&quot;100&quot; | Status
| Bug(s)
| MeeCoLay version
|-
| 5 In a Row - Tic Tac Toe || 5inarow || 0.5.0 || style=&quot;background-color:green;&quot; | Working || N/A || 0.9.3-2
|-
| Alchemist
| alchemist
| 1.0.1
| style=&quot;background-color:green;&quot; | Working
| Rotation lock required
| 0.9.1
|-
| Alcoholtester || alcoholtester || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.1
|-
| Allegro || allegro || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.0
|-
| Animals Photo Match || AnimalsPhotoMatch || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.5-2
|-
| Backgammon Deluxe || BackgammonDeluxe || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.4
|-
| Battle Earth || BattleEarth || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.5-2
|-
| Blood Throne || Bloodthrone || 0.8.2 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.3-2
|-
| Ceneo || ceneo || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.1
|-
| Circus Run || CircusRun || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.5-2
|-
| Convert || convert || 0.1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required, not work key on statusbar || 0.9.1
|-
| Domino || Maysalward_Dominoes || 0.0.1 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.3-2
|-
| Ebay Bargains || ebaybargains-fumbo || 1.0.3 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.0
|-
| ESPNF1 || espnf1 || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required, size screen too big on n900 || 0.9.1
|-
| Fantastic Checkers || fantastic_checkers || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.3-2
|-
| Fillr || fillr || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.3-2
|-
| Flag Mines || FlagMines || 1.1 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.3-2
|-
| Football Live Scores || flscores || 1.0.3 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.2
|-
| FruitGo || FruitGo || 2.0.0 || style=&quot;background-color:green;&quot; | Working || N/A || 0.9.4-2
|-
| guessCricket || guesscricket || 1.0.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.0
|-
| Heebo || heebo || 1.0.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.3-2
|-
| Ipla || ipla || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required, back key on player turn off app || 0.9.1
|-
| Jose mobile || josemobile || 1.0.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.3-2
|-
| Let's MeeGo|| letsmeego || 0.0.1 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.3-2
|-
| MNonograms  || mnonograms || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required,  || 0.9.3-2
|-
| Meemory || meemory || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required,  || 0.9.5-2
|-
| Nano Particles  || nanoparticles || 2.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.3-2
|-
| Number Puzzle  || numberpuzzle || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required,  || 0.9.3-2
|-
| Onet Live Zone || livezoneharmattan || 1.0 || style=&quot;background-color:green;&quot; | Working || N/A || 0.9.1
|-
| ProgramTV || programtv || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.1
|-
| Pocket Piglet || PocketPiglet || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.5-2
|-
| QtetriX || qtetrix || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock require|| 0.9.5-2
|-
| Sexy Dice || MeegoSexyDice854x480 || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.5-2
|-
| Shopper || shopper || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.1
|-
| Siberdrome || Siberdrome || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.5-2
|-
| Spot The Difference || spotthedifference || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.5-2
|-
| Rabbits Darts || RabbitFlaying || 1.0 || style=&quot;background-color:green;&quot; | Working || A little slow in selecting menu,  Rotation lock required || 0.9.5-2 
|-
| Smash Mania || smashmania || 1.0.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.3-2
|-
| Solitaire Games || solitairegames || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.5-2
|-
| Taco Master || Tacomaster || 1.0.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.3-2
|-
| Terrific Tic Tac Toe || EnsenaSoft Terrific Tic Tac Toe || 1.00 || style=&quot;background-color:green;&quot; | Working || Rotation lock required,  || 0.9.3-2
|-
| Texas Hold'em Online HD || TexasHold'emOnlineHD || 1.04 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.3-2
|-
| The Football App|| thefootballapp|| 1.2.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.1
|-
| TVN24|| tvn24|| 1.0.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.0
|-
| World Flags Match || WorldFlagsMatch || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.5-2 
|-
| WynikiLotto || wynikilotto || 1.0 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.3-2
|-
| DingMee || dingmee || 0.1.2 || style=&quot;background-color:green;&quot; | Working || Rotation lock required || 0.9.5-2
|-
| SzybkiDemot || szybkidemot || ? || style=&quot;background-color:skyblue;&quot; | Partially working || Need to implement multitouch zoom mapping || 0.9.1
|-
| Train Tiles || Traintiles || 1.0 || style=&quot;background-color:skyblue;&quot; | Partially working || Rotation lock required The train is not visible || 0.9.5-2
|-
| Ripoff || colorbox || 1.0 || style=&quot;background-color:yellow;&quot; | Unusable || Black/white rectangles instead of graphics || 0.9.1
|-
| Twoja Pogoda || pogoda || 1.0.0 || style=&quot;background-color:yellow;&quot; | Unusable || Crashes the system || 0.9.1
|-
| Unblockme || unblockmee || 1.0 || style=&quot;background-color:yellow;&quot; | Unusable || Wrong screen rotation || 0.9.5-2
|-
| Angry Birds Magic NFC || rovio || 1.1.5 || style=&quot;background-color:red;&quot; | Not Working || error while loading shared libraries: libresourceqt.so.1: cannot open shared object file: No such file or directory || 0.9.1
|-
| Candy Boy || candyboy  || 1.0 || style=&quot;background-color:red;&quot; | not working || start QtGame install at id: 2 application event: 68 game init application event: 68 Found SGX/MBX driver, enabling FullClearOnEveryFrame Found v1.3 driver, enabling brokenFBOReadBack openglInit openglINit finish || 0.9.5-2
|-
| Bejeweled 2 HD || ea || 0.0.60 || style=&quot;background-color:red;&quot; | not working || error while loading shared libraries: libcontactswidgets.so.0: cannot open shared object file: No such file or directory || 0.9.1
|-
| Forum TMO || forum-tmo || 1.0 || style=&quot;background-color:red;&quot; | not working || error while loading shared libraries: libAccountSetup.so.1: cannot open shared object file: No such file or directory || 0.9.5-2
|-
| Flag mine || skidstone || 1.0 || style=&quot;background-color:red;&quot; | not working || Segmentation fault || 0.9.5-2
|-
| GApp || gapp || 0.9.5 || style=&quot;background-color:red;&quot; | Not working || Segmentation fault || 0.9.1
|-
| Jelly Wars || jellywars-full || 1.25.0 || style=&quot;background-color:red;&quot; | not working ||  error while loading shared libraries: libQtMeeGoGraphicsSystemHelper.so.4: cannot open shared object file: No such file or directory || 0.9.1
|-
| Manacla Kahan || MancalaKalah || 1.0 || style=&quot;background-color:red;&quot; | not working || QCursor: Cannot create bitmap cursor; invalid bitmap(s) QCursor: Cannot create bitmap cursor; invalid bitmap(s) Autosave file: /usr/share/applications/autosave.mks Window Activated Floating point exception || 0.9.5-2
|-
| N9 Quran || n9-quran || 1.0 || style=&quot;background-color:red;&quot; | not working || symbol lookup error: /opt/meecolay/bin/apps/n9-quran/usr/bin/n9-quran: undefined symbol: _ZN7MWindow24setRoundedCornersEnabledEb || 0.9.5-2
|}</text>
    </revision>
  </page>
  <page>
    <title>MeeCoLay/Workarounds</title>
    <id>5228</id>
    <revision>
      <id>50647</id>
      <timestamp>2012-11-03T21:27:59Z</timestamp>
      <contributor>
        <username>sifo</username>
        <id>5350</id>
      </contributor>
      <comment>/* Adding apps/games to the applications menu */</comment>
      <text xml:space="preserve">== Workarounds ==

=== Qt Mobility ===

Error: 

    plugin cannot be loaded for module &quot;QtMobility.location&quot;: Cannot load library /opt/qtm12/imports/QtMobility/location/libdeclarative_location.so: (/opt/qtm12/imports/QtMobility/location/libdeclarative_location.so: undefined symbol: _ZNK10QtMobility13QGeoMapObject10metaObjectEv)

Solution:

    LD_PRELOAD=/opt/qtm12/lib/libQtLocation.so meecolay &lt;with your arguments&gt;

=== Qt Mobility ===

Error:
    symbol lookup error: /home/opt/meecolay/opt/GTRacing/bin/GTRacing: undefined symbol: _ZN10QtMobility18QSystemScreenSaver23setScreenSave rInhibitedEb

Solution:
    LD_PRELOAD=/opt/qtm12/lib/libQtSystemInfo.so meecolay &lt;with your arguments&gt;

Error: 
    undefined symbol: _ZN14QCameraControl16staticMetaObjectE

Solution:
    LD_PRELOAD=/opt/qtm12/lib/libQtMultimediaKit.so meecolay &lt;with your arguments&gt;

If you need to preload several libraries, do it that way: 
    LD_PRELOAD=&quot;library1:library2&quot;

=== QmSystem2 ===

Error:
    symbol lookup error: /opt/meecolay/lib/libqmsystem2.so.1: undefined symbol: dsme_battery_empty_ind

Solution
    LD_PRELOAD=/opt/meecolay/lib/libdsme_dbus_if.so.0.2.0 meecolay &lt;with your arguments&gt;

== Adding apps/games to the applications menu ==

After installing Harmattan packages on N900 you won't see any icon, as some directories are different on Fremantle and Harmattan
as as example  

The app data is stored in optfs after installation... 
You'll have to move the desktop file and the icon to the right directories if you want to have an icon in the app menu


the desktop file: you should move it from 
 /usr/share/applications/
to
 /usr/share/applications/hildon/

the icon, from: 
 /usr/share/icons/hicolor/80x80/apps/
or
 /usr/share/icons/hicolor/64x64/apps/
to 
 /usr/share/icons/hicolor/scalable/apps/

Now you only need to modify the desktop file to make the game working with meecolay ! 
We'll take FruitGo as an example
on leafpad (or any other text editor you like).
 leafpad /usr/share/applications/hildon/FruitGo.desktop
you will see this : 
 [Desktop Entry]
 Encoding=UTF-8
 Version=1.0
 Type=Application
 Terminal=false
 Name=FruitGo
 Exec=/usr/bin/invoker --type=d -s /opt/FruitGo/bin/FruitGo
 Icon=/usr/share/icons/hicolor/80x80/apps/FruitGo80.png
 X-Window-Icon=
 X-HildonDesk-ShowInToolbar=true
 X-Osso-Type=application/x-executable
remove the exec commands and write meecolay instead, so the desktop file should look like this one :
 [Desktop Entry]
 Encoding=UTF-8
 Version=1.0
 Type=Application
 Terminal=false
 Name=FruitGo
 Exec=meecolay /opt/FruitGo/bin/FruitGo
 Icon=FruitGo80
 X-Window-Icon=
 X-HildonDesk-ShowInToolbar=true
 X-Osso-Type=application/x-executable

now the game should work!
You may need to restart the phone for the changes to make effect.

== Meecolay FAQ ==

#What should i do if im using custom command for running my application and i want to launch that application from my menu ?

You can just add that command to the Exec field in the desktop file of that application.</text>
    </revision>
  </page>
  <page>
    <title>MeeGo Coding Competition 2011</title>
    <id>4826</id>
    <revision>
      <id>47574</id>
      <timestamp>2012-05-24T19:49:56Z</timestamp>
      <contributor>
        <username>zehjotkah</username>
        <id>2328</id>
      </contributor>
      <comment>Undo revision 47573 by [[Special:Contributions/Zehjotkah|Zehjotkah]] ([[User talk:Zehjotkah|Talk]])</comment>
      <text xml:space="preserve">== Introduction ==
[[Image:Logo_MeeGo_Competition_2011.jpg‎|left|thumb|245px|Logo is created by [http://talk.maemo.org/showpost.php?p=978495&amp;postcount=55 noobmonkey]]]
The wait is over!

We are proud to announce the [[MeeGo Coding Competition 2011]]!

As successor it will follow the good example of the community driven [[Maemo Coding Competition 1|Maemo Coding Competition 2010]]. [http://flors.wordpress.com/2010/08/10/n900-coding-competition-a-grassroots-community-success/ Quim Gil wrote] a lot of good things about this &quot;grass roots community success&quot;.

To make this year's competition bigger and better, we urge all MeeGo enthusiasts to organize events during the MeeGo Coding Competition 2011 in their [http://wiki.meego.com/Local_MeeGo_Networks Local MeeGo Network]. We are sure that Intel and Nokia are going to assist you doing that. Please [mailto:info@meetmeego.org contact us] to get in touch with Intel and Nokia.
&lt;br /&gt;
&lt;br /&gt;

== Categories ==

'''This List is still in a Draft state'''

There are 8 main categories for submissions:

*Business &amp; Office
*Games
*Desktop (Widgets)
*Fun &amp; Strange
*Graphics &amp; Multimedia
*Location &amp; Navigation
*Network &amp; Communication
*System &amp; Utilities

In addition, there is an extra category especially for those new to Maemo/MeeGo development: 

*Beginners

== Competition Timeline ==

The competition for all categories other than Desktop (Widgets) ended 31 July 2011. New submissions to the Desktop (Widgets) category will be accepted until 7 August 2011 inclusive. Voting will then take place for all categories.

==How to Submit an Application==

To enter, simply submit your application via the competition submission page available at [http://competition.meetmeego.org/ http://competition.meetmeego.org/] and align it to one of the main categories[http://wiki.maemo.org/MeeGo_Coding_Competition_2011#Categories]. You will also need to provide some details for the judging thread, including at least 2 screenshots, a brief description of your application, and an outline of what work you personally completed on it. 

Authors who mark their entry as 'beginner' will also have their application automatically entered into the beginner category. 

Only applications entered through the submission page will be counted as valid entries in the competition. New participants are welcome to join at any time up until the closing date.

== Prizes ==

*Apart from the '''educational events''' and the fun at coding there is a lot more for you!

*If you will be elected by the community as the main winner of one category, you will '''win a Nokia N9!'''

*If you will be elected by the community as the second main winner of one category, you will '''win a Nokia N900!''''

*But even if you don’t win one of the main prizes, that does not mean you get nothing! We will have cash prizes this time, too, '''independent of sponsorship''' funds! Last time the community donated extensively, and about $1000.00 came together! Will we be able to beat the record-sum this year? [https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=H2GPET39E4JWU Your donation is just a click away]!

*The winning author of the beginner category will also receive a '''MeeGo application programming book''' of their choice to help develop their skills further (donated by Kojacker)[http://talk.maemo.org/showpost.php?p=991031&amp;postcount=158]

== Donations for the Community Prize Fund ==

The following list shows all of the donations made to the community prize fund so far. If you would also like to make a donation please click the following link: [https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=H2GPET39E4JWU Donation via PayPal].
Remember to include your maemo.org username in the PayPal messaging box [http://talk.maemo.org/showpost.php?p=991684&amp;postcount=177], else the donation will be marked as anonymous. There is no fixed amount - all donations are very welcome - and will be accepted from now until the closing date of the competition. 


Our special thanks to the following people for their generous contributions:

{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Date'''
! Nickname'''
! Amount (gross) in €
! PayPal fee in €
! Amount (net) in €
|-
| 4/2/2011||[http://talk.maemo.org/member.php?u=29756 kolos]||5,00||-0,45||4,55
|-
| 4/3/2011||[http://talk.maemo.org/member.php?u=21992 nicolai]||10,00||-0,54||9,46
|-
| 4/3/2011||[http://talk.maemo.org/member.php?u=32339 kojacker]||50,00||-1,30||48,70
|-
| 4/4/2011||[http://talk.maemo.org/member.php?u=44304 marxian]||10,00||-0,54||9,46
|-
| 4/7/2011||[http://talk.maemo.org/member.php?u=7232 jukey]||15,00||-0,64||14,36
|-
| 4/11/2011||[http://talk.maemo.org/member.php?u=30205 eMiL]||15,00||-0,64||14,36
|-
| 4/14/2011||[http://talk.maemo.org/member.php?u=24995 Helmuth]||20,00||not via PayPal||20,00
|-
| 4/15/2011||[http://talk.maemo.org/member.php?u=32112 burgwinkel]||18,00||-1,05||16,95
|-
| 4/15/2011||[http://talk.maemo.org/member.php?u=29249 slender]||15,00||-0,64||14,36
|-
| 4/17/2011||[http://wiki.maemo.org/User:Arrancamos Arrancamos]||5,00||-0,55||4,45
|-
| 4/17/2011||||5,00||-0,45||4,55
|-
| 4/18/2011||||10,00||-0,74||9,26
|-
| 4/19/2011||[http://talk.maemo.org/member.php?u=35934 benlau]||50,00||-2,30||47,70
|-
| 4/21/2011||[http://talk.maemo.org/member.php?u=34156 ZogG]||15,00||-0,94||14,06
|-
| 4/23/2011||[http://talk.maemo.org/member.php?u=50646 MyNokiaN900]||30,00||-0,92||29,08
|-
| 4/23/2011||[http://talk.maemo.org/member.php?u=50834 geekgirl74]||10,00||-0,54||9,46
|-
| 4/23/2011||[http://talk.maemo.org/member.php?u=31668 gabby131]||20,00||-1,13||18,87
|-
| 4/28/2011||[http://talk.maemo.org/member.php?u=1203 jurop88]||20,00||-0,73||19,27
|-
| 4/28/2011||[http://talk.maemo.org/member.php?u=14379 Creamy Goodness]||25,00||-1,33||23,67
|-
| 5/02/2011||[http://maemo.org/profile/view/claw/ claw]||15,00||-0,64||14,36
|-
| 5/09/2011||[http://talk.maemo.org/member.php?u=16742 OVK]||30,00||-0,92||29,08
|-
| 5/11/2011||[http://talk.maemo.org/member.php?u=45267 br1zer]||10,00||-0,54||9,46
|-
| 5/11/2011||[http://talk.maemo.org/member.php?u=53184 tpd]||10,00||-0,54||9,46
|-
| 5/12/2011|| ||25,00||-0,83||24,17
|-
| 5/14/2011||hassyy||10,00||-0,74||9,26
|-
| 5/14/2011||mdb666||30,00||-0,92||29,08
|-
| 6/01/2011||[http://talk.maemo.org/member.php?u=32364 toucan murphy] [http://talk.maemo.org/member.php?u=20628 casper27] [http://talk.maemo.org/member.php?u=51598 reinob]||15,00||-0,64||14,36
|-
| 6/10/2011||[http://talk.maemo.org/member.php?u=23583 mece]||20,00||-0,73||19,27
|-
| 6/11/2011||[http://talk.maemo.org/member.php?u=26315 sony123]||10,00||-0,74||9,26
|-
| 6/10/2011||[http://talk.maemo.org/member.php?u=27137 ivgalvez]||20,00||-0,73||19,27
|-
| 6/11/2011||[http://talk.maemo.org/member.php?u=30579 ljo]||20,00||-0,73||19,27
|-
| 6/12/2011||[http://talk.maemo.org/member.php?u=37398 erendorn]||20,00||-0,73||19,27
|-
| 6/14/2011||[http://talk.maemo.org/member.php?u=14379 Creamy Goodness]||30,00||-1,52||28,48
|-
| 6/20/2011|| ||10,00||-0,54||9,46
|-
| 6/25/2011|| ||20,00||-0,73||19,27
|-
| 6/27/2011|| ||20,00||-0,73||19,27
|-
| 7/03/2011||[http://talk.maemo.org/member.php?u=42513 rotoflex]||10,00||-0,74||9,26
|-
| 7/03/2011|| ||170,00||-3,58||166,42
|-
| 7/06/2011||[http://talk.maemo.org/member.php?u=28283 mmlado]||11,00||-0,56||10,44
|-
| 7/22/2011||[http://talk.maemo.org/member.php?u=7686 ysss]||100,00||-4,25||95,75
|-
| 9/05/2011||[http://talk.maemo.org/member.php?u=51598 reinob]||50,00||not via PayPal||50,00
|-
| 11/02/2011||[http://talk.maemo.org/member.php?u=45140 hansaka]||0,50||-0,37||0,13
|-
| 11/08/2011|| ||10,00||-0,54||9,46
|-
| 11/10/2011||[http://talk.maemo.org/member.php?u=1006 silpol]||10,00||-0,54||9,46
|}

== Participants ==

To enter, please submit your application via the competition submission page available at [http://competition.meetmeego.org/ http://competition.meetmeego.org/]. Please note that only applications entered through the submission page will be counted as valid entries in the competition. New participants are welcome to join at any time up until the closing date.


The following list is to notify us of your intentions to enter the competition. Please fill in the table with your application details and progress so far. Beginner's should also mark a 'Y' in the beginner's column.
 
{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Developer
! Application
! Category
! Current Progress (%)
! Beginner Entry (Y/N)
! Submitted to official page
|-
| [http://talk.maemo.org/member.php?u=29528 wonko]
| [http://meepasswords.garage.maemo.org/ MeePasswords - Keep your passwords protected.]
| Business &amp; Office
| 85%
| N
| [http://competition.meetmeego.org/submissions/68 Yes]
|-
| [http://talk.maemo.org/member.php?u=7510 khertan]
| [http://khertan.net/khteditor KhtEditor]
| Desktop
| 60%
| N
| [http://competition.meetmeego.org/submissions/60 Yes]
|-
| [http://talk.maemo.org/member.php?u=38083 helex]
| [http://talk.maemo.org/showthread.php?t=72408 Conky Layout Switcher]
| Desktop
| 40%
| N
| [http://competition.meetmeego.org/submissions/6 Yes]
|-
| [http://talk.maemo.org/member.php?u=44304 marxian]
| [http://talk.maemo.org/showthread.php?p=982353 cuteTube-QML]
| Graphics &amp; Multimedia
| 70%
| N
| [http://competition.meetmeego.org/submissions/3 Yes]
|-
| [http://talk.maemo.org/member.php?u=25226 admiral0]
| PhoneManager (Mobile Webui)
| System &amp; Utilities
| 10%
| N
| No :-(
|-
| [http://talk.maemo.org/member.php?u=25226 admiral0]
| Minerva (Text Editor)
| System &amp; Utilities
| 60%
| N
| No :-(
|-
| [http://talk.maemo.org/member.php?u=45010 joseph9560]
| [http://talk.maemo.org/showthread.php?p=988753 Nepali Calendar(nepcal)]
| Business &amp; Office
| 90%
| Y
| [http://competition.meetmeego.org/submissions/2 Yes]
|-
| [http://talk.maemo.org/member.php?u=6503 vasvlad]
| [http://forum.meego.com/showthread.php?t=2698 OMWeather for Meego (QML)]
| Desktop
| 100%
| N
| [http://competition.meetmeego.org/submissions/47 Yes]
|-
| [http://talk.maemo.org/member.php?u=29906 cb22]
| Immoral (Mail Client in QML)
| Business &amp; Office
| 1%
| Y
| No :-(
|-
| [http://talk.maemo.org/member.php?u=48642 piggz]
| [http://talk.maemo.org/showthread.php?t=74929 PGZ Every trail]
| Location &amp; Navigation
| 75%
| Y
| Not Yet
|-
| [http://talk.maemo.org/member.php?u=48642 piggz]
| [http://talk.maemo.org/showthread.php?t=71888 Space Invaders (QML)]
| Games
| 75%
| Y
| [http://competition.meetmeego.org/submissions/10 Yes]
|-
| [http://talk.maemo.org/member.php?u=47953 jkosonen]
| [http://talk.maemo.org/showthread.php?p=986587 Balloon Popper (QML)]
| Games
| 95%
| Y
| No :-(
|-
| [http://talk.maemo.org/member.php?u=28283 mmlado]
| [http://projects.forum.nokia.com/demine Demine (QML)]
| Games
| 50%
| N
| [http://competition.meetmeego.org/submissions/79 Yes]
|-
| [http://talk.maemo.org/member.php?u=49019 trx]
| [http://talk.maemo.org/showthread.php?t=68582 TxPad (Code Editor)]
| System &amp; Utilities
| 45%
| Y
| [http://competition.meetmeego.org/submissions/5 Yes]
|-
| [http://talk.maemo.org/member.php?u=52335 intelloware]
| [http://meego-central.org/content/show.php?action=content&amp;content=140034 My Little Artist (Qt + QML)]
| Graphics &amp; Multimedia
| 90%
| N
| no :-(
|-
| [http://talk.maemo.org/member.php?u=25711 Arrancamos]
| [http://wiki.maemo.org/User:Arrancamos Media Purger]
| Beginner
| 20%
| Y
| No :-(
|-
| [http://talk.maemo.org/member.php?u=31871 Dotblank]
| CryptoWallet (Bitcoin Client)
| Network &amp; Communication
| 0%
| N
| No :-(
|-
| [http://talk.maemo.org/member.php?u=52991 Hilary Cheng]
| Plurker (Plurk Client http://www.plurk.com/ in QML &amp; Qt C++ )
| Network &amp; Communication
| 10%
| Y
| No :-(
|-
| [http://talk.maemo.org/member.php?u=38083 helex]
| [http://talk.maemo.org/showthread.php?p=1010590 N900-X-Ray]
| Fun &amp; Strange
| 30%
| N
| [http://competition.meetmeego.org/submissions/22 Yes]
|-
| [http://wiki.maemo.org/User:Vater_frost Vater Frost]
| Tribute (http://competition.meetmeego.org/submissions/8)
| Games
| 60%
| N
| [http://competition.meetmeego.org/submissions/8 Yes]
|-
| [http://wiki.maemo.org/User:norayr Norayr Chilingarian]
| [https://garage.maemo.org/frs/?group_id=20652 Photographic light meter]
| Graphics &amp; Multimedia
| 60%
| Y
| [http://competition.meetmeego.org/submissions/12 Yes]
|-
| [http://wiki.maemo.org/User:dragly Svenn-Arne Dragly]
| Nanoparticles
| Games
| 100%
| N
| [http://competition.meetmeego.org/submissions/19 Yes]
|-
| [http://talk.maemo.org/member.php?u=38083 helex]
| [http://talk.maemo.org/showthread.php?p=1001316 ClipMan - Clipboard Manager]
| Business &amp; Office
| 30%
| N
| [http://competition.meetmeego.org/submissions/13 Yes]
|-
| [http://talk.maemo.org/member.php?u=5232 Tommi Laukkanen]
| [http://www.substanceofcode.com/2011/05/04/nelisquare-preview-video/ Nelisquare] - Foursquare client
| Location &amp; Navigation 
| 100%
| N
| [http://competition.meetmeego.org/submissions/73 Yes]
|-
| [http://talk.maemo.org/member.php?u=5232 Tommi Laukkanen]
| [https://projects.developer.nokia.com/meetodo MeeToDo] - Getting Things Done app
| Business &amp; Office 
| 100%
| N
| [http://competition.meetmeego.org/submissions/74 Yes]
|-
| [http://talk.maemo.org/member.php?u=23660 mardy]
| [http://blog.mardy.it/2011/05/oculo-dynamic-web-content-to-your-n900.html Oculo]
| Desktop
| 90%
| N
| [http://competition.meetmeego.org/submissions/14 Yes]
|-
| [http://talk.maemo.org/member.php?u=44350 mikelima]
| Quando Parte (Qt) - Check Italian train departures and arrivals
| Location and Navigation
| 90%
| Y
| [http://competition.meetmeego.org/submissions/15 Yes]
|-
| [http://talk.maemo.org/member.php?u=53184 tpd]
| Inner-Spin
| Games
| 90%
| Y
| [http://competition.meetmeego.org/submissions/16 Yes]
|-
| [http://talk.maemo.org/member.php?u=53524 kecsap]
| Ball Game
| Games
| ~100%
| N
| [http://competition.meetmeego.org/submissions/17 Yes]
|-
| [http://talk.maemo.org/member.php?u=33326 tedvdb]
| FourCircle
| Location &amp; Navigation
| 40%
| N
| [http://competition.meetmeego.org/submissions/23 Yes]
|-
| [http://talk.maemo.org/member.php?u=52792 Michael Hsueh]
| MIR Translator
| System &amp; Utilities
| 100%
| Y
| [http://competition.meetmeego.org/submissions/24 Yes]
|-
| [http://talk.maemo.org/member.php?u=26315 sony123]
| stockona - stock quote client for google finance
| Business &amp; Office
| 80%
| Y
| [http://competition.meetmeego.org/submissions/25 Yes]
|-
| [http://talk.maemo.org/member.php?u=23583 mece]
| Tweed Suit - a heavy weight twitter client and rss reader
| Network &amp; Communication
| 80%
| N
| [http://competition.meetmeego.org/submissions/29 Yes]
|-
| [http://talk.maemo.org/member.php?u=6957 kimitake]
| qwassr - micro blogging client for twitter.com, wassr.jp, and identi.ca
| Network &amp; Communication
| 60%
| N
| [http://competition.meetmeego.org/submissions/30 Yes]
|-
| [http://talk.maemo.org/member.php?u=28712 vitaminj]
| [http://jenkins.vitaminj.co.uk/job/meex/ meex] - Simple mp3 DJing application
| Graphics &amp; Multimedia
| 30%
| N
| No :-(
|-
| [http://talk.maemo.org/member.php?u=37802 helihyv]
| Ghosts Overboard
| Games
| 60%
| N
| [http://competition.meetmeego.org/submissions/36 Yes]
|-
| [http://talk.maemo.org/member.php?u=53162 viic]
| vspeed
| Games
| 90%
| Y
| [http://competition.meetmeego.org/submissions/32 Yes]
|-
| [http://talk.maemo.org/member.php?u=42168 Zas]
| Tap 'em
| Games
| 40%
| Y
| [http://competition.meetmeego.org/submissions/40 Yes]
|-
| [http://talk.maemo.org/member.php?u=53722 rcolistete]
| [http://www.robertocolistete.net/integral/ Integral] - calculate integrals : 1D, 2D, 3D, undefinited, definited, etc
| Business &amp; Office
| 100%
| Y
| No :-(
|-
| [http://talk.maemo.org/member.php?u=43459 antman8969]
| [http://talk.maemo.org/showthread.php?t=74092 LinkedUp] - LinkedIn client in QML
| Network &amp; Communication
| 60%
| Y
| [http://competition.meetmeego.org/submissions/44 Yes]
|-
| [http://talk.maemo.org/member.php?u=43459 antman8969]
| [http://maemo.org/downloads/product/Maemo5/qtweather-qml/ QtWeather+] - Weather application for the US using the National Weather Service.
| System &amp; Utilities
| 95%
| Y
| [http://competition.meetmeego.org/submissions/45 Yes]
|-
| [http://talk.maemo.org/member.php?u=1439 Juhapekka Piiroinen]
| [http://code.google.com/p/livetransfer/ LiveTransfer] - A new innovative way to transfer files between mobile device and desktop without using normal data transfer methods like wlan, bluetooth, usb and gsm.
| System &amp; Utilities
| 10%
| N
| No :-(
|-
| [http://talk.maemo.org/member.php?u=39932 kenya888]
| QumoPlayer - A Streaming Media Player with QML.
| Graphics &amp; Multimedia
| 1%
| Y
| No :-(
|-
| [http://talk.maemo.org/member.php?u=54391 deuteros]
| [http://www.myacidrain.com Acid Rain] is an application that lets you synchronize files between computers and keep a history of changes in them.
| Network &amp; Communication
| 90%
| Y
| [http://competition.meetmeego.org/submissions/34 Yes]
|-
| [http://maemo.org/profile/view/qnetman/ Anatoliy]
| [http://competition.meetmeego.org/submissions/28 QNetMan] - Qt-based network manager.
| Network &amp; Communication
| 60%
| N
| [http://qnetman.garage.maemo.org/ Yes]
|-
| [http://talk.maemo.org/member.php?u=26482 mzanetti]
| [http://competition.meetmeego.org/submissions/50 xbmcremote] - Remote control for xbmc.
| Graphics &amp; Multimedia
| 95%
| N
| [http://competition.meetmeego.org/submissions/50 Yes]
|-
| [http://maemo.org/profile/view/danilo/ Danilo]
| Beat Maker.
| Graphics &amp; Multimedia 
| 75%
| N
| No
|-
| [http://maemo.org/profile/view/flavio_castelli/ Flavio Castelli]
| [http://rockmarble.sourceforge.net rockmarble] - follow your favorite artists on tour.
| Fun &amp; Strange
| 100%
| N
| [http://competition.meetmeego.org/submissions/55 Yes]
|-
| [http://talk.maemo.org/member.php?u=38083 helex]
| [http://talk.maemo.org/showthread.php?t=75286 BashORGquotations] - unofficial bash.org client
| Fun &amp; Strange
| 100%
| N
| [http://competition.meetmeego.org/submissions/64 Yes]
|-
| Leon Anavi
| [http://location2sms.anavi.org/ location2sms] - find your location and send as SMS with single click
| Location &amp; Navigation
| 100%
| Y
| [http://competition.meetmeego.org/submissions/62 Yes]
|-
| [http://maemo.org/profile/view/jayanta_dn/ Jayanta Debnath]
| [https://garage.maemo.org/projects/googleplaces/ Google Places]
| Location &amp; Navigation
| 100%
| Y
| [http://competition.meetmeego.org/submissions/71 Yes]
|-
| [http://maemo.org/profile/view/dwaradzyn/ Damian Waradzyn]
| [http://talk.maemo.org/showthread.php?t=58402 CloudGPS 0.5.5]
| Location &amp; Navigation
| 80%
| N
| [http://competition.meetmeego.org/submissions/81 Yes]
|-
| [http://talk.maemo.org/member.php?u=38083 helex]
| [http://talk.maemo.org/showthread.php?t=75331 TcpIp Keyboard] - use the Keyboard from your Desktop PC
| Desktop
| 100%
| N
| [http://competition.meetmeego.org/submissions/72 Yes]
|-
| yalnte
| [https://sites.google.com/site/lucidanalysis/ LUCID/iron] - an (experimental) structural analysis application for your smartphone.
| Business &amp; Office
| 70%
| Y
| [http://competition.meetmeego.org/submissions/4 Yes]
|}

== Rules ==

To ensure that the event runs properly, there are a few essential rules:

*Only individuals may participate. Companies are excluded from the competition because of equity reasons.

*If you have coded your app in a team and you win one of the travels to the MeeGo Conference, your team has to designate one person as the winner.

*Any number of apps can be submitted and elected as winner.

*Apps must be uploaded as executable including at least two screen shots and a brief description on [http://competition.meetmeego.org the submissions website] to take part in the election. The applications have to run on default hardware running on an official version of Maemo or MeeGo.

*All applications, which are created and uploaded during the duration of the Competition will take part in the election. For existing programs, only progress which has been made during the Competition will be considered. When porting apps, only the work of porting will be considered, unless the original program is from the same programmer and was developed or extended in the Competition timeframe.

*Only users of [http://maemo.org maemo.org] and [http://meego.com meego.com] who are registered at the time of voting for at least four months are entitled to vote.

*There is no legal right to win.

More details regarding the election process to follow.

== App Developer Resources ==

=== Getting started with MeeGo application development ===

The MeeGo Developer subsite (http://developer.meego.com) [http://developer.meego.com/] is a one-stop shop for developers who are keen to learn more about developing for MeeGo devices. You can download the MeeGo SDK from there, get information on targeting and setting up devices, and there's some tutorials to get beginner's started on their first applications. 

The '''Getting started''' section [http://developer.meego.com/guides/getting-started] might be of particular interest, and includes guides such as:

* Qt SDK [http://qt.nokia.com/downloads]

* MeeGo application development overview [http://developer.meego.com/guides/getting-started/meego-application-development-overview]

* Getting started with the MeeGo v1.2 SDK for Linux [http://developer.meego.com/guides/getting-started/getting-started-meego-v1.2-sdk-linux]

* Getting started with the MeeGo v1.2 SDK for Windows [http://developer.meego.com/guides/getting-started/getting-started-meego-v1.2-sdk-windows]

* Create your first application: Hello World [http://developer.meego.com/guides/getting-started/create-and-run-your-first-application-hello-world]

For those without MeeGo devices but would like to try it out on their N900:

* Setting up the Nokia N900 for MeeGo Development [http://developer.meego.com/guides/external/setting-nokia-n900-meego-development-0]

=== Getting started with Maemo application development ===

The Nokia Qt SDK is the official set of tools with everything needed to design and create applications for the N900 [http://www.forum.nokia.com/info/sw.nokia.com/id/e920da1a-5b18-42df-82c3-907413e525fb/Nokia_Qt_SDK.html]. The [http://maemo.org/development/ development wiki] is a great place to start, it contains lots of code examples and development guides. The &quot;Windows Python and Qt in 30 mins&quot;[http://talk.maemo.org/showthread.php?t=43663] thread is a great PyQt tutorial for beginners and will have you coding your first app in minutes, and here's a link to a tutorial from Linuxuser.co.uk[http://www.linuxuser.co.uk/tutorials/programming/develop-for-the-nokia-n900/].

The 'Developer' forum on maemo.org[http://talk.maemo.org/forumdisplay.php?f=13] is an excellent resource to find answers and ask questions of your own.

== FAQ ==

=== Spreading the word ===

====Q: Which Twitter Hashtag to use for this Competition?====
: '''A:''' Please use '''#mcc2011'''

=== Application requirements ===

====Q: It is obligatory to code in Qt?====
: '''A:''' No, it isn't, but it would make your life probably a lot easier because you will be able to reach more platforms. We encourage everyone to use Qt.

=== App/Application submission process ===

====Q: Where to submit my application?====

: '''A:''' There is an [http://competition.meetmeego.org Application submission page available]. This will be the only valid way to participate in the competition. [[MeeGo_Coding_Competition_2011#Participants|This list in the wiki]] is for information only and not valid for the competition.

====Q: Updates allowed during the competition?====
I have a new app in the repository, i am considering to apply for the contest.. If i submit it now, will that prevent me to upload further versions to the repos or here? (As it's a work in progress)

: '''A:''' No. you can upload updates till the end of the competition.

====Q: No Maemo/ARM platform?====
There seems to be no platform for '''Maemo ARM'''. What is the right choice if I wish to submit a Maemo application?

: '''A:''' Please use the [http://competition.meetmeego.org/platforms/8 MeeGo/ARM platform].

====Q: Who selects the category of the application?====
Will the developers select the category when they join the competition or will someone sort it into the correct category before the voting begins?

: '''A:''' They will choose the category for their app, but everyone should keep an eye on that. Before the voting process starts we'll check if every app is in a reasonable category, so that it is not possible to cheat by choosing the category with the lowest competition.

== Application proposal ==

If you would like to have an App but you can't code yourself, write it down here! Many devs are happy to get a new idea input.

{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! scope=&quot;col&quot; width=&quot;10%&quot; |application name
! scope=&quot;col&quot; width=&quot;20%&quot; | short description
! scope=&quot;col&quot; width=&quot;60%&quot; |features
! scope=&quot;col&quot; width=&quot;10%&quot; |link to similar app or screenshots
|-
| Rom Manager
| A rom manager for emulators.
| Choose folders for roms of different systems.

Rom audition and fixing using [http://www.romcenter.com/ Romcenter] databases

Rom downloading.

Integration with most popular emulators (DrNokSnes, PicoDrive, ...)
| Rom Gripper for Android. 
|-
| Photo Fun
| An application to apply different effects to pictures.
| There are two main applications to photo editing. [http://maemo.org/packages/view/ansela/ Ansel-A] is a powerful editor but lacks simple effects to be applied by noob users. [http://maemo.org/packages/view/classicpriApplication submissionnt/ Classic Print] is nice and easy to use but only one predefined effect exists. 

An improved version of [http://maemo.org/packages/view/classicprint/ Classic Print] with more predefined effects like old fashioned pictures, black and white, etc. Also the ability to add text. 
| There are lots of applications for this purpose in Android and iOS that apply funny or useful effects to pictures. See [http://mashable.com/2010/05/16/android-photo-apps/ this].
|-
| PDF Reader
| A nice, feature rich, PDF viewer.
| Unlimited levels of zoom.

Friendly gestures for zooming (swipe), change page and full screen toggle (bottom right corner like MicroB).

Search and annotating capabilities.

Text reflow.

3D book page flipping effects.
| You could try to port Okular from KDE with a nice UI.
|-
| LinkedGo
| A LinkedIn client for Maemo and Meego
| Be original, do not try to develop the nth Facebook or Twitter client.

LinkedIn is a useful social network for professional contacts.
| There is an official application for Blackberry, iOS and Android.
|-
| ComicGo
| A good comic viewer.
| Actually there are two comic viewers, cbrPager and Comix, none of them finger friendly and not fully featured. 

Friendly gestures for zooming (swipe), change page and full screen toggle (bottom right corner like MicroB).

| You can try to improve one of them or port an existing one like [http://kde-apps.org/content/show.php/QComicBook?content=19509 QComicBook].
|-
| Code Editor
| A text editor with syntax highlighting.
| Basic text editing, with syntax highlighting, auto intend, support for at least some languages (c, c++, http, php...), possibly even a customizable compile and/or run command button
| [http://doc.trolltech.com/4.2/richtext-syntaxhighlighter.html Qt Syntax highlighter example], [http://projects.gnome.org/gedit/ gedit]
|-
| Personal Financial Managemer
| An application to keep track of an individual's finances
| Multiple accounts of different types (current, savings, credit card, investment), automated standing orders, double entry, categories, import/reconcile downloaded bank statements
| [http://www.epoczone.com/reviews/show_review.php3?id=3 Review and description of similar Psion software]
|-
|Call answering
|An application that would pick up a call before voicemail based on predefining a number
|Call is answered and given a message such as &quot;this number has been disconnected ...no further information is available for&quot; Perfect for that ex girlfriend or someone who has got your number and shouldn't. Saving you from annoying voicemails.
|None that I know of
|-

| OCR/BCR App
| Application that OCR images and convert to text. BCR app should be able save info directly from Business Card to Contacts.
| Recognises Text, and input data into Contacts. Should recognise First Name, Last name, mobile, Phone, fax, email, website, company, designations and company logo.
| PhotoTranslator for maemo does basic OCR. For reference, see [http://android-apps.com/articles/reviews/abbyy-business-card-reader-android-app-review/ this review] for ABBYY card reader (Android)
|-
|Answering Machine
|Picks up a call after fixed number of rings and performs action (play recording/record response/disconnect/send sms) based on white/blacklist
|4 modes: 
Disconnect call
Send SMS
Answering Machine
Playback message
Should be able to start app from command line so as to enable scheduling with alarmed.
|[http://www.brighthub.com/mobile/symbian-platform/articles/45056.aspx Review] of similiar Symbian app.
|-
| CoverFlow Music Player
| A Music Player that supports CoverFlow display.
| A Music Player that lets you browse music via the CoverFlow visual method (used in Apple iTunes software).
| One of the best examples is [[xbmc.org|XBMC]]; [[http://lh4.ggpht.com/_IIYM2TRG9pE/SvO5zaGfz-I/AAAAAAAAIHk/dsTRtPuCObA/xbmc_album_coverflow.png In this example, XBMC uses the MediaStream skin]].
|-
| Subsonic client
| A Music player that either controls jukebox or/and is able to stream music from your own subsonic server
| Stream, Download, Remote-control, Playlist
| http://www.subsonic.org/pages/apps.jsp - http://www.youtube.com/watch?v=EBDrdWxd95k - Bit like Knots2
|-
| Personal Diary/Journal
| An app to create daily diary entries
| Password Protection, File attachment, HTML/TEXT Export/Import
| [http://bit.ly/hpjEZE Personal Diary Pro] -Palm OS
[http://www.acquasys.com/retroactive/Features.aspx RetroActive] -WM6
|-
| Ultimate Scanner
| N900 can be used as a scanner which has most of the features that a normal scanner has(not like FrontView app available right now). 
(''Question to the author: What does that &quot;not like&quot; mean ?!'')
| scan document contents by moving the N900 on a document, save as jpg or pdf
| none that i know about
|-
| FourSquare Client
| FourSquare is a Social Media website
| It allows users to &quot;CheckIn&quot; to venues leaving tips for other users.CheckIn's are validated by Geo-Location, which is an essential element of any app.If the user is not deemed to be near the venue, the &quot;CheckIn&quot; will be disallowed
| There is 1 Current App for the N900 called '''Barriosquare'''[[http://maemo.org/packages/view/barriosquare/]] 
However this uses FourSquare's '''APIv1''' which will no longer be supported from August 2011. 

All new FourSquare apps need to be written with FourSquare's '''APIv2''' Documentation here: [https://developer.foursquare.com/docs/]
|-
| N900 Desktop Themer
| An app to export our desktop arrangements to a file so that it can be reimported by us or other later
| The 'themes' supported by maemo does not include the desktop. As you can see in this thread, lots of people have brilliant ideas in customizing their desktops. Now if these arrangements could be exported as a file that anybody an apply on their system...
| This is a maemo5 specific case.
|-
| 3D Racing Game
| Small 3D racing game with cars or hover crafts or anything that drive only horizontal (no 3d spaceship game)
| Doesn't need super graphics. Doesn't need many tracks/cars, only fun is needed. Gamegripper support (changing keys) would be good. If the player can shoot at something it will double the fun. A port of Torus Trooper would be the perfect match. ;)
| That game is very simple but makes lots of fun: [http://www.asahi-net.or.jp/~cs8k-cyu/windows/tt_e.html Torus Trooper]
|-
| Tower Defense
| A adapted Tower Defense game  
| Something like the free Flash Game &quot;Desktop Tower Defense&quot; would be really great
| [http://www.google.de/search?um=1&amp;hl=de&amp;biw=1579&amp;bih=1030&amp;site=search&amp;tbm=isch&amp;sa=1&amp;q=desktop+tower+defense&amp;btnG=Suche&amp;aq=f&amp;aqi=&amp;aql=&amp;oq= Desktop Tower Defense]
|-
| Hildon UI for UAE4All Maemo edition
| UAE4All is a well functioning Amiga500 emulator ported by Smoku to Maemo5. It needs a new UI for being user friendly.
| Hildonisation of current UI. Possibility to change keys. Easy way to switch between keyboard/mouse/joystic modes, preferably on touchscreen during gameplay.
| Link to TMO thread of UAE4All: http://talk.maemo.org/showthread.php?t=50040
|-
| Calendar item privatizer
| N900 default calendar does not support private items. These are useful for people that sync the calendar to a public/shared calendar database.
| N900 calendar database has a slot for showing if the calendar item is public/private, there just is no way to change this value in N900 (this can be checked for example by syncing a &quot;private&quot; meeting from Outlook and looking at the calendar database). So either a separate application or an automatic watch daemon is needed for marking an appointment private (might be doable by making a separete calendar (inside N900 calendar app) out of which all meetings are changed to &quot;private&quot; and copied to default syncable calendar.
| This case is N900/Maemo5 default calendar specific.
|-
| Neverball/NeverPutt
| A port or a game similar to neverball/neverputt
| accelerometer supported tilting universe for neverball and touch controls for neverputt for the n900.
| http://neverball.org/
|-
| Tumblr
| Tumblr client and uploader
| Edit followers list, view dashboard,update and publish post and upload media files.
| Tumbly on Symbian
|-
| SleepAnalyser
| An app that records your movement during your sleep and wake you up in the best moment.
| Being able to chose alarm time, song, lucid sleep options and all the other futures from n900.
| http://maemo.org/downloads/product/Maemo5/sleepanalyser/
|-

| Catorise
| App that removes all the mess from the desktop, and sort the programs into groups.
| Being able to manually group icons in the way I want, like it was in n900.
| http://maemo.org/downloads/product/Maemo5/catorise/
|-

| BFstats
| App to display current achievements on Battlefield Games (BF3 mainly)
| Be able to view and compare stats between players, show high scores etc. (would be nice if worked on N900 too?)
| Source:- http://bf3stats.com
|-
|}

== Discussion ==

Please participate in the discussion at http://talk.maemo.org/showthread.php?t=71561

==Resources==
* [https://www.facebook.com/meegofreeday Facebook-Fan Page of the MeeGo Freeday]: Like it to get the latest information about all the events
*Blog-Posts:
** [http://meetmeego.org/2011/03/28/meego-coding-competition-2011/ Announcment of the MeeGo Coding Competition] (in german)
** [http://meetmeego.org/2011/03/29/coding-qt-workshop-am-01-04-in-berlin/ Coding Qt Workshop announcement] (in german)

== Contact ==

Ready? Grab your PC, start to hack and show us your app!

You still have questions? Contact us!
* http://twitter.com/meetmeego
* http://facebook.com/meetmeego
* info@meetmeego.org

== Events ==

The MeeGo Coding Competition is not an event restricted to one city or country! Everyone can and should participate! Local MeeGo Events and Intel AppLabs will take place in different cities and countries.

=== Local MeeGo Network Berlin ===

The Local MeeGo Network Berlin has planned the following events using the name &quot;[http://meegofreeday.org/ MeeGo Freeday]&quot;.
The events in Berlin will be [http://t.co/kGvEQRR streamed live].

==== Intel AppLab 2011-04-29 ====

On 29 April 2011, we bring you the [http://www.intelapplab.com/ Intel AppLab] to Berlin (of course also in the c-base)!
During the AppLab coding examples are shown and you will submit your app to the Intel AppUp store. At previous AppLabs developers got MeeGo hardware to take home. This time? Come and see for yourself!

=====Streaming =====
The AppLab will be streamed live in HD quality. The language is English. The stream will be available at the following link.
http://c-base.org

==== Previous Events ====
* [[/Coding Qt - Workshop - 2011-04-01|Coding Qt - Workshop - 2011-04-01]]
* [[/Nokia Ovi Workshop 2011-04-15|Nokia Ovi Workshop 2011-04-15]]

You can watch the recorded videos of these events [http://t.co/kGvEQRR here].

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>MeeGo Coding Competition 2011/Coding Qt - Workshop - 2011-04-01</title>
    <id>4841</id>
    <revision>
      <id>43260</id>
      <timestamp>2011-04-28T09:57:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">*[[Qt-Maemo|Qt]] is a framework for a cross-platform application development. Qt is pre-installed on our beloved [[Nokia N900]]. Software development using Qt is also possible for [http://developer.qt.nokia.com/wiki/Support_for_Maemo MeeGo], [http://developer.qt.nokia.com/wiki/Support_for_Symbian Symbian] and [http://www.griffin.net/2010/02/qt-on-the-palm-pre.html WebOS]. All these platforms support Qt. There are also libraries for desktop systems, like [http://developer.qt.nokia.com/wiki/Support_for_Windows Windows], [http://developer.qt.nokia.com/wiki/Support_for_Mac_OS_X Mac OS] and [http://developer.qt.nokia.com/wiki/Support_for_Linux_X11 Linux] available. Unofficially, it is also running on [http://sourceforge.net/p/necessitas/home/ Android] and [http://www.qt-iphone.com/Introduction.html iOS].
*Therefore, Qt is a very good base if you want to publish your app on as many platforms as possible!
*You never coded using Qt? You are already a Qt pro and want to work with Qt developers? You still have questions? Then come to the Qt Workshop on 01 April 2011 in the c-base in Berlin! The Qt gurus of Qt Berlin are present and help you with advice and support!
*By all this Qt-iness don’t forget the next step: publish your app in the largest MeeGo AppStores: [http://www.appup.com/applications/index Intel AppUp] and [http://store.ovi.com/ Nokia Ovi].

[[Category:Qt]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>MeeGo Coding Competition 2011/Nokia Ovi Workshop 2011-04-15</title>
    <id>4844</id>
    <revision>
      <id>46345</id>
      <timestamp>2012-01-13T13:14:15Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/114.79.58.16|114.79.58.16]] ([[User talk:114.79.58.16|Talk]]); changed back to last version by [[User:Jukey|Jukey]]</comment>
      <text xml:space="preserve">Therefore, on 15 April 2011 there will be the Ovi workshop also in the c-base in Berlin. In this workshop Nokia's specialists will teach you the process of publishing your app to the Ovi-Store.
Then you are a true Ovi professional. And who knows? Maybe there will be new info about Nokia's secret MeeGo / Maemo device?</text>
    </revision>
  </page>
  <page>
    <title>MeeGo apps on Fremantle</title>
    <id>5150</id>
    <revision>
      <id>47228</id>
      <timestamp>2012-04-11T13:40:49Z</timestamp>
      <contributor>
        <username>marmistrz</username>
        <id>4691</id>
      </contributor>
      <comment>/* How to make the app run */  libstdc++6</comment>
      <text xml:space="preserve">MeeGo apps can be run on Fremantle

== Requirements ==

* CSSU Testing (&gt;= 21.2011.38-1Tmaemo3.1) or it's equivalent when it comes stable
* Qt4 (&gt;= 4.7.4) - supported from CSSU above
* QtMobility12

== How to make the app run ==

First of all you'll need to change the DEBIAN/control file. Some packages have different names in Fremantle

{| class=&quot;wikitable sortable&quot;
| App name in Fremantle
| Version in Fremantle
| App name in Harmattan
| Notes
|-
| libdbus-1-3
| 1.2.14-0maemo4
| N/A
| N/A
|-
| libstdc++6
| 4.2.1-4maemo13+0m5
| N/A
| Many apps depending on higher version work with the Fremantle one 
|-
| libx11-6
| 2:1.1.99.6+0m5
| N/A
| N/A
|-
| libxi6
| 1.2.99.1-1
| N/A
| N/A
|}</text>
    </revision>
  </page>
  <page>
    <title>Menu</title>
    <id>3285</id>
    <revision>
      <id>25442</id>
      <timestamp>2009-12-31T11:16:40Z</timestamp>
      <contributor>
        <username>jayford</username>
        <id>1718</id>
      </contributor>
      <comment>Redirecting to [[Application Menu]]</comment>
      <text xml:space="preserve">#REDIRECT [[Application Menu]]</text>
    </revision>
  </page>
  <page>
    <title>Mer</title>
    <id>1346</id>
    <revision>
      <id>48101</id>
      <timestamp>2012-06-03T22:50:09Z</timestamp>
      <contributor>
        <username>mrsellout</username>
        <id>3603</id>
      </contributor>
      <comment>Undo revision 47995 by [[Special:Contributions/Barrycopper|Barrycopper]] ([[User talk:Barrycopper|Talk]])removed spam links</comment>
      <text xml:space="preserve">__NOTOC__
&lt;div style=&quot;position: absolute; z-index: 0&quot;&gt;
&lt;imagemap&gt;Image:Mer-faded-background.png|631px
rect 0 0 0 0 [[Mer]]
desc none
&lt;/imagemap&gt;
&lt;div style=&quot;z-index: 3; position: absolute; top: 42px; left: 180px; color: #fff; font-style: italic; font-family: Georgia, serif; line-height: 1.5em; font-size: 1.8em; width: 360px&quot;&gt;An open, community-led, Linux distribution for mobile devices&lt;/div&gt;
&lt;/div&gt;

&lt;div style=&quot;margin-left: 18px; z-index: 4; margin-right: 4em&quot;&gt;

&lt;div style=&quot;position: relative; padding-top: 120px; margin-right: 10em; margin-bottom: 2em&quot;&gt;
== Mer is back ==

Please visit http://www.merproject.org to learn more about these news.

We're hanging out on #mer on FreeNode IRC (irc.freenode.net) if you would like to discuss Mer (here's a [http://webchat.freenode.net/?channels=Mer web based IRC client])

[[Category:Mer]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/</title>
    <id>1929</id>
    <revision>
      <id>13734</id>
      <timestamp>2009-05-27T15:46:56Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <minor/>
      <comment>Add back-in redirect for Mer/ to Mer</comment>
      <text xml:space="preserve">#REDIRECT [[Mer]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/About</title>
    <id>1506</id>
    <revision>
      <id>42551</id>
      <timestamp>2011-03-09T10:01:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* History */ add some outdated information and a link</comment>
      <text xml:space="preserve">{{Mer}}

__NOTOC__
&lt;imagemap&gt;Image:Mer-logo.png|left|160px
rect 0 0 160 136 [[Mer]]
desc none
&lt;/imagemap&gt;
&lt;div style=&quot;clear: left&quot;&gt;&lt;/div&gt;
== Background ==
[[Mer]] is a new operating system for small, mobile touch-screen devices.

It is Linux based and layers the best open-source elements of Nokia's Maemo platform over a modern Ubuntu base.

The goals of Mer include:
* Integrate the best solutions for a wide variety of small form-factor devices
* Encourage wider access to device capabilities through the [[Mer/Documentation/Vendor Social Contract|Vendor Social Contract]]
* Demonstrably provide an easy route to market for vendors
* Dramatically reduce costs to vendors of supporting EOL hardware
* Focus, harness and support community contributions to the platform
* Encourage and ease migration of existing applications
* Support experimentation, innovation and development

Mer runs on : 770, N800, N810, FreeRunner, SmartQ5, SmartQ7, Beagleboard, and to some degree on Zaurus, Loox; we'd like to support other devices too... talk to us.

== Mission ==
Mer platform development will be done in the open, with public SCM repository, bugtrackers, and Wiki-based blueprint discussion.

We should stop seeing the tablets as strictly under-powered embedded systems, and see them for what they really are: powerful, power-efficient, economical handheld computers.

==Frequently Asked Questions==
* What is Mer?
You did read the bit above? Oh, OK... from a user's point of view Mer aims to be a replacement for Maemo/Diablo.... but better! Note that we don't think it's there yet :)

* Does Mer replace Diablo/OS2008 ?
Well...&lt;br&gt;
Nokia won't be upgrading 2008 anymore.&lt;br&gt;
We're talking to see if there could be an official handover (SSU) to 'community support' but nothing concrete yet.&lt;br&gt;
So in that sense, Mer will be one option to updating your tablet if you want something that is either broken, or not in, OS2008.

* What can I do with it?
Ideally you could install and run any app that runs on Ubuntu or Maemo extras.
Of course some apps just need too much resource, or need a mouse or are closed; but most apps will run.

You can't do that in Maemo/Diablo.

* Does it run inside Diablo?
No. Mer runs instead of Diablo - but don't panic, you can dual boot from one to the other; so if Mer isn't good enough just yet you can switch back to Diablo. Eventually we hope you won't need Diablo at all :)

* Can I install it on an internal/external SD card? (how big?)
Yes! It needs about 1Gb of space. The simplest thing is to use an empty 2Gb card.

* How do I install it?
Go to the [[Mer/Documentation/Installation|installation page]]

* What were the initial motivations for this project?
See [[Maemo Reconstructed]] for the initial proposal that lead to the Mer project.

== Status ==
Mer is new and [[Mer/Releases|constantly developing]] so the [[Mer/Status|status]] of support for hardware and applications is steadily improving.

Also check the [[Mer/Documentation|documentation]] page for more information.

== History ==
Mer has evolved from discussion around [[Maemo_Reconstructed|reconstructing Maemo]] and a desire to make a proof of concept system of these thoughts. The M-R PoC developed into Mer after it was realised that it was - indeed - a viable environment for both developers and end-users. On Thursday 2th May 2009 [[Mer/Ubuntu MID|Ubuntu MID]] decided to use Mer as their upstream.

== Events ==

The Mer team meets regularly at [[../Events | events]] to present and talk about Mer.
== Screenshots ==

Some from 0.16 [[Mer/Documentation/Screenshots|here]] and 0.15 [[Mer/Releases/0.15#Screenshots|here]].</text>
    </revision>
  </page>
  <page>
    <title>Mer/Again</title>
    <id>5002</id>
    <revision>
      <id>45091</id>
      <timestamp>2011-08-29T19:03:37Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <comment>/* Yes, Mer, again */</comment>
      <text xml:space="preserve">= Yes, Mer, again =

This is an living blueprint for re-starting the Mer project and activities ongoing to make it happen.

== Goals ==

* Providing an industrial strength, openly developed and openly governed core based upon the Qt framework for the post-PC era of devices</text>
    </revision>
  </page>
  <page>
    <title>Mer/Artwork</title>
    <id>1707</id>
    <revision>
      <id>38869</id>
      <timestamp>2010-09-22T09:26:29Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Artwork is licensed under [http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-Share Alike 3.0 Unported License], author is Andrew Zhilin.

&lt;gallery perRow=&quot;3&quot;&gt;
Image:Mer-Wazd-Background-1900x1200.jpg|1900x1200 Mer wallpaper, done by wazd
Image:Mer_Wazd_Wallpaper_With_Logo_800x480.jpg|800x480 with logo, done by wazd
Image:Mer-wazd_logo-1920x1200.jpg|1920x1200 with logo, done by wazd
Image:Mer_Wazd_RescueMenu_StartMerNormally_800x480.jpg
Image:Mer_Wazd_RescueMenu_Console_800x480.jpg
Image:Mer_Wazd_RescueMenu_USBnet_800x480.jpg
Image:Mer_Wazd_RescueMenu_GSerial_800x480.jpg
Image:Mer_Wazd_RescueMenu_Reboot_800x480.jpg
Image:Mer_Wazd_Logo_Seastuff_1920x1200.jpg
Image:Mer_Wazd_Logo_And_SeaStuff.jpg
Image:Mer_Wazd_Logo_And_SeaStuff_Brighter.jpg
Image:Mer_Logo_178x198.png
Image:Mer_Incompatible_Bootmenu_Shark.jpg‎
Image:Mer_Incompatible_Bootmenu_Shark_Brighter.jpg‎
Image:Mer_Wazd_Wallpaper_Nokian_Ship.jpg
Image:Mer_Theme_Outline.jpg
Image:Mer_logo_svg.svg|This is a white on transparent SVG Logo.
Image:Mer_logo_test.jpg|Showing the SVG logo on a large image
Image:Fluxbox0.png|A sample Fluxbox desktop
Image:Fluxbox1.png|Another Fluxbox image
&lt;/gallery&gt;</text>
    </revision>
  </page>
  <page>
    <title>Mer/Awareness</title>
    <id>1810</id>
    <revision>
      <id>38923</id>
      <timestamp>2010-09-22T10:25:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Rendering your activities visible ==

Q: Why are you encouraged to talk about your activities?

A: We are spread across the globe and it is not always easy to have real time conversations, and this allows us to document what has been done and achieved.

So, how do you do this in practice? Here's a few ways:

== Mer Chatter email ==
You can sign up for the [https://garage.maemo.org/mailman/listinfo/mer-chatter mailing list] - it will send you digests by default, unless you choose to receive all e-mails (might be high volume).

You can receive updates using the [http://n2.nabble.com/Mer-Chatter-f2732813.xml Nabble Atom feed]

Ideally sign up for a [http://garage.maemo.org/ maemo.org] account  to contribute to the maemo.org Wiki (where Mer is hosted) as well - and it will help you to gain maemo.org karma.

When you have achieved something, mail to mer-chatter@garage.maemo.org, with a brief description in the subject line, and if needed, a further elaboration in the body. 

== IRC interactive chat ==
A lot of Mer development and support is discussed on [[IRC]] on channel #mer on irc.freenode.net,

In addition you can type '.log &lt;message&gt;' to send a message out to the chatter mailing lists (don't test it please - it works).

IRC logs can be found [http://tinyurl.com/ngroq8 here]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Blueprints</title>
    <id>3500</id>
    <revision>
      <id>38978</id>
      <timestamp>2010-09-22T11:51:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Mer Blueprints ==

* [[/About product CPA]]
* [[/Date and time CPA]]
* [[/Display CPA]]
* [[/Memory CPA]]
* [[/Backlight behaviour]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Blueprints/About product CPA</title>
    <id>1770</id>
    <revision>
      <id>38870</id>
      <timestamp>2010-09-22T09:27:22Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Control panel: About product ==

Dialog box stating:

* Hardware information: Optional product+vendor, and architecture (Nokia N800 Internet Tablet, armel)
* Software information: Mer version
* MAC addresses for networking devices (WiFi, Ethernet, Bluetooth)
* Licensing information (with reference to dump of copyright files in packages)

With a close button.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Blueprints/Backlight behaviour</title>
    <id>1775</id>
    <revision>
      <id>38924</id>
      <timestamp>2010-09-22T10:27:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

System active -&gt; System idle -&gt; System inactive
* Global properties in use:
** Seconds since last input (SSLI)
** System state (SS: Active, Idle, Inactive)

* Gconf2 settings:
** Backlight level while system active (Active Backlight Value)
** Backlight level when display dimmed (Dimmed Backlight Value
** Seconds idle before making display dimmed (Seconds To Dim)
** Boolean value as if to keep backlight lit (Stay Lit)
** Seconds idle before turning off display (Seconds To Turn Off)

* HAL methods:
** LaptopPanel/SetBrightness

* Event-Reactions:
** If ABV modified, and SS = Active, SetBrightness to ABV
** If ADV modified, and SS = Idle, SetBrightness to ADV
** If STD &gt; SSLI, set SS to Idle unless SL
** If SSLI &lt; STD, set SS to Active
** If STTO &gt; SSLI, set SS to Inactive unless SL 
** If SS modified to Idle, SetBrightness to ADV
** If SS modified to Active, SetBrightness to ABV
** If SS modified to Inactive, SetBrightness to 0, turn off screen</text>
    </revision>
  </page>
  <page>
    <title>Mer/Blueprints/Date and time CPA</title>
    <id>1772</id>
    <revision>
      <id>38979</id>
      <timestamp>2010-09-22T11:57:38Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Control panel: Date and time ==

* Allow setting of:
** Timezone (/usr/share/zoneinfo/zone.tab has a list)
** Date (day, month, year)
** Time (hour, minute, second?)
** DST vs non-DST
* OK, cancel button</text>
    </revision>
  </page>
  <page>
    <title>Mer/Blueprints/Display CPA</title>
    <id>1773</id>
    <revision>
      <id>38871</id>
      <timestamp>2010-09-22T09:27:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Control panel: Display ==

Allow setting of:
* Brightness period: seconds idle before dimming
* Switch off display: seconds idle before switching off display
* Lock screen and keys: if to lock screen and keys when switched off display
* Display stays lit: Never / When charging / Always

Use GConf to set these.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Blueprints/Memory CPA</title>
    <id>1774</id>
    <revision>
      <id>38925</id>
      <timestamp>2010-09-22T10:27:42Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Control panel: Memory == 

Two panels, one which lists the following (Storage), and space available:

* Device (rootfs)

* MMCs (all mounted partitions)

* USB mounted

etc.

Second panel: Virtual:

* Allow adding/removing a swap file of size 64,128,256,512, etc, based on free space. 
* Restrict to storage that are not easily removable (MMC behind door, rootfs, etc)
* On jffs2 and internal flash, don't allow swap file there.
* Only one swap file?</text>
    </revision>
  </page>
  <page>
    <title>Mer/Build</title>
    <id>1691</id>
    <revision>
      <id>50502</id>
      <timestamp>2012-10-27T06:32:01Z</timestamp>
      <contributor>
        <ip>94.23.1.28</ip>
      </contributor>
      <comment>Undo revision 20960 by [[Special:Contributions/212.242.158.18|212.242.158.18]] ([[User talk:212.242.158.18|Talk]])</comment>
      <text xml:space="preserve">Clothing has always been a thing that has been given a great imctoranpe by human beings. It displays the attitude that the people exhibit. Lots of brands have been existent in the clothing industry and a famous one among them is the Ed hardy clothing brand.The brand got its name from the famous American tattoo artist Ed Hardy. He was a very famous tattoo artist and has published many books on tattooing techniques. But his tattooing turned into a brand by the efforts of a company called Christian Audiger. This company was a very famous and very powerful company in the field of clothing. They felt that it would be appropriate to create a brand called Ed hardy and use Hardy's art as the main selling point for the brand. This venture had turned out to be a very successful one and Ed hardy clothing is one of the most famous brands in the clothing industry.The brand became very famous because it was worn by many famous celebrities like Madonna, Britney spears and also Sylvester Stallone. The brand has clothes for men, women, and kids. They have also diversified their business by having a lot of accessories to support their clothing business. for men they have a variety of products such as active wear, denim, outwear, swim trucks, sweaters, t-shirts, tops etc. the accessories include things such as belts, caps, scarves, shoes, socks, jeweler, sunglasses, ties and even wallets.The art works is a unique combination of American and Japanese cultures. The unique selling proposition of the brand is the way in which the company has used the art works of Ed hardy.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Build/Application Building</title>
    <id>1960</id>
    <revision>
      <id>41776</id>
      <timestamp>2011-02-11T11:28:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">{{Mer}}

This page assumes you have [[../Install OBS|installed OBS]] and setup an account.

The objective is to walk through creating a package on OBS that you can download to your Mer device using the package manager.

We will use MerPad as an example

You can follow either the CLI or www commands; if you mix them up you need to ensure you execute the commands in the right place.

== To create a new package ==

These osc commands are done in your own area - use your username after &quot;home:&quot; or make sure you are at your [https://build.opensuse.org/project/list_my &quot;Home Project&quot;] on OBS.

Before you can create projects in your home project, you have to create it.

We will use
* a name of &quot;merpad&quot; (lowercase); this is the ''package'' name
* a title of &quot;MerPad Example&quot;; this is the human readable title
* a description of: &quot;A Mer version of Maemopad. Built on OBS by &lt;yourname&gt;&quot;; this is seen upon installation

If you use the CLI interface you can also enter a url.

Obviously, if you have your own source and dsc then amend the details accordingly.

==Configure your Home Project to Build against Mer==

When you upload some source the build-dependencies need to be resolved.  OBS does this by looking at a build target repository; if the dependency isn't there and that repository has its own build target repository then it looks there... and so on.

So Maemo:Mer:Stable has a build target of Ubuntu_9.04.

However, if you built against :Stable then you'd miss any community libraries in :Extras. So we will setup your home to build against :Extras:Stable

This means that build dependencies will be looked for in:
# Maemo:Mer:Extras:Stable
# Maemo:Mer:Stable
# Ubuntu_9.04

Once this is done, any packages uploaded to this project will build.

===Setting up Build Repositories : WWW===

* Click on &quot;Home project&quot; in the left navigation bar in the OBS website
* On the right click on &quot;Add Repository&quot;
* At the bottom, click on &quot;Advanced&quot;
* Use the name &quot;MerExtrasStable_MerStable_Ubuntu_9.04&quot; (this is important)
* In the (huge!) &quot;Build Target Selection&quot; scrollbox, select &quot;Maemo:Mer:Extras:Stable/MerStable_Ubuntu_9.04&quot;
* In the tickboxes, pick &quot;i586&quot; and &quot;armv5el&quot;
* Click &quot;Save Changes&quot;

If you want to build against Mer:Testing and Mer:Devel aswell then use the XML interface to ensure you get it right.

===Setting up Build Repositories : CLI===

To change the build target repositories (part of the project metadata):
  osc meta prj home:yourname -e

The XML should look like this (make sure you use your own &quot;name=&quot; value) paying special attention to the &lt;code&gt;&lt;repository&gt;&lt;/code&gt; tags:
&lt;source lang=&quot;xml&quot;&gt;
&lt;project name=&quot;home:yourname&quot;&gt;
  &lt;title&gt;yourname's Home Project&lt;/title&gt;
  &lt;description&gt;Mer is cool&lt;/description&gt;
  &lt;person userid=&quot;yourname&quot; role=&quot;maintainer&quot;/&gt;
  &lt;person userid=&quot;yourname&quot; role=&quot;bugowner&quot;/&gt;
  &lt;repository name=&quot;MerExtrasStable_MerStable_Ubuntu_9.04&quot;&gt;
    &lt;path project=&quot;Maemo:Mer:Extras:Stable&quot; repository=&quot;MerStable_Ubuntu_9.04&quot;/&gt;
    &lt;arch&gt;armv5el&lt;/arch&gt;
    &lt;arch&gt;i586&lt;/arch&gt;
  &lt;/repository&gt;
&lt;/project&gt;
&lt;/source&gt;

Here is a full set of [[/XML_Build_Targets|XML Build targets]] for Ubuntu; they aren't needed unless you're doing something clever.

==Creating Package==

Each package has its own directory in the project and, by default, is built against any build targets for the project.

===Creating Package : WWW===

* Click on &quot;Home project&quot; in the left navigation bar in the OBS website
* Click on &quot;Add Package&quot;

Note that the 'name' is like a filename (openoffice) whereas 'title' is written out. (Open Office)

(In the XML the name is also fully qualified with a project and :s )

Fill in the values in the boxes and save changes; we'll use:
  Name: merpad
  Title : merpad
  Description : A test build of Merpad

===Creating Package : CLI===

Run
 osc meta pkg -e home:&lt;username&gt; &lt;package&gt;
This will tell the OBS server about the package. It pops up an editor where you can edit the name/description in XML format and then save. The XML appears like this:
&lt;source lang=&quot;xml&quot;&gt;
&lt;package name=&quot;merpad&quot;&gt;
  &lt;title&gt;Title of New Package&lt;/title&gt;
  &lt;description&gt;
LONG DESCRIPTION 
GOES 
HERE
  &lt;/description&gt;
  &lt;person role=&quot;maintainer&quot; userid=&quot;username&quot;/&gt;
  &lt;person role=&quot;bugowner&quot; userid=&quot;username&quot;/&gt;
  &lt;url&gt;PUT_UPSTREAM_URL_HERE&lt;/url&gt;
&lt;/package&gt;
&lt;/pre&gt;
and fill it in:
&lt;pre&gt;
&lt;package name=&quot;merpad&quot;&gt;

  &lt;title&gt;MerPad Example&lt;/title&gt;

  &lt;description&gt;
A Mer version of Maemopad.
Built on OBS by David.
  &lt;/description&gt;

  &lt;person role=&quot;maintainer&quot; userid=&quot;username&quot;/&gt;
  &lt;person role=&quot;bugowner&quot; userid=&quot;username&quot;/&gt;
  &lt;url&gt;PUT_UPSTREAM_URL_HERE&lt;/url&gt;
&lt;/package&gt;
&lt;/source&gt;

==Uploading Source==

===Uploading Source : WWW===

From your Home Project, you should see a &quot;merpad&quot; entry under Packages.
Select merpad to go to the Package page (you may already be there if you just created it).

Now click [Add File] and upload the tar.gz and then do it again for the dsc files.

Use these files:
  http://www.dgreaves.com/pub/merpad_1.0-1.dsc
  http://www.dgreaves.com/pub/merpad_1.0-1.tar.gz

===Uploading Source : CLI===

To get a local (empty) copy make sure you're at your obs root (eg &lt;code&gt;~/maemo/Mer/obs&lt;/code&gt;)

Then run
 osc co home:&lt;username&gt;/merpad

(If you were already in &lt;code&gt;~/maemo/Mer/obs&lt;/code&gt; then &lt;code&gt;co merpad&lt;/code&gt; would work.. beware, nothing stops you checking out a project inside a project!)

This makes a package directory so now you can:
 cd home:&lt;username&gt;/&lt;package&gt;

Once there you can copy in the tarball and dsc file from your application... or in this tutorial we'll get them from the web.
 wget   http://www.dgreaves.com/pub/merpad_1.0-1.dsc
 wget   http://www.dgreaves.com/pub/merpad_1.0-1.tar.gz

Then add them to version control
 osc addremove

The addremove command is a shortcut... it removes any files from OBS that are no longer in the directory and then adds any that are there. Typically you just delete old tarballs and dsc files and run osc addremove. If you prefer osc has an explicit add command.

Now they are ready to be uploaded or comitted:
 osc commit

This will send the source and dsc to the builder and trigger a build.

==Monitoring the Build==

The OBS builder will now schedule and build the application.

Please note that for security reasons the builder is running inside an emulator which is 'killed' when it is finished; so there are alarming messages like &lt;code&gt;Kernel panic - not syncing: Attempted to kill init!&lt;/code&gt; and some &lt;code&gt;qemu: Unsupported syscall&lt;/code&gt; messages. These can safely be ignored and will be cleaned up one day.

===Following the build log : WWW ===

In the package page under the build target is a [Build Log] entry.
This takes you to a page showing the build log. There are tickboxes to refresh automatically and to autoscroll.

===Following the build log : CLI ===
To watch what is going on on the cli:
 osc buildlog MerExtrasStable_MerStable_Ubuntu_9.04 armv5el

This does something like a &quot;tail -f&quot; of the builder.

Tip: If you can't recall what the names of the targets are then:
  osc repos
will tell you.

==Downloading the Binaries==

Once OBS has run you can download the binaries and install them by hand.

===Getting the binaries : WWW===

In the build status is a link to the .deb file. Notice this is an https link and you need to be logged-in.

===Getting the binaries : CLI===

Simply run:
  osc getbinaries MerExtrasStable_MerStable_Ubuntu_9.04 armv5el
in the package directory.

==Using your repository==

OBS takes a while (up to several hours if busy) to publish and update repositories; however once it is done the final (optional) step is to add an entry to your tablet to use the OBS repository for your project.

Create a file called &lt;code&gt;/etc/apt/sources.list.d/MyOBS.list&lt;/code&gt; and add the following line (using your name):
  deb http://download.opensuse.org/repositories/home:/yourname/MerExtrasStable_MerStable_Ubuntu_9.04/ /

Then running the application manager should show your MerPad.

==Local Builds==
OBS lets you run a local build on your desktop.

Simply checkout a package:
  osc co home:username/merpad

and run:
  cd home:username/merpad
  osc build MerExtrasStable_MerStable_Ubuntu_9.04 armv5el merpad_1.0-1.dsc

Then wait...

This goes to the server to determine where to get the build-depends (remember the build-target stack) and then downloads them to a local cache. Eventually it installs a bootstrap set to a directory and then does a qemu chroot into it and builds the package.

Note that the following 2 python modules may be required
 apt-get install python-m2crypto
 apt-get install python-urlgrabber

Once it is done you should get a line telling you where the deb is:
  /scratch3/maemo/Mer/obs/build-MerExtrasStable_MerStable_Ubuntu_9.04-armv5el-merpad/usr/src/packages/DEBS/merpad_1.0-1_armel.deb

It will ask for a password at one stage.  You can use your local root password for this.   If you get an error complaining about a lack of /usr/lib/common_functions, then create a folder in your home folder, cd into it, and then follow the instructions [http://gitorious.org/mer/build HERE] .  they should ask you to run the command 

  git clone git://gitorious.org/mer/build.git 

in that folder.  This will use git to download a newer 'build' tool for you.  See the pageafter it has finished, run ''make install'' to install the tool, and then go back and run the osc build step again.  It should continue from the password prompt step successfully this time.


You can also do:
  sudo chroot /scratch3/maemo/Mer/obs/build-MerExtrasStable_MerStable_Ubuntu_9.04-armv5el-merpad/ su abuild
and once there, run arm commands inside the chroot.

=== Co-existing with Scratchbox ===

If you use the OBS local build facility and the scratchbox-1 local builder then you need to know how to teach the two emulators how to co-exist.

Both OBS and Scratchbox use [http://git.kernel.org/gitweb.cgi?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/binfmt_misc.txt;hb=HEAD binfmt_misc] to cause the kernel to invoke (in our case) qemu when it comes across an armel binary.

To disable qemu and enable sbox
  echo 0 &gt; /proc/sys/fs/binfmt_misc/arm
  echo 0 &gt; /proc/sys/fs/binfmt_misc/armeb
  echo 1 &gt; /proc/sys/fs/binfmt_misc/sbox-arm
  echo 1 &gt; /proc/sys/fs/binfmt_misc/sbox-armeb

To disable sbox and enable arm
  echo 1 &gt; /proc/sys/fs/binfmt_misc/arm
  echo 1 &gt; /proc/sys/fs/binfmt_misc/armeb
  echo 0 &gt; /proc/sys/fs/binfmt_misc/sbox-arm
  echo 0 &gt; /proc/sys/fs/binfmt_misc/sbox-armeb

Don't do this whilst a build is in progress!

Note that you may need to run :
  qemu-binfmt-conf.sh
to register qemu to handle arm binaries

A typical error signifying you have this issue is
  Exec format error
which means the kernel doesn't understand the binary format of the executable.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Build/Application Building/XML Build Targets</title>
    <id>1963</id>
    <revision>
      <id>38926</id>
      <timestamp>2010-09-22T10:29:55Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

This is the full set of Ubuntu build target repositories for a home:username project setup.

Don't use this without making sure you know why you're doing it.

&lt;source lang=&quot;xml&quot;&gt;
  &lt;build&gt;
    &lt;disable repository='MerExtrasDevel_MerDevel_Ubuntu_9.04' arch='i586'/&gt;
    &lt;disable repository='MerExtrasDevel_MerStable_Ubuntu_9.04' arch='i586'/&gt;
    &lt;disable repository='MerExtrasDevel_MerTesting_Ubuntu_9.04' arch='i586'/&gt;
    &lt;disable repository='MerExtrasTesting_MerDevel_Ubuntu_9.04' arch='i586'/&gt;
    &lt;disable repository='MerExtrasTesting_MerStable_Ubuntu_9.04' arch='i586'/&gt;
    &lt;disable repository='MerExtrasTesting_MerTesting_Ubuntu_9.04' arch='i586'/&gt;
    &lt;disable repository='MerExtrasStable_MerDevel_Ubuntu_9.04' arch='i586'/&gt;
    &lt;disable repository='MerExtrasStable_MerStable_Ubuntu_9.04' arch='i586'/&gt;
    &lt;disable repository='MerExtrasStable_MerTesting_Ubuntu_9.04' arch='i586'/&gt;
    &lt;disable repository='MerExtrasDevel_MerDevel_Ubuntu_9.04' arch='armv5el'/&gt;
    &lt;disable repository='MerExtrasDevel_MerStable_Ubuntu_9.04' arch='armv5el'/&gt;
    &lt;disable repository='MerExtrasDevel_MerTesting_Ubuntu_9.04' arch='armv5el'/&gt;
    &lt;disable repository='MerExtrasTesting_MerDevel_Ubuntu_9.04' arch='armv5el'/&gt;
    &lt;disable repository='MerExtrasTesting_MerStable_Ubuntu_9.04' arch='armv5el'/&gt;
    &lt;disable repository='MerExtrasTesting_MerTesting_Ubuntu_9.04' arch='armv5el'/&gt;
    &lt;disable repository='MerExtrasStable_MerDevel_Ubuntu_9.04' arch='armv5el'/&gt;
    &lt;enable repository='MerExtrasStable_MerStable_Ubuntu_9.04' arch='armv5el'/&gt;
    &lt;disable repository='MerExtrasStable_MerTesting_Ubuntu_9.04' arch='armv5el'/&gt;
  &lt;/build&gt;
  &lt;repository name=&quot;MerExtrasDevel_MerDevel_Ubuntu_9.04&quot;&gt;
    &lt;path project=&quot;Maemo:Mer:Extras:Devel&quot; repository=&quot;MerDevel_Ubuntu_9.04&quot;/&gt;
    &lt;arch&gt;armv5el&lt;/arch&gt;
    &lt;arch&gt;i586&lt;/arch&gt;
  &lt;/repository&gt;
  &lt;repository name=&quot;MerExtrasDevel_MerStable_Ubuntu_9.04&quot;&gt;
    &lt;path project=&quot;Maemo:Mer:Extras:Devel&quot; repository=&quot;MerStable_Ubuntu_9.04&quot;/&gt;
    &lt;arch&gt;armv5el&lt;/arch&gt;
    &lt;arch&gt;i586&lt;/arch&gt;
  &lt;/repository&gt;
  &lt;repository name=&quot;MerExtrasDevel_MerTesting_Ubuntu_9.04&quot;&gt;
    &lt;path project=&quot;Maemo:Mer:Extras:Devel&quot; repository=&quot;MerTesting_Ubuntu_9.04&quot;/&gt;
    &lt;arch&gt;armv5el&lt;/arch&gt;
    &lt;arch&gt;i586&lt;/arch&gt;
  &lt;/repository&gt;
  &lt;repository name=&quot;MerExtrasStable_MerDevel_Ubuntu_9.04&quot;&gt;
    &lt;path project=&quot;Maemo:Mer:Extras:Stable&quot; repository=&quot;MerDevel_Ubuntu_9.04&quot;/&gt;
    &lt;arch&gt;armv5el&lt;/arch&gt;
    &lt;arch&gt;i586&lt;/arch&gt;
  &lt;/repository&gt;
  &lt;repository name=&quot;MerExtrasStable_MerStable_Ubuntu_9.04&quot;&gt;
    &lt;path project=&quot;Maemo:Mer:Extras:Stable&quot; repository=&quot;MerStable_Ubuntu_9.04&quot;/&gt;
    &lt;arch&gt;armv5el&lt;/arch&gt;
    &lt;arch&gt;i586&lt;/arch&gt;
  &lt;/repository&gt;
  &lt;repository name=&quot;MerExtrasStable_MerTesting_Ubuntu_9.04&quot;&gt;
    &lt;path project=&quot;Maemo:Mer:Extras:Stable&quot; repository=&quot;MerTesting_Ubuntu_9.04&quot;/&gt;
    &lt;arch&gt;armv5el&lt;/arch&gt;
    &lt;arch&gt;i586&lt;/arch&gt;
  &lt;/repository&gt;
  &lt;repository name=&quot;MerExtrasTesting_MerDevel_Ubuntu_9.04&quot;&gt;
    &lt;path project=&quot;Maemo:Mer:Extras:Testing&quot; repository=&quot;MerDevel_Ubuntu_9.04&quot;/&gt;
    &lt;arch&gt;armv5el&lt;/arch&gt;
    &lt;arch&gt;i586&lt;/arch&gt;
  &lt;/repository&gt;
  &lt;repository name=&quot;MerExtrasTesting_MerStable_Ubuntu_9.04&quot;&gt;
    &lt;path project=&quot;Maemo:Mer:Extras:Testing&quot; repository=&quot;MerStable_Ubuntu_9.04&quot;/&gt;
    &lt;arch&gt;armv5el&lt;/arch&gt;
    &lt;arch&gt;i586&lt;/arch&gt;
  &lt;/repository&gt;
  &lt;repository name=&quot;MerExtrasTesting_MerTesting_Ubuntu_9.04&quot;&gt;
    &lt;path project=&quot;Maemo:Mer:Extras:Testing&quot; repository=&quot;MerTesting_Ubuntu_9.04&quot;/&gt;
    &lt;arch&gt;armv5el&lt;/arch&gt;
    &lt;arch&gt;i586&lt;/arch&gt;
  &lt;/repository&gt;
&lt;/source&gt;</text>
    </revision>
  </page>
  <page>
    <title>Mer/Build/Common Problems</title>
    <id>1824</id>
    <revision>
      <id>38878</id>
      <timestamp>2010-09-22T09:33:32Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

=Common Problems encountered building for Mer on OBS=

==Diagnosing a problem==
First of all look at the status information

* succeeded
Package has built successfully and can be used to build further packages.

* failed
The package does not build successfully. No packages have been created. Packages that depend on this package will be built using any previously created packages, if they exist. [[Mer/Build/Common Problems/Failed Diagnosis|Failed Diagnosis]]


* expansion error
The build can not begin, because required packages are either missing or not explicitly defined.

* blocked
This package waits for other packages to be built. These can be in the same or other projects. Typically you just need to wait.

* scheduled
A package has been marked for building, but the build has not started yet. Again, just wait.

* building
The package is currently being built. Smile and wait.

* dispatching
A package is being copied to a build host. This is an intermediate state before building.

* finished
The package has been built, but has not yet been picked up by the server. This is an intermediate state prior to 'succeeded' or 'failed'.

* disabled
The package has been disabled from building in project or package metadata.

* excluded
The package build has been disabled in package build description (for example in the .spec file) or does not provide a matching build description for the target.

* broken
The sources either contain no build description (eg specfile) or a source link does not work.

* unknown
The scheduler has not yet evaluated this package. Should be a short intermediate state for new packages. 

==Non-Problems==
Some things are known issues that (AFAWK) don't affect the build:
* qemu broken pipes


==Specifics==

 dh_clean
 dpkg-source -b BUILD
 dpkg-source: warning: source directory 'BUILD' is not &lt;sourcepackage&gt;-&lt;upstreamversion&gt; 'bomberman-1.0 '
 dpkg-source: info: using source format `1.0'
 dpkg-source: info: building bomberman in bomberman_1.0.tar.gz
 dpkg-source: info: building bomberman in bomberman_1.0.dsc
 debian/rules build
 dh_testdir
 # Add here commands to configure the package.
 CFLAGS=&quot;-Wall -g -O2&quot; ./configure --prefix=/usr --disable-static
 configure: error: cannot find install-sh or install.sh in . ./.. ./../..</text>
    </revision>
  </page>
  <page>
    <title>Mer/Build/Common Problems/Failed Diagnosis</title>
    <id>1826</id>
    <revision>
      <id>38873</id>
      <timestamp>2010-09-22T09:28:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

First thing to check is for scratchbox-isms

'''ls -laF''' in the source will often show things like:
 depcomp -&gt; /scratchbox/tools/autotools/automake-1.7/share/automake-1.7/depcomp*
 missing -&gt; /scratchbox/tools/autotools/automake-1.7/share/automake-1.7/missing*                     
 config.guess -&gt; /scratchbox/compilers/cs2005q3.2-glibc2.5-arm/arch_tools/share/libtool/config.guess*

In this case, run:
  automake --add-missing
  autoreconf
You may need create manadatory Debian files like NEWS etc</text>
    </revision>
  </page>
  <page>
    <title>Mer/Build/Cross Build</title>
    <id>2240</id>
    <revision>
      <id>38927</id>
      <timestamp>2010-09-22T10:30:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

The OBS build farm and local osc builds create an armel chroot to build the packages in. arm tools are installed into the chroot and run under emulation.

Using distribution tools rather than a toolchain provides a more consistent build system.

The problem is that this approach is slow.

The OBS engineers identified the applications that represented the greatest load on the build system:
* bash
* bzip2
* dpkg
* gzip
* m4
* make
* perl

And of course:
* gcc

So the intention is to accelerate these binaries.

== Overview ==

Lets establish a naming convention: native is the architecture of the chroot; host is the architecture of the underlying CPU. Typically native is armel, host is x86.

The approach to solving this problem is to minimise changes from a pure arm build environment. This is achieved by installing both arm and x86 packages; to avoid collisions the x86 packages are installed into /lib-x86 in the chroot and selected binaries in /bin and /usr/bin are moved out of the way and replaced with symlinks to the i586 binaries.

Many x86 packages are unmodified; any paths they use will relate to the main / directory and the config/data files installed by the native package will be used.

Some packages are modified to minimise build times - eg to avoid 64 bit builds; others are modified (eg dpkg) to set the native architecture as a default.

== Shared Libraries ==

Obviously the host binaries need to link to shared libraries which are not in the normal LDPATH. We don't want to have to rely on environment variables etc so 2 steps are used:
* modify ldlinux.so to look in /lib-x86/lib etc
* modify the rpath value in the ELF header of each replaced binary

This is done by creating a static build of [http://nixos.org/patchelf.html patchelf] and modifying the binaries as they are installed.

Typically a modified package has all postinst scripts removed and replaced with something like:
 prefix=/lib-x86
 $prefix/usr/bin/patchelf --set-rpath $prefix/lib $prefix/usr/bin/make
 mv /usr/bin/make /usr/bin/make-orig-x86lib
 ln -s $prefix/usr/bin/make /usr/bin/make

Note that some libraries have an rpath and need to be treated with patchelf.

One problem arises with fakeroot: it modifies the LD_LIBRARY_PATH to look for &lt;code&gt;libfakeroot-XXX.so&lt;/code&gt;
This is handled by editing the fakeroot script to append the /lib-x86/ paths in the same way the multi-arch paths are added.

== mkbaselibs ==</text>
    </revision>
  </page>
  <page>
    <title>Mer/Build/Install OBS</title>
    <id>1956</id>
    <revision>
      <id>39520</id>
      <timestamp>2010-10-13T11:37:15Z</timestamp>
      <contributor>
        <username>dominig</username>
        <id>3478</id>
      </contributor>
      <comment>/* Ubuntu */</comment>
      <text xml:space="preserve">{{Mer}}

[[OBS]] stands for [https://build.opensuse.org/ OpenSuse Build Service]. You can find out more about it from the OpenSuse webpage.

== Installing OBS tools locally ==

You'll need an [https://secure-www.novell.com/selfreg/jsp/createOpenSuseAccount.jsp?target=http://www.opensuse.org account with Novell]

You must then visit your [https://build.opensuse.org/project/list_my project list] and click : &quot;Let me build my packages!&quot;


=== Debian ===
Assuming a Debian Testing development box locally:

To get the OBS tools repository add an entry to the sources.lists:
 echo &quot;deb &lt;nowiki&gt;http://download.opensuse.org/repositories/openSUSE:/Tools/Debian_5.0/ /&lt;/nowiki&gt;&quot; &gt; /etc/apt/sources.list.d/obs.list

Then
 apt-get update
 apt-get install osc build qemu

OBS uses 403 redirects which hits a [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=479350 bug in apt] in Lenny.


You can workaround using:
  wget http://download.opensuse.org/repositories/openSUSE:/Tools/Debian_5.0/./all/build_2009.09.23-1_all.deb
  apt-get -f install

=== Ubuntu ===
Assuming an Ubuntu9.04 development box locally:

To get the OBS tools repository add the following line:
 deb &lt;nowiki&gt;http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_9.04/ /&lt;/nowiki&gt;
to a new file called:
 /etc/apt/sources.list.d/obs.list

Then
 # add the key in the apt keyring
 wget -q http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_9.04/Release.key -O- | apt-key add -
 # refresh your package source
 apt-get update
 apt-get install osc build

Now edit &lt;code&gt;/etc/apt/sources.list.d/obs.list&lt;/code&gt; and comment that line out.

Note there is a problem in Ubuntu9.04 osc as of 25 May '09... to fix it, do this as root:
  cd /usr/lib/python2.6/dist-packages/
  ln -s ../site-packages/osc* .

Suse don't have an Ubuntu qemu yet so we use the one they make for Debian (bug raised):

Add the following lines:
 deb &lt;nowiki&gt;http://download.opensuse.org/repositories/openSUSE:/Tools/Debian_5.0/ /&lt;/nowiki&gt;
to a new file called:
 /etc/apt/sources.list.d/debian5_qemu.list

Then
 apt-get update
 apt-get install qemu

now remove that file: 
 &lt;code&gt;rm /etc/apt/sources.list.d/debian5_qemu.list&lt;/code&gt; 

and run
 apt-get update


==== Troubleshooting ====

If you get the following error when adding one of these repos
 W: GPG error: http://ftp.debian.org stable Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ''SOMEKEY''
Then run the command
 gpg --keyserver pgpkeys.mit.edu --recv-key ''SOMEKEY'' &amp;&amp; gpg -a --export  ''SOMEKEY'' | sudo apt-key add -
replacing ''SOMEKEY'' with the complained about key

=== RedHat Enterprise Linux 5 ===
Assuming a RHEL 5 box locally:

The M2Crypto package that comes w/ RHEL5 is too old. I retrieved the 0.19.1 source rpm from Fedora 10 and built it for my architecture. But you will need to update this package to at least version 0.19 before installing the OBS packages.

Install the public key for the OBS RPM repository:
 rpm --import http://download.opensuse.org/repositories/openSUSE:/Tools/RHEL_5/repodata/repomd.xml.key

To get the OBS tools repository recognized by yum:
 echo &quot;[obs]&quot; &gt; /etc/yum.repos.d/obs.repo
 echo &quot;name=OpenSUSE Build System&quot; &gt;&gt; /etc/yum.repos.d/obs.repo
 echo &quot;baseurl=http://download.opensuse.org/repositories/openSUSE:/Tools/RHEL_5&quot; &gt;&gt; /etc/yum.repos.d/obs.repo

Then:
 yum makecache
 yum install osc build qemu-svn

This technique is likely to work with RHEL derivatives like CentOS.

=== Other distributions ===
You can find openSuse build tools for various distributions at
http://download.opensuse.org/repositories/openSUSE:/Tools/

=== All OSes ===

 NAME=&lt;username&gt;
 cat &lt;&lt;EOF &gt;&gt; /etc/sudoers
 $NAME ALL=NOPASSWD: /usr/bin/build
 $NAME ALL=NOPASSWD: /usr/sbin/chroot
 EOF

Now, as a normal user, run
 osc
and enter novell.com username/passwd when prompted (note these are stored in cleartext in the config file). Note this isn't supposed to do anything (it prints out the osc help) but it stores your name/pw for future use.

Go and [https://build.opensuse.org login].

Make sure you click the &quot;let me build packages&quot; button.

There is a link to 'Home Project' on the left, follow this and enter a description.

Note that if, in the future, qemu fails to work you may need to setup the associations for arm binaries by running:
  qemu-binfmt-conf.sh

=== Handle OBS using ':' in filenames ===

To help bash completion etc:
  export COMP_WORDBREAKS=&quot;
  &gt; &quot;\&quot;&quot;'&gt;&lt;=;|&amp;(&quot;
or
  COMP_WORDBREAKS=${COMP_WORDBREAKS//:/}

=== Local osc setup ===
Create a local build path. E.g.,

 mkdir -p ~/maemo/Mer/obs

In the following instructions, references to ''local-username'' should be replaced with the username used to login on your local machine while ''build-username'' (resp. ''build-password'') should be replaced with your OBS account name (resp. OBS account password).

Run &lt;code&gt;osc&lt;/code&gt; without arguments. It will basically ask you to enter your OBS account username and password and create a default configuration in &lt;code&gt;~/.oscrc&lt;/code&gt;. Edit it to match your needs. Here are a few interesting parameters mainly found in the &lt;code&gt;&lt;nowiki&gt;[general]&lt;/nowiki&gt;&lt;/code&gt; section:

* the &lt;code&gt;apiurl&lt;/code&gt; parameter should be set to the following URL:  https://api.opensuse.org.

* the &lt;code&gt;packagecachedir&lt;/code&gt; parameter specifies where all the cached binary packages are held to create a chroot build environment. Around 300MB are needed. E.g.,
 packagecachedir = /home/''local-username''/maemo/Mer/obs/.pkg-cache/

* the &lt;code&gt;build-root&lt;/code&gt; parameter specifies the default location where a complete chroot build will be installed. This will be a minimal OS install: 400MB minimum.  E.g.,
 build-root = /home/''local-username''/maemo/Mer/obs/build-%(repo)s-%(arch)s

* in the section &lt;code&gt;&lt;nowiki&gt;[https://api.opensuse.org]&lt;/nowiki&gt;&lt;/code&gt;, set your credentials as follow:
 user = ''build-username''
 pass = ''build-password''

=== Next Steps ===
Go back to [[Mer/Build]] and then onto [[Mer/Build/Application Building|Application Building]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Build/Processes</title>
    <id>1959</id>
    <revision>
      <id>38875</id>
      <timestamp>2010-09-22T09:30:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== OBS Project structure and promotion ==

The Mer projects on OBS look like this:
 Maemo:Mer:Stable
 Maemo:Mer:Stable:HW:Beagle
 Maemo:Mer:Stable:HW:N8x0

This means all devices will have the main 'Stable' repository and an appropriate HW repository.

The development area is expanded slightly:
 Maemo:Mer:Devel:Apps
 Maemo:Mer:Devel:Base
 Maemo:Mer:Devel:MaemoCommon
 Maemo:Mer:Devel:MaemoCommon:L10n
 Maemo:Mer:Devel:UI
 Maemo:Mer:Devel:HW:Beagle:Devel
 Maemo:Mer:Devel:HW:N8x0:Devel

Details of packages in each area is given in the[[Mer/Packages|Packages]] pages.

Packages in each of these Devel subproject areas can be hacked on and then, when they're kinda working they are consolidated into the :Devel area (which is used as a build target for the :Devel:* subprojects)
 Maemo:Mer:Devel
 Maemo:Mer:Devel:HW:N8x0
 Maemo:Mer:Devel:HW:Beagle

Packages are placed in :Testing with the intention of including
them in the next release subject to QA and bug fixes

  Maemo:Mer:Testing
  Maemo:Mer:Testing:HW:Beagle
  Maemo:Mer:Testing:HW:N8x0

Once :Testing is ready a release of all packages to a numbered version is made:
  Maemo:Mer:0.13
  Maemo:Mer:0.13:HW:Beagle
  Maemo:Mer:0.13:HW:N8x0

Note that the :HW promotion process is slightly different:
 Maemo:Mer:Devel:HW:N8x0:Devel -&gt; Maemo:Mer:Devel:HW:N8x0 -&gt; Maemo:Mer:Testing:HW:N8x0 -&gt; Maemo:Mer:Stable:HW:N8x0

=== Promotion Tasks ===

To promote a package:
  osc copypac &lt;SOURCEPRJ&gt; &lt;SOURCEPAC&gt; &lt;DESTPRJ&gt;
eg:
  osc copypac -k Maemo:Mer:Devel glib2.02 Maemo:Mer:Testing
The &lt;code&gt;-k&lt;/code&gt; ensures that the maintainer info is preserved.

Ensure that:
&lt;nowiki&gt;
  osc meta prjconf &lt;SOURCE&gt;
&lt;/nowiki&gt;
is copied to the &lt;TARGET&gt; conf. This may contain things like package selection preferences.
Currently the prjconf is:
 Prefer: hildon-fm-l10n-mr0
 Ignore: hildon-fm-l10n-mr
 Prefer: notify-osd
 Ignore: initramfs:initramfs-tools,udev,blueman
 Ignore: libmbca0:bluez-gnome
 Ignore: libgtk2.0-common:libgtk2.0-0
 Ignore: libgtk2.0-bin:libgtk2.0-0
 # Added following for claws-mail. &quot;have choice for libdb-dev needed by libetpan-dev: libdb4.2-dev libdb-dev&quot;
 Prefer: libdb-dev

== To Promote :Devel To :Testing ==

First pipe over the project metadata:
  osc meta prjconf Maemo:Mer:Devel  | osc meta prjconf Maemo:Mer:Testing -F - 

Clean out :Testing
  for i in $(osc ls Maemo:Mer:Testing); do echo $i; osc rdelete Maemo:Mer:Testing $i ; done
  for HW in HW:N8x0 HW:N900 HW:SmartQ HW:Freerunner HW:Beagle; do
    for i in $(osc ls Maemo:Mer:Testing:$HW); do echo $i; osc rdelete Maemo:Mer:Testing:$HW $i; done
  done


Then run:
  osc wipebinaries --all Maemo:Mer:Testing
  for i in $(osc ls Maemo:Mer:Devel); do echo $i; osc copypac Maemo:Mer:Devel $i Maemo:Mer:Testing ; done
  for HW in HW:N8x0 HW:N900 HW:SmartQ HW:Freerunner HW:Beagle; do
    osc wipebinaries --all Maemo:Mer:Testing:$HW
    for i in $(osc ls Maemo:Mer:Devel:$HW); do echo $i; osc copypac -k Maemo:Mer:Devel:$HW $i Maemo:Mer:Testing:$HW ; done
  done

== To Promote :Testing to :Stable ==

The process here is to create a versioned repo; eg :0.14

  export STABLE=0.14
  export OLD=0.13

Create the projects (copied from $OLD):
  osc meta prj Maemo:Mer:$OLD | sed &quot;s/$OLD/$STABLE/&quot; |osc meta prj Maemo:Mer:$STABLE -F -
  for HW in HW:N8x0 HW:N900 HW:SmartQ HW:Freerunner HW:Beagle; do
    osc meta prj Maemo:Mer:$OLD:$HW | sed &quot;s/$OLD/$STABLE/&quot; |osc meta prj Maemo:Mer:$STABLE:$HW -F -
  done

Pipe over the project metadata:
  osc meta prjconf Maemo:Mer:Testing  | osc meta prjconf Maemo:Mer:$STABLE -F - 

Then run:
  for i in $(osc ls Maemo:Mer:Testing); do echo $i; osc copypac Maemo:Mer:Testing $i Maemo:Mer:$STABLE ; done
  for HW in HW:N8x0 HW:N900 HW:SmartQ HW:Freerunner HW:Beagle; do
    for i in $(osc ls Maemo:Mer:Testing:$HW); do echo $i; osc copypac -k Maemo:Mer:Testing:$HW $i Maemo:Mer:$STABLE:$HW ; done
  done

Allow to build.

&lt;hr&gt;

Then, once it's built and stable, use _aggregate to link each package to :Stable

First clean out :Stable
  for i in $(osc ls Maemo:Mer:Stable); do echo $i; osc rdelete Maemo:Mer:Stable $i ; done
  for HW in HW:N8x0 HW:N900 HW:SmartQ HW:Freerunner HW:Beagle; do
    for i in $(osc ls Maemo:Mer:Stable:$HW); do echo $i; osc rdelete Maemo:Mer:Stable:$HW $i; done
  done

*** ALSO wipebinaries next time ***

NOTE The following uses -m in osc which is not accepted upstream yet. It will not work unless you have lbt's osc patches.

  for i in $(osc ls Maemo:Mer:$STABLE); do echo $i; osc aggregatepac Maemo:Mer:$STABLE $i Maemo:Mer:Stable; done
  for HW in HW:N8x0 HW:N900 HW:SmartQ HW:Freerunner HW:Beagle; do
    for i in $(osc ls Maemo:Mer:$STABLE:$HW); do echo $i
      osc aggregatepac -m MerStable_Debian_5.0=Mer${STABLE}_Debian_5.0,MerStable_Ubuntu_9.04=Mer${STABLE}_Ubuntu_9.04 Maemo:Mer:${STABLE}:$HW $i Maemo:Mer:Stable:$HW
    done
  done




Note that :Stable project must be setup to publish and to build

== Linking to :Extras ==
In order to allow people to develop applications/packages for :Extras they need to setup their home area on OBS as in [[Mer/Build/Application_Building|Building Applications]]. Once the package is built it can be linked to Maemo:Mer:Extras:Devel
  osc linkpac -f -c home:tomaszd84 leafpad Maemo:Mer:Extras:Devel

&lt;code&gt;-c&lt;/code&gt; ensures that the version is pinned so when user tomaszd84 changes his package, it doesn't change in :Extras:Devel unless it is relinked.
&lt;code&gt;-f&lt;/code&gt; forces an existing link to be updated.

== Linking ==

To link to a source create a _link file containing:
  &lt;link project=&quot;linked project name&quot; package=&quot;linked package name&quot;&gt;

optionally:
  &lt;patches&gt;
    &lt;apply name=&quot;name of the first patch&quot; /&gt;
  &lt;/patches&gt;

Sadly these patches apply to the files in the source; so this means you need to apply the diff to the maemo-ised diff file.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Build/SDK</title>
    <id>2119</id>
    <revision>
      <id>38928</id>
      <timestamp>2010-09-22T10:32:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

The Mer SDK lives at Maemo:Mer:Tools/sdk

Usage to follow</text>
    </revision>
  </page>
  <page>
    <title>Mer/Build/UsingGitorious</title>
    <id>1980</id>
    <revision>
      <id>38982</id>
      <timestamp>2010-09-22T12:04:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Packaging ==
Note that the detailed cut'n'paste instructions on this page assume a '''very''' up-to-date git : ~1.6.3.x;  even 1.6.0.4 is too old and [[#Older Git Versions|will need tweaks]] - though they can still be used.

===Initial Setup===
The initial Mer DVCS packaging process looks like this:

[[Image:Mer_workflow_init.png]]

An upstream package is unpacked and the &lt;code&gt;debian/&lt;/code&gt; directory is removed.
It is then commited onto the upstream branch.

[http://kitenet.net/~joey/code/pristine-tar/ pristine-tar] is used to ensure that the upstream tarball can be recreated perfectly.

All features or bug fixes are broken out to additional branches; 1 branch per feature or fix. The main difference is that features are not likely to go upstream whilst fixes are. This is very similar to quilt.

master is the main code branch and there should only be merge commits on this branch; the only non-merge commits should be in &lt;code&gt;./ChangeLog&lt;/code&gt;

Mer should be packaging-based and the only non-merge commits should be in &lt;code&gt;debian/&lt;/code&gt;

===Local Updates===
A local update simply adds a commit to one or more feature branches, merges to master, tags, merges to Mer, tags and releases.

===Upstream Updates===
[[Image:Mer_workflow_upstream.png]]

An upstream update loads the new upstream into the upstream branch and replaces any code there.

Then it is merged into each feature branch in turn. This ensures the feature branch is updated ready for the next upstream release (which wouldn't happen if the feature branch was merged into upstream).

Since master contains all the features; any attempt to merge upstream into master will result in the same conflicts arising en-masse. Instead a local branch is created from upstream HEAD and all features/patches are staged into this branch before being merged and tagged in master.

Finally master is merged into Mer and any packaging modifications are made.

===Maintenance Releases===
[[Image:Mer_workflow_maint.png]]

[ Note this is still theoretical. ]

Maintenance releases are made by branching master and patching or cherry picking commits. There is no attempt to maintain or integrate feature branches.

Once a tag is made in master, the Mer branch is branched, merged and tagged.

===Overall===
[[Image:Mer_workflow.png]]

== Developing ==

Development of a feature is done by cloning master; then branching locally and developing against master.

Once development is complete a new feature branch is created and the development branch is then cherry-picked onto the new feature branch.

== Moving a Package to Gitorious ==

=== Initial setup ===

The following scripts need:
  PKG=&lt;package name&gt;
  GPKG=&lt;gitorious-safe package name&gt; (ie [a-z0-9_-]
  UPVER=&lt;upstream version&gt;
  TARBALL=&lt;tarball name&gt;
  TAG=&lt;new version&gt;

Get the upstream source unpacked
  mkdir gitify
  cd gitify
either:
  tar xf ../$TARBALL
or
  dpkg-source -x ../$PKG*.dsc
  rm -f *
(rm -f * removes the dpkg-source cruft)

Then
  mv * ../$PKG
  cd ..
  rm -rf gitify
  cd $PKG

Cleanse the install
  mv debian ..

Create a git repo with the new stuff
  git init
  git add .
  git commit -am&quot;${PKG}_$UPVER&quot;

This is really the upstream branch
  git branch -m master upstream

For keeping an eye on things you may want gitk running. Use File-&gt;reload frequently (F5 doesn't work for me)
  gitk --all &amp;

Save state
  pristine-tar commit ../$TARBALL

Prepare structure
create master branch from upstream
  git checkout -b master
create Mer branch from master
  git checkout -b Mer

Apply debianisation
  mv ../debian .
  git add debian/
  git commit -am &quot;initial debianize from upstream&quot;

=== Feature/patch branches ===

Now apply features from the .diff.gz
this has to be done manually

Identify a libtool feature
  git checkout upstream
  git checkout -b mer/libtool
apply hunks
  git commit -am&quot;libtool fixes&quot;

Identify an obs-fix feature
  git checkout upstream
  git checkout -b mer/obs-fix
apply hunks
  git commit -am&quot;obs pthread fixes&quot;

Now any debian/ hunks
  git checkout Mer
apply hunks
  git commit -am&quot;Added Mer debianisation&quot;

Now pull it all together
  git checkout master
look for all the mer/* and patch/* branches and merge them
  git branch -l
  git merge mer/libtool
  git merge mer/obs-fix

now use git log to create a top level ChangeLog entry
  git add ChangeLog
  git commit -m&quot;$TAG&quot;
Mark an 'upstream' release
  git tag $TAG

Now make a distro release
  git checkout Mer
  git merge master

now use git log to create a debian/changelog entry
  git add debian/changelog
  git commit -m&quot;Mer_$TAG&quot;
  git tag Mer_$TAG


=== Verify ===

Remove all obs code:
  cd ..
  rm $PKG*

regenerate it:
  cd $PKG
  pristine-tar checkout ../$TARBALL
  debuild -S -i.git

Build or examine to verify

=== Push ===

Now push to gitorious
  git symbolic-ref HEAD refs/heads/Mer

Logon to http://gitorious.org/mer and create gitorious project
  git remote add origin git@gitorious.org:mer/$GPKG.git
  git push --mirror origin
on gitorious goto 'Edit Repository' and set default to Mer


== Updating a feature branch ==
===python-hildon===

Setup some variables
 PKG=python-hildon
 GPKG=$PKG
 FEATURE=codegen-in-gobject
 TAG=0.9.0-1maemo4mer2

First go and get the source from gitorious or update your copy
 git clone git@gitorious.org:mer/$GPKG.git
or
 git fetch

Get the branch you want to work on
 git checkout mer/$FEATURE

make changes and commit
 git add $FILES
 git commit -m&quot;Fix to build on debian&quot;

Merge into Mer branch via local and master
 git checkout upstream
 git checkout  -b local

Merge all features and patches
 git merge mer/$FEATURE

Get the master branch
 git checkout --track origin/master -b master
or
 git checkout master

Then merge into Mer
 git merge local

Make a comment in the toplevel Changelog
 git add ChangeLog
 git commit -m&quot;$TAG&quot;
 git tag $TAG
 git checkout Mer

Make a comment in the debian changelog
 git add debian/changeLog
 git commit -m&quot;Mer_$TAG&quot;
 git tag Mer_$TAG

Then
 git push

== Handling new upstream ==
===hildon-input-method===

get new upstream
  wget http://repository.maemo.org/pool/fremantle/free/h/hildon-input-method/hildon-input-method_2.1.16-1+0m5.tar.gz

Make the tarball an &quot;orig&quot;
  mv hildon-input-method_2.1.16-1+0m5.tar.gz hildon-input-method_2.1.16-1+0m5.orig.tar.gz
  TARBALL=hildon-input-method_2.1.16-1+0m5.orig.tar.gz
  PKG=hildon-input-method
  GPKG=$PKG
  UPVER=2.1.16-1+0m5

Prepare to merge
  git clone git@gitorious.org:mer/$GPKG.git
  cd $GPKG
  git checkout --track origin/upstream -b upstream
  mv .git ../git-safe
  cd ..
  rm -rf $GPKG

replace the upstream code
  mkdir gitify
  cd gitify
  tar xf ../$TARBALL
  mv * ../$GPKG
  cd ..
  rm -rf gitify
  mv git-safe ${GPKG}/.git
  cd $GPKG
  mv debian ../
  git add .

Sanity check to ensure no files are removed etc. If so you need to make sure to &lt;code&gt;git rm&lt;/code&gt; them
  git status

Now we have a clean upstream release
  git commit -am&quot;${PKG}_$UPVER&quot;
  git tag $UPVER
  pristine-tar commit ../$TARBALL

If there are no mer/* branches then you get to skip to [[#HIM-Merge-Branches]]

Now to merge it into the branches
for each mer/* branch
  git checkout --track origin/mer/buttonwidth -b mer/buttonwidth
  git merge upstream

  git checkout --track origin/mer/him-arabic -b mer/him-arabic
  git merge upstream
This fails:
  Auto-merging hildon-input-method-ui3.schemas
  CONFLICT (content): Merge conflict in hildon-input-method-ui3.schemas
  Automatic merge failed; fix conflicts and then commit the result.

Looking in &lt;code&gt;hildon-input-method-ui3.schemas&lt;/code&gt; we have:
  ...
      &lt;owner&gt;hildon-input-method&lt;/owner&gt;
      &lt;type&gt;string&lt;/type&gt;
 &lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD:hildon-input-method-ui3.schemas
      &lt;default&gt;him-arabic&lt;/default&gt;
 =======
      &lt;default&gt;hildon_keyboard_assistant&lt;/default&gt;
 &gt;&gt;&gt;&gt;&gt;&gt;&gt; upstream:hildon-input-method-ui3.schemas
      &lt;locale name=&quot;C&quot;&gt;
        &lt;short&gt;Current input method&lt;/short&gt;
 ...

fix this to:
  ...
      &lt;owner&gt;hildon-input-method&lt;/owner&gt;
      &lt;type&gt;string&lt;/type&gt;
      &lt;default&gt;him-arabic&lt;/default&gt;
      &lt;locale name=&quot;C&quot;&gt;
        &lt;short&gt;Current input method&lt;/short&gt;
 ...

Now a &lt;code&gt;git status&lt;/code&gt; shows
  $ git status
  hildon-input-method-ui3.schemas: needs merge
  # On branch mer/him-arabic
  # Changes to be committed:
  #   (use &quot;git reset HEAD &lt;file&gt;...&quot; to unstage)
  #
  #       modified:   AUTHORS
  #       modified:   ChangeLog
  #       modified:   configure.ac
  #       new file:   debian/changelog
  #       new file:   debian/compat
  ...
  #       modified:   src/hildon-im-widget-loader.c
  #
  # Changed but not updated:
  #   (use &quot;git add &lt;file&gt;...&quot; to update what will be committed)
  #   (use &quot;git checkout -- &lt;file&gt;...&quot; to discard changes in working directory)
  #
  #       unmerged:   hildon-input-method-ui3.schemas
  #

So, as suggested:
  git add hildon-input-method-ui3.schemas

and then
  git commit

This opens an editor session with some normal merge text and the option to add more

  Merge branch 'upstream' into mer/him-arabic

  Conflicts:
	  hildon-input-method-ui3.schemas
  #
  # It looks like you may be committing a MERGE.
  # If this is not correct, please remove the file
  #	.git/MERGE_HEAD
  # and try again.
  #

So
  Merge branch 'upstream' into mer/him-arabic
  default keyboard made him-arabic

Carry on:
  git checkout --track origin/mer/keyboard-available -b mer/keyboard-available
  git merge upstream

More conflicts:
  Auto-merging hildon-input-method-ui3.schemas
  Auto-merging src/hildon-im-ui.c
  CONFLICT (content): Merge conflict in src/hildon-im-ui.c
  Auto-merging src/hildon-im-ui.h
  CONFLICT (content): Merge conflict in src/hildon-im-ui.h
  Automatic merge failed; fix conflicts and then commit the result.

This time it is helpful to examine the diff in the last
commit. Looking at remotes/origin/mer/keyboard-available &quot;add feature for if a physical keyboard is available&quot;
in gitk shows the diff. We can see that
  +  self-&gt;priv-&gt;keyboard_available =
  +    gconf_client_get_bool(self-&gt;client, HILDON_IM_GCONF_KEYBOARD_AVAILABLE, NULL);
was added to hildon-im-ui.c and
  +#define HILDON_IM_GCONF_KEYBOARD_AVAILABLE         HILDON_IM_GCONF_DIR       &quot;/keyboard_available&quot;
to  hildon-im-ui.h

The diff algorithm is confused because lines in the vicinity have changed. So examine these files, resolve the conflicts and add them to git.
  git add src/hildon-im-ui.h src/hildon-im-ui.c
  git commit

Finally:
  git checkout --track origin/mer/werror -b mer/werror
Once again we see that the old branch simply wanted to remove -Werror so edit and
  git add configure.ac
  git commit

Now we have resolved each of the branches we can merge into master. Because there were conflicts we need to 

  git checkout upstream
  git checkout  -b local
  git merge mer/buttonwidth
  git merge mer/him-arabic
  git merge mer/keyboard-available
  git merge mer/werror

Once the conflicting branches are consolidated, they can be merged;
  git checkout --track origin/master -b master
  git merge local

=====HIM-Merge-Branches=====
If there were no mer/branches then you would :
  git checkout --track origin/master -b master
  git merge upstream

And tagged for release:
  git add ChangeLog
  git tag 2.1.16-1+0m5-mer1

And Mer can be released too:
  git checkout Mer
  git merge master

At this point, if the upstream is a native package, you should look at ../debian if present to decide how it may impact the packaging branch. Otherwise ensure any modified files are added.
  git add debian/changelog debian/control
  git commit
  git tag Mer_2.1.16-1+0m5-mer1

Now push
  git push --all
  git push --tags

When it's all done it looks like this:

[[Image:Mer-lbt-gitk-him.png]]

=== glib ===
This shows by example how glib upstream was merged.

Clone the gitorious repository (I made a clone on gitorious first) at git@gitorious.org:~lbt/mer/glib2_0-mer.git

http://gitorious.org/~lbt/mer/glib2_0-mer

Get new upstream
  wget https://launchpad.net/ubuntu/jaunty/+source/glib2.0/2.20.1-0ubuntu2/+files/glib2.0_2.20.1.orig.tar.gz
  TARBALL=glib2.0_2.20.1.orig.tar.gz
  mkdir ../patches
  cd ../patches/
  wget https://stage.maemo.org/svn/maemo/projects/haf/branches/glib/glib-2-20/debian/patches/25-gatomic.patch
  wget https://stage.maemo.org/svn/maemo/projects/haf/branches/glib/glib-2-20/debian/patches/30-gfileutils.patch
  wget https://stage.maemo.org/svn/maemo/projects/haf/branches/glib/glib-2-20/debian/patches/35-gmessages.patch
  wget https://stage.maemo.org/svn/maemo/projects/haf/branches/glib/glib-2-20/debian/patches/40-gscanner.patch
  wget https://stage.maemo.org/svn/maemo/projects/haf/branches/glib/glib-2-20/debian/patches/45-gunicode.patch
  wget https://stage.maemo.org/svn/maemo/projects/haf/branches/glib/glib-2-20/debian/patches/50-gthread.patch
  wget https://stage.maemo.org/svn/maemo/projects/haf/branches/glib/glib-2-20/debian/patches/60_wait-longer-for-threads-to-die.patch
  wget https://stage.maemo.org/svn/maemo/projects/haf/branches/glib/glib-2-20/debian/patches/70_use-monotonic-clock-for-timeouts.patch
  wget https://stage.maemo.org/svn/maemo/projects/haf/branches/glib/glib-2-20/debian/patches/series


Prepare to merge
  git clone git@gitorious.org:~lbt/mer/glib2_0-mer.git
  cd glib2_0-mer/
  git checkout --track origin/upstream -b upstream
  git rm -r *

replace the upstream code
  mkdir _tmp
  cd _tmp
  tar xf ../../$TARBALL
  mv */* ../
  cd ..
  rm -rf _tmp
  git add .

Now we have a clean upstream release
  git commit -am&quot;glib2.0_2.20.1&quot;
  git tag 2.20.1
  pristine-tar commit ../glib2.0_2.20.1.orig.tar.gz

Apply all the maemo patches to their own branches
  git checkout upstream;git checkout -b mer/25-gatomic
  patch -p1 &lt; ../patches/25-gatomic.patch
  git commit -am&quot;applied gatomic&quot;

  git checkout upstream;git checkout -b mer/30-gfileutils
  patch -p1 &lt; ../patches/30-gfileutils.patch
  git commit -am&quot;applied gfileutils&quot;

  git checkout upstream;git checkout -b mer/35-gmessages
  patch -p1 &lt; ../patches/35-gmessages.patch
  git commit -am&quot;applied gmessages&quot;

  git checkout upstream ;git checkout -b mer/40-gscanner
  patch -p1 &lt; ../patches/40-gscanner.patch
  git commit -am&quot;applied gscanner&quot;

  git checkout upstream ;git checkout -b mer/45-gunicode
  patch -p1 &lt; ../patches/45-gunicode.patch
  git commit -am&quot;applied gunicode&quot;

  git checkout upstream ;git checkout -b mer/50-gthread
  patch -p1 &lt; ../patches/50-gthread.patch
  git commit -am&quot;applied gthread&quot;

  git checkout upstream ;git checkout -b mer/60-wait-longer-for-threads-to-die
  patch -p1 &lt; ../patches/60_wait-longer-for-threads-to-die.patch
  git commit -am&quot;applied wait-longer-for-threads-to-die&quot;
  
  git checkout upstream ;git checkout -b mer/70_use-monotonic-clock-for-timeouts
  patch -p1 &lt; ../patches/70_use-monotonic-clock-for-timeouts.patch
  git commit -am&quot;applied use-monotonic-clock-for-timeouts&quot;
  
Now to create a Mer glib from a master
  git checkout --track origin/master -b master

Upgrade entire glib
  git merge upstream

Now we apply in series order.. feel free to do this in different orders
  git merge mer/60-wait-longer-for-threads-to-die
  git merge mer/25-gatomic
  git merge mer/30-gfileutils
  git merge mer/35-gmessages
  git merge mer/40-gscanner
  git merge mer/45-gunicode
  git merge mer/50-gthread
  git merge mer/70_use-monotonic-clock-for-timeouts

Previous Mer patches...
  git merge origin/mer/libtool
  git merge origin/mer/obs-fix
(up to date!)

Now we have a new release
  editor ChangeLog
  git add ChangeLog
  git commit -m&quot;2.20.1-mer1&quot;
  git tag 2.20.1-mer1

And a new Mer release
  git checkout --track origin/Mer -b Mer
  git merge master
  editor debian/changelog
  git add debian/changelog
  git commit -m&quot;Mer_2.20.1-mer1&quot;
  git tag Mer_2.20.1-mer1


Now push
  git push --all
  git push --tags


The resultant merge looks like this :

 [[Image:Mer-lbt-gitk-glib.png]]

Read upwards to progress in time. Note how on the right is the 'upstream' branch tagged at 2.20.1 then you see the Mer patches being applied to master which is then merged into Mer.
(There is slight complexity here since the upstream changed to the *real* upstream).

==Git based upstream==

Working with a git based upstream is similar but we need to track the main origin branch as upstream. We'll do two things to make this sane:

# rename &lt;code&gt;origin&lt;/code&gt; to &lt;code&gt;Upstream&lt;/code&gt; (differentiate from the branch)
# to stay in keeping with the process above we'll track the &lt;code&gt;Upstream/master&lt;/code&gt; as &lt;code&gt;upstream&lt;/code&gt;

usually that will be:

  git remote rename origin Upstream
  git branch --track  upstream Upstream/master -b master

Then create a local master (it may be necessary to remove the debian/ directory)
  git checkout -b master
  git rm -r debian/
  git commit -am&quot;Cleaned up debian/&quot;
  
It may however, be useful as a base for packaging:
  git checkout upstream
  mv debian/ ..
  git checkout master
  git checkout -b Mer master
  mv ../debian .
  &lt;hack on debian/&gt;
  git add debian
  git commit -am &quot;initial debianize based on upstream&quot;

Push this to the gitorious origin:
  git remote add origin git@gitorious.org:mer/$GPKG.git
  git push --mirror origin

For updates:
  git fetch Upstream

==SVN based upstream==

Working with an svn based upstream is similar again but it's easier to track the svn upstream.

 git svn clone https://svn.tinymail.org/svn/tinymail/trunk
 mv trunk $PKG
 git branch -m master upstream

Then create a local master (it may be necessary to remove the debian/ directory)
  git checkout -b master
  git rm -r debian/
  git commit -am&quot;Cleaned up debian/&quot;
  
It may however, be useful as a base for packaging:
  git checkout upstream
  mv debian/ ..
  git checkout master
  git checkout -b Mer master
  mv ../debian .
  &lt;hack on debian/&gt;
  git add debian
  git commit -am &quot;initial debianize based on upstream&quot;

Push this to the gitorious origin:
  git remote add origin git@gitorious.org:mer/$GPKG.git
  git push --mirror origin

For updates:
  git fetch Upstream

== Working from Gitorious ==
This should be written to say &quot;Clone this repository on gitorious&quot; and then publish back there and then submit a pull request to Mer.

For core work:

Essentially
  git clone git@gitorious.org:mer/$GPKG.git
  git checkout --track origin/Mer -b Mer

determine which feature or branch needs work. Then:
  git checkout --track origin/mer/&lt;feature&gt; -b mer/&lt;feature&gt;

hack...

Ready to test? You need to make a local test branch based on Mer
  git checkout Mer
  git checkout -b local
  git merge mer/&lt;feature&gt;

Build and test...

If this works OK then clean up your mer/&lt;feature&gt; branch... probably doing a &lt;code&gt;--squash&lt;/code&gt; and push the branch to gitorious.

==Older Git Versions==
Older git versions don't guess -b correctly when using --track.
Newer git will take:
  git checkout --track origin/master
and create the obvious local branch: master. Older gits need to be explicitly told:
  git checkout --track origin/master -b master

So if you have a newer git you don't need to add the right &quot;-b &lt;branch&gt;&quot; to each of the --track options.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation</title>
    <id>1469</id>
    <revision>
      <id>38876</id>
      <timestamp>2010-09-22T09:31:04Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

* [[Mer/Documentation/SDK|Software Development Kit]]
* [[Mer/Documentation/Getting_your_package_included|Getting your package included in repository]]
* [[Mer/Documentation/Making_x86_Mer_Bootable|Making x86 Mer bootable]]
* [[Mer/Documentation/Imager|Imager]]
* [[Mer/Documentation/Straightjacket_Packages|Straightjacket_Packages]]
* [[Mer/Documentation/Maemo_Compatible|Compatible closed source packages from Maemo]]
* [[Mer/Documentation/BME_Protocol]]
** [[Mer/Status/Battery | Status of battery management]]
* [[Mer/Documentation/Bootmenu|Configuring own Boottargets]]
* [[Mer/Documentation/Installation|Installing Mer]]
* [[Mer/Documentation/AppCompat|Software Compatibility]]
* [[Mer/Documentation/Common_Packages|Common Packages]]
* [[Mer/Documentation/Creating_new_themes|Creating new themes for Mer]] (Unfinished)
* [[Mer/Documentation/USB_Networking]]
* [[Mer/Documentation/Sound]]
* [[Mer/Documentation/ARM CPU]]
* [[Mer/Documentation/N810_GPS|N810 GPS Instructions]]
* [[Mer/Documentation/Fluxbox|N810 Fluxbox how-to]]
* [[Mer/Documentation/Vala_control_panel|Control Panel applets in Vala]]
* [[Mer/Documentation/N8x0_Skype|Skype for Nokia n8x0]]
* [[Mer/Documentation/Hildon_Input_Method|Hildon Input Method]] - virtual keyboards etc
* [[Mer/Documentation/SmartQ_Installation_for_the_Windows_user|Installing Mer on an SD Card for SmartQ devices]] - for Windows users
* [[Mer/Documentation/3rd party wishlist|3rd party wishlist]]
* [[Mer/Documentation/Control panel spec|Control panel spec]]
* [[Mer/Documentation/Desktop layout|Desktop layout]]
* [[Mer/Documentation/LXDE|LXDE]]
* [[Mer/Documentation/PocketLoox|PocketLoox]]
* [[Mer/Documentation/Removal|Removal]]
* [[Mer/Flash | Installing Flash on Mer]]

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/3rd party wishlist</title>
    <id>1560</id>
    <revision>
      <id>38929</id>
      <timestamp>2010-09-22T10:33:29Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

=== Background ===
This is a wishlist of items, following from [[Task:Community_firmware_image_distribution]], to allow Maemo-based operating systems like Mer to be viable alternatives for both developers and end-users on the Nokia Internet Tablets.

Nokia-closed items are not part of this list, unless there was doubt about if they were fully Nokia-closed items. Distribution of Nokia-closed items is to be decided how this could be done in a proper way through maemo.org (see [http://lists.maemo.org/pipermail/maemo-community/2009-January/002946.htm this] and [http://internettablettalk.com/forums/showpost.php?p=261619&amp;postcount=26 this, which clarifies statement]) .

=== Intent ===
* Creation and distribution of firmware images for Nokia Internet Tablets containing the components below.
* Distribution of these components would be from a central server (maemo.org/tablets-dev.nokia.com) behind a MAC identification, as per the existing Nokia-created images.
* The closed source binaries and libraries to be shipped unchanged.
* Modification of secondary files (such as installation and start-up scripts) for these components to integrate them into non-Maemo systems, where required.
* Support of all Nokia Internet Tablet devices: Nokia 770, N800, N810 and N810W.

=== 3rd party wishlist === 
The [https://garage.maemo.org/docman/view.php/106/354/maemopackages-20080725.ods maemo packages overview] has been reviewed as the basis of this list.

When a package contains links to files contained in initfs, the wish is for the actual files pointed to.

{| class=&quot;wikitable&quot;
| style=&quot;background:PaleGreen&quot; | Useful for advanced similar experience as to Maemo 4 on tablets, could be downloaded from a Nokia package repository (MAC-locked)
| style=&quot;background:LightSteelBlue&quot; | Useful for basic similar experience as to Maemo 4 on tablets, could be downloaded from a Nokia package repository (MAC-locked)
| style=&quot;background:LightYellow&quot; | Useful for basic similar experience as to Maemo 4 on tablets, should be part of firmware image as to function properly
| style=&quot;background:Tomato&quot; | Important for proper hardware interfacing for community firmware images
|}

{| class=&quot;wikitable sortable&quot;
|-
! Priority
! Package
! Files
! Description
! Reasoning
! Response from Nokia
|- style=&quot;background:Tomato&quot;
| rowspan=&quot;2&quot; | 1
| wlan-firmware
| 
| rowspan=&quot;2&quot; | Firmware (and SoftMAC) for the Sputnik WLAN 
| rowspan=&quot;2&quot; | Hardware interfacing for N8x0(W) (&amp; 770): WiFi (is listed as Nokia-closed but is it?)
| rowspan=&quot;2&quot; | ?
|- style=&quot;background:Tomato&quot;
|
| umac.ko from initfs
|- style=&quot;background:Tomato&quot;
| 1
| bt-firmware
|
| Firmware for the Sputnik BT
| Hardware interfacing for N8x0W: Bluetooth
| ?
|- style=&quot;background:Tomato&quot;
| 2
|
| /mnt/initfs/usr/lib/hotplug/firmware/brf6150fw.bin
| Firmware for 770 bluetooth
| Hardware interfacing for 770: Bluetooth
| ?
|- style=&quot;background:Tomato&quot;
| 1
| osso-dsp-modules-rx-44
|
| DSP modules for OSSO Multimedia framework
| Hardware interfacing for 770, N8x0(W): DSP Sound and codecs (listed as Texas Instruments owned on [[Why_the_closed_packages]])
| ?
|- style=&quot;background:Tomato&quot;
| 2
| gpsdriver
|
| Driver for GPS5300 GPS chip
| Hardware interfacing for N810(W): GPS driver (listed as nokia-closed but uncertain?)
| ?
|- style=&quot;background:Tomato&quot;
| 1
| fiasco image builder
|
| for building our own fiasco images
| We'll need this to build flashable images
| ?
|- style=&quot;background:LightSteelBlue&quot;
| rowspan=&quot;2&quot; | 3
| rowspan=&quot;2&quot; | hildon-input-method-plugins
| Simpliwrite (art)
| Handwriting recognition
| Useful for similar experience to Maemo 4 on tablets
| ?
|- style=&quot;background:LightSteelBlue&quot;
| Ezitext (zi)
| Word completion for input method
| Useful for similar experience to Maemo 4 on tablets
| ?
|- style=&quot;background:LightSteelBlue&quot;
| 2
| adobe-flashplayer
|
| Adobe Flash browser plugin
| Flash is a key web experience
| ?
|- style=&quot;background:PaleGreen&quot;
| 3
| gstreamer0.10-hantro
|
| Codecs for GStreamer, optimized for the tablets
| Useful for proper performance of video decoding on tablets
| ?
|}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/ARM CPU</title>
    <id>1945</id>
    <revision>
      <id>38983</id>
      <timestamp>2010-09-22T12:06:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Arm variations ==
The ARM processor has [http://en.wikipedia.org/wiki/ARM_architecture several variations].

When Ubuntu supported ARM they built armv5el

When Debian supported ARM they built armv4t ( eabi armv4 + thumb)

(cf building for i386 or i486 ... i486 code won't run on old 386 CPUs)

The armv5el code makes better use of newer hardware and runs faster on it so the main Mer support is for Ubuntu.
We have a Debian port to support the slightly older devices (and to keep options open)

The Nokia internet tablets are armv6
The Freerunner is armv4

Future Ubuntu releases (Karmic) will be v6+ and maybe, eventually higher.

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/AppCompat</title>
    <id>1704</id>
    <revision>
      <id>38877</id>
      <timestamp>2010-09-22T09:32:55Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

A cross-reference of Mer versions and of supported repository applications.  Please do add and improve this list with information on the applications you use.

== Extras Repository ==

Packages from the [[Extras]] repository.

=== Accessories ===

* '''countdown-home''' :
* '''coverfinder''' :
* '''ejpi''' :
* '''fuelpad''' :
* '''homecpuspeed''' :
* '''homediskfree''' :
* '''homeip''' :
* '''hometasks''' :
* '''hometools''' :
* '''homeuptime''' :
* '''i-am-free''' :
* '''large-statusbar-clock''' :
* '''load-applet''' : Works in 0.9 and 0.10; Works in 0.16-5 for Q7
* '''maemopadplus''' : Says it installs in 0.16-5 for Q7 but does not appear in Extras
* '''MathJinni''' :
* '''omweather''' :
* '''openvpn-applet''' :
* '''python2.5-edje-demo''' :
* '''rapier''' :

=== Communications ===

* '''Carman''' :
* '''dialcentral''' :
* '''gnokii-gconf''' :
* '''libgnoki4''' :
* '''mauku''' :
* '''openssh''' :
* '''pyrdesktop''' :
* '''vncviewer''' :
* '''vpnc-gui''' :
* '''WifiInfo''' :
* '''X11vnc''' : installs on 0.16 without menu-icon, runs on terminal

=== Games ===

-

=== Multimedia ===

* '''bluemaemo''' : 
* '''Boxar''' :
* '''Canola2''' :
* '''GPSJinni''' :
* '''havaplayer''' :
* '''irreco''' :
* '''Knips''' :
* '''maemo-recorder''' :
* '''mediabox''' :
* '''mmpc''' :
* '''mplayer''' :
* '''mytube''' :
* '''ogg-support''' :
* '''Panucci''' : Not currently available for 0.16-5
* '''quiver''' :
* '''sharepy''' :
* '''theremin''' :
* '''ukmp''' :
* '''worldtv99''' :
* '''youamp''' :

=== Office ===

* '''carioclock''' :
* '''contactinfos''' :
* '''homecalendar''' :
* '''maemopad''' : Works in 0.9 and 0.10; Can't install in 0.16-5 for Q7, something needs libhildonhelp0 (&gt;=2.0.5-1)
* '''mcalendar''' :
* '''mgcal''' :
* '''mnotes''' :
* '''mnotes''' :
* '''mtasks''' :
* '''Shopper''' :

=== Programming ===

* '''easy''' :
* '''maemo-cplusplus-device-env''' :
* '''maemo-python-device-env''' :
* '''maemo-python-env''' :
* '''pluthon''' :
* '''python-launcher''' :
* '''python2.5-py2deb''' :

=== Support ===

* '''krb5''' :
* '''libgtkextra-x11-2.0-1''' :

=== Themes ===

* '''Canola2 Theme''' :
* '''hildon-theme''' :
* '''irreco-theme''' :
* '''lcars-complete''' :
* '''lcars-sound''' :
* '''qurgh-complete''' :

=== Tools ===

* '''bash2''' :
* '''canola2-cleanup''' :
* '''DateJinni''' :
* '''DiceJinni''' :
* '''DiskUsage''' :
* '''easy-deb-chroot''' :
* '''gnutar''' :
* '''gnunzip''' :
* '''irtrans-irserver''' :
* '''isearch-edit''' :
* '''Kandis''' :
* '''maemo-control''' :
* '''maemo-control-services''' :
* '''maemo-control-usb''' :
* '''maemo-pc-connectivity''' :
* '''maemo-periodic''' :
* '''PackageView''' :
* '''pyrecipe''' :
* '''rdesktop-cli''' :
* '''rootsh''' :
* '''s4chords''' :
* '''sayhoo''' :
* '''sudser''' :
* '''tipcalculator''' :
* '''tuner''' :
* '''WeightJinni''' :
* '''weightwatchers''' :
* '''weightwatcherseurope''' :
* '''zip3''' :

=== Other ===

* '''advanced-backlight''' : works in 0.9
* '''Advanced Power''' :
* '''Advanced Power Monitor''' :
* '''AlmostTI Graphic Calc''' :
* '''ATHF Startup Images''' :
* '''claws-mail''' :
* '''Dropbear SCP''' :
* '''Dropbear SSH Client''' :
* '''Dropbear SSH Key Utils''' :
* '''Dropbear SSH Server''' :
* '''eCoach''' :
* '''eggtimer''' :
* '''elkeyboard''' :
* '''emutools''' :
* '''erminig''' :
* '''Exif Translations''' :
* '''FBReader''' : Would like to install, not available
* '''feedcircuit''' : does not work in 0.9, python binding error
* '''fmsx''' :
* '''finefm''' : Installs and works in 0.16-5 for Q7
* '''free42''' :
* '''freemap-il''' :
* '''fuse-emulator''' :
* '''gpe-filemanager''' : Installs and works in 0.16-5 for Q7
* '''gpesummary''' :
* '''gpesyncd''' :
* '''gpxview''' :
* '''gtktide''' :
* '''hebrew''' :
* '''him-arabic''' :
* '''i2c-tiny-usb''' :
* '''iptables-ext''' :
* '''Keyboard layout changer plugin''' :
* '''libmiaouw-example''' :
* '''libzlibrary''' :
* '''liqbase''' :
* '''locale-resolver-extra''' :
* '''maemo-mapper''' :
* '''maemo-pan''' :
* '''maemo-wordpy''' :
* '''maemo.org Startup Screen''' :
* '''mclock''' :
* '''midori''' : works in 0.9
* '''mileage''' :
* '''minigpsd''' :
* '''multilist''' :
* '''mythetomer''' :
* '''openafs''' :
* '''osm2go''' :
* '''Personal Launcher''' :
* '''Personal Menu''' :
* '''phonelink''' :
* '''Pidgin Bonjour Support''' :
* '''Pidgin Default Simley Theme''' :
* '''Pidgin Language Support''' :
* '''Pidgin Old School Gaim 1.5.0 Sounds''' :
* '''Pidgin Sounds''' :
* '''powerlaunch''' : Works in 0.9
* '''pydes''' :
* '''pyring''' :
* '''qt-maemo-example''' :
* '''qtmapper''' :
* '''quicknote''' :
* '''roadmap''' :
* '''search-memory-alpha''' :
* '''search-qurgh-mughorn''' :
* '''sliderule''' :
* '''speccy''' :
* '''statusbarclock''' :
* '''Stylus friendly RSS Home Applet''' : error installing on 0.11 - missing library osso-rss-reader-lib
* '''tabletbridge''' :
* '''tiltstick''' :
* '''Titan Theme''' :
* '''ukbdcreator''' :
* '''ukeyboard''' :
* '''Wi-Fi Connection Handler''' :
* '''wizard-mounter''' :
* '''Wmlbrowser''' :
* '''XChat''' : Works in 0.9
* '''XChat Xtra Locales''' :

== Ubuntu Repositories ==

Packages from the Ubuntu (Jaunty) repositories.
* '''aptitude''' : install lots of dependencies, installs ok on 0.16
* '''Dolphin''' : Works in 0.9 / 0.16 - 1 error on install - crashes on launch
* '''e17''' : Works in 0.9
* '''KDE 4.2.1''' : Works in 0.9
* '''Konsole''' : Works in 0.9
* '''Mirage''' : Will not install in 0.16-5 for Q7, produces 'E: Sub-process /usr/bin/dpkg returned an error code (2)'
* '''VLC''' : Works in 0.9 / install lots of dependencies, install ok on 0.16

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/BME Protocol</title>
    <id>1561</id>
    <revision>
      <id>38931</id>
      <timestamp>2010-09-22T10:42:21Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Other information about battery life */ cut category</comment>
      <text xml:space="preserve">{{Mer}}

This documentation is entirely for the purpose of implementing software gathering battery information on Nokia Internet Tablets, not alteration of battery management state.

See [[Mer/Status/Battery | battery status]] for the current state of support for BME in Mer.

This information (other than the basic explanations of battery behaviour) is not applicable to the n900, which has a different protocol.

Existing code:
* Dummy server: https://garage.maemo.org/plugins/scmsvn/viewcvs.php/dsme/trunk/adhoc/dummy_bme.c?revision=155&amp;root=dsm&amp;view=markup , released as LGPL 2.1.  (Bug: The server shouldn't send a status word before sending the response struct.)
* Simple command-line client written based on this web page: http://bowman.infotech.monash.edu.au/~pmoulder/bme-client.c .  (GPLv2+, assuming that the text on this web page is compatible with that license.)

General protocol:

* UNIX socket connection to /tmp/.bmesrv
* Client: send('BMentity')
* Server: send('\n')

After handshake:

&lt;pre&gt;
typedef struct {
    uint16      type, subtype;
} BMEHeader;
&lt;/pre&gt;

types so far (NAME, (type, subtype)):

== EM_BATTERY_INFO_REQ (0x06, 0x00) ==

&lt;pre&gt;
typedef struct {
    BMEHeader header;
    u_int32_t flags;   // Set to 0xFFFFFFFF to get all data
} BME_EM_BATTERY_INFO_Req;

struct emsg_battery_info_reply {
    uint32      a;
    uint32      flags;
    uint16      c;
    uint16      d;
    uint16      temp;   // Battery temperature measured in Kelvin 
    uint16      f;
    uint16      g;
    uint16      h;
    uint16      i;
    uint16      j;
    uint16      k;
    uint16      l;
};
&lt;/pre&gt;

== Some BULK0 message (0x42, 0x00) ==

&lt;pre&gt;
typedef struct {
    BMEHeader header;
    u_int32_t flags;   // Set to 0xFFFFFFFF to get all data
} BME_EM_BULK_Req;

struct emsg_bme_bulk_reply {
   uint32     unknown1;  // (Apparently always 0.)
   uint32     unknown2;  // (Apparently always 0.)
   uint32     unknown3;  // (Apparently always 0.)
   uint16     sw_status; // Battery monitor SW status.  (Values 0..3 encountered.)
   uint16     instaneous_battery_voltage; // Instantaneous battery voltage (mV)
   uint16      // Remaining standby time to battery low (mins)
   uint16     unknown4;  // (Apparently always 0.)
   uint16     unknown5;  // (Values 0..24 encountered, with 0 being by far most common.)
   uint16     unknown6;
   uint16     // Battery monitor check voltage (mV)
   uint16     // Battery low warning interval counter.  (Values 0..4 encountered, with 0 being by far most common.)
   uint16     // Double median filtered battery voltage
   uint16     // Initial battery monitor voltage (mV)
   uint16     // Time per battery bar (mins).  Apparently always 2520.
   uint16     // DMF voltage sampled at first battery low (mV)
   uint32     // Average phone current (uA)
   uint16     // Most recent battery charge condition (mAh)
   uint16     // Lowest TX-Off voltage (mV)
   uint16     // Lowest TX-On voltage (mV)
   uint16     // Largest TX-Off/On voltage difference (mV)
   uint8      // Battery bar level log mask
   uint8      // Previous battery bar level.  (Values 0..4 encountered.)
   uint8      // Battery low reason.  (Values 0,1 encountered.)
   uint8      // CS state information.  (Apparently always 1.)
   uint16     // Number of battery bars.  (Values 1..4.)
   uint16     // Battery type.  (Value 4 for me, with standard Nokia battery.)
   uint16     // Temperature, in kelvin
   uint16     // Battery capacity 
   uint16     // Battery impedance (mOhm).  (Apparently always 160.)
   uint16     // Present value of v_bat_full_level.  (Apparently always 3855.)
   uint16     // Present value of v_bat_low_ths_mv.  (Apparently always 3650.)
   uint16     unknown7;  (Values 0..21 encountered.)
   uint16     unknown8;  (Apparently always 0.)
   uint16     unknown9;  (Apparently always 0.)
   uint16     // Load current estimated by Batmon4 (uA).  (Various values in 0..125 encountered.)
   uint16     unknown10;  (Apparently always 0.)
};
&lt;/pre&gt;

The '''“Instantaneous battery voltage (mV)”''' field’s observed values have a certain regular spacing indicating a linear function of some integer value with a smaller range, presumably retu adc register #8.  If it is indeed from that register, then note there is a non-zero offset involved: one function that gives values consistent with the set of values observed and that somewhat matches one set of observations of both fields (which unfortunately had a non-negligible delay between sampling the two) is mV = 2252.362 + 2.81361 * adc#8 (where the multiplier is fairly accurate, while the constant is accurate to within 2 units in the last place; the choice of 2252.362 rather than some integer multiple of 2.81361 away from there is based on how well ioctl values match with values read from bme at about the same time, though there was still quite a bit of noise, and the methodology could be improved).

One might wonder how bme authors came up with numbers like 2252.362 and 2.81361.  One hypothesis would be that someone measured a voltage for two adc8 values (perhaps one near the top of the range and one near the bottom), and used a straight-line fit for the rest.  If the mV field is calculated by rounding to nearest int rather than flooring, and the two voltage measurements were both an integer number of mV, then there is exactly one pair of integer points that matches the data: adc8 of 238 was 3222mV, while 576 was 4173mV.  Thus, without yet having looked for other simple models, it seems most likely that this mV field is calculated by some expression equivalent to mV = 3222 + round((adc8 - 238) * ((4173 - 3222) / (576 - 238.))), i.e. mV = 3222 + round((adc8 - 238) * (951 / 338.)); where the rounding function can either be C99 round or floor(x+.5), or rint with some rounding modes, so long as 3697.5 rounds to 3698.

Accordingly, some uses of this “instantaneous voltage” field would do well to convert to an integer adc8 value (or convert to an integer adc8 value then convert back to a non-integer mV value), in order to avoid uneven steps between values (sometimes 2mV between neighbouring values and sometimes 3mV).  This can be done as adc8 = 238 + round((claimed_mV - 3222) * (338 / 951.)).

The '''“Battery monitor check voltage (mV)”''' field has similar values to the “Instantaneous battery voltage (mV)” field, but without obvious regular spacing.  I (pjrm) don't know how it's calculated.

Voltage levels depend not just on amount of charge remaining in the battery, but also recent electrical load: the voltage level goes down markedly while the CPU is being heavily used, for example.

There is some weak evidence that the voltage level goes down by about 1mV for each 3 units of backlight level (so 40–50mV for full brightness compared to screen off).  The main weakness of this evidence is that there's no serious correction for the effect of CPU usage on voltage, and one would assume CPU usage to correlate with backlight.

'''“Time per battery bar”''' seems to be a constant 2520; edit this page if you've seen a different value.

The '''“Average phone current”''' field has some strangeness in that if there is a long period of high CPU activity then it takes 3-7 seconds before this field's value increases (even though the voltage field drops straight away, suggesting that the true current does drop straight away); but the field is much quicker to go down once the CPU activity stops, so it's not just a matter of always lagging by a few seconds (such as because of using a simple averaging/smoothing method).  One might suggest that this could be because some thread that updates the average is at low priority and doesn't get scheduled for a while, but the &quot;CPU activity&quot; in the experiment consisted of alternating ~100ms of full CPU followed by a usleep of 100ms, so this effect presumably isn't just because of standard kernel scheduling decisions and niceness.

'''“Number of battery bars”''' is something like min(4, ceil(standby-time-remaining / time-per-bar)), but with a bit of lag: sometimes time-per-bar * n-bars can exceed standby-time-remaining by 2522 or so.  (Where of course standby-time-remaining means the value of the “Remaining standby time to battery low (mins)” field, time-per-bar means the “Time per battery bar” field, and n-bars means the “Number of battery bars” field.)  Note the ‘min(4,’ part: standby-time-remaining can be over 4000mins more than the product of those two fields would suggest.

== Some BULK1 message (0x43, 0x00) ==

&lt;pre&gt;
typedef struct {
    BMEHeader header;
    u_int32_t flags;   // Set to 0xFFFFFFFF to get all data
} BME_EM_BULK1_Req;

struct emsg_bme_bulk1_reply {
   uint32     unknown1;
   uint32     unknown2;
   uint32     unknown3;
   uint16     // Elapsed model time (min)
   uint16     // Tx-Off battery voltage (mV)
   uint16     // Tx-On battery voltage (mV)
   uint8      // Battery power state
   uint8      //  Batmon4 internal flags2
   uint8      // Batmon4 internal flags3
   uint8      // Charging method
   uint16     // Present Phi value (mV)
   uint16     // Present Delta Phi value (mV)
   uint8      // Charging mode 
   uint8      // Previous charging mode 
   uint8      // Charger type
   uint8      // Previous charger type
   uint16     // Instantaneous battery voltage (mV)
   uint8      // Number of charger checks (0-9) ?
   uint8      // Charger recognition state
   uint16     unknown4;
   uint16     // Instantaneous charger current (mA)
   uint16     unknown5;
   uint16     // Charging time (min)
   uint16     // Average Vchar (mV)
   uint16     // Equivalent DC charger current (mA) 
   uint8      // Battery full flag (0 or 1)
   uint8      // HW Cha PWM value L ??
   uint8      // Cha PWM value L ??
   uint8      unknown6;
   uint16     // Open switch battery voltage (mV)
   uint16     // Closed switch battery voltage (mV)
   uint16     unknown7;
};
&lt;/pre&gt;

== Some BULK2 message (0x44, 0x00) ==

&lt;pre&gt;
typedef struct {
    BMEHeader header;
    u_int32_t flags;   // Set to 0xFFFFFFFF to get all data
} BME_EM_BULK2_Req;

struct emsg_bme_bulk2_reply {
   uint32     unknown1;
   uint32     unknown2;
   uint32     unknown3;
   uint16     // Conf. battery footprint
   uint16     // Conf. minimum standby current (mA)
   uint16     // Conf. Batmon battery low voltage (Safety level) 
   uint16     // Conf. Batmon battery low voltage (Empty)
   uint16     // Configured number of battery bars
   uint16     unknown4;
};
&lt;/pre&gt;

= Other information about battery life =

Some battery-related information is also available from retu adc registers (which in turn are available via ioctl's on /dev/rutu: see retu-adc source).

It's said that register 3 shows whether charging is occurring: with value 0 meaning &quot;not being charged&quot;, while &quot;values 0xff and above&quot; are an indication of the voltage being applied for charging.  Matan adds (http://talk.maemo.org/showpost.php?p=259465&amp;postcount=43) that values around 0x100 indicate charging, while values around 0x170 indicate that the power source is connected but we aren't charging.

Register 8 apparently indicates battery voltage.  See the note above about “instantaneous battery voltage (mV)” for how it might correspond to one measure of voltage.

Note that this value can fluctuate a lot when the device is in use, but when idle it gets a good fit to the curve adc#8 = 438.3 + exp(p0 + p1*t) - exp(n0 + n1*t) where t is time (or more generally charge used or remaining), and p0,p1,n0,n1 are constants.  (I forget the values I found for them, but in any case it would be good to fit for them again once more data is on hand.)

To invert this function to find idle time remaining (on assumption that the device was idle when the register was read), first see whether the adc#8 value is above or below 438.3, which tells you which exponential is dominant, and approximate the other exponential with a constant 3 (or a straight line if you like); can iterate and update this approximation for the neighbourhood of the solution found by the previous iteration.  -- pjrm</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Bootmenu</title>
    <id>1703</id>
    <revision>
      <id>41295</id>
      <timestamp>2011-01-21T15:53:30Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>Undo revision 41294 by [[Special:Contributions/174.120.56.89|174.120.56.89]] ([[User talk:174.120.56.89|Talk]]) spam</comment>
      <text xml:space="preserve">{{Mer}}

When flashing the new bootloader (bootmenu) via the Mer installer it will look for items in /etc/bootmenu.d/ and include those in the bootmenu. This is important when you have an operating system e.g. on your external card.

You could have multiple OSes on your tablet, eg:
* Maemo in internal flash, Mer on SD,
* Mer in internal flash
* Maemo in internal flash, Mer on SD, 2nd Maemo on SD

Remember that you need to press the menu button as you boot to access the bootmenu.

==Setting up your Bootmenu .item files for Mer==

Assuming that you have booted Maemo (or equivalent) from your internal flash and you are currently running Maemo.

(Note that you will need to look in /mnt/initfs/ for etc/bootmenu.d/ if you are running Mer or Maemo from an SD card).

After downloading and installing the Mer installer (see [[Mer/Documentation/Installation]]) you need to work as root (see [[Root_access]]).

Go to /etc/bootmenu.d/ (&lt;code&gt;cd /etc/bootmenu.d&lt;/code&gt;) and check for files (&lt;code&gt;ls -la&lt;/code&gt;). Every file with the ending .item in this folder will result in an entry in the bootmenu. The internal flash is always part of the bootmenu.conf, so you dont need a .item file for that.

The following example (&lt;code&gt;vi mer.ext.item&lt;/code&gt;) will make an option in the bootmenu which allows you to boot Mer from the 3rd partition of the external sd card, formatted with ext3:

&lt;pre&gt;
&lt;nowiki&gt;
# will be shown in the bootmenu
ITEM_NAME=&quot;Mer on external card, p3&quot;
# needs to be an unique string to identify this item
ITEM_ID=&quot;mer&quot;
# which hardware device and partition should be booted. 
# use ${EXT_CARD} for the external card (slot) or ${INT_CARD} for the internal mmc
# followed by p3 for partition three
ITEM_DEVICE=&quot;${EXT_CARD}p3&quot;
# which modules to load at boottime
ITEM_MODULES=&quot;mbcache jbd ext3&quot;
# filesystem used on that partition
ITEM_FSTYPE=&quot;ext3&quot;
# mounting options
ITEM_FSOPTIONS=&quot;noatime,ro&quot;
# Use the Mer linuxrc to continue to Boot (IMPORTANT for Mer)
ITEM_LINUXRC=&quot;linuxrc&quot;
&lt;/nowiki&gt;
&lt;/pre&gt;
Once finished entering the above 'code' type &lt;code&gt;:w&lt;/code&gt;, press return. Then type &lt;code&gt;:q&lt;/code&gt; and press return again. You'll then be back at /etc/bootmenu.d/

Don't forget to [[Mer/Documentation/Bootmenu#How_to_get_.item_files_into_the_bootmenu|use the refresh_bootmenu.d command]].

==Setting the Default bootmenu item==

With cal-tool found in initfs, it is possible to set which item to boot as default or/and set bootmenu to show up without pressing any key.

You'll need to work as root (see [[Root_access]]).

=== How to set Mer to boot as default?===

First you need to set up your .item files stored in /etc/bootmenu.d/ (see above) ''Please set the ITEM_ID to something small with nothing useless and no spaces.''

The basic command to set ID &quot;mer&quot; to default is :
&lt;pre&gt;
&lt;nowiki&gt;
chroot /mnt/initfs cal-tool --set-root-device mer
&lt;/nowiki&gt;
&lt;/pre&gt;

If the ID you set doesn't exist, it will be boot to Internal Flash as default.&lt;br /&gt;
It ''may'' be necessary to [[Mer/Documentation/Bootmenu#How_to_get_.item_files_into_the_bootmenu|use the refresh_bootmenu.d command]] before this change is put into effect.

=== How to make bootmenu pop up without pressing any key?===

Bootmenu will pop up automatically if you add &quot;ask:&quot; to the command above.
For example, this will make bootmenu show up automaticlly, and ITEM_ID &quot;mer&quot; will be preselected:
&lt;pre&gt;
&lt;nowiki&gt;
chroot /mnt/initfs cal-tool --set-root-device ask:mer
&lt;/nowiki&gt;
&lt;/pre&gt;
&lt;br /&gt;
It ''may'' be necessary to [[Mer/Documentation/Bootmenu#How_to_get_.item_files_into_the_bootmenu|use the refresh_bootmenu.d command]] before this change is put into effect.

==Setting up your Bootmenu .item files for other operating systems==

Assuming that you have booted Maemo (or equivalent) from your internal flash and are running it.

The following example (&lt;code&gt;vi mer.ext.item&lt;/code&gt;) will make an option in the bootmenu which allows you to boot another operating system (e.g maemo or Deblet) from the 4th partition of the external sd card, formatted with ext3:

&lt;pre&gt;
&lt;nowiki&gt;
# will be shown in the bootmenu
ITEM_NAME=&quot;Maemo on external card, p4&quot;
# needs to be an unique string to identify this item
ITEM_ID=&quot;maemo2&quot;
# which hardware device and partition should be booted. 
# use ${EXT_CARD} for the external card (slot) or ${INT_CARD} for the internal mmc
# followed by p4 for partition four
ITEM_DEVICE=&quot;${EXT_CARD}p4&quot;
# which modules to load at boottime
ITEM_MODULES=&quot;mbcache jbd ext3&quot;
# filesystem used on that partition
ITEM_FSTYPE=&quot;ext3&quot;
# mounting options
ITEM_FSOPTIONS=&quot;noatime,rw&quot;
&lt;/nowiki&gt;
&lt;/pre&gt;

Don't forget to [[Mer/Documentation/Bootmenu#How_to_get_.item_files_into_the_bootmenu|use the refresh_bootmenu.d command]].

==How to get .item files into the bootmenu==
After editing or creating an .item file take care that you run the following command as root:
&lt;pre&gt;
&lt;nowiki&gt;
# refresh_bootmenu.d
&lt;/nowiki&gt;
&lt;/pre&gt;

After answering all questions with 'yes' the tablet reboots and you can choose your new or modified menu entry.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Build/CommonProblems</title>
    <id>1825</id>
    <revision>
      <id>28139</id>
      <timestamp>2010-02-02T15:44:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Build/Common Problems]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Build/Common Problems</title>
    <id>1827</id>
    <revision>
      <id>13000</id>
      <timestamp>2009-05-04T09:41:52Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>[[Mer/Documentation/Build/Common Problems]] moved to [[Mer/Build/Common Problems]]: don't need spurious Documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Build/Common Problems]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Build/Common Problems/Failed Diagnosis</title>
    <id>1828</id>
    <revision>
      <id>13002</id>
      <timestamp>2009-05-04T09:42:40Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>[[Mer/Documentation/Build/Common Problems/Failed Diagnosis]] moved to [[Mer/Build/Common Problems/Failed Diagnosis]]: Don't need spurious Documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Build/Common Problems/Failed Diagnosis]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Common Packages</title>
    <id>1693</id>
    <revision>
      <id>38879</id>
      <timestamp>2010-09-22T09:34:24Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Help bringing a package up to date ==

* Make yourself a launchpad.net account, upload your SSH keys, and install Bazaar.
* Grab the source package that Mer package is based on, and the new one from the Fremantle alpha, extract them. &lt;code&gt;diff -ruN&lt;/code&gt; them, and save the diff (from now on ''patchname'').
* Typical files to avoid patching (you can delete them in the resulting patch):
** &lt;code&gt;.in&lt;/code&gt; files
** &lt;code&gt;configure&lt;/code&gt;
** ''(feel free to add more to the list)''
* &lt;code&gt;bzr branch &lt;lp:''something listed in table below''&gt;&lt;/code&gt;
* &lt;code&gt;cd&lt;/code&gt; into the checked out directory
* Apply the patch from before (&lt;code&gt;patch -p1 &lt; ''patchname''&lt;/code&gt; probably, you can &lt;code&gt;patch -p1 --dry-run &lt; ''patchname''&lt;/code&gt; to test run the patch), fix it if it doesn't apply cleanly (watch out for &lt;code&gt;configure&lt;/code&gt; and &lt;code&gt;autoconf&lt;/code&gt; generated things)
* &lt;code&gt;bzr add&lt;/code&gt; any added files (avoid &lt;code&gt;.rej&lt;/code&gt; and &lt;code&gt;.orig&lt;/code&gt;, &lt;code&gt;bzr status&lt;/code&gt; is a good tool)
*&lt;code&gt; dch -m -i&lt;/code&gt;, and add your personal log message. Name the version, Mer version + 1.
* &lt;code&gt;bzr commit -m &quot;your personal log message&quot;&lt;/code&gt;
* &lt;code&gt;bzr push lp:~''yourusername''/m-r/''packagename''&lt;/code&gt;
* Ideally, &lt;code&gt;bzr export ''&lt;some dir&gt;'' lp:~''yourusername''/m-r/''packagename''&lt;/code&gt;, &lt;code&gt;cd ''&lt;some dir&gt;''&lt;/code&gt; and try to &lt;code&gt;dpkg-buildpackage -b&lt;/code&gt; it.
* Point us to the branch and we'll put the branch in the repository and build it.

Most patches apply cleanly, though, you will most likely see patch failed in &lt;code&gt;debian/changelog&lt;/code&gt;, is fairly easy to fix, just add the items from &lt;code&gt;.rej&lt;/code&gt; without the &lt;code&gt;+&lt;/code&gt;'s in the front and add an according version above it using &lt;code&gt;dch&lt;/code&gt;.

== Typical package repositories ==

* Diablo versions: http://repository.maemo.org/pool/diablo/free/
* Pre-alpha1: http://repository.maemo.org/pool/maemo5.0prealpha1/free/
* Pre-alpha2: http://repository.maemo.org/pool/maemo5.0prealpha2/free/
* Alpha: http://repository.maemo.org/pool/maemo5.0alpha/free/
* Beta: http://repository.maemo.org/pool/maemo5.0beta/free/
* Stage SVN trunk: https://stage.maemo.org/viewcvs.cgi/projects/haf/trunk?root=maemo , https://stage.maemo.org/svn/maemo/projects/haf/trunk/
* Stage SVN tags: https://stage.maemo.org/viewcvs.cgi/projects/haf/tags?root=maemo , https://stage.maemo.org/svn/maemo/projects/haf/tags/

== Current package status ==

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Same version
| style=&quot;background:LightBlue&quot; | Same version root, but Mer specific changes
| style=&quot;background:Orange&quot; | Package missing in Fremantle SDK 
| style=&quot;background:Tomato&quot; | Version root differs, and Fremantle has a newer version
| style=&quot;background:Lime&quot; | Version root differs, but Mer has a newer version
|}


{|
|-
! Source package
! Mer version
! Fremantle SDK version
! Bzr branch
! Comments
|- style=&quot;background:Tomato&quot;
| alarmd || 0.5.20mer1 || 1.1.3+0m5 || -  
|- style=&quot;background:LightGreen&quot;
| certman || 1.7.19 || 1.7.19 || -  || -
|- style=&quot;background:LightBlue&quot;
| clinkc || 2.0-0osso16mr2 || 2.0-0osso16 || -  || -
|- style=&quot;background:LightGreen&quot;
| clipboard-manager || 0.6.8-4+0m5 || 0.6.8-4+0m5 || -  || -
|- style=&quot;background:Tomato&quot;
| dbus-glib || 0.78-0maemo1mer2 || 0.78-0maemo2 || -  || -
|- style=&quot;background:LightGreen&quot;
| epeg || 0.9.1.042maemo0 || 0.9.1.042maemo0 || -  || -
|- style=&quot;background:Orange&quot;
| gail || 1:1.18.0-osso14mer2 || - || -  || -
|- style=&quot;background:Tomato&quot;
| gconf2 || 1:2.16.0-2osso4mer1 || 2.16.0-2osso5+0m5 || [http://code.launchpad.net/~mer-committers/m-r/gconf2 lp:~mer-committers/m-r/gconf2]  || Dirty tricks here. (Ignore the 1:) Needs update to osso5
|- style=&quot;background:Tomato&quot;
| glib2.0 || 2.18.1-1maemo2mer2 || 2.18.1-1maemo4+0m5 || [http://code.launchpad.net/~mer-committers/m-r/glib lp:~mer-committers/m-r/glib]  || -
|- style=&quot;background:Tomato&quot;
| gnome-vfs-filechooser-backend || 1.10.0-1mer1 || 1.10.0-1+0m5 || [http://code.launchpad.net/~carsten-munk/m-r/gnome-vfs-filechooser-backend lp:~carsten-munk/m-r/gnome-vfs-filechooser-backend]  || Just a rebuild?
|- style=&quot;background:Orange&quot;
| gstreamer0.10-ffmpeg-osso || 1.11.6 || - || -  || -
|- style=&quot;background:Lime&quot;
| gtk+2.0 || 2:2.12.12-1maemo13mer9 || 2:2.12.12-1maemo12+0m5 || [http://code.launchpad.net/~mer-committers/m-r/gtk+ lp:~mer-committers/m-r/gtk+]  || Ahead as we use the stage.* SVN
|- style=&quot;background:Orange&quot;
| gtkhtml || 3.24.0-osso3mer1 || - || -  || Has a new name it seems?
|- style=&quot;background:Tomato&quot;
| hildon-application-manager || 1:2.1.20~unreleased-r1465-mer3 || 1:2.2.17+0m5 || [http://code.launchpad.net/~mer-committers/m-r/hildon-application-manager lp:~mer-committers/m-r/hildon-application-manager]  || -
|- style=&quot;background:Tomato&quot;
| hildon-control-panel || 1:2.2.5-1mer5 || 1:2.2.6-1+0m5 || [http://code.launchpad.net/~mer-committers/m-r/hildon-control-panel lp:~mer-committers/m-r/hildon-control-panel]  || -
|- style=&quot;background:LightGreen&quot;
| hildon-games-wrapper || 1.9.4-3+0m5 || 1.9.4-3+0m5 || -  || -
|- style=&quot;background:Tomato&quot;
| hildon-input-method || 1:2.0.4-1mer4 || 1:2.1.16-1+0m5 || [http://code.launchpad.net/~mer-committers/m-r/hildon-input-method-mer, r44 lp:~mer-committers/m-r/hildon-input-method-mer, r44]  || Kept back because of Fremantle HIM requiring a thumb keyboard
|- style=&quot;background:Tomato&quot;
| hildon-input-method-framework || 1:2.0.1-1mer2 || 1:2.1.16-1+0m5 || [http://code.launchpad.net/~mer-committers/m-r/hildon-input-method-framework-mer lp:~mer-committers/m-r/hildon-input-method-framework-mer]  || Kept back because of Fremantle HIM requiring a thumb keyboard
|- style=&quot;background:Lime&quot;
| hildon-theme-cacher || 0.4.3-1mer1 || 0.4.3-1-recomp1 || [http://code.launchpad.net/~carsten-munk/m-r/hildon-theme-cacher lp:~carsten-munk/m-r/hildon-theme-cacher]  || just a rebuild.
|- style=&quot;background:LightBlue&quot;
| hildon-theme-tools || 0.5.2-1mer1 || 0.5.2-1 || ||
|- style=&quot;background:LightGreen&quot;
| hildon-thumbnail || 3.0.21+0m5 || 3.0.21+0m5 || -  || 
|- style=&quot;background:LightBlue&quot;
| icd2-osso-ic-dev || 2.0mer1 || 2.0 || -  || Only in repository.
|- style=&quot;background:LightBlue&quot;
| libconbtui || 1.4.1mer1 || 1.4.1 || -  || 
|- style=&quot;background:Tomato&quot;
| libconic || 0.19mer2 || 0.20+0m5 || -  || 
|- style=&quot;background:LightGreen&quot;
| libdb1 || 1.85.4-osso8 || 1.85.4-osso8 || -  || 
|- style=&quot;background:LightBlue&quot;
| libhildon || 2.1.62-1+0m5mer1 || 2.1.62-1+0m5 || [http://code.launchpad.net/~carsten-munk/m-r/libhildon-2.1.24 lp:~carsten-munk/m-r/libhildon-2.1.24]  || -
|- style=&quot;background:Tomato&quot;
| libhildonfm || 1:2.1.7mer2 || 1:2.10+0m5 || -  || Just in repository.
|- style=&quot;background:Orange&quot;
| libhildonhelp || 2.0.5-1 || - || lp:~mer-committers/m-r/libhildonhelp  || Removed in Fremantle.
|- style=&quot;background:Tomato&quot;
| libhildonmime || 2.1.2-1mer2 || 2.1.3-1+0m5 || [http://code.launchpad.net/~carsten-munk/m-r/libhildonmime lp:~carsten-munk/m-r/libhildonmime]  || -
|- style=&quot;background:LightBlue&quot;
| libosso || 2.19-1mer1 || 2.19-1 || [http://code.launchpad.net/~carsten-munk/m-r/libosso lp:~carsten-munk/m-r/libosso]  || From stage.* SVN, hence in front.
|- style=&quot;background:Tomato&quot;
| maemo-launcher || 0.31-2mer4 || 0.35-1+0m5 || [http://code.launchpad.net/~mer-committers/m-r/maemo-launcher lp:~mer-committers/m-r/maemo-launcher]  || -
|- style=&quot;background:LightGreen&quot;
| maemopad || 2.4-6+0m5 || 2.4-6+0m5 || -  || -
|- style=&quot;background:LightGreen&quot;
| mce-dev || 1.8.10+0m5 || 1.8.10+0m5 || [http://code.launchpad.net/~carsten-munk/m-r/mce-dev lp:~carsten-munk/m-r/mce-dev]  || REVERTED.
|- style=&quot;background:Lime&quot;
| osso-af-settings || 0.9.3-1mer1 || 0.9.2-1 || [http://code.launchpad.net/~carsten-munk/m-r/osso-af-settings lp:~carsten-munk/m-r/osso-af-settings]  || -
|- style=&quot;background:LightGreen&quot;
| osso-af-utils || 2.0-3+0m5 || 2.0-3+0m5 || -  || -
|- style=&quot;background:Lime&quot;
| osso-gnome-vfs2 || 2:2.16.3-2osso2mer2 || 2.16.3-2osso3+0m5 || -  || Needs update to osso3
|- style=&quot;background:LightBlue&quot;
| osso-gnomevfs-extra || 2:1.9.6-3mer1 || 1.9.6-3 || [http://code.launchpad.net/~mer-committers/m-r/osso-gnomevfs-extra  lp:~mer-committers/m-r/osso-gnomevfs-extra ]  || Ignore the 2: part.
|- style=&quot;background:LightBlue&quot;
| osso-gwconnect || 1.0.12-mer4 || 1.0.12 || [http://code.launchpad.net/~carsten-munk/m-r/osso-gwconnect lp:~carsten-munk/m-r/osso-gwconnect]  || -
|- style=&quot;background:Tomato&quot;
| osso-gwobex || 0.61mer2 || 0.62+0m5 || [http://code.launchpad.net/~carsten-munk/m-r/osso-gwobex lp:~carsten-munk/m-r/osso-gwobex]  || Ahead, from SVN.
|- style=&quot;background:LightGreen&quot;
| osso-systemui-dbus-dev || 0.1.2 || 0.1.2 || -  || -
|- style=&quot;background:Tomato&quot;
| sapwood || 3.1.1-1-mer2 || 3.1.1-2+0m5 || [http://code.launchpad.net/~carsten-munk/m-r/sapwood lp:~carsten-munk/m-r/sapwood]  || -
|- style=&quot;background:LightGreen&quot;
| screenshot-tool || 1.23-2 || 1.23-2 || ||
|- style=&quot;background:LightGreen&quot;
| tablet-browser-interface || 0.0.5-4 || 0.0.5-4 || -  || Browser is coming in final SDK.
|- style=&quot;background:Tomato&quot;
| wpeditor || 2.18-0mer1 || 2.22-0+0m5 || - || -
|}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Control panel spec</title>
    <id>1731</id>
    <revision>
      <id>38932</id>
      <timestamp>2010-09-22T10:43:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Control panel spec ==

General:
* About product
* Date and time
* Input devices(?) (Keyboard)
* Display  (Calibration?)
* Memory and storage

Personalisation:
* Language and region
* Sounds
* Themes
* Panels</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Creating new themes</title>
    <id>1766</id>
    <revision>
      <id>38985</id>
      <timestamp>2010-09-22T12:09:37Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

First you'll need a working Mer installation. You can use VMDK (virtual machine) or chroot for example.

== Get sources and Build Depends ==

After installation, run
 sudo apt-get update
To update package lists.

 sudo apt-get build-dep hildon-theme-liberty-mer
To get all build-depends of theme.

 sudo apt-get source hildon-theme-liberty-mer
To get sources for liberty-mer theme.

== Crating a new theme ==

First you need a software to edit vector graphics with. Inkscape is recommended.

Then, you can edit the big .svg template under the template/ in source directory.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Desktop layout</title>
    <id>1683</id>
    <revision>
      <id>38880</id>
      <timestamp>2010-09-22T09:35:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Freemantle desktop specification ==

== Desktop screen ==

=== Marquee (top bar) ===

Height: 52 px, as wide as screen

From left to right:

WM button, different states: (align left)
* Applications menu (no applications opened)
** Upon click, go to Applications menu
* Task switcher
** Upon click, go to Task switcher
* Notification in task switcher

Separator: air

Status area: (align left)
* Clock
* 16x16 icons, when clicked, full status area comes up 

Separator: air

Title bar: (align left)
* Not in use on non-telephony devices?

== Applications menu display ==

* Pannable area of all applications launchable?

== Hildon desktop specification ==

General outline: [http://tabletui.files.wordpress.com/2009/02/task_man_3items1.jpg?w=480&amp;h=640 here]

New-artwork ideas: http://i041.radikal.ru/0903/5f/5cf0986d63e7.jpg

Touch pixel sizes from https://help.ubuntu.com/community/UMEGuide/DesigningForFingerUIs

=== Marquee ===

''Implemented in h-d, r1145''

*Height: 52px, Width: As wide as the screen
*Position: Top of screen, disappears in full screen.

Background: marquee_background.png, 18x52, repeating

Width of screen = 90*3+A*48+S, A integer, X = 1/3 * A, Y = 2/3 * A, S remainder

A = (Width of screen - 90 * 3) / 48 (integer division)

S = Width of screen - 270 - A * 48

==== First element: Application menu button ====

''Implemented, h-d r1147''

*Example: http://www.daimi.au.dk/~cvm/mer-appmenu.png
*Width: 90px, icon: 48x48, but should be scalable
*Description: Mer logo or proper icon for application menu. Upon press, it highlights and shows application menu.
*Widget icon: qgn_grid_tasknavigator_others , http://s51.radikal.ru/i133/0903/7d/f77074ef093e.png , part of theme template

==== Second element: Menu button ====

''Implemented in lp:~mer-committers/m-r/marquee-plugins r2''

*Example: http://www.daimi.au.dk/~cvm/mer-menubutton.png
*Width: 90px, icon: 48x48
*Description: The former Hildon title bar, but since we don't have titlebars anymore, we have a menu button
*Implemented by: marquee-plugins, drop-down-menu.c
*Icon name: qgn_mer_menubutton , http://s50.radikal.ru/i129/0903/ca/21d1a72a64f5.png, part of theme template

==== Third element: Quick task switcher ====

''Implemented in h-d r1148''

*Example: http://www.daimi.au.dk/~cvm/mer-hmm.png
*Width: 1/3 times A (integer) items of 56px, X &gt; 0, icons 48x48px
*Description: Shows current application and X others

==== Fourth element: Status bar ====

''Implemented in h-d, r1149''

*Example: http://www.daimi.au.dk/~cvm/mer-hmm.png
*Width: Y items of 48px, Y &gt; 0, icons 48x48px
*Description: Shows current status bar area

==== Sixth element: The magic X ====

''Implemented in h-d, r1150''

*Example: http://www.daimi.au.dk/~cvm/mer-xmenu.png
*Width: 90px, 48x48 px icon
*Description: The former &gt;&gt;, the switcher menu, shows up when number of applications active &gt; 0
*Icon: qgn_list_tasknavigator_appswitcher , http://s51.radikal.ru/i134/0903/84/e7c91bfbf9ce.png

Icons for closing within this: http://i013.radikal.ru/0903/e1/5c85d73dcb42.png</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/FirstSteps</title>
    <id>1822</id>
    <revision>
      <id>12976</id>
      <timestamp>2009-05-02T11:14:44Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Mer/Documentation/FirstSteps]] moved to [[Mer/Documentation/First Steps]]: No CamelCase</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Documentation/First Steps]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/First Steps</title>
    <id>1821</id>
    <revision>
      <id>38933</id>
      <timestamp>2010-09-22T10:44:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Here are some ideas to help you get some useful things running on Mer. They can all be installed via '''apt-get install'''

=Sound=

Sound currently (0.12) only works with alsa, not pulseaudio so:
  apt-get install alsa-base

gnome-alsamixer works as a volume control

For music playback try xfmedia with xine-backend it uses the least cpu and supports playlists.

=Video=
dragonplayer, plays videos.


=Internet=
Of course, midori is already present but you may want to try arora, another browser.

For IRC try Xchat

=Tablet Hardware=
Mer already comes with advanced backlight but you may also want to install tablet-battery-monitor ... but it's fiddly. Once you apt-get it, a menu entry appears in Mer/Extras ... clicking this walks you through an epic journey...</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Fluxbox</title>
    <id>2231</id>
    <revision>
      <id>38881</id>
      <timestamp>2010-09-22T09:35:58Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Notes ==
*These directions are confirmed to work on Mer 0.15 on a Nokia N810.
*This is NOT by any means official. I (Capn_Fish) just decided to do this on my own.
*Follow these directions at your own risk, they may render Mer unbootable/unusable, cause data loss, etc, etc.
*These steps should only really be followed on an N810 or other devices with a physical keyboard. They have only been tested on an N810.
*You may have to run 'update-menus' or something similar to get menus in Fluxbox


== Directions ==
=== Step 1: Install and remove some stuff ===
If you're going to run Fluxbox, you need it installed. I'd also install a regular, non-Hildonized XTerm for good measure.
 sudo apt-get install fluxbox xterm
 sudo apt-get remove osso-xterm


=== Step 2: Edit some files ===
Fluxbox doesn't have a very tablet-friendly configuration to begin with. These are the files I use to make it a little better.

 #~/.fluxbox/keys
 
 #Fullscreen button on top and window-switch button on face
 F16 :NextWindow
 Shift F6 :FullScreen
 
 # fullscreen button, -, and + (in that order); chenges mouse buttons
 F6 :exec xmodmap -e &quot;pointer = 1 2 3&quot;;xsetroot -cursor_name left_ptr
 F8 :exec xmodmap -e &quot;pointer = 3 2 1&quot;;xsetroot -cursor_name right_ptr
 F7 :exec xmodmap -e &quot;pointer = 2 1 3&quot;;xsetroot -cursor_name hand2
 
 #Requires chmodding, not necessary if you don't FUBAR / uninstall all of the  Hildon stuff
 Shift F7 :exec echo  0 &gt; /sys/class/leds/keyboard/brightness
 Shift F8 :exec echo 30 &gt; /sys/class/leds/keyboard/brightness
 
 Control Mod1 Left :PrevWorkspace
 Control Mod1 Right :NextWorkspace
 
 # click on the desktop to get menus
 #Very nice to not have to change mouse buttons
 OnDesktop Mouse1 :HideMenus
 OnDesktop Double Mouse1 :RootMenu
 
 #whatever else you want to stick here


 ! ~/.Xmodmap
 ! A little strange, but more usable than the default
 
 clear Mod1
 clear Mod2
 clear Mod3
 clear Mod4
 clear Mod5
 
 ! Top row
 keycode 24 = q Q 1 F1
 keycode 25 = w W 2 F2
 keycode 26 = e E 3 F3
 keycode 27 = r R 4 F4
 keycode 28 = t T 5 F5
 keycode 29 = y Y 6 F6
 keycode 30 = u U 7 F7
 keycode 31 = i I 8 F8
 keycode 32 = o O 9 F9
 keycode 33 = p P 0 F10
 
 ! Middle row
 keycode 38 = a A exclam exclam
 keycode 39 = s S quotedbl quotedbl
 keycode 40 = d D  at at
 keycode 41 = f F numbersign numbersign
 keycode 42 = g G backslash backslash
 keycode 43 = h H slash slash
 keycode 44 = j J parenleft parenleft
 keycode 45 = k K parenright parenright
 keycode 46 = l L asterisk asterisk
 keycode 48 = slash apostrophe question question
 
 ! Bottom row
 keycode 52 = z Z grave grave
 keycode 53 = x X asciicircum asciicircum
 keycode 54 = c C asciitilde asciitilde
 keycode 55 = v V percent percent
 keycode 56 = b B ampersand ampersand
 keycode 57 = n N dollar dollar
 keycode 58 = m M bar bar
 keycode 47 = semicolon colon 
 keycode 20 = minus quotedbl underscore underscore
 keycode 21 = plus numbersign equal equal 
 
 ! Others (backspace, return, etc.)
 keycode 22 = BackSpace
 keycode 36 = Return
 keycode 50 = Shift_L
 keycode 105 = Control_L
 keycode 60 = period greater bracketright braceright
 keycode 59 = comma less bracketleft braceleft
 keycode 65 = space
 keycode 135 = Alt_L
 keycode 108 = Mode_switch
 
 ! Keypad, menu, and screen keys
 keycode 70 = Tab
 keycode 104 = Return
 keycode 111 = Up Prior
 keycode 114 = Right End
 keycode 116 = Down Next
 keycode 113 = Left Home
 keycode 71 = F16
 keycode 9 = Escape
 
 
 add mod1 = Alt_L
 add mod2 = Mode_switch


 # ~/.fluxbox/startup
 
 #!/bin/sh
 #
 # fluxbox startup-script:
 #
 # Lines starting with a '#' are ignored.
 
 # Change your keymap:
 xmodmap ~/.Xmodmap
 
 gksudo nm-applet &amp;
 xterm &amp;
 
 #Left and down don't autorepeat by default
 xset r 116 &amp;
 xset r 113 &amp;
 #gksudo /etc/init.d/ssh start &amp;
 
 # And last but not least we start fluxbox.
 # Because it is the last app you have to run it with ''exec'' before it.
 
 exec fluxbox


=== Step 3: Make Fluxbox start instead of Hildon Stuff ===
By default, the Mer/Hildon desktop starts up, and not Fluxbox. We need to change that. These commands do just that. It can probably be better accomplished somehow with update-alternatives (or whatever that command is).
 sudo rm /etc/alternatives/x-session-manager
 sudo cp /usr/bin/startfluxbox /etc/alternatives/x-session-manager

=== Step 4: Reboot ===
This is pretty self-explanatory. You need to reboot to get into Fluxbox.

 sudo reboot


That's it! If everything went well, you should arrive at a Fluxbox desktop

[[Category:HowTo]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Getting your package included</title>
    <id>1474</id>
    <revision>
      <id>38935</id>
      <timestamp>2010-09-22T10:46:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>minor fix</comment>
      <text xml:space="preserve">{{Mer}}

* Make sure it compiles after getting your build dependancies, &lt;code&gt;dpkg-buildpackage&lt;/code&gt;.
* Ideally test &lt;code&gt;dpkg-buildpackage -S -us -uc&lt;/code&gt;, &lt;code&gt;dpkg-buildpackage -b -us -uc&lt;/code&gt;, and &lt;code&gt;dpkg-buildpackage -B&lt;/code&gt; (some packages may not build any arch-dep packages, so that's OK. Microdocument it on Jaiku.)
* &lt;code&gt;bzr export ''source package name'' lp:~''yourusername''/m-r/''source package name''&lt;/code&gt; (gives you a checked out version, without metadata)
* &lt;code&gt;cd ''source package name''&lt;/code&gt;
* &lt;code&gt;dpkg-buildpackage -S -us -uc&lt;/code&gt;, to generate a source package
* Upload the resulting source package (&lt;code&gt;*.changes&lt;/code&gt;, &lt;code&gt;*.tar.gz&lt;/code&gt;, possibly &lt;code&gt;*.diff.gz&lt;/code&gt;) to your &lt;code&gt;~/incoming&lt;/code&gt; on trac.tspre.org.
* &lt;code&gt;ssh ''yourlogin''@trac.tspre.org /import-new-packages&lt;/code&gt;

(This will add the source package to repository, and complain otherwise.)

* You need access to merbuilder &amp; repository upload for the following, ask Stskeeps on Jaiku/IRC for this. 
* Builder is at http://trac.tspre.org:8000
* Follow instructions, and submit job.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/HW</title>
    <id>1954</id>
    <revision>
      <id>13924</id>
      <timestamp>2009-06-03T16:25:30Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>[[Mer/Documentation/HW]] moved to [[Mer/Documentation/ARM CPU]]: restructure</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Documentation/ARM CPU]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Hildon Input Method</title>
    <id>2251</id>
    <revision>
      <id>38882</id>
      <timestamp>2010-09-22T09:37:10Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

There is limited documentation on how to use this.

see : http://talk.maemo.org/showthread.php?t=29310

Basic structure:
&lt;source lang=&quot;xml&quot;&gt;
&lt;him-arabic&gt;
  &lt;layout mode=&quot;0&quot;&gt; (0 meaning shift not pressed, 1 means shift pressed)
    &lt;row&gt; repeat these elements per row you want
      &lt;key name=&quot;character&quot; expand=&quot;1 if it should expand and fill - look at the space button in the image, 0 otherwise&quot; /&gt;
      Add as many keys as needed in the row
    &lt;/row&gt;
  &lt;layout&gt;
  Make both a shift not pressed and shift pressed layout.
&lt;/him-arabic&gt;
&lt;/source&gt;

The relationship between an XML file (eg fi.xml) and a language (eg fi_FI) seems unknown at the moment.

Matan has this working:
 cp fi.xml.txt /usr/share/him-arabic/fi.xml
 him-arabic-register fi_FI
 gconftool-2 -s -t bool /apps/osso/inputmethod/hildon-im-languages/fi_FI/word-completion false
 gconftool-2 -s -t string /apps/osso/inputmethod/hildon-im-languages/language-1 fi_FI
 gconftool-2 -s -t int /apps/osso/inputmethod/hildon-im-languages/current 1</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Imager</title>
    <id>1471</id>
    <revision>
      <id>38936</id>
      <timestamp>2010-09-22T10:47:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Using the imager ==

Grab the imager from &lt;code&gt;bzr&lt;/code&gt; (&lt;code&gt;lp:~mer-committers/m-r/imager&lt;/code&gt;)

Targets are:

* &lt;code&gt;targets/mer-770-fs-only&lt;/code&gt; - builds a filesystem for Mer on Nokia 770
* &lt;code&gt;targets/mer-n800-fs-only&lt;/code&gt; - builds a filesystem for Mer on N800
* &lt;code&gt;targets/mer-x86-generic&lt;/code&gt; - builds a filesystem for x86.

Imager can be run with &lt;code&gt;sh imager targets/''TARGET'' ''/path/where/you/want/fs''&lt;/code&gt;

Look inside the target scripts and work your way back.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Installation</title>
    <id>1702</id>
    <revision>
      <id>38986</id>
      <timestamp>2010-09-22T12:11:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

This article sums up the different ways to install Mer on different types of computers (VMWare, chroot, on device, etc.). Please feel free to add/edit. The original information is taken from [[Mer/Releases/0.9]].

Replace &quot;&lt;your version&gt;&quot; with the version you are going to install, e.g. &quot;0.9&quot;.

== Installation in VirtualBox  ==

# Unzip zip file
# Open VirtualBox, create new machine (click New):
#* Name: Mer ''&lt;your version&gt;''
#* OS type: Linux
#* Version: Ubuntu
#* RAM: 128MB (at least)
#* Disk: click &quot;existing&quot;, find the mer-x86-generic-image-v''&lt;your version&gt;''.vmdk file, select, select
#* Next
# Finish
# Start the newly created virtual machine
# Installing all the needed packages for installing VirtualBox additions:
#* I had to install the following packages by:
#* sudo apt-get install build-essential linux-headers-*kernel-version*-generic
#*(replace *kernel-version* with the currently installed kernel-version on the virtual machine)
#*(you can simply find out which kernel-version you have, by executing &quot;uname -r&quot; in Mer's XTerminal)
# Installing the additions:
#*First of all you have to mount the CD-Image with the additions emulated as a cdrom-device into the virtual machine running mer.
#* Mount the VboxAdditions.iso by: Devices -&gt; mount CD-ROM image -&gt; select VboxGuestAdditions.iso
#* Create a new folder with root rights by:
#*sudo mkdir /media/cdrom
#* and mount the virtual device's filesystem to the new mountpoint by:
#*sudo mount /dev/scd0 /media/cdrom
#* If no errors are appearing you can install the additions by:
#*sudo /media/cdrom/VBoxLinuxAdditions-x86.run
# Rebooting the virtual machine:
#* Now, when the installation of the additions has finished, you can reboot the vm simply by:
#*sudo init 6
# Finished

== Installation (chroot) ==

&lt;pre&gt;
mkdir mer-&lt;your version&gt;
cd mer-&lt;your version&gt; &amp;&amp; sudo tar xzf mer-x86-generic-image-v&lt;your version&gt;.tar.gz
sudo mkdir -p tmp/.X11-unix home/$USER/.osso
sudo mv usr/bin/maemo-invoker usr/bin/maemo-invoker.real
echo -e '#!/bin/sh\nPROG=&quot;$1&quot;\nshift\nexec &quot;$PROG&quot; &quot;$@&quot;' | sudo tee usr/bin/maemo-invoker
sudo chmod 755 usr/bin/maemo-invoker
echo 'nameserver &lt;mynameresolver&gt;' | sudo tee -a etc/resolv.conf
&lt;/pre&gt;

=== Start-up (from within &lt;code&gt;mer-''&lt;your version&gt;''&lt;/code&gt; directory) ===

&lt;pre&gt;
Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb 2&gt;/dev/null 1&gt;&amp;2 &amp;
sudo mount --bind /tmp/.X11-unix tmp/.X11-unix
sudo mount --bind /dev/pts dev/pts
sudo mount -t proc proc proc
sudo mount -t sysfs sysfs sys
sudo chroot .
export DISPLAY=:2.0
/etc/init.d/dbus start
start-hildon
&lt;/pre&gt;

== x86 Install ==

See [[Mer/Documentation/Making_x86_Mer_Bootable|Making x86 Mer Bootable]]

== N8x0 Install ==

=== The Installer ===

The developers of Mer implemented an installer, which leads through all the steps of installation. In order to use the installer you need to open:
[http://trac.tspre.org/merinstaller.install .install file] with your device, which will prompt you to install the file (about 2.5MB) and add the Extras, Extras-devel and tspre.org repositories if they were not added already.

After the download and the installation go to Settings -&gt; Application Manager -&gt; Utilities -&gt; Browse Installable Applications -&gt; Other and system and you will find a program &quot;Install Bootmenu&quot; and &quot;Merinstaller&quot;. If you did not install those by pressing &quot;OK&quot; before, do it now.

The Simple Install will create a bootmenu entry for you. However, for more advanced installations - eg if you already have multiple booting OSes - you might want to read about its [[Mer/Documentation/Bootmenu|configuration]] - you may need to make a .item if you have a clone-to-SD copy of Maemo or Deblet. You can also find out how to change the default boot menu item and other bootmenu tricks.

Assuming you created all the .item files you wanted, go ahead, and start the bootmenu installer from Utilities -&gt; Install Bootmenu. Its advised to close all other applications and network connections, but the installer will tell you all relevant information.

* &quot;Are you sure to continue?&quot; - yes
* &quot;Create backup of current initfs&quot; - yes/no
* &quot;Remove unneeded extra (and factory testing) stuff?&quot; - yes
* &quot;install telnet server for network recovery?&quot; - yes/no
* &quot;install dropbear ssh server for advanced network recovery?&quot; - yes/no
* &quot;/etc/bootmenu.conf found, do you want to add it to initfs?&quot; - yes
* &quot;Ready for flashing this image?&quot; - yes/no

After a successfull flash, the device will reboot and you should see the bootmenu, where you can select the partition you want to boot. Choose the operating system where you just installed the installer for Mer and boot it.

Now start the Merinstaller via Utilities -&gt; Install Mer. Follow the instructions. When prompted for the URL= you can point it to any rootfs image you want. Check at [[Mer/Releases]] or ask at #mer.

Once the installer puts the extracted rootfs to your device you can reboot and chose the partition where you put Mer. Please contribute by filing bugs on [https://bugs.maemo.org/ bugs.maemo.org]

=== Flashable Image ===

'''NOTE: Very experimental, because it doesn't use the Maemo initfs; only install if you want to help test it.'''

Grab a kernel and rootfs image of Mer and flash them directly to the device by:&lt;BR&gt;
&lt;code&gt;
   ./flasher-3.0-static -k mer-armel-n8x0-kernel-v&lt;your version&gt;.zImage -r mer-armel-n8x0-image-v&lt;your version&gt;.jffs2 -f -R
&lt;/code&gt;

You might want a MMC card swap partition.

== 770 Install ==

'''(these instructions need testing)'''

You will need at least a 1gb MMC, and these instructions are based on OS2008HE kernel. 48mhz kernel is highly recommended

Partition MMC to:

*p1: Large ext3 partition first
*p2: 256 MB swap partition second

Grab http://packages.tspre.org/pool/user/b/bootmenu/bootmenu_1.5-2_armel.deb and install it. 

* Open the main menu and tap Utilities -&gt; Install Bootmenu to start the bootmenu install process.
** If nothing happens, install xterm
** If window appears and then goes away, gainroot is not installed
*** Alternative method with dropbear client / server installed, start xterm, run dbclient root@0, password 'rootme', run /usr/sbin/install_bootmenu
* First, say yes to removing &quot;unneeded extra (and factory testing) stuff&quot;
* say yes to including bootmenu.conf (important). Reboot when done flashing.
* This is a special boot menu where boot menu items are made in /etc/bootmenu.d/*.item and refresh_bootmenu.d will flash this to initfs. '''If you are cloning or booting other OS'es, you'll need to make such .item files'''. See [[Mer/Documentation/Bootmenu]]

Grab e2fsprogs and install it - grab gnutar as well

*From x-terminal, root: insmod /mnt/initfs/lib/modules/current/mbcache.ko
*insmod /mnt/initfs/lib/modules/current/jbd.ko
*insmod /mnt/initfs/lib/modules/current/ext3.ko
*mkfs.ext3 /dev/mmcblk0p1
*mkswap /dev/mmcblk0p2 
*swapon /dev/mmcblk0p2
*mkdir -p /mnt/mer
*mkdir -p /etc/bootmenu.d
*mount -t ext3 /dev/mmcblk0p1 /mnt/mer
*cd /mnt/mer; wget &lt;nowiki&gt;http://stskeeps.subnetmask.net/mer/&lt;your version&gt;/mer-armel-770-image-v&lt;your version&gt;.tar.gz&lt;/nowiki&gt;
*tar pzxvf mer-armel-770-image-v&lt;your version&gt;.tar.gz
*rm mer-armel-770-image-v&lt;your version&gt;.tar.gz
*umount /mnt/mer
*Make /etc/bootmenu.d/mer.item with the following contents:

&lt;pre&gt;
ITEM_NAME=&quot;Mer&quot;
ITEM_ID=&quot;mer&quot;
ITEM_DEVICE=&quot;mmcblk0p1&quot;
ITEM_MODULES=&quot;mbcache jbd ext3&quot;
ITEM_FSTYPE=&quot;ext3&quot;
ITEM_FSOPTIONS=&quot;noatime,ro&quot;
ITEM_LINUXRC=&quot;linuxrc&quot;
&lt;/pre&gt;
*refresh_bootmenu.d (say yes to reflashing, no to backup of initfs. reboot)
*Hold down Menu key when prompted while booting and select Mer in the boot menu.

== BeagleBoard port ==

* Make sure you are running a RECENT uBoot, and you have USB input devices like keyboard or mouse, if you don't own a touchscreen..
* Make a SD card, partitioned with 50mb FAT as first partition, extract boot fs on this, and the rest Linux partition, format this as ext3, and extract rootfs on this.
* In uBoot, use the following commands (you may have to adjust video= parameter to match your display screen:

'''Note: The format of the video bootargs parameter has changed for the new 2.6.28 kernel in 0.9. You'll likely have to update the bootargs line.'''

&lt;pre&gt;
setenv bootcmd 'mmcinit; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000'
setenv bootargs 'console=ttyS2,115200n8 console=tty0 root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait omapfb.video_mode=1024x768MR16@60'
saveenv
boot
&lt;/pre&gt;

* The tablet should output kernel output on serial and on video, and on HDMI out it will eventually start X and show the First Boot Wizard. Good luck.

== Pocket Loox 720 port (experimental) ==

* Set up a SD card with a logical partition, and inside this logical partition, make a 50mb or so FAT partition (p5), and put the zImage file on this filesystem, name it zImage. After the logical partition, make a ext3 partition (p2), and untar rootfs on it.
* Grab [http://www.handhelds.org/moin/moin.cgi/HaRET HaRET] and put it on the FAT partition, HaRET.exe.
* Make a file, startup.txt, with the following contents:

&lt;pre&gt;
set kernel &quot;zImage&quot;
set mtype &quot;617&quot;
set RAMADDR &quot;0xa8000000&quot;
set cmdline &quot;mem=128M rootdelay=1 root=b302 rw console=tty0&quot;
boot
&lt;/pre&gt;

* Unmount all filesystems, insert SD card into Pocket Loox, boot by running HaReT.exe. If HaRET stops with &quot;Jumping to kernel...&quot; then grab [http://dl.free.fr/dZ75nlNFA/loox_boot.tgz HaRET] from www.postnuklear.de/linuxloox.
* Experimental release, if you want to play with this - come hang out on #mer on irc.freenode.net and we'll try to guide you along. It is a 640x480 screen so our theme won't fit.

* For using ssh between loox and desktop box :
- You need to grab an ssh enabled [http://www.daimi.au.dk/~cvm/loox.tar.gz rootfs].

- extract it on your sd card (ext3 partition)

- connect the Loox with the sync cable to your desktop box. And power on loox.

- on your desktop box check for USB network interface (usualy usb0) with : ifconfig

- configure the USB network interface : sudo ifconfig usb0 192.168.2.1

- ssh to loox : ssh root@192.168.2.2

- root password is 'rootme'

* If touchscreen is not calibrated MER v0.11:
- download [http://ports.ubuntu.com/pool/main/t/tslib/libts-bin_1.0-4ubuntu2_armel.deb tslib-bin] to your desktop box.

- scp the deb file to loox : scp libts-bin_1.0-4ubuntu2_armel.deb root@192.168.2.2:/root

- on loox : dpkg -i libts-bin*.deb

- run ts_calibrate (all in one line) :
&lt;pre&gt;
TSLIB_CONFFILE=/etc/ts.conf TSLIB_TSDEVICE=/dev/input/event0 TSLIB_FBDEVICE=/dev/fb0 TSLIB_CONSOLEDEVICE=none TSLIB_CALIBFILE=/etc/pointercal ts_calibrate
&lt;/pre&gt;
- you can test your touchscreen with ts_test

* If touchscreen is not working under Xorg MER v0.11 :
remove xorg synaptics driver
&lt;pre&gt;
apt-get remove xserver-xorg-input-synaptics
&lt;/pre&gt;

* Internet on Loox
- Configure MASQUERADE on you desktop
&lt;pre&gt;
iptables -A FORWARD -s 192.168.2.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.2.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j MASQUERADE
echo 1 &gt;/proc/sys/net/ipv4/ip_forward
&lt;/pre&gt;

== Touch Book (Experimental) ==

'''Until there's a Touch Book image, use SmartQ5 image.'''

First, make sure your SD card's geometry is 63 / 255 . Otherwise the Touch Book won't recognice it. To set the correct geometry, put the SD in your host-computers card-reader and open up a terminal. Type:
&lt;pre&gt;
bash:$ sudo fdisk /dev/&lt;yoursdcard&gt;

Command (m for help): [x]

Expert command (m for help): [s]
Number of sectors : [63]

Expert command (m for help): [h]
Number of heads : [255]

Expert command (m for help): [w]
&lt;/pre&gt;

'''Formatting the SD card:'''

* The first partition needs to be formatted as FAT32 ''and have the boot flag''. 30Mb size is fine.
* Format the second partition as ext3, at least 512Mb size.
* If you want, you can also create one more partition for swap.

This is easy to do with linux host-computer.
GParted is easy to use graphical Partition Editor.

'''Installation'''

Download Mer image and unpack it in the second partition.

Copy a few files from AI OS for better hardware support:

/lib/firmware

/lib/modules

/etc/Wireless

/etc/fstab

== SmartQ ==
Dual booting doesn't seem to work at the moment.

You'll need an SD card with a FAT32 as the first partition and more than 140MB free.

Download the correct firmware image and rootfs image from the Released Images table.  Copy both of them to the root of the FAT32 partition on the SD card.

Rename the firmware image to either 'SmartQ5' or 'SmartQ7' according to your device.

You may also want to download some additional software to our SD card for after Mer is installed.&lt;br&gt;
To use Wifi, you'll need the Marvell Wifi Firmware blobs
* Browse [http://www.marvell.com/support.html here] and select in the drivers colum for os &quot;Fedora 2.6&quot; and click search. After that, get a zip file called starting whit SD-8686
* Extract the downloaded zip file, then extract SD-8686-FEDORA26FC6-SYSKT-GPL-9.70.3.p24-26409.P45.tar within it. Extract the FwImage folder to your PC.
* Inside there are two files, helper_sd.bin and sd8686.bin. Rename helper_sd.bin to sd8686_helper.bin and copy to your SD card

The commands to extract and copy it might look like this:
 cd /tmp
 unzip SD-8686-LINUX26-SYSKT-9.70.3.p24-26409.P45-GPL.zip
 tar xf SD-8686-FEDORA26FC6-SYSKT-GPL-9.70.3.p24-26409.P45.tar
 cp FwImage/helper_sd.bin /path_to_SD_CARD/sd8686_helper.bin
 cp FwImage/sd8686.bin /path_to_SD_CARD/sd8686.bin


Wifi WPA2 fix
* Download the [http://www.daimi.au.dk/~cvm/kernel-smartq5-modules_2.6.24.7-smartq5-050509_all.deb SmartQ5] or [http://download.opensuse.org/repositories/Maemo://Mer:/Devel:/HW:/SmartQ:/Devel/MerDevel_Ubuntu_9.04/all/kernel-smartq7-modules_2.6.24.7-smartq7-20090729_all.deb SmartQ7] WPA2-fixed driver to your SD card.

Now unmount the SD card and eject it.

Power off the SmartQ totally (wait for the LED to go out) and insert the SD card.

===SmartQ5===
Press and hold the + button and insert the charger.
The device will begin to boot; the LED will be green/yellow.
A series of chinese characters will appear ending with '...' if all is going well.  Once you see them, you can release the + button.  Next there will be
a progress bar.  Once it completes, the device will automatically reboot.

===SmartQ7===
Press and hold the 'menu' key (bottom key on front) and insert the charger.
The device will begin to boot; the LED will be a different colour - green/yellow. You can release the menu key. Some chinese symbols appear and then a progress bar ticks (slowly) up to 100%.  Once it completes, the device will automatically reboot.

===both===
After this a calibration screen will appear and shortly after you are in Mer.

If you have connected it to a computer via USB, it will be accessible over USB networking on IP 192.168.2.15 ([http://wiki.maemo.org/USB_networking#Host_USB_Network_Configuration see instructions here]) with a SSH server, login root, password rootme 

It will not show a splash screen, but it will after darkness then make the screen white, and eventually, show the Mer background and first boot wizard.

=== To mount your SD card ===
In Mer on SmartQ, open X-Terminal and type (tab-completion is your friend):
&lt;pre&gt;
$  sudo mount -t vfat /dev/mmcblk1p1 /media
&lt;/pre&gt;
When prompted for a password, enter the one you set when you first started.
Note that the above device name has one lower-case L character and then two number one characters (these can look quite similar in some fonts).

=== To get wireless networking (including WPA2) to work===

In order to get wireless networking to work, you are going to have to install the Marvell firmware you copied onto your SD card, and to get WPA2 working, you'll also need to install the .deb.  The first step is to mount your SD card (see the section just above this, if you haven't already mounted it).

So, in Mer on SmartQ, open X-Terminal and type (tab-completion is your friend):
&lt;pre&gt;
$ sudo cp /media/sd8686.bin /lib/firmware/
(if prompted, the password is the one you set when you first started)
$ sudo cp /media/sd8686_helper.bin /lib/firmware/
&lt;/pre&gt;
And then either, for the SmartQ5 [Note: The following step may not be necessary as the 0.16-5 firmware automatically installs the most current file from the SD card during bootup. The confirmation message is &quot;wifi firmware installation successful&quot;. Verified on Q5.]
&lt;pre&gt;
$ sudo dpkg -i /media/kernel-smartq5-modules_2.6.24.7-smartq5-*_all.deb
&lt;/pre&gt;
or for the SmartQ7 [Note: The following step may not be necessary as the 0.16-5 firmware automatically installs the most current file from the SD card during bootup. The confirmation message is &quot;wifi firmware installation successful&quot;. Verified on Q7.]
&lt;pre&gt;
$ sudo dpkg -i /media/kernel-smartq7-modules_2.6.24.7-smartq7-*_all.deb
&lt;/pre&gt;

Now that you've enabled networking, you should close the gaping security hole which is part of the default configuration by changing the root password from its default, which is &quot;rootme&quot;.
&lt;pre&gt;
$ sudo passwd
Password:   (enter your user password)
Enter new UNIX password:   (enter any hard to guess password you want)
Retype new UNIX password:   (same one again)
&lt;/pre&gt;

Next you should reboot.
&lt;pre&gt;
$ sudo /sbin/reboot
&lt;/pre&gt;

Once it reboots, you should be able to see wireless networks on the menu and select them.

=== Booting from SD card ===
(this was taken from [http://alone-in-the-light.zenvoid.org/2009/06/boot-smartq-5-from-sd-card.html zenvoid's blog])

In order to boot from the SD card, it is simply a matter of creating a partition on the SD card large enough to hold the mer distribution, but leaving enough unpartitioned space at the end of the card for the bootloader to sit.

* Download install-smartq-qi.sh, qi-smartq-20090612.bin from http://zenvoid.org/software/qi-smartq

* Create at least one ext2/ext3 Partition your SD card (and optionally a swap partition), but always '''remember to reserve 1 MiB of free, unpartitioned space at the end of the SD card'''. To be precise, at least the last 2048 blocks (512 bytes each) must be reserved.
* Untar (tar --numeric-owner -zxvf) the rootfs for your device onto the partition you created on your SD card (make sure it isn't mounted with any no* options, e.g. nodev, noexec, ..)
* Rename or copy the kernel file (/boot/zImage&lt;something&gt;)  to /boot/linux-SMDK6410.bin
* Run
&lt;pre&gt;
./install-smartq-qi.sh /dev/SD_CARD_DEVICE qi-smartq-20090612.bin
&lt;/pre&gt;

To boot from the SD card, keep the &quot;move&quot;/fullscreen button (Q5) or right-hand-most button on the top which looks like a target symbol (Q7) pressed and then press the &quot;power&quot; button.

Q5 Boot stages:
* Red LED: First stage - bootloader is loading itself into memory.
* Yellow LED: Second stage - bootloader running, trying to locate and loading a kernel image.
* Green LED: Linux kernel loaded and running.
* Blinking yellow LED: A critical error while reading from the SD card.
* Blinking green LED: No kernel found.

Q7 Boot:

Keep in mind that the LEDs colours are reversed on the Q7, i.e. a green LED on the Q5 is a red one on the Q7 (the list above is for the Q5)

There is no battery check at the moment.




==== Alternate SD booting method using the OF bootloader ====
(as desribed on the Smartqmid forum: 
http://www.smartqmid.com/phpBB3/viewtopic.php?f=2&amp;t=150)

'''works only with OF installed on the device'''

in short:
*the first partition must be fat32 and the other primary partitions must be ext3
*on the first (fat) partition must be a folder named boot, that contains a menu.lst file and the kernel image (zimage)
*the menu.lst should be formated like this:
&lt;pre&gt;
title sdcard # name of the entry
kernel /boot/zimage # kernel image location
param root=/dev/mmcblk1p2 rootwait # location of the root fs, this is
                                   # the second primary partition on SD 
                                   # the internal memory is mmcblk0,
                                   # first internal partition = mmcblk0p1

&lt;/pre&gt;

With all this in place, the device shows a simple boot menu when turned on wit the SD card inside, you can select the entry with +,- buttons on the left and booting is triggered with middle button on the upper left.

Theoretically you can multiboot up to 5 different systems (internal + on the fat partition + three ext3 partitions, '''not tested''').</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/LXDE</title>
    <id>2015</id>
    <revision>
      <id>38883</id>
      <timestamp>2010-09-22T09:37:54Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

~~Warning: I take no responsibility if you break your system or the sky falls down. Do this at your own risk or you will be reinstalling Mer.


== Intro ==
I havn't updated my howto on installing [[Mer/LXDE | LXDE]] to Mer since Version 0.9 so I thought it was time since some things have changed.  I made this new page that I will update as changes happen.  I will also get some Screenshots on this page as well.  Feel free to add anything I missed.

== Install LXDE on Mer 0.14 ==

&lt;br&gt;
First install and boot to your Mer Partition and Open x terminal.

Then enter each of these commands one at a time


 sudo apt-get update
 
 sudo apt-get install libvte9=1:0.20.0-0ubuntu2
 
 sudo apt-get install synaptic
 
'''WARNING''' upgrading libvte9 this way will break the x terminal (both the osso one and the lxde one). And when synaptic starts, the password dialog seizes the whole screen, so the onscreen keyboard is not available to enter the password. So it's probably not a good idea to install synaptic if you want to use a terminal and/or don't have an hardware keyboard.

~~N800 and N770 or N810 users that want an onscreen keyboard.

 sudo apt-get install onboard (N800 and N770 users)


~~N810 Users Who want Login Screen (if you plan on using both Hildon and LXDE you must install with this option.)

 sudo apt-get install lxde

~~N800, 770 and N810 users who don't want login screen.

 sudo apt-get --no-install-recommends install lxde libgtkstylus

If you want to use lxlauncher to easy opening of applications

 sudo apt-get install lxlauncher

Then type this to reboot your system.

 sudo reboot

Choose Mer partition again and it should load the ubuntu login window.

login using the username and password you made when installing Mer

Once you have loaded Mer/LXDE then we need to make a few changes to make everything better first to connect to network.

Click Application Menu 

Click Run then type (if you want to use the previously installed onboard keyboard, use the file manager, browse to /usr/bin then double tap on onboard. You could also open onboard-settings to check the option to show it in the taskbar)


 nm-applet


Choose your network and logon.

Now using an FTP client on a desktop computer login to your Tablet using your root information

== Transfer desktop files to Tablet ==

~~If you did not install ssh server when installing Mer you will need to install it first.

[http://talk.maemo.org/attachment.php?attachmentid=3124&amp;d=1234390041 Download folder] and put the files in the following locations.

/usr/share/applications
*nmapplet
*onboard
*nmconnection
*lxlauncher

/etc/xdg/autostart
*nmapplet
*lxlauncher (if you want it to load at startup)

Now you should have a working install of LXDE on top of your Mer open synaptic and install any applications you want. 



== Skip Login Screen ==

Click Application Menu -&gt; Settings -&gt; Login Window.

Click Security tab and Enable Automatic Login then enter your users name there.


==Boot Hildon instead of LXDE ==
If you want to boot straight into Hildon, execute as root in a terminal
  
  update-alternatives --set x-session-manager /usr/bin/start-hildon

and reboot.

To use lxde again

  update-alternatives --set x-session-manager /usr/bin/startlxde


If you want to be able to load either Hildon or LXDE then follow these steps.

Load Mer and ftp in.

Copy this file to /usr/share/xsessions
hildon.desktop

Then Logout and click Options -&gt; Select Session -&gt; Hildon -&gt; Change Session

Then Login and you will load Hildon instead of LXDE for this session you can set Hildon as your default and use same way to load LXDE when you want. 

~~To Log out of Hildon Click Advanced Backlight and then Click any Rotation option.

== Installing LXDE on older versions ==

* [[Mer/LXDE/InstallOn0.7 | Install LXDE on Mer 0.7]]
* [[Mer/LXDE/InstallOn0.8 | Install LXDE on Mer 0.8]]

== Closing ==

Let me know if you run into any problems with anything. I am also working on a custom LXDE layout to organize the programs a little better. I will be posting that soon.

Thanks: Thanks to Stskeeps, Qwerty12, B-man, Qole,FatalSaint for helping out with this.

[[Category:Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Maemo Compatible</title>
    <id>1519</id>
    <revision>
      <id>38937</id>
      <timestamp>2010-09-22T10:47:38Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

* Battery applet: hildon-status-bar-battery-l10n hildon-status-bar-battery-l10n-mr0 osso-powerup-shutdown-l10n osso-powerup-shutdown-l10n-mr0 [but dies when charging signal comes in]
* hald-addon-bme (battery information)
* osso-sketch: icons look funny</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Making x86 Mer Bootable</title>
    <id>1470</id>
    <revision>
      <id>38987</id>
      <timestamp>2010-09-22T12:12:22Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Making a x86 Mer bootable ==

Partition your boot device, make a ext3 partition. In the following, sda1 is your ext3 partition and sda is your boot device. Only install this on a USB stick or whatever that you want to have possibly destroyed. 

 mkdir -p /mnt/mer
 mkfs.ext3 /dev/sda1
 mount -t ext3 /dev/sda1 /mnt/mer
* Grab a release &lt;code&gt;x86-generic tar.gz&lt;/code&gt; and put in &lt;code&gt;/mnt/mer&lt;/code&gt;, &lt;code&gt;tar pzvxf&lt;/code&gt; it from within &lt;code&gt;/mnt/mer&lt;/code&gt; ''or'' use the imager from above and &lt;code&gt;sh imager targets/mer-x86-generic-only-fs /mnt/mer&lt;/code&gt;.
 grub-install --no-floppy --recheck --root-directory=/mnt/mer /dev/sda
 chroot /mnt/mer update-grub
* Verify your &lt;code&gt;/mnt/mer/boot/grub/menu.lst&lt;/code&gt; looks correct
* &lt;code&gt;umount /mnt/mer&lt;/code&gt; (if you can)</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/N810 GPS</title>
    <id>1873</id>
    <revision>
      <id>38884</id>
      <timestamp>2010-09-22T09:38:52Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Notes ==
*These directions are confirmed to work on Mer 0.12.

*All commands should be run as root.

*All instances of &quot;YOURUSERNAME&quot; should be changed to whatever your user is named. Commands involving &quot;YOURUSERNAME&quot; [i]probably[/i] don't have to be run if your user is named &quot;user&quot;, though this is unconfirmed.

*The time to first fix (TTFF) is quite long (~30 min), and GPSD quits after the last client disconnects. Keep this in mind.

== Directions ==
=== Step 1: Install the necessary files ===
Install the following packages from the Maemo Updates repository (you can install them on Maemo, then copy the packages from the apt cache):
 libsupld1
 osso-gpsd
 libgpsmgr
 libgpsbt (?)
 gpsdriver

=== Step 2: Tweak /etc/init.d/libgpsbt ===
Edit /etc/init.d/libgpsbt and change all instances of &quot;user:users&quot; to &quot;YOURUSERNAME:users&quot; There should be 2 instances you need to change.

=== Step 3: Change ownership ===
Run:
 chown -R YOURUSERNAME:users /var/lib/gps

=== Step 4: Make the necessary files ===
Make the following files:

/etc/default/gps5300driver.conf:
 # /etc/default/gps5300driver.conf
 
 # The user who can control the driver
 GPS5300_USER=root
 
 # Whether the driver will self-initialize, may or may not work (more on the may not side)
 GPS5300_SELFINIT=true


/etc/init.d/gps5300driver:
 #!/bin/bash
 
 GPS5300_DRIVER='/usr/sbin/gps5300driver'
 GPS5300_PIDFILE='/var/run/gps5300driver.pid'
 GPS5300_PRELOAD='/usr/lib/libgps5300faker.so'
 CONF=/etc/default/gps5300driver.conf
 
 if [ -f $CONF ]; then
          . $CONF
 fi
 
 case $1 in
 	start)
 		echo &quot;Starting GPS5300 driver&quot;
 		if ! [ -e /sys/devices/platform/gpio-switch/gps_reset/state ]; then
 			echo &quot;gps_reset state gpio switch missing&quot;
 #			return 1
 		fi
 			
 		[ -z &quot;${GPS5300_SELFINIT}&quot; ] &amp;&amp; GPS5300_SELFINIT=true
 		${GPS5300_SELFINIT} || unset GPS5300_SELFINIT
 		export GPS5300_SELFINIT
 		
 		[ -z &quot;${GPS5300_USER}&quot; ] &amp;&amp; GPS5300_USER=root
 		export GPS5300_USER
 		
 		export LD_PRELOAD=${GPS5300_PRELOAD}		
 	
 		start-stop-daemon --start \
 			--quiet \
 			--background \
 			--pidfile &quot;${GPS5300_PIDFILE}&quot; \
 			--make-pidfile \
 			--exec &quot;${GPS5300_DRIVER}&quot;
 #			--env &quot;LD_PRELOAD=${GPS5300_PRELOAD}&quot; \
 #			--exec &quot;${GPS5300_DRIVER}&quot;
 #		return 0
 	;;
 
 	stop)
 		echo &quot;Stopping GPS5300 driver&quot;
 		start-stop-daemon --stop \
 			--quiet \
 			--pidfile &quot;${GPS5300_PIDFILE}&quot;
 		rm ${GPS5300_PIDFILE}
 #		return 0
 	;;
 
 	restart|force-reload)
 		$0 stop
 		$0 start
 	;;
 
 	*)
 		echo &quot;Usage: $0: {start|stop|restart|force-reload}&quot;
 		exit 1
 	;;
 esac

=== Step 5: Copy gpsdriver ===
Make a copy of gpsdriver to prevent confusion
 cp /usr/sbin/gpsdriver /usr/sbin/gps5300driver

=== Step 6: Install libgps5300faker.so ===
First of all, install the necessary packages (they may be removed later, this may be an excessive list or an incomplete list. Basically keep installing stuff until it stops complaining):
 apt-get install build-essential m4 automake autoconf

Make the following files somewhere (they may be removed later):

preload_init.c
 /*
  * Copyright 2009 Luke Dashjr &lt;luke_n8x0_gps5300driver@dashjr.org&gt;
  * Licensed for redistribution as-is;
  * contact me if you want something more permissive
  */
 
 #define _GNU_SOURCE
 
 #include &lt;dlfcn.h&gt;
 #include &lt;stdlib.h&gt;
 #include &lt;string.h&gt;
 #include &lt;sys/types.h&gt;
 #include &lt;sys/socket.h&gt;
 #include &lt;sys/un.h&gt;
 #include &lt;unistd.h&gt;
 
 static struct sockaddr_un ctrl_sau = {
 	AF_UNIX,
 	&quot;/var/lib/gps/gps_driver_ctrl\0&quot;,
 };
 #define CTRL_SCK_PATH ctrl_sau.sun_path
 
 static int ctrl_sck = -1;
 
 typedef int (*bind_t)(int, const struct sockaddr*, socklen_t);
 
 int
 bind(int sockfd, const struct sockaddr*addr, socklen_t addrlen) {
 	static bind_t real = NULL;
 	if (!real)
 		real = dlsym(RTLD_NEXT, &quot;bind&quot;);
 	
 	int rv = real(sockfd, addr, addrlen);
 	
 	if (
 	    addr &amp;&amp;
 	    addr-&gt;sa_family == AF_FILE &amp;&amp;
 	    !strcmp(CTRL_SCK_PATH,
 	            ((struct sockaddr_un*)addr)-&gt;sun_path
 	           ) &amp;&amp;
 	    getenv(&quot;GPS5300_SELFINIT&quot;) &amp;&amp;
 	    1
 	)
 		ctrl_sck = sockfd;
 	
 	return rv;
 }
 
 typedef int (*listen_t)(int, int);
 
 int
 listen(int sockfd, int backlog) {
 	static listen_t real = NULL;
 	if (!real)
 		real = dlsym(RTLD_NEXT, &quot;listen&quot;);
 	
 	int rv = real(sockfd, backlog);
 	
 	if (sockfd == ctrl_sck &amp;&amp; !fork())
 	{
 		// Child process :)
 		
 		int sck;
 		char initcmd[] = &quot;P 3\n&quot;;
 		
 		sck = socket(PF_FILE, SOCK_STREAM, 0);
 		if (sck &lt; 0)
 			exit(1);
 		if (connect(sck, &amp;ctrl_sau, sizeof ctrl_sau))
 			exit(1);
 		write(sck, initcmd, sizeof initcmd);
 		close(sck);
 		
 		exit(0);
 	}
 	
 	return rv;
 }

preload.c:
  /*
  * Copyright 2009 Luke Dashjr &lt;luke_n8x0_gps5300driver@dashjr.org&gt;
  * Licensed for redistribution as-is;
  * contact me if you want something more permissive
  */
 
 #define _GNU_SOURCE
 
 #include &lt;dlfcn.h&gt;
 #include &lt;pwd.h&gt;
 #include &lt;stdlib.h&gt;
 #include &lt;string.h&gt;
 #include &lt;sys/types.h&gt;
 
 typedef struct passwd* (*getpwnam_t)(const char*);
 
 struct passwd *
 getpwnam(const char *name) {
 	static getpwnam_t real = NULL;
 	if (!real)
 		real = dlsym(RTLD_NEXT, &quot;getpwnam&quot;);
 	
 	if (!strcmp(name, &quot;user&quot;))
 	{
 		const char*username = getenv(&quot;GPS5300_USER&quot;);
 		if (username)
 			name = username;
 	}
 	
 	return real(name);
 }
 

Compile them:
 cd /path/to/source/files/
 gcc -shared -fPIC -ldl preload.c preload_init.c -o libgps5300faker.so

Put libgps5300faker.so in /usr/lib (assuming you're still in the same directory):
 cp libgps5300faker.so /usr/lib

=== Step 7: Reboot ===
Reboot:
 reboot

=== Step 8: Prepare to use the GPS ===
Get ready to use the GPS:
 /etc/init.d/libgpsbt restart
 /etc/init.d/gpsdriver restart
 /etc/init.d/gps5300driver restart

=== Step 9: Start GPSD ===
Start GPSD:
 gpsd -n -N -D2 /dev/pgps

When you start getting messages like:

 gpsd: &lt;= GPS: $GPGGA,183757.000,4504.94573,N,09300.43367,W,1,04,2.7,288.8,M,-31.3,M,,*60
 gpsd: &lt;= GPS: $GPGLL,4504.94573,N,09300.43367,W,183757.000,A,A*42
 gpsd: can't use GGA/GGL time until after ZDA or RMC has supplied a year.
 gpsd: &lt;= GPS: $GPGSA,A,3,31,11,30,32,,,,,,,,,5.9,2.7,5.3*3D
 gpsd: &lt;= GPS: $GPGST,183757.000,14.3,13.2,37.3,19.1,16.0,32.4,73.2*54

You have a lock and are ready to use your GPS (I've also gotten other messages indicating the GPS is ready. Basically anything new/other than what it routinely spits out should be a good indicator).

[[Category:N8x0]]
[[Category:GPS]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/N8x0 Skype</title>
    <id>2241</id>
    <revision>
      <id>38938</id>
      <timestamp>2010-09-22T10:50:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== How to install Skype on Nokia n8x0 running Mer. ==

'''These instructions are tested to be working on Mer 0.15, n810. But note that you will fail to login due to Skype thinking there's no network available.'''

First you'll have to add needed repositories:

In XTerminal:

 sudo nano /etc/apt/sources.list.d/tableteer.list

copy/paste in following:

 deb http://catalogue.tableteer.nokia.com/updates/diablo-3/ /
 deb http://catalogue.tableteer.nokia.com/certified/ diablo user

Press Ctrl+x to close the editor and click &quot;y&quot; when it asks if you want to save changes.

Next, update repos:

 sudo apt-get update

Then Install the skype:

 sudo apt-get install skype

You'll face a bunch of problems, so a little dpkg --forcing is needed.

Run this: (one big command, don't split it)

 sudo dpkg -i --force-overwrite /var/cache/apt/archives /libjinglebase0.3-0_0.3.12-3ubuntu1_armel.deb /var/cache/apt/archives/libjinglep2p0.3-0_0.3.12-3ubuntu1_armel.deb /var/cache/apt/archives/gstreamer0.10-plugins-farsight_0.12.10-2_armel.deb /var/cache/apt/archives/libfarsight0.1-3_0.1.28-2_armel.deb

Finalize the install:

 sudo apt-get install -f

and

 sudo apt-get install skype

You can also remove the repository file to avoid future package conflicts:

 sudo rm /etc/apt/sources.list.d/tableteer.list

'''That's it!
Skype should be installed now, if it doesn't show up in the application menu yet, you can start it from terminal or reboot (Menu item should appear after reboot)'''

[[Category:HowTo]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/PocketLoox</title>
    <id>1692</id>
    <revision>
      <id>38988</id>
      <timestamp>2010-09-22T12:13:21Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Issues with Mer 0.9 on Pocket Loox 718:
  * ts_cal is off, not possible to move dialogs and click buttons.
  * X server crashes as soon as you finish initial user introduction.
  ** This may be completely normal - after first-boot-wizard we start a normal X session --Stskeeps
  * No suspend support in kernel (needs linux-loox patches?).</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Removal</title>
    <id>1901</id>
    <revision>
      <id>38885</id>
      <timestamp>2010-09-22T09:39:13Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Mer can be removed fairly simply.

Remove the mer .item file in /etc/bootmenu.d/ in the rootfs.

Format the Mer partition.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/SDK</title>
    <id>1468</id>
    <revision>
      <id>38939</id>
      <timestamp>2010-09-22T10:50:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Mer Development ==

Mer development is currently based around the OBS tools.

Install &lt;code&gt;osc&lt;/code&gt; as described on the [[Mer/Build]] page.

TODO: work through: linking home to various Mer build targets; creating a package on OBS home:&lt;username&gt;, building using  tar.gz, diff.gz and .dsc files. chroot using qemu and sharing with local desktop. Uploading files to OBS. Promotion


== Pre 0.13 SDK (armv5te) ==

First, install Fremantle SDK, and add yourself as a user to scratchbox.

As user:
* wget -c http://stskeeps.subnetmask.net/mer/arm-linux-cs2008q3-72-libtool2_1.0.11_i386.deb
* sudo dpkg -i arm-linux-cs2008q3-72-libtool2_1.0.11_i386.deb (run as root)
* wget -c http://stskeeps.subnetmask.net/mer/scratchbox-devkit-mer_1.0.11_i386.deb
* sudo dpkg -i scratchbox-devkit-mer_1.0.11_i386.deb
**You can optionally get qemu-arm-eabi and use that here instead. It is very good for your use of the SDK
* sb-conf setup MER-ARMEL --compiler=arm-linux-cs2008q3-72-libtool2 --devkits=debian-etch:cputransp:perl:mer --cputransp=qemu-arm-cvs-m -f
* sb-conf reset -f MER-ARMEL
* sb-conf select MER-ARMEL
* sb-conf rootstrap MER-ARMEL http://stskeeps.subnetmask.net/mer/mer-armel-rootstrap-v8.tar.gz
* sb-conf install MER-ARMEL --etc --devkits --fakeroot

ISSUES:
* You might have to do export PKG_CONFIG_PATH=/usr/share/pkgconfig:/usr/lib/pkgconfig to get some pkg-config stuff going
* You might have to set cpu right and such to target armv5el (no vfp)
* You probably need to get EABI cpu transparency target too
* 'not safe for cross-compilation' warnings (not true, i think)
* fakeroot apt-get dist-upgrade is good once in a while to keep up to date.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Screenshots</title>
    <id>2407</id>
    <revision>
      <id>45675</id>
      <timestamp>2011-11-04T13:37:43Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45648 by [[Special:Contributions/190.160.202.188|190.160.202.188]] ([[User talk:190.160.202.188|Talk]]) vandalism</comment>
      <text xml:space="preserve">{{Mer}}

This page contains screenshots taken from 0.16-5 for the SmartDevices Q5 and Q7.


Here is the desktop with the Weather app.

[[Image:Desktop_016_5.jpg]]


Here is the desktop without the Weather app.

[[Image:desktop__no_app_016_5.jpg]]


Here is the Mer Extras menu.

[[Image:extras_016_5.jpg]]


Here is X Terminal.

[[Image:xterm_016_5.png]]


Here is App Manager.

[[Image:Appmgr_016_5.jpg]]


Here is a list of available apps (2009.09.09).

[[Image:appmgr_all_apps_016_5.jpg]]


Here is the initial Tear screen.

[[Image:tear_016_5.jpg]]


Here is Google via Tear.

[[Image:tear_google_016_5.jpg]]


Here is Bluetooth (Mer 0.16-5 did not recognize the Q7's BT dongle).

[[Image:bluetooth_016_5.jpg]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/SmartQ Installation for the Windows user</title>
    <id>2481</id>
    <revision>
      <id>38886</id>
      <timestamp>2010-09-22T09:39:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

= Introduction =

This page is aimed at people who want to get set up with Mer, but don't necessarily want go around re-flashing firmware and lose the in-built Operating System on the SmartQ.  

There are other how-tos on this site for the more experienced user, so this page is aimed at users who may know some stuff about Linux and/or windows, but have never done any embedded-linux stuff and/or really mucked about with memory block devices and so on.

Disclaimer: This may not be the easiest way, but I've used it a couple of times to get Mer set up and booting from the SD card.  It really helps to know a bit of linux, or at least know a little about DOS, disks and partitions.   Also, having a VMWare linux machine really helps to dig you out of a hole in case you muck up your SD card. :-)

OK, that's the start over, time to get setting up....

== What's going to happen? ==

We're going to set up a 'virtual machine', which will allow us to do all this safely away from Windows.  The way the smartq boots is this:-

* If a particular button is pressed, when the machine is switched on, then the SmartQ will choose to boot from the SD card.   It does so by looking at the end of the card (at a particular location) for a 'bootloader'. this bootloader is a small program which hunts for a valid  Linux installation on the card, and then starts booting that.  So, we have to get this little chain of programs set up just right.


= Shopping List =

 * A SmartQ 5 / 7
 * 1 PC running Windows
 * A vague knowledge of Linux or DOS and file systems.
 ** at least 1 Gig RAM (prefer 2)
 ** at least 5 Gigs of free Disk Space (prefer much more)
 ** An SD card reader.
 ** An SD / SDHC Card with at least 6 gigs of space
 * About an hour to an hour and a half.

= Getting Started =

== Windows ==

Firstly, get the PC switched on. Ah, I see you've already done that.  Good thinking.    Use &quot;My Computer&quot; to locate a drive with 5 or more gigs of space on it.  Keep a note of that drive.  If you can, create a folder on the root of that drive called something like &quot;Virtual Machines&quot;.


== VMWare ==

Right, step 2, download VMWare from [[http://www.vmware.com/download/player VMWare.com]]. It's free, but you need to put in some name / country information.  You'll have to reboot your PC a few times, but you should be used to that as a Windows owner ;-)

== Ubuntu ==

Now, download a ready-to-go Ubuntu &quot;Virtual Appliance&quot;.  This is a fancy word for a honking-big file which is a snapshot of a Linux PC.    Once VMWare is installed, there should be a link on the first window which says 'Download' or 'Get'.    

*Click it, and search for an &quot;Ubuntu 9.04 Desktop with VMWare Tools&quot;.  You'll get a few hits.  One will be by &quot;Chrysaor&quot;.  That's what I use, and it's fine. 
** Alternatively, and more easily, go to [[http://chrysaor.info/?page=ubuntu Chrysaor's Place]] and grab one from here directly.  Unzip it once it's downloaded.  Inside  the zip file will be an info.txt with the login credentials.  

*Download it somewhere on your PC with lots of space, preferrably the location you found earlier, in a subfolder called ´Virtual Machines´ and not your desktop.  Once it's downloaded it'll create 5 to 10 more files in the same place, so it ´is´ best to stick it in a subdirectory.
*Once it's downloaded, go back to VMWare and click 'Open', then surf over to the 'vmx' file you just downloaded, and sit back and enjoy the ubuntu loading screen.

´´´ŃOTE´´´ We are NOT going to harm windows. VMWare contains the Linux in a safe harness and does not change or break windows in any way.

*Once you're into Ubuntu, click on the &quot;Devices v&quot; button at the top, and look for your SD/SDHC card reader.  Mine says  &quot;Alcor Micro Mass Storage Device&quot;.  Select it, and click &quot;Connect&quot;.  Then do it again and select &quot;Show icon in status bar&quot;. This'll make it easier to see what's happening.

= Using VMWare/Ubuntu to configure the SD card =

== Installing Mer on the SD Card ==

Click the Applications&gt;Accessories&gt;Terminal menu inside ubuntu and open up a command prompt.  Insert the SD card into your PC's SD reader, and check the little drive icon on the VMWare status bar.. it should flicker in time with the LED on your card reader... 

OK, so firstly, we need to get the stuff you're going to install on the SD card.
So, click the little Firefox logo at the top of the screen to get a browser.

'''Important:''' Before you download anything, it's important that we set the download folder.  By default it'll be your desktop, let's change it to your 'home' folder... It'll be less typing.   

* Click '''Edit''', then '''Preferences''', then the '''Browse''' button next to '''Save Files To'''.   
* In the dialog which appears you'll see three buttons at the top '&lt;','&lt;your username&gt;' and 'Desktop'.  
* Click the '''&lt;''' button, and a button will appear with 'home' in it.
* Click the '''Home''' button.  In the window you'll see your username now as a folder. 
* Highlight the folder with '''your username''' (it may be just 'user', depending on which Ubuntu VM you grabbed).
* Click '''open'''.  When you return to the previous screen, the 'save files to' option should now say something like ''/home/user''.
* Click '''close'''.

OK, now we know precisely where Moz will save your downloads, it's time to get those files.

== Downloading everything ==

* Go to [[[Mer/Releases|The releases page]] and grab the current stable release for your device. You want the ROOTFS version of the file, NOT the Firmware version.  This will go onto the SD card to make Mer.

* Go to [[http://zenvoid.org/software/qi-smartq/ ZenVoid's Blog]] and grab the install-smartq-qi.sh and qi-smartq-20090612.bin files.  These will make the SD card bootable.

* [Optional] If you're using 0.15testing5, you're also going to need the Marvell Wifi Drivers, so head to [[http://www.marvell.com/drivers/driverDisplay.do?driver=203 Marvell.com]] to get the driver.

All of this should have downloaded to your 'home' folder, or to your desktop.  So, at this point we need to go to a prompt and get Mer installed.

So, click Applications&gt;Accessories&gt;Terminal.  This will dump you at a command prompt.  some useful commands are '''ls -l''' '''cd''' and '''sudo'''.  You'll be seeing a lot of these.

== Setting up the SD Card ==

So, firstly, the SD card will have been automounted, probably.  Linux assigns a 'device name' to all its disks, and until you're familiar with the system, sometimes it takes a moment to locate a new drive...  A quick way to find out the device name (if the drive was auto-mounted), is to run '''df'''  to see the free space on all mounted disks.  One disk should be ''mounted'' under '''/media/disk'''.  Take a note of the disk's name, it should be /dev/sdb1 or /dev/sdc1.  the important part is the &quot;sdb&quot; or &quot;sdc&quot;.  From now on, I'll ''assume'' it's /dev/sdb1.  If you didn't see one, then you may need to ensure you've added the right drive to VMWare in the steps above.  

* type '''sudo umount /dev/sdb1''' .  This will unmount the sd card ready for formatting
* type '''sudo fdisk /dev/sdb'''.  this will open the disk for partitioning.
* in fdisk, type '''p''' to print the partition list, there should be one 'sdb1' of type 'FAT32'.  This is the current card contents.  
* Press '''d''' and hit return.  This will delete the partiion. If you are asked for a partition number, enter '1'.  If there are more than one partition, repeat until running '''p''' shows no partitions left.
* Press '''n''' and hit return to create a new partition.   
** Press '''p''' and hit return to crate a primary partition
** Press '''1''' and hit return to create it as partition one.
** Press '''return''' to choose ''block 1'' to start the partition
** Do some mental maths and work out the end block by dividing the size of the disk by the total number of blocks. So if fdisk says your 16Gig card has '1900' blocks, then that's ~8Megs per block, so it's safe to end the partition at the last-block-but-one. (Remember we're leaving at least 1 Mb for the bootloader)   (If you want to add a swap partition, then choose a lower number, then repeat the partition-creation step, always remembering to leave at least 1Mb spare at the end of the card (high number).
* Press '''a''' and return to make a partition active, and choose partition 1.
** If you created a swap partition, press '''t''' and choose partition 2, and make it type ''82'', Linux Swap.
** Press '''w''' and hit return to write the partition table (saving your work).
** Press '''q''' and hit return to exit.

Right, that's the SD card partitioned up nicely.  Time to format the partition and put Mer on there.  It's likely that Ubuntu in it's ever-friendly way will attempt to re-mount the partition again.  So, run '''sudo umount /dev/sdb1'''.

** Type '''sudo mkfs.ext3 /dev/sdb1'''  to format the partition ready for Mer.  this will take a while, depending on the size / speed of your card.

== Install the bootloader ==
OK, now it's time to install the Bootloader which will allow you to boot to Mer.

* Type '''cd''' and press return to ''go to your home folder''  this is where you chose to download all your files to in Mozilla.
* Type '''ls -l''' to list all your files.  If you can't see them, go into Mozilla and work out where your files ended up.  Repeat the steps above to ensure that files are downloaded to your '''/home/&lt;user&gt;''' folder (e.g. ''/home/nick'')

* Type '''sudo chmod a+rx install-smartq-qi.sh'''  - This will make the installer script 'runnable'.
* Type '''sudo ./install-smartq-qi.sh /dev/sdb qi-smartq-20090612.bin'''   - This will install the boot loader onto the SD card for you.

== Install Mer ==

Ok, now it's time to install mer on the SD card.   So we need to 'mount' the card, and move some files about.  The easiest way to do this is unplug the sd card, and re-plug it, and let Ubuntu automount it.  If you'd prefer to do it manually, here are some commands:-
* Type '''sudo mkdir /media/disk'''
* Type '''sudo mount /dev/sdb1 /media/disk'''

Once it's mounted, all you have to do is untar the rootfs... so assuming you have a SmartQ7, you downloaded the file ''mer-armel-smartq7-rootfs-v0.16testing5.tar.gz'', or something similar, you should now type:-

* Type '''cd''' (return) to ''go home'', then '''ls -l''' (return) to list the files.
* Type '''sudo mv *.tar.gz /media/disk''' . This will move the entire mer installation to the disk (so we can untar it easily).
* Type '''cd /media/disk''' and press return.  We will now be 'on' the disk
* Type '''sudo tar xzvf *.gz''' and press return.  This will now untar the entire 'rootfs' to the card.  (Install Mer).

After a few moments, the scrolling text will finish.  We're almost there!!!

== Getting the bootloader to 'see' Mer ==

We're almost home and dry.  Just a little housekeeping to do.  The bootloader is pretty smart, but it needs the 'kernel file' to have a special name so that it can find it on boot.  

* Type '''cd /media/disk/boot'''
* Type '''ls -l''' and note that there's a file called 'zImage' somthing.  That's the kernel file.  I'll assume it's 'zImage-smartq-200932'
* Type '''sudo cp zImage-smartq-200932 linux-SMDK6410.bin'''

== Getting the wifi working ==

The SmartQs need to have a set of drivers installed to make their wifi work.  It's a fairly painless operation. You should already have downloaded the file... 
With the SD-card mounted in /media/disk, copy the driver file to the 'media' directory '''on the SD card'''. (i.e. /media/disk/media).


* Type '''cd''' (and press return) to ''return home'' . Type '''ls -l''' (and press return).  You should see the file in the listing now.
* Type '''cp SD-8686*.zip /media/disk/media'''

I would give you these instructions by using the UI, but it requires ''root privileges'' to copy a lot of these files.. and it's easier to use ''sudo'' for that.


OK. The File should be in place.  You'll find installation instructions elsewhere on this site for unpacking the zip. However, when you first start Mer, the kind developers have created installation scripts so when Mer first starts, it'll find this zip file and unpack it for you.  

Right, we're pretty much ready to get this baby up and running.

= Booting Into Mer =

== Bye bye PC, hello SmartQ ==

Unmount the card (right-click on the icon on the desktop and select unmount, or type the following.  Ensure that you've closed all open windows which show the card's contents (Ubuntu may open a file browser if you chose to automount the card).
* '''cd''' (return)
* '''sudo umount /dev/sdb1'''

Pull the card out of your PC, and insert it into the Q5 / Q7 (upside down!).   It will need to be pushed in quite far until it clicks home.  Then:-

* Q5
** Hold down the &quot;move&quot;/fullscreen button, and switch on the device, either using the power button, or plugging in the power.  The LED should flash green, and perhaps red for a moment.
* Q7
** Hold down the right-hand-most button on the top of the device (looks like a little target), and press the left-hand-most button (the power), or plug in the power supply.   The LED should flash red, and perhaps green for a brief instant

.. After a moment, the screen should go white.  You can let go of the button and enjoy Mer in all its glory.

Currently, to switch off a Q5/7, you have to press the 'reset' button on the bottom.  S'why we formatted the disk with ext3, and not ext2 ;-)

'''NOTE''': when you first start Mer, it's possible the on-screen keyboard may be 'missing' a few keys. They're where they should be on a normal keyboard.  '''backspace''' is the gold key at top-right, '''return''' is the one below it, and '''shift''' is at the bottom.  Once you learn the layout, typing gets rather quick.

HAVE FUN!!!!

= Where to from here? =

== Using VMWare ==

Well, in the words of Ben Kenobi, youve taken your first step into a wiser world.  You have a nice fresh Linux install to play with.  

VMWare is very fault tolerant, so when you want to put Linux away, just close the window.  When you want to resume, just open VMWare again, and Linux will auto-resume from where you left off.  

It is very quick and quite safe.   If the Linux gets completely broken, just delete the virtual machine, re-download it, and start again, without having to muck about with installation CDs.

== Recreating the card ==

Well, now that you've had a play with installing Mer, you should be able to set the card up for other installations, like WinCE, etc.  So, keep the VMWare console around. 

== Reading the card ==

Don't unplug the card when the SmartQ is switched on, it'll cause you pain. However, if you want to install stuff onto the card from the PC, you'll need your VMWare (or ext2fs tools for windows), to mount the card and copy files on/off.

== Downloading applications ==

Mer is maturing all the time, and new Applications are being developed for it.  Check the app manager from time to time to see if there's new apps on the internet.

== Developing for Mer ==

The Mer team uses the &quot;OBS&quot; suite from OpenSuse, a remote-build-farm.  You get a username / 'garage ID', download the OBS toolkit inside your Ubuntu Virtual machine, and start coding.  the only difference is that you ask the OpenSuse build farm to build your app for you.  Once it's built you can install it on a simulated MID (called Scratchbox), or you can install it on the MID itself.

= thanks =

Thanks to lbt, zenvoid, meizirkki for helping me understand what's going on, and of course the whole Mer team for this awesome product, which may just save a good MID from oblivion :).  I hope this page proves useful, and allows more people to set up and play with Mer.

''nww02''</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Sound</title>
    <id>2107</id>
    <revision>
      <id>15116</id>
      <timestamp>2009-07-04T12:40:01Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>[[Mer/Documentation/Sound]] moved to [[Mer/Status/Sound]]: Managing status info together</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Status/Sound]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Straightjacket Packages</title>
    <id>1475</id>
    <revision>
      <id>38990</id>
      <timestamp>2010-09-22T12:15:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Straightjacket packages ==

This is a list of packages that did not compile in Scratchbox, and that we had to build natively:

* python-osso: http://trac.tspre.org:8000/python-osso_jaunty-armel-1232387331.log (python extension build problem)
* python-hildon: http://trac.tspre.org:8000/python-hildon_jaunty-armel-sb-1232400294.log (python extension build problem)
* python-hildondesktop: http://trac.tspre.org:8000/python-hildondesktop=0.0.2-2mer2_armel-0901212232.log (python extension build problem)
* python-conic: http://trac.tspre.org:8000/python-conic_armel-sb-0901212240.log (python extension build problem)
* vte: http://trac.tspre.org:8000/vte=1:0.17.4-0ubuntu1mer2_jaunty-armel-1232381310.log (potential debhelper issue)
* maemo-mapper: http://trac.tspre.org:8000/maemo-mapper=2.5.2-os2008mer2_armel-sb-0902021635.log

This is a list of packages that did compile in Scratchbox but failed natively:

* hildon-application-manager: (c++ problem /usr/lib/libstdc++.so.6: version `CXXABI_ARM_1.3.3' not found (required by hildon-application-manager.launch) )</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/USB Networking</title>
    <id>1778</id>
    <revision>
      <id>38887</id>
      <timestamp>2010-09-22T09:41:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

This is a method to use your PC internet connection on your tablet.

This was tried with an N810 with an Ubuntu laptop.

== Preparation == 

On host, open (with root privileges) file &lt;code&gt;/etc/network/interfaces&lt;/code&gt; and add the following at the end of the lines:

&lt;pre&gt;auto usb0
iface usb0 inet static
      address 192.168.2.1
      netmask 255.255.255.0
      broadcast 192.168.2.255
      up echo 1 &gt; /proc/sys/net/ipv4/ip_forward
      up iptables -P FORWARD ACCEPT
      up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.2.0/24
      down echo 0 &gt; /proc/sys/net/ipv4/ip_forward
      down iptables -t nat -F POSTROUTING&lt;/pre&gt;


(in Mer 0.15testing9, the address line above should be &lt;code&gt;address 192.168.2.14&lt;/code&gt; as Mer is hardcoded to use that as a gateway address)

== Enter rescue mode == 

Turn your tablet on. As soon as the Nokia screen appears, press the Home button on your tablet and keep it pressed until the Mer screen appears.

Shortly after this screen appeared, the rescue mode will appear. It gives you five choices:&lt;br /&gt;
* Start Mer
* Activate console
* Act as an ethernet USB gadget
* Act as a serial USB tool
* Reboot

Select the option that says &quot;act as an ethernet USB gadget&quot;. A console screen will scroll, then the Mer screen will appear. Connect the USB cable between your PC and the tablet.

== Configure your network interface ==

On host, open a shell, and type:

&lt;pre&gt;modprobe usbnet
sudo ifdown usb0
sudo ifup usb0&lt;/pre&gt;

You should get no message from the shell.

== Find your DNS == 

On host, on Ubuntu, they should be in &lt;code&gt;/etc/resolv.conf&lt;/code&gt;.

On the tablet, open the shell, and type

&lt;pre&gt;sudo echo nameserver A.B.C.D &gt; /etc/resolv.conf&lt;/pre&gt;

Where A.B.C.D represent the figures in your DNS. For instance 208.67.222.222 (public nameserver).

== Test by pinging ==

On host, open a shell, and type

&lt;pre&gt;ping 192.168.2.2 -c 5&lt;/pre&gt;

(in Mer 0.15testing9, the address line above should be &lt;code&gt;address 192.168.2.15&lt;/code&gt; as Mer is hardcoded to use that as a device address)

It should return five lines proving that contact was established with the tablet. This means that you are ready to use the internet connection of your computer.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Vala Control Panel</title>
    <id>2235</id>
    <revision>
      <id>15905</id>
      <timestamp>2009-07-28T09:12:14Z</timestamp>
      <contributor>
        <username>qwerty12</username>
        <id>59</id>
      </contributor>
      <comment>[[Mer/Documentation/Vala Control Panel]] moved to [[Mer/Documentation/Vala control panel]]: Camel case is frowned upon. Thanks Stskeeps for telling me to name it &quot;Vala Control Panel&quot;. :p</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Documentation/Vala control panel]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Vala control panel</title>
    <id>2234</id>
    <revision>
      <id>42563</id>
      <timestamp>2011-03-09T13:50:55Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use &lt;source&gt;</comment>
      <text xml:space="preserve">{{Mer}}

Mer needs new control panels. But not everyone knows C, but they may be proficient in C#. Vala is a language with C#-like syntax, that compiles to C, which makes it perfect for writing CPAs which are (to my knowledge) C only. But, documentation on Vala is rather lacking.

An example can be found here:
&lt;source lang=&quot;csharp&quot;&gt;
/*
 *      cpa.vala
 *      
 *      Copyright 2009 Faheem Pervez &lt;qwerty12&gt;
 *      
 *      This library is free software; you can redistribute it and/or
 *      modify it under the terms of the GNU Lesser General Public
 *      License as published by the Free Software Foundation; either
 *      version 2.1 of the License, or (at your option) any later version.
 *      
 *      This library is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      Lesser General Public License for more details.
 *      
 *      You should have received a copy of the GNU Lesser General Public
 *      License along with this library; if not, write to the Free Software
 *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 *      MA 02110-1301, USA.
 */

using Osso;
using Hildon;
using Gtk;

public Hildon.Program program;
public Gtk.Widget dialog;

Status execute(Context *osso, void* data, bool user_activated)
{
        osso = new Osso.Context(&quot;vala-test-applet&quot;, &quot;0.1&quot;, false, null);
        program = Hildon.Program.get_instance();
        data = new Hildon.Window();
        program.add_window((Hildon.Window)data);

        dialog = new Hildon.Note.information ((Hildon.Window)data, &quot;Hey, I'ma CPA written in Vala.\n&quot;+&quot;The \&quot;programmer\&quot; who wrote me sucks; but he hopes \nthat this can be used for something.&quot;);
        ((Gtk.Window)dialog).set_modal(true);
        ((Gtk.Window)dialog).set_position(WindowPosition.CENTER_ALWAYS);
        ((Gtk.Dialog)dialog).run();
        dialog.destroy();
	delete osso;

        return Status.OK;
}

//valac -C --pkg libosso --pkg hildon-1 cpa.vala ; gcc `pkg-config --cflags libosso hildon-1` -fPIC -c cpa.c ; gcc -module -avoid-version -shared -Wl,-soname,cpa.so  -o cpa.so cpa.o  -lc
&lt;/source&gt;

Save the above as &quot;cpa.vala&quot;. Because valac seems to be more accustomed for making programs, you have to use valac's -C option which'll output the generated C code and gcc can then be used to make it into a library.

Improvements ''very'' much welcomed.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Documentation/Vendor Social Contract</title>
    <id>1777</id>
    <revision>
      <id>38889</id>
      <timestamp>2010-09-22T09:42:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* No tivoization */ fix link</comment>
      <text xml:space="preserve">{{Mer}}

The “Vendor Social Contract” is how we'd like to position the Mer/Vendor relationship. We politely ''request'':

==No tivoization==

{{quotation|[[:wikipedia:Tivoization|Tivoization]] is the creation of a system that incorporates software under the terms of a copyleft software license, but uses hardware to prevent users from running modified versions of the software on that hardware.}}

A user of your device, running Mer, should always be able to replace the OS image with one of their own making. This can be fulfilled by:
* Not using hardware to prevent users from running modified versions of the OS.
* Not requiring signed firmwares.
* Publishing bootloader specifications (firmware format and methods of firmware replacement).

(Note: Mer does use some GPLv3 software, so tivoization may contravene the license of some software.)

== Open source kernel modules ==

Please publish the source for any modules required to access hardware on the device.

* Allows users to use modern kernels in their devices.
* Permit continued development of Mer for the device.
* Allows ongoing community support.

Open source software allows the development team to keep your drivers up to date whenever Mer framework changes require driver modifications.

==Redistribution is allowed==

We ask that you allow the Mer community to distribute binary copies of any closed-source firmware or hardware-support software that is needed to support your device.

If absolutely required, the Mer community can organize a procedure to distribute firmware or hardware-support software only to users of your device, behind EULA and identified with their serial number or MAC address, etc.

If you choose to differentiate your device through closed-source bundled application software too (e.g., Flash), we ask that you allow the same distribution rights for this software.

A user of your device can then, at any point in the future, build a fresh Mer OS image without losing any functionality they had with the original firmware

==Community Reciprocation==

The community is committed to 100% OSS and wants to support organizations moving towards open source. Although we recognize and respect that they may not, at this time, list that as one of their own objectives.

The community will:
* Support the spirit of the Vendor Social Contract.
* Respect the copyright/patent/license limitations that vendors may be faced with when distributing software.
* Support vendors in finding open solutions if desired.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Events</title>
    <id>2063</id>
    <revision>
      <id>38942</id>
      <timestamp>2010-09-22T10:53:38Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

This page lists events relevant to Mer.

Please add events so they appear chronologically with the oldest at the bottom.

== Future events ==

===May 2010===

;29-31 May : Maemo/Mozilla Hackfest

==Past Events==
:Southeast Linuxfest
:Free Software Foundation Developer Conference
:[[../Hackfest_Copenhagen_09 | Hackfest Copenhagen 2009]]

===October 2009===

;9-10-11 Oct : Maemo Summit
:See [[/Maemo_Summit_09|Maemo Summit '09]]

;24 Oct : Ontario Linuxfest

;24 Oct : Florida Linux Show
:Possibly Andrew and GeneralA.&lt;br /&gt;
:[http://www.floridalinuxshow.com/index.php?pr=Call_for_Speakers Submit Your Talk]

;25-26 Oct : Ohio Linuxfest
:Planning for Mer Table and presentations.

===August 2009===

;8-9 Aug : UK's Open Systems User Group
:See [[/UKUUG_09|UKUUG '09]]

[[Category:Events]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Events/Maemo Summit 09</title>
    <id>2010</id>
    <revision>
      <id>38991</id>
      <timestamp>2010-09-22T12:26:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

'''Mer Project planning page for [[Maemo Summit 2009]]'''&lt;br&gt;
October 9-10-11&lt;br&gt;
WesterGasFabriek - Amsterdam&lt;br&gt;
[http://www.westergasfabriek.nl/english/engels_welcome.php Locality Information Text]&lt;br&gt;
[http://tinyvid.tv/show/3bz5antblykmy Locality Informational Video]&lt;br&gt;

=Attendants List=
==Attendant Names (% Chance of Attending)==
* stskeeps (75%)
* lbt (100%)
* mtc (12%)

=Activity Intentions=

==Template (short title)==

'''Nickname:'''

'''Real name:'''

'''Affiliation and country of residence:'''

'''Areas of interest and expertises:'''

'''What you hope to accomplish on the 30th and 31th May 2009'''

(Make a 5 line summary of what you're interested in doing)

'''Who do you hope to cooperate with to get this accomplished'''

(If there are other people at the developer meeting it would be useful to cooperate with to get this accomplished)

'''Presentations'''

(Do you plan on making any presentations or demos at the developer meeting?)

'''Reference from Stskeeps'''

(Reference from Stskeeps if need be based on past contributions, for sponsorship requests of travel and accommodation)




=Accommodations, Ride-sharing, and Miscellaneous=
==Marketing Materials==
===Proposed Materials===
*100-800 Mer Project Flyers
*20-200 Mer Project Badges
*Specific Mer Project exhibitor table

===Secured Materials===
*list materials and contact name</text>
    </revision>
  </page>
  <page>
    <title>Mer/Events/UKUUG 09</title>
    <id>2062</id>
    <revision>
      <id>38890</id>
      <timestamp>2010-09-22T09:43:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

See http://summer2009.ukuug.org/Talks

David Greaves/lbt to present:

=Abstract : Mer - Touching Linux=

Mer is a new operating system for small, mobile touch-screen devices.

The premise is that we should stop seeing the tablets as strictly under-powered
embedded systems, and see them for what they really are: powerful,
power-efficient, economical handheld computers.

Mer is, of course, Linux based and layers the best open-source elements of
Nokia's Maemo platform over a modern Ubuntu distribution; furthermore Ubuntu-MID
have selected Mer as the foundation for their next release.

Currently Mer runs on the Nokia N8x0 &amp; 770 range, the Freerunner, SmartQ tablets
and beagleboards. We expect to support the imminent Nokia N9xx device as well.

The talk will introduce issues around the the commercial/open interface in
several areas, highlight successes and failures in this area and outline the
Vendor Social Contract as a mechanism to codify the relationship.

I will also discuss the goals of the project and how we intend to address them
by considering the design issues we face and some solutions.

Finally I will also cover our role as a midstream distribution and dip into how
we handle distributed development, communication, processes, packaging and build
management.

Mer is a Maemo.org project, supported by Nokia and benefits hugely from Novell's
Open Build Service and the Gitorious project.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Flash</title>
    <id>2029</id>
    <revision>
      <id>38943</id>
      <timestamp>2010-09-22T10:54:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Flash support in Mer ==

In order to have Flash support in the web browser, please install the package swfdec-mozilla. In the terminal:


'''sudo apt-get install swfdec-mozilla'''


Close any running instances of the web browser and start it up again. Swfdec should now play Flash content, videos in YouTube, etc. 

Swfdec, unlike the proprietary Adobe Flash plugin, does support fullscreen video, but its performance (and thus practicality) is yet to be tested.

The swfdec-mozilla package should be included in Mer by default to offset the lack of the proprietary Flash plugin.

This was tested in Mer 0.14, under VirtualBox.

However, when tested on N810 in Mer 0.15testing9, this is what happens http://imgur.com/GeZDI.jpg</text>
    </revision>
  </page>
  <page>
    <title>Mer/Goals</title>
    <id>1748</id>
    <revision>
      <id>38891</id>
      <timestamp>2010-09-22T09:45:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

= Mer Goals =

* Integrate the best solutions for a wide variety of small form-factor devices
* Encourage wider access to device capabilities through the Vendor Social Contract
* Demonstrably provide an easy route to market for vendors
* Dramatically reduce costs to vendors of supporting EOL hardware
* Focus, harness and support community contributions to the platform
* Encourage and ease migration of existing applications
* Support experimentation, innovation and development

== Goals for Mer 1.0 ==

Mer 1.0 is the first release where it should be relatively painless to use Mer on a day-to-day basis using N800, N810(W)s.

Requirements specification, related to the N8x0:
* Images: 
** a 100% free rootfs, which uses firmware from Nokia-provided initfs to provide WiFi and Bluetooth firmware.
** Fully flashable FIASCO image containing kernel, initfs and rootfs. Will include closed-source bits for HW interfacing and other useful things to not lose functionality. Generated behind the maemo.org server walls and downloadable with a EULA.
* WLAN working without hassle, and doing proper power saving. Firmware included in initfs.
* Audio working, ideally without having to resort to DSP tasks, but if this is not possible, included in restricted image.
* Bluetooth working. Firmware included in initfs. Bluetooth tethering, PAN and DUN.
* Battery information available.
* USB host, otg and gadget (serial, ethernet, mass storage) modes configurable.
* At least kernel 2.6.21, ideally later.
* Touch screen calibration possible.
* X driver or Xomap with manual updates.
* Backlight level, screen blanking wired into HAL
* FM Radio app: [http://maemo.org/downloads/product/OS2008/boafm/ BoaFM]

Cross-platform Mer image - goal: must fit in 240mb compressed.
* Backlight and audio: [http://maemo.org/downloads/product/OS2008/advanced-backlight/ Advanced backlight, '''ported''']
* File Manager ([http://www.andrew.cmu.edu/course/15-821-finefm/ finefm, '''ported'''] is a good candidate]
* Media Player ([http://openbossa.indt.org/canola2/ Canola2])
* Images viewer (Quiver? Is closed source but maybe the author would be interested?, [http://maemo.org/downloads/product/OS2008/mirage/Mirage Mirage, '''ported'''] is a good candidate too)
* Maps ([http://maemo.org/downloads/product/OS2008/maemo-mapper/ Maemo Mapper, '''ported'''])
* RSS feed reader (the open source Nokia one, osso-rss-feed-reader, and maybe Stylus Friendly RSS Home Applet)
* Calculator ([http://maemo.org/downloads/product/OS2008/galculator/ galculator-hildon] )
* Notes ([http://maemo.org/downloads/product/OS2008/maemopadplus/ Maemopad+, '''ported'''], [http://maemo.org/downloads/product/OS2008/xournal/ Xournal])
* PDF reader (the open source Nokia one? osso-pdf-viewer)
* Clock: large-statusbar-clock, 
* Games: osso-mahjong, osso-marbles, osso-chess, Aisleriot solitaire, Maemosweeper, Crazyparking?
* E-mail: [http://maemo.org/downloads/product/OS2008/claws-mail/ Claws Mail]?, [http://modest.garage.maemo.org/ Modest]?
* Browser: [http://www.bundyo.org/maemo/tear/tear_screenshot.png Tear]? MicroB? Hildonized Midori?
* Calendar: [http://maemo.org/downloads/product/OS2008/mcalendar/ mCalendar]?
* Xterm: osso-xterm</text>
    </revision>
  </page>
  <page>
    <title>Mer/Goals/1.0</title>
    <id>3072</id>
    <revision>
      <id>23252</id>
      <timestamp>2009-11-24T17:06:08Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Mer/Goals/1.0]] moved to [[Mer/Goals]]</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Goals]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/HackfestCopenhagen09</title>
    <id>1767</id>
    <revision>
      <id>12384</id>
      <timestamp>2009-04-08T16:58:14Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Mer/HackfestCopenhagen09]] moved to [[Mer/Hackfest Copenhagen 09]]: No camel case!</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Hackfest Copenhagen 09]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Hackfest Copenhagen 09</title>
    <id>1746</id>
    <revision>
      <id>38944</id>
      <timestamp>2010-09-22T10:55:40Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Focus of the [[Mozilla Maemo Danish Weekend|Copenhagen Hackfest]] (30-31 May 2009): Bring Mer closer to 1.0

Mer 1.0 is the version of Mer where it is first usable for day-to-day usage. This means, I should be able to use it for a day for my day-to-day tasks like I would have been able to using Maemo, on my mobile device. Fremantle is in beta at this point and we should be able to provide Fremantle APIs and a Maemo 4 replacement for users when Fremantle is out. The hope is to be able to use the synergy of bringing so many Maemo and Mer related personalities together, to be able to move ahead on things that would take longer if having to be done online.

Sub-goals, which serve as guidelines for activities:

* Control panels to be able to control behavior of your tablet.
* Developer tools - builders, cross compilation environments and IDEs
* Artwork and UI design: Icons, themes, backgrounds, animations, shining up interfaces through code, etc.
* Hardware interfacing and event-reaction daemons (implementing behavior similar to or better than Maemo4)
* Integration with maemo.org both on a organizational (relation to council, community) and technical level (package and image builders, repositories)
* Alignment with Maemo5 APIs and integration of Nokia-closed software in restricted images.
* Chasing down showstopper bugs which would hinder user adoption of Mer 1.0.
* Discussions on Mer after 1.0 and presentations on Mer to potential users and developers.
* Getting the Mer project developers and contributors together for the first time.

== Activity intentions ==

=== Template (short title) ===

'''Nickname:'''

'''Real name:'''

'''Affiliation and country of residence:'''

'''Areas of interest and expertises:'''

'''What you hope to accomplish on the 30th and 31th May 2009'''

(Make a 5 line summary of what you're interested in doing)

'''Who do you hope to cooperate with to get this accomplished'''

(If there are other people at the developer meeting it would be useful to cooperate with to get this accomplished)

'''Presentations'''

(Do you plan on making any presentations or demos at the developer meeting?)

'''Reference from Stskeeps'''

(Reference from Stskeeps if need be based on past contributions, for sponsorship requests of travel and accomodation)



=== Guidance of developers, integration with maemo.org and Nokia software integration ===

'''Nickname:''' Stskeeps

'''Real name:''' Carsten Valdemar Munk

'''Affiliation and country of residence:''' Centre for Pervasive Healthcare, University of Aarhus

'''Areas of interest and expertises:''' Community and genericity of mobile platforms, soon MSc within computer science

'''What you hope to accomplish on the 30th and 31th May 2009'''

I hope to serve as a guidance role for the different activities related to the Mer focus area, point people in the right direction etc. In addition to that, work with maemo.org employees to move the Mer infrastructure out of the basement and into maemo.org (builders, etc). Discussions with maemo.org council members on how Mer fits in the maemo.org organization. Work on integration patches to Nokia software so users don't loose functionality of their tablets. Represent Mer project and try to network some.

'''Who do you hope to cooperate with to get this accomplished'''

X-Fade (builders), jeremiah (repositories), keesj (council member), timeless (integration), andre klapper (bugs), Mer developers present.

'''Presentations'''

*Mer: Where are we, where do we want to go and how do you get started developing for Mer, 15-30 minute presentation

*Developer meeting on Mer after 1.0

'''Reference from Stskeeps'''

(Not making a reference for myself)

=== Buildsystems, packaging and Qt Hildonisation ===

'''Nickname:''' lbt

'''Real name:''' David Greaves

'''Affiliation and country of residence:''' none / UK

'''Areas of interest and expertises:''' Designer, Linux, Qt, Mer

'''What you hope to accomplish on the 30th and 31th May 2009'''

Sketch out usage of OBS and build system processes.

How Mer, Maemo and Ubuntu interact at the package, versioning and naming level

Work on QT hildonisation requirements and design solutions (eg fingerscrolling)

'''Who do you hope to cooperate with to get this accomplished'''

Carsten, Antonio (if present), potential Mer developers.

'''Presentations'''

Not planning but willing to do something short.

* How OBS works for Mer; maybe extending it to multiple devices

* Possibly a brainstorming session on what Qt needs for hildonisation if there is enough Qt involvement.

'''Reference from Stskeeps'''

Scale: 0-10, 0 not relevant, 10 fully relevant

Expertise: 10 (Enterprise architect, Extras: Shopper, Qt patches and bugfixing)

Past contributions: 8 (Active contributor, Hildonized Qt for Mer, extensive OBS investigation and discussions)

Fitting with goals: 
* Control panels: 0
* Developer tools: 10 (OBS &amp; their cross-compilation has the potential of revolutionizing Mer and Maemo development)
* Artwork and UI: 5 (integration of finger usage in Qt/Hildon)
* Hardware interfacing: 0
* maemo.org integration: 7 (OBS has the potential to be used in maemo.org build services)
* Maemo5+Nokia apps integration: 5 (Upstream relations)
* Chasing showstoppers: 0
* Presentations to developers: 6 (OBS and multi-device potential, Qt and Hildonization)
* Getting developers together (Design, planning, discussion): 10 (lbt-gnuton interaction, qt-hildonization planning)

Total points: 61 out of 110 - I believe lbt with his intended activities would be a valued contribution to the developer meeting within the Mer focus area.

=== Mer packaging work and work on Mer for other platforms ===

'''Nickname:''' JohnX

'''Real name:''' John Bloom

'''Affiliation and country of residence:''' NA / United States

'''Areas of interest and expertises:''' shell scripting, debian packaging, organization, embedded linux in general

'''What you hope to accomplish on the 30th and 31th May 2009'''

I plan to assist in whatever way I can in getting Mer closer to 1.0, including improving first-boot-wizard and possibly the installer as well as general packaging work. I'm happy to work on anything within my ability that will get Mer closer to a 1.0 release for the tablets. I have a little experience with Python and I'll try my best to apply it to developing Control Panel applets. Also, time permitting, I'd like to try and coordinate with Stskeeps and lbt about how to approach getting apps from Maemo Extras to Mer Extras without too much intensive manual labor on the parts of app developers or Maemo/Mer developers.

'''Who do you hope to cooperate with to get this accomplished'''

Stskeeps (Overall direction), lbt (Coordinating maemo extras-&gt;mer extras)

'''Presentations'''

* None planned but, I'd be happy to demo Mer running on the Zaurus and Wii as I have them working to some extent already.

'''Reference from Stskeeps'''

Scale: 0-10, 0 not relevant, 10 fully relevant

Expertise: 7 (System administrator work, work on porting to various architectures, Debian packaging, Invaluable Mer knowledge, Deblet &amp; pioneered Debian on Nokia Internet Tablets port)

Past contributions: 10 (Active contributor, johnx practically started the Mer project with me, even in the Maemo Reconstructed Proof of Concept project, has made most of the glue holding Mer together in terms of wizards, startup scripts, etc, has manned a maemo.org/Mer table at LinuxFest Northwest 2009 with great results and networking, etc.)

Fitting with goals: 
* Control panels: 10
* Developer tools: 4 (OBS &amp; their cross-compilation has the potential of revolutionizing Mer and Maemo development)
* Artwork and UI: 5 (improving control panel &amp; tablet behaviour)
* Hardware interfacing: 5 (control panels often interface with hardware such as backlight, etc)
* maemo.org integration: 10 (work on integrating maemo.org extras seamlessly)
* Maemo5+Nokia apps integration: 5 (work on integrating maemo.org extras seamlessly)
* Chasing showstoppers: 0
* Presentations to developers: 4 (multi-device potential: zaurus/wii)
* Getting developers together (Design, planning, discussion): 10 (Getting two Mer lead developers together for the first time, interaction with lbt on OBS &amp; Maemo Extras)

Total points: 70 out of 110 - John Bloom would be a valuable contributor to the danish weekend, and it would be good to finally meet someone I've cooperated with since the very beginning to make both the Deblet and Mer project a reality.

=== Localization environment ===

'''Nickname:''' claudius

'''Real name:''' Claudius Henrichs

'''Affiliation and country of residence:''' NA, Germany

'''Areas of interest and expertises:''' Localization

'''What you hope to accomplish on the 30th and 31th May 2009'''

Settling the terms and work-flow for localization of and glossary-creation for Mer and it's tools and in preparation for Harmattan.

'''Who do you hope to cooperate with to get this accomplished'''

Mer developers present.

'''Presentations'''

If I get a test environment setup until then I would present it.

'''Reference from Stskeeps'''

-

=== Getting to know Mer a bit better ===

'''Nickname:'''
jeremiah

'''Real name: '''
Jeremiah C. Foster
'''Affiliation and country of residence: '''
Maemo debmaster, Sweden

'''Areas of interest and expertises: '''
hacking, perl, packaging, beer

'''What you hope to accomplish on the 30th and 31th May 2009: '''
Get to know the community, get more involved with mer

'''Who do you hope to cooperate with to get this accomplished'''

STSkeeps, JohnX

'''Presentations'''
None at this point

'''Reference from Stskeeps'''
I will be paying for my own travel.

-</text>
    </revision>
  </page>
  <page>
    <title>Mer/Hardware/Freerunner</title>
    <id>2224</id>
    <revision>
      <id>15756</id>
      <timestamp>2009-07-18T15:27:30Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>[[Mer/Hardware/Freerunner]] moved to [[Mer/Status/FreeRunner]]: all the /Status stuff is about HW</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Status/FreeRunner]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Hardware/Freerunner</title>
    <id>2224</id>
    <revision>
      <id>15756</id>
      <timestamp>2009-07-18T15:27:30Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>[[Mer/Hardware/Freerunner]] moved to [[Mer/Status/FreeRunner]]: all the /Status stuff is about HW</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Status/FreeRunner]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Hardware/Freerunner</title>
    <id>2224</id>
    <revision>
      <id>15756</id>
      <timestamp>2009-07-18T15:27:30Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>[[Mer/Hardware/Freerunner]] moved to [[Mer/Status/FreeRunner]]: all the /Status stuff is about HW</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Status/FreeRunner]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Hardware/Freerunner</title>
    <id>2224</id>
    <revision>
      <id>15756</id>
      <timestamp>2009-07-18T15:27:30Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>[[Mer/Hardware/Freerunner]] moved to [[Mer/Status/FreeRunner]]: all the /Status stuff is about HW</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Status/FreeRunner]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Hardware/SmartQ5</title>
    <id>2225</id>
    <revision>
      <id>15758</id>
      <timestamp>2009-07-18T15:30:00Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>[[Mer/Hardware/SmartQ5]] moved to [[Mer/Status/SmartQ5]]: keep all the /Status HW together</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Status/SmartQ5]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Hardware/SmartQ5</title>
    <id>2225</id>
    <revision>
      <id>15758</id>
      <timestamp>2009-07-18T15:30:00Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>[[Mer/Hardware/SmartQ5]] moved to [[Mer/Status/SmartQ5]]: keep all the /Status HW together</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Status/SmartQ5]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Hardware/SmartQ5/XAA</title>
    <id>2226</id>
    <revision>
      <id>15761</id>
      <timestamp>2009-07-18T15:32:21Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>[[Mer/Hardware/SmartQ5/XAA]] moved to [[Mer/Status/SmartQ5/XAA]]: keep the /Status for Hardware together</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Status/SmartQ5/XAA]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Headset switch events</title>
    <id>1961</id>
    <revision>
      <id>38893</id>
      <timestamp>2010-09-22T09:47:17Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

On Maemo 4, this can be triggered by plugging in the headphone that has been supplied with the N8x0 tablet and then running:

 dbus-monitor --system

Pressing the button should result in the following D-Bus signal to be sent:

 signal sender=:1.1 -&gt; dest=(null destination) path=/org/freedesktop/Hal/devices/platform_retu_headset_logicaldev_input; interface=org.freedesktop.Hal.Device; member=Condition
    string &quot;ButtonPressed&quot;
    string &quot;phone&quot;

This is used by several media players (e.g. Panucci) to support Play/Pause or Next Track from the headphone switch.

Examples of standalone programs:
# http://talk.maemo.org/showthread.php?p=194256 - HeadsetControl - a python program that monitors DBus for this signal and runs an arbitrary, user-specified, command.
# https://bugs.maemo.org/attachment.cgi?id=1131 - a C program, by Santtu Lakkala (inz), that monitors DBus and pauses the built in [Maemo] media player, again, using DBus.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Kernel</title>
    <id>2419</id>
    <revision>
      <id>38946</id>
      <timestamp>2010-09-22T10:57:21Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Mer has a kernel based on the SmartQ kernel, with some useful custom patches.
 
== Target-specific pages ==

* [[Mer/Kernel/SmartQ|SmartQ kernel]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Kernel/SmartQ</title>
    <id>2420</id>
    <revision>
      <id>38992</id>
      <timestamp>2010-09-22T12:27:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

The currently used kernel for Mer is available [http://gitorious.org/mer-smartq/mer-smartq-kernel/commits/Mer here]. This is 2.6.24 + Samsung patches + Smartdevices patch + Mer fixes.

mcuelenaere tried porting newer Linux kernels to the Smartq Q7 (Q5 isn't supported in these yet):
* [http://gitorious.org/mcuelenaere-smartq-kernel/mcuelenaere-smartq-kernel/commits/experimental-2.6.28 2.6.28]: this is based on [http://git.kernel.org/?p=linux/kernel/git/kki_ap/samsung-ap-2.6.git;a=summary kki_ap/samsung-ap-2.6] with parts of the original Smartdevices patches applied (doesn't boot currently)
* [http://gitorious.org/mcuelenaere-smartq-kernel/mcuelenaere-smartq-kernel/commits/experimental-2.6.31 2.6.31]: this is based on mainline and is mostly written from scratch (based on the Smartdevices patches)
* [http://gitorious.org/mcuelenaere-smartq-kernel/mcuelenaere-smartq-kernel/commits/experimental-2.6.31-linux-2.6-samsung 2.6.31-samsung]: this is the tree above, rebased on [http://git.kernel.org/?p=linux/kernel/git/kki_ap/linux-2.6-samsung.git;a=summary kki_ap/linux-2.6-samsung]


Currently there are more patches posted at the linux-arm-kernel ml (look for @samsung.com mails), which don't seem to have a public git tree; and thus these aren't integrated in any of the trees above.

The newer Linux kernels don't have all the Samsung drivers ported/integrated yet, so either these need to be &quot;forward&quot;-ported or redone from scratch (or wait till the patches at linux-arm-kernel get integrated into mainline).</text>
    </revision>
  </page>
  <page>
    <title>Mer/LXDE</title>
    <id>1647</id>
    <revision>
      <id>27985</id>
      <timestamp>2010-02-01T20:36:04Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Mer/Documentation/LXDE]]</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Documentation/LXDE]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/LXDE/InstallOn0.7</title>
    <id>1648</id>
    <revision>
      <id>38947</id>
      <timestamp>2010-09-22T10:57:54Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

This Page No Longer Updated Since Release of [[Mer]] Version 0.8 - see [[../InstallOn0.8]] 

~~Warning: If you want to see login screen your user name and your password can not have any numbers or symbols in it. Make sure you change then before installing lxde or you will have to chroot in from your maemo install and change them. You have been warned.

~~Warning: I take no responsibility if you break your system or the sky falls down. Do this at your own risk or you will be reinstalling Mer.

&lt;br&gt;
First Load your Mer Partition and Open x terminal.

Then enter each of these commands one at a time


 sudo apt-get update
 
 sudo apt-get install synaptic
 
 sudo apt-get install onboard


~~N810 Users Who want Login Screen (if you plan on using both Hildon and LXDE you must install with this option.)

 sudo apt-get install lxde

~~N800, 770 and N810 users who don't want login screen.

 sudo apt-get --no-install-recommends install lxde libgtkstylus
 
 echo &quot;exec startlxde&quot; &gt;&gt; ~/.xinitrc

If you want to use lxlauncher to easy opening of applications

 sudo apt-get install lxlauncher

Then type this to reboot your system.

 sudo reboot

Choose Mer partition again and it should ubuntu login window.

login using the username and password you made when installing Mer

**I hope you remembered to remove any numbers or symbols from them if not I will tell you have to chroot in later and fix this.

Once you have loaded Mer/LXDE then we need to make a few changes to make everything better first to connect to network.

Click Application Menu 

Click Run then type.

 nm-applet

Choose your network and logon.

Now using an FTP client on a desktop computer login to your Tablet using your root information

~~If you did not install ssh server when installing Mer you will need to install it first.
Download folder and put the files in the following locations.

/usr/share/applications
*nmapplet
*onboard
*nmconnection
*lxlauncher

/etc/xdg/autostart
*nmapplet
*lxlauncher (if you want it to load at startup)

Now you should have a working install of LXDE on top of your Mer open synaptic and install any applications you want. Also if you want to skip the login screen from now on Click Application Menu -&gt; Settings -&gt; Login Window.

Click Security tab and Enable Automatic Login then enter your users name there.

If you want to be able to load either Hildon or LXDE then follow these steps.

Load Mer and ftp in.

Copy this file to /usr/share/xsessions
hildon.desktop

Then Logout and click Options -&gt; Select Session -&gt; Hildon -&gt; Change Session

Then Login and you will load Hildon instead of LXDE for this session ou can set Hildon as your default and use same way to load LXDE when you want. 

~~To Log out of Hildon Click Advanced Backlight and then Click any Rotation option.

Let me know if you run into any problems with anything. I am also working on a custom LXDE layout to organize the programs a little better. I will be posting that soon.

Thanks: Thanks to Stskeeps, Qwerty12, B-man, Qole,FatalSaint for helping out with this.</text>
    </revision>
  </page>
  <page>
    <title>Mer/LXDE/InstallOn0.8</title>
    <id>1646</id>
    <revision>
      <id>38993</id>
      <timestamp>2010-09-22T12:28:37Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

~~Warning: If you want to see login screen your user name and your password can not have any numbers or symbols in it. Make sure you change then before installing lxde or you will have to chroot in from your maemo install and change them. You have been warned.

~~Warning: I take no responsibility if you break your system or the sky falls down. Do this at your own risk or you will be reinstalling Mer.

&lt;br&gt;
First Load your Mer Partition and Open x terminal.

Then enter each of these commands one at a time


 sudo apt-get update
 
 sudo apt-get -t jaunty install libvte9
 
 sudo apt-get install synaptic
 
 sudo apt-get install onboard


~~N810 Users Who want Login Screen (if you plan on using both Hildon and LXDE you must install with this option.)

 sudo apt-get install lxde

~~N800, 770 and N810 users who don't want login screen.

 sudo apt-get --no-install-recommends install lxde libgtkstylus
 
 echo &quot;exec startlxde&quot; &gt;&gt; ~/.xinitrc

If you want to use lxlauncher to easy opening of applications

 sudo apt-get install lxlauncher

Then type this to reboot your system.

 sudo reboot

Choose Mer partition again and it should ubuntu login window.

login using the username and password you made when installing Mer

**I hope you remembered to remove any numbers or symbols from them if not I will tell you have to chroot in later and fix this.

Once you have loaded Mer/LXDE then we need to make a few changes to make everything better first to connect to network.

Click Application Menu 

Click Run then type.

 nm-applet

Choose your network and logon.

Now using an FTP client on a desktop computer login to your Tablet using your root information

~~If you did not install ssh server when installing Mer you will need to install it first.
Download folder and put the files in the following locations.

/usr/share/applications
*nmapplet
*onboard
*nmconnection
*lxlauncher

/etc/xdg/autostart
*nmapplet
*lxlauncher (if you want it to load at startup)

Now you should have a working install of LXDE on top of your Mer open synaptic and install any applications you want. Also if you want to skip the login screen from now on Click Application Menu -&gt; Settings -&gt; Login Window.

Click Security tab and Enable Automatic Login then enter your users name there.

If you want to be able to load either Hildon or LXDE then follow these steps.

Load Mer and ftp in.

Copy this file to /usr/share/xsessions
hildon.desktop

Then Logout and click Options -&gt; Select Session -&gt; Hildon -&gt; Change Session

Then Login and you will load Hildon instead of LXDE for this session ou can set Hildon as your default and use same way to load LXDE when you want. 

~~To Log out of Hildon Click Advanced Backlight and then Click any Rotation option.

Let me know if you run into any problems with anything. I am also working on a custom LXDE layout to organize the programs a little better. I will be posting that soon.

Thanks: Thanks to Stskeeps, Qwerty12, B-man, Qole,FatalSaint for helping out with this.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Marketing</title>
    <id>2007</id>
    <revision>
      <id>40263</id>
      <timestamp>2010-11-22T16:37:25Z</timestamp>
      <contributor>
        <ip>71.181.41.95</ip>
      </contributor>
      <comment>/* Inventory Status */</comment>
      <text xml:space="preserve">{{Mer}}

===Mer-branded promotional badges===

====Description====
Badges are 3.18cm by 2.5cm (1.25 inch by 1 inch) with the Mer logo as seen on the desktop background, with that same blue gradient background.  They fit nicely on the back of any Nokia Internet Tablet or on any laptop or desktop computer.  Stylish way to let everyone know your tablet computer is Maemo Reloaded!  The material is vinyl so badges should not fade or tear, like paper ones.
[[Image:Mer-badges.jpeg|thumb|Mer Project Case Badges]]&lt;br / &gt;

====Inventory Status====
Offer no longer available.

====Ordering Information====
Get '''twenty badges for 5 USD''' - check, money order, or dollar bills.&lt;br /&gt; Also include a [http://en.wikipedia.org/wiki/Self-addressed_stamped_envelope Self-Addressed Stamped Envelope] for shipment.  Offer no longer available.

International orders should include funds for shipping and handling, instead of the SASE postage.  Do include a return-addressed envelope.

Proceeds go toward additional Mer Project marketing efforts, such as exhibitor table fees.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Media</title>
    <id>1838</id>
    <revision>
      <id>38948</id>
      <timestamp>2010-09-22T10:59:04Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

===Description===
In an effort to publicize the Mer project, this page has been created to answer many FAQs regarding media publication.

===Formats and Copyrights===
When creating media assets, such as text, pictures, or videos, use open formats and use a permissive copyright license.  For example, uploading a video to YouTube locks that content away in a closed Flash Video format and restricts distribution with YouTube's copyright terms of use.  Instead, use BLIP.tv or another web hosting provider that can host the media files without restrictions.  Use YouTube only as a secondary publication method.

We want your media used!  Bloggers, journalists, and other people promoting Mer are all looking for media to include with their stories.  By making your copyright license visible and easily fulfilled, you can help these people use your media, in their stories.

====Images====
Use either watermarking or exif tags to show your copyright license.  Use a Creative Commons license, since these are legally stronger than a &quot;Public Domain License&quot; which is not valid in many counties.  If you require attribution, then provide that information.  Make it easy for people to use your work.  If in doubt, then use CC-SA ([http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Share-Alike]) which is very permissive.

====Videos====
Add text to your video showing which copyright license is used, or use meta-data tags to show your copyright license.  Again, if you require attribution, then give this information.  If in doubt to what license to use, then use [http://creativecommons.org/licenses/by-sa/3.0/ CC-SA] (see above).  One solution to open file distribution is hosting your file on BLIP.tv in Ogg Theora format (use [http://v2v.cc/~j/ffmpeg2theora ffmpeg2theora] to convert it from your existing format).  Using Ogg Theora ensures that it can be used in HTML5 video webpages, and that open format can be converted to a more restricted format or web service.

===Press Releases===
Use this section to discuss and link to Mer press releases.  Create templates that can be used over and over again.

===List of Media Files===
Made your media available online?  List it below so it can be included in future Mer press releases!
====Video====
*[http://blip.tv/file/get/Hampton-Mer012XorgWithFbdevDriver431.ogg Mer 0.12 :: Xorg with fbdev driver] : License - Creative Commons Share-a-like v3.0
*[http://blip.tv/file/get/Hampton-KDE421RunningOnNokiaN810235.ogg KDE 4.2.1 running on Nokia n810] : License - Creative Commons Share-a-like v3.0

====Images====
*[http://bsd.tspre.org/~stskeeps/nokia-n800-smartq.html N800 and SmartQ] : License - Creative Commons Share-a-like v3.0

===Mer in the News===
[http://mobiletablets.blogspot.com/2009/05/mer-for-nokia-internet-tablets.html May 2009 Interview]

Possibly a list of all websites mentioning Mer needs a separate page?</text>
    </revision>
  </page>
  <page>
    <title>Mer/Nokia wishlist</title>
    <id>1495</id>
    <revision>
      <id>46954</id>
      <timestamp>2012-03-10T13:08:46Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/122.52.12.162|122.52.12.162]] ([[User talk:122.52.12.162|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">{{Mer}}

This list is not exclusive. File names are only included as a pointer towards the software we're interested in.

==What we need:==
===N800/N810===
low-level / hardware support
* wifi 'cal' - libcal.so.0.3.0 /mnt/initfs/usr/bin/wlan-cal
* wifi firmware: 3826.arm ( 3825.arm ?)
* Battery Monitoring Entity - /mnt/initfs/usr/bin/bme_RX-{34,44,48}
* dsme and related modules - /mnt/initfs/usr/sbin/dsmetool /mnt/initfs/usr/lib/dsme/lib/dsme/* libdsme.so.0.1.0
* bluetooth firmware: bc4fw.bin
* DSP tasks and related software
* Any libraries required to use DSP-based sound output

===770===
low-level / hardware
* wifi firmware / wifi drivers
* bme
* dsme and related modules
* bluetooth firmware: brf6150fw.bin

==What we'd like:==
* flash
* skype
* gizmo5 
* map
* better alarm clock
* Possibility to install to Nokia E90 Communicator  (since end of life cycle)</text>
    </revision>
  </page>
  <page>
    <title>Mer/Packages</title>
    <id>2033</id>
    <revision>
      <id>38895</id>
      <timestamp>2010-09-22T09:51:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

This area is intended to give an overview of the packages included in the various Mer areas and to link to specific package projects.

==Packages in the Mer Development area.==

Each page is automatically generated from the OBS descriptions using the osc plugin at Maemo:Mer:Tools/bin/lspkg.py

You can find the Mer SDK at [[../Build/SDK | Maemo:Mer:Tools/SDK]]

* [[/Maemo:Mer:Devel:Apps|Maemo:Mer:Devel:Apps]]
Applications that are part of the core Mer distro (eg filemangager, email etc)
* [[/Maemo:Mer:Devel:Base|Maemo:Mer:Devel:Base]]
Packages which deals with the underlying functionality of Mer
that isn't directly presented to the user, such as booting,
networking, logging, rescue, generic X support.
* [[/Maemo:Mer:Devel:MaemoCommon|Maemo:Mer:Devel:MaemoCommon]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n|Maemo:Mer:Devel:MaemoCommon:L10n]]
These packages should ideally be unmodified from the upstream Maemo and hildon projects.
* [[/Maemo:Mer:Devel:Qt|Maemo:Mer:Devel:Qt]]
The Qt libraries for Mer; as close as possible to the current Hildon branch.
* [[/Maemo:Mer:Devel:UI|Maemo:Mer:Devel:UI]]
Packages which deals with presenting the Hildon Desktop and the
Mer UI, and generic functionality across platforms
* [[/Maemo:Mer:Devel:Unmodified|Maemo:Mer:Devel:Unmodified]]
Any package that has no Mer patch and isn't in main upstream goes into MMDU if it's needed for build-depend
Nb these packages are built against Mer and will typically be libraries found in Ubuntu Universe

The following projects contain hardware specific packages:
* [[/Maemo:Mer:Devel:HW:N8x0|Maemo:Mer:Devel:HW:N8x0]]
* [[/Maemo:Mer:Devel:HW:Freerunner|Maemo:Mer:Devel:HW:Freerunner]]
* [[/Maemo:Mer:Devel:HW:SmartQ|Maemo:Mer:Devel:HW:SmartQ]]
* [[/Maemo:Mer:Devel:HW:Beagle|Maemo:Mer:Devel:HW:Beagle]]

== Package Projects ==

* [[/powerlaunch|powerlaunch]] links behaviour to events. Eg connect system.idle_notify -&gt; screen.dim
* [[/python | Python]] related projects 

== All Packages ==
This section is generated by running:
  osc lspkg -t Maemo:Mer:Devel:Apps Maemo:Mer:Devel:Base  Maemo:Mer:Devel:MaemoCommon Maemo:Mer:Devel:MaemoCommon:L10n Maemo:Mer:Devel:Qt Maemo:Mer:Devel:UI Maemo:Mer:Devel:Unmodified Maemo:Mer:Devel:HW:N8x0 Maemo:Mer:Devel:HW:Freerunner Maemo:Mer:Devel:HW:SmartQ Maemo:Mer:Devel:HW:Beagle

* [[/Maemo:Mer:Devel:Apps#blueman|blueman]]
* [[/Maemo:Mer:Devel:Apps#claws-mail|claws-mail]]
* [[/Maemo:Mer:Devel:Apps#finefm|finefm]]
* [[/Maemo:Mer:Devel:Apps#galculator|galculator]]
* [[/Maemo:Mer:Devel:Apps#gconf-editor|gconf-editor]]
* [[/Maemo:Mer:Devel:Apps#gpicview|gpicview]]
* [[/Maemo:Mer:Devel:Apps#homeip|homeip]]
* [[/Maemo:Mer:Devel:Apps#large-statusbar-clock|large-statusbar-clock]]
* [[/Maemo:Mer:Devel:Apps#maemopadplus|maemopadplus]]
* [[/Maemo:Mer:Devel:Apps#midori|midori]]
* [[/Maemo:Mer:Devel:Apps#mirage|mirage]]
* [[/Maemo:Mer:Devel:Apps#osso-xterm|osso-xterm]]
* [[/Maemo:Mer:Devel:Apps#personal-launch|personal-launch]]
* [[/Maemo:Mer:Devel:Apps#pidgin|pidgin]]
* [[/Maemo:Mer:Devel:Apps#tear|tear]]
* [[/Maemo:Mer:Devel:Apps#vala|vala]]
* [[/Maemo:Mer:Devel:Apps#vte|vte]]
* [[/Maemo:Mer:Devel:Apps#webkit|webkit]]
* [[/Maemo:Mer:Devel:Apps#xchat|xchat]]
* [[/Maemo:Mer:Devel:Base#advanced-power-monitor|advanced-power-monitor]]
* [[/Maemo:Mer:Devel:Base#apt|apt]]
* [[/Maemo:Mer:Devel:Base#auto-startx|auto-startx]]
* [[/Maemo:Mer:Devel:Base#base64|base64]]
* [[/Maemo:Mer:Devel:Base#build|build]]
* [[/Maemo:Mer:Devel:Base#circular-syslogd|circular-syslogd]]
* [[/Maemo:Mer:Devel:Base#cnetworkmanager|cnetworkmanager]]
* [[/Maemo:Mer:Devel:Base#core-pattern|core-pattern]]
* [[/Maemo:Mer:Devel:Base#docpurge|docpurge]]
* [[/Maemo:Mer:Devel:Base#evkey|evkey]]
* [[/Maemo:Mer:Devel:Base#hal|hal]]
* [[/Maemo:Mer:Devel:Base#libxsp|libxsp]]
* [[/Maemo:Mer:Devel:Base#mer-platform|mer-platform]]
* [[/Maemo:Mer:Devel:Base#ohm|ohm]]
* [[/Maemo:Mer:Devel:Base#osc|osc]]
* [[/Maemo:Mer:Devel:Base#prelink|prelink]]
* [[/Maemo:Mer:Devel:Base#pulseaudio|pulseaudio]]
* [[/Maemo:Mer:Devel:Base#sudo|sudo]]
* [[/Maemo:Mer:Devel:Base#tslib|tslib]]
* [[/Maemo:Mer:Devel:Base#upstart|upstart]]
* [[/Maemo:Mer:Devel:Base#utelnetd|utelnetd]]
* [[/Maemo:Mer:Devel:Base#waitdbus|waitdbus]]
* [[/Maemo:Mer:Devel:Base#x11proto-xsp|x11proto-xsp]]
* [[/Maemo:Mer:Devel:Base#xf86-input-tslib|xf86-input-tslib]]
* [[/Maemo:Mer:Devel:Base#xkeyboard-config|xkeyboard-config]]
* [[/Maemo:Mer:Devel:Base#xresponse-visualize|xresponse-visualize]]
* [[/Maemo:Mer:Devel:MaemoCommon#alarmd|alarmd]]
* [[/Maemo:Mer:Devel:MaemoCommon#certman|certman]]
* [[/Maemo:Mer:Devel:MaemoCommon#clinkc|clinkc]]
* [[/Maemo:Mer:Devel:MaemoCommon#clipboard-manager|clipboard-manager]]
* [[/Maemo:Mer:Devel:MaemoCommon#dbus-glib|dbus-glib]]
* [[/Maemo:Mer:Devel:MaemoCommon#dsme|dsme]]
* [[/Maemo:Mer:Devel:MaemoCommon#email-providers-data|email-providers-data]]
* [[/Maemo:Mer:Devel:MaemoCommon#enca|enca]]
* [[/Maemo:Mer:Devel:MaemoCommon#epeg|epeg]]
* [[/Maemo:Mer:Devel:MaemoCommon#gail|gail]]
* [[/Maemo:Mer:Devel:MaemoCommon#gconf2|gconf2]]
* [[/Maemo:Mer:Devel:MaemoCommon#glib2.0|glib2.0]]
* [[/Maemo:Mer:Devel:MaemoCommon#gnome-vfs-filechooser-backend|gnome-vfs-filechooser-backend]]
* [[/Maemo:Mer:Devel:MaemoCommon#gtk+2.0|gtk+2.0]]
* [[/Maemo:Mer:Devel:MaemoCommon#gtkhtml|gtkhtml]]
* [[/Maemo:Mer:Devel:MaemoCommon#hildon-application-manager|hildon-application-manager]]
* [[/Maemo:Mer:Devel:MaemoCommon#hildon-control-panel|hildon-control-panel]]
* [[/Maemo:Mer:Devel:MaemoCommon#hildon-games-wrapper|hildon-games-wrapper]]
* [[/Maemo:Mer:Devel:MaemoCommon#hildon-input-method|hildon-input-method]]
* [[/Maemo:Mer:Devel:MaemoCommon#hildon-input-method-framework|hildon-input-method-framework]]
* [[/Maemo:Mer:Devel:MaemoCommon#hildon-notify|hildon-notify]]
* [[/Maemo:Mer:Devel:MaemoCommon#hildon-theme-cacher|hildon-theme-cacher]]
* [[/Maemo:Mer:Devel:MaemoCommon#hildon-theme-tools|hildon-theme-tools]]
* [[/Maemo:Mer:Devel:MaemoCommon#hildon-thumbnail|hildon-thumbnail]]
* [[/Maemo:Mer:Devel:MaemoCommon#icd2-osso-ic-dev|icd2-osso-ic-dev]]
* [[/Maemo:Mer:Devel:MaemoCommon#libconbtui|libconbtui]]
* [[/Maemo:Mer:Devel:MaemoCommon#libconic|libconic]]
* [[/Maemo:Mer:Devel:MaemoCommon#libdb1|libdb1]]
* [[/Maemo:Mer:Devel:MaemoCommon#libhildon|libhildon]]
* [[/Maemo:Mer:Devel:MaemoCommon#libhildondesktop|libhildondesktop]]
* [[/Maemo:Mer:Devel:MaemoCommon#libhildonfm|libhildonfm]]
* [[/Maemo:Mer:Devel:MaemoCommon#libhildonmime|libhildonmime]]
* [[/Maemo:Mer:Devel:MaemoCommon#libnotify|libnotify]]
* [[/Maemo:Mer:Devel:MaemoCommon#libosso|libosso]]
* [[/Maemo:Mer:Devel:MaemoCommon#libosso-gsf|libosso-gsf]]
* [[/Maemo:Mer:Devel:MaemoCommon#libsoup2.4|libsoup2.4]]
* [[/Maemo:Mer:Devel:MaemoCommon#loudmouth|loudmouth]]
* [[/Maemo:Mer:Devel:MaemoCommon#maemo-launcher|maemo-launcher]]
* [[/Maemo:Mer:Devel:MaemoCommon#maemo-launcher-dev|maemo-launcher-dev]]
* [[/Maemo:Mer:Devel:MaemoCommon#maemopad|maemopad]]
* [[/Maemo:Mer:Devel:MaemoCommon#mce-dev|mce-dev]]
* [[/Maemo:Mer:Devel:MaemoCommon#microb-engine|microb-engine]]
* [[/Maemo:Mer:Devel:MaemoCommon#modest|modest]]
* [[/Maemo:Mer:Devel:MaemoCommon#osso-af-settings|osso-af-settings]]
* [[/Maemo:Mer:Devel:MaemoCommon#osso-af-utils|osso-af-utils]]
* [[/Maemo:Mer:Devel:MaemoCommon#osso-gnome-vfs2|osso-gnome-vfs2]]
* [[/Maemo:Mer:Devel:MaemoCommon#osso-gnomevfs-extra|osso-gnomevfs-extra]]
* [[/Maemo:Mer:Devel:MaemoCommon#osso-gwconnect|osso-gwconnect]]
* [[/Maemo:Mer:Devel:MaemoCommon#osso-gwobex|osso-gwobex]]
* [[/Maemo:Mer:Devel:MaemoCommon#osso-systemui-dbus-dev|osso-systemui-dbus-dev]]
* [[/Maemo:Mer:Devel:MaemoCommon#sapwood|sapwood]]
* [[/Maemo:Mer:Devel:MaemoCommon#screenshot-tool|screenshot-tool]]
* [[/Maemo:Mer:Devel:MaemoCommon#statusbar-alarm-dbus-api|statusbar-alarm-dbus-api]]
* [[/Maemo:Mer:Devel:MaemoCommon#tablet-browser-interface|tablet-browser-interface]]
* [[/Maemo:Mer:Devel:MaemoCommon#telepathy-farsight|telepathy-farsight]]
* [[/Maemo:Mer:Devel:MaemoCommon#telepathy-gabble|telepathy-gabble]]
* [[/Maemo:Mer:Devel:MaemoCommon#telepathy-glib|telepathy-glib]]
* [[/Maemo:Mer:Devel:MaemoCommon#telepathy-mission-control|telepathy-mission-control]]
* [[/Maemo:Mer:Devel:MaemoCommon#tinymail|tinymail]]
* [[/Maemo:Mer:Devel:MaemoCommon#tracker|tracker]]
* [[/Maemo:Mer:Devel:MaemoCommon#wpeditor|wpeditor]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#gtk20-l10n|gtk20-l10n]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#hildon-application-manager-l10n-public|hildon-application-manager-l10n-public]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#hildon-application-manager-l10n-public-enus1|hildon-application-manager-l10n-public-enus1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#hildon-application-manager-l10n-public-zhcn1|hildon-application-manager-l10n-public-zhcn1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#hildon-common-strings-l10n-public|hildon-common-strings-l10n-public]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#hildon-common-strings-l10n-public-enus1|hildon-common-strings-l10n-public-enus1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#hildon-common-strings-l10n-public-zhcn1|hildon-common-strings-l10n-public-zhcn1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#hildon-control-panel-l10n-public|hildon-control-panel-l10n-public]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#hildon-control-panel-l10n-public-enus1|hildon-control-panel-l10n-public-enus1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#hildon-control-panel-l10n-public-zhcn1|hildon-control-panel-l10n-public-zhcn1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#hildon-fm-l10n-public|hildon-fm-l10n-public]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#hildon-fm-l10n-public-enus1|hildon-fm-l10n-public-enus1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#hildon-fm-l10n-public-zhcn1|hildon-fm-l10n-public-zhcn1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#hildon-input-method-l10n-public|hildon-input-method-l10n-public]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#hildon-input-method-l10n-public-enus1|hildon-input-method-l10n-public-enus1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#hildon-input-method-l10n-public-zhcn1|hildon-input-method-l10n-public-zhcn1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#hildon-libs-l10n-public|hildon-libs-l10n-public]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#hildon-libs-l10n-public-enus1|hildon-libs-l10n-public-enus1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#hildon-libs-l10n-public-zhcn1|hildon-libs-l10n-public-zhcn1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#ke-recv-l10n-public|ke-recv-l10n-public]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#ke-recv-l10n-public-enus1|ke-recv-l10n-public-enus1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#ke-recv-l10n-public-zhcn1|ke-recv-l10n-public-zhcn1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#maemo-af-desktop-l10n-public|maemo-af-desktop-l10n-public]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#maemo-af-desktop-l10n-public-enus1|maemo-af-desktop-l10n-public-enus1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#maemo-af-desktop-l10n-public-zhcn1|maemo-af-desktop-l10n-public-zhcn1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#marketing-release-public|marketing-release-public]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#osso-applet-tasknavigator-l10n-public|osso-applet-tasknavigator-l10n-public]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#osso-games-l10n-public-enus1|osso-games-l10n-public-enus1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#osso-games-l10n-public-zhcn1|osso-games-l10n-public-zhcn1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#osso-system-lock-l10n-public|osso-system-lock-l10n-public]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#osso-system-lock-l10n-public-enus1|osso-system-lock-l10n-public-enus1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#osso-system-lock-l10n-public-zhcn1|osso-system-lock-l10n-public-zhcn1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#osso-uri-l10n-public|osso-uri-l10n-public]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#osso-uri-l10n-public-enus1|osso-uri-l10n-public-enus1]]
* [[/Maemo:Mer:Devel:MaemoCommon:L10n#osso-uri-l10n-public-zhcn1|osso-uri-l10n-public-zhcn1]]
* [[/Maemo:Mer:Devel:Qt#qt-maemo-example|qt-maemo-example]]
* [[/Maemo:Mer:Devel:Qt#qt4-x11|qt4-x11]]
* [[/Maemo:Mer:Devel:Qt#qtablet|qtablet]]
* [[/Maemo:Mer:Devel:Qt#qtanimationframework|qtanimationframework]]
* [[/Maemo:Mer:Devel:Qt#qtmapper|qtmapper]]
* [[/Maemo:Mer:Devel:Qt#qtmeetings|qtmeetings]]
* [[/Maemo:Mer:Devel:Qt#quickclip|quickclip]]
* [[/Maemo:Mer:Devel:Qt#quicknote|quicknote]]
* [[/Maemo:Mer:Devel:Qt#shopper|shopper]]
* [[/Maemo:Mer:Devel:UI#advanced-power|advanced-power]]
* [[/Maemo:Mer:Devel:UI#first-boot-wizard|first-boot-wizard]]
* [[/Maemo:Mer:Devel:UI#freemantle-icons|freemantle-icons]]
* [[/Maemo:Mer:Devel:UI#hildon-cpa-dummy|hildon-cpa-dummy]]
* [[/Maemo:Mer:Devel:UI#hildon-desktop|hildon-desktop]]
* [[/Maemo:Mer:Devel:UI#hildon-desktop-env|hildon-desktop-env]]
* [[/Maemo:Mer:Devel:UI#hildon-desktop-layout-alpha|hildon-desktop-layout-alpha]]
* [[/Maemo:Mer:Devel:UI#hildon-home-weather|hildon-home-weather]]
* [[/Maemo:Mer:Devel:UI#hildon-icons|hildon-icons]]
* [[/Maemo:Mer:Devel:UI#hildon-initscripts|hildon-initscripts]]
* [[/Maemo:Mer:Devel:UI#hildon-input-method-plugins-example|hildon-input-method-plugins-example]]
* [[/Maemo:Mer:Devel:UI#hildon-locale-selector|hildon-locale-selector]]
* [[/Maemo:Mer:Devel:UI#hildon-plugins-settings|hildon-plugins-settings]]
* [[/Maemo:Mer:Devel:UI#hildon-polish-keyboard|hildon-polish-keyboard]]
* [[/Maemo:Mer:Devel:UI#hildon-theme-layout-mer|hildon-theme-layout-mer]]
* [[/Maemo:Mer:Devel:UI#hildon-theme-liberty-mer|hildon-theme-liberty-mer]]
* [[/Maemo:Mer:Devel:UI#hildon-theme-selector|hildon-theme-selector]]
* [[/Maemo:Mer:Devel:UI#hildon-theme-sumea-mer|hildon-theme-sumea-mer]]
* [[/Maemo:Mer:Devel:UI#him-arabic|him-arabic]]
* [[/Maemo:Mer:Devel:UI#liberty-sounds-ui|liberty-sounds-ui]]
* [[/Maemo:Mer:Devel:UI#libmatchbox1|libmatchbox1]]
* [[/Maemo:Mer:Devel:UI#load-applet|load-applet]]
* [[/Maemo:Mer:Devel:UI#marquee-plugins|marquee-plugins]]
* [[/Maemo:Mer:Devel:UI#matchbox-window-manager|matchbox-window-manager]]
* [[/Maemo:Mer:Devel:UI#mer-cpa-about|mer-cpa-about]]
* [[/Maemo:Mer:Devel:UI#mer-cpa-input|mer-cpa-input]]
* [[/Maemo:Mer:Devel:UI#network-manager-applet|network-manager-applet]]
* [[/Maemo:Mer:Devel:UI#noscreenblank|noscreenblank]]
* [[/Maemo:Mer:Devel:UI#powerlaunch|powerlaunch]]
* [[/Maemo:Mer:Devel:UI#pygtk|pygtk]]
* [[/Maemo:Mer:Devel:UI#python-conic|python-conic]]
* [[/Maemo:Mer:Devel:UI#python-hildon|python-hildon]]
* [[/Maemo:Mer:Devel:UI#python-hildondesktop|python-hildondesktop]]
* [[/Maemo:Mer:Devel:UI#python-launcher|python-launcher]]
* [[/Maemo:Mer:Devel:UI#python-osso|python-osso]]
* [[/Maemo:Mer:Devel:UI#statusbarapplets|statusbarapplets]]
* [[/Maemo:Mer:Devel:UI#ttf-droid|ttf-droid]]
* [[/Maemo:Mer:Devel:UI#ubuntulooks|ubuntulooks]]
* [[/Maemo:Mer:Devel:UI#zenity|zenity]]
* [[/Maemo:Mer:Devel:Unmodified#gst-plugins-base0.10|gst-plugins-base0.10]]
* [[/Maemo:Mer:Devel:Unmodified#gstreamer0.10|gstreamer0.10]]
* [[/Maemo:Mer:Devel:Unmodified#libelf|libelf]]
* [[/Maemo:Mer:Devel:Unmodified#libetpan|libetpan]]
* [[/Maemo:Mer:Devel:Unmodified#libgee|libgee]]
* [[/Maemo:Mer:Devel:Unmodified#mesa|mesa]]
* [[/Maemo:Mer:Devel:Unmodified#pygobject|pygobject]]
* [[/Maemo:Mer:Devel:Unmodified#vala|vala]]
* [[/Maemo:Mer:Devel:HW:N8x0#advanced-backlight|advanced-backlight]]
* [[/Maemo:Mer:Devel:HW:N8x0#advanced-power|advanced-power]]
* [[/Maemo:Mer:Devel:HW:N8x0#advanced-power-monitor|advanced-power-monitor]]
* [[/Maemo:Mer:Devel:HW:N8x0#alsa-plugins|alsa-plugins]]
* [[/Maemo:Mer:Devel:HW:N8x0#cs2005q3-toolchain|cs2005q3-toolchain]]
* [[/Maemo:Mer:Devel:HW:N8x0#cx3110x-module-src|cx3110x-module-src]]
* [[/Maemo:Mer:Devel:HW:N8x0#cx3110x-umac-module|cx3110x-umac-module]]
* [[/Maemo:Mer:Devel:HW:N8x0#cx3110x-umac-module-770|cx3110x-umac-module-770]]
* [[/Maemo:Mer:Devel:HW:N8x0#dsme-tools|dsme-tools]]
* [[/Maemo:Mer:Devel:HW:N8x0#hald-addon-bme|hald-addon-bme]]
* [[/Maemo:Mer:Devel:HW:N8x0#kernel-770|kernel-770]]
* [[/Maemo:Mer:Devel:HW:N8x0#kernel-diablo|kernel-diablo]]
* [[/Maemo:Mer:Devel:HW:N8x0#kernel-source-770|kernel-source-770]]
* [[/Maemo:Mer:Devel:HW:N8x0#kernel-source-diablo|kernel-source-diablo]]
* [[/Maemo:Mer:Devel:HW:N8x0#mer-omap-fb-splash|mer-omap-fb-splash]]
* [[/Maemo:Mer:Devel:HW:N8x0#mer-rescue-menu|mer-rescue-menu]]
* [[/Maemo:Mer:Devel:HW:N8x0#n810-slideout-kbd-xmodmap|n810-slideout-kbd-xmodmap]]
* [[/Maemo:Mer:Devel:HW:N8x0#network-manager|network-manager]]
* [[/Maemo:Mer:Devel:HW:N8x0#nit-bootmenu-compat|nit-bootmenu-compat]]
* [[/Maemo:Mer:Devel:HW:N8x0#nit-kernel-compat|nit-kernel-compat]]
* [[/Maemo:Mer:Devel:HW:N8x0#nokia-n8x0-firmware|nokia-n8x0-firmware]]
* [[/Maemo:Mer:Devel:HW:N8x0#nokia-tablets-pointercal|nokia-tablets-pointercal]]
* [[/Maemo:Mer:Devel:HW:N8x0#omap-fb-console|omap-fb-console]]
* [[/Maemo:Mer:Devel:HW:N8x0#omap-fb-tools|omap-fb-tools]]
* [[/Maemo:Mer:Devel:HW:N8x0#osso-dsp-loader|osso-dsp-loader]]
* [[/Maemo:Mer:Devel:HW:N8x0#pulseaudio|pulseaudio]]
* [[/Maemo:Mer:Devel:HW:N8x0#tablet-battery-monitor|tablet-battery-monitor]]
* [[/Maemo:Mer:Devel:HW:N8x0#tablet-sound|tablet-sound]]
* [[/Maemo:Mer:Devel:HW:N8x0#tablet-wireless|tablet-wireless]]
* [[/Maemo:Mer:Devel:HW:N8x0#usbnet-emergency-telnetd|usbnet-emergency-telnetd]]
* [[/Maemo:Mer:Devel:HW:N8x0#x11proto-xsp|x11proto-xsp]]
* [[/Maemo:Mer:Devel:HW:N8x0#xomap|xomap]]
* [[/Maemo:Mer:Devel:HW:N8x0#xserver-xorg-input-evdev|xserver-xorg-input-evdev]]
* [[/Maemo:Mer:Devel:HW:N8x0#xserver-xorg-video-omapfb|xserver-xorg-video-omapfb]]
* [[/Maemo:Mer:Devel:HW:Freerunner#linux-2.6-openmoko|linux-2.6-openmoko]]
* [[/Maemo:Mer:Devel:HW:Freerunner#xserver-xorg-video-glamo|xserver-xorg-video-glamo]]
* [[/Maemo:Mer:Devel:HW:SmartQ#hald-addon-smartq|hald-addon-smartq]]
* [[/Maemo:Mer:Devel:HW:SmartQ#kernel-smartq5|kernel-smartq5]]
* [[/Maemo:Mer:Devel:HW:SmartQ#kernel-smartq7|kernel-smartq7]]
* [[/Maemo:Mer:Devel:HW:SmartQ#kernel-source-smartq5|kernel-source-smartq5]]
* [[/Maemo:Mer:Devel:HW:SmartQ#mer-omap-fb-splash|mer-omap-fb-splash]]
* [[/Maemo:Mer:Devel:HW:SmartQ#omap-fb-tools|omap-fb-tools]]
* [[/Maemo:Mer:Devel:HW:SmartQ#smartq5-bootloader|smartq5-bootloader]]
* [[/Maemo:Mer:Devel:HW:SmartQ#smartq5-support|smartq5-support]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Packages/Apps</title>
    <id>2037</id>
    <revision>
      <id>22954</id>
      <timestamp>2009-11-18T19:24:21Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Mer/Packages/Maemo:Mer:Devel:Apps]]</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Packages/Maemo:Mer:Devel:Apps]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Packages/Maemo:Mer:Devel:Apps</title>
    <id>2047</id>
    <revision>
      <id>38949</id>
      <timestamp>2010-09-22T11:05:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

 osc lspkg  Maemo:Mer:Devel:Apps
==Maemo:Mer:Devel:Apps==
===blueman===
Blueman is a GTK+ Bluetooth Manager

Blueman is designed to be simple and intuitive for everyday bluetooth tasks such as:

* Connecting to 3G/EDGE/GPRS via DUN profile.
* Connecting to/Creating bluetooth networks
* Connecting to input devices
* Connecting to audio devices
* Sending/Receiving/Browsing files via OBEX
* Pairing

Blueman also integrates with Network Manager 0.7, making any Bluetooth Dialup/Network connections available (via HAL) to Network Manager. 

http://blueman-project.org/
===claws-mail===
Claws Mail is an email client (and news reader), based on GTK+, featuring

* Quick response
* Graceful, and sophisticated interface
* Easy configuration, intuitive operation
* Abundant features
* Extensibility
* Robustness and stability

The appearance and interface are designed to be familiar to new users coming from other popular email clients, as well as experienced users. Almost all commands are accessible with the keyboard.

The messages are managed in the standard MH format, which features fast access and data security. You'll be able to import your emails from almost any other email client, and export them just as easily.

http://www.claws-mail.org/
===finefm===
Open-source file manager for Maemo
Also supports Coda

http://finefm.org
===galculator===
galculator is a GTK 2 based calculator with ordinary notation/reverse polish notation, a formula entry mode, different number bases (DEC, HEX, OCT, BIN) and different units of angular measure (DEG, RAD, GRAD).

http://galculator.sourceforge.net/
===gconf-editor===
Hildonized GConf-Editor.
===gpicview===
None
===homeip===
HomeIP is a small widget which display your current IP on your desktop

http://maemo.org/downloads/product/OS2008/homeip/
===large-statusbar-clock===
Large Statusbar Clock sits in your statusbar and displays the time in either 24 hour format or AM/PM format (selectable by the user). You can launch the world clock, see the date, and select from a number of stylish colours and fonts.

https://garage.maemo.org/projects/statusbarclock
===maemopadplus===
The sample editor application from Maemo
===midori===
A WebKitGtk browser
===mirage===
Mirage is a fast and simple GTK+ image viewer.

http://mirageiv.berlios.de/
===osso-xterm===
Open source terminal application

https://garage.maemo.org/projects/osso-xterm
===personal-launch===
Personal Launcher provides a set of configurable desktop icons to launch applications right from your home screen.
A companion applet to Personal Menu.

https://garage.maemo.org/projects/personal-launch

===pidgin===
Pidgin for Mer.
===tear===
tear for Mer.
===vala===
vala for Mer
===vte===
A terminal widget implementation

http://library.gnome.org/devel/vte/unstable/
===webkit===
webkit for Mer.
===xchat===
XChat is an IRC chat program

http://www.xchat.org/</text>
    </revision>
  </page>
  <page>
    <title>Mer/Packages/Maemo:Mer:Devel:Base</title>
    <id>2048</id>
    <revision>
      <id>38896</id>
      <timestamp>2010-09-22T09:51:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

 osc lspkg  Maemo:Mer:Devel:Base==Maemo:Mer:Devel:Base==
===advanced-power-monitor===

Automatically generated description for advanced-power-monitor. Should come from debs?
    
===apt===
package management app
modified to add Maemo queuemode support and to identify to Nokia repos.
===auto-startx===
auto-startx
===base64===
dummy package needed to support Maemo packages
===build===
This package provides a script for building RPMs for SUSE Linux in a
chroot environment.

===circular-syslogd===
Supports circular log files
===cnetworkmanager===

Automatically generated description for cnetworkmanager. Should come from debs?
    
===core-pattern===

Automatically generated description for core-pattern. Should come from debs?
    
===docpurge===
Script to automatically purge any manpage and infopage after dpkg is called.
===evkey===

Automatically generated description for evkey. Should come from debs?
    
===hal===
Changes from upstream Ubuntu: (*) if not in patch/quilt form

Includes Nokia N8x0 specific HAL extensions (*)
Includes LED fix, bad author in changelog (*) 
===libxsp===

Automatically generated description for libxsp. Should come from debs?
    
===mer-platform===

A library for runtime detemination of the hardware
platform in use.
  
===ohm===
Open Hardware Manager

OHM is a small open source systems daemon which sits above HAL and
abstracts out common hardware management tasks.
    
http://gitorious.org/mer/ohm

===osc===
Commandline client for the openSUSE build service.

See http://en.opensuse.org/Build_Service/CLI , as well as
http://en.opensuse.org/Build_Service_Tutorial for a general
introduction.


Authors:
--------
    Peter Poeml &lt;poeml@suse.de&gt;



===prelink===
prelink is used to speed up the loading of dynamically linked executables.

This version is lightly modified to build for Mer
===pulseaudio===

Automatically generated description for pulseaudio. Should come from debs?
    
===sudo===
Using Maemo variant because of /etc/sudoers.d integration.

===tslib===
Changes from upstream Ubuntu: (*) if not in patch/quilt form:

Add ts_write_calibration from Maemo tslib, useful for Xomap (*)
===upstart===

Changes from upstream Ubuntu: (*) if not in patch form

Added upstart-dev from Nokia upstart, packaging only patch

===utelnetd===

Automatically generated description for utelnetd. Should come from debs?
    
===waitdbus===

Automatically generated description for waitdbus. Should come from debs?
    
===x11proto-xsp===

Automatically generated description for x11proto-xsp. Should come from debs?
    
===xf86-input-tslib===

Changes from upstream Ubuntu:

Used Debian upstream as it is more developed
===xkeyboard-config===
Type: Non-device specific, central repository for all platforms.

Changes from upstream Ubuntu: (*) if not in quilt/dpatch form)

Added Nokia keyboard information, and mapping Fn to RALT. (*)


===xresponse-visualize===

Automatically generated description for xresponse-visualize. Should come from debs?</text>
    </revision>
  </page>
  <page>
    <title>Mer/Packages/Maemo:Mer:Devel:HW:Beagle</title>
    <id>2058</id>
    <revision>
      <id>38951</id>
      <timestamp>2010-09-22T11:11:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

==Maemo:Mer:Devel:HW:Beagle==</text>
    </revision>
  </page>
  <page>
    <title>Mer/Packages/Maemo:Mer:Devel:HW:Freerunner</title>
    <id>2056</id>
    <revision>
      <id>38994</id>
      <timestamp>2010-09-22T12:29:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

 osc lspkg  Maemo:Mer:Devel:HW:Freerunner
=Maemo:Mer:Devel:HW:Freerunner==
===linux-2.6-openmoko===

Automatically generated.
  
===xserver-xorg-video-glamo===
None</text>
    </revision>
  </page>
  <page>
    <title>Mer/Packages/Maemo:Mer:Devel:HW:N8x0</title>
    <id>2055</id>
    <revision>
      <id>38897</id>
      <timestamp>2010-09-22T09:53:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

 osc lspkg  Maemo:Mer:Devel:HW:N8x0
==Maemo:Mer:Devel:HW:N8x0==
===advanced-backlight===

Automatically generated description for advanced-backlight. Should come from debs?
    
===advanced-power===

Automatically generated description for advanced-power. Should come from debs?
    
===advanced-power-monitor===

Automatically generated description for advanced-power-monitor. Should come from debs?
    
===alsa-plugins===

Automatically generated description for alsa-plugins. Should come from debs?
    
===cs2005q3-toolchain===

Toolchain for building Maemo kernel modules.
  
===cx3110x-module-src===

Automatically generated description for cx3110x-module-src. Should come from debs?
    
===cx3110x-umac-module===

Automatically generated description for cx3110x-umac-module. Should come from debs?
    
===cx3110x-umac-module-770===
None
===dsme-tools===

Automatically generated description for dsme-tools. Should come from debs?
    
===hald-addon-bme===
None
===kernel-770===
http://download.opensuse.org/repositories/home://BBB770/Ubuntu/all/kernel-source-770_2.6.16-osso29mer1_all.deb
===kernel-diablo===
Kernel modules for N8x0.
===kernel-source-770===
http://www.daimi.au.dk/~cvm/kernel-source-2.6.16_2.6.16.rel-osso29.tar.gz
===kernel-source-diablo===
kernel-source-diablo. Built for Mer.
===mer-omap-fb-splash===

Automatically generated.
  
===mer-rescue-menu===

Automatically generated description for mer-rescue-menu. Should come from debs?
    
===n810-slideout-kbd-xmodmap===

Automatically generated description for n810-slideout-kbd-xmodmap. Should come from debs?
    
===network-manager===

Changes from upstream Ubuntu:

Don't scan while connected. 

- quirk related to N8x0

===nit-bootmenu-compat===

Automatically generated description for nit-bootmenu-compat. Should come from debs?
    
===nit-kernel-compat===

Automatically generated description for nit-kernel-compat. Should come from debs?
    
===nokia-n8x0-firmware===

Automatically generated description for nokia-n8x0-firmware. Should come from debs?
    
===nokia-tablets-pointercal===

Automatically generated description for nokia-tablets-pointercal. Should come from debs?
    
===omap-fb-console===

Automatically generated description for omap-fb-console. Should come from debs?
    
===omap-fb-tools===

Automatically generated description for omap-fb-tools. Should come from debs?
    
===osso-dsp-loader===

Automatically generated.
  
===pulseaudio===

  
===tablet-battery-monitor===

Automatically generated.
  
===tablet-sound===

Automatically generated.  
 
===tablet-wireless===

Automatically generated.
  
===usbnet-emergency-telnetd===

Automatically generated description for usbnet-emergency-telnetd. Should come from debs?
    
===x11proto-xsp===
None
===xomap===
None
===xserver-xorg-input-evdev===

Automatically generated description for xserver-xorg-input-evdev. Should come from debs?
    
===xserver-xorg-video-omapfb===

Automatically generated.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Packages/Maemo:Mer:Devel:HW:SmartQ</title>
    <id>2057</id>
    <revision>
      <id>38950</id>
      <timestamp>2010-09-22T11:11:23Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

 osc lspkg  Maemo:Mer:Devel:HW:SmartQ
==Maemo:Mer:Devel:HW:SmartQ==
===hald-addon-smartq===
toggles's addon to HAL for SmartQ batteries.
===kernel-smartq5===

Compiled kernel for the SmartQ5 device.
  
===kernel-smartq7===

  
===kernel-source-smartq5===

Kernel source for the SmartQ 5 MID.
  
===mer-omap-fb-splash===

Automatically generated.
  
===omap-fb-tools===

Automatically generated description for omap-fb-tools. Should come from debs?
    
===smartq5-bootloader===

Bootloader for SmartQ5  

===smartq5-support===

SmartQ5 support</text>
    </revision>
  </page>
  <page>
    <title>Mer/Packages/Maemo:Mer:Devel:MaemoCommon</title>
    <id>2049</id>
    <revision>
      <id>38995</id>
      <timestamp>2010-09-22T12:30:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

 osc lspkg  Maemo:Mer:Devel:MaemoCommon
==Maemo:Mer:Devel:MaemoCommon==
===alarmd===
Generic alarm dispatcher. Built for Mer.
===certman===

Automatically generated description for certman. Should come from debs?
    
===clinkc===

Automatically generated description for clinkc. Should come from debs?
    
===clipboard-manager===

Automatically generated description for clipboard-manager. Should come from debs?
    
===dbus-glib===

Automatically generated description for dbus-glib. Should come from debs?
    
===dsme===

dsme   

===email-providers-data===
Email Providers Data is a database of Email providers for use in email clients (modest)

https://garage.maemo.org/projects/email-providers/
===enca===

LONG DESCRIPTION 
GOES 
HERE
  
===epeg===

Automatically generated description for epeg. Should come from debs?
    
===gail===

Automatically generated description for gail. Should come from debs?
    
===gconf2===

Automatically generated description for gconf2. Should come from debs?
    
===glib2.0===

Automatically generated description for glib2.0. Should come from debs?
    
===gnome-vfs-filechooser-backend===

Automatically generated description for gnome-vfs-filechooser-backend. Should come from debs?
    
===gtk+2.0===
This package is maintained in http://gitorious.org/mer/gtk

===gtkhtml===

Automatically generated  

===hildon-application-manager===

Automatically generated description for hildon-application-manager. Should come from debs?
    
===hildon-control-panel===

Automatically generated description for hildon-control-panel. Should come from debs?
    
===hildon-games-wrapper===

Automatically generated description for hildon-games-wrapper. Should come from debs?
    
===hildon-input-method===

Automatically generated description for hildon-input-method. Should come from debs?
    
===hildon-input-method-framework===

Automatically generated description for hildon-input-method-framework. Should come from debs?
    
===hildon-notify===

Automatically generated description for hildon-notify. Should come from debs?
    
===hildon-theme-cacher===

Automatically generated description for hildon-theme-cacher. Should come from debs?
    
===hildon-theme-tools===

Automatically generated description for hildon-theme-tools. Should come from debs?
    
===hildon-thumbnail===

Automatically generated description for hildon-thumbnail. Should come from debs?
    
===icd2-osso-ic-dev===

Automatically generated description for icd2-osso-ic-dev. Should come from debs?
    
===libconbtui===

Automatically generated description for libconbtui. Should come from debs?
    
===libconic===

Automatically generated description for libconic. Should come from debs?
    
===libdb1===

Automatically generated description for libdb1. Should come from debs?
    
===libhildon===
This package is maintained at http://gitorious.org/mer/libhildon
===libhildondesktop===

LONG DESCRIPTION 
GOES 
HERE
  
===libhildonfm===

Automatically generated description for libhildonfm. Should come from debs?
    
===libhildonmime===

Automatically generated description for libhildonmime. Should come from debs?
    
===libnotify===

Automatically generated description for libnotify. Should come from debs?
    
===libosso===
This package is maintained at http://gitorious.org/mer/libosso
===libosso-gsf===

LONG DESCRIPTION 
GOES 
HERE
  
===libsoup2.4===

Automatically generated description for libsoup2.4. Should come from debs?
    
===loudmouth===

Automatically generated description for loudmouth. Should come from debs?
    
===maemo-launcher===

Automatically generated description for maemo-launcher. Should come from debs?
    
===maemo-launcher-dev===

Unwire maemo-launcher-dev from maemo-launcher-dev 
  
===maemopad===

Automatically generated description for maemopad. Should come from debs?
    
===mce-dev===

Automatically generated description for mce-dev. Should come from debs?
    
===microb-engine===

Automatically generated description for microb-engine. Should come from debs?
    
===modest===
&quot;modest&quot; is a lean &amp; mean e-mail program for Nokia N800 and N810 devices.

https://garage.maemo.org/projects/modest/
===osso-af-settings===

Automatically generated description for osso-af-settings. Should come from debs?
    
===osso-af-utils===

Automatically generated description for osso-af-utils. Should come from debs?
    
===osso-gnome-vfs2===

Automatically generated description for osso-gnome-vfs2. Should come from debs?
    
===osso-gnomevfs-extra===

osso-gnomevfs-extra from Maemo
  
===osso-gwconnect===

Automatically generated description for osso-gwconnect. Should come from debs?
    
===osso-gwobex===

Automatically generated description for osso-gwobex. Should come from debs?
    
===osso-systemui-dbus-dev===

Automatically generated description for osso-systemui-dbus-dev. Should come from debs?
    
===sapwood===

Automatically generated description for sapwood. Should come from debs?
    
===screenshot-tool===

Automatically generated description for screenshot-tool. Should come from debs?
    
===statusbar-alarm-dbus-api===

LONG DESCRIPTION 
GOES 
HERE
  
===tablet-browser-interface===

Automatically generated description for tablet-browser-interface. Should come from debs?
    
===telepathy-farsight===

Automatically generated description for telepathy-farsight. Should come from debs?
    
===telepathy-gabble===

Automatically generated description for telepathy-gabble. Should come from debs?
    
===telepathy-glib===

Automatically generated description for telepathy-glib. Should come from debs?
    
===telepathy-mission-control===

Automatically generated description for telepathy-mission-control. Should come from debs?
    
===tinymail===
Tinymail is a library for developing mobile applications with E-mail functionality. The framework provides components that aid the developer with the user interface but of course also with the connectivity and the caching of messages.

http://tinymail.org/

http://gitorious.org/mer/tinymail
===tracker===

LONG DESCRIPTION 
GOES 
HERE
  
===wpeditor===

Automatically generated description for wpeditor. Should come from debs?</text>
    </revision>
  </page>
  <page>
    <title>Mer/Packages/Maemo:Mer:Devel:MaemoCommon:L10n</title>
    <id>2050</id>
    <revision>
      <id>38898</id>
      <timestamp>2010-09-22T09:53:38Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

 osc lspkg  Maemo:Mer:Devel:MaemoCommon:L10n
==Maemo:Mer:Devel:MaemoCommon:L10n==
===gtk20-l10n===

Automatically generated description for gtk20-l10n. Should come from debs?
    
===hildon-application-manager-l10n-public===

Automatically generated description for hildon-application-manager-l10n-public. Should come from debs?
    
===hildon-application-manager-l10n-public-enus1===

LONG DESCRIPTION 
GOES 
HERE
  
===hildon-application-manager-l10n-public-zhcn1===
Simplified Chinese Localization of hildon-application-manager. Build by dalin.
===hildon-common-strings-l10n-public===

Automatically generated description for hildon-common-strings-l10n-public. Should come from debs?
    
===hildon-common-strings-l10n-public-enus1===

LONG DESCRIPTION 
GOES 
HERE
  
===hildon-common-strings-l10n-public-zhcn1===
Simplified Chinese Localization of hildon-common-strings. Built by dalin.
===hildon-control-panel-l10n-public===

Automatically generated description for hildon-control-panel-l10n-public. Should come from debs?
    
===hildon-control-panel-l10n-public-enus1===

LONG DESCRIPTION 
GOES 
HERE
  
===hildon-control-panel-l10n-public-zhcn1===
Simplified Chinese Localization of hildon-control-panel-l10n-public. Built by dalin.
===hildon-fm-l10n-public===

Automatically generated description for hildon-fm-l10n-public. Should come from debs?
    
===hildon-fm-l10n-public-enus1===

LONG DESCRIPTION 
GOES 
HERE
  
===hildon-fm-l10n-public-zhcn1===
Simplified Chinese Localization of hildon-fm.built by dalin.
===hildon-input-method-l10n-public===

Automatically generated description for hildon-input-method-l10n-public. Should come from debs?
    
===hildon-input-method-l10n-public-enus1===

LONG DESCRIPTION 
GOES 
HERE
  
===hildon-input-method-l10n-public-zhcn1===
Simplified Chinese Localization of hildon-input-method.
===hildon-libs-l10n-public===

Automatically generated description for hildon-libs-l10n-public. Should come from debs?
    
===hildon-libs-l10n-public-enus1===

LONG DESCRIPTION 
GOES 
HERE
  
===hildon-libs-l10n-public-zhcn1===
Simplified Chinese Localization of hildon-libs.
===ke-recv-l10n-public===

Automatically generated description for ke-recv-l10n-public. Should come from debs?
    
===ke-recv-l10n-public-enus1===

LONG DESCRIPTION 
GOES 
HERE
  
===ke-recv-l10n-public-zhcn1===
Simplified Chinese Localization of ke-recv.
===maemo-af-desktop-l10n-public===

Automatically generated description for maemo-af-desktop-l10n-public. Should come from debs?
    
===maemo-af-desktop-l10n-public-enus1===

LONG DESCRIPTION 
GOES 
HERE
  
===maemo-af-desktop-l10n-public-zhcn1===
Simplified Chinese Localization of maemo-af-desktop.
===marketing-release-public===

Automatically generated description for marketing-release-public. Should come from debs?
    
===osso-applet-tasknavigator-l10n-public===

Automatically generated description for osso-applet-tasknavigator-l10n-public. Should come from debs?
    
===osso-games-l10n-public-enus1===

LONG DESCRIPTION 
GOES 
HERE
  
===osso-games-l10n-public-zhcn1===
Simplified Chinese Localization of hildon-fmosso-games.
===osso-system-lock-l10n-public===

Automatically generated description for osso-system-lock-l10n-public. Should come from debs?
    
===osso-system-lock-l10n-public-enus1===

LONG DESCRIPTION 
GOES 
HERE
  
===osso-system-lock-l10n-public-zhcn1===
Simplified Chinese Localization of osso-system-lock.
===osso-uri-l10n-public===

Automatically generated description for osso-uri-l10n-public. Should come from debs?
    
===osso-uri-l10n-public-enus1===

LONG DESCRIPTION 
GOES 
HERE
  
===osso-uri-l10n-public-zhcn1===
Simplified Chinese Localization of osso-uri.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Packages/Maemo:Mer:Devel:Qt</title>
    <id>2051</id>
    <revision>
      <id>38952</id>
      <timestamp>2010-09-22T11:12:22Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

 osc lspkg  Maemo:Mer:Devel:Qt
==Maemo:Mer:Devel:Qt==
===qt-maemo-example===

Automatically generated description for qt-maemo-example. Should come from debs?
    
===qt4-x11===

Qt4.5 with Maemo/Hildon extensions and Mer extensions
  
===qtablet===

QTablet is or should be a light weight application framework for
internet tablets or what ever platform/device that can run Qt
applications. It should scale from small displays to larger
displays and provide cool effects such as transitions,
pannable widgets and support for rotating the application framework.
It provides fully finger usable interface for touchscreen
usage.
  
===qtanimationframework===

Automatically generated description for qtanimationframework. Should come from debs?
    
===qtmapper===

Automatically generated description for qtmapper. Should come from debs?
    
===qtmeetings===

Automatically generated description for qtmeetings. Should come from debs?
    
===quickclip===

Automatically generated description for quickclip. Should come from debs?
    
===quicknote===

Automatically generated description for quicknote. Should come from debs?
    
===shopper===

Automatically generated description for shopper. Should come from debs?</text>
    </revision>
  </page>
  <page>
    <title>Mer/Packages/Maemo:Mer:Devel:UI</title>
    <id>2052</id>
    <revision>
      <id>38996</id>
      <timestamp>2010-09-22T12:34:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

 osc lspkg  Maemo:Mer:Devel:UI
==Maemo:Mer:Devel:UI==
===advanced-power===

Automatically generated description for advanced-power. Should come from debs?
    
===first-boot-wizard===

  Infastructure for all operations for first boot, including the first boot wizard
  
===freemantle-icons===
None
===hildon-cpa-dummy===

Automatically generated description for hildon-cpa-dummy. Should come from debs?
    
===hildon-desktop===
This package is maintained in http://gitorious.org/mer/hildon-desktop
===hildon-desktop-env===

Automatically generated description for hildon-desktop-env. Should come from debs?
    
===hildon-desktop-layout-alpha===

Automatically generated description for hildon-desktop-layout-alpha. Should come from debs?
    
===hildon-home-weather===

Automatically generated description for hildon-home-weather. Should come from debs?
    
===hildon-icons===
Changes from upstream Ubuntu, (*) meaning not quilt/dpatch:

* Change Inherits to hicolor.

===hildon-initscripts===

Automatically generated description for hildon-initscripts. Should come from debs?
    
===hildon-input-method-plugins-example===

Automatically generated description for hildon-input-method-plugins-example. Should come from debs?
    
===hildon-locale-selector===
None
===hildon-plugins-settings===

Automatically generated description for hildon-plugins-settings. Should come from debs?
    
===hildon-polish-keyboard===
Polish keyboard layout for Mer.
===hildon-theme-layout-mer===

Automatically generated description for hildon-theme-layout-mer. Should come from debs?
    
===hildon-theme-liberty-mer===

Automatically generated description for hildon-theme-liberty-mer. Should come from debs?
    
===hildon-theme-selector===

Automatically generated description for hildon-theme-selector. Should come from debs?
    
===hildon-theme-sumea-mer===
Sumea-mer is a new theme for Mer.
 It contains liberty-mer based hildon and matchbox
 themes, Oxygen based icon theme, background,
 Smaller font size and some fixes to make fremantle
 things look better.
===him-arabic===

An on-screen-keyboard for H-I-M that uses .xml files for configuration.
  
===liberty-sounds-ui===

Automatically generated description for liberty-sounds-ui. Should come from debs?
    
===libmatchbox1===

Automatically generated description for libmatchbox1. Should come from debs?
    
===load-applet===

Automatically generated description for load-applet. Should come from debs?
    
===marquee-plugins===
Changes from upstream Ubuntu: (*) if not done using quilt and such

Small changes pertaining to Mer UI (*)
===matchbox-window-manager===

Automatically generated description for matchbox-window-manager. Should come from debs?
    
===mer-cpa-about===

  See a quick &quot;hello&quot; from the Mer people.  This will also display Mer version, device addresses, and licensing information
  
===mer-cpa-input===

A Mer control panel applet for things like choosing your OSK style, languages, etc
  
===network-manager-applet===
None
===noscreenblank===
noscreenblank - keeps the N8x0 display on.
===powerlaunch===

Automatically generated description for powerlaunch. Should come from debs?
    
===pygtk===
access GTK components through Python

This provides python-glade2 and python-gtk2

http://www.pygtk.org/

http://pymaemo.garage.maemo.org/
===python-conic===
Bindings for the libConIC connectivity library

http://pymaemo.garage.maemo.org/

http://maemo.org/api_refs/5.0/beta/libconic/
===python-hildon===
bindings to use Hildon interface components

http://pymaemo.garage.maemo.org/
===python-hildondesktop===
bindings to use Hildon desktop components

http://pymaemo.garage.maemo.org/
===python-launcher===
Efficiently handles multiple python instances (saves memory)

When the system is started, a daemon is run which imports all the modules which we want to cache. The normal launcher (/usr/bin/python) is replaced by a small client which communicates with the header and tells it to fork a new process and then execute the python script.
The gtk module is already imported in the parent process so there’s no need to re-import it for each client (eg, application) that is going to use it.

http://blogs.gnome.org/johan/2007/01/18/introducing-python-launcher/

===python-osso===
bindings to use OSSO components

http://pymaemo.garage.maemo.org/
===statusbarapplets===

The Statusbar Applets Control Panel Applet.
  
===ttf-droid===
Font: Droid Sans
===ubuntulooks===

Automatically generated description for ubuntulooks. Should come from debs?
    
===zenity===

Automatically generated description for zenity. Should come from debs?</text>
    </revision>
  </page>
  <page>
    <title>Mer/Packages/Maemo:Mer:Devel:Unmodified</title>
    <id>2054</id>
    <revision>
      <id>38899</id>
      <timestamp>2010-09-22T09:54:24Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

 osc lspkg  Maemo:Mer:Devel:Unmodified

==Maemo:Mer:Devel:Unmodified==
===gst-plugins-base0.10===

Automatically generated description for gst-plugins-base0.10. Should come from debs?
    
===gstreamer0.10===

Automatically generated description for gstreamer0.10. Should come from debs?
    
===libelf===
The elf library provides routines to access, and manipulate, Elf object
files. It is still not complete.

This development library is only needed if you intend to compile, or
write, your own programs with this library. It holds the static linking
library (.a), and the required .so link to libelf0.so.0. To run programs
linked with this library, install the libelfg0 package.

It is required by prelink and used in the SDK and build env.

https://launchpad.net/ubuntu/jaunty/+package/libelfg0-dev
===libetpan===
The purpose of this mail library is to provide a portable, efficient framework for different kinds of mail access. When using the drivers interface, the interface is the same for all kinds of mail access, remote and local mailboxes.
http://www.etpan.org/

===libgee===

Automatically generated description for libgee. Should come from debs?
    
===mesa===

Automatically generated description for mesa. Should come from debs?
    
===pygobject===

Automatically generated description for pygobject. Should come from debs?
    
===vala===
C# like language for the GObject system</text>
    </revision>
  </page>
  <page>
    <title>Mer/Packages/powerlaunch</title>
    <id>2059</id>
    <revision>
      <id>38953</id>
      <timestamp>2010-09-22T11:12:54Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Powerlaunch Re-implementation

suggestion: very simple vala daemon which is essentially a object/plugin loader, providing some degree of conflict-prevention, run a glib main loop and let the behaviour implement themselves as they want

== Use Cases ==
Needed

Eg
Dim screen on Idle
when the device is 'locked' the key handling connections aren't made *apart* from long press on the power

conditional and grouped instructions

==Proposed Design==

Vala based daemon which is driven by a validated machine parseable config
(cf http://live.gnome.org/Vala/DBusClientSamples)

Glib plugins to this daemon present UI-facing methods.

Python config parser to generate validated machine parseable config from a human readable (or gui managed) description. Essentially joining signals and slots from the plugins; possibly with conditionals.


The daemon doesn't have all the complex config parsing stuff resident all the time; also need to avoid inventing a scripting language on top that wires together the stuff.

==Implementation Proposal==

Initial implementation of the outline design using a python launcher and even plugins then review the use cases and see how it impacts memory usage. If we find we can keep it simple then we port it to vala.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Packages/python</title>
    <id>2111</id>
    <revision>
      <id>38997</id>
      <timestamp>2010-09-22T12:35:29Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

=WIP=

Mer supports python 2.6 by default

There are several extensions for mer/maemo see both the [http://pymaemo.garage.maemo.org/ Garage page] and the [[PyMaemo | PyMaemo page]]

python-defaults trunk supports 2.6... worth snapshotting for Mer (6 Jul 09)

* pygtk : provides python-gtk2 python-glade2
* python-hildon
* python-hildondesktop
* python-launcher
* python-conic
* python-osso
* pygame

Thanks to lizardo &amp; baraujo for their help.</text>
    </revision>
  </page>
  <page>
    <title>Mer/People</title>
    <id>1507</id>
    <revision>
      <id>44714</id>
      <timestamp>2011-07-31T08:47:29Z</timestamp>
      <contributor>
        <ip>112.203.18.14</ip>
      </contributor>
      <comment>/* Participants */</comment>
      <text xml:space="preserve">{{Mer}}

&lt;imagemap&gt;Image:Mer-logo.png|left|160px
rect 0 0 160 136 [[Mer]]
desc none
&lt;/imagemap&gt;

== Get Involved ==
# Send an e-mail to '''carsten.munk at gmail.com'''
#* Listing:
#** a nickname
#** name
#** optional affilation/occupation
#** area of interests
#** and where you are from.
#** the initial specific task you would like to do (if not one in [http://guest:guest@trac.tspre.org:9010/ sprintweb backlog], suggest one)
# Name will be put along with affilation and area of interests (unless explicitly told not to show parts of this information) in the table below.
# You will get instructions on how to create awareness of your activities in the project [[Mer/Awareness]]

== Participants ==
&lt;small&gt;Please '''do not edit this table directly'''. See the above instructions for noting your interest in helping [https://www.techienow.com/ fix computer errors] with Mer.&lt;/small&gt;
{| class=&quot;wikitable sortable&quot;
|-
! Nickname
! Name
! Affiliation (employer) or occupation
! Registered since
! Location
! Areas of interest
|- style=&quot;background:LightBlue&quot;
| [[User:Stskeeps|Stskeeps]] || Carsten V. Munk || Imogen Software, MSc. comp.sci. student || Beginning || Aarhus, Denmark || Community, genericity of mobile platform.
|- style=&quot;background:LightBlue&quot;
| [[User:johnx|JohnX]] || John R. Bloom || System Administrator || Beginning || US || Hacking, packaging, fixing stuff
|- style=&quot;background:LightBlue&quot;
| [[User:Jaffa|Jaffa]] || Andrew Flegg || Systems' architect || 2009-01-18 || UK || Upstream (Ubuntu/Maemo) compatibility, user-experience
|- style=&quot;background:LightBlue&quot;
| [[User:Generalantilles|GeneralAntilles]] || Ryan Abel || Student || 2009-01-22 || US || Public relations, documentation, maemo.org infrastructure
|- style=&quot;background:LightBlue&quot;
| [[User:Andrewfblack|Andrewfblack]] || Andrew F. Black || Radiation Protection Technician || 2009-01-22 || Alabama, US || Theme Development
|- style=&quot;background:LightBlue&quot;
| [[User:Meizirkki|Meizirkki]] || Roope Kuisma || Student || 2009-01-22 || Finland || Testing
|- style=&quot;background:LightBlue&quot;
| [[User:vdvsx|vdvsx]] || Valério Valério || MSc Student || 2009-01-22 || Évora, Portugal || User interfaces, communication, testing, Kernel
|- style=&quot;background:LightBlue&quot;
| [[User:b-man|b-man]] || Brian McKenzie || Hacker/Porter/Student || 2009-01-22 || Ohio, US || Hacker/Porter and also the developer of the Mer Project Installer
|- style=&quot;background:LightBlue&quot;
| [[User:r2d2rogers|r2d2rogers]] || Rob Rogers || Web App Developer || 2009-01-22 || Louisiana, US || Older hardware (770), QA/Bugs, Social media
|- style=&quot;background:LightBlue&quot;
| [[User:lcuk|lcuk]] || Gary Birkett || widget set designer || 2009-01-23 || Manchester, UK || optimizing UI interactions and experience
|- style=&quot;background:LightBlue&quot;
| [[User:wazd|wazd]] || Andrew Zhilin || Web Designer || 2009-01-26 || Moscow, Russia || visual design, user interface design
|- style=&quot;background:LightBlue&quot;
| [[User:rgs|zenvoid]] || Roberto Gordo Saez || Free as freedom! || 2009-01-29 || Spain || Currently system sounds, but interested in a lot of areas, base system, packaging new apps, port to other devices (freerunner)
|- style=&quot;background:LightBlue&quot;
| [[User:thopiekar|thopiekar]] || Thomas (Karl) Pietrowski || Student || 2009-02-08 || Solingen, Germany || Community ( helping users), packaging, testing and creating solutions for users 
|- style=&quot;background:LightBlue&quot;
| [[User:worlderic|worlderic]] || Eric cheung || Student || 2009-03-09 || China || localization of chinese simplified &amp; traditional
|- style=&quot;background:LightBlue&quot;
| [[User:lbt|lbt]] || David Greaves || &lt;s&gt;Enterprise Architect&lt;/s&gt; House husband || 2009-03-11 || UK || Build mentor; Processes; Qt; System Design
|- style=&quot;background:LightBlue&quot;
| [[User:henri4|henri4]] || Henri Lelong || Engineer || 2009-03-13 || Gentilly, France || Linux
|- style=&quot;background:LightBlue&quot;
| [[User:goshawk|goshawk]] || Vincenzo Ampolo || Student &amp; IT consultant &amp; eshopen.com IT manager &amp; Ubuntu supporter || 2009-03-13 || Milan, Italy || Freerunner
|- style=&quot;background:LightBlue&quot;
| [[User:bergwolf|bergwolf]] || Peng Tao || MSc student || 2009-04-04 || China || Communication, kernel, filesystems
|- style=&quot;background:LightBlue&quot;
| [[User:derkaiser|derkaiser]] || Feng Gao || Beijing University of Posts and Telecommunications,undergraduate student || 2009-04-06 || China || Semantic, HCI, social, community, documentation, context-aware
|- style=&quot;background:LightBlue&quot;
| [[User:mtc|mtc]] || Matthew Craig || Technical Consultant || 2009-04-06 || Boston, US || Community, testing, upstream (Ubuntu)
|- style=&quot;background:LightBlue&quot;
| [[User:claudius|claudius]] || Claudius Henrichs || Student, Skype translator || 2009-04-13 || Leipzig, Germany || (German) localization, location based services, semantic
|- style=&quot;background:LightBlue&quot;
| [[User:SuperMarty|SuperMarty]] || Martial G. || Deputy manager / Teacher / Mechanical engineer || 2009-04-13 || France || Pocket Loox 720, Linux
|- style=&quot;background:LightBlue&quot;
| [[User:hotchai|hotchai]] || Shankar Viswanathan || Microprocessor design engineer || 2009-04-14 || Massachusetts, USA || Testing, documentation, community issues and possibly port to other embedded devices (e.g. Zipit wireless messenger) 
|- style=&quot;background:LightBlue&quot;
| [[User:FRZ|FRZ]] || Frantz Dessouices || Student || 2009-04-14 || Brooklyn, US || General science/computers/electronics 
|- style=&quot;background:LightBlue&quot;
| [[User:Schievelbein|Schievelbein]] || Michael Schievelbein || Enterprise architect || 2009-04-22 || US || Testing
|- style=&quot;background:LightBlue&quot;
| [[User:BoxOfSnoo|BoxOfSnoo]] || Jonathan Markevich || Software support/development || 2009-04-24 || Halifax, Canada || Testing, light porting, integration, support
|- style=&quot;background:LightBlue&quot;
| [[User:PawpawYoung|PawpawYoung]] || Feng Yang || Engineer || 2009-04-28 || Beijing, China || kernel, system engineer and testing.
|- style=&quot;background:LightBlue&quot;
| [[User:neatojones|neatojones]] || Nathan Jones || Medical doctor || 2009-05-11 || Illinois, USA || Testing/Packaging
|- style=&quot;background:LightBlue&quot;
| [[User:paperclip-bottlecap|paperclip-bottlecap]] || Adam Obeng || Student || 2009-05-15 || UK || French Localization
|- style=&quot;background:LightBlue&quot;
| [[User:oDuda|oDuda]] || Eduardo C. Pereira || web designing/development - software development - support || 2009-05-15 || Brazil || interface design/consults - testing - translation to pt-BR
|- style=&quot;background:LightBlue&quot;
| [[User:jeremiah|jeremiah]] || Jeremiah C. Foster || maemo.org debmaster || 2009-05-15 || Gothenburg, Sweden || Perl, hacking, packaging
|- style=&quot;background:LightBlue&quot;
| [[User:Mr_Mole|Mr Mole]] || Michael Ohl || Computer Technician entrepreneur, student, Ubuntu supporter || 2009-05-24 || Ohio, US || Testing
|- style=&quot;background:LightBlue&quot;
| onely || O. N. Ely || Architect || 2009-05-27 || Bergen, NO || documentation, testing or UI
|- style=&quot;background:LightBlue&quot;
| [[User:celtica96|celtica96]] || Carl Franklin || instructional design &amp; technology || 2009-05-27 || Houston, Texas, US || SmartQ 5 and 7, testing, documentation, use of Mer in K-12 
|- style=&quot;background:LightBlue&quot;
| [[User:NullPtr|NullPtr]] || Dennis Fagan || Student || 2009-05-28 || NY, US || Hacking and hildonizing apps.
|- style=&quot;background:LightBlue&quot;
| [[User:SD69|SD69]] || RM Bauer || electrical and telecoms engineer || 2009-05-28 || United States || graphics performance, IPR, licensing
|- style=&quot;background:LightBlue&quot;
| [[User:Matan|Matan]] || Matan Ziv-Av || Student || 2009-05-29 || Ein-Yahav, Israel. || Hardware hacking.
|- style=&quot;background:LightBlue&quot;
| [[User:epage|epage]] || Ed Page || Driver developer || 2009-05-31 || Texas, US || Software deficiencies that affect my productivity 
|- style=&quot;background:LightBlue&quot;
| [[User:microe|microe]] || Erik Hovland || Computer Programmer || 2009-06-03 || Glendale, CA USA || mobile audio/video - hand held devices as productivity tools
|- style=&quot;background:LightBlue&quot;
| [[User:skibur|skibur]] || Juan Antonio Sauceda || comp.sci graduate || 2009-06-03 || Laredo, Texas, USA || Hildonizing and packaging, porting, testing
|- style=&quot;background:LightBlue&quot;
| [[User:iliaden|iliaden]] || Ilia Denotkine || electrical engineering student || 2009-06-04 || Montreal, Canada || Support, testing - eventually (hopefully soon) optimization 
|- style=&quot;background:LightBlue&quot;
| [[User:pjrm|pjrm]] || Peter Moulder || computer programmer || 2009-06-09 || Melbourne, Australia || battery usage, text layout and ebook reader interfaces
|- style=&quot;background:LightBlue&quot; 
| [[User:Noma|Noma]] || Miika Arponen || student || 2009-06-12 || Tampere, Finland || Localization (Finnish)
|- style=&quot;background:LightBlue&quot; 
| [[User:GtGrif|GtGrif]] || Nick Maluzhkovitch || Business developer || 2009-06-12 || Kiev, Ukraine || Mobile business app/old hardware (770)
|- style=&quot;background:LightBlue&quot; 
| [[User:MWright|MWright]] || Mike Wright || n/a || 2009-06-12 || UK || Testing, documentation
|- style=&quot;background:LightBlue&quot; 
| [[User:kekegg|kekegg]] || Zhengwei Xie || Center for Theoretical Biology, PKU, QB3, UCSF || 2009-06-12 || USA || Gtk programming, packaging,debugging
|- style=&quot;background:LightBlue&quot;
| [[User:toggles|toggles]] || Tommy Watson || programmer || 2009-06-12 || Perth, AU || low level code
|- style=&quot;background:LightBlue&quot;
| [[User:Luke-Jr|Luke-Jr]] || Luke Dashjr || - || 2009-06-14 || Nebraska, US || Handheld computing, embedded hardware, Qt4, GPS integration
|- style=&quot;background:LightBlue&quot;
| [[User:thangam_arun|thangam_arun]] || Thangamani Arun || Linux System Admin + R&amp;D Engineer, Leading Ubuntu-Tamil-Team || 2009-06-18 || Tamil Nadu, Chennai, India  || Packaging, Porting on imx31
|- style=&quot;background:LightBlue&quot;
| [[User:SarDigital|SarDigital]] || Konstantin Golovko || System Administrator || 2009-06-18 || Saratov, Russia || Testing, Localization to Russian, Building/Porting packages
|- style=&quot;background:LightBlue&quot;
| [[User:timeless|timeless]] || timeless || Nokia / Heckler || 2009-06-18 || Helsinki, FI || English, UE
|- style=&quot;background:LightBlue&quot;
| [[User:TomaszD|TomaszD]] || Tomasz Dominikowski || Student, translator || 2009-06-23 || Poland || Translation
|- style=&quot;background:LightBlue&quot;
| [[User:saju|saju]] || Saju || Software Developer || 2009-06-29 || US || Programming, Documentation, Testing, Packaging
|- style=&quot;background:LightBlue&quot;
| [[User:rhuskjr|rhuskjr]] || Raymond Husk || Special Education Teacher - Artist || 2009-06-29 || Springfield, MO, US || Art, OpenSource Educational Technology
|- style=&quot;background:LightBlue&quot;
| [[User:dopper|dopper]] || Joe Dopp || System Admin / Consultant || 2009-07-28 || Ontario, Canada || Testing, Learning, Documentation, Promotion
|- style=&quot;background:LightBlue&quot;
| [[User:gforums|gforums]] || Christian Steffen || Student (industrial engineering) || 2009-07-30 || Siegen, DE || Sports, vacation (summer+ski), hackable devices running linux
|- style=&quot;background:LightBlue&quot;
| [[User:lma|lma]] || Lucas Maneos || - || 2009-08-13 || UK || Testing
|- style=&quot;background:LightBlue&quot;
| [[User:TheSeeker|TheSeeker]] || Luis Brandelli || Student || 2009-09-10 || UK || linux, programming 
|- style=&quot;background:LightBlue&quot;
| [[User:dustin|dustin]] || Dustin Bergsma || Student || 2009-09-10 || NL? || linux, programming 
|- style=&quot;background:LightBlue&quot;
| [[User:ding|ding]] || Ding Yi || Engineer || 2009-09-10 || China || Maemo, Mer, Marvell 
|- style=&quot;background:LightBlue&quot;
| [[User:Persocon|Persocon]] || Pedro Costa Neves || Designer, Web Interface Designer || 2009-09-10 || Brazil || Visual Design, Interface Design, Frontend.
|- style=&quot;background:LightBlue&quot;
| [[User:ezjd|ezjd]] || JD Zheng || Embedded Software engineer || 2009-09-10 || Vancouver, Canada || Qt, App/UI framework, Python
|- style=&quot;background:LightBlue&quot;
| [[User:mord|mord]] || Aapi Hämäläinen || Software Architect, Nomovok Ltd || 2009-09-24 || Finland || Dynamic runtimes, scriptable DE, SDK, rapid app dev facilitation
|- style=&quot;background:LightBlue&quot;
| [[User:Buffalo_Bill|Buffalo_Bill]] || Guillaume Charest || MBA Student - IS/IT Management || 2009-09-29 || Quebec, Canada || Testing, Community support
|- style=&quot;background:LightBlue&quot;
| [[User:ccooke|ccooke]] || Charles Cooke || Systems Administrator || 2009-09-29 || London, UK || location and situation-dependant triggering support, Grand Central.
|- style=&quot;background:LightBlue&quot;
| - || Thomas Sakowich || Student || 2009-09-29 || Kentucky, USA || Anything.
|- style=&quot;background:LightBlue&quot;
| [[User:lantz|lantz]] || Lantz Harmon  || Computer Repair, Web Design  || 2009-09-29 || USA || Testing
|- style=&quot;background:LightBlue&quot;
| [[User:shpala|shpala]] || - || Embedded software engineer/System programmer  || 2009-09-29 || Beer-Sheva, Israel || Low level programming, SmartQ7
|- style=&quot;background:LightBlue&quot;
| [[User:LoCusF|LoCusF]] || Aleksi Suomalainen || Software Developer, Nomovok Ltd || 2009-10-03 || Kuopio, Finland || Kernel, Bluetooth, Networking
|- style=&quot;background:LightBlue&quot;
| - || Todd E. Pete || Allegro Microsystems, Inc. || 2009-10-15 || Manchester NH || mobility and open source software
|- style=&quot;background:LightBlue&quot;
| [[User:HerSam|HerSam]] || Heri Samuel || Gelora Batam -Open Source Campaign/ IT Manager || 2009-10-18 || Batam, Indonesia || Community, Testing, Documentation
|- style=&quot;background:LightBlue&quot;
| [[User:iscape|iscape]] || Marcus Bauer || embedded development, tangoGPS, woosh || 2009-10-18 || Nice, France || app development C/GTK+, system development
|- style=&quot;background:LightBlue&quot;
| [[User:w00t|w00t]] || Robin Burchell || lead developer || 2009-11-01 || UK || UI programming, general programming. Qt, Python.
|- style=&quot;background:LightBlue&quot;
| [[User:InformatiQ|InformatiQ]] || Ramez Hanna || Maemo || 2009-11-01 || Finland || infrastructure/packaging/building
|- style=&quot;background:LightBlue&quot;
| [[User:Naveen|Naveen]] || Naveen Verma || Sr. Software Engineer || 2009-11-01 || Finland || System and Multimedia Software, Audio/Video streaming etc.
|- style=&quot;background:LightBlue&quot;
| [[User:jani|jani]] || Jani Mikkonen || Maemo || 2009-11-17 || Finland || testing automation, qt, maemo
&lt;!-- If you're editing this table, you should stop, and read what the page says 
--&gt;
|}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Proposals</title>
    <id>3501</id>
    <revision>
      <id>38954</id>
      <timestamp>2010-09-22T11:16:19Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Proposals under consideration ==

This page lists ideas which might happen one day, but which are waiting for someone to take the ball and run with it.

* [[/Community Firmware]]
* [[/Vendor Hardware Repositories]]
* [[/SmartQ Developer Programme]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Proposals/Community Firmware</title>
    <id>1700</id>
    <revision>
      <id>38998</id>
      <timestamp>2010-09-22T12:36:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

This is a proposal how community firmware images as mentioned in [[Task:Community_firmware_image_distribution]] could be done in practice.

Permissions needed from Nokia to maemo.org:

* Permission to distribute the resulting firmware image of merged Nokia-closed software and Mer software, through maemo.org, behind validation of MAC address (for N8x0(W) users) and EULA specified by Nokia
* Permission to download from the Diablo update repositories, binary packages (.deb files), which are Nokia-closed software. Current initial list we would like to use:
** hald-addon-bme - for retrieving battery information
** (more to come)
* Permission to optionally patch scripts/package information (not binaries) in the Nokia-closed packages in order to fit them into Mer, by fixing incompatibility problems.

Need to check if this is needed:

* Permission to develop patches (recipes) which may contain snippets of Nokia-closed scripts/package information as to be able to perform the patching operation correctly.
* Permission to store these patches publically.

Requirements on maemo.org:
* Interface to distribute files through EULA acceptance and MAC validation
* QEMU-ARMEL instance modelled on http://people.debian.org/~aurel32/qemu/armel/ with wget, python installed
* https://code.launchpad.net/~mer-committers/m-r/restricted-nokia-image-maker (a tool that based on a config.py makes a image with restricted debs installed)</text>
    </revision>
  </page>
  <page>
    <title>Mer/Proposals/SmartQ Developer Programme</title>
    <id>1931</id>
    <revision>
      <id>38901</id>
      <timestamp>2010-09-22T09:56:19Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

We will be getting 10 developer rebates of 33$ from SmartDevices and this will be distributed in the following manner:

Stskeeps will be choosing the best 10 proposals, which will be evaluated on the merit of the proposal, previous contributions to the project, and the perceived skill of the person proposing it.

If you receive one of the rebates you will be able to, through a Singapore distributor to receive a SmartQ5 by paying 99 USD - shipping may not be included (not sure yet). You must pay taxes, VAT and customs cost yourself if your country imposes this on the device. 

Retail price is 132 USD and you will be getting a 33 USD rebate. '''Q7 rebate is -not- possible.'''

Proposals will be evaluated when the procedure has been worked out. If you'd like to make a proposal in exchange for eventual rebate, be sure to have signed up for the Mer project as well (being on [[Mer/People]]). The rebates are for Mer team members only. '''We will get the rebates once we have 10 proposals.'''

The proposals will be evaluated in the following manner:

Proposal will be evaluated in terms of the following items on a scale of 1 not relevant, to 10 most revelant.

* Weight 5: Improving hardware support (kernel, bootloaders, X, HAL, drivers, control panels, home applets, status bar applets)
* Weight 4: Using specific hardware features of the device (TV out, USB host/otg, SoC features) or form factor.
* Weight 3: Improving the Mer platform on all devices.
* Weight 2: Perceived skill of contributor
* Weight 1: Past contributions to the Mer project.

== Template Proposal ==

Name:

Nickname:

Location:

Needed device (Q5 or Q7): 

Previous contributions to Mer if any:

Examples to evaluate your skill on:

Proposal:

Evaluation from Stskeeps will go here:

== Insert your proposals here ==

Name: Tomasz Dominikowski

Nickname: TomaszD

Location: Poland

Needed device (Q5 or Q7): Q7 

Previous contributions to Mer if any: 
* Packaging and patching applications
* Patching the kernel, patching kernel modules, adding requested extra modules 
* Adding Polish onscreen keyboard
* Testing the &quot;testing&quot; releases
* Providing bug reports and suggestions

Examples to evaluate your skill on: 

* Translator, a member of Aviary.pl translation team (Mozilla Corp., Novell, GNOME), where I translate mainly the GNOME desktop (which Mer is roughly based on when it comes to the backend technology, the translation format is the same).
* I'm the admin and owner of the Polish Ubuntu translation team (which Mer is based on)
* I've been using GNU/Linux since 2004, Debian/Ubuntu flavour, so have some experience with the command line, various popular tools and version control systems.
* I also provide my fellow Polish Linux users with my own (rather popular) remix of Ubuntu, with various modifications to suit their needs better than the standard image.

Proposal:
* Provide 1st class Polish l10n for Mer.
* Participate in the project as usual (packaging, reporting bugs, testing on N810).

Evaluation from Stskeeps will go here:
----
Name: Matan Ziv-Av

Nickname: matan

Location: Ein-Yahav, ISRAEL.

Needed device (Q5 or Q7):
Q5 and Q7

Previous contributions to Mer if any:
* Some hacking on Q5 kernel.
* Finding a way to update kernel from Mer.
* Getting him-arabic (another HIM keyboard) to work.

Examples to evaluate your skill on:
* Previous contributions.
* http://www.svgalib.org
* http://my.arava.co.il/~matan/770/
* http://lists.linux.it/pipermail/jornada820/

Proposal:
I intend to work on hardware support on Q5/Q7:
* Getting them better supported in Mer - they have quite a few buttons than other Mer devices (ITs, Loox 720).
* Getting the s3c_pp and s3c_mfc to allocate memory at run time, thus allowing full use of RAM and video acceleration.
* Getting one kernel to work on both devices.
* 2D accelerated driver for Xorg.
* 3D accelerated driver (long term goal).

----

Name: [[User:Epage|Ed Page]]

Nickname: epage

Location: Austin, Tx, USA

Needed device (Q5 or Q7):  Q5

Previous contributions to Mer if any:
* mer-cpa-about
* mer-cpa-input
* first-boot.d support for first-boot-wizard

Examples to evaluate your skill on:
* [http://gc-dialer.garage.maemo.org/ DialCentral Developer]
* [http://ejpi.garage.maemo.org/ ejpi Developer]
* [http://axique.de/?f=Quicknote Quicknote Contributor]

Proposal:
* Device specific branding including hw button cpa
* Whatever is needed to make it usable on a day-to-day basis, whether developing new apps, fixing/updating existing apps, or drivers.

----

Name: Andrew Zhilin

Nickname: wazd

Location: Moscow, Russia

Needed device (Q5 or Q7): Q5

Previous contributions to Mer if any:
* UI developing

Examples to evaluate your skill on:
* http://tabletui.wordpress.com/

Proposal: 
* UI developing and testing user experience on specific hardware

----


Name: David Greaves

Nickname: lbt

Location: UK

Needed device (Q5 or Q7): Q7

Previous contributions to Mer if any: OBS, Qt

Examples to evaluate your skill on: OBS, Qt, Shopper

Proposal: Pictureframe, event-central
A community picture-frame type application.
Share pictures via wifi/internet so a 'group' of frames can show the same picture. Think of extended family where your mum sees the same pic as you when you change it.

In the process we'll need some super-simple UI stuff; easy install etc.

event-central is the proposed replacement for [http://wiki.maemo.org/Mer/Packages/powerlaunch powerlaunch] which will need multiple devices for testing.

----

Name: tommy

Nickname: toggles

Location: USA

Needed device (Q5 or Q7): Q5/Q7

Previous contributions to Mer if any: None, playing with bme

Examples to evaluate your skill on:

Proposal: Will look at battery info for hal on device.


----

Name: Olaf

Nickname: Olafvdkruk

Location: Netherlands

Needed device (Q5 or Q7): Q5

Previous contributions to Mer if any: none

Examples to evaluate your skill on: See dingux.com (not my site)

Proposal: Testing, maybe more

----

Name: Michael

Nickname: nite_man

Location: Cyprus

Needed device (Q5 or Q7): Q5

Previous contributions to Mer if any: none

Examples to evaluate your skill on:

* [https://garage.maemo.org/projects/pluto-nokia/ LinuxMCE Maemo Orbiter] (moved under LinuxMCE source tree)

Proposal: porting LinuxMCE Orbiter to the Q5 to use it as control panel of home automation system

----
Evaluation from Stskeeps will go here:</text>
    </revision>
  </page>
  <page>
    <title>Mer/Proposals/Vendor Hardware Repositories</title>
    <id>2014</id>
    <revision>
      <id>38955</id>
      <timestamp>2010-09-22T11:17:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Vendor hardware repositories ==

=== Needed from vendor ===

* tar.gz or zip (marked B in the following) containing closed source bits provided to maemo.org
* EULA (E) for users of their devices to follow regarding the closed source bits.
* EULA should not limit Mer/Maemo variants/other device OS developers ability to repackage the bits for proper inclusion into Mer/Maemo variants/other device OS under scheme.
* List (L) for maemo.org containing valid MAC address/serial numbers that these closed source bits may be distributed to.
* Permission for maemo.org to distribute the tar.gz/zip and repackaged versions of the contained closed source bits under the EULA to the valid MAC address/serial numbers.

=== Flow chart for download system ===

[[Image:MerVendorRepositories_binaries.png]]

=== Procedure when proper information received from vendor ===

* maemo.org staff sets up download system with E and D as access restrictions
* maemo.org staff publishes B within download system
* Mer/Maemo variants/other device OS developer C, downloads B after accepting E and providing a valid MAC address/serial within list L based on his/her ownership of the device.
* C develops:
** Scripts/recipes that will generate Debian repository which will become the base repository token repositories will point to.
** Scripts/recipes that will generate firmware images based on base repository and open source images. Firmware images will ask for token upon startup at device in order to download.
** Provides these to maemo.org staff
* maemo.org staff activates scripts&amp;recipes and sets up system linking token repositories to base repository.
* C and maemo.org staff continues updating scripts&amp;recipe.

== Lists of closed source bits needed from vendors ==

=== Nokia for Nokia N800 and N810 ===

Bug priority and other nice gestures for complete HW support:

* provide Diablo uclibc/eabi toolchain for building stuff for initfs: https://bugs.maemo.org/show_bug.cgi?id=3373

* Hints on how to interface BME, stlc45xx-cal, bt-cal, wlan-cal with a Fremantle open DSME, with closed libcal.

* Opening the flasher (low priority)

* Further cooperation in order to be able to generate a proper initfs with open DSME within maemo.org.

CAL:

* libcal (can be closed source) and associated header file for compiling with open DSME.

Battery:

* BME and attached libraries
* Ideally libbmeipc-dev (information request only APIs OK)
* Package hald-addon-bme

Sound:

* Package osso-dsp-modules-rx-44

GPS: 

* Package libgpsbt
* Package libgpsmgr
* Package libsupld1
* Package gpsdriver
* Package agps-ui and attached packages from http://repository.maemo.org/catalogue/certified/pool/diablo

WiFi:

* initfs: /usr/lib/hotplug/firmware/3825.arm
* initfs: /usr/lib/hotplug/firmware/3826.arm
* initfs: /usr/sbin/wlan-cal
* initfs: /usr/sbin/wlan-fw-update
* initfs: /lib/modules/.../umac.ko
* stlc45xx-cal

Bluetooth:

* initfs: bt-cal
* initfs: /usr/lib/hotplug/firmware/bc4fw.bin</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases</title>
    <id>1467</id>
    <revision>
      <id>38999</id>
      <timestamp>2010-09-22T12:37:17Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

&lt;imagemap&gt;Image:Mer-logo.png|left|160px
rect 0 0 160 136 [[Mer]]
desc none
&lt;/imagemap&gt;

==Releases==
* Current Stable: [[Mer/Releases/0.16|Mer 0.16 release]]
* Previous: [[Mer/Releases/0.14|Mer 0.14 release]], associated [[Mer/Sprints/0.14|sprint]]
* Next: [[Mer/Releases/0.17|Mer 0.17 release]] see below

==Upcoming Schedule==

{|class=&quot;wikitable&quot;
|-
! Release !! Testing !! Release week
|-
|[[Mer/Releases/0.17|0.17]] || [[Mer/Sprints/0.17|Week ??]] || Week ??
|-
|[[Mer/Releases/0.18|0.18]] || [[Mer/Sprints/0.18|Week ??]] || Week ??
|}

==Archive==

*[[Mer/Releases/0.16testing]]
*[[Mer/Releases/0.15testing9]] 
*[[Mer/Releases/0.15testing6]] 
*[[Mer/Releases/0.14testing7]] 
*[[Mer/Releases/0.13testing3]] 
*[[Mer/Releases/0.13testing1]]
*[[Mer/Releases/0.12testing4]] 
*[[Mer/Releases/0.12testing2]]
*[[Mer/Releases/0.11testing1]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.10</title>
    <id>1696</id>
    <revision>
      <id>38902</id>
      <timestamp>2010-09-22T09:57:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

'''THIS IS AN INTERNAL RELEASE'''

* http://stskeeps.subnetmask.net/mer/0.10internal/mer-armel-n8x0-image-v0.10internal.tar.gz
* http://stskeeps.subnetmask.net/mer/0.10internal/mer-x86-generic-image-v0.10internal.tar.gz
* http://stskeeps.subnetmask.net/mer/0.10internal/mer-x86-generic-image-v0.10internal.vmdk.zip</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.11</title>
    <id>1751</id>
    <revision>
      <id>38956</id>
      <timestamp>2010-09-22T11:19:13Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Mer 0.11 was prepared in the sprint [[Mer/Sprints/0.11|16. March 2009 - 30 March 2009 with a testing period: 30 March 2009 - 6 April 2009]]. If you want help with the release, show up in #mer on IRC, on irc.freenode.net.

== Call for developer participation ==

There will be a Maemo/Mozilla hackfest in Copenhagen ([[Mozilla Maemo Danish Weekend]]), Saturday-Sunday 30-31 May 2009 (with party Friday 29 May), where Mer is one of the focus areas as well. As it is a hackfest the focus will be more on coding than on presentations. From Mer project so far Stskeeps will be attending.

If you have the time and ability to show up (there might be an option of [http://internettablettalk.com/forums/showpost.php?p=277347&amp;postcount=4 sponsorship]) and ability to push some code or artwork or other things through and help out - do show up, it'll be a blast and will bring us closer to Mer 1.0. We hope to establish a IRC presence as well if you want to contribute remotely.

Focus area from Mer project point of view will be a wekeend focused on getting Mer ready for day-to-day usage (1.0), both logistically (repositories, restricted builders, etc) and user interface (control panels, getting audio to work on N8x0, and so forth).

== Press coverage of Mer ==

* [http://lwn.net/Articles/322693/ Linux Weekly News]
* [http://linuxdevices.com/news/NS4893289864.html LinuxDevices article]
* [http://www.heise.de/developer/Alternatives-Linux-System-fuer-Nokias-Internet-Tablets--/news/meldung/134634 Heise Online, German]
* [http://www.heise-online.pl/news/Alternatywny-linuksowy-system-dla-urzadzen-Nokia-Internet-Tablet--/7910 Heise Online, Polish]

== Notable accomplishments and news ==

* wazd is now mentor for the UI/Artwork component
* Meizirkki is now mentor for the Testing component
* New UI based on wazd's ideas from [http://tabletui.wordpress.com/2009/02/18/mer-ui-scalability/ his blog], [http://www.daimi.au.dk/~cvm/mer-mirage.png screenshot]. The top bar consists of Application Launcher, Menu button (for your current running application's menu), Quick application switcher, System tray, and task switcher and closer (the globe, shows up when &gt;0 apps are open)
* Maemo-launcher (the GTK booster, etc) actually works now, reducing RAM usage and making Mer usable on 770 and faster everywhere.
* Collected Mer artwork [[Mer/Artwork]] here. License is Creative Commons Attribution-Share Alike 3.0 Unported License, author is Andrew Zhilin. 
* 770 wifi module patches to support WPA, IW wireless extensions 
* Removed docpurge (no more apt-get dist-upgrade messups)
* Removed extras-repository to make way for Mer's own development for now.
* Work on cross compiler for Ubuntu Jaunty/ARM, http://zenvoid.org/software/cross-compiler/
* Began work on port to Neo Freerunner (thanks to eshopen.com)
* Bug that kept N810 keymaps from working now fixed. 
* Special [[Mer/Kernel | Mer kernels]] with useful patches - OTG device whitelisting, add pH5's patch to change opmode on the fly, fanoush's patch to remove &quot;menelaus: Setting voltage...&quot; messages in dmesg, fanoush's patch which correctly gives device nodes for mmcs on N810, rndispatch, jott's rotation and a quickie patch of mine to remove &quot;EAC mode...&quot; messages from dmesg (RNDIS means USBnet on your XP)
* We have begun to look into [[OpenSuse Build Service]] (which is not OpenSUSE specific). They have revolutionized cross-compilation. Instead of how Scratchbox did it, taking user mode ARM emulation and patching it with native packages until it somewhat worked, they have fixed the user mode ARM emulation and then accelerated just gcc, m4 and bash.
* Included &quot;Drag lock&quot; patch which will lock the placement of desktop applets.
* N8x0 installer should now write correct items in advanced mode.

== Known issues ==

* home applets behave oddly when in non-800x480 
* Screen should not dim and turn off during first boot wizard 
* Magic X menu stretches too far, before adding v ^ buttons. 
* Happens occasionally: [https://bugs.maemo.org/show_bug.cgi?id=4250 Initial configuration - Root Password Confirmation Prompt - No virtual keyboard]
* X driver for omapfb does not use Manual updates yet and hence can be a bit slow in updating the screen which may give the impression the system is slow.
* Rotation in advanced-backlight kills the X server
* Duplicate application menu happens
* Network-Manager connectivity dies on N8x0 after sleep / idling - a fix is power button -&gt; Offline mode -&gt; Yes, and power button -&gt; Normal button -&gt; Yes
* No charging screen on flashable image
* No battery meter yet on tablets.
* No sound on tablets. 
* modifying panel settings causes X to sometimes crash to tty
* 770 rescue menu does not seem to work (keys doesn't work) 
* 770 doesn't pick up correct RTC, or it doesn't have it set
* Control panel may appear to have no menu but it actually doesn't have one.
* [https://bugs.launchpad.net/m-r/+bug/355026 Can not enter an address in hildon-application-manager]
* X-Terminal is not localized yet, at all (shows webameedit, etc)
* The task switcher does not appear rightmost as it should
* There seems to be a bit of &quot;air&quot; around windows, near left and right corners, also in marquee.
* Drag lock patch seems to disallow dragging totally, even when disabled?
* Marquee background acts weird.
* JFFS2 version of N8x0 port causes weird video problem when rebooting.
* The filesystem / partition table of VMDK is broken (fs extends past disk size) (fixed in image with md5sum 3b49e1f2d37050ed344ec3f4620f8309)
* Midori has no HIM in text fields.

== Screenshots ==

&lt;gallery perRow=&quot;5&quot;&gt;
Image:Mer0.11_NetworkManager.png
Image:Mer0.11_Notifications.png
Image:Mer0.11_Xterm.png
Image:Mer0.11_AdvancedBacklight.png
Image:Mer0.11_HAM.png
Image:Mer0.11_AM.png
Image:Mer0.11_Filechooser.png
Image:Mer0.11_Mirage.png
Image:Mer0.11_Maemopad.png
Image:Mer0.11_homeip.png
&lt;/gallery&gt;



== Disclaimer ==

* '''There is ''no'' warranty'''. This may blow up your MMC, steal your wife or cause doomsday to come around. But if you find some bugs, please report them on [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugs.maemo.org Bugzilla] and we'll try to see what we can do to fix the bug causing it.
* If anything goes wrong, grab a USB cable, and rescue mode is done through holding down Home key when booting Mer (on tablets)

== Installation guide ==

[[Mer/Documentation/Installation|Installation guide can be found here]], including link to Mer installer for N8x0 - version should be '''2.0.0-mer8'''

== Released images ==

{| class = &quot;wikitable&quot;
|-
| MD5sum || URL || Description
|-
| d1dcc3c1b80bbdedf70771d06466048e || http://stskeeps.subnetmask.net/mer/0.11/mer-armel-770-image-v0.11.tar.gz || rootfs tar.gz for Nokia 770 port
|-
| b8796298dcb9bd73d68cb81be06af0cf || http://stskeeps.subnetmask.net/mer/0.11/mer-armel-beagleboard-bootfs-v0.11.tar.gz || bootfs for Beagleboard port
|-
| 301e6c246333821798c1b93d25720eaf || http://stskeeps.subnetmask.net/mer/0.11/mer-armel-beagleboard-rootfs-v0.11.tar.gz || rootfs for Beagleboard port
|- 
| 65bd6e5f98c6f0c55034da68a260b626 || http://stskeeps.subnetmask.net/mer/0.11/mer-armel-n8x0-image-v0.11.jffs2 || flashable image for Nokia N8x0 port, JFFS2 part (requires kernel below)
|-
| 6136f3875cd813f609daf1b92cffcdc5 || http://stskeeps.subnetmask.net/mer/0.11/mer-armel-n8x0-kernel-v0.11.zImage || flashable image for Nokia N8x0 port, Kernel part (requires jffs2 above)
|-
| 1189a3dfba353fb38d3e086a6317b8c6 || http://stskeeps.subnetmask.net/mer/0.11/mer-armel-n8x0-kernelstd-v0.11.zImage || kernel for standard setups, Nokia N8x0 port. Use to get extra features (working USBnet on XP, etc)
|-
| 808aa36ce77dd0fc2ef53f440d2d3090 || http://stskeeps.subnetmask.net/mer/0.11/mer-armel-n8x0-image-v0.11.tar.gz || rootfs tar.gz for Nokia N8x0 port
|-
| 861cfce61ceecf9b3bbe4c95c776e28c || http://stskeeps.subnetmask.net/mer/0.11/mer-x86-generic-image-v0.11.tar.gz || rootfs for X86, generic
|-
| 3b49e1f2d37050ed344ec3f4620f8309 || http://stskeeps.subnetmask.net/mer/0.11/mer-x86-generic-image-v0.11.vmdk.zip || VMDK, X86 for VirtualBox, VMware, etc.
|- 
| 462dfb10e706899f62d9cce063183185 || http://stskeeps.subnetmask.net/mer/0.11/mer-armel-pocketloox720-v0.11.tar.gz || rootfs tar.gz for Pocket Loox 720 port (experimental)
|-
| 3c6be5fe1756514dda07a4ab5ab44e29 || http://stskeeps.subnetmask.net/mer/0.11/mer-armel-pocketloox720-v0.11.zImage || kernel for Pocket Loox 720 port (experimental)
|}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.11testing1</title>
    <id>1736</id>
    <revision>
      <id>39000</id>
      <timestamp>2010-09-22T12:38:51Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

'''This is no longer the newest image and is not downloadable anymore''', please use [[Mer/Releases/0.11testing2]]

By using these testing images, you're '''morally obligated to test them''' and to edit this page and report -every single bug you find-, no matter if they're theme flaws, quirks, bugs or crashes. You can optionally also use [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugzilla] , use version 0.11.

Sign up for [[https://garage.maemo.org/mailman/listinfo/mer-testing mer-testing]] mailing list and share your bugs, testing experiences. Test master is Meizirkki, and can be found in #mer on irc.freenode.net usually and you can ask him if there's some specialized areas that need testing. Take [http://wiki.maemo.org/Mer/Sprints/0.11#Component:_Testing these testing things first]. 

These images will not be the only ones this week. In N8x0 installer, when it asks for URL=, write URL=http://the.image.intended. Instructions on [[Mer/Releases/0.9]] still apply.

[http://stskeeps.subnetmask.net/mer/0.11testing1/mer-x86-generic-image-v0.11testing1.vmdk.zip Mer X86 VMDK]

[http://stskeeps.subnetmask.net/mer/0.11testing1/mer-armel-n8x0-image-v0.11testing1.jffs2 Mer N8x0, JFFS2 (use the 0.9 image or the one provided in Testing component]

[http://stskeeps.subnetmask.net/mer/0.11testing1/mer-armel-n8x0-image-v0.11testing1.tar.gz Mer N8x0, rootfs version]

[http://stskeeps.subnetmask.net/mer/0.11testing1/mer-armel-770-image-v0.11testing1.tar.gz Mer 770, rootfs version]

== Bugs in this image ==

* Home applets are not working at all. (meiz)
** Probably a PyGTK issue (stskeeps) - fixed 31/03/2009, pygtk=2.14.1-0ubuntu1mer1. Needs testing.
** Tried installing and using Cairo Clock applet.  Installed okay, but did not appear after selected from menu. (m-c)
* Settings app -&gt; menu not working. (vdvsx)
* the xterm menu is wrong: appears webamewindow, webameedit, webameedit...
* Initial configuration - Root Password Confirmation Prompt - No virtual keyboard - bug 4250 (m-c)
* modifying panel settings causes X to sometimes crash to tty (zakkm)</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.11testing2</title>
    <id>1745</id>
    <revision>
      <id>38903</id>
      <timestamp>2010-09-22T09:58:09Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

'''This is no longer the most recent testing image''', see [[Mer/Releases/0.11testing3]]

By using these testing images, you're '''morally obligated to test them''' and to edit this page and report -every single bug you find-, no matter if they're theme flaws, quirks, bugs or crashes. You can optionally also use [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugzilla] , use version 0.11.

Sign up for [[https://garage.maemo.org/mailman/listinfo/mer-testing mer-testing]] mailing list and share your bugs, testing experiences. Test master is Meizirkki, and can be found in #mer on irc.freenode.net usually and you can ask him if there's some specialized areas that need testing. Take [http://wiki.maemo.org/Mer/Sprints/0.11#Component:_Testing these testing things first]. 

These images will not be the only ones this week. In N8x0 installer, when it asks for URL=, write URL=http://the.image.intended. Instructions on [[Mer/Releases/0.9]] still apply.

[http://stskeeps.subnetmask.net/mer/0.11testing2/mer-x86-generic-image-v0.11testing2.vmdk.zip Mer X86 VMDK]

[http://stskeeps.subnetmask.net/mer/0.11testing2/mer-armel-n8x0-image-v0.11testing2.jffs2 Mer N8x0, JFFS2] and accompanying [http://trac.tspre.org/qwerty12/mer_kernel/mer_kernel_2.6.21-zImage_boot_from_rootfs.tar experimental zImage tarred, needed to boot]

[http://stskeeps.subnetmask.net/mer/0.11testing2/mer-armel-n8x0-image-v0.11testing2.tar.gz Mer N8x0, rootfs version]

[http://stskeeps.subnetmask.net/mer/0.11testing2/mer-armel-770-image-v0.11testing2.tar.gz Mer 770, rootfs version]

[http://stskeeps.subnetmask.net/mer/0.11testing2/mer-armel-beagleboard-bootfs-v0.11testing2.tar.gz Mer for Beagleboard, bootfs]

[http://stskeeps.subnetmask.net/mer/0.11testing2/mer-armel-beagleboard-rootfs-v0.11testing2.tar.gz Mer for Beagleboard, rootfs]


== Bugs in testing1 ==

* Home applets are not working at all. (meiz)
** Probably a PyGTK issue (stskeeps) - fixed 31/03/2009, pygtk=2.14.1-0ubuntu1mer1. Needs testing.
** Tried installing and using Cairo Clock applet.  Installed okay, but did not appear after selected from menu. (m-c) 
*** Disabled extras in this image.
* Settings app -&gt; menu not working. (vdvsx)
** Not a bug: There is actually no menu items because we don't have the &quot;clear out device&quot; and such items.
* the xterm menu is wrong: appears webamewindow, webameedit, webameedit..., still not fixed in testing2
** Unable to fix, lack of .po file just yet. Waiting for Fremantle updates. (stskeeps)
* Initial configuration - Root Password Confirmation Prompt - No virtual keyboard - bug 4250 (m-c)
* modifying panel settings causes X to sometimes crash to tty (zakkm), still not fixed in testing2

== Bugs in testing2 == 

* 770 rescue menu does not seem to work (keys doesn't work)
* https://bugs.launchpad.net/ubuntu/+source/shadow/+bug/349504 may hit us. - 770 doesn't seem to pick up correct RTC.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.11testing3</title>
    <id>1749</id>
    <revision>
      <id>38957</id>
      <timestamp>2010-09-22T11:19:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

'''This image is not the most recent, go to [[Mer/Releases/0.11]]'''

By using these testing images, you're '''morally obligated to test them''' and to edit this page and report -every single bug you find-, no matter if they're theme flaws, quirks, bugs or crashes. You can optionally also use [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugzilla] , use version 0.11.

Sign up for [[https://garage.maemo.org/mailman/listinfo/mer-testing mer-testing]] mailing list and share your bugs, testing experiences. Test master is Meizirkki, and can be found in #mer on irc.freenode.net usually and you can ask him if there's some specialized areas that need testing. Take [http://wiki.maemo.org/Mer/Sprints/0.11#Component:_Testing these testing things first]. 

These images will not be the only ones this week. In N8x0 installer, when it asks for URL=, write URL=http://the.image.intended. Instructions on [[Mer/Releases/0.9]] still apply.

[http://stskeeps.subnetmask.net/mer/0.11testing3/mer-x86-generic-image-v0.11testing3.vmdk.zip Mer X86 VMDK]

[http://stskeeps.subnetmask.net/mer/0.11testing3/mer-armel-n8x0-image-v0.11testing3.jffs2 Mer N8x0, JFFS2] and accompanying [http://trac.tspre.org/qwerty12/mer_kernel/mer_kernel_2.6.21-zImage_boot_from_rootfs.tar experimental zImage tarred, needed to boot]

[http://stskeeps.subnetmask.net/mer/0.11testing3/mer-armel-n8x0-image-v0.11testing3.tar.gz Mer N8x0, rootfs version]

[http://stskeeps.subnetmask.net/mer/0.11testing3/mer-armel-770-image-v0.11testing3.tar.gz Mer 770, rootfs version]

[http://stskeeps.subnetmask.net/mer/0.11testing3/mer-armel-beagleboard-bootfs-v0.11testing3.tar.gz Mer for Beagleboard, bootfs]

[http://stskeeps.subnetmask.net/mer/0.11testing3/mer-armel-beagleboard-rootfs-v0.11testing3.tar.gz Mer for Beagleboard, rootfs]


== Bugs in testing1 ==

* Home applets are not working at all. (meiz)
** Probably a PyGTK issue (stskeeps) - fixed 31/03/2009, pygtk=2.14.1-0ubuntu1mer1. Needs testing.
** Tried installing and using Cairo Clock applet.  Installed okay, but did not appear after selected from menu. (m-c) 
*** Disabled extras in this image.
* Settings app -&gt; menu not working. (vdvsx)
** Not a bug: There is actually no menu items because we don't have the &quot;clear out device&quot; and such items.
* the xterm menu is wrong: appears webamewindow, webameedit, webameedit..., still not fixed in testing2
** Unable to fix, lack of .po file just yet. Waiting for Fremantle updates. (stskeeps)
* Initial configuration - Root Password Confirmation Prompt - No virtual keyboard - bug 4250 (m-c)
* modifying panel settings causes X to sometimes crash to tty (zakkm), still not fixed in testing2

== Bugs in testing2 == 

* 770 rescue menu does not seem to work (keys doesn't work)
* https://bugs.launchpad.net/ubuntu/+source/shadow/+bug/349504 may hit us. - 770 doesn't seem to pick up correct RTC.
* maemo-launcher didn't work (fixed in testing3)

== Bugs in testing3 == 

* JFFS2 version of N8x0 image has non-jffs2 supporting apt. (neatojones)
* https://bugs.launchpad.net/bugs/355026 (neatojones)
* changing top panel applets causes some applets not to load and resulted in system instability (random reboots) (neatojones)</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.12</title>
    <id>1805</id>
    <revision>
      <id>45645</id>
      <timestamp>2011-10-31T15:49:53Z</timestamp>
      <contributor>
        <username>nin101</username>
        <id>4525</id>
      </contributor>
      <minor/>
      <comment>Removed spam.</comment>
      <text xml:space="preserve">{{Mer}}

Mer 0.12 was prepared in the sprint [[Mer/Sprints/0.12|7. April 2009 - 20 April 2009 with a testing period: 20 April 2009 - 27 April 2009]]. If you want help with the release, show up in #mer on IRC, on irc.freenode.net.

== Call for developer participation ==

There will be a Maemo/Mozilla hackfest in Copenhagen ([[Mozilla Maemo Danish Weekend]]), Saturday-Sunday 30-31 May 2009 (with party Friday 29 May), where Mer is one of the focus areas as well. As it is a hackfest the focus will be more on coding than on presentations. From Mer project so far Stskeeps will be attending.

If you have the time and ability to show up (there might be an option of [http://internettablettalk.com/forums/showpost.php?p=277347&amp;postcount=4 sponsorship]) and ability to push some code or artwork or other things through and help out - do show up, it'll be a blast and will bring us closer to Mer 1.0. We hope to establish a IRC presence as well if you want to contribute remotely.

Focus area from Mer project point of view will be a weekend focused on getting Mer ready for day-to-day usage (1.0), both logistically (repositories, restricted builders, etc) and user interface (control panels, getting audio to work on N8x0, and so forth).

== Notable accomplishments and news ==

* Claudius Henrichs will be heading up the localization area.
* David Greaves/lbt is now in charge of Builders &amp; development tools component.
* Matthew Craig/mtc in charge of Outreach
* Based on Ubuntu Jaunty official release.
* John Bloom (johnx) manned a Mer table at [http://linuxfestnorthwest.org/ LinuxFest Northwest 2009]
* WiFi issue on N8x0 finally fixed
* Power saving on N8x0 works again.
* We will be switching to alternate repositories soon, as we are integrating with OpenSUSE Build Service. This means no more stuff will go into repository.mer.tspre.org post-0.12.
* Sound support, but requires closed blobs, and someone needs to step up and code a DSP protocol driver for PulseAudio (source code for protocol open)
* Battery monitor (tablet-battery-monitor), requires closed blobs (installs them itself)
* galculator ported
* BlueMan ported - which means tethering, DUN, PAN, and a lot of interesting things
* Hildon desktop when dying, now shows a dialog box that it died.
* Drag lock fixed
* large-statusbar-clock
* Several fixes to Panels.
* set kernel.core-pattern to something sane consistent across platforms (/var/cores)
* Pocket Loox 720 port now has some additional things to make it usable (such as working touchscreen)
* More work on Freerunner port
* Launchpad refused our l10n's, cos Nokia uses tana_fi_internet instead of english strings, and hence we'll work with maemo.org and Transifex.
* Alternate theme by Meizirkki: hildon-theme-sumea-mer
* We actually use maemo-launcher now so a lot of things should use less memory and work better. 770 port should be more usable too.
* Some claim Mer has quite good battery life on N8x0 now.
* Mer is now officially Scratchbox-free, thanks to impressive work on QEMU by ScriptRipper

== Known issues ==

* home applets behave oddly when in non-800x480 
* Screen should not dim and turn off during first boot wizard 
* Magic X menu stretches too far, before adding v ^ buttons. 
* Happens occasionally: [https://bugs.maemo.org/show_bug.cgi?id=4250 Initial configuration - Root Password Confirmation Prompt - No virtual keyboard]
* X driver for omapfb does not use Manual updates yet and hence can be a bit slow in updating the screen which may give the impression the system is slow.
* Rotation in advanced-backlight kills hildon desktop
* No charging screen on flashable image
* modifying panel settings causes HD to sometimes crash
* 770 rescue menu does not seem to work (keys doesn't work) 
* 770 doesn't pick up correct RTC, or it doesn't have it set
* Control panel may appear to have no menu but it actually doesn't have one.
* [https://bugs.launchpad.net/m-r/+bug/355026 Can not enter an address in hildon-application-manager]
* X-Terminal is not localized yet, at all (shows webameedit, etc)
* The task switcher does not appear rightmost as it should
* There seems to be a bit of &quot;air&quot; around windows, near left and right corners, also in marquee.
* Marquee background acts weird.
* JFFS2 version of N8x0 port causes weird video problem when rebooting.
* Midori has no HIM in text fields.
* Powerlaunch not working correctly while charger plugged in, no reaction while pressing power-button, no keyboard backlight
* Advanced-backlight crashes hildon-desktop while charger plugged (might be tablet-battery-monitor related) 
* Marquee-panel doesn't scale when rotating the screen.
* Deselecting dropdown menu plugin crashes desktop
* Powerlaunch button prompts not correct (no &quot;Yes&quot; &quot;No&quot;)
* Applications &quot;Organise&quot; dialog unresponsive

== Screenshots ==

&lt;gallery perRow=&quot;5&quot;&gt;
Image:Mer0.11_Blueman3.png
Image:Mer0.12_Blueman7.png
Image:Mer0.11_NetworkManager.png
Image:Mer0.11_Notifications.png
Image:Mer0.11_Xterm.png
Image:Mer0.11_AdvancedBacklight.png
Image:Mer0.11_HAM.png
Image:Mer0.11_AM.png
Image:Mer0.11_Filechooser.png
Image:Mer0.11_Mirage.png
Image:Mer0.11_Maemopad.png
Image:Mer0.11_homeip.png
Image:Mer0.12_ShopperQt.png
&lt;/gallery&gt;

Video: [http://www.youtube.com/watch?v=JSJ82NywcJE Mer 0.12, Xorg with fbdev driver]

== Disclaimer ==

* '''There is ''no'' warranty'''. This may blow up your MMC, steal your wife or cause doomsday to come around. But if you find some bugs, please report them on [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugs.maemo.org Bugzilla] and we'll try to see what we can do to fix the bug causing it.
* If anything goes wrong, grab a USB cable, and rescue mode is done through holding down Home key when booting Mer (on tablets)

== Installation guide ==

[[Mer/Documentation/Installation|Installation guide can be found here]], including link to Mer installer for N8x0 - version should be '''2.0.0-mer9'''

== Released images ==

{| class = &quot;wikitable&quot;
|-
| MD5sum || URL || Description
|-
| 90cbc781caa3ef18718cb3cc38ef3e7c || http://stskeeps.subnetmask.net/mer/0.12/mer-armel-770-image-v0.12.tar.gz || rootfs tar.gz for Nokia 770 port
|-
| a72837f1599176543541b0496bebc48f || http://stskeeps.subnetmask.net/mer/0.12/mer-armel-beagleboard-bootfs-v0.12.tar.gz || bootfs for Beagleboard port
|-
| 5d125c0b2caf8cd9b4846c0656f28c66 || http://stskeeps.subnetmask.net/mer/0.12/mer-armel-beagleboard-rootfs-v0.12.tar.gz || rootfs for Beagleboard port
|- 
| 871f73e9b5ce4c384804aa1b5f068b85 || http://stskeeps.subnetmask.net/mer/0.12/mer-armel-n8x0-image-v0.12.jffs2 || flashable image for Nokia N8x0 port, JFFS2 part (requires kernel below)
|-
| 6136f3875cd813f609daf1b92cffcdc5 || http://stskeeps.subnetmask.net/mer/0.12/mer-armel-n8x0-kernel-v0.12.zImage || flashable image for Nokia N8x0 port, Kernel part (requires jffs2 above)
|-
| 1189a3dfba353fb38d3e086a6317b8c6 || http://stskeeps.subnetmask.net/mer/0.12/mer-armel-n8x0-kernelstd-v0.12.zImage || kernel for standard setups, Nokia N8x0 port. Use to get extra features (working USBnet on XP, etc)
|-
| 483ca616952b906cf6affead288009b7 || http://stskeeps.subnetmask.net/mer/0.12/mer-armel-n8x0-image-v0.12.tar.gz || rootfs tar.gz for Nokia N8x0 port
|-
| d34c57e3ee32122cf6e73571cf72d9ad || http://stskeeps.subnetmask.net/mer/0.12/mer-x86-generic-image-v0.12.tar.gz || rootfs for X86, generic
|-
| 1fab670b98530e59697e4338d2684667 || http://stskeeps.subnetmask.net/mer/0.12/mer-x86-generic-image-v0.12.vmdk.zip || VMDK, X86 for VirtualBox, VMware, etc.
|- 
| 192e4217de16b2e1a534b3ccf2fff034 || http://stskeeps.subnetmask.net/mer/0.12/mer-armel-pocketloox720-v0.12.tar.gz || rootfs tar.gz for Pocket Loox 720 port (experimental)
|-
| 3c6be5fe1756514dda07a4ab5ab44e29 || http://stskeeps.subnetmask.net/mer/0.12/mer-armel-pocketloox720-v0.12.zImage || kernel for Pocket Loox 720 port (experimental)
|}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.12testing2</title>
    <id>1782</id>
    <revision>
      <id>38904</id>
      <timestamp>2010-09-22T09:59:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}\</comment>
      <text xml:space="preserve">{{Mer}}

By using these testing images, you're '''morally obligated to test them''' and to edit this page and report -every single bug you find-, no matter if they're theme flaws, quirks, bugs or crashes. You can optionally also use [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugzilla] , use version 0.13.

'''Please send the bug report urls to mer-chatter (see [[Mer/Awareness]] ) as well'''

Sign up for [[https://garage.maemo.org/mailman/listinfo/mer-testing mer-testing]] mailing list and share your bugs, testing experiences. Test master is Meizirkki, and can be found in #mer on irc.freenode.net usually and you can ask him if there's some specialized areas that need testing. Take [http://wiki.maemo.org/Mer/Sprints/0.13#Component:_Testing these testing things first]. 

These images will not be the only ones this week. In N8x0 installer, when it asks for URL=, write URL=http://the.image.intended. Instructions on [[Mer/Releases/0.11]] still apply.

[http://stskeeps.subnetmask.net/mer/0.13-testing1/mer-x86-generic-image-v0.13-testing1.vmdk.zip Mer X86 VMDK]

[http://stskeeps.subnetmask.net/mer/0.13-testing1/mer-x86-generic-image-v0.13-testing1.tar.gz Mer X86 rootfs version]

[http://stskeeps.subnetmask.net/mer/0.13-testing1/mer-armel-n8x0-image-v0.13-testing1.tar.gz Mer N8x0, rootfs version]

== Bugs in testing1 ==</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.12testing4</title>
    <id>1790</id>
    <revision>
      <id>38958</id>
      <timestamp>2010-09-22T11:21:17Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

By using these testing images, you're '''morally obligated to test them''' and to edit this page and report -every single bug you find-, no matter if they're theme flaws, quirks, bugs or crashes. You can optionally also use [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugzilla] , use version 0.12.

Sign up for [[https://garage.maemo.org/mailman/listinfo/mer-testing mer-testing]] mailing list and share your bugs, testing experiences. Test master is Meizirkki, and can be found in #mer on irc.freenode.net usually and you can ask him if there's some specialized areas that need testing. Take [[Mer/Sprints/0.12#Component:_Testing|these testing things first]]. 

These images will not be the only ones this week. In N8x0 installer, when it asks for URL=, write URL=http://the.image.intended. Instructions on [[Mer/Releases/0.11]] still apply.

[http://stskeeps.subnetmask.net/mer/0.12testing4/mer-x86-generic-image-v0.12testing4.vmdk.zip Mer X86 VMDK]

[http://stskeeps.subnetmask.net/mer/0.12testing4/mer-armel-n8x0-image-v0.12testing4.jffs2 Mer N8x0, JFFS2] and accompanying [http://trac.tspre.org/qwerty12/mer_kernel/mer_kernel_2.6.21-zImage_boot_from_rootfs.tar experimental zImage tarred, needed to boot]

[http://stskeeps.subnetmask.net/mer/0.12testing4/mer-armel-n8x0-image-v0.12testing4.tar.gz Mer N8x0, rootfs version]

http://stskeeps.subnetmask.net/mer/0.12testing4/mer-armel-770-image-v0.12testing4.tar.gz

http://stskeeps.subnetmask.net/mer/0.12testing4/mer-armel-beagleboard-bootfs-v0.12testing4.tar.gz

http://stskeeps.subnetmask.net/mer/0.12testing4/mer-armel-beagleboard-rootfs-v0.12testing4.tar.gz


== Bugs in testing4 ==
* (n810) Powerlaunch not working correctly while charger plugged in, no reaction while pressing power-button, no keyboard backlight
* (n810) Advanced-backlight crashes hildon-desktop while charger plugged (might be tablet-battery-monitor related)
* https://bugs.maemo.org/show_bug.cgi?id=4307
* https://bugs.maemo.org/show_bug.cgi?id=4342
* https://bugs.maemo.org/show_bug.cgi?id=4377
* https://bugs.maemo.org/show_bug.cgi?id=4376
* https://bugs.maemo.org/show_bug.cgi?id=4379</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.13</title>
    <id>1872</id>
    <revision>
      <id>39002</id>
      <timestamp>2010-09-22T12:48:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Mer 0.13 was prepared in the sprint [[Mer/Sprints/0.13|0.13: 27. April 2009 - 11 May 2009. Testing period: 11 May 2009 - 18 May 2009, release 20 May 2009]]. If you want help with the release, show up in #mer on IRC, on irc.freenode.net.

Mer is made by the Mer project - a community project, read more about it [[Mer/About|here]]

== Call for developer participation ==

There will be a Maemo/Mozilla hackfest in Copenhagen ([[Mozilla Maemo Danish Weekend]]), Saturday-Sunday 30-31 May 2009 (with party Friday 29 May), where Mer is one of the focus areas as well. As it is a hackfest the focus will be more on coding than on presentations. From Mer project so far Stskeeps will be attending.

If you have the time and ability to show up and ability to push some code or artwork or other things through and help out - do show up, it'll be a blast and will bring us closer to Mer 1.0. We hope to establish a IRC presence as well if you want to contribute remotely.

Focus area from Mer project point of view will be a weekend focused on getting Mer ready for day-to-day usage (1.0), both logistically (repositories, restricted builders, etc) and user interface (control panels, getting audio to work on N8x0, and so forth).

== Notable accomplishments and news ==

* We have moved away from Jaiku for microblogging, please see [[Mer/Awareness]] on how to keep track of the Mer activities now.
* We have now 100% moved Mer to being built in OpenSUSE Build Service, which means no more Scratchbox. See [[Mer/Build]] for more information or contact lbt.
* Nokia has sponsored several of the Mer team members making them able to show up at the Mozilla Maemo Danish Weekend - thanks!!
* We began to include Fremantle beta sources
* [http://www.daimi.au.dk/~cvm/DSCF0743.JPG First boot wizard on the Neo Freerunner]
* Left handed scroll bars setting in themes control panel
* [http://smg.photobucket.com/albums/v119/JohnX/?action=view&amp;current=zaurus-google-maps.png Mer on a Zaurus showing Google Maps under Midori]
* There will be discussions on UDS Karmic about [https://blueprints.launchpad.net/ubuntu/+spec/mobile-mid-karmic-use-mer Mer as Ubuntu MID], and we look forward to working together with them to improve Mer packages and spread the Maemo platform to more users.
* zenvoid and Stskeeps have received donated [http://bsd.tspre.org/~stskeeps/img-1.jpg SmartQ5 devices] from SmartDevices and Mer was running on it less than 23 hours after receiving it :)  We welcome all SmartQ MID users to the Mer project and hope you'll help us :)
* SmartDevices has provided bootloader (Qi, uboot), kernel sources and firmware maker, so far holding up to [[Mer/Documentation/Vendor_Social_Contract]]
* Aired [http://internettablettalk.com/forums/showthread.php?p=283003#post283003 Vendor social contract &amp; Mer, ways to deal with OpenGL ES on N8x0s]
* Qt for Maemo framework compiled
* Now using fbdev instead of omapfb as X driver on N8x0
* Midori now has webkit by Bundyo with HIM support.
* For v0.13 only X86, N8x0, SmartQ5 is supported
* Rest will come (770, Beagleboard, Pocket Loox) once we can build their kernels in OBS.
* Our sprints now last a month - and we've put a guide up on how to participate in Mer in a structured manner, see [[Mer/Sprints]]

== Known issues ==

* '''If you can't find an application you want in Application Manager, see http://packages.ubuntu.com''' - Mer is based on Ubuntu and has 95% of all Ubuntu applications and you can install them with sudo apt-get install packagename, in X-Terminal
* home applets behave oddly when in non-800x480 
* Screen should not dim and turn off during first boot wizard 
* Magic X menu stretches too far, before adding v ^ buttons. 
* Happens occasionally: [https://bugs.maemo.org/show_bug.cgi?id=4250 Initial configuration - Root Password Confirmation Prompt - No virtual keyboard]
* X driver for N8x0 does not use Manual updates yet and hence can be a bit slow in updating the screen which may give the impression the system is slow.
* Rotation in advanced-backlight kills hildon desktop
* No charging screen on flashable image
* modifying panel settings causes HD to sometimes crash
* 770 rescue menu does not seem to work (keys doesn't work) 
* 770 doesn't pick up correct RTC, or it doesn't have it set
* Control panel may appear to have no menu but it actually doesn't have one.
* [https://bugs.launchpad.net/m-r/+bug/355026 Can not enter an address in hildon-application-manager]
* X-Terminal is not localized yet, at all (shows webameedit, etc)
* The task switcher does not appear rightmost as it should
* There seems to be a bit of &quot;air&quot; around windows, near left and right corners, also in marquee.
* Marquee background acts weird.
* JFFS2 version of N8x0 port causes weird video problem when rebooting.
* Powerlaunch not working correctly while charger plugged in, no reaction while pressing power-button, no keyboard backlight
* Advanced-backlight crashes hildon-desktop while charger plugged (might be tablet-battery-monitor related) 
* Marquee-panel doesn't scale when rotating the screen.
* Deselecting dropdown menu plugin crashes desktop
* Powerlaunch button prompts not correct (no &quot;Yes&quot; &quot;No&quot;)
* Applications &quot;Organise&quot; dialog unresponsive
* SmartQ5 WiFi does not work out of the box
* There is no &quot;X&quot; in dialogs for ESC-less devices (SmartQ5, etc)
* Hardware keyboard/slider events on N810 when device is in standby only turns on backlight, and doesn't unblank the screen. Touchscreen events work fine in this respect. 
* Text in text fields can not be drag-selected (cursor jumps to start of field instead)
* Applications installed prompt for folder location but are always stored in Extras 
* Terminal toolbar Ctrl button non-functional (try Ctrl + d, Ctrl + h, Ctrl + g, Ctrl + c) 
* Terminal toolbar (likely other) has significanly misaligned background image when selected.
* When changing theme desktop might crash (seen on SmartQ5 and N8x0)
* Sources are not accessible using apt-get source (for Mer packages), but they are downloadable if you sign up for build.opensuse.org (or just ask us if you don't want to.) - a problem with OBS not exporting them at the moment
* The sources list for Mer points to 0.13 and not Stable, as it should be, and hence an upgradable path needs to be manually set when a new Stable comes out.

== Screenshots ==

(Yes, same as 0.12, nothing very interesting in 0.13 than OBS :)

&lt;gallery perRow=&quot;5&quot;&gt;
Image:Mer0.11_Blueman3.png
Image:Mer0.12_Blueman7.png
Image:Mer0.11_NetworkManager.png
Image:Mer0.11_Notifications.png
Image:Mer0.11_Xterm.png
Image:Mer0.11_AdvancedBacklight.png
Image:Mer0.11_HAM.png
Image:Mer0.11_AM.png
Image:Mer0.11_Filechooser.png
Image:Mer0.11_Mirage.png
Image:Mer0.11_Maemopad.png
Image:Mer0.11_homeip.png
Image:Mer0.12_ShopperQt.png
&lt;/gallery&gt;

Video: [http://www.youtube.com/watch?v=JSJ82NywcJE Mer 0.12, Xorg with fbdev driver]


== Disclaimer ==

* '''There is ''no'' warranty'''. This may blow up your MMC, steal your wife or cause doomsday to come around. But if you find some bugs, please report them on [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugs.maemo.org Bugzilla] and we'll try to see what we can do to fix the bug causing it.
* If anything goes wrong, grab a USB cable, and rescue mode is done through holding down Home key when booting Mer (on tablets)

== Installation guide ==

[[Mer/Documentation/Installation|Installation guide can be found here]], including link to Mer installer for N8x0 - version should be '''2.0.0-mer10'''

== Released images ==

{| class = &quot;wikitable&quot;
|-
| MD5sum || URL || Description
|-
| 0663ebadf500c259a429d16279f2d11d || http://stskeeps.subnetmask.net/mer/0.13/mer-armel-n8x0-image-v0.13.jffs2 || flashable image for Nokia N8x0 port, JFFS2 part (requires kernel below)
|-
| 896b882f4243c9b94766e63a681d22f2 || http://stskeeps.subnetmask.net/mer/0.13/mer-armel-n8x0-kernel-v0.13.zImage || flashable image for Nokia N8x0 port, Kernel part (requires jffs2 above)
|-
| 5987abe1a2cba5682ab58aa790b78f6f || http://stskeeps.subnetmask.net/mer/0.13/mer-armel-n8x0-kernelstd-v0.13.zImage || kernel for standard setups, Nokia N8x0 port. Use to get extra features (working USBnet on XP, etc)
|-
| a8d11dbafb6494a5cf8d5bbdfd9e822c || http://stskeeps.subnetmask.net/mer/0.13/mer-armel-n8x0-image-v0.13.tar.gz || rootfs tar.gz for Nokia N8x0 port
|-
| cf9f6a010b97c830768f8751df9f7d54 || http://stskeeps.subnetmask.net/mer/0.13/mer-x86-generic-image-v0.13.tar.gz || rootfs for X86, generic
|-
| 0eb150c001d227b29cf0d150d37939a7 || http://stskeeps.subnetmask.net/mer/0.13/mer-x86-generic-image-v0.13.vmdk.zip || VMDK, X86 for VirtualBox, VMware, etc.
|-
| 3c7cd582ae4e6e34f47640ff41eb9298 || http://stskeeps.subnetmask.net/mer/0.13/mer-armel-smartq5-rootfs-v0.13.tar.gz || rootfs for SmartQ5
|- 
| e1be1a92e8ac9a5bd9802d1b858b6fd9 || http://stskeeps.subnetmask.net/mer/0.13/mer-armel-smartq5.SmartQ5 || firmware image for SmartQ5
|}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.13testing1</title>
    <id>1847</id>
    <revision>
      <id>38905</id>
      <timestamp>2010-09-22T10:00:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

By using these testing images, you're '''morally obligated to test them''' and to edit this page and report -every single bug you find-, no matter if they're theme flaws, quirks, bugs or crashes. You can optionally also use [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugzilla] , use version 0.13.

'''Please send the bug report urls to mer-chatter (see [[Mer/Awareness]] ) as well and share your bugs, testing experiences.'''

Test master is Meizirkki, and can be found in #mer on irc.freenode.net usually and you can ask him if there's some specialized areas that need testing. Take [http://wiki.maemo.org/Mer/Sprints/0.13#Component:_Testing these testing things first]. 

These images will not be the only ones this week. In N8x0 installer, when it asks for URL=, write URL=http://the.image.intended. Instructions on [[Mer/Releases/0.12]] still apply.

[http://stskeeps.subnetmask.net/mer/0.13-testing1/mer-x86-generic-image-v0.13-testing1.vmdk.zip Mer X86 VMDK]

[http://stskeeps.subnetmask.net/mer/0.13-testing1/mer-x86-generic-image-v0.13-testing1.tar.gz Mer X86 rootfs version]

[http://stskeeps.subnetmask.net/mer/0.13-testing1/mer-armel-n8x0-image-v0.13-testing1.tar.gz Mer N8x0, rootfs version] or http://tinyurl.com/q4vj97

== Bugs in testing1 ==

* Hardware keyboard/slider events on N810 when device is in standby only turns on backlight, and doesn't unblank the screen.  Touchscreen events work fine in this respect.
* Touchscreen using xf86-input-tslib does not work (N8x0, SmartQ). Fix will be in testing2 image (redownload image and it should be fixed)
* Brightness applet makes hildon crash (not always) http://pastebin.ca/1418638
* Freezing at shutdown if the command is given from the new gui
* Enhancement: jffs2 images, kernels, etc. 
** Potential fix: Edit kernel-diablo in Maemo:Mer:Devel:HW:N8x0:Devel to include a variant (like -oprofile or such) that is built to sed CONFIG_CMDLINE from 'CONFIG_CMDLINE=&quot;root=1f03 rootfstype=jffs2 ro console=tty0 console=ttyMTD5&quot; to:'CONFIG_CMDLINE=&quot;root=1f04 rootfstype=jffs2 init=/sbin/tablet-init ro console=tty0 console=ttyMTD5&quot;'
*** Added in kernel-diablo
* Minor issues:
** [0.12, not verified to be in 0.13testing1] /etc/init.d/powered produces a message similar to ‘[: 105: false: invalid operator’.  The fix is to change ‘==’ to ‘=’ in all lines of the form ‘[ &quot;$FOO&quot; == &quot;true&quot; ]’.  (Just search for ‘==’ in all init.d scripts.)
*** Fixed in powerlaunch 0.9.2mer8
** [0.12, not verified to be in 0.13testing1] Near the top of /usr/sbin/set_dim_and_blank.py is ‘if dim &gt; blank: print &quot;Dim must be &gt;= blank&quot;’; the message should say ‘&lt;=’ rather than ‘&gt;=’. 
*** Fixed in dsme-tools 0.8


====x86 VMDK====
* Text in text fields can not be drag-selected (cursor jumps to start of field instead)
* Applications installed prompt for folder location but are always stored in Extras
** Artifact of Fremantle Application Manager i think
*** (Irrelevant.  It's a bug)
* Organize dialog nonresponsive to any input
* Locale hardcoded to en_GB.utf8 (?) 
** There is a .current-locale feature, needs control panel (+ reboot), look in /usr/bin/start-hildon
*** the file is ~/.osso/current-locale and it doesn't work.
* Terminal menu text is not replaced with localized text - e.g. &quot;webameedit - webamecopy&quot; etc.
* Terminal toolbar Ctrl button non-functional (try Ctrl + d, Ctrl + h, Ctrl + g, Ctrl + c)
** Work on including patches in libvte on garage.maemo.org/projects/osso-xterm into vte - there's some not included yet.
* Terminal toolbar (likely other) has significanly misaligned background image when selected.
** Icon sizes are changed in Fremantle, so a theme issue probably
*** no.  There are no icons on the toolbar.  Screenshot: [http://www.quicksnapper.com/JMarkevich/image/toolbar-bug Toolbar Bug] (this has been a persistent bug in Maemo, though mostly for all python programs, evidently)</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.13testing3</title>
    <id>1864</id>
    <revision>
      <id>38959</id>
      <timestamp>2010-09-22T11:23:28Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

By using these testing images, you're '''morally obligated to test them''' and to edit this page and report -every single bug you find-, no matter if they're theme flaws, quirks, bugs or crashes. You can optionally also use [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugzilla] , use version 0.13.

'''Please send the bug report urls to mer-chatter (see [[Mer/Awareness]] ) as well and share your bugs, testing experiences.'''

Test master is Meizirkki, and can be found in #mer on irc.freenode.net usually and you can ask him if there's some specialized areas that need testing. Take [http://wiki.maemo.org/Mer/Sprints/0.13#Component:_Testing these testing things first]. If you are testing, go to #mer anyway. Good place to be.

These images will not be the only ones this week. In N8x0 installer, when it asks for URL=, write URL=http://the.image.intended. Instructions on [[Mer/Releases/0.12]] still apply.

[http://stskeeps.subnetmask.net/mer/0.13testing3/mer-x86-generic-image-v0.13testing3.vmdk.zip Mer X86 VMDK]

[http://stskeeps.subnetmask.net/mer/0.13testing3/mer-x86-generic-image-v0.13testing3.tar.gz Mer X86 rootfs version]

[http://stskeeps.subnetmask.net/mer/0.13testing3/mer-armel-n8x0-image-v0.13testing3.tar.gz Mer N8x0, rootfs version] 

[http://stskeeps.subnetmask.net/mer/0.13testing3/mer-armel-smartq5.SmartQ5 Mer for SmartQ5, firmware version]

== Release notes ==

'''N8x0:'''

* JFFS2 and it's associated kernel needs testing
* Standard kernel needs testing
* Verify touchscreen works

'''SmartQ5:'''

* THIS IS A EXPERIMENTAL IMAGE AND NOT FINISHED AT ALL AND THERE IS NO WARRANTY.
* IT IS A TESTING IMAGE AND FOR DEVELOPMENT PURPOSES, BUT IS PUBLIC TO ENCOURAGE EXPERIMENTATION
* THIS IMAGE IS MADE BY THE MER PROJECT AND IS NOT SMARTDEVICES OFFICIAL FIRMWARE
* SmartDevices has kindly provided source code for their bootloader and kernel and firmware maker - thanks to them! Their open attitude is excellent and it should be awarded.
* To install, put the firmware image on a SD card, on the first partition, a FAT32 one, and name the firmware image SmartQ5. Then, hold down + button and insert charger
* It will be accessible over USB networking [http://wiki.maemo.org/USB_networking#Host_USB_Network_Configuration (see instructions here)] with a SSH server, login root, password rootme
* It will not show a splash screen, but it will after darkness then make the screen white, and eventually, make it the Mer background and first boot wizard. 
* There is currently a problem with closing dialogs (will be fixed in testing4).

To get wireless networking to work (from https://wiki.ubuntu.com/Marvell8686Firmware):

1. Grab the firmware package from Marvell here: http://www.marvell.com/drivers/driverDisplay.do?driverId=203 and copy it to your computer.

2. Extract the downloaded zip file, then extract SD-8686-FEDORA26FC6-SYSKT-GPL-9.70.3.p24-26409.P45.tar within it. Extract the FwImage folder. 

3. Inside there are two files, helper_sd.bin and sd8686.bin. Rename helper_sd.bin to sd8686_helper.bin and copy to your SD card

4. In Mer on SmartQ, open X-Terminal and:

&lt;pre&gt;
$ sudo mount -t vfat /dev/mmcblk1p1 /media
(password is the one you used when installing)
$ sudo cp /media/sd8686.bin /lib/firmware/sd8686.bin
$ sudo cp /media/sd8686_helper.bin /lib/firmware/sd8686_helper.bin
$ sudo umount /media
&lt;/pre&gt;

5. Reboot. There is a problem with WPA2 networks (they're greyed out, feel free to find out why).

6. Report all bugs you find :)

== Bugs in testing2 ==

'''SmartQ5''' version:

+ wifi driver install fix -&gt; okay

+ no wpa2 -&gt; confirmed -&gt; manual settings via /etc/network/interfaes with wpa supplicant DO work

+ ctrl key in x-term not affecting input (no modifier picked up?)

+ usbhostmode disabled, cannot use external keyboard (can be activated manually)

+ shutdown/reset/suspend. smartq5 seems unable to turn off, only reset, if plugged in, but some form of shutdown is necessary anyway.

+ no external button functions -&gt; should be just work in progress, function is far from defined anyhow.

+ after long period of inactivity, screen is garbled when comes back up from 'sleep'/low power mode.

+ &quot;launching application&quot; notification does not round nicely on the right hand side (seems too long, so it gets cut off)

+ lack of navigation keys on keyboard means NO dpad function. other keyboards such as matchbox/cellwriter can do this, but the return keys do not function as expected.

== Bugs in testing1 ==

* Hardware keyboard/slider events on N810 when device is in standby only turns on backlight, and doesn't unblank the screen.  Touchscreen events work fine in this respect.
** /etc/powerlaunch/scripts/kb_light should be in sudoers NOPASSWD
* Touchscreen using xf86-input-tslib does not work (N8x0, SmartQ). Fix will be in testing2 image (redownload image and it should be fixed)
* Brightness applet makes hildon crash (not always) http://pastebin.ca/1418638
* Freezing at shutdown if the command is given from the new gui
* Enhancement: jffs2 images, kernels, etc. 
** Potential fix: Edit kernel-diablo in Maemo:Mer:Devel:HW:N8x0:Devel to include a variant (like -oprofile or such) that is built to sed CONFIG_CMDLINE from 'CONFIG_CMDLINE=&quot;root=1f03 rootfstype=jffs2 ro console=tty0 console=ttyMTD5&quot; to:'CONFIG_CMDLINE=&quot;root=1f04 rootfstype=jffs2 init=/sbin/tablet-init ro console=tty0 console=ttyMTD5&quot;'
*** Added in kernel-diablo
* Minor issues:
** [0.12, not verified to be in 0.13testing1] /etc/init.d/powered produces a message similar to ‘[: 105: false: invalid operator’.  The fix is to change ‘==’ to ‘=’ in all lines of the form ‘[ &quot;$FOO&quot; == &quot;true&quot; ]’.  (Just search for ‘==’ in all init.d scripts.)
*** Fixed in powerlaunch 0.9.2mer8
** [0.12, not verified to be in 0.13testing1] Near the top of /usr/sbin/set_dim_and_blank.py is ‘if dim &gt; blank: print &quot;Dim must be &gt;= blank&quot;’; the message should say ‘&lt;=’ rather than ‘&gt;=’. 
*** Fixed in dsme-tools 0.8


====x86 VMDK====
* Text in text fields can not be drag-selected (cursor jumps to start of field instead)
* Applications installed prompt for folder location but are always stored in Extras
** Artifact of Fremantle Application Manager i think
*** (Irrelevant.  It's a bug)
* Organize dialog nonresponsive to any input
* Locale hardcoded to en_GB.utf8 (?) 
** There is a .current-locale feature, needs control panel (+ reboot), look in /usr/bin/start-hildon
*** the file is ~/.osso/current-locale and it doesn't work.
* Terminal menu text is not replaced with localized text - e.g. &quot;webameedit - webamecopy&quot; etc.
* Terminal toolbar Ctrl button non-functional (try Ctrl + d, Ctrl + h, Ctrl + g, Ctrl + c)
** Work on including patches in libvte on garage.maemo.org/projects/osso-xterm into vte - there's some not included yet.
* Terminal toolbar (likely other) has significanly misaligned background image when selected.
** Icon sizes are changed in Fremantle, so a theme issue probably
*** no.  There are no icons on the toolbar.  Screenshot: [http://www.quicksnapper.com/JMarkevich/image/toolbar-bug Toolbar Bug] (this has been a persistent bug in Maemo, though mostly for all python programs, evidently)</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.14</title>
    <id>1870</id>
    <revision>
      <id>39003</id>
      <timestamp>2010-09-22T12:49:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Mer 0.14 was prepared in the sprint in the period 18 May 2009 - 8 June (feature freeze), Testing period: 8 June 2009 - 15 June 2009. If you want help with the release, show up in #mer on IRC, on irc.freenode.net.

Mer is made by the Mer project - a maemo.org community project, read more about it [[Mer/About|here]] 

If you want a Mer logo sticker for your Mer device, see [[Mer/Marketing]]

== Notable accomplishments and news ==

* Initial N810 GPS instructions posted [http://wiki.maemo.org/Mer/Documentation/N810_GPS here]
* Began cleaning up and upgrading to Fremantle beta packages
* [http://www.newlc.com/en/mer-best-maemo-debianubuntu-mobiles-watch-freerunner-demo Neo Freerunner port]
* start-hildon script now uses a /etc/start-hildon.d scheme, making it easier to write control panels
* X buttons on dialogs (for cancel)
* [https://wiki.ubuntu.com/Specs/MobileMidKarmicUseMer Ubuntu MID will be based upon Mer]
* [http://wiki.maemo.org/Mer/Proposals/SmartQ_Developer_Programme Mer team SmartQ developer rebate programme]
* We participated in Mozilla/Maemo Danish Weekend and had several meetings including some with Nokia on how to deal with closed source bits for HW support. Pictures [http://www.flickr.com/search/?q=mozmae here], [http://v6sa.itcollege.ee/shared/Photos/Danish%20Weekend%2029-31.05.09/Saturday/ and here], - spot the Mer people!
* Nokia donated two N810s to the project so we can improve N810 support.
* [http://twitter.com/stskeeps Presentation at MMDW about Mer: Maemo Reconstructed]
* [http://talk.maemo.org/showthread.php?p=293004 Crowd sourcing HIM layouts]
* [http://wiki.maemo.org/Mer/Ubuntu_MID initial meeting with Ubuntu MID crowd]
* [http://wiki.maemo.org/Mer/Build Instructions on how to develop for Mer]
* [http://www.flickr.com/photos/abris/3597883799/ SmartQ7 port]
* [http://guest:guest@trac.tspre.org:9010 New sprint management system]
* [http://trac.tspre.org/merlogs/ #mer IRC channel is now logged publically]
* NetworkManager now uses hildon banners instead of notifications
* Full Qi port to SmartQ5/7
* New onscreen keyboard - him-arabic
* [http://debconf.org Mer will be presenting on a BoF on Mer at DebConf9 this summer]
* Sound now works in N8x0 again, fixed buffer overflow in osso-dsp-loader
* [http://www.southeastlinuxfest.org Mer represented with BoF at Southeast LinuxFest]

== Known issues ==
* '''If you can't find an application you want in Application Manager, see http://packages.ubuntu.com''' - Mer is based on Ubuntu and has 95% of all Ubuntu applications and you can install them with sudo apt-get install packagename, in X-Terminal
* home applets behave oddly when in non-800x480 
* Screen should not dim and turn off during first boot wizard 
* Magic X menu stretches too far, before adding v ^ buttons. 
* Happens occasionally: [https://bugs.maemo.org/show_bug.cgi?id=4250 Initial configuration - Root Password Confirmation Prompt - No virtual keyboard]
* X driver for N8x0 does not use Manual updates yet and hence can be a bit slow in updating the screen which may give the impression the system is slow.
* Rotation in advanced-backlight kills hildon desktop
* No charging screen on flashable image
* modifying panel settings causes HD to sometimes crash
* 770 rescue menu does not seem to work (keys doesn't work) 
* 770 doesn't pick up correct RTC, or it doesn't have it set
* Control panel may appear to have no menu but it actually doesn't have one.
* [https://bugs.launchpad.net/m-r/+bug/355026 Can not enter an address in hildon-application-manager]
* X-Terminal is not localized yet, at all (shows webameedit, etc)
* The task switcher does not appear rightmost as it should
* There seems to be a bit of &quot;air&quot; around windows, near left and right corners, also in marquee.
* Marquee background acts weird.
* JFFS2 version of N8x0 port causes weird video problem when rebooting.
* Powerlaunch not working correctly while charger plugged in, no reaction while pressing power-button, no keyboard backlight
* Advanced-backlight crashes hildon-desktop while charger plugged (might be tablet-battery-monitor related) 
* Marquee-panel doesn't scale when rotating the screen.
* Deselecting dropdown menu plugin crashes desktop
* Powerlaunch button prompts not correct (no &quot;Yes&quot; &quot;No&quot;)
* Applications &quot;Organise&quot; dialog unresponsive
* SmartQ5/7 WiFi does not work out of the box
* Hardware keyboard/slider events on N810 when device is in standby only turns on backlight, and doesn't unblank the screen. Touchscreen events work fine in this respect. 
* Text in text fields can not be drag-selected (cursor jumps to start of field instead)
* Applications installed prompt for folder location but are always stored in Extras 
* Terminal toolbar Ctrl button non-functional (try Ctrl + d, Ctrl + h, Ctrl + g, Ctrl + c) 
* Terminal toolbar (likely other) has significanly misaligned background image when selected.
* When changing theme desktop might crash (seen on SmartQ5 and N8x0)
* Sources are not accessible using apt-get source (for Mer packages), but they are downloadable if you sign up for build.opensuse.org (or just ask us if you don't want to.) - a problem with OBS not exporting them at the moment
* python-hildon is broken
* The weather applet is broken, just disable it
* docpurge is a bit slow and may slow application installs

== Screenshots ==

&lt;gallery perRow=&quot;5&quot;&gt;
Image:Mer0.11_Blueman3.png
Image:Mer0.12_Blueman7.png
Image:Mer0.11_NetworkManager.png
Image:Mer0.11_Notifications.png
Image:Mer0.11_Xterm.png
Image:Mer0.11_AdvancedBacklight.png
Image:Mer0.11_HAM.png
Image:Mer0.11_AM.png
Image:Mer0.11_Filechooser.png
Image:Mer0.11_Mirage.png
Image:Mer0.11_Maemopad.png
Image:Mer0.11_homeip.png
Image:Mer0.12_ShopperQt.png
Image:Mer0.14_him_arabic.png
Image:Mer0.14_claws.png
&lt;/gallery&gt;

== Disclaimer ==

* '''There is ''no'' warranty'''. This may blow up your MMC, steal your wife or cause doomsday to come around. But if you find some bugs, please report them on [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugs.maemo.org Bugzilla] and we'll try to see what we can do to fix the bug causing it.
* If anything goes wrong, grab a USB cable, and rescue mode is done through holding down Home key when booting Mer (on Nokia Internet Tablets)

== Installation guide ==

[[Mer/Documentation/Installation|Installation guide can be found here]], including link to Mer installer for N8x0 - version should be '''2.0.0-mer11'''

== Released images ==

{| class = &quot;wikitable&quot;
|-
| MD5sum || URL || Description
|-
| fd772f6414ce22ca1f8807dc388a8025 || http://stskeeps.subnetmask.net/mer/0.14/mer-armel-n8x0-image-v0.14.jffs2 || flashable image for Nokia N8x0 port, JFFS2 part (requires kernel below)
|-
| 136a715927dec5489f2b001bc7705796 || http://stskeeps.subnetmask.net/mer/0.14/mer-armel-n8x0-flashrootfs-v0.14.zImage || flashable image for Nokia N8x0 port, Kernel part (requires jffs2 above)
|-
| 5414ba9d871bf99a95d83ef8d65dcaf9 || http://stskeeps.subnetmask.net/mer/0.14/mer-armel-n8x0-standard-v0.14.zImage || kernel for standard setups, Nokia N8x0 port. Use to get extra features (working USBnet on XP, etc)
|-
| 41a92764e1bf12b34e57b4028066a90f || http://stskeeps.subnetmask.net/mer/0.14/mer-armel-n8x0-image-v0.14.tar.gz || rootfs tar.gz for Nokia N8x0 port
|-
| c8f2cdf2284ce89995c77056c00418b1 || http://stskeeps.subnetmask.net/mer/0.14/mer-x86-generic-image-v0.14.tar.gz || rootfs for X86, generic
|-
| 891be65c734314f6932e8df9080c0b2e || http://stskeeps.subnetmask.net/mer/0.14/mer-x86-generic-image-v0.14.vmdk.zip || VMDK, X86 for VirtualBox, VMware, etc.
|-
| 88d74e0a99484b31c81e57e7c4f59d5d  || http://stskeeps.subnetmask.net/mer/0.14/mer-armel-smartq5-rootfs-v0.14.tar.gz || rootfs for SmartQ5
|- 
| 72a77747a33fa91faff9290add40ea47 || http://stskeeps.subnetmask.net/mer/0.14/mer-armel-smartq5.SmartQ5 || firmware image for SmartQ5
|-
| e682866aa8820de52f0f465fde0d7975 || http://stskeeps.subnetmask.net/mer/0.14/mer-armel-smartq7-rootfs-v0.14.tar.gz || rootfs for SmartQ7
|- 
| 9814f502a5f86c863512f515121c8820 || http://stskeeps.subnetmask.net/mer/0.14/mer-armel-smartq7.SmartQ7 || firmware image for SmartQ7
|-
| cdf062a71718d4239ec0f3d6cf6a89df || http://stskeeps.subnetmask.net/mer/0.14/mer-armel-freerunner-rootfs-v0.14.tar.gz || rootfs for Neo Freerunner.
|}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.14testing7</title>
    <id>1971</id>
    <revision>
      <id>38906</id>
      <timestamp>2010-09-22T10:01:12Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

By using these testing images, you're '''morally obligated to test them''' and to edit this page and report -every single bug you find-, no matter if they're theme flaws, quirks, bugs or crashes. You can optionally also use [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugzilla] , use version 0.14.

'''Please send the bug report urls to mer-chatter (see [[Mer/Awareness]] ) as well and share your bugs, testing experiences.'''

Test master is Meizirkki, and can be found in #mer on irc.freenode.net usually and you can ask him if there's some specialized areas that need testing. Take [http://guest:guest@trac.tspre.org:9010 the &quot;Completed&quot; things first]. If you are testing, go to #mer anyway. Good place to be.

These images will not be the only ones this week. In N8x0 installer, when it asks for URL=, write URL=http://the.image.intended. Instructions on [[Mer/Documentation/Installation]] still apply.

These images may potentially turn your device into a insane machine bent on removing humanity from this earth and may potentially brick your device, so, NO WARRANTY.

[http://stskeeps.subnetmask.net/mer/0.14testing7/mer-x86-generic-image-v0.14testing7.vmdk.zip Mer X86 VMDK]

[http://stskeeps.subnetmask.net/mer/0.14testing7/mer-x86-generic-image-v0.14testing7.tar.gz Mer X86 rootfs version]

[http://stskeeps.subnetmask.net/mer/0.14testing7/mer-armel-n8x0-image-v0.14testing7.tar.gz Mer N8x0, rootfs version] 

[http://stskeeps.subnetmask.net/mer/0.14testing7/mer-armel-smartq5-image-v0.14testing7.SmartQ5 Mer SmartQ5, firmware version]

[http://stskeeps.subnetmask.net/mer/0.14testing7/mer-armel-smartq7-image-v0.14testing7.SmartQ7 Mer SmartQ7, firmware version]

[http://stskeeps.subnetmask.net/mer/0.14testing7/mer-armel-freerunner-rootfs-v0.14testing7.tar.gz Mer Freerunner, rootfs version (copy /boot to your boot partition)]


&lt;pre&gt;
MD5sums:

19a7ee77c0f3682f820477b8a8ea0482  mer-armel-n8x0-image-v0.14testing7.jffs2
37bf4eb17d1108e108ffe08f4cf50aa4  mer-armel-n8x0-image-v0.14testing7.tar.gz
f3e98d0f9b2dcc837919fdbf41eb6b6b  mer-x86-generic-image-v0.14testing7.tar.gz
423cc6b10d6840b6c9eb0dcca3eb7ad4  mer-x86-generic-image-v0.14testing7.vmdk.zip
e3d5b23b21cefaa1e5308652a392f80c  mer-armel-smartq5-image-v0.14testing7.SmartQ5
f4580f225742862e0531ee669b9ffe21  mer-armel-freerunner-rootfs-v0.14testing7.tar.gz
e059e9432cb6326934b8168a2d8edcce mer-armel-smartq7-image-v0.14testing7.SmartQ7

&lt;/pre&gt;

== Add bugs after this line ==
* Bug found when running Mer 0.14testing7 on VMware Workstation 6.5.2-build-156735 @ WinXP SP3 Home Edition:
** ''mirage'' installs successful but don't runs.
*** Trying to run &lt;code&gt;mirage&lt;/code&gt; at the command line produces the &lt;code&gt;ImportError: No module named hildon&lt;/code&gt;.
*** &lt;code&gt;sudo apt-get update&lt;br/&gt;sudo apt-get install python-hildon&lt;/code&gt; returns &lt;code&gt;python-hildon is already the newest version.&lt;/code&gt;</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.15</title>
    <id>2108</id>
    <revision>
      <id>38960</id>
      <timestamp>2010-09-22T11:24:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

''WARNING: SmartQ images may be broken and may damage MMC due to old kernel''

Mer 0.15 was prepared in the sprint in the period 15 June - 20 June 2009. If you want help with the release, show up in #mer on IRC, on irc.freenode.net - or if you'd like to help out in the project.

Mer is made by the Mer project - a maemo.org community project, read more about it [[Mer/About|here]] 

If you want a Mer logo sticker for your Mer device, see [[Mer/Marketing]]

== Notable accomplishments and news ==

* Faster docpurge (thanks to qwerty12)
* glib2.20 now used
* N8x0: Open hald-addon-bme (You can enable advanced power and get battery meter)
* Our USB networking now uses IPs matching [[USB_networking]], [[Mer/Documentation/USB_Networking]] and bootmenu. 192.168.2.14 for host, 2.15 for device.
* New webkit browser: Tear, by Bundyo
* E-mail client: Claws-mail 
* hildon gconf-editor 
* lbt will be presenting at UKUUG 09: see [[Mer/Events/UKUUG_09]]
* Stskeeps and zenvoid will be doing a BoF on DebConf9, 2009-07-25 13:00 on Mer
* Changed default language to en_US, and added new open source strings by timeless
* Added Chinese translations (dalin)
* Proper localization on Neo Freerunner
* No more cursor blinking in X-Terminal
* 770 support TBA
* Smart Q7 rebate on [[Mer/Proposals/SmartQ_Developer_Programme]] not possible - but help us get to 10 proposals or above so we can get Q5 rebates!
* N8x0: Kalle Valo is doing a kernel mainlining project - see http://kvalo.wordpress.com/2009/07/13/n800n810-support-to-mainline-kernels/ - it is very recommended if you have any contributions to make that you make them. It will get us modern kernels on N8x0.
* N8x0: Mer kernels now have new patches: Japanese FM Radio frequencies for N800, [https://bugs.maemo.org/show_bug.cgi?id=2504 MB2504 fixed], [https://bugs.maemo.org/show_bug.cgi?id=3123 Patch to kernel to allow DSP framebuffer sharing on N8x0 devices) to kernel], nbd in kernel modules, [http://talk.maemo.org/showpost.php?p=266187&amp;postcount=304 A2DP improvements] - thanks to tomaszd for integrating
* Q5/Q7: Backlight parameter for kernel (zenvoid)
* SmartDevices has donated two Q7's to us
* First boot wizard is now a /etc/first-boot-wizard.d process, like start-hildon.d - easy to add first boot wizard items to run. (epage)
* Removed marquee plugins which were not working or broken
* Add 'Network Settings' option to menu that appears when networking is disabled for nm-applet
* Locale picker by qwerty12 and timeless
* Disable grab in gksu for n800/non-kbd users
* Input, About control panel (epage) 
* N8x0: Now uses Xomap instead of Xorg. Should make graphics more smooth.
* Maemo will be switching to Qt for Harmattan. We'll probably be going same way - but supporting both toolkits. We already have Qt/Maemo running :)
* eshopen.com donated a virtual machine to us
* [http://talk.maemo.org/showpost.php?p=305305&amp;postcount=9 How to make your Maemo application compile and run on Mer]

== Screenshots ==

&lt;gallery perRow=&quot;5&quot;&gt;
Image:Mer0.11_Blueman3.png
Image:Mer0.12_Blueman7.png
Image:Mer0.11_NetworkManager.png
Image:Mer0.11_Notifications.png
Image:Mer0.11_Xterm.png
Image:Mer0.11_AdvancedBacklight.png
Image:Mer0.11_HAM.png
Image:Mer0.11_AM.png
Image:Mer0.11_Filechooser.png
Image:Mer0.11_Mirage.png
Image:Mer0.11_Maemopad.png
Image:Mer0.11_homeip.png
Image:Mer0.12_ShopperQt.png
Image:Mer0.14_him_arabic.png
Image:Mer0.14_claws.png
&lt;/gallery&gt;

== Disclaimer ==

* '''There is ''no'' warranty'''. This may blow up your MMC, steal your wife or cause doomsday to come around. But if you find some bugs, please report them on [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugs.maemo.org Bugzilla] and we'll try to see what we can do to fix the bug causing it.
* If anything goes wrong, grab a USB cable, and rescue mode is done through holding down Home key when booting Mer (on Nokia Internet Tablets)

== Known issues ==
* '''If you can't find an application you want in Application Manager, see http://packages.ubuntu.com''' - Mer is based on Ubuntu and has 95% of all Ubuntu applications and you can install them with sudo apt-get install packagename, in X-Terminal
* '''[n8x0] bootreason: charger will cause instability! (booting the device by plugging in charger)'''
* '''[SmartQ]''' The kernel in use here might destroy your internal MMC.
* home applets behave oddly when in non-800x480 
* Screen should not dim and turn off during first boot wizard 
* Magic X menu stretches too far, before adding v ^ buttons. 
* Happens occasionally: [https://bugs.maemo.org/show_bug.cgi?id=4250 Initial configuration - Root Password Confirmation Prompt - No virtual keyboard]
* No charging screen on flashable image
* modifying panel settings causes HD to sometimes crash
* 770 rescue menu does not seem to work (keys doesn't work) 
* 770 doesn't pick up correct RTC, or it doesn't have it set
* 770 image seems not to work with deblet bootmenu
* Control panel may appear to have no menu but it actually doesn't have one.
* [https://bugs.launchpad.net/m-r/+bug/355026 Can not enter an address in hildon-application-manager]
* X-Terminal is not localized yet, at all (shows webameedit, etc)
* The task switcher does not appear rightmost as it should
* There seems to be a bit of &quot;air&quot; around windows, near left and right corners, also in marquee.
* Marquee background acts weird.
* Marquee-panel doesn't scale when rotating the screen.
* Deselecting dropdown menu plugin crashes desktop
* Powerlaunch button prompts not correct (no &quot;Yes&quot; &quot;No&quot;)
* Applications &quot;Organise&quot; dialog unresponsive
* SmartQ5/7 WiFi does not work out of the box
* Hardware keyboard/slider events on N810 when device is in standby only turns on backlight, and doesn't unblank the screen. Touchscreen events work fine in this respect. 
* Text in text fields can not be drag-selected (cursor jumps to start of field instead)
* Applications installed prompt for folder location but are always stored in Extras 
* Terminal toolbar Ctrl button non-functional (try Ctrl + d, Ctrl + h, Ctrl + g, Ctrl + c) 
* Terminal toolbar (likely other) has significanly misaligned background image when selected.
* Sources are not accessible using apt-get source (for Mer packages), but they are downloadable if you sign up for build.opensuse.org (or just ask us if you don't want to.) - a problem with OBS not exporting them at the moment
* The weather applet is broken, just disable it
* FineFileManager installed from Application Manager does not display any files nor directories and has missing icon in the bottom toolbar.
* Tear has missing &quot;home&quot; icon in bottom toolbar
* The &quot;Are you sure you wish to reboot?&quot; window is broken. It appears in the upper-left corner, without decoration, the left and top sides of the window are cut off. The strings for Yes and No buttons are missing (&quot;wdgtbdyes&quot; and &quot;wdgtbdno&quot;). By the way, this goes against many user interface guidelines. The buttons should say &quot;Reboot&quot; and &quot;Cancel&quot; instead of &quot;Yes&quot; and &quot;No&quot;.
* The same issue as above applies to confirming shutdown and offline mode. Obviously, the buttons should be &quot;Shut down/Cancel&quot; and &quot;Go Offline/Cancel&quot;, respectively.
* Cannot click on links while browsing with tear under Vmware image (vm bug or tear bug?)
* Mirage installed from Application Manager does not launch. Crashes on ImportError: No module named osso in /usr/share/mirage/mirage.py line 35 &quot;import osso&quot;
** Issue is due to python-osso not supporting python2.5 (stskeeps)
* Missing icons in Terminal bottom toolbar [http://img219.imageshack.us/img219/6971/screenshot02.png Screenshot]
* Settings app entry should have an icon (not just the default one); [http://img44.imageshack.us/img44/7066/screenshot03r.png Screenshot]
* Inconsistency in icon size and style. Example: tear should have a bigger icon. Mer project should define a standard size for icons so that packagers know what icons they should pack in their app. [http://img44.imageshack.us/img44/6417/screenshot01y.png Screenshot]
* Installing (through app manager) an app shorcut to any other folder than &quot;extras&quot; has no effect. The app entry always end up in extras (I tried to install Tear in &quot;Internet&quot; -&gt; ends up in &quot;extras&quot;. Same for several apps).
* HomeIP applet installed from Application Manager, cannot be selected to show 
* The strings still have &quot;Nokia&quot; and &quot;Maemo&quot; in them. They should be replaced with &quot;Mer&quot;.
* At least for N8x0, it would be reasonable to double the backlight timeouts (60 for fade, 120 to disable). The device is just too slow for some actions to complete (especially in the terminal) within 30 seconds, making the default setup irritating.
* In the panel for changing brightness and volume, the volume icon is repeated in a grid. There should be only one icon there, not four. 
* When a reboot or shutdown procedure is taking place, all the applets that change their state show up briefly on the screen, making the process look unpolished and ugly. There's also a blinking cursor showing through if you leave the terminal open while shutting down or rebooting. Basically, if there is anything on the screen during a reboot or shutdown that changes its state, it shows up.  
* &quot;Authorizations&quot; menu element should be hidden. It's of no use to normal users.
* &quot;Drag Lock&quot; should be renamed to &quot;Lock applets&quot; or a similar, less confusing name.
* Erratic dialog window behaviour. Open up the terminal and hit the Menu key a few times to open the menu and close it repeatedly. It'll open left-aligned or centered, depending on your luck.
* Error dialog windows (banners on the bottom of the screen with a &quot;stop sign&quot; icon) cannot be dismissed in any other way than hitting the hardware &quot;Back&quot; button.  
* [Nokia n8x0] Going to soft poweroff by pressing and holding the power button for about two seconds results in: backlight turns off, comes back for a second, then goes away and soft poweroff is completed. Same thing happens when coming back from soft poweroff, the screen softly &quot;blinks&quot; at the user. Blinking does not occur when going into soft poweroff when the option is chosen from the Device mode dialog, however it does happen every time when the device comes back from this mode.
* [Nokia n8x0] If going to soft poweroff is done by pushing and holding a button for two seconds, then it stands to reason that the same action should turn the device back into normal mode. This is not the case - only a short push of the button brings it back to life.
* Maemopad: Missing translations = maemopad_save_changes_made, maemopadyes, maemopadno. Open files menu is screwed up. Dialog to confirm saving is displayed on top left of screen instead of center.
** Maemopad has no en_US translation. https://stage.maemo.org/svn/maemo/projects/tools/trunk/maemo_testing/maemopad/po/en_GB.po is a possible basis. (Stskeeps)
* Missing text: Settings -&gt; About -&gt; License button
* Desktop Menu Issues
** Calibrate Screen menu item non-functional
** Help menu item non-functional
* NetworkManager Applet 0.7.0.97
** Clicking &quot;NetworkManager Website&quot; errors with &quot;Failed to show url Failed to execute child process &quot;xdg-open&quot; (No such file or directory)&quot;
** Clicking OK Button on above error message is non-functional
* Display issues
** Editing DSL Connection -&gt; PPP Settings tab -&gt; &quot;Available to all users&quot; has the letters &quot;Av&quot; garbled.
** Display issue: Editing DSL Connection -&gt; PPP Settings tab -&gt; Options below Available to all users&quot; is not displayed on the screen.
** Display issue: Editing DSL Connection -&gt; IPv4 Settings -&gt; Button for &quot;Editing IPv4 routes&quot; is not fully displayed on the screen.
* Blueman bluetooth manager works, but you have to click and hold to keep the main menu open, a tap simply opens it up and closes it immidiately.
* [n8x0] Tapping input fields with stylus doesn't bring up the keyboard. It work when tapping with a finger though. One fix is to bring up the control panel by entering &quot;controlpanel&quot; in a terminal. Then choose &quot;Text Input Settings&quot;. From there you pick &quot;On-Screen&quot;. If you here set &quot;Launch finger keyboard&quot; to never, you can use the stylus in most applications to bring up the keyboard.
Q7 - Changing input settings/onscreen/launchfingerboaurd=with finger and stylus causes keyboard loss in xterm
* [Q7] Authorizations app layout flows text offscreen on details pane
* WPA networks are still greyed out.
* Xterm missing scrollbars
* Onscreenkeyboard has no cursor keys
* Hardware power button not mapped
* Application manager - Installed app dialogue box has no &quot;OK&quot; button
* Application Manager - Installed apps default to Extras Menu regardless of settings
* Maemopad - Open File dialogue blank, no text no icons
* Disconnecting external power freezes X (sometimes)
* ts_calibrate fails with &quot;ts_open: No such file or directory&quot;
* [SmartQ7] Application Manager freezes after installing an application or removing an application - success window notification stays on screen and application list does not reload.  Have to halt application to continue.
* [SmartQ7] Menu System Problem - Several applications included in the image show up in the Extras menu and should be in other first tier menus instead (example:  Network Connections should be in Communications, Tear should be in Internet)
* [SmartQ7] Installing an application results in the new application always being placed in the Extras menu.
* [SmartQ7] SD Card does not mount automatically - needed to add code to /etc/fstab (/dev/mmcblk1p1 /media/sd vfat defaults 0 0) to get it working - please consider adding to image
* [SmartQ7] Arrow keys on the face of the device (up/down) aren't turning pages in FBReader.  Created vim.mod in user home directory with added lines of keycode 73 = Page_Up and keycode 74 = Page_Down.  Then created 62xmodap file in /etc/start-hildon.d/ with code - #!/bin/sh on first line and xmodmap vim.mod on second line.  This allows keys to work after boot.  Hopefully this or another more elegant solution can be added to the image.
* [SmartQ7]  Applications trying to access the file system have issues unless the SD card is mounted correctly.
* [SmartQ7] No method of power off seems to exist
* There might be untranslated chinese and english strings.
* [o2 Joggler] Browser &quot;tear&quot; does not react on pointing at links. only page scrolling works.

== Installation guide ==

[[Mer/Documentation/Installation|Installation guide can be found here]], including link to Mer installer for N8x0 - version should be '''2.0.0-mer12'''

== Released images ==

{| class = &quot;wikitable&quot;
|-
| MD5sum || URL || Description
|-
| 82179a47712b1cd354df96a25f1bb38a || http://stskeeps.subnetmask.net/mer/0.15/mer-armel-n8x0-image-v0.15.jffs2 || flashable image for Nokia N8x0 port, JFFS2 part (requires kernel below)
|-
| 2fab914c82b9127a54364bada291199b || http://stskeeps.subnetmask.net/mer/0.15/mer-armel-n8x0-flashrootfs-v0.15.zImage || flashable image for Nokia N8x0 port, Kernel part (requires jffs2 above)
|-
| 8c6780cc913336562b95081f1292cd0f || http://stskeeps.subnetmask.net/mer/0.15/mer-armel-n8x0-standard-v0.15.zImage || kernel for standard setups, Nokia N8x0 port. Use to get extra features (working USBnet on XP, etc)
|-
| 11e1400ab9108da02d4ce9c7c36dd53c || http://stskeeps.subnetmask.net/mer/0.15/mer-armel-n8x0-image-v0.15.tar.gz || rootfs tar.gz for Nokia N8x0 port
|-
| 9b11e023cb56544ccf67d8c44509ac4d || http://stskeeps.subnetmask.net/mer/0.15/mer-x86-generic-image-v0.15.tar.gz || rootfs for X86, generic
|-
| f7ddaee945b312025e19a7f14b9e8640 || http://stskeeps.subnetmask.net/mer/0.15/mer-x86-generic-image-v0.15.vmdk.zip || VMDK, X86 for VirtualBox, VMware, etc.
&lt;!--
|-
| 6bb7296fd3458570562835bf4c12a13b  || http://stskeeps.subnetmask.net/mer/0.15/mer-armel-smartq5-rootfs-v0.15.tar.gz || rootfs for SmartQ5
|- 
| 58908cefa4c1d7a58b2f1e136a6a0932 || http://stskeeps.subnetmask.net/mer/0.15/mer-armel-smartq5-image-v0.15.SmartQ5 || firmware image for SmartQ5
|-
| 6aa2e91283c3eebc88e4f5f22fc8038a || http://stskeeps.subnetmask.net/mer/0.15/mer-armel-smartq7-rootfs-v0.15.tar.gz || rootfs for SmartQ7
|- 
| d4ad7ecaa4b5d7fa1276f6e5307ac7da || http://stskeeps.subnetmask.net/mer/0.15/mer-armel-smartq7-image-v0.15.SmartQ7 || firmware image for SmartQ7
--&gt;
|-
| (this file is not available) || http://stskeeps.subnetmask.net/mer/0.15/mer-armel-freerunner-rootfs-v0.15.tar.gz BROKEN LINK|| rootfs for Neo Freerunner.
|-
| e7f699fc359a2eecce1fd2ae14b1a864 || http://stskeeps.subnetmask.net/mer/0.15/mer-armel-770-image-v0.15.tar.gz || '''Experimental''' Nokia 770 rootfs.

|}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.15testing6</title>
    <id>2116</id>
    <revision>
      <id>39004</id>
      <timestamp>2010-09-22T12:50:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Use [[Mer/Releases/0.15testing7]] instead!

By using these testing images, you're '''morally obligated to test them''' and to edit this page and report -every single bug you find-, no matter if they're theme flaws, quirks, bugs or crashes. You can optionally also use [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugzilla] , use version 0.15.

IF YOU SEE ANY MISSING TRANSLATIONS, PLEASE REPORT THEM IMMEDIATELY.

'''Please send the bug report urls to mer-chatter (see [[Mer/Awareness]] ) as well and share your bugs, testing experiences.'''

Test master is Meizirkki, and can be found in #mer on irc.freenode.net usually and you can ask him if there's some specialized areas that need testing. Take [http://guest:guest@trac.tspre.org:9010 the &quot;Completed&quot; things first]. If you are testing, go to #mer anyway. Good place to be.

These images will not be the only ones this week. In N8x0 installer, when it asks for URL=, write URL=http://the.image.intended. Instructions on [[Mer/Documentation/Installation]] still apply.

These images may potentially turn your device into a insane machine bent on removing humanity from this earth and may potentially brick your device, so, NO WARRANTY.

[http://stskeeps.subnetmask.net/mer/0.15testing6/mer-x86-generic-image-v0.15testing6.vmdk.zip Mer X86 VMDK]

[http://stskeeps.subnetmask.net/mer/0.15testing6/mer-x86-generic-image-v0.15testing6.tar.gz Mer X86 rootfs version]


Not out yet:

[http://stskeeps.subnetmask.net/mer/0.15testing6/mer-armel-n8x0-image-v0.15testing6.tar.gz Mer N8x0, rootfs version] 

[http://stskeeps.subnetmask.net/mer/0.15testing6/mer-armel-smartq5-image-v0.15testing6.SmartQ5 Mer SmartQ5, firmware version]

[http://stskeeps.subnetmask.net/mer/0.15testing6/mer-armel-smartq7-image-v0.15testing6.SmartQ7 Mer SmartQ7, firmware version]

[http://stskeeps.subnetmask.net/mer/0.15testing6/mer-armel-freerunner-rootfs-v0.15testing6.tar.gz Mer Freerunner, rootfs version (copy /boot to your boot partition)]


&lt;pre&gt;
MD5sums:

486512028b8b14e8b410bf2094e8453b  mer-x86-generic-image-v0.15testing6.tar.gz
453d2fdb6aecc8bed54777edaf2325f6  mer-x86-generic-image-v0.15testing6.vmdk.zip

&lt;/pre&gt;

== Insert bugs after this line ==

* (in progress of getting fixed) - Chinese translations are broken.
* N8x0: Xorg acts weird
* N8x0: hald-addon-bme has &quot;batery.reporing.last_full&quot;
* Missing translations for default locale (En_US) mainly in Application manager (ai_ti_main, ai_li_size_100kb, ai_li_size_max_99kb, aibddetailsclose, ai_ia_select_location, ai_fi_select_location_application, ai_fi_select_location_location, aibdselectlocationok, aibdselectlocationcancel, ai_ni_install_sucessful) , but also in Settings (&quot;tncpa_ap_tn_sb&quot;, &quot;tncpa_ti_tnsb_title&quot;, &quot;tncpa_fi_tnsb_applications&quot;, &quot;tncpa_bv_tnsb_organise&quot;, basically most if not *all* that beging with &quot;tncpa_&quot;, there is too many to retype here, almost nothing is translated there, apart from some names of applets)
* FineFileManager installed from Application Manager does not display any files nor directories and has missing icon in the bottom toolbar.
* Tear has missing &quot;home&quot; icon in bottom toolbar
* The &quot;Are you sure you wish to reboot?&quot; window is broken. It appears in the upper-left corner, without decoration, the left and top sides of the window are cut off. The strings for Yes and No buttons are missing (&quot;wdgtbdyes&quot; and &quot;wdgtbdno&quot;). By the way, this goes against many user interface guidelines. The buttons should say &quot;Reboot&quot; and &quot;Cancel&quot; instead of &quot;Yes&quot; and &quot;No&quot;.
* The same issue as above applies to confirming shutdown and offline mode. Obviously, the buttons should be &quot;Shut down/Cancel&quot; and &quot;Go Offline/Cancel&quot;, respectively.
* Cannot click on links while browsing with tear under Vmware image (vm bug or tear bug?)
* Mirage installed from Application Manager does not launch. Crashes on ImportError: No module named osso in /usr/share/mirage/mirage.py line 35 &quot;import osso&quot;
** Issue is due to python-osso not supporting python2.5 (stskeeps)
* Missing icons in Terminal bottom toolbar [http://img219.imageshack.us/img219/6971/screenshot02.png Screenshot]
* Settings app entry should have an icon (not just the default one); [http://img44.imageshack.us/img44/7066/screenshot03r.png Screenshot]
* Inconsistency in icon size and style. Example: tear should have a bigger icon. Mer project should define a standard size for icons so that packagers know what icons they should pack in their app. [http://img44.imageshack.us/img44/6417/screenshot01y.png Screenshot]
* Installing (through app manager) an app shorcut to any other folder than &quot;extras&quot; has no effect. The app entry always end up in extras (I tried to install Tear in &quot;Internet&quot; -&gt; ends up in &quot;extras&quot;. Same for several apps).
* HomeIP applet installed from Application Manager, cannot be selected to show on homescreen (selecting it has no effect).
** python-hildondesktop broken?
* hildon-desktop-env needs dependancy on hildon-application-manager-l10n-public-enus1 hildon-common-strings-l10n-public-enus1 hildon-control-panel-l10n-public-enus1 hildon-fm-l10n-public-enus1 hildon-input-method-l10n-public-enus1 hildon-libs-l10n-public-enus1 ke-recv-l10n-public-enus1 maemo-af-desktop-l10n-public-enus1 osso-games-l10n-public-enus1 osso-system-lock-l10n-public-enus1 osso-uri-l10n-public-enus1</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.15testing7</title>
    <id>2118</id>
    <revision>
      <id>38907</id>
      <timestamp>2010-09-22T10:03:05Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

By using these testing images, you're '''morally obligated to test them''' and to edit this page and report -every single bug you find-, no matter if they're theme flaws, quirks, bugs or crashes. You can optionally also use [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugzilla] , use version 0.15.

IF YOU SEE ANY MISSING TRANSLATIONS, PLEASE REPORT THEM IMMEDIATELY.

'''Please send the bug report urls to mer-chatter (see [[Mer/Awareness]] ) as well and share your bugs, testing experiences.'''

Test master is Meizirkki, and can be found in #mer on irc.freenode.net usually and you can ask him if there's some specialized areas that need testing. Take [http://guest:guest@trac.tspre.org:9010 the &quot;Completed&quot; things first]. If you are testing, go to #mer anyway. Good place to be.

These images will not be the only ones this week. In N8x0 installer, when it asks for URL=, write URL=http://the.image.intended. Instructions on [[Mer/Documentation/Installation]] still apply.

These images may potentially turn your device into a insane machine bent on removing humanity from this earth and may potentially brick your device, so, NO WARRANTY.

[http://stskeeps.subnetmask.net/mer/0.15testing7/mer-x86-generic-image-v0.15testing7.vmdk.zip Mer X86 VMDK]

[http://stskeeps.subnetmask.net/mer/0.15testing7/mer-x86-generic-image-v0.15testing7.tar.gz Mer X86 rootfs version]

[http://stskeeps.subnetmask.net/mer/0.15testing7/mer-armel-n8x0-image-v0.15testing7.tar.gz Mer N8x0, rootfs version] 

[http://stskeeps.subnetmask.net/mer/0.15testing7/mer-armel-smartq5-image-v0.15testing7.SmartQ5 Mer SmartQ5, firmware version]

[http://stskeeps.subnetmask.net/mer/0.15testing7/mer-armel-smartq7-image-v0.15testing7.SmartQ7 Mer SmartQ7, firmware version] 

[http://stskeeps.subnetmask.net/mer/0.15testing7/mer-armel-smartq5-rootfs-v0.15testing7.tar.gz Mer SmartQ5, rootfs version]

[http://stskeeps.subnetmask.net/mer/0.15testing7/mer-armel-smartq7-rootfs-v0.15testing7.tar.gz Mer SmartQ7, rootfs version]




&lt;pre&gt;
MD5sums:

042e9f15bc026b26db54b97a7df99921  mer-armel-freerunner-rootfs-v0.15testing7.tar.gz
a0db6ede7fba51e32ce514c50865be0f  mer-armel-n8x0-flashrootfs-v0.15testing7.zImage
7d6db0868fdce7a0ce9c6dd75bc14985  mer-armel-n8x0-image-v0.15testing7.jffs2
32151907bcd773d69f048210b87f30f4  mer-armel-n8x0-image-v0.15testing7.jffs2.raw
4399fed9e386b49e665f71f54854905a  mer-armel-n8x0-image-v0.15testing7.tar.gz
ff2ae5a7328c9ae668ae2b2b466b7e07  mer-armel-n8x0-standard-v0.15testing7.zImage
f22178fc46527d6b931aaa926df048a7  mer-armel-smartq5-rootfs-v0.15testing7.tar.gz
dfe1ecb0aed8d834edad1e8ef22c81cb  mer-armel-smartq5.SmartQ5
f47d232c48740901d2c3be56e42c4d7b  mer-armel-smartq7-rootfs-v0.15testing7.tar.gz
3c0dbb324a174e8f873ef4a9baed94fe  mer-armel-smartq7.SmartQ7
b902ceaa2e0e304b86b854f669b11dee  mer-x86-generic-image-v0.15testing7.tar.gz
a7961aaf9bd8d9b72fb96e4c18792a52  mer-x86-generic-image-v0.15testing7.vmdk.zip


&lt;/pre&gt;

== Bugs in 0.15testing6 ==

* (in progress of getting fixed) - Chinese translations are broken.
* N8x0: Xorg acts weird
* N8x0: hald-addon-bme has &quot;batery.reporing.last_full&quot;
* Missing translations for default locale (En_US) mainly in Application manager (ai_ti_main, ai_li_size_100kb, ai_li_size_max_99kb, aibddetailsclose, ai_ia_select_location, ai_fi_select_location_application, ai_fi_select_location_location, aibdselectlocationok, aibdselectlocationcancel, ai_ni_install_sucessful) , but also in Settings (&quot;tncpa_ap_tn_sb&quot;, &quot;tncpa_ti_tnsb_title&quot;, &quot;tncpa_fi_tnsb_applications&quot;, &quot;tncpa_bv_tnsb_organise&quot;, basically most if not *all* that beging with &quot;tncpa_&quot;, there is too many to retype here, almost nothing is translated there, apart from some names of applets)
* FineFileManager installed from Application Manager does not display any files nor directories and has missing icon in the bottom toolbar.
* Tear has missing &quot;home&quot; icon in bottom toolbar
* The &quot;Are you sure you wish to reboot?&quot; window is broken. It appears in the upper-left corner, without decoration, the left and top sides of the window are cut off. The strings for Yes and No buttons are missing (&quot;wdgtbdyes&quot; and &quot;wdgtbdno&quot;). By the way, this goes against many user interface guidelines. The buttons should say &quot;Reboot&quot; and &quot;Cancel&quot; instead of &quot;Yes&quot; and &quot;No&quot;.
* The same issue as above applies to confirming shutdown and offline mode. Obviously, the buttons should be &quot;Shut down/Cancel&quot; and &quot;Go Offline/Cancel&quot;, respectively.
* Cannot click on links while browsing with tear under Vmware image (vm bug or tear bug?)
* Mirage installed from Application Manager does not launch. Crashes on ImportError: No module named osso in /usr/share/mirage/mirage.py line 35 &quot;import osso&quot;
** Issue is due to python-osso not supporting python2.5 (stskeeps)
** Tested with launching using python2.6 instead of python2.5 (epage)
*** Mirage seems to not have any major compatibility issues between python versions
*** python-osso dependency then gets satisfied and the world is a happy place
* Missing icons in Terminal bottom toolbar [http://img219.imageshack.us/img219/6971/screenshot02.png Screenshot]
* Settings app entry should have an icon (not just the default one); [http://img44.imageshack.us/img44/7066/screenshot03r.png Screenshot]
* Inconsistency in icon size and style. Example: tear should have a bigger icon. Mer project should define a standard size for icons so that packagers know what icons they should pack in their app. [http://img44.imageshack.us/img44/6417/screenshot01y.png Screenshot]
* Installing (through app manager) an app shorcut to any other folder than &quot;extras&quot; has no effect. The app entry always end up in extras (I tried to install Tear in &quot;Internet&quot; -&gt; ends up in &quot;extras&quot;. Same for several apps).
* HomeIP applet installed from Application Manager, cannot be selected to show on homescreen (selecting it has no effect).
** python-hildondesktop broken?
* hildon-desktop-env needs dependancy on hildon-application-manager-l10n-public-enus1 hildon-common-strings-l10n-public-enus1 hildon-control-panel-l10n-public-enus1 hildon-fm-l10n-public-enus1 hildon-input-method-l10n-public-enus1 hildon-libs-l10n-public-enus1 ke-recv-l10n-public-enus1 maemo-af-desktop-l10n-public-enus1 osso-games-l10n-public-enus1 osso-system-lock-l10n-public-enus1 osso-uri-l10n-public-enus1

== Added strings to en_US ==

&lt;pre&gt;

In hildon-application-manager:

# This is the name of the top bar in HAM
msgid &quot;ai_ti_main&quot;
msgstr &quot;Home&quot;

msgid &quot;ai_li_size_max_99kb&quot;
msgstr &quot;%d kB&quot;

msgid &quot;ai_li_size_100kb_10mb&quot;
msgstr &quot;%.1f MB&quot;

msgid &quot;ai_li_size_10mb_1gb&quot;
msgstr &quot;%d MB&quot;

msgid &quot;ai_li_size_larger_than_1gb&quot;
msgstr &quot;%.1f GB&quot;

msgid &quot;ai_li_de_size_max_999kb&quot;
msgstr &quot;%d kB&quot;

msgid &quot;ai_li_de_size_1mb_10mb&quot;
msgstr &quot;%.2f MB&quot;

msgid &quot;ai_li_de_size_10mb_1gb&quot;
msgstr &quot;%.1f MB&quot;

msgid &quot;ai_li_de_size_larger_than_1gb&quot;
msgstr &quot;%.2f GB&quot;

msgid &quot;ai_bd_details_close&quot;
msgstr &quot;Close&quot;

msgid &quot;ai_ia_select_location&quot;
msgstr &quot;Select location for application&quot;

msgid &quot;ai_fi_select_location_application&quot;
msgstr &quot;Application:&quot;

msgid &quot;ai_fi_select_location_location&quot;
msgstr &quot;Location&quot;

msgid &quot;ai_bd_select_location_ok&quot;
msgstr &quot;OK&quot;

msgid &quot;ai_bd_select_location_change_folder&quot;
msgstr &quot;Change folder&quot;

msgid &quot;ai_ni_install_successful&quot;
msgstr &quot;%s installed&quot;

msgid &quot;tncpa_li_plugin_update_notifier&quot;
msgstr &quot;Software Updates&quot;

In hildon-libs:

In hildon-input-method:

msgid &quot;inpu_nc_common_menu_tools&quot;
msgstr &quot;Tools&quot;

msgid &quot;inpu_nc_common_menu_edit_cut&quot;
msgstr &quot;Cut&quot;

msgid &quot;inpu_nc_common_menu_edit_copy&quot;
msgstr &quot;Copy&quot;

msgid &quot;inpu_nc_common_menu_edit_paste&quot;
msgstr &quot;Paste&quot;

msgid &quot;inpu_nc_common_menu_tools_help&quot;
msgstr &quot;Help&quot;


&lt;/pre&gt;

== Bugs in testing7 ==

Mark if previous bugs were fixed in this version as well.

* The default terminal cannot be scrolled in any way. No scrollbar, does not react to touch. 
* The strings still have &quot;Nokia&quot; and &quot;Maemo&quot; in them. They should be replaced with &quot;Mer&quot;.
* At least for N8x0, it would be reasonable to double the backlight timeouts (60 for fade, 120 to disable). The device is just too slow for some actions to complete (especially in the terminal) within 30 seconds, making the default setup irritating.
* In the panel for changing brightness and volume, the volume icon is repeated in a grid. There should be only one icon there, not four. 
* When a reboot or shutdown procedure is taking place, all the applets that change their state show up briefly on the screen, making the process look unpolished and ugly. There's also a blinking cursor showing through if you leave the terminal open while shutting down or rebooting. Basically, if there is anything on the screen during a reboot or shutdown that changes its state, it shows up.  
* &quot;Authorizations&quot; menu element should be hidden. It's of no use to normal users.
* &quot;Drag Lock&quot; should be renamed to &quot;Lock applets&quot; or a similar, less confusing name.
* Erratic dialog window behaviour. Open up the terminal and hit the Menu key a few times to open the menu and close it repeatedly. It'll open left-aligned or centered, depending on your luck.
* Error dialog windows (banners on the bottom of the screen with a &quot;stop sign&quot; icon) cannot be dismissed in any other way than hitting the hardware &quot;Back&quot; button.  
* Disable grab in gksu for n800/non-kbd users - it asks for password in locale settings.
* Chinese strings now working
* [Nokia n8x0]NetworkManager not working. NM-applet says &quot;Device not ready&quot;.
* [Nokia n810]Fn-key not working. (Install x11-xkb-utils to fix)
** Added to imager (stskeeps)
* [Nokia n8x0]Powerlaunch dialog is not popping up when pressing power button.
(Note: if this is the &quot;Device mode&quot; dialog window then it works fine for me with an N810. Short press = Device mode appears. Long press = soft poweroff - TomaszD)
* [Nokia n8x0] Going to soft poweroff by pressing and holding the power button for about two seconds results in: backlight turns off, comes back for a second, then goes away and soft poweroff is completed. Same thing happens when coming back from soft poweroff, the screen softly &quot;blinks&quot; at the user. Blinking does not occur when going into soft poweroff when the option is chosen from the Device mode dialog, however it does happen every time when the device comes back from this mode.
* [Nokia n8x0] If going to soft poweroff is done by pushing and holding a button for two seconds, then it stands to reason that the same action should turn the device back into normal mode. This is not the case - only a short push of the button brings it back to life.
* Maemopad: Missing translations = maemopad_save_changes_made, maemopadyes, maemopadno. Open files menu is screwed up. Dialog to confirm saving is displayed on top left of screen instead of center.
** Maemopad has no en_US translation. https://stage.maemo.org/svn/maemo/projects/tools/trunk/maemo_testing/maemopad/po/en_GB.po is a possible basis. (Stskeeps)
* Missing text: Settings -&gt; About -&gt; License button
* Desktop Menu Issues
** Calibrate Screen menu item non-functional
** Help menu item non-functional
* NetworkManager Applet 0.7.0.97
** Clicking &quot;NetworkManager Website&quot; errors with &quot;Failed to show url Failed to execute child process &quot;xdg-open&quot; (No such file or directory)&quot;
** Clicking OK Button on above error message is non-functional
* statusbarapplets misses hook to CPA
* statusbarapplets tries to read $HOME.osso/hildon-desktop/statusbar.conf, not $HOME/.osso/hildon-desktop/statusbar.conf
* statusbarapplets title needs to be better and less upper cased.
* blueman does not install correctly - errors
* qtablet does not install correctly - errors
* Display issues
** Editing DSL Connection -&gt; PPP Settings tab -&gt; &quot;Available to all users&quot; has the letters &quot;Av&quot; garbled.
** Display issue: Editing DSL Connection -&gt; PPP Settings tab -&gt; Options below Available to all users&quot; is not displayed on the screen.
** Display issue: Editing DSL Connection -&gt; IPv4 Settings -&gt; Button for &quot;Editing IPv4 routes&quot; is not fully displayed on the screen.
* Installed Applications not launching from the Main Menu
** File Manager (Fine File Manager alternative does launch)
** Help Application
** Address Book
** RSS News Reader
** PDF Viewer
** Global Search
*** Not sure how to diagnose for error messages... ideas?  (mtc)

=== Bugs in testing7 - Localization Issues ===
* en_GB
** Virtual Keyboard Menu: &quot;inpu_nc_common_menu_tools&quot;
** Settings Menu: &quot;tncpa_ap_tn_sb&quot;
** Settings Menu, Title bar for above menu item: &quot;tncpa_ti_tnsb_title&quot;
** Settings Menu, Tab title: &quot;tncpa_ti_tnsb_statusbar&quot;
** Settings Menu, Marquee tab, First item: &quot;tncpa_fi_tnsb_applications&quot;
** Settings Menu, Marquee tab, First item, Button: &quot; ... &quot;
** Settings Menu, Marquee tab, First item, Button selected, Title bar: &quot;tncpa_ti_of_title&quot;
** Settings Menu, Marquee tab, First item, Button selected, All buttons...
** Application Manager, Title Bar: &quot;ai_ti_main&quot;
** Application Manager, Installed Applications, Size Column: &quot;ai_li_size_100kb_10&quot; and &quot;ai_li_size_max_99kb&quot;
** Application Manager, Available Applications, Size Column: &quot;ai_li_size_100kb_10&quot; and &quot;ai_li_size_max_99kb&quot;
** Application Manager, Available Applications, Install Error (or Update Error), Close Button: &quot;ainibdclose&quot;</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.15testing9</title>
    <id>2124</id>
    <revision>
      <id>38961</id>
      <timestamp>2010-09-22T11:25:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

By using these testing images, you're '''morally obligated to test them''' and to edit this page and report -every single bug you find-, no matter if they're theme flaws, quirks, bugs or crashes. You can optionally also use [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugzilla] , use version 0.15.

IF YOU SEE ANY MISSING TRANSLATIONS, PLEASE REPORT THEM IMMEDIATELY.

'''Please send the bug report urls to mer-chatter (see [[Mer/Awareness]] ) as well and share your bugs, testing experiences.'''

Test master is Meizirkki, and can be found in #mer on irc.freenode.net usually and you can ask him if there's some specialized areas that need testing. Take [http://guest:guest@trac.tspre.org:9010 the &quot;Completed&quot; things first]. If you are testing, go to #mer anyway. Good place to be.

These images will not be the only ones this week. In N8x0 installer, when it asks for URL=, write URL=http://the.image.intended. Instructions on [[Mer/Documentation/Installation]] still apply.

These images may potentially turn your device into a insane machine bent on removing humanity from this earth and may potentially brick your device, so, NO WARRANTY.

[http://stskeeps.subnetmask.net/mer/0.15testing9/mer-x86-generic-image-v0.15testing9.vmdk.zip Mer X86 VMDK]

[http://stskeeps.subnetmask.net/mer/0.15testing9/mer-x86-generic-image-v0.15testing9.tar.gz Mer X86 rootfs version]

[http://stskeeps.subnetmask.net/mer/0.15testing9/mer-armel-n8x0-standard-v0.15testing9.zImage Mer N8x0 kernel, not for JFFS version]

[http://stskeeps.subnetmask.net/mer/0.15testing9/mer-armel-n8x0-image-v0.15testing9.tar.gz Mer N8x0, rootfs version] 

[http://stskeeps.subnetmask.net/mer/0.15testing9/mer-armel-n8x0-image-v0.15testing9.jffs2 Mer N8x0, JFFS version, use with JFFS kernel]

[http://stskeeps.subnetmask.net/mer/0.15testing9/mer-armel-n8x0-flashrootfs-v0.15testing9.zImage Mer N8x0 kernel, JFFS version]

[http://stskeeps.subnetmask.net/mer/0.15testing9/mer-armel-smartq5-image-v0.15testing9.SmartQ5 Mer SmartQ5, firmware version]

[http://stskeeps.subnetmask.net/mer/0.15testing9/mer-armel-smartq7-image-v0.15testing9.SmartQ7 Mer SmartQ7, firmware version] 

[http://stskeeps.subnetmask.net/mer/0.15testing9/mer-armel-smartq5-rootfs-v0.15testing9.tar.gz Mer SmartQ5, rootfs version]

[http://stskeeps.subnetmask.net/mer/0.15testing9/mer-armel-smartq7-rootfs-v0.15testing9.tar.gz Mer SmartQ7, rootfs version]

[http://stskeeps.subnetmask.net/mer/0.15testing9/mer-armel-freerunner-rootfs-v0.15testing9.tar.gz Mer Freerunner, rootfs version, kernel in /boot]

For use with QEMU &amp; KVM, download the Mer X86 VMDK version, unzip, and convert to a ''qcow2'' image with the ''qemu-img convert'' command.

&lt;pre&gt;
MD5sums:

a0db6ede7fba51e32ce514c50865be0f  mer-armel-n8x0-flashrootfs-v0.15testing9.zImage
53541811f4b8d04d9a21ab59828e0d58  mer-armel-freerunner-rootfs-v0.15testing9.tar.gz
a0db6ede7fba51e32ce514c50865be0f  mer-armel-n8x0-flashrootfs-v0.15testing9.zImage
2ae4d404623ed8bd2fd447e89cbbe54f  mer-armel-n8x0-image-v0.15testing9.jffs2
f0f5d515073684d71fc3eed8ecf51662  mer-armel-n8x0-image-v0.15testing9.jffs2.raw
48013ddf8c99dd906a91e70037253126  mer-armel-n8x0-image-v0.15testing9.tar.gz
ff2ae5a7328c9ae668ae2b2b466b7e07  mer-armel-n8x0-standard-v0.15testing9.zImage
2cf1941fe0272d2de409ae6ebdb14402  mer-armel-smartq5-rootfs-v0.15testing9.tar.gz
61d34cf1bb6a95044db2e89782c86456  mer-armel-smartq5.SmartQ5
c995fd936a213af15313d2d34248792c  mer-armel-smartq7-rootfs-v0.15testing9.tar.gz
ec9d30bb9cc0233f578d48dcbc0823c2  mer-armel-smartq7.SmartQ7
764e43e920b798c7dc43b586d587e601  mer-x86-generic-image-v0.15testing9.tar.gz
ec11a053063a2cc1b878a425e3742079  mer-x86-generic-image-v0.15testing9.vmdk.zip

&lt;/pre&gt;

== Bugs in 0.15testing6 ==

* (in progress of getting fixed) - Chinese translations are broken.
* N8x0: Xorg acts weird
* N8x0: hald-addon-bme has &quot;batery.reporing.last_full&quot;
* Missing translations for default locale (En_US) mainly in Application manager (ai_ti_main, ai_li_size_100kb, ai_li_size_max_99kb, aibddetailsclose, ai_ia_select_location, ai_fi_select_location_application, ai_fi_select_location_location, aibdselectlocationok, aibdselectlocationcancel, ai_ni_install_sucessful) , but also in Settings (&quot;tncpa_ap_tn_sb&quot;, &quot;tncpa_ti_tnsb_title&quot;, &quot;tncpa_fi_tnsb_applications&quot;, &quot;tncpa_bv_tnsb_organise&quot;, basically most if not *all* that beging with &quot;tncpa_&quot;, there is too many to retype here, almost nothing is translated there, apart from some names of applets)
* FineFileManager installed from Application Manager does not display any files nor directories and has missing icon in the bottom toolbar.
* Tear has missing &quot;home&quot; icon in bottom toolbar
* The &quot;Are you sure you wish to reboot?&quot; window is broken. It appears in the upper-left corner, without decoration, the left and top sides of the window are cut off. The strings for Yes and No buttons are missing (&quot;wdgtbdyes&quot; and &quot;wdgtbdno&quot;). By the way, this goes against many user interface guidelines. The buttons should say &quot;Reboot&quot; and &quot;Cancel&quot; instead of &quot;Yes&quot; and &quot;No&quot;.
* The same issue as above applies to confirming shutdown and offline mode. Obviously, the buttons should be &quot;Shut down/Cancel&quot; and &quot;Go Offline/Cancel&quot;, respectively.
* Cannot click on links while browsing with tear under Vmware image (vm bug or tear bug?)
* Mirage installed from Application Manager does not launch. Crashes on ImportError: No module named osso in /usr/share/mirage/mirage.py line 35 &quot;import osso&quot;
** Issue is due to python-osso not supporting python2.5 (stskeeps)
** Tested with launching using python2.6 instead of python2.5 (epage)
*** Mirage seems to not have any major compatibility issues between python versions
*** python-osso dependency then gets satisfied and the world is a happy place
* Missing icons in Terminal bottom toolbar [http://img219.imageshack.us/img219/6971/screenshot02.png Screenshot]
* Settings app entry should have an icon (not just the default one); [http://img44.imageshack.us/img44/7066/screenshot03r.png Screenshot]
* Inconsistency in icon size and style. Example: tear should have a bigger icon. Mer project should define a standard size for icons so that packagers know what icons they should pack in their app. [http://img44.imageshack.us/img44/6417/screenshot01y.png Screenshot]
* Installing (through app manager) an app shorcut to any other folder than &quot;extras&quot; has no effect. The app entry always end up in extras (I tried to install Tear in &quot;Internet&quot; -&gt; ends up in &quot;extras&quot;. Same for several apps).
* HomeIP applet installed from Application Manager, cannot be selected to show on homescreen (selecting it has no effect).
** python-hildondesktop broken?
* hildon-desktop-env needs dependancy on hildon-application-manager-l10n-public-enus1 hildon-common-strings-l10n-public-enus1 hildon-control-panel-l10n-public-enus1 hildon-fm-l10n-public-enus1 hildon-input-method-l10n-public-enus1 hildon-libs-l10n-public-enus1 ke-recv-l10n-public-enus1 maemo-af-desktop-l10n-public-enus1 osso-games-l10n-public-enus1 osso-system-lock-l10n-public-enus1 osso-uri-l10n-public-enus1

== Added strings to en_US ==

&lt;pre&gt;

In hildon-application-manager:

# This is the name of the top bar in HAM
msgid &quot;ai_ti_main&quot;
msgstr &quot;Home&quot;

msgid &quot;ai_li_size_max_99kb&quot;
msgstr &quot;%d kB&quot;

msgid &quot;ai_li_size_100kb_10mb&quot;
msgstr &quot;%.1f MB&quot;

msgid &quot;ai_li_size_10mb_1gb&quot;
msgstr &quot;%d MB&quot;

msgid &quot;ai_li_size_larger_than_1gb&quot;
msgstr &quot;%.1f GB&quot;

msgid &quot;ai_li_de_size_max_999kb&quot;
msgstr &quot;%d kB&quot;

msgid &quot;ai_li_de_size_1mb_10mb&quot;
msgstr &quot;%.2f MB&quot;

msgid &quot;ai_li_de_size_10mb_1gb&quot;
msgstr &quot;%.1f MB&quot;

msgid &quot;ai_li_de_size_larger_than_1gb&quot;
msgstr &quot;%.2f GB&quot;

msgid &quot;ai_bd_details_close&quot;
msgstr &quot;Close&quot;

msgid &quot;ai_ia_select_location&quot;
msgstr &quot;Select location for application&quot;

msgid &quot;ai_fi_select_location_application&quot;
msgstr &quot;Application:&quot;

msgid &quot;ai_fi_select_location_location&quot;
msgstr &quot;Location&quot;

msgid &quot;ai_bd_select_location_ok&quot;
msgstr &quot;OK&quot;

msgid &quot;ai_bd_select_location_change_folder&quot;
msgstr &quot;Change folder&quot;

msgid &quot;ai_ni_install_successful&quot;
msgstr &quot;%s installed&quot;

msgid &quot;tncpa_li_plugin_update_notifier&quot;
msgstr &quot;Software Updates&quot;

### From 20090711:

msgid &quot;ai_ti_select_location&quot;
msgstr &quot;Select location&quot;


In hildon-libs:

In hildon-input-method:

msgid &quot;inpu_nc_common_menu_tools&quot;
msgstr &quot;Tools&quot;

msgid &quot;inpu_nc_common_menu_edit_cut&quot;
msgstr &quot;Cut&quot;

msgid &quot;inpu_nc_common_menu_edit_copy&quot;
msgstr &quot;Copy&quot;

msgid &quot;inpu_nc_common_menu_edit_paste&quot;
msgstr &quot;Paste&quot;

msgid &quot;inpu_nc_common_menu_tools_help&quot;
msgstr &quot;Help&quot;

In hildon-fm: From 20090711

msgid &quot;ckdg_bd_change_folder_ok&quot;
msgstr &quot;OK&quot;


&lt;/pre&gt;

== Bugs in testing7 ==

Mark if previous bugs were fixed in this version as well.

* The default terminal cannot be scrolled in any way. No scrollbar, does not react to touch. 
* The strings still have &quot;Nokia&quot; and &quot;Maemo&quot; in them. They should be replaced with &quot;Mer&quot;.
* At least for N8x0, it would be reasonable to double the backlight timeouts (60 for fade, 120 to disable). The device is just too slow for some actions to complete (especially in the terminal) within 30 seconds, making the default setup irritating.
* In the panel for changing brightness and volume, the volume icon is repeated in a grid. There should be only one icon there, not four. 
* When a reboot or shutdown procedure is taking place, all the applets that change their state show up briefly on the screen, making the process look unpolished and ugly. There's also a blinking cursor showing through if you leave the terminal open while shutting down or rebooting. Basically, if there is anything on the screen during a reboot or shutdown that changes its state, it shows up.  
* &quot;Authorizations&quot; menu element should be hidden. It's of no use to normal users.
* &quot;Drag Lock&quot; should be renamed to &quot;Lock applets&quot; or a similar, less confusing name.
* Erratic dialog window behaviour. Open up the terminal and hit the Menu key a few times to open the menu and close it repeatedly. It'll open left-aligned or centered, depending on your luck.
* Error dialog windows (banners on the bottom of the screen with a &quot;stop sign&quot; icon) cannot be dismissed in any other way than hitting the hardware &quot;Back&quot; button.  
* Disable grab in gksu for n800/non-kbd users - it asks for password in locale settings.
* Chinese strings now working
* [Nokia n8x0]NetworkManager not working. NM-applet says &quot;Device not ready&quot;.
* [Nokia n810]Fn-key not working. (Install x11-xkb-utils to fix)
** Added to imager (stskeeps)
* [Nokia n8x0]Powerlaunch dialog is not popping up when pressing power button.
(Note: if this is the &quot;Device mode&quot; dialog window then it works fine for me with an N810. Short press = Device mode appears. Long press = soft poweroff - TomaszD)
* [Nokia n8x0] Going to soft poweroff by pressing and holding the power button for about two seconds results in: backlight turns off, comes back for a second, then goes away and soft poweroff is completed. Same thing happens when coming back from soft poweroff, the screen softly &quot;blinks&quot; at the user. Blinking does not occur when going into soft poweroff when the option is chosen from the Device mode dialog, however it does happen every time when the device comes back from this mode.
* [Nokia n8x0] If going to soft poweroff is done by pushing and holding a button for two seconds, then it stands to reason that the same action should turn the device back into normal mode. This is not the case - only a short push of the button brings it back to life.
* Maemopad: Missing translations = maemopad_save_changes_made, maemopadyes, maemopadno. Open files menu is screwed up. Dialog to confirm saving is displayed on top left of screen instead of center.
** Maemopad has no en_US translation. https://stage.maemo.org/svn/maemo/projects/tools/trunk/maemo_testing/maemopad/po/en_GB.po is a possible basis. (Stskeeps)
* Missing text: Settings -&gt; About -&gt; License button
* Desktop Menu Issues
** Calibrate Screen menu item non-functional
** Help menu item non-functional
* NetworkManager Applet 0.7.0.97
** Clicking &quot;NetworkManager Website&quot; errors with &quot;Failed to show url Failed to execute child process &quot;xdg-open&quot; (No such file or directory)&quot;
** Clicking OK Button on above error message is non-functional
* statusbarapplets misses hook to CPA
* statusbarapplets tries to read $HOME.osso/hildon-desktop/statusbar.conf, not $HOME/.osso/hildon-desktop/statusbar.conf
* statusbarapplets title needs to be better and less upper cased.
* blueman does not install correctly - errors
* qtablet does not install correctly - errors
* Display issues
** Editing DSL Connection -&gt; PPP Settings tab -&gt; &quot;Available to all users&quot; has the letters &quot;Av&quot; garbled.
** Display issue: Editing DSL Connection -&gt; PPP Settings tab -&gt; Options below Available to all users&quot; is not displayed on the screen.
** Display issue: Editing DSL Connection -&gt; IPv4 Settings -&gt; Button for &quot;Editing IPv4 routes&quot; is not fully displayed on the screen.
* Installed Applications not launching from the Main Menu
** File Manager (Fine File Manager alternative does launch)
** Help Application
** Address Book
** RSS News Reader
** PDF Viewer
** Global Search
*** Not sure how to diagnose for error messages... ideas?  (mtc)

=== Bugs in testing7 - Localization Issues ===
* en_GB
** Virtual Keyboard Menu: &quot;inpu_nc_common_menu_tools&quot;
** Settings Menu: &quot;tncpa_ap_tn_sb&quot;
** Settings Menu, Title bar for above menu item: &quot;tncpa_ti_tnsb_title&quot;
** Settings Menu, Tab title: &quot;tncpa_ti_tnsb_statusbar&quot;
** Settings Menu, Marquee tab, First item: &quot;tncpa_fi_tnsb_applications&quot;
** Settings Menu, Marquee tab, First item, Button: &quot; ... &quot;
** Settings Menu, Marquee tab, First item, Button selected, Title bar: &quot;tncpa_ti_of_title&quot;
** Settings Menu, Marquee tab, First item, Button selected, All buttons...
** Application Manager, Title Bar: &quot;ai_ti_main&quot;
** Application Manager, Installed Applications, Size Column: &quot;ai_li_size_100kb_10&quot; and &quot;ai_li_size_max_99kb&quot;
** Application Manager, Available Applications, Size Column: &quot;ai_li_size_100kb_10&quot; and &quot;ai_li_size_max_99kb&quot;
** Application Manager, Available Applications, Install Error (or Update Error), Close Button: &quot;ainibdclose&quot;

== Bugs in testing9 ==
*
* apt-get complains with the error &quot;ValueError: /usr/bin/python does not match the python default version. It must be reset to point to python2.6&quot; when trying to install screen (and possibly other packages). This can be fixed by making /usr/bin/python point to python2.6 rather than /etc/alternatives/python, which ultimately points to python-launcher.
* Without the fix above, packages like python-gst0.10, python-pygame, python-numeric are broken. Probably most of python stuff is broken. To quickly fix python in testing9: sudo rm /usr/bin/python &amp;&amp; sudo ln -s python2.6 /usr/bin/python
* The panel is limited to 4 icons. When there are more than 4 icons on the panel (nm-applet, blueman, advanced-power, advanced backlight, loadapplet), then the last one dissappears. You can click to the right of the last icon to bring up the menu with the rest of the icons, but there should be an icon in and of itself to indicate that some of the panel icons are hidden away.
* [n8x0] Fn key now works!
** The Fn key doesn't work while in the username/password/hostname wizard.
** The Fn key and dpad will stop working if layout is changed (setxkbmap)
* [n8x0] Power button (still?) doesn't work. Detected, but does not bring up the  menu

* Application Manager - missing string - &quot;ai_ti_select_location&quot; (window title of selecting where in the menu to put the application icon).
** Added
* Application Manager - missing string - &quot;ckdg_bd_change_folder_ok&quot; (button confirming the change of the folder where to put the application icon).
** Added
* Blueman bluetooth manager works, but you have to click and hold to keep the main menu open, a tap simply opens it up and closes it immidiately.

* [n8x0] Tapping input fields with stylus doesn't bring up the keyboard. It work when tapping with a finger though. One fix is to bring up the control panel by entering &quot;controlpanel&quot; in a terminal. Then choose &quot;Text Input Settings&quot;. From there you pick &quot;On-Screen&quot;. If you here set &quot;Launch finger keyboard&quot; to never, you can use the stylus in most applications to bring up the keyboard.
SmartQ7 - User account generation at first boot doesn't show onscreen keyboard for &quot;Confirm Password&quot; dialogue box, continued blank OK
:white_gecko - I can't confirm this, on my freerunner the onscreenkeyboard appears for the password confirm dialog.

* [n8x0] Missing icons from advanced power buttons http://imgur.com/JB7xt

Q7 - Changing input settings/onscreen/launchfingerboaurd=with finger and stylus causes keyboard loss in xterm
* [Q7] Authorizations app layout flows text offscreen on details pane
* WPA networks are still greyed out.
* Xterm missing scrollbars
* Onscreenkeyboard has no cursor keys
* Hardware power button not mapped
* Application manager - Installed app dialogue box has no &quot;OK&quot; button
* Application Manager - Installed apps default to Extras Menu regardless of settings
* Maemopad - Open File dialogue blank, no text no icons
* Disconnecting external power freezes X (sometimes)
* ts_calibrate fails with &quot;ts_open: No such file or directory&quot;
* [n8x0] bootreason: charger will cause instability! (booting the device by plugging in charger)

* [SmartQ7] Application Manager freezes after installing an application or removing an application - success window notification stays on screen and application list does not reload.  Have to halt application to continue.
* [SmartQ7] Menu System Problem - Several applications included in the image show up in the Extras menu and should be in other first tier menus instead (example:  Network Connections should be in Communications, Tear should be in Internet)
* [SmartQ7] Installing an application results in the new application always being placed in the Extras menu.
* [SmartQ7] SD Card does not mount automatically - needed to add code to /etc/fstab (/dev/mmcblk1p1 /media/sd vfat defaults 0 0) to get it working - please consider adding to image
* [SmartQ7] Arrow keys on the face of the device (up/down) aren't turning pages in FBReader.  Created vim.mod in user home directory with added lines of keycode 73 = Page_Up and keycode 74 = Page_Down.  Then created 62xmodap file in /etc/start-hildon.d/ with code - #!/bin/sh on first line and xmodmap vim.mod on second line.  This allows keys to work after boot.  Hopefully this or another more elegant solution can be added to the image.
* [SmartQ7]  Applications trying to access the file system have issues unless the SD card is mounted correctly.
* [SmartQ7] No method of power off seems to exist

== Bugs in testing10 ==

hildon-desktop-env has an unecessary dependency on him-arabic (I noticed after having removed him-arabic which I don't need)</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.16</title>
    <id>2275</id>
    <revision>
      <id>39005</id>
      <timestamp>2010-09-22T12:51:54Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

''WARNING: Be careful with SmartQ releases - we don't have a daemon that does graceful shutdown at battery low. Read comment on the known issues.''

If you want help with the Mer project, show up in #mer on IRC, on irc.freenode.net - or if you'd like to help out in the project.

Mer is made by the Mer project - a maemo.org community project, read more about it [[Mer/About|here]] 

If you want a Mer logo sticker for your Mer device, see [[Mer/Marketing]]

== Disclaimer ==

* '''There is ''no'' warranty'''. This may blow up your MMC, steal your wife or cause doomsday to come around. But if you find some bugs, please report them on [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugs.maemo.org Bugzilla] and we'll try to see what we can do to fix the bug causing it.
* If anything goes wrong, grab a USB cable, and rescue mode is done through holding down Home key when booting Mer (on Nokia Internet Tablets)
* Mer is a work-in-progress and is not yet day-to-day usable. We are getting there, but don't expect too much of it.
* '''This is a transitional release and we needed to move on to better things - such as the new UIs. Many things will be broken in this.'''
* '''This release is locked to :0.16 release repository and will not be getting updates. We cannot promise apt-get dist-upgrade ability to next release for this one''

== Notable accomplishments and news ==

* New Mer roadmap: [[Mer/Roadmap]]
* Updated SmartQ kernel to latest push from SmartDevices
* WiFi installer in first boot wizard for SmartQ
* Timezone changer in f-b-w
* New webkit version/Tear
* GTK 2.14
* Drag and lock save patch for HD
* No more libhildonhelp
* We are pleased to announce that a group from Marvell R&amp;D are evaluating Mer
* Mer imager has moved over to gitorious : http://gitorious.org/mer/imager
* Cross compilation support on OBS
* Updated to beta2 packages
* Maemo Summit 2009 presentations:
** Stskeeps: http://www.slideshare.net/carstenmunk/mer-how-the-community-innovates , http://www.slideshare.net/carstenmunk/mer-a-year-after
** lbt: http://www.slideshare.net/mrlbt/git-how-does-that-work-then , http://www.slideshare.net/mrlbt/building-for-mer
** TomaszD: http://www.slideshare.net/guesta05d7a/mer-from-users-perspective-2409559
* Freemantle icon replacements for Fremantle osso-icons

== Screenshots ==

&lt;gallery perRow=&quot;5&quot;&gt;
Image:Mer0.11_Blueman3.png
Image:Mer0.12_Blueman7.png
Image:Mer0.11_NetworkManager.png
Image:Mer0.11_Notifications.png
Image:Mer0.11_Xterm.png
Image:Mer0.11_AdvancedBacklight.png
Image:Mer0.11_HAM.png
Image:Mer0.11_AM.png
Image:Mer0.11_Filechooser.png
Image:Mer0.11_Mirage.png
Image:Mer0.11_Maemopad.png
Image:Mer0.11_homeip.png
Image:Mer0.12_ShopperQt.png
Image:Mer0.14_him_arabic.png
Image:Mer0.14_claws.png
&lt;/gallery&gt;

== Known issues ==

* This release does not come with Q5/Q7 firmware image. Only rootfs image (contains kernel that can be booted with zenvoid's qi bootloader) as we need people to test it. The reason for this is that if we write to internal SD card when power gets cut, internal SD dies. We are going to make a daemon for this in 0.17 to shut down gracefully.

* This is a transitional release and many things are broken. We have part of Fremantle final stuff and most importantly, Application Manager is a bit broken.

* [SmartQ5] Bluetooth does not work - hciconfig simply returns

* [SmartQ5] Wifi Auto-installs, but the wifi menu keeps showing &quot;Device Not Ready&quot;

* [Nokia 770] Worked fine on first boot, after reboot/power cycle the device hangs with Mer desktop wallpaper and nothing else on screen (battery removal required). DCC: this happened to me on the third boot, fourth is OK, Maybe linked to booting with or without power cable (without works fine). CXL: Also experienced occasional hangs on startup. Ctrl key noes not work in xterm. Xterm menus not localised. Cannot scroll application list in application manager. System shutdowns immediately on startup with addvandced-power packages install unless power plugged in, will shutdown when external power removed (even in apparently hung state). Memory foot print ~90M after startup with xterm and top.

* [n800] Pressing shift on the keyboard is very unresponsive compared to pressing other keys.

* [N800] Brightness is weak on 1st time boot, at the end of it, the screen lit up, but after login, dim again (it seens to flick a little too). Bright control icon on home screen does nothing. (is there a workaround?) update: this was caused by turning on the device with power cable attach´d. Otherwise works ok!

* [N800] Yet no &quot;Locale&quot; for Brazil.

* [N800] Rotating the screen via brightness/volume home icon just change the place where i should press the menu buttons, but do not rotate the screen itself. It causes to some menu buttons, like bright/volume, be outside the touchscreen limit, making impossible to change back without a hard reset.

* [N800] Turning on the device with power cable, after the boot, removing it causes the system to auto shutdown.

* [N800] gconf-editor and x-chat could not be installed: missing maemo-select-menu-location even in red pill mode
* [N800] maemopad could not be installed: missing libhildonhelp0 &gt;= 2.0.5-1 even in red pill mode
* [N800] pidgin do not created a link on launcher &quot;extras&quot; menu, only a line

== Installation guide ==

[[Mer/Documentation/Installation|Installation guide can be found here]], including link to Mer installer for N8x0 - version should be '''2.0.0-mer12'''. When it asks for URL, point it to the rootfs URL for n8x0.

== Released images ==

{| class = &quot;wikitable&quot;
|-
| MD5sum || URL || Description
|-
| ecbcb99df43ef03f6282a88fc421233f || http://stskeeps.subnetmask.net/mer/0.16/mer-armel-n8x0-image-v0.16.jffs2 || flashable image for Nokia N8x0 port, JFFS2 part (requires kernel below)
|-
| 2876b5eead302ef49166a44bcf4307d4 || http://stskeeps.subnetmask.net/mer/0.16/mer-armel-n8x0-flashrootfs-v0.16.zImage || flashable image for Nokia N8x0 port, Kernel part (requires jffs2 above)
|-
| 01f29aa7c7244b5d441a33c16a2c0fb5 || http://stskeeps.subnetmask.net/mer/0.16/mer-armel-n8x0-standard-v0.16.zImage || kernel for standard setups, Nokia N8x0 port. Use to get extra features (working USBnet on XP, etc)
|-
| fb22728689f629e923662dac44ae9935 || http://stskeeps.subnetmask.net/mer/0.16/mer-armel-n8x0-image-v0.16.tar.gz || rootfs tar.gz for Nokia N8x0 port
|-
| 96ffcf4f02c768c0b4d580fcc6e19c7c || http://stskeeps.subnetmask.net/mer/0.16/mer-x86-generic-image-v0.16.tar.gz || rootfs for X86, generic
|-
| fd106a3ff0a4854fe5d147fc2c83af52 || http://stskeeps.subnetmask.net/mer/0.16/mer-x86-generic-image-v0.16.vmdk.zip || VMDK, X86 for VirtualBox, VMware, etc.
|-
| a6117c736a83bb070241a2ba2c642f0c  || http://stskeeps.subnetmask.net/mer/0.16/mer-armel-smartq5-rootfs-v0.16.tar.gz || rootfs for SmartQ5
&lt;!--
|- 
| 58908cefa4c1d7a58b2f1e136a6a0932 || http://stskeeps.subnetmask.net/mer/0.16/mer-armel-smartq5-image-v0.16.SmartQ5 || firmware image for SmartQ5
--&gt;
|-
| 8584cec9c22b67b7593ab09e2edafc62 || http://stskeeps.subnetmask.net/mer/0.16/mer-armel-smartq7-rootfs-v0.16.tar.gz || rootfs for SmartQ7
&lt;!--
|- 
| d4ad7ecaa4b5d7fa1276f6e5307ac7da || http://stskeeps.subnetmask.net/mer/0.16/mer-armel-smartq7-image-v0.16.SmartQ7 || firmware image for SmartQ7
--&gt;
|-
| b6743aabca0c182a59d03e0a843a0cc7 || http://stskeeps.subnetmask.net/mer/0.16/mer-armel-770-image-v0.16.tar.gz || '''Experimental''' Nokia 770 rootfs.
|}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.16testing</title>
    <id>2283</id>
    <revision>
      <id>45976</id>
      <timestamp>2011-12-12T23:08:06Z</timestamp>
      <contributor>
        <username>johndoe32102002</username>
        <id>4869</id>
      </contributor>
      <minor/>
      <comment>/* Bugs in 0.16testing6 */ Added N810 Support</comment>
      <text xml:space="preserve">{{Mer}}

By using these testing images, you're '''morally obligated to test them''' and to edit this page and report -every single bug you find-, no matter if they're theme flaws, quirks, bugs or crashes. You can optionally also use [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugzilla] , use version 0.16.

IF YOU SEE ANY MISSING TRANSLATIONS, PLEASE REPORT THEM IMMEDIATELY.

'''Please send the bug report urls to mer-chatter (see [[Mer/Awareness]] ) as well and share your bugs, testing experiences.'''

Test master is Meizirkki, and can be found in #mer on irc.freenode.net usually and you can ask him if there's some specialized areas that need testing. Take [http://guest:guest@trac.tspre.org:9010 the &quot;Completed&quot; things first]. If you are testing, go to #mer anyway. Good place to be.

These images will not be the only ones this week. In N8x0 installer, when it asks for URL=, write URL=http://the.image.intended. Instructions on [[Mer/Documentation/Installation]] still apply.

These images may potentially turn your device into a insane machine bent on removing humanity from this earth and may potentially brick your device, so, NO WARRANTY.

CURRENT VERSION: 0.16testing6

[http://stskeeps.subnetmask.net/mer/0.16testing6/mer-x86-generic-image-v0.16testing6.vmdk.zip Mer X86 VMDK] - an image used by the VM packages on a normal desktop

[http://stskeeps.subnetmask.net/mer/0.16testing6/mer-x86-generic-image-v0.16testing6.tar.gz Mer X86 rootfs version] - a raw rootfs tarball for PCs (use only if you know what that is)

[http://stskeeps.subnetmask.net/mer/0.16testing6/mer-armel-n8x0-standard-v0.16testing6.zImage Mer N8x0 kernel, not for JFFS version] - normal image for dual-boot Mer with Mer on SD (most N8x0 users)

[http://stskeeps.subnetmask.net/mer/0.16testing6/mer-armel-n8x0-image-v0.16testing6.tar.gz Mer N8x0, rootfs version] - a raw rootfs tarball (use only if you know what that is)

[http://stskeeps.subnetmask.net/mer/0.16testing6/mer-armel-n8x0-image-v0.16testing6.jffs2 Mer N8x0, JFFS version, use with JFFS kernel] - special image for flashing Mer to internal flash (very brave N8x0 users who know how to do this without asking)

[http://stskeeps.subnetmask.net/mer/0.16testing6/mer-armel-n8x0-flashrootfs-v0.16testing6.zImage Mer N8x0 kernel, JFFS version] - kernel for above flash rootfs (you knew the kernel needed flashing separately right?)

[http://stskeeps.subnetmask.net/mer/0.16testing6/mer-armel-770-image-v0.16testing6.tar.gz Mer 770, rootfs version] - the rootfs tarball needed for the 770

[http://stskeeps.subnetmask.net/mer/0.16testing6/mer-armel-smartq5-image-v0.16testing6.SmartQ5 Mer SmartQ5, firmware version] - normal SmartQ5 flashable image

[http://stskeeps.subnetmask.net/mer/0.16testing6/mer-armel-smartq7-image-v0.16testing6.SmartQ7 Mer SmartQ7, firmware version] - normal SmartQ7 flashable image 

[http://stskeeps.subnetmask.net/mer/0.16testing6/mer-armel-smartq5-rootfs-v0.16testing6.tar.gz Mer SmartQ5, rootfs version] - dual-boot SmartQ5 rootfs (use if you are following dual-boot instructions)

[http://stskeeps.subnetmask.net/mer/0.16testing6/mer-armel-smartq7-rootfs-v0.16testing6.tar.gz Mer SmartQ7, rootfs version] - dual-boot SmartQ7 rootfs (use if you are following dual-boot instructions)

For use with QEMU &amp; KVM, download the Mer X86 VMDK version, unzip, and convert to a ''qcow2'' image with the ''qemu-img convert'' command.

&lt;pre&gt;
MD5sums:

53dd532e05199f4f7cd17b6c7b8c058b  mer-armel-770-image-v0.16testing6.tar.gz
afa571d89aaf328be68c3e0b8d94b436  mer-armel-n8x0-flashrootfs-v0.16testing6.zImage
c1bb5d2af27d2ed7b70dfd6b5be270dc  mer-armel-n8x0-image-v0.16testing6.jffs2
10e49c574bc02a1c069199c15c650fe2  mer-armel-n8x0-image-v0.16testing6.jffs2.raw
b04686b943d94916508d1c668303212b  mer-armel-n8x0-image-v0.16testing6.tar.gz
8c5396913f7879c681e8f9080e4c2d0e  mer-armel-n8x0-standard-v0.16testing6.zImage
fa74cea57be963fb1ad682424bc7e04f  mer-armel-smartq5-image-v0.16testing6.SmartQ5
0e5aaa19f19303e5296704ba702c6291  mer-armel-smartq5-rootfs-v0.16testing6.tar.gz
6e9ef3524d5bd8b36bafa06b83887a5e  mer-armel-smartq7-image-v0.16testing6.SmartQ7
9b6c10f54bdf8cc386a5024a7f0b6ce2  mer-armel-smartq7-rootfs-v0.16testing6.tar.gz
b1910786e2e1fdd03c25e15635e0a366  mer-x86-generic-image-v0.16testing6.tar.gz
c615e0dcc6a7b73067ce67410fff97f0  mer-x86-generic-image-v0.16testing6.vmdk.zip


&lt;/pre&gt;

== Bugs in 0.16testing6 ==
* [N810] Produces non-bootable N810: &quot;sudo ./flasher-3.5 -k mer-armel-n8x0-flashrootfs-v0.16testing6.zImage -r mer-armel-n8x0-image-v0.16testing6.jffs2 -f -R&quot;

* [SmartQ5] Bluetooth does not work - hciconfig simply returns

* [SmartQ5] has the flicker too and man is it annoying.
** workaround: rename /etc/init.d/ondemand

* [SmartQ7] after a while the screen (and/or backlight?) begins to flicker , image quality is decreased, touchscreen respond is slower (occured after starting nm-applet, opening mer menu, waiting a while after bootup)

* [SmartQ7] Keyboard doesn't have BackSpace, Return, Tab and some other symbols on buttons, but buttons works fine.

* [SmartQ7] During setup, sometimes virtual keyboard doesn't starts.

* [SmartQ7] During setup, virtual keyboard or scrollbars freeze and lock system 

* [Nokia 770] Worked fine on first boot, after reboot/power cycle the device hangs with Mer desktop wallpaper and nothing else on screen (battery removal required). DCC: this happened to me on the third boot, fourth is OK, Maybe linked to booting with or without power cable (without works fine)

* [N800] Options in settings do nothing.

* [N800] When editing network connections (menu-&gt; network settings -&gt;edit connections), the network manager essentially stalled, and the window labeled Network Connections could not be closed.

* [N800] No file manager (bug?)

* [N800] Keyboard in landscape mode is missing labels for the following keys: Menu (bottom-left), DEL (top-right), enter (2nd from top on right), and minimize (bottom-right). Shift and Lock keys only show Shi and Loc respectively.

* [N800] The default weather gadget's sun (is it really sunny in Helsinki) is transparent and only visible when the applet is dragged.

* [N800] Pressing shift on the keyboard is very unresponsive compared to pressing other keys.

* [N800] Brightness is weak on 1st time boot, at the end of it, the screen lit up, but after login, dim again (it seens to flick a little too). Bright control icon on home screen does nothing. (is there a workaround?) update: this was caused by turning on the device with power cable attach´d. Otherwise works ok!

* [N800] Yet no &quot;Locale&quot; for Brazil.

* [N800] Rotating the screen via brightness/volume home icon just change the place where i should press the menu buttons, but do not rotate the screen itself. It causes to some menu buttons, like bright/volume, be outside the touchscreen limit, making impossible to change back without a hard reset.

:* [N800] (DUPLICATE) When switching to portrait mode using the sound/brightness gadget, the only change on the display is part of the previous open window. Tapping the non-existent region on the far-left (now &quot;top&quot;) of the screen demonstrates the app menu can be opened, and the farthest &quot;right&quot; button (actually top) is the network manager. If rotate 180 degress (from default settings), screen doesn't change at all, while all menu items are available where they &quot;should&quot; be. Pull down menus from these items appear normal orientation, but input is still flipped.

* [N800] Turning on the device with power cable, after the boot, removing it causes the system to auto shutdown.

* [N800] gconf-editor and x-chat could not be installed: missing maemo-select-menu-location even in red pill mode

* [N800] maemopad could not be installed: missing libhildonhelp0 &gt;= 2.0.5-1 even in red pill mode

* [N800] pidgin do not created a link on launcher &quot;extras&quot; menu, only a line

* [N800] No sound (or at least no system sounds and no programs I found to test sound with)


fixed in this release:
* [N800] Wi-fi Network WPA error FIXED in this release!
* [N800] Power Off button, displays WORKING normal options such as reset, turn off, lock device, etc..
* [N800] Tear works well (except generic button icons in option manager; no javascript).

== Bugs in 0.16testing5 ==
* [Nokia n800] X Terminal CTRL button not works!
* [Nokia n800] changing themes crashes/freezes system. needs battery removal.
* [Nokia n800] tear: without icon in right corner button. 
* [Nokia n810] cannot access settings for EAP-PEAP with MSCHAPv2 because they take up more space than is available on the screen and does not have the functionality to scroll down. --fixed in testing6

* No settings application in menu-&gt;Settings item.

* [Nokia 770] desktop fails to appear (machine stuck at high cpu load). Only the sea picture is displayed, after the mer logo has disappeared. Maybe related to the fact that Mer did not mention to have found my swap partition. 0.15 used to find it. - ''saju: fixed swap code in gitorious''

* [Nokia n810] [Nokia n800] Unable to enter WPA password, dialog box is empty. 0.15 does not have this problem (marshel - i can edit wpa-key from netw.-manager and add the pass manually.) --fixed in testing6

* [Nokia n800] Unable to create a new wireless connection from the desktop buttom, dialog is empty.

* [Nokia n800] can't install maemopad and Xchat due to missing libhildonhelp0 

* [Nokia n800] ai_meserach and ai_me_refresh label on app manager buttons don´t hava a translation showing in english.

* [Nokia n800] Unable to create a new wireless connection from the Network Connections for all users. Aplly button always shadowed (not root?).

* [Nokia n800] Unable to see minimize, enter and backspace button on small touch keyboard (lateral buttons).

* [SmartQ7] No obvious way to exit App Manager. In fact, exiting applications in general can be hard to figure out; the top row icons don't convey much meaning --[[User:kyelewis|kyelewis]]

* [SmartQ7] SD card is not auto-mounted, nor is a mechanism provided to mount it. --[[User:kyelewis|kyelewis]]

* [SmartQ7] Widget support dies after first reboot- widgets cannot be moved, and text placement for the provided widget is incorrect. Also occured in 0.16testing3 --[[User:kyelewis|kyelewis]]

* [SmartQ7] Unable to enter WPA password, dialog box is empty. (Carried from 0.16testing3) --[[User:kyelewis|kyelewis]]

* [SmartQ7] Editing Wireless Security Settings in network-manager freezes mer when clicking 'Apply' --[[User:kyelewis|kyelewis]] (Update: only occurs if Wireless is enabled while you try to make change)

* [SmartQ7] Bluetooth Manager is incredibly slow, takes &gt;5 minutes to load, using all CPU time.

== Bugs in 0.16testing3 == 

Insert bugs here.

* [Nokia n810] conflict between libphonon4 and libqt4-phonon packages which is preventing installation of kdepim:
  dpkg: error processing /var/cache/apt/archives/libphonon4_4%3a4.3.1-0ubuntu3_armel.deb (--unpack):
 trying to overwrite `/usr/lib/libphonon.so.4', which is also in package libqt4-phonon

* [Nokia n810] dpad left and dpad down do not have auto key repeat.  dpad up and dpad right as well as other keys do.

* [Nokia n810] GtkTreeView row dragging not working.  This worked in 0.15.

* [Nokia n810] can't install maemopad due to missing libhildonhelp0

* [Nokia n810] screen calibration menu item does nothing

* [Nokia n810] app manager crashes:
** on first start after pressing &quot;Check for updates&quot; button
** after installing finefm from available applications menu
** everytime it tries to list available applications after that - this seems to be a timing-related problem.  If I try to access the Available applications button immediately on startup, it crashes.  If I wait 30 seconds, it works.

* [Nokia n810] Fn not working in first-boot-wizard - ''Stskeeps: expected testing4''

* [Nokia n810] onscreen keyboard always pops up during text entry even though built-in hardware keyboard is being used

* [Nokia n810] display rotation did very bad things. ''Stskeeps: Did you install Mer kernel with rotation support?''.  No, just clicked rotation icon in brightness app shortly after first-boot-wizard finished.

* [Nokia n810] python &quot;import gtk&quot; generated lots of Xlib: extension &quot;Generic Event Extension&quot; missing on display &quot;:0.0&quot;. ''Stskeeps: sadly fairly normal. Only a warning.''

* [Nokia n810] xterm menus messed up. ''Stskeeps: We are waiting with new osso-xterm because the newer one was broken - it is actually not a matter of translations. Has to be past 0.16 :/''

* [Nokia n810 &amp; SmartQ7] Unable to enter WPA password, dialog box is empty.  0.15 does not have this problem. ''Stskeeps: I suspect it's due to the movable dialogs problem. Someone revert the movable dialogs patch and see if it work?'' '' Meizirkki: no, the dialog is still empty after disabling movable dialogs and rebooting ''

* [Nokia n810] hildon-application-manager crashes.  Output [[Mer/Releases/0.16testing/hildon-application-manager.launch-crash|here]].

* [SmartQ7] After installation, on-screen keyboard is completely white and has no key symbols (Working for me on Q7 /Gnuet) (Works for me --[[User:kyelewis|kyelewis]])

* [SmartQ7] USB Networking wont start automatically on boot- needed 'sudo ifconfig usb0 192.168.2.15 up' to get it going- also, if 'up' missed, ifconfig will segfault! --[[User:kyelewis|kyelewis]]. ''Stskeeps: /etc/network/interfaces show it as being set up. That's weird.'' (Extra info: Device is actually pingable for about 15 seconds, then at some point during bootup it loses the IP setting --[[User:kyelewis|kyelewis]]). ''Stskeeps: expected testing4''

* [N800] Power button do no work
* [N800] Installing gpesummary crashes the desktop, same after reboot (unusable), message is like &quot;cant open /home/&lt;user&gt;/.gpedo&quot; --[[User:Eichi|Eichi]]
* [770] starting bluetooth manager kills MER / MRP

== Bugs in 0.16testing2 ==

Please test bugs in http://wiki.maemo.org/Mer/Releases/0.15 and see if they still persist. Otherwise add them below:

* [Nokia n810] Fn not working in first-boot-wizard - ''Stskeeps: expected testing4''
* [Nokia n800] Could not pass first-boot-wizard &quot;Type your full name&quot; (don´t have a usb keyboard to test with it/screen keyboard do not appear with stylus or with finger) ''Stskeeps: maemo-launcher wasn't being run, expected fix in testing3'' &quot;marshel: fixed in testing3&quot;
* [SmartQ7] As above, could not pass &quot;Type your full name&quot;. No soft keyboard and usb keyboard did not work. ''as above''
** This can be worked around by using [[Mer/Documentation/USB_Networking|USB networking]] and installing [http://download.opensuse.org/repositories/Maemo://Mer://Devel/Ubuntu_9.04/armel/first-boot-wizard_0.8_armel.deb first-boot-wizard_0.8_armel.deb] then doing a reboot
* [SmartQ5 &amp; Q7] Wifi-enabler not working, lacking unzip. The file 47smartq-firmware misplaced and in DOS-format. ''Stskeeps: expected fix in testing4''
** Workaround: Copy contents of /etc/47smartq-firmware and make new file: /etc/first-boot.d/47smartq-firmware 
** Don't forget to make read/executable (chmod a+rx /etc/first-boot.d/47smartq-firmware) ''Stskeeps: not needed''
** Install [http://launchpadlibrarian.net/19674308/unzip_5.52-12ubuntu1_armel.deb unzip_5.52-12ubuntu1_armel.deb], reboot and presto - wizard runs. ''Stskeeps: Expected in testing4''
* [SmartQ5 &amp; Q7] Application manager doesn't work. Starts but nothing more. ''
** Try plugging in the bluetooth dongle... spooky... (the log shows : get btadapter: No such adapter)

PS.: at 3pm@GMT the trac above cited is offline. ''Stskeeps: yeah, power cut in my city'.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.16testing/hildon-application-manager.launch-crash</title>
    <id>2296</id>
    <revision>
      <id>38962</id>
      <timestamp>2010-09-22T11:29:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

&lt;pre&gt;
/usr/share/hildon-application-manager/defaults: No such file or directory
Xlib:  extension &quot;Generic Event Extension&quot; missing on display &quot;:0.0&quot;.
Xlib:  extension &quot;Generic Event Extension&quot; missing on display &quot;:0.0&quot;.
Xlib:  extension &quot;Generic Event Extension&quot; missing on display &quot;:0.0&quot;.
Xlib:  extension &quot;Generic Event Extension&quot; missing on display &quot;:0.0&quot;.
Xlib:  extension &quot;Generic Event Extension&quot; missing on display &quot;:0.0&quot;.
hildon-application-manager.launch[2697]: GLIB DEBUG default - showing view 1
hildon-application-manager.launch[2697]: GLIB DEBUG default - main window pointer 0x2a06a048
hildon-application-manager.launch[2697]: GLIB DEBUG default - the top view is 1
/usr/share/hildon-application-manager/defaults: No such file or directory
error retriving file info: No such file or directory
hildon-application-manager.launch[2697]: GLIB DEBUG default - showing view 2
hildon-application-manager.launch[2697]: GLIB DEBUG default - main window pointer 0x2a06a150
hildon-application-manager.launch[2697]: GLIB WARNING ** hildon-1 - Icon theme lookup for icon `indicator_update1' failed: Icon 'indicator_update1' not present in theme
hildon-application-manager.launch[2697]: GLIB CRITICAL ** GLib-GObject - g_object_unref: assertion `G_IS_OBJECT (object)' failed 
hildon-application-manager.launch[2697]: GLIB WARNING ** hildon-1 - Icon theme lookup for icon `indicator_update2' failed: Icon 'indicator_update2' not present in theme 
hildon-application-manager.launch[2697]: GLIB CRITICAL ** GLib-GObject - g_object_unref: assertion `G_IS_OBJECT (object)' failed 
hildon-application-manager.launch[2697]: GLIB WARNING ** hildon-1 - Icon theme lookup for icon `indicator_update3' failed: Icon 'indicator_update3' not present in theme 
hildon-application-manager.launch[2697]: GLIB CRITICAL ** GLib-GObject - g_object_unref: assertion `G_IS_OBJECT (object)' failed 
hildon-application-manager.launch[2697]: GLIB WARNING ** hildon-1 - Icon theme lookup for icon `indicator_update4' failed: Icon 'indicator_update4' not present in theme 
hildon-application-manager.launch[2697]: GLIB CRITICAL ** GLib-GObject - g_object_unref: assertion `G_IS_OBJECT (object)' failed 
hildon-application-manager.launch[2697]: GLIB WARNING ** hildon-1 - Icon theme lookup for icon `indicator_update5' failed: Icon 'indicator_update5' not present in theme 
hildon-application-manager.launch[2697]: GLIB CRITICAL ** GLib-GObject - g_object_unref: assertion `G_IS_OBJECT (object)' failed 
hildon-application-manager.launch[2697]: GLIB WARNING ** hildon-1 - Icon theme lookup for icon `indicator_update6' failed: Icon 'indicator_update6' not present in theme 
hildon-application-manager.launch[2697]: GLIB CRITICAL ** GLib-GObject - g_object_unref: assertion `G_IS_OBJECT (object)' failed 
hildon-application-manager.launch[2697]: GLIB WARNING ** hildon-1 - Icon theme lookup for icon `indicator_update7' failed: Icon 'indicator_update7' not present in theme 
hildon-application-manager.launch[2697]: GLIB CRITICAL ** GLib-GObject - g_object_unref: assertion `G_IS_OBJECT (object)' failed 
hildon-application-manager.launch[2697]: GLIB WARNING ** hildon-1 - Icon theme lookup for icon `indicator_update8' failed: Icon 'indicator_update8' not present in theme 
hildon-application-manager.launch[2697]: GLIB CRITICAL ** GLib-GObject - g_object_unref: assertion `G_IS_OBJECT (object)' failed 
hildon-application-manager.launch[2697]: GLIB DEBUG default - main window pointer 0x2a06a150 
hildon-application-manager.launch[2697]: GLIB DEBUG default - parent 0x2a06a150 
hildon-application-manager.launch[2697]: GLIB DEBUG default - pushing dialog 0x2a52f030 
hildon-application-manager.launch[2697]: GLIB DEBUG default - the top view is 1 
hildon-application-manager.launch[2697]: GLIB DEBUG default - the top view is 2 
hildon-application-manager.launch[2697]: GLIB CRITICAL ** GLib-GObject - g_object_ref: assertion `G_IS_OBJECT (object)' failed 
** 
Gtk:ERROR:gtkimage.c:1994:gtk_image_expose: code should not be reached
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.17</title>
    <id>2816</id>
    <revision>
      <id>39006</id>
      <timestamp>2010-09-22T12:57:38Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

0.17 is not released yet.

Testing11 is now available: 
* http://stskeeps.subnetmask.net/mer/0.17testing11/mer-x86-generic-image-v0.17testing11.vmdk.zip
* http://stskeeps.subnetmask.net/mer/0.17testing11/mer-x86-generic-image-v0.17testing11.tar.gz
* http://stskeeps.subnetmask.net/mer/0.17testing11/mer-armel-generic-image-v0.17testing11.tar.gz
* http://stskeeps.subnetmask.net/mer/0.17testing11/mer-armel-n8x0-image-v0.17testing11.tar.gz
* http://stskeeps.subnetmask.net/mer/0.17testing11/mer-armel-smartq5-rootfs-v0.17testing11.tar.gz
* http://stskeeps.subnetmask.net/mer/0.17testing11/mer-armel-smartq7-rootfs-v0.17testing11.tar.gz
* http://stskeeps.subnetmask.net/mer/0.17testing11/mer-armel-n900-rootfs-v0.17testing11.tar.gz (needs /lib/firmware from maemo5)


:NOTE: ctrl+shift+x should bring up the cursor.
:NOTE: N8x0, Q5, Q7 is rendered using GL software rendering and is hence, slower than a turtle trying to drag a car through a bumpy road.

== Bugs in 0.17testing11 ==

Fixed: ctrl-m needed in osso-xterm on keyboarded devices for Enter key.

-- 

SmartQ7: setup went fine, kernel loaded fine but it doesn't bring up the desktop, just a black screen.

Application installer says it can't install blueman, and hometools, but they are removed from the list of applications and appear to be installed.  hildon-theme-mermantle installs normally.

On the smartQ 5 the machine halts (reboot does nothing) after you have submitted you passwords in the early beginning (setup wizard) also at the same place when you have to setup the time, the keyboard doesn't show up..

On SmartQ 7 does not bring up the desktop after setup. It's just sitting there with a black screen, no reaction from any buttons, expect testing 12.. still expecting

== Bugs in 0.17testing10 ==

Add bugs here please.

The &quot;http://stskeeps.subnetmask.net/mer/0.17testing10/mer-x86-generic-image-v0.17testing10.vmdk.zip&quot; is not there. (404)

* fixed --stskeeps

Cannot boot into desktop on sq7. Just the login prompt but no soft keyboard

== Bugs in 0.17testing8 ==

hum, install (using the Mer-install package under diablo) failed completely on n800. It seems the archive is full of stuff that should't be there, like a copy of /proc.
Untarring therefore ends up with a lot of errors &quot;no space left on device&quot; on my MMC card, then useful files probably don't get copied, and mer won't boot.
I successfully installed 0.15 then 0.16 before on the same device.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.18</title>
    <id>2878</id>
    <revision>
      <id>38909</id>
      <timestamp>2010-09-22T10:04:19Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Waiting... :)</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.6</title>
    <id>1466</id>
    <revision>
      <id>45952</id>
      <timestamp>2011-12-09T01:07:09Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45935 by [[Special:Contributions/88.81.225.162|88.81.225.162]] ([[User talk:88.81.225.162|Talk]]) SPAM</comment>
      <text xml:space="preserve">{{Mer}}

Known issues:
* 770 port:
** problems with sapwood and may not work from first startup. Grab a USB cable and use rescue mode to apt-get update &amp;&amp; apt-get upgrade
** no wifi yet?
* All images of the same target share same openssh server keys
* jffs2 + kernel mix for N8x0 is untested
* root password is not set for you or asked in the first boot wizard, in the tar.gz images. '''YOU NEED TO SET THIS BEFORE BOOT OR HAL WILL PROBABLY NOT WORK'''
* Bootmenu does not play well with clone-to-SD systems. You will have to make a bootmenu item yourself (ask on #maemo about this)
* NetworkManager is broken in .vdi image, dhclient eth0 in it
* Advanced mode is a bit funky once in a while and creates bad bootmenu items.
* Sometimes after updates the touchscreen of the tables stop working or isn't calibrated, this is because the 'xserver-xorg-input-synaptics' package are installed, to fix it do &quot;xserver-xorg-input-synaptics&quot; in a terminal.

'''If you want to try it out on N8x0, use the installer.'''

Disclaimer:

* '''There is -no- warranty'''. This may blow up your MMC, steal your wife or cause doomsday to come around. But if you find some bugs, please report them on [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugs.maemo.org] and we'll try to see what we can do to fix the bug causing it. 
* If anything goes wrong, grab a USB cable, and rescue mode is done through holding down Home key when booting Mer. 

=== Generic x86 - tar.gz image ===
* [http://stskeeps.subnetmask.net/mer/mer-x86-generic-image-v0.6.tar.gz Generic X86 tar.gz rootfs image]. Usable both for chroot and actually installing on a machine.

==== Installation (chroot) ====
&lt;pre&gt;
mkdir mer-0.6
cd mer-0.6 &amp;&amp; sudo tar xzf mer-x86-generic-image-v0.6.tar.gz
sudo mkdir -p tmp/.X11-unix home/$USER/.osso
sudo mv usr/bin/maemo-invoker usr/bin/maemo-invoker.real
echo -e '#!/bin/sh\nPROG=&quot;$1&quot;\nshift\nexec &quot;$PROG&quot; &quot;$@&quot;' | sudo tee usr/bin/maemo-invoker
sudo chmod 755 usr/bin/maemo-invoker
echo 'assume-connection 1' | sudo tee home/$USER/.osso/hildon-application-manager
echo 'nameserver &lt;mynameresolver&gt;' | sudo tee -a etc/resolv.conf
&lt;/pre&gt;

==== Start-up (from within &lt;tt&gt;mer-0.6&lt;/tt&gt; directory) ====
&lt;pre&gt;
Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -extension Composite 2&gt;/dev/null 1&gt;&amp;2 &amp;
sudo mount --bind /tmp/.X11-unix tmp/.X11-unix
sudo mount --bind /dev/pts dev/pts
sudo mount -t proc proc proc
sudo mount -t sysfs sysfs sys
sudo chroot .
export DISPLAY=:2.0
/etc/init.d/dbus start
start-hildon
&lt;/pre&gt;

=== VirtualBox x86 - VDI image ===
* [http://stskeeps.subnetmask.net/mer/mer-x86-generic-image-v0.6.vdi.zip VirtualBox VDI image] (500mb zipped, 1.2Gb after extraction, beware) [md5sum 8c142b2bc4670a6644e85ec3806096ee]

==== Installation ====
# Unzip zip file
# Open VirtualBox, create new machine (click *New*):
#* Name: Mer 0.6
#* OS type: Linux
#* Version: Ubuntu
#* RAM: 128 at least.
#* Disk: click &quot;existing&quot;, find the Mer 0.6.vdi file, select, select
#* Next
#* Finish.

==== Usage ====
* Start machine.
* Root password is 'rootme'

=== Nokia 770 - tar.gz image ===
* [http://stskeeps.subnetmask.net/mer/mer-armel-770-image-v0.6.tar.gz Nokia 770 (armel) tar.gz rootfs image]

=== Nokia N8x0 - Installer files (simple) ===
* Install [http://packages.tspre.org/pool/user/b/bootmenu/bootmenu_1.5_armel.deb Bootmenu SVN for N8x0, needed to boot from MMC]. After installing that, open the main menu and tap Utilities -&gt; Install Bootmenu to start the bootmenu install process. First, say yes to removing &quot;unneeded extra (and factory testing) stuff&quot;, say yes to including bootmenu.conf (important). Reboot when done flashing. This is a special boot menu where boot menu items are made in /etc/bootmenu.d/*.item and refresh_bootmenu.d will flash this to initfs. '''If you are cloning or booting other OS'es, you'll need to make such .item files''']
* [http://stskeeps.subnetmask.net/mer/mer-armel-n8x0-installer-v0.6.deb Nokia N8x0 (armel) tar.gz installer (use simple mode), Install second and then in Utilities -&gt; Install Mer] (Make sure you have the extras-devel repository installed - http://repository.maemo.org/extras-devel/)
* [http://stskeeps.subnetmask.net/mer/mer-armel-n8x0-installer-v0.6.tar.gz Nokia N8x0 (armel) installer source code (not needed)]

=== Nokia N8x0 - Flashable image (untested) ===
* [http://stskeeps.subnetmask.net/mer/mer-armel-n8x0-image-v0.6.jffs2 Nokia N8x0 (armel) jffs2 rootfs image]
* [http://stskeeps.subnetmask.net/mer/mer-armel-n8x0-kernel-v0.6.zImage Nokia N8x0 (armel) zImage kernel image]

=== Nokia N8x0 - tar.gz image ===
* [http://stskeeps.subnetmask.net/mer/mer-armel-n8x0-image-v0.6.tar.gz Nokia N8x0 (armel) tar.gz rootfs image]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.7</title>
    <id>1550</id>
    <revision>
      <id>39007</id>
      <timestamp>2010-09-22T12:58:10Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Mer 0.7 was prepared in the sprint 18 January 2009-1 February 2009, and released on 1 February 2009

== Completed tasks in this release and notable accomplishments ==

If you want to see associated sprint, [[Mer/Sprints/0.7|click here]]


{|
|- style=&quot;background:LightGreen&quot;
| 2008-12-15 - 0.7 || [[Mer/Tasks/Mer_Installer|Installer for Mer on Diablo]] || b-man || 100% || [http://trac.tspre.org/bman Initial versions] [https://code.launchpad.net/~mer-committers/m-r/merinstaller BZR branch], Make .install file for packages.tspre.org 'installer' dist / user component.
|- style=&quot;background:LightGreen&quot;
| 2009-01-31 || Figure out why HAM doesn't work in snapshot images || none || 100% || Tricks: assume-connection 1, problems with installing still? ''WFM in VirtualBox - needed to echo assume-connection 1 &gt;~/.osso/hildon-application-manager after first setup; then started HAM; checked categories and then installed Titan theme without any problems --[[User:jaffa|Jaffa]] 23:12, 29 January 2009 (UTC)'' Also now working for [[User:stskeeps|Stskeeps]] after start-hildon modifications by [[User:johnx|johnx]]
|- style=&quot;background:LightGreen&quot;
| 2009-01-29 || Make an error screen and reboot after 15 seconds if Mer is booted through normal bootmenu (check if /var/run is a symlink to /tmp/.run) || wazd, Stskeeps || 100% ||  Need 800x480 artwork (stop sign and &quot;Incompatible bootmenu used, rebooting in 15 seconds&quot;) - added to nit-bootmenu-compat
|- style=&quot;background:LightGreen&quot;
| || integrate/Mer-ize clipboard-manager (already in repository, but needs to be included into start-hildon etc) || johnx || 100% || In repository.
|- style=&quot;background:LightGreen&quot;
| | 2009-01-26 || Fix key generation of openssh-server so it doesn't do it on imager but does it when booting || Darken || 100% || Managed by first boot wizard - ready for merging from lp:~koudelka-atolcomputers/m-r/first-boot-wizard
|- style=&quot;background:LightGreen&quot;
| 2009-01-26 || Experiment with Droid Sans within hildon-theme-liberty and alter if it looks good || qwerty12 || 100% || In repository. [http://trac.tspre.org/qwerty12/ Screenshots &amp; source patches here (in bzr too).]
|- style=&quot;background:LightGreen&quot;
| January || Missing localization strings in Hildon, (#4001) || Stskeeps || 100% || There are still some strings to be fixed. But that's for l10n people.
|- style=&quot;background:LightGreen&quot;
| 2009-01-24 || Package up Droid Sans (apache license) || qwerty || 100% || was in ttf-droid in ubuntu universe
|- style=&quot;background:LightGreen&quot;
| 2009-01-23 || Figure out how to make gnome-keyring invisible to the user || Stskeeps || 100% || Fixed in hildon-desktop-env
|- style=&quot;background:LightGreen&quot;
| 2009-01-23 || Bring in new changes from http://gitweb.pingu.fi/?p=xf86-video-omapfb.git;a=summary to xserver-xorg-video-omapfb || Stskeeps || 100% || Now in repository
|- style=&quot;background:LightGreen&quot;
| 0.7 || [[#qemu-eabi_cputransp_for_Scratchbox|qemu-eabi cputransp for Scratchbox]]|| qwerty12 || 100% || Deb (i386) &amp; source package [http://trac.tspre.org/qwerty12 provided here].
|- style=&quot;background:LightGreen&quot;
| 2009-01-23 || Package up advanced-power as a debian source package || qwerty12 || 100% || In repository.
|- style=&quot;background:LightGreen&quot;
| 2009-01-20 || Fix sapwood crash problem on ARMv5t (bug 4023) || johnx, RST38h, r2d2rogers || 100% || Fixed in repository.
|- style=&quot;background:LightGreen&quot;
| 2009-01-19 || Mer-ize hildon-application-manager || [[User:Jaffa|Jaffa]] || 100% || Screenshots: [http://www.flegg.org/~andrew/mer-ham-01.png 1], [http://www.flegg.org/~andrew/mer-ham-02.png 2], [http://www.flegg.org/~andrew/mer-ham-03.png 3]
|}

* Jaffa: New shiny wiki page for Mer and new structure
* Stskeeps: gnome-keyring will no longer bother you
* Stskeeps: Fixing crash problems with HAL dying (LED detection)
* johnx: new first-boot-wizard asks for password, adds user to more groups, enables swap partition (if present) and enables passwordless sudo.
* Meizirkki: dialogs can be moved, but they still appear in right place.
* Stskeeps: VMDK images are now automatically generated (VirtualBox, VMware, etc)
* Stskeeps: [http://jaiku.com/channel/mer/presence/52297083 Discussion/new policy on licenses banning commercial use]
* r2d2rogers, RST38h, etc: Now we have 770 support with sapwood not crashing
* Upgraded to pre-alpha2 l10n and upgraded gtk, libhildon.
* Moving along with being able to distribute firmware images with closed source bits: [http://lists.maemo.org/pipermail/maemo-community/2009-January/002946.html positive response from Nokia]
* PyMaemo (well, bindings) in repository now, for instance 'homeip' as example application and advanced-power (needs hald-addon-bme)
* Jaffa: Porting Hildon Application Manager to Mer
* Nokia has been very forthcoming and has kept the previous pre-alpha SDK on site to make it possible to retrieve diffs to apply to Mer source trees :)

== Known issues ==

{{#bugzilla:id=4043,4059,4062
  |columns=id,severity,product,status,resolution,summary,to
}}

*Task: Port and build http://repository.maemo.org/pool/diablo/free/h/hildon-plugins-settings/ (statusbar applet config) - In repository as hildon-plugins-settings-cpa. Working and text labels working but creates duplicate application menu.
*Task: Add FDI for Nokia keyboards (see [http://trac.tspre.org/svn/deblet/trunk/packages/main/hal/fdi/policy/10osvendor/10-keymap.fdi this] and [http://trac.tspre.org/svn/deblet/trunk/packages/main/nokia-xkb-data/ this]. Check this [http://internettablettalk.com/forums/showpost.php?p=259961&amp;postcount=57] - Added keycode problem fix in xserver-xorg-input-evdev, now in repository, not working yet.
*Task: Working X-terminal with hildon input method working - Some vte patches still needed, but working: [http://bsd.tspre.org/~stskeeps/mer-ossoxterm.png screenshot]
*Bootmenu does not play well with clone-to-SD systems. You will have to make a bootmenu item yourself (ask on #maemo about this) (someone document how to make an .item)
*Sometimes after updates the touchscreen of the tables stop working or isn't calibrated, this is because the 'xserver-xorg-input-synaptics' package are installed, to fix it do &quot;sudo apt-get remove xserver-xorg-input-synaptics&quot; in a terminal.
*No WiFi on 770 yet.
*X driver for omapfb does not use Manual updates yet and hence can be a bit slow in updating the screen which may give the impression the system is slow.
*WiFi power saving is inactive. Installing python-gobject and rebooting might do the trick. It only power saves when connected.
*Rotation in advanced-backlight kills the X server
*A better way to reboot device or shut down than 'sudo reboot' or 'sudo shutdown -h now' or popping the battery is needed.

== Released files and guides ==

Disclaimer:

* '''There is -no- warranty'''. This may blow up your MMC, steal your wife or cause doomsday to come around. But if you find some bugs, please report them on [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugs.maemo.org] and we'll try to see what we can do to fix the bug causing it. 
* If anything goes wrong, grab a USB cable, and rescue mode is done through holding down Home key when booting Mer. 

=== MD5sums ===

{|
|-
|4293d50c69df172e02195f138d3fde69||mer-armel-770-image-v0.7.tar.gz
|-
|734b11b9396e65435f64ab22bb448a65||mer-armel-generic-rootstrap-v0.7.tar.gz
|-
|d92de32d4050e0596db4de16c71220f4||mer-armel-n800-image-v0.7.tar.gz
|-
|9dcf11e72d56128bca46df6f8501d648||mer-x86-generic-image-v0.7.tar.gz
|-
|f90b3dbb4228b8eb82f24c7c6c9a9a6a||mer-x86-generic-rootstrap-v0.7.tar.gz
|-
|f92be020bdf8d9c59883b215dcf784a8||mer-x86-generic-image-v0.7.vmdk.zip
|}

=== Generic x86 - VMDK (VMware disk image) ===

* [http://stskeeps.subnetmask.net/mer/0.7/mer-x86-generic-image-v0.7.vmdk.zip Generic X86 bootable VMDK image] - root password is 'rootme'

==== Installation in VirtualBox  ====
# Unzip zip file
# Open VirtualBox, create new machine (click *New*):
#* Name: Mer 0.7
#* OS type: Linux
#* Version: Ubuntu
#* RAM: 128 at least.
#* Disk: click &quot;existing&quot;, find the mer-x86-generic-image-v0.7.vmdk file, select, select
#* Next
#* Finish.

=== Generic x86 - tar.gz image ===
* [http://stskeeps.subnetmask.net/mer/0.7/mer-x86-generic-image-v0.7.tar.gz Generic X86 tar.gz rootfs image]. Usable both for chroot and actually installing on a machine.

==== Installation (chroot) ====
&lt;pre&gt;
mkdir mer-0.7
cd mer-0.7 &amp;&amp; sudo tar xzf mer-x86-generic-image-v0.7.tar.gz
sudo mkdir -p tmp/.X11-unix home/$USER/.osso
sudo mv usr/bin/maemo-invoker usr/bin/maemo-invoker.real
echo -e '#!/bin/sh\nPROG=&quot;$1&quot;\nshift\nexec &quot;$PROG&quot; &quot;$@&quot;' | sudo tee usr/bin/maemo-invoker
sudo chmod 755 usr/bin/maemo-invoker
echo 'nameserver &lt;mynameresolver&gt;' | sudo tee -a etc/resolv.conf
&lt;/pre&gt;


===== Start-up (from within &lt;tt&gt;mer-0.7&lt;/tt&gt; directory) =====
&lt;pre&gt;
Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -extension Composite 2&gt;/dev/null 1&gt;&amp;2 &amp;
sudo mount --bind /tmp/.X11-unix tmp/.X11-unix
sudo mount --bind /dev/pts dev/pts
sudo mount -t proc proc proc
sudo mount -t sysfs sysfs sys
sudo chroot .
export DISPLAY=:2.0
/etc/init.d/dbus start
start-hildon
&lt;/pre&gt;

==== Installation (machine) ====

See [[Mer/Documentation/Making_x86_Mer_Bootable]]

=== Nokia 770 - tar.gz image ===

* [http://stskeeps.subnetmask.net/mer/0.7/mer-armel-770-image-v0.7.tar.gz Nokia 770 tar.gz rootfs image]

==== Guide ====

(these instructions need testing)

You will need at least a 1gb MMC, and these instructions are based on OS2008HE kernel.

Partition MMC to:

*p1: Large ext3 partition first
*p2: 256 MB swap partition second

Grab http://packages.tspre.org/pool/user/b/bootmenu/bootmenu_1.5-1_armel.deb and install it. 

* Open the main menu and tap Utilities -&gt; Install Bootmenu to start the bootmenu install process.
* First, say yes to removing &quot;unneeded extra (and factory testing) stuff&quot;
* say yes to including bootmenu.conf (important). Reboot when done flashing.
* This is a special boot menu where boot menu items are made in /etc/bootmenu.d/*.item and refresh_bootmenu.d will flash this to initfs. '''If you are cloning or booting other OS'es, you'll need to make such .item files'''

Grab e2fsprogs and install it - grab gnutar as well

*From x-terminal, root: insmod /mnt/initfs/lib/modules/current/mbcache.ko
*insmod /mnt/initfs/lib/modules/current/jbd.ko
*insmod /mnt/initfs/lib/modules/current/ext3.ko
*mkfs.ext3 /dev/mmcblk0p1
*mkswap /dev/mmcblk0p2 
*swapon /dev/mmcblk0p2
*mkdir -p /mnt/mer
*mkdir -p /etc/bootmenu.d
*mount -t ext3 /dev/mmcblk0p1 /mnt/mer
*cd /mnt/mer; wget http://stskeeps.subnetmask.net/mer/0.7/mer-armel-770-image-v0.7.tar.gz
*tar pzxvf mer-armel-770-image-v0.7.tar.gz
*rm mer-armel-770-image-v0.7.tar.gz
*umount /mnt/mer
*Make /etc/bootmenu.d/mer.item with the following contents:

&lt;pre&gt;
ITEM_NAME=&quot;Mer&quot;
ITEM_ID=&quot;mer&quot;
ITEM_DEVICE=&quot;mmcblk0p1&quot;
ITEM_MODULES=&quot;mbcache jbd ext3&quot;
ITEM_FSTYPE=&quot;ext3&quot;
ITEM_FSOPTIONS=&quot;noatime,ro&quot;
ITEM_LINUXRC=&quot;linuxrc&quot;
&lt;/pre&gt;
*refresh_bootmenu.d (say yes to reflashing, no to backup of initfs. reboot)
*Hold down Menu key when prompted while booting and select Mer in the boot menu.

=== Nokia N8x0(W) - installer === 

* [http://bsd.tspre.org/~stskeeps/merinstaller.install .install file], use this and it will download proper bootmenu and such.

Guide:

* Open the main menu and tap Utilities -&gt; Install Bootmenu to start the bootmenu install process.
* First, say yes to removing &quot;unneeded extra (and factory testing) stuff&quot;
* say yes to including bootmenu.conf (important). Reboot when done flashing.
* This is a special boot menu where boot menu items are made in /etc/bootmenu.d/*.item and refresh_bootmenu.d will flash this to initfs. '''If you are cloning or booting other OS'es, you'll need to make such .item files''']
* Utilities -&gt; Install Mer and go through the dialogs. The installer will always install the most current release. When done it will reboot and you can hold down menu/swap key and boot into Mer.

=== Nokia N8x0(W) tar.gz ===

* http://stskeeps.subnetmask.net/mer/0.7/mer-armel-n800-image-v0.7.tar.gz - tar.gz rootfs image

=== ARMEL sdk ===

First, install Fremantle SDK, and add yourself as a user to scratchbox.

As user:

    * wget -c http://stskeeps.subnetmask.net/mer/arm-linux-cs2008q3-72-libtool2_1.0.11_i386.deb
    * sudo dpkg -i arm-linux-cs2008q3-72-libtool2_1.0.11_i386.deb (run as root)
    * wget -c http://stskeeps.subnetmask.net/mer/scratchbox-devkit-mer_1.0.11_i386.deb
    * sudo dpkg -i scratchbox-devkit-mer_1.0.11_i386.deb
    * wget -c http://stskeeps.subnetmask.net/mer/qemu-eabi-cputransp-sbox_svn5391-2_i386.deb
    * sudo dpkg -i qemu-eabi-cputransp-sbox_svn5391-2_i386.deb
    * sb-conf setup MER-ARMEL --compiler=arm-linux-cs2008q3-72-libtool2 --devkits=debian-etch:cputransp:perl:mer --cputransp=qemu-arm-eabi -f
    * sb-conf reset -f MER-ARMEL
    * sb-conf select MER-ARMEL
    * sb-conf rootstrap MER-ARMEL http://stskeeps.subnetmask.net/mer/mer-armel-rootstrap-v8.tar.gz
    * sb-conf install MER-ARMEL --etc --devkits --fakeroot 

ISSUES:

    * You might have to set cpu right and such to target armv5el (no vfp)
    * You probably need to get EABI cpu transparency target too
    * 'not safe for cross-compilation' warnings (not true, i think)
    * fakeroot apt-get dist-upgrade is good once in a while to keep up to date. 
    * C++ is a bit broken.

=== buildd files ===

* http://stskeeps.subnetmask.net/mer/0.7/mer-armel-generic-rootstrap-v0.7.tar.gz
* http://stskeeps.subnetmask.net/mer/0.7/mer-x86-generic-rootstrap-v0.7.tar.gz</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.8</title>
    <id>1563</id>
    <revision>
      <id>38910</id>
      <timestamp>2010-09-22T10:04:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Mer 0.8 was prepared in the sprint 1 February 2009 - 16 February 2009, and released on 16 February 2009

== Completed tasks in this release and notable accomplishments ==

If you want to see associated sprint, [[Mer/Sprints/0.8|click here]]

{| class = &quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightGreen&quot;
| 2009-02-09 || Fix lack of &quot;enter&quot; ctrl-m &quot;problem&quot; on x86 || Stskeeps, johnx || 100% || Added /apps/osso/inputmethod/keyboard_available (bool) gconf2 option. Set true when on a machine with active keyboard.
|- style=&quot;background:LightGreen&quot;
| 2009-02-14 || Add control panel applet for theme switching || qwerty12 || 100% || In repository as hildon-theme-selector. Uses timeless' theme switcher.
|- style=&quot;background:LightGreen&quot;
| 2009-02-10 || maemo-select-menu-location seems to stall || Stskeeps || 100% || Reason is because .launch is not an .so. Same issue as in [http://bazaar.launchpad.net/~carsten-munk/m-r/hildon-desktop/revision/1106?remember=1106&amp;compare_revid=1100 hildon desktop]. In repository.
|- style=&quot;background:LightGreen&quot;
| 2009-02-11 || Figure out how to make the theme switcher work. (It's a control panel applet), see libpersonalisation.so || timeless, qwerty12 || 100% || In repository as hildon-theme-selector.
|- style=&quot;background:LightGreen&quot;
| 2009-02-08 || package evkey (for nit-kernel-compat purposes) || qwerty12 || 100% || In repository.
|- style=&quot;background:LightGreen&quot;
| 2009-01-30 || [[Mer/Tasks/Open_System_Sounds|Open system sounds]] (startup chime, touchscreen tap, etc) || opengeekv2, zenvoid || 100% || System Sounds by zenvoid completed: [http://repository.mer.tspre.org/pool/main/libe/liberty-sounds-ui/ liberty-sounds-ui], [http://zenvoid.org/tmp/sounds/ list of wav files]
|- style=&quot;background:LightGreen&quot;
| 2009-02-03 || Make transitional package for libhildon-1-0 to libhildon1 || Stskeeps || 100% || In repository.
|- style=&quot;background:LightGreen&quot;
| 2009-02-03 || Make transitional package for gconf2-common (bug 4016 connected) || Stskeeps || 100% || Fixed, but now libvte9 problems when installing gnome-core.
|- style=&quot;background:LightGreen&quot;
| 2009-02-03 || Fix bug 4016 (helps getting GNOME components on Mer) || Stskeeps || 100% || Fixed, but gconf2-common transitional package is needed.
|- style=&quot;background:LightGreen&quot;
| 2009-02-03 || Add python-gobject to dsme-tools dependancy || Stskeeps || 100% || In repository, tested on n810.
|- style=&quot;background:LightGreen&quot;
| 0.7 || Working X-terminal with hildon input method working || Stskeeps || 100% || Some vte patches still needed, but working: [http://bsd.tspre.org/~stskeeps/mer-ossoxterm.png screenshot]
|- style=&quot;background:LightGreen&quot;
| 2009-01-26 || Port and build http://repository.maemo.org/pool/diablo/free/h/hildon-plugins-settings/ (statusbar applet config || qwerty12 || 100% || In repository as hildon-plugins-settings-cpa.
|- style=&quot;background:LightGreen&quot;
| 2009-01-16 || nit-kernel-compat (support kernel booting rootfs directly), base on [http://guug.org/nit/nitboot/ nitboot]|| qwerty12 || 100% || In repository. Current problems: evkey doesn't exist on non-bootmenu tablets (put as TODO, as the rest works), so rescue menu does not work. BZR branch: [https://code.launchpad.net/~mer-committers/m-r/nit-kernel-compat ~mer-committers/m-r/nit-kernel-compat]. Problems with APT still exist, so no jffs2 image in this release.
|- style=&quot;background:LightBlue&quot;
| || Add FDI for Nokia keyboards (see [http://trac.tspre.org/svn/deblet/trunk/packages/main/hal/fdi/policy/10osvendor/10-keymap.fdi this] and [http://trac.tspre.org/svn/deblet/trunk/packages/main/nokia-xkb-data/ this] || Darken || 80% || Check this [http://internettablettalk.com/forums/showpost.php?p=259961&amp;postcount=57] - Added keycode problem fix in xserver-xorg-input-evdev, now in repository. Patched repository actually. Needs testing.
|- style=&quot;background:LightBlue&quot;
| || Make hildon-desktop-env use a configuration file to determine wether it needs to show cursor or not (useful for x86) || johnx || 95% || Could use some testing on x86s with touchscreens
|- style=&quot;background:LightBlue&quot;
| December || [[Task:Community_firmware_image_distribution|Proposal for distribution of firmware images including closed-source bits needed for community editions]] || Stskeeps || 50% || First proposal involving initfs bits proposed through maemo-community. [http://lists.maemo.org/pipermail//maemo-community/2009-January/002946.html Positive Nokia response] [http://lists.maemo.org/pipermail/maemo-community/2009-February/003114.html wish list for 3rd party components]
|}

* b-man: various fixes to merinstaller
* Stskeeps: Beagleboard port, Pocket Loox 720 port, documented some parts of BME protocol, for creating an open hald-addon-bme.
* qwerty12: Created extras-repository package which adds the maemo-extras repository automatically for you in Mer.
* Mention of Mer at &quot;Maemo on Beagleboard&quot; talk at FOSDEM 09, see [http://www.flickr.com/photos/32615155@N00/3263196028/ slide picture]

== Known issues ==

{{#bugzilla:id=4111,4102,4101,4062,4093
  |columns=id,severity,product,status,resolution,summary,to
}}

*Bootmenu does not play well with clone-to-SD systems. You will have to make a bootmenu item yourself (ask on #maemo about this) (someone document how to make an .item)
*Sometimes after updates the touchscreen of the tables stop working or isn't calibrated, this is because the 'xserver-xorg-input-synaptics' package are installed, to fix it do &quot;sudo apt-get remove xserver-xorg-input-synaptics&quot; in a terminal.
*No WiFi on 770 yet.
*X driver for omapfb does not use Manual updates yet and hence can be a bit slow in updating the screen which may give the impression the system is slow.
*Rotation in advanced-backlight kills the X server
*HAL fails to autodetect the model of RX-44 and RX-48 keyboard, and sets the XKB model wrong. To fix, temporarily, go into  X terminal and 'setxkbmap -model rx44' and optionally 'setxkbmap -model rx44 -layout LAYOUTNAME', where LAYOUTNAME can be seen in /usr/share/X11/xkb/symbols/nokia_vndr/rx-44 (fisenoda = nordic)
*A better way to reboot device or shut down than 'sudo reboot' or 'sudo shutdown -h now' or popping the battery is needed.

== Released files and guides ==

Disclaimer:

* '''There is -no- warranty'''. This may blow up your MMC, steal your wife or cause doomsday to come around. But if you find some bugs, please report them on [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugs.maemo.org] and we'll try to see what we can do to fix the bug causing it. 
* If anything goes wrong, grab a USB cable, and rescue mode is done through holding down Home key when booting Mer (on tablets)

=== MD5sums ===

{|
|-
|0772b1e9696abfa3385f225d7c22cecb || mer-x86-generic-image-v0.8.img.raw.gz 
|-
|d88403e0aef6a9a0e14fbdcc7d848565 || mer-x86-generic-image-v0.8.tar.gz
|-
|63e824cd3cab12e6c5088df3a11d6e2b || mer-x86-generic-image-v0.8.vmdk.zip
|-
|3ea5499eff5b4c759276c3f4f2e0ee8b || mer-armel-n8x0-image-v0.8.tar.gz
|-
|eff01423e797007a2f539c5739ed674d || mer-armel-770-image-v0.8.tar.gz
|-
|3bfd69bc0f3bb81758ff0c8df2022fa4 || mer-armel-beagleboard-bootfs-v0.8.tar.gz
|-
|8544e43f7aff49f81360441854aff01b || mer-armel-beagleboard-rootfs-v0.8.tar.gz
|-
|a8067dc545861e6b586110d0af74119f || mer-armel-pocketloox720-v0.8.tar.gz
|-
|3c6be5fe1756514dda07a4ab5ab44e29 || mer-armel-pocketloox720-kernel-v0.8.zImage
|}

=== Generic x86 - VMDK (VMware disk image) ===

* [http://stskeeps.subnetmask.net/mer/0.8/mer-x86-generic-image-v0.8.vmdk.zip Generic X86 bootable VMDK image] - root password is 'rootme'

==== Installation in VirtualBox  ====
# Unzip zip file
# Open VirtualBox, create new machine (click *New*):
#* Name: Mer 0.8
#* OS type: Linux
#* Version: Ubuntu
#* RAM: 128 at least.
#* Disk: click &quot;existing&quot;, find the mer-x86-generic-image-v0.8.vmdk file, select, select
#* Next
#* Finish.

=== Generic x86 - RAW image ===

* [http://stskeeps.subnetmask.net/mer/0.8/mer-x86-generic-image-v0.8.img.raw.gz Generic X86 RAW gzipped image] - usable in virtual machine products such as Parallels and such supporting RAW disk images (gunzip first).

=== Generic x86 - tar.gz image ===
* [http://stskeeps.subnetmask.net/mer/0.8/mer-x86-generic-image-v0.8.tar.gz Generic X86 tar.gz rootfs image]. Usable both for chroot and actually installing on a machine.

==== Installation (chroot) ====
&lt;pre&gt;
mkdir mer-0.8
cd mer-0.8 &amp;&amp; sudo tar xzf mer-x86-generic-image-v0.8.tar.gz
sudo mkdir -p tmp/.X11-unix home/$USER/.osso
sudo mv usr/bin/maemo-invoker usr/bin/maemo-invoker.real
echo -e '#!/bin/sh\nPROG=&quot;$1&quot;\nshift\nexec &quot;$PROG&quot; &quot;$@&quot;' | sudo tee usr/bin/maemo-invoker
sudo chmod 755 usr/bin/maemo-invoker
echo 'nameserver &lt;mynameresolver&gt;' | sudo tee -a etc/resolv.conf
&lt;/pre&gt;


===== Start-up (from within &lt;tt&gt;mer-0.8&lt;/tt&gt; directory) =====
&lt;pre&gt;
Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -extension Composite 2&gt;/dev/null 1&gt;&amp;2 &amp;
sudo mount --bind /tmp/.X11-unix tmp/.X11-unix
sudo mount --bind /dev/pts dev/pts
sudo mount -t proc proc proc
sudo mount -t sysfs sysfs sys
sudo chroot .
export DISPLAY=:2.0
/etc/init.d/dbus start
start-hildon
&lt;/pre&gt;

==== Installation (machine) ====

See [[Mer/Documentation/Making_x86_Mer_Bootable]]

=== Nokia N8x0(W) - installer === 

* [http://bsd.tspre.org/~stskeeps/merinstaller.install .install file], use this and it will download proper bootmenu and such.

Guide:

* Open the main menu and tap Utilities -&gt; Install Bootmenu to start the bootmenu install process.
* First, say yes to removing &quot;unneeded extra (and factory testing) stuff&quot;
* say yes to including bootmenu.conf (important). Reboot when done flashing.
* This is a special boot menu where boot menu items are made in /etc/bootmenu.d/*.item and refresh_bootmenu.d will flash this to initfs. '''If you are cloning or booting other OS'es, you'll need to make such .item files''']
* Utilities -&gt; Install Mer and go through the dialogs. The installer will always install the most current release. When done it will reboot and you can hold down menu/swap key and boot into Mer.

=== Nokia N8x0(W) tar.gz ===

* http://stskeeps.subnetmask.net/mer/0.8/mer-armel-n8x0-image-v0.8.tar.gz - tar.gz rootfs image

=== Nokia 770 - tar.gz image ===

* [http://stskeeps.subnetmask.net/mer/0.8/mer-armel-770-image-v0.8.tar.gz Nokia 770 tar.gz rootfs image]

==== Guide ====

(these instructions need testing)

You will need at least a 1gb MMC, and these instructions are based on OS2008HE kernel.

Partition MMC to:

*p1: Large ext3 partition first
*p2: 256 MB swap partition second

Grab http://packages.tspre.org/pool/user/b/bootmenu/bootmenu_1.5-2_armel.deb and install it. 

* Open the main menu and tap Utilities -&gt; Install Bootmenu to start the bootmenu install process.
* First, say yes to removing &quot;unneeded extra (and factory testing) stuff&quot;
* say yes to including bootmenu.conf (important). Reboot when done flashing.
* This is a special boot menu where boot menu items are made in /etc/bootmenu.d/*.item and refresh_bootmenu.d will flash this to initfs. '''If you are cloning or booting other OS'es, you'll need to make such .item files'''

Grab e2fsprogs and install it - grab gnutar as well

*From x-terminal, root: insmod /mnt/initfs/lib/modules/current/mbcache.ko
*insmod /mnt/initfs/lib/modules/current/jbd.ko
*insmod /mnt/initfs/lib/modules/current/ext3.ko
*mkfs.ext3 /dev/mmcblk0p1
*mkswap /dev/mmcblk0p2 
*swapon /dev/mmcblk0p2
*mkdir -p /mnt/mer
*mkdir -p /etc/bootmenu.d
*mount -t ext3 /dev/mmcblk0p1 /mnt/mer
*cd /mnt/mer; wget http://stskeeps.subnetmask.net/mer/0.8/mer-armel-770-image-v0.8.tar.gz
*tar pzxvf mer-armel-770-image-v0.8.tar.gz
*rm mer-armel-770-image-v0.8.tar.gz
*umount /mnt/mer
*Make /etc/bootmenu.d/mer.item with the following contents:

&lt;pre&gt;
ITEM_NAME=&quot;Mer&quot;
ITEM_ID=&quot;mer&quot;
ITEM_DEVICE=&quot;mmcblk0p1&quot;
ITEM_MODULES=&quot;mbcache jbd ext3&quot;
ITEM_FSTYPE=&quot;ext3&quot;
ITEM_FSOPTIONS=&quot;noatime,ro&quot;
ITEM_LINUXRC=&quot;linuxrc&quot;
&lt;/pre&gt;
*refresh_bootmenu.d (say yes to reflashing, no to backup of initfs. reboot)
*Hold down Menu key when prompted while booting and select Mer in the boot menu.

=== BeagleBoard port ===

* [http://stskeeps.subnetmask.net/mer/0.8/mer-armel-beagleboard-bootfs-v0.8.tar.gz Boot filesystem], contains uImage (kernel packaged for uboot), for latest uboot.
* [http://stskeeps.subnetmask.net/mer/0.8/mer-armel-beagleboard-rootfs-v0.8.tar.gz Root filesystem]

==== Guide ====

* Make sure you are running a RECENT uBoot, and you have USB input devices like keyboard or mouse, if you don't own a touchscreen..
* Make a SD card, partitioned with 50mb FAT as first partition, extract boot fs on this, and the rest Linux partition, format this as ext3, and extract rootfs on this.
* In uBoot, use the following commands (you may have to adjust video= parameter to match your display screen:

&lt;pre&gt;
setenv bootcmd 'mmcinit; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000'
setenv bootargs 'console=ttyS2,115200n8 console=tty0 root=/dev/mmcblk0p2 rootdelay=2 rootfstype=ext3 ro video=omapfb:mode:1280x720@60'
saveenv
boot
&lt;/pre&gt;

* The tablet should output kernel output on serial and on video, and on HDMI out it will eventually start X and show the First Boot Wizard. Good luck.

=== Pocket Loox 720 port (experimental) ===

* [http://stskeeps.subnetmask.net/mer/0.8/mer-armel-pocketloox720-kernel-v0.8.zImage zImage]
* [http://stskeeps.subnetmask.net/mer/0.8/mer-armel-pocketloox720-v0.8.tar.gz rootfs]

==== Guide ==== 

* Set up a SD card with a logical partition, and inside this logical partition, make a 50mb or so FAT partition (p5), and put the zImage file on this filesystem, name it zImage. After the logical partition, make a ext3 partition (p2), and untar rootfs on it.
* Grab [http://www.handhelds.org/moin/moin.cgi/HaRET HaRET] and put it on the FAT partition, HaRET.exe. 
* Make a file, startup.txt, with the following contents:

&lt;pre&gt;
set kernel &quot;zImage&quot;
set mtype &quot;617&quot;
set RAMADDR &quot;0xa8000000&quot;
set cmdline &quot;mem=128M rootdelay=1 root=b302 rw console=tty0&quot;
boot
&lt;/pre&gt;

* Unmount all filesystems, insert SD card into Pocket Loox, boot by running HaReT.exe 
* Experimental release, if you want to play with this - come hang out on #mer on irc.freenode.net and we'll try to guide you along. It is a 640x480 screen so our theme won't fit.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Releases/0.9</title>
    <id>1666</id>
    <revision>
      <id>38964</id>
      <timestamp>2010-09-22T11:31:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Mer 0.9 was prepared in the sprint 16 February 2009 - 2 March 2009, and released on 2 March 2009

== Completed tasks in this release and notable accomplishments ==

If you want to see associated sprint, [[Mer/Sprints/0.9|click here]]

{| class = &quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightGreen&quot;
| || Patch apt package with https://stage.maemo.org/svn/maemo/projects/haf/trunk/apt/mmap.patch || qwerty12 || 100% || In repository. Needs testing however on x86 and I am not patching the text strings. I also need to improve packaging.
|- style=&quot;background:LightGreen&quot;
| || Make 770 image not have kernel-diablo-modules and such || Stskeeps || 100% || found a kernel-diablo-modules in foundations/mer, might have done something.. Removed in imager.
|- style=&quot;background:LightGreen&quot;
| || Add FDI for Nokia keyboards (see [http://trac.tspre.org/svn/deblet/trunk/packages/main/hal/fdi/policy/10osvendor/10-keymap.fdi this] and [http://trac.tspre.org/svn/deblet/trunk/packages/main/nokia-xkb-data/ this] || Darken || 100% || Check this [http://internettablettalk.com/forums/showpost.php?p=259961&amp;postcount=57] - Added keycode problem fix in xserver-xorg-input-evdev, now in repository. Patched repository actually. Now in repository
|- style=&quot;background:LightGreen&quot;
| 2009-02-17 || Look into porting Powerlaunch or doing an alternative in Python || qwerty12 || 100% || Powerlaunch ported by qwerty12, in repository.
|}

*qwerty12: autodetection of Nokia keyboards, maemo-xkb-plugin 
*Stskeeps: 770 wifi working out of the box, work on Xomap on Mer, upgraded GTK version, improving flashable Mer images boot on N8x0

== Known issues ==

{{#bugzilla:id=4148,4111,4102,4101,4062,4093
  |columns=id,severity,product,status,resolution,summary,to
}}

*Bootmenu does not play well with clone-to-SD systems. You will have to make a bootmenu item yourself (ask on #maemo about this) (someone document how to make an .item)
*Sometimes after updates the touchscreen of the tables stop working or isn't calibrated, this is because the 'xserver-xorg-input-synaptics' package are installed, to fix it do &quot;sudo apt-get remove xserver-xorg-input-synaptics&quot; in a terminal.
*X driver for omapfb does not use Manual updates yet and hence can be a bit slow in updating the screen which may give the impression the system is slow.
*Rotation in advanced-backlight kills the X server
*Duplicate application menu happens
*Network-Manager dies on N8x0 after sleep / idling
*No charging screen on flashable image
*No battery meter yet on tablets.
*No sound on tablets.

== Released files and guides ==

Disclaimer:

* '''There is -no- warranty'''. This may blow up your MMC, steal your wife or cause doomsday to come around. But if you find some bugs, please report them on [https://bugs.maemo.org/enter_bug.cgi?product=Mer bugs.maemo.org] and we'll try to see what we can do to fix the bug causing it. 
* If anything goes wrong, grab a USB cable, and rescue mode is done through holding down Home key when booting Mer (on tablets)

=== MD5sums ===

{|
|-
|0772b1e9696abfa3385f225d7c22cecb || mer-x86-generic-image-v0.8.img.raw.gz 
|-
|0fc35357cd3e52d2e3ebeabb8388728b || mer-armel-770-image-v0.9.tar.gz
|-
|d3aa8d8fcf07d8151798ec0b2e87d320 || mer-armel-beagleboard-bootfs-v0.9.tar.gz
|-
|f9ef3c21d147c15ea67140e698b8fecb || mer-armel-beagleboard-rootfs-v0.9.tar.gz
|-
|ae8e6fe493a8ced818c0fd0f93888db0 || mer-armel-generic-rootstrap-v0.9.tar.gz
|-
|a754670beafb6b120370149220614b2d || mer-armel-n8x0-image-v0.9.jffs2
|-
|acbbe72a2e5f8276e9f8e548582f694e || mer-armel-n8x0-image-v0.9.tar.gz
|-
|e0313a96a8dbcd23fc9c350f2ee05e50 || mer-armel-n8x0-kernel-v0.9.zImage
|-
|b01a78b35a43be609627054bdde96096 || mer-armel-pocketloox720-v0.9.tar.gz
|-
|8ade366d3878b2821aaa96fde503970b || mer-x86-generic-image-v0.9.img.raw.gz
|-
|c5badb1d23222b4e9cf4ea0a3884854c || mer-x86-generic-image-v0.9.tar.gz
|-
|b2085a9bd4786d821d2577fcb89a3052 || mer-x86-generic-image-v0.9.vmdk.zip
|-
|aa686dc394ab98cb657a5e653c36148d || mer-x86-generic-rootstrap-v0.9.tar.gz
|}

=== Generic x86 - VMDK (VMware disk image) ===

* [http://stskeeps.subnetmask.net/mer/0.9/mer-x86-generic-image-v0.9.vmdk.zip Generic X86 bootable VMDK image] - root password is 'rootme'

==== Installation in VirtualBox  ====
# Unzip zip file
# Open VirtualBox, create new machine (click *New*):
#* Name: Mer 0.9
#* OS type: Linux
#* Version: Ubuntu
#* RAM: 128 at least.
#* Disk: click &quot;existing&quot;, find the mer-x86-generic-image-v0.9.vmdk file, select, select
#* Next
#* Finish.

=== Generic x86 - RAW image ===

* [http://stskeeps.subnetmask.net/mer/0.9/mer-x86-generic-image-v0.9.img.raw.gz Generic X86 RAW gzipped image] - usable in virtual machine products such as Parallels and such supporting RAW disk images (gunzip first).

=== Generic x86 - tar.gz image ===
* [http://stskeeps.subnetmask.net/mer/0.9/mer-x86-generic-image-v0.9.tar.gz Generic X86 tar.gz rootfs image]. Usable both for chroot and actually installing on a machine.

==== Installation (chroot) ====
&lt;pre&gt;
mkdir mer-0.9
cd mer-0.9 &amp;&amp; sudo tar xzf mer-x86-generic-image-v0.9.tar.gz
sudo mkdir -p tmp/.X11-unix home/$USER/.osso
sudo mv usr/bin/maemo-invoker usr/bin/maemo-invoker.real
echo -e '#!/bin/sh\nPROG=&quot;$1&quot;\nshift\nexec &quot;$PROG&quot; &quot;$@&quot;' | sudo tee usr/bin/maemo-invoker
sudo chmod 755 usr/bin/maemo-invoker
echo 'nameserver &lt;mynameresolver&gt;' | sudo tee -a etc/resolv.conf
&lt;/pre&gt;


===== Start-up (from within &lt;tt&gt;mer-0.9&lt;/tt&gt; directory) =====
&lt;pre&gt;
Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -extension Composite 2&gt;/dev/null 1&gt;&amp;2 &amp;
sudo mount --bind /tmp/.X11-unix tmp/.X11-unix
sudo mount --bind /dev/pts dev/pts
sudo mount -t proc proc proc
sudo mount -t sysfs sysfs sys
sudo chroot .
export DISPLAY=:2.0
/etc/init.d/dbus start
start-hildon
&lt;/pre&gt;

==== Installation (machine) ====

See [[Mer/Documentation/Making_x86_Mer_Bootable]]

=== Nokia N8x0(W) - installer === 

* [http://bsd.tspre.org/~stskeeps/merinstaller.install .install file]- open this link on the N8x0, to download proper bootmenu and such.

Guide:

* Open the main menu and tap Utilities -&gt; Install Bootmenu to start the bootmenu install process.
* First, say yes to removing &quot;unneeded extra (and factory testing) stuff&quot;
* say yes to including bootmenu.conf (important). Reboot when done flashing.
* This is a special boot menu where boot menu items are made in /etc/bootmenu.d/*.item and refresh_bootmenu.d will flash this to initfs. '''If you are cloning or booting other OS'es, you'll need to make such .item files''']
* Utilities -&gt; Install Mer and go through the dialogs. The installer will always install the most current release. When done it will reboot and you can hold down menu/swap key and boot into Mer.

=== Nokia N8x0(W) tar.gz ===

* http://stskeeps.subnetmask.net/mer/0.9/mer-armel-n8x0-image-v0.9.tar.gz - tar.gz rootfs image

=== Nokia N8x0(W) flashable image ===

'''NOTE: Experimental'''

* http://stskeeps.subnetmask.net/mer/0.9/mer-armel-n8x0-kernel-v0.9.zImage
* http://stskeeps.subnetmask.net/mer/0.9/mer-armel-n8x0-image-v0.9.jffs2

To flash: flasher-3.0-static -k mer-armel-n8x0-kernel-v0.9.zImage -r mer-armel-n8x0-image-v0.9.jffs2 -f -R

You might want a MMC card swap partition.

=== Nokia 770 - tar.gz image ===

* [http://stskeeps.subnetmask.net/mer/0.9/mer-armel-770-image-v0.9.tar.gz Nokia 770 tar.gz rootfs image]

==== Guide ====

(these instructions need testing)

You will need at least a 1gb MMC, and these instructions are based on OS2008HE kernel. 48mhz kernel is highly recommended

Partition MMC to:

*p1: Large ext3 partition first
*p2: 256 MB swap partition second

Grab http://packages.tspre.org/pool/user/b/bootmenu/bootmenu_1.5-2_armel.deb and install it. 

* Open the main menu and tap Utilities -&gt; Install Bootmenu to start the bootmenu install process.
* First, say yes to removing &quot;unneeded extra (and factory testing) stuff&quot;
* say yes to including bootmenu.conf (important). Reboot when done flashing.
* This is a special boot menu where boot menu items are made in /etc/bootmenu.d/*.item and refresh_bootmenu.d will flash this to initfs. '''If you are cloning or booting other OS'es, you'll need to make such .item files'''

Grab e2fsprogs and install it - grab gnutar as well

*From x-terminal, root: insmod /mnt/initfs/lib/modules/current/mbcache.ko
*insmod /mnt/initfs/lib/modules/current/jbd.ko
*insmod /mnt/initfs/lib/modules/current/ext3.ko
*mkfs.ext3 /dev/mmcblk0p1
*mkswap /dev/mmcblk0p2 
*swapon /dev/mmcblk0p2
*mkdir -p /mnt/mer
*mkdir -p /etc/bootmenu.d
*mount -t ext3 /dev/mmcblk0p1 /mnt/mer
*cd /mnt/mer; wget http://stskeeps.subnetmask.net/mer/0.9/mer-armel-770-image-v0.9.tar.gz
*tar pzxvf mer-armel-770-image-v0.9.tar.gz
*rm mer-armel-770-image-v0.9.tar.gz
*umount /mnt/mer
*Make /etc/bootmenu.d/mer.item with the following contents:

&lt;pre&gt;
ITEM_NAME=&quot;Mer&quot;
ITEM_ID=&quot;mer&quot;
ITEM_DEVICE=&quot;mmcblk0p1&quot;
ITEM_MODULES=&quot;mbcache jbd ext3&quot;
ITEM_FSTYPE=&quot;ext3&quot;
ITEM_FSOPTIONS=&quot;noatime,ro&quot;
ITEM_LINUXRC=&quot;linuxrc&quot;
&lt;/pre&gt;
*refresh_bootmenu.d (say yes to reflashing, no to backup of initfs. reboot)
*Hold down Menu key when prompted while booting and select Mer in the boot menu.

=== BeagleBoard port ===

* [http://stskeeps.subnetmask.net/mer/0.9/mer-armel-beagleboard-bootfs-v0.9.tar.gz Boot filesystem], contains uImage (kernel packaged for uboot), for latest uboot.
* [http://stskeeps.subnetmask.net/mer/0.9/mer-armel-beagleboard-rootfs-v0.9.tar.gz Root filesystem]

==== Guide ====

* Make sure you are running a RECENT uBoot, and you have USB input devices like keyboard or mouse, if you don't own a touchscreen..
* Make a SD card, partitioned with 50mb FAT as first partition, extract boot fs on this, and the rest Linux partition, format this as ext3, and extract rootfs on this.
* In uBoot, use the following commands (you may have to adjust video= parameter to match your display screen:

'''Note: The format of the video bootargs parameter has changed for the new 2.6.28 kernel in 0.9. You'll likely have to update the bootargs line.'''

&lt;pre&gt;
setenv bootcmd 'mmcinit; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000'
setenv bootargs 'console=ttyS2,115200n8 console=tty0 root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait omapfb.video_mode=1024x768MR16@60'
saveenv
boot
&lt;/pre&gt;

* The tablet should output kernel output on serial and on video, and on HDMI out it will eventually start X and show the First Boot Wizard. Good luck.

=== Pocket Loox 720 port (experimental) ===

* [http://stskeeps.subnetmask.net/mer/0.8/mer-armel-pocketloox720-kernel-v0.8.zImage zImage]
* [http://stskeeps.subnetmask.net/mer/0.9/mer-armel-pocketloox720-v0.9.tar.gz rootfs]

==== Guide ==== 

* Set up a SD card with a logical partition, and inside this logical partition, make a 50mb or so FAT partition (p5), and put the zImage file on this filesystem, name it zImage. After the logical partition, make a ext3 partition (p2), and untar rootfs on it.
* Grab [http://www.handhelds.org/moin/moin.cgi/HaRET HaRET] and put it on the FAT partition, HaRET.exe. 
* Make a file, startup.txt, with the following contents:

&lt;pre&gt;
set kernel &quot;zImage&quot;
set mtype &quot;617&quot;
set RAMADDR &quot;0xa8000000&quot;
set cmdline &quot;mem=128M rootdelay=1 root=b302 rw console=tty0&quot;
boot
&lt;/pre&gt;

* Unmount all filesystems, insert SD card into Pocket Loox, boot by running HaReT.exe 
* Experimental release, if you want to play with this - come hang out on #mer on irc.freenode.net and we'll try to guide you along. It is a 640x480 screen so our theme won't fit.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Roadmap</title>
    <id>2670</id>
    <revision>
      <id>39008</id>
      <timestamp>2010-09-22T12:58:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

High level roadmap for the Mer project for mentors to generate tasks from.

= Current week =

== Week 44 ==

Dates: 26 october - 1 november

'''Maemo Devices'''

'''Mer'''
*0.17 TESTING (slipped)

'''maemo.org'''

'''Builders and developers tools'''
*Move 0.17 to :Testing, :0.17 (slipped)
*Add karmic target (ARMv6+VFP)

'''Ports and base system'''
*Finish: Token based access restrictions, http://wiki.maemo.org/Token_based_access_restriction
*Build 0.17 testing images every 2nd day
*Make list for TAR initial repository

'''Outreach'''

'''UI (code)'''
*Hildon-input method plugins with international layouts

'''UI (artwork)'''

'''UI (localization)'''

'''Documentation'''

'''Testing'''
*Testing 0.17 images for the whole testing week. 

'''Other'''


= Upcoming weeks = 


== Week 45 ==

Dates: 2-8 november 2009

'''Maemo Devices'''
*Legal check of what can go into token repositories.

'''Mer'''
*0.17 RELEASE

'''maemo.org'''

'''Builders and developers tools'''

'''Ports and base system'''
*Build 0.17 image.
*Begin: N8x0: Sound support OOB
*Begin: N810: GPS support OOB
*Begin: N810: wifi-firmware, wlan-cal
*Begin: N8x0: bluetooth-firmware, bluetooth-cal
*Begin: N8x0: libcal

'''Outreach'''

'''UI (code)'''

'''UI (artwork)'''

'''UI (localization)'''

'''Documentation'''

'''Testing'''

'''Other'''

= Passed weeks =
== Week 41 ==

Dates: 5-11 October 2009

'''Maemo Devices'''

*maemo.gitorious.org
*Fremantle final SDK release
*Harmattan Technical Preview (limited license)


'''Mer'''

*0.16 release (slipped)
*Goal: Reference platform, Fremantle life after Harmattan

'''maemo.org'''
*Begin implementation of [[Token_based_access_restriction]] through summit meeting

'''Builders and developers tools'''

*Begin Depsu SDK discussions (slipped)
*OBS cross for :Devel (slipped)

'''Ports and base system'''
*Bootmenu RX-51 release
*Build 0.16 (slipped)

'''Outreach'''
*Maemo Summit 2009 presentations

'''UI (code)'''
*Make hildon-theme-mermantle 

'''UI (artwork)'''
*Finish base theme

'''UI (localization)'''

'''Documentation'''

'''Testing'''

'''Other'''

== Week 42 ==

Dates: 12-18 October 2009

'''Maemo Devices'''

'''Mer'''
*Mer 2.0 discussion
*0.16 release

'''maemo.org'''

'''Builders and developers tools'''
*Git-ify hands-on sessions
*Begin: Git-ify maemo.gitorious.org releases
*Begin: Update to Fremantle final SDK packages (tools side)
*Add: OBS Cross for :Devel, :Testing
*Begin: Mer/OBS on LF 

'''Ports and base system'''
*Begin: Q5/Q7: Package up XAA accelerated fbdev for SmartQ
*Begin: Update to Fremantle final SDK packages (actual code)
*Begin: Ramzswap for Q5,Q7, N8x0
*Finish: arm-generic images
*Finish: Make support for debootstrapping to a foreign arch using OBS qemu

'''Outreach'''

'''UI (code)'''
*Finish: hildon-desktop-env for polished/shiny.
*Begin: GrandCentral integration, Q5/Q7, N8x0
*Begin: Hildon-status-area integration
*Begin: Hildon-input-method + example plugins integration
*Begin: Update to Fremantle final SDK packages
*Begin; take Mesa-7.6 and use mesa-7.0.3 packaging
*Begin: Status area: Backlight control (HAL based?)
*Begin: Status area: Battery applet (contact 412b
*Begin: Status area: nm-applet status-area-ize
*Begin: Status area: volume control (Pulseaudio/ALSA?)
*Begin: Status area: maemo5-load-applet
*Begin: Status area: Blueman control

'''UI (artwork)'''

'''UI (localization)'''

'''Documentation'''
* Add mer-discuss to wiki documentation

'''Testing'''

'''Other'''

== Week 43 ==

Dates: 19-25 october 2009

'''Maemo Devices'''

*Pushing hildon-theme-layout-5, hildon-theme-tools, hildon-theme-devel to MGO.
'''Mer'''
*Deliver feedback on what can be done better with MGO

'''maemo.org'''
*Stskeeps parttime maemo.org distmaster.

'''Builders and developers tools'''

'''Ports and base system'''
*OBS: Develop patch to generate source repositories (getting source atm requires login and this is a license problem)
*Rewritten N8x0-Merinstaller

'''Outreach'''
* Florida Linux Show

'''UI (code)'''
*Finish: Hildon-status-area integration
*Finish: Hildon-input-method + example plugins integration
*Finish: GrandCentral first integration, Q5/Q7, N8x0
*Finish: Update to Fremantle final SDK packages
*Finish: Status area: Backlight control (HAL based?)
*Finish: Status area: Battery applet (contact 412b
*Finish: Status area: Backlight control (HAL based?)
*Finish: Status area: nm-applet status-area-ize
*Finish: Status area: volume control (Pulseaudio/ALSA?)
*Finish: Status area: maemo5-load-applet
*Finish: Status area: Blueman control

'''UI (artwork)'''
*Finish: final hildon-theme-marina package

'''UI (localization)'''
*Finish: full en_US set.

'''Documentation'''

'''Testing'''

'''Other'''



= Template =

== Week XX ==

Dates:

'''Maemo Devices'''

'''Mer'''

'''maemo.org'''

'''Builders and developers tools'''

'''Ports and base system'''

'''Outreach'''

'''UI (code)'''

'''UI (artwork)'''

'''UI (localization)'''

'''Documentation'''

'''Testing'''

'''Other'''</text>
    </revision>
  </page>
  <page>
    <title>Mer/Sprints</title>
    <id>1463</id>
    <revision>
      <id>38911</id>
      <timestamp>2010-09-22T10:05:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

&lt;imagemap&gt;Image:Mer-logo.png|left|160px
rect 0 0 160 136 [[Mer]]
desc none
&lt;/imagemap&gt;

We employ the [[Maemo.org_Sprints|Maemo.org sprints]] method as development method for Mer. That means, get yourself a maemo.org account, and read this document through if you would like to contribute :)

== How do I participate in Mer? ==

Download the [[../Releases | latest release of Mer]] and help with [[../Testing | testing it out]]. Check the current [[../Tasks | open tasks]], [[../Blueprints | blueprints]] and [[../Proposals | proposals]], and see if there's something you'd like to dig your teeth into.

See {{main|Mer/People}}

== About Mer Software Packages ==
The foundations of Mer are primarily based on Ubuntu 9.04 (or Debian Lenny); then the open Maemo software from Nokia is overlaid and finally Mer specific patches are applied.

There is a table of all the [[Mer/Packages|Mer Packages]].

== How to be a Mer contributor ==

Most Mer development talk goes on in #mer on irc.freenode.net - here's some info on [[IRC|connecting and a web client]].

We use [[Mer/Awareness|microblogging for keeping each other aware of activities]] (do sign up for this if you haven't already after signing up for Mer work.

== How to develop for Mer ==

In order to begin developing in Mer see [[Mer/Build]]. This covers both developing applications to run on Mer and developing the Mer system.

'''Definitely read the procedures below on how to do Mer work.'''

== Layout ==

The current method of sprints is:

* Sprints run for 4 weeks at a time, where after 3 weeks the current progress in the Testing repository will be made into testing images and non-bug-fixes uploads to Testing are forbidden (feature freeze - work can still be done in Devel repository). After sprint completion, final images are built and release post posted along with achievements of the sprint.

Everything is posted on http://guest:guest@trac.tspre.org:9010

== Routine for Mer contributors ==

Mer contributor procedure:
* When you have free time to spare
** Read current sprint page and see if there are any tasks in product backlog you would like to take on and you are capable of
*** If yes, click the arrow icon
*** Go to Procedure for performing task X
** Follow mer-chatter and see if there are any new tasks coming up you would like to take on
*** If yes, if so, find it on the sprint page and click the arrow icon
*** Go to Procedure for performing task X
** If you have an idea for a task to be done, contact the mentor in charge of the area &amp; and after agreement, add it to product backlog
 
Procedure for performing task X:
* When you have chosen to perform a task X, you are initially given a time slot of 2 days to do it. If you need to extend beyond this, there's a button to extend +2 days. If the task is not actively extended, it will show as red (expired) and your mentor might drop your ownership of it.
* While performing task X, you can always talk with your mentor about specifics
* While performing task X, log to mer-chatter (see Awareness) what is happening with it, and update the sprint item regarding how far in % you are with it (The edit button)
* When done, mark it as done on the sprint page, and indicate on mer-chatter that you finished doing it

No-one is going to assign you specific tasks and you take on the tasks by your own initiative - so a mentor is not as such your boss, but more of a helper to help you get your task done. You pitch in with what you'd like to contribute with.

== Routine for Mer mentors ==

* When you have free time to spare:
*** Monitor your area / the tasks you are mentoring and take action if it's not being handled properly (it will show as red if it's not extended)
** When getting contacted about a possible task
*** Add it to your area in the sprint backlog on the sprint page if it is reasonable
** Help out as you can with guidance for the contributors if they contact you about how to go about a task.
** Develop your area - add new tasks to backlog when they come up and work with the other mentors to decide direction of Mer in general
** Add incoming bug reports as tasks to backlog to be looked into in your sprint page.
* Before each sprint, check the [[../Blueprints | blueprints]] page and see if there is a task which you wouild like to do during the next sprint
== Completed sprints ==

Sprints are no longer being tracked in the wiki. See http://guest:guest@trac.tspre.org:9010/

* Mer Sprint 0.16: 20 July 2009 - 10 August (feature freeze), Testing period: 10 August 2009 - 24 August 2009 
* Mer Sprint 0.15: 15 June 2009 - 6 July (feature freeze), Testing period: 6 July 2009 - 20 July 2009 
* [[Mer/Sprints/0.14|Mer Sprint 0.14]]: 18 May 2009 - 8 June (feature freeze), Testing period: 8 June 2009 - 15 June 2009 
* [[Mer/Sprints/0.13|Mer Sprint 0.13]]: 27 April 2009 - 11 May 2009 (feature freeze), Testing period: 11 May 2009 - 18 May 2009
* [[Mer/Sprints/0.12|Mer Sprint 0.12]]: 6 April 2009 - 20 April 2009 (feature freeze), 27 April 2009 release.
* [[Mer/Sprints/0.11|Mer Sprint 0.11]]: 16 March 2009 - 30 March 2009 (feature freeze), 6 April 2009 release.
* [[Mer/Sprints/0.10|Mer Sprint 0.10]]: 2 March (start) - 16 March 2009 (did not result in a proper release)
* [[Mer/Sprints/0.9|Mer Sprint 0.9]]: 16 February (start) - 2 March 2009 (release)
* [[Mer/Sprints/0.8|Mer Sprint 0.8]]: 1 February (start) - 16 February 2009 (release)
* [[Mer/Sprints/0.7|Mer Sprint 0.7]]: 18 January (start) - 1 February 2009 (release)
* [[Mer/Sprints/0.6|Mer Sprint 0.6]]: -18 January 2009 (release)

There is a [[/Template | template]] for setting up sprints.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Sprints/0.10</title>
    <id>1667</id>
    <revision>
      <id>38965</id>
      <timestamp>2010-09-22T11:32:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Period: 2 March 2009 - 16 March 2009 [[Mer/Releases/0.10|Release]]

==== Tasks ====

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Urgent for next release
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner
! %
! Highlights
|- style=&quot;background:Tomato&quot;
| || Implement hald-addon-bme open source based on [https://garage.maemo.org/plugins/scmsvn/viewcvs.php/dsme/trunk/adhoc/dummy_bme.c?revision=155&amp;root=dsm&amp;view=markup dummy BME] and  [[Mer/Documentation/BME_Protocol]] , see [http://gitweb.pingu.fi/?p=hald-addon-retu-adc.git;a=tree this] for example || daperl || 0% ||
|- style=&quot;background:Tomato&quot;
| || hildon-plugins-settings-cpa: creates duplicate application menu. || none || 0% ||
|- style=&quot;background:Orange&quot;
| || set kernel.core-pattern to something sane consistent across platforms || none || 50% || [http://webwizardry.net/~timeless/10-coredumps.conf
this sysctl conf file], needs packaging: mkdir -p /var/cores from postinst. 
|- style=&quot;background:Orange&quot;
| || Include hildon-theme-layout-4-synth (alter to use proper fallback icon theme) and tritanium, meta, okuda, kobayashi from extras-devel || none || 70% || hildon-theme-layout-4-synth now in repository (Stskeeps), and hildon-theme-meta and tritanium in repository as source, but fails to build due to possibly new autoconf.
|- style=&quot;&quot;
| || package a tslib calibration tool for X or framebuffer? || none || 0% ||
|- style=&quot;&quot;
| || home applets behave oddly when in non-800x480 || none || 0% ||
|- style=&quot;&quot;
| || Port gdm-autologin from deblet and use /etc/default/autologin || none || 0% ||
|- style=&quot;&quot;
| || look at timeless' enus stuff || none || 0% ||
|- style=&quot;&quot;
| || Use lp:~mer-committers/m-r/hildon-input-method &amp; lp:~mer-committers/m-r/hildon-input-method-framework and see if you can get them to work (Fremantle versions) || none || 0% ||
|- style=&quot;&quot;
| || Implement a libconic ICD dbus messages handler relaying to NetworkManager || none || 0% ||
|- style=&quot;&quot;
| || QEMU/N8x0 image of Mer || none || 0% ||
|- style=&quot;&quot;
| || Start localization project for Mer, using launchpad (we have .pos, but we need people and translations) || none || 0% ||
|- style=&quot;&quot;
| || get a run-standalone.sh like thing || none || 0% ||
|- style=&quot;&quot;
| || Fix C++ in SDK (see straightjacket packages) || none || 0% ||
|- style=&quot;&quot;
| || Rotation shouldn't crash X? || none || 0% ||
|- style=&quot;&quot;
| || Fix rootstrap for SB to be more recent (libkrb depends on libc6 &gt;= 2.9 at the moment) || none || 0% ||
|- style=&quot;&quot;
| || Try to get various Python-based applets working for Mer || none || 0% ||
|- style=&quot;&quot;
| || docpurge should interact better with dpkg and upgrades || none || 0% ||
|- style=&quot;&quot;
| || Replacing SDK icons with more modern ones || none || 0% ||
|- style=&quot;&quot;
| || Modern kernels, get newer kernels working with the 770, N8x0, and use stlc45xx on N8x0s || none || 0% ||
|- style=&quot;&quot;
| || Make kernel-diablo-modules-gserial and implement support with help of rescue menu || none || 0% || 
|- style=&quot;&quot;
| || Update debhelper in Mer Scratchbox SDK devkit || none || 0% || 
|- style=&quot;&quot;
| || Figure out why python-osso fails to build in SDK || none || 0% || 
|- style=&quot;&quot;
| || Patch libvte with further maemo changes (blinking interval, Enter, etc) || none || 0% || 
|- style=&quot;background:LightBlue&quot;
| || Make hildon-desktop-env use a configuration file to determine wether it needs to show cursor or not (useful for x86) || johnx || 95% || Could use some testing on x86s with touchscreens
|- style=&quot;background:LightBlue&quot;
| December || [[Task:Community_firmware_image_distribution|Proposal for distribution of firmware images including closed-source bits needed for community editions]] || Stskeeps || 50% || First proposal involving initfs bits proposed through maemo-community. [http://lists.maemo.org/pipermail//maemo-community/2009-January/002946.html Positive Nokia response] [http://lists.maemo.org/pipermail/maemo-community/2009-February/003114.html wish list for 3rd party components]
|- style=&quot;background:LightBlue&quot;
| 2009-01-17 || Move project from launchpad to maemo.org garage || Stskeeps || 40% || Project retrieved (mer.garage.maemo.org), [https://bugs.maemo.org/enter_bug.cgi?product=Mer Mer on bugs.maemo.org]. Blockers: [https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=3319&amp;group_id=841&amp;atid=3136 Multiple git repositories per project] [https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=3320&amp;group_id=841&amp;atid=3136 Personal git repositories]. 
|- style=&quot;background:LightGreen&quot;
| || 770 wifi module patches to support WPA, IW wireless extensions || Stskeeps|| 100% || In repository.
|}

==== Bugs ====

Bug reports in bugzilla discovered through or related to Mer development in this sprint or outstanding still:

{{#bugzilla:id=4178,4176,4171,4148,4111,4102,4101,4062,4093,4043,4023,3858,3939,3021
  |columns=id,severity,product,status,resolution,summary,to
}}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Sprints/0.11</title>
    <id>1687</id>
    <revision>
      <id>39009</id>
      <timestamp>2010-09-22T12:59:37Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

'''This sprint is over, please use [[Mer/Sprints/0.12]] instead.'''

Period: 16. March 2009 - 30 March 2009. Testing period: 30 March 2009 - 5 April 2009 [[Mer/Releases/0.11|Release]]

= Tasks =

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
| style=&quot;background:Red&quot; | Urgent for next release
|}

== Guide ==

*If you want to take on a task, write your nickname in the task item (at the ?) contact the mentor of the task.
*If you want something tested when the task is done, move the task to Component: Testing, tell the mentor of the testing component, and change Owner, Mentor 

to &quot;?, your nickname&quot;. You're now the mentor for the tester in this particular task.
*If you want to propose a task, contact the mentor of the component
*If you find a bug, report it on http://bugs.maemo.org in the Mer product.
 
== Component: Documentation ==

Mentors:
* None at the moment, ask Stskeeps

High-level goals for sprints 0.11 and 0.12:

* Provide initial documentation for Nokia N8x0 installation, jffs2 and installer version with screenshots
* Establish &quot;initial&quot; Mer developer documentation, linking to Maemo developer documentation and indicating sections which are still valid
* Locate a mentor for this area

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}


== Component: Builders and developer tools ==

Mentors:
* None at the moment, ask Stskeeps

High-level goals for sprints 0.11 and 0.12:

* Move infrastructure to maemo.org (repository, builder)
* Provide builder for Mer/x86, Mer/armv5te and Mer/armv4t (lenny based) and release the software for it (SDK)
* Locate a mentor for this area

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;background:LightBlue&quot;
| 2009-03-16 || Build a cross-compilation toolchain for Ubuntu Jaunty armel gcc+glibc and provide for Scratchbox || zenvoid, Stskeeps || 80% || [http://zenvoid.org/software/cross-compiler/ provided here. Not sure about SB]
|- style=&quot;&quot; 
| 2009-03-16 || Build a cross-compilation toolchain for Debian Lenny armel gcc+glibc and provide for Scratchbox || zenvoid, Stskeeps || 0% || none
|- style=&quot;&quot;
| not yet || Upgrade rootstrap for Mer/armv5te for Scratchbox Accelerator || ?, Stskeeps || 0% || none
|- style=&quot;&quot; 
| not yet || Provide rootstrap for Mer/armv4t for Scratchbox Accelerator || ?, Stskeeps || 0% || none
|- style=&quot;&quot;
| not yet || Update debhelper in Mer Scratchbox SDK devkit || ?, Stskeeps || 0% || 
|- style=&quot;&quot;
| 2008-03-16 || Investigate usage of [[OpenSuse Build Service]] as builder and SDK ability || lbt, Stskeeps || 10% || Meeting on #mer with OBS people
|- style=&quot;&quot;
| not yet || Discuss with maemo.org their requirements for including Mer repository and builders || ?, Stskeeps || 0% || none
|- style=&quot;&quot; 
| not yet || Move repository.mer.tspre.org to maemo.org infrastructure || ?, Stskeeps || 0% || none 
|- style=&quot;&quot; 
| not yet || Provide script for first x86 building, then sb-accelerated armv5te, and armv4t build, and then if fails, qemu build || ?, Stskeeps || 0% || none
|- style=&quot;background:LightBlue&quot;
| 2009-01-17 || Move project from launchpad to maemo.org garage || Stskeeps || 40% || Project retrieved (mer.garage.maemo.org), 

[https://bugs.maemo.org/enter_bug.cgi?product=Mer Mer on bugs.maemo.org]. Blockers: 

[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=3319&amp;group_id=841&amp;atid=3136 Multiple git repositories per project] 

[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=3320&amp;group_id=841&amp;atid=3136 Personal git repositories]. 
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: Ports and base system ==

Mentors:
* None at the moment, ask Stskeeps

High level goals for sprints 0.11 and 0.12:

* In addition to existing ports, provide Mer/armv4t (lenny based) image for [[http://wiki.openmoko.org/wiki/Neo_FreeRunner Neo Freerunner]], and Mer/armv5te for ADP1
* Provide battery reporting on Nokia N8x0(W) (optionally 770)
* Provide accelerated X on Nokia 770 + Nokia N8x0(W), using Xomap
* Locate a mentor for this area

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;&quot;
| 2009-03-29 || Create imager scripts for Mer/armv4t (lenny based) || Stskeeps || 100% || In bzr.
|- style=&quot;&quot;
| not yet || Implement hald-addon-bme open source based on [https://garage.maemo.org/plugins/scmsvn/viewcvs.php/dsme/trunk/adhoc/dummy_bme.c?revision=155&amp;root=dsm&amp;view=markup dummy BME] and [[Mer/Documentation/BME_Protocol]] , see [http://gitweb.pingu.fi/?p=hald-addon-retu-adc.git;a=tree this] for example || daperl, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || docpurge should interact better with dpkg and upgrades || ?, Stskeeps || 0% ||
|- style=&quot;&quot; 
| not yet || set kernel.core-pattern to something sane consistent across platforms || ?, timeless || 50% || [http://webwizardry.net/~timeless/10-coredumps.conf this sysctl conf file], needs packaging: mkdir -p /var/cores from postinst. 
|- style=&quot;&quot;
| not yet || Implement a libconic ICD dbus messages handler relaying to NetworkManager || ?, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Adapt imager scripts for Beagleboard to be using .scr like in http://elinux.org/BeagleBoardUbuntu || ?, Stskeeps || 0% || 
|- style=&quot;&quot;
| not yet || Figure out why upstart from https://code.launchpad.net/~mer-committers/m-r/upstart fails to boot on armel || ?, Stskeeps || 0% || 
|- style=&quot;background:LightGreen&quot;
| not yet || maemo-launcher should not execute from init.d || Stskeeps || 100% ||
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=4224
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: User interface (code) ==

Mentors:
* None at the moment, ask Stskeeps

High level goals for sprints 0.11 and 0.12:

* Provide resolution independent hildon desktop code and layout, accessible even on 320x240
* Start building generic control panel applets for the Mer system
* Locate a mentor for this area

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;&quot;
| not yet || package a tslib calibration tool for X or framebuffer? || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || home applets behave oddly when in non-800x480 || none, Stskeeps || 0% ||
|- style=&quot;background:Tomato&quot;
| not yet || hildon-plugins-settings-cpa: creates duplicate application menu. || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Patch libvte with further maemo changes (blinking interval, Enter, etc) || none || 0% || 
|- style=&quot;&quot;
| not yet || Figure out why Hildon Input Method refuses to show when under Xomap || ?, Stskeeps || 0% || none
|- style=&quot;&quot;
| not yet || Build qt4.5-hildon for armel || ?, Stskeeps || 0% || none
|- style=&quot;&quot; 
| not yet || Screen should not dim and turn off during first boot wizard || ?, Stskeeps || 0% || none
|- style=&quot;&quot;
| not yet || Magic X menu stretches too far, before adding v ^ buttons. || ?, Stskeeps || 0% || none
|- style=&quot;&quot;
| not yet || Magic X menu should have current app highlighted and in top of list || ?, Stskeeps || 0% || none
|- style=&quot;background:Tomato&quot;
| not yet || Update Midori Mer package || ?, Stskeeps || 0% || Waiting for Ubuntu people to update libwebkit
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=4062,4066,4223,4243,4250
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: User interface (artwork) ==

Mentors:
* wazd

High level goals for sprints 0.11 and 0.12:

* Provide a furry of themes, icons, backgrounds (in multiple resolutions) to make Mer look pretty.

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;background:LightBlue&quot;
| not yet || Make replacement(s) for SDK icons (hildon-icons) || Meizirkki, wazd || 40% || List of Hildon icons and their Oxygen-based replacements: http://trac.tspre.org/meiz/icons.list . About half of the icons replaced.
|- style=&quot;background:LightGreen&quot;
| 2009-03-20 || Finish icons for Magic X, Menu button, Applications menu and select-buttons for liberty-mer || wazd, wazd || 100% || See [[Mer/Artwork]]
|- style=&quot;&quot;
| not yet || Develop new themes based on -mer layout || none, wazd || 0% || none
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: User interface (localization) ==

Mentors:
* None at the moment, ask Stskeeps

High level goals:
* Locate a mentor for this area
* Establish component activity.

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;&quot;
| not yet || Start localization project for Mer, using launchpad or other (we have .pos, but we need people and translations) || none || 0% ||
|- style=&quot;&quot;
| not yet || Find and package l10n for osso-xterm || ?, Stskeeps || 0% || none
|- style=&quot;&quot;
| not yet || look at timeless' enus stuff in extras || none, timeless || 0% ||
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: Testing ==

Mentors:
* Meizirkki

High level goals:

* This is where all needed items to be tested are put.

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;background:LightBlue&quot;
| not yet || Make hildon-desktop-env use a configuration file to determine wether it needs to show cursor or not (useful for x86) || ?, johnx || 95% || Could use some testing on x86s with touchscreens 
|- style=&quot;background:LightBlue&quot;
| 2003-03-17 || Hildon input method fails to manifest || ?, Stskeeps || 95% || Needs testing, fixed in hildon-input-method-framework=1:2.0.1-1mer2
|- style=&quot;background:LightGreen&quot;
| 2003-03-17 || xkb-data seems to be included in debootstrap and cannot dist-upgrade to the correct one without forcing, killing N810 keymap || Meiz, Stskeeps || 100% || Fixed in imager, needs testing
|- style=&quot;background:LightBlue&quot;
| 2003-03-22 || Mer N8x0 kernel patches:  I'll disable OTG device whitelisting, add pH5's patch to change opmode on the fly, fanoush's patch to remove &quot;menelaus: Setting voltage...&quot; messages in dmesg,  fanoush's patch which correctly gives device nodes for mmcs on N810, rndispatch, jott's rotation and a quickie patch of mine to remove &quot;EAC mode...&quot; messages from dmesg || ?, qwerty12 || 95% || [http://trac.tspre.org/qwerty12/mer_kernel/mer_kernel patch], [http://trac.tspre.org/qwerty12/mer_kernel/mer_kernel_2.6.21-zImage_boot_from_initfs.tar std image] [http://trac.tspre.org/qwerty12/mer_kernel/mer_kernel_2.6.21-zImage_boot_from_rootfs.tar straight to rootfs].
|- style=&quot;background:LightGreen&quot;
| 2009-03-29 || Make menu button work for HD itself too, and not the &quot;All&quot; menu || Meiz ,Stskeeps || 100% || Needs testing
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}

== Upstream ==

Bug reports in bugzilla discovered through or related to Mer development but not within Mer:

{{#bugzilla:id=3021,3858,4101,4102,4148,4178,3939,4023,4043,4111
  |columns=id,severity,product,status,resolution,summary,to
}}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Sprints/0.12</title>
    <id>1762</id>
    <revision>
      <id>38912</id>
      <timestamp>2010-09-22T10:06:42Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

'''This sprint is now over, please see [[Mer/Sprints/0.13]]'''

Period: 6. April 2009 - 20 April 2009. Testing period: 20 April 2009 - 27 April 2009 [[Mer/Releases/0.12|Release]]

= Tasks =

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
| style=&quot;background:Red&quot; | Urgent for next release
|}

== Guide ==

*If you want to take on a task, write your nickname in the task item (at the ?) contact the mentor of the task.
*If you want something tested when the task is done, move the task to Component: Testing, tell the mentor of the testing component, and change Owner, Mentor 

to &quot;?, your nickname&quot;. You're now the mentor for the tester in this particular task.
*If you want to propose a task, contact the mentor of the component
*If you find a bug, report it on http://bugs.maemo.org in the Mer product.
 
== Component: Documentation ==

Mentors:
* None at the moment, ask Stskeeps

High-level goals for sprints 0.11 and 0.12:

* Provide initial documentation for Nokia N8x0 installation, jffs2 and installer version with screenshots
* Establish &quot;initial&quot; Mer developer documentation, linking to Maemo developer documentation and indicating sections which are still valid
* Locate a mentor for this area

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}


== Component: Builders and developer tools ==

Mentors:
* lbt

High-level goals for sprints 0.11 and 0.12:

* Move infrastructure to maemo.org (repository, builder)
* Provide builder for Mer/x86, Mer/armv5te and Mer/armv4t (lenny based) and release the software for it (SDK)

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;background:LightBlue&quot;
| 2009-03-16 || Build a cross-compilation toolchain for Ubuntu Jaunty armel gcc+glibc  || zenvoid, Stskeeps || 80% || [http://zenvoid.org/software/cross-compiler/ provided here.]
|- style=&quot;&quot; 
| 2009-03-16 || Build a cross-compilation toolchain for Debian Lenny armel gcc+glibc || zenvoid, Stskeeps || 0% || none
|- style=&quot;&quot;
| 2008-03-16 || Investigate usage of [[OpenSuse Build Service]] as builder and SDK ability || lbt, Stskeeps || 80% || Meeting on #mer with OBS people, making good progress.
|- style=&quot;&quot;
| not yet || Discuss with maemo.org their requirements for including Mer repository and builders || Stskeeps || 0% || Will be done at Copenhagen developer meeting
|- style=&quot;&quot; 
| not yet || Move repository.mer.tspre.org to maemo.org infrastructure || Stskeeps || 0% || Will be done after copenhagen developer meeting
|- style=&quot;background:LightBlue&quot;
| 2009-01-17 || Move project from launchpad to maemo.org garage || Stskeeps || 40% || Project retrieved (mer.garage.maemo.org), 

[https://bugs.maemo.org/enter_bug.cgi?product=Mer Mer on bugs.maemo.org]. Blockers: 

[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=3319&amp;group_id=841&amp;atid=3136 Multiple git repositories per project] 

[https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=3320&amp;group_id=841&amp;atid=3136 Personal git repositories]. 
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: Ports and base system ==

Mentors:
* None at the moment, ask Stskeeps

High level goals for sprints 0.11 and 0.12:

* In addition to existing ports, provide Mer/armv4t (lenny based) image for [[http://wiki.openmoko.org/wiki/Neo_FreeRunner Neo Freerunner]]
* Provide battery reporting on Nokia N8x0(W) (optionally 770)
* Provide accelerated X on Nokia 770 + Nokia N8x0(W), using Xomap
* Locate a mentor for this area

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;background:LightGreen&quot;
| 2009-03-29 || Create imager scripts for Mer/armv4t (lenny based) || Stskeeps || 100% || In bzr.
|- style=&quot;&quot;
| not yet || Implement hald-addon-bme open source based on [https://garage.maemo.org/plugins/scmsvn/viewcvs.php/dsme/trunk/adhoc/dummy_bme.c?revision=155&amp;root=dsm&amp;view=markup dummy BME] and [[Mer/Documentation/BME_Protocol]] , see [http://gitweb.pingu.fi/?p=hald-addon-retu-adc.git;a=tree this] for example || ?, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || docpurge should interact better with dpkg and upgrades || ?, Stskeeps || 0% ||
|- style=&quot;background:LightGreen&quot; 
| 2009-04-16 || set kernel.core-pattern to something sane consistent across platforms || qwerty12, timeless || 100% || [http://webwizardry.net/~timeless/10-coredumps.conf this sysctl conf file], needs packaging: mkdir -p /var/cores from postinst. In repository as core-pattern.
|- style=&quot;&quot;
| not yet || Implement a libconic ICD dbus messages handler relaying to NetworkManager || ?, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Adapt imager scripts for Beagleboard to be using .scr like in http://elinux.org/BeagleBoardUbuntu || ?, Stskeeps || 0% || 
|- style=&quot;background:LightBlue&quot;
| not yet || Implement an installer within Mer/N8x0 which uses Maemo update repositories to download HW support, battery and sound and install associated applets/support packages || qwerty12, Stskeeps || 50% || tablet-sound is already in repository, and so is advanced-power. tablet-battery-monitor is now in the repository.
|- style=&quot;&quot;
| not yet || Include patch from MB2249 in Mer kernels || ?, andre_ || 0% ||
|- style=&quot;&quot;
| not yet || Include patch from MB2504 in cx3110x-module-src and rebuild cx3110x-module || ?, Stskeeps || 0% ||
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=4224,2249,2504
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: User interface (code) ==

Mentors:
* None at the moment, ask Stskeeps

High level goals for sprints 0.11 and 0.12:

* Provide resolution independent hildon desktop code and layout, accessible even on 320x240
* Start building generic control panel applets for the Mer system
* Locate a mentor for this area

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;&quot;
| not yet || Implement [[Mer/Blueprints/About_product_CPA]] || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Implement [[Mer/Blueprints/Date_and_time_CPA]] || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Implement [[Mer/Blueprints/Display_CPA]] || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Implement [[Mer/Blueprints/Memory_CPA]] || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Port Xournal || none, Stskeeps || 0% || 
|- style=&quot;&quot;
| not yet || Port Modest || neatojones, Stskeeps || 0% || (not sure anyone would use it, but it is for some libraries that other apps need.) Need to import microb-engine first since it's a dependency.  Might try libwebkit instead of mozilla.
|- style=&quot;&quot;
| not yet || Port claws-mail (hildonized || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Port BoaFM || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Port Canola2 and associated python libraries || none, Stskeeps || 0% ||
|- style=&quot;background:LightGreen&quot;
| 2009-04-16 || Port galculator-hildon || qwerty12, Stskeeps || 100% || In repository as galculator.
|- style=&quot;background:Tomato&quot;
| not yet || Port Tear || none, Stskeeps || 0% || In need of armel fix for webkit, Bundyo will look at it
|- style=&quot;&quot;
| not yet || Port a proper PDF reader || none, Stskeeps || 0% ||
|- style=&quot;background:LightGreen&quot;
| 2009-04-20 || Hildonize Blueman || qwerty12, Stskeeps || 100% || [http://trac.tspre.org/qwerty12/blueman/bl1.png Tap and hold in Manager] [http://trac.tspre.org/qwerty12/blueman/bl3.png Applet and Manager window] [http://trac.tspre.org/qwerty12/blueman/bl6.png Sending file] [http://trac.tspre.org/meiz/screenshots/bt-tethering.png Tethering] - In repository as (surprise!) blueman.
|- style=&quot;&quot;
| not yet || package a tslib calibration tool for X or framebuffer? || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || home applets behave oddly when in non-800x480 || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Patch libvte with further maemo changes (blinking interval, Enter, etc) || none || 0% || 
|- style=&quot;&quot;
| not yet || Figure out why Hildon Input Method refuses to show when under Xomap || ?, Stskeeps || 0% || none
|- style=&quot;&quot;
| not yet || Build qt4.5-hildon for armel || ?, Stskeeps || 0% || none
|- style=&quot;&quot; 
| not yet || Screen should not dim and turn off during first boot wizard || ?, Stskeeps || 0% || http://armin-warda.de/noscreenblank.c works fine for keeping the screen alive. It just needs D-Bus running so it can osso_initialize properly. Quick patch so it actually compiles under Mer: http://trac.tspre.org/qwerty12/noscreenblankfix.diff. Apply patch, run &quot;apt-get install libosso-dev &amp;&amp; gcc noscreenblank.c -o noscreenblank `pkg-config --cflags --libs libosso&quot;. qwerty12 is also available for integrating the above functionality into zenity itself.
|- style=&quot;&quot;
| not yet || Magic X menu stretches too far, before adding v ^ buttons. || ?, Stskeeps || 0% || none
|- style=&quot;&quot;
| not yet || Magic X menu should have current app highlighted and in top of list || ?, Stskeeps || 0% || none
|- style=&quot;background:Tomato&quot;
| not yet || Update Midori Mer package || ?, Stskeeps || 0% || Waiting for Ubuntu people to update libwebkit
|- style=&quot;&quot; 
| not yet || Chase missing or malplaced icons || b-man, stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Fix http://trac.tspre.org/meiz/screenshots/second-level-statusbar.png || ?, Stskeeps || 0% ||
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=4066,4243,4250,4256,4258
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: User interface (artwork) ==

Mentors:
* wazd

High level goals for sprints 0.11 and 0.12:

* Provide a furry of themes, icons, backgrounds (in multiple resolutions) to make Mer look pretty.

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;background:LightBlue&quot;
| not yet || Make replacement(s) for SDK icons (hildon-icons) || Meizirkki, wazd || 40% || List of Hildon icons and their Oxygen-based replacements: http://trac.tspre.org/meiz/icons.list . About half of the icons replaced.
|- style=&quot;&quot;
| not yet || Develop new themes based on -mer layout || none, wazd || 0% || none
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: User interface (localization) ==

Mentors:
* claudius/Claudius Henrichs

High level goals:
* Locate a mentor for this area
* Establish component activity.

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;background:Tomato&quot;
| not yet || Work with maemo.org &amp; Transifex || claudius || 10% || Stskeeps: submitted initial l10n and it got refused by launchpad. 
|- style=&quot;&quot;
| not yet || Find and package l10n for osso-xterm || ?, Stskeeps || 0% || none
|- style=&quot;&quot;
| not yet || look at timeless' enus stuff in extras || none, timeless || 0% ||
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: Outreach ==

Mentors:
* mtc (Chief Evangelist)

High level goals:

* Recruitment, presentations, developer meetings, - reaching out to potential community members.


{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;background:LightBlue&quot;
| 2009-03 || [[MozillaMaemoDanishWeekend]] - preparing for the Mer part || Stskeeps || 50% || [[Mer/HackfestCopenhagen09]], [http://internettablettalk.com/forums/showpost.php?p=278371&amp;postcount=7 iTT post]
|}


== Component: Testing ==

Mentors:
* Meizirkki

High level goals:

* This is where all needed items to be tested are put.

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;background:LightGreen&quot;
| not yet || Drag lock and dragging fixed in mer32 of hildon-desktop, || ?, Stskeeps || 100% || Fixed. Tested on n810
|- style=&quot;background:LightGreen&quot;
| not yet || hildon-plugins-settings-cpa: creates duplicate application menu. || ?, Stskeeps || 100% || Fixed. Tested on n810
|- style=&quot;background:LightGreen&quot;
| not yet || Port large-statusbar-clock || ? ,Stskeeps || 100% || In repository, Tested on n810
|- style=&quot;background:LightBlue&quot;
| not yet || Make hildon-desktop-env use a configuration file to determine wether it needs to show cursor or not (useful for x86) || ?, johnx || 95% || Could use some testing on x86s with touchscreens 
|- style=&quot;background:LightGreen&quot;
| not yet || Figure out why upstart from https://code.launchpad.net/~mer-committers/m-r/upstart fails to boot on armel || Meiz, Stskeeps || 100% || Rebuilt using ARMchroot. Tested.
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}

== Upstream ==

Bug reports in bugzilla discovered through or related to Mer development but not within Mer:

{{#bugzilla:id=3021,3858,4101,4102,4148,4178,3939,4023,4043,4111
  |columns=id,severity,product,status,resolution,summary,to
}}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Sprints/0.13</title>
    <id>1806</id>
    <revision>
      <id>38966</id>
      <timestamp>2010-09-22T11:33:52Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Period: 27. April 2009 - 11 May 2009. Testing period: 11 May 2009 - 18 May 2009 [[Mer/Releases/0.13|Release]]. 

This sprint is no longer active, please see [[Mer/Sprints/0.14]]

= Tasks =

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
| style=&quot;background:Red&quot; | Urgent for next release
|}

== Guide ==

*If you want to take on a task, write your nickname in the task item (at the ?) contact the mentor of the task.
*If you want something tested when the task is done, move the task to Component: Testing, tell the mentor of the testing component, and change Owner, Mentor 

to &quot;?, your nickname&quot;. You're now the mentor for the tester in this particular task.
*If you want to propose a task, contact the mentor of the component
*If you find a bug, report it on http://bugs.maemo.org in the Mer product.
 
== Component: Documentation ==

Mentors:
* None at the moment, ask Stskeeps

High-level goals for sprints 0.11 and 0.12:

* Provide initial documentation for Nokia N8x0 installation, jffs2 and installer version with screenshots
* Establish &quot;initial&quot; Mer developer documentation, linking to Maemo developer documentation and indicating sections which are still valid
* Locate a mentor for this area

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}


== Component: Builders and developer tools ==

Mentors:
* lbt

High-level goals for sprints 0.14:

* Finish work on procedures for OBS work
* Provide documentation of OBS for developers to use
* Work on presenting OBS at Copenhagen weekend, especially to maemo.org staff
* Work with maemo.org to provide [https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=3319&amp;group_id=841&amp;atid=3136 Multiple git repositories per project] [https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=3320&amp;group_id=841&amp;atid=3136 Personal git repositories]. 

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;&quot;
| 2008-03-16 || Investigate usage of OpenSUSE Build Service as builder and SDK ability || lbt, Stskeeps || 80% || Meeting on #mer with OBS people, making good progress.
|- style=&quot;&quot;
| not yet || Discuss with maemo.org their requirements for including Mer repository and builders || Stskeeps || 0% || Will be done at Copenhagen developer meeting
|- style=&quot;background:LightBlue&quot;
| 2009-01-17 || Move project from launchpad to maemo.org garage || Stskeeps || 40% || Project retrieved (mer.garage.maemo.org), 

[https://bugs.maemo.org/enter_bug.cgi?product=Mer Mer on bugs.maemo.org]. Blockers: 


|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: Ports and base system ==

Mentors:
* None at the moment, ask Stskeeps

High level goals for sprints 0.11 and 0.12:

* In addition to existing ports, provide Mer/armv4t (lenny based) image for [[http://wiki.openmoko.org/wiki/Neo_FreeRunner Neo Freerunner]]
* Provide battery reporting on Nokia N8x0(W) (optionally 770)
* Provide accelerated X on Nokia 770 + Nokia N8x0(W), using Xomap
* Locate a mentor for this area

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;&quot;
| not yet || Implement hald-addon-bme open source based on [https://garage.maemo.org/plugins/scmsvn/viewcvs.php/dsme/trunk/adhoc/dummy_bme.c?revision=155&amp;root=dsm&amp;view=markup dummy BME] and [[Mer/Documentation/BME_Protocol]] , see [http://gitweb.pingu.fi/?p=hald-addon-retu-adc.git;a=tree this] for example || ?, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || docpurge should interact better with dpkg and upgrades || ?, Stskeeps || 90% || Implemented by qwerty12, script [http://internettablettalk.com/forums/showthread.php?p=283392#post283392 here]
|- style=&quot;&quot;
| not yet || Implement a libconic ICD dbus messages handler relaying to NetworkManager || ?, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Adapt imager scripts for Beagleboard to be using .scr like in http://elinux.org/BeagleBoardUbuntu || ?, Stskeeps || 0% || 
|- style=&quot;background:LightBlue&quot;
| not yet || Implement an installer within Mer/N8x0 which uses Maemo update repositories to download HW support, battery and sound and install associated applets/support packages || qwerty12, Stskeeps || 50% || tablet-sound is already in repository, and so is advanced-power. tablet-battery-monitor is now in the repository.
|- style=&quot;&quot;
| not yet || Include patch from MB2249 in Mer kernels || ?, andre_ || 0% ||
|- style=&quot;&quot;
| not yet || Include patch from MB2504 in cx3110x-module-src and rebuild cx3110x-module || ?, Stskeeps || 0% ||
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=2249,2504
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: User interface (code) ==

Mentors:
* None at the moment, ask Stskeeps

High level goals for sprints 0.11 and 0.12:

* Provide resolution independent hildon desktop code and layout, accessible even on 320x240
* Start building generic control panel applets for the Mer system
* Locate a mentor for this area

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;&quot;
| not yet || Implement [[Mer/Blueprints/About_product_CPA]] || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Implement [[Mer/Blueprints/Date_and_time_CPA]] || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Implement [[Mer/Blueprints/Display_CPA]] || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Implement [[Mer/Blueprints/Memory_CPA]] || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Port Xournal || none, Stskeeps || 0% || 
|- style=&quot;&quot;
| not yet || Port Modest || neatojones, Stskeeps || 0% || (not sure anyone would use it, but it is for some libraries that other apps need.) Need to import microb-engine first since it's a dependency.  Might try libwebkit instead of mozilla.
|- style=&quot;&quot;
| not yet || Port claws-mail (hildonized || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Port BoaFM || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Port Canola2 and associated python libraries || none, Stskeeps || 0% ||
|- style=&quot;background:Tomato&quot;
| not yet || Port Tear || none, Stskeeps || 0% || In need of armel fix for webkit, Bundyo will look at it
|- style=&quot;&quot;
| not yet || Port a proper PDF reader || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || package a tslib calibration tool for X or framebuffer? || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || home applets behave oddly when in non-800x480 || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Patch libvte with further maemo changes (blinking interval, Enter, etc) || none || 0% || 
|- style=&quot;&quot;
| not yet || Figure out why Hildon Input Method refuses to show when under Xomap || ?, Stskeeps || 0% || none
|- style=&quot;&quot;
| not yet || Build qt4.5-hildon for armel || ?, Stskeeps || 0% || none
|- style=&quot;&quot; 
| not yet || Screen should not dim and turn off during first boot wizard || ?, Stskeeps || 0% || http://armin-warda.de/noscreenblank.c works fine for keeping the screen alive. It just needs D-Bus running so it can osso_initialize properly. Quick patch so it actually compiles under Mer: http://trac.tspre.org/qwerty12/noscreenblankfix.diff. Apply patch, run &quot;apt-get install libosso-dev &amp;&amp; gcc noscreenblank.c -o noscreenblank `pkg-config --cflags --libs libosso&quot;. qwerty12 is also available for integrating the above functionality into zenity itself.
|- style=&quot;&quot;
| not yet || Magic X menu stretches too far, before adding v ^ buttons. || ?, Stskeeps || 0% || none
|- style=&quot;&quot;
| not yet || Magic X menu should have current app highlighted and in top of list || ?, Stskeeps || 0% || none
|- style=&quot;background:Tomato&quot;
| not yet || Update Midori Mer package || ?, Stskeeps || 0% || Waiting for Ubuntu people to update libwebkit
|- style=&quot;&quot; 
| not yet || Chase missing or malplaced icons || b-man, stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Fix http://trac.tspre.org/meiz/screenshots/second-level-statusbar.png || ?, Stskeeps || 0% ||
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=4066,4243,4250,4256,4258
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: User interface (artwork) ==

Mentors:
* wazd

High level goals for sprints 0.11 and 0.12:

* Provide a flurry of themes, icons, backgrounds (in multiple resolutions) to make Mer look pretty.

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;background:LightBlue&quot;
| not yet || Make replacement(s) for SDK icons (hildon-icons) || Meizirkki, wazd || 40% || List of Hildon icons and their Oxygen-based replacements: http://trac.tspre.org/meiz/oxygen-icons/icons.list . About half of the icons replaced.
|- style=&quot;&quot;
| not yet || Develop new themes based on -mer layout || none, wazd || 0% || none
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: User interface (localization) ==

Mentors:
* claudius/Claudius Henrichs

High level goals:
* Locate a mentor for this area
* Establish component activity.

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;background:Tomato&quot;
| not yet || Work with maemo.org &amp; Transifex || claudius || 10% || Stskeeps: submitted initial l10n and it got refused by launchpad. 
|- style=&quot;&quot;
| not yet || Find and package l10n for osso-xterm || ?, Stskeeps || 0% || none
|- style=&quot;&quot;
| not yet || look at timeless' enus stuff in extras || none, timeless || 0% ||
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: Outreach ==

Mentors:
* mtc (Chief Evangelist)

High level goals:

* Recruitment, presentations, developer meetings, - reaching out to potential community members.


{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights

|- style=&quot;background:LightGreen&quot;
| 2009-04 || MA LUG Meeting - Mer demonstration || mtc || 100% || developer recruitment 
|- style=&quot;background:LightGreen&quot;
| 2009-04 || NH LUG Meeting - Mer demonstration || mtc || 100% || developer recruitment
|- style=&quot;background:LightGreen&quot;
| 2009-04 || [http://linuxfestnorthwest.org/ Linuxfest Northwest] - host an exhibitor table || johnx , mtc || 100% || TBA
|- style=&quot;background:LightBlue&quot;
| 2009-03 || [[MozillaMaemoDanishWeekend]] - preparing for the Mer part || Stskeeps || 50% || [[Mer/HackfestCopenhagen09]], [http://internettablettalk.com/forums/showpost.php?p=278371&amp;postcount=7 iTT post]
|}

== Component: Testing ==

Mentors:
* Meizirkki

High level goals:

* This is where all needed items to be tested are put.

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;background:LightBlue&quot;
| not yet || Make hildon-desktop-env use a configuration file to determine wether it needs to show cursor or not (useful for x86) || ?, johnx || 95% || Could use some testing on x86s with touchscreens 
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}

== Upstream ==

Bug reports in bugzilla discovered through or related to Mer development but not within Mer:

{{#bugzilla:id=3021,3858,4101,4102,4148,4178,3939,4023,4043,4111
  |columns=id,severity,product,status,resolution,summary,to
}}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Sprints/0.14</title>
    <id>1867</id>
    <revision>
      <id>39010</id>
      <timestamp>2010-09-22T13:00:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Period: 18 May 2009 - 8 June (feature freeze), Testing period: 8 June 2009 - 15 June 2009 


'''This page is no longer in use, as we have switched to our own sprint web service'', please visit http://guest:guest@trac.tspre.org:9010/

If you are a Mer member, contact Stskeeps for a login to be able to take tasks.

= Guide =

*If you want to take on a task, write your nickname in the task item (at the ?) contact the mentor of the task.
*If you want something tested when the task is done, move the task to Component: Testing, tell the mentor of the testing component, and change Owner, Mentor 

to &quot;?, your nickname&quot;. You're now the mentor for the tester in this particular task.
*If you want to propose a task, contact the mentor of the component
*MB&lt;number&gt; means Maemo Bug &lt;number&gt;. That bug should be able to be found in http://bugs.maemo.org/.
*If you find a bug, report it on http://bugs.maemo.org in the Mer product.

= Tasks =

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
| style=&quot;background:Red&quot; | Urgent for next release
|}

 
== Component: Builders and developer tools ==

Mentor:
* lbt

High-level goals for sprints 0.14:

* Finishing integration of Mer into OpenSUSE Build Service
* Document development procedure and work on integrating Maemo Extras uploader with OBS
* Document OBS work and present at Maemo/Mozilla Danish Weekend to maemo.org staff etc.
* Establish roles of this area for the future

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;background:LightGreen&quot;
| 2008-03-16 || Investigate usage of OpenSUSE Build Service as builder and SDK ability || lbt, Stskeeps || 100% || Meeting on #mer with OBS people, making good progress.
|- style=&quot;background:Orange&quot;
| not yet || Discuss with maemo.org their requirements for including Mer repository and builders || Stskeeps || 10% || Started X-fade conversation. Need objectives.
|- style=&quot;background:LightBlue&quot;
| 2009-06-30 || Setup gitorious || lbt || 20% || Team is setup. Workflow required.
|- style=&quot;&quot;
| 2009-06-30 || Powerlaunch || lbt || 0% ||  
|- style=&quot;background:LightBlue&quot;
| 2009-06-02 || Package catalogue || lbt || 0% ||  All Mer packages; what they do, links to bugs, links to OBS etc
|- style=&quot;background:LightBlue&quot;
| 2009-06-02 || Documentation for build+SDK || lbt || 0% ||  re-write Mer/Build
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: Ports and base system ==

Mentors:
* Stskeeps (carsten.munk at gmail.com)

High level goals for sprints 0.14:

* OBS support for:
** 770
** Pocket Loox
** Beagleboard
** Freerunner
* Improve hardware support for:
** SmartQ5
** N8x0
* Rewrite imager to fit with how images are actually made now.

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;&quot;
| not yet || Implement hald-addon-bme open source based on [https://garage.maemo.org/plugins/scmsvn/viewcvs.php/dsme/trunk/adhoc/dummy_bme.c?revision=155&amp;root=dsm&amp;view=markup dummy BME] and [[Mer/Documentation/BME_Protocol]] , see [http://gitweb.pingu.fi/?p=hald-addon-retu-adc.git;a=tree this] for example || ?, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Implement a libconic ICD dbus messages handler relaying to NetworkManager || ?, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Adapt imager scripts for Beagleboard to be using .scr like in http://elinux.org/BeagleBoardUbuntu || ?, Stskeeps || 0% || 
|- style=&quot;&quot;
| not yet || Include patch from [https://bugs.maemo.org/show_bug.cgi?id=2249 MB2249] in Mer kernels || ?, andre_ || 0% ||
|- style=&quot;&quot;
| not yet || Include patch from [https://bugs.maemo.org/show_bug.cgi?id=2504 MB2504] in cx3110x-module-src and rebuild cx3110x-module || ?, Stskeeps || 0% ||
|- style=&quot;background:LightBlue&quot;
| not yet || Include [http://my.arava.co.il/~matan/770/q5.keys.patch q5 keys] patch by Matan || Stskeeps, matan || 95% || needs testing
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=2249,2504
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: User interface (code) ==

Mentors:
* None at the moment, ask Stskeeps (carsten.munk at gmail.com)

High level goals for sprints 0.14:

* Start building generic control panel applets for the Mer system
* Locate a mentor for this area

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;&quot;
| not yet || Implement [[Mer/Blueprints/About_product_CPA]] || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Implement [[Mer/Blueprints/Date_and_time_CPA]] || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Implement [[Mer/Blueprints/Display_CPA]] || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Implement [[Mer/Blueprints/Memory_CPA]] || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Port Xournal || none, Stskeeps || 0% || 
|- style=&quot;&quot;
| not yet || Port Modest || neatojones, Stskeeps || 0% || (not sure anyone would use it, but it is for some libraries that other apps need.) Need to import microb-engine first since it's a dependency.  Might try libwebkit instead of mozilla.
|- style=&quot;&quot;
| not yet || Port claws-mail (hildonized || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Port BoaFM || b-man, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Port Canola2 and associated python libraries || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Port Tear || none, Stskeeps || 0% || 
|- style=&quot;&quot;
| 2009-05-28 || Port a proper PDF reader || NullPtr, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || package a tslib calibration tool for X or framebuffer? || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || home applets behave oddly when in non-800x480 || none, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Patch libvte with further maemo changes (blinking interval, Enter, etc) || none || 0% || 
|- style=&quot;&quot;
| not yet || Figure out why Hildon Input Method refuses to show when under Xomap || ?, Stskeeps || 0% || none
|- style=&quot;&quot; 
| not yet || Screen should not dim and turn off during first boot wizard || ?, Stskeeps || 0% || http://armin-warda.de/noscreenblank.c works fine for keeping the screen alive. It just needs D-Bus running so it can osso_initialize properly. Quick patch so it actually compiles under Mer: http://trac.tspre.org/qwerty12/noscreenblankfix.diff. Apply patch, run &quot;apt-get install libosso-dev &amp;&amp; gcc noscreenblank.c -o noscreenblank `pkg-config --cflags --libs libosso&quot;. qwerty12 is also available for integrating the above functionality into zenity itself.
|- style=&quot;&quot;
| not yet || Magic X menu stretches too far, before adding v ^ buttons. || ?, Stskeeps || 0% || none
|- style=&quot;&quot;
| not yet || Magic X menu should have current app highlighted and in top of list || ?, Stskeeps || 0% || none
|- style=&quot;&quot;
| not yet || Update Midori Mer package || ?, Stskeeps || 0% ||
|- style=&quot;&quot; 
| not yet || Chase missing or malplaced icons || b-man, stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Fix http://trac.tspre.org/meiz/screenshots/second-level-statusbar.png || ?, Stskeeps || 0% ||
|- style=&quot;&quot;
| not yet || Hildonize [http://lxde.sourceforge.net/gpicview/[GPicView]] || qwerty12,  Capn_Fish || 0% || Segfaults (non-hildonized) when opening a an image. Wondering if it's even worth trying to hildonize this one.
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=4066,4243,4250,4256,4258
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: User interface (artwork) ==

Mentors:
* wazd

High level goals for sprints 0.14:

* Establish style for Mer in the forseeable future and chase down UI implementation and artwork problems.

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;background:LightBlue&quot;
| not yet || Make replacement(s) for SDK icons (hildon-icons) || Meizirkki, wazd || 40% || List of Hildon icons and their Oxygen-based replacements: http://trac.tspre.org/meiz/oxygen-icons/icons.list . About half of the icons replaced.
|- style=&quot;&quot;
| not yet || Develop new themes based on -mer layout || none, wazd || 0% || none
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: User interface (localization) ==

Mentors:
* claudius/Claudius Henrichs

High level goals:
* Establish procedures and workflow at Copenhagen meeting
* Bootstrap localization project together with maemo.org staff

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;background:Tomato&quot;
| not yet || Work with maemo.org &amp; Transifex || claudius || 10% || Stskeeps: submitted initial l10n and it got refused by launchpad. 
|- style=&quot;&quot;
| not yet || Find and package l10n for osso-xterm || ?, Stskeeps || 0% || none
|- style=&quot;&quot;
| not yet || look at timeless' enus stuff in extras || none, timeless || 0% ||
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}

== Component: Outreach ==

Mentors:
* mtc (Chief Evangelist)

High level goals:

* Recruitment, presentations, developer meetings, - reaching out to potential community members.


{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights

|- style=&quot;background:LightBlue&quot;
| 2009-03 || [[MozillaMaemoDanishWeekend]] - preparing for the Mer part || Stskeeps || 100% || [[Mer/HackfestCopenhagen09]], [http://internettablettalk.com/forums/showpost.php?p=278371&amp;postcount=7 iTT post]
|- style=&quot;background:LightBlue&quot;
| 2009-04 || Southeast Linuxfest || Andrewfblack,mtc || 50% || Advocacy table
|- style=&quot;background:LightGreen&quot;
| 2009-04 || Seacoast Linux Group || mtc,hotchai || 100% || Developer recruitment
|- style=&quot;background:LightBlue&quot;
| 2009-05 || Ohio Linuxfest || bman,mtc || 15% || Proposal approval

|}

== Component: Testing ==

Mentors:
* Meizirkki

High level goals for 0.14:

* Set up lists of testers and decide on testing procedures and how many testing images are needed.

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner, Mentor/Suggested by
! %
! Highlights
|- style=&quot;background:LightBlue&quot;
| not yet || Make hildon-desktop-env use a configuration file to determine wether it needs to show cursor or not (useful for x86) || ?, johnx || 95% || Could use some testing on x86s with touchscreens 
|}

Bug reports in bugzilla discovered through or related to development of this component in this sprint, please convert into tasks or refute bug.

{{#bugzilla:id=none
  |columns=id,severity,product,status,resolution,summary,to
}}

== Upstream ==

Bug reports in bugzilla discovered through or related to Mer development but not within Mer:

{{#bugzilla:id=3021,3858,4101,4102,4148,4178,3939,4023,4043,4111
  |columns=id,severity,product,status,resolution,summary,to
}}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Sprints/0.6</title>
    <id>1465</id>
    <revision>
      <id>38913</id>
      <timestamp>2010-09-22T10:08:40Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Period: - 18 January 2009 ([[Mer/Releases/0.6|Release]])

==== Tasks ====

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
| style=&quot;background:Red&quot; | Urgent for next release
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightGreen&quot;
| December || Initial imager - script to debootstrap and putting Mer on top of Ubuntu Jaunty minbase (x86, armel) for Mer/x86, Mer/armv5te (770,n8x0) || Stskeeps || 100% || [https://code.launchpad.net/~mer-committers/m-r/imager Provided here] and guide [[#Using_the_imager|here]]
|- style=&quot;background:LightGreen&quot;
| December || Basic hildon-desktop up on Xorg, running with advanced-backlight and load-applet || Stskeeps, johnx, etc. || 100% || In repository
|- style=&quot;background:LightGreen&quot;
| December || Initial Scratchbox1 SDK for Mer/armv5te || Stskeeps || 100% || [[#SDK|Provided here]]
|- style=&quot;background:LightGreen&quot;
| 2008-17-12 || cx3110x-umac-module (symlink to umac.ko module || qwerty12 || 100% || Now in repository
|- style=&quot;background:LightGreen&quot;
| 2008-17-12 || nokia-n8x0-firmware (symlink to firmwares in initfs) || qwerty12 || 100% || Now in repository
|- style=&quot;background:LightGreen&quot;
| 2008-17-12 || hildon-desktop-env with hildon-input-method setup || qwerty12 || 100% || Now in repository
|- style=&quot;background:LightGreen&quot;
| January || Diablo kernel that boots from rootfs instead of initfs, and runs /sbin/tablet-init instead of init || qwerty12 || 100% || [http://trac.tspre.org/qwerty12 Provided here]
|- style=&quot;background:LightGreen&quot;
| January || Mer logo, (rescue menu) artwork, wallpaper, theme (titan) || wazd, Stskeeps || 100% || Now in repository (mer-omap-fb-splash, mer-rescue-menu, titan), also see [http://tabletui.wordpress.com/2009/01/12/repos-a-la-mer/ here]
|- style=&quot;background:LightGreen&quot;
| January || Document how to get packages included in repository || Stskeeps || 100% || [[#Getting_your_package_included_in_the_Repository|provided here]]
|- style=&quot;background:LightGreen&quot;
| 2009-01-12 || Fix backspace and enter kills Xorg bug || meizirkki/johnx/Stskeeps || 100% || [https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/309785 Upstream Xorg / Ubuntu bug], fixed in upstream
|- style=&quot;background:LightGreen&quot;
| 2009-01-16 || Include dsme-tools &amp; wifi power saving from Deblet || Stskeeps || 100% || In repository now
|- style=&quot;background:LightGreen&quot;
| 2009-01-18 || Include hildon-theme-liberty and hildon-theme-layout-4ex (alter to use proper fallback icon theme, and depend on clearlooks?) || Stskeeps || 100% || Included in 0.6 images.
|}

==== Bugs ====

Bug reports in bugzilla discovered through or related to Mer development in this sprint:

{{#bugzilla:id=4023,4001,3858,3939,3997,4016
  |columns=id,severity,product,status,resolution,summary,to
}}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Sprints/0.7</title>
    <id>1477</id>
    <revision>
      <id>38967</id>
      <timestamp>2010-09-22T11:35:12Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Period: 18 January 2009 - 1 February 2009 [[Mer/Releases/0.7|Release]]

'''This sprint has finished and is archived, and should not be modified. '''

==== Tasks ====

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Urgent for next release
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightGreen&quot;
| 2008-12-15 - 0.7 || [[Mer/Tasks/Mer_Installer|Installer for Mer on Diablo]] || b-man || 100% || [http://trac.tspre.org/bman Initial versions] [https://code.launchpad.net/~mer-committers/m-r/merinstaller BZR branch], Make .install file for packages.tspre.org 'installer' dist / user component.
|- style=&quot;background:LightGreen&quot;
| 2009-01-31 || Figure out why HAM doesn't work in snapshot images || none || 100% || Tricks: assume-connection 1, problems with installing still? ''WFM in VirtualBox - needed to echo assume-connection 1 &gt;~/.osso/hildon-application-manager after first setup; then started HAM; checked categories and then installed Titan theme without any problems --[[User:jaffa|Jaffa]] 23:12, 29 January 2009 (UTC)'' Also now working for [[User:stskeeps|Stskeeps]] after start-hildon modifications by [[User:johnx|johnx]] and for Meizirkki in Mer 0.7 pre-release.
|- style=&quot;background:LightGreen&quot;
| 2009-01-29 || Make an error screen and reboot after 15 seconds if Mer is booted through normal bootmenu (check if /var/run is a symlink to /tmp/.run) || wazd, Stskeeps || 100% ||  Need 800x480 artwork (stop sign and &quot;Incompatible bootmenu used, rebooting in 15 seconds&quot;) - added to nit-bootmenu-compat
|- style=&quot;background:LightGreen&quot;
| || integrate/Mer-ize clipboard-manager (already in repository, but needs to be included into start-hildon etc) || johnx || 100% || In repository.
|- style=&quot;background:LightGreen&quot;
| | 2009-01-26 || Fix key generation of openssh-server so it doesn't do it on imager but does it when booting || Darken || 100% || Managed by first boot wizard - ready for merging from lp:~koudelka-atolcomputers/m-r/first-boot-wizard
|- style=&quot;background:LightGreen&quot;
| 2009-01-26 || Experiment with Droid Sans within hildon-theme-liberty and alter if it looks good || qwerty12 || 100% || In repository. [http://trac.tspre.org/qwerty12/ Screenshots &amp; source patches here (in bzr too).]
|- style=&quot;background:LightGreen&quot;
| January || Missing localization strings in Hildon, (#4001) || Stskeeps || 100% || There are still some strings to be fixed. But that's for l10n people.
|- style=&quot;background:LightGreen&quot;
| 2009-01-24 || Package up Droid Sans (apache license) || qwerty || 100% || was in ttf-droid in ubuntu universe
|- style=&quot;background:LightGreen&quot;
| 2009-01-23 || Figure out how to make gnome-keyring invisible to the user || Stskeeps || 100% || Fixed in hildon-desktop-env
|- style=&quot;background:LightGreen&quot;
| 2009-01-23 || Bring in new changes from http://gitweb.pingu.fi/?p=xf86-video-omapfb.git;a=summary to xserver-xorg-video-omapfb || Stskeeps || 100% || Now in repository
|- style=&quot;background:LightGreen&quot;
| 0.7 || [[#qemu-eabi_cputransp_for_Scratchbox|qemu-eabi cputransp for Scratchbox]]|| qwerty12 || 100% || Deb (i386) &amp; source package [http://trac.tspre.org/qwerty12 provided here].
|- style=&quot;background:LightGreen&quot;
| 2009-01-23 || Package up advanced-power as a debian source package || qwerty12 || 100% || In repository.
|- style=&quot;background:LightGreen&quot;
| 2009-01-20 || Fix sapwood crash problem on ARMv5t (bug 4023) || johnx, RST38h, r2d2rogers || 100% || Fixed in repository.
|- style=&quot;background:LightGreen&quot;
| 2009-01-19 || Mer-ize hildon-application-manager || [[User:Jaffa|Jaffa]] || 100% || Screenshots: [http://www.flegg.org/~andrew/mer-ham-01.png 1], [http://www.flegg.org/~andrew/mer-ham-02.png 2], [http://www.flegg.org/~andrew/mer-ham-03.png 3]
|}

==== Bugs ====

Bug reports in bugzilla discovered through or related to Mer development in this sprint or outstanding still:

{{#bugzilla:id=4043,4039,4023,4001,3858,3939,3997,4016,4043
  |columns=id,severity,product,status,resolution,summary,to
}}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Sprints/0.8</title>
    <id>1551</id>
    <revision>
      <id>39011</id>
      <timestamp>2010-09-22T13:00:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Period: 1 February 2009 - 16 February 2009 [[Mer/Releases/0.8|Release]], slipped 1 day.

'''This sprint has ended, please see 0.9'''

==== Tasks ====

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Urgent for next release
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightGreen&quot;
| 2009-02-09 || Fix lack of &quot;enter&quot; ctrl-m &quot;problem&quot; on x86 || Stskeeps, johnx || 100% || Added /apps/osso/inputmethod/keyboard_available (bool) gconf2 option. Set true when on a machine with active keyboard.
|- style=&quot;background:LightGreen&quot;
| 2009-02-14 || Add control panel applet for theme switching || qwerty12 || 100% || In repository as hildon-theme-selector. Programmed an applet that runs timeless's theme selector.
|- style=&quot;background:LightGreen&quot;
| 2009-02-10 || maemo-select-menu-location seems to stall || Stskeeps || 100% || Reason is because .launch is not an .so. Same issue as in [http://bazaar.launchpad.net/~carsten-munk/m-r/hildon-desktop/revision/1106?remember=1106&amp;compare_revid=1100 hildon desktop]. In repository.
|- style=&quot;background:LightGreen&quot;
| 2009-02-11 || Figure out how to make the theme switcher work. (It's a control panel applet), see libpersonalisation.so || timeless, qwerty12 || 100% || In repository as hildon-theme-selector.
|- style=&quot;background:LightGreen&quot;
| 2009-02-08 || package evkey (for nit-kernel-compat purposes) || qwerty12 || 100% || In repository.
|- style=&quot;background:LightGreen&quot;
| 2009-01-30 || [[Mer/Tasks/Open_System_Sounds|Open system sounds]] (startup chime, touchscreen tap, etc) || opengeekv2, zenvoid || 100% || System Sounds by zenvoid completed: [http://repository.mer.tspre.org/pool/main/libe/liberty-sounds-ui/ liberty-sounds-ui], [http://zenvoid.org/tmp/sounds/ list of wav files]
|- style=&quot;background:LightGreen&quot;
| 2009-02-03 || Make transitional package for libhildon-1-0 to libhildon1 || Stskeeps || 100% || In repository.
|- style=&quot;background:LightGreen&quot;
| 2009-02-03 || Make transitional package for gconf2-common (bug 4016 connected) || Stskeeps || 100% || Fixed, but now libvte9 problems when installing gnome-core.
|- style=&quot;background:LightGreen&quot;
| 2009-02-03 || Fix bug 4016 (helps getting GNOME components on Mer) || Stskeeps || 100% || Fixed, but gconf2-common transitional package is needed.
|- style=&quot;background:LightGreen&quot;
| 2009-02-03 || Add python-gobject to dsme-tools dependancy || Stskeeps || 100% || In repository, tested on n810.
|- style=&quot;background:LightGreen&quot;
| 0.7 || Working X-terminal with hildon input method working || Stskeeps || 100% || Some vte patches still needed, but working: [http://bsd.tspre.org/~stskeeps/mer-ossoxterm.png screenshot]
|- style=&quot;background:LightGreen&quot;
| 2009-01-26 || Port and build http://repository.maemo.org/pool/diablo/free/h/hildon-plugins-settings/ (statusbar applet config || qwerty12 || 100% || In repository as hildon-plugins-settings-cpa.
|- style=&quot;background:LightGreen&quot;
| 2009-01-16 || nit-kernel-compat (support kernel booting rootfs directly), base on [http://guug.org/nit/nitboot/ nitboot]|| qwerty12 || 100% || In repository. Current problems: evkey doesn't exist on non-bootmenu tablets (put as TODO, as the rest works), so rescue menu does not work. BZR branch: [https://code.launchpad.net/~mer-committers/m-r/nit-kernel-compat ~mer-committers/m-r/nit-kernel-compat]. Problems with APT still exist.
|}

==== Bugs ====

Bug reports in bugzilla discovered through or related to Mer development in this sprint or outstanding still:

{{#bugzilla:id=4111,4102,4101,4062,4093,4043,4023,4016,3858,3939,3021
  |columns=id,severity,product,status,resolution,summary,to
}}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Sprints/0.9</title>
    <id>1585</id>
    <revision>
      <id>38914</id>
      <timestamp>2010-09-22T10:09:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Period: 16 February 2009 - 2 March 2009 [[Mer/Releases/0.9|Release]]


This sprint is finished, please see [[Mer/Sprints/0.10|Sprint 0.10]]

==== Tasks ====

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Urgent for next release
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightGreen&quot;
| || Patch apt package with https://stage.maemo.org/svn/maemo/projects/haf/trunk/apt/mmap.patch || qwerty12 || 100% || In repository. Needs testing however on x86 and I am not patching the text strings. I also need to improve packaging.
|- style=&quot;background:LightGreen&quot;
| || Make 770 image not have kernel-diablo-modules and such || Stskeeps || 100% || found a kernel-diablo-modules in foundations/mer, might have done something.. Removed in imager.
|- style=&quot;background:LightGreen&quot;
| || Add FDI for Nokia keyboards (see [http://trac.tspre.org/svn/deblet/trunk/packages/main/hal/fdi/policy/10osvendor/10-keymap.fdi this] and [http://trac.tspre.org/svn/deblet/trunk/packages/main/nokia-xkb-data/ this] || Darken || 100% || Check this [http://internettablettalk.com/forums/showpost.php?p=259961&amp;postcount=57] - Added keycode problem fix in xserver-xorg-input-evdev, now in repository. Patched repository actually. Now in repository
|- style=&quot;background:LightGreen&quot;
| 2009-02-17 || Look into porting Powerlaunch or doing an alternative in Python || qwerty12 || 100% || Powerlaunch ported by qwerty12, in repository.
|}

==== Bugs ====

Bug reports in bugzilla discovered through or related to Mer development in this sprint or outstanding still:

{{#bugzilla:id=4148,4111,4102,4101,4062,4093,4043,4023,3858,3939,3021
  |columns=id,severity,product,status,resolution,summary,to
}}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Sprints/Template</title>
    <id>1464</id>
    <revision>
      <id>38968</id>
      <timestamp>2010-09-22T11:36:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Period: START - RELEASE [[Mer/Releases/X.X|Release]]

==== Tasks ====

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
| style=&quot;background:Red&quot; | Urgent for next release
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed &amp; Target
! Task
! Owner
! %
! Highlights
|- style=&quot;&quot;
| When committed to || What || Who || 0% || Progress
|}

==== Bugs ====

Bug reports in bugzilla discovered through or related to Mer development in this sprint:

{{#bugzilla:id=4023
  |columns=id,severity,product,status,resolution,summary,to
}}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Status</title>
    <id>1953</id>
    <revision>
      <id>39012</id>
      <timestamp>2010-09-22T13:04:23Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Hardware Support ==

Please help us to fill in this page. You can find current testing releases linked from [[../Testing]]

{|class=&quot;wikitable&quot;
!colspan=&quot;2&quot;| Key
|-
| &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt;  || Works
|-
| &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt;  || Doesn't work
|-
| &lt;span style=&quot;color:purple; font-weight: bold;&quot;&gt;S&lt;/span&gt;  || Supported, no GUI
|-
| ?  || Unknown (Please help fill in these values)
|-
| - || Device doesn't have this
|}


{|class=&quot;wikitable&quot;
|-
! Feature !! [[/770|770]] !! [[/N8x0|N800]] || [[/N8x0|N810]] || [[/SmartQ5|SmartQ5]] || [[/SmartQ7|SmartQ7]] || [[/FreeRunner|FreeRunner]] || Loox || [[/o2 Joggler|O2 Joggler]] || HTC Touch Pro || Touch Book
|-
!colspan=&quot;11&quot;| Display
|-
|X Display                       || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt;
|-
|3D Acceleration             || ? || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || ? || ?
|-
|2D Acceleration             || ? || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || ? || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || ? || ?
|-
|Brightness             || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:purple; font-weight: bold;&quot;&gt;S&lt;/span&gt; || &lt;span style=&quot;color:purple; font-weight: bold;&quot;&gt;S&lt;/span&gt; || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || ? || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt;  || &lt;span style=&quot;color:purple; font-weight: bold;&quot;&gt;S&lt;/span&gt; || &lt;span style=&quot;color:purple; font-weight: bold;&quot;&gt;S&lt;/span&gt;
|-
|Ambient light sensor      || - || - || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || - || - || - || - || - || ? || -
|-
|Touch events         || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt;
|- 
|LEDs                         || - || ? || ? || &lt;span style=&quot;color:purple; font-weight: bold;&quot;&gt;S&lt;/span&gt; || &lt;span style=&quot;color:purple; font-weight: bold;&quot;&gt;S&lt;/span&gt; || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || ? || - || ? || -

|-
!colspan=&quot;11&quot;| Buttons/Switches
|-
|Headphone detect  || ? || ? || ?  || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || ? || ? || ? || ? || ?
|-
|Headset switch events (via dbus) || ? || ? || ?  || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || ? || ? || ? || ? || ?
|-
|Keyboard                  || - || - || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt;  || - || - || - || ? || USB || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt;
|-
|Battery cover/SD door events || ? || ? || ?  || - || - || ? || - || - || ? || -
|-
|HW Buttons (zoom,fullscreen, etc) || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt;  || ? || ? || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || ? || - || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt;
|-
|Pointing Device (D-Pad, etc) || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || ? || ? || ? || ? || - || ? || - || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt;
|-
|Power Button          || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt;  || ? || ? || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || ? || - || ? || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt;
|-
|Camera eject          || - || ? || -  || - || - || - || - || - || ? || -
|-
!colspan=&quot;11&quot;|Ancillary Devices
|-
|Sound                 || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || ? || ? || Y/N (clicks) || ? || ?
|-
|Wifi                   || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || ? || ? || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || ? ||  &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || ? || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt;
|-
|Bluetooth         || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || ? || ? || ? || ? || - || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt;
|-
|USB                     || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || ? || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; 
|-
|GPS                     || - || - || ? || - || - || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || - || - || ? || -
|-
|Camera               || - || ? || ? || - || - || - || ? || - || ? || -
|-
|Battery             || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || 50% || 50% || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || ? || - || ? || &lt;span style=&quot;color:purple; font-weight: bold;&quot;&gt;S&lt;/span&gt;
|-
|Power control || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || ? || ? || ? || ? ||  &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || ? || &lt;span style=&quot;color:purple; font-weight: bold;&quot;&gt;S&lt;/span&gt;
|-
|MMC reader       || ? || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || &lt;span style=&quot;color:green; font-weight: bold;&quot;&gt;Y&lt;/span&gt; || ? || ? || - || ? || -
|-
|FM Radio           || - || ? || - || - || - || - || - || - || ? || -
|-
|TV-OUT               || - || - || - || &lt;span style=&quot;color:red; font-weight: bold;&quot;&gt;N&lt;/span&gt; || ? || - || ? || - || ? || -
|-
! Feature !! [[/770|770]] !! [[/N8x0|N800]] || [[/N8x0|N810]] || [[/SmartQ5|SmartQ5]] || [[/SmartQ7|SmartQ7]] || [[/FreeRunner|FreeRunner]] || Loox || [[/o2 Joggler|O2 Joggler]] || HTC Touch Pro || Touch Book
|-
|}

== Application Support ==

{|class=&quot;wikitable&quot;
|-
! Key Application !! Provided by
|-
|browser           ||  Tear
|-
|email client      || claws (or modest if anyone ports it)
|-
|book reader       || fbreader
|-
|media player      || gpodder or canola
|-
|text editor       || maemopad+ etc
|-
|photo viewer      || mirage
|-
|calendar          || gpe-calendar (for now)
|-
|address book      || gpe-contacts (for now)
|-
|file manager      || finefm but it needs improvement, possibly pcmanfm?
|-
|instant messenger || pidgin (or empathy)
|-
|feed reader       || rss-reader
|-
|alarm clock 	  || alarm-clock from alarm-clock.pl ?
|}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Status/770</title>
    <id>2106</id>
    <revision>
      <id>38915</id>
      <timestamp>2010-09-22T10:12:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

This page gives an overview of the support for the Nokia 770 Internet Tablet

=Mer .15=
==Bluetooth==
Add symlink for bluetooth with 
 ln -s /mnt/initfs/usr/lib/hotplug/firmware/brf6150fw.bin /lib/firmware/brf6150fw.bin

Currently the bluetoothd starts then immediately segfaults.

==Network==
===Wifi===
====NetworkManager====
NM-applet Works.

====wicd====
Wicd shows networks and has connected successfully.

===USB Networking===
Usbnet working in normal boot with
 modprobe g_ether; ifdown usb0; ifup usb0

== Headset switch events ==

{{main|Mer/Headset_switch_events}}

==RescueMenu==
UsbNet option selectable, 770 boots to desktop, but unable to connect from host.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Status/Battery</title>
    <id>2067</id>
    <revision>
      <id>38969</id>
      <timestamp>2010-09-22T11:37:31Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

==Battery monitor via bme - Mer 0.15==
Packages statusbarapplets and hald-addon-bme are out of date as of the initial release of 0.15, please update by hand via git here http://gitorious.org/~toggles or follow the instructions below
&lt;pre&gt;
wget http://tommywatson.com/Mer/hald-addon-bme_0.22_armel.deb
wget http://tommywatson.com/Mer/statusbarapplets_0.05_armel.deb
sudo dpkg -i hald-addon-bme_0.22_armel.deb
sudo dpkg -i statusbarapplets_0.05_armel.deb
&lt;/pre&gt;
Run statusbarapplets (can be found in mer-&gt;extras-&gt;mer_statusbarapplets)&lt;br&gt;
Select Advanced Power and close the dialog.&lt;br&gt;
At the moment you will have to reboot to see it appear in the status bar.


==Battery monitor via bme==
n8x0 support is in devel as of 0.14.
&lt;pre&gt;
apt-get install advanced-power
&lt;/pre&gt;
To start the advanced-power applet:
&lt;pre&gt;
Mer-&gt;Settings-&gt;Settings
Panels
Status Bar
Advanced Power
Ok and reboot
&lt;/pre&gt;
There is an issue right now with python/advanced-power-monitor, you need to do the following
&lt;pre&gt;
cd /usr/lib/python2.6/dist-packages
sudo ln -sf ../site-packages/hildondesktop.* .
&lt;/pre&gt;

==Request for help==
smartq''x'' is still under development, anyone with a smartq''x'' and some python knowledge is encouraged to install hald-bme-smartq according to the instructions below and help debug the advanced-power applet, please contact toggles at the google mail domain for help or if you can provide any assitance.

==Battery monitor on smartq (currently broken)==
Thanks to zenvoid and qwerty12 for all the help&lt;br&gt;
As of 0.14 you need to upgrade to Devel and then as root (sudo was broken on the tablet I was borrowing time on):
&lt;pre&gt;
cd
wget http://tommywatson.com/Mer/hald-addon-smartq_0.02_armel.deb
dpkg -i hald-addon-smartq_0.02_armel.deb
apt-get install advanced-power
wget http://tommywatson.com/Mer/AdvancedPowerMonitor.tgz
cd /
tar -zxf /root/AdvancedPowerMonitor.tgz
&lt;/pre&gt;

To start the advanced-power applet:
&lt;pre&gt;
Mer-&gt;Settings-&gt;Settings
Panels
Status Bar
Advanced Power
Ok and reboot
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>Mer/Status/FreeRunner</title>
    <id>1962</id>
    <revision>
      <id>38892</id>
      <timestamp>2010-09-22T09:46:22Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

This is the planning page to have Mer working on the freerunner.

Mer on Freerunner is 100% ported, thanks to the people at Debian, we reused most of the work. For 100% we mean that Mer works without any mayor problem in it

We used the kernel from [http://wiki.debian.org/Teams/DebianFSO pkg-fso] which is the lastest stable kernel released from Openmoko.

There are still some things to do to better support Mer for the Freerunner:

#Build/Find a good keybaord - done by him-arabic maybe
#Port the FSO packages into [https://build.opensuse.org/project/show?project=Maemo%3AMer%3ADevel%3AHW%3AFreerunner%3ADevel Mer Freerunner repository]
#Run zhone as example and check the phone stack
#Build hildon compatible applets for Mer


== Download &amp; install ==

* bootable full system ( img to dd on external sdcard) , video demo also : http://www.newlc.com/en/mer-best-maemo-debianubuntu-mobiles-watch-freerunner-demo

* rootfs to sync: http://goshawknest.wordpress.com/category/freerunner/

* 0.15 Release image: [[Mer/Releases/0.15]]

== Build/Find a good keyboard ==

More testing is needed in the him-arabic package to provide a good, final keyboard for freerunner like systems. Vincenzo Ampolo (goshawk) &lt;vincenzo@eshopen.com&gt; is working on it, but help is much appreciated, just join to #mer in irc.freenode.net and ping him! :)

The tests should see how flexible is him-arabic and see if it looks good on freerunner.

--
Since Maemo or Mer are widescreen designed, would the current keyboard work if the screen is used in landscape rather than portrait mode?

-- Is there a possibility to write a HIM plugin, which switches the HIM-UI to landscape and full-screen mode? Then one can write a plugin with a &quot;inputline&quot;-text-field and more space for the letter-keys. Also I think a keyboard with only letters and numbers and special chars on a extra page would be good. In the end it would look like the keyboard used in SHR except it is in landscape and full-screen mode.

== Port the FSO packages into Mer Freerunner repository ==

While all the things related to Mer have already been ported, the packages of the Phone stack (fso) and other applications have not yet ported. Luckly we can reuse most of the work of the Debian FSO team. The repository can be found [http://pkg-fso.alioth.debian.org/debian/ here] and the deb lines are:

&lt;pre&gt;deb http://pkg-fso.alioth.debian.org/debian unstable main
deb-src http://pkg-fso.alioth.debian.org/debian unstable main
&lt;/pre&gt;

This is the list of applications that need a [http://pkg-fso.nomeata.de/sid/allpackages port into the Mer archive]

This should be almost a trivial task since the sources in a debian like format are available.

== Run zhone as example and check the phone stack ==

This can be done after [http://wiki.maemo.org/Mer/Hardware/Freerunner#Port_the_FSO_packages_into_Mer_Freerunner_repository #2]

== Build hildon compatible applets for Mer ==

This can be done after [http://wiki.maemo.org/Mer/Hardware/Freerunner#Build_hildon_compatible_applets_for_Mer #3]

== Debian Armel Virtual Machine for Mer development == 

Aurel32 have done a [http://people.debian.org/~aurel32/qemu/arm/ virtual machine image of Debian for arm under qemu]. You can download it and run with the command:

&lt;pre&gt;qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.26-2-versatile -initrd initrd.img-2.6.26-2-versatile -hda debian_lenny_arm_small.qcow -append &quot;root=/dev/sda1&quot; -nographic&lt;/pre&gt;

The ''nographic'' option will open a shell of your armel machine directly in the shell in which you run the command. So you can easily copy and paste commands

== Imager ==

The [http://gitorious.org/mer/imager imager] is one of the most useful things in mer development, it's a script that build a rootfs image for any Mer target, since Mer runs in a lot of devices, each device require a particular kernel or packages so an image for Freerunner can contain more or less packages than another image for another device.

The imager is hosted in launchpad. To run it you have to set up a debian armel environment, you can use a ready virtual machine to accomplish it. To get the imager code, install the ''git-core'' package in the virtual machine and run the command
&lt;pre&gt;git clone git://gitorious.org/mer/imager.git&lt;/pre&gt;
or you can run this command on a desktop machine and then transfer the imager code to the Freerunner.
Then you should install the ''debootstrap'' package in the virtual machine and run the imager with the command:
&lt;pre&gt;bash imager targets/mer-freerunner-fs-only directory&lt;/pre&gt;
where ''directory'' is the directory in which the image will be build. Remember that you have to set up a [http://wiki.maemo.org/Mer/Hardware/Freerunner#Debian_Armel_Virtual_Machine_for_Mer_development debian armel virtual machine] to do it

== misc ==

* http://wiki.openmoko.org/wiki/Mer</text>
    </revision>
  </page>
  <page>
    <title>Mer/Status/Headset switch events</title>
    <id>4065</id>
    <revision>
      <id>33983</id>
      <timestamp>2010-05-07T08:41:58Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Mer/Status/Headset switch events]] moved to [[Mer/Headset switch events]]: Move to a different location - it's more a tutorial of how to get it working than a status report.</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Headset switch events]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Status/N810</title>
    <id>3517</id>
    <revision>
      <id>28245</id>
      <timestamp>2010-02-03T10:37:20Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Mer/Status/N810]] moved to [[Mer/Status/N8x0]]</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Status/N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Status/N8x0</title>
    <id>2955</id>
    <revision>
      <id>38970</id>
      <timestamp>2010-09-22T11:38:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== USB host mode ==

To enable USB Host mode:

~# modprobe g_file_storage stall=0 luns=2 removable

~# echo host &gt; /sys/class/usb_host/usb_host1/device/mode

== Headset switch events ==

{{main|Mer/Headset_switch_events}}</text>
    </revision>
  </page>
  <page>
    <title>Mer/Status/O2 Joggler</title>
    <id>2242</id>
    <revision>
      <id>38916</id>
      <timestamp>2010-09-22T10:16:52Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

The o2 Joggler is a powerful digital photoframe by o2/OpenPeak. It comes with an Intel Atom CPU and touch screen control.

As it uses an EFI bootloader, it's rather simple to start other Linux versions than the built in using elilo.

Stskeeps has started a blog documenting the the tricks and sources needed to build different parts of the system: http://jogglerhacks.blogspot.com

Mer is a good choice as it is optimised for small screens and hardware support is good.

Mer will be installed on (and boot from) a USB stick and your Joggler's main OS should not be affected (although the usual caveats apply and there is a risk that you may brick your device).


Mer is still at alpha level so here are some notes on the OS once it is running to set expectations
:

- The tear browser doesn't work properly yet. &quot;fennec&quot;-Browser is a good alternative for the beginning&lt;br&gt;
- The o2 Joggler has no backup battery or whatever for the hwclock. So we need to set the time once when mer is installed and later after each login and working network connection using &quot;ntpdate&quot; to always have the correct date. This is currently realized trough a rc.local file, which updates the time 4times in steps of each 30 seconds after login. So watch out to have a working wlan/lan connection during this period.


- There is no opengl support yet.

Other hardware works now completely:
WLAN/LAN/USB/Sound*/Touchscreen - that's all the o2 Joggler offers.

*Sound still with troubles.


The mer-linux image for the joggler:
A first &quot;alpha image&quot; can be found at:
 http://www.gforums.de/juggler/mer-juggler-alpha_015.tar.gz

Please download/only use this if you own a Joggler device.

You also need a second file which contains the bootloader:
 http://asdfghjkl.me.uk/files/joggler/efi-nokeyboard.tar.gz

(tested and working on Mer and Ubuntu MID)

&lt;br&gt;
Your USB stick should have 2 partitions: a 64Mb FAT16, a 512M (or larger) ext3 (not ext2)

After downloading the archives, untar them to your usb stick.

The efi-nokeyboard.tar.gz goes to the first FAT16 partition of your USB drive,
mer-joggler...tar.gz to the second ext3 partition.

&lt;br&gt;
To do this on the command line in linux
&lt;br&gt;
cd to the path of your USB stick's first partition (the FAT16 one)

eg. cd /media/partition
&lt;br&gt;
Then 

Run &quot;sudo tar pzxvf  /path to where you saved the tar files/efi-nokeyboard.tar.gz&quot; to untar the efi.

Then cd the path of your USB stick's second partition (the ext3 one)

eg. cd /media/partition2
&lt;br&gt;
Then 

Run &quot;sudo tar --numeric-owner -pzxvf  /path to where you saved the tar files/mer-juggler-alpha_015.tar.gz&quot; to untar the mer OS.
&lt;br&gt;
note: The v in the -pzxvf above is optional, it just gives you a running list of what it is untaring as it goes.
&lt;br&gt;
&lt;br&gt;

Having done this,

1.) unmount your USB drive partitions and wait until you can remove them.&lt;br&gt;
2.) turn off your joggler&lt;br&gt;
3.) insert the usb stick&lt;br&gt;
4.) turn on the joggler&lt;br&gt;
5.) wait for mer to boot&lt;br&gt;
6.) you should see the console screen. Wait some seconds and the welcome guide comes up. Enter all things needed.&lt;br&gt;
7.) when done, you should see the desktop of mer Linux. Congrats!

'''Trouble Shooting''':
''' Some people have encountered problems booting Mer when using a USB hub. If you encounter read errors during the boot process then try connect your USB storage device directly to the Joggler without a hub.

-------------------

To see, which files are changes in the x86 mer image, you can have a look at:
http://www.gforums.de/juggler/mer4juggler-fix.tar.gz

Here is a list of all changes I have made:

- modified the startup script (99wizard) to ask for timezone, time, date&lt;br&gt;
- modified x11 org file to work with the Joggler&lt;br&gt;
- modified hildon menu entries (including two pixmaps) (added one for display standby and one to start  the Joggler original software)&lt;br&gt;
- inserted kernel modules from 2.6.30 as we use this kernel to boot&lt;br&gt;
- added ntpdate for catching dater from internet&lt;br&gt;
- added a modified rc.local and fsstab&lt;br&gt;
- added a test mp3 for sound tests&lt;br&gt;
&lt;br&gt;
That's it so far. I think I have to remove the mp3 file and openpeak stuff soon to have the image free from any licensed stuff.

t.b.c.

gforums
&lt;br&gt;&lt;br&gt;

Modification to mer-efi.tar.gz (http://asdfghjkl.me.uk/files/joggler/efi-nokeyboard.tar.gz) by Hexxeh, Stskeeps, asdfghjkl:

- uses GRUB instead of refit, thus requires no keyboard input to boot.&lt;br&gt;
- kernel version 2.6.30 fixes video issues.&lt;br&gt;
- kernel is now stored on the FAT16 partition, making it trivial to upgrade from windows if/when required.&lt;br&gt;</text>
    </revision>
  </page>
  <page>
    <title>Mer/Status/SmartQ</title>
    <id>2120</id>
    <revision>
      <id>38971</id>
      <timestamp>2010-09-22T11:38:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

This page describes the status and tips for the SmartQ devices

Please don't use 0.15 at this time. There may be issues with the [[Mer/Kernel/SmartQ | SmartQ kernel]] that 0.15 uses that could damage the internal flash.

==SmartQ Flashing/Boot Safety==
The Q5/Q7 is unbrickable by design (although power surges at any time, including whilst flashing, could cause damage).

The only issue we are aware of is using a charger/DC that does not give sufficient current, when replaced the devices are fine.

There is a page with some very [[Mer/Hardware/SmartQ5#Boot_process|technical details]]

Mer uses the same sources as SmartDevices for the bootloader (Qi and U-boot). This is merged together with the exact same tools SmartDevices uses along with same initramfs as the official images. We follow the exact same internal memory pattern as the 'official' images.

This info is based on talks with the SmartDevices guys and code in boot loader + board instructions. If the device is rebooting endlessly, it will still be possible to force it to boot from the external SD. It is the same way SmartDevices people handle 'dead' Q5/Q7 when put in for repair.

The company is fine with everyone experimenting because it knows it can always bring back a device to life.

==Tips &amp; Tricks==

===usb===

To enable usb host mode:
 echo 1 &gt; /sys/devices/platform/hhtech_gpio/usbpwr_en;
 echo 1 &gt; /sys/devices/platform/hhtech_gpio/usbotgdrv_en;
 modprobe ohci-hcd;
 modprobe usb-storage;

This allows the usb keyboard and usb mouse to work too.

===Known issues specific to SmartQ===
* None

===Known issues specific to SmartQ5===
* Onscreen keyboard bad
* wifi is not working out of the box
* power not assigned

===Known issues specific to SmartQ7===
* There are no arrow keys currently. The by-pass can be use xmodmap
vim .mod in your home directory

 keycode 73 = Up
 keycode 74 = Down
 keycode 36 = Right
 keycode 9 = Left

Then run xmodmap .mod</text>
    </revision>
  </page>
  <page>
    <title>Mer/Status/SmartQ5</title>
    <id>1832</id>
    <revision>
      <id>38945</id>
      <timestamp>2010-09-22T10:56:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

For general SmartQ tips, see [[../SmartQ | tips for SmartQ]].

Notes on SmartQ 5 MID:

rootfs is on mmcblk0 (1G) p1 (rootfs, homefs, swap)
booted by uboot

&lt;pre&gt;
Processor	: ARMv6-compatible processor rev 6 (v6l)
BogoMIPS	: 99.78
Features	: swp half thumb fastmult vfp edsp java 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xb76
CPU revision	: 6
Cache type	: write-back
Cache clean	: cp15 c7 ops
Cache lockdown	: format C
Cache format	: Harvard
I size		: 16384
I assoc		: 4
I line length	: 32
I sets		: 128
D size		: 16384
D assoc		: 4
D line length	: 32
D sets		: 128

Hardware	: SMDK6410
Revision	: 0000
Serial		: 0000000000000000
&lt;/pre&gt;

&lt;pre&gt;
Linux version 2.6.24.7 (root@gqwang2007-desktop) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) ) #2725 PREEMPT Fri Apr 10 11:46:59 CST 2009
CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
Machine: SMDK6410
Ignoring unrecognised tag 0x00000000
Memory policy: ECC disabled, Data cache writeback
On node 0 totalpages: 29184
  DMA zone: 228 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 28956 pages, LIFO batch:7
  Normal zone: 0 pages used for memmap
  Movable zone: 0 pages used for memmap
CPU S3C6410 (id 0x36410101)
S3C6410: core 532.000 MHz, memory 133.000 MHz, peripheral 66.500 MHz
S3C6410: EPLL 192.000 MHz
S3C64XX Clocks, (c) 2007 Samssung Electronics
CPU0: D VIPT write-back cache
CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
CPU0: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 28956
Kernel command line: console=ttySAC0,115200n8 root=/dev/mmcblk0p1 rootwait splash
Trying to install chained interrupt handler for IRQ0
Trying to install chained interrupt handler for IRQ1
Trying to install chained interrupt handler for IRQ32
Trying to install chained interrupt handler for IRQ33
PID hash table entries: 512 (order: 9, 2048 bytes)
timer tcon=00600000, tcnt 103c3, tcfg 00000400,00000000, usec 00001340
Console: colour dummy device 80x30
console [ttySAC0] enabled
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 114MB = 114MB total
Memory: 112768KB available (2136K code, 189K data, 492K init)
SLUB: Genslabs=11, HWalign=32, Order=0-1, MinObjects=4, CPUs=1, Nodes=1
Calibrating delay loop... 530.84 BogoMIPS (lpj=1327104)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
net_namespace: 64 bytes
NET: Registered protocol family 16
S3C6410 Power Management, (c) 2008 Samsung Electronics
s3c6410: Initialising architecture
S3C DMA-pl080 Controller Driver, (c) 2006-2007 Samsung Electronics
Total 32 DMA channels will be initialized.
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
S3C PWM Driver, (c) 2006-2007 Samsung Electronics
io scheduler noop registered
io scheduler cfq registered (default)
S3C_LCD clock got enabled :: 133.000 Mhz
LCD TYPE :: TD043MTEX will be initialized
Window[0] - FB1: map_video_memory: clear ff200000:000bb800
            FB1: map_video_memory: dma=56900000 cpu=ff200000 size=000bb800
fb0: s3cfb frame buffer device
LCD TYPE :: TD043MTEX will be initialized
s3c-uart.0: s3c_serial0 at MMIO 0x7f005000 (irq = 37) is a S3C
s3c-uart.1: s3c_serial1 at MMIO 0x7f005400 (irq = 38) is a S3C
s3c-uart.2: s3c_serial2 at MMIO 0x7f005800 (irq = 39) is a S3C
s3c-uart.3: s3c_serial3 at MMIO 0x7f005c00 (irq = 40) is a S3C
RAMDISK driver initialized: 2 RAM disks of 8192K size 1024 blocksize
usbmon: debugfs is not available
Loaded s3c-udc version Apr  9 2009 (DMA Mode)
S3C Touchscreen driver, (c) 2008 Samsung Electronics
S3C TouchScreen got loaded successfully : 12 bits
input: S3C TouchScreen as /devices/virtual/input/input0
S3C24XX RTC, (c) 2004,2006 Simtec Electronics
s3c2410-rtc s3c2410-rtc: rtc disabled, re-enabling
s3c2410-rtc s3c2410-rtc: rtc core: registered s3c as rtc0
s3c64xx-i2c s3c64xx-i2c.0: slave address 0x10
s3c64xx-i2c s3c64xx-i2c.0: bus frequency set to 377 KHz
s3c64xx-i2c s3c64xx-i2c.0: i2c-0: S3C64XX I2C adapter
s3c64xx-i2c s3c64xx-i2c.1: slave address 0x10
s3c64xx-i2c s3c64xx-i2c.1: bus frequency set to 377 KHz
s3c64xx-i2c s3c64xx-i2c.1: i2c-1: S3C64XX I2C adapter
S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
Advanced Linux Sound Architecture Driver Version 1.0.15 (Tue Nov 20 19:16:42 2007 UTC).
ASoC version 0.13.1
WM8987: Audio Codec Driver v0.12
asoc: WM8987 &lt;-&gt; s3c-i2s mapping ok
Proc-FS interface for audio codec
ALSA device list:
  #0: smdk6400 (WM8987)
TCP cubic registered
NET: Registered protocol family 1
VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
input: gpio-keys as /devices/platform/gpio-keys.0/input/input1
input: gpio-keys as /devices/platform/gpio-keys.1/input/input2
s3c2410-rtc s3c2410-rtc: setting system clock to 2009-05-04 17:40:17 UTC (1241458817)
[s3c_hsmmc_probe]: s3c-hsmmc.1: at 0xc7c00000 with irq 57. clk src: sclk_DOUTmpll_mmc1
s3c-hsmmc: card inserted.
[s3c_hsmmc_probe]: s3c-hsmmc.0: at 0xc7e00000 with irq 56. clk src: sclk_DOUTmpll_mmc0
[s3c_hsmmc_probe]: s3c-hsmmc.2: at 0xc8000000 with irq 49. clk src: sclk_DOUTmpll_mmc2
Waiting for root device /dev/mmcblk0p1...
mmc0: host does not support reading read-only switch. assuming write-enable.
mmc0: new high speed SD card at address d555
mmcblk0: mmc0:d555 ST01G 1003264KiB 
 mmcblk0: p1 p2 p3
mmc2: new SDIO card at address 0001
kjournald starting.  Commit interval 5 seconds
EXT3 FS on mmcblk0p1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem).
Freeing init memory: 492K
UART err int.
mmc1: host does not support reading read-only switch. assuming write-enable.
mmc1: new high speed SDHC card at address 0002
mmcblk1: mmc1:0002 SD4GB 3948544KiB 
 mmcblk1: p1 p2 p3
g_file_storage gadget: File-backed Storage Gadget, version: 7 August 2007
g_file_storage gadget: Number of LUNs=1
g_file_storage gadget-lun0: ro=0, file: /dev/mmcblk1p1
Registered gadget driver 'g_file_storage'
8686 sdio: sd 8686 driver
8686 sdio: Copyright HHCN 2009
Adding 125992k swap on /dev/mmcblk0p3.  Priority:-1 extents:1 across:125992k
EXT3 FS on mmcblk0p1, internal journal
kjournald starting.  Commit interval 5 seconds
EXT3 FS on mmcblk0p2, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
Bluetooth: Core ver 2.11
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP ver 2.9
Bluetooth: L2CAP socket layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM ver 1.8
Bluetooth: SCO (Voice Link) ver 0.5
Bluetooth: SCO socket layer initialized
Bluetooth: BNEP (Ethernet Emulation) ver 1.2
Bluetooth: BNEP filters: protocol multicast
S3C6400 MFC Driver, (c) 2007 Samsung Electronics
S3C6400 MFC driver module init OK.
S3C PostProcessor Driver v3.10, (c) 2008 Samsung Electronics
LCD TYPE :: TD043MTEX will be initialized
LCD TYPE :: TD043MTEX will be initialized
kjournald starting.  Commit interval 5 seconds
EXT3 FS on mmcblk1p3, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
Unregistered gadget driver 'g_file_storage'
ether gadget: using random self ethernet address
ether gadget: using random host ethernet address
usb0: Ethernet Gadget, version: May Day 2005
usb0: using s3c-udc, OUT ep1-bulk IN ep2-bulk STATUS ep3-int
usb0: MAC 3e:aa:ad:4c:0d:43
usb0: HOST MAC ca:98:c6:aa:b1:66
usb0: RNDIS ready
Registered gadget driver 'ether'
usb0: high speed config #1: 100 mA, Ethernet Gadget, using CDC Ethernet
LCD TYPE :: TD043MTEX will be initialized
&lt;/pre&gt;

== Photos ==
[[Image:Smartq5_front-view.jpg|thumb|SmartQ 5 MID with its preinstalled chinese OS]]

[[Image:Smartq5_pcb-1.jpg|thumb|Circuit board]]

[[Image:Smartq5_pcb-battery.jpg|thumb|Circuit board with battery attached]]

== Boot process ==

Block size = 512 byte

Upon booting, IROM will decide wether to boot internal SD or external SD, based on if the second button from right is held down. If held down, it will boot from external SD.

On a SDHC card, it will boot from 1042 blocks before the end of the card (16 + 1 + 1025), On a SD card this will be on 18 blocks before the end of the card (16 + 1 + 1). 

This is where qi is placed, maximum 16 blocks size, zero out the remaining 2/1027 blocks

Qi will then (see /qi/src/cpu/s3c6410/start_qi.c) try to locate a SmartQ firmware image (see genimage for format, or same file, struct FirmHead on 32768 blocks before the end, or 16384 blocks before the end, and load u-boot from the firmware image.

If this fails it will load u-boot from 512+18 blocks before the end, maximum size 512 blocks.

Then, in u-boot (see u-boot/board/samsung/smdk6410/cmd_hhtech.c), it will check first if battery is low and blink LEDS (red) and power off if so (see init_hard_last)

It will then, if a key is pressed:

KEY_UP (+ optional key power): load firmware file from SD, booting kernel + initramfs from it

KEY_LEFT (+ optional key power): load initramfs + kernel from iNAND in similar manner as Qi with FirmHead on 16384.. -- there's no left button on a SmartQ5

KEY_FACTORY (key down + key power): add factory to boot statement

or:

load  kernel from iNAND in similar manner as Qi with FirmHead on 16384/32768

if fail, load initramfs image from SD

== Firmware image format ==

&lt;pre&gt;
typedef struct _firmware_fileheader {
    uint32_t magic;        // '2\0\09'= 0x32 0x00 0x00 0x39
    uint32_t check_sum; // for 8 ~ .fh_size 
    uint32_t fh_size;
    uint32_t version;      // major.minor.revision.xxx, each section in 8-bits
    uint32_t date;          // seconds since the Epoch
    char vendor[32];       // XXX: uint32_t vendor_string_len; char vendor_string[] 
    //uint32_t nand_off_end1=16M/512, nand_off_end2=8M/512;  // offset from INAND END(BLOCKS)
    uint32_t component_count /* = 5*/;
    struct {
        struct {
            uint32_t offset, size; /* nand offset in blocks, sizes and file offset in bytes */ 
        } file, nand;
        uint32_t check_sum;
    }qi, u_boot, zimage, initramfs, rootfs; // components[];
}FirmHead;
&lt;/pre&gt;

Offset in NAND is meant as offset from 16/8mb end offset in blocks (512 byte blocks). If offset is 0, it is not meant to be in the NAND image (qi doesn't make any sense there, nor rootfs, etc)


== Hardware support ==

* Power management
** Bluetooth
** USB otg / Host
** WiFi (on/off, PSM)
** Backlight control + dimming/turn off
* SD slot automounting
* Open source upgrade tool and initramfs
* Updated u-boot
* Audio: Headphone / loudspeaker switch
* TV out
* Microphone?
* Hardware buttons support
* [[/XAA|XAA]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Status/SmartQ5/XAA</title>
    <id>2223</id>
    <revision>
      <id>38917</id>
      <timestamp>2010-09-22T10:17:28Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Kernel changes required ==

XAA needs off screen video ram for some operations. In order to get this, the kernel needs to be changed:

Enable config option: CONFIG_FB_S3C_VIRTUAL_SCREEN

Replace line 764 of drivers/video/s3c/s3cfb.c:

finfo-&gt;fb.fix.smem_len = finfo-&gt;fb.var.xres_virtual * finfo-&gt;fb.var.yres_virtual * s3c_fimd.bytes_per_pixel;

by something like:

finfo-&gt;fb.fix.smem_len = 800 * 1200 * 2;

== Driver ==

fbdev driver with XAA support for S3C6410 is here:

Source: http://my.arava.co.il/~matan/770/fbdev.c

This file should replace src/fbdev.c file in xserver-xorg-video-fbdev.

Binary: http://my.arava.co.il/~matan/770/fbdev_drv.so

The binary goes in /usr/lib/modules/drivers . It works in Mer, and probably in original firmware as well.

== Known issues ==

* Some conflict with hildon-desktop causes X and hildon-desktop to consume 100% CPU time when XAA is used. This happens even if the driver initializes XAA without implementing any function, so I do not believe it is a problem in the driver code, but in X or in hildon-desktop. There is no problem when using LXDE. I really don't know how to debug this problem, so I'll be thankful for any suggestions.

* Not all functions are tested.

* Not all functions are implemented.

* There are still problems in ScreenToScreenCopy - apparent when dragging a window. It appears as a symptom of a cache coherency issue, but I am calling __clear_cache() in what should be the correct places, and I modified the kernel to allocate FB with _coherent, instead of _writecombine, and it does not appear to help.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Status/SmartQ7</title>
    <id>2395</id>
    <revision>
      <id>38972</id>
      <timestamp>2010-09-22T11:40:14Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

The Q7 is basically a bigger-screen version of the [[Mer/Status/SmartQ5|Q5]], with an extra USB host port added and no internal bluetooth. See also [[../SmartQ | tips for SmartQ]].

== Photos ==
There are images of a disassembled Q7 available at http://www.jiongtang.com/blog/html/smartq5/smartq7-apart-images.html

== Components ==
* SoC: [http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=229&amp;partnum=S3C6410 Samsung S3C6410] ([http://en.pudn.com/downloads146/sourcecode/others/detail635203_en.html datasheet] or [http://www.armdesigner.com/S3C6410%20datasheet.pdf datasheet])
* internal storage: [http://www.sandisk.com/business-solutions/embedded-products/inand.aspx SanDisk iNAND]
* RAM: 2x [http://qimonda.com/mobile-ram/mobile_info.html Qimonda HYB25DC512160CF-6] ([http://pdf1.alldatasheet.com/datasheet-pdf/view/207108/QIMONDA/HYB25DC512160CF-6/+Q05229UMGlxx.DdldHvDLLGw.EK.yVSO/datasheet.pdf datasheet])
* Crytomemory/EEPROM: [http://www.atmel.com/dyn/products/datasheets.asp?family_id=646 Atmel AT88SC] ([http://www.atmel.com/dyn/resources/prod_documents/5277%20-%20AT88SC018%20Full%20Datasheet.pdf datasheet])
* Wi-fi: [http://www.usi.com.tw/products_communication_sip.asp Universal Scientific Industrial WM-G-MR-09] ([http://www.edom.com.tw/vender/product/WM-G-MR-09_Spec_v17_20071012.pdf datasheet], based on Marvell 88W8686)
* Audio codec: [http://www.wolfsonmicro.com/products/WM8987 Wolfson WM8987G] ([http://www.wolfsonmicro.com/uploads/documents/en/WM8987.pdf datasheet])
* Backlight: [http://avnetexpress.avnet.com/store/em/EMController/Power-Misc/Monolithic-Power-Systems/MP1530DM-LF/_/A-4260673/An-0/R-4260673?action=part&amp;catalogId=500201&amp;langId=-1&amp;storeId=500201 Monolithic Power Systems MP1530DM] ([http://products.monolithicpower.com/Products/ProductDownloadAction.do?productID=52&amp;productType=DS datasheet])
* Speaker amplifier: [http://www.fangtek.com.cn/fangtekus/product/product_all/product_all_8.php Fangtek ft690M] ([http://www.tgwdz.com/asp_bin/pro_img/2008115193415730.pdf datasheet])
* LCD panel: [http://auo.com/auoDEV/products.php?sec=carPortable&amp;func=info&amp;product_id=108&amp;items_id=5 AUO A070VW04] ([http://www.beyondinfinite.com/lcd/Library/Auo/A070VW04_V0.pdf datasheet])

== Connections ==
The S3C6410 SoC has 3 SD ports, one has the iNAND connected and the external SD port, the other has the SDIO wi-fi chip connected.

The audio codec is connected through I²C (control, address 0x1A) and I²S (audio transport).

== GPIO ports ==
* AT88SC: N0 -&gt; SCL, N1 -&gt; SDA (emulated I²C bus)
* LCD panel: M0 -&gt; LCD enable, M1 -&gt; SCL, M2 -&gt; SDA (emulated I²C bus)
* backlight: F15 (== PWM_TOUT1)
* Speaker: K12 -&gt; en-/disable
* Headphone: L12 -&gt; insertion detection
* Video amplifier: K13 -&gt; en-/disable
* Wi-fi: K1 -&gt; en/dis-able, K2 -&gt; reset
* System power: K15 -&gt; power control, L14 -&gt; system power hold over 5 second  time, pull up K15 (?)
* Charger: L13 -&gt; DC insertion detection, K4 -&gt; charging status 1, K5 -&gt; charging status 2, K6 -&gt; 0: 200ma 1: 860ma
* External SD card: K0 -&gt; write protect detection
* USB: L0 -&gt; USB voltage en-/disable, L1 -&gt; USB host 5V en-/disable, L10 -&gt; USB host over-current protection status, L11 -&gt; USB OTG over-current protection status, L8 -&gt; USB OTG enable
* LEDs: N9 -&gt; green LED (?), N8 -&gt; red LED (?) (note: set 0 to enable, set 1 to disable)
* Hardware buttons: L14 -&gt; power button, N4 -&gt; button 0, N3 -&gt; button 1, N2 -&gt; button 2, N15 -&gt; button 3, N12 -&gt; button 4</text>
    </revision>
  </page>
  <page>
    <title>Mer/Status/Sound</title>
    <id>1887</id>
    <revision>
      <id>38940</id>
      <timestamp>2010-09-22T10:51:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

To get sound running on Mer requires the pulseaudio code to be developed and setup properly.

In the meantime you can use ALSA with certain apps but you need the Nokia osso-dsp-rx-44-modules

  echo &quot;deb http://catalogue.tableteer.nokia.com/updates/diablo-2/ ./&quot; &gt; /etc/apt/sources.list.d/temp_updates.list
  apt-get update
  apt-get install alsa-base tablet-sound
  rm /etc/apt/sources.list.d/temp_updates.list
  apt-get update

The tablet needs to be halted:

  sudo shutdown -h now

and -then- booted, to allow the modules to load, then use alsa mixer to unmute the required channels:

  alsamixer -c 0

On the N800, you need to unmute the PCM channel only, on the N810 you need both PCM and Line channels. To unmute a channel, select it using the d-pad left-right and hit the &quot;m&quot; button on the keyboard. The selected channel should now appear in green colour. Sound level is adjusted using the d-pad up-down buttons. Hit &quot;Esc&quot; on the onscreen keyboard to exit alsamixer.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Status/o2 Joggler</title>
    <id>3260</id>
    <revision>
      <id>25268</id>
      <timestamp>2009-12-29T09:55:17Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>[[Mer/Status/o2 Joggler]] moved to [[Mer/Status/O2 Joggler]]: Typo in title</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Status/O2 Joggler]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Tasks</title>
    <id>3502</id>
    <revision>
      <id>38973</id>
      <timestamp>2010-09-22T11:40:51Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Tasks ==

* [[/Open System Sounds]]
* [[/qemu-eabi cputransp for Scratchbox]]
* [[/Mer Installer]]
* [[/Missing Localization Strings]]
* [[../Media]] - Create and gather freely licenced media to ship with Mer</text>
    </revision>
  </page>
  <page>
    <title>Mer/Tasks/Mer Installer</title>
    <id>1476</id>
    <revision>
      <id>39013</id>
      <timestamp>2010-09-22T13:05:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Mer Installer ==

Make installer for Maemo/Diablo that does the following:

* Depends on bootmenu (bootmenu with bootmenu.d item), wget, rootsh, zenity, gnutar, binutils, and e2fsprogs
* Allows simple installation (partition my internal/external MMC to 50mb FAT, 128mb swap, rest linux), or advanced (choose my own partition)
* Partitions, mkfs.ext3's and unpacks a downloaded tar.gz (built by the imager, uploaded to some http.). Should support resume of dls (wget -c?)
* Sets up the bootmenu item for Mer and choose default OS.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Tasks/Missing Localization Strings</title>
    <id>1521</id>
    <revision>
      <id>38918</id>
      <timestamp>2010-09-22T10:18:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

*home_ap_home_view
*home_me_set_applet_settings
*home_me_set_background
*home_me_set_theme
*home_me_screen_calibration
*home_me_help
*home_ti_set_backgr
*home_fi_set_backgr_color
*home_fi_set_backgr_image
*home_fi_set_backgr_mode
*home_va_set_backgr_centered
*home_va_set_backgr_scaled
*home_va_set_backgr_stretched
*home_va_set_backgr_tiled
*home_va_set_backgr_cropped
*home_va_set_backgr_none
*home_bd_set_backgr_ok
*home_bd_set_backgr_preview
*home_bd_set_backgr_image
*In color selector: !!Colour Selector , !!Select
*ai_ap_application_installer
*tana_fi_communication
*tana_fi_internet
*tana_fi_my_selection</text>
    </revision>
  </page>
  <page>
    <title>Mer/Tasks/Open System Sounds</title>
    <id>1472</id>
    <revision>
      <id>38974</id>
      <timestamp>2010-09-22T11:43:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== Open system sounds == 

List of wav files from osso-sounds-ui (non-free package):

&lt;pre&gt;
/usr/share/sounds/ui-recharge_battery.wav
/usr/share/sounds/ui-connection_lost.wav
/usr/share/sounds/ui-window_open.wav
/usr/share/sounds/ui-window_close.wav
/usr/share/sounds/ui-information_note.wav
/usr/share/sounds/ui-new_email.wav
/usr/share/sounds/ui-wake_up_tune.wav
/usr/share/sounds/ui-charging_started.wav
/usr/share/sounds/ui-confirmation_note.wav
/usr/share/sounds/ui-gesture_number_recognized.wav
/usr/share/sounds/ui-shutdown.wav
/usr/share/sounds/ui-key_press.wav
/usr/share/sounds/ui-pen_down.wav
/usr/share/sounds/ui-general_warning.wav
/usr/share/sounds/ui-thumb_keyboard_launch.wav
/usr/share/sounds/ui-battery_low.wav
/usr/share/sounds/ui-default_beep.wav
/usr/share/sounds/ui-operation_ready.wav
/usr/share/sounds/ui-wrong_charger.wav
&lt;/pre&gt;

== Links ==
Some of these may provide sounds which could be used directly, or with some modification:

* http://freepats.zenvoid.org/olpc-sounds/
* http://www.freesound.org/
* http://www.soundjay.com/
* http://www.jlstudios.ca/free_sound_effects.html
* http://www.wavsource.com/sfx/sfx.htm
* http://www.opsound.org/</text>
    </revision>
  </page>
  <page>
    <title>Mer/Tasks/qemu-eabi cputransp for Scratchbox</title>
    <id>1473</id>
    <revision>
      <id>39014</id>
      <timestamp>2010-09-22T13:06:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Scratchbox-devkit-qemu is now available from:

https://garage.maemo.org/frs/?group_id=877&amp;release_id=2672

Edit [[Mer/Documentation/SDK||SDK]] to make instructions use qemu-arm-eabi-sb2 instead, and getting your .deb package.

[[Category:Mer]]</text>
    </revision>
  </page>
  <page>
    <title>Mer/Testing</title>
    <id>2227</id>
    <revision>
      <id>38919</id>
      <timestamp>2010-09-22T10:19:17Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

Current Testing releases are [[Mer/Releases/0.16testing|here]].

During testing phase we just add notes to the wiki page rather than using bugzilla.</text>
    </revision>
  </page>
  <page>
    <title>Mer/Ubuntu MID</title>
    <id>1951</id>
    <revision>
      <id>38975</id>
      <timestamp>2010-09-22T11:45:32Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

On Thursday 2th May 2009 Ubuntu MID decided to use Mer as their upstream.

== #ubuntu-mobile meeting 3 June ==

[http://irclogs.ubuntu.com/2009/06/02/%23ubuntu-mobile.html IRC logs] are available.

* ISSUE: version tracking. Eg Maemo/hildon gtk will freeze
* ISSUE: How should Ubuntu best produce images (eg ISOs are easy but may need rootfs or extractor script)
* ACTION: Support/provide release commits like this : http://www.winehq.org/announce/1.1.22
* ACTION: Review objectves of Mer-&gt;Ubuntu upload and determine timing (:Testing2 or just :Stable) with persia
* ACTION: Produce workflow to be quilt and git-branch based persia/NCommander
* ACTION: Contact Nokia re making Mer upstream for open development of Gtk (via gitorious cf Trolltech/Qt)
* ACTION: Page listing apps for featureful release and status/links
* ACTION: Update Mer Sprints page to show schedule sync and crosslink to KarmicReleaseSchedule
* ACTION: GrueMaster to put up a target list of 'tested' hardware
* ACTION : YokoZar Ubuntu code needs to poke /usr/share/branding/(some to be defined hierarchy standard) then filled with a branding-ubuntu package
* ACTION : persia/NCommander to hack the appmgr to work as needed</text>
    </revision>
  </page>
  <page>
    <title>Mer/User Reactions</title>
    <id>1809</id>
    <revision>
      <id>39015</id>
      <timestamp>2010-09-22T13:06:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== User Reactions ==
John Bloom recently attended Linux Fest Northwest and gathered some reactions of different people to Mer. What do people want to know when they hear about Mer? 

Depends on their background and circumstances:
* People who don't use linux on their desktops were sometimes interested in using Mer on their phones. Mostly they were interested in the possibility of having mer on their current phones to play around with, rather than buying a new phone with mer.
* Linux users with the G1 and iPhone were usually quite interested in the possibility of running Mer on their devices, especially in a dual-boot situation where they could revert to their phone's normal OS as required.
* People who went with netbooks for a portable device are somewhat interested in a very light distro targetted for the small screen that is focused around email and browsing.
* People with N8x0 devices tend to fall into two camps: those who use 3rd party software (extras, maemo-mapper, etc) are definitely interested in Mer. There were also people who only use Nokia's included software; those people don't have much interest in Mer, probably since they treat the device as a finished product already, not an evolving ecosystem.

--[[User:johnx|johnx]] 22:36, 27 April 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Mer/gc-backlog</title>
    <id>2922</id>
    <revision>
      <id>38920</id>
      <timestamp>2010-09-22T10:21:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

=gc=

==What is gc?==

I don't know, what '''is''' gc?
--[[User:dneary|Dave Neary]] 11:13, 3 February 2010 (UTC)

==gc backlog==

(Importance: Essential, High, Normal, Bell, Whistle. Everyone knows bells come before whistles)

Several items overlap. This is expected.

{| class=&quot;wikitable sortable&quot; border=&quot;1&quot;
|+Sortable table
|-
!  Functionality
!  Description
!  Importance Class
!  Completion
|-
|  Tap to control
|  Use a sequence of taps to control various features such as mute
|  Bells
|  
|-
|  Location support
|  Identifying when the device is within a configurable range of arbitrary predefined locations.
|  Whistles
|   
|-
|  GPIO support
|  Ability to monitor GPIO devices and states (e.g.: Power button)
|  Essential
|  
|-
|  'Screensaver'
|  Power saving: dim the screen after a period of inactivity
|  Essential
|  
|-
|  Power management
|  Power saving: turn off the screen and enable other power saving features based upon input triggers
|  Essential
|  
|-
|  Detect keyboard open/close
|  On devices with a keyboard, use the sliding of the keyboard as an input
|  Essential
|
|}</text>
    </revision>
  </page>
  <page>
    <title>Mer/h-i-m-example</title>
    <id>2910</id>
    <revision>
      <id>38976</id>
      <timestamp>2010-09-22T11:46:14Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

== h-i-m-example braindump ==

# Get h-i-m-example source
# Make a little tweak to your debian/rules file:
 config.status: configure
        dh_testdir
        autoreconf --install --force ./
        # Add here commands to configure the package.
# You might need aclocal-1.7
# dpkg-buildpackage -rfakeroot &amp;&amp; sudo dpkg -i ../*.deb
# gconftool-2 -t string -s /apps/osso/inputmethod/default-plugins/finger&quot;hildon_im_example_fkb&quot;
# gconftool-2 -s -t string /apps/osso/inputmethod/default-plugins/stylus &quot;hildon_im_example_fkb&quot;
# gconftool-2 -s -t bool /apps/osso/inputmethod/have-internal-keyboard false # no idea if that's really necessary.
# more info: https://bugs.maemo.org/show_bug.cgi?id=4178</text>
    </revision>
  </page>
  <page>
    <title>Mer Blueprint</title>
    <id>1510</id>
    <revision>
      <id>10213</id>
      <timestamp>2009-01-23T23:01:40Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Mer Blueprint]] moved to [[Mer]] over redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Mer]]</text>
    </revision>
  </page>
  <page>
    <title>Mer Blueprint New</title>
    <id>1375</id>
    <revision>
      <id>21036</id>
      <timestamp>2009-10-26T09:26:20Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <comment>Redirecting to [[Mer]]</comment>
      <text xml:space="preserve">#REDIRECT [[Mer]]</text>
    </revision>
  </page>
  <page>
    <title>Mer Sprints</title>
    <id>1379</id>
    <revision>
      <id>22957</id>
      <timestamp>2009-11-18T19:28:58Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Mer/Sprints]]</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Sprints]]</text>
    </revision>
  </page>
  <page>
    <title>Mer Sprints/January 08</title>
    <id>1383</id>
    <revision>
      <id>9340</id>
      <timestamp>2008-12-16T11:17:21Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Mer Sprints/January 08]] moved to [[Mer Sprints/January 09]]: Note to self: Years increment by 1 every 12 months.</comment>
      <text xml:space="preserve">#REDIRECT [[Mer Sprints/January 09]]</text>
    </revision>
  </page>
  <page>
    <title>Mer Sprints/January 09</title>
    <id>1380</id>
    <revision>
      <id>38921</id>
      <timestamp>2010-09-22T10:22:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{Mer}}</comment>
      <text xml:space="preserve">{{Mer}}

[[Mer Blueprint]]

== January 2009 Sprint planning ==

* Planning meeting organized in the [[IRC|#maemo-meeting IRC channel]]

== Tasks ==

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightBlue&quot;
| 2008-08-12 || [[Mer_Blueprint]] || Carsten || - || 
|}

== Bugs ==

What follows are the bugs that need special attention/progress.

For the record:

{{#bugzilla:id=3858
  |columns=id,severity,product,status,resolution,summary,to
}}

==Activity log==
Latest activity report goes on top.</text>
    </revision>
  </page>
  <page>
    <title>Mer Wishlist</title>
    <id>1496</id>
    <revision>
      <id>10138</id>
      <timestamp>2009-01-22T22:13:36Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>[[Mer Wishlist]] moved to [[Mer/Nokia wishlist]]: Move under mer namespace</comment>
      <text xml:space="preserve">#REDIRECT [[Mer/Nokia wishlist]]</text>
    </revision>
  </page>
  <page>
    <title>Meta:Anonymous editing</title>
    <id>407</id>
    <revision>
      <id>42336</id>
      <timestamp>2011-03-04T12:50:37Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add current state of anonymous editing</comment>
      <text xml:space="preserve">''Anonymous editing'' allows people without a maemo.org account, or users not logged in, to edit pages in the wiki.

This has two side effects:
# It is much easier for people to edit (and hopefully, improve) the content of the wiki.
# It is possible for people with accounts to make changes anonymously, when they intended to be logged in; and therefore lose any karma benefits.

The policy on anonymous editing in the maemo.org wiki is [[Talk:Meta:Anonymous editing|under discussion]]. Currently, anonymous users are [http://lists.maemo.org/pipermail/maemo-community/2011-February/004651.html disallowed from creating pages], but may edit any existing pages.

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Meta:Problems in the LaTeX2HTML2Wiki import process</title>
    <id>1481</id>
    <revision>
      <id>34118</id>
      <timestamp>2010-05-10T09:58:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>slightly wikify, categorize</comment>
      <text xml:space="preserve">WARNING, part 1: most of the issues ''listed'' on this page aren't experienced with the latest versions of the import toolchain, and as a result, this page should be considered as largely outdated. ''But''…

WARNING, part 2: this is a quick jot down of the minor beauty glitches in the import process of certain information to the Mediawiki environment. ''Not all problems are listed, and this is by no means a concise reference in the matter.''


== Import process ==
The information is currently imported to the wiki from LaTeX via HTML phase, as the tools available to convert LaTeX to Mediawiki format are unfinished at best. This process causes few minor glitches in the Wiki markup, and the articles imported need to be edited in any case to match even the rudimentary style conforms of the wiki.

* headers
* excess line breaks (also with &lt;nowiki&gt;&lt;br /&gt;&lt;/nowiki&gt;)
* graybox division around verbatim text areas
* random verbatim code blocks after a header or a bulleted list

== How to help ==
You can use different tools to help with the integration of the imported documents to Maemo wiki in several different ways. There are multiple tools available, for example
* [[:wikipedia:Wikipedia:AutoWikiBrowser|AutoWikiBrowser]]
* [http://meta.wikimedia.org/wiki/Using_the_python_wikipediabot Bots]

There are some specific tasks to do to problems listed above. Most of them can and should be done when importing, but some problems may remain afterwards.

*'''headers''' The top level header is always included with the process and it should be removed. Also, chapter numbers are imported, and they should be removed. An example of this is &lt;br /&gt;&lt;nowiki&gt;==&lt;span class=&quot;arabic&quot;&gt;2&lt;/span&gt;.&lt;span class=&quot;arabic&quot;&gt;1&lt;/span&gt; Getting started==&lt;/nowiki&gt;&lt;br /&gt; which in reality should be &lt;br /&gt;&lt;nowiki&gt;==Getting started==&lt;/nowiki&gt;
*'''excess line breaks''' There ''might'' be excess line breaks before and after code blocks.
*'''graybox division around verbatim text areas''' The graybox &lt;nowiki&gt;&lt;div class=&quot;graybox&quot;&gt;&lt;/nowiki&gt; is not needed in the Wiki and could be removed.
*'''random verbatim code blocks after a header or a bulleted list''' For some reason, the HTML2Wiki adds a whitespace to paragraphs starting immediately after a header or a bulleted list. These should be removed.

[[Category:Wiki]]</text>
    </revision>
  </page>
  <page>
    <title>MicroB</title>
    <id>2301</id>
    <revision>
      <id>40631</id>
      <timestamp>2010-12-09T11:20:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add links</comment>
      <text xml:space="preserve">MicroB is the project to embed [https://developer.mozilla.org/en/Gecko Mozilla Gecko] for use with the Maemo Browser UI on the Maemo platform. It was developed in parallel to maintenance work on the Opera browser which shipped with the [[Nokia N800|N800]] in OS 2007 (Maemo 3). MicroB is the engine shipped with [[Open development/Maemo roadmap/Diablo|Maemo 4]]. [[Open development/Maemo roadmap/Fremantle|Maemo 5]] will include an updated version of the engine. Details to follow.

MicroB does have a [http://browser.garage.maemo.org garage web site] (unfortunately stale). While work for Maemo 4 was done in Subversion (hosted at garage), for Maemo 5 the work moved to [https://developer.mozilla.org/en/Mercurial Mercurial] to match the upstream transition by mozilla.org.

MicroB can be [[MicroB_tweaks|tweaked]], [[Location_bar_tricks|adapted]], and [http://browser-extras.garage.maemo.org/news extended]. It is also open and flexible enough to enable [[Internet_custom_styles|custom styles]] and [[Internet_bookmarklets|javascript bookmarklets]].

There is also a handy add-on called [[Internet_bookmark_speed_dial|bookmark speed dial]] available, giving you a one page overview of most recently visited 16 bookmarks.

Because MicroB is such a powerful and full-featured browser, you can take advantage of &quot;the full web&quot; on your device. There is a [[Webapplications_and_websites|list of handy websites]].

[[Category:Software]]
[[Category:Web]]</text>
    </revision>
  </page>
  <page>
    <title>MicroB tweaks</title>
    <id>1771</id>
    <revision>
      <id>41806</id>
      <timestamp>2011-02-14T09:45:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">(Maemo 4 only. Maemo 5 status not clear at this time of writing.)

MicroB is the default browser in Maemo 4. While there are alternative browsers for Maemo 4 such as [[Tear]] and [[Firefox mobile]] some users prefer MicroB.

It is possible to tweak the performance and behaviour of MicroB. Please continue to read for some suggestions.

MicroB, being a [[:wikipedia:Mozilla|Mozilla]] based browser, has the same settings as Firefox. These settings are stored in the file &lt;code&gt;/home/user/.mozilla/microb/prefs.js&lt;/code&gt;. Only a few of these settings can be changed from the MicroB menus. To change the others open the URL &lt;code&gt;about:config&lt;/code&gt; in MicroB to edit them one-by-one, or edit &lt;code&gt;prefs.js&lt;/code&gt;. It is better not to edit &lt;code&gt;prefs.js&lt;/code&gt; directly but to touch &lt;code&gt;user.js&lt;/code&gt; instead. All configuration of &lt;code&gt;user.js&lt;/code&gt; will be added to &lt;code&gt;prefs.js&lt;/code&gt; during start-up!

== Settings ==

Even though many of the settings only make sense on a notebook or desktop PC, there are some that can be useful for the Internet Tablets.

Removes cookies when closing MicroB (allow only for session). This only applies to new cookies. To also delete earlier cookies go to Tools -&gt; clear -&gt;cookies in MicroB:

 network.cookie.lifetimePolicy 2

Activates smooth scrolling. This is useful when the [http://www.internettablettalk.com/wiki/index.php?title=Internet:Microb_Hardware_Key_bindings d-pad is configured for scrolling]:

 general.smoothScroll true

Lets you select the contents of the urlbar with one click, instead of the default triple click:

 browser.urlbar.clickSelectsAll true

Sets minimum and default font size in points, in this case 20 points. Depending on the language you use also set font.min-size.fixed.ja (japanese) etc.:

 font.min-size.fixed.x-western 20
 font.min-size.fixed.x-unicode 20
 font.min-size.variable.x-western 20
 font.min-size.variable.x-unicode 20
 font.size.variable.x-western 20
 font.size.fixed.x-unicode 20

Speed tweaks specific for the Internet Tablets:

 browser.cache.memory.capacity 8192
 browser.sessionhistory.max_entries 4
 content.notify.interval 1250000
 content.notify.ontimer true
 network.http.max-connections 4
 network.http.max-connections-per-server 4
 network.http.max-persistent-connections-per-server 1
 network.http.pipelining.maxrequests 1000
 network.http.pipelining true
 nglayout.initialpaint.delay 2000

For an explanation of these and other settings in about:config see [http://www.tweakguides.com/Firefox_10.html this article.]

== Editing  prefs.js ==

To edit it on the tablet itself:

&lt;ol&gt;
&lt;li&gt;
if you don't have [[root access]] already install 'rootsh' through the application manager
&lt;/li&gt;
&lt;li&gt;
if you don't have 'nano' installed get it with application manager
&lt;/li&gt;
&lt;li&gt;
close all MicroB windows
&lt;/li&gt;
&lt;li&gt;
open xterm
&lt;pre&gt;
sudo gainroot
invoke-rc.d tablet-browser-daemon stop 
exit
cd .mozilla/microb
cp prefs.js prefs.js.backup
nano prefs.js
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
scroll to the line you want to change/add and type the changes. Be careful to use the exact format:&lt;pre&gt;user_pref(&quot;nameofthesetting&quot;, thevalue);&lt;/pre&gt;If you leave out one '&lt;code&gt;;&lt;/code&gt;' , '&lt;code&gt;(&lt;/code&gt;' etc. then the settings in the file will be ignored by MicroB. If a setting does not exist then add it yourself.
&lt;/li&gt;
&lt;li&gt;
to save the file click ctrl, x, y, return.
&lt;pre&gt;
sudo gainroot
invoke-rc.d tablet-browser-daemon start
exit
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
 
If you decide to edit &lt;code&gt;prefs.js&lt;/code&gt; on your own computer be sure to:

* run as root:&lt;pre&gt;invoke-rc.d tablet-browser-daemon stop&lt;/pre&gt; before editing and &lt;pre&gt;invoke-rc.d tablet-browser-daemon start&lt;/pre&gt; after editing.
* use an editor that uses Unix-style line endings
* restore the right permissions and ownership of the file when you put it back

== Settings that will not stick ==

Some settings get reset when MicroB starts. This is unfortunate, but you'll have to live with it.

[[http://mxr.maemo.org/garage/source/browser/mozilla/trunk/microb-eal/include/common.h#70 list of interesting strings]]

Replaced:
* snav.keyCode.modifier
* general.useragent.locale
* general.useragent.vendor

Randomly replaced with the value from plugins.flashhack:
* ftv.enabled
* snav.ignoreTextFields
* snav.disableJS
* layout.full.zoom.mode.fast
* plugin.default_plugin_disable
* security.warn_entering_secure
* security.warn_leaving_secure
* security.warn_submit_insecure

For any such setting, you can use bookmarks to
 about:config?prefname={name}&amp;prefvalue={value}&amp;sprefname=donotomit

... and just tap on them or if you only have one you can make it your home page.

== How to restore the default settings==

If you mess up &lt;code&gt;prefs.js&lt;/code&gt; or just want the defaults back then either restore the backup file you just made, or delete &lt;code&gt;prefs.js&lt;/code&gt; file so MicroB will regenerate it with default settings.

to restore the backup: 

close all MicroB windows, and run:
&lt;pre&gt;
sudo gainroot
invoke-rc.d tablet-browser-daemon stop 
exit
cd .mozilla/microb
cp prefs.js.backup prefs.js
sudo gainroot
invoke-rc.d tablet-browser-daemon start
exit
&lt;/pre&gt;

...or to delete &lt;code&gt;prefs.js&lt;/code&gt;:

close all MicroB windows,a dn run:
&lt;pre&gt;
sudo gainroot
invoke-rc.d tablet-browser-daemon stop 
rm /mozilla/microb/prefs.js
invoke-rc.d tablet-browser-daemon start
exit
&lt;/pre&gt;

== Also see ==

* [[Ad_blocking]]
* [http://www.internettablettalk.com/forums/showthread.php?t=24405 Selectively disable JavaScript in MicroB]
* [http://browser-extras.garage.maemo.org Browser-Extras, for MicroB extensions]

[[Category:Web]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Microemulator</title>
    <id>4025</id>
    <revision>
      <id>36145</id>
      <timestamp>2010-06-22T05:40:21Z</timestamp>
      <contributor>
        <username>barteo</username>
        <id>2498</id>
      </contributor>
      <comment>Updated to MicroEmulator 2.0.4</comment>
      <text xml:space="preserve">{{expand}}

==Jave SE and Java ME==

Download and untar/unzip
# microemulator-2.0.4.zip from [http://code.google.com/p/microemu/ MicroEmu]
# ejre-1_6_0_10-ea-b39-linux-armv6-vfp-eabi-min-eval-30_jul_2009.tar.gz from [http://java.sun.com/javase/downloads/embedded.jsp Sun JaveSE ARMv6 Headful]

===Makefile===

&lt;source lang=&quot;make&quot;&gt;
 clean:
 	echo cleaning...
 
 install:
 	cp -r ejre1.6.0_10 $(DESTDIR)/opt/
 	cp -r microemulator-2.0.4 $(DESTDIR)/opt/
 	cp microemulator.desktop $(DESTDIR)/usr/share/applications/hildon/
 	cp $(DESTDIR)/opt/microemulator-2.0.4/devices/microemu-device-resizable.jar $(DESTDIR)/home/user/.microemulator/
 	cp config2.xml $(DESTDIR)/home/user/.microemulator/
&lt;/source&gt;

===microemulator.desktop===

&lt;pre&gt;
[Desktop Entry]
Encoding=UTF-8
Version=0.1
Type=Application
Name=MicroEmulator
Exec=/opt/ejre1.6.0_10/bin/java -jar /opt/microemulator-2.0.4/microemulator.jar
Icon=microemulator
X-HildonDesk-ShowInToolbar=true
X-Osso-Type=application/x-executable
&lt;/pre&gt;

==config2.xml==

&lt;source lang=&quot;xml&quot;&gt;
&lt;config&gt;
	&lt;files&gt;
		&lt;recentJadDirectory&gt;/home/user/MyDocs/&lt;/recentJadDirectory&gt;
	&lt;/files&gt;
	&lt;system-properties&gt;
		&lt;system-property VALUE=&quot;MIDP-2.0&quot; NAME=&quot;microedition.profiles&quot;/&gt;
		&lt;system-property VALUE=&quot;CLDC-1.0&quot; NAME=&quot;microedition.configuration&quot;/&gt;
		&lt;system-property VALUE=&quot;true&quot; NAME=&quot;avetana.forceNativeLibrary&quot;/&gt;
	&lt;/system-properties&gt;
	&lt;devices&gt;
		&lt;device DEFAULT=&quot;true&quot;&gt;
			&lt;name&gt;Resizable device&lt;/name&gt;
			&lt;filename&gt;microemu-device-resizable.jar&lt;/filename&gt;
			&lt;descriptor&gt;org/microemu/device/resizable/device.xml&lt;/descriptor&gt;
			&lt;rectangle&gt;
				&lt;x&gt;0&lt;/x&gt;
				&lt;y&gt;0&lt;/y&gt;
				&lt;width&gt;800&lt;/width&gt;
				&lt;height&gt;378&lt;/height&gt;
			&lt;/rectangle&gt;
		&lt;/device&gt;
	&lt;/devices&gt;
	&lt;windows&gt;
		&lt;main ONSTART=&quot;true&quot;&gt;
			&lt;x&gt;0&lt;/x&gt;
			&lt;y&gt;0&lt;/y&gt;
			&lt;width&gt;800&lt;/width&gt;
			&lt;height&gt;480&lt;/height&gt;
		&lt;/main&gt;
	&lt;/windows&gt;
&lt;/config&gt;
&lt;/source&gt;

===debian/javame.postinst===

: first run as root... to start timebomb (aka trial period)
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
/opt/ejre1.6.0_10/bin/java -version 2&gt; /dev/null
chown -R user:users /home/user/.microemulator/
exit 0
&lt;/source&gt;

[[Category:Development]]
[[Category:HowTo]]</text>
    </revision>
  </page>
  <page>
    <title>Microemulator/Compatibility</title>
    <id>5068</id>
    <revision>
      <id>46228</id>
      <timestamp>2012-01-05T14:30:53Z</timestamp>
      <contributor>
        <username>marmistrz</username>
        <id>4691</id>
      </contributor>
      <comment>versions</comment>
      <text xml:space="preserve">{| class=&quot;wikitable sortable&quot;
| SoftwareFullName
| Version
| Software type
| Status
| Notes
| Resolution
|-
|Crazy Penguin Catapult 2 || 1.0.4 || game || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Running slowly, but playable || 240x320
|-
|Norbsoft Imieniny (Namedays) || 1.0 || nameday viewer || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A  || N/A
|-
|Wordmax 2 || 2.12|| dictionary || style=&quot;background-color:skyblue;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Partially Working || Backspace not working, but usable || 240x320 (?)
|-
|California Gold Rush - &quot;extended&quot; || 1.0.4 || game || style=&quot;background-color:Red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || doesn't load || 240x320
|-
|Crazy Penguin Catapult || 1.0.6 || game || style=&quot;background-color:Red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || [http://pastebin.com/AQ4s02FH log] || 240x320
|-
|Mini Commander || 4.2 || file manager || style=&quot;background-color:Red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || [http://pastebin.com/wAQHTvJU log] || 240x320
|-
|Panzer General || 1.0.8 || game || style=&quot;background-color:Red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || [http://pastebin.com/SWQfDdfP log] || 240x320
|}

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>MieruPackageDescriptionTranslation</title>
    <id>5237</id>
    <revision>
      <id>49623</id>
      <timestamp>2012-09-11T00:04:46Z</timestamp>
      <contributor>
        <username>martink</username>
        <id>3162</id>
      </contributor>
      <text xml:space="preserve">== Mieru package description translation ==
This is the Mieru package descriptions. It is currently used in the Debian package and in various repositories, such as Apps4MeeGo or Ovi store. As Debian packages and some repositories (Ovi) support localized descriptions, having a translation would be really nice !

'''Thanks in advance to anyone interested in translating the Mieru package description ! :)'''

=== English ===
Mieru is a flexible manga and comic book viewer.
NOTE: page turning works by tapping the left or right half of the screen
Mieru supports all common manga and comic book storage formats including
zip and rar archives and plain images in a folder.
* automatic previous/next chapter loading
* history of last open titles
* elegant and touch friendly interface
* pinch zoom support
* reopens on last open page and page region
* rotation lock

=== Czech ===
Mieru je flexibilní čtečka mangy a komiksu. 
Pozn.: k listování slouží pravá a levá část obrazovky 
Mieru podporuje všechny běžné formáty mangy a komiksu, 
včetně ZIPu a RARu či pouze obrázků v adresáři
* automatické načtení předchozí/následující kapitoly 
* historie naposledy otevřených kapitol 
* elegantní dotykové rozhraní 
* podpora pro „pinch zoom“ 
* znovu otevře naposledy načtenou stránku na stejném místě 
* zámek rotace 
* manga režim

=== Chinese (simplified) ===
Mieru是一个简单易用漫画阅读软件。
注意：通过触摸屏幕的左右两侧可以实现翻页功能
Mieru支持所有常见的漫画存储格式包括ZIP/RAR压缩包和普通文件夹里的图片文件。
* 自动加载上一个/下一个章节
* 过往阅读的历史记录
* 漂亮友好的触摸界面
* 支持双指缩放
* 支持打开程序恢复到最后阅读状态
* 支持屏幕旋转锁定

=== Dutch ===
Mieru is een flexibele manga en stripboek viewer.
OPMERKING: pagina omslaan werkt door de linker of rechter zijde van het scherm aan te raken
Mieru ondersteund alle gangbare manga en stripboek opslagformaten inclusief zip en rar bestanden en plaatjes in een map.
* automatisch vorige/volgende hoofstuk inladen
* geschiedenis van laatst geopende afbeelding
* elegante en aanraakscherm vriendelijke interface
* pinch zoom support (indien ondersteund)
* heropend de laatst geopende pagina plus pagina deel
* rotatie vergrendeling
 
=== French ===
Mieru est un lecteur de mangas et comics flexible.
NOTE: tourner les pages fonctionne en appuyant sur la partie gauche ou droite de l'écran.
Mieru supporte tous les formats de stockage de mangas et comics usuels, incluant
archives zip et rar et images dans un répertoire.
* chargement automatique du chapitre précédent/suivant
* historique des derniers titres ouverts
* interface élégante et adaptée au tactile
* support du 'pinch zoom', pincer pour zoomer
* s'ouvre à nouveau sur la dernière page et région ouverte.
* verrou de rotation

=== Vietnamese ===
Mieru là một ứng dụng đọc truyện tranh đa năng.
Lưu ý: chuyển trang bằng cách bấm vào bên trái hoặc bên phải màn hình.
Mieru hỗ trợ tất cả định dạng thường dùng trong việc đóng gói truyện tranh, trong đó bao gồm cả zip, rar và thư mục chứa hình ảnh.
* tự động mở chương tiếp theo hoặc trước đó
* lịch sử các mục đã được mở
* giao diện trang nhã và thân thiện với màn hình cảm ứng
* hỗ trợ &quot;pinch zoom&quot;
* tự mở trang và góc xem của lần trước đó
* khóa chế độ xoay màn hình 

=== Finnish ===
Mieru on monipuolinen manga- ja sarjakuvakirjojen lukija.
HUOM: sivunvaihto toimii koskettamalla näytön vaseta tai oikeaa puoliskoa.
Mieru tukee kaikkia yleisimpiä manga- ja sarjakuvakirjojen tallennusmuotoja,
sisältäen zip ja rar arkistot sekä kuvat kansiossa.
* automaattinen edellisen/seuraavan kappaleen lataus
* viimeksi avattujen teosten historia
* yksinkertainen kosketusköyttöliittymä
* tuki nipistys-zoomaukselle (kapasitiivistä näyttöä käyttävissä laitteissa)
* viimeksi auki olleen sivun ja alueen avaaminen
* näytön kierron lukitus

[[Category:Software]]
[[Category:Fremantle]]
[[Category:Localization]]</text>
    </revision>
  </page>
  <page>
    <title>Migrating to Community-driven Infrastructure</title>
    <id>5217</id>
    <revision>
      <id>48636</id>
      <timestamp>2012-06-27T18:34:15Z</timestamp>
      <contributor>
        <username>woody14619</username>
        <id>1579</id>
      </contributor>
      <minor/>
      <comment>/* Infrastructure */</comment>
      <text xml:space="preserve">== Introduction ==
Eventually, we will need to migrate to a fully community-driven infrastructure. This page is intended as a central place where information about this can be gathered.

Please see also the following thread: http://talk.maemo.org/showthread.php?t=85061

This is intended as work-in-progress and will evolve as we are going through the whole process. For now the primary focus is to gather information that will aid once the topic of migrating to a community-driven effort becomes actual.



== Inventory ==

As a first step we try to gather information about the present infrastructure at *.maemo.org and *.meego.com. This &quot;inventory&quot; is intended to provide an overview about all components of the infrastructure as well as to provide information that will later on aid during the actual migration.

Currently the following topics are considered important for the migration:

* Legal Issues (Names, Trademarks, Domain Names, etc.)
* Infrastructure (Web Site, Forum, Wiki, Autobuilder + MeeGo OBS, Mailinglists, Garage, etc.)
* Steering (How do we want to organize ourselves? However, please keep this thread on technical details and discuss political issues in a distinct thread at talk.maemo.org.)


=== Legal Issues ===

==== What is the state about the name &quot;Maemo&quot;? ====
&quot;... Maemo is currently a registered trademark of Nokia and the domain name is owned by Nokia. Our previous request to transfer the domain name was denied - I don't expect that to change. We have &quot;maemocommunity.org&quot; as a backup. ...&quot; http://talk.maemo.org/showpost.php?p=1226264&amp;postcount=8

==== Who owns &quot;maemo.org&quot;? ====
===== What is needed for the community to run maemo.org? ===== 
===== What are possible legal issues? =====
===== What are the costs? =====
===== Alternatives? =====
&quot;... we can use maemocommunity.org or some other alternative ...&quot; http://talk.maemo.org/showpost.php?p=1226264&amp;postcount=8

==== What about the personal information of the users? ====

Parts of the information about users stored in their profiles may be considered personal and therefore protected by law. We should analyze what that personal information may be and what the requirements are for transferring it to the new entity that will assume the operation of the services. Some mechanism for requesting permission from users may have to be used.

=== Infrastructure ===
The following table is intended to give a concise and easily perceivable overview of the infrastructure. Please use the next sub-section for providing more detailed information.

{| class=&quot;sortable wikitable&quot; border=&quot;2&quot;
|-
! Resource
! URL (If Applicable)
! Migration Needed (Y/N/NA/Optional)
! Contact Person
! Alternatives (Short)
|-
| Maemo Talk
| http://talk.maemo.org
| Y (Existing posts need to be preserved.)
| Reggie
| ?
|-
| Maemo Wiki
| http://wiki.maemo.org
| Y (Existing entries need to be preserved.)
| ?
| ?
|-
| Maemo Garage
| https://garage.maemo.org/
| NA / Optional? (Projects can migrate to alternatives themselves?)
| X-Fade
| github, gitorious
|-
| Maemo Homepage
| http://maemo.org
| ?
| ?
| ?
|-
| Maemo Autobuilder
| ?
| ?
| X-Fade
| Meamo cOBS
|-
| MeeGo (C)OBS
| https://build.pub.meego.com/
| Y, for at least 1 person (plz update)
| rzr
| [[Tizen]] , [[novel]] ?
|-
| Repositories (TODO: Needs to be more detailed.)
| ?
| ?
| ?
| ?
|-
| Voting Infrastructure / Servers
| ?
| ?
| ?
| ?
|- 
| Scratchbox
| http://scratchbox.org/
| ?
| ?
| ?
|}

==== More Detailed Information ====
In this sub section more detailed information about the entries in the table can be placed. The intent is to keep the table concise while still being able to have all relevant information at hand.

===== Maemo Talk =====
&quot;... It sounds like we will need a vbulletin license to migrate the forum content. If not, we can start all over again with a new forum. ...&quot; http://talk.maemo.org/showpost.php?p=1226264&amp;postcount=8

====== Possible migration path ======
&quot;It is indeed, and when the time comes, I will hand off a backup of the forum software, database, and Talkmaster responsibilities to who/where ever the &quot;official&quot; maemo.org will be hosted.&quot; http://talk.maemo.org/showpost.php?p=1223262&amp;postcount=32

===== Scratchbox =====
Scratchbox is also sponsored by Nokia. (Please verify?) 
Scratchbox is required for running the Fremantle and Harmattan SDK.

=== Steering ===

=== More ===

* OBS @[[TiZen]] or [[SuSe]] : https://bugs.tizen.org/jira/browse/TINF-48?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel</text>
    </revision>
  </page>
  <page>
    <title>Migrating to N900 from Series 60</title>
    <id>4341</id>
    <revision>
      <id>41753</id>
      <timestamp>2011-02-09T15:13:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add link, wikify slightly</comment>
      <text xml:space="preserve">This page aims to become a HOWTO for migrating from S60 devices (e.g. N-series phones) to the [[Nokia N900|N900]] without losing data, contacts or functionality. The aim is to provide users with a relatively seamless migration and to ensure that the N900 is capable of doing everything that the N-series did before delving into the world of new possibilities that Maemo brings. 

Initially, this HOWTO is the work of a single author documenting the issues involved in migrating from a Nokia N96 to an N900. Therefore, it should not be taken as an exhaustive guide just yet. If you feel that something is missing, please feel free to add it, or raise it on the talk page.

THIS PAGE IS A WORK IN PROGRESS AS OF JULY 2010.

== Initial setup &amp; preparation ==

This section addresses matters to be taken care of before the migration takes place, such as ensuring that we're using a working phone with the latest software revisions before we start.

=== Back up old phone ===

=== Preparing the new phone ===

==== Migrating physical components ====

Certain physical components must be physically transferred from the old phone to the new one. Migrating from an N96, the components that remain compatible with the N900 are:

* SIM card - obviously (!) but it's worth remembering that we need to get the data off the old phone before moving the SIM card permanently.
* Memory card - in common with later N-series phones, the N900 supports a 16 GB microSDHC which can be moved directly from the N96. It will be backed up first in case I need to repartition or reformat it for any reason.  
* Mains charger - Nokia supply a [http://europe.nokia.com/find-products/accessories/all-accessories/power/charger-adapters/nokia-charger-adapter-ca-146c CA-146C charger adapter] in the box, so a previous Nokia charger can be converted for use with the N900.

==== Updating phone firmware ====

There are features in the newest firmware ([[Maemo 5/PR1.3|1.3]]) that are well worth having, so the N900 will first be flashed with the newest available firmware as per the procedure described at [[updating the firmware]].

==== Backups &amp; version control ====

== Migrating data, settings &amp; applications ==

=== Migrating contacts &amp; calendar data ===

This was MUCH easier than expected. I didn't need my backups or anything else. Go into Contacts on the N900 and it offers the option to &quot;Get contacts&quot; and do so by &quot;Sync from another device&quot;. What's more, it actually works!

The N900 found my previous N96, allowed me to pair with it and asked me to confirm what I wanted to import. It then imported the contacts, calendar, tasks and notes, over Bluetooth, without requiring a PC, a memory card, a cable or anything else.  

=== Multimedia files ===

== Personalisation ==

This section deals with personalising the behaviour and alerts of the N900 to achieve similar settings to those required on previous phones.

==== Ringtones ====

==== Caller Groups ====

==== Profiles ====

== Major applications ==

Many of the applications I'm used to under Symbian won't be available in the same form under Maemo, but the aim of this section is to achieve N-series equivalent or better functionality in minimum time.

==== Series 60 applications and their Maemo equivalents ====

===== Joikuspot =====

Joikuspot is commercial software that turns the phone into a Wifi hotspot for use with laptops etc. [http://www.joikushop.com/?action=products&amp;mode=productDetails&amp;product_id=1061 It is available for N900], but I also want to look into whether [[N900 ad hoc wifi hotspot|Linux can handle this on an N900 without need of commercial software]].

===== Opera Mini =====

There is no official Java support, and all custom solutions are still in alpha stage.

===== Google Maps =====

Currently (July 2010) there is no native Google Maps for Maemo, but [[Maemo 5/PR1.2|PR1.2]] and above now includes a browser with built-in geolocation so the instructions for using the maemo-geolocation plugin are apparently out of date, Hopefully that means that Google Maps for Mobile will just work, in which case a bookmark to it is good enough.

===== Multi-protocol IM client e.g. Nimbuzz =====

An IM client that handled MSN, Skype, Facebook etc. as well as providing a VoIP client. This functionality is built in, but Maemo also runs pidgin which provides an adequate replacement.

===== BestBlacklist (caller blacklisting application) =====

This application provided the ability to block nuisance calls by caller ID. The same thing can be achieved with [http://www.mynokiaworld.com/2010/02/block-unwanted-calls-on-your-n900/ a Python script on an N900].

===== BestProfiles =====

Alarmed is even more capable replacement on Maemo platform. It can be used to schedule anything. Maemo can also run standard Linux scheduler [[fcron]].

===== SlovoEd dictionaries =====

How about Kielikone dictionaries, now only available for S60? Expensive, but professional.

==== Web applications ====

* Monilink
* eBay, Facebook, et al

[[Category:N900]]
[[Category:HowTo]]
[[Category:Users]]</text>
    </revision>
  </page>
  <page>
    <title>Mime Types</title>
    <id>2425</id>
    <revision>
      <id>27662</id>
      <timestamp>2010-01-28T14:14:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to developer guide</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Application Development/MIME type mapping]]</text>
    </revision>
  </page>
  <page>
    <title>Mime Types/Category</title>
    <id>2426</id>
    <revision>
      <id>27663</id>
      <timestamp>2010-01-28T14:15:54Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to developer guide</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo_5_Developer_Guide/Application_Development/MIME_type_mapping#New_MIME_type_with_OSSO_category_extension]]</text>
    </revision>
  </page>
  <page>
    <title>Mime Types/Open</title>
    <id>2427</id>
    <revision>
      <id>27664</id>
      <timestamp>2010-01-28T14:18:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to developer guide</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Application Development/MIME type mapping]]</text>
    </revision>
  </page>
  <page>
    <title>Miniature</title>
    <id>2880</id>
    <revision>
      <id>45346</id>
      <timestamp>2011-09-16T19:53:08Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Replacing page with '{{Miniature}}

 '''We are moving to http://miniature-chess.org/''''</comment>
      <text xml:space="preserve">{{Miniature}}

 '''We are moving to http://miniature-chess.org/'''</text>
    </revision>
  </page>
  <page>
    <title>Miniature/0.3 Berlin Defence</title>
    <id>4995</id>
    <revision>
      <id>45023</id>
      <timestamp>2011-08-24T01:55:38Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>link to wikipedia</comment>
      <text xml:space="preserve">[[Image:Miniature_Berlin_Defence.png|310px|thumb|The [http://en.wikipedia.org/wiki/Ruy_Lopez#Berlin_Defence Berlin Defence], as seen in Miniature]]
This is the first release of Miniature for MeeGo Harmattan which is, in fact, a total restart from the Miniature project born with Maemo 5 and the N900.   

Miniature won't play games yet, but it provides a fully featured user experience and a backend with its foundations in place. We are looking for a new breed of testers and developers and we couldn't wait to share the good stuff that is being cooked. You can find screenshots and more at http://wiki.maemo.org/Miniature


''BERLIN DEFENCE'' RELEASE FEATURES

* Log in to http://freechess.org aka FICS as guest or registered user.
* See a real time list of game challenges at FICS.
* UI demo: select and confirm game challenges.
* UI demo: filter game challenges by chess variant, time, increment and rating type.
* UI demo: create a new game seek.
* UI demo: chess board with movable pieces.
* UI demo: expandable chat area.
* UI demo: possibility to resign, propose a draw, request to adjourn.

The full backlog is available at https://gitorious.org/miniature/miniature/commits/master


INSTALLATION INSTRUCTIONS

You can run Miniature on the Nokia N950 and N9. Just tap this link from the browser in your device:

http://taschenorakel.de/files/michael/miniature_0.3.0-1_armel.deb

Alternatively, you can use the Qt SDK or the Harmattan Platform SDK emulators. See http://wiki.maemo.org/Miniature/Development#SDK_instructions


FEEDBACK

Casual feedback is welcome at the MeeGo forum thread or the developer mailing list. You can find us as well in #miniature on irc.freenode.net

* http://forum.meego.com/showthread.php?t=4301
* https://garage.maemo.org/pipermail/chess-developer/

Bug reports can be filed at http://bit.ly/o7m9Hp


GET INVOLVED

If you love chess, freedom and mobile devices then the Miniature project is for you! Check our Wishlist and Development pages:

* http://wiki.maemo.org/Miniature/Wishlist
* http://wiki.maemo.org/Miniature/Development


Happy testing!</text>
    </revision>
  </page>
  <page>
    <title>Miniature/0.4 De Lucena</title>
    <id>5004</id>
    <revision>
      <id>45333</id>
      <timestamp>2011-09-15T22:03:57Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>http://store.ovi.com/content/197343</comment>
      <text xml:space="preserve">[[Image:2011-09-01 11-45-37.png‎|310px|thumb|A [http://blog.chess.com/batgirl/the-smothered-mate-or-philidors-legacy smothered mate] as explained in [http://en.wikipedia.org/wiki/Luis_Ramirez_Lucena De Lucena]'s book ''Repetición de Amores y Arte de Ajedrez con CI Iuegos de Partido'' (1497)]]

'''2011-09-13''' - Miniature finally plays real chess online! You might find rough corners and room for improvement but the basics are in place. This is why we have decided to call this release after [http://en.wikipedia.org/wiki/Luis_Ram%C3%ADrez_de_Lucena Luis Ramírez de Lucena] who, without being apparently a great master, had the patience to document the modern rules of chess at their birth five centuries ago.

Now users can login to http://freechess.org (aka FICS) as guests or registered users and send / take challenges to &amp; from other players. This already fulfills the needs of many, but those expecting even more fun will be happy to know that chatting with your opponent is also supported. 

We are aiming to publish this version in the Ovi Store for the Nokia N9 and N950. Packages ready for other Qt enabled OSs are welcome! 


'''INSTALLATION INSTRUCTIONS'''

# Open the browser of your Nokia N9 / N950.
# Tap on http://store.ovi.com/content/197343
# Accept the download and installation of the package.

That's it! The Miniature icon will appear in the application grid of your device.


'''DE LUCENA RELEASE FEATURES'''

* Select and confirm game challenges.
* Create a new game seek.
* Play with online opponents with all chess rules in place.
* Have a chat with your opponent while playing.

See [[Miniature/0.3_Berlin_Defence]] to check previously implemented features.
The full changelog is available at http://gitorious.org/miniature/miniature/commits/master


'''BUGS FIXED'''

{{#bugzilla:id=12342,12336,12337,12339,12357,12358,12364,12365,12335,12340,12343,12344,12363,12355,12361,12368,12372,12375,12369,12374,12382,12389,12409,12395,7829,12347,12397
  |columns=id,severity,status,resolution,summary
  |sort=severity,id
}}

There are some [[Miniature/Development#Backlog|known issues]]. Your feedback is welcome if you want to report problems or enhancement requests. We will work on them for Miniature 0.5.


'''NEWS &amp; FEEDBACK'''

* https://twitter.com/#!/miniaturechess
* User forum: http://forum.meego.com/showthread.php?t=4301
* Developer list: https://garage.maemo.org/pipermail/chess-developer/
* http://miniature-chess.org/ (coming soon)

Let us know your impressions on Miniature. And if you want more, there is more for anybody willing to test and contribute new releases. This is just the beginning!

The Miniature Team</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Architecture</title>
    <id>2995</id>
    <revision>
      <id>27446</id>
      <timestamp>2010-01-26T14:31:09Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Miniature/Development/Architecture]]</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Developent/Architecture</title>
    <id>2996</id>
    <revision>
      <id>22385</id>
      <timestamp>2009-11-10T17:08:59Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Miniature/Developent/Architecture]] moved to [[Miniature/Development/Architecture]]: typo</comment>
      <text xml:space="preserve">#REDIRECT [[Miniature/Development/Architecture]]</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Development</title>
    <id>2958</id>
    <revision>
      <id>45577</id>
      <timestamp>2011-10-18T05:54:11Z</timestamp>
      <contributor>
        <ip>69.181.248.201</ip>
      </contributor>
      <comment>/* Miniature 0.5 release */ 12464</comment>
      <text xml:space="preserve">{{Miniature}}

 Most content of this page has moved to http://miniature-chess.org/
 We are waiting to get the BugzillaReports extension running to move the rest.

== Project status ==

Tasks for the next release get a HIGH priority. All the rest falls in the Backlog.

=== Miniature 0.5 release ===

Tasks COMMITTED for Miniature 0.5.

{{#bugzilla:id=7867,12345,12351,12359,12390,12394,12419,12420,12426,12435,12455,12456,12464
  |columns=id,severity,status,resolution,summary
  |sort=resolution,status,severity,id
}}

=== Backlog ===

{{#bugzilla:
  |columns=id,severity,priority,assignee,status,resolution,summary
  |product=Miniature
  |priority=Medium,Low,Unspecified
  |status=unconfirmed,new,assigned,needinfo,reopened
  |sort=status,id
}}

=== Easyfix (suited for newcomers) ===

{{#bugzilla:
  |columns=id,severity,priority,assignee,status,resolution,summary
  |product=Miniature
  |keywords=easyfix
  |status=unconfirmed,new,assigned,reopened
  |sort=priority,severity,priority,status,id
}}

Looking for more? There is more at the [http://miniature-chess.org/wiki/Wishlist Wishlist].</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Development</title>
    <id>2958</id>
    <revision>
      <id>45577</id>
      <timestamp>2011-10-18T05:54:11Z</timestamp>
      <contributor>
        <ip>69.181.248.201</ip>
      </contributor>
      <comment>/* Miniature 0.5 release */ 12464</comment>
      <text xml:space="preserve">{{Miniature}}

 Most content of this page has moved to http://miniature-chess.org/
 We are waiting to get the BugzillaReports extension running to move the rest.

== Project status ==

Tasks for the next release get a HIGH priority. All the rest falls in the Backlog.

=== Miniature 0.5 release ===

Tasks COMMITTED for Miniature 0.5.

{{#bugzilla:id=7867,12345,12351,12359,12390,12394,12419,12420,12426,12435,12455,12456,12464
  |columns=id,severity,status,resolution,summary
  |sort=resolution,status,severity,id
}}

=== Backlog ===

{{#bugzilla:
  |columns=id,severity,priority,assignee,status,resolution,summary
  |product=Miniature
  |priority=Medium,Low,Unspecified
  |status=unconfirmed,new,assigned,needinfo,reopened
  |sort=status,id
}}

=== Easyfix (suited for newcomers) ===

{{#bugzilla:
  |columns=id,severity,priority,assignee,status,resolution,summary
  |product=Miniature
  |keywords=easyfix
  |status=unconfirmed,new,assigned,reopened
  |sort=priority,severity,priority,status,id
}}

Looking for more? There is more at the [http://miniature-chess.org/wiki/Wishlist Wishlist].</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Development/Architecture</title>
    <id>2994</id>
    <revision>
      <id>35792</id>
      <timestamp>2010-06-14T13:29:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>remove custom category</comment>
      <text xml:space="preserve">[[Category:Miniature]]
{{out of date}}

== GUI ==
* Board
* Chat
* Player Cards
* Online Play

== Logic ==
* Game - the logic for a particular game, right now that would be just chess, but other board games could be possible too. (Chess based or other)
** The current game controller can update the board, using FEN strings (we might want to wrap the QStrings in a simple Position container, if we add parsing API to it) and knows about the UI.
* Pre-Game - How to find players, select a server or engine

== Domain ==
* Board - Represents the data structure of the board (duh)
** Can draw a position based on a valid FEN string, say &quot;rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1&quot; encodes the start position.
** How it works: Each piece is a QGraphicsSvgItem. This is useful since it allows fingertouchability. The board draws its position, meaning it hides all its piece children. It then asks the pieces pool manager for new pieces (the pool manager of course caches the QGraphicsSvgItems). The pieces are moved to the correct board position, and are made visible (again).
* Player - information about the other player, like online status, skill level
** Player &quot;cards&quot; would be part of this. The player info section on top of the board is fully editable with the Qt Designer, and we could need a good clock ...

== Communication ==
* ICS
* Bluetooth
* Telepathy
* Computer Chess Engine - an offline engine should be accessed the same way any online game is, the engine does not have to be in the same task

== Big Blocks Diagram ==
[[Image:Miniature_modules.png]]

1. MPosition  is the centre block, represents a position on the board. Could be encoded as a FEN string  or as a 8x8 array with pieces enum'ed or as something else.

2. MBoardView displays position and handles user interaction related to moving pieces. This is the only purpose of it.
 
3. MLocalLogic analyses new position with respect to validity of a move at the very least, communicates the position to other party. May communicate with external engine either locally or remote.

4. MRemoteLogic - feeds the position directly to the MBoardView from other party. We may want to add feature like game feed later to this block too.

5. MInfo is an information dialog, &quot;Illegal move&quot;, &quot;Draw proposed&quot;, &quot;You Win&quot; etc.   Could include timer, although I am not sure.

6. MExtra and MExtraView - everything else not directly related to a chess - chat, ratings, pictures etc.



The game flow could  look like this:

- current position goes to the MBoardView 

- player makes a move  

- MBoardView sends the new position to MLocalLogic

- MLocalLogic analyses validity of the move

- if the move is valid, the position to be sent to the other party ( eventually to its MRemoteLogic )

- If the move is not valid, the previous position is sent back to MBoardView, &quot;Illegal move&quot; dialog is displayed



* Arrows at the left side depict connection to an &quot;outside&quot;, whatever &quot;outside&quot; can be. Details about connections, &quot;outside&quot; etc will be defined later. Examples - another player, chess server, adapter to a local chess engine.   

--[[User:boris_r|boris_r]] 00:57, 15 November 2009 (UTC)

== Current design in master branch ==
The diagram shows classes and their associations. Furthermore, it shows signals and slots. The naming conventions should make clear which slot responds to which signal during runtime. The remaining public API has been left out, because it's all in a flux right now.
[[Image:MiniatureArchClassDiagram.png|thumb]]</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Development/CodingStyle</title>
    <id>5000</id>
    <revision>
      <id>45135</id>
      <timestamp>2011-09-03T11:11:32Z</timestamp>
      <contributor>
        <username>mikhas</username>
        <id>1376</id>
      </contributor>
      <comment>/* General */</comment>
      <text xml:space="preserve">{{Miniature}}
= General =
We mostly &lt;s&gt;try to follow the offical Qt Coding Guidelines, but with some exceptions.&lt;/s&gt; follow mikhas' personal coding style for Qt:
* We use whitespaces over tabs.
* Max. length of a source code line is 120 characters.
* We use (nested) namespaces.
* Type names are in CamelCase
* Method names are in mixedCase (= lowerCamelCase).
* Opening braces for code blocks before newlines, *except* opening braces for classes and methods.
* Variables use under_scores and are lower_cases, to make them stand out from other symbols.
** Member variables are prefixed with &quot;m_*&quot; if there is no private data class (PIMPL). In the latter case, &quot;d-&gt;&quot; already serves as a prefix. In the same sense, member variables in *Private classes have no prefix at all.
* Use initializer list and call construct each member explicitly.
* No boolean method parameters, unless it's a boolean property. Use enums instead.
* Use Q_SLOT, Q_SIGNAL as a method prefix.
* Impl files have a .cc extensions, header files use .h
* Use Qt containers over std containers.
* No explicit delete statements. Use QScopedPointer or C++'s inbuilt resource cleanup of member variables.
* Avoid QObject parent ownership - with C++ inbuilt mechanism, smart pointers and the concept of RAII, there is rarely need for it. It makes memory management more explicit and avoids another constant source of bugs.
** Try to use copyable value types instead of full-blown QObjects.
* Avoid singletons
** Singletons often become hidden dependencies of a class, making the class less reusable, as it increases coupling.
** Prefer dependency injection instead, this also increases testability.
* Public methods should be virtual.
** Makes classes easier to reuse, increases testability.
** Does not apply for structs.

= Naming conventions =

* Methods *do* something, that's why their names should always contain a verb (slots and signals count as methods, too).

    connect(this,  SIGNAL(someSignalChanged()),
            other, SLOT(onSomeSignalChanged()));

* typedef'd types *might* hint at their composed types (to emphasize their intended use), but avoid directly including the type information in the name:

  typedef QSharedPointer&lt;SomeClass&gt; SomeSharedClass; // Good! Sharing a resource is a concept.
  typedef QSharedPointer&lt;SomeClass&gt; SomeClassPtr; // Bad! What is a &quot;SomeClassPtr *some_variable&quot; now?

  typedef QList&lt;SomeClass&gt; SomeClassList; // still OK, since &quot;List&quot; is a concept, too.

* Avoid hungarian variable names.
* If in doubt, name slot &quot;onSomeSignalChanged&quot;. This makes for nice connection code:

  connect(some_signal_source, SIGNAL(theSignalWasEmitted()),
          some_receiver,      SLOT(onTheSignalWasEmitted()),
          Qt::UniqueConnection);

** Use normalized signal/slot signatures (no const keyword, no &amp;).

= Advanced =
* Method parameters should be easy to read:

  class SomeClass
  {
      void someMethod(SomeType arg1,
                      SomeOtherType arg2,
                      ...);

** Details:
*** Move each argument to a new line. This serves two goals: header files will be easier to scan (for humans), and you'll spot those ugly methods that scream &quot;refactor me!&quot; faster because they have more than 3 arguments. Also, because it *is* ugly, you might just go and refactor it, which will help everyone.

* Use const refs for arguments when possible, even if the type is COW (copy-on-write, for example QString).

* Don't return const refs for value types. Leave the decision to the caller.

* Conditionals

  if ((something &amp;&amp; somethingElse)
       || orPerhapsThis) {
      ...
  }

** Details:
*** Conditionals often contain bugs. Especially when the surrounding code gets refactored, those bugs simply slip in.
*** If a conditional needs to be wrapped, it starts to look ugly. Good! It might lead you to refactor the code, moving the condition itself into a predicate function (which has the nice effect to serve as a comment, if it has a good name).
*** Nested conditionals quickly start to look ugly with all those line separators, but you probably guessed it already: It's just another sign that this code might need some cleanup! Nested conditionals should be used rarely or hidden within dedicated methods.

* One space after keywords that could be mistaken as functions (if, for, ...).

* If you store a pointer to an object over which you do not intend to take ownership, then wrap this pointer in a QWeakPointer:

  class SomeOtherClass
  {
      QWeakPointer&lt;SomeType&gt; m_member;
  };

** Details:
*** QWeakPointers keep track of QObject deletion and set all referring QWeakPointers to zero, preventing dangling pointers. Especially when using signals &amp; slots, this is an often (and sometimes hard to spot!) source of bugs. With QWeakPointers, you can wrap your code with conditional guards like so:

  if (SomeType *var = m_member.data()) {
      // Do sth with var
      // This block *never* gets executed even if m_member was deleted elsewhere.
  }

* Assign 0 to pointers after deletion (or use QPointers).
* Always initialize type primitives (e.g., pointers) in the constructor's initializer list.
* Don't use forward declaration unless necessary. It is not your task to optimize the compiler. Also, Qt Creator gets confused by them.

== How to keep code testable (and hopefully, mostly bugfree) ==
We want to have testable code, therefore we also want to follow some advanced coding standards.

For that, I will try to list some really really useful advice from this document: http://www.research.att.com/~bs/JSF-AV-rules.pdf, a coding style document for C++. Bjarne Stroustrup worked on that one, yes.
 
* Keep methods at a reasonable length. In general: If it doesn't fit on a screen page it's probably too long. More precise: Every method longer than 200 lines of code (including comments, yes) is too long.
* Within a method, avoid a cyclomatic complexity higher than 20 (see Appendix A regarding AV Rule 3, pp. 65, &quot;Cyclomatic complexity measures the amount of decision logic in a single software module.&quot;, and the example).
* Avoid cyclic dependencies between classes/modules (Rationale: it's mostly an indicator for layer violations).</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Development/Instructions</title>
    <id>2984</id>
    <revision>
      <id>44992</id>
      <timestamp>2011-08-23T19:57:04Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>{{out of date}}</comment>
      <text xml:space="preserve">[[Category:Miniature|Development]]

{{out of date}}

== Two choices ==
A) Be hardcore and install sbox semi-manual using the CLI installer script,
B) Be clever and [http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/Platforms/Maemo/ download the GUI installer for the Maemo 5 SDK] from Forum Nokia!

=== You choose A ===
Continue with &quot;Getting started - plot summary&quot;.

=== You choose B ===
Choice B will reward you with a fully working sbox and two targets (X86, ARMEL) so you can directly jump installing the Qt libs in their sbox environment.

Inside sbox:
  [sbox-FREMANTLE_X86: ~] &gt; fakeroot apt-get install libqt4-maemo5-dev

Repeat for the ARMEL target:
  [sbox-FREMANTLE_X86: ~] sb-conf select FREMANTLE_ARMEL
  [sbox-FREMANTLE_ARMEL: ~] &gt; fakeroot apt-get install libqt4-maemo5-dev

Continue with &quot;Compiling Miniature inside Scratchbox&quot;.

== Getting started - plot summary ==
WARNING: This list does not necessarily explain what every step does, nor will it help you in case you run into problems! Also, I will assume your host machine has a i386 architecture (I use Jaunty, 64 bit installation instructions are not covered here).

=== Scratchbox installation ===
[[Documentation/Maemo5_Final_Installation|Read the director's cut]] if you run into problems, it has become very accurate! Again, you have been warned. This stuff is potentially dangerous.

On the host machine (= your computer, the other side is inside scratchbox, your cross compiling environment to create binaries/packages for the N900):
  $ sudo vi /etc/sysctl.conf
Copy and paste those three lines to the top:
  #maemo
  vm.vdso_enabled = 0
  vm.mmap_min_addr = 4096

(NB: Its &quot;abi.vsyscall32=0&quot; for Linux kernels newer than 2.6.25)

Save with &lt;ESC&gt; :wq (or use nano as an editor). Then reload sysctl.conf with:
  sudo sysctl -p

Start with the Maemo SDK installation:
  $ sudo apt-get install xserver-xephyr
  $ wget http://repository.maemo.org/stable/5.0/maemo-scratchbox-install_5.0.sh
  $ wget http://repository.maemo.org/stable/5.0/maemo-sdk-install_5.0.sh
  $ chmod a+x ./maemo-scratchbox-install_5.0.sh
  $ sudo ./maemo-scratchbox-install_5.0.sh -u USER
  $ newgrp sbox
  $ chmod a+x ./maemo-sdk-install_5.0.sh
  $ ./maemo-sdk-install_5.0.sh
  $ /scratchbox/login

Install Qt 4.6 [http://wiki.maemo.org/Qt here]

[http://tablets-dev.nokia.com/eula/index.php Get tokenized Maemo/Nokia repo here], enter token code and keep page open. You'll soon need the repo link.

Inside scratchbox:
  [sbox-FREMANTLE_X86: ~] &gt; fakeroot echo &quot;&lt;repo link from token page&gt;&quot; &gt;&gt; /etc/apt/sources.list
  [sbox-FREMANTLE_X86: ~] &gt; fakeroot apt-get update #simply repeat if it aborts in-between, ignore bad GPG
  [sbox-FREMANTLE_X86: ~] &gt; fakeroot apt-get install nokia-binaries #repeat if interrupted/incomplete
  [sbox-FREMANTLE_X86: ~] &gt; fakeroot apt-get install libqt4-maemo5-dev
  [sbox-FREMANTLE_X86: ~] &gt; fakeroot apt-get install maemo-debug-scripts #enables native-gdb and other neat stuff

Now do the same for the ARMEL target (= same architecture as device):
  [sbox-FREMANTLE_X86: ~] sb-conf select FREMANTLE_ARMEL
  [sbox-FREMANTLE_ARMEL: ~] &gt; fakeroot echo &quot;&lt;repo link from token page&gt;&quot; &gt;&gt; /etc/apt/sources.list
  [sbox-FREMANTLE_ARMEL: ~] &gt; fakeroot apt-get update #simply repeat if it aborts in-between, ignore bad GPG
  [sbox-FREMANTLE_ARMEL: ~] &gt; fakeroot apt-get install nokia-binaries #repeat if interrupted/incomplete
  [sbox-FREMANTLE_ARMEL: ~] &gt; fakeroot apt-get install libqt4-maemo5-dev

=== Compiling Miniature inside Scratchbox ===
Back to the FREMANTLE_X86 target, so you can run Miniature from inside scratchbox. Use your *private* gitorious url instead of the public clone url if you want to push changes, too.
  [sbox-FREMANTLE_ARMEL: ~] sb-conf select FREMANTLE_X86
  [sbox-FREMANTLE_X86: ~] mkdir source
  [sbox-FREMANTLE_X86: ~] cd source
  [sbox-FREMANTLE_X86: ~] git clone git://gitorious.org/miniature/miniature.git
  [sbox-FREMANTLE_X86: ~] cd miniature
  [sbox-FREMANTLE_X86: ~] ./autogen.sh QT_PATH=/opt/qt4-maemo5/bin &amp;&amp; make

On your host machine (i.e., outside of scratchbox, do not close your sb session though):
  $ Xephyr -ac -host-cursor -br -screen 480x800x16 :2

Back to scratchbox (keep the Xephyr server running, of course):
  [sbox-FREMANTLE_X86: ~] export DISPLAY=:2
  [sbox-FREMANTLE_X86: ~] af-sb-init.sh start
Lots of lines of useless information flow by, give it 10 seconds and test with &lt;ENTER&gt; whether you can continue typing. Then start miniature:
  [sbox-FREMANTLE_X86: ~] run-standalone.sh src/miniature

On your host machine, go to your Xephyr server and enjoy Miniature.

If you managed to do all this in under one hour consider yourself lucky - you saved yourself a alot of time!

=== Compiling binaries for the N900 ===
This is of course the cool part, and it also shows why we want to keep autotools/autotroll as our build system (I am serious).

Inside scratchbox:
  [sbox-FREMANTLE_X86: ~] sb-conf select FREMANTLE_ARMEL
  [sbox-FREMANTLE_ARMEL: ~] cd ~/source/miniature
  [sbox-FREMANTLE_ARMEL: ~] make distclean # dont worry if this fails
  [sbox-FREMANTLE_ARMEL: ~] ./autogen.sh QT_PATH=/opt/qt4-maemo5/bin &amp;&amp; make

Copy the binary onto the device (even if totally unsecure: let's just assume opensshd is installed and running on your N900):
  [sbox-FREMANTLE_ARMEL: ~] scp src/miniature root@&lt;IP_ADDRESS_OF_N900&gt;/home/user/
I usually copy the binary using scp *from* the device. It allows me to remove the ssh server and to only keep the client. But there are many more ways to get the binary onto the device. The only important part is to move the binary away from the FAT partition (that is why we used /home/user above) - you cannot mark files as executable on VFAT.

On the N900:
* Open a terminal
  $ cd ..
  $ ./miniature

Enjoy!

=== Closing scratchbox ===
Do *not* ignore this section, sb uses dark symlink magic which can mess up your system! This is extra advice to cleanly shutdown scratchbox after you're done.

Inside scratchbox:
  [sbox-FREMANTLE_X86: ~] sb-menu
Go to &quot;Killall&quot;, confirm with enter twice. Only now close your session

On your host:
  $ sudo /etc/init.d/scratchbox-core stop

If you get an error message be very careful with what you delete and what data you move around. Scratchbox might still have active symlink pointing to folders on your *host machine*. Your best solution, if you don't know what else to do, is a clean restart of your host machine!</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Development/Phase 0: Project setup</title>
    <id>2981</id>
    <revision>
      <id>28880</id>
      <timestamp>2010-02-11T12:16:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Miniature]]</comment>
      <text xml:space="preserve">The goal of this phase is to have all the elements in place to start the development, get feedback and contributors.

== Checklist ==
'''PROJECT SETUP DONE'''

# Code repository - DONE
# Garage project - DONE
# Developer list - DONE
# Documentation wiki - DONE
# User Talk thread - DONE

== Progress ==
* 2009-11-10: Phase 0 DONE
* 2009-11-10: Current documentation organized in [[Miniature/Development]] and subpages.
* 2009-11-10: [[Miniature/Development/Instructions]] to setup the Miniature development environment.
* 2009-11-06: Code repository created: http://gitorious.org/miniature - source code exists since the beginning.
* 2009-11-06: First post in the developer mailing list: https://garage.maemo.org/pipermail/chess-developer/
* 2009-11-03: [http://wiki.maemo.org/index.php?title=Miniature&amp;oldid=21793#Roadmap Roadmapping started].
* 2009-11-03: [http://wiki.maemo.org/index.php?title=Miniature&amp;oldid=21755#Development_Status Plann for first phases started].
* 2009-10-31: [[Miniature]] wiki page created.
* 2009-10-31: &quot;Miniature&quot; project name decided.
* 2009-10-31: Garage project created: https://garage.maemo.org/projects/chess/
* 2009-10-31: Talk thread created: [http://talk.maemo.org/showthread.php?t=33764 Contributors needed: the killer free chess game for Maemo]

== Backstage ==
# Setup development environment
## DONE: Miniature [http://gitorious.org/miniature/miniature is hosted @ Gitorious]. It uses the community port of Qt and [http://www.tsunanet.net/autotroll/ autotroll]. Warning: Miniature uses the no_keyword switch since some of the [http://amigadave.blogspot.com/2009/07/still-not-impressed-with-macros.html Qt macros have very common names that can lead to wierd debug sessions]. It's defensive programming, and not too bad, really.
# Setup communication channels
## DONE: ML @ Garage: [https://garage.maemo.org/pipermail/chess-developer/]
## DONE: IRC channel @ freenode.net: #miniature @ irc.freenode.net

About setting up the environment
* Preview of [http://wiki.forum.nokia.com/index.php/Qt_for_Maemo_Developers_Guide Qt for Maemo Developers Guide]
* [http://qt.nokia.com/maemo Official Qt 4.6 port for Maemo 5], including mailing list for developer feedback.
** A more comprehensive guide [http://www.forum.nokia.com/piazza/wiki/images/7/7a/Qt_for_Maemo_Developers_Guide_v0_5_Beta.pdf can be found here].
* The Qt 4.6 packages are about to land in extras-devel

[[Category:Miniature]]</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Development/Phase 2.0: Real-time P2P Miniature</title>
    <id>4992</id>
    <revision>
      <id>44981</id>
      <timestamp>2011-08-23T18:09:43Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Miniature/Development/Phase 2.0: Real-time P2P Miniature]] moved to [[Miniature/Wishlist/Real-time P2P Miniature]]: We don't have phases anymore</comment>
      <text xml:space="preserve">#REDIRECT [[Miniature/Wishlist/Real-time P2P Miniature]]</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Development/Phase 2.0: Real-time P2P Miniature/P2P-Protocol</title>
    <id>3928</id>
    <revision>
      <id>33020</id>
      <timestamp>2010-04-19T09:06:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>categorise</comment>
      <text xml:space="preserve">[[Category:Miniature]] 

Protocol draft for Miniature-P2P
 ================================
 
 We will assume that P1 and P2 have already found each other, use a Miniature
 client** and are able to chat (&quot;match nick&quot; in FICS).
 
 (**) For now. We will want to lift this restriction and offer Miniature/Telepathy-Chess
 plugins for other applications (in the far distant future, that is).


 A Chat
 ======
 
 * &quot;tell [nick|#channel] msg&quot;
   Why nick and #channel? Because later we migt want observers in P2P (so
   there'd be a channel #obs, because you dont want the players so see the chat
   of kibitzs).
 
 * http://www.freechess.org/Help/HelpFiles/tell.html
 
 * This command is the *only* one that will work in every situation, without
   exception. It does not change the current game state.


 B Game mode negotiation
 =======================
 
 * Both of the players can now propose a game mode, similar to
   http://www.freechess.org/Help/HelpFiles/seek.html
 
 * We can skip the parameters we dont support yet, so we need at least be able
   to send/parse this:
 
   &quot;seek [time inc] [rated|unrated] [white|black|any]&quot;
 
 * If the seeker offers &quot;any&quot; colors it means he his indifferent wrt. color choice.
   Such games the game can be accepted by people who had choosen black, white or
   any.
 
 * Examples:
   &quot;seek 5 0 r w&quot;:         5 minutes, no incr, rated, seeker wants white,
   &quot;seek 5 0 rated white&quot;: same as above,
   &quot;seek 2 10 u b&quot;:        2 minutes, 10s incr, unrated, seeker wants black
   &quot;seek 2 12 r a&quot;:	2 minutes, 12s incr, rated, seeker wants black or white
 
 
 * When the other player receives a seek, he can either accept the offer or
   ignore it. Both players could propose game modes sending as many seeks as
   they want, and at any time! But that would be silly in our case, so let's
   simplify this dramatically:
 
   1 host player (P1) sends seek,
     A client player (P2) accepts seek: send &quot;play&quot; → 2
     B P2 ignores seek: P2 can now send a seek
       A P1 accepts seek: send &quot;play&quot; → 2
       B P1 ignores seek: → 1
   2 game starts (http://www.freechess.org/Help/HelpFiles/play.html)
 
 * A seek is accepted by sending the same seek back (with the exception of color
   choosing, where &quot;any&quot; always matches).
 
 &gt;&gt;jukey&gt;&gt;
 There is possible a special situation if you opponent is not using
 Miniature (which not allows the players to choose if they want to start the game
 manually or automaticly) and don't automaticly accept games. See fourth
 paragraph in http://www.freechess.org/Help/HelpFiles/play.html :
 &quot;If the ad calls
 for a manual start, the other user will be notified that you are challenging
 him/her to a match; he/she then can accept or decline your offer to play that
 match.&quot;
 In this case the description above changes into:
   1 host player (P1) sends seek,
     A client player (P2) accepts seek: send &quot;play&quot; → 2
     B P2 ignores seek: P2 can now send a seek
       A P1 accepts seek: send &quot;play&quot; → 2
       	A P2 using manual as seek parameter accepts the offer to play from P1 → 2
       	B P2 using manual as seek parameter declines the offer to play from P1 → 1
       	C P2 using manual as seek parameter accepts the offer to play from P1
 						 but P1 is no more available (for example in an other game) → 3
       B P1 ignores seek: → 1
   2 game starts (http://www.freechess.org/Help/HelpFiles/play.html)
   3 P1 is shown as not ready to play
 &gt;&gt;mikhas&gt;&gt;
 telepathy has the concept of channels and resources. one channel would be the
 one of available players, and you would probably set your availibility much like in
 normal jabber chats if I understood that part correctly.
 &lt;&lt;mikhas&lt;&lt;
 &lt;&lt;jukey&lt;&lt; 


  C Moves
 =======
 
 * In FICS, once it is your turn, it is sufficient to enter &quot;e2-e4&quot; to move your
   pawn, for example.
 
 * FICS sends the new position to each player, obviously this simplifies sync
   issues. So I think we should send sth like &quot;move e2-e4; fen
   rnbqkbnr/pppppppp/8/8/4/P/3/8/PPPP1PPP/RNBQKBNR b&quot;. The FEN position string
   can be seen as checksum for the move, so we are able to always detect sync
   issues.  In case of an sync issue, the FEN position *overrides* the move, and
   the error is logged (maybe even send &quot;sync error&quot; back to sender, so both
   peers are aware). How to handle that beyond logging the error, I do not know.
   Let's see if it really happens first. The more general approach is to have
   the receiving peer always confirm a move with a checksum, based on the
   position info it was able to compute, and the sending peer then compares this
   checksum, and complains.
 
 * The peers compute the status (check, checkmate, ...) themselves, based on the
   position info send
 
 * Move requests that are sent when it is not the player's turn should
   be silently discarded.
 &gt;&gt;jukey&gt;&gt;
 Maybe the client also should not be able to send a request if it is
 the opponents move.
 &gt;&gt;mikhas&gt;&gt;
 Not really needed, and one should not rely on that because of the inherent raciness.
 It is better to mostly define the protocol from the &quot;what data should I accept in
 which state&quot; point of view.
 &lt;&lt;mikhas&lt;&lt;
 &lt;&lt;jukey&lt;&lt;


 D Takeback
 ==========
 * FICS is a bit funny here, showing its age wrt verbose &amp; racy protocol
   implementation &quot;takeback 2 - accept - withdraw&quot;, note how accept and withdraw
   can happen at the same time.
   http://www.freechess.org/Help/HelpFiles/takeback.html
 
 * Again, let's simplify:
   &quot;takeback n&quot;, request to take back n moves, answered by &quot;takeback n&quot; (the
   same n) to accept. Now it doesn't even matter who sends it first.
   1 P1 sends &quot;takeback n&quot;,
     A P2 accepts: send &quot;takeback n&quot; → 2
     B P2 declines: nothing happens → 3.
   2 N half-moves are taken back.
   3 P2 or P1 sends his next move (notice how this can clash with a &quot;takeback n&quot;
     confirmation in case it was P1's turn, in which case the takeback
     confirmation should win, as P2 is free to ignore P1's move after confirming
     the takeback).
 
 * Same as with moves, we send: &quot;takeback n; fen current/fen/pos/ w|b&quot;, so that
   the fen position is the one to be expected after takeback n would be
   performed (assuming we go without the general approach of sending checksums
   after every position change).
 
 * A takeback request can be simply ignored without further actions.


 E Draw
 ======
 * http://www.freechess.org/Help/HelpFiles/draw.html
 
 * We don't support claiming a draw yet, but that will be easy to implement:
   before the other peer gets chance to say ok, &quot;draw&quot;, we query the logic
   analyzer, which is entitled to enforce a technical &quot;draw&quot;.
 
 * Otherwise, same as in takeback, without position sending:
   1 P1 sends &quot;draw&quot;,
     A P2 accepts: send &quot;draw&quot; → 2
     B P2 declines: nothing happens → 3.
   2 Game ends in draw.
   3 P1 sends his next move (P2 is not allowed to demand a draw if it is not his
     turn, also, same conflict resolution as in takeback: draw confirmation wins
     over P1's move, and P2 is free to ignore the move).


 F Resign
 ========
 * http://www.freechess.org/Help/HelpFiles/resign.html
 
 * Players can resign at any time, I guess? No confirmation by other player
   needed, game ends.


 G Adjourn
 =========
 * http://www.freechess.org/Help/HelpFiles/adjourn.html
 
 * I like the 2 cases presented on FICS, esp. the courtesy adjourn which handles
   time-outs gracefully.
 
 * Similar to draw and takeback:
   1 P1 ran out of time, unresponsive
     A P2 sends &quot;adjourn&quot; → 3
     (B P2 claims the win, not important yet for our case)
   2 P1 sends &quot;adjourn&quot;
     A P2 accepts: send &quot;adjourn&quot; → 3
     B P2 declines: nothing happens
   3 Game is adjourned, both sides save the current position locally, game ends.</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Development/Phase 2.2: Play over Bluetooth</title>
    <id>4991</id>
    <revision>
      <id>44979</id>
      <timestamp>2011-08-23T18:05:47Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Miniature/Development/Phase 2.2: Play over Bluetooth]] moved to [[Miniature/Wishlist/Play over Bluetooth]]: We don't have phases anymore</comment>
      <text xml:space="preserve">#REDIRECT [[Miniature/Wishlist/Play over Bluetooth]]</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Development/Phase 2: Real-time P2P chess</title>
    <id>3376</id>
    <revision>
      <id>26349</id>
      <timestamp>2010-01-11T17:31:02Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Miniature/Development/Phase 2: Real-time P2P chess]] moved to [[Miniature/Development/Phase 2.0: Real-time P2P Miniature]]: Page for a specific phase</comment>
      <text xml:space="preserve">#REDIRECT [[Miniature/Development/Phase 2.0: Real-time P2P Miniature]]</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Development/Phase x.x: Default engine selection</title>
    <id>4990</id>
    <revision>
      <id>44976</id>
      <timestamp>2011-08-23T17:56:57Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Miniature/Development/Phase x.x: Default engine selection]] moved to [[Miniature/Wishlist/Default engine selection]]: We are not doing phases anymore</comment>
      <text xml:space="preserve">#REDIRECT [[Miniature/Wishlist/Default engine selection]]</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Development/Qt4 for Maemo5</title>
    <id>3003</id>
    <revision>
      <id>23425</id>
      <timestamp>2009-11-26T19:58:23Z</timestamp>
      <contributor>
        <username>mikhas</username>
        <id>1376</id>
      </contributor>
      <text xml:space="preserve">[[Category:Miniature]]
Inside scratchbox (getting extra repos):
  [sbox-FREMANTLE_X86: ~] &gt; echo &quot;deb http://repository.maemo.org/extras/ fremantle free non-free&quot; &gt; /etc/apt/sources.list.d/extras.list
  [sbox-FREMANTLE_X86: ~] &gt; echo &quot;deb-src http://repository.maemo.org/extras/ fremantle free&quot; &gt;&gt; /etc/apt/sources.list.d/extras.list
  [sbox-FREMANTLE_X86: ~] &gt; echo &quot;deb http://repository.maemo.org/extras-devel fremantle free non-free&quot; &gt; /etc/apt/sources.list.d/extras-devel.list
  [sbox-FREMANTLE_X86: ~] &gt; fakeroot echo &quot;deb-src http://repository.maemo.org/extras-devel fremantle free&quot; &gt;&gt; /etc/apt/sources.list.d/extras-devel.list
  [sbox-FREMANTLE_X86: ~] &gt; fakeroot apt-get update
  [sbox-FREMANTLE_X86: ~] &gt; fakeroot apt-get remove libqt4*
  [sbox-FREMANTLE_X86: ~] &gt; fakeroot apt-get install libqt4-maemo5-dev

Assuming you have checked out Miniature to ~/sources/miniature:
  [sbox-FREMANTLE_X86: ~] &gt; cd ~/sources/miniature
  [sbox-FREMANTLE_X86: ~] &gt; make distclean #dont worry if it fails
  [sbox-FREMANTLE_X86: ~] &gt; ./autogen.sh QT_PATH=/opt/qt4-maemo5/bin
  [sbox-FREMANTLE_X86: ~] &gt; make

Now the UI widgets (and menues) will look much more hildonized!

On the N900, open a terminal (assuming you installed the extras/extras-devel catalog files on it):
  $ sudo gainroot
  $ apt-get update
  $ apt-get install libqt4-maemo5-dev</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Development/chess clock function</title>
    <id>3079</id>
    <revision>
      <id>24735</id>
      <timestamp>2009-12-17T10:30:18Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <text xml:space="preserve">==Existing application: game clock==
There is a python application which is running at least on maemo4 tablets. (i'll try it out on the n900 if I have some time...). It's called gameclock and you can download the souces [http://packages.debian.org/unstable/main/gameclock here].

The user interface looks not very nice and the buttons to switch to opponent's time after a move is very small. But there is a clock logic and also different game modes possible so maybe there can be used some stuff for a function in Miniature too.

==Miniature function: chess clock==
===Use cases===
The N900 doesn't have a very stable stand so I think the normale case to use it as chess clock would be to put it on a table with the screen on top.

===User Interface===
A chess clock at least needs two buttons (Button1 and Button2 in the picture below) to stop the time counter for player one and to start the time counter for player two. So my proposal would be to use a half of the full screen to switch as button.

N900 internet tablet screen
 +-----------+ \
 |           | |
 |  Time P1: | |
 |  02:12    |  &gt; This area is Button1
 |           | |
 |           | |
 +-----------+&lt;
 |           | |
 |  Time P2: | |
 |  00:01    |  &gt; This area is Button2
 |           | |
 |           | |
 +-----------+ /
===More input===
Please also have a look to this [http://talk.maemo.org/showthread.php?t=34886&amp;highlight=game+clock thread about the idea of having a game clock].
[[Category:Miniature]]</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Development/testcases</title>
    <id>5012</id>
    <revision>
      <id>45347</id>
      <timestamp>2011-09-16T21:51:24Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <comment>Replacing page with '{{Miniature}}

 '''We are moving to http://miniature-chess.org/''''</comment>
      <text xml:space="preserve">{{Miniature}}

 '''We are moving to http://miniature-chess.org/'''</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Development/testcases/ficslog122</title>
    <id>5015</id>
    <revision>
      <id>45276</id>
      <timestamp>2011-09-12T20:42:13Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <minor/>
      <text xml:space="preserve"> FICS: &quot;fics% &quot; 
 FICS: &quot;okmko (++++) seeking 90 0 unrated standard (&quot;play 104&quot; to respond)&quot; 
 FICS: &quot;fics% &quot; 
 FICS: &quot;Creating: okmko (++++) GuestWKWG (++++) unrated standard 90 0&quot; 
 FICS: &quot;{Game 598 (okmko vs. GuestWKWG) Creating unrated standard match.}&quot; 
 FICS: &quot;�&quot; 
 FICS: &quot;&lt;12&gt; rnbqkbnr pppppppp -------- -------- -------- -------- PPPPPPPP RNBQKBNR W -1 1 1 1 1 0 598 okmko GuestWKWG -1 90 0 39 39 5400 5400 1 none (0:00) none 1 0 0&quot; 
 FICS: &quot;fics% &quot; 
 FICS: &quot;Your opponent has aborted the game on move one.&quot; 
 FICS: &quot;{Game 598 (okmko vs. GuestWKWG) Game aborted on move 1} *&quot;</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Development/testcases/ficslog141</title>
    <id>5017</id>
    <revision>
      <id>45281</id>
      <timestamp>2011-09-13T06:34:46Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <comment>New page:  FICS: &quot;{Game 104 (GuestFHBM vs. okmko) Creating unrated standard match.}&quot;   FICS: &quot;�&quot;   FICS: &quot;&lt;12&gt; rnbqkbnr pppppppp -------- -------- -------- -------- PPPPPPPP RNBQKBNR W -1 1 1 1 1 ...</comment>
      <text xml:space="preserve"> FICS: &quot;{Game 104 (GuestFHBM vs. okmko) Creating unrated standard match.}&quot; 
 FICS: &quot;�&quot; 
 FICS: &quot;&lt;12&gt; rnbqkbnr pppppppp -------- -------- -------- -------- PPPPPPPP RNBQKBNR W -1 1 1 1 1 0 104 GuestFHBM okmko 1 67 89 39 39 4020 4020 1 none (0:00) none 0 0 0&quot; 
 void Game::Frontend::Miniature::confirmMove() move confirmed ... 
 virtual void Game::Command::Move::exec(Game::Dispatcher*, Game::AbstractEngine*) &quot;e2e4&quot; 
 FICS: &quot;fics% �&quot; 
 FICS: &quot;&lt;12&gt; rnbqkbnr pppppppp -------- -------- ----P--- -------- PPPP-PPP RNBQKBNR B 4 1 1 1 1 0 104 GuestFHBM okmko -1 67 89 39 39 4020 4020 1 P/e2-e4 (0:00) e4 0 0 0&quot; 
 FICS: &quot;fics% �&quot; 
 FICS: &quot;&lt;12&gt; rnbqkbnr pp-ppppp -------- --p----- ----P--- -------- PPPP-PPP RNBQKBNR W 2 1 1 1 1 0 104 GuestFHBM okmko 1 67 89 39 39 4020 4020 2 P/c7-c5 (0:00) c5 0 1 0&quot; 
 FICS: &quot;fics% &quot; 
 FICS: &quot;VonClangEnBanger(U)(53): your the man&quot; 
 FICS: &quot;fics% &quot; 
 FICS: &quot;VonClangEnBanger(U)(53): who should know&quot; 
 void Game::Frontend::Miniature::confirmMove() move confirmed ... 
 virtual void Game::Command::Move::exec(Game::Dispatcher*, Game::AbstractEngine*) &quot;g1f3&quot; 
 FICS: &quot;fics% �&quot; 
 FICS: &quot;&lt;12&gt; rnbqkbnr pp-ppppp -------- --p----- ----P--- -----N-- PPPP-PPP RNBQKB-R B -1 1 1 1 1 1 104 GuestFHBM okmko -1 67 89 39 39 4088 4020 2 N/g1-f3 (0:21) Nf3 0 1 0&quot; 
 FICS: &quot;fics% &quot; 
 FICS: &quot;VonClangEnBanger(U)(53): the HoudiniTest man&quot; 
 FICS: &quot;fics% &quot; 
 FICS: &quot;okmko would like to abort the game; type &quot;abort&quot; to accept.&quot;</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Policies</title>
    <id>2997</id>
    <revision>
      <id>34159</id>
      <timestamp>2010-05-10T23:34:23Z</timestamp>
      <contributor>
        <username>mikhas</username>
        <id>1376</id>
      </contributor>
      <comment>/* Advanced coding style */</comment>
      <text xml:space="preserve">[[Category:Miniature]]
This is a list of things we agreed upon in the Miniature team.
TODO: List the items that are *not* fully agreed upon yet!!

= License =
Miniature will use the [http://www.gnu.org/licenses/gpl-2.0.html GPL 2 (or later)] for source and header files. For art contribution, Miniature will use the [http://creativecommons.org/licenses/by-sa/3.0/ CC-by-sa].

= Coding style =
We do not need project-wide consistency, but be at least consistent inside a module and/or file.

Note: the current code violates this style. We will fix it.

We mostly &lt;s&gt;try to follow the offical Qt Coding Guidelines, but with some exceptions.&lt;/s&gt; follow mikhas' personal coding style for Qt:
* We use whitespaces over tabs.
* Max. length of a source code line is 120 characters.
* We use a Miniature namespace for all our components, and all our types(classes + typedefs) start with M.
** Exception: value types (containers, flags) start with a lowercase m, for example mMoveFlags or mHalfMove. Value types are useful when you need copy construction and copy assignment. In general though, objects are *not* copyable! MPosition is the biggest violation to this rule, feel free to fix it!
* Types are in MCamelCase, unless they are mValueTypes (see above).
* Method names are in mixedCase (= lowerCamelCase).
* Braces after newlines.
* Variable names should be visually different from types (even if you use an editor w/o syntax highlighting), there_fore they have under_scores, no caps, no lower_Camel_Case.
* Member variables should be visible, even if your editor does not highlight member variables for you. That's why we prefix them with m_*.
* We use no_keywords, for now. We want to avoid those function-style macros.
* Impl files have a .cc extensions, header files use .h
* Use Qt containers over std containers.

== Naming conventions ==

* Methods *do* something, that's why their names should always contain a verb (slots and signals count as methods, too).

* typedef'd types *might* hint at their composed types (to emphasize their intended use), but avoid directly including the type information in the name:

  typedef QSharedPointer&lt;SomeClass&gt; SomeSharedClass; // Good! Sharing a resource is a concept.
  typedef QSharedPointer&lt;SomeClass&gt; SomeClassPtr; // Bad! What is a &quot;SomeClassPtr *some_variable&quot; now?

  typedef QList&lt;SomeClass&gt; SomeClassList; // still OK, since &quot;List&quot; is a concept, too.

* Avoid hungarian variable names.

== Advanced coding style ==

* Signal and slot connections should be easy to read, as they are a constant source of bugs:

  connect(some_signal_source, SIGNAL(theSignalWasEmitted()),
          some_receiver,      SLOT(onTheSignalWasEmitted()),
          Qt::UniqueConnection);

** Details:
*** slots should follow the signal's name, if possible (slot prefix: on*).
*** Indentation is one line for the source/signal, one for the receiver/slot and another one for the connection type.
*** SIGNAL and SLOT should start in the same column (together with the slot's name prefix it will neatly align the parameters etc.).
*** Use normalized signal/slot signatures (no const keyword, no &amp;).
*** Use Qt::UniqueConnection for the connection type (it's *not* the default connection type), since most of the time, it is exactly what you want. A double connection between the same source/receiver and SIGNAL/SLOT is often a bug, and this can lead to weird behaviour if the same connection code is called over and over again, leading to what I call &quot;connection leaks&quot;. With Qt::UniqueConnection, you clearly state the intent of the connection type, while also preventing those connection leaks.

* Method parameters in header files (*not* needed in impl files) should be easy to read:

  class SomeClass
  {
      void someMethod(SomeType arg1,
                      SomeOtherType arg2,
                      ...);

** Details:
*** Move each argument to a new line. This serves two goals: header files will be easier to scan (for humans), and you'll spot those ugly methods that scream &quot;refactor me!&quot; faster because they have more than 3 arguments. Also, because it *is* ugly, you might just go and refactor it, which will help everyone.

* Use const refs for arguments when possible, even if the type is COW (copy-on-write, for example QString).

* Conditionals
** One line before and after conditional blocks, to visually separate it from the surrounding code.
** It is OK for single-line conditional blocks to omit the braces (because of the extra newlines).
** &amp;&amp; and || belong on the next line, if the condition needs to be wrapped (indented by 4 spaces). Put braces around complex conditions, to logically group them together (and to prevent operator precendence bugs, too):

  if ((something &amp;&amp; somethingElse)
       || orPerhapsThis)
      ...

** Details:
*** Conditionals often contain bugs. Especially when the surrounding code gets refactored, those bugs simply slip in.
*** If a conditional needs to be wrapped, it starts to look ugly. Good! It might lead you to refactor the code, moving the condition itself into a predicate function (which has the nice effect to serve as a comment, if it has a good name).
*** Nested conditionals quickly start to look ugly with all those line separators, but you probably guessed it already: It's just another sign that this code might need some cleanup! Nested conditionals should be used rarely or hidden within dedicated methods.

* One space after keywords that could be mistaken as functions (if, for, ...).

* If you store a pointer to an object over which you do not intend to take ownership, then wrap this pointer in a QPointer:

  class SomeOtherClass
  {
      QPointer&lt;SomeType&gt; m_member;
  }

** Details:
*** QPointers keep track of object deletion and set all referring QPointers to zero, preventing dangling pointers. Especially when using signals &amp; slots, this is an often (and sometimes hard to spot!) source of bugs. With QPointers, you can wrap your code with conditional guards like so:

  if (m_member)
  {
      // Do sth with m_member object.
      // This block *never* gets executed even if m_member was deleted elsewhere.
  }

* Assign 0 to pointers after deletion (or use QPointers).
* Always initialize type primitives (e.g., pointers) in the constructor's initializer list.
* Don't use forward declaration unless necessary. It is not your task to optimize the compiler. Also, Qt Creator gets confused by them.

== How to keep code testable (and hopefully, mostly bugfree) ==
We want to have testable code, therefore we also want to follow some advanced coding standards.

For that, I will try to list some really really useful advice from this document: http://www.research.att.com/~bs/JSF-AV-rules.pdf, a coding style document for C++. Bjarne Stroustrup worked on that one, yes.
 
* Keep methods at a reasonable length. In general: If it doesn't fit on a screen page it's probably too long. More precise: Every method longer than 200 lines of code (including comments, yes) is too long.
* Within a method, avoid a cyclomatic complexity higher than 20 (see Appendix A regarding AV Rule 3, pp. 65, &quot;Cyclomatic complexity measures the amount of decision logic in a single software module.&quot;, and the example).
* Avoid cyclic dependencies between classes/modules (Rationale: it's mostly an indicator for layer violations).</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Releases</title>
    <id>5001</id>
    <revision>
      <id>45340</id>
      <timestamp>2011-09-16T16:04:49Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <text xml:space="preserve">This page has moved to http://miniature-chess.org/wiki/Category:Releases</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Wishlist</title>
    <id>4989</id>
    <revision>
      <id>45332</id>
      <timestamp>2011-09-15T21:33:44Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">Page moved to http://miniature-chess.org/wiki/Wishlist</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Wishlist/Default engine selection</title>
    <id>2992</id>
    <revision>
      <id>44975</id>
      <timestamp>2011-08-23T17:56:57Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <minor/>
      <comment>[[Miniature/Development/Phase x.x: Default engine selection]] moved to [[Miniature/Wishlist/Default engine selection]]: We are not doing phases anymore</comment>
      <text xml:space="preserve">[[Category:Miniature]]
== Checklist ==

== Progress ==

== Mockups ==

== Backstage ==
* What starting point for game analysis?
** [http://scid.sourceforge.net/ Scid] ([http://packages.debian.org/lenny/scid see dependencies]) would be nice by itself and as gateway to [http://www.craftychess.com/ Crafty] ([http://packages.debian.org/lenny/crafty see dependencies]) and other engines.--[[User:qgil|qgil]] 06:22, 3 November 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Miniature/Wishlist/Real-time P2P Miniature</title>
    <id>3338</id>
    <revision>
      <id>44980</id>
      <timestamp>2011-08-23T18:09:43Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <minor/>
      <comment>[[Miniature/Development/Phase 2.0: Real-time P2P Miniature]] moved to [[Miniature/Wishlist/Real-time P2P Miniature]]: We don't have phases anymore</comment>
      <text xml:space="preserve">==Goal==
Play chess online directly against a contact, without a chess server in between.

To be implemented using [http://en.wikipedia.org/wiki/Telepathy_%28software%29 Telepathy] a framework supported in the Maemo platform. The intent is to not only have network play via Telepathy working for Miniature, but to make such a Telepathy framework available for other games, too (targeting the Maemo platform).

==Checklist==
# Session negotiation
# Protocol
# Save/resume
# Error recovery
# Calendar integration
# Status notification
# Observing games

==Progress==
* 2010-01-12: Preparing tp-qt4, patches for building on maemo 5 http://bugs.freedesktop.org/show_bug.cgi?id=26002 http://bugs.freedesktop.org/show_bug.cgi?id=26004
* 2010-01-11: Preparing scratchbox

==Mockups==

==Backstage==

=== Session negotiation ===
How would two peers start a game of chess via network?
# P1 selects contact - Telepathy needs to know which contacts have Miniature installed?
# P2 receives an offer to play a game of chess and can accept/reject - Is this UI already part of Miniature?
## P2 rejects: P1 receives a message that 1) tells P1's list of Miniature contacts that P2 is not available for a certain amout of time, 2) cancels the P2P game dialog for P1.
## P2 accepts: P1 receives a message that P2 accepted and both advance to the next screen (for now, that's the chess board), and the actual game start is already handled by the XBoard protocol.

=== Protocol ===
There is a [[/P2P-Protocol|P2P-Protocol draft]] made by Michael Hasselmann. Please feel free to comment!

It is safe to assume that each game has some own internal protocol to transfer game states. For chess engines, [http://www.gnu.org/software/xboard/engine-intf.html XBoard/WinBoard] is the standard protocol. But we also need to be able to interface with [http://www.freechess.org/Help/AllFiles.html FICS]/[ftp://ftp.chessclub.com/pub/icc/formats/formats.txt ICS].

Interestingly enough, most chess bots that play on FICS probably don't implement the network protocol themselves but instead use XBoard. XBoard then interfaces with FICS for them.

=== Save/resume ===
Players should be able to save a game and resume it another day. Part of Session negotiation or an own item?

=== Error recovery ===
When to abort a connection etc.

=== Calendar integration ===
Players should be able to arrange a game at a certain time and see their scheduled chess games in the Maemo calendar. Part of this phase or a phase in its own? 

=== Status notification ===
Tell other users in my contacts list about my chess game.

=== Observing games ===
Observing games is an important aspect in social gaming. On FICS, observers are known as kibitz. Can that be done with Telepathy, too?
:A use case with a phase on its own? --[[User:qgil|qgil]] 17:37, 11 January 2010 (UTC)

=== Telepathy tubes Details ===
* Compiling Miniature for maemo (it's really needed for now?)
* Compiling telepathy-qt4 for maemo (?)
* Creating session controller, connection server
* Getting local contact list
* Creating tubes connection between clients to sending Miniature data's

[[Category:Miniature]]</text>
    </revision>
  </page>
  <page>
    <title>Miniature/archive</title>
    <id>4988</id>
    <revision>
      <id>44993</id>
      <timestamp>2011-08-23T20:06:55Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <text xml:space="preserve">== Archived news ==

* 2010-07-12: P2P support available. Play against other Miniature users. Full changelog [http://maemo.org/packages/view/miniature/ here]
* 2009-12-21: Miniature learns to use animations (0.1.5-1). Miniature is now using exclusive features of Qt 4.6.
* 2009-12-20: Miniature got a [https://bugs.maemo.org/buglist.cgi?product=Miniature bug tracker component], thanks to André! 
* 2009-12-18 Miniature 0.1.3-1 released for [http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/miniature/0.1.3-1 Maemo] and [https://launchpad.net/~michael-hasselmann/+archive/miniature/+sourcepub/904498/+listing-archive-extra Ubuntu], preparing for the offline mode.
* 2009-11-28: [https://garage.maemo.org/pipermail/chess-developer/2009-November/000079.html First bug report].  :)
* 2009-11-27: Miniature 0.1.2-1 released for [http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/miniature/0.1.2-1 Maemo] and [https://launchpad.net/~michael-hasselmann/+archive/miniature/+sourcepub/882639/+listing-archive-extra Ubuntu] with first Chess rules applied.
* 2009-11-26 [https://garage.maemo.org/pipermail/chess-developer/2009-November/000077.html Another logic analyzer update]: move rules for all pieces are available, pawns promote to queens and black and white take turns.
* 2009-11-25 [https://garage.maemo.org/pipermail/chess-developer/2009-November/000074.html Logic analyzer update]: only king moves and pawns' en-passant captures are missing. 
* 2009-11-23 Miniature starts [http://talk.maemo.org/showthread.php?p=386616#post386616 learning chess with rooks and knights]
* 2009-11-17 [http://talk.maemo.org/showthread.php?p=378870#post378870 Some shortcuts taken] in order to get faster the minimum set of features.
* 2009-11-17: [https://launchpad.net/~michael-hasselmann/+archive/miniature/+packages Miniature available for your desktop PC]
* 2009-11-16: A first &amp; dummy [http://maemo.org/packages/view/miniature/ .deb package of Miniature] is available in Maemo 5 extras-devel.
* 2009-11-11: &quot;(10:52:48 PM) mikhas: well, it's confirmed: Miniature runs on Qt 4.6, on the N900&quot; 
* 2009-11-15: Basic Finger UI for board implemented - pieces can be moved freely.
* 2009-11-10: Talk thread started: [http://talk.maemo.org/showthread.php?p=371747 Miniature development: Play chess games online]
* 2009-11-09: [http://taschenorakel.de/michael/2009/11/09/miniature-it-moves/ Miniature - it moves!], first blog post from Michael Hasselmann.
* 2009-11-08: Miniature now has the following components: a main window, a board, a game controller and a scene view for the UI. It can play any game that is stored in a sequence of FEN strings.
* 2009-11-08: [http://talk.maemo.org/showpost.php?p=368538&amp;postcount=117 First running example] mimicking the &quot;first realistic mockup&quot;.
* 2009-11-07: [http://gitorious.org/miniature/miniature/trees/master/data/figures Piece set committed], the same [http://commons.wikimedia.org/wiki/Standard_chess_diagram used by Wikipedia].
* 2009-11-06: Code repository created: http://gitorious.org/miniature - source code exists since the beginning.
* 2009-11-06: [http://wiki.maemo.org/images/2/26/Miniature-playgame-portrait.png First realistic mockup for playing basic online chess] (portrait).
* 2009-11-04: [http://talk.maemo.org/showpost.php?p=365071&amp;postcount=70 Portrait mode gets priority] to maximize board size + chats won't come till later.
* 2009-10-31: First idea proposed in a Talk thread: [http://talk.maemo.org/showthread.php?t=33764 Contributors needed: the killer free chess game for Maemo]

== Miniature for Maemo 5 (unstable) ==

[http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/miniature/0.1.3-1 Miniature 0.1.3-1] is available in Maemo 5 [[Extras-devel]], a repository recommended only to developers. End users will do good staying far from it, but there is a [https://launchpad.net/~michael-hasselmann/+archive/miniature launchpad PPA] with irregularly updated Ubuntu 9.04 packages.

New features in the last version:
* Candidate UI to move pieces: one click to select piece, second click to select destination square and click to an external button to confirm the move. Pieces and squares can be changed at will before clicking the confirmation button.
* Checks are detected now.
* Backend fixes improving the responsiveness of the moves.

Features implemented in previous releases:
* Boot a screen in portrait mode.
* Display a nice-looking board.
* Set the pieces in starting position.
* Enforce basic chess rules except:
** Checkmate
** Stalemate
** Castling
** En-passant
** Pawn promotion (works in the desktop version)

=== Old screenshots ===

This is how the real application will look like in v0.1.x-x.
&lt;gallery widths=200px&gt;
Image:Miniature-between_the_turns.png |&lt;div style=&quot;padding:0em .5em;&quot;&gt;Cool little animation to show that pieces turn around between the moves&lt;/div&gt;
Image:Miniature-Down_under.png |&lt;div style=&quot;padding:0em .5em;&quot;&gt;Situation after white's move: The player with the black pieces also is able to see it's pieces from his/her point of view&lt;/div&gt;
Image:Miniature-20091219-1.png |&lt;div style=&quot;padding:0em .5em;&quot;&gt;Starting position for human vs human, face to face.&lt;/div&gt;
Image:Screenshot-20091219-2.png |&lt;div style=&quot;padding:0em .5em;&quot;&gt;Selecting one piece to move.&lt;/div&gt;
Image:Miniature-20091219-3.png |&lt;div style=&quot;padding:0em .5em;&quot;&gt;Selecting destination square.&lt;/div&gt;
Image:Miniature_rooks_and_knights.jpg|&lt;div style=&quot;padding:0em .5em;&quot;&gt;Miniature learns chess in korius' development branch. Here rooks and knights know how to behave with each other.&lt;/div&gt;
&lt;/div&gt;
&lt;/gallery&gt;

=== Old mockups ===
How things should look like in the future. (We are looking for real designers!)

&lt;gallery widths=200px&gt;
Image:Miniature-playgame-portrait-start.png|&lt;div style=&quot;padding:0em .5em;&quot;&gt;First boot.&lt;/div&gt;
&lt;/gallery&gt;

[[Image:Miniature_normal_mode.jpg|frameless|main-l: main window in landscape mode (needs update)]] [[Image:Miniature_normal_options.jpg|frameless|menu layout]]  

Very old. ;) 

[[Image:Miniatura_alternative.png|frameless|deprecated]]

[[Image:20091219_001.jpg|frameless|main-p: new UI concept: main window in portrait mode]]

== Users ==

Do you want to test Miniature and it's cool possibility to play against other people over the air? Or do you want to make simply a match versus someone who is part of the community?

-&gt; [[Miniature/users|A list of users]] should help you to get an Opponent.



== References ==
* [http://www.craftychess.com/ Crafty] is a free, open-source computer chess program.
* [http://www.v7f.eu/public/n800/chess/ EBoard and Crafty] for the N810/N800/N770 - [http://maemo.org/downloads/product/OS2007/chess OS2007 Downloads page].
* [http://knights.sourceforge.net/ Knights] aimed to be the ultimate chess resource for the K Desktop Environment... years ago.
* [http://pacaq.sourceforge.net/ pacaq] is a chess game visualizing and analysis tool done with the Maemo 4.1 Qt4 port - [http://talk.maemo.org/showthread.php?t=21793 Talk thread].
** From all programs on this list, this is the only one were reading the code is worth your time. 
* [http://scid.sourceforge.net/ SCID], a chess database application for Windows, Linux and Mac OS operating systems. 
** See also [http://scid.sourceforge.net/scidpocket.html SCID Pocket] 
* [http://www.gnu.org/software/xboard/ Xboard] is a graphical user interface for chess in all its major forms.
* [http://www.freechess.org/ freechess.org] Website of the Free Intrnet Chess Server (FICS)
** [http://www.freechess.org/Help/AllFiles.html commands reference]</text>
    </revision>
  </page>
  <page>
    <title>Miniature/users</title>
    <id>4335</id>
    <revision>
      <id>37572</id>
      <timestamp>2010-08-06T20:05:36Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <text xml:space="preserve">*'''jukey'''
**Jabber: jukey@jabber.ccc.org
**Skype: ju-key
**FICS-Rating (2010-08-06):
           rating     RD      win    loss    draw   total   best
 Blitz      1084     49.3     304     565      37     906   1119 (20-Jul-2010)
 Standard   1255    274.4       2       4       0       6
**99% of the games are done on my N800 or N900 Internet ablet using eboard. :)


*'''Enter your Name and Accounts here'''

[[Category:Miniature]]</text>
    </revision>
  </page>
  <page>
    <title>Mirrors</title>
    <id>3313</id>
    <revision>
      <id>48546</id>
      <timestamp>2012-06-19T14:38:38Z</timestamp>
      <contributor>
        <username>pali</username>
        <id>2764</id>
      </contributor>
      <text xml:space="preserve">'''This page describes various Maemo repo mirrors.'''

=Bug=
Bug to describe problems with slow servers:
https://bugs.maemo.org/show_bug.cgi?id=5818



=Set up Mirror=

* [[apt-mirror|apt-mirror]]: How to set up apt-mirror
* [[User:Jebba/Mirror| Mini-HOWTO]] set up your own mirror. Describes apt-get, but [[reprepro]] is preferred.
* [http://www.maemory.com/mirror/repro-maemo.tgz Configuration and update script] for setting up a reprepro based mirror

[[Category:Community]]
[[Category:Networking]]
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Missing packages from Diablo Extras</title>
    <id>539</id>
    <revision>
      <id>6779</id>
      <timestamp>2008-08-23T13:57:26Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <minor/>
      <comment>[[Diablo:Missing Packages]] moved to [[Missing packages from Diablo Extras]]: Moved out of improper namespace. Please don't use distributions as namespaces.</comment>
      <text xml:space="preserve">This page is to list the packages which are missing from ''extras-devel'' for Diablo and preventing the building of other packages.

== Packages missing from Extras-Devel ==

'''Please add a comment below when you start working in a package, to avoid duplicated work.'''

You can also help listing here the problematic packages behind the most [[Talk:Diablo:_Missing_Packages|Missed applications]].

=== Very Important Packages ===
Several packages depend on these ones:

* libc-dev - Needed to install libncursesw5-dev
** libc-dev is a virtual package.libc6-dev is in the diablo sdk repository and can be added easily. I doubt it will be added to extras. ~ qwerty12

* libdb4.2 (4.2.52-18osso =&gt; 4.2.52+dfsg-2) - fails during system update, tried various &quot;apt-get -f&quot; with no luck
* libxml2 (2.6.27.dfsg-1osso4 =&gt; 2.6.27.dfsg-1.maemo1) - fails during system update, tried various &quot;apt-get -f&quot; with no luck

=== The rest ===

* Opensync packages (libopensync opensync-format-plugin-vformat msynctool opensync-plugin-file opensync-plugin-gpe libwbxml2 libopenobex libsyncml opensync-plugin-syncml) - These will be worked on later by Graham Cobb

* Sisusb packages (sisusbvga sisbit xsisusb) - These will be worked on later by Graham Cobb

=== Fixed in extras-devel ===
Move here packages from the lists above once they are fixed in extras-devel.

* GPE has been built.

* libgnutls-dev - Needed to build: libsoup. Thanks to Ed (and all the other dependencies he also had to build!)

* libsoup2.2-dev - Needed to build: GPE, Opensync.  Thanks to Ed.

== Packages missing from Extras ==
Obviously all the packages listed above are missing.  In addition, the following packages are available in ''extras-devel'' but not available in ''Extras'', preventing the installation of other packages from ''Extras''.

* libssl 0.9.7 [http://repository.maemo.org/catalogue/certified/pool/diablo/user/o/openssl/ In certified repository]
** Why is it needed at all, given that libssl 0.9.8 is in the core OS? Just to use chinook packages without rebuilding? --[[User:mgedmin|mgedmin]] 00:00, 2 July 2008 (UTC) 
*** Indeed. A symlink suffices fine anyway. --[[User:qwerty12|qwerty12]]

=== Fixed in extras ===
Move here packages from the list above once they are fixed in extras. 

* grsync

* libgtkhtml2-0.

* libsoup2.2-dev and its dependencies (libtasn1-3, opencdk10, gnutls13, libgcrypt11, lzo2, libxml2).  Graham Cobb promoted these (even though he did not upload them) because they are needed for GPE.
* maemo-wordpy, maemo-periodic, python-gdata, python-flickrapi, mirage, python-gtkhtml2, nicotine, lybniz. They are in extras yet.
* python2.5 + python2.5-dev - Needed to build several python applications. Thanks to Luciano and Lauro.
* python2.5-gtk2 + python2.5-hildon. Without theses packages no hildonized python application will run.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Missing packages from Diablo Extras</title>
    <id>539</id>
    <revision>
      <id>6779</id>
      <timestamp>2008-08-23T13:57:26Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <minor/>
      <comment>[[Diablo:Missing Packages]] moved to [[Missing packages from Diablo Extras]]: Moved out of improper namespace. Please don't use distributions as namespaces.</comment>
      <text xml:space="preserve">This page is to list the packages which are missing from ''extras-devel'' for Diablo and preventing the building of other packages.

== Packages missing from Extras-Devel ==

'''Please add a comment below when you start working in a package, to avoid duplicated work.'''

You can also help listing here the problematic packages behind the most [[Talk:Diablo:_Missing_Packages|Missed applications]].

=== Very Important Packages ===
Several packages depend on these ones:

* libc-dev - Needed to install libncursesw5-dev
** libc-dev is a virtual package.libc6-dev is in the diablo sdk repository and can be added easily. I doubt it will be added to extras. ~ qwerty12

* libdb4.2 (4.2.52-18osso =&gt; 4.2.52+dfsg-2) - fails during system update, tried various &quot;apt-get -f&quot; with no luck
* libxml2 (2.6.27.dfsg-1osso4 =&gt; 2.6.27.dfsg-1.maemo1) - fails during system update, tried various &quot;apt-get -f&quot; with no luck

=== The rest ===

* Opensync packages (libopensync opensync-format-plugin-vformat msynctool opensync-plugin-file opensync-plugin-gpe libwbxml2 libopenobex libsyncml opensync-plugin-syncml) - These will be worked on later by Graham Cobb

* Sisusb packages (sisusbvga sisbit xsisusb) - These will be worked on later by Graham Cobb

=== Fixed in extras-devel ===
Move here packages from the lists above once they are fixed in extras-devel.

* GPE has been built.

* libgnutls-dev - Needed to build: libsoup. Thanks to Ed (and all the other dependencies he also had to build!)

* libsoup2.2-dev - Needed to build: GPE, Opensync.  Thanks to Ed.

== Packages missing from Extras ==
Obviously all the packages listed above are missing.  In addition, the following packages are available in ''extras-devel'' but not available in ''Extras'', preventing the installation of other packages from ''Extras''.

* libssl 0.9.7 [http://repository.maemo.org/catalogue/certified/pool/diablo/user/o/openssl/ In certified repository]
** Why is it needed at all, given that libssl 0.9.8 is in the core OS? Just to use chinook packages without rebuilding? --[[User:mgedmin|mgedmin]] 00:00, 2 July 2008 (UTC) 
*** Indeed. A symlink suffices fine anyway. --[[User:qwerty12|qwerty12]]

=== Fixed in extras ===
Move here packages from the list above once they are fixed in extras. 

* grsync

* libgtkhtml2-0.

* libsoup2.2-dev and its dependencies (libtasn1-3, opencdk10, gnutls13, libgcrypt11, lzo2, libxml2).  Graham Cobb promoted these (even though he did not upload them) because they are needed for GPE.
* maemo-wordpy, maemo-periodic, python-gdata, python-flickrapi, mirage, python-gtkhtml2, nicotine, lybniz. They are in extras yet.
* python2.5 + python2.5-dev - Needed to build several python applications. Thanks to Luciano and Lauro.
* python2.5-gtk2 + python2.5-hildon. Without theses packages no hildonized python application will run.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Mms</title>
    <id>3401</id>
    <revision>
      <id>26640</id>
      <timestamp>2010-01-16T01:23:04Z</timestamp>
      <contributor>
        <username>cas07</username>
        <id>1601</id>
      </contributor>
      <comment>[[Mms]] moved to [[MMS]]: All Caps</comment>
      <text xml:space="preserve">#REDIRECT [[MMS]]</text>
    </revision>
  </page>
  <page>
    <title>Mms implemention conversation</title>
    <id>2872</id>
    <revision>
      <id>21313</id>
      <timestamp>2009-10-29T15:08:36Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Mms implemention conversation]] moved to [[Task:MMS/Conversation]]</comment>
      <text xml:space="preserve">#REDIRECT [[Task:MMS/Conversation]]</text>
    </revision>
  </page>
  <page>
    <title>Mms implemention conversation</title>
    <id>2872</id>
    <revision>
      <id>21313</id>
      <timestamp>2009-10-29T15:08:36Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Mms implemention conversation]] moved to [[Task:MMS/Conversation]]</comment>
      <text xml:space="preserve">#REDIRECT [[Task:MMS/Conversation]]</text>
    </revision>
  </page>
  <page>
    <title>Mms implemention conversation</title>
    <id>2872</id>
    <revision>
      <id>21313</id>
      <timestamp>2009-10-29T15:08:36Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Mms implemention conversation]] moved to [[Task:MMS/Conversation]]</comment>
      <text xml:space="preserve">#REDIRECT [[Task:MMS/Conversation]]</text>
    </revision>
  </page>
  <page>
    <title>Mobile Dev Camp 2010</title>
    <id>3611</id>
    <revision>
      <id>41703</id>
      <timestamp>2011-02-08T12:51:23Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">[[Image: mdc.png]]

Nokia is one of the sponsors of this years' [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.

== Competition ==

Around the event there will be a competition and Nokia will organise one Category. Follow up in the Q&amp;A what to expect and how you can participate:

=== What are the rules? ===

* You have '''48 hours''' to write an application!
* You will get basic support at the event itself and in the #nokia_MDC irc channel on freenode.net!

&lt;div style=&quot;border: 1px solid red; background-color: #faa; padding: 20px;&quot;&gt;'''To win the contest write an application in Qt for Maemo or Symbian, ideally for both, which:

* '''uses the [http://doc.trolltech.com/4.6/qtnetwork.html QtNetwork] module,'''
* '''integrates some aspect of the social web AND'''
* '''the general topic is &quot;OUTSIDE&quot;'''

'''Be creative! Interprate the rules! And start coding now!'''

'''The best application will be selected by a jury. Looking forward to seeing you on Saturday!'''&lt;/div&gt;

=== What do I have to do? ===

Follow the rules, have a brilliant idea, start coding, and present the application on the event. One thing, which we can say already:

* the application has to be written in Qt
* it has to work either on a Symbian device or the N900.

=== What can I win? ===

The winner-team of the competition gets:

* 1x[[Nokia N900|N900]] if your application runs on Maemo
* 1xN97 mini, if your application runs on Symbian
* 1xN900 '''AND''' 1xN97 mini if the application runs on both systems.

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.

=== How can I prepare? ===

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.

=== How can I participate? ===

You can participate alone or as a group. Follow the rules out, start coding and present your idea at the event.

== Workshop at the event ==

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.

== Getting Started ==

'''QtSDK'''

[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.

'''[http://qt.nokia.com/downloads Download the QtSDK for your system]'''

After downloading follow the installation instructions of the installer.

Special notes for Linux and Mac:
* Mac OS X: [http://developer.apple.com/tools/xcode/ XCode] required.
* Linux: GCC required.

'''MADDE'''

[[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.

'''[http://tablets-dev.nokia.com/MADDE.php Download MADDE]'''

=== Links ===

'''Qt'''

[http://doc.trolltech.com/4.5/index.html Qt documentation starting point]

[http://www.forum.nokia.com/Tools_Docs_and_Code/Documentation/Maemo.xhtml Qt on Maemo 5 - Examples]

[[Qt-Maemo|Qt on Maemo 5 - General information]]

'''MADDE'''

[[MADDE/Qt Example|Simple Qt example with MADDE]]

[[MADDE/Device_runtime|How to test an application on Device]]

[[MADDE/FAQ|MADDE FAQ]]

[http://labs.trolltech.com/blogs/2010/02/15/qt-462-for-maemo-5-released/ Maemo, MADDE and Qt 4.6]

'''Maemo 5'''

[[Documentation|Maemo 5 documentation]]

[[:Category:Development|Development topics]]

=== IRC ===

Join the channels on freenode:
* '''#nokia_mdc'''
* '''#qt-maemo'''
* '''#maemo'''

[[Category:Mobile Dev Camp 2010]]</text>
    </revision>
  </page>
  <page>
    <title>ModRana</title>
    <id>5071</id>
    <revision>
      <id>50551</id>
      <timestamp>2012-10-29T01:33:29Z</timestamp>
      <contributor>
        <username>wikiwide</username>
        <id>3163</id>
      </contributor>
      <minor/>
      <comment>++[[Category:N950]]</comment>
      <text xml:space="preserve">&lt;div class=&quot;messagebox&quot; style=&quot;border: 1px black dashed; float: right; width: 250px; margin-left: 10px; padding:10px;&quot;&gt;'''modRana'''&lt;br&gt;[[Image:ModRana-icon.png]]
ModRana is a flexible GPS navigation system for mobile Linux devices.&lt;br&gt;&lt;br&gt;
Section: user/navigation &lt;br&gt;
Maintainers: Martin Kolman &lt;br&gt;
TMO-Thread: [http://talk.maemo.org/showthread.php?t=58861  Link] &lt;br&gt;
Package: [http://maemo.org/packages/view/modrana/ Link] &lt;br&gt;
Bugtracker: [http://modrana.org/trac/report/1 Link] &lt;br&gt;
&lt;/div&gt;

== Feature overview ==

[[image:ModRana_gui.png|thumb|480px|A guide to the modRana GUI]]
[[image:ModRana_overlay.png|thumb|480px|Map overlay with a route to a local search result (a restaurant)]]
[[image:ModRana_main_menu.png|thumb|480px|The finger friendly main menu]]
[[image:ModRana_route_profile.png|thumb|480px|Route elevation profile - the vertical line shows the current position on the route]]

'''GUI'''
* big, finger friendly buttons
* automatic landscape/portrait rotation
'''map display '''
* from map tiles
* semi-transparent layer-over-layer overlay is supported
* map scaling (2X, 4X)
* automatic map rotation
'''tile download'''
* automatic (can be turned off)
'''batch tile download'''
* current area, area currently shown on map, area ''around a tracklog''
* ''radius'' and ''zoomlevel range'' can be set
* fully threaded, can be run in background, completion is signalized by a notification
'''tile storage'''
* compatible with TangoGPS
* optional sqlite tile storage (massive space savings)
'''online routing'''
* using Google Directions
* Point2Point, Adress2Address, to POI, Combined
* detailed route info
* ''result can be saved as a GPX tracklog''
* multilingual (English, Czech, Russian, ''Chinese'', Spanish, German, ...)

'''offline routing'''
* searches for routes without the need for Internet connection
* routing is much faster than online routing
* mode based results (Car, Walk, Cycle; Bus &amp; Train get results for Car)
* uses monav-server as backend
* directions are currently quite basic
* see the [[ModRana_offline_routing_guide|modRana offline routing guide]] for more information

'''Turn-by-turn navigation with voice directions'''
* turn description shown per-turn with big friendly letters
* navigation info box can by hidden into a button
* voice directions work even when the screen is off
* voice output can be turned off
* power-users can edit voice parameters using the &quot;manual&quot; mode
'''tracklogs'''
* in GPX format
* optimized track display
* ''route elevation profile''
* elevation data download from Geonames
'''track logging'''
* configurable
* statistics
* ''directly to GPX''
'''online POI search'''
* using Google Local Search
* search for ATMs, Pizza, WiFi, Landmarks, EV charging stations, etc.
* ''addresses and telephone numbers'' for results
* around current position, live distance display
* custom query support
'''POI '''
* you can save as a POI:
** your current position
** a point on the map
** local search results
** manually entered coordinates
* easily accessible ''routing from current position to POI''
* easy stored POI modification
* categories
* CSV export
'''configurable UI'''
* configurations are ''per mode'' (bike,car,bus,walking,train,etc.)
* ''size and position of all UI elements can be customized''
* using the main config file
* interactive configuration &lt;- PLANED
'''information widgets'''
* semi transparent
* time, speed, stats, coordinates, route profile, distance remaining, etc.
* also per mode
* same config
* also should be interactively configurable in the future

== Roadmap ==
See the [[modRana_Roadmap| roadmap]] wiki page for the current modRana roadmap. In short, the main item on the current roadmap is a new Qt based GUI, in addition to the current GTK based one.

== Supported devices ==
=== Maemo 5 @ N900 ===
ModRana is conveniently available directly from the location&amp;navigation category in Extras-Devel.

=== MeeGo 1.2 @ N9,N950 ===
Porting to Harmattan is a work in progress - see the [[modRana_Roadmap| roadmap]] for more info. It is already possible to run modRana with the currently available GTK GUI but it should be much more usable once the Qt based GUI is in a usable state.

=== SHR @ OpenMoko Neo FreeRunner ===
ModRana also runs on this good-old open hardware smartphone, get packages from the [http://modrana.org/trac/wiki/SystemDownloadEN#shr| Neo download section].

=== Manual installation ===
First make sure you have the core dependencies:
* Python 2.5+
* GTK
* CAIRO
* PyGTK
There are also some optional dependencies that modRana will use if available:
* espeak - for voice output

Then download the [http://modrana.org/trac/wiki/SystemDownloadEN#tarball| tarball], unpack it somewhere and run the '''modrana.py''' file.
You can make modRana use a specific device module by suppliing a command line argument:
* neo - modRana will use the Neo FreeRunner device module
* n900 - modRana will use the N900 device module
* android_chroot - modRana will use the device module for Android  chroot

== Resources ==
* [https://github.com/M4rtinK/modrana| modRana source code repository] [github.com]
* [http://www.modrana.org| modRana project homepage] [modrana.org]
* [http://talk.maemo.org/showthread.php?t=58861&amp;page=93| modRana thread on talk.maemo.org] [maemo.org]
* [http://maemo.dadablog.net/AppStats.php?package=modrana&amp;os=fremantle unofficial download statistics]

* [[Navigation Tools]]


[[Category:N900]]
[[Category:N9]]
[[Category:N950]]
[[Category:Software]]
[[Category:GPS]]
[[Category:ModRana]]</text>
    </revision>
  </page>
  <page>
    <title>ModRana Roadmap</title>
    <id>5073</id>
    <revision>
      <id>49625</id>
      <timestamp>2012-09-11T00:08:58Z</timestamp>
      <contributor>
        <username>martink</username>
        <id>3162</id>
      </contributor>
      <comment>/* Simple data API */</comment>
      <text xml:space="preserve">= Qt GUI =
A Qt base is currently the main item on the modRana roadmap, due to multiple reasons:
* it enables modRana to run properly on Harmattan
* it enables the use of kinetic scrolling, smooth animations and generally improves performance
* generally better suitable for touchscreen interfaces with Qt Quick (QML)
** unlike Clutter, that needs OpenGL, QML also supports software rendering
** development experience with Mieru generally shows it's much faster to work with than doing custom UI with Cairo
* removes the dependency on GTK
** it is currently not possible to submit applications with outside dependencies both to the Ovi store and to Apps for MeeGo (AFM seems to be working on dependency support though)

== What about the current Cairo + GTK based GUI ? ==
the new Qt based GUI should be just another alternative together with the GTK one. Also in the process more a clear core-GUI separation should be developed to enable other alternative GUIs (EFL,SDL/PyGame,Clutter/MX,etc.).

=== Uses for the current GTK GUI ===
* devices and environment with old versions of Qt
** Neo FreeRunner
** Open Pandora (not sure ?)
** Android chroot (not sure ?)

'''NOTE''': Qt/QML unlike Clutter has a software renderer so OpenGL is not needed to use it. Might be interesting to see the QML vs GTK software rendering performance.

=== Main drawbacks ===
* only basic acceleration provided by X
* no 3D acceleration, smooth scrolling, rotation animation acceleration
* as the classic GTK widgets are basically unusable on mobile devices, modRana has to basically build its own GUI toolkit with Cairo
** while flexible, this is '''very''' labor intensive
** most of new features and improvements are not blocked by extensive GUI improvements needed to make them usable, the backend work is quite easy in comparison
** examples:
*** on-map context menu - needs a new context menu widget
*** long list handling with search - kinetic scrolling (is it doable with Cairo) + interactive search box [built in in Qt Components]
*** clickable in text links [easy with QML]
*** multiline text editing for POI descriptions, etc. [very easy with QML]

=== Planed enhancements ===
* an option for forcing screen redraw interval (might improve Android chroot performance)
* more efficient centering
** just redraw the position cursor and only redraw the map once it nears the screen edge
** this should improve performance while moving at high speed on slow devices and in Android chroot

== What needs to be done to get the Qt GUI in a usable state ==
=== Separating the GUI logic to a GUI module - DONE ===
Most of the core GUI logic currently resides in the modRana &quot;kernel&quot; the ''modrana.py'' file. This logic needs to be transfered to a separate GUI module tat can be loaded by modRana at startup, either by providing a CLI parameter or automatically (once implemented).

There will be a platform independent API, implemented through and abstract parent class, that enables to interact with the current GUI module in platform independent way (toggle fullscreen, set window size, etc.).

This work will be partially based on Mieru, which already uses the concept of separate GUI modules &amp; has advanced CLI argument support.

'''What needs to be done ?'''
* add pluggable GUI module support '''DONE'''
* move the current GTK logic to a GTK GUI module '''DONE'''
** make sure the modularized GTK GUI works with all the changes '''DONE'''
* add proper CLI argument handling '''DONE'''
** -d, --device - set device module '''DONE'''
** -u, --ui - set which GUI to use '''DONE'''
* optional
** --lat, --lon, --zoom, --layer - set a given map screen parameters at startup
** --no_gps - don't start GPS on startup
** --no_sound - disable sound on startup
** --options_path - path to an alternate options.bin file (might be useful for debugging)
** something else ?

=== Writing a Qt GUI module - DONE ===
The Qt GUI module needs to start the interface on startup - create the application window, fullscreen it and start displaying the modRana interface.

'''What needs to be done ?'''
* Qt GUI module
** create application window and fullscreen it '''DONE'''
** fullscreen toggle '''DONE'''
** automatic rotation '''DONE'''
** shutdown support '''DONE'''
* TODO
** rotation lock
** set window title (if applicable)

=== Connecting the tile handling subsystem with QML - 50% DONE ===
ModRana currently uses tile based maps, individual map tiles need to be downloaded &amp; stored so that they are downloaded only once.
* using the modRana tile handling subsystem in QML '''DONE'''
** modifying PinchMap to load tiles from local resources '''DONE'''
** implementing a localhost tileserver (yeah, really - it runs on port 9009 :D) '''DONE'''
** implementing a tile ImageProvider as a fallback for the unlikely possibility that the server won't start '''DONE'''
* create a batch-tile-download UI in QML




=== Getting data from modules to the Qt GUI ===
There are various methods for crossing the GML-native code(Python in this case) divide.  Data access is available from bot sides - QML can access (specially crafted) Python properties and Python can fetch QML objects by name from the current QDeclarativeView.

Which way is better ? IMHO using Python properties and accessing them from QML code is cleaner and makes the QML/Python divide easily visible, PySide also makes it possible to implement callbacks and value change notifications - Python code can notify QML that value of a property changed so that QML code depending on its value can handle the change.

Directly calling QML objects from Python is on the other hand not visible from the QML code (unless manually documented). For isolated cases that (eq calling the shutdown method of the QML root object) it is IMO OK, overusage might cause the QML code to be too tightly connected with Python making it more suspect to breaking by changes in Python or QML.

==== Global data provider vs per-module-property ====
ModRana consists from a number of more or less independent modules that communicate either by exchanging messages, directly calling methods of other modules or by proxy through the main modRana class. Each module has some task it is responsible for - mod_maptiles handles map tiles and mod_location handles location data.

There are basically two ways of providing the data from modules to the QML GUI - per module code exporting Python properties to the QML GUI or a central module (mod_QML_data) that grabs data from various modules and exports them through properties to QML.

For practical reasons, the second method seems to be the better one, at least at the moment:
* as there would be just one QML GUI data handling module and other modules just providing GUI independent data, this aids GUI/backend separation
* the data handling module can grab data from multiple modules and present them as a single property and even handle if a module is not loaded (might come handy once on demand module loading &amp; unloading is implemented)
* one place to look at for QML-Python data forwarding

==== Simple data API ====
Another possibility for providing data to the QML gui is a simple interface, provided by the QML data module that accepts two arguments - module name and a key and returns a data value. The data module just passes the query to the given module and returns the result (it might also do some caching ?).

This might be implemented as an extension to the options api, something like:
&lt;nowiki&gt;
options.mGet(location, sateliteCount, 0)
&lt;/nowiki&gt;
Would return the current satellite count or 0 if the location module did not return any data (it might not know the information or does not handle the sateliteCount key).

The options module just checks if a module with the given name exists, if it doesn't exist it returns the default value right away. If it exists it calls its getData method an provides the given key &quot;sateliteCount&quot; to the module. The module responds with a 2 item tupple. The first item represents if the module actually provides any data under this key - True=provides data, False=providing data for this key is not implemented. The second item is the result.

'''What needs to be done ?'''
* create a new ''mod_QMLData'' module
* provide the most important data &amp; methods as Python properties to the QML code
** location info (lat,lon,speed, direction, elevation, etc.)
** layer ,zoomlevel
** tile handling
** POI handling
** routing
** text to speech
** notifications
** tracklogs

&lt;del&gt;* implement the ''simple data API''&lt;/del&gt;
&lt;del&gt;** add the mGet method to the options module and export it to modules&lt;/del&gt;
&lt;del&gt;** add the getData method to the base_module API&lt;/del&gt;
* super-seeded by directly calling Python module methods
** currently only for methods that don't take any arguments and return a single string, boolean, integer or float
** exported through the[https://github.com/M4rtinK/modrana/blob/67f43044ded31472d04613fe5a402832c7f71b99/modules/gui_modules/gui_qml/gui_qml.py#L308 ''modules''] property to QML
** QML code just uses the respective call (''getS'', ''getB'', ''getI'', ''getF'') with two strings as arguments:
*** module name
*** function name
** example (get main forum URL from mod_info):
 modules.getS('info', 'getForumUrl')

=== Writing the various GUI views ===
The modRana GUI consists of a set of different views and the user navigates from one view to another depending on what data he (or she) needs at the moment.

The most important view is the '''map view''' which shows the map, this is normally the view shown at startup. Other important views: menu, options, POI, search, tracklogs.

==== Map view ====
Map view shows the map layer, map overlay layer and the screen overlay layer.

Fortunately, the [http://www.danielfett.de/privat,blog,agtl-n9-meego-alpha-2 recent AGTL release for Harmattan] has a nice QML map component that appears usable. In the future QGraphicsView based map widget is preferable, do to probable performance improvements and easier pseudo-3D handling.

Also a &quot;navigation mode&quot; with an opaque side/bottom bar might be needed while turn-by-turn navigation is in progress.

'''Tasks:'''
* port the AGTL QML map component to modRana
** make it work with QML 1.0 in non-CSSU Fremantle (no pinch area, etc.)
* get tiles from mod_tiles
* progressive tile loading display (like in AGTL)
* better zoom feedback
* map overlay support
* map rotation

==== Menu view ====
The current icon grid works quite nicely in both portrait and landscape and scales quite nicely to different (mobile) screen sizes. The big icons also help to easily navigate the icon grids. Generally all buttons should be fairly large so that it can be easily used while traveling/driving or in averse lighting conditions.

'''Tasks:'''
* icon grid menu
** should probably support kinetic scrolling with a small brightly colored &quot;more&quot; arrow near the border once there are more items displayed than visible
** where to place the &quot;escape&quot; button ?
* listable menu
** a bar at bottom with the escape button and various context button/menu triggers
*** item count, search, delete, etc.
** type-to-search on devices with keyboard
** on devices without keyboard the user needs to first press to search icon to trigger the VKB
** kinetic scrolling

==== Options view ====
It might not be a bad idea to reimplement the Options menu structure using Qt Components. The main benefit would be in presenting more options at the screen and more usable components (switches, sliders, entry boxes, selection dialogs, etc.). On the other hand - how to handle this in QML-only environments ? This might not be an issue as Qt Components are now also available on Fremantle.

'''Tasks:'''
* recreate the options menu structure using Qt Components

* optional: QML only fallback ?

==== POI view ====
The POI view serves for display &amp; management of the stored POI information. The view basically just needs to use the API of the current store_POI module.

POI currently have a name,description,latitude&amp;longitude and a category. It might be sensible to add more items to the POI database (also Mappero appears to be defunct and there are no other users of the POI database format):
* URL's, emails and phone numbers
* address string
* an icon
* tags (user generated ?)
* added timestamp

'''Tasks:'''
* list stored POI
* add/edit/delete a POI
* search POI (combine with the search menu ?)
* batch import (from OSM extracts and elsewhere)
* sharing

==== Search view ====
The search view provides search on online and offline resources. It might be good to provide a unified online &amp; offline search interface that labels each result depending on source (online-nominatim, offline-POI database, offline OSM POI catalog, etc.). It should be also still possible to just search one online/offline category only.

Mostly the view just needs to use the already implemented module APIs. Some advanced features described in the previous paragraph might also need some backend work.

Also, routing might probably be rolled into search as it is just searching for a route from one place to another.

'''Tasks:'''
* online POI search
* online Address and Wikipedia search
* local POI database search
* unified search
* offline POI catalog search
** larger catalogs might need some indexing before use
* online and offline route search

==== Tracklogs view ====
The tracklgos view provides the track logging view and also a view for management of locally stored tracklogs.

'''Tasks:'''
* track logging view
* track management view
** edit/delete tracklogs
** show tracklog information and statistics
** also show route profile, where available

==== Module provided views ====
It might be a good idea to provide a way for modules to provided their own view in some standardized way. Eq. a new (possibly user provided/third party) module might just add its own view and register it in the main menu structure.

== Other GUI modules ==
There are other graphics toolkits with Python bindings than just Qt and GTK. While not all might be viable for mobile use or even not available on mobile Linux devices, a few can be still considered.

=== PyGame ===
The most interesting at the moment is PyGame, which basically provides Python bindings for SDL. I don't have any personal experience with SDL so far but I'd guess it might be a little more lowlevel than GTK or Qt. On the plus side PyGamse is [http://thp.io/2011/webos/ available for WebOS], being the only graphics toolkit with Python bindings on this platform so far. There is also a [https://market.android.com/details?id=org.renpy.pygame PyGame port for Android].

=== EFL ===
[http://www.enlightenment.org/p.php?p=about/efl EFL] seems to have [http://trac.enlightenment.org/e/wiki/Python some Python bindings] and looks to be the only non-HTML5 toolkit available on Tizen out of the box (provided that a device running Tizen is ever released). SHR also uses EFL.

= Non-GUI work =
This section should contain a roadmap for work not directly depending on the GUI.

The modRana project Trac has [http://modrana.org/trac/report/1 quite a large list] a feature requests and bugs already.

== Packaging ==
* create an automated packaging script '''DONE'''
** get source from Github '''DONE'''
** build on OBS '''DONE'''
** build packages locally without OBS
 

=== Fremantle @ N900 - DONE===
* create an installable package '''DONE'''
** package installs additional icon for the QML version '''DONE'''

* upload the package to Extras-devel once it's stabile enough '''DONE''' - since May 2012

=== Harmattan @ N9,N950 ===
Having a proper package is very important on Harmattan due to Aegis restrictions. If an application needs to use location and other ''priviledged'' services, it needs to be properly packaged with an aegis manifest.

* create an installable package with a working Aegis manifest '''DONE'''
* add portrait and landscape splash-screens

== Configuration file upgrade - DONE ==
ModRana installs configuration files to ~/.modrana, so that they are writable &amp; can be easily edited by the user (the configuration files are extensively commented for this reason). But when something changes in the default configuration file (say - a map layer URL) modRana needs to replace the installed configuration file and backup the existing one (so that any user-provided modifications are not lost).

'''Tasks:'''
* only run upgrade check if modRana version changes '''DONE'''
* add &quot;revision&quot; field to the configuration files '''DONE'''
** stores current configuration file revision as an integer
** the lowest valid value is 1
* if an installed configuration file has a lower revision number than the default one, upgrade it '''DONE'''
** rename it
** copy default configuration file in its place

== Idle loop &amp; timers - 50% DONE ==
MoDrana uses the idle loop to execute some workloads that are not time critical and uses timers to schedule actions that need to happen in the future. ModRana uses the cron module (it dosn't use the cron demon in any way) to provide an abstract API for this. The cron module currently uses GTK for the idle loop and timers.

=== Connecting to the Qt Idle loop ===
When the Qt GUI is used, the cron module needs to use Qt for the idle loop.

'''Tasks:'''
* use the Qt idle loop

=== Using Qt timers - DONE ===
When the Qt GUI is used, the cron module needs to use Qt for timers.

'''Tasks:'''
* use Qt timers '''DONE'''

== Improved hardware &amp; platform support ==
While most parts of modRana are device independent and improvements translate to usage on most devices, modRana also needs to support hardware and features that are only available on a limited range of devices.

=== Harmattan @ Nokia N9/N950 ===
* zooming with volume keys

=== Maemo 5 Fremantle @ Nokia N900 ===
* app menu improvements
** map layer selection
** zoom slider
** more shortcuts

=== Nemo @ N900 ===
* check how modRana runs on [http://wiki.merproject.org/wiki/Nemo Nemo]
* since September 2012, PySide packages needed for the modRana QML GUI are available from the main Nemo repo
** there are also unofficial and untested PyGTK packages for Nemo in [https://build.pub.meego.com/project/show?project=home%3AMartinK%3Anemo this OBS repository]
* packaging

=== SHR @ OpenMoko Neo FreeRunner ===
* navigation board support
* OpenEmbeaded recipe


=== Android ===
* get modRana running on Android
** [http://thp.io/2011/pyside-android/ Qt + PySide] &amp; [http://redmine.semperpax.com/projects/qt-components-android QtComponents ] should be available
* packaging

=== WebOs ===
* compile [http://www.webos-internals.org/wiki/HowtoQt Qt] &amp; [http://thp.io/2011/webos/ Python]
* port PySide
* port QtComponents
* get modRana running
* packaging

[[Category:ModRana]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>ModRana offline routing guide</title>
    <id>5245</id>
    <revision>
      <id>50517</id>
      <timestamp>2012-10-27T15:53:23Z</timestamp>
      <contributor>
        <username>martink</username>
        <id>3162</id>
      </contributor>
      <comment>/* Known issues */</comment>
      <text xml:space="preserve">== How does it work ? ==
* searches for routes without the need for Internet connection
* routes much faster than online routing
* mode based results (Car, Walk, Cycle; Bus &amp; Train get results for Car)
* uses monav-server as backend

== Enable offline routing in 6 easy steps ==
=== download routing data ===
Compatible routing data packs are available from [http://monav.openstreetmap.de monav.openstreetmap.de]. Just download a relevant pack for your area. :)
It can be also done directly on the N900 like in this example:

 cd MyDocs
 wget http://monav.openstreetmap.de/mapsets/Czech_Republic.zip


=== unpack it to the Monav data folder ===
This is the main Monav routing data folder:

 /home/user/MyDocs/.maps/monav_data

The .maps folder is normally visible by default when connecting the N900 in USB mass-storage mode to Windows PCs, on Linux PCs you have to enable ''Show hidden files/folders'' to see it.
If there is no ''monav_data'' folder in ''.maps'', create it:

 cd MyDocs/.maps
 mkdir monav_data

and unzip you data packs into it.

Example (continuing where we left):

 unzip Czech_Republic.zip -d .maps/monav_data/


You should get paths similar to these:

 /home/user/MyDocs/.maps/monav_data/Czech_Republic
 /home/user/MyDocs/.maps/monav_data/Czech_Republic/routing_bike
 /home/user/MyDocs/.maps/monav_data/Czech_Republic/routing_car
 /home/user/MyDocs/.maps/monav_data/Czech_Republic/routing_pedestrian

==== Optional ====
As their content is not currently used, you can remove the ''rendering_osm'' and ''rendering_vector'' folders.

=== start modRana ===
Just start modRana as usual. ModRana currently only scans for new map packs at startup. So if you add new map packs, you will have to restart modRana for them to be available for routing.

=== select preferred map data pack ===
Go to '''menu-&gt;options-&gt;Navigation-&gt;Routing data''' and select a '''Monav data pack''' to use.

=== select Monav as routing backend ===
In Go to '''menu-&gt;options-&gt;Navigation-&gt;Routing''' and select Monav as '''Routing provider'''.
=== route :) ===
Please note that offline routing currently does not work for ''address to address routing''. 

All the other methods (''point to point'', ''point to here'', routing to POIs or search results, etc.) should work.

== Generating your own routing data ==
If the online Monav data repositories don't cover the are you are interested in or if you just want to have fresh routing data for your are generated every hour from local OSM extracts - no problem! Generating your own Monav routing data packs is quite easy. :)

=== The Monav data generator ===
I've made a simple script, that takes raw OpenStreetMap and outputs modRana compatible Monav routing data packs. Just download the ''generate.py'' script and ''base.ini'' configuration file from the [https://github.com/M4rtinK/monav-data-generator Github project] to some folder:
 wget https://raw.github.com/M4rtinK/monav-data-generator/master/generate.py
 wget https://raw.github.com/M4rtinK/monav-data-generator/master/base.ini 
And you are good to go. :)

The script generates modRana compatible Monav routing data packs from OpenStreetMap data files (both plain osm files and pbf are supported).

==== Dependencies ====

You need to have ''monav-preprocessor'' installed (as this script is basically a wrapper around it).
The ''monav-preprocessor'' package should be available from the default repositories in Debian, Ubuntu, Fedora and other major distributions.

==== Usage ====

 ./generator.py osm_data_file [output_directory_name]

If no ''output_directory_name'' is provided, the filename of the ''osm_data_file'' without extension will be used instead.

'''Example:'''

 ./generate.py czech_republic.osm.pbf Czech_Republic_2012

Once the processing finishes, just move the output (called ''Czech_Republic_2012'' in our example) directory to '''.~/MyDocs/.maps/monav_data/''' as usual.

==== Multiprocessing ====
The Monav preprocessor can run a part the conversion in multiple threads, speeding the whole process quite a bit. By default, 4 threads are used.

To set the thread number, just edit the THREADS variable in the ''generate.py'' file. The number of threads should roughly correspond to the number of logical processing cores on your machine.


== Known issues ==
* &lt;del&gt;directions are very basic&lt;/del&gt; '''fixed'''
&lt;del&gt;Monav actually doesn't return a turn type, so I'll have to add an algorithm that detects different turn types and assigns corresponding description (Marble also does it like this).&lt;/del&gt;

ModRana now properly handles most turn types and support for more advanced turn types (roundabouts, highway merging, etc.) will be added in the future.

* &lt;del&gt;some turns are missed&lt;/del&gt; '''fixed'''
&lt;del&gt;''Monav actually doesn't return turns at all'' - just points for the route &amp; name + type for the route edges. So an algorithm that analyses all edge junctions on the route and decides what is turn and what is not (based on sharp turns, edges changing type or name, etc.). Currently every route type change is just used to trigger turn.&lt;/del&gt;

ModRana should no properly detect most turns. If you still see it miss a turn, please report it to the [http://talk.maemo.org/showthread.php?t=58861 modRana discussion thread] or [http://modrana.org/trac#Contactthedeveloper contact address]. :)


* no address2address offline routing
The Monav GUI can be used for offline address search - I'll have to investigate if the same functionality can be used over the [http://code.google.com/r/thomasmiedema-python/source/browse/routingdaemon/routingserver.cpp monav-server] API.

== Planed features ==
* modRana project hosted repository with up-to-date data packs
* built-in map pack downloader &amp; updater

[[Category:Software]]
[[Category:Fremantle]]
[[Category:ModRana]]</text>
    </revision>
  </page>
  <page>
    <title>Modified Hildon Desktop</title>
    <id>3422</id>
    <revision>
      <id>39904</id>
      <timestamp>2010-11-01T14:36:03Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <text xml:space="preserve">[http://my.arava.co.il/~matan/repo/Modified_Hildon_Desktop.html modified-hildon-desktop] is a package of a modified version of hildon desktop with changed keyboard related functionality.

* [http://talk.maemo.org/showthread.php?t=64336 Thread on talk.maemo.org]

Install with this [http://my.arava.co.il/~matan/770/n900/m-h-d.install install file].

Changes from hildon-desktop:

* A few gconf keys affect the operation of hildon-desktop (change value of keys with the terminal command: &lt;pre&gt;gconftool-2 -s &lt;key&gt; -t &lt;key type&gt; &lt;new value&gt;&lt;/pre&gt;where &lt;key type&gt; is &lt;code&gt;int&lt;/code&gt; for integer values and &lt;code&gt;bool&lt;/code&gt; for true/false values):
** &lt;code&gt;/apps/osso/hildon-desktop/key-actions/home_contacts_phone&lt;/code&gt;&lt;br /&gt; If the value of this key is false, the phones and contacts applications will not be called when a key is pressed while in the home screen.
** &lt;code&gt;/apps/osso/hildon-desktop/key-actions/ctrl_backspace&lt;/code&gt; (*)&lt;br /&gt; If the value of this key is false then ctrl-backspace is free for applications to use, instead of the default behaviour of jumping to task navigator.
** &lt;code&gt;/apps/osso/hildon-desktop/key-actions/preset_shift_ctrl&lt;/code&gt;&lt;br /&gt; If the value of this key is true, ctrl-shift-x opens an xterm, ctrl-shift-p saves an image of the screen, ctrl-shift-n toggles composite mode and ctrl-shift-h jumps to home screen.
** &lt;code&gt;/apps/osso/hildon-desktop/key-actions/dbus_shift_ctrl&lt;/code&gt; (*)&lt;br /&gt; If the value of this key is true, then ctrl-shift-letter combinations are reported on the d-bus, allowing implementation of global shortcut keys. H,N,P,X are reported on the dbus only if the previous key is false.
** &lt;code&gt;/apps/osso/hildon-desktop/key-actions/launcher_navigator_accel&lt;/code&gt;&lt;br /&gt; If the value of this is true, icons in the launcher and task navigator can be selected by pressing corresponding keys:&lt;br /&gt;In the task navigator, if the letter is pressed with shift or FN, the corresponding task is closed, instead of switched to.&lt;br /&gt;Examples of how the key work:
*** q selects leftmost icon in top row.
*** w selects second icon from left in top row.
*** t selects fifth icon from left in top row.
*** s selects second from left icon in second row.
*** z selects leftmost icon in third row.
*** v selects fourth icon from left in the third row.
** &lt;code&gt;/apps/osso/hildon-desktop/key-actions/dbus_launcher_navigator&lt;/code&gt;&lt;br /&gt; If the value of this key is true, a press of a letter key while in task navigator or launcher is reported on the d-bus. If the previous key is true, only letters not corresponding to icons are reported. If home_contacts_phone key is false, then also keys pressed while in home screen are reported.
** &lt;code&gt;/apps/osso/hildon-desktop/key-actions/ctrl_backspace_in_tasknav&lt;/code&gt;&lt;br /&gt; The action when ctrl+backspace is pressed while the task navigator is showing is controlled by this integer key:
**# Go to home screen.
**# Go to launcher.
**# Activate the window that was active almost most recently. (In this mode, use two presses of ctrl+backspace two alternate between two windows).
**# Activate the most recently active window.
**# ctrl+backspace behaves like alt-tab on desktop (at least on KDE). While ctrl is pressed, every press of backspace rotates the windows. When ctrl is released, the selected (top left) window is activated.
*** Any other value - do nothing.
** &lt;code&gt;/apps/osso/hildon-desktop/key-actions/dbus_ctrl_shortcuts&lt;/code&gt; (*)&lt;br /&gt; If this key is true, hildon desktop captures and reports on D-Bus the following combinations: ctrl+space, ctrl+comma, ctrl+period, ctrl+volume+/-. This conflicts with other uses for some of these combinations.
** &lt;code&gt;/apps/osso/hildon-desktop/key-actions/dbus_shortcuts_use_fn&lt;/code&gt; (*)&lt;br /&gt; use ctrl+FN+key instead of ctrl+shift+key for D-Bus shortcuts. This is much easier to press, but conflicts with FN+ctrl for opening special keys window.
Keys marked with (*) are only read at start time, so you need to restart hildon-desktop (or reboot) for changes to take effect.
* Non-configurable changes:
** Left and right arrows change desktops in the home screen.
** A d-bus signal set_state allows other programs to select the state (application, home screen, task navigator, launcher).
** A d-bus signal activate_window with an int parameter n, for activating the nth window (in the order displayed in the task navigator) - only call this when task navigator is displayed or activating a full screen window.
** A D-Bus signal &lt;code&gt;activate_window_time&lt;/code&gt; with an &lt;code&gt;int&lt;/code&gt; parameter &lt;code&gt;n&lt;/code&gt;, for activating the nth window (in order of last activation time). 0 is oldest. Use negative numbers for reverse order: -1 is newest. Same warning as in previous signal.
** Two signals similar to the previous two: &lt;code&gt;close_window&lt;/code&gt; and &lt;code&gt;close_window_time&lt;/code&gt;.

=== Settings examples ===

To enable keyboard acceleration in launcher and task navigator (q selects top left icon/window, etc.) type:

 gconftool-2 -s /apps/osso/hildon-desktop/key-actions/dbus_launcher_navigator -t bool true

To make pressing of ctrl+backspace in the task navigator open the launcher, type:

 gconftool-2 -s /apps/osso/hildon-desktop/key-actions/ctrl_backspace_in_tasknav -t int 2

[[Category:Software]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Modifying the root image</title>
    <id>41</id>
    <revision>
      <id>41757</id>
      <timestamp>2011-02-09T15:46:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">This article describes two methods for extending and modifying an existing tablet JFFS2 root image. Note that this article does not work with the &quot;root.jffs2&quot; file for the [[Nokia N900|N900]], as despite the filename, the N900 does not use jffs2. See http://talk.maemo.org/showpost.php?p=403015&amp;postcount=3 for a solution for N900.

== Background ==
The root filesystem (rootfs) of the tablets is stored in a Journal Flash File System version 2 (JFFS2) format. It resides on one of the partitions on the flash chip in the device. Additionally, a pristine version of the rootfs can be obtained from the [http://tablets-dev.nokia.com/ Nokia official firmware] site.

There are two ways to mount the JFFS2 image:
#Have a block device emulate a Memory Technology Device (MTD) via block2mtd.
#Have kernel memory emulate a MTD via mtdram.

Note that for a host kernel config you need to enable mtd device support to access/enable jffs2 filesystem support.

== Getting the JFFS2 image ==
First of all, we need to get the rootfs.jffs2 from the official [http://tablets-dev.nokia.com/ Nokia FIASCO image]. After downloading the FIASCO image, run this on it to unpack it (this will give you all of the individual parts of the image):

 sudo ./flasher-3.0 --unpack  -F &lt;FIASCO image&gt;

== Mounting the JFFS2 image ==
These commands will be executed with root privileges on the host machine and not on the device itself.

=== Block device emulating an MTD device ===
You must have the following kernel modules compiled and installed:

'''Memory Technology Device (MTD) support  ---&gt;'''
*CONFIG_MTD ( Memory Technology Device (MTD) support )
*CONFIG_MTDBLOCK ( Caching block device access to MTD devices )
*CONFIG_MTD_PARITIONS ( MTD partitioning support ) 
'''Self-contained MTD device drivers  ---&gt; '''
*CONFIG_MTD_MTDRAM ( Test driver using RAM ) 
*CONFIG_MTD_BLOCK2MTD ( MTD using block device ) 
'''Block devices  ---&gt;'''
*CONFIG_BLK_DEV_LOOP ( Loopback device support ) 
'''File systems  ---&gt;Miscellaneous filesystems  ---&gt;'''
*CONFIG_JFFS2_FS ( Journalling Flash File System v2 (JFFS2) support )
*CONFIG_JFFS2_LZO ( Advanced compression options for JFFS2 --&gt; LZO compression support )

I suggest you do not make these modules statically linked into the kernel. It is more practical to be able to unload these modules when not needed or when you want to start over from scratch.

You will use the loopback device (/dev/loop[0-15]) to simulate a block device whose contents are from the JFFS2 image. To mount the JFFS2 image, you perform the following steps:

 mknod /tmp/mtdblock0 b 31 0
 modprobe loop
 losetup /dev/loop0 rootfs.jffs2
 modprobe mtdblock
 modprobe block2mtd
 # Note the ,128KiB is needed (on 2.6.26 at least) to set the eraseblock size.
 echo &quot;/dev/loop0,128KiB&quot; &gt; /sys/module/block2mtd/parameters/block2mtd
 modprobe jffs2
 # check dmesg
 mount -t jffs2 /tmp/mtdblock0 /media/jffs2
 # check dmesg again - if the above mount results in any errors there is a problem...

To unmount and cleanup:

 umount /media/jffs2
 modprobe -r block2mtd
 modprobe -r mtdblock
 losetup -d /dev/loop0

Or use the [[#Shell_script_to_mount/unmount_JFFS2_using_block_device_emulating_MTD|automated shell script]].

=== Kernel memory emulating an MTD device ===

Note that mtdram requires 88mb of raw ram on a 2gb system to mount a ~2Mb initfs image [Faheem Pervez on -dev ml], it probably won't work well with a rootfs!

Use total_size=85892 for mtdram if 65536 is too little.

However, if you insist... to mount the JFFS2 image, you perform the following steps:

 mknod /tmp/mtdblock0 b 31 0
 modprobe mtdblock
 modprobe mtdram total_size=65536 erase_size=256
 modprobe jffs2
 dd if=/pathtoimage/rootfs.jffs2 of=/tmp/mtdblock0
 mkdir /media/jffs2
 mount -t jffs2 /tmp/mtdblock0 /media/jffs2

To unmount and cleanup:

 umount /media/jffs2
 modprobe -r jffs2
 modprobe -r mtdram
 modprobe -r mtdblock

Or use the [[Modifying_the_root_image#Shell_script_to_mount.2Funmount_JFFS2_using_kernel_memory_emulating_MTD|automated shell script]].

== Archiving and extracting the rootfs image ==
The image is now accessible under /media/jffs2. Copy the whole image to another directory. This new directory will be used for modifying the image. Extending the currently mounted JFFS2 image is not suggested. Using cp for copying the image to a working directory won't work due to special files in /media/jffs2/dev, which is why we use tar. 

 cd /media/jffs2
 tar cvzf /my_path/myRootImage.tar.gz .
 cd $HOME
 mkdir myRootImage
 cd myRootImage
 tar xvpzf /my_path/myRootImage.tar.gz

== Repacking the image ==
[http://maemo.org/development/documentation/manuals/2-x/howto_use_flasher_rootfs/ Using the flasher utility and creating the reference root file system]

== Modifying the copy of the image ==
Now the image is successfully archived and copied. The working directory  $HOME/myRootImage can now be used for adding, changing or modifying packages.

 cd $HOME/myRootImage
 dpkg -x $HOME/arm_debs/mypackage_arm.deb .

Now we create a new tarball from the working directory of the image.

 cd $HOME/myRootImage
 tar cvzf $HOME/myNewRootImage.tar.gz .

== Making the actual jffs2 image ==

''This was done on a Ubuntu Hardy system and was only done to make an initfs image successfully. I can't ensure this will work (though in theory, it should do) for creating an rootfs.''

&lt;ol&gt;&lt;li&gt;Install mtd-tools which contains the required mkfs.jffs2.&lt;/li&gt;&lt;/ol&gt;
:&lt;pre&gt; sudo apt-get install mtd-tools &lt;/pre&gt;
&lt;ol start=&quot;2&quot;&gt;&lt;li&gt;Run:&lt;/li&gt;&lt;/ol&gt;
:&lt;pre&gt; sudo mkfs.jffs2 -r myRootImage -o myRootImage.jffs2 -e 128 -l -n &lt;/pre&gt;

Where ''myRootImage'' is the root of your new filesystem and ''myRootImage.jffs2'' is the name of the output file. -e 128 specifies a erase size of 128 KiB. 128 KiB is the correct erase size for the initfs. It is correct for an rootfs too.

== Making the jffs2 image mount faster ==

The jffs2 image that was just created is a plain jffs2 image. That's nice and if you were to flash it, it would work fine but what you can do is use sumtool which makes an summarized JFFS2 image. An summarized JFFS2 image mounts faster than a non-summarized one. 

This can be done simply with:

sumtool -i &lt;input jffs2 image&gt; -o &lt;output jffs2 image&gt; -e 128KiB -l -n

== Installing on the tablet ==
When the new tarball is created,  Using flasher and the reference root filesystem for creating JFFS2 image from the myNewRootImage.tar.gz.

Use flasher to install the image on the tablet.

 ./flasher-3.0 -r rootfs.jffs2 --f -R

== Shell script to mount/unmount JFFS2 using block device emulating MTD ==
Create a shell script (mount_jffs2.sh) from the following:
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
JFFSIMG=$1 # jffs image
LOOP=&quot;/dev/loop1&quot; # loop device
MP=&quot;/media/jffs2&quot; # mount point
MTDBLOCK=&quot;/tmp/mtdblock0&quot; # MTD device file
KVER=&quot;2.6&quot;
BLKMTD=&quot;block2mtd&quot;
UMNT=&quot;&quot;

echo &quot;$0&quot; | grep unmount_ &gt;/dev/null 2&gt;&amp;1
[ $? -eq 0 ] &amp;&amp; UMNT=1
if [ $# -gt 1 -a x&quot;$2&quot;x = x&quot;unmount&quot;x ]; then
  UMNT=1
fi

uname -r | egrep '^2\.6' &gt;/dev/null 2&gt;&amp;1
if [ $? -ne 0 ]; then
  KVER=&quot;2.4&quot;
  BLKMTD=blkmtd
fi 

if [ x&quot;${UMNT}&quot;x = x&quot;&quot;x ]; then
  if [ ! -b ${MTDBLOCK} ] ; then
    mknod ${MTDBLOCK} b 31 0 || exit 1
  fi
  lsmod | grep loop &gt;/dev/null 2&gt;&amp;1
  if [ $? -ne 0 ]; then
    modprobe loop
    [ $? -ne 0 ] &amp;&amp; echo &quot;loopback loading failed&quot; &amp;&amp; exit 1
    sleep 1
  fi
  losetup ${LOOP} ${JFFSIMG} || exit 1
  sleep 1
  modprobe mtdblock
  if [ x&quot;${KVER}&quot;x = x&quot;2.4&quot;x ]; then
    modprobe ${BLKMTD} device=${LOOP} || exit 1
  else
    modprobe ${BLKMTD} || exit 1
    echo &quot;${LOOP}&quot; &gt; /sys/module/block2mtd/parameters/block2mtd
  fi
  sleep 1
  modprobe jffs2
  [ ! -d ${MP} ] &amp;&amp; mkdir -p ${MP}
  mount -t jffs2 ${MTDBLOCK} ${MP} || exit 1
else
  umount ${MP}
  if [ $? -ne 0 ]; then
    echo &quot;Cannot unmount JFFS2 at $MP&quot; &amp;&amp; exit 1
  fi
  modprobe -r jffs2
  modprobe -r ${BLKMTD}
  modprobe -r mtdblock
  sleep 1
  losetup -d ${LOOP}
fi 
&lt;/source&gt;
Make sure you chmod a+x mount_jffs2.sh to make the shell script executable.

Usage:

 ./mount_jffs2.sh rootfs.jffs2

You can also use this script to unmount and unload the non-utilized kernel modules and loopback reference:
 ./mount_jffs2.sh rootfs.jffs2 unmount

== Shell script to mount/unmount JFFS2 using kernel memory emulating MTD ==
Create a shell script (mount_jffs2.sh) from the following:
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
JFFSIMG=$1 # jffs image
MP=&quot;/media/jffs2&quot; # mount point
MTDBLOCK=&quot;/tmp/mtdblock0&quot; # MTD device file
UMNT=&quot;&quot;

echo &quot;$0&quot; | grep unmount_ &gt;/dev/null 2&gt;&amp;1
[ $? -eq 0 ] &amp;&amp; UMNT=1
if [ $# -gt 1 -a x&quot;$2&quot;x = x&quot;unmount&quot;x ]; then
  UMNT=1
fi

if [ x&quot;${UMNT}&quot;x = x&quot;&quot;x ]; then
  if [ ! -b ${MTDBLOCK} ] ; then
    mknod ${MTDBLOCK} b 31 0 || exit 1
  fi
  modprobe mtdblock
  modprobe mtdram total_size=65536 erase_size=256
  modprobe jffs2
  dd if=${JFFSIMG} of=${MTDBLOCK}
  [ ! -d ${MP} ] &amp;&amp; mkdir -p ${MP}
  mount -t jffs2 ${MTDBLOCK} ${MP}
else
  umount ${MP}
  if [ $? -ne 0 ]; then
    echo &quot;Cannot unmount JFFS2 at $MP&quot; &amp;&amp; exit 1
  fi
  modprobe -r jffs2
  modprobe -r mtdram
  modprobe -r mtdblock
fi 
&lt;/source&gt;
Make sure you chmod a+x mount_jffs2.sh to make the shell script executable.

Usage:
 ./mount_jffs2.sh rootfs.jffs2

You can also use this script to unmount and unload the non-utilized kernel modules:
 ./mount_jffs2.sh rootfs.jffs2 unmount

[[Category:HowTo]]
[[Category:Wiki page of the day]]</text>
    </revision>
  </page>
  <page>
    <title>ModranaVoiceOutputTranslation</title>
    <id>4964</id>
    <revision>
      <id>49620</id>
      <timestamp>2012-09-11T00:03:25Z</timestamp>
      <contributor>
        <username>martink</username>
        <id>3162</id>
      </contributor>
      <text xml:space="preserve">= Voice output localization =

As modRana supports turn announcements in multiple languages, it would be good to also localize the other components of the voice output.

related - [[MieruPackageDescriptionTranslation|Mieru package description translation]]

== What needs to be translated ==
(template)
&lt;pre&gt;
meter =
in X meters =
in X kilometer = 
in X kilometers =
foot =
in X feet =
in X mile =
in X miles =
rerouting =
you should be near the destination =
no route found =
&lt;/pre&gt;



== Translations ==
Please add other languages! :)
=== Spanish ===
&lt;pre&gt;
meter = metro
in X meters = en X metros
in X kilometer = en X kilómetro
in X kilometers = en X Kilómetros
foot = pie
in X feet = en X pies
in X mile = en X milla
in X miles = en X millas
rerouting = recalculando
you should be near the destination = Usted debería estar cerca del destino
no route found = no se encontró ninguna ruta
&lt;/pre&gt;

'''Note''': &quot;''recalculando''&quot; is not the exact translation for &quot;''rerouting''&quot;, however it makes more sense. In fact, GPSs use that for when rerouting.

=== Czech ===
&lt;pre&gt;
meter = metr
in X meters = po X metrech
in X kilometer = po X kilometru
in X kilometers = po X kilometrech
foot = stopa
in X feet = po X stopách
in X mile = po X míli
in X miles = po X mílích
rerouting = přepočítávám
you should be near the destination = cíl by měl být blízko
no route found = cesta nenalezena
&lt;/pre&gt;

=== Dutch ===
&lt;pre&gt;
meter = meter
in X meters = in X meter
in X kilometer = in X kilometer
in X kilometers = in X kilometer
foot = voet
in X feet = in X voet
in X mile = in X mijl
in X miles = in X mijl
rerouting = herrouten
you should be near the destination = u bent nabij uw bestemming
no route found = geen route gevonden
&lt;/pre&gt;

=== Russian ===
&lt;pre&gt;
meter =
in X meters =
in X kilometer = 
in X kilometers =
foot =
in X feet =
in X mile =
in X miles =
rerouting =
you should be near the destination =
no route found =
&lt;/pre&gt;

=== German ===
&lt;pre&gt;
meter = Meter
in X meters = in X Meter
in X kilometer = in X Kilometer
in X kilometers = in X Kilometern
foot = Fuß
in X feet = in X Fuß
in X mile = in X Meile
in X miles = in X Meilen
rerouting = Berechne neue Route
you should be near the destination = Das Ziel ist fast erreicht
no route found = Keine Route gefunden
&lt;/pre&gt;


=== French ===
&lt;pre&gt;
meter = mètre
in X meters = dans X mètres
in X kilometer = dans X kilomètre
in X kilometers = dans X kilomètres
foot = pied
in X feet = dans X pieds
in X mile = dans X mile
in X miles = dans X miles
rerouting = recalcul
you should be near the destination = vous êtes proche de la destination
no route found = pas d'itinéraire trouvé
&lt;/pre&gt;


=== Italian ===
&lt;pre&gt;
meter = metro
in X meters = tra X metri
in X kilometer = tra X chilometro
in X kilometers = tra X chilometri
foot = piede
in X feet = tra X piedi
in X mile = tra X miglio
in X miles = tra X miglia
rerouting = ricalcolo il percorso
you should be near the destination = dovreste essere quasi arrivati a destinazione
no route found = nessun percorso trovato
&lt;/pre&gt;

[[Category:ModRana]]
[[Category:Localization]]</text>
    </revision>
  </page>
  <page>
    <title>Mono</title>
    <id>210</id>
    <revision>
      <id>1388</id>
      <timestamp>2008-06-11T17:51:03Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Initial import of Mono page</comment>
      <text xml:space="preserve">{{Midgard article}}

The following instructions describe the process of getting a poor-man's [https://www.mono-project.org Mono] running on 770/n800 devices (''Scirocco'' and ''Bora'' SDK releases have been tested). The process is temporary (ugly) in nature as it requires using externally-compiled tarball binaries. The proper way of doing things would be to provide nicely-decoupled mono packages - like it's done in [http://pkg-mono.alioth.debian.org/ Mono for Debian]. 

The method described below is presented '''for testing purposes only'''. The idea is to get people quickly started experimenting with mono. Even though the resulting setup is 100% working, it should be used '''only for development'''.

== Prerequisites ==
* Working scratchbox Apophis
* ''Bora'' or ''Scirocco'' SDK releases installed
* Some understanding of scratchbox environment
* Root access to the scratchbox machine

All the tarballs mentioned here can be found at http://files.mdk.am/other/ 

== Installing mono devkit ==

First unpack the [http://files.mdk.am/other/mono_devkit.tar.gz mono_devkit.tar.gz] in the scratchbox directory. You need to do this as root.

&lt;pre&gt;
tar xzf mono_devkit.tar.gz -C /scratchbox 
&lt;/pre&gt;

Thanks to this the mono virtual machine will run always on the host. We need to expose some of the system shared libraries to mono. This can be accomplished easily by copying them from ''/usr/lib'' to ''/scratchbox/host_shared/lib/''. As root:

&lt;pre&gt;
cp /usr/lib/libglib-2.0* /scratchbox/host_shared/lib/
cp /usr/lib/libgthread-2.0* /scratchbox/host_shared/lib/
cp /usr/lib/libgmodule-2.0* /scratchbox/host_shared/lib/
&lt;/pre&gt;

== Setting up the 386 scratchbox target ==

Login to scratchbox and create a new 386 target using ''sb-menu'' as described in the standard SDK instructions. During the devkit selection pick mono devkit additionally to other devkits. Proceed as normal.

Select the newly created target and when inside scratchbox unpack [http://files.mdk.am/other/mono_classlib.tar.gz mono_classlib.tar.gz] and [http://files.mdk.am/other/mono_i386_gtk_sharp.tar.gz mono_i386_gtk_sharp.tar.gz] into the root directory.

&lt;pre&gt;
fakeroot tar xzf mono_classlib.tar.gz -C /
fakeroot tar xzf mono_i386_gtk_sharp.tar.gz -C /
&lt;/pre&gt;

Now you have a fully working mono environment where you can '''compile''' and '''run''' mono programs.

== Setting up the arm scratchbox target ==

Arm target should be created analogically. The only difference applies to the final steps - when in scratchbox, unpack [http://files.mdk.am/other/mono_arm_gtk_sharp.tar.gz mono_arm_gtk_sharp.tar.gz] instead of [http://files.mdk.am/other/mono_i386_gtk_sharp.tar.gz mono_i386_gtk_sharp.tar.gz]. The classlib file stays the same. 

In this environment you can '''compile''' mono programs. Mono-only programs can be run too, but other (ie. software that uses gtk-sharp) will fail as the 386-running mono vm will try to pinvoke into arm code. 

== Setting up mono on the device ==

Get [http://files.mdk.am/other/mono_arm_runtime.tar.gz mono_arm_runtime.tar.gz], [http://files.mdk.am/other/mono_classlib.tar.gz mono_classlib.tar.gz] (already used) and [http://files.mdk.am/other/mono_arm_gtk_sharp.tar.gz mono_arm_gtk_sharp.tar.gz] (already used) and put the tarballs on the mmc card. 

Log into your nokia 770/n800 using terminal or ssh access. As root, unpack all the files into root dir:

&lt;pre&gt;
tar xzf /media/mmc1/mono_arm_runtime.tar.gz -C /
tar xzf /media/mmc1/mono_arm_gtk_sharp.tar.gz -C /
tar xzf /media/mmc1/mono_classlib.tar.gz -C /
&lt;/pre&gt;

Now you can run mono/gtk-sharp programs on your nokia device.

== Final notes ==

* Creating the arm scratchbox target is an optional step and you'll need it only for compiling mono libraries with unmanaged code. Everything else (standard mono programs using gtk-sharp) can be compiled in 386 target and moved directly to the device.
* This setup should not be used for detailed performance evaluation as it has been compiled with minimal optimizations (including softfloats) to work on both devices (770 and n800). Additionally, the mono programs can't right now benefit from the maemo-launcher used for standard C programs (that significantly reduces the startup time).
* You might notice that mono occupies a lot of flash space on your device. This is because the bundle includes '''everything''' provided by the mono classlib, including the debugging information. Most applications require just a small subset of the whole library. Proper debian packaging should limit the average flash usage to acceptable minimum.
* Notice that currently gtk 2.6 is used on the devices. Gtk-sharp has been bootstrapped with 2.6 target and functionality exposed by later API's is not available. 
* We currently don't have working hildon mono bindings which limits the GUI usage.


[[Category:Development]]
[[Category:Midgard wiki]]</text>
    </revision>
  </page>
  <page>
    <title>Motivating People (Ideas)</title>
    <id>1424</id>
    <revision>
      <id>9688</id>
      <timestamp>2009-01-12T23:24:02Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Motivating People (Ideas)]] moved to [[Task:Motivating people]]</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Motivating people]]</text>
    </revision>
  </page>
  <page>
    <title>Moving system directories to a flash card</title>
    <id>829</id>
    <revision>
      <id>41041</id>
      <timestamp>2011-01-08T21:02:10Z</timestamp>
      <contributor>
        <ip>70.131.84.71</ip>
      </contributor>
      <comment>/* Setting things up */</comment>
      <text xml:space="preserve">{{Out of date}}


'''This method is ''not recommended'', as it is more fragile, and less usable than straight flash booting. Please use the steps for [[booting from a flash card]] instead!'''

== Why move directories to a flash card ==
* you regularly run out of space while trying out new programs
* you don't want to reflash /home each time you reflash your tablet
* you would like the 'rwx' permissions logic also on the flash card
* you want a LARGE /home partition

== Alternative ==
[[Booting from a flash card]] allows you to have your entire system running from a flash card, and thus to have your Home directory limited only by the size of the flash card.

The reasons for doing this, rather than following the instructions here, are detailed in [[{{TALKPAGENAME}}| the discussion page]] of the page describing creating ext2 partitions for your tablet.

This page details the steps the author followed to solve a problem, and represents his personal experiences.

It is strongly advised that if you have these issues, that you try [[booting from a flash card]].

== Needed ==

* a working N800
* an internal flash card of 2Gigs or more.
* maybe a standalone linux desktop
* one hour and some [[:wikipedia:Roman_Chamomile|chamomile]]

== First time ==
=== Partitioning ===
[[Partitioning a flash card | Partition your flash card]], deciding how much space you want to reserve for /usr and how much for /home.

Suggested values for partition sizes are 500MB for /usr and 1.5GB for /home, respectively in partitions 2 and 3.  Leave a small FAT16 partition on the card in 1st position to prevent other systems considering that the card is corrupted and trying to &quot;recover&quot; it...  

It is suggested that you leave the card in your N800.

=== Copying your data to the new file systems ===
After creating the partitions and initializing them, mount them at /mnt/usr and /mnt/home, and copy /usr/* and /home/* there, keeping file attributes:
 cp -a /usr/* /mnt/usr
 cp -a /home/* /mnt/home
Ensure your N800 is plugged in, since this operation will take some time.

=== Setting things up ===

First, reflash your tablet, after carefully backing up any data you will need later, to free up space in internal memory and get back to factory settings.

Then use the Application manager to remove packages which are safe to remove. Some examples of packages which can safely be removed are the Maemo tutorial and documentation packages.

Boot the system with flash card in place, and ensure that your old data is there. To do this, [[Root access | become root]] and create a custom boot script which will mount partitions from your flash card:
 #!/bin/sh
 
 # create the mount points for testing
 mkdir /mnt/usr
 mkdir /mnt/home
 
 # create the startup script
 cat &gt; /etc/init.d/mount_custom &lt;&lt; EOF
 insmod /mnt/initfs/lib/modules/2.6.21-omap1/mbcache.ko
 insmod /mnt/initfs/lib/modules/2.6.21-omap1/ext2.ko
 MOUNT_ROOT=/mnt/
 mount /dev/mmcblk0p2 ${MOUNT_ROOT}usr
 mount /dev/mmcblk0p3 ${MOUNT_ROOT}home
 EOF
 
 # register it for early execution
 chmod +x /etc/init.d/mount_custom
 cd /etc/init.d; for i in 2 3 4 5; do ln -s ../init.d/mount_custom /etc/rc$i.d/S15mount_custom ; done

Now reboot and check that /mnt/usr and /mnt/home contain your data.
You will need to re-copy your system files on top of your back-up of /usr to ensure a consisten system:
 cp -a /usr/* /mnt/usr
As before, this will take time and plug in your tablet.

Edit '''/etc/init.d/mount_custom''' again, setting '''MOUNT_ROOT=/''' and reboot if you dare.

Your flash card partitions will now be mounted at /usr and /home, and will hide the system directories underneath.

=== Restoring without a Backup ===

In a bare N8x0 after a reflash you will see an empty menu. You need to re-configure repositories and re-install all the applications you had before.

After following this procedure, when you re-flash your tablet, you should still see all of your applications and personal data, since /usr and /home will not be affected.

However, even though applications will show up in the menu, many applications will be missing configuration files or other data required to run, and you will probably need to restore them from a back-up before using them again.

The list of applications which appears in the application menu will serve as a list of applications which you should re-install after a re-flash.

=== Power Consumption ===

The power consumption of your tablet will be higher when using ext2 partitions on a Flash card, and your system will not work once the charge is too low to read/write the flash cards. This setup shortens your autonomy.

[[Category:N8x0]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Moving system directories to a flash card partition</title>
    <id>2782</id>
    <revision>
      <id>20616</id>
      <timestamp>2009-10-20T08:53:26Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Moving system directories to a flash card partition]] moved to [[Moving system directories to a flash card]]: capitalisation</comment>
      <text xml:space="preserve">#REDIRECT [[Moving system directories to a flash card]]</text>
    </revision>
  </page>
  <page>
    <title>MozillaMaemoDanishWeekend</title>
    <id>1744</id>
    <revision>
      <id>12223</id>
      <timestamp>2009-04-03T14:27:18Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <comment>Undo revision 12222 by [[Special:Contributions/vdvsx|vdvsx]] ([[User talk:vdvsx|Talk]])</comment>
      <text xml:space="preserve">#REDIRECT [[Mozilla Maemo Danish Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>MozillaMaemoDanishWeekend/MaemoTopics</title>
    <id>1934</id>
    <revision>
      <id>13773</id>
      <timestamp>2009-05-29T09:58:40Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[MozillaMaemoDanishWeekend/MaemoTopics]] moved to [[Mozilla Maemo Danish Weekend/Maemo topics]]: Naming convention - page names should use spaces to separate words, and avoid WikiWord capitalisation in MediaWiki</comment>
      <text xml:space="preserve">#REDIRECT [[Mozilla Maemo Danish Weekend/Maemo topics]]</text>
    </revision>
  </page>
  <page>
    <title>MozillaMaemoDanishWeekend/MozillaTopics</title>
    <id>1933</id>
    <revision>
      <id>13771</id>
      <timestamp>2009-05-29T09:57:47Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[MozillaMaemoDanishWeekend/MozillaTopics]] moved to [[Mozilla Maemo Danish Weekend/Mozilla topics]]: Naming convention - keep names standard</comment>
      <text xml:space="preserve">#REDIRECT [[Mozilla Maemo Danish Weekend/Mozilla topics]]</text>
    </revision>
  </page>
  <page>
    <title>Mozilla Maemo Danish Weekend</title>
    <id>1747</id>
    <revision>
      <id>47019</id>
      <timestamp>2012-03-21T04:58:43Z</timestamp>
      <contributor>
        <ip>131.172.99.16</ip>
      </contributor>
      <comment>Undo revision 47017 by [[Special:Contributions/109.230.216.60|109.230.216.60]] ([[User talk:109.230.216.60|Talk]])</comment>
      <text xml:space="preserve">'''Mozilla/Maemo Danish Weekend'''

May 30-31 + Friday night party (29th) 2009.&lt;br&gt;
IT University of Copenhagen (see [http://tinyurl.com/DanishWeekendMap Google Map]/[http://www.openstreetmap.org/?mlat=55.6596&amp;mlon=12.5914&amp;zoom=13 OpenStreetMap] &amp; [http://thpinfo.com/2009/archive/mmdw-pois.gpx POIs for MaemoMapper] based on the Google Map &amp; [http://www.cphx.dk/index.php?language=uk#/28761/ pictures] &amp; [http://www.flickr.com/photos/28959625@N04/sets/72157617077958090/ more pictures])

[[Image:Picture_4_s.jpg]] [[Image:Maemoz_pic0001.jpg]]

The Maemo and Mozilla projects are organizing a joint developer camp in Copenhagen the last weekend of May. If you are working on Fennec, Fennec add-ons or Maemo 5 applications this call is for you! 

The meeting is open and free, although registration is needed for planning purposes. '''[http://events.mozilla-europe.org/event/?id=6 Register]''' - '''[[Mozilla Maemo Danish Weekend/Participants|Who is coming]]''' - '''[[Mozilla Maemo Danish Weekend/Travel|Arrivals/Travel]]'''.

 If you are in Twitter use the #mozmae tag. Follow the [http://search.twitter.com/search?q=%23mozmae #mozmae microblog]. On [http://qaiku.com/ Qaiku] contribute to [http://www.qaiku.com/channels/show/maemo/view/1de4cf4e37cf16e4cf411de8620597838b046364636/ this thread]. Also use the [http://www.flickr.com/photos/tags/mozmae/ mozmae tag on Flickr].

* '''See photos of the event [http://www.flickr.com/photos/tags/mozmae/ here]. There are some more pictures [http://v6sa.itcollege.ee/shared/Photos/Danish%20Weekend%2029-31.05.09/ here]'''
* '''Follow a live microblogging feed via the hashtag #maemoz at Twitter [http://twitter.com/#search?q=%23mozmae here].'''
* '''Event notes also [http://www.qaiku.com/channels/show/maemo/view/1de4cf4e37cf16e4cf411de8620597838b046364636/ available on Qaiku].'''

== Focus areas ==

This hands-on developer meeting is all about getting software ready for end users. Both Fennec and Maemo 5 will be in beta stage and approaching their final releases. Code, test, fix, improve... and have fun!

* Fennec add-ons - We love [https://addons.mozilla.org/fennec/ Fennec add-ons]!
* Mozilla core development - common to [https://wiki.mozilla.org/Fennec Fennec] and the [http://browser.garage.maemo.org/ Maemo browser].
* Maemo applications - [http://maemo.org/news/announcements/0eb8fdfeedec11ddb28e1b3c4d7b308a308a/ Fremantle Stars] + [[GSoC_2009/Projects|GSoC projcts]] + other [[Task:Remarkable community projects|Maemo community projects]] willing to join.
* [[Mer]] - also known as the Maemo 5 community edition for the Nokia N810/N800/770 Internet Tablets. See more about Mer at this event [[Mozilla_Maemo_Danish_Weekend/Mer|here]]

== Spaces ==
* Main Hall equipped with tables, chairs and power cords. This is the default location, totally unscheduled, where developers hang around, chat and hack. (free!) Lunch and coffee will be offered here as well. 
* Auditorium with capacity for 150 people. Big screen, beamer and good sound at your disposal for talks and demos.
* Three rooms with capacity of 40 people for BOFs, workshops, team meetings and any other loud activity. Equipped with projector and white board.
** Mozilla room.
** maemo.org room.
** Maemo/Nokia room - devoted to offer technical support using the SDK and other developer tools.

Everything under a thick and fast academic WiFi cloud you won't beat.  

Some of these space are identified in a [http://www.flickr.com/photos/28959625@N04/sets/72157617077958090/detail/ set of pictures].

== Travel ==
See [[Mozilla Maemo Danish Weekend/Travel|when people are arriving in and leaving Copenhagen]].

== Schedule ==
Taking shape as we speak. The idea is to have one stream of activities in the background with few or no overlaps. Developers are supposed to be in the Hall most of the time, attending to sessions where they are involved or find particularly interesting.

Starting point for the schedule:
* Hall: Doors open Saturday from 9:00 to 23:00 and Sunday from 9:00 to 18:00.
* Auditorium
** Joint Mozilla/Maemo opening &amp; closing sessions
** [[Mozilla Maemo Danish Weekend/Mozilla topics|One Mozilla track]] in the mornings.
** [[Mozilla Maemo Danish Weekend/Maemo topics|One Maemo track]] in the afternoons.
* Mozilla room. Project meetings tbd.
* maemo.org room. Projects meetings tbd. &lt;pick a slot here suggesting a duration 30-120'&gt;
** Saturday
*** 10:30 - 11:30 Maemo 5 development environment support: SDK (Soumya Bijjal, Marcel Lengyell, Janne Johansson), packaging (Jeremiah Foster), extras-devel autobuilder (Niels Breet).
*** 13:30 45' Mer project meeting: How do we get Mer to 1.0?
** Sunday
*** 11.00: 30' Mer project meeting: Mer after 1.0
*** 11.45: 45' Mer/Maemo project meeting: Hands on with OBS / Getting your hands dirty with Mer
*** 14:00: 60' [[Mozilla Maemo Danish Weekend/Lightning talks|Lightning talks]]
* Maemo/Nokia room. No scheduled activities. Go there to meet the Development Platform team and get technical support.

Some [[Mozilla_Maemo_Danish_Weekend/Developer_Challenge|developer competition]] will be run during the Danish Weekend with a nice prize and applause at the end.

== Accommodation ==

=== Hotel Cabinn Scandinavia ===

We have booked 40 rooms (single or shared) at the [http://www.cabinn.com/english/kbh/scandinavia/sca.html Hotel Cabinn Scandinavia]. The rate is 75 EUR per night (including breakfast) which is very very decent for Copenhagen. The hotel is 2 minutes walk from the metro station going to the venue and has free Internet connection. The metro runs all night, so there's no need to take a taxi after late night coding.

The sponsored participants are hosted in this hotel. Other participants are encouraged to book here your rooms as well. There is an [[Mozilla Maemo Danish Weekend/Accommodation|Accommodation wiki page]] where you can see how the rooms are organized.

If you get the notice of fully booked, there are [http://www.cabinn.com/english/kbh/kbh.html more Cabinn hotels] in Copenhagen ([http://www.cabinn.com/english/kbh/express/kort/kort.html see map]).

=== Sleep in Heaven ===

* For the budget traveler who doesn't mind sleeping in dorm beds in shared rooms.
* Sleep in Heaven is a youth hostel and you have to be between 16 and 35 years old to stay there.
* [http://www.sleepinheaven.com/ Homepage], price range is from 17.47 EUR per night (rated by number of beds in room) (+ 5.5 for bedlinen and 5.5 for breakfast)
* Features: Free wifi, free locker, booking online in advance, etc. 
* Roughly 27 minutes by public transport from the venue to the hostel. Metro (M1, M2) nearby venue will put you within 1km distance of the hostel.
* Address: Struenseegade 7, 2200 København N

== Sponsorship ==

We have some budget to support travel and accommodation expenses of key developers able to make a difference in the Danish Weekend.

Selection criteria:

* Developers of Fennec add-ons, Fremantle Stars and the Mer project. Link to your projects and get references from lead developers.
* Developers of cool software for average users available in [http://repository.maemo.org/extras-devel/pool/fremantle/free/ Fremantle Extras-devel].
* Other key Maemo contributors with [http://maemo.org/profile/list/ high karma] and a concrete development plan for the weekend.

[http://maemo.org/news/events/registrations/event/view/8352ee2c242e11de8f60a7c7088bfc14fc14/ Apply for sponsorship]. Sooner is better.

== Useful links ==

=== Promotion ===

* [http://www.facebook.com/event.php?eid=68342912828 This event in Facebook] and in [http://events.linkedin.com/Mozilla-Maemo-Danish-Weekend/pub/61443 Linkedin] , for those of you willing to show up there and help promoting the event.

=== About Copenhagen ===

* [http://www.rejseplan.dk Public transport travel planner], has DE and UK version. [http://mobil.rejseplanen.dk tablet friendly edition, but in danish only]. Venue: Rued Langgaards Vej 7, 2300 Koebenhavn S. Airport: Copenhagen airport. Central station: Koebenhavn H. 
* [http://www.visitcopenhagen.com Visit Copenhagen], tourist site. Has a lot of valuable information on the public transport system, tickets, etc. as well.
* [http://www.use-it.be/europe/ USE-IT] offer a free tourist map for young people based on [http://www.openstreetmap.org OpenStreetMap] data.


[[Category:Community]]
[[Category:Mer]]
[[Category:Events]]
[[Category:Mozilla Maemo Danish Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Mozilla Maemo Danish Weekend/Accommodation</title>
    <id>1835</id>
    <revision>
      <id>29137</id>
      <timestamp>2010-02-11T16:47:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Mozilla Maemo Danish Weekend]]</comment>
      <text xml:space="preserve">We have booked 40 rooms (single or shared) at the [http://www.cabinn.com/english/kbh/scandinavia/sca.html Hotel Cabinn Scandinavia]. 

The sponsored participants (markd with a * ) are hosted in this hotel. The organization recommends to share rooms in order to have more budget available for further sponsorships. Other participants are encouraged to book here your rooms as well. 

If you are listed alone in a room and you prefer to share it with another listed participant just edit the wiki page and do the change (providing your room mate is fine with the change). If you are alone in a room but welcoming a room mate please add a &quot;-&quot; next to your name. We really appreciate your efforts sharing rooms and allowing to have more beds sponsored within our budget.

If the rooms here are fully booked there is more information on alternative places to [[Mozilla Maemo Danish Weekend#Accommodation|stay]].

# Munk Carsten Valdemar
# -
# Harbaum Till
# Võsandi Lauri
# Savola Sampo
# Henrichs Claudius
# Lima Eduardo -
# Mirestean Andrei - Popelo Andrey
# Bloom John - Harwell Adam
# David Greaves
# Thomas Perl
# Marcell Lengyel
# Niels Breet
# Soumya Bijjal
# -
# Janne Johansson
# Andre Klapper -
# Nicolas Belloni - Mattias Rost
# Vesa Pikki
# Gary Birkett
# -
# -
# -
# -
# -
# -
# -
# -
# -
# -

[[Category:Mozilla Maemo Danish Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Mozilla Maemo Danish Weekend/Developer Challenge</title>
    <id>1939</id>
    <revision>
      <id>32768</id>
      <timestamp>2010-04-15T10:13:38Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify links</comment>
      <text xml:space="preserve">The developer challenge is about who can create or port the most awesome add-on for Fennec. There are a couple of useful links [http://starkravingfinkle.org/blog/2009/05/ready-for-a-challenge/ here] and [http://starkravingfinkle.org/blog/2009/05/resources-for-fennec-add-on-developers/ here].

== Criteria ==
Awesomeness!

== Prize ==
Paid trip and lodging to the [[Maemo Summit 2009|Maemo Summit in Amsterdam, October 9-11, 2009]] (max 3 persons)

== Deadline/Submission ==
Add a link to [[#Submissions|your submission]] before 3 PM Sunday afternoon and we will have a session at 4 PM announcing the winner and demoing a few of the add-ons.

== Fennec Desktop Builds ==
* [http://people.mozilla.com/~csejersen/fennec/fennec-1.0b2pre.en-US.mac.dmg Mac OS X]
* Windows (coming)
* [http://people.mozilla.org/~pavlov/fennec/fennec-1.0b2pre.en-US.linux-i686.tar.bz2 Linux]

== Ideas ==
Below is a list of ideas for add-ons. Feel free to add more.

* Geolocation
** What's Near Me
** ATM Finder
* Tab Thumbnail Badging
** Micro Summaries
* Ad Block+
* Twitter Clients
* Themes
* Plugins
* Widget (iGoogle, Yahoo, W3C)
* Flickr (photo) Viewer (flickable full-screen photo viewer)
* Search Plugins
* Social Networking
* Notifications
* D-Bus Fennec Alerts


== Jury ==
* Brian King, mozdev.org
* Quim Gil, Maemo SW
* Kees Jongenburger, maemo.org Council
* Madhava Enros, Mozilla
* Stuart Parmenter, Mozilla
* Christian Sejersen, Mozilla


== Submissions ==
Please provide a link to the add-on, your names (up to 3 people), contact information and a two sentence summary of you add-on.

=== Fabrice Desré (fabrice.desre@gmail.com) ===
* GeoGuide (https://addons.mozilla.org/en-US/firefox/addon/12118) : an add-on that shows different kinds of information near you, using the geolocation API. It allows to popuplate a map with only what you're interested in (pictures, events, wikipedia articles...)

* GraffiTwit (https://addons.mozilla.org/en-US/firefox/addon/12191) : aa Twitter client with a unique feature : instead of writing text messages, you can now use a Canvas based drawing board to send sketches, and of course view them when other twitterers send you sketches.

=== David Greaves (lbt) ===
* Qt/Shopper : Add touchable scroll to the Qt framework - with fremantle bounce; Means that any Qt developer gets fingerscroll for free  ... demonstration through re-orientable shopping list application (installed on #7)... lbt

===Thomas Perl (thp)===
* gPodder Podcast Client for Fremantle ([http://repository.maemo.org/extras-devel/pool/fremantle/free/g/gpodder/gpodder_0.15.2-2+mmdw5_all.deb here]), Diablo ([http://repository.maemo.org/extras-devel/pool/diablo/free/g/gpodder/gpodder_0.15.2-2+mmdw8_all.deb here]), Chinook ([http://repository.maemo.org/extras-devel/pool/chinook/free/g/gpodder/gpodder_0.15.2-2+mmdw8_all.deb here]) and Mer ([http://tinyurl.com/kqwuv9 screenshots]): An application for downloading audio and video podcasts to Maemo devices. Uses the new Hildon AppMenu and PannableArea on Fremantle.

=== liqbase packages for fremantle ===
Gary Birkett
Kees J
Jeremiah

(To be honest, Kees did all the work. He sat hacking on the build and on packaging most of the day and did a great job.) kees++ 

liqbase package works on new device

example run command
./vworld -showwidget liqrecentusers

=== Multi User Map (Social Geolocation) ===
* Adam Harwell - aharwell at trinity dot edu
* John Bloom - johnxx at gmail dot com

* Users run an updater statusbar-plugin or background daemon that uploads their GPS location, name, a custom image, and their current &quot;status&quot; (custom message) to a central database at some interval, and can run a map application (or possibly a maemo-mapper modification/plugin) that pulls all of the entries from the database and plots them as &quot;moving POIs&quot; to facilitate groups (especially at events like this hackfest or a summit) meeting and exploring. With the constant connectivity of Maemo5, GPS and a decent camera, users would also be able to add custom POIs on the fly and they would be distributed to everyone, for instance taking a picture of a restaurant, set the name to &quot;Bob's Cafe&quot;,  the comment to &quot;meetup at 6pm!&quot;, and everyone has the info! No more wandering around confusedly looking for a bar. :)

* Partial code for statusbar plugin: [http://flux.myvnc.com/mums_0.1-15.tar.gz http://flux.myvnc.com/mums_0.1-15.tar.gz]
* Statusbar Applet screenshot: [http://flux.myvnc.com/mums-applet-screen.png http://flux.myvnc.com/mums-applet-screen.png]
* Rough GUI Mockup for the viewer app: [http://flux.myvnc.com/mockup.png http://flux.myvnc.com/mockup.png]
* Example pull of data from the database (uses XML): [http://flux.myvnc.com/get_poi.php http://flux.myvnc.com/get_poi.php]
* XML Geolocation spec from Jabber: [http://xmpp.org/extensions/xep-0080.html#format http://xmpp.org/extensions/xep-0080.html#format]

=== Detector ===
* Nicolas Belloni - nicolas@mobilelifecentre.org
* Mattias Rost - rost@sics.se

Detector is an add-on to bring more fingerfriendliness to the content of webpages on Fennec. So we are aiming at adding more interaction to phone numbers, addresses and contacts' names. The type of interaction style that we add to the content needs to be thought in order not to be destructive and to take into account the lack of contextual menu. To begin with, we want to detect phones numbers and give the possibility to users to call, save or sms this number. Potential other data to detect: 
* Addresses to link to maps
* Names linked to address book and social networks
* Dates to add to calendar
(we have to leave now to catch our trains, we can update this later if needed)

[[Category:Mozilla Maemo Danish Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Mozilla Maemo Danish Weekend/Lightning talks</title>
    <id>1944</id>
    <revision>
      <id>29139</id>
      <timestamp>2010-02-11T16:47:42Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Mozilla Maemo Danish Weekend]]</comment>
      <text xml:space="preserve"># [[User:Claudius|Claudius]] came here to talk about OSM2Go and present OMWeather and work on localization. Preparations on i10n for Mer have been moved forward quite a bit over this weekend. Nice contacts with Moz localizators as well.

[[Category:Mozilla Maemo Danish Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Mozilla Maemo Danish Weekend/MaemoTopics</title>
    <id>1935</id>
    <revision>
      <id>13776</id>
      <timestamp>2009-05-29T10:03:02Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Mozilla Maemo Danish Weekend/Maemo topics]]</comment>
      <text xml:space="preserve">#REDIRECT [[Mozilla Maemo Danish Weekend/Maemo topics]]</text>
    </revision>
  </page>
  <page>
    <title>Mozilla Maemo Danish Weekend/Maemo topics</title>
    <id>1932</id>
    <revision>
      <id>35159</id>
      <timestamp>2010-05-31T12:53:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix list</comment>
      <text xml:space="preserve">== Maemo schedule ==

=== Saturday ===

Time:'''15:00 - 15:55'''

* '''Maemo 5 sync point'''
** Who: Quim Gil facilitates.
** What: Share your questions and answers about Maemo 5 development. If you post them in advance someone might be better prepared to answer them.
 Which windowing kit is more official? GTK or Qt?

Time:'''16:00 - 16:55'''

* '''Fremantle Stars demos'''
** Who: Sampo Savola (eCoach), Till Harbaum (OSM2Go), Gary Birkett (liqbase), ? (OMWeather).
** What: 15' demos.

Time:'''17:00 - 17:40'''

* '''Canola'''
** Who: Eduardo Lima + GSoC students
** What: Present and future of the Canola + demo + short presentations of the related GSoC projects.

Time:'''17:45 - 18:45'''

* '''Mer - Fremantle Community Edition'''
** 25' Mer presentation on &quot;Mer: Reconstructing Maemo&quot; by Carsten V. Munk, [http://www.daimi.au.dk/~cvm/cphnotes.pdf Slides here]
** 25' Mer presentation on &quot;Building Mer with OpenSUSE Build Service&quot; by David Greaves

=== Sunday ===

Time:'''13:30 - ...'''

* '''Maemo 5 Demo Vault'''
** What: Add yourself to the schedule - 10 minutes each.
*** Thomas Perl (GPodder) (((proposed)))
*** Mihai Iancu (MyTube) (((proposed)))

[[Category:Mozilla Maemo Danish Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Mozilla Maemo Danish Weekend/Mer</title>
    <id>1836</id>
    <revision>
      <id>29141</id>
      <timestamp>2010-02-11T16:48:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Mozilla Maemo Danish Weekend]]</comment>
      <text xml:space="preserve">== Mer at the Danish Weekend ==

The high level goal of this focus area is to bring Mer closer to 1.0, which is meant to be the first day-to-day usable release on Nokia Internet Tablets. Maemo 5 will be in beta stage at this point and and we should be able to provide Fremantle APIs and a Maemo 4 replacement to Nokia N8x0(W) users when Maemo 5 is out. The hope is to be able to use the synergy of bringing so many Maemo and Mer related personalities together, to be able to move ahead on things that would take longer if having to be done online. 

Sub-goals, which serve as guidelines for activities:

* Control panels to be able to control behavior of your tablet.
* Developer tools - Builders, cross compilation environments and IDEs.
* Artwork and UI design - Icons, themes, backgrounds, animations, shining up interfaces through code, etc.
* Hardware interfacing and event-reaction daemons (implementing behavior similar to or better than Maemo 4).
* Integration with maemo.org both on a organizational (relation to council, community) and technical level (package and image builders, repositories).
* Alignment with Maemo 5 APIs and integration of Nokia-closed software in restricted images.
* Chasing down showstopper bugs which would hinder user adoption of Mer 1.0.
* Discussions on Mer after 1.0 and presentations on Mer to potential users and developers.
* Getting the Mer project developers and contributors together for the first time.

Activity intentions can be found [[Mer/Hackfest_Copenhagen_09|here]] and [http://internettablettalk.com/forums/showpost.php?p=278371&amp;postcount=7 developer call post]

[[Category:Mozilla Maemo Danish Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Mozilla Maemo Danish Weekend/MozillaTopics</title>
    <id>1936</id>
    <revision>
      <id>13777</id>
      <timestamp>2009-05-29T10:03:28Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Mozilla Maemo Danish Weekend/Mozilla topics]]</comment>
      <text xml:space="preserve">#REDIRECT [[Mozilla Maemo Danish Weekend/Mozilla topics]]</text>
    </revision>
  </page>
  <page>
    <title>Mozilla Maemo Danish Weekend/Mozilla topics</title>
    <id>1866</id>
    <revision>
      <id>29142</id>
      <timestamp>2010-02-11T16:48:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Mozilla Maemo Danish Weekend]]</comment>
      <text xml:space="preserve">= Mozilla (tentative) schedule =

This is an early draft.

The event is split in two kinds of activities: talks &amp; open sessions.

== Developer Challenge ==
[http://wiki.maemo.org/Mozilla_Maemo_Danish_Weekend/Developer_Challenge Instructions] for the developer challenge.

== Morning Talks ==

=== Saturday ===

Time:'''09:00 - 10:00'''

WELCOME COFFEE

Time:'''10:00 - 10:20'''
* '''Opening session - welcome address'''
** Who: Mozilla (Christian Sejersen) + Maemo (Quim Gil)
** What: A brief introduction and an overview of the weekend's schedule

Time:'''10:20 - 10:50'''
* '''What is Fennec ?'''
** Who: Stuart Parmenter (Mozilla Mobile Team)
** What: Demo of Fennec, future of Fennec, why addons matter, perf/canvas things

Time:'''10:55 - 11:20'''
* '''Fennec UI - development implications'''
** Who: Madhava Enros
** What: Fennec UI and important things you should know before developing add-ons for Fennec
** Slides here: http://bit.ly/fennec-ui-addons

Time:'''11:25 - 11:55'''
* '''How to write your first Firefox extension'''
** Who: Robert Nyman (Mozilla contributor)
** What: A tutorial on how to develop Firefox extensions
** Slides: http://robertnyman.com/speaking/

Time:'''12:00 - 12:30'''
* '''Porting a Firefox extension to Fennec'''
** Who: Brian King
** What: A tutorial on how to update a Firefox addons to a Fennec addon

Time:'''12:30 - 13:30'''

LUNCH

Time:'''13:30 - '''
* [[Mozilla Maemo Danish Weekend/Maemo topics|Maemo Presentations]]
* Build Fennec Addons
* Open Sessions

=== Sunday ===

Time:'''10:00 - 10:45'''
* '''Mozilla Addons in the mobile context, what you should care about?''''
** Who: FIXME
** What: User experience in the mobile world (small screen, new behaviors, ...)

Time:'''11:00 - '''
* Build Fennec Addons
* Open Sessions

== Open Sessions ==

=== Format ===

The open hack sessions are just that, sessions where attendees are encourage to fire up their laptops and hack away on any project they feel like that is relevant to Maemo and Fennec. The open hack session will take place in the main hall (atrium) of the ITU which is a large space. &quot;Experts&quot; of Maero and Fennec will be wearign special shirts with the word &quot;EXPERT&quot; written in large on their tshirts as well as the name of their area of expertise (example: &quot;EXPERT - SECURITY). these experts will be walking around the atrium ready to answer any questions you may have that can help you push your hacking forard and help you make progress on your project.

Here is a list of topics that Mozilla would like discuss with participants:
&lt;br&gt;
* What kind of extensions does a mobile browser need?
* How can we better enhance the user experience through addons?
* How to link your desktop and your mobile browser (weave)?
* NEw ideas for Fennec add-ons
* '''Feel free to add you own topics here!'''

=== Proposed Sessions ===

* Who: timeless
* When: Saturday afternoon?
* What: Can we improve how '''Find''' works?
http://docs.google.com/Present?docid=dcv4hfzr_19cxr56sf7

* Who: timeless
* When: Saturday afternoon?
* What: Can we replace ''Flash''?
http://docs.google.com/Present?docid=dcv4hfzr_5856m532gk

* Who: timeless
* When: Saturday afternoon?
* What: ''Zooming'' ''&lt;frame&gt;s''
http://docs.google.com/Present?docid=dcv4hfzr_59f43837gs

* Who: timeless
* When: Saturday afternoon?
* What: Improving &lt;select&gt; behavior for mobile devices
http://docs.google.com/Present?docid=dcv4hfzr_53dcsxqqhp

* Who: Joel Maher
* When: Saturday afternoon?
* What: Providing Information
http://docs.google.com/Present?docid=dcv4hfzr_81g7x7f7f8

* Who: some Mozilla mobile expert will be there, will write code and will be able to help you, to discuss and work with you.
* When: During all the weekend
* What:

[[Category:Mozilla Maemo Danish Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Mozilla Maemo Danish Weekend/Participants</title>
    <id>1819</id>
    <revision>
      <id>29143</id>
      <timestamp>2010-02-11T16:48:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Mozilla Maemo Danish Weekend]]</comment>
      <text xml:space="preserve">This is a manual export of [http://events.mozilla-europe.org/event/?id=6 registered] participants of the [[Mozilla Maemo Danish Weekend]]. You can edit your own entry providing more information and links about you and your projects.

{| class=&quot;wikitable sortable&quot;
|-
! #
! Name
! Organisation / Project
! Country
|- 
| 1 || Chevrel Pascal || Mozilla Europe || France 
|- 
| 2 || foster jeremiah * || maemo.org team || Sweden 
|-
| 3 || Munk Carsten Valdemar * || The Mer Project || Denmark 
|- 
| 4 || Combee Ben || Mozilla || United States
|-
| 5 || Gil Quim || Maemo SW @ Nokia || Finland
|-
| 6 || Ciesielska Malgorzata || CBS || Poland
|-
| 7 || Jongenburger Kees * || maemo.org council || Netherlands 
|-
| 8 || Birkett Gary || liqbase || United Kingdom
|-
| 9 || Knudsen Lars || Nokia || Denmark
|- 
| 10 || Camacho Ernesto || ||    Denmark
|-
| 11 || Hueppe Barbara || Mozilla / PR || Germany
|-
| 12 || Turquette Mike || || United States
|-
| 13 || Vasiliev Vlad * || OMWeather || Belarus
|-
| 14 || Klapper Andre || maemo.org / Openismus || Czech Republic
|-
| 15 || Breet Niels || maemo.org || Netherlands
|-
| 16 || Parmenter Stuart || Mozilla || United States
|-
| 17 || Quiviger William || Mozilla || France 
|-
| 18 || Rouget Paul || Mozilla / Tech Evangelism || France 
|-
| 19 || Harbaum Till * || OSM2Go || Germany
|-
| 20 || Greaves David * || Mer || United Kingdom 
|-
| 21 || Schneider Peter || Maemo Marketing || Finland
|-
| 22 || Zolotarev Leonid || Nokia || Finland 
|-
| 23 || Lepikhov Konstantin || Russian Mozilla Team || Russia
|-
| 24 || Gladkov Alexey || Mozilla Russia Team || Russia 
|-
| 25 || Petrov Andrey || Nokia/Fennec || Finland 
|-
| 26 || Cook James ||    || United Kingdom 
|-
| 27 || Romashin Oleg || Nokia || Finland 
|-
| 28 || Bergius Henri || Nemein - Midgard, GeoClue || Finland
|-
| 29 || Võsandi Lauri * || Maemo || Estonia 
|-
| 30 || Savola Sampo * || eCoach || Finland 
|-
| 31 || Garcia Alberto * || Vagalume || Spain
|-
| 32 || Henrichs Claudius * || Mer, OMWeather, OSM2Go || Germany 
|-
| 33 || Lima Eduardo * || openBossa / Canola || Brazil
|-
| 34 || Mohring Martin || opensuse.org || Germany
|-
| 35 || Mirestean Andrei * || Maemo - Picasa plugin for Canola - GSoC Project || Romania 
|-
| 36 || Popelo Andrey * || Maemo - GSoC project for Canola || Ukraine     
|-
| 37 || Bloom John * ||    Mer || United States 
|-
| 38 || Harwell Adam * || Maemo || United States  
|-    
| 39 || Kristoffersen Mike || Mozilla || Denmark
|-
| 40 || Iancu Mihai * || mYTube || Romania
|-
| 41 || Sejersen Christian || Mozilla Corp. ||     Denmark
|-
| 42 || Larsen Jakob Eg || Technical University of Denmark || Denmark
|-
| 43 || Lach Kamil || IHK/Mozilla Add-ons || Poland
|-
| 44 || Gemal Henrik || Mozilla Denmark || Denmark
|-
| 45 || Perl Thomas * || GPodder || Austria
|-
| 46 || King Brian * || Briks Software / Mozdev || Slovenia
|-
| 47 || Lengyel Marcell || Nokia || Finland
|-
| 48 || doe john || || null
|-
| 49 || Pawlak Blazej || Technical University of Denmark |||	Denmark
|-
| 50 || Cielecki Tomasz || ||	Denmark
|-
| 51 || Stopczynski Arkadiusz || DTU || Poland
|-
| 52 || Karpantschof David Ruben || PortaPlay || Denmark
|-
| 53 || Hansen Jesper || MozillaDanmark|| Denmark
|-
| 54 || Alring Fini || Deducta || Denmark
|-
| 55 || Sørensen Finn || MozillaDanmark / Babelzilla || Denmark
|-
| 56 || Pihlgren Petri || Ixonos || Denmark
|-
| 57 || Skokan Radek || || Czech Republic
|-
| 58 || Parodi Federico * || DownThemAll! || Italy
|-
| 59 || Maier Nils * || DownThemAll! || Germany
|-
| 60 || Dworzynski Piotr || || Poland
|-
| 61 || timeless || || Finland
|-
| 62 || Nagineni Sudarsana || Nokia || Finland
|-
| 63 || Søren Munk Skrøder || MozillaDanmark - l10n || Denmark
|-
| 64 || Bailleux Benoit * || project autoOpenID || France
|-
| 65 || Kristensen Jesper || MozillaDanmark || Denmark
|-
| 66 || Walling Bjarke || || Denmark
|-
| 67 || Hansen Klaus || || Denmark
|-
| 68 || Desré Fabrice * || || France
|-
| 69 || Neale Chris || || United Kingdom
|-
| 70 || Crowder Brian || Mozilla/Mobile || United States
|-
| 71 || Orosa Christinne || Student || Denmark
|-
| 72 || Thomas Adrian || || Denmark
|-
| 73 || Ngite René || IHK || null
|-
| 74 || Rost Mattias || Mobile Life || Sweden
|-
| 75 || von Klitzing Richard || Teleca Germany || Germany
|-
| 76 || Bauer Andreas || Teleca Germany || Germany
|-
| 77 || Zwart Marien || RadialContext-mz || Netherlands
|-
| 78 || Enros Madhava || Mozilla || Canada
|-
| 79 || Bijjal Soumya || Nokia || Finland
|-
| 80 || Johansson Janne || Nokia/Maemo || Finland
|- 
| 81 || Bengoa David || Mozilla hispano || Spain
|-
| 82 || Kolodziejczyk Grzegorz || || Denmark 
|-
| 83 || Bajor Jacek || || 	Poland 	
|-
| 84 ||	Slodkowicz Greg || || Denmark 
|-
| 85 || Meshkova Tatiana || || Finland
|- 
| 86 || Jensen Rene || || Denmark 
|- 
| 87 || Nicolas Belloni || Mobile Life Centre || Sweden
|-
| 88 || Pikki Vesa || Ixonos || Finland
|-
| 89 || Belloni Nicolas || Mobile Life Centre || Sweden
|-
| 90 || Nicolas Vivien || Mozilla Europe Intern || France
|-
| 91 || Hermann Sven || || Denmark
|-
| 92 || Jensen Lasse Valentini || || Denmark
|-
| 93 || Fuhr Søren || Student - DTU || Denmark
|-
| 94 || Sauer Lars || DTU, MILAB || Denmark
|-
| 95 || Petersen Gregers || OpenWrt.org || Denmark
|}

(*) Sponsored participants.

[[Category:Mozilla Maemo Danish Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Mozilla Maemo Danish Weekend/Travel</title>
    <id>1895</id>
    <revision>
      <id>29144</id>
      <timestamp>2010-02-11T16:48:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Mozilla Maemo Danish Weekend]]</comment>
      <text xml:space="preserve">It is good to know when people are arriving and departing. You might want to coordinate with other participants. 

== Arrival ==

=== Friday 29 ===

{| border=&quot;1&quot;
! Time
! Name
! Place of arrival
! Means of transport
|-
| 09:15
| [[User:andrei1089|Mirestean Andrei]]
| Copenhagen Airport
| Flight MA 750
|-
| 10:55
| [[User:lbt|David Greaves]]
| Copenhagen Airport
| Flight 5363 from Gatwick, UK (Easyjet)
|-
| 11:00
| [[User:harbaum|Till Harbaum]]
| Copenhagen Airport
| Flight SK640 from Frankfurt, Germany
|-
|-
| 11:45
| [[User:Stskeeps|Carsten Munk]], Jesper Hansen
| Copenhagen Airport
| Train ICL 18 + ØR 1344 from Aarhus, DK &amp; CPH main station
|-
| 13:15
| [[User:lcuk|Gary Birkett]]
| Copenhagen Airport
| Flight XXX from Manchester, UK
|- 
| 13:15
| [[User:johnx|John Bloom]]
| Copenhagen Airport
| Flight SK 938 from Seattle, US
|- 
| 13:15
| [[User:rm_you|Adam Harwell]]
| Copenhagen Airport
| Flight SK 938 from Seattle, US
|- 
| 14:10
| [[User:etrunko|Eduardo Lima (Etrunko)]]
| Copenhagen Airport
| Flight TP 504 from Lisbon, PT
|-
| departure approx. 14:15 
| David, Gary, John, Adam, Carsten, Jesper
| Hotel CABINN Scandinavia
| Metro M2 from airport  (feel free to join in)
|-
| 14:45
| [[User:apopelo|Andrey Popelo]]
| Copenhagen Airport
| Flight SK 1739 from Kiev, Ukraine - Borispol 
|-
| 15:40
| [[User:thp|Thomas Perl]]
| Copenhagen Airport
| Flight OS303 from Vienna, AT 
|-
| 18:20
| [[User:andre|Andre Klapper]]
| Copenhagen Airport
| Flight OK 508 from Prague, CZ
|-
|-
| 18:40
| [http://it.elephantcarhire.com Noleggio Auto]
| Copenhagen Airport
| Flight SK 939 from Seattle, US
|-
| 19:05
| [[User:sampp|Sampo Savola]]
| Copenhagen Airport
| Flight  BT 139 from Riga, LV
|-
| 21:00
| [[User:jeremiah|Jeremiah C. Foster]]
| Copenhagen Central Station
| Train 495 from Göteborg
|-
| 23:05
| [[User:bergie|Henri Bergius]]
| Copenhagen Airport
| SK634 FRA to CPH
|}

== Departure ==

=== Sunday 31 ===

{| border=&quot;1&quot;
! Time
! Name
! Place of arrival
! Means of transport
|-
| 19:05
| [[User:andre|Andre Klapper]]
| Copenhagen Airport
| Flight OK509 to Prague, CZ 
|-
| 20:10
| [[User:thp|Thomas Perl]]
| Copenhagen Airport
| Flight OS306 to Vienna, AT 
|}

=== Monday 1 ===

{| border=&quot;1&quot;
! Time
! Name
! Place of arrival
! Means of transport
|-
| 08:30
| [[User:etrunko|Eduardo Lima (Etrunko)]]
| Copenhagen Airport
| Flight TP 503 to Lisbon, Portugal
|-
| 09:15
| [[User:apopelo|Andrey Popelo]]
| Copenhagen Airport
| Flight SK1738 to Kiev, Ukraine - Borispol 
|-
| 13:25
| [[User:bergie|Henri Bergius]]
| Copenhagen Airport
| AY666 CPH - HEL
|}

[[Category:Mozilla Maemo Danish Weekend]]</text>
    </revision>
  </page>
  <page>
    <title>Multilist</title>
    <id>4500</id>
    <revision>
      <id>41746</id>
      <timestamp>2011-02-09T13:12:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>use &lt;code&gt;</comment>
      <text xml:space="preserve">== Features ==

Basic features:
* Task lists and categories
* Tasks support todo, in-progress, done

Keyboard Shortcuts
* Ctrl+Enter - toggle between fullscreen
* Ctrl+o - Rotate the screen orientation
* Ctrl+w, Ctrl+q - quit
* Ctrl+l - Copy the debug log contents
* Ctrl+f - search

== Getting Multilist ==

Getting Multilist
* Maemo 4.1: Available in [[extras]] through the Application Manager.
* [http://maemo.org/downloads/product/Maemo5/multilist/ Maemo 5] or available in extras through the Application Manager.
* [http://multilist.garage.maemo.org/multilist.deb Ubuntu]

Multilist has been tested on:
* Ubuntu 10.04
* Maemo 4.1
* Maemo 5

== Contribute ==

* [https://bugs.maemo.org/enter_bug.cgi?product=multilist File a bug]
* [https://bugs.maemo.org/buglist.cgi?query_format=specific&amp;order=relevance+desc&amp;bug_status=__open__&amp;product=multilist&amp;content= View existing bug reports]
* [http://talk.maemo.org/showthread.php?p=589083#post589083 talk.maemo.org thread]
* [https://garage.maemo.org/projects/multilist/ Garage Project (including code)]
* Learn about [[extras-testing]] and checkout the [http://maemo.org/packages/view/multilist/ Package page (including voting)]

Multilist is available under the [http://www.gnu.org/licenses/gpl-2.1.html GPL v2.1 license]

Icon is licensed under the GPL by [http://www.woothemes.com/2010/08/woocons1/ WooThemes]

== Troubleshooting and Reporting of Bugs ==

A very beneficial log can be found at &quot;&lt;code&gt;~/.multilist/multilist.log&lt;/code&gt;&quot;

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Munin</title>
    <id>3125</id>
    <revision>
      <id>42118</id>
      <timestamp>2011-02-25T09:31:10Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add software category, cut list formatting</comment>
      <text xml:space="preserve">==How To Install Munin Node==

[http://munin.projects.linpro.no/ Munin] is a system measuring tool which gives the user a wide range of graphs spanning hours, days, weeks and months. An example set of some graphs are shown [http://ostatic.com/files/images/Munin-%5B1%5D.png here].

''(note: I shall upload some graphs of my own when I have collected data long enough)''

Munin is much loved in the SysAdmin community because of its flexibility and the way it can be extended by writing plugins for the monitored systems, and particularly because the plugins are very easy to write, with a [http://muninexchange.projects.linpro.no/ community resource for sharing them].

Each system being monitored runs &quot;munin node&quot;, a simple daemon that listens on TCP port 4949 for connections, and if one comes from a permitted host or network, presents different kinds of information to it as requested.

Installing it on Maemo is quite easy as it's architecture independent, being basically a perl process which invokes scripts. The only trick is knowing to bypass certain dependencies during installation, and a few tweaks in the configuration. The installation has to happen from the command line as root.

===Installing On Diablo===

[[Open development/Maemo roadmap/Diablo|Diablo]] is effectively a relatively old release (Serge) of arm debian linux, so you have to get the packages from a debian archive.

Login as root to a command shell and fetch the packages. You probably want to fetch them to your flash memory card rather than clutter up the system file space.

fetch the packages as follows
&lt;pre&gt;
# cd /media/external/download
# wget http://ftp.de.debian.org/archive/debian/pool/main/a/adduser/adduser_3.63_all.deb
# wget http://ftp.ch.debian.org/debian-archive/pool/main/m/munin/munin-node_1.2.3-1_all.deb
# wget http://ftp.ch.debian.org/debian-archive/pool/main/libn/libnet-server-perl/libnet-server-perl_0.87-3sarge1_all.deb
# wget http://ftp.ch.debian.org/debian-archive/pool/main/libi/libio-multiplex-perl/libio-multiplex-perl_1.08-1_all.deb
&lt;/pre&gt;

For future reference, in case the debian archive disappears,, I have uploaded these files to the wiki, I had to tack on .svg to the filenames to stop them being rejected; links to the files below - click on the link to go to the page describing the file then on the file itself, use SAVE AS and rename to drop the .svg (sorry, can't think of a better way to do this).
* [[Image:Libnet-server-perl_0.87-3sarge1_all.deb.svg]]
* [[Image:Munin-node_1.2.3-1_all.deb.svg]]
* [[Image:Libio-multiplex-perl_1.08-1_all.deb.svg]]
* [[Image:Adduser_3.63_all.deb.svg]]


Once fetched, install them thus
&lt;pre&gt;
# dpkg -i adduser_3.63_all.deb
# dpkg -i --ignore-depends=perl libio-multiplex-perl_1.08-1_all.deb
# dpkg -i --ignore-depends=perl libnet-server-perl_0.87-3sarge1_all.deb
# dpkg -i --ignore-depends=perl munin-node_1.2.3-1_all.deb
&lt;/pre&gt;

The reason we have to tell dpkg to ignore the dependency on perl is because the tablet has &quot;perl-base&quot; package instead which has everything needed.

''One thing the tablet doesn't have is &quot;pgrep&quot;, a simple command line tool, it doesn't really matter, but can anyone help with a suitable place it can be installed from, or a simple substitute script?
''

===Configuration===

The only things you need to do are to permit your munin master monitoring machine to contact your tablet, to set the host name, and to restart munin-node.

The munin node configuration is a imple text file called /etc/munin/munin-node.conf

Firstly, add more &quot;allow&quot; lines such as this one so that your local network can talk to the munin daemon; the example adds 192.168.29.* but has to be written in perl regex format.
&lt;pre&gt;
allow ^192\.168\.1\.\d+$
&lt;/pre&gt;

then override the host name, the munin master node's configuration expectation of the host name MUST match the tablet's host name. If you call your tablet gorgonzola, the line would read thus:
&lt;pre&gt;
host_name gorgonzola
&lt;/pre&gt;

Save your edits, and at the command line type
&lt;pre&gt;
/etc/init.d/munin-node restart
&lt;/pre&gt;

==Testing the installation==

Verify you can now talk to your tablet from the munin master node thus by firing up a shell and typing the words in bold:&lt;br /&gt;

&lt;tt&gt;
&amp;#35; '''telnet gorgonzola.example.com 4949'''&lt;br /&gt;
Trying 192.168.1.2...&lt;br /&gt;
Connected to gorgonzola.&lt;br /&gt;
Escape character is '^]'.&lt;br /&gt;
&amp;#35; munin node at gorgonzola&lt;br /&gt;
'''list'''&lt;br /&gt;
open_inodes irqstats entropy processes df interrupts if_err_wlan0 swap load cpu df_inode forks iostat open_files if_wlan0 memory&lt;br /&gt;
'''fetch cpu'''&lt;br /&gt;
user.value 127603&lt;br /&gt;
nice.value 1478&lt;br /&gt;
system.value 44203&lt;br /&gt;
idle.value 4097098&lt;br /&gt;
iowait.value 1878&lt;br /&gt;
irq.value 278&lt;br /&gt;
softirq.value 2228&lt;br /&gt;
.&lt;br /&gt;
'''quit'''&lt;br /&gt;
Connection closed by foreign host.
&lt;/tt&gt;


==Configuring the Munin Master==

You configure the munin master exactly as per the munin documentation; simply add the tablet to the &lt;code&gt;/etc/munin/munin.conf&lt;/code&gt; file like this

&lt;pre&gt;
[gorgonzola]
    address gorgonzola.example.com
    use_node_name yes
&lt;/pre&gt;

You could of course use the IP address instead - it would go on the &quot;address&quot; line e.g. &quot;address 192.168.1.2&quot;

You don't need to restart anything, the next time munin runs it will pick up the changes. If you have done it correctly the graphs will begin to appear in about ten minutes as tiny specks on the right. There are troubleshooting pages on the munin wiki.

Good luck and enjoy your newly-metered tablet!

[[Category:Power users]]
[[Category:Diablo]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Mupen64plus</title>
    <id>4299</id>
    <revision>
      <id>41374</id>
      <timestamp>2011-01-24T10:55:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>more up-to-date information at [[mupen64+]]</comment>
      <text xml:space="preserve">#REDIRECT [[Mupen64+]]</text>
    </revision>
  </page>
  <page>
    <title>Mwkn</title>
    <id>4425</id>
    <revision>
      <id>38253</id>
      <timestamp>2010-08-31T13:08:21Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <comment>Redirecting to [[Maemo Weekly News]]</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo Weekly News]]</text>
    </revision>
  </page>
  <page>
    <title>MyDocs folder</title>
    <id>206</id>
    <revision>
      <id>41754</id>
      <timestamp>2011-02-09T15:21:13Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">''MyDocs'' is a folder provided by default in the user's home directory (&lt;code&gt;/home/user&lt;/code&gt;). It is similar to Windows' &quot;My Documents&quot; and is the primary location for files to be loaded and saved through the [[Hildon]] file selector. The File Manager displays the contents of the MyDocs folder by default.

[[Image:MyDocsFolder.png|frame|center|alt=Screenshot of Hildon File Manager viewing MyDocs folder|The MyDocs folder]]

{| class=&quot;wikitable&quot;
|+ Hidden directories in MyDocs
|-
! Directory !! Description
|-
| &lt;code&gt;.documents&lt;/code&gt; || The &quot;Documents&quot; folder. Also containing the Nokia User Guide folder, called &quot;User Guides&quot;.
|-
| &lt;code&gt;.images&lt;/code&gt; || The &quot;Images&quot; folder, containing the sample images.
|-
| &lt;code&gt;.sounds&lt;/code&gt; || The &quot;Audio Clips&quot; folder, containing the sample MP3s and the &quot;favourites&quot; playlist.
|-
| &lt;code&gt;.videos&lt;/code&gt; || The &quot;Video Clips&quot; folder, containing the sample video files.   
|}

These are all hidden directories to [http://maemo.org/pipermail/maemo-users/2006-December/002455.html enable internationalization].

[[Category:Fremantle]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>MyPaint</title>
    <id>4846</id>
    <revision>
      <id>43222</id>
      <timestamp>2011-04-26T09:10:38Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify section headings</comment>
      <text xml:space="preserve">==Warnings==
This wiki page is for upcoming 0.9.1-version which is currently in extras-devel.

==Description==
MyPaint is graphics application for digital painters. Licensed under GPLv2 (brushes are under LGPL). 

==Using==

===Changing shortcuts===
You can change keyboard shortcuts by holding cursor over menu item and pressing desired key.

===Using error-dialogs===
Press outside of details to continue mypaint. Press 'quit' to really quit mypaint.

==Issues==
Saving 'Multiple PNG transparent' is broken on upstream also (or I didn't know how to use it).

==Links==
*Package: http://maemo.org/packages/view/mypaint/
*Source for 'Maemo-port': https://gitorious.org/~aaporantalainen/mypaint/mypaint-for-maemo
*Upstream: http://mypaint.intilinux.com/
*Upstream bug tracked: https://gna.org/bugs/?group=mypaint

[[Category:Software]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>N810</title>
    <id>2856</id>
    <revision>
      <id>21092</id>
      <timestamp>2009-10-26T18:04:15Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <comment>#redirect [[Nokia N810]]</comment>
      <text xml:space="preserve">#redirect [[Nokia N810]]</text>
    </revision>
  </page>
  <page>
    <title>N810 Memory Card Bug</title>
    <id>1879</id>
    <revision>
      <id>28802</id>
      <timestamp>2010-02-10T13:37:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify and tidy, move to N8x0 category</comment>
      <text xml:space="preserve">== Do you use the built-in memory card on the N810? If so, read this. ==

There have been reports of a bug on the [[Nokia N810|Nokia N810's]] built-in 2 gigabyte memory card. If you use the built-in memory card, you may want to read this post as it will tell you how to fix the bug.

It is simple to fix this yourself.

=== What is the bug? What problems can it cause? ===

The built-in memory cards on the earliest batches of N810s were incorrectly formatted at the factory. This may cause files stored on the built-in card to become corrupted, which means you would not be able to open them.

If your N810's built-in card has this bug, even if it works fine now, it may run into problems later on. For this reason, it's a good idea to fix this bug now before those problems happen in the future.


=== Does Nokia know about this? Have they fixed it? ===

Yes, Nokia now knows about it, and it is [https://bugs.maemo.org/show_bug.cgi?id=2940 documented in a bug report] on Maemo bugzilla, and marked as fixed.

However, there is not much they can do about N810s which have already been sold, so if you have an N810 you may want to make sure you carry out the bug-fixing procedure below just to be on the safe side.

=== Does this affect the N810's main memory, with all my applications and other files? ===

No.

The main memory is separate from the built-in memory card. Any files stored on the main memory will be unaffected by this bug. The main memory's folders appear uppermost on the list of folders in the tablet's file manager, under the section marked &quot;Nokia N810&quot;. Anything in these &quot;Nokia N810&quot; folders and sub-folders is unaffected by this bug.

Applications are all installed to the main memory, so the bug will not affect them either.

This bug only affects files and folders in the &quot;Internal Memory Card&quot; section of the file manager.

=== Does this affect all N810s? ===

No, it may only be a small percentage, but it's quite a tricky process to check whether your N810 is affected. It is actually much easier just to carry out the repair procedure below, so it's recommended that everyone with an N810 does it.

=== How do I fix this bug? ===

This bug is very easy to fix, all you need to do is reformat the internal memory card yourself using the tablet's file manager.

Before you do this though, you should be aware that formatting a memory card wipes all the information from it. If you have information you want to keep which is stored on the N810's built-in memory card, you should make sure you have a back-up copy of it somewhere else (such as on your computer). You can find out more about this topic by clicking here to read our tutorial on how to connect to a computer using the USB cable.

Another thing to be aware of: if you have used the built-in memory card to extend the N810's RAM, you will have to switch this extension off before you format the card. You can do this by going to the Control Panel (click on the Applications menu, then Settings, then Control Panel). Once you're on the Control Panel, double-click on the Memory Icon, then click on the &quot;Virtual&quot; tab at the top of the box. Make sure that the &quot;Extend Virtual Memory&quot; box is UNticked, i.e. make sure it is empty. Then click OK.

After you've backed up any information you want to keep, and made sure the virtual memory extension is switched off, you can format the built-in card. Here's how to do it:

# Click on the Applications menu (three green squares on the left).
# Click on Utilities.
# Click on File Manager.
# Click on Internal Memory Card.
# Click on the menu at the top of the screen, select Tools, then Format Memory Card.
# Click on OK.

The formatting process should now begin. After it is finished, the bug will be gone (and indeed the bug may never have even existed on your N810).

=== Does this bug affect the N800? ===

No.

The N800 does not have a built-in memory card so this bug cannot exist on the N800.

=== Does this affect my N810's ordinary separate memory cards? ===

If you have formatted your memory cards on the tablet itself, they should work fine.

However, cards formatted on other devices such as a PC may have problems. If you are unsure about a memory card, format it on the tablet using the tablet's file manager. Make sure you select the correct card when doing the formatting. Cards show up in the file manager with the name you gave them when formatting them, or the name they had when you bought them.

[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>N810 light meter</title>
    <id>4641</id>
    <revision>
      <id>41801</id>
      <timestamp>2011-02-13T23:27:53Z</timestamp>
      <contributor>
        <username>norayr</username>
        <id>3591</id>
      </contributor>
      <comment>/* Software */</comment>
      <text xml:space="preserve">The light meter lets the software on the [[Nokia N810|N810]] sense ambient light levels.

==Hardware==

The device is a TAOS [http://www.taosinc.com/downloaddetail.aspx?did=141 TSL2563].

==Software==

The kernel driver exposes the [[:wikipedia:lux|lux]] value in the sysfs file
 cat /sys/class/i2c-adapter/i2c-0/device/0-0029/lux
 23

Third party applications that use this sensor include [http://nitstuff.appspot.com light-meter] and [http://norayr.arnet.am/weblog/?p=1838 photographic light meter].

[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>N9(50) Tips and Workarounds</title>
    <id>5084</id>
    <revision>
      <id>46230</id>
      <timestamp>2012-01-05T19:29:11Z</timestamp>
      <contributor>
        <username>ejasmudar</username>
        <id>3997</id>
      </contributor>
      <comment>[[N9(50) Tips and Workarounds]] moved to [[Harmattan Tips and Workarounds]]: Better URL</comment>
      <text xml:space="preserve">#REDIRECT [[Harmattan Tips and Workarounds]]</text>
    </revision>
  </page>
  <page>
    <title>N9/N950 Rescue CD</title>
    <id>5294</id>
    <revision>
      <id>50587</id>
      <timestamp>2012-11-01T01:59:14Z</timestamp>
      <contributor>
        <username>eccenux</username>
        <id>5499</id>
      </contributor>
      <comment>/* Source */ typo</comment>
      <text xml:space="preserve">{{ambox
|type=notice
|text=This '''unofficial''' guide recommends downloads from '''untrusted''' third party servers. Nobody knows who hosts the content and whether the software has not been altered (e.g. spyware). '''Use at your very own risk.'''
}}
&lt;br /&gt;

Rescue CD for N9/N950 allows you to access your phone when you have just changed some files and your device doesn't boot. For example when you've just uploaded new preint script and something went wrong.

There is a way to access whole file system of your device, but sadly not on Windows. If you happen to be on Windows or don't have a flasher for your distribution then you can use [https://docs.google.com/folder/d/0BxyCpLnoU3uiX3FZT2ZSQzk5M2M/edit this Debian Live CD].

== Usage ==
# Download the [https://docs.google.com/folder/d/0BxyCpLnoU3uiX3FZT2ZSQzk5M2M/edit?docId=0BxyCpLnoU3uiMVJxTGtfUWhadkU Debian Live CD with flasher and rescue images] (rescue9-binary-hybrid.iso).
# Boot with a &quot;Live&quot; option.
# Open user's home.
# Go to n9-rescue directory.
# Open info.txt and follow steps described.

Note that you can find a Terminal in Accessories.

Also note that Rescue 9 should mount both MyDocs and rootfs automatically. Just remember to unmount both before you unplug the USB cable (you can use the eject button in the file manager).

'''MD5 checksum for rescue9-binary-hybrid.iso''':&lt;br&gt;
e891d25480a8a93fbfc4ad01c8330c23

== Source ==
The source for Debian Live CD is [https://docs.google.com/folder/d/0BxyCpLnoU3uiX3FZT2ZSQzk5M2M/edit?docId=0BxyCpLnoU3uiSWVOQTIzNmlJZjQ livecd9-config.7z].

To use above to build your own CD you must use Debian.
# Install build tools: apt-get install live-build
# If you want to make fully customized CD you should install other helper packages: apt-get install live-manual live-config live-helper
# To build a CD go into the directory which contains &quot;config&quot; and run: lb build

Note that you will need about 8 GiB of free space for building iso!

Tips:
# To add .deb files copy them into &quot;config/chroot_local-packages&quot;.
# To tell live builder you to download and install packages add names to &quot;config/chroot_local-packageslists/mycustompackages.list&quot;.
# To add extra files to root use: &quot;config/chroot_local-includes&quot; (etc/skel is special in that it will add files to user's home).
# There are many versions of instructions for Debian Live and they might be very misleading. In different versions of Live they changed folder and variable names and even behavior of some. Be sure to use manual installed.

== Credits ==

The instructions on the CD were based on this wiki page:
http://wiki.meego.com/N950/Fixing_MALF_state

[[Category:Users]]
[[Category:HowTo]]
[[Category:USB]]
[[Category:Power users]]
[[Category:N9]]
[[Category:N950]]</text>
    </revision>
  </page>
  <page>
    <title>N9/Networking</title>
    <id>5297</id>
    <revision>
      <id>50656</id>
      <timestamp>2012-11-04T12:44:42Z</timestamp>
      <contributor>
        <username>unphysicalix</username>
        <id>5507</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">== Networking ==

=== How to use SSH with N9 ===
* Go into developer mode
* Install OpenSSH Client+Server
* establish an WLAN connection - the N9 gets an IP, e.g. 192.168.1.120
* Open SDK/Connection App -&gt; WLAN, Now you can ssh into your N9
 ssh developer@192.168.1.120

==== ssh to the user account ====
* You need to set up a password on the N9, e.g. using the terminal typing
 ~ $ passwd

=== Using public key authentification ===
The usual preconditions for using public key authentication apply [http://talk.maemo.org/showthread.php?t=75180]: 
* Creating and setting permissions for the directory /home/user/.ssh and copying the public key of your incoming PC into the file authorized_keys (permissions: 600)
 ~ $ mkdir .ssh
 ~ $ chmod 700
 tobias@einstein:~$ ssh-copy-id -i .ssh/id_dsa.pub user@192.168.1.120:

It seems, the uncommon thing about the N9 is, that the home-directory /home/user is world and group writeable [http://talk.maemo.org/showthread.php?t=82920] , thus public-key authentication fails.

Two workarounds:
 * use the developer account
 * make /home/user only world and group readable, e.g.
 ~ $ chmod 755 /home/user 

The latter is risky, we don't know why Nokia decided to have it world/group writeable, there must be a reason for it. Probably because the users aegisfs, calendar have to create files/dirs in there.

== References ==
 * http://talk.maemo.org/showthread.php?t=82920
 * http://talk.maemo.org/showthread.php?t=75180

[[Category:N9]]</text>
    </revision>
  </page>
  <page>
    <title>N900</title>
    <id>2857</id>
    <revision>
      <id>41589</id>
      <timestamp>2011-02-03T11:28:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Nokia N900]]</comment>
      <text xml:space="preserve">#REDIRECT [[Nokia N900]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Accessories</title>
    <id>3039</id>
    <revision>
      <id>49505</id>
      <timestamp>2012-09-08T08:27:50Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>/* Batteries */ Update to batteries and external batteries lists</comment>
      <text xml:space="preserve">This list of [[Nokia N900]] accessories is made to only list accessories that are specifically made for the N900, with the only exception being carry cases and batteries that may fit other cell phones as well. The makers name ''by xyz'' will link directly to the product on the makers page, where available. And if theres no link, you can Google your way out of it.

== Cases ==

=== Hard cases ===
*** [http://www.cyberworldltd.co.uk/cases-for-nokia-model-lumia-900.htm Cases for Nokia Lumia 900 - CyberWorldUK]
* Aluminium Cases (compatibility with all RF [GSM, WiFi/BT, FMTX, GPS] unclear at best)
** Aluminum Metal Case for Nokia N900
*** [http://www.pdair.com/catalog/product_info.php?cPath=10100000_1900000_11000787&amp;products_id=27476 Aluminum Metal Case for Nokia N900 - Open Screen Design (Sliver)]
*** [http://www.pdair.com/catalog/product_info.php?cPath=10100000_1900000_11000787&amp;products_id=27477 Aluminum Metal Case for Nokia N900 - Open Screen Design (Black)]
* Colored cases
** Rubberized Hard case for Nokia N900 - by [http://www.pdair.com/catalog/index.php?cPath=10100000_1900000_11000787 PDair]
*** [http://www.pdair.com/catalog/product_info.php?cPath=10100000_1900000_11000787&amp;products_id=26638 Black]
*** [http://www.pdair.com/catalog/product_info.php?cPath=10100000_1900000_11000787&amp;products_id=26639 Blue]
*** [http://www.pdair.com/catalog/product_info.php?cPath=10100000_1900000_11000787&amp;products_id=26640 Red]
** Black Hybrid Protection case/cover/skin - by EMARTBUY
** Rubber Hard Case Cover For Nokia N900 - by [http://stores.ebay.com/Touch-World-Store touch.world] and/or [http://stores.ebay.com/Sak-Gaming Sak.Gaming]
*** Black
*** [http://cgi.ebay.co.uk/NEW-RUBBER-HARD-CASE-COVER-For-Nokia-N900-BLUE_W0QQitemZ250544505664QQcategoryZ35155QQcmdZViewItemQQ_trksidZp4340.m263QQ_trkparmsZalgo%3DSI%26its%3DI%26itu%3DUCI%252BUA%252BFICS%26otn%3D10%26ps%3D63 Blue]
*** [http://cgi.ebay.com/NEW-RUBBER-HARD-CASE-COVER-For-Nokia-N900-BLUE_W0QQitemZ270497638667QQcmdZViewItemQQptZUK_Mobiles_Accessories_RL?hash=item3efaea690b Red]
** 3 X Rubberized Hard Cases Cover Skin For NOKIA N900 - by [http://stores.ebay.com/ITsurpRise itsurprise] These hard cases fit very well, and with no undesirable rubbing/interference. However the colors aren't too exciting. Black is a nice understated look. Similar cases are available from other sellers, particularly some with spectacular colors from 'londonmagic'. However this seller doesn't appear to be active (as of June 2010). Some cases will need to be shimmed (with insulation tape, etc.) for a more secure fit, and interfering edges, tabs, etc. may need to be filed.
** Qubits Hybrid Armour rubberized two-part hard case with screen protector [http://www.amazon.co.uk/dp/B002VSMAH0/ from Amazon UK] - [http://talk.maemo.org/showpost.php?p=418660&amp;postcount=367 photos and review]
** 3 X Protective Hard Plastic Skin Case Cover for NOKIA N900 - by [http://www.dinodirect.com/NOKIA-N900-Protective-Hard-Plastic-Skin-Case-Cover.html DinoDirect]
** Ruggedized Hard case for Nokia N900 - by [http://www.otterbox.com/nokia-cases/nokia-n900-cases/nokia-n900-commuter-series-case/ OtterBOX]
*** Silicone plugs provide coverage for ports
*** Access to touch screen, buttons and features
*** Includes a self-adhering protective film
*** Built-in kickstand for viewing convenience
* Clear cases
** Clear Crystal Skin Case For Nokia N900 - by [http://stores.shop.ebay.co.uk/greymobiles GreyMobiles]
** Nokia N900 Crystal Case - by Accessory Storm
** A number of vendors on ebay are selling very cheap [http://cgi.ebay.co.uk/3X-HARD-CRYSTAL-CLEAR-SILICONE-CASE-FOR-NOKIA-N900_W0QQitemZ280443343101QQcmdZViewItemQQptZUK_MobilePhones_MobilePhonesCasesPouches?hash=item414bb9d0fd clear cases]. This particular model (the photo  of a waterfall inside the packing is distinctive) is functional. The edges around the join are moderately sharp - a moment with some sandpaper smooths the edge round the keyboard, making it more comfortable. All ports are accessible.
** Nokia N900 Hard Plastic Crystal Cover Case - by [http://www.dinodirect.com/NOKIA-N900-Hard-Plastic-Crystal-Cover-Case.html DinoDirect]

=== Soft cases ===

* Silicone
** Silicone Case for N900 - by [http://www.pdair.com/catalog/index.php?cPath=10100000_1900000_11000787 PDAir]
*** [http://www.pdair.com/catalog/product_info.php?cPath=10100000_1900000_11000787&amp;products_id=26637 Black]

=== Flip cases ===

* PDair Leather Case for Nokia N900 - by [http://www.pdair.com/catalog/index.php?cPath=10100000_1900000_11000787 PDair]
** [http://www.pdair.com/catalog/product_info.php?cPath=10100000_1900000_11000787&amp;products_id=26892 Flip-Type]
** [http://www.pdair.com/catalog/product_info.php?cPath=10100000_1900000_11000787&amp;products_id=26893 Book-Type]
** [http://www.pdair.com/catalog/product_info.php?cPath=10100000_1900000_11000787&amp;products_id=24072 Horizontal Pouch-Type]
** [http://www.pdair.com/catalog/product_info.php?cPath=10100000_1900000_11000787&amp;products_id=24074 Vertical Pouch-Type]

I have this case for my N900 (PDair vertical pouch with belt clip). The quality of the outer leather and stitching is very good, but the inner faces where the phone slides in seems to be vinyl rather than soft leather or suede. The tension on the phone body seems just right, neither too tight nor too loose. The case is possibly just a couple of millimetres too shallow to protect the N900 at the open end , but that might be just a little picky! A nice case, but not the ultimate, I'm still looking for better.

* Tradition leather case for N900 - by [http://www.noreve.com/product/Housse_cuir_Nokia_N900_Tradition.html Noreve]
* Black Leather Vertical Flip Carry Case Cover Pouch For Nokia N900 - by AAJ Trading

Ive tried this case from Amazon, this does not fit the N900 well, or maybe its just my case.
Secondly there is transparent plastic strip which holds the N900 in place and it covers the bottom 1/3 of the screen, moving the stylus over it or even doing a slide motion is obstructive. This is my personal opinion, please feel free to correct this post if somebody had a good experience with this.

''This is correct, my N900 will not even fit inside this case, the plastic part that covers the bottom will break if I try to push more than 1cm of the phone in.  This is a very bad case which is a shame as it looks nice when closed up.''

&lt;strike&gt;I agree, the AAJ Trading flip case is useless. I can't get my phone in and if I did it would cover up the USB port and also not allow the use of the keyboard.&lt;/strike&gt; ''After looking at some of the pictures of other cases I see I was trying to use it wrong. The clear plastic goes over the keyboard not the screen. They it goes in okay. You still can't charge it in the case but at least it is possible to get it in and out quite easily. This case is acceptable now.''

* Noreve Authentic Leather Case - [http://www.symbianoasis.com/2010/01/nokia-n900-leather-protection.html Ambition Leather Flip Case ]
It's a beautiful leather case amde from authentic leather. The flip opens to unveil the camera lens at the back of the device. Check out the images to understand what I mean.

=== Cases with N810-like kickstands ===

* Currently this seems to be a gap in the market.

=== Custom back covers to replace the original ===

* Currently this seems to be a gap in the market (I.E. none spotted yet).
* Aluminium (compatibility with all RF [GSM, WiFi/BT, FMTX, GPS] unclear at best)
** With N810-style kickstand
** With N900-style kickstand
* Plastic
** With N810-style kickstand
** With N900-style kickstand

However there's the Mugen backcover mentioned [[#Extended batteries|on this page]].

=== Carry cases ===

* Leather carry cases
** [http://europe.nokia.com/find-products/accessories/all-accessories/carrying-and-styling/carrying-cases/nokia-carrying-case-cp-321-for-nokia-n900 CP-321 - by Nokia]
*** Black
*** White
** [http://www.nokia.com.au/find-products/accessories/all-accessories/carrying-and-styling/mobile-phone-cases/nokia-carrying-case-cp-408 CP-408 - by Nokia]
- Successor to CP-321. Ports for ports, lens etc (Light Grey)
** [http://www.ax-alex.de/shop/axalex-leder-tasche-etui-fuer-nokia-n900-p-650.html?language=en AX-ALEX (handmade in Germany)]
*** Black 
*** Brown
- Bad points first - it's expensive, and a little bulky. On the other hand it's extremely well made and a perfect fit for the N900. Very tough, and great protection for your phone.  A suede pad behind a stiff leather panel protects the screen. I've had mine since they went on sale (8 months or so) and despite bouncing around a workshop and a muddy 4x4 it still looks like new. 
** [http://www.noreve.com/advanced_search_result.html?search_in_description=1&amp;sort=2a&amp;keywords=n900&amp;osCsid=81c65107a82c10d6c8fb68c1e9dfcf41&amp;x=0&amp;y=0 Noreve]
*** [http://www.noreve.com/product/Housse_cuir_Nokia_N900_Tradition.html Tradition]
*** [http://www.noreve.com/product/Housse_cuir_Nokia_N900_Tradition_C.html Tradition C]
* Textile carry cases
** [http://www.golla.com Golla]
** [http://www.sfbags.com/products/cellphonecases/cell-phone-cases.php SF Bags / Waterfield] Ultrasuede slip cover w/ or w/o pocket.  High-Res photos [http://www.flickr.com/photos/speednutdave/4169854742/sizes/o/ #1], [http://www.flickr.com/photos/speednutdave/4169091579/sizes/o/ #2], &amp; [http://www.flickr.com/photos/speednutdave/4169880384/sizes/o/ #3]. Low-Res Photos [http://i46.tinypic.com/2s61qpu.jpg #1] &amp; [http://i46.tinypic.com/2czcwu0.jpg #2].

== Screen Protectors ==

Also see: [[Screen protector]]
* Clear
** [http://shop.brando.com/bw-ultraclear-pda-s-p-nokia-n900-_p04015c0018d008.html Brando Ultra-Clear] - Really deserves the name of ultra-clear
** [http://www.pdair.com/catalog/product_info.php?cPath=10100000_1900000_11000787&amp;products_id=24073 PDair - Ultra Clear]
** [http://www.durasec.com/catalog/nokia-nokia-n900-durasec-hightec-screen-protector-p-5643.html DuraSec - HighTec] - rubber like texture, a bit grippy
** [http://www.zagg.com/invisibleshield/nokia-n900-cases-screen-protectors-covers-skins-shields.php Zagg - invisibleSHIELD] - full body coverage available
:: The &quot;full body coverage&quot; sadly means you get a lot of small foil parts which must be placed ''exactly''. But even if they are put in the correct place, there are still some blank parts on the body! Especially some of the corners are not protected. Beside that, protection looks very good and handling is improved while usage of the touchscreen is not impaired.
::+ Good protection
::+ Clear vision
::- Sticky surface as in all military type protectors negatively affecting the use of stylus
** [http://www.protectionfilms24.com/article/vikuiti-dqc-160-screen-protector-nokia-n900-28210.html 3M - Vikuiti™ DQC-160]
::+
** [http://www.overlayplus.com/US/MFOP-NokiaN900 Martin Fields - Martin Fields Overlay Plus Screen Protector] - Said to be very good in having a crystal clear vision but also said that it can be scratched easily. Has cutouts only for proximity sensor and the phone speaker(no cutouts for light sensor and the front camera). In addition; it is made in Singapore(not in Japan). High-Res photo of Martin Fields Overlay Plus Screen Protector applied to a N900 [http://www.gale-sides.net/DSC08269.JPG #1].
** [http://www.clearprotector.com/phone-protectors/nokia/nokia-n900-screen-protector.html Clear Protector - Screen Protector] - full body coverage available
** [http://www.durasec.com/catalog/nokia-nokia-n900-durasec-cleartec-screen-protector-p-15643.html?osCsid=031470cf2fc035ea6135d9332ff1c2c4 Durasec - Cleartec] Comes in a 5-pack, clear finish, 5 cut-outs at top for all N900 sensors, meant to be changed once worn away. Prone to some peeling at top right corner, which has an open cut-out.
** [http://www.clarivue.com/nokia-n900-screen-protector.html Clarivue] - For screen only.  Available in ultra-clear and anti-glare.  No adhesive and hard surface that doesn't cause problems for stylus.  Comes in a ready-to-apply 2-pack with appropriate cut-outs.
** [http://www.protectionfilms24.com/article/bedifol-ultraclear-screen-protector-nokia-n900-29536.html protectionfilms24 - Bedifol® UltraClear] - 6 pack
** [http://www.amazon.com/Lexerd-TrueVue-Crystal-Screen-Protector/dp/B002ZWGD0W Lexerd - TrueVue Crystal]
**[https://www.displayschutzfolien.com/index.php?cmd=produkt&amp;pn_id=2273 EXiM Displayschutzfolie UltraClear]
**[http://www.foreverfitters.com/servlet/the-Nokia-cln-N900/Categories Forever Fitters - Nokia N900 Clear Screen Protector]
* Anti-glare
** [http://www.protectionfilms24.com/article/vikuiti-armr200-screen-protector-nokia-n900-27604.html 3M - Vikuiti™ ARMR200]
** [http://www.amazon.com/Lexerd-TrueVue-Anti-glare-Screen-Protector/dp/B002ZWERH8 Lexerd - TrueVue Anti-glare]
** [https://www.displayschutzfolien.com/index.php?cmd=produkt&amp;pn_id=2274 EXiM Displayschutzfolie UltraProtect]
**[http://www.foreverfitters.com/servlet/the-Nokia-cln-N900/Categories Forever Fitters - Nokia N900 Anti-Glare Screen Protector]

== Holders ==

Holders posted here should have been specifically made for the N900 and have take its keyboard and &quot;landscape only&quot; mode into consideration, with GPS/map use in mind.

* Table/desk Stands
** [http://talk.maemo.org/showthread.php?t=43593 Laser-Cut Stand for N900] - Landscape only table/desk stand for use with keyboard in or out, including an easy accessible stylus holder. Available in plywood (wood colored or black, and possibly other colors) and acrylic (transparent). International shipping.

* Windscreen Car Holders
** [http://shop.brando.com/universal-windshield-holder-rotatable-360-degree-enhanced-version-_p01432c0309d060.html Brando Universal Holder - Rotatable 360 degree] - For the 'landscape only' buy the wider version which can hold securely the N900 and you can even use the keyboard at the same time; it rotates 360 degree so easily can serve the N900 phone functions. The downside is that the holder is quite big.

== Cables ==
=== Data Cables ===
* USB Data Cable (CA-101) For Nokia N900 by [http://www.cellphoneshop.net/usbdacaforno4.html CellPhoneShop]
* Mini to Micro USB adapter with Charge-only/Data switch by [http://shop.brando.com/mini-usb-to-micro-usb-adapter-w-on-off-switch_p04160c0006d001.html Brando] (useful if you want to charge from a source other than a computer or Nokia charger, such as a car USB adapter or an external powerpack such as [http://www.energizerpowerpacks.com/us/products/xp8000 Energizer's XP8000]) - Requires a Mini USB cable (available at Brando's website too). The switch does the mandatory D+/- shorting according to USB charging specs, so it's a great alternative for those reluctant to do a simple cable hack, to make all those random chargers out there work with N900

=== TV / Audio / Video Cable ===
* Nokia TV/ Audio/ Video output cable Nokia CA-75U by [http://www.shoppingtelecom.com/shopcontroller/ShopRequestAdaptor.php?REQUEST01=4000&amp;REQUEST02=4003&amp;catid=&amp;afid=3&amp;itemid=81277 ShoppingTelecom]. To make the N900 work with this cable for a simple hookup to your home stereo you need to short the yellow plug (use tin foil / whatever you feel might do the job)

== Batteries ==

=== Internal batteries ===

==== Official Nokia battery ====

* The standard internal battery included with the Nokia N900 is the 3.7 V 1320 mAh [http://europe.nokia.com/find-products/accessories/all-accessories/power/batteries/nokia-battery-bl-5j Nokia BL-5J] providing a total of 4.9 Wh of power.

==== Extended batteries ====

* The [http://www.mugen-power-batteries.com/nokia/nokia-n900/mugen-power-nokia-n900-2400mah-extended-replacement-battery-with-battery-door.html# Mugen Power HLI-N900XL] is a 3.7 V, 2400 mAh after-market replacement battery designed for the N900, providing 8.88 Wh of power at the cost of replacing the back cover and increasing the thickness of the phone by 7 mm. It is reviewed [http://gerrymoth.co.uk/?p=58 here].

* The [http://www.eastmaze.com/High-Capacity-1500mAh-BL-5J-Battery-for-Nokia-Cell-Phone-p1394.html# High Capacity 1500mAh BL-5J Battery for Nokia Cell Phone] is a 3.6 V 1500 mAh battery that fits inside the N900 like a BL-5J.  Have ordered two of these from Hong Kong and will update you if they are any good.

* According to an extensive [http://talk.maemo.org/showthread.php?t=65568  thread] where several types of aftermarket batteries were tested, the most powerful direct substitute of the stock Nokia battery so far (June 2011) is the 1420 mAH blue Scud  battery, which performed better than its own claim, showing a real 1510 mAh capacity.

* '''''In update, as of [http://talk.maemo.org/showthread.php?t=65568  Sep 2012] the best replacement BL-5J battery is the PolarCell replacement. It's easily available in Europe and has a better capacity than the best (1420mAh) blue scud.'''''

=== External batteries ===

'''Warning''': many external power packs [http://thenokiaguide.com/2009/12/16/the-n900-and-external-battery-packs/ are reported not to work well] or not to work at all with the Nokia N900. There are two principal reasons for this:

# The N900 uses a [http://danielwould.wordpress.com/2010/01/31/n900-charging-from-dumb-charger/ strict implementation of the USB specifications], which means you need a dumb charger (or a cable) that adheres to the spec. (However see [http://wiki.maemo.org/N900_Accessories#Cables &quot;about D+/- short&quot;] on this page)
# The N900's internal battery holds 4.9 Wh of power, so charging it fully from a charger based on one or two 1.2V 1800m Ah AA rechargeable cells (totalling 2.16 to 4.32 Wh of power) is simply not possible and never will be.

'''Therefore, this section lists only external batteries that are explicitly marketed as being compatible with the N900 or are confirmed as such by multiple reviews. '''

* The [http://europe.nokia.com/find-products/accessories/all-accessories/power/chargers/nokia-extra-power-dc-11/specifications Nokia Extra Power DC-11] is a 3.7V 1500mAh external battery pack, providing an additional 5.55Wh of power. It is marketed by Nokia as being compatible with the N900. However, users report that while it can top up the N900's battery, the DC-11 is not capable of recharging it from flat.
* The [http://www.proporta.com/F02/PPF02P05.php?t_id=4662&amp;t_mode=des Proporta USB Turbocharger 3400] is reported to work well with the N900 [http://nokia-n900.com/proporta-usb-turbocharger-3400-additional-power-in-your-pocket/ both in this review] and also [http://thenokiaguide.com/2009/12/16/the-n900-and-external-battery-packs/ here]. It holds a 3.7 V, 3400 mAh external power pack (providing an additional 12.58 Wh of power) and provides a charging current of 700 mA at 5.5 V (3.85 W). Note that the basic version does not come with a mains adapter and so it charges only via USB. The [http://www.proporta.com/F02/PPF02P05.php?t_id=4661&amp;t_mode=des Proporta USB Turbocharger 3400 World Pack] is the same device with the addition of a worldwide mains USB charger and a car charger. This increases your charging options, but be aware that it will not increase the charging speed. '''I just charged mine after receiving it yesterday (2012-09-06), and it is NOT charging my N900.''' - npsimons '''UPDATE: Using the [http://talk.maemo.org/showpost.php?p=426516&amp;postcount=18 slow plugin method] seems to work; I don't have a cable with shorted data pins to test as well, but likely that would work too.'''
* There are multiple reports of the [http://www.energizerpowerpacks.com/ph/products/xp2000/ Energizer XP2000] working with the Nokia N900: [http://talk.maemo.org/showpost.php?p=436060&amp;postcount=29 1][http://talk.maemo.org/showpost.php?p=727518&amp;postcount=44 2]
* There are multiple reports of the [http://www.maikai.co.uk/en/yoobao-11200ma-long-march-portable-battery-pack-charger-white.html Yoobao Long March Dual Port 11.2Ah] working with the N900, however it seems only one port (1A) will charge the N900.

== Gaming ==

* Game-gripper gaming controller for [http://www.game-gripper.eu/buy_n900.aspx Europe] and [http://www.home.game-gripper.com/buy/n900 the rest of the world].

== Memory Cards ==

=== The device ===
The [[Nokia N900|N900]] has a memory card expansion slot, which can be accessed by removing the back cover. It is next to the camera lens. This is not to be confused with the SIM slot, which is under the battery, because they are not dis-similar in size. In the device's standard configuration, it does not need to be turned off while inserting or removing a memory card. Using such a card will increase available storage which can be very useful when running other OSs, such as [http://nitdroid.com nitdroid].

=== Compatability of cards ===
The N900 supports [http://www.sdcard.org/developers/tech/sdhc/ micro SDHC] cards, it does not offically support [http://www.sdcard.org/developers/tech/sdxc/ micro SDXC cards]. 

Although there have been several confirmed reports of [http://talk.maemo.org/showthread.php?t=84871 working Sandisk 64GB microSDXC cards.] However these may not work in there supplied format.
 
micro SD memory cards are available in range of sizes/capacities (GB), data transfer speeds ([http://www.sdcard.org/developers/tech/speed_class/ class]) and types. When the N900 was released, the maximum capcity micro SD cards was 16GB (now commonly available).

The fastest cards available in SDHC format are UHS-1 (Jun 2011), there is some suggestion that these [http://talk.maemo.org/showthread.php?t=61798 can work in the device (TBC)] but there are confirmed reports of a number class 10 cards working well.

=== Maintenance ===
Memory cards are fragile and should be treated with the same care as any electrical device with exposed terminals.

Memory cards of this type are designed to be easy to remove and insert. However, in order to achieve an optimal lifespan, cards should be taken out of and put back into the device as little as possible. Continual extraction and replacement will cause wear to the contacts, of both the card and device.

Cards that present as malfunctioning often do so because of damaged contacts. Eroded contacts can be repaired, using a little contact spray. In order to clean the device contacts, put a litlle cleaner on a card's contacts and insert into the device before the cleaner dries; repeat if necessary.

=== Cards available ===
Unfortunately, not all cards are equal. Some perform as advertised, while others have less storage and/or are slower than advertised. This is particularly so with higher capacities and speeds. Furthermore, unbranded or unexpectedly inexpensive cards should be treated with extreme caution.

The tables below are results of experiences using the N900 with the each card. 
The ontent of the table (1) is a collation of user comments and is intended as a guide to other N900 users of what works, rather than a definitive list of which cards to buy. Many of the cards will be available in regions additional to those reported thus far. Table (2) lists any problems found when using some cards with the N900. Because card-use is very varied, it might be that a given card (size, speed &amp; brand) will appear in both tables.

Single digit values for Capacity &amp; Speed have been prefixed by '0' so the table sorts properly.

{|class=&quot;wikitable sortable&quot;
|+ Table (1): Cards that were found to work as expected
! Brand
! Capacity* (GB)
! Speed* (class)
! Vendor(s)
! Purchased in
(Country)
! Date 
Purchased (Approx)
! class=&quot;non-sortable&quot; | Report
|-
| Transcend
| 08
| 06
| [http://www.amazon.co.uk/dp/B001IAMME8/ UK]/[http://www.amazon.com/ US]
| UK, USA
| Jan 2011
| [http://talk.maemo.org/showpost.php?p=1021491&amp;postcount=13/], [http://talk.maemo.org/showpost.php?p=1021491&amp;postcount=16/]
|-
| SanDisk
| 16
| 04
| [http://www.carphonewarehouse.com/ carphone-warehouse]
| UK
| APR 2011
| 
|-
| Team
| 16
| 06
| [http://shop.ebay.com/sis.html?_kw=TEAM+16GB+16G+Micro+SDHC+Card+Class+6+%2B+SD+Adapter&amp;_id=360300236413# Ebay]
| HK
| OCT 2010
| [http://talk.maemo.org/showpost.php?p=1022965&amp;postcount=21]
|-
| SanDisk
| 32
| 04
| Various
| Veitnam
| May 2011
| 
|-
| SanDisk
| 32
| 02 (?)
| Various
| USA
| 2010
| [http://talk.maemo.org/showpost.php?p=1021473&amp;postcount=4/],
[http://talk.maemo.org/showpost.php?p=1021491&amp;postcount=6/], [http://talk.maemo.org/showpost.php?p=1021491&amp;postcount=7/]
|-
| SanDisk
| 16 (?)
| 02
| Various
| USA
| 2010
| [http://talk.maemo.org/showpost.php?p=1021491&amp;postcount=6/]
|-
| SanDisk
| 64
| 10
| [http://www.amazon.de/SanDisk-Ultra-microSDXC-Speicherkarte-Adapter/dp/B007JTKM30/ref=sr_1_1?ie=UTF8&amp;qid=1339795015&amp;sr=8-1 Amazon-Germany]
| Germany
| June 2012
| [http://talk.maemo.org/showpost.php?p=1222303&amp;postcount=5]
|-
| Komputerbay
| 32
| 10
| Amazon-USA(?) [http://www.amazon.com/s/ref=bl_sr_electronics?_encoding=UTF8&amp;node=172282&amp;field-brandtextbin=Komputerbay/ Komputerbay]
| USA
| May 2011
| [http://talk.maemo.org/showpost.php?p=1021491&amp;postcount=6/]
|-
| Lexar
| 32
| 10
| Various
| USA
| May 2011
| [http://talk.maemo.org/showpost.php?p=1021491&amp;postcount=7/]
|-}

{|class=&quot;wikitable sortable&quot;
|+ Table (2) - Things to be aware of... 
|-
! Brand
! Capacity (GB)
! Speed (class)
! Problem
| Report
|-
| LX Patriot
| Various
| Various
| - I/O of large files matches class rating but data transfer rates for smaller objects is much lower.
- Unexpected read/write failure and subsequent data loss.
| [http://talk.maemo.org/showpost.php?p=1021486&amp;postcount=5/]
|-
|}

== Chargers ==

=== Wall/Travel Chargers ===
* ''' AC-10U - by Nokia '''
** Input: 100-240VAC 50-60Hz, Output: 5.0VDC/1200 mA
** OEM wall charger supplied with the US-market N900.  

=== Car Chargers ===
[http://talk.maemo.org/showpost.php?p=416562&amp;postcount=15 Discussion revealed] that some early or generic car lighter to USB adapters will not charge the N900 without modification.  The charger must conform to a 1998 USB charger standard.  If in doubt, check the product specifications to confirm that it is compatible with the N900.

Also, there are reports that high power consumption usage in the car, such as operating the transmitter, media player, GPS, etc. simultaneously, can consume more power than a basic car charger can simultaneously supply.  If such usage is expected, a higher-output charger would be more effective.

* ''' Mobile Charger DC-6 - by Nokia '''
** Input: 12-24VDC, Output: 5.0VDC/550 mA
* ''' Mobile Charger DC-10 - by Nokia '''
** Input: 12-24VDC, Output: 5.0VDC/1200-1500 mA
** Has retractable cord, glows blue while charging, &quot;faster charging feature for devices that are capable of utilising the high power provided&quot;, may be too bulky for some dashboard layouts.
* ''' Motorola P513 microUSB Car Charger '''
** Output: 4.75-5.25VDC/950 mA

== Headsets/Headphones ==
=== Wired Headphones ===
* ''' Stereo Headset WH-205 - by Nokia '''
** OEM Headset supplied with the US-market N900.
** [http://talk.maemo.org/showthread.php?t=56389 Numerous reports] of longevity issues.
** No microphone
* ''' Stereo Headset WH-701 - by Nokia '''
** Volume control on wire.
** No microphone
=== Bluetooth Headphones ===
==== Monaural Bluetooth Headphones ====
* ''' Bluetooth Headset BH-804 - by Nokia '''
* ''' Bluetooth Headset BH-904 - by Nokia '''
==== Stereo Bluetooth Headphones ====
* ''' Bluetooth Stereo Headset BH-214 - by Nokia '''
** Supplied earbuds or any headphones with 3.5mm jack may be used
** Uses same charger as phone
* ''' Bluetooth Stereo Headset BH-503 - by Nokia '''
* ''' Bluetooth Stereo Headset BH-504 - by Nokia '''
** Microphone in right earpiece
* ''' Bluetooth Stereo Headset BH-505 - by Nokia '''
** Integrated microphone
** Uses separate charger with typical 2mm cylindrical pin
* ''' Bluetooth Stereo Headset BH-905 - by Nokia '''
** Noise cancellation, multiple microphones
* ''' Bluetooth Stereo Headset BH-905i - by Nokia '''
** Noise cancellation, multiple microphones

[[Category:Hardware]]
[[Category:Users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Ad-hoc WiFi Hotspot</title>
    <id>4301</id>
    <revision>
      <id>48256</id>
      <timestamp>2012-06-08T16:02:06Z</timestamp>
      <contributor>
        <username>hurrian</username>
        <id>5316</id>
      </contributor>
      <comment>Made instructions more generic. Also note, that ifconfig has been deprecated, and so has been removed from Client instructions.</comment>
      <text xml:space="preserve">== Working solution ==

See http://talk.maemo.org/showthread.php?t=73406

It may be noted, that scanning for networks on the N900 seems to disconnect everything. So starting wlancond seems to be a bad solution, better stop it.

== Old article ==

This method works but is not usable for more than a proof of concept because it suffers '''40% packet loss at close range''' between the [[Nokia N900|N900]] and the laptop.

== On the N900 ==

&lt;ol&gt;
&lt;li&gt;[[Extras-devel#How to activate Extras-devel|Enable extras-devel]]&lt;/li&gt;
&lt;li&gt;Install [http://maemo.org/packages/view/iptables/ iptables] at a [[terminal]] with [[root access]]:&lt;pre&gt;apt-get install iptables&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Install [http://maemo.org/packages/view/kernel-power-settings/ kernel-power-settings] (see [[Kernel_Power#Installation_of_the_stable_kernel_from_extras|the detailed installation instructions]]):&lt;pre&gt;apt-get install kernel-power-settings&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Connect to the Internet with GPRS&lt;/li&gt;
&lt;li&gt;Setup iptables to allow forwarding:
&lt;pre&gt;
echo 1 &gt; /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o gprs0 -j MASQUERADE
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Bring up te ad hoc wireless network:
&lt;pre&gt;
iwconfig wlan0 mode ad-hoc channel 3
ifconfig wlan0 192.168.4.15 up
iwconfig wlan0 essid N900
&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

== On the Client ==

Simply connect to the ad hoc wireless network.

In this configuration, a DHCP server is not run by the N900, so addresses will have to be manually assigned to clients.

Note that on Android devices, a patched &quot;wpa_supplicant&quot; file may be necessary to see the network.

[[Category:Connectivity]]
[[Category:N900]]
[[Category:Power users]]
[[Category:WiFi]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Bluetooth DUN Client</title>
    <id>3627</id>
    <revision>
      <id>29957</id>
      <timestamp>2010-02-22T09:30:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Bluetooth_DUN#Nokia_N900]]</comment>
      <text xml:space="preserve">#REDIRECT [[Bluetooth DUN#Nokia_N900]]</text>
    </revision>
  </page>
  <page>
    <title>N900 CPU</title>
    <id>3268</id>
    <revision>
      <id>42338</id>
      <timestamp>2011-03-04T13:35:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify section headings</comment>
      <text xml:space="preserve">Not all features of the microprocessor are exploited in the [[Nokia N900|N900]].

Some of the missing features may be possible to exploit with additional software, and some are not implemented in external hardware, or are nonfunctional due to hardware bugs.

==Summary==

The OMAP3430 contains a ARM® Cortex™-A8 superscalar microprocessor core. 

It is produced by Texas Instruments - See [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?contentId=14649&amp;navigationId=12643&amp;templateId=6123 their site for more information]

A comprehensive [http://focus.ti.com/pdfs/wtbu/SWPU223C_FinalEPDF_05_17_2010.pdf 3454 page datasheet is available].

===Features===

* IVA2+ accellerator can encode/decode (MPEG4, H264, Windows Media Video, RealVideo etc.) at DVD resolutions.
* vector floating-point acceleration,
* dedicated 2D/3D graphics hardware accelerator
* Integrated POWERVR SGX™ graphics core with  OpenGL ES® 2.0 and OpenVG™,  support.
* Composite and S-video TV output
* XGA (1024x768 pixels), 16M-color (24-bit definition) display support
* Flatlink™ 3G-compliant serial display and parallel display support
* High Speed USB2.0 On-The-Go support

===Imaging===

There is a hardware On-the-fly JPEG compression unit, which can cope with up to 12MP cameras.

===Security===

The built-in M-Shield™ security technology enables operators to add value-added services for content protection, transaction security and secure network access, plus terminal security functions such as secure flashing and booting, terminal identity protection and network lock protection. Enhanced with ARM TrustZone™ support, OMAP3430 security is based on open APIs and provides an environment for secure applications that deliver robust performance and interoperability.

===Power management===

The OMAP3430 boast the most advanced and effective power management techniques in the market. The chip makes exhaustive use of TI's SmartReflex technologies which include a broad range of intelligent and adaptive hardware and software techniques that dynamically control voltage, frequency and power based on device activity, modes of operation and temperature. Additionally the OMAP3430 is supported by the TWL4030 power management/audio codec companion device which is designed specifically to maximize battery life and boost system performance in mobile phones that leverage the OMAP3430 applications processor. The highly integrated TWL4030 combines SmartReflex-compliant voltage regulators and converters, a high-fidelity audio/voice codec, class-AB/D audio amplifiers, high-speed USB 2.0 OTG transceiver, battery charger circuitry and much more into a single chip, significantly reducing board space and system cost while managing power consumption efficiently.

Key Features:
* Flexible system support
* Seamless connectivity to Hard Disk Drive (HDD) devices for mass storage
* Leverages SmartReflex™ technologies for advanced power reduction
* M-shield™ mobile security enhanced with ARM TrustZone™ support
* Software-compatible with OMAP™ 2 processors
* HLOS support for customizable interface
* Support for OpenGL ES 1.1

==In Progress Development==

There are a number of projects to improve support for some of the processor features.

These vary from [[N900 Hardware USB Host]] to [http://www.mail-archive.com/linux-crypto@vger.kernel.org/msg04318.html enabling the onboard sha-1 and MD5 hashing engine].

[[Category:N900]]
[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Email Options</title>
    <id>3149</id>
    <revision>
      <id>24157</id>
      <timestamp>2009-12-06T11:53:44Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[N900 Email Options]] moved to [[Email]]: &quot;Options&quot; serves no purpose. The page isn't N900 specific. General useful information on getting, sending and readong email on the tablet.</comment>
      <text xml:space="preserve">#REDIRECT [[Email]]</text>
    </revision>
  </page>
  <page>
    <title>N900 FAQ</title>
    <id>2916</id>
    <revision>
      <id>40565</id>
      <timestamp>2010-12-06T14:37:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>move content and redirect to [[User FAQ]]</comment>
      <text xml:space="preserve">#REDIRECT [[User FAQ#N900]]</text>
    </revision>
  </page>
  <page>
    <title>N900 FM radio receiver</title>
    <id>4220</id>
    <revision>
      <id>43248</id>
      <timestamp>2011-04-27T21:14:34Z</timestamp>
      <contributor>
        <ip>87.20.163.222</ip>
      </contributor>
      <comment>/* User */</comment>
      <text xml:space="preserve">The [[Nokia N900|N900]] FM receiver allows the reception of broadcast FM radio signals using the headset/headphones as an antenna.

==Hardware==

The FM radio is part of the [[N900 Hardware Bluetooth|Bluetooth chip]]. It receives FM radio signals using the headset or earphones plugged into the 3.5 mm socket as an antenna (actually arbitrary headset/headphones, or any other cable, for this purpose).

The audio output of the FM radio is connected to the audio codec chip.
This can be routed directly to the headphones - but possibly not the speaker due to concerns about speaker damage due to the speakers not being able to handle bass.

The existing software that uses the radio passes the audio through the CPU, implementing a software filter for speaker protection when the speakers are enabled.

==Software==

===Kernel===

The FM receiver is implemented as a video4linux radio device by the [http://mxr.maemo.org/fremantle/source/kernel/drivers/media/radio/radio-bcm2048.c bcm2048] module. This controls the receiver over the [[N900 Hardware Bus I2C]].

It appears as device &lt;code&gt;/dev/radio1&lt;/code&gt;.
&lt;pre&gt;
v4l2-ctl --all -d /dev/radio1
Driver Info:
 Driver name   : bcm2048
 Card type     : Broadcom bcm2048 FM Radio Recei
 Bus info      : I2C: 0x22
 Driver version: 1
 Capabilities  : 0x00050400
  Tuner
  Radio
 Video input : 0
Frequency: 1518400 (94.900000 MHz)
Video Standard = 0x00000000
Streaming Parameters Video Capture:
 Frames per second: 25.000 (25/1)
 Read buffers     : 0
Tuner:
 Name                 : FM Receiver
 Capabilities         : 62.5 Hz stereo 
 Frequency range      : 87.5 MHz - 108.0 MHz
 Signal strength/AFC  : 0%/0
 Current audio mode   : stereo
 Available subchannels: stereo 
&lt;/pre&gt;

The module is only loaded when the radio is used.

It is also exposed under sysfs.
&lt;pre&gt;
/sys/class/i2c-adapter/i2c-3/3-0022# ls
audio_route               fm_rssi                   rds_data
bus                       fm_search_mode_direction  rds_pi
dac_output                fm_search_rssi_threshold  rds_pi_mask
driver                    fm_search_tune_mode       rds_pi_match
fm_af_frequency           modalias                  rds_ps
fm_best_tune_mode         mute                      rds_rt
fm_carrier_error          name                      rds_wline
fm_deemphasis             power                     region
fm_frequency              power_state               region_bottom_frequency
fm_hi_lo_injection        rds                       region_top_frequency
fm_rds_flags              rds_b_block_mask          subsystem
fm_rds_mask               rds_b_block_match         uevent
&lt;/pre&gt;
The sysfs interface allows configuration of region (which affects frequency ranges and other parameters).

===User===

There are 3 userspace application that uses the FM receiver:

[http://maemo.org/packages/view/fmradio/ FMRadio],
[http://maemo.org/packages/view/qradio/ QRadio]
and
[http://maemo.org/packages/view/cfmradio/ C FM Radio]

[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 FM radio transmitter</title>
    <id>3239</id>
    <revision>
      <id>47216</id>
      <timestamp>2012-04-10T22:27:59Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>/* Features */ datasheet</comment>
      <text xml:space="preserve">The N900 has a FM radio transmitter capable of sending audio several meters.

==Hardware==

The SI4713 chip is used to transmit FM radio with radiotext in the range 76-108MHz from a digital or analog audio input.

=== Features ===

From the datasheet:
* Integrated receiver for receive power measurement
* Worldwide FM band support (76–108 MHz) for transmit
* Requires only two external components
* Frequency synthesizer with integrated VCO
* Digital stereo modulator
* Programmable pre-emphasis (50/75 µs)
* Analog/digital audio interface
* Programmable reference clock
* RDS/RBDS transmit encoder (Si4713 only)
* PCB loop antenna support with self calibrated capacitor tuning
* Programmable transmit level
* Programmable modulation
* 2.7 to 5.5 V supply voltage
* Digital gain compression
* Integrated LDO regulator
* 3 × 3 × 0.55 mm 20-pin QFN
* Pb-free and RoHS Compliant

It is short range only, see the section on [[#Typical Range|typical range]].

It can also receive the signal level on the tuned frequency. This enables transmitter application to scan all frequencies, checking for vacant ones, and suggesting empty frequencies to the user for selection as transmission frequencies.

The [[Nokia N900|N900]] controls the FM transmitter through the I2C(2) bus, and supplies analog audio (same audio lines as HP-AMP) to the transmitter. The transmitter's digital audio inputs are unused (NC).

The FM signal is transmitted from a loop antenna built into the case, and connected to the PCB with clips.

product marketing sheet: https://www.silabs.com/products/audiovideo/fmtransmitters/Pages/Si471213.aspx
Full datasheet http://www.silabs.com/Support%20Documents/TechnicalDocs/AN332.pdf.

The documentation for the driver, along with some information on the chip is at
http://www.mjmwired.net/kernel/Documentation/video4linux/si4713.txt

It is connected to the [[N900 Hardware Bus I2C|I2C]] bus-2.

==Software==
===Kernel===
It is controlled through the kernel module fmtx_si4713, which implements the interfaces /dev/radio0 - a video4linux device. 

v4l2-ctl dumps the following information about the device. 

 v4l2-ctl --all -d /dev/radio0
  Driver Info:
  Driver name   : radio-si4713
  Card type     : Silicon Labs Si4713 FM Radio Tr
  Bus info      : I2C: 0x63
  Driver version: 1
  Capabilities  : 0x00010000
   Tuner
 Video input : 0
 Frequency: 1400000 (87.500000 MHz)
 Video Standard = 0x00000000
 Streaming Parameters Video Capture:
 Frames per second: 25.000 (25/1)
 Read buffers     : 0
 Tuner:
  Name                 : FM Transmitter
 Capabilities         : 62.5 Hz stereo 
 Frequency range      : 87.5 MHz - 108.0 MHz
 Signal strength/AFC  : 0%/0
 Current audio mode   : stereo
 Available subchannels: stereo 


See [http://www.stanford.edu/~blp/fmtools/ for more information on the video4linux API].
The driver also exposes the sysfs directory ./class/i2c-adapter/i2c-2/2-0063/ .

===User===
The FM transmitter can be enabled in the settings application, and there are third party applications to more easily enable it.

No software currently uses the ability of the chip to scan for free channels. 

The package [http://maemo.org/packages/view/fm-boost/ FM boost] maximizes the transmitter power. In some cases, this may improve reception. In others, the transmitter will already be set to highest output. 

There are several bugs open with regards the FM transmitter [https://bugs.maemo.org/show_bug.cgi?id=6792 this one] for example is regarding the policy to turn off the FM transmitter when the device is plugged into a computer using the USB cable.

The D-Bus interface is documented in [http://maemo.org/api_refs/5.0/5.0-final/fmtx-middleware/fmtx_api.html this page]

==Typical Range==

Low power transmitters that are license compliant - do not exceed the regulations - are inherently short range devices and will have poor performance in many desired use-cases simply due to the regulatory limit on power usage.

In the US - the limit is approximately 15 nW, in the UK, 50 nW.

The below OFCOM document lists ranges to a good receiver with a fully extended antenna as 4m for 15nW and 8m for 50nW. (to achieve 'noiseless' reception)

[http://www.ofcom.org.uk/radiocomms/ifi/licensing/classes/rlans/technical/tests/srdtests.pdf This document from OFCOM (UK licensing agency) outlines test results for 50nW devices)] [http://www.ofcom.org.uk/consult/condocs/wtexemption/responses/bbc.pdf and this is a BBC response to the OFCOM proposal to legalise them in the UK]. Quoting the second:

:&quot;The BBC appreciates the advantage in principle of authorising for licence-exempt use low-power Band II transmitters constructed strictly to a common European type-approval regime and ‘CE’ marked.

:However, the chosen maximum ERP of 50 nW is neither sufficiently small to avoid creating interference to broadcast reception nor sufficiently large to guarantee that such ‘Micro’ FM transmitters will actually work as intended in areas where Band II is utilised intensively, such as London.&quot;

[[Category:N900]]
[[Category:N900_Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 GPS Reverse Engineering</title>
    <id>4362</id>
    <revision>
      <id>48338</id>
      <timestamp>2012-06-12T03:12:22Z</timestamp>
      <contributor>
        <username>luke-jr</username>
        <id>3167</id>
      </contributor>
      <comment>/* Wireshark */</comment>
      <text xml:space="preserve">acquire packets like:
 strace -p $(pidof location-daemon) -e read=6 2&gt;&amp;1|grep '| 000'

alternatively you can capture them from the network interface, but this will include other modem information:
 tcpdump -i phonet0 -s 0 -w phonet.cap

== Packet Graph ==

 | 00000  00 92 01 00 00 00 00 xx  05 00 00 00 09 03 00 10
          S------------------- T4  DL S-------------------
 | 00010  07 da 07 15 00 xx xx 00  xx xx 00 00 09 02 00 1c
          S------------- TL TS --        S----------------
 | 00020  xx xx xx xx xx xx xx xx  00 00 xx xx 00 00 08 8b
          DL---       DL--- TS     S----       S---- ^eph^
 | 00030  xx 00 xx xx xx xx xx xx  09 04 00 14 62 7e xx xx
             S- DL TS---    DL MS  S---------- track SS---
 | 00040  xx xx 00 xx xx xx 00 xx  00 xx 00 00 09 05 00 74
          DL--- S-    TL    S- DS  S- DS S------------- DL
 | 00050  09 00 00 00 00 02 xx xx  00 xx xx xx xx xx 00 00
          DL S---------- T4--- MS  S- TS--- I  TS MI S----
 | 00060  00 04 xx xx xx xx xx xx  xx xx 00 00 00 xx xx xx
          S- T4 T3 TS S- TL TS MS  TS MD S------- T4 TS---
 | 00070  00 xx xx xx xx xx 00 00  00 xx xx xx 00 03 xx xx
          S- TS--- I  TS MS S-------- T3 MS MS S- DL TS MS
 | 00080  xx xx 00 00 00 xx xx xx  00 xx xx xx xx xx 00 00
          TS MD S------- T3 TS MS  S- TS--- MS TS MI S----
 | 00090  00 xx xx xx 00 03 xx xx  xx xx 00 00 00 xx xx xx
          S- TS------ S- DL TS MD  TS MS S------- TS SS+TS
 | 000a0  00 xx xx xx xx xx 00 00  00 xx xx xx 00 xx xx xx
          S- TL TS MS TS MD S-------- TS------ S- TL TS MI
 | 000b0  xx xx 00 00 00 xx xx xx  00 xx xx xx xx xx 00 00
          TS--- S------- TS--- MS  S- TS--- MI TS MS S----
 | 000c0  09 08 00 0c xx xx xx xx  xx xx xx xx
          DL----------------------------------

=== Key ===
*S = Static, unchanging normally
*MS = Mostly static, varying in value normally slightly
*SS = Sometimes static, completely different values sometimes
*I = Incrementing
*MI = Incrementing, but not every packet
*D = Decrementing
*MD = Decrementing, but not every packet
*TS = Time-sensitive; changes over (short) durations of time
*TL = Time-sensitive, longer duration
*T3 = &quot;
*T4 = &quot;, overnight
*DS = Distance-sensitive; changes over at least 30m distance
*DL = Distance-sensitive, like across the world

== Packet Analysis ==
*??? = mode: The mode of the fix 
*??? = fields: A bitfield representing which items of this tuple contain valid data
*00 = ISI sequence ID (seems to be always 0 for GPS)
*01 = GPS Data Opcode (0x92)
*10,11 = time year
*12 = time month
*13 = time day
*15 = time hour
*16 = time minute
*18,19 = time seconds and milliseconds (in milliseconds)
*1a,1b = *probably* ept: Time accuracy, but *always* 0, so no way to verify
*20,21,22,23 = latitude / 360 * 256*256*256*256
*24,25,26,27 = longitude / 360 * 256*256*256*256
*28 =
*2b,2c = 0590-12a9 (hex)
*2e,2f = eph (cm)
*30 =
*32,33,,36,37 = altitude; ((p32;33) - (p36;37)) / 2 = meters
*(34?,)35 = (double epv: Vertical position accuracy) * 2
*3c,3d = track: Direction of motion in hundredths of a degree
*3e,3f = epd: Track accuracy (in hundredths?)
*42,43 = speed, in centimetres per second
*44,45 = eps: speed accuracy, in centimetres per second
*46,47 = climb: Current rate of climb in cm/s
*48,4a = epc: Climb accuracy, in cm/s

== Protocol Details ==

NOTE: I am counting octets based on zero.

The actual packets are comprised of &quot;sub-packets&quot;.
The overall packet has a 12 byte header.
The number of sub-packets is located at octet 8 (and possibly little-endian extended to octet 11).

Each subpacket has a 4 byte header:
* Octet 0 is always 9
* Octet 1 is the subpacket type
* Octet 2 is always 0
* Octet 3 is the length of the subpacket (which includes the subpacket header itself)

Subpacket 2 contains position information:
* Octets 0-3 are the latitude
* Octets 4-7 are the longitude
* Octets 12-15 are &quot;eph&quot; (in centimetres)
* Octets 18-23 are the altitude (and accuracy information)

Subpacket 3 contains date and time information:
* Octets 0-1 are the year
* Octet 2 is the month
* Octet 3 is the day of month
* Octet 5 is the hour
* Octet 6 is the minute
* Octets 8-9 are milliseconds (including seconds)
* Octets 10-11 are the time accuracy

Subpacket 4 contains information on track, speed, and climb:
* Octets 0-1 are track (direction of motion) in cm/sec
* Octets 2-3 are the track accuracy
* Octets 6-7 are the speed in cm/sec
* Octets 8-9 are speed accuracy
* Octets 8-11 are climb in cm/sec
* Octets 12-13 are climb accuracy

Subpacket 5 contains satellite information:
* Octet 0 is the number of sats visible
* Beginning with octet 8, there are series of 12-octet info for each sat visible:
** Octet 1 is the PRN
** Octet 2 is 1 if the sat is being used, and 0 otherwise
** Octets 3-4 are the signal strength
** Octets 6-7 are the elevation
** Octets 8-9 are the azimuth

Subpacket 7 contains information on the GSM cellular network:
** Octets 0-1 contain the Mobile Country Code
** Octets 2-3 contain the Mobile Network Code
** Octets 4-5 contain the Location Area Code
** Octets 6-7 contain the Cell ID

Subpacket 8 contains information on the WCDMA cellular network:
** Octets 0-1 contain the Mobile Country Code
** Octets 2-3 contain the Mobile Network Code
** Octets 4-7 contain the UC ID

== Wireshark ==

[[User:sre|Sebastian Reichel]] writes a lowlevel library to access the N900's modem features and a wireshark plugin to analyze the packages. The information from above is currently only included in the Wireshark Plugin:

* [http://elektranox.org/n900/images/wireshark/04.png Screenshot]
* [https://git.ring0.de/isi-wireshark-plugin/ Plugin]

[http://maemo.org/profile/view/luke-jr Luke Dashjr] wrote small program in C which show GPS data from phonet modem stack.

* [http://luke.dashjr.org/tmp/code/gps2.c gps2.c]

[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Games</title>
    <id>3491</id>
    <revision>
      <id>27954</id>
      <timestamp>2010-02-01T19:55:58Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[N900 Games]] moved to [[Games]]: Not N900 specific</comment>
      <text xml:space="preserve">#REDIRECT [[Games]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hacking Compass</title>
    <id>3633</id>
    <revision>
      <id>29998</id>
      <timestamp>2010-02-22T16:03:07Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[N900 Hacking Compass]] moved to [[Digital compass]] over redirect: Page title capitalisation (no trailing caps, no CamelCase). Shouldn't include device name in page title. Page name isn't very descriptive - what's a &quot;hacking compass&quot;? Overall, &quot;Digital </comment>
      <text xml:space="preserve">#REDIRECT [[Digital compass]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Accelerometer</title>
    <id>4266</id>
    <revision>
      <id>35884</id>
      <timestamp>2010-06-16T14:11:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[N900 Hardware Accelerometer]] moved to [[N900 accelerometer]]: capitalization and shorten</comment>
      <text xml:space="preserve">#REDIRECT [[N900 accelerometer]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Accellerometer</title>
    <id>3337</id>
    <revision>
      <id>36072</id>
      <timestamp>2010-06-18T13:56:09Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[N900 accelerometer]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Audio Codec</title>
    <id>4230</id>
    <revision>
      <id>37739</id>
      <timestamp>2010-08-12T18:14:23Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <comment>/* Hardware */</comment>
      <text xml:space="preserve">The Audio codec encodes and decodes audio.

==Hardware==

The audio codec is a low-power 4 channel codec [http://focus.ti.com/docs/prod/folders/print/tlv320aic34.html From TI].

It is connected to the CPU using [[N900 Hardware Bus I2C|I2C]] and the MCBSP serial digital audio interface.
===Unutilised Functions===
The audio codec supports a flexible digital filter on both the input and output.
This can be used to perform equalization with no CPU load.

This function is not used, and pulseaudio is used for this task when speakers are enabled. 

It can also route the audio directly from the FM receiver to the speakers or the headphones, optionally through this hardware EQ module, also reducing power in this usecase, by entirely eliminating CPU usage.

==Software==
===User===
The audio codec is driven by pulseaudio, through ALSA.
The ALSA interface is usually not exposed in maemo 5 - adding:
&lt;pre&gt;
pcm.real {
	type hw
	card 0
}

ctl.real {
	type hw           
	card 0
}
&lt;/pre&gt;
to /etc/asound.conf enables a hardware device.
Stopping pulseaudio may be required to use this.


===Kernel===

The codec is driven by [http://mxr.maemo.org/fremantle/source/kernel/sound/soc/omap/rx51.c a driver built into the kernel].

[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Autofocus</title>
    <id>4229</id>
    <revision>
      <id>38525</id>
      <timestamp>2010-09-13T13:02:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add camera link</comment>
      <text xml:space="preserve">The [[Nokia N900|N900]] [[N900 camera sensor|main camera]] uses a coil to move a lens, to focus.

==Hardware==

This is implemented in hardware by an analog devices AD5820. See [http://www.analog.com/en/digital-to-analog-converters/da-converters/ad5821/products/product.html datasheet].

==Software==

This is driven in kernel by the ad5820 module.

[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Battery Charger</title>
    <id>4191</id>
    <revision>
      <id>48855</id>
      <timestamp>2012-07-30T09:29:41Z</timestamp>
      <contributor>
        <username>pali</username>
        <id>2764</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">The battery charger charges the battery, and supplies power when running connected to USB. It can also supply power for [[N900 Hardware USB Host|USB Host]] mode.

==Hardware==

The battery charger is the [http://focus.ti.com/docs/prod/folders/print/bq24150a.html bq24150a] charger from TI.

It features reverse boost mode - which enables power of up to 200 mA@5V to be supplied to a USB device connected to the N900.

When initially powered on, this chip, and the [[N900 Hardware USB PHY|USB interface]] chip enable charging from dead without any software running. This mode of charging respects the maximum current available without negotiation - 100 mA in the case of a normal USB connection, or 1.2 A in the case the charger is plugged in (actually max current from USB in this autonomous mode is limited to 500 mA).

It also properly supports charging very depleted batteries gently.

There are safety implications of software drivers for this chip, the chip can be configured to have an output voltage of up to 4.44 V, which is higher than the absolute maximum voltage of 4.2 V that li-ion batteries can be safely charged to.

==Software==

There is no kernel driver for this chip - it is driven over I2C by [[N900 Software BME|BME]].
[[N900 Software BME|BME (Battery Managment Entity)]] needs replaced with an open-source version in order to allow easy operation in [[N900 Hardware USB Host|USB host mode]]. 

Partial third party kernel driver exists, see commits in android-n900 kernel:
[http://gitorious.org/android-n900/kernel-ng/commit/a7aa7f049e5be547a65247b7d88f6d248929d26c] and  [http://gitorious.org/android-n900/kernel-ng/commit/9c1d036cf952134eb75adcc65936a94ac6891e89]

[[category:N900_Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Bluetooth</title>
    <id>4219</id>
    <revision>
      <id>38527</id>
      <timestamp>2010-09-13T13:13:40Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Software */ link</comment>
      <text xml:space="preserve">The [[Nokia N900|N900]] Bluetooth chip, a [http://www.broadcom.com/products/Bluetooth/Bluetooth-RF-Silicon-and-Software-Solutions/BCM2048 Broadcom BCM2048], allows short-range communication with a wide variety of devices.

==Hardware==

The [[N900 FM radio receiver|FM radio receiver]] is part of the same chip.

==Software==

{{main|Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Maemo Connectivity#Bluetooth Libraries}}

[[Category:N900 Hardware]]
[[Category:Bluetooth]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Bus I2C</title>
    <id>4233</id>
    <revision>
      <id>35459</id>
      <timestamp>2010-06-07T16:28:42Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <comment>Redirecting to [[N900 Hardware Bus I2c]]</comment>
      <text xml:space="preserve">#redirect [[N900 Hardware Bus I2c]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Bus I2c</title>
    <id>4227</id>
    <revision>
      <id>40703</id>
      <timestamp>2010-12-13T11:40:34Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>/* Bus ? */</comment>
      <text xml:space="preserve">[[:wikipedia:I2C|I2C]] is a simple serial bus, used in many devices.

==Hardware==

===Bus 1===
* 0x48 0x49 0x4a 0x4b [[N900 Hardware Chipset|Gaia/chipset]]

===Bus 2===
* 0x18 0x19 [[N900 Hardware Audio Codec|Audio codec]]
* 0x29 [[N900 light meter]]
* 0x30 [[N900 Hardware Flash Torch]]
* 0x32 [[N900 Hardware LED]]
* 0x60 [[N900 headphone amplifier]]
* 0x63 [[N900 FM radio transmitter|FM radio transmitter]]
* 0x55 [[N900 Hardware Charge Meter]]
* 0x6B [[N900 Hardware Battery Charger]]
* 0x10 [[N900 VGA camera|VGA Camera (control)]]

===Bus 3===
* 0x0c [[N900 Hardware Autofocus|Lens focus ]]
* 0x1d [[N900 accelerometer|Accelerometer]]
* 0x22 [[N900 FM radio receiver|FM Receiver]]
* 0x3e [[N900 camera sensor|Front Camera (control)]]

===Bus ?===
* 0x? [[N900 Hardware GPS|GPS]]
edit: GPS is connected to RAPUYAMA and available to application processor only via libisi / cellmo-proxy

==Software==

The [[Nokia N900|N900]] software driving I2C comes in three flavors.

Firstly, there are a large number of kernel drivers.

Then, there are a small number of devices 'bit banged' through I2C ioctls - BME for example does this with the [[N900 Hardware Charge Meter|charge meter]] and [[N900 Hardware Battery Charger|battery charger]].

Finally, there are probably some I2C components in the Rapuyama and assorted cellphone/GPS hardware. These are not visible to the casual developer. (you have to open the N900 and probe stuff, or hack the phone firmware).

[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware CPU</title>
    <id>4268</id>
    <revision>
      <id>35893</id>
      <timestamp>2010-06-16T14:19:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[N900 Hardware CPU]] moved to [[N900 CPU]]: shorten</comment>
      <text xml:space="preserve">#REDIRECT [[N900 CPU]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Camara Sensor</title>
    <id>3323</id>
    <revision>
      <id>35934</id>
      <timestamp>2010-06-16T14:51:58Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[N900 camera sensor]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Camera Sensor</title>
    <id>4275</id>
    <revision>
      <id>35931</id>
      <timestamp>2010-06-16T14:50:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[N900 Hardware Camera Sensor]] moved to [[N900 camera sensor]]: shorten and capitalization</comment>
      <text xml:space="preserve">#REDIRECT [[N900 camera sensor]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Charge Meter</title>
    <id>4192</id>
    <revision>
      <id>46190</id>
      <timestamp>2011-12-31T14:35:43Z</timestamp>
      <contributor>
        <username>rdorsch</username>
        <id>904</id>
      </contributor>
      <comment>/* Software */ typo fixed</comment>
      <text xml:space="preserve">There is a charge meter chip in the [[Nokia N900|N900]], a [http://focus.ti.com/docs/prod/folders/print/bq27200.html TI BQ27200] this can be used to accurately measure the state of the battery.

==Hardware==

In many phones, this chip would be integrated into the battery, which has a number of benefits, from more rapid temperature sensing of potentially dangerous conditions in the battery, to being able to swap the battery, and have the swapped batteries charge accurately measured instantly.

The N900 integrates this chip onto the motherboard.

==Software==

It does not function properly in normal use with the stock [[N900 Software BME|BME]] as that usually turns off the phone before the threshold which would enable the charge monitor to properly learn the battery capacity.

With a replacement BME, it can learn battery capacity, and be used for useful life predictions.

It also can be used for energy profiling - see [[N900_Hardware_Power_Consumption|this page on power use]].


There is no kernel driver in the default N900 software for this chip, a [http://tomoyo.sourceforge.jp/cgi-bin/lxr/source/drivers/power/bq27x00_battery.c partial third party driver bq27x00_battery exists].

This third party driver has some issues - for example - the 'current_now' value it exports is not mA, but needs multiplied by (3.57/n) - where n is the sense resistor in the N900. The sense resistor seems to be between 20 and 22 mR - but no accurate measurements have been performed, and the schematic does not help with this.

Now on kernel mailinglist is series of patches which improve (report more properties about battery then BME) kernel driver bq27x00_battery. All these issues are fixed. Backported patches for N900 are here: http://talk.maemo.org/showpost.php?p=925980&amp;postcount=674

As of now (2011-10-20) this kernel module still isn't fixed for good and introduced massive problems by either exclusively opening I2C bus so bme couldn't work anymore when started after this module got loaded, or the patch introduced with powerkernel-48 thoroughly messed up '''all I2C''' on the system, thus creating possible race conditions that may even destroy your hardware. 

There's a [[N900_Hardware_Charge_Meter/bq-script|script]] and acompanying I2Ctools to read out the complete info from bq27200: http://enivax.net/jk/n900/bq.tar (thanks ShadowJK)
Or you can use Joerg_rw's original bq27k-detail script (needs bash, originally built for OM NEO FR: http://people.openmoko.org/joerg/battery/bq27k-detail), with this cmdline:
&lt;pre&gt;i2cdump -y 2 0x55 b|tail -n +2|cut -d &quot; &quot; -f 2-17|./bq27k-detail &quot; &quot;&lt;/pre&gt;
New version available at http://people.openmoko.org/joerg/battery/bq27k-detail2 works (with bash and i2c-tools installed) without any cmdline acrobatics, on OM FR and stock N900 (no broken bq27200.ko kernel module and thus no power kernel needed. Might even fail on some powerkernel versions when that module got loaded)
[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Charge Meter/bq-script</title>
    <id>4430</id>
    <revision>
      <id>38504</id>
      <timestamp>2010-09-13T09:16:22Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use &lt;source&gt;, categorize</comment>
      <text xml:space="preserve">&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh

RS=20

# 1 = Warn if battery is getting low
WARN=1


# Internal: Have we warned user?
FIRSTWARNING=0
SECONDWARNING=0

debugecho()
{
        if [ $LOOPMODE -eq 0 ]; then
                echo $*
        fi
}
debugechon()
{
        if [ $LOOPMODE -eq 0 ]; then
                echo -n $*
        fi
}
dot()
{
        debugechon &quot;.&quot;
}

if [ ! -e ./i2cget ] ; then
        echo &quot;Need ./i2cget&quot;
        return
fi

LOOPMODE=0
LOOPCOUNT=0
if [ -n &quot;$1&quot; ] ; then
        if [ $(($1)) -gt 1 ] ; then
                LOOPMODE=$(($1))
        else
                LOOPMODE=1
        fi
fi

echo LOOPMODE=$LOOPMODE

doit=1
while [ $doit -eq 1 ] ; do ## MAIN LOOP ##

doit=0
############## Data acquisition ##############

#debugechon &quot;About to stop bme. &quot;
#killall -STOP bme_RX-51
#debugecho &quot;Bme stopped.&quot;
# sleep 1;
debugechon &quot;Reading values&quot;

AR=$(./i2cget -y 2 0x55 0x02 w) ; dot
ARTTE=$(./i2cget -y 2 0x55 0x04 w); dot
VOLT=$(./i2cget -y 2 0x55 0x08 w) ; dot
TEMP=$(./i2cget -y 2 0x55 0x06 w) ; dot
CSOC=$(./i2cget -y 2 0x55 0x2c)  ; dot
RSOC=$(./i2cget -y 2 0x55 0x0b)  ; dot
NAC=$(./i2cget -y 2 0x55 0x0c w) ; dot
CACD=$(./i2cget -y 2 0x55 0x0e w) ; dot
CACT=$(./i2cget -y 2 0x55 0x10 w); dot
AI=$(./i2cget -y 2 0x55 0x14 w)  ; dot
TTF=$(./i2cget -y 2 0x55 0x18 w) ; dot
TTE=$(./i2cget -y 2 0x55 0x16 w) ; dot
FLAGS=$(./i2cget -y 2 0x55 0x0A) ; dot


if [ $LOOPMODE -eq 0 ] ; then
CYCL=$(./i2cget -y 2 0x55 0x28 w) ; dot
CYCLTL=$(./i2cget -y 2 0x55 0x2a w) ; dot
SI=$(./i2cget -y 2 0x55 0x1A w) ; dot
STTE=$(./i2cget -y 2 0x55 0x1C w); dot
MLI=$(./i2cget -y 2 0x55 0x1e w) ; dot
MLTTE=$(./i2cget -y 2 0x55 0x20 w); dot
LMD=$(./i2cget -y 2 0x55 0x12 w) ; dot

ILMD=$(./i2cget -y 2 0x55 0x76); dot
EDVF=$(./i2cget -y 2 0x55 0x77); dot
EDV1=$(./i2cget -y 2 0x55 0x78); dot
ISLC=$(./i2cget -y 2 0x55 0x79); dot
DMFSD=$(./i2cget -y 2 0x55 0x7A); dot
TAPER=$(./i2cget -y 2 0x55 0x7B); dot
#TODO: PKCFG
IMLC=$(./i2cget -y 2 0x55 0x7D); dot
fi

debugecho &quot;done.&quot;
#debugechon  &quot;Waking up bme.&quot;
#killall -CONT bme_RX-51
#debugecho &quot;Done. &quot;
debugecho &quot;&quot;

############## Calculate ##############

CSOC=$(($CSOC))                      # CSOC Compensated state of charge %. CACT/LMD * 100
RSOC=$(($RSOC))                      # RSOC Relative state of charge %. NAC/LMD * 100
NAC=$(($NAC * 3570 / $RS / 1000))    # NAC Nominal available capaciy, mAh.
CACD=$(($CACD * 3570 / $RS / 1000))  # CACD Discharge rate compensated available capacity, mAh.
CACT=$(($CACT * 3570 / $RS / 1000))  # CACT Temperature compensated CACD, mAh.
AI=$(($AI * 3570 / $RS / 1000))      # AI Average (last 5.12 seconds) current, mA.
VOLT=$(($VOLT))                      # VOLT Battery voltage, mV.
TTF=$(($TTF))                        # TTF Time to Full minutes. 65535 if no charging.
TTE=$(($TTE))                        # TTE Time to Empty minutes. 65535 if charging.

F=$(($FLAGS))
FLAGS_CHARGE=$(($F/128))             # There is charging activity. AI is measuring charge current.
F=$(($F-$F/128*128))
FLAGS_NOACT=$(($F/64))               # No charge/discharge activity detected.
F=$(($F-$F/64*64))
FLAGS_IMIN=$(($F/32))                # Charge current has tapered off (battery charge is near/at completion)
F=$(($F-$F/32*32))
FLAGS_CI=$(($F/16))                  # Capacity inaccurate. &gt;32 cycles since last learning cycle.
F=$(($F-$F/16*16))
FLAGS_CALIP=$(($F/8))                # External offset calibration in progress.
F=$(($F-$F/8*8))
FLAGS_VDQ=$(($F/4))                  # Valid discharge. All requirements met for learning the battery's capacity when reaching EDV1
F=$(($F-$F/4*4))
FLAGS_EDV1=$(($F/2))                 # First end of discharge-voltage flag. Battery voltage is at or below preprogrammed EDV1 threshold. If VDQ is 1, LMD is updated and VDQ set to 0.
F=$(($F-$F/2*2))
FLAGS_EDVF=$F                        # Final end of discharge-voltage flag. The battery has discharged to 0% threshold.



if [ $LOOPMODE -eq 0 ] ; then
AR=$(($AR * 3570 / $RS / 1000))      # AR At-rate
ARTTE=$(($ARTTE))                    # At-rate time to empty
LMD=$(($LMD * 3570 / $RS / 1000))    # LM Last measured discharge, mAh.
SI=$(($SI * 3570/ $RS / 1000))       # SI Standby Current, mA.
STTE=$(($STTE))                      # STTE Time to empty at standby, minutes.
MLI=$(($MLI * 3570 / $RS / 1000))    # MLI Maximum Load Current, mA.
MLTTE=$(($MLTTE))                    # MLTTE Time to empty at maximum load, minutes.
CYCL=$(($CYCL))                      # CYCL Cycles since last learning cycle (last time LMD was updated)
CYCLTL=$(($CYCLTL))                  # CYCLTL Cycles since last full reset.

ILMD=$(($ILMD * 913920 / $RS / 1000)) # eeprom Initial Last Measured Discharge. LMD = ILMD if no valid learning cycle has been completed.
EDVF=$(($EDVF * 8 + 8*256))           # eeprom End of discharge voltage threshold.
EDV1=$(($EDV1 * 8 + 8*256))           # eeprom 6.25% Capacity voltage threshold.
ISLC=$(($ISLC * 7140 / $RS / 1000))   # eeprom Initial standby load current.

# DMF in bits 4:7
DMF=$(($DMFSD/16))
# SD in bits 0:3
SD=$(($DMFSD-$DMF*16))
DMF=$(($DMF * 4900))                 # eeprom Digital Magnitude Filter, nanoVolts
SD=$((1610 / $SD))                   # eeprom Self Discharge rate, thousandth of percent (1/1000 %) per day at 25 degrees celcius

AGELMD=$(($TAPER/128))               # eeprom Battery capacity aging estimation on/off
TAPER=$(($TAPER-$AGELMD*128))
TAPER=$(($TAPER * 228000 / $RS / 1000))  # eeprom Taper current mA

IMLC=$(($IMLC * 457000 / $RS / 1000))    # eeprom Initial Max Load Current

fi

############## Display ##############

if [ $WARN -eq 1 ] ; then
        if [ $FLAGS_EDVF -eq 1 ] &amp;&amp; [ $SECONDWARNING -eq 0 ] ; then 
                dbus-send --print-reply  --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteDialog string:'Battery at CRITICAL low level' uint32:0 string:'ok'
                SECONDWARNING=1
        else 
                SECONDWARNING=0
                if [ $FLAGS_EDV1 -eq 1 ] &amp;&amp; [ $FIRSTWARNING -eq 0 ] ; then
                        dbus-send --print-reply --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteDialog string:'Warning: Battery Low' uint32:0 string:'ok'
                        FIRSTWARNING=1
                else
                        FIRSWARNING=0
                fi
        fi
fi
if [ $LOOPMODE -eq 0 ] ; then 

echo -n CSOC: $CSOC &quot;% &quot;
echo RSOC: $RSOC &quot;%&quot;
echo Average Current: $AI mA
echo -n TTF: $(($TTF)) &quot;minutes &quot;
echo TTE: $(($TTE)) minutes

echo -n NAC: $NAC &quot;mAh &quot;
echo -n CACD: $CACD &quot;mAh &quot;
echo CACT: $CACT &quot;mAh &quot;

echo -n SI: $SI &quot;mA &quot;
echo  STTE: $STTE &quot;minutes&quot;

echo -n MLI: $MLI &quot;mA &quot;
echo  MLTTE: $MLTTE &quot;minutes&quot;

echo -n AR: $AR &quot;mA &quot;
echo ARTTE: $ARTTE &quot;minutes&quot;

echo Last Measured Discharge: $LMD mAh
echo Cycle Count since Learning: $CYCL Total Cycle Count since last full reset: $CYCLTL
echo Reported Battery Voltage: $VOLT mV
echo Battery Gauge die Temperature: $(($TEMP * 250 / 1000 - 273)) C
echo -e &quot;Flags:\t&quot; $FLAGS
echo -e &quot;\t&quot; Charge:$FLAGS_CHARGE NOACT:$FLAGS_NOACT IMIN:$FLAGS_IMIN CI:$FLAGS_CI CALIP:$FLAGS_CALIP VDQ:$FLAGS_VDQ EDV1:$FLAGS_EDV1 EDVF: $FLAGS_EDVF
echo -e &quot;eeprom data:&quot;
echo -e &quot;\t&quot; ILMD=$ILMD EDVF=$EDVF EDV1=$EDV1 ISLC=$ISLC
echo -e &quot;\t&quot; DMF=$DMF nanoVolt SD=$SD thousandths of percent per day
echo -e &quot;\t&quot; AGELMD=$AGELMD TAPER=$TAPER mA
echo -e &quot;\t&quot; IMLC=$IMLC mA

else # loopmode

if [ $LOOPCOUNT -eq 0 ] ; then
        LOOPCOUNT=24
        echo -e &quot;      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW&quot;
fi
LOOPCOUNT=$(($LOOPCOUNT-1))

C=$AI
if [ $FLAGS_CHARGE -eq 0 ] ; then
        C=&quot;-&quot;$C
fi
printf &quot;$(date +%H:%M) %4d %-3d  %-3d  %-4d %-4d %-4d %-4d %-5d %-5d %-3d %d\n&quot; $VOLT $RSOC $CSOC $C $NAC $CACD $CACT $TTF $TTE $(($TEMP * 250 /1000 - 273)) $FLAGS_EDV1 
sleep $LOOPMODE
doit=1
fi # if loopmode

done # main
&lt;/source&gt;

[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Chipset</title>
    <id>4207</id>
    <revision>
      <id>35569</id>
      <timestamp>2010-06-10T09:34:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>slightly wikify</comment>
      <text xml:space="preserve">The chip known as 'Gaia' in the [[N900 Hardware Schematic|schematics]] is the companion chip to the processor.

==Hardware==

The TWL5030B is the companion chip to the CPU. It can be seen in  [http://people.openmoko.org/joerg/n900/images/n900_01.jpeg] and has USB PHY, power management and audio codec. It is also known as the TPS65950.

A datasheet for the [http://focus.ti.com/docs/prod/folders/print/tps65950.html TIs TPS65950] is at TIs website.

The USB PHY is not used and this function is handled by the nxp1707a [http://www.spinics.net/lists/linux-usb/msg25167.html] See [[N900_Hardware_USB|more information on USB]]

The TPS65950 contains:
* Power management
** Several regulators - switched mode and LDO.
* Audio codec
** Five DACs, two ADCs
** Several power amplifiers.
** Microphone amplifiers
* USB transceiver
** Highspeed OTG compatible with integrated charge pump, and carkit support, designed for direct connection to the CPU. (not used in N900)
* an ac/USB charger
* LED drivers
* ADC
** ADC can measure both input voltages to device, or voltages connected externally.
* RTC
* GPIO
** This can support switches, keypads, ...

===Connections===

It is connected to the [[N900 Hardware Bus I2C|I2C]] bus.

[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware FM Radio Transmitter</title>
    <id>4272</id>
    <revision>
      <id>35913</id>
      <timestamp>2010-06-16T14:37:54Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[N900 Hardware FM Radio Transmitter]] moved to [[N900 FM radio transmitter]]: shorten and capitalization</comment>
      <text xml:space="preserve">#REDIRECT [[N900 FM radio transmitter]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware FM Receiver</title>
    <id>4273</id>
    <revision>
      <id>35917</id>
      <timestamp>2010-06-16T14:40:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[N900 Hardware FM Receiver]] moved to [[N900 FM radio receiver]]: capitalization</comment>
      <text xml:space="preserve">#REDIRECT [[N900 FM radio receiver]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Flash Torch</title>
    <id>3160</id>
    <revision>
      <id>37279</id>
      <timestamp>2010-07-25T22:10:07Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>/* Hardware */</comment>
      <text xml:space="preserve">==Hardware==

The flash torch on the [[Nokia N900|N900]] is built from 2 high efficiency white power LEDs (type unknown), plus a [http://www.analog.com/en/power-management/display-and-lighting/adp1653/products/product.html ADP1653] two LED flash controller, which has several modes. It can flash brightly for a maximum of 0.5 s, with an LED current of no more than 320 mA, or be in torch mode for arbitrary duration, at a current of no more than 50 mA. Tests have not shown any deterioration of flash LEDs (brightness or color) during several hours of continuous torch mode.

Exceeding these values however will probably cause irreversible hardware damage. Take care when accessing [http://www.analog.com/en/power-management/display-and-lighting/adp1653/products/product.html ADP1653] directly to program the current limits! While range of values for indicator LED is 2.5mA to 17.5mA and thus probably relatively safe, the current settings for torch mode range from 50mA to 200mA(!), and for flash mode from 215mA to 500mA, while internal watchdog does not limit duration for torch mode and can be set to durations of up to 820ms for flash mode.

The brightness of the LED in flashlight mode is approximately 20 lux at 1 m at the brightest spot in the beam.

It also contains a red indicator light, to indicate video is being recorded.
PR1.2 genuine camera in nightmode also uses red LED to indicate photo shots.

==Software==

(See kernel source ./arch/arm/mach-omap2/board-rx51-camera.c for details)

The controls of the device are apparently presented as video4linux ioctls related to the main camera device - /dev/video0 usually, and should show up in a suitable 'webcam' type viewer that can show arbitrary video4linux controls.

The driver is in drivers/media/video/adp1653.c

This is used by the built-in camera application, and a [https://garage.maemo.org/projects/flashlight-appl/ third party flashlight application], as well as being controllable by a [http://maemo.org/packages/view/lfocus/ live focus application which can also control the LEDs].

[[Category:N900 Hardware]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware GPS</title>
    <id>3136</id>
    <revision>
      <id>37388</id>
      <timestamp>2010-07-30T02:35:09Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <comment>/* Accuracy */</comment>
      <text xml:space="preserve">==Hardware==

The [[:wikipedia:GPS|GPS]] in the [[Nokia N900|N900]] is a TI GPS5030 - navilink 5. [http://www.tessco.com/products/displayProductInfo.do?sku=365173&amp;eventPage=3]

The Navilink series is detailed [http://focus.ti.com/general/docs/wtbu/wtbugencontent.tsp?templateId=6123&amp;navigationId=12028&amp;contentId=4636 here].

The GPS is not connected to the main CPU, but to the processor in the phone module, hence cannot be communicated with directly. [https://bugs.maemo.org/show_bug.cgi?id=7026#c35]

It is connected through [[N900 Hardware Bus I2C|I2C]], and a 4 bit data connection, see [[N900_Hardware_Schematic#Page_10|Page 10 of the schematic]].


The GPS uses approximately 50 mA when enabled, and logging once per second using [http://repository.maemo.org/pool/maemo5.0/non-free/l/location-test-gui/ location test GUI]. See also [[N900 Hardware Power Consumption]]

==Software==

The GPS is driven through the [http://maemo.org/api_refs/5.0/5.0-final/liblocation/ liblocation] library, which supports several modes of location, some of which use the GPS, some use external data to improve lock times, and some that do not use the GPS at all.

There are many user applications that use the GPS, from simple loggers, like [http://maemo.org/packages/view/gps-data-logger/ GPS data logger] to  [http://osm.org openstreetmap] [http://maemo.org/packages/view/osm2go editors] and even [http://www.sygic.com/index.php/en/press-releases/press-news/300-sygic-mobile-maps-for-nokia-n900-maemo-available-for-purchase.html commercial replacements for the free Ovi maps software].

== Phonet Protocol ==
See [[N900_GPS_Reverse_Engineering]]

==Accuracy==
Over a long period in one position with a clear view of the sky, the horizontal accuracy is outlined in this graph.

* 50% of points within 2.4m
* 90% within 4.2m
* 99% within 18m
* 99.9% within 80m.

[[Image:N900gps-0-95%25.gif|Percentage points falling within the given radius in decimeters (1/10th of a meter)]]

The outliers are explored in detail here.

[[Image:N900gps-95-100%25.gif]]

[[Image:N900gps-99-100%.gif]]

==Bugs==

A number of users have reported poor or no lock in circumstances where the phone should obtain a GPS lock. See [https://bugs.maemo.org/show_bug.cgi?id=7026 this (now closed) bug] for more information and if you are still affected by this. (read all of the bug carefully)

[[Category:N900]]
[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Hacking</title>
    <id>3274</id>
    <revision>
      <id>47411</id>
      <timestamp>2012-05-03T18:02:10Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>/* Debug ports */</comment>
      <text xml:space="preserve">This page outlines what is known about the hardware of the [[Nokia N900|N900]], and possible modifications or additions to it.

Much of the information on this page may be incorrect, and may cause damage to your N900 if you attempt any of it.

==Hacks==

* Case
* Camera
* Wifi
* Bluetooth
* Battery
* Audio
* Video

==Additional Hardware==

===Compass===

The [http://search.digikey.com/scripts/DkSearch/dksus.dll?Cat=1967220&amp;k=HMC5843 HMC5843] compass from honeywell seems as if it would be a simple addition, if it could be wired onto a I2C bus.

There is also miniSD [http://www.aichi-mi.com/ AMI603SD] 6 degree sensor available, if it is possible to wire that to microSD slot. The same manufacturer is also providing small magnetic sensors AMI304 to i2c bus with DIP8 so it would be easier to solder with capacitors but there is not much room inside N900.

I2C bus can have chained up to 112 slave devices. Only problem is to get those pins available maybe de-soldering some component first... also one free GPIO/interrupt line would be good thing to have. There seems to be some pads available for I2C when looking from [[N900_Hardware_Schematic]], J6183 and J6184 in H7 Top layout near FM transmitter. Most probably too small to solder by hand.
There seems to be also one interrupt line used by transmitter in J6181. 

If not needing the FM TX it could be possible remove whole component and replace it with compass.

==Gyroscope==

The forthcoming invensense [http://invensense.com/mems/gyro/itg3200.html itg3200] is a gyroscope chip that could similarly be connected to a I2C bus.

==UART to I2C bridge==

There is also available some bridge chips [http://ics.nxp.com/products/bridges/uart.i2c.master.gpio/ UARTtoI2C] that can be used over UART. Most likely UART pins can be found in debug ports.

==MMC card==

The MMC controller pins are convertable to GPIO pins. See page 3 top-left of [[N900 Hardware Schematic]], and page 691 of spruf98.pdf.
This means that there are 6 available easily contactable GPIO pins, static protected. (see same page of schematic) along with a 3.3V possibly variable power supply.

==Debug ports==

Under the battery are several groups of test pad connectors. With the camera on the left, and the battery removed, these are numbered left-to-right then top-down for the purposes of this page, with pad 1 of a connector at its top left.

Probable connections are anything that will enable full tests and bootstrap of of the phone without a case.

Obvious candidates are [[:wikipedia:JTAG|JTAG]] for flashing any bootloader, and USB for flashing the device. Serial ports, I2C, SPI are also possible.

The third serial port / UART is reportedly connected to these ports, so it is accessible.

There are 4 groups:

* Group1 - 2 pad connector to the middle left above the battery connector (J5300/1).
**This is labeled J5300 and J5301 on the schematic.  J5300 is USB D+, J5301 is USB D-.
* Group2 14 pad connector in two parts (J2000 (J2060+J2061)).
** (a) - 6 pad connector.
** (b) - 8 pad connector 
* Group3 - 7 pads (J5602).
* Group4 - 7 pads.

Here are the pad names from the [[N900 Hardware Schematic|schematic]] linked in the resources section, using same logic for &quot;+&quot; vs &quot;o&quot;

&lt;pre&gt;
+ J5301
+ J5300

            J2000            J2060
  J2062 +   o   o       o   o   o   o  
          o   o   o       o   o   o   + J2061

            J5602       J3109 J3111 J3113 J3115
        o   o   o   o    +   +   +   +
          o   o   o        +   +   +
                        J3110 J3112 J3114
&lt;/pre&gt;

The plus-sign (supposedly) signifies invidual pad and group of lowercase &quot;o&quot; pads is a port (or similar).

According to [[User:rambo|my]] measurements with DMM ([http://www.tek.com/products/digital-multimeter/ Digital Multimeter]) the following pads are [[:wikipedia:Ground_(electricity)#Electronics|ground]] (counting from top-left and always going left-to-right in case of group of pads): first of J2000, last of J2060, first of J5602 and J3115.

[[N900 Hardware Schematic|Schematic]] did not reveal where these pads might actually be connected to.

According to [[User:jacekowski|jacekowski]]s [http://img36.imageshack.us/i/teki.png/ measurements] J2000 is serial console, 
{{ambox
|type=delete
|text=The serial port is NO RS232, it's a low-voltage direct UART IO from OMAP SoC. It's specified for 2.8V and even 3.3V seem to destroy it.
}}
 J2000
 pin 1 :: GND
 pin 2 :: RX, according to r00t
 pin 3 :: USB VBUS 5V
 pin 4 :: &lt;unknown&gt;
 pin 5 :: TX (confirmed by jacekowski ([[N900 Hardware Hacking/serial dump|115200 8-N-1]] ~2.6 V, connected to 1st UART in omap - &lt;code&gt;/dev/ttyS0&lt;/code&gt; in Linux), and r00t (see below))


&lt;pre&gt;
+ J5301
+ J5300

            J2000            J2060
  J2062 +   GND RX       1   o   o   4  
          5V  o   TX       5   o   7   + J2061

            J5602       J3109 J3111 J3113 J3115
        1   o   o   4    +   +   +   +
          5   o   7        +   +   +
                        J3110 J3112 J3114
&lt;/pre&gt;
(confirmed by &gt;&gt;&lt;r00t|home&gt; anyway... here's the actual TxD now: http://www.constancy.org/~r00t/IMG_9246.JPG &lt;&lt;
[[Image:testpoints_tx.jpg]]



&gt;&gt;&lt;r00t|home&gt; &lt;r00t|home&gt; this is serial loopback: http://www.constancy.org/~r00t/IMG_9251.JPG&lt;&lt;)

According to [http://cpkb.org/wiki/Nokia_N900_pinout CPKB] J2060 is [http://www.embedtronics.com/nokia/fbus.html F/MBus port].

==Modifications==

===USB===

Further details can be found in the [[N900_Hardware_USB|USB on the N900]] page.

===External antennas===

On the N900 there are three [http://en.wikipedia.org/wiki/Hirose_U.FL Hirose U.FL] connectors. These Hirose U.FL connectors were noted as test connectors however with the right equipment attached these can be used to increase the range of the said chips that has such connectors attached, if not to increase range it can be used possibly in other ways.

The three chips that has Hirose U.FL connectors attached are: GSM, GPS and Bluetooth/Wireless LAN. Note that the Bluetooth/Wireless LAN share the same Hirose U.FL connector.

However there are some restrictions imposed on accessing these test connectors. The first restriction is that it seems GSM's Hirose U.FL connector is the most easily accessible as it is on the underside of the N900's PCB (where one can see those solder pads when the battery is taken out of N900). Access to Bluetooth and Wireless LAN's as well as GPS receiver's Hirose U.FL are on the obverse side of that N900 PCB. 

The next set of limitation is to find appropriate adapters/converters and possibly attached with a cable as allows the converted adapter's head to be placed in a location where one prefers to have the head placed. Hirose U.FL is noted best to not be used in a manner that one connects and disconnects the cable constantly (~50-200 cycles) so that would leave the most appropriate solution is to get an adapter/converter. 

Most common adapter/converter would be a Hirose U.FL connector -&gt; [http://en.wikipedia.org/wiki/RP-SMA#Reverse_polarity_SMA RP-SMA] as these can be commonly found in various setup, furthermore SMA connector itself would have a longer wear than Hirose U.FL itself along with the fact that there are many antennas available in the form of RP-SMA connector form. With the cable attached and if one prefers the connector to be attached to the back of the device, this highlights the issue noted beforehand with the connectors on the obverse side of the device.

Also it is worthy to note that the size (in diameter or thickness), grade and length of the cable would also impede on the quality of communication. Too thin of a cable would make the transmitted/received signal be more susceptible to other interference, the same goes with too long for a cable would also make it more susceptible. Too thick of a cable especially if used on the obverse side of the device makes the cable unable to be able to loop around to the other side of the PCB should the owner want the actual head of the connector to be on the same side as the GSM connector for instance.

The last set of limitation would be finding the right antennas that would be compatible with the said radio frequency bands. Both Bluetooth and Wireless LAN on N900 operate on the unlicensed ISM 2.4GHz band and antennas for them are abundant. GPS receiver operates on [http://en.wikipedia.org/wiki/Global_Positioning_System#Satellite_frequencies 1.2GHz-1.5GHz band] and antennas for them maybe more rare than antennas for Bluetooth/Wireless LAN. On similar level for availability the GSM antennas are equally less abundant than antennas for Bluetooth and Wireless LAN.

It is also noteworthy that the FM transmitter module relies on its own antenna, though it may also be possible with some soldering one maybe able to attach external antenna to the device.

For the locations of these Hirose U.FL connectors one will need the [http://mohammadag.xceleo.org/public/.private/Nokia_N900_RX-51_Schematics.pdf Hardware Schematics]:
[[Image:Nokia_N900_front_internal-Hirose_u.fl_bluetooth_wireless_LAN_and_GPS_test_connectors.png|frame|center|alt=Photo of N900 with open keyboard|Front view]]
* Bluetooth and Wireless LAN: Page 16, ID: X6301, Sector: N11
* GPS: Page 16, ID: X6200, Sector: H8
[[Image:Nokia_N900_rear-internal-Hirose_u.fl_GSM_and_non_Hirose_u.fl_FM_transmitter_antenna_and_test_pads.png|frame|center|alt=Photo of N900 with open keyboard|Rear view]]
* GSM: Page 17, ID: X7500, Sector: X10
* FMTX (not a Hirose U.FL connector): Page 17: ID: X6189, Sector H1 (Test pads??: J6192, J6193)

==Resources==

* N900 Service Manual - Level 1&amp;2: [http://www.mediafire.com/?ndmjylkj4wk MediaFire] or [http://maemoworld.org/wp-content/uploads/2009/12/Nokia_N900_RX-51_Service_Manual_Service_Level_1_2 Maemoworld]
* N900 Service Manual - Level 3&amp;4: [http://torrentpump.com/download/n900-rx-51-sm-l3-4-pdf-5228583 Torrent], [http://rghost.net/679258 rghost] or [http://rs768.rapidshare.com/files/314490131/N900_RX-51_SM_L3_4.pdf RapidShare]  
* [[N900 Hardware Schematic]]
* A teardown with [http://techblog.gr/mobile/nokia-n900-teardown-08635/ some pics] from Greece, and a video of reassembly.
* Disassembly [http://www.engadget.com/2009/12/04/nokia-n900-teardown-reveals-smartphone-semantics/ video] from tehkseven.
* N900 disassembled, super-highres scans by [http://talk.maemo.org/member.php?u=35572 Joerg_rw]: [http://maemo.cloud-7.de/Gallery-N900-exploded/]
* [https://fjallfoss.fcc.gov/oetcf/eas/reports/ViewExhibitReport.cfm?mode=Exhibits&amp;RequestTimeout=500&amp;calledFromFrame=N&amp;application_id=726569&amp;fcc_id=%27LJPRX-51X%27 Internal photos] of N900 from FCC OET website (U.S. Govt. - May not be accessible for some people. Site does not allow hot linking, click on internal photos from the table)
* [[N900 Software Kernel Modules]]

==Vendors==

* [http://www.tessco.com/products/bmd/listItemsForSelectedCategory.do?bmdTypeId=007_26&amp;mfgName=007_26_NOKIA&amp;modelId=785585&amp;groupSubgroupId=SHOW_ALL Tessco] had a variety of n900 parts. Note that they sold Tessco Nokia parts [http://www.tessco.com/yts/faq/faq/faq_28.html only to Authorized Service Centers]. (they currently do not and have stopped listing parts for Nokia phones.)
* As always - [http://shop.ebay.co.uk/pid-handy-fit/m.html?_nkw=n900 ebay] - this vendor has at the moment a stock of screens and various other original parts.

[[Category:N900]]
[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Hacking/serial dump</title>
    <id>4365</id>
    <revision>
      <id>38071</id>
      <timestamp>2010-08-25T10:32:37Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">&lt;pre&gt;
NOLO X-Loader (v1.4.14, Apr 22 2010)
Secondary image size 109384
Booting secondary
[   0.002] Nokia OMAP Loader v1.4.14 (Apr 22 2010) running on Nokia N900 F5 (RX-51)
[   0.014] I2C v3.12
[   0.033] System DMA v4.0
[   0.036] OneNAND device ID 0040, version ID 0121 (256 MiB, 66 MHz)
[   0.071]   OneNAND blocks unlocked in 28052 us
[   0.075]   Flash id: ec4021
[   0.094] Partition table successfully read
[   0.102] TWL4030 PWR ISR: 40
[   0.105] Reset reason: por
[   0.107] McSPI v2.1
[   0.111] LP5523 found at I2C bus 2, address 0x32
[   0.121] SMB138C: Not loading driver (version reg. 0x4b)
[   0.127] BQ24150 (rev. 3) found on I2C bus 1, address 0x6b
[   0.133] SSI version 1.0
[   0.147] Battery voltage 3.436 V, BSI: 0
[   0.157] Disabling charging (no battery present)
[   0.169] Initializing LCD panel
[   0.172]   Detecting LCD panel moscow
[   0.176]     Panel ID: 108d77
[   0.179]   Detected LCD panel: acx565akm
[   0.183] DISPC: version 3.0
[   0.187]   LCD pixel clock 24000 kHz
[   0.218]   Logo drawn in 5 ms (11700 kB/s)
[   0.333]   Über-cool backlight fade-in took 9 ms
[   0.340] Initializing USB
[   0.348]   No USB host detected
[   0.351] Loading kernel image info
Loading kernel (1705 kB)... done in 61 ms (27612 kB/s)
[   0.422] Loading initfs image info
[   0.425] Total bootup time 429 ms
[   0.429] Serial console enabled
Uncompressing Linux.............................................................
...................................................... done, booting the kernel.

[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 2.6.28-omap1 (bifh7@maemo-bifh-27) (gcc version 4.2.1) #1 PREEMPT Thu Apr 15 09:47:09 EEST 2010
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[    0.000000] Machine: Nokia RX-51 board
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] OMAP3430 ES3.1
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xe3000000 size: 0x100000
[    0.000000] VRAM: 5357568 bytes at 0x8f578000. (Detected 868352 at 0x8f9c0000)
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
[    0.000000] Kernel command line: init=/sbin/preinit ubi.mtd=rootfs root=ubi0:rootfs rootfstype=ubifs rootflags=bulk_read,no_chk_data_crc rw console=ttyMTD,log console=tty0 snd-soc-rx51.hp_lim=42 snd-soc-tlv320aic3x.hp_dac_lim=6
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 19.2/332/500 MHz
[    0.000000] Reprogramming SDRC
[    0.000000] GPMC revision 5.0
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts
[    0.000000] Total of 96 interrupts on 1 active controller
[    0.000000] OMAP34xx GPIO hardware version 2.5
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)
[    0.000000] OMAP clockevent source: GPTIMER1 at 32768 Hz
[    0.000000] Console: colour dummy device 80x30
[    0.000000] console [tty0] enabled
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] allocated 1310720 bytes of page_cgroup
[    0.000000] please try cgroup_disable=memory option if you don't want
[    0.000000] Memory: 128MB 128MB = 256MB total
[    0.000000] Memory: 245052KB available (3220K code, 396K data, 144K init)
[    0.000000] SLUB: Genslabs=8, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Calibrating delay loop... 499.92 BogoMIPS (lpj=1949696)
[    0.000000] Security Framework initialized
[    0.000000] Mount-cache hash table entries: 512
[    0.000000] Initializing cgroup subsys memory
[    0.000000] Initializing cgroup subsys freezer
[    0.000000] CPU: Testing write buffer coherency: ok
[    0.000000] net_namespace: 448 bytes
[    0.000000] regulator: core version 0.5
[    0.000000] NET: Registered protocol family 16
[    1.248596] OMAP DMA hardware revision 4.0
[    1.248687] Reserving DMA channels 0 and 1 for HS ROM code
[    1.249786] MUX: setup J21_34XX_I2C1_SDA (0xd80021bc): 0x0100 -&gt; 0x0118
[    1.249847] MUX: setup K21_34XX_I2C1_SCL (0xd80021ba): 0x0100 -&gt; 0x0118
[    1.249969] MUX: setup AE15_34XX_I2C2_SDA (0xd80021c0): 0x0100 -&gt; 0x0118
[    1.250030] MUX: setup AF15_34XX_I2C2_SCL (0xd80021be): 0x0100 -&gt; 0x0118
[    1.250152] MUX: setup AG14_34XX_I2C3_SDA (0xd80021c4): 0x0100 -&gt; 0x0118
[    1.250213] MUX: setup AF14_34XX_I2C3_SCL (0xd80021c2): 0x0100 -&gt; 0x0118
[    1.250671] USB: No board-specific platform config found
[    1.253814] i2c_omap i2c_omap.1: bus 1 rev3.12 at 2200 kHz
[    1.255187] TWL5030: Enabling workaround for rev 0x1009002F
[    1.271972] twl4030: PIH (irq 7) chaining IRQs 368..375
[    1.272033] twl4030: power (irq 373) chaining IRQs 376..383
[    1.272308] twl4030: gpio (irq 368) chaining IRQs 384..401
[    1.273468] regulator: VDAC: 1800 mV normal standby
[    1.273803] regulator: VUSB1V5: 1500 mV normal standby
[    1.274169] regulator: VUSB1V8: 1800 mV normal standby
[    1.274536] regulator: VUSB3V1: 3100 mV normal standby
[    1.274871] i2c_omap i2c_omap.2: bus 2 rev3.12 at 100 kHz
[    1.275˜�
&lt;/pre&gt;

[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware LCD Panel</title>
    <id>4267</id>
    <revision>
      <id>35890</id>
      <timestamp>2010-06-16T14:17:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[N900 Hardware LCD Panel]] moved to [[N900 LCD panel]]: capitalization and shorten</comment>
      <text xml:space="preserve">#REDIRECT [[N900 LCD panel]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware LED</title>
    <id>4228</id>
    <revision>
      <id>48155</id>
      <timestamp>2012-06-05T12:39:03Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>/* References */ added link to datasheet</comment>
      <text xml:space="preserve">==Hardware==

The [[Nokia N900|N900]] has LP5523 &lt;ref name=&quot;lp5523-spec&quot;&gt;http://www.national.com/pf/LP/LP5523.html&lt;/ref&gt; &lt;ref name=&quot;leds-lp5523-driver&quot;&gt;http://mxr.maemo.org/fremantle/source/kernel/drivers/leds/leds-lp5523.c&lt;/ref&gt;, which has 3 engines like LP5521 (compatible though augmented instruction set) but can drive 9 LEDs via a multiplexer which maps each LED to one of the 3 engines. A LED also can be unassigned to any engine, in which case you can control it by writing to the corresponding brightness sysnode) which handles the keyboard and notification LED. (not the [[N900 Hardware Flash Torch|flash LEDs]] and red indicator light next to those, and also not the Infrared-LED used for CIR)

The controller can be programmed via &quot;/sys/class/i2c-adapter/i2c-2/2-0032&quot; (FIXME: is this stable?). In that directory there are three files corresponding to the three channels: &lt;code&gt;engine1_mode&lt;/code&gt;, &lt;code&gt;engine2_mode&lt;/code&gt; and &lt;code&gt;engine3_mode&lt;/code&gt;. Each file &quot;stores&quot; one of &lt;code&gt;run&lt;/code&gt;, &lt;code&gt;load&lt;/code&gt;, &lt;code&gt;disabled&lt;/code&gt; (it seems that there is another mode &quot;direct&quot; but it doesn't work)(direct mode requires explicit writes to PWM, current and multiplexing registers, which may not be supported in the code...):
* &lt;code&gt;run&lt;/code&gt;: The program runs
* &lt;code&gt;disabled&lt;/code&gt;: The channel is disabled - not running
* &lt;code&gt;load&lt;/code&gt;: In that state, there are two more files in that directory: 
** engine1_LEDs is in the form &quot;0000rgb00&quot; (9 digits, &quot;1&quot; or &quot;0&quot;), where rgb control which LEDs should participate. The 6 &quot;0&quot; in the above pattern correspond to the 6 kbd white LEDs controlled by MCE via engine3, so readout of engine3_leds gives 111100011 ;-)
** engine1_load accepts a string as specified above (e.g. 9d804000427f0d7f7f007f0042000000). LP5523 has an absolute storage of 96 steps a 16bits, which can dynamically partitioned between the three engines. (Supports 32-96 steps per engine, dynamically-assigned, alas the lp5523.ko driver is braindamaged and doesn't support more than 16 instructions per engine)
After that, when the state is changed to &quot;run&quot;, the program will be ran by the controller. 

In order for the LEDs to work, the led_current of the appropriate LEDs need to be set to non-zero values. This is accomplished by writing to files LEDs:lp5523:[bgr]/led_current under the same directory. Default values from kernel module init are suitable.

Despite the line
&lt;source lang=&quot;c&quot;&gt;
#define LP5523_DEFAULT_CURRENT          50 /* microAmps */
&lt;/source&gt;
suggesting different, the units in there are 0.1 mA (100 µA per step is correct). So the driver init default &quot;50&quot; for all LEDs is 5 mA, and mce seems to set current to 0.2 mA (value 2 in the led_current sysnode) for B and G, and either to 0.2 mA or 0.8 mA for R. Probably settings as high as 100 for 10 mA are safe for the RGB LED, higher values might destroy the LED. (yes, correct, the RGB could be damaged from heat if set to more than 10 mA on all 3 LEDs)

NOTE: There must be a delay (how much? The specs of LP5521 mentions it) between writes to sysfs files.


''BEWARE!
 register addr 0x3B: GPO
 LP5523 has one General Purpose Output pin (GPO).
 Status of the pin can be controlled with this register. Also,
 '''INT pin can be configured to function as a GPO''' by setting
 the bit INT_CONF. When INT is configured to function as
 a GPO, '''output level is defined by the VDD voltage'''.
 3B — Bit [2] INT_CONF
 0 = INT pin is set to function as an interrupt pin (default).
 1 = INT pin is configured to function as a GPO.

INT is routed directly to a SOC GPIO that is not designed to take voltages &gt;1.8V ! So setting 0x3B:2 to 1 may fry your CPU
''

==Software==


== References ==

also see [[LED_patterns]] of which this page is a &quot;fork&quot; without cleaning the original page, so now there are two versions with almost identical but slightly complementary info

Since beginning of 2012 a datasheet for LP5523 is available from TI: http://www.ti.com/lit/ds/snvs550c/snvs550c.pdf

&lt;references /&gt;

[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Light Meter</title>
    <id>4274</id>
    <revision>
      <id>35924</id>
      <timestamp>2010-06-16T14:46:10Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[N900 Hardware Light Meter]] moved to [[N900 light meter]]: shorten and capitalization</comment>
      <text xml:space="preserve">#REDIRECT [[N900 light meter]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Microprocessor</title>
    <id>4210</id>
    <revision>
      <id>35898</id>
      <timestamp>2010-06-16T14:24:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[N900 CPU]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Phone</title>
    <id>4237</id>
    <revision>
      <id>39263</id>
      <timestamp>2010-10-02T21:22:42Z</timestamp>
      <contributor>
        <ip>92.83.199.174</ip>
      </contributor>
      <comment>/* AT commands */</comment>
      <text xml:space="preserve">The [[Nokia N900|N900]], unlike previous Nokia internet tablets has a phone module.

==Hardware==

The phone is a 2G/3G modem, with quadband GSM, and several bands of 3G. It may not have the required band for 3G in your country, for example, only one US carrier (T-Mobile) and only one Canadian carrier (Wind Mobile) support 3G on the N900.

The phone module controls the [[N900 Hardware GPS|GPS]], and contains software to generate locations.

==Software==

For the GPS, [http://maemo.org/api_refs/5.0/5.0-final/liblocation/ liblocation] is used.

The modem can be accessed 'directly' - through pnatd.

[http://www.gossamer-threads.com/lists/maemo/developers/59363 This thread on the maemo-developer] mailing list gives some examples of using pnatd - but it is not a reference guide.

[[Documentation/Maemo_5_Developer_Guide/Using_Connectivity_Components/Maemo_Connectivity#Internet_Access|ICD]] is the daemon that deals with internet connectivity, including managing data connections to the phone.

More documentation on ICD is [http://maemo.org/api_refs/5.0/5.0-final/icd2/ found here].

SMSs are stored using [http://maemo.org/api_refs/5.0/5.0-final/eventlogger/ eventlogger]

wappushd-dev

===AT commands===
* Modem model number.
 at+cgmm
 Nokia N900
* Modem serial number(IMEI)
 at+cgsn
 314159230138902
* Modem manufacturer
 at+gmi
 Nokia
* Connection quality?
 at+csq
 +CSQ: 6,99
* Modem capability
 at+gcap
 +GCAP: +CGSM,+DS,+W

 at+cpas  
 +CPAS: 0 

* List Operators
 at+COPS=?               
 +COPS: (2,&quot;T-Mobile&quot;,,&quot;23430&quot;,0),
 (3,&quot;O2 - UK&quot;,,&quot;23410&quot;,0),,(0,1,3),(0,2)
* Modem version number
 at+gmr
 V ICPR82_10w08
 25-02-10
 RX-51
 (c) Nokia
 Nokia N900 (RX-51 rev 2101)
 Maemo 5 (10.2010.19.1.203.1)
 Linux version 2.6.28-omap1
 Product 0593611A
*IMSI
 at+cimi
 234308342147672
*Subscriber number (read from SIM, may not work with some SIMs)
 at+cnum
 +CNUM: ,&quot;+447443895922&quot;,145
 
 at+creg=1
 OK

 +CREG: 2

* SMS commands
 at+cmgf
 ERROR
 at+cmgs
 ERROR

* Battery charge information
 at+cbc
 +CBC: 0,63

 at+ceer
 OK

 at+cmer
 ERROR
 at+cpas
 +CPAS: 2

 OK
 at+cpas=?
 +CPAS: (0,2,3,4)


 at+clcc
 OK

[[Category:N900 Hardware]]
[[Category:Cellular]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Power Consumption</title>
    <id>3275</id>
    <revision>
      <id>50052</id>
      <timestamp>2012-10-01T20:23:51Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">This page contains information on the amount of energy used by each subsystem of the [[Nokia N900|N900]], and where applicable ways it can be reduced.

Much of any reduction will require additional software, some may be possible by altering user behavior in ways that do not impact the users overall experience..

Measuring power usage is hard. For example, power consumption of the speakers/speaker-amp has to be disentangled from power consumption of reading a file from SD/eMMC, decoding it, PulseAudio's power use, and the DAC power use.


Below currents are from l3/l4 manual - assumed to be from a supply at 5 V.

* FMTX 19 mA - l3/4
* WLAN on - no powersave - 200 mA
* WLAN transmit 802.11b - 150 mA

Battery parameters can be monitored thru fuel gauge asic TI BQ27200 [http://focus.ti.com/lit/ds/symlink/bq27200.pdf]

==Some preliminary numbers using [[N900 Hardware Charge Meter|the battery monitor chip]].==

These numbers are biased, and represent best cases. Some have had outliers which may be normal and unavoidable current spikes removed. This is under the assumption that the minimal power represents the minimum power achievable, and it should long-term be possible to - possibly with software patches - achieve these. +x indicates the measurement is for that element only. A raw measurement has no + (marked &quot;T&quot;), and is a total consumption of whole device, when operated in that state. Unless otherwise mentioned, numbers are for the idle locked case, with screen off.
Assume 
* Suspend (echo mem &gt;/sys/power/state), wifi and GSM off. 2 mA T
* Suspend, GSM on, connected to 3G (2 bars) 5 mA T
* Suspend, GSM on, connected to 2G. (2 bars) 3.6 mA T
* Idle, no SIM, wlan off 7 mA@4.1 V T
* Wifi on with maximum powersaving. +~2 mA
* BT enabled, no headset connected +2 mA with ~1/5 time spikes to +9 mA
* MMC card in. Under +1 mA
* Xchat running, sporadic traffic. +8 mA
* Screen on, no backlight. +80 mA
* Backlight on max +150 mA, +40mA on 4 of 5 steps in simple brightness applet &amp; low ambient (/sys/class/backlight/acx565akm/brightness = 63)
* Media player playing MP3, one step above mute. 110 mA T
* Vibrator at max +120 mA
* md5sum /dev/zero 250 mA T
* md5sum /dev/mmcblk1p1 - 1G SD card. 240 mA T
* md5sum /dev/mmcblk0 - internal MMC 240 mA T (these indicate the CPU is somewhat idle, waiting on IO, and this counteracts any increased power use by the memory)
* camera active, showing preview. (backlight off) 210 mA T
* GPS - location test gui - in continuous GPS recieve mode - +50-80 mA
* 3G connected, good signal, no data or other activity +8 mA.
* 2G connected, good signal, no data or other activity +5 mA


===2G data, short pings===
(all Total)

* 1 s ping 130 mA
* 10 s ping 70 mA
* 30 s ping 45 mA

===3.5G data, short pings===

* 1 s 186 mA
* 10 s 120 mA approx.
* 30 s 136 mA

===3.5g data, long pings (8000 bytes)===

* 1 s 240 mA
* 10 s 205 mA
* 30 s 120 mA

===2G data, long pings (8000 bytes) (with specified seconds between pings)===

* 1 s 160 mA
* 10 s 105 mA
* 30 s 50 mA

3G sending file at 150 k/s 375 mA
3G recieving at 200 k/s 275 mA


--
random adds:

WLAN PS-mode medium,10 mW, ssh login active, local xterm with bq27200 script loop -9, screen blanked, aggressive custom breathing indicator light: 20 mA

xchat 8 freenode chan, wifi PSM medium, screen locked:
&lt;pre&gt;
Nokia-N900-42-11:~# bin/bq27200.sh 20
LOOPMODE=20
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
18:36 4092 100  100  -134 1187 1187 1187 65535 530   37  0
18:36 4092 100  100  -17  1186 1186 1186 65535 3990  37  0
18:37 4106 99   99   -68  1186 1186 1186 65535 1042  37  0
18:37 4095 99   99   -52  1185 1185 1185 65535 1359  36  0
18:37 4130 99   99   -18  1185 1185 1185 65535 3807  36  0
18:38 4092 99   99   -138 1184 1184 1184 65535 511   36  0
18:38 4090 99   99   -110 1184 1184 1184 65535 644   36  0
18:38 4090 99   99   -57  1183 1183 1183 65535 1241  36  0
18:39 4090 99   99   -118 1183 1183 1183 65535 597   36  0
18:39 4114 99   99   -34  1182 1182 1182 65535 2077  36  0
18:39 4127 99   99   -17  1182 1182 1182 65535 3569  36  0
18:40 4122 99   99   -77  1181 1181 1181 65535 570   36  0
18:40 4087 99   99   -64  1180 1180 1180 65535 3403  36  0
&lt;/pre&gt;

==Software==

Many software subsystems interact to aim to reduce battery usage.

* [[Wifi power saving mode]]
* http://hssl.cs.jhu.edu/~neal/woodchuck/blog/2011/09/22/Wireless_Transfers_are_Battery_Intensive/
[[Category:N900]]
[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Power management</title>
    <id>3288</id>
    <revision>
      <id>48852</id>
      <timestamp>2012-07-30T09:27:02Z</timestamp>
      <contributor>
        <username>pali</username>
        <id>2764</id>
      </contributor>
      <minor/>
      <comment>/* USB battery charger */</comment>
      <text xml:space="preserve">The power managment on the [[Nokia N900|N900]] is very complex, and involves a large number of interacting systems.

==Hardware==

===SoC===

The System-on-a-chip is the main processor on the n900.
This is the [http://focus.ti.com/docs/prod/folders/print/omap3530.html  TI omap3430].
For more information see [[N900 CPU]].

===Gaia===

The TWL4030  is a TI companion chip to the SoC. For more information see [[N900 Hardware Chipset]]

===USB battery charger===

The [http://focus.ti.com/docs/prod/folders/print/bq24150a.html bq24150a] charger from TI is a flexible charger. It, along with the PHY chip - support charging without the intervention of the SoC when the system is charging from a completely dead battery. The PHY chip detects a charger (shorted D+ and D- pins) and the charger uses this information to charge more rapidly.

It also features reverse boost mode - which enables power to be supplied to a USB device connected to the N900. (up to a limit of 200 mA) 

For more information see [[N900 Hardware Battery Charger]]

==Firmware==

The CPU is designed to work intimately with the companion chip, in order to implement [http://focus.ti.com/general/docs/wtbu/wtbugencontent.tsp?templateId=6123&amp;navigationId=12032&amp;contentId=4609 SmartReflex]. 

This [http://www.TI.com/ TI]s method of adjusting the voltage of various portions of the chip dynamically, in order to ensure the power delivered to the many separate sections of the chip is just sufficient to allow for the current needs.

All parts of the CPU that are not immediately in use are powered down.

The CPU has well over a dozen seperate functional blocks, each of which can be powered on/off seperately.

This dramatically reduces power usage.

==Software==

{{main|N900 software power management}}

[[Category:N900]]
[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Power management/I2C</title>
    <id>4212</id>
    <revision>
      <id>35355</id>
      <timestamp>2010-06-04T11:04:51Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <comment>[[N900 Hardware Power management/I2C]] moved to [[N900 Hardware Power management]]: Better name, no I2C content soon.</comment>
      <text xml:space="preserve">#REDIRECT [[N900 Hardware Power management]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Schematic</title>
    <id>3686</id>
    <revision>
      <id>45591</id>
      <timestamp>2011-10-20T16:29:18Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">An [[Nokia N900|N900]] schematic appears to be at [http://mohammadag.xceleo.org/public/.private/Nokia_N900_RX-51_Schematics.pdf].
Service Manuals L1_2 and L3_4 can be found under e.g. http://www.google.de/search?q=Nokia_N900_RX-51_Service_Manual_L1L2_v1_0.pdf

This might not be the exact version of the schematic used to make the phone.

Revision is given as 2JH_21A on the schematic. However, the pictured PCB in the schematic is 2JH_20 - see above the third row from the right keys. A dissasembled purchased n900 showed a revision number of 2JH_21&lt;ref name=&quot;high resolution scans&quot;&gt;http://maemo.cloud-7.de/Gallery-N900-exploded/&lt;/ref&gt;.

This is a brief list of what's where on the schematic.
It generally only includes major components, and any minor components that have a direct bearing on software.

==Page 1 Front page==

Frontpage with photo and index, version index, (C) mambojambo

==Page 2  CPU, Camera, Accelerometer==

* D4800 - OMAP3430 - [[N900 CPU]]
* N5820 - Camera cover switch
* N5801/2 - Main/secondary camera multiplexers (Digital, switch CSI_A_B(3:0) bus)
* N7001 - LIS302DL - [[N900 accelerometer]]
* N5810 -  - [[N900 Hardware Subsystems#Flash Memory]]

==Page 3  Memory==

* N5210 - uSD hotswap detector (a Hall switch or Reed, operated by magnet in back cover)
* D4800 - OMAP3430 - [[N900 CPU]]
* D5000 - Combo memory - 64M*32 DDR, 128M*16 Flash. (POP Package On Package on top of OMAP)
* D5200 - eMMC 32 GB

==Page 4 GAIA==

* Gaia - TWL4030 - [[N900 Hardware Chipset]]
* N4290 - 2.5 V regulator with enable.
* G4246 - 19.2 MHz TXCO
* N4242 - 2.8 V regulator with enable.
* M4270 - Vibrator motor
* D4280 - USB PHY - [[N900 Hardware USB]]
* N1130 - Fuel Gauge - [[N900 Hardware Charge Meter]]
* N1140 - Battery Charger - [[N900 Hardware Battery Charger]]
* R1129+R1130 - Sense resistor for Fuel Gauge. (actual values in milli Ohms *urgently* needed! Seems to be 20mR)
* R1110 - 10 K thermistor in parallel with 1n to ground, to ADCIN0 on GAIA - labeled &quot;Battery temperature sensor&quot;

==Page 5 Display==

* N1510 - Touchscreen controller [[N900 Hardware Subsystems#Touchscreen]]
Erratum: 
 I2C_2(1:0)
 CPU &gt; OMAP3430
is I2C_3, not I2C_2

==Page 6 LEDs==

* N1322 - R&amp;D mode LED driver.
* N1301 - LED driver - keyboard, notification - [[N900 Hardware LED]]

==Page 7 Keyboard==

* S4311/2 - Volume keys
* S4313 - Lock switch
* S4301 - Power button
* S4314 - Capture key (two level)
* QWERTY keyboard

==Page 8 Audio, FMTX==

* N4022 - Analog switch, used to switch between TV out and headphones.
* N4051 - Speaker amplifier
* N4040 - Stereo audio codec [[N900 Hardware Audio Codec]]
* N6180 - FM transmitter [[N900 FM radio transmitter]]
* N4070 - Headphone amplifier

==Page 9 BTFM, WLAN==

* N6543 - 2.8 V regulator with enable, provides power to:
* G6450 - 38.4 MHz VCTCXO - clock for Bluetooth and WLAN modules automatically enabled when either require clock, through or gate to above regulator.
* N6300 - WLAN module
* N6000 - BT module / FM receiver - [[N900 FM radio receiver]]

==Page 10 GPS==

* N6200 - GPS module
* G6200 - GPS clock - 16.368 MHz

==Page 11 RAPUYAMA, GAZOO==

* N2200 - Gazoo
* D2800 - Rapuyama
* D3000 - 128 M NOR flash + 128 M DDR - connected only to Rapuyama

==Page 12 Display flex connector==

* N1540 - Reflective optical switch (proximity sensor)
* N1530 - Ambient light sensor
* N1550 - CMOS camera module
Erratum:
 I2C_3(1:0)
 BTFM &gt; BTFM Module
 CPU &gt; OMAP3430
Offsheet symbol incorrect, connection to I2C_3 is via BTB(12:13). Probably, when fixing erratum on page 5, this off sheet symbol is no longer needed to make DRC happy.

==Page 13 RF Part==

* Aura - Vapaus, ... Cellphone components.

==Page 14 Signal Overview (Top)==

Full size photo front view of PCB. (higher resolution scans to be found here&lt;ref name=&quot;high resolution scans&quot;/&gt;)

Wlan nominal spectrums, various clock nominal levels.

==Page 15 Signal Overview (Bottom)==

Full size photo rear view of PCB.(higher resolution scans to be found here&lt;ref name=&quot;high resolution scans&quot;/&gt;)

More clock levels, nominal GSM and CDMA spectrum.

==Page 16 Component Finder (Top)==

Component placement front side

==Page 17 Component Finder (Bottom)==

Component placement rear side

==Page 18 Component Finder-Display flex==

Display Flex Connector component placement

==Note on component types and values==

The schematics only use symbolic labels for most components, and abstract names made up by Nokia for some of the large chips (e.g. GAYA, RAPUYAMA). However at least most resistors and capacitors have their size printed next to them. So the simpler the component, the harder it gets to tell what it actually is - except for capacitors and resistors. For a lot of chips you can read the actual printing from body of component, by looking at the photos p. 14, 15 and at [http://maemo.cloud-7.de/Gallery-N900-exploded/ Joerg Reisenweber's highres scans] &lt;ref name=&quot;high resolution scans&quot;/&gt;.

This webpage&lt;ref name=&quot;teardown BOM&quot;&gt;http://www2.electronicproducts.com/Nokia_N900_Mobile_Phone-whatsinside_text-90.aspx&lt;/ref&gt; has a pretty decent list of components from a reverse engineering teardown effort by isuppli.com. Almost a BOM, if only they had added the symbolic labels or exact component locations to link back to the schematics. Comes even with links to datasheets, physical dimensions of component, etc pp.

== References ==

&lt;references /&gt;

[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Subsystems</title>
    <id>4213</id>
    <revision>
      <id>44499</id>
      <timestamp>2011-07-15T13:23:05Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>/* Keyboard */</comment>
      <text xml:space="preserve">There are many interacting hardware subsystems in the [[Nokia N900|N900]].

These can be split roughly into several areas.

==Audio==

===Software===

Most of the audio on the N900 is handled by gstreamer and PulseAudio.
See [[Documentation/Maemo_5_Developer_Guide/Using_Multimedia_Components/Introduction|the API documentation on sound]]

===Main Speakers===
===Earpiece===
===Headphones===

The [[N900 headphone amplifier|headphone amplifier]] is a TPA6130a2 manufactured by Texas Instruments.

===Composite out===

===FM radio transmitter===

{{main|N900 FM radio transmitter}}

===FM radio receiver===

{{main|N900 FM radio receiver}}

===Bluetooth audio===

==Video==

The GPU is a SGX530 licensed from Imagination Technologies.

===Display===
====Built in LCD====

{{main|N900 LCD panel}}

====Composite out====
===Front camera (VGA)===

{{main|N900 VGA camera}}

===Rear camera (5MP)===

{{main|N900 camera sensor}}

====Rear camera autofocus====

{{main|N900 Hardware Autofocus}}

====Rear camera LED flash====

{{main|N900 Hardware Flash Torch}}

====Rear camera warning light====
====Rear camera shutter====

==USB==

{{main|N900 Hardware USB}}

===USB socket===

{{main|N900 Hardware USB Socket}}

==User interaction==

===Touchscreen===

The touch screen controller is a TSC 2005.

===Accelerometer===

{{main|N900 accelerometer}}

===Switches===
====Lock Switch====
====Headset Switch====
====Jack Switch====
====Camera Button====
====Power Button====
====Volume control====
====Rear cover presence switch====
====Camera cover====

===Keyboard===
Matrix keyboard connected to row[7:0] x col[7:0] dedicated matrixscanner IO at GAIA.

All QCOL traces and QROW7 trace are equipped with ESD protection against static discharge.

Each switch under a key is connected to one col and one row trace
&lt;pre&gt;
(QCOL-&gt; 7    6    5    4    3    2    1    0)
QROW7:                           VOL- VOL+ I
QROW6:                                     U
QROW5:                                     Y
QROW4:       Shft Fn   CTRL      Rght Down T
QROW3:  Left      SPC  M    N    B    V    R
QROW2:  C    X    Z         CR   Up   .    E
QROW1:  L    K    J    H    G    F    D    W
QROW0:  S    A         Del  ,    P    O    Q
&lt;/pre&gt;
For example pressing W connects QCOL0 to QROW1.&lt;br&gt;
The matrix controller applies a certain level (say +3V) to first col QCOL0 and checks which rows are going to same level (QROW1 for 'W'). Then next col is the one to get +3V, and so on.

For Shift-X QCOL6 will pull up QROW4 and QROW2. For Shift-T QCOL6 and QCOL0 will pull up QROW4.

Now the nasty part of it:&lt;br&gt;
Shift-Fn-K means QCOL5 will pull up QROW4, and QCOL6 will pull up QROW4 and QROW1. BUT: when QROW4 is pulled high by QCOL5, then via the closed Shift key QROW4 will pull high QCOL6, and QCOL6 will pull high QROW1 via K switch. So the matrix controller will see QROW4 and QROW1 both be high, for either of QCOL5 and QCOL6, which looks like 4 keys shift, Fn, K, and(!) J are pressed. Situation for Shift-Fn-J is absolutely identical, and so Sh-Fn-J and Sh-Fn-K are not distinguishable.&lt;br&gt;
for 3-key tupels the combinations are:&lt;br&gt;
Sh-Fn-J/K&lt;br&gt;
Sh-Fn-X/Z&lt;br&gt;
Sh-CTL-K/H&lt;br&gt;
Sh-CTL-A/Del&lt;br&gt;
Fn-CTL-Space/M&lt;br&gt;
Fn-CTL-J/H&lt;br&gt;

Looking at this matrix, we notice two things:&lt;br&gt;
1: Nokia missed to give real dedicated col-lines to the qualifier keys, though there would have been plenty, by simply arranging the keys in matrix in a smarter way. That would have completely avoided the above described N-key rollover issue&lt;br&gt;
Another common method to fix this problem is to use diodes in series with the key switches. A diode for Ctrl, Shift, and Fn would be just enough here, adding to the BOM with only 3 parts a 2ct each.&lt;br&gt;
2: U has its own row, and U is used for flashing (USB-flashing mode). Coincidence?
Let's assume Nokia EE thought (for whatever weird reason) it might be clever to have a dedicated row for U (so they just pull high QCOL0 in NOLO bootloader and check the 8 row lines by reading in that byte). Then we might start to wonder what's with Y. And with I? And with T R W E Q? Nota bene press&amp;hold multiple of those keys will always still deliver a nice clean easy-to-read 8bit result, on the presumed test during boot in NOLO

(p.s: maybe the rows are driven high - or even low - and the cols are the sensing inputs. I've not checked this, as it doesn't change anything in the basic function principle and neither changes the problem with N-key rollover. For the NOLO speculations it makes more sense to have inputs on rows and drivers on cols, though)

====Keyboard Slide====

===Proximity sensor===

===Ambient Light Meter===

{{main|N900 light meter}}

==Power management==

{{main|N900 Hardware Power management}}

===Battery===

====Charge meter====

{{main|N900 Hardware Charge Meter}}

===Battery Charger===

{{main|N900 Hardware Battery Charger}}

===Gaia===
===CPU===

==Phone==

{{main|N900 Hardware Phone}}

===GPS===

{{main|N900 Hardware GPS}}

===2G/3G phone module===
===SIM===

==Local Network==
===Bluetooth===

{{main|N900 Hardware Bluetooth}}

===Wifi===

{{main|N900 Hardware Wifi}}

===USB Networking===

==Computing==
===CPU===

{{main|N900 CPU}}

====Many functional blocks of the CPU====
====Chipset====

{{main|N900 Hardware Chipset}}

===Memory===
====Flash Memory====
=====Internal 32GB eMMC=====
=====Internal 'OneNand' 256MB=====
=====External microSD card=====

====RAM====

==Other hardware (needs merging into hierarchy above)==

(Click on device for wiki page with more information)

{| class=&quot;wikitable&quot; border=&quot;1&quot; cellpadding=&quot;2&quot;
!Device
!Model (Manufacturer)
!Description
!Driver
|-
|[[N900 Hardware LED|LED Controller]] || LP5523  || ||
|-
|[[N900 Hardware Digital Audio Data Serial Interface|Digital Audio Data Serial Interface]] || TLV320AIC3x || ||
|-
|}

For those wanting to hack on the hardware drivers, the Maemo Kernel source code can be downloaded here:
 http://repository.maemo.org/pool/fremantle/free/k/kernel/

[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Switches</title>
    <id>4221</id>
    <revision>
      <id>35580</id>
      <timestamp>2010-06-10T13:19:37Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[N900 Hardware Subsystems#Switches]], as no content here</comment>
      <text xml:space="preserve">#REDIRECT [[N900 Hardware Subsystems#Switches]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware USB</title>
    <id>4047</id>
    <revision>
      <id>48853</id>
      <timestamp>2012-07-30T09:28:17Z</timestamp>
      <contributor>
        <username>pali</username>
        <id>2764</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">The USB connector on the [[Nokia N900|N900]] is a micro-b connector, as now required in European and Chinese markets, under the [http://en.wikipedia.org/wiki/Universal_Charger_Solution#Universal_Charging_Solution|new scheme to make all phone charger sockets identical].

==USB implementation==

The N900 seems initially to have been designed to be capable of acting as a USB host, or implementing OSG mode. This would have allowed keyboards, mice, and other peripherals to be plugged in.

The USB port with embedded host mode could not be certified, as the OTG drivers were not ready. (see [http://talk.maemo.org/showthread.php?p=643577#post643577] last block). 

This lead to the the micro-AB USB connector being replaced by a micro-B, and the host functionality being officially removed short time before launch.

Lacking certification would have a large number of issues, from some operating systems requiring certification before allowing drivers to be distributed, to legal compliance with the USB charger specs - it would technically not be a USB port.

===The Chips===

There are four chips involved in the USB subsystem.

====SoC====

The System-on-a-chip is the main processor on the n900.
This is the [http://focus.ti.com/docs/prod/folders/print/omap3530.html  TI omap3430]

====Gaia====

The [[N900_Hardware_Power_management/I2C|TWL4030]] is a TI companion chip to the SoC

====USB battery charger====

The [http://focus.ti.com/docs/prod/folders/print/bq24150a.html bq24150a] charger from TI is a flexible charger. It, along with the PHY chip - support charging without the intervention of the SoC when the system is charging from a completely dead battery. The PHY chip detects a charger (shorted D+ and D- pins) and the charger uses this information to charge more rapidly.

It also features reverse boost mode - which enables power to be supplied to a USB device connected to the N900. (up to a limit of 200mA) 

For more information see [[N900 Hardware Battery Charger]]

====USB Phy====

The [http://www.nxp.com/ NXP] isp1707a is used as the USB PHY chip. [http://www.spinics.net/lists/linux-usb/msg25167.html]. This rights to this part have been bought by ST-Ericson and some information is [http://www.stericsson.com/sales_marketing_resources/USB_transceiverBR_1.pdf available in a brief marketing sheet]. 

There is no published datasheet for this chip. It may be available under another name.

A reasonably similar chip (compare chips: [http://www.ebv.com/fileadmin/products/Products/ST-Ericsson/Flyer_USB_Transceivers_1.pdf]) is the 1704 which has a datasheet [http://www.stericsson.com/technical_documents/CD00222700.pdf]

For more information see [[N900 Hardware USB PHY]]

===The Circuit===

* The SoC has the USB protocol controller - this is the 'high level' controller - it implements most of the USB protocol. This is a [http://www.mentor.com/products/ip/usb/usb20otg/ Mentorgrafix MUSBMHDRC-core] IntelectualProperty function block licenced for the OMAP.
* The PHY (physical layer) chip connects to the world through the USB socket. This is not the normal companion chip - but the NXP part, and is connected to the SoC via a standard ULPI interface. It does the very lowest level USB hardware protocol. Also it detects chargers (by sensing D+/D- short). It also has a connection to VBUS, via a 1k resistor, to do certain probing.
* The [[N900 Hardware Battery Charger|bq24150a Battery charger]]. This is connected to the battery, and the PHY chip, as well as to the SoC though I2C. It handles (with the PHY chip) charging from dead. It also implements boost mode, to enable powering things through the USB socket. Of course it detects when external VBUS is applied.
* Gaia. The [[N900_Hardware_Power_management/I2C|TWL4030]] is used to sense the value of the ID pin. It also has a connection to VBUS, to power up the device on charger insertion and inform a running system about changes in VBUS state. Though TWL4030 has a function similar to PHY chip as well, the original design using this function had to change as early chip revisions had problems with charger detection (so the rumour). Driver sourecode is full of cruft from that original design.

===The Software===

* [[N900 Software BME|BME]] - the battery managment entity. This has its hands in everything, especially the bq24150a, and is split into
** charger detection (via PHY) in kernel MUSB_HDRC driver, exposing /sys/devices/platform/musb_hdrc/charger
** BME - userspace driver for the charger chip, as well as monitoring battery voltage through Gaia.
** Hald-addon-bme - a small helper program to interface between HAL and BME.

* Kernel driver. 
** This seems to be a partially implemented OTG driver for the initial design of the N900, with OTG mode partially implemented, assuming that the twl4030 would be used as the USB PHY. It seems to have been modified only to the extent required to make the NXP PHY work as a replacement.

==Host mode details.==

Host mode works, see [http://talk.maemo.org/showthread.php?p=901888#post901888 this thread] Mohammad started on talk.maemo.org, when releasing first beta of a package comprising of a hostmode patched kernel build by Paul Fertser with support of h-e-n team, and a lean GUI built by Mohammad. The basic functionality seems to work fine.
 
A [[N900_Hardware_USB_Host|user friendly implementation]] that makes it easy to use host mode needs a lot more than this, e.g. proper automounting, clean unmounting and sync, drivers for all kinds of peripherals etc.

A USB OTG controller would normally switch between host and device mode (initially) using the ID pin, to detect if it's at the A or B-side of a OTG cable. 

Initially it was claimed that ID is not connected externally, and that this made USB host mode impossible.

While this is mostly correct, it needs some exemplification: 
* the ID pin is not connected to PHY, but it is connected to GAIA
* MUSB-core has a hw statemachine that reacts on a telegram from PHY, telling MUSB-core about ID pin grounded and to enter OTG_A hostmode now.
* Other PHY chips (e.g. in N810) have a command to make them send this telegram, so you can switch MUSB-core to hostmode under software control (go figure!). 1707 is missing this function.
* There is apparently no way to tell MUSB-core directly to switch to hostmode in a natural way.
* However there is a bit in MUSB-core registers called FORCE_HOST, which is switching MUSB-core into a semi-lobotomized test mode and allowed us to implement h-e-n.

===the following text needs update, it doesn't represent current state of investigation results anymore (corrections in ''(italic)'')===

However, similar device datasheets indicate that the ID pin is used on hardware that supports it to switch between host and device mode.

But, importantly, the ID pin does nothing directly to the state of the PHY. It simply informs the CPU ''(the MUSB-core)'' of the state of the ID pin, and leaves the driver to properly configure the chip (nota bene, only for OTG, and only for determining the inital state).

So, if the kernel can be altered to ignore this pin - which should be trivial if there is host mode support for the chip in the kernel ''(the hw statemachine in MUSB-core won't play nice with whatever kernel does to enable hostmode in a &quot;normal&quot; way)''- then host mode works.(the related sourcecode is to be found here:[http://mxr.maemo.org/fremantle/source/kernel/drivers/usb/musb/musb_core.c#2010], a 'echo host &gt;mode' should work if the kernel driver wasn't crippled in some strange way)''(h-e-n kernel hostmode now is working like this, but still needs another 'echo Fx &gt;/proc/drivers/musb-hdrc' where 'x' is depending on speed. The kernel is &quot;crippled&quot; in a way it can not send a command to PHY to switch to hostmode, as the 1707 '''seems''' doesn't support this - further investigation needed, maybe it has this command but it isn't documented. Or we can spoof this command rsp the resulting telegram)''

The current understanding by several people who are working on USB host mode is:

The USB port can supply power - at least 200mA (as demonstrated here:[http://talk.maemo.org/showthread.php?p=588950#post588950]). This is plenty for many devices - mice and keyboards.

It seems likely that a relatively simple kernel change should enable USB hostmode - http://focus.ti.com/lit/ug/spruf98d/spruf98d.pdf - search for FORCE_HOST - there may well be other cleaner solutions. ''(h-e-n is exploiting this. About the &quot;relatively simple&quot; part that's up to your discretion)
''

A possibly related errata is detailed at 3.1.3 in [http://focus.ti.com/lit/er/sprz278d/sprz278d.pdf this document] - this, and other erratas may or may not cause issues with implementing host mode.

==USB socket==

{{main|N900 Hardware USB Socket}}

===Compatible devices===

{| class=&quot;wikitable sortable&quot;
|+ Compatible USB devices
|-
! USB device name
! Status
! class=&quot;unsortable&quot; | Additional information
! Additional driver needed
! class=&quot;unsortable&quot; | Discussion link
|-
| Edimax EU-4207 || Working || no problems found || &lt;code&gt;no&lt;/code&gt; || http://talk.maemo.org/showthread.php?t=66667
|-
| ZTE-AC2766 || Working || no problems || &lt;code&gt;no, uses usbserial.ko&lt;/code&gt; || http://talk.maemo.org/showpost.php?p=1198785&amp;postcount=13
|-
|}

[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware USB Host</title>
    <id>4077</id>
    <revision>
      <id>46268</id>
      <timestamp>2012-01-08T23:41:03Z</timestamp>
      <contributor>
        <username>davidxfoo</username>
        <id>4930</id>
      </contributor>
      <comment>/* Demos */</comment>
      <text xml:space="preserve">This page is for those working on the implementation of friendly USB host mode.

See also [https://garage.maemo.org/projects/h-e-n/ the garage project].

==Status==
USB Host mode has reached beta status, and is working reliably with manual speed switching.

Proper host mode would only require the normal cable, and a commonly available adapter. ([http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItem&amp;item=250641334947 USB A-A adaptor]) Or maybe you like to get a fitting all-in-one small adapter, or make one fit ([http://talk.maemo.org/showthread.php?p=873725#post873725 N8 OTG adapter rework]). Huge rigid adapters are STRONGLY DEPRECATED, regarding the notorious problems with USB receptacle coming off the PCB.

A pre-alpha of hostmode was released on the 23rd of September, here: http://talk.maemo.org/showthread.php?p=824298

This release is unreliable, and an implementation of proper host mode is likely to be much more stable.

A beta release, based on Paul's completely rewritten patches (see h-e-n's garage repository) was released on the 7th of November, and is the closest release yet to proper hostmode, http://talk.maemo.org/showthread.php?t=65232

There are several parts to getting USB host mode working for normal users.

Some of these are quite easy, many are not.

* Kernel modifications to make USB host work properly [done, thanks to Paul]

* USB modules for supporting hardware.  This is fairly simple for most hardware - some hardware modules will not compile cleanly on ARM, and binary drivers that allow you to use windows drivers with some stuff will never work.

For most drivers, if a particular driver does not work, it's generally a bug in the driver that should be fixed by that drivers maintainer.

* Understanding and reverse engineering [[N900_Software_BME|BMEs (Battery managment Entity)]] interaction with the hardware.    

This is in progress. All of the hardware required to make a BME clone is understood. 

* Usermode software. 
** The current software will not do the right thing if the user plugs in almost all devices - even if hostmode worked. To make a mouse work, you might want to enable a pointer for example.

==Ideas for hostmode user-software==
When an external power supply is found, the following should be done in sequence.

*If the supply is a charger (D+,D- short, detected by the 1707a), fast charge.
*Attempt to enumerate as a device, if this succeeds (including handling of suspended busses), then enumerate and charge as a device, respecting the enumerated current.
*If both enumeration as a device and charger detection have failed, we may be plugged into a hub or device with reverse power. Attempt to enumerate connected devices (=hostmode. Will not work due to [probably hardware] limitations in hostmode, which block speed selection after VBUS got applied). Charge at user-defined maximum current. For example - may be a 500mA power supply also supplying the hub and a keyboard = 2 unit loads - max draw = 300mA. Anyway see http://talk.maemo.org/showthread.php?p=921203#post921203 for actually powering N900 from external supply during hostmode. Implementation of this feature to h-e-n GUI still pending.

==Installation==
Install hostmode-gui from -devel, kernel-power will be installed if no other compatible kernel is present.

'''apt-get install hostmode-gui'''

[Update]

&quot;The most recent h-e-n pkg itself should come '''without any kernel''' now (just the GUI), however, it does depend on kernel-feature-usbhost, so any kernel providing that works, if no kernel is installed, kernel-power will be installed, and - as mentioned in a previous post - h-e-n doesn't plan to ship any dedicated hostmode kernels anymore.
The GUI will check if a compatible API is present (as per /proc/driver/musb_hdrc), and will notify to user if problems are detected (with hostmode support in whatever is the currently installed kernel).

Of course a mere update of h-e-n pkg won't magically switch from h-e-n hostmode kernel to power kernel. You have to care for that yourself.&quot;

==Usage==

A help window is available and will guide you through the steps needed.
The mount button currently executes a script that reads /proc/partitions and mounts all devices there on /media/&lt;partition_number&gt;.
The script will also modprobe ntfs and isofs (if /dev/sr0 is present), it will also create a temporary symlink (/dev/dvd) so mplayer works without any modifications (a package with DVD support compiled is needed)
Disabling tracker by adding /media/&lt;partition_name&gt; to tracker-cfg's non watch configuration is HIGHLY recommended, use tracker-cfg UI.

== Devices ==
You can plug-in almost anything into a usb port of the n900. However, many devices require a special driver in order to work. The custom kernel already provides basic drivers for devices such as:

* USB Storage(cd-roms, flash drives, hdd, etc)
* USB HID(Keyboards, mice, joysticks, touchpads, etc)

== Demos ==
* http://www.youtube.com/watch?v=zDzUG-bno6Q by MohammadAG (usb CD-ROM)
* http://www.youtube.com/watch?v=6ED92orZLMM by divan0 (usb flash drive)
* http://www.youtube.com/watch?v=1Qfx_jaQ9jo by divan0  (usb HDD via usbhub)
* http://www.youtube.com/watch?v=ua5xpTZJpwo by divan0 (usb mouse)
* http://www.youtube.com/watch?v=9byE_qTl15M by divan0 (usb keyboard)
* http://www.youtube.com/watch?v=0YPk4Y0ZPQY by divan0 (usb card reader)
* http://www.youtube.com/watch?v=3IyeSNGCWTA by divan0 (usb Ethernet adapter)
* http://www.youtube.com/watch?v=AUjbFi3-GpA by davidxfoo (USB I2C Sonar SRF08)

==Hostmode development team:==

'''Project Admins:'''
*Joerg Reisenweber
*Paul Fertser

'''Developers:'''
*Chitrang Srivastava
*Dave na
*Hagen Meyer
*Ian Stirling
*Jacek Milewicz
*Klaus Kurzmann
*Mohammad Abu-Garbeyyeh
*Mugur Enache
*Sarah Newman
*Sonny Jim
*Tom Tanner 

Most information is taken from [http://talk.maemo.org/showthread.php?t=65232 this thread] created by MohammadAG

[[category:N900_Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware USB Host/Devices</title>
    <id>4560</id>
    <revision>
      <id>41140</id>
      <timestamp>2011-01-18T12:00:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect</comment>
      <text xml:space="preserve">#REDIRECT [[N900 Hardware USB Host#Devices]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware USB PHY</title>
    <id>4209</id>
    <revision>
      <id>35899</id>
      <timestamp>2010-06-16T14:25:14Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix link</comment>
      <text xml:space="preserve">The USB PHY is the physical layer controller for the USB port.

==Hardware==

The [http://www.nxp.com/ NXP] isp1707a is used as the USB PHY chip. [http://www.spinics.net/lists/linux-usb/msg25167.html]. This rights to this part have been bought by ST-Ericson and some information is [http://www.stericsson.com/sales_marketing_resources/USB_transceiverBR_1.pdf available in a brief marketing sheet]. 

There is no published datasheet for this chip. It may be available under another name.

A reasonably similar chip (compare chips: [http://www.ebv.com/fileadmin/products/Products/ST-Ericsson/Flyer_USB_Transceivers_1.pdf]) is the 1704 which has a datasheet [http://www.stericsson.com/sales_marketing_resources/CD00222700.pdf]

It is connected to the [[N900 Hardware Battery Charger|battery charger chip]] and the [[N900 CPU]].

==Software==

The USB PHY is only dealt with by the kernel.

[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware USB Socket</title>
    <id>3654</id>
    <revision>
      <id>39016</id>
      <timestamp>2010-09-22T13:18:18Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">It seems that there is a USB socket hardware issue on some [[Nokia N900|N900s]], although this may depend on the build date. Please help and report details on your broken device :

http://talk.maemo.org/poll.php?do=showresults&amp;pollid=339

There is no reason to panic; most users are not affected and it could be trivial to prevent or repair once investigated by some DIY hackers...

== What to do? ==

Please fill in the template with: nickname : build date ; serial number  ; contact url or email ; notes (also list the hardware version &quot;&lt;code&gt;sysinfo-tool -g /device/hw-version&lt;/code&gt;&quot; )

* H...P... (TBC) http://talk.maemo.org/showthread.php?p=549339#1
* Z...n (TBC) : http://talk.maemo.org/showthread.php?p=548915#post548915
* T... : http://tabulacrypticum.wordpress.com/2009/12/13/connecting-on-the-surface-an-n900-risk/
** [http://tabulacrypticum.wordpress.com/2010/08/01/post-mortem-nokia-n900-micro-usb-detachment/ Followup post]
* n... : http://talk.maemo.org/showthread.php?p=550378#post550378
* ... : http://talk.maemo.org/showthread.php?p=550704#post550704
* ...

Also answers polls :

* http://talk.maemo.org/showthread.php?p=548177
* http://talk.maemo.org/showthread.php?t=37107

== Solution ==

* Warranty: http://discussions.europe.nokia.com/t5/Maemo-Devices/Nokia-responds-to-reports-about-the-N900-micro-usb-port-getting/td-p/629019
* DIY: may void Warranty http://talk.maemo.org/showthread.php?p=540344#post540344
* Repair:  http://www.nokia.com/repair
* Replace with a fixed one: http://www.astel.be/Les-Nokia-N900-suivants-tardent-defaut-de-fabrication-au-micro-USB_3568
* External charger: http://talk.maemo.org/showthread.php?t=45887

== Misc ==

* Please Avoid FUD, not sure it will help: http://slashdot.org/submission/1180314/Nokia-N900-Hardware-failure---USB-port-falling-off
* http://img2.pixhost.org/images/668/1649730_img_0366_edit.jpg
* data sheet: http://www.hirose.co.jp/cataloge_hp/e24200011.pdf
* hardware version: http://talk.maemo.org/showthread.php?t=46314&amp;page=3

[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware VGA Camara module</title>
    <id>3324</id>
    <revision>
      <id>35940</id>
      <timestamp>2010-06-16T14:55:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[N900 VGA camera]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware VGA Camera</title>
    <id>4276</id>
    <revision>
      <id>35938</id>
      <timestamp>2010-06-16T14:54:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[N900 Hardware VGA Camera]] moved to [[N900 VGA camera]]: shorten and capitalization</comment>
      <text xml:space="preserve">#REDIRECT [[N900 VGA camera]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware VGA Camera module</title>
    <id>4234</id>
    <revision>
      <id>35941</id>
      <timestamp>2010-06-16T14:57:18Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[N900 VGA camera]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware WIFI</title>
    <id>4218</id>
    <revision>
      <id>35400</id>
      <timestamp>2010-06-05T21:25:40Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <comment>Redirecting to [[N900 Hardware Wifi]]</comment>
      <text xml:space="preserve">#redirect [[N900 Hardware Wifi]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware Wifi</title>
    <id>4217</id>
    <revision>
      <id>42339</id>
      <timestamp>2011-03-04T13:44:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add wifi category, add link</comment>
      <text xml:space="preserve">==Hardware==
The N900 has a [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?contentId=4711&amp;navigationId=12494&amp;templateId=6123 Texas Instruments WL1251] wireless card.

==Software==

The wireless card is controlled at the lowest level by the kernel module wl12xx.
The daemon osso-wlan manages the wifi interface.

This is [http://maemo.org/api_refs/5.0/5.0-final/osso-wlan/files.html documented here].
This daemon is managed by [[Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Maemo Connectivity#Internet Connectivity Daemon|ICd]] to control the internet connectivity of the phone. [[wl1251-cal]] may also be of interest.

[[Category:N900 Hardware]]
[[Category:WiFi]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Hardware isp1707</title>
    <id>3325</id>
    <revision>
      <id>33779</id>
      <timestamp>2010-05-03T20:06:45Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <comment>Redirecting to [[N900 Hardware USB]]</comment>
      <text xml:space="preserve">#REDIRECT [[N900_Hardware_USB]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Headphone Amplifier</title>
    <id>4271</id>
    <revision>
      <id>35907</id>
      <timestamp>2010-06-16T14:33:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[N900 Headphone Amplifier]] moved to [[N900 headphone amplifier]]: capitalization</comment>
      <text xml:space="preserve">#REDIRECT [[N900 headphone amplifier]]</text>
    </revision>
  </page>
  <page>
    <title>N900 LCD panel</title>
    <id>4241</id>
    <revision>
      <id>46918</id>
      <timestamp>2012-03-08T16:01:00Z</timestamp>
      <contributor>
        <ip>82.72.170.115</ip>
      </contributor>
      <comment>/* Hardware */</comment>
      <text xml:space="preserve">The LCD is the display of the [[Nokia N900|N900]]. It has a resistive touchscreen on top.

==Hardware==

The main display is a ACX565AKM LCD panel, manufactured by Sony.

The pinout for the LCD Panel's connector is:

 1  LED2+
 2  LED1+
 3  GND
 4  Data0-
 5  Data0+
 6  Clock-
 7  Clock+
 8  Data1-
 9  Data1+
 10 GND
 11 Touch Y-
 12 Touch X+
 13 Touch Y+
 14 Touch X-
 15 SCLK
 16 RESET
 17 MOSI
 18 MISO
 19 CS2
 20 V18( 1.8V Supply ) 
 21 V28( 1.8V Supply )
 22 CABC
 23 LED1-
 24 LED2-
 Shield GND

CABC is an output line which gets or'ed with the LCD_LEDS signal from GAIA and fed to the EN pin of the backlight driver.

Pin 15, 17, 18 and 19 are a SPI interface.

Pins 11 thru 14 are connected to the touch panel connector on the LCD flatcable.

==Software==

[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Media Support</title>
    <id>4772</id>
    <revision>
      <id>42330</id>
      <timestamp>2011-03-03T14:20:13Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[N900 Media Support]] moved to [[N900 media support]]: Sentence capitalization for page titles</comment>
      <text xml:space="preserve">#REDIRECT [[N900 media support]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Mission Control</title>
    <id>4367</id>
    <revision>
      <id>38511</id>
      <timestamp>2010-09-13T10:36:38Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">This page aims to document the Mission Control interface on the [[Nokia N900]], as several things have changed since earlier versions of Maemo and previous instructions for e.g. setting presence no longer work as expected. 

It is actively a work in progress as of late July / early August 2010.

== Mission Control on the N900 ==

As discussed on the [[Free_Maemo#mission_control|Free Maemo]] page, the Mission Control included on the N900 is not the open-source version from the Telepathy package, but is provided by the osso-mission-control package under a closed-source Nokia licence.

=== mc-tool ===

There is a commandline utility for interfacing with Mission Control, in the shape of mc-tool. mc-tool is not installed by default on the N900, but is available as part of the package [http://maemo.org/packages/view/libmissioncontrol-utils/ libmissioncontrol-utils]. The built-in help is very limited, so you may wish to [http://manpages.ubuntu.com/manpages/lucid/man1/mc-tool.1.html read the manual] from the Ubuntu site or consult the example scripts further down this page.

=== dbus ===

== Example scripts ==

=== Set MSN (pecan) to stay offline when disconnected ===

Since MSN allows only one client connection at a time, signing into MSN from the N900 disconnects it on my desktop PC, and vice versa. 

Pidgin on my desktop PC handles this gracefully by disabling the account until I manually connect it. msn-pecan, on the other hand, helpfully auto-reconnects on its own authority and fails to respect my disabling auto-connect via mc-tool; if the requested status remains as &quot;available&quot;, it reconnects, and that disconnects Pidgin on my desktop again. Grr. 

You need an instance of dbus-scripts '''on the session bus''' for this one (see instructions on the [[DbusScripts]] page), then you can do the following:

==== /etc/dbus-scripts.d/dbus-scripts-settings ====

&lt;source lang=&quot;text&quot;&gt;
#:MSN (pecan) disconnected (session bus)
/usr/bin/offmsn * * org.freedesktop.DBus ReleaseName org.freedesktop.Telepathy.Connection.pecan.msn_pecan.*
&lt;/source&gt;

==== /usr/bin/offmsn ====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
# If we got disconnected from MSN (eg by signing in via Pidgin on desktop PC) then set it offline until further notice
mc-tool list | grep &quot;pecan/msn&quot; | awk {'print &quot;mc-tool request &quot;$1&quot; offline&quot;'} | sh
&lt;/source&gt;

=== Set all SIP accounts online/offline ===

These scripts are intended to be run from [[DbusScripts]] when (for example) WiFi is disconnected, or use any of the various schedulers (e.g. Alarmed) to change your availability according to time of day. Also note that &quot;sofiasip&quot; matches the name of the telepathy plugin that handles SIP accounts and not a specific SIP provider, so the commands in this example will operate on all the SIP accounts in 'mc-tool list'.

==== /usr/bin/siponline ====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
mc-tool list | grep &quot;sofiasip&quot; | awk {'print &quot;mc-tool request &quot;$1&quot; online&quot;'} | sh
&lt;/source&gt;

==== /usr/bin/sipoffline ====

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
mc-tool list | grep &quot;sofiasip&quot; | awk {'print &quot;mc-tool request &quot;$1&quot; offline&quot;'} | sh
&lt;/source&gt;

=== Manage telepathy IM connections interactively from CLI===

==== /usr/bin/im-connections ====

Simple script that will allow you to individually control each account (you must update the LIST variable with your actual accounts (get the names from &quot;mc-tool list&quot;) - and update the menu accordingly. Courtesy of [http://themattreid.com http://themattreid.com]

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
#Change status of IM accounts on N900
LIST=&quot;haze/yahoo/your_account
haze/aim/your_account&quot;

modify() {
    ACCOUNT=$1
    STATE=$2
    echo -n &quot;setting account to $STATE: &quot;
    /usr/bin/mc-tool request $ACCOUNT $STATE
    if [ $? = 0 ]; then
        echo &quot;[OK]&quot;
    else
        echo &quot;[FAIL]&quot;
        exit 1
    fi
    exit 0
}

choose() {
    ACCOUNT=$1
    echo &quot;[1] online
[2] offline&quot;
    echo -n &quot;select state: &quot;
    read STATE
    if [ &quot;$STATE&quot; = &quot;1&quot; ]; then
        modify $ACCOUNT &quot;available&quot;
    elif [ &quot;$STATE&quot; = &quot;2&quot; ]; then
        modify $ACCOUNT &quot;offline&quot;
    else 
        echo &quot;incorrect choice&quot;
        exit 1
    fi
}

echo &quot;[1] your_account - yahooIM
[2] your_acount - AIM
[2] ALL ACCOUNTS - show status
[3] ALL ACCOUNTS - online
[4] ALL ACCOUNTS - offline&quot;

echo -n &quot;select account: &quot;
read r

if [ &quot;$r&quot; = &quot;1&quot; ]; then
    choose &quot;haze/yahoo/your_account&quot;

elif [ &quot;$r&quot; = &quot;2&quot; ]; then
    choose &quot;haze/aim/your_account&quot;

elif [ &quot;$r&quot; = &quot;2&quot; ]; then
    echo &quot;showing status of all accounts&quot;
    for each in $LIST; do
        /usr/bin/mc-tool show $each
    done

elif [ &quot;$r&quot; = &quot;3&quot; ]; then
    for each in $LIST; do
        echo -n &quot;setting '$each' to online: &quot;
        /usr/bin/mc-tool request $each available
        if [ $? = 0 ]; then
            echo &quot;[OK]&quot;
        else
            echo &quot;[FAIL]&quot;
        fi
    done
elif [ &quot;$r&quot; = &quot;4&quot; ]; then
    for each in $LIST; do
        echo -n &quot;setting '$each' to offline: &quot;
        /usr/bin/mc-tool request $each offline
        if [ $? = 0 ]; then
            echo &quot;[OK]&quot;
        else
            echo &quot;[FAIL]&quot;
        fi
    done
fi
&lt;/source&gt;

== References and further reading ==

=== Telepathy generic documentation ===

* [http://gnomejournal.org/article/84/telepathy-empathy-and-mission-control-5-in-gnome-228 The GNOME Journal: Telepathy, Empathy and Mission Control 5 in GNOME 2.28]
* [http://people.collabora.co.uk/~danni/telepathy-book/ Telepathy Developers Manual]

=== Nokia specific documentation ===

[[Category:Software]]
[[Category:Fremantle]]
[[Category:Connectivity]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Resources</title>
    <id>4932</id>
    <revision>
      <id>46251</id>
      <timestamp>2012-01-07T11:30:48Z</timestamp>
      <contributor>
        <username>pali</username>
        <id>2764</id>
      </contributor>
      <comment>/* Links to source that is relevant for Fremantle */</comment>
      <text xml:space="preserve">This page lists relavent resources and information that is of use in working with the binary blobs on the N900 Maemo Fremantle OS or otherwise working with the phone beyond the stock Nokia SDK.
==== Maemo.org Wiki pages ====
*[[Phone_control]] Information on how to use some of the dbus calls exposed by various parts of the phone software
*[[Wl1251-cal]] Information on some of what the closed-source wl1251-cal binary does
*[[N900_Software_BME]] BME related information
*[[Sources]] Links to various bits of N900 source code
*[[Telephony_Stack]] Random notes on how to talk to libisi and the CSD daemon
*[[Dialer]] Random notes on the Fremantle dialer
*[[ICD_Policy_Plugins]] Notes on the ICD2 policy plugins
*[[getbootstate]] Getbootstate - called from /sbin/preinit
*[[Fremantle_closed_packages]] Table which contains informations about all closed packages in Fremantle

==== Links to source that is relevant for Fremantle ====
*[http://gitorious.org/community-ssu/ Community SSU git repository, contains re-implementations of some Nokia closed binaries]
*[http://gitorious.org/maemo-5-certificate-manager/ Git repository for the Maemo5 Fremantle certificate manager and Control panel plugin]
*[http://maemo.gitorious.org/ Maemo git repos containing some of the Maemo source code]
*[http://gitorious.org/dsme/ Git repository for DSME &amp; iphb]
*[http://meego.gitorious.org/meego-middleware/mce MCE source code from MeeGo] Won't work as-is on Maemo but still useful for reference.
*[http://meego.gitorious.org/meego-middleware/mce-dev Development headers that match the MCE source code]
*[http://meego.gitorious.org/meego-cellular/ofono/trees ofono source tree] Good as a reference to many bits of the N900 cell modem.
*[http://repository.maemo.org/pool/maemo5.0/free/ all officially open packages from Maemo Fremantle]
*[http://mxr.maemo.org/fremantle/source/ all open source code/packages from Maemo Fremantle on Maemo Cross-Reference]
*[http://meego.gitorious.org/meego-device-adaptation/n900_libbme library for talking to BME] The oldest tree for this contains information that matches the Fremantle BME.
*[http://meego.gitorious.org/maemo-multimedia/ohm-plugins-misc/ ohm plugins] Some of these plugins (of various different trees) may contain useful info for Fremantle.
*[http://repository.maemo.org/rtcomm/pool/diablo/free/source/m/ Diablo MCE source code] May be useful for reference purposes
*[http://www.wirelessmodemapi.com/ Some documentation for the interface to the N900 cell modem]
*[http://maemo.org/packages/view/libhildon-extras1-time-zone-chooser-dev/ Header files for the hildon time chooser widget]
*[http://www.cncmods.net/files/mce.zip An attempt to match the MeeGo MCE source tree to Fremantle] Nothing works yet but it may be a good starting point.
*[http://www.cncmods.net/files/systemui.h Interfaces useful in creating a replacement touchscreen/keypad lock UI]
*[http://pastie.org/pastes/1150052/text header file with info on isi_info interface]
*[http://www.developer.nokia.com/info/sw.nokia.com/id/da8df288-e615-443d-be5c-00c8a72435f8/Qt_SDK.html Nokia QT SDK] Contains some header files for the N900 cell modem. Install the maemo bits and look for the usr/include/isi/icpr82 folder.
*[https://dev.openwrt.org/browser/packages/utils/calvaria Code for reading from the CAL area on the N900 phone]
*[http://meego.gitorious.org/meego-middleware/profiled Profile daemon - sources are compatible with Fremantle version]

==== Packages from the Fremantle SDK nokia-binaries containing useful information but which you may not know about ====
*wappushd-dev interface to wappushd daemon
*sharing-dialog-dev interface to sharing dialogs
*profile-data-dev dev headers for accessing profile data
*opengles-sgx-img-common-dev headers for the SGX drivers
*libgles2-sgx-img-dev headers for the SGX drivers
*libgles1-sgx-img-dev headers for the SGX drivers
*libcsnet-dev header files describing the interface to the Phone.Net Dbus interface used for cell network information (signal strength, cell site changes, operator name/code changes, 2G/3G changes etc). This one is missing dependencies so you will have to force it to install and ignore the dependencies.
*icd2-dev header files for icd2 daemon
*hald-addon-bme Documentation contains information on how to talk to the BME HAL (Hardware Abstraction Layer) interface.
*libcal-dev Interface to the configuration area on N900 phone.

==== Packages from the Harmattan SDK containing useful information not in the Fremantle SDK that may apply to Fremantle ====
*libsysinfo-dev development headers for the Harmattan version of libsysinfo.
*libicd2-dev development headers for the Harmattan version of libicd2.
*libicd-network-wlan-dev development headers for the Harmattan version of icd2 wlan plugin.
*libbmeipc-dev development headers for the Harmattan version of libbmeipc.
*icd2-osso-ic-dev development headers for osso-ic library

==== Packages from the N900 device repository containing useful information in their documentation folders ====
Because the /usr/share/doc bit is removed on the device, you will need to use apt-get to download the .deb and extract the files from that
*csd-gprs This pakage contains full documentation for the dbus interface in /usr/share/doc/csd-gprs
*csd-call This package contains some example code of how one might call libcscall in /usr/share/doc/csd-call/README.gz. Not that useful without headers for libcscall but may provide some tidbits of info

==== Mailing list posts of interest ====
*[http://lists.maemo.org/pipermail/maemo-developers/2011-June/028452.html Information on how to replace hald-addon-bme and libbmeipc as part of any BME replacements]
*[http://lists.maemo.org/pipermail/maemo-developers/2011-July/028472.html Details useful to replace the stock touchscreen keypad lock screen]</text>
    </revision>
  </page>
  <page>
    <title>N900 Shortcuts and Gestures</title>
    <id>4433</id>
    <revision>
      <id>38531</id>
      <timestamp>2010-09-13T14:12:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[N900 Shortcuts and Gestures]] moved to [[N900 shortcuts and gestures]] over redirect: sentence capitalisation as per [[Contibuting to the wiki]]</comment>
      <text xml:space="preserve">#REDIRECT [[N900 shortcuts and gestures]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Shortcuts and Gestures</title>
    <id>4433</id>
    <revision>
      <id>38531</id>
      <timestamp>2010-09-13T14:12:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[N900 Shortcuts and Gestures]] moved to [[N900 shortcuts and gestures]] over redirect: sentence capitalisation as per [[Contibuting to the wiki]]</comment>
      <text xml:space="preserve">#REDIRECT [[N900 shortcuts and gestures]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Software BME</title>
    <id>4078</id>
    <revision>
      <id>48854</id>
      <timestamp>2012-07-30T09:29:18Z</timestamp>
      <contributor>
        <username>pali</username>
        <id>2764</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">This page is to bring together efforts and links for those working on understanding BME - the battery managment entity.

This is required to implement user friendly [[N900_Hardware_USB_Host|Host Mode]]

See also the garage project [https://garage.maemo.org/projects/jrbme/ JR-BME].

BME is divided into three parts.
* Kernel driver that handles all of the low-level interaction with the hardware.
* hald-addon-bme - an add-on process for HAL that reports status.
* bme_RX-51 - Process started early in boot, with watchdogs to reboot the device if it malfunctions.

The kernel driver is split over several files.

http://mxr.maemo.org/fremantle/source/kernel/include/linux/i2c/twl4030-madc.h
This handles reading various ADCs to readout voltages, currents and BSI.

'''BSI''', or battery size indicator is the third pin of the battery. Resistance between the - pin and third pin on battery is measured by BME through twl4030-madc, and mapped into a capacity in mAh. BME noticeably uses this as a reference &quot;full&quot; value for the battery meter, and possibly for other uses as well. Here are some experimental results, all resistance readings are to be considered inaccurate at best:

 100 k&amp;Omega; 1250mAh (Original BL-5J battery)
  90 k&amp;Omega; 1000mAh
  80 k&amp;Omega;  862mAh
  78 k&amp;Omega;  740mAh

Unsorted adds:

* Then there's also &lt;code&gt;/usr/lib/hal/hald-addon-bme&lt;/code&gt;, which seems not to be completely out of order (according to lshal) even when bme_RX-51 is stopped.
* Mer 'replacement hald-addon-bme': http://gitorious.org/mer-toggles/hald-addon-bme/blobs/master/hald-addon-bme.c [[Mer/Documentation/BME_Protocol]] (N810!)
* &lt;code&gt;lsof -p `pidof bme_RX-51`&lt;/code&gt; gives an idea about what BME is actually interfering/interfacing with, and a strace will show it talks to dsme_lib probably to implement the watchdog timers.
* BME process/file is called &lt;code&gt;/usr/sbin/bme_RX-51&lt;/code&gt; and killing or sigstop'ing it will cause immediate or delayed reboot. It is easily suspended though through upstart process management by:&lt;br /&gt;&lt;pre&gt;~&gt;stop bme&lt;/pre&gt;and resumed any time by:&lt;br /&gt;&lt;pre&gt;~&gt;start bme&lt;/pre&gt;

A nice little experiment to investigate the bq24150a USB Battery Charger chip's abilities is to 
* plug in Nokia wallwart charger
* &lt;pre&gt;-&gt;stop bme&lt;/pre&gt;
* wait max 32s until bq24150a internal watchdog timer expires (due to bme not resetting it), which will cause bq24150a to reset to defaults, which are a mostly sane, safe charging without any software support. You can tell this by bq24150a firing up the hardwired steady yellow indicator LED

I'm about to write a first draft little script to somewhat replace bme's basic functions, eventually turning this into a real project Just-Replaces-BME aka jrbme (some say it's &quot;JRBME replaces BME&quot;, according to an age old tradition of linux self referencing ETLA [like GNU==&quot;GNU Not Unix&quot;, KDE==&quot;KDE Desktop Environment&quot;])

Joerg's script can be found [http://talk.maemo.org/showpost.php?p=658278&amp;postcount=861 here].
It should not be used by anyone who has not read and understood all relevant datasheets, and understands why it does what it does.

Editing this without understanding can CAUSE YOUR N900 TO CATCH FIRE.

==Replacement Goals==
===Alpha===
* Not make the battery explode.
* Charge from any 5V source, assuming the battery is in a safe condition, just setting the charger chip to the end voltage, and resetting the watchdog.
===Beta===
* Watch the state of the battery, and charge taking into account device load.
** Battery charger chip should be configured to float the battery at a current which slightly exceeds the desired float current, and the charge normally terminated when the actual battery current measured by the bq27200 reaches the 'taper' value. A simple way to measure this is if the 'time till full' field goes to 65535. This ensures a consistent shutoff taper current, which the battery charger alone cannot do.

===Gamma===
* Charge at appropriate limits for USB chargers, and USB hosts we are plugged into.
* Monitor and reset from abnormal conditions - incorrect 'battery missing' and other error codes. Capacity and charge data from bq27200 can be very inaccurate if the phone has not appropriately learned the capacity of the battery, or if it erroneously detects battery full due to a high impedence battery or poor contact.
* If phone is in active use, and charger or USB is plugged in, maintain a constant battery voltage somewhat under the peak charge voltage, without regards to taper current. (To keep phone charged, but not degrade battery with pointless micro-cycling, or high float voltage)

[[Category:N900_Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Software Kernel Modules</title>
    <id>4242</id>
    <revision>
      <id>35803</id>
      <timestamp>2010-06-14T14:57:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">lsmod|awk '{gsub(&quot;_&quot;,&quot;-&quot;,$1);printf(&quot; %s &quot;,$0);system(&quot;find . -name &quot;$1&quot;.ko&quot;);print &quot;&quot;}'   |awk '{gsub(&quot;\.ko$&quot;,&quot;.c&quot;,$NF);$NF= &quot;[http://mxr.maemo.org/fremantle/source/kernel/&quot;$NF&quot; &quot;$1&quot;  source]&quot;;print}'&gt;list.mw

Module Size Used by pn-pep 12992 0 g-nokia 30504 6 vfat 9600 1 [http://mxr.maemo.org/fremantle/source/kernel/./fs/fat/vfat.c Module  source]

fat 43420 1 vfat [http://mxr.maemo.org/fremantle/source/kernel/./fs/fat/fat.c fat  source]

sd-mod 20372 0 scsi-mod 82016 1 sd_mod iphb 3300 1 [http://mxr.maemo.org/fremantle/source/kernel/./net/ipv4/netfilter/iphb.c sd-mod  source]

rfcomm 33620 14 [http://mxr.maemo.org/fremantle/source/kernel/./net/bluetooth/rfcomm/rfcomm.c rfcomm  source]

panic-info-buff 2820 0 sco 9544 2 [http://mxr.maemo.org/fremantle/source/kernel/./net/bluetooth/sco.c panic-info-buff  source]

l2cap 21060 9 rfcomm [http://mxr.maemo.org/fremantle/source/kernel/./net/bluetooth/l2cap.c l2cap  source]

ext3 96388 2 [http://mxr.maemo.org/fremantle/source/kernel/./fs/ext3/ext3.c ext3  source]

omaplfb 10592 0 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/gpu/pvr/omaplfb.c omaplfb  source]

jbd 43220 1 ext3 [http://mxr.maemo.org/fremantle/source/kernel/./fs/jbd/jbd.c jbd  source]

pvrsrvkm 120384 7 omaplfb [http://mxr.maemo.org/fremantle/source/kernel/./drivers/gpu/pvr/pvrsrvkm.c pvrsrvkm  source]

bridgedriver 156844 1 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/dsp/bridge/bridgedriver.c bridgedriver  source]

uinput 7040 0 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/input/misc/uinput.c uinput  source]

board-rx51-camera 5216 1 [http://mxr.maemo.org/fremantle/source/kernel/./arch/arm/mach-omap2/board-rx51-camera.c board-rx51-camera  source]

omap-previewer-hack 10840 0 omap34xxcam-mod 18244 8 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/media/video/omap34xxcam-mod.c omap-previewer-hack  source]

isp-mod 90288 3 board_rx51_camera,omap_previewer_hack,omap34xxcam_mod [http://mxr.maemo.org/fremantle/source/kernel/./drivers/media/video/isp/isp-mod.c isp-mod  source]

iovmm 6724 1 isp_mod [http://mxr.maemo.org/fremantle/source/kernel/./arch/arm/plat-omap/iovmm.c iovmm  source]

videobuf-dma-sg 9348 3 omap_previewer_hack,omap34xxcam_mod,isp_mod [http://mxr.maemo.org/fremantle/source/kernel/./drivers/media/video/videobuf-dma-sg.c videobuf-dma-sg  source]

videobuf-core 14020 3 omap_previewer_hack,omap34xxcam_mod,videobuf_dma_sg [http://mxr.maemo.org/fremantle/source/kernel/./drivers/media/video/videobuf-core.c videobuf-core  source]

omap3-iommu 1156 0 [http://mxr.maemo.org/fremantle/source/kernel/./arch/arm/mach-omap2/omap3-iommu.c omap3-iommu  source]

iommu2 4096 0 [http://mxr.maemo.org/fremantle/source/kernel/./arch/arm/mach-omap2/iommu2.c iommu2  source]

iommu 8648 3 isp_mod,iovmm,iommu2 [http://mxr.maemo.org/fremantle/source/kernel/./arch/arm/plat-omap/iommu.c iommu  source]

dspbridge 1284 0 [http://mxr.maemo.org/fremantle/source/kernel/./arch/arm/mach-omap2/dspbridge.c dspbridge  source]

ssi-mcsaab-imp 11316 0 cmt-speech 8952 1 phonet 15336 23 pn_pep,g_nokia,ssi_mcsaab_imp [http://mxr.maemo.org/fremantle/source/kernel/./net/phonet/phonet.c ssi-mcsaab-imp  source]

smc91x 15428 0 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/net/smc91x.c smc91x  source]

mii 4096 1 smc91x [http://mxr.maemo.org/fremantle/source/kernel/./drivers/net/mii.c mii  source]

wl12xx 76864 0 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/net/wireless/wl12xx/wl12xx.c wl12xx  source]

mmc-block 8964 5 omap-wdt 4940 1 omap-ssi 18116 2 ssi_mcsaab_imp,cmt_speech mac80211 122954 1 wl12xx [http://mxr.maemo.org/fremantle/source/kernel/./net/mac80211/mac80211.c mmc-block  source]

crc7 1216 1 wl12xx [http://mxr.maemo.org/fremantle/source/kernel/./lib/crc7.c crc7  source]

omap-hsmmc 12224 0 tsc2005 7744 0 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/input/touchscreen/tsc2005.c omap-hsmmc  source]

nokia-av 6016 0 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/misc/nokia-av.c nokia-av  source]

hci-h4p 16072 0 mmc-core 46996 2 mmc_block,omap_hsmmc bluetooth 53596 6 rfcomm,sco,l2cap,hci_h4p [http://mxr.maemo.org/fremantle/source/kernel/./net/bluetooth/bluetooth.c hci-h4p  source]

fmtx-si4713 27392 0 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/media/radio/fmtx-si4713.c fmtx-si4713  source]

et8ek8 8736 1 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/media/video/et8ek8.c et8ek8  source]

lis302dl 6848 0 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/i2c/chips/lis302dl.c lis302dl  source]

ad5820 3868 1 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/media/video/ad5820.c ad5820  source]

videodev 28160 2 omap34xxcam_mod,fmtx_si4713 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/media/video/videodev.c videodev  source]

v4l1-compat 12100 1 videodev [http://mxr.maemo.org/fremantle/source/kernel/./drivers/media/video/v4l1-compat.c v4l1-compat  source]

compat-ioctl32 832 1 fmtx_si4713 leds-lp5523 9792 0 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/leds/leds-lp5523.c compat-ioctl32  source]

adp1653 4432 1 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/media/video/adp1653.c adp1653  source]

smia-sensor 7244 1 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/media/video/smia-sensor.c smia-sensor  source]

tsl2563 4864 0 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/i2c/chips/tsl2563.c tsl2563  source]

smiaregs 6656 4 et8ek8,ad5820,adp1653,smia_sensor [http://mxr.maemo.org/fremantle/source/kernel/./drivers/media/video/smiaregs.c smiaregs  source]

v4l2-int-device 2816 6 board_rx51_camera,omap34xxcam_mod,et8ek8,ad5820,adp1653,smia_sensor [http://mxr.maemo.org/fremantle/source/kernel/./drivers/media/video/v4l2-int-device.c v4l2-int-device  source]

rtc-twl4030 4482 0 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/rtc/rtc-twl4030.c rtc-twl4030  source]

rtc-core 13208 1 rtc_twl4030 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/rtc/rtc-core.c rtc-core  source]

leds-twl4030-vibra 3840 0 [http://mxr.maemo.org/fremantle/source/kernel/./drivers/leds/leds-twl4030-vibra.c leds-twl4030-vibra  source]

twl4030-wdt 3468 1 led-class 2948 2 leds_lp5523,leds_twl4030_vibra [http://mxr.maemo.org/fremantle/source/kernel/./drivers/leds/led-class.c twl4030-wdt  source]

[[Category:Fremantle]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Software Power management</title>
    <id>4418</id>
    <revision>
      <id>38059</id>
      <timestamp>2010-08-24T14:08:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[N900 Software Power management]] moved to [[N900 software power management]]: capitalisation</comment>
      <text xml:space="preserve">#REDIRECT [[N900 software power management]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Software RescueDisk</title>
    <id>4420</id>
    <revision>
      <id>38096</id>
      <timestamp>2010-08-26T09:32:40Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[N900 Software RescueDisk]] moved to [[User:Speedevil/N900 software rescue disk]]: orphaned page with no usable instructions</comment>
      <text xml:space="preserve">#REDIRECT [[User:Speedevil/N900 software rescue disk]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Tweaks</title>
    <id>3132</id>
    <revision>
      <id>38085</id>
      <timestamp>2010-08-25T14:35:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Nokia N900#Further reading]]</comment>
      <text xml:space="preserve">#REDIRECT [[Nokia N900#Further reading]]</text>
    </revision>
  </page>
  <page>
    <title>N900 USB Networking</title>
    <id>3108</id>
    <revision>
      <id>23593</id>
      <timestamp>2009-11-30T15:27:10Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[N900 USB Networking]] moved to [[N900 USB networking]]: Capitalisation</comment>
      <text xml:space="preserve">#REDIRECT [[N900 USB networking]]</text>
    </revision>
  </page>
  <page>
    <title>N900 USB networking</title>
    <id>3045</id>
    <revision>
      <id>45902</id>
      <timestamp>2011-12-01T07:07:07Z</timestamp>
      <contributor>
        <ip>195.96.90.184</ip>
      </contributor>
      <comment>/* Automatic configuration with Ubuntu 9.10/10.04/11.10 */</comment>
      <text xml:space="preserve">This page describes how to enable Networking on the [[Nokia N900|N900]] via [[USB]]. The first part describes how to configure the N900 as a USB pluggable network device. The second part describes how to configure various platforms to use the Nokia N900 as a network device. This article is based on the [[USB networking|Maemo 4.x USB networking article]]. It is also possible to use the N900 as a [[N900 USB router|USB router]].

You might want to use the N900 as a USB network device to log into your N900 remotely, or to transfer data from your N900 to another computer, in a situation where wifi or Bluetooth are not an option. If you wish to connect your N900 to a Linux machine over TCP/IP, the [http://maemo.org/development/documentation/pc_connectivity/ PC connectivity] section in the Maemo SDK documentation also contains useful information.

== N900 USB network configuration ==

If you are going to use windows as your host, the configuration needed on your N900 are a little different, so skip directly to the &quot;Starting USB network mode with Windows&quot; Part.

There is a default USB network interface configuration on Nokia N900. In the file &lt;code&gt;/etc/network/interfaces&lt;/code&gt;, you should see a section which looks like this:
&lt;pre&gt;
auto usb0
iface usb0 inet static
       address 192.168.2.15
       netmask 255.255.255.0
       gateway 192.168.2.14
&lt;/pre&gt;

You can also add the following lines to set the default route correctly
       up route del default
       up route add default gw  192.168.2.14
Also you can add the following lines to set the nameserver (dnsmasq will automatically change &lt;code&gt;/etc/resolve.conf&lt;/code&gt;)
       dns-nameservers 8.8.8.8 8.8.4.4
and
       up run-standalone.sh dbus-send --type=method_call --system --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:DUMMY uint32:0

       down run-standalone.sh dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true

to properly set/reset the connection manager on connection/disconnection, especially if you have set up a DUMMY network as decribed later.


With this default configuration, the N900 USB interface will have the IP address 192.168.2.15, and the remote end will have the IP address 192.168.2.14. By default, the USB network interface on the N900 is configured. You need to install the package usb-network-modules. 

=== Starting USB network mode ===

First, set up the host (the computer at the other end of the USB connection, not the N900) to have an IP address of the gateway --in our case here, it's 192.168.2.14.  For a typical Linux computer, one might use the command &quot;ifconfig usb0 192.168.2.14&quot; (add &quot;sudo&quot; to the beginning of that command if necessary).  There may be other ways to do it for various versions of operating systems.

Plug one end of the USB cable on the host and the other end into the N900. The N900 will bring up the mode-selection dialog. Select 'PC Suite mode'.


[[Image:Mode-selection.png|center|alt=USB Mode-Selection dialog|USB Mode-Selection dialog]]


Open a [[root access|root shell]] in [[terminal|X Terminal]] on the N900 and activate the interface by executing the following:
&lt;pre&gt;
sudo gainroot
ifup usb0
&lt;/pre&gt;

If all went well, no errors will be displayed. The command 'ifconfig usb0' will give the following output:
&lt;pre&gt;
Nokia-N900-42-11:~# ifconfig usb0
usb0      Link encap:Ethernet  HWaddr F2:50:8F:04:1D:8B  
          inet addr:192.168.2.15  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1021 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2003 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:86091 (84.0 KiB)  TX bytes:2556598 (2.4 MiB)
&lt;/pre&gt;

You should also be able to ping 192.168.2.15
&lt;pre&gt;
Nokia-N900-42-11:~# ping 192.168.2.15
PING 192.168.2.15 (192.168.2.15): 56 data bytes
64 bytes from 192.168.2.15: seq=0 ttl=64 time=0.367 ms
64 bytes from 192.168.2.15: seq=1 ttl=64 time=0.214 ms
^C
--- 192.168.2.15 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.214/0.290/0.367 ms
&lt;/pre&gt;

To automatically setup usb0 when entering PC suite mode change the last few lines of &lt;code&gt;/usr/sbin/pcsuite-enable.sh&lt;/code&gt; by adding the &quot;ifup usb0&quot; line.
&lt;pre&gt;
logger &quot;$0: sent SIGUSR1 to syncd&quot;
ifup usb0
exit 0
&lt;/pre&gt;

And, to automatically down your usb0 interface when leaving PC suite mode, add to &lt;code&gt;/usr/sbin/pcsuite-disable.sh&lt;/code&gt; 
&lt;pre&gt;
ifdown usb0
exit 0
&lt;/pre&gt;

In fact if you want to use the `Mail to exchange' feature to synchronize mail, calendar or contacts with an exchange server (such as Google mail) the 'PC suite mode' might block the exchange. So do not use it when connected in that mode, instead choose the 'charging only' mode instead. This
mode can be achieved by choosing neither of the offers in the above menu. Simply tap above the menu to close it. This 'charging only' mode still gives you the usb0 interface provided that you initialized it
once through the 'PC suite mode'.

If you can not ping the outside world (for example: local network works but Google does not), check your routing tables.
&lt;pre&gt;
/home/user # route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.2.0     *               255.255.255.0   U     0      0        0 usb0
default         192.168.2.14    0.0.0.0         UG    0      0        0 usb0
default         *               0.0.0.0         U     0      0        0 gprs0
&lt;/pre&gt;

If you have a situation like above where the cell network's packets are at a lower default priority, you might have to run the following to fix it:
&lt;pre&gt;
/home/user # route del default
/home/user # route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.2.0     *               255.255.255.0   U     0      0        0 usb0
default         *               0.0.0.0         U     0      0        0 gprs0
/home/user # ping google.com
PING google.com (74.125.45.103): 56 data bytes
64 bytes from 74.125.45.103: seq=0 ttl=51 time=257.081 ms
64 bytes from 74.125.45.103: seq=1 ttl=51 time=236.481 ms
64 bytes from 74.125.45.103: seq=2 ttl=51 time=256.226 ms
^C
--- google.com ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 236.481/249.929/257.081 ms
&lt;/pre&gt;

If after having fixed the routing table you still are not able to ping the outside world try to add a nameserver to &lt;code&gt;/etc/resolv.conf&lt;/code&gt;

 nameserver 127.0.0.1
 # added Google DNS
 nameserver 8.8.8.8
 nameserver 8.8.4.4

=== Stopping USB network mode ===

This is optional. It is not necessary to stop the interface after unplugging the USB cable. 

However, to stop the USB interface, unplug the USB cable and execute the following in 'X Terminal'
&lt;pre&gt;
sudo gainroot
ifdown usb0
&lt;/pre&gt;

=== Starting USB network mode with Windows ===

To use the USB network mode alongside with a Windows host, you must use [[MADDE]]. MADDE will not work with just changing the configuration in the &lt;code&gt;/etc/network/interfaces&lt;/code&gt; file. Different modification are needed:

&lt;ol&gt;
&lt;li&gt;
Install MADDE package (actually MADDE for Windows is not required, but just files '''maemo_usbnet.inf''' and '''maemo_usbnet.cat''' for installation network device '''Linux USB Ethernet/RNDIS Gadget'''). 
&lt;/li&gt;
&lt;li&gt;
Add the following lines to &lt;code&gt;/usr/sbin/pcsuite-enable.sh&lt;/code&gt; (Do not forget to change the ip address so it matches the one configured on your host's usb port.)
&lt;pre&gt;
run-standalone.sh dbus-send --type=method_call --system --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:DUMMY uint32:0
route del default
route add default gw 192.168.2.14
&lt;/pre&gt;
so it looks like this :
&lt;source lang=&quot;bash&quot;&gt;
if [ $RC != 0 ]; then
    logger &quot;$0: failed to install g_nokia&quot;
    run-standalone.sh dbus-send --type=method_call --system --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:DUMMY uint32:0
    route del default
    route add default gw 192.168.2.14
    exit 1
else
    sleep 2
fi
&lt;/source&gt;
&lt;/li&gt;
&lt;li&gt;
Add the following lines to &lt;code&gt;/usr/sbin/pcsuite-disable.sh&lt;/code&gt; (Don't forget to change the ip...)
&lt;pre&gt;
 ifdown usb0
 run-standalone.sh dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true
 route del default netmask 0.0.0.0 gw 192.168.2.14
&lt;/pre&gt;
So it looks like this:
&lt;pre&gt;
 logger &quot;$0: do nothing to pass USB certs&quot;
 ifdown usb0
 run-standalone.sh dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true
 route del default netmask 0.0.0.0 gw 192.168.2.14
 exit 0
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
This will cause the dummy network to connect when USB networking is used, right after you press the &quot;PC Suite&quot; button in the popup that comes after connecting the USB cable. This will only work if you got MADDE installed and configured for &quot;Windows network&quot;. Also, a route will be added to your host machine, with Windows it is very easy to share connections. You should now have network connectivity to your PC + Internet.
&lt;/li&gt;
&lt;li&gt;Once you disconnect the USB cable, the dummy network will disconnect and the route will be deleted.
&lt;/li&gt;
&lt;li&gt;
Add a DNS server of your choice to &lt;code&gt;/etc/resolv.conf&lt;/code&gt;, for example:
&lt;pre&gt;
nameserver 8.8.8.8
nameserver 8.8.4.4
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

Windows 7 (and probably Vista) have firewall setups based network location. This means you might run into problems trying to connect to services on your Windows boxen, because by default N900 USB Network adapter isn't known to Windows as a proper type of NDIS device. This causes Windows to put connections made over USB into &quot;unidentified connections&quot; category and apply Public Location firewall rules to it. Now of course you could poke all the holes into your Public firewall profile and make it look like Swiss cheese, but fortunately some VirtualBox people ran into the same thing with their loopback adapter and [http://forums.virtualbox.org/viewtopic.php?p=73167#p73167 solved it for us]:
# open Registry Editor
# browse to &lt;code&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}&lt;/code&gt; (all network adapters are stored here)
# find your N900 USB adapter sub-key, it says the adapter name somewhere in key
# add &lt;code&gt;DWORD&lt;/code&gt; key &lt;code&gt;*NdisDeviceType&lt;/code&gt; with a value 1
Now your USB connection is considered part of Private firewall profile. Stay safe and go buy Swiss cheese in supermarket instead.

=== Fixing the MAC address ===

By default, the N900 sets a random MAC address for the USB interface every time you reboot.
This makes some operating systems (Mac OS X) detect a new device whenever you connect the N900
and ask you to configure the network interface. The solutions is to set a fixed MAC address
&lt;pre&gt;
sudo gainroot
echo options g_nokia host_addr=00:11:22:33:44:55 &gt; /etc/modprobe.d/g_nokia 
&lt;/pre&gt;
After the next reboot your N900 will always be detected as the same device.

== Host USB Network Configuration ==

The PC Host configuration is detailed in the [[USB networking#Host_USB_Network_Configuration|Maemo 4.x  USB Networking article]]. Please refer to it for details.


=== Host configuration on Debian Lenny ===

Create the file in /etc/udev/rules.d/99-nokia-n900.rules and put in the following lines: 
 SUBSYSTEM==&quot;net&quot;, ACTION==&quot;add&quot;, ATTRS{idVendor}==&quot;0421&quot;, ATTRS{idProduct}==&quot;01c8&quot;, ATTRS{manufacturer}==&quot;Nokia&quot;, ATTRS{product}==&quot;N900 (PC-Suite Mode)&quot;, NAME=&quot;n900&quot;
 #SUBSYSTEM==&quot;net&quot;, ACTION==&quot;add&quot;, ATTRS{idVendor}==&quot;0421&quot;, ATTRS{idProduct}==&quot;01c8&quot;, ATTRS{manufacturer}==&quot;Nokia&quot;, ATTRS{product}==&quot;N900 (PC-Suite Mode)&quot;, NAME=&quot;n900p&quot;

The second rule is commented out as it is not needed for usb networking.
A different approach uses a DEVPATH key:

 SUBSYSTEM==&quot;net&quot;, ACTION==&quot;add&quot;, DEVPATH==&quot;/devices/pci0000:00/0000:00:1a.7/usb1/1-2/1-2:1.8/net/usb0&quot;, ATTRS{idVendor}==&quot;0421&quot;, ATTRS{idProduct}==&quot;01c8&quot;, ATTRS{manufacturer}==&quot;Nokia&quot;, ATTRS{product}==&quot;N900 (PC-Suite Mode)&quot;, NAME=&quot;n900&quot;
 SUBSYSTEM==&quot;net&quot;, ACTION==&quot;add&quot;, DEVPATH==&quot;/devices/pci0000:00/0000:00:1a.7/usb1/1-2/1-2:1.0/net/usbpn0&quot;, ATTRS{idVendor}==&quot;0421&quot;, ATTRS{idProduct}==&quot;01c8&quot;, ATTRS{manufacturer}==&quot;Nokia&quot;, ATTRS{product}==&quot;N900 (PC-Suite Mode)&quot;, NAME=&quot;n900p&quot;

Your DEVPATH may be different though, depending on which USB port is used on the host computer etc, so to make this work reliably you have to use always 
the same usb port.

You can use 

 udevadm monitor --kernel

while plugging in the N900 to see what is the correct path.

Newer kernels/udev versions seem to be confused to seeing both &lt;code&gt;usb0&lt;/code&gt; and &lt;code&gt;usbpn0&lt;/code&gt; devices. Luckily DEVPATH accepts wildcards, so you may want to try something like:
 SUBSYSTEM==&quot;net&quot;, ACTION==&quot;add&quot;, DEVPATH==&quot;*/net/usb[0-9]&quot;, ATTRS{idVendor}==&quot;0421&quot;, ATTRS{idProduct}==&quot;01c8&quot;, ATTRS{manufacturer} ==&quot;Nokia&quot;, ATTRS{product}==&quot;N900 (PC-Suite Mode)&quot;, NAME=&quot;n900&quot;

After adding the udev rules, you have to reload them with:
 udevadm control --reload-rules

Then edit &lt;code&gt;/etc/network/interfaces&lt;/code&gt; and add:
&lt;pre&gt;
allow-hotplug n900
auto n900
iface n900 inet static
	address 192.168.2.14
	netmask 255.255.255.0
	up iptables -A POSTROUTING -t nat -s 192.168.2.15/32 -j MASQUERADE
	up echo 1 &gt; /proc/sys/net/ipv4/ip_forward
        down iptables -D POSTROUTING -t nat -s 192.168.2.15/32 -j MASQUERADE
	down echo 0 &gt; /proc/sys/net/ipv4/ip_forward
&lt;/pre&gt;

Now put your USB cable in the PC and in the N900 and on the host. To check that everything is set up properly you can run:

 ifconfig n900

=== Automatic configuration with Ubuntu 9.10/10.04/11.10 ===

Note: this instructions should be fixed/improved:

Create the file in /etc/udev/rules.d/99-nokia-n900.rules and put in the following lines:
 SUBSYSTEM==&quot;net&quot;, ACTION==&quot;add&quot;, ENV{ID_USB_DRIVER}==&quot;cdc_ether&quot;, ENV{ID_MODEL}=&quot;N900__PC-Suite_Mode&quot;, ENV{ID_VENDOR}==&quot;Nokia&quot;, NAME=&quot;n900&quot;
 SUBSYSTEM==&quot;net&quot;, ACTION==&quot;add&quot;, ENV{ID_USB_DRIVER}==&quot;cdc_phonet&quot;, ENV{ID_MODEL}=&quot;N900__PC-Suite_Mode&quot;, ENV{ID_VENDOR}==&quot;Nokia&quot;, NAME=&quot;n900pn&quot;

Then edit &lt;code&gt;/etc/network/interfaces&lt;/code&gt; and add:
&lt;pre&gt;
auto n900
iface n900 inet static
	address 192.168.2.14
	netmask 255.255.255.0
	up iptables -A POSTROUTING -t nat -s 192.168.2.15/32 -j MASQUERADE
	up echo 1 &gt; /proc/sys/net/ipv4/ip_forward
        down iptables -D POSTROUTING -t nat -s 192.168.2.15/32 -j MASQUERADE
	down echo 0 &gt; /proc/sys/net/ipv4/ip_forward
&lt;/pre&gt;

&lt;strong&gt;For Ubuntu 11.10&lt;/strong&gt;, put these lines to /etc/udev/rules.d/99-nokia-n900.rules
&lt;pre&gt;
SUBSYSTEM==&quot;net&quot;, ACTION==&quot;add&quot;, ATTRS{idVendor}==&quot;0421&quot;, ATTRS{idProduct}==&quot;01c8&quot;, ATTRS{manufacturer}==&quot;Nokia&quot;, ATTRS{product}==&quot;N900 (PC-Suite Mode)&quot;, NAME=&quot;usb0&quot;, RUN+=&quot;/sbin/ifconfig usb0 192.168.2.14 up&quot;, RUN+=&quot;/sbin/iptables -A POSTROUTING -t nat -s 192.168.2.15/32 -j MASQUERADE&quot;
&lt;/pre&gt;
and don't modify &lt;code&gt;/etc/network/interfaces&lt;/code&gt; in the way above, because you will make the boot slow with the message &quot;waiting for network configuration&quot;. But for forwarding you should add to &lt;code&gt;/etc/sysctl.conf&lt;/code&gt;
&lt;pre&gt;
net.ipv4.ip_forward=1
&lt;/pre&gt;

The Network Manager on Ubuntu 11.10 won't auto detect this &lt;code&gt;usb0&lt;/code&gt; interface, you will have to check it via &lt;code&gt;ping&lt;/code&gt; or via Network Tools.

&lt;strong&gt;For Ubuntu 11.04&lt;/strong&gt;, just plug the USB cable in, with already-configured N900,the Network Manager will auto handle &lt;code&gt;usb0&lt;/code&gt; interface.

&lt;strong&gt;For Ubuntu 9.10 (NOT 10.04)&lt;/strong&gt; you have to fix &lt;code&gt;/etc/init/network-interface.conf&lt;/code&gt;, change the line:
 stop on net-device-removed INTERFACE=$INTERFACE
with:
 stop on net-device-remove INTERFACE=$INTERFACE
(Note the difference: net-device-remove'''d''')

&lt;strong&gt;For all versions:&lt;/strong&gt; You have to reload udev rules with:
 udevadm control --reload-rules

You have to restart NetworkManager so it re-reads the interfaces file (otherwise it'll clobber your network device):
 sudo /etc/init.d/network-manager restart
or
 sudo service network-manager restart

Now put your USB cable in the PC and in the N900.

If you are unable to autoconnect through the networking applet, you may need to manually bring up the interface:
 ifup n900

If all went fine:
* you should see with &lt;code&gt;ifconfig -a&lt;/code&gt; two new network interfaces, n900 and n900pn, the first one configured with the proper ip address 192.168.2.15, and should be able to ping the N900.
* the N900 should be able to use the PC internet connection immediately.

=== Host configuration on Archlinux via netcfg ===

You will need to add the following lines into &lt;code&gt;/etc/network.d/N900&lt;/code&gt;:

&lt;pre&gt;
CONNECTION='ethernet'
DESCRIPTION='Nokia n900 maemo USB passthrough network'
INTERFACE='usb0'
IP='static'
ADDR='192.168.2.14'
# GATEWAY='192.168.2.14'
# DNS=('192.168.2.14')
# PRE_UP='  &lt;&lt; script loading of main module(s)! &gt;&gt;'
POST_UP='
         echo 1 &gt; /proc/sys/net/ipv4/ip_forward &amp;&amp;
         iptables -A POSTROUTING -t nat -s 192.168.2.0/24 -j MASQUERADE &amp;&amp;
         iptables -I INPUT -s 192.168.2.15 -j ACCEPT &amp;&amp;
         iptables -P FORWARD ACCEPT'
POST_DOWN='
         echo 0 &gt; /proc/sys/net/ipv4/ip_forward &amp;&amp;
         iptables -F &amp;&amp;
         iptables -t nat -F &amp;&amp;
         echo &quot;:: Unloading cdc_ether&quot; &amp;&amp;
         modprobe -r cdc_ether &amp;&amp;
         echo &quot;:: Unloading cdc_phonet&quot; &amp;&amp;
         modprobe -r cdc_phonet &amp;&amp;
         echo &quot;:: Unloading usbnet&quot; &amp;&amp;
         modprobe -r usbnet &amp;&amp;
         echo &quot;:: Unloading phonet&quot; &amp;&amp;
         modprobe -r phonet &amp;&amp;
         echo &quot;:: Unloading cdc_acm&quot; &amp;&amp;
         modprobe -r cdc_acm'
&lt;/pre&gt;

You need to also add these to udev if you are also using udev. Normally they go into &lt;code&gt;/etc/udev.d/rules/&lt;/code&gt;:

 SUBSYSTEM==&quot;net&quot;, ACTION==&quot;add&quot;, ENV{ID_USB_DRIVER}==&quot;cdc_ether&quot;, ENV{ID_MODEL}=&quot;N900__PC-Suite_Mode&quot;, ENV{ID_VENDOR}==&quot;Nokia&quot;, NAME=&quot;usb0&quot;
 SUBSYSTEM==&quot;net&quot;, ACTION==&quot;add&quot;, ENV{ID_USB_DRIVER}==&quot;cdc_phonet&quot;, ENV{ID_MODEL}=&quot;N900__PC-Suite_Mode&quot;, ENV{ID_VENDOR}==&quot;Nokia&quot;, NAME=&quot;usb1&quot;

Of course your entire configuration does not exactly have to be like this, it is only a rough guide.

If you don't use netcfg, you can have the udev rule directly configure the interface with e.g. &lt;code&gt;/etc/udev/rules.d/99-nokia-n900.rules&lt;/code&gt;:

 SUBSYSTEM==&quot;net&quot;, ACTION==&quot;add&quot;, ATTRS{idVendor}==&quot;0421&quot;, ATTRS{idProduct}==&quot;01c8&quot;, ATTRS{manufacturer}==&quot;Nokia&quot;, ATTRS{product}==&quot;N900 (PC-Suite Mode)&quot;, NAME=&quot;n900&quot;, RUN+=&quot;/sbin/ifconfig n900 192.168.2.14&quot;

This may even work with multiple USB devices connected, because it's matching on the vendor and product IDs rather than the interface name.

=== Windows ===

Windows USB networking does not work out of the box, but the old 770 workaround still works.
So follow these steps:
# install the [[MADDE|Mad Developer]] application on N900 and start it and press &quot;'''Usb Networking'''&quot; -&gt; &quot;'''Windows Network'''&quot; -&gt; &quot;'''Close'''&quot;.
# Press button &quot;'''Edit'''&quot; and enter following '''IP Address:''' 192.168.2.15, '''Netmask:''' 255.255.255.0, '''Peer IP:''' 192.168.2.14. and then press &quot;'''Configure'''&quot; (this address will be used for the SCP client as well).
# For Windows OS download [http://tablets-dev.nokia.com/MADDE.php install-madde-0.6.72.exe]. Open file with '''7-Zip''' and extract somewhere (best to the desktop) files &quot;'''maemo_usbnet.inf'''&quot; and &quot;'''maemo_usbnet.cat'''&quot;
# Connect your N900 via USB and choose '''PC Suite mode'''. 
# PC will obtain drivers for new network device, just point it to the downloaded files. This will install network device &quot;'''Linux USB Ethernet/RNDIS Gadget'''&quot;
# Set for &quot;Linux USB Ethernet/RNDIS Gadget&quot; IP address '''192.168.2.14'''. 
# For Vista / Windows7 open &quot;'''Network and Sharing center'''&quot; and select &quot;'''Manage network connections'''&quot; (left menu) --&gt; right click on network device which have internet access and choose &quot;'''Properties'''&quot; --&gt; select '''tab &quot;Sharing&quot;''' --&gt; check box &quot;'''Allow other devices to connect...'''&quot; --&gt; under &quot;'''Home networking connection'''&quot; select the network connection (Local Area Connection n#) which is dedicated to &quot;Linux USB Ethernet/RNDIS Gadget&quot;. 
# When you have finished USB Networking, to retrieve default state of N900 press in Mad Developer: &quot;'''Usb Networking'''&quot; -&gt; &quot;'''Unix Network'''&quot; -&gt; &quot;'''Close'''&quot;.

=== Mac OS X ===

OS X will detect a new network interface and ask you to configure it. Choose DHCP with manual address and set the IP address to 192.168.2.14

To use the Internet connection of your Mac via USB networking make sure to enable System Preferences -&gt; Sharing -&gt; Internet sharing for the N900 interface [http://docs.info.apple.com/article.html?path=Mac/10.5/en/8156.html Howto]

== One-time Quick &amp; Dirty Connection ==

If you just need a one-time connection quickly, with no need to edit configuration files or set things up for automatic detection/connection, then as an alternative to the above, the following has worked for this user (kwtm).  Make sure &quot;usb-network-modules&quot; and &quot;rootsh&quot; are installed (via Applications Manager or equivalent).

&lt;ol&gt;
&lt;li&gt;
connect the N900 to the Other Computer via USB cable, and select &quot;PC Suite mode&quot; when asked.
&lt;/li&gt;
&lt;li&gt;
open a terminal on the N900 and type:
&lt;pre&gt;
sudo gainroot
ifconfig usb0 192.168.2.15
ifconfig usb0 up
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
on your Other Computer, open a terminal and type the following for Ubuntu; modify appropriately for other computers:
&lt;pre&gt;
sudo ifconfig usb0 192.168.2.14
sudo ifconfig usb0 up
ssh -l user -v 192.168.2.15
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

That is all. You should now be connected via terminal to your N900.  Whatever you type on your Other Computer, it will be as if you are typing on the N900 itself in a terminal. Non-Ubuntu Linux computers might not use the &quot;sudo&quot; command, so you will have to gain root another way.  One possibility that will probably work is to use the &quot;su&quot; command first, allowing you to omit &quot;sudo&quot; on the above commands:
 su   # (And then enter the root password when asked)
 ifconfig usb0 192.168.2.14
 ifconfig usb0 up
 exit # (This stops the root mode)
 ssh -l user -v 192.168.2.15
[I have no idea what to do for Windows computers.  Perhaps someone can post the equivalent commands?]

== Using USB networking for Maemo applications ==

By default, standard network applications works well with USB networking, while Maemo-specific applications do not.

Install &lt;code&gt;libicd-network-dummy&lt;/code&gt; from Fremantle Nokia-binaries repository or better &lt;code&gt;libicd-network-null&lt;/code&gt; from [[extras-devel]], and when USB networking is up pickup &quot;Dummy network&quot; from the connection manager. One way to do it:
 apt-get install libicd-network-dummy
  or
 apt-get install libicd-network-null

If the dummy network does not show up in the network manager you could run
the following commands in xterm:
 gconftool-2 -s -t string /system/osso/connectivity/IAP/DUMMY/type DUMMY
 gconftool-2 -s -t string /system/osso/connectivity/IAP/DUMMY/name &quot;Dummy network&quot;

and maybe

 gconftool-2 -s -t string /system/osso/connectivity/IAP/DUMMY/autoconnect false

If connect automatically is used with &quot;Any Connection&quot;, the phone will also use Dummy Network, which is not good. To prevent this, you need to run the following command :
 gconftool -s /system/osso/connectivity/network_type/auto_connect -t list --list-type string &quot;[WLAN_INFRA,GPRS]&quot;
Keep in mind the above command will get overwritten if you change the value via UI. (If you choose any / wifi / gprs, and you will want to go back to &quot;wifi or gprs&quot; you will have to do the CLI thing again.

Then restart icd2:
 killall icd2

or reboot the device.

[[Category:Wiki page of the day]]
[[Category:Connectivity]]
[[Category:N900]]
[[Category:USB]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>N900 USB router</title>
    <id>4300</id>
    <revision>
      <id>36520</id>
      <timestamp>2010-07-08T11:29:19Z</timestamp>
      <contributor>
        <ip>88.96.123.81</ip>
      </contributor>
      <comment>Fix typos</comment>
      <text xml:space="preserve">When the only internet link is the [[Nokia N900|N900]], how to connect a laptop to it and use it to connect to the net?

There is two modes for doing this: Using the [[Nokia N900|N900]] as a dumb mobile broadband modem to the phone network, or set up full USB networking between the computer and the N900 using the N900 as a router to whatever network it's connected to (phone, wlan, etc..)

The modem model should be available mostly automatically on most OS'es when you connect the phone over USB (Bluethooth also possible with an addon). Windows may need the PC Suite installed however. This however only works for phone network connections, not wlan connections.

The other variant using full USB networking support is not enabled in the default USB profile of the N900 and needs some tweaking to be enabled, but once enabled it gives you full network access to both the N900 and connection sharing of whatever Internet connection the N900 currently have (phone, wlan, etc...)

== On the N900 ==

&lt;ol&gt;
&lt;li&gt;[[Extras-devel#How to activate Extras-devel|Enable extras-devel]]&lt;/li&gt;
&lt;li&gt;Install [http://maemo.org/packages/view/iptables/ iptables] at a [[terminal]] with [[root access]]:&lt;pre&gt;apt-get install iptables&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Install [http://maemo.org/packages/view/kernel-power-settings/ kernel-power-settings] (see [[Kernel_Power#Installation_of_the_stable_kernel_from_extras|the detailed installation instructions]]):&lt;pre&gt;apt-get install kernel-power-settings&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Setup iptables to allow forwarding:
&lt;pre&gt;
echo 1 &gt; /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o gprs0 -j MASQUERADE
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Check the IP address for USB networking:&lt;pre&gt;cat /etc/network/interfaces&lt;/pre&gt;
&lt;pre&gt;
iface usb0 inet static
address 192.168.3.15
netmask 255.255.255.0
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Bring the interface UP:&lt;pre&gt;
ifup usb0
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Start dnsmasq on the usb0 interface to provide DHCP &amp; DNS&lt;pre&gt;
dnsmasq -I lo -z -a 192.168.3.15 -F 192.168.3.64,192.168.3.127
&lt;/pre&gt;
&lt;/ol&gt;

Once you have verified this works then you can make the settings permanent by adding the needed commands to /usr/sbin/pcsuite-enable.sh just before &quot;exit 0&quot; line at the end of the file.

&lt;pre&gt;
echo 1 &gt; /proc/sys/net/ipv4/ip_forward
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o gprs0 -j MASQUERADE
ifup usb0
dnsmasq -I lo -z -a 192.168.3.15 -F 192.168.3.64,192.168.3.127
&lt;/pre&gt;

This will make the needed settings automatically enabled when you select &quot;PC Suite&quot; mode on the N900 when connecting the USB cable.

== On the laptop ==

The networking configuration on the PC side should be almost automatic on most OS:es. If needed configure your PC to use DHCP on the USB interface.

== For Non-Power Users On Windows ==

The [http://www.nokiausa.com/get-support-and-software/software/nokia-pc-suites/compatibility-and-download Nokia PC Suite] also provides this functionality for Windows users. Once it is set up, click on the green globe icon to get started - or you can just run &quot;OneTouchAccess&quot; from the PC Suite program files directory (&lt;code&gt;C:\Program Files\Nokia\Nokia PC Suite 7\&lt;/code&gt; by default on Windows XP)

Note: Reportedly PC Suite do not provide USB networking as described in this article. Instead it sets up dialup networking over USB, using the phone as a wireless broadband modem. Fine for Internet access, but perhaps not what you want for advanced uses where you want to be able to communicate with the N900 as well, not just Internet.

[[Category:Connectivity]]
[[Category:N900]]
[[Category:USB]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>N900 VGA camera</title>
    <id>3304</id>
    <revision>
      <id>35937</id>
      <timestamp>2010-06-16T14:54:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>[[N900 Hardware VGA Camera]] moved to [[N900 VGA camera]]: shorten and capitalization</comment>
      <text xml:space="preserve">==Hardware==

The [[Nokia N900|N900]] front camera is a VS6555 VGA camera from ST Microelectronics.

The [http://www.alldatasheet.com/datasheet-pdf/pdf/206482/STMICROELECTRONICS/VS6555.html datasheet] lists the following specs.

* Size: 4.5×4.5×2.5 mm
* Resolution: 640×480
* minimum illumination 7 lux
* SNR at 100 lux 34 dB
* Field of view: 66 degrees horizontal, 78 degrees diagonal

This is connected via a multiplexor to the single camera bus on the CPU, along with the main camera. The two cannot be used at once.

==Software==

The driver presents the camera as a video4linux device - &lt;code&gt;/dev/video1&lt;/code&gt;.

This camera had severe performance problems under the original software release. (PR1.0)
With [[Maemo 5/PR1.1|PR1.1]], released in January 2010, in very good light, the picture was acceptable. In normal room light, the performance remained lower than would be hoped.

With the release of [[Maemo 5/PR1.2|PR1.2]], this has improved further, being generally adequate.

Also, with the release of PR1.2, [http://talk.maemo.org/showthread.php?t=53579&amp;highlight=skype+video Skype Video] began to work, using the VGA camera. Little other software uses the front camera - [http://maemo.org/downloads/product/Maemo5/mirror/ mirror] provides a real-time image of what the camera is showing, and [http://maemo.org/packages/view/mplayer/ mplayer] can also use the camera as a video4linux device.

[[Category:N900]]
[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Video Encoding</title>
    <id>3277</id>
    <revision>
      <id>25796</id>
      <timestamp>2010-01-04T13:58:25Z</timestamp>
      <contributor>
        <username>jayford</username>
        <id>1718</id>
      </contributor>
      <comment>The page is now fully merged with Video encoding</comment>
      <text xml:space="preserve">#REDIRECT [[Video encoding]]</text>
    </revision>
  </page>
  <page>
    <title>N900 Web Applications</title>
    <id>3062</id>
    <revision>
      <id>32779</id>
      <timestamp>2010-04-15T11:14:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>links</comment>
      <text xml:space="preserve">The Browser in the [[Nokia N900|N900]] is the killer app. What follows is a range of links to cool Web Apps that work just fine on the N900. These will of course need a internet connection to work.

==Hahlo==

[[Image:Hahlo.jpg]]

Hahlo is an awesome web app for accessing Twitter
 
[http://hahlo.com/ Link to Hahlo]

Review on the Nokia Blog  [http://thenokiablog.com/2009/11/17/hahlo-awesome-twitter-web-app-nokia-n900/ Click Here]


==Maemaps== 
[[Image:maemap.jpg]]


[http://www.tomch.com/maemaps.html Link to maemaps]

Discussion thread [http://talk.maemo.org/showthread.php?t=33645&amp;highlight=maemaps Click Here]

maemaps offers a customised proxy for Google Maps especially formatted to fit on to the N900's screen resolution and finger operation.


[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>N900 accelerometer</title>
    <id>3336</id>
    <revision>
      <id>50168</id>
      <timestamp>2012-10-14T10:04:40Z</timestamp>
      <contributor>
        <ip>188.76.223.104</ip>
      </contributor>
      <comment>/* sysfs */</comment>
      <text xml:space="preserve">The accelerometer detects orientation and movement of the [[Nokia N900|phone]].

==Hardware==

The accelerometer in the phone is a [http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00135460.pdf LIS302DL].

It is connected through [[N900 Hardware Bus I2C|the I2C bus]].

It features:
* Low power consumption
* Dynamically selectable 2/8 G full-scale.
* Programmable multiple interrupt generator
** Click and double click recognition
** Zero G detection
** Interrupt on crossing arbitrarily set threshold on any axis, either absolute or speed of change (via programmable highpass filer). Note: the kernel driver doesn't support any of the advanced trigger configs, just simple threshold on x,y axis.

The click and double click functionality are not implemented in the current software.

The accelerometer is uncalibrated - the sensitivity may vary by around 10% plus or minus per-axis. Ideally this would be able to be calibrated by the user. It is possible to recover the bias and sensitivity by rotating the phone several times, and then finding the best mapping of the resulting ellipsoid to a sphere centered around zero.   

The absolute resolution is poor - 18 mG (at 2 G sensitivity) typical. This is fine for detecting the orientation of the phone, but makes most uses that would attempt to integrate the acceleration for detection of position useless.

At the fastest sampling speed, the noise is enough to dither the output, so the resolution is somewhat higher.

===Fundamental limitations===

For example - with a 9 mG error - there is an acceleration error of 9 centimeters per meter per second.

This means that after 10 seconds, the velocity may be anywhere within a 1.8 m/s (around 4 MPH) band, and the position inaccurate by 4.5 m. After 100 s, the position inaccuracy is up to 450 m (this assumes the orientation of the phone is known exactly).

===Bugs===

Sometimes the LIS302 in N900 gets massive offset on one or more axes, due to unknown reason (possibly I2C errors). Symptoms: Dialer autorotation fails or gets weird. Even rebooting seems not to help to fix this, but removing battery for some seconds resets the chip. Powering down the device should help too (Note: device never really powers down as long as power is on USB, i.e. charging)

==Software==

The accelerometer is supported by the dbus/sysfs infrastructure accelerometers, and the [http://doc.qt.nokia.com/qt-maemo-4.6/maemo5-rotation.html application rotation framework].
It is used by much software, including [http://maemo.org/packages/view/n900fly/ N900Fly] and [http://maemo.org/downloads/product/Maemo5/pedometerhomewidget/ a pedometer widget] as well as all applications that support the screen rotating automatically to be up.

[[Open development/Maemo roadmap/Fremantle|Fremantle]] provides an accelerometer API. There are currently [https://bugs.maemo.org/show_bug.cgi?id=4724 two interfaces available]:
* D-Bus
* sysfs

See also the [http://talk.maemo.org/showthread.php?p=288990 related thread] at talk.maemo.org.

=== D-Bus ===

Thomas Thurman ([http://twitter.com/marnanel marnanel]) has put together a simple demo of an application using accelerometers using the D-Bus interface. You can find sources and .deb up at http://people.collabora.co.uk/~tthurman/sandcastle/

See also how to handle [[Using_Fremantle_widgets#Portrait_Mode|portrait mode switching]].

=== sysfs ===

Another way is to use the sysfs file information:

 /sys/class/i2c-adapter/i2c-3/3-001d/coord

When reading that file you get 3 values X, Y and Z (provided on one line, separated by white space). Values are in mG (milli G). 1000 mG= 1 G

{| class=&quot;wikitable&quot;
|+ Theoretical values from the accelerometers
|-
! Position
! X
! Y
! Z
|-
| Lying on table (back down)
| 0
| 0
| -1000
|-
| Lying on table (face down)
| 0
| 0
| 1000
|-
| Sitting on table (bottom edge down)
| 0
| -1000
| 0
|-
| Sitting on table (right edge down)
| -1000
| 0
| 0
|-
| Sitting on table (left edge down)
| 1000
| 0
| 0
|-
| Bottom right corner down (approx.)
| -707
| -707
| 0
|}

These are theoretical values. In real life your mileage will vary.

An example can be found at: [http://git.zimmerle.org/?p=inclinometer.git;a=summary]

=== Using the data ===

The ''X'' and ''Y'' values can be used to calculate&lt;ref&gt;Tom Pycke, ''[http://tom.pycke.be/mav/69/accelerometer-to-attitude Accelerometer to pitch and roll]''&lt;/ref&gt; the pitch (that is, clockwise rotation) using the ''atan2'' function (note the inverted sign of ''y''):

  angle_in_radians = '''atan2'''(''x'', -''y'')

Similar, ''Y'' and ''Z'' can be used to calculate the roll:

  angle_in_radians = '''atan2'''(''y'', -''z'')

=== Python ===

Using the sysfs interface:
&lt;source lang=&quot;python&quot;&gt;
  def get_rotation():
    f = open(&quot;/sys/class/i2c-adapter/i2c-3/3-001d/coord&quot;, 'r' )
    coords = [int(w) for w in f.readline().split()]
    f.close()
    return coords
&lt;/source&gt;

And using the D-Bus interface:
&lt;source lang=&quot;python&quot;&gt;
import dbus
bus = dbus.SystemBus()             
accel = bus.get_object('com.nokia.mce',
        '/com/nokia/mce/request',
        'com.nokia.mce.request') 
orientation , stand , face , x , y , z = accel.get_device_orientation()
&lt;/source&gt;
x,y,z are the raw accelerometer measurements values, and the first three variables give text information about the device orientation. In particular, the first one informs about the landscape/portrait state.

A python class that gives smoothed accelerometer values is available [http://lesloueizeh.com/jdieter/accelreader.py here].

=== Smoothed C interface ===

This is a C function which returns smooth values from the accelerometer.
Designed for applications running at &gt;=25fps  (otherwise it lags)

(GPL code extracted from libliqbase: liqaccel.c)

&lt;source lang=&quot;c&quot;&gt;
static int ocnt=0;
static int oax=0;
static int oay=0;
static int oaz=0;
	
static const char *accel_filename = &quot;/sys/class/i2c-adapter/i2c-3/3-001d/coord&quot;;

int liqaccel_read(int *ax,int *ay,int *az)
{
	FILE *fd;
	int rs;
	fd = fopen(accel_filename, &quot;r&quot;);
	if(fd==NULL){ liqapp_log(&quot;liqaccel, cannot open for reading&quot;); return -1;}	
	rs=fscanf((FILE*) fd,&quot;%i %i %i&quot;,ax,ay,az);	
	fclose(fd);	
	if(rs != 3){ liqapp_log(&quot;liqaccel, cannot read information&quot;); return -2;}
	int bx=*ax;
	int by=*ay;
	int bz=*az;
	if(ocnt&gt;0)
	{
		*ax=oax+(bx-oax)*0.1;
		*ay=oay+(by-oay)*0.1;
		*az=oaz+(bz-oaz)*0.1;
	}
	oax=*ax;
	oay=*ay;
	oaz=*az;
	ocnt++;
	return 0;
}
&lt;/source&gt;

===C++ Class===

This is a simple C++ class based on the sysfs interface. Placed in the public domain by [[User:thp|thp]]. Feel free to improve:

&lt;source lang=&quot;cpp&quot;&gt; 
#include &lt;stdio.h&gt;
 
#define ACCELEROMETER_FILE_N900 &quot;/sys/class/i2c-adapter/i2c-3/3-001d/coord&quot;
 
class Accelerometer {
    int x;
    int y;
    int z;
 
public:
    Accelerometer() : x(0), y(0), z(0)
    {
        update();
    }
 
    bool update()
    {
        int tmp[3] = {0, 0, 0};
        FILE *fd;
 
        if (!(fd = fopen(ACCELEROMETER_FILE_N900, &quot;r&quot;))) {
            return false;
        }
 
        if (fscanf(fd, &quot;%i %i %i&quot;, tmp, tmp+1, tmp+2) != 3) {
            return false;
        }
 
        if (fclose(fd) == EOF) {
            return false;
        }
 
        x = tmp[0];
        y = tmp[1];
        z = tmp[2];
 
        return true;
    }
 
    int getX() { return x; }
    int getY() { return y; }
    int getZ() { return z; }

};
&lt;/source&gt;

[[Category:N900 Hardware]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>N900 ad hoc wifi hotspot</title>
    <id>5203</id>
    <revision>
      <id>48255</id>
      <timestamp>2012-06-08T15:55:02Z</timestamp>
      <contributor>
        <username>hurrian</username>
        <id>5316</id>
      </contributor>
      <comment>[[N900 ad hoc wifi hotspot]] moved to [[N900 Ad-hoc WiFi Hotspot]]: Adjust page title.</comment>
      <text xml:space="preserve">#REDIRECT [[N900 Ad-hoc WiFi Hotspot]]</text>
    </revision>
  </page>
  <page>
    <title>N900 camera sensor</title>
    <id>3266</id>
    <revision>
      <id>40422</id>
      <timestamp>2010-12-02T09:19:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Hardware */ move content from [[Replacing n900 camera]]</comment>
      <text xml:space="preserve">==Hardware==

The main camera is a ET8EK8 by Toshiba. The datasheet can be found [http://retiisi.dyndns.org/~sakke/foo/SMIA95_AF_camera%20module_APL_090511.doc here]. [http://gitorious.org/omap3camera/pages/Home]

The camera is a 5MP imager, with a [[N900_Hardware_Flash_Torch|Dual LED flash]] and [[N900 Hardware Autofocus|autofocus]].

It is compatible with the N96, N85, N79 and [[Nokia N900|N900]]. [http://www.tessco.com/products/displayProductInfo.do?sku=383792&amp;eventPage=2]


It is connected via a multiplexer to the single camera bus on the CPU, along with the front camera. The two cannot be used at once.

This lens is [[:wikipedia:Diffraction-limited system|considerably smaller]] than the minimum physical requirement for a true 5MP camera.

=== Replacing the camera ===

The service manual for the N900 indicates that the camera can be replaced. In principle this would allow upgrading the camera, however it is perhaps unlikely that a compatible camera of better quality will be easily available. There are also obvious warranty issues - the camera is not a user serviceable part.

The camera sensor is particularly sensitive to harsh light, and can be damaged easy if one is not careful where the camera is pointed.

Here is an example of a picture from a damaged sensor:
[http://i.imgur.com/YDG8v.jpg]
This one in particular has been sun damaged (dark spot) and UV laser damaged (purple marks). The dark spot was found not to be dust after a thorough disassembly and cleaning of the camera optics.

A suitable camera module replacement (if one cannot find one labeled specifically for the N900) is the camera module from either the N85, N96, or N79. They are all the same.

Here is a N85/96/79 module ordered from ebay:
[http://i.imgur.com/jqSw2.jpg]

Once you have determined that your camera sensor is damaged, disassemble your N900 to this point (google ‘N900 service manual’ for instructions):
[http://i.imgur.com/6ix0z.jpg]
You can pop out the old camera with a razor blade stuck into the edges:
[http://i.imgur.com/lCvit.jpg]

Notice there is a notch on the camera's edge that designates alignment.
[http://i.imgur.com/InKwd.jpg]

Here is the difference between the N85/96/79 Module (left) and the N900 module (right). As you can see, there are some minute differences (serial/model numbers?), but the pinout is the same.
[http://i.imgur.com/74vd2.jpg]

Replacing the camera is as simple as popping the old module out and putting the new module in.

Success! No more damaged sensor!
[http://i55.tinypic.com/2i8hqoj.jpg]

==Software==

The lens cover on the phone can be sensed by the phone, to open the [[N900 Software Camera|Camera]] camera application automatically. This can be overridden - see [http://talk.maemo.org/showthread.php?p=495516#post495516 this post]

In [[Maemo 5/PR1.2|PR1.2]], the camera performance improved substantially in dark conditions.

The driver presents the camera as a video4linux device - &lt;code&gt;/dev/video0&lt;/code&gt;.

The camera is used by several applications, including the built in camera application, [http://maemo.org/packages/phototranslator-alpha/ a photo translation app] and  [http://maemo.org/packages/view/mbarcode/ mbarcode].

Several applications augment the functionality of the camera - [http://maemo.org/packages/view/lfocus lfocus allows finer control of the camera focus] and [http://maemo.org/packages/view/flashlight-applet/ a flashlight application].

[http://maemo.gitorious.org/fremantle-gdigicam Gdigicam] is used along with gstreamers [http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-plugins/html/gst-plugins-bad-plugins-camerabin.html Camerabin] element to take pictures normally.

See [[Documentation/Maemo_5_Developer_Guide/Architecture/Imaging_and_Sharing|the documentation]] for more information.

[[Category:N900]] 
[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 dbus</title>
    <id>5223</id>
    <revision>
      <id>48841</id>
      <timestamp>2012-07-28T04:11:10Z</timestamp>
      <contributor>
        <username>jonwil</username>
        <id>3875</id>
      </contributor>
      <comment>New page: This page is intended to document (mostly through various header files and XML dbus interface files) the known information about the dbus interfaces on the N900 using all the available inf...</comment>
      <text xml:space="preserve">This page is intended to document (mostly through various header files and XML dbus interface files) the known information about the dbus interfaces on the N900 using all the available information sources.
Information has been taken from Maemo source tarballs, various git repositories, wiki pages, forum postings, mailing list messages and probably other sources I forget.

==Cellular functionality==
This group of dbus interfaces is related to the cellular modem and interacting with it, especially the Cellular Services Daemon.

===com.nokia.phone.SSC===
com.nokia.phone.SSC is used to control the System Synchronization Daemon which is responsible for cellular modem startup, shutdown, reset and control.
The known details of com.nokia.phone.SSC can be found in [http://www.cncmods.net/files/dbus/csd-ssc.h this .h file]

===com.nokia.csd.Call===
com.nokia.csd.Call is used to interact with/manage phone calls (dial a call, hang up a call, get call status, get notified about calls etc)
The known details of com.nokia.csd.Call can be found in
[http://www.cncmods.net/files/dbus/call.xml this file]
[http://www.cncmods.net/files/dbus/instance.xml this file] and [http://www.cncmods.net/files/dbus/csd-call.h this file]

===com.nokia.phone.net===
com.nokia.phone.net is used for cellular network status (e.g. current cell tower, current operator, 3G vs 2G vs both etc as well as status changes related to the network).
The known details of com.nokia.phone.net can be found in
[http://www.cncmods.net/files/dbus/net_definitions.h this file] and 
[http://www.cncmods.net/files/dbus/net_interface.xml this file]

===com.nokia.csd.GPRS===
com.nokia.csd.GPRS is used for stuff related to cellular internet connectivity (both 2G and 3G) including setting up the connection, disconnecting and being notified of a connection)
The known details of com.nokia.csd.GPRS can be found in
[http://www.cncmods.net/files/dbus/gprs-dbus.txt this file]
[http://www.cncmods.net/files/dbus/Context.xml this file] and 
[http://www.cncmods.net/files/dbus/GPRS.xml this file]

===com.nokia.csd.SMS===
com.nokia.csd.SMS is used for stuff related to sending and receiving SMS messages including Cell Broadcast SMS messages.
The known details of com.nokia.csd.SMS can be found in
[http://www.cncmods.net/files/dbus/sms.xml this file]

===com.nokia.csd.SS===
com.nokia.csd.SS is used to interact with &quot;supplementary services&quot; such as call diversion.
The known details of com.nokia.csd.SS can be found in
[http://www.cncmods.net/files/dbus/ss.xml this file] and 
[http://www.cncmods.net/files/dbus/csd-ss.h this file]

===com.nokia.phone.SIM===
com.nokia.phone.SIM is used to interact with the SIM card including the SIM phone book.
The known details of com.nokia.csd.SIM can be found in
[http://www.cncmods.net/files/dbus/csd-sim.h this file]

===com.nokia.csd.Info===
com.nokia.csd.Info is used to obtain certain information about the phone such as the version of the modem firmware and various hardware IDs.
The known details of com.nokia.csd.Info can be found in
[http://www.cncmods.net/files/dbus/info.xml this file]

==Network functionality==
This group of dbus interfaces is related to networking functionality but especially to the Internet Connectivity Daemon.

===com.nokia.wlancond===
com.nokia.wlancond is used to communicate with the wlan control daemon which controls WiFi connections.
The known details of com.nokia.wlancond can be found in
[http://www.cncmods.net/files/dbus/wlancond-dbus.h this file]

===com.nokia.wappush===
com.nokia.wappush is used to interact with the WAP push daemon which handles and dispatches WAP push messages.
The known details of com.nokia.wappush can be found in
[http://www.cncmods.net/files/dbus/wappushd-dbus.h this file]

===com.nokia.icd2===
com.nokia.icd2 is used to interact with the internet connectivity daemon.
The known details of com.nokia.icd2 can be found in
[http://www.cncmods.net/files/dbus/icd_dbus_api.h this file]

===com.nokia.icd===
Like com.nokia.icd2, com.nokia.icd is used to interact with the internet connectivity daemon. It is an older API but is still functional on the N900.
The known details of com.nokia.icd can be found in
[http://www.cncmods.net/files/dbus/osso-ic-dbus.h this file]

===com.nokia.eap===
com.nokia.eap is used to interact with the EAP daemon which is responsible for doing the heavy lifting for WiFi security.
The known details of com.nokia.eap can be found in
[http://www.cncmods.net/files/dbus/eap-dbus.h this file]

===com.nokia.osso_bookmark===
com.nokia.osso_bookmark is used to interact with the browser bookmark engine (add bookmarks, remove bookmarks etc).
The known details of com.nokia.osso_bookmark can be found in
[http://www.cncmods.net/files/dbus/tablet-bookmark-interface.h this file]

===com.nokia.osso_browser===
com.nokia.osso_browser is used to interact with the MicroB browser.
The known details of com.nokia.osso_browser can be found in
[http://www.cncmods.net/files/dbus/tablet-browser-interface.h this file]

===com.nokia.icd_ui===
com.nokia.icd_ui is used to trigger internet connectivity related UI (such as the dialog displaying the list of available network connections or various key/certificate/password dialog boxes for WiFi connections).
The known details of com.nokia.icd_ui can be found in
[http://www.cncmods.net/files/dbus/osso-ic-ui-dbus.h this file]

==Hardware interfaces==
This group of dbus interfaces is related to the hardware of the phone (including Bluetooth)

===com.nokia.btcond===
com.nokia.btcond is used to talk to the Bluetooth connectivity daemon.
The known details of com.nokia.btcond can be found in
[http://www.cncmods.net/files/dbus/bt-dbus.h this file]

===com.nokia.bt_ui===
com.nokia.bt_ui is used to display various Bluetooth UI dialogs.
The known details of com.nokia.bt_ui can be found in
[http://www.cncmods.net/files/dbus/conbtdialogs-dbus.h this file]

===com.nokia.mce===
com.nokia.mce is used to talk to the Mode Control Entity which controls hardware such as the accelerometer, display brightness, keypad LEDs, notification LED and vibrator.
The known details of com.nokia.mce can be found in
[http://www.cncmods.net/files/dbus/mce-dbus-names.h this file] and 
[http://www.cncmods.net/files/dbus/mode-names.h this file]

===com.nokia.iphbd===
com.nokia.iphbd is used to talk to the IP Heartbeat Daemon which provides syncronization services.
The known details of com.nokia.iphbd can be found in
[http://www.cncmods.net/files/dbus/libiphb.h this file]

===com.nokia.dsme===
com.nokia.dsme is used to talk to the Device State Management Entity which handles various pieces of hardware.
The known details of com.nokia.dsme can be found in
[http://www.cncmods.net/files/dbus/dsme_dbus_if.c this file]

==clock, alarm, calendar and time==
This group of dbus interfaces is related to the N900 clock, alarm, calendar and time functions.

===com.nokia.alarmd===
com.nokia.alarmd is used to talk to the alarm daemon (which manages alarms on the device) and can be used to set and clear alarms.
The known details of com.nokia.alarmd can be found in
[http://www.cncmods.net/files/dbus/alarm_dbus.h this file]

===com.nokia.calendar===
com.nokia.calendar is used to talk to the calendar application.
The known details of com.nokia.calendar can be found in
[http://www.cncmods.net/files/dbus/CalInterface.h this file]

===com.nokia.clock.status_plugin===
com.nokia.clock.status_plugin is used to talk to the clock status bar plugin.
The known details of com.nokia.clock.status_plugin can be found in
[http://www.cncmods.net/files/dbus/clock-plugin-dbus.h this file]

===com.nokia.worldclock===
com.nokia.worldclock is used to talk to the Clock application.
The known details of com.nokia.worldclock can be found in
[http://www.cncmods.net/files/dbus/clockcore-alarms.h this file]

===com.nokia.time===
com.nokia.time is related to time.
The known details of com.nokia.time can be found in
[http://www.cncmods.net/files/dbus/osso-time.h this file]

===com.nokia.clockd===
com.nokia.clockd is used to talk to the clock daemon (which handles time including syncronization with the cellular network)
The known details of com.nokia.clockd can be found in
[http://www.cncmods.net/files/dbus/clock_dbus.h this file]

==Desktop and misc==
This group of dbus interfaces covers things dealing with the desktop as well as a few misc interfaces.

===com.nokia.profiled===
com.nokia.profiled is used to query and change profiles (including setting the current profile)
The known details of com.nokia.profiled can be found in
[http://www.cncmods.net/files/dbus/profile_dbus.h this file]

===com.nokia.systemui===
com.nokia.systemui is used to interface with various pieces of system UI.
The known details of com.nokia.systemui can be found in
[http://www.cncmods.net/files/dbus/systemui-dbus-names.h this file]
[http://www.cncmods.net/files/dbus/actingdead-dbus-names.h this file] and 
[http://www.cncmods.net/files/dbus/alarm_dialog-dbus-names.h this file]

===com.nokia.HildonSVNotificationDaemon===
com.nokia.HildonSVNotificationDaemon is used to trigger specific events (such as ringtones).
The known details of com.nokia.HildonSVNotificationDaemon can be found in
[http://www.cncmods.net/files/dbus/hd-sv-notification-daemon.xml this file]

===org.freedesktop.Notifications===
org.freedesktop.Notifications is used to print notifications (such as the little yellow bar that appears and then immediately disappears and the larger box that you have to specifically acknowledge).
The known details of org.freedesktop.Notifications can be found in
[http://www.cncmods.net/files/dbus/hd-notification-manager.xml this file]

===com.nokia.HildonDesktop.Home===
com.nokia.HildonDesktop.Home is used to get the current view ID.
The known details of com.nokia.HildonDesktop.Home can be found in
[http://www.cncmods.net/files/dbus/hd-home-dbus.xml this file]

===com.nokia.HildonHome===
com.nokia.HildonHome is used to set the background and open the desktop edit menu.
The known details of com.nokia.HildonHome can be found in
[http://www.cncmods.net/files/dbus/hd-hildon-home-dbus.xml this file]

===com.nokia.HildonDesktop.AppMgr===
com.nokia.HildonDesktop.AppMgr is used to launch apps.
The known details of com.nokia.HildonDesktop.AppMgr can be found in
[http://www.cncmods.net/files/dbus/hd-app-mgr-dbus.xml this file]

===com.nokia.hildon_update_notifier===
com.nokia.hildon_update_notifier is used to manage software updates through HAM.
The known details of com.nokia.hildon_update_notifier can be found in
[http://www.cncmods.net/files/dbus/update-notifier-conf.h this file]

===com.nokia.startup.signal===
The com.nokia.startup.signal.init_done signal is sent once the phone initialization has completed and can be used to do things that need to wait for the initialization to complete.</text>
    </revision>
  </page>
  <page>
    <title>N900 filesystem</title>
    <id>3153</id>
    <revision>
      <id>49004</id>
      <timestamp>2012-08-08T21:50:13Z</timestamp>
      <contributor>
        <username>sifo</username>
        <id>5350</id>
      </contributor>
      <comment>/* Instructions for viewing hidden files */</comment>
      <text xml:space="preserve">This article is here to help you find your files you see in file manager but can't seem to find via terminal.

Note: power users should know how to use find, so lets keep this article beginner-friendly!

== Location table ==

{|class=&quot;wikitable&quot;
|+ N900 mount points
|-
!File manager path
!Real path
!Size of the partition
!Partition Type
!Device
|-
|root
|&lt;code&gt;/&lt;/code&gt;
|256 MiB
|rootfs
|Built in to processor chip
|-
|space for software installations etc.
|&lt;code&gt;/home&lt;/code&gt;
|2 GiB
|ext3
|Partition of 32 GB memory chip
|-
|Nokia N900
|&lt;code&gt;[[MyDocs folder|/home/user/MyDocs]]&lt;/code&gt;
|27 GiB
|vfat (default)
|Partition of 32 GB memory chip
|-
|Memory card
|&lt;code&gt;/media/mmc1&lt;/code&gt;
|Memory card's size
|N/A
|microSD memory card
|-
|Swap
| -
|768 MiB
|swap
|Partition of 32 GB memory chip
|-
|}

'''Please notice, that units are [[:wikipedia:Gibibyte|Gibibytes]] (GiB), not [[:wikipedia:Gigabytes|Gigabytes]] (GB). N900 specs say 32 GB, not 32 GiB''' 

eMMC is a image of 32 GB chip. See [[Updating the firmware]]

Note: MyDocs has subfolders that can be seen with file manager, there is an article describing those called [[MyDocs folder]]. The folder you see when you plug in your N900 to computer is:
 /home/user/MyDocs

== Instructions for viewing hidden files ==

All files that start with period (.), are hidden files/folders. For example: 
 /home/user/.thisishiddenfile.txt
 /home/user/MyDocs/.images/

; Mac
: Use &lt;code&gt;ls -a&lt;/code&gt; in [[terminal]] or [http://www.apple.com/downloads/dashboard/developer/hiddenfiles.html a Dashboard Widget]
; Windows
: To see hidden or system files, open the &quot;Tools&quot; menu, and select &quot;Folder Options&quot;, then in the &quot;View&quot; tab, check &quot;Show hidden files and folders&quot;. [http://www.microsoft.com/windowsxp/using/helpandsupport/learnmore/tips/hiddenfiles.mspx Learn more]
; GNOME - Nautilus
: In the '''View''' menu of the file manager, check the &quot;Hidden files&quot; checkbox. [http://library.gnome.org/users/user-guide/stable/nautilus-hidden-files.html.en Learn more]. The keyboard shortcut is Control+H.
; KDE - Dolphin
: In the '''View''' menu of the file manager, select &quot;Show Hidden Files&quot; [http://docs.kde.org/stable/en/kdebase-apps/dolphin/dolphin-interface.html Learn more]
; Command line
: Use &lt;code&gt;ls -a&lt;/code&gt; in a terminal. This will work on your Nokia N770, N8xx, and N900 as well as any Linux distro or system.

== Further reading ==

* [[:wikipedia:Unix directory structure|The Unix directory structure]] article from Wikipedia.

[[Category:Beginners]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>N900 headphone amplifier</title>
    <id>4231</id>
    <revision>
      <id>35906</id>
      <timestamp>2010-06-16T14:33:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>[[N900 Headphone Amplifier]] moved to [[N900 headphone amplifier]]: capitalization</comment>
      <text xml:space="preserve">The headphone amplifier powers the headphones, and has a hardware volume control.

==Hardware==

138-mW DirectPath™ Stereo Headphone Amplifier with I2C Volume Control.

It is made by TI, the [http://focus.ti.com/docs/prod/folders/print/tpa6130a2.html TPA6130].

==Software==

[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 light meter</title>
    <id>4232</id>
    <revision>
      <id>41934</id>
      <timestamp>2011-02-22T11:01:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add link</comment>
      <text xml:space="preserve">The light meter lets the software on the [[Nokia N900|N900]] sense ambient light levels.

==Hardware==

The device is a TAOS [http://www.taosinc.com/downloaddetail.aspx?did=141 TSL2563].

==Software==

It is handled by the kernel module tsl2563.

The kernel driver exposes the [[:wikipedia:lux|lux]] value in the sysfs file
 cat /sys/class/i2c-adapter/i2c-2/2-0029/lux
 21

Under MeeGo it's available as
&lt;pre&gt;
cat /sys/class/i2c-adapter/i2c-2/2-0029/device0/illuminance0_input
&lt;/pre&gt;

Third party applications that use this sensor include [http://www.tuug.fi/~toni/serendipity/index.php?/archives/14-Luxus-Light-Meter-v0.2-for-N900,-as-a-real-homescreen-widget.html Luxus Light Meter] and [http://norayr.arnet.am/weblog/?p=1710 photographic light meter].

The sensor is also used to modulate the backlight in response to ambient light, although this behaviour [[Disable the ambient light sensor|can be disabled]].

[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N900 media support</title>
    <id>3130</id>
    <revision>
      <id>42329</id>
      <timestamp>2011-03-03T14:20:13Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>[[N900 Media Support]] moved to [[N900 media support]]: Sentence capitalization for page titles</comment>
      <text xml:space="preserve">The [[Nokia N900|N900]] supports [[:wikipedia:MPEG-4_Part_14|MP4]], [[:wikipedia:Windows_Media_Video|WMV]], and [[:wikipedia:Audio_Video_Interleave|AVI]] media container formats.

The following sections are part of a work in progress.

== Video Formats ==

{| class=&quot;wikitable sortable&quot;
|+ Supported video formats
|-
! Video Codec
! Supported (Yes/No/Unconfirmed)
! Additional Software &lt;ref name=&quot;additional&quot;&gt;Please do not update 'Additional Software' if its only available in [[extras-testing]] or [[extras-devel]]&lt;/ref&gt;
|-
| MPEG-1/2
| Yes (MPEG-2 Transport Stream)
| Extra Decoders Support 
|-
| FLV
| Yes
| Extra Decoders Support 
|-
| DIVX1
| Unconfirmed
|
|-
| DIVX2
| Unconfirmed
|
|-
| DIVX3
| Unconfirmed
|
|-
| MPEG-4 ASP
| Unconfirmed
|
|-
| DivX 4
| Unconfirmed
|
|-
| DivX5
| Unconfirmed
|
|-
| Divx6
| Unconfirmed
|
|-
| XviD
| Yes
|
|-
| 3ivX
| Unconfirmed
|
|-
| H.261
| Unconfirmed
|
|-
| H.263 / H.263i
| Unconfirmed
|
|-
| H.264 / MPEG-4 AVC
| Yes
|
|-
| Theora
| Unconfirmed
|
|-
| WMV 1/2
| Unconfirmed
|
|-
| WMV 3
| Unconfirmed
|
|-
| WMV-9
| Unconfirmed
|
|-
| Real Video 1/2
| Yes
| Extra Decoders Support 
|-
| Real Video 3/4
| Yes
| Extra Decoders Support 
|-
| D4
| Unconfirmed
|
|-
| Cinepak
| Unconfirmed
|
|-
| Dirac / VC-2
| Unconfirmed
|
|-
| MJPEG (A/B)
| Unconfirmed
|
|-
| VC-1
| Unconfirmed
|
|-
| Sorenson 1/3 (Quicktime)
| Unconfirmed
|
|-
| DV (Digital Video)
| Unconfirmed
|
|-
| On2 VP3/VP5/VP6	
| Unconfirmed
|
|-
| Indeo Video v3 (IV32)
| Unconfirmed
|
|-
| Indeo Video 4/5 (IV41, IV51)
| Unconfirmed
|
|}



== Audio Formats ==

{| class=&quot;wikitable sortable&quot;
|+ Supported audio formats
|-
! Audio Codec
! Supported (Yes/No/Unconfirmed)
! Additional Software &lt;ref name=&quot;additional&quot; /&gt;
|-
| MPEG Layer 1/2
| Unconfirmed
|
|-
| MP3 - MPEG Layer 3						
| Yes
|
|-
| AAC - MPEG-4 part3						
| Yes
|
|-
| Vorbis						
| Yes
| [http://maemo.org/packages/view/ogg-support/ OGG Support]
|-
| AC3 - A/52 (Dolby Digital)						
| Yes
| Extra Decoders Support 
|-
| E-AC-3 (Dolby Digital Plus) 3 						
| Unconfirmed
|
|-
| Araw
| Yes
|
|-
| WMA 1/2						
| Unconfirmed
|
|-
| WMA 3
| Unconfirmed
|
|-
| FLAC						
| Yes
| OGG Support
|-
| Real Audio 2						
| Unconfirmed
| Extra Decoders Support 
|-
| MIDI						
| Unconfirmed
|
|-
| MLP / TrueHD 3						
| Unconfirmed
|
|-
| QDM2/QDMC (QuickTime)						
| Unconfirmed
|
|-
| Speex						
| Unconfirmed
|
|-
| DTS						
| Unconfirmed
|
|-
| Musepack / MPC						
| Unconfirmed
|
|-
| ALAC						
| Unconfirmed
|
|-
| ATRAC 3						
| Unconfirmed
|
|-
| Wavpack						
| Unconfirmed
|
|-
| Mod (.s3m, .it, .mod)						
| Unconfirmed
|
|-
| TrueAudio (TTA)						
| Unconfirmed
|
|-
| APE (Monkey Audio)						
| Unconfirmed
|
|-
| Alaw/µlaw						
| Unconfirmed
|
|-
| AMR (3GPP)						
| Unconfirmed
|
|-
| LPCM						
| Unconfirmed
|
|-
| ADPCM						
| Unconfirmed
|
|-
| QCELP						
| Unconfirmed
|
|-
| DV Audio						
| Unconfirmed
|
|-
| MACE
| Unconfirmed
|
|}

== Further information ==

Adapted from http://www.videolan.org/vlc/features.html

=== Adding third-party media support ===

Matroska files require: gstreamer0.10-plugins-good-extra
Matroska files also require to be run on terminal as root:
 /usr/bin/tracker-register-mimetype -c Videos -a video/x-matroska

Flv files require: gstreamer0.10-flv

To play VP6 inside flv or any format not supported (but supported by mplayer/vlc) by the media player, you need to install gstreamer0.10-ffmpeg.

External subtitles cannot be played by the media player, this requires a new media player but that can be based on GStreamer. This would require the subparse element from gst-plugins-base compiled for the device. ( http://maemo.org/packages/view/mafw-gst-subtitles-applet/ ? )

=== Footnotes ===

&lt;references /&gt;

[[Category:N900]]
[[Category:Media]]</text>
    </revision>
  </page>
  <page>
    <title>N900 shortcuts and gestures</title>
    <id>3077</id>
    <revision>
      <id>49488</id>
      <timestamp>2012-09-07T20:25:03Z</timestamp>
      <contributor>
        <username>degle</username>
        <id>5421</id>
      </contributor>
      <comment>/* File Manager Shortcuts */</comment>
      <text xml:space="preserve">== General shortcuts ==

{| class=&quot;wikitable sortable&quot;
|+ General keyboard shortcuts
|-
! Keyboard Shortcut
! class=&quot;unsortable&quot; | Description
|-
| Ctrl + C 
| Copy text
|-
| Ctrl + V 
| Paste text
|-
| Ctrl + X
| Cut text
|-
| Ctrl + A
| Select all
|-
| Ctrl + O
| Open 
|-
| Ctrl + N
| New item
|-
| Ctrl + S
| Save 
|-
| Ctrl + Z
| Undo 
|-
| Ctrl + Y
| Redo 
|-
| Ctrl + F
| Find/Search Bar 
|-
| Ctrl + Right arrow
| Move the insertion point to the end of the word
|-
| Ctrl + Left arrow
| Move the insertion point to the beginning of the word
|-
| Fn + Ctrl
| Symbols and characters.
&lt;br /&gt;
Symbols on the third row are entered by pressing the symbol followed by the 'Space' key, or by pressing the symbol followed by the letter to accent, or add a diacritical mark to.
&lt;br /&gt;
The diacritical marks on the third row are: ` (accent grave), ΄ (accent acute), ^ (circumflex), ~ (tilde), ¨ (diaeresis), ° (degree sign), ˇ (caron)
&lt;br /&gt;
For example, press ΄ and E to enter an accented é.
|-
| Ctrl + Backspace
| Task Manager
|-
| Shift + Backspace
| Delete character. Works in Notes App, entering URLs in Browser. Does not work in Abiword.
|-
| Ctrl + Shift + P
| Takes a screenshot. The PNG image file is saved in &lt;code&gt;/home/user/MyDocs/.images/Screenshots/&lt;/code&gt; with a timestamp in the filename.
|-
| Ctrl + Shift + X
| Starts [[terminal|Xterm]]
|-
| Ctrl + Space
| Switch between Input languages (Dual Dictionaries)
|-
| Double-Press Power Button
| Locks device
|-
| Double-Press Shift
| Caps lock on
|-
| Double-Press Fn
| Locks Fn
|-
| Press and hold a key
| Same symbol as Fn + Key comes up
|-
| A-Z
| Start typing the name of a person to start Contacts App (Desktop Only)
|-
| Fn + &lt;number&gt;
| Type any number to start Phone App (Desktop Only)
|-
| Shift + Arrow Keys
| Select Text
|-
| Volume Keys
| Zoom In/Out or Volume Level, depending on App
|}

== Conversations ==

* Tap and hold on a text message: You get the option to call the person
* Swipe-from-left (as in browser) allows selecting and copying of message text
* Start entering a string to filter for messages written by a contact with a name including the input string

== Calendar ==

* Start entering a string to enter a new calendar item. This works in every calendar view.

== File Manager Shortcuts ==

{| class=&quot;wikitable sortable&quot;
|+ File Manager keyboard shortcuts
|-
! Keyboard Shortcut
! class=&quot;unsortable&quot; | Description
|-
| Ctrl + Fn + C
| Selects all files and folders under Copy/Move/Delete/Share mode, when it's already manually selected at least one file or folder
|-
| Ctrl + Shift + A
| Deselects all files and folders under Copy/Move/Delete/Share mode
|}

== General gestures ==

* Long press on Task Switch icon: Brings you back to desktop
* When getting a incoming call, turn over the device so the screen faces down towards the table surface to silence an incoming call
* When alarm rings, turn over the device so the screen faces down towards the table surface to snooze the alarm
* Phone App drop down menu, &quot;Turning Control&quot; allows you to set orientation, but also set it to launch the phone app when you turn the device to portrait. Seems to only work from the desktop.
* Using the stylus, double tap to highlight a word or triple tap to highlight all words
* In a sub-view of an application (e.g. Email -&gt; Account -&gt; Inbox) tapping and holding the Back arrow button (in the upper right corner of the screen) switches to the main view of that application [http://my-maemo.com/faq/showquestion.php?faq=5&amp;fldAuto=7]

== Xterm Shortcuts ==

* Copy &amp; Paste: Press the Selection toggle button (Arrow to left of Ctrl on the keybar), highlight the text with stylus or finger, tap Xterm menu bar, select 'Copy'. To paste text, tap menu bar and select 'Paste'. 
* The Xterm keybar can be edited to add more symbols. More info: [http://talk.maemo.org/showthread.php?t=34926 Keybar for Xterm]

{| class=&quot;wikitable sortable&quot;
|+ [[Terminal]] keyboard shortcuts
|-
! Keyboard Shortcut
! class=&quot;unsortable&quot; | Description
|-
| Ctrl + I
| Autocomplete Filename (pressing tab does this too)
|-
| Ctrl + A
| Move cursor to beginning of line
|-
| Ctrl + E
| Move cursor to end of line
|-
| Ctrl + L
| Clear screen
|-
| Ctrl + W
| Delete the last word
|-
| Ctrl + K
| Delete everything after cursor
|-
| Ctrl + U
| Delete everything before cursor
|-
| Ctrl + D
| Exit
|-
| Volume Keys
| Change font size
|}

== Web browser Shortcuts ==

* Full-Screen mode: Enter a URL directly by typing on the keyboard

{| class=&quot;wikitable sortable&quot;
|+ [[microB|Web browser]] keyboard shortcuts
|-
! Keyboard Shortcut
! class=&quot;unsortable&quot; | Description
|-
| Ctrl + N
| Open a new window
|-
| Ctrl + R
| Reload the current page
|-
| Ctrl + B
| Open a bookmark
|-
| Ctrl + D
| Add a bookmark
|-
| Ctrl + Right Arrow
|Move cursor to next text-input box. Cursor must be in an input box to begin with
|-
|Ctrl + Left Arrow
| Move cursor to previous text-input box. Cursor must be in an input box to begin with
|-
| Ctrl + Shift + I
| Reset zoom to normal or Turn on page reflow for any zoom level
|-
| Ctrl + Shift + O
| Turns on/off Portrait mode (Requires keyboard closed to work) ''**Incomplete Feature**'' (prior to PR 1.2)
|-
| Backspace
| Back
|-
| Shift + Backspace 
| Forward (absent in PR 1.2)
|-
| Space
| Page Down
|-
| Shift + Space
| Page Up
|-
| Arrows
| Move around page
|-
| Shift + Cursor Up/Down
| Top/Bottom of page (PR1.2)
|}

== Web Browser Gestures ==

{| class=&quot;wikitable sortable&quot;
|+ Web browser gestures
|-
! Gesture
! Description
|-
| Double tap text/image
| Zoom in to fit.
|-
| Double tap text/image (when already zoomed in on the same element) 
| Zoom out to standard zoom.
|-
| Clockwise circular inward motion
| Zoom in
|-
| Counter-clockwise circular outward motion
| Zoom out
|-
| Swipe finger from the right of the screen (outside of screen) towards left (into the screen), on horizontal view
| Browser history (PR 1.2: also through long-press on on-screen back button)
|-
| Swipe finger from the left of the screen (outside of screen), towards right (into the screen)
| Hover mode.
An arrow is displayed on the left. Clicking the arrow creates a pointer that can be used as a mouse to select text. Deactivate by clicking the arrow on the left. 
A quick hover can also be performed by swiping-and-holding finger on screen. This keeps the pointer visible until the finger is lifted. Also, pressing space performs a button click while on &quot;quick hover&quot;. This can be handy if you just need to access a mouse-hover menu or such.
When in &quot;quick hover&quot; mode (i.e. swipe from left and maintain contact with screen), the shift-key has the same effect as 'left-click' from a mouse on a desktop: it allows you to click on links and perform drag 'n' drop operations. 
|}

== E-mail client ==
 
{| class=&quot;wikitable sortable&quot;
|+ E-mail client keyboard shortcuts
|-
! Keyboard Shortcut
! class=&quot;unsortable&quot; | Description
|-
| Ctrl + Enter
| Send a message
|-
| Ctrl + R
| Reply to a message
|-
| Shift + Hover over text
| Highlight (select) portions of text for copying (Ctrl+C) when viewing email - PR1.2. (Still not perfect - see [https://bugs.maemo.org/show_bug.cgi?id=5033 bug 5033]).  A workaround is to Reply or Forward the email, then in edit mode, use Arrow keys to move around, Shift to select text and Ctrl+C to copy.
|-
| Start entering a string in a list view
| Filter for mails written by a contact with a name including the input string or a subject including input string
|}

== RSS Reader ==

{| class=&quot;wikitable sortable&quot;
|+ RSS reader keyboard shortcuts
|-
! Keyboard Shortcut
! class=&quot;unsortable&quot; | Description
|-
| Ctrl + R 
| Refresh the feed
|}

== Evince PDF Reader ==

{| class=&quot;wikitable sortable&quot;
|+ [http://maemo.org/packages/view/evince/ Evince] PDF reader keyboard shortcuts
|-
! Keyboard Shortcut
! class=&quot;unsortable&quot; | Description
|-
| Ctrl + Enter
| Toggle full screen mode
|-
| Ctrl + F 
| Search (search field remains open till app closed)
|-
| Ctrl + Z
| Toggle side panel
|-
| Ctrl + Space
| Toggle &quot;special mode&quot;
|-
| Ctrl + Comma
| Toggle &quot;edit mode&quot; (copy text)
|-
| Volume up/down (normal mode)
| Zoom in/out
|-
| Volume up/down (special mode)
| next/previous page
|-
| Shift + Enter
| Properties
|-
| Ctrl + Down
| Quick Page Down
|-
| Ctrl + Up
| Quick Page Up
|-
| Fn + Enter
| Menu
|-
| +
| Zoom In
|-
| -
| Zoom Out
|}

In fullscreen mode, with special mode off, tapping the top (bottom) of the screen pages up (down).

== Mozilla Firefox (formerly known as fennec) ==

{| class=&quot;wikitable sortable&quot;
|+ [[Firefox mobile|Mozilla Firefox]] keyboard shortcuts
|-
! Keyboard Shortcut
! class=&quot;unsortable&quot; | Description
|-
| Ctrl+Up arrow 
| Zoom in
|-
| Ctrl+Down arrow
| Zoom out
|-
| Volume Keys
| Zoom In/Out
|-
| Ctrl+L
| Go to Location(/Awesome) Bar
|-
| Ctrl+Left arrow (not in input fields!) or Backspace
| Back one page
|-
| Ctrl+Right arrow (not in input fields!) or Shift+Backspace
| Forward one page
|-
| Input fields: Ctrl+Left arrow
| Jump to the previous word
|-
| Input fields: Ctrl+Right arrow
| Jump to the next word
|-
| Ctrl+W
| Close tab
|-
| Ctrl+Tap on link
| Open link in new tab
|-
|Ctrl+T
|New tab
|}

== Xournal ==

{| class=&quot;wikitable sortable&quot;
|+ [http://maemo.org/packages/view/xournal/ Xournal] Application for note taking and PDF annotation shortcuts
|-
! Keyboard Shortcut
! class=&quot;unsortable&quot; | Description
|-
| q
| Quit
|-
| t
| Toggles visibility of the toolbar
|-
| s
| Save
|-
| Ctrl + n
| New
|-
| Ctrl + O
| Zoom out
|-
| i
| Zoom in
|-
| u or Ctrl + z
| Undo
|-
| r or Ctrl + y
| Redo
|-
| f
| Toggle Fullscreen
|-
| Volume up/down
| Zoom in/out
|-
|-
| Volume up/down with &quot;volume_keys_bind_thickness&quot; set to 1
| Increase/Decrease Pen Thickness
|-
| Up/Down/Right/Left
| Move up/down/right/left
|-
| Ctrl + Up/Down/Right/Left
| Move up/down/right/left fast
|-
|}

== Dashboard (aka TaskManager) ==
(only with MHD /CSSU!)

Use leftmost part of the keyboard as a grid to switch to the corresponding window. Use Shift or Fn modifier with these keys to close windows.

see [[User:Joerg_rw/tools]]

[[Category:N900]]
[[Category:Users]]</text>
    </revision>
  </page>
  <page>
    <title>N900 shortcuts and gestures</title>
    <id>3077</id>
    <revision>
      <id>49488</id>
      <timestamp>2012-09-07T20:25:03Z</timestamp>
      <contributor>
        <username>degle</username>
        <id>5421</id>
      </contributor>
      <comment>/* File Manager Shortcuts */</comment>
      <text xml:space="preserve">== General shortcuts ==

{| class=&quot;wikitable sortable&quot;
|+ General keyboard shortcuts
|-
! Keyboard Shortcut
! class=&quot;unsortable&quot; | Description
|-
| Ctrl + C 
| Copy text
|-
| Ctrl + V 
| Paste text
|-
| Ctrl + X
| Cut text
|-
| Ctrl + A
| Select all
|-
| Ctrl + O
| Open 
|-
| Ctrl + N
| New item
|-
| Ctrl + S
| Save 
|-
| Ctrl + Z
| Undo 
|-
| Ctrl + Y
| Redo 
|-
| Ctrl + F
| Find/Search Bar 
|-
| Ctrl + Right arrow
| Move the insertion point to the end of the word
|-
| Ctrl + Left arrow
| Move the insertion point to the beginning of the word
|-
| Fn + Ctrl
| Symbols and characters.
&lt;br /&gt;
Symbols on the third row are entered by pressing the symbol followed by the 'Space' key, or by pressing the symbol followed by the letter to accent, or add a diacritical mark to.
&lt;br /&gt;
The diacritical marks on the third row are: ` (accent grave), ΄ (accent acute), ^ (circumflex), ~ (tilde), ¨ (diaeresis), ° (degree sign), ˇ (caron)
&lt;br /&gt;
For example, press ΄ and E to enter an accented é.
|-
| Ctrl + Backspace
| Task Manager
|-
| Shift + Backspace
| Delete character. Works in Notes App, entering URLs in Browser. Does not work in Abiword.
|-
| Ctrl + Shift + P
| Takes a screenshot. The PNG image file is saved in &lt;code&gt;/home/user/MyDocs/.images/Screenshots/&lt;/code&gt; with a timestamp in the filename.
|-
| Ctrl + Shift + X
| Starts [[terminal|Xterm]]
|-
| Ctrl + Space
| Switch between Input languages (Dual Dictionaries)
|-
| Double-Press Power Button
| Locks device
|-
| Double-Press Shift
| Caps lock on
|-
| Double-Press Fn
| Locks Fn
|-
| Press and hold a key
| Same symbol as Fn + Key comes up
|-
| A-Z
| Start typing the name of a person to start Contacts App (Desktop Only)
|-
| Fn + &lt;number&gt;
| Type any number to start Phone App (Desktop Only)
|-
| Shift + Arrow Keys
| Select Text
|-
| Volume Keys
| Zoom In/Out or Volume Level, depending on App
|}

== Conversations ==

* Tap and hold on a text message: You get the option to call the person
* Swipe-from-left (as in browser) allows selecting and copying of message text
* Start entering a string to filter for messages written by a contact with a name including the input string

== Calendar ==

* Start entering a string to enter a new calendar item. This works in every calendar view.

== File Manager Shortcuts ==

{| class=&quot;wikitable sortable&quot;
|+ File Manager keyboard shortcuts
|-
! Keyboard Shortcut
! class=&quot;unsortable&quot; | Description
|-
| Ctrl + Fn + C
| Selects all files and folders under Copy/Move/Delete/Share mode, when it's already manually selected at least one file or folder
|-
| Ctrl + Shift + A
| Deselects all files and folders under Copy/Move/Delete/Share mode
|}

== General gestures ==

* Long press on Task Switch icon: Brings you back to desktop
* When getting a incoming call, turn over the device so the screen faces down towards the table surface to silence an incoming call
* When alarm rings, turn over the device so the screen faces down towards the table surface to snooze the alarm
* Phone App drop down menu, &quot;Turning Control&quot; allows you to set orientation, but also set it to launch the phone app when you turn the device to portrait. Seems to only work from the desktop.
* Using the stylus, double tap to highlight a word or triple tap to highlight all words
* In a sub-view of an application (e.g. Email -&gt; Account -&gt; Inbox) tapping and holding the Back arrow button (in the upper right corner of the screen) switches to the main view of that application [http://my-maemo.com/faq/showquestion.php?faq=5&amp;fldAuto=7]

== Xterm Shortcuts ==

* Copy &amp; Paste: Press the Selection toggle button (Arrow to left of Ctrl on the keybar), highlight the text with stylus or finger, tap Xterm menu bar, select 'Copy'. To paste text, tap menu bar and select 'Paste'. 
* The Xterm keybar can be edited to add more symbols. More info: [http://talk.maemo.org/showthread.php?t=34926 Keybar for Xterm]

{| class=&quot;wikitable sortable&quot;
|+ [[Terminal]] keyboard shortcuts
|-
! Keyboard Shortcut
! class=&quot;unsortable&quot; | Description
|-
| Ctrl + I
| Autocomplete Filename (pressing tab does this too)
|-
| Ctrl + A
| Move cursor to beginning of line
|-
| Ctrl + E
| Move cursor to end of line
|-
| Ctrl + L
| Clear screen
|-
| Ctrl + W
| Delete the last word
|-
| Ctrl + K
| Delete everything after cursor
|-
| Ctrl + U
| Delete everything before cursor
|-
| Ctrl + D
| Exit
|-
| Volume Keys
| Change font size
|}

== Web browser Shortcuts ==

* Full-Screen mode: Enter a URL directly by typing on the keyboard

{| class=&quot;wikitable sortable&quot;
|+ [[microB|Web browser]] keyboard shortcuts
|-
! Keyboard Shortcut
! class=&quot;unsortable&quot; | Description
|-
| Ctrl + N
| Open a new window
|-
| Ctrl + R
| Reload the current page
|-
| Ctrl + B
| Open a bookmark
|-
| Ctrl + D
| Add a bookmark
|-
| Ctrl + Right Arrow
|Move cursor to next text-input box. Cursor must be in an input box to begin with
|-
|Ctrl + Left Arrow
| Move cursor to previous text-input box. Cursor must be in an input box to begin with
|-
| Ctrl + Shift + I
| Reset zoom to normal or Turn on page reflow for any zoom level
|-
| Ctrl + Shift + O
| Turns on/off Portrait mode (Requires keyboard closed to work) ''**Incomplete Feature**'' (prior to PR 1.2)
|-
| Backspace
| Back
|-
| Shift + Backspace 
| Forward (absent in PR 1.2)
|-
| Space
| Page Down
|-
| Shift + Space
| Page Up
|-
| Arrows
| Move around page
|-
| Shift + Cursor Up/Down
| Top/Bottom of page (PR1.2)
|}

== Web Browser Gestures ==

{| class=&quot;wikitable sortable&quot;
|+ Web browser gestures
|-
! Gesture
! Description
|-
| Double tap text/image
| Zoom in to fit.
|-
| Double tap text/image (when already zoomed in on the same element) 
| Zoom out to standard zoom.
|-
| Clockwise circular inward motion
| Zoom in
|-
| Counter-clockwise circular outward motion
| Zoom out
|-
| Swipe finger from the right of the screen (outside of screen) towards left (into the screen), on horizontal view
| Browser history (PR 1.2: also through long-press on on-screen back button)
|-
| Swipe finger from the left of the screen (outside of screen), towards right (into the screen)
| Hover mode.
An arrow is displayed on the left. Clicking the arrow creates a pointer that can be used as a mouse to select text. Deactivate by clicking the arrow on the left. 
A quick hover can also be performed by swiping-and-holding finger on screen. This keeps the pointer visible until the finger is lifted. Also, pressing space performs a button click while on &quot;quick hover&quot;. This can be handy if you just need to access a mouse-hover menu or such.
When in &quot;quick hover&quot; mode (i.e. swipe from left and maintain contact with screen), the shift-key has the same effect as 'left-click' from a mouse on a desktop: it allows you to click on links and perform drag 'n' drop operations. 
|}

== E-mail client ==
 
{| class=&quot;wikitable sortable&quot;
|+ E-mail client keyboard shortcuts
|-
! Keyboard Shortcut
! class=&quot;unsortable&quot; | Description
|-
| Ctrl + Enter
| Send a message
|-
| Ctrl + R
| Reply to a message
|-
| Shift + Hover over text
| Highlight (select) portions of text for copying (Ctrl+C) when viewing email - PR1.2. (Still not perfect - see [https://bugs.maemo.org/show_bug.cgi?id=5033 bug 5033]).  A workaround is to Reply or Forward the email, then in edit mode, use Arrow keys to move around, Shift to select text and Ctrl+C to copy.
|-
| Start entering a string in a list view
| Filter for mails written by a contact with a name including the input string or a subject including input string
|}

== RSS Reader ==

{| class=&quot;wikitable sortable&quot;
|+ RSS reader keyboard shortcuts
|-
! Keyboard Shortcut
! class=&quot;unsortable&quot; | Description
|-
| Ctrl + R 
| Refresh the feed
|}

== Evince PDF Reader ==

{| class=&quot;wikitable sortable&quot;
|+ [http://maemo.org/packages/view/evince/ Evince] PDF reader keyboard shortcuts
|-
! Keyboard Shortcut
! class=&quot;unsortable&quot; | Description
|-
| Ctrl + Enter
| Toggle full screen mode
|-
| Ctrl + F 
| Search (search field remains open till app closed)
|-
| Ctrl + Z
| Toggle side panel
|-
| Ctrl + Space
| Toggle &quot;special mode&quot;
|-
| Ctrl + Comma
| Toggle &quot;edit mode&quot; (copy text)
|-
| Volume up/down (normal mode)
| Zoom in/out
|-
| Volume up/down (special mode)
| next/previous page
|-
| Shift + Enter
| Properties
|-
| Ctrl + Down
| Quick Page Down
|-
| Ctrl + Up
| Quick Page Up
|-
| Fn + Enter
| Menu
|-
| +
| Zoom In
|-
| -
| Zoom Out
|}

In fullscreen mode, with special mode off, tapping the top (bottom) of the screen pages up (down).

== Mozilla Firefox (formerly known as fennec) ==

{| class=&quot;wikitable sortable&quot;
|+ [[Firefox mobile|Mozilla Firefox]] keyboard shortcuts
|-
! Keyboard Shortcut
! class=&quot;unsortable&quot; | Description
|-
| Ctrl+Up arrow 
| Zoom in
|-
| Ctrl+Down arrow
| Zoom out
|-
| Volume Keys
| Zoom In/Out
|-
| Ctrl+L
| Go to Location(/Awesome) Bar
|-
| Ctrl+Left arrow (not in input fields!) or Backspace
| Back one page
|-
| Ctrl+Right arrow (not in input fields!) or Shift+Backspace
| Forward one page
|-
| Input fields: Ctrl+Left arrow
| Jump to the previous word
|-
| Input fields: Ctrl+Right arrow
| Jump to the next word
|-
| Ctrl+W
| Close tab
|-
| Ctrl+Tap on link
| Open link in new tab
|-
|Ctrl+T
|New tab
|}

== Xournal ==

{| class=&quot;wikitable sortable&quot;
|+ [http://maemo.org/packages/view/xournal/ Xournal] Application for note taking and PDF annotation shortcuts
|-
! Keyboard Shortcut
! class=&quot;unsortable&quot; | Description
|-
| q
| Quit
|-
| t
| Toggles visibility of the toolbar
|-
| s
| Save
|-
| Ctrl + n
| New
|-
| Ctrl + O
| Zoom out
|-
| i
| Zoom in
|-
| u or Ctrl + z
| Undo
|-
| r or Ctrl + y
| Redo
|-
| f
| Toggle Fullscreen
|-
| Volume up/down
| Zoom in/out
|-
|-
| Volume up/down with &quot;volume_keys_bind_thickness&quot; set to 1
| Increase/Decrease Pen Thickness
|-
| Up/Down/Right/Left
| Move up/down/right/left
|-
| Ctrl + Up/Down/Right/Left
| Move up/down/right/left fast
|-
|}

== Dashboard (aka TaskManager) ==
(only with MHD /CSSU!)

Use leftmost part of the keyboard as a grid to switch to the corresponding window. Use Shift or Fn modifier with these keys to close windows.

see [[User:Joerg_rw/tools]]

[[Category:N900]]
[[Category:Users]]</text>
    </revision>
  </page>
  <page>
    <title>N900 software power management</title>
    <id>4375</id>
    <revision>
      <id>46287</id>
      <timestamp>2012-01-10T04:00:00Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 46286 by [[Special:Contributions/86.9.255.155|86.9.255.155]] ([[User talk:86.9.255.155|Talk]]) MAN page!</comment>
      <text xml:space="preserve">This page may be useful to application developers, as well as those interested in reducing power usage of software by configuring it correctly.

Also refer to http://www.lesswatts.org/projects/applications-power-management/

==Why software uses power==

Software should use power to do what the user wants in the most battery efficient way, without letting the battery efficiency get in the way unless it's unavoidable.

For example, it might be nice to always keep the backlight on but to get more than a few hours battery life the compromise of blanking the screen when inactive and on battery is usually made.

===Direct Use===

Direct power use is quite simple. The intended function of the application uses power. For example, 'flashlight'. This application turns on the [[N900 Hardware Flash Torch|LED Flash]] so the user can see.

Once it is active, it needs no CPU, and the screen can be blanked. Almost all of the battery usage in this mode is to cause the desired effect. 'Flashlight' as an application could be viewed as 95% efficient - only 5% or so of the battery is used for stuff other than keeping the flash lit.

===Indirect Use===

Indirect is when there is no direct hardware way to perform an action, and some part of the system has to be made to do this without the user explicitly turning it on. For example, a task-list application might want to alert the user if they get within a certain distance of a task, so they could consider doing it. So, the application needs some means to get a notion of location. For example, it could run the GPS, or scan wifi networks in range.

The user doesn't know or care about how the application does it, but how it is done may have a significant effect on battery life.

===Pathological===

The application chooses - or the system software only permits - an inefficient way to perform a task.

For example, an alarm application that after it has been told to beep after 12 hours, turns on the audio system immediately to make that beep, then checks every second to see if the 12 hours is up yet.

==Details of each case, with examples==

===Direct===

===Indirect===

===Pathological===

====Avoidable====

* Not properly becoming idle when the screen is locked.
* Leaving GPS on when screen is locked, when it does not aid the application. (for example, if the application gets a GPS fix, displays location related data, and does not turn off the GPS, even when the screen is locked).
* Keeping audio active when idle. Pulseaudio can use a large amount of power in some cases, playing 'silence'.
* Improper use of timers. If you need to do something every second to update the display, don't do it when the screen is locked, or your window is hidden.
** If you need to update internal state, and you normally do this every time you update the window, consider carefully how infrequently you can do this when the user is not looking at the display.
* Listening to events that are irrelevant. When you got a mainloop with a central wait like e.g pause() (2), then you should not create a situation where irrelevant events cause signals sent to the waiting process and cause &quot;active discarding&quot; of the signal. Generally whenever there's a test in a signal handler subroutine that discards certain classes of signalled events, you should check if there's no way to disable the signals from being sent to your process at all. (Example: a widget that doesn't react to any touchscreen events is maybe better off not to receive any X events at all. Especially applicable if this property not to care about touchscreen events is just temporary - don't make the process use CPU time just to decide it's been an event that doesn't matter)

====By Design====

====Unavoidable====

==User Training==

User training is very important, in some ways more important than the rest of this guide. In some cases, there is no way for the user to avoid battery use. They need to see - they turn on 'flashlight'. In others, minor changes to their behaviour, that might even make their experience better, may greatly change battery life.

For example, when listening to audio, if the user knows that instead of streaming programs from their local radio station over 3G, both FM radio or  downloading a podcast over wifi would use a tiny fraction of the power, they can make that choice.

==Measuring power usage==

===Tools===

==Power Measurement==

===What is power?===

The battery stores an amount of energy enough to lift the phone around 10 km in the air. Power is the rate of use of that energy. The battery is charged or discharged by electrical current flowing into or out of it.

Current*Battery voltage = power.

The below tools directly measure electrical current usage by the phone. They should be run with the device unplugged from USB. Battery capacity is measured in Amp-Hours. The BL-5J in the N900 has a capacity of 1.4 Ah. It can provide 1 A for a little over an hour, but it's very hard to get it to use that much. If the current drops, the time rises.

For example, in standby with wifi and phone enabled but idle, the current usage is around .006 A, leading to a standby life of around 10 days. (1.4 Ah/.006 A = 220 h = 10 days. 0.006 A is a cumbersome figure, so the unit 'Milliamp' - mA - 1/1000th of an amp is used. 6 mA when idle is great, but it is easy if everything does not go right to use lots more than this when idle. For example, if the CPU is constantly active, it will use over 100 mA - draining the battery in around 12 hours.

==Debugging==

If the wireless router, and the N900 are setup correctly, then wifi is a very useful aid to debugging. The [http://maemo.org/packages/view/openssh/ ssh package]] installable from extras allows you to login to the mobile, and run software to debug power usage, with very little additional consumption.

The package [http://maemo.org/packages/package_instance/view/fremantle_sdk-tools_free_armel/screen/4.0.3-0.3osso4+0m5/ screen] allows you to run command line programs that would normally output lots to screen, without causing any wifi traffic (or consuming any power) when you are not looking at them.

===Powerscript===

The below is a simple script to read the bq27200 battery meter, and output instantanous current, as well as wakeups/second. It outputs once per 5 seconds a summary of the activity in the preceding period. Install i2c-tools from extras-devel, or the power-kernel from extras.

Please note the warning, experimenting with the tools in this package may cause hardware damage. Know what the [[N900 Hardware Bus I2C|I2C]] bus and device you are accessing is, before making any changes to the below.

&lt;source lang=&quot;c&quot;&gt;
#!/bin/sh
modprobe -q bq27x00_battery

if [[ -e /sys/class/power_supply/bq27200-0/current_now ]]
then
  current_read='cat /sys/class/power_supply/bq27200-0/current_now'
  echo Using kernel battery driver to read current.
else
  if  command -v i2cget &gt;/dev/null
  then
    current_read='i2cget -y 2 0x55 0x14 w'
    echo &quot;Using I2C to read charge meter directly&quot;
  else
    echo &quot;Cannot find a way to read the charge meter.&quot;
    echo &quot;Either i2ctools from extras-devel must be installed, or the power kernel with the bq27x00_battery module which normally accompanies it.&quot;
    echo &quot;Exiting.&quot;
    exit
  fi
fi
#                                      Reset timer stats.
echo 0 &gt;/proc/timer_stats
while true        #                    Loop while printing stats
do
  echo 1 &gt;/proc/timer_stats   #          Start gathering stats
  sleep 5                     #          Sleep 5s
  echo 0 &gt;/proc/timer_stats   #          Finish stats.
#                                        Print output, assuming sense resistor is 22 milliohms.
  echo `date` $((`$current_read` * 3570 / 22 / 1000))mA `tail -1 /proc/timer_stats`
done
&lt;/source&gt;

The output of the above is quite simple. The below is the result of sshing into the N900, and running the script.

 ./powermeter 
 Sat Aug 7 21:34:29 BST 2010 25mA 27 total events, 5.367 events/sec
 Sat Aug 7 21:34:34 BST 2010 14mA 29 total events, 5.780 events/sec
 Sat Aug 7 21:34:39 BST 2010 15mA 38 total events, 7.557 events/sec
 Sat Aug 7 21:34:44 BST 2010 16mA 25 total events, 4.987 events/sec
 ...

This shows that immediately after starting, the script measured over the first 5 s (actually for the 5s window that ended before script started) a power consumption of 25 mA. This will discharge in one hour the battery by 25 milliamp-hours. It has a total capacity of around 1200 mAh - so will last about 1200 mAh/25 mA = 75 hours (roughly).

Wifi however uses a significant amount of power. By comparison, this is the result when redirecting the output to a file.

 Sat Aug 7 21:34:56 BST 2010 66mA 30 total events, 5.983 events/sec
 Sat Aug 7 21:35:01 BST 2010 6mA 13 total events, 2.592 events/sec
 Sat Aug 7 21:35:06 BST 2010 6mA 27 total events, 5.382 events/sec
 ...

Again, there is an initial burst of current consumption, but this time it levels out to 6 mA - or around 200 hours. What does the rest of the line mean? It's simply a very abbreviated output as provided by [[#Powertop|powertop]].

==Analysis tools==

If you've found that the system is using too much power when an application is running or idle, the tools below help to diagnose why.

===Powertop===

The output of powertop, when run as root, is shown below, with some comments. Much of the output is probably not directly useful for you.
&lt;pre&gt;
 Powertop 1.13.3
 status: Unknown job: pmtrackerdaemon
 Sleeping for 11 seconds before sampling
 Collecting data for 30 seconds
 Sample interval was 00m 30s 18921us
&lt;/pre&gt;
Initial block, with normal error.

&lt;pre&gt;
C#      | Ratio  | Avg/dura | Frequency | Ratio
--------+--------+----------+-----------+--------+
     C0 |   0.3% |          |   600 MHz |   0.0% |
     C1 |   0.0% |    0.2ms |   550 MHz |   0.0% |
     C2 |   0.4% |    4.7ms |   500 MHz |   0.0% |
     C3 |   4.5% |  134.6ms |   250 MHz | 100.0% |
     C4 |  94.8% | 2032.8ms | 
&lt;/pre&gt;

During this period, the CPU was active 0.3% of the time (in the C0 state). Of this 0.3% of the time, 100% of it - so 0.3% total - was spent at 250 MHz. It spent very little time in the C1 through C3 states, which are increasing depths of sleep, and the majority of the time (94% of the 30s - or about 28s) in the C4 state  which is the deepest state that uses least power. The Average duration is how long it typically spent in each state. In this case the C4 duration indicates that it's spending typically over 2 seconds asleep at a time - this is the most efficient power state.

If you are testing an application, and when idle you get numbers close to these, then battery life is unlikely to be affected by the application. (though there may be ways to make it use power when idle that you've missed).

&lt;pre&gt;
IRQ#    | Activity   | Type           | Name
--------+------------+----------------+---------------------------
     56 |        129 |           INTC | i2c_omap
     12 |         59 |           INTC | DMA
     37 |         48 |           INTC | gp
     11 |         39 |           INTC | prcm
     57 |         28 |           INTC | i2c_omap
    202 |          3 |           GPIO | wl1251
&lt;/pre&gt;

This shows how many interrupts occurred in the period. Most of these are not influenced directly by user software. The exception may be wl1251 - this is the wireless card.

&lt;pre&gt;
PID#    | Activity   | Name           | Function Entry (Expire)
--------+------------+----------------+---------------------------
      0 |         20 |  &lt;kernel core&gt; | tick_nohz_restart_sched_tick (tick_sched_timer)
     37 |         14D|            awk | cpufreq_governor_dbs (delayed_work_timer_fn)
      0 |         12 |  &lt;kernel core&gt; | hrtimer_start (tick_sched_timer)
    753 |          7 |      bme_RX-51 | sys_timer_settime (posix_timer_fn)
      0 |          6 |  &lt;kernel core&gt; | queue_delayed_work (delayed_work_timer_fn)
    470 |          3 |         wl12xx | schedule_timeout (process_timeout)
(30 lines deleted)
&lt;/pre&gt;

This is one important bit. It lists process ID (0 is internal kernel), how many times in the 30 s it was woken, and what the name of the system waking it up was, as well as what timer ran out.

The 'awk' here is a [https://bugs.maemo.org/show_bug.cgi?id=11091 a kernel bug], it should read '&lt;kernel core&gt;' as this is really the kernel checking if it needs to change CPU speeds.

This shows the only user process is bme_RX-51 - this is [[N900 Software BME|BME]] - the battery managment entity - which wakes every few seconds to monitor the battery.

&lt;pre&gt;
Power domain activity breakdown
Domain  | % of time spent in states
--------+---------+---------+---------+---------+----------
usbhost |OFF: 100%|RET:   0%|INA:   0%| ON:   0%| now:(OFF)
    sgx |OFF: 100%|RET:   0%|INA:   0%| ON:   0%| now:(OFF)
    per |OFF:  99%|RET:   0%|INA:   0%| ON:   0%| now:(ON)
    dss |OFF: 100%|RET:   0%|INA:   0%| ON:   0%| now:(OFF)
    cam |OFF: 100%|RET:   0%|INA:   0%| ON:   0%| now:(OFF)
   core |OFF:  94%|RET:   4%|INA:   0%| ON:   0%| now:(ON)
   neon |OFF:  94%|RET:   4%|INA:   0%| ON:   0%| now:(ON)
    mpu |OFF:  94%|RET:   4%|INA:   0%| ON:   0%| now:(ON)
   iva2 |OFF: 100%|RET:   0%|INA:   0%| ON:   0%| now:(OFF)
&lt;/pre&gt;

This shows how often various parts of the chip were switched on/off - this will normally not be useful.

&lt;pre&gt;
Clock activity breakdown at end of period
Domain  | Active clocks
--------+---------------+---------------+------------------
   core |          SDRC | HSOTGUSB_IDLE |      OMAPCTRL 
        |     MAILBOXES |
   wkup |          GPT1 |       32KSYNC |         GPIO1 
        |          WDT1 |
  ckgen |          CORE |          PERI |           96M 
        |           48M |           12M |           54M 
        |      EMU_CORE |
    per |         GPIO2 |         GPIO3 |         GPIO4 
        |         GPIO5 |         GPIO6 |
&lt;/pre&gt;

This is also not usually useful.

 Total wakeups   394,  13.1/s | IRQ  306,  10.2/s | Timers   88,   2.9/s
 HW wakeups       39,   1.3/s |     Real gp_timers expired   48,   1.6/s

===Strace===

The utility strace can be [http://maemo.org/packages/package_instance/view/fremantle_sdk-tools_free_armel/strace/4.5.18-1.1+0m5/ downloaded from the sdk/tools repository] using 

 apt-get install strace

strace shows what system calls the process is making. [http://linux.die.net/man/1/strace The manpage] has more information.

The most basic usage is:
 strace ls
[[Image:strace.png]]

Though you can also attach to a running process - say process 833.

 strace -p 833

===Htop===

[http://maemo.org/packages/view/htop/ Htop] is a much more flexible tool than the installed version of top.

It is in extras, and can be installed simply from the command line by issuing the command

 apt-get install htop

Full documentation can be found [http://htop.sourceforge.net/ at the htop project pages on sourceforge] (in case you wonder: the F(n)-keys can get typed on N900 as ESC-&lt;n&gt;, so ESC + &quot;1&quot; for F1)

[[image:htop.png]]

[[Category:N900]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>N950</title>
    <id>4907</id>
    <revision>
      <id>44149</id>
      <timestamp>2011-06-24T06:10:36Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <comment>Redirecting to [[Nokia N950]]</comment>
      <text xml:space="preserve">#REDIRECT [[Nokia N950]]</text>
    </revision>
  </page>
  <page>
    <title>N950/Aegis-notes</title>
    <id>4958</id>
    <revision>
      <id>44771</id>
      <timestamp>2011-08-04T10:53:42Z</timestamp>
      <contributor>
        <username>nin101</username>
        <id>4525</id>
      </contributor>
      <minor/>
      <comment>Questions are now bold.</comment>
      <text xml:space="preserve">Aegis is a security framework that differs significantly from normal Unix, though sharing ideas from SELinux.

There is an apparent lack of documentation on what the security framework is intended to address, and how it is intended to be configured.

Some of these questions may be based on misunderstandings, or bugs in the image available to developers.

There are three broad classes of issues it raises to address.

==End Users==
'''Q: What limitations does it pose on software that developers can write for users for the N9. For example, if the developer wants to compile a new kernel with more iptables modules available, or to expose more hardware features, what are the implications?'''

A: Use open mode with own kernel image, just like it happened in case of the N900 device.

'''Q: Can Aegis run at all in this environment? What are the implications if Aegis cannot run - what stops working? Is it just (for example) Angry Birds, or does this include Maps, and other software.'''

A: Aegis can run just fine with own kernel image on the userspace side as well. You can still use it with own kernel image to a certain extent. There are some aegis-validator difference for sure, but that does not make these applications non-working.

==Developers==
While Aegis is a powerful platform for security, it raises issues for lower-level developers trying to understand the device, and trying to prototype code.

'''For example, under what conditions does it lock down the platform, requiring a reflash, as mentioned [http://forum.meego.com/showpost.php?p=25529&amp;postcount=94 in this post on TMO].'''

A: I cannot personally reproduce this issue. I have never been able to do that, any hint ? On the other hand, that command is not well-thought. It shows the lack of architecture understading as well. Even if I cannot cause any &quot;damage&quot; with that command on my developer device, it should not be used like that.

In the absence of documentation on many of the closed components, 'poking around' can be a valuable method of exposing functionality of the closed parts of software. The interfaces then found can be integrated more normally into applications.

'''Q: The lack of a way to turn aegis truly off, even if this requires a reflash to turn it back on impedes this. Some development work - for example - work on making USB host available on the device - is made considerably harder or impossible. '''

A: Same question as above with the same answer: Use open mode (custom kernel, like  in case of N900)

==End of Life/Meego==

At some point Nokia will stop signing packages.
Exactly when this might be is hard to predict with the changing mobile space.
It might be in 2025, after Harmattan derived phones have taken over the marketplace, it might be 2012, after windows phone is a roaring success for Nokia.

At this point - what happens?

Without a security system, devices have no clear end date.
They may continue to work well for years, with a diminishing pool of developers and users.

With a security system - one day no development can be done.

Part of this is addressed by the earlier questions about 'can I run another kernel'.

A: Yeah, well the same question again. Yes, you can use open mode with custom image as it happened with N900.</text>
    </revision>
  </page>
  <page>
    <title>N9QTweak</title>
    <id>5224</id>
    <revision>
      <id>50613</id>
      <timestamp>2012-11-03T05:58:46Z</timestamp>
      <contributor>
        <username>thedead1440</username>
        <id>5241</id>
      </contributor>
      <text xml:space="preserve">'''For anything not covered here please visit the official [http://talk.maemo.org/showthread.php?t=80600 N9QTweak thread]'''


== Introduction ==
N9QTweak by '''[http://talk.maemo.org/member.php?u=30535 Schturman]''' is a collection of tweaks and settings for your N9/50 device. With this app users no longer need to worry about applying various tweaks manually with added complications.



== Installation ==
1) Download the .deb file from the [http://talk.maemo.org/showthread.php?t=80600 TMO thread] 

2) Transfer it to your phone and tap on it to install

3) A new icon will be created on the Homescreen at the end of successful installation. Clicking it will run the application.



=== Opening N9QTweak for the first time ever ===


Version v9.1.1 onwards follow these instructions:


1) Ensure you are connected to the Internet


2) A download menu for the PDF instructions file is displayed following which your chosen language's ''(English/Russian)'' PDF file is downloaded and saved to '''/home/user/MyDocs/Documents/N9_QuickTweak_LANGUAGE_VERSION.pdf'''


3) You are now set to use N9QTweak!


4) If you are unable to be connected to the Internet, the system will save a PDF file to '''/home/user/MyDocs/Documents/''' with links for you to manually download the PDF instructions file.


'''NOTE:''' If you are unable to download the PDF file(s) even if connected to the Internet, make sure you have enabled background connections. Also try using a different Internet Connection. Alternatively, you may use the links in the other PDF file in /home/user/MyDocs/Documents/ to manually download the full PDF instructions file. Once done, copy the full PDF instructions file to /home/user/MyDocs/Documents and delete the links PDF file. Opening N9QTweak now will not give you the PDF download menu anymore.



The following only applies if you keep getting '''bash not found''' error:


1) Use MeeCatalog from the Store to add from the well-known catalogs list, Harmattan SDK repository


2) In terminal as root type the following:

  apt-get update

  apt-get install bash


3) Now try opening the app again.



== Important Notes Before Running Any Tweaks ==


1) Run &quot;Create Backup&quot; [Tweak K] on first use of the app. This procedure does NOT need to be repeated when you wish to update to a newer version of the app.

2) Updating to a new version DOES NOT require you to run &quot;Restore&quot; from the app to undo any previous tweaks/mods.

3) Installation of new version is the same; just double click the new .deb file from your phone

4) In the event of not having a backup and requiring a clean backup download a [http://dl.dropbox.com/u/17706605/N9QTweakBackup_9.3.8_all.zip CLEAN BACKUP]

5) It is recommended to start with Tweak A first as Tweak A has some similar files to other tweaks which can result in other tweaks being restored too in the event Tweak A is restored if Tweak A was not installed first

6) Multiple tweaks can be appplied at once with one space between the letters before pressing ENTER [e.g. A B D E ... then pressing ENTER]

7) Some tweaks may need a refresh or reboot. You can apply them in the end of your session or in the end of the letters you want to apply at once. A single refresh or reboot will apply all the tweaks that require a refresh or reboot.



== Tweaks Menu ==



=== Tweak A: Speed Up Transitions MODs ===
This Tweak REQUIRES a REFRESH!


1. Full Speed Up Transition MOD: includes Landscape MOD for Home &amp; Lockscreen.


2. Speed Up Transitions with Only Homescreen Landscape MOD


3. Speed Up Transitions with Only Lockscreen Landscape MOD


4. Only Speed Up Transitions - NO Landscape MOD


5. Restore to Default: This will restore your Backup files



=== Tweak B: Landscape MODs ===

This Tweak REQUIRES a REFRESH!


1. Full Landscape MOD (Home &amp; Lockscreen)


2. Only Homescreen Landscape MOD


3. Only Lockscreen Landscape MOD


4. FOUR Sides Rotation for Meegotouch apps


5. THREE Sides Rotation for Meegotouch apps


6. Hide Statusbar for Meegotouch apps


7. Vesuri MOD for Stock Apps Rotation


This option is not recommended for novice users. Kindly read the corresponding [http://talk.maemo.org/showthread.php?t=85425 thread] first before attempting this option!

This option typically applies only the two .deb files you may find in Vesuri's thread. However, you may choose to apply the patch manually by doing the following as ROOT in terminal:
 patch -p0 -i /opt/N9QTweak/Vesuri/libmeegotouch-unlockorientation.patch


You may remove the '''patch''' by doing as ROOT in terminal:
 patch -p0 -R &lt; /opt/N9QTweak/Vesuri/libmeegotouch-unlockorientation.patch


'''NOTE''' before applying:
 This MOD can't be restored to default using option 9 and it is NOT included in Tweak Z!


8. Screen Rotation Sensitivity


9. Restore ALL to Default '''''[Except Vesuri MOD]'''''



=== Tweak C: Changelog ===


Running this tweak will display the changelog for the latest version for the user!



=== Tweak D: Virtual Keyboard (VKB) MODs ===


'''1. Install/Uninstall Additional Virtual Keyboards:''' Choose from English, Hebrew, French, Turkish, Italian, Slovak, Russian &amp; Spanish '''alpha-numeric''' vkb. You can Choose what to install/uninstall. The vkb's will stay normal in Landscape Mode.


'''2. Enlarge Landscape Virtual Keyboard:''' Enlarges the Landscape VKB. Gives an option to activate stretched spacebar for only UK/US English without having to enlarge the VKB. A REBOOT will be required for it to be applied.


'''3. Enable/ Disable extra settings for Swype:''' Adds extra settings for Swype under Time &amp; Language in Settings


'''4. Enable/Disable terminal function keys:''' this will add key F1-F12 to terminal VKB


'''5. Disable/Restore swype info bubbles:''' Bubbles that appear in Swype VKB


'''6. Enable/Disable Better Haptic Feedback:''' Improve your experience with the VKB


'''7. Enable/Disable Harmoji:''' Emoji Keyboards for the n9.


'''8. Enable/Disable keyboard theme:''' Change the look of the keyboard slightly with 28 themes to choose from!



=== Tweak E: Games MODs ===


'''1. Add Save option to Samurai II'''


'''2. Add Save option to Gears'''


'''3. Add Save option to Konas Crate'''


'''4. Add Save option to Roboto'''


'''5. Disable NFC in Angry Birds Magic'''


'''6. Add Mighty Eagle to Angry Birds Classic'''



==== '''Tweak E-7 APKENV project: Android games''' ====


This option allows you to install files from thp's apkenv project as well as creates desktop launchers for games that work currently!


Before running any option in this tweak you need the following files from [http://thp.io/2012/apkenv/ thp's project page]:
 apkenv harmattan
 libc.so
 liblog.so
 libm.so
 libstdc++.so
 libz.so


Place the above files in '''/home/user/MyDocs/Apkenv/Packages/'''


 '''Tweak E-7-1: INSTALL Apkenv'''
 Run this option to activate apkenv only after files mentioned above are placed correctly in the directory as mentioned


 '''Tweak E-7-2: INSTALL Android games'''
 Currently, Angry Birds Space, Angry Birds Seasons, Angry Birds Rio, Angry Birds (2.3.0) &amp; Fruit Ninja work using this option. Place the .apk files in '''/home/user/MyDocs/Apkenv''' and rename them to as follows:
 a. Angry Birds Space -&gt; abspace.apk
 b. Angry Birds Seasons -&gt; abseasons.apk
 c. Angry Birds Rio -&gt; abrio.apk
 d. Angry Birds (2.3.0) -&gt; absurf.apk
 e. Fruit Ninja -&gt; fruitninja.apk
 Only after copying the .apk files and renaming as above apply this option which will create a desktop icon on your homescreen for you to run the games! If you are unable to run the games even after doing the above, it means the .apk file is not compatible and you require another .apk file. You may simply replace the .apk file in the directory without having to run Tweak E-7-2 again! Do also ensure, Tweak E-7-1 is run first correctly for Tweak E-7-2 to work! Games are auto-saved as long as N9QTweak is used to install them via this option!


 '''Tweak E-7-3: UNINSTALL Android games'''
 This will remove the desktop launchers only! You may choose multiple games to be removed by separating their numbers by a space i.e. 1 2 3 etc


 '''Tweak E-7-4: UNINSTALL Apkenv + games'''
 This option will remove the desktop launchers as well as the whole apkenv project from your device! If you wish to install it again, simply run Tweak E-7-1 with proper instructions as above!



=== Tweak F: Lock screen &amp; Low Power Screen (LPS) MODs ===

Read the Explanation after the options for better understanding on how to change the files


'''1. Apply BIGGER Date/Bold Clock and Oplogo with standard size (12x12)'''
 For Oplogo:
 * Create a picture named '''&quot;oplogo.png&quot;''' with dimensions of 120x120px
 * Copy the image to '''/home/user/MyDocs/Pictures'''
 * Apply Tweak F-1 and REFRESH for application


'''2. Apply CUSTOM Clock/Date Color and Oplogo with CUSTOM size'''
 For Oplogo:
 * Create a picture named '''&quot;oplogo.png&quot;''' with dimensions of your choice
 * Copy the image to '''/home/user/MyDocs/Pictures'''
 * Apply Tweak F-2 and it will ask for the dimensions of your logo. For example, a '''140x160px''' logo key in '''14 as the first number and 16 as the second number.'''
 * A '''REFRESH''' will apply the changes


'''3. Apply CUSTOM Clock/Date on Lock &amp; Lowpower Screens'''


'''4. Apply Green Icon for Full Charged Battery'''


'''5. Apply Other Colored Icons to LPS &amp; Statusbard'''


'''6. Transfer your custom Icons for Tweak F-5'''
 * Create new icons and place them in '''/home/user/MyDocs/.newicons'''
 * Apply Tweak F-6 '''(this will override icons in tweak F-5)'''
 * Now Apply Tweak F-5
 * A '''REBOOT''' will apply the changes


'''7. Activate Fullscreen Image for Lockscreen'''
 * Create '''1 or 5''' pictures named '''mywall1.png, mwall2.png, mywall3.png, mywall4.png, mywall5.png''' with dimensions of '''854x854px'''
 * Copy the images to '''/home/user/MyDocs/.wallpapers'''
 * Go to '''Settings-&gt;Wallpaper''' and choose your wallpaper before clicking Done
 * Apply Tweak F-7 and choose the number of picture(s) that you applied from Settings. 
 * Changes appear immediately without a REBOOT!


'''8. Change Outgoing &amp; Incoming Call Icons'''


'''9. Remove Clock/Date from Lockscreen'''


'''10. Restore ALL to Default'''



=== Tweak G: Changing GPS Provider / Adding Traffic to the Drive App ===

'''1. Changing GPS provider''' gives you the option to choose between Nokia &amp; Google.

SuplForced can be changed from &quot;false&quot; to &quot;true&quot; and vice-versa with this tweak too.


'''2. Traffic in Drive App''' allows you to Enable/Disable Traffic + Day/Night/Automatic Mode for Map Colours + Time to Destination in Drive App + Add Mute Button to Speed Warning Menu.


'''3. Change Drive to WAZE:''' Change Drive in '''In Car Home Screen''' to WAZE.



=== Tweak H: Enable ROOT-SSH Access &amp; Root Filebox ===

Allows you to '''acitvate SSH access''' for &quot;ROOT&quot; &amp; &quot;USER&quot; users.

'''Auto-restart SSH''' is added too.

You can use this tweak to '''change &quot;ROOT&quot; &amp; &quot;USER&quot; users' passwords'''.


Lastly, this tweak gives you the option to '''apply or remove root access to the Filebox app'''



=== Tweak I: Add additional IM's (Extraplugins from Store) ===

This tweak adds additional IM providers [including but not limited to '''ICQ/MSN/Yahoo/AOL/Jabber/VK'''] to the N9's Accounts app with system integration. 


A REBOOT is required to apply this tweak!


If you have applied this tweak from versions prior to '''''N9QTweak v8.0''''' you need to do the following in terminal as ROOT:


'''apt-get remove im-providers-additional telepathy-haze libpurple0'''


OR:


From Settings -&gt; Applications -&gt; Manage Applications -&gt; '''Remove im-providers-additional , telepathy-haze &amp; libpurple0'''


If you installed a similar tweak from other sources, the following packages need to be '''REMOVED BEFORE''' applying this tweak:


 aolserviceprovider 
 icqserviceprovider 
 jabberserviceprovider 
 msnserviceprovider 
 odnoklassnikiserviceprovider 
 qipserviceprovider 
 vkserviceprovider 
 yahooserviceprovider 
 im-providers-additional 
 telepathy-haze 
 libpurple0 
 Accmanok


'''You may also use this Tweak to Change/Restore IM Connection Ports!'''



=== Tweak J: Remove/Restore Unnecessary Icons ===

This tweak allows you to remove/restore but '''NOT uninstall'''. Apps that are covered in this tweak are:

# All of the Below
# Facebook
# User Guide
# Twitter
# Ovi Music
# Search
# Camera
# Calculator
# Track &amp; Protect
# Browser
# Skype
# YouTube
# SDK Connectivity
# Operator

You can remove more than one app by entering multiple numbers with a space between them [E.g. 2 4 6 then ENTER].



=== Tweak L: Clean Backup ===


This tweak downloads a clean backup for the user and saves it as /home/user/MyDocs/.N9QTweakBackup/


Run this tweak when you suspect your backup has an issue or when you forgot to create a backup first and need to restore anything.



=== Tweak M: Browser MODs ===


'''Opera tablet''': Add Opera tablet UI to your Opera Mobile app


'''Change User Agent of the Stock Browser [aka Web]''': This tweak requires INCEPTION to be pre-installed. Available options for the User Agent are as follows:

- iOS

- Android

- Revert to Default



=== Tweak N: Restore your favorite Ringtones ===

Put your desired ringtones in '''/home/user/MyDocs/.myringtones'''

Now apply tweak N after which all these ringtones will be copied to '''/usr/share/sounds/ring-tones'''


After this you can change your ringtones in Settings -&gt; Sounds and Vibration -&gt; Ringtone



=== Tweak O: Catch OVI Store Applications ===

Store a .deb file of your apps for easy installation in the future [e.g. after flashing / clearing device]. 

Run this tweak -&gt; Open Ovi Store and Click Download on the App which you would like to store


Once the app is caught, a message will be displayed in N9QTweak to show a successful interception. Your downloaded file is stored in your '''&quot;Downloads&quot;''' folder e.g. /home/user/MyDocs/Downloads/


This tweak comes with a handy option to add an icon to the homescreen for easy catching.


This tweak works on '''MeeCatalog''' and any other sources that install apps on the N9!



=== Tweak P: Add/Remove folder to/from Tracker ===

The advantage of this tweak is to allow you to add or remove folders residing in MyDocs from '''Tracker IgnoredDirectory''' [e.g. you have some explicit material not wanting to appear in gallery or videos but to be opened only by Filebox just put it into a folder and add it to Tracker IgnoredDirectory].

You can backup your settings too so the new tracker settings will be restored if/when you require.



=== Tweak Q: Enlarge Caller ID Avatar ===

'''Enlarge or Restore''' to Default the Caller ID Avatar.

A '''Bigger Avatar''' with square corners can be applied too. 


This Tweak requires a '''REBOOT.'''



=== Tweak R: Conversation MOD ===


'''1. Change Standard Emoticons:''' A New set of emoticons for your viewing pleasure. You also can enlarge original/custom emoticons (ideal size is 27). The enlargement of emoticons requires Inception to be installed prior to using this tweak. 


'''2. Enlarge/Restore Conversation Font Size:''' Choose your prefer size. DON'T use bigger then 32. 


'''3. BLACK Conversations theme with '''Square''' Bubbles:''' Option to install a minimalistic black theme for Conversation/Messaging app.


'''4. BLACK Conversations them with '''Rounded''' Bubbles:''' Option to install a minimalistic black theme for Conversation/Messaging app.


'''5. Restore ALL to Default'''



=== Tweak S: Boost the Playback Volume ===

'''Increase''' the Playback Volume from 66% [default] to 100%. 

'''Warning: This can potentially damage your hardware. The author will not be held responsible for any damage done. Use with caution.'''


This tweak will change '''PreDriv''' setting in '''&quot;alsamixer&quot;''' with this tweak.



=== Tweak T: System UI MODs ===

Two versions of System UI MODs are created by MohammadAG and Coderus.

'''Only ONE''' can be used at a time. '''NO Mixing''' should be done!!!



==== '''1. Unrestricted MT-Toggles''': '''Open Mode or Inception along with N9 PR1.3 is compulsory''' ====

     Two options are available under this main option:
    
     '''1. Coderus toggles:''' You '''CAN'T''' use MohammadAG repo for future updates.

     '''2. MohammadAG toggles:''' You '''CAN''' use MohammadAG repo for future updates.


Features of '''BOTH''' the above toggles:

- Latest Version of Unrestricted System-ui [From MAG]

- Music Controls by MAG: Auto-Hidden; ONLY seen when you play music

- Status Updater by MAG

- Battery Percentage by MAG

- Availability or PresenceX by Coderus

- Hacky-Brightness Applet by Coderus



Toggles in Coderus' Version:

- Bluetooth

- PSM

- Flightmode

- Flashlight

- Cellular-toggle



Toggles in MAG's version:

- Bluetooth

- PSM

- Flightmode

- Flashlight

- Orientation Lock



There is a possibility of getting a '''SAFE MODE''' icon on your status menu after a reboot. DON'T PANIC!!! 

Just click the icon and choose '''&quot;YES&quot;''' which will do a refresh of your status bar and everything will work fine again.

The above non-fatal issue is caused by Status Updater. You might want to Uninstall it to prevent the non-fatal issue.



===== Important Notes w.r.t. MT-Toggles &amp; System UI Extensions =====

Installation of Unrestricted System-UI '''and/or''' MT-Toggles is '''NOT COMPATIBLE''' with System UI Extensions.


To use either while having the other installed, just uninstall the other using the options available.



===== Sub-Options =====

'''1. Password changer for HackyBrightness applet:''' 

At times after a reboot, HackyBrightness will not work with only Standard Brightness applet working. Fix this by running this tweak and re-inserting your &quot;ROOT&quot; password.


'''2. Rearrange status menu plugins:'''

Installation of System UI MODs will mess up the arrangement of all applets. 

This option arranges all your '''INSTALLED APPLETS ONLY'''.

Names of applets must follow as those in the list!


If you require to re-arrange '''ALL APPLETS''' do it manuall in this file: '''/etc/status-menu-items-order.conf'''


'''3. Logout quick status updater:'''

When Quick Status Updater stops working, use this tweak to logout and re-login.




==== '''2. Status Menu Extensions''' ====

This tweak is still in '''BETA''' so tread with caution!


Pre-requisites for using System UI Extensions:

- Removal of Unrestricted System-UI &amp; MT-Toggles, if present



This tweak will add a new entry in Settings -&gt; Applications -&gt; Status Menu Extensions


You can '''Deactivate any toggle by LONG PRESSING'''. 


'''Re-arrange toggles by using a SHORT PRESS.'''



==== 3. CODeRUS Unrestricted System UI ====

A new variation of system-ui similar to unrestricted system-ui but inclusive of all applets from CODeRUS and Status Updater + Music Controls from MAG


Pre-requisites for this tweak:

'''- INCEPTION or OPEN MODE REQUIRED!'''


'''- Removal of all previous versions of System UI from CODeRUS'''



===== Tweak T-3-1 =====


Continue to install CODeRUS Unrestricted System-UI


 '''Option 0: INSTALL CODeRUS System UI'''
 
 '''THIS MUST BE INSTALLED BEFORE CONTINUING!!!'''
 By Default, battery percentage will be placed into the status bar after installing of the system-ui. If you want only the % without the battery icon install '''''Battery percentage''''' from Option 6


 '''Option 1: ALL Applets'''
 
 This option will install '''Tools, Widgets, Brightness bar, Availability Icons, Music Controls, Quick Status Updater and LED Event Notifier.''' If you are using Open Mode method, there is a probability of N9QTweak being forced closed by the system after installation of a few of the applets. Hence, in this case continue installation of the remaining applets manually or as recommended install the applets individually from Options 2-10 instead of choosing this Option.


 '''Option 2: Tools'''
 System Tools are installed. These tools/toggles consist of: '''Bluetooth, NFC, Cellular, WiFi, Background Connections, Flight Mode'''


 '''Option 3: Widgets'''
 System Widgets are installed. These widgets/toggles include: '''2G/3G/Dual Toggle, Orientation, Brightness, USB, PowerSave Mode, Transfers, Flashlight, Blanking, Presence, Reboot, Alarms, ALS.'''
 You can enable or disable these widgets using [http://my-meego.com/software/applications.php?fldAuto=1075&amp;faq=25 GConfik]. 
 Navigate to /desktop/meego/status_menu/widgets/ to do so. Remember to set/unset each applet for changes to apply.


 '''Option 4: Brightness'''
 This adds a brightness bar on the status-menu. The brightness bar is a two type bar whereby the regular brightness can be adjusted or long-pressing it will switch it to &quot;hacky&quot; allowing you to adjust the brightness customly. You can choose your own colour for the bar by using [http://my-meego.com/software/applications.php?fldAuto=1075&amp;faq=25 GConfik]. Navigate to /desktop/meego/status_menu/brightness_slider and choose your own RGB values. For a full list of colours and their RGB values refer to [http://it.wikipedia.org/wiki/Lista_dei_colori their chart]
 You can also use Tweak T-3-3 to do the colour change.


 '''Option 5: Availability'''
 The Availability option in the status menu will be replaced by this option consisting of all your Social services appearing as icons for easy switching between online/offline by tapping the toggle.


 '''Option 6: Battery Percentage'''
 Remove your battery icon and keep only the percentage on the status bar with this option


 '''Option 7: Notifications'''
 Get notifications on your status menu directly. A &quot;Close&quot; button is added for clearing all notifications. The status menu will be scrollable in the event of the notifications extending out of the screen.


 '''Option 8: Music Control'''
 Add Music Controls to the status menu which appear only if music is being played and hide otherwise.


 '''Option 9: Quick-Status-Updater'''
 Add Facebook and Twitter Status buttons on the status menu for quick updating of status.


 '''Option 10: LED Event Notifier'''
 Convert the LED light on the N9 to blink in the event of any notifications like IMs, Messages, Missed Calls, Emails, Wazapp etc. You can control which notification(s) you want from: Settings-&gt; Notifications -&gt; Notifications -&gt; Led notifications -&gt; Settings



===== Tweak T-3-2: Menu Changer =====

Use This Tweak only AFTER installation of Tweak T-3-1 to select the type of your status menu.


 '''Option 1: Standard Menu'''
 The whole status menu is static with NO notifications and NO close button.
 Re-arrange your applets after choosing this option by editing, using a text editor like nano, '''/home/user/.status-menu/items-order.conf'''
 For exact names of applets refer to '''''/usr/share/meegotouch/applicationextensions'''''


 '''Option 2: Menu With Notifications &amp; Close Button'''
 Top of the status menu will remain '''static''' while the bottom becomes '''dynamic'''.
 Re-arrange your applets after choosing this option by editing, using a text editor like nano, '''/home/user/.status-menu/top-order.conf''' and '''/home/user/.status-menu/pannable-order.conf'''
 For exact names of applets refer to '''''/usr/share/meegotouch/applicationextensions'''''


'''NOTE: Use This Tweak only AFTER installation of Tweak T-3-1'''



===== Tweak T-3-3: Change Brightness Colour =====

Use this option to modify the RGB values of the colour of the brightness bar to achieve your own custom colour. For a full list of colours and their RGB values refer to [http://it.wikipedia.org/wiki/Lista_dei_colori thier chart].



===== Tweak T-3-4: Change Hacky-Brightness Colour =====

Use this option to modify the RGB values of the colour of the hacky-brightness bar to achieve your own custom colour. For a full list of colours and their RGB values refer to [http://it.wikipedia.org/wiki/Lista_dei_colori their chart].



===== Tweak T-3-5: Move Notifications Up/Down =====

Self-explanatory!



===== Tweak T-3-6: Double tap on Low-Power Screen =====


 '''Option 1: Double Tap Cancelled'''
 Disable Double-Tapping


 '''Option 2: Double Tap to see Lockscreen ''[DEFAULT]''
 This is the system's default behaviour


 '''Option 3: Double Tap to UNLOCK Phone'''
 Jump straight to your phone without having to unlock the lockscreen!


'''NOTE: Use This Tweak only AFTER installation of Tweak T-3-1'''



===== Tweak T-3-7: Operator Name =====

Hide/Restore Operator Name



===== Tweak T-3-8: Logout from Quick Status Updater =====

Self-Explanatory!



===== Minor issues with Tweak T-3 =====

Bug:
 Alarm works with delay or when it sounds the controls don't appear and auto-snooze after 30seconds of alarm sounding


Work-around:
 Set a test alarm with your lockscreen unlocked. Once it rings, it will auto-snooze after ringing for 30seconds. Now set a new alarm for the time you need it to sound. This work-around must be repeated at EVERY reboot!


Bug:
 Music player opens with a delay of around 25 seconds. There is no current work-around for this bug


Bug:
 There is long delay for the Authroization window to appear using the '''Status Updater.''' There is no current work-around for this bug



=== Tweak U: Zoom in Video Recording &amp; Silent Sounds ===

Add/remove zoom option in Video Recording mode.


Add/restore silent sounds to Photo &amp; Video Camera.


This Tweak Requires a '''REBOOT.'''



=== Tweak W: Homescreen Setting ===



==== '''Tweak W 1-4:''' '''Change/Restore your desktop backgrounds''' ====


   '''Note: Tweak W is not compatible with Home Screen Settings App!!!'''


'''Tweak W-&gt;1: Apply SAME Backgrounds to all 3 screens in Portrait &amp; Landscape'''


Method for using '''2 images'''; '''(one for landscape and one for portrait):'''


- Create 2 pictures named '''&quot;Pdeskbg1.png&quot; of 480x854px''' dimensions &amp; '''&quot;Ldeskbg1.png&quot; of 854x480px''' dimensions

   ''[Pdeskbg1.png would represent the portrait image while Ldeskbg1.png would represent the landscape image]''


- Put the above images in '''/home/user/MyDocs/Pictures/.backgrounds/'''


- In N9QTweak choose option W-&gt;1 [now hit Enter]


- A REBOOT is required for changes to take effect


- You can '''also use this tweak only in portrait mode''' by placing just Pdeskbg1.png in '''/home/user/MyDocs/Pictures/.backgrounds/'''



'''Tweak W-&gt;2: Apply DIFFERENT backgrounds to all 3 screens in Portrait and Landscape'''


Method to achieve the above:


- Create 6 images as follows:

  '''Pdeskbg1.png''' with 480x854px dimensions
  '''Pdeskbg2.png''' with 480x854px dimensions
  '''Pdeskbg3.png''' with 480x854px dimensions
  '''Ldeskbg1.png''' with 854x480px dimensions
  '''Ldeskbg2.png''' with 854x480px dimensions
  '''Ldeskbg3.png''' with 854x480px dimensions


- Put the above images in '''/home/user/MyDocs/Pictures/.backgrounds/'''


- In N9QTweak choose option W-&gt;2 [now hit Enter]


- A REBOOT is required for changes to take effect


- You can '''also use this tweak only in portrait mode''' by placing just Pdeskbg1.png, Pdeskbg2.png and Pdeskbg3.png in /home/user/MyDocs/Pictures/.backgrounds


'''Tweaks W-&gt;3 &amp; W-&gt;4 are simply the repeat of W-&gt;1 &amp; W-&gt;2 without Long &amp; Transparent Notification Bar'''



==== '''Tweak W 5: Only Long &amp; Transparent Notification Bar''' ====

This option changes the notification bar on your lockscreen to a transparent one!



==== '''Tweak W 6: Folder Pop-up Window MODs''' ====



3 options:


'''1) Transparent pop-up window:''' Not totally transparent but more translucent


'''2) Image in pop-up window:''' Your own custom image in the pop-up window


'''3) Transparent &amp; image in pop-up window:''' Your own custom image with a transparent background


For '''Custom Image''' do the following:

  - Create '''folder-bg.png in /home/user/MyDocs/Pictures/.backgrounds/''' 
  - Apply the tweak and REBOOT


'''4) Enlarge pop-up window:''' Enter ONLY numbers if you wish to deviate from default size. Pressing ONLY the Enter key will revert to default size.



==== '''Tweak W 7: Feed-Notification-Multitasking MOD''' ====

'''1. Orange &amp; Blue colors for Feed-Notification'''


'''2. Manually Change Colors for Feed-Notification'''


'''3. Feed-Notification-Multitasking Name Changer'''

Here you can change words “Feeds”, “Notifications” and “Nothing open yet”. 

Also you can change the size/color of “Nothing open yet”.


For using this tweak, you need to edit 2 files. Go to: '''/home/user/MyDocs/.N9QTweakBackup/usr/share/l10n/meegotouch''' and find your files. 

At the end of this files you can see 2 letters, that indicate your system language. 


For example if my phone in English system language, I would require:
 '''home_en.qm'''
 '''notification_en.qm'''

Conversely,  if my system language was French, I would require ''home_fr.qm'' and ''notification_fr.qm'' and so on for your system's language.

Transfer these 2 files to your PC and edit with [http://qt-apps.org/content/show.php/Qt+Linguist+Download?content=89360 QTLinguist] as follows:

 In '''home_XX.qm''': edit lines '''qtn_home_recents_empty''' and '''qtn_home_events_feed_title'''

 In '''notification_XX.qm''': edit line '''qtn_noti_title'''


Transfer these files back to your phone, to: '''/home/user/MyDocs/.notifername''' and apply tweak W, option 7.

You can edit these files whenever you want and then just reapply this tweak again!



'''4. Restore ALL to Default'''


A REFRESH is need for application of the tweak.



==== '''Tweak W 8: Launcher Indicator &amp; Icon Changer''' ====

Choose a '''Spinner or Progress''' indicator while waiting for apps to launch!

You can also change your '''Desktop Icons''' as follows:


Put your custom icons in '''/home/user/MyDocs/.launchericons/''' according to the following folders:
 
 64x64 – for icons located in: ''/usr/share/icons/hicolor/64x64/apps'' (refresh needed)

 80x80 - for icons located in: ''/usr/share/icons/hicolor/80x80/apps'' (refresh needed)

 Icons - for icons located in: ''/usr/share/themes/blanco/meegotouch/icons'' (reboot needed)

 opt - for icons located in: ''/opt/your_app/find_your/icon'' – in this folder you need to create a full path to the icon of your application !!! (refresh needed)


If you are not sure where the desktop icon located, you can check it in: '''/usr/share/applications/NAME_OF_APP.desktop'''


The folder named '''original''' includes the same folders for backup of your original icons if you want. This tweak will '''NOT''' create a backup, you need to do a backup manually. 

Also in folder '''opt''' - you need to create a full path to the icon of your application !!! 


In this [http://talk.maemo.org/showthread.php?t=85769 thread] you can find a some nice icons.


The following command is useful if you wat to replace your icon without REFRESHING your homescren which in turn closes all open apps:

As ROOT:
 sed -i 's/Icon/Icon2/;s/Icon2/Icon/g' /usr/share/applications/*.desktop


All icons on the homesceen will be refreshed WITHOUT closing any apps! Some intermittent lag of a few seconds is to be expected to allow the system to cope with the changes!



==== '''Tweak W 9: Statusbar Background Changer''' ====

A custom image for the Statusbar. Currently, transparent images DO NOT have the required effect.


Method to achieve desired result:

 - Create '''Pstatus.png''' with 480x36px dimensions and '''Lstatus.png''' with 854x36px dimensions in '''/home/user/MyDocs/Pictures/.backgrounds/'''
 - Apply the tweak
 - REBOOT


'''Pstatus.png is for portrait statusbar while Lstatus.png is for landscape. Pstatus.png is sufficient if statusbar is being used ONLY in potrait mode.'''



==== '''Tweak W 10: Restore ONLY Homescreen Backgrounds''' ====

This will restore only your homescreen backgrounds and keep other tweaks from Twaek W intact.



==== '''Tweak W 11: Restore ALL to Default''' ====

This will restore all of Tweak W MODs to Default!



=== Tweak X: Create a .DEB file from an existing installed app ===



'''1. Create a .DEB package:''' Selecting this option will take you to a menu where you can choose from the following:

 '''A: Backup All User Packages''' - Selecting this will back up ALL the packages on your system since you last flashed your phone!


 '''O: Backup a Orig Package''' - This option allows you to backup a single system package


 '''U: Backup a User Package''' - This option allows you to backup any apps that came pre-loaded in your device or any app that you installed from Store, Apps4Meego, MeeCatalog or any other source including non-trusted sources


ALL backed up .DEBs are stored in '''/home/user/MyDocs/BackDeb/'''


'''NOTE:''' You need to enter the exact package name of an app for the above to work! You can get the package name by doing the following in terminal as ROOT:
 
 dpkg -l | grep APP_NAME



'''2. Install ALL Backed-up apps:''' This will restore all apps that you backed-up in /home/user/MyDocs/BackDeb/ using the above options



'''3. Uninstall Package Creator:''' This option uninstalls the creator used to run options 1 and 2 above! Run this only when you don't intend to use Tweak X-1 &amp; Tweak X-2 any further!



=== Tweak Y: Customize the Statusbar Clock &amp; Clock UI ===

'''1. Customize Clock UI:''' 11 options available for custom Clock UI


'''2. Customize Alarm UI:''' Enlarge Alarm UI with this Tweak.


'''3. Customize Statusbar Clock:''' Options to change your statusbar clock to HH:MM | DAY DATE OR HH:MM AM/PM | DAY DATE OR a custom string. Refer to [http://www.linux.about.com/od/commands/l/blcmdl1_date.htm] for custom string details.


'''4. Hide Operator Name:''' Hide/Restore Operator Name from the Statusbar. '''Note: This Tweak will remove Tweak T's Battery Percentage too'''


'''5. Change Color of Operator Name:''' Self-Explanatory!


This tweak requires a Refresh for changes to be effected! You can run a few options concurrently!



=== Tweak AA: Uninstall Original Apps [UNDER TESTING] ===

ONLY to be used by PRO/ADVANCED Users!!! 

Under Testing currently, will replace Tweak QQ in the future.


If tweak QQ has been used before, restore all apps back by using Tweak QQ-4.

If further apps were uninstalled not in Tweak QQ restore them before restoring using QQ-4.


To use Tweak AA, you need to choose whether you are running '''mp-harmattan-001-pr''' or '''mp-harmattan-005-pr'''.


When removing apps, MAKE SURE the mp-harmattan-001/005-pr package is NOT being removed too! This will break your system otherwise!


A typical Twitter uninstallation should look like:

The following packages will be REMOVED

 account-plugin-twitter 
 l10n-app-twitter 
 l10n-app-twittershare 
 libmeegotwitter1 
 twitter 
 twitter-meego 
 twitter-qml 
 webupload-service-twitter

0 upgraded, 0 newly installed, 8 to remove and 0 not upgraded


Again, ENSURE there is NO mp-harmattan-001/005-pr package to be removed too.


If you see the mp-harmattan package being removed too, cancel the removal, restore all apps using this tweak along with a re-installation of mp-harmattan before trying to uninstall an app again.



=== Tweak BB: Display Tweaker ===

'''1. Enable/Disable automatic brightness''' – You can enable or disable automatic brightness. You also have option for tuning of brightness (from 0 to 225), you can use this after disabling auto-brightness. 

WARNING: DON’T put this string to &quot;0&quot;, this will switch off your screen!!!


'''2. Display timeout''' – You can change which timeout you want in Settings &gt; Device &gt; Display


'''3. Screen blanking ON/OFF''' - Enable or disable if screen will go to sleep mode (blanking)



=== Tweak CC: WLAN MODs ===

Activate/Deactivate Adhoc at startup for USA users as well as allowing you to change the WLAN MAC address.



=== Tweak DD: Resize Icon and Text on App Launcher ===

'''1. X-small preset:''' 6 icons in one row


'''2. Small preset:''' 5 icons in one row


'''3. Large preset:''' 3 icons in one row


'''4. Change icon text size and color'''


'''5. Change icon size separately'''


'''6. Reduce the spacing between icons:''' 5 icons in one row with icon size only slightly reduce due to the spacing between icons covering for the difference! '''''HIGHLY RECOMMENDED!'''''


'''7. Reset to Default'''



This Tweak requires a REFRESH to be applied correctly!



=== Tweak EE: INCEPTION Installer ===


1. Install Inception


2. Install aegisctl



=== Tweak FF: N9 QRefresh &amp; N9QT Splash Images ===

Either one of two refresh options can be added to your Homescreen:

'''F for Full Refresh''' - This is full refresh encompassing the statusbar, lockscreen and homescreen.


'''S for Soft Refresh''' - This simply refreshes the statusbar and lockscreen.


'''B for Restart BME''' - This option restarts the battery monitor which is useful when sufferring a sudden battery drop from ~20% to ~4%. A restart of BME will re-calibrate the battery level of the system to a more accurate value.


Another option in the tweak is to '''Change the Splash Image of N9QTweak'''. You can choose a few different colours to do so.



=== Tweak GG: Change Boot Video &amp; Startup Images ===

This tweak consists of two parts; changing boot video and/or the startup images.


'''For Boot Video:''' Create a short video with the name '''bootvideo.mp4''' and place it in '''/home/user/MyDocs/Movies/.Bootvideo''' If the directory isn't present just create it first! 

To apply your new '''Boot Video choose option 1''' from the tweak.


For startup images you need to create 3 images with the following names:

 startup1'''.png'''
 startup2'''.jpg'''
 startup3'''.jpg'''


Take note of the extension difference between images 1 and 2&amp;3. Place these startup images in /home/user/MyDocs/Movies/.Bootvideo and choose option 2 from tweak to apply.


For sample boot videos you can download some from [http://dl.dropbox.com/u/17706605/Bootvideo.zip Schturman's dropbox]



=== Tweak HH: Fix MMS Issue on T-Mobile [USA Users] ===

This tweak will fix the MMS issue for T-Mobile USA Users.



=== Tweak II: Add/Remove Extra Repos ===

It is advisable to know what you are doing before using this tweak! 

The following repos are available for installation:

1) RZR Community Repository

2) Harmattan SDK Repository

3) N9 Repository for N950 users

4) Supertux2 Repository

5) Harmattan Inception Enabled Repository (aka MAG's incepted repo)

6) Remove extra repos



=== Tweak JJ: Change Behaviour of PowerKey ===

You have the power the change the behaviour of the PowerKey for '''both single and double press.'''



=== Tweak KK: Files Tweaker ===


'''1. Add Twitter Sharing:''' Add options for sharing videos via Twitter


'''2. Add Faster Unzip/Unrar/Untar:''' Immediately Unzip/Unrar/Untar downloaded files from Transfers menu. Find extracted files in '''/home/user/MyDocs/meerar/NAME_OF_YOUR_ARCHIVE'''


'''3. Add Custom File Size for Email Attachments:''' Change the attachment size limit from the default 5MB. Just enter the value to change to '''i.e 10 for 10MB'''


'''4. Change Default Photo/Video file name:''' Allows you to tinker the default format of photo/video file name from YYMM to your desired option!


'''5. Add Haptic Feedback to Calculator:''' This will give you a nice touch while using the calculator!


'''6. Remove Album art from Gallery:''' This option will remove all the album art you have from Gallery by hiding them. For this option to work, all your Music needs to be located in '''/home/user/MyDocs/Music/'''


'''7. Smartsearch Priority Changer:''' This option lowers the priority of Smartsearch to help improve battery life.


NOTE: Using this option may cause Search to not find the results you need as well as not allow you to choose custom ringtones from within the Settings applet. You can still select a song and set it as ringtone. You just can't do it from within Settings!


'''8. Scaling Frequency Changer:''' By Default, idle clock speed of the CPU is 300Mhz. This tweak allows you to change it to give a slight speed boost while waking the phone from idle state. Battery life obviously may be affected slightly.


'''9. Restore ALL to Default'''



=== Tweak LL: Lockscreen &amp; Live Clock Icons ===

Two options:

- Replace default Clock icon with a Live Clock

- Install Lockscreen app



=== Tweak MM: ProfileMatic rules Backup &amp; Restore ===

Backup or Restore your rules from ProfileMatic. A REBOOT is needed after every restore!



=== Tweak NN: Contacts/SMS Importer ===


==== 1. Import/Export Contacts ====

This tweak is '''only for English, Russian &amp; Spanish Language Settings!'''


You must export your contacts from the contacts app in the following way first:

- Open Contacts App

- Click on the menu at bottom-right hand corner

- Click Export Contacts

- Choose &quot;File&quot; as the option


All your '''Contacts are now stored in /home/user/MyDocs/Contacts'''


When you run this tweak, it will convert all those Contacts into one file named &quot;N9QTallcontacts.vcf&quot;


After running this tweak navigate to /home/user/MyDocs/Contacts using Filebox and you will see the file named &quot;N9QTallcontacts.vcf&quot;. Click on it and click on Import hence all Contacts are imported to your device as and when you require (e.g. after a reflash)!



==== 2. Import/Export SMS ====

 '''Option 1. Export ALL SMS to ONE file:''' Running this option will create a file named '''&quot;smsbackup_DD-MM-YYYY_HHMMSS.sms''' in '''/home/user/MyDocs/.smsbackup/'''


 '''Option 2. Import ALL SMS to conversations:''' This option will import your messages (SMS+IM) into conversations. Before running this option, navigate to '''/home/user/MyDocs/.smsbackup/''' and rename the file you want to restore to '''smsbackup.sms''' Once done renaming, you may run this option! Do note that Restored IMs are available for reading only with new IMs from the same user creating a new conversation!


 '''Option 3. Split your Messages:''' This option will split all your back-ed up .sms files located in /home/user/MyDocs/.smsbackup into '''/home/user/MyDocs/.smsbackup/sms-backup-repo''' into individual conversations. This allows you to delete conversations with a particular contact before restoring the other SMSes and IMs. IMs are indicated with a contact's name or IM name in the file name while SMSes are indicated with only the telephone number in the file name!


 '''Option 4. Import Filtered Messages:''' This option restores the messages split in Option 3 above! All files in /home/user/MyDocs/.smsbackup/sms-backup-repo/ will be merged into one file named '''filtered.sms''' which will be restored into your Conversations app! '''Run this option only after running Option 3 (Tweak NN-2-3)!'''



=== Tweak OO: Lock your Favorite Apps ===

'''Gallery, Videos, Mail &amp; Messages''' are the '''ONLY''' apps that can be locked using this tweak. A REFRESH is required for the tweak to be applied!


'''Note: The Lock will NOT work if Mail or SMS or IM is opened from the lockscreen or notification screen!'''


Options are as follows:

'''1) Lock App:''' Change DEFAULT Password and LOCK your App.


'''2) Unlock App:''' UNLOCK your App either singly or ALL of them


'''3) Remove LockApp and Restore to Default:''' UNLOCKS ALL YOUR APPS and removes LockApp from your device


'''4) Fix Problem with Duplicated Icons:''' If you have duplicated icons this will fix things up '''BUT YOUR HOMESCREEN ICONS ORDER WILL BE RESETTED!!!'''



=== Tweak PP: ONE Click Applications Remover ===


This tweak UNINSTALLS all apps located in the the folder chosen from the following list:

 1. '''/home/user/MyDocs/.downloads'''

 2. '''/home/user/MyDocs/Downloads'''

 3. '''/home/user/MyDocs/Programs'''



=== Tweak QQ: Uninstall ORIGINAL Apps [Advanced Users Only] ===

'''DON'T USE THIS IF YOU ARE NOT A PRO USER!!!'''

Choose your mp-harmattan package; 001 or 005.

System Packages will be UNLOCKED with this tweak and you can INSTALL/UNINSTALL them on demand.


You can LOCK SYSTEM PACKAGES BACK resulting in a RESTORATION OF ALL REMOVED APPLICATIONS/PACKAGES too!


NEVER proceed if the tweak says your SYSTEM PACKAGE IS LOCKED EVEN AFTER UNLOCKING! Thhis will KILL your system!



=== Tweak RR: Tweaked Phone Backup/Restore ===

This Tweak will create a backup of your tweaked phone in '''/home/user/MyDocs/.N9QTweakedBackup/'''


This method is the fastest way to restore your tweaks and apps after a reflash etc. The restoration of apps is done by installing all the '''.deb''' files located in '''/home/user/MyDocs/BackDeb/All/'''


To prevent the restoration of apps or restoring apps from another location follow these steps:
 To prevent restoration, delete all '''.deb''' files in '''/home/user/MyDocs/BackDeb/All/'''

 To restore apps from another location, edit '''/home/user/MyDocs/.N9QTweakedBackup/appinstaller.sh''' using your favourite text editor. Replace the line containing '''dpkg -i /home/user/MyDocs/BackDeb/All/*''' with the path to your desired location instead!


'''Note: If during the creation of the above backups, inception was not installed/active on your phone, install and active it FIRST before running the restore operation!'''


'''Note 2: Tweak T and its packages will NOT be backed up!'''


'''Note 3: Ensure you are connected to the Internet before running this tweak!'''



=== Tweak UU: N9QT Updater ===

This option will show you the current version of N9QTweak installed on your system and using your internet connection check for any updated version available.


You can choose to see the changelog of the new version before accepting an upgrade.


This Tweak will not work if you installed N9QTweak from Appsformeego. It is recommended to uninstall N9QTweak if you have installed it from Appsformeego and to install it from the link in the first post of the thread!



=== Tweak K: Create BACKUP ===

Self-explanatory with a backup stored in '''/home/user/MyDocs/.N9QTweakBackup/'''



=== Tweak Z: Full RESTORE ===

ALL Tweaks will be restored but added option to allow you to choose whether to uninstall additional IM providers even with restoring all tweaks.
This tweak will NOT restore Tweaks T-1 &amp; T-3 (system-ui) and Tweak B-7 (Vesuri mod)! This tweak also gives you the option to restart or refresh your phone after the restore!



=== Tweak V: About &amp; Credits ===

Self-explanatory!



== Uninstalling ==

Two ways:


1) Go to Settings -&gt; Applications -&gt; Manage Applications -&gt; N9 QTweak -&gt; Click Uninstall after choosing it


2) Long press N9QTweak icon on the homescreen and click the the &quot;x&quot; on the icon


Notes on Uninstallation:


- Even after uninstalling the app, Backup files will be stored in /home/user/MyDocs/.N9QTweakBackup/


- You can use the above backup files to restore your tweaks manually after uninstallation if you forgot to do it before


- If you want '''only a one time''' command to restore run the following as ROOT in terminal:

'''sh /home/user/MyDocs/.N9QTweakBackup/RESTORE'''


Do take note that this command does the following:

1) '''Restores''' all tweaks to default [except for Extraplugins Tweak I]

2) '''Deletes''' the folder .N9QTweakBackup from your phone

3) '''Refreshes''' home and locksreens




== Troubleshooting ==


=== Known Issues in N9QTweak ===


The following issues may occur due to technical reasons:

# Tweak UU doesn't work if N9QTweak was installed from Appsformeego
# Tweak T results in music player taking around 25seconds to open
# Tweak T causes an alarm bug
# Permission denied appears whenever applying any tweak -&gt; Uninstall N9QTweak and install from first post in the [http://talk.maemo.org/showthread.php?t=80600 TMO thread]. Most probably you had installed N9QTweak from Appsformeego
# Fruit Ninja in Tweak E-7 doesn't work for all people; try using different .apk files
# Tweak BB breaks the colour profile settings -&gt; Try a reboot
# Billboard &amp; Meecast don't work properly once Tweak F or Tweak W is applied -&gt; Re-install Billboard after applying the tweaks!



=== Getting a Clean Backup ===


There are three methods to do so:


==== '''Method 1 [N9QTweak]:''' ====

1) Ensure you are connected to the internet


2) Run Tweak L from N9QTweak


3) The clean backup will be stored in /home/user/MyDocs/.N9TweakBackup


4) Just run a restore (tweak Z) from N9QTweak to apply it!



==== '''Method 2 [PC + USB Cable + N9]:''' ====

1) From the '''first post''' of the '''[http://talk.maemo.org/showthread.php?t=80600 thread]''' click on the link '''&quot;my clean backup&quot;'''


2) Download the file to your PC and extract from the ZIP archive


3) Connect the N9 to your PC using the USB cable via '''&quot;Use as mass storage&quot;''' mode


4) Copy the extracted folder from the zip archive '''&quot;.N9QTweakBackup&quot;''' to your phone


5) Now disconnect your phone and you can use the app to do a restore from the clean backup you just transferred to your phone



==== '''Method 3 [N9 Browser + Filebox]:''' ====

1) From the '''first post''' of the '''[http://talk.maemo.org/showthread.php?t=80600 thread]''' click on the link '''&quot;my clean backup&quot;'''


2) Save the file to your N9. If it says the format is wrong just click OK to '''SAVE'''.


3) Once Transfer is Completed, '''DON'T''' press Clear; instead click on Done.


4) Open '''Filebox''' app and navigate to '''/home/user/MyDocs/Downloads/'''


5) Double click on file named: '''N9QTweakBackup_9.3.6_all.zip'''


6) Click '''&quot;Extract Files&quot;''' and press the '''UP ARROW ONCE''' to navigate to /home/user/MyDocs/


7) Click '''&quot;Extract Here&quot;''' and if prompted, click '''&quot;Override all&quot;.'''



=== Installation Issues ===


==== Unable to use N9QTweak after Installation ====


1) Go to '''Settings -&gt; Applications -&gt; Manage Installations -&gt; N9 QTweak -&gt; Uninstall.''' Reboot phone and try installing N9QTweak again.


2) If the above did not resolve the issue, UNINSTALL as above again. Open '''Filebox app as ROOT''', navigate to '''/opt/''' and delete the folder named '''&quot;N9QTweak&quot;'''. Alternatively, you may delete the folder using Terminal too. Open Terminal -&gt; devel-su -&gt; ENTER_PASSWORD -&gt; rm -rf /opt/N9QTweak/


3) Once the folder above is deleted, reboot and open Terminal and do the following:
 devel-su
 ENTER_PASSWORD ''[default is rootme]''
 dpkg -i /path/to/installation/file/of/N9QTweak



=== Fixing Reboot Loop(s) ===


==== Mounting the N9 to a PC (Linux Users Only) ''[Fix MALF State]'' ====


'''WARNING: The below steps will put your phone into Open Mode!'''


'''Note: The instructions are valid on the N9 even though using N950 kernel'''


'''Note 2: The below instructions would work if you know which Tweak(s) you applied before facing the reboot loops'''


'''Note 3: For original files required in step 7 below copy it either from the Clean Backup or request for it in the [http://talk.maemo.org/showthread.php?t=80600 N9QTweak thread]'''


1. Download the following files from their links and save to '''/home/$USER/Downloads/''' where $USER is your username on the PC


[http://tablets-dev.nokia.com/maemo-dev-env-downloads.php flasher ''(download 32/64-bit according to your system)''] 

[http://stskeeps.subnetmask.net/n950liberator/vmlinuz-2.6.32.20112201-11.2-adaptation-n950-bootloader N950 kernel]

[http://stskeeps.subnetmask.net/n950liberator/initrd.img-rescue-2.6.32.20112201-11.2-n950 N950 rescue initrd]


2. Open terminal on your PC and type:

 sudo su
 {enter your password}
 cd /home/$USER/Downloads
 flasher --load -k vmlinuz-2.6.32.20112201-11.2-adaptation-n950-bootloader -n initrd.img-rescue-2.6.32.20112201-11.2-n950 --boot


3. A message will pop-up saying '''Suitable Device/Phonenet not found...'''


4. After the above message appears, plug in your POWERED-OFF N9/50 to the PC. Make sure your phone is switched off beforehand; to be sure press the power button for 8 seconds to switch it off


5. Wait 1-3 minutes and your N9 should appear as 3 removable partitions on the system:
 /dev/sdX1 which is MyDocs, /dev/sdX2 which is rootfs and /dev/sdX3 which is the home directory (userfs).


6. If the partitions are not mounted, you can check for their presence either by using GParted Partition Editor or typing the following in terminal:
 fdisk -l


7. Now to fix the problem use the original file to replace the modified file in your rootfs partition (sdX2)


8. Once you are done, unmount the 3 partitions by clicking on eject on your system


9. Upon unmounting completing, plug out your phone from your PC and power it on; the issue should have been resolved now!



===== Removing Warranty Void Message after Fixing Reboot Loop =====

If you wish to remove the warranty void message that appears at every boot-up follow the below steps:


1. On your N9/50 do the following in terminal:
 devel-su
 {enter password - default is ''rootme''}
 /bin/dd if=/dev/mmcblk0p2 of=/home/user/MyDocs/rootfs_backup.img
 /bin/dd if=/dev/mmcblk0p3 of=/home/user/MyDocs/userfs_backup.img

The above steps will take quite some time so please be patient. At the end of the above you should get a 4GB rootfs_backup.img and a 2GB userfs_backup.img


2. Copy the rootfs_backup.img and userfs_backup.img from your device to your Linux PC. In these steps we presume to have copied the .img files to '''home/$USER/Downloads/''' where $USER is the username of your PC


3. On your PC, download the stock firmware image for your device, save it to '''/home/$USER/Downloads''' with the name rootfs.bin. Take note, we DO NOT use the emmc.bin image!


4. Open terminal on your PC and type the following:
 sudo su
 {enter your password}
 cd /home/$USER/Downloads
 flasher -f -F rootfs.bin -R


5. Plug in your POWERED-OFF device once the '''Suitable Device/Phonenet not found''' message appears


6. Let the flash complete after which your phone will boot-up


7. Don't PANIC to see your data etc is missing and head to '''Settings-&gt;Security-&gt;Developer Mode-&gt;Install


8. After Developer Mode is intalled, your Device will reboot after which open terminal on your DEVICE and type:
 disclaimer-cal remove View-openmode


9. Power off your device and on your PC type the following in the PC's terminal:
 sudo su
 {enter your password}
 cd /home/$USER/Downloads
 flasher --load -k vmlinuz-2.6.32.20112201-11.2-adaptation-n950-bootloader -n initrd.img-rescue-2.6.32.20112201-11.2-n950 --boot


Plug in your POWERED-OFF DEVICE only when the '''&quot;Suitable Device/Phonenet not found...&quot;''' message appears!

The vmlinuz and initrd files required in the above are the same which were used in '''''Fixing the Reboot Loop via Mounting on PC!'''''


10. As per the fixing reboot loop step, you will get 3 partitions of the N9 appearing in your PC as follows:
 /dev/sdX1 which is MyDocs, /dev/sdX2 which is rootfs and /dev/sdX3 which is the home directory (userfs).


11. Once the partitions are detected, we get your images mounted into them. So in terminal on your PC type:
 sudo su
 {enter your password}
 cd /home/$USER/Downloads/
 dd if=/home/$USER/Downloads/rootfs_backup.img of=/dev/sdX2
 dd if=/home/$USER/Downloads/userfs_backup.img of=/dev/sdX3


The above will take some time to finish so be patient!


12. Once step 11 is finished, you can unmount the 3 partitions of your Device from your PC by clicking on the eject button on the explorer window on your PC.


13. After unmounting, plug out your Device from your PC and power it on; you'll see the warranty void message to have disappeared and all your data restored!



==== RD Mode ====

This method will attempt to boot up your N9 using RD mode allowing you to repair any tweaks that you may applied wrongly!

There is NO guarantee this method will fix your N9 but its highly probable that if you messed up tweaks for appearance, statusbar, system-ui etc this method should fix it up for you!


You will need [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php flasher] for this process!


1. On your PC run cmd.exe as administrator and type the following:
 cd C:\Program Files\Nokia\Flasher {change the path according to where you installed flasher}
 flasher --enable-rd-mode --set-rd-flags=no-lifeguard-reset


2. Once a message appears saying '''&quot;Suitable Device/Phonenet not found...&quot; plug in your POWERED OFF Device to your PC


3. RD mode is enabled if a message on cmd.exe appears stating RD mode enabled. Now you may plug out your device from your PC and boot it up. A further sign of RD mode being enabled is the wrench icon you will find at boot-up as well as flashing Camera LEDs and flashing notification LEDs.


4. Once your system is booted up, replace the modified files with those from a clean backup or re-install the necessary system packages to fix the reboot loop.


5. Upon Completion, power off your device and disable rd mode by typing the following on your PC in cmd.exe which is run as administrator:
 cd C:\Program Files\Nokia\Flasher {change the path according to where you installed flasher}
 flasher --disable-rd-mode


6. Boot up your N9 after the above and the reboot loop should be resolved; if it still isn't you need to repeat the above steps and ensure you use a clean backup from the N9QTweak thread to restore all tweaks!



== Changelog ==



=== Version 9.1.1 [09.10.12] ===

- Tweak Z - updated


- Tweak K - updated


- Tweak RR - updated, integrated installation of all user apps via script and added backup of &quot;grob&quot; file (UA)


- Tweak R - updated (black theme)


- Tweak DD - Added option for reducing the space between icons


- Tweak KK - updated, creating .deb file extracted and moved to Tweak X. Added option to change default name of created photo/video files (YYMM), Albumarts remover, Scaling frequency changer


- Tweak X - Creating deb files (single of user or system and all user installed)


- Tweak I - extraplagins updated to new version.


- Tweak C - '''REMOVED'''; content moved to Tweak KK


- Start script changed, no more problem with installation of bash


- Fixed an issue of green icon appearing when installed via terminal


'''IMPORTANT: In installation process this version will create a backup of some files for Tweak M, Tweak RR ''(grob)'' &amp; Tweak KK (will not be in the next version).'''



=== Version 9.1.2 [10.10.12] ===


- Tweak G - updated restore option


- Tweak KK - updated changing photo/video name as well as added a separate option for open mode users


- Postinst script changed to check if you are have an active internet connection as well as wget before attempting to download the PDF instructions file to your '''Documents''' folder. 

A fail in the check will save another PDF file to your '''Documents''' folder which would contain the links for you to manually download the full instructions.



=== Version 9.1.3 [11.10.12] ===


- Tweak T - updated option 3 adding support for LED event notifier for Wazapp


- Start script updated - added menu of PDF instruction downloader



=== Version 9.2 [14.10.12] ===


- Tweak Z - updated


- Tweak RR - updated


- Tweak KK - updated option 4.


- Tweak NN - renamed, added new option &quot;Export/Import SMS&quot; (see PDF instruction)


- Tweak M - updated, added option to change UA for Open mode users.


- Tweak X - updated, removed installation option, it will install needed package automatically from first option.



=== Version 9.3 [16.10.12] ===


- RESTORE file updated (added option for Open mode users).


- Tweak Z - updated, added option for Open mode users.


- Tweak RR - updated, added option for Open mode users.


- Tweak R - updated, added option for Open mode users.


- Added Tweak UU - N9QT updater



=== Version 9.3.1 [17.10.12] ===


- Tweak Z - updated


- Tweak II - updated, added N9QT repo


'''IMPORTANT:''' In installation process it will install N9QT repo (will be removed in next version)



=== Version 9.3.3 [19.10.12] ===


- Tweak RR - updated, added checking of internet connection before start.


- Tweak M - updated, fixed &quot;Opera tablet&quot; button.


- Tweak O - updated, added splash image to &quot;Catch Apps&quot; button.


- Tweak FF - updated, added splash image to &quot;N9 QRefresh&quot; button.


- Added Tweak C - changelog.


- No more password request for N9QT, &quot;Catch Apps&quot;, &quot;N9 QRefresh&quot;


- Added Notification to notifications screen.



=== Version 9.3.4 [21.10.12] ===


- Added Tweak L - Clean backup downloader.


- Tweak G - updated patch for option 2, now you don't need to revert before applying new patch. Output removed.


- Tweak RR - updated.


- Tweak Z - updated.


- Tweak FF - updated, added new option to refresh button and at the end of N9QT


- Clean backup file updated.


IMPORTANT: In installation process it will save 1 file for tweak G-2 ''(will not be present in next version)''!



=== Version 9.3.5 [23.10.12] ===


- Tweak Z - updated.


- Tweak RR - updated.


- Tweak E - updated, added apkenv.


'''IMPORTANT: For those who have N9QT installed from apps.formeego client and got system updates, NO MORE system updates! Please remove this version and install new one from the first post!'''



=== Version 9.3.5a [24.10.12] ===


- Tweak E - updated, added support of new game - Angry Birds (2.3.0). Just reapply option 1 (Install apkenv) and after this choose the new game from option 2.


'''Name of PDF file NOT changed!'''



=== Version 9.3.6 [26.10.12] ===


- Tweak Z - updated.


- Tweak RR - updated.


- Tweak OO - updated, added option to lock N9QT.


- Tweak E - updated, added option for saving games scores; you will need to do it manually after each played game! For activating this option, reinstall apkenv ONLY once =&gt; option 1. 


- Tweak D - updated, added dannejanne keyboard theme.



=== Version 9.3.7 [27.10.12] ===
 

- Tweak Z - updated.


- Tweak RR - updated.


- Tweak E - updated option 7, now it saves/loads your apkenv games automatically! Just re-apply options 1 and 2! 


- Tweak D - updated, added 17 keyboard themes!



=== Version 9.3.8 [29.10.12] ===


- Tweak Z - updated


- Tweak RR - updated


- Tweak B - updated option 7, patch removed form the package ''(not needed)''


- Tweak F - updated, added option to remove Clock/Date from lockscreen


- Tweak E - updated option 7, updated saving script of PIDk! Just reapply options 1 and 2!


- Tweak D - updated, added additional keyboard themes, also updated Harmoji vkb


- Tweak UU - updated, now you can check which version is available for download


- Tweak II - updated, removed Schturman repo



=== Version 9.3.9 [01.11.12] ===


- Tweak UU - updated, now it automatically checks the latest version available for download


- Tweak D - updated, added two new vkb themes; one of them for girls only :)


- Fixed a problem with installation of packages inside N9QT for users with Normal mode (without inception or Open mode)



== Credits for N9QTweak ==

Creator &amp; Developer: [http://talk.maemo.org/member.php?u=30535 '''Schturman''']


Thanks to the Following People [not in any particular order]:


Almehdi [http://talk.maemo.org/member.php?u=33306], hxka [http://meegos.ru/forum/profile.php?id=4376], Ammyt [http://talk.maemo.org/member.php?u=47181], 3llipsis [http://talk.maemo.org/member.php?u=58172], wook_sf [http://talk.maemo.org/member.php?u=57127], iidar_sh [http://profile.allnokia.ru/u/195795/], leo1994 [http://profile.allnokia.ru/u/561731/], Camerado [http://profile.allnokia.ru/u/257093/], hooddy [http://profile.allnokia.ru/u/587239/], superjunior [http://talk.maemo.org/member.php?u=24639], Jflatt [http://talk.maemo.org/member.php?u=25437], sony123 [http://talk.maemo.org/member.php?u=26315], colin.stephane [http://talk.maemo.org/member.php?u=29784], mbanck [http://talk.maemo.org/member.php?u=62716], F2thak [http://talk.maemo.org/member.php?u=30235], CODeRUS [http://talk.maemo.org/member.php?u=57370], Fenol [http://meegos.ru/forum/profile.php?id=10923], AJMAL P.M [http://talk.maemo.org/member.php?u=59472], eccenux [http://talk.maemo.org/member.php?u=57154], Arie [http://talk.maemo.org/member.php?u=56917], kuzmichov [http://meegos.ru/forum/profile.php?id=10254], r0mis [http://profile.allnokia.ru/u/65403/], alxs_as-is [http://profile.allnokia.ru/u/377101/], dvarlamoff [http://profile.allnokia.ru/u/326561/], MohammadAG [http://talk.maemo.org/member.php?u=25578], Ancelad [http://profile.allnokia.ru/u/328284/], cckwes [http://talk.maemo.org/member.php?u=54908], hungthai_pt [http://www.tinhte.vn/members/820725/], OSCho [http://talk.maemo.org/member.php?u=57129], Gnome [http://profile.allnokia.ru/u/11909/], itsnotabigtruck [http://talk.maemo.org/member.php?u=59809], aegis [http://talk.maemo.org/member.php?u=51144], nikkirov [http://profile.allnokia.ru/u/494826/], Craig_Mabbitt [http://profile.allnokia.ru/u/348186/], HanzBlix [http://talk.maemo.org/member.php?u=56927], Iktwo [http://talk.maemo.org/member.php?u=45856], guillermorojaz [http://talk.maemo.org/member.php?u=58838], thedead1440 [http://talk.maemo.org/member.php?u=57509], Shayco, Niwakame [http://talk.maemo.org/member.php?u=57969], Rusnak-COBRA [http://talk.maemo.org/member.php?u=58349], Shaun, 
nba0nb [http://talk.maemo.org/member.php?u=59330], Crabstick [http://talk.maemo.org/member.php?u=61275], wellef [http://talk.maemo.org/member.php?u=45090], latency [http://talk.maemo.org/member.php?u=58474], flopjoke [http://talk.maemo.org/member.php?u=61100], farfary [http://talk.maemo.org/member.php?u=60343], wwwjfy [http://talk.maemo.org/member.php?u=60493], wolke [http://talk.maemo.org/member.php?u=43743], MFaroTusino [http://talk.maemo.org/member.php?u=56897], thp [http://talk.maemo.org/member.php?u=9673], Kozzi [http://talk.maemo.org/member.php?u=10105], dannejanne [http://talk.maemo.org/member.php?u=63585], Mariam [http://talk.maemo.org/member.php?u=63856]

[[Category:N9]]</text>
    </revision>
  </page>
  <page>
    <title>N9 Hardware Hacking</title>
    <id>5290</id>
    <revision>
      <id>50545</id>
      <timestamp>2012-10-29T01:25:00Z</timestamp>
      <contributor>
        <username>wikiwide</username>
        <id>3163</id>
      </contributor>
      <minor/>
      <comment>[[Category:N9 Hardware]]</comment>
      <text xml:space="preserve">This page outlines what is known about the hardware of the [[Nokia N9|N9]], and possible modifications or additions to it.

Much of the information on this page may be incorrect, and may cause damage to your N9 if you attempt any of it.

==Resources==

* N9 Service Manual - Level 1&amp;2 (1.0: 01.07.2011 and 3.0: 18.08.2011): [http://depositfiles.com/files/2zko4uv7e DepositFiles] or [http://extabit.com/file/28e6i7gy7esrm/Nokia_N9-00_SM_L12_SCH.rar Extabit]
* N9 Service Manual - Level 1&amp;2 (5.0: 03.10.2011): [http://dc388.4shared.com/download/qvAxzfek/Nokia_N9_RM-696_Service_Manual.rar?tsid=20121027-000706-f8c81375&amp;dsid=40q212.2a28179916de491e6bebaebb0cc01289 4shared]
* N9 Service Manual - Level 3&amp;4 (06.2011): [http://server.mobilcoms.ru/temp/nokia/schematics/N9_RM-696_SM_L34_v10.rar MobilComs]
* N9 Hardware Schematic - version 1.0 (20.07.2011): [http://hotfile.com/dl/124842075/46f1c02/Nokia_N9_RM-696_Full_schematics_v1.0.rar.html HotFile]

[[Category:N9]]
[[Category:N9 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>N9 Hardware Main Camera</title>
    <id>4917</id>
    <revision>
      <id>44217</id>
      <timestamp>2011-06-28T00:49:33Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <text xml:space="preserve">The N9 main camera features a dual flash LED, and other features outlined in
http://thehandheldblog.com/2011/06/27/nokia-n9-camera/


f/2.2 aperture, an 8.7 megapixel sensor (4:3/16:9), with the 16:9 mode providing more width.

* Carl Zeiss optics

* f/2.2 aperture leading for very wide shots.
* Continuous Video and still autofocus with face detection.
* High power dual LED flash
* AMBR – Automatic Motion Blur Reduction
* 1.4um pixel pitch
* Total sensor size 3552*2448
** In 4:3 mode, 3248*2448
** in 16:9 mode 3552*2000
*** 3552*2448 mode is not available in stock software, as the corners of the imager are not fully illuminated by the lens.
* Field of view 65.5*46.4 degrees.
* Focal length 3.7mm
* Lens diameter 1.68mm
* Angular resolution according to [http://en.wikipedia.org/wiki/Airy_Disk the airy disk] 0.39 milliradians.

Above table from [http://conversations.nokia.com/2011/06/27/damian-dinning-on-nokia-n9-imaging/ this thread on nokia conversations] and [http://en.wikipedia.org/wiki/Angle_of_view wikipedias page on angle of view].

The lens forms an image diameter of 1.4um * sqrt(3248^2+2448^2)=5.7mm, which touches the corners of both 4:3 mode and 16:9 mode. 

The lens has an [http://en.wikipedia.org/wiki/F_ratio F Ratio] of F/2.2.</text>
    </revision>
  </page>
  <page>
    <title>NITDroid FAQ</title>
    <id>4924</id>
    <revision>
      <id>50563</id>
      <timestamp>2012-10-30T10:36:04Z</timestamp>
      <contributor>
        <username>eccenux</username>
        <id>5499</id>
      </contributor>
      <comment>+1</comment>
      <text xml:space="preserve">See also:
* [[NITDroid Port#Links|NITDroid Port]]
* [[NITDroid Game Compatibility]]


==Answers and fixes to some FAQs:==

===Why can't I hear anything when calling?===
Sound cannot be routed through the N900's earpiece/microphone in NITDroid yet.

===Why is my device not charging while in NITDroid?===
In NITDroid, go to:
&lt;pre&gt;
App drawer --&gt; Settings --&gt; Applications --&gt; Development --&gt; Stay awake
&lt;/pre&gt;
This should let the screen stay awake while charging, your device will be charging normally.

===What do I do if I can't obtain IP address from my WiFi?===
There are several workarounds, best is to turn off WiFi encryption.

===Why does signing in to Google takes forever?===
Skip google sign-up in the first tutorial instead, sign up/in google once in NITDroid.

===How can I overclock NITDroid===
1. You can download ready GUI's from the market for OCing: http://talk.maemo.org/attachment.php?attachmentid=16607&amp;d=1293643705

NOTE: Recommended settings for Setcpu: Min:125 Max:805 Governor:Conservative

2. Or use one of these profiles: http://forum.nitdroid.com/index.php?topic=116.0

===Did I loose the ability to overclock Maemo by kernel-power?===
For kernel-power multiboot entry:

NITDroid Auto-installer solved this issue.

===My memory for apps is getting low, what can I do?===
1. Here are custom EMMCs if you want to reflash:

5GB app memory 24GB /MyDocs: http://www.mediafire.com/?j6srnaxwr3notaf

or

8GB app memory 21GB /MyDocs: http://www.mediafire.com/?5o1hkuuwhn8hh1c

2. Install by repartitioning

===Can I use MMC as an SD Card on NITDroid?===
You can follow one of these instuction: http://talk.maemo.org/showpost.php?p=1102388&amp;postcount=3231

===Stability Issues?===
NITDroid uses 500 1150 default CPU clock settings which can make some devices unstable. In Maemo, open Xterminal then:
&lt;pre&gt;
root
mount /home /and
cp /and/etc/oc-profile-250-500 /and/etc/power.conf
leafpad /and/etc/power.conf
&lt;/pre&gt;
Then edit the kernel profile the way that suits you.</text>
    </revision>
  </page>
  <page>
    <title>NITDroid FAQ</title>
    <id>4924</id>
    <revision>
      <id>50563</id>
      <timestamp>2012-10-30T10:36:04Z</timestamp>
      <contributor>
        <username>eccenux</username>
        <id>5499</id>
      </contributor>
      <comment>+1</comment>
      <text xml:space="preserve">See also:
* [[NITDroid Port#Links|NITDroid Port]]
* [[NITDroid Game Compatibility]]


==Answers and fixes to some FAQs:==

===Why can't I hear anything when calling?===
Sound cannot be routed through the N900's earpiece/microphone in NITDroid yet.

===Why is my device not charging while in NITDroid?===
In NITDroid, go to:
&lt;pre&gt;
App drawer --&gt; Settings --&gt; Applications --&gt; Development --&gt; Stay awake
&lt;/pre&gt;
This should let the screen stay awake while charging, your device will be charging normally.

===What do I do if I can't obtain IP address from my WiFi?===
There are several workarounds, best is to turn off WiFi encryption.

===Why does signing in to Google takes forever?===
Skip google sign-up in the first tutorial instead, sign up/in google once in NITDroid.

===How can I overclock NITDroid===
1. You can download ready GUI's from the market for OCing: http://talk.maemo.org/attachment.php?attachmentid=16607&amp;d=1293643705

NOTE: Recommended settings for Setcpu: Min:125 Max:805 Governor:Conservative

2. Or use one of these profiles: http://forum.nitdroid.com/index.php?topic=116.0

===Did I loose the ability to overclock Maemo by kernel-power?===
For kernel-power multiboot entry:

NITDroid Auto-installer solved this issue.

===My memory for apps is getting low, what can I do?===
1. Here are custom EMMCs if you want to reflash:

5GB app memory 24GB /MyDocs: http://www.mediafire.com/?j6srnaxwr3notaf

or

8GB app memory 21GB /MyDocs: http://www.mediafire.com/?5o1hkuuwhn8hh1c

2. Install by repartitioning

===Can I use MMC as an SD Card on NITDroid?===
You can follow one of these instuction: http://talk.maemo.org/showpost.php?p=1102388&amp;postcount=3231

===Stability Issues?===
NITDroid uses 500 1150 default CPU clock settings which can make some devices unstable. In Maemo, open Xterminal then:
&lt;pre&gt;
root
mount /home /and
cp /and/etc/oc-profile-250-500 /and/etc/power.conf
leafpad /and/etc/power.conf
&lt;/pre&gt;
Then edit the kernel profile the way that suits you.</text>
    </revision>
  </page>
  <page>
    <title>NITDroid FAQ</title>
    <id>4924</id>
    <revision>
      <id>50563</id>
      <timestamp>2012-10-30T10:36:04Z</timestamp>
      <contributor>
        <username>eccenux</username>
        <id>5499</id>
      </contributor>
      <comment>+1</comment>
      <text xml:space="preserve">See also:
* [[NITDroid Port#Links|NITDroid Port]]
* [[NITDroid Game Compatibility]]


==Answers and fixes to some FAQs:==

===Why can't I hear anything when calling?===
Sound cannot be routed through the N900's earpiece/microphone in NITDroid yet.

===Why is my device not charging while in NITDroid?===
In NITDroid, go to:
&lt;pre&gt;
App drawer --&gt; Settings --&gt; Applications --&gt; Development --&gt; Stay awake
&lt;/pre&gt;
This should let the screen stay awake while charging, your device will be charging normally.

===What do I do if I can't obtain IP address from my WiFi?===
There are several workarounds, best is to turn off WiFi encryption.

===Why does signing in to Google takes forever?===
Skip google sign-up in the first tutorial instead, sign up/in google once in NITDroid.

===How can I overclock NITDroid===
1. You can download ready GUI's from the market for OCing: http://talk.maemo.org/attachment.php?attachmentid=16607&amp;d=1293643705

NOTE: Recommended settings for Setcpu: Min:125 Max:805 Governor:Conservative

2. Or use one of these profiles: http://forum.nitdroid.com/index.php?topic=116.0

===Did I loose the ability to overclock Maemo by kernel-power?===
For kernel-power multiboot entry:

NITDroid Auto-installer solved this issue.

===My memory for apps is getting low, what can I do?===
1. Here are custom EMMCs if you want to reflash:

5GB app memory 24GB /MyDocs: http://www.mediafire.com/?j6srnaxwr3notaf

or

8GB app memory 21GB /MyDocs: http://www.mediafire.com/?5o1hkuuwhn8hh1c

2. Install by repartitioning

===Can I use MMC as an SD Card on NITDroid?===
You can follow one of these instuction: http://talk.maemo.org/showpost.php?p=1102388&amp;postcount=3231

===Stability Issues?===
NITDroid uses 500 1150 default CPU clock settings which can make some devices unstable. In Maemo, open Xterminal then:
&lt;pre&gt;
root
mount /home /and
cp /and/etc/oc-profile-250-500 /and/etc/power.conf
leafpad /and/etc/power.conf
&lt;/pre&gt;
Then edit the kernel profile the way that suits you.</text>
    </revision>
  </page>
  <page>
    <title>NITDroid Game Compatibility</title>
    <id>4927</id>
    <revision>
      <id>50567</id>
      <timestamp>2012-10-30T11:43:24Z</timestamp>
      <contributor>
        <username>eccenux</username>
        <id>5499</id>
      </contributor>
      <comment>/* Broken games */ broken games info</comment>
      <text xml:space="preserve">NITDroid Game Compatibility

== Broken games ==
{| class=&quot;wikitable sortable&quot;
! Android Game
! NITDroid Version
! Status
! Problems
|-
| Worms
| Alpha 5
| Doesn't work
| It tries to download something but doesn't succeed, also it miss judge connection to be 3G even when on WiFi. Ignoring the message results in a NaN and no progress occurs. Doesn't seem to be really NITDroid specific as there are many complaints about the game. It might be a problem with newer version of Android (from what I know connection state recognition changed in JellyBean).
|-
| Fruit Ninja
| Alpha 5
| Clunky
| Sometimes it work, but mostly doesn't. It goes into &quot;Loading Feint&quot;, you need to push back button and it kind of works, but only until you go to some other app.
|}

== Playable games ==
=== Car Racing ===
{| class=&quot;wikitable sortable&quot;
! Android Game
! Version
! Special Requirements
|-
| Asphalt 5 Racing
| ANY
| NONE
|-
| Asphalt 6 Adrenaline
| 3.12
| Motorola Milestone/Defy SD
|-
| GT Racing
| 3.18
| Motorola/Samsung Galaxy S SD
|-
| Need For Speed Shift
| 1.0.63
| NONE
|-
| Raging Thunder 2
| ANY
| NONE
|-
| Reckless Racing
| ANY
| NONE
|-
| The Fast and Furious 5
| 1.03
| Chainfire + HTC Bravo apk + HTC Desire HD SD
|}

=== Sports ===
{| class=&quot;wikitable sortable&quot;
! Android Game
! Version
! Special Requirements
|-
| 3D Bowling
| 1.3
| NONE
|-
| Backbreaker
| 1.41
| NONE
|-
| FIFA 2010
| ANY
| NONE
|-
| Hockey Nations
| ANY
| NONE
|-
| Home-run Battle 3D
| 1.5.4
| NONE
|-
| Lets Golf 2 HD
| ANY
| NONE
|-
| Maden NFL 2011
| 2138
| Chainfire + Qualcomm plug-in
|-
| Magnetic Sports
| ANY
| NONE
|-
| PES 2011
| 1.0.1
| NONE
|-
| Real Football 2010
| ANY
| NONE
|-
| Real Football 2011
| 3.17
| NONE
|-
| Super K.O. Boxing 2
| ANY
| NONE
|-
| Tennis Slam
| ANY
| NONE
|-
| Trial X
| 1.6
| NONE
|-
| Virtual Table-Tennis 3D
| 2.6.1
| NONE
|}

=== Adventure ===
{| class=&quot;wikitable sortable&quot;
! Android Game
! Version
! Special Requirements
|-
| Angry Birds
| 1.53 market
| NONE
|-
| Angry Birds Rio
| ANY
| NONE
|-
| Assasins Creed 3D
| 1.04
| NONE
|-
| Avatar
| ANY
| NONE
|-
| Backstab HD
| 1.2.2
| Samsung Galaxy Tab version
|-
| Crussade of Destinity
| ANY
| NONE
|-
| Dracula
| ANY
| NONE
|-
| Gangstar Miami Vindication
| 3.14
| NONE
|-
| Gangstar West Coast Hustle
| 3.38
| NONE
|-
| Guerrilla Bob
| 1.0.1 market
| NONE
|-
| Hero of Sparta
| ANY
| NONE
|-
| Mystique
| ANY
| NONE
|-
| Sacred Odyssey
| 1.03
| Samsung Galaxy S version
|-
| Samurai II Vengeance
| 1
| Chainfire + NVIDIA plug-in
|-
| Shadow Guardian
| 1.0.1
| Chainfire + Qualcomm plug-in
|-
| Splinter Cell Conviction HD
| 3.2
| NONE
|-
| Welcome To Hell
| ANY
| NONE
|}

=== Arcade Shooter ===
{| class=&quot;wikitable sortable&quot;
! Android Game
! Version
! Special Requirements
|-
| Brothers In Arms 2
| 3.08
| NONE
|-
| Contract Killer
| 1.1.0
| NONE
|-
| Modern Combat
| ANY
| NONE
|-
| Modern Combat 2
| 3.3
| NONE
|-
| Nova
| ANY
| NONE
|-
| Nova 2
| ANY
| NONE
|-
| Tom Clancy Rainbow Six Shadow Vanguard
| 1.01
| NONE
|-
| Toon Warz
| ANY
| NONE
|}

=== Fight ===
{| class=&quot;wikitable sortable&quot;
! Android Game
! Version
! Special Requirements
|-
| Bruce Lee Dragon Warrior
| 1.14.18
| NONE
|-
| Iron Sight
| ANY
| NONE
|}

=== RPG ===
{| class=&quot;wikitable sortable&quot;
! Android Game
! Version
! Special Requirements
|-
| Dungeon Defenders
| ANY
| NONE
|-
| Dungeon Defenders Second Wave
| ANY
| NONE
|-
| Dungeon Hunter 2 HD
| ANY
| NONE
|-
| Eternal Legacy
| ANY
| NONE
|}

=== Ships ===
{| class=&quot;wikitable sortable&quot;
! Android Game
! Version
! Special Requirements
|-
| Galaxy On Fire 2
| NVIDIA
| Chainfire + NVIDIA plug-in
|-
| Galaxy On Fire
| Adreno
| Chainfire + Qualcomm plug-in
|-
| Wave Blazer
| ANY
| NONE
|-
| Turbo Fly 3D
| ANY
| NONE
|-
| T-racer HD
| ANY
| NONE
|-
| Jet Cars Stunt
| ANY
| NONE
|-
| Air Attack HD
| ANY
| NONE
|-
| Start Batallion
| ANY
| NONE
|-
| Armaggedon Squadron
| ANY
| NONE
|}</text>
    </revision>
  </page>
  <page>
    <title>NITDroid Port</title>
    <id>4923</id>
    <revision>
      <id>46805</id>
      <timestamp>2012-02-23T12:01:09Z</timestamp>
      <contributor>
        <ip>176.44.65.205</ip>
      </contributor>
      <comment>/* Links */</comment>
      <text xml:space="preserve">[[Image:41591_155698967779136_7796_s.jpg|frame|]]
NITDroid is an Android port for the N900, an Android variant that is currently based on Android Gingerbread 2.3.4. By installing NITDroid, you will have a fully functioning Android OS on your device, apart from voice in calls.
==Links==
*[http://wiki.maemo.org/Nitdroid_easy_install_on_EMMC#Installing_Nitdroid Installation/Uninstallation Instructions on eMMC]
*[http://wiki.maemo.org/NITDroid_FAQ#Answers_and_fixes_to_some_FAQs: FAQ]
*[http://wiki.maemo.org/NITDroid_Game_Compatibility NITDroid Games Compatibility]
*[http://talk.maemo.org/showthread.php?t=66459 Original T.M.O Thread]
*[http://youtu.be/ZgccJK2g4oc Latest ICS Demo Video]
*[http://www.youtube.com/watch?v=l_9kG81m-S4 Demo Video]
*[http://www.youtube.com/watch?v=z7MIGu2POzY Demo Video]
*[http://www.youtube.com/watch?v=KYmOpftdtqg Demo Video]
*[http://www.youtube.com/watch?v=UCVAho3_rDM Demo Video]

==Images==
[[Image:10072011102.jpg|frame|left|alt=NITDroid with htc Sense theme|NITDroid - htc Sense theme]]
[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>NITDroid Port</title>
    <id>4923</id>
    <revision>
      <id>46805</id>
      <timestamp>2012-02-23T12:01:09Z</timestamp>
      <contributor>
        <ip>176.44.65.205</ip>
      </contributor>
      <comment>/* Links */</comment>
      <text xml:space="preserve">[[Image:41591_155698967779136_7796_s.jpg|frame|]]
NITDroid is an Android port for the N900, an Android variant that is currently based on Android Gingerbread 2.3.4. By installing NITDroid, you will have a fully functioning Android OS on your device, apart from voice in calls.
==Links==
*[http://wiki.maemo.org/Nitdroid_easy_install_on_EMMC#Installing_Nitdroid Installation/Uninstallation Instructions on eMMC]
*[http://wiki.maemo.org/NITDroid_FAQ#Answers_and_fixes_to_some_FAQs: FAQ]
*[http://wiki.maemo.org/NITDroid_Game_Compatibility NITDroid Games Compatibility]
*[http://talk.maemo.org/showthread.php?t=66459 Original T.M.O Thread]
*[http://youtu.be/ZgccJK2g4oc Latest ICS Demo Video]
*[http://www.youtube.com/watch?v=l_9kG81m-S4 Demo Video]
*[http://www.youtube.com/watch?v=z7MIGu2POzY Demo Video]
*[http://www.youtube.com/watch?v=KYmOpftdtqg Demo Video]
*[http://www.youtube.com/watch?v=UCVAho3_rDM Demo Video]

==Images==
[[Image:10072011102.jpg|frame|left|alt=NITDroid with htc Sense theme|NITDroid - htc Sense theme]]
[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>NTP</title>
    <id>3897</id>
    <revision>
      <id>38808</id>
      <timestamp>2010-09-20T12:36:34Z</timestamp>
      <contributor>
        <username>lma</username>
        <id>37</id>
      </contributor>
      <minor/>
      <comment>/* Installation */ openntpd has been in extras for quite some time now</comment>
      <text xml:space="preserve">[[:wikipedia:Network_Time_Protocol|NTP]] stands for a Network Time Protocol and it is used for keeping device's clock 100% correct by connecting to the NTP servers when needed and getting the accurate time. There is a similar feature in [[Nokia N900|N900's]] Settings -&gt; Date and time -&gt; Update automatically, but it is for updating the time via mobile network. Keeping the time correct with NTP is better solution, because it is not dependent on mobile network, more common and standard, and you have control over it.

==Installation==

There is a NTP client in [[extras]], [http://www.openntpd.org/ OpenNTPD]. It is a widespread Unix/Linux/BSD daemon, which calculates your clock's drift and therefore connects when it is needed, not by schedule. So, enable [[extras]] if necessary (it's enabled by default on the N900) and install the [http://maemo.org/packages/view/openntpd/ OpenNTPD package].

==Configuration==

Open file &lt;code&gt;/etc/openntpd/ntpd.conf&lt;/code&gt; with your favourite text editor and simply put this line into it:

 servers europe.pool.ntp.org

The example configuration file uses European NTP servers. The list by continents and countries is on [http://www.pool.ntp.org/zone/@ ntp.org]. The servers used in this configuration are from pool.ntp.org. Those servers are one of the most accurate in the world. They relay the correct time, which is obtained from institutes, governments, GPS, etc. therefore from [[:wikipedia:Atomic_clock|atomic clocks]].

After that, save the file and reboot the device. Everything is working now in the background and you will always have correct time set. Don't worry, the daemon does not drain battery.

And keep in mind that you have to wait some time for the effect to be seen, because &lt;code&gt;ntpd&lt;/code&gt; calculates drift first and does not do rapid changes (to keep consistent log files). You can test if it works if you set your time a few minutes back or forth and leave the device connected. The results after initial installation should be seen in an hour or two, after that set your other clocks by your phone's time.

[[Category:Software]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Navigation</title>
    <id>1434</id>
    <revision>
      <id>14230</id>
      <timestamp>2009-06-15T06:24:51Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <comment>merging this page with the page [[Navigation_Tools]]</comment>
      <text xml:space="preserve">#REDIRECT [[Navigation_Tools]]</text>
    </revision>
  </page>
  <page>
    <title>Navigation Tools</title>
    <id>1977</id>
    <revision>
      <id>49880</id>
      <timestamp>2012-09-25T12:11:20Z</timestamp>
      <contributor>
        <username>gianko</username>
        <id>4873</id>
      </contributor>
      <comment>/* Marble */</comment>
      <text xml:space="preserve">A key application on the internet tablets is navigation. The [[Nokia N900|N900]] and [[Nokia N810|N810]] have a built-in GPS receiver; the [[Nokia 770|770]] and [[Nokia N800|N800]] can connect to a separate GPS receiver over bluetooth with the NMEA interface

== Complete Navigation Solutions ==

The following applications provide GPS-based navigation and route calculation.

=== Stand-alone ===

Stand-alone navigation apps are self-contained: they can calculate routes without needing a network connection once provided with local map data.

==== Sygic ====

Links:
* http://talk.maemo.org/showthread.php?t=34409

Pro: 
* Turn-by-turn voice instructions

Cons:
* Commercial, proprietary, closed source
* Some maps not available

==== Navit ====

Links: 
* [http://www.navit-project.org/ homepage]
* [http://wiki.navit-project.org/index.php/Navit_on_n770/n800/n810 Maemo &lt;= 4 specific page]
* [http://talk.maemo.org/showthread.php?t=38800 Maemo 5 / N900 discussion]
Pro:
* open source 
* turn-by-turn voice instructions 
* uses vector data from openstreetmaps and free garmin maps
* 2d and 3D view option
* touchscreen interface
* flexible with a rich set of configuration options via an XML file
* almost daily development releases, good progress
* as of 2012, this is the only navigation that works without internet access, reroutes, speaks, and has a good interface with a bit effort

Con: 
* works pretty reliably but still rough around the edges
* custom configuration requires modification of XML file in text editor
* Little/no developer interaction via t.m.o.
* Limited search functionality

Tips and Tricks:
* the main communication channel for navit is on IRC. You will find the core hackers there as well as some users. See the navit [http://wiki.navit-project.org/index.php/Contacts Contacts page] for details
* it automatically routes if it has a gps fix and a destination. A destination can either be set by pressing on the map and selecting &quot;set as destination&quot; from the appearing context menu, or via the address search.
* Easy install of latest version on N900 here [http://talk.maemo.org/showthread.php?p=746245 Install script]
* [http://bokomoko.de/~rd/navit-config.tgz Configuration Files] for the N8x0. The files should go to /home/user/.navit and expect maps named *.bin in /media/mmc2/Navit (may be changed by editing the .xml configuration files)
* There is a repository, see [http://talk.maemo.org/showpost.php?p=1191341&amp;postcount=566 this post] and [http://talk.maemo.org/showpost.php?p=1253609&amp;postcount=610 this post] for a nice OSD.

==== Gosmore ====

Links: 
* [http://wiki.openstreetmap.org/wiki/Gosmore homepage] 
* [http://guest.lunatech.com/~neil/maemo/gosmore-maemo/ maemo specific page]

Pro: 
* uses vector data from openstreetmaps

Con: 
* Not yet stable, routing untested
* very few releases, little development progress visible 
* map conversion from openstreetmap format to gosmore .pak format has to be done by user. 
* I did not get gpsd working.

==== Roadmap ====

Links:
* [http://roadmap.sourceforge.net/index.html homepage]
* [https://garage.maemo.org/projects/ maemo garage page]

Pro: 
* Open source
* Use vector maps from OpenStreet Map
* Rich configuration file not in XML 
* Good graphics on the tablet
* Development of the software is active but the portage to the tablet is often two or three releases late

Con: 
* OpenStreet maps must be processed before use. There are a few procedures to do that on PC but sometimes they crash specially with big files. 
* Only one map at a time can be used
* Project is not very active

==== Marble ====

Links:
* [http://talk.maemo.org/showthread.php?t=67316&amp;highlight=marble/ maemo talk thread]

Pro:
* Online and offline (using monav) routing
* Many different map themes

Con:
* Need space to save offline maps

==== Monav ====

Links:
* [http://code.google.com/p/monav/ project page]
* [http://maemo.org/packages/view/monav/ client package]
* [http://wiki.openstreetmap.org/wiki/MoNav osm wiki page]

=== Cloud-Based ===

Cloud-based navigation requires a network connection to calculate routes.

==== Ovi ====

Pro:
* Free (comes pre-installed on N900)
* Good maps

Cons:
* Closed source
* Clunky
* No turn-by-turn voice instructions

==== Maemo Mapper (Maemo4/Diablo)) ====

Links: 
* [https://garage.maemo.org/projects/maemo-mapper/ garage page]

Pro: 
* Open source
* Pretty stable application
* Turn-by-turn voice directions
* Works by default with openstreetmap, but can also use commercial maps
* The maps download is convenient within maemo mapper and maps can be stored on the device. No PC required.

Con: 
* works only with pixmaps (i.e. inefficient map storage)
* Acquiring a new route requires online connection; the connection is not needed to follow a downloaded route.

==== Mappero (Maemo5/Fremantle)====
Mappero is the result of a further development of maemo mapper in Maemo5 (fremantle).

Links:
* [http://blog.mardy.it/search/label/mappero Mappero Developer Blog]
* It uses [https://garage.maemo.org/projects/maemo-mapper/ the same garage page] as maemo mapper

Pro:
* Uses graphic acceleration of the N900
* User interface in Maemo5 look and feel
* Support for different configurable maps sources: OpenStreetMaps, Google, Yahoo, Virtual earth and what not.
* Navigation: turn-by-turn voice navigation (with configurable route providers) in your own language.
* GPS tracking
* File import/export of GPX tracks and routes
* POI handling

Con:
*Same as maemo mapper

==== Mapper ====

* [http://wiki.openstreetmap.org/wiki/User:Onion/Mapper Mapper] is a fork of Maemo Mapper designed for [http://www.openstreetmap.org openstreetmap] data collection.

==== [[modRana| modRana]]====
* [[modRana| modRana Maemo wiki page]]
* [http://modrana.org modrana.org] 
* based on [http://wiki.openstreetmap.org/wiki/Rana Rana]
* [http://maemo.org/packages/view/modrana maemo package]
* [[modranaVoiceOutputTranslation| voice output translation wiki page]]

== Map Editors / Other Tools ==

Editors:

* [http://www.harbaum.org/till/maemo/index.shtml#osm2go OSM2Go] is an editor for [http://www.openstreetmap.org openstreetmap] data.

Map viewers:

* [http://maemo.org/downloads/product/Maemo5/maep/ Maep] (also available [http://maemo.org/packages/package_instance/view/diablo_extras_free_armel/maep/1.3.6/ for N8x0])
* [http://qtmapper.garage.maemo.org/ QtMapper]
* [https://garage.maemo.org/projects/tangogps-me/ tangoGPS]

== Incomplete or Dead Navigation Applications ==

=== Roadnav ===

Links: 
* [http://roadnav.sourceforge.net/ homepage]

I could not get it working so far, no updates on news site since two years.

=== Carman ===

Links:
* [http://openbossa.indt.org.br/carman/ Homepage]

===Wayfinder===

* N800 and N810 come with [http://www.wayfinder.com/ Wayfinder maps] pre-installed. Routing/navigation is not enabled by default and requires a $99/3 years license. Map data and formats are proprietary.
* Wayfinder is defunct

== Keeping Data Costs Down (International Roaming) ==

Some of these tools retrieve map data on the fly, and this can be very costly if you are travelling internationally.  Below, as captured from a post, are some tips that might help.

''I was travelling to Seattle from London a few months back, and anticipated the same sort of data costs. I worked around it quite easily by using MaemoMapper, and using my WiFi at home to download and cache maps for the region. I did this for Google Maps, Google hybrid maps, and OpenStreetmap, giving me the ability to switch back and forth. If I remember correctly, I pulled down map zoom levels of 11 &amp; 9 for the entire western third of Washington, levels 9 &amp; 7 for the specific Everett - Federal Way section, and 9-7-5 from downtown out to the areas where I was going to be staying with relatives. I then added a similar detailed set data for the San Juan Islands, as I thought we might go whale watching. Downloading took a little bit of time for each set, but it didn't distract me much from the TV show I was watching at the time. Elapsed time was 1 hour or so. This was on my N810.  To download maps, look for the &quot;Manage Maps&quot; menu.''

''What this gives you is *not* routing, it gives you maps. If you want routing, the data cost of going online to compute a route and then use it offline with the cached maps should be low. Since there are no voice directions, you'll have to depend on your co-pilot to read from the [[Nokia N900|N900]]. Unless your co-pilot has higher gadget tolerance than mine, swapping driving duties might be sensible. For holidaying, I find maps from OpenStreetmap to be significantly nicer than the &quot;just roads&quot; focus of TomTom/Naviteq maps as the wiki-like nature of things positively encourages people to list parks, walking paths, etc. Windsor Castle and Great Park http://www.openstreetmap.org/?lat=51...layers=B000FTF and the alpine paths of Kandersteg Switzerland http://www.openstreetmap.org/?minlon=7.6556638&amp;minlat=46.4775866&amp;maxlon=7.6956638&amp;maxlat=46.5175866 are two examples.''


[[Category:Software]]
[[Category:Beginners]]
[[Category:GPS]]
[[Category:Fremantle]]
[[Category:Diablo]]</text>
    </revision>
  </page>
  <page>
    <title>Navit</title>
    <id>4678</id>
    <revision>
      <id>49957</id>
      <timestamp>2012-09-29T20:12:32Z</timestamp>
      <contributor>
        <ip>87.180.137.193</ip>
      </contributor>
      <comment>/* Freetype2 */</comment>
      <text xml:space="preserve">Here is some [[Nokia N900|N900]]-specific Navit information.

== Install Pre-Compiled Packages ==
Navit can be installed as described [http://talk.maemo.org/showpost.php?p=1025907&amp;postcount=511 this post]

== Compile ==
Here are instructions how to compile Navit on N900.

=== Create a SDK Image on the Phone ===
Sorry I can't remember exactly reproduceable steps.
Most information about this come from [http://talk.maemo.org/showthread.php?t=32772 this thread].
# Install &quot;easy chroot&quot;.
# Download &lt;code&gt;maemo-sdk-v1_2.img.ext2&lt;/code&gt; from qole.
# Increase temp size &quot;&lt;code&gt;mount -o remount,size=10M /tmp&lt;/code&gt;&quot;
# Chroot into the image.
# Install language package to fix the perl errors.
# Install Nokia binaries.
# Update distribution.
# Download, compile and install [http://quox.org/install/gnu/ GNU autotools].
# Install &quot;&lt;code&gt;librsvg2-bin&lt;/code&gt;&quot; to be able to convert SVG files into PNG files.
# Install SVN client to be able to get the libgarmin source.

=== Freetype2 ===
Maemo has a version with a bug. So use a newer one for Navit.

Download source [http://mirrors.zerg.biz/nongnu/freetype/freetype-2.3.11.tar.gz] and unpack it.

&lt;pre&gt;
./configure --prefix=/opt/navit/lib/3rdparty --libdir=/opt/navit/lib/3rdparty
make
make install
&lt;/pre&gt;

Note: The bug is fixed in CSSU.

=== Libgarmin ===
To support garmin maps you need this driver.

Download source:
svn co http://libgarmin.svn.sourceforge.net/svnroot/libgarmin/libgarmin/dev libgarmin

&lt;pre&gt;
./autosh.sh
./configure --prefix=/opt/navit/lib/3rdparty --libdir=/opt/navit/lib/3rdparty
make
make install

# create so file:
cd src
gcc -shared -o libgarmin.so *.o
cp libgarmin.so /opt/navit/lib/3rdparty
&lt;/pre&gt;

=== Navit ===
Now, you can compile Navit yourself:

Download source [http://navit.svn.sourceforge.net/viewvc/navit/] and unpack it.

&lt;pre&gt;
export PKG_CONFIG_PATH=/opt/navit/lib/3rdparty/pkgconfig/

./autogen.sh

./configure --prefix=/opt/navit --disable-binding-python --enable-avoid-float --enable-avoid-unaligned --enable-svg2png-scaling=&quot;32,48,64&quot; --enable-svg2png-scaling-flag=&quot;32,48,64&quot; --enable-svg2png-scaling-nav=&quot;8,16,32,48,64&quot; --disable-samplemap --disable-graphics-sdl --enable-vehicle-maemo --with-svg2png-use-rsvg-convert --disable-svg

make
make install
&lt;/pre&gt;

=== Configure ===
You have to configure the XMLs in &quot;&lt;code&gt;/home/user/.navit&lt;/code&gt;&quot;.

Now you can start Navit in SDK image:
&lt;pre&gt;
export LD_LIBRARY_PATH=/opt/navit/lib/3rdparty:$LD_LIBRARY_PATH
/opt/navit/bin/navit
&lt;/pre&gt;

=== Package ===
Now create a deb package to install it on N900 outside of the SDK image.

Script:
&lt;pre&gt;
echo &quot;create root dir&quot;
cd &quot;/home/user/reini/package/navit&quot;
version=&quot;0.2.0~svn3708-1_armel&quot;
navit=&quot;navit_${version}&quot;

echo &quot;init&quot;
rm -R -f &quot;$navit&quot;
# my template dir has the following files
# /DEBIAN/prerm
# ./DEBIAN/postinst
# ./DEBIAN/control
# ./opt/navit/bin/navit.sh
cp -R ./template &quot;$navit&quot;

echo &quot;copy navit configuration&quot;
mkdir -p &quot;$navit/home/user/.navit&quot;
cp /home/user/.navit/*.xml &quot;$navit/home/user/.navit&quot;
mkdir -p &quot;$navit/home/user/.navit/sample&quot;
cp /home/user/.navit/sample/*.sh &quot;$navit/home/user/.navit/sample&quot;
cp /home/user/.navit/sample/*.bin &quot;$navit/home/user/.navit/sample&quot;

echo &quot;copy navit binaries&quot;
cp -R /opt/navit/ &quot;$navit/opt&quot;
(
  # keep only so files from additional libs
  cd &quot;$navit/opt/navit/lib/3rdparty&quot;
  rm -R bin include pkgconfig share libfreetype.a libgarmin.a
)

echo &quot;create deb&quot;
dpkg-deb -b &quot;$navit&quot;
&lt;/pre&gt;

Now you have a &quot;[http://members.aon.at/rpr-webs/n900/navit_0.2.0~svn3708-1_armel.deb navit_0.2.0~svn3708-1_armel.deb]&quot; ready for installation on N900.

=== Install ===
&lt;pre&gt;
dpkg -i navit_0.2.0~svn3708-1_armel.deb
&lt;/pre&gt;

== Links ==
* [http://www.navit-project.org/ Navit Project Homepage]
* [http://talk.maemo.org/showthread.php?t=38800 Navit on N900 Discussion]
* [http://wiki.navit-project.org/index.php/Navit_on_Scratchbox_for_N8x0 Compile Navit]
* [[Navigation Tools]]

[[Category:N900]]
[[Category:Software]]
[[Category:GPS]]</text>
    </revision>
  </page>
  <page>
    <title>Nemein backlog</title>
    <id>1783</id>
    <revision>
      <id>31795</id>
      <timestamp>2010-04-01T12:05:20Z</timestamp>
      <contributor>
        <username>feri</username>
        <id>2</id>
      </contributor>
      <text xml:space="preserve">The Nemein backlog page


'''Short term'''

Newstyle on garage and gitweb

Application Catalogue


'''Longer term'''

Single Sign On
* LDAP
* garage
* midgard


'''Done'''

Brainstorm launch

Newstyle polishing

Doc import

Brainstorm implementation

Newstyle on maemo.org</text>
    </revision>
  </page>
  <page>
    <title>Network settings</title>
    <id>2975</id>
    <revision>
      <id>35204</id>
      <timestamp>2010-06-01T23:18:33Z</timestamp>
      <contributor>
        <ip>81.200.31.191</ip>
      </contributor>
      <comment>http://www.googlefight.com/index.php?lang=en_GB&amp;word1=%22doesn%27t+still+work%22&amp;word2=%22still+doesn%27t+work%22</comment>
      <text xml:space="preserve">This article is a HOWTO for different network settings and general connectivity troubleshooting.



== LAN ==

Maemo - device don't have ethernet port, but atleast with older tablets n800&amp;N810 there is an option to use usb to ethernet adapters.

[[USB to ethernet networking]] is good article and should give you enough information. Note: the article is for [http://wiki.maemo.org/category:power%20users Power users]



== WLAN ==

You can change basic WLAN settings and advanced settings includind transmitting power, power save settings et cetera. More specific instructions can be found in the operation manual.

== Proxies ==

You can install a proxy of your own to Maemo. Or you can use existing proxy with a connection. Good instructions can be found from article [[Adding proxy server information for a connection]]

== Troubleshooting ==

=== No connection ===

First thing is to double check all settings from APN name to protection settings and passwords.

From router side you should check that the router doesn't have MAC blocking on or add devices MAC-address to the override table.

=== Connection, still doesn't work ===

Certain WLAN - routers doesn't take kindly to mobile devices power saving modes. Power saving can be disabled from mobile device. The best solution for battery duration is naturally to change routers settings so that the mobile device works with power saving on.

[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Networking</title>
    <id>2302</id>
    <revision>
      <id>44058</id>
      <timestamp>2011-06-15T17:13:28Z</timestamp>
      <contributor>
        <username>olivluca</username>
        <id>155</id>
      </contributor>
      <comment>Link to talk thread with the archive (not available anymore in the previous locations)</comment>
      <text xml:space="preserve">== Built-in wifi (Managed) ==

The built-in wireless card is pictured in detail here: http://talk.maemo.org/showthread.php?t=30032

This interface is wlan0 and uses the closed-source cx3110x driver. For the NITdroid project an open-source driver http://stlc45xx.garage.maemo.org was created. As it stands, the internal wifi chipset is not capable of injection with either of these drivers.

A useful utility is [http://maemo.org/downloads/product/OS2008/wifiinfo WifiInfo] which shows signal strength, internal IP address, power savings toggle and a AP scan option.

Some people have reported difficulty connecting to university wifi systems which use PEAP+MSCHAPv2 authentication. See the [[PEAP+MSCHAPv2 WiFi authentication setup]] page for how to resolve this issue.

=== ad hoc wifi ===

{{main|N900 ad hoc wifi hotspot}}

== External USB wifi (r8187) ==

This is the legacy drive for the RTL8187 chipset. The Alfa 500mW b/g usb adapter uses this as do knock-offs. 
The Alfa goes for about $35, while the knock-off is about $25.

You are going to need more power than the N810 can provide for itself. There are many ways to do this. [http://talk.maemo.org/showthread.php?t=31117] of power injection

Download the archive attached to [http://talk.maemo.org/showthread.php?t=30838 this post].
Untar it somewher (for example to Documents)
 # cd /home/user/MyDocs/.documents/
 # tar -xvf rtl8187_diablo.tar
 # cd rtl8187/

Make script executable
 # chmod a+x r8187-start

Script:
&lt;source lang=&quot;bash&quot;&gt;
 echo host &gt; /sys/devices/platform/msusb_hdrc/mode
 insmod ieee80211_crypt-rtl.ko
 insmod ieee80211-rtl.ko
 insmod r8187.ko
 echo -n 1 &gt; /sys/bus/usb/devices/1-1/bConfigurationValue
&lt;/source&gt;

The first line tells the N810 to set the USB mode as host
The next 3 lines insert the kernel modules in the right order.
The last line is optional, if you have a proper powered hub comment it out, if you are using a y-cable or similar then this tells the N810 to ignore the lack of power messages and use the device anyway. No, this will not work if you do not have the full power requirements; it is merely for when you fulfill the power requirement and the device does not know it.

Plug the microusb end into your N810. A couple error message will pop up, these are normal and just ignore them.&quot;usb device not supported&quot;. then &quot;Unable to connect, no file system available&quot; (hit OK)

 # lsusb        (as root, else there will be no output)
 Bus 001 Device 012: ID 0bda:8187 Realtek Semiconductor Corp.
 Bus 001 Device 001: ID 0000:0000

if no output then you are not root. If the Realtek doesn't show up then try lsusb a few more times, if that doesn't work it means that the wifi card is not being supplied enough power. That is the tricky part regarding external (also card chipset must be supported) usb wifi cards.

Now time to execute the script
 $ ./r8187-start

No output should show (if you run this too early, as in before the popup error messages then it might also have no output). If you have already run this script this session (haven't turned off N810 since) then it will state that it can't insert the kernel modules. If it states that &quot;/sys/bus/usb/devices/1-1/bConfigurationValue&quot; does not exist, it means it is not getting enough power. It might also state that if you have not plugged the cable in.

At this point let's see if everything works.

 # bash
 # airmon-ng
 Interface	Chipset		Driver
 wlan0		Nokia 770	cx3110x
 wlan1		RTL8187		r8187

 # airodump-ng wlan1
At this point we are not using aircrack-ng suite for nefarious use. We are using it because it's reliable and the built-in (and community created) tools are hard-coded for wlan0.
A list of APs/routers should appear as it sees them. We are doing this in leu of a proper scanner (Connections and WifiInfo are hard-coded and iwlist scan wlan1 doesn't work for some reason)

===connect to router===

connect to AP/router
 # iwconfig wlan1 essid MYNETWORKHERE

input key to open AP
 # iwconfig wlan1 key off

check to see if associated with AP
 # iwconfig wlan1

obtain IP address via DHCP (if obtaining leave fails, just run command again until it succeeds)
 # /sbin/udhcpc -n -q -i wlan1

select DUMMY from Network connection dialog box
and browse the web!

If browsing doesn't work, then check if you can ping IP
 ping 4.2.2.2

If that works but ping google.com doesn't then DNS isn't working
 nano /etc/resolv.conf

And make sure a line like this exists:
 NAMESERVER	192.168.1.1

which should point to your router's admin page (default gateway).

===nefarious use===

while on the subject, instead of connecting to router, let's change the mode from Managed to Monitor (injection-capable)
 # airmon start wlan1

Now run airodump to capture packets
 # airodump-ng wlan1 -w savedfile 

Choose a channel to increased efficiency

 # airodump-ng wlan1 -w savedfile -c 6

Open a new terminal window or tab to run some attacks while airodump is running. First we test if injection is working. Not all routers are suseptable to packet injection, range is also a major factor. If at least one router gets over 0% then injection is in fact working correctly.

 # aireplay wlan1 -9

Deauthenticate attack. The X's are the BSSID of the Access Point/Router
 # aireplay wlan1 -0 0 -a XX:XX:XX:XX:XX:XX

Deauthenticate user with the c parameter.
 # aireplay wlan1 -0 0 -a XX:XX:XX:XX:XX:XX -c XX:XX:XX:XX:XX:XX

Fake authentication.
 # aireplay wlan1 -1 5 -a XX:XX:XX:XX:XX:XX

ARP attack. Takes awhile to start injecting packets. ARPs good, ACKs bad.
 # aireplay wlan1 -3 -b XX:XX:XX:XX:XX:XX

== Ethernet ==

{{main|USB to ethernet networking}}

== Bluetooth DUN ==

{{main|Bluetooth DUN}}

== Bluetooth PAN ==

{{main|Bluetooth PAN}}

== USB networking ==

{{main|USB networking}}

[[Category:Power users]]
[[Category:Connectivity]]</text>
    </revision>
  </page>
  <page>
    <title>Networking (Diablo)</title>
    <id>3535</id>
    <revision>
      <id>28503</id>
      <timestamp>2010-02-06T17:49:08Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Networking (Diablo)]] moved to [[Networking]]: Remove version. Probably needs some small updates for Fremantle.</comment>
      <text xml:space="preserve">#REDIRECT [[Networking]]</text>
    </revision>
  </page>
  <page>
    <title>New users</title>
    <id>2647</id>
    <revision>
      <id>49601</id>
      <timestamp>2012-09-10T08:22:57Z</timestamp>
      <contributor>
        <ip>128.214.10.68</ip>
      </contributor>
      <comment>SPAM: Undo revision 49463 by [[Special:Contributions/119.162.32.31|119.162.32.31]] ([[User talk:119.162.32.31|Talk]])</comment>
      <text xml:space="preserve">== Introduction ==

Welcome to maemo.org, the heart of the Maemo community, and the central clearinghouse for things related to the Maemo operating system, and the devices that run it (including the [[Nokia 770|770]], [[Nokia N800|N800]], [[Nokia N810|N810]] and [[Nokia N900|N900]]). You may have come in here from the [http://maemo.org/intro/platform/ intro page], or from a web search, for from a link to the New Users page someplace. Wherever you came from, here's hoping this little page can help satisfy your needs.

If you are new to Maemo, thinking of buying a device like the N900, or just interested in whether or not this is for you, you have come to the right place. Here, and in the pages we point to from here, we will try to answer your questions and concerns. If we don't, then all you need to do is ask (we will tell you how to do that too).

Ready to dive in?

[[#top|top]]

== What is Maemo? ==
Best answered by having a look at this page: [[Maemo basics]] and then [http://maemo.org/intro/platform/ here] if you feel adventurous! 

Maemo was originally created to power Nokia's entry in to the Internet Tablet market. The first device to make use of Maemo was the Nokia 770 in late 2005, followed by the Nokia 800 later renamed to the N800 in early 2007. Both the 770 and the N800 made use of high resolution touch screens and a stylus. The N810 was released in late 2007, adding and removing some features of the N800 (most notably the hardware keyboard).

If you want to know more about the N810, N800 or 770 Internet Tablet, the best place to start is  [[Internet_tablets| here]] and follow the links. You can find out more on the History of Maemo [http://maemo.org/intro/maemo_history/ here].

Because the N900 is likely why you're here, let's talk about that. 

[[#top|top]]

== What is The Nokia N900? ( With FAQ! ) ==
The N900 is the first of Nokia's Internet Tablets to incorporate full Phone functionality.

For some immediate answers to your questions and insight, try the [[Frequently asked questions|FAQ page]], which also covers some other aspects of Maemo devices in general. 

[http://maemo.nokia.com/n900/ Nokia's Official N900 page] also has a great overview you might enjoy reading. The Nokia N900 hardware page can be found [[Nokia_N900|here]].

The N900 runs the Maemo 5 Operating System. Maemo 5 is often referred to by its release name &quot;Fremantle&quot;. If you want an easy intro to many of Maemo5's features you might enjoy the videos on the [[Maemo5_101|Maemo5 101 page]].

[[#top|top]]

== How do I find ''even more'' information? ==
The [http://talk.maemo.org/ talk.maemo.org] site is a community-based discussion (bulletin) board with a great many knowledgeable users, developers, and just plain curious types. It's a great place to find answers to your questions, but you should be sure to use the [http://talk.maemo.org/search.php Search] facility first.

You can then say [http://talk.maemo.org/showthread.php?t=28834 hello], then you can post a message (question) [http://talk.maemo.org/showthread.php?t=32513 here], or perhaps just read on!

There's also now a fledgling [[Greeters|Greeters]] - look at the page for starters, and feel free to ask the people who have spoken up there questions if you need a helping hand.

[[#top|top]]

[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>Nitdroid easy install on EMMC</title>
    <id>4601</id>
    <revision>
      <id>49889</id>
      <timestamp>2012-09-25T18:26:57Z</timestamp>
      <contributor>
        <ip>84.248.192.133</ip>
      </contributor>
      <comment>/* Method 1 */</comment>
      <text xml:space="preserve">{{danger}}
{{ambox|text='''Under heavy construction'''}}



[http://wiki.maemo.org/NITDroid_Port#Links NITDroid Port]


==Installing NITDroid==

This tutorial is specifically designed to install Nitdroid on the internal memory of the N900 (EMMC) and does not apply to installation on an external micro SD card. The main purpose of installing Nitdroid on the internal memory is that in most cases you will see an increased performance.

There are two ways of installing NITDroid:

1. Copy NITDroid's rootfs to /and in /home: Easier - Faster

2. Creating a custom 2GB partition on your eMMC: Cleaner - Requires a brain



===Method 1===
NOTE: It is highly [http://wiki.maemo.org/NITDroid_FAQ#My_memory_for_apps_is_getting_low.2C_what_can_I_do.3F recomended that you flash the modded 8GB 20GB eMMC image]. Nitdroid won't recognize/use/install anything if you have low memory in mmcblk0p2.

1. Download the NITDroid Autoinstaller to ./MyDocs i.e. root directory of N900 and install it:

http://talk.maemo.org/attachment.php?attachmentid=22707&amp;d=1316433657

2. Run the NITDroid installer app from your programs list.

(If installation fails, try writing &quot;apt-get install bzip2&quot; in XTerminal and  uninstall and install again)

===Method 2===
As said before, this requires a brain and a bit of concentration, follow step-by-step, and use some logic.

'''NOTE: This will wipe all of your data, please BACKUP necessary data first.'''

# Download the archive + the kernel + Fdisk to /MyDocs i.e. root dir. of N900:
#* Image: http://downloads.nitdroid.com/e-yes/
#* Kernel: http://downloads.nitdroid.com/e-yes/nitdroid-kernel-2.6.28-07_rc4_armel.deb
#* Fdisk: http://ftp.de.debian.org/debian-archive/debian/pool/main/u/util-linux/util-linux_2.13.1.1-1_armel.deb
# Enable all repositories from App manager ([[Extras-testing]], [[Extras-devel]], [[Extras]] and the default [[User:Jebba/Repositories#Nokia_Official|Nokia repos]])
----

&lt;ol&gt;
&lt;li&gt;
Install Fdisk by executing the following commands in Xterminal:
&lt;pre&gt;
root
mkdir -p /home/user/util-linux /home/user/bin
cp /home/user/MyDocs/util-linux_2.13.1.1-1_armel.deb /home/user/util-linux
cd /home/user/util-linux
dpkg-deb -x util-linux_2.13.1.1-1_armel.deb root
cp root/sbin/fdisk /home/user/bin/
cd ..
rm -rf util-linux
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Unmount designated partition (./MyDocs):
&lt;pre&gt;
umount /home/user/MyDocs
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Launch Fdisk:
&lt;pre&gt;
/home/user/bin/fdisk /dev/mmcblk0
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Print your current partition table: 
&lt;pre&gt;
p 
&lt;/pre&gt;
This table should show up:
&lt;pre&gt;
       Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1               2      884865    28315648    c  W95 FAT32 (LBA)
/dev/mmcblk0p2          884866      950401     2097152   83  Linux
/dev/mmcblk0p3          950402      974977      786432   82  Linux swap / Solaris
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Delete partition 1 (./MyDocs):
&lt;pre&gt;
d
1
&lt;/pre&gt;
&lt;li&gt;
Create new re-sized primary partition:
&lt;pre&gt;
n
p
1
First cylinder: 2
Last cylinder: 800000
&lt;/pre&gt;
&lt;li&gt;
Create new extended partition:
&lt;pre&gt;
n
e
First cylinder: 800001
Last cylinder: 884865
n
First cylinder: 800001
Last cylinder: 884865
t
1
76
t
5
76
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Point of no return - writing the table and syncing:
&lt;pre&gt;
w
reboot
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Ignore any errors. After the reboot, return ./MyDocs back and format the new NITDroid partition by executing these:
&lt;pre&gt;
root
/home/user/bin/fdisk /dev/mmcblk0
t
1
0c
w
umount /dev/mmcblk0p1
mkfs.vfat -F 32 /dev/mmcblk0p1
mke2fs -L NITDroid -j -m0 /dev/mmcblk0p5
reboot
&lt;/pre&gt;
If your device still has a flash memory on it, then lift your shoulders up as the hard part is gone!
&lt;li&gt;
Install Nitdroid on the new partition:
&lt;pre&gt;
apt-get update
apt-get install nitdroid-installer
mkdir -p /and
mount -o noatime,rw /dev/mmcblk0p5 /and
cd /home/user/MyDocs
rm -rf /and/*
bzcat Nitdroidarchivename.tar.bz2 | tar xvC /and
dpkg -i nitdroid-kernel-2.6.28-07_rc4_armel.deb
reboot
&lt;/pre&gt;


&lt;li&gt;
==== Trouble Booting NITDroid ====


If you cannot boot into NITDroid because of an error like this one:

&quot;Root Filesystem mmcblk1p5 missing&quot;
Guru Meditation 0000025...etc


Try following:

Edit /etc/multiboot.d/11-NITDroid-mmcblk0p5-*.item with an editor of your choice (eg. nano).
&lt;pre&gt;
apt-get install nano
nano /etc/multiboot.d/11-NITDroid-mmcblk0p5-2.6.28.NIT.07.item  #check filename!
&lt;/pre&gt;

And change the line ITEM_DEVICE={INT_CARD}p5 to:
&lt;pre&gt;
ITEM_DEVICE=mmcblk0p5
&lt;/pre&gt;

reboot with opened keyboard and try to start NITDroid.
&lt;/li&gt;&lt;/ol&gt;

== Uninstalling NITDroid ==
=== Method 1 ===
Tap on the NITDroid-Uninstaller on your menu.

=== Method 2 ===
Open X Terminal and type the following commands:
&lt;ol&gt;
&lt;pre&gt;
root
mount -o noatime,rw /dev/mmcblk0p5
rm -rf /and/.
&lt;/pre&gt;
&lt;/ol&gt;
Then uninstall multiboot by anyway you prefer.

[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>NokiaWorld 2009 QA</title>
    <id>2369</id>
    <revision>
      <id>17229</id>
      <timestamp>2009-09-01T21:39:49Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[NokiaWorld 2009 QA]] moved to [[Nokia World 2009 QA]]: No CamelCase!</comment>
      <text xml:space="preserve">#REDIRECT [[Nokia World 2009 QA]]</text>
    </revision>
  </page>
  <page>
    <title>Nokia 770</title>
    <id>8</id>
    <revision>
      <id>38863</id>
      <timestamp>2010-09-22T08:47:41Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix typo</comment>
      <text xml:space="preserve">[[Image:770.jpg|frame|left|alt=Photo of a Nokia 770 device|Nokia 770]]

On May 25, 2005, Nokia announced the first Internet Tablet, the 770, at LinuxWorld Summit. It became available to consumers on November 3rd, 2005. It came with the first version of Maemo (OS2005) preinstalled, although it was possible to upgrade to OS2006, released in January 2007, with a [[updating the firmware|firmware update]].

==See also==

* http://nokia.com/770
* [[:wikipedia:Nokia 770|Nokia 770 Wikipedia article]]

{{devices}}

[[Category:770]]</text>
    </revision>
  </page>
  <page>
    <title>Nokia N800</title>
    <id>9</id>
    <revision>
      <id>38603</id>
      <timestamp>2010-09-14T09:34:24Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Developer information */ direct link</comment>
      <text xml:space="preserve">== General information ==

* [[:wikipedia:Nokia N800|N800 article at Wikipedia]]

== Developer information ==

* [[Programming N800 FM radio receiver|Programming the N800's FM radio]]

{{devices}}

[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>Nokia N810</title>
    <id>10</id>
    <revision>
      <id>41138</id>
      <timestamp>2011-01-18T11:18:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* LP5521 LED controller */ add http:// to link</comment>
      <text xml:space="preserve">[[Image:N810.jpg|frame|right|alt=Photo of N810 with hardware keyboard extended|Nokia N810]]

Originally announced October 17th, 2007. As for hardware specs, it is similar to its predecessor, the [[Nokia N800]]. The differences are that it has 2 GB of storage memory, a daylight readable screen, a non-rotating camera on the face of the device, and a back-lit sliding keyboard. It also has an ambient light sensor to automatically adjust backlight levels based on the amount of light, as well as integrated GPS (A-GPS is used in [[Open development/Maemo roadmap/Diablo|Diablo]]) and a single miniSDHC card slot.

See also http://europe.nokia.com/n810 and the [[:wikipedia:Nokia N810|Nokia N810 Wikipedia article]]

An additional variant introduced in 2008 is the [[Nokia N810WME|WiMax edition]].

== Hardware Details ==

=== OMAP2420 System-on-a-Chip ===

This is the heart of the N810. 

The OMAP2420 includes an integrated ARM1136 processor (400 MHz), a TI TMS320C55x™DSP (220 MHz), 2D/3D graphics accelerator (the 3D accelerator is not used in official firmware but there is an [[MBX drivers status|alpha-quality driver available]]), imaging and video accelerator, high-performance system interconnects and industry-standard peripherals.

* Product Homepage: http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?contentId=4671&amp;navigationId=11990&amp;templateId=6123

=== TSL2563 Ambient Light Sensor ===

{{main|N810 light meter}}

This is an I2C-attached light-to-digital converter
* used to estimate the ambient light level
* Datasheet: http://news.thomasnet.com/pdf/478523.pdf 
* I2C slave address: 0x29

=== TLV320AIC33 Audio Codec ===

This is an I2C-attached stereo audio codec
* Product Homepage: http://focus.ti.com/docs/prod/folders/print/tlv320aic33.html
* Datasheet: http://www.ti.com/lit/gpn/tlv320aic33
* I2C slave address: 0x18

=== LP5521 LED controller ===

This is an I2C-attached programmable LED controller.
* Datasheet: http://www.national.com/ds/LP/LP5521.pdf
* I2C slave address: 0x32

=== TMC825x CMOS sensor ===

This is the CMOS camera sensor. It is Attached to the OMAP2 camera interface (video data) and I2C (control).
* I2C slave address: 0x3d

=== LM8323 Keyboard ===

This is the keyboard controller.
* I2C slave address: 0x45

{{devices}}

[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>Nokia N810WME</title>
    <id>11</id>
    <revision>
      <id>34281</id>
      <timestamp>2010-05-12T11:57:16Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use {{devices}}</comment>
      <text xml:space="preserve">==The Nokia N810 WiMAX Edition Internet Tablet==
On April 1, 2008, Nokia announced a new variation of the [[Nokia N810|N810 Internet Tablet]] at CTIA. With an appearance almost identical to that of the base N810, the N810 WiMAX Edition will operate on Clearwire and Sprint's Xohm WiMAX network. Sprint and Nokia have said that activating WiMAX can be done from the device with no WiFi connection. Sprint also says that WiMAX will be done in a pay-as-you-go method. This means that one will be able to purchase a length of time (day, week, month, year, etc.) instead of being locked to paying a certain amount every month.

==See also ==

* http://europe.nokia.com/n810wimax
* [[:wikipedia:N810#Nokia_N810_WiMAX_Edition|N810 WiMAX Edition at Wikipedia]]

{{devices}}

[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>Nokia N9</title>
    <id>5082</id>
    <revision>
      <id>50547</id>
      <timestamp>2012-10-29T01:26:47Z</timestamp>
      <contributor>
        <username>wikiwide</username>
        <id>3163</id>
      </contributor>
      <minor/>
      <comment>[[Category:Devices]]</comment>
      <text xml:space="preserve">N9 Phone is running [[Maemo]]/[[Harmattan]] ...

= More =

https://docs.google.com/document/d/sFo9y3IA5VPE0y3A9FQsvkA/edit?disco=AAAAAECyYJc

[[Category:Devices]]
[[Category:N9]]
[[Category:N9 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>Nokia N900</title>
    <id>2854</id>
    <revision>
      <id>45565</id>
      <timestamp>2011-10-13T14:29:29Z</timestamp>
      <contributor>
        <username>nin101</username>
        <id>4525</id>
      </contributor>
      <minor/>
      <comment>/* Memory */  768 MB swap is on EMMC, not on NAND</comment>
      <text xml:space="preserve">The [[Nokia N900|N900]] is the first [[Maemo]] device which may also be used as a phone. 

[[Image:N900.jpg|frame|center|alt=Photo of N900 with open keyboard|Nokia N900]]

==Features==

===Accelerometer===

{{main|N900 accelerometer}}

===Battery===

[http://www.flickr.com/photos/rafeblandford/4035761230/sizes/m/in/photostream/ BL-5J 3.7V] Li-Ion 1320 mAh. See this thread for [http://talk.maemo.org/showthread.php?t=31394 reported usage]

===Camera Stills===

Some features are only available with the [[Maemo 5/Latest Version|latest firmware]].

{| class=&quot;wikitable&quot;
|+ Still camera functionality
|-
! Feature
! Capability
|-
|Capture Resolutions
|5 megapixel (2576x1936 pixels; 4:3), 3.5 megapixel (2560x1440 pixels; 16:9), 3 megapixel (2048x1536 pixels; 4:3), 1.3 megapixel (1280x960 pixels; 4:3)
|-
|Flash
|Dual LED
|-
|Lens
|Carl Zeiss optics, Tessar, 5.2 mm focal length, f/2.8, fixed aperture, focus 10 cm to infinity
|-
|Physical Features
|Hardware shutter button, with [http://www.flickr.com/photos/rafeblandford/4035000745/in/set-72157622641562768/ Lens Cover]
|-
|Sensor 
|CMOS 1/2.5&quot; 31.2 mm focal length ([[:wikipedia:35 mm equivalent focal length|35 mm equivalent]])
|-
|Zoom
|3X Digital
|-
|Socketed
|Replacable in case of damage or malfunction. In principle upgradable.
|}

Sample pictures are available from the [http://www.flickr.com/groups/1184299@N24/ Flickr N900 Group].

====Camera Application====

This application only works in Landscape

{| class=&quot;wikitable&quot;
|+ Camera application functionality
|-
! Feature
! Capability
|-
|Capture Modes
|Automatic, Night, Macro, Landscape, Portrait, Action
|-
|Edit Options
|Crop, Rotate
|-
|Exposure Options
|Automatic, ISO 100, 200, 400
|-
|Flash Mode
|Automatic, Red Eye reduction, Always Off, Always On 
|-
|White Balance
|Automatic, Sunny, Cloudy, Tungsten, Fluorescent
|}

===Camera Video===

{| class=&quot;wikitable&quot;
|+ Video camera functionality
|-
! Feature
! Capability
|-
|Features
|4X digital video zoom, autofocus, enable/disable microphone
|-
|Video Formats
|MPEG-4 Video
|-
|Video Modes
|Automatic Video, Night Video
|-
|Video Resolutions
|WVGA: 848x480 (16:9) @ 25 fps, VGA: 640x480 (4:3) @ 25 fps, QVGA: 320x240 (4:3) @ 25 fps
|-
|White Balance
|Automatic, Sunny, Cloudy, Tungsten, Fluorescent
|}

===Connectivity===

{| class=&quot;wikitable&quot;
|+ Connectivity functionality
|-
! Feature
! Capability
|-
|Audio/Video Out
|Nokia AV 3.5 mm inc. TV Out (included cable [http://europe.nokia.com/find-products/accessories/all-accessories/memory-cards-and-cables/cables/nokia-cable-ca-75u CA-75U])
|-
|Bluetooth
| V2.1 +EDR with Following profiles A2DP,AVRCP,FTP,HFP,HSP,OPP (DUN PAN HID [[Fremantle_Unsupported_Bluetooth_profiles|via customisation]])
|-
| [[N900 FM radio receiver|FM receiver]]
|RDS, US/EU/Japan bands, Headphone cable for antenna
|-
| [[N900 FM radio transmitter|FM transmitter]]
|Internal antenna, 88.1 to 107.9 MHz
|-
|GSM 
|Quad-band EDGE 850/900/1800/1900
|-
|GPS
|A-GPS, GPS receiver, Network Positioning
|-
|[http://www.flickr.com/photos/rafeblandford/4035032557/ Infra Red Port]
|Community support of [[:wikipedia:Consumer_IR|CIR]] from [http://irreco.garage.maemo.org/ Irrecco project]
|-
|WCDMA
|900/1700/2100 MHz, Tmobile 2100 Mhz, U.S only
|-
|[http://www.flickr.com/photos/rafeblandford/4035785032/in/photostream/ Micro USB] 
|([[N900_Hardware_USB_Host|USB host mode in development]]) USB 2.0, USB Mass Storage, USB Charging
|-
|WiFi
|802.11 b/g :WEP, WPA, WPA2 (AES/TKIP), UPnP, DLNA Certification
|}

===Memory===

{{main|N900 filesystem}}

{| class=&quot;wikitable&quot;
|+ Memory specification
|-
! Feature
! Capability
|-
|Application memory 
|1.93 GB see the page on [[Documentation/Maemo_5_Developer_Guide/Packaging%2C_Deploying_and_Distributing/Installing_under_opt_and_MyDocs|using /opt for applications]]
|-
|Expandable memory
|[http://www.flickr.com/photos/rafeblandford/4035762146/sizes/m/ Micro SD slot] for up-to 32 GB additional 
|-
|Internal storage
|Maximum built in user storage 32 GB
|-
|System memory 
|1 GB (256 MB SDRAM plus 768 MB swap on EMMC)
|}

The media player can use both the internal 32 GB and micro SD card as storage.

===Detailed Hardware information===

{{main|N900 Hardware Subsystems}}

== Further reading ==

See also the following articles

* [[:wikipedia:Nokia_N900|Nokia N900 article on Wikipedia]]
* [https://fjallfoss.fcc.gov/prod/oet/forms/blobs/retrieve.cgi?attachment_id=1150151&amp;native_or_pdf=pdf N900 internal Photos]
* [[Comparison of tablet models]]
* [[N900 Web Applications]]
* [[Updating the firmware]]
* [[N900 Accessories]]
* [[N900 shortcuts and gestures]]
* [[N900 Hardware Power Consumption]]
* [[N900 Hardware Hacking]]

{{devices}}

[[Category:N900]]
[[Category:N900 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>Nokia N950</title>
    <id>4903</id>
    <revision>
      <id>50549</id>
      <timestamp>2012-10-29T01:31:36Z</timestamp>
      <contributor>
        <username>wikiwide</username>
        <id>3163</id>
      </contributor>
      <minor/>
      <comment>--[[Category:N9]]</comment>
      <text xml:space="preserve">{{ambox
|type=warning
|text=Attention, this page is UNDER CONSTRUCTION and still holds many incorrect facts copied over from N900 template. This warning will get removed once all those incorrect copies are corrected or cleaned out}}

The [[Nokia N950|N950]] is the second [[Maemo]] / [[Harmattan]] device which can be used as a phone. It is a development platform for the [[Nokia N9]].

It is only available to developers, and not as a consumer product.
It shares much hardware with the [[Nokia N9|N9]], with the notable differences that the display is TFT, not OLED, and there is a hardware keyboard.

Further details are also available on the MeeGo Wiki: [http://wiki.meego.com/N950_landing_page N950 landing page]

[[Image:N950.jpg|frame|center|alt=Photo of N950 with open keyboard. From http://twitpic.com/5enaym|Nokia N950]]


=Hardware=
==N9/950 differences==
{|
|Feature
|N950
|N9
|-
|Size
|Larger, Aluminium case. 
124 x 60 x 14 mm
|Smaller, Polycarbonate one-part case.
|-
|Input devices
|Slide-out keyboard
|Touchscreen only
|-
|Display (854*480)
|4&quot; TFT
|3.9&quot; AMOLED 
|-
|Camera
|12MP (Toshiba HES7 Series)
|8MP Carl Zeiss
|-
|Front Camera (identical)
|Top right
|Bottom Right
|-
|Bluetooth
|2.1+EDR
|2.1+EDR
|-
|NFC
|No
|Yes
|-
|Compass and Accelerometer
|Less Sensitive
|More Sensitive
|-
|Battery
|1320mAh or 1400mAh
|1450mAh
|}



Due to the use of different display technologies, on the N9, developers should avoid one pixel width fonts(?) and graphical objects with lines one pixel wide. Also avoid the extensive use of bright colors, especially white, when developing for OLED displays as this increases the power consumption (typical for OLED displays). See [http://en.wikipedia.org/wiki/PenTile_Matrix_Family this page on common OLED pixel arrangements for more info]

==Features==

===Accelerometer===

===Compass===


===Battery===
N950 has BL-4D (1200mAh) or BV-4D (1320 or 1400 mAh) battery.

===Front Camera===
The N950 has a front-facing camera in the top right corner (portrait mode) of the display.

===Main camera===

{| class=&quot;wikitable&quot;
|+ Still camera functionality
|-
! Feature
! Capability
|-
|Capture Resolutions
|12MP (reduced by Camera application to 8MP)
|-
|Flash
|dual LED
|-
|Lens
|non-Zeiss f/2.2, 2.8mm focal length, 10cm to inf. focus
|-
|Physical Features
|Resolution 4016 x 3016 px still, 1280 x 720 px 30fps video
|-
|Sensor 
|CMOS
|-
|Zoom
|4x digital
|-
|
|}

* The main camera is to be replaced by a 12MP unit.

===Video Camera===



===Connectivity===

{| class=&quot;wikitable&quot;
|+ Connectivity functionality
|-
! Feature
! Capability

|-
|Bluetooth
|Bluetooth version 2.1+EDR
|-
|GSM 
|Quad-band &lt;s&gt;EDGE&lt;/s&gt; 850/900/1800/1900
|-
|WCDMA
|penta-band WCDMA 850/900/1700/1900/2100 MHz
|-
|GPS
|A-GPS, GPS receiver, Network Positioning
|-
|[http://www.flickr.com/photos/rafeblandford/4035785032/in/photostream/ Micro USB] 
|([[N900_Hardware_USB_Host|USB host mode in development]]) USB 2.0, USB Mass Storage, USB Charging
|-
|WiFi
|802.11 b/g/n (with flaws) :WEP, WPA, WPA2 (AES/TKIP), UPnP, DLNA Certification
|}

===Memory===

{| class=&quot;wikitable&quot;
|+ Memory specification
|-
|System memory 
|1GB true RAM
|}


=Software=

The OS is maemo-6, codenamed Meego-[[Harmattan]]. The core OS still is maemo based and unrelated to http://www.meego.com/ though APIs and the UX are in some cases similar to meego_proper.

Nokia seems to refer to this device as N9-devkit: https://www.developer.nokia.com/Devices/MeeGo/#article2   http://www.engadget.com/photos/nokia-n950-press-shots/#4243171

Based on  https://www.developer.nokia.com/Devices/Device_specifications/N9/ and http://www.developer.nokia.com/dp?uri=http://sw.nokia.com/id/3744886f-69c1-4544-8ad3-72b352b4a832/Nokia_N950_OneClickFlashers_Release_Notes

= More =

http://wiki.maemo.org/Category:Harmattan

[[Category:Devices]]
[[Category:N950]]
[[Category:N950 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>Nokia N950 Hardware Misc</title>
    <id>4905</id>
    <revision>
      <id>44229</id>
      <timestamp>2011-06-28T15:58:17Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <comment>/* Software */</comment>
      <text xml:space="preserve">This page is a temporary space for relatively unformatted information about the N950 and N9.
=Hardware=

[https://fjallfoss.fcc.gov/oetcf/eas/reports/ViewExhibitReport.cfm?mode=Exhibits&amp;RequestTimeout=500&amp;calledFromFrame=N&amp;application_id=339630&amp;fcc_id=%27LJPRM-680%27 FCC approval of N950]

=Software=
dmesg [http://paste.ubuntu.com/634371/ of a booting n950 is here]

=Related efforts=
=Release Notes= 
https://www.developer.nokia.com/info/sw.nokia.com/id/3744886f-69c1-4544-8ad3-72b352b4a832/Nokia_N950_OneClickFlashers_Release_Notes.html

=Licence compatible pics=
http://dragly.org/?attachment_id=494
[[category:N950 Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>Nokia World 2009 QA</title>
    <id>2368</id>
    <revision>
      <id>32611</id>
      <timestamp>2010-04-13T13:39:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify link</comment>
      <text xml:space="preserve">These are questions originally posted for attendees of the [http://events.nokia.com/nokiaworld/ Nokia World 2009] event. 
The answers come from people attending this event or the Maemo Summit 2009 in Amsterdam and owning a N900 prototype.
Feel free to add answers or remove wrong/outdated answers - it's a wiki!

== General ==

* What is your favorite improvement? 
*: Size, screen, responsiveness &amp; UI --[[User:jaffa|Jaffa]] 16:17, 2 September 2009 (UTC)
*: Size, speed, comms integration (transparent skype/gmail/voip/GSM talk), Maemo5 --[[User:twaelti|tom2]] 14:54, 14 October 2009 (UTC)
* What is the biggest change from previous tablets?
*: Always-on data - really changes your use cases --[[User:jaffa|Jaffa]] 16:17, 2 September 2009 (UTC)
* How has holding and playing with the N900 changed or re-enforced your previously held opinions about it?
*: It's definitely a cool device; I want one and it's going to compete with WebOS &amp; Android IMHO --[[User:jaffa|Jaffa]] 16:17, 2 September 2009 (UTC)
*: It simply rocks. Things like screen size and keyboard become irrelevant the moment you begin to use it. I'm still blown away by the power and potential of the N900 --[[User:twaelti|tom2]] 14:54, 14 October 2009 (UTC)

== Carrier and release date ==

* Is there a CDMA version planned and, if yes, when?
* Are there any (later) release plans for the &quot;unselected&quot; markets

=== Answered ===
* Is the purchasing of the N900 independent from a special carrier and/or a special contract? If not, who are the carriers?
*: It'll be available direct from Nokia at an unsubsidized base price of €500 (+ taxes). It'll also be available subsidized via carriers --[[User:jaffa|Jaffa]] 16:19, 2 September 2009 (UTC)
*: I heard (at #maemo) that carriers could add a discount around 150€ or larger if signing a 2-years contract
* Which are the selected markets?
*: Supported languages in http://maemo.nokia.com/n900/specifications/ may give some hint, at least Czech and Polish is new since N810 days --[[User:fanoush|fanoush]] 10:40, 8 September 2009 (UTC)
* Is possible to disable data tranfer when in roaming?
*: Yes, there's a menu option for data when roaming - default is &quot;ask&quot;, AFAICT --[[User:jaffa|Jaffa]] 16:19, 2 September 2009 (UTC)

== General hardware ==

* Is the screen transflexive as on the N810? If not how is readability is glaring sunlight?
* Does the 3.5mm connector support audio-in?

=== Answered === 

* Is the touchscreen pressure sensitive?
*:I don't believe it is. --[[LA]] 10:10, 7 Sept 2009
*:I do think it is, instead...why it shouldn't? --[[User:anidel|anidel]] 11:58, 7 September 2009 (UTC)
* What's the &quot;button&quot; on top, right of the camera button?
*: It's the consumer infrared port (CIR).
* Will I be able to charge while listening to wired headphones?   {E.g. on a long car trip} --[[User:rwfarley|RWFarley]] 02:09, 5 September 2009 (UTC)
*: Yes. Charging goes using microUSB, listening is with 3.5mm headjack --[[User:twaelti|twaelti]] 12:18, 5 September 2009 (UTC)
* Is there a compass (for so-called &quot;augmented reality&quot; apps)?
*: It seems not --[[User:jaffa|Jaffa]] 16:26, 2 September 2009 (UTC)
*:: But a Nokia representative said on video that it has a digital compass? http://talk.maemo.org/showthread.php?t=31292
* Is the battery hot-swappable?
*: No. --[[User:jaffa|Jaffa]] 16:26, 2 September 2009 (UTC)
* How usable is the N900 in portrait mode?
*: Things which support portrait (e.g. phone, Conboy) are fine. It's not very widespread in built in apps. --[[User:jaffa|Jaffa]] 16:26, 2 September 2009 (UTC)
* Is the N900 going to have dedicated keys for language specific characters (like åäö for us swedes for example?)
*: There's a character palette which pops up as an overlay when you press blue arrow/Ctrl --[[User:jaffa|Jaffa]] 16:26, 2 September 2009 (UTC)
*: Will have physical skands: http://www.matkapuhelinfoorumi.fi/keskustelu/showthread.php?t=53304 or [http://translate.google.com/translate?hl=fi&amp;sl=fi&amp;tl=en&amp;u=http%3A%2F%2Fwww.matkapuhelinfoorumi.fi%2Fkeskustelu%2Fshowpost.php%3Fp%3D1058146839%26postcount%3D3 google translate]
* Where will power come from for extended host-mode
*: Given Nokia don't &quot;support&quot; host mode, it'll have to be some kind of adapter if you want to charge the N900 and power an external device --[[User:jaffa|Jaffa]] 16:26, 2 September 2009 (UTC)
* Does the camera zoom while shooting video? 
*: Yes. Currently in steps - dunno if they're going to make it smooth. --[[User:jaffa|Jaffa]] 16:26, 2 September 2009 (UTC)
* Is there a lanyard attachment?
*: NAFAICT. --[[User:jaffa|Jaffa]] 16:26, 2 September 2009 (UTC)
*: Not included in the box, but there is a lanyard fixing on the bottom left corner.
* Does the &quot;vsync tearing&quot; as seen in videos (e.g. when swiping left and right between the desktops) appear in real life, or is it just an artefact that shows up when being videoed?
*: There's a small amount of tearing in real world usage, but this is still pre-production software &amp; hardware. Not really noticeable --[[User:jaffa|Jaffa]] 16:26, 2 September 2009 (UTC)
* How long the battery last in a normal usage?
*: Don't know yet - again, there's still lots of work going on to get it as much as possible. --[[User:jaffa|Jaffa]] 16:26, 2 September 2009 (UTC)
* possibly 3 days for normal phone usage. with some occasional webbrowsing maybe 1 - 2 days. it easily survives a day, though
* Is the memory card hot-swappable? 
*: ''Answer: Yes''
* Is a stylus included and, if yes, is there an extra stylus too?
*: ''Answer: A stylus is included. But no extra one.
* Will charging be possible with a 2mm Nokia charger in addition to USB charging? 
*: ''Answer: Nokia charger adaptor (CA-146C) is included. With this adaptor you can use conventional Nokia charger to charge via USB''
* Can we use FM without plugging in headset, i.e. does it have an internal FM antenna? 
*: It does not have an internal antenna. However, there will be software that allows listening through the loudspeakers while the headset serves as antenna. --[[User:twaelti|tom2]] 15:45, 14 October 2009 (UTC)
*: It has BCM2048 Bluetooth / FM receiver combo chip and there is software for it available from the community --[[User:pycage|pycage]] 14 October 2009
* Does the TV out support VGA out too? And what are the available modes (PAL/NTSC/?) 
*: Uses a Nokia CA-75U cable for video out. --[[User:nathanael|nathanael]] 20:03, 1 September 2009 (UTC)
*: Menu in &quot;Settings&quot; shows NTSC &amp; PAL as options. --[[User:jaffa|Jaffa]] 16:26, 2 September 2009 (UTC)
*: VGA is not supported, only PAL and NTSC. The cable is 150cm long. --[[User:twaelti|tom2]] 15:45, 14 October 2009 (UTC)
* Does it have a backlit keyboard? 
*: Yes. It is lit depending on the information from the light sensor --[[User:twaelti|tom2]] 15:45, 14 October 2009 (UTC)
* Is there a front-facing camera? 
*: Yes, Specs are 640x480 --[[User:nathanael|nathanael]] 19:45, 1 September 2009 (UTC)
* Is it possible to turn off the cellular radio?
*: Yes, independently from the usual Offline mode which also turns Wi-Fi off (as shown on a menu screenshot). --[[User:javispedro|javispedro]] 23:49, 1 September 2009 (UTC)
*: Quim in a thread, stated removing the sim card will disable the cellular. --[[User:nathanael|nathanael]] 21:41, 2 September 2009 (UTC)
* Does it have a true GPS chip or just A-GPS
*: Proper GPS. If you want coarse accuracy (e.g. to report city-level location as part of IM status) it can use cell data. This is also used to give A-GPS fast fixes. --[[User:jaffa|Jaffa]] 06:40, 3 September 2009 (UTC)
*: The pre-production devices have issues acquiring a lock without a network connection [https://bugs.maemo.org/show_bug.cgi?id=5337]. Perhaps this will be improved in the final firmware. --[[User:joenix|joenix]] 13 November 2009 (UTC)

== Audio ==

* What are the maximum sampling rates on audio output/input?
* Is it possible to record high-quality (i.e. high bitrate) audio from the built-in microphone?
* How is the noise floor?

=== Answered ===
* Does the N900 support any kind of remote control (with next/previous song, play/pause and volume buttons) for the music player? Is it possible to use the remote (AD-54) that comes with N97 and N95?
*: No, not according to the manual --[[User:twaelti|tom2]] 15:47, 14 October 2009 (UTC)
* How does the N900 compare in volume to the N95/N800/N810 speakers 
*: ''Comment: Will depend on hardware available (I'll have my N810) and loudness on show floor. --06:56, 1 September 2009 (UTC)''
*: Seems the same or close to me-- in other words, too low IMO.--[[User:texrat|texrat]] 10 November 2009
* Could you test the sound with high-quality headphones? 
*: Unlikely - unless there are very good headphones available there. I'll take my &quot;normal&quot; headphones --06:56, 1 September 2009 (UTC)
* Is there of will be Vorbis OGG support?
*: Ogg Vorbis and FLAC are supported by a community add-on --[[User:pycage|pycage]] 14 October 2009

== Maemo 5 ==

* Will we be able to set the processor governor to performance mode like we could with the OMAP2 in the N8x0 devices?
* Are Dynamic WEP 802.1x WiFi connections supported?
* When a BT or USB keyboard is plugged in, can you switch tasks with Alt-Tab? Does it work like a desktop Alt-Tab or like the Diablo Alt-Tab?

* Output of
** df
** cat /proc/partitions
** free
** cat /proc/meminfo
** dmesg
** lsmod


=== Answered ===
* Are there connectivity preferences (i.e., choose WiFi over cellular)
*: Yes. Autoswitches - seems very cool --[[User:jaffa|Jaffa]] 16:29, 2 September 2009 (UTC)
*: In Internet Connection Settings, there's an option to 'Switch to WLAN when available'. So, yes, it will switch to WIFI from Cell network if you tell it to. -- LA 10:16, 7 Sept 2009
* Is DUN supported?
*: Not out-of-the-box, but see threads on tmo for details of how BlueZ should make it straight forward (same for PAN, too) --[[User:jaffa|Jaffa]] 16:29, 2 September 2009 (UTC)
* Is it possible to disable transitions? 
*: ''Answer: There's already an app in Fremantle extras, put together by Urho Kontorri. --[[User:jaffa|Jaffa]] 06:56, 1 September 2009 (UTC)''
* Which kind of &quot;Shared Folders&quot; (Bluetooth, UPnP, Samba) appear in the File Manager? 
*: ''Answer: Samba is no longer supported. --[[User:javispedro|javispedro]] 22:14, 1 September 2009 (UTC)''
* How do you pull up a menu? 
*:  ''Answer: Tap the title bar as in every Maemo version to date (see SDK &amp; videos) --[[User:jaffa|Jaffa]] 06:56, 1 September 2009 (UTC)''
* How do you switch tasks, or close the app? 
*:  ''Answer: See the videos, screenshots and SDK. Tap top-left to open Exposé-like switcher which has a close button. Top-level screen of each app also has an &quot;X&quot; icon. --[[User:jaffa|Jaffa]] 06:56, 1 September 2009 (UTC)''
* Can we connect USB or Bluetooth keyboard, gamepad and mouse? 
*: ''Answer: From Threads: Yes, as is supported by BlueZ stack.''
* Is there any system monitor to see in real time? 
*:  ''Answer: Every Maemo device to date has shipped with top --[[User:jaffa|Jaffa]] 06:56, 1 September 2009 (UTC)''
*: http://maemo.org/packages/view/maemo5-load-applet/ --[[User:jaffa|Jaffa]] 22:14, 1 September 2009 (UTC)
*: http://www.flickr.com/photos/clankennedy/3868820466/ -- qwerty12
* Is the telephony stack on the N900 open source? Did they use the [http://ofono.org oFono] stack, or something proprietary? 
*:  ''Answer: oFono is not used in the N900 (for Fremantle): http://talk.maemo.org/showpost.php?p=317522&amp;postcount=6 --qwerty12''

== Harmattan ==

* Will Harmattan support the N900? If so, how is the upgrade process likely to work?

== Built-in applications ==

=== Answered ===
* Is SIP supported?
*: Yes, through rtcom-accounts-plugin-sip -- [[User:joenix|joenix]] 13 November 2009
* How is video chat support?
*: Currently there is no support. However, this might change with final software and later patches --[[User:twaelti|tom2]] 15:50, 14 October 2009 (UTC)
* Is there support for &quot;normal&quot; Jingle as opposed to the version Google Talk uses?
*: Yes, voice works with other clients as well (tested with Empathy) [[User:joenix|joenix]] 13 November 2009
* Is it still possible to connect to non-Google/Ovi XMPP servers?
*: Yes [[User:joenix|joenix]] 13 November 2009
* What calendar sync features are supported? Is the synching with Google Calendar supported similar with Android one?
*: Using the included Mail for Exchange, you can easily sync your Calendar and COntacts from Google to your N900
* Will the calendar application be open source?
*: Currently the calendar is closed source. There are open source alternatives, like mcalendar and gpe-calendar. [[User:joenix|joenix]] 13 November 2009
* Can the calendar application access remote calendars over caldav?
*: No [[User:joenix|joenix]] 13 November 2009
* Is WebDAV synchronization supported?
*: No [[User:joenix|joenix]] 13 November 2009
* Is it possible to have multiple calendars, contacts, task lists and lists of memos?
*: Yes [[User:joenix|joenix]] 13 November 2009
* Is it possible to sync via the USB cable with a Free, Open and Documented protocol? 
*: =&gt; Is it possible to sync with Evolution ?
* Is it possible to extend the &quot;sharing&quot; feature of the Camera application with plugins to support, for example, Picasa, TwitPic, Imageshack ecc... ?
*: Yes [[Documentation/Maemo_5_Developer_Guide/Architecture/Imaging_and_Sharing]] [[User:joenix|joenix]] 13 November 2009
* Does it support sending/receiving MMS?
*:''It seems not for the time being''[http://talk.maemo.org/showpost.php?p=318414&amp;postcount=419]
* What is the exact protocol used in Google VoIP
*: ''Answer: XMPP'' 
* Is there Jabber/XMPP support? 
*: ''Answer: It has been supported in Maemo since the very first days, and it actually appears in the videos. --[[User:javispedro|javispedro]] 22:12, 1 September 2009 (UTC)''

== Browser ==

* Does the browser support client-side SSL Certificates?
* Will be there support for Nokia WRT or W3C widgets?
* How is HTML5 support?
* How is playback on sites like [Hulu.com], [openflv.com]?
* Does it crash when you add stuff to your basket on [amazon.com]?
* Does the Flash plugin support the front webcam to be able to use it in websites like www.ustream.tv or www.justin.tv ?
* Can I connect via a VPN tunnel?


=== Answered ===

* Can I log on to secure websites and pay bills?
*: Yes [[User:joenix|joenix]] 13 November 2009
* Does the browser support Java applets?
*: No, there is currently no Java on the N900. [[User:joenix|joenix]] 13 November 2009
* Does the browser run in portrait mode? 
*: Yes [[User:joenix|joenix]] 13 November 2009
* If yes, does it rotate according if you turn the phone?
*: No [[User:joenix|joenix]] 13 November 2009
* Can you perform standard &quot;right-click-operations&quot; like: open in new window; copy link; save image; copy image location; ... ?
*: Yes, by pressing the link for a couple of seconds.
* Can you scroll while a page is loading? 
*: Yes. Can be seen in this [http://www.youtube.com/watch?v=-OYS799-fCU video]. (Video removed from User???)
* Are Firefox plug-ins supported?
*: No. Not with the built in browser
* Is text re-flowed to fit to screen when zooming?
*: Nope, it just zooms into the page. All the elements stay the same size.
* Is there a &quot;view source&quot; option?
*: No, according to http://talk.maemo.org/showthread.php?t=33097

== Third-party applications questions ==

* Can we set a third-party browser as the default browser?
* Is there a key combo to bring up the menu?
* How do you toggle fullscreen in applications like FBreader? 
** ''Comment: Video shows Ctrl-Backspace. Will test. --[[User:jaffa|Jaffa]] 06:56, 1 September 2009 (UTC)''
** Ctrl-Backspace will open app switcher. Apps will have to provide own unfullscreen functionality (no button AFAICT) --[[User:jaffa|Jaffa]] 22:13, 1 September 2009 (UTC)
* Will it be possible to run android on the N900, preferrably as a dual boot option to maemo?

=== Answered ===
* Can we install a third-party browser? 
** ''Answer: From Threads: Yes.''
* Does Skype support video? 
** ''Comment: not yet. the person presenting skype at maesum said they've been busy getting the core functions working on the n900, but wouldn't reveal any other intentions than that skype are looking into the possibilites of video support. --[[User:edgar2|thomas]]

== Gaming ==
* What games will Nokia publish for Maemo 
=== Answered ===
* Will the N-Gage gaming platform be available?
** ''Answer: quoting Peter@MaemoMarketing &quot;since we have no DRM yet, we don’t run ngage on Maemo 5&quot;. So, the answer is no by now, maybe in the future if DRM is implemented.
** source: http://conversations.nokia.com/2009/08/27/finding-maemo-the-new-nokia-n900/
* What games are pre-installed?
** --''Answer: Bounce, Chess and Mahjong''--
*: Blocks, Chess, Mahjong, Marbles. Bounce is available in repos --[[User:jaffa|Jaffa]] 14:41, 3 September 2009 (UTC)

== Development and hacking ==

* When will the Ovi Store open for Maemo?
* Could community suggestions and concepts ever make it to the device with support from Nokia? (eg. community created concept, code developed by Nokia)

=== Answered ===
* Are we going to be able to run a chroot environment?
** ''Answer: It's GNU/Linux and you have root permissions... why not? --[[User:javispedro|javispedro]] 22:26, 1 September 2009 (UTC)''
* What development tools will be available for developers (C++ framework name)? 
** ''Answer: [[http://maemo.org/development/ Fremantle SDK]] has been available for a while --[[User:nathanael|nathanael]] 19:51, 1 September 2009 (UTC)''

[[Category:Events]]</text>
    </revision>
  </page>
  <page>
    <title>Nqaap</title>
    <id>4361</id>
    <revision>
      <id>41826</id>
      <timestamp>2011-02-15T00:46:09Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <comment>/* Contribute */</comment>
      <text xml:space="preserve">== nQa Audiobook Player ==

=== Features ===

Basic features:
* Plays books saved as multiple .mp3 or .awb files
* Automatically changes to next chapter.
* Remembers position in multiple books.
* Sleep timer
* Auto-pause on incoming call

Keyboard Shortcuts
* Ctrl+Enter - toggle between fullscreen
* Ctrl+o - Rotate the screen orientation
* Ctrl+w, Ctrl+q - quit
* Ctrl+l - Copy the debug log contents
* Enter - Pause/play
* Left Arrow - Previous chapter
* Right Arrow - Next chapter

Supported Audiobooks
* m3u of &quot;awb&quot;, &quot;mp3&quot;, &quot;spx&quot;, &quot;ogg&quot;, &quot;ac3&quot;, &quot;wav&quot;
* directory of &quot;awb&quot;, &quot;mp3&quot;, &quot;spx&quot;, &quot;ogg&quot;, &quot;ac3&quot;, &quot;wav&quot;
* Individual files of &quot;awb&quot;, &quot;mp3&quot;, &quot;spx&quot;, &quot;ogg&quot;, &quot;ac3&quot;, &quot;wav&quot;

Audiobook Coverart
* When using a directory-based audio book, place a supported image in the same directory as the audiofiles.
* Supported file format: &quot;png&quot;, &quot;gif&quot;, &quot;jpg&quot;, &quot;jpeg&quot;

=== Getting nQa Audiobook Player ===

Getting nqaap
* Maemo 4.1: Available in [[extras]] through the Application Manager.
* [http://maemo.org/downloads/product/Maemo5/nqaap/ Maemo 5] or available in extras through the Application Manager.
* [http://nqaap.garage.maemo.org/nqaap.deb Ubuntu]

nqaap has been tested on:
* Ubuntu 10.04
* Maemo 4.1
* Maemo 5

== Contribute ==

* [https://bugs.maemo.org/enter_bug.cgi?product=nQa%20Audiobook%20Player File a bug]
* [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;product=nQa%20Audiobook%20Player&amp;classification=Extras View existing bug reports]
* [http://talk.maemo.org/showthread.php?t=50588 talk.maemo.org thread]
* [https://garage.maemo.org/projects/nqaap/ Garage Project (including code)] or [https://github.com/epage/nqaap github]
* Learn about [[extras-testing]] and checkout the [http://maemo.org/packages/view/nqaap/ Package page (including voting)]

nqaap is available under the [http://www.gnu.org/licenses/lgpl-2.1.html LGPL v2.1 license]

== Trouble Shooting and Reporting of Bugs ==

Can't find books?
* Go to &quot;Settings&quot; and confirm the path to the audiobooks

A very beneficial log can be found at &quot;&lt;code&gt;~/.nqaap/nqaap.log&lt;/code&gt;&quot;

[[Category:Media]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>O2 Joggler</title>
    <id>2232</id>
    <revision>
      <id>28140</id>
      <timestamp>2010-02-02T15:44:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#redirect [[Mer/Status/O2 Joggler]]</text>
    </revision>
  </page>
  <page>
    <title>OBS</title>
    <id>3829</id>
    <revision>
      <id>32065</id>
      <timestamp>2010-04-06T14:35:02Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[OBS]] moved to [[OpenSuse Build Service]]: Expand acronym</comment>
      <text xml:space="preserve">#REDIRECT [[OpenSuse Build Service]]</text>
    </revision>
  </page>
  <page>
    <title>OMP</title>
    <id>5108</id>
    <revision>
      <id>47041</id>
      <timestamp>2012-03-25T00:20:54Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>Redirecting to [[Open Media Player]]</comment>
      <text xml:space="preserve">#REDIRECT [[Open_Media_Player]]</text>
    </revision>
  </page>
  <page>
    <title>OMWeather</title>
    <id>2834</id>
    <revision>
      <id>38241</id>
      <timestamp>2010-08-31T08:05:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>drop non-existent links</comment>
      <text xml:space="preserve">{|| class=&quot;wikitable&quot;
! Name 
| OMWeather
|-
! Developer
| Vlad Vasiliev, Pavel Fialko
|-
! Latest release version
| OMWeather (0.26.2)
|-
! latest release date
| 2010-04-19
|-
! programming language
| [[:wikipedia:C (programming language)|C]]
|-
! Operating system
| [[Open development/Maemo roadmap/Fremantle|Maemo 5]], [[:Category:OS2008|OS2008]], OS2007, OS2006
|-
! Genre
| Desktop applet
|-
! License
| [[:wikipedia:GPL|GNU General Public License]]
|-
! Website
| http://omweather.garage.maemo.org
|}

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>OTA to PR1.1 troubleshooting</title>
    <id>3394</id>
    <revision>
      <id>41698</id>
      <timestamp>2011-02-08T10:24:24Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>move content and redirect to [[Cannot install firmware update]]</comment>
      <text xml:space="preserve">#REDIRECT [[Cannot install firmware update]]</text>
    </revision>
  </page>
  <page>
    <title>Objective:Best community for mobile Linux innovation</title>
    <id>1053</id>
    <revision>
      <id>28092</id>
      <timestamp>2010-02-02T11:21:29Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Tasks */</comment>
      <text xml:space="preserve">{{2010 agenda}}

This is the meta-objective, source of inspiration and context for th rest of objectives.

==Tasks==
* maemo.org vision, strategy and mid term objectives.
* Easy entry points to Get Involved.
* Maemo contributor growth path, from newcomer to champion.
* Ways for triaging and promoting the best projects.
* Models for professional development including open source.
* Opportunities for collaboration face to face: events and local networks.
* Strong ties with other relevant open source projects.
* Deep understanding of users and trends in different segments and cultures.

Related tasks:
* [[Task:Usability experiences]]

==Required from Nokia==
''These points need more work''.

* Developer device programs offering best-in-class open hardware.
* Support for productization, promotion and distribution of innovation.
* Easy to use tools for application prototyping.
* Tools for platform development and publish enhancements.</text>
    </revision>
  </page>
  <page>
    <title>Objective:Community localization</title>
    <id>1036</id>
    <revision>
      <id>30799</id>
      <timestamp>2010-03-08T19:13:16Z</timestamp>
      <contributor>
        <username>glezos</username>
        <id>1092</id>
      </contributor>
      <comment>/* Status */</comment>
      <text xml:space="preserve">{{2010 agenda}}

The objective is to provide the tools for community collaboration in localization tasks.

==Tasks==
* Organize localization teams, preferrably coordinated with other open community efforts.
* Work on the localization of a basic description of the Maemo platform and the maemo.org community.
* Provide tools for consolidated language/localization teams willing to have fully localized communities around maemo.org
* Provide tools and documentation to improve the localization of applications.
* Establish channels to collaborate in the improvement of Maemo localization in officially supported languages.
* Provide tools and documentation to create and maintain Maemo localizations in languages supported at a community level.
* Co-ordinate efforts of translators of [[international pages]] in the wiki

See [[Task:Evaluate Transifex]]

==Status==
'''Update''': We now have a MeeGo L10n roadmap: http://wiki.meego.com/L10N/RoadmapProposal

There was a [[Maemo-Barcelona_Long_Weekend/Localization|Localization]] track  during [[Maemo-Barcelona_Long_Weekend|Maemo Barcelona Long Weekend]]. The result of the workshop was the [[Community_localization|Community Localization System]].

See also the Talk thread: [http://talk.maemo.org/showthread.php?p=276017 Community translations of Maemo software].

There are a number of pages in the wiki [[International pages | being translated by users]].

See also [[Task:Evaluate Transifex]].

=== Maemo 5 ===
There are several localization packages released with the SDK or, ultimately, in the Maemo 5 image:

* [http://repository.maemo.org/pool/maemo5.0/free/h/hildon-application-manager-l10n-public/ hildon-application-manager-l10n-public]
* hildon-common-strings-l10n-public
* hildon-control-panel-l10n-public
* hildon-fm-l10n-public
* hildon-input-method-l10n-public
* hildon-libs-l10n-public
* hildon-status-bar-usb-l10n-public
* ke-recv-l10n-public
* maemo-af-desktop-l10n-public
* marketing-release-public
* modest-l10n-public
* osso-applet-tasknavigator-l10n-public
* osso-countries-l10n-public
* osso-filemanager-l10n-public
* osso-games-l10n-public
* osso-help-l10n-public
* osso-rss-feed-reader-l10n-public
* osso-system-lock-l10n-public
* osso-uri-l10n-public 

Please list the localization packages you are missing sorted by relevance:

# First item, the most relevant.

=== Maemo 6 ===
In Harmattan the localizations files will use [http://qt.nokia.com/doc/4.6-snapshot/linguist-ts-file-format.html Qt's .ts format]. For community L10n [http://qt.nokia.com/doc/4.6-snapshot/linguist-manual.html Qt Linguist] should already work fine.</text>
    </revision>
  </page>
  <page>
    <title>Objective:Maemo variants</title>
    <id>1038</id>
    <revision>
      <id>28157</id>
      <timestamp>2010-02-02T16:29:37Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>/* Tasks */</comment>
      <text xml:space="preserve">{{2010 agenda}}

The objective is to provide the tools to allow the integration of Maemo variants with customized platform components and selected applications.

==Tasks==
* Define the limitations e.g. 3rd party commercial software probably not redistributable.
* Tools for creating flashable and distributable images of Maemo variants.
* Plan and means to handle legacy versions at a community level.
* [[Task:Busybox]] - open development of Busybox for Maemo to allow variants to co-develop
* [[Task:Integrate Mer into Garage Autobuilder]] - allow Mer packages to use the build infrastructure of maemo.org
* [[Task:Mer Repository Setup]] - part of the Mer bootstrapping process will be to set up Mer repositories for packages
* [[Task:Provide spec for Mer infrastructure on Garage]]
* [[Diablo Community Project]]

See also [[Open development]]

==Required from Nokia==
''These points need more work''.
* Licenses to be changed in order to allow redistribution?
* Anything that requires to have API improvements or to be open source?
* Any documentation only Nokia can provide?

==Ongoing work==
* [[Task:Maemo_Community_distribution]]
* [[Task:Community firmware image distribution]]


[[Category:Community]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Objective:One place to track feedback</title>
    <id>902</id>
    <revision>
      <id>5310</id>
      <timestamp>2008-07-24T11:33:36Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <minor/>
      <comment>/* Tasks */</comment>
      <text xml:space="preserve">{{2010 agenda}}

The objective is to have a single place for users and developers to track bugs and feature requests. This means that Nokia and third party developers need to be involved in the same space for collaboration.

== Tasks ==
* [[Task:Getting Nokia involved in bugs.maemo.org]]
* [[Task:3rd party bug tracking in bugs.maemo.org]]
* [[Task:Brainstorming new features]]

== Open questions ==
* Perfect balance between bugs.maemo.org and Nokia internal processes.
* Best communication with the Maemo SW product management team.
* Feature requests: Bugzilla vs IdeaStorm.</text>
    </revision>
  </page>
  <page>
    <title>Objective:Release early, release often</title>
    <id>838</id>
    <revision>
      <id>33316</id>
      <timestamp>2010-04-22T14:05:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Tasks */ fix typo</comment>
      <text xml:space="preserve">{{2010 agenda}}

The objective is to organize public releases of Maemo while it's being developed.

==Tasks==
* [[Task:Components and packages|List of packages]] to be integrated. They need to provide the functionality covering an SDK and a bootable image to install applications upon.
* Repository structure: how the packages are organized.
* Release process: when to start a new release, frequency of updates, how to update.
* Packages information: à la http://packages.debian.org ?
* [[Task:Publishing API docs|API documentation]] produced and updated within the process.
* Feedback process: public bugzilla and contribution policy.
* [[Task:Collaboration infrastructure]]
* [[Open development]]

==Related tasks==
To be defined whether they belong here and/or are committed.

* Possibility for the community to build and distribute Maemo variants as flashable images.</text>
    </revision>
  </page>
  <page>
    <title>Objective:Release soon and often</title>
    <id>1405</id>
    <revision>
      <id>9474</id>
      <timestamp>2008-12-30T00:21:16Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Objective:Release soon and often]] moved to [[Objective:Release early, release often]]: More appropriate?</comment>
      <text xml:space="preserve">#REDIRECT [[Objective:Release early, release often]]</text>
    </revision>
  </page>
  <page>
    <title>Ogg Vorbis justification</title>
    <id>1402</id>
    <revision>
      <id>32140</id>
      <timestamp>2010-04-08T11:23:31Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix link</comment>
      <text xml:space="preserve">This page is made to justify why Nokia should include Ogg Vorbis support by default on their maemo devices. Note however that 3rd party support for [http://maemo.org/packages/view/ogg-support/ Ogg is easily available from the repositories] for all current OS and devices.

== Licensing ==

The file format and codec specifications and implementations are freely available:

* Ogg Vorbis specification: [http://vorbis.com/faq/#flic public domain]
* libogg: [http://svn.xiph.org/trunk/ogg/COPYING BSD]
* libvorbis: [http://svn.xiph.org/trunk/vorbis/COPYING BSD]
* tremor: [http://svn.xiph.org/trunk/Tremor/COPYING BSD]
* Relevant Internet drafts and standards: [http://tools.ietf.org/html/rfc3533 RFC 3533], [http://tools.ietf.org/html/rfc5215 RFC 5215], [http://tools.ietf.org/html/rfc5334 RFC 5334].

== Interoperability ==

=== Online content and services using Ogg Vorbis ===

* http://vorbis.com/music_links/
* http://www.fsf.org/resources/formats/ogg_data/oggsites
* http://dir.xiph.org/by_format/Ogg_Vorbis
* http://wiki.xiph.org/index.php/VorbisStreams
* http://librivox.org/ (via http://www.archive.org/details/librivoxaudio)
* http://www.mindawn.com/index.php
* http://www.jamendo.com/
* http://www.spotify.com/
* http://www.squeezenetwork.com/
* http://wikipedia.org/ -- Wikipedia uses Ogg Vorbis exclusively, both for [[:wikipedia:Wikipedia:Creation_and_usage_of_media_files#Audio|sounds included in articles]] and for the [[:wikipedia:Wikipedia:WikiProject_Spoken_Wikipedia|Spoken Wikipedia Project]].

=== Third party software and hardware ===

Too many to list here, but see (not entirely up to date):

* [http://wiki.xiph.org/index.php/PortablePlayers Portable] consumer devices with Ogg Vorbis support.
* [http://wiki.xiph.org/index.php/StaticPlayers Static] consumer devices with Ogg Vorbis support.
* [http://wiki.xiph.org/index.php/VorbisSoftwarePlayers Software] players for other platforms.

Firefox 3.5 and later includes Vorbis (and Theora) support integrated with the browser.

== Competing devices with Ogg Vorbis support out of the box ==

See above. It's not clear what Nokia may consider as competing devices, but notable examples include:

* [http://www.t-mobile.co.uk/g1-with-google-phone/specs/ T-Mobile G1]
* Archos [http://www.archos.com/products/imt/archos_7/specs.html?country=ca&amp;lang=en 5] &amp; [http://www.archos.com/products/imt/archos_7/specs.html?country=ca&amp;lang=en 7]
* Garmin nüvi [http://www.garmin.com/manuals/nuvi5000_ENOwnersManual.pdf 5000] and [http://www8.garmin.com/ces/nuvi800/index.html 800] series.
* Several Samsung phones (eg [http://www.samsung.com/me/products/mobilephones/gsm/sgh_i320.asp SGHi320], [http://www.samsung.com/sec/news/newsRead.do?news_group=productnews&amp;news_type=consumer&amp;news_ctgry=mobilephone&amp;news_seq=231 SPH-S4300], [http://www.samsung.com/uk/news/newsRead.do?news_group=productnews&amp;news_type=consumerproduct&amp;news_ctgry=mp3&amp;news_seq=11024&amp;search_keyword=&amp;from_dt=&amp;to_dt= Q1 Diamond] and [http://www.samsung.com/uk/news/newsRead.do?news_group=productnews&amp;news_type=consumerproduct&amp;news_ctgry=mobilephone&amp;news_seq=10925 i900 Omnia])
* Many many media players by Cowon/iAudio, iRiver, SanDisk, Samsung and others.

== Good will ==

* Ogg Vorbis support is the oldest open enhancement request on the Maemo bugzilla, as well as the one with the largest number of votes (over three times as many as the next one as of 2008-12-22).

[[Category:Media]]</text>
    </revision>
  </page>
  <page>
    <title>Olsr</title>
    <id>3808</id>
    <revision>
      <id>41590</id>
      <timestamp>2011-02-03T12:04:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add OSLR wikipedia link</comment>
      <text xml:space="preserve">[[:wikipedia:Optimized Link State Routing Protocol|OLSR]] can be used on Maemo with Olsrd, which has been ported to Maemo before. There is a recent tutorial on getting it running including a link to a package containing olsrd, a config file fit for Freifunk-style networks and http-info-plugin can be found at [http://wiki.funkfeuer.at/index.php/OLSR_am_Nokia_N900]

Feel free to comment there or here or mail to gregor @ meineparty.at

2010-04-01 (No april fools joke ;-) )

[[Category:Power users]]
[[Category:Connectivity]]
[[Category:WiFi]]</text>
    </revision>
  </page>
  <page>
    <title>Omnnom</title>
    <id>4738</id>
    <revision>
      <id>41895</id>
      <timestamp>2011-02-19T20:02:54Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <comment>New page: == Features ==  Basic features:  Keyboard Shortcuts  == Getting Omnom ==  Getting Omnom * Maemo 4.1: Available in [[extras-devel]] through the Application Manager. * [http://maemo.org/down...</comment>
      <text xml:space="preserve">== Features ==

Basic features:

Keyboard Shortcuts

== Getting Omnom ==

Getting Omnom
* Maemo 4.1: Available in [[extras-devel]] through the Application Manager.
* [http://maemo.org/downloads/product/Maemo5/omnom/ Maemo 5] or available in extras-devel through the Application Manager.
* [https://github.com/epage/omnom/blob/master/www/omnom.deb?raw=true Ubuntu]

Omnom has been tested on:
* Ubuntu 10.04
* Maemo 5

== Contribute ==

* [https://bugs.maemo.org/enter_bug.cgi?product=Omnom File a bug]
* [https://bugs.maemo.org/buglist.cgi?query_format=specific&amp;order=relevance+desc&amp;bug_status=__open__&amp;product=Omnom&amp;content= View existing bug reports]
* [http://talk.maemo.org/showthread.php?t=67508 talk.maemo.org thread]
* [https://github.com/epage/omnom github repository]
* Learn about [[extras-testing]] and checkout the [http://maemo.org/packages/view/Omnom/ Package page (including voting)]

Omnom is available under the [http://www.gnu.org/licenses/lgpl-2.1.html LGPL v2.1 license]

== Troubleshooting and Reporting of Bugs ==

A very beneficial log can be found at &quot;&lt;code&gt;~/.omnom/omnom.log&lt;/code&gt;&quot;

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>OpenDevelopment</title>
    <id>2633</id>
    <revision>
      <id>19568</id>
      <timestamp>2009-10-07T09:46:48Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[OpenDevelopment]] moved to [[Open development]]: new page</comment>
      <text xml:space="preserve">#REDIRECT [[Open development]]</text>
    </revision>
  </page>
  <page>
    <title>OpenGL-ES</title>
    <id>1705</id>
    <revision>
      <id>39484</id>
      <timestamp>2010-10-10T14:04:48Z</timestamp>
      <contributor>
        <ip>87.159.157.197</ip>
      </contributor>
      <comment>/* Qt Example */</comment>
      <text xml:space="preserve">== OpenGL ES  ==

OpenGL ES is an API that allows programmers to draw 3D graphics on mobile and embedded devices. Hardware accelerated OpenGL ES 1.1 and 2.0 are available on Maemo devices beginning with the [[Nokia N900|N900]].

=== OpenGL variants ===

OpenGL ES is a subset of the full OpenGL standard, and therefore the two APIs are not directly compatible. The following diagram shows the relationship of the major OpenGL versions and variants.

[[image:Opengl.svg]]

OpenGL 1.0 has fixed shaders and fixed function API for using them. OpenGL 2.0 adds programmable shaders, but fixed function pipeline API is still supported for backward compatibility.

In contrast, OpenGL ES 1.1 is based on OpenGL 1.x with some APIs removed and fixed point integer support added. OpenGL ES 2.0 is based on OpenGL 2.0 with the fixed function API removed.

=== Porting between OpenGL variants ===

All versions and variants of OpenGL are not directly compatible, so a certain amount of changes are needed when moving applications from one variant to another. The following diagram summarizes these changes for major OpenGL versions.

[[image:Opengl-porting.svg]]

OpenGL 1.0 applications work with OpenGL 2.0 but not vice versa. OpenGL 1.0 applications can be ported to OpenGL ES 1.1, but need changes if they are using some of the removed APIs. OpenGL 2.0 application that only uses programmable shaders is possible to port OpenGL ES 2.0, but may still need some work due to , e.g., differences in the shading language versions. Finally, porting OpenGL 1.0 or OpenGL ES 1.1 applications to OpenGL ES 2.0 requires a rewrite to replace fixed function API usage with programmable shaders.

Most desktop Linux OpenGL applications are written using the legacy OpenGL 1.x fixed function pipeline (e.g. usage of glBegin/glEnd and the matrix stack).  OpenGL 2.0 introduced programmable shaders, but it still supports the legacy fixed function pipeline. Since in OpenGL ES 2.0 the fixed function pipeline has been completely removed, porting applications from OpenGL 2.0 to OpenGL ES is likely to require a major rewrite of the application's graphics code.

== Getting started ==

An excellent way to familiarize yourself with OpenGL ES 2.0 is to try the tutorials that can be found in the [http://www.imgtec.com/powervr/insider/sdk/KhronosOpenGLES2xSGX.asp PowerVR SGX SDK] under the TrainingCourse directory.

The SDK libs and headers can be dropped into your Scratchbox X86 environment and run inside the Xephyr X11 window - but you'll need to kill the window manager first!

The examples have their own Makefiles for Linux hosts but you can copy the files to your own directory and try the Makefile below. Reason to use this own Makefile is that the makefiles coming with the SDK compiles examples with x86 libraries part of the SDK and not armel/x86 maemo libraries in scratchbox. 

This Makefile at the moment supports the basic and PvrShell examples (01..05) but does not yet support PvrTools examples (06 and above).   

To compile some of PowerVR tutorial examples, you can use the following Makefile
&lt;source lang=&quot;make&quot;&gt;
CC=g++

CPPFLAGS = -DBUILD_OGLES2
LDLIBS=-lEGL -lX11 -lGLESv2 

all:OGLES2Texturing OGLES2BasicTnL OGLES2IntroducingPVRTools OGLES2HelloTriangle_LinuxX11

OGLES2HelloTriangle_LinuxX11:OGLES2HelloTriangle_LinuxX11.o

OGLES2Texturing: PVRShellOS.o OGLES2Texturing.o  PVRShell.o PVRShellAPI.o

OGLES2BasicTnL: PVRShellOS.o OGLES2BasicTnL.o  PVRShell.o PVRShellAPI.o

OGLES2IntroducingPVRTools: PVRShellOS.o OGLES2IntroducingPVRTools.o  PVRShell.o PVRShellAPI.o
&lt;/source&gt;

=== Installation ===

You can compile OpenGL ES applications with Scratchbox. The ESBox IDE makes it much easier to execute the application on the device. It automates copying the binary onto the device and execution.

Firstly you want to install the following packages in Scratchbox.

 [sbox-FREMANTLE_ARMEL: ~] &gt; fakeroot apt-get install libgles2-sgx-img-dev

This installs the OpenGL ES 2.0 development files required for compiling.

 [sbox-FREMANTLE_ARMEL: ~] &gt; fakeroot apt-get install opengles-sgx-img-common-dev

This installs the EGL library (used for portable context creation, see the documentation) and PowerVR development files. It also includes some simple demos.

If you want OpenGL ES 1.x compatibility then install the following package in Scratchbox:

 [sbox-FREMANTLE_ARMEL: ~] &gt; fakeroot apt-get install libgles1-sgx-img-dev

Now install the required libraries on the N900:

 Nokia-N900-42-11:~# apt-get install libgles1-sgx-img libgles2-sgx-img opengles-sgx-img-common

== Library support ==

This section includes a partial list of library options for using OpenGL ES.

=== SDL 1.2 + SDL-GLES ===

The N900 ships with SDL 1.2. You can use that and a external library, [[User:Javispedro/SDL-GLES|SDL-GLES]] (available in extras), to create simple OpenGL ES 1.1 and 2.0 applications.

[http://maemo.org/packages/view/nehegles/ NeHeGLES] is a port of several of the famous [http://nehe.gamedev.net/ NeHe OpenGL lessons] to Maemo5/SDL-GLES.

=== SDL 1.3 ===

SDL 1.3 supports OpenGL ES 1.x. This does not seem to work in the N900 as of now.

=== OpenGL ES 1.x utilies ===
Information:
: http://www.unrealvoodoo.org/hiteck/projects/maemo/
Git repositories:
: http://www.unrealvoodoo.org/git/

Sami Kyöstilä has developed a number of utilities. This includes SDL with OpenGL ES 1.x support, libglutes, python-opengles and several translators to convert OpenGL ES and OpenGL. Note that these utilities are designed for the [[Nokia N810]] and OpenGL ES 1.x.

=== Qt ===

You can use [[Qt-Maemo|Qt]] with OpenGL ES 2.x on the N900.

=== Clutter ===

libclutter supports OpenGL ES 2.x and OpenGL ES 1.1. It is oriented towards toolkits and applications with user interface elements.

=== Xlib (X11) ===

You can use Xlib (X11) and utilize the EGL library for context creation along with OpenGL ES. This is what the [http://maemo.nokia.com/maemo-select/applications/bounce-evolution Bounce Evolution] game uses.

You can use OpenGL ES version 1 or 2 directly without worrying about the version that is supported by the library.

See below for [[#Xlib Examples|an example Xlib application]].

=== PVRShell ===

The Khronos OpenGL ES 2.0 SDK includes a simple API for window creation called PVRShell. They also include additional tools for more advanced computer graphics applications. It is much simpler to create an OpenGL ES 2.0 application using PVRShell. It doesn't seem to have much support for handling events.

== Examples ==

=== Qt Example ===

You need to install libqt4-opengl-dev:
&lt;pre&gt;[sbox-FREMANTLE_ARMEL: ~] &gt; fakeroot apt-get install libqt4-opengl-dev&lt;/pre&gt;

There is an example application called hellogl_es2. There is also equivalent examples for desktop opengl and opengl_es2. Get it here:
: http://qt.gitorious.org/qt/qt/trees/4.5/examples/opengl/hellogl_es2

This example shows how to use OpenGL ES embedded in a QtWidget. The example is also good showing what is different between OpenGL versions. hellogl uses plain desktop &quot;glBegin / glEnd&quot; functions with display lists. hellogl_es2 uses vertex attribute pointers and shaders instead of glBegin/glEnd. helloes_gl2 is even more complicated because it uses programmable shaders instead of fixed pipeline in both of the previous examples. 

If you try to compile the unmodified version of hellogl_es2 for Maemo, you need to add in &lt;code&gt;void GLWidget::initializeGL ()&lt;/code&gt;. Modify glwidget.h and change &lt;code&gt;#include &lt;QGLWidget&gt;&lt;/code&gt; to &lt;code&gt;#include &lt;QtOpenGL/QGLWidget&gt;&lt;/code&gt;.

Line in beginning  &lt;pre&gt;setlocale(LC_NUMERIC, &quot;C&quot;); // Reset locale for compilation&lt;/pre&gt;
and after shaders has been compiled line &lt;pre&gt; setlocale(LC_ALL, &quot;&quot;); // restore locale&lt;/pre&gt;
because locale affects in shader compilation even it should not do.

Edit &lt;code&gt;hellogl_es2.pro&lt;/code&gt; and add:

&lt;pre&gt;QT += opengl&lt;/pre&gt;

Then run:&lt;pre&gt;qmake -project
qmake
make
&lt;/pre&gt;

Which will (hopefully) compile hellogl_es2. Then you can copy the binary to the device and run it.

=== Xlib Examples ===

You can usually compile any Xlib example with a simple Makefile like:
&lt;source lang=&quot;make&quot;&gt;
 CC=g++
 LDLIBS=-lEGL -lX11 -lGLESv2 
 all: main
 main: main.o
&lt;/source&gt;
In the PowerVR SDK TrainingCourse directory there are a number of examples. The first two use only Xlib. The rest make use of PowerVR libraries which have to be linked in with the program.

There is a [[SimpleGL example | simple Xlib example]] in a separate article.

=== SDL-GLES Example ===

The NeHeGLES examples are available from extras-devel. Within armel-scratchbox, a simple

&lt;pre&gt;fakeroot apt-get build-dep nehegles&lt;/pre&gt;

will install all the necessary libraries. An additional

&lt;pre&gt;fakeroot apt-get source nehegles&lt;/pre&gt;

will then install the sourcecode of the nehegles lessons. A &quot;make&quot; in the nehegles root directory builds all the included lessons as well as the gui. Individual lessons can be recompiled by a simple &quot;make&quot; in their respective directories.

=== Python example ===
On [http://orgetik.de/wp/wordpress/?tag=opengl-n900&amp;lang=en] you can find xlib_wrapper.py and opengltest.py (port of SimpleGL example).

== Notes ==

* WARNING: If you try to run an OpenGL application with scratchbox then it will most likely work. This is because it uses the native operating system OpenGL libraries to execute. However, if you try and run it on the device it will not work as it only has OpenGL ES libraries. 

* OpenGL ES does not run natively on a desktop computer. It is possible to get some kind of emulation library from the PowerVR Insider SDK [http://www.imgtec.com/powervr/insider/powervr-sdk.asp] so that you can test on a desktop computer. The OpenGL ES 2.0 emulation library was packaged for use inside the FREMANTLE_X86 scratchbox target (package libgles2-dev, extras-devel non-free repository).

* If you require any kind of performance in Maemo 5, you need to make your window full screen.

== Further reading ==

Here are some useful resources.

* http://www.unrealvoodoo.org/hiteck/projects/maemo/ - Maemo Experiments
* http://qt.gitorious.org/qt/qt/trees/4.5/examples/opengl/hellogl_es2 - hellogl_es2 example for Qt 4.5
* http://www.imgtec.com/powervr/insider/sdk/KhronosOpenGLES2xSGX.asp - Khronos OpenGL ES 2.0 SDK has useful examples
* http://talk.maemo.org/showthread.php?t=37356 - Thread discussing performance of OpenGL ES
* [[Game_development]] - Page describing game development on Maemo. More oriented towards 2D games but has some useful information
* http://www.forum.nokia.com/info/sw.nokia.com/id/0ea5ec64-2d35-4363-94c0-dd2560c6524b/Get_started_with_Maemo_5.html - If you don't know how to start with Maemo development in general then look here
* http://repository.maemo.org/ - Information about repositories
* http://www.khronos.org/opengles/sdk/docs/man/ - OpenGL ES 2.0 Reference Page
* http://www.khronos.org/opengles/sdk/1.1/docs/man/ - OpenGL ES 1.1 Reference Page. It also has information about EGL
* http://n2.nabble.com/Fremantle-OpenGL-wrapper-td3013572.html - Thread discussing ideas about OpenGL and Maemo
* [http://blogs.forum.nokia.com//data/blogs/resources/300003/fremantle_bossa_2009.pdf Kate Alhola's presentation in Bossa 2009 conference] about Fremantle and section about OpenGL ES 2.0

=== Books ===

* [http://www.amazon.com/Mobile-3D-Graphics-Kaufmann-Computer/dp/0123737273/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1235944663&amp;sr=8-1 Mobile 3D graphics with OpenGL ES and M3G] &amp;ndash; Excellent introductory section covering OpenGL basics. Covers OpenGL ES 1.1, not 2.0.
* [http://www.amazon.com/OpenGL%20ES-2-0-Programming-Guide/dp/0321502795/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1235944783&amp;sr=1-1 OpenGL ES 2.0 programming guide] &amp;ndash; This 'Gold Book' is hardly in the same league as the above book, or the original 'Red Book' - being aimed at folk who already know their OpenGL lingo. It dives into laborious detail as if trying to spew as much of the ES 2.0 spec onto the page as possible. It assumes a Windows audience and the AMD simulator. You may be better off looking at the PowerVR SDK tutorial code than reading this book, then coming back to it for reference and further code examples.


[[Category:Development]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>OpenGL-ES-Game</title>
    <id>3215</id>
    <revision>
      <id>33247</id>
      <timestamp>2010-04-21T14:43:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[OpenGL-ES]]</text>
    </revision>
  </page>
  <page>
    <title>OpenGL ES Libraries</title>
    <id>3210</id>
    <revision>
      <id>33246</id>
      <timestamp>2010-04-21T14:42:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[OpenGL-ES]] after merge</comment>
      <text xml:space="preserve">#REDIRECT [[OpenGL-ES]]</text>
    </revision>
  </page>
  <page>
    <title>OpenJDK 6.0 0 (Cambridge Software Labs) on N900</title>
    <id>3521</id>
    <revision>
      <id>33643</id>
      <timestamp>2010-04-30T07:38:15Z</timestamp>
      <contributor>
        <username>wonko</username>
        <id>2679</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">([http://www.camswl.com/openjdk Cambridge Software Labs)] are providing a binary distribution of OpenJDK 1.6.0_0 optimized for ARM processors. At first glance it works quite well on [[Nokia N900|N900]]. However, it is only recommended for experienced users. If you don't know how to use the console or generally what you're doing, you might possibly destroy your filesystem.

Installation instructions, you need to be root and have ssh-access to your N900:

Download the following files
* [http://www.zen111407.zen.co.uk/openjdk/j2re.tar.bz2 j2re] and
* [http://www.zen111407.zen.co.uk/openjdk/j2sdk.tar.bz2 j2sdk]


Extract the two files, merge them into one directory and re-package them:
 $ mkdir OpenJDK-camswl
 $ cd OpenJDK-camswl
 $ tar jxf ../j2re.tar.bz2 
 $ tar jxf ../j2sdk.tar.bz2 
 $ mv j2re-image/ j2sdk-image/jre
 $ mv j2sdk-image/* .
 $ rmdir j2sdk-image/
 $ cd ..
 $ tar zcf OpenJDK-camswl.tar.gz OpenJDK-camswl/

Or download the result of these operations from [http://www.640k.de/OpenJDK-camswl/OpenJDK-camswl.tar.gz this site]
 
Copy the resulting file to your N900 and extract it in /opt
 $ scp OpenJDK-camswl.tar.gz root@10.0.23.42:/opt
 $ ssh root@10.0.23.42
 # cd /opt
 # tar zxf OpenJDK-camswl.tar.gz
 # chown -R user:users OpenJDK-camswl

Finally, place some symbolic links in order to be able to call java and javac from everywhere
 # ln -s /opt/OpenJDK-camswl/bin/java /usr/local/bin/
 # ln -s /opt/OpenJDK-camswl/bin/javac /usr/local/bin/

Try it out!
 # su user
 $ java -version
 java version &quot;1.6.0_0&quot; 
 OpenJDK Runtime Environment (IcedTea6 1.5) (6b16~pre4-0ubuntu2)
 OpenJDK Zero VM (build 14.0-b15, interpreted mode)
 
This distribution of OpenJDK was tested successfully with:
* [http://www.jedit.org jEdit 4.3.1]
* [http://tomcat.apache.org/ Apache Tomcat 6.0.24]
* [http://ant.apache.org Apache Ant 1.8.0RC1]
* [http://ant.apache.org Apache Ant 1.8.0]
* [http://clojure.org Clojure 1.1.0]

Screenshots:

[[Image:Tomcat_in_OpenJDK_on_N900.png|Tomcat running in OpenJDK on Nokia N900]]


[[Image:Jedit.png|jEdit running in OpenJDK on Nokia N900]]

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>OpenSuse Build Service</title>
    <id>3811</id>
    <revision>
      <id>47394</id>
      <timestamp>2012-05-02T09:03:31Z</timestamp>
      <contributor>
        <username>timoph</username>
        <id>671</id>
      </contributor>
      <comment>/* Basics */</comment>
      <text xml:space="preserve">== Our Goals ==
We want:
* to allow freedom for developers to develop;
* to provide a build service and SDK 
* to work with the core distro as much as possible
* to provide excellent quality assured applications for our &quot;app store&quot;;
* to extend the core distro with a community supported Surrounds area for libraries and packages that are depended upon by more than one application.

== Basics ==

Lets set out some basics about the OBS.

# It's a build system. You put source on it and say &quot;use this repository&quot; and it builds a minimal SDK-like chroot using the deb/rpms it finds in that repository
# It has packages - a package corresponds to a tarball and a spec/dsc
# It has projects - a project is like a directory with packages
# When a package is built it is 'published' from the project where it was uploaded into a corresponding repository (which can be used to build other projects)
# The repositories can also be used by devices to download binary packages.

The 'trick' then, is to set up a structure of projects that we can use to support the publishing and sharing activities that we need.

Some tasks needed to get the OBS running:
* [[/Installation|OBS Installation]] - a detailed guide on how the system was setup.
* [[/Application QA Process|Application QA Process on the OBS]] - a proposal
* [[/Chinook Setup|Setting up Chinook]] - WIP
* [[/Fremantle_Setup|Setting up Fremantle]] - WIP.
* [[/MeeGo_Setup|Setting up MeeGo]] - WIP.
* [[/Cross_Setup|Setting up cross-building]] - started, not imported yet
* [[/Autobuild|An OBS Autobuilder queue]] - not started
* [[/Reporting|Reporting]] - not started
* [[Task:Maemo_OBS|Task page for Maemo OBS]]

[[Category:OpenSuse build service]]</text>
    </revision>
  </page>
  <page>
    <title>OpenSuse Build Service/Application QA Process</title>
    <id>4072</id>
    <revision>
      <id>36064</id>
      <timestamp>2010-06-18T13:30:05Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:OpenSuse build service]]</comment>
      <text xml:space="preserve">= Application QA Process Goals =

* to allow freedom for developers to develop;
* to provide a build service and SDK 
* to provide excellent quality assured applications for our &quot;app store&quot;;

== Individual Homes and PPAs ==

You'll start by uploading and building a package in your &quot;home&quot; directory (which can have a structure underneath it for multiple projects). This will allow you to build against any of the main distros; any group/community projects or even any other community member home projects. Oh, and they can use your code as a baseline too. Once built your code is automatically published to a repo on the community downloads server.

This is a lot like the Ubuntu PPA solution.
 
At that point you can stop if you want. You have a complete set of repositories (1/subproject). No painful QA processes. No 'fragmentation'. But equally your repo(s) will needed to be manually added to a device in order for it to appear in any apt-get/zypper/yum etc.


A huge benefit here is that to get at a development version of an application you use a specific repository, not a mishmash of randomly unstable packages like Extras-devel.


== Community QA'ed Repository - Extras ==

If you'd like your application to appear in the Extras repo which is pre-installed on devices then you can submit to the QA process.


First you register for the package name (a thought occurs... should this namespace be the same as the distro package namespace?), then submit your code to the distro promoter; there it is QA checked, copied to Extras:Testing, built, QA'ed again and becomes available in the Testing repository.


&amp;lt;here be dragons&amp;gt;
The community testers then approve your code.
&amp;lt;/dragons&amp;gt;


Once approved the code is built or copied to the Extras:Stable repository a final time.

This may be done using a single Extras:Testing project with multiple build targets or a suite:
&lt;pre&gt;
Extras:MeeGo:name-number
Extras:Maemo:Fremantle
Extras:Maemo:Harmattan
&lt;/pre&gt;


== General Building ==

First off we need to build against releases of vanilla distros; these all support both i586 &amp;amp; arm :
&lt;pre&gt;
MeeGo:name-number
Maemo:Fremantle
Maemo:Harmattan
&lt;/pre&gt;

I anticipate that there will be a community library around MeeGo (like MUD for Maemo or Universe for Ubuntu). These would cover that:
&lt;pre&gt;
Surrounds:MeeGo:name-number
Surrounds:Maemo:Fremantle
Surrounds:Maemo:Harmattan
&lt;/pre&gt;
(note that Surrounds is 'just' another top-level project...

Or, for more platform oriented users we may need to build against bleeding edge codesets:

&lt;pre&gt;
MeeGo:Trunk
MeeGo:snap:latest
MeeGo:snap:w13
Maemo:Harmattan:alpha1
&lt;/pre&gt;

[[Category:OpenSuse build service]]</text>
    </revision>
  </page>
  <page>
    <title>OpenSuse Build Service/Chinook Setup</title>
    <id>4278</id>
    <revision>
      <id>36065</id>
      <timestamp>2010-06-18T13:30:31Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:OpenSuse build service]]</comment>
      <text xml:space="preserve">I've done the following steps:

# Installed OBS using the instructions on the Meego OBS Setup page [http://wiki.meego.com/Build_Infrastructure/Sysadmin_Distro/OBS_setup_openSUSE112]
# Created a Maemo 4.1 project on the resulting OBS (manually on the web interface)
# Copied the project configuration from the OpenSUSE Maemo 4.1 project[https://build.opensuse.org/project/prjconf?project=Maemo%3A4.1] to the local Maemo 4.1 project
# Copied the raw configuration from the OpenSUSE Maemo 4.1 project[https://build.opensuse.org/project/meta?project=Maemo%3A4.1] to the local Maemo 4.1 project (and added a armv7el and armv5el architecture, as well as changed the users)


The current project config I have now:

&lt;pre&gt;
Repotype: debian
Preinstall: bash perl-base sed grep coreutils debianutils
Preinstall: libc6 libncurses5 libacl1 libattr1
Preinstall: libreadline4 tar gawk dpkg
Preinstall: sysv-rc gzip base-files

Runscripts: base-files

VMinstall: util-linux binutils libblkid1 libuuid1

Required: autoconf binutils bzip2 gcc gettext libc6
Required: libtool libncurses5 perl zlib1g dpkg

Support: build-essential fakeroot
Support: bison cpio
Support: file flex
Support: groff-base gzip 
Support: make man module-init-tools
Support: net-tools util-linux
Support: patch procps psutils 
Support: texinfo ncurses-base

Support: sysvinit

Keep: binutils cpp cracklib file findutils gawk gcc gcc-ada gcc-c++
Keep: gzip libada libstdc++ libunwind
Keep: libunwind-devel libzio make mktemp pam-devel pam-modules
Keep: patch perl rcs timezone

Prefer: cvs libesd0 libfam0 libfam-dev expect

Prefer: gawk
Prefer: xorg-x11-libs libpng fam mozilla mozilla-nss xorg-x11-Mesa
Prefer: unixODBC libsoup glitz java-1_4_2-sun gnome-panel
Prefer: desktop-data-SuSE gnome2-SuSE mono-nunit gecko-sharp2
Prefer: apache2-prefork openmotif-libs ghostscript-mini gtk-sharp
Prefer: glib-sharp libzypp-zmd-backend mDNSResponder

Prefer: -libgcc-mainline -libstdc++-mainline -gcc-mainline-c++
Prefer: -libgcj-mainline -viewperf -compat -compat-openssl097g
Prefer: -zmd -OpenOffice_org -pam-laus -libgcc-tree-ssa -busybox-links
Prefer: -crossover-office -libgnutls11-dev

Conflict: ghostscript-library:ghostscript-mini

Ignore: sysvinit:initscripts
Ignore: vim

Ignore: aaa_base:aaa_skel,suse-release,logrotate,ash,mingetty,distribution-release
Ignore: gettext-devel:libgcj,libstdc++-devel
Ignore: pwdutils:openslp
Ignore: pam-modules:resmgr
Ignore: rpm:suse-build-key,build-key
Ignore: bind-utils:bind-libs
Ignore: alsa:dialog,pciutils
Ignore: portmap:syslogd
Ignore: fontconfig:freetype2
Ignore: fontconfig-devel:freetype2-devel
Ignore: xorg-x11-libs:freetype2
Ignore: xorg-x11:x11-tools,resmgr,xkeyboard-config,xorg-x11-Mesa,libusb,freetype2,libjpeg,libpng
Ignore: apache2:logrotate
Ignore: arts:alsa,audiofile,resmgr,libogg,libvorbis
Ignore: kdelibs3:alsa,arts,pcre,OpenEXR,aspell,cups-libs,mDNSResponder,krb5,libjasper
Ignore: kdelibs3-devel:libvorbis-devel
Ignore: kdebase3:kdebase3-ksysguardd,OpenEXR,dbus-1,dbus-1-qt,hal,powersave,openslp,libusb
Ignore: kdebase3-SuSE:release-notes
Ignore: jack:alsa,libsndfile
Ignore: libxml2-devel:readline-devel
Ignore: gnome-vfs2:gnome-mime-data,desktop-file-utils,cdparanoia,dbus-1,dbus-1-glib,krb5,hal,libsmbclient,fam,file_alteration
Ignore: libgda:file_alteration
Ignore: gnutls:lzo,libopencdk
Ignore: gnutls-devel:lzo-devel,libopencdk-devel
Ignore: pango:cairo,glitz,libpixman,libpng
Ignore: pango-devel:cairo-devel
Ignore: cairo-devel:libpixman-devel
Ignore: libgnomeprint:libgnomecups
Ignore: libgnomeprintui:libgnomecups
Ignore: orbit2:libidl
Ignore: orbit2-devel:libidl,libidl-devel,indent
Ignore: qt3:libmng
Ignore: qt-sql:qt_database_plugin
Ignore: gtk2:libpng,libtiff
Ignore: libgnomecanvas-devel:glib-devel
Ignore: libgnomeui:gnome-icon-theme,shared-mime-info
Ignore: scrollkeeper:docbook_4,sgml-skel
Ignore: gnome-desktop:libgnomesu,startup-notification
Ignore: python-devel:python-tk
Ignore: gnome-pilot:gnome-panel
Ignore: gnome-panel:control-center2
Ignore: gnome-menus:kdebase3
Ignore: gnome-main-menu:rug
Ignore: libbonoboui:gnome-desktop
Ignore: postfix:pcre
Ignore: docbook_4:iso_ent,sgml-skel,xmlcharent
Ignore: control-center2:nautilus,evolution-data-server,gnome-menus,gstreamer-plugins,gstreamer,metacity,mozilla-nspr,mozilla,libxklavier,gnome-desktop,startup-notification
Ignore: docbook-xsl-stylesheets:xmlcharent
Ignore: liby2util-devel:libstdc++-devel,openssl-devel
Ignore: yast2:yast2-ncurses,yast2-theme-SuSELinux,perl-Config-Crontab,yast2-xml,SuSEfirewall2
Ignore: yast2-core:netcat,hwinfo,wireless-tools,sysfsutils
Ignore: yast2-core-devel:libxcrypt-devel,hwinfo-devel,blocxx-devel,sysfsutils,libstdc++-devel
Ignore: yast2-packagemanager-devel:rpm-devel,curl-devel,openssl-devel
Ignore: yast2-devtools:perl-XML-Writer,libxslt,pkgconfig
Ignore: yast2-installation:yast2-update,yast2-mouse,yast2-country,yast2-bootloader,yast2-packager,yast2-network,yast2-online-update,yast2-users,release-notes,autoyast2-installation
Ignore: yast2-bootloader:bootloader-theme
Ignore: yast2-packager:yast2-x11
Ignore: yast2-x11:sax2-libsax-perl
Ignore: openslp-devel:openssl-devel
Ignore: java-1_4_2-sun:xorg-x11-libs
Ignore: java-1_4_2-sun-devel:xorg-x11-libs
Ignore: kernel-um:xorg-x11-libs
Ignore: tetex:xorg-x11-libs,expat,fontconfig,freetype2,libjpeg,libpng,ghostscript-x11,xaw3d,gd,dialog,ed
Ignore: yast2-country:yast2-trans-stats
Ignore: susehelp:susehelp_lang,suse_help_viewer
Ignore: mailx:smtp_daemon
Ignore: cron:smtp_daemon
Ignore: hotplug:syslog
Ignore: pcmcia:syslog
Ignore: avalon-logkit:servlet
Ignore: jython:servlet
Ignore: ispell:ispell_dictionary,ispell_english_dictionary
Ignore: aspell:aspel_dictionary,aspell_dictionary
Ignore: smartlink-softmodem:kernel,kernel-nongpl
Ignore: OpenOffice_org-de:myspell-german-dictionary
Ignore: mediawiki:php-session,php-gettext,php-zlib,php-mysql,mod_php_any
Ignore: squirrelmail:mod_php_any,php-session,php-gettext,php-iconv,php-mbstring,php-openssl

Ignore: simias:mono(log4net)
Ignore: zmd:mono(log4net)
Ignore: horde:mod_php_any,php-gettext,php-mcrypt,php-imap,php-pear-log,php-pear,php-session,php
Ignore: xerces-j2:xml-commons-apis,xml-commons-resolver
Ignore: xdg-menu:desktop-data
Ignore: nessus-libraries:nessus-core
Ignore: evolution:yelp
Ignore: mono-tools:mono(gconf-sharp),mono(glade-sharp),mono(gnome-sharp),mono(gtkhtml-sharp),mono(atk-sharp),mono(gdk-sharp),mono(glib-sharp),mono(gtk-sharp),mono(pango-sharp)
Ignore: gecko-sharp2:mono(glib-sharp),mono(gtk-sharp)
Ignore: vcdimager:libcdio.so.6,libcdio.so.6(CDIO_6),libiso9660.so.4,libiso9660.so.4(ISO9660_4)
Ignore: libcdio:libcddb.so.2
Ignore: gnome-libs:libgnomeui
Ignore: nautilus:gnome-themes
Ignore: gnome-panel:gnome-themes
Ignore: gnome-panel:tomboy
&lt;/pre&gt;

My raw configuration looks like this:

&lt;pre&gt;
&lt;project name=&quot;Maemo:4.1&quot;&gt;
  &lt;title&gt;Maemo 4.1 (Diablo) Distribution&lt;/title&gt;
  &lt;description&gt;Maemo 4.1 (diablo) distribution for Nokia N800 and N810 development&lt;/description&gt;
  &lt;person userid=&quot;Admin&quot; role=&quot;maintainer&quot;/&gt;
  &lt;person userid=&quot;Admin&quot; role=&quot;bugowner&quot;/&gt;
  &lt;build&gt;
    &lt;enable/&gt;
  &lt;/build&gt;
  &lt;publish&gt;
    &lt;enable/&gt;
  &lt;/publish&gt;
  &lt;debuginfo&gt;
    &lt;enable/&gt;
  &lt;/debuginfo&gt;
  &lt;repository name=&quot;standard&quot;&gt;
    &lt;arch&gt;i586&lt;/arch&gt;
    &lt;arch&gt;armv7el&lt;/arch&gt;
    &lt;arch&gt;armv5el&lt;/arch&gt;
  &lt;/repository&gt;
&lt;/project&gt;
&lt;/pre&gt;


The next steps would be populating the repository with the packages I need to build (as well as getting the right compiler, of course).

[[Category:OpenSuse build service]]</text>
    </revision>
  </page>
  <page>
    <title>OpenSuse Build Service/Fremantle Setup</title>
    <id>4071</id>
    <revision>
      <id>36066</id>
      <timestamp>2010-06-18T13:30:51Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:OpenSuse build service]]</comment>
      <text xml:space="preserve">= Fremantle =

This currently refers to some inaccessible repos. I'll open them up as I get time.

Target:
* Use Maemo:Fremantle:1.2 as build target for Maemo Extras

Approach:
* Copy all Nokia Fremantle Binaries to Maemo:Fremantle:1.2:Std
* Create Maemo:Fremantle:1.2:Loaded to hold additional binaries needed by OBS
* Bootstrap needed packages using scratchbox. Put in Maemo:Fremantle:1.2:Loaded
* Create Maemo:Fremantle:1.2 as the nominal target for :Extras and the main prjconf

* Do we need to rebuild Maemo:Fremantle:1.2:Bootstrap/&lt;pkg&gt; to re-create packages

(see https://projects.maemo.org/trac/maemoobs/wiki/Fremantle too)


== Gitorious Project ==

The config and modified source needed to make the OBS work with Fremantle is kept:
  http://gitorious.org/m-obs

== Setup the projects ==

=== Maemo:Fremantle:1.2:Std ===
&lt;pre&gt;
# Specify the OBS we're working on
API=http://build.obs.maemo.org/

# Get the Fremantle binaries
mkdir -p /Downloads/fremantle1.2/
cd /Downloads/fremantle1.2/
wget -e robots=off --accept \*.deb --mirror --no-parent --progress=dot \
 --no-host-directories --cut-dirs=2 -nv \
 http://repository.maemo.org/pool/fremantle-update2/

# Prepare for the :full dir for the OBS
OBS=/backend_storage/obs/fremantle1.2
mkdir -p $OBS

REPO=/backend_storage/maemo-sdk-5/pool/maemo5.0
cd $OBS
mkdir -p armel_full i586_full
find $REPO -name *armel.deb | xargs -I@ ln @ armel_full
find $REPO -name *i386.deb | xargs -I@ ln @ i586_full
find $REPO -name *all.deb | xargs -I@ ln @ armel_full
find $REPO -name *all.deb | xargs -I@ ln @ i586_full#

REPO=/backend_storage/maemo-sdk-nokia-binaries-5/
cd $OBS
mkdir -p armel_full i586_full
find $REPO -name *armel.deb | xargs -I@ ln @ armel_full
find $REPO -name *i386.deb | xargs -I@ ln @ i586_full
find $REPO -name *all.deb | xargs -I@ ln @ armel_full
find $REPO -name *all.deb | xargs -I@ ln @ i586_full

# On an OBS client
osc -A $API meta prj Maemo:Fremantle:1.2:Std -F - &lt;&lt;XML
&lt;project name=&quot;Maemo:Fremantle:1.2:Std&quot;&gt;
  &lt;title&gt;Fremantle 1.2&lt;/title&gt;
  &lt;description&gt;
The standard binaries from Nokia
  &lt;/description&gt;
  &lt;person role=&quot;maintainer&quot; userid=&quot;Admin&quot;/&gt;
  &lt;person role=&quot;bugowner&quot; userid=&quot;Admin&quot;/&gt;
  &lt;build&gt;
    &lt;enable/&gt;
  &lt;/build&gt;
  &lt;publish&gt;
    &lt;disable/&gt;
  &lt;/publish&gt;
  &lt;debuginfo&gt;
    &lt;disable/&gt;
  &lt;/debuginfo&gt;
  &lt;repository name=&quot;standard&quot;&gt;
    &lt;arch&gt;armv7el&lt;/arch&gt;
    &lt;arch&gt;i586&lt;/arch&gt;
  &lt;/repository&gt;
&lt;/project&gt;
XML

# Back on OBS server
# Copy the binaries into the new project
cd /srv/obs/build/Maemo:Fremantle\:1.2\:Std/standard/
mkdir -p i586 armv7el
ln -s $OBS/i586_full i586/:full
ln -s $OBS/armel_full armv7el/:full

/usr/lib/obs/server/bs_admin --rescan-repository Maemo:Fremantle:1.2:Std standard i586
/usr/lib/obs/server/bs_admin --rescan-repository Maemo:Fremantle:1.2:Std standard armv7el

chown -R obsrun:obsrun /srv/obs/build/Maemo:Fremantle:1.2:Std
&lt;/pre&gt;

=== Maemo:Fremantle:1.2:Bootstrap ===
&lt;pre&gt;
# On an OBS client
osc -A $API meta prj Maemo:Fremantle:1.2:Bootstrap -F - &lt;&lt;XML
&lt;project name=&quot;Maemo:Fremantle:1.2:Bootstrap&quot;&gt;
  &lt;title&gt;Fremantle 1.2&lt;/title&gt;
  &lt;description&gt;
The standard binaries from Nokia
  &lt;/description&gt;
  &lt;person role=&quot;maintainer&quot; userid=&quot;Admin&quot;/&gt;
  &lt;person role=&quot;bugowner&quot; userid=&quot;Admin&quot;/&gt;
  &lt;build&gt;
    &lt;enable/&gt;
  &lt;/build&gt;
  &lt;publish&gt;
    &lt;enable/&gt;
  &lt;/publish&gt;
  &lt;debuginfo&gt;
    &lt;disable/&gt;
  &lt;/debuginfo&gt;
  &lt;useforbuild&gt;
    &lt;disable/&gt;
  &lt;/useforbuild&gt;
  &lt;repository name=&quot;Debian_5.0_standard&quot;&gt;
    &lt;path project=&quot;openSUSE.org:Debian:5.0&quot; repository=&quot;standard&quot;/&gt;
    &lt;arch&gt;armv5el&lt;/arch&gt;
    &lt;arch&gt;i586&lt;/arch&gt;
  &lt;/repository&gt;
  &lt;repository name=&quot;Ubuntu_9.04_standard&quot;&gt;
    &lt;path project=&quot;openSUSE.org:Ubuntu:9.04&quot; repository=&quot;standard&quot;/&gt;
    &lt;arch&gt;armv5el&lt;/arch&gt;
    &lt;arch&gt;i586&lt;/arch&gt;
  &lt;/repository&gt;
&lt;/project&gt;
XML

This project has &lt;useforbuild&gt; disabled. This means that a package built in this project will not attempt to resolve dependencies from peer packages.

Now ensure the Ubuntu/Debian bootstrapped armv5el binaries are copied to the armv7el repo
 echo ExportFilter: armel\.deb$ armv5el | osc -A $API meta prjconf Maemo:Fremantle:1.2:Bootstrap -F -
&lt;/pre&gt;

=== Maemo:Fremantle:1.2:Loaded ===

This project has the extra binaries needed for making the Fremantle
SDK build in the OBS.

&lt;pre&gt;
 osc -A $API meta prj Maemo:Fremantle:1.2:Loaded -F - &lt;&lt;XML
&lt;project name=&quot;Maemo:Fremantle:1.2:Loaded&quot;&gt;
  &lt;title&gt;Fremantle 1.2 Loaded&lt;/title&gt;
  &lt;description&gt;
This project contains all the binaries used in addition to the
standard Nokia ones. They are built in Maemo:Fremantle:1.2:Bootstrap and
then copied into here.
  &lt;/description&gt;
  &lt;person role=&quot;maintainer&quot; userid=&quot;Admin&quot;/&gt;
  &lt;person role=&quot;bugowner&quot; userid=&quot;Admin&quot;/&gt;
  &lt;build&gt;
    &lt;enable/&gt;
  &lt;/build&gt;
  &lt;publish&gt;
    &lt;enable/&gt;
  &lt;/publish&gt;
  &lt;debuginfo&gt;
    &lt;disable/&gt;
  &lt;/debuginfo&gt;
  &lt;repository name=&quot;standard&quot;&gt;
    &lt;arch&gt;armv7el&lt;/arch&gt;
    &lt;arch&gt;i586&lt;/arch&gt;
  &lt;/repository&gt;
&lt;/project&gt;
XML
&lt;/pre&gt;

=== Maemo:Fremantle:1.2 ===

This project is used as a target by applications. It is a multi-path
project looking first in :Loaded and then in :Std

&lt;pre&gt;
osc -A $API meta prj Maemo:Fremantle:1.2 -F - &lt;&lt;XML
&lt;project name=&quot;Maemo:Fremantle:1.2&quot;&gt;
  &lt;title&gt;Fremantle 1.2&lt;/title&gt;
  &lt;description&gt;
This project is the OBS Fremantle target.  It is based on the standard
Nokia binaries with some additional binaries needed for Fremantle.
  &lt;/description&gt;
  &lt;person role=&quot;maintainer&quot; userid=&quot;Admin&quot;/&gt;
  &lt;person role=&quot;bugowner&quot; userid=&quot;Admin&quot;/&gt;
  &lt;build&gt;
    &lt;enable/&gt;
  &lt;/build&gt;
  &lt;publish&gt;
    &lt;disable/&gt;
  &lt;/publish&gt;
  &lt;debuginfo&gt;
    &lt;disable/&gt;
  &lt;/debuginfo&gt;
  &lt;repository name=&quot;standard&quot;&gt;
    &lt;path project=&quot;Maemo:Fremantle:1.2:Loaded&quot; repository=&quot;standard&quot;/&gt;
    &lt;path project=&quot;Maemo:Fremantle:1.2:Std&quot; repository=&quot;standard&quot;/&gt;
    &lt;arch&gt;armv7el&lt;/arch&gt;
    &lt;arch&gt;i586&lt;/arch&gt;
  &lt;/repository&gt;
&lt;/project&gt;
XML
&lt;/pre&gt;

Since this project is a target it needs a prjconf:
http://gitorious.org/m-obs/maemoconf

== Essential Binaries for :Loaded ==

=== scratchbox-fake ===
&lt;pre&gt;
cd /maemo/devel/obs-community/
git clone git://gitorious.org/m-obs/scratchbox-fake.git
cd scratchbox-fake
dpkg-buildpackage -b -uc -us -rfakeroot
cd ..
&lt;/pre&gt;

=== busybox ===
This provides 'su' and 'getopt' through busybox-fremantle

Stskeeps reports that there's a login pkg inside Nokia that would be better.
It may also be worth repackaging the linux-utils.

&lt;pre&gt;
cd /maemo/devel/obs-community/
git clone git://gitorious.org/m-obs/busybox.git
cd busybox
dpkg-buildpackage -b -uc -us -rfakeroot
cd ..
&lt;/pre&gt;

=== fakeroot ===
Fakeroot has had to be updated to 1.11 from Debian and various changes made. See the git log.
&lt;pre&gt;
cd /maemo/devel/obs-community/
git clone git://gitorious.org/m-obs/fakeroot.git
cd fakeroot
dpkg-buildpackage -b -uc -us -rfakeroot
cd ..
&lt;/pre&gt;

Other packages:
* http://packages.debian.org/lenny/diff
* maemo-optify http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/maemo-optify/0.2.1/
* 

=== Promoting the Bootstrap to Loaded ===

&lt;pre&gt;
cd /maemo/devel/obs-community/
tar cvfz obs-bootstrap.tgz fakeroot_*.deb busybox-fremantle_*.deb scratchbox-fake_*.deb
&lt;/pre&gt;
Now get this to the server and unpack it in /tmp

&lt;pre&gt;

cd /tmp
tar xf /backend_storage/obs-bootstrap.tgz

cd /srv/obs/build/Maemo:Fremantle:1.2:Loaded/standard
mkdir -p i586/:full armv7el/:full
ln /tmp/*armel*deb armv7el/:full/
ln /tmp/*all*deb armv7el/:full/
ln /tmp/*all*deb i586/:full/
ln /tmp/*i386*deb i586/:full/

/usr/lib/obs/server/bs_admin --rescan-repository Maemo:Fremantle:1.2:Loaded standard i586
/usr/lib/obs/server/bs_admin --rescan-repository Maemo:Fremantle:1.2:Loaded standard armv7el


== Extras ==

&lt;pre&gt;
wget -e robots=off --mirror --no-parent --progress=dot  --no-host-directories --cut-dirs=5 -nv http://repository.maemo.org/extras/pool/fremantle/free/source/
&lt;/pre&gt;

Then:
&lt;pre&gt;
find /mnt/backend_storage/extras/ -name *dsc -exec /root/obs_package.pl --project Extras:Testing \{} \;
&lt;/pre&gt;
(This needs work - it uploads multiple versions and they go to 'excluded' state)

[[Category:OpenSuse build service]]</text>
    </revision>
  </page>
  <page>
    <title>OpenSuse Build Service/Installation</title>
    <id>4027</id>
    <revision>
      <id>36838</id>
      <timestamp>2010-07-15T08:29:00Z</timestamp>
      <contributor>
        <username>xfade</username>
        <id>15</id>
      </contributor>
      <comment>Remove Power/ppc section</comment>
      <text xml:space="preserve">= Maemo OBS Cluster Installation Notes =

== Introduction ==
Maemo OBS Clusters are divided into 3 instances:
* '''Frontend''' – Containing Webclient, OBS API, Mysql server
* '''Backend/Repository Server''' – Where OBS-Server, dispatcher, scheduler and repository server are installed
* '''Workers''' – Installation of obs-worker package

This Installation Notes covers OBS installation and setup for '''version 1.7'''.  You can always refer to latest documentation also available on-line: http://gitorious.org/opensuse/build-service/blobs/raw/master/dist/README.SETUP

== Networking Overview ==

The Front End (FE) machine provides two major services: 
* the webui on build.obs and
* the API on apo.obs;
It is also a useful holding point for the download service on download.obs

The Back End (BE) machine provides the backend services including the schedulers, source server and repo server. The repo server (used by the workers to get required rpms) also doubles as the download server via a reverse-proxy on the FE.

&lt;source lang=&quot;bash&quot;&gt;
10.1.1.1        host.obs.maemo.org
10.1.1.10       fe.obs.maemo.org build.obs.maemo.org api.obs.maemo.org download.obs.maemo.org
10.1.1.11       be.obs.maemo.org src.obs.maemo.org repo.obs.maemo.org
10.1.1.51       w1.obs.maemo.org
10.1.1.52       w2.obs.maemo.org
10.1.1.53       w3.obs.maemo.org
10.1.1.54       w4.obs.maemo.org
10.1.1.55       w5.obs.maemo.org
10.1.1.56       w6.obs.maemo.org
10.1.1.57       w7.obs.maemo.org
10.1.1.58       w8.obs.maemo.org
10.1.1.59       w9.obs.maemo.org
10.1.1.60       w10.obs.maemo.org
10.1.1.61       w11.obs.maemo.org
10.1.1.62       w12.obs.maemo.org
&lt;/source&gt;

&lt;hr&gt;

== Creating Xen VMs ==

Based on http://en.opensuse.org/Build_Service/KIWI/Cookbook
&lt;source lang='bash'&gt;
zypper ar http://download.opensuse.org/repositories/Virtualization:/Appliances/openSUSE_11.2/ Virtualization:Appliances
zypper refresh
zypper in kiwi kiwi-templates kiwi-desc-xenboot squashfs
&lt;/source&gt;

Create some Xen volumes
&lt;source lang='bash'&gt;
lvcreate -L 10G VG_data -n fe_root
lvcreate -L 2G  VG_data -n fe_swap
mkswap /dev/VG_data/fe_swap

lvcreate -L 10G VG_data -n be_root
lvcreate -L 2G  VG_data -n be_swap
mkswap /dev/VG_data/be_swap

lvcreate -L 10G VG_data -n w1_root
lvcreate -L 2G  VG_data -n w1_swap
mkswap /dev/VG_data/w1_swap
&lt;/source&gt;

Prepare an openSUSE minimal image:
&lt;source lang='bash'&gt;
ROOTFS=/data/11.2min/image-root
mkdir /data/11.2min
kiwi --prepare suse-11.2-JeOS --root $ROOTFS --add-profile xenFlavour --add-package less --add-package iputils
&lt;/source&gt;

Update the config &amp; modules:
&lt;source lang='bash'&gt;
ROOTFS=/data/11.2min/image-root
cp -a /lib/modules/2.6.31.12-0.2-xen $ROOTFS/lib/modules/

echo default 10.1.1.1 &gt; $ROOTFS/etc/sysconfig/network/routes
echo NETCONFIG_DNS_POLICY=\&quot;\&quot; &gt;&gt; $ROOTFS/etc/sysconfig/network/config
echo nameserver 8.8.8.8 &gt; $ROOTFS/etc/resolv.conf
echo default 10.1.1.1 &gt; $ROOTFS/etc/sysconfig/network/routes
cat &lt;&lt; EOF &gt;$ROOTFS/etc/sysconfig/network/ifcfg-eth0
BOOTPROTO='static'
BROADCAST=''
STARTMODE='onboot'
EOF
echo /dev/xvda1 swap swap defaults 0 0 &gt;&gt; $ROOTFS/etc/fstab
&lt;/source&gt;


Copy to each of the VM root disks
&lt;source lang='bash'&gt;
mkfs -text3 /dev/VG_data/fe_root
mount /dev/VG_data/fe_root /mnt/lvm
rsync -HAXa /data/11.2min/image-root/ /mnt/lvm/
echo fe.obs.maemo.org &gt; /mnt/lvm/etc/HOSTNAME
echo &quot;IPADDR='10.1.1.10/24'&quot; &gt;&gt; /mnt/lvm/etc/sysconfig/network/ifcfg-eth0
umount /mnt/lvm

mkfs -text3 /dev/VG_data/be_root
mount /dev/VG_data/be_root /mnt/lvm
rsync -HAXa /data/11.2min/image-root/ /mnt/lvm/
echo be.obs.maemo.org &gt; /mnt/lvm/etc/HOSTNAME
echo &quot;IPADDR='10.1.1.11/24'&quot; &gt;&gt; /mnt/lvm/etc/sysconfig/network/ifcfg-eth0
umount /mnt/lvm

mkfs -text3 /dev/VG_data/w1_root
mount /dev/VG_data/w1_root /mnt/lvm
rsync -HAXa /data/11.2min/image-root/ /mnt/lvm/
echo w1.obs.maemo.org &gt; /mnt/lvm/etc/HOSTNAME
echo &quot;IPADDR='10.1.1.51/24'&quot; &gt;&gt; /mnt/lvm/etc/sysconfig/network/ifcfg-eth0
umount /mnt/lvm
&lt;/source&gt;

Configure some Xen VM configs
&lt;source lang='bash'&gt;
name='fe'
disk=['phy:/dev/VG_data/fe_root,xvda2,w', 'phy:/dev/VG_data/fe_swap,xvda1,w']
vif=['mac=0D:16:3E:40:B5:FE']
memory='1024'

root='/dev/xvda2 ro'
kernel='/boot/vmlinuz-2.6.31.12-0.2-xen'
ramdisk='/boot/initrd-2.6.31.12-0.2-xen'
extra='clocksource=jiffies console=hvc0 xencons=tty'

on_poweroff='destroy'
on_reboot='restart'
on_crash='restart'
&lt;/source&gt;

And start them:
&lt;source lang='bash'&gt;
xm create /etc/xen/fe.cfg
xm create /etc/xen/be.cfg
xm create /etc/xen/w1.cfg
&lt;/source&gt;

== Interim config ==
&lt;source lang='bash'&gt;
zypper in wget less iputils terminfo emacs 
&lt;/source&gt;

== Installing the Backend ==

On this host we need also to setup openSUSE Tools repository:
&lt;source lang='bash'&gt;
cd /etc/zypp/repos.d/;
wget http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.2/openSUSE:Tools.repo
zypper ref
# Accept the trust key
&lt;/source&gt;

Install:
&lt;source lang='bash'&gt;
zypper in obs-server obs-signer obs-utils createrepo dpkg nfs-client 
# obs-server brings these other packages as dependency. This is just for you to notice which packages are needed for Backend installation
# createrepo &amp; dpkg are only recommends
# NFS client is needed as we use an NFS share for host/BE interchange
&lt;/source&gt;
Configure Scheduler architectures
&lt;source lang='bash'&gt;
vi /etc/sysconfig/obs-server
OBS_SCHEDULER_ARCHITECTURES=&quot;i586 armv5el armv7el“
&lt;/source&gt;

/usr/lib/obs/server/BSConfig.pm needs to point to correct server names corresponding to source server, where workers are going to download the source, and the repository server, where RPM repos are going to be shared to users.
&lt;source lang='bash'&gt;
vi /usr/lib/obs/server/BSConfig.pm
#add
$hostname=&quot;be.obs.maemo.org&quot;;

our $srcserver = &quot;http://src.obs.maemo.org:5352&quot;;
our $reposerver = &quot;http://repo.obs.maemo.org:5252&quot;;
our $repodownload = &quot;http://$hostname/repositories&quot;;
&lt;/source&gt;

Configure services as daemons
&lt;source lang='bash'&gt;
chkconfig --add obsrepserver obssrcserver obsscheduler obsdispatcher obspublisher obswarden obssigner

#Check them
chkconfig -l obsrepserver obssrcserver obsscheduler obsdispatcher obspublisher
&lt;/source&gt;
Start Services
&lt;source lang='bash'&gt;
   rcobsrepserver start
   rcobssrcserver start
   rcobsscheduler start
   rcobsdispatcher start
   rcobspublisher  start
&lt;/source&gt;
For version 1.7 there are a new services. You can start them as well:
* '''obswarden'''
   It checks if build hosts are dying and cleans up hanging builds
* '''obssigner'''
   It is used to sign packages via the obs-sign daemon. You need to configure
   it in BSConfig.pm before you can use it.
* '''obsservice'''
   This is the source service daemon. OBS 1.7 just comes with a download
   service so far. This feature is considered to be experimental so far,
   but can be already extended with own services.

'''Install Lighttpd'''

lighttpd also needs to be available on backend server. This is required to provide directory listing on the repositories available on this server when an http/s request to maemo-repo is made through web ui.

&lt;source lang='bash'&gt; 
zypper in lighttpd
&lt;/source&gt;

Create a new file under /etc/lighttpd/vhosts.d/. It can be obs.conf as well, and add:
&lt;source lang='bash'&gt;
vi /etc/lighttpd/vhosts.d/obs.conf

$HTTP[&quot;host&quot;] =~ &quot;repo.obs.maemo.org&quot; {
  server.name = &quot;repo.obs.maemo.org&quot;

  server.document-root = &quot;/srv/obs/repos/&quot;
  dir-listing.activate = &quot;enable&quot;
}
&lt;/source&gt;

To enable vhosts, remember to '''uncomment''' the following in the 'custom includes':

&lt;source lang='bash'&gt;
vi /etc/lighttpd/lighttpd.conf
##
  ## custom includes like vhosts.
  ##
  #include &quot;conf.d/config.conf&quot;
  # following line uncommented as per
  # /usr/share/doc/packages/obs-api/README.SETUP
  include_shell &quot;cat vhosts.d/*.conf&quot;  
&lt;/source&gt;

Start lighttpd
&lt;source lang='bash'&gt;
#first add it as deamon
chkconfig --add lighttpd
rclighttpd start
&lt;/source&gt;

== Installing the FrontEnd (WebUI and API) ==

Start with a minimal SUSE install and then add Tools repository where OBS 1.7 is available.
&lt;source lang='bash'&gt;
cd /etc/zypp/repos.d/;
wget http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.2/openSUSE:Tools.repo
zypper ref
# Accept the trust key
&lt;/source&gt;

Install obs-api (It's going to install lighttpd webserver by dependency for you).
&lt;source lang='bash'&gt;
zypper in obs-api memcached
&lt;/source&gt;

'''Setup MySQL'''

MySQL server needs to be installed and configured to start as daemon
&lt;source lang='bash'&gt;
chkconfig --add mysql
rcmysql start
&lt;/source&gt;
Setup a secure installation, if it's the first time starting MySQL
&lt;source lang='bash'&gt;
/usr/bin/mysql_secure_installation
&lt;/source&gt;
The frontend instance holds 2 applications, the API and the webui. Each one need a database created
&lt;source lang='bash'&gt;
mysql -u root -p
mysql&gt; create database api_production;
mysql&gt; create database webui_production;
&lt;/source&gt;
Add obs user to handle these databases
&lt;source lang='bash'&gt;
GRANT all privileges
      ON api_production.* 
      TO 'obs'@'%', 'obs'@'localhost' IDENTIFIED BY '************';
GRANT all privileges
      ON webui_production.* 
      TO 'obs'@'%', 'obs'@'localhost' IDENTIFIED BY '************';
FLUSH PRIVILEGES;
&lt;/source&gt;
Configure your MySQL user and password in the &quot;production:&quot; section of the API config: 
&lt;source lang='bash'&gt;
vi /srv/www/obs/api/config/database.yml
#change the production section
production:
  adapter: mysql
  database: api_production
  username: obs
  password: ************
&lt;/source&gt;
Do the same for the webui. It's configured, by default to use SQLite, but since we're configuring the cluster for production environment, let's bind it to mysql:

&lt;source lang='bash'&gt;
vi /srv/www/obs/webui/config/database.yml
#change the production section
production:
  adapter: mysql
  database: webui_production
  username: obs
  password: ************
&lt;/source&gt;
Populate the database
&lt;source lang='bash'&gt;
cd /srv/www/obs/api/
RAILS_ENV=&quot;production&quot; rake db:migrate

cd /srv/www/obs/webui/
RAILS_ENV=&quot;production&quot; rake db:migrate
&lt;/source&gt;
You can check the migration was successful verifying the “migrated” message at the end of each statement.

'''Setup and configure lighttpd for the API and webui'''

You need to setup the correct hostnames to where webui, API and repo server are going to point to
&lt;source lang='bash'&gt;
vi /etc/lighttpd/vhosts.d/obs.conf
$HTTP[&quot;host&quot;] =~ &quot;build&quot; {
  rails_app   = &quot;webui&quot;
  rails_root  = &quot;/srv/www/obs/webui&quot;
  rails_procs = 3
  # production/development are typical values here
  rails_mode  = &quot;production&quot;

  log_root = &quot;/srv/www/obs/webui/log&quot;

  include &quot;vhosts.d/rails.inc&quot;
}
$HTTP[&quot;host&quot;] =~ &quot;api&quot; {
  rails_app   = &quot;api&quot;
  rails_root  = &quot;/srv/www/obs/api&quot;
  rails_procs = 3
  # production/development are typical values here
  rails_mode  = &quot;production&quot;

  log_root = &quot;/srv/www/obs/api/log&quot;

  include &quot;vhosts.d/rails.inc&quot;
}
$HTTP[&quot;host&quot;] =~ &quot;download&quot; {
# This should point to an rsync populated download repo
#  server.name = &quot;download.obs.maemo.org&quot;
#  server.document-root = &quot;/srv/obs/repos/&quot;

  proxy.server = ( &quot;&quot; =&gt; ( (
        &quot;host&quot; =&gt; &quot;10.1.1.11&quot;,
        &quot;port&quot; =&gt; 80
      ))
  )
}
/source&gt;

To enable these vhosts, make sure to '''uncomment''' the following in the 'custom includes' section at the bottom of /etc/lighttpd/lighttpd.conf:
&lt;source lang='bash'&gt;
vi /etc/lighttpd/lighttpd.conf
##
  ## custom includes like vhosts.
  ##
  #include &quot;conf.d/config.conf&quot;
  # following line uncommented as per
  # /usr/share/doc/packages/obs-api/README.SETUP
  include_shell &quot;cat vhosts.d/*.conf&quot;  
&lt;/source&gt;
Also, the modules &quot;mod_magnet&quot;, &quot;mod_rewrite&quot; and FastCGI need to be enabled by uncommenting the corresponding lines in /etc/lighttpd/modules.conf:
&lt;source lang='bash'&gt;
vi /etc/lighttpd/modules.conf
    server.modules = (
      &quot;mod_access&quot;,
    #  &quot;mod_alias&quot;,
    #  &quot;mod_auth&quot;,
    #  &quot;mod_evasive&quot;,
    #  &quot;mod_redirect&quot;,
      &quot;mod_rewrite&quot;,
    #  &quot;mod_setenv&quot;,
    #  &quot;mod_usertrack&quot;,
    )

    ##
    ## mod_magnet
    ##
    include &quot;conf.d/magnet.conf&quot;

    ##
    ## FastCGI (mod_fastcgi)
    ##
    include &quot;conf.d/fastcgi.conf&quot;
&lt;/source&gt;
You need also to configure /srv/www/obs/webui/config/environments/production.rb to point to correct server names:
&lt;source lang='bash'&gt;
vi /srv/www/obs/webui/config/environments/production.rb
FRONTEND_HOST = &quot;api.obs.maemo.org&quot;
FRONTEND_PORT = 80
EXTERNAL_FRONTEND_HOST = &quot;api.obs.maemo.org&quot;
BUGZILLA_HOST = &quot;http://bugs.maemo.org/&quot;
DOWNLOAD_URL = &quot;http://downloads.obs.maemo.org&quot;
&lt;/source&gt;
Do the same for /srv/www/obs/api/config/environments/production.rb. As soon your backend is not on the same machine as the api (frontend), change the following:
&lt;source lang='bash'&gt;
vi /srv/www/obs/api/config/environments/production.rb
SOURCE_HOST = &quot;src.obs.maemo.org&quot;
SOURCE_PORT = 5352
&lt;/source&gt;
Make sure TCP port 5352 is open on the firewall.
Ensure lighttpd and obs ui helpers start:
&lt;source lang='bash'&gt;
chkconfig --add memcached
chkconfig --add lighttpd
chkconfig --add obsapidelayed
chkconfig --add obswebuidelayed

rcmemcached start
rclighttpd start
rcobsapidelayed start
rcobswebuidelayed start
&lt;/source&gt;

ligthttpd user and group need to be the owner of api and webui dirs (as well as log and tmp):
&lt;source lang='bash'&gt;
chown -R lighttpd.lighttpd /srv/www/obs/{api,webui}
&lt;/source&gt;

== Installing the Workers ==

The other 14 hosts on the cluster are reserved to be used as workers, where package builds are going to place.

The same openSUSE Tools repository addition must be done for each worker.
&lt;source lang='bash'&gt;
cd /etc/zypp/repos.d/;
wget http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.2/openSUSE:Tools.repo
zypper ref
# Accept the trust key
&lt;/source&gt;

Install worker:
&lt;source lang='bash'&gt;
zypper in obs-worker quemu-svn mount-static bash-static
&lt;/source&gt;
(mount-static and bash-static are needed on the worker for rpm cross-compile to work)

Edit the file /etc/sysconfig/obs-worker in order to point to correct repository server. 
&lt;source lang='bash'&gt;
vi /etc/sysconfig/obs-worker
OBS_SRC_SERVER=&quot;src.obs.maemo.org:5352&quot;
OBS_REPO_SERVERS=&quot;repo.obs.maemo.org:5252&quot;
OBS_VM_TYPE=&quot;none&quot;
&lt;/source&gt;

Each worker has 16 CPUs, so 16 workers need to be started.

Start the worker service:
&lt;source lang='bash'&gt;
chkconfig --add obsworker

rcobsworker start
&lt;/source&gt;

== Tuning ==
The lighttpd config was reduced to 3 api/webui child processes from 5.

== Revise VG setup ==

pvcreate /dev/disk/by-id/dm-name-360060e8005478600000047860000398c_part1
pvcreate /dev/disk/by-id/dm-name-360060e8005478600000047860000398c_part2
pvcreate /dev/disk/by-id/dm-name-360060e8005478600000047860000398c_part3
pvcreate /dev/disk/by-id/dm-name-360060e8005478600000047860000398c_part4

Now create the OBS VG for the host Xen worker:
 vgcreate OBS /dev/disk/by-id/dm-name-360060e8005478600000047860000398c_part1
 vgextend OBS /dev/disk/by-id/dm-name-360060e8005478600000047860000398c_part2


 lvcreate -L 20G -n cache OBS
 mkfs -text4 /dev/OBS/cache

 for i in 1 2 3 4 5 6 7 8 9 10
 do
   lvcreate -L 4G -n worker_root$i OBS
   mkfs -text4 /dev/OBS/worker_root$i
   lvcreate -L 1G -n worker_swap$i OBS
   mkswap -f /dev/OBS/worker_swap$i
 done

Note in 1.7.3 obsstoragesetup makes /OBS.worker/root1/root but obsworker looks for /OBS.worker/root_1/root (root1 vs root_1)


Also ensure the host has :
 obs-worker (1.7.3)
 qemu-svn

In order to run arm binaries in the Xen chroot we need to ensure the initrd inserts binfmt_misc
in /etc/sysconfig/kernel, set
  DOMU_INITRD_MODULES=&quot;xennet xenblk binfmt_misc
then
 mkinitrd -k vmlinuz-2.6.31.12-0.2-xen -i initrd-2.6.31.12-0.2-xen-binfmt -B

On the backend machine edit /usr/lib/build/xen.conf to use the correct initrd

== Remove Power/PPC from monitor page==

We don't target PPC, so best remove it from the build monitor page:

On FE in webui/app/views/monitor/_plots.rhtml

Use html comments to disable the Power line:

&lt;pre&gt;&lt;!--&lt;%= render :partial =&gt; 'graphs_arch', :locals =&gt; { :title =&gt; &quot;Power&quot;, :prefix =&gt; 'ppc_' } %&gt;--&gt;&lt;/pre&gt;

On FE webui/config/environment.rb

Change the MONITOR_IMAGEMAP section to:

&lt;pre&gt;MONITOR_IMAGEMAP = {.
      'pc_waiting' =&gt; [
        [&quot;i586&quot;, 'waiting_i586'],
        [&quot;x86_64&quot;, 'waiting_x86_64'] ],
      'pc_blocked' =&gt; [
        [&quot;i586&quot;, 'blocked_i586' ],
        [&quot;x86_64&quot;, 'blocked_x86_64'] ],
      'pc_workers' =&gt; [
        [&quot;idle&quot;, 'idle_x86_64' ],
        ['building', 'building_x86_64' ] ],
#      'ppc_waiting' =&gt; [
#        [&quot;ppc&quot;, 'waiting_ppc'],
#        [&quot;ppc64&quot;, 'waiting_ppc64'] ],
#      'ppc_blocked' =&gt; [
#        [&quot;ppc&quot;, 'blocked_ppc' ],
#        [&quot;ppc64&quot;, 'blocked_ppc64'] ],
#      'ppc_workers' =&gt; [
#        [&quot;idle&quot;, 'idle_ppc64' ],
#        ['building', 'building_ppc64' ] ],
      'arm_waiting' =&gt; [
        [&quot;armv5&quot;, 'waiting_armv5el'],
        [&quot;armv7&quot;, 'waiting_armv7el'] ],
      'arm_blocked' =&gt; [
        [&quot;armv5&quot;, 'blocked_armv5el' ],
        [&quot;armv7&quot;, 'blocked_armv7el'] ],
      'arm_workers' =&gt; [
        [&quot;idle&quot;, 'idle_armv7el' ],
        ['building', 'building_armv7el' ] ],
    }

&lt;/pre&gt;
[[Category:OpenSuse build service]]</text>
    </revision>
  </page>
  <page>
    <title>OpenSuse Build Service/MeeGo Setup</title>
    <id>4260</id>
    <revision>
      <id>39225</id>
      <timestamp>2010-09-30T19:54:55Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>/* MeeGo Current */</comment>
      <text xml:space="preserve">= MeeGo =

In general the community OBS should map to the release OBS.

The release OBS projects are:
* MeeGo:1.0
* MeeGo:1.0:Core
* MeeGo:1.0:Core:Update
* MeeGo:1.0:Core:Update:Testing
* MeeGo:1.0:Extra
* MeeGo:1.0:Extra:Update
* MeeGo:1.0:Extra:Update:Testing
* MeeGo:1.0:Handset
* MeeGo:1.0:IVI
* MeeGo:1.0:IVI:Update
* MeeGo:1.0:IVI:Update:Testing
* MeeGo:1.0:Netbook
* MeeGo:1.0:Netbook:Update
* MeeGo:1.0:Netbook:Update:Testing
* MeeGo:1.0:Staging
* MeeGo:1.0:non-oss
* MeeGo:1.0:non-oss:Update
* MeeGo:1.0:non-oss:Update:Testing

We will assume that there are no naming conflicts and consolidate these into the following build targets:
* MeeGo_1.0
* MeeGo_1.0_Update
* MeeGo_1.0_Update_Testing (? do we need this)

and then provide a corresponding virtual target that always points to the current weekly snapshot:
* MeeGo_Current

and 2 named snapshots for previous releases:1.0.80.1.20100514.1
* MeeGo_1.0.80.1.20100514.1

See:  http://wiki.meego.com/Release_Engineering/Release_Versioning


=== MeeGo:1.0:Core ===
&lt;pre&gt;
# Specify the OBS we're working on
API=http://api.obs.maemo.org/

# Get the binaries
mkdir -p /backend_storage/MeeGo/1.0/ia32
cd  /backend_storage/MeeGo/1.0/ia32
wget -e robots=off --accept \*.rpm --mirror --no-parent --progress=dot \
 --no-host-directories --cut-dirs=7 -nv \
 http://repo.m2.org/MeeGo/releases/1.0/core/repos/ia32/packages/


# Prepare for the :full dir for the OBS
OBS=/backend_storage/obs/meego1.0
mkdir -p $OBS/i586_full
REPO=/backend_storage/MeeGo/1.0/ia32/
cd $OBS
find $REPO -name *.rpm | xargs -I@ ln @ i586_full

# Not done (11 Jun)
OBS=/backend_storage/obs/meego1.0
mkdir -p $OBS/armel_full
REPO=/backend_storage/MeeGo/1.0/armv7l
cd $OBS
find $REPO -name *rpm | xargs -I@ ln @ armel_full



# On an OBS client
osc -A $API meta prj MeeGo:1.0:Core -F - &lt;&lt;XML
&lt;project name=&quot;MeeGo:1.0:Core&quot;&gt;
  &lt;title&gt;MeeGo 1.0&lt;/title&gt;
  &lt;description&gt;
MeeGo from http://repo.m2.org/MeeGo/releases/1.0/core/repos
  &lt;/description&gt;
  &lt;person role=&quot;maintainer&quot; userid=&quot;Admin&quot;/&gt;
  &lt;person role=&quot;bugowner&quot; userid=&quot;Admin&quot;/&gt;
  &lt;build&gt;
    &lt;enable/&gt;
  &lt;/build&gt;
  &lt;publish&gt;
    &lt;disable/&gt;
  &lt;/publish&gt;
  &lt;debuginfo&gt;
    &lt;disable/&gt;
  &lt;/debuginfo&gt;
  &lt;repository name=&quot;standard&quot;&gt;
    &lt;arch&gt;armv7el&lt;/arch&gt;
    &lt;arch&gt;i586&lt;/arch&gt;
  &lt;/repository&gt;
&lt;/project&gt;
XML

# Back on OBS server
# Copy the binaries into the new project
cd /srv/obs/build/MeeGo\:1.0\:Core/standard/
mkdir -p i586 armv7el
ln -s $OBS/i586_full i586/:full
ln -s $OBS/armel_full armv7el/:full

/usr/lib/obs/server/bs_admin --rescan-repository MeeGo:1.0:Core standard i586
/usr/lib/obs/server/bs_admin --rescan-repository MeeGo:1.0:Core standard armv7el

chown -R obsrun:obsrun /srv/obs/build/MeeGo:1.0:Core
&lt;/pre&gt;

Since this project is a target it needs a prjconf

=== MeeGo Current ===

On the be we must have done:
&lt;pre&gt;
ln -s /backend_storage/obs/meego/current/armv7l_full/ /srv/obs/build/MeeGo:current/standard/armv7el/:full
ln -s /backend_storage/obs/meego/current/ia64_full/ /srv/obs/build/MeeGo:current/standard/ia64/:full
&lt;/pre&gt;


&lt;pre&gt;
build=1.0.90.4.20100928.1
BASE=/backend_storage/obs/meego
DL=$BASE/${build}/
PRJ=$BASE/current

# download
FROM=&quot;mirrors.kernel.org&quot;
FROMDIR=&quot;/meego/builds/1.0.90/${build}/&quot;

mkdir -p $DL
cd $DL

LFTPCOMMAND=&quot;mirror --parallel=2 -c -i .rpm -x /images/ -x /debug/ $FROMDIR .&quot;
lftp -c &quot;open -e '$LFTPCOMMAND' $FROM&quot;

mkdir -p $BASE/delete_me
mv $BASE/w-2 $BASE/delete_me
# rm -rf delete_me &amp;
mv $BASE/w-1 $BASE/w-2
mv $BASE/current $BASE/w-1

mkdir -p $BASE/current/armv5l_full
mkdir -p $BASE/current/armv7l_full
mkdir -p $BASE/current/i586_full

find $BASE/${build}/core/repos/ia32/ -name *rpm | xargs -I@ ln @ $BASE/current/i586_full
find $BASE/${build}/core/repos/armv5tel/ -name *rpm | xargs -I@ ln @ $BASE/current/armv5l_full
find $BASE/${build}/core/repos/armv7l/ -name *rpm | xargs -I@ ln @ $BASE/current/armv7l_full

chown -R obsrun:obsrun $BASE/current/
&lt;/pre&gt;

Now on the be:
&lt;pre&gt;
/usr/lib/obs/server/bs_admin --rescan-repository MeeGo:current standard i586
/usr/lib/obs/server/bs_admin --rescan-repository MeeGo:current standard armv5el
/usr/lib/obs/server/bs_admin --rescan-repository MeeGo:current standard armv7el
&lt;/pre&gt;


[[Category:OpenSuse build service]]</text>
    </revision>
  </page>
  <page>
    <title>OpenVPN</title>
    <id>3624</id>
    <revision>
      <id>33449</id>
      <timestamp>2010-04-26T09:08:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>category</comment>
      <text xml:space="preserve">This page describes setting up openVPN on an [[Nokia N900|N900]].

== Server Setup ==
The server should be setup like so:
  http://openvpn.net/index.php/open-source/documentation/howto.html

udp is better than tcp if you can use it. If your client is likely to be behind firewalls then tcp is more likely to work.

Consider whether compression is useful - if you're transferring media or using ssh tunnels then it may not gain much.

If you need access to a nameserver on your LAN you'll need this in the server.conf:
 push &quot;dhcp-option DNS 10.0.0.7&quot;            
 push &quot;dhcp-option DOMAIN dgreaves.com&quot;

== Client Setup ==

You'll need the [http://maemo.org/downloads/product/Maemo5/openvpn/ openVPN client] and the [http://maemo.org/downloads/product/Maemo5/openvpn-applet/ openVPN applet]

Create a matching client setup conf and copy it together with the client certificate, key and the ca file to the &lt;code&gt;/etc/openvpn/&lt;/code&gt; directory on the device.

The client.conf may need:
 # Allow scripts to be run
 script-security 2
 # and update the config when a route changes
 up /etc/openvpn/maemo-update-resolvconf
 plugin /opt/openvpn/lib/openvpn/openvpn-down-root.so &quot;script_type=down /etc/openvpn/maemo-update-resolvconf&quot;

The applet will pickup any .conf files in that directory.

[[Category:Software]]
[[Category:HowTo]]</text>
    </revision>
  </page>
  <page>
    <title>Open Media Player</title>
    <id>5043</id>
    <revision>
      <id>49128</id>
      <timestamp>2012-08-17T13:29:35Z</timestamp>
      <contributor>
        <username>gidzzz</username>
        <id>4801</id>
      </contributor>
      <comment>/* Known bugs: */</comment>
      <text xml:space="preserve">'''Open Media Player''' (referred to as '''OMP''' from now on) is an effort to recreate (closed source) stock '''Media Player''' (referred to as '''MP''', from now on) for [[Maemo]] platform, as Open Software. The main goal of the project is to include all features of '''MP''' without it's bugs, at the same time having the ability to extend functionality, when desired and appropriate.

'''OMP''' is currently in beta stage, so it may not be ready for end-users. However, brave souls (power-users, testers, developers) are encouraged to test it and participate in the development, by either submitting patches, or pointing out bugs/proposed features. '''OMP''' is on it's way to be included in the testing branch of [[CSSU]].

'''OMP''' can be installed from repositories: [[extras-devel]].

'''OMP''' got its thread on http://talk.maemo.org/showthread.php?t=72156 (discussion, reporting bugs, proposing features, etc.).

Changelog for the latest version of '''OMP''' is available from http://maemo.org/packages/view/openmediaplayer/.



== Features ==

==='''OMP''' extra features (not found in '''MP''')===


'''Portrait mode'''

The name speaks for itself: turn the device to rotate the interface. Automatic orientation can be disabled in the settings menu.


'''Entertainment View'''

An alternate view where elements from the regular &quot;Now Playing&quot; view are animated.


'''Car View'''

A finger-friendly view for use when driving. Tap the center of the screen to show the clock and swipe from right to left to show the playlist.


'''Lyrics'''

When enabled (in the general settings), '''OMP''' will download lyrics for the current song and cache them for offline use. Lyrics are provided by plugins and more than one of them can be enabled at the same time. If multiple plugins are active, the first one in the list will try to fetch lyrics, if it fails then the second, and so on. Tap the cover art to toggle between the usual progress bar/playlist and the lyrics display. It's possible to add missing lyrics and modify existing with the built-in editor, which can be invoked from lyrics' context menu.

Before the update of '''3th Aug 2012''', lyrics were stored in &quot;/home/user/.lyrics/&quot;. They cannot be simply moved to the new location, because the naming convention has changed, but that doesn't make them completely useless. OMP has a plugin called ''OMP pre-20120803 offline cache'', which will search for lyrics also in the old directory (and save them in the new), so don't forget to turn it on if you don't want to start afresh.

To manually insert lyrics into the cache, put them in &quot;/home/user/.cache/openmediaplayer/lyrics/Artist's Name/Title of the Song.txt&quot; (note case sensitivity).


'''Easy way to share files'''

Simply invoke the context menu of a song and select ''Share'' to send it via either Bluetooth or email. Works for videos, too.


'''Configurable size of automatic playlists'''

The number of songs can be changed in the general settings. If set to a large number, it works like sorting the whole library by popularity, last time played or from recently added to old.


'''Playlist editing'''

It appears in two places: &quot;Now playing&quot; and the playlist browser. To move an item, double-tap it, but, hold after the second touch (so it's more like one and a half tap) and drag it to the desired position.


'''Easier playlist creation'''

In many places you will find an option called ''Add to a playlist'', which allows you to append songs to an arbitrary playlist. It's also useful for cloning and combining playlists.


'''Creating playlists from a folder'''

To use this feature, check ''Open whole folders'' in the general settings. When enabled, opening a song with a file browser (like the stock one or FileBox) will not only play that song, but also enqueue other songs from the same directory.


'''Restoring the music playlist'''

It is easily possible to return to the music playlist after watching a movie or listening to radio. It can be accomplished by long-pressing the playback indicator in the bottom right corner of the screen and selecting ''Music'' from the context menu.


'''Improved album art'''

The first thing you will notice is probably the reflected cover, but what is more important, '''OMP''' will detect files named &quot;front.jpg&quot; and &quot;folder.jpg&quot; (in addition to standard &quot;cover.jpg&quot;). Moreover, it is possible to choose any other file, using &quot;Select album art&quot; from cover's context menu.


'''Reverse time'''

This is hard to notice, because the only way to turn it on is to click a label which shows playback progress (on the left of a progress bar). When enabled,  time is counted from the end of a track, instead of from the beginning. Works both for movies and songs.


'''Headset button'''

Open Media Player has support for &quot;phone&quot; button on wired jack headset. In configuration dialog it is possible to select an action to be performed when the button is pressed. This feature does not even require any additional applications/packages (like headset-button-enabler or headset-control).


'''Searching without sliding out the keyboard'''

You can open the search box by sliding your finger up from the very bottom of the screen. When it pops out, do what you would do with any other text field (click on it to show the on-screen keyboard). Very useful for portrait mode or if you're too lazy to use the physical keyboard.


'''Customizable action on exit'''

Closing '''MP''' usually results in stopping the music. However, in '''OMP''' it's also possible to pause the music or even keep it going with the player closed. Configurable in the settings window.


'''Sleep timer'''

The sleep timer makes it possible to automatically pause/stop playback or close the application (with respect to the closing action selected in the main settings) after a selected number of minutes. Moreover, it supports two variants of volume reduction: linear, which decreases the volume level in equal intervals and exponential, which starts gently, but speeds up as approaches the timeout. Volume level can be changed freely when the sleep timer is in effect ‌– reduction rate will be adjusted to keep the chosen characteristic and reach 0 at the end (but in reality the sound already goes mute at ~4%). Available from the main window's menu.

==='''MP''' features, currently lacking in '''OMP'''===

*Counting duration of playlists in the playlist browser.
*...

===Known bugs:===

*''Headset button action'' does not work properly if ''Prevent playback interruptions'' is enabled.
*...

===Planned extra features (not present in '''MP''')===

*...

== Configuration ==

=== General settings ===

The settings window is accessible from the titlebar menu of the main view. Some of the options might look mysterious (there's not enough space for more elaborate names) and this is why their meanings are explained here.


'''Continuous video playback'''

When a movie ends in '''MP''', playback stops and the video window is closed. This is also the default behavior of '''OMP''', but checking this option allows the next video in the playlist to be started automatically. Items in the playlist are ordered in the same way as they were displayed in the window from which the video was selected for playing.


'''Open whole folders'''

Controls the behavior when another program (like a file browser) tells '''OMP''' to open a song. When this option is disabled, only the selected song is opened. When enabled, also other songs from the same directory are added to the playlist. In other words, a playlist for the whole folder is created. This works non-recursively, i.e. subdirectories are not included.


'''Append opened songs'''

Another option related to cooperation with other applications. By default, when the player is ordered to open a song, current tracks are cleared and the song is added to a fresh playlist. Enabling this options skips the clearing procedure, so the selected song is added to the end of the playlist, leaving other tracks intact. Works together with ''Open whole folders''.


'''Prevent playback interruptions'''

In older versions of '''OMP''' each time an SMS or an IM arrived, the music was abruptly silenced, the notification sound was played and then the volume for music was restored. It makes the events harder to miss, but at a cost of unpleasant gaps in the music. This options allows you to choose between the described behavior and uninterrupted music with a quiet beep each time something happens.


'''Lazy sliders'''

With eager sliders, song/movie progress is adjusted immediately to the slider position. With the lazy option, playback position is changed after releasing the slider. The latter is smoother, but does not provide immediate preview.


'''&quot;Delete&quot; for playlist items'''

Turning this option on extends context menus of song lists in the playlist browser and ''Now playing'' by adding an action called ''Delete''. It provides a way to permanently delete a song (so the file is removed from the device), next to the soft ''Delete from playlist/now playing''.


'''Override FMTX checks in UI'''

Standard FM transmitter daemon does not allow transmitting with headphones or a USB cable plugged in, but this is not the case with jacekowski's modified FMTXD. If you have it installed, enabling this options skips the checking procedure, so nothing stands in the way to turn the transmitter on.


'''Force language code'''

If for some reason you don't want to use the automatically loaded translation, you can force a language by putting a language code in the input box. To auto-detect your language, just leave the box empty. For a list of available translations and their language codes visit http://www.transifex.net/projects/p/gidzzz-qt-mediaplayer/ (only mostly complete translations are packaged with '''OMP'''). Effects of this option are visible only after restarting the application.

=== Making OMP the default media player ===

As [[root]], edit file:
:''/usr/share/dbus-1/services/com.nokia.mediaplayer.service''
so the line:
&lt;pre&gt;Exec=/usr/bin/mediaplayer&lt;/pre&gt;

...becomes:
&lt;pre&gt;Exec=/usr/bin/openmediaplayer&lt;/pre&gt;

This will replace execution of '''MP''' binary with '''OMP''' one - without physically replacing files, so You can revert back to '''MP''' by reverting changes.

== Controls ==


{| class=&quot;wikitable&quot; border=1
! Shortcut !! Context !! Action
|-
| Backspace           || Almost everywhere               || Close
|-
| Left, Right, Up, Down, Enter || List                   || Navigate
|-
| Q           || Main menu                   || Browse music
|-
| W           || Main menu                   || Browse videos
|-
| E           || Main menu                   || Browse streams
|-
| R           || Main menu                   || Shuffle all
|-
| Left, Right || Main menu                   || Select UPnP share
|-
| colspan=&quot;3&quot; | &amp;nbsp;
|-
| Ctrl+Enter  || List with context menu, Now Playing (music/lyrics) || Show context menu
|-
| Shift+Enter || Window with menu       || Show window menu
|-
| Y           || Confirmation dialog    || Yes
|-
| N           || Confirmation dialog    || No
|-
| colspan=&quot;3&quot; | &amp;nbsp;
|-
| Ctrl+Left  || Window with playback indicator	|| Previous track
|-
| Ctrl+Right || Window with playback indicator	|| Next track
|-
| Ctrl+Space || Window with playback indicator	|| Open Now Playing
|-
| Space      || Window with playback indicator, || Toggle playback
|-
| colspan=&quot;3&quot; | &amp;nbsp;
|-
| Left	              || Now Playing (music, radio) || Previous track
|-
| Right	              || Now Playing (music, radio) || Next track
|-
| Space               || Now Playing                || Toggle playback
|-
| Ctrl+Space || Now Playing (music, video) || Change view
|-
| Left, Right, Up, Down || Now Playing (video) || Seek
|-
| S          || Now Playing (music, radio) || Stop playback
|-
| E          || Now Playing (music)        || Toggle shuffle mode
|-
| R          || Now Playing (music)        || Toggle repeat mode
|-
| colspan=&quot;3&quot; | &amp;nbsp;
|-
| Fn                  || List with filtering || Open search box
|-
| Up, Down            || Search box          || Return focus to underlying list
|-
| colspan=&quot;3&quot; | &amp;nbsp;
|-
| [swipe from bottom] || List with filtering || Open search box
|-
| [press and hold]    || Playback indicator  || Switch to music playlist
|-
| [press and hold]    || Play button (music, radio) || Stop playback
|}

== Translations ==

'''OMP''' package comes with the following translations:
*Arabic (Saudi Arabia),
*Czech,
*German,
*Spanish,
*Finnish,
*French,
*Hungarian,
*Italian,
*Dutch,
*Polish,
*Portuguese (Brazil),
*Portuguese (Portugal),
*Romanian,
*Russian,
*Swedish,
*Turkish,
*Ukrainian,
*Chinese.

If you want to check the current progress or join the efforts to translate '''OMP''' to more languages and improve existing translations, visit Transifex (http://www.transifex.net/projects/p/gidzzz-qt-mediaplayer/resource/openmediaplayer/). When a translation becomes complete enough (something about 90%), it will be included in the official package.
-----</text>
    </revision>
  </page>
  <page>
    <title>Open Source Proof Points</title>
    <id>1243</id>
    <revision>
      <id>7556</id>
      <timestamp>2008-10-01T07:17:10Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Open Source Proof Points]] moved to [[Task:Open Source Proof Points]]</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Open Source Proof Points]]</text>
    </revision>
  </page>
  <page>
    <title>Open development</title>
    <id>1404</id>
    <revision>
      <id>45885</id>
      <timestamp>2011-11-29T01:04:42Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>/* Community SSU */</comment>
      <text xml:space="preserve">Maemo is developed as an open collaboration between Nokia and many generous volunteer programmers, designers, and users. Most of Maemo's components are open source, which gives users and developers the freedom and flexibility to contribute to and modify the platform's core development. Read the [http://maemo.nokia.com/maemo/maemo-software/ Introduction to open source] at maemo.nokia.com.

Open development is the goal and open source is a consequence of it. Easier said than done when you need to deliver commercial and competitive products on time, but the Maemo team is trying and improving on every release.

== Open Source and open development strategy ==

* [[Documentation/Maemo 5 Developer Guide/Architecture/Top Level Architecture|Maemo 5 software architecture]] indicating open/closed components.
* [http://www.slideshare.net/qgil/how-maemo-approaches-open-source-presentation How Maemo approaches open source] explains the basics.
* [http://www.slideshare.net/peterschneider/ari-jaaksi-o-s-i-m-world-2009 Taking open source forward] explains Maemo's willingness to collaborate in the platform while differentiating in the user experience.
* [[Open development/Upstream projects|Upstream projects]] providing software integrated in Maemo releases.
* [[Open development/Maemo contributions|Maemo contributions]] is an attempt to list the most relevant contributions to OSS upstream projects.
* [[Open_development/Licensing_change_requests]] is the way to ask for licensing changes.
* [[Task:Components and packages]] contains statistics about packages open/closed in Maemo 4.1. A Maemo 5 update will come after the final release.
* [[Open development/Why the closed packages]] elaborates the reasons to have certain packages closed and addresses requests for opening components.
* [[What can we realistically expect]] lists some current hot topic discussions within the Maemo community
* [[Task:Busybox]] describes the strategy for moving towards open development of Busybox.
* [[Task:osso-xterm]] - opening the development of osso-xterm

See also the [[Task:Maemo_roadmap/Fremantle|Fremantle]] and [[Task:Maemo_roadmap/Harmattan|Harmattan]] roadmaps.

And this blog post: [http://flors.wordpress.com/2009/08/27/software-freedom-lovers-here-comes-maemo-5/ Software freedom lovers: here comes Maemo 5]

== In practice ==

If you want to get involved you need to find first the most recent source code available:
* The source code of OSS components shipped in Maemo releases can be found at http://repository.maemo.org/pool/ e.g. [http://repository.maemo.org/pool/maemo5.0/free/ Maemo 5].
* The current development of certain components can be found at [http://maemo.gitorious.org Maemo on Gitorious]. See the list of projects above for more details.
** [http://gitorious.org/modest/ modest on gitorious] where open development for Modest (the stock N900 mail client) happened.
* [http://mxr.maemo.org maemo.org Cross-Reference] contains searchable source dumps of the open packages of most Maemo releases. This website is incredibly useful; you can search for any given identifier (a name of a C function, for example) and it will find the declaration and all uses of that function for you.

If you have patches for upstream components it is better to submit them directly upstream, unless they are indeed specific to Maemo:
* Check the [[Maemo contribution guidelines]] before contributing any code.
* Patches with bugfixes are submitted through https://bugs.maemo.org with the corresponding bug report.
* Contact the developers before working on major patches or new features!

=== MeeGo ===

* [http://mxr.meego.com/ Meego Cross-Reference]
* [http://meego.gitorious.org/ MeeGo on Gitorious] is where open development for Meego happens. For example, sources for the Meego Touch Framework are there. You can also find sources for some middleware components used in Maemo that have been partially opened in Meego, like [http://meego.gitorious.org/meego-middleware/mce MCE].
* [http://qt.gitorious.org/ Qt on Gitorious] Qt is an important part of the newer Maemo/Meego releases; you can find its source here.

== Projects developed openly ==

* Many components integrated in Maemo have Nokia developers or collaborators working directly upstream:
** [http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=summary Linux kernel - OMAP list.]
** [http://www.bluez.org/ BlueZ]
** [http://gstreamer.freedesktop.org/ GStreamer]
** [http://www.gtk.org/ GTK+]
** [http://www.mozilla.org/ Mozilla]
** [http://projects.gnome.org/tracker/ Meta Tracker]
** Ohm
** [http://telepathy.freedesktop.org/wiki/ Telepathy]
** [http://upstart.ubuntu.com/ Upstart]
** [http://connman.net/ ConnMan]
** [http://ofono.org/ oFono]
* http://maemo.gitorious.org is the default host for official Maemo specific open development, but there is more.
* Some projects have still their code repository in http://garage.maemo.org
** [https://garage.maemo.org/projects/busybox4maemo/ BusyBox]
** [https://garage.maemo.org/projects/dsm/ dsme]
** [https://garage.maemo.org/projects/osso-xterm/ osso-xterm]
* Developer tools:
** [http://code.google.com/p/gst-dsp/ gst-dsp] aims to provide GStreamer elements to take advantage of those algorithms. The list includes video/image decoders and encoders. See also the [http://maemo.gitorious.org/maemo-multimedia/gst-dsp Maemo repository]

== Community projects developed openly ==

There are dozens of community projects developed openly. Learn more about them at (this should link to another page to keep this one around Nokia projects).

=== Extras ===

{{main|Extras}}

The sources from all ''free'' packages in the extras and extras-devel repositories are available [http://repository.maemo.org/extras/pool/fremantle/free/source/ here]. 

On an [[Nokia N900|N900]], or scratchbox, if you have [http://repository.maemo.org/#extras correctly added the extras-devel repository to sources.list], you can also get any packages source by writing the following on a shell:

 apt-get source &lt;packagename&gt;

There are also some [http://vcs.maemo.org/git/ Garage projects using Git as version control system]. 

Some developers also use gitorious or github.

=== Community SSU ===

The [[community SSU]] has [http://gitorious.org/community-ssu/ its own Gitorious project]. You can find all modifications to the Maemo open components (and sources of those), as well as replacement components and hacked bits, all there.

[[Category:Community]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Open development/Licensing change requests</title>
    <id>3618</id>
    <revision>
      <id>41265</id>
      <timestamp>2011-01-20T20:24:00Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>Process was entire failure</comment>
      <text xml:space="preserve">Please note that this process is effectively dead.  Please see http://talk.maemo.org/showpost.php?p=784443 for details.  Summary: Nokia doesn't have a Maemo distmaster anymore to process these requests, and does not plan to allocate further resources for Maemo to change this, rather than just trying to make the corresponding Meego components open.

Note: *Nothing* was ever opened via this process.

== The licensing change requests queue ==

The idea of the licensing change request queue, is to have the ability to prioritise what components should be sent through the machinery that in the end decides if something is open sourced or not and in which order.

The idea is that we need to get licensing change requests prioritised in an order as to make it possible for a Nokian to be able to look at a page, select one or more of the top licensing change requests and then without bigger effort send this through the internal machinery for open sourcing and hence getting it to happen (or a decision made that the change won't happen).

Keep in mind such a process can take quite a while.

[https://bugs.maemo.org/report.cgi?x_axis_field=priority&amp;y_axis_field=votes&amp;z_axis_field=&amp;query_format=report-table&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;classification=Maemo+Official+Platform&amp;product=Licensing+Change+Requests&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;format=table&amp;action=wrap&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= See the current licensing change request queue here]. 

The ones with most votes and highest priority will be considered first to be sent into the internal machinery. Click the linked numbers to see which licensing requests match the priority and votes. There's a bug so there's no summary of how many bugs a link covers. Will be fixed.

When being sent into the internal machinery, they move to the list below:

[https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;classification=Maemo+Official+Platform&amp;product=Licensing+Change+Requests&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=ASSIGNED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= Current licensing requests being considered]

[https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;classification=Maemo+Official+Platform&amp;product=Licensing+Change+Requests&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= Requests already considered]

== Submitting a licensing change request ==

These requests are based on the maemo.org bugzilla. [https://bugs.maemo.org/enter_bug.cgi?product=Licensing%20Change%20Requests To enter a request, click here]. You will need to create a bugzilla account.

We kindly ask you to use this form (answer the questions) instead of the provided one in Bugzilla. Requests won't be evaluated otherwise. Remove the previous 'Description:' contents in the form and copy and paste this and fill it in:

&lt;pre&gt;
Which component(s) or source packages is the licensing change request about?

Which area is the component in (if you know)? (See the openness progress reports at http://mer-project.blogspot.com/2010/02/mapping-openness-of-maemo-50-pr11-and.html)

What is the current licensing of the component?

What licensing would you like it to be and why? Examples can be:
open source and openly developed (move to gitorious), open source (select a license), non-free but redistributable, non-free, published in nokia-binaries, document the functionality, etc.

Which project(s) would benefit from this licensing change request?

What technical purpose do you/your project(s) have for wanting the licensing change?
&lt;/pre&gt;

== What happens when you have submitted a request ==

The maemo.org distmaster (Stskeeps/Carsten Munk) will then:

* Verify if a request has already been filed (marking DUPLICATE if so) or evaluating if we need to reevaluate the licensing request due to changed circumstances.

* Evaluate the technical purpose and see if the end result of open sourcing the component would actually make this possible (marking INVALID if it doesn't make this possible and encouraging filing a request against another component that has the functionality)

From then on, the idea is to determine the priority of the request (High, Medium, Low)

* If open source replacements exist (making licensing change less of a priority)

* If it aids the implementation of open source replacements (making licensing change more of a priority)

* Give a preliminary evaluation on potential problems regarding reasons in the 'Reasons for closed packages' - these reasons make licensing change less of a priority unless it's worth exploring if it is actually problematic.

* Give a preliminary evaluation on the technical purpose regarding reasons mentioned at the Relicensing reasons section - these reasons make licensing change more of a priority.

* Is there one or more projects that would have benefit of this? (more of a priority)

Based on the queue, a Nokian picks off the items and pushes them into the internal machinery, assigning the bug to him/herself. General rule is taking high priority change requests combined with votes. You will be notified when distmaster evaluates and when the change request has been passed into the internal machinery.

== Reasons for closed packages ==

Open source is the licensing model preferred by Nokia in the development of Maemo. There are some reasons to have exceptions, though.

* '''Brand''': Nokia wants to keep a strong brand and identity avoiding any risks of dilution.
* '''Differentiation''': Nokia wants to gain competitive advantage in certain areas by keeping the related software closed.
* '''Legacy''': Nokia keeps some components minimally maintained - the work of opening them has an unclear outcome.
* '''IPR &amp; licensing issues''': Nokia avoids serious risks brought by patents, copyrights or complicated licensing situations.
* '''Security''': Nokia avoids safety risks and liabilities that could be caused by freeing access to certain hardware components.
* '''Third party''': Nokia does not own the code and therefore does not decide on the license.

== Relicensing reasons ==

The chances of success of your proposal will probably depend on how it fits within the following reasons for a relicensing:

# '''Fixing a bug''': The package is in non-free although it looks like it's actually an open piece of software. In this case forget about Brainstorm and simply [http://bugs.maemo.org file a bug] and CC maemo.org distmaster on carsten.munk at gmail.com.
# '''Nurturing application development''': There is a strong argument proving that opening a component will bring more and better apps for end users.
# '''Spread of Maemo driven technologies to other platforms''': A component fits well in a gap existing in other Linux/OSS based projects and there is a concrete interest on collaborating and contributing to a component if it's opened.
# '''Community maintenance''': A component is receiving low attention from the official maintainers even if it has high attention from the community and there are developers volunteering to contribute to it if the source code is available.
# '''Better architecture''': Probably covered by 2 or 3 but just in case. A closed component is sitting in the midle of open components making things more difficult that needed to developers interested in that area.

[[Category:Community]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Open development/Maemo contributions</title>
    <id>259</id>
    <revision>
      <id>33659</id>
      <timestamp>2010-04-30T13:08:12Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Collaboration with upstream related companies */</comment>
      <text xml:space="preserve">==Contributions==
This starts in a very casual way. To be improved e.g. adding links to the projects websites.

=== Upstream ===
* [http://www.bluez.org/ BlueZ]
* [http://clutter-project.org/ Clutter] - Sponsored OpenedHand for part of the initial development. Sponsored Igalia for a first version of [http://blogs.igalia.com/apinheiro/2009/05/11/cail-clutter-accessibility-implementation-library/ CAIL: Clutter Accessibility Implementation Library]
* [http://www.freedesktop.org/wiki/Software/dbus D-Bus]
* [http://gstreamer.freedesktop.org/ GStreamer]
* [http://www.gtk.org/ GTK+] - http://live.gnome.org/Maemo/Gtk26Contributions
* [http://gupnp.org/ gUPnP]
* [http://kernel.org/ Linux Kernel] - [http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git&amp;a=search&amp;h=HEAD&amp;st=author&amp;s=nokia contributions in linux-2.6] - [http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftmlind%2Flinux-omap-2.6.git&amp;a=search&amp;h=HEAD&amp;st=author&amp;s=nokia contributions to linux-omap]
** OMAP framebuffer,
** WL12xx WLAN adapter,
** Large parts of the OMAP base port,
** UBI file system,
** TWL4030 watchdog,
** Si4713 FM transmitter,
** Phonet stack and USB drivers,
** Parts of the USB gadget framework.
** [http://git.kernel.org/?p=linux/kernel/git/tiwai/sound-2.6.git;a=commit;h=493b67efffc462703d583389aca96f850c18d3b3 Driver for Texas Instruments TPA6130A2 stereo headphone amplifier]
** [http://gitorious.org/omap3camera OMAP3 camera]
* [http://matchbox-project.org/ Matchbox] 
* [http://www.tracker-project.org Meta Tracker]
* [http://www.mozilla.org/ Mozilla]
* [http://www.pulseaudio.org/ PulseAudio]
* [http://bellard.org/qemu/ QEMU]
* Sapwood
* [http://scratchbox.org/ Scratchbox]
* [http://telepathy.freedesktop.org/ Telepathy]
* [http://www.tinymail.org/ tinymail]
* [http://upstart.ubuntu.com/ upstart]
* [http://www.x.org/ X.org]

=== Nokia projects ===
* Hildon
* Sofia-SIP

=== Support to organizations ===
* Patron of the [http://www.fsf.org/donate/patron Free Software Foundation]
* Sponsor of the [http://foundation.gnome.org GNOME Foundation]
* Patron of [http://ev.kde.org/ KDE e.V.] and member of the [http://www.kde.org/whatiskde/kdefreeqtfoundation.php KDE Free Qt Foundation], both inherited from Trolltech.
* Gold member of [http://www.linuxfoundation.org/en/Members Linux Foundation]
* Member of [http://www.ocert.org/ oCERT]
* Member of [http://www.eclipse.org/org/industry-workgroups/mobilewg.php Eclipse Mobile Industry Working Group]

=== Support to community events ===
* [http://akademy.kde.org/ Akademy]
* [http://www.debconf.org DebConf]
* [http://fosdem.org FOSDEM]
* [http://guadec.org GUADEC]

=== Collaboration with upstream related companies ===
See [[Maemo professionals#Companies in Maemo]].

Also worth mentioning
* Instituto Nokia de Tecnologia (INdT), non-profit.
* Nemein (Midgard CMS)

=== Support to Maemo community projects ===
* Maemo Mapper - Integration of Finnish Topomaps
* Qt4Maemo

==Information available==
Currently there is http://opensource.nokia.com but it's somewhat incomplete. It would be good to gather information also from the upstream projects i.e. those rankings released from time to time showing top contributors. There are also some research projects on open source contributions that might have relevant data for our case.

Please add any relevant information or link to the list below:

* http://opensource.nokia.com/contributions.html
* http://www.phoronix.com/scan.php?page=article&amp;item=x_server_contributors&amp;num=1

==How to go deeper==
What can Nokia and the Maemo community do to gather and process more information?

* One idea is to contact the upstream projects related to the Maemo stack and ask them about studies on their contributors, to see what role Nokia plays in their project.

[[Category:Community]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Open development/Maemo roadmap</title>
    <id>1039</id>
    <revision>
      <id>34241</id>
      <timestamp>2010-05-11T12:55:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cateogrize</comment>
      <text xml:space="preserve">== Roadmap examples ==

Some links. Please add yours. Still haven't distilled whether they are good practices or not.--[[User:qgil|qgil]] 06:11, 30 July 2008 (UTC)

* http://www.moblin.org/community/ivi/community_roadmap.php
* http://wiki.openmoko.org/wiki/Roadmap
* http://live.gnome.org/RoadMap
* http://techbase.kde.org/Schedules/KDE4/4.0_Release_Roadmap
* http://www.eclipse.org/org/councils/roadmap_v3_0/index.php
* http://phonon.kde.org/cms/1007
* Perhaps also worth looking at http://people.freedesktop.org/~jg/roadmap.html
* http://development.openoffice.org/releases/
* I'm sure you're well-away of this one, but: http://opensource.nokia.com/ (It's interesting that Maemo is not in the Projects list.) --[[User:timsamoff|timsamoff]] 12:41, 30 July 2008 (UTC)
:  Yeah, I know about that and in fact is in my ToDo list. Will attack that once the new Maemo is well defined after the 100 Days. However, afaik there are no roadmaps there. Or where? --[[User:qgil|qgil]] 19:32, 30 July 2008 (UTC)
:: Sorry. Saw the one for [http://sofia-sip.org/repos/sofia-sip/TODO Sofia-SIP] and thought each product would have a roadmap. Nope. --[[User:timsamoff|timsamoff]] 20:10, 6 August 2008 (UTC)

===Dave's feedback===
* I wrote a paper on this for Wengo, a former employer - I could translate it &amp; post it publicly somewhere if there were interest --[[User:dneary|Dave Neary]] 16:21, 6 August 2008 (UTC)
:What about starting publishing the original in French. For me is enough now.--[[User:qgil|qgil]] 19:58, 6 August 2008 (UTC)
* My favourite free software roadmap is [http://wiki.inkscape.org/wiki/index.php/Roadmap Inkscape's] - they have this concept of laying out big plans which will be the guiding principles of a release early, and as they get closer to the release, those guiding principles get broken down and enumerated, people take on features, and they end up with very fine-grained lists of things accomplished in past releases.
:Inkscape is indeed a very good example. I like the way they connect roadmaps (future) with release notes (past). However, Inkscape is just one application and Maemo is a whole platform. Single products/components in this platform could work on roadmaps having references like Inkscape. However, how to apply the good lessons to a Maemo platform roadmap?--[[User:qgil|qgil]] 19:58, 6 August 2008 (UTC)
* Other than that, I have looked - the canonical reference [http://producingoss.org Producing Open Source Software] doesn't say anything about guiding the technical direction of a project.

[[Category:maemo.org]]
[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Open development/Maemo roadmap/Diablo</title>
    <id>3569</id>
    <revision>
      <id>38595</id>
      <timestamp>2010-09-14T08:30:13Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add more Diablo information</comment>
      <text xml:space="preserve">Diablo was the Maemo 4.1 release that came before [[Open development/Maemo roadmap/Fremantle|Fremantle]] and after Chinook. It added [[Seamless Software Update]] to [[:Category:OS2008|OS2008]], which allows over-the-air updating with apt rather than requiring a reflash, simplifying incremental operating system updates.

Diablo was released in June 2008 for the [[Nokia N800|N800]], [[Nokia N810|N810]] and [[Nokia N810WME|N810 WiMax edition]] devices&lt;ref name=&quot;diablo_released&quot;&gt;[http://maemo.org/news/announcements/os2008_feature_upgrade-reflash_your_tablet-for_the_last_time/ Diablo release announcement]&lt;/ref&gt;.

== Further reading ==

&lt;references/&gt;

[[Category:Diablo]]</text>
    </revision>
  </page>
  <page>
    <title>Open development/Maemo roadmap/Fremantle</title>
    <id>1205</id>
    <revision>
      <id>47454</id>
      <timestamp>2012-05-08T10:54:36Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <comment>Undo revision 47453 - Do NOT overwrite content!</comment>
      <text xml:space="preserve">Fremantle is the codename of the Maemo 5 release. It comes after Maemo 4.1 ([[Open development/Maemo roadmap/Diablo|Diablo]]) and before [[Open development/Maemo roadmap/Harmattan|Harmattan]].

== Fremantle timeline ==
This is a timeline based on known events and announcements. Many dates are quite flexible at this point.

* 2008-05-29: &quot;Fremantle&quot; codename announced in LinuxTag 2008. See [http://flors.wordpress.com/2008/06/01/maemo-linuxtag-update/ maemo LinuxTag update].
* 2008-09-17: First annoucements in OSiM World: [http://jaaksi.blogspot.com/2008/09/osim-news-whats-up-with-maemo.html OSiM News: What's up with Maemo?] (Ari Jaaksi, Head of Maemo Software @ Nokia) &amp; [http://flors.wordpress.com/2008/09/19/osim-world-maemo-devsesh-slides/ Get ready for 2009!][http://flors.wordpress.com/2008/09/19/osim-world-maemo-devsesh-slides/ OSiM World 2008] (Erkko Anttila, Maemo SW Fremantle product manager, and Quim Gil, Maemo SW open source advocate).
* 2008-09-19: More announcements in the [[Maemo Summit 2008]] - Summary: What can we get out of Fremantle ([http://www.slideshare.net/silpol/maemo-community-fremantle-support-september-2008-presentation slides]) ([http://www.vimeo.com/1853196?pg=embed&amp;sec=1853196 video]), by Peter Schneider (Maemo SW head of product marketing)
* 2008-12-08: [http://maemo.org/news/announcements/first_maemo_5_sdk_release_targeting_platform_developers/ First pre-alpha SDK] and first report on API changes. Suitable for platform development only.
* 2009-01-29: [http://maemo.org/news/announcements/07a262bcedec11ddabdc07d2d12051a151a1/ Second pre-alpha SDK] with [https://garage.maemo.org/docman/view.php/885/368/mafw-maemo-fremantle-draft.pdf Media Application Framework] and more new platform components.
* 2009-02-08: [http://maemoteam.wordpress.com/2009/02/12/maemo-and-beagleboard/ Maemo for Beagle board] presented at FOSDEM.
* 2009-03-02: [http://maemo.org/news/announcements/maemo_5_alpha_sdk_released/ Maemo 5 Alpha SDK released] - [http://www.internettablettalk.com/forums/showthread.php?t=27242 InternetTabletTalk thread], [http://arstechnica.com/open-source/news/2009/03/new-maemo-ui-framework-arrives-in-fremantle-sdk-alpha.ars Ars Technica], [http://www.engadget.com/2009/03/03/maemo-5-gets-alpha-sdk-nokia-fans-rejoice/ Engadget], [http://gpsobsessed.com/maemo-5-alpha-sdk-available-with-location-city-info-apis-and-3d-graphics-support/ GPSObsessed], [http://www.intomobile.com/2009/03/04/maemo-5-alpha-sdk-is-out.html IntoMobile], [http://www.umpcportal.com/2009/03/maemo-5-alpha-sdk-released-by-nokia UMPCPortal], [http://www.linuxdevices.com/news/NS2940085368.html LinuxDevices].
** [http://blogs.forum.nokia.com/blog/kate-alholas-forum-nokia-blog/2009/03/02/qt4.5-for-maemo-5-fremantle-sdk Qt4.5 for Maemo 5 Fremantle SDK]
** [http://maemoteam.wordpress.com/2009/03/05/maemo-5-alpha-rootstraps-now-available-in-sdk/ Maemo 5 Alpha rootstraps now available in SDK+]
** First ports: [http://www.internettablettalk.com/forums/showpost.php?p=268420&amp;postcount=16 Mauku], [http://www.internettablettalk.com/forums/showpost.php?p=268543&amp;postcount=24 Qt Cannon], [http://www.internettablettalk.com/forums/showpost.php?p=268618&amp;postcount=37 GPodder], [http://www.internettablettalk.com/forums/showpost.php?p=268622&amp;postcount=38 Transmission], [http://www.internettablettalk.com/forums/showpost.php?p=268650&amp;postcount=48 SharePy], [http://www.internettablettalk.com/forums/showpost.php?p=269082&amp;postcount=65 OSM2Go], [http://arstechnica.com/open-source/news/2009/03/developer-ports-frets-on-fire-to-maemo-5.ars Frets On Fire].
* 2009-04-28: [http://maemo.org/news/announcements/maemo_5_beta_sdk_out/ The Maemo 5 Beta SDK is out] with Desktop edit mode and draft [http://maemo.org/development/sdks/maemo_5_beta_docs/ Development Manual]. [http://www.internettablettalk.com/forums/showthread.php?p=283245 talk.maemo.org thread] - [http://www.engadget.com/2009/04/29/maemo-5-beta-sdk-released-into-the-hands-of-an-eagerly-waiting-w/ Engadget] - [http://www.intomobile.com/2009/05/03/maemo-5-sdk-reaches-beta-stage.html IntoMobile].
** [http://blogs.igalia.com/berto/2009/04/29/maemo-sdk-beta-released-hildon-development-is-now-open/ Hildon development is now open!]
** [http://blogs.igalia.com/dape/2009/04/29/new-modest-plugin-system-anyone-willing-to-implement-rss-support/ Modest development goes open].
* 2009-05-11: First version of the [http://blogs.igalia.com/apinheiro/2009/05/11/cail-clutter-accessibility-implementation-library/ CAIL: Clutter Accessibility Implementation Library] released by Igalia, sponsored by Maemo SW.
* 2009-05-29: [[Mozilla_Maemo_Danish_Weekend|Mozilla/Maemo Danish Weekend]].
* 2009-07-14: [http://maemo.org/news/announcements/maemo_5_beta_2_bugfix_release-time_for_quality_assurance/ Maemo 5 Beta 2 bugfix release: Time for Quality Assurance]. Status Area now available. [http://talk.maemo.org/showthread.php?t=30274 talk.maemo.org thread] - [http://www.intomobile.com/2009/07/20/maemo-5-beta-2-sdk-released.html IntoMobile]
* 2009-11-16: Release [http://flors.wordpress.com/2009/11/16/maemo-5-final-release-updated-sdk-and-firmware/ Maemo 5 Final SDK and firmware], also known as [[Maemo 5/PR1.0|PR1.0]]
* 2009-12-[04-06]: [[Maemo-Barcelona Long Weekend]].
* 2010-01-14: Release of [[Maemo 5/PR1.1 | Maemo 5 PR 1.1]] firmware and SDK update
* 2010-02-[06-07]: [[FOSDEM 2010]].
* 2010-02-16: Release of [[Maemo 5/PR1.1.1|Maemo 5 PR 1.1.1]] firmware update
* 2010-05-25: Release of [[Maemo 5/PR1.2|Maemo 5 PR 1.2]] firmware update
* 2010-10-25: Release of [[Maemo 5/PR1.3|Maemo 5 PR 1.3]] firmware update
* 2011-01-29: [http://lists.maemo.org/pipermail/maemo-community/2011-January/004620.html Announcement] of the Maemo 5 [[Community SSU]].

==New==

''' Please see also the [[Maemo 5/PR1.1 | PR 1.1 release notes]]'''

* [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;navigationId=12643&amp;contentId=14649 OMAP3] support
* HSPA/3G support
* High definition camera support
* [[OpenGL-ES]]
* [https://garage.maemo.org/projects/mafw/ Media Application Framework] ([http://garage.maemo.org/docman/view.php/885/368/mafw-maemo-fremantle-draft.pdf Documentation], [http://arstechnica.com/open-source/news/2009/02/first-look-the-maemo-5-multimedia-framework.ars Ars Technica review]) - [http://blogs.igalia.com/jasuarez/2009/08/04/mafw-whats-up/ Fremantle Beta 2 update]
* [http://clutter-project.org/ Clutter] - [http://www.murrayc.com/blog/permalink/2009/04/24/tutorial-for-clutter-0910/ Tutorial for Clutter 0.9/1.0] - [http://blogs.igalia.com/apinheiro/2009/05/11/cail-clutter-accessibility-implementation-library/ CAIL: Clutter Accessibility Implementation Library]
* Meta Tracker ([http://pvanhoof.be/files/fosdem09.odp FOSDEM 2009 presentation], [http://blog.ifrade.es/2009/02/25/release-release-tracker-0690/ About the 0.6.90 release])
* PulseAudio
* GUPnP
* OHM
* upstart
* A2DP &amp; AVRCP support
* OpenMAX
* Improved [http://lwn.net/Articles/318154/ power management for OMAP3].

See also the improvements done in [[open development]].

== Changes ==

===Toolkit===
* New and updated Hildon/Gtk widgets.
* Gtk 2.0 library upgraded to version 2.12
* Glib upgraded to 2.18
* Pango upgraded to 1.20
* Cairo upgraded to 1.6.4
* gcc upgraded to 4.2

===UI Framework===
Fremantle introduces a new UI framework which uses Clutter OpenGL library. It provides the following functionality:
* Window/compositing manager
* Task Launcher
* Task switcher
* Home view
* Status menu and status area
* New Hildon notification API for handling desktop notifications.

The Help library is dropped. Diablo applications that use context-sensitive help and use the libhildonhelp library need to remove the dependencies from their packages in order to work in Maemo 5.

More information in the [http://maemo.org/development/sdks/maemo5_alpha_overview/ Overview of Maemo 5 UI].

=== Media Application Framework===
The [https://garage.maemo.org/projects/mafw/ Media Application Framework] (MAFW) provides an open, flexible and extensible layer that eases the development of multimedia applications for the Maemo platform. It is a complement to the Multimedia framework that has been heavily improved in Fremantle. MAFW provides:

* An extendable, pluggable framework interface, which allows to develop new plugins that provide integration with new multimedia services or rendering engines, that can be seamlessly integrated in all MAFW based applications.
* Easy to use APIs that speed up application developing, providing support for playback control, discovery and browsing of multimedia resources and playlist manipulation.
* Independence of the technology. Since MAFW is a plugin based framework, it is not tied to a particular multimedia technology (GStreamer, MPlayer, Tracker). Plugin developers have freedom to choose the technologies they want to use in their plugins, and application developers do not need to know about them.

The revamped Media Player will be based on this framework, allowing the possibility for third party developers to create integrated media applications and plugins integrating web services. Application developers are encouraged to look at the [[Documentation/Maemo 5 Developer Guide/Using Multimedia Components/Media Application Framework %28MAFW%29|MAFW documentation]] or the alternative [http://garage.maemo.org/docman/view.php/885/368/mafw-maemo-fremantle-draft.pdf PDF documentation] and the example application provided in the SDK.

===Data management===
* Tracker introduced to replace libmetalayer.
* osso-gnomevfs-extra is deprecated. Applications should not depend on it anymore.

===Connectivity===

==== BlueZ====
BlueZ updated to version 4.x. Brings along a major redesign of the D-Bus API and local bluetooth service framework. The main benefit of this change is decreased code complexity both on the BlueZ and the application side due to a much simpler API.

====osso-gwconnect====
Removed since identical functionality has been a part of Bluez core since Chinook.

====Samba====
Samba support to be dropped.

====ClinkC====
ClinkC deprecated in favour of GUPnP. The following main advantages have been identified to support this transition:
* Designed specifically for Maemo.
* Much simpler design/api compared to ClinkC or any other UPnP library.
* Uses glib's main loop for waiting on sockets rather than launching several threads that adds lots of unneeded complexity and therefore introduces lots of hard-to-kill bugs.

====Location framework====

The following deprecated low level GPS libraries are removed:
* libgpsbt
* libgpsmgr
* gpsd daemon

Instead of gpsd, there is liblocation API library and a set of on-request daemon processes for different location methods (eg: gypsy-daemon for bluetooth GPS, location daemon for integrated GPS and network-based methods).

===Multimedia===
* Gstreamer OpenMax wrapper on freedesktop.org.
* New GStreamer plugin introduced that wraps openmax-il components under the gstreamer API.
* OpenMax plugins for all the codecs.
* No DSP sink and sources anymore.
* esound replaced by libcanberra.
* Speex introduced.
* GUPnP introduced.

See http://www.slideshare.net/ensonic/maemo-multimedia-framework-presentation

===System SW===
* initfs isn't used anymore
* Device startup handled by Upstart instead of sysvinit.  Location and format of init scripts differ.
* OHM introduced as a policy framework mainly for audio in addition to [https://garage.maemo.org/projects/dsm/ dsme] (now developed openly) and mce components, which are responsible for device state and mode control.
* Profile API : A new client library (libprofile) and daemon (profiled) introduced for accessing profile settings.
* Alarm API's updated: The number and functionality of API interface functions remains roughly the same as before. The usage (parameters passed) and underlying transfer protocol (dbus messages) are changed substantially.
* [https://garage.maemo.org/projects/busybox4maemo/ BusyBox] (now developed openly) updated to 1.10.2 (or newer?).

===SDK===

* GCC updated to 4.x. Stricter checks for C and C++ code.

===RTCom===
* Farsight API break: Farsight upgraded/re-written to farsight2. 
* Telepathy: libtelepathy outdated. Use telepathy-glib instead.
* libgalago and galago-daemon dropped.

===Window manager===
Window manager upgraded to matchbox-window-manager-2


== Enhancement requests implemented ==

{{#bugzilla:
  |milestone=Fremantle
  |resolution=fixed
  |severity=enhancement
  |sort=product,component
  |columns=product,component,id,summary
}}

== Bugs fixed ==

{{#bugzilla:
  |milestone=Fremantle
  |resolution=fixed
  |severity=!enhancement
  |sort=product,component
  |columns=product,component,id,summary
}}

[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Open development/Maemo roadmap/Harmattan</title>
    <id>1370</id>
    <revision>
      <id>33312</id>
      <timestamp>2010-04-22T13:47:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Harmattan timeline */ remove duplicate link</comment>
      <text xml:space="preserve">Harmattan is the codename of the release to come after [[Open development/Maemo roadmap/Fremantle|Fremantle]].

The content of this page is based on known events and announcements. It is very far from complete at the moment.

== Harmattan timeline ==

* 2008-05-29: &quot;Harmattan&quot; codename and Qt support announced in LinuxTag 2008. See [http://flors.wordpress.com/2008/06/01/maemo-linuxtag-update/ maemo LinuxTag update].
* 2009-07-04: Cross-platform approach, toolkit switch and architecture overview explained in the [http://flors.wordpress.com/2009/07/05/maemo-harmattan-keynote-at-gcds/ Maemo Harmattan keynote at GCDS] ([http://www.slideshare.net/qgil/maemo-harmattan-qt-and-more slidecast] - [http://www.geeksoc.org/gcds/Keynote:%20Quim%20Gil.ogv video]). [http://talk.maemo.org/showthread.php?t=30085 Talk discussion] - [http://derstandard.at/fs/1246541386200/Maemo-switches-to-Qt Der Standard] - [http://tech.slashdot.org/article.pl?sid=09/07/04/2155209 Slashdot] - [http://www.vuntz.net/journal/post/2009/07/04/Nokia-GNOME-Mobile Vincent Untz blog from a GNOME perspective] - [http://arstechnica.com/open-source/news/2009/07/nokia-adopts-qt-toolkit-for-next-generation-maemo-platform.ars ars technica] - [http://www.osnews.com/story/21779 OS News] - [http://news.cnet.com/8301-1035_3-10279951-94.html CNet] - [http://www.linuxfordevices.com/c/a/News/Nokia-Maemo-Harmattan/ LinuxDevices.com] - [http://lwn.net/Articles/341391/ LWN].

Expected:
* 2009-10-09/11: Harmattan news are expected in the [[Maemo_Summit_2009|Maemo Summit]]. Some related sessions are already scheduled.

== New ==
* [http://qt.nokia.com/ Qt 4.6]
* Some [http://labs.trolltech.com/page/Projects/QtMobility Qt Mobility] APIs supported (to be defined)
* [http://live.gnome.org/Rygel Rygel] UPnP media server.
* Framework for [[Objective:Community localization|community localization]].

== Changes ==
* Official application framework based on Qt. Hildon/GTK+ libraries are expected to be supported by the community.

== Enhancement requests implemented ==

{{#bugzilla:
  |milestone=Harmattan
  |resolution=fixed
  |severity=enhancement
  |sort=product,component
  |columns=product,component,id,summary
}}

== Bugs fixed ==

{{#bugzilla:
  |milestone=Harmattan
  |resolution=fixed
  |severity=!enhancement
  |sort=product,component
  |columns=product,component,id,summary
}}

[[Category:Harmattan]]</text>
    </revision>
  </page>
  <page>
    <title>Open development/Upstream projects</title>
    <id>572</id>
    <revision>
      <id>20058</id>
      <timestamp>2009-10-14T11:00:02Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <minor/>
      <comment>[[Task:Upstream projects]] moved to [[Open development/Upstream projects]]: move</comment>
      <text xml:space="preserve">{{Template:100Days agenda}}

* Extract the list of upstream projects derived from the [http://maemo.org/development/documentation/how-tos/4-x/maemo_architecture.html Maemo software architecture], open source or not. Names of projects to be linked to the websites where they operate.
* Double check with the list of [[Task:Components and packages|components and packages]] of Maemo.
* If the sources are taken from GNOME, Freedesktop.org, Debian or Ubuntu, it should be noted as well.


== Debian projects ==

[[Image:debian-logo-100.png|Debian]]

* [http://wiki.debian.org/DebianPackage dpkg]
* [https://launchpad.net/apt-project apt]

== GNOME projects ==

[[Image:GnomeLogoBitsream_horisontal.png|GNOME]] [[Image:Gtk-logo.png]]

* [http://www.gtk.org/ GTK+]
** [http://library.gnome.org/devel/gdk/ GDK]
* [http://library.gnome.org/devel/gdk-pixbuf GdkPixbuf]
** [http://www.ijg.org/ libjpeg]
** [http://www.libpng.org/pub/png/libpng.html libpng]
** [http://www.libtiff.org/ libtiff]
** [http://librsvg.sourceforge.net/ librsvg]
* [http://www.pango.org/ Pango]
* [http://library.gnome.org/devel/atk/unstable/index.html Atk]
* [http://library.gnome.org/devel/glib/ GLib]
* [http://library.gnome.org/devel/gobject GObject]
* [http://www.gnome.org/projects/gconf/index.html GConf]
* [http://library.gnome.org/devel/gnome-vfs-2.0/unstable GnomeVFS]
* [http://freshmeat.net/projects/libgtkhtml GTK+ HTML Widget]
* [http://library.gnome.org/devel/gsf/unstable/index.html GSF]
* [http://www.gnome.org/projects/evolution/arch.shtml Evolution Data Server]
* [http://matchbox-project.org/ Matchbox]
* [http://xmlsoft.org/ libXML2]

== FreeDesktop.org projects ==

[[Image:Freedesktop-logo-small.png|Freedesktop.org]] [[Image:Gstreamer_logo.png|GStreamer]] [[Image:XOrg_Logo.png|X.org]]


* [http://telepathy.freedesktop.org/wiki Telepathy]
* [http://gstreamer.freedesktop.org/ GStreamer]
* [http://www.fontconfig.org/ Fontconfig]
* [http://cairographics.org/ Cairo]
* [http://www.freedesktop.org/wiki/Software/dbus D-BUS]
* [http://www.freedesktop.org/wiki/Software/hal HAL]
* [http://x.org Xorg]

== Other projects ==

=== System services ===

[[Image:SQLite.gif|SQLite]] [[Image:Logo-samba.png|Samba]]

* [http://upnp.sourceforge.net/ UPnP]
* [http://samba.org/ Samba]
* [http://gpsd.berlios.de/ GPS]
* [http://sourceforge.net/projects/openobex Obex]
* [http://www.sqlite.org/ SQLite]
* [http://www.bluez.org/ BlueZ]
* [http://www.freetype.org/ Freetype]

=== System libraries ===

[[Image:Tux.png|Tux]] [[Image:Busybox.png|Busybox]] [[Image:Gnu-head.png|GNU]]

* [http://curl.haxx.se/ curl HTTP]
* [http://www.openssl.org/ SSL]
* [http://en.wikipedia.org/wiki/Libstdc++ Libstd C++]
* [http://en.wikipedia.org/wiki/Sysvinit Sysvinit]
* [http://busybox.net/ Busybox]
* [http://www.gnu.org/software/libc GNU C Library]
* [http://www.alsa-project.org/ ALSA]
* [http://www.thedirks.org/v4l2 Video4-Linux]
* [http://kernel.org Linux kernel] including [http://en.wikipedia.org/wiki/Jffs2 JFFS2], [http://en.wikipedia.org/wiki/Tcp/ip TCP/IP]
* InitFS including [http://www.uclibc.org/ uClibc], dsme</text>
    </revision>
  </page>
  <page>
    <title>Open development/Why the closed packages</title>
    <id>1257</id>
    <revision>
      <id>42133</id>
      <timestamp>2011-02-25T12:40:21Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* List of outstanding requests that are still relevant */ fix typo, format link</comment>
      <text xml:space="preserve">==Reasons==

Open source is the licensing model preferred by Nokia in the development of Maemo. There are some reasons to have exceptions, though.

* '''Brand''': Nokia wants to keep a strong brand and identity avoiding any risks of dilution.
* '''Differentiation''': Nokia wants to gain competitive advantage in certain areas by keeping the related software closed.
* '''Legacy''': Nokia keeps some components minimally maintained - the work of opening them has an unclear outcome.
* '''IPR &amp; licensing issues''': Nokia avoids serious risks brought by patents, copyrights or complicated licensing situations.
* '''Security''': Nokia avoids safety risks and liabilities that could be caused by freeing access to certain hardware components.
* '''Third party''': Nokia does not own the code and therefore does not decide on the license.

== Specific reasons for packages ==
This list needs update as it mostly refers to Maemo 4.1.

* '''[https://bugs.maemo.org/show_bug.cgi?id=1832 tablet-browser-ui]''': At the beginning there was a proprietary browser. In Maemo 4.0 the Mozilla based browser came, with an open engine (MicroB) but still a closed UI provided by tablet-browser. The main reason was the default rule to have the Maemo applications UI closed for differentiation. The context in mobile browsing has changed significantly and now there are better reasons to offer also an open browser UI. This is the plan for Fremantle.
* '''[[Questions_for_Nokia#Bookmark_manager_engine|Bookmark manager]]''': Closed because of legacy and the default rule to have the UI application layer closed. However, the licensing of this component is being reviewed and it could be opened in Fremantle. Filing an enhancement request and seeing the interest and potential use cases would be something the community could do. Deadline: Fremantle beta SDK release.
* '''[https://bugs.maemo.org/show_bug.cgi?id=1235 Media player]''': Currently closed because of the default criteria of UI differentiation. In progress, though. The engine is being opened in Fremantle, in the form of a Media Application Framework also available for third parties. The UI is open for discussion, as you can see in the Comment  #5 of the enhancement request. For instance, it would count a lot seeing a will to converge efforts and contribution from the many third party media player projects.
* '''[https://bugs.maemo.org/show_bug.cgi?id=3195 Connection applet]''': Legacy. The applet itself is not much but it unveils all the Connectivity middleware which is also closed. The whole Connectivity framework is having major changes in Fremantle and Harmattan, and the resould ''could'' be a much open framework altogether (applet included). Too soon to tell.
* '''[https://bugs.maemo.org/show_bug.cgi?id=3199 Display applet]''': Legacy. Opening it could be considered if really needed. From the comments in the bug report it looks like the need is not that big though?
* '''Location framework''': Differentiation. Nokia is investing heavily in location software and services, that are planned to be implemented in Maemo during Fremantle and Harmattan.
* '''libmetalayer''': Legacy. Substituted in Fremantle by open source upstream Meta Tracker. See [https://bugs.maemo.org/show_bug.cgi?id=2836#c16 this comment] about the possibility to open it still.
* '''osso-dsp-modules''': DSP component provided by Texas Instruments. Note that the DSP packages provided by Nokia are open source: osso-dsp-loader, osso-dsp-headers. If you are interested in open source DSP development then [http://dspgateway.sourceforge.net/ DSP Gateway] (developed by Nokia) might get your attention. However, the introduction of PulseAudio in Fremantle gives an opportunity to platform developers to forget about the DSP completely.
* '''dsme''': This component covered many areas including power management, which is considered a differentiation area by Nokia. The component has been redesigned and the sensitive functionality has moved to mce, allowing to distribute dsme (soon) with an open license together with related tools and plugins: bootstate, dsmetool, waitfordsme, libdsme.so, libhwwd.so, liblifeguard.so, libprocesswd.so, libstartup.so and libstate.so. Then libtemperature.so will be replaced by another component consisting of several dsme open source plugins. Finally, libcalmodule.so will be dropped.
* '''bme - Battery Management Entity''': Security. A misuse of the  could lead to serious battery damages that could result in liabilities for Nokia. hald-addon-bme is a related package, also closed.
* '''mce - Mode Control Entity''': Initially closed for differentiation because of its impact in battery life, an area where Nokia strives to excel. Nowadays the differentiation aspect is lighter but legacy plays a role as well.

Not in the device but also relevant:
* '''Flasher''': Utility to flash the device from a Linux computer. Currently closed for legacy, considering the move to an open project to ease and encourage the development of versions not supported by Nokia e.g. [https://bugs.maemo.org/show_bug.cgi?id=1100 Mac OS X] and [https://bugs.maemo.org/show_bug.cgi?id=1013 PowerPC]. 

== Requesting the opening of closed components ==
If you want a Nokia closed component to be open, please see [[Open_development/Licensing_change_requests]]

The chances of success of your proposal will probably depend on how it fits within the following reasons for a relicensing:

# '''Fixing a bug''': The package is in non-free although it looks like it's actually an open piece of software. In this case forget about Brainstorm and simply [http://bugs.maemo.org file a bug] and CC maemo.org distmaster on carsten.munk at gmail.com.
# '''Nurturing application development''': There is a strong argument proving that opening a component will bring more and better apps for end users.
# '''Spread of Maemo driven technologies to other platforms''': A component fits well in a gap existing in other Linux/OSS based projects and there is a concrete interest on collaborating and contributing to a component if it's opened.
# '''Community maintenance''': A component is receiving low attention from the official maintainers even if it has high attention from the community and there are developers volunteering to contribute to it if the source code is available.
# '''Better architecture''': Probably covered by 2 or 3 but just in case. A closed component is sitting in the midle of open components making things more difficult that needed to developers interested in that area.

== Waiting list ==

If you want to know the specific reasons for a package to be closed please list it below and the Maemo team will answer as time permits. You can also add comments to a certain package to drive attention/priority to it.

Requested at [https://bugs.maemo.org/show_bug.cgi?id=1584 Bug 1584] including comments:
* File Manager
* activate_panel
* bt-cal
* cal-tool
* fb-chaimage
* text2screen
* wlan-cal
* wlan-fw-update
* retu-time
* show_image
* battest
* dspctl - this is available in the open osso-dsp-loader package.
* the script linuxrc
* libbmeic.so
* libcal.so
* libppu.so
* libactivitymonitor.so
* libinactivity-blank.so
* libperipheral.so
* BME
* libi18n-locale-resolver0

These packages are included in the nokia-binaries metapackage offered with the Maemo SDK:

* hildon-task-navigator-bookmarks
* osso-bookmark-menu-&gt;osso-bookmark-engine-&gt;osso-bookmark-user
* osso-browser-translations-dev
* libaccounts-dev -&gt;libaccounts0
* libaccounts-doc
* libosso-abook-dev -&gt;libosso-abook
* libosso-rtcom-accounts-dev -&gt;libosso-rtcom-accounts0
* libosso-rtcom-accounts-doc
* osso-addressbook -&gt;libcontact-importexport
* osso-contact-plugin-dev -&gt;osso-contact-plugin
* osso-mission-control -&gt;libplayback-1-0 -&gt;libimlogger0
* libconbtui0 -&gt;
* liblocation-dev -&gt;liblocation0
* libossoproductinfo0 -&gt;libdsme0
* libgpsbt-dev -&gt;libgpsbt
* libgpsmgr-dev -&gt;libgpsmgr
* libogs1.2-dev -&gt;libogs1.2-1 -&gt;libosso-filemanager-interface
* id3search -&gt; libmetalayer0 -&gt;libgisds-gtk-dialog0 -&gt;libgisds0
* osso-global-search
* osso-applet-certman -&gt;certs -&gt;osso-clock
* libosso-certman-dev -&gt;libosso-certman1 
* osso-help-ui

Other Requests:
* mnotify (Webmail Notifier) - Open source could allow it to support other webmail providers, and fix minor issues like [https://bugs.maemo.org/show_bug.cgi?id=2066 bug 2066] as it is apparantly low priority for Nokia.  Note: mnotify was dropped for Maemo5 by Nokia.
* [https://bugs.maemo.org/show_bug.cgi?id=6961 telepathy-spirit] - This connection manager might be useful for people using Telepathy framework and Skype on desktop computer.
* [https://bugs.maemo.org/show_bug.cgi?id=7019 getbootstate]
* [https://bugs.maemo.org/show_bug.cgi?id=7811 Calendar] - will remain closed for Fremantle and MeeGo.

== Opened ==

* [https://bugs.maemo.org/show_bug.cgi?id=3635 Alarm framework].

== List of outstanding requests that are still relevant ==

* Cell Broadcast SMS support. Relevant bugs are [https://bugs.maemo.org/show_bug.cgi?id=8347 8347] and [https://bugs.maemo.org/show_bug.cgi?id=10870 10870]. Code that needs releasing is source for libsms and libcsd-sms (plus headers needed to compile it). For the userspace bits, it would be ideal (but not essential) to have source code or -dev packages for the connectivity UI shared libraries (libconnui, libconnui-cellular etc). Opening up the SMS code would allow other enhancements (such as a low level method to filter SMSs before they even get written to any permanent storage). [https://bugs.maemo.org/show_bug.cgi?id=11923 Bug 11923] is the relevant bug for the UI stuff.
* Support for non-standard WPA keys or passphrases. Relavent bugs are [https://bugs.maemo.org/show_bug.cgi?id=9864 9864] and [https://bugs.maemo.org/show_bug.cgi?id=1002 1002]. Code that needs releasing is source for connui-iapsettings, connui-iapsettings-wlan and connui-conndlgs-internet (plus their dependancies) as these are the libraries that relate to setting the WPA key. http://www.internettablettalk.com/wiki/index.php/HOWTO:_WPA-PSK_when_you_only_have_the_64-hexit_PSK,_no_passphrase claims that its possible to manually set the key via gconf editing so all we need is to be able to change the UI for this. Opening the connectivity UI (control panels, status widgets etc) would also allow other useful enhancements such as improved output of signal strength for WiFi and cellular. [https://bugs.maemo.org/show_bug.cgi?id=11923 Bug 11923] is a related bug for the UI stuff.
* Proper ability to query all aspects of battery status (including on MeeGo). Relevant bug is [https://bugs.maemo.org/show_bug.cgi?id=11922 11922]. Requires releasing development package for libbmeipc so we can talk to that library (which exists on both maemo and MeeGo) and do things like getting information on what sort of charger is connected, how much juice is in the battery etc. Anything sensitive (i.e. &quot;use this the wrong way and you could damage the battery&quot;) could be removed when publishing this package.
*Better control over which network the phone will connect to (e.g. letting you set a &quot;home&quot; WiFi network that it will always connect to no matter what. Relavent bug is [https://bugs.maemo.org/show_bug.cgi?id=11924 11924]. What needs to be opened up is the source for (and required headers for) the ICD2 policy plugins (libicd_policy_*) so we can understand how they work and modify/enhance them (or write our own new policy plugin). Having this source code may also allow [https://bugs.maemo.org/show_bug.cgi?id=8460 Bug 8460] to be solved (i.e. gaining control of how the code determines which GPRS APN it chooses to connect to). It may be that the policy plugin infrastructure is not fine-grained enough for this in which case the entire source code to the ICD daemon may be required.
*Better control of various hardware components such as accelerometer, keypad lighting, status LED, vibrator, screen brightness and others. Relevant bug is [https://bugs.maemo.org/show_bug.cgi?id=11794 11793]. There is open source code for this [http://meego.gitorious.org/meego-middleware/mce in the MeeGo repositories] but it is not a match for the Maemo version and is missing pieces required to use it with Maemo.
*Ability to support features of the cellular modem not currently supported by the telephony stack in use (whether that stack is the maemo stack, ofono on MeeGo, ogsmd on FreeSmartPhone or otherwise). The relevant bug is [https://bugs.maemo.org/show_bug.cgi?id=11921 11921]. What needs to be opened at a minimum is permission to use the header files we already have but ideally release of correct headers for the N900 cell modem (the headers we have are not a 100% match in a number of cases such as SMS)
*firmware image file format and flash tool source. Relevant bugs include [https://bugs.maemo.org/show_bug.cgi?id=7964 7964], [https://bugs.maemo.org/show_bug.cgi?id=4871 4871] and [https://bugs.maemo.org/show_bug.cgi?id=11809 11809]. Seems like there was interest in opening up some/all of this stuff (flashing tool, firmware image format, firmware builder) in the past from Nokia but there was no community interest at the time. Not sure if there is still community interest but it might be worth having this. Would allow porting to OSs not supported by Nokia (such as x86_64 linux) as well as potentially enhancing the tools.
*Support for different ring and SMS tones for different contacts. Relevant bug is [https://bugs.maemo.org/show_bug.cgi?id=11983 11983]. What needs to be open sourced is hildon-plugins-notify-sv (as thats what plays the ringtones)

[[Category:Development]]
[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Opening drivers justification to Nokia</title>
    <id>798</id>
    <revision>
      <id>4579</id>
      <timestamp>2008-07-16T17:36:41Z</timestamp>
      <contributor>
        <username>lardman</username>
        <id>60</id>
      </contributor>
      <comment>[[Opening drivers justification to Nokia]] moved to [[Drivers justification]]: Rename to remove the implication that we really really want source (we only really want it ;) )</comment>
      <text xml:space="preserve">#REDIRECT [[Drivers justification]]</text>
    </revision>
  </page>
  <page>
    <title>Opt Problem</title>
    <id>2744</id>
    <revision>
      <id>35276</id>
      <timestamp>2010-06-03T14:38:26Z</timestamp>
      <contributor>
        <ip>178.165.183.141</ip>
      </contributor>
      <comment>fix typo</comment>
      <text xml:space="preserve">= The /opt Problem =

There is not enough space on the [[rootfs]] to fit all applications, therefore an additional partition has to be used. But how?

There is a section in the Maemo 5 Developer Guide explaining the basics: 
[[Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing/Installing_under_opt_and_MyDocs|Installing under /opt and /MyDocs]]

= Current situation =

* 256MB OneNAND chip: bootloader, kernel, root (ubifs - with compression)
* 32GB eMMC: /home ~2GB (ext3), /home/user/MyDocs ~29GB (vfat), swap 0.7GB
* symlink: /opt/ -&gt; /home/opt/
* OneNAND is probably &quot;much&quot; faster than the eMMC (hard numbers? read? write? small blobs? big blobs?)
* file system [http://talk.maemo.org/showpost.php?p=504332&amp;postcount=76 benchmark results] for different media
* OneNAND performance figures: Sustained read performance: 108MB/s. Sustained write performance: up to 17MB/s. See [http://www.samsung.com/global/business/semiconductor/products/fusionmemory/downloads/onenand_brochure_200609.pdf Samsung OneNAND specs].
* eMMC performance figures: read performance 37MB/s. Write performance 20MB/s. Write speed of 17MB/s has been achieved in this test at [http://symbianbriefs.blogspot.com/2010/01/n900-review-part-10-transferring-data.html symbianbriefs.blogspot.com]. My own read tests however show ~11MB/s (370MB file).
* Decisions were taken in a &quot;what shall we do about /opt?&quot; BOF at the [[Maemo Summit 2009]]. Minutes: http://lists.maemo.org/pipermail/maemo-developers/2009-October/021289.html

= Some goals =

* Firmware should be flashable.
* Should not break applications.
* One should be able to install more than 256mb worth of software.
* Standards compliance, less need to make incompatible quirks.
* A fix should be doable after shipping (before shipping, probably not?)

= Current problems / developer and packaging issues =

This should be a list of current problems developers are experiencing related to optification:

* [http://lists.maemo.org/pipermail/maemo-developers/2009-October/021419.html Optification breaks package on upgrade from non-optified older version]

* Symlinks take up space in the rootfs. This may become an issue if there are lots of them.

* [[/Non-Optified_packages|List of non-optified packages and applications]] - Please feel free to add every piece of software which is using too much space in rootfs

= Tool for detection of non-optified packages =
[[Image:Storageusage.png|thumb|300px|&lt;br&gt;[http://code.google.com/p/storageusage/ Storage Usage] provides a great visual way to detect non-optified packages.
]]

= Possible solutions, even the bad ones =

==== Applications are made relocatable and installed to /opt ====
* Relocatable applications can move everywhere without breaking.
* No symlinks get scattered over the rootfs (symlinks take up space, too).
* Not all applications can easily be made relocatable.
* Requires more work by the programmer.
* May not be feasible for ports from an upstream source.
* Putting a startup script into /usr/bin setting up environment variables such as LD_LIBRARY_PATH can help.
* autotools-based packages can use --prefix=/opt/&lt;packagename&gt;.
* Python apps can make use of the [http://docs.python.org/reference/datamodel.html#index-821 __file__] module-scope variable to determine where they are installed (e.g. installdir = os.path.dirname(__file__)).
* Could be taken into account as an alternative to maemo-optify wherever feasible.

==== Have a 2-5gb partition on the emmc for addon packages mounted to /usr/local or /opt ====
* Most apps by default usually go there
* for /opt store according to the FHS standard /opt/&lt;package&gt; and symlink to /opt/maemo/{bin,lib,share,...} (actually the standard is /opt/&lt;vendor&gt;/whatever In this case using /opt/maemo directly would work).
* Having ld.so.conf and PATH set properly avoids all the symlink madness
* Don't do symlinks for /usr/local|/opt - make it a real partition
* Explain to people why they don't have full 32GB of storage - or use LVM on the eMMC to dynamicaly change the size as things get installed through some dpkg hooks or such - we do know how much it will take ahead of time so if there isn't enough storage do a resize(VFAT should be resizable with something like gparted maybe?) ext3/2 are both online resizeable (growth only!)
* Requires a bit more work when packaging - make some defaults pre-set in SDK
* All apps should use a normal usr layout underneath any path. Example: /opt/maemo/{bin,sbin,lib, etc...} same if it would be in /usr/local - works like GNU stow

==== store addon packages completely in /home/opt hierarchy ====
* [http://wiki.maemo.org/User:Tanner#full_optification see this page]
* like previous solution but on the standard /home partition
* very clean solution as no files (except for /var/lib/dpkg which may be moved as well) are created or modified on the NAND.
* /etc and /var could be copied there as well and mounted to root using bind. This way OneNAND would only be changed be reflashes and if /home is not mounted (e.g., by a keypress during boot) a fallback  system could boot from unmodified OneNAND.
* if OneNAND is significantly faster, mark some often used shared libraries as candidates for a /usr/lib/cache directory in which they are copied during installation until a certain cache limit is reached.

==== During packaging move all files &gt;500kb to /opt and symlink to root ====
* Optify is basically this.
* Install is not slowed down, work is done when packaging.
* Some packages break when replaced with symlinks. How to prevent - hack on hack?
* A buildbot could force this to debian/rules automatically.

==== Use aufs/unionfs to overlay OneNAND root with eMMC filesystem. ====
* This could be partial overlay, for example only /lib and /usr. 
* Could keep essential libraries on OneNAND so they would work faster.
* Has anyone measured the speed penalty for aufs/unionfs usage?
* Is it faster or slower that moving root to eMMC?
* Might be difficult to have new programs to benefit from faster OneNAND.

==== Hack with --datadir, --libdir etc. through debian/rules ====
* Could be forced by a buildbot.
* Should move most of the big lumps on larger media if there are some.
* Works at least with packages with configure.
* Requires at least additional $LIBDIR setup?
* Programs which have hardcoded paths (ugly code) break.
* Could additionally symlink files from opt to root.

==== Require that applications have --prefix /opt ====
* Could be forced by a buildbot.
* Should not break anything.
* Programs would not benefit from faster OneNAND.
* Requires at least additional $PATH setup?
* Programs which have hardcoded paths (ugly code) break.
* Could additionally symlink files from opt to root.
* Just reminds me of 770's /var/lib/install..
* Against standard

==== Move root from OneNAND to eMMC and combine with /home to create a new root ====
* How much faster OneNAND is? Numbers?
* Can flasher flash on eMMC?
* Leave only the bootable and rescue stuff in the rootfs
* Maybe use it uncompressed for speed and add a /fast/usr folder to OneNAND to store some system files that would benefit from the speed (example: move /usr/something to /fast/usr and symlink it or just place /fast/usr in the path)

==== Use mount -o bind (or -o rbind) ====
* Method: Do not use NAND for any additional data. Boot into standard image. Any additional changes made are only available after -o bind or -o rbind which are defined in /etc/fstab . Setup provides potential fail-over; if -o bind or -o rbind fails user gets into 'rescue shell' providing 1) recovery method 2) quick install to vanilla firmware without 3rd party utilities, networking, or computer (think: no network available, expensive roaming, no computer with fwflasher or Nokia Software Downloader available, ...)

==== Turn the problem around, pivot the root with /opt ====
* After pivot /opt would be root and old root would be /opt. Symlink the old root contents to new root would make those available.
* Can the base system dependencies handle this?
* Can Nokia created software handle this? 
* Could this work? If so, then all additional packages would install directly on eMMC.

==== After install move all files &gt;500kb to /opt and symlink to root ====
* Could be done at background after install or with post-install hook.
* There might not be enough space on / even for install.
* Install is already slow, could make it even slower.
* Some packages break when replaced with symlinks. How to prevent - hack on hack?
* Uninstall might be messy, some post-remove magic needed.

==== Chroot install in /opt, symlink to where it belongs ====
* A Bit like stow.
* Maybe somebody can see something good in this?
* Difficult hack.. would need all the tools etc to be visible in the chroot.

==== Make /usr another partition ====
You know, historically /usr exists entirely for the purpose of separating the application partition from the underlying system, which is exactly our problem.
* All the core nokia software and libraries should be relocated to / or maybe a /maemo.
* /usr and /opt should become symlinks to /home/usr and /home/opt.
* Maemo targeted GUI software would be encouraged to use /opt/[application].
* Linux libraries and CLI software could safely use /usr, minimizing the required modifications.
* Any frequently used accessed files in /home but not /home/user/MyDocs could be cached in /cache, which then gets overlaid with /home using unionfs or something more specialized.
* Another location like /alt could be used by packages that know they need the NAND's speed, but this is discouraged.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Opt Problem/Non-Optified packages</title>
    <id>3157</id>
    <revision>
      <id>46748</id>
      <timestamp>2012-02-20T11:21:39Z</timestamp>
      <contributor>
        <ip>141.20.31.26</ip>
      </contributor>
      <comment>added fahrplan to list</comment>
      <text xml:space="preserve">==List==
There already existing some [https://bugs.maemo.org/buglist.cgi?keywords=non-optified bugs in bugs.maemo.org] for packages/applications which are [https://bugs.maemo.org/describekeywords.cgi non-optified]. But here is the place to have a list of all applications apart from being in bugs.maemo.org. You can use [[Opt_Problem#Tool_for_detection_of_non-optified_packages|this tool (Storage Usage)]] for visual analysis.
&lt;br&gt;&lt;br&gt;
{| class=&quot;sortable&quot; width=&quot;100%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;1&quot; border=&quot;1&quot;
|-
| '''Package'''&lt;br&gt; 
| '''Diskspace ([[Talk:Opt_Problem/Non-Optified_packages|uncompressed]])'''&lt;br&gt; 
| '''Bug report'''&lt;br&gt; 
| '''Status'''&lt;br&gt;
|-
| [https://wiki.mozilla.org/Fennec Fennec/Firefox]
| 
| https://bugzilla.mozilla.org/show_bug.cgi?id=526791
| optified
|-
| [http://maemo.org/packages/view/packageview/ PackageView]
| 
| https://sourceforge.net/tracker/?func=detail&amp;aid=2910777&amp;group_id=112947&amp;atid=663665
| optified
|-
| [http://maemo.org/packages/view/mc/ Midnight Commander (mc)]
| ~6.5 MB
| mail to the package maintainer was sent
| issue mailed
|-
| [http://maemo.org/packages/view/sharing-service-evernote/ sharing-service-evernote]
| 
| https://bugs.maemo.org/show_bug.cgi?id=6737
| optified
|-
| [http://www.fbreader.org/ fbreader] / [http://maemo.org/packages/view/libzlibrary/ libzlibrary]
| ~1.8 MB / ~3.5 MB
|
| listed here
|-
| [http://maemo.org/packages/view/tutorial-home-applet/ tutorial-home-applet]
| ~1.3 MB
| https://bugs.maemo.org/show_bug.cgi?id=6741
| bug reported but wontfix :-/
|-
| [http://maemo.org/packages/view/openssh-server/ openssh-server]
| ~0.5 MB
| See [[Talk:Opt_Problem/Non-Optified_packages|Discussion page]]
|
|-
| [http://maemo.org/packages/view/openssh-client/ openssh-client]
| ~1.2 MB
| See [[Talk:Opt_Problem/Non-Optified_packages|Discussion page]]
|
|-
| [http://maemo.org/packages/view/theremin/ theremin]
| ~0.5MB
| mail to the package maintainer was sent 
|
|-
| [http://maemo.org/packages/view/vagalume/ Vagalume]
| 
| https://garage.maemo.org/tracker/index.php?func=detail&amp;aid=4900&amp;group_id=447&amp;atid=1709
| optified
|-
| [http://maemo.org/packages/view/xournal/ Xournal]
| ~0.5 MB
| https://bugs.maemo.org/show_bug.cgi?id=5774
| Non optified
|-
| [http://yacas.sourceforge.net/homepage.html yacas]
| ~1.8 MB
| 
| Non optified
|-
| [http://maemo.org/packages/view/wget/ Wget]
| ~1.9 Mb
| 
| Non optified
|-
| [http://maemo.org/packages/view/capsule/ capsule 3d engine demo]
|
| mail to the package maintainer was sent
| optified
|-
| subversion
|
|
|
|-
| [http://maemo.org/packages/view/mussorgsky/ Mussorgsky]
| ~0.2 MB
|
|
|-
| [http://maemo.org/packages/view/bossateal-theme/ bossa-teal theme]
| ~6 MB
|
|
|-
| [http://maemo.org/packages/view/gftp-common/ gftp-common] and [http://maemo.org/packages/view/gftp-gtk/ gftp-gtk]
| ~1,3 MB / ~0.76 MB
|
|
|-
| [http://maemo.org/packages/view/rsync/ rsync]
| ~0.4 MB
| no bug tracker and no maintainer
|
|-
| [http://maemo.org/packages/view/abiword/ AbiWord]
| 14,3 MB
|
|
|-
| [http://maemo.org/packages/view/keepassx/ keepassx]
| 2,9 MB
|
|
|-
| Numptyphysics
| ~0.3 MB
|
| Datafiles are in opt, but binary isn't
|-
| Tunewiki (from Ovi store) uses [http://maemo.org/packages/view/libqt4-webkit/ libqt4-webkit]
| ~16 MB
|
|
|-
| [http://maemo.org/packages/view/hildon-theme-hitech/ hildon-theme-hitech]
| ~6.8 Mb
|
| Non optified
|-
| [http://maemo.org/packages/view/theremin/ theremin]
| ~1.6 Mb
| 
| Non optified
|-
| Fring
| ~108MB
|
| Non optified, generated ~60MB log file plus ~40MB log.bak
|-
| Pocketsphinx-hmm-en-hub4wsj (probably other pocketsphinx packages)
| ~3MB
|
| Non optified, /usr/share/pocketsphinx
|-
| [http://www.maemo.org/packages/view/fahrplan/ fahrplan]
| ~0.6 MB
|
| Version in extras-testing is not optified
|-
|PACKAGE
|DISKSPACE 
|BUG REPORT
|STATUS
|}

[http://wiki.maemo.org/index.php?title=Opt_Problem/Non-Optified_packages&amp;action=submit Add packages...]

&lt;br&gt;
&lt;br&gt;

Google Lattitude Updater
 '''Summary:''' Google Lattitude Updater uses to much space in root partition, should use /opt
 
 '''Content:'''After installing Google Lattitude Updater on my N900 it uses around  10MB MB of space. 
 There is very little empty space in the root partition of the N900. That's
 why applications made for maemo should put as much content as possible to the
 /opt/ directory because /opt is linked to a bigger partition.
 Here are reasons and backgrounds:
 http://wiki.maemo.org/Opt_Problem
 
 Thank you very much!


[[Category:N900]]
[[Category:Fremantle]]
[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Orrery</title>
    <id>3358</id>
    <revision>
      <id>50559</id>
      <timestamp>2012-10-29T22:07:43Z</timestamp>
      <contributor>
        <username>kenyoung</username>
        <id>1798</id>
      </contributor>
      <comment>Added info about creating comet ephemeris</comment>
      <text xml:space="preserve">The orrery is a simple open-source application for [[Open development/Maemo roadmap/Fremantle|Maemo 5]] which displays the night (and day!) sky. It is nowhere near as elaborate as, for example, kstars, xephem or stellarium. It is intended to be a small, finger-friendly application, requiring no network connection. The current stable version is 3.8.x (the x just increments when bugs are fixed). The program version is shown on the &quot;Symbol Key&quot; page.

The source code is hosted on [https://github.com/kenyoung/orrery this github repository].  The version there may not have gone through the Maemo Community QA testing. The most recent version which has been vetted by the community is available in the Maemo [[Extras]] catalog.  This wiki page describes the behavior of the version of the program available in the Extras Devel catalog.
At this time, that version is also in the Extras catalog.

The star database was extracted from the [[:wikipedia:Hipparcos_catalog|Hipparcos catalog]]. To ease the computational load, the coordinates are not [[:wikipedia:Precession_(astronomy)#Astronomy|precessed]] or [[:wikipedia:Nutation#Of_the_Earth|nutated]] before being displayed. [[:wikipedia:Orbital_elements|Orbital elements]] are used, rather than [[:wikipedia:Ephemerides|ephemerides]], to calculate planet positions. Although this is less accurate, it dramatically reduces the memory footprint. The planet positions are accurate to a few arc minutes, from 3000 BC to 3000 AD. Since the scale on the default display is approximately 8 arc minutes per pixel, these small errors are imperceptible, unless a very large zoom factor is used.

== The Display ==

[[Image:orreryDefaultPage_3.2.png|thumb|200px|alt=Screenshot of the Orrery default page|Orrery Default Page]]

The image at right shows the default display - all stars visible to the unaided eye, with colors for the brightest ones. It's displayed with a [[:wikipedia:Transverse_Mercator|Transverse Mercator projection]] (similar to [[:wikipedia:Norton%27s_Star_Atlas|Norton's Star Atlas]]) which works well with the [[Nokia N900|N900]] in portrait mode. It's a [[:wikipedia:Conformal_transform|conformal transformation]], so the constellations have about the right shapes. The Sun, Moon and planets are plotted, and the Moon is shown with the proper phase. The Sun and Moon are plotted with a size about 3.5 times larger than their true angular size on the sky. That allows the phase of the moon to be shown.

At the top of the display is shown, from left to right, the [[:wikipedia:Universal_time|Universal Time]] (UT), the [[:wikipedia:Sidereal_Time|Local Sidereal Time]] (LST), and the location on the earth. The UT is essentially the same as the Greenwich Mean Time, and the date will also be displayed if it differs from the current date. The LST is a time based upon the position of the stars, rather than the position of the sun. The user may chose to have the program display the stars visible at the user's current location and at the current time, or at any other position on the earth, or any other time between 3000 BC and 3000 AD.

The blue line near the bottom of the display is the horizon. Nothing below that line is visible, but the program plots objects there anyway, because it is often useful to know which objects are just about to rise, and which ones have recently set.
{{clear}}

=== The orrery as a compass ===

The green numbers at the bottom are the [[:wikipedia:Azimuth|azimuth]] values. The
azimuth is the angle, measured along the horizon, from north through east. So the azimuth of due north is 0, east is 90, south is 180 and west is 270 degrees. By using these azimuth values, the orrery can be used as a celestial compass, if the sky above you is at least partially clear. Notice that the azimuth values are not exactly evenly spaced. This is caused by the distortion introduced by the Transverse Mercator projection.

The azimuth compass which appears if you tap the bottom center of the default page shows the azimuth of the Sun and Moon, if they are currently above the horizon.

You can also use the &quot;Planet Compass&quot; to find directions. If the sun, moon or a planet is visible above the horizon, you can orient the azimuth portion of the planet compass with that object, and use the rest of the compass to find any other direction.

=== Why does this program put my phone in portrait mode? ===

The Transverse Mercator transformation works poorly when the phone is in landscape mode. As we all learned in school, Mercator maps of the earth become very distorted near the earth's poles. For the orrery program, that distortion is unacceptably large when the phone is in landscape mode, because the landscape aspect ratio results in too large a range of azimuth values being displayed. A future version of orrery will support landscape operation, using a different coordinate transformation for that display.

=== Constellations Display ===

[[Image:orreryConstellations_3.2.png|thumb|200px|alt=Screenshot of Orrery constellation screen|Orrery Constellation Screen]]

There are two sky display screens defined. By default, one of them shows the display shown at right, and the other shows the constellations, and symbolic representations of the solar system objects. Tapping the screen within the upper 4/5 of the display toggles in and out of the constellations page.

The constellations are plotted in three colors. The twelve [[:wikipedia:Zodiac|zodiac]]
constellations are plotted in hot pink.The constellations plotted in gold are the classical Greek constellations, as listed in [[:wikipedia:Almagest|Ptolomy's Almagest]] (apart from the zodiac constellations, which are also in the Almagest). The only constellation from the Almagest which is not plotted is Argo Navis, which is not one of the official modern constellations (Argo Navis was broken up into the modern constellations Carina, Puppis and Vela). The remaining constellations, plotted in blue, were added during the last few hundred years.

In addition to constellation names and figures, three great circles, the [[:wikipedia:Celestial_Equator|Celestial Equator]] (light yellow), [[:wikipedia:Ecliptic|Ecliptic]] (red) and [[:wikipedia:Galactic_plane|Galactic Plane]] (blue-green), are shown. Solar system objects are shown symbolically (see Mercury, Venus, the Moon and the Sun in the above image).
{{clear}}

=== Displaying Asterisms ===

[[Image:OrreryAsterisms_3.2.png|thumb|200px|alt=Screenshot of Orrery northern asterisms view|Orrery Northern Asterisms]]

There are many [[:wikipedia:Asterism_(astronomy)|informal constellations]] which are widely known, such as the [[:wikipedia:Big_Dipper|Big Dipper]], the [[:wikipedia:Summer_Triangle|Summer Triangle]], etc. The user can choose to display some of these unofficial constellations by selecting &quot;Use Asterisms&quot; from the &quot;Displayed Items&quot; menu. If you know of some nice asterisms that the orrery does not yet display, please send them to orrery.moko@gmail.com, and I'll include them in a future release if I can. The image on the right shows the Big Dipper and Little Dipper asterisms.

{{clear}}

== Panning ==

The image can be panned by tapping your finger in the bottom 1/5 of the display (excluding menus). The size of the panning step is controlled by how close your finger is to the edge of the display. The program tries to center the azimuth value near where you tap. If you tap near the left or right edges, it pans by the maximum allowed amount, +-40 degrees. Pan steps are
quantized in increments of 5 degrees. 

=== Selecting a New Center Azimuth ===

[[Image:OrreryAzCompass_3.2.png|thumb|200px|alt=Screenshot of the Orrery azimuth compass|Orrery Azimuth Compass]]

Panning to a new central azimuth by panning 40 degrees at a time can be tedious. To make a large change in the display's center azimuth you may use the azimuth compass. To call up the azimuth compass, tap near the center of the finger-pan area (bottom 1/5 of the display). The compass shown at right will appear:

The locations of the Sun and Moon are shown if they are above the horizon (if they are too close together, only the Sun is shown). You may use your finger or stylus to select another center azimuth. Keep you finger pressed to the display as you select your new center azimuth - the selected azimuth will be shown by a white pointer on the inside of the compass circle. Once you release pressure on the screen, the compass will disappear, and the display will be redrawn.

The azimuth compass cannot be accessed if the display is zoomed.
{{clear}}

== Main Menu ==

[[Image:orreryMainMenu-3.3.png|thumb|200px|alt=Screenshot of Orrery main menu|Orrery Main Menu]]

The main dropdown menu for the orrery has six options:
{{clear}}

=== Other Pages ===

[[Image:orreryOtherPagesMenu-3.1.png|thumb|200px|alt=Screenshot of Orrery other pages menu|Orrery Other Pages Menu]]

The &quot;Other Pages&quot; option takes you to a menu that allows you to display things other than the night sky. With the exception of the flashlight pages, which are dismissed by tapping anywhere on the screen, the &quot;Other Pages&quot; are dismissed by curved arrow in the upper right hand corner.
{{clear}}

==== Flashlight Modes ====

The &quot;White Flashlight&quot; button paints the entire screen white, and the &quot;Red Flashlight&quot; button paints the entire screen red. Both may be used as a flashlight, but the red one is best if you are trying to preserve your [[:wikipedia:Night_vision|night vision]].

==== Sun and Moon ====

[[Image:orrerySunAndMoon_3.2.png|thumb|200px|alt=Screenshot of sun and moon information|Sun and Moon Information page]]

The &quot;Sun and Moon&quot; button displays a page giving the sun and moon positions, rise and set times, phase, etc. for five days, centered on today.

The highlighted date is the current UT date (unless the time menu has been used to select a different time). The highlighted rise and set times are the next ones which will occur at your location. Of course, that may be on a different UT date (for example, during daylight hours, the next sunrise will be tomorrow). The times are shown as UT, which may annoy people. UT is used because the orrery allows you to select any location on the earth, and any time from 3000 BC until 3000 AD. It would be very difficult to keep track of all the timezone, daylight savings change dates, etc. for that time range! So I have wimped out, and displayed UT, which is always reasonably well defined.

The current sun and moon positions shown are geocentric - no topocentric correction has been applied. However topocentric corrections are applied when rise and set times are calculated, so they should be reasonably accurate for a specific location on earth.

The moon illumination percentage shown on the line with the rising and setting times is the value at [[:wikipedia:Astronomical_transit|transit]]. The illumination shown on the line that has the drawing of the moon phase is the illumination percentage at this moment.

This page also shows the UT date and time of the four major moon phases ([[:wikipedia:Lunar_phases#Names_of_lunar_phases|New, First Quarter, Full and Last Quarter]]) for a time span of 10 [[:wikipedia:Lunar_month|lunar months]], centered on the current time (which of course can be changed with the time menu). The nearest time and date when each phase will occur is highlighted.

===== Seasons =====

The Sun and Moon page also displays the precise times at which each of the four seasons begins (spring and autumn equinoxes, summer and winter solstices).

==== Symbol Key ====

This button displays an annotated list of all the symbols used on the orrery display.

==== Big Moon Calendar ====

[[Image:orreryBigMoonCalendar_3.2.png|thumb|200px|alt=Screenshot of big moon calendar|Big Moon Calendar]]

The Big Moon Calendar is a graphic display of the phase of the moon for each day from 10 months before the current month, until 10 months after the current month (roughly 640 days), as shown at right.

Each column shows one month, and the day number is shown for each row. At the top and bottom of each column is shown the first letter of the name of the month shown in the column. Two vertical green lines separate years. The current Universal Time date is outlined in a red box.
{{clear}}

==== This Month's Moons ====

[[Image:orreryMonthlyMoonCalendar_3.2.png|thumb|200px|alt=Screenshot of monthly moon calendar|Monthly Moon Calendar]]

The ''This Month's Moons'' page shows the phase of the moon for each day of a particular month. By default, the current month is shown, but one may use the arrow buttons to pan through the months.   The day of the calendar month is shown in blue in the upper left corner of each day, and the number of days since the last New Moon (the &quot;age&quot; of the moon) is shown in red at the bottom right corner.   The current day is highlighted with a white box with the day of the month in white and the age of the moon in pink.

Both moon calendars show &quot;[[:wikipedia:Blue_Moon|Blue Moons]]&quot;, which are (according to the most commonly used definition) the second full moon in a calendar month which has two full moons. Both images at right show the Blue Moon which falls on New Year's Eve, 2009.
{{clear}}

==== Meteor Showers ====

[[Image:orreryMeteorShower-3.1.png|thumb|200px|alt=Screenshot of Meteor Showers view|Meteor Showers]]

This display shows information for all the [[:wikipedia:Meteor_shower|meteors showers]] which will occur during the current year. Remember that to see a meteor shower, you must travel to a site that has a very dark sky. In a city, few meteors will be seen even during a shower. 

The items shown on the Meteor Showers page are:
# the name of the meteor shower
# the abbreviation used for this shower when its [[:wikipedia:Meteor_shower#The_radiant_point|radiant]] is plotted on the sky display
# the expected number of meteors per hour - this is the maximum you will see under the best circumstances with a very dark sky and the shower radiant directly overhead on the date of the shower maximum. If the rate entry says &quot;Var&quot;, that means the rate is variable; such shower are not apt to show a large number of meteors per hour.
# the range of dates during which the shower will occur
# the date at which the shower shows the maximum number of meteors
# the typical velocity of the showers meteors in km/sec - larger numbers lead to brighter, bluer meteors
# the percentage of the moon's disk which is illuminated on the date of shower maximum - full moon = 100%. A minus sign following the percentage means the moon is [[:wikipedia:Lunar_phase#Names_of_lunar_phases|waning]], a plus sign means it is [[:wikipedia:Lunar_phase#Names_of_lunar_phases|waxing]]. Moonlight greatly interferes with seeing meteors
# the number of dark hours on the date of the shower maximum - defined as the time during which the sun is more than 12 degrees below the horizon, and the moon is far enough below
the horizon to not appreciably brighten the sky.

The Meteor Showers page shows information for all showers, the large majority of which are really minor events. Even when a meteor shower is not occurring, you can expect to see 4 to 10 meteors per hour. Many of the showers listed do not even double that background rate, and are of interest only to serious meteor enthusiasts. If you just want to go out and see some meteors for fun, it's best to select a shower with a rate of at least 50 meteors per hour, and to watch it on or very near the date of the shower's maximum.

Each line of the display describes a separate shower. If the shower currently in progress, the line is shown in green - bright green if there will be 2 or more hours of dark sky tonight, and dark green otherwise. If the shower is not currently underway, it will be shown in a cream color if on the night of the shower's maximum, the sky will be dark for at least 2 hours. Otherwise the shower information will be shown in grey, indicating that this year is not a good one to observe that particular shower.

At the bottom of the Meteor Showers page is shown the number of dark sky hours to expect tonight. In this context, &quot;tonight&quot; means the upcoming night if the sun is currently above the horizon, or the current night, if the sun is below the horizon.

If you wish to get meteor shower information for a different year, simply change in year using the time menu.

Many thanks to the International Meteor Organization (http://www.imo.net/imo/intro)
for permission to use their data to produce the meteor shower related displays.

==== Planet Compass ====

[[Image:OrreryPlanetCompass_3.2.png|thumb|200px|alt=Screenshot of moon calendar|Moon Calendar]]

The Planet Compass page graphically shows where each of the planets is at the current time.

The image has one complete circle, which shows the planet azimuth, and one semicircle, which shows the [[:wikipedia:Altitude_(astronomy)|elevation]].

The azimuth circle has blue triangles marking the four [[:wikipedia:Cardinal_points|cardinal points]]: North, South, East and West. There are small tick lines at the NE, SE, SW and NW directions, as well as a small dot every 10 degrees. The planet symbols are shown with lines projecting to their current azimuth. The line is white if the planet is above the horizon, and red if it is below the horizon.

The elevation semicircle has blue triangles marking the directions of the Zenith, Horizon and Nadir. Small dots are shown every 10 degrees, and there are short lines at +-45 degrees. As with the azimuth circle, lines connect the planet symbols to their current elevations.

Below the compass graphic, the name, [[:wikipedia:Hour_angle|Hour Angle]] (HA) rising time and azimuth, transit time and elevation, and setting time and azimuth is shown for each planet. The name of the planet is shown in green if the planet is currently above the horizon, or red if it is not. The time of the next event - rising, transiting or setting, is also highlighted for each planet.
{{clear}}

==== Solar System ====

The program can display the relative planet positions in two different ways. In both cases, the view is from the north looking down, with the direction of the [[:wikipedia:Vernal_Equinox|Vernal Equinox]] to the left of the screen (marked with the vernal equinox symbol, and an arrow). At the time of the vernal equinox, the earth will be at the 3 o'clock position in its orbit, so that the Sun will appear at the vernal equinox position.

===== Schematic Solar System View =====

[[Image:OrrerySchematicSolSys_3.2.png|thumb|200px|alt=Screenshot of schematic solar system view |Solar System View (schematic)]]

This button presents a schematic view of the Solar System, showing the locations of the earth, the earth's moon and the other planets in their orbits around the sun. The view is schematic in the sense that the orbit radii and planet sizes are not shown to scale. However the positions of the objects within their orbits are correct (the heliocentric [[:wikipedia:Ecliptic_longitude|ecliptic longitudes]] are correct).

Several buttons are drawn at the bottom of the display, which allow you to show an animation of the motion of the Solar System objects for several time increments. Showing the motion of planets in this way is what mechanical orreries do.
{{clear}}

===== To-Scale Solar System View =====

[[Image:OrreryToScaleSolSys_3.2.png|thumb|200px|alt=Screenshot of to-scale solar system view|Solar System View (to-scale)]]

This button displays the Solar System with the planet orbits shown with
the proper relative sizes. The orbits are also plotted as [[:wikipedia:Ellipse|ellipses]] in this display, with the correct eccentricity and orientation. The moon is not plotted, because it would be too close to the earth to display if any of the planet orbits were completely shown. Because Neptune's orbit is nearly 100 times larger than Mercury's, it is not possible to display all of the planet orbits simultaneously. There are &quot;Zoom In&quot; and &quot;Zoom Out&quot; buttons which allow you to select which proper subset of planet orbits is shown. The current position of each planet in its orbit is shown. Also plotted are grey lines connecting the Sun to each orbit, terminating with a white dot at the position of the planet's [[:wikipedia:Perihelion#Planetary_perihelion_and_aphelion|perihelion]] (where it is closest to the sun in its orbit). The image at right shows the display when the outermost plotted planet is Mars. Note that the orbits of Mercury and Mars are quite non-circular.
{{clear}}

==== Astronomical Times ====

[[Image:OrreryTimesPage.png|thumb|200px|alt=Screenshot of astronomical times view|Astronomical Times Page]]

This button displays the current value of several astronomically important time scales, including the [[:wikipedia:Julian_day|Julian Date]] (JD), the Modified Julian Date (MJD), which is simply the JD - 2400000.5, the [[:wikipedia:Universal_Time|Universal time]] (UT), the [[:wikipedia:Equation_of_time|Equation of time]] (Eq. of Time), which is the difference between mean solar time and sundial (apparent) solar time, and the Equation of the Equinoxes (Eq. of Equin.), which is the very small difference between the Mean [[:wikipedia:Sidereal_time|Sidereal Time]], and the Apparent Sidereal Time. All of those values are the same anywhere in the world. Also displayed are several times specific to the location you are at (or have selected): The Mean Solar Time, the apparent solar time (the time shown by sundials), the Mean Local Sidereal Time (Mean LST) and the apparent local sidereal time (App. LST). Unlike the other orrery pages, this page is updated rapidly (at 10 Hz), so that you can see the exact current values.
{{clear}}

==== Analemma ====

[[Image:OrreryAnalemma.png|thumb|200px|alt=Screenshot of analemma view|Analemma]]

This button displays the [[:wikipedia:Analemma|Analemma]] for the current time, or the time which has been selected with the Change Time button. The analemma's horizontal axis is the Equation of Time value, which is the difference between Mean Solar Time (what a clock set to your local time, not your timezone time, would show) and the Apparent Solar Time (what a sundial would show - the time defined by the position of the real sun in the sky). The vertical axis shows the elevation of the sun above the horizon, at noon, from your location (or the location you have selected). The analemma is labeled with a year, because it slowly changes as the earth's orbit changes and the earth's pole wobbles. No phone can really be called a smartphone if it cannot show the analemma. The analemma page takes a second or two to display - nearly 750,000 trigonometric function calls are needed to calculate it accurately!

When the Equation of Time is negative, clocks run ahead of sundial (apparent solar) time.

If you were to photograph the sun, at the same time each day, the resulting set of sun images would trace out the analemma. The analemma can be used to calculate the direction of the sun's rays at your location.
{{clear}}

==== Planet Elevations ====

[[Image:OrreryPlanetElevations.png|thumb|200px|alt=Screenshot of Planet Elevations|Planet Elevations]]

The &quot;Planet Elevations&quot; page offers another way of seeing if and when the planets will be visible.   A typical display is shown at the right.
The page shows a plot of one full day, with time increasing as you move to the right of the plot.   The Universal Time is shown at the top of the plot, and the Local Sidereal time is shown at the bottom.   The grey line in the center of the plot marks local midnight (which, in general will ''not'' be timezone midnight).   There is a horizontal line drawn for the Sun, the Moon and each of the planets (except earth!).
The line for the sun is drawn in red; for other objects the portion of the line which is drawn in white shows when the object is above the horizon at night and the portion shown in grey shows when the object is above the horizon during daylight.    Below each object's line is shown a series of tick marks with the elevation of the object at that time shown below.   Below the center of each object line, the elevation of the source at transit is shown.   There are grey vertical lines shown covering the entire height of the plot marking sunrize and sunset.   In between those lines, the Sun is below the horizon, and a planet may be visible.   There is a colored vertical line, with a UT time at the top and an LST at the bottom.   That line shows the current time, and it is red if the Sun is above the horizon, yellow during twilight, and green when the sky should be pretty dark.   If that line intersects an object line (in the plot shown here, it intersects the lines for Mars, Jupiter, Uranus and Neptune) that object is above the horizon, and the object's current elevation is shown next to the current time line (in this case, 2 degrees for Mars, 58 for Jupiter, 44 for Uranus and 18 degrees for Neptune).   If the sky is dark, and the object is above the horizon, its name is shown in green.   Otherwise, it is shown in red.

One can obviously change the time on using the orrery's &quot;Change Time&quot; menu item, and then use this page to see the range of time that any planet will be visible for, at any time from 3000 BC until 3000 AD.

One little wrinkle for this display is when to update the tracks for the next day.   In other words, if an object is currently below the horizon, is the elevation track shown correct for today, or tomorrow, or yesterday?   This doesn't really matter for anything other than the Moon, because no other object moves on the sky enough during one day to make its track change significantly.   But a one day change in the Moon's position is very significant.  The way the orrery handles this is to switch to the next day's tracks at local noon.   So once noon passes, the tracks will be correct for the night which begins at the next sundown.   Before local noon, the tracks are correct for the night which ended at the most recent sunrise.   This means that the tracks should be correct at all times when the sun is down.

{{clear}}

==== Planet Phenomena ====

[[Image:OrreryPlanetPhenomena.png|thumb|200px|alt=Screenshot of Planet Phenomena|Planet Phenomena]]

The &quot;Planet Phenomena&quot; page shows the date and hour of the most recent and next [[wikipedia:Conjunction_(astronomy_and_astrology)|conjunction]] and [[wikipedia:Opposition_(planets)|opposition]] (for [[wikipedia:Superior_planets|superior planets]]).   For [[wikipedia:Superior_planets|inferior planets]], the inferior and superior conjunction dates are shown, along with the date of greatest eastern and western elongation, and the separtion from the Sun on those dates.   Mercury and Venus are most easily observed around the date of greatest elongation.   In fact, it's virtually impossible to see Mercury with the unaided eye, except very near the time of greatest elongation.   When Mercury or Venus is at greatest eastern elongation (labeled &quot;Max. East&quot; on the table) the planet is visible after sunset in the evening.   Near greatest western elongation (labeled &quot;Max. West&quot;) it is visible before sunrise in the morning.


The dates and times shown on this page have an accuracy of about +- one hour.
{{clear}}

==== Jovian Moons ====
[[Image:orreryJovianMoonGraph.png|thumb|200px|alt=Screenshot of the Jovian Moon Graph Page|Jovian Moon Graph Page]]
The Jovian Moons page displays information about the positions and
phenomena for the four largest moons of Jupiter - the [[wikipedia:Galilean_moons|Galilean Moons]].   These moons are easily seen with even small binoculars.   Some sharp-eyed people claim to be able to see them with their unaided eyes.   The moons are easily bright enough to be seen with the unaided eye, and at least the outermost two get far enough away from the planet's disk to be resolved by a human eye.   But the dazzling brilliance of Jupiter so near the moons makes viewing them without optical aid very difficult.


A screenshot of the Jovian Moon first page is shown on the right.   At the top of the page is a plot showing Jupiter and
its four main moons, which are color coded for easy identification, in their proper positions for the current time (or any other time you set).   All four moons will not always be visible - sometimes they pass behind Jupiter and are
blocked from our line of sight.   Occasionally the shadow of one of the moons will pass across Jupiter's disk, and that shadow too will be shown in the plot.
Because the inclination of Jupiter's axis is only 3 degrees, and the moons orbit nearly in Jupiter's equatorial plane, these moons appear to move nearly on a line, with Jupiter in the center.   Eclipses for the three innermost moons happen very frequently, and Callisto, the outermost Galilean Moon, is eclipsed less frequently.   Which side the moons appear on depends upon what equipment you use to observe them.   Many telescopes invert or mirror reflect the image.
There are four buttons near the bottom of the page which allow you to
invert and reflect the plots, to make them match what you see with your equipment.

Most of the page is taken up with &quot;wiggly line&quot; plots which show the east-west positions of the moons throughout the current month.   They are color coded, for identification.   At the position in the plot corresponding to the current time, the lines are interrupted, and dots representing the moons are plotted.
Although these lines look like simple sine waves, they are not.   The moons (and other objects) perturb the orbits o these moons, making the motion far more complex than simple harmonic motion.   The two cream-colored vertical lines in each plot shows the size of Jupiter's disk.   You can see on the plot when a moon passes in front of or behind Jupiter.   There is a scale at the bottom of the plots which allows you to see the separation in arc seconds.  This scale changes as the distant to Jupiter from the Earth changes.

At the bottom of the page is a button you can press to go to the &quot;Events&quot; page.

{{clear}}
[[Image:orreryJovianMoonEvents.png|thumb|200px|alt=Screenshot of the Jovian Moon Events Page|Jovian Moon Events Page]]

The Events page lists the times of the satellite events such as eclipses, occultations and transits.  This page takes a second or so to plot,
because it requires roughly one million double precision trigonometric functions to be evaluated (the event timings are calculated by your phone, not fetched from a website). Since the app is location-aware, it can tell you which of these events will be visible to you from your current location.    If the Sun is above the horizon, or Jupiter is below the horizon, you cannot see a satellite event; such events are listed in grey.   Events that you can see are shown in green, except for he ''next'' event you can see, which is shown in red.   The times are all in UT, of course.  The plot on the right shows the events for the very special evening of Oct 12, 2013.   On that night three satellite shadows crossing Jupiter's disk are visible at once (see plot at the top of the page).   The color coding shows that this rare triple shadow event will be visible from my current location.

At the bottom of the Events page is a button you can click to return to the Graph page.
{{clear}}

==== Celestial Navigation ====
[[Image:orrerySextantFullList.png|thumb|200px|alt=Screenshot of the Celestial Navigation Default Page|Celestial Navigation Default Page]]
The Celestial Navigation page shows the information needed to perform [[wikipedia:Celestial_navigation|celestial navigation]] calculations with a [[wikipedia:Sextant|sextant]].   The default page, shown on the right,  shows the information presented by the [[wikipedia:US_Naval_Observatory|US Naval Observatory]] on its online calculator (located at http://aa.usno.navy.mil/data/docs/celnavtable.php).
The orrery does not use that Naval Observatory calculator; it calculates the values itself (so you do not need an internet connection to use it).   The orrery uses the same list of objects as the Naval Observatory calculator, but it color-codes them differently for improved visibility.   Solar System objects are shown at the top of the list in red.   Objects with elevations between 15 and 65 degrees are shown in green, and objects above the horizon but outside of that range are shown in grey.   Data for Polaris and the First Point in Aries are shown at the bottom of the table, in white.  The values are not updated as time passes unless you press the &quot;Press Here to Update&quot; button at the bottom of the page.

If you need the reduction table values for some arbitrary time, you can of course use the normal method of changing the orrery's time, and then return to the Sextant Navigation page to see the appropriate values.

[[Image:orrerySextantSingleObject.png|thumb|200px|alt=Screenshot of the Celestial Navigation Single Object Page|Celestial Navigation Single Object Page]]
Showing all of the navigational objects on one page requires a very small font, which is hard to read.   If you press the touchscreen near any of the objects, a white box will appear highlighting a selected object.   Releasing the screen will present another page showing the data for the selected object only, with a much larger, more readable font, as shown on the right.

{{clear}}
==== Lunar Eclipses ====
The orrery can display information about every [[:wikipedia:Lunar_Eclipse|lunar eclipse]] occurring from from 1999 BC through 3000 AD - a bit more than 12000 eclipses (the database used is the &quot;Five Millennium Canon of Lunar Eclipses: -1999 to +3000&quot; available at http://eclipse.gsfc.nasa.gov/SEpubs/5MCLE.html, although the orrery generates its own maps).   It will display information about the visibility and duration of the eclipse as seen from the current location.   When one selects the Lunar Eclipse page, the checklist page shown on the right is presented.[[Image:OrreryLunarEclipsePage1.png|thumb|200px|alt=Selection page for Lunar Eclipses|Selection page for Lunar Eclipses]] Because so many eclipses can be displayed, by default the user is presented with a small subset of the eclipses: those which occur during the next 10 years.   One may change the starting and ending years to access other eclipses.   The &quot;List only eclipses visible from here&quot; checkbox allows you to produce a list of only those eclipses for which at least some portion of the eclipse is visible at your location.   Other checkboxes allow you to decide which types of lunar eclipses; penumbral, partial and/or total, you wish to display.   By default [[:wikipedia:Lunar_Eclipse#Types_of_lunar_eclipse|penumbral]] eclipses are not displayed, because they involve only a rather subtle changing of the moon's illumination.    If you change any of the selection criteria on this page, you need to tell the program to generate a new list of eclipses to display by pressing the &quot;Rebuild the Eclipse List&quot; button.   If you don't change the checkboxes, you do not need to push that button.   '''To select the eclipse you wish to observe, click the &quot;Click Here to Select the Eclipse to Display&quot; area''', and you will be presented with a scrollable list of eclipses to choose from.   You will not be presented with an eclipse list unless you click in that region (shown outlined in red, in the screenshot to the right).


Once you have chosen the eclipse you're interested in, you will be shown information about that eclipse on a new page.   Once such image, for the total lunar eclipse of April 15, 2014,  is shown on the right.[[Image:OrreryLunarEclipsePage2.png|thumb|200px|alt=Lunar Eclipse Display Page|Lunar Eclipse Display Page]]   Below the title of the page, the orrery displays whether or not you can see the selected eclipse.   If the moon rises or sets during the eclipse, that information is listed too.   Below that, the duration of each phase of the eclipse (as seen from your location) is listed.  Below that, the starting and ending times of each phase, along with the time of maximum eclipse, is listed.   All times are in Universal Time.  Remember that if you observe the penumbral phase of the eclipse, the changes in the moon's appearance may not even be noticeable; only the partial and total phases are visually striking.


The upper graphic on the eclipse display page shows the path of the moon through the earth's shadow.   The [[:wikipedia:Umbra|penumbra]] (where the earth only partially blocks the sun as seen from the moon) is shown in light grey and the umbra (where the earth completely blocks the sun as seen from the moon) is shown in darker grey.  The ecliptic is shown in red, and the path of the moon is indicated with a turquoise arrow.   If the moon rises or sets at your location during the eclipse, the moon's position in the shadow at that time is shown in red.


At the bottom of the eclipse display page a map is presented showing the portions of the earth which can see the eclipse.   The observer's location is indicated with a red dot, and the map itself is centered at the longitude of the observer.   The light blue dot shows the position on the earth for which the moon is at the zenith at the moment of maximum eclipse.   The light blue line shows the longitude for which the moon is on the [[:wikipedia:Meridian_(astronomy)|meridian]] at the moment of maximum eclipse.   The darkest grey region shows the portion of the earth for which none of the eclipse can be seen.   Observers in the white region can see at least some portion of the maximum phase of the eclipse.   In other words, if the eclipse is total, an observer in the white region sees at least some part of the total phase of the eclipse.   If the eclipse is partial, an observer in the white region sees a partial eclipse.   Other shades of grey are used for regions that, for example, can only see the partial phases of a total eclipse.   The next image to the right indicates the meaning of the various shaded regions and lines on this eclipse visibility plot.[[Image:OrreryLunarEclipseMapKey.png|thumb|200px|alt=Lunar Eclipse Visibility Plot|Lunar Eclipse Visibility Plot]]
{{clear}}

{{clear}}
==== Comets ====

The Comets page displays information about any [[:wikipedia:Comet|comet(s)]] that the app knows about.   An example of the display produced is shown on the right.[[Image:orreryCometPage.png|thumb|200px|alt=Comets Page|Comets page]] Information for comets which are currently below the horizon is shown in grey (as is the case for comet [[:wikipedia:C/2011_L4|Pan-STARRS]] in the sample page).

Unlike the major planets, comet information for orrery is obtained from 
[[:wikipedia:Ephemerides|ephemerides]] obtained from the [[:wikipedia:JPL_Horizons|JPL Horizons website]].   Ephemerides are used for comets because their orbits may be strongly perturbed by the major planets as the comets move through the inner Solar System.   Since ephemerides are used, the orrery can only display information for a comet during the period covered by the ephemeris, usually one year before and after the periheion passage.   Outside of that period the comet is ignored and not plotted anywhere.

In addition to the Comets page, comet information shows up several other places.   The comet will be plotted on the sky map page (default page) if showing comets has been enabled via the Displayed Items menu page.   Comets will also be shown on the Planet Compas page, the Planet Elevations page and the To-scale Solar System page.   Note that if their are comets visible, there will be a button in the upper left area of the Planet Elevation page allowing you to toggle between showing planets and showing comets.

The To-scale Solar System page shows the orbits projected onto the Solar System's equatorial plane.   Since comets follow paths that are often very highly inclined to that plane (as is the case for comet Pan-STARRS), this projection effect can make it look like the Sun is not at the focus of the orbit, but of course it must be.   This is merely an illusion.

===== Adding Additional Comets =====

You can add more comets for the orrery to display.   To do so, you need to create an ephemeris file.   The file must have the following format:

 The first line must contain the name of the comet, optionally followed by a second &quot;nickname&quot; for the comet.
 All other lines must be formatted as follows:
 Character Range                        Description
  0 -&gt;  3                           Year (2012, etc)
  5 -&gt;  7                           Month (Jan, Feb, etc)
  9 -&gt; 10                           Day of month
 12 -&gt; 13                           Hour
 15 -&gt; 16                           Minute
 18 -&gt; 28                           Geocentric RA (HH:MM:SS.SS)
 30 -&gt; 40                           Geocentric Dec (+DD:MM:SS.SS)
 43 -&gt; 47                           Magnitude (MM.MM)
 49 -&gt; 56                           Ecliptic Longitude (DDD.DDDD)
 58 -&gt; 65                           Ecliptic Latitude (+DD.DDDD)
 67 -&gt; 79                           Distance from Sun (AU)

This information can be easily obtained from the JPL Horizons website.   For the ephemerides I include with the package, I have one entry for every time the comet moves by one degree in the sky, so the sampling is much finer near perihelion.   The file must be placed in the directory /opt/maemo/usr/share/orrery/comets/ .   The name of the file does not matter.

=== Displayed Items ===

The &quot;Displayed Items&quot; page allows you to configure the display, selecting such things as the faintest magnitude object displayed, whether constellation lines are plotted, whether or not star names are displayed, etc.

==== Deep Sky Objects ====

[[Image:orrerySagitarriusClusters_3.2.png|thumb|200px|alt=Screenshot of star clusters in Sagittarius|Star clusters in Sagittarius]]

If you select &quot;Deep Sky Obs&quot; from the &quot;Displayed Items&quot; menu, you will be shown some of the brightest [[:wikipedia:Deep_sky_object|Deep Sky Objects]]. Deep Sky Objects are objects such as galaxies, expelled envelopes of dying stars, clusters of young stars and luminous gas. A few, such as the Andromeda Galaxy, are visible to the unaided eye. Many more are visible with binoculars or a small telescope. The orrery shows all [[:wikipedia:Messier_object|Messier objects]], and many other well known bright nebulae and star clusters. The image bellow shows the Messier objects in Sagittarius.

===== Adding Your Own Deep Sky Object List =====

You may add your own list of deep sky objects to be plotted. Simply create a file within the directory &lt;code&gt;/usr/share/orrery/deepSky/&lt;/code&gt; with any name. The file should contain lines of text with the format:

 name HH MM SS.SS DD MM SS.S type mag

where name is the object name, which may not include white space, HH MM SS.SS is the Right Ascension, DD MM SS.S is the declination (do not include a + sign for positive declinations) &quot;type&quot; is an integer specifying the type of object:
* 0 = [[:wikipedia:Supernova_remnant|Supernova Remnant]]
* 1 = [[:wikipedia:Globular_cluster|Globular Cluster]]
* 2 = [[:wikipedia:Open_cluster|Open Cluster]]
* 3 = [[:wikipedia:Nebula#Diffuse_nebulae|Diffuse Nebula]] ([[:wikipedia:H_II_region|HII region]], etc.)
* 4 = [[:wikipedia:Planetary_nebula|Planetary Nebula]]
* 5 = [[:wikipedia:Galaxy|Galaxy]]
The &quot;mag&quot; is the visual magnitude. The orrery program currently does nothing with the visual magnitude, but future versions may use it.

==== Meteor Radiants ====

If you select Meteor Radiants, then the radiant position for any meteor showers which are now occurring will be plotted. The radiant is the position in the sky from which meteors seem to emerge during a shower - it's the best place in the sky to look for meteors.The radiant is plotted in white if more than 50 meteors per hour are expected under optimal viewing conditions, cream-color if 20 or more meteors per hour are expected, and grey if fewer then 20 meteors per hour are expected. Note that these are meteor rates for the date of the shower maximum - see the Meteor Showers page for more information. The radiant position usually changes as the shower progresses. The orrery takes that into account when plotting the radiant.

==== Changing the Magnitude Limit ====

The magnitude scale for expressing the brightness of stars and planets is explained [[:wikipedia:Apparent_magnitude|in this Wikipedia article]]. It is one of the oldest
measurement systems still in use today.

By default, the orrery displays every star a person with excellent eyesight located in a very dark area on a moonless night can see. If your observing conditions are less ideal than that, it can be helpful to use the &quot;Mag. Limit&quot; field in the item menu to lower
the limit of the faintest object plotted.

==== Star Names ====

[[Image:OrreryNamesWithZooming5.png|thumb|400px|alt=Screenshot of star names|Star Names]]

Selecting Star Names will cause the traditional, western names for stars to be displayed.   Most of these names are corrupted versions of ancient Arabic names. If you zoom the image, more names will be shown.
{{clear}}

==== Bayer Designations ====

[[Image:OrreryBayerNames.png|thumb|400px|alt=Screenshot of Bayer star names|Bayer star Names]]

As an alternative to displaying the names of the bright stars, you can instead display the [[:wikipedia:Bayer_designation|Bayer Designations]]. These are the designations using Greek letters, like the well-known &quot;[[:wikipedia:Alpha_Centauri|Alpha Centauri]]&quot;. It is recommended that you do not display both the star names and Bayer designations at the same time, because the display will become rather crowded. As with star names, if you zoom the display, more Bayer designations will become visible, as shown at right.
{{clear}}

=== Change Time ===

The &quot;Change Time&quot; page allows you to specify an explicit time between 3000 BC and 3000 AD, or the current time. If &quot;Now&quot; is selected, the current time is used and the display updates automatically once per minute. If a specific time is selected, it is shown in red, to remind you that the display is not going to update automatically as time passes. The time may be specified as a calendar date, or as a Julian Date.

If the Calendar checkbox is selected, you can choose the date and time (UT) using the normal Hildon selector widgets for these quantities. Note - this option only allows dates from 1900 to 2100 AD to be selected. To chose a date outside that time range, you must use the Text Entry option.

The [[:wikipedia:Julian_Date|Julian Date]] is a less ambiguous way of entering times
in the distant past than using a calendar date, because of the differing calendar systems in use worldwide before the late 16th century. For example, the date October 10, 1582 never occurred in some European countries. Many countries have gaps in their calendars
with missing dates when they adopted the [[:wikipedia:Gregorian_Calendar|Gregorian Calendar]].

Note about the Text Entry option: At this time, the numeric fields can only be changed with the keyboard's up/down arrow keys, or with text entry via the soft keyboard.

=== Change Location ===

This page allows you to select the position of the observer on the earth's surface. You can use the position derived by the N900 itself (either from cell tower coordinates or GPS), a user specified latitude and longitude, or a location selected from a menu.

If you chose the &quot;Phone&quot; option, the most recent position derived by the N900 will be used. If the phone has not yet established a position, the default location will be used until the phone has derived a position.

If you choose the &quot;Custom&quot; option, you may enter a new position by typing text into the &quot;Name&quot; field, and using the &quot;Longitude&quot; and &quot;Latitude&quot; selection widgets. Don't forget the &quot;West&quot;, &quot;East&quot;, &quot;North&quot; and &quot;South&quot; buttons - they select the sign of the latitude and longitude. Once you've entered a new custom position, you'll be given the option of saving it in your private catalog.

To choose a predefined position from a menu, select the &quot;Menu&quot; option near the bottom of the page. You will notice that the &quot;Region&quot; menu will then become highlighted. Push &quot;Region&quot;, and then select the continent or category of the area you want the sky to be shown for. Once you have selected a region, a pull-down menu with the name of that region will appear next to the &quot;Region&quot; button. Use that new menu to select your city. After the city is selected, its name will appear next to the regional menu.

If you select a &quot;Custom&quot; or &quot;Menu&quot; location, a button labeled &quot;Save in Private Menu&quot; will appear. After you select your new position, you may push that button to save it in the menu labeled &quot;Private&quot;. That menu is initially empty.

If you would like to add additional cities, etc. to one of the menus other than the private menu, you may simply edit one of the menu files, and add the name, latitude and longitude of the location. The lists of locations are stored in ASCII text files under the menus subdirectory of the program installation area on your phone. You will need to reload the &quot;Change Location&quot; page for your new locations to become available.

==== How to change the default location from Boston ====

To change the default location, just use the &quot;Change Location&quot; menu option to select a new
location as described above. That will make the currently selected position your new default location, which will be used whenever the program is started, unless &quot;Phone&quot; is selected as the source for position information.

=== Web Help Page ===

This button brings up this wiki page in the browser, provided you have a network connection.

=== Quick Tips ===

This button brings up a page with a few basic instructions for operating the program.   It does not require a network connection.

== Minimized Display ==

[[Image:OrreryMinimized.png|thumb|200px|alt=Screenshot of minimized orrery|Minimized Orrery]]
When the orrery window is minimized by the N900's window manager, it produces a different display which is legible even when the window is in its shrunken state.   The image at the right shown this minimal mode, when the N900 is in landscape mode.   It shown the phase of the moon in the center, and plots indicating the Sun (far right plot) and Moon (far left plot) azimuth (outside triangle) and elevation (inside arrow).   The triangle and arrow are green if the object is currently above the horizon.   At the top of the display, the UT is shown, and the bottom of the display has the LST.   These are continuously updated.

In portrait mode, the minimized display shows the names of each planet that is currently above the horizon (not including uranus and Neptune, which are not visible to the unaided eye).   The elevation of the planet, in degrees, is also shown, in green if the source has not yet passed through transit, and red otherwise. 

{{clear}}

== Touchscreen Gestures ==

There are four types of touchscreen gestures which you can make in the plotting area which are recognized by the orrery: Taps, Zooms, Pans and Presses.

=== Taps ===

If you press the display area, and withdraw your finger or stylus within 0.25 seconds, that gesture is considered a tap. Tapping in the lower 1/5 of the display area will pan the display in azimuth. Tapping anywhere else toggles between the default screen and the constellation screen.

=== Zooms ===

If you press the screen and trace out a roundish figure, and remain in contact with the screen for more than 0.25 seconds, and if the figure encloses a nontrivial (&gt; 300 pixels) area, the gesture is considered to be a zoom. As you move your finger or stylus, the region you are outlining will be shown as a green dotted line.   After you release your finger from the display, a red box will be shown. The red box is a rectangle with the aspect ratio of the display area, and the same area and centroid as the region you
traced out with your finger. The display will then be zoomed so that the region in the red box fills the display area.

Zooming can do some non-intuitive things, especially if you zoom near the upper left or upper right of the display. This is because the orrery's transverse mercator projection always has a line of constant azimuth in the center. This means that something zoomed
at the edge of the display area will be rotated as it is zoomed, and some of the stars you wish to display may be rotated out of the display area. It is best, especially if you are zooming in on an area near the zenith, to first pan the display so that the region
is near the center of the display, before zooming. The nice thing about the transverse mercator projection is that a zoomed area is displayed with the orientation it would have if you were directly facing it at the time indicated by the display.

If your zoom area includes the zenith, the display may do weird things. This is a bug.

'''To unzoom - just press the screen for longer than 0.25 seconds, without moving your finger (much)'''.

=== Pans ===

A pan is like a zoom, but with a more linear, rather than roundish gesture. A pan can be used to move the center of a zoomed region. It has no effect if the display area is not zoomed. After you release your finger or stylus following a zoom gesture, orrery will show the region you traced out in green, and will draw a red arrow showing the direction and size of the pan. After that, the display is re-drawn with the new center position.

=== Presses ===

If you push down on the touchscreen for more than 0.25 seconds, and do not move your finger or stylus significantly while making contact, you will have made a press gesture. Since one almost always moves one's finger a little by while pressing the screen, some small motion is allowed during a press gesture. This means that a zoom or pan gesture cannot be arbitrarily small, because it will be interpreted as a press.

If the screen is zoomed, then the press gesture unzooms it. If the screen is already unzoomed, then the press gesture has the same effect as a tap gesture.

== Symbols ==

=== Symbol Key ===

[[Image:orrerySymbolKey_3.2.png|thumb|200px|alt=Screenshot of Orrery symbols|Symbols used by the orrery]]

If you select &quot;About Orrery / Symbol Key&quot; from the &quot;opts&quot; menu, you will be shown an annotated list of the symbols used by the orrery, which is reproduced at right.

NOTE: the current version is 3.5.

=== Planet Symbols ===

The solar system symbols, used by default on the constellation page (screen two), are the standard astronomical symbols for these objects. They are explained
[[:wikipedia:Planet_symbols|on Wikipedia]].

=== Plotted Lines ===

The dotted yellow line is the Celestial Equator, the intersection of the Earth's equatorial plane with the celestial sphere. The red dotted line is the Ecliptic. The Ecliptic is the intersection of the Earth's orbital plane with the celestial sphere. The Ecliptic is also the path of the Sun across the sky, and the intersection points between the Celestial Equator and the Ecliptic are where the Sun is at the time of an equinox.  Constellations lying along the Ecliptic plane are zodiac constellations. The planets and the Moon are always near, but usually not exactly on, the Ecliptic. The blue-green dotted line is the Galactic Plane, the intersection of the plane of the Milky Way's disk and the celestial sphere.
{{clear}}

== Displaying Stars Too Faint for the Unaided Eye to See ==

The default sky catalog used by the orrery contains every star you can see with your unaided eye, even if you have exceptionally good eyesight, and are located in a very dark area on a moonless night. If you wish to display stars which require binoculars or a small telescope to be seen, you can download the file hipparcos_9.0.dat from the 
[https://garage.maemo.org/projects/orrery/ orrery area of the gForge site].  

You must load this file onto your phone, of course, but you probably will want to store it on the removable microSD card, because the file is so large (3 megabytes). You must make a softlink in the top of the orrery files area called &quot;faintStars&quot;, which will point to where the hipparcos_9.0.dat is actually stored. For example, if you do the default installation of the orrery, and if you store the hipparcos_9.0.dat at the top directory of your microSD card, you must issue the following command to make the faint star catalog usable:

 ln -s /media/mmc1/hipparcos_9.0.dat /usr/share/orrery/faintStars

You must restart the orrery after making this softlink.

Once the new catalog and softlink are in place, the orrery will allow you to change the maximum magnitude (using the &quot;Displayed Items&quot; menu option) all the way up to magnitude 9.0. Note that the default, smaller catalog is still used if the maximum magnitude is no larger than 6.6, so you  may used the orrery with the faint star catalog, and not incur and performance penalty as long as you restrict yourself to stars no fainter than 6.6.   The faint (mag &gt; 6.6) stars cannot be displayed in constellation mode.

The default orrery star catalog contains 9931 stars. hipparcos_9.0.dat contains 83392 stars, and is complete to 9th magnitude. The orrery will be more sluggish if you choose to display stars fainter than 6.6, because it must process the larger star catalog.

The plot below shows [[:wikipedia:Hyades_(star_cluster)|Hyades star cluster]] with limiting magnitudes of 6.6 (left) and 9.0 (right).

[[Image:orreryHyadesMagComp.png|thumb|400px|alt=Screenshot of Orrery catalogs|Orrery Catalogs]]

Remember, there's no reason at all to install the hipparcos_9.0.dat file unless you plan to do star gazing with binoculars or a small telescope.
{{clear}}

== Chinese Color Scheme ==

In traditional Chinese astronomy, the zodiac is known as the Yellow Way, and the celestial equator is known as the Red Way. If you want the orrery to use that color scheme for great circles and constellations, edit the file &lt;code&gt;/usr/share/orrery/config&lt;/code&gt;, and make the first line read

 CHINESE_COLOR_SCHEME 1

You will need to restart the program.

== Bugs! (and some workarounds) ==

=== Preserving the Private Catalog ===

If you installed the first version of the orrery program (3.0.x), and if you made location entries in the &quot;Private catalog&quot;, upgrading to the 3..1.3-1 version will delete your &quot;Private catalog&quot;, and all your saved locations will be lost. You may prevent this by using &quot;X Terminal&quot; to issue the following commands '''before upgrading''':

 mkdir /home/user/.orrery
 cp /opt/maemo/usr/share/orrery/menus/Private /home/user/.orrery/

== Contact Information ==

Please send comments, suggestions, questions and/or abuse to orrery.moko@gmail.com

[[Category:Software]]
[[Category:Users]]</text>
    </revision>
  </page>
  <page>
    <title>Os2008 101</title>
    <id>2672</id>
    <revision>
      <id>28152</id>
      <timestamp>2010-02-02T15:53:59Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[First Steps With Your Nokia Tablet]]</comment>
      <text xml:space="preserve">#REDIRECT [[First Steps With Your Nokia Tablet]]</text>
    </revision>
  </page>
  <page>
    <title>Ota failed</title>
    <id>4188</id>
    <revision>
      <id>35009</id>
      <timestamp>2010-05-27T15:29:48Z</timestamp>
      <contributor>
        <username>timeless</username>
        <id>139</id>
      </contributor>
      <comment>this page is for use by localization error messages please do not remove it</comment>
      <text xml:space="preserve">#REDIRECT [[Cannot_install_firmware_update]]</text>
    </revision>
  </page>
  <page>
    <title>Overclocking</title>
    <id>3832</id>
    <revision>
      <id>48252</id>
      <timestamp>2012-06-08T15:12:26Z</timestamp>
      <contributor>
        <username>hurrian</username>
        <id>5316</id>
      </contributor>
      <comment>More rearragements.</comment>
      <text xml:space="preserve">==Reminders==

This page is about overclocking and undervolting the [[Nokia N900|N900]]. For the N8x0 see [http://talk.maemo.org/showthread.php?t=12464 this thread on talk.maemo.org]

Overclocking is discussed in [http://talk.maemo.org/showthread.php?t=39753 this thread]. Benchmark results can be found [http://talk.maemo.org/showthread.php?p=605189 here]. If you're more interested in power saving read [http://talk.maemo.org/showthread.php?t=49654 this].

This guide focuses on kernel-power v50 and above, as it introduces improvements in stability and maximum supported frequency for SmartReflex, making it highly desirable for a Maemo system that is overclocked 24/7.

==Warnings==

* Overclocking WILL VOID YOUR WARRANTY. Your warranty does not cover running the device beyond the specifications.
* The lifetime of your device WILL get reduced as a result of [[:wikipedia:Electromigration electromigration]]
* Your device might not perform properly - bizarre bugs and corruption may result from the CPU being physically unable to cope with higher frequencies (see the next point)
* All devices are not made equal - some may be able to handle 1.15GHz daily just fine, while some may be unstable even at 720MHz.
* You do it at your own responsibility. No whining afterwards. If you're unsure, don't do it.
* [http://depot.javispedro.com/nit/thewarningtm.jpeg Nokia's overclocking warning]: 500 MHz is the normal frequency. Everything above is not good for your device, even with the stock kernel.
* Igor Stoppa's [http://talk.maemo.org/showpost.php?p=596149&amp;postcount=904 warning] and [http://talk.maemo.org/showpost.php?p=603833&amp;postcount=66 comment]
* [http://talk.maemo.org/showpost.php?p=596274&amp;postcount=937 chip vendors specs]

==Lifetime, warranty and damage==

* The expected lifetime '''all''' devices is limited due to wear.
* It is usually much longer (several years) than the warranty period, so that even with heavy use within the specifications it would not fail before warranty ends.
* With overclocking users may see considerable speed improvements and lower latency in user experience which could extend the actual lifetime (of being used) as the device could keep up with the newer models.
* Excessive overclocking with stock voltages is definitely bad for most components in your device, especially if the device is continuously locked at high frequencies with high load (see TI specs).
* Specifications give guarantees for the worst-case scenarios that are covered by the warranty. The best-case scenario may be different for every device but is not covered by warranty.
* However, there is an open debate whether '''mild''' (&lt;40%) overclocking with lower voltages (undervolting) does actually harm or is even less harmful than the stock settings. See [[#Undervolting and voltage tables]] for an explanation why undervolting in fact won't help anything due to chip using SmartReflex Technology (which can not be disabled).
* Evidence for or against damages (esp. with undervolting) in the N900 is currently absent and will probably only be available when the device is no longer on the market. Or you decide to acquire thorough electronics engineer's understanding of the issue, and study TI's papers regarding SmartReflex™ and how it works - then all the evidence for damage positively done is there already.
* Therefore, if you are unsure and you want to avoid potential damages, do not overclock!

==Overclocking, bugzilla &amp; errors==

* Running a device overclocked for long periods of time could produce unwanted side effects, even persisting ones that won't revert when overclocking is stopped. If you are experiencing errors following overclocking and intend to report those errors to talk.maemo.org or bugzilla, please consider the following :
** Errors induced by overclocking will not always appear to be as such.
** It will be considered a good idea to reproduce your error / problem on a device which has never been overclocked AT ALL, before proceeding with actions regarding your problem.
** In the event you have decided to file a bug report or open a thread about your problem, please add a note to that report, mentioning that you are or previously were in fact running your device overclocked.  Please also provide details about the period and amount of overclocking used.
* The reason for these requirements is that there are many problems pending for developer's attention. It is a huge waste of time to try and trace down an error without knowing all the facts, just to find out in the end that the particular problem was caused by a damaged hardware. If the developers know about it, they can take it into account and won't rule out a 1+1=3 problem on the reporter's device during their analysis.

==Additional information and hints==

* The stock Nokia kernel uses the following frequencies: 250, 500, 550 and 600 MHz.
* The CPU does '''NOT IDLE''' at the lowest frequency (250 MHz) but it '''SLEEPS''' at 0 MHz! Thus, reducing the lowest frequency would not reduce power consumption. It is only activated during low workload and may actually consume more power than a higher frequency, as it takes more time to go back to sleep/idle state.
* Setting the lowest frequency to 125 MHz does NOT improve battery life. In fact, many people noticed worse battery life, instability and worse responsiveness,
* The Phone app is closed-source and broken. During a phone call, the device's frequency [http://talk.maemo.org/showpost.php?p=601691&amp;postcount=1823 is locked to 600MHz]. This may be a bug, and it affects all kernels for Fremantle. After a phone call, it sets the maximum to 600 Mhz and the minimum to 250 MHz (or 125 MHz if available) regardless of the frequencies you have set. There are some workarounds present in kernel-power, however the bug may still occasionally manifest.
* When connected via USB the device locks the minimum frequency to 500 Mhz.
* By default the device is configured to use 125 MHz as the lowest frequency but it not enabled in the kernel [https://bugs.maemo.org/show_bug.cgi?id=7116 pmconfig bug]
* The warning &lt;pre&gt;WARNING: at arch/arm/mach-omap2/clock34xx.c:443 omap3_noncore_dpll_set_rate+0x28c/0x2dc()&lt;/pre&gt; in the kernel logs (dmesg) only happens if the invalid 800 MHz frequency was selected. Ignore it.
* EvilJazz had photoshopped a [http://talk.maemo.org/showpost.php?p=605523&amp;postcount=90 picture of a device being overclocked 1.7GHz]. It's a '''prank'''!
* The internal temperature sensor may be read by using the command &quot;cat /sys/devices/platform/omap34xx_temp/temp1_input&quot;
* '''Note''' that the system does not have an on-die temperature sensor, and the actual CPU temperature may be higher or lower than the reading.

==Installing a modified kernel==
Overclocking and undervolting require installation of a custom kernel.
There are two types of kernels:

===Kernel-Power (recommended)===
[[Kernel_Power|kernel-power]], developed by Titan and maintained by Pali.
They are compatible with [[Maemo 5/PR1.2|PR1.2]] and [[Maemo 5/PR1.3|PR1.3]], contain lots of additional features (IPv6, NAT etc) and bugfixes. In addition, they include a large set of possible frequencies (125 MHz-1.15 GHz) which can be manually set and tested without flashing a new kernel.

The defaults are set to the standard 250-600 MHz range.

This guide recommends using kernel-power v50, which at the time of writing is available in the [[extras]] catalog. Newer, more experimental kernels may be available through [[extras-testing]] or [[extras-devel]].

====Installing from the repositories====
# Open the Application Manager
# Go to the &quot;System&quot; section, and install the package kernel-power-settings. This automatically pulls in the rest of kernel-power as dependencies.
# After successful installation, reboot the device.

===Lehto's Kernel and other legacy kernels===
Modified [[Maemo 5/PR1.1|PR1.1]] kernels by Lehto and others. The only difference from the stock Nokia kernel is the change of the available hardcoded frequencies.

====Flashing from X Terminal====
* do a backup, have a PC nearby and know you are able to flash the N900 with flasher-3.5 - just in case

# Launch X Terminal, then type&lt;pre&gt;sudo gainroot&lt;/pre&gt;
# Type:&lt;pre&gt;softupd -vv -s --local&lt;/pre&gt;(that is a double v)
# Open new terminal
# Type:&lt;pre&gt;flasher --local -f -k &lt;kernel_zimage_file_with_path&gt;&lt;/pre&gt;
# You'll see the flashing (takes some time)
# Type &quot;sync&quot; to save changes
# Type &quot;reboot&quot; and enter to restart
# Test out your phone as usual. (Apps, browser, camera, phone etc etc)
# If any abnormal events occur frequently (crash, hang, screen corruption etc), turn it off, flash it to a slower kernel and test again.

===Reverting to the Stock Kernel===

If you want to revert to the stock Nokia kernel, execute:

 apt-get install --reinstall kernel kernel-flasher

in X Terminal.

=== Fixing the version information ===

If your version information got lost (control panel -&gt; version) you can fix it by reinstalling the package that is listed with:
 dpkg -l &quot;mp-fremantle*&quot;
for example, &quot;mp-fremantle-generic-pr&quot; (for some firmwares 002 or 003 instead of generic) and then execute:
 apt-get install --reinstall mp-fremantle-generic-pr

==Overclocking==
Once you have installed kernel-power, you are ready to start overclocking.
# List available frequencies (&quot;active frequencies&quot;)&lt;pre&gt; sudo kernel-config show &lt;/pre&gt;
# Select the lowest and highest frequencies to be used from the list of active frequencies,  The kernel will use all '''active frequencies''' between and including those you selected.
# The following command will set the frequencies to stock:&lt;pre&gt; sudo kernel-config limits 250 600 &lt;/pre&gt;
# The following command will set the maximum to the highest supported by '''SmartReflex'''. (Note that SmartReflex in kernel-power v50 only works with frequencies up to 900MHz.)&lt;pre&gt; sudo kernel-config limits 250 900 &lt;/pre&gt;
# At this point, you should test system stability by launching a few programs, browsing JavaScript-heavy webpages, and playing a movie.
# Should you encounter no reboots, you can save your overclocking profile.&lt;pre&gt; sudo kernel-config save myprofile &lt;/pre&gt;
# You can now proceed to set your kernel profile as the default, to be loaded automatically at startup.&lt;pre&gt; sudo kernel-config default myprofile &lt;/pre&gt;

==Undervolting==

===SmartReflex===

====Rationale====
Before kernel-power v50, one would normally set voltages per frequency in a configuration file, which required manual testing to determine the lowest voltages possible for a specific frequency. This may result in reboots if the voltage was not set high enough to account for the CPU's power usage at full loads, or power wastage if the voltages were set higher than what is needed for light loads at a certain frequency.
SmartReflex is a technology which automatically regulates the voltage used for the entire SoC, automatically adapting to lower voltages during light use and increase them during heavy use.

====Automatic Undervolting====
Once kernel-power v50 or higher is installed, enabling it is a matter of doing the following:
# Make a folder for your kernel profiles&lt;pre&gt; mkdir -p ~/.kernel &lt;/pre&gt;
# Copy a sane profile to your kernel profile folder&lt;pre&gt; cp /usr/share/kernel-power-settings/default ~/.kernel/myprofile &lt;/pre&gt;
# Edit the profile to enable SmartReflex&lt;pre&gt; nano ~/.kernel/myprofile &lt;/pre&gt;
# Look for the lines:&lt;pre&gt; SMARTREFLEX_VDD1=0 SMARTREFLEX_VDD2=0&lt;/pre&gt;
# Edit them to the following:&lt;pre&gt;SMARTREFLEX_VDD1=1 SMARTREFLEX_VDD2=1&lt;/pre&gt;
# Save the file by pressing Ctrl+X, and confirm with Y then press Enter.
# Test the profile&lt;pre&gt; sudo kernel-config load myprofile &lt;/pre&gt;
# At this point, you'd want to stress the CPU a bit. Launch a few programs, visit JS-heavy websites, etc.
# If the device does not reboot and you feel safe using the profile, set it as the default.&lt;pre&gt; sudo kernel-config default myprofile &lt;/pre&gt;
# Congratulations, the kernel is now doing all the work for you.

===Manual Undervolting (Legacy)===
See: http://talk.maemo.org/showpost.php?p=628839&amp;postcount=81

Extract from the post:

&lt;pre&gt;CPU power consumption (without constants) = leakage + capacitance + switching = voltage^2 + frequency + (voltage^2 * frequency)&lt;/pre&gt;

One factor reducing CPU lifetime is the current it is running with [[:wikipedia:Dynamic_frequency_scaling|dynamic frequency scaling]].
&lt;pre&gt;CPU dynamic power consumption = capacitance * frequency * voltage^2&lt;/pre&gt;

As can be seen from the formula, lower voltage plays greater part in CPU consumption than frequency. By reducing the voltage the damage of overclocking can be reduced and the battery life time extended. Alas, this claim only holds true for architectures not regulating the real voltage and current in special on chip regulators, like OMAP is known to do for almost every gate in their CPU and other SoC function blocks. TI calls this feature SmartReflex™ and lowering the voltage applied to the whole SoC, like suggested here, only reduces the voltage drop across these regulators, thus no positive effect on [[:wikipedia:Electromigration|electromigration damage]] caused by overclocking is to be expected.

====Calculating Voltages====

According to [http://talk.maemo.org/showpost.php?p=606031&amp;postcount=2375 these calculations], the voltage can be varied in steps of 0.0125 V with values 0-72.
The formula is (with x being the kernel parameter value):
&lt;pre&gt;V = x * 0.0125 + 0.6&lt;/pre&gt;

Examples:

 Lowest voltage (x = 0):   0  * 0.0125 + 0.6 = 0     + 0.6 = 0.6 V
 Highest voltage (x = 72): 72 * 0.0125 + 0.6 = 0.9   + 0.6 = 1.5 V
 Random voltage (x = 38):  38 * 0.0125 + 0.6 = 0.475 + 0.6 = 1.075 V

====Voltage Table====
* V²/us for frequencies 720 and 805 need to be recalculated.
* Bolded steps indicate the first frequency in the kernel which needs overvoltage. ''All frequencies after it are overvolted''.
{|
! Frequency !! Nokia !! LV !! ULV !! XLV !! ideal !! starving
|- 
|0 MHz || 30 || 30 || 25 || 30 || 30 || 22
|-
| || 0.975V, 0.000 V²/us || 0.975V, 0.000 V²/us || 0.912V, 0.000 V²/us || 0.975V, 0.000 V²/us || 0.975V, 0.000 V²/us ||
|-
|125 MHz || 30 || 30 || 25 || 20 || 30 || 22
|-
| || 0.975V, 288.906 V²/us || 0.975V, 118.828 V²/us || 0.912V, 103.968 V²/us || 0.975V, 118.828 V²/us || 0.975V, 118.828 V²/us ||
|-
|250 MHz || 38 || 38 || 25 || 30 || 30 || 28
|-
| || 1.075 V, 118.828 V²/us || 1.075 V, 118.828 V²/us || 0.912V, 207.936 V²/us || 0.975V, 237.656 V²/us || 0.975V, 237.656 V²/us ||
|-
|500 MHz || 48 || 48 || 33  || 33 || 30 || 29
|-
| || 1.200 V, 720.000 V²/us || 1.200 V, 720.000 V²/us || 1.012V, 512.072 V²/us || 1.012V, 512.072 V²/us || 0.975V, 475.312 V²/us ||
|-
|550 MHz || '''54''' || 48 || 38 || 38 || 33 || 32
|-
| || 1.275 V, 894.094 V²/us || 1.200 V, 792.000 V²/us || 1.075V, 635.594 V²/us || 1.075V, 635.594 V²/us || 1.012V, 563.279 V²/us ||
|-
|600 MHz || 60 || '''54''' || 38 || 38 || 38 || 34
|-
| || 1.350 V, 1093.500 V²/us || 1.275 V, 975.375 V²/us || 1.075V, 693.375 V²/us || 1.075V, 693.375 V²/us || 1.075V, 693.375 V²/us ||
|-
|720 MHz || || 54 || 45 || 45 || 45 || 42
|-
| || || 1.275 V, 1137.938 V²/us || 1.163 V, 1014.427 V²/us || 1.163 V, 1014.427 V²/us || 1.163 V, 1014.427 V²/us ||
|-
|805 MHz || || 54 || 48 || 48 || 48 || 45
|-
| || || 1.275 V, 1316.756 V²/us || 1.200 V, 1166.400 V²/us || 1.200 V, 1166.400 V²/us || 1.200V, 1166.200 V²/us ||
|-
|850 MHz || || 54 || 48 || 48 || 48 || 46
|-
| || || 1.275 V, 1381.781 V²/us || 1.200 V, 1224.000 V²/us || 1.200 V, 1224.000 V²/us || 1.200V, 1224.000 V²/us ||
|-
|900 MHz || || 54 || '''54''' || '''54''' || '''54''' || 49
|-
| || || 1.275 V, 1463.062 V²/us || 1.275V, 1463.062 V²/us || 1.275V, 1463.062 V²/us || 1.275 V, 1463.062 V²/us ||
|-
|950 MHz || || 54 || 54 || 54 || 54 || 52
|-
| || || 1.275 V, 1544.344 V²/us || 1.275 V, 1544.344 V²/us || 1.275 V, 1544.344 V²/us || 1.275 V, 1544.344 V²/us ||
|-
|1000 MHz || || 60 || 60 || 60 || 60 || 55
|-
| || || 1.350 V, 1822.500 V²/us || 1.350 V, 1822.500 V²/us || 1.350 V, 1822.500 V²/us || 1.350 V, 1822.500 V²/us ||
|-
|1100 MHz || || 72 || 72 || 72 || 72 || 63
|-
| || || 1.500 V, 2475.000 V²/us || 1.500 V, 2475.000 V²/us || 1.500 V, 2475.000 V²/us || 1.500 V, 2475.000 V²/us ||
|-
|1150 MHz || || 72 || 72 || 72 || 72 || 69
|-
| || || 1.500 V, 2700.000 V²/us || 1.500 V, 2700.000 V²/us || 1.500 V, 2700.000 V²/us || 1.500 V, 2700.000 V²/us ||
|}

==Useful scripts==

===Analyze kernel system frequency use percentage===
Written by ''rooted''

''I've stopped the development of this script and I hope someone will make use of the code. I hope titan includes it in &quot;kernel-config show&quot; or &quot;kernel-config debug&quot;. -rooted''

This script prints percentage of frequencies (states) used and some additional info useful for posting on the forum (debugging). It displays all frequencies, works with all kernels and it is not affected by the bug which resets minimum frequency after phone call.

Temperature may not be listed if you don't have module bq27x00_battery installed or enabled. Also kernel-power version is not listed if you don't use titan's kernel.

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh

idlefreq=`awk '{if ($2 &gt; 0) print $1}' /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state | tail -n 1`
tis1=`awk '{sum += $2} END {print sum}' /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state`
tis2=`awk '$1 == &quot;'&quot;$idlefreq&quot;'&quot; {idle = $2} {sum += $2} END {print sum-idle}' /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state`

echo -e &quot;
TIME_IN_STATE ANALYSING SCRIPT
By rooted (maemo.org)
Revision 7
wiki.maemo.org/Overclocking


FREQUENCY\tUSED\t\tWHEN BUSY\n&quot;
awk '
{if ($1 &gt;= 1000000)                 printf (&quot;%.0f MHz\t&quot;,$1/1000); else printf (&quot;%.0f MHz\t\t&quot;,$1/1000)}
{if ($2 == 0)                       printf &quot;unused&quot;;               else printf (&quot;%.1f %\t\t&quot;,($2*100)/&quot;'&quot;$tis1&quot;'&quot;)}
{if ($2 == 0 || $2/&quot;'&quot;$tis2&quot;'&quot; &gt; 1) printf &quot;\n&quot;;                   else printf (&quot;%.1f %\n&quot;,($2*100)/&quot;'&quot;$tis2&quot;'&quot;)}
' /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state

echo -e &quot;
Kernel:                  `uname -r`
kernel-power:            `dpkg -l kernel-power | awk '$2 == &quot;kernel-power&quot; {print $3}'`
kernel-power-settings:   `dpkg -l kernel-power-settings | awk '$2 == &quot;kernel-power-settings&quot; {print $3}'`
Uptime:                  `uptime | sed -e 's/.*p *//' -e 's/, l.*//' -e 's/  / /'`
Load:                    `uptime | sed 's/.*e: //'`
Boot reason:             `cat /proc/bootreason`
Temperature:             `cat /sys/class/power_supply/bq27200-0/temp` degrees C\n&quot;
&lt;/source&gt;

Output example:

&lt;pre&gt;TIME_IN_STATE ANALYSING SCRIPT
By rooted (maemo.org)
Revision 7
wiki.maemo.org/Overclocking


FREQUENCY       USED            WHEN BUSY

1150 MHz        unused
1100 MHz        unused
1000 MHz        unused
950 MHz         unused
900 MHz         unused
850 MHz         unused
805 MHz         4.5 %           58.9 %
750 MHz         0.0 %           0.4 %
700 MHz         0.0 %           0.3 %
600 MHz         0.3 %           3.4 %
550 MHz         0.0 %           0.5 %
500 MHz         2.8 %           36.5 %
250 MHz         92.4 %
125 MHz         unused

Kernel:                  2.6.28.10power37
kernel-power:            2.6.28-maemo37
kernel-power-settings:   0.11
Uptime:                  56 min
Load:                    0.25, 0.12, 0.09
Boot reason:             pwr_key
Temperature:             31 degrees C&lt;/pre&gt;

===Analyze kernel system frequency use percentage, including idle mode stats===
Written by ''ArbitRabbit''

The following script will show the current frequency and statistics for each state, including time spent in idle mode when the CPU is actually sleeping. This script works with the special frequency handling in Titan's kernel.

To run this script as user and be able to set the frequencies you will need to install &quot;[[Root_access|rootsh]]&quot; via apt-get.

'''scheduler_stats.sh'''
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
awk '{print &quot;\nCurrent frequency: &quot;$1/1000&quot; MHz\n&quot;}' /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
awk '{print &quot;Minimum frequency: &quot;$1/1000&quot; MHz\n&quot;}' /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
awk '{print &quot;Maximum frequency: &quot;$1/1000&quot; MHz\n&quot;}' /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

tis1=`awk '{SUM += $2} END {printf(&quot;%.0f&quot;,SUM/1000)}' /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state`

idle0=`awk '{printf (&quot;%.0f&quot;,$1/1000)}' /sys/devices/system/cpu/cpu0/cpuidle/state0/time`

idle1=`awk '{printf (&quot;%.0f&quot;,$1/1000)}' /sys/devices/system/cpu/cpu0/cpuidle/state1/time`

idle2=`awk '{printf (&quot;%.0f&quot;,$1/1000)}' /sys/devices/system/cpu/cpu0/cpuidle/state2/time`

idle3=`awk '{printf (&quot;%.0f&quot;,$1/1000)}' /sys/devices/system/cpu/cpu0/cpuidle/state3/time`

totaltime=$(($idle0+$idle1+$idle2+$idle3+$tis1))
echo -e &quot;FREQUENCY\tUSED&quot;
SUM=0
awk '
       {
               printf (($1/1000)&quot; MHz \t&quot;);
               if ($2 == 0)
               {
                       printf &quot;0 %\n&quot;;
               }
               else {
                       SUM+=$2;
                       printf(&quot;%.3f %\n&quot;,($2/10)/&quot;'&quot;$totaltime&quot;'&quot;);
                       }
       }
       END{
       printf (&quot;Time spent in idle mode is %2.2f %\n&quot;,(1-((SUM/1000)/&quot;'&quot;$totaltime&quot;'&quot;))*100);
       }' /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state
echo &quot;&quot;
&lt;/source&gt;

'''Sample Output'''

&lt;pre&gt;Current frequency: 500 MHz

Minimum frequency: 500 MHz

Maximum frequency: 810 MHz

FREQUENCY       USED
1200 MHz        0 %
1100 MHz        0 %
1000 MHz        0 %
950 MHz         0 %
900 MHz         0 %
850 MHz         0 %
810 MHz         0.000 %
750 MHz         0.000 %
700 MHz         0.000 %
600 MHz         0.000 %
550 MHz         0.000 %
500 MHz         0.010 %
Time spent in idle mode is 99.99 %&lt;/pre&gt;

Known Bugs: Requires the Phone to be booted for an hour or so before it results in decent stats.

===Combined helper script===
Written by ''EvilJazz''

The following script will show the current frequency and statistics. It also accepts two optional parameters that will set the max and/or min frequencies (in MHz unit). Calling the script without these parameters will not set the new clocking. Instead it will just show the current frequencies and statistics.

This script works with the special frequency handling in Titan's kernel.

To run this script as user and be able to set the frequencies you will need to install &quot;[[Root_access|rootsh]]&quot; via apt-get.

 overclock.sh [max freq] [min freq]

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
max=${1}000
min=${2}000

# Handle and rewrite special cases in Titan's kernel...
[ &quot;$max&quot; == &quot;600000&quot; ] &amp;&amp; max=599000
[ &quot;$min&quot; == &quot;125000&quot; ] &amp;&amp; min=124999

if [ $(id -u) -ne 0 ]; then
  [ &quot;$max&quot; != &quot;000&quot; ] &amp;&amp; echo &quot;echo $max &gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&quot; | sudo gainroot
  [ &quot;$min&quot; != &quot;000&quot; ] &amp;&amp; echo &quot;echo $min &gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&quot; | sudo gainroot
else
  [ &quot;$max&quot; != &quot;000&quot; ] &amp;&amp; echo $max &gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  [ &quot;$min&quot; != &quot;000&quot; ] &amp;&amp; echo $min &gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
fi

awk '{printf(&quot;\nCurrent frequency: %7s MHz\n&quot;, $1/1000)}' /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
awk '{printf(&quot;Minimal frequency: %7s MHz\n&quot;, $1/1000)}' /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
awk '{printf(&quot;Maximal frequency: %7s MHz\n\n&quot;, $1/1000)}' /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

sum=$(awk '{SUM += $2} END {print SUM}' /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state)
awk '{printf(&quot;%7s MHz: %5.1f % (%8d)\n&quot;, ($1/1000), ($2 * 100)/&quot;'&quot;$sum&quot;'&quot;, $2)}' /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state
echo
&lt;/source&gt;

Output example:

&lt;pre&gt;~ $ ./overclock.sh 600 250

Current frequency:     250 MHz
Minimal frequency:     250 MHz
Maximal frequency:     599 MHz

   1200 MHz:   0.0 % (       0)
   1100 MHz:   0.0 % (       0)
   1000 MHz:   0.0 % (       0)
    950 MHz:   0.0 % (       0)
    900 MHz:   0.2 % (     271)
    850 MHz:   0.0 % (       0)
    810 MHz:   0.0 % (       0)
    750 MHz:   0.0 % (       0)
    700 MHz:   0.0 % (       0)
    600 MHz:   9.0 % (   13663)
    550 MHz:   0.5 % (     701)
    500 MHz:  15.4 % (   23379)
    250 MHz:  75.0 % (  114021)
124.999 MHz:   0.0 % (       0)&lt;/pre&gt;

===Underclock/Overclock when phone is locked/unlocked===
Written by ''Fecn''

When locked, the limits are changed to 250/500 Mhz to save power - I don't need my phone to be fast when it's sitting there doing nothing. (I did try with 125 Mhz as minimum but it caused an unresponsive touchscreen during incoming phone calls and alarms)

When unlocked, the limits are set for overclocking, with the max speed determined by the temperature (1150 Mhz is stable on my phone - your mileage may vary - adjust scripts as required)

You need the dbus-scripts package installed for this to work. You also need to add bq27x00_battery to your /etc/modules so that it is loaded at boot time - it needs to be loaded to be able to read the temperature.

Note by --[[User:joerg_rw|joerg_rw]] 18:03, 2 August 2010 (UTC):
Which temperature are you trying to base that on? Anyway the bq27200 temperature is vastly useless for this purpose, as it is the die (chip) temperature of the battery charge gauge, and neither related to CPU die temperature, nor to battery cell temperature.

We use the dbus-signalling to follow what the phone is doing and fire off scripts to change the limits accordingly.

Create the following two 1-line files inside /etc/dbus-scripts.d/  (before you need to install the dbus-scripts package)

&lt;pre&gt;
Filename: /etc/dbus-scripts.d/locked 
/usr/local/bin/underclock * * com.nokia.mce.signal tklock_mode_ind locked

Filename: /etc/dbus-scripts.d/unlocked
/usr/local/bin/overclock * * com.nokia.mce.signal tklock_mode_ind unlocked
&lt;/pre&gt;

... and then create corresponding scripts that they call inside /usr/local/bin/ ( don't forget to chmod them to executable )

&lt;pre&gt;
Filename: /usr/local/bin/underclock 
#!/bin/sh
kernel-config limits 250 500

Filename: /usr/local/bin/overclock  
#!/bin/sh
TEMP=`cat /sys/class/power_supply/bq27200-0/temp`
echo &quot;Temp is :&quot; $TEMP &quot;C&quot;
MAXSPEED=&quot;1150&quot;
if [ $TEMP -gt &quot;38&quot; ] ; then MAXSPEED=&quot;1000&quot; ; fi
if [ $TEMP -gt &quot;40&quot; ] ; then MAXSPEED=&quot;950&quot; ; fi
if [ $TEMP -gt &quot;43&quot; ] ; then MAXSPEED=&quot;850&quot; ; fi
if [ $TEMP -gt &quot;45&quot; ] ; then MAXSPEED=&quot;750&quot; ; fi
if [ $TEMP -gt &quot;47&quot; ] ; then MAXSPEED=&quot;600&quot; ; fi
echo &quot;Setting max as :&quot; $MAXSPEED &quot;Mhz&quot;

kernel-config limits 250 $MAXSPEED
&lt;/pre&gt;

You'll need to restart dbus-scripts for it to see the new configs. I found that the scripts in init.d weren't too good at doing this, so had to kill it manually each time.

If you want to scale your processor speed according to battery capacity in addition to temperature, use an overclock script something like the following:

&lt;pre&gt;
Filename: /usr/local/bin/overclock
#!/bin/sh
TEMP=`cat /sys/class/power_supply/bq27200-0/temp`
echo &quot;Temp is:&quot; $TEMP &quot;C&quot;
MAXSPEED=&quot;1150&quot;
if [ $TEMP -gt &quot;38&quot; ] ; then MAXSPEED=&quot;1000&quot; ; fi
if [ $TEMP -gt &quot;40&quot; ] ; then MAXSPEED=&quot;950&quot; ; fi
if [ $TEMP -gt &quot;43&quot; ] ; then MAXSPEED=&quot;850&quot; ; fi
if [ $TEMP -gt &quot;45&quot; ] ; then MAXSPEED=&quot;750&quot; ; fi
if [ $TEMP -gt &quot;47&quot; ] ; then MAXSPEED=&quot;600&quot; ; fi

BATTERY=`cat /sys/class/power_supply/bq27200-0/capacity`
echo &quot;Battery is:&quot; $BATTERY &quot;% full&quot;
MAXSPEEDTWO=&quot;1150&quot;
if [ $BATTERY -lt &quot;60&quot; ] ; then MAXSPEEDTWO=&quot;850&quot; ; fi
if [ $BATTERY -lt &quot;40&quot; ] ; then MAXSPEEDTWO=&quot;600&quot; ; fi
if [ $BATTERY -lt &quot;25&quot; ] ; then MAXSPEEDTWO=&quot;500&quot; ; fi

if [ $MAXSPEEDTWO -lt $MAXSPEED ] ; then MAXSPEED=$MAXSPEEDTWO ; fi

echo &quot;Setting max as:&quot; $MAXSPEED &quot;Mhz&quot;

kernel-config limits 250 $MAXSPEED
&lt;/pre&gt;

[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Overclocking N900</title>
    <id>3912</id>
    <revision>
      <id>33419</id>
      <timestamp>2010-04-25T12:02:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>really redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Overclocking]]</text>
    </revision>
  </page>
  <page>
    <title>Ovi Maps Extra Features</title>
    <id>4837</id>
    <revision>
      <id>46023</id>
      <timestamp>2011-12-15T06:26:15Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45993 by [[Special:Contributions/114.79.28.10|114.79.28.10]] ([[User talk:114.79.28.10|Talk]]) vandalism/spam</comment>
      <text xml:space="preserve">This page is a work in progress. Please add missing information.

== What is Ovi Maps Extra Features ==

Ovi Maps Extra Features is a project that's been worked on to bring enhancements and extra features to Ovi Maps on the [[Nokia N900|N900]]. It began as adding simple functionality, but has progressed to adding voice commands and spoken street names.

Currently the features present in the latest release include:

* Addition of two extra buttons when routing
** First button is to show all maneouvers in the current route and allows them to be turned on and off.
** Second button shows Points of interest on the map, again allowing them to be turned on and off. Further customizations of Points of Interest is discussed below.
* Brought back 3D view of maps which was removed through an update
* Added extra menu to customize POIs
* Added voice capability with spoken languages (requires server, details below)
* Voice capability also allows for spoken street names through espeak
* Added feature to allow saved results to be displayed offline (still experiemental)

== How to use the latest version ==

# Download omVoiceServer from Extras-Devel. Be mindful that this is a work in progress and may contain many bugs. Software from this repository may also cause data loss and problems with your N900. Be sure to backup incase you need to reflash.
# The omvoiceServer icon will be available through the program menu
# Using your prefered method, access your &quot;&lt;code&gt;/usr/share/nokia-maps/html&lt;/code&gt;&quot; folder. This contains the necessary files to change.
# Download the newest html file from [http://talk.maemo.org/showthread.php?t=66985 this talk.maemo.org post]. Link will be available in the top.
# In that folder is the original &quot;&lt;code&gt;index.html&lt;/code&gt;&quot; file. Rename it to something else for backup purposes. Incase of any errors or problems with ovi maps, restore this file.
# Copy the new modified &quot;&lt;code&gt;index.html&lt;/code&gt;&quot; file into the folder
# Copy any extra icons required from [http://talk.maemo.org/attachment.php?attachmentid=19263&amp;stc=1&amp;d=1302432522 here]
# the location of the extra icons is given inside the zip folder (&lt;code&gt;html\pfw\images\spices\{folders}&lt;/code&gt;)
# omVoiceServer will look for voice files under cities folder (where all the map data is saved). This location can be changed from the options in omVoiceServer
# POI saved results are found again under the cities folder, but under a sub folder named &quot;poi&quot;. This folder may need to be made.

One method for accessing all these required folders is using winSCP. http://talk.maemo.org/showthread.php?t=41422

== Features explained ==

=== Maneuvers ===

With PR1.2, maneuver support was added so that when selecting a junction, its appropriate icon will be displayed. This functionality has been extended to allow all maneuvour icons to be displayed through a simple button, hence allowing the user to know what turns are approaching. The button is only displayed while traveling to a destination (needs a valid route to display manevours for), and hence will only be visible at times of routing. This button requires a new icon which can be added manually or automatically through the latest version of omVoiceServer.

{information on how to edit manuevour button can be added here}

=== Points Of Interest While Driving ===

Ovi Maps supports points of interest display on the map however the default is only transport icons, hence an extra button was added to enable POIs to be displayed and removed, as well as a new menu which allows for customizations of catagories. These catagories can be modified further if the user requires catagories other than the default ones. Similarly to the Manevours button, the button for POI is only availble while routeing. A new icon is again available.

==== Turning on and off certain POI icons ====

A new menu has been added with a few main catagories for POI. This can be found under &quot;Maps&quot; &gt; &quot;More&quot; &gt; &quot;POI Settings&quot;. It currently has
* Transport
* Shops
* Education
* Parking
* Activites
* All

WARNING: Choosing the all category will load all points of interest on the map. In cities and areas with many shops/schools/etc it will take a long time to turn them on and off.

==== Customizing the Points of Interest ====

The required function that contains the points of interest is under 
&lt;source lang=&quot;javascript&quot;&gt;
showAllCategories: function (showthem) {
&lt;/source&gt;
with the following items under each category
&lt;source lang=&quot;javascript&quot;&gt;
poiRegExp[0] = /AIRPORT|AIRLINE|METRO|UNDERGROUND|RAILWAY|FERRY|SBAHN|RER_/; 	//Transport
poiRegExp[1] = /BAR|SHOP/;		//shops
poiRegExp[2] = /EDUCATION|EXHIBITION|LIBRARY|MUSEUM|UNIVERSITY/;	//Education
poiRegExp[3] = /PARKING/;	//Parking
poiRegExp[4] = /BEACH|CAMPING|CASINO|CINEMA|GOLF|HOLIDAY|OPERA|STADIUM|THEATRE|TOURIST|ZOO|SPORT/;	//Activities
&lt;/source&gt;
Full list of possible POIs are 
&lt;source lang=&quot;javascript&quot;&gt;AIRLINE_ACCESS
 AIRPORT
 ALL
 AMUSEMENT_PARK
 AUT_METRO_ACCESS
 AUT_METRO_STOP
 BARS_CAFES
 BAR_DISCO
 BEACH
 BEL_METRO_ACCESS
 BEL_METRO_STOP
 CAMPING
 CAR_DEALER
 CAR_REPAIR
 CASH_DISPENSER
 CASINO
 CINEMA
 COMPANY
 CONCERT_HALL
 CONGRESS
 COURTHOUSE
 CULTURAL_CENTRE
 CZE_METRO_ACCESS
 CZE_METRO_STOP
 DEN_METRO_ACCESS
 DEN_METRO_STOP
 DEU_METRO_ACCESS
 DEU_METRO_STOP
 DEU_SBAHN_ACCESS
 DEU_SBAHN_STOP
 EDUCATION
 EMBASSY
 ESP_BARCELONA_METRO_ACCESS
 ESP_BARCELONA_METRO_STOP
 ESP_CERCANIAS_METRO_ACCESS
 ESP_CERCANIAS_METRO_STOP
 ESP_MADRID_METRO_ACCESS
 ESP_MADRID_METRO_STOP
 EXHIBITION_CENTRE
 FERRY_TERMINAL
 FIN_METRO_ACCESS
 FIN_METRO_STOP
 FRA_METRO_ACCESS
 FRA_METRO_STOP
 FRA_RER_ACCESS
 FRA_RER_STOP
 FRONTIER_CROSSING
 GBR_GLASGOW_METRO_ACCESS
 GBR_GLASGOW_METRO_STOP
 GBR_LONDON_METRO_ACCESS
 GBR_LONDON_METRO_STOP
 GOLF_COURSE
 GOVERNMENT_OFFICE
 HOLIDAY_PARK
 HOSPITAL
 HOTEL
 ITA_METRO_ACCESS
 ITA_METRO_STOP
 LIBRARY
 METRO_ACCESS
 MOUNTAIN_PASS
 MOUNTAIN_PEAK
 MUSEUM
 NOR_METRO_ACCESS
 NOR_METRO_STOP
 OPERA
 PARKING
 PARKING_AREA
 PARKING_GARAGE
 PARK_RECREATION
 PETROL_STATION
 PHARMACY
 PLACE_OF_WORSHIP
 POLICE
 POST_OFFICE
 PRT_METRO_ACCESS
 PRT_METRO_STOP
 RAILWAY_STATION
 RAILWAY_STATION_ACCESS
 RENT_A_CAR_FACILITY
 RESTAURANT
 REST_AREA
 SHOP
 SHOPPING_CENTRE
 SPORT_OUTDOOR
 STADIUM
 SWE_METRO_ACCESS
 SWE_METRO_STOP
 THEATRE
 TOURIST_ATTRACTION
 TOURIST_INFORMATION_CENTRE
 UNDERGROUND_STATION
 UNIVERSITY
 ZOO&lt;/source&gt;

In addition to changing the categories, you may also change the text displayed to the user. This can be found under the function
&lt;source lang=&quot;javascript&quot;&gt;_createPoiScreen: function (aEvent) {//HERE HERE
...
this._aboutBtn = new nokia.aduno.medosui.Button(&quot;ButtonWithIcon&quot;, &quot;About&quot;);	
this._transportBtn = new nokia.aduno.medosui.Button(&quot;ButtonWithCheck&quot;, &quot;Transport&quot;);
this._shopsBtn = new nokia.aduno.medosui.Button(&quot;ButtonWithCheck&quot;, &quot;Shops&quot;);
this._educationBtn = new nokia.aduno.medosui.Button(&quot;ButtonWithCheck&quot;, &quot;Education&quot;);
this._parkingBtn = new nokia.aduno.medosui.Button(&quot;ButtonWithCheck&quot;, &quot;Parking&quot;);
this._activitesBtn = new nokia.aduno.medosui.Button(&quot;ButtonWithCheck&quot;, &quot;Activities&quot;);
this._allBtn = new nokia.aduno.medosui.Button(&quot;ButtonWithCheck&quot;, &quot;All&quot;);&lt;/source&gt;

=== 3D View ===

3D view has been re-added to Ovi Maps including the rotation wheel and 3D buildings. This feature was removed in a previous update from Nokia. With this feature, you can also stop the map from rotating at all and lock its direction to always north (or any other direction you choose). 

{Add part about changing the code to prevent rotation}

=== Voice Navigation and Espeak - OmVoiceServer ===

One of the main additions to Ovi Maps has been voice navigation and later on spoken street names. This was first done using a python server which would listen for requests from the Maps application and then play the corresponding sound. One drawback from this was the javascript inside the maps application had to convert turns and other route information into file names. This causes a slight problem when changing languages as not all languages contain the same file names for commands and turns. The most current version is omVoiceServer which parses the information from the maps application and looks up the sound files. This allows the maps application to only send the turn information, and the server to do the rest of the work. It also contains a GUI for changing of various options and settings, allowing languages to be changed during routeing and turning on and off spoken street names using eSpeak.

As the server has been changed to get the voice files itself, the code for maps application has also been changed, hence omVoiceServer requires a new index.html page to function. These can be found [http://talk.maemo.org/showthread.php?t=66985 here]. 

=== Saved POI results - OmVoiceServer ===

The latest version of omVoiceServer also allows for semi-offline routing to common destinations. When connected to the internet, a search may be made and the contents of the result can be saved for later use when there is no internet (or when you wish to save on data downloads). To enable POI offline searching you will need to add an empty ad-hoc network (as ovi maps still requires network connection to search, however due to a bug in maemo, you can connect to non-existant ad-hoc connections and trick ovi maps into thinking your connected).

To setup a no internet network, simply go to 

{Settings} &gt; {Internet Connections} &gt; {Connections} &gt; {New} &gt; {Next} &gt; Type a connection name, ie &quot;no internet&quot; &gt; {Next} &gt; Select {No} when asked to search for WLAN Networks &gt; Enter anything in the network name ie &quot;no internet&quot; &gt; untick {Network is hidden} &gt; Change Network Mode from infrastructure to {Ad hoc} &gt; {Next} &gt; {Finish}.

Then:
# With omvoiceserver running, and open the maps application and search for something. For example search for your home address (this step needs internet access).
# press Ctrl + backspace to get to the taskmanager and open omvoicesever. In the last tab under &quot;Last Search&quot; it'll have the details of your last search (in this example, your home address).
# Press the &quot;Save this search&quot; button and save the file under your cities folder in a new folder called &quot;poi&quot; (ie &lt;code&gt;/home/user/MyDocs/cities/poi&lt;/code&gt;). Save it with the filename &quot;poi-home&quot; (or any other name but make sure it begins with &quot;poi-&quot;.
# omvoiceserver will save the file there as an xml file (see it through the file manager)
# Connect to your ad-hoc network
# In maps (ctrl+backspace to shift screens) do a search for &quot;poi-home&quot;
# Watch as your result comes up even though theres no internet

[[Category:Power users]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Ovi Maps Offline Search</title>
    <id>4809</id>
    <revision>
      <id>43697</id>
      <timestamp>2011-05-31T09:49:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize, add &lt;code&gt;</comment>
      <text xml:space="preserve">This page aims at discussing methods and identifying ways to provide offline searching in Ovi Maps.


'''Proposal 1:'''


Currently Ovi Maps connects to a server with a search request, and the server responds back with an xml page of results.
eg:

http://where.s2g.gate5.de/nsp?q=google&amp;vi=where&amp;lat=-33.854451&amp;lon=151.072311&amp;of=0&amp;to=10&amp;la=en-GB,en-GB&amp;dv=oviMaps&amp;rid=qq4y1Y3M

This will search for &quot;google&quot; near a specific latitude and longitude and return back an xml page (url modified slightly so as to not put up personal address).

By modifying the &quot;&lt;code&gt;index.html&lt;/code&gt;&quot; code found in &quot;&lt;code&gt;/usr/share/nokia-maps/html&lt;/code&gt;&quot;, and changing the search url from &quot;&lt;code&gt;http://where.s2g.gate5.de/nsp?db=places&lt;/code&gt;&quot; to a personal server running at &quot;http://127.0.0.1:9999&quot; (eg: http://maemo.org/packages/view/omvoiceserver/), all search requests can be captured. The application then can either send the request on to the Nokia server and retrieve the xml, before passing it back to Ovi maps (ie it still uses the internet but only logs the search query), or it can perform its own search and create its own xml page (thereby not requiring the Nokia server, therefore offline search).

To create its own xml page, the application will need to read some form of database and retrieve a few items based on the search query.


'''Sub proposal 1:'''



If Nokia's own map data can be used to do the search, it would mean much more accurate results, less space consumed as there would be no need for an extra database, and less work required to make databases for all countries.

Currently its not understood how the database can be accessed to retrieve information required to make the xml page of results. The folder &quot;&lt;code&gt;/home/user/MyDocs/cities/diskcache/ClientIndex&lt;/code&gt;&quot; contains 3 files that appear to be databases of some sort, however its unknown what type, and therefore cannot be opened.

[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Ovi Store publishing</title>
    <id>3049</id>
    <revision>
      <id>38849</id>
      <timestamp>2010-09-21T20:37:12Z</timestamp>
      <contributor>
        <username>judychu</username>
        <id>3396</id>
      </contributor>
      <text xml:space="preserve">== Discussion ==
The statement above (No commercial applications allowed) is outdated. Ovi Store does accept commercial applications for Maemo (N900) 

The official place to discuss Ovi publishing related topics is in the [http://discussion.forum.nokia.com/forum/forumdisplay.php?f=202 related Forum Nokia discussion board].

* Discuss and vote the Brainstorm proposal: [http://maemo.org/community/brainstorm/view/open_source_software_distributed_via_store-ovi-com/ Open source software distributed via store.ovi.com]
* Other Talk threads:
** [http://talk.maemo.org/showthread.php?t=34783 Confirmed/CAUTION: N900 Ovi Apps require Corporation + $1M USD Corporate General Liability Insurace]
** [http://talk.maemo.org/showthread.php?t=34661 Left high-and-dry by Nokia/Ovi store :(]

== Questions ==
Post here your questions/answers.
* The UK sign-up form Ovi requests a VAT number, but is the Tax ID number acceptable for a company that is not required to be VAT registered? Several posts in the Ovi Publisher forum suggest that the Tax ID number is OK, but it would be useful to have an authoritative answer from Nokia.

* Would it be possible to publish to Ovi directly from Extras, for example with a 'Promote to Ovi' mechanism (akin to 'Promote to Extras') ?

* Is Ovi going to have separate policies (liability, waivers, insurance, etc) for OSS projects compared to the current, commercial entity oriented policies ?

* What are the Ovi QA/testing requirements for Maemo devices ?

* Will publishing of Free (libre) applications to Ovi require a registration fee ?


== QA issues with existing products ==

If you find Ovi Store content which has serious bugs or is not compatible with the N900 please post details below...

Casper27
* WikiHow survival kit uses 5.4mb qt-webkit library dependency which is not optified.Also it cannot be installed when emelfm2 utility is installed.

--&gt; Urho Konttori@ Nokia: PR1.2 will come with qt4.6 which will include qt-webkit. I would recomend developing your app on top of the extras-devel version of qt4.6 and releasing it after PR1.2 goes out. 

--&gt;jkessler for wikihow - I'm working on a number of packaging issues now.  Sorry for the inconvenience. I did optify the package prior to publishing.  I hope that PR1.2 has solved things.  I have some additional issues that I found out about today.

*Happy Birthday Sis Pt 35 - MMS in N900 ovi store. In case Nokia dont realise the N900 does not support MMS out of the box.

* Publisher MojosMobile offers DRM protected audio books (file name ending in &quot;dm&quot;) in a price range from €0,90 to €19,99. The Ovi Store team is aware that these files won't play on the N900 but they keep adding new ones. Why? [[User:ossi1967|ossi1967]]

[[Category:Packaging]]</text>
    </revision>
  </page>
  <page>
    <title>PR1.2 compulsory My Nokia subscription</title>
    <id>4246</id>
    <revision>
      <id>48390</id>
      <timestamp>2012-06-13T15:33:27Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[PR1.2 compulsory My Nokia subscription]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">The [[Nokia N900|N900]]'s [[Open development/Maemo roadmap/Fremantle|Maemo 5]] update [[Maemo 5/PR1.2|PR1.2]] contains a new feature called &quot;My Nokia&quot;. This is a text message (SMS) subscription service, which you can register for and receive information texts from Nokia periodically.

The implementation of the feature is rather controversial, and some consider it a privacy breach. This document describes the problem and suggests some ways to work around it.

See also the related [http://talk.maemo.org/showthread.php?t=53565 talk.maemo.org thread] and [https://bugs.maemo.org/show_bug.cgi?id=10366 bugs.maemo.org bug].

== The problem ==

In the PR1.2 update, Nokia included a feature to automatically register users with their MyNokia service.  However, they did not allow an opt-out so all devices upgraded to PR1.2 are automatically subscribed to My Nokia. This involves a text (SMS) being sent from the device to Nokia, which might be at the owner's expense, and then receiving texts from Nokia. In normal circumstances, it is not possible to use the upgraded operating system without agreeing to subscribe to My Nokia.

Although users can unsubscribe after the installation is completed, Nokia have not said what data is sent in the registration SMS, they make no promises to remove their data, nor do they refund any costs and it is possible that the some courts may consider that the legal agreement they presented during the process was in some way binding on the user.

== How to avoid the compulsory registration while upgrading to PR1.2 ==

To avoid the compulsory registration, i.e. to avoid the device sending a text to Nokia and breaching privacy, it is most important to stop the &lt;code&gt;/usr/bin/cherry&lt;/code&gt; app from running. It would also be nice to remove the My Nokia applet from Settings, but at least that should not subscribe you without asking.

=== Automatic method ===

Install the ''notmynokia'' package from the [[extras-devel]] repository.  As long as this package remains installed, it checks at every re-boot that the My Nokia registration program (cherry) will not run.

The package should be installed before the upgrade to PR1.2 takes place, and should remain installed afterwards.  The package is believed to be effective for &quot;over the air&quot; (OTA) upgrades and should also work if the software is re-flashed (but the package should be re-installed as soon as possible afterwards).  

However, if the eMMC is reflashed then protection is lost.  See the notes on the manual method below for possible workrounds in this case.

Note: if you later decide you want to allow the registration, simply remove the ''notmynokia'' package.

=== Manual method ===

As you will see from the technical analysis below, creating a file called &lt;code&gt;/home/user/.cherry_state&lt;/code&gt; should stop &lt;code&gt;/usr/bin/cherry&lt;/code&gt; from running. This file lives in the eMMC, so if your PR1.2 upgrade procedure doesn't involve flashing eMMC, then you can create that file before you upgrade and it should still be there after the upgrade. That means that you should avoid running &lt;code&gt;/usr/bin/cherry&lt;/code&gt;. To create that file, type:

 touch ~/.cherry_state

If, on your first boot into PR1.2, you see the Ny Nokia registration screen, see the &quot;Recovery&quot; section below.

If your upgrade method to PR1.2 involved flashing eMMC, this will mean that you cannot create the &lt;code&gt;/home/user/.cherry_state&lt;/code&gt; file before booting into PR1.2. See the section below for how to deal with that case.

=== Recovering ===

If the cherry process runs and displays the terms and conditions screen, it is not too late to avoid the registration as long as you have not clicked on the Done button to allow it to proceed.  Simply turn the phone off by holding down the power button for a few seconds, remove the SIM card, and turn the phone back on again.  Then, start X Terminal and type in the commands:

 touch ~/.cherry_state
 sync

Note: if you have Wi-Fi network connectivity, you can install ''notmynokia'' instead of typing those commands if you wish.

Then turn the phone off again, reinsert the SIM card and turn it back on.  The registration screen should not appear.  You may want to still install ''notmynokia'' as soon as possible to help protect you in case the file somehow gets deleted.

If you have clicked to allow the registration process to continue, it is probably too late to stop it.  Cherry will tell the CSD daemon, through CSD's libcsd-sms.so module, to send the SMS directly, bypassing Telepathy and RTCOMM so the SMS is not visible in your Messaging history. 

If the SMS cannot be sent (no balance on SIM card, no network coverage), the SMS may still be on the phone waiting to be sent.  You can check to see if there are any files in &lt;code&gt;/var/spool/sms/outgoing&lt;/code&gt; and check to see if &lt;code&gt;/var/spool/sms/regs_out.txt&lt;/code&gt; contains an entry. If you haven't sent any other SMSes, it's a safe bet that this message scheduled to go out is the one produced by Cherry. Removing the file in &lt;code&gt;/var/spool/sms/outgoing&lt;/code&gt; and the entry from regs_out.txt is safe, but make a backup just in case.

If the SMS has been sent, then all you can do is to use the Settings/My Nokia to unregister.  Note that, in this case, Nokia makes no promises to discard your registration data (see the Terms and Conditions for whatever promises it makes, if any).

== Technical analysis ==

In PR1.2, the My Nokia feature is enabled by the &quot;cherry&quot; package. The package is closed source, but it can still be analysed to an extent. The package can be downloaded on any N900 (even those that have not been upgraded to PR1.2). Downloading the package as described here does not install it, so is safe. For some reason, trying to wget the package from a Linux desktop machine doesn't work.

First you need to install &quot;wget&quot;, which doesn't appear in Application Manager but can be installed using:

 apt-get install wget

Then you can obtain the cherry package using:

 cd ~/MyDocs 
 wget --no-check-certificate https://qa9recEP:Pat2UGuP@downloads.maemo.nokia.com/fremantle/ssu/mr0/cherry_0.20-2+0m5_armel.deb

You should find the cherry_0.20-2+0m5_armel.deb in your MyDocs folder, which appears as N900 in File Manager, and can be accessed via USB and transferred to a desktop computer running Linux, where it is easier to analyse.

In that package, we see that it installs a script at &lt;code&gt;/etc/X11/Xsession.d/34cherry&lt;/code&gt; (which is run every time the device boots) containing:
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh

# Cherry checks for .cherry_state anyway, but testing here makes it faster
if [ ! -f /home/user/.cherry_state ] ; then
  . /etc/X11/Xsession.d/04b_start_matchbox
  /usr/bin/cherry 1&gt;&amp;2
  . /etc/X11/Xsession.d/06stop_matchbox
fi
&lt;/source&gt;
The package also installs a script at &lt;code&gt;/etc/osso-cud-scripts/cherry-clean.sh&lt;/code&gt; (which it is thought is run when the user does &quot;Restore Original Settings&quot; from the menu in the Settings app) containing:
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh
/bin/rm -f $HOME/.cherry_state
&lt;/source&gt;
From this it would seem that although the main &lt;code&gt;/usr/bin/cherry&lt;/code&gt; binary is closed source and difficult to analysis, it can be largely neutralised by creating a file &lt;code&gt;/home/user/.cherry_state&lt;/code&gt;.

The &lt;code&gt;/usr/bin/cherry&lt;/code&gt; program brings up the warning that is seen on first booting the device after PR1.2 is installed. There is also &lt;code&gt;/usr/lib/hildon-control-panel/libcpcherry.so&lt;/code&gt; and an associated &lt;code&gt;/usr/share/applications/hildon-control-panel/cpcherry.desktop&lt;/code&gt; file which puts the My Nokia icon into the Settings app.

The package also contains a ChangeLog, which makes interesting reading as to how the package developed over time.

The package is not optified, contributing to the rootfs compressed terms files of about 1.3MB.

== Nokia's response ==
Nokia [http://maemo.org/community/council/nokia_response_to_mynokia_subscription_in_pr1-2/ responded] to the [[Community Council]] on this:

&lt;blockquote&gt;
:“Nokia Corporation respects applicable laws and regulations and has carefully reviewed the content in your mail. The latest Nokia devices are no longer traditional mobile phones. Instead they are mobile computers that include sophisticated services such as messaging, games, as well as capability to access online services, download applications, take pictures and video as well as to process text. Such devices should be seen more as portable computers with phone functionality rather than traditional mobile phones mainly capable making a phone call. N900 belongs to this category of mobile computers.

:The first use of the latest software for Nokia mobile computers include functionality preparing the device for the service use on behalf of the consumer. In this connection Nokia also provides the consumer with the possibility to receive support messages to assist the consumer get the most out of the purchased Nokia mobile computer. These messages include tips on the capabilities and features of the Nokia devices and available services and features. We believe that these support messages are for the benefit of the consumer and help those consumers who are not yet fully aware of the possibilities their devices offer to make the most out of their purchase.

:Nokia informs the user about this support feature and the cost of the SMS on the cover of the sales box and in the Nokia device user interface through the terms and conditions. Any personal information (including any information in the SMS) needed for the service is dealt with in accordance with Nokia's privacy policy available at http://www.nokia.com/privacy-policy.

:We have not found any grounds to assume that the My Nokia service would in any way breach the UK Computer Misuse Act, which is 'An Act to make provision for securing computer material against unauthorised access or modification; and for connected purposes'. Please provide further information if you feel a more detailed analysis is needed.

:In case you wish to know what personal data we hold about you or you wish to replenish, rectify, anonymize or delete any incomplete, incorrect or outdated personal data, or you wish us to cease processing your personal data for the purpose of sending promotional materials or direct marketing or for the performance of market research or on other compelling legal grounds, you may, as appropriate and in accordance with applicable law, exercise such rights by contacting us through the contact points referred to in Nokia’s privacy policy.”&lt;/blockquote&gt;

[[Category:N900]]
[[Category:Users]]</text>
    </revision>
  </page>
  <page>
    <title>Package Categories</title>
    <id>1267</id>
    <revision>
      <id>7763</id>
      <timestamp>2008-10-16T18:13:06Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Package Categories]] moved to [[Task:Package categories]]: Moving to more appropriate page</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Package categories]]</text>
    </revision>
  </page>
  <page>
    <title>Package management</title>
    <id>3898</id>
    <revision>
      <id>32720</id>
      <timestamp>2010-04-14T21:57:55Z</timestamp>
      <contributor>
        <username>rooted</username>
        <id>2052</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">{{danger}}

It is good to know how to manage packages, because uninstalled ones can leave configuration files behind and there are also many pre-installed packages which you might not need.


=dpkg=

Install package from a local .deb file:

 dpkg -i

List all installed packages:

 dpkg -l

List all packages that are not in &quot;normal&quot; (ii ) state:

 dpkg -l | awk '$1 != &quot;ii&quot; {print $0}'

This also lists previously uninstalled packages which left config files behind (those will have &quot;rc&quot; state in the first column). You can purge (completely uninstall) them with:

 dpkg -P package

If you are unsure, you can check which files were left by a certain package with the command:

 dpkg -L package


Purging can give you the following errors (read the output!):


* ''dpkg - warning: while removing package, directory `/path/dir' not empty so not removed.''

It is ok if you manually delete those dirs/files if you know that they belong to the purged package (for example: don't delete /etc).


* ''dpkg: error processing package (--purge):''

An error occured while removing/purging the package, again resolve it manually.


=apt-get=

Install package from a repository:

 apt-get install package

Remove a package:

 apt-get remove

Purge a package:

 apt-get purge

Update package lists (checks for updates, downloads new list of packages which are in the repository...):

 apt-get update

Update packages:

 apt-get upgrade

It will display which ones are to be updated and it asks you if you want to proceed so this is also the command to show available updates.

This will empty local cache containing downloaded installation packages:

 apt-get clean

Remove unneeded dependencies (packages):

 apt-get autoremove


=Perform package maintenance=

Do not just blindly follow these instructions if you do not know what you are doing. They are more like guidance...


# Refresh the repositories (''apt-get update'' in command line).
# Update applications (''apt-get upgrade'' in command line).
# Empty local cache with ''apt-get clean''.
# Remove unneeded dependencies with ''apt-get autoremove''.
# List all packages that are not in &quot;normal&quot; (ii ) state with dpkg (script is above).
# Purge them (''dpkg -P package'').
# Check if they were any errors from purging and resolve them.

[[Category:Software]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Packaging</title>
    <id>1868</id>
    <revision>
      <id>48556</id>
      <timestamp>2012-06-20T08:13:44Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Packaging]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">== Creating Packages for Maemo ==

Since Maemo is based on the Debian operating system, creating packages for Maemo borrows a lot of tools and techniques from Debian.

=== Further reading ===

The following list of resources gives in-depth information on packaging in Debian and Maemo. These links largely discuss packaging Python apps but can be used for any programming language. 

*  [http://www.openismus.com/documents/linux/automake/automake Using automake and autoconf with C++]: A great beginner's tutorial on using autotools to create an easily packagable application 
*  [http://www.debian.org/doc/maint-guide/ Debian New Maintainers Guide]: The best place for information if you have never built a .deb before
*  [http://wiki.debian.org/Teams/PythonModulesTeam Debian's Python Modules Team]: definitive documentation for packaging Python modules for Debian
*  [http://python-modules.alioth.debian.org/python-modules-policy.htm Python Modules Policy]: Reference document.
* [http://showmedo.com/videos/video?name=linuxJensMakingDeb Creating debs on Ubuntu]: A great screencast and tutorial showing how to package a simple python application as a deb on Ubuntu!
* [https://wiki.ubuntu.com/PackagingGuide Ubuntu Packaging Guide]
* [[Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing | Deploying and distributing software on Maemo 5]]: Detailed documentation on packaging for Maemo, including how to ship your software afterwards
* [http://www.forum.nokia.com/Tools_Docs_and_Code/Documentation/Maemo.xhtml Forum Nokia developer documentation]: General developer documentation reference
* [[Port an existing Debian package]]
* [[Packaging a Qt application]] and how it differs from the packaging described here
* [[User:Jebba]] has created a [[User:Jebba/Package Building HOWTO | package building howto]] with details on every step

==== Checking Maemo Packages ====

Lintian dissects Debian packages and reports bugs and policy violations. 
It contains automated checks for many aspects of Debian policy as well as some checks for common errors. Unfortunately it does not check conformance to the additional Maemo policy.

Currently Maemo is creating [[Maemian]] to check its policy.

== A concrete example - hello ==

=== Prerequisites ===

For the purposes of our article, we will be packaging a simple [[Hildon]] hello-world application. This will be a standard source tarball using [[Documentation/Maemo 5 Developer Guide/GNU Build System#GNU Autotools|autotools]]. For further information, you can follow [http://www.openismus.com/documents/linux/automake/automake this detailed tutorial] on using Autotools for C++ projects.

You will need a working [[Documentation/Maemo 5 Final SDK Installation|Maemo 5 SDK]] and the &lt;code&gt;libhildon1-dev&lt;/code&gt; package, version 2.2 or greater, which can be installed in Scratchbox with the command:

 fakeroot apt-get install libhildon1-dev

==== hello.c ====

The only C file in our project is &lt;code&gt;hello.c&lt;/code&gt;:

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon/hildon.h&gt;

int main(int argc, char *argv[])
{
  GtkWidget *window;
  GtkWidget *label;

  hildon_gtk_init(&amp;argc, &amp;argv);

  window = hildon_window_new();
  label = gtk_label_new(&quot;Hello world!&quot;);

  g_signal_connect(G_OBJECT (window), &quot;destroy&quot;, G_CALLBACK (gtk_widget_destroy), NULL);
  gtk_container_add(GTK_CONTAINER(window), label);
  gtk_widget_show_all(window);

  gtk_main();
  return 0;
}
&lt;/source&gt;

==== Autotools ====

{{main|Documentation/Maemo 5 Developer Guide/GNU Build System}}

The rest of the project is a small number of files to allow us to make a standard &quot;&lt;code&gt;./configure &amp;&amp; make &amp;&amp; make install&lt;/code&gt;&quot; project with automake, aclocal and autoconf.

Using the autotools for packaging is quite simple for small projects. You need two files to define the structure of your project, &lt;code&gt;Makefile.am&lt;/code&gt; and &lt;code&gt;configure.ac&lt;/code&gt;.

&lt;code&gt;configure.ac&lt;/code&gt; is a file used by automake and autoconf to generate the configure script, define the version of the resulting .tar.gz and include the tests which we need to ensure the presence of the appropriate versions of dependencies. Since &lt;code&gt;hello.c&lt;/code&gt; is so simple, we only need to check for the standard C library and a C compiler, and for the Hildon library. The Hildon library check is done by &lt;code&gt;pkg-config&lt;/code&gt;, which makes it easy to check the library version, and get the right compiler and linker flags. The only output file generated by the configure script will be &lt;code&gt;Makefile&lt;/code&gt;, from the input file &lt;code&gt;Makefile.in&lt;/code&gt;, which is in turn generated from &lt;code&gt;Makefile.am&lt;/code&gt;

&lt;source lang=&quot;autoconf&quot;&gt;
AC_INIT([hello], [0.1])
AM_INIT_AUTOMAKE([foreign])
AC_PROG_CC
PKG_CHECK_MODULES([HILDON], [hildon-1 &gt;= 2.2])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
&lt;/source&gt;

&lt;code&gt;Makefile.am&lt;/code&gt; defines the source structure of your project, listing the files to be installed, the binaries and object files to be generated, and the relationship between the binaries and source files.

You can see that our &lt;code&gt;Makefile.am&lt;/code&gt; is very simple, defining one source file, and one binary file. The &quot;_SOURCES&quot; line must start with a binary name from &quot;bin_PROGRAMS&quot; to make the link between the source file and the executable. The &quot;_CPPFLAGS&quot; and &quot;_LDADD&quot; lines take the Hildon preprocessor and library flags that are provided by &lt;code&gt;pkg-config&lt;/code&gt; in &lt;code&gt;configure.ac&lt;/code&gt;.

 bin_PROGRAMS = hello
 hello_SOURCES = hello.c
 hello_CPPFLAGS = $(HILDON_CFLAGS)
 hello_LDADD = $(HILDON_LIBS)

Once we have these files, we simply need to initialise our project, defining its license, and generating all of the required files for automake to do its thing. We do this by running:

 autoreconf --force --install

The arguments to autoreconf copy required files to the project (including generic install instructions and a license).

Pay attention during the execution of autoreconf, the execution should be entirely silent if it runs correctly. If there are messages, read them and do what is required to address the issues.

Now to build your software, you have a standard configure script and can simply run

 ./configure
 make
 make install

and to build a distribution file, you have

 make dist

which will create a file ''&lt;code&gt;hello-0.1.tar.gz&lt;/code&gt;'', which you can use for the rest of this packaging tutorial.

=== Packaging a .deb ===

The easiest way to package a .deb file is to use Debian's build helpers.

Package your application as you would distribute it in a .tar.gz (when using autotools, this is done with &quot;&lt;code&gt;make distcheck&lt;/code&gt;&quot;). In our example, we uncompress &lt;code&gt;hello-0.1.tar.gz&lt;/code&gt;, and change the current directory to &lt;code&gt;hello-0.1&lt;/code&gt;.

 $ tar xfz hello-0.1.tar.gz
 $ cd hello-0.1

Then we run &lt;code&gt;dh_make&lt;/code&gt;, which initialises the Debian package management file structure (among other things):
 $ dh_make -e &lt;my email address&gt; -f ../hello-0.1.tar.gz -c GPL

You can of course choose a different licence for your package.

Answer the resulting questions - in this case, we are packaging a single binary.

We can now edit the files in the &lt;code&gt;debian/&lt;/code&gt; directory which has been created to their desired values, before packaging the software. In fact, we can delete many of these files. All of the files ending in “.ex” or “.EX” are example files, intended to help you package different types of software.

If you use a standard configure script, you do not need to modify any files except &lt;code&gt;debian/control&lt;/code&gt;, where the Hildon build-time dependency should be added. Change the &lt;code&gt;Build-Depends&lt;/code&gt; line to read (by adding &quot;&lt;code&gt;libhildon1&lt;/code&gt;&quot; at the end):

 Build-Depends: debhelper (&gt;= 5), autotools-dev, libhildon1 (&gt;= 2.2)

Before creating a .deb, you should set a changelog entry. .deb changelogs follow a special format, so rather than editing the files by hand, use the dch helper application. This will allow you to add what new features went into this application, give credit, and so on. It is an especially important file because it sets the version and revision of the source and binary packages. On saving, a syntax check is performed which ensures that the resulting file is OK. The file format is completely documented in the [http://www.debian.org/doc/maint-guide/ Debian packaging guide].

Finally, we generate a .deb from the source code using the command:
 dpkg-buildpackage -sa -rfakeroot -k&lt;my email address&gt;

You should now have several files created in the parent directory to where you unpacked the source code. I have;

 hello_0.1.orig.tar.gz
 hello_0.1-1_i386.deb
 hello_0.1-1.diff.gz
 hello_0.1-1.dsc
 hello_0.1-1_i386.changes

Now change the target architecture to &lt;code&gt;ARMEL&lt;/code&gt; and rebuild it, to generate &lt;code&gt;hello_0.1-1_arm.deb&lt;/code&gt;:

 sb-conf se FREMANTLE_ARMEL
 dpkg-buildpackage -sa -rfakeroot -k&lt;my email address&gt;

==== Additional information ====

===== Ignoring git metadata =====

If you use git then you may not want to include the entire git repo in your source bundle. With dpkg-source version 1.13.25 the -i option is not git-aware so you can do:

  dpkg-buildpackage -rfakeroot -sa  -i -I.git

===== Adding build-time dependencies =====

If your program uses another library, such as Hildon in the above example, then both the Debian package and the configure script must depend on the library. 
Otherwise, since the autobuilder only installs packages explicitly required to build your package, the build will fail.

Often, the Debian package has a different name to the pkg-config file, just like in the Hildon example. One way to check which package owns a pkg-config file is to use &lt;code&gt;dpkg-query&lt;/code&gt; on the pkg-config file, for example the &lt;code&gt;mafw&lt;/code&gt; pkg-config file (notice the extra &lt;code&gt;.pc&lt;/code&gt; file extension):
 dpkg-query --search mafw.pc
which looks through the installed packages and finds:
 libmafw0-dev: /usr/lib/pkgconfig/mafw.pc
Then you know that you must add &lt;code&gt;libmafw0-dev&lt;/code&gt; to the &lt;code&gt;Build-Depends&lt;/code&gt; line in &lt;code&gt;debian/control&lt;/code&gt; if you use the &lt;code&gt;mafw&lt;/code&gt; pkg-config file in &lt;code&gt;configure.ac&lt;/code&gt;.

===== Checking build-time dependencies =====

You may verify that your &lt;code&gt;Build-Depends&lt;/code&gt; field in debian/control is complete by running:

 dpkg-depcheck -m dpkg-buildpackage -rfakeroot -b

in the source tree. (You will need to &lt;code&gt;fakeroot apt-get install devscripts&lt;/code&gt; for this to work).

=== Adding an icon and desktop file ===

To ensure that your package shows up in the application menu, you will need to install an icon and a .desktop file with your package.

The icon can be in a number of formats. To keep things simple, you can use [[:Image:Hello.png | this 48x48 .png]] as your icon for now.

The format of .desktop files is specified by the [http://standards.freedesktop.org/desktop-entry-spec/1.0/ freedesktop.org desktop entry spec], with a number of [[Desktop file format | Maemo specific extensions]]. The simplest possible .desktop file for Maemo contains a &quot;Desktop Entry&quot; group containing an indicator that it refers to an application, the application name, the icon to use, and a path to the executable which will launch the application. Other standard keys can be found [http://standards.freedesktop.org/desktop-entry-spec/1.0/ar01s05.html in the spec].

&lt;pre&gt;
[Desktop Entry]
Type=Application
Name=Hello!
Icon=hello
Exec=/usr/bin/hello
&lt;/pre&gt;

Pixmaps referenced without an absolute path in the desktop file can be installed in a number of locations, specified in the [http://freedesktop.org/wiki/Specifications/icon-theme-spec freedesktop.org icon theme spec]. The simplest place to put the icon is in &lt;code&gt;/usr/share/icons&lt;/code&gt;. The Icon entry above will thus match &lt;code&gt;/usr/share/icons/hello.png&lt;/code&gt;.

Once you have created these files in your source directory, you will need to add the following to &lt;code&gt;Makefile.am&lt;/code&gt; to ensure that they are distributed in the tarball (created during &lt;code&gt;make dist&lt;/code&gt;) installed in the right place, and packaged correctly, and you should re-run &lt;code&gt;autoreconf&lt;/code&gt;, &lt;code&gt;configure&lt;/code&gt;, &lt;code&gt;make dist&lt;/code&gt; and &lt;code&gt;dpkg_buildpackage&lt;/code&gt; once you have done so.

&lt;source lang=&quot;make&quot;&gt;
icondir = $(datadir)/icons
dist_icon_DATA = hello.png

desktopdir = $(datadir)/applications/hildon
dist_desktop_DATA = hello.desktop
&lt;/source&gt;

To make the package installable using Hildon Application Manager (which will get launched when you select the package), you should follow the [[#Maemo-specific packaging information]] below. In particular, you must set the &quot;Section&quot; to one of the valid sections below in the &quot;&lt;code&gt;debian/control&lt;/code&gt;&quot; file.

=== Testing your package ===

The first place you can test your app is in Scratchbox. Start Xephyr and the Maemo GUI as described in [[Documentation/Maemo 5 Final SDK Installation | the Maemo 5 SDK instructions]], then run your application by hand from within Scratchbox.

Once you have created .deb packages of your application for x86 and armel, you can also test the installation process and test your application on your N900.

To test the installation on Xephyr, you can either install it from the command line with &lt;pre&gt;dpkg -i hello_0.1-1_i386.deb&lt;/pre&gt;, or copy the i386 .deb files to the &lt;pre&gt;/home/&lt;username&gt;/MyDocs&lt;/pre&gt; directory, and click on it to install it.

To test on your device, copy the armel .deb file to the .documents directory on your device, and install it by selecting it in the file manager. You will need to ensure that the OS version on your device is compatible with the development environment in your Scratchbox.

Once the package is installed, you will be able to launch it directly from the command line in the [[terminal|X terminal]] application. To get the application to appear in the application list, you will need to include an icon and desktop file in the package as described in [[/Guidelines | the packaging policy]].

=== Uploading to extras-devel ===

{{main|Uploading to Extras-devel}}

== Maemo-specific packaging information ==

=== Packaging policy ===

{{main|Packaging/Guidelines}}

Maemo packages follow the Debian Policy, but there are some items where Maemo is more strict, since it is an embedded distribution, and other areas where it is more relaxed, since it supports only one user at a time on a single target device and UI framework. In other areas, the policy differs from Debian because we have different objectives and maintainers, and because we have provided different infrastructure for packaging and distributing software.

Most of the specifics for Maemo packaging are outlined in the [[/Guidelines|Maemo packaging guidelines]].

=== Sections ===

For applications to be installable throughh Hildon Application Manager, the &quot;Secton:&quot; field in the &lt;code&gt;debian/control&lt;/code&gt; file must conform to certain naming conventions.

The conformant section names are [[Packaging/Guidelines#Sections|outlined in the packaging guidelines]], and are listed below.

{| class=&quot;wikitable sortable&quot;
|+ Maemo section names
|-
! Key
! class=&quot;unsortable&quot; | Example English i18n
! class=&quot;unsortable&quot; | Example apps
|-
| &lt;code&gt;user/desktop&lt;/code&gt;
| Desktop
| Home, statusbar and taskbar applets
|-
| &lt;code&gt;user/development&lt;/code&gt;
| Programming
| py2deb
|-
| &lt;code&gt;user/education&lt;/code&gt;
| Education
| Flashcard apps
|-
| &lt;code&gt;user/games&lt;/code&gt;
| Games
| Doom, Duke Nukem 3D
|-
| &lt;code&gt;user/graphics&lt;/code&gt;
| Graphics
| Photo apps, GIMP, Inkscape, fonts
|-
| &lt;code&gt;user/multimedia&lt;/code&gt;
| Multimedia ''or'' Sound &amp; Video
| Canola, mplayer, Kagu, UKMP, MediaBox
|-
| &lt;code&gt;user/navigation&lt;/code&gt;
| (Location &amp;) Navigation
| maemo-mapper, Navit
|-
| &lt;code&gt;user/network&lt;/code&gt;
| Internet &amp; Networking
| Web browsers, Samba clients, OpenAFS, Transmission
|-
| &lt;code&gt;user/office&lt;/code&gt;
| Office
| GPE, Claws, AbiWord
|-
| &lt;code&gt;user/science&lt;/code&gt;
| Science
| gnuplot, Octave
|-
| &lt;code&gt;user/system&lt;/code&gt;
| System
| rotation-support, enhanced kernels, themes
|-
| &lt;code&gt;user/utilities&lt;/code&gt;
| Utilities ''or'' Accessories
| Calculators, terminals, text editors
|}

If the package's section starts &quot;user/&quot;, but is not any of the above, the ''Application Manager'' forces them into an &quot;Other&quot; section.

=== Desktop files ===

{{main|Desktop file format}}

Desktop files are used to launch applications from the main application menu. Their format is standardised and documented in the [http://standards.freedesktop.org/desktop-entry-spec/1.0/ freedesktop.org desktop file spec]. The Maemo application menu uses the same desktop files, but looks for them to a slightly different location; &lt;code&gt;/usr/share/applications/hildon&lt;/code&gt; instead of &lt;code&gt;/usr/share/applications&lt;/code&gt;.

The location of the directory in which to install .desktop files can also be obtained using &lt;code&gt;pkg-config&lt;/code&gt;:

 pkg-config --variable=desktopentrydir osso-af-settings

The returned value can be used in a Makefile to install the desktop file to the correct location.

There is some official documentation on [[Documentation/Maemo_5_Developer_Guide/Application_Development/Writing_a_new_maemo_application#Adding_application_to_menu|desktop files for Maemo applications]].

=== Maemo-specific fields ===

There are a number of Maemo-specific Debian packaging fields that are handled by Application manager. The Application manager documentation [http://hildon-app-mgr.garage.maemo.org/packaging-stable.html outlines] them.

==== Displaying an icon in the Application Manager next to your package ====

Displaying an icon in the Application Manager next to your package makes it look pretty and makes your package stand out, and it is not that hard to do.

&lt;ol&gt;
&lt;li&gt;
Make an image that is '''48×48''' pixels. The image can be saved in any format that is supported by &lt;code&gt;GdkPixbufLoader&lt;/code&gt; on Maemo, but PNG is commonly used.
&lt;/li&gt;
&lt;li&gt;
base64 encode the image. This can be done in many ways, depending on the platform, but assuming you are in Scratchbox:
&lt;pre&gt;
fakeroot apt-get update
fakeroot apt-get install sharutils
uuencode -m &lt;name of 48×48 image&gt; &lt;name of 48×48 image&gt; &gt; &lt;name of 48×48 image&gt;.base64
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Add the field &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt; to your &lt;code&gt;debian/control&lt;/code&gt; (in Maemo4 the size of the icons was 26×26 pixels, hence the name of the field, '''which has not changed''' in Maemo 5)
&lt;/li&gt;
&lt;li&gt;
Open the base64 version of your image and copy from the line under ''begin-base64 644 &lt;name of 48×48 image&gt;'' to the line above the ''===''
&lt;/li&gt;
&lt;li&gt;
Add this to the &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt; field
&lt;/li&gt;
&lt;li&gt;
Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image:
&lt;pre&gt;
uuencode -m &lt;name of 48×48 image&gt; &lt;name of 48×48 image&gt; | sed -e s,^,\ ,  &gt; &lt;name of 48×48 image&gt;.base64
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

Here is an example of a properly formatted Maemo-Icon-26: (of wrong image size)
&lt;pre&gt;
Description: Chess...
XB-Maemo-Icon-26: 
 iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABGdBTUEAAK/INwWK6QAAABl0
 RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALxSURBVHja3FZNTBNREP669J/S
 XYxtKRWl1JOSFBIPhkitCQeNiaKBmzdj9Ggk0ZOBxHDWixcTjV6MF+WiIB40YEyMBMGYEqQK
 tLS2lG7pdre0pF3WtxslgJRuD2J0kpfdTN7O976Z782sRpIk7IZR2C2TGW1cv8xaY5WuXLy8
 iW5XV5fk8/kkr9e7ya/T6SSNRiOViikvbbmDDD590SusZBGYDiDwJbDud7vdvYIgIJfLYXV1
 tSwhrQrSfRX6/26N/j+gkjW6ce06HE4HGEctGuj9oEwUzFYz5ubmEA6HQVEUisUi8vn8b4rd
 zjRbNxCZrr+3t7XTzjrnvMfdxMi7xj6OIRaPIbWcQjabVdRWKBTkrX4SZ2SjvCtKXf+tkxxD
 M5MetwfHj/lwwueHy+WCVqvdehdHKq7R6JvbpfNMAGiGhs1mg9ls3sS+4hodbDqCwef9mA9P
 7vhhVVWV3BGUOomiaCSufEWMxNwimlweMFYbpoMfyp70J6t8xanLZgWs8Ak07N0Hau0P3qOs
 wIHnl5FJx2E1WlUFuXrzIS713KusRplMCoLAgl2O4N34ODQ4VRaot6cbUzMRNNQ/w/uJWXWM
 eH5JARkYHsLQMIe1NZEpB7Sn1uKFhkL3maO4cL5NHVAo+hkPnrzEq2HqQIf/3ICzvr7FXmeH
 3qBXlslkgtFoVBS3YfbcKRRFfJpagE6vUwd0//FbjI7mkcvnGoNfg51ORx3sNju+hWYxMxsk
 jHlF2jJgdXU1DAaDrDx/kQAVRREJlldXo8kJoPlQ8wHSevosFgs5MmE5H0IingDP8eAzPAQC
 tkJakDz05Hsks+poPzwg6+Luo9chVb2O3Hilv7V6W5nO02cVX3wxjsj3CMKRBUSjUcQWY0iy
 SQVoi6XJaiQxubKpI02yj2xk6BoaBr0BqXRKCZpYSiCZlIXCguM4pWtvY0ypyUtt87PSIj/t
 pJ/JICzLKiBLySTYVArpdFrp3DuMhRZVqfvnJ+wPAQYA1hdr5EDqltYAAAAASUVORK5CYII=
&lt;/pre&gt;

Please note that if you are packaging a command-line only program that can be executed by the user, you should use the [[User:Tanner#CLI_icon|CLI icon]] only.

==== Bugtracker location ====

&lt;del&gt;As a requirement&lt;/del&gt;[http://wiki.maemo.org/Extras-testing/QA_checklist#Blockers] Is strongly recommended for your package being promoted from [[Extras-testing]] to [[Extras]], your &lt;code&gt;debian/control&lt;/code&gt; file must have a link to a bugtracker, which is visible in the [http://maemo.org/packages/ maemo.org packages interface]. It is possible to [[Bugs:Adding Extra products|request a component at bugs.maemo.org]] or use a [[Getting_started_with_Maemo_Garage#Trackers_and_tasks|Garage project bugtracker]], or even, for simple packages, an email address .

Add the field ‘XSBC-Bugtracker’ to your &lt;code&gt;debian/control&lt;/code&gt;, for example:
 XSBC-Bugtracker: https://bugs.maemo.org/enter_bug.cgi?product=mypackage

Alternatively for e-mail addresses, you can use the following format:
 XSBC-Bugtracker: mailto:yourname@example.com

==== Pretty names ====

A package can specify a pretty name for itself. This name is displayed in the Application manager UI instead of the real package name.

The pretty name is specified with the '&lt;code&gt;XSBC-Maemo-Display-Name&lt;/code&gt;' field in your &lt;code&gt;debian/control&lt;/code&gt; file, for example:
 XSBC-Maemo-Display-Name: Hello, world!

==== Maemo revision string ====

If an upstream package is re-packaged or modified for Maemo, the Maemo revision string should be appended to the upstream revision, in the &lt;code&gt;debian/changelog&lt;/code&gt; file. So if in Debian the package name was something like &quot;Myapp-0.4-2&quot; in maemo this package will be called &quot;Myapp-0.4-2maemo0&quot;. The number after the &quot;maemo&quot; string is a progressive number.

==== Maemo upgrade description ====

Tell users what changed in the update:
 XB-Maemo-Upgrade-Description: Formatted like &quot;Description&quot;. 
  Will be displayed if user upgrades to new version and clicks
  on &quot;Details&quot;.
  .
  Human-readable and translatable.
As with all Maemo-specific fields, the &quot;XB-&quot; prefix is needed so the field will remain in the binary package.

==== Translations of text fields ====

The following fields can be translated to the end user's local language: Maemo-Display-Name, Description and Maemo-Upgrade-Description. It is strongly recommended to make use of this possibility so that end users understand what the application does for them while browsing through the Application Manager.

The translation is done by adding a suffix like &quot;-de_DE&quot; to the respective field name, where &quot;de_DE&quot; is the locale the translated text is for. For example, if LC_MESSAGES equals de_DE, the Application Manager first tries &quot;Description-de_DE&quot; to find the description of a package and then falls back to &quot;Description&quot;.

Here's an example:
 Description: Chess...
 XB-Maemo-Display-Name: My package name
 XB-Maemo-Upgrade-Description: Formatted like &quot;Description&quot;. 
 XB-Description-de_DE: Schach...
 XB-Maemo-Display-Name-de_DE: Mein Packetname
 XB-Maemo-Upgrade-Description-de_DE: Formatiert wie &quot;Description&quot;. 
Note how &quot;Description&quot; becomes &quot;XB-Description-xx_YY&quot; when a locale suffix is added. This is because it's not a standard Debian field any longer.

=== Debhelper 7 ===

Since the Autobuilder's [http://www.gossamer-threads.com/lists/maemo/developers/60704 use] of the Squeeze devkit, debhelper 7 is supported natively by it.

Follow the steps on that link to also make your FREMANTLE_* target use the Squeeze devkit.

Note: dh_make doesn't seem to be provided by the Squeeze devkit, so you'll have to run it outside of Scratchbox to get a debian/ folder based on debhelper 7.

----

A backport of Debhelper 7 for Fremantle is available in extras-devel. 

 $ fakeroot apt-get install debhelper7 

It works transparently and can coexist with debhelper 5 in the SDK. It even works on the autobuilder, if the package specifies the correct build-dependency of &lt;code&gt;debhelper7&lt;/code&gt;. The following lines in &lt;code&gt;debian/rules&lt;/code&gt; are necessary to use the new debhelper:

 PATH:=/usr/bin/dh7:/usr/bin:$(PATH)
 export PATH
 SBOX_REDIRECT_IGNORE=/usr/bin/perl
 export SBOX_REDIRECT_IGNORE

In debian/control change:

 Build-Depends: debhelper (&gt;= 7) [...]

to

 Build-Depends: debhelper'''7''' (&gt;= 7) [...]

Further information about the updated debhelper is available at [[User:Tanner#debhelper7]].

If you also need a more recent [http://build-common.alioth.debian.org/ CDBS], then use the package [http://maemo.org/packages/view/cdbs-dh7/ cdbs-dh7], which conflicts with the standard CDBS and does not work on autobuilder yet.

Alternatively, you can try to use debhelper 5. Debian packages that require level 7 need some changes, for example:
* debian/compat: 7 -&gt; 5
* debian/control: Build-Depends: debhelper (&gt;= 7) -&gt; debhelper (&gt;= 5)
* Possibly, comment out a few dh_* calls from debian/rules, which might not exist on level 5

Things might get complex if the packaging already uses some new features of level 7, like CDBS-style helper rules. In such cases, looking at versions of packages written prior to the compatibility level upgrade might help doing the downgrade (and most Debian packages are kept in public SCMs like svn.debian.org).

=== Ovi Store publishing ===

{{main|Ovi Store publishing}}

[[Category:Packaging]]</text>
    </revision>
  </page>
  <page>
    <title>Packaging</title>
    <id>1868</id>
    <revision>
      <id>48556</id>
      <timestamp>2012-06-20T08:13:44Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Packaging]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">== Creating Packages for Maemo ==

Since Maemo is based on the Debian operating system, creating packages for Maemo borrows a lot of tools and techniques from Debian.

=== Further reading ===

The following list of resources gives in-depth information on packaging in Debian and Maemo. These links largely discuss packaging Python apps but can be used for any programming language. 

*  [http://www.openismus.com/documents/linux/automake/automake Using automake and autoconf with C++]: A great beginner's tutorial on using autotools to create an easily packagable application 
*  [http://www.debian.org/doc/maint-guide/ Debian New Maintainers Guide]: The best place for information if you have never built a .deb before
*  [http://wiki.debian.org/Teams/PythonModulesTeam Debian's Python Modules Team]: definitive documentation for packaging Python modules for Debian
*  [http://python-modules.alioth.debian.org/python-modules-policy.htm Python Modules Policy]: Reference document.
* [http://showmedo.com/videos/video?name=linuxJensMakingDeb Creating debs on Ubuntu]: A great screencast and tutorial showing how to package a simple python application as a deb on Ubuntu!
* [https://wiki.ubuntu.com/PackagingGuide Ubuntu Packaging Guide]
* [[Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing | Deploying and distributing software on Maemo 5]]: Detailed documentation on packaging for Maemo, including how to ship your software afterwards
* [http://www.forum.nokia.com/Tools_Docs_and_Code/Documentation/Maemo.xhtml Forum Nokia developer documentation]: General developer documentation reference
* [[Port an existing Debian package]]
* [[Packaging a Qt application]] and how it differs from the packaging described here
* [[User:Jebba]] has created a [[User:Jebba/Package Building HOWTO | package building howto]] with details on every step

==== Checking Maemo Packages ====

Lintian dissects Debian packages and reports bugs and policy violations. 
It contains automated checks for many aspects of Debian policy as well as some checks for common errors. Unfortunately it does not check conformance to the additional Maemo policy.

Currently Maemo is creating [[Maemian]] to check its policy.

== A concrete example - hello ==

=== Prerequisites ===

For the purposes of our article, we will be packaging a simple [[Hildon]] hello-world application. This will be a standard source tarball using [[Documentation/Maemo 5 Developer Guide/GNU Build System#GNU Autotools|autotools]]. For further information, you can follow [http://www.openismus.com/documents/linux/automake/automake this detailed tutorial] on using Autotools for C++ projects.

You will need a working [[Documentation/Maemo 5 Final SDK Installation|Maemo 5 SDK]] and the &lt;code&gt;libhildon1-dev&lt;/code&gt; package, version 2.2 or greater, which can be installed in Scratchbox with the command:

 fakeroot apt-get install libhildon1-dev

==== hello.c ====

The only C file in our project is &lt;code&gt;hello.c&lt;/code&gt;:

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon/hildon.h&gt;

int main(int argc, char *argv[])
{
  GtkWidget *window;
  GtkWidget *label;

  hildon_gtk_init(&amp;argc, &amp;argv);

  window = hildon_window_new();
  label = gtk_label_new(&quot;Hello world!&quot;);

  g_signal_connect(G_OBJECT (window), &quot;destroy&quot;, G_CALLBACK (gtk_widget_destroy), NULL);
  gtk_container_add(GTK_CONTAINER(window), label);
  gtk_widget_show_all(window);

  gtk_main();
  return 0;
}
&lt;/source&gt;

==== Autotools ====

{{main|Documentation/Maemo 5 Developer Guide/GNU Build System}}

The rest of the project is a small number of files to allow us to make a standard &quot;&lt;code&gt;./configure &amp;&amp; make &amp;&amp; make install&lt;/code&gt;&quot; project with automake, aclocal and autoconf.

Using the autotools for packaging is quite simple for small projects. You need two files to define the structure of your project, &lt;code&gt;Makefile.am&lt;/code&gt; and &lt;code&gt;configure.ac&lt;/code&gt;.

&lt;code&gt;configure.ac&lt;/code&gt; is a file used by automake and autoconf to generate the configure script, define the version of the resulting .tar.gz and include the tests which we need to ensure the presence of the appropriate versions of dependencies. Since &lt;code&gt;hello.c&lt;/code&gt; is so simple, we only need to check for the standard C library and a C compiler, and for the Hildon library. The Hildon library check is done by &lt;code&gt;pkg-config&lt;/code&gt;, which makes it easy to check the library version, and get the right compiler and linker flags. The only output file generated by the configure script will be &lt;code&gt;Makefile&lt;/code&gt;, from the input file &lt;code&gt;Makefile.in&lt;/code&gt;, which is in turn generated from &lt;code&gt;Makefile.am&lt;/code&gt;

&lt;source lang=&quot;autoconf&quot;&gt;
AC_INIT([hello], [0.1])
AM_INIT_AUTOMAKE([foreign])
AC_PROG_CC
PKG_CHECK_MODULES([HILDON], [hildon-1 &gt;= 2.2])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
&lt;/source&gt;

&lt;code&gt;Makefile.am&lt;/code&gt; defines the source structure of your project, listing the files to be installed, the binaries and object files to be generated, and the relationship between the binaries and source files.

You can see that our &lt;code&gt;Makefile.am&lt;/code&gt; is very simple, defining one source file, and one binary file. The &quot;_SOURCES&quot; line must start with a binary name from &quot;bin_PROGRAMS&quot; to make the link between the source file and the executable. The &quot;_CPPFLAGS&quot; and &quot;_LDADD&quot; lines take the Hildon preprocessor and library flags that are provided by &lt;code&gt;pkg-config&lt;/code&gt; in &lt;code&gt;configure.ac&lt;/code&gt;.

 bin_PROGRAMS = hello
 hello_SOURCES = hello.c
 hello_CPPFLAGS = $(HILDON_CFLAGS)
 hello_LDADD = $(HILDON_LIBS)

Once we have these files, we simply need to initialise our project, defining its license, and generating all of the required files for automake to do its thing. We do this by running:

 autoreconf --force --install

The arguments to autoreconf copy required files to the project (including generic install instructions and a license).

Pay attention during the execution of autoreconf, the execution should be entirely silent if it runs correctly. If there are messages, read them and do what is required to address the issues.

Now to build your software, you have a standard configure script and can simply run

 ./configure
 make
 make install

and to build a distribution file, you have

 make dist

which will create a file ''&lt;code&gt;hello-0.1.tar.gz&lt;/code&gt;'', which you can use for the rest of this packaging tutorial.

=== Packaging a .deb ===

The easiest way to package a .deb file is to use Debian's build helpers.

Package your application as you would distribute it in a .tar.gz (when using autotools, this is done with &quot;&lt;code&gt;make distcheck&lt;/code&gt;&quot;). In our example, we uncompress &lt;code&gt;hello-0.1.tar.gz&lt;/code&gt;, and change the current directory to &lt;code&gt;hello-0.1&lt;/code&gt;.

 $ tar xfz hello-0.1.tar.gz
 $ cd hello-0.1

Then we run &lt;code&gt;dh_make&lt;/code&gt;, which initialises the Debian package management file structure (among other things):
 $ dh_make -e &lt;my email address&gt; -f ../hello-0.1.tar.gz -c GPL

You can of course choose a different licence for your package.

Answer the resulting questions - in this case, we are packaging a single binary.

We can now edit the files in the &lt;code&gt;debian/&lt;/code&gt; directory which has been created to their desired values, before packaging the software. In fact, we can delete many of these files. All of the files ending in “.ex” or “.EX” are example files, intended to help you package different types of software.

If you use a standard configure script, you do not need to modify any files except &lt;code&gt;debian/control&lt;/code&gt;, where the Hildon build-time dependency should be added. Change the &lt;code&gt;Build-Depends&lt;/code&gt; line to read (by adding &quot;&lt;code&gt;libhildon1&lt;/code&gt;&quot; at the end):

 Build-Depends: debhelper (&gt;= 5), autotools-dev, libhildon1 (&gt;= 2.2)

Before creating a .deb, you should set a changelog entry. .deb changelogs follow a special format, so rather than editing the files by hand, use the dch helper application. This will allow you to add what new features went into this application, give credit, and so on. It is an especially important file because it sets the version and revision of the source and binary packages. On saving, a syntax check is performed which ensures that the resulting file is OK. The file format is completely documented in the [http://www.debian.org/doc/maint-guide/ Debian packaging guide].

Finally, we generate a .deb from the source code using the command:
 dpkg-buildpackage -sa -rfakeroot -k&lt;my email address&gt;

You should now have several files created in the parent directory to where you unpacked the source code. I have;

 hello_0.1.orig.tar.gz
 hello_0.1-1_i386.deb
 hello_0.1-1.diff.gz
 hello_0.1-1.dsc
 hello_0.1-1_i386.changes

Now change the target architecture to &lt;code&gt;ARMEL&lt;/code&gt; and rebuild it, to generate &lt;code&gt;hello_0.1-1_arm.deb&lt;/code&gt;:

 sb-conf se FREMANTLE_ARMEL
 dpkg-buildpackage -sa -rfakeroot -k&lt;my email address&gt;

==== Additional information ====

===== Ignoring git metadata =====

If you use git then you may not want to include the entire git repo in your source bundle. With dpkg-source version 1.13.25 the -i option is not git-aware so you can do:

  dpkg-buildpackage -rfakeroot -sa  -i -I.git

===== Adding build-time dependencies =====

If your program uses another library, such as Hildon in the above example, then both the Debian package and the configure script must depend on the library. 
Otherwise, since the autobuilder only installs packages explicitly required to build your package, the build will fail.

Often, the Debian package has a different name to the pkg-config file, just like in the Hildon example. One way to check which package owns a pkg-config file is to use &lt;code&gt;dpkg-query&lt;/code&gt; on the pkg-config file, for example the &lt;code&gt;mafw&lt;/code&gt; pkg-config file (notice the extra &lt;code&gt;.pc&lt;/code&gt; file extension):
 dpkg-query --search mafw.pc
which looks through the installed packages and finds:
 libmafw0-dev: /usr/lib/pkgconfig/mafw.pc
Then you know that you must add &lt;code&gt;libmafw0-dev&lt;/code&gt; to the &lt;code&gt;Build-Depends&lt;/code&gt; line in &lt;code&gt;debian/control&lt;/code&gt; if you use the &lt;code&gt;mafw&lt;/code&gt; pkg-config file in &lt;code&gt;configure.ac&lt;/code&gt;.

===== Checking build-time dependencies =====

You may verify that your &lt;code&gt;Build-Depends&lt;/code&gt; field in debian/control is complete by running:

 dpkg-depcheck -m dpkg-buildpackage -rfakeroot -b

in the source tree. (You will need to &lt;code&gt;fakeroot apt-get install devscripts&lt;/code&gt; for this to work).

=== Adding an icon and desktop file ===

To ensure that your package shows up in the application menu, you will need to install an icon and a .desktop file with your package.

The icon can be in a number of formats. To keep things simple, you can use [[:Image:Hello.png | this 48x48 .png]] as your icon for now.

The format of .desktop files is specified by the [http://standards.freedesktop.org/desktop-entry-spec/1.0/ freedesktop.org desktop entry spec], with a number of [[Desktop file format | Maemo specific extensions]]. The simplest possible .desktop file for Maemo contains a &quot;Desktop Entry&quot; group containing an indicator that it refers to an application, the application name, the icon to use, and a path to the executable which will launch the application. Other standard keys can be found [http://standards.freedesktop.org/desktop-entry-spec/1.0/ar01s05.html in the spec].

&lt;pre&gt;
[Desktop Entry]
Type=Application
Name=Hello!
Icon=hello
Exec=/usr/bin/hello
&lt;/pre&gt;

Pixmaps referenced without an absolute path in the desktop file can be installed in a number of locations, specified in the [http://freedesktop.org/wiki/Specifications/icon-theme-spec freedesktop.org icon theme spec]. The simplest place to put the icon is in &lt;code&gt;/usr/share/icons&lt;/code&gt;. The Icon entry above will thus match &lt;code&gt;/usr/share/icons/hello.png&lt;/code&gt;.

Once you have created these files in your source directory, you will need to add the following to &lt;code&gt;Makefile.am&lt;/code&gt; to ensure that they are distributed in the tarball (created during &lt;code&gt;make dist&lt;/code&gt;) installed in the right place, and packaged correctly, and you should re-run &lt;code&gt;autoreconf&lt;/code&gt;, &lt;code&gt;configure&lt;/code&gt;, &lt;code&gt;make dist&lt;/code&gt; and &lt;code&gt;dpkg_buildpackage&lt;/code&gt; once you have done so.

&lt;source lang=&quot;make&quot;&gt;
icondir = $(datadir)/icons
dist_icon_DATA = hello.png

desktopdir = $(datadir)/applications/hildon
dist_desktop_DATA = hello.desktop
&lt;/source&gt;

To make the package installable using Hildon Application Manager (which will get launched when you select the package), you should follow the [[#Maemo-specific packaging information]] below. In particular, you must set the &quot;Section&quot; to one of the valid sections below in the &quot;&lt;code&gt;debian/control&lt;/code&gt;&quot; file.

=== Testing your package ===

The first place you can test your app is in Scratchbox. Start Xephyr and the Maemo GUI as described in [[Documentation/Maemo 5 Final SDK Installation | the Maemo 5 SDK instructions]], then run your application by hand from within Scratchbox.

Once you have created .deb packages of your application for x86 and armel, you can also test the installation process and test your application on your N900.

To test the installation on Xephyr, you can either install it from the command line with &lt;pre&gt;dpkg -i hello_0.1-1_i386.deb&lt;/pre&gt;, or copy the i386 .deb files to the &lt;pre&gt;/home/&lt;username&gt;/MyDocs&lt;/pre&gt; directory, and click on it to install it.

To test on your device, copy the armel .deb file to the .documents directory on your device, and install it by selecting it in the file manager. You will need to ensure that the OS version on your device is compatible with the development environment in your Scratchbox.

Once the package is installed, you will be able to launch it directly from the command line in the [[terminal|X terminal]] application. To get the application to appear in the application list, you will need to include an icon and desktop file in the package as described in [[/Guidelines | the packaging policy]].

=== Uploading to extras-devel ===

{{main|Uploading to Extras-devel}}

== Maemo-specific packaging information ==

=== Packaging policy ===

{{main|Packaging/Guidelines}}

Maemo packages follow the Debian Policy, but there are some items where Maemo is more strict, since it is an embedded distribution, and other areas where it is more relaxed, since it supports only one user at a time on a single target device and UI framework. In other areas, the policy differs from Debian because we have different objectives and maintainers, and because we have provided different infrastructure for packaging and distributing software.

Most of the specifics for Maemo packaging are outlined in the [[/Guidelines|Maemo packaging guidelines]].

=== Sections ===

For applications to be installable throughh Hildon Application Manager, the &quot;Secton:&quot; field in the &lt;code&gt;debian/control&lt;/code&gt; file must conform to certain naming conventions.

The conformant section names are [[Packaging/Guidelines#Sections|outlined in the packaging guidelines]], and are listed below.

{| class=&quot;wikitable sortable&quot;
|+ Maemo section names
|-
! Key
! class=&quot;unsortable&quot; | Example English i18n
! class=&quot;unsortable&quot; | Example apps
|-
| &lt;code&gt;user/desktop&lt;/code&gt;
| Desktop
| Home, statusbar and taskbar applets
|-
| &lt;code&gt;user/development&lt;/code&gt;
| Programming
| py2deb
|-
| &lt;code&gt;user/education&lt;/code&gt;
| Education
| Flashcard apps
|-
| &lt;code&gt;user/games&lt;/code&gt;
| Games
| Doom, Duke Nukem 3D
|-
| &lt;code&gt;user/graphics&lt;/code&gt;
| Graphics
| Photo apps, GIMP, Inkscape, fonts
|-
| &lt;code&gt;user/multimedia&lt;/code&gt;
| Multimedia ''or'' Sound &amp; Video
| Canola, mplayer, Kagu, UKMP, MediaBox
|-
| &lt;code&gt;user/navigation&lt;/code&gt;
| (Location &amp;) Navigation
| maemo-mapper, Navit
|-
| &lt;code&gt;user/network&lt;/code&gt;
| Internet &amp; Networking
| Web browsers, Samba clients, OpenAFS, Transmission
|-
| &lt;code&gt;user/office&lt;/code&gt;
| Office
| GPE, Claws, AbiWord
|-
| &lt;code&gt;user/science&lt;/code&gt;
| Science
| gnuplot, Octave
|-
| &lt;code&gt;user/system&lt;/code&gt;
| System
| rotation-support, enhanced kernels, themes
|-
| &lt;code&gt;user/utilities&lt;/code&gt;
| Utilities ''or'' Accessories
| Calculators, terminals, text editors
|}

If the package's section starts &quot;user/&quot;, but is not any of the above, the ''Application Manager'' forces them into an &quot;Other&quot; section.

=== Desktop files ===

{{main|Desktop file format}}

Desktop files are used to launch applications from the main application menu. Their format is standardised and documented in the [http://standards.freedesktop.org/desktop-entry-spec/1.0/ freedesktop.org desktop file spec]. The Maemo application menu uses the same desktop files, but looks for them to a slightly different location; &lt;code&gt;/usr/share/applications/hildon&lt;/code&gt; instead of &lt;code&gt;/usr/share/applications&lt;/code&gt;.

The location of the directory in which to install .desktop files can also be obtained using &lt;code&gt;pkg-config&lt;/code&gt;:

 pkg-config --variable=desktopentrydir osso-af-settings

The returned value can be used in a Makefile to install the desktop file to the correct location.

There is some official documentation on [[Documentation/Maemo_5_Developer_Guide/Application_Development/Writing_a_new_maemo_application#Adding_application_to_menu|desktop files for Maemo applications]].

=== Maemo-specific fields ===

There are a number of Maemo-specific Debian packaging fields that are handled by Application manager. The Application manager documentation [http://hildon-app-mgr.garage.maemo.org/packaging-stable.html outlines] them.

==== Displaying an icon in the Application Manager next to your package ====

Displaying an icon in the Application Manager next to your package makes it look pretty and makes your package stand out, and it is not that hard to do.

&lt;ol&gt;
&lt;li&gt;
Make an image that is '''48×48''' pixels. The image can be saved in any format that is supported by &lt;code&gt;GdkPixbufLoader&lt;/code&gt; on Maemo, but PNG is commonly used.
&lt;/li&gt;
&lt;li&gt;
base64 encode the image. This can be done in many ways, depending on the platform, but assuming you are in Scratchbox:
&lt;pre&gt;
fakeroot apt-get update
fakeroot apt-get install sharutils
uuencode -m &lt;name of 48×48 image&gt; &lt;name of 48×48 image&gt; &gt; &lt;name of 48×48 image&gt;.base64
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Add the field &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt; to your &lt;code&gt;debian/control&lt;/code&gt; (in Maemo4 the size of the icons was 26×26 pixels, hence the name of the field, '''which has not changed''' in Maemo 5)
&lt;/li&gt;
&lt;li&gt;
Open the base64 version of your image and copy from the line under ''begin-base64 644 &lt;name of 48×48 image&gt;'' to the line above the ''===''
&lt;/li&gt;
&lt;li&gt;
Add this to the &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt; field
&lt;/li&gt;
&lt;li&gt;
Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image:
&lt;pre&gt;
uuencode -m &lt;name of 48×48 image&gt; &lt;name of 48×48 image&gt; | sed -e s,^,\ ,  &gt; &lt;name of 48×48 image&gt;.base64
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

Here is an example of a properly formatted Maemo-Icon-26: (of wrong image size)
&lt;pre&gt;
Description: Chess...
XB-Maemo-Icon-26: 
 iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABGdBTUEAAK/INwWK6QAAABl0
 RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALxSURBVHja3FZNTBNREP669J/S
 XYxtKRWl1JOSFBIPhkitCQeNiaKBmzdj9Ggk0ZOBxHDWixcTjV6MF+WiIB40YEyMBMGYEqQK
 tLS2lG7pdre0pF3WtxslgJRuD2J0kpfdTN7O976Z782sRpIk7IZR2C2TGW1cv8xaY5WuXLy8
 iW5XV5fk8/kkr9e7ya/T6SSNRiOViikvbbmDDD590SusZBGYDiDwJbDud7vdvYIgIJfLYXV1
 tSwhrQrSfRX6/26N/j+gkjW6ce06HE4HGEctGuj9oEwUzFYz5ubmEA6HQVEUisUi8vn8b4rd
 zjRbNxCZrr+3t7XTzjrnvMfdxMi7xj6OIRaPIbWcQjabVdRWKBTkrX4SZ2SjvCtKXf+tkxxD
 M5MetwfHj/lwwueHy+WCVqvdehdHKq7R6JvbpfNMAGiGhs1mg9ls3sS+4hodbDqCwef9mA9P
 7vhhVVWV3BGUOomiaCSufEWMxNwimlweMFYbpoMfyp70J6t8xanLZgWs8Ak07N0Hau0P3qOs
 wIHnl5FJx2E1WlUFuXrzIS713KusRplMCoLAgl2O4N34ODQ4VRaot6cbUzMRNNQ/w/uJWXWM
 eH5JARkYHsLQMIe1NZEpB7Sn1uKFhkL3maO4cL5NHVAo+hkPnrzEq2HqQIf/3ICzvr7FXmeH
 3qBXlslkgtFoVBS3YfbcKRRFfJpagE6vUwd0//FbjI7mkcvnGoNfg51ORx3sNju+hWYxMxsk
 jHlF2jJgdXU1DAaDrDx/kQAVRREJlldXo8kJoPlQ8wHSevosFgs5MmE5H0IingDP8eAzPAQC
 tkJakDz05Hsks+poPzwg6+Luo9chVb2O3Hilv7V6W5nO02cVX3wxjsj3CMKRBUSjUcQWY0iy
 SQVoi6XJaiQxubKpI02yj2xk6BoaBr0BqXRKCZpYSiCZlIXCguM4pWtvY0ypyUtt87PSIj/t
 pJ/JICzLKiBLySTYVArpdFrp3DuMhRZVqfvnJ+wPAQYA1hdr5EDqltYAAAAASUVORK5CYII=
&lt;/pre&gt;

Please note that if you are packaging a command-line only program that can be executed by the user, you should use the [[User:Tanner#CLI_icon|CLI icon]] only.

==== Bugtracker location ====

&lt;del&gt;As a requirement&lt;/del&gt;[http://wiki.maemo.org/Extras-testing/QA_checklist#Blockers] Is strongly recommended for your package being promoted from [[Extras-testing]] to [[Extras]], your &lt;code&gt;debian/control&lt;/code&gt; file must have a link to a bugtracker, which is visible in the [http://maemo.org/packages/ maemo.org packages interface]. It is possible to [[Bugs:Adding Extra products|request a component at bugs.maemo.org]] or use a [[Getting_started_with_Maemo_Garage#Trackers_and_tasks|Garage project bugtracker]], or even, for simple packages, an email address .

Add the field ‘XSBC-Bugtracker’ to your &lt;code&gt;debian/control&lt;/code&gt;, for example:
 XSBC-Bugtracker: https://bugs.maemo.org/enter_bug.cgi?product=mypackage

Alternatively for e-mail addresses, you can use the following format:
 XSBC-Bugtracker: mailto:yourname@example.com

==== Pretty names ====

A package can specify a pretty name for itself. This name is displayed in the Application manager UI instead of the real package name.

The pretty name is specified with the '&lt;code&gt;XSBC-Maemo-Display-Name&lt;/code&gt;' field in your &lt;code&gt;debian/control&lt;/code&gt; file, for example:
 XSBC-Maemo-Display-Name: Hello, world!

==== Maemo revision string ====

If an upstream package is re-packaged or modified for Maemo, the Maemo revision string should be appended to the upstream revision, in the &lt;code&gt;debian/changelog&lt;/code&gt; file. So if in Debian the package name was something like &quot;Myapp-0.4-2&quot; in maemo this package will be called &quot;Myapp-0.4-2maemo0&quot;. The number after the &quot;maemo&quot; string is a progressive number.

==== Maemo upgrade description ====

Tell users what changed in the update:
 XB-Maemo-Upgrade-Description: Formatted like &quot;Description&quot;. 
  Will be displayed if user upgrades to new version and clicks
  on &quot;Details&quot;.
  .
  Human-readable and translatable.
As with all Maemo-specific fields, the &quot;XB-&quot; prefix is needed so the field will remain in the binary package.

==== Translations of text fields ====

The following fields can be translated to the end user's local language: Maemo-Display-Name, Description and Maemo-Upgrade-Description. It is strongly recommended to make use of this possibility so that end users understand what the application does for them while browsing through the Application Manager.

The translation is done by adding a suffix like &quot;-de_DE&quot; to the respective field name, where &quot;de_DE&quot; is the locale the translated text is for. For example, if LC_MESSAGES equals de_DE, the Application Manager first tries &quot;Description-de_DE&quot; to find the description of a package and then falls back to &quot;Description&quot;.

Here's an example:
 Description: Chess...
 XB-Maemo-Display-Name: My package name
 XB-Maemo-Upgrade-Description: Formatted like &quot;Description&quot;. 
 XB-Description-de_DE: Schach...
 XB-Maemo-Display-Name-de_DE: Mein Packetname
 XB-Maemo-Upgrade-Description-de_DE: Formatiert wie &quot;Description&quot;. 
Note how &quot;Description&quot; becomes &quot;XB-Description-xx_YY&quot; when a locale suffix is added. This is because it's not a standard Debian field any longer.

=== Debhelper 7 ===

Since the Autobuilder's [http://www.gossamer-threads.com/lists/maemo/developers/60704 use] of the Squeeze devkit, debhelper 7 is supported natively by it.

Follow the steps on that link to also make your FREMANTLE_* target use the Squeeze devkit.

Note: dh_make doesn't seem to be provided by the Squeeze devkit, so you'll have to run it outside of Scratchbox to get a debian/ folder based on debhelper 7.

----

A backport of Debhelper 7 for Fremantle is available in extras-devel. 

 $ fakeroot apt-get install debhelper7 

It works transparently and can coexist with debhelper 5 in the SDK. It even works on the autobuilder, if the package specifies the correct build-dependency of &lt;code&gt;debhelper7&lt;/code&gt;. The following lines in &lt;code&gt;debian/rules&lt;/code&gt; are necessary to use the new debhelper:

 PATH:=/usr/bin/dh7:/usr/bin:$(PATH)
 export PATH
 SBOX_REDIRECT_IGNORE=/usr/bin/perl
 export SBOX_REDIRECT_IGNORE

In debian/control change:

 Build-Depends: debhelper (&gt;= 7) [...]

to

 Build-Depends: debhelper'''7''' (&gt;= 7) [...]

Further information about the updated debhelper is available at [[User:Tanner#debhelper7]].

If you also need a more recent [http://build-common.alioth.debian.org/ CDBS], then use the package [http://maemo.org/packages/view/cdbs-dh7/ cdbs-dh7], which conflicts with the standard CDBS and does not work on autobuilder yet.

Alternatively, you can try to use debhelper 5. Debian packages that require level 7 need some changes, for example:
* debian/compat: 7 -&gt; 5
* debian/control: Build-Depends: debhelper (&gt;= 7) -&gt; debhelper (&gt;= 5)
* Possibly, comment out a few dh_* calls from debian/rules, which might not exist on level 5

Things might get complex if the packaging already uses some new features of level 7, like CDBS-style helper rules. In such cases, looking at versions of packages written prior to the compatibility level upgrade might help doing the downgrade (and most Debian packages are kept in public SCMs like svn.debian.org).

=== Ovi Store publishing ===

{{main|Ovi Store publishing}}

[[Category:Packaging]]</text>
    </revision>
  </page>
  <page>
    <title>Packaging</title>
    <id>1868</id>
    <revision>
      <id>48556</id>
      <timestamp>2012-06-20T08:13:44Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Packaging]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">== Creating Packages for Maemo ==

Since Maemo is based on the Debian operating system, creating packages for Maemo borrows a lot of tools and techniques from Debian.

=== Further reading ===

The following list of resources gives in-depth information on packaging in Debian and Maemo. These links largely discuss packaging Python apps but can be used for any programming language. 

*  [http://www.openismus.com/documents/linux/automake/automake Using automake and autoconf with C++]: A great beginner's tutorial on using autotools to create an easily packagable application 
*  [http://www.debian.org/doc/maint-guide/ Debian New Maintainers Guide]: The best place for information if you have never built a .deb before
*  [http://wiki.debian.org/Teams/PythonModulesTeam Debian's Python Modules Team]: definitive documentation for packaging Python modules for Debian
*  [http://python-modules.alioth.debian.org/python-modules-policy.htm Python Modules Policy]: Reference document.
* [http://showmedo.com/videos/video?name=linuxJensMakingDeb Creating debs on Ubuntu]: A great screencast and tutorial showing how to package a simple python application as a deb on Ubuntu!
* [https://wiki.ubuntu.com/PackagingGuide Ubuntu Packaging Guide]
* [[Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing | Deploying and distributing software on Maemo 5]]: Detailed documentation on packaging for Maemo, including how to ship your software afterwards
* [http://www.forum.nokia.com/Tools_Docs_and_Code/Documentation/Maemo.xhtml Forum Nokia developer documentation]: General developer documentation reference
* [[Port an existing Debian package]]
* [[Packaging a Qt application]] and how it differs from the packaging described here
* [[User:Jebba]] has created a [[User:Jebba/Package Building HOWTO | package building howto]] with details on every step

==== Checking Maemo Packages ====

Lintian dissects Debian packages and reports bugs and policy violations. 
It contains automated checks for many aspects of Debian policy as well as some checks for common errors. Unfortunately it does not check conformance to the additional Maemo policy.

Currently Maemo is creating [[Maemian]] to check its policy.

== A concrete example - hello ==

=== Prerequisites ===

For the purposes of our article, we will be packaging a simple [[Hildon]] hello-world application. This will be a standard source tarball using [[Documentation/Maemo 5 Developer Guide/GNU Build System#GNU Autotools|autotools]]. For further information, you can follow [http://www.openismus.com/documents/linux/automake/automake this detailed tutorial] on using Autotools for C++ projects.

You will need a working [[Documentation/Maemo 5 Final SDK Installation|Maemo 5 SDK]] and the &lt;code&gt;libhildon1-dev&lt;/code&gt; package, version 2.2 or greater, which can be installed in Scratchbox with the command:

 fakeroot apt-get install libhildon1-dev

==== hello.c ====

The only C file in our project is &lt;code&gt;hello.c&lt;/code&gt;:

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon/hildon.h&gt;

int main(int argc, char *argv[])
{
  GtkWidget *window;
  GtkWidget *label;

  hildon_gtk_init(&amp;argc, &amp;argv);

  window = hildon_window_new();
  label = gtk_label_new(&quot;Hello world!&quot;);

  g_signal_connect(G_OBJECT (window), &quot;destroy&quot;, G_CALLBACK (gtk_widget_destroy), NULL);
  gtk_container_add(GTK_CONTAINER(window), label);
  gtk_widget_show_all(window);

  gtk_main();
  return 0;
}
&lt;/source&gt;

==== Autotools ====

{{main|Documentation/Maemo 5 Developer Guide/GNU Build System}}

The rest of the project is a small number of files to allow us to make a standard &quot;&lt;code&gt;./configure &amp;&amp; make &amp;&amp; make install&lt;/code&gt;&quot; project with automake, aclocal and autoconf.

Using the autotools for packaging is quite simple for small projects. You need two files to define the structure of your project, &lt;code&gt;Makefile.am&lt;/code&gt; and &lt;code&gt;configure.ac&lt;/code&gt;.

&lt;code&gt;configure.ac&lt;/code&gt; is a file used by automake and autoconf to generate the configure script, define the version of the resulting .tar.gz and include the tests which we need to ensure the presence of the appropriate versions of dependencies. Since &lt;code&gt;hello.c&lt;/code&gt; is so simple, we only need to check for the standard C library and a C compiler, and for the Hildon library. The Hildon library check is done by &lt;code&gt;pkg-config&lt;/code&gt;, which makes it easy to check the library version, and get the right compiler and linker flags. The only output file generated by the configure script will be &lt;code&gt;Makefile&lt;/code&gt;, from the input file &lt;code&gt;Makefile.in&lt;/code&gt;, which is in turn generated from &lt;code&gt;Makefile.am&lt;/code&gt;

&lt;source lang=&quot;autoconf&quot;&gt;
AC_INIT([hello], [0.1])
AM_INIT_AUTOMAKE([foreign])
AC_PROG_CC
PKG_CHECK_MODULES([HILDON], [hildon-1 &gt;= 2.2])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
&lt;/source&gt;

&lt;code&gt;Makefile.am&lt;/code&gt; defines the source structure of your project, listing the files to be installed, the binaries and object files to be generated, and the relationship between the binaries and source files.

You can see that our &lt;code&gt;Makefile.am&lt;/code&gt; is very simple, defining one source file, and one binary file. The &quot;_SOURCES&quot; line must start with a binary name from &quot;bin_PROGRAMS&quot; to make the link between the source file and the executable. The &quot;_CPPFLAGS&quot; and &quot;_LDADD&quot; lines take the Hildon preprocessor and library flags that are provided by &lt;code&gt;pkg-config&lt;/code&gt; in &lt;code&gt;configure.ac&lt;/code&gt;.

 bin_PROGRAMS = hello
 hello_SOURCES = hello.c
 hello_CPPFLAGS = $(HILDON_CFLAGS)
 hello_LDADD = $(HILDON_LIBS)

Once we have these files, we simply need to initialise our project, defining its license, and generating all of the required files for automake to do its thing. We do this by running:

 autoreconf --force --install

The arguments to autoreconf copy required files to the project (including generic install instructions and a license).

Pay attention during the execution of autoreconf, the execution should be entirely silent if it runs correctly. If there are messages, read them and do what is required to address the issues.

Now to build your software, you have a standard configure script and can simply run

 ./configure
 make
 make install

and to build a distribution file, you have

 make dist

which will create a file ''&lt;code&gt;hello-0.1.tar.gz&lt;/code&gt;'', which you can use for the rest of this packaging tutorial.

=== Packaging a .deb ===

The easiest way to package a .deb file is to use Debian's build helpers.

Package your application as you would distribute it in a .tar.gz (when using autotools, this is done with &quot;&lt;code&gt;make distcheck&lt;/code&gt;&quot;). In our example, we uncompress &lt;code&gt;hello-0.1.tar.gz&lt;/code&gt;, and change the current directory to &lt;code&gt;hello-0.1&lt;/code&gt;.

 $ tar xfz hello-0.1.tar.gz
 $ cd hello-0.1

Then we run &lt;code&gt;dh_make&lt;/code&gt;, which initialises the Debian package management file structure (among other things):
 $ dh_make -e &lt;my email address&gt; -f ../hello-0.1.tar.gz -c GPL

You can of course choose a different licence for your package.

Answer the resulting questions - in this case, we are packaging a single binary.

We can now edit the files in the &lt;code&gt;debian/&lt;/code&gt; directory which has been created to their desired values, before packaging the software. In fact, we can delete many of these files. All of the files ending in “.ex” or “.EX” are example files, intended to help you package different types of software.

If you use a standard configure script, you do not need to modify any files except &lt;code&gt;debian/control&lt;/code&gt;, where the Hildon build-time dependency should be added. Change the &lt;code&gt;Build-Depends&lt;/code&gt; line to read (by adding &quot;&lt;code&gt;libhildon1&lt;/code&gt;&quot; at the end):

 Build-Depends: debhelper (&gt;= 5), autotools-dev, libhildon1 (&gt;= 2.2)

Before creating a .deb, you should set a changelog entry. .deb changelogs follow a special format, so rather than editing the files by hand, use the dch helper application. This will allow you to add what new features went into this application, give credit, and so on. It is an especially important file because it sets the version and revision of the source and binary packages. On saving, a syntax check is performed which ensures that the resulting file is OK. The file format is completely documented in the [http://www.debian.org/doc/maint-guide/ Debian packaging guide].

Finally, we generate a .deb from the source code using the command:
 dpkg-buildpackage -sa -rfakeroot -k&lt;my email address&gt;

You should now have several files created in the parent directory to where you unpacked the source code. I have;

 hello_0.1.orig.tar.gz
 hello_0.1-1_i386.deb
 hello_0.1-1.diff.gz
 hello_0.1-1.dsc
 hello_0.1-1_i386.changes

Now change the target architecture to &lt;code&gt;ARMEL&lt;/code&gt; and rebuild it, to generate &lt;code&gt;hello_0.1-1_arm.deb&lt;/code&gt;:

 sb-conf se FREMANTLE_ARMEL
 dpkg-buildpackage -sa -rfakeroot -k&lt;my email address&gt;

==== Additional information ====

===== Ignoring git metadata =====

If you use git then you may not want to include the entire git repo in your source bundle. With dpkg-source version 1.13.25 the -i option is not git-aware so you can do:

  dpkg-buildpackage -rfakeroot -sa  -i -I.git

===== Adding build-time dependencies =====

If your program uses another library, such as Hildon in the above example, then both the Debian package and the configure script must depend on the library. 
Otherwise, since the autobuilder only installs packages explicitly required to build your package, the build will fail.

Often, the Debian package has a different name to the pkg-config file, just like in the Hildon example. One way to check which package owns a pkg-config file is to use &lt;code&gt;dpkg-query&lt;/code&gt; on the pkg-config file, for example the &lt;code&gt;mafw&lt;/code&gt; pkg-config file (notice the extra &lt;code&gt;.pc&lt;/code&gt; file extension):
 dpkg-query --search mafw.pc
which looks through the installed packages and finds:
 libmafw0-dev: /usr/lib/pkgconfig/mafw.pc
Then you know that you must add &lt;code&gt;libmafw0-dev&lt;/code&gt; to the &lt;code&gt;Build-Depends&lt;/code&gt; line in &lt;code&gt;debian/control&lt;/code&gt; if you use the &lt;code&gt;mafw&lt;/code&gt; pkg-config file in &lt;code&gt;configure.ac&lt;/code&gt;.

===== Checking build-time dependencies =====

You may verify that your &lt;code&gt;Build-Depends&lt;/code&gt; field in debian/control is complete by running:

 dpkg-depcheck -m dpkg-buildpackage -rfakeroot -b

in the source tree. (You will need to &lt;code&gt;fakeroot apt-get install devscripts&lt;/code&gt; for this to work).

=== Adding an icon and desktop file ===

To ensure that your package shows up in the application menu, you will need to install an icon and a .desktop file with your package.

The icon can be in a number of formats. To keep things simple, you can use [[:Image:Hello.png | this 48x48 .png]] as your icon for now.

The format of .desktop files is specified by the [http://standards.freedesktop.org/desktop-entry-spec/1.0/ freedesktop.org desktop entry spec], with a number of [[Desktop file format | Maemo specific extensions]]. The simplest possible .desktop file for Maemo contains a &quot;Desktop Entry&quot; group containing an indicator that it refers to an application, the application name, the icon to use, and a path to the executable which will launch the application. Other standard keys can be found [http://standards.freedesktop.org/desktop-entry-spec/1.0/ar01s05.html in the spec].

&lt;pre&gt;
[Desktop Entry]
Type=Application
Name=Hello!
Icon=hello
Exec=/usr/bin/hello
&lt;/pre&gt;

Pixmaps referenced without an absolute path in the desktop file can be installed in a number of locations, specified in the [http://freedesktop.org/wiki/Specifications/icon-theme-spec freedesktop.org icon theme spec]. The simplest place to put the icon is in &lt;code&gt;/usr/share/icons&lt;/code&gt;. The Icon entry above will thus match &lt;code&gt;/usr/share/icons/hello.png&lt;/code&gt;.

Once you have created these files in your source directory, you will need to add the following to &lt;code&gt;Makefile.am&lt;/code&gt; to ensure that they are distributed in the tarball (created during &lt;code&gt;make dist&lt;/code&gt;) installed in the right place, and packaged correctly, and you should re-run &lt;code&gt;autoreconf&lt;/code&gt;, &lt;code&gt;configure&lt;/code&gt;, &lt;code&gt;make dist&lt;/code&gt; and &lt;code&gt;dpkg_buildpackage&lt;/code&gt; once you have done so.

&lt;source lang=&quot;make&quot;&gt;
icondir = $(datadir)/icons
dist_icon_DATA = hello.png

desktopdir = $(datadir)/applications/hildon
dist_desktop_DATA = hello.desktop
&lt;/source&gt;

To make the package installable using Hildon Application Manager (which will get launched when you select the package), you should follow the [[#Maemo-specific packaging information]] below. In particular, you must set the &quot;Section&quot; to one of the valid sections below in the &quot;&lt;code&gt;debian/control&lt;/code&gt;&quot; file.

=== Testing your package ===

The first place you can test your app is in Scratchbox. Start Xephyr and the Maemo GUI as described in [[Documentation/Maemo 5 Final SDK Installation | the Maemo 5 SDK instructions]], then run your application by hand from within Scratchbox.

Once you have created .deb packages of your application for x86 and armel, you can also test the installation process and test your application on your N900.

To test the installation on Xephyr, you can either install it from the command line with &lt;pre&gt;dpkg -i hello_0.1-1_i386.deb&lt;/pre&gt;, or copy the i386 .deb files to the &lt;pre&gt;/home/&lt;username&gt;/MyDocs&lt;/pre&gt; directory, and click on it to install it.

To test on your device, copy the armel .deb file to the .documents directory on your device, and install it by selecting it in the file manager. You will need to ensure that the OS version on your device is compatible with the development environment in your Scratchbox.

Once the package is installed, you will be able to launch it directly from the command line in the [[terminal|X terminal]] application. To get the application to appear in the application list, you will need to include an icon and desktop file in the package as described in [[/Guidelines | the packaging policy]].

=== Uploading to extras-devel ===

{{main|Uploading to Extras-devel}}

== Maemo-specific packaging information ==

=== Packaging policy ===

{{main|Packaging/Guidelines}}

Maemo packages follow the Debian Policy, but there are some items where Maemo is more strict, since it is an embedded distribution, and other areas where it is more relaxed, since it supports only one user at a time on a single target device and UI framework. In other areas, the policy differs from Debian because we have different objectives and maintainers, and because we have provided different infrastructure for packaging and distributing software.

Most of the specifics for Maemo packaging are outlined in the [[/Guidelines|Maemo packaging guidelines]].

=== Sections ===

For applications to be installable throughh Hildon Application Manager, the &quot;Secton:&quot; field in the &lt;code&gt;debian/control&lt;/code&gt; file must conform to certain naming conventions.

The conformant section names are [[Packaging/Guidelines#Sections|outlined in the packaging guidelines]], and are listed below.

{| class=&quot;wikitable sortable&quot;
|+ Maemo section names
|-
! Key
! class=&quot;unsortable&quot; | Example English i18n
! class=&quot;unsortable&quot; | Example apps
|-
| &lt;code&gt;user/desktop&lt;/code&gt;
| Desktop
| Home, statusbar and taskbar applets
|-
| &lt;code&gt;user/development&lt;/code&gt;
| Programming
| py2deb
|-
| &lt;code&gt;user/education&lt;/code&gt;
| Education
| Flashcard apps
|-
| &lt;code&gt;user/games&lt;/code&gt;
| Games
| Doom, Duke Nukem 3D
|-
| &lt;code&gt;user/graphics&lt;/code&gt;
| Graphics
| Photo apps, GIMP, Inkscape, fonts
|-
| &lt;code&gt;user/multimedia&lt;/code&gt;
| Multimedia ''or'' Sound &amp; Video
| Canola, mplayer, Kagu, UKMP, MediaBox
|-
| &lt;code&gt;user/navigation&lt;/code&gt;
| (Location &amp;) Navigation
| maemo-mapper, Navit
|-
| &lt;code&gt;user/network&lt;/code&gt;
| Internet &amp; Networking
| Web browsers, Samba clients, OpenAFS, Transmission
|-
| &lt;code&gt;user/office&lt;/code&gt;
| Office
| GPE, Claws, AbiWord
|-
| &lt;code&gt;user/science&lt;/code&gt;
| Science
| gnuplot, Octave
|-
| &lt;code&gt;user/system&lt;/code&gt;
| System
| rotation-support, enhanced kernels, themes
|-
| &lt;code&gt;user/utilities&lt;/code&gt;
| Utilities ''or'' Accessories
| Calculators, terminals, text editors
|}

If the package's section starts &quot;user/&quot;, but is not any of the above, the ''Application Manager'' forces them into an &quot;Other&quot; section.

=== Desktop files ===

{{main|Desktop file format}}

Desktop files are used to launch applications from the main application menu. Their format is standardised and documented in the [http://standards.freedesktop.org/desktop-entry-spec/1.0/ freedesktop.org desktop file spec]. The Maemo application menu uses the same desktop files, but looks for them to a slightly different location; &lt;code&gt;/usr/share/applications/hildon&lt;/code&gt; instead of &lt;code&gt;/usr/share/applications&lt;/code&gt;.

The location of the directory in which to install .desktop files can also be obtained using &lt;code&gt;pkg-config&lt;/code&gt;:

 pkg-config --variable=desktopentrydir osso-af-settings

The returned value can be used in a Makefile to install the desktop file to the correct location.

There is some official documentation on [[Documentation/Maemo_5_Developer_Guide/Application_Development/Writing_a_new_maemo_application#Adding_application_to_menu|desktop files for Maemo applications]].

=== Maemo-specific fields ===

There are a number of Maemo-specific Debian packaging fields that are handled by Application manager. The Application manager documentation [http://hildon-app-mgr.garage.maemo.org/packaging-stable.html outlines] them.

==== Displaying an icon in the Application Manager next to your package ====

Displaying an icon in the Application Manager next to your package makes it look pretty and makes your package stand out, and it is not that hard to do.

&lt;ol&gt;
&lt;li&gt;
Make an image that is '''48×48''' pixels. The image can be saved in any format that is supported by &lt;code&gt;GdkPixbufLoader&lt;/code&gt; on Maemo, but PNG is commonly used.
&lt;/li&gt;
&lt;li&gt;
base64 encode the image. This can be done in many ways, depending on the platform, but assuming you are in Scratchbox:
&lt;pre&gt;
fakeroot apt-get update
fakeroot apt-get install sharutils
uuencode -m &lt;name of 48×48 image&gt; &lt;name of 48×48 image&gt; &gt; &lt;name of 48×48 image&gt;.base64
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Add the field &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt; to your &lt;code&gt;debian/control&lt;/code&gt; (in Maemo4 the size of the icons was 26×26 pixels, hence the name of the field, '''which has not changed''' in Maemo 5)
&lt;/li&gt;
&lt;li&gt;
Open the base64 version of your image and copy from the line under ''begin-base64 644 &lt;name of 48×48 image&gt;'' to the line above the ''===''
&lt;/li&gt;
&lt;li&gt;
Add this to the &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt; field
&lt;/li&gt;
&lt;li&gt;
Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image:
&lt;pre&gt;
uuencode -m &lt;name of 48×48 image&gt; &lt;name of 48×48 image&gt; | sed -e s,^,\ ,  &gt; &lt;name of 48×48 image&gt;.base64
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

Here is an example of a properly formatted Maemo-Icon-26: (of wrong image size)
&lt;pre&gt;
Description: Chess...
XB-Maemo-Icon-26: 
 iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABGdBTUEAAK/INwWK6QAAABl0
 RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALxSURBVHja3FZNTBNREP669J/S
 XYxtKRWl1JOSFBIPhkitCQeNiaKBmzdj9Ggk0ZOBxHDWixcTjV6MF+WiIB40YEyMBMGYEqQK
 tLS2lG7pdre0pF3WtxslgJRuD2J0kpfdTN7O976Z782sRpIk7IZR2C2TGW1cv8xaY5WuXLy8
 iW5XV5fk8/kkr9e7ya/T6SSNRiOViikvbbmDDD590SusZBGYDiDwJbDud7vdvYIgIJfLYXV1
 tSwhrQrSfRX6/26N/j+gkjW6ce06HE4HGEctGuj9oEwUzFYz5ubmEA6HQVEUisUi8vn8b4rd
 zjRbNxCZrr+3t7XTzjrnvMfdxMi7xj6OIRaPIbWcQjabVdRWKBTkrX4SZ2SjvCtKXf+tkxxD
 M5MetwfHj/lwwueHy+WCVqvdehdHKq7R6JvbpfNMAGiGhs1mg9ls3sS+4hodbDqCwef9mA9P
 7vhhVVWV3BGUOomiaCSufEWMxNwimlweMFYbpoMfyp70J6t8xanLZgWs8Ak07N0Hau0P3qOs
 wIHnl5FJx2E1WlUFuXrzIS713KusRplMCoLAgl2O4N34ODQ4VRaot6cbUzMRNNQ/w/uJWXWM
 eH5JARkYHsLQMIe1NZEpB7Sn1uKFhkL3maO4cL5NHVAo+hkPnrzEq2HqQIf/3ICzvr7FXmeH
 3qBXlslkgtFoVBS3YfbcKRRFfJpagE6vUwd0//FbjI7mkcvnGoNfg51ORx3sNju+hWYxMxsk
 jHlF2jJgdXU1DAaDrDx/kQAVRREJlldXo8kJoPlQ8wHSevosFgs5MmE5H0IingDP8eAzPAQC
 tkJakDz05Hsks+poPzwg6+Luo9chVb2O3Hilv7V6W5nO02cVX3wxjsj3CMKRBUSjUcQWY0iy
 SQVoi6XJaiQxubKpI02yj2xk6BoaBr0BqXRKCZpYSiCZlIXCguM4pWtvY0ypyUtt87PSIj/t
 pJ/JICzLKiBLySTYVArpdFrp3DuMhRZVqfvnJ+wPAQYA1hdr5EDqltYAAAAASUVORK5CYII=
&lt;/pre&gt;

Please note that if you are packaging a command-line only program that can be executed by the user, you should use the [[User:Tanner#CLI_icon|CLI icon]] only.

==== Bugtracker location ====

&lt;del&gt;As a requirement&lt;/del&gt;[http://wiki.maemo.org/Extras-testing/QA_checklist#Blockers] Is strongly recommended for your package being promoted from [[Extras-testing]] to [[Extras]], your &lt;code&gt;debian/control&lt;/code&gt; file must have a link to a bugtracker, which is visible in the [http://maemo.org/packages/ maemo.org packages interface]. It is possible to [[Bugs:Adding Extra products|request a component at bugs.maemo.org]] or use a [[Getting_started_with_Maemo_Garage#Trackers_and_tasks|Garage project bugtracker]], or even, for simple packages, an email address .

Add the field ‘XSBC-Bugtracker’ to your &lt;code&gt;debian/control&lt;/code&gt;, for example:
 XSBC-Bugtracker: https://bugs.maemo.org/enter_bug.cgi?product=mypackage

Alternatively for e-mail addresses, you can use the following format:
 XSBC-Bugtracker: mailto:yourname@example.com

==== Pretty names ====

A package can specify a pretty name for itself. This name is displayed in the Application manager UI instead of the real package name.

The pretty name is specified with the '&lt;code&gt;XSBC-Maemo-Display-Name&lt;/code&gt;' field in your &lt;code&gt;debian/control&lt;/code&gt; file, for example:
 XSBC-Maemo-Display-Name: Hello, world!

==== Maemo revision string ====

If an upstream package is re-packaged or modified for Maemo, the Maemo revision string should be appended to the upstream revision, in the &lt;code&gt;debian/changelog&lt;/code&gt; file. So if in Debian the package name was something like &quot;Myapp-0.4-2&quot; in maemo this package will be called &quot;Myapp-0.4-2maemo0&quot;. The number after the &quot;maemo&quot; string is a progressive number.

==== Maemo upgrade description ====

Tell users what changed in the update:
 XB-Maemo-Upgrade-Description: Formatted like &quot;Description&quot;. 
  Will be displayed if user upgrades to new version and clicks
  on &quot;Details&quot;.
  .
  Human-readable and translatable.
As with all Maemo-specific fields, the &quot;XB-&quot; prefix is needed so the field will remain in the binary package.

==== Translations of text fields ====

The following fields can be translated to the end user's local language: Maemo-Display-Name, Description and Maemo-Upgrade-Description. It is strongly recommended to make use of this possibility so that end users understand what the application does for them while browsing through the Application Manager.

The translation is done by adding a suffix like &quot;-de_DE&quot; to the respective field name, where &quot;de_DE&quot; is the locale the translated text is for. For example, if LC_MESSAGES equals de_DE, the Application Manager first tries &quot;Description-de_DE&quot; to find the description of a package and then falls back to &quot;Description&quot;.

Here's an example:
 Description: Chess...
 XB-Maemo-Display-Name: My package name
 XB-Maemo-Upgrade-Description: Formatted like &quot;Description&quot;. 
 XB-Description-de_DE: Schach...
 XB-Maemo-Display-Name-de_DE: Mein Packetname
 XB-Maemo-Upgrade-Description-de_DE: Formatiert wie &quot;Description&quot;. 
Note how &quot;Description&quot; becomes &quot;XB-Description-xx_YY&quot; when a locale suffix is added. This is because it's not a standard Debian field any longer.

=== Debhelper 7 ===

Since the Autobuilder's [http://www.gossamer-threads.com/lists/maemo/developers/60704 use] of the Squeeze devkit, debhelper 7 is supported natively by it.

Follow the steps on that link to also make your FREMANTLE_* target use the Squeeze devkit.

Note: dh_make doesn't seem to be provided by the Squeeze devkit, so you'll have to run it outside of Scratchbox to get a debian/ folder based on debhelper 7.

----

A backport of Debhelper 7 for Fremantle is available in extras-devel. 

 $ fakeroot apt-get install debhelper7 

It works transparently and can coexist with debhelper 5 in the SDK. It even works on the autobuilder, if the package specifies the correct build-dependency of &lt;code&gt;debhelper7&lt;/code&gt;. The following lines in &lt;code&gt;debian/rules&lt;/code&gt; are necessary to use the new debhelper:

 PATH:=/usr/bin/dh7:/usr/bin:$(PATH)
 export PATH
 SBOX_REDIRECT_IGNORE=/usr/bin/perl
 export SBOX_REDIRECT_IGNORE

In debian/control change:

 Build-Depends: debhelper (&gt;= 7) [...]

to

 Build-Depends: debhelper'''7''' (&gt;= 7) [...]

Further information about the updated debhelper is available at [[User:Tanner#debhelper7]].

If you also need a more recent [http://build-common.alioth.debian.org/ CDBS], then use the package [http://maemo.org/packages/view/cdbs-dh7/ cdbs-dh7], which conflicts with the standard CDBS and does not work on autobuilder yet.

Alternatively, you can try to use debhelper 5. Debian packages that require level 7 need some changes, for example:
* debian/compat: 7 -&gt; 5
* debian/control: Build-Depends: debhelper (&gt;= 7) -&gt; debhelper (&gt;= 5)
* Possibly, comment out a few dh_* calls from debian/rules, which might not exist on level 5

Things might get complex if the packaging already uses some new features of level 7, like CDBS-style helper rules. In such cases, looking at versions of packages written prior to the compatibility level upgrade might help doing the downgrade (and most Debian packages are kept in public SCMs like svn.debian.org).

=== Ovi Store publishing ===

{{main|Ovi Store publishing}}

[[Category:Packaging]]</text>
    </revision>
  </page>
  <page>
    <title>Packaging</title>
    <id>1868</id>
    <revision>
      <id>48556</id>
      <timestamp>2012-06-20T08:13:44Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Packaging]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">== Creating Packages for Maemo ==

Since Maemo is based on the Debian operating system, creating packages for Maemo borrows a lot of tools and techniques from Debian.

=== Further reading ===

The following list of resources gives in-depth information on packaging in Debian and Maemo. These links largely discuss packaging Python apps but can be used for any programming language. 

*  [http://www.openismus.com/documents/linux/automake/automake Using automake and autoconf with C++]: A great beginner's tutorial on using autotools to create an easily packagable application 
*  [http://www.debian.org/doc/maint-guide/ Debian New Maintainers Guide]: The best place for information if you have never built a .deb before
*  [http://wiki.debian.org/Teams/PythonModulesTeam Debian's Python Modules Team]: definitive documentation for packaging Python modules for Debian
*  [http://python-modules.alioth.debian.org/python-modules-policy.htm Python Modules Policy]: Reference document.
* [http://showmedo.com/videos/video?name=linuxJensMakingDeb Creating debs on Ubuntu]: A great screencast and tutorial showing how to package a simple python application as a deb on Ubuntu!
* [https://wiki.ubuntu.com/PackagingGuide Ubuntu Packaging Guide]
* [[Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing | Deploying and distributing software on Maemo 5]]: Detailed documentation on packaging for Maemo, including how to ship your software afterwards
* [http://www.forum.nokia.com/Tools_Docs_and_Code/Documentation/Maemo.xhtml Forum Nokia developer documentation]: General developer documentation reference
* [[Port an existing Debian package]]
* [[Packaging a Qt application]] and how it differs from the packaging described here
* [[User:Jebba]] has created a [[User:Jebba/Package Building HOWTO | package building howto]] with details on every step

==== Checking Maemo Packages ====

Lintian dissects Debian packages and reports bugs and policy violations. 
It contains automated checks for many aspects of Debian policy as well as some checks for common errors. Unfortunately it does not check conformance to the additional Maemo policy.

Currently Maemo is creating [[Maemian]] to check its policy.

== A concrete example - hello ==

=== Prerequisites ===

For the purposes of our article, we will be packaging a simple [[Hildon]] hello-world application. This will be a standard source tarball using [[Documentation/Maemo 5 Developer Guide/GNU Build System#GNU Autotools|autotools]]. For further information, you can follow [http://www.openismus.com/documents/linux/automake/automake this detailed tutorial] on using Autotools for C++ projects.

You will need a working [[Documentation/Maemo 5 Final SDK Installation|Maemo 5 SDK]] and the &lt;code&gt;libhildon1-dev&lt;/code&gt; package, version 2.2 or greater, which can be installed in Scratchbox with the command:

 fakeroot apt-get install libhildon1-dev

==== hello.c ====

The only C file in our project is &lt;code&gt;hello.c&lt;/code&gt;:

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon/hildon.h&gt;

int main(int argc, char *argv[])
{
  GtkWidget *window;
  GtkWidget *label;

  hildon_gtk_init(&amp;argc, &amp;argv);

  window = hildon_window_new();
  label = gtk_label_new(&quot;Hello world!&quot;);

  g_signal_connect(G_OBJECT (window), &quot;destroy&quot;, G_CALLBACK (gtk_widget_destroy), NULL);
  gtk_container_add(GTK_CONTAINER(window), label);
  gtk_widget_show_all(window);

  gtk_main();
  return 0;
}
&lt;/source&gt;

==== Autotools ====

{{main|Documentation/Maemo 5 Developer Guide/GNU Build System}}

The rest of the project is a small number of files to allow us to make a standard &quot;&lt;code&gt;./configure &amp;&amp; make &amp;&amp; make install&lt;/code&gt;&quot; project with automake, aclocal and autoconf.

Using the autotools for packaging is quite simple for small projects. You need two files to define the structure of your project, &lt;code&gt;Makefile.am&lt;/code&gt; and &lt;code&gt;configure.ac&lt;/code&gt;.

&lt;code&gt;configure.ac&lt;/code&gt; is a file used by automake and autoconf to generate the configure script, define the version of the resulting .tar.gz and include the tests which we need to ensure the presence of the appropriate versions of dependencies. Since &lt;code&gt;hello.c&lt;/code&gt; is so simple, we only need to check for the standard C library and a C compiler, and for the Hildon library. The Hildon library check is done by &lt;code&gt;pkg-config&lt;/code&gt;, which makes it easy to check the library version, and get the right compiler and linker flags. The only output file generated by the configure script will be &lt;code&gt;Makefile&lt;/code&gt;, from the input file &lt;code&gt;Makefile.in&lt;/code&gt;, which is in turn generated from &lt;code&gt;Makefile.am&lt;/code&gt;

&lt;source lang=&quot;autoconf&quot;&gt;
AC_INIT([hello], [0.1])
AM_INIT_AUTOMAKE([foreign])
AC_PROG_CC
PKG_CHECK_MODULES([HILDON], [hildon-1 &gt;= 2.2])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
&lt;/source&gt;

&lt;code&gt;Makefile.am&lt;/code&gt; defines the source structure of your project, listing the files to be installed, the binaries and object files to be generated, and the relationship between the binaries and source files.

You can see that our &lt;code&gt;Makefile.am&lt;/code&gt; is very simple, defining one source file, and one binary file. The &quot;_SOURCES&quot; line must start with a binary name from &quot;bin_PROGRAMS&quot; to make the link between the source file and the executable. The &quot;_CPPFLAGS&quot; and &quot;_LDADD&quot; lines take the Hildon preprocessor and library flags that are provided by &lt;code&gt;pkg-config&lt;/code&gt; in &lt;code&gt;configure.ac&lt;/code&gt;.

 bin_PROGRAMS = hello
 hello_SOURCES = hello.c
 hello_CPPFLAGS = $(HILDON_CFLAGS)
 hello_LDADD = $(HILDON_LIBS)

Once we have these files, we simply need to initialise our project, defining its license, and generating all of the required files for automake to do its thing. We do this by running:

 autoreconf --force --install

The arguments to autoreconf copy required files to the project (including generic install instructions and a license).

Pay attention during the execution of autoreconf, the execution should be entirely silent if it runs correctly. If there are messages, read them and do what is required to address the issues.

Now to build your software, you have a standard configure script and can simply run

 ./configure
 make
 make install

and to build a distribution file, you have

 make dist

which will create a file ''&lt;code&gt;hello-0.1.tar.gz&lt;/code&gt;'', which you can use for the rest of this packaging tutorial.

=== Packaging a .deb ===

The easiest way to package a .deb file is to use Debian's build helpers.

Package your application as you would distribute it in a .tar.gz (when using autotools, this is done with &quot;&lt;code&gt;make distcheck&lt;/code&gt;&quot;). In our example, we uncompress &lt;code&gt;hello-0.1.tar.gz&lt;/code&gt;, and change the current directory to &lt;code&gt;hello-0.1&lt;/code&gt;.

 $ tar xfz hello-0.1.tar.gz
 $ cd hello-0.1

Then we run &lt;code&gt;dh_make&lt;/code&gt;, which initialises the Debian package management file structure (among other things):
 $ dh_make -e &lt;my email address&gt; -f ../hello-0.1.tar.gz -c GPL

You can of course choose a different licence for your package.

Answer the resulting questions - in this case, we are packaging a single binary.

We can now edit the files in the &lt;code&gt;debian/&lt;/code&gt; directory which has been created to their desired values, before packaging the software. In fact, we can delete many of these files. All of the files ending in “.ex” or “.EX” are example files, intended to help you package different types of software.

If you use a standard configure script, you do not need to modify any files except &lt;code&gt;debian/control&lt;/code&gt;, where the Hildon build-time dependency should be added. Change the &lt;code&gt;Build-Depends&lt;/code&gt; line to read (by adding &quot;&lt;code&gt;libhildon1&lt;/code&gt;&quot; at the end):

 Build-Depends: debhelper (&gt;= 5), autotools-dev, libhildon1 (&gt;= 2.2)

Before creating a .deb, you should set a changelog entry. .deb changelogs follow a special format, so rather than editing the files by hand, use the dch helper application. This will allow you to add what new features went into this application, give credit, and so on. It is an especially important file because it sets the version and revision of the source and binary packages. On saving, a syntax check is performed which ensures that the resulting file is OK. The file format is completely documented in the [http://www.debian.org/doc/maint-guide/ Debian packaging guide].

Finally, we generate a .deb from the source code using the command:
 dpkg-buildpackage -sa -rfakeroot -k&lt;my email address&gt;

You should now have several files created in the parent directory to where you unpacked the source code. I have;

 hello_0.1.orig.tar.gz
 hello_0.1-1_i386.deb
 hello_0.1-1.diff.gz
 hello_0.1-1.dsc
 hello_0.1-1_i386.changes

Now change the target architecture to &lt;code&gt;ARMEL&lt;/code&gt; and rebuild it, to generate &lt;code&gt;hello_0.1-1_arm.deb&lt;/code&gt;:

 sb-conf se FREMANTLE_ARMEL
 dpkg-buildpackage -sa -rfakeroot -k&lt;my email address&gt;

==== Additional information ====

===== Ignoring git metadata =====

If you use git then you may not want to include the entire git repo in your source bundle. With dpkg-source version 1.13.25 the -i option is not git-aware so you can do:

  dpkg-buildpackage -rfakeroot -sa  -i -I.git

===== Adding build-time dependencies =====

If your program uses another library, such as Hildon in the above example, then both the Debian package and the configure script must depend on the library. 
Otherwise, since the autobuilder only installs packages explicitly required to build your package, the build will fail.

Often, the Debian package has a different name to the pkg-config file, just like in the Hildon example. One way to check which package owns a pkg-config file is to use &lt;code&gt;dpkg-query&lt;/code&gt; on the pkg-config file, for example the &lt;code&gt;mafw&lt;/code&gt; pkg-config file (notice the extra &lt;code&gt;.pc&lt;/code&gt; file extension):
 dpkg-query --search mafw.pc
which looks through the installed packages and finds:
 libmafw0-dev: /usr/lib/pkgconfig/mafw.pc
Then you know that you must add &lt;code&gt;libmafw0-dev&lt;/code&gt; to the &lt;code&gt;Build-Depends&lt;/code&gt; line in &lt;code&gt;debian/control&lt;/code&gt; if you use the &lt;code&gt;mafw&lt;/code&gt; pkg-config file in &lt;code&gt;configure.ac&lt;/code&gt;.

===== Checking build-time dependencies =====

You may verify that your &lt;code&gt;Build-Depends&lt;/code&gt; field in debian/control is complete by running:

 dpkg-depcheck -m dpkg-buildpackage -rfakeroot -b

in the source tree. (You will need to &lt;code&gt;fakeroot apt-get install devscripts&lt;/code&gt; for this to work).

=== Adding an icon and desktop file ===

To ensure that your package shows up in the application menu, you will need to install an icon and a .desktop file with your package.

The icon can be in a number of formats. To keep things simple, you can use [[:Image:Hello.png | this 48x48 .png]] as your icon for now.

The format of .desktop files is specified by the [http://standards.freedesktop.org/desktop-entry-spec/1.0/ freedesktop.org desktop entry spec], with a number of [[Desktop file format | Maemo specific extensions]]. The simplest possible .desktop file for Maemo contains a &quot;Desktop Entry&quot; group containing an indicator that it refers to an application, the application name, the icon to use, and a path to the executable which will launch the application. Other standard keys can be found [http://standards.freedesktop.org/desktop-entry-spec/1.0/ar01s05.html in the spec].

&lt;pre&gt;
[Desktop Entry]
Type=Application
Name=Hello!
Icon=hello
Exec=/usr/bin/hello
&lt;/pre&gt;

Pixmaps referenced without an absolute path in the desktop file can be installed in a number of locations, specified in the [http://freedesktop.org/wiki/Specifications/icon-theme-spec freedesktop.org icon theme spec]. The simplest place to put the icon is in &lt;code&gt;/usr/share/icons&lt;/code&gt;. The Icon entry above will thus match &lt;code&gt;/usr/share/icons/hello.png&lt;/code&gt;.

Once you have created these files in your source directory, you will need to add the following to &lt;code&gt;Makefile.am&lt;/code&gt; to ensure that they are distributed in the tarball (created during &lt;code&gt;make dist&lt;/code&gt;) installed in the right place, and packaged correctly, and you should re-run &lt;code&gt;autoreconf&lt;/code&gt;, &lt;code&gt;configure&lt;/code&gt;, &lt;code&gt;make dist&lt;/code&gt; and &lt;code&gt;dpkg_buildpackage&lt;/code&gt; once you have done so.

&lt;source lang=&quot;make&quot;&gt;
icondir = $(datadir)/icons
dist_icon_DATA = hello.png

desktopdir = $(datadir)/applications/hildon
dist_desktop_DATA = hello.desktop
&lt;/source&gt;

To make the package installable using Hildon Application Manager (which will get launched when you select the package), you should follow the [[#Maemo-specific packaging information]] below. In particular, you must set the &quot;Section&quot; to one of the valid sections below in the &quot;&lt;code&gt;debian/control&lt;/code&gt;&quot; file.

=== Testing your package ===

The first place you can test your app is in Scratchbox. Start Xephyr and the Maemo GUI as described in [[Documentation/Maemo 5 Final SDK Installation | the Maemo 5 SDK instructions]], then run your application by hand from within Scratchbox.

Once you have created .deb packages of your application for x86 and armel, you can also test the installation process and test your application on your N900.

To test the installation on Xephyr, you can either install it from the command line with &lt;pre&gt;dpkg -i hello_0.1-1_i386.deb&lt;/pre&gt;, or copy the i386 .deb files to the &lt;pre&gt;/home/&lt;username&gt;/MyDocs&lt;/pre&gt; directory, and click on it to install it.

To test on your device, copy the armel .deb file to the .documents directory on your device, and install it by selecting it in the file manager. You will need to ensure that the OS version on your device is compatible with the development environment in your Scratchbox.

Once the package is installed, you will be able to launch it directly from the command line in the [[terminal|X terminal]] application. To get the application to appear in the application list, you will need to include an icon and desktop file in the package as described in [[/Guidelines | the packaging policy]].

=== Uploading to extras-devel ===

{{main|Uploading to Extras-devel}}

== Maemo-specific packaging information ==

=== Packaging policy ===

{{main|Packaging/Guidelines}}

Maemo packages follow the Debian Policy, but there are some items where Maemo is more strict, since it is an embedded distribution, and other areas where it is more relaxed, since it supports only one user at a time on a single target device and UI framework. In other areas, the policy differs from Debian because we have different objectives and maintainers, and because we have provided different infrastructure for packaging and distributing software.

Most of the specifics for Maemo packaging are outlined in the [[/Guidelines|Maemo packaging guidelines]].

=== Sections ===

For applications to be installable throughh Hildon Application Manager, the &quot;Secton:&quot; field in the &lt;code&gt;debian/control&lt;/code&gt; file must conform to certain naming conventions.

The conformant section names are [[Packaging/Guidelines#Sections|outlined in the packaging guidelines]], and are listed below.

{| class=&quot;wikitable sortable&quot;
|+ Maemo section names
|-
! Key
! class=&quot;unsortable&quot; | Example English i18n
! class=&quot;unsortable&quot; | Example apps
|-
| &lt;code&gt;user/desktop&lt;/code&gt;
| Desktop
| Home, statusbar and taskbar applets
|-
| &lt;code&gt;user/development&lt;/code&gt;
| Programming
| py2deb
|-
| &lt;code&gt;user/education&lt;/code&gt;
| Education
| Flashcard apps
|-
| &lt;code&gt;user/games&lt;/code&gt;
| Games
| Doom, Duke Nukem 3D
|-
| &lt;code&gt;user/graphics&lt;/code&gt;
| Graphics
| Photo apps, GIMP, Inkscape, fonts
|-
| &lt;code&gt;user/multimedia&lt;/code&gt;
| Multimedia ''or'' Sound &amp; Video
| Canola, mplayer, Kagu, UKMP, MediaBox
|-
| &lt;code&gt;user/navigation&lt;/code&gt;
| (Location &amp;) Navigation
| maemo-mapper, Navit
|-
| &lt;code&gt;user/network&lt;/code&gt;
| Internet &amp; Networking
| Web browsers, Samba clients, OpenAFS, Transmission
|-
| &lt;code&gt;user/office&lt;/code&gt;
| Office
| GPE, Claws, AbiWord
|-
| &lt;code&gt;user/science&lt;/code&gt;
| Science
| gnuplot, Octave
|-
| &lt;code&gt;user/system&lt;/code&gt;
| System
| rotation-support, enhanced kernels, themes
|-
| &lt;code&gt;user/utilities&lt;/code&gt;
| Utilities ''or'' Accessories
| Calculators, terminals, text editors
|}

If the package's section starts &quot;user/&quot;, but is not any of the above, the ''Application Manager'' forces them into an &quot;Other&quot; section.

=== Desktop files ===

{{main|Desktop file format}}

Desktop files are used to launch applications from the main application menu. Their format is standardised and documented in the [http://standards.freedesktop.org/desktop-entry-spec/1.0/ freedesktop.org desktop file spec]. The Maemo application menu uses the same desktop files, but looks for them to a slightly different location; &lt;code&gt;/usr/share/applications/hildon&lt;/code&gt; instead of &lt;code&gt;/usr/share/applications&lt;/code&gt;.

The location of the directory in which to install .desktop files can also be obtained using &lt;code&gt;pkg-config&lt;/code&gt;:

 pkg-config --variable=desktopentrydir osso-af-settings

The returned value can be used in a Makefile to install the desktop file to the correct location.

There is some official documentation on [[Documentation/Maemo_5_Developer_Guide/Application_Development/Writing_a_new_maemo_application#Adding_application_to_menu|desktop files for Maemo applications]].

=== Maemo-specific fields ===

There are a number of Maemo-specific Debian packaging fields that are handled by Application manager. The Application manager documentation [http://hildon-app-mgr.garage.maemo.org/packaging-stable.html outlines] them.

==== Displaying an icon in the Application Manager next to your package ====

Displaying an icon in the Application Manager next to your package makes it look pretty and makes your package stand out, and it is not that hard to do.

&lt;ol&gt;
&lt;li&gt;
Make an image that is '''48×48''' pixels. The image can be saved in any format that is supported by &lt;code&gt;GdkPixbufLoader&lt;/code&gt; on Maemo, but PNG is commonly used.
&lt;/li&gt;
&lt;li&gt;
base64 encode the image. This can be done in many ways, depending on the platform, but assuming you are in Scratchbox:
&lt;pre&gt;
fakeroot apt-get update
fakeroot apt-get install sharutils
uuencode -m &lt;name of 48×48 image&gt; &lt;name of 48×48 image&gt; &gt; &lt;name of 48×48 image&gt;.base64
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Add the field &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt; to your &lt;code&gt;debian/control&lt;/code&gt; (in Maemo4 the size of the icons was 26×26 pixels, hence the name of the field, '''which has not changed''' in Maemo 5)
&lt;/li&gt;
&lt;li&gt;
Open the base64 version of your image and copy from the line under ''begin-base64 644 &lt;name of 48×48 image&gt;'' to the line above the ''===''
&lt;/li&gt;
&lt;li&gt;
Add this to the &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt; field
&lt;/li&gt;
&lt;li&gt;
Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image:
&lt;pre&gt;
uuencode -m &lt;name of 48×48 image&gt; &lt;name of 48×48 image&gt; | sed -e s,^,\ ,  &gt; &lt;name of 48×48 image&gt;.base64
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

Here is an example of a properly formatted Maemo-Icon-26: (of wrong image size)
&lt;pre&gt;
Description: Chess...
XB-Maemo-Icon-26: 
 iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABGdBTUEAAK/INwWK6QAAABl0
 RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALxSURBVHja3FZNTBNREP669J/S
 XYxtKRWl1JOSFBIPhkitCQeNiaKBmzdj9Ggk0ZOBxHDWixcTjV6MF+WiIB40YEyMBMGYEqQK
 tLS2lG7pdre0pF3WtxslgJRuD2J0kpfdTN7O976Z782sRpIk7IZR2C2TGW1cv8xaY5WuXLy8
 iW5XV5fk8/kkr9e7ya/T6SSNRiOViikvbbmDDD590SusZBGYDiDwJbDud7vdvYIgIJfLYXV1
 tSwhrQrSfRX6/26N/j+gkjW6ce06HE4HGEctGuj9oEwUzFYz5ubmEA6HQVEUisUi8vn8b4rd
 zjRbNxCZrr+3t7XTzjrnvMfdxMi7xj6OIRaPIbWcQjabVdRWKBTkrX4SZ2SjvCtKXf+tkxxD
 M5MetwfHj/lwwueHy+WCVqvdehdHKq7R6JvbpfNMAGiGhs1mg9ls3sS+4hodbDqCwef9mA9P
 7vhhVVWV3BGUOomiaCSufEWMxNwimlweMFYbpoMfyp70J6t8xanLZgWs8Ak07N0Hau0P3qOs
 wIHnl5FJx2E1WlUFuXrzIS713KusRplMCoLAgl2O4N34ODQ4VRaot6cbUzMRNNQ/w/uJWXWM
 eH5JARkYHsLQMIe1NZEpB7Sn1uKFhkL3maO4cL5NHVAo+hkPnrzEq2HqQIf/3ICzvr7FXmeH
 3qBXlslkgtFoVBS3YfbcKRRFfJpagE6vUwd0//FbjI7mkcvnGoNfg51ORx3sNju+hWYxMxsk
 jHlF2jJgdXU1DAaDrDx/kQAVRREJlldXo8kJoPlQ8wHSevosFgs5MmE5H0IingDP8eAzPAQC
 tkJakDz05Hsks+poPzwg6+Luo9chVb2O3Hilv7V6W5nO02cVX3wxjsj3CMKRBUSjUcQWY0iy
 SQVoi6XJaiQxubKpI02yj2xk6BoaBr0BqXRKCZpYSiCZlIXCguM4pWtvY0ypyUtt87PSIj/t
 pJ/JICzLKiBLySTYVArpdFrp3DuMhRZVqfvnJ+wPAQYA1hdr5EDqltYAAAAASUVORK5CYII=
&lt;/pre&gt;

Please note that if you are packaging a command-line only program that can be executed by the user, you should use the [[User:Tanner#CLI_icon|CLI icon]] only.

==== Bugtracker location ====

&lt;del&gt;As a requirement&lt;/del&gt;[http://wiki.maemo.org/Extras-testing/QA_checklist#Blockers] Is strongly recommended for your package being promoted from [[Extras-testing]] to [[Extras]], your &lt;code&gt;debian/control&lt;/code&gt; file must have a link to a bugtracker, which is visible in the [http://maemo.org/packages/ maemo.org packages interface]. It is possible to [[Bugs:Adding Extra products|request a component at bugs.maemo.org]] or use a [[Getting_started_with_Maemo_Garage#Trackers_and_tasks|Garage project bugtracker]], or even, for simple packages, an email address .

Add the field ‘XSBC-Bugtracker’ to your &lt;code&gt;debian/control&lt;/code&gt;, for example:
 XSBC-Bugtracker: https://bugs.maemo.org/enter_bug.cgi?product=mypackage

Alternatively for e-mail addresses, you can use the following format:
 XSBC-Bugtracker: mailto:yourname@example.com

==== Pretty names ====

A package can specify a pretty name for itself. This name is displayed in the Application manager UI instead of the real package name.

The pretty name is specified with the '&lt;code&gt;XSBC-Maemo-Display-Name&lt;/code&gt;' field in your &lt;code&gt;debian/control&lt;/code&gt; file, for example:
 XSBC-Maemo-Display-Name: Hello, world!

==== Maemo revision string ====

If an upstream package is re-packaged or modified for Maemo, the Maemo revision string should be appended to the upstream revision, in the &lt;code&gt;debian/changelog&lt;/code&gt; file. So if in Debian the package name was something like &quot;Myapp-0.4-2&quot; in maemo this package will be called &quot;Myapp-0.4-2maemo0&quot;. The number after the &quot;maemo&quot; string is a progressive number.

==== Maemo upgrade description ====

Tell users what changed in the update:
 XB-Maemo-Upgrade-Description: Formatted like &quot;Description&quot;. 
  Will be displayed if user upgrades to new version and clicks
  on &quot;Details&quot;.
  .
  Human-readable and translatable.
As with all Maemo-specific fields, the &quot;XB-&quot; prefix is needed so the field will remain in the binary package.

==== Translations of text fields ====

The following fields can be translated to the end user's local language: Maemo-Display-Name, Description and Maemo-Upgrade-Description. It is strongly recommended to make use of this possibility so that end users understand what the application does for them while browsing through the Application Manager.

The translation is done by adding a suffix like &quot;-de_DE&quot; to the respective field name, where &quot;de_DE&quot; is the locale the translated text is for. For example, if LC_MESSAGES equals de_DE, the Application Manager first tries &quot;Description-de_DE&quot; to find the description of a package and then falls back to &quot;Description&quot;.

Here's an example:
 Description: Chess...
 XB-Maemo-Display-Name: My package name
 XB-Maemo-Upgrade-Description: Formatted like &quot;Description&quot;. 
 XB-Description-de_DE: Schach...
 XB-Maemo-Display-Name-de_DE: Mein Packetname
 XB-Maemo-Upgrade-Description-de_DE: Formatiert wie &quot;Description&quot;. 
Note how &quot;Description&quot; becomes &quot;XB-Description-xx_YY&quot; when a locale suffix is added. This is because it's not a standard Debian field any longer.

=== Debhelper 7 ===

Since the Autobuilder's [http://www.gossamer-threads.com/lists/maemo/developers/60704 use] of the Squeeze devkit, debhelper 7 is supported natively by it.

Follow the steps on that link to also make your FREMANTLE_* target use the Squeeze devkit.

Note: dh_make doesn't seem to be provided by the Squeeze devkit, so you'll have to run it outside of Scratchbox to get a debian/ folder based on debhelper 7.

----

A backport of Debhelper 7 for Fremantle is available in extras-devel. 

 $ fakeroot apt-get install debhelper7 

It works transparently and can coexist with debhelper 5 in the SDK. It even works on the autobuilder, if the package specifies the correct build-dependency of &lt;code&gt;debhelper7&lt;/code&gt;. The following lines in &lt;code&gt;debian/rules&lt;/code&gt; are necessary to use the new debhelper:

 PATH:=/usr/bin/dh7:/usr/bin:$(PATH)
 export PATH
 SBOX_REDIRECT_IGNORE=/usr/bin/perl
 export SBOX_REDIRECT_IGNORE

In debian/control change:

 Build-Depends: debhelper (&gt;= 7) [...]

to

 Build-Depends: debhelper'''7''' (&gt;= 7) [...]

Further information about the updated debhelper is available at [[User:Tanner#debhelper7]].

If you also need a more recent [http://build-common.alioth.debian.org/ CDBS], then use the package [http://maemo.org/packages/view/cdbs-dh7/ cdbs-dh7], which conflicts with the standard CDBS and does not work on autobuilder yet.

Alternatively, you can try to use debhelper 5. Debian packages that require level 7 need some changes, for example:
* debian/compat: 7 -&gt; 5
* debian/control: Build-Depends: debhelper (&gt;= 7) -&gt; debhelper (&gt;= 5)
* Possibly, comment out a few dh_* calls from debian/rules, which might not exist on level 5

Things might get complex if the packaging already uses some new features of level 7, like CDBS-style helper rules. In such cases, looking at versions of packages written prior to the compatibility level upgrade might help doing the downgrade (and most Debian packages are kept in public SCMs like svn.debian.org).

=== Ovi Store publishing ===

{{main|Ovi Store publishing}}

[[Category:Packaging]]</text>
    </revision>
  </page>
  <page>
    <title>Packaging</title>
    <id>1868</id>
    <revision>
      <id>48556</id>
      <timestamp>2012-06-20T08:13:44Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Packaging]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">== Creating Packages for Maemo ==

Since Maemo is based on the Debian operating system, creating packages for Maemo borrows a lot of tools and techniques from Debian.

=== Further reading ===

The following list of resources gives in-depth information on packaging in Debian and Maemo. These links largely discuss packaging Python apps but can be used for any programming language. 

*  [http://www.openismus.com/documents/linux/automake/automake Using automake and autoconf with C++]: A great beginner's tutorial on using autotools to create an easily packagable application 
*  [http://www.debian.org/doc/maint-guide/ Debian New Maintainers Guide]: The best place for information if you have never built a .deb before
*  [http://wiki.debian.org/Teams/PythonModulesTeam Debian's Python Modules Team]: definitive documentation for packaging Python modules for Debian
*  [http://python-modules.alioth.debian.org/python-modules-policy.htm Python Modules Policy]: Reference document.
* [http://showmedo.com/videos/video?name=linuxJensMakingDeb Creating debs on Ubuntu]: A great screencast and tutorial showing how to package a simple python application as a deb on Ubuntu!
* [https://wiki.ubuntu.com/PackagingGuide Ubuntu Packaging Guide]
* [[Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing | Deploying and distributing software on Maemo 5]]: Detailed documentation on packaging for Maemo, including how to ship your software afterwards
* [http://www.forum.nokia.com/Tools_Docs_and_Code/Documentation/Maemo.xhtml Forum Nokia developer documentation]: General developer documentation reference
* [[Port an existing Debian package]]
* [[Packaging a Qt application]] and how it differs from the packaging described here
* [[User:Jebba]] has created a [[User:Jebba/Package Building HOWTO | package building howto]] with details on every step

==== Checking Maemo Packages ====

Lintian dissects Debian packages and reports bugs and policy violations. 
It contains automated checks for many aspects of Debian policy as well as some checks for common errors. Unfortunately it does not check conformance to the additional Maemo policy.

Currently Maemo is creating [[Maemian]] to check its policy.

== A concrete example - hello ==

=== Prerequisites ===

For the purposes of our article, we will be packaging a simple [[Hildon]] hello-world application. This will be a standard source tarball using [[Documentation/Maemo 5 Developer Guide/GNU Build System#GNU Autotools|autotools]]. For further information, you can follow [http://www.openismus.com/documents/linux/automake/automake this detailed tutorial] on using Autotools for C++ projects.

You will need a working [[Documentation/Maemo 5 Final SDK Installation|Maemo 5 SDK]] and the &lt;code&gt;libhildon1-dev&lt;/code&gt; package, version 2.2 or greater, which can be installed in Scratchbox with the command:

 fakeroot apt-get install libhildon1-dev

==== hello.c ====

The only C file in our project is &lt;code&gt;hello.c&lt;/code&gt;:

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon/hildon.h&gt;

int main(int argc, char *argv[])
{
  GtkWidget *window;
  GtkWidget *label;

  hildon_gtk_init(&amp;argc, &amp;argv);

  window = hildon_window_new();
  label = gtk_label_new(&quot;Hello world!&quot;);

  g_signal_connect(G_OBJECT (window), &quot;destroy&quot;, G_CALLBACK (gtk_widget_destroy), NULL);
  gtk_container_add(GTK_CONTAINER(window), label);
  gtk_widget_show_all(window);

  gtk_main();
  return 0;
}
&lt;/source&gt;

==== Autotools ====

{{main|Documentation/Maemo 5 Developer Guide/GNU Build System}}

The rest of the project is a small number of files to allow us to make a standard &quot;&lt;code&gt;./configure &amp;&amp; make &amp;&amp; make install&lt;/code&gt;&quot; project with automake, aclocal and autoconf.

Using the autotools for packaging is quite simple for small projects. You need two files to define the structure of your project, &lt;code&gt;Makefile.am&lt;/code&gt; and &lt;code&gt;configure.ac&lt;/code&gt;.

&lt;code&gt;configure.ac&lt;/code&gt; is a file used by automake and autoconf to generate the configure script, define the version of the resulting .tar.gz and include the tests which we need to ensure the presence of the appropriate versions of dependencies. Since &lt;code&gt;hello.c&lt;/code&gt; is so simple, we only need to check for the standard C library and a C compiler, and for the Hildon library. The Hildon library check is done by &lt;code&gt;pkg-config&lt;/code&gt;, which makes it easy to check the library version, and get the right compiler and linker flags. The only output file generated by the configure script will be &lt;code&gt;Makefile&lt;/code&gt;, from the input file &lt;code&gt;Makefile.in&lt;/code&gt;, which is in turn generated from &lt;code&gt;Makefile.am&lt;/code&gt;

&lt;source lang=&quot;autoconf&quot;&gt;
AC_INIT([hello], [0.1])
AM_INIT_AUTOMAKE([foreign])
AC_PROG_CC
PKG_CHECK_MODULES([HILDON], [hildon-1 &gt;= 2.2])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
&lt;/source&gt;

&lt;code&gt;Makefile.am&lt;/code&gt; defines the source structure of your project, listing the files to be installed, the binaries and object files to be generated, and the relationship between the binaries and source files.

You can see that our &lt;code&gt;Makefile.am&lt;/code&gt; is very simple, defining one source file, and one binary file. The &quot;_SOURCES&quot; line must start with a binary name from &quot;bin_PROGRAMS&quot; to make the link between the source file and the executable. The &quot;_CPPFLAGS&quot; and &quot;_LDADD&quot; lines take the Hildon preprocessor and library flags that are provided by &lt;code&gt;pkg-config&lt;/code&gt; in &lt;code&gt;configure.ac&lt;/code&gt;.

 bin_PROGRAMS = hello
 hello_SOURCES = hello.c
 hello_CPPFLAGS = $(HILDON_CFLAGS)
 hello_LDADD = $(HILDON_LIBS)

Once we have these files, we simply need to initialise our project, defining its license, and generating all of the required files for automake to do its thing. We do this by running:

 autoreconf --force --install

The arguments to autoreconf copy required files to the project (including generic install instructions and a license).

Pay attention during the execution of autoreconf, the execution should be entirely silent if it runs correctly. If there are messages, read them and do what is required to address the issues.

Now to build your software, you have a standard configure script and can simply run

 ./configure
 make
 make install

and to build a distribution file, you have

 make dist

which will create a file ''&lt;code&gt;hello-0.1.tar.gz&lt;/code&gt;'', which you can use for the rest of this packaging tutorial.

=== Packaging a .deb ===

The easiest way to package a .deb file is to use Debian's build helpers.

Package your application as you would distribute it in a .tar.gz (when using autotools, this is done with &quot;&lt;code&gt;make distcheck&lt;/code&gt;&quot;). In our example, we uncompress &lt;code&gt;hello-0.1.tar.gz&lt;/code&gt;, and change the current directory to &lt;code&gt;hello-0.1&lt;/code&gt;.

 $ tar xfz hello-0.1.tar.gz
 $ cd hello-0.1

Then we run &lt;code&gt;dh_make&lt;/code&gt;, which initialises the Debian package management file structure (among other things):
 $ dh_make -e &lt;my email address&gt; -f ../hello-0.1.tar.gz -c GPL

You can of course choose a different licence for your package.

Answer the resulting questions - in this case, we are packaging a single binary.

We can now edit the files in the &lt;code&gt;debian/&lt;/code&gt; directory which has been created to their desired values, before packaging the software. In fact, we can delete many of these files. All of the files ending in “.ex” or “.EX” are example files, intended to help you package different types of software.

If you use a standard configure script, you do not need to modify any files except &lt;code&gt;debian/control&lt;/code&gt;, where the Hildon build-time dependency should be added. Change the &lt;code&gt;Build-Depends&lt;/code&gt; line to read (by adding &quot;&lt;code&gt;libhildon1&lt;/code&gt;&quot; at the end):

 Build-Depends: debhelper (&gt;= 5), autotools-dev, libhildon1 (&gt;= 2.2)

Before creating a .deb, you should set a changelog entry. .deb changelogs follow a special format, so rather than editing the files by hand, use the dch helper application. This will allow you to add what new features went into this application, give credit, and so on. It is an especially important file because it sets the version and revision of the source and binary packages. On saving, a syntax check is performed which ensures that the resulting file is OK. The file format is completely documented in the [http://www.debian.org/doc/maint-guide/ Debian packaging guide].

Finally, we generate a .deb from the source code using the command:
 dpkg-buildpackage -sa -rfakeroot -k&lt;my email address&gt;

You should now have several files created in the parent directory to where you unpacked the source code. I have;

 hello_0.1.orig.tar.gz
 hello_0.1-1_i386.deb
 hello_0.1-1.diff.gz
 hello_0.1-1.dsc
 hello_0.1-1_i386.changes

Now change the target architecture to &lt;code&gt;ARMEL&lt;/code&gt; and rebuild it, to generate &lt;code&gt;hello_0.1-1_arm.deb&lt;/code&gt;:

 sb-conf se FREMANTLE_ARMEL
 dpkg-buildpackage -sa -rfakeroot -k&lt;my email address&gt;

==== Additional information ====

===== Ignoring git metadata =====

If you use git then you may not want to include the entire git repo in your source bundle. With dpkg-source version 1.13.25 the -i option is not git-aware so you can do:

  dpkg-buildpackage -rfakeroot -sa  -i -I.git

===== Adding build-time dependencies =====

If your program uses another library, such as Hildon in the above example, then both the Debian package and the configure script must depend on the library. 
Otherwise, since the autobuilder only installs packages explicitly required to build your package, the build will fail.

Often, the Debian package has a different name to the pkg-config file, just like in the Hildon example. One way to check which package owns a pkg-config file is to use &lt;code&gt;dpkg-query&lt;/code&gt; on the pkg-config file, for example the &lt;code&gt;mafw&lt;/code&gt; pkg-config file (notice the extra &lt;code&gt;.pc&lt;/code&gt; file extension):
 dpkg-query --search mafw.pc
which looks through the installed packages and finds:
 libmafw0-dev: /usr/lib/pkgconfig/mafw.pc
Then you know that you must add &lt;code&gt;libmafw0-dev&lt;/code&gt; to the &lt;code&gt;Build-Depends&lt;/code&gt; line in &lt;code&gt;debian/control&lt;/code&gt; if you use the &lt;code&gt;mafw&lt;/code&gt; pkg-config file in &lt;code&gt;configure.ac&lt;/code&gt;.

===== Checking build-time dependencies =====

You may verify that your &lt;code&gt;Build-Depends&lt;/code&gt; field in debian/control is complete by running:

 dpkg-depcheck -m dpkg-buildpackage -rfakeroot -b

in the source tree. (You will need to &lt;code&gt;fakeroot apt-get install devscripts&lt;/code&gt; for this to work).

=== Adding an icon and desktop file ===

To ensure that your package shows up in the application menu, you will need to install an icon and a .desktop file with your package.

The icon can be in a number of formats. To keep things simple, you can use [[:Image:Hello.png | this 48x48 .png]] as your icon for now.

The format of .desktop files is specified by the [http://standards.freedesktop.org/desktop-entry-spec/1.0/ freedesktop.org desktop entry spec], with a number of [[Desktop file format | Maemo specific extensions]]. The simplest possible .desktop file for Maemo contains a &quot;Desktop Entry&quot; group containing an indicator that it refers to an application, the application name, the icon to use, and a path to the executable which will launch the application. Other standard keys can be found [http://standards.freedesktop.org/desktop-entry-spec/1.0/ar01s05.html in the spec].

&lt;pre&gt;
[Desktop Entry]
Type=Application
Name=Hello!
Icon=hello
Exec=/usr/bin/hello
&lt;/pre&gt;

Pixmaps referenced without an absolute path in the desktop file can be installed in a number of locations, specified in the [http://freedesktop.org/wiki/Specifications/icon-theme-spec freedesktop.org icon theme spec]. The simplest place to put the icon is in &lt;code&gt;/usr/share/icons&lt;/code&gt;. The Icon entry above will thus match &lt;code&gt;/usr/share/icons/hello.png&lt;/code&gt;.

Once you have created these files in your source directory, you will need to add the following to &lt;code&gt;Makefile.am&lt;/code&gt; to ensure that they are distributed in the tarball (created during &lt;code&gt;make dist&lt;/code&gt;) installed in the right place, and packaged correctly, and you should re-run &lt;code&gt;autoreconf&lt;/code&gt;, &lt;code&gt;configure&lt;/code&gt;, &lt;code&gt;make dist&lt;/code&gt; and &lt;code&gt;dpkg_buildpackage&lt;/code&gt; once you have done so.

&lt;source lang=&quot;make&quot;&gt;
icondir = $(datadir)/icons
dist_icon_DATA = hello.png

desktopdir = $(datadir)/applications/hildon
dist_desktop_DATA = hello.desktop
&lt;/source&gt;

To make the package installable using Hildon Application Manager (which will get launched when you select the package), you should follow the [[#Maemo-specific packaging information]] below. In particular, you must set the &quot;Section&quot; to one of the valid sections below in the &quot;&lt;code&gt;debian/control&lt;/code&gt;&quot; file.

=== Testing your package ===

The first place you can test your app is in Scratchbox. Start Xephyr and the Maemo GUI as described in [[Documentation/Maemo 5 Final SDK Installation | the Maemo 5 SDK instructions]], then run your application by hand from within Scratchbox.

Once you have created .deb packages of your application for x86 and armel, you can also test the installation process and test your application on your N900.

To test the installation on Xephyr, you can either install it from the command line with &lt;pre&gt;dpkg -i hello_0.1-1_i386.deb&lt;/pre&gt;, or copy the i386 .deb files to the &lt;pre&gt;/home/&lt;username&gt;/MyDocs&lt;/pre&gt; directory, and click on it to install it.

To test on your device, copy the armel .deb file to the .documents directory on your device, and install it by selecting it in the file manager. You will need to ensure that the OS version on your device is compatible with the development environment in your Scratchbox.

Once the package is installed, you will be able to launch it directly from the command line in the [[terminal|X terminal]] application. To get the application to appear in the application list, you will need to include an icon and desktop file in the package as described in [[/Guidelines | the packaging policy]].

=== Uploading to extras-devel ===

{{main|Uploading to Extras-devel}}

== Maemo-specific packaging information ==

=== Packaging policy ===

{{main|Packaging/Guidelines}}

Maemo packages follow the Debian Policy, but there are some items where Maemo is more strict, since it is an embedded distribution, and other areas where it is more relaxed, since it supports only one user at a time on a single target device and UI framework. In other areas, the policy differs from Debian because we have different objectives and maintainers, and because we have provided different infrastructure for packaging and distributing software.

Most of the specifics for Maemo packaging are outlined in the [[/Guidelines|Maemo packaging guidelines]].

=== Sections ===

For applications to be installable throughh Hildon Application Manager, the &quot;Secton:&quot; field in the &lt;code&gt;debian/control&lt;/code&gt; file must conform to certain naming conventions.

The conformant section names are [[Packaging/Guidelines#Sections|outlined in the packaging guidelines]], and are listed below.

{| class=&quot;wikitable sortable&quot;
|+ Maemo section names
|-
! Key
! class=&quot;unsortable&quot; | Example English i18n
! class=&quot;unsortable&quot; | Example apps
|-
| &lt;code&gt;user/desktop&lt;/code&gt;
| Desktop
| Home, statusbar and taskbar applets
|-
| &lt;code&gt;user/development&lt;/code&gt;
| Programming
| py2deb
|-
| &lt;code&gt;user/education&lt;/code&gt;
| Education
| Flashcard apps
|-
| &lt;code&gt;user/games&lt;/code&gt;
| Games
| Doom, Duke Nukem 3D
|-
| &lt;code&gt;user/graphics&lt;/code&gt;
| Graphics
| Photo apps, GIMP, Inkscape, fonts
|-
| &lt;code&gt;user/multimedia&lt;/code&gt;
| Multimedia ''or'' Sound &amp; Video
| Canola, mplayer, Kagu, UKMP, MediaBox
|-
| &lt;code&gt;user/navigation&lt;/code&gt;
| (Location &amp;) Navigation
| maemo-mapper, Navit
|-
| &lt;code&gt;user/network&lt;/code&gt;
| Internet &amp; Networking
| Web browsers, Samba clients, OpenAFS, Transmission
|-
| &lt;code&gt;user/office&lt;/code&gt;
| Office
| GPE, Claws, AbiWord
|-
| &lt;code&gt;user/science&lt;/code&gt;
| Science
| gnuplot, Octave
|-
| &lt;code&gt;user/system&lt;/code&gt;
| System
| rotation-support, enhanced kernels, themes
|-
| &lt;code&gt;user/utilities&lt;/code&gt;
| Utilities ''or'' Accessories
| Calculators, terminals, text editors
|}

If the package's section starts &quot;user/&quot;, but is not any of the above, the ''Application Manager'' forces them into an &quot;Other&quot; section.

=== Desktop files ===

{{main|Desktop file format}}

Desktop files are used to launch applications from the main application menu. Their format is standardised and documented in the [http://standards.freedesktop.org/desktop-entry-spec/1.0/ freedesktop.org desktop file spec]. The Maemo application menu uses the same desktop files, but looks for them to a slightly different location; &lt;code&gt;/usr/share/applications/hildon&lt;/code&gt; instead of &lt;code&gt;/usr/share/applications&lt;/code&gt;.

The location of the directory in which to install .desktop files can also be obtained using &lt;code&gt;pkg-config&lt;/code&gt;:

 pkg-config --variable=desktopentrydir osso-af-settings

The returned value can be used in a Makefile to install the desktop file to the correct location.

There is some official documentation on [[Documentation/Maemo_5_Developer_Guide/Application_Development/Writing_a_new_maemo_application#Adding_application_to_menu|desktop files for Maemo applications]].

=== Maemo-specific fields ===

There are a number of Maemo-specific Debian packaging fields that are handled by Application manager. The Application manager documentation [http://hildon-app-mgr.garage.maemo.org/packaging-stable.html outlines] them.

==== Displaying an icon in the Application Manager next to your package ====

Displaying an icon in the Application Manager next to your package makes it look pretty and makes your package stand out, and it is not that hard to do.

&lt;ol&gt;
&lt;li&gt;
Make an image that is '''48×48''' pixels. The image can be saved in any format that is supported by &lt;code&gt;GdkPixbufLoader&lt;/code&gt; on Maemo, but PNG is commonly used.
&lt;/li&gt;
&lt;li&gt;
base64 encode the image. This can be done in many ways, depending on the platform, but assuming you are in Scratchbox:
&lt;pre&gt;
fakeroot apt-get update
fakeroot apt-get install sharutils
uuencode -m &lt;name of 48×48 image&gt; &lt;name of 48×48 image&gt; &gt; &lt;name of 48×48 image&gt;.base64
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Add the field &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt; to your &lt;code&gt;debian/control&lt;/code&gt; (in Maemo4 the size of the icons was 26×26 pixels, hence the name of the field, '''which has not changed''' in Maemo 5)
&lt;/li&gt;
&lt;li&gt;
Open the base64 version of your image and copy from the line under ''begin-base64 644 &lt;name of 48×48 image&gt;'' to the line above the ''===''
&lt;/li&gt;
&lt;li&gt;
Add this to the &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt; field
&lt;/li&gt;
&lt;li&gt;
Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image:
&lt;pre&gt;
uuencode -m &lt;name of 48×48 image&gt; &lt;name of 48×48 image&gt; | sed -e s,^,\ ,  &gt; &lt;name of 48×48 image&gt;.base64
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

Here is an example of a properly formatted Maemo-Icon-26: (of wrong image size)
&lt;pre&gt;
Description: Chess...
XB-Maemo-Icon-26: 
 iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABGdBTUEAAK/INwWK6QAAABl0
 RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALxSURBVHja3FZNTBNREP669J/S
 XYxtKRWl1JOSFBIPhkitCQeNiaKBmzdj9Ggk0ZOBxHDWixcTjV6MF+WiIB40YEyMBMGYEqQK
 tLS2lG7pdre0pF3WtxslgJRuD2J0kpfdTN7O976Z782sRpIk7IZR2C2TGW1cv8xaY5WuXLy8
 iW5XV5fk8/kkr9e7ya/T6SSNRiOViikvbbmDDD590SusZBGYDiDwJbDud7vdvYIgIJfLYXV1
 tSwhrQrSfRX6/26N/j+gkjW6ce06HE4HGEctGuj9oEwUzFYz5ubmEA6HQVEUisUi8vn8b4rd
 zjRbNxCZrr+3t7XTzjrnvMfdxMi7xj6OIRaPIbWcQjabVdRWKBTkrX4SZ2SjvCtKXf+tkxxD
 M5MetwfHj/lwwueHy+WCVqvdehdHKq7R6JvbpfNMAGiGhs1mg9ls3sS+4hodbDqCwef9mA9P
 7vhhVVWV3BGUOomiaCSufEWMxNwimlweMFYbpoMfyp70J6t8xanLZgWs8Ak07N0Hau0P3qOs
 wIHnl5FJx2E1WlUFuXrzIS713KusRplMCoLAgl2O4N34ODQ4VRaot6cbUzMRNNQ/w/uJWXWM
 eH5JARkYHsLQMIe1NZEpB7Sn1uKFhkL3maO4cL5NHVAo+hkPnrzEq2HqQIf/3ICzvr7FXmeH
 3qBXlslkgtFoVBS3YfbcKRRFfJpagE6vUwd0//FbjI7mkcvnGoNfg51ORx3sNju+hWYxMxsk
 jHlF2jJgdXU1DAaDrDx/kQAVRREJlldXo8kJoPlQ8wHSevosFgs5MmE5H0IingDP8eAzPAQC
 tkJakDz05Hsks+poPzwg6+Luo9chVb2O3Hilv7V6W5nO02cVX3wxjsj3CMKRBUSjUcQWY0iy
 SQVoi6XJaiQxubKpI02yj2xk6BoaBr0BqXRKCZpYSiCZlIXCguM4pWtvY0ypyUtt87PSIj/t
 pJ/JICzLKiBLySTYVArpdFrp3DuMhRZVqfvnJ+wPAQYA1hdr5EDqltYAAAAASUVORK5CYII=
&lt;/pre&gt;

Please note that if you are packaging a command-line only program that can be executed by the user, you should use the [[User:Tanner#CLI_icon|CLI icon]] only.

==== Bugtracker location ====

&lt;del&gt;As a requirement&lt;/del&gt;[http://wiki.maemo.org/Extras-testing/QA_checklist#Blockers] Is strongly recommended for your package being promoted from [[Extras-testing]] to [[Extras]], your &lt;code&gt;debian/control&lt;/code&gt; file must have a link to a bugtracker, which is visible in the [http://maemo.org/packages/ maemo.org packages interface]. It is possible to [[Bugs:Adding Extra products|request a component at bugs.maemo.org]] or use a [[Getting_started_with_Maemo_Garage#Trackers_and_tasks|Garage project bugtracker]], or even, for simple packages, an email address .

Add the field ‘XSBC-Bugtracker’ to your &lt;code&gt;debian/control&lt;/code&gt;, for example:
 XSBC-Bugtracker: https://bugs.maemo.org/enter_bug.cgi?product=mypackage

Alternatively for e-mail addresses, you can use the following format:
 XSBC-Bugtracker: mailto:yourname@example.com

==== Pretty names ====

A package can specify a pretty name for itself. This name is displayed in the Application manager UI instead of the real package name.

The pretty name is specified with the '&lt;code&gt;XSBC-Maemo-Display-Name&lt;/code&gt;' field in your &lt;code&gt;debian/control&lt;/code&gt; file, for example:
 XSBC-Maemo-Display-Name: Hello, world!

==== Maemo revision string ====

If an upstream package is re-packaged or modified for Maemo, the Maemo revision string should be appended to the upstream revision, in the &lt;code&gt;debian/changelog&lt;/code&gt; file. So if in Debian the package name was something like &quot;Myapp-0.4-2&quot; in maemo this package will be called &quot;Myapp-0.4-2maemo0&quot;. The number after the &quot;maemo&quot; string is a progressive number.

==== Maemo upgrade description ====

Tell users what changed in the update:
 XB-Maemo-Upgrade-Description: Formatted like &quot;Description&quot;. 
  Will be displayed if user upgrades to new version and clicks
  on &quot;Details&quot;.
  .
  Human-readable and translatable.
As with all Maemo-specific fields, the &quot;XB-&quot; prefix is needed so the field will remain in the binary package.

==== Translations of text fields ====

The following fields can be translated to the end user's local language: Maemo-Display-Name, Description and Maemo-Upgrade-Description. It is strongly recommended to make use of this possibility so that end users understand what the application does for them while browsing through the Application Manager.

The translation is done by adding a suffix like &quot;-de_DE&quot; to the respective field name, where &quot;de_DE&quot; is the locale the translated text is for. For example, if LC_MESSAGES equals de_DE, the Application Manager first tries &quot;Description-de_DE&quot; to find the description of a package and then falls back to &quot;Description&quot;.

Here's an example:
 Description: Chess...
 XB-Maemo-Display-Name: My package name
 XB-Maemo-Upgrade-Description: Formatted like &quot;Description&quot;. 
 XB-Description-de_DE: Schach...
 XB-Maemo-Display-Name-de_DE: Mein Packetname
 XB-Maemo-Upgrade-Description-de_DE: Formatiert wie &quot;Description&quot;. 
Note how &quot;Description&quot; becomes &quot;XB-Description-xx_YY&quot; when a locale suffix is added. This is because it's not a standard Debian field any longer.

=== Debhelper 7 ===

Since the Autobuilder's [http://www.gossamer-threads.com/lists/maemo/developers/60704 use] of the Squeeze devkit, debhelper 7 is supported natively by it.

Follow the steps on that link to also make your FREMANTLE_* target use the Squeeze devkit.

Note: dh_make doesn't seem to be provided by the Squeeze devkit, so you'll have to run it outside of Scratchbox to get a debian/ folder based on debhelper 7.

----

A backport of Debhelper 7 for Fremantle is available in extras-devel. 

 $ fakeroot apt-get install debhelper7 

It works transparently and can coexist with debhelper 5 in the SDK. It even works on the autobuilder, if the package specifies the correct build-dependency of &lt;code&gt;debhelper7&lt;/code&gt;. The following lines in &lt;code&gt;debian/rules&lt;/code&gt; are necessary to use the new debhelper:

 PATH:=/usr/bin/dh7:/usr/bin:$(PATH)
 export PATH
 SBOX_REDIRECT_IGNORE=/usr/bin/perl
 export SBOX_REDIRECT_IGNORE

In debian/control change:

 Build-Depends: debhelper (&gt;= 7) [...]

to

 Build-Depends: debhelper'''7''' (&gt;= 7) [...]

Further information about the updated debhelper is available at [[User:Tanner#debhelper7]].

If you also need a more recent [http://build-common.alioth.debian.org/ CDBS], then use the package [http://maemo.org/packages/view/cdbs-dh7/ cdbs-dh7], which conflicts with the standard CDBS and does not work on autobuilder yet.

Alternatively, you can try to use debhelper 5. Debian packages that require level 7 need some changes, for example:
* debian/compat: 7 -&gt; 5
* debian/control: Build-Depends: debhelper (&gt;= 7) -&gt; debhelper (&gt;= 5)
* Possibly, comment out a few dh_* calls from debian/rules, which might not exist on level 5

Things might get complex if the packaging already uses some new features of level 7, like CDBS-style helper rules. In such cases, looking at versions of packages written prior to the compatibility level upgrade might help doing the downgrade (and most Debian packages are kept in public SCMs like svn.debian.org).

=== Ovi Store publishing ===

{{main|Ovi Store publishing}}

[[Category:Packaging]]</text>
    </revision>
  </page>
  <page>
    <title>Packaging</title>
    <id>1868</id>
    <revision>
      <id>48556</id>
      <timestamp>2012-06-20T08:13:44Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Packaging]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">== Creating Packages for Maemo ==

Since Maemo is based on the Debian operating system, creating packages for Maemo borrows a lot of tools and techniques from Debian.

=== Further reading ===

The following list of resources gives in-depth information on packaging in Debian and Maemo. These links largely discuss packaging Python apps but can be used for any programming language. 

*  [http://www.openismus.com/documents/linux/automake/automake Using automake and autoconf with C++]: A great beginner's tutorial on using autotools to create an easily packagable application 
*  [http://www.debian.org/doc/maint-guide/ Debian New Maintainers Guide]: The best place for information if you have never built a .deb before
*  [http://wiki.debian.org/Teams/PythonModulesTeam Debian's Python Modules Team]: definitive documentation for packaging Python modules for Debian
*  [http://python-modules.alioth.debian.org/python-modules-policy.htm Python Modules Policy]: Reference document.
* [http://showmedo.com/videos/video?name=linuxJensMakingDeb Creating debs on Ubuntu]: A great screencast and tutorial showing how to package a simple python application as a deb on Ubuntu!
* [https://wiki.ubuntu.com/PackagingGuide Ubuntu Packaging Guide]
* [[Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing | Deploying and distributing software on Maemo 5]]: Detailed documentation on packaging for Maemo, including how to ship your software afterwards
* [http://www.forum.nokia.com/Tools_Docs_and_Code/Documentation/Maemo.xhtml Forum Nokia developer documentation]: General developer documentation reference
* [[Port an existing Debian package]]
* [[Packaging a Qt application]] and how it differs from the packaging described here
* [[User:Jebba]] has created a [[User:Jebba/Package Building HOWTO | package building howto]] with details on every step

==== Checking Maemo Packages ====

Lintian dissects Debian packages and reports bugs and policy violations. 
It contains automated checks for many aspects of Debian policy as well as some checks for common errors. Unfortunately it does not check conformance to the additional Maemo policy.

Currently Maemo is creating [[Maemian]] to check its policy.

== A concrete example - hello ==

=== Prerequisites ===

For the purposes of our article, we will be packaging a simple [[Hildon]] hello-world application. This will be a standard source tarball using [[Documentation/Maemo 5 Developer Guide/GNU Build System#GNU Autotools|autotools]]. For further information, you can follow [http://www.openismus.com/documents/linux/automake/automake this detailed tutorial] on using Autotools for C++ projects.

You will need a working [[Documentation/Maemo 5 Final SDK Installation|Maemo 5 SDK]] and the &lt;code&gt;libhildon1-dev&lt;/code&gt; package, version 2.2 or greater, which can be installed in Scratchbox with the command:

 fakeroot apt-get install libhildon1-dev

==== hello.c ====

The only C file in our project is &lt;code&gt;hello.c&lt;/code&gt;:

&lt;source lang=&quot;c&quot;&gt;
#include &lt;hildon/hildon.h&gt;

int main(int argc, char *argv[])
{
  GtkWidget *window;
  GtkWidget *label;

  hildon_gtk_init(&amp;argc, &amp;argv);

  window = hildon_window_new();
  label = gtk_label_new(&quot;Hello world!&quot;);

  g_signal_connect(G_OBJECT (window), &quot;destroy&quot;, G_CALLBACK (gtk_widget_destroy), NULL);
  gtk_container_add(GTK_CONTAINER(window), label);
  gtk_widget_show_all(window);

  gtk_main();
  return 0;
}
&lt;/source&gt;

==== Autotools ====

{{main|Documentation/Maemo 5 Developer Guide/GNU Build System}}

The rest of the project is a small number of files to allow us to make a standard &quot;&lt;code&gt;./configure &amp;&amp; make &amp;&amp; make install&lt;/code&gt;&quot; project with automake, aclocal and autoconf.

Using the autotools for packaging is quite simple for small projects. You need two files to define the structure of your project, &lt;code&gt;Makefile.am&lt;/code&gt; and &lt;code&gt;configure.ac&lt;/code&gt;.

&lt;code&gt;configure.ac&lt;/code&gt; is a file used by automake and autoconf to generate the configure script, define the version of the resulting .tar.gz and include the tests which we need to ensure the presence of the appropriate versions of dependencies. Since &lt;code&gt;hello.c&lt;/code&gt; is so simple, we only need to check for the standard C library and a C compiler, and for the Hildon library. The Hildon library check is done by &lt;code&gt;pkg-config&lt;/code&gt;, which makes it easy to check the library version, and get the right compiler and linker flags. The only output file generated by the configure script will be &lt;code&gt;Makefile&lt;/code&gt;, from the input file &lt;code&gt;Makefile.in&lt;/code&gt;, which is in turn generated from &lt;code&gt;Makefile.am&lt;/code&gt;

&lt;source lang=&quot;autoconf&quot;&gt;
AC_INIT([hello], [0.1])
AM_INIT_AUTOMAKE([foreign])
AC_PROG_CC
PKG_CHECK_MODULES([HILDON], [hildon-1 &gt;= 2.2])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
&lt;/source&gt;

&lt;code&gt;Makefile.am&lt;/code&gt; defines the source structure of your project, listing the files to be installed, the binaries and object files to be generated, and the relationship between the binaries and source files.

You can see that our &lt;code&gt;Makefile.am&lt;/code&gt; is very simple, defining one source file, and one binary file. The &quot;_SOURCES&quot; line must start with a binary name from &quot;bin_PROGRAMS&quot; to make the link between the source file and the executable. The &quot;_CPPFLAGS&quot; and &quot;_LDADD&quot; lines take the Hildon preprocessor and library flags that are provided by &lt;code&gt;pkg-config&lt;/code&gt; in &lt;code&gt;configure.ac&lt;/code&gt;.

 bin_PROGRAMS = hello
 hello_SOURCES = hello.c
 hello_CPPFLAGS = $(HILDON_CFLAGS)
 hello_LDADD = $(HILDON_LIBS)

Once we have these files, we simply need to initialise our project, defining its license, and generating all of the required files for automake to do its thing. We do this by running:

 autoreconf --force --install

The arguments to autoreconf copy required files to the project (including generic install instructions and a license).

Pay attention during the execution of autoreconf, the execution should be entirely silent if it runs correctly. If there are messages, read them and do what is required to address the issues.

Now to build your software, you have a standard configure script and can simply run

 ./configure
 make
 make install

and to build a distribution file, you have

 make dist

which will create a file ''&lt;code&gt;hello-0.1.tar.gz&lt;/code&gt;'', which you can use for the rest of this packaging tutorial.

=== Packaging a .deb ===

The easiest way to package a .deb file is to use Debian's build helpers.

Package your application as you would distribute it in a .tar.gz (when using autotools, this is done with &quot;&lt;code&gt;make distcheck&lt;/code&gt;&quot;). In our example, we uncompress &lt;code&gt;hello-0.1.tar.gz&lt;/code&gt;, and change the current directory to &lt;code&gt;hello-0.1&lt;/code&gt;.

 $ tar xfz hello-0.1.tar.gz
 $ cd hello-0.1

Then we run &lt;code&gt;dh_make&lt;/code&gt;, which initialises the Debian package management file structure (among other things):
 $ dh_make -e &lt;my email address&gt; -f ../hello-0.1.tar.gz -c GPL

You can of course choose a different licence for your package.

Answer the resulting questions - in this case, we are packaging a single binary.

We can now edit the files in the &lt;code&gt;debian/&lt;/code&gt; directory which has been created to their desired values, before packaging the software. In fact, we can delete many of these files. All of the files ending in “.ex” or “.EX” are example files, intended to help you package different types of software.

If you use a standard configure script, you do not need to modify any files except &lt;code&gt;debian/control&lt;/code&gt;, where the Hildon build-time dependency should be added. Change the &lt;code&gt;Build-Depends&lt;/code&gt; line to read (by adding &quot;&lt;code&gt;libhildon1&lt;/code&gt;&quot; at the end):

 Build-Depends: debhelper (&gt;= 5), autotools-dev, libhildon1 (&gt;= 2.2)

Before creating a .deb, you should set a changelog entry. .deb changelogs follow a special format, so rather than editing the files by hand, use the dch helper application. This will allow you to add what new features went into this application, give credit, and so on. It is an especially important file because it sets the version and revision of the source and binary packages. On saving, a syntax check is performed which ensures that the resulting file is OK. The file format is completely documented in the [http://www.debian.org/doc/maint-guide/ Debian packaging guide].

Finally, we generate a .deb from the source code using the command:
 dpkg-buildpackage -sa -rfakeroot -k&lt;my email address&gt;

You should now have several files created in the parent directory to where you unpacked the source code. I have;

 hello_0.1.orig.tar.gz
 hello_0.1-1_i386.deb
 hello_0.1-1.diff.gz
 hello_0.1-1.dsc
 hello_0.1-1_i386.changes

Now change the target architecture to &lt;code&gt;ARMEL&lt;/code&gt; and rebuild it, to generate &lt;code&gt;hello_0.1-1_arm.deb&lt;/code&gt;:

 sb-conf se FREMANTLE_ARMEL
 dpkg-buildpackage -sa -rfakeroot -k&lt;my email address&gt;

==== Additional information ====

===== Ignoring git metadata =====

If you use git then you may not want to include the entire git repo in your source bundle. With dpkg-source version 1.13.25 the -i option is not git-aware so you can do:

  dpkg-buildpackage -rfakeroot -sa  -i -I.git

===== Adding build-time dependencies =====

If your program uses another library, such as Hildon in the above example, then both the Debian package and the configure script must depend on the library. 
Otherwise, since the autobuilder only installs packages explicitly required to build your package, the build will fail.

Often, the Debian package has a different name to the pkg-config file, just like in the Hildon example. One way to check which package owns a pkg-config file is to use &lt;code&gt;dpkg-query&lt;/code&gt; on the pkg-config file, for example the &lt;code&gt;mafw&lt;/code&gt; pkg-config file (notice the extra &lt;code&gt;.pc&lt;/code&gt; file extension):
 dpkg-query --search mafw.pc
which looks through the installed packages and finds:
 libmafw0-dev: /usr/lib/pkgconfig/mafw.pc
Then you know that you must add &lt;code&gt;libmafw0-dev&lt;/code&gt; to the &lt;code&gt;Build-Depends&lt;/code&gt; line in &lt;code&gt;debian/control&lt;/code&gt; if you use the &lt;code&gt;mafw&lt;/code&gt; pkg-config file in &lt;code&gt;configure.ac&lt;/code&gt;.

===== Checking build-time dependencies =====

You may verify that your &lt;code&gt;Build-Depends&lt;/code&gt; field in debian/control is complete by running:

 dpkg-depcheck -m dpkg-buildpackage -rfakeroot -b

in the source tree. (You will need to &lt;code&gt;fakeroot apt-get install devscripts&lt;/code&gt; for this to work).

=== Adding an icon and desktop file ===

To ensure that your package shows up in the application menu, you will need to install an icon and a .desktop file with your package.

The icon can be in a number of formats. To keep things simple, you can use [[:Image:Hello.png | this 48x48 .png]] as your icon for now.

The format of .desktop files is specified by the [http://standards.freedesktop.org/desktop-entry-spec/1.0/ freedesktop.org desktop entry spec], with a number of [[Desktop file format | Maemo specific extensions]]. The simplest possible .desktop file for Maemo contains a &quot;Desktop Entry&quot; group containing an indicator that it refers to an application, the application name, the icon to use, and a path to the executable which will launch the application. Other standard keys can be found [http://standards.freedesktop.org/desktop-entry-spec/1.0/ar01s05.html in the spec].

&lt;pre&gt;
[Desktop Entry]
Type=Application
Name=Hello!
Icon=hello
Exec=/usr/bin/hello
&lt;/pre&gt;

Pixmaps referenced without an absolute path in the desktop file can be installed in a number of locations, specified in the [http://freedesktop.org/wiki/Specifications/icon-theme-spec freedesktop.org icon theme spec]. The simplest place to put the icon is in &lt;code&gt;/usr/share/icons&lt;/code&gt;. The Icon entry above will thus match &lt;code&gt;/usr/share/icons/hello.png&lt;/code&gt;.

Once you have created these files in your source directory, you will need to add the following to &lt;code&gt;Makefile.am&lt;/code&gt; to ensure that they are distributed in the tarball (created during &lt;code&gt;make dist&lt;/code&gt;) installed in the right place, and packaged correctly, and you should re-run &lt;code&gt;autoreconf&lt;/code&gt;, &lt;code&gt;configure&lt;/code&gt;, &lt;code&gt;make dist&lt;/code&gt; and &lt;code&gt;dpkg_buildpackage&lt;/code&gt; once you have done so.

&lt;source lang=&quot;make&quot;&gt;
icondir = $(datadir)/icons
dist_icon_DATA = hello.png

desktopdir = $(datadir)/applications/hildon
dist_desktop_DATA = hello.desktop
&lt;/source&gt;

To make the package installable using Hildon Application Manager (which will get launched when you select the package), you should follow the [[#Maemo-specific packaging information]] below. In particular, you must set the &quot;Section&quot; to one of the valid sections below in the &quot;&lt;code&gt;debian/control&lt;/code&gt;&quot; file.

=== Testing your package ===

The first place you can test your app is in Scratchbox. Start Xephyr and the Maemo GUI as described in [[Documentation/Maemo 5 Final SDK Installation | the Maemo 5 SDK instructions]], then run your application by hand from within Scratchbox.

Once you have created .deb packages of your application for x86 and armel, you can also test the installation process and test your application on your N900.

To test the installation on Xephyr, you can either install it from the command line with &lt;pre&gt;dpkg -i hello_0.1-1_i386.deb&lt;/pre&gt;, or copy the i386 .deb files to the &lt;pre&gt;/home/&lt;username&gt;/MyDocs&lt;/pre&gt; directory, and click on it to install it.

To test on your device, copy the armel .deb file to the .documents directory on your device, and install it by selecting it in the file manager. You will need to ensure that the OS version on your device is compatible with the development environment in your Scratchbox.

Once the package is installed, you will be able to launch it directly from the command line in the [[terminal|X terminal]] application. To get the application to appear in the application list, you will need to include an icon and desktop file in the package as described in [[/Guidelines | the packaging policy]].

=== Uploading to extras-devel ===

{{main|Uploading to Extras-devel}}

== Maemo-specific packaging information ==

=== Packaging policy ===

{{main|Packaging/Guidelines}}

Maemo packages follow the Debian Policy, but there are some items where Maemo is more strict, since it is an embedded distribution, and other areas where it is more relaxed, since it supports only one user at a time on a single target device and UI framework. In other areas, the policy differs from Debian because we have different objectives and maintainers, and because we have provided different infrastructure for packaging and distributing software.

Most of the specifics for Maemo packaging are outlined in the [[/Guidelines|Maemo packaging guidelines]].

=== Sections ===

For applications to be installable throughh Hildon Application Manager, the &quot;Secton:&quot; field in the &lt;code&gt;debian/control&lt;/code&gt; file must conform to certain naming conventions.

The conformant section names are [[Packaging/Guidelines#Sections|outlined in the packaging guidelines]], and are listed below.

{| class=&quot;wikitable sortable&quot;
|+ Maemo section names
|-
! Key
! class=&quot;unsortable&quot; | Example English i18n
! class=&quot;unsortable&quot; | Example apps
|-
| &lt;code&gt;user/desktop&lt;/code&gt;
| Desktop
| Home, statusbar and taskbar applets
|-
| &lt;code&gt;user/development&lt;/code&gt;
| Programming
| py2deb
|-
| &lt;code&gt;user/education&lt;/code&gt;
| Education
| Flashcard apps
|-
| &lt;code&gt;user/games&lt;/code&gt;
| Games
| Doom, Duke Nukem 3D
|-
| &lt;code&gt;user/graphics&lt;/code&gt;
| Graphics
| Photo apps, GIMP, Inkscape, fonts
|-
| &lt;code&gt;user/multimedia&lt;/code&gt;
| Multimedia ''or'' Sound &amp; Video
| Canola, mplayer, Kagu, UKMP, MediaBox
|-
| &lt;code&gt;user/navigation&lt;/code&gt;
| (Location &amp;) Navigation
| maemo-mapper, Navit
|-
| &lt;code&gt;user/network&lt;/code&gt;
| Internet &amp; Networking
| Web browsers, Samba clients, OpenAFS, Transmission
|-
| &lt;code&gt;user/office&lt;/code&gt;
| Office
| GPE, Claws, AbiWord
|-
| &lt;code&gt;user/science&lt;/code&gt;
| Science
| gnuplot, Octave
|-
| &lt;code&gt;user/system&lt;/code&gt;
| System
| rotation-support, enhanced kernels, themes
|-
| &lt;code&gt;user/utilities&lt;/code&gt;
| Utilities ''or'' Accessories
| Calculators, terminals, text editors
|}

If the package's section starts &quot;user/&quot;, but is not any of the above, the ''Application Manager'' forces them into an &quot;Other&quot; section.

=== Desktop files ===

{{main|Desktop file format}}

Desktop files are used to launch applications from the main application menu. Their format is standardised and documented in the [http://standards.freedesktop.org/desktop-entry-spec/1.0/ freedesktop.org desktop file spec]. The Maemo application menu uses the same desktop files, but looks for them to a slightly different location; &lt;code&gt;/usr/share/applications/hildon&lt;/code&gt; instead of &lt;code&gt;/usr/share/applications&lt;/code&gt;.

The location of the directory in which to install .desktop files can also be obtained using &lt;code&gt;pkg-config&lt;/code&gt;:

 pkg-config --variable=desktopentrydir osso-af-settings

The returned value can be used in a Makefile to install the desktop file to the correct location.

There is some official documentation on [[Documentation/Maemo_5_Developer_Guide/Application_Development/Writing_a_new_maemo_application#Adding_application_to_menu|desktop files for Maemo applications]].

=== Maemo-specific fields ===

There are a number of Maemo-specific Debian packaging fields that are handled by Application manager. The Application manager documentation [http://hildon-app-mgr.garage.maemo.org/packaging-stable.html outlines] them.

==== Displaying an icon in the Application Manager next to your package ====

Displaying an icon in the Application Manager next to your package makes it look pretty and makes your package stand out, and it is not that hard to do.

&lt;ol&gt;
&lt;li&gt;
Make an image that is '''48×48''' pixels. The image can be saved in any format that is supported by &lt;code&gt;GdkPixbufLoader&lt;/code&gt; on Maemo, but PNG is commonly used.
&lt;/li&gt;
&lt;li&gt;
base64 encode the image. This can be done in many ways, depending on the platform, but assuming you are in Scratchbox:
&lt;pre&gt;
fakeroot apt-get update
fakeroot apt-get install sharutils
uuencode -m &lt;name of 48×48 image&gt; &lt;name of 48×48 image&gt; &gt; &lt;name of 48×48 image&gt;.base64
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Add the field &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt; to your &lt;code&gt;debian/control&lt;/code&gt; (in Maemo4 the size of the icons was 26×26 pixels, hence the name of the field, '''which has not changed''' in Maemo 5)
&lt;/li&gt;
&lt;li&gt;
Open the base64 version of your image and copy from the line under ''begin-base64 644 &lt;name of 48×48 image&gt;'' to the line above the ''===''
&lt;/li&gt;
&lt;li&gt;
Add this to the &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt; field
&lt;/li&gt;
&lt;li&gt;
Add a space in front of every line of the encoded icon. You can do that automatically using sed when you base64 encode the image:
&lt;pre&gt;
uuencode -m &lt;name of 48×48 image&gt; &lt;name of 48×48 image&gt; | sed -e s,^,\ ,  &gt; &lt;name of 48×48 image&gt;.base64
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

Here is an example of a properly formatted Maemo-Icon-26: (of wrong image size)
&lt;pre&gt;
Description: Chess...
XB-Maemo-Icon-26: 
 iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABGdBTUEAAK/INwWK6QAAABl0
 RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALxSURBVHja3FZNTBNREP669J/S
 XYxtKRWl1JOSFBIPhkitCQeNiaKBmzdj9Ggk0ZOBxHDWixcTjV6MF+WiIB40YEyMBMGYEqQK
 tLS2lG7pdre0pF3WtxslgJRuD2J0kpfdTN7O976Z782sRpIk7IZR2C2TGW1cv8xaY5WuXLy8
 iW5XV5fk8/kkr9e7ya/T6SSNRiOViikvbbmDDD590SusZBGYDiDwJbDud7vdvYIgIJfLYXV1
 tSwhrQrSfRX6/26N/j+gkjW6ce06HE4HGEctGuj9oEwUzFYz5ubmEA6HQVEUisUi8vn8b4rd
 zjRbNxCZrr+3t7XTzjrnvMfdxMi7xj6OIRaPIbWcQjabVdRWKBTkrX4SZ2SjvCtKXf+tkxxD
 M5MetwfHj/lwwueHy+WCVqvdehdHKq7R6JvbpfNMAGiGhs1mg9ls3sS+4hodbDqCwef9mA9P
 7vhhVVWV3BGUOomiaCSufEWMxNwimlweMFYbpoMfyp70J6t8xanLZgWs8Ak07N0Hau0P3qOs
 wIHnl5FJx2E1WlUFuXrzIS713KusRplMCoLAgl2O4N34ODQ4VRaot6cbUzMRNNQ/w/uJWXWM
 eH5JARkYHsLQMIe1NZEpB7Sn1uKFhkL3maO4cL5NHVAo+hkPnrzEq2HqQIf/3ICzvr7FXmeH
 3qBXlslkgtFoVBS3YfbcKRRFfJpagE6vUwd0//FbjI7mkcvnGoNfg51ORx3sNju+hWYxMxsk
 jHlF2jJgdXU1DAaDrDx/kQAVRREJlldXo8kJoPlQ8wHSevosFgs5MmE5H0IingDP8eAzPAQC
 tkJakDz05Hsks+poPzwg6+Luo9chVb2O3Hilv7V6W5nO02cVX3wxjsj3CMKRBUSjUcQWY0iy
 SQVoi6XJaiQxubKpI02yj2xk6BoaBr0BqXRKCZpYSiCZlIXCguM4pWtvY0ypyUtt87PSIj/t
 pJ/JICzLKiBLySTYVArpdFrp3DuMhRZVqfvnJ+wPAQYA1hdr5EDqltYAAAAASUVORK5CYII=
&lt;/pre&gt;

Please note that if you are packaging a command-line only program that can be executed by the user, you should use the [[User:Tanner#CLI_icon|CLI icon]] only.

==== Bugtracker location ====

&lt;del&gt;As a requirement&lt;/del&gt;[http://wiki.maemo.org/Extras-testing/QA_checklist#Blockers] Is strongly recommended for your package being promoted from [[Extras-testing]] to [[Extras]], your &lt;code&gt;debian/control&lt;/code&gt; file must have a link to a bugtracker, which is visible in the [http://maemo.org/packages/ maemo.org packages interface]. It is possible to [[Bugs:Adding Extra products|request a component at bugs.maemo.org]] or use a [[Getting_started_with_Maemo_Garage#Trackers_and_tasks|Garage project bugtracker]], or even, for simple packages, an email address .

Add the field ‘XSBC-Bugtracker’ to your &lt;code&gt;debian/control&lt;/code&gt;, for example:
 XSBC-Bugtracker: https://bugs.maemo.org/enter_bug.cgi?product=mypackage

Alternatively for e-mail addresses, you can use the following format:
 XSBC-Bugtracker: mailto:yourname@example.com

==== Pretty names ====

A package can specify a pretty name for itself. This name is displayed in the Application manager UI instead of the real package name.

The pretty name is specified with the '&lt;code&gt;XSBC-Maemo-Display-Name&lt;/code&gt;' field in your &lt;code&gt;debian/control&lt;/code&gt; file, for example:
 XSBC-Maemo-Display-Name: Hello, world!

==== Maemo revision string ====

If an upstream package is re-packaged or modified for Maemo, the Maemo revision string should be appended to the upstream revision, in the &lt;code&gt;debian/changelog&lt;/code&gt; file. So if in Debian the package name was something like &quot;Myapp-0.4-2&quot; in maemo this package will be called &quot;Myapp-0.4-2maemo0&quot;. The number after the &quot;maemo&quot; string is a progressive number.

==== Maemo upgrade description ====

Tell users what changed in the update:
 XB-Maemo-Upgrade-Description: Formatted like &quot;Description&quot;. 
  Will be displayed if user upgrades to new version and clicks
  on &quot;Details&quot;.
  .
  Human-readable and translatable.
As with all Maemo-specific fields, the &quot;XB-&quot; prefix is needed so the field will remain in the binary package.

==== Translations of text fields ====

The following fields can be translated to the end user's local language: Maemo-Display-Name, Description and Maemo-Upgrade-Description. It is strongly recommended to make use of this possibility so that end users understand what the application does for them while browsing through the Application Manager.

The translation is done by adding a suffix like &quot;-de_DE&quot; to the respective field name, where &quot;de_DE&quot; is the locale the translated text is for. For example, if LC_MESSAGES equals de_DE, the Application Manager first tries &quot;Description-de_DE&quot; to find the description of a package and then falls back to &quot;Description&quot;.

Here's an example:
 Description: Chess...
 XB-Maemo-Display-Name: My package name
 XB-Maemo-Upgrade-Description: Formatted like &quot;Description&quot;. 
 XB-Description-de_DE: Schach...
 XB-Maemo-Display-Name-de_DE: Mein Packetname
 XB-Maemo-Upgrade-Description-de_DE: Formatiert wie &quot;Description&quot;. 
Note how &quot;Description&quot; becomes &quot;XB-Description-xx_YY&quot; when a locale suffix is added. This is because it's not a standard Debian field any longer.

=== Debhelper 7 ===

Since the Autobuilder's [http://www.gossamer-threads.com/lists/maemo/developers/60704 use] of the Squeeze devkit, debhelper 7 is supported natively by it.

Follow the steps on that link to also make your FREMANTLE_* target use the Squeeze devkit.

Note: dh_make doesn't seem to be provided by the Squeeze devkit, so you'll have to run it outside of Scratchbox to get a debian/ folder based on debhelper 7.

----

A backport of Debhelper 7 for Fremantle is available in extras-devel. 

 $ fakeroot apt-get install debhelper7 

It works transparently and can coexist with debhelper 5 in the SDK. It even works on the autobuilder, if the package specifies the correct build-dependency of &lt;code&gt;debhelper7&lt;/code&gt;. The following lines in &lt;code&gt;debian/rules&lt;/code&gt; are necessary to use the new debhelper:

 PATH:=/usr/bin/dh7:/usr/bin:$(PATH)
 export PATH
 SBOX_REDIRECT_IGNORE=/usr/bin/perl
 export SBOX_REDIRECT_IGNORE

In debian/control change:

 Build-Depends: debhelper (&gt;= 7) [...]

to

 Build-Depends: debhelper'''7''' (&gt;= 7) [...]

Further information about the updated debhelper is available at [[User:Tanner#debhelper7]].

If you also need a more recent [http://build-common.alioth.debian.org/ CDBS], then use the package [http://maemo.org/packages/view/cdbs-dh7/ cdbs-dh7], which conflicts with the standard CDBS and does not work on autobuilder yet.

Alternatively, you can try to use debhelper 5. Debian packages that require level 7 need some changes, for example:
* debian/compat: 7 -&gt; 5
* debian/control: Build-Depends: debhelper (&gt;= 7) -&gt; debhelper (&gt;= 5)
* Possibly, comment out a few dh_* calls from debian/rules, which might not exist on level 5

Things might get complex if the packaging already uses some new features of level 7, like CDBS-style helper rules. In such cases, looking at versions of packages written prior to the compatibility level upgrade might help doing the downgrade (and most Debian packages are kept in public SCMs like svn.debian.org).

=== Ovi Store publishing ===

{{main|Ovi Store publishing}}

[[Category:Packaging]]</text>
    </revision>
  </page>
  <page>
    <title>Packaging/Guidelines</title>
    <id>4020</id>
    <revision>
      <id>42257</id>
      <timestamp>2011-03-01T10:40:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify section headings</comment>
      <text xml:space="preserve">==Introduction and processes==

===Target audience===

The target audience for this document are developers wanting either to develop for or port packages to the Maemo platform. The contents of these packages can be either open or proprietary, the rules are the same for both.

===Purpose===

This document describes the general rules agreed for creating Maemo packages. Following them makes package integration easier (non-compliance is a blocker or critical bug) and it will help maintaining the packages in the long run. Conforming packages should also install and behave better in the users’ devices.

For related documents, see:
* '''[[Documentation|Maemo Documentation]]''' An overview of the Maemo platform
* '''[http://www.debian.org/doc/debian-policy/ Debian Policy]''' Policy for Debian, the upstream distribution of Maemo
* '''[[Packaging|Maemo Packaging]]''' A guide for making packages installable in the Application Manager
* '''[[Packaging a Qt application]]'''

===Process for updating the guidelines===

The Maemo packaging guidelines are maintained by the Nokia Maemo team and the community. Proposals for guidelines changes and additions shall be documented on the discussion page in this wiki and discussed on the [mailto:maemo-developers@maemo.org maemo-developers@maemo.org] [[Community mailing lists|mailing list]]. Proposals can be accepted into the policy after a certain consensus is established. Rejected proposals are listed separately in the wiki.

===Relation to Debian Policy===

This document is modeled after the Debian Policy manual version 3.7.2.2. It lists only the differences between the Debian policy and the Maemo packaging policy, stating reasons for the differences and including some other notes on subjects discussed in the Debian policy.

In general Maemo packages should follow the Debian policy. However, there are some items where Maemo:
* Is more strict because it is an embedded distribution, aimed at consumer products with more limited resources and also e.g. different legal requirements
* Is more relaxed because the target (Nokia) devices are used only through a specific UI and do not have multiple simultaneous users
* Differs from Debian because each distribution has its own objectives, maintainers and infrastructure.

The lintian command (from the lintian package) on Debian (and derived) Linux distributions can be used to check packages against the Debian Policy and good packaging practices. Currently Maemo does not provide a utility to check conformance to the additional policies stated in this document.

=== Conformance and handling packaging differences ===

The guidelines do not require that Maemo would have the same packages available (or the same versions of packages) as Debian. However, when the same software or functionality is available in both Maemo and Debian, it should be packaged similarly when possible, to improve compatibility and to reduce maintenance and porting overhead. This section describes the processes and general guidelines for ensuring compatibility and policy conformance.

==== Guidelines violations ====

If a package does not conform to the Maemo packaging guidelines, or to Debian Policy in issues not covered by the Maemo packaging policy, one of the following actions MUST be taken for the package to be acceptable for Maemo: 
* The package is fixed
* The Maemo packaging guidelines are updated to accept this exception
* The policy change is propagated to upstream (to Debian Policy) Bugs filed for policy violations should include the keyword “policy”.

==== Differences between corresponding Maemo and Debian packages ====

When a package in Maemo conforms to the policy, but the packaging differs from Debian in a way that could cause incompatibilities (and the difference is not because of something stated in this policy document), a bug with a “packaging” keyword SHOULD be filed. Here incompatibilities means anything that would cause problems using the package together with other packages, including e.g. the location of files, package naming, whether the package provides what is expected from it, that it doesn’t include conflicting files without declaring a conflict, etc.

If the bug is valid, the packaging SHOULD be changed to resolve the issue. (If the issue is minor or cannot be fixed now, that should only affect the severity or schedule, and the bug should remain open.) Reasons for WONTFIX could be e.g.:
* the constraints of the device environment,
* that changing the current packaging or behavior would break some specific product feature, or
* that the packaging change has already been promoted upstream or Debian is otherwise considering a similar packaging change.

Currently Maemo corresponds mostly to the Debian 4.0 (“Etch”) release, so packaging SHOULD be modeled after that or a newer Debian version.

==== Maemo packages that are not yet in Debian ====

When packaging new software, please note the correct use of the version string: If the package is native to Maemo (does not have an upstream), a revision part should not be used; [[#The version of a package|otherwise see the policy about packaging upstream sources]].

=== Terminology ===

'''BTS Bug Tracking System.''' The public BTS for Maemo is at https://bugs.maemo.org/

'''Upstream sources''' The original, unpackaged source code for some software

'''Upstream distribution''' The distribution where packaged sources are taken from. The upstream distribution for Maemo is Debian. In some cases Maemo also packages upstream sources directly instead of using or modifying Debian source packages.

'''Upstream package''' A package in the upstream distribution.

The uppercase words “MUST”, “SHOULD” and “MAY” are used to distinguish the significance of the various guidelines in this policy document. Packages that do not conform to the guidelines denoted by “MUST” will generally not be considered acceptable for Maemo. Non-conformance with guidelines denoted by “SHOULD” will generally be considered a bug, but will not necessarily render a package unsuitable for distribution.

== The Maemo archives ==

=== Categories ===

Debian’s “main”, “contrib” and “non-free” categories are not used as such in Maemo packages. The directory structure of repositories may follow this model or something else, but that is not relevant to packaging and therefore not in the current scope of this document.

=== Sections ===

Packages are grouped into sections as in Debian, but SHOULD NOT specify a category in the segment part. (However it is not a bug if a package taken from Debian and made available in Maemo retains its “contrib” or “non-free” segment.) Instead Maemo defines a user segment for controlling visibility in the Application Manager. Packages that are intended to be visible in the Application Manager MUST belong to the user segment, and packages that are not intended to be visible (such as libraries and other dependencies) MUST NOT belong to that segment.

The section of packages in the user segment MUST be one of the following:

{| class=&quot;wikitable sortable&quot;
|+ Maemo package sections
|-
! Key
! class=&quot;unsortable&quot; | Example English i18n
|-
| &lt;code&gt;user/desktop&lt;/code&gt;
| Desktop
|-
| &lt;code&gt;user/development&lt;/code&gt;
| Programming
|-
| &lt;code&gt;user/education&lt;/code&gt;
| Education
|-
| &lt;code&gt;user/games&lt;/code&gt;
| Games
|-
| &lt;code&gt;user/graphics&lt;/code&gt;
| Graphics
|-
| &lt;code&gt;user/multimedia&lt;/code&gt;
| Multimedia ''or'' Sound &amp; Video
|-
| &lt;code&gt;user/navigation&lt;/code&gt;
| (Location &amp;) Navigation
|-
| &lt;code&gt;user/network&lt;/code&gt;
| Internet &amp; Networking
|-
| &lt;code&gt;user/office&lt;/code&gt;
| Office
|-
| &lt;code&gt;user/science&lt;/code&gt;
| Science
|-
| &lt;code&gt;user/system&lt;/code&gt;
| System
|-
| &lt;code&gt;user/utilities&lt;/code&gt;
| Utilities ''or'' Accessories
|}

The sections in this list will appear correctly localized in the Application Manager. As an example, to put a package into the Office section and make it visible to the user, the value of the Section field in the debian/control file should be user/office. Packages not in the user segment SHOULD use the sections listed in the Debian Policy (http://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections).

=== Priorities ===

Maemo doesn’t currently use package priorities for anything. For future compatibility, please conform to the Debian policy.

== Binary packages ==

=== Package naming ===

Any use of the word “Maemo” is subject to the trademark policies and guidelines set forth at maemo.org (see [http://maemo.org/legal/terms_of_use/trademarks/ Maemo Trademark Policy]). In general, a package may use the word “Maemo” as a part of its name only if the package is both:

* Created or approved in writing by Nokia Corporation, and
* Intended to be used only in the Maemo environment (either within Scratchbox or devices) 

Packages that were published with the word “Maemo” in the package name before 11th May 2007 (when the trademark policy was published) may continue using that name; see the Trademark FAQ available at [http://maemo.org/ maemo.org].

=== The version of a package ===

If an upstream package is re-packaged or otherwise modified for Maemo, the packaging changes MAY be propagated back to upstream.

The resulting revision string SHOULD have the form “RidentifierX” where:
* R is the upstream revision
* If the modification is intended (only) for the Maemo platform, identifier SHOULD be “Maemo”. In other cases some suitable other identifier should be used.
* X is a monotonically increasing number.

If upstream sources are packaged for Maemo directly, when an upstream package for the corresponding version does not exist but is likely to become available later, a Maemo revision prefixed with zero SHOULD be used (resulting in “0identifierX”). 

These rules ensure that when a new upstream package is released, its revision will be higher and it will be considered as an upgrade from the older Maemo package (the future upstream package may or may not require modification to fit into Maemo, but that should not be a consideration when choosing revision numbers). This is similar to how e.g. Ubuntu deals with Debian packages.

To verify that the new version is higher than the previous Maemo version, but lower than the next upstream version would be, compare the version numbers with: 
 dpkg --compare-versions oldversion lt newversion &amp;&amp; echo true

Otherwise the rules for package versions are the same as in Debian. (Please note the proper format of the version string: For native packages, i.e. software which doesn’t have an upstream, use a version number without a revision part.)

==== Example of modifying an upstream package ====

* Version of upstream sources: 0.10
* Version of upstream package: 0.10-4
* Version of modified package in Maemo: 0.10-4maemo1

==== Example of packaging sources not yet in the upstream distribution ====

* Version of upstream sources: 0.7
* Latest package in upstream distribution: 0.6-3
* Package version in Maemo: 0.7-0maemo1

=== Package maintenance ===

Currently Maemo does not have a process for orphaned packages.

=== Dependencies ===

See [[#Essential packages|Essential packages]] below.

=== Virtual packages ===

Virtual package names intended for generic use SHOULD be commonly agreed and appear in the list included in the &lt;code&gt;maemo-policy&lt;/code&gt; package. Virtual package names MAY be created privately for use between a certain group of packages, provided that the chosen name clearly belongs to those packages (using e.g. foo-theme for package foo, or similar).

=== Base system ===

Maemo doesn’t have a base system in the sense that Debian does, as there is no installer. In some ways everything that is included in the device (or SDK) images could be considered a “base system”, but this does not affect packaging.

=== Essential packages ===

Packages marked Essential are always installed in Debian based systems, and according to the Debian Policy, other packages should not list dependencies to them unless a specific version dependency is needed.

However, Maemo installations have a different set of essential packages as Debian, and therefore binary packages MUST list their direct dependencies also to packages that are essential in Debian, but not guaranteed to be installed in all Maemo devices. (This is especially important to note when porting packages from Debian to Maemo.)

As a result, package installation and uninstallation MUST be tested on a device which doesn’t have extra software installed. Testing package installation in Scratchbox is not enough, as Scratchbox uses the real Debian binaries instead of BusyBox.

=== Prompting in maintainer scripts ===

As users do not see the command line, prompting the user MUST be done using GUI tools. The following tools are provided in Maemo for this:

'''maemo-confirm-text''' Present user with text and ask for confirmation

A package using these MUST depend on hildon-application-manager for maemo-confirm-text.

For more information on the tools, see [[Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing|Packaging, Deploying and Distributing]].

All other installation time interaction requirements at SHOULD be first discussed on the maemo-developers mailing list.

=== Separating files into binary packages (new section)===

Due to the limited space on available on devices, any files that are not needed at run time SHOULD either be removed from the binary packages or put in a separate binary package which is not installed by default. See the following subsections for details.

If this requires packaging the sources differently from the upstream distribution (Debian), the packaging changes SHOULD be propagated back to upstream (unless the changes are incompatible with the upstream policy or practices, as might be the case e.g. with documentation and localization packaging).

==== Library and program packages ====

Libraries SHOULD be packaged separately from programs using them. This also encourages better API maintenance.

==== Development packages ====

If there are development files (static libraries, headers, test programs etc), they MUST be in a separate development (-dev) package. Libtool *.la files MUST NOT be included in any packages, as they cause problems with indirect library dependencies.

==== Localization packages ====

Applications SHOULD NOT directly depend on multiple localizations, instead they SHOULD depend on a generic package name and each localization package SHOULD &quot;provide&quot; that package.

==== Documentation packages ====

If documentation is included, it SHOULD be packaged separately. Also, if end-user documentation is localized, the version for each language or locale SHOULD be packaged as noted in [[#Localization packages|above]].

Developer documentation SHOULD be packaged separately from end-user documentation, as developer documentation should not need to be installed on end-user devices. API documentation for libraries SHOULD be auto-generated from the sources.

==== Debug packages ====

Debug symbol files MUST NOT be included in binary packages (applications or libraries) intended to be installed on user machines.  Library symbol files SHOULD be included in -dev packages or in -dbg packages for the library.  Application symbol files MAY be included in -dbg packages for the application.

Debug symbol files are required to allow users to debug packages, because on ARM (unlike on x86) optimized binaries or libraries cannot be debugged without them. Debug symbols also help in getting more useful performance and memory profiling results.

The &lt;code&gt;debug-pkg-check&lt;/code&gt; script from the &lt;code&gt;maemo-debug-scripts&lt;/code&gt; package can be used to verify debug packages. See also [[#Compilation options and stripping|Compilation options and stripping]].

==== Configuration packages ====

If the packaged software may have different configurations (e.g. for different regions, products, customizations, device and SDK environments, etc.), those configurations SHOULD be packaged separately. Configurations could be simple files in /etc, or something more complex such as themes or pluggable modules.

Configuration packages SHOULD depend on the package that uses them (to avoid leaving the configuration installed and consuming flash space when the actual software is uninstalled).

The application package SHOULD only depend on the configuration if it is required for the software to function. If there can be any number of alternate configurations, a virtual package SHOULD be used for the dependency. If alternate configurations cannot coexist, they MUST declare a conflict (using the virtual package if provided). This section mainly concerns software that is part of the Maemo platform, but separating programs from configurations is often a good practice for other packages as well. Please consider even building the configuration from a different source package; this way the whole program does not have to be rebuilt (and possibly approved) for a simple configuration change, and the user has less packages to download when upgrading.

== Source packages ==

=== Package relationships ===

Unlike the [[#Essential packages|run-time environment on Maemo devices]], the Maemo build environment (= Scratchbox + Debian dev-kit) provides “host” versions of all the Debian essential and build-essential tools, so those SHOULD NOT be listed in the package build dependencies.

=== Changelog: debian/changelog ===

The main difference between Maemo and Debian changelogs is that Maemo uses a different Bugzilla bug tracking system (and there are actually two of them). While bug fixes in Debian are marked with a “Closes:” entry in the changelog, in Maemo they are marked with “Fixes:”. A Bug ID of the form of NB#xxxx refers to the Nokia internal BTS and MB#xxxx refers to the public Maemo BTS. These are used for automated tracking of bug state changes.

The distribution and urgency fields in changelog are currently ignored.

=== Main building script: debian/rules ===

==== DEB_BUILD_OPTIONS ====

The DEB_BUILD_OPTIONS environment variable can be used to control certain features when building packages. If a package supports a feature discussed below, it MUST use the given option for controlling enabling of that feature.

Options currently used by the Maemo build infrastructure:

'''thumb''' 
* Maemo5: SHOULD NOT be used. The Omap3 version used in it has broken thumb support.

'''vfp''' 
* Maemo 5: Enabled by default.

'''nolauncher''' 
:Request application to be built without maemo-launcher support. Note that if an application supports maemo-launcher, it should be enabled by default, as it makes the application start up significantly faster and saves memory.

'''parallel=N'''
:Asks the package to enable GNU Make’s -jN parallel build option to speed up the package build. If this option is not set, the package should be built sequentially (e.g. to save memory).


'''Deprecated options:'''


'''maemo-launcher''' 
:Application should be built with maemo-launcher support. This should now be the default behavior. See the nolauncher option above.

'''softfp''' 
:Use soft floating point. After IT OS 2005, all of the IT OS 2006, 2007 and 2008 toolchains use soft floats by default.


'''nodocs'''
:Asks the package to neither build nor install documentation. Building documentation (especially with gtk-doc) can take a long time and the documentation packages are not needed on the device, only in the development environment. It should be possible to generate the documentation only when needed.

==== Compilation options and stripping ====

The Debian Policy “Binaries” section recommends optimizing and debug symbols: http://www.debian.org/doc/debian-policy/ch-files.html#s10.1

In Maemo these rules are more strict:
* Code MUST be compiled with optimization to produce a faster or smaller executable (unless impossible because of compiler bugs). Generally -O2 or -Os should be used, or -O3 if that works better. If the compiler crashes when full optimization is enabled, -O1 can be used instead.
* If sources are freely available, they MUST be compiled so that the resulting binaries contain debug symbols (-g compiler option(s)).
* The resulting binaries and libraries MUST be stripped and the debug symbols separated to debug symbol files ([[#Debug_packages|and put into -dbg debug packages]]).
* If sources are not available for a library used by another component, or if the full debug information cannot be provided e.g. for contract reasons, that library SHOULD either be compiled with -fno-omit-frame-pointer or provide at least minimal debug symbols so that problems in other components can be debugged through that library.

=== Original sources ===

When packaging upstream sources, the original sources SHOULD be provided separately from the debian/ directory (and patches, etc.) in an .orig.tar.gz file.

== Control files and their fields ==

=== Package control files: debian/control ===

Distribution, priority and urgency fields are currently ignored. To be safe, use optional for priority unless there is a very good reason not to. See the notes for other fields below.

'''Maintainer'''

If an upstream package is modified for Maemo, the Maintainer field MUST be changed from the original (unless the original maintainer also maintains the Maemo package). The original maintainer MAY be marked with the field XSBC-Original-Maintainer.

'''Section'''

See [[#Sections|Sections]].

'''Architecture'''

Architectures currently supported by Maemo are i386 and armel (in addition to any, all and source). 

Note: There is also a Maemo specific XS-scratchbox-architecture field which can have the value uarm to indicate that the package is to be compiled with the uClibc toolchain instead of Glibc. This is used only for building the kernel and initfs, and may be phased out if they switch to using Glibc.

'''Depends'''

Packages MUST depend only on their direct dependencies, which MUST be generated automatically whenever possible (using ${misc:Depends}, ${shlibs:Depends} etc. —see “man debhelper”)

'''Pre-depends'''

Pre-dependencies should be avoided when possible, and any needs SHOULD first be discussed on the maemo-developers mailing list.

''' Standards-Version '''
The Standards-Version field is for the Debian Policy version (latest is v3.7.2.2). 


'''Installed-Size'''

Note that a package may take less space than indicated by this (automatically calculated) field if the UBIFS or JFFS-2 filesystem is able to compress the files.


'''Maemo extensions:'''
* XB-Maemo-Icon-26: 48x48 pixel icon of the application. The icon has to be png-based and base64-encoded.
* XSBC-Bugtracker: Link to a valid bugtracker. Requirement for promotion to maemo.org extras repository.
* XB-Maemo-Display-Name: A package can specify a pretty name for itself. This name is displayed in the Application manager UI instead of the real package name.
* XB-Maemo-Upgrade-Description: Describes, what has changed in an upgraded version.

== Package maintainer scripts and installation procedure ==

=== Differences between scratchbox and device environments ===

Maintainer scripts MUST take into account the differences of the device and scratchbox environments, and behave sensibly in both. The differences SHOULD NOT cause unnecessary warnings to be printed.

If a script needs to detect whether it is running in scratchbox, currently one way to do so is to test the presence of /targets/links/scratchbox.config (although this is not guaranteed to work in future versions of scratchbox). init.d scripts MUST either be invoked using invoke-rc.d, or only run directly if the status returned by policy-rc.d allows it. (In practice the policy is such that services will not be started in scratchbox.)

GConf values need to be handled directly in scratchbox, since gconfd (or D-Bus which is used for communicating with gconfd) is not running. Please also note the shell commands available for scripts, as discussed in sections 3.7 (Essential packages) and 10.3 (Scripts).

==== Lifeguard reboots ====

Note that the lifeguard will reboot Maemo devices if certain processes exit. Packages must take care that they do not cause such reboots during installation (either by restarting a service or by causing clients of a service to exit), as this could result in a broken package database. (This is mainly an issue for upgrades or replacements for system packages, as no others are watched by the lifeguard by default.) Package installation and upgrades MUST be tested in a live system (on an actual device).

=== Controlling terminal for maintainer scripts ===

Maintainer scripts do not have a controlling terminal when running on the device, and are only able to interact with the user through a GUI tool. See [[#Prompting in maintainer scripts|Prompting in maintainer scripts]]).

== The operating system ==

=== File system hierarchy ===

Due to the problem of not having enough space on the root-partition, please consider to use the &lt;code&gt;maemo-optify&lt;/code&gt; script. This is needed for packages larger than 500 kB to be promoted to the maemo.org extras-repository.

=== Users and groups ===

The “user” account has the UID and GID 29999 in Maemo. The base useradd utility does not handle policy issues (the adduser wrapper is not available in Maemo), and therefore dynamically added users and groups (including system users) currently go into the 30000–59999 range which is reserved in Debian. There is currently no decision to change this, but the numeric ID’s should not be depended on in any way.

To maintain compatibility, packages MUST NOT allocate UID’s or GID’s in the global 0–99 and 60000–64999 ranges except as allowed in Debian.

=== Console messages from init.d scripts ===

Maemo has no strict requirements or policy for console messages, as the user does not normally see them. For consistency (and special circumstances such as debugging) it’s still recommended that packages follow the guidelines of the Debian Policy.

=== Cron jobs ===

Currently cron is not available in Maemo.

=== Menus ===

Applications in Maemo are listed in the application menu if they provide a .desktop file in the &lt;code&gt;/usr/share/applications/hildon&lt;/code&gt; directory. Files added to or removed from this directory are detected automatically.

=== Multimedia handlers ===

Maemo uses the freedesktop.org standards for registering MIME types and handlers. Please see [[Documentation/Maemo_5_Developer_Guide/Application_Development/MIME_type_mapping|MIME type documentation]] for an example. But be aware, that there is a [https://bugs.maemo.org/show_bug.cgi?id=6263 bug in Fremantle].

The MIME utilities from the xdg-utils package are not available in Maemo.

== Files ==

=== Binaries ===

As in Debian, but note the policy on build options, optimization and stripping in sections [[#Main building script: debian/rules|Main building script: debian/rules]] and [[#Compilation options and stripping|Compilation options and stripping]].

=== Libraries ===

Note the [[#Library and program packages|guideline on libraries]].

=== Scripts ===

The &lt;code&gt;/bin/sh&lt;/code&gt; on Maemo devices is provided by BusyBox, and (unlike in Debian) the Bash shell is not available by default. Therefore, all shell scripts MUST work with a POSIX compatible shell.

Perl scripts SHOULD be replaced with POSIX compatible shell scripts if possible. (If a package has to use perl scripts, it MUST depend on &lt;code&gt;perl-base&lt;/code&gt;, as noted in [[#Essential packages|Essential packages]]).

=== Configuration files ===

Applications that store configuration options elsewhere in the user’s home directory than in $HOME/MyDocs SHOULD add a configuration file telling the Maemo backup system what data needs to be backed up and restored. If the application’s configuration file format changes between releases, its restore script needs to be able to handle the older format appropriately. &lt;!-- See [[Maemo Tutorial]] for more information. (which Maemo tutorial?) --&gt;

Note that user configuration files under $HOME, and all GConf settings except defaults set in schemas, are removed if the user restores original device settings using the Control panel.

As also recommended in the Debian Policy, packages SHOULD NOT place files in &lt;code&gt;/etc/skel&lt;/code&gt;: there is no good way to make them available to the existing user (and on Maemo devices new users are normally not created).

=== Log files ===

Due to limited space, log files SHOULD be kept minimal if used at all. If a log file causes the device to run out of disk space, it can make the device unusable and force the user to reflash.

Log files should preferably be in a place where the user can remove them (through the UI), and they SHOULD NOT grow without bounds. The logrotate package is not available (and simple rotation is not necessarily enough to limit the size of log files, depending on the logging behavior).

== Customized programs ==

=== Daemons ===

Maemo devices do not (by default) have any network services or an inetd daemon. Anything installed afterward SHOULD conform to Debian.

=== Editors and pagers===

By default the EDITOR or PAGER environment variables do not have a value (and the /usr/bin aliases specified in the Debian Policy do not exist).

== Documentation ==

=== Manual pages and info documentation ===

Maemo devices do not have the utilities needed for viewing manual or info pages. As [[#Documentation packages|described]], documentation should be packaged separately and installing it should be optional.

=== Examples ===

Tests and examples are not needed for running the programs, so they SHOULD be in a separate package which the user does not have to install.

== Appendix ==

=== DEB_BUILD_OPTIONS examples ===

'''VFP option'''

Add to debian/rules these lines:
 # Use hardware floating point
 ifneq (,$(findstring vfp,$(DEB_BUILD_OPTIONS)))
 CFLAGS += -mfpu=vfp -mfloat-abi=softfp
 endif

== References ==

'''Debian Policy''' Debian Policy Manual: http://www.debian.org/doc/debian-policy/

'''Debian New Maintainers’ Guide''' Debian New Maintainer’s Guide: http://www.debian.org/doc/manuals/maint-guide/

'''Debian Social Contract''' Debian Social Contract: http://www.debian.org/social_contract

'''Quick Start Guide''' Maemo Quick Start Guide: http://maemo.org/development/documentation/maemo-quick-start-guide.pdf

'''Maemo Trademark Policy''' Maemo trademark usage: http://maemo.org/intro/trademarks/trademark_usage_guidelines.html

'''[[Documentation | Maemo Documentation]]'''

'''FHS''' Filesystem Hierarchy Standard: http://www.pathname.com/fhs/

'''[[Packaging]]'''

[[Category:Packaging]]</text>
    </revision>
  </page>
  <page>
    <title>Packaging/Guidelines</title>
    <id>4020</id>
    <revision>
      <id>42257</id>
      <timestamp>2011-03-01T10:40:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify section headings</comment>
      <text xml:space="preserve">==Introduction and processes==

===Target audience===

The target audience for this document are developers wanting either to develop for or port packages to the Maemo platform. The contents of these packages can be either open or proprietary, the rules are the same for both.

===Purpose===

This document describes the general rules agreed for creating Maemo packages. Following them makes package integration easier (non-compliance is a blocker or critical bug) and it will help maintaining the packages in the long run. Conforming packages should also install and behave better in the users’ devices.

For related documents, see:
* '''[[Documentation|Maemo Documentation]]''' An overview of the Maemo platform
* '''[http://www.debian.org/doc/debian-policy/ Debian Policy]''' Policy for Debian, the upstream distribution of Maemo
* '''[[Packaging|Maemo Packaging]]''' A guide for making packages installable in the Application Manager
* '''[[Packaging a Qt application]]'''

===Process for updating the guidelines===

The Maemo packaging guidelines are maintained by the Nokia Maemo team and the community. Proposals for guidelines changes and additions shall be documented on the discussion page in this wiki and discussed on the [mailto:maemo-developers@maemo.org maemo-developers@maemo.org] [[Community mailing lists|mailing list]]. Proposals can be accepted into the policy after a certain consensus is established. Rejected proposals are listed separately in the wiki.

===Relation to Debian Policy===

This document is modeled after the Debian Policy manual version 3.7.2.2. It lists only the differences between the Debian policy and the Maemo packaging policy, stating reasons for the differences and including some other notes on subjects discussed in the Debian policy.

In general Maemo packages should follow the Debian policy. However, there are some items where Maemo:
* Is more strict because it is an embedded distribution, aimed at consumer products with more limited resources and also e.g. different legal requirements
* Is more relaxed because the target (Nokia) devices are used only through a specific UI and do not have multiple simultaneous users
* Differs from Debian because each distribution has its own objectives, maintainers and infrastructure.

The lintian command (from the lintian package) on Debian (and derived) Linux distributions can be used to check packages against the Debian Policy and good packaging practices. Currently Maemo does not provide a utility to check conformance to the additional policies stated in this document.

=== Conformance and handling packaging differences ===

The guidelines do not require that Maemo would have the same packages available (or the same versions of packages) as Debian. However, when the same software or functionality is available in both Maemo and Debian, it should be packaged similarly when possible, to improve compatibility and to reduce maintenance and porting overhead. This section describes the processes and general guidelines for ensuring compatibility and policy conformance.

==== Guidelines violations ====

If a package does not conform to the Maemo packaging guidelines, or to Debian Policy in issues not covered by the Maemo packaging policy, one of the following actions MUST be taken for the package to be acceptable for Maemo: 
* The package is fixed
* The Maemo packaging guidelines are updated to accept this exception
* The policy change is propagated to upstream (to Debian Policy) Bugs filed for policy violations should include the keyword “policy”.

==== Differences between corresponding Maemo and Debian packages ====

When a package in Maemo conforms to the policy, but the packaging differs from Debian in a way that could cause incompatibilities (and the difference is not because of something stated in this policy document), a bug with a “packaging” keyword SHOULD be filed. Here incompatibilities means anything that would cause problems using the package together with other packages, including e.g. the location of files, package naming, whether the package provides what is expected from it, that it doesn’t include conflicting files without declaring a conflict, etc.

If the bug is valid, the packaging SHOULD be changed to resolve the issue. (If the issue is minor or cannot be fixed now, that should only affect the severity or schedule, and the bug should remain open.) Reasons for WONTFIX could be e.g.:
* the constraints of the device environment,
* that changing the current packaging or behavior would break some specific product feature, or
* that the packaging change has already been promoted upstream or Debian is otherwise considering a similar packaging change.

Currently Maemo corresponds mostly to the Debian 4.0 (“Etch”) release, so packaging SHOULD be modeled after that or a newer Debian version.

==== Maemo packages that are not yet in Debian ====

When packaging new software, please note the correct use of the version string: If the package is native to Maemo (does not have an upstream), a revision part should not be used; [[#The version of a package|otherwise see the policy about packaging upstream sources]].

=== Terminology ===

'''BTS Bug Tracking System.''' The public BTS for Maemo is at https://bugs.maemo.org/

'''Upstream sources''' The original, unpackaged source code for some software

'''Upstream distribution''' The distribution where packaged sources are taken from. The upstream distribution for Maemo is Debian. In some cases Maemo also packages upstream sources directly instead of using or modifying Debian source packages.

'''Upstream package''' A package in the upstream distribution.

The uppercase words “MUST”, “SHOULD” and “MAY” are used to distinguish the significance of the various guidelines in this policy document. Packages that do not conform to the guidelines denoted by “MUST” will generally not be considered acceptable for Maemo. Non-conformance with guidelines denoted by “SHOULD” will generally be considered a bug, but will not necessarily render a package unsuitable for distribution.

== The Maemo archives ==

=== Categories ===

Debian’s “main”, “contrib” and “non-free” categories are not used as such in Maemo packages. The directory structure of repositories may follow this model or something else, but that is not relevant to packaging and therefore not in the current scope of this document.

=== Sections ===

Packages are grouped into sections as in Debian, but SHOULD NOT specify a category in the segment part. (However it is not a bug if a package taken from Debian and made available in Maemo retains its “contrib” or “non-free” segment.) Instead Maemo defines a user segment for controlling visibility in the Application Manager. Packages that are intended to be visible in the Application Manager MUST belong to the user segment, and packages that are not intended to be visible (such as libraries and other dependencies) MUST NOT belong to that segment.

The section of packages in the user segment MUST be one of the following:

{| class=&quot;wikitable sortable&quot;
|+ Maemo package sections
|-
! Key
! class=&quot;unsortable&quot; | Example English i18n
|-
| &lt;code&gt;user/desktop&lt;/code&gt;
| Desktop
|-
| &lt;code&gt;user/development&lt;/code&gt;
| Programming
|-
| &lt;code&gt;user/education&lt;/code&gt;
| Education
|-
| &lt;code&gt;user/games&lt;/code&gt;
| Games
|-
| &lt;code&gt;user/graphics&lt;/code&gt;
| Graphics
|-
| &lt;code&gt;user/multimedia&lt;/code&gt;
| Multimedia ''or'' Sound &amp; Video
|-
| &lt;code&gt;user/navigation&lt;/code&gt;
| (Location &amp;) Navigation
|-
| &lt;code&gt;user/network&lt;/code&gt;
| Internet &amp; Networking
|-
| &lt;code&gt;user/office&lt;/code&gt;
| Office
|-
| &lt;code&gt;user/science&lt;/code&gt;
| Science
|-
| &lt;code&gt;user/system&lt;/code&gt;
| System
|-
| &lt;code&gt;user/utilities&lt;/code&gt;
| Utilities ''or'' Accessories
|}

The sections in this list will appear correctly localized in the Application Manager. As an example, to put a package into the Office section and make it visible to the user, the value of the Section field in the debian/control file should be user/office. Packages not in the user segment SHOULD use the sections listed in the Debian Policy (http://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections).

=== Priorities ===

Maemo doesn’t currently use package priorities for anything. For future compatibility, please conform to the Debian policy.

== Binary packages ==

=== Package naming ===

Any use of the word “Maemo” is subject to the trademark policies and guidelines set forth at maemo.org (see [http://maemo.org/legal/terms_of_use/trademarks/ Maemo Trademark Policy]). In general, a package may use the word “Maemo” as a part of its name only if the package is both:

* Created or approved in writing by Nokia Corporation, and
* Intended to be used only in the Maemo environment (either within Scratchbox or devices) 

Packages that were published with the word “Maemo” in the package name before 11th May 2007 (when the trademark policy was published) may continue using that name; see the Trademark FAQ available at [http://maemo.org/ maemo.org].

=== The version of a package ===

If an upstream package is re-packaged or otherwise modified for Maemo, the packaging changes MAY be propagated back to upstream.

The resulting revision string SHOULD have the form “RidentifierX” where:
* R is the upstream revision
* If the modification is intended (only) for the Maemo platform, identifier SHOULD be “Maemo”. In other cases some suitable other identifier should be used.
* X is a monotonically increasing number.

If upstream sources are packaged for Maemo directly, when an upstream package for the corresponding version does not exist but is likely to become available later, a Maemo revision prefixed with zero SHOULD be used (resulting in “0identifierX”). 

These rules ensure that when a new upstream package is released, its revision will be higher and it will be considered as an upgrade from the older Maemo package (the future upstream package may or may not require modification to fit into Maemo, but that should not be a consideration when choosing revision numbers). This is similar to how e.g. Ubuntu deals with Debian packages.

To verify that the new version is higher than the previous Maemo version, but lower than the next upstream version would be, compare the version numbers with: 
 dpkg --compare-versions oldversion lt newversion &amp;&amp; echo true

Otherwise the rules for package versions are the same as in Debian. (Please note the proper format of the version string: For native packages, i.e. software which doesn’t have an upstream, use a version number without a revision part.)

==== Example of modifying an upstream package ====

* Version of upstream sources: 0.10
* Version of upstream package: 0.10-4
* Version of modified package in Maemo: 0.10-4maemo1

==== Example of packaging sources not yet in the upstream distribution ====

* Version of upstream sources: 0.7
* Latest package in upstream distribution: 0.6-3
* Package version in Maemo: 0.7-0maemo1

=== Package maintenance ===

Currently Maemo does not have a process for orphaned packages.

=== Dependencies ===

See [[#Essential packages|Essential packages]] below.

=== Virtual packages ===

Virtual package names intended for generic use SHOULD be commonly agreed and appear in the list included in the &lt;code&gt;maemo-policy&lt;/code&gt; package. Virtual package names MAY be created privately for use between a certain group of packages, provided that the chosen name clearly belongs to those packages (using e.g. foo-theme for package foo, or similar).

=== Base system ===

Maemo doesn’t have a base system in the sense that Debian does, as there is no installer. In some ways everything that is included in the device (or SDK) images could be considered a “base system”, but this does not affect packaging.

=== Essential packages ===

Packages marked Essential are always installed in Debian based systems, and according to the Debian Policy, other packages should not list dependencies to them unless a specific version dependency is needed.

However, Maemo installations have a different set of essential packages as Debian, and therefore binary packages MUST list their direct dependencies also to packages that are essential in Debian, but not guaranteed to be installed in all Maemo devices. (This is especially important to note when porting packages from Debian to Maemo.)

As a result, package installation and uninstallation MUST be tested on a device which doesn’t have extra software installed. Testing package installation in Scratchbox is not enough, as Scratchbox uses the real Debian binaries instead of BusyBox.

=== Prompting in maintainer scripts ===

As users do not see the command line, prompting the user MUST be done using GUI tools. The following tools are provided in Maemo for this:

'''maemo-confirm-text''' Present user with text and ask for confirmation

A package using these MUST depend on hildon-application-manager for maemo-confirm-text.

For more information on the tools, see [[Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing|Packaging, Deploying and Distributing]].

All other installation time interaction requirements at SHOULD be first discussed on the maemo-developers mailing list.

=== Separating files into binary packages (new section)===

Due to the limited space on available on devices, any files that are not needed at run time SHOULD either be removed from the binary packages or put in a separate binary package which is not installed by default. See the following subsections for details.

If this requires packaging the sources differently from the upstream distribution (Debian), the packaging changes SHOULD be propagated back to upstream (unless the changes are incompatible with the upstream policy or practices, as might be the case e.g. with documentation and localization packaging).

==== Library and program packages ====

Libraries SHOULD be packaged separately from programs using them. This also encourages better API maintenance.

==== Development packages ====

If there are development files (static libraries, headers, test programs etc), they MUST be in a separate development (-dev) package. Libtool *.la files MUST NOT be included in any packages, as they cause problems with indirect library dependencies.

==== Localization packages ====

Applications SHOULD NOT directly depend on multiple localizations, instead they SHOULD depend on a generic package name and each localization package SHOULD &quot;provide&quot; that package.

==== Documentation packages ====

If documentation is included, it SHOULD be packaged separately. Also, if end-user documentation is localized, the version for each language or locale SHOULD be packaged as noted in [[#Localization packages|above]].

Developer documentation SHOULD be packaged separately from end-user documentation, as developer documentation should not need to be installed on end-user devices. API documentation for libraries SHOULD be auto-generated from the sources.

==== Debug packages ====

Debug symbol files MUST NOT be included in binary packages (applications or libraries) intended to be installed on user machines.  Library symbol files SHOULD be included in -dev packages or in -dbg packages for the library.  Application symbol files MAY be included in -dbg packages for the application.

Debug symbol files are required to allow users to debug packages, because on ARM (unlike on x86) optimized binaries or libraries cannot be debugged without them. Debug symbols also help in getting more useful performance and memory profiling results.

The &lt;code&gt;debug-pkg-check&lt;/code&gt; script from the &lt;code&gt;maemo-debug-scripts&lt;/code&gt; package can be used to verify debug packages. See also [[#Compilation options and stripping|Compilation options and stripping]].

==== Configuration packages ====

If the packaged software may have different configurations (e.g. for different regions, products, customizations, device and SDK environments, etc.), those configurations SHOULD be packaged separately. Configurations could be simple files in /etc, or something more complex such as themes or pluggable modules.

Configuration packages SHOULD depend on the package that uses them (to avoid leaving the configuration installed and consuming flash space when the actual software is uninstalled).

The application package SHOULD only depend on the configuration if it is required for the software to function. If there can be any number of alternate configurations, a virtual package SHOULD be used for the dependency. If alternate configurations cannot coexist, they MUST declare a conflict (using the virtual package if provided). This section mainly concerns software that is part of the Maemo platform, but separating programs from configurations is often a good practice for other packages as well. Please consider even building the configuration from a different source package; this way the whole program does not have to be rebuilt (and possibly approved) for a simple configuration change, and the user has less packages to download when upgrading.

== Source packages ==

=== Package relationships ===

Unlike the [[#Essential packages|run-time environment on Maemo devices]], the Maemo build environment (= Scratchbox + Debian dev-kit) provides “host” versions of all the Debian essential and build-essential tools, so those SHOULD NOT be listed in the package build dependencies.

=== Changelog: debian/changelog ===

The main difference between Maemo and Debian changelogs is that Maemo uses a different Bugzilla bug tracking system (and there are actually two of them). While bug fixes in Debian are marked with a “Closes:” entry in the changelog, in Maemo they are marked with “Fixes:”. A Bug ID of the form of NB#xxxx refers to the Nokia internal BTS and MB#xxxx refers to the public Maemo BTS. These are used for automated tracking of bug state changes.

The distribution and urgency fields in changelog are currently ignored.

=== Main building script: debian/rules ===

==== DEB_BUILD_OPTIONS ====

The DEB_BUILD_OPTIONS environment variable can be used to control certain features when building packages. If a package supports a feature discussed below, it MUST use the given option for controlling enabling of that feature.

Options currently used by the Maemo build infrastructure:

'''thumb''' 
* Maemo5: SHOULD NOT be used. The Omap3 version used in it has broken thumb support.

'''vfp''' 
* Maemo 5: Enabled by default.

'''nolauncher''' 
:Request application to be built without maemo-launcher support. Note that if an application supports maemo-launcher, it should be enabled by default, as it makes the application start up significantly faster and saves memory.

'''parallel=N'''
:Asks the package to enable GNU Make’s -jN parallel build option to speed up the package build. If this option is not set, the package should be built sequentially (e.g. to save memory).


'''Deprecated options:'''


'''maemo-launcher''' 
:Application should be built with maemo-launcher support. This should now be the default behavior. See the nolauncher option above.

'''softfp''' 
:Use soft floating point. After IT OS 2005, all of the IT OS 2006, 2007 and 2008 toolchains use soft floats by default.


'''nodocs'''
:Asks the package to neither build nor install documentation. Building documentation (especially with gtk-doc) can take a long time and the documentation packages are not needed on the device, only in the development environment. It should be possible to generate the documentation only when needed.

==== Compilation options and stripping ====

The Debian Policy “Binaries” section recommends optimizing and debug symbols: http://www.debian.org/doc/debian-policy/ch-files.html#s10.1

In Maemo these rules are more strict:
* Code MUST be compiled with optimization to produce a faster or smaller executable (unless impossible because of compiler bugs). Generally -O2 or -Os should be used, or -O3 if that works better. If the compiler crashes when full optimization is enabled, -O1 can be used instead.
* If sources are freely available, they MUST be compiled so that the resulting binaries contain debug symbols (-g compiler option(s)).
* The resulting binaries and libraries MUST be stripped and the debug symbols separated to debug symbol files ([[#Debug_packages|and put into -dbg debug packages]]).
* If sources are not available for a library used by another component, or if the full debug information cannot be provided e.g. for contract reasons, that library SHOULD either be compiled with -fno-omit-frame-pointer or provide at least minimal debug symbols so that problems in other components can be debugged through that library.

=== Original sources ===

When packaging upstream sources, the original sources SHOULD be provided separately from the debian/ directory (and patches, etc.) in an .orig.tar.gz file.

== Control files and their fields ==

=== Package control files: debian/control ===

Distribution, priority and urgency fields are currently ignored. To be safe, use optional for priority unless there is a very good reason not to. See the notes for other fields below.

'''Maintainer'''

If an upstream package is modified for Maemo, the Maintainer field MUST be changed from the original (unless the original maintainer also maintains the Maemo package). The original maintainer MAY be marked with the field XSBC-Original-Maintainer.

'''Section'''

See [[#Sections|Sections]].

'''Architecture'''

Architectures currently supported by Maemo are i386 and armel (in addition to any, all and source). 

Note: There is also a Maemo specific XS-scratchbox-architecture field which can have the value uarm to indicate that the package is to be compiled with the uClibc toolchain instead of Glibc. This is used only for building the kernel and initfs, and may be phased out if they switch to using Glibc.

'''Depends'''

Packages MUST depend only on their direct dependencies, which MUST be generated automatically whenever possible (using ${misc:Depends}, ${shlibs:Depends} etc. —see “man debhelper”)

'''Pre-depends'''

Pre-dependencies should be avoided when possible, and any needs SHOULD first be discussed on the maemo-developers mailing list.

''' Standards-Version '''
The Standards-Version field is for the Debian Policy version (latest is v3.7.2.2). 


'''Installed-Size'''

Note that a package may take less space than indicated by this (automatically calculated) field if the UBIFS or JFFS-2 filesystem is able to compress the files.


'''Maemo extensions:'''
* XB-Maemo-Icon-26: 48x48 pixel icon of the application. The icon has to be png-based and base64-encoded.
* XSBC-Bugtracker: Link to a valid bugtracker. Requirement for promotion to maemo.org extras repository.
* XB-Maemo-Display-Name: A package can specify a pretty name for itself. This name is displayed in the Application manager UI instead of the real package name.
* XB-Maemo-Upgrade-Description: Describes, what has changed in an upgraded version.

== Package maintainer scripts and installation procedure ==

=== Differences between scratchbox and device environments ===

Maintainer scripts MUST take into account the differences of the device and scratchbox environments, and behave sensibly in both. The differences SHOULD NOT cause unnecessary warnings to be printed.

If a script needs to detect whether it is running in scratchbox, currently one way to do so is to test the presence of /targets/links/scratchbox.config (although this is not guaranteed to work in future versions of scratchbox). init.d scripts MUST either be invoked using invoke-rc.d, or only run directly if the status returned by policy-rc.d allows it. (In practice the policy is such that services will not be started in scratchbox.)

GConf values need to be handled directly in scratchbox, since gconfd (or D-Bus which is used for communicating with gconfd) is not running. Please also note the shell commands available for scripts, as discussed in sections 3.7 (Essential packages) and 10.3 (Scripts).

==== Lifeguard reboots ====

Note that the lifeguard will reboot Maemo devices if certain processes exit. Packages must take care that they do not cause such reboots during installation (either by restarting a service or by causing clients of a service to exit), as this could result in a broken package database. (This is mainly an issue for upgrades or replacements for system packages, as no others are watched by the lifeguard by default.) Package installation and upgrades MUST be tested in a live system (on an actual device).

=== Controlling terminal for maintainer scripts ===

Maintainer scripts do not have a controlling terminal when running on the device, and are only able to interact with the user through a GUI tool. See [[#Prompting in maintainer scripts|Prompting in maintainer scripts]]).

== The operating system ==

=== File system hierarchy ===

Due to the problem of not having enough space on the root-partition, please consider to use the &lt;code&gt;maemo-optify&lt;/code&gt; script. This is needed for packages larger than 500 kB to be promoted to the maemo.org extras-repository.

=== Users and groups ===

The “user” account has the UID and GID 29999 in Maemo. The base useradd utility does not handle policy issues (the adduser wrapper is not available in Maemo), and therefore dynamically added users and groups (including system users) currently go into the 30000–59999 range which is reserved in Debian. There is currently no decision to change this, but the numeric ID’s should not be depended on in any way.

To maintain compatibility, packages MUST NOT allocate UID’s or GID’s in the global 0–99 and 60000–64999 ranges except as allowed in Debian.

=== Console messages from init.d scripts ===

Maemo has no strict requirements or policy for console messages, as the user does not normally see them. For consistency (and special circumstances such as debugging) it’s still recommended that packages follow the guidelines of the Debian Policy.

=== Cron jobs ===

Currently cron is not available in Maemo.

=== Menus ===

Applications in Maemo are listed in the application menu if they provide a .desktop file in the &lt;code&gt;/usr/share/applications/hildon&lt;/code&gt; directory. Files added to or removed from this directory are detected automatically.

=== Multimedia handlers ===

Maemo uses the freedesktop.org standards for registering MIME types and handlers. Please see [[Documentation/Maemo_5_Developer_Guide/Application_Development/MIME_type_mapping|MIME type documentation]] for an example. But be aware, that there is a [https://bugs.maemo.org/show_bug.cgi?id=6263 bug in Fremantle].

The MIME utilities from the xdg-utils package are not available in Maemo.

== Files ==

=== Binaries ===

As in Debian, but note the policy on build options, optimization and stripping in sections [[#Main building script: debian/rules|Main building script: debian/rules]] and [[#Compilation options and stripping|Compilation options and stripping]].

=== Libraries ===

Note the [[#Library and program packages|guideline on libraries]].

=== Scripts ===

The &lt;code&gt;/bin/sh&lt;/code&gt; on Maemo devices is provided by BusyBox, and (unlike in Debian) the Bash shell is not available by default. Therefore, all shell scripts MUST work with a POSIX compatible shell.

Perl scripts SHOULD be replaced with POSIX compatible shell scripts if possible. (If a package has to use perl scripts, it MUST depend on &lt;code&gt;perl-base&lt;/code&gt;, as noted in [[#Essential packages|Essential packages]]).

=== Configuration files ===

Applications that store configuration options elsewhere in the user’s home directory than in $HOME/MyDocs SHOULD add a configuration file telling the Maemo backup system what data needs to be backed up and restored. If the application’s configuration file format changes between releases, its restore script needs to be able to handle the older format appropriately. &lt;!-- See [[Maemo Tutorial]] for more information. (which Maemo tutorial?) --&gt;

Note that user configuration files under $HOME, and all GConf settings except defaults set in schemas, are removed if the user restores original device settings using the Control panel.

As also recommended in the Debian Policy, packages SHOULD NOT place files in &lt;code&gt;/etc/skel&lt;/code&gt;: there is no good way to make them available to the existing user (and on Maemo devices new users are normally not created).

=== Log files ===

Due to limited space, log files SHOULD be kept minimal if used at all. If a log file causes the device to run out of disk space, it can make the device unusable and force the user to reflash.

Log files should preferably be in a place where the user can remove them (through the UI), and they SHOULD NOT grow without bounds. The logrotate package is not available (and simple rotation is not necessarily enough to limit the size of log files, depending on the logging behavior).

== Customized programs ==

=== Daemons ===

Maemo devices do not (by default) have any network services or an inetd daemon. Anything installed afterward SHOULD conform to Debian.

=== Editors and pagers===

By default the EDITOR or PAGER environment variables do not have a value (and the /usr/bin aliases specified in the Debian Policy do not exist).

== Documentation ==

=== Manual pages and info documentation ===

Maemo devices do not have the utilities needed for viewing manual or info pages. As [[#Documentation packages|described]], documentation should be packaged separately and installing it should be optional.

=== Examples ===

Tests and examples are not needed for running the programs, so they SHOULD be in a separate package which the user does not have to install.

== Appendix ==

=== DEB_BUILD_OPTIONS examples ===

'''VFP option'''

Add to debian/rules these lines:
 # Use hardware floating point
 ifneq (,$(findstring vfp,$(DEB_BUILD_OPTIONS)))
 CFLAGS += -mfpu=vfp -mfloat-abi=softfp
 endif

== References ==

'''Debian Policy''' Debian Policy Manual: http://www.debian.org/doc/debian-policy/

'''Debian New Maintainers’ Guide''' Debian New Maintainer’s Guide: http://www.debian.org/doc/manuals/maint-guide/

'''Debian Social Contract''' Debian Social Contract: http://www.debian.org/social_contract

'''Quick Start Guide''' Maemo Quick Start Guide: http://maemo.org/development/documentation/maemo-quick-start-guide.pdf

'''Maemo Trademark Policy''' Maemo trademark usage: http://maemo.org/intro/trademarks/trademark_usage_guidelines.html

'''[[Documentation | Maemo Documentation]]'''

'''FHS''' Filesystem Hierarchy Standard: http://www.pathname.com/fhs/

'''[[Packaging]]'''

[[Category:Packaging]]</text>
    </revision>
  </page>
  <page>
    <title>Packaging Qt Creator Apps for Maemo Extras</title>
    <id>4550</id>
    <revision>
      <id>44416</id>
      <timestamp>2011-07-10T04:05:34Z</timestamp>
      <contributor>
        <username>tetris11</username>
        <id>4431</id>
      </contributor>
      <comment>/* Using the Wizard */</comment>
      <text xml:space="preserve">While there are a few pages relating to packaging Maemo and Qt apps, this document is designed to provide step-by-step instructions for taking a working app in Qt Creator and publishing it to the Maemo [[extras]] development repository for all to enjoy. The methods here have been tested with basic Qt apps in an Ubuntu Linux environment. Hopefully additional feedback and edits will provide information about working on the lesser platforms available, for example Windows and Mac.

== Is there a simple(r) way ? ==

Note that the instructions on this page apply to QtSDK 1.0.x and QtCreator 2.0.x. The use of the [http://labs.qt.nokia.com/2011/03/01/qt-sdk-1-1-beta-released/ QtSDK 1.1] is strongly encouraged, as it has incorporated/automated most of the steps outlined below. 

===Using the Wizard===
With QtSDK 1.1, all you need to do is go to Build-&gt; Publish Project... --&gt; Start Wizard. As shown [http://doc.qt.nokia.com/qtcreator-2.2/creator-publishing-to-maemo-extras.html here].

You can then choose to upload your app directly to the repository using your [https://garage.maemo.org/ maemo garage] account, or you can do the more straightforward approach of choosing not to upload through QtSDK (make sure that the &quot;do not upload&quot; box is ticked) and instead uploading the generated files using [https://garage.maemo.org/extras-assistant/index.php Maemo Extras Assistant] (check your /tmp/qtc_packing_appname/ folder for the .changes, .tar.gz and .dsc files).

====Issues====
Some developers have encountered problems with the debian/rules file using this method, in which case it should be noted that one working solution is to uncomment the &quot;qmake PREFIX=/usr&quot; and &quot;dh_shlibdeps&quot; lines in the rules file (as suggested by notation in the actual file itself). Another common solution is to check that each line of the rules file is indented with TABS and not spaces.

===Using Custom Build Steps===
Another way to generate the .changes, .tar.gz and .dsc files is to add a custom step to the build configuration . This is also a fairly straightforward process and is outlined [http://qt-funk.blogspot.com/2011/02/generating-maemoorg-compatible-source.html here] and [http://raeda.blog.com/2011/02/19/upload-qt-apps-to-extras-devel-from-windows/ here]

== Qt Creator Notes ==

A few notes on Qt Creator, especially if you haven't started yet:
* create a work directory and create the Qt Creator project directory within that. For example, if your app is called supercalc, create a directory called supercalc-work (or whatever you want to call it) and create the supercalc project directory within that. When you do all of the building and testing within Qt Creator, it creates lots of directories. You can control where they are created, but this lets you use the default locations.
* If you create a Desktop target, you can run your app outside the simulator and test the functionality directly in a native app. Sometimes this is easier than working within the simulator.
* The &lt;code&gt;QSettings&lt;/code&gt; class works as expected on Maemo 5, so make use of it for configuration files and storing system information.
* Before attempting the packaging, you should make sure that a build with the Maemo target is successful.

== Packaging ==

Now that you have a working application, you can package it as follows. For the purposes of this discussion, we will refer to the work directory and the source directory. The source directory is the directory created for the Qt project—the one with the .pro file in it. The work directory is probably the parent directory of the source directory, but it can easily be somewhere else.

&lt;ol&gt;
&lt;li&gt;
Add a directory for the maemo-specific files in the source directory. Call it &quot;&lt;code&gt;maemofiles&lt;/code&gt;&quot;. It will contain the following two files:
&lt;ul&gt;
&lt;li&gt;
an icon file — make it a 48×48 PNG, which you can build in GIMP, or whatever else you use to make images. &lt;code&gt;appname_icon.png&lt;/code&gt; is probably a good name, but use whatever you like. In the final package this file will end up in &lt;code&gt;/usr/share/icons/hicolor/48x48/apps&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
the &lt;code&gt;appname.desktop&lt;/code&gt; file. This tells the system how to present the app in the menus and where to find the executable. It will end up in &lt;code&gt;/usr/share/applications/hildon&lt;/code&gt; in the final package. For more information on what goes in this file, see the article on the [[desktop file format]].  Also, note that the .pro changes below will write the app into /usr/bin/appname/appname, so make sure you have the desktop file match this.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
Next we need to tell the project how to find those files and where to put them. Edit the &lt;code&gt;.pro&lt;/code&gt; file for your app and add a &lt;code&gt;unix{}&lt;/code&gt; section as follows (make sure the directories and filenames match the ones you just created above):
&lt;pre&gt;
unix {
   INSTALLS += target desktop icon48
   target.path = /usr/bin/appname
   desktop.path = /usr/share/applications/hildon
   desktop.files += maemofiles/appname.desktop
   icon48.path = /usr/share/icons/hicolor/48x48/apps
   icon48.files += maemofiles/appname_icon.png
}
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Add a folder to the source directory named &quot;&lt;code&gt;debian&lt;/code&gt;&quot; folder and copy the Debian files needed from &lt;code&gt;appname-build-maemo&lt;/code&gt; directory that was created when you did a Maemo target build in Qt Creator. The files you need for a basic app are: &lt;code&gt;changelog&lt;/code&gt;, &lt;code&gt;compat&lt;/code&gt;, &lt;code&gt;control&lt;/code&gt;, &lt;code&gt;copyright&lt;/code&gt;, &lt;code&gt;rules&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
The Debian files need to be updated for your application as follows:
&lt;ul&gt;
&lt;li&gt;
add a file called &quot;&lt;code&gt;optify&lt;/code&gt;&quot; and put the word &quot;&lt;code&gt;auto&lt;/code&gt;&quot; in the file as the only contents. This will cause the application to be automatically &quot;optified&quot; for install on an [[Nokia N900|N900]].
&lt;/li&gt;
&lt;li&gt;
make sure the &quot;&lt;code&gt;changelog&lt;/code&gt;&quot; file is up to date and in the proper format. There should be an entry for the current release version. The version number here is the one used to determine the version number when the application is built later on, so make sure this file is correct. The &quot;&lt;code&gt;dch&lt;/code&gt;&quot; command in Linux will add an entry in the proper format and open an editor for you to do changes on it. From the source directory, type &quot;&lt;code&gt;dch -v 1.0.1&lt;/code&gt;&quot; (substitute your version number for 1.0.1, of course), and an editor will open with a new entry for you to use. There are also some &lt;code&gt;git&lt;/code&gt; tools which automatically update this file, if you care to figure those out.
&lt;/li&gt;
&lt;li&gt;
change the contents of the &quot;&lt;code&gt;compat&lt;/code&gt;&quot; file to be just a single digit: the number 5. (It is probably 7 now, which is not compatible with the autobuilder.)  Numbers higher than 5 will cause mysterious errors in the autobuilder.
&lt;/li&gt;
&lt;li&gt;
update the &quot;&lt;code&gt;control&lt;/code&gt;&quot; file with the proper information:
&lt;ul&gt;
&lt;li&gt;
Make sure it has these on the &quot;&lt;code&gt;Build-Depends&lt;/code&gt;&quot; line: &lt;code&gt;debhelper (&gt;= 5), libqt4-dev&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
The &quot;&lt;code&gt;section&lt;/code&gt;&quot; entry on the &quot;&lt;code&gt;control&lt;/code&gt;&quot; file can have values as found on the [[Packaging/Guidelines#Sections|packaging guidelines]] article
&lt;/li&gt;
&lt;li&gt;
add the icon to the &lt;code&gt;control&lt;/code&gt; file. See the [[Packaging#Displaying an icon in the Application Manager next to your package|package icon section]] in the [[packaging]] article for more information
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
set the &lt;code&gt;copyright&lt;/code&gt; file as needed, including any copyright info on external items you use such as images or libraries.
&lt;/li&gt;
&lt;li&gt;
set the &lt;code&gt;rules&lt;/code&gt; file to be slightly different than the one found in the article on [[packaging a Qt application]], so that it is as follows:
&lt;source lang=&quot;make&quot;&gt;
#!/usr/bin/make -f
APPNAME := appname
builddir:
	mkdir -p builddir

builddir/Makefile: builddir
	cd builddir &amp;&amp; qmake-qt4 PREFIX=/usr ../$(APPNAME).pro

build: build-stamp

build-stamp: builddir/Makefile
	dh_testdir
	# Add here commands to compile the package.
	cd builddir &amp;&amp; $(MAKE)
	touch $@

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp
	# Add here commands to clean up after the build process.
	rm -rf builddir
	dh_clean
install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

	# Add here commands to install the package into debian/your_appname
	cd builddir &amp;&amp; $(MAKE) INSTALL_ROOT=$(CURDIR)/debian/$(APPNAME) install
# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installdocs
	dh_installexamples
	dh_installman
	dh_link
#	dh_strip --dbg-package=appname-dbg
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure
&lt;/source&gt;
&quot;&quot;IMPORTANT: These are tabs and not spaces!&quot;&quot;
Change the application name in the beginning of the file to your app name. Also note that the debug line is commented out. This change appears to be necessary in order to work properly.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
Copy the source directory (including the &lt;code&gt;debian&lt;/code&gt; and &lt;code&gt;maemofiles&lt;/code&gt; directories, but not the &lt;code&gt;appname.pro.user&lt;/code&gt; file) into another directory (outside the source directory) called &lt;code&gt;app-version&lt;/code&gt;, for example &lt;code&gt;appname-1.0.0&lt;/code&gt;, in your work directory. We'll call this the &lt;code&gt;app-version&lt;/code&gt; directory. The version number should match the one in the &lt;code&gt;changelog&lt;/code&gt;.
&lt;li&gt;
In the &lt;code&gt;app-version&lt;/code&gt; directory, issue the following commands: &lt;pre&gt;dpkg-buildpackage&lt;/pre&gt;This should build a binary Debian package. This isn't really required to create the files we need, but is a good check that all is in working order.
&lt;pre&gt;dpkg-buildpackage -sa -S&lt;/pre&gt;
This will build the source package files we need for submission. They wil be found in the work directory (the parent of the &lt;code&gt;app-version&lt;/code&gt; directory)
Note: You can also issue the &lt;code&gt;dpkg-buildpackage&lt;/code&gt; commands with &lt;code&gt;~/NokiaQtSDK/Maemo/4.6.2/bin/mad&lt;/code&gt; in front of them (or wherever you find the mad binary files), for example:
&lt;pre&gt;~/NokiaQtSDK/Maemo/4.6.2/bin/mad dpkg-buildpackage -sa -S&lt;/pre&gt;
This will use [[MADDE]] to generate the files instead of doing it directly in the OS. This may be preferable, but I have seen it work fine either way for creating the source. The native buildpackage command will build an x86 or x86_64 package, and the MADDE buildpackage will build an armel package.
&lt;/li&gt;
&lt;/ol&gt;

== Submitting ==

At this point you should have all the files needed to upload to the [https://garage.maemo.org/extras-assistant/index.php Maemo extras assistant]. The files you need should be located in your work directory.

[[Category:Packaging]]
[[Category:Qt]]</text>
    </revision>
  </page>
  <page>
    <title>Packaging a Qt application</title>
    <id>1204</id>
    <revision>
      <id>39960</id>
      <timestamp>2010-11-04T09:11:55Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Useful Links */ add link</comment>
      <text xml:space="preserve">{{main|Packaging}}

Packaging a Qt application for Maemo is very similar to packaging any other application, so this document only contains information on Qt-specific packaging issues.

== Creating a Maemo package from a qmake project ==

In order to create a new package for Maemo, from a qmake project, you will need to:
* Rename the source directory to &lt;code&gt;Package-Version&lt;/code&gt; (for example myapp-0.1 for an application ‘myapp’ with a version of ‘0.1’)
* Create a ‘src’ directory in &lt;code&gt;Package-Version/&lt;/code&gt;
* Copy all the files to the &lt;code&gt;src/&lt;/code&gt; directory
* Rename &lt;code&gt;src/appname.pro&lt;/code&gt; to &lt;code&gt;src/src.pro&lt;/code&gt;
Please make sure that the directory name is &lt;package-version&gt; format and in small case letters.

&lt;pre&gt;
$mv myapp myapp-0.1
$cd myapp-0.1
$mkdir src
$cp * src
$mv src/appname.pro src/src.pro
&lt;/pre&gt;

Append the following chunk to end of your &lt;code&gt;src/src.pro&lt;/code&gt;. The chunk adds an install section to your qmakefile  

&lt;pre&gt;
unix {
  #VARIABLES
  isEmpty(PREFIX) {
    PREFIX = /usr
  }
  BINDIR = $$PREFIX/bin
  DATADIR =$$PREFIX/share

  DEFINES += DATADIR=\\\&quot;$$DATADIR\\\&quot; PKGDATADIR=\\\&quot;$$PKGDATADIR\\\&quot;

  #MAKE INSTALL

  INSTALLS += target desktop service iconxpm icon26 icon48 icon64

  target.path =$$BINDIR

  desktop.path = $$DATADIR/applications/hildon
  desktop.files += $${TARGET}.desktop

  service.path = $$DATADIR/dbus-1/services
  service.files += $${TARGET}.service

  icon64.path = $$DATADIR/icons/hicolor/64x64/apps
  icon64.files += ../data/64x64/$${TARGET}.png
}
&lt;/pre&gt;


*Create a &lt;code&gt;myapp-0.1/myapp.pro&lt;/code&gt; file like this:
&lt;pre&gt;
QMAKEVERSION = $$[QMAKE_VERSION]
ISQT4 = $$find(QMAKEVERSION, ^[2-9])
isEmpty( ISQT4 ) {
error(&quot;Use the qmake include with Qt4.4 or greater, on Debian that is qmake-qt4&quot;);
}

TEMPLATE = subdirs
SUBDIRS  = src
&lt;/pre&gt;
*Run dh_make to debianize the source archive, it creates:
**An archive with the unchanged upstream source (orig.tar.gz)
**Some basic files in the debian directory
**Some example files (*.EX *.ex)
&lt;pre&gt;
export DEBFULLNAME=&quot;maintainer first name and last name&quot;
dh_make --createorig --single -e maintainer@email.org -c gpl
&lt;/pre&gt;

== Editing the rules file ==
The rules file generated by &lt;code&gt;dh_make&lt;/code&gt;, found in &lt;code&gt;debian/rules&lt;/code&gt; will be modified in order to look like this one. We are using qmake, so there is no &lt;code&gt;configure&lt;/code&gt; script to run. If you copy and paste the following file, notice the empty space at the beginning of the lines these are TAB characters, they are not multiple space characters. If you copy and paste the following chunk, you most propably get space's instead of tabs if this is true then the file will not work.

&lt;pre&gt;
#!/usr/bin/make -f
APPNAME := my_app_name
builddir:
        mkdir -p builddir

builddir/Makefile: builddir
        cd builddir &amp;&amp; qmake-qt4 PREFIX=/usr ../$(APPNAME).pro

build: build-stamp

build-stamp: builddir/Makefile
        dh_testdir
        # Add here commands to compile the package.
        cd builddir &amp;&amp; $(MAKE)
        touch $@

clean:
        dh_testdir
        dh_testroot
        rm -f build-stamp
        # Add here commands to clean up after the build process.
        rm -rf builddir
        dh_clean
install: build
        dh_testdir
        dh_testroot
        dh_clean -k
        dh_installdirs

        # Add here commands to install the package into debian/your_appname
        cd builddir &amp;&amp; $(MAKE) INSTALL_ROOT=$(CURDIR)/debian/$(APPNAME) install
# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
        dh_testdir
        dh_testroot
        dh_installdocs
        dh_installexamples
        dh_installman
        dh_link
        dh_strip --dbg-package=my-application-dbg
        dh_compress
        dh_fixperms
        dh_installdeb
        dh_shlibdeps
        dh_gencontrol
        dh_md5sums
        dh_builddeb

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure
&lt;/pre&gt;

== Editing the control file ==
The control file generated by &lt;code&gt;dh_make&lt;/code&gt;, found in &lt;code&gt;debian/control&lt;/code&gt; will be modified substantially. Please refer to the general packaging guide for Maemo for details.

For Qt applications you need to make sure to add &lt;code&gt;libqt4-dev&lt;/code&gt; as an additional entry in the field &lt;code&gt;Build-Depends&lt;/code&gt;.

== Example ==
You can download the [http://maemo.org/packages/view/qt-maemo-example/ source package of qt-maemo-example] from the [[extras-devel]] repository as follows, if you have source packages enabled in your &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; file:

 apt-get source qt-maemo-example

This command will download the:

* unmodified source (.orig.tar.gz)
* debian dsc file (.dsc)
* diff file (.diff)

and will then automatically launch &lt;code&gt;dpkg -x file.dsc&lt;/code&gt; in order to decompress the orig.tar.gz and apply the changes.

== Useful Links ==

* [[Packaging Qt Creator Apps for Maemo Extras]]
* [[Qt-Maemo|Qt for Maemo]]
* [[Packaging|Packaging guide for Maemo]]
* [http://doc.qt.nokia.com/qt-maemo-4.6/maemo5-with-qt-introduction.html#deploying-your-applications Deploying your Maemo 5 Qt application] Qt documentation

[[Category:Packaging]]
[[Category:Qt]]</text>
    </revision>
  </page>
  <page>
    <title>Panucci</title>
    <id>2122</id>
    <revision>
      <id>30507</id>
      <timestamp>2010-03-04T15:43:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>[[Template:Out of date]]</comment>
      <text xml:space="preserve">{{Out of date}}

This is a skeleton outline for adding info that people find useful or think may be useful to others.   Any non-intuitive features should be documented.
&lt;p&gt;
&lt;big&gt;'''The panucci User Manual'''&lt;/big&gt;
==About This Manual==
===Copyright Information===
===Disclaimer===
===Credits===
==Installing==
Install from the installation manager.  Or it can be obtained [http://maemo.org/downloads/product/OS2008/panucci/ here]
==Introduction==
panucci is primarily a podcast player, though it can be used as a music player.
===Highlights===
* auto memorize playback position on exit
* resumes from memorized position when track is next played
* Easy, single handed operation
* Skip forward/backwards (short skip and long skip)
* support for mp3 and ogg playback

==Using panucci==
Panucci is mostly intuitive.  This manual is intended to describe areas that might not be immediatly obvious.
===Accessing audio===
====Opening audio====
The 'Open' menu brings up a file manager which can be used to select individual audio tracks.  
====Opening playlists====
From the 'Open' menu, select a playlist file instead of an individual track.
====Saving playlists====
There is no menu option to save playlists - instead, if you have generated a playlist and make a selection that would change it (eg selecting a new track) you will be asked if you want to save the playlist first.

====Creating playlists====
See [http://talk.maemo.org/showpost.php?p=276170&amp;postcount=83 this post].

===Playback controls===
The long press functions will come in at version 0.4
&lt;pre&gt;|&lt;&lt; and &gt;&gt;|
  Short press: Skip backward/forward by the amount contained by
    the &quot;seek_long&quot; gconf setting (default: 60 seconds).
  Long press: Skip backward/forward by one track in the playlist.

[*] (the bookmark button)
  Short press: Create a bookmark at the current position
  Long press: Switch to the playlist tab and highlight the
    current track.
&lt;/pre&gt;

==Q&amp;A==
Any questions that come up more than once in the Forum can be put in here

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Participant Photos</title>
    <id>821</id>
    <revision>
      <id>4774</id>
      <timestamp>2008-07-18T11:33:20Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>[[Participant Photos]] moved to [[Maemo Summit 2008/Participant Photos]]: TO place page under Maemo_Summit_2008 namespace</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo Summit 2008/Participant Photos]]</text>
    </revision>
  </page>
  <page>
    <title>Partitioning a flash card</title>
    <id>198</id>
    <revision>
      <id>44078</id>
      <timestamp>2011-06-21T04:29:47Z</timestamp>
      <contributor>
        <ip>220.246.165.201</ip>
      </contributor>
      <comment>n900 links</comment>
      <text xml:space="preserve">'''WARNING: Partitioning your flash card will delete all data of the card, so be sure to back up any important data to a computer or another flash card.'''

For N900 see [[Repartitioning_the_flash]] and [[Changing the eMMC filesystem]]

== Install the necessary packages and create partitions ==

'''Note:''' on the N800 and N810 the filesystem numbering can be a little confusing.

* The '''external''' card device is /dev/mmcblk1 (mounted at /media/mmc1)
* The '''internal''' card device is /dev/mmcblk0 (mounted at /media/mmc2)

So if you plan to format the extern
 umount /media/mmc2
 sfdisk /dev/mmcblk0 &lt;&lt; EOF
 1,15000,6
 15001,,
 
 
 EOF

'''** Note **''' &quot;&lt;&lt; EOF&quot; '' and'' &quot;EOF&quot; '' are required text if the commands are in a script file but are NOT entered if you are typing the commands into a terminal/shell. In the second case, sfdisk will require the Enter key be pressed, instead of blank lines, to sfdisk's prompts for any unused partitions. Keep pressing the Enter key until sfdisk has finished prompting for the partitions, then you will need to enter &quot;y&quot; to confirm you want to actually write the changes to the card.''

This example will create two partitions in a 1GB flash card: the first one is FAT16 (that's what number 6 means), and the second one is the default Linux native partition (83). If you are using a card larger than 2GB, use &quot;c&quot; (FAT32 LBA) instead of &quot;6&quot;.  The size of the first one is almost 480MB (that's the meaning of the 15000), and the second one is sized till the end of the card (that's what ,, means). Partitions three and four are empty.

The arguments for [http://linux.die.net/man/8/sfdisk sfdisk] are: 
* The device node to use for the partition
* The start cylinder on the card
* The end cylinder on the card (leave blank to have the partition go to the end of the disk)
* The filesystem type ([http://www.win.tue.nl/~aeb/partitions/partition_types-1.html complete list])

A cylinder is a 32KB block on a flash card, so 15,000 cylinders equates to 480,000KB (approx. 480MB).

== Format the partitions ==

Once you have created the required partition table, you will need to initialise the filesystems.

Type as root:

 mkdosfs /dev/mmcblk0p1
 shutdown -r now

After it reboots, then open Xterm and, as root, run:

 mke2fs /dev/mmcblk0p2
 shutdown -r now

== Mounting the partitions ==

The VFAT partition will be mounted by the system automagically at start-up. To mount the EXT2 partition we need to load the kernel modules, so open Xterm and,  '''as root''', type:

 insmod /mnt/initfs/lib/modules/$(uname -r)/mbcache.ko
 insmod /mnt/initfs/lib/modules/$(uname -r)/ext2.ko
 mount /dev/mmcblk0p2 /media/mmc2

(Note: /media/mmc2 will already have the VFAT partition mounted.  Perhaps we should create a directory in /media and mount to that instead?)

[[Category:Power users]]
[[Category:Wiki page of the day]]

[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Partitioning an MMC card</title>
    <id>729</id>
    <revision>
      <id>4155</id>
      <timestamp>2008-07-06T11:44:03Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Partitioning an MMC card]] moved to [[Partitioning a flash card]]: MMC is deprecated</comment>
      <text xml:space="preserve">#REDIRECT [[Partitioning a flash card]]</text>
    </revision>
  </page>
  <page>
    <title>Partitioning the internal flash card</title>
    <id>4014</id>
    <revision>
      <id>33428</id>
      <timestamp>2010-04-25T20:43:30Z</timestamp>
      <contributor>
        <username>marcvs</username>
        <id>2632</id>
      </contributor>
      <comment>[[Partitioning the internal flash card]] moved to [[Creating a large partition and booting off it]]: Added more content so it deserved a new title.

This page might want to be categorized as PowerUser, but I have no clue how to</comment>
      <text xml:space="preserve">#REDIRECT [[Creating a large partition and booting off it]]</text>
    </revision>
  </page>
  <page>
    <title>People</title>
    <id>245</id>
    <revision>
      <id>40962</id>
      <timestamp>2010-12-30T08:10:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>Undo revision 40959 by [[Special:Contributions/70.39.93.16|70.39.93.16]] ([[User talk:70.39.93.16|Talk]]) spam</comment>
      <text xml:space="preserve">The following people and teams make up some parts of the Maemo ecosystem.

Links go to their individual blogs or sites.

== The maemo.org team ==

maemo.org is maintained and developped by a group of professional and volunteer community members who have assumed certain roles within Maemo. They are the [[maemo.org team]].

== Module maintainers ==

{{out of date}}

For each module defined in the Maemo platform diagram, there are one or more primary technical contacts within the project. While the recommended way to report issues against a platform is to [http://bugs.maemo.org report a bug in Bugzilla], and the best place to ask technical questions is the [http://maemo.org/community/mailing-lists/ mailing lists], these are the people behind the modules, who can give you technical information, or point you in the right direction.

The following modules are defined in the [https://maemo.org/midcom-serveattachmentguid-07f3bd0a449211dd858543096c880b980b98/maemoarchitecture.png Maemo architecture diagram]:

* Maemo SDK: [http://maemo.org/profile/view/bijjal/ Soumya Bijjal]
* Maemo Launcher:  [http://maemo.org/profile/view/guillem/ Guillem Jover]
* Hildon UI framework:  [http://maemo.org/profile/view/kihamala/ Kimmo Hämäläinen]
* GNOME/GTK+ application framework: [http://maemo.org/profile/view/kihamala/ Kimmo Hämäläinen]
* Telepathy communication framework: Pending (said Misha, but is incorrect)
* EDS calendar/contacts: Jörgen Scheibengruber
* GNOME Configuration management (GConf): [http://maemo.org/profile/view/kihamala/ Kimmo Hämäläinen]
* GNOME structured file library: [http://maemo.org/profile/view/mvo/ Marius Vollmer]
* GNOME VFS: [http://maemo.org/profile/view/kihamala/ Kimmo Hämäläinen]
* gStreamer multimedia framework: [http://maemo.org/profile/view/ensonic/ Stefan Kost]
* System services like D-Bus, sqlite: For D-Bus, HAL, et al:  Janne Karhunen. For libosso, ke-recv: [http://maemo.org/profile/view/kihamala/ Kimmo Hämäläinen]
* Debian package management: [http://maemo.org/profile/view/mvo/ Marius Vollmer]
* System libraries like libc, openssl: [http://maemo.org/profile/view/ykaliuta/ Yauheni Kaliuta], For libc: [http://maemo.org/profile/view/kaltsi/ Juha Kallioinen], [http://maemo.org/profile/view/jumpula Jussi Hakala]
* ARM/OMAP-based Linux kernel: [http://maemo.org/profile/view/ykaliuta/ Yauheni Kaliuta]

== Nokia community member blogs ==
These links are taken from Tableteer. See the [http://tableteer.nokia.com/tableteer/os2008/team_urho.xhtml#top Tableteer Team Page] for their profiles!

*[http://konttoristhoughts.blogspot.com/ Urho]
*[http://northerndialogue.blogspot.com/ Erkko]
*[http://www.karoliinasalminen.com/blog Karoliina]
*[http://jaaksi.blogspot.com/ Ari]
*[http://flors.wordpress.com/ Quim]
*[http://www.tigert.com/ TigerT]
*[http://www.notacloud.com/blog/index.php Carlos]
*[http://maemointeraction.wordpress.com/ maemo UI Team]

==More Blogs==
=== Dr. Ari Jaaksi ===
Nokia VP and Head of the Maemo Software team. He has a [http://jaaksi.blogspot.com/ blog]. 

=== WOM World ===
WOM World cherry picks some of the best and brightest posts across the blogging planet and [http://www.womworld.com/nseries/ reports them with commentary.]

=== Jonathan Greene ===
Writer of [http://www.atmasphere.net/wp/ Atmaspheric Endeavors] and [http://www.maemoapps.com/ maemoApps.com]

=== Reggie Suplido ===
Maintainer of [http://www.internettablettalk.com/ InternetTabletTalk] and [http://www.internettablettalk.com/forums itT forums].

=== John Tokash ===
Writer of [http://blog.tokash.org/ his own blog], often talking about Internet Tablets

=== Krisse (neoncherry) ===
Writer/owner/videographer for [http://tabletschool.blogspot.com/ Tablet School]

=== Ricky Cadden ===
Owner of Symbian-Guru started [http://www.tablet-guru.com/ Tablet Guru] for his Internet Tablet writings.  This focus has been restarted and rebranded as [http://www.maemo-guru.com/ Maemo Guru]

=== Karoliina Salminen ===
A Nokia employee who does a lot of [http://www.karoliinasalminen.com/blog blogging on her own.]

=== Daniel Gentleman ===
Owner of ThoughtFix LLC which operates [http://tabletblog.com TabletBlog.com]

=== Tim Samoff ===
Maemo Community Council member and independent blogger at [http://tim.samoff.com Tim Samoff // Weblog]

=== Randall Arnold (texrat) ===
A former Nokia employee and current maemo.org council member who often approaches Maemo and related devices from a high level at [http://tabulacrypticum.wordpress.com Tabula Crypticum].  Filter using category Mentioning Maemo (http://tabulacrypticum.wordpress.com/category/mentioning%20maemo/feed).

== Community development ==

{{main|Who is doing what}}

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Performance</title>
    <id>4117</id>
    <revision>
      <id>34568</id>
      <timestamp>2010-05-20T12:54:49Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <comment>[[Performance]] moved to [[Performance Considerations for Python Apps]]: Hmm, made the title too geneirc</comment>
      <text xml:space="preserve">#REDIRECT [[Performance Considerations for Python Apps]]</text>
    </revision>
  </page>
  <page>
    <title>Performance Considerations for Python Apps</title>
    <id>5059</id>
    <revision>
      <id>45841</id>
      <timestamp>2011-11-24T17:52:31Z</timestamp>
      <contributor>
        <username>wmoreira</username>
        <id>4818</id>
      </contributor>
      <comment>[[Performance Considerations for Python Apps]] moved to [[Python/Harmattan/Performance Considerations for Python Apps]]</comment>
      <text xml:space="preserve">#REDIRECT [[Python/Harmattan/Performance Considerations for Python Apps]]</text>
    </revision>
  </page>
  <page>
    <title>Perl</title>
    <id>2836</id>
    <revision>
      <id>46030</id>
      <timestamp>2011-12-15T06:28:50Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 46000 by [[Special:Contributions/114.79.28.10|114.79.28.10]] ([[User talk:114.79.28.10|Talk]]) vandalism/spam</comment>
      <text xml:space="preserve">Because Maemo is based on Debian, and because perl is such a big part of the debian OS, Maemo contains a full-blown Perl platform. This page aims to document and describe this environment so developers can take advantage of it when programming on the Maemo platform.

== Fremantle ==

The current version of perl shipped with the [[Nokia N900|N900]] is 5.8.3. 

One caveat of perl development on the N900 is that there is a fuller Perl distribution in the SDK than on the device. This means not just that there are fewer modules on the device, it means that rather fundamental Perl modules are missing form the normal Debian version of Perl on the device. This is done to save space; the device itself is embedded linux, the root files system is rather small, i.e. 228 MB.

You will find it difficult to build Perl modules on the device if you do not add the necessary Perl tools, namely &lt;code&gt;perl&lt;/code&gt; and &lt;code&gt;perl-modules&lt;/code&gt;. Without these key tools, many of the modules used to build Perl modules won't exist on the device and you won't be able to add software written in Perl. Here is an example of what is shipped with both the SDK and device environments;

{| class=&quot;wikitable&quot;
|+ Installed Perl packages
|-
! In the SDK !! On device
|-
| liblocale-gettext-perl   ''1.01-17osso2''&lt;br/&gt; 
libtimedate-perl  ''1.1600-4osso''&lt;br/&gt;
perl ''5.8.3-3osso10''&lt;br/&gt;
perl-base ''5.8.3-3osso10''&lt;br/&gt;
perl-modules ''5.8.3-3osso10''&lt;br/&gt;
| liblocale-gettext-perl   ''1.01-17osso2''&lt;br/&gt; 
perl-base ''5.8.3-3osso10''
|}

The SDK repositories are here: 

 deb http://repository.maemo.org fremantle/sdk free non-free
 deb http://repository.maemo.org fremantle/tools free non-free

If you wish to add Perl modules what I recommend is to bring in the necessary tools, namely the &lt;code&gt;perl&lt;/code&gt; package and the &lt;code&gt;perl-modules&lt;/code&gt; package. You can do that by adding the repositories that supply modules to the SDK. Of course you can build Perl yourself, but it is already built for the device's architecture and it is in a known good state, so it is much easier to just take the already built Perl binaries for the N900. (There are later versions of Perl built and packaged for the device, I'll eventually provide links to those, until then, you'll have to rely on Google.)

Once you have added the SDK repositories to your &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;, simply run:
 apt-get update
 apt-get install perl perl-modules

Now you should be ready to start bringing other modules in.

=== Git repo at Gitorious ===

I have packaged one module so far, I hope to bring in many more perl modules. If you package something for the device, why not contribute your module to the maemo repos and/or ask me to pull it into the [http://gitorious.org/maemo-perl-packages/maemo-perl-packages/trees/master gitorious repo that] I have set up?

=== dh-make-perl at garage.maemo.org ===

Just ported &lt;code&gt;dh-make-perl&lt;/code&gt; for Maemo fremantle. The packages ported are available at [http://dh-make-perl.garage.maemo.org]. It includes among

Some notes for people who want to port perl modules for ARM. I found out that I had to change the following (change your proxy settings as appropiate):

&lt;source lang=&quot;bash&quot;&gt;
# Environment vars
SBOX_REDIRECT_IGNORE=/usr/bin/perl
export  SBOX_REDIRECT_IGNORE
unset PERL5LIB
export PATH=/usr/bin/dh7:/usr/bin:$PATH
export DISPLAY=:2
export http_proxy=http://172.16.0.1:3128
export https_proxy=http://172.16.0.1:3128
export ftp_proxy=http://172.16.0.1:3128
export GIT_SSL_NO_VERIFY=1
echo &quot;127.0.0.1 localhost&quot; &gt; /etc/hosts
&lt;/source&gt;

Nasty script to substitute &lt;code&gt;/usr/bin/man&lt;/code&gt; which breaks &lt;code&gt;dh_installdocs&lt;/code&gt;

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/bash
n=$#
echo &quot;$# $1 $2 $n&quot;
while [ $n -ne 1 ]; do
 echo &quot;$# $1 $2 $n&quot;
 p=$1
 shift
 n=$#
done
p=$1
echo $p
/usr/lib/man-db/manconv -f UTF-8:ISO-8859-1 -t UTF-8//IGNORE  $p
&lt;/source&gt;

Some packages ported include ssleay and some others which are needed prerequisites for &lt;code&gt;dh-make-perl&lt;/code&gt;.

[[Category:Software]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Perl on the N900</title>
    <id>2972</id>
    <revision>
      <id>22958</id>
      <timestamp>2009-11-18T20:27:30Z</timestamp>
      <contributor>
        <username>josefdk</username>
        <id>1273</id>
      </contributor>
      <minor/>
      <comment>made proper redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Perl]]</text>
    </revision>
  </page>
  <page>
    <title>Personal Menu tips and tricks</title>
    <id>1534</id>
    <revision>
      <id>42565</id>
      <timestamp>2011-03-09T15:31:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">This page is a collection of tips and tricks for Personal Menu and Personal Launcher.

== Opening File in Media Player ==

# Open Settings for Pmenu or PLauncher
# Click add new entry
# Name your entry
# Enter into Command to execute:&lt;pre&gt;/usr/bin/dbus-send --print-reply --dest=com.nokia.mediaplayer /com/nokia/mediaplayer com.nokia.mediaplayer.mime_open string:&quot;&lt;location of file&gt;&quot;&lt;/pre&gt;
# Choose Icon
# Click ''Ok'' and close the Settings window.

&lt;nowiki&gt;*&lt;/nowiki&gt;&lt;location to file&gt; would be either the web address or the location of the file on your tablet


== Adding entry for Web address ==

[[Image:Plaunchss.jpg|frame|Example of Adding Icon for Google]]

To add a entry for either a web address or any file that is location on your tablet that opens in browser use the following tip.

# Open Settings for Pmenu or PLauncher
# Click add new entry
# Name your entry
# Enter into Command to execute:&lt;pre&gt;browser --url=&lt;location to file&gt;&lt;/pre&gt;
# Choose Icon
# Click ''Ok'' and close the Settings window.

&lt;nowiki&gt;*&lt;/nowiki&gt;&lt;location to file&gt; would be either the web address or the location of the file on your tablet

== Adjust Volume using Personal Launcher ==

#Open Settings for Personal Launcher
# Adding Volume Down
## Click add new entry
## Name your entry
## Enter into Command to execute:&lt;pre&gt;gconftool -t int -s /apps/osso/sound/master_volume `expr $(gconf-tool -g /apps/osso/sound/master_volume) - 10`&lt;/pre&gt;
# Adding Volume Down
## Click add new entry
## Name your entry
## Enter into Command to execute:&lt;pre&gt;gconftool -t int -s /apps/osso/sound/master_volume `expr $(gconf-tool -g /apps/osso/sound/master_volume) + 10`&lt;/pre&gt;

Taken from itT Thread[http://www.internettablettalk.com/forums/showpost.php?p=258144&amp;postcount=10]

== Adding Custom Icons for Personal Menu/Launcher ==

If you would like to add some icons that you can use for your personal menu/launcher or if you would like to change on that is already there follow these steps.

# Create a 64px x 64px icon and save in .png format.
# Upload file to /usr/share/icons/hicolor/scalable/hildon/
# Run in Terminal [[root access|as root]]:&lt;pre&gt;gtk-update-icon-cache -f /usr/share/icons/hicolor&lt;/pre&gt;
#* Rebooting device should do the trick also.
# Set icon for your entry.  
Custom icon will appear under hildon in drop down box.

[[Category:Users]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Phone Control</title>
    <id>5221</id>
    <revision>
      <id>48749</id>
      <timestamp>2012-07-14T18:48:09Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>Redirecting to [[Phone control]]</comment>
      <text xml:space="preserve">#REDIRECT [[Phone control]]</text>
    </revision>
  </page>
  <page>
    <title>Phone control</title>
    <id>3197</id>
    <revision>
      <id>48789</id>
      <timestamp>2012-07-21T19:35:08Z</timestamp>
      <contributor>
        <username>yablacky</username>
        <id>4689</id>
      </contributor>
      <minor/>
      <comment>/* Security Device Lock (with lockcode) */</comment>
      <text xml:space="preserve">{{ambox
| type = notice
| image= 
| text = '''This page is about controlling your Nokia device.  For historical reasons this page is called '''phone''' control even though it really covers more than just the phone functions.'''
}}


{{Recommended phone usage}}

==D-Bus==

These D-Bus commands can be run from terminal or as shell scripts. Useful for scheduling events with [[fcron]], executing from [[Desktop Command Execution Widget scripts|Desktop Command Execution Widget]] or [[Queen BeeCon Widget]], startup events, install scripts, etc. They should be run as:

 run-standalone.sh SCRIPT.sh
 run-standalone.sh dbus-send COMMAND

This is important to set up the environment correctly otherwise they may barf. If run as user &quot;user&quot; this is not needed.

Also note that most commands don't need &quot;--print-reply&quot; option. Those that don't need it should be '''tested without it''' and this page should be edited.

===Phone===

====Open Phone application====

 dbus-send --type=method_call --dest=com.nokia.HildonDesktop.AppMgr /com/nokia/HildonDesktop/AppMgr com.nokia.HildonDesktop.AppMgr.LaunchApplication string:&quot;rtcom-call-ui&quot;

====Make a phone call====

 dbus-send --system --type=method_call --print-reply --dest=com.nokia.csd.Call /com/nokia/csd/call com.nokia.csd.Call.CreateWith string:&quot;$NUMBER&quot; uint32:0

Change $NUMBER to phone number you want to call.

====End current phone call====

 dbus-send --system --print-reply --dest=com.nokia.csd.Call /com/nokia/csd/call com.nokia.csd.Call.Release

This will release/end/hangup/reject the current call (or possibly all calls if more then one call is active) or do nothing if no calls are active.

====Answer current phone call====

 dbus-send --system --print-reply --dest=com.nokia.csd.Call /com/nokia/csd/call/1 com.nokia.csd.Call.Instance.Answer

This will answer/pickup the current (first) call. 

If you answer the call immediately as you receive the Call Coming D-Bus message the phone seems to be in a specific call state where answering yields a &lt;code&gt;com.nokia.csd.Call.Error.NotAllowed&lt;/code&gt; exception.

You need to answer the call after a delay of e.g. 1 s.

Another (probably better) approach is to register to the CallStatus D-Bus message (&lt;code&gt;com.nokia.csd.Call&lt;/code&gt;, &lt;code&gt;/com/nokia/csd/call/1&lt;/code&gt;, &lt;code&gt;com.nokia.csd.Call.Instance.CallStatus&lt;/code&gt;) and wait for a call status &gt;= 2 (=&lt;code&gt;CSD_CALL_STATUS_COMING&lt;/code&gt;) after the &quot;Coming&quot; message.


====Activate call forwarding====
 

Forward [[all ('unconditional') calls]] to e.g. +12223456789
 dbus-send --system --type=method_call --print-reply --dest=com.nokia.csd.SS /com/nokia/csd/ss com.nokia.csd.SS.DivertActivate uint32:'''0''' string:&quot;+12223456789&quot; uint32:
or
 dbus-send --system --type=method_call --print-reply --dest=com.nokia.csd.SS /com/nokia/csd/ss com.nokia.csd.SS.DivertActivate uint32:'''1''' string:&quot;+12223456789&quot; uint32:

----

Forward [[calls when 'busy']] to e.g. +12223456789
 dbus-send --system --type=method_call --print-reply --dest=com.nokia.csd.SS /com/nokia/csd/ss com.nokia.csd.SS.DivertActivate uint32:'''2''' string:&quot;+12223456789&quot; uint32:

----

Forward [[unanswered calls]] to e.g. +12223456789 (leaving the last uint32: empty will use the last stored waiting time)
 dbus-send --system --type=method_call --print-reply --dest=com.nokia.csd.SS /com/nokia/csd/ss com.nokia.csd.SS.DivertActivate uint32:'''3''' string:&quot;+12223456789&quot; uint32:

Forward [[unanswered calls, when 'no answer' after 25 sec]] to e.g. +12223456789 (if you want to set this value explicitly; valid values: 5, 10, 15, 20, 25, 30)
 dbus-send --system --type=method_call --print-reply --dest=com.nokia.csd.SS /com/nokia/csd/ss com.nokia.csd.SS.DivertActivate uint32:'''3''' string:&quot;+12223456789&quot; uint32:'''25'''

----

Forward [[calls when you are 'out of reach' (no network, shut off, ...)]] to e.g. +12223456789
 dbus-send --system --type=method_call --print-reply --dest=com.nokia.csd.SS /com/nokia/csd/ss com.nokia.csd.SS.DivertActivate uint32:'''4''' string:&quot;+12223456789&quot; uint32:

----

Forward [[calls when 'not available' (busy, no answer, out of reach)]] to e.g. +12223456789
 dbus-send --system --type=method_call --print-reply --dest=com.nokia.csd.SS /com/nokia/csd/ss com.nokia.csd.SS.DivertActivate uint32:'''5''' string:&quot;+12223456789&quot; uint32:

--[[User:peterleinchen|peterleinchen]] 23:00, 15 December 2011 (UTC)

many thanks to the pre-contributor (I have searched for a long time to have the possibility to switch forwarding script based)

====Cancel call forwarding====
 dbus-send --system --type=method_call --print-reply --dest=com.nokia.csd.SS
 /com/nokia/csd/ss com.nokia.csd.SS.DivertCancel uint32:'''x''' string: uint32:
Valid values for &quot;x&quot;, pls see also above.
0 unconditional

1 unconditional

2 busy

3 no answer (after xx sec)

4 out of reach

5 not available (busy, no answer, out of reach)

--[[User:peterleinchen|peterleinchen]] 23:00, 15 December 2011 (UTC)


====Get [[:wikipedia:International_Mobile_Equipment_Identity|IMEI]]====

 dbus-send --system --type=method_call --print-reply --dest=com.nokia.phone.SIM /com/nokia/phone/SIM/security Phone.Sim.Security.get_imei|awk -F &quot;\&quot;&quot; '/g/ {print $2}'

====Get [[:wikipedia:International_Mobile_Subscriber_Identity|IMSI]]====

 dbus-send --system --type=method_call --print-reply --dest=com.nokia.phone.SIM /com/nokia/phone/SIM Phone.Sim.get_imsi|awk -F &quot;\&quot;&quot; '/g/ {print $2}'

====Get [[:wikipedia:Subscriber_identity_module#ICCID|ICCID]]====

 dbus-send --system --type=method_call --print-reply --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.get_iccid|awk -F &quot;\&quot;&quot; '/g/ {print $2}'

====Get SIM status====

 dbus-send --system --print-reply --dest=com.nokia.phone.SIM /com/nokia/phone/SIM Phone.Sim.get_sim_status

====Get cellular signal strength====

 dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_signal_strength

First line is percentage, second is dBm, third unknown.

====Get cellular registration status====

 dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_registration_status

====Turn loudspeaker on====

 dbus-send --type=method_call --dest=com.nokia.osso_hp_ls_controller /com/nokia/osso_hp_ls_controller com.nokia.osso_hp_ls_controller.loudspeaker.force_loudspeaker_on

(These loudspeaker ones don't work on my N900. If I add --print-reply I get &quot;Error org.freedesktop.DBus.Error.ServiceUnknown: The name com.nokia.osso_hp_ls_controller was not provided by any .service files&quot;.)

====Turn loudspeaker off====

 dbus-send --type=method_call --dest=com.nokia.osso_hp_ls_controller /com/nokia/osso_hp_ls_controller com.nokia.osso_hp_ls_controller.loudspeaker.force_loudspeaker_off

====Turn loudspeaker on (N900)====

 dbus-send --type=method_call --dest=org.maemo.Playback.Manager /org/maemo/Playback/Manager org.maemo.Playback.Manager.RequestPrivacyOverride boolean:true

====Turn loudspeaker off (N900)====
 dbus-send --type=method_call --dest=org.maemo.Playback.Manager /org/maemo/Playback/Manager org.maemo.Playback.Manager.RequestPrivacyOverride boolean:false

====Turn mute on (N900)====

 dbus-send --type=method_call --dest=org.maemo.Playback.Manager /org/maemo/Playback/Manager org.maemo.Playback.Manager.RequestMute boolean:true

====Turn mute off (N900)====
 dbus-send --type=method_call --dest=org.maemo.Playback.Manager /org/maemo/Playback/Manager org.maemo.Playback.Manager.RequestMute boolean:false

====Turn bluetooth override on (N900)====

 dbus-send --type=method_call --dest=org.maemo.Playback.Manager /org/maemo/Playback/Manager org.maemo.Playback.Manager.RequestBluetoothOverride boolean:true

====Turn bluetooth override off (N900)====
 dbus-send --type=method_call --dest=org.maemo.Playback.Manager /org/maemo/Playback/Manager org.maemo.Playback.Manager.RequestBluetoothOverride boolean:false

====Start vibrating====

 dbus-send --system --print-reply --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_vibrator_pattern_activate string:PatternIncomingCall

====Stop vibrating====

 dbus-send --system --print-reply --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_vibrator_pattern_deactivate string:PatternIncomingCall

===Profiles===

====Set General====

 dbus-send --type=method_call --dest=com.nokia.profiled /com/nokia/profiled com.nokia.profiled.set_profile string:&quot;general&quot;

====Set Silent====

 dbus-send --type=method_call --dest=com.nokia.profiled /com/nokia/profiled com.nokia.profiled.set_profile string:&quot;silent&quot;



====Query current profile====

 dbus-send --type=method_call --print-reply --dest=com.nokia.profiled /com/nokia/profiled com.nokia.profiled.get_profile

====List all profiles====

 dbus-send --type=method_call --print-reply --dest=com.nokia.profiled /com/nokia/profiled com.nokia.profiled.get_profiles|awk -F &quot;\&quot;&quot; '/g/ {print $2}'

====Get all profile Values====

You can modify any profile value, eg. clock alarm enabled, im alert volume, keypad sound level, touchscreen sound level, ... To find out which keys exist, to what value they are set and what values can be given you can use the following command. (For the profile &quot;silent&quot; just put &quot;silent&quot; at the end instead of &quot;general&quot;.)

 dbus-send --type=method_call --print-reply --dest=com.nokia.profiled /com/nokia/profiled com.nokia.profiled.get_values string:&quot;general&quot;

The returned value is an array of struct. Each struct has 3 strings: key, value, type. Type can be eg. &quot;INTEGER 0-2&quot; saying that the values 0, 1 and 2 are correct values for this key.

====Set a profile value====

To modify the above mentioned profile values you need this method. The method takes three parameters, all strings: profile, key and value. Profile can be &quot;general&quot; or &quot;silent&quot;, key is one of the keys from the above (get all profile values), value can be set to anything allowed by &quot;type&quot; from the above method.

To enable vibrating alert for the profile &quot;general&quot; your script would look like this:

 dbus-send --type=method_call --dest=com.nokia.profiled /com/nokia/profiled com.nokia.profiled.set_value string:&quot;general&quot; string:&quot;vibrating.alert.enabled&quot; string:&quot;On&quot;

===LED===

====Activate LEDs====

 dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_led_pattern_activate string:&quot;PatternCommunicationIM&quot;

====Deactivate LEDs====

 dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_led_pattern_deactivate string:&quot;PatternCommunicationIM&quot;

====Set brightness of backlight LEDs====

 dbus-send --print-reply --system --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer_backlight org.freedesktop.Hal.Device.LaptopPanel.SetBrightness int32:$brightness

(where $brightness is 0...255)

===Messaging===

====New e-mail====

 dbus-send --type=method_call --dest=com.nokia.modest /com/nokia/modest com.nokia.modest.MailTo string:&quot;mailto:&quot;

====Send and receive e-mail====

It works, but it takes up to 2 minutes for modest to start refreshing and after that it depends on the speed of the connection how fast it is going to be completed, usually up to 5 seconds, 2G can be a bit slower.

 dbus-send --type=method_call --dest=com.nokia.modest /com/nokia/modest com.nokia.modest.SendReceive

====Set presence====

 dbus-send --type=method_call --print-reply --dest=org.freedesktop.Telepathy.MissionControl /org/freedesktop/Telepathy/MissionControl org.freedesktop.Telepathy.MissionControl.SetPresence uint32:2 string:&quot;I'm here&quot;

Note: This method does not work in Maemo 5. Workaround: http://talk.maemo.org/showthread.php?t=55686

====Change peak_schedule settings====

Check:
 run-standalone.sh gconftool-2 -R /apps/activesync

Set (check if yours is named ActiveSyncAccount1):
 run-standalone.sh gconftool-2 --set /apps/activesync/ActiveSyncAccount1/schedule/peak_schedule --type=int 15
Where the last number is one of the following (as standard in GUI):

* '''0''' = Always on
* '''-1''' = Manual
* '''15''' = Every 15 minutes
* '''30''' = Every 30 minutes
* '''60''' = Every hour
* '''240''' = Every 4 hours
* '''720''' = Every 12 hours

===Media player===

====Open file in media player====

 dbus-send --print-reply --dest=com.nokia.mediaplayer /com/nokia/mediaplayer com.nokia.mediaplayer.mime_open string:&quot;file:///$1&quot;

====Pause what's currently playing====

 dbus-send --dest=com.nokia.mafw.renderer.Mafw-Gst-Renderer-Plugin.gstrenderer /com/nokia/mafw/renderer/gstrenderer com.nokia.mafw.renderer.pause

====Stop what's currently playing====

 dbus-send --dest=com.nokia.mafw.renderer.Mafw-Gst-Renderer-Plugin.gstrenderer /com/nokia/mafw/renderer/gstrenderer com.nokia.mafw.renderer.stop

====Play what's currently selected====

 dbus-send --dest=com.nokia.mafw.renderer.Mafw-Gst-Renderer-Plugin.gstrenderer /com/nokia/mafw/renderer/gstrenderer com.nokia.mafw.renderer.play

====Unpause what's currently selected====

 dbus-send --dest=com.nokia.mafw.renderer.Mafw-Gst-Renderer-Plugin.gstrenderer /com/nokia/mafw/renderer/gstrenderer com.nokia.mafw.renderer.resume

====Play next mediafile====

 dbus-send --dest=com.nokia.mafw.renderer.Mafw-Gst-Renderer-Plugin.gstrenderer /com/nokia/mafw/renderer/gstrenderer com.nokia.mafw.renderer.next

====Play previous mediafile====

 dbus-send --dest=com.nokia.mafw.renderer.Mafw-Gst-Renderer-Plugin.gstrenderer /com/nokia/mafw/renderer/gstrenderer com.nokia.mafw.renderer.previous

===Notifications===

====Send notification (orange one line popup)====

 dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:&quot;NOTIFICATION&quot;

====Send notification (orange multiple line popup)====

 dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:&quot;NOTE line 1
 line 2
 . . .
 line n&quot;
--[[User:peterleinchen|peterleinchen]] 00:22, 4 January 2012 (UTC)

====Send dialog notification (orange multi line popup, requiring user interaction)====

 dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteDialog string:&quot;QUESTION?&quot; uint32:0 string:&quot;OK&quot;

Not sure what string &quot;OK&quot; does, but it is needed and can be anything.

It does nothing here and is not explicitly needed, pls. see below command and also section.
 dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteDialog string:&quot;QUESTION?&quot; uint32: string:

====Send dialog notification (black/white with floating bar and confirmation button, requiring user action)====

 dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteDialog string:&quot;QUESTION?&quot; uint32:'''4''' string:&quot;OK&quot;

String &quot;OK&quot; is the text for the button.
--[[User:peterleinchen|peterleinchen]] 21:29, 3 January 2012 (UTC)

===Securing===

====Security Device Lock (with lockcode)====

 dbus-send --system --type=method_call --dest=com.nokia.system_ui /com/nokia/system_ui/request com.nokia.system_ui.request.devlock_open string:&quot;com.nokia.mce&quot; string:&quot;/com/nokia/mce/request&quot; string:&quot;com.nokia.mce.request&quot; string:&quot;devlock_callback&quot; uint32:'3'

The next method is a 2nd - surprisingly shorter - way to enter device lock mode. Its benefit is that it even disables the device power button menu:

 dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.devlock_callback int32:0

====Unlock (pop up lockcode requester?)====

 dbus-send --system --type=method_call --dest=com.nokia.system_ui /com/nokia/system_ui/request com.nokia.system_ui.request.devlock_close string:&quot;com.nokia.mce&quot; string:&quot;/com/nokia/mce/request&quot; string:&quot;com.nokia.mce.request&quot; string:&quot;devlock_callback&quot; uint32:'0'

Next method is a 2nd, more direct way to stop device lock mode.

 dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.devlock_callback int32:2

====Query Devlock State====

  dbus-send --system --type=method_call --dest=&quot;com.nokia.mce&quot; --print-reply &quot;/com/nokia/mce/request&quot; com.nokia.mce.request.get_devicelock_mode |awk -F &quot;\&quot;&quot; '/g/ {print $2}'


====Lock screen and keys (slider lockswitch)====

 dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_tklock_mode_change string:&quot;locked&quot;

====Unlock screen and keys====

This command will unlock and illuminate the screen (useful when accessing the phone externally through [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY])
 dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_tklock_mode_change string:&quot;unlocked&quot;

====Query lock state of screen and keys====

Will return ''locked'' or ''unlocked'' depending on lock state
 dbus-send --system --type=method_call --dest=&quot;com.nokia.mce&quot; --print-reply &quot;/com/nokia/mce/request&quot; com.nokia.mce.request.get_tklock_mode|awk -F &quot;\&quot;&quot; '/g/ {print $2}'

===Networking===

====Enable ICD log====
There are two methods to enable ICD logs

1. Print to the syslog:
   (1)Use the following cmd 
   (2)$ syslogd
   (3)$ icd2 –l0
   (4)The log will print to the /var/log/syslog
2. Print to the standard output  
   (1)Get the source code of icd2
   (2)Add the begging of source code of “support/osso-log.h” &quot;#define OSSOLOG_STDOUT&quot;
   (3)$ icd2 –l0
   (4)The log will print to the standard output

====Connect to specific saved connection====

 dbus-send --system --type=method_call --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:&quot;IAP_ID&quot; uint32:0

IAP_ID is internet access point identifier and can be obtained with the following command:

 gconftool -R /system/osso/connectivity/IAP

Find lines which matches /system/osso/connectivity/IAP/&lt;IAP_ID&gt;

For GPRS connections replace &quot;@32@&quot; with a space in IAP_ID string.

Keep in mind that phone has to be disconnected in order to connect via this call.
If not, an error message will occur if you add --print-reply to the dbus-send command.

====Connect to any saved connection====

 dbus-send --system --type=method_call --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:&quot;[ANY]&quot; uint32:0

====Disconnect internet====

=====ICD2=====

 dbus-send --print-reply --system --dest=com.nokia.icd2 /com/nokia/icd2 com.nokia.icd2.disconnect_req uint32:0x8000

=====ICD=====

 dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true

On [[Maemo 5/PR1.2|PR1.2]] :
Error org.freedesktop.DBus.Error.UnknownMethod: Method &quot;disconnect&quot; with signature &quot;b&quot; on interface &quot;com.nokia.icd_ui&quot; doesn't exist

====Connect (show change connection UI)====

 dbus-send --system --type=method_call --dest=com.nokia.icd_ui /com/nokia/icd_ui com.nokia.icd_ui.show_conn_dlg boolean:false

If &quot;boolean:true&quot; at the end, one-line notification saying &quot;No saved connections available&quot; appears. Maybe affects more than that? Most likely, boolean:true leads to using saved connections if there are any, and boolean:false forces to display the connection dialog.

====Enable cellular radio====

 dbus-send --system --type=method_call --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.set_radio boolean:true

====Disable cellular radio====

 dbus-send --system --type=method_call --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.set_radio boolean:false

===Radio mode===

====Current Mode====

 dbus-send --system --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_radio_access_technology

====2G====

 dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:1

====3G====

 dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:2

====Dual====

 dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:0

===Bluetooth===

====Identify adapter path====

You need to know adapter path in order to send D-Bus call to the right place. You can get it with entering this command into the terminal:

 dbus-send --system --print-reply --dest=org.bluez / org.bluez.Manager.ListAdapters | awk -F'&quot;' '/at/ {print $2}'
or
 dbus-send --system --print-reply --dest=org.bluez / org.bluez.Manager.DefaultAdapter | awk -F'&quot;' '/at/ {print $2}'

====Identify Properties====

 dbus-send --system --print-reply --type=method_call --dest=org.bluez $(dbus-send --system --print-reply --dest=org.bluez / org.bluez.Manager.DefaultAdapter | awk -F'&quot;' '/at/ {print $2}') org.bluez.Adapter.GetProperties

====Enable====

Using the adapter path value returned with first command, for example ''/org/bluez/906/hci0''.

 dbus-send --system --type=method_call --dest=org.bluez /org/bluez/906/hci0 org.bluez.Adapter.SetProperty string:Powered variant:boolean:true

This one automatically inserts adapter path:

 dbus-send --system --type=method_call --dest=org.bluez $(dbus-send --system --print-reply --dest=org.bluez / org.bluez.Manager.DefaultAdapter | awk -F'&quot;' '/at/ {print $2}') org.bluez.Adapter.SetProperty string:Powered variant:boolean:true

====Disable====

 dbus-send --system --type=method_call --dest=org.bluez /org/bluez/906/hci0 org.bluez.Adapter.SetProperty string:Powered variant:boolean:false

With auto-discovery of adapter path:

 dbus-send --system --type=method_call --dest=org.bluez $(dbus-send --system --print-reply --dest=org.bluez / org.bluez.Manager.DefaultAdapter | awk -F'&quot;' '/at/ {print $2}') org.bluez.Adapter.SetProperty string:Powered variant:boolean:false

====Connect to specific device====

 devmac=00:11:22:33:44:55
 service=AudioSink
 
 adapter=$(dbus-send --system --print-reply --dest=org.bluez / org.bluez.Manager.DefaultAdapter | awk -F'&quot;' '/at/ {print $2}')
 device=$(dbus-send --system --print-reply --dest=org.bluez ${adapter} org.bluez.Adapter.FindDevice string:${devmac} | awk -F'&quot;' '/at/ {print $2}')
 dbus-send --system --type=method_call --print-reply --dest=org.bluez ${device} org.bluez.${service}.Connect

Change the AudioSink to any service and the devmac to the MAC of bluetooth device.

===Check for updates===

 dbus-send --type=method_call --dest=com.nokia.hildon_application_manager /com/nokia/hildon_application_manager com.nokia.hildon_application_manager.check_for_updates

===Open link in browser===

 dbus-send --system --type=method_call --dest=com.nokia.osso_browser /com/nokia/osso_browser/request com.nokia.osso_browser.load_url string:&quot;google.com&quot;

===Open a pdf file with the default pdf reader application===

 dbus-send --print-reply --dest=com.nokia.osso_pdfviewer /com/nokia/osso_pdfviewer com.nokia.osso_pdfviewer.mime_open string:/home/user/MyDocs/.documents/file_name.pdf

===Open a file with the default notes application===

 dbus-send --print-reply --dest=com.nokia.osso_notes /com/nokia/osso_notes com.nokia.osso_notes.mime_open string:/home/user/MyDocs/.documents/file_name

===Open the default notes application===

 dbus-send --print-reply --dest=com.nokia.osso_notes /com/nokia/osso_notes com.nokia.osso_notes.top_application

=== Open folder ===

 dbus-send --print-reply --dest=com.nokia.osso_filemanager /com/nokia/osso_filemanager com.nokia.osso_filemanager.open_folder string:/home/user/MyDocs/

===Set volume===

 dbus-send --type=method_call --dest=com.nokia.mafw.renderer.Mafw-Gst-Renderer-Plugin.gstrenderer /com/nokia/mafw/renderer/gstrenderer com.nokia.mafw.extension.set_extension_property string:volume variant:uint32:50

The value can be between 0 and 100.

===Get volume===

 dbus-send --print-reply --type=method_call --dest=com.nokia.mafw.renderer.Mafw-Gst-Renderer-Plugin.gstrenderer /com/nokia/mafw/renderer/gstrenderer com.nokia.mafw.extension.get_extension_property string:volume|awk '/nt/ {print $3}'

===Reboot===

 dbus-send --system --type=method_call --print-reply --dest=com.nokia.mce &quot;/com/nokia/mce/request&quot; com.nokia.mce.request.req_reboot
This is same as rebooting from power key menu (needs uncommenting in certain XML file to appear) and has been identified as insecure way to reboot the device (no filesystem synchronization, etc.). Better command is to simply enter &quot;reboot&quot; in root terminal.

===Shutdown===

 dbus-send --system --type=method_call --print-reply --dest=com.nokia.mce &quot;/com/nokia/mce/request&quot; com.nokia.mce.request.req_shutdown
See warning at reboot D-Bus call (needs testing).

===Show dashboard===

 dbus-send /com/nokia/hildon_desktop com.nokia.hildon_desktop.exit_app_view

===Other===

====D-Bus Scripts====

You can also use [[DbusScripts|dbus-scripts]] to execute any command when various actions are triggered on D-Bus.

====Panucci (pause)====

 dbus-send --type=method_call --dest=org.panucci.panucciInterface /panucciInterface org.panucci.panucciInterface.playPause

====Device Orientation====

 dbus-send --system --print-reply --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.get_device_orientation

==GConf==

===Reset GPRS data counter===

The commands are PR1.2 compliant and do not work on previous versions.

 gconftool-2 -u /system/osso/connectivity/network_type/GPRS/gprs_home_rx_bytes
 gconftool-2 -u /system/osso/connectivity/network_type/GPRS/gprs_home_tx_bytes
 gconftool-2 -s /system/osso/connectivity/network_type/GPRS/gprs_home_reset_time --type=string $(date +%s)

==Command line==

===Enable FM Transmitter===

 /usr/bin/fmtx_client -p 1

===Disable FM Transmitter===

 /usr/bin/fmtx_client -p 0

==GStreamer==

===Take a picture with front camera===

 gst-launch v4l2src device=/dev/video1 num-buffers=1 ! ffmpegcolorspace ! jpegenc ! filesink location=frontcam.jpg

===Shoot photo after 10 seconds===

The camera application must be off for it to work. And of course the camera shutter must be open...gst-launch comes with gstreamer-tools (or gst-launch-0.10 and gstreamer0.10-tools)

 /bin/sleep 10 ; /usr/bin/gst-launch v4l2camsrc device=/dev/video0 num-buffers=1 \! video/x-raw-yuv,width=2592,height=1968  \! ffmpegcolorspace \! jpegenc \! filesink location=/home/user/MyDocs/DCIM/photo.jpg

To shoot from the front camera, change '''/dev/video0''' to '''/dev/video1''' and the proper resolution:

 /bin/sleep 10 ; /usr/bin/gst-launch v4l2camsrc device=/dev/video1 num-buffers=1 \! video/x-raw-yuv,width=640,height=480  \! ffmpegcolorspace \! jpegenc \! filesink location=/home/user/MyDocs/DCIM/photo.jpg

Other way:

 /bin/sleep 10; /usr/bin/gst-launch v4l2camsrc ! ffmpegcolorspace ! jpegenc ! identity error-after=1 ! filesink location=/home/user/MyDocs/DCIM/photo.jpg

==Python==

===Make a phone call via the cellular network===

&lt;source lang=&quot;python&quot;&gt;
import dbus
def place_call(number):
  bus = dbus.SystemBus()
  csd_call = dbus.Interface(bus.get_object('com.nokia.csd',
                                           '/com/nokia/csd/call'),
                                           'com.nokia.csd.Call')
  csd_call.CreateWith(str(number), dbus.UInt32(0))
&lt;/source&gt;

=== Make a phone call via SIP ===
&lt;source lang=&quot;python&quot;&gt;
#!/usr/bin/python

import dbus
import sys

# Get the target phone number (or SIP address) from the command line
TARGET = sys.argv[1];

# Configure the telepathy path to the SofiaSIP account that we wish to use.
# Use &quot;mc-tool list&quot; (from the libmissioncontrol-utils package) to see your accounts.
SIP_ACCOUNT = 'sofiasip/sip/_31234567_40sipgate_2eco_2euk0'

# This gets us a connnection to the session bus
bus = dbus.SessionBus()

# This sets up a path to the SIP account within telepathy.
PATH = '/org/freedesktop/Telepathy/Account/'
PATH += SIP_ACCOUNT

# This sets up a proxy object as a &quot;handle&quot; to the AccountManager of our target account
account = bus.get_object('org.freedesktop.Telepathy.AccountManager', PATH)

# This launches the actual SIP call with a method call to EnsureChannel on that object
account.EnsureChannel( \
        dbus.Dictionary({
                dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(1),
                dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.StreamedMedia'),
                dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID'): dbus.String(TARGET),
        }, signature='sv'),
        dbus.UInt64(0),
        dbus.String(''),
        dbus_interface='com.nokia.Account.Interface.ChannelRequests')

sys.exit(0)

&lt;/source&gt;

===Send SMS===

ssms.py using new QtMobility bindings by ossipena:

&lt;source lang=&quot;python&quot;&gt;
#!/usr/bin/env python
# -*- coding: utf-8 -*-

#ssms Ossipena/TimoP
#send smses from command line
#licence : Do whatever you want
#deps:
#pyside-qt4
#pyside-mobility

'''imports'''
from QtMobility.Messaging import *
from PySide.QtCore import *
import sys
from PyQt4 import QtCore


app = QCoreApplication(sys.argv)

'''get number and name'''
stringit = sys.argv
numpertemp = str(stringit[1:2])
mesits = str(stringit[2:])[2:-2]

num = str(numpertemp[2:-2])

if (mesits == &quot;&quot;):
  print &quot;Usage:&quot;
  print &quot;python ssms.py 01234567 'message text here'&quot;
  sys.exit(69)
else:
  print &quot;number is &quot; + str(num)
  print &quot;message is &quot; + str(mesits)

'''define message to be sent'''
numperi = QtCore.QString(num)

numper = QMessageAddress(QMessageAddress.Phone, numperi)
mesitsi = QMessage()
mesitsi.setType(QMessage.Sms)
mesitsi.setTo(numper)
mesitsi.setBody(mesits)

'''send message'''
sender = QMessageService()
if (sender.send(mesitsi)):
  print &quot;success&quot;
else:
  print &quot;fail&quot;
&lt;/source&gt;

From:
http://talk.maemo.org/showpost.php?p=548948&amp;postcount=52

&lt;source lang=&quot;python&quot;&gt;
#!/usr/bin/env python2.5

import pexpect
import time
from subprocess import *

child = pexpect.spawn('pnatd');
child.send('at\r');
time.sleep(0.25);
child.send('at+cmgf=1\r');
time.sleep(0.25);
child.send('at+cmgs=&quot;+XXXXXXX&quot;\r');
child.send('SMSTEXTSMSTEXTSMSTEXT');
child.send(chr(26));
child.send(chr(26));
child.sendeof();
&lt;/source&gt;

There's also a python script that uses D-Bus instead from http://talk.maemo.org/showpost.php?p=558430&amp;postcount=57:

&lt;source lang=&quot;python&quot;&gt;
#!/usr/bin/env python2.5          
import sched, time                
import dbus                       
import gobject                    
from dbus.mainloop.glib import DBusGMainLoop

def octify(str):
        '''     
        Returns a list of octet bytes representing
        each char of the input str.               
        '''                                       

        bytes = map(ord, str)
        bitsconsumed = 0     
        referencebit = 7     
        octets = []          

        while len(bytes):
                byte = bytes.pop(0)
                byte = byte &gt;&gt; bitsconsumed
                                           
                try:                       
                        nextbyte = bytes[0]
                        bitstocopy = (nextbyte &amp; (0xff &gt;&gt; referencebit)) &lt;&lt; referencebit
                        octet = (byte | bitstocopy)                                     

                except:
                        octet = (byte | 0x00)

                if bitsconsumed != 7:
                        octets.append(byte | bitstocopy)
                        bitsconsumed += 1               
                        referencebit -= 1               
                else:                                   
                        bitsconsumed = 0                
                        referencebit = 7                

        return octets

def semi_octify(str):
        '''          
        Expects a string containing two digits.
        Returns an octet -                     
        first nibble in the octect is the first
        digit and the second nibble represents 
        the second digit.                      
        '''                                    
        try:                                   
                digit_1 = int(str[0])          
                digit_2 = int(str[1])          
                octet = (digit_2 &lt;&lt; 4) | digit_1
        except:                                 
                octet = (1 &lt;&lt; 4) | digit_1      

        return octet


def deoctify(arr):

        referencebit = 1
        doctect = []    
        bnext = 0x00    

        for i in arr:

                bcurr = ((i &amp; (0xff &gt;&gt; referencebit)) &lt;&lt; referencebit) &gt;&gt; 1
                bcurr = bcurr | bnext                                      

                if referencebit != 7:
                        doctect.append( bcurr )
                        bnext = (i &amp; (0xff &lt;&lt; (8 - referencebit)) ) &gt;&gt; 8 - referencebit
                        referencebit += 1                                              
                else:                                                                  
                        doctect.append( bcurr )                                        
                        bnext = (i &amp; (0xff &lt;&lt; (8 - referencebit)) ) &gt;&gt; 8 - referencebit
                        doctect.append( bnext )                                        
                        bnext = 0x00                                                   
                        referencebit = 1                                               

        return ''.join([chr(i) for i in doctect])


def createPDUmessage(number, msg):
        '''                       
        Returns a list of bytes to represent a valid PDU message
        '''                                                     
        numlength = len(number)                                 
        if (numlength % 2) == 0:                                
                rangelength = numlength                         
        else:                                                   
                number = number + 'F'                           
                rangelength = len(number)                       

        octifiednumber = [ semi_octify(number[i:i+2]) for i in range(0,rangelength,2) ]
        octifiedmsg = octify(msg)                                                      
        HEADER = 1                                                                     
        FIRSTOCTETOFSMSDELIVERMSG = 10                                                 
        ADDR_TYPE = 129 #unknown format                                                
        number_length = len(number)                                                    
        msg_length = len(msg)                                                          
        pdu_message = [HEADER, FIRSTOCTETOFSMSDELIVERMSG, number_length, ADDR_TYPE]    
        pdu_message.extend(octifiednumber)                                             
        pdu_message.append(0)                                                          
        pdu_message.append(0)                                                          
        pdu_message.append(msg_length)                                                 
        pdu_message.extend(octifiedmsg)                                                
        return pdu_message                                                             


def sendmessage(number, message):

        bus = dbus.SystemBus()
        smsobject = bus.get_object('com.nokia.phone.SMS', '/com/nokia/phone/SMS/ba212ae1')
        smsiface = dbus.Interface(smsobject, 'com.nokia.csd.SMS.Outgoing')
        arr = dbus.Array(createPDUmessage(number.replace('+', '00'), message))

        msg = dbus.Array([arr])
        smsiface.Send(msg,'')


def callback(pdumsg, msgcenter, somestring, sendernumber):

        msglength = int(pdumsg[18])
        msgarray = pdumsg[19:len(pdumsg)]

        msg = deoctify(msgarray)

        if msg &gt; 0:
               print 'New message received from %s' % sendernumber
               print 'Message length %d' % msglength
               print 'Message: %s' % msg

               if msg == &quot;ping&quot;:
                       print &quot;Sending reply: pong&quot;
                       sendmessage(sendernumber.replace(&quot;+&quot;,&quot;00&quot;), &quot;pong&quot;)
               else:
                       print &quot;Unknown command&quot;


def listen():
        DBusGMainLoop(set_as_default=True)
        bus = dbus.SystemBus() #should connect to system bus instead of session because the former is where the incoming signals come from
        bus.add_signal_receiver(callback, path='/com/nokia/phone/SMS', dbus_interface='Phone.SMS', signal_name='IncomingSegment')
        gobject.MainLoop().run()


if __name__ == '__main__':
  import time
  
  def schedule_task(schedule, fn, *args):
      import sched
      s = sched.scheduler(time.time, time.sleep)
      startTime = time.mktime(time.strptime(schedule, '%b %d %H:%M %Y'))
      s.enterabs(startTime, 0, fn, args)
      s.run()

  import getopt, sys
  try:  
    opts, args = getopt.getopt(sys.argv[1:],&quot;hlt:&quot;, [&quot;help&quot;,&quot;listen&quot;,&quot;time=&quot;])

  except getopt.GetoptError, err:
    # print help information and exit:
    print str(err) # will print something like &quot;option -a not recognized&quot;
    usage()
    sys.exit(2)  
  listening = False 
  timeofday = ''
  for opt, arg in opts:
    if opt in (&quot;-h&quot;, &quot;--help&quot;):
      usage()                     
      sys.exit()                  
    elif opt in (&quot;-l&quot;, &quot;--listen&quot;):
      listening = True                 
    elif opt in (&quot;-t&quot;, &quot;--time&quot;):
      timeofday = arg                           
    else:
      assert False, &quot;unhandled option&quot;
  
  number = args[0]           
  msg = args[1]
  if msg != '':
    if timeofday == '':
        sendmessage(number, msg)
    else:
        today = time.strftime('%b %d x %Y', time.localtime())
        schedule = today.replace('x', timeofday)
        schedule_task(schedule, sendmessage, number, msg)
  if listening:
    listen()
&lt;/source&gt;

===Send dialog notification (orange multi line popup requiring user interaction)===

&lt;source lang=&quot;python&quot;&gt;
import dbus
def show_notification_dialog(message, mode=&quot;single&quot;):
  bus = dbus.SystemBus()
  iface = dbus.Interface(bus.get_object('org.freedesktop.Notifications',
                                        '/org/freedesktop/Notifications'),
                                        'org.freedesktop.Notifications')
  if mode == &quot;single&quot;:
      iface.SystemNoteInfoprint(message)
  elif mode == &quot;multiline&quot;:
      iface.SystemNoteDialog(str(message), dbus.UInt32(0), 'Ok')
&lt;/source&gt;

This function allows you to show notification either with multiline (on Maemo pre-5 it will show a dialog with an &quot;Ok&quot; button) or single line (tiny notifications hiding automatically).

===Take a screenshot===

&lt;source lang=&quot;python&quot;&gt;
import gtk.gdk

w = gtk.gdk.get_default_root_window()
sz = w.get_size()
print &quot;The size of the window is %d x %d&quot; % sz
pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1])
pb = pb.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1])
if (pb != None):
  pb.save(&quot;screenshot.png&quot;,&quot;png&quot;)
  print &quot;Screenshot saved to screenshot.png.&quot;
else:
  print &quot;Unable to get the screenshot.&quot;
&lt;/source&gt;

Credits: took code from [http://stackoverflow.com/questions/69645/take-a-screenshot-via-a-python-script-linux here].


There is also a way using PyQt:
&lt;source lang=&quot;python&quot;&gt;
import sys
import time
from PyQt4.QtGui import QPixmap, QApplication
app = QApplication(sys.argv)
file = &quot;/home/user/MyDocs/.images/Screenshots/Screenshot-&quot;+time.strftime(&quot;%Y%m%d&quot;)+&quot;-&quot;+time.strftime(&quot;%H%M%S&quot;)+&quot;.png&quot;
QPixmap.grabWindow(QApplication.desktop().winId()).save(file, 'png')
&lt;/source&gt;

===Make an &quot;Email Style&quot; notification dialog===

&lt;source lang=&quot;python&quot;&gt;
import dbus

bus = dbus.SessionBus()
proxy = bus.get_object('org.freedesktop.Notifications', '/org/freedesktop/Notifications')
interface = dbus.Interface(proxy,dbus_interface='org.freedesktop.Notifications')
interface.Notify('Notification', 0, 'control_bluetooth_paired', 'Testing 123', 'Hello World', [], {}, 0)
&lt;/source&gt;

Credits: MohammadAG (on irc).

[[Category:Power users]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Pierogi</title>
    <id>5103</id>
    <revision>
      <id>50433</id>
      <timestamp>2012-10-25T17:53:48Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>/* 1.1 (For a Few Pierogis More) */ Update to 1.1.15</comment>
      <text xml:space="preserve">= Introduction =

Pierogi is a universal infra-red control application for Fremantle written in Qt.

Version 1.0.0 of Pierogi is now available in the Extras repository.

More information on the package can be found...

[http://pierogi.garage.maemo.org/ Pierogi Website]

[http://talk.maemo.org/showthread.php?t=82243 talk.maemo.org Pierogi]

[http://maemo.org/packages/view/pierogi/ Pierogi Package Page]

[https://garage.maemo.org/tracker/?func=add&amp;group_id=2286&amp;atid=7641 Bugtracker]

==Installation==

Version 1.0.0 of Pierogi can be downloaded from here:

[http://maemo.org/downloads/product/Maemo5/pierogi/# Extras directory listing]

The latest versions can be found in the Devel repository and can be installed using the N900 Application Manager (HAM). 

==Operation==
For general operating instructions please read
[http://pierogi.garage.maemo.org/ Pierogi Website]

===Filter By Device===

::'''''&quot;Why does the filter by device, not bring up a compatible keyset&quot;'''''
The filter by device feature is to try and utilize the compatible device data I've been slowly feeding in to Pierogi. It's going to take some time to build up a real database of what devices work with what keysets.

A list of the devices currently supported by Pierogi can be found on 
[http://wiki.maemo.org/Pierogi_Device_Compatibility_List Pierogi Device Compatibility List Wiki]

This is the data Pierogi uses to filter the keysets.

If you have a supported device, and don't see it on the list, please do go ahead and edit the Device Compatibility Wiki using the link above.

If you can't find your device in 'Filter by Device', please use 'Filter by Name' to find a compatible keyset.

===Non-Audio/Visual Keysets===
''Non A/V information is for Pierogi pre-version 1.1.0''

At the moment there are a few keysets in Pierogi that are provided to control infra-red equipment other than Audio/Visual.
Due to the way Pierogi keysets are laid out, these buttons my have functions other than there label description.
A list of key mappings are:-

====Current Mapping of Air-Con Keysets==== 


'''''Samsung'''''
*&quot;TIMER&quot; -&gt; Timer button
*&quot;SLEEP&quot; -&gt; Sleep button
*&quot;TEMP+&quot; -&gt; Volume Up button
*&quot;TEMP-&quot; -&gt; Volume Down button
*&quot;FAN&quot; -&gt; 1 button
*&quot;COOL&quot; -&gt; 2 button
*&quot;HEAT&quot; -&gt; 3 button
*&quot;FAN HIGH&quot; -&gt; 4 button
*&quot;FAN MED&quot; -&gt; 5 button
*&quot;FAN LOW&quot; -&gt; 6 button
*&quot;SWING&quot; -&gt; 7 button
*&quot;POWER&quot; -&gt; Power button

'''''Sharp'''''
*&quot;power&quot; -&gt; Power key
*&quot;Fan Faster&quot; -&gt; Volume Up key
*&quot;Fan Slower&quot; -&gt; Volume Down key
*&quot;Temp/Timer+&quot; -&gt; Channel Up key
*&quot;Temp/Timer-&quot; -&gt; Channel Down key
*&quot;Energy Save&quot; -&gt; Green key
*&quot;Cool&quot; -&gt; Blue key
*&quot;Fan&quot; -&gt; Yellow key
*&quot;Timer&quot; -&gt; Sleep key
*&quot;Auto/Cool&quot; -&gt; Info key

====Camera====

'''''Canon RC-1/RC-5/RC-6'''''

*Open shutter immediately -&gt; Volume Down
*Open shutter after delay -&gt; Volume Up

'''''Powershot'''''
*&quot;Zoom In&quot; -&gt; Up
*&quot;Zoom Out&quot; -&gt; Down
*&quot;Right&quot; -&gt; Right
*Left&quot; -&gt; Left
*&quot;Snap&quot; -&gt; Select
*&quot;Multi&quot; -&gt; Menu
*&quot;Magnify&quot; -&gt; Guide
*&quot;Display&quot; -&gt; DiscMenu

==Bugs==
When people find a keyset that works with their device.
I would like to know
*Do all the buttons work? 
*Are there missing buttons? 
*Are there buttons swapped around?

I'd love to hear about it when a keyset does not perform as expected.

[http://talk.maemo.org/showthread.php?t=82243 talk.maemo.org Pierogi]

[https://garage.maemo.org/tracker/?func=add&amp;group_id=2286&amp;atid=7641 Bugtracker]

'''''There are some people experiencing &quot;range&quot; issues with certain keysets. A new wiki page has been setup to collect data to solve the issue.'''''

[[Pierogi/IR_Hardware]]

= Keysets and Devices =

A list of some of the devices currently supported by Pierogi can be found on this page:

[http://wiki.maemo.org/Pierogi_Device_Compatibility_List Pierogi Device Compatibility List]

If you have a supported device, and don't see it on the list, please do go ahead and edit the Wiki to add it!

== Requesting New Keysets ==

Pierogi's collection of keysets, while growing, is still far from complete.  

If you have a device you would like to see supported by Pierogi, the easiest way to do so would be to add it to the [http://wiki.maemo.org/Pierogi_Device_Compatibility_List#New_Keyset_Requests 'New Keyset Requests' part of the Device Compatibility List].  

You may also post a message containing the request on [http://talk.maemo.org/showthread.php?t=82243 talk.maemo.org Pierogi Thread]

=Versions/Change Log=

===1.1 (For a Few Pierogis More)===
'''1.1.15'' (Current Devel)'''''
* Added a new &quot;Advanced Settings&quot; panel, allowing control over carrier frequency and duty cycle values.
* Added a few more buttons to &quot;input&quot; panel, and put the &quot;input&quot; panel back on into the TV collection. The &quot;adjust&quot; panel was moved down into the Video Media collection. (I'm still trying to tweak these collections...)
* Made a first pass at keysets for Medi@link, Multichoice, and NEC, and added new keysets to ADB, LG, Mitsubishi, and Pioneer.
'''1.1.14'''
* Fixed a bug that allowed keysets to be deleted while a command was still running (causing all sorts of havoc). This might improve macro behavior.
* Made a first pass at keysets for Changhong, Frontech, and Sinotec, added a new Thomson keyset, and made a few fixes to ADB (I-Can).
'''1.1.13'''
* Found a new source of (possibly unreliable) keysets! Made a first pass at keysets for Crown Mustang, Hantarex, Keymat, Konka, and Wiwa. 
*Also added more keysets to ADB (I-Can), Sony, and Triax. Hopefully more to come...
* Made small fixes to the macros UI, and improved the cleanup of threads when Pierogi exits. Also made small fixes to a Cisco keyset and to LG timing.
'''1.1.12'''	
* Pushing up an initial implementation of Macros. For now, they don't do much, they don't work terribly well, and they are thoroughly undocumented, but at least they exist. :)
* Updates to keysets for Creative, Grundig, and RCA, and a bugfix to the RCA protocol.
'''1.1.11'''
* A handful of fixes and updates for the Power Search form 
* Some button interactions fixed (thanks sixwheeledbeast)
* Pioneer protocol sped up a bit, and an &quot;edit keyset&quot; button added to the panel.
* Removed the Triax testing keyset, it didn't work.
* First pass at keysets for Creative and Crown.
'''1.1.10'''
* Adding one more Triax keyset for testing. 
'''1.1.9'''
* Removing the buggy Deutche Telekom keyset/protocol!
* Added an automatic scan / pause feature to the &quot;search for power button&quot; panel.
'''1.1.8'''
* A first attempt at the long-asked-for &quot;search for power button&quot; function. Getting this in required more work on the memory management side of Pierogi, so beware of possible new subtle bugs...
* A new Camera Shutter panel has been added, for remote controls used with DSLR cameras.
* First pass at keysets for Deutsche Telekom, Emtec, Goodmans, Nikon, Olympus,and Pentax.
* Updated Canon keyset to use the new camera panel.
'''1.1.7'''
* A quick update to add a &quot;show only favorites&quot; button to the Select Keyset window. Hopefully this will make managing favorites easier. Also, renamed a variety of phrases to make them less misleading.
* Added a keyset and a panel for the iRobot Roomba vacuum cleaner.
'''1.1.6'''
* A big change this time: the move to support true per-keyset editable config data. All favorites data has been moved into the keyset configs, and nicknames have been added. The favorites are now accessed with a pop-up menu.
* A new &quot;audio&quot; panel has been added.
* First pass at keysets for ADB (I-Can), Anitech, Blaupunkt, Lifetec, Medion, Sylvania, Triax, and Viewsonic.
* Many updates to existing keysets, too numerous to mention; mostly to support new audio panel buttons.
'''1.1.5'''
*The big change in this update is a move back to real tabbed windows. 
*I've finally figured out how to quickly customize the tab bar.
* First pass at keysets for Cisco, Gadmei, Loewe, Onkyo, Orion, Proview, Strong, Technisat, and Telefunken.
* New keysets added for Panasonic, Sony, Toshiba, and Zenith.
'''1.1.4'''	
* Added the ability to search the keyset and device lists using the keyboard.
* Added a &quot;default keyset&quot; to the preferences page; so far, the only thing you can do with the default is use it for the volume control keys.
* Fixed a bug in the Digital Stream keyset.
* Added a Grundig satellite receiver keyset and a Daewoo TV keyset.
* First pass at keyset for Lexuz.
'''1.1.3'''	
* Started work on an actual preferences window!
* Pierogi now remembers your panel selections from your previous session.
* All six permutations of the Directv protocol now supported.
* First pass at keysets for BenQ, Octagon, Xcruiser
'''1.1.2'''	
* First pass at keysets for Dream Multimedia, Genius, Magnum, Telenet, and Thomson.
'''1.1.1'''	
* The Record button returns to Pierogi via a new &quot;Program/Record&quot; panel
* Several fixes for Select Keyset by Device window (thanks sixwheeledbeast!)
* First pass at keysets for Compro, Kaon, and QNAP
'''1.1.0'''
* GUI changed - &quot;panels&quot; instead of &quot;tabs&quot;, new navigation controls.
* New window added for selecting keysets by device. &quot;Device&quot; filter removed from select keyset by name window.
* New Air Conditioner control panel added.
* New keysets added to Foxtel, Logitech, Sony, Western Digital.
* First pass at keysets for AOC, Arcam, Dell, Dick Smith Electronics, Dynex, Harman Kardon, Kathrein, Starsat, Viewsat.
* With the hope of extending the N900's range a bit, I'm setting all protocols to use a duty cycle of 50%, regardless of what the documentation says they should use. I hope this won't cause any problems.
* New versioning scheme -- new version name comes at the start of new work, rather than at the end.

===1.0 (A Fistful of Pierogis)===

'''1.0.0 ''(Current Extras) (Current Testing)'''''
* Pierogi appears fairly stable and useful at this point. So, I will declare it to have now reached version &quot;1.0&quot;, before starting any radical changes to the gui.
* First pass at a keyset for Hyundai.

===0.6 (Initial Development)===
'''0.6.11'''
* Fix for a nasty bug with the volume-rocker keys. ''(thanks sixwheeledbeast!)''
* First pass at keysets for Foxtel, NAD, and Universum.
'''0.6.10'''
* Fixed several GUI issues ''(thanks to sombragris and sixwheeledbeast for discovering them)''
'''0.6.9'''
* Added Panasonic &quot;SA-AK25&quot; as Audio Keyset 2
* Made a first pass at keysets for Bush, Canon, Epson, Humax, Technics, and United
'''0.6.8'''
* Finally, some work to improve memory management, although much remains to be done.
* Fixed a subtle bug in the Sky protocol.
* Made a first pass at keysets for HP and Motorola.
'''0.6.7'''
* First pass at keysets for Huawei, Onida, Vestel, Virgin Media, and Vizio.
* Added a Sharp Air Conditioner keyset
'''0.6.6'''
* I've finally cracked the DirecTV protocol; an initial keyset is now available!
* Added A/C keysets for LG and Panasonic, a Samsung SMT-1100T keyset, and a Bose 3-2-1 keyset.
* Added a donations link to the &quot;About&quot; menu, for those feeling generous. :) Thank you in advance.
'''0.6.5'''
* A few more keyset added: Beko, Cambridge, Haier, and Kenwood.	
'''0.6.4'''	
* Added a Hildon Banner to report what the keyset has changed to when you use the volume rocker
* Fixed several GUI button bugs ''(thanks to sixwheeledbeast for finding them)''
* Made a first pass at keysets for Dish, Fortec Star, and Homecast	
'''0.6.3'''	
* Mapped the volume rocker to move between favorite keysets
* Added new keysets for Digital Stream and Emerson
* Added one new keyset to Admiral, cleaned up Philips a bit	
'''0.6.2'''	
* Fixed an embarrasing bug in the LG keysets
* Added a few more Daewoo keysets
* Make a first pass at keysets for Sky, Western Digital, and Saba
'''0.6.1'''	
* Moved Mute button to main tab, brought Picture Mode and Sound Mode back up to utility tab
* Added keysets for Admiral, Daewoo, Grundig, Logitech, Philco, Roku, and Topfield
* Added several new protocols, including one that LG uses.
'''0.6.0'''
* My first candidate for Extras-Testing, so up to version 0.6
* Fixed some bugs in Toshiba keysets
* Added MCE (Media Center Edition) remote keysets

===0.5 (&quot;Half-way&quot;)===
'''0.5.3'''	
* Another &quot;final&quot; fix for the uninstall problem, this time for sure.
* Completely revamped Panasonic protocol, needs testing
* Created Bose keysets, added more Aiwa keysets
'''0.5.2'''	
* Finally, got a fix for the uninstall problem!
* Some general internal cleanup.
* Keysets for Acer, Aiwa.
'''0.5.1'''	
* Updated UI with new window, moved tabs around. Revamped back-end keyset system, added Pioneer, lots of changes. Also, yet another attempt at pierogi.sudoers.
'''0.5.0'''	
* Somewhat extended and improved UI, some backend improvements, I'm labeling this as now &quot;half-way usable&quot;, thus version 0.5

===0.1 (Initial Releases)===
'''0.1.7'''	
* Finally put together RC6 codepath, and created a Philips keyset. Still not tested, though! Also, some general cleanup work on protocol classes.
'''0.1.6'''	
* Still having installation problems! For now, I'm just giving up on the postrm script; for now, users will have to live with the extra file when uninstalling.
'''0.1.5'''
* Fixed a design flaw allowing user to queue up unlimited number of commands.
'''0.1.4'''	
* I think uninstall is working now. So, Initial Release time!
'''0.1.3'''	
* Found bug in uninstall, hope third patch is the charm!
'''0.1.2'''	
* Still trying to create initial release
'''0.1.1'''	
* Still trying to create initial release
'''0.1.0'''	
* Initial Release.</text>
    </revision>
  </page>
  <page>
    <title>Pierogi/IR Hardware</title>
    <id>5268</id>
    <revision>
      <id>50436</id>
      <timestamp>2012-10-25T19:44:23Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <minor/>
      <comment>Oops I deleted half the page. Now fixed...</comment>
      <text xml:space="preserve">=Infrared Hardware Comparisons for N900=
	
This wiki is to compile a list of hardware revisions and infra-red distance to help with development of Pierogi.

Currently there is a mystery issue for some users of Pierogi.
Some people are experiencing a less then ideal range issue from there IR module.
Hopefully in compiling data in the table below, it will be possible to establish a solution.  


==Instruction for use of Infrared Range Issues Table==

*Username - Please enter a name or username

*Revision - To find your hardware revision number:

Open a [[Terminal]] and type

 cat /proc/cpuinfo

Near the bottom of the output is your N900's &quot;Revision&quot;


*Issue - Enter Yes or No in the Issue column.

*Range - Maximum distance from the equipment to your device that the keyset works

*Keyset - Pierogi Keyset that has an issue

*Equipment - Model Number of recieving equipment to be controlled

*Date - Dates are in international format

 example:-   20120131   is    31 January 2012


*Notes - to keep track of multiple devices etc..

*'''''Please report only one Keyset per row and edit your row if you have reported &quot;No&quot; for your device in the issues column before.'''''


==Infrared Range Issues Table==

{| class=&quot;wikitable sortable&quot;
! width=&quot;180&quot; | Username
! width=&quot;50&quot; | Revision
! width=&quot;50&quot; | Issue
! width=&quot;50&quot; | Range
! width=&quot;150&quot; | Keyset
! width=&quot;150&quot; | Equipment
! width=&quot;80&quot; | Date
! width+&quot;220&quot; | Notes
|-
|sixwheeledbeast|| 2101 || Yes || ~ 1m || Panasonic TV 1 || ? || 20120925 || My Stable Device
|-
|sixwheeledbeast|| 2204 || Yes || ~ 1.5m || Panasonic TV 1 || ? || 20120925 || My Testing Device
|-
|Copernicus|| 2204 || No || ~ 3.5m || Sanyo TV Keyset 1 || Sanyo DP32746 || 20120925 || (Note: distance drops significantly if not directly in front of IR receiver -- at an angle of about 45 degreees, distance is about 1 m)
|-
|Copernicus|| 2101 || No || ~ 3.5m || Sanyo TV Keyset 1 || Sanyo DP32746 || 20120925 || As Above
|-
|Garrett_PL|| 2204 || No || ~ 3m || JVC TV Keyset 1 || JVC  AV28T25EIS || 20120925 || 
|-
|sixwheeledbeast|| 2101 || No || ~ 2.5m || LG TV Keyset 1 || LG 32LH301C || 20120926 || My Stable Device
|-
|sixwheeledbeast|| 2204 || No || ~ 4m || LG TV Keyset 1 || LG 32LH301C || 20120926 || My Testing Device
|-
|sixwheeledbeast|| 2101 || Yes || ~ 1.5m || Toshiba TV Keyset 1 || ? LCD TV || 20120930 || My Stable Device
|-
|sixwheeledbeast|| 2204 || Yes || ~ 1.5m || Panasonic TV Keyset 1 || TH-37PX80B || 20121025 || My Testing Device
|-
|sixwheeledbeast|| 2101 || Yes || ~ 1m || Panasonic TV Keyset 1 || TH-37PX80B || 20121025 || My Stable Device
|-
|sixwheeledbeast|| 2204 || Yes || ~ 2m || Pansonic Audio Keyset 2 || SA-EN17 || 20121025 || My Testing Device
|-
|sixwheeledbeast|| 2101 || Yes || ~ 1.5m || Pansonic Audio Keyset 2 || SA-EN17 || 20121025 || My Stable Device
|-</text>
    </revision>
  </page>
  <page>
    <title>Pierogi Device Compatibility List</title>
    <id>5102</id>
    <revision>
      <id>50591</id>
      <timestamp>2012-11-01T13:46:19Z</timestamp>
      <contributor>
        <username>mr_pingu</username>
        <id>4402</id>
      </contributor>
      <comment>/* Sat Receiver */</comment>
      <text xml:space="preserve">= Introduction =

This wiki page has been started to collect a list of compatible devices for keysets within Pierogi. 

Pierogi is a universal infra-red control application for Fremantle written in Qt.

The package is now available in Extras.

More information on the package can be found...

[http://pierogi.garage.maemo.org/ Pierogi Website]

[http://talk.maemo.org/showthread.php?t=82243 talk.maemo.org Pierogi]

[http://wiki.maemo.org/Pierogi Pierogi Wiki]

[http://maemo.org/packages/view/pierogi/ Pierogi Package Page]

[http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/pierogi/1.0.0/ Pierogi Stable Package 1.0.0]

[https://garage.maemo.org/tracker/?func=add&amp;group_id=2286&amp;atid=7641 Bugtracker]


'''[http://wiki.maemo.org/Pierogi_Device_Compatibility_List#Requests Keyset Requests]'''

'''[http://wiki.maemo.org/Pierogi_Device_Compatibility_List#New_Keyset_Requests New Keyset Requests]'''

= Compatible Devices =
If you have a supported device, and don't see it on the list, please do go ahead and edit the Wiki to add it! 

'''To edit the Compatible Devices Section:-'''

*Search for your working keyset from the list below
*If your keyset is listed click the edit button to the right of the keyset

Then add your devices model number to the list followed by save page.

*If your keyset is not listed you will need to add your make and model to the wiki, please use the following guide to help you.


'''Compatible Devices are in the following format:-'''

Text within two equals &quot;==&quot; are for types of equipment like Televisions, Audio etc ''(please use the headings provided to keep in line with Pierogi's Device Type)''

Text within three equals &quot;===&quot; are for manufactures like Sony, LG etc

Text within four equals &quot;====&quot; are for keysets like LG TV Keyset 1

Your device models should be added to the list after the keyset headings &quot;====&quot;

Please enter your EXACT model name, if there are multiple models within a keyset they are divided by a comma &quot;, &quot; 


'''''Before adding a Compatible Keyset, please make sure all of the keys within the keyset work as desired.'''''

'''''If you have a problem with a current keyset please report here:-'''''

[http://talk.maemo.org/showthread.php?t=82243 talk.maemo.org Pierogi]

[https://garage.maemo.org/tracker/?func=add&amp;group_id=2286&amp;atid=7641 Bugtracker]

'''''If you have a problem with adding a compatible keyset please report here:-'''''

[http://talk.maemo.org/showthread.php?t=82243 talk.maemo.org Pierogi]

== Televisions ==

=== Daewoo ===

==== Daewoo TV Keyset 1 ====

21T5T

==== Daewoo TV Keyset 2 ====

DMQ-2141

=== Ei ===

==== Ei TV Keyset 1 ====

51100,
55100,
56105
63105,
72105

=== GoldStar ===

==== GoldStar TV Keyset 1 ====

105-210A

=== Grundig ===

==== Grundig TV Keyset 1 ====

ST 55-908

=== Hitachi ===

==== Hitachi TV Keyset 1c ====

57F510

=== JVC ===

==== JVC TV Keyset 1 ====

AV28T25EIS

=== LG ===

==== LG TV Keyset 1 ====

32LC56, 32LH301C, 50PS3000, FLATRON M227WDP, FLATRON M2280DF

==== LG TV Keyset 1c ====

55LW9500,
60PG60,
60PX950,
42LM615S

==== LG DVD Keyset 2 ====
DV552,

=== Panasonic ===

==== Panasonic TV Keyset 1 ====

TX-32PD50 (32&quot; QuintrixSR)

==== Panasonic TV Keyset 1b ====

Viera 42PZ700U,
Viera 42PZ8ES,
Viera TC-42S30,
Viera TX-32LZD80,
Quintrix TX-25MK1C,

=== Philips ===

==== Philips TV Keyset 1 ====

29&quot; CRT 29PT2460,
15PF4121,
37PFL7603D,
HV92, 
1995 Magnavox 19&quot; CRT

==== Philips TV Keyset 1a ====

17PT1563

==== Philips TV Keyset 1b ====

29PT5507

==== Philips TV Keyset 1d ====

14PT1562/00,
32PW9528/12,
47PFL7603D,

==== Philips TV Keyset 1e ====

21PT2265,
28PT4455

==== Philips TV Keyset 1f ====

25PT5302

==== Philips TV Keyset 2 ====

26PFL5604H,
28PW8506/12R,
32PFL5403D

==== Philips TV Keyset 2a ====

29PT8607/12

==== Philips TV Keyset 2b ====

32PFL7532D

==== Philips TV (settop-box) Keyset 3 ====

DTX6372

=== Samsung ===

==== Samsung TV Keyset 1 ====

LE22B470C9M,
LN32C530F1FXZA,
SyncMaster 225MW,
UE46B6000VPXZG,

==== Samsung TV Keyset 1c ====

LE46M51B (R)

=== Sanyo ===

==== Sanyo TV Keyset 1a ====

28CN7F,
28LN4-C,
C21EF44,
C25EG64,
C28EH64

==== Sanyo TV Keyset 1d ====

CTP-6791P

=== Sony ===

==== Sony TV Keyset 1 ====

KDL-23B4030,
KDL-40EX403,
KDL-40X2000,
KDL-46X2000,
KDL-52X2000,
KP-46WT520,
KV-20FV10,
KV-2167MT,
KV-2184MT,
KV-27FX210,
KV-32FS210,
KV-36FS13,
KV-36FS210,
KV-M1420D,
KDL-40EX520,
KDL-32BX300

==== Sony TV Keyset 1a ====

KDW-25



=== Toshiba ===

==== Toshiba TV Keyset 1 ====

21S03D, 37C3030, 32WLT66

==== Toshiba TV Keyset 1b ====

27A51

=== Westinghouse ===

==== Westinghouse TV Keyset 2 ====

LVM-42W2

=== Zenith ===

==== Zenith TV Keyset 1 ====

C32V37

== Sat Receiver ==

=== Grundig ===

==== Grundig Satellite Keyset 2 ====

STR 7100

=== Philips ===

==== Philips Sat Keyset 2 ====

DSX-5500

==== Philips Sat Keyset 2a ====

DSX 6010/62A

==== Philips Sat Keyset 3 ====

DST5816/33

=== Samsung  ===

==== DVB-T Receiver Keyset 1 ====

SMT-1100T 

=== Topfield ===

==== Topfield Sat Keyset 1 ====

TF4000Fi

=== Virgin Media ===
V BoxHD (Cisco 4585),
Virgin Media Tivo (Cisco)

== VCR ==

=== Aiwa ===

==== Aiwa VCR Keyset 1 ====

HV-CX100KER

=== Daewoo ===

==== Daewoo VCR Keyset 1 ====

PV-200

==== Daewoo VCR Keyset 2 ====

VQ857S

=== GoldStar ===

==== GoldStar VCR Keyset 1 ====

GSE-Q204P,
QUISY 500

=== Grundig ===

==== Grundig VCR Keyset 1 ====

GV 437

=== Philips ===

==== Philips VCR Keyset 1a ====

VP27/55

=== Samsung ===

==== Samsung VCR (DVD) Keyset 1c ====

DVD-V1000

==== Samsung VCR/TV Combo Keyset 1d ====

CXD1342

=== Sanyo ===

==== Sanyo VCR/DVD Keyset 1 ====

DVW-5000

== DVD ==

=== Denon ===

==== Denon DVD Keyset 1 ====

DVD-1930

==== Denon DVD Keyset 2 ====

DVD-2500

==== Denon DVD Keyset 3 ====

DVD-1000

=== Grundig ===

==== Grundig DVD Keyset 1 ====

GDV 130

=== JVC ===

==== JVC DVD Keyset 1 ====

JVC XV-N5SL

=== Magnavox ===

==== Magnavox DVD Keyset 1 ====

MDV450

=== Philips ===

==== Philips DVD Keyset 1 ====

DVD712,
DVD722,
DVD-724,
DVP 3005

==== Philips DVD Keyset 1a ====

DVP-5982

==== Philips DVD Keyset 1b ====

DVP-642

==== Philips DVD Keyset 1c ====

DVP 5160,
DVP 5982,
HTS3544

==== Philips DVD Keyset 1d ====

DVD 963sa

==== Philips DVD Keyset 3 ====

DVDR3570H

==== Philips DVD Keyset 3a ====

DVDR-3455H

==== Philips DVD Keyset 4 ====

DVDR 1000

=== Pioneer ===

==== Pioneer DVD Keyset 1 ====

VXX2702,
VXX2801

=== Raite ===

==== Raite DVD Keyset 1 ====

DVD-703

=== Samsung ===

==== Samsung DVD Keyset 2 ====

HT-P1200

=== Sanyo ===

==== Sanyo VCR/DVD Keyset 1 ====

DVW-5000

==== Sanyo DVD Keyset 1 ====

DVD-SL25

=== Sony ===

==== Sony DVD Keyset 1 ====

DVP-NS608P,
DVP-CX985V

== Audio ==

=== Aiwa ===

==== Aiwa Audio Keyset 1 ====

LX-100,
RC-TD3

==== Aiwa Audio Keyset 1a ====

CA-DW635,
XR-M201

==== Aiwa Audio Keyset 2 ====

LCX50,
NSX-320,
NSX-330,
NSX-500,
NSX-532,
NSX-540,
NSX-AV320,
NSX-DR5,
NSX-S22,
NSX-V25,
NSX-V30,
XR-M35

==== Aiwa Audio Keyset 2a ====

RC-CAS03

==== Aiwa Audio Keyset 2c ====

XR-MD201

==== Aiwa Audio Keyset 6 ====

CX-770,
Series 70

=== Apple ===

==== Apple White Remote ====

a1121

=== Denon ===

==== Denon Receiver Keyset 1 ====

AVR-1708

==== Denon Receiver Keyset 1a ====

AVR-1610

==== Denon Receiver Keyset 1b ====

AVR-3300

==== Denon Receiver Keyset 1c ====

AVR-1602,
AVR-1802,
AVR-1803

==== Denon Receiver Keyset 1d ====

PMA-480R PMA-350SE

==== Denon Receiver Keyset 1e ====

DRA-385RD

==== Denon Receiver Keyset 1f ====

AVR-7000RD,
RC-841

==== Denon Receiver Keyset 2a ====

PMA-425R

==== Denon Receiver Keyset 3 ====

AVR-600 RD

==== Denon Audio Keyset 1 ====

DCD-335,
DRA-275RD,
DRM-550,
HiFi 110,
UD-M30

==== Denon Audio Keyset 1a ====

UCD-F07,
UDR-F07,
UDRA-F07

==== Denon Audio Keyset 1b ====

DCD-655,
DCD-1015

==== Denon Audio Keyset 1c ====

DCM-260

==== Denon Audio Keyset 1d ====

RC-846,
UCD-F88,
UDR-F88,
UPA-F88,
UTU-F88,
UDRA-M7

==== Denon Audio Keyset 2 ====

D-C30

==== Denon Audio Keyset 3 ====

DMD-800

==== Denon Audio Keyset 4 ====

D-G1MD

=== GoldStar ===

==== GoldStar Audio Keyset 1 ====

FFH-272A/L

=== Grundig ===

==== Grundig Amp Keyset 1 ====

FineArts Amplifier V1

==== Grundig Audio (CD) Keyset 1 ====

CD 8400

==== Grundig Audio Keyset 2 ====

CDM 700,
UMS-9V

=== Hitachi ===

==== Hitachi Audio Keyset 1 ====

FX-7,
FX-77

=== JVC ===

==== JVC Audio Keyset 1 ====

RX-5062

=== Logitech ===

==== Logitech Squeezebox Keyset ====

Squeezebox 2,
Squeezebox Radio

=== Panasonic ===

==== Panasonic Audio Keyset 1 ====

RX-DS25,
RX-E300

=== Philips ===

==== Philips Audio Keyset 1 ====

AZ2407,
AS680C,
FW 530C,
FW-P78,
FWP73P,
FWP78C,
MZ7,
PVD0384

==== Philips Audio Keyset 1a ====

C 380

==== Philips Audio Keyset 1b ====

FW 362

==== Philips Audio Keyset 2 ====

FW2104

==== Philips Audio Keyset 3 ====

CD723

=== Pioneer ===

==== Pioneer Audio Keyset 1 ====

A880,
CU-XR015,
Hi-Fi DU-L7,
XC-L11

==== Pioneer Audio Keyset 3 ====

A-207R,
SX-302,
VSX-9300

==== Pioneer Audio Keyset 5 ====

XR-P240C

==== Pioneer CD Keyset 1 ====

PD-106,
PD-202,
PD-4550,
PD-F957,
PD-F1007,
PD-M107,
PD-S503

=== Yamaha ===

==== Yamaha Audio Keyset 2 ====

AX-570,
CDX-570,
RX-395-RDS,
RX-V1300-RDS

==== Yamaha Audio Keyset 4 ====

GX-50

== Computer ==

=== Acer ===

==== Acer PC Keyset 1 ====

Aspire 9500,
Aspire 9800

=== Apple ===

==== Apple White Remote ====

All Apple computers with IR receivers

=== Hauppauge ===

==== Hauppauge PCTV Keyset 1 ====

PVR 350

==== Hauppauge PCTV Keyset 1a ====

WinTV-HVR-950Q

==== Hauppauge PCTV Keyset 1b ====

MVP

==== Hauppauge PCTV Keyset 1c ====

PVR 250

=== Microsoft ===

==== Microsoft Remote Mode 1 ====

ASRock HT330

=== Pinnacle ===

==== Pinnacle PCTV Keyset 1 ====

800i

==== Pinnacle PCTV Keyset 2 ====

USB Stick

==== Pinnacle PCTV Keyset 3 ====

110i

== Other ==

=== Magnavox ===

==== Magnavox Settop Box Keyset 1 ====

TB100MG9

=== Pioneeer ===

==== Pioneer LD Keyset 1 ====

CLD-D925

=== QNAP ===

==== QNAP Media Player Keyset 1 ====

NMP-1000,
NMP-1000P

=== Sanyo ===

==== Sanyo Projector Keyset 1 ====

PLV-Z1

=== Topfield ===

==== Topfield PVR Keyset 1 ====

PVR 4000,
PVR 5000

=== Western Digital ===

==== Western Digital Media Player Keyset 1 ====

WDTV,
WDTV Live PLUS

= Requests =

Due to the volume of keyset requests the 'Requests Section' has now been updated.
Completed requests will be moved to the Completed Section when added to the latest version.


Requests are in the following format:-

''Completed''

*&lt;s&gt;Your Requests Device/Remote and info - your name '''(added version x.x.x)'''&lt;/s&gt;

''New''

*Your Requests Device/Remote and info - your name

Requests are ordered latest last.


Before requesting a keyset, please make sure none of the current keysets work.
If you have a problem with a current/completed keyset please report here:-

[http://talk.maemo.org/showthread.php?t=82243 talk.maemo.org Pierogi]

[https://garage.maemo.org/tracker/?func=add&amp;group_id=2286&amp;atid=7641 Bugtracker]


'''''There are some people experiencing &quot;range&quot; issues with certain keysets. A new wiki page has been setup to collect data to solve the issue.'''''

[[Pierogi/IR_Hardware]]


'''To jump to the New Requests section [http://wiki.maemo.org/Pierogi_Device_Compatibility_List#New_Keyset_Requests click here]'''

== Completed Keyset Requests ==
*&lt;s&gt;Philco - Brian_7 '''(added version 0.6.1)'''&lt;/s&gt;
*&lt;s&gt;Admiral - Brian_7 '''(added version 0.6.1 and 0.6.3)'''&lt;/s&gt;
*&lt;s&gt;Grundig - Acidspunk '''(added version 0.6.1)'''&lt;/s&gt;
*&lt;s&gt;Daewoo - D@vIcHoJD '''(added version 0.6.1 and 0.6.2)'''&lt;/s&gt;
*&lt;s&gt;DirecTv Sat Box - louiegoat '''(added version 0.6.6)'''&lt;/s&gt;
*&lt;s&gt;Roku - louiegoat '''(added version 0.6.1)'''&lt;/s&gt;
*&lt;s&gt;Logitec Z5400 - hycraig '''(added version 0.6.1)'''&lt;/s&gt;
*&lt;s&gt;Topfield - patemera '''(added version 0.6.1)'''&lt;/s&gt;
*&lt;s&gt;TATA SKY - udaychaitanya16 '''(added version 0.6.2)'''&lt;/s&gt;
*&lt;s&gt;WD Live - hermes040 '''(added version 0.6.2)'''&lt;/s&gt;
*&lt;s&gt;Sky HD - hycraig '''(added version 0.6.2)'''&lt;/s&gt;
*&lt;s&gt;Saba - datjomp '''(added version 0.6.2)'''&lt;/s&gt;
*&lt;s&gt;Dish Network Seciever - Sphinx780 '''(added version 0.6.4)'''&lt;/s&gt;
*&lt;s&gt;Fortec Star Seciever - king Ralphred '''(added version 0.6.4)'''&lt;/s&gt;
*&lt;s&gt;Kenwood Ampifiers - Crust '''(added version 0.6.5)'''&lt;/s&gt;
*&lt;s&gt;Beko - kalilucho '''(added version 0.6.5)'''&lt;/s&gt;
*&lt;s&gt;Haier - whatsappneeder '''(added version 0.6.5)'''&lt;/s&gt;
*&lt;s&gt;(KPN Dual Tuner Digitenne) Samsung SMT-1100T - Mr_Pingu '''(added version 0.6.6)'''&lt;/s&gt;
*&lt;s&gt;Cambridge Audio - pasko '''(added version 0.6.5)'''&lt;/s&gt;
*&lt;s&gt;Bose 3-2-1 - DVD Home Entertainment System - peterleinchen '''(added version 0.6.6)'''&lt;/s&gt;
*&lt;s&gt;Andersson/Vestel - miroslav_s '''(added version 0.6.7)'''&lt;/s&gt;
*&lt;s&gt;Cisco Tivo/Virgin Media UK - sixwheeledbeast '''(added version 0.6.7)'''&lt;/s&gt;
*&lt;s&gt;ONIDA (TVE_21)- n900ak '''(added version 0.6.7)'''&lt;/s&gt;
*&lt;s&gt;HP - davdav '''(added version 0.6.8)'''&lt;/s&gt;
*&lt;s&gt;Vizio TV's - ug2215 '''(added version 0.6.7)'''&lt;/s&gt;
*&lt;s&gt;Motorola Cable Box Keyset - monkeyman '''(added version 0.6.8)'''&lt;/s&gt;
*&lt;s&gt;Technics (SC-HD310 / SC-HD350 models) - helloct '''(added version 0.6.9)'''&lt;/s&gt;
*&lt;s&gt;Canon RC-1 - tecs '''(added version 0.6.9)'''&lt;/s&gt;
*&lt;s&gt;Epson TW-700 Projector - qwazix '''(added version 0.6.9)'''&lt;/s&gt;
*&lt;s&gt;Humax (Vaci-5300) receiver - willi6868 '''(added version 0.6.9)'''&lt;/s&gt;
*&lt;s&gt;United (UTV) - skricciolo1981 '''(added version 0.6.9)'''&lt;/s&gt;
*&lt;s&gt;Bush WS6680 - philbelfast '''(added version 0.6.9)'''&lt;/s&gt;
*&lt;s&gt;Panasonic SA-AK25 - philbelfast '''(added version 0.6.9)'''&lt;/s&gt;
*&lt;s&gt;Sony RMT-DSLR1 - ultranalog '''(added version 1.1.0)'''&lt;/s&gt;
*&lt;s&gt;GDI gd-2000 gdrc-400 - mrwormp '''(Use Motorola Keysets)'''&lt;/s&gt;
*&lt;s&gt;NAD - toxaris '''(added version 0.6.11)'''&lt;/s&gt;
*&lt;s&gt;Sony EVI-D30,D70,D100 - satoh '''(added version 1.1.0)'''&lt;/s&gt;
*&lt;s&gt;Hyundai - goodwin '''(added version 1.0.0)'''&lt;/s&gt;

'''''Keysets after here are not available in the latest Stable Package'''''

*&lt;s&gt;Kathrein Sat Recevier UFS 922 - Cardigan '''(added version 1.1.0)'''&lt;/s&gt;
*&lt;s&gt;Harman Kardon Receiver AVR 220 - Cardigan '''(added version 1.1.0)'''&lt;/s&gt;
*&lt;s&gt;JVC XV-N5SL - Galdrapiu (use JVC DVD Keyset 1)&lt;/s&gt;
*&lt;s&gt;DSE STB - tuxbox '''(added version 1.1.0)'''&lt;/s&gt;
*&lt;s&gt;Arcam Alpha7R Amp - benoit '''(added version 1.1.0)'''&lt;/s&gt;
*&lt;s&gt;Arcam Alpha7SE CD player - benoit '''(added version 1.1.0)'''&lt;/s&gt;
*&lt;s&gt;Foxtel Cable IQ2 - shazosbourne '''(added version 1.1.0)'''&lt;/s&gt;
*&lt;s&gt;Dynex DX-32L220A12 - mu_mind '''(added version 1.1.0)'''&lt;/s&gt;
*&lt;s&gt;SONY CD Player CDP-XE370 - marpsoft '''(added version 1.1.0)'''&lt;/s&gt;
*&lt;s&gt;Dell MR425 - lotos '''(added version 1.1.0)'''&lt;/s&gt;
*&lt;s&gt;viewsat 2000 - psycon '''(added version 1.1.0)'''&lt;/s&gt;
*&lt;s&gt;logitech squeezebox - petur '''(added version 1.1.0)'''&lt;/s&gt;
*&lt;s&gt;Kaon STB - n900ak '''(added version 1.1.1)'''&lt;/s&gt;
*&lt;s&gt;QNAP NMP-1000(P) - petur '''(added version 1.1.1)'''&lt;/s&gt;
*&lt;s&gt;Compro - ioncelmare '''(added version 1.1.1)'''&lt;/s&gt;
*&lt;s&gt;Genius - ioncelmare '''(added version 1.1.2)'''&lt;/s&gt;
*&lt;s&gt;Magnum - petur '''(added version 1.1.2)'''&lt;/s&gt;
*&lt;s&gt;Thomson - hadjistyllis '''(added version 1.1.2)'''&lt;/s&gt;
*&lt;s&gt;Telenet (Belgium) - petur '''(added version 1.1.2)'''&lt;/s&gt;
*&lt;s&gt;octagon 1008 se+ - ?unnamed_request?_IP:41.200.64.112 '''(added version 1.1.3)'''&lt;/s&gt;
*&lt;s&gt;Grundig Freesat HD STB - ?unnamed_request?_IP:80.229.125.252  '''(added version 1.1.4)'''&lt;/s&gt;
*&lt;s&gt;Lexuzbox F90HD - ?unnamed_request?_IP:177.81.2.159 '''(added version 1.1.4)'''&lt;/s&gt;
*&lt;s&gt;Cisco 8485DVB / Voocorder - olibe '''(added version 1.1.5)'''&lt;/s&gt;
*&lt;s&gt;Cisco CHS 435 HD DVR (Verizon) - ?unnamed_request?_IP:108.170.92.254 '''(added version 1.1.5)'''&lt;/s&gt;
*&lt;s&gt;Cisco Explorer 4642HD - Jose '''(added version 1.1.5)'''&lt;/s&gt;
*&lt;s&gt;Loewe TVs - Sec19 '''(added version 1.1.5)'''&lt;/s&gt;
*&lt;s&gt;Orion - hellwolfhun '''(added version 1.1.5)'''&lt;/s&gt;
*&lt;s&gt;Proview DVD-Player DVP-858 - awmaximus '''(added version 1.1.5)'''&lt;/s&gt;
*&lt;s&gt;Sony DVD Player RDR-GX380/RMT-D25P - mohdareeb '''(added version 1.1.5)'''&lt;/s&gt;
*&lt;s&gt;Sony Projector VPL-ES4, VPL-EX7 - Alicanto '''(added version 1.1.5)'''&lt;/s&gt;
*&lt;s&gt;Strong satellite reciever - unexpected '''(added version 1.1.5)'''&lt;/s&gt;
*&lt;s&gt;Technisat - Digicorder - ?unnamed_request?_IP:194.138.39.54 '''(added version 1.1.5)'''&lt;/s&gt;
*&lt;s&gt;Telefunken - TV - klarkent '''(added version 1.1.5)'''&lt;/s&gt;
*&lt;s&gt;Zenith AKB36157102 - plaka666 '''(added version 1.1.5)'''&lt;/s&gt;
*&lt;s&gt;ADB iCan 3100 (Telefonica Imagenio)- Verssetti '''(added version 1.1.6)'''&lt;/s&gt;
*&lt;s&gt;Anitech - willi6868 '''(added version 1.1.6)'''&lt;/s&gt;
*&lt;s&gt;Blaupunkt - Acidspunk '''(added version 1.1.6)'''&lt;/s&gt;
*&lt;s&gt;Lifetec - willi6868 '''(added version 1.1.6)'''&lt;/s&gt;
*&lt;s&gt;Medion - willi6868 '''(added version 1.1.6)'''&lt;/s&gt;
*&lt;s&gt;Sylvania TV/DVD/VCR - skykooler '''(added version 1.1.6)'''&lt;/s&gt;
*&lt;s&gt;TRIAX Digital Satellite Receiver - Garrett_PL '''(added version 1.1.6)'''&lt;/s&gt;
*&lt;s&gt;Roomba Vacuum - zlatokosi '''(added version 1.1.7)'''&lt;/s&gt;
*&lt;s&gt;Goodmans - hycraig '''(added version 1.1.8)'''&lt;/s&gt;
*&lt;s&gt;Emtec N200 - krutznikov '''(added version 1.1.8)'''&lt;/s&gt;
*&lt;s&gt;Pentax Digital Camera Remote Control - oblomow '''(added version 1.1.8)'''&lt;/s&gt;
*&lt;s&gt;Hantarex (TVs) - Au{R}oN '''(added version 1.1.13)'''&lt;/s&gt;
*&lt;s&gt;Changhong TV - ?unnamed_request?_IP:114.108.192.13 '''(added version 1.1.14)'''&lt;/s&gt;
*&lt;s&gt;Frontech VGA TV JIL-0615 - ?unnamed_request?_IP:223.191.67.156'''(added version 1.1.14)'''&lt;/s&gt;
*&lt;s&gt;Sinotec - ashrufr '''(added version 1.1.14)'''&lt;/s&gt;
*&lt;s&gt;Thomson AM1480 - Estel '''(added version 1.1.14)'''&lt;/s&gt;
*&lt;s&gt;ADB iCan 3100TW - Verssetti '''(added version 1.1.15)'''&lt;/s&gt;
*&lt;s&gt;Medi@link Receiver - willi6868 '''(added version 1.1.15)'''&lt;/s&gt;
*&lt;s&gt;Multichoice DSTV DSD 1110 - Ken Simmons '''(added version 1.1.15)'''&lt;/s&gt;
*&lt;s&gt;NEC Projector - myname24 '''(added version 1.1.15)'''&lt;/s&gt;
*&lt;s&gt;Pioneer Car Audio DEH-2950MP '''(added version 1.1.15)'''&lt;/s&gt;

== Requests that should be working ==

'''''There are some people experiencing &quot;range&quot; issues with certain keysets. A new wiki page has been setup to collect data to solve the issue.'''''

[[Pierogi/IR_Hardware]]


'''''Please remove these and add to the Supported Device if there working.'''''


*Sony KDL-40CX525 (Remote is called &quot;RM-ED045&quot;) - Thp
::''On the Sony KDL-40CX525 -- There may be a problem controlling some Sony TVs at a distance; not sure what is causing it yet.  --Copernicus 20/Feb/2012''

*Kenwood RC-A0400 - taggart
:: ''The RC-A0400 is already entered as Kenwood Audio Keyset 1, please post a note if it isn't working for you! -- Copernicus 21/Feb/2012''

*Samsung MAX-945D - Verssetti
:: ''Please try out Samsung DVD Keyset 2 on the MAX-945D, it may have the right codes.  --Copernicus 24/Feb/2012''

*Samsung LE-37C650 - ?unnamed_request?_IP:77.85.177.88
:: ''The Samsung TV Keyset 1 family should have the right codes for this TV.  Are none of those keysets working for you? --Copernicus 8/Mar/2012''

*Yamaha AV Reciever RX-V1200RDS - Galdrapiu
:: ''I'm pretty sure one of the Yamaha Audio Keyset 2 family should be able to support the RX-V1200RDS.  Can you try them out and see if they work for you?  Thanks!  --Copernicus 8/Mar/2012''

*Dell XPS 16 - abs0lut3z33r0
:: ''Yes, I've got the Media Centre keysets listed under &quot;Microsoft&quot; in the &quot;Select Keyset by Name&quot; window.  I'll try to squeeze Media Center or MCE into the name as well.  --Copernicus 13/Mar/2012''

*Sony KDL-40EX725 - awmaximus
::''On the Sony KDL-40EX725 -- There may be a problem controlling some Sony TVs at a distance; not sure what is causing it yet.  --sxiwheeledbeast 20/Mar/2012''

*Western Digital WDTV Live Plus - awmaximus
:: ''Western Digital Live Plus was added in Version 1.1.0, if you only use the current stable version you will have to wait for this version to be promoted. If you use the development version please let us know if it's not working! --sixwheeledbeast 19/Mar/2012''

*LG TV 50PQ2000 - alg
::''I haven't found that exact brand of LG in my sources, but other LG plasmas look like they should be working with the LG TV Keyset 1 series.  Can you confirm that none of the LG TV keysets work?  Thanks.  --Copernicus 27/Aug/2012''

*LG 26LD310 (TV) - ?unnamed_request?_IP:223.191.69.123
::''Are none of the LG TV keysets working for you?  Please give each one of them a chance, this TV really should be supported by one of them.  --Copernicus 28/Aug/2012''

*LG TV M227WAP ( on version 1.1 there in lg but for M227WDP not for M227WAP)-ninelives234
::''Ah, if you could, please try out LG TV Keyset 1 anyway.  The keysets in Pierogi can work with a far larger set of devices than are currently found in the device list; I suspect one of the existing LG keysets should already work with the M227WAP.  --Copernicus 28/Aug/2012''
::''Tried all of keyset under LG and none of that works! --ninelives234 17/Sep/2012''
::''http://talk.maemo.org/showpost.php?p=1268032&amp;postcount=710''

*XBox 360 - pawelstryju
::''The Microsoft Windows MCE keysets should already work with the Xbox 360.  However, I notice that the &quot;A/B/X/Y&quot; keys are not mapped yet; I'll get on adding them to the keysets.  --Copernicus 2/Sep/2012''
*NHENS (Digital Stream) DTX9900 - anyonebutthis
::''The &quot;Digital Stream Receiver Keyset 1&quot; should be the exact keyset for this device, please give it a try... --Copernicus 4/Sep/2012''

*Sony Bravia KLV-32NX500 - ?unnamed_request?_IP:124.123.132.9
::''I believe this TV should work with the Sony TV Keyset 1, although there has been a range issue with some Sony TVs; you may need to hold the N900 very close to the TV to get it to work.  (I still haven't found the cause of the issue.) --Copernicus 11/Sep/2012''

== Requires IR Data (config files) to add to Pierogi==

'''''This section is for requests that keyset data cannot be found'''''

'''''If you have the ablity to generate the keyset data for your remote or know of a source please post information with the keyset below it's notes'''''

*Platinium TV's - ?unnamed_request?_IP:89.33.252.77 
:: ''Platinium is going to be a problem - I'm just not finding config files for them...  --Copernicus 23/Feb/2012''

*Topline - whatsappneeder
::''There are just no config files to be found, I'm afraid.  --Copernicus 4/Sep/2012''

*Starcom SR-X5300USB - Waelsy123
:: ''I think Starcom is a type of Starsat receiver; at least a Google search for Starcom gives you Starsat data.  The news is not good, in any case: there are no Starcom config files and only one Starsat config file.  I'll put the Starsat one in, but I don't know if it will work.  --Copernicus 29/Feb/2012''

*Mede8er Multimedia Player med500x2 - Larry
:: ''I'm just not finding any mede8er config file data.  The only thing I've been able to dig up is a user complaining that their mede8er was using the same codes as their BenQ TV.  I do have one config file for a BenQ TV, I'll go ahead and add it just in case it is of any use to you...  --Copernicus 8/Mar/2012''

*Bang &amp; Olufsen Beovision 4-12 - ?unnamed_request?_IP:82.128.205.65
:: ''Ah, I was afraid someone would ask for a Bang &amp; Olufsen device.  These guys are (in)famous for not only having a tough protocol, but also using a carrier frequency of 455 kHz, where most everyone else is somewhere between 32 and 56 kHz.  I'm not sure the N900's IR will even support that frequency...  This one is going to be hard!  --Copernicus 6/Mar/2012''

*Roberts Sound 53 - natgwil
:: ''I'm coming up empty on Roberts configuration data from my usual sources.  It'll probably be a while before I can support them...  --Copernicus 11/Mar/2012''

*Airtel DTH (India's second largest DTH operator after TATA sky) - abs0lut3z33r0
:: ''Hmm.  Not finding anything in my usual sources.  Looks like I'll have to dig pretty hard to find codes for these guys.  --Copernicus 13/Mar/2012''

*Welltech -willi6868
::''Not finding any Welltech config files.  I can't even find the right Welltech corporation; I never realized just how many companies have the name &quot;Welltech&quot; before I tried Googling it.  I doubt there are too many well-drilling devices that are controlled with an infrared remote... :) --Copernicus 4/Sep/2012''

*Lexuz box F-90 - Gabriela
::''Lexuz is really frustrating; their devices appear to be everywhere, but I can't find a solid lead on the company itself (or whether it is a brand name of a different company).  I haven't found a config file for the F-90 yet, but it may be out there under a different name...  --Copernicus 4/Sep/2012''

*Truman 150 Sat Receiver - ?unnamed_request?_IP:121.75.0.158
::''Unfortunately, I can find no codes for the Truman line of satellite receivers (although I can find lots of reviews and discussion of them).  I'll have to wait for someone to determine what the Truman IR codes are... --Copernicus 27/Aug/2012''

*Koda iD811 - krutznikov
::''Drat, I love the idea of controlling your iPod or iPhone with your N900, but I just can't find any codes at all for Koda...  --Copernicus 04/Sep/2012''

== New Keyset Requests ==

*Fujitsu Air Conditioner - unnamed
*Hauppauge Digital Receiver - anyonebutthis
*Polytron - farland
*Philips DVDR7310H 250GB - Mr_Pingu
*Philips HTS3548 - Xagoln
*Pioneer Amp VSX-D510 - king Ralphred
*Metz Axio Pro - TV ; remote model name: Metz RM14 (the Metz_RA51 from LIRC does not work with QTIrReco) - peterleinchen
*Telstar - ejcrashed
*Elekta A/C - Minhaz
*Technosat - nkirk
*Sanyo LCD 19XR1 - tiran
*Samsung STB DSB-5090R - akashvani
*Magnavox MPD820 Portable DVD - akashvani
*DV552 LG DVD Player - akashvani
*Pioneer KRP-500A (TV) - sxa
*Pioneer VSX-D912 amp - sxa
*Pioneer DV-696 DVD player - sxa
*Samsung Air Conditioner ARH-1407(Alternatives: ARC-4AS, ARH-401, ARC-467, ARH-441, ARH-428) - sla_erick
*Soundgraph iMON (HTPC) [http://lirc.sourceforge.net/remotes/imon/ LIRC] - Leonid
:: ''The iMON LIRC files are very strange...  I'm going to need some time to decipher them.  --Copernicus 29/Feb/2012''
:: ''There lot of commands, but really necessary and usefully is power on.  --Leonid 27/Oct/2012''
*Kolin A/C - darkestz
*YORK A/C - ajack
*Nokia STB - ajack
*TCL Air Conditioner - ?unnamed_request?_IP:223.230.76.32
*Samsung AC ARH-109 - myname24
*Panasonic Split-Type A/C CS-PC18MKQ (CU-PC18MKQ) 2.0HP - Larry
::''I've gotta put this one back on the list; I haven't gotten to it yet.  The Panasonic keysets added in 1.1.5 were due to getting a very old Panasonic protocol implemented, allowing me to finally add in keysets for a variety of very old devices. --Copernics 30/Aug/2012''
*Deutsche Telekom MR300 - reinob
::'' added in version 1.8 removed in version 1.9 due to bugs -- sixwheeledbeast 07/Sep/2012
*Carrier A/C -davdav
*Power A/C -davdav
*Harman Kardon AVR 355 - Madmax
::''All of my Harman Kardon config files appear to be for older models than the 355, but they are also all very consistent; can you check the existing HK keysets to see if they work for you?  (I've been splitting Harmon Kardon controls into separate components, so you may need to use more than one keyset to access all the controls for your device.)  Thanks!  --Copernicus 29/Sep/2012''
*DM DS2 (Dedicated Micros Digital Sprite 2) CCTV DVR - sixwheeledbeast
::I have thrown this in there as it maybe useful for me in the near future. However I do appreciate it's not your normal A/V stuff and may need a separate panel like the Air-Con Stuff. --sixwheeledbeast 29/Sep/2012
::''Man, tough one!  I can see photos of a couple of Dedicated Micros IR remotes, but I'm not finding config files for them.  (BTW, you probably know this already, but that glorious &quot;remote keyboard&quot; they've got is a wired keyboard.  It supports a wire more than a kilometer in length, so I guess it can be &quot;remote&quot; in that sense...)  The IR remotes I can see appear to be fairly standard TV-style remote controls, with perhaps some buttons remapped to do specialized tasks; I suspect you could fit a lot of them into Pierogi's current &quot;universal&quot; idiom.  But yeah, I could do a separate panel too.  If I can ever find some config data! :)  --Copernicus 29/Sep/2012''
::''BTW, the DS2 appears to include a browser-based interface, allowing you to both control the device and see the video over the net.  So that might be another option...  --Copernicus 29/Sep/2012''
::I do realise the functions of this unit as I install them for a living, the keyboard/joystick you speak of is RS485 and cabled only. I don't have a unit handy but I am thinking with your macros panel I could move around the menus quickly when installing one. I didn't expect you to find IR data for the remote easily (I am going to ask the manufacturer in the week) but hope you consider the possibilities of CCTV DVR IR remotes in the future. --sixwheeledbeast 30/Sep/2012
::''Will do.  I have got a little bit of info for a couple of other brands: Bosch, IC Realtime, even a &quot;generic&quot; config file that the author claims &quot;should work with a number of different units&quot;.  I'll take a look at these, and see what kind of panels I can whip up for them...  --Copernicus 30/Sep/2012''

*Starmax Satellite Receiver 5100
::''I am just coming up empty on any config files for the Starmax brand... I'll keep an eye out for them.  --Copernicus 24/Oct/2012''

=Wiki Update Info=
:''Last Updated - sixwheeledbeast - 25 October 2012 18:02 UTC''
''Updated to 1.1.15''
Teco Flatscreen TV</text>
    </revision>
  </page>
  <page>
    <title>Playing OGG files</title>
    <id>67</id>
    <revision>
      <id>42140</id>
      <timestamp>2011-02-25T14:08:21Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify link</comment>
      <text xml:space="preserve">The Nokia Internet Tablets don't support [[:wikipedia:Ogg|ogg]] out of the box due to upstream corporate decisions within Nokia, but you can listen to audio in this format by installing third party software. You can follow progress on official support in [http://bugs.maemo.org/show_bug.cgi?id=176 bug #176] (and read [[Ogg_Vorbis_justification|our justification]] for this request here in the wiki).

There has been [[programming the DSP|some work by community members]] enabled by the release of the DSP toolchain on the the Texas Instruments TMS320C55x DSP, but essential proprietary components are still licensed under NDA by TI in the form of the Code Composer Studio IDE. Simon Pickering has, nonetheless, [http://lists.maemo.org/pipermail/maemo-developers/2008-July/034209.html developed a working audio decoder using the DSP on a Nokia N810].

== Gstreamer ogg codecs ==

*[http://maemo.org/downloads/product/OS2007/mogg/ mogg] 
*[http://downloads.maemo.org/product/ogg Ogg support]

These codecs run on the main CPU, not on the DSP.

== Ogg capable players if gstreamer ogg codecs are installed ==

*[http://maemo.org/downloads/product/ukmp UKMP]
*[http://kilikali.garage.maemo.org Kilikali] 
*[http://madabar.com/exailemaemo/ Exaile port for maemo] 
*[https://garage.maemo.org/projects/kagu/ Kagu] (uses osso-media-server like the built-in player)
*[http://www.rojtberg.net/workspace/youamp/ YouAmp]
*[http://openbossa.indt.org/canola/ Canola2], requires this extra [http://eblima.googlepages.com/ogg-support-lightmediascanner.install install] to enable the scanning of .ogg files (more info [http://etrunko.blogspot.com/2008/05/ogg-support-on-canola2.html here]).
*[https://garage.maemo.org/projects/mediabox/ MediaBox] (uses mplayer by default or osso-media-server for Ogg playback)

== Players with built-in ogg support ==

*[http://downloads.maemo.org/product/mplayer Mplayer] 
*[http://downloads.maemo.org/product/oggplay/Ogg Vorbis Player] (for the 770 only) 
*[https://garage.maemo.org/projects/mpd mpd] 

See this [http://www.internettablettalk.com/forums/showthread.php?t=3441&amp;amp;pp=10 thread] for more.

There is information for developers to enable ogg support in their applications at the &quot;Getting started with multimedia&quot; how-to pages for [https://maemo.org/development/documentation/how-tos/4-x/getting_started_with_multimedia.html Maemo 4.x], [http://maemo.org/development/documentation/how-tos/3-x/getting_started_with_multimedia.html Maemo 3.x], and [http://maemo.org/development/documentation/how-tos/2-x/getting_started.html Maemo 2.2])

[[Category:Users]]
[[Category:Media]]
[[Category:Development]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Podcasts</title>
    <id>1116</id>
    <revision>
      <id>41911</id>
      <timestamp>2011-02-20T13:40:54Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <comment>/* gPodder */</comment>
      <text xml:space="preserve">There are several programs available to enjoy your podcasts on the go. This page is here to give an overview, as well as some nice features or shortcomings of each program.

Some programs are available via repositories - that way you can update without having do download *.deb files manually every time. Go to [http://www.gronmayer.com/it/index.php Repositories for Nokia N810, N800 and 770 Internet Tablets], choose your tablet's OS version - OS2006, 2007 or 2008 - and have a look at the available repositories.

== gPodder ==

http://static.maemo.org/static/1/1d530a4c460d11dfa513817d6cf69f369f36_screenshot-20100412-102704.png

This is the program that most people seem to be using. For the manual see [http://wiki.gpodder.org/wiki/User_Manual the gpodder wiki].

Support and discussion threads:

* [http://talk.maemo.org/showthread.php?t=31978 gPodder for Maemo 5 (N900)]
* [http://talk.maemo.org/showthread.php?t=18684 gPodder for Maemo 4 (N800, N810)]

You can find gPodder in the [[Extras]] repository.

For Maemo 4 (N800, N810), we suggest to use [[Panucci]] as a suitable podcast player, as it supports resume play. On Maemo 5 (N900), the built-in Media Player is the suggested player, because gPodder integrates with it (including playback position tracking and resuming support).

== videocenter ==

It is available from the Nokia Certified repository, but can also be downloaded from the Maemo Garage:

[https://garage.maemo.org/projects/videocenter/ https://garage.maemo.org/projects/videocenter/]

'''Features:'''

* You can choose betwen adding podcasts (called Internet videos - although audio podcasts can be added as well), Internet TV (I guess that's streaming media) and Remote video (I guess stuff your media center makes available at home).
* You can add podcast feeds and the podcasts then get sorted in their respecive podcast list.
* Podcasts can be browsed by list in one window with the status (downloaded or not) displayed next to the podcast item's name in the &quot;Internet videos&quot; view.
* Double-clicking on the podcast name displays infos as the complete title, the file's URL and a descrition of the podcast item (if available).
* In the &quot;My videos&quot; view you get a list of the files you already downloaded, odered only by &quot;internal&quot; and &quot;removable&quot; memory card.
* In the &quot;My videos&quot; view the infos again, delete or protect files, rename them and you can move downloaded podcasts to different locations on a file-by-file basis or all of them at once. The &quot;My videos view&quot; also shows you how many percent of your memory card are still available/free.
* You can even select whether to use the &quot;internal&quot; (meaning Maemo's standard) player or an external application.

'''Shortcomings'''

* Sometimes videocenter crashes when adding new podcast feeds, for example when adding [http://netzpolitik.org/category/netzpolitiktv/feed/rss2 Netzpolitik.org TV podcast].
* videocenter &quot;thinks&quot; it can only use video podcasts and therefore calls everything &quot;video&quot; - although it works with audio podcasts, as well.

== podsync ==

This is a very new (and still very basic) program, available from

[http://wsys.nl/podsync.php http://wsys.nl/podsync.php]

'''Features'''

* podsync has a &quot;one window&quot; design: You add postcasts and define (globally) how many of the newest podcasts you'd like to download when refreshing. The window displays the podcast URLs and that's it.
* podsync creates playlists of ALL and only the NEW podcasts in the download directory. These can be used with your favourite video/audio player.
* small, fast, easy

'''Shortcomings'''

* Still at a very early stage of development.
* It's very difficult to find the right files in Maemo's file manager to keep/save them, as podsync uses a not-very-distinctive-for-humans naming scheme.

[[Category:Users]]
[[Category:Media]]

[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>Port an existing Debian package</title>
    <id>4038</id>
    <revision>
      <id>33617</id>
      <timestamp>2010-04-28T14:00:05Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Modifying a Debian package for Maemo */ link to packaging guidelines directly</comment>
      <text xml:space="preserve">{{main|Packaging}}

== Finding your package in Debian ==

If you want to port a Debian package to Maemo, you should check and see if it is already packaged for Debian and use that package if you can - this will save you time and effort. You can search in Debian's [http://www.debian.org/distrib/packages Package Tracking System (PTS)] to see if it is there. There is a search system on the PTS page, under the &quot;distribution&quot; drop-down, select 'any', this will search throughout Debian's repositories to find the package. Debian has more than 20,000 packages just in its stable distribution so your application is likely already packaged.

If you find the package already exists in Debian, you can get the source, including the packaging source, with apt-get. To do this, you'll have to edit your &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;, you can follow this recipe;

 $ echo &quot;deb http://ftp.it.debian.org/debian/ unstable main contrib non-free&quot; &gt;&gt; /etc/apt/sources.list
 $ echo &quot;deb-src http://ftp.it.debian.org/debian/ unstable main contrib non-free&quot; &gt;&gt; /etc/apt/sources.list
 $ apt-get update
 $ apt-cache search &quot;application name&quot;
 $ apt-get source &quot;application name&quot;

''To learn more about the &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; you can do a 'man sources.list' if you are running Debian or a Debian-based GNU/Linux distro.''

== Modifying a Debian package for Maemo ==

Once you have the source of the Debian package, you will need to make some modifications to that package for it to build under Maemo. See the [[Packaging/Guidelines|Maemo packaging guidelines]] for more information.

The maintainer field (in the &lt;code&gt;debian/control&lt;/code&gt; file) must be changed if the upstream package is modified, for example:
 Maintainer: Tcl/Tk Debian Packagers &lt;pkg-tcltk-devel@lists.alioth.debian.org&gt;
should be replaced by
 Maintainer: My Name &lt;my@email.com&gt;
 XSBC-Original-Maintainer: Tcl/Tk Debian Packagers &lt;pkg-tcltk-devel@lists.alioth.debian.org&gt;

You must add a new entry to &lt;code&gt;debian/changelog&lt;/code&gt; and append &lt;code&gt;maemo1&lt;/code&gt; to the version, for example:
 tk8.5 (8.5.8-1) unstable; urgency=low
becomes:
 tk8.5 (8.5.8-1maemo1) fremantle; urgency=low
This indicates that there have been Maemo-specific changes to the packaging. If you upload new changes, you must add a new changelog entry and increment the version number, for example &lt;code&gt;maemo2&lt;/code&gt;).

The &quot;Debian way&quot; is to keep all modifications to the package in the &lt;code&gt;package.version.diff.gz&lt;/code&gt; file and to leave the &lt;code&gt;.orig.tar.gz&lt;/code&gt; file untouched. There are several ways to apply patches with Debian packaging, and some are described in the [http://www.debian.org/doc/maint-guide/ch-build.en.html#s-dpatch patching section of the New Maintainer's Guide]

However, the &lt;code&gt;.diff.gz&lt;/code&gt; cannot store binary files like icons. A possible workaround is to uuencode the binary file, for example (in &lt;code&gt;debian/&lt;/code&gt;):
 uuencode -m icon.png icon.png  &gt; icon.png.b64
and in the rules file decode the file to debian/icon.png before installation
 uudecode debian/icon.png.b64
For this solution you have to add &lt;code&gt;sharutils&lt;/code&gt; to the &lt;code&gt;Build-Depends&lt;/code&gt;.

If the package should be visible in the Application Manager, the Section field should begin with &lt;code&gt;user/&lt;/code&gt;, with the [[Packaging#Sections|valid sections]]. You should also add and install a &lt;code&gt;.desktop&lt;/code&gt; file for starting the application, if one does not already exist.

== Differences between Debian/Ubuntu and Maemo ==

The are a couple of important differences between a Debian system and Maemo:

* '''Busybox''':&lt;br/&gt;Maemo uses busybox to replace most of bsdutils, coreutils, findutils and bash, therefore most of the extended options for the commands and shell are not available. Check the postinstall and other package scripts for such options and try to replace or emulate them.

* Outdated '''build and configuration tools''':&lt;br/&gt;the SDK and autobuilder provide only outdated versions of gcc, dpkg, debhelper, cdbs, debconf, ucf and other build tools. Try to replace the &lt;code&gt;Build-Depends&lt;/code&gt; in the &lt;code&gt;debian/control&lt;/code&gt; file with older versions or use backports like [[Packaging#Debhelper_7|debhelper7]]

* Directories for '''temporary files''':&lt;br/&gt;&lt;code&gt;/tmp&lt;/code&gt; is only 900 kB and should only be used for very small temporary files. &lt;code&gt;/var/tmp&lt;/code&gt; on the NAND is larger. A new temporary directory in &lt;code&gt;/home/user/&lt;/code&gt; could be even larger. Replace constructs like &lt;code&gt;${TMP-/tmp}&lt;/code&gt; in shell scripts with &lt;code&gt;${TMP-/var/tmp}&lt;/code&gt; (the same applies to &lt;code&gt;mktemp -p /tmp&lt;/code&gt;).

* '''Optification''' may confuse programs:&lt;br/&gt;some programs try to find their data files relative to the binary location. Such a program stored in &lt;code&gt;/opt/maemo/usr/bin/program&lt;/code&gt; would search, for instance, in &lt;code&gt;/opt/maemo/usr/share&lt;/code&gt; while the actual data may be in &lt;code&gt;/usr/share&lt;/code&gt;.

* Installation in &lt;code&gt;/opt&lt;/code&gt;:&lt;br/&gt;if you want to perform manual optification (e.g. using &lt;code&gt;configure --prefix=/opt/package&lt;/code&gt;) you should store &quot;none&quot; in &lt;code&gt;debian/optify&lt;/code&gt; and add some to the postinst script which symlinks the binaries and libraries of the package to &lt;code&gt;/usr/bin&lt;/code&gt; and &lt;code&gt;lib&lt;/code&gt;, respectively.

* Documentation:&lt;br/&gt;do not install documentation in &lt;code&gt;/usr/share/doc&lt;/code&gt; or &lt;code&gt;/usr/share/info&lt;/code&gt; - docpurge will remove it. You may install it in the &lt;code&gt;/opt&lt;/code&gt; hierarchy, however.

[[Category:Packaging]]
[[Category:HowTo]]</text>
    </revision>
  </page>
  <page>
    <title>Portrait Mode</title>
    <id>4751</id>
    <revision>
      <id>42023</id>
      <timestamp>2011-02-23T11:31:51Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>[[Portrait Mode]] moved to [[Community SSU/Features/Portrait mode]]</comment>
      <text xml:space="preserve">#REDIRECT [[Community SSU/Features/Portrait mode]]</text>
    </revision>
  </page>
  <page>
    <title>Preenv</title>
    <id>4535</id>
    <revision>
      <id>43458</id>
      <timestamp>2011-05-14T16:08:10Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <comment>/* Links */ Link to Git repository</comment>
      <text xml:space="preserve">Preenv is a set of libraries and stubs that should make running WebOS native applications possible on the [[Nokia N900|N900]].

Note that &quot;native applications&quot; are a small subset of all WebOS applications; most of these are OpenGL games.

[http://maemo.org/packages/view/preenv/ Current Preenv Version 0.1.7]

[http://repository.maemo.org/extras-devel/pool/fremantle-1.3/free/p/preenv/ Older versions may be able to be found here.]

== Links ==

* [[Preenv/Game Compatibility|Game Compatibility]]
* [[Preenv/FAQ |FAQ]]
* [http://talk.maemo.org/showthread.php?t=39809 T.M.O Thread]
* [http://talk.maemo.org/showthread.php?t=64392 T.M.O. Game Compatibility Thread]
* [http://gitorious.org/preenv preenv Git repository on Gitorious]
* [http://www.youtube.com/watch?v=k-zIzA9UjqY Sims3 Video]
* [http://www.youtube.com/watch?v=JD98O0rVev0 Need for Speed Video]
* [http://www.youtube.com/watch?v=PyxQwPr-usU Assassins Creed Video]
* [http://www.youtube.com/watch?v=lTlmziroGZY Asphalt]

== Screenshots ==

[[Image:PreenvSS-1.jpg|frame|left|alt=Screenshot of The Sims 3|The Sims 3]]

[[Image:PreenvSS-2.png|frame|left|alt=Screenshot of Assassin's Creed: Altair's Chronicles|Assassin's Creed: Altair's Chronicles]]

[[Image:PreenvSS-3.jpg|frame|left|alt=Screenshot of Brothers in Arms|Brothers in Arms]]

[[Image:PreenvSS-4.jpg|frame|left|alt=Screenshot of Asphalt 5|Asphalt 5]]

[[Image:PreenvSS-5.jpg|frame|left|alt=Screenshot of The Settlers|The Settlers]]


[[Category:Software]]
[[Category:Games]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Preenv/FAQ</title>
    <id>4537</id>
    <revision>
      <id>50032</id>
      <timestamp>2012-10-01T11:24:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Preenv/FAQ]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">==How to install Preenv?==

Gain [[root access]] and use &lt;code&gt;apt-get&lt;/code&gt; in the [[terminal]]:
 $ root
 # apt-get install preenv
 # exit

== What do I use to extract an ipk file ==

An .ipk file can be extracted with [http://7-zip.org 7-zip] or any tool that is able to extract Debian packages (dpkg, file-roller, etc)


Here is a video guide on how to install WebOS games on the N900: http://www.youtube.com/watch?v=pGQwWZ_VriA

Or you can follow the steps below...

==How to install a game==

You will need '''FileBox''' and '''rootsh''' from the [[Extras]] repository.

*Use 7-zip to extract the game-folder from the .ipk file.

*Copy the game-folder to &lt;code&gt;/home/user/[webOS-games]&lt;/code&gt;

 $ sudo gainroot
 # preenv
 # cd game-folder
 # chmod +rwx filename

where, &lt;code&gt;filename&lt;/code&gt; = &lt;code&gt;nfsuc&lt;/code&gt; in case of Need for Speed or &lt;code&gt;sims&lt;/code&gt; in case of Sims3.

*You also need to change file ownership and group of the game-folder using the command:

 # chown -R user:users game-folder

Taking Hero Of Sparta as an example, 

 # chown -R user:users /home/user/webOS/com.gameloft.app.heroofsparta/HeroOfSparta

'''NOTE:''' If your game was installed via a .deb file then you shall find it in 
 /home/opt/preenv/usr/palm/applications/com.gameloft.app.heroofsparta/HeroOfSparta

Changing the file ownership is vital for allowing the execution of any game.

*Launch the game

 $ preenv
 $ ./filename

*Once you know that the game runs properly, you can add a menu icon
 $ sudo gainroot
 $ preenv
 # desktopgen game-folder/appinfo.json
 # exit
 # exit

==How to delete a game==

*Run preenv and &lt;code&gt;cd&lt;/code&gt; to the game-folder
 $ preenv
 $ cd game-folder

*Become root and use desktopgen to delete the menu entry
 $ sudo gainroot
 # preenv
 # desktopgen -r appinfo.json
 # exit
 # exit
*Now you can delete the game folder itself
 $ cd ..
 $ rm -r game-folder

=== Deleting games installed with old preenv 0.1 ===

*Become root and delete the folder
 $ sudo gainroot
 # rm -r game-folder

*To remove the menu icon, you need to delete three files
 # rm /usr/share/applications/hildon/filename.desktop
 # rm /usr/share/dbus-1/services/filename.service
 # rm /usr/share/icons/hicolor/scalable/hildon/filename.png

*Or try this (if you used nfsuc installer before) :
 $ rm -rf /home/user/NFS*
 $ rm -rf /home/user/MyDocs/NFS*
 $ rm /home/user/.local/share/applications/hildon/filename.desktop
 $ rm /home/user/.local/share/icons/hicolor/scalable/hildon/filename.png

*Refresh your menu
 $ killall hildon-desktop

== How to get a specific game working ==

=== N.O.V.A === 
  
*You need to install a few extra packages first, and then you can follow the regular install guide.   

 $ sudo gainroot   
 # apt-get update   
 # apt-get install libsdl-net1.2 

=== Monopoly ===

*After installing and creating an icon, perform the following step:

 $ cd *monopoly
 $ sudo gainroot
 # chmod -R 777 monopolyclassic/save

=== Asphalt5 ===
*Here is another video guide http://www.youtube.com/watch?v=8rDCbZ3gyYE

How to make it run:

 $ mkdir -p /home/user/webos/gamesave 
 $ ln -s /home/user/webos/gamesave /media/internal
 $ chown -R user:root /home/user/webos/
 $ chmod -R 755 /home/user/webos/
 $ chown -R user:root /home/user/webos/gamesave
 $ chmod -R 755 /home/user/webos/gamesave

*if using preenv 0.1.7, you also need to install libvorbisidec1 in the case of music problems:
 $ root
 # apt-get install libvorbisidec1

=== NFSU ===
'''Easy way:''' 

*Install [http://maemo.org/packages/view/nfsu-installer/ nfsu-installer] from extras-devel via Application Manager and run it. See the [http://www.youtube.com/watch?v=-f-a-7yakkM youtube video] on how it works.

'''Manual way:''' 

*Get root privileges:
 root
*Install preenv and OpenGLES1 (you need to enable [[extras-devel]]):
 apt-get install libgles1 preenv
*Create main game dirECTORY on eMMC card:
 mkdir -p /home/user/MyDocs/Games/nfs
*Go to that directory and copy dowloaded .ipk file from your desktop (or download here directly) :
 cd /home/user/MyDocs/Games/nfs
 scp user@COMPUTER:/path/to/game/com.ea.app.nfsuc_20.0.28_all.ipk /home/user/MyDocs/Games/nfs
*Create file for loopback mount:
 dd if=/dev/zero of=/home/user/MyDocs/Games/nfs/nfsu.ext2 count=120 bs=1024k
*Create ext2 filesystem on it
 mkfs.ext2 /home/user/MyDocs/Games/nfs/nfsu.ext2
*Press 'y'&lt;br&gt;
*Make a mount-point:
 mkdir /mnt/nfsu
*Save it to the /etc/fstab :
 echo -e &quot;/home/user/MyDocs/Games/nfs/nfsu.ext2\t/mnt/nfsu\text2\tloop,auto\t0\t0&quot; &gt;&gt; /etc/fstab 
*Finally, mount it:
 mount  /mnt/nfsu/
*Create symlink from /usr/palm (NFSU installs there) to the mount-point:
 ln -s /mnt/nfsu/ /usr/palm
*Extract the .ipk file:
 dpkg -X /home/user/MyDocs/Games/nfs/com.ea.app.nfsuc_20.0.28_all.ipk /mnt/nfsu/
*Make binary executable:
 chmod +x /mnt/nfsu/applications/com.ea.app.nfsuc/nfsuc
*Create desktop launcher:
 desktopgen /mnt/nfsu/applications/com.ea.app.nfsuc/appinfo.json

==== Unable to connect to USB after above method? ====

After following the above tutorial, if you are unable to access your N900 on your PC via USB Mass Storage mode, open xterm on your device:

*Get root privileges:
 root

*Unmount the image file:
 umount /mnt/nfsu

*Once you're done with USB you can remount the image:
 mount /mnt/nfsu

[[Category:Software]]

=== Driver ===
'''Install libgles'''
* Get root privileges
 root
* Install OpenGLES1 and OpenGLES2 (needs [[extras-devel]])
 apt-get install libgles1 libgles2

'''Fix corrupt/black screen problem'''
* Create the file &lt;code&gt;/etc/powervr.d/driver.ini&lt;/code&gt; containing these two lines:

 [default]
 ForceExternalZBuffer=0

If the two lines above does not fix the corrupt/black screen problem, add ONE extra BLANK line (so a total of three lines) and try again.

=== Shrek Karting ===
'''Install libgles1'''
* Get root privileges
 root
* Install OpenGLES1 and OpenGLES2 (needs extras-devel)
 apt-get install libgles1 libgles2

'''Improve corrupted/black graphics problem'''
* Create the file &lt;code&gt;/etc/powervr.d/ShrekKarting.ini&lt;/code&gt; containing these two lines:

 [default]
 ForceExternalZBuffer=0

If the two lines above does not fix the corrupt/black screen problem, add TWO extra BLANK lines (so a total of four lines) and try again.

Graphics is still not perfect - lighting textures are still not good.

=== Galcon , Cronk , Cosmic Nitro ===
*First download the external libsdlpre.so and replace it with your own's:
 $ sudo gainroot
 # mv libsdlpre.so /opt/preenv/lib/libsdlpre.so
*Then rotate the screen to 0 by typing the following command in X-Terminal):
 $ gconftool-2 --set --type int /apps/preenv/Galcon/screen_rotation 0
Replace your &quot;Galcon&quot; exe name for other games.(i.e:&quot;application&quot; for cronk and &quot;cosmicnitro&quot; for Cosmic Nitro game.) 

=== Settlers ===
*If using preenv 0.1.7, in order to get the music working you need to install libvorbisidec1:
 # apt-get install libvorbisidec1
'''Hint:''' Though N900 has resistive display and the game requires you to select a group of workers with multi touch, you can double tap workaround to select groups of workers instead.
==== If you have encountered the &quot;asking for device id&quot; issue ====
*Download the file [http://talk.maemo.org/attachment.php?attachmentid=21001&amp;d=1308911019 texture10.bar] and copy the file to the settlers folder.
*Remove the texture11.bar
=== H.A.W.X , Castle of Magic ===
*Create the cryptofs folder and symlink it to your installation directory:
 # mkdir -p /media/cryptofs/apps/usr/palm/applications
 # ln -s /(Installation path)/com.gameloft.app.hawx / /media/cryptofs/apps/usr/palm/applications/
*For Castle of Magic, replace the H.A.W.X folder name with Castle of Magic's(i.e:com.gameloft.app.castleofmagic)

==== H.A.W.X only ====
If you get a crash while trying to start a mission, delete H.A.W.X and follow the instructions here: [http://talk.maemo.org/showthread.php?t=81033]

=== Angry Birds Rio ===
If the game crashes, perform the following step:
 $ cd (Angry Birds Rio folder(the folder with settings.lua))
 $ sudo gainroot
 # chmod 777 settings.lua

=== Angry Birds Seasons HD ===
If the game  error while loading shared libraries: libSDL.so: cannot open shared object file: No such file or directory
 # sudo gainroot
 # cd /home/opt/preenv/lib
 # ln libSDL_mixer-1.2.so.0.10.1 libSDL.so

=== Avatar ===

'''Improve corrupted/black graphics problem'''
* Create the file &lt;code&gt;/etc/powervr.d/Avatar.ini&lt;/code&gt; containing these two lines:

 [default]
 ForceExternalZBuffer=0

If the two lines above does not fix the corrupt/black screen problem, add TWO extra BLANK lines (so a total of four lines) and try again.

==== If using preenv 0.1.5 or earlier ====
*Create an empty file named libavcodec.so.52 in preenv/lib
*Example command:
 # cd /opt/preenv/lib
 # ln -s libstub.so libavcodec.so.52

=== Real Soccer 2010 ===
If the game crashes at start, type the following command:
 sudo gainroot
 # cd (game folder)
 # chown -R user:users RealSoccer2010/*
 # chmod 777 RealSoccer2010/*

=== Plasma Cannon === 
Remove assets/music.mp3 (or fix bad ID3 tag)

== A note for games with bad touch screen behavior(Or bad scaling) ==
*Although these games are listed as &quot;Unplayable&quot; in the compatibility list, you can get them to work by rotating the screen to 0 and resizing them(External libsdlpre.so is required); however, these games will not work perfectly after the changes are made
*Changes that should be made are:
 $ gconftool-2 --set --type int /apps/preenv/(exe name)/screen_rotation 0
 $ gconftool-2 --set --type int /apps/preenv/(exe name)/screen_width 320

== Is there a way to get multitouch working in Preenv(a.k.a Keyboard mapping) ==
Currently there is [http://members.cox.net/jflatt/libsdlpre.so an unofficial modifiable patch] for preenv 0.1.4 that is using the keyboard as the second touch.It needs to be configured properly for each game to get the QWERTY keyboard to work.There is a [http://members.cox.net/jflatt/earthwormjim.ods tutorial] for it.
*To get the patch working,download the patch to your device and type in X-terminal(Assuming that your patch is allocated in MyDocs):
 cd MyDocs
 sudo gainroot
 /home/user/MyDocs # mv libsdlpre.so /opt/preenv/lib/libsdlpre.so 
There are also some unofficial Mods that makes the configuration easier:
[http://n900.darktl.com/downloads/gconf_set_avatar.sh Avatar]

Download all configuration files from [http://www.mediafire.com/?h7vvck3lrccf1 Here] or [http://talk.maemo.org/showthread.php?t=69263 Here] (also includes PS3 Controller and Game Gripper) 

*To get the mods working to, you need to type the following commands in the X-terminal(Assuming that the file is allocated in the MyDocs):
 $ mv /home/user/MyDocs/(Modname).sh (Modname).sh 
 $ chmod +x (Modname).sh
 $ ./(Modname).sh

== Save space (Transfer games to MyDocs folder) ==

If you are running out of space in the &lt;code&gt;/home/user/&lt;/code&gt; directory, you can move part of the game, which usually takes up the most space, to &lt;code&gt;/home/user/MyDocs&lt;/code&gt;.

''NOTE'': You still need the game folders to be in the &lt;code&gt;/home/user/[webos]&lt;/code&gt; directory; only some of the files are transferred to  &lt;code&gt;MyDocs&lt;/code&gt;.

'''Example using NFSU:'''

This example assumes NFSU does not exist in &lt;code&gt;/home/user/[webos]&lt;/code&gt;. 

*Open xterm and create a folder in  &lt;code&gt;MyDocs&lt;/code&gt;:
 mkdir /home/user/MyDocs/preenv
 mkdir /home/user/MyDocs/preenv/nfsu

*Create NFSU folder in &lt;code&gt;/home/user/[webos]&lt;/code&gt;:
 mkdir /home/user/[webos]/com.ea.app.nfsuc

*Copy '''''only''''' the files indicated as below from the NFSU source (location where ipk file has been extracted) to &lt;code&gt;/home/user/[webos]&lt;/code&gt;
 cp [SOURCE]/com.ea.app.nfsuc/appinfo.json /home/user/[webos]/com.ea.app.nfsuc/
 cp [SOURCE]/com.ea.app.nfsuc/nfsuc /home/user/[webos]/com.ea.app.nfsuc/

*Copy res_nfsuc folder from NFSU to &lt;code&gt;MyDocs&lt;/code&gt;:
 cp -r [SOURCE]/com.ea.app.nfsuc/res_nfsuc /home/user/MyDocs/preenv/nfsu/

*Now create a symbolic link  &lt;code&gt;res_nfsuc&lt;/code&gt; in the [webos] nfsuc folder that points to the actual  &lt;code&gt;res_nfsuc&lt;/code&gt; folder in the &lt;code&gt;MyDocs&lt;/code&gt; folder:
 ln -s /home/user/MyDocs/preenv/nfsu/res_nfsuc /home/user/[webos]/com.ea.app.nfsuc/res_nfsuc

*Don't forget to change the permission of the executable nfsu file in [webos]:
 sudo gainroot
 chmod +rwx /home/user/[webos]/com.ea.app.nfsuc/res_nfsuc/nfsuc
 exit

*Now you should still be able to play NFSU, having saved roughly 110MB on &lt;code&gt;/home/user/[webos]&lt;/code&gt;.

'''Example using BrainChallenge'''

The example assumes BrainChallenge does not exist in &lt;code&gt;/home/user/[webos]&lt;/code&gt;. 

*Open xterm and create a folder in &lt;code&gt;MyDocs&lt;/code&gt;:
 mkdir /home/user/MyDocs/preenv
 mkdir /home/user/MyDocs/preenv/brainchallenge

*Create BrainChallenge folder in &lt;code&gt;/home/user/[webos]&lt;/code&gt;:
 mkdir /home/user/[webos]/com.gameloft.app.brainchallenge

*Copy ''only'' the files indicated as below from the BrainChallenge source (location where ipk file has been extracted) to &lt;code&gt;/home/user/[webos]&lt;/code&gt;
 cp [SOURCE]/com.gameloft.app.brainchallenge/appinfo.json /home/user/[webos]/com.gameloft.app.brainchallenge/
 cp [SOURCE]/com.gameloft.app.brainchallenge/icon.png /home/user/[webos]/com.gameloft.app.brainchallenge/

*Copy files from the brainchallenge folder from BrainChallenge source to &lt;code&gt;MyDocs&lt;/code&gt;:
 cp [SOURCE]/com.gameloft.app.brainchallenge/brainchallenge/*.* /home/user/MyDocs/preenv/brainchallenge/

*Also copy any subdirectories in the brainchallenge folder to &lt;code&gt;MyDocs&lt;/code&gt;:
 cp -r [SOURCE]/com.gameloft.app.brainchallenge/brainchallenge/sounds /home/user/MyDocs/preenv/brainchallenge/

*Copy the following code and save it to a file with the name 'createln.sh'. ''NOTE'': Do not save this file using Windows Notepad; if using Windows, use software like TextPad to save the file in unix format.  Copy this file to any folder on your N900.

 #!/bin/sh
 
 cd $1
 files=&quot;`ls -1 $1`&quot;
 
 for file in $files
 do
     echo $file
     ln -s $1/$file $2/$file
 done

*Create folder brainchallenge in [webos] brainchallenge folder:
 mkdir /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge

*Copy the brainchallenge executable file from Brainchallenge source location to the [webos] folder:
 cp [source]/com.gameloft.app.brainchallenge/brainchallenge/brainchallenge /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge/

*Now create symbolic links in the [webos] brainchallenge folder that point to the actual files in the brainchallenge folder located in &lt;code&gt;MyDocs&lt;/code&gt; (using ''createln''):
 sh [..]/createln /home/user/MyDocs/preenv/brainchallenge/brainchallenge/ /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge

*Also create symbolic links to any folders inside the brainchallenge folder in &lt;code&gt;MyDocs&lt;/code&gt;:
 ln -s /home/user/MyDocs/preenv/brainchallenge/brainchallenge/sounds /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge/sounds

*Don't forget to change the permission of the executable brainchallege file in [webos]:
 sudo gainroot
 chmod +rwx /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge/brainchallenge
 exit

*Now you should still be able to play BrainChallenge, having saved roughly 114MB on &lt;code&gt;/home/user/&lt;/code&gt;.

This method has been confirmed to work with '''Asphalt 5, Blades of Fury, Oregon Trail''' and '''X-Plane Airliner''' also.

== Save space (Transfer games to MyDocs folder) NOOB Version 1.0 ==
Use this method if previous method is too tricky as it was for me.
You will need '''FileBox''', '''Rootsh''', and '''a basic understanding of X Terminal'''

'''Step 1:''' Locate your game folders. There are two possible locations:

Either at &lt;code&gt;/home/user/&lt;/code&gt; or &lt;code&gt;/home/opt/preenv/usr/palm/applications&lt;/code&gt;

'''Step 2:''' Once found you need to distinguish which files are the largest and would be wise to move to save space. I suggest moving sound folders, music folders, and videos folders. Leave save files and executable files as it is. 

'''NB:''' Save folders usually are named &quot;save&quot; and are usually small in size (kb/b)
To locate executable files for games use this command:

Using '''Hero Of Sparta''' as an example:
 cd /home/user/webOS/com.gameloft.app.heroofsparta
 grep main appinfo.json

This will give you the result:
 &quot;main&quot; : &quot;HeroOfSparta/HeroOfSparta&quot;
So you know not to move this file.
   
'''Step 3:''' Time to move! 
*Using FileBox's &quot;Create New Folder&quot; feature {found after you tap the wrench icon} go to &lt;code&gt;MyDocs&lt;/code&gt; and make a folder their called &lt;code&gt;WebOSGames&lt;/code&gt;.
 
*Now using the '''copy''' feature {which is accessed when a specific folder is &quot;pressed&quot; for about 2seconds, a menu pops up giving options such as copy, etc}, copy the folders and files desired from the game folder to the '''&lt;code&gt;WebOSGames&lt;/code&gt;''' folder in '''&lt;code&gt;MyDocs&lt;/code&gt;''' 
'''DELETE''' the originals from the game folder.

'''Step 4:''' Time to create some symlinks! 
Open up X Terminal and get rooted. 
TIP: Have '''FileManager''' open in the &lt;code&gt;WebOSGames&lt;/code&gt; folder to see what files and folders you need to link.

The command to create symlinks is:
 ln -s ''{source} {link}''

Using NFSUC as an example:
 ln -s /home/user/MyDocs/WebOSGames/res_nfsuc /home/user/webOS/com.ea.app.nfsuc/res_nfsuc

This will create a link from the NFSUC game folder to the folder containing the res_nfsuc folder

Now your game will still run and you have lots of space to add more games.

'''TIP:''' You can also delete videos from game folders that are not necessary or that do not play. Asphalt 5 has videos not necessary for the game to run so they can be '''DELETED.'''

For some games you will need to create symlinks for multiple folders e.g. Driver and N.O.V.A. this is why I suggest having a separate filemanager open such as the one that comes with the N900, so that you can see which file/folder you have to link next.

Enjoy :)
== References ==
*1. Asphalt fix TMO post [http://talk.maemo.org/showpost.php?p=852796&amp;postcount=54 #1], [http://talk.maemo.org/showpost.php?p=854747&amp;postcount=131 #2]
*2. Avatar fix TMO post [http://talk.maemo.org/showpost.php?p=924677&amp;postcount=1214 #1], [http://talk.maemo.org/showpost.php?p=921025&amp;postcount=1049 #2]
*3. H.A.W.X fix TMO post [http://talk.maemo.org/showpost.php?p=859289&amp;postcount=336 #1], [http://talk.maemo.org/showpost.php?p=859893&amp;postcount=366 #2]
*4. Diver fix TMO [http://talk.maemo.org/showpost.php?p=862561&amp;postcount=455 post]
== External links ==
[http://members.cox.net/jflatt/libsdlpre.so External libsdlpre.so download]

[http://maemo.org/packages/view/wgames/ WebOS game manager package link]</text>
    </revision>
  </page>
  <page>
    <title>Preenv/FAQ</title>
    <id>4537</id>
    <revision>
      <id>50032</id>
      <timestamp>2012-10-01T11:24:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Preenv/FAQ]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">==How to install Preenv?==

Gain [[root access]] and use &lt;code&gt;apt-get&lt;/code&gt; in the [[terminal]]:
 $ root
 # apt-get install preenv
 # exit

== What do I use to extract an ipk file ==

An .ipk file can be extracted with [http://7-zip.org 7-zip] or any tool that is able to extract Debian packages (dpkg, file-roller, etc)


Here is a video guide on how to install WebOS games on the N900: http://www.youtube.com/watch?v=pGQwWZ_VriA

Or you can follow the steps below...

==How to install a game==

You will need '''FileBox''' and '''rootsh''' from the [[Extras]] repository.

*Use 7-zip to extract the game-folder from the .ipk file.

*Copy the game-folder to &lt;code&gt;/home/user/[webOS-games]&lt;/code&gt;

 $ sudo gainroot
 # preenv
 # cd game-folder
 # chmod +rwx filename

where, &lt;code&gt;filename&lt;/code&gt; = &lt;code&gt;nfsuc&lt;/code&gt; in case of Need for Speed or &lt;code&gt;sims&lt;/code&gt; in case of Sims3.

*You also need to change file ownership and group of the game-folder using the command:

 # chown -R user:users game-folder

Taking Hero Of Sparta as an example, 

 # chown -R user:users /home/user/webOS/com.gameloft.app.heroofsparta/HeroOfSparta

'''NOTE:''' If your game was installed via a .deb file then you shall find it in 
 /home/opt/preenv/usr/palm/applications/com.gameloft.app.heroofsparta/HeroOfSparta

Changing the file ownership is vital for allowing the execution of any game.

*Launch the game

 $ preenv
 $ ./filename

*Once you know that the game runs properly, you can add a menu icon
 $ sudo gainroot
 $ preenv
 # desktopgen game-folder/appinfo.json
 # exit
 # exit

==How to delete a game==

*Run preenv and &lt;code&gt;cd&lt;/code&gt; to the game-folder
 $ preenv
 $ cd game-folder

*Become root and use desktopgen to delete the menu entry
 $ sudo gainroot
 # preenv
 # desktopgen -r appinfo.json
 # exit
 # exit
*Now you can delete the game folder itself
 $ cd ..
 $ rm -r game-folder

=== Deleting games installed with old preenv 0.1 ===

*Become root and delete the folder
 $ sudo gainroot
 # rm -r game-folder

*To remove the menu icon, you need to delete three files
 # rm /usr/share/applications/hildon/filename.desktop
 # rm /usr/share/dbus-1/services/filename.service
 # rm /usr/share/icons/hicolor/scalable/hildon/filename.png

*Or try this (if you used nfsuc installer before) :
 $ rm -rf /home/user/NFS*
 $ rm -rf /home/user/MyDocs/NFS*
 $ rm /home/user/.local/share/applications/hildon/filename.desktop
 $ rm /home/user/.local/share/icons/hicolor/scalable/hildon/filename.png

*Refresh your menu
 $ killall hildon-desktop

== How to get a specific game working ==

=== N.O.V.A === 
  
*You need to install a few extra packages first, and then you can follow the regular install guide.   

 $ sudo gainroot   
 # apt-get update   
 # apt-get install libsdl-net1.2 

=== Monopoly ===

*After installing and creating an icon, perform the following step:

 $ cd *monopoly
 $ sudo gainroot
 # chmod -R 777 monopolyclassic/save

=== Asphalt5 ===
*Here is another video guide http://www.youtube.com/watch?v=8rDCbZ3gyYE

How to make it run:

 $ mkdir -p /home/user/webos/gamesave 
 $ ln -s /home/user/webos/gamesave /media/internal
 $ chown -R user:root /home/user/webos/
 $ chmod -R 755 /home/user/webos/
 $ chown -R user:root /home/user/webos/gamesave
 $ chmod -R 755 /home/user/webos/gamesave

*if using preenv 0.1.7, you also need to install libvorbisidec1 in the case of music problems:
 $ root
 # apt-get install libvorbisidec1

=== NFSU ===
'''Easy way:''' 

*Install [http://maemo.org/packages/view/nfsu-installer/ nfsu-installer] from extras-devel via Application Manager and run it. See the [http://www.youtube.com/watch?v=-f-a-7yakkM youtube video] on how it works.

'''Manual way:''' 

*Get root privileges:
 root
*Install preenv and OpenGLES1 (you need to enable [[extras-devel]]):
 apt-get install libgles1 preenv
*Create main game dirECTORY on eMMC card:
 mkdir -p /home/user/MyDocs/Games/nfs
*Go to that directory and copy dowloaded .ipk file from your desktop (or download here directly) :
 cd /home/user/MyDocs/Games/nfs
 scp user@COMPUTER:/path/to/game/com.ea.app.nfsuc_20.0.28_all.ipk /home/user/MyDocs/Games/nfs
*Create file for loopback mount:
 dd if=/dev/zero of=/home/user/MyDocs/Games/nfs/nfsu.ext2 count=120 bs=1024k
*Create ext2 filesystem on it
 mkfs.ext2 /home/user/MyDocs/Games/nfs/nfsu.ext2
*Press 'y'&lt;br&gt;
*Make a mount-point:
 mkdir /mnt/nfsu
*Save it to the /etc/fstab :
 echo -e &quot;/home/user/MyDocs/Games/nfs/nfsu.ext2\t/mnt/nfsu\text2\tloop,auto\t0\t0&quot; &gt;&gt; /etc/fstab 
*Finally, mount it:
 mount  /mnt/nfsu/
*Create symlink from /usr/palm (NFSU installs there) to the mount-point:
 ln -s /mnt/nfsu/ /usr/palm
*Extract the .ipk file:
 dpkg -X /home/user/MyDocs/Games/nfs/com.ea.app.nfsuc_20.0.28_all.ipk /mnt/nfsu/
*Make binary executable:
 chmod +x /mnt/nfsu/applications/com.ea.app.nfsuc/nfsuc
*Create desktop launcher:
 desktopgen /mnt/nfsu/applications/com.ea.app.nfsuc/appinfo.json

==== Unable to connect to USB after above method? ====

After following the above tutorial, if you are unable to access your N900 on your PC via USB Mass Storage mode, open xterm on your device:

*Get root privileges:
 root

*Unmount the image file:
 umount /mnt/nfsu

*Once you're done with USB you can remount the image:
 mount /mnt/nfsu

[[Category:Software]]

=== Driver ===
'''Install libgles'''
* Get root privileges
 root
* Install OpenGLES1 and OpenGLES2 (needs [[extras-devel]])
 apt-get install libgles1 libgles2

'''Fix corrupt/black screen problem'''
* Create the file &lt;code&gt;/etc/powervr.d/driver.ini&lt;/code&gt; containing these two lines:

 [default]
 ForceExternalZBuffer=0

If the two lines above does not fix the corrupt/black screen problem, add ONE extra BLANK line (so a total of three lines) and try again.

=== Shrek Karting ===
'''Install libgles1'''
* Get root privileges
 root
* Install OpenGLES1 and OpenGLES2 (needs extras-devel)
 apt-get install libgles1 libgles2

'''Improve corrupted/black graphics problem'''
* Create the file &lt;code&gt;/etc/powervr.d/ShrekKarting.ini&lt;/code&gt; containing these two lines:

 [default]
 ForceExternalZBuffer=0

If the two lines above does not fix the corrupt/black screen problem, add TWO extra BLANK lines (so a total of four lines) and try again.

Graphics is still not perfect - lighting textures are still not good.

=== Galcon , Cronk , Cosmic Nitro ===
*First download the external libsdlpre.so and replace it with your own's:
 $ sudo gainroot
 # mv libsdlpre.so /opt/preenv/lib/libsdlpre.so
*Then rotate the screen to 0 by typing the following command in X-Terminal):
 $ gconftool-2 --set --type int /apps/preenv/Galcon/screen_rotation 0
Replace your &quot;Galcon&quot; exe name for other games.(i.e:&quot;application&quot; for cronk and &quot;cosmicnitro&quot; for Cosmic Nitro game.) 

=== Settlers ===
*If using preenv 0.1.7, in order to get the music working you need to install libvorbisidec1:
 # apt-get install libvorbisidec1
'''Hint:''' Though N900 has resistive display and the game requires you to select a group of workers with multi touch, you can double tap workaround to select groups of workers instead.
==== If you have encountered the &quot;asking for device id&quot; issue ====
*Download the file [http://talk.maemo.org/attachment.php?attachmentid=21001&amp;d=1308911019 texture10.bar] and copy the file to the settlers folder.
*Remove the texture11.bar
=== H.A.W.X , Castle of Magic ===
*Create the cryptofs folder and symlink it to your installation directory:
 # mkdir -p /media/cryptofs/apps/usr/palm/applications
 # ln -s /(Installation path)/com.gameloft.app.hawx / /media/cryptofs/apps/usr/palm/applications/
*For Castle of Magic, replace the H.A.W.X folder name with Castle of Magic's(i.e:com.gameloft.app.castleofmagic)

==== H.A.W.X only ====
If you get a crash while trying to start a mission, delete H.A.W.X and follow the instructions here: [http://talk.maemo.org/showthread.php?t=81033]

=== Angry Birds Rio ===
If the game crashes, perform the following step:
 $ cd (Angry Birds Rio folder(the folder with settings.lua))
 $ sudo gainroot
 # chmod 777 settings.lua

=== Angry Birds Seasons HD ===
If the game  error while loading shared libraries: libSDL.so: cannot open shared object file: No such file or directory
 # sudo gainroot
 # cd /home/opt/preenv/lib
 # ln libSDL_mixer-1.2.so.0.10.1 libSDL.so

=== Avatar ===

'''Improve corrupted/black graphics problem'''
* Create the file &lt;code&gt;/etc/powervr.d/Avatar.ini&lt;/code&gt; containing these two lines:

 [default]
 ForceExternalZBuffer=0

If the two lines above does not fix the corrupt/black screen problem, add TWO extra BLANK lines (so a total of four lines) and try again.

==== If using preenv 0.1.5 or earlier ====
*Create an empty file named libavcodec.so.52 in preenv/lib
*Example command:
 # cd /opt/preenv/lib
 # ln -s libstub.so libavcodec.so.52

=== Real Soccer 2010 ===
If the game crashes at start, type the following command:
 sudo gainroot
 # cd (game folder)
 # chown -R user:users RealSoccer2010/*
 # chmod 777 RealSoccer2010/*

=== Plasma Cannon === 
Remove assets/music.mp3 (or fix bad ID3 tag)

== A note for games with bad touch screen behavior(Or bad scaling) ==
*Although these games are listed as &quot;Unplayable&quot; in the compatibility list, you can get them to work by rotating the screen to 0 and resizing them(External libsdlpre.so is required); however, these games will not work perfectly after the changes are made
*Changes that should be made are:
 $ gconftool-2 --set --type int /apps/preenv/(exe name)/screen_rotation 0
 $ gconftool-2 --set --type int /apps/preenv/(exe name)/screen_width 320

== Is there a way to get multitouch working in Preenv(a.k.a Keyboard mapping) ==
Currently there is [http://members.cox.net/jflatt/libsdlpre.so an unofficial modifiable patch] for preenv 0.1.4 that is using the keyboard as the second touch.It needs to be configured properly for each game to get the QWERTY keyboard to work.There is a [http://members.cox.net/jflatt/earthwormjim.ods tutorial] for it.
*To get the patch working,download the patch to your device and type in X-terminal(Assuming that your patch is allocated in MyDocs):
 cd MyDocs
 sudo gainroot
 /home/user/MyDocs # mv libsdlpre.so /opt/preenv/lib/libsdlpre.so 
There are also some unofficial Mods that makes the configuration easier:
[http://n900.darktl.com/downloads/gconf_set_avatar.sh Avatar]

Download all configuration files from [http://www.mediafire.com/?h7vvck3lrccf1 Here] or [http://talk.maemo.org/showthread.php?t=69263 Here] (also includes PS3 Controller and Game Gripper) 

*To get the mods working to, you need to type the following commands in the X-terminal(Assuming that the file is allocated in the MyDocs):
 $ mv /home/user/MyDocs/(Modname).sh (Modname).sh 
 $ chmod +x (Modname).sh
 $ ./(Modname).sh

== Save space (Transfer games to MyDocs folder) ==

If you are running out of space in the &lt;code&gt;/home/user/&lt;/code&gt; directory, you can move part of the game, which usually takes up the most space, to &lt;code&gt;/home/user/MyDocs&lt;/code&gt;.

''NOTE'': You still need the game folders to be in the &lt;code&gt;/home/user/[webos]&lt;/code&gt; directory; only some of the files are transferred to  &lt;code&gt;MyDocs&lt;/code&gt;.

'''Example using NFSU:'''

This example assumes NFSU does not exist in &lt;code&gt;/home/user/[webos]&lt;/code&gt;. 

*Open xterm and create a folder in  &lt;code&gt;MyDocs&lt;/code&gt;:
 mkdir /home/user/MyDocs/preenv
 mkdir /home/user/MyDocs/preenv/nfsu

*Create NFSU folder in &lt;code&gt;/home/user/[webos]&lt;/code&gt;:
 mkdir /home/user/[webos]/com.ea.app.nfsuc

*Copy '''''only''''' the files indicated as below from the NFSU source (location where ipk file has been extracted) to &lt;code&gt;/home/user/[webos]&lt;/code&gt;
 cp [SOURCE]/com.ea.app.nfsuc/appinfo.json /home/user/[webos]/com.ea.app.nfsuc/
 cp [SOURCE]/com.ea.app.nfsuc/nfsuc /home/user/[webos]/com.ea.app.nfsuc/

*Copy res_nfsuc folder from NFSU to &lt;code&gt;MyDocs&lt;/code&gt;:
 cp -r [SOURCE]/com.ea.app.nfsuc/res_nfsuc /home/user/MyDocs/preenv/nfsu/

*Now create a symbolic link  &lt;code&gt;res_nfsuc&lt;/code&gt; in the [webos] nfsuc folder that points to the actual  &lt;code&gt;res_nfsuc&lt;/code&gt; folder in the &lt;code&gt;MyDocs&lt;/code&gt; folder:
 ln -s /home/user/MyDocs/preenv/nfsu/res_nfsuc /home/user/[webos]/com.ea.app.nfsuc/res_nfsuc

*Don't forget to change the permission of the executable nfsu file in [webos]:
 sudo gainroot
 chmod +rwx /home/user/[webos]/com.ea.app.nfsuc/res_nfsuc/nfsuc
 exit

*Now you should still be able to play NFSU, having saved roughly 110MB on &lt;code&gt;/home/user/[webos]&lt;/code&gt;.

'''Example using BrainChallenge'''

The example assumes BrainChallenge does not exist in &lt;code&gt;/home/user/[webos]&lt;/code&gt;. 

*Open xterm and create a folder in &lt;code&gt;MyDocs&lt;/code&gt;:
 mkdir /home/user/MyDocs/preenv
 mkdir /home/user/MyDocs/preenv/brainchallenge

*Create BrainChallenge folder in &lt;code&gt;/home/user/[webos]&lt;/code&gt;:
 mkdir /home/user/[webos]/com.gameloft.app.brainchallenge

*Copy ''only'' the files indicated as below from the BrainChallenge source (location where ipk file has been extracted) to &lt;code&gt;/home/user/[webos]&lt;/code&gt;
 cp [SOURCE]/com.gameloft.app.brainchallenge/appinfo.json /home/user/[webos]/com.gameloft.app.brainchallenge/
 cp [SOURCE]/com.gameloft.app.brainchallenge/icon.png /home/user/[webos]/com.gameloft.app.brainchallenge/

*Copy files from the brainchallenge folder from BrainChallenge source to &lt;code&gt;MyDocs&lt;/code&gt;:
 cp [SOURCE]/com.gameloft.app.brainchallenge/brainchallenge/*.* /home/user/MyDocs/preenv/brainchallenge/

*Also copy any subdirectories in the brainchallenge folder to &lt;code&gt;MyDocs&lt;/code&gt;:
 cp -r [SOURCE]/com.gameloft.app.brainchallenge/brainchallenge/sounds /home/user/MyDocs/preenv/brainchallenge/

*Copy the following code and save it to a file with the name 'createln.sh'. ''NOTE'': Do not save this file using Windows Notepad; if using Windows, use software like TextPad to save the file in unix format.  Copy this file to any folder on your N900.

 #!/bin/sh
 
 cd $1
 files=&quot;`ls -1 $1`&quot;
 
 for file in $files
 do
     echo $file
     ln -s $1/$file $2/$file
 done

*Create folder brainchallenge in [webos] brainchallenge folder:
 mkdir /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge

*Copy the brainchallenge executable file from Brainchallenge source location to the [webos] folder:
 cp [source]/com.gameloft.app.brainchallenge/brainchallenge/brainchallenge /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge/

*Now create symbolic links in the [webos] brainchallenge folder that point to the actual files in the brainchallenge folder located in &lt;code&gt;MyDocs&lt;/code&gt; (using ''createln''):
 sh [..]/createln /home/user/MyDocs/preenv/brainchallenge/brainchallenge/ /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge

*Also create symbolic links to any folders inside the brainchallenge folder in &lt;code&gt;MyDocs&lt;/code&gt;:
 ln -s /home/user/MyDocs/preenv/brainchallenge/brainchallenge/sounds /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge/sounds

*Don't forget to change the permission of the executable brainchallege file in [webos]:
 sudo gainroot
 chmod +rwx /home/user/[webos]/com.gameloft.app.brainchallenge/brainchallenge/brainchallenge
 exit

*Now you should still be able to play BrainChallenge, having saved roughly 114MB on &lt;code&gt;/home/user/&lt;/code&gt;.

This method has been confirmed to work with '''Asphalt 5, Blades of Fury, Oregon Trail''' and '''X-Plane Airliner''' also.

== Save space (Transfer games to MyDocs folder) NOOB Version 1.0 ==
Use this method if previous method is too tricky as it was for me.
You will need '''FileBox''', '''Rootsh''', and '''a basic understanding of X Terminal'''

'''Step 1:''' Locate your game folders. There are two possible locations:

Either at &lt;code&gt;/home/user/&lt;/code&gt; or &lt;code&gt;/home/opt/preenv/usr/palm/applications&lt;/code&gt;

'''Step 2:''' Once found you need to distinguish which files are the largest and would be wise to move to save space. I suggest moving sound folders, music folders, and videos folders. Leave save files and executable files as it is. 

'''NB:''' Save folders usually are named &quot;save&quot; and are usually small in size (kb/b)
To locate executable files for games use this command:

Using '''Hero Of Sparta''' as an example:
 cd /home/user/webOS/com.gameloft.app.heroofsparta
 grep main appinfo.json

This will give you the result:
 &quot;main&quot; : &quot;HeroOfSparta/HeroOfSparta&quot;
So you know not to move this file.
   
'''Step 3:''' Time to move! 
*Using FileBox's &quot;Create New Folder&quot; feature {found after you tap the wrench icon} go to &lt;code&gt;MyDocs&lt;/code&gt; and make a folder their called &lt;code&gt;WebOSGames&lt;/code&gt;.
 
*Now using the '''copy''' feature {which is accessed when a specific folder is &quot;pressed&quot; for about 2seconds, a menu pops up giving options such as copy, etc}, copy the folders and files desired from the game folder to the '''&lt;code&gt;WebOSGames&lt;/code&gt;''' folder in '''&lt;code&gt;MyDocs&lt;/code&gt;''' 
'''DELETE''' the originals from the game folder.

'''Step 4:''' Time to create some symlinks! 
Open up X Terminal and get rooted. 
TIP: Have '''FileManager''' open in the &lt;code&gt;WebOSGames&lt;/code&gt; folder to see what files and folders you need to link.

The command to create symlinks is:
 ln -s ''{source} {link}''

Using NFSUC as an example:
 ln -s /home/user/MyDocs/WebOSGames/res_nfsuc /home/user/webOS/com.ea.app.nfsuc/res_nfsuc

This will create a link from the NFSUC game folder to the folder containing the res_nfsuc folder

Now your game will still run and you have lots of space to add more games.

'''TIP:''' You can also delete videos from game folders that are not necessary or that do not play. Asphalt 5 has videos not necessary for the game to run so they can be '''DELETED.'''

For some games you will need to create symlinks for multiple folders e.g. Driver and N.O.V.A. this is why I suggest having a separate filemanager open such as the one that comes with the N900, so that you can see which file/folder you have to link next.

Enjoy :)
== References ==
*1. Asphalt fix TMO post [http://talk.maemo.org/showpost.php?p=852796&amp;postcount=54 #1], [http://talk.maemo.org/showpost.php?p=854747&amp;postcount=131 #2]
*2. Avatar fix TMO post [http://talk.maemo.org/showpost.php?p=924677&amp;postcount=1214 #1], [http://talk.maemo.org/showpost.php?p=921025&amp;postcount=1049 #2]
*3. H.A.W.X fix TMO post [http://talk.maemo.org/showpost.php?p=859289&amp;postcount=336 #1], [http://talk.maemo.org/showpost.php?p=859893&amp;postcount=366 #2]
*4. Diver fix TMO [http://talk.maemo.org/showpost.php?p=862561&amp;postcount=455 post]
== External links ==
[http://members.cox.net/jflatt/libsdlpre.so External libsdlpre.so download]

[http://maemo.org/packages/view/wgames/ WebOS game manager package link]</text>
    </revision>
  </page>
  <page>
    <title>Preenv/Free apps</title>
    <id>5105</id>
    <revision>
      <id>46880</id>
      <timestamp>2012-03-02T18:18:20Z</timestamp>
      <contributor>
        <username>marmistrz</username>
        <id>4691</id>
      </contributor>
      <comment>angry birds hd</comment>
      <text xml:space="preserve">Here there will be the free apps' links

{| class=&quot;wikitable sortable&quot;
| App
| Original download page
| Talk.maemo.org post
|-
|Angry Birds HD
|[https://developer.palm.com/appredirect/?packageid=com.rovio.angrybirdshd com.rovio.angrybirdshd]
|[http://talk.maemo.org/showpost.php?p=1170801&amp;postcount=6 link]
|}</text>
    </revision>
  </page>
  <page>
    <title>Preenv/Game Compatibility</title>
    <id>4536</id>
    <revision>
      <id>50439</id>
      <timestamp>2012-10-25T20:47:59Z</timestamp>
      <contributor>
        <username>samipower</username>
        <id>3771</id>
      </contributor>
      <text xml:space="preserve">{{ambox | text ='''Important note:''' Only bugs are included here. For game fixes, visit [[Preenv/FAQ|Preenv FAQ]].}}
{| class=&quot;wikitable sortable&quot;
! width=&quot;125&quot; | SoftwareFullName
! width=&quot;100&quot; | Version
! width=&quot;100&quot; | Status
! width=&quot;300&quot; | Bug(s)
! width=&quot;175&quot; | Preenv version
|-
|[http://developer.palm.com/appredirect/?packageid=com.rovio.angrybirds Angry Birds] || 1.5.3 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.4
|-
|Angry Birds HD|| 1.5.3 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires external libsdlpre-tab.so || Since 0.1.7
|-
|[https://developer.palm.com/appredirect/?packageid=com.rovio.angrybirdsrio Angry Birds Rio] || 1.0.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A  || Since 0.1.4
|-
|Angry Birds Rio HD|| 1.2.1 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires external libsdlpre-tab.so || Since 0.1.7
|-
|Angry Birds Seasons || 1.4.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires Internet connection for the first use || Since 0.1.4
|-
|Angry Birds Seasons HD|| 1.6.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires external libsdlpre-tab.so || Since 0.1.7
|-
|Art Of Glow || 1.1.1 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || 0.1.7
|-
|[http://www.gameloft.com/palm-games/asphalt-5/ Asphalt 5]|| 1.14 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt;Working || N/A || Since 0.1.1(Except 0.1.6)
|-
|Assassin's Creed: Altair's Chronicles|| 1.0.5 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires keyboard mapping || Since 0.1.4
|-
|Avatar|| 1.0.4 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working ||Requires keyboard mapping|| Since 0.1.4
|-
|[https://developer.palm.com/appredirect/?packageid=es.no2.basketmania Basketmania] || 1.0.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || gconftool-2 --set --type int /apps/preenv/main/screen_rotation 1  || Since 0.1.7
|-
|[http://developer.palm.com/appredirect/?packageid=com.ea.app.battleship.pre.en Battleship] || 1.0.60 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A  || Since 0.1.1
|-
|[https://developer.palm.com/appredirect/?packageid=com.underclouds.app.beamoutfree BeamOut Free] || 1.0.8 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Needs setup D-PAD  || Since 0.1.7
|-
|Beyond Ynth HD|| 1.4.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires external libsdlpre-tab.so || Since 0.1.7
|-
|[http://www.gameloft.com/palm-games/blades-of-fury/ Blades of Fury]|| 1.0.2 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working|| Missing Textures and better with keyboard mapping|| Since 0.1.1
|-
|[http://www.gameloft.com/palm-games/brain-challenge/ Brain Challenge]|| 1.1.1 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.1
|-
|Brothers In Arms|| 1.0.9 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Use control Scheme 2, this is playable.Keyboard mapping maybe necessary || Since 0.1.4
|-
|Bubble Bash HD|| 1.0.1 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Touch screen works better with stylus || Since 0.1.4
|-
|Bubbbles|| 1.5.2 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || 0.1.7
|-
|Castle of Magic || 1.0.3 || style=&quot;background-color:Green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Better with keyboard mapping but playable|| Since 0.1.4
|-
|Doodle Pool HD|| 1.0.2 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires external libsdlpre-tab.so || Since 0.1.7
|-
|Cosmic Nitro|| 1.0.1 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working|| N/A|| 0.1.7
|-
|Cronk|| 1.3.2 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Bad scaling || Since 0.1.4
|-
|Crusade Of Destiny || 1.4.9 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Missing textures || 0.1.6
|-
|Deer Hunter 3D || 1.0.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Works better if you activate the fire button under options ,Touch screen works better with stylus, Can zoom in/out without the use of the multitouch|| Since 0.1.4
|-
|Denki Blocks || 1.1.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || gconftool-2 --set --type int /apps/preenv/denkiblocks/screen_rotation 0  || Since 0.1.7
|-
|[http://developer.palm.com/appredirect/?packageid=com.gameloft.app.driver Driver]|| 1.1.7 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Better with keyboard mapping but playable || Since 0.1.1 (Except 0.1.2)
|-
|[http://www.gameloft.com/palm/earthworm-jim/ Earthworm Jim]|| 1.0.3 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires keyboard mapping || Since 0.1.4
|-
|Everlands || 1.4.15 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || gconftool-2 --set --type int /apps/preenv/EverlandsLite/screen_rotation 0 and, gconftool-2 --set --type int /apps/preenv/EverlandsLite/screen_width 320 || Since 0.1.7
|-
|Family Guy Uncensored || 1.0.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires keyboard mapping || Since 0.1.4
|-
|[http://developer.palm.com/appredirect/?packageid=com.eamobile.fifa FIFA 2010] || 1.0.24 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Better with keyboard mapping but playable || Since 0.1.4
|-
|Full Moon-Warrior Within|| 1.0.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working|| N/A|| 0.1.7
|-
|Galcon|| 1.9.10 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working|| N/A|| Since 0.1.4
|-
|Galcon Fusion HD|| 1.0.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires external libsdlpre-tab.so || Since 0.1.7
|-
|Giant Robots|| 9.5.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working|| N/A|| Since 0.1.4
|-
|Glow Hockey HD|| 2.2.11 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires external libsdlpre-tab.so || Since 0.1.7
|-
|Glyder 2|| 1.0.1 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.4
|-
|Glyder 2 HD|| 1.0.1 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires external libsdlpre-tab.so || Since 0.1.7
|-
|[http://www.glenncorpes.com/ge/ Ground Effect Pro ]|| 1.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Use TouchPad Joy control settings, Graphic issues on ship selection screen but still playable. Supports Stereoscopic 3D || Since 0.1.1
|-
|Guitar Hero 5|| 1.0.2 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Imperfect textures (0.1.4) || Since 0.1.4
|-
|[http://www.gameloft.com/mobile-games/hero-of-sparta/ Hero of Sparta]|| N/A || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Better with keyboard mapping but playable|| Since 0.1.4
|-
|How to Train Your Dragon|| 1.0.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.4
|-
|Iron Fist Boxing|| 3.5.1 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Imperfect textures (0.1.7) || Since 0.1.7
|-
|Jump O'Clock|| 1.0.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.4
|-
|Kami Retro HD|| 1.0.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires external libsdlpre-tab.so || Since 0.1.7
|-
|[http://www.gameloft.com/palm-games/lets-golf/ Let's Golf]|| 1.0.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.1
|-
|MiniSquadron|| 1.0.2 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Better with keyboard mapping but playable || 0.1.7
|-
|[http://store.handmark.com/p/130997/monopoly-for-palm-pre Monopoly]|| 20.0.40 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.3
|-
|[http://developer.palm.com/appredirect/?packageid=com.ea.app.nfsuc Need for Speed Undercover]|| 20.0.29, 20.0.48 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.1
|-
|Need For Speed : Hot Persuit HD ||  || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; playable || 
|-
|[http://www.gameloft.com/palm-games/nfl-2010/ NFL 2010]|| 1.0.5 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Better with keyboard mapping but playable || Since 0.1.4
|-
|[http://www.gameloft.com/palm-games/nova/ N.O.V.A]|| 1.0.9 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Better with keyboard mapping but playable || Since 0.1.4
|-
|OddBlob|| 1.06.008 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working|| N/A|| 0.1.7
|-
|[http://www.gameloft.com/palm-games/the-oregon-trail/ Oregon Trail]|| 1.0.7 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.1
|-
|Pocket Chef || 1.0.1 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working|| Needs latest libsdlpre.so to run properly || Since 0.1.4
|-
|Quell HD|| 1.1.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires external libsdlpre-tab.so || Since 0.1.7
|-
|Raging Thunder 2|| N/A || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.4
|-
|[http://www.houseofpalm.com/palm.application.com-gameloft-app-realsoccer2010-ijC.aspx Real Soccer 2010]|| 1.1.2 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working ||Requires keyboard mapping|| Since 0.1.4
|-
|[http://developer.palm.com/appredirect/?packageid=com.ea.app.risk RISK]|| 1.0.26 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working|| N/A || Since 0.1.3
|-
|Rock band|| 1.2.75 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires Multitouch/ Keyboard maping || Since 0.1.4
|-
|Star dust HD|| 3.0.10 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires external libsdlpre-tab.so || Since 0.1.7
|-
|Scrabble|| 1.3.55 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.4
|-
|Shrek Kart|| 1.1.1 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Imperfect textures || Since 0.1.1
|-
|Skater Nation || N/A || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working|| Needs latest libsdlpre.so to run properly || Since 0.1.4
|-
|Slice It HD|| 1.1.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires external libsdlpre-tab.so || Since 0.1.7
|-
|Sudoku || N/A || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.4
|-
|Super KO Boxing 2|| N/A || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.4
|-
|Tap-Tap Rockets HD|| 1.0.1 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Requires external libsdlpre-tab.so || Since 0.1.7
|-
|[http://www.gameloft.com/palm-games/the-settlers/ The Settlers]|| 1.1.1 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working|| Better with multitouch but playable || 0.1.1, 0.1.7
|-
|The Sims 3|| 20.0.22 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.1
|-
|[https://developer.palm.com/appredirect/?packageid=com.jakyl.tilestormlite TileStorm Lite ]|| 1.1.1 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A  || Since 0.1.7
|-
|Tiger Woods PGA Tour || 1.0.28 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || Needs latest libsdlpre.so to run properly, Missing textures on golfer || Since 0.1.4
|-
|Tradewinds 2|| 1.20.001 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.4
|-
|Transformers G1|| 1.1.1 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.4
|-
|[http://www.polarbit.com/our-games/toonwarz/ Toonwars]|| 1.0.0 ||  style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.4
|-
|U Flip || 1.0.0 || style=&quot;background-color:Green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || 0.1.7
|-
|UConnect || 1.1.0 || style=&quot;background-color:Green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || 0.1.7
|-
|[https://developer.palm.com/appredirect/?packageid=com.gameloft.app.uno UNO]|| 1.1.6 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.4
|-
|[https://developer.palm.com/appredirect/?packageid=com.natenai.app.virtualhorseracing3dfree Virtual Horse Racing 3D FREE]|| 1.2.5 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.7
|-
|[http://developer.palm.com/appredirect/?packageid=com.glu.app.minigolf Wacky Worlds Mini Golf]|| 1.0.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.4
|-
|[http://developer.palm.com/appredirect/?packageid=com.glu.app.wsop3 World Series of Poker: Hold'em Legend]|| 1.0.1 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working || N/A || Since 0.1.4
|-
|[http://www.x-plane.com/pg_X-Plane_for_the_Palm_Pre.html X-Plane 9]|| 9.5.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working|| N/A|| Since 0.1.1
|-
|X-Plane Airliner|| 9.5.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working|| N/A|| Since 0.1.4
|-
|X-Plane Apollo|| 9.5.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working|| N/A|| Since 0.1.4
|-
|X-Plane Carrier|| 9.5.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working|| N/A|| Since 0.1.4
|-
|X-Plane Glider|| 9.5.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working|| N/A|| Since 0.1.4
|-
|X-Plane Racing|| 9.5.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working|| N/A|| Since 0.1.4
|-
|X-Plane Shuttle|| 9.5.0 || style=&quot;background-color:green;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Working|| N/A|| Since 0.1.4
|-
|Astraware Casino|| 1.11.007 || style=&quot;background-color:skyblue;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Partially working || Working although cannot go back from game, instructions or options using touchscreen. Have to delete saved game from game folder to get back to main screen|| Since 0.1.4
|-
|[http://www.robdor.com/ Plasma Cannon]|| 1.0.0 || style=&quot;background-color:skyblue;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Partially working || Gesture area related functions are not working || Since 0.1.1
|-
|Rednecks Vs. Aliens|| 1.0.5 || style=&quot;background-color:skyblue;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Partially working || Save game does not work after a specific level || 0.1.7
|-
|Serpent Of Isis HD || 1.0.6 || style=&quot;background-color:skyblue;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Partially Working || Imperfect Textures || Since 0.1.7
|-
|Tetris Touch|| 1.3.8 || style=&quot;background-color:skyblue;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Partially working|| Only accepts perfect timed touches, Touch screen works better with stylus || Since 0.1.1
|-
|Tom Clancy's H.A.W.X|| 1.1.5 || style=&quot;background-color:skyblue;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt;Partially working || Weapon change not working, Limited touch ability || Since 0.1.1
|-
|Ancient Frog  || 1.19.3 || style=&quot;background-color:yellow;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Unplayable || N/A || 0.1.4
|-
|Brothers In Arms 2|| N/A || style=&quot;background-color:yellow;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Unplayable || Only works with limited touch ability || 0.1.4
|-
|[http://www.hexage.net/ Buka]|| N/A || style=&quot;background-color:yellow;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Unplayable || Incorrect touch screen mapping  || 0.1.4, 0.1.7
|-
|Dead Runner || 1.0.0 || style=&quot;background-color:yellow;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Unplayable || Incorrect touch screen mapping || 0.1.7
|-
|Farm Frenzy 2||  || style=&quot;background-color:yellow;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Unplayable || Wrong Orientation, same SDK as Worms || 0.1.7
|-
|Glow Hockey || 2.2.7 || style=&quot;background-color:yellow;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Unplayable ||  touchscreen doesn't work || 0.1.7
|-
|Hockey Nations: Shootout || 1.2.0 || style=&quot;background-color:yellow;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Unplayable || Incorrect touch screen mapping || 0.1.7
|-
|[http://developer.palm.com/appredirect/?packageid=com.fallentreegames.quell Quell] || 1.0.5 || style=&quot;background-color:yellow;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Unplayable|| screen is not scaled, but Touch Screen Mapping is ok || 0.1.7
|-
|[http://developer.palm.com/appredirect/?packageid=net.hexage.radiant Radiant]|| 2.11.383 || style=&quot;background-color:yellow;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Unplayable || Incorrect touch screen mapping || 0.1.3, 0.1.7
|-
|Real Football 2010|| N/A || style=&quot;background-color:yellow;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Unplayable || Only works on half the screen with limited multitouch || 0.1.1
|-
|Shrek Karting HD || 1.0.0 || style=&quot;background-color:Yellow;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Unplayable || Missing Texture  || 0.1.1
|-
|Sparkle || 1.0.7 || style=&quot;background-color:Yellow;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Unplayable || Game starts but screen taps are not registered at correct location || 0.1.4, 0.1.7
|-
|Speed Forge Extreme || N/A || style=&quot;background-color:yellow;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Unplayable|| Incorrect touch screen mapping || 0.1.4
|-
|[https://developer.palm.com/appredirect/?packageid=net.hexage.totemo.hd Totemo HD]|| 1.45.13 || style=&quot;background-color:yellow;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Unplayable || Incorrect touch screen mapping  ||  0.1.7
|-
|Worms|| 0.0.18 || style=&quot;background-color:yellow;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Unplayable || Wrong Orientation || 0.1.7
|-
|Asphalt 6 HD || 1.0.2 || style=&quot;background-color:Red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Segmentation Fault  || 0.1.1
|-
| Aftermath XHD || 1.3.0 || style=&quot;background-color:Red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not working || Blank screen when opening || 0.1.7
|-
|BackBreaker Football || 1.6.0 || style=&quot;background-color:Red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || PDL: Application asks for OS version || 0.1.1
|-
|Dungeon Hunter || 1.0.3 || style=&quot;background-color:Red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Segmentation Fault || 0.1.7
|-
|Gangstar|| N/A || style=&quot;background-color:red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Segmentation Fault,See [http://talk.maemo.org/showpost.php?p=925529&amp;postcount=1252 log] for details || 0.1.7
|-
|Modern Combat Sandstorm || N/A || style=&quot;background-color:Red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || Segmentation Fault || 0.1.7
|-
|Real Tennis || N/A || style=&quot;background-color:Red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || See the [http://talk.maemo.org/showpost.php?p=926101&amp;postcount=1293 log] for details || 0.1.4
|-
|ExZeus arcade || 1.0.1 || style=&quot;background-color:Red;&quot; |&lt;span style=&quot;display:none&quot;&gt;1&lt;/span&gt; Not Working || undefined symbol : PDL_GetAppinfovalue || 0.1.7
|}
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Prepare your application for testing</title>
    <id>3572</id>
    <revision>
      <id>35270</id>
      <timestamp>2010-06-03T13:35:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>tidy links</comment>
      <text xml:space="preserve">THIS IS A DRAFT, don't link this page yet.

INTRO(WRITEME)


Before promoting your application to [[Extras-testing]], you must make sure that your application respects all the QA rules, please double check all the points below in order to save time and extra work.

* My application is [[Packaging|properly packaged]], and has a [[Packaging#Displaying an icon in the Application Manager next to your package|application manager icon]] and a desktop icon.
* My package uses a [[Documentation/Maemo 5 Developer Guide/Packaging%2C Deploying and Distributing#Sections|proper section]]*.
* My package short description has 10 or more characters*.
* My package has a [[Packaging#Bugtracker location|bugtracker]]*.
* My application does not violate any copyrights and the code has a [[Extras-testing/QA checklist#Licensing and legal issues|proper license]].
* My application does not have [[Extras-testing/QA checklist#Broken functionality or reproducible crashes|broken functionalities or evident crashes]].
* My package or webpage does not advertise features that [[Extras-testing/QA checklist#Missing announced features|are not available in my application]].
* My application does not use more than [[Extras-testing/QA checklist#Too much memory used in root partition|500 kB of space in root partition]]
* My application doesn't compromise the [[Extras-testing/QA checklist#System_performance_compromised|system performance]].
* My application does not introduce any [[Extras-testing/QA checklist#Power management issues|power management issues]].
* My application does not compromise the [[Extras-testing/QA checklist#Security risks|security of the system]].

== Command Line Applications ==

* My application is using the [[Extras-testing/Command line applications|CLI icon]].
* My application [[Extras-testing/Command line applications#Description|description]] clearly says that my application runs only from the command line.

== Recommendations ==

* Avoid long [[Packaging#Maemo revision string|revision strings]] like: svn23535344r56 or git423423r567.
* Use [[Packaging#Pretty names|pretty names]] in your package.
* [[Packaging#Translations of text fields|Translate]] descriptive text fields in your package to other languages.

'''*''' - Automatic checks.

[[Category:Community]]
[[Category:Development]]
[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Presencevnc</title>
    <id>4512</id>
    <revision>
      <id>42318</id>
      <timestamp>2011-03-02T20:48:08Z</timestamp>
      <contributor>
        <username>cpulvermacher</username>
        <id>4041</id>
      </contributor>
      <comment>mention project home page</comment>
      <text xml:space="preserve">This is a HOWTO for setting up SSH tunneling between PresenceVNC and x11vnc server. For more general usage instructions, see the [http://presencevnc.garage.maemo.org/ PresenceVNC Home Page].

== Step 1 (setting up) ==

Install an SSH-server and x11vnc on your home computer and an SSH-client on your [[Nokia N900|N900]]. If you have a router you need to port forward port 22. Normaly you can login on the router using your browser. Just write the adress &quot;192.168.1.1&quot; in the address field. You also need to allow port 22 on your firewall (I used Firestarter for that).

=== Setting up SSH ===
To make a SSH connection you first need to make an ssh-key. So on your home computer write:
 ssh-keygen -t dsa
Put the files in &quot;&lt;code&gt;/home/&lt;user&gt;/.ssh/&lt;/code&gt;&quot;. Change &quot;&lt;code&gt;&lt;user&gt;&lt;/code&gt;&quot; to the one on your home computer. One will be named &quot;&lt;code&gt;id_dsa&lt;/code&gt;&quot; and the other &quot;id_dsa.pub&quot;. You will probably have to make the folder &quot;&lt;code&gt;/home/user/.ssh/&lt;/code&gt;&quot; on your N900.
 mkdir /home/user/.ssh/ 
Then just move &lt;code&gt;id_dsa.pub&lt;/code&gt; there (I used Dropn900).

You could test your connection from your N900 with
 ssh user@ip-number

* On my Ubuntu machine I installed OpenSSH-server and x11vnc. Opened the port 22 on my firewall and router.
* On my N900 I installed OpenSSH-client and Presencevnc

== Step 2 (logging in) ==

Open the X-terminal on your N900 and write:
 ssh -C -L 5900:localhost:5900 user@ip-number
Write your home computers password when it is asking. It is not necessary to use &quot;-C&quot; but I recommend it. It will compress the stream and make it go smoother on a 3G connection. The &quot;user&quot; is the user and &quot;ip-number&quot; the ip-number of your home computer. You could use a dynamic ip-number provider.. like http://www.no-ip.com.

Now you have connected your home computers port 5900 to the N900 port 5900. This is also known as &quot;tunneling&quot;. And are currently logged in on your home computer.

Now you need to start the vnc-server:
 x11vnc -ncache 10 -display :0

== Step 3 ==

Now when you have finished the above it is not much left.. Open Presencevnc on your N900 and write:
 localhost:0

Done! You can now see and use your home computer ;)

[[Category:Fremantle]]
[[Category:Connectivity]]</text>
    </revision>
  </page>
  <page>
    <title>Presentation/Google data bindings for Python</title>
    <id>1192</id>
    <revision>
      <id>7069</id>
      <timestamp>2008-09-07T15:54:53Z</timestamp>
      <contributor>
        <username>brontide</username>
        <id>200</id>
      </contributor>
      <comment>[[Presentation/Google data bindings for Python]] moved to [[Google Data API for Python (Presentation)]]: Better naming convention</comment>
      <text xml:space="preserve">#REDIRECT [[Google Data API for Python (Presentation)]]</text>
    </revision>
  </page>
  <page>
    <title>Privoxy</title>
    <id>1494</id>
    <revision>
      <id>42121</id>
      <timestamp>2011-02-25T09:49:29Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>minor fixes</comment>
      <text xml:space="preserve">[http://www.privoxy.org/ Privoxy] is a web proxy.  This means that it is a program which runs on your tablet through which all http/https traffic is routed.  It can be utilized to filter advertisements, popups, and other annoying web content.  It can also be used to access remote proxies that require specific user-agent information or other custom http headers.  For more information, see the [http://www.privoxy.org/faq/index.html Privoxy FAQ] and the [http://www.privoxy.org/user-manual/index.html Privoxy User Manual]. 

Privoxy is available from the maemo &quot;extras&quot; repository.  It is available for [http://repository.maemo.org/extras/pool/gregale/free/p/privoxy/ gregale] (770), [http://repository.maemo.org/extras/pool/bora/free/p/privoxy/ bora] (OS 2007), [http://repository.maemo.org/extras/pool/chinook/free/p/privoxy/ chinook] (N800), and [http://repository.maemo.org/extras/pool/diablo/free/p/privoxy/ diablo] (N800/N810).  Once installed, privoxy runs as a daemon (in the background).  However, the network connection(s) must be configured to actually use privoxy.

== Installation ==

You must have the [[Extras]] repository enabled. Then click on the &quot;Browse Installable Applications&quot; button and then the &quot;All&quot; button to find &quot;Privoxy&quot; in the list.  Install it as you would any other application.  Upon successful installation, privoxy will be running in the background.  

Next you must configure your network connection to utilize privoxy as a &quot;proxy&quot;.  On a typical desktop system, each ''application'' has its own proxy settings.  On the NIT, each ''connection'' has its own proxy settings.  This is unfortunate for two reasons.  First, every time you connect to a new wireless access point (at your local coffee shop for example) and you want to use privoxy, you must enter the proxy configuration for that connection.  Second, certain built-in applications (namely the Media Player) have issues with privoxy.  

These instructions assume that you already have an entry for your network connection and you simply want to add privoxy to it.  (You could just as easily adapt these instructions to a new connection.)  Open the &quot;Connectivity&quot; Control Panel and click the &quot;Connections&quot; button to view your list of configured connections.  Select the desired connection and click the &quot;Edit&quot; button.  Note that you cannot edit a connected entry, which means if you want to add privoxy to your current connection, you must first disconnect.  Once you are in the &quot;Connection setup&quot; dialog, click &quot;Next&quot; several times until you get to the &quot;Complete&quot; dialog.  

[[Image:Privoxy06.jpg|thumb|Network Settings]]

Now click the &quot;Advanced&quot; button.  In the &quot;Advanced settings&quot; dialog, make sure you are on the &quot;Proxies&quot; tab.  Check the &quot;Use proxy&quot; checkbox and enter proxy address &lt;code&gt;127.0.0.1&lt;/code&gt; and port &lt;code&gt;8118&lt;/code&gt; for both &lt;tt&gt;http&lt;/tt&gt; and &lt;tt&gt;https&lt;/tt&gt; as shown in the next image.

[[Image:Privoxy07.jpg|thumb|left|Proxy Configuration]]

Click the &quot;OK&quot; button, and then the &quot;Finish&quot; button to save the settings.  Click &quot;Done&quot;/&quot;OK&quot; buttons to get out of the Connectivity Control Panel.  Now connect to the newly configured connection.

To verify that privoxy is running, open the web browser and enter the following address:

 http://p.p

(Note that you can simply enter &quot;&lt;tt&gt;p.p&lt;/tt&gt;&quot; and &lt;tt&gt;http://&lt;/tt&gt; will be prepended automatically.)  You should see the main privoxy screen.  Congratulations, your web traffic is now being filtered.

== Configuration ==

Configuration of privoxy is accomplished through the web interface.  To configure privoxy, open a web browser and enter &lt;code&gt;p.p&lt;/code&gt; into the address textbox.  &lt;code&gt;http://p.p&lt;/code&gt; is a shortcut for the &quot;real&quot; configuration page &lt;code&gt;http://config.privoxy.org/&lt;/code&gt;.  You should see the main privoxy page showing the main Privoxy Menu.

[[Image:Privoxy01.jpg|thumb|Main Privoxy Screen]]

Click the first link in the Privoxy Menu labeled &quot;View &amp;amp; change the current configuration&quot;.  This will take you to the web-based configuration screen.  Note that you will find all of the configuration files in the &lt;code&gt;/etc/privoxy&lt;/code&gt; directory and you can edit these text files &quot;by hand&quot; if you prefer not to use the web-based interface.

[[Image:Privoxy02.jpg|thumb|left|Privoxy Configuration Screen]]

By clicking on the &quot;Edit&quot; buttons, you can fine tune each of the configuration files.  The most important file in this list is the &lt;tt&gt;global.action&lt;/tt&gt; file.  Click on the &quot;Edit&quot; button next to &lt;code&gt;/etc/privoxy/global.action&lt;/code&gt; to change the protection level to one of [http://www.privoxy.org/user-manual/actions-file.html#AEN2194 three pre-defined levels].  (Note to desktop privoxy users: you may be used to setting the protection level in the &lt;code&gt;default.action&lt;/code&gt; file.  For the maemo version, this was changed to allow for easy updates to the &lt;code&gt;default.action&lt;/code&gt; file.)  

[[Image:Privoxy03.jpg|thumb|Edit Global Protection Level]]

For the maemo version, the default protection level is set to &quot;Medium&quot;.  If you find this to be too aggressive you can set it to &quot;Cautious&quot; which will block fewer advertisements and give lower privacy protection.

Once you have privoxy configured to your liking, you may find there are times that you need to temporarily disable privoxy to access a particular website.  Fortunately, privoxy provides several [http://en.wikipedia.org/wiki/Bookmarklet bookmarklets] for showing the current status and for quickly enabling/disabling privoxy filtering.  Go back to the main privoxy page (http://p.p) and click on the link labeled &quot;Toggle Privoxy on or off&quot;.  On the new page, scroll about half way down until you see the following.

[[Image:Privoxy04.jpg|thumb|left|Privoxy Bookmarklets]]

Click and hold on the link labeled &quot;Privoxy – View Status&quot;.  In the new popup box, select &quot;Add link to Bookmarks...&quot;.  This will allow you to see the current status of privoxy and quickly enable/disable it.  When you select this new bookmark, a new web browser window will open that looks like the following.

[[Image:Privoxy05.jpg|thumb|Quickly Enable / Disable Privoxy]]

Even though you disable privoxy via the web interface, the actual daemon process is still running in the background.  Privoxy is simply allowing all content to pass through unfiltered.  If you want to ''completely'' disable privoxy, you must do so through a Terminal as &lt;code&gt;root&lt;/code&gt;.

 /etc/init.d/privoxy stop

Note that if you stop privoxy in this manner, you must reconfigure your network connection to no longer use a Proxy (via the &quot;Advanced&quot; button).  Due to a [https://bugs.maemo.org/show_bug.cgi?id=3402 bug], unchecking the &quot;Use proxy&quot; button may not be enough for certain built-in applications such as the Application Manager.

== Troubleshooting ==

Since you must configure privoxy on a connection-by-connection basis, all applications that use the http/https protocol will be filtered by privoxy.  For the most part, this is not a problem.  However, there are certain situations where you do not want privoxy to touch the http stream at all.  Here are several occasions where this is true.

# If you use the built-in Media Player to play streaming internet radio, you may find that your stations do not work with privoxy configured on your connection.  
# If your wireless access point redirects initial traffic to a login page on a non-standard port, you may find that you cannot get a connection.
# The Wayfinder Map application cannot download maps via a connection with Privoxy.

Fortunately, there is a way to configure your network connection to deal with these situations. Go to the Connectivity Control Panel and configure the connection as you did before. Get to the &quot;Advanced&quot; settings page where you entered the HTTP/HTTPS proxy information. On that same screen near the bottom there is a field labeled &quot;Do not use proxy for:&quot;.  In this field you can enter particular sites that should not be filtered by privoxy.  For example, if you like listening to the internet radio provided by [http://somafm.com/ Soma FM], you would enter the following.

 Do not use proxy for: *.somafm.com,*.stream.aol.com

Notice that you can use wildcards to match all prefixes like &lt;code&gt;www&lt;/code&gt;.

Another possibility is to create two connection profiles for a particular connection. For the first &quot;default&quot; profile, you would configure privoxy as shown above.  For the second profile (with a different name, perhaps something like &quot;HOME-noproxy&quot;), you would ''not'' configure privoxy.  While not ideal, changing between the two connection profiles is quicker than editing the &quot;Advanced&quot; proxy settings for the connection every time you need to completely enable/disable privoxy.

If you decided to completely remove privoxy from your tablet, you will need to reconfigure your connections to no longer use a proxy.  Due do a [https://bugs.maemo.org/show_bug.cgi?id=3402 bug], unchecking the &quot;Use proxy&quot; checkbox it not sufficient.  You must completely blank out the HTTP/HTTPS proxy fields and set the port numbers to 0.  Then you can uncheck the &quot;Use proxy&quot; checkbox.

== Changes To The Maemo Version ==

Since the tablet is a different user environment than a desktop workstation, several compilation/configuration changes were made to the maemo version of privoxy.

* Privoxy runs as &quot;&lt;tt&gt;user&lt;/tt&gt;&quot; rather than &quot;&lt;tt&gt;privoxy&lt;/tt&gt;&quot; to obviate the creation of another user on the NIT.
* Privoxy has been configured to allow [http://www.privoxy.org/user-manual/config.html#ENABLE-EDIT-ACTIONS editing of configuration files] and [http://www.privoxy.org/user-manual/config.html#ENABLE-REMOTE-TOGGLE toggling of running state] via the web interface.  On a multiuser system, this may cause problems, but it is assumed that there is only one user on the tablet.
* All privoxy configuration files in &lt;code&gt;/etc/privoxy&lt;/code&gt; are owned by &lt;tt&gt;user&lt;/tt&gt; so that you do not need to be root to modify the configuration.
* Setting the protection level is done in the &lt;code&gt;global.action&lt;/code&gt; file.  This is to allow easy future upgrades to the &lt;code&gt;default.action&lt;/code&gt; file.
* The default protection level has been set to &quot;Medium&quot; rather than &quot;Cautious&quot;.
* An additional action file from [http://www.neilvandyke.org/privoxy-rules/ Neil Van Dyke] provides additional online privacy.  This file is regularly maintained so you are free to download the latest version to replace the current one in &lt;code&gt;/etc/privoxy&lt;/code&gt;.
* No documentation is provided on the tablet to minimize installation size.  All documentation is available [http://www.privoxy.org online].
* &lt;code&gt;libpcre3&lt;/code&gt; (the Perl 5 compatible regular expression library) is statically compiled into privoxy to obviate installation of the library from &lt;code&gt;extras-devel&lt;/code&gt;.
* Logging has been disabled.

== Compiling Privoxy ==

If you don't like the way privoxy is compiled/bundled, you can get the source code and build it yourself.  You will need a desktop machine with [http://www.scratchbox.org/ Scratchbox] installed, as well as development tools specific to your tablet's OS.  Instructions for setting up a development environment are available for [http://repository.maemo.org/stable/gregale/INSTALL.txt gregale], [http://repository.maemo.org/stable/bora/INSTALL.txt bora], [http://repository.maemo.org/stable/chinook/INSTALL.txt chinook], and [http://repository.maemo.org/stable/diablo/INSTALL.txt diablo].

Once you have a working scratchbox development environment, you can [http://repository.maemo.org/extras/pool/gregale/free/source/p/privoxy/ download the maemo source for privoxy] and untar it to your scratchbox home directory.  Then it is simply a matter of changing to the newly extracted privoxy directory and building the code.

 dpkg-buildpackage -rfakeroot -b

This will build a new binary package (in the directory above the current one).  If you want to do any customizations for the build, you will need to go into the &lt;code&gt;debian&lt;/code&gt; directory and change the files you find there.

==USB connectivity==
You can use Privoxy in case you don't have the NAT module (Network Address Translation) and you want to share the 770's internet connection on your desktop connected to it over USB. Simply change the IP address Privoxy binds to to 192.168.2.15.

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Processor architecture</title>
    <id>3287</id>
    <revision>
      <id>40984</id>
      <timestamp>2011-01-03T07:47:08Z</timestamp>
      <contributor>
        <ip>91.153.162.47</ip>
      </contributor>
      <comment>/* PCs: x86 architecture */  typo in link</comment>
      <text xml:space="preserve">The purpose of this page is to answer the following (reasonable) questions that come up in the community quite frequently:
# Is it possible to make &lt;some Windows application&gt; run on Maemo?
# Why or why not?
# Why do the technologies I choose to use and support matter?

It attempts to do this by explaining about computer processor ''architecture'', and relates that to maemo software and hardware.

==PCs: x86 architecture==

Most PCs are powered by processors produced by Intel or AMD that are referred to as [[:wikipedia:X86|x86-compatible]]. Pentium to Core2, Athlon to Phenom, all of these are CPUs (Central Processing Units) compatible with the x86 instruction set. Software that works on one will work on another.

===Compiled Applications===

What that means is that, no matter what form the applications take, in the end they have to be presented to the CPU as x86 instructions. The most efficient applications are often the ones that are ''[[:wikipedia:Compiler|compiled]]'' directly into a listing of these x86 instructions. For that reason, the most core parts of the operating system and the most demanding applications are usually distributed and stored as a [[:wikipedia:Executable|binaries]] of this compiled state.

==Mobile devices: ARM architecture==

There is a much simpler instruction set called [[:wikipedia:ARM architecture|ARM]] and, because of its simplicity, many mobile devices use an ARM-based processor. (Note that &quot;simpler&quot; does not necessarily imply &quot;better&quot; or &quot;worse&quot; for the end user: ARM processors are typically smaller and thus easier to make.) This is true of devices that run Maemo. Because the instruction set is different, most applications that will run on a PC will not directly run on maemo without recompiling. Recompiling requires the original description of the application in some human-readable computer language (the [[:wikipedia:source code|source code]]) and this is not available for most commercial, proprietary applications (which are therefore referred to as ''closed source'').

==Emulation==

The only way to use the compiled binaries for one architecture on another architecture is through a translator. This is called an [[:wikipedia:Emulator|emulator]]; it ''emulates'' the desired architecture for the software so that it is compatible. This can be a very inefficient process, with the emulated processor a few to tens of times slower than the native processor. In the context of the portable maemo devices with limited processing power and battery capacity, it means that emulating complex PC software is generally not practical. This is true of Microsoft's Windows operating system, and applications that run in Windows.

See the [[emulators]] page for more specific details on what architectures and systems can be emulated in maemo.

==Conclusion and Relevance==

What this means to you, the user, is that open standards and open source are your friend. Given enough time and enough demand, most anything that is &quot;open&quot; can and probably will be brought to maemo.

It also means that unless the owner of proprietary products sees value in releasing their product for maemo, it will probably never be available. Consider whether you are supporting open standards and open source when you make decisions what technology to use on projects so that you can use your maemo device most effectively.

[[Category:Users]]
[[Category:Hardware]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Programming FM radio</title>
    <id>4454</id>
    <revision>
      <id>38599</id>
      <timestamp>2010-09-14T09:31:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Programming FM radio]] moved to [[Programming N800 FM radio receiver]]: device-specific</comment>
      <text xml:space="preserve">#REDIRECT [[Programming N800 FM radio receiver]]</text>
    </revision>
  </page>
  <page>
    <title>Programming N800 FM radio receiver</title>
    <id>201</id>
    <revision>
      <id>38602</id>
      <timestamp>2010-09-14T09:33:32Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut section headings</comment>
      <text xml:space="preserve">The [[Nokia N800|N800]] internet tablet features a tea5761 FM tuner chip for listening
to FM radio. The kernel driver for this chip was written by Nokia and is GPL'd open source. You can look at it by downloading the Maemo kernel source code.

The driver implements the V4L2 radio interface and is thus controlled like a V4L2 device.

== How to do it in Python ==

By using Python's &lt;code&gt;ioctl&lt;/code&gt; function, you can directly talk to the driver, so there is no need for wrapping some C library.

=== Prerequisites ===

Let's first import the required modules:

&lt;source lang=&quot;python&quot;&gt;
    import os                 # for opening the device files
    import struct             # for packing and unpacking C structs
    from fcntl import ioctl   # for invoking ioctl calls on the device files
&lt;/source&gt;

Since we are going to talk to kernel drivers, we have to use weird numbers. C users would just include the appropriate Linux kernel header files, but Python users have to do it by hand. So let's make some defines for kernel level ioctl stuff:

&lt;source lang=&quot;python&quot;&gt;
    # kernel definitions for ioctl commands
    _IOC_NRBITS   = 8
    _IOC_TYPEBITS = 8
    _IOC_SIZEBITS = 14
    _IOC_DIRBITS  = 2
    
    _IOC_NRSHIFT   = 0
    _IOC_TYPESHIFT = _IOC_NRSHIFT + _IOC_NRBITS
    _IOC_SIZESHIFT = _IOC_TYPESHIFT + _IOC_TYPEBITS
    _IOC_DIRSHIFT  = _IOC_SIZESHIFT + _IOC_SIZEBITS
    
    _IOC_WRITE = 1
    _IOC_READ  = 2
    
    _IOC = lambda d,t,nr,size: (d &lt;&lt; _IOC_DIRSHIFT) | (ord(t) &lt;&lt; _IOC_TYPESHIFT) | \
        (nr &lt;&lt; _IOC_NRSHIFT) | (size &lt;&lt; _IOC_SIZESHIFT)
    _IOW  = lambda t,nr,size: _IOC(_IOC_WRITE, t, nr, size)
    _IOR  = lambda t,nr,size: _IOC(_IOC_READ, t, nr, size)
    _IOWR = lambda t,nr,size: _IOC(_IOC_READ | _IOC_WRITE, t, nr, size)
&lt;/source&gt;

The functions &lt;code&gt;_IOW&lt;/code&gt;, &lt;code&gt;_IOR&lt;/code&gt;, and &lt;code&gt;_IOWR&lt;/code&gt; (macros in C) are used for write-access, read-access, and read-write-access, respectively. They basically just take some input values and compute a number which can be sent to the device driver. You can think of the number as the signature of the function which you want to call on the driver.

Now we can generate those weird numbers for the V4L2 functions we are
going to invoke on the driver:

&lt;source lang=&quot;python&quot;&gt;
    # V4L2 stuff for accessing the tuner driver
    _VIDIOC_G_TUNER     = _IOWR('V', 29, 84)
    _VIDIOC_G_AUDIO     = _IOR ('V', 33, 52)
    _VIDIOC_S_AUDIO     = _IOW ('V', 34, 52)
    _VIDIOC_G_FREQUENCY = _IOWR('V', 56, 44)
    _VIDIOC_S_FREQUENCY = _IOW ('V', 57, 44)
    _VIDIOC_G_CTRL      = _IOWR('V', 27, 8)
    _VIDIOC_S_CTRL      = _IOWR('V', 28, 8)

    # user-class control IDs defined by V4L2
    _V4L2_CTRL_CLASS_USER = 0x00980000
    _V4L2_CID_BASE        = _V4L2_CTRL_CLASS_USER | 0x900
    _V4L2_CID_AUDIO_MUTE  = _V4L2_CID_BASE + 9
&lt;/source&gt;

And last, let's define some numbers for working with the mixer device:

&lt;source lang=&quot;python&quot;&gt;
    # mixer control constants
    _SOUND_MIXER_FMRADIO         = 0x06
    _SOUND_MIXER_READ            = 0x80044D00
    _SOUND_MIXER_WRITE           = 0xC0044D00
&lt;/source&gt;

=== Opening the device ===

You gain access to the radio driver by opening the &lt;code&gt;/dev/radio&lt;/code&gt; device. Since you need a system FD instead of a native Python FD, we use &lt;code&gt;os.open&lt;/code&gt; instead of the built-in function &lt;code&gt;open&lt;/code&gt;:

&lt;source lang=&quot;python&quot;&gt;
    radio_fd = os.open(&quot;/dev/radio&quot;, os.O_RDONLY)
&lt;/source&gt;

If there's no tuner chip available (for example, if you run this code on the [[Nokia 770|770]] or the [[Nokia N810|N810]]), this line will throw an &lt;code&gt;OSError&lt;/code&gt;. Don't forget to catch it.

=== Retrieving information about the FM tuner ===

Now it's time to talk to the FM tuner. We do this by placing an &lt;code&gt;ioctl&lt;/code&gt;'' call on the device. &lt;code&gt;ioctl&lt;/code&gt; calls consist of a number (those we have defined above), and some argument. The argument is a pointer for passing a C structure to the driver. The driver may read from this structure or write into it.

A C structure can be built in Python with the &lt;code&gt;struct&lt;/code&gt; module. Because the following &lt;code&gt;ioctl&lt;/code&gt; call only retrieves information from the driver, we may provide an empty structure of the right size, like this:

&lt;source lang=&quot;python&quot;&gt;
    info = struct.pack(&quot;84x&quot;)
&lt;/source&gt;

Let's place the &lt;code&gt;ioctl&lt;/code&gt;'' call, and retrieve the results. For unpacking the structure, we have to provide the correct format string (see &lt;code&gt;help(struct)&lt;/code&gt; for details):

&lt;source lang=&quot;python&quot;&gt;
    data = ioctl(radio_fd, _VIDIOC_G_TUNER, info)
    
    # unpack the C struct
    fields = struct.unpack(&quot;L32sLLLLLLll4L&quot;, data)    
    tuner_index = fields[0]
    tuner_name = fields[1]
    tuner_type = fields[2]
    capability = fields[3]
    rangelow = fields[4]
    rangehigh = fields[5]
    rxsubchans = fields[6]
    audmode = fields[7]
    signal = fields[8]
    afc = fields[9]
&lt;/source&gt;

We should save the &lt;code&gt;tuner_index&lt;/code&gt; and &lt;code&gt;tuner_name&lt;/code&gt; for later, because this is how we address that particular tuner.

=== Setting the frequency ===

Next, we are going to tune into a radio station. For this, we have to set a frequency on the tuner. This is done by the V4L2 &lt;code&gt;_VIDIOC_G_FREQUENCY&lt;/code&gt; &lt;code&gt;ioctl&lt;/code&gt; invokation.

But a word of warning first: the driver does not take the frequency in kHz. You have to multiply your value with a constant factor first. The factor is either 0.016 or 16, depending on the device driver. On the N800, it is 16:

&lt;source lang=&quot;python&quot;&gt;
    FREQ_FACTOR = 16
&lt;/source&gt;

We are going to tune into 107.6 MHz now:

&lt;source lang=&quot;python&quot;&gt;
    freq = 107600 * FREQ_FACTOR
&lt;/source&gt;

Set up the C structure to pass to the driver:

&lt;source lang=&quot;python&quot;&gt;
    data = struct.pack(&quot;LLL8L&quot;, tuner_index, tuner_type, freq, 0, 0, 0, 0, 0, 0, 0, 0)
&lt;/source&gt;

Pass it to the driver:

&lt;source lang=&quot;python&quot;&gt;
    ioctl(radio_fd, _VIDIOC_S_FREQUENCY, data)
&lt;/source&gt;

=== Unmuting the tuner and setting the volume ===

You still do not hear anything from the radio. This is because the tuner is muted and its volume is set to 0. Let's change this:

Unmuting is easy:

&lt;source lang=&quot;python&quot;&gt;
    data = struct.pack(&quot;Ll&quot;, _V4L2_CID_AUDIO_MUTE, 0)
    ioctl(radio_fd, _VIDIOC_S_CTRL, data)
&lt;/source&gt;

Changing the volume requires us to open the mixer device:

&lt;source lang=&quot;python&quot;&gt;
    mixer_fd = os.open(&quot;/dev/mixer&quot;, os.O_RDONLY)
&lt;/source&gt;

Now we can set the volume for the left and right speaker:

&lt;source lang=&quot;python&quot;&gt;
    left_volume = 50
    right_volume = 50
&lt;/source&gt;

... and send it to the driver:

&lt;source lang=&quot;python&quot;&gt;
    data = struct.pack(&quot;bb&quot;, left_volume, right_volume)
    ioctl(mixer, _SOUND_MIXER_WRITE | _SOUND_MIXER_FMRADIO, data)
&lt;/source&gt;

Do not forget to close the mixer device after this:

&lt;source lang=&quot;python&quot;&gt;
    os.close(mixer_fd)
&lt;/source&gt;

Now you can listen to the radio.

=== Cleaning up ===

When you have finished listening to the radio, you should clean up and 
close the device again.

It's important to mute the radio, or you will hear it forever.

&lt;source lang=&quot;python&quot;&gt;
    data = struct.pack(&quot;Ll&quot;, _V4L2_CID_AUDIO_MUTE, 1)
    ioctl(radio_fd, _VIDIOC_S_CTRL, data)
&lt;/source&gt;

And don't forget to close the device:

&lt;source lang=&quot;python&quot;&gt;
    os.close(radio_fd)
&lt;/source&gt;

== Code ready for use ==

There is a pure Python module available for controlling the FM tuner. It is based on the information here. You can get it from [http://pyfmradio.garage.maemo.org the PyFMRadio project page].

[[Category:Development]]
[[Category:N8x0]]
[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>Programming the DSP</title>
    <id>203</id>
    <revision>
      <id>32784</id>
      <timestamp>2010-04-15T11:33:37Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Steps forward */ link</comment>
      <text xml:space="preserve">This article outlines the programming and usage of the DSP in the tablets.

== General sources of information ==

[http://www.ti.com/sc/docs/psheets/man_dsp.htm TI's docs for DSPs]. Do a search down the page for things with c55 in the description to get the documents that are of interest. Some direct pointers are listed at the end of this page.

[http://dspgateway.sourceforge.net DSP Gateway project]. This is used by the [[Nokia 770]], [[Nokia N800|N800]] and [[Nokia N810|N810]] to interface the ARM processor with the DSP.

== Setup the toolchain ==

Get the toolchain from [https://www-a.ti.com/downloads/sds_support/targetcontent/LinuxDspTools/index.html TI's Linux DSP Tools page] (you need a free registration to access the page). Select &quot;Linux DSP Tools v1.00&quot; and download it to &lt;code&gt;/tmp&lt;/code&gt; and unpack it:

&lt;pre&gt;
chmod a+rx /tmp/linuxdsptools_v1_00_00_06.bin
/tmp/linuxdsptools_v1_00_00_06.bin 
&lt;/pre&gt;

Select the installation directory under &lt;code&gt;/tmp&lt;/code&gt;. Once unpacked, you need to actually install it. Make sure you have &lt;code&gt;expect&lt;/code&gt; (&lt;code&gt;sudo aptitude install expect&lt;/code&gt;) and Java installed. Don't try to install the DSP tools under Scratchbox, as this does not work (i.e. this is an x86 based cross-toolchain for the DSP).

Install it under &lt;code&gt;/usr/local/ti_dsptools&lt;/code&gt; (use &lt;code&gt;sudo&lt;/code&gt; or make otherwise sure you can &lt;code&gt;make&lt;/code&gt; the directory): 

&lt;pre&gt;
cd /tmp/Linux-DSP-Tools-1.00.00.06 
./subpkg_install_linuxdsptools.exp /usr/local/ti_dsptools 
&lt;/pre&gt;

Copy the &lt;code&gt;avs_kernel.out&lt;/code&gt; from your device (in &lt;code&gt;/lib/dsp/&lt;/code&gt; these days) to &lt;code&gt;/usr/local/ti_dsptools/dspgw&lt;/code&gt;.

Now you should be able to compile (try something like [http://tuomas.kulve.fi/blog/2007/08/31/speex-encoder-on-n800s-dsp/ Speex port to DSP GW]).

Check [http://www.gossamer-threads.com/lists/maemo/developers/3938 this thread] for longer instructions.

Or email/IRC lardman/Simon Pickering (s dot g dot pickering at bath dot ac dot uk).

== Compiling a program ==

Get the DSP Gateway source packages from the [http://dspgateway.sourceforge.net/pub/index.php?Page=Download download page]. Download both the ARM-side package (&lt;code&gt;dspgw-3.3-arm.tar.bz2&lt;/code&gt;) and the DSP-side package (&lt;code&gt;dspgw-3.3-dsp.tar.bz2&lt;/code&gt;). You need version 3.3(.0) not version 3.3.1!

There is no need to go patching and rebuilding the 770 kernel or fiddling with the DSP kernel as these are both setup to use the DSP Gateway already.

Unpack the tarballs. Go to &lt;code&gt;'dspgw-3.3-arm/host_src/mod_utils&lt;/code&gt; and build the &lt;code&gt;coff_unresolve&lt;/code&gt; and &lt;code&gt;gen_dummy_kernel&lt;/code&gt; tools using your PC native toolchain (the one you use to build anything else not ARM-related). Simple &lt;code&gt;make&lt;/code&gt; should be sufficient. 

&lt;code&gt;gen_dummy_kernel&lt;/code&gt; is used to generate a dummy kernel based on the DSP kernel on your tablet (called &lt;code&gt;avs_kernel.out&lt;/code&gt;) against which you will link any modules you create so that they will run on the device. This should allow any unresolved symbols and function call addresses to be resolved in a static manner, but without needing to link statically (as you then remove the dummy kernel in the step below). &lt;code&gt;coff_unresolve&lt;/code&gt; is then run on the modules you will have just linked against the dummy kernel to remove the sections linked in from the dummy kernel.

Either copy these tools to your path or adjust &lt;code&gt;dspgw-3.3-dsp/src/apps/demo_mod/Makefile&lt;/code&gt; to use the tools from the directory where they are (e.g., create a folder for these utilities and place these files there, and use absolute path in Makefile like  &lt;code&gt;/usr/local/ti_dsptools/gateway/gen_dummy_kernel&lt;/code&gt; and &lt;code&gt;/usr/local/ti_dsptools/gateway/coff_unresolve&lt;/code&gt;). The other alternative to having explicit paths in all of your makefiles is to have a bash script that you source before doing DSP development to set relevant paths (add an example here).

To build the demo console (as an example):

Build the ARM side of the demo console in &lt;code&gt;dspgw-3.3-arm/apps/demo&lt;c/ode&gt; with &lt;code&gt;make demo_console&lt;/code&gt;.

You can either do this inside scratchbox or adjust CC in the Makefile to point to your arm cross compiler (e.g., &lt;code&gt;/scratchbox/compilers/arm-gcc-3.3.4-glibc-2.3.2/bin/arm-linux-gcc&lt;/code&gt;).

Get the &lt;code&gt;avs_kernel.out&lt;/code&gt; from your tablet and place this in the DSP-side build directory (i.e., the directory containing the code to run on the DSP in &lt;code&gt;dspgw-3.3-dsp/src/apps/demo_mod/&lt;/code&gt;). The &lt;code&gt;avs_kernel.out&lt;/code&gt; file is in the &lt;code&gt;/lib/dsp/&lt;/code&gt; directory. 

Adjust the Makefile (e.g., &lt;code&gt;dspgw-3.3-dsp/src/apps/demo_mod/Makefile&lt;/code&gt;) to use the &lt;code&gt;avs_kernel.out&lt;/code&gt; file to generate the &lt;code&gt;dummy_kernel.obj&lt;/code&gt; rather than the default &lt;code&gt;tinkernel.out&lt;/code&gt; (tinkernel is the name used in all of the documentation for the DSP kernel, it just happens that Nokia decided to name their kernel file differently. You don't need to mess about with the tinkernel source found with the toolchain, all you need is the actual binary &lt;code&gt;avs_kernel.out&lt;/code&gt; from your tablet). 

Run:

 make omap1

The code is compiled into an object file (&lt;code&gt;*.obj&lt;/code&gt;), the dummy kernel is created from your &lt;code&gt;avs_kernel.out&lt;/code&gt; file by the &lt;code&gt;gen_dummy_kernel&lt;/code&gt; utility you compiled earlier, the object file is linked against the dummy kernel and then the dummy kernel is stripped away from the resulting object file by the &lt;code&gt;coff_unresolve&lt;/code&gt; utility you created earlier. You are left with a file named &lt;code&gt;*.o&lt;/code&gt;.

=== Install the demo ===

After compiling your code, you'll need to place the DSP-side object file (&lt;code&gt;*.o&lt;/code&gt;) and linker command file (&lt;code&gt;*.cmd&lt;/code&gt;) in &lt;code&gt;/lib/dsp/modules/&lt;/code&gt;, you'll also need to make an entry in the &lt;code&gt;/lib/dsp/dsp_dld_avs.conf&lt;/code&gt; file to let the DSP know this module exists.

&lt;pre&gt;
# echo &quot;demo_console _task_demo_console 1 /lib/dsp/modules/demo_console.o&quot; &gt;&gt; /lib/dsp/dsp_dld_avs.conf
&lt;/pre&gt;

You'll then want to run &lt;code&gt;dsp_dld&lt;/code&gt; to restart the DSP and reload the module list. This might complain that it can't find the conf file:

&lt;pre&gt;
Nokia-N800-10:~# dsp_dld
sending SIGBUS signal to all task users...
killing pid 832.
killing pid 827.
killing pid 1582.
Can't open /lib/dsp/dsp_dld.conf
&lt;/pre&gt;

If so, you need to create a symlink from the actual file &lt;code&gt;dsp_dld_avs.conf&lt;/code&gt;, to the one it expects &lt;code&gt;dsp_dld.conf&lt;/code&gt; (both in the &lt;code&gt;/lib/dsp/&lt;/code&gt; directory). Then try again and you'll see something like this:

&lt;pre&gt;
Nokia-N800-10:~# dsp_dld
sending SIGBUS signal to all task users...
killing pid 4234.
killing pid 4236.
killing pid 4235.
mapping external memory: adr = 0x028000, size = 0x1000
mapping external memory: adr = 0x100000, size = 0x200000
mapping external memory: adr = 0x400000, size = 0x180000
detected binary version 3.3.0.0
setting DSP reset vector to 0x10389e
releasing DSP reset
DSP configuration ...
succeeded.
&lt;/pre&gt;

Then copy the ARM-side binary somewhere on the tablet (anywhere, but not on any FAT partitions on the flash cards, as these have no-execute enabled) and run it.

&lt;pre&gt;
Nokia-N800-10:~# ./demo_console
Congratulations! DSP is working!
&lt;/pre&gt;

If you see a message like this:

&lt;pre&gt;
Nokia-N800-10:~# ./demo_console
open: No such file or directory
&lt;/pre&gt;

It means you've either not added the module to the &lt;code&gt;/lib/dsp/dsp_dld_avs.conf&lt;/code&gt; file (correctly), or you've not run dsp_dld to refresh the DSP. In either case the &lt;code&gt;/dev/dsptask/&lt;/code&gt; device hasn't been created as the module couldn't be loaded, hence the &lt;code&gt;open&lt;/code&gt; error.

If you see a message like this:

&lt;pre&gt;
~ $ ./demo_console
open: Interrupted system call
&lt;/pre&gt;

Then something is wrong with the code on the DSP side.  Make sure that you added the exact line shown above to &lt;code&gt;/lib/dsp/dsp_dld_avs.conf&lt;/code&gt;.

=== Compiling other demos ===

If you decide to copy any code from the DSP Gateway PDF files, bear the following in mind (and also consider that the tarballs contain almost identical code so you might as well use them!):

Any \ characters appears as a ¥ in the PDFs and the ' sometimes comes out as a different character (smart quote) so make sure you check your code if you start getting weird errors (the last one had me scratching my head for a while as they look pretty much the same in my editor).

You'll also need to remove references to the include file. I don't have this, the tarball demos don't have this line either (and are otherwise identical to the PDFs).

== Steps forward ==

Although video out seems to have been dropped by Nokia with the N800 (and the DSP has become more stable, not sure if not using the framebuffer is the reason, or simply more mature hardware), anyway audio decoding and output is still performed on the DSP, and this is a suitable task for people to get stuck into. Framebuffer access works for the N8x0 and 770. Contact me ([[User:lardman|lardman]]) or read the maemo-developers list for more info. I should update this page when I have some time.

A pair of drivers are required to access the audio codec (a low-level mini-driver and a standard high-level class driver). These are obviously already present on the device, but no documentation is available about how to use them directly. In fact it can be seen from the functions called by existing modules (such as &lt;code&gt;pcm2.o&lt;/code&gt;) that it's a stream class driver. Therefore it may be possible to access this class driver directly (there are plenty of examples in the DDK, see below). 

It appears that this stream class driver is wrapped in some other function calls (i.e., the following functions are called by &lt;code&gt;pcm2.o&lt;/code&gt;):

&lt;pre&gt;
_EAP_CC_Mute
_EAP_CC_RemoveStream
_EAP_CC_RequestStream
_EAP_CC_SetPanning
_EAP_CC_SetVolume
_EAP_CC_UnMute
_EAP_clock
_EAP_getTicks
&lt;/pre&gt;

These &lt;code&gt;_EAP_*&lt;/code&gt; functions are built into the &lt;code&gt;avs_kernel.out&lt;/code&gt; DSP kernel. It would be useful to have a header file for these functions, and if possible some example code and/or instructions illustrating their use.
&lt;br&gt;Some useful info about writing DSP device drivers and using SIO_* functions can be found [http://www.design-reuse.com/articles/6849/how-to-write-dsp-device-drivers.html here].

Another option is to write a completely new mini-driver + class driver + wrapper implementation. This initially looks like a reasonable task. One requires the [https://www-a.ti.com/downloads/sds_support/targetcontent/ddk/DDK_1_20/index.html DSP/BIOS Driver Developer Kit 1.20] for examples and information about writing drivers, the [http://focus.ti.com/docs/toolsw/folders/print/sprc133.html Chip Support Library] with which the DDK interfaces, and information about the hardware codec itself.

On the 770, the codec is called &lt;code&gt;aic23&lt;/code&gt; (see &lt;code&gt;dmesg&lt;/code&gt; output). On the N800 the codec is called &lt;code&gt;TSC2301&lt;/code&gt; (part of the touch screen chip) (again see your &lt;code&gt;dmesg&lt;/code&gt; output—see [http://www.internettablettalk.com/forums/showpost.php?p=30655&amp;postcount=46 this thread]. 

&lt;pre&gt;
[ 312.232727] #0: OMAP24xx EAC with codec TSC2301
&lt;/pre&gt;

Data about both of these codecs is available on the Texas Instruments website. See the page for [http://focus.ti.com/docs/prod/folders/print/tsc2301.html TSC2301]. It includes a data sheet with the [http://focus.ti.com/lit/ds/symlink/tsc2301.pdf info needed to write the mini-driver].

Unfortunately I'm not sure that it's possible to add in a new mini-driver without re-compiling the DSP kernel (see chapter 3 of spru616a.pdf contained in the DDK - link above). It might be possible to create a dsptask containing the driver, but again, I'm not sure about this.

For those who want more information about disassembly, take a look at these documents:

{| class=&quot;wikitable&quot;
| spru374g 
| DSP assembly code memonics
|-
| spru281f 
| c/c++ calling conventions (ch6 Run-time environment)
|-
| spru371f 
| cpu/register info (ch2 CPU registers, etc.)
|-
| spru280h.pdf 
| TMS320C55x Assmbly Language Tools User's Guide (ch2 Introduction to 
|-
| Common Object File Format 
| c12 disassembler
|}

== Tips, tricks and troubleshooting ==

Check that you're linking against the current &lt;code&gt;avs_kernel&lt;/code&gt; (well the dummy kernel generated from this). If not, it won't load.

Check that you've correctly defined the flags for the task. This is especially easy to miss as the flag names are rather similar (and cryptic). A list can be found in the DSP gateway spec PDF file. Look for the TCFG section.

&lt;code&gt;dbg()&lt;/code&gt; function: This function allows one to output messages (like &lt;code&gt;printf&lt;/code&gt;) to &lt;code&gt;dmesg&lt;/code&gt; from the DSP-side. Before OS2008 you needed to recompile the kernel to enable DSP debugging messages; in OS2008 this is already enabled. You use it like so:

 dbg('this is a message, this is a value=%d', some_value);

Note that the variable &lt;code&gt;some_value&lt;/code&gt; must be a short or smaller (16bit or less). If you pass it a 32bit number, as often as not it returns zero (probably due to the strange endianness of the 32bit data type that means the first 16bits are the high bytes). Therefore split your 32bit data into 16bit chunks (or cast if you are sure about the limited range) if you want to see them.

=== Location of data ===

I had some troubles trying to access an array of data defined as a global const int array. The problem was that every element of the array returned 0 rather than the value which was set in it. After messing about for a while it occurred to me that the problem is to do with the location in memory of global const data. Changing the definition from a global const int array to a simple global int array solved the problem and the data could be accessed.

I didn't investigate this further, but in the &lt;code&gt;avs_kernelcfg.cmd&lt;/code&gt; file you can see the locations of the various parts of memory and it may be that to obtain the actual data (rather than a zero) one needs to either use a far function (see the C/C++ manual for the DSP) or make sure the data is in the right section of memory.

== Documentation pointers ==

=== Compiler optimization ===

[http://focus.ti.com/lit/ug/spru281f/spru281f.pdf TMS320C55x Optimizing C/C++ Compiler  User's Guide]

* '''p79''': 3.2 Performing File-Level Optimization (-O3 Option)
* '''p80''': 3.3 Performing Program-Level Optimization (-pm and -O3 Options)

=== ASM with C/C++ ===

[http://focus.ti.com/lit/ug/spru281f/spru281f.pdf TMS320C55x Optimizing C/C++ Compiler  User's Guide]

* '''p83''':  3.3.2 Optimization Considerations When Mixing C and Assembly
* '''p176''': 6.5 Interfacing C/C++ With Assembly Language
* '''p178''': Example 6-3. Calling an Assembly Language Function From C
* '''p181''': 6.5.3 Using Inline Assembly Language

[http://www.ti.com/litv/pdf/spru376a TMS320C55x DSP Programmer's Guide]

* '''p76''': Table 3-6. TMS320C55x C Compiler Intrinsics

=== Misc ===

[http://focus.ti.com/lit/ug/spru281f/spru281f.pdf TMS320C55x Optimizing C/C++ Compiler  User's Guide]

* '''p122''': 5.3 Data Types


[[Category:Development]]
[[Category:N8x0]]
[[Category:770]]</text>
    </revision>
  </page>
  <page>
    <title>Providing changes since last version of a package</title>
    <id>1162</id>
    <revision>
      <id>6834</id>
      <timestamp>2008-08-28T02:54:03Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Providing changes since last version of a package]] moved to [[Task:Providing changes since last version of a package]]: Moving to proper namespace</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Providing changes since last version of a package]]</text>
    </revision>
  </page>
  <page>
    <title>Proximus</title>
    <id>4890</id>
    <revision>
      <id>46092</id>
      <timestamp>2011-12-21T08:22:14Z</timestamp>
      <contributor>
        <username>edgar2</username>
        <id>1033</id>
      </contributor>
      <comment>/* Actions */</comment>
      <text xml:space="preserve">=Proximus=

This is a page discussing the implementation of a daemon which can trigger certain actions (e.g. change sound settings, open application) when certain states or conditions change (e.g. location, network connections, time)

Thanks to Jaffa for the name (&quot;Mix of &quot;proximity&quot; and &quot;tempus&quot; - the original use cases&quot;)

Actions should be pluggable or scriptable by users, so they can add new features easily, the same is potentially true of the conditions (depends how hard that is to implement).

Ideally this daemon could be used as a backend for various potentially useful applications: e.g. reminder that your bus-stop is coming up; turn wifi off at night; change to silent mode during a meeting (from calendar), etc.

Please feel free to add more details, comments, etc.


==Conditions==

These are the things to be checked and if true will cause some action to be performed.

'''Time based'''
* Current time [earlier than, later than, equal to]
* Current hour [&lt;, &lt;=, ==, &gt;, &gt;=, !=]
* Current minute [&lt;, &lt;=, ==, &gt;, &gt;=, !=]
* Current second [&lt;, &lt;=, ==, &gt;, &gt;=, !=] - perhaps somewhat excessive -lardman

'''Location based'''
* Current location [within some radius, outside of some radius] - implement by looking at the transitions, rather than continually running a rule while true/false? -lardman

Depending on the radius (and perhaps some hints) we can work out whether we can use cell id (free if we cache the relevant ones offline) or require GPS accuracy. In any case we can avoid turning the GPS on until we are close by using the known/cached cell id close to the location as the first part of the check.

* Connected to X wifi network

'''Connection based'''
* Connected to a wifi network
* Bluetooth connection?

'''Other'''
* Specific application starts running
* Specific application is running
* Specific application stops running
* Specific application isn't running

* headphones plugged in/out

* Charger plugged in/out

* Specific type of calendar event is ongoing (e.g. meeting in progress)

* NFC tag nearby (on [http://swipe.nokia.com/ N9])

=== Joins ===
* AND
* OR
* NOT

How to allow combinations? Expressions supporting parentheses? e.g.

  wifi_connected(&quot;bleb.org WLAN&quot;) AND NOT (headphones_connected OR bluetooth_connected(&quot;Headset&quot;))

==Actions==

* Sound [on, off]
* Profile select [General, Silent]
* Bluetooth [connect, disconnect to/from known device?]
* Bluetooth [on, off (visible)]
* Wifi [connect, disconnect]
* Wifi [auto-connect on/off]
* Wifi [Auto change to wifi on/off]
* Random Application [Start, stop]
* Flight mode [on, off]
* Mobile network [Dual, 3g, gsm]
* predefined SMS to predefined number

Actions should be pluggable or scriptable by users, so they can add new features easily.

==Interface==

As this is a daemon, the user will need some way of interacting with it to produce their desired behaviour.

One option is for applications to be able to talk to the daemon via some API so that they can use its functionality themselves without exposing much to the user.

Some examples of applications that could use this functionality:
* http://code.google.com/p/bus-stop-alarm/
* http://forums.precentral.net/hedami/217570-geostrings-location-based-reminders.html
* http://www.near2there.com/index.aspx
* http://www.appbrain.com/app/llama-location-profiles/com.kebab.Llama
* http://mynokiablog.com/2010/11/27/video-nokia-situations-from-betalabs-intuitive-time-location-and-network-based-profiletheme-and-more-changer-demoed-on-nokia-n8/


One would also want an overview of the rules that are in place (much like looking at the alarms list), and this would allow the user to set/delete different rules, and also to add priorities to the rules (otherwise we will end up with a case where rules conflict).

Would the user be allowed to delete rules that are set by external applications? They should be able to see them, so that they can alter the priority, but perhaps not be able to alter their specifics. Something to consider.

lcuk pointed out the Windows 7 parental controls as one thing to think about: http://img.ampercent.com/post/set-up-time-limits-parental-controls.png

My initial thought was to be able to create a rule which contains potentially multiple conditions joined by Boolean operators (AND, OR, NOT, XOR) and have this composite rule trigger one or a number of Actions to be performed. I have seen this kind of thing used before for data analysis, I'll try to dig out a screen shot.</text>
    </revision>
  </page>
  <page>
    <title>Public key logins</title>
    <id>1132</id>
    <revision>
      <id>21469</id>
      <timestamp>2009-11-01T12:22:44Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <text xml:space="preserve">It is worth setting up your tablet to use public key authentication. The main advantage is that you can login through ssh directly into the
user account and keep root access for those situations which really need it. It also makes the process of logging in by ssh somewhat
simpler as you don't have to type in any passwords. 

== Static IP ==

First off, if you can, then set your tablet to use a fixed IP address on your network. You can do this on your router by assigning a specific IP to your tablet's MAC address, or this from on your tablet in the 'advanced' part of the connection setup and choose an address accessible on your network but outside the range allocated by DHCP. Then you can edit &lt;code&gt;\windows\system32\drivers\etc\hosts&lt;/code&gt; to include an entry for your tablet. You need a line with ip address and the name.

 192.168.1.21    n810

== Windows ==

If you use putty as your Windows SSH client (and pscp to copy files to/from the tablet), then follow these instructions to generate keys:

On the windows system run &lt;code&gt;puttygen&lt;/code&gt;. Make sure that SSH-2 RSA is selected in the radio buttons at the foot of the window then press the 'Generate' button (this may take a few minutes).

In the 'Key comment' box type in something memorable by which to identify the key (e.g., 'duncan-n810-20080113'). It doesn't much matter what you use, but if you generate multiple keys it can help to distinguish them.

You can enter a passphrase if you want additional security, but it is not required. Otherwise leave the passphrase field blank.

Save the private key using a name such as duncan-n810-20080113.ppk. Don't close puttgen yet.

Now run &lt;code&gt;putty root@n810&lt;/code&gt; and login using your root password. At the command prompt enter the following commands (the &lt;code&gt;mkdir&lt;/code&gt; may not be needed, if so it will tell you the file already exists):

 Nokia-N810-50-2:~# mkdir /home/user/.ssh
 Nokia-N810-50-2:~# vi /home/user/.ssh/authorized_keys

In &lt;code&gt;vi&lt;/code&gt;, press 'i' to get into insert mode. Now find the Putty Key Generator window, and copy the entire text from the box under 'Public key for pasting into OpenSSH authorized_keys file'. It will be quite long so be sure you get it all (it starts with 'ssh-' and ends with
the key comment you entered earlier).

Switch back to the putty session running vi and right click to paste the key into the window; it must be all in one line. When it has
finished pasting, press the escape key then the three keys ':wq' 

This should put you back at the command prompt. Try the following command just to check. You should see something like this:

 Nokia-N810-50-2:~# cat /home/user/.ssh/authorized_keys
 ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIBx5B1fZksY4shwePrPVfy5x02m0RTtcDY6jZRL0aC0lxlV
 sEHYuk4aPtsFTJb3JOveWrKqtOuJbmnQ831bw4RpCoFJonrTEGP4sFyS2dFALQEqQr9lXzGAKXbPWUij
 N/eZLcORpvxuCCvzbCNjgKBUxR4uGrGw0HajXkfWQLuaDQ== duncan-n810-20080113

Check that you got both the start 'ssh-rsa' and the end of this string in the file, it is quite easy to not quite copy all of it. Now go back
to Windows and run putty again specifying the private key file to be used for the login:

 C:\&gt;putty -i duncan-n810-20080113.ppk user@n810

The output in the putty window should look something like this:

&lt;pre&gt;
 Using username &quot;user&quot;.
 Authenticating with public key &quot;duncan-n810-20080113&quot;
       
 BusyBox v1.6.1 (2007-09-27 18:08:59 EEST) Built-in shell (ash)
 Enter 'help' for a list of built-in commands.
        
 ~ $
&lt;/pre&gt;

Next create a putty saved session. Run putty without any arguments. Select category 'Auth', and in the 'Private key for authentication'
box select the ppk file you created. Then select the top category 'Session', in the 'host name' field enter 'user@n810' (replace n810
with the name you gave your tablet in your hosts file) then in the 'Saved Sessions' box enter 'n810'.

You can make putty use the saved session by running with the '-load' option (e.g., putty -load n810).

pscp will use the session automatically (provided the hostname and the session name are the same):

 pscp myvideo.mp4 n810:/media/mmc1/Video

For winscp create a new session filling in the host name (n810), user name (user), and private key file (the ppk file you saved).


[[Category:Users]]

[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Public key logins for putty, pscp and winscp</title>
    <id>1794</id>
    <revision>
      <id>12750</id>
      <timestamp>2009-04-23T11:22:58Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Public key logins for putty, pscp and winscp]] moved to [[Public key logins]]</comment>
      <text xml:space="preserve">#REDIRECT [[Public key logins]]</text>
    </revision>
  </page>
  <page>
    <title>Pushing a maemo.org task</title>
    <id>831</id>
    <revision>
      <id>33897</id>
      <timestamp>2010-05-05T17:52:14Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorise</comment>
      <text xml:space="preserve">The [[maemo.org Sprints|maemo.org Sprint]] development process uses tasks to develop improvements and new ideas. If you have an idea for improving maemo.org, you can push a task to implement your idea. There are two efficient ways of pushing a task related to maemo.org development.

# Just Do It, or
# See below.

== Proposing a task ==
There is a process for tasks that can't be accomplished easily by a single person.

# Create a new wiki page named &quot;Task:...&quot; explaining what you want to achieve. Keep the plan in the main page and the comments in the &quot;discussion&quot; page.
# It is good to keep the right size for tasks. Too simple tasks (something one person can do in an evening) can be dealt with a simple bug report/enhancement request, or perhaps in the Just Do It way. Too complex tasks (several people, several months) are better handled when they are split in subtasks. Since we organize the development around 20-30 days sprints, it is good to think in tasks that 1-3 people can complete in that time frame.
# Once it's ready for review, list it in the Proposals and add the [[Template:task|Proposed Task]] template, &lt;nowiki&gt;{{task|proposed}}&lt;/nowiki&gt;, the the top of the page.

== Getting a task in the backlog ==
The maemo.org development team keeps a backlog of tasks that are approved, but still waiting for a sprint to be committed. The tasks proposed are reviewed in the sprint meetings. When they met certain conditions they are approved and placed in the backlog.

The criteria:

# The task makes sense in the context of maemo.org and other ongoing tasks.
# The wiki page provides clear information of the objectives and the steps proposed.
# The task looks like achievable within a sprint.
# There is at least one person able to push it forward.

Ideally you will attend the sprint meeting to present the proposal. If you cannot make it, an email to the maemo-community list and/or coordinating with someone presenting it will do.

== Getting a task committed to the next sprint ==
In every sprint meeting the maemo.org development team agrees on the tasks committed for the next sprint. Going through this process is a major step:

# A task committed to a sprint becomes a team commitment. It's not your own little thing anymore.
# A task committed needs to be completed. It can be delayed and jump to the next sprint but in rare circumstances will jump back to the backlog or be discarded.

This is why the maemo.org development team looks carefully what goes inside a sprint. And this is why your task might be postponed to a next sprint planning meeting if the team doesn't feel like the elements to accomplish are in place.

If you want to push a task for a sprint, you or someone also involved in the task need to be present in the meeting. If you really can't make it, send a convincing email to maemo-community before the meeting.

== Completing a task ==
WOW, your task is now part of a sprint. Congratulations! Now you have to complete it. In order to do so a good idea is to report and document progress. It works getting yourself organized and making easier for others to help.

=== Task page up to date ===
Document in the task page the steps you are doing and completing. Use it for your own guidance and team coordination. Ask people to discuss in the &quot;discussion&quot; page. Link to any interesting resources. Think that all this will help someone else helping today... or in the future, when new tasks appear around this one.

=== Daily micro-reports ===
Daily standup scrum meetings at a certain time when working online is difficult.  ;)  Instead, it's easy to update your status in a wiki page by telling in 3 sentences:
# What have I done since my last report. This is useful for others to see what is the progress.
# What is my plan today. This helps you to get organized and provides an orientation to others working in related tasks.
# What are the obstacles I'm facing. This is useful to highlight problems (e.g. non-evident dependencies) where others can help.

Ideally you will do this every day before you start working on maemo.org stuff. No need to do it the days you are doing something else.

=== Progress table ===
We skip time allocation and nice graphical burn-down charts :) but we do keep a table with the status of all committed tasks in a sprint. This way it's easy to see in a first glance where are the green and red areas. You are responsible of keeping the status of your task up to date.

{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightGreen&quot;
| 2008-06-24 || Task D || Miguel || '''DONE''' || LightGreen = Completed
|- style=&quot;background:LightBlue&quot;
| 2008-03-21 || Task B || Micaela || 50% || LightBlue = Good progress
|-
| 2008-02-20 || Task A || Mika || 50% || Default = Just standing
|- style=&quot;background:Orange&quot;
| 2008-04-22 || Task C || Michael || 50% || Orange = Some help needed!
|- style=&quot;background:Tomato&quot;
| 2008-05-23 || Task D || Michelle || 50% || Tomato = Really stuck/delayed
|} 

Chase the green!

[[Category:maemo.org]]
[[Category:Sprints]]</text>
    </revision>
  </page>
  <page>
    <title>Py2deb</title>
    <id>1262</id>
    <revision>
      <id>50036</id>
      <timestamp>2012-10-01T11:25:16Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Py2deb]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">On the Maemo platform, software is distributed using the Debian package system. If you don't develop in Scratchbox, but directly on the device, you need a tool to properly put together your software for distribution as such a .deb package.
For this, you can either use [[PyPackager]] or py2deb, both developed by [[User:Khertan|Khertan]]:
* Use PyPackager to build a .deb package for redistribution in maemo.org/downloads, on your private homepage or wherever. There's no PyPackager for Fremantle yet.
* Use Py2Deb to prepare a package structure suitable for autobuilder, so that users can later download it directly from the [[Extras]] repository using the Application Manager of the tablets.

== Install py2deb ==
Install python2.5-py2deb (it can be found in the [[extras-devel]] repository)

1 march 2010 Py2deb is broken. 
It creates an incorrect bug tracker link for your package in extras.
 
You can solve the bugtracker issue easily by editing &lt;code&gt;/usr/lib/python2.5/site-packages/py2deb.py&lt;/code&gt; line 382 changing it from:
 bugtrackerstr = &quot;XSBC-Bugtracker: %s&quot; % ( self.xsbc_bugtracker )
into
 bugtrackerstr = self.xsbc_bugtracker

== Prerequisites ==

Create a folder &lt;code&gt;/myapp&lt;/code&gt; under your &lt;code&gt;/MyDocs&lt;/code&gt; folder (for example,  &lt;code&gt;/home/user/MyDocs/mclock&lt;/code&gt;). Then add the following files and folders:
* A subfolder &lt;code&gt;/src&lt;/code&gt; that contains all your source files in a folder structure which represents the way your app files will install on the device (See mClock example in next section of this article) - and with the correct permissions set!
* The icon for your software package (for example, mclock.png, 48x48 pixels), the one that will be visible for your package in the application manager.
* A copy of the &lt;code&gt;build_myapp.py&lt;/code&gt; file, named and edited to your needs (for example, &lt;code&gt;build_mclock.py&lt;/code&gt;) as seen below

=== programs and libraries with distutils ===

If you want to package a Python program or library that is set up correctly with distutils, you can use 

  $ python setup.py bdist_dumb

to compile and generate a .tar.gz package in &lt;code&gt;dist/&lt;/code&gt; subdirectory. Just unpack that package in the src/ folder and add the hildon desktop integration files (see below) there.

== Example /src folder structure ==

Files needed for the Hildon desktop integration:
  /src/usr/share/applications/hildon/mClock.desktop
  /src/usr/share/dbus-1/services/mClock.service
  /src/usr/share/icons/hicolor/48x48/hildon/mclock.png
  /src/usr/share/icons/hicolor/scalable/hildon/mclock.png  (64x64 pixel)

== mClock.desktop file ==

  [Desktop Entry]
  Version=1.0.0	Version of this file, NOT of the app. Keep it at 1.0.0
  Encoding=UTF-8
  Name=mClock	Name of the app as seen in Menu
  Comment=Clock &amp; day/night map	Description of the app as seen as subtitle in Menu in Finger mode 
  Exec=/opt/mClock/mClock.py	Link to the app
  Icon=mclock	Name of our icon file, without the trailing .png part
  X-Icon-path=/usr/share/icons	Path to the icon
  X-Window-Icon=mclock	Name of our icon file, without the trailing .png part (again?!)
  Type=Application
  X-Osso-Service=com.nokia.mclock	
  X-Osso-Type=application/x-executable
  StartupWMClass=mClock	Only needed because it's a PyGame app (would be automatic with GTK)

Note that you need the X-Osso-Service line only if you actually use osso services. Including that line in the .desktop file without proper handling of osso events in the application will result in the application being terminated shortly after startup.

== mclock.service ==
  [D-BUS Service]
  Name=com.nokia.mclock	MUST begin with com.nokia. due to a bug, anything else WONT work
  Exec=/opt/mClock/mClock.py	Link to the app
 

== Files of the application itself ==
  /src/opt/mClock
  /src/opt/mClock/mClock.py
  /src/opt/mClock/sun.py
  /src/opt/mClock/img/0-Night.jpg
  /src/opt/mClock/img/1-Winter-January.jpg
  /src/opt/mClock/img/2-Spring-April.jpg
  /src/opt/mClock/img/3-Summer-July.jpg
  /src/opt/mClock/img/4-Fall-October.jpg
  /src/opt/mClock/img/sun.png

mClock.py should begin with:
  #!/usr/bin/env python
and be executable

== Setup the build_myapp.py code ==

Copy the following code to create your own build_myapp.py, then edit according to your needs:
&lt;source lang=&quot;python&quot;&gt;
#!/usr/bin/python2.5
# -*- coding: utf-8 -*-
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published
## by the Free Software Foundation; version 2 only.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.
##
import py2deb
import os
if __name__ == &quot;__main__&quot;:
    try:
        os.chdir(os.path.dirname(sys.argv[0]))
    except:
        pass
    print
    p=py2deb.Py2deb(&quot;mclock&quot;)   #This is the package name and MUST be in lowercase! (using  &quot;mClock&quot; fails miserably, for example)
    p.description=&quot;A simple clock for Maemo, including a day/night world map.\nPress D-Pad or bottom left to switch view mode.\nESC to exit.\nLeft/right D-Pad (or touching l/r border of screen)\nto change season.&quot;
    p.author=&quot;Tom Waelti&quot;
    p.mail=&quot;twaelti@gmail.com&quot;
    p.depends = &quot;python2.5, python-osso, python-dbus, python2.5-gtk2, python2.5-pygame&quot;
    # Edit this based on your import statements (for example, you probably will not need pygame)
    p.section=&quot;user/office&quot;
    # When editing the .section, make sure to use [[Packaging#Sections|an allowed section]] - otherwise the autobuilder will give a warning.
    p.icon = &quot;/home/user/MyDocs/mclock/mClock.png&quot;
    p.arch=&quot;all&quot;                #should be all for python, any for all arch
    p.urgency=&quot;low&quot;             #not used in maemo onl for deb os
    p.distribution=&quot;fremantle&quot;
    p.repository=&quot;extras-devel&quot;
    p.xsbc_bugtracker=&quot;http://bugs.maemo.org&quot;
    #  p.postinstall=&quot;&quot;&quot;#!/bin/sh
    #  chmod +x /usr/bin/mclock.py&quot;&quot;&quot; #Set here your post install script
    #  p.postremove=&quot;&quot;&quot;#!/bin/sh
    #  chmod +x /usr/bin/mclock.py&quot;&quot;&quot; #Set here your post remove script
    #  p.preinstall=&quot;&quot;&quot;#!/bin/sh
    #  chmod +x /usr/bin/mclock.py&quot;&quot;&quot; #Set here your pre install script
    #  p.preremove=&quot;&quot;&quot;#!/bin/sh
    #  chmod +x /usr/bin/mclock.py&quot;&quot;&quot; #Set here your pre remove script
    version = &quot;0.5.7&quot;           #Version of your software, for example &quot;1.2.0&quot; or &quot;0.8.2&quot;
    build = &quot;1&quot;                 #Build number, for example &quot;1&quot; for the first build of this version of your software. Increment for later re-builds of the same version of your software.
                                #Text with changelog information to be displayed in the package &quot;Details&quot; tab of the Maemo Application Manager
    changeloginformation = &quot;Fixed (large) icon.&quot; 
    dir_name = &quot;src&quot;            #Name of the subfolder containing your package source files (for example, usr\share\icons\hicolor\scalable\myappicon.svg, usr\lib\myapp\somelib.py). We suggest to leave it named src in all projects and will refer to that in the wiki article on maemo.org
    #Thanks to DareTheHair from talk.maemo.org for this snippet that recursively builds the file list.
    for root, dirs, files in os.walk(dir_name):
        real_dir = &quot;/&quot; + root[len(dir_name):]
        fake_file = []
        for f in files:
            fake_file.append(root + os.sep + f + &quot;|&quot; + f)
        if len(fake_file) &gt; 0:
            p[real_dir] = fake_file
    print p
    r = p.generate(version,build,changelog=changeloginformation,tar=True,dsc=True,changes=True,build=False,src=True)
&lt;/source&gt;

When editing the .section, make sure to use [[Packaging#Sections|an allowed section]] - otherwise autobuilder will give a warning.

== Run your build_myapp.py code ==

Open [[terminal|X Terminal]] on your device and change directory into your folder (for example, &lt;code&gt;cd /home/user/MyDocs/mclock&lt;/code&gt;). Then run your code using
 run-standalone.sh python2.5 ./buildmyapp.py
For example,
 run-standalone.sh python2.5 /home/user/MyDocs/mclock/build_mclock.py
in Xterm. py2deb will now package your files. In the process, it might also ask about (or complain if its missing) your PGP/GPG passphrase so that it can sign your source package - this can however safely be ignored, as autobuilder doesn't require package signing anymore since late 2008.

Be warned that py2deb will run other commands inside xterm.  If you're building by sshing into your N900, it may look as it was stuck.  Turn on the N900's display, and you'll notice an xterm awaiting input.

Once this is done successfully, your /MyDocs/myapp folder will contain three new files, for example:
* &lt;code&gt;mclock_0.5.6-1.changes&lt;/code&gt; (the changelog)
* &lt;code&gt;mclock_0.5.6-1.dsc&lt;/code&gt; (the package description)
* &lt;code&gt;mclock_0.5.6-1.tar.gz&lt;/code&gt; (the packed source files)

== Upload to autobuilder ==

The 3 files created can now be &quot;fed&quot; to the Autobuilder who will build the final debian package and then push your app into the Extras Devel repository.

Check [[Uploading to Extras-devel#Upload|this section]] to learn about uploading to autobuilder (Using the [https://garage.maemo.org/extras-assistant/index.php webbased assistant] is probably the easiest way to get started).

== Track autobuilder ==

After your upload, autobuilder will try to build your package. This will take a few minutes.&lt;br/&gt;
Once it has finished (or failed :-), you will receive an email with the result of the autobuild as the subject (for example, &quot;[fremantle]: mclock 0.5.6-1 OK&quot;) and some log details in the message body. It will also include a link to the detailed logs (for example,  [https://garage.maemo.org/builder/diablo/mclock_0.5.6-1/ mClock]) so that you can learn more about any errors etc. The results of your build will also show up in the [https://garage.maemo.org/pipermail/extras-cauldron-builds/ extras-cauldron-builds Archives].

Upon successfull build, it will take some more time (normally up to 30 minutes) for the application to show up in the [http://repository.maemo.org/extras-devel/pool/fremantle/free/ Extras Devel repository], for example as [http://repository.maemo.org/extras-devel/pool/fremantle/free/m/mclock/ mclock_0.5.7-1_all.deb].

== Test your package ==

If your build was OK, you can now refresh your Application Manager (make sure that you did add and enable the [[Extras#Extras-devel|extras-devel repository]]!) and install your application from there. Ask some friends in the Maemo community (mailing lists, talk, IRC) to test your package.

== Promote your package ==

Once initial testing in extras-devel provided good results, you are ready to [[Uploading to Extras-devel#Promotion|promote]] your package to Extras-Test, meaning that it will now become available to a broader range of testers.
And one day, after gettings 10 thumbs up in there (and having the package at least 10 days in extras-testing), you can promote it to the &quot;real&quot; extras repository, making it available to all Maemo owners globally :-)

[[Category:Development]]
[[Category:Packaging]]
[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo</title>
    <id>1921</id>
    <revision>
      <id>45551</id>
      <timestamp>2011-10-11T02:26:12Z</timestamp>
      <contributor>
        <ip>71.49.87.2</ip>
      </contributor>
      <comment>/* Using it */</comment>
      <text xml:space="preserve">== What is PyMaemo? ==

The [http://pymaemo.garage.maemo.org/ PyMaemo] (Python for Maemo) project maintains a set of packages necessary to run and develop Python applications on the Maemo platform.

== Supported Software ==

We currently maintain support for the python interpreter, bindings and a few applications in the Maemo platform. A detailed list can be found in [[PyMaemo/Components]].

== Screenshots ==

{{main|PyMaemo/Screenshots}}

== Software written using PyMaemo ==

{{main|PyMaemo/Statistics}}

== Documentation ==

* [[/Quick start guide | Quick Start Guide for N900]]
* [[/GUI toolkit selection guide|GUI Toolkit Selection Guide]]
* [[/Components|List of PyMaemo components]]
* [[/How to build|How to build PyMaemo packages]]

=== Tutorials ===

* [[/Documentation for pyside-assistant|PySide-Assistant Tutorial]]
* [[/UI tutorial|python-hildon Tutorial]]
* [[/Using Location API|Using Location API]]
* [[/Accessing APIs without Python bindings|Accessing APIs without Python bindings]]
* Easy packaging with [[py2deb]] or [[PyPackager]]
* [http://temporaryland.wordpress.com/2011/01/26/python-for-newbies/ Python Tutorial for Newbies] with a special emphasis on Maemo
* [[/Portrait mode|Python auto-rotation (Portrait mode) on Maemo 5]]
* [[Performance Considerations for Python Apps|Python and Performance]]
* [[Internationalize a Python application]]

==== mikec's &quot;30 minutes&quot; series ====

* [http://talk.maemo.org/showthread.php?t=39879 Qt4 Designer and Python in 30Min]
* [http://talk.maemo.org/showthread.php?t=43663 Qt Designer/Python for Windows XP in 30 Mins]
* [[Customising Qt look and feel and Python in 30 Mins]]

=== Examples ===

* [http://pymaemo.garage.maemo.org/conic.html python-conic examples]
* [http://git.gnome.org/browse/gnome-python/tree/examples/gconf python-gconf examples]
* [[/Python-osso examples|python-osso examples]]
* [[/Phone call and SMS examples|Phone call and SMS examples]]
* [http://talk.maemo.org/showpost.php?p=577316&amp;postcount=9 PyQt Stacked Windows] 
* [[DbusScripts|Python Dbus tricks]]
* [http://wiki.maemo.org/Phone_control#Python Phone control - Python]

=== Manuals and References ===

* [http://pymaemo.garage.maemo.org/python_hildon_manual/ python-hildon manual]
* [http://pymaemo.garage.maemo.org/python_location_manual/ python-location manual]

=== In progress documentation ===

This section contains links to documentation that is still being written.

* [[/Python 2.6 porting guide|Python 2.6 porting guide]]

=== Ye Olde Documentation ===

This section contains documentation that hasn't been updated to Maemo 5 (Fremantle) era.

* [[PyMaemo/Using Python in Maemo|Using Python in Maemo]]
* [http://maemo.org/development/documentation/apis/3-x/python-maemo-3.x/ API Documentation (Maemo 3.x Bora)]
* [http://www.teemuharju.net/2006/01/26/coding-for-nokia-770-using-python-part-1/ Coding for Nokia 770 using Python part 1]
* [http://www.teemuharju.net/2006/02/08/coding-for-nokia-770-using-python-part-2/ Coding for Nokia 770 using Python part 2]
* [http://my.opera.com/monroe/blog/pymaemo-tips Jason's useful tips for PyMaemo development]
* [http://pycage.blogspot.com/2007/12/tablet-python-1-relocatable-software.html Martin's useful tips for PyMaemo development]
* [[PyMaemo/Python-GPSbt|python-gpsbt introduction and example (only applicable to Maemo 4.x)]]
* [http://therning.org/magnus/archives/57 GConf in Python]
* [http://pymaemo.garage.maemo.org/abook.html python-abook examples] (Chinook and earlier)

==== Using it ====

* [[PyMaemo/Installation]]
* [[PyMaemo/Manual installation]]
* [[PyMaemo/SDK installation]]
* [[PyMaemo/FAQ]]

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Accessing APIs without Python bindings</title>
    <id>3445</id>
    <revision>
      <id>38471</id>
      <timestamp>2010-09-12T11:02:14Z</timestamp>
      <contributor>
        <ip>213.150.1.132</ip>
      </contributor>
      <comment>/* Accessing Items in a GList */</comment>
      <text xml:space="preserve">== Introduction ==

There are many libraries written in C that do not have native Python bindings yet. In Maemo, one of such libraries is libosso-abook, which manipulates the address book on Maemo devices.

While a full binding is very useful, in most cases you need to use just a couple of functions and data structures to get your work done. Instead of waiting for a binding to be implemented, you can use Python's &lt;code&gt;ctypes&lt;/code&gt; module, which allows to directly call functions and access data structures from C libraries.

This document will explain how to do call C library functions using &lt;code&gt;ctypes&lt;/code&gt;, using mainly libosso-abook as an example. The idea has been borrowed from [http://hermes.garage.maemo.org/ Hermes] application source code, which in turn is based on the trick described on the [http://faq.pygtk.org/index.py?req=show&amp;file=faq23.041.htp PyGTK FAQ].

This document is not meant to be a complete &lt;code&gt;ctypes&lt;/code&gt; guide; for that, be sure to read the [http://docs.python.org/library/ctypes.html official API documentation]. It is assumed that you have read that document before continuing.

== Basic Usage ==

Let's say you want to use &lt;code&gt;printf()&lt;/code&gt; from the GNU C Library. All you need in Python is:
&lt;source lang=&quot;python&quot;&gt;
import ctypes
libc = ctypes.CDLL('libc.so.6')
libc.printf('Hello world!')
&lt;/source&gt;
In a few words, you create an object correspondent to the library you need and use it to call the function directly. You can also store the functions in plain python objects to use them easily later:
&lt;source lang=&quot;python&quot;&gt;
c_printf = libc.printf
c_printf('Hello libc')
&lt;/source&gt;
Remember that those are C functions, not Python ones, so you must supply arguments of the correct type to avoid undefined behavior (such as segmentation faults). As an example, if an integer is passed to the above function, you get

 &gt;&gt;&gt; c_printf(1)
 Segmentation fault (core dumped)

== Initializing libosso-abook ==

libosso-abook needs to be initialized by calling [http://maemo.org/api_refs/5.0/5.0-final/libosso-abook/libosso-abook-osso-abook-init.html#osso-abook-init osso-abook-init()]. This is similar to the example above, but a little more complex because the function takes three pointers: argc, argv and the OSSO context. First of all, you must create a &lt;code&gt;osso.Context&lt;/code&gt; instance using the &quot;osso&quot; module (provided by python-osso):
&lt;source lang=&quot;python&quot;&gt;
import osso

osso_ctx = osso.Context(&quot;test_abook&quot;, &quot;0.1&quot;)
&lt;/source&gt;
Note: there is no documentation for python-osso yet, so see the C documentation for [http://maemo.org/api_refs/5.0/5.0-final/libosso/group__Init.html#g05d45d1e72c2cd74f665086225141431 osso_initialize()] for details about osso.Context() arguments. Note that only &quot;application&quot; and &quot;version&quot; attributes are used in Python.

Next, load and initialize libosso-abook library:
&lt;source lang=&quot;python&quot;&gt;
import sys
import ctypes
# be sure to import gtk before calling osso_abook_init()
import gtk

osso_abook = ctypes.CDLL('libosso-abook-1.0.so.0')
argv_type = ctypes.c_char_p * len(sys.argv)
argv = argv_type(*sys.argv)
argc = ctypes.c_int(len(sys.argv))
osso_abook.osso_abook_init(ctypes.byref(argc), ctypes.byref(argv), hash(osso_ctx))
&lt;/source&gt;
The byref() function returns a pointer to the given data. The hash() function returns the memory address of the argument.

== Calling a Function Which Returns a GObject ==

Every GObject instance created by a C library must have a corresponding Python object, so that it can be manipulated on Python code. This object, which acts like a &quot;wrapper&quot; around the C pointer, is created using the pygobject_new() C function. Unfortunately, pygobject_new() is not a plain function, but a macro which points to a function pointer in a struct (see /usr/include/pygtk-2.0/pygobject.h on the &quot;#define pygobject_new ...&quot; line), making it a little more complex to be called from Python. The snippet of code below, borrowed from [http://faq.pygtk.org/index.py?req=show&amp;file=faq23.041.htp PyGTK FAQ], will take care of this:
&lt;source lang=&quot;python&quot;&gt;
# ctypes wrapper for pygobject_new(), based on code snippet from
# http://faq.pygtk.org/index.py?req=show&amp;file=faq23.041.htp
class _PyGObject_Functions(ctypes.Structure):
    _fields_ = [
        ('register_class',
            ctypes.PYFUNCTYPE(ctypes.c_void_p, ctypes.c_char_p,
            ctypes.c_int, ctypes.py_object, ctypes.py_object)),
        ('register_wrapper',
            ctypes.PYFUNCTYPE(ctypes.c_void_p, ctypes.py_object)),
        ('register_sinkfunc',
            ctypes.PYFUNCTYPE(ctypes.py_object, ctypes.c_void_p)),
        ('lookupclass',
            ctypes.PYFUNCTYPE(ctypes.py_object, ctypes.c_int)),
        ('newgobj',
            ctypes.PYFUNCTYPE(ctypes.py_object, ctypes.c_void_p)),
    ]

class PyGObjectCPAI(object):
    def __init__(self):
        import gobject
        py_obj = ctypes.py_object(gobject._PyGObject_API)
        addr = ctypes.pythonapi.PyCObject_AsVoidPtr(py_obj)
        self._api = _PyGObject_Functions.from_address(addr)

    def pygobject_new(self, addr):
        return self._api.newgobj(addr)
&lt;/source&gt;
Adding this to your code, you will be able to create Python objects from an arbitrary GObject pointer, simply using something like:
&lt;source lang=&quot;python&quot;&gt;
capi = PyGObjectCPAI()
c_obj = c_function_returning_gobject(...)
obj = capi.pygobject_new(c_obj)
&lt;/source&gt;
== Creating a OssoABookContactChooser Instance ==

As an example of a GObject instantiation, let's call the &lt;code&gt;osso_abook_contact_chooser_new()&lt;/code&gt; constructor from Python, which creates a &quot;contact chooser&quot; dialog useful to select one of more contacts:
&lt;source lang=&quot;python&quot;&gt;
capi = PyGObjectCPAI()
c_chooser = osso_abook.osso_abook_contact_chooser_new(None, &quot;Choose a contact&quot;)
chooser = capi.pygobject_new(c_chooser)
&lt;/source&gt;
After this, you can use &lt;code&gt;chooser&lt;/code&gt; like any other GObject in Python, including calling inherited methods:
&lt;source lang=&quot;python&quot;&gt;
chooser.run()
chooser.hide()
&lt;/source&gt;
== Accessing Items in a GList ==

Once the &quot;contact chooser&quot; dialog has run, you can get the selected contacts using:
&lt;source lang=&quot;python&quot;&gt;
contacts = osso_abook.osso_abook_contact_chooser_get_selection(c_chooser)
&lt;/source&gt;
Note that you must pass the '''C Pointer''' to [http://maemo.org/api_refs/5.0/5.0-final/libosso-abook/OssoABookContactChooser.html#osso-abook-contact-chooser-get-selection osso_abook_contact_chooser_get_selection()], not the Python object.

the &lt;code&gt;contacts&lt;/code&gt; variable now holds a &lt;code&gt;GList&lt;/code&gt; pointer. In order to access the items stored on this list, you need some Python code:
&lt;source lang=&quot;python&quot;&gt;
glib = ctypes.CDLL('libglib-2.0.so.0')
def glist(addr):
    class _GList(ctypes.Structure):
        _fields_ = [('data', ctypes.c_void_p),
                    ('next', ctypes.c_void_p)]
    l = addr
    while l:
        l = _GList.from_address(l)
        yield l.data
        l = l.next
&lt;/source&gt;
This function uses the yield statement to construct a so called [http://docs.python.org/tutorial/classes.html#generators generator]. The actual GList manipulation is made using functions from libglib library. This generator makes it very easy to iterate over the items:
&lt;source lang=&quot;python&quot;&gt;
for i in glist(contacts):
    get_display_name = osso_abook.osso_abook_contact_get_display_name
    get_display_name.restype = ctypes.c_char_p
    print &quot;%s\n&quot; % get_display_name(i)
&lt;/source&gt;
Here, we use [http://maemo.org/api_refs/5.0/5.0-final/libosso-abook/OssoABookContact.html#osso-abook-contact-get-display-name osso_abook_contact_get_display_name()] to get the contact's display name, but you can call virtually any function using the same approach.

Once you are done with the &lt;code&gt;GList&lt;/code&gt; manipulation, you should free its memory:

With some functions (NOT this one, see docs), you should also unref the list items first:
&lt;source lang=&quot;python&quot;&gt;
for i in glist(stuffs):
   gobject.g_object_unref(i)
&lt;/source&gt;

Then free the list itself:
&lt;source lang=&quot;python&quot;&gt;
glib.g_list_free(contacts)
&lt;/source&gt;

== Final Words ==

This document purpose is to give a basic understanding necessary to use ctypes to explore C libraries, specially ones that manipulate GObject. Notably, we do not describe how to define callbacks, but this is left as an exercise for the reader. Again, be sure to read the [http://docs.python.org/library/ctypes.html#callback-functions ctypes documentation] if you are interested in more advanced techniques.

See also more usage examples [[/More examples|here]].

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Accessing APIs without Python bindings/More examples</title>
    <id>3903</id>
    <revision>
      <id>36163</id>
      <timestamp>2010-06-22T12:15:52Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Searching contacts by phone number */ use &lt;source&gt;</comment>
      <text xml:space="preserve">= More examples =

This page contains some other example code using ctypes. Note that they are not complete, and assume some code already shown on the [[../|main article]].

== Searching for contacts by phone number ==

Searching for contacts by phone number can be done using the [http://maemo.org/api_refs/5.0/5.0-final/libosso-abook/OssoABookAggregator.html#osso-abook-aggregator-find-contacts-for-phone-number osso_abook_aggregator_find_contacts_for_phone_number()] function:
&lt;source lang=&quot;python&quot;&gt;
def aggregator_ready_cb(aggregator, error, user_data):
    contacts = osso_abook.osso_abook_aggregator_find_contacts_for_phone_number(aggregator, phone_number, 1)
    if contacts:
        print &quot;Contacts with phone number %s:&quot; % phone_number
        for i in glist(contacts):
            contact_get_display_name = osso_abook.osso_abook_contact_get_display_name
            contact_get_display_name.restype = ctypes.c_char_p
            print contact_get_display_name(i)
        glib.g_list_free(contacts)
    else:
        print &quot;No contacts found with phone number %s.&quot; % phone_number

    gtk.main_quit()

aggregator = osso_abook.osso_abook_aggregator_get_default(0)
wait_cb_type = ctypes.CFUNCTYPE(None, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p)
# Keep prototype object reference so it is not destroyed
cb_proto = wait_cb_type(aggregator_ready_cb)
osso_abook.osso_abook_waitable_call_when_ready(aggregator, cb_proto, 0, 0)

gtk.main()
&lt;/source&gt;
[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Accessing GObject via ctypes</title>
    <id>3508</id>
    <revision>
      <id>28104</id>
      <timestamp>2010-02-02T13:01:02Z</timestamp>
      <contributor>
        <username>lizardo</username>
        <id>923</id>
      </contributor>
      <comment>[[PyMaemo/Accessing GObject via ctypes]] moved to [[PyMaemo/Accessing APIs without Python bindings]]: Choosing a better title.</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/Accessing APIs without Python bindings]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Components</title>
    <id>2445</id>
    <revision>
      <id>37891</id>
      <timestamp>2010-08-18T10:12:58Z</timestamp>
      <contributor>
        <ip>192.100.124.219</ip>
      </contributor>
      <comment>/* Bindings */</comment>
      <text xml:space="preserve">=== Core ===

These packages are the minimal necessary to run or develop Python applications for Maemo.

;[http://www.python.org/ python2.5]
:Version 2.5 of the high-level, interactive object oriented language, includes an extensive class library with lots of goodies for network programming, system administration, sounds and graphics.
;python-central
:Provides support for building and installing python modules independent of the current installed Python version.
;python-defaults
:Provides meta packages with unversioned package names (e.g. python-dev, which installs python2.5-dev).
;python-runtime
:Meta package which installs the basic Python runtime environment.
;python-support
:Provides tools for byte-compilation of Python-only modules, and automatic rebuild on major Python upgrades.

=== Bindings ===

These packages provide bindings for various Maemo components.

;[http://dbus.freedesktop.org/doc/dbus-python/ dbus-python]
:Python interface to D-Bus.
;[http://www.pygtk.org/reference.html gnome-python]
:Python interface to various GNOME libraries: GConf, GnomeVFS, bonobo, libgnome, libgnomeui and libgnomecanvas.
;[http://pygstdocs.berlios.de/ gst0.10-python]
:Python interface to GStreamer.
;[http://codespeak.net/lxml/index.html#documentation lxml]
:Python interface to libxml2 and libxslt.
;[http://org.csail.mit.edu/pybluez/docs.html pybluez]
:Python interface to the BlueZ bluetooth stack.
;[http://www.cairographics.org/pycairo/ pycairo]
:Python interface to the Cairo vector graphics library.
;[http://pycurl.sourceforge.net/ pycurl]
:Python interface to libcurl.
;[http://www.pygame.org/news.html pygame]
:A multimedia development kit for Python, based mostly on SDL.
;[http://www.pygtk.org/reference.html pygobject]
:Python interface to GObject.
;[http://www.pygtk.org/reference.html pygtk]
:Python interface to GTK+.
;[http://packages.python.org/pyOpenSSL/ pyopenssl]
:Python interface to OpenSSL.
;python-alarm
:Python interface to libalarm.
;[http://www.clutter-project.org/ python-clutter]
:Python interface to Clutter.
;python-conic
:Python interface to libconic.
;python-hildon
:Python interface to Hildon.
;[[PyMaemo/HildonDesktop|python-hildondesktop]]
:Python interface to the Hildon Desktop applets.
;[http://www.pythonware.com/products/pil/ python-imaging]
:The Python Imaging Library.
;[[PyMaemo/Using_Location_API|python-location]]
:Python interface to liblocation.
;python-mafw
:Python interface to MAFW.
;[http://www.galago-project.org/specs/notification/ python-notify]
:Python interface to libnotify.
;[http://people.csail.mit.edu/jrennie/python/numeric/ python-numeric]
:The Numeric Extensions to Python (deprecated).
;python-osso
:Python interface to libosso.
;[http://pyxml.sourceforge.net/ python-xml]
:Python interface to XML (deprecated; use python-lxml instead).
;[https://storm.canonical.com/ storm]
:Object-relational mapper (ORM) for Python.
;pyside-qt4
:PySide Python Qt bindings (metapackage depending on everything else)
;pyside-qt4-core
:PySide QtCore library
;pyside-qt4-gui
:PySide QtCore library
;pyside-qt4-help
:PySide QtHelp library
;pyside-qt4-maemo5
:PySide QtMaemo5 library
;pyside-qt4-multimedia
:PySide QtMultimedia library
;pyside-qt4-network
:PySide QtNetwork library
;pyside-qt4-phonon
:PySide Phonon library
;pyside-qt4-script
:PySide QtScript library
;pyside-qt4-sql
:PySide QtSql library
;pyside-qt4-svg
:PySide QtSvg library
;pyside-qt4-test
:PySide QtTest library
;pyside-qt4-uitools
:PySide UiTools
;pyside-qt4-webkit
:PySide QtWebKit library
;pyside-qt4-xml
:PySide QtXml library
;pyside-qt4-xmlpatterns
:PySide QtXmlPatterns library
;pyside-mobility
:PySide Mobility metapackage depending on every other package
;pyside-mobility-bearer
:PySide Mobility Bearer API bindings
;pyside-mobility-contacts
:PySide Mobility Contacts API bindings
;pyside-mobility-location
:PySide Mobility Location API bindings
;pyside-mobility-messaging
:PySide Mobility Messaging API bindings
;pyside-mobility-publishsubscribe
:PySide Mobility PublishSubscribe API bindings
;pyside-mobility-sensors
:PySide Mobility Sensors API bindings
;pyside-mobility-serviceframework
:PySide Mobility Service Framework API bindings
;pyside-mobility-systeminfo
:PySide Mobility System Info API bindings
;pyside-mobility-versit
:PySide Mobility Versit API bindings

=== Applications ===

We provide some Python applications as examples, and that we find useful for PyMaemo users.

;[http://ipython.scipy.org/moin/ ipython]
:A enhanced interactive Python shell.

=== Development ===

These packages are necessary only if you are developing Python applications on Maemo.

;[http://www.cython.org/ cython]
:Cython is a language that makes writing C extensions for the Python language as easy as Python itself.
;[http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/ pyrex]
:Pyrex lets you write code that mixes Python and C data types any way you want, and compiles it into a C extension for Python.
;[http://pypi.python.org/pypi/setuptools#using-setuptools-and-easyinstall python-setuptools]
:Extensions to the python-distutils for large or complex distributions.

=== Support packages ===

These packages are provided as dependencies for other packages, and are not used directly by users/developers.

;sdl-ttf2.0 (dependency for pygame)
:TTF library for SDL with FreeType 2 support.

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Documentation for pyside-assistant</title>
    <id>4920</id>
    <revision>
      <id>44359</id>
      <timestamp>2011-07-04T20:49:34Z</timestamp>
      <contributor>
        <ip>186.215.93.195</ip>
      </contributor>
      <text xml:space="preserve">== Setting up ==

==== Installing from Ubuntu PPA ====

If you are using Ubuntu then you can add PySide's ppa and get ''pyside-assistant'' from there:

 &lt;nowiki&gt;
sudo add-apt-repository ppa:pyside
sudo apt-get update
sudo apt-get install pyside-assistant
&lt;/nowiki&gt;

==== Building and installing from source ====

To build and install ''pyside-assistant'' you will need a Debian-based Linux distribution. First, install ''python2.5'', ''sharutils'' and ''python-stdeb'' packages, that are runtime dependencies of ''pyside-assistant''.  Get the source from the Github [https://github.com/PySide/PySideAssistant page], then in the directory which pyside-assistant was downloaded, run: 

 &lt;nowiki&gt;
    $ dpkg-buildpackage -D -rfakeroot -us -uc
&lt;/nowiki&gt;

'''NOTE:''' If you don't have python2.5 available in your repository, like Ubuntu Natty users, you can install it from [https://launchpad.net/~fkrull/+archive/deadsnakes this] ppa.

 &lt;nowiki&gt;
    $ sudo add-apt-repository ppa:fkrull/deadsnakes
    $ sudo apt-get update
    $ sudo apt-get install python2.5
&lt;/nowiki&gt;

'''Warning: Do not install ''python-stdeb'' from the git sources, or pyside-assistant will not work properly!''' The version from Debian and Ubuntu (0.6.0+20100620-1) works as expected.

Now go back a directory level and install the binary package:

 &lt;nowiki&gt;
    $ sudo dpkg -i pyside-assistant_&lt;version&gt;_all.deb
&lt;/nowiki&gt;

== Usage Instructions ==

The main script for using pyside-assistant is &lt;code&gt;psa&lt;/code&gt;.

==== init command ====

The ''init'' command creates a project from the templates. It receives as mandatory arguments a string that identifies the entire project, called project slug and the target platform (e.g. fremantle). The following call will create a project in the current directory with the project slug sampleproject:

 &lt;nowiki&gt;
    $ psa init sampleproject fremantle
&lt;/nowiki&gt;

All project files will be contained in a directory named after the project slug, which in this case is sampleproject. Additional parameters can be passed to &lt;code&gt;psa init&lt;/code&gt; to set various fields from the start; these parameters are shown below:

 &lt;nowiki&gt;
    -a APPNAME, --app-name=APPNAME
                        Human-readable application name, refers to the Name field of sampleproject.desktop
    -s SECTION, --section=SECTION
                        Application section, refers to the section field of stdeb.cfg
    -d DESC, --description=DESC
                        Application short description, refers to the description field of setup.py
    -c CATEGORY, --category=CATEGORY
                        Application category, refers to the appname field of sampleproject.desktop
&lt;/nowiki&gt;

The created projects come with a file called README.assistant, which lists what each file does. The contents of this file is listed below:

 &lt;nowiki&gt;
=========================================
README - pyside-assistant generated files
=========================================

All files generated by psa init are described below. The sampleproject 
slug used for them was 'sampleproject', with the following psa call:

    $ psa init sampleproject fremantle

* MANIFEST.in: Distutils considers a list of files by default for 
installation, listed at [1].  Additional files to be distributed 
must be supplied in the MANIFEST.in file. The generated file includes 
the .desktop file and any QML files found.

[1] http://docs.python.org/distutils/sourcedist.html#specifying-the-files-to-distribute.

* setup.py: The main file for using Distutils, contains most of the 
information needed to build the package. Information about setup.py 
can be found at http://docs.python.org/distutils/introduction.html. 
Two fields of this file can be modified by psa update parameters:
 - description: -d or --description
 - long_description: the contents of sampleproject.longdesc are used

* stdeb.cfg: Configuration file for stdeb, specifying additional 
parameters for the binary package. The specification for this 
file can be found at https://github.com/astraw/stdeb, in the section 
stdeb.cfg configuration file. One field of this file can be modified by
psa update parameters:
 - Section: -s or --section 

Note that the section should be a valid one,
as specified in http://wiki.maemo.org/Task:Package_categories#New_list_for_Diablo.

* sampleproject.desktop: This file specifies how to run the application 
from the application grid, with various fields. Information about 
.desktop files can be found at http://wiki.maemo.org/Desktop_file_format.
Two fields of this file can be modified by psa update parameters:
 - Name: -a or --app-name
 - Category: -c or --category

Note that the category should be a valid one, as specified in
http://standards.freedesktop.org/menu-spec/latest/apa.html.

* sampleproject.png: The application icon, which is displayed in the
application grid.

* sampleproject.qml: The QML file for the application. By default 
just displays the words &quot;Hello QML!&quot; in the center of the window.

* sampleproject: Main program. Initializes the application and provide 
support for displaying the QML file contents.

* sampleproject.longdesc: Holds the contents of the long_description field of 
setup.py, which as the name implies is a more detailed description of what the project is. 

&lt;/nowiki&gt;

==== build-deb command ====

The ''build-deb'' command does all necessary steps for generating a binary package. It essentially calls stdeb to build the proper Debian package and then places the application icons inside it. For using this command, you just have to enter the project directory and run:

 &lt;nowiki&gt;
    $ psa build-deb
&lt;/nowiki&gt;

The binary package will be found under the ''./deb_dist'' directory.

==== update command ====
The ''update'' command can change certain values inside the project files, minimizing the need to open and edit them directly. This command accepts the following parameters:

 &lt;nowiki&gt;
    -a APPNAME, --app-name=APPNAME
                        Human-readable application name, resides in sampleproject.desktop
    -s SECTION, --section=SECTION
                        Application section, resides in stdeb.cfg
    -d DESC, --description=DESC
                        Application short description, resides in setup.py
    -c CATEGORY, --category=CATEGORY
                        Application category, resides in sampleproject.desktop
&lt;/nowiki&gt;

These parameters can be used in any order. As an example, to change the description and section of the project, run:

 &lt;nowiki&gt;
    $ psa update -d &quot;Sample project&quot; -s games
&lt;/nowiki&gt;

== Example workflow ==
 &lt;nowiki&gt;
$ psa init sampleproject fremantle
$ cd sampleproject
(... hack ...)
$ psa build-deb
(... copy binary package to destination and install it ...)
(... hack some more ...)
$ psa update -c AudioVideo -s graphics
$ psa build-deb

(and so on.)
&lt;/nowiki&gt;

== Packaging generic Python applications ==

''pyside-assistant'' was initially conceived for creating PySide applications, but in fact it can be used to build binary packages for any pure Python application that uses [http://docs.python.org/distutils/index.html Python Distutils]. 

For that purpose, follow these steps:

* Run &lt;code&gt;psa init&lt;/code&gt; as usual, to create the initial project layout;
* Erase the ''qml'' directory, as its files are specific to Qt programs;
* Create or add all files of your Python application;
* Edit ''stdeb.cfg'' and replace the contents of the ''Depends'' field with the correct runtime dependencies for your application, if any. 
* If you don't have a ''setup.py'' file for your project, edit the provided one removing the ''.qml'' file reference and adding any other project files you need. See the Python Distutils [http://docs.python.org/distutils/index.html documentation] to know how the ''setup.py'' file works and how to edit it.

From now on, the same workflow applies: modify files, build binary package with &lt;code&gt;psa build-deb&lt;/code&gt;, update fields with &lt;code&gt;psa update&lt;/code&gt;, and so on.</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/FAQ</title>
    <id>2439</id>
    <revision>
      <id>38375</id>
      <timestamp>2010-09-08T12:41:22Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>links, &lt;code&gt;, &lt;source&gt;</comment>
      <text xml:space="preserve">== What is Python? ==

Python is a dynamic object-oriented programming language that can be used for many kinds of software development. It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in a few days.

== What is PyMaemo? == 

[[PyMaemo]] is the Python distribution for Nokia's Linux-based Maemo devices, providing a comprehensive set of platform bindings for rapid application development.

== What is Nokia's role in PyMaemo? ==

Development and maintenance of PyMaemo is partially funded by Nokia. The project is community-supported and not part of the official [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK|Maemo SDK]], providing us openness and flexibility of being able to continuously improve the packages using the maemo.org infrastructure instead of relying on the periodic SDK releases.

== Does PyMaemo come installed by default? ==

No, but it is provided in the maemo.org Extras repository and gets installed as a dependency for many end-user applications.

== Why are some modules (e.g.: curses) missing? ==

In order to keep the platform small and easy to support, PyMaemo only comes with the most commonly used packages.

== Why do I get errors like “ImportError: No module named xyz” even though module xyz is installed under /usr/lib/python2.5 in Scratchbox? ==

Inside Scratchbox, if you call just “python” it will run the internal Python interpreter used by Scratchbox (/scratchbox/tools/bin/python), which is at the moment version 2.3. This interpreter will not see any modules installed inside your target.

This occurs even if you use the complete path (/usr/bin/python), due to some path redirection trick done by Scratchbox. Therefore, to make sure you are using the correct Python interpreter in Scratchbox (currently at version 2.5), make sure to call “python2.5” explicitely, i.e. use “#!/usr/bin/python2.5 at the beginning of your scripts and modify Debian packaging so that python2.5 is called instead of just “python”.

== When I build my Python application on Scratchbox, files are installed in /scratchbox/... How do I modify Debian packaging so the correct Python interpreter is called? ==

You can try adding these lines to the beginning of your &lt;code&gt;debian/rules&lt;/code&gt; (after the first “#!/usr/bin/make -f” line):

&lt;source lang=&quot;make&quot;&gt;
PATH := /usr/bin:$(PATH)
SBOX_REDIRECT_IGNORE := $(SBOX_REDIRECT_IGNORE):/usr/bin/python
export PATH SBOX_REDIRECT_IGNORE
&lt;/source&gt;

If that still does not work, please post your error messages to our mailing list.

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/GUITechnologySelectionGuide</title>
    <id>3345</id>
    <revision>
      <id>28149</id>
      <timestamp>2010-02-02T15:51:04Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/GUI toolkit selection guide]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/GUIToolkitSelectionGuide</title>
    <id>3457</id>
    <revision>
      <id>27721</id>
      <timestamp>2010-01-29T16:09:34Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[PyMaemo/GUIToolkitSelectionGuide]] moved to [[PyMaemo/GUI toolkit selection guide]]: Naming convention - no CamelCase</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/GUI toolkit selection guide]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/GUI toolkit selection guide</title>
    <id>3344</id>
    <revision>
      <id>36194</id>
      <timestamp>2010-06-23T12:21:22Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>a couple of links</comment>
      <text xml:space="preserve">This page describes the alternative toolkits with which graphical user interfaces can be created in [[PyMaemo]]. Their respective differences and future prospects are discussed to help any new PyMaemo developers make an informed technology selection.

In particular, the differences of GTK+ and Qt toolkits are described, as well as the roles of the PySide and PyQt Qt binding projects.

== GTK+-based toolkits ==

[http://www.gtk.org/ GTK+] is a widget toolkit for creating graphical user interfaces. While written in the C programming language, it is object oriented. Object orientation is achieved by using the Glib object system (GObject). In the open source community, Gtk+ is most notably used in the GNOME project.

[[Hildon]] is an application framework developed by Nokia for the Maemo operating system. It primarily consists of a set of GTK+ extensions providing mobile device oriented functionality and a finger-friendly interface. It has been the primary graphical toolkit in Maemo devices until [[Open development/Maemo roadmap/Fremantle|Maemo 5]].

=== Python Hildon ===

[http://pymaemo.garage.maemo.org/development.html Python Hildon] is the Python language wrapper around the Hildon framework, allowing Python developers to use Hildon in Python programs. It depends on PyGtk for creating graphical user interfaces.

Python Hildon has been available for many years and has been updated to support the features of the Maemo 5 platform. The bindings are stable and widely used in the Maemo developer community.

If you plan to start developing software for the [[Nokia N900]] (Maemo 5) only, Python Hildon is probably the most straightforward selection. However, as the level of GTK+ and Hildon support in [[Open development/Maemo roadmap/Harmattan|Maemo 6]] is still unknown ([http://talk.maemo.org/showthread.php?t=36687 it will probably be community-supported only]), it might provide for a more difficult upgrade path in the future Maemo platform versions.

== Qt-based toolkits ==

[http://qt.nokia.com/ Qt], developed by Nokia's Qt Development Frameworks division, is an application development framework consisting of a comprehensive set of GUI widgets as well as non-GUI functionality such as network support, thread management, XML parsing, and so on. Qt is written in C++. [http://www.kde.org/ KDE] is the most significant project in the open source community using Qt.

The future Maemo platforms will be based on the Qt framework. The native GUI widget set will be [http://talk.maemo.org/showthread.php?t=34686 DirectUI] which is not part of Qt but will be derived from QGraphicsView. In a similar manner, the platform APIs ([http://www.slideshare.net/lavonardo/qt-application-development-on-harmattan Maemo API]) will be heavily based on Qt principles, providing Qt-like class hierarchies for different functionalities.

Any native Qt application written for Maemo 5 adopts the platform's native look and feel. Furthermore, these applications will be at least source-level compatible with Maemo 6 and will adopt its look and feel accordingly. Hence, Qt is the best selection as a toolkit if you want to future-proof your application.

The development snapshot releases of next versions is available from extras-devel, and is marked with ’experimental’ in the package name (libqt4-experimental, python2.5-qt4-experimental, pyside-experimental). Use these packages only if you need cutting edge features and have no intention of publishing your software to end-users.

=== PySide ===

[http://www.pyside.org/ PySide] is a Python binding for the Qt framework, developed by Nokia at OpenBossa by the same team as PyMaemo itself. It was initially published in August 2009 and, on the Maemo 5 platform, provides full-featured bindings for Qt 4.7 (on Maemo 5, Qt 4.6, including the Maemo-specific QMaemo5 classes). PySide is licensed under LGPL, allowing both open source and proprietary software development. The generator tools for creating new bindings are also available, allowing developers to rapidly create new bindings if required.

The PyMaemo team will provide the bindings for the Harmattan platform APIs (MeeGo Touch, Qt Mobility, select Harmattan platform APIs) using PySide.

Since PySide is a relatively young project, it is still ongoing maturization period and faces more changes than PyQt.

If your project requires Maemo/MeeGo-specific Qt extensions or latest Qt features and you want your application to work in the future MeeGo platforms, PySide is the best choice for you.

=== PyQt ===

[http://www.riverbankcomputing.co.uk/software/pyqt/intro PyQt] is a Python binding for the Qt framework, developed by Riverbank Computing Ltd. It is a very established and stable set of bindings and widely used in the desktop world. On Maemo 5, it is maintained as a community effort. PyQt on Maemo 5 provides support for both Qt 4.6 and Qt 4.5. It will also support the future Qt 4.7 through experimental releases in extras-devel. PyQt for Qt 4.6 supports the Maemo 5 specific classes.

It is licensed under GPL for Open Source projects, but a commercial license can be obtained from Riverbank for proprietary development. While new PyQt-compatible bindings can be created using [http://directory.fsf.org/project/Python-SIP/ SIP], no freely available automatic binding generation tools exist, making independent generation of bindings for large SIP-based libraries impractical.

PyQt cannot be intermixed with the future Harmattan platform API bindings created using PySide (though such bindings might become available via PyQt).

PyQt is currently the most mature set of Qt bindings for PyMaemo. It provides a stable, and bugfree set of Python Qt bindings. Moreover, the source-level compatibility of PySide with PyQt is rather high, making porting PyQt programs to PySide (and vice versa) an easy task, thus providing an upgrade path for PyQt developers in the future. PyQt (as a Qt 4.5 binding) is also available on the legacy [[Nokia N800|N800]] and [[Nokia N810|N810]] devices and pre-PR1.2 N900s.

If you want to release a Python Qt 4.5 or Qt 4.6 application with as stable bindings as possible, and are prepared to possibly port your code to PySide in the future, then PyQt is the right choice for you.

==== Current Versions ====

PyQt 4.7 for N900 was released in Feb 2010 announced [http://talk.maemo.org/showthread.php?t=42754 here]

PyQt 4.7.3 for N900 [[Maemo 5/PR1.2|PR1.2]] (Qt4.6) was released in Apr 2010 announced [http://talk.maemo.org/showthread.php?p=626443 here]

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/HildonDesktop</title>
    <id>1922</id>
    <revision>
      <id>37757</id>
      <timestamp>2010-08-13T11:57:48Z</timestamp>
      <contributor>
        <username>v13</username>
        <id>1803</id>
      </contributor>
      <comment>Clarify that desktop activity manager usage is suggested for hildon-home widgets</comment>
      <text xml:space="preserve">= Python bindings for libhildondesktop =

These bindings allow to create the so called Hildon Home and Status Menu applets (or widgets, in Maemo 5). It consists of two binary packages:

* python-hildondesktop: the actual Python bindings. Can be used to write standalone widgets, or ones that can be added by the user using the &quot;Add widget&quot; option in Maemo 5.
* hildon-desktop-python-loader: this is a Hildon Desktop loader for Python plugins.

== Migrating old Widgets to Maemo 5 ==

The libhildondesktop version in Maemo 5 contains some API changes that also reflect on the Python bindings. Namely, you should pay attention to the following differences when migrating Home/Status Widgets from older Maemo releases to Fremantle:

* The base class for Home Widgets is now called &quot;HomePluginItem&quot;, instead of the older &quot;HomeItem&quot; name.
* Similarly, the base class for Status Menu Widgets is now called &quot;StatusMenuItem&quot;, instead of the older &quot;StatusBarItem&quot;.
* The older &quot;hd_plugin_get_objects&quot; function must be removed. Instead, a &quot;hd_plugin_type&quot; variable should contain the main class for the plugin (which will be used internally by the loader to instantiate the plugin object).

Additionally, if your code used to work with python-hildondesktop on versions until 0.3.0, you must make the following changes for it to work with the latest version:

* Remove the &quot;__gtype_name__&quot; attribute from the main plugin class. It was used to register a GType for the class, but it caused some problems. Now the GType is registered on the loader.
* Remove the &quot;hd_plugin_get_object&quot; function and instead add a &quot;hd_plugin_type&quot; variable that points to the plugin main class.

== Example - Home widgets (Fremantle only) ==

&lt;pre&gt;
import gtk
import hildondesktop

class HelloWorldDialog(gtk.Dialog):
    def __init__(self):
        gtk.Dialog.__init__(self, &quot;Hello World&quot;, None,
                            gtk.DIALOG_DESTROY_WITH_PARENT | gtk.DIALOG_NO_SEPARATOR,
                            (&quot;Close&quot;, gtk.RESPONSE_OK))
        self.vbox.add(gtk.Label(&quot;Hello World!&quot;))
        self.show_all()

def hello_world_dialog_show(button):
    dialog = HelloWorldDialog()
    dialog.run()
    dialog.destroy()

class HelloHomePlugin(hildondesktop.HomePluginItem):
    def __init__(self):
        hildondesktop.HomePluginItem.__init__(self)
        button = gtk.Button(&quot;Hello&quot;)
        button.connect(&quot;clicked&quot;, hello_world_dialog_show)
        button.show_all()
        self.add(button)

hd_plugin_type = HelloHomePlugin

# The code below is just for testing purposes.
# It allows to run the widget as a standalone process.
if __name__ == &quot;__main__&quot;:
    import gobject
    gobject.type_register(hd_plugin_type)
    obj = gobject.new(hd_plugin_type, plugin_id=&quot;plugin_id&quot;)
    obj.show_all()
    gtk.main()
&lt;/pre&gt;

=== Testing the example ===

First, add Fremantle extras-devel to the /etc/apt/sources.list in your scratchbox target and install the required packages:

&lt;pre&gt;
[sbox]&gt; fakeroot apt-get install python-hildondesktop hildon-desktop-python-loader
&lt;/pre&gt;

Save the example code shown above as /usr/lib/hildon-desktop/hello_world_home.py inside your FREMANTLE_X86 target. &lt;b&gt;Make sure the script has a valid Python module name, specially it should not have any dots or dashes on its name&lt;/b&gt;. To be safe, use only alphanumeric characters and underscore, plus the &quot;.py&quot; extension.

Next, save the following text as /usr/share/applications/hildon-home/hello_world_home.desktop:

&lt;pre&gt;
[Desktop Entry]
Name=Hello, World! (Python)
Comment=Example Home Python plugin
Type=python
X-Path=hello_world_home.py
&lt;/pre&gt;

Now start the SDK UI, if it is not already started. See the instructions on the [[Documentation/Maemo_5_Final_SDK_Installation#Starting.2FShutting_down_the_SDK_UI|Maemo 5 SDK documentation page]]

Now you need to add the newly installed home widget to the desktop. Follow these instructions to add it using the Hildon Desktop interface:

# Click anywhere on the Maemo desktop background.
# You should see a &quot;engine&quot; icon on the top right. Click on it.
# It will be shown a menu bar containing &quot;Desktop menu&quot; and &quot;Done&quot;. Click on &quot;Desktop menu&quot;.
# You should now see a menu with 4 buttons. Click on the &quot;Add widget&quot; button.
# A menu containing the list of installed widgets will appear. Select the one we installed, called &quot;Hello, World! (Python)&quot;.
# Finally, click on &quot;Done&quot;.

You should then see the following (the images look distorted because they were taken on Xephyr):

[[Image:Hello_world_home_python1.png]]

After clicking on the widget button, you should see:

[[Image:Hello_world_home_python2.png]]

== Example - Status menu widgets (Fremantle only) ==

The code below was based on the C example that can be found on the Maemo 5 Developer Guide [http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Application_Development/Writing_Desktop_Widgets#Status_Menu_widgets].
&lt;pre&gt;
import gtk
import hildondesktop

class ExampleStatusPlugin(hildondesktop.StatusMenuItem):
    def __init__(self):
        hildondesktop.StatusMenuItem.__init__(self)

        icon_theme = gtk.icon_theme_get_default()
        pixbuf = icon_theme.load_icon(&quot;general_email&quot;, 22, gtk.ICON_LOOKUP_NO_SVG)
        self.set_status_area_icon(pixbuf)

        label = gtk.Label(&quot;Example message&quot;)
        self.add(label)
        self.show_all()

hd_plugin_type = ExampleStatusPlugin
&lt;/pre&gt;

=== Testing the example ===

First, install the same packages needed for Home widgets, then save the example above as as &lt;b&gt;/usr/lib/hildon-desktop/hello_world_status_menu.py&lt;/b&gt; inside your FREMANTLE_X86 target. Next, save the following text as &lt;b&gt;/usr/share/applications/hildon-status-menu/hello_world_status_menu.desktop&lt;/b&gt;:

&lt;pre&gt;
[Desktop Entry]
Name=Hello, World! (Python)
Comment=Example Status Menu Python plugin
Type=python
X-Path=hello_world_status_menu.py
&lt;/pre&gt;

Now start the SDK UI, if it is not already started. See the instructions on the [[Documentation/Maemo_5_Final_SDK_Installation#Starting.2FShutting_down_the_SDK_UI|Maemo 5 SDK documentation page]]

The example status menu widget should appear as soon as the .desktop file is saved, as the plugin used in this example is of the permanent category. See the [[Documentation/Maemo_5_Developer_Guide/Application_Development/Writing_Desktop_Widgets#Status_Menu_widgets|Maemo 5 Developer Guide]] for more information of status menu widgets categories.

This is a screenshot taken on Xephyr showing how the widget will look like:

[[Image:Status-menu-1.png]]

When clicked, it will show the specified message, enclosed in a gtk.Label:

[[Image:Status-menu-2.png]]

== Debugging tips ==

If a Python widget breaks for some reason, no error message will appear to the user. To debug the problem (in Scratchbox), you need to look at debug messages sent on the console where the UI was started.

Debug messages for Home Widgets are shown by default. For Status Menu Widgets, you need to enable debug output by running these commands:

&lt;pre&gt;
[sbox]&gt; pkill -f /usr/bin/hildon-status-menu
[sbox]&gt; DEBUG_OUTPUT=1 /usr/bin/hildon-status-menu &amp;
&lt;/pre&gt;

They will terminate the running hildon-status-menu process and start a new one with debug output enabled.

To force reloading a plugin (so that you can get the error messages again), try moving the .desktop file out of the directory and adding it back, e.g.:

&lt;pre&gt;
[sbox]&gt; mv /usr/share/applications/hildon-status-menu/hello_world_status_menu.desktop /tmp/
[sbox]&gt; mv /tmp/hello_world_status_menu.desktop /usr/share/applications/hildon-status-menu/
&lt;/pre&gt;

This method may not work reliably for hildon-home widgets because the old code may not be fully unloaded. A solution is to reload hildon-home using [http://maemo.org/downloads/product/Maemo5/actman/ Desktop Activity Manager]. Once you store the current desktop (e.g. with &quot;activty new test; activity store test&quot;) you can re-load it using &quot;activity load -f test&quot;. This will reload hildon-home and all its widgets.

Another way of debugging python widgets is to add this code at the beginning of the script:
&lt;source lang=&quot;python&quot;&gt;
import sys
f=open('/tmp/mylog.log', 'at', buffering=1)
sys.stdout=f
sys.stderr=f
&lt;/source&gt;

This will redirect stdout and stderr to &lt;code&gt;/tmp/mylog.log&lt;/code&gt;. This means that all exceptions and all other output will be logged there. As a plus, the code can be given to testers and they will be able to report-back with the contents of the logfile.

However, '''do not''' use this by default in production systems. Use it '''only''' for debugging since the file will consume space in &lt;code&gt;/tmp&lt;/code&gt; and will only grow in size.

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/HowToBuild</title>
    <id>3456</id>
    <revision>
      <id>27719</id>
      <timestamp>2010-01-29T16:08:48Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[PyMaemo/HowToBuild]] moved to [[PyMaemo/How to build]]: Naming convention - no CamelCase</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/How to build]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/How to build</title>
    <id>3398</id>
    <revision>
      <id>36195</id>
      <timestamp>2010-06-23T12:46:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use &lt;code&gt; and tidy</comment>
      <text xml:space="preserve">To build PyMaemo packages from the source, you'll need:

* Maemo 5 SDK 
* Rootstraps for X86 and ARMEL targets
* pymaemo-tools and its dependencies (listed on the README file)

The scripts from pymaemo-tools are used to download packages' sources and build them using sbdmock, one at a time. sbdmock, in turn, uses the SDK and the rootstraps to create a clean environment for building every package. More information about sbdmock can be obtained [[Building_packages_with_sbdmock|here]], although pymaemo-tools uses a slightly modified of sbdmock - see pymaemo-tools README if you want to know which modifications were made.

The build scripts from pymaemo-tools can be used to build the entire set of packages or only some of them, for X86 or ARMEL targets. It is advised to first build and (if possible) test in the X86 target and use ARMEL target only for cross-compiling for the device.

== Overview of the build process ==

The build process is composed of three phases: download, preparation and the proper build. A high-level description of the process follows:

* Download phase:
** If the package is originally from Debian or Ubuntu:
*** The original source is taken from upstream;
*** The Debian packaging for Maemo is taken from the respective repository in PyMaemo project.
** If the package is Maemo-specific:
*** The source package is taken from the respective repository in PyMaemo project
* Preparation phase:
** If the package is taken from upstream, assemble package
** Verify if dependencies are satisfied
* Build phase:
** Call sbdmock with proper parameters

== Configuration ==

The base directory for these instructions, refered as $BASE, is /scratchbox/users/&lt;user&gt;/home/&lt;user&gt;/pymaemo, 
where &lt;user&gt; is your username in Scratchbox. All operations are made '''outside''' Scratchbox.

First, download the rootstraps for X86 and ARMEL targets and put them in $BASE/rootstraps:

* 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

Clone the pymaemo-tools project inside $BASE:

 $ git clone git://gitorious.org/pymaemo/pymaemo-tools.git 

This will create the directory pymaemo-tools under $BASE.

Edit the &lt;code&gt;fremantle-i386.cfg&lt;/code&gt; and &lt;code&gt;fremantle-arm.cfg&lt;/code&gt; under $BASE/pymaemo-tools/sbdmock, putting the rootstrap path correspondent to each in the following key:
* i386: config_opts['rootstrap'] = &quot;$BASE/rootstraps/maemo-sdk-rootstrap_5.0_i386.tgz&quot;
* armel: config_opts['rootstrap'] = &quot;$BASE/rootstraps/maemo-sdk-rootstrap_5.0_armel.tgz&quot;

If you do not use the default &lt;code&gt;FREMANTLE_ARMEL&lt;/code&gt; and &lt;code&gt;FREMANTLE_X86&lt;/code&gt; target names, you also need to change that on the .cfg files, in the &lt;code&gt;config_opts['sbtarget']&lt;/code&gt; entry.

You'll need the Nokia binaries repository for building some packages, just add the correspondent line to the config_opts['sources.list'] entry of the .cfg files:
 
 deb http://repository.maemo.org/ fremantle/&lt;token&gt; nokia-binaries

As Maemo SDK needs some components from Nokia binaries repository, you probably already have a token in &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; inside Scratchbox. If you don't have a token, though, go to http://tablets-dev.nokia.com/eula/index.php and get one.

== Building ==

For building all the packages for the X86 target, enter $BASE/pymaemo-tools and run:

 $ ./build_packages.sh sbdmock:fremantle-i386 packages-fremantle.ini

The same can be done to ARMEL target, just replacing &quot;i386&quot; with &quot;arm&quot;. The file &lt;code&gt;packages_fremantle.ini&lt;/code&gt; contains all data necessary for obtaining the sources. 

You can build individual packages too, specifying them as parameters. If you want to build only, let's say, pyopenssl and pycurl for the ARMEL target, run:

 $ ./build_packages.sh sbdmock:fremantle-arm packages-fremantle.ini pyopenssl,pycurl

Be advised that any PyMaemo dependency for these packages must be built first, as build_packages.sh will attempt to build only the packages provided at the command line.

There are other options for the build; for more information, run build_packages.sh with no parameters or refer to the README file inside pymaemo-tools.

When the build finishes the resultant Debian packages will be placed at $BASE/pymaemo-tools/workdir/fremantle_&lt;target&gt;/repo, where &lt;target&gt; is i386 or armel,and the build logs placed in $BASE/pymaemo-tools/workdir/fremantle_&lt;target&gt;/logs. From that point on, they can be installed on the targets and the ARMEL ones can be copied to the device to be installed there.

=== Directories created ===

* $BASE/pymaemo-tools/download_cache: all downloaded files are placed here, one directory by package, so you don't have to download everything again at every build. If the sources are updated, though, you will have to erase the corresponding entries on ./download_cache and ./workdir for allow them to be downloaded again and rebuilt.
* $BASE/pymaemo-tools/workdir: the generated files (prepared sources, logs, built packages) are placed under this directory, grouped by the name of the sbdmock config file used to build them. Inside each group, the logs and repo directories will contain, respectively, the build logs and the built packages.

== Adding your own packages to the build ==

If you want to add your own package to the build process, you just have to edit one file, &lt;code&gt;packages-fremantle.ini&lt;/code&gt;. Just add an entry at the end of the file depending on how your package is organized.

* If all the files of your package are contained in a single SVN or Git repository, you just have to point to this repository, as the example below for python-conic:
 
 [python-conic]
 git_url=git://gitorious.org/pymaemo/python-conic.git

If you're using svn, just change &quot;git_url&quot; to &quot;svn_url&quot; and use the appropriate repository URL. 

* If your package has Debian or Ubuntu as upstream and only the packaging is specific for Maemo, you'll have to specify the location of the original .dsc file from upstream. Below is an example for pyclutter:
 
 [pyclutter]
 dsc_url=http://repository.maemo.org/extras-devel/pool/fremantle/free/source/p/pyclutter/pyclutter_0.8.0-1maemo3.dsc
 git_url=git://gitorious.org/pymaemo/pyclutter.git

In this example the .dsc file is used to get the .orig.gz and diff.gz from Debian, and the Maemo-specific packaging is taken from the PyMaemo repository. pymaemo-tools will assemble the package prior to build, as explained in the Overview section.

Also, if your package is native (does not have a .orig.gz file), you have to specify this below the repository address. See http://people.debian.org/~mpalmer/debian-mentors_FAQ.html for a discussion about native and non-native packages on Debian. Below is an example of a native package: 

 [python-support]
 dsc_url=http://repository.maemo.org/extras-devel/pool/fremantle/free/source/p/python-support/python-support_1.0.4maemo1.dsc
 git_url=git://gitorious.org/pymaemo/python-support.git
 native=yes

== Modifying PyMaemo packages ==

The PyMaemo packages are in Gitorious now, allowing the submission of modifications for any of them via merge requests. An overview of the entire process is listed below:

# Create a clone of the repository at Gitorious for the package you want to modify, and git-clone it;
# Modify the &lt;code&gt;packages-fremantle.ini&lt;/code&gt; entry of the package to point to the full path of the repository directory;
# Modify the package and run &lt;code&gt;build_packages.sh&lt;/code&gt; to build it;
## Don't forget to erase your package files from $BASE/download_cache, $BASE/workdir and $BASE/workdir/fremantle_&lt;target&gt;/repo before the build;
# Install on Scratchbox and on the device, if possible, and run all available unit tests for the package - needless to say, your modifications must not introduce regressions of any type;
# Add unit tests to assert the funcionality of the new features added, whenever possible;
# When you are satisfied with the results, push your local changes to your Gitorious clone and file a merge request.

If you want to modify a package that lives entirely on the Git repository, you can do anything you want, as all the files are under your control. However, if the package is taken from upstream, the only changes you can make will be located in the packaging - you'll have to use patches to actually modify any upstream file in build time.

== Tips ==

=== Create a Debian repository with one line ===

If you want to quickly make a Debian repository for easy installation, run the following command at $BASE/pymaemo-tools/workdir/fremantle_&lt;target&gt;/repo:

 $ apt-ftparchive packages . | gzip -9c &gt; Packages.gz 

Now you have to expose the packages' path to the Web server and add the repository in the target machine accordingly.

=== Tracking build in real time ===

If you want to accompany the build log of any package in real time, you can just use the tail command in the following log files:

* Prep and setup: 
 $ tail -F $BASE/workdir/fremantle_&lt;target&gt;/repo/root.log
* Build: 
 $ tail -F $BASE/workdir/fremantle_&lt;target&gt;/repo/build.log

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Installation</title>
    <id>2440</id>
    <revision>
      <id>36196</id>
      <timestamp>2010-06-23T13:25:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>tidy and reorder</comment>
      <text xml:space="preserve">{{out of date}}

Warning: It is necessary to remove ALL applications that depends on Python2.4 BEFORE you remove python2.4-runtime. This is necessary to ensure that all python2.4 packages will be correctly removed.

PyMaemo is taken as a dependency for other applications and it isn't listed by Application Manager anymore. This way if you choose to install PyMaemo by yourself follow the steps below:

== Installation on Maemo 5 beta (fremantle) ==

Given that currently only the SDK is available, PyMaemo is supposed to be installed only inside Scratchbox, as instructed in [[PyMaemo/SDKInstallation]].

== OS2008 ==

# Open Application Manager
# ApplicationManager-&gt;Tools-&gt;Application catalogue...
# Edit Maemo Extras
# Uncheck disabled box
# Click OK and wait refresh

== OS2007 ==

# Open Application Manager
# ApplicationManager-&gt;Tools-&gt;Application catalogue...
# There is any bora-extras? If no, add them clicking New button
## '''Web address:''' http://repository.maemo.org/extras
## '''Distribution:''' bora
## '''Components:''' free non-free
# Click OK and wait refresh

Now run x-term application, to get a command line prompt. Your device must be in RD mode. This is done using
 sudo flasher --enable-rd-mode.

Inside x-term type (hit ENTER after each line):
 sudo /usr/sbin/gainroot
 apt-get update
 apt-get install python2.5-runtime

When asked to agree, choose Y. Now wait until python is being installed. If you want to install Python on Maemo SDK (Scratchbox), check the steps here.

== Upgrade ==

To run an update it is possible to use the install files.

* [http://maemo.org/downloads/product/OS2007/python/ Update - OS2007]
* [http://maemo.org/downloads/product/OS2008/pymaemo/ Update - OS2008]

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/IntroductionToCtypes</title>
    <id>3449</id>
    <revision>
      <id>28148</id>
      <timestamp>2010-02-02T15:50:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/Accessing APIs without Python bindings]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Introduction to Ctypes</title>
    <id>3450</id>
    <revision>
      <id>28147</id>
      <timestamp>2010-02-02T15:48:02Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/Accessing APIs without Python bindings]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Introduction to ctypes</title>
    <id>3454</id>
    <revision>
      <id>28145</id>
      <timestamp>2010-02-02T15:47:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix doubel redirect</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/Accessing APIs without Python bindings]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/ManualInstallation</title>
    <id>3463</id>
    <revision>
      <id>27733</id>
      <timestamp>2010-01-29T16:11:13Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[PyMaemo/ManualInstallation]] moved to [[PyMaemo/Manual installation]]: Naming convention - no CamelCase</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/Manual installation]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Manual installation</title>
    <id>2441</id>
    <revision>
      <id>36198</id>
      <timestamp>2010-06-23T13:36:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{out of date}}</comment>
      <text xml:space="preserve">{{out of date}}

'''Warning:''' It is necessary to remove ALL applications that depends on Python2.4 BEFORE you remove python2.4-runtime. This is necessary to ensure that all python2.4 packages will be correctly removed.

Follow these steps:

:1. Open the Application manager (in Tools menu).
:2. Open its Application catalogue (inside Tools, on the application's menu).
:3. Add the following repositories:

      Name: 	Maemo
      Web address: 	http://repository.maemo.org
      Distribution: 	bora
      Components: 	free non-free

      Name: 	Maemo Extras
      Web address: 	http://repository.maemo.org/extras
      Distribution: 	bora
      Components: 	free non-free

:4. Refresh package list.
:5. Install '''python2.5-runtime''' package, which will automatically pull all available Python bindings, but not the development packages.

Note that if you're using Maemo 2.x series you have to replace bora by the appropriate distribution name. Either scirocco (2.1) or gregale (2.2).


== Development Packages ==

To be able to develop and applications using the device it's necessary to install python2.5-dev package. The steps to do this are decribed below:

Open a xterm session. Inside this session run:
 sudo /usr/sbin/gainroot

Now install the package using apt-get utility:
 apt-get install python2.5-dev

And finally exit from gainroot:
 exit

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Performance</title>
    <id>4116</id>
    <revision>
      <id>35380</id>
      <timestamp>2010-06-04T13:50:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Performance Considerations for Python Apps]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Phone call and SMS examples</title>
    <id>3438</id>
    <revision>
      <id>36187</id>
      <timestamp>2010-06-23T10:28:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use &lt;source&gt;</comment>
      <text xml:space="preserve">{{Recommended phone usage}}

== SMS ==

*Method calls:
**Method: Send
***Description: Use method to send messages
***Parameters: (string, string) - (message, '')
***Interface: com.nokia.csd.SMS.Outgoing
***Path: /com/nokia/phone/SMS/ba212ae1
***Destination: com.nokia.phone.SMS
**Code: Python
&lt;source lang=&quot;python&quot;&gt;
import dbus
bus = dbus.SystemBus()
smsobject = bus.get_object('com.nokia.phone.SMS', '/com/nokia/phone/SMS/ba212ae1')
smsiface = dbus.Interface(smsobject, 'com.nokia.csd.SMS.Outgoing')
arr = dbus.Array(pdu_array)
msg = dbus.Array([arr]) 
smsiface.Send(msg,'')
&lt;/source&gt;

*Signals:
**Signal name: IncomingSegment
***Description: Can be used to listen to incoming messages
***Callback Parameters: (string, string, string, string) 
***Interface: Phone.SMS
***Path: /com/nokia/phone/SMS
**Code: Python
&lt;source lang=&quot;python&quot;&gt;
import gobject, dbus
from dbus.mainloop.glib import DBusGMainLoop

def handle_sms(pdu, msgcenter, somestring, sendernumber):
    print 'New message from %s' % sendernumber
    
DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
bus.add_signal_receiver(handle_sms, path='/com/nokia/phone/SMS',   dbus_interface='Phone.SMS', signal_name='IncomingSegment')
gobject.MainLoop().run()
&lt;/source&gt;

== Call ==

*Method calls:
**Method: Release
***Description: Reject call
***Parameters: ()  
***Interface: com.nokia.csd.Call.Instance
***Path: /com/nokia/csd/call/1
***Destination: com.nokia.csd.Call
**Code: Python
&lt;source lang=&quot;python&quot;&gt;
bus = dbus.SystemBus()
callobject = bus.get_object('com.nokia.csd.Call', '/com/nokia/csd/call/1')
smsiface = dbus.Interface(callobject, 'com.nokia.csd.Call.Instance')
smsiface.Release()
&lt;/source&gt;

**Method: Answer
***Description: Answer call
***Parameters: ()  
***Interface: com.nokia.csd.Call.Instance
***Path: /com/nokia/csd/call/1
***Destination: com.nokia.csd.Call
**Code: Python
&lt;source lang=&quot;python&quot;&gt;
# Just answer
bus = dbus.SystemBus()
callobject = bus.get_object('com.nokia.csd.Call', '/com/nokia/csd/call/1')
smsiface = dbus.Interface(callobject, 'com.nokia.csd.Call.Instance')
smsiface.Answer()
&lt;/source&gt;

&lt;source lang=&quot;python&quot;&gt;
# Answer then hangup
import time

bus = dbus.SystemBus()
callobject = bus.get_object('com.nokia.csd.Call', '/com/nokia/csd/call/1')
smsiface = dbus.Interface(callobject, 'com.nokia.csd.Call.Instance')
smsiface.Answer()
time.sleep(0.5)    # wait 0.5 secs or 500 ms
smsiface.Release()
&lt;/source&gt;

*Signals:
**Signal name: Coming
***Description: Can be used to listen to incoming calls
***Callback Parameters: (string, string) - (obj_path, callernumber)
***Interface: com.nokia.csd.Call
***Path: /com/nokia/csd/call
**Code: Python
&lt;source lang=&quot;python&quot;&gt;
import gobject, dbus
from dbus.mainloop.glib import DBusGMainLoop

def handle_call(obj_path, callernumber):
    print '%s is calling' % callernumber
    
DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
bus.add_signal_receiver(handle_call, path='/com/nokia/csd/call', dbus_interface='com.nokia.csd.Call', signal_name='Coming')
gobject.MainLoop().run()
&lt;/source&gt;

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/PortraitMode</title>
    <id>3460</id>
    <revision>
      <id>27727</id>
      <timestamp>2010-01-29T16:10:12Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[PyMaemo/PortraitMode]] moved to [[PyMaemo/Portrait mode]]: Naming convention - no CamelCase</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/Portrait mode]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Portrait mode</title>
    <id>3388</id>
    <revision>
      <id>38376</id>
      <timestamp>2010-09-08T12:42:58Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fremantle link</comment>
      <text xml:space="preserve">== Python auto-rotation (Portrait mode) on Maemo 5 ==

''This text is just copy-pasted from the [http://talk.maemo.org/showthread.php?t=31940 thread at talk.maemo.org].''

''Says thp:''

Now that python-hildon has got support for portrait mode, I've added portrait mode support and auto-rotation to gPodder for [[Open development/Maemo roadmap/Fremantle|Maemo 5]], and in order to make my life easier, I've come up with a nice object that you can throw into your own code and that will take care of auto-rotation:

http://repo.or.cz/w/gpodder.git?a=blob;f=src/gpodder/gtkui/frmntl/portrait.py

The only thing you (might) need to do is to connect your windows to the configure-event signal and check the ratio of the width and height to determine if you need to relayout your window. For some windows (i.e. a window with just a treeview) you don't need to do anything. :-)

Usage: Save the code as &quot;portrait.py&quot; or find some nice place in the module structure of you project, then use something like the following, and you're done:
&lt;source lang=&quot;python&quot;&gt;
from portrait import FremantleAutoRotation

main_window = ... # your main hildon.StackableWindow
app_name = 'NameOfYourApp' # the name of your app
app_version = '1.0' # the version number of your app
initial_mode = FremantleRotation.AUTOMATIC

rotation_object = FremantleRotation(app_name, main_window, app_version, initial_mode)
&lt;/source&gt;
The rotation object then takes care of enabling and disabling the accelerometer as it is needed. You can provide a preferences UI for your app (see gPodder for an example) and then set the mode of the rotation object like this:
&lt;source lang=&quot;python&quot;&gt;
rotation_object.set_mode(FremantleRotation.AUTOMATIC)
rotation_object.set_mode(FremantleRotation.NEVER)
rotation_object.set_mode(FremantleRotation.ALWAYS)
&lt;/source&gt;
You can create a &lt;code&gt;hildon.PickerButton&lt;/code&gt; and a &lt;code&gt;hildon.TouchSelector&lt;/code&gt; for your preferences dialog to set the mode. As an example, consult the source code of gPodder's preferences dialog:

http://repo.or.cz/w/gpodder.git?a=blob;f=src/gpodder/gtkui/frmntl/preferences.py

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Python-GPSbt</title>
    <id>2443</id>
    <revision>
      <id>36160</id>
      <timestamp>2010-06-22T11:51:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use &lt;source&gt; and &lt;code&gt;</comment>
      <text xml:space="preserve">== Introduction ==

Python-GPSbt is a binding, based on libgpsbt, that provides access to GPS data through osso-gpsd. It only depends on a Bluetooth GPS device already paired.
How it works

Libgpsbt allows to connect with Bluetooth GPS devices and uses osso-gpsd daemon to provide a socket where you can send/receive information.

After a gps.start() its possible to send commands (trhough query) and receive data from GPS. Almost all information acquired from socket is stored inside a structure called 'fix'. To fill it just call the get_fix(). It does a query to get all necessary information from GPS device.

To finish the Bluetooth connection just call the gps.stop() method, providing the context (returned by gps.start()).
API

* &lt;code&gt;gpsbt.start&lt;/code&gt; - establishes a new GPS connection and returns a context. This one is is used to inform stop method what connection to be ended.
&lt;source lang=&quot;python&quot;&gt;
context = gps.start()
&lt;/source&gt;
* &lt;code&gt;gpsbt.stop&lt;/code&gt; - ends an active connection, passed through the context. gps.stop(context)
* &lt;code&gt;gpsbt.gps()&lt;/code&gt; - the class that gets information from GPS. Through it its possible to query, get_fix, get_position, etc.
* &lt;code&gt;gpsbt.gps.get_fix()&lt;/code&gt; - fills in the 'fix' structure with GPS data. The fields are: mode, time, ept, latitude, longitude, eph, altitude (meters), epv, track (degrees from true north), speed (knots), climb (meters per second), epd, eps and epc.
* &lt;code&gt;gpsbt.gps.get_position()&lt;/code&gt; - its a shortcut to return (latitude, longitude) info.
* &lt;code&gt;gpsbt.gps.query()&lt;/code&gt; - allows user to send one letter commands to the GPS device. Its possible to group a sequence of commands to send, e.g.:
** &lt;code&gt;gpsbt.gps.query('a')&lt;/code&gt; fills in the altitude field of 'fix' structure
** &lt;code&gt;gpsbt.gps.query('as')&lt;/code&gt; fills in the altitude and speed fields
* &lt;code&gt;gpsbt.gps.satellites&lt;/code&gt; - contains a list of detected satellites, including information about usage and quality.

== Example ==

The code below shows how to connect with a GPS device, get data and close this connection:
&lt;source lang=&quot;python&quot;&gt;
import gpsbt
import time

def main():
    context = gpsbt.start()

    if context == None:
        print 'Problem while connecting!'
        return

    # ensure that GPS device is ready to connect and to receive commands
    time.sleep(2)
    gpsdevice = gpsbt.gps()

    # read 3 times and show information
    for a in range(4):
        gpsdevice.get_fix()
        time.sleep(2)

        # print information stored under 'fix' variable
        print 'Altitude: %.3f'%gpsdevice.fix.altitude
        # dump all information available
        print gpsdevice

    # ends Bluetooth connection
    gpsbt.stop(context)

main()
&lt;/source&gt;

Download source code [http://pymaemo.garage.maemo.org/documentation/python_gps_examples/gpsbt-example.py here].

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Python-osso examples</title>
    <id>2444</id>
    <revision>
      <id>39677</id>
      <timestamp>2010-10-25T09:50:21Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add link</comment>
      <text xml:space="preserve">This document shows some examples of the functionalities available in the [http://maemo.org/packages/view/python-osso/ python-osso package]. See also the [[Documentation/Maemo 5 Developer Guide/Application Development/LibOSSO library|documentation for the libosso]] library.

== List of examples ==

[https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/osso_examples.tar.gz Download all examples]

=== Application ===

This example shows how to bring an application to foreground using osso.Application.application_top().

* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/application/osso_test_app.py osso_test_app.py] - Application that will be brought to foreground.
* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/application/osso_test_app.service osso_test_app.service] - Service file for the target application.
* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/application/osso_test_sender.py osso_test_sender.py] - Application that will call the OSSO service.

=== Auto-saving / State Saving ===

These examples show how to use the auto-saving and state saving features from python-osso. Each file is a separate example.

* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/autosave/osso_test_autosave.py osso_test_autosave.py] - The same objects from the example below, but instead of calling the save function directly, any changes call &lt;code&gt;user_data_changed&lt;/code&gt;, and when exiting &lt;code&gt;force_autosave&lt;/code&gt; is called.
* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/autosave/osso_test_statesaving.py osso_test_statesaving.py] - Creates a &lt;code&gt;gtk.Entry&lt;/code&gt; and a &lt;code&gt;gtk.HScale&lt;/code&gt;. It saves the state when the application goes to background or exits, restoring the state on the next startup, unless the device resets or is turned off.

=== Device State ===

These examples show how to interact with the display and the device.

* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/device-state/osso_test_device_on.py osso_test_device_on.py] - Requests to turn on the display.
* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/device-state/osso_test_device_blank_pause.py osso_test_device_blank_pause.py] - Requests to do not blank the screen. This will keep the screen on for 60 seconds.
* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/device-state/osso_test_device_state_cb.py osso_test_device_state_cb.py] - Registers a callback for device state changes (Offline mode, etc...).

=== Help ===

These examples show how to use HELP and enable the &quot;?&quot; button in dialogs

* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/helplib/osso_test_help.py osso_test_help.py] - Shows two buttons: one to load a help topic and another to open a dialog with an &quot;?&quot; button in titlebar.

=== MIME ===

These examples show how use the MIME functions.

* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/mime/osso_test_mime_category.py osso_test_mime_category.py] - Prints the category the specified mime type is in.
* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/mime/osso_test_mime_default-app.py osso_test_mime_default-app.py] - Prints information about the current default application for the given mime type.
* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/mime/osso_test_mime_open.py osso_test_mime_open.py] - Opens an file using the default application for its mime type.
* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/mime/osso_test_mime_icons.py osso_test_mime_icons.py] - Shows icons associated with a given mime type.

=== Plugin ===

This example shows how to load plugins.

* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/plugin/test_plugin_app.py test_plugin_app.py] - Loads the test plugin.
* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/plugin/testplugin.c testplugin.c] - Test plugin.
* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/plugin/testplugin.desktop testplugin.desktop] - Desktop file for the test plugin.

=== RPC ===

These examples show how to make remote procedure calls using python-osso.

* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/rpc/osso_test_sender.py osso_test_sender.py] - GUI app that requests a service from the target app.
* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/rpc/osso_test_receiver.py osso_test_receiver.py] - Sample service that will be called by &lt;code&gt;osso_test_sender.py&lt;/code&gt;

=== Status Bar ===

This example shows how to send events to status bar applets.

* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/statusbar/osso_test_statusbar.py osso_test_statusbar.py] - Requests the display applet to change the display brightness.

=== System Note ===

These examples show how to use notification dialogs with applications that run without GUI.

* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/systemnote/osso_test_note_dialog.py osso_test_note_dialog.py] - Shows a dialog note.
* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/systemnote/osso_test_note_infoprint.py osso_test_note_infoprint.py] - Shows an information banner.

=== Time Notification ===

This example registers a callback and tries to set the system time. Notice: Currently this won't change the time. (Even in C).

* [https://garage.maemo.org/svn/pymaemo/wwwold/documentation/python_osso_examples/code/timenotification/osso_test_timenotification.py osso_test_note_timenotification.py]

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Python26PortingGuide</title>
    <id>3461</id>
    <revision>
      <id>27729</id>
      <timestamp>2010-01-29T16:10:30Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[PyMaemo/Python26PortingGuide]] moved to [[PyMaemo/Python 2.6 porting guide]]: Naming convention - no CamelCase</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/Python 2.6 porting guide]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/PythonOssoExamples</title>
    <id>3465</id>
    <revision>
      <id>27738</id>
      <timestamp>2010-01-29T16:14:15Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[PyMaemo/PythonOssoExamples]] moved to [[PyMaemo/Python-osso examples]]: Naming convention - no CamelCase</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/Python-osso examples]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Python 2.6 porting guide</title>
    <id>2016</id>
    <revision>
      <id>36193</id>
      <timestamp>2010-06-23T12:13:30Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>tidy</comment>
      <text xml:space="preserve">{{out of date}}

&lt;b style=&quot;color: red&quot;&gt;Important: this document is still a draft. There are currently no planned dates for migration to 2.6, but it will be informed in advance on the maemo-developers and pymaemo-developers mailing lists, so that developers have some time to fix their packages.&lt;/b&gt;

This documents contains some general guidelines about how to port your Python application currently being used with Python 2.5 for working without problems with Python 2.6.

== Introduction ==

Currently, Maemo 4.x (Diablo) has Python 2.5. Maemo 5 (Fremantle) has this same version, but we are evaluating upgrading Fremantle to Python 2.6, so that developers can use the latest features, while keeping compatibility with Python 2.5. See the [http://docs.python.org/whatsnew/2.6.html What’s New in Python 2.6] page for details.

This also means that we have no plans to migrate to Python 3.x during Fremantle life cycle. Using Python 2.6 is the best option because developers can use most 3.x features without breaking compatibility with Python 2.5. With Python 2.6, users can use a flag to check for possible incompatibilities with Python 3.x.

One question might arise: why not have both 2.6 and 3.x, or even 2.5, 2.6 and 3.x? We have thought about this, the problem is, with the current mechanism used in Debian and Ubuntu (which we also use), packages that install Python extensions need to be compiled for all supported versions, and all resulting binaries are installed ''in a single package''. This means that some packages will simply double or triple their size even if only one version is installed and used.

Besides, if we have two or three versions available in the repository, there is a possibility that some packages would depend on e.g. 2.5 while others depend 3.x. So the user would need to have ''both'' versions installed in some cases.

For small devices such as the Internet Tablets, saving space is also a high priority, so we decided to support only a single version at a time during the life cycle of a Maemo distribution.

=== Python 2.6 porting guidelines ===

Porting a package to support Python 2.6 usually involves actually making it version agnostic. In Maemo versions prior to Fremantle, the packages had hardcoded support for Python 2.5, which can be demonstrated by all Python binding packages having &quot;python2.5-&quot; as prefix, and consequently Python applications also had these names on their Depends fields in debian/control.

As long as Fremantle contains Python 2.5, though, packages that worked on Diablo should also work on Fremantle without changes. This happens because PyMaemo packages named python-&lt;something&gt; can also be installed by using python2.5-&lt;something&gt;.

On the other hand, if we indeed upgrade to Python 2.6, this compatibility will not work anymore, and packages will need modifications so they can work on Fremantle.

One possibility we are evaluating is to provide updates to PyMaemo packages in previous Maemo releases (e.g. chinook and diablo) so they can also be installed by using the version agnostic python-&lt;something&gt; name (along the old python2.5-&lt;something&gt; names). This would allow most packages to be uploaded to all three releases (chinook, diablo and fremantle) without requiring specific changes only for Fremantle.

=== Porting tips ===

* Any paths that, for some reason, have hardcoded &quot;python2.5&quot; or &quot;site-packages&quot; will have to be changed to &quot;python2.6&quot; and &quot;dist-packages&quot;, as these are the ones used on Python 2.6. 
* If you use distutils for building your package, you must pass the --install-layout=deb flag for &quot;setup.py install&quot; command inside debian/rules in order to install the files to the proper locations. If you're using CDBS for this task, use the variable DEB_PYTHON_INSTALL_ARGS_ALL for passing the flag, e.g.:&lt;pre&gt;DEB_PYTHON_INSTALL_ARGS_ALL = --no-compile -O0 --install-layout=deb&lt;/pre&gt;
* If your application uses any python2.5 package as one of its dependencies in any Depends field, you should drop the version number and add the version as a requirement - for example, python2.5 can be changed to python (&gt;= 2.5) without problems. If this is not possible nor desired, just change the dependencies to python2.6.
* Also, this would be a good time for your package to use dependencies that follow the new Debian Python Policy, if that's the case - the Policy states that Python packages must not have a fixed version number on its name (e.g. prefer python-xml instead of python2.6-xml).
* One very particular case where changes are required is when some Python script uses identifies that became reserved keywords in Python 2.6. Old versions of python-xml had this issue, where the &quot;as&quot; identifier (which became a reserved keyword in Python 2.6) was being used as variable name in some places. If these occurrences are not replaced, running the script will result in syntax errors.

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/QuickStartGuide</title>
    <id>3443</id>
    <revision>
      <id>27541</id>
      <timestamp>2010-01-27T19:16:15Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[PyMaemo/QuickStartGuide]] moved to [[PyMaemo/Quick start guide]]</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/Quick start guide]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Quick start guide</title>
    <id>3161</id>
    <revision>
      <id>42814</id>
      <timestamp>2011-03-24T21:04:25Z</timestamp>
      <contributor>
        <username>billmania</username>
        <id>1858</id>
      </contributor>
      <minor/>
      <comment>notes about retirement of rootsh</comment>
      <text xml:space="preserve">= Getting Started: Setting Up Python Development Environment for N900 =

A basic development environment for Python development for Maemo consists of:

* A source code editor
* Some way to transfer application files to the tablet
* Easily run the application (without installing it)

Alternatively, you can try other more complex development environments, briefly described at the end of this article.

This article will cover:

* Installation of necessary packages and USB connectivity setup
* Some suggestions for Python code editors
* How to transfer the application files to the N900
* How to run the application

Application packaging and final deployment will be discussed separately at a later date.

Finally, there is a [http://www.youtube.com/watch?v=onAkb_7U5pk screencast] demonstrating the instructions from this guide, which should help clarifying some of the steps in a real setup session.

== Requirements ==

Before continuing, make sure you have:

Tablet requirements:

* Some kind of connectivity to the tablet (e.g. WLAN or GPRS), so that you can install required packages.
* The N900 USB cable, which will be used to transfer files to the tablet.

Host requirements:

* An SSH client. For Linux, OpenSSH (through the &quot;ssh&quot; command) is enough. For Windows, [http://en.sourceforge.jp/projects/ttssh2/releases/ Tera Term] can be used. For Mac you can use &quot;ssh&quot; command in the Terminal.
* An SCP/SFTP client. For Linux, OpenSSH (through the &quot;scp&quot; command) is enough. The KDE/GNOME environments also have built-in support for these protocols. For Windows, you can try [http://winscp.net/eng/index.php WinSCP] or [http://filezilla-project.org/ FileZilla].

For the purposes of this tutorial, you will '''not''' need Scratchbox installed. Scratchbox would only be necessary if you are unable to test your applications on the actual tablet.

== Installing required packages on N900 ==

You will need to install two applications on the tablet:

* [http://maemo.org/packages/view/openssh-server/ OpenSSH Server]
* [http://maemo.org/packages/view/rootsh/ rootsh]

rootsh appears to have been replaced by either running &lt;code&gt;sudo gainroot&lt;/code&gt; directly, or by running &lt;code&gt;root&lt;/code&gt;.

OpenSSH is needed to run commands remotely on your N900. This will make testing on the device a lot easier.

[[Root access]] is needed to allow to run commands as root on the X Terminal (using &lt;code&gt;sudo gainroot&lt;/code&gt;).

To install these applications, follow these steps:

# [[Extras#Using Extras|Enable the extras repository]].
# Install the packages listed above.
# The installation will ask for a new root password for SSH access. Choose a good one.
# Wait for installation to complete.

== Enabling USB networking ==

USB networking allows to easily and quickly transfer files to the device and connect to it using SSH.

Note that this is not the only way to transfer files to the device. If you are already setup with your N900 and your desktop on the same LAN over Wifi, you can save yourself the trouble and skip this USB networking configuration section.

To enable USB networking, follow these steps (you need to repeat them every time you reboot the device):

# If the USB cable is plugged and in &quot;Mass storage mode&quot;, unplug the cable and plug it again, now selecting &quot;PC Suite Mode&quot;.
# On N900, open &quot;X Terminal&quot; and run:
 rootsh ifup usb0
# Now you need to configure the host. This is dependent on which OS (or Linux distro) you use, but there are [[USB networking#Host USB Network Configuration|detailed instructions for various OSes and Linux distros]].

From now on you can connect to the N900 using any SSH client and the following information:
 Host: 192.168.2.15
 Port: 22
 User: root
 Password: the password setup earlier

For instance, from a Linux terminal, you can connect to the tablet using this command:

 ssh root@192.168.2.15

== Preparing the N900 for Python Development ==

To enable the full power for Python development for Maemo, you must enable the &quot;extras-devel&quot; repository on your device. ''Be advised that this might be a risky operation'' because extras-devel contains many untested and possibly broken packages. But it also contains the latest versions of all available Python bindings for Maemo, which we are interested on.

Note that the requirement to enable the &quot;extras-devel&quot; repository might be removed later.

To enable extras-devel add a new catalogue to the Application Manager, as instructed in [[Extras-devel]] (did you see the big warning on that page?)

After extras-devel is enabled, you will see on Application Manager a package called &quot;maemo-python-device-env&quot;. Installing it will also install the basic environment necessary to run most Python applications on Maemo.

== Writing your code ==

Any good programmer oriented editor will be enough for development. If you have some development experience, you most probably already have chosen your favorite code editor and you can simply use it.

Here we list some options, both for Linux and Windows:

* [http://projects.gnome.org/gedit/ gedit]: the GNOME Editor has syntax highlight support for Python
* [http://www.vim.org/ VIM] and [http://www.gnu.org/software/emacs/ Emacs]: the most popular editors, with many advanced features and versions for both Linux and Windows
* [http://wiki.netbeans.org/Python NetBeans + Python plugin]: NetBeans is a multi-platform IDE, which with help of a plugin, supports development for Python
* [http://maemo.org/downloads/product/Maemo5/pygtkeditor/ PyGTKEditor]: a syntax highlighting Python editor which runs natively on Maemo devices

Note that none of these editors will support code completion for PyMaemo modules out of box.

For testing purposes, you can try the following code (the classic &quot;hello world&quot; example):

 import gtk
 from gtk import Window, Button, Widget
 if __name__ == &quot;__main__&quot;:
     window = Window(gtk.WINDOW_TOPLEVEL)
     window.connect(&quot;destroy&quot;, gtk.main_quit)
     button = Button(&quot;Hello World&quot;)
     button.connect_object(&quot;clicked&quot;, Widget.destroy, window)
     window.add(button)
     window.show_all()
     gtk.main()

Once you have your code written, you can proceed to copying application files to the device.

== Running the Python application on the device ==

Now that you have the N900 properly setup and the code to run, you just need to copy the application files to the device and run it.

The simplest way to copy files it to use a SFTP or SCP client. There are many free clients available for most OSes (we listed some examples on the &quot;Requirements&quot; section). On the Linux command line, you can use:

 scp -pr my_application/ root@192.168.2.15:/root/my_application/

Replace &quot;my_application/&quot; with the path to the directory which contains your application files.

Finally, to run the application on the tablet, use (from a SSH terminal):

 cd /root/my_application
 python my_application.py

== Alternative development environments ==

Besides the environment described on this article, there are two alternative development environments that might or might not be more appropriate for your purposes:

; PluThon (Eclipse based)
: [http://pluthon.garage.maemo.org/ PluThon] is a full Python IDE for Maemo, based on Eclipse. While PluThon is easy to use and provides a complete solution, it is not necessary for basic Python development for Maemo. If you already use Eclipse for your development, PluThon might be your best option.
; Official Maemo SDK (Scratchbox based)
: [http://www.scratchbox.org/ Scratchbox] is a cross-compilation toolkit used for native Maemo development. Although it can be used in Python development as well (and comes very handy if you do not have access to a real device), it has a non-trivial learning curve and is not needed for pure Python development. However, if you plan to write new Python extensions (for instance, using [http://www.cython.org/ Cython] or [http://docs.python.org/c-api/index.html Python/C API] directly), Scratchbox is needed to cross-compile the C code. See the [http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_SDK Maemo SDK section] on Maemo 5 developer guide for more details on it.

Note that PluThon has built-in support for transferring and running code on the device. On the other hand, the Maemo SDK has no such support (unless you use some IDE like [http://esbox.garage.maemo.org/ ESbox]), so you need to follow steps similar to the ones described on this guide to copy and run your code on the tablet, if you choose to use the Maemo SDK.

== Advanced tips ==

If you want to activate USB networking automatically upon connecting the device to the computer, just create a file called /etc/event.d/usbnet on the device with the following contents:

 start on G_NOKIA_READY
 
 console output
 exec ifconfig usb0 192.168.2.15 netmask 255.255.255.0 up

This way you just have to select &quot;PC Suite mode&quot; when plugging the device in.

[[Category:N900]]
[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/SDKInstallation</title>
    <id>3464</id>
    <revision>
      <id>27735</id>
      <timestamp>2010-01-29T16:11:28Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[PyMaemo/SDKInstallation]] moved to [[PyMaemo/SDK installation]]: Naming convention - no CamelCase</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/SDK installation]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/SDK installation</title>
    <id>2442</id>
    <revision>
      <id>36197</id>
      <timestamp>2010-06-23T13:33:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redorder and tidy</comment>
      <text xml:space="preserve">{{out of date}}

== Instructions for Maemo 5 beta (fremantle) ==

To install PyMaemo on Maemo 5 SDK, follow the same instructions as below (replacing occurrences of &quot;diablo&quot; with &quot;fremantle&quot;), but replace the &quot;extras&quot; repository with the &quot;extras-devel&quot; one:

  deb http://repository.maemo.org/extras-devel/ fremantle free non-free

Also note that the runtime metapackage is now called &quot;python-runtime&quot; (without the Python version), therefore to install the bindings, do:

  [sbox-FREMANTLE_X86: ~] &gt; apt-get install python-runtime

== Instructions for Maemo 4.1 (Diablo) ==

The first thing is to add the Maemo extras repository (where Python is located) to your list of package sources. To do that you will have to edit the file &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; inside Scratchbox, for both targets (X86 and ARMEL), which should look similar to this:

  deb http://repository.maemo.org/ diablo free non-free
  deb-src http://repository.maemo.org/ diablo free
  deb file:/home/[username]/maemo-sdk-nokia-binaries_4.1.2 diablo explicit

Add the following line to it:

  deb http://repository.maemo.org/extras/ diablo free non-free

Now resynchronize your package index files with the following command:

  [sbox-SDK_X86: ~] &gt; apt-get update

After that you are ready to install python2.5 plus bindings doing this:

  [sbox-SDK_X86: ~] &gt; apt-get install python2.5-runtime

To see all Python-related packages issue this command

  [sbox-SDK_X86: ~] &gt; apt-get cache search python*

Note that you'll see also Scratchbox's own python (version 2.3) which you must not use for your Maemo development. So, run your scripts explicitly calling &lt;code&gt;python2.5&lt;/code&gt; instead of just &lt;code&gt;python&lt;/code&gt;.

Also, some programs require some extra configuration done by the &lt;code&gt;run-standalone.sh&lt;/code&gt; script. Call Python with it as follows:

  run-standalone.sh python2.5 &lt;yourscript.py&gt;

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Scratchboxless packaging guide</title>
    <id>4244</id>
    <revision>
      <id>42307</id>
      <timestamp>2011-03-02T13:46:23Z</timestamp>
      <contributor>
        <ip>189.2.128.130</ip>
      </contributor>
      <comment>Fix some typos</comment>
      <text xml:space="preserve">== Introduction ==

The usual way of developing Maemo applications is using either Scratchbox or [[MADDE]], which are quite heavy for Python development. An alternative is using [http://github.com/astraw/stdeb stdeb], a set of extensions to distutils that allows generating Debian packages, both binary and source, that can be installed on the device or sent to the [[extras-devel]] repository.

This tutorial will show how to integrate it into your project, build the packages and upload them to extras-devel.

== Prerequisites ==

This tutorial is aimed at Debian-based systems, as some stdeb commands requires the dpkg tools installed. If you're using another distro, please refer to the section 

Also, you should get the [http://github.com/astraw/stdeb git] version of stdeb to use the debianize command, as it is a new addition and not yet available in the repositories. Run the following commands to install it:

 # Clone the git repository
 git clone http://github.com/astraw/stdeb.git
 
 # Enter source package
 cd stdeb
 
 # Build .deb (making use of stdeb package directory in sys.path).
 python setup.py --command-packages=stdeb.command bdist_deb
 
 # Install it
 sudo dpkg -i deb_dist/python-stdeb_0.5.1+git-1_all.deb

As only python2.5 is supported in pymaemo, it should be installed if you want to create binary packages. On Ubuntu Lucid (10.04), you can install it from [https://launchpad.net/~fkrull/+archive/deadsnakes this ppa], following the instructions [http://www.codigomanso.com/en/2010/05/google-app-engine-en--10-4-lucid-lynx/ here].

== Preparing the package ==

As stdeb extends distutils, it is necessary that you have a working setup.py script. For our example application, which consists of a [http://pymaemo.garage.maemo.org/stdeb_example/myscript-app/myscript single script] named &quot;myscript&quot; and support files like [http://pymaemo.garage.maemo.org/stdeb_example/myscript-app/myscript.desktop .desktop]&lt;ref name=&quot;desktop&quot;&gt;[[Desktop file format]]&lt;/ref&gt; and an [http://pymaemo.garage.maemo.org/stdeb_example/myscript-app/myscript.png icon]&lt;ref name=&quot;icon&quot;&gt;[[Packaging#Displaying an icon in the Application Manager next to your package]]&lt;/ref&gt;, the [http://pymaemo.garage.maemo.org/stdeb_example/myscript-app/setup.py setup.py] will look like this:
&lt;source lang=&quot;python&quot;&gt;
from distutils.core import setup

setup(
    name='myscript',
    version='0.1',
    author='Lauro Moura',
    author_email='lauro.neto@donotspamme.com',
    scripts=['myscript'],
    data_files=[('share/applications/hildon', ['myscript.desktop']),
                ('share/pixmaps', ['myscript.png'])],
)
&lt;/source&gt;
A file named [http://pymaemo.garage.maemo.org/stdeb_example/myscript-app/stdeb.cfg stdeb.cfg] in the same directory as setup.py is required, with stdeb Maemo-specific options. A detailed list of options can be found in the [http://github.com/astraw/stdeb stdeb website].

 [DEFAULT]
 XS-Python-Version: 2.5 # Only version currently supported by PyMaemo.
 Package:my-script # Binary package name. stdeb adds the prefix &quot;python-&quot; by default
 Section: user/development # Section should start with user/ to appear in the menu.
 Depends: python-gtk2 # extra dependencies go here

&lt;b&gt;Warning 1&lt;/b&gt;: Make sure to use [[Maemo_packaging#Sections|an allowed section]].

&lt;b&gt;Warning 2&lt;/b&gt;: The &lt;code&gt;Depends&lt;/code&gt; field in stdeb.cfg will be used on your debian/control file, so fill it correctly with all the dependencies of your application - otherwise it will break when you try to install it. For instance, [http://gitorious.org/twcano/twcano twcano] depends on the following packages: &lt;code&gt;python-simplejson, pyside-qt4-maemo5, pyside-qt4-webkit and python-twitter&lt;/code&gt;, so the &lt;code&gt;Depends&lt;/code&gt; field should be filled this way:

 Depends: python-simplejson, pyside-qt4-maemo5, pyside-qt4-webkit, python-twitter

== Building the packages ==

The basic command is

 python setup.py --command-packages=stdeb.command bdist_deb

It'll create a folder called deb_dist with the source and binary packages. Alternatively, the &quot;sdist_dsc&quot; command will create only the source package.

After generating, you can copy the package to your device and install it (requires an [[SSH]] server):

 $ scp myscript_0.1-1_all.deb root@&lt;n900 ip&gt;:/root
 $ ssh root@&lt;n900 ip&gt;
 # dpkg -i myscript_0.1-1_all.deb

== Building a basic debian directory ==

Another useful command is ''debianize''. It will read the configuration file and write a directory named debian in the same directory. This can be used for manually creating the packages using dpkg tools directly. For a detailed usage example see the [http://github.com/astraw/stdeb#debianize-distutils-command stdeb website].

Note: sdist_dsc and bdist_deb do '''not''' use this directory, generating a new one in the source dir under deb_dist/.

== Uploading to extras ==

To upload to extras, use the debianize command and then call dpkg-buildpackage:

 $ dpkg-buildpackage -rfakeroot -uc -us -S

This command will create the .dsc, .tar.gz and .changes files that can be used to [[uploading to Extras-devel|upload the application to extras-devel]].



== Support for non-Debian systems ==

{{ambox
| type = notice
| image= 
| text = Keep in mind that the support for non-Debian systems is '''experimental''': it is not as funcional as the stdeb approach shown above and may not work for your package. Also, these instructions may change without notice. }}

If you're using a distro not based on Debian, you can still create source packages for uploading to extras-devel, but won't be able to create binary packages (.deb).

For doing this, you will need the sdist_deb module available [http://gitorious.org/pymaemo/sboxless here]; just clone it in some directory and point the PYTHONPATH environment variable there. 

Now create a file called sboxless.cfg, which will contain additional information for generating the package. For now, you can add additional runtime dependencies for your package. If you want to add python-twitter as dependency, just write

 [control]
 depends=python-twitter

The file is mandatory, so if you don't want to add any dependency, just leave the field empty ('depends=').

Now, run the sdist_deb command:

 PYTHONPATH=/path/to/sboxless python setup.py --command-packages=sboxless  sdist_deb

The source files will be generated on the ./dist directory.

== References ==

&lt;references /&gt;

[[Category:Python]]
[[Category:Packaging]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Screenshots</title>
    <id>2453</id>
    <revision>
      <id>49898</id>
      <timestamp>2012-09-26T16:01:56Z</timestamp>
      <contributor>
        <ip>190.102.30.7</ip>
      </contributor>
      <comment>/* Carman - http://openbossa.indt.org/carman/ */</comment>
      <text xml:space="preserve">== gPodder - http://maemo.gpodder.org/ ==
=== Fremantle ===
[[Image:gPodderFremantle.png]]
=== Diablo ===
[[Image:Screenshot_WordPy.png]]

== Maemo WordPy - http://maemo-wordpy.garage.maemo.org/ ==
[[Image:MaemoWordPy.png]]

== Lybniz - http://lybniz.garage.maemo.org/ ==
=== Fremantle ===
[[Image:LybnizFremantle.png]]
=== Diablo ===
[[Image:MaemoLibniz.png]]

== PyGTKEditor - http://khertan.net/pygtkeditor/ ==
=== Fremantle ===
[[Image:PyGTKEditorFremantle.png]]
=== Diablo ===
[[Image:PyGTKEditor.png]]

== Ukmp - https://garage.maemo.org/projects/ukmp/ ==
[[Image:UkmpFremantle.png]]

== Mirage - https://garage.maemo.org/projects/mirage/ ==
[[Image:MaemoMirage.png]]

== Fuse - http://fuse-emulator.sourceforge.net ==
[[Image:MaemoFuse.png]]

Mighty ufsuel. Make no mistake, I appreciate it.</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Statistics</title>
    <id>3319</id>
    <revision>
      <id>43043</id>
      <timestamp>2011-04-12T19:08:30Z</timestamp>
      <contributor>
        <username>billmania</username>
        <id>1858</id>
      </contributor>
      <minor/>
      <comment>added package descriptions</comment>
      <text xml:space="preserve">== Statistics about PyMaemo ==

=== PyMaemo usage graphs ===

http://mairas.net/pymaemo-stats/

=== Software written using PyMaemo ===

(User-section packages in the extras-testing repository depending on python)

''Updated 2011-04-12  by manually adding the package descriptions''

* accdisplay - View/Record/Playback accelerometer's raw data in a graphical manner.
* anarchism - An exhaustive exploration of Anarchist theory and practice
* attitude - An artificial horizon and spirit level.
* comix - GTK Comic Book Viewer
* copernicium - Periodic table of chemical elements.
* dialcentral - Touch screen enhanced interface to the GoogleVoice phone service
* digghomewidget - Digg widget that sits on your desktop and let's you check the top Digg topics.
* ejpi - A Touch Screen Optimized RPN Calculator using Pie Menus
* fapn - GUI for adding a new GPRS APN
* feedingit - A RSS feed reader with portrait mode support
* fmradio - Turn the N900 into a FM radio
* freecell4maemo - An implementation of the classic Freecell cardgame for the Maemo platform.
* fschedule - Show movie schedule for cinemas:
* gcompris - Educational games for small children
* glogarchive - view, search, archive, export SMS/IM messages and calling-history from the eventlogger
* gonvert - Unit Conversions
* gpodder - A podcast aggregator for the Nokia N900
* greekiradio - Add greek internet radio stations from eradio.gr to Media Player radio list
* hermes - Enrich contacts' information from social networks
* homeip - homeip is a home widget made to display your ip on the desktop.
* jamaendo - Streaming media player that plays music from jamendo.com
* lybniz - Lybniz is a simple mathematical function graph plotter.
* mastory - Blogging from your hands.
* mclock - A large clock incl. a day/night world map.
* mediabox - Media Center for Nokia Internet Tablets
* mfefolders - Select which Mail for Exchange folders to synchronize.
* mgutenberg - E-book reader with Project Gutenberg integration
* mirror - Displays a real-time mirror image from the internal camera
* moodlight - Colorcycling screen and LED flashlight.
* n900fly - Uses the accelerometer to measure how high you can throw your n900
* openvpn-applet - Status menu plugin for controlling OpenVPN connections
* panucci - Play audio books, podcasts and live concerts with resuming
* pygtkeditor - PyGTKEditor is a source code editor specially designed for devices running Maemo.
* pyrecipe - Pyrecipe Recipe Manager
* python2.5-py2deb - Generate simple deb(/rpm) from python
* python2.5-qt4-experimental-doc - Python Qt bindings demos, examples and documentation
* python2.5-qt4-doc - Python Qt bindings demos, examples and documentation (PR1.2)
* quicknote - Simple note taking application in a similar vein as PalmOS Memos
* rapier - A sword based Bible reader for maemo.
* recaller - A widget to record all audio, be it as Dictaphone, Voicecalls or System sounds (FM and internet radio, game audio etc.) in various formats (e.g
* scrabbledict - A dictionary reference for Scrabble
* sgt-puzzles - Simon Tatham's Portable Puzzle Collection - 1-player puzzle games
* sleeper - A sleep widget to pause the music player (or Panucci or FM radio) after a user-defined time (in minutes). Can optionally also shutdown your N900
* solarwolf - Collect the boxes and don't become mad
* stockthis - The most complete stockquotes mobile application.
* stopwatch - A stopwatch and countdown application
* tennix - A funny 2D tennis game
* touchsearch - Desktop Widget which allows you to search the web
* witter - A twitter client in python
* zoutube - Browse and watch Youtube videos


[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/SupportedSoftware</title>
    <id>2446</id>
    <revision>
      <id>18462</id>
      <timestamp>2009-09-21T19:34:54Z</timestamp>
      <contributor>
        <username>lmoura</username>
        <id>1199</id>
      </contributor>
      <comment>[[PyMaemo/SupportedSoftware]] moved to [[PyMaemo/Components]]: Better name.</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/Components]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UITutorial</title>
    <id>3459</id>
    <revision>
      <id>27725</id>
      <timestamp>2010-01-29T16:09:46Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[PyMaemo/UITutorial]] moved to [[PyMaemo/UI tutorial]]: Naming convention - no CamelCase</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/UI tutorial]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UITutorial/Controls</title>
    <id>3486</id>
    <revision>
      <id>27904</id>
      <timestamp>2010-02-01T11:14:23Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[PyMaemo/UITutorial/Controls]] moved to [[PyMaemo/UI tutorial/Controls]]</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/UI tutorial/Controls]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UITutorial/Data selection</title>
    <id>3485</id>
    <revision>
      <id>27902</id>
      <timestamp>2010-02-01T11:13:55Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[PyMaemo/UITutorial/Data selection]] moved to [[PyMaemo/UI tutorial/Data selection]]</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/UI tutorial/Data selection]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UITutorial/Getting started</title>
    <id>3480</id>
    <revision>
      <id>27892</id>
      <timestamp>2010-02-01T11:09:28Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[PyMaemo/UITutorial/Getting started]] moved to [[PyMaemo/UI tutorial/Getting started]]</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/UI tutorial/Getting started]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UITutorial/Getting started</title>
    <id>3480</id>
    <revision>
      <id>27892</id>
      <timestamp>2010-02-01T11:09:28Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[PyMaemo/UITutorial/Getting started]] moved to [[PyMaemo/UI tutorial/Getting started]]</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/UI tutorial/Getting started]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UITutorial/Introduction</title>
    <id>3479</id>
    <revision>
      <id>27890</id>
      <timestamp>2010-02-01T11:07:59Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[PyMaemo/UITutorial/Introduction]] moved to [[PyMaemo/UI tutorial/Introduction]]</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/UI tutorial/Introduction]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UITutorial/Menus</title>
    <id>3482</id>
    <revision>
      <id>27896</id>
      <timestamp>2010-02-01T11:10:56Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[PyMaemo/UITutorial/Menus]] moved to [[PyMaemo/UI tutorial/Menus]]</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/UI tutorial/Menus]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UITutorial/Navigation</title>
    <id>3484</id>
    <revision>
      <id>27900</id>
      <timestamp>2010-02-01T11:12:18Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[PyMaemo/UITutorial/Navigation]] moved to [[PyMaemo/UI tutorial/Navigation]]</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/UI tutorial/Navigation]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UITutorial/Toolbars</title>
    <id>3483</id>
    <revision>
      <id>27898</id>
      <timestamp>2010-02-01T11:11:31Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[PyMaemo/UITutorial/Toolbars]] moved to [[PyMaemo/UI tutorial/Toolbars]]</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/UI tutorial/Toolbars]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UITutorial/Utilities</title>
    <id>3488</id>
    <revision>
      <id>27910</id>
      <timestamp>2010-02-01T11:15:39Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[PyMaemo/UITutorial/Utilities]] moved to [[PyMaemo/UI tutorial/Utilities]]</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/UI tutorial/Utilities]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UITutorial/Windows and dialogs</title>
    <id>3481</id>
    <revision>
      <id>27894</id>
      <timestamp>2010-02-01T11:10:20Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[PyMaemo/UITutorial/Windows and dialogs]] moved to [[PyMaemo/UI tutorial/Windows and dialogs]]</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/UI tutorial/Windows and dialogs]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UI tutorial</title>
    <id>2644</id>
    <revision>
      <id>27923</id>
      <timestamp>2010-02-01T12:46:41Z</timestamp>
      <contributor>
        <username>lizardo</username>
        <id>923</id>
      </contributor>
      <minor/>
      <comment>Simplify internal URLs</comment>
      <text xml:space="preserve">*[[/Introduction | Introduction]]
*[[/Getting_started | Getting Started]]
*[[/Windows_and_dialogs | Windows and Dialogs]]
*[[/Menus | Menus]]
*[[/Toolbars | Toolbars]]
*[[/Navigation | Navigation]]
*[[/Data_selection | Data Selection]]
*[[/Controls | Controls]]
*[[/Additions_to_GTK+ | Additions to GTK+]]
*[[/Utilities | Utilities]]

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UI tutorial/Controls</title>
    <id>2654</id>
    <revision>
      <id>39447</id>
      <timestamp>2010-10-07T11:37:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add C documentation references</comment>
      <text xml:space="preserve">{{main|Legacy Maemo 5 Documentation/Graphical UI Tutorial/Controls}}

Hildon provides a set of controls specially designed for touchscreens that allows to build simple and easy-to-use interfaces. This chapter explains how to use these widgets.

== Buttons ==

A Hildon application can use several types of buttons. Hildon provides specialized buttons derived from &lt;code&gt;GtkButton&lt;/code&gt; which provide additional commodities specific to the Hildon framework. Using &lt;code&gt;GtkButton&lt;/code&gt;s and &lt;code&gt;GtkToggleButton&lt;/code&gt;s is also recommended.

===Hildon Button===

&lt;code&gt;HildonButton&lt;/code&gt; is a &lt;code&gt;GtkButton&lt;/code&gt; which usually contains two labels, title and value. It can also include an image.

To create a &lt;code&gt;HildonButton&lt;/code&gt;, use the following function:
&lt;source lang=&quot;python&quot;&gt;
    button = hildon.Button(size, arrangement, title='', value='')
&lt;/source&gt;
Note that in the creation of a &lt;code&gt;HildonButton&lt;/code&gt; you must indicate the value for the properties &quot;size&quot; and &quot;arrangement&quot;, choosing a Hildon size and a horizontal or vertical arrangement of the labels.

You can set and retrieve both labels by using the following convenience functions:
&lt;source lang=&quot;python&quot;&gt;
    hildon.Button.set_title(title)
    hildon.Button.set_value(value)
    title = hildon.Button.get_title()
    value = hildon.Button.get_value()
&lt;/source&gt;
Alternatively, use the following function to set both labels of a &lt;code&gt;HildonButton&lt;/code&gt;:
&lt;source lang=&quot;python&quot;&gt;
    hildon.Button.set_text(title, value)
&lt;/source&gt;
To add images to &lt;code&gt;HildonButton&lt;/code&gt;s, use the following functions to set and retrieve the current image: &lt;code&gt;hildon_button_set_image()&lt;/code&gt; and &lt;code&gt;hildon_button_get_image()&lt;/code&gt;.

You can also set the position of the image.
&lt;source lang=&quot;python&quot;&gt;
    hildon.Button.set_image_position(position)
&lt;/source&gt;
Currently supported positions are &lt;code&gt;gtk.POS_LEFT&lt;/code&gt; or &lt;code&gt;gtk.POS_RIGHT&lt;/code&gt;.

The visual style (color, fonts, etc.) of a &lt;code&gt;HildonButton&lt;/code&gt; can be changed by using the function &lt;code&gt;set_style()&lt;/code&gt;. Use &lt;code&gt;hildon.BUTTON_STYLE_NORMAL&lt;/code&gt; to make it look like a normal &lt;code&gt;HildonButton&lt;/code&gt;, or &lt;code&gt;hildon.BUTTON_STYLE_PICKER&lt;/code&gt; to make it look like a &lt;code&gt;HildonPickerButton&lt;/code&gt;.

The next simple example shows how to create a &lt;code&gt;HildonButton&lt;/code&gt;, set the label text and add an image.

'''Example 7.1. Example of a Hildon button with a label and an image'''
&lt;source lang=&quot;python&quot;&gt;
def create_button():
    # Create a hildon button
    button = hildon.Button(gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT,
                           hildon.BUTTON_ARRANGEMENT_VERTICAL)

    # Set labels value
    button.set_text(&quot;Some title&quot;, &quot;Some value&quot;)

    # Set image
    image = gtk.image_new_from_stock(gtk.STOCK_INFO, gtk.ICON_SIZE_BUTTON)
    button.set_image(image)
    button.set_image_position(gtk.POS_RIGHT)

    return button
&lt;/source&gt;
===Hildon Check Button===

&lt;code&gt;HildonCheckButton&lt;/code&gt; is a button that contains a label and a check box. The check box toggles between checked or unchecked.

To create a &lt;code&gt;HildonCheckButton&lt;/code&gt;:
&lt;source lang=&quot;python&quot;&gt;
    button = hildon.CheckButton(size)
&lt;/source&gt;
Note that, again, you must specify the size of the button.

You can retrieve or set the current state of the button with the following functions, respectively:
&lt;source lang=&quot;python&quot;&gt;
    is_active = hildon.CheckButton.get_active()
    hildon.CheckButton.set_active(is_active)
&lt;/source&gt;
The signal &quot;toggled&quot; is emitted when the state of the button changes. A handler can be attached to this signal if a further action is required.

Here is a simple example which creates a check button and a simple callback to handle the signal &quot;toggled&quot;.

'''Example 7.2. Example of a Hildon check button'''
&lt;source lang=&quot;python&quot;&gt;
def button_toggled(checkbutton):
    if (checkbutton.get_active()):
       print &quot;Button is active&quot;
    else:
       print &quot;Button is not active&quot;

def create_check_button():
    button = hildon.CheckButton(gtk.HILDON_SIZE_AUTO)
    button.set_label(&quot;Click me&quot;)
    button.connect(&quot;toggled&quot;, button_toggled)
    return button
&lt;/source&gt;
==Using Gtk Buttons and Toggles==

As was said above, apart from Hildon specific buttons, use &lt;code&gt;GtkButton&lt;/code&gt; and &lt;code&gt;GtkToggleButton&lt;/code&gt; also in the Hildon framework.

===GtkButton===

If only a label is needed, you do not need to use &lt;code&gt;HildonButton&lt;/code&gt;s and a &lt;code&gt;GtkButton&lt;/code&gt; can be used instead. You can use it as you would do in a GTK application. The only change is the creation function that you must use:
&lt;source lang=&quot;python&quot;&gt;
    button = hildon.GtkButton(size)
&lt;/source&gt;
This alternative constructor allows you to set a Hildon size for the newly create function.

===GtkToggleButton===

To create a &lt;code&gt;GtkToggleButton&lt;/code&gt; in a Hildon application you should use:
&lt;source lang=&quot;python&quot;&gt;
    togglebutton = hildon.GtkToggleButton(size)
&lt;/source&gt;
==GtkRadioButton==

To create a &lt;code&gt;GtkRadioButton&lt;/code&gt; in a Hildon application, use:
&lt;source lang=&quot;python&quot;&gt;
    radiobutton = hildon.GtkRadioButton(size, group)
&lt;/source&gt;
The most common use case of this type of buttons in a Hildon application is as filters in a application menu. For more information, see section Touch View Menu.

==Text display and handling ==

Text entry fields are used for entering one or more lines of plain text. Use a &lt;code&gt;HildonEntry&lt;/code&gt; for a single-line text input or &lt;code&gt;HildonTextView&lt;/code&gt; if you need a multi-line text input.

===Hildon Text Entry===

The &lt;code&gt;HildonEntry&lt;/code&gt; is a GTK+ widget which represents a text entry. It is derived from the &lt;code&gt;GtkEntry&lt;/code&gt; widget and provides additional commodities specific to the Hildon framework.

The main additional feature is a placeholder text to display if the entry is empty and not in focus.

Creating a new &lt;code&gt;HildonEntry&lt;/code&gt;:
&lt;source lang=&quot;python&quot;&gt;
    entry = hildon.Entry(size)
&lt;/source&gt;
Note that the creation function needs to specify a size from &lt;code&gt;HildonSizeType&lt;/code&gt;.

The placeholder is stored as a property. To set it, use the following convenience function:
&lt;source lang=&quot;python&quot;&gt;
    hildon.Entry.set_placeholder(text)
&lt;/source&gt;

Here's a very simple example showing how to create a &lt;code&gt;HildonEntry&lt;/code&gt;.

'''Example 7.3. Example of a Hildon entry'''
&lt;source lang=&quot;python&quot;&gt;
def create_entry():
    entry = hildon.Entry(gtk.HILDON_SIZE_AUTO)
    entry.set_placeholder(&quot;First name&quot;)
    return entry
&lt;/source&gt;
===Hildon Text Area===

The &lt;code&gt;HildonTextView&lt;/code&gt; is a GTK+ widget which represents a text area in Hildon applications. It is derived from the &lt;code&gt;GtkTextView&lt;/code&gt; widget and provides additional commodities specific to the Hildon framework.

Create a &lt;code&gt;HildonTextView&lt;/code&gt;:
&lt;source lang=&quot;python&quot;&gt;
    textview = hildon.TextView()
&lt;/source&gt;
Like for the &lt;code&gt;HildonEntry&lt;/code&gt; presented above, you can store a placeholder as well using the function.
&lt;source lang=&quot;python&quot;&gt;
    hildon.TextView.set_placeholder(text)
&lt;/source&gt;
The text that is being edited with a &lt;code&gt;HildonTextView&lt;/code&gt; is represented by a object &lt;code&gt;GtkTextBuffer&lt;/code&gt;. The following functions can be used to set and retrieve the buffer associated with a &lt;code&gt;HildonTextView&lt;/code&gt;.
&lt;source lang=&quot;python&quot;&gt;
    hildon.TextView.set_buffer(buffer)
    textbuffer = hildon.TextView.get_buffer()
&lt;/source&gt;
Here is an example that shows how to create a &lt;code&gt;HildonTextView&lt;/code&gt; and how to set its placeholder. Also, the buffer is retrieved and a function is set as a handler to the &quot;changed&quot; of the buffer. The handler simply gets the text from the &lt;code&gt;HildonTextView&lt;/code&gt;'s buffer and prints it.

'''Example 7.4. Example of a Hildon text view with a placeholder'''
&lt;source lang=&quot;python&quot;&gt;
def text_changed(buffer):
    start = buffer.get_start_iter()

    end = buffer.get_end_iter()
    text = buffer.get_text(start, end, false)

    print text

def create_text_view():
    text_view = hildon.TextView()
    text_view.set_placeholder(&quot;Type some text here&quot;)

    buffer = text_view.get_buffer()
    buffer.connect(&quot;changed&quot;, text_changed)

    return text_view
&lt;/source&gt;
====Warning====

Although &lt;code&gt;HildonTextView&lt;/code&gt; is derived from &lt;code&gt;GtkTextView&lt;/code&gt;, &lt;code&gt;gtk_text_view_get_buffer()&lt;/code&gt; and&lt;code&gt; gtk_text_view_set_buffer()&lt;/code&gt; must never be used to get/set the buffer in this widget, &lt;code&gt;hildon_text_view_get_buffer()&lt;/code&gt; and &lt;code&gt;hildon_text_view_set_buffer()&lt;/code&gt; must be used instead.

==Notification widgets ==

To cover the main use cases regarding notification of users, Hildon provides banners and notes. Banner widgets display a text information during a certain period of time. Notes are specialized &lt;code&gt;GtkDialog&lt;/code&gt;s that need a small amount of input from the user.

===Banners===

A &lt;code&gt;HildonBanner&lt;/code&gt; is useful to display information which does not need any user response. This widget automatically disappears after a certain time period.

To create and show a banner, use the following function:
&lt;source lang=&quot;python&quot;&gt;
    banner = hildon.hildon_banner_show_information(widget, icon_name, text)

    banner = hildon.hildon_banner_show_information_with_markup(widget, icon_name, markup)
&lt;/source&gt;
All functions above require a widget as an argument that must be a pointer to the owner widget of the banner. Usually, the owner is the window that represents the currently displayed view.

Function &lt;code&gt;show_information()&lt;/code&gt; shows a banner with the given text.

Function &lt;code&gt;show_informationf()&lt;/code&gt; shows a banner which displays the text given by the printf-like formated string applied to the parameters that the rest of the function's arguments represent.

You can also apply a Pango markup and add some attributes to the displayed text. To do that, either use &lt;code&gt;show_information_with_markup()&lt;/code&gt; to create the banner or setup the markup by calling &lt;code&gt;set_markup()&lt;/code&gt; after the initialization

====Warning====

Currently, icons are not displayed in banners, so any value that you pass as the icon_name is ignored.

The period of time after the banner automatically disappear is stored in the property &quot;timeout&quot; (in miliseconds). A convenience function to set this property is provided:

hildon.Banner.set_timeout(timeout)

====Banner example====

Here is a simple example showing how to setup and show an informational banner.

'''Example 7.5. Setting up an informational banner'''
&lt;source lang=&quot;python&quot;&gt;
    # Create a banner with a markup
    banner = hildon.Banner.show_information_with_markup(widget, None,   &quot;&lt;b&gt;Information banner&lt;/b&gt;&quot;)
    banner.set_timeout(9000)
&lt;/source&gt;
===Note===

Only one timed banner can exist for each window in your application. If you spawn a new banner before the previous one has timed out, the first one is replaced.

====Notes====

&lt;code&gt;HildonNote&lt;/code&gt;s are &lt;code&gt;GtkDialog&lt;/code&gt;s designed to request a small amount of input from users. Usually, notes show an information text and buttons to confirm and cancel, for example, according to their type.

Unlike banners, notes always need a user action, that is, notes do not disappear automatically after a period of time.

The &lt;code&gt;HildonNote&lt;/code&gt; widget provides functions to create and show different types of notes: information notes, confirmation notes and cancel notes.
&lt;source lang=&quot;python&quot;&gt;
def hildon_note_new_information(parent, description)
def hildon_note_new_information_with_icon_name(parent, description, icon_name)
def hildon_note_new_confirmation(parent, description)
def hildon_note_new_confirmation_with_icon_name(parent, description,  icon_name)
def hildon_note_new_cancel_with_progress_bar(parent, description, progressbar)
&lt;/source&gt;
Every function to create notes receives as a parameter the parent window of the newly created note. This is important in order to allow the window manager to handle the windows properly.

====Information Notes====

Information notes are used to show an information to the users. This note disappears when user taps outside the note's area. Otherwise the note remains visible.

Here is an example of how to show an information note and handle the user's answer.

'''Example 7.6. Example of a Hildon information note'''
&lt;source lang=&quot;python&quot;&gt;
def show_information_note(parent):
    note = hildon.hildon_note_new_information(parent, \
        &quot;Lorem ipsum dolor sit amet, consectetur adipiscing elit.&quot; \
        &quot;Maecenas tristique dictum est. Aenean rhoncus aliquam mi.&quot; \
        &quot;In hac habitasse platea dictumst.&quot;)

    response = gtk.Dialog.run(note)

    if response == gtk.RESPONSE_DELETE_EVENT:
        print &quot;show_information_note: gtk.RESPONSE_DELETE_EVENT&quot;
&lt;/source&gt;
====Confirmation Notes====

Confirmation notes show an information text that is usually a question and two buttons labelled &quot;Yes&quot; and &quot;No&quot;.

To create a confirmation note with the text you specify and two buttons labelled &quot;Yes&quot;/&quot;No&quot;, use &lt;code&gt;hildon.Note.add_buttons()&lt;/code&gt; as follows:

'''Example 7.7. Example of a Hildon confirmation note'''
&lt;source lang=&quot;python&quot;&gt;
def show_confirmation_note(parent):
    note = hildon.hildon_note_new_confirmation(parent, &quot;Do you want foo ?&quot;)

    response = gtk.Dialog.run(note)

    if response == gtk.RESPONSE_DELETE_EVENT:
        print &quot;show_information_note: gtk.RESPONSE_DELETE_EVENT&quot;
&lt;/source&gt;
Alternatively, you can use &lt;code&gt;hildon.Note.add_buttons()&lt;/code&gt; to create a confirmation note with custom buttons.

'''Example 7.8. Example of a Hildon copnfirmation note with custom buttons'''
&lt;source lang=&quot;python&quot;&gt;
def show_confirmation_note_with_buttons(parent):
    note = hildon.hildon_note_new_confirmation(parent, &quot;Do you want foo ?&quot;)
    note.add_buttons(&quot;ACCEPT&quot;, gtk.RESPONSE_OK, \
                     &quot;CANCEL&quot;, gtk.RESPONSE_CANCEL, \
                     &quot;DELETE&quot;, gtk.RESPONSE_DELETE_EVENT)

    response = gtk.Dialog.run(note)

    if response == gtk.RESPONSE_DELETE_EVENT:
        print &quot;show_information_note: gtk.RESPONSE_DELETE_EVENT&quot;
&lt;/source&gt;

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UI tutorial/Data selection</title>
    <id>2652</id>
    <revision>
      <id>39446</id>
      <timestamp>2010-10-07T11:34:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add C documentation link</comment>
      <text xml:space="preserve">{{main|Legacy Maemo 5 Documentation/Graphical UI Tutorial/Data selection}}

Hildon provides a set of widgets for data selection specially designed for touchscreens that allows to build simple and easy-to-use interfaces.

The key widget is a selector widget that allows users to select items from one to many predefined lists. It is similar to a combo box but allows several individual pannable columns.

In addition, Hildon also provides a specialized dialog and a specialized button to be used in combination with a selector.

==Touch selector==

&lt;code&gt;HildonTouchSelector&lt;/code&gt; is the mentioned selector widget. This widget can display several pannable columns. Each column is represented by a &lt;code&gt;GtkTreeModel&lt;/code&gt; and single or multiple selection is allowed.

===Text Columns Example===

This is the simplest example: a selector that shows a single text column.

'''Example 6.1. Example of a single-column selector'''

[[Image:example-single-text-column-selector.png|400px]]
&lt;source lang=&quot;python&quot;&gt;
# Based on C code from:
# &quot;Hildon Tutorial&quot; version 2009-04-28
# Example 5.6, &quot;Example of a single-column selector&quot;

import gtk
import hildon

def selection_changed(selector, user_data):
    current_selection = selector.get_current_text()
    print &quot;Current selection : %s&quot; % (current_selection)

def create_simple_selector():
    #Create a HildonTouchSelector with a single text column
    selector = hildon.TouchSelector(text = True)

    # Set a handler to &quot;changed&quot; signal
    selector.connect(&quot;changed&quot;, selection_changed)

    # Populate selector
    for i in range(10):
        label = &quot;Item %d&quot; % i
        # Add item to the column
        selector.append_text(label)

    # Set selection mode to allow multiple selection
    selector.set_column_selection_mode(hildon.TOUCH_SELECTOR_SELECTION_MODE_MULTIPLE)

    return selector

def app_quit(widget, data=None):
    gtk.main_quit()

def main():
    program = hildon.Program.get_instance()
    gtk.set_application_name(&quot;hildon-touch-selector example program&quot;)

    window = hildon.StackableWindow()
    program.add_window(window)

    # Create touch selector
    selector = create_simple_selector()
    window.add(selector)

    window.connect(&quot;destroy&quot;, app_quit)

    window.show_all()

    gtk.main()

if __name__ == &quot;__main__&quot;:
    main()
&lt;/source&gt;
A HildonTouchSelector with a single text column is created in this program using the following convenience constructor.
&lt;source lang=&quot;python&quot;&gt;
 hildon.TouchSelector(text = True)
&lt;/source&gt;
To add text to a selector created by calling the constructor above, use the function.
&lt;source lang=&quot;python&quot;&gt;
def append(self, text):
&lt;/source&gt;
Alternatively, you can use &lt;code&gt;prepend_text()&lt;/code&gt; or &lt;code&gt;insert_text()&lt;/code&gt; to add text to the selector in different positions.

You can set the desired selection with the function. In the example, the mode was set to allow multiple selection.
&lt;source lang=&quot;python&quot;&gt;
def set_column_selection_mode(self, mode):
&lt;/source&gt;
This example shows a very common use case of this widget. Next section shows how to build a more complex selector with several columns of different types.

Also a simple function was set as a handler for the &quot;changed&quot; signal which is emitted each time the selected items change.

The callback retrieves a text representation of the currently selected items in the selector by calling &lt;code&gt;get_current_text()&lt;/code&gt;. By default this function returns a concatenation of the items selected, separated by a comma.

To change how the text representation is generated, set your own function by  calling &lt;code&gt;set_print_func()&lt;/code&gt; and using the following signature for the function:
&lt;source lang=&quot;python&quot;&gt;
def user_function (selector):
&lt;/source&gt;
===Custom columns===

In the previous section, a selector with a text column was created. That is probably the most common use case of touch selectors. Convenience functions to deal with text columns were used. However, you can also set other type of columns.

As each column is basically a treeview, you can use the same display for different data. You can also show information in different ways as you would do with a &lt;code&gt;GtkTreeView&lt;/code&gt;. Thus, you can use the &lt;code&gt;GtkCellRenderer&lt;/code&gt;s available in GTK+ to display the data on each cell.

This section explains how to build a selector within a column displaying stock icons. Firstly, let us take a look on the function used for appending new columns to a touchable selector.
&lt;source lang=&quot;python&quot;&gt;
def append_column(self, model, cell_renderer):
&lt;/source&gt;
This functions adds a new column to the widget whose data is obtained from the passed model. A &lt;code&gt;GtkCellRenderer&lt;/code&gt; is also necessary.

This function basically adds a &lt;code&gt;GtkTreeView&lt;/code&gt; to the widget. For more information about how &lt;code&gt;GtkTreeView&lt;/code&gt;s work, see [http://library.gnome.org/devel/pygtk/stable/class-gtktreeview.html GTK+ widgets] before.
The following example shows how to set a column to display images in a selector.

'''Example 6.2. Example of a selector with a custom column'''

[[Image:example-single-column-selector.png|400px]]
&lt;source lang=&quot;python&quot;&gt;
# Based on C code from:
# &quot;Hildon Tutorial&quot; version 2009-04-28
# Example 6.2 &quot;Example of a selector with a custom column&quot;

import gtk
import hildon
import gobject

def selection_changed(selector, user_data):
    current_selection = selector.get_current_text()
    print &quot;Current selection : %s&quot; % (current_selection)

def create_customized_selector():
    # Create a touch selector 
    selector = hildon.TouchSelector()

    # Stock icons will be used for the example
    icon_list = gtk.stock_list_ids()

    # Create model to store selector's items 
    store_icons = gtk.ListStore(gobject.TYPE_STRING)

    # Populate model
    for item in icon_list:
        new_iter = store_icons.append()
        store_icons.set(new_iter, 0, item)

    # Create and set up a pixbuf renderer to use in the selector 
    renderer = gtk.CellRendererPixbuf() 
    renderer.set_fixed_size(-1, 100)


    # Add the column to the selector
    column = selector.append_column(store_icons, renderer, stock_id = 0)

    # Set the selection mode
    selector.set_column_selection_mode(hildon.TOUCH_SELECTOR_SELECTION_MODE_MULTIPLE)

    # Set the property &quot;text-column&quot; that indicates the column
    # of the model to get the string from
    column.set_property(&quot;text-column&quot;, 0)

    return selector

def app_quit(widget, data=None):
    gtk.main_quit()

def main():
    program = hildon.Program.get_instance()
    gtk.set_application_name(&quot;hildon-touch-selector example program&quot;)

    window = hildon.StackableWindow()
    program.add_window(window)

    # Create touch selector
    selector = create_customized_selector()
    window.add(selector)

    window.connect(&quot;destroy&quot;, app_quit)

    window.show_all()

    gtk.main()

if __name__ == &quot;__main__&quot;:
    main()
&lt;/source&gt;

The first step in the example is to create and populate a &lt;code&gt;GtkTreeModel&lt;/code&gt;. A &lt;code&gt;GtkListStore&lt;/code&gt; is used in the example. In most use cases of the touchable selectors a &lt;code&gt;GtkListStore&lt;/code&gt; fits well as selectors were designed to allow users to select from a list of items.

In this case, the model stores a list of GTK+ stock icons identifiers. The following call creates a list store with one column to store strings.
&lt;source lang=&quot;python&quot;&gt;
    store_icons = gtk.ListStore(gobject.TYPE_STRING)
&lt;/source&gt;

The following loop appends all stock identifiers in the newly created model. The identifiers were previously retrieved using
&lt;source lang=&quot;python&quot;&gt;
    for item in icon_list:
        new_iter = store_icons.append()
        store_icons.set(new_iter, 0, item)
&lt;/source&gt;
The next step is to set up the renderer which renders each row of the new column. We need a &lt;code&gt;GtkCellRendererPixbuf&lt;/code&gt; to display the stock icons.
&lt;source lang=&quot;python&quot;&gt;
    renderer = gtk.CellRendererPixbuf()
&lt;/source&gt;
Finally, we create and append the new column, using the model and renderer previously created.
&lt;source lang=&quot;python&quot;&gt;
    column = selector.append_column(store_icons, renderer, stock_id = 0)
&lt;/source&gt;
To summarize, setting a new custom column in a touchable selector is quite similar to setting a new column in a normal &lt;code&gt;GtkTreeView&lt;/code&gt;. Create a model to store the data and a cell renderer to properly show this data in each row, and finally add the new column.

==Picker dialog and picker buttons ==

Normally, you use &lt;code&gt;HildonTouchSelector&lt;/code&gt; together with a &lt;code&gt;HildonPickerDialog&lt;/code&gt; activated from a button. For most common cases you use &lt;code&gt;HildonPickerButton&lt;/code&gt;.

This is the usual way to present a selector to the user. The picker button opens a dialog which presents the selector and properly manages user interaction.

'''Example'''

Previous sections showed you how to create a touchable selector. In most cases the next step is to attach the selector to a &lt;code&gt;HildonPickerButton&lt;/code&gt;.

A HildonPickerButton is a special GtkButton which displays two labels, title and value, and brings up a HildonPickerDialog. The user chooses one or several items. A string representation of the chosen items is displayed in the value label of the picker button.

Below, a modified version of the previous main function is shown, in which you can check how a HildonPickerButton is created and attached to a selector. Also a callback to catch the signal &quot;value-changed&quot; emitted is added.

[[Image:example-picker-button.png|400px]]

'''Example 6.3. Example of a Hildon picker button'''
&lt;source lang=&quot;python&quot;&gt;
# Based on C code from:
# &quot;Hildon Tutorial&quot; version 2009-04-28
# Example 6.3, &quot;Example of a Hildon picker button&quot;

import gtk
import hildon
import gobject

def on_picker_value_changed(button, user_data=None):
    print &quot;Newly selected value: %s\n&quot; % button.get_value()

def app_quit(widget, data=None):
    gtk.main_quit()

def create_customized_selector():
    # Create a touch selector 
    selector = hildon.TouchSelector()

    # Stock icons will be used for the example
    icon_list = gtk.stock_list_ids()
    
    print icon_list

    # Create model to store selector's items
    store_icons = gtk.ListStore(gobject.TYPE_STRING)

    # Populate model
    for item in icon_list:
        new_iter = store_icons.append()
        store_icons.set_value(new_iter, 0, item)

    # Create and set up a text renderer to use in the selector
    renderer = gtk.CellRendererPixbuf()
    renderer.set_fixed_size(-1, 100)

    # Add the column to the selector
    column = selector.append_column(store_icons, renderer, stock_id=0)

    # Set the selection mode
    selector.set_column_selection_mode(hildon.TOUCH_SELECTOR_SELECTION_MODE_MULTIPLE)

    # Set the property &quot;text-column&quot; that indicates the column
    # of the model to get the string from
    column.set_property(&quot;text-column&quot;, 0)

    return selector

def main ():
    program = hildon.Program.get_instance()
    gtk.set_application_name(&quot;hildon-touch-selector example program&quot;)

    window = hildon.StackableWindow()
    program.add_window(window)

    # Create touch selector
    selector = create_customized_selector()

    # Create a picker button
    picker_button = hildon.PickerButton(gtk.HILDON_SIZE_AUTO,
                                        hildon.BUTTON_ARRANGEMENT_VERTICAL)

    # Set a title to the button 
    picker_button.set_title(&quot;Select an item&quot;)

    # Attach the touch selector to the picker button
    picker_button.set_selector(selector)

    # Attach callback to the &quot;value-changed&quot; signal
    picker_button.connect(&quot;value-changed&quot;, on_picker_value_changed)

    # Add button to main window
    window.add(picker_button)

    window.connect(&quot;destroy&quot;, app_quit)
    window.show_all()
    gtk.main()

if __name__ == &quot;__main__&quot;:
    main()
&lt;/source&gt;
In the above example a picker button is created. The reference to the attached selector is stored in the property &quot;touch-selector&quot; of the picker button. To retrieve the attached selector, use function &lt;code&gt;hildon.PickerButton()&lt;/code&gt;. To attach the selector, use the function &lt;code&gt;picker_button.set_selector()&lt;/code&gt;.

Note that you do not need to take care of the &lt;code&gt;HildonPickerDialog&lt;/code&gt;. The dialog is automatically brought up when users click the picker button and closed when the selection is done.

The dialog shows a button &quot;Done&quot; to allow users finish the selection when the touchable selector allows multiple selection. When the selector allows only single selection, the dialog does not show any button and closes when the user taps on one item.

The label of the button &quot;Done&quot; can be set by using &lt;code&gt;set_done_button_text()&lt;/code&gt; and retrieved by using &lt;code&gt;get_done_button_text()&lt;/code&gt;.

When users finish their selection, the value label on the button automatically changes to show a textual representation of the item or items selected.

In most cases you want to perform any action when selection is finished. To do that, add a handler to the signal &quot;value-changed&quot; of the picker button. In this example the handler attached to &quot;value-changed&quot; signal retrieves the value label of the button and prints a debug message.

==Touch selector entry ==

The &lt;code&gt;HildonTouchSelectorEntry&lt;/code&gt; is a selector widget with a text entry that allows users to select an item from a predefined list or to enter a different one in a &lt;code&gt;HildonEntry&lt;/code&gt;. Items can also be searched and selected by typing in the entry.

An additional feature is that the &lt;code&gt;HildonEntry&lt;/code&gt; is auto-completed with the list's items as the user types their name.

Example below shows how to build a selector to pick a word in a list of words.

[[Image:Touch_selector_entry.png|400px]]

'''Example 6.4. Example of a Hildon picker button with a selector entry'''
&lt;source lang=&quot;python&quot;&gt;
# Based on C code from:
# &quot;Hildon Tutorial&quot; version 2009-04-28
# Example 6.4, &quot;Hildon picker button with a selector entry&quot;

import gtk
import hildon

def app_quit(widget, data=None):
    gtk.main_quit()

def main ():
    artists = [
        &quot;AC/DC&quot;,
        &quot;Aerosmith&quot;,
        &quot;Alice in Chains&quot;,
        &quot;Black Sabbath&quot;,
        &quot;Carcass&quot;,
        &quot;Danzig&quot;,
        &quot;Deep Purple&quot;,
        &quot;Dream Theater&quot;,
        &quot;Eric Clapton&quot;,
    ]

    program = hildon.Program.get_instance()
    gtk.set_application_name(&quot;hildon-touch-selector example program&quot;)

    window = hildon.StackableWindow()
    program.add_window(window)

    # Create a picker button
    picker_button = hildon.PickerButton(gtk.HILDON_SIZE_AUTO,
                                        hildon.BUTTON_ARRANGEMENT_VERTICAL)

    # Set a title to the button 
    picker_button.set_title(&quot;Pick a band!&quot;)

    # Create a touch selector entry
    selector = hildon.TouchSelectorEntry(text=True)
       
    # Populate the selector
    for artist in artists:
        selector.append_text(artist)

    # Attach the touch selector to the picker button
    picker_button.set_selector(selector)

    # Add button to main window
    window.add(picker_button)

    window.connect(&quot;destroy&quot;, app_quit)
    window.show_all()
    gtk.main()

if __name__ == &quot;__main__&quot;:
    main()
&lt;/source&gt;
As you can see in the example above, the use of this widget is similar to using a normal touchable selector.

You can also use custom columns in a HildonTouchableEntry but at least one column must be a text column. The text column is indicated by the property &quot;text_column&quot; which you set with &lt;code&gt;set_text_column()&lt;/code&gt;.

==Pre-built selectors==

The widgets &lt;code&gt;HildonDateButton&lt;/code&gt; and &lt;code&gt;HildonTimeButton&lt;/code&gt; are buttons displaying and allowing the selection of date and time, respectively. Developers can use them directly instead of building their own date or time selectors.

Both widgets are specialized picker buttons with a convenient touchable selector attached that you can use directly in your application.

Here is a simple application using a &lt;code&gt;HildonDateButton&lt;/code&gt;.

'''Example 6.5. Example of a Hildon date button'''
&lt;source lang=&quot;python&quot;&gt;
# Based on C code from:
# &quot;Hildon Tutorial&quot; version 2009-04-28
# Example 6.5, &quot;Example of a Hildon date button&quot;

import gtk
import hildon

def app_quit(widget, data=None):
    gtk.main_quit()

def main ():
    program = hildon.Program.get_instance()
    gtk.set_application_name(&quot;hildon-touch-selector example program&quot;)

    window = hildon.StackableWindow()
    program.add_window(window)

    # Create a date picker
    date_button = hildon.DateButton(gtk.HILDON_SIZE_AUTO,
                                    hildon.BUTTON_ARRANGEMENT_VERTICAL)

    # Set a title to the button
    date_button.set_title(&quot;Select an item&quot;)

    # Add button to main window 
    window.add(date_button)

        
    window.connect(&quot;destroy&quot;, app_quit)
    window.show_all()
    gtk.main()

if __name__ == &quot;__main__&quot;:
    main()
&lt;/source&gt;

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UI tutorial/Getting started</title>
    <id>2646</id>
    <revision>
      <id>39442</id>
      <timestamp>2010-10-07T10:54:30Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add link to C documentation</comment>
      <text xml:space="preserve">{{main|Legacy Maemo 5 Documentation/Graphical UI Tutorial/Getting started}}

Before starting to develop your Hildon applications you need to get, install and properly configure the Maemo SDK. You can download and learn how to use the latest SDK in [http://maemo.org/development/sdks/ Maemo SDK Releases].

==Introduction==

To begin our introduction to Hildon, we start with the simplest program possible - &lt;code&gt;base.py&lt;/code&gt;. This program creates a window and has no way of exiting except to be killed by using the shell.

'''Example 1.1. Simple Hildon program'''
&lt;source lang=&quot;python&quot;&gt;
# Based on C code from:
# &quot;Hildon Tutorial&quot; version 2009-04-28
# Example 1.1, &quot;Simple Hildon program&quot;

import gtk
import hildon

def main():
    gtk.set_application_name(&quot;Simplest example&quot;)
    
    window = hildon.Window()
    window.show()
    
    gtk.main()
    
if __name__ == &quot;__main__&quot;:
    main()
&lt;/source&gt;
To run the program you can use:

 run-standalone.sh python2.5 base.py

All programs will import &lt;code&gt;hildon&lt;/code&gt; which declares the variables, functions, structures, etc. that will be used in your Hildon application.

The next two lines of code create and display a window.
&lt;source lang=&quot;python&quot;&gt;
    window = hildon.Window()
    window.show()
&lt;/source&gt;

The &lt;code&gt;hildon.Window&lt;/code&gt; used in this example represents a top-level window in the Hildon framework. It is derived from &lt;code&gt;gtk.Window&lt;/code&gt; and provides additional commodities specific to the Hildon framework.

In very simple applications, &lt;code&gt;hildon.Window&lt;/code&gt; could be enough. However, in most of the applications a &lt;code&gt;hildon.StackableWindow&lt;/code&gt; should be used. Next chapters will clarify this.

The &lt;code&gt;show()&lt;/code&gt; shows the widget (makes it visible) that would not be otherwise displayed.

The last line enters the GTK+ main processing loop.
&lt;source lang=&quot;python&quot;&gt;
    gtk.main();
&lt;/source&gt;

This call can be found in every GTK+ application and therefore, in every Hildon application. When control reaches this point, GTK+ will sleep waiting for X events (such as button or key presses), timeouts, or file IO notifications to occur. In our simple example, however, events are ignored.

==Hello World in Hildon ==

To begin our introduction to Hildon, we introduce the classic Hello World, Hildon style. This program will create a window with a widget (a button).

'''Example 1.2. Hildon Hello World program'''
&lt;source lang=&quot;python&quot;&gt;
# Based on C code from:
# &quot;Hildon Tutorial&quot; version 2009-04-28
# Example 1.2, &quot;Hildon Hello World program&quot;

import gtk
import hildon

# This is a callback function. The data arguments are ignored in this example.
def hello(widget, data):
    print &quot;Hello World!&quot;

def main():
    # Get an instance of HildonProgram. It is an object used to represent an
    # application running in the Hildon framework.
    program = hildon.Program.get_instance()

    # create a new hildon window
    window = hildon.Window()

    # Registers a window as belonging to the program
    program.add_window(window)

    # When the window is given the &quot;delete_event&quot; signal (this is given by the
    # window manager, usually by the &quot;close&quot; option, or on the titlebar), we
    # ask it to call the delete_event () function as defined above. The data
    # passed to the callback function is None and is ignored in the callback
    # function.
    window.connect(&quot;delete_event&quot;, gtk.main_quit, None)

    button = hildon.Button(gtk.HILDON_SIZE_AUTO, hildon.BUTTON_ARRANGEMENT_VERTICAL, &quot;Hello world!&quot;)

    # When the button is given the &quot;clicked&quot; signal, we ask it to call the
    # hello () function as defined above. The data passed to the callback
    # function is None and is ignored in the callback function.
    button.connect(&quot;clicked&quot;, hello, None)

    # This packs the button into the window (a GTK+ container).
    window.add(button)

    # The final step is to display this newly created widget and all widgets it
    # contains.
    window.show_all()

    # All GTK+ applications must have a gtk_main(). Control ends here and waits
    # for an event to occur (like a key press or mouse event).
    gtk.main()

if __name__ == &quot;__main__&quot;:
    main()
&lt;/source&gt;

As you can see in this simple example, writing Hildon applications is slightly different from writing standard GTK+ applications. We are going to review these differences through the next chapters.

===Running Hello World===

To run use:

 run-standalone.sh python2.5 hello-world.py

===Stepping through Hello World===

This section explains the Hello World example above step-by-step.

The following lines define the callback function that is called when the button is clicked. We ignore both the widget and the data in this example, but usually developers would need to handle events from them.
&lt;source lang=&quot;python&quot;&gt;
def hello(widget, data):
    print &quot;Hello World!&quot;
&lt;/source&gt;
Here starts the definition of the main function like it is usually done in programs written in Python.
&lt;source lang=&quot;python&quot;&gt;
if __name__ == &quot;__main__&quot;:
    main()
&lt;/source&gt;
Before using Hildon, it needs to be imported. This import connects to the window system display.
&lt;source lang=&quot;python&quot;&gt;
import hildon
&lt;/source&gt;
Only one &lt;code&gt;HildonProgram&lt;/code&gt; can be created per process. Use &lt;code&gt;hildon.Program.get_instance()&lt;/code&gt; to access it.
&lt;source lang=&quot;python&quot;&gt;
    program = hildon.Program.get_instance()
&lt;/source&gt;
In this simple example, a new &lt;code&gt;HildonWindow&lt;/code&gt; is created. In cases with nested views, use a &lt;code&gt;HildonStackableWindow&lt;/code&gt;. 
&lt;source lang=&quot;python&quot;&gt;
    window = hildon.Window()
&lt;/source&gt;
This call registers a window as belonging to the program. This allows applying program-wide settings to all the registered windows, such as assigning a common menu to all the registered windows by setting it to the program.
&lt;source lang=&quot;python&quot;&gt;
    program.add_window(window)
&lt;/source&gt;
The following code is an example of connecting a signal handler to an object, in this case, the window. The function &lt;code&gt;gtk.main_quit()&lt;/code&gt; is set as a handler to the “delete_event” signal. This function tells GTK+ that it must exit from &lt;code&gt;gtk.main()&lt;/code&gt; when control is returned to it, making the program terminate.
&lt;source lang=&quot;python&quot;&gt;
   window.connect(&quot;delete_event&quot;, gtk.main_quit)
&lt;/source&gt;
This call creates a new &lt;code&gt;HildonButton&lt;/code&gt;. This button allows to set two labels, one main label and another secondary one. You can also set the size of the button and the order of the labels. Notice that you can use &lt;code&gt;GtkButton&lt;/code&gt;s in Hildon applications in case you do not need the additional features that Hildon provides.
&lt;source lang=&quot;python&quot;&gt;
    button = hildon.Button(gtk.HILDON_SIZE_AUTO, hildon.BUTTON_ARRANGEMENT_VERTICAL, &quot;Hello world!&quot;)
&lt;/source&gt;
Here, a signal handler is attached to the newly created button so that when it emits the &quot;clicked&quot; signal, our &lt;code&gt;hello()&lt;/code&gt; function is called. The data is ignored, so we simply pass in &lt;code&gt;NULL&lt;/code&gt; to the &lt;code&gt;hello()&lt;/code&gt; callback function. Obviously, the &quot;clicked&quot; signal is emitted when the button is pressed.
&lt;source lang=&quot;python&quot;&gt;
    button.connect(&quot;clicked&quot;, hello, None)
&lt;/source&gt;
This packing call tells GTK+ to place the button in the window. For more information, see the Packing Widgets section of the [http://library.gnome.org/devel/pygtk/stable/] Tutorial.
&lt;source lang=&quot;python&quot;&gt;
    window.add(button)
&lt;/source&gt;
When everything is set up with all signal handlers in place and the button placed in the window, we ask GTK to &quot;show&quot; the widgets on the screen.
&lt;source lang=&quot;python&quot;&gt;
    window.show_all()
&lt;/source&gt;
And of course, we call &lt;code&gt;gtk_main()&lt;/code&gt; which waits for events to come from the X server and will call on the widgets to emit signals when these events come.
&lt;source lang=&quot;python&quot;&gt;
    gtk.main()
&lt;/source&gt;

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UI tutorial/Introduction</title>
    <id>2645</id>
    <revision>
      <id>39443</id>
      <timestamp>2010-10-07T10:56:51Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add link to C documentation</comment>
      <text xml:space="preserve">{{main|Legacy Maemo 5 Documentation/Graphical UI Tutorial/Introduction}}

This document provides the basics for writing [[Hildon]] applications in Python. It was mostly based on the official [[Documentation/Maemo 5 Developer Guide|Maemo 5 developer guide]]. For general information about the Maemo 5 development platform, consult that documentation.

Any omissions, comments or suggestions can be reported to the PyMaemo mailing list:

https://garage.maemo.org/mailman/listinfo/pymaemo-developers/

Bugs about the wiki documentation can be reported on the Bugzilla:

https://bugs.maemo.org/enter_bug.cgi?product=PyMaemo

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UI tutorial/Menus</title>
    <id>2651</id>
    <revision>
      <id>39440</id>
      <timestamp>2010-10-07T10:29:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>link to C documentation</comment>
      <text xml:space="preserve">{{main|Legacy Maemo 5 Documentation/Graphical UI Tutorial/Menus}}

Hildon applications use menus in a completely different way from the traditional application menus - Hildon applications do not have a menu bar.

Each window has an attached menu that activates when the user presses the window title area. Also, unlike typical menus in desktop applications, view menus do not follow a hierarchical structure. This menu, attached to a view, is called Touch View Menu.

Additionally Hildon provides Context menus, but they should be avoided whenever possible.

==Touch view menu==

The &lt;code&gt;HildonAppMenu&lt;/code&gt; is a widget that acts like a menu in the windows of a Hildon application.

This widget opens at the top of the screen, obscuring the topmost window, and contains several entries organized in one or two columns, depending on screen orientation. Besides entries, application menus can also contain a group of filter buttons.

The entries are &lt;code&gt;GtkButton&lt;/code&gt;s. Assign an action to the menu item for when they are activated.

Filters are toggle buttons that can be used for presentation/sorting purposes. For example, sorting alphabetically a list of contacts or changing the size of icons in a list.

To create a &lt;code&gt;HildonAppMenu&lt;/code&gt;, use the following command:
&lt;source lang=&quot;python&quot;&gt;
    hildon.AppMenu()
&lt;/source&gt;
When the application menu is created, add entries to the menu by using the following functions:
&lt;source lang=&quot;python&quot;&gt;
def append(self, item)
def prepend(self, item)
def insert(self, item, position)
&lt;/source&gt;
These functions allow you to append, prepend an entry or add it in a certain position (from 0 to N-1, where N is the number of menus).

It is important to keep the UI simple. Try to create the menu as short as possible and avoid adding unnecessary options. An application menu with more than 10 items probably will not have a good appearance.

To add filter buttons, use the following:
&lt;source lang=&quot;python&quot;&gt;
def add_filter(self, filter)
&lt;/source&gt;
Again, be careful with the number of filters that you add to the application menu. More than 4 might not be well displayed, even less, depending on the length of the labels. Filters should be grouped and act as radio buttons, that is, for any filter, at least another filter with a different/opposite action must exist. Actually, &lt;code&gt;GtkRadioButton&lt;/code&gt;s can be easily used to accomplish this by having them grouped (using &lt;code&gt;gtk_radio_button_new_from_widget()&lt;/code&gt; like the next example shows) and by not drawing their indicator - with the function &lt;code&gt;gtk_toggle_button_set_mode()&lt;/code&gt;.

When the menu is properly created and filled up with entries and filters, add the menu to a HildonWindow. To set and retrieve a window's menu, use the following functions:
&lt;source lang=&quot;python&quot;&gt;
def set_app_menu(self, menu)
def get_app_menu(self)
&lt;/source&gt;
The following example shows how to create and set up an application menu.

'''Example 3.1. Example of a Hildon application menu'''
&lt;source lang=&quot;python&quot;&gt;
# Based on C code from:
# &quot;Hildon Tutorial&quot; version 2009-04-28
# Example 3.1, &quot;Example of a Hildon application menu&quot;

import sys
import gtk
import hildon

def menu_button_clicked(button, label):
    buttontext = button.get_label()
    text = &quot;Last option selected:\n%s&quot; % buttontext
    label.set_text(text)
    print &gt;&gt;sys.stderr, &quot;Button clicked: %s&quot; % buttontext

def create_menu(label):
    menu = hildon.AppMenu()

    for i in xrange(1, 6):
        # Create menu entries
        button = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
        command_id = &quot;Menu command %d&quot; % i
        button.set_label(command_id)

        # Attach callback to clicked signal
        button.connect(&quot;clicked&quot;, menu_button_clicked, label)

        # Add entry to the view menu
        menu.append(button)

    # Create filters
    button = hildon.GtkRadioButton(gtk.HILDON_SIZE_AUTO, None)
    button.set_label(&quot;filter one&quot;)
    button.connect(&quot;clicked&quot;, menu_button_clicked, label)
    menu.add_filter(button)
    button.set_mode(False)

    button = hildon.GtkRadioButton(gtk.HILDON_SIZE_AUTO, button)
    button.set_label(&quot;filter two&quot;)
    button.connect(&quot;clicked&quot;, menu_button_clicked, label)
    menu.add_filter(button)
    button.set_mode(False)

    menu.show_all()

    return menu

def main():
    win = hildon.StackableWindow()

    # Create and pack labels
    label = gtk.Label(&quot;This is an example of the\nHildonAppMenu widget.\n\n&quot;
                      &quot;Click on the titlebar\nto pop up the menu.&quot;)
    label2 = gtk.Label(&quot;No menu option has been selected yet.&quot;)

    label.set_justify(gtk.JUSTIFY_CENTER)
    label2.set_justify(gtk.JUSTIFY_CENTER)

    vbox = gtk.VBox(False, 10)

    vbox.pack_start(label, True, True, 0)
    vbox.pack_start(label2, True, True, 0)

    # Create menu
    menu = create_menu(label2)

    # Attach menu to the window
    win.set_app_menu(menu)

    # Add label's box to window
    win.add(vbox)

    win.connect(&quot;delete_event&quot;, gtk.main_quit)

    win.show_all()

    gtk.main()

if __name__ == &quot;__main__&quot;:
    main()
&lt;/source&gt;
Each entry and filter button in this example is attached to a function that simply changes a label in the main window.

==Application menus and views==

The previous example had only one view. In applications with several views, you can attach a different menu to each view and add only the options that are relevant to the displayed view.

The function &lt;code&gt;hildon_window_set_app_menu()&lt;/code&gt;allows to set a menu to a &lt;code&gt;HildonWindow&lt;/code&gt; and its descendant &lt;code&gt;HildonStackableWindow&lt;/code&gt; widget.
&lt;source lang=&quot;python&quot;&gt;
    window.set_app_menu(menu)
&lt;/source&gt;
Note that submenus are not supported by view menus. Usually a menu item that would have suboptions in a desktop application is implemented as a new subview in a Hildon application.

A callback function for a complex menu entry can create a new &lt;code&gt;hildon.StackableWindow&lt;/code&gt; to accomplish the task that the option refers to. The new window can contain a different view menu that aggregates buttons to perform the action. The buttons can even reside in the window area.

==Context menu==

The Context menu is usually invoked through a long press over an item on the screen, like holding a finger over an image thumbnail. The menu must contain commands directly related to the chosen item.

Avoid using context menus, because they are a hidden and inconvenient way of interacting with the UI. Use &lt;code&gt;HildonAppMenu&lt;/code&gt;s instead.

To create a &lt;code&gt;GtkMenu&lt;/code&gt; in a Hildon application, use the following function instead of &lt;code&gt;gtk_menu_new()&lt;/code&gt;:
&lt;source lang=&quot;python&quot;&gt;
    gtk.Menu()
&lt;/source&gt;
This function creates a &lt;code&gt;GtkMenu&lt;/code&gt; that allows Hildon-specific styling.

When you use a &lt;code&gt;GtkMenu&lt;/code&gt; in your Hildon application, consider how many menu items you are going to use, because screen space is limited. Also consider the fact that in the interests of keeping the UI clear, submenus are not allowed.

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UI tutorial/Navigation</title>
    <id>2653</id>
    <revision>
      <id>39445</id>
      <timestamp>2010-10-07T11:33:41Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add C documentation link</comment>
      <text xml:space="preserve">{{main|Legacy Maemo 5 Documentation/Graphical UI Tutorial/Navigation}}

In previous examples only one widget was added to a window so we could simply use a &lt;code&gt;container_add()&lt;/code&gt; to “pack” it into the window. To pack more than one widget into a window it is necessary to use container widgets.

To develop Hildon user interfaces, you can use any container widget provided by GTK+. For more details, [http://www.pygtk.org/pygtk2tutorial/index.html PyGTK 2.0 Tutorial] includes a good introduction to this topic.

Apart from supporting those containers, the Hildon framework also provides a new container widget called &lt;code&gt;HildonPannableArea&lt;/code&gt;, a scrolling widget designed for touch screens. This chapter will cover all that is necessary to properly use this widget.

== Pannable Area ==

&lt;code&gt;HildonPannableArea&lt;/code&gt; is used to create an area with another widget inside which will be accessible regardless of the size using the touchscreen to scroll it. You may insert any type of widget into a pannable area, and it will be accessible by dragging on the area with the fingers.

This widget can be “panned” (scrolled) in any direction using the touchscreen with the fingers. One remarkable characteristic is that the scrolling is “kinetic”, meaning that the motion will continue from the initial motion by gradually slowing down to stop.

The use of this widget is very similar to GTK+ scrolled windows. In fact, both widgets implement a similar concept and its APIs are very similar.

To create a new pannable area you can choose either of the following functions:
&lt;source lang=&quot;python&quot;&gt;
    hildon.PannableArea()
    hildon.hildon_pannable_area_new_full(mode, enabled, vel_min, vel_max, decel, sps)
&lt;/source&gt;
The first one creates a new pannable area with the properties set to the default values. The second one allows you to set the value of the most important properties of this widget:

* mode : Used to change the behaviour of the pannable area allowing to choose whether to use the “kinetic” effect described above.
* enabled : Enable or disable finger-scroll.
* vel_min, vel_max : Allows developers to adjust how many pixels the child widget will be move per “frame”.
* decel : Value for the deceleration property.
* sps : Amount of scroll events to generate per second.

For most applications, default values of these properties will be right and thus, the simpler constructor will be enough. In the Hildon reference manual you can read more about all pannable area’s properties.

Once the area is created you can then place your object into the pannable window using the following function.
&lt;source lang=&quot;python&quot;&gt;
    add_with_viewport(self, child)
&lt;/source&gt;
That is a convenience function used to add a child to a &lt;code&gt;GtkViewport&lt;/code&gt;, and add the viewport to the pannable area.

=== Warning ===

Widgets that have native scrolling should be added directly inside a pannable area. For example, widgets such as &lt;code&gt;GtkTextView&lt;/code&gt;, &lt;code&gt;GtkTreeView&lt;/code&gt;, &lt;code&gt;GtkIconView&lt;/code&gt; and &lt;code&gt;GtkLayout&lt;/code&gt; should be added by calling &lt;code&gt;add()&lt;/code&gt;. Otherwise, panning could not work properly.

== Pannable area example ==

Functions explained above are enough for a simple example. The following example packs a table with 100 toggle buttons into a pannable area.
&lt;source lang=&quot;python&quot;&gt;
# Based on C code from:
# &quot;Hildon Tutorial&quot; version 2009-04-28
# Example 5.1, &quot;Example of a pannable area&quot;

import gtk
import hildon

def create_table():
    # create a table of 10 by 10 squares. 
    table = gtk.Table (10, 10, False)

    # set the spacing to 10 on x and 10 on y 
    table.set_row_spacings(10)
    table.set_col_spacings(10)

    table.show()

    # this simply creates a grid of toggle buttons on the table
    # to demonstrate the scrolled window. 
    for i in range(10):
        for j in range(10):
            data_buffer = &quot;button (%d,%d)\n&quot; % (i, j)
            button = gtk.ToggleButton(data_buffer)
            table.attach(button, i, i+1, j, j+1)

    return table

def app_quit(widget, data=None):
    gtk.main_quit()

def main():
    window = hildon.StackableWindow()

    window.connect(&quot;destroy&quot;, app_quit)

    pannable_area = hildon.PannableArea()

    table = create_table()

    # pack the table into the scrolled window 
    pannable_area.add_with_viewport(table)

    # Add the box into the window
    window.add(pannable_area)

    window.show_all()

    gtk.main()

if __name__ == &quot;__main__&quot;:
    main()              
&lt;/source&gt;
In the example above you can see that the following two calls are enough to use a pannable area. The rest of the code of the example is no different to that used in a GTK+ application.
&lt;source lang=&quot;python&quot;&gt;
    # Create a new pannable area.
    pannable_area = hildon.PannableArea()
    # Pack the table into the pannable area
    pannable_area.add_with_viewport(table);
&lt;/source&gt;
To see all the buttons, users can scroll with the fingers. In this example, horizontal and vertical panning are activated as that is needed to allow users to be able to interact both all the widgets. The property &lt;code&gt;“mov-mode”&lt;/code&gt; controls if the area can scroll horizontally, vertically (default value) or both, using &lt;code&gt;hildon.MOVEMENT_MODE_HORIZ&lt;/code&gt;, &lt;code&gt;hildon.MOVEMENT_MODE_VERT&lt;/code&gt; or &lt;code&gt;hildon.MOVEMENT_MODE_BOTH&lt;/code&gt;, respectively.

== Additional features ==

Pannable areas provide a set of convenience functions that make it easier to move to a certain element inside the area without users interaction.

These functions allow to scroll or jump to a position which ensures that a certain point or a certain child widget is visible for the user.

For example, the first of the functions changes the current position on the pannable area to ensure position (x,y) is visible. The movement is a quick jump. The second function performs a smooth scroll towards the selected position.
&lt;source lang=&quot;python&quot;&gt;
def jump_to(self, x, y)
def scroll_to(self, x, y)
&lt;/source&gt;
It is also possible to jump or scroll to a certain descendent of the area using the following functions, the argument should be a reference to a descendent widget.
&lt;source lang=&quot;python&quot;&gt;
def jump_to_child(self, child)
def scroll_to_child(self, child)
&lt;/source&gt;
Here is a modified version of the previous example. The pannable area is packed into an &lt;code&gt;gtk.VBox&lt;/code&gt; and a new button is also added to navigate to the last clicked button.

'''Example of a pannable area and a “jump-to” button'''
&lt;source lang=&quot;python&quot;&gt;
# Based on C code from:
# &quot;Hildon Tutorial&quot; version 2009-04-28
# Example 5.2, &quot;Example of a pannable area and a &quot;jump-to&quot; button&quot;

import gtk
import hildon

# Pointer to the last clicked button
last_clicked_button = None

# Callabck to set last clicked button
def clicked(button):
    global last_clicked_button
    last_clicked_button = button

def go_to_last_clicked(button, pannable_area):
    pannable_area.scroll_to_child(last_clicked_button)
    
def create_table(): 
    
    # create a table of 10 by 10 squares.
    table = gtk.Table (10, 10, False)
    
    # set the spacing to 10 on x and 10 on y
    table.set_row_spacings(10)
    table.set_col_spacings(10)

    table.show()
    
    # this simply creates a grid of toggle buttons on the table
    # to demonstrate the scrolled window.
    for i in range(10):
        for j in range(10):
            data_buffer = &quot;button (%d,%d)\n&quot; % (i, j)
            button = gtk.ToggleButton(data_buffer)
            button.connect(&quot;clicked&quot;, clicked)
            table.attach(button, i, i+1, j, j+1)
    
    return table

def app_quit(widget, data=None): 
    gtk.main_quit()
    
def main():
    window = hildon.StackableWindow()
    pannable_area = hildon.PannableArea()
    
    window.connect(&quot;destroy&quot;, app_quit)
        
    pannable_area.set_property(&quot;mov-mode&quot;, hildon.MOVEMENT_MODE_BOTH)
            
    button = gtk.Button(&quot;Go to last clicked button&quot;)
    button.connect(&quot;clicked&quot;, go_to_last_clicked, pannable_area)

    table = create_table()

    # pack the table into the scrolled window
    pannable_area.add_with_viewport(table)

    # Create a box and pack the widgets into it
    vbox = gtk.VBox(False, 0)

    vbox.pack_start(button, False, False, 0)
    vbox.pack_start(pannable_area, True, True, 0)

    # Add the box into the window
    window.add(vbox)

    window.show_all()
    gtk.main()

if __name__ == &quot;__main__&quot;:
    main()
&lt;/source&gt;
The example used a global variable to store a reference to the last clicked button. This reference will be used by the callback &lt;code&gt;go_to_last_clicked&lt;/code&gt; to jump to it by calling one of the navigation functions. This is the function used as a handler for the signal “clicked” of the button outside the pannable area.

You can test the different navigation functions by just changing the call in the mentioned callback.

When you use the navigation functions that allow to navigate to a certain child, the widget must be already realized. You can check it with &lt;code&gt;gtk.WidgetFlags.realized&lt;/code&gt;. If you want to call it during the initialization process you can use the navigation function inside a callback to the “realized” signal.

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UI tutorial/Toolbars</title>
    <id>2656</id>
    <revision>
      <id>39444</id>
      <timestamp>2010-10-07T10:59:54Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add link to C documentation</comment>
      <text xml:space="preserve">{{main|Legacy Maemo 5 Documentation/Graphical UI Tutorial/Toolbars}}

Toolbars usually simplify the customization of widget look and layout by grouping widgets. The Hildon framework provides two specialized toolbars: &lt;code&gt;HildonFindToolbar&lt;/code&gt; and &lt;code&gt;HildonEditToolbar&lt;/code&gt;. You can also use &lt;code&gt;GtkToolbar&lt;/code&gt;s in your Hildon application.

==Find toolbars ==

&lt;code&gt;HildonFindToolbar&lt;/code&gt; is a toolbar that contains a search entry and a dropdown list with previously searched strings. An internal &lt;code&gt;GtkListStore&lt;/code&gt; stores the items in the dropdown list. This list is a property of the widget called &quot;list&quot;.

To create a &lt;code&gt;HildonFindToolbar&lt;/code&gt;, use the following:
&lt;source lang=&quot;python&quot;&gt;
   hildon.FindToolbar(label, model=None, column=-1)
&lt;/source&gt;
In both functions the argument label is used as label which be displayed as label for the dropdown box.

The second function above allows you to set the model used for storing the dropdown box. Also indicate which column the search retrieves the string from.

If you use the first function to create the toolbar, set the properties &quot;list&quot; and &quot;column&quot; manually.

This widget provides functions to set and retrieve the index in the model of the current active item on the combo. An index of -1 indicates no active items in both functions.
&lt;source lang=&quot;python&quot;&gt;
def set_active(self, index)
def get_active(self)
&lt;/source&gt;
To get the index of the most recently added item in the toolbar, use the following function:
&lt;source lang=&quot;python&quot;&gt;
def get_last_index(self)
&lt;/source&gt;
Alternatively, you can use a &lt;code&gt;GtkTreeIter&lt;/code&gt; to reference the current active item.
&lt;source lang=&quot;python&quot;&gt;
def set_active_iter(self, iter)
def get_active_iter(self)
&lt;/source&gt;
After creating and properly setting up the toolbar, attach it to any window. &lt;code&gt;HildonWindow&lt;/code&gt; provides the following function to attach a toolbar:
&lt;source lang=&quot;python&quot;&gt;
def add_toolbar(self, toolbar)
&lt;/source&gt;
In case you need to add a common toolbar to all windows in your program, &lt;code&gt;HildonProgram&lt;/code&gt; provides the following function to set and retrtieve a common toolbar to each window registered into the curretn program:
&lt;source lang=&quot;python&quot;&gt;
def set_common_toolbar(self, toolbar)
def get_common_toolbar(self)
&lt;/source&gt;
Here a simple example that shows how to deal with a &lt;code&gt;HildonFindToolbar&lt;/code&gt;.

[[Image:example-toolbar.png|400px]]

'''Example 4.1. Using a Find Toolbar'''
&lt;source lang=&quot;python&quot;&gt;
# Based on C code from:
# &quot;Hildon Tutorial&quot; version 2009-04-28
# Example 4.1, &quot;Using a Find Toolbar&quot;

import sys

import gobject
import gtk
import hildon

def on_history_append(toolbar, user_data):
    # Get last added index
    index = toolbar.get_last_index()

    # Get the inner list
    list = toolbar.get(&quot;list&quot;)

    # Get the item
    iter = list.get_iter_from_string(&quot;%d&quot; % index)

    item, = list.get(iter, 0)

    print sys.stderr, &quot;ADDED TO THE LIST : %s&quot; % item

def main():
    program = hildon.Program.get_instance()
    window = hildon.Window()

    program.add_window(window)

    # Create and populate history list model
    store = gtk.ListStore(gobject.TYPE_STRING)

    iter = store.append()
    store.set(iter, 0, &quot;Foo&quot;)

    iter = store.append()
    store.set(iter, 0, &quot;Bar&quot;)

    iter = store.append()
    store.set(iter, 0, &quot;Baz&quot;)

    # Create find toolbar
    toolbar = hildon.FindToolbar(&quot;Find&quot;, store, 0)

    # Set item on index 0 as the current active
    toolbar.set_active(0)

    # Attach a callback to handle &quot;history-append&quot; signal
    toolbar.connect_after(&quot;history-append&quot;, on_history_append, None)

    # Attach toolbar to window
    window.add_toolbar(toolbar)

    window.show_all()

    gtk.main()

if __name__ == &quot;__main__&quot;:
    main()
&lt;/source&gt;
In the example above a callback is set to handle the signal &quot;history-append&quot;, emitted by the toolbar when a new item is added to the history. Other signals like &quot;history-append&quot; can trigger additional actions when emitted.

Apart from the property which stores the internal list, other properties are available such as &quot;max-characters&quot;, which set the maximum length of the search string. For a complete description of the signals and properties available, see the Hildon reference manual.

==Edit toolbars==

Edit toolbars are implemented by the widget &lt;code&gt;HildonEditToolbar&lt;/code&gt;. This widget is a toolbar to be used as a main control and navigation interface for the edit UI mode. The toolbar contains a label and two buttons, being one of them an arrow pointing backwards and the other a button to perform a certain action. It also displays a label which explain to the users the action that the second button performs and gives intructions on how to perform the action properly.

A typical example could be a view to delete several items in a list. The label would advise the user to select the desired items that will be deleted clicking the button.

Typically the toolbar is attached to an edit view (a &lt;code&gt;HildonStackableWindow&lt;/code&gt;) used by the program to perform a certain editing action.

The action to be performed by clicking the action button should be implemented in a callback that handles the signal &quot;button-clicked&quot;. More will be shown in the example.

To create a new &lt;code&gt;HildonEditToolbar&lt;/code&gt; use:
&lt;source lang=&quot;python&quot;&gt;
    hildon.EditToolbar(label = None, button = None)
&lt;/source&gt;
If you have used the default constructor function you can set label and button label later using:
&lt;source lang=&quot;python&quot;&gt;
def set_label(self, label)
def set_button_label(self, label)
&lt;/source&gt;
When the edit toolbar is configured, attach it to a window by using:
&lt;source lang=&quot;python&quot;&gt;
def add_toolbar(self, toolbar)
&lt;/source&gt;
The example below shows how to use an edit toolbar. It has a main window containing a list of items plus a button that calls an edit view. The user can select several items and deleted by clicking the action button of the toolbar.

The action to be done by clicking the button should be implemented in a callback. It has to be attached to the signal &quot;button-clicked&quot;. There is also another signal called &quot;arrow-clicked&quot;, emitted when users click the arrow (to go back to the previous screen). Typically the callback for this later signal destroys the current edit view.

[[Image:Edit_toolbar_list_view.png|400px]]

'''Example 4.2. Using an Edit Toolbar'''
&lt;source lang=&quot;python&quot;&gt;
# Based on C code from:
# &quot;Hildon Tutorial&quot; version 2009-04-28
# Example 4.2, &quot;Using an Edit Toolbar&quot;

import gobject
import gtk
import hildon

store = None

def get_model():
    global store

    if store is not None:
        return store

    store = gtk.ListStore(gobject.TYPE_STRING)
    for i in xrange(50):
        str = &quot;\nRow %d\n&quot; % i
        store.insert(i, [str])

    return store

def create_treeview(tvmode):
    tv = hildon.GtkTreeView(tvmode)
    renderer = gtk.CellRendererText()
    col = gtk.TreeViewColumn(&quot;Title&quot;, renderer, text=0)

    tv.append_column(col)

    # Set multiple selection mode
    selection = tv.get_selection()
    selection.set_mode(gtk.SELECTION_MULTIPLE)

    model = get_model()

    tv.set_model(model)

    return tv

def delete_button_clicked(button, treeview):
    selection = treeview.get_selection()

    (model, selected_rows) = selection.get_selected_rows()

    row_references = []
    for path in selected_rows:
        ref = gtk.TreeRowReference(model, path)
        row_references.append(ref)

    for ref in row_references:
        path = ref.get_path()
        iter = model.get_iter(path)
        model.remove(iter)

def edit_window(button):
    window = hildon.StackableWindow()
    window.set_border_width(6)

    # Create a new edit toolbar
    toolbar = hildon.EditToolbar(&quot;Choose items to delete&quot;, &quot;Delete&quot;)

    area = hildon.PannableArea()
    tree_view = create_treeview(gtk.HILDON_UI_MODE_EDIT)

    # Add toolbar to the window
    window.set_edit_toolbar(toolbar)

    area.add(tree_view)
    window.add(area)

    toolbar.connect(&quot;button-clicked&quot;, delete_button_clicked, tree_view)

    toolbar.connect_object(&quot;arrow-clicked&quot;, gtk.Window.destroy, window)

    window.show_all()

    # Set window to fullscreen
    window.fullscreen()

def main():
    window = hildon.StackableWindow()
    window.connect(&quot;destroy&quot;, gtk.main_quit)

    vbox = gtk.VBox(False, 10)
    area = hildon.PannableArea()

    tree_view = create_treeview(gtk.HILDON_UI_MODE_NORMAL)

    button = hildon.GtkButton(gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT)
    button.set_label(&quot;Delete some items&quot;)

    area.add(tree_view)
    vbox.pack_start(area, True, True, 0)
    vbox.pack_start(button, False, False, 0)

    window.add(vbox)

    button.connect(&quot;clicked&quot;, edit_window)

    window.show_all()

    gtk.main()

if __name__ == &quot;__main__&quot;:
    main()
&lt;/source&gt;

Most of the things related to &lt;code&gt;HildonEditToolbar&lt;/code&gt; are in the function edit_window. It creates an edit view (a new &lt;code&gt;HildonStackableWindow&lt;/code&gt;) containing a treeview where the user can select several items.

Note: the edit window is set to fullscreen hiding the usual window controls.

== Using GtkToolbars in Hildon applications ==

Use the widget &lt;code&gt;GtkToolbar&lt;/code&gt; as you would use it in a GTK+ application, but consider the following:

* Use &lt;code&gt;GtkToolbar&lt;/code&gt;s when only one content item is visible (for example when editing a single image or editing a single email).
* Provide no menu commands or settings for hiding or showing toolbar. The toolbar is always shown in the view where you decided to put it.

Like the others toolbars, attach a &lt;code&gt;GtkToolbar&lt;/code&gt; to a window by using:
&lt;source lang=&quot;python&quot;&gt;
def add_toolbar(self, toolbar)
&lt;/source&gt;
The following example shows how to use a &lt;code&gt;GtkToolbar&lt;/code&gt;. The use is very close to how it would be use in a normal GTK+ application.

[[Image:example-gtktoolbar.png|400px]]

'''Example 4.3. Using a GtkToolbar in a Hildon application'''
&lt;source lang=&quot;python&quot;&gt;
# Based on C code from:
# &quot;Hildon Tutorial&quot; version 2009-04-28
# Example 4.3, &quot;Using a GtkToolbar in a Hildon application&quot;

import gtk
import hildon

def app_quit(widget, data=None):
    gtk.main_quit()

def on_clicked (toolbutton, index):
    print &quot;Index of clicked item : %d&quot; % index

def main():
    program = hildon.Program.get_instance()
    gtk.set_application_name(&quot;hildon-touch-selector example program&quot;)

    window = hildon.StackableWindow()
    program.add_window(window)

    # Create a toolbar
    toolbar = gtk.Toolbar()

    # Add items to the toolbar
    toolitem = gtk.ToolButton(gtk.image_new_from_stock(gtk.STOCK_HOME,
                              gtk.ICON_SIZE_LARGE_TOOLBAR),
                              &quot;Home&quot;)
    toolitem.connect(&quot;clicked&quot;, on_clicked, 0)
    toolbar.insert(toolitem, 0)

    toolitem = gtk.ToolButton(gtk.image_new_from_stock(gtk.STOCK_GO_BACK,
                              gtk.ICON_SIZE_LARGE_TOOLBAR),
                              &quot;Back&quot;)
    toolitem.connect(&quot;clicked&quot;, on_clicked, 1)    
    toolbar.insert(toolitem, 1)


    toolitem = gtk.ToolButton(gtk.image_new_from_stock(gtk.STOCK_GO_FORWARD,
                              gtk.ICON_SIZE_LARGE_TOOLBAR),
                              &quot;Forward&quot;)
    toolitem.connect(&quot;clicked&quot;, on_clicked, 2)    
    toolbar.insert(toolitem, 2)

    # Add toolbar to the window
    window.add_toolbar(toolbar)

    window.connect(&quot;destroy&quot;, app_quit)
    window.show_all()
    gtk.main()

if __name__ == &quot;__main__&quot;:
    main()
&lt;/source&gt;

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UI tutorial/Utilities</title>
    <id>2657</id>
    <revision>
      <id>39449</id>
      <timestamp>2010-10-07T11:38:55Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add C documentation link</comment>
      <text xml:space="preserve">{{main|Legacy Maemo 5 Documentation/Graphical UI Tutorial/Utilities}}

Apart from the widgets, Hildon provides a set of helper functions and objects to make easier the development of applications. This chapter will review them and explain how they can help you.

== The Program object ==

Hildon provides an object to represent a whole application, the &lt;code&gt;hildon.Program&lt;/code&gt; object. This object provides several convenience functions that make it easier to develop Hildon applications.

The &lt;code&gt;hildon.Program&lt;/code&gt; provides the programmer with commodities such as applying a common menu or toolbar to every &lt;code&gt;hildon.Window&lt;/code&gt; registered to it.

It is necessary to register all the windows as belonging to the program in order to apply a common menu and toolbar.

To register or unregister windows you should use the following functions:
&lt;source lang=&quot;python&quot;&gt;
def add_window(self, window)
def remove_window(self, window)
&lt;/source&gt;
And the following functions will take effect over each registered window. This is a convenient way to setup common elements for each registered window in your application.
&lt;source lang=&quot;python&quot;&gt;
def set_common_menu(self, menu)
def get_common_menu(self)
def set_common_toolbar(self, toolbar)
def get_common_toolbar(self)
&lt;/source&gt;
&lt;code&gt;hildon.Program&lt;/code&gt; also allows users to apply program-wide properties. For example, the property “can-hibernate” that specify whether the program should be set to hibernate by the Task Navigator in a low memory situation or not.

The following convenience functions are provided to set and retrieve the value of the property “can-hibernate”.
&lt;source lang=&quot;python&quot;&gt;
def set_can_hibernate(self, can_hibernate)
def get_can_hibernate(self)
&lt;/source&gt;
== Sound utilities ==

Hildon provides the following function to play a sample. The function receives the sample file name as parameter and the volume level is controlled by the gconf variable &lt;code&gt;/apps/osso/sound/system_alert_volume&lt;/code&gt;.
&lt;source lang=&quot;python&quot;&gt;
def hildon_play_system_sound (sample)
&lt;/source&gt;
== Miscellaneous Helper Functions ==

=== Text Font and Colors ===

The following functions allows you to set a font or color for the text diplayed by a certain widget. The size or color is identified by a logical name which should be defined by the GTK+’s rc files defined as part of the themes definition.

Since logical names are used to identify the colors and font, they are independent from the theme, meaning that if the theme is changed the widget keeps the same logical font or color set by these functions.
&lt;source lang=&quot;python&quot;&gt;
def hildon_helper_set_logical_font(widget, logicalfontname)
def hildon_helper_set_logical_color(widget, rcflags, state, logicalcolorname)
&lt;/source&gt;
These functions achieve to keep the set logical font or color by connecting to “style-set” signal. The returned signal identifier can be used to disconnect the signal.

To set a logical color is necessary to pass in the &lt;code&gt;gtk.RcFlags&lt;/code&gt; and &lt;code&gt;gtk.StateType&lt;/code&gt; to indicate which color you want to modify. For example, to modify the foreground color of the widget during normal operations then set rcflags to &lt;code&gt;gtk.RC_BG&lt;/code&gt; and state &lt;code&gt;to gtk.STATE_NORMAL&lt;/code&gt;.

=== Finger events ===

The following function can be in callbacks that handle button events to check if the given button event is a finger event, meaning that the event was emitted as a result of a push with the finger somewhere on the touchscreen.
&lt;source lang=&quot;python&quot;&gt;
def hildon_helper_event_button_is_finger(event)
&lt;/source&gt;
This function is rarely used in applications development.

=== Thumbable scrollbars ===

The function showed bellow enables a thumb scrollbar on a given scrolled window, converting the existing normal scrollbar into a larger, finger-usable scrollbar that works without a stylus.
&lt;source lang=&quot;python&quot;&gt;
def hildon_helper_set_thumb_scrollbar(win, thumb)
&lt;/source&gt;

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UI tutorial/Windows and dialogs</title>
    <id>2649</id>
    <revision>
      <id>39441</id>
      <timestamp>2010-10-07T10:50:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add link to C tutorial</comment>
      <text xml:space="preserve">{{main|Legacy Maemo 5 Documentation/Graphical UI Tutorial/Windows and dialogs}}

When creating applications for hand-held devices, you should take into account several issues about usability and device limitations. Screen size is a particularly large restriction; a simple interface is essential.

In contrast with GTK+ applications, Hildon applications display only one window at a time. A typical Hildon application uses several windows representing different views in a tree-like hierarchy.

[[PyMaemo/UITutorial/Getting started#Hello World in Hildon|Example 1.2]] has already shown how to use a simple &lt;code&gt;HildonWindow&lt;/code&gt; can be used and how it resembles the use of a classical GTK+ window. The tree-like views represent a new concept introduced by Hildon.

To properly understand what views are, think of an application as a program that allows the user to perform one or more tasks. Each task can be broken down into several main activities.

Main activities in tasks must be done and presented in separate application views or windows, while assistance activities and steps to fulfill those tasks must be done in dialogs and menus on top of the currently displayed view.

Views work in a tree-like hierarchy. Root View acts as the &quot;root&quot; for the tree, and the subsequent Sub Views branch down the hierarchy.

[[Image:Rootview.png|400px]] [[Image:Subview.png|400px]]

The view concept is implemented by the widget HildonStackableWindow. This widget allows building a navigable hierarchy of windows with less code.

==Stackable windows ==

The &lt;code&gt;HildonStackableWindow&lt;/code&gt; is a GTK+ widget which represents a top-level window in the Hildon framework. Stackable windows can be organized in a hierarchical way.

A stack sets the hierarchical relationships between windows. A child window is on top of its parent window. That allows navigation to previous window by removing the topmost window.

Users can only see and interact with the window on the top of stack. All other windows are mapped and visible but they are obscured by the topmost one. And the users can go back to a root view from a subview by clicking in the navigation button in the top right corner of the window.

Each application has a default stack, and windows are automatically added to it when they are shown using &lt;code&gt;show()&lt;/code&gt;. Most applications do not need to create extra stacks. Create more than one stack could make your UI too complex, so think twice before doing it.

Let's see a simple example to show the use of this widget. This simple program creates a stackable window with a button to navigate towards a subview, a new window on top of the stack.

'''Example 2.1. Example of stackable windows'''
&lt;source lang=&quot;python&quot;&gt;
# Based on C code from:
# &quot;Hildon Tutorial&quot; version 2009-04-28
# Example 2.1, &quot;Example of stackable windows&quot;

import gtk
import hildon

def show_new_window(widget):
    # Create the main window
    win = hildon.StackableWindow()
    win.set_title(&quot;Subview&quot;)

    # Setting a label in the new window
    label = gtk.Label(&quot;This is a subview&quot;)

    vbox = gtk.VBox(False, 0)
    vbox.pack_start(label, True, True, 0)

    win.add(vbox)

    # This call show the window and also add the window to the stack
    win.show_all()

def main():
    program = hildon.Program.get_instance()
    
    # Create the main window
    win = hildon.StackableWindow()
    win.set_title(&quot;Main window&quot;)

    button = gtk.Button(&quot;Go to subview&quot;)
    win.add(button)

    button.connect(&quot;clicked&quot;, show_new_window)

    win.connect(&quot;destroy&quot;, gtk.main_quit, None)

    # This call show the window and also add the window to the stack
    win.show_all()
    gtk.main()

if __name__ == &quot;__main__&quot;:
    main()
&lt;/source&gt;
The function &lt;code&gt;show_new_window(widget)&lt;/code&gt; is set up as a handler for when the signal &quot;clicked&quot; is emitted. This function creates a new stackable window which is added on top of the stack by calling &lt;code&gt;show()&lt;/code&gt;.

Displaying a stackable window by calling &lt;code&gt;show()&lt;/code&gt; or &lt;code&gt;show_all()&lt;/code&gt; automatically adds it on top of the default stack.

Note that no extra code exists for navigation between views because the navigation button in the top-right corner of the window allows users to return from subviews. When the user presses the navigation button, the topmost window is destroyed and the previous window becomes the topmost one.

In some applications it could be necessary to push and/or pop windows on the stack without destroying them, or even to build and handle extra windows' stacks. Next section explains how to do that.

===Advanced stack handling===

The object which represents a stack of windows in the Hildon framework is the &lt;code&gt;HildonWindowStack&lt;/code&gt;. This object provides functions to push and/or pop windows on the stack, functions to access the topmost window or retrieve the current size of the stack are provided as well. Usual operations

To access the default stack, use the function &lt;code&gt;hildon.WindowStack.get_default()&lt;/code&gt;. To access the stack that contains a particular window, use &lt;code&gt;HildonStackableWindow.get_stack()&lt;/code&gt;.
&lt;source lang=&quot;python&quot;&gt;
hildon.WindowStack.get_default()
&lt;/source&gt;

The following functions are available to push and/or pop windows on a stack:
&lt;source lang=&quot;python&quot;&gt;
class HildonWindowStack(...):
    def push(stackablewindow, ...)
    def push_list(windows_list)
    def push_1(stackablewindow)
    def pop(number_of_windows):
        return list_of_popped_windows
    def pop_1():
        return stackablewindow
    def pop_and_push(nwindows, stackablewindow, ...):
        return list_of_popped_windows
    def pop_and_push_list(nwindows, windows_list):
        return list_of_popped_windows
&lt;/source&gt;
The example shows how to get the default stack and push a newly created window on the stack. (Note that you also can do the same in a single stack by calling &lt;code&gt;show()&lt;/code&gt;).

'''Example 2.2. Pushing a new window into a stack'''
&lt;source lang=&quot;python&quot;&gt;
import hildon

win = hildon.StackableWindow()
stack = hildon.WindowStack.get_default()
stack.push_1(win)
&lt;/source&gt;
The push functions also displays the window. &lt;code&gt;show()&lt;/code&gt; is not needed after a push operation.

A function also exists to push a list of windows in a single step. Windows are stacked in the listed order and users only see the window that was last pushed.

'''Example 2.3. Pushing a list of windows into a stack'''
&lt;source lang=&quot;python&quot;&gt;
import hildon

window = hildon.StackableWindow()
window.show_all()
stack = window.get_stack()
    
win_list = []
for i in range(10):
    parent = hildon.StackableWindow()
    parent.set_title('Window %d' % i)
    win_list.append(parent)

stack.push_list(win_list)
&lt;/source&gt;

Similar functions exist for the pop operation. The example uses &lt;code&gt;hildon.WindowStack.pop_list()&lt;/code&gt; to pop N windows from the default stack and stores them in the list of arguments. Notice that &lt;code&gt;hildon.StackableWindow.size()&lt;/code&gt; is used to check the size of the stack.

'''Example 2.4. Popping a number of windows from a stack into a list'''
&lt;source lang=&quot;python&quot;&gt;
import hildon

stack = hildon.StackableWindow.get_default()
nwindows = 10
win_list = None

if stack.size() &gt; nwindows:
    win_list = stack.pop(nwindows)
&lt;/source&gt;
&lt;code&gt;HildonWindowStack&lt;/code&gt; object also provides more advanced functions to perform both pop and push operations at once such as, for example, &lt;code&gt;hildon.WindowStack.pop_and_push()&lt;/code&gt; or &lt;code&gt;hildon.WindowStack.pop_and_push_list()&lt;/code&gt;. These functions do everything in a single transition, so the user only sees the last pushed window.

When you perform push/pop operations, consider two things:

* All stacked windows are visible and all visible windows are stacked.
* Each window can only be in one stack at a time.

Due to the first one, a push operation always shows the window and a pop operation always hides the window. Functions &lt;code&gt;show()&lt;/code&gt; and &lt;code&gt;hide()&lt;/code&gt; always push and remove the window from its current stack, respectively.

Regarding the second one, operation push has no effect on windows which are already on a stack.

====Multiple Stacks====

Most applications do not need more than the default stack. Although you can use multiple stacks in one application, note that this increases the complexity of the UI, which is not desirable.

To create a new stack just use &lt;code&gt;stack = hildon.WindowStack()&lt;/code&gt;. A new stacks behaves like a new application or task. Newly created stacks are displayed on top of the current stack. Users need to use the task selector to change between stacks when they change tasks (applications).

Once a new stack is created, use the functions explained in the previous section to pop and/or push windows on the stack.

==Dialogs==

Dialog boxes are a convenient way to prompt the user for a small amount of input, for example to display a message, ask a question, or anything else that does not require extensive effort on the user's part.

Hildon provides specialized widgets to cover the most common dialog's use cases: &lt;code&gt;HildonNote&lt;/code&gt; and &lt;code&gt;HildonBanner&lt;/code&gt;.

&lt;code&gt;HildonNote&lt;/code&gt; is useful to ask users a question and &lt;code&gt;HildonBanner&lt;/code&gt; is used to show textual information which automatically disappear after a certain period of time without user interaction. For more information on these widgets, see [[PyMaemo/UI tutorial/Controls#Notification widgets|Notification widgets]].

Besides those widgets, Hildon provides also specialized &lt;code&gt;GtkDialog&lt;/code&gt;s designed to cover different use cases: &lt;code&gt;HildonPickerDialog&lt;/code&gt; and &lt;code&gt;HildonWizardDialog&lt;/code&gt;.

The widget &lt;code&gt;HildonPickerDialog&lt;/code&gt; is used along with &lt;code&gt;HildonPickerButton&lt;/code&gt; and &lt;code&gt;HildonTouchSelector&lt;/code&gt; to give a way to make data selections. [[PyMaemo/UITutorial/Data_selection|Data Selection]] explains the use of such widgets.

To create a guided process which helps users accomplish complex tasks step by step, Hildon provides the &lt;code&gt;HildonWizardDialog&lt;/code&gt; widget.

===HildonWizardDialog===

&lt;code&gt;HildonWizardDialog&lt;/code&gt; is a widget that allows one to create a guided process. The dialog has three standard buttons, previous, next and finish, and contains several pages. Users can close the dialog by tapping the dimmed area outside the dialog's window.

A good example of a guided process which can be implemented with this widget is the setup of a new e-mail account in an e-mail client. Users have to fill several entries through several steps to accomplish the setup of the new account. The process of installing an application is another example of the uses of this widget.

This widget uses a &lt;code&gt;GtkNotebook&lt;/code&gt; that contains the actual wizard pages. The notebook widget is pointed by the property &quot;wizard-notebook&quot; of the wizard. You need to create the notebook as well as the pages that are displayed. For more information on &lt;code&gt;GtkNotebook&lt;/code&gt;, see the GTK+ Reference Manual.

To create a new wizard dialog, call:
&lt;source lang=&quot;python&quot;&gt;
    hildon.WizardDialog(parent_window, wizard_name, gtk.Notebook)
&lt;/source&gt;
The parent window is usually the current visible view. The wizard name is displayed as title in the wizard dialog.

Usually, you want to validate user input to decide whether it should move to the next step or not. To do that, set a user function by using:
&lt;source lang=&quot;python&quot;&gt;
     hildon.WizardDialog.set_forward_page_func(page_func, data, destroy_notify)
&lt;/source&gt;
The function above sets the function &quot;page_func&quot; to be used to decide whether the user can go to the next page when pressing the forward button. The function must have the following signature:
&lt;source lang=&quot;python&quot;&gt;
def some_page_func(notebook, current_page_number, user_data)
&lt;/source&gt;
Here, an example of using a HildonWizardDialog

[[Image:example_wizard_dialog.png‎ | 400px]]

'''Example 2.5. Example of a Hildon wizard dialog'''
&lt;source lang=&quot;python&quot;&gt;
# Based on C code from:
# &quot;Hildon Tutorial&quot; version 2009-04-28
# Example 2.5, &quot;Example of a Hildon wizard dialog&quot;

import sys

import gtk
import hildon

def on_page_switch(notebook, page, num, dialog):
    print &gt;&gt;sys.stderr, &quot;Page %d&quot; % num
    return True

def some_page_func(nb, current, userdata):
    # Validate data only for the third page.
    if current == 2:
        entry = nb.get_nth_page(current)
        return len(entry.get_text()) != 0
    else:
        return True

def main():
    # Create a notebook
    notebook = gtk.Notebook()

    # Create widgets to palce into the notebook's pages
    label_1 = gtk.Label(&quot;Page 1&quot;)
    label_2 = gtk.Label(&quot;Page 2&quot;)

    entry_3 = hildon.Entry(gtk.HILDON_SIZE_AUTO)
    entry_3.set_placeholder(&quot;Write something to continue&quot;)

    label_4 = gtk.Label(&quot;Page 4&quot;)

    # Append pages
    notebook.append_page(label_1, None)
    notebook.append_page(label_2, None)
    notebook.append_page(entry_3, None)
    notebook.append_page(label_4, None)

    # Create wizard dialog
    dialog = hildon.WizardDialog(None, &quot;Wizard&quot;, notebook)

    # Set a handler for &quot;switch-page&quot; signal
    notebook.connect(&quot;switch-page&quot;, on_page_switch, dialog)

    # Set a function to decide if user can go to next page
    dialog.set_forward_page_func(some_page_func)

    dialog.show_all()
    dialog.run()

if __name__ == &quot;__main__&quot;:
    main()
&lt;/source&gt;
Apart from how to create and use a wizard dialog, this example also sets up a handler to catch the signal &quot;switch-page&quot; from the notepad. This signal is emitted by the widget &lt;code&gt;GtkNotebook&lt;/code&gt; when the user or a function changes the current page.

===Using GtkDialogs in Hildon applications===

In general, you can use &lt;code&gt;GtkDialog&lt;/code&gt; much like you use it in a GTK+ application, but consider the following:

* In Hildon applications, buttons &quot;cancel&quot;, &quot;reject&quot; and &quot;close&quot; are allowed. However, buttons which emit the signal &quot;response&quot; with &lt;code&gt;gtk.RESPONSE_CANCEL&lt;/code&gt;, &lt;code&gt;gtk.RESPONSE_REJECT&lt;/code&gt; or &lt;code&gt;gtk.RESPONSE_CLOSE&lt;/code&gt; as the response's identifier are not displayed. Therefore, if you need to deal with the action of closing a &lt;code&gt;GtkDialog&lt;/code&gt; in a Hildon application, be aware of this detail and handle the &lt;code&gt;gtk.RESPONSE_DELETE_EVENT&lt;/code&gt; response identifier properly.
* Another detail to take care of is that &lt;code&gt;GtkDialog&lt;/code&gt;s can work in two modalities in a Hildon application: task-model or system-model. A dialog is task-modal if it is transient for the main window. That is the case when the function &lt;code&gt;gtk.Window.set_transient_for()&lt;/code&gt; is used or the dialog was created by calling &lt;code&gt;gtk.Dialog()&lt;/code&gt; specifying a parent window. Otherwise, the dialog is system-modal.

If the dialog is task-modal, the Platform UI (Task button and Status area) are visible on top and can be used normally to switch between tasks.

If the dialog is system-modal, both the task button and status area are blurred and dimmed. They are not active while the dialog is open and task switching is not possible until it closes.

The following is an example for creating a task-modal dialog.

'''Example 2.6. Application modal dialog example'''
&lt;source lang=&quot;python&quot;&gt;
# Based on C code from:
# &quot;Hildon Tutorial&quot; version 2009-04-28
# Example 2.6, &quot;Application modal dialog example&quot;

import gtk
import hildon

def main():
    win = hildon.StackableWindow()

    win.show()
    
    dialog = gtk.Dialog()

    dialog.set_transient_for(win)

    dialog.set_title(&quot;Hello!&quot;)

    dialog.show_all()

    dialog.run()

if __name__ == &quot;__main__&quot;:
    main()
&lt;/source&gt;

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/UsingPythonInMaemo</title>
    <id>3462</id>
    <revision>
      <id>27731</id>
      <timestamp>2010-01-29T16:11:01Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[PyMaemo/UsingPythonInMaemo]] moved to [[PyMaemo/Using Python in Maemo]]: Naming convention - no CamelCase (Python and Maemo are capitalized as proper nouns)</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo/Using Python in Maemo]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Using Location API</title>
    <id>3114</id>
    <revision>
      <id>43006</id>
      <timestamp>2011-04-11T13:34:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>spam: Undo revision 43000 by [[Special:Contributions/Shawnlee100|Shawnlee100]] ([[User talk:Shawnlee100|Talk]])</comment>
      <text xml:space="preserve">Location framework provides a library called liblocation which is used for developing location-aware applications in [[Open development/Maemo roadmap/Fremantle|Fremantle]]. Liblocation supports internal GPS, network based methods and external bluetooth GPS.

== Using liblocation from Python ==

To start implementing applications using liblocation API on Python, you need to install '''python-location''':

 [sbox-FREMANTLE_X86: ~] &gt; apt-get install python-location

Then, on your Python scripts, import the ''location'' module:
&lt;source lang=&quot;python&quot;&gt;
import location
&lt;/source&gt;
Liblocation has two public &lt;code&gt;GObject&lt;/code&gt;s. &lt;code&gt;GPSDControl&lt;/code&gt;. is used for starting and stopping of location services, setting location method and interval, and listening for errors. &lt;code&gt;GPSDevice&lt;/code&gt; has information about device status and contains the actual fix when one exists. The two &lt;code&gt;GObjects&lt;/code&gt; are initiated as follows.
&lt;source lang=&quot;python&quot;&gt;
control = location.GPSDControl.get_default()
device = location.GPSDevice()
&lt;/source&gt;

== Location methods ==

Liblocation supports the following location methods which are defined in the &lt;code&gt;location&lt;/code&gt; module:

* &lt;code&gt;location.METHOD_USER_SELECTED&lt;/code&gt; - Liblocation will choose the best possible location method based on location settings in control panel. You can think of it as asking all the methods CWP+ACWP+GNSS+AGNSS. Choose this method if you don't have any special needs.
* &lt;code&gt;location.METHOD_CWP&lt;/code&gt; (Complementary Wireless Positioning) - This method provides either coordinates for center of current country with horizontal accuracy equalling radius of the country (MCC fix), or coordinates based on currently used GSM base station. Latter is used if such information exists in device's cache, which is updated when ACWP method is used. SIM card is needed for CWP method.
* &lt;code&gt;location.METHOD_ACWP&lt;/code&gt; (Assisted Complementary Wireless Positioning) - A method where device is located based on cellular base station to which device is registered to. SIM card and a network connection is needed for ACWP method. If no network connection is available, this equals to CWP. Application might receive MCC fixes before base station information from external location server is fetched and as a fallback if e.g. network is temporary unavailable.
* &lt;code&gt;location.METHOD_GNSS&lt;/code&gt; (Global Navigation Satellite System) - A method for using GPS receiver. Typically time for the first fix is significantly longer than with AGNSS. Neither SIM card nor network connection is needed for GNSS method, and GNSS can even be used in offline mode.
* &lt;code&gt;location.METHOD_AGNSS&lt;/code&gt; (Assisted Global Navigation Satellite System) - A method for using GPS receiver with assistance data from external location server. A SIM card and a network connection is needed for AGNSS method. If no network connection or SIM card is available, this equals to GNSS.

Location resources are shared between applications, and applications can request different location methods. Fixes for all requested methods are sent for all applications listening to &lt;code&gt;GPSDevice&lt;/code&gt;'s &quot;&lt;code&gt;changed&lt;/code&gt;&quot; signal, therefore application should judge whether fix it is receiving, is one that it needs. See [[#GPSDevice and GPSDeviceFix|GPSDeviceFix]] section for discussion.

If device is set for bluetooth GPS from control panel, it can used for locationing via USER_SELECTED, AGNSS and GNSS methods. In this case AGNSS and GNSS do not differ, because assistance server cannot be utilized.

Device caches cell information for ACWP and satellite information for AGNSS. Hence if a non-assisted location method is used immediately after it's assisted counterpart, it will probably work as the assisted one.

Location method is set as &lt;code&gt;GPSDControl&lt;/code&gt;'s &quot;preferred-method&quot; property. Several methods can be given by bitwise or'ing the method identifiers:
&lt;source lang=&quot;python&quot;&gt;
control.set_properties(preferred_method=location.METHOD_GNSS|location.METHOD_AGNSS)
&lt;/source&gt;
ACWP and AGNSS methods require network positioning and GNSS and AGNSS require GPS to be enabled in location settings. If requirements for asked methods are not enabled when starting location, user is prompted a dialog to enable them. After that all the possible preferred-methods are started. If there is any, an error to application is signalled.

USER_SELECTED method makes expection to dialog rule. Albeit it uses all of the methods: CWP+ACWP+GNSS+AGNSS, dialog is shown only if both networking and gps are disabled.

If user changes location settings during location session, then used location method is modified to best available accordingly, and error signalled if none is available.

Here is table that summarizes differences between the methods. Accuracy refers to horizontal accuracy of the fix.

{| class=&quot;wikitable&quot;
|+ Available location methods
|-
! Method !! Typical accuracy !! Requires SIM !! Requires network !! Drains battery
|-
| CWP || 1 - 1000 km || Yes || No || No
|-
| ACWP || 1 - 10 km || Yes || Yes || No
|-
| GNSS || 5 - 100 m || No	|| No || Yes
|-
| AGNSS || 5 - 100 m || Yes || Yes || Yes
|}

== Location intervals ==

Liblocation supports a default interval (equals to one second) and intervals of 1, 2, 5, 10, 20, 30, 60 and 120 seconds between fixes. Due to performance and power consumption reasons, all the intervals provide fixes only if position of the device has changed. Therefore the interval reflects more how often device checks for coordinate changes, than the actual interval between fixes. Nature of GPS fixes being constantly changing guarantees that GPS fixes are provided with requested interval. However, if there are several applications using different intervals, then the used interval is the minimum of intervals requested by all applications.

Location interval is set as &lt;code&gt;GPSDControl&lt;/code&gt;'s &quot;preferred-interval&quot; property:
&lt;source lang=&quot;python&quot;&gt;
 control.set_properties(preferred_interval=location.INTERVAL_60S)
&lt;/source&gt;
== GPSDevice and GPSDeviceFix ==

&lt;code&gt;GPSDevice&lt;/code&gt; object has the following attributes ('''FIXME:''' currently &quot;&lt;code&gt;satellites&lt;/code&gt;&quot; and &quot;&lt;code&gt;cell_info&lt;/code&gt;&quot; attributes are not supported in Python):
*&lt;code&gt;online&lt;/code&gt;: Whether there is a connection to the hardware
*&lt;code&gt;status&lt;/code&gt;: Status of the device
*&lt;code&gt;fix&lt;/code&gt;: Tuple containing actual fix data (latitude, longitude, etc)
*&lt;code&gt;satellites_in_view&lt;/code&gt;: Number of satellites in view
*&lt;code&gt;satellites_in_use&lt;/code&gt;: Number of satellites in use
*&lt;code&gt;satellites&lt;/code&gt;: Tuple containing information about satellites
*&lt;code&gt;cell_info&lt;/code&gt;: Tuple containing information about cell the device is connected to

The most useful attribute is naturally the &quot;&lt;code&gt;fix&lt;/code&gt;&quot; tuple which contains position and movement of the device and accuracies for them. The available information is listed below (in the order they appear on the tuple). In parenthesis there is a identifier which can be bitwisely anded with the &quot;fields&quot; value, to see whether corresponding tuple value is set.

*&lt;code&gt;mode&lt;/code&gt;: The mode of the fix
*&lt;code&gt;fields&lt;/code&gt;: A bitfield representing which items of this tuple contain valid data
*&lt;code&gt;time&lt;/code&gt;: The timestamp of the update (&lt;code&gt;location.GPS_DEVICE_TIME_SET&lt;/code&gt;)
*&lt;code&gt;ept&lt;/code&gt;: Time accuracy
*&lt;code&gt;latitude&lt;/code&gt;: Fix latitude (&lt;code&gt;location.GPS_DEVICE_LATLONG_SET&lt;/code&gt;)
*&lt;code&gt;longitude&lt;/code&gt;: Fix longitude (&lt;code&gt;location.GPS_DEVICE_LATLONG_SET&lt;/code&gt;)
*&lt;code&gt;eph&lt;/code&gt;: Horizontal position accuracy
*&lt;code&gt;altitude&lt;/code&gt;: Fix altitude in meters (&lt;code&gt;location.GPS_DEVICE_ALTITUDE_SET&lt;/code&gt;)
*double &lt;code&gt;epv&lt;/code&gt;: Vertical position accuracy
*&lt;code&gt;track&lt;/code&gt;: Direction of motion in degrees (&lt;code&gt;location.GPS_DEVICE_TRACK_SET&lt;/code&gt;)
*&lt;code&gt;epd&lt;/code&gt;: Track accuracy
*&lt;code&gt;speed&lt;/code&gt;: Current speed in km/h (&lt;code&gt;location.GPS_DEVICE_SPEED_SET&lt;/code&gt;)
*&lt;code&gt;eps&lt;/code&gt;: Speed accuracy
*&lt;code&gt;climb&lt;/code&gt;: Current rate of climb in m/s (&lt;code&gt;location.GPS_DEVICE_CLIMB_SET&lt;/code&gt;)
*&lt;code&gt;epc&lt;/code&gt;: Climb accuracy

An application receiving a fix cannot know if the fix is a result from location method it requested. Therefore application should study whether fix is accurate enough to satisfy application's needs. This can be done by inspecting &quot;&lt;code&gt;eph&lt;/code&gt;&quot; field, which is fix's horizontal accuracy in centimeters. Typical values for horizontal accuracies can be seen in the location methods table. If accuracy is not known, it has a value of NaN.

== Liblocation signals and callbacks ==

The most useful signal in liblocation is &lt;code&gt;GPSDevice&lt;/code&gt;'s &quot;changed&quot; signal, which is emitted everytime a new fix is received. &lt;code&gt;GPSDControl&lt;/code&gt; has an &quot;error-verbose&quot; signal which is emitted in case of an error. There is also a legacy signal &quot;error&quot;, which doesn't give a reason for error.

You can connect to these signals in the usual way:
&lt;source lang=&quot;python&quot;&gt;
control.connect(&quot;error-verbose&quot;, on_error, user_data)
device.connect(&quot;changed&quot;, on_changed, user_data)
&lt;/source&gt;
Below are examples for these signals' callbacks.
&lt;source lang=&quot;python&quot;&gt;
def on_error(control, error, user_data):
    if error == location.ERROR_USER_REJECTED_DIALOG:
        print &quot;User didn't enable requested methods&quot;
    elif error == location.ERROR_USER_REJECTED_SETTINGS:
        print &quot;User changed settings, which disabled location&quot;
    elif error == location.ERROR_BT_GPS_NOT_AVAILABLE:
        print &quot;Problems with BT GPS&quot;
    elif error == location.ERROR_METHOD_NOT_ALLOWED_IN_OFFLINE_MODE:
        print &quot;Requested method is not allowed in offline mode&quot;
    elif error == location.ERROR_SYSTEM:
        print &quot;System error&quot;

def on_changed(device, user_data):
    if not device:
        return
    if device.fix:
        if device.fix[1] &amp; location.GPS_DEVICE_LATLONG_SET:
            print &quot;lat = %f, long = %f&quot; % device.fix[4:6]
        if device.fix[1] &amp; location.GPS_DEVICE_ALTITUDE_SET:
            print &quot;alt = %f&quot; % device.fix[7]
        print &quot;horizontal accuracy: %f meters&quot; % (device.fix[6] / 100)
    # FIXME: not supported yet in Python
    #if device.cell_info:
    #    if device.cell_info[0] &amp; location.GSM_CELL_INFO_SET:
    #        print &quot;Mobile Country Code GSM: %d&quot; % device.cell_info[1][0]
    #    if device.cell_info[0] &amp; location.WCDMA_CELL_INFO_SET:
    #        print &quot;Mobile Country Code WCDMA: %d&quot; % device.cell_info[2][0]

    print &quot;Satellites in view: %d, in use: %d&quot; % (device.satellites_in_view, device.satellites_in_use)
&lt;/source&gt;
Liblocation sends a &quot;&lt;code&gt;changed&lt;/code&gt;&quot; signal also after locationing is started or stopped, in which case a last known fix is sent if such exists. Application can differentiate these fixes from real ones by inspecting &lt;code&gt;device.status&lt;/code&gt; attribute which equals &lt;code&gt;location.GPS_DEVICE_STATUS_NO_FIX&lt;/code&gt; if the fix is not real.

== Starting and stopping locationing ==

Finally after everything above has been done, locationing can be started.
&lt;source lang=&quot;python&quot;&gt;
control.start()
&lt;/source&gt;
If the chosen location method violates control panel location settings, then a dialog is shown to user. Dialogs ask user to enable necessary services. On user's refusal an error to application is sent. If no error is seen, fixes should be coming after a while. When locationing is no longer needed, it can be stopped.
&lt;source lang=&quot;python&quot;&gt;
control.stop()
&lt;/source&gt;
== Complete example ==

Here is a complete standalone example using liblocation. It starts location services after program is started, then when first fix arrives, prints it, stops services, and shutdowns.
&lt;source lang=&quot;python&quot;&gt;
import location
import gobject

def on_error(control, error, data):
    print &quot;location error: %d... quitting&quot; % error
    data.quit()

def on_changed(device, data):
    if not device:
        return
    if device.fix:
        if device.fix[1] &amp; location.GPS_DEVICE_LATLONG_SET:
            print &quot;lat = %f, long = %f&quot; % device.fix[4:6]
            # data.stop() commented out to allow continuous loop for a reliable fix - press ctrl c to break the loop, or program your own way of exiting)

def on_stop(control, data):
    print &quot;quitting&quot;
    data.quit()

def start_location(data):
    data.start()
    return False

loop = gobject.MainLoop()
control = location.GPSDControl.get_default()
device = location.GPSDevice()
control.set_properties(preferred_method=location.METHOD_USER_SELECTED,
                       preferred_interval=location.INTERVAL_DEFAULT)

control.connect(&quot;error-verbose&quot;, on_error, loop)
device.connect(&quot;changed&quot;, on_changed, control)
control.connect(&quot;gpsd-stopped&quot;, on_stop, loop)

gobject.idle_add(start_location, control)

loop.run()
&lt;/source&gt;
You can run this example with the following command:

 run-standalone.sh python2.5 test.py

'''Important:''' do not name your script &quot;location.py&quot;. Otherwise, Python will try to import it as a module, instead of the correct &quot;location&quot; module, and you will get errors like:

 Traceback (most recent call last):
 File &quot;location.py&quot;, line 1, in &lt;module&gt;
 import location
 File &quot;/home/user/location.py&quot;, line 25, in &lt;module&gt;
 control = location.GPSDControl.get_default()
 AttributeError: 'module' object has no attribute 'GPSDControl'

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyMaemo/Using Python in Maemo</title>
    <id>2471</id>
    <revision>
      <id>39678</id>
      <timestamp>2010-10-25T12:31:16Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">Last Updated: Wed, 02 May 2007

Copyright © 2006-2007 INdT - Instituto Nokia de Tecnologia&lt;br/&gt;
Copyright © 2007 Nokia Corporation&lt;br/&gt;
Author: Daniel d'Andrada T. de Carvalho &lt;daniel.[last name] at indt.org.br&gt;

{{ambox|notice|
text=This document is outdated and will not work for [[Open development/Maemo roadmap/Fremantle|Maemo 5 (fremantle)]]}}

==Introduction==

This document explains how to develop applications for the Maemo platform using the Python programming language. To use the document, you must have a basic knowledge of [http://www.python.org/ Python] and [http://www.pygtk.org/ PyGTK] (advanced knowledge is not required, but you must be able to write simple GTK programs in Python).

==Prerequisites==

Before you start to write your own Python applications for Maemo, perform the following tasks:

* Learn the basics of the Maemo platform&lt;br/&gt;For more information, see the ''Overview of the Maemo Platform'' section in ''Maemo 3.0 Tutorial''&lt;ref name=&quot;maemo3tutorial&quot;&gt;[http://www.maemo.org/platform/docs/howtos/Maemo_tutorial_bora.html Maemo 3.0 Tutorial]&lt;/ref&gt;
* Set up the Maemo development environment&lt;br/&gt;The Maemo development environment is where you run your Maemo applications. For more information, see ''Setting Up and Testing Development Environment'' section in ''Maemo 3.0 Tutorial''&lt;ref name=&quot;maemo3tutorial&quot; /&gt;. The tutorial assumes that you are developing from Scratchbox instead of directly using a Maemo device (such as a Nokia 770).

==Python limitations in Maemo==

As handheld devices have limited resources (when compared to desktop or notebook computers), several modules have been removed from Maemo's Python in order to reduce its footprint.

The following modules have been removed:

test, ctypes/test, sqlite3/test, email/test, _ctypes_test.so, _testcapi.so, linuxaudiodev.so, ossaudiodev.so, audioop.so, lib-tk, bsddb, idlelib.

The following modules have been removed but are supplied by other modules:

pyexpat.so, xmldom, xmlsax, xmlparsers.

The following modules are deprecated:

dbhash, curses, posixfile, getpass, macpath, macurl2path, os2emxpath, nturl2path, pty, pyclbr, rexec, rlcompleter, statvfs, stringold, telnetlib, this, toaiff, tty, user, xdrlib, aifc, audiodev, sunaudio and sunau.

The following modules are only available in the SDK:

distutils, pdb, pydoc, BaseHTTPServer, SimpleHTTPServer, SimpleXMLRPCServer, CGIHTTPServer, cgi, cgitb, DocXMLRPCServeri, robotparser, smtpd, compile, encodings.cp*, encodings.mac*, doctest, unittest, config, symtable, tabnanny, timeit, trace and hotshot.

The &lt;code&gt;import&lt;/code&gt; command will import &lt;code&gt;.pyo&lt;/code&gt; files even if the interpreted is called without the &lt;code&gt;-O&lt;/code&gt; or &lt;code&gt;-OO&lt;/code&gt; option. This is a difference from the standard Python behavior.

==Installing Python==

Unfortunately, Maemo SDK and Maemo devices (Nokia 770 and N800, so far) doesn't come Python-ready out of the box. But the good news is that it's pretty easy to install Python on them.

===On Maemo SDK (scratchbox)===

Follow the instructions on http://pymaemo.garage.maemo.org/installation.html.

===On Maemo devices===

The easiest way is to visit http://pymaemo.garage.maemo.org/installation.html using the Maemo device itself and clicking on the installation buttons there. If for some reason this is not possible or you like to install it by yourself there's also directions for manual installation on http://pymaemo.garage.maemo.org/manual_installation.html.

==Example of a &quot;Hello World!&quot; application==

To get started with Python, use the following sections to write a simple GTK+ application which creates and shows a window with a &quot;Hello World!&quot; text.

===Plain PyGTK===

Create a &lt;var&gt;hello_world_1.py&lt;/var&gt; file with the following content.

&lt;source lang=&quot;python&quot;&gt;
#!/usr/bin/env python2.5
import gtk

window = gtk.Window(gtk.WINDOW_TOPLEVEL)

label = gtk.Label(&quot;Hello World!&quot;)
window.add(label)

label.show()
window.show()

gtk.main()
&lt;/source&gt;

In the Scratchbox console, first make the file executable by running the &lt;code&gt;chmod +x ./hello_world_1.py&lt;/code&gt; command, and then run the example by typing &lt;code&gt;run-standalone.sh ./hello_world_1.py&lt;/code&gt;. Figure 1 illustrates the results of the run command:

[[Image:hello_world_1_small.jpg|frame|center|alt=Screenshot of &quot;Hello World!&quot; application|Figure 1: Plain PyGTK &quot;Hello World!&quot; application]]

You can see that the plain PyGTK code already &quot;works&quot; on Maemo. However, do not use plain PyGTK code or rely on the assumption that any PyGTK code &quot;works&quot; on Maemo. In this tiny example program, the obvious sign of misfit in the Maemo environment is that its borders (skin graphic area) are broken (look at the top corners).

The reason for using the &lt;code&gt;run-standalone.sh&lt;/code&gt; command to execute the application is that it adds the Hildon theming. Figure 2 illustrates how the application looks if run without the &lt;code&gt;run-standalone.sh&lt;/code&gt; command:

[[Image:hello_world_1_no_theme_small.jpg|frame|center|alt=Screenshot of unthemed application|Figure 2: Application without the Hildon theme]]

{{ambox|
text=The &lt;code&gt;run-standalone.sh&lt;/code&gt; command is only available if you run applications from the Scratchbox console.}}

===HildonWindow Class===

The &lt;code&gt;HildonWindow&lt;/code&gt; class overloads the &lt;code&gt;GtkWindow&lt;/code&gt; class, providing the Hildon theme (look and feel) for top level windows. In order to use the facilities provided by the Hildon framework (and to integrate cleanly in it), the application must use a &lt;code&gt;HildonWindow&lt;/code&gt; instead of a &lt;code&gt;GtkWindow&lt;/code&gt;. With a &lt;code&gt;HildonWindow&lt;/code&gt; class the application has, for example, access to Hildon menus and toolbars.

The required code change is simple: replace the &lt;code&gt;GtkWindow&lt;/code&gt; with &lt;code&gt;HildonWindow&lt;/code&gt; and import the &lt;code&gt;hildon&lt;/code&gt; module. The following example illustrates the required changes (also downloadable [http://pymaemo.garage.maemo.org/documentation/pymaemo_tutorial/examples/hello_world_1.py here]):

&lt;source lang=&quot;python&quot;&gt;
#!/usr/bin/env python2.5

import gtk
import hildon

window = hildon.Window()
window.connect(&quot;destroy&quot;, gtk.main_quit)
label = gtk.Label(&quot;Hello World!&quot;)
window.add(label)

label.show()
window.show()

gtk.main()
&lt;/source&gt;

[[Image:hello_world_3_small.jpg|frame|center|alt=Screenshot of Hildon-compliant &quot;Hello World!&quot; application|Figure 3: Hildon-compliant &quot;Hello World!&quot; application]]

Note how the borders are now drawn in the right way, since the program is using the &lt;code&gt;HildonWindow&lt;/code&gt; class.

===HildonProgram Class===

The &lt;code&gt;HildonProgram&lt;/code&gt; class is a programmer commodity used to apply program-wide settings to all Hildon windows used by the application (for example, this allows you to have a common menu and toolbar on all windows). In addition, &lt;code&gt;HildonProgram&lt;/code&gt; also manages other program-wide issues, such as hibernating.

The example &quot;Hello World&quot; application has no use for a &lt;code&gt;HildonProgram&lt;/code&gt; object, but it is added to the following example (also downloadable [http://pymaemo.garage.maemo.org/documentation/pymaemo_tutorial/examples/hello_world_2.py here]), simply to illustrate how a regular Hildon application is structured.

&lt;source lang=&quot;python&quot;&gt;
#!/usr/bin/env python2.5
import gtk
import hildon

class HelloWorldApp(hildon.Program):
  def __init__(self):
    hildon.Program.__init__(self)

    self.window = hildon.Window()
    self.window.connect(&quot;destroy&quot;, gtk.main_quit)
    self.add_window(self.window)

    label = gtk.Label(&quot;Hello World!&quot;)
    self.window.add(label)
    label.show()

  def run(self):
    self.window.show_all()
    gtk.main()

app = HelloWorldApp()
app.run()
&lt;/source&gt;

When running the application, the result is the same as shown in Figure 3.

==Porting existing applications==

This section describes the issues involved in porting an existing PyGTK application to Maemo. The porting of a real application is illustrated with step-by-step instructions.

The example application is gPodder (version 0.8). It was chosen because it is reasonably simple, has a small, uncluttered interface and contains most of the important issues involved in porting PyGTK applications to Maemo.

A great part of the porting effort is spent making an application use and obey the Hildon UI style (such as making use of hardware keys and Hildon-specific widgets). As a result, make sure that you are familiar with the Hildon UI style before you start porting. For more information, see Hildon User Interface Style Guide&lt;ref name=&quot;hildon_ui_guide&quot;&gt;[http://www.maemo.org/community/UI_Style_Guide_Summary_1.0.pdf Hildon User Interface Style Guide (version 1.0)]&lt;/ref&gt;.

===Installing and running gPodder in Maemo===

To install and run gPodder:

# Download the source package [gpodder-0.8.0.tar.gz here] or directly from the project's page, &lt;code&gt;http://gpodder.berlios.de/&lt;/code&gt;.
# Extract the &lt;code&gt;gpodder-0.8.0.tar.gz&lt;/code&gt; file. The &lt;code&gt;gpodder-0.8.0&lt;/code&gt; directory will be created.
# In the &lt;code&gt;gpodder-0.8.0&lt;/code&gt; directory, use the Scratchbox console to run the following commands: &lt;code&gt;python2.5 setup.py install&lt;/code&gt; and &lt;code&gt;run-standalone.sh gpodder&lt;/code&gt;

The Scratchbox console can display some GLib warnings, but you can ignore them. Figure 4 illustrates the screen you see after running the commands:

[[Image:gpodder_1_small.jpg|frame|center|alt=Screenshot of gPodder running on Maemo without any modifications|Figure 4: gPodder running on Maemo without any modifications]]

This means that gPodder 0.8 works on Maemo without any modifications. However, it is not a Maemo application yet, and the steps in the following sections are required to make it fit cleanly in the Maemo environment.

===gPodder code overview===

This section gives a brief overview of gPodder's source code. The purpose of the overview is to make it easier to understand the code changes implemented in the following sections.

Most of the code changes are made in the &lt;code&gt;gpodder-0.8.0/src/gpodder/gpodder.py&lt;/code&gt; file. It contains the following classes:

&lt;source lang=&quot;python&quot;&gt;
class Gpodder(SimpleGladeApp)
class Gpodderchannel(SimpleGladeApp)
class Gpodderproperties(SimpleGladeApp)
class Gpodderepisode(SimpleGladeApp)
class Gpoddersync(SimpleGladeApp)
class Gpodderopmllister(SimpleGladeApp)
&lt;/source&gt;

Open the &lt;code&gt;gpodder-0.8.0/data/gpodder.glade&lt;/code&gt; file using the ''[http://glade.gnome.org/ Glade User Interface Designer]'' (another option is ''[http://gazpacho.sicem.biz/ Gazpacho]''). You can see that there is one class for each &lt;code&gt;GtkWindow&lt;/code&gt; defined in it, as shown in Figure 5:

[[Image:gpodder_glade_1.png|frame|center|alt=Screenshot of Glade showing a list of windows defined in gPodder's glade file|Figure 5: Windows defined in gPodder's glade file]]

In addition to loading the window description from &lt;code&gt;gpodder.glade&lt;/code&gt;, the &lt;code&gt;SimpleGladeApp&lt;/code&gt; class also makes all window elements directly accessible from &lt;code&gt;self&lt;/code&gt;, ignoring the element's hierarchy. Figure 6 illustrates part of the element's hierarchy for the gPodder window, and how to access the elements from inside a &lt;code&gt;Gpodder&lt;/code&gt; method.

[[Image:gpodder_glade_2.png|frame|center|alt=Screenshot of widget tree for the gPodder window|Figure 6: Widget tree for the gPodder window]]

&lt;source lang=&quot;python&quot;&gt;
 self.vMain
 self.mainMenu
 self.menuPodcasts
 self.menuChannels
 self.menuHelp
 self.hboxContainer
 self.wNotebook
 self.vboxAvailablePodcasts
 self.hboxChannels
 self.scrollAvailable
 self.treeAvailable
&lt;/source&gt;

===Changing to HildonProgram and HildonWindow===

The first code change in the porting exercise is to make gPodder use &lt;code&gt;HildonProgram&lt;/code&gt; and &lt;code&gt;HildonWindow&lt;/code&gt; classes instead of the &lt;code&gt;GtkWindow&lt;/code&gt; class.

Start by modifying the &lt;code&gt;gpodder.py&lt;/code&gt; file (in the &lt;code&gt;gpodder-0.8.0/src/gpodder&lt;/code&gt; directory). Since you want to use Hildon elements, you have to import its module. The following example illustrates the import, with ''++'' indicating new lines:

&lt;pre&gt;
61 |from libipodsync import gPodder_iPodSync
62 |from libipodsync import ipod_supported
63 |
++ |import hildon
++ |
64 |# for isDebugging:
65 |import libgpodder
&lt;/pre&gt;

Second, add a &lt;code&gt;HildonProgram&lt;/code&gt; (&lt;code&gt;self.app&lt;/code&gt;) and a &lt;code&gt;HildonWindow&lt;/code&gt; (&lt;code&gt;self.window&lt;/code&gt;). The following example illustrates the added objects:

&lt;pre&gt;
115 |        if libgpodder.isDebugging():
116 |            print &quot;A new %s has been created&quot; % self.__class__.__name__
117 |
 ++ |        self.app = hildon.Program()
 ++ |
 ++ |        self.window = hildon.Window()
 ++ |        self.window.set_title(self.gPodder.get_title())
 ++ |        self.app.add_window(self.window)
 ++ |
 ++ |        self.vMain.reparent(self.window)
 ++ |        self.gPodder.destroy()
 ++ |
 ++ |        self.window.show_all()
 ++ |
118 |        #self.gPodder.set_title( self.gPodder.get_title())
119 |        #self.statusLabel.set_text( &quot;Welcome to gPodder! Suggestions? Mail to: thp@perli.net&quot;)
120 |        # set up the rendering of the comboAvailable combobox
&lt;/pre&gt;

The &lt;code&gt;gPodder&lt;/code&gt; class (&lt;code&gt;self&lt;/code&gt;) has its &lt;code&gt;close_gpodder&lt;/code&gt; method connected to the &lt;code&gt;destroy&lt;/code&gt; signal from the original &lt;code&gt;gPodder&lt;/code&gt; Gtk window. This means that you have to remove the connection from &lt;code&gt;gPodder&lt;/code&gt; and put it in the new &lt;code&gt;Hildonwindow&lt;/code&gt; (&lt;code&gt;self.window&lt;/code&gt;).

To remove the signal connection from the original &lt;code&gt;gPodder&lt;/code&gt; Gtk window, open the &lt;code&gt;gpodder.glade&lt;/code&gt; file (in the &lt;code&gt;gpodder-0.8.0/data&lt;/code&gt; directory) and remove the connection, as shown in Figure 7.

[[Image:gpodder_glade_3.png|frame|center|alt=destroy signal for gPodder window|Figure 7: destroy signal for gPodder window]]

The following example illustrates how you connect &lt;code&gt;Gpodder.close_gpodder&lt;/code&gt; to the new &lt;code&gt;HildonProgram&lt;/code&gt; (&lt;code&gt;self.app&lt;/code&gt;):

&lt;pre&gt;
119 |
120 |        self.window = hildon.Window()
121 |        self.window.set_title(self.gPodder.get_title())
 ++ |        self.window.connect(&quot;destroy&quot;, self.close_gpodder)
122 |        self.app.add_window(self.window)
123 |
124 |        self.vMain.reparent(self.window)
&lt;/pre&gt;

The change from &lt;code&gt;GtkWindow&lt;/code&gt; to &lt;code&gt;HildonProgram&lt;/code&gt;/&lt;code&gt;HildonWindow&lt;/code&gt; is now complete. Figure 8 illustrates the results if you run gPodder again.

{{ambox|
text=Don't forget to run &lt;code&gt;python2.5 setup.py install&lt;/code&gt; before lauching gPodder again, otherwise you will still be using the old, unmodified, version.}}

[[Image:gpodder_2_small.jpg|frame|border|center|middle|alt=Screenshot of gPodder using HildonProgram and HildonWindow|Figure 8: gPodder using &lt;code&gt;HildonProgram&lt;/code&gt; and &lt;code&gt;HildonWindow&lt;/code&gt;]]

Note that the window fits in the screen without any broken borders, just as the &quot;Hello World&quot; application did.

===Changing to HildonWindow menu bar===

This section describes how you make gPodder use Hildon's title area as its menu bar, instead of using its own GTK+ menu (a &lt;code&gt;GtkMenuBar&lt;/code&gt; object).

In the &lt;code&gt;gpodder.glade&lt;/code&gt; file, you can see that the &lt;code&gt;gPodder&lt;/code&gt; window has a menu bar (a &lt;code&gt;GtkMenuBar&lt;/code&gt; object) called &lt;code&gt;mainMenu&lt;/code&gt;. You must move all its children (&lt;code&gt;menuPodcasts&lt;/code&gt;, &lt;code&gt;menuChannels&lt;/code&gt; and &lt;code&gt;menuHelp&lt;/code&gt;) to the &lt;code&gt;HildonWindow&lt;/code&gt;'s menu and then destroy the empty &lt;code&gt;mainMenu&lt;/code&gt; menu.

To achieve this, add the following lines to the &lt;code&gt;gpodder.py&lt;/code&gt; file:

&lt;pre&gt;
125 |        self.vMain.reparent(self.window)
126 |        self.gPodder.destroy()
127 |
 ++ |        menu = gtk.Menu()
 ++ |        for child in self.mainMenu.get_children():
 ++ |            child.reparent(menu)
 ++ |        self.window.set_menu(menu)
 ++ |
 ++ |        self.mainMenu.destroy()
 ++ |
128 |        self.window.show_all()
129 |
130 |        #self.gPodder.set_title( self.gPodder.get_title())
&lt;/pre&gt;

Figure 9 illustrates the resulting menu:

[[Image:gpodder_3_small.jpg|frame|center|alt=Screenshot of gPodder using HildonWindow's menu bar|Figure 9: gPodder using HildonWindow's menu bar]]

===Using Hildon widgets===

Hildon has a set of widgets for common operations, such as a color selection dialog, file chooser dialog and a time picker. Most of them provide the same functionality (or extension) as the existing GTK+ widgets. For example, &lt;code&gt;HildonFileChooserDialog&lt;/code&gt; has the same purpose as &lt;code&gt;GtkFileChooserDialog&lt;/code&gt;.

Replace the GTK+ widgets with the Hildon ones whenever possible, since the Hildon widgets were designed to obey Maemo's restrictions and peculiarities.

gPodder uses a GTK+ file chooser dialog when users export their channel lists. It doesn't fit well into Maemo's environment as you can see from Figure 10.

[[Image:gpodder_4_small.jpg|frame|center|alt=Screenshot of gPodder using GTK's file chooser dialog|Figure 10: gPodder using GTK's file chooser dialog]]

Make it use a &lt;code&gt;HildonFileChooserDialog&lt;/code&gt; instead. The following example illustrates the code changes needed in &lt;code&gt;gpodder-0.8.0/src/gpodder/gpodder.py&lt;/code&gt;:

&lt;pre&gt;
579    |        if len( self.channels) == 0:
580    |          self.showMessage( _(&quot;Your channel list is empty. Nothing to export.&quot;))
581    |          return
582 -- |        dlg = gtk.FileChooserDialog( title=_(&quot;Export to OPML&quot;), parent = None,[...]
583 -- |        dlg.add_button( gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
584 -- |        dlg.add_button( gtk.STOCK_SAVE, gtk.RESPONSE_OK)
    ++ |        dlg = hildon.FileChooserDialog(self.window, gtk.FILE_CHOOSER_ACTION_SAVE);
585    |        response = dlg.run()
586    |        if response == gtk.RESPONSE_OK:
587    |            foutname = dlg.get_filename()
&lt;/pre&gt;

Figure 11 illustrates the results when you select ''Menu &gt; Channels &gt; Export List'':

[[Image:gpodder_5_small.jpg|frame|center|alt=Screenshot of gPodder using Hildon's file chooser dialog|Figure 11: gPodder using Hildon's file chooser dialog]]

===Adjusting the Glade interface to fit into a small screen===

The following change to the interface layout is necessary to make it fit into the relatively small Maemo screen:

* Main window (&lt;code&gt;gPodder&lt;/code&gt;) Make the tab names shorter. Replace “''Downloaded Podcasts''” with “''Downloaded''” and “''Available Podcasts''” with “''Podcasts''” to make the tab names stay within screen boundaries. Figure 12 shows the tab names before (left) and after (right) that change.

[[Image:gpodder_6_small.jpg|frame|center|alt=Screenshot of gPodder with shortened tab names|Figure 12: gPodder with shortened tab names]]

===Using hardware keys===

Maemo applications must use the available hardware keys to improve their usability. Most applications don't have use for of them, of course, but try nonetheless to use those that make sense in your program, giving it the usability expected from a proper Maemo application.

The ''Full screen'' hardware key is particularly useful, since the screen size is one of the key issues in Maemo applications, especially in desktop applications that are being ported to Maemo (such as gPodder).

To implement the full screen functionality, you have to monitor two more window signals:

* Key presses, to know when the ''Full screen'' key is pressed.
* Window state changes, to know whether the window is already in full screen mode.

To make gPodder respond correctly when the user presses the &lt;var&gt;Full screen&lt;/var&gt; hardware key you have to make the following changes to &lt;code&gt;gpodder-0.8.0/src/gpodder/gpodder.py&lt;/code&gt;:

1. Connect to the signals and set a variable to monitor whether the application is in full screen mode.

&lt;pre&gt;
120 |        self.window = hildon.Window()
121 |        self.window.set_title(self.gPodder.get_title())
122 |        self.window.connect(&quot;destroy&quot;, self.close_gpodder)
 ++ |        self.window.connect(&quot;key-press-event&quot;, self.on_key_press)
 ++ |        self.window.connect(&quot;window-state-event&quot;, self.on_window_state_change)
 ++ |        self.window_in_fullscreen = False #The window isn't in full screen mode initially.
123 |        self.app.add_window(self.window)
124 |
125 |        self.vMain.reparent(self.window)
&lt;/pre&gt;
2. Implement the callback to monitor window state changes.

&lt;pre&gt;
575 |            self.showMessage( _(&quot;Could not delete channel.\nProbably no channel is selected.&quot;))
576 |    #-- Gpodder.on_itemRemoveChannel_activate }
577 |
 ++ |    def on_window_state_change(self, widget, event, *args):
 ++ |        if event.new_window_state &amp; gtk.gdk.WINDOW_STATE_FULLSCREEN:
 ++ |            self.window_in_fullscreen = True
 ++ |        else:
 ++ |            self.window_in_fullscreen = False
 ++ |
578 |    #-- Gpodder.on_itemExportChannels_activate {
579 |    def on_itemExportChannels_activate(self, widget, *args):
580 |        if libgpodder.isDebugging():
&lt;/pre&gt;

3. Implement the callback to monitor key presses.

&lt;pre&gt;
581 |        else:
582 |            self.window_in_fullscreen = False
583 |
 ++ |    def on_key_press(self, widget, event, *args):
 ++ |        if event.keyval == gtk.keysyms.F6:
 ++ |            # The &quot;Full screen&quot; hardware key has been pressed
 ++ |            if self.window_in_fullscreen:
 ++ |                self.window.unfullscreen ()
 ++ |            else:
 ++ |                self.window.fullscreen ()
 ++ |
584 |    #-- Gpodder.on_itemExportChannels_activate {
585 |    def on_itemExportChannels_activate(self, widget, *args):
586 |        if libgpodder.isDebugging():
&lt;/pre&gt;

{{ambox|
text=The ''Full screen'' hardware key maps to the F6 key on the SDK.}}

Figure 13 illustrates gPodder in full screen mode.

[[Image:gpodder_7_small.jpg|frame|center|alt=Screenshot of gPodder in full screen mode|Figure 13: gPodder in full screen mode]]

==Introduction to LibOSSO==

{{main|Documentation/Maemo 5 Developer Guide/Application Development/LibOSSO library}}

LibOSSO is the basic library containing required and helpful functions for Maemo applications. One of LibOSSO's main features is RPC (Remote Procedure Calls) services (as it &quot;wraps&quot; D-Bus &lt;ref name=&quot;dbus&quot;&gt;[http://www.freedesktop.org/wiki/Software/dbus D-Bus]&lt;/ref&gt;). In addition, LibOSSO provides access to low-level hardware functions, such as turning on (or keeping on) the display, autosaving, state saving and system time.

All Maemo-compliant applications must use LibOSSO to respond coherently to system changes and signals, such as the battery low, pre-shutdown and state saving signals.

This section describes how remote procedure calls are implemented using LibOSSO. The example is divided in two different sample applications: &lt;code&gt;osso_test_sender.py&lt;/code&gt; and &lt;code&gt;osso_test_receiver.py&lt;/code&gt;.

The sender sample application sends an RPC message when a button is clicked. D-Bus interprets the message and sends the RPC to the receiver sample application, which displays a system notification stating that it has received the RPC.

===Sender sample application===

The sender is simply a button occupying the whole window. When you click it, an RPC is sent to the receiver sample application.

Create a &lt;code&gt;osso_test_sender.py&lt;/code&gt; file with the following content (or download it [http://pymaemo.garage.maemo.org/documentation/pymaemo_tutorial/examples/osso_test_sender.py here]).

&lt;source lang=&quot;python&quot;&gt;
#!/usr/bin/python2.5
import osso
import hildon
import gtk

def send_rpc(widget, osso_c):
    osso_rpc = osso.Rpc(osso_c)
    osso_rpc.rpc_run(&quot;spam.eggs.osso_test_receiver&quot;,
        &quot;/spam/eggs/osso_test_receiver&quot;,
        &quot;spam.eggs.osso_test_receiver&quot;, &quot;do_something&quot;)
    print &quot;RPC sent&quot;

osso_c = osso.Context(&quot;osso_test_sender&quot;, &quot;0.0.1&quot;, False)
window = hildon.Window()
window.connect(&quot;destroy&quot;, gtk.main_quit)
send_button = gtk.Button(&quot;Send RPC&quot;)
window.add(send_button)
send_button.connect(&quot;clicked&quot;, send_rpc, osso_c)
window.show_all()
gtk.main()
&lt;/source&gt;

===Receiver sample application===

The receiver is an application that has no GUI (no window), it runs unseen in the background waiting for an RPC. When it receives one, it uses LibOSSO to display an information banner notifying the user that an RPC has been received.

Create a &lt;var&gt;osso_test_receiver.py&lt;/var&gt; file with the following content (or download it [http://pymaemo.garage.maemo.org/documentation/pymaemo_tutorial/examples/osso_test_receiver.py here]). '''Don't forget to set this file as executable, otherwise D-Bus will not be able to start it. You can do this using: &lt;code&gt;chmod +x osso_test_receiver.py&lt;/code&gt;'''

&lt;source lang=&quot;python&quot;&gt;
#!/usr/bin/python2.5
import osso
import gtk

def callback_func(interface, method, arguments, user_data):
    print &quot;RPC received&quot;
    osso_c = user_data
    osso_sysnote = osso.SystemNote(osso_c)
    osso_sysnote.system_note_infoprint(&quot;osso_test_receiver: Received an RPC to %s.&quot; % method)

osso_c = osso.Context(&quot;osso_test_receiver&quot;, &quot;0.0.1&quot;, False)
print &quot;osso_test_receiver started&quot;
osso_rpc = osso.Rpc(osso_c)
osso_rpc.set_rpc_callback(&quot;spam.eggs.osso_test_receiver&quot;,
    &quot;/spam/eggs/osso_test_receiver&quot;,
    &quot;spam.eggs.osso_test_receiver&quot;, callback_func, osso_c)
gtk.main()
&lt;/source&gt;

The receiver also must register itself as a D-Bus service. Create a &lt;code&gt;osso_test_receiver.service&lt;/code&gt; file with the following content.

&lt;pre&gt;
[D-BUS Service]
Name=spam.eggs.osso_test_receiver
Exec={SOME_DIRECTORY_HIERARCHY}/osso_test_receiver.py
&lt;/pre&gt;

Replace &lt;code&gt;{SOME_DIRECTORY_HIERARCHY}&lt;/code&gt; with the directory where &lt;code&gt;osso_test_receiver.py&lt;/code&gt; is located.

Add the &lt;code&gt;osso_test_receiver.service&lt;/code&gt; file to &lt;code&gt;/usr/share/dbus-1/services&lt;/code&gt;.

===Running the sample applications===

First make sure that D-Bus recognises the new D-Bus service ( &lt;code&gt;spam.eggs.osso_test_receiver&lt;/code&gt;). To do this, restart your Maemo environment (which, in turn, will restart D-Bus) by using the following command on the Scratchbox console:

 [sbox-TARGET_NAME: ~] &gt; af-sb-init.sh restart

Then run &lt;code&gt;osso_test_sender.py&lt;/code&gt; with the following command (assuming that it is in your home directory):

 [sbox-TARGET_NAME: ~] &gt; run-standalone.sh ./osso_test_sender.py

Figure 14 illustrates what now happens every time you click the ''Send RPC'' button.

[[Image:libosso_tutorial_small.jpg|frame|center|alt=Screenshot of LibOSSO sample application|Figure 14: LibOSSO sample application]]

Note that you do not have to manually run &lt;var&gt;osso_test_receiver.py&lt;/var&gt;, as D-Bus does it automatically. Due to its extreme simplicity, the once instantiated &lt;var&gt;osso_test_receiver.py&lt;/var&gt; continues running in background until you manually kill it from the Scratchbox console.

==Distributing Python applications==

To distribute applications, you must put it in a neat single file (a regular Debian package) so that the application installer can recognise and install it, putiting all files into their correct locations and creating an entry for the application on the menu.

===Distributing a &quot;Hello PyMaemo!&quot; application===

This section describes the process of creating a Maemo package by showing how to package a simple &quot;hello world&quot; style application. Create a &lt;code&gt;hello-pymaemo&lt;/code&gt; file (without the &quot;&lt;code&gt;.py&lt;/code&gt;&quot; suffix) with the following content.

&lt;source lang=&quot;python&quot;&gt;
#!/usr/bin/env python2.5

import gtk
import hildon

window = hildon.Window ()
window.set_title (&quot;Hello Maemo!&quot;)
window.connect(&quot;destroy&quot;, gtk.main_quit)

button = gtk.Button (&quot;Hello Python for Maemo!&quot;)
window.add (button)

window.show_all ()
gtk.main ()
&lt;/source&gt;

Make the file executable by running the &lt;code&gt;chmod +x hello-pymaemo&lt;/code&gt; command. This ensures that you can run the script in the same way as a regular binary application.

====Desktop integration====

{{main|Desktop file format}}

You must have an icon for the application. The icon is shown in the menu entry and in the task navigator bar. The icon must be a 26×26 pixels PNG image with a transparent background, such as the [http://www.maemo.org/platform/docs/python-bora/images/pymaemo_bora/hello_icon_26x26.png  example icon] shown in Figure 15:

[[Image:hello_icon_26x26.jpg|frame|center|alt=Hello PyMaemo icon|Figure 15: Hello PyMaemo icon]]

Name the icon &lt;code&gt;hello_icon_26x26.png&lt;/code&gt;.

The menu entry is a &lt;code&gt;.desktop&lt;/code&gt; file with the following content for the application:

&lt;pre&gt;
[Desktop Entry]
Version=1.0.0
Encoding=UTF-8
Name=Hello PyMaemo!
Exec=/usr/bin/hello-pymaemo
Icon=hello_icon_26x26
Type=Application
&lt;/pre&gt;

{{ambox|
text=Be very careful when writing a desktop file, since the system is very sensitive to typographical errors and misplaced whitespaces in it. A faulty desktop file will simply fail to show its menu entry without yielding any errors.}}

{| class=&quot;wikitable&quot;
|+ Table 1. &lt;code&gt;.desktop&lt;/code&gt; file fields
|-
! Field name
! Description
|-
| &lt;code&gt;Version&lt;/code&gt;
| Application version
|-
| &lt;code&gt;Encoding&lt;/code&gt;
|Character encoding. Must always be &lt;code&gt;UTF8&lt;/code&gt;.
|-
| &lt;code&gt;Name&lt;/code&gt;
| Application's name
|-
| &lt;code&gt;Exec&lt;/code&gt;
| File to be executed when the application is called
|-
| &lt;code&gt;Icon&lt;/code&gt;
| Application's icon. Only the name of the file '''without''' its suffix (&lt;code&gt;.png&lt;/code&gt;).
|-
| &lt;code&gt;Type&lt;/code&gt;
| &quot;&lt;code&gt;Application&lt;/code&gt;&quot;since it is an entry for an application
|}

====Copying files to their locations====

Use Python Distribution Utilities (&quot;Distutils&quot;) to copy the files to their proper locations. Create a &lt;code&gt;setup.py&lt;/code&gt; file with the following content.

&lt;source lang=&quot;python&quot;&gt;
from distutils.core import setup

setup(name='hello-pymaemo',
       version='1.0.0',
       scripts=['hello-pymaemo'],
       data_files = [
                    ('share/pixmaps',             ['hello_icon_26x26.png']),
                    ('share/applications/hildon', ['hello-pymaemo.desktop']),
                    ]
      )
&lt;/source&gt;

In the Scratchbox console, issue the &lt;code&gt;python2.5 setup.py install&lt;/code&gt; command to achieve the following result:

* &lt;code&gt;hello-pymaemo&lt;/code&gt; is copied to &lt;code&gt;/usr/bin&lt;/code&gt;
* &lt;code&gt;hello_icon_26x26.png&lt;/code&gt; is copied to &lt;code&gt;/usr/share/pixmaps&lt;/code&gt;
* &lt;code&gt;hello-pymaemo.desktop&lt;/code&gt; is copied to &lt;code&gt;/usr/share/applications/hildon&lt;/code&gt;

After you have run the command, the application is actually installed in your system (in Scratchbox, you have to run &lt;code&gt;af-sb-init.sh restart&lt;/code&gt; before calling your application from the menu). You can access it from the ''Extras'' menu.

The problem with this approach is that if you want to remove the application, you have to manually delete every file from its corresponding directory, which is not practical. It is also not practical to distribute an application that way, since every user has to manually run the command (or a script that does it).

Instead, you can let the Application Installer take care of all these issues. To do that, you have to group all files in a Debian package.

For more information about Python Distribution Utilities, see ''Distributing Python Modules''&lt;ref name=&quot;python_distutils&quot;&gt;[http://docs.python.org/dist/dist.html Distributing Python Modules]&lt;/ref&gt;. To get a basic knowledge of Distutils, reading Chapters 1 and 2 is strongly recommended.

====Creating a Debian package====

{{main|Packaging}}

When creating a Debian package, the first step is to put all files (the hello-pymaemo script, and the png, desktop and service files) in an empty directory called &lt;code&gt;hello-pymaemo-1.0.0&lt;/code&gt;. The directory name must follow the &lt;code&gt;&lt;package-name&gt;-&lt;app-version&gt;&lt;/code&gt; convention. This means that the package you are creating for the hello world application is called &lt;code&gt;hello-pymaemo&lt;/code&gt;.

'''Note:''' there is a module that allows deb creation directly from setup.py [http://home.cfl.rr.com/genecash/nokia/making_packages.html here].

As Debian packages use makefiles (&lt;code&gt;Makefile&lt;/code&gt;) instead of Python Distutils (&lt;code&gt;setup.py&lt;/code&gt;), you have to write a &lt;code&gt;Makefile&lt;/code&gt; to act as an interface between the Debian package system and the &lt;code&gt;setup.py&lt;/code&gt;. The file is very simple; it merely issues commands to &lt;code&gt;setup.py&lt;/code&gt; according to make's target. If you have no knowledge of make files, see Chapters 1 and 2 in ''GNU Make Manual''&lt;ref name=&quot;make&quot;&gt;[http://www.gnu.org/software/make/manual GNU Make Manual]&lt;/ref&gt;.

Create a &lt;var&gt;Makefile&lt;/var&gt; file with the following content (indentation with tabulators):

&lt;source lang=&quot;make&quot;&gt;
all:
	python2.5 setup.py build
clean:
	python2.5 setup.py clean --all
install:
	python2.5 setup.py install --root $(DESTDIR)
&lt;/source&gt;

In Scratchbox console (inside the &lt;code&gt;hello-pymaemo-1.0.0&lt;/code&gt; directory), enter the following command:

 [sbox-TARGET_NAME: ~/hello-pymaemo-1.0.0] &gt; dh_make -e your.email@somewhere.com

The system displays the following output:

&lt;pre&gt;
Type of package: single binary, multiple binary, library, or kernel module?  [s/m/l/k] s
Maintainer name : unknown
Email-Address   : your.email@somewhere.com
Date            : Thu, 18 May 2006 13:58:04 -0300
Package Name    : hello-pymaemo
Version         : 1.0.0
Type of Package : Single
Hit &lt;enter&gt; to confirm:
Done. Please edit the files in the debian/ subdirectory now.
You should also check that the hello-pymaemo Makefiles install into $DESTDIR and not in / .
&lt;/pre&gt;

Choose &quot;single binary&quot; as package type. In case the &quot;&lt;code&gt;--root $(DESTDIR)&lt;/code&gt;&quot; part of the makefile is not clear to you, the last sentece in the output is meant to clarify the situation.

The &lt;code&gt;dh_make&lt;/code&gt; command creates a &lt;code&gt;debian&lt;/code&gt; subdirectory containing multiple configuration text files, most of which are templates that can be removed, since the application does not use them. In addition, the command makes a copy of the original directory, calling it &lt;code&gt;hello-pymaemo-1.0.0.orig&lt;/code&gt;.

Table 2 lists the files needed in &lt;code&gt;hello-pymaemo-1.0.0/debian&lt;/code&gt; (others can be removed):

{| class=&quot;wikitable&quot;
|+ Table 2. Required files for the example application package
|-
! File in &lt;code&gt;./debian&lt;/code&gt;
! Description
|-
| &lt;code&gt;changelog&lt;/code&gt;
| Application's change log
|-
| &lt;code&gt;compat&lt;/code&gt;
| Debian helper compatibily version. Leave it as it is.
|-
| &lt;code&gt;control&lt;/code&gt;
| Describes the packages to be made. For more information, see the paragraphs below the table.
|-
| &lt;code&gt;copyright&lt;/code&gt;
| Copyright text. Fill in the blanks.
|-
| &lt;code&gt;rules&lt;/code&gt;
| A makefile containing the rules to build all kinds of packages (such as source and binary). For more information, see the paragraphs below the table.
|}

The key files in &lt;code&gt;./debian&lt;/code&gt; are &lt;code&gt;control&lt;/code&gt; and &lt;code&gt;rules&lt;/code&gt;. They contain a generic template showing what they must look like. In &lt;code&gt;control&lt;/code&gt;, you must simply fill in the blanks and, in &lt;code&gt;rules&lt;/code&gt;, you essentially need to remove unwanted and unnecessary code.

The following example illustrates what the &lt;code&gt;control&lt;/code&gt; file for the example application must contain:

&lt;pre&gt;
Source: hello-pymaemo
Section: user/other
Priority: optional
Maintainer: My Name &lt;your.email@somewhere.com&gt;
Build-Depends: debhelper (&gt;= 4.0.0), python2.5-dev
Standards-Version: 3.6.0

Package: hello-pymaemo
Architecture: all
Depends: python2.5, python2.5-hildon, python2.5-gtk2
Description: A simple &quot;Hello Python for Maemo!&quot;
 A very simple application consisting of a single button, containing the
 text &quot;Hello Python for Maemo!&quot;.
XB-Maemo-Icon-26:
 iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABmJLR0QA/wD/AP+g
 vaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1gURDQoYya0JlwAAAU9J
 REFUSMftlL1KA0EUhb/NZl/ggnHQxsJUxt5CUucVJCCkDfgyKdIGG5/A0s5HEBtJ
 EdDAQGBgmw0YJmMzgXXYza5CtNkDW9zZw5z7c+ZCgwb/Ai3i9sVl/Bq8RIs4LRK1
 gJDsKvJyNXmJMuYTsMoY1zpgozaABdYArQNPZQ1kfyGU7SpqVwxzAMwABWhgpIwp
 4vWBB+AUWAI3ypjnfEXtPU4bLKx9vErTeCeiRSYF+fTn1j5dp2myE9EiU+DSi3wX
 ymeqRQAmZ3EcA5E/fgO6BULT8zhOcrwXoJdrXRa2Lgps2y2odAUcBUIXQdz78YyC
 SldAp8b7+bXrIv91qjZBietqCc2DjbAt4b2WxJkyZljVujlwp0U0cPxuLcAIuC+4
 dKxFlsDJarvdAGP/b6hFnDImYs+uG3hbO2AB3Jbsur63tQM+fFx3bzZocEB8AdV2
 gJBZgKTwAAAAAElFTkSuQmCC
&lt;/pre&gt;

The &lt;code&gt;XB-Maemo-Icon-26&lt;/code&gt; field contains the application icon file (in this case, &lt;code&gt;hello_icon_26x26.png&lt;/code&gt;) encoded in base64. This is the icon that is shown in the Application Installer, next to the package name. To do this encoding in Linux, you can use either &lt;code&gt;uuencode&lt;/code&gt; or &lt;code&gt;openssl&lt;/code&gt; (there can be more suitable applications). Maemos's Scratchbox rootstrap is delivered with &lt;code&gt;uuencode&lt;/code&gt;. Do not forget to put a white space at the beginning of each line containing the icon-encoded text. The white space serves as indentation. The same rule stands for the long package description (&lt;code&gt; A very simple application[...]&lt;/code&gt;).

The Application Installer only shows packages in the &lt;code&gt;user&lt;/code&gt; section. Thus, your &lt;code&gt;Section:&lt;/code&gt; field in the &lt;code&gt;control&lt;/code&gt; file must have the &lt;code&gt;Section: user/&lt;SUBSECTION&gt;&lt;/code&gt; syntax, where &lt;code&gt;&lt;SUBSECTION&gt;&lt;/code&gt; is arbitrary.

The following example illustrates the &lt;code&gt;rules&lt;/code&gt; file for the example application:

&lt;source lang=&quot;make&quot;&gt;
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
 	INSTALL_PROGRAM += -s
endif

configure: configure-stamp

configure-stamp:
	dh_testdir
 	# Add here commands to configure the package.

	touch configure-stamp
build: build-stamp

build-stamp: configure-stamp
	dh_testdir
 	# Add here commands to compile the package.
	$(MAKE)

	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp configure-stamp

	# Add here commands to clean up after the build process.
	-$(MAKE) clean

	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

	# Add here commands to install the package into debian/hello-pymaemo.
	$(MAKE) install DESTDIR=$(CURDIR)/debian/hello-pymaemo

# Build architecture-independent files here.

binary-indep: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs
	dh_fixperms
	dh_installdeb
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary-arch: build install

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure
&lt;/source&gt;

The main point is that the &lt;code&gt;binary-arch&lt;/code&gt; target was emptied and the &lt;code&gt;binary-indep&lt;/code&gt; filled, since the application being 100% Python means that it is 100% architecture-independent.

All the preliminary steps are now done, and you can build the Debian package itself with the following command:

 [sbox-TARGET_NAME: ~/hello-pymaemo-1.0.0] &gt; dpkg-buildpackage -rfakeroot

The system displays some output, including a couple of warnings near the end of it (about &lt;code&gt;XB-Maemo-Icon-26&lt;/code.) but that is normal. The parent directory now has a &lt;code&gt;hello-pymaemo_1.0.0-1_all.deb&lt;/code&gt; file - your Debian package. This is the file that is distributed to Maemo devices and installed using the Application Installer.

You can install your package in scratchbox using the following command:

 [sbox-TARGET_NAME: ~] &gt; dpkg -i hello-pymaemo_1.0.0-1_all.deb

To remove it, the command is:

 [sbox-TARGET_NAME: ~] &gt; dpkg -r hello-pymaemo

Figure 14 shows our hello-world application properly installed and running.

[[Image:packaging_1_small.jpg|frame|center|alt=Screenshot of the &quot;Hello World!&quot; properly installed|Figure 14: The &quot;Hello World!&quot; properly installed]]

All files shown in this section can be downloaded [http://pymaemo.garage.maemo.org/documentation/pymaemo_tutorial/examples/hello-pymaemo_1.0.0-1.tar.gz here] and the resulting debian package [http://pymaemo.garage.maemo.org/documentation/pymaemo_tutorial/examples/hello-pymaemo_1.0.0-1_all.deb here].

For more information about making Debian packages, see ''Debian New Maintainers' Guide''&lt;ref name=&quot;debian&quot;&gt;[http://www.us.debian.org/doc/maint-guide Debian New Maintainers' Guide]&lt;/ref&gt;.

==References==

&lt;references/&gt;

[[Category:Python]]
[[Category:Diablo]]</text>
    </revision>
  </page>
  <page>
    <title>PyPackager</title>
    <id>624</id>
    <revision>
      <id>47304</id>
      <timestamp>2012-04-21T14:27:15Z</timestamp>
      <contributor>
        <username>stefanl</username>
        <id>3806</id>
      </contributor>
      <minor/>
      <comment>/* Process in general */</comment>
      <text xml:space="preserve">For developers without a Linux-background and supporting hardware, getting into development on Maemo is most easily achieved by using [[PyMaemo]], the Python port for Maemo. Check the website for more information on how to program - this wiki page only explains how to properly integrate your python app into the Maemo desktop environment.

Once you have a python application, you need to properly structure your source directory and add some additional files to achieve maximum Maemo/Hildon desktop integration. This document shall explain this, using the [http://maemo.org/downloads/product/OS2008/mclock/ mClock] build process as an example.

One remaining hurdle is the proper packaging of your app. This needs to be a Debian package, a *.deb file. As it is impossible to build such a package on Windows-based systems (different concept of permissions, no tools), you need to build it either on a Linux system - or you can directly do it on your Internet Tablet using the handy [http://khertan.net/softwares/pypackager.php PyPackager tool from Benoît Hervier, aka Khertan]. With it, you can simply select a source directory that then gets packaged into the final DEB file suitable for distribution over maemo.org downloads or your homepage.
PS: If you plan to distribute your application using the integrated application manager and the extras repository, you must use another build process. Check the [[py2deb]] documentation for this.

== Recommendations ==
* OpenSSH server installed on the device
* Using a SFTP client on the Windows computer (e.g. Bitvise Tunnelier)

== Process in general ==
* Login as root
* Upload your source directory to wherever you want (I suggest MyDocs '''&lt;-- Not''' recommended for doing this on device, since the next step in this Section will fail. Use /home/user/myapp directory instead.)
* Change the permissions on files that later need to be executable to 755
* Open Pypackager, add the necessary information, select a source folder, save the settings. Tap the wheel icon to build your package.
* Use the Maemo File Manager to open the resulting .deb filename. It should automatically launch the Programs Manager and start to install your app.
* Debug - Rinse - Repeat

== The folder structure ==
MyDocs or whatever root, containing the following files:

;mClock.png: A 26x26 alpha transparency PNG with the icon that shall be included in the build as the package icon (as seen in the Programs Manager)

;mclock-pypackager: The saved config file from PyPackager

;mclock-src: the folder containing the source code; the structure of the subfolders must match the structure of how the app will be deployed on the system (read an intro to debain packaging such as the one reffered on the PyPackager homepage)

:;usr: the main subfolder, matches /usr

::;bin: folder containing the main executable, a mClock file with 755 permission, containing a link to the mClock.py file inside the lib/maemo subfolder

::;lib: folder with mClock subfolder containing all *.py files of the application

::;share: folder containing all elements responsible for Hildon integration

:::;applications/hildon subfolder: contains a mClock.desktop file that defines how the mClock app appears in the Hildon menu system (Name, Subtitle when in Finger mode, Icon, Exec path, StartupWMClass to link running app to Task Navigator icon, corresponding service (only needed when doing communications over OSSO).

:::;dbus-1/services subfolder: contains a mclock.service file that links the service name to the executable

:::;icons/hicolor subfolder: contains PNG icons in two sizes, used by the Menu System (small one when in pen mode under 26x26\hildon; large one for finger mode under scalable/hildon, in a size of 48x48)

:::;mClock subfolder: containing all resources used by the application that are NOT executables, such as images.

:::;pixmaps subfolder: dontaining the 48x48 icon once again for other uses by the system (TODO: anybody knows what for exactly?)

That's it. Quite simple once you have set it up properly.
One thing: try to use a lowercase-only application name. Unix is case-sensitive, and choosing a name such as mClock was stupid from me. Don't do it. I did run into all sorts of troubles....

== The files ==
Information about the *.desktop and *.service files plus some tips about needed stuff inside your python app.

=== mClock.desktop file ===

{{main|Desktop file format}}

&lt;pre&gt;[Desktop Entry]
# Version of this file, NOT of the app. Keep it at 1.0.0
Version=1.0.0
Encoding=UTF-8
# Name of the app as seen in Menu
Name=mClock
# Description of the app as seen as subtitle in Menu in Finger mode
Comment=Clock &amp; day/night map
# Link to the app
Exec=/usr/bin/mClock
# Name of our icon file, without the trailing .png part
Icon=mclock
# Path to the icon
X-Icon-path=/usr/share/icons
# Name of our icon file, without the trailing .png part (again?!)
X-Window-Icon=mclock
Type=Application
# MUST begin with com.nokia. due to a bug, anything else will NOT work
X-Osso-Service=com.nokia.mclock
X-Osso-Type=application/x-executable
# Only needed because it's a PyGame app (would be automatic with GTK)
StartupWMClass=mClock
&lt;/pre&gt;

=== mclock.service ===

All lower case just to be sure. Very simple content:

&lt;pre&gt;
[D-BUS Service]
# MUST begin with com.nokia. due to a bug, anything else will NOT work
Name=com.nokia.mclock
# Link to the app
Exec=/usr/bin/mClock
&lt;/pre&gt;

=== mClock.py===

Some important snippets from my code...

The first one is to be set as early as wanted, it will make sure that the &quot;Loading...&quot; banner disappers. Only needed because this is a pure pygame app right now, wouldn't be needed when using GTK!
&lt;source lang=&quot;python&quot;&gt;
import os
os.environ[&quot;SDL_VIDEO_X11_WMCLASS&quot;]=&quot;mClock&quot;
&lt;/source&gt;

Later on, we need to connect to our osso service or the service daemon will kill our application!
&lt;source lang=&quot;python&quot;&gt;
osso_c = osso.Context(&quot;mclock&quot;, &quot;0.2.1&quot;, False)
&lt;/source&gt;
(However, don't ask me IF that version string has ANY relevance, I don't know)

=== mclock.pypackager===

The saved pypackager file that contains my package definition. You can copy that into a text file and then load it from PyPackager to get my build configuration:

&lt;pre&gt;
(S'mClock'
S'0.5.5'
S'user/other'
S'all'
S'Optional'
S'Tom Waelti &lt;twaelti@gmail.com&gt;'
S'python2.5 (&gt;= 2.5.1-1osso5),  python2.5-osso, python2.5-gnome (&gt;= 2.18.0-1osso3)'
S'A simple clock for maemo, incl. a day/night world map.\nPress D-Pad or bottom left to switch view mode.\nESC to exit.\nLeft/right D-Pad (or touching l/r border of screen)\nto change season. '
S'/home/user/MyDocs/mclock-src'
S'/home/user/MyDocs/mClock.png'
S''
S''
S'#!/bin/sh\ntouch /usr/lib/python2.5/site-packages/gnome/__init__.py\n'
S''
S''
S'extras'
S'chinook'
S'low'
S'email@email.com'
S''
S''
S'login'
S'1'
tp1
.
&lt;/pre&gt;

[[Category:Development]]
[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>PyQt Tips and Tricks</title>
    <id>4270</id>
    <revision>
      <id>43695</id>
      <timestamp>2011-05-31T09:44:28Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Tips and Tricks */ move content from [[PyQt instant startup screen trick]]</comment>
      <text xml:space="preserve">With MeeGo there is a lot of interest in [[Qt4 development|developing applications in Qt]] rather than GTK+. This page spawned from a [http://talk.maemo.org/showthread.php?t=56171 discussion thread].

== Tips and Tricks ==

=== Qt-Specific Performance Considerations ===

Riverbank claims[http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/pyqt4ref.html#the-qtcore-pyqtslot-decorator] that decorating slots with pyqtSlot is faster and reduces memory.

Example:
&lt;source lang=&quot;python&quot;&gt;
@QtCore.pyqtSlot(int)
@QtCore.pyqtSlot('QString')
def valueChanged(self, value):
    &quot;&quot;&quot; Two slots will be defined in the QMetaObject. &quot;&quot;&quot;
&lt;/source&gt;

Notes:
* Unverified for PyQt
* Unsure if this applies to PySide

=== Identifying the Sender of a Signal ===

There are two main approaches for this.  The first is to wrap the slot with a lambda to pass in any additional arguments:
&lt;source lang=&quot;python&quot;&gt;
def notifyMe(foo)
  print foo

f = QPushButton(&quot;Click me!&quot;)
x = lambda: notifyMe(&quot;they call him tim&quot;)
self.connect(f, SIGNAL(&quot;clicked()&quot;), x)
&lt;/source&gt;
[http://talk.maemo.org/showpost.php?p=714507&amp;postcount=1]

The second and more general solution is to use the [http://pysnippet.blogspot.com/2010/06/qsignalmapper-at-your-service.html QSignalMapper][http://talk.maemo.org/showpost.php?p=714752&amp;postcount=8]

=== Learning to use Qt CSS ===

Much like web development, [http://doc.qt.nokia.com/4.6/stylesheet.html CSS is also available within Qt]. [http://doc.qt.nokia.com/4.6/stylesheet-examples.html There's a list of examples] that can be tried out just using Qt Designer. If you're using custom CSS, using [http://agateau.wordpress.com/2008/01/15/qt-stylesheets-and-qpalette/ palette() in your CSS definitions] will allow you to use colors that the theme already knows about. As an example, this is an easy way to get the default blue color on your buttons when you want that color.

Depending on your needs, there's a number of [http://doc.trolltech.com/4.4/stylesheet-reference.html#list-of-icons built-in icons] that are available for use.[http://talk.maemo.org/showpost.php?p=714507&amp;postcount=1]

Style sheets and the native &lt;code&gt;QMaemo5Style&lt;/code&gt; do not mix very well, since Maemo 5 lays out and draws some widgets very differently (e.g. &lt;code&gt;QRadioButton&lt;/code&gt;). We recommend using local style sheets on specific widgets only, instead of setting one via &lt;code&gt;QApplication::setStyleSheet()&lt;/code&gt;.[http://talk.maemo.org/showpost.php?p=714544&amp;postcount=4]

=== QString and Python ===

I've had some Unicode-related issues when moving strings between Python datatypes and Qt datatypes. Somehow, the Unicode stuff would get lost. So, it's likely easiest (At least when you're new to Python and Qt) to use &lt;code&gt;QString&lt;/code&gt; and &lt;code&gt;QStringList&lt;/code&gt; than their pure Python counterparts.

If you're not bringing in data from anywhere else, this isn't that big of a deal, but if you're interacting with data from any other source, Unicode is a pretty likely scenario these days.[http://talk.maemo.org/showpost.php?p=717579&amp;postcount=11]

Just to note that, in my experience, locales fail to work with PyQt - &lt;code&gt;QTextCodec.codecForLocale()&lt;/code&gt; does not return the correct codec, which also means &lt;code&gt;QString&lt;/code&gt;'s &lt;code&gt;toLocal8Bit()&lt;/code&gt; and &lt;code&gt;fromLocal8Bit()&lt;/code&gt; fail.

The Python locale stuff works fine, but then you have the joy of converting between &lt;code&gt;QString&lt;/code&gt; and Python strings (which works perfectly when it does it implicitly, but an explicit conversion seems to go via ASCII unless you specifically tell it to use UTF-8 instead). [http://talk.maemo.org/showpost.php?p=717585&amp;postcount=12]

=== Qt and Threads ===

There are multiple options for preemptive threading and cooperative threading.  The big question is &lt;code&gt;QThread&lt;/code&gt; or &lt;code&gt;threading.Thread&lt;/code&gt;.  This has been discussed on the [http://www.mail-archive.com/pyqt@riverbankcomputing.com/msg16050.html PyQt mailing list] and [http://stackoverflow.com/questions/1595649/threading-in-a-pyqt-application-use-qt-threads-or-python-threads SO]

==== QThread ====

It is discouraged to inherit from &lt;code&gt;QThread&lt;/code&gt; and to use &lt;code&gt;moveToThread&lt;/code&gt; on the &lt;code&gt;QThread&lt;/code&gt;.[http://labs.trolltech.com/blogs/2010/06/17/youre-doing-it-wrong].  A C++ example of how to use these is shown in a producer/consumer style application can be found on the [http://labs.trolltech.com/blogs/2006/12/04/threading-without-the-headache/ trolltech blog].

Note: The &quot;You're Doing it Wrong&quot; post claims run now has a default implementation to call exec_.  As of python-qt 4.7 on Ubuntu 10.04 epage is not seeing this and had to create a class that inherits from QThread and provides that behavior.

==== import threading ====

It appears &lt;code&gt;QThread&lt;/code&gt; initializes some TLS for data essential for thread safe signals and slots.  Also when creating cross-thread signals it queues the signal emission rather than doing it immediately.  These present problems when wanting to use the native Python Threading in a Qt application.[http://www.mail-archive.com/pyqt@riverbankcomputing.com/msg16062.html][http://www.mail-archive.com/pyqt@riverbankcomputing.com/msg16082.html]

If the Python thread would not interact directly with Qt then using Python threads is fine without any consideration.

Sometimes you must use Python threads with Qt like when porting applications.  One solution to this is to pump messages into a queue and have an &lt;code&gt;QTimer&lt;/code&gt; poll the queue periodically for tasks to process in the UI thread.[http://www.mail-archive.com/pyqt@riverbankcomputing.com/msg16062.html]

==== QTimer ====

Spread the work across multiple callbacks to allow the UI to remain responsive. See multiple [http://www.rkblog.rk.edu.pl/w/p/qtimer-making-timers-pyqt4/ QTimer types]. If you're not relying on third parties (anything that will block the interpreter - whether it be waiting on hardware or a call via XMLRPC) &lt;code&gt;QTimer&lt;/code&gt;s are probably a good choice.

As an example, I wrote an app that would play a series of .jpg images as a movie in a player. While using a thread would work, using a &lt;code&gt;QTimer&lt;/code&gt; worked great as well, since there was no waiting for hardware.

=== Stacked Windows ===

&lt;source lang=&quot;python&quot;&gt;
 class showWindow(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        
        self.ui = Ui_main_window()
        self.ui.setupUi(self)
        try:
            self.setAttribute(Qt.WA_Maemo5StackedWindow)
        except:
            pass
&lt;/source&gt;
[http://talk.maemo.org/showpost.php?p=714507&amp;postcount=1]

=== Instant startup screen ===

As most of us already know most PyQt4 apps are taking quite sometimes at start up and most of the time users are getting initial black screen while it's loading, this is just not only the case with Python apps but all the apps on [[Nokia N900|N900]]. Nokia has used a trick to snapshot of apps start up screen and load image instantly when the app icon is pressed, which give users an impression that apps was started up instantly but in reality they were not. (modest, note, sketch, control panel, application manager, pdfviewer, worldclock, xterm, and calculator are using this trick). So why don't we apply the same trick on our apps to make it look fast at startup? Well, Most of us don't even know the trick is there and some debates whether this is a good idea or not, but I for one rather see a false startup image than a black screen. So below is the instruction to make your Python Qt app fly at startup on N900 device.

'''There are three basic things to make it work:'''

&lt;ol&gt;
&lt;li&gt;
A D-Bus service file (name whatever e.g. yourapp.service) in &quot;&lt;code&gt;/usr/share/dbus-1/services/&lt;/code&gt;&quot; folder even though yourapp is not using D-Bus related service at all and it should look like this format in &lt;code&gt;yourapp.service&lt;/code&gt;.
&lt;pre&gt;
[D-BUS Service]
Name=what.ever.yourapp
Exec=/opt/yourapp/main.py
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Adding &quot;&lt;code&gt;X-Osso-Service=what.ever.yourapp&lt;/code&gt;&quot; in your yourapp.desktop file in &quot;&lt;code&gt;/usr/share/applications/hildon/&lt;/code&gt;&quot; folder, something like this.
&lt;pre&gt;
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Name=YourApp
Icon=YourApp
Exec=/opt/yourapp/main.py
X-Osso-Service=what.ever.yourapp
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Lastly, A function code in your app to take a snapshot of your app startup screen when it starts up the first time or when it exits whichever your prefer. Below is an basic example of PyQt4 app code which take a snapshot of the screen at start up if it's not already exist and save it into '&quot;&lt;code&gt;/home/user/.cache/launch/what.ever.yourapp.pvr&lt;/code&gt;&quot; (p.s. the file name has to match with your &lt;code&gt;X-Osso-Service&lt;/code&gt;, and D-BUS Service Name plus .pvr extension).
&lt;source lang=&quot;python&quot;&gt;
#!/usr/bin/env python2.5
# -*- coding: utf-8 -*-

from PyQt4.QtGui import *
from PyQt4.QtCore import *

import osso # only needed for osso_initialize

class MainWindow(QMainWindow):
    def __init__(self, parent = None):        
        self.dbus_service_name = &quot;what.ever.yourapp&quot;  #must be the same as your X-osso-service in yourapp.desktop file
        &quot;&quot;&quot;
        self.osso_c = osso.Context(self.dbus_service_name, &quot;0.0.1&quot;, False)
        is only needed if your app is not launched from run-standalone.sh,
        Otherwise, your app will be terminated after ~ 2mins running
        don't ask me why :)
        &quot;&quot;&quot;
        self.osso_c = osso.Context(self.dbus_service_name, &quot;0.0.1&quot;, False)
        
        QMainWindow.__init__(self, parent)

        self.centralwidget = QWidget(self)
        self.setCentralWidget(self.centralwidget)

        &quot;&quot;&quot;
        the rest of your code here....
        &quot;&quot;&quot;

    def takeScreenShot(self):
        pvr = &quot;/home/user/.cache/launch/%s.pvr&quot; % self.dbus_service_name
        if not QFile.exists(pvr): # skipped if it's already there
            QPixmap.grabWidget(self.centralwidget).save(pvr, 'png') # tell it to grab only your self.centralwidget screen, which is just window screen without the menu status bar on top. 

if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    app.setApplicationName(&quot;YourAppName&quot;)
    YourApp = MainWindow()
    YourApp.show()
    YourApp.takeScreenShot() # run this after the YourApp.show()
    sys.exit(app.exec_())
&lt;/source&gt;
&lt;/li&gt;
&lt;/ol&gt;

== Example Applications ==

This is an overview of some of the PyQt applications available for Maemo. For some of the apps, there's a brief outline of unique functions they might have that you might want for your app.

The official [http://www.riverbankcomputing.co.uk/software/pyqt/download PyQt] bindings come with Python-based examples for many things. There's also examples for [http://maemo.org/packages/view/python2.5-qt4-doc/ PyQt on Maemo 5] with Python examples, as well. 

If you want to learn to become better in Python and Qt, reading code is one of the better ways to do it.

* [http://maemo.org/packages/view/ncalc/ ncalc]
* [http://maemo.org/packages/view/nclock/ nclock]
* [http://maemo.org/packages/view/maesynth/ maesynth]
** Uses QGraphicsView to create a non-standard looking GUI
** Also plays sounds when keys are pressed 
* [http://maemo.org/packages/view/maelophone/ maelophone]
* [http://maemo.org/packages/view/healthcheck/ healthcheck]
** Gives examples of interacting with much of the hardware on the N900
* [http://maemo.org/packages/view/qlister/ qlister]
* Gonvert (1.0+)
* [http://maemo.org/packages/view/wifieye/ WifiEye]
* [http://maemo.org/packages/view/maegirls/ MaeGirls]
* [http://maemo.org/packages/view/pypianobar/ pyPianobar]
** Threading and Qt
* [http://maemo.org/packages/view/pyradio/ pyRadio]
** Threading and Qt

== Web Resources ==

* [http://doc.qt.nokia.com/qt-maemo-4.6/index.html Maemo Version of the Qt Documentation]
* [http://doc.qt.nokia.com/qt-maemo-4.6/platform-notes-maemo5.html Maemo-specific platform notes]
* [http://talk.maemo.org/showthread.php?t=42754 PyQt4 Demo's and Documentation Packages]

[[Category:Qt]]
[[Category:Python]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>PyQt instant startup screen trick</title>
    <id>4860</id>
    <revision>
      <id>43696</id>
      <timestamp>2011-05-31T09:45:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[PyQt_Tips_and_Tricks#Instant_startup_screen]]</comment>
      <text xml:space="preserve">#REDIRECT [[PyQt Tips and Tricks#Instant startup screen]]</text>
    </revision>
  </page>
  <page>
    <title>Pymaemo</title>
    <id>3678</id>
    <revision>
      <id>30287</id>
      <timestamp>2010-02-27T21:06:47Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <comment>Redirecting to [[PyMaemo]]</comment>
      <text xml:space="preserve">#REDIRECT [[PyMaemo]]</text>
    </revision>
  </page>
  <page>
    <title>Python</title>
    <id>5055</id>
    <revision>
      <id>45842</id>
      <timestamp>2011-11-24T17:59:58Z</timestamp>
      <contributor>
        <username>wmoreira</username>
        <id>4818</id>
      </contributor>
      <comment>/* Documentation and Guides */</comment>
      <text xml:space="preserve">This is the page of the Maemo/Harmattan Python project. [http://www.python.org/ Python] is an interpreted, dynamic programming language.

=== PyMaemo (Python for Maemo) ===

The PyMaemo (Python for Maemo) project maintains a set of packages necessary to run and develop Python applications on the Maemo platform.

For all PyMaemo-related content, see:

* [[PyMaemo|Python on Maemo 5 (Nokia N900)]]

=== MeeGo 1.2 Harmattan Python ===

The MeeGo 1.2 Harmattan Python project provides a Python runtime environment for Nokia's N9 phone and the N950 developer device built on the MeeGo 1.2 Harmattan platform. It provides a full-featured set of packages and tools to rapidly develop and run Python applications using the PySide: Python for Qt bindings together with the Qt Quick UI definition language.

For all Harmattan-related content, see:

* [[Python/Harmattan|Python on MeeGo 1.2 Harmattan (Nokia N9 and Nokia N950)]]

=== Documentation and Guides ===

Please keep documentation pages in the &quot;Python&quot; section by prefixing the page title with &quot;Python/&quot;.

* [http://thp.io/2010/meego-python/ PySide/QML on MeeGo Tutorial (although meant for MeeGo Core, the ideas exposed can be applied to MeeGo 1.2 Harmattan as well.)]
* Tooling for Maemo 5 and MeeGo 1.2 Harmattan packaging: [[Python/Harmattan/Documentation_for_pyside-assistant|pyside-assistant]]

=== Communication ===


* '''IRC:''' &lt;code&gt;/join '''#meego-python #pymaemo #pyside'''&lt;/code&gt; on &lt;code&gt;irc.freenode.net&lt;/code&gt;
* '''Mailing list:'''
** '''Meego 1.2 Harmattan:''' meego-python@lists.meego.com ([http://lists.meego.com/listinfo/meego-python Info page], [http://lists.meego.com/pipermail/meego-python/ Archives])
** '''PyMaemo:''' pymaemo-developers@garage.maemo.org([https://garage.maemo.org/mailman/listinfo/pymaemo-developers Info page], [https://garage.maemo.org/pipermail/pymaemo-developers/ Archives])
** '''PySide:''' pyside@lists.pyside.org ([http://lists.pyside.org/listinfo/pyside Info page], [http://lists.pyside.org/pipermail/pyside/ Archives])

=== Talks, BoFs and Events ===

* [http://sf2011.meego.com/ MeeGoConf 2011]: [http://sf2011.meego.com/program/sessions/prototyping-and-developing-apps-python-pyside-and-qml Prototyping and developing apps with Python, PySide and QML]
* [http://ep2011.europython.eu/ EuroPython 2011]: [http://ep2011.europython.eu/conference/talks/developing-desktop-and-mobile-apps-with-pyside-and-qml Developing Desktop and mobile apps with PySide and QML]

[[Category:Python]]
[[Category:PySide]]

__NOTOC__</text>
    </revision>
  </page>
  <page>
    <title>Python/Harmattan</title>
    <id>5054</id>
    <revision>
      <id>48878</id>
      <timestamp>2012-08-03T07:14:22Z</timestamp>
      <contributor>
        <username>rcolistete</username>
        <id>4413</id>
      </contributor>
      <comment>/* Community Packages */</comment>
      <text xml:space="preserve">== Introduction  ==

The Harmattan Python project provides a Python runtime environment for Nokia's N9 phone and the N950 developer device built on the MeeGo 1.2 Harmattan platform. It provides a full-featured set of packages and tools to rapidly develop and run Python applications using the PySide: Python for Qt bindings together with the Qt Quick UI definition language. Applications can be deployed as individual Debian packages, using the community OBS, or eventually, via Ovi Store.

== Getting started  ==

The following links provide useful information for '''Python developers''', including information about MeeGo 1.2 Harmattan Security Framework.

*[[Python/Harmattan/Getting started with Harmattan Python|Getting started with Harmattan Python]] 
*[[Python/Harmattan/Documentation for pyside-assistant|Documentation for pyside-assistant]]
*[http://temporaryland.wordpress.com/2011/01/26/python-for-newbies/ Python Tutorial for Newbies] 
*[http://developer.qt.nokia.com/wiki/PySide_Internationalization Tutorial: Python+Qt+I18N]
*[http://developer.qt.nokia.com/wiki/PySide_DBus_Integration Tutorial: Python+Qt+DBUS]
*[[Python/Harmattan/Python 2.6 porting tips|Python 2.6 porting tips]]
*[[Python/Harmattan/Performance Considerations for Python Apps|Performance Considerations for Python Apps]]

If you are interested just in installing applications that depend on Python you can get a lot of them using the repositories listed here. All depending packages will be automatically installed.

* [http://www.ovi.nokia.com Ovi Store];
* [http://wiki.meego.com/MeeGo_Apps MeeGo Apps];
* [http://apps-beta.meego.com/applications/ MeeGo Apps - Beta];

== API Bindings  ==

The Harmattan Python project tries to cover as many APIs as possible. Nowadays there are bindings for the ''green'' marked modules:

{| class=&quot;wikitable&quot;
! API name 
! Framework
! Belongs to 
! Python Bindings
|-
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/qt-components/qt-components.html Qt Quick components]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Application_Frameworks.html Application]
| Qt
| style=&quot;background-color:#FFC709&quot; | NO (this is used on QML side)
|-
| [http://www.pyside.org/docs/pyside/PySide/QtDeclarative/index.html QtDeclarative (Qt Quick)]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Application_Frameworks.html Application]
| Qt
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside/PySide/QtGui/index.html QtGui]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Application_Frameworks.html Application]
| Qt
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside/PySide/QtUiTools/index.html QtUiTools]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Application_Frameworks.html Application]
| Qt
| style=&quot;background-color:#53B77C&quot; | YES
|-
| QtDBus
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Communications.html Communications]
| Qt 
| style=&quot;background-color:#FFC709&quot; | NO (use [http://dbus.freedesktop.org/doc/dbus-python/api/index.html python-dbus])
|-
| [http://www.pyside.org/docs/pyside-mobility/QtMobility/Messaging/index.html QtMessaging]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Communications.html Communications]
| Qt Mobility 
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside/PySide/QtNetwork/index.html QtNetwork]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Communications.html Communications]
| Qt
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside/PySide/QtWebKit/index.html WebKit in Qt]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Communications.html Communications]
| Qt
| style=&quot;background-color:#53B77C&quot; | YES
|-
| EGL
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Graphics.html Graphics ]
| -
| style=&quot;background-color:#FFC709&quot; | NO (use QtOpenGL)
|-
| OpenGL® ES 1.1
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Graphics.html Graphics ]
| -
| style=&quot;background-color:#FFC709&quot; | NO ([http://thp.io/2011/swipeout/ ctypes-based solution])
|-
| OpenGL® ES 2.0
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Graphics.html Graphics ]
| -
| style=&quot;background-color:#FFC709&quot; | NO ([http://thp.io/2011/swipeout/ ctypes-based solution])
|-
| [http://www.pyside.org/docs/pyside/PySide/QtOpenGL/index.html QtOpenGL]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Graphics.html Graphics ]
| Qt
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside-mobility/QtMobility/Location/index.html QtLocation]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Location.html Location]
| Qt Mobility
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://pygstdocs.berlios.de/#documentation GStreamer]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Multimedia.html Multimedia]
| -
| style=&quot;background-color:#53B77C&quot; | YES
|-
| PulseAudio
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Multimedia.html Multimedia]
| -
| style=&quot;background-color:#EB6155&quot; | NO
|-
| [http://www.pyside.org/docs/pyside-mobility/QtMobility/MultimediaKit/index.html QtMultimediaKit]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Multimedia.html Multimedia]
| Qt Mobility
| style=&quot;background-color:#53B77C&quot; | YES
|-
| Accounts-Qt
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Personal_Information_Management.html Personal Information Management]
| -
| style=&quot;background-color:#EB6155&quot; | NO
|-
| SignOn
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Personal_Information_Management.html Personal Information Management]
| -
| style=&quot;background-color:#EB6155&quot; | NO
|-
| [http://www.pyside.org/docs/pyside-mobility/QtMobility/Contacts/index.html QtContacts]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Personal_Information_Management.html Personal Information Management]
| Qt Mobility
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside-mobility/QtMobility/Gallery/index.html QtGallery]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Personal_Information_Management.html Personal Information Management]
| Qt Mobility
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside-mobility/QtMobility/Organizer/index.html QtOrganizer]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Personal_Information_Management.html Personal Information Management]
| Qt Mobility
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside-mobility/QtMobility/Versit/index.html QtVersit]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/Personal_Information_Management.html Personal Information Management]
| Qt Mobility
| style=&quot;background-color:#53B77C&quot; | YES
|-
| EGLIBC
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/System.html System]
| - 
| style=&quot;background-color:#EB6155&quot; | NO
|-
| QmSystem 
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/System.html System]
| - 
| style=&quot;background-color:#EB6155&quot; | NO
|-
| [http://www.pyside.org/docs/pyside/PySide/QtCore/index.html QtCore]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/System.html System]
| Qt 
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside-mobility/QtMobility/Feedback/index.html QtFeedback]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/System.html System]
| Qt Mobility 
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside-mobility/QtMobility/PublishSubscribe/index.html QtPublishSubscribe]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/System.html System]
| Qt Mobility 
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside/PySide/QtScript/index.html QtScript]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/System.html System]
| Qt 
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside/PySide/QtScriptTools/index.html QtScriptTools]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/System.html System]
| Qt 
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside-mobility/QtMobility/Sensors/index.html QtSensors]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/System.html System]
| Qt Mobility 
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside-mobility/QtMobility/ServiceFramework/index.html QtServiceFramework]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/System.html System]
| Qt Mobility 
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/qtsparql/ QtSparql]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/System.html System]
| - 
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside/PySide/QtSql/index.html QtSql]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/System.html System]
| Qt 
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside-mobility/QtMobility/SystemInfo/index.html QtSystemInfo]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/System.html System]
| Qt 
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside/PySide/QtTest/index.html QtTest]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/System.html System]
| Qt 
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside/PySide/QtXml/index.html QtXml]
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/System.html System]
| Qt 
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://www.pyside.org/docs/pyside/PySide/QtXmlPatterns/index.html QtXmlPatterns] 
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/categories/System.html System]
| Qt 
| style=&quot;background-color:#53B77C&quot; | YES
|-
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/libinappanalytics/main.html Ovi Nokia Analytics API] 
| Nokia 
| - 
| style=&quot;background-color:#EB6155&quot; | NO
|-
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/notification-engine/index.html Ovi Notification Engine]
| Nokia 
| -
| style=&quot;background-color:#EB6155&quot; | NO
|-
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/libqtgameopengles2/main.html Qt Games API]
| Nokia 
| -
| style=&quot;background-color:#EB6155&quot; | NO
|-
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/libresourceqt/main.html Resource Policy]
| Nokia 
| -
| style=&quot;background-color:#EB6155&quot; | NO
|-
| [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/transfer-ui/main.html Transfer UI]
| Nokia 
| -
| style=&quot;background-color:#EB6155&quot; | NO
|}



In addition to the listed APIs above (provided by ''python-dbus'', ''python-pyside'', ''python-qtmobility'', ''python-qtsparql'') there are lots of packages:

 &lt;nowiki&gt;
python-cairo          python-chardet    python-conic          python-content.action
python-context        python-crypto     python-dateutil       python-gconf
python-gi             python-gobject    python-imaging        python-libxml2 
python-lxml           python-magic      python-markupsafe     python-openssl   
python-pkg-resources  python-pycurl     python-pygments       python-roman     
python-storm          python-tralchemy  python-twisted-web    python-twisted-words 
python-xdg            python-numpy      python-beautifulsoup  python-feedparser 
python-pygame         ipython
&lt;/nowiki&gt;

== Community Packages  ==

There are Python packages also available by the community and not included in the Nokia's Harmattan repositories :

*[http://ipython.org/ IPython] (enhanced interactive shell) 0.10.2 : see the topics in [http://forum.meego.com/showthread.php?p=35031 MeeGo Forum] and [http://talk.maemo.org/showthread.php?t=79997 Maemo.org Talk]
*[http://code.google.com/p/sympy/ SymPy] (CAS - Computer Algebra System) : see the topics in [http://forum.meego.com/showthread.php?t=4870 MeeGo Forum] and [http://talk.maemo.org/showthread.php?t=78568 Maemo.org Talk]
*[http://matplotlib.sourceforge.net/ MatPlotLib] (2D &amp; 3D plots) : see the topics in [http://forum.meego.com/showthread.php?p=35912 MeeGo Forum] and [http://talk.maemo.org/showthread.php?p=1128672 Maemo.org Talk]
*[http://packages.python.org/uncertainties/ Uncertainties] (calculations with uncertainties) : see the topic in [http://talk.maemo.org/showthread.php?t=82519 Maemo.org Talk]
*[http://cython.org/ Cython] (C-Extensions for Python) : [http://www.RobertoColistete.net/Python/Harmattan/cython_0.14.1-6maemo1_armel.deb package download] and [http://gitorious.org/harmattan-python/cython source code]
*[http://pychecker.sourceforge.net/ PyChecker] (Python source code checking tool) : [http://www.RobertoColistete.net/Python/Harmattan/pychecker_0.8.18-4maemo1_all.deb package download] and [http://gitorious.org/harmattan-python/pychecker source code]
* [http://thp.io/2011/eventfeed/ python-eventfeed]: Library to post items to the Harmattan Event Feed screen
* [https://launchpad.net/pyflakes PyFlakes] (checks Python source code for logical errors) : [https://build.pub.meego.com/package/binary?arch=armv7el&amp;filename=pyflakes_0.4.0-1_all.deb&amp;package=PyFlakes&amp;project=home%3Arzr%3Aharmattan&amp;repository=MeeGo_1.2_Harmattan_Maemo.org_MeeGo_1.2_Harmattan_standard package download] and [https://build.pub.meego.com/package/files?package=PyFlakes&amp;project=home%3Arzr%3Aharmattan source code]

== Collaborating ==

You can contact us using:

* '''IRC:''' &lt;code&gt;/join '''#meego-python'''&lt;/code&gt; on &lt;code&gt;irc.freenode.net&lt;/code&gt;
* '''Mailing list:''' meego-python@lists.meego.com ([http://lists.meego.com/listinfo/meego-python Info page], [http://lists.meego.com/pipermail/meego-python/ Archives])

Nokia contact person: Matti Airas &lt;matti.p.airas@nokia.com&gt;

== Relevant Projects ==

*[http://wiki.maemo.org/PyMaemo PyMaemo] 
*[http://www.pyside.org/ PySide]</text>
    </revision>
  </page>
  <page>
    <title>Python/Harmattan/Documentation for pyside-assistant</title>
    <id>5048</id>
    <revision>
      <id>45836</id>
      <timestamp>2011-11-24T17:51:40Z</timestamp>
      <contributor>
        <username>wmoreira</username>
        <id>4818</id>
      </contributor>
      <minor/>
      <comment>[[Documentation for pyside-assistant]] moved to [[Python/Harmattan/Documentation for pyside-assistant]]</comment>
      <text xml:space="preserve">== Setting up ==

==== Installing from Ubuntu PPA ====

If you are using Ubuntu then you can add PySide's ppa and get ''pyside-assistant'' from there:

 &lt;nowiki&gt;
sudo add-apt-repository ppa:pyside
&lt;/nowiki&gt;

If you're using Ubuntu Oneiric you have to add this to /etc/apt/sources.list.d/pyside-ppa-oneiric.list

 &lt;nowiki&gt;
deb http://ppa.launchpad.net/pyside/ppa/ubuntu natty main
&lt;/nowiki&gt;

Then run

  &lt;nowiki&gt;
sudo apt-get update
sudo apt-get install pyside-assistant
&lt;/nowiki&gt;

==== Building and installing from source ====

To build and install ''pyside-assistant'' you will need a Debian-based Linux distribution. First, install ''python2.6'', ''sharutils'' and ''python-stdeb'' packages, that are runtime dependencies of ''pyside-assistant''.  Get the source from the Github [https://github.com/PySide/PySideAssistant page], then in the directory which pyside-assistant was downloaded, run: 

 &lt;nowiki&gt;
    $ dpkg-buildpackage -D -rfakeroot -us -uc
&lt;/nowiki&gt;

'''Warning: Do not install ''python-stdeb'' from the git sources, or pyside-assistant will not work properly!''' The version from Debian and Ubuntu (0.6.0+20100620-1) works as expected.

Now go back a directory level and install the binary package:

 &lt;nowiki&gt;
    $ sudo dpkg -i pyside-assistant_&lt;version&gt;_all.deb
&lt;/nowiki&gt;

== Usage Instructions ==

The main script for using ''pyside-assistant'' is &lt;code&gt;psa&lt;/code&gt;.

=== list command ===

The ''list'' command lists all templates available.

 &lt;nowiki&gt;
    $ psa list
&lt;/nowiki&gt;

Currently available templates are:

;fremantle
: For N900 devices.
;harmattan
: For N9/N950 devices.
;ubuntu-qml
: Ubuntu project using QML for user interface.
;ubuntu-qtgui
: Ubuntu project using QtGui for user interface.

=== init command ===

The ''init'' command creates a project from the templates. It receives two mandatory arguments: a string that identifies the entire project, called project slug, and the target template (e.g. harmattan). The following call will create a project in the current directory with the project slug sampleproject:

 &lt;nowiki&gt;
    $ psa init sampleproject harmattan
&lt;/nowiki&gt;

All project files will be contained in a directory named after the project slug, which in this case is sampleproject. Additional parameters can be passed to &lt;code&gt;psa init&lt;/code&gt; to set various fields from the start; these parameters are shown below:

 &lt;nowiki&gt;
    -a APPNAME, --app-name=APPNAME
                        Human-readable application name, refers to the Name field of sampleproject.desktop
    -s SECTION, --section=SECTION
                        Application section, refers to the section field of stdeb.cfg
    -d DESC, --description=DESC
                        Application short description, refers to the description field of setup.py
    -c CATEGORY, --category=CATEGORY
                        Application category, refers to the appname field of sampleproject.desktop
&lt;/nowiki&gt;

The created projects come with a file called README.assistant, which lists what each file does. The contents of this file is listed below:

 &lt;nowiki&gt;

=========================================
README - pyside-assistant generated files
=========================================

All files generated by psa init are described below. The sampleproject
slug used for them was 'sampleproject', with the following psa call:

    $ psa init sampleproject &lt;fremantle|harmattan|...&gt;

To list all available templates, use:

    $ psa list

* MANIFEST.in: Distutils considers a list of files by default for
installation, listed at [1].  Additional files to be distributed
must be supplied in the MANIFEST.in file. The generated file includes
the .desktop file and any QML files found.

[1] http://docs.python.org/distutils/sourcedist.html#specifying-the-files-to-distribute.

* setup.py: The main file for using Distutils, contains most of the
information needed to build the package. Information about setup.py
can be found at http://docs.python.org/distutils/introduction.html.
Two fields of this file can be modified by psa update parameters:
 - description: -d or --description
 - long_description: the contents of sampleproject.longdesc are used

* stdeb.cfg: Configuration file for stdeb, specifying additional
parameters for the binary package. The specification for this
file can be found at https://github.com/astraw/stdeb, in the section
stdeb.cfg configuration file. One field of this file can be modified by
psa update parameters:
 - Section: -s or --section

Note that the section should be a valid one,
as specified in http://wiki.maemo.org/Task:Package_categories#New_list_for_Diablo.

* sampleproject.aegis: Sample credentials file, which initially is empty. Information
of how to populate it can be found at [2].
NOTE: this file is used only in harmattan projects.

[2] http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/guide/html/Developer_Library_Developing_for_Harmattan_Harmattan_security_6cbe.html

* sampleproject.desktop: This file specifies how to run the application
from the application grid, with various fields. Information about
.desktop files can be found at http://wiki.maemo.org/Desktop_file_format.
Two fields of this file can be modified by psa update parameters:
 - Name: -a or --app-name
 - Category: -c or --category

Note that the category should be a valid one, as specified in
http://standards.freedesktop.org/menu-spec/latest/apa.html.

* sampleproject.png: The application icon, which is displayed in the
application grid.

* qml/*.qml: The QML files for the application. Their contents depend
on the platform.

* sampleproject: Main program. Initializes the application and provide
support for displaying the QML files contents.

* sampleproject.longdesc: Holds the contents of the long_description field of
setup.py, which as the name implies is a more detailed description of what the project is.


&lt;/nowiki&gt;

=== build-deb command ===

The ''build-deb'' command does all necessary steps for generating a binary package. It essentially calls stdeb to build the proper Debian package and then places the application icons inside it. For using this command, you just have to enter the project directory and run:

 &lt;nowiki&gt;
    $ psa build-deb
&lt;/nowiki&gt;

The binary package will be found under the ''./deb_dist'' directory.

If you want to add credentials to your project, you have to edit the ''.aegis'' file, which initially is empty and thus ignored. After you write all the necessary credentials to the file it will be injected into the binary package the next time the ''build-deb'' command is called. More information about credentials can be found [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/guide/html/Developer_Library_Developing_for_Harmattan_Harmattan_security_6cbe.html here]

=== update command ===
The ''update'' command can change certain values inside the project files, minimizing the need to open and edit them directly. This command accepts the following parameters:

 &lt;nowiki&gt;
    -a APPNAME, --app-name=APPNAME
                        Human-readable application name, resides in sampleproject.desktop
    -s SECTION, --section=SECTION
                        Application section, resides in stdeb.cfg
    -d DESC, --description=DESC
                        Application short description, resides in setup.py
    -c CATEGORY, --category=CATEGORY
                        Application category, resides in sampleproject.desktop
&lt;/nowiki&gt;

These parameters can be used in any order. As an example, to change the description and section of the project, run:

 &lt;nowiki&gt;
    $ psa update -d &quot;Sample project&quot; -s games
&lt;/nowiki&gt;

== Example workflow ==
 &lt;nowiki&gt;
$ psa init sampleproject harmattan
$ cd sampleproject
(... hack ...)
$ psa build-deb
(... copy binary package to destination and install it ...)
(... hack some more ...)
$ psa update -c AudioVideo -s graphics
$ psa build-deb

(and so on.)
&lt;/nowiki&gt;

== Packaging generic Python applications ==

''pyside-assistant'' was initially conceived for creating PySide applications, but in fact it can be used to build binary packages for any pure Python application that uses [http://docs.python.org/distutils/index.html Python Distutils]. 

For that purpose, follow these steps:

* Run &lt;code&gt;psa init&lt;/code&gt; as usual, to create the initial project layout;
* Erase the ''qml'' directory, as its files are specific to Qt programs;
* Create or add all files of your Python application;
* Edit ''stdeb.cfg'' and replace the contents of the ''Depends'' field with the correct runtime dependencies for your application, if any. 
* If you don't have a ''setup.py'' file for your project, edit the provided one removing the ''.qml'' file reference and adding any other project files you need. See the Python Distutils [http://docs.python.org/distutils/index.html documentation] to know how the ''setup.py'' file works and how to edit it.

From now on, the same workflow applies: modify files, build binary package with &lt;code&gt;psa build-deb&lt;/code&gt;, update fields with &lt;code&gt;psa update&lt;/code&gt;, and so on.</text>
    </revision>
  </page>
  <page>
    <title>Python/Harmattan/Getting started with Harmattan Python</title>
    <id>5047</id>
    <revision>
      <id>45834</id>
      <timestamp>2011-11-24T17:50:09Z</timestamp>
      <contributor>
        <username>wmoreira</username>
        <id>4818</id>
      </contributor>
      <minor/>
      <comment>[[Getting started with Harmattan Python]] moved to [[Python/Harmattan/Getting started with Harmattan Python]]</comment>
      <text xml:space="preserve">== How to setup the device ==

Depending on the device model that you are using, some extra steps are needed to have Python installed on it. Currently there are two models running Meego 1.2 Harmattan:

* '''N950''': this is the developer edition and comes with Python, [http://www.pyside.org PySide] and [http://www.pyside.org/docs/pyside-mobility/ bindings for QtMobility] already installed.
* '''N9''': this is the mass-market end-user device. Development packages does not come pre-installed. See below how to install Python on it!

==== Developer mode ====

Meego 1.2 Harmattan has a special mode - [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/guide/html/Developer_Library_Developing_for_Harmattan_Activating_developer_mode_1fa5.html Developer Mode] - that enables connectivity between the device and the software development kit (SDK) running on the host. This mode is useful to test applications into device as you develop. Follow the instructions [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/guide/html/Developer_Library_Developing_for_Harmattan_Activating_developer_mode_1fa5.html here] to enable/disable it.

Once you have got connected to the device using e.g. ssh, you can use ''devel-su'' command to become superuser. Use '''rootme''' as password and you become root.

 &lt;nowiki&gt;
$ devel-su
Password:
&lt;/nowiki&gt;

However, this will not allow you to execute unregistered scripts or applications. See section ''Security framework'' below to get more information about security on MeeGo 1.2 Harmattan environment.

==== Installing only Python ====

Following the steps shown in the last section you will be able to use ''apt-get''. This application is responsible for package handling on Debian like distributions. If you want to install other modules, like bindings for Qt and QtMobility, see the topic below. As they depend on Python, it will be automatically installed too - there is no need to install just Python before them.


To have only Python installed on your device, run:

 &lt;nowiki&gt;
$ apt-get update
...

$ apt-get install python
&lt;/nowiki&gt;

Welcome to the Python world!

==== Installing other Python-related packages ====

MeeGo 1.2 Harmattan platform uses [http://library.developer.nokia.com/topic/MeeGo_1.2_Harmattan_API/html/guide/html/Developer_Library_Application_development_framework_ebcf.html QtQuick] as its preferred method to develop interfaces. The [http://www.pyside.org PySide] project provides Python bindings for Qt allowing Python developers to develop their interfaces. [http://developer.qt.nokia.com/wiki/PySideDocumentation/ Here] you can find useful information on how to develop using PySide/QtQuick/QML. If you plan to develop applications that use just Qt (without QML) they will not integrate (use and feel) with the native interface.

To install these new packages you can continue from the same terminal opened in the last section. Again, use ''apt-get'' to install all the needed packages:

 &lt;nowiki&gt;
# Install PySide:
$ apt-get install python-pyside
&lt;/nowiki&gt;

There are also [http://developer.qt.nokia.com/wiki/PySideDocumentation/#704d2ca247b8787c6738c5a47d3f98ec bindings] for [http://doc.qt.nokia.com/qtmobility-1.2/index.html QtMobility]. To install them:

 &lt;nowiki&gt;
# Install PySide-QtMobility
$ apt-get install python-qtmobility
&lt;/nowiki&gt;

There are some other modules already ported / being ported and the easiest way to install all of them is:

 &lt;nowiki&gt;
# Install all available python bindings
$ apt-get install python-modules-all
&lt;/nowiki&gt;

== Tasting PySide/QML ==

If you have skipped any of the previous sections and have PySide installed you can see here an [http://developer.qt.nokia.com/wiki/Hello_World_in_PySide_and_QtQuick example] taken from PySide documentation website. 

[http://doc.qt.nokia.com/4.7/qdeclarativeintroduction.html QML] is a declarative language designed to describe the user interface of a program: both what it looks like, and how it behaves. In QML, a user interface is specified as a tree of objects with properties. In this tutorial we will show how you can make a simple Hello World application with PySide and QML.

A PySide/QML application consists, at least, of two different files – a file with the QML description of the user interface, and a python file which loads the qml file. To avoid problems for now, don’t forget to save both files in the same folder.

Here is a simple QML file, called ''view.qml'':

 &lt;nowiki&gt;
import Qt 4.7
 
Rectangle {
    width: 200
    height: 200
    color: &quot;red&quot;
 
    Text {
        text: &quot;Hello World&quot;
        anchors.centerIn: parent
    }
}
&lt;/nowiki&gt;

We start by importing Qt 4.7. As it is pretended that QtQuick has a different build schedule than Qt/PySide, in the near future you will have to change this to import QtQuick 1.0. But for now, it works as is.

The rest of the QML code, is pretty straigthforward for those who have used previously HTML or XML files. Basically, we are creating a red rectangle with the size ''200*200'' and, inside that rectangle, we are adding a Text element which says ''Hello World''. The code ''anchors.centerIn: parent'' just makes the text appear centered in relation to its imediate parent.

Now, let’s see how the code looks on the PySide. Let’s call it main.py:

 &lt;nowiki&gt;
#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtDeclarative import QDeclarativeView
 
# Create Qt application and the QDeclarative view
app = QApplication(sys.argv)
view = QDeclarativeView()
# Create an URL to the QML file
url = QUrl('view.qml')
# Set the QML file and show
view.setSource(url)
view.show()
# Enter Qt main loop
sys.exit(app.exec_())
&lt;/nowiki&gt;

To run the example remember to use:

 &lt;nowiki&gt;
$ python ./main.py
&lt;/nowiki&gt;

As this script is not packaged/registered it will fail if you call just ''./main.py''. The next section better explains these concepts.

If you are already familiar with PySide and have followed our tutorials, much of this code is already familiar. The only novelties is that you must import QDeclarativeView and set the source of the QDeclarativeView object to the URL of your QML file. Then, as any Qt widget, you call ''QDeclarativeView.show()''.

Take your time exploring this example. You can try to do basic things as changing the colors, the text, or set other properties to each element, setting a radius on the rectangle color. Check the elements and their properties in [http://doc.qt.nokia.com/4.7/qdeclarativeelements.html QML Elements].

== Security framework for Python scripts ==

To run applications (binaries and scripts) it is necessary to follow some security guidelines. Information about the implications of the security framework for applications in general can be found [https://projects.maemo.org/mediawiki/index.php/Developer_Library/Developing_for_Harmattan/Harmattan_security here].

Without a proper package it will not be possible to run executable Python scripts without pre-pending ''python''. The following call would fail:

 &lt;nowiki&gt;
$ ./dosomething.py
-sh: ./dosomething.py: Permission denied
&lt;/nowiki&gt;

However, using the Python interpreter for calling the script works as expected:

 &lt;nowiki&gt;
$ python ./dosomething.py
&lt;/nowiki&gt;

The next section shows how to package your Python application.


'''Note:''' if the script is modified after it is installed it will fail to run!

== Packaging ==

As explained in the previous section there are some restrictions to run applications/scripts. Your application has to be installed from a Debian package.

The easiest way to create Python packages for MeeGo 1.2 Harmattan is to use ''pyside-assistant''. After a few steps you will have a Debian package ready to be installed. You will have to inform all the resources that your application needs - avoiding problems with the Security Framework. To see all supported features and how to use ''pyside-assistant'', including an example, follow this [[Documentation_for_pyside-assistant|link]].</text>
    </revision>
  </page>
  <page>
    <title>Python/Harmattan/Performance Considerations for Python Apps</title>
    <id>4115</id>
    <revision>
      <id>45840</id>
      <timestamp>2011-11-24T17:52:31Z</timestamp>
      <contributor>
        <username>wmoreira</username>
        <id>4818</id>
      </contributor>
      <minor/>
      <comment>[[Performance Considerations for Python Apps]] moved to [[Python/Harmattan/Performance Considerations for Python Apps]]</comment>
      <text xml:space="preserve">Based on [http://talk.maemo.org/showthread.php?t=50737&amp;highlight=fmms Making Python faster (for fmms initially)] and [http://talk.maemo.org/showthread.php?t=47850 Python Qt startup time tips]

See the [http://wiki.python.org/moin/PythonSpeed/PerformanceTips python.org page] and [http://talk.maemo.org/showpost.php?p=623199&amp;postcount=18 Khertan's writeup] for general Python optimizations.

== Profiling ==

Do not worry about performance unless you notice a problem. Then only optimize what you can justify with profiling.

To profile Python code, run it with
 $ python -m cProfile -o .profile TOPLEVEL_SCRIPT.py
To then analyze the results
 $ python -m pstats .profile
 &gt; sort cumulative
 &gt; stats 40

That sorted the results by the time it took for a function and all the functions it called.  It then displays the top 40 results.

See the [http://docs.python.org/library/profile.html python.org page] for more information on profiling

== Improving Performance ==

=== Interpreter Choice ===

==== Unladen Swallow ====

[http://www.python.org/dev/peps/pep-3146/ PEP 3146 - Merging of Unladen Swallow]

Currently Unladen Swallow has not seen too much performance benefit but has a longer start up time and takes more memory

==== Psyco / Cython ====

Compiles a restricted subset of python into a Python extension model

Do these work with Arm?

==== ShedSkin ====
ShedSkin is a tool to convert a restricted subset of python into C++.
This then can get compiled and used as a module in python.
Tests have shown that there are great speed improvements possible.
You dont need any knowledge in C or how to use gcc.
{{main|ShedSkin}}

==== Delegating to C with CTypes/SWIG ====

??

=== Startup ===

==== /usr/bin/python Startup ====

Preloaders exists like [http://pylauncher.garage.maemo.org/ PyLauncher] that keep a python process around with heavy weight imports like gtk already imported. On application launch it forks the preloader process.

Preloaders were favored back in the Maemo 4.1 days but has fallen out of favor lately. Concerns center around always keeping an unused python process with heavy pieces of code imported always around [http://talk.maemo.org/showpost.php?p=622358&amp;postcount=10].

==== Parsing .py files ====

===== Stripping the Code =====

A major downside is that the code that your users is running is different than the code you develop with. This means any stack traces that users provide will be a bit more complicated to decipher.

Benchmarks from stripping code[http://talk.maemo.org/showpost.php?p=627311&amp;postcount=28]

First test - normal code
 2104 lines of code
 580 blank lines
 215 code lines
 Load time from icon click to fully loaded - 10.04 seconds

Second Test - Cleared up code
 2104 lines of code
 0 blank lines
 80 code lines
 Load time from icon click to fully loaded - 9.25 seconds

Third - Cleared up code!!
 1469 lines of code
 0 blank lines
 80 code lines
 Load time from icon click to fully loaded - 8.40 (5 tests , from 8.09 to 8.60)

===== Generating pyc/pyo files =====

Python serializes its state after importing a file to save on re-parsing.  It saves these next to the .py files which means if the user does not have write access, Python will not be able to cache it.

Generating pyc/pyo files should be done as a package postinst/postrm per Debian Python Policy[http://talk.maemo.org/showpost.php?p=628464&amp;postcount=35]

Approaches:

* &lt;code&gt;py_compilefiles src/*.py&lt;/code&gt; [http://talk.maemo.org/showpost.php?p=627477&amp;postcount=31]
* Python-support is even very easy to use, basically just add &lt;code&gt;dh_pysupport&lt;/code&gt; to &lt;code&gt;debian/rules&lt;/code&gt; and &lt;code&gt;python-support&lt;/code&gt; to &lt;code&gt;Build-depends&lt;/code&gt; and &lt;code&gt;Depends&lt;/code&gt;. Just make sure that &lt;code&gt;postinst&lt;/code&gt; has &lt;code&gt;#DEBHELPER#&lt;/code&gt; somewhere [http://talk.maemo.org/showpost.php?p=634286&amp;postcount=52]
* &lt;code&gt;python -m compileall TOPLEVEL.py&lt;/code&gt; [http://talk.maemo.org/showpost.php?p=644005&amp;postcount=60]

===== pyo Files =====

A decent description of pyo files [http://www.network-theory.co.uk/docs/pytut/CompiledPythonfiles.html]
* When the Python interpreter is invoked with the &lt;code&gt;-O&lt;/code&gt; flag, optimized code is generated and stored in ‘&lt;code&gt;.pyo&lt;/code&gt;’ files. The optimizer currently doesn't help much; it only removes assert statements. When &lt;code&gt;-O&lt;/code&gt; is used, all bytecode is optimized; &lt;code&gt;.pyc&lt;/code&gt; files are ignored and &lt;code&gt;.py&lt;/code&gt; files are compiled to optimized bytecode.
* Passing two &lt;code&gt;-O&lt;/code&gt; flags to the Python interpreter (&lt;code&gt;-OO&lt;/code&gt;) will cause the bytecode compiler to perform optimizations that could in some rare cases result in malfunctioning programs. Currently only &lt;code&gt;__doc__&lt;/code&gt; strings are removed from the bytecode, resulting in more compact ‘&lt;code&gt;.pyo&lt;/code&gt;’ files. Since some programs may rely on having these available, you should only use this option if you know what you're doing.
* A program doesn't run any faster when it is read from a ‘&lt;code&gt;.pyc&lt;/code&gt;’ or ‘&lt;code&gt;.pyo&lt;/code&gt;’ file than when it is read from a ‘&lt;code&gt;.py&lt;/code&gt;’ file; the only thing that's faster about ‘&lt;code&gt;.pyc&lt;/code&gt;’ or ‘&lt;code&gt;.pyo&lt;/code&gt;’ files is the speed with which they are loaded.
* When a script is run by giving its name on the command line, the bytecode for the script is never written to a ‘&lt;code&gt;.pyc&lt;/code&gt;’ or ‘&lt;code&gt;.pyo&lt;/code&gt;’ file. Thus, the startup time of a script may be reduced by moving most of its code to a module and having a small bootstrap script that imports that module. It is also possible to name a ‘&lt;code&gt;.pyc&lt;/code&gt;’ or ‘&lt;code&gt;.pyo&lt;/code&gt;’ file directly on the command line.
* The module ‘&lt;code&gt;compileall&lt;/code&gt;’{} can create ‘&lt;code&gt;.pyc&lt;/code&gt;’ files (or ‘&lt;code&gt;.pyo&lt;/code&gt;’ files when &lt;code&gt;-O&lt;/code&gt; is used) for all modules in a directory.

==== Delayed work ====

With Dialcentral, epage found that caching off results from a good number of &quot;re.compile&quot; at object creation time (which occurs in a background thread) saved a significant amount on startup.  Even with profiling until the background thread is finished showed a speed up. epage suspects this is due to fewer class variable assignments / queries which might be more expensive then the equivalent on a instance.

Sadly this was done earlier in the Dialcentral release cycle and no performance numbers are available to back up these claims. It was considered significant enough at the time to make the code slightly uglier.

==== Perceived Startup Performance ====

[http://lists.maemo.org/pipermail/maemo-developers/2009-October/021478.html hildon_gtk_window_take_screenshot] takes advantage of user perception to make the user think the app is launched faster.

=== Responsiveness ===

==== Thread per Logical Unit ====

The One Ring has separate threads for its D-Bus logic and its networking logic. It does this separation through a worker thread that the D-Bus thread posts tasks to. Results come as callbacks in the D-Bus thread.

See [https://garage.maemo.org/plugins/ggit/browse.php/?p=theonering;a=blob;f=src/util/go_utils.py;h=20ccac19201a4eae1b019fe2861e120b92010f55;hb=835f22ccd4b8e357bcbbc364d451e98721401e72 AsyncLinearExecutor] and some [https://garage.maemo.org/plugins/ggit/browse.php/?p=theonering;a=blob;f=src/channel/call.py;h=aefc59861a1cede286d4094bf8fc35101f2ff19d;hb=835f22ccd4b8e357bcbbc364d451e98721401e72 example code]

==== Splitting a call between multiple callbacks ====

See [http://talk.maemo.org/showpost.php?p=623199&amp;postcount=18 Khertan's approach]

epage's approach[https://garage.maemo.org/plugins/ggit/browse.php/?p=gc-dialer;a=blob;f=src/gtk_toolbox.py;h=17dc166b5c37c5d15efc6eb7baef52b3250544ac;hb=a0b504bcfb10c73989fbb8578f073e81f4f7edbd]:
&lt;source lang=&quot;python&quot;&gt;
 def make_idler(func):
         &quot;&quot;&quot;
         Decorator that makes a generator-function into a function that will continue execution on next call
         &quot;&quot;&quot;
         a = []
         @functools.wraps(func)
         def decorated_func(*args, **kwds):
                 if not a:
                         a.append(func(*args, **kwds))
                 try:
                         a[0].next()
                         return True
                 except StopIteration:
                         del a[:]
                         return False
         return decorated_func
&lt;/source&gt;

Example
&lt;source lang=&quot;python&quot;&gt;
 @make_idler
 def func(self):
   ... long code ...
   yield
   ... long code ...
   yield
   ... long code ...
   yield
   ... long code ...
   yield
 ...
 callback = make_idler(func)
 gobject.idle_add(callback)
&lt;/source&gt;

=== Memory Usage ===

Use of [http://docs.python.org/reference/datamodel.html#slots slots]

== FAQ ==

=== Is Python slow? ===

The standard response of &quot;it depends&quot;. For a graphical application not doing too much processing a user will probably not notice it is written in Python. Compare that to an experiment by epage in writing a GST video filter in Python that at best ran at 2 seconds per frame.

== Further reading ==

* [[PyQt Tips and Tricks]] - similar guide for PyQt

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>Python/Harmattan/Python 2.6 porting tips</title>
    <id>5049</id>
    <revision>
      <id>45838</id>
      <timestamp>2011-11-24T17:51:55Z</timestamp>
      <contributor>
        <username>wmoreira</username>
        <id>4818</id>
      </contributor>
      <minor/>
      <comment>[[Python 2.6 porting tips]] moved to [[Python/Harmattan/Python 2.6 porting tips]]</comment>
      <text xml:space="preserve">== Introduction ==

Porting a package to support Python 2.6 usually involves making it version agnostic, removing any explicit Python versioning. In Maemo versions prior to Maemo 5, the packages had hardcoded support for Python 2.5, which can be demonstrated by all Python binding packages having &quot;python2.5-&quot; as prefix and consequently Python applications having these names also on their runtime dependencies. As Maemo 5 also used Python 2.5, these packages still worked without much problems, but as MeeGo 1.2 Harmattan uses Python 2.6 they will have to be ported.

== Python 2.6 porting tips ==

* First of all, consider using [[Documentation_for_pyside-assistant|pyside-assistant]] for taking care of the packaging of your application, instead of packaging it by hand. This way you can avoid dealing with various issues regarding Debian packaging and focus mostly in the application itself.
* Any paths that, for some reason, have hardcoded &quot;python2.5&quot; or &quot;site-packages&quot; will have to be changed to &quot;python2.6&quot; and &quot;dist-packages&quot;, as these are the ones used on Python 2.6.
* If your application uses any &lt;code&gt;python2.5&lt;/code&gt; prefixed package as one of its dependencies in any Depends field, you should drop the version number and add the version as a requirement - for example, &lt;code&gt;python2.5&lt;/code&gt; can be changed to &lt;code&gt;python (&gt;= 2.5)&lt;/code&gt; without problems. If this is not possible or not desired, just change the dependencies to their &lt;code&gt;python2.6&lt;/code&gt; counterparts.
* Also, this would be a good time for your package to be named following the new [http://www.debian.org/doc/packaging-manuals/python-policy Debian Python Policy] - the Policy states that Python packages must not have a fixed version number on its name (e.g. prefer python-foo instead of python2.6-foo).
* One very particular case where changes are required is when some Python script uses identifiers that became reserved keywords in Python 2.6. As an example, old versions of python-xml had this issue, where the &lt;code&gt;as&lt;/code&gt; identifier (which became a reserved keyword in Python 2.6) was being used as variable name in some places. If these occurrences are not replaced, running the script will result in syntax errors.</text>
    </revision>
  </page>
  <page>
    <title>Python 2.6 porting tips</title>
    <id>5058</id>
    <revision>
      <id>45839</id>
      <timestamp>2011-11-24T17:51:55Z</timestamp>
      <contributor>
        <username>wmoreira</username>
        <id>4818</id>
      </contributor>
      <comment>[[Python 2.6 porting tips]] moved to [[Python/Harmattan/Python 2.6 porting tips]]</comment>
      <text xml:space="preserve">#REDIRECT [[Python/Harmattan/Python 2.6 porting tips]]</text>
    </revision>
  </page>
  <page>
    <title>QA meeting</title>
    <id>2921</id>
    <revision>
      <id>36635</id>
      <timestamp>2010-07-12T07:53:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify</comment>
      <text xml:space="preserve">==QA Meeting Agenda==

Please place the things you wish to discuss at the QA meeting on [[IRC]] below. 

'''In the next meeting...'''
* I want to discuss how to integrate Fennec as 3rd party app into bugs.maemo.org
**Do we need ttis integration? Why bugzilla.mozilla.org is not enough?
**What are alternatives?
**There is already [https://bugzilla.mozilla.org/show_bug.cgi?id=526798 an open bug for this issue]. Feel free to add your thoughts!
*How to build a bridge between bugs.maemo.org and [http://maemo.org/packages/repository/qa/fremantle_extras-testing/ the package voting system]
**As somebody fills bug reports normaly only if I found a bug during normal daily use it would be nice to have a link to the application packge to vote for.
--[[User:jukey|jukey]] 19:18, 11 November 2009 (UTC)

==Meeting details==

* IRC: irc.freenode.org
* Channel: #maemo-meeting
* Time: Tuesday, November 10th, 14:30 UTC

===Agenda===

* QA is good.
* The criteria are a good start, but need tweaks 
* The packages UI needs some streamlining for testers.
* As a tester, a better reminder of the checklist when checking would be good. I also like the ease with which I can give feedback.
* As a developer, I don't *think* I want to be constrained with &quot;release early, release often&quot; when fixing bugs or introducing new small features.
* We need a mechanism to preserve karma or reset it to zero.
* Discuss the possibility of PPAs or personal repositories.
* specific bug report should always be required to block a package from entering Extras.
* Developer's karma and tester's karma should be incorporated so that a &quot;developer with high karma would be able to push packages through the process faster, and a high rolling tester would be able keep bugs open and classified as critical in case of disagreement.&quot;
* Bugtracker field should be a blocker ? what about background packages ?
* What to do with CLI apps ?
* Allow people to vote multiple time.
'''Actionable items'''

# We recommend lowering acceptable karma from 10 to 5.
# Thumbs down requires a comment as well.
# Testers should follow the checklist closely so it is clear what the testing criteria are.
# Positive package karma gets preserved for bug fixes, cosmetic changes.
# Allow people to cast more than one vote for a package.
# App authors should be *prevented* from thumbing up own app and that a maintainer thumbing it down removes it from the QA list
# PPAs are bad.
# Without an application, libraries do not go through the QA process. tester logs in, reviews app metadata on web, installs via .install, tests and then votes ;-)

===Wishlist===

# Approval interface available in Application Manager.
# User clicks a series of checkboxes, the app gets promoted automatically.

[[Category:Community]]
[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>QML</title>
    <id>3087</id>
    <revision>
      <id>46521</id>
      <timestamp>2012-01-26T12:06:41Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/124.6.181.161|124.6.181.161]] ([[User talk:124.6.181.161|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">[[Category:Qt]]
[[Category:Development]]
== QML on N900 ==

=== Introduction ===
QML is the latest experimental feature based on Qt 4.6. If you don't know QML yet, probably you would like to look at demo [http://labs.trolltech.com/blogs/2009/11/04/qt-declarative-binaries/ here].

It's a Javascript like language and allow you to build your own application rapidly. And yes, you don't need to really care about your development platform too much. All you need to do is using QmlViewer to examine your code. That's pretty much the same when you run on the device (though might be slightly different because of resolution and performance. And note that currently it's still highly experimental!)

A small example on QML use [[QML-EnhancedCalcExample]]

== QtScript ==
[http://doc.trolltech.com/4.6/qtscript.html Qt Script 4.6]

[http://qt.linux-life.net/4/doc/ja/porting-qsa.html Tutorial on Qt Scripting]

=== Binary Package ===
Binary package is available on [[Extras-devel|extras-devel]] now:
* libqt4-maemo5-declarative: The QtDeclarative library
* libqt4-maemo5-declarative-dev: The development package, contains the headers for QtDeclarative
* libqt4-maemo5-declarative-dbg: The debugging symbols, for more meaningful backtraces
* qt4-maemo5-declarative-qmlviewer: The “player” for QML based apps
* qt4-maemo5-samegame: The SameGame demo

To install qt4-maemo5-samegame example, simple type the command within your console with root permission:
&lt;code&gt;apt-get install qt4-maemo5-samegame&lt;/code&gt;

=== Building Qt 4.6 with QML ===
To build Qt with QML support on N900, you need a 32-bit Linux box (better choice is Ubuntu, I am using Karmic, but you can use other versions as well).

I assumed you already have Maemo SDK running (also Nokia closed binary with SGX). Now it's time to download [http://qt.gitorious.org/+qt-kinetic-developers/qt/kinetic/commits/kinetic-declarativeui Qt-declarative UI branch].

Once you unpack it within your scratchbox, say ''~/qt-kinetic'', create a build directory anywhere you like, e.g.: ''~/qt-build'', then do the following within scratchbox: 

# Execute &lt;code&gt; export PKG_CONFIG_PATH=/usr/lib/pkgconfig; export PKG_CONFIG_SYSROOT=/ &lt;/code&gt;
# Edit ''~/qt-kinetic/mkspecs/common/g++.conf'', and remove &lt;code&gt; -fvisibility=hidden -fvisibility-inlines-hidden&lt;/code&gt;, otherwise qemu would crash during compiling.
# Configure Qt with &lt;code&gt;~/qt-kinetic/configure -platform linux-g++ -release -opengl es -webkit -force-pkg-config --prefix=/opt/qt&lt;/code&gt;
# &lt;code&gt;make&lt;/code&gt;
# &lt;code&gt;make install&lt;/code&gt;


It will take a whole day to compile this sexy devil. Make sure you have brewed the coffee. In case of running into linking problem (or you have trouble to pass EGL test), please try &lt;code&gt;export SUBLIBS='-lX11 -lXau -lEGL -lGLESv2 ...'&lt;/code&gt;, throwing whatever GCC complains what's missing (I left my laptop in the office, forgive me I am typing this in my plain memory).

Now, you should have the Qt 4.6 DUI binary sitting in your scratchbox. You can either copy those binaries under ''/opt/qt'' to your device or mount it as NFS.

=== Test Run on Device ===
On this stage, you should be able to write your first QML application.

&lt;code&gt;&lt;pre&gt;&lt;nowiki&gt;
#include &lt;QtGui/QApplication&gt;
#include &lt;QmlView&gt;
#include &lt;QUrl&gt;
#include &lt;QGLWidget&gt;

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QmlView *canvas = new QmlView;
    QGLFormat format = QGLFormat::defaultFormat();
    format.setSampleBuffers(false);
    QGLWidget *glWidget = new QGLWidget(format); // make QmlView use OpenGL ES2 backend.
    glWidget-&gt;setAutoFillBackground(false);
    canvas-&gt;setViewport(glWidget);
    canvas-&gt;setUrl(QUrl::fromLocalFile(&quot;/home/user/demos/declarative/flickr/flickr-desktop.qml&quot;)); // wherever your qml file is.
    canvas-&gt;execute();
    canvas-&gt;show();

    return a.exec();
}&lt;/nowiki&gt;&lt;/pre&gt;&lt;/code&gt;

Then you will see the program running as same as this [http://labs.trolltech.com/blogs/2009/05/13/qt-declarative-ui/ demo].

Some screenshots running on N900:

[[Image:Screenshot1.png|400px]]
[[Image:Screenshot2.png|400px]]
[[Image:Screenshot3.png|400px]]

=== Conclusion ===

Finally, here are some few notices / limitation of current Qt4.6-QML:
* Performance is not that great yet. You may suffer some tearing issues. Write your Qt app in full screen mode will give you some boost. Another alternative is turning off hildon-desktop (gives you 40-50 fps on the device):
 $ dsmetool -k /usr/bin/hildon-desktop
To turn back on:
 $ dsmetool -t /usr/bin/hildon-desktop
* On PR1.1 and onwards all fullscreen applications are automatically non-composited, so no trickery like the above is needed on N900 once that drops to end users devices. 
* Document is bundle inside the source tree. Execute the following command will generate proper document for you:
 $ make docs
* &lt;code&gt;-webkit&lt;/code&gt; may crash your qmlviewer under N900 if you wish to try. That's why I wrote the code with QmlView binding. If you want to play with qmlviewer, please remove &lt;code&gt;-webkit&lt;/code&gt; from your configuration.
* All credits go to Qt team. Thanks for their help on technical support. If you have any questions / comments, please don't hesitate to visit [http://labs.trolltech.com/page/Projects/Graphics/Kinetic QML Team] and give response.
* Happy hacking!

=== External Link ===
* [http://labs.trolltech.com/blogs/2009/12/17/qt-declarative-for-maemo-5/ Qt Labs Blogs: Qt Declarative for Maemo 5]
* [http://labs.trolltech.com/forums/forum/14 Qt Declarative UI Team Forum]</text>
    </revision>
  </page>
  <page>
    <title>QML-EnhancedCalcExample</title>
    <id>3312</id>
    <revision>
      <id>35841</id>
      <timestamp>2010-06-15T17:05:50Z</timestamp>
      <contributor>
        <ip>88.113.8.125</ip>
      </contributor>
      <comment>/* CalcButton */</comment>
      <text xml:space="preserve">{{expand}}

== About the Enhanced Calc Example ==

See [http://www.youtube.com/watch?v=BGmw2IjLLv0&amp;feature=player_embedded Youtube video] for demo of the app.


Source code available from [http://qmlexamples.garage.maemo.org/ qml examples garage page]

== Calculator.qml ==

The file below defines the layouts of the calculator. It uses the button below to draw nice looking button shape, that has glow effect. 

&lt;source lang=&quot;javascript&quot;&gt;
import Qt 4.6

 Rectangle {
    width: parent.width; height: 480; color: palette.window
    anchors.fill: parent;
    SystemPalette { id: palette }
    Script { source: &quot;calculator.js&quot; }
&lt;/source&gt;

We use the system palette for colors and the calculator.js file for all of the calculation logic. 

&lt;source lang=&quot;javascript&quot;&gt;
    Column {
        x: 2; spacing: 2;
        Row {
          id: numericOperations
          spacing: 2
&lt;/source&gt;

We use column layout for the numeric operations (the field that shows the calculations) layout, with small indentation (2 px) and small padding. 

&lt;source lang=&quot;javascript&quot;&gt;
          Rectangle {
              id: container
              width: 400; height: 55
              border.color: palette.dark; color: palette.base
  
              Text {
                  id: curNum
                  font.bold: true; font.pointSize: 22
                  color: palette.text
                  anchors.right: container.right
                  anchors.rightMargin: 5
                  anchors.verticalCenter: container.verticalCenter
              }
  
              Text {
                  id: currentOperation
                  color: palette.text
                  font.bold: true; font.pointSize: 26
                  anchors.left: container.left
                  anchors.leftMargin: 5
                  anchors.verticalCenter: container.verticalCenter
              }
              
          }
          CalcButton { operation: &quot;Bksp&quot;; id: bksp; opacity: 0 }
        }
&lt;/source&gt;

The Text area for the calculations, surrounded by dark border, with two text areas: the operation and the value. The operation (e.g. &quot;*&quot; to signal multiplication, is anchored left, and the calculation is anchored to the right.

&lt;source lang=&quot;javascript&quot;&gt;
        Item {
            height:460; width: 420;
 
            Item {
                id: basicButtons
                x: 55; width: 460; height: 400
&lt;/source&gt;

The above defines the compound item of the basicButtons. The actual buttons are defined below. We intend by default this with 55 so that the buttons in basic layout don't feel like they are in the left side of the screen. This padding is changed in the transition to advanced layout.                

&lt;source lang=&quot;javascript&quot;&gt;
                Row {
                    id: commonOperations
                    spacing: 0
                    height:150
                        
                    CalcButton { 
                        operation: &quot;Advanced&quot;
                        id: advancedCheckBox
                        width: 160
                        toggable: true
                    }
                    CalcButton { operation: &quot;C&quot;; id: c; }
                    CalcButton { operation: &quot;AC&quot;; id: ac;}
                    
                }
&lt;/source&gt;

Common operations to clean the calculations are on one row, along with special wider toggle button for advanced mode. 

&lt;source lang=&quot;javascript&quot;&gt;
                Grid {
                    id: numKeypad; y:60; spacing: 0; columns: 3
                    CalcButton { operation: &quot;7&quot; }
                    CalcButton { operation: &quot;8&quot; }
                    CalcButton { operation: &quot;9&quot; }
                    CalcButton { operation: &quot;4&quot; }
                    CalcButton { operation: &quot;5&quot; }
                    CalcButton { operation: &quot;6&quot; }
                    CalcButton { operation: &quot;1&quot; }
                    CalcButton { operation: &quot;2&quot; }
                    CalcButton { operation: &quot;3&quot; }
                    CalcButton { operation: &quot;0&quot; }
                    CalcButton { operation: &quot;.&quot; }
                    CalcButton { operation: &quot;=&quot; }                    
                }
&lt;/source&gt;

Normal numbers and . and = keys are in grid layout

&lt;source lang=&quot;javascript&quot;&gt;
                Column {
                    id: simpleOperations
                    x: 240;  y: 60; spacing: 0
                    CalcButton { operation: &quot;x&quot; }
                    CalcButton { operation: &quot;/&quot; }
                    CalcButton { operation: &quot;-&quot; }
                    CalcButton { operation: &quot;+&quot; }
                }
            }
&lt;/source&gt;

Basic calculation operations are in one column (for easy layouting).

&lt;source lang=&quot;javascript&quot;&gt;
            Grid {
                id: advancedButtons
                x: 250; spacing: 0; columns: 2; opacity: 0
                CalcButton { operation: &quot;Abs&quot; }
                CalcButton { operation: &quot;Int&quot; }
                CalcButton { operation: &quot;MC&quot; }
                CalcButton { operation: &quot;Sqrt&quot; }
                CalcButton { operation: &quot;MR&quot; }
                CalcButton { operation: &quot;^2&quot; }
                CalcButton { operation: &quot;MS&quot; }
                CalcButton { operation: &quot;1/x&quot; }
                CalcButton { operation: &quot;M+&quot; }
                CalcButton { operation: &quot;+/-&quot; }
            }
            Row {
              id: trigonometryOperations
              spacing: 0;opacity: 0;y: 280;x:40
              CalcButton { operation: &quot;Sin&quot; }
              CalcButton { operation: &quot;Cos&quot; }
              CalcButton { operation: &quot;Tan&quot; }
              CalcButton { operation: &quot;Log&quot; }
              CalcButton { operation: &quot;e^x&quot; }
              CalcButton { operation: &quot;x^y&quot; }
            }
&lt;/source&gt;

Advanced operations are in 2x5 grid and trigonometry operations are on one row. Easy positioning of those compound elements.

&lt;source lang=&quot;javascript&quot;&gt;
        }
    }

    states: State {
        name: &quot;Advanced&quot;; when: advancedCheckBox.toggled == true
        PropertyChanges { target: basicButtons; x: 0 }
        PropertyChanges { target: bksp; opacity: 1 }
        PropertyChanges { target: commonOperations; x: 0;  }
        PropertyChanges { target: advancedButtons; x: 320; opacity: 1 }
        PropertyChanges { target: trigonometryOperations; x:0; y: 300; opacity: 1 }
        
    }
&lt;/source&gt;

States definition for advanced mode. Basic mode doesn't need to be defined, as we have defined that already as the default mode of operation. For advanced state, we modify the backspace to be visible, we move basic buttons a bit, we enable advanced and trigonometry buttons and move them a bit for visual candy.

&lt;source lang=&quot;javascript&quot;&gt;
    transitions: Transition {
        NumberAnimation { matchProperties: &quot;x,y,width&quot;; easing: &quot;easeOutBounce&quot;; duration: 500 }
        NumberAnimation { matchProperties: &quot;opacity&quot;; easing: &quot;easeInOutQuad&quot;; duration: 500 }
    }
 }
&lt;/source&gt;

Above defines the animations for the transition to and from advanced mode.

== CalcButton ==
The code below makes a button that has a glow effect when tapped on. 

&lt;source lang=&quot;javascript&quot;&gt;
import Qt 4.6


 Rectangle {
    property alias operation: label.text
    property bool toggable: false
    property bool toggled: false
    signal clicked
    id: button; width: 80; height: 60
    color: &quot;black&quot;      
    BorderImage {
      id: img
      width: parent.width
      height: parent.height
      border.left: 14
      border.right: 14      
      source:&quot;Button_h.png&quot;
      transformOrigin: Item.Center  
      
    }
    
    BorderImage {
      id: bgimg
      width: parent.width
      height: parent.height
      border.left: 14
      border.right: 14      
      source:&quot;Button.png&quot;  
    }
    Text { id: label; anchors.centerIn: parent; color: palette.buttonText }
&lt;/source&gt;

On the above, we define the bg of the button and the highlight of the button. The highlight is img and the bg image is, well, bgimg.

&lt;source lang=&quot;javascript&quot;&gt;
    MouseRegion {
        id: clickRegion
        anchors.fill: parent
        onClicked: {
            doOp(operation);
            button.clicked();
            if (!button.toggable) return;
            button.toggled ? button.toggled = false : button.toggled = true
        }
    }
&lt;/source&gt;

Above handles the mouse clicks.

&lt;source lang=&quot;javascript&quot;&gt;
    states: [
        State {
            name: &quot;Pressed&quot;; when: clickRegion.pressed == true
            PropertyChanges { target: img; scale: 2.0 }
            PropertyChanges { target: button; z: 1 }
            PropertyChanges { target: button.parent; z: 1 }
            PropertyChanges { target: button.parent.parent; z: 1 }
            PropertyChanges { target: img; z: 1.1 }
            PropertyChanges { target: img; opacity: 0 }
            
        }
    ]
&lt;/source&gt;

Above defines state &quot;pressed&quot;, which triggers the highlight to come up all the way, moves all of the parent objects also up in the stack and sets target opacity for the highlight to be 0.

&lt;source lang=&quot;javascript&quot;&gt;
        transitions: Transition {
            NumberAnimation { matchProperties: &quot;z,scale&quot;; easing: &quot;easeOutExpo&quot;; duration: 200 }
            NumberAnimation { matchProperties: &quot;opacity&quot;; easing: &quot;easeInQuad&quot;; duration: 300 }
            
        }
}
&lt;/source&gt;

Above defines the transitions for the button.

== Calculator.js ==

I won't comment the javascript code. It's self explanatory. 


&lt;source lang=&quot;javascript&quot;&gt;
var curVal = 0;
var memory = 0;
var lastOp = &quot;&quot;;
var timer = 0;

function disabled(op) {
    if (op == &quot;.&quot; &amp;&amp; curNum.text.toString().search(/\./) != -1) {
        return true;
    } else if (op == &quot;Sqrt&quot; &amp;&amp;  curNum.text.toString().search(/-/) != -1) {
        return true;
    } else {
        return false;
    }
}

function doOp(op) {
    if (disabled(op)) {
        return;
    }

    if (op.toString().length==1 &amp;&amp; ((op &gt;= &quot;0&quot; &amp;&amp; op &lt;= &quot;9&quot;) || op==&quot;.&quot;) ) {
        if (curNum.text.toString().length &gt;= 14)
            return; // No arbitrary length numbers
        if (lastOp.toString().length == 1 &amp;&amp; ((lastOp &gt;= &quot;0&quot; &amp;&amp; lastOp &lt;= &quot;9&quot;) || lastOp==&quot;.&quot;) ) {
            curNum.text = curNum.text + op.toString();
        } else {
            curNum.text = op;
        }
        lastOp = op;
        return;
    }
    lastOp = op;

    // Pending operations
    if (currentOperation.text == &quot;+&quot;) {
        curNum.text = Number(curNum.text.valueOf()) + Number(curVal.valueOf());
    } else if (currentOperation.text == &quot;-&quot;) {
        curNum.text = Number(curVal) - Number(curNum.text.valueOf());
    } else if (currentOperation.text == &quot;x&quot;) {
        curNum.text = Number(curVal) * Number(curNum.text.valueOf());
    } else if (currentOperation.text == &quot;x^y&quot;) {
        curNum.text = (Math.pow(Number(curVal),curNum.text.valueOf())).toString();
    } else if (currentOperation.text == &quot;/&quot;) {
        curNum.text = Number(Number(curVal) / Number(curNum.text.valueOf())).toString();
    } else if (currentOperation.text == &quot;=&quot;) {
    }

    if (op == &quot;+&quot; || op == &quot;-&quot; || op == &quot;x&quot; || op==&quot;x^y&quot; || op == &quot;/&quot;) {
        currentOperation.text = op;
        curVal = curNum.text.valueOf();
        return;
    }
    curVal = 0;
    currentOperation.text = &quot;&quot;;

    // Immediate operations
    if (op == &quot;1/x&quot;) { // reciprocal
        curNum.text = (1 / curNum.text.valueOf()).toString();
    } else if (op == &quot;^2&quot;) { // squared
        curNum.text = (curNum.text.valueOf() * curNum.text.valueOf()).toString();
    } else if (op == &quot;Abs&quot;) {
        curNum.text = (Math.abs(curNum.text.valueOf())).toString();
    } else if (op == &quot;Sin&quot;) {
        curNum.text = (Math.sin(curNum.text.valueOf())).toString();
    } else if (op == &quot;Cos&quot;) {
        curNum.text = (Math.cos(curNum.text.valueOf())).toString();
    } else if (op == &quot;Tan&quot;) {
        curNum.text = (Math.tan(curNum.text.valueOf())).toString();
    } else if (op == &quot;Log&quot;) {
        curNum.text = (Math.log(curNum.text.valueOf())).toString();
    } else if (op == &quot;e^x&quot;) {
        curNum.text = (Math.exp(curNum.text.valueOf())).toString();
    } else if (op == &quot;Int&quot;) {
        curNum.text = (Math.floor(curNum.text.valueOf())).toString();
    } else if (op == &quot;+/-&quot;) { // plus/minus
        curNum.text = (curNum.text.valueOf() * -1).toString();
    } else if (op == &quot;Sqrt&quot;) { // square root
        curNum.text = (Math.sqrt(curNum.text.valueOf())).toString();
    } else if (op == &quot;MC&quot;) { // memory clear
        memory = 0;
    } else if (op == &quot;M+&quot;) { // memory increment
        memory += curNum.text.valueOf();
    } else if (op == &quot;MR&quot;) { // memory recall
        curNum.text = memory.toString();
    } else if (op == &quot;MS&quot;) { // memory set
        memory = curNum.text.valueOf();
    } else if (op == &quot;Bksp&quot;) {
        curNum.text = curNum.text.toString().slice(0, -1);
    } else if (op == &quot;C&quot;) {
        curNum.text = &quot;0&quot;;
    } else if (op == &quot;AC&quot;) {
        curVal = 0;
        memory = 0;
        lastOp = &quot;&quot;;
        curNum.text =&quot;0&quot;;
    }
}
&lt;/source&gt;

[[Category:Development]]
[[Category:Qt]]</text>
    </revision>
  </page>
  <page>
    <title>QSportsEvent</title>
    <id>3976</id>
    <revision>
      <id>46021</id>
      <timestamp>2011-12-15T06:25:26Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45991 by [[Special:Contributions/114.79.28.10|114.79.28.10]] ([[User talk:114.79.28.10|Talk]]) vandalism/spam</comment>
      <text xml:space="preserve">==Introduction==

This is a page that will hold information about the '''QSportsEvent''' app. The initial versions are targeting updated scores and tables for football (soccer). Future versions will include other sports and additional features. The objective of '''QSportsEvent''' is:

''To maximize the experience of following sports events by leveraging the capabilities of the mobile device.''

The data is retrieved from the [http://www.aragon.ws/soccerdb SoccerDB] site. You are encouraged to make donations to that project. The community is encouraged to suggest additional data sources.

The thread to follow on talk.maemo.org is [http://talk.maemo.org/showthread.php?t=49508 QSportsEvent - FIFA World Cup and Football App].

Please note that by the time the app will hit Extras it will have been renamed to '''MobiTifo'''.

==Installation==

It should now be possible to install MobiTifo/QSportsEvent from [[extras-devel]]! I leave the below, manual installation instructions for the time being until it is confirmed that there are no issues. So far I only have reports from people who already had the app installed. I'd need to know from someone who is doing a 'fresh' install as well.

===Fremantle (Nokia N900)===

This description is now OBSOLETE.

# Manually uninstall any previous versions first (I've never tested installing on top on an existing one)
# Your database will be replaced, so you will loose all your favourites and all URLs you have entered (I will try to figure out a solution for this...)
# The app does use your Internet connection and there is no 'optimization'. The pages and data downloaded are not huge, so there should not be a big problem, but at least you've been warned...
# There is a dependency on &lt;code&gt;libqt4-webkit&lt;/code&gt; and &lt;code&gt;libqt4-xmlpatterns&lt;/code&gt;. If you need it, you have to [[root access|be root]] and once you are, you can do:&lt;pre&gt;apt-get install libqt4-webkit libqt4-xmlpatterns&lt;/pre&gt;
# Install the .deb file manually from [http://www.mobitifo.com/qsportsevent_0.0.8_armel.deb this link] and launch it from the file manager. Please note that I am now hosting it on its own site as the size of the .deb file is larger than what I'm allowed to upload as an attachment to a post on talk.maemo.org.

Please note that, just like with the previous dependency, it seems that the app dies the first time you try to launch it. After that, it should be OK.

If you don't know how to do that you should probably wait for it to appear in the repositories.

===Diablo (Nokia 8xx)===

For Diablo it IS possible to download from Extras-Devel! Some users have reported issues with the 'SQL plugin'. You might have to install the following packages as well to get it to work:
&lt;pre&gt;
apt-get install libqt4-sql-sqlite2 libqt4-sql
&lt;/pre&gt;

==User Guide==

#Select
#Favourites
#Matches
#Table
#News
#Update Score

Future versions of the User Guide might be written as Google Docs.

==UI Customization==
One of the new features is that the UI will be somewhat 'user configurable'. In Qt, stylesheets can be applied to application widgets. These stylesheets can be read from a file and be changed in runtime. There will be a .qsportsevent/user folder where you can put your own matches.css, table.css, select.css, news.css and favourites.css files with the stylesheets to be used in those respective tabs of the application. Instructions as to exactly what and how you can use it can be found in the Qt [http://doc.qt.nokia.com/4.6/stylesheet-syntax.html documentation], [http://thesmithfam.org/blog/2009/09/10/qt-stylesheets-tutorial/ tutorial] and some [http://doc.trolltech.com/4.4/stylesheet-examples.html#customizing-qtableview examples]. As an example, it should be possible for you to change the background image (your favourite team's stadium? a team picture? your girlfriend??) and the appearance of the 'matches' and 'table' tables.

A good source of images would probably be [http://www.futbolwallpapers.com FutbolWallPapers].

Example:
&lt;pre&gt;
background-image: url(/home/user/MyDocs/DCIM/20100501_001.jpg);
&lt;/pre&gt;

In the sample file, the full path is preceeded by a ':' character. You should NOT use it! It is only needed when the item is taken from a Qt resource file. For user customization you will take it directly from the file system, so you shouldn't use that prefix!

The other 'user configurable' feature is the rendering of the RSS feeds. You'll find this file in .qsportsevent/user/rss.xsl.

Find samples in the attachment. Please note that the default implementation has the same stylesheet for all tabs, so I only attach one example. To be able to upload files to TMO, they have to have an 'acceptable' extension, that's why I had to add .txt. You don't need that on the device.

Please note that upgrades to newer versions of QSportsEvent might delete your files that you store in these folders, so please make sure to keep backups of them in other locations!

Be creative! Share screenshots, xsl, css and image files on the forum! I'm more than willing to change the default ones that come with the application with better looking examples provided by the community!

Please note that this is very experimental! I have barely tested it myself! I include it mainly because I don't want to spend too much time on the appearance of the UI and prefer to concentrate on functionality. Besides, implementing the feature only took 15-20 minutes anyway... Ok, it took longer to write these instructions :)

I can't guarantee that this feature will remain in the app, but I don't see any reason why not...

==Release Plans==

Version '''0.0.5''' (Previous) was downloaded 99 times.

Version '''0.0.6''' (Previous) was downloaded 51 times. It was released on Tuesday 27th April. The main changes were:

#It is now possible to download full league information from SoccerDB, both current and historical data. Two new 'tabs' are available for that purpose: 'Downloaded Matches' and 'Downloaded Table'.
#It is possible to select the round of matches to look at.
#In the 'favourites' tab it is now possible to select a default league. That will be the one that will be opened when QSportsEvent is launched. 
#Background images should now be correct in all tabs. They were not in 0.0.5.
#This version will NOT be uploaded to Extras-Devel (except for Diablo) due to the well known issue with Qt based applications and the non-release of PR1.2.


Version '''0.0.7 - Stadio Olimpico di Roma''' (Previous) was downloaded 81 times. It was released on Thursday 6th May. The main changes were:

#Much faster download of full league results. Now it should take 3-5 seconds.
#In the 'Downloaded Matches' tab is possible to select by Team as well as by round.
#When a RSS URL is selected, an XSL will be applied to it to render it in a readable fashion.
#Partially user configurable UI using Qt widget stylesheets and XSL for the news page.
#Did I mention live scores?

Version '''0.0.8 - Santiago Bernabeu''' (Current) was released on Saturday 22nd May. The main changes are:

#In the 'Downloaded Table' tab, it should be possible to view the table standings for a specific round, not only the most recent situation.
#Chat.
#Predictions.
#UI adjustments.
#Am. Football, Basketball, Baseball, Icehockey and Tennis live scores.
#Slightly optimized network utilization
#New icon and splash screen
#Ability to update SoccerDB results has temporarily been removed due to lack of tabs...

Version '''0.0.9 - San Siro or Allianz Stadium''' (Future) 

#Flag icons instead of country name in the 'regions' of the 'Favourites' tab (Makes the .deb too big and thus exceeding the max size allowed to upload to a post on tmo...) .
#Bugfix version only.
#This will be the candidate for pushing to Extras-Testing. Help will be needed for testing this one.
#If PR1.2 is released, this might make it to Extras-Devel, but don't count on it too much...

Version '''0.1.0''' (Future) 

#This is the one for Extras-Testing and (hopefully...) Extras


Version '''0.1.1''' (Future) 

#Make use of some features from Qt4.6, most notably portrait mode where it makes sense


Version '''0.1.2''' (Future) and others...
#tbd...


Version '''0.2.0''' (Future) 

#This is the 'World Cup ready' version with all the features to allow us to fully enjoy the FIFA World Cup 2010!.

==How to report issues and feature requests==

At the moment, the best way to report issues and suggestion is to post them to the thread on talk.maemo.org or to send an email to qsportsevent@gmail.com.

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>QTMapWidget</title>
    <id>4243</id>
    <revision>
      <id>46019</id>
      <timestamp>2011-12-15T06:24:37Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45989 by [[Special:Contributions/114.79.28.10|114.79.28.10]] ([[User talk:114.79.28.10|Talk]]) vandalism/spam</comment>
      <text xml:space="preserve">This page is intended to collect thoughts about a Qt map widget.

== Why a QTMapWidget? ==

Maemo/Meego devices are mobile GPS based devices. A demand for mapping services is thus very obvious. The current situation in [[Open development/Maemo roadmap/Fremantle|Maemo 5]] shows that leaving this task to the individual developers has several disadvantages for the developer as well for the end user.

=== Disadvantages of current Maemo5 situation ===

In Maemo5 there is no generic map widget. Thus various developers came up with their own solutions. Some of these were based on existing widgets (e.g. osm-gps-map), are ports of previous maemo4 projects (mappero) or are completely new solutions written from scratch. Few of these share the same map widget.

* Every developer had to implement his own solution
* Map tiles are stored/cached in different locations on the device
** Waste of bandwidth (one widget cannot re-use data cached by another one and needs to re-download it)
*** Some map servers have limited bandwidth [http://wiki.openstreetmap.org/wiki/Tile_usage_policy], one unified map widget may allow easier caching at one proxy server of all applications that use it.
** Waste of flash space as the same data is stored separately by different map widgets
* No central place for map cache maintenance
** No way to globally add new map sources
** No way to flush the map tile cache
** No way to prefetch map tiles for offline usage
* Individual look and feel for widgets addressing the same problem
* No interoperability (e.g. one app cannot display the track that was captured while another one was running) 
* Some widgets don't work behind network proxies
* None of the existing widgets is really developer friendly

== Wishlist ==

If you are a developer and are interested in using such a widget. What would be the things you really want to have? What do you explicitly don't want to see in such a widget?

* Support for various map sources
** Classic tile based sources (openstreetmap [http://www.openstreetmap.org], google [http://maps.google.com], yahoo [http://maps.yahoo.com], virtual earth [http://www.bing.com/maps/])
*** Simple/dynamic method to add more sources (also user specific ones like [[Maemo-mapper topomaps]])
** WMS data [http://www.ogc-services.net/]
** Vector data
*** OSM vector data (&quot;planet file&quot; [http://wiki.openstreetmap.org/wiki/Planet.osm])
*** Map data stored by OVI maps [http://maps.ovi.com/]
* Plugin concept for map sources
* Built-in location support, options:
** GPSD: GPS position
** Liblocation: position (GPS, network), compass and gyro
** QT mobility location: position (GPS, network), compass and gyro
** Ability to provide location to main application
* Overlays
** Static overlays (don't move nor zoom with the map)
*** Current position in textual representation
*** Map center (&quot;cross hair&quot;)
*** Scale (metric as well as imperial)
*** Zoom buttons
*** Map source selection
** Dynamic overlays (move and zoom with the map)
*** Waypoints incl. icons
*** Tracks incl. a dynamic one built from GPS data
*** Location indicator (position, direction and precision)
* Separate maintenance tool
** Limit/monitor tile cache size
** Clean tile cache
** Preload tiles for offline usage
** Refresh tiles
** Perhaps as a control panel plugin

== Related resources ==

Qt mobility location [http://labs.trolltech.com/page/Projects/QtMobility]

== Existing widgets ==

We are not the first ones to work with maps under Qt. What projects exist? Can they be re-used? What are their advantages and disadvantages?

=== QMapControl [http://www.medieninf.de/qmapcontrol/] ===

Pros:
* Lightweight
* Runs out of the box on Maemo5
* Supports WMS

Cons:
* Not actively maintained atm
* Lacks basic functionality (GPS integration, live track capture, ...)
* Has some rendering problems under Maemo (track display)
* Google maps integration broken

=== Marble [http://edu.kde.org/marble/] ===

Pros:
* Very active big developer community. Some core developers are involved with the Maemo / MeeGo project already. There are currently 3 GSoC developers working exclusively on Marble. 
* Support for Maemo 5 and MeeGo. Early Maemo 5 packages available.
* Lightweight for what it does (100000LOC).
* Used in KDE as a generic map widget already.
* Supports OpenStreetMap, Google Maps, Yahoo, Custom Server Layouts. Basic WMS support.
* Online Routing support (via e.g. ORS).
* Support for position providers as plugins (gpsd, GeoClue, liblocation).
* Support for KML, GPS (support for OSM in the works).
* Different projections (sphere, Mercator, Equirectangular).
* Qt-Style API throughout the Marble Library.

Cons: 
* Performance improvements for Maemo 5 necessary. However these are in the works.
* While the overall quality of the code is pretty good there is still some legacy code in a few places.
* I am very concerned regarding battery usage with this 3d approach as it puts a huge load (currently 100%) on the CPU even at low refresh rates --[[User:harbaum|harbaum]] 18:40, 12 June 2010 (UTC)

== Count me in! ==

We need some people who would like to contribute. Please state here if you want to contribute some of your time.

Widget coding:
* Till Harbaum

I have an application i'd like to use such a widget in:
* Till Harbaum (tool to visualize contact positions and to track friends)

UI-Design, Mockups:

[[Category:Development]]
[[Category:Qt]]</text>
    </revision>
  </page>
  <page>
    <title>Qsportsevent</title>
    <id>3978</id>
    <revision>
      <id>33294</id>
      <timestamp>2010-04-22T11:52:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Qsportsevent]] moved to [[QSportsEvent]]: Capitalisation same as application title</comment>
      <text xml:space="preserve">#REDIRECT [[QSportsEvent]]</text>
    </revision>
  </page>
  <page>
    <title>Qt</title>
    <id>2060</id>
    <revision>
      <id>23995</id>
      <timestamp>2009-12-04T16:01:55Z</timestamp>
      <contributor>
        <username>gnuton</username>
        <id>225</id>
      </contributor>
      <comment>Redirecting to [[Qt-Maemo]]</comment>
      <text xml:space="preserve">#REDIRECT [[Qt-Maemo]]</text>
    </revision>
  </page>
  <page>
    <title>Qt-Maemo</title>
    <id>3133</id>
    <revision>
      <id>40964</id>
      <timestamp>2010-12-30T10:54:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add logo</comment>
      <text xml:space="preserve">__NOTOC__

[[Image:QtLogos.png|thumb|200px|right|alt=Qt banner|Qt]]

==News==

&lt;b&gt;7 May 10&lt;/b&gt; - Qt 4.7 Beta1 packages for Maemo available [http://labs.trolltech.com/blogs/2010/05/06/new-experimental-qt-47-packages-for-the-n900/ read more]&lt;br/&gt;
&lt;b&gt;27 Apr 10&lt;/b&gt; - [http://labs.trolltech.com/blogs/2010/04/27/qt-mobility-100-package/ Qt Mobility 1.0.0] is out but Maemo5 packages will be available after the PR 1.2. Extras-Devel still hosts old Mobility Beta packages.&lt;br/&gt;
&lt;b&gt;22 Mar 10&lt;/b&gt; - Qt 4.6.2 has replaced Qt 4.5.3 in the SDK [[Maemo 5/PR1.2|PR 1.2]]. Run apt-get update &amp;&amp; apt-get upgrade to update it.&lt;br/&gt;
&lt;b&gt;25 Feb 10&lt;/b&gt; - [http://labs.trolltech.com/blogs/2010/02/24/qt-for-maemo-5-home-screen-widgets/ How to make Qt Desktop Widgets]&lt;br/&gt;
&lt;b&gt;15 Feb 10&lt;/b&gt; - Qt 4.6.2 is out. Qt Mobility (beta1) packages are in extras-devel.&lt;br/&gt;
&lt;b&gt;20 Jan 10&lt;/b&gt; - [http://www.anselmolsm.org/blog/qt-mobile-demos-in-extras-devel/ Qt Mobile Demos in extras-devel]&lt;br/&gt;
&lt;b&gt;19 Jan 10&lt;/b&gt; - [http://qt.nokia.com/developer/qt-for-maemo-developers Qt 4.6 for Maemo 5 going Beta]&lt;br/&gt;
&lt;b&gt;15 Jan 10&lt;/b&gt; - New Qt 4.5.3~git20090723-0maemo6 packages are now in Fremantle [[Maemo_5/PR1.1|PR 1.1]]&lt;br/&gt;
&lt;b&gt;22 Dec 09&lt;/b&gt; - [[MADDE/Qt_Example|Qt example]] for [[MADDE]] ([http://talk.maemo.org/showthread.php?t=38075 talk thread])&lt;br/&gt;
&lt;b&gt;17 Dec 09&lt;/b&gt; - [http://labs.trolltech.com/blogs/2009/12/17/qt-declarative-for-maemo-5/Qt declarative hits Maemo extras-devel repository]&lt;br/&gt;
&lt;b&gt;11 Dec 09&lt;/b&gt; - Bye bye old static web pages.. all our pages are now in the Maemo Wiki. Old website is [http://qt4.garage.maemo.org/index-old.html here]&lt;br/&gt;

==What is Qt?==

Qt (pronounced as the English word &quot;cute&quot;) is a cross-platform application development framework. More information is available at the [http://qt.nokia.com/ Qt website].

==Maemo Qt main features==

* Hildon Style, so applications look like Hildon/GTK+ applications
* Hildon Input Method, so applications can use the virtual keyboard
* Hildon-specific widgets
** Qt 4.6, in [[Maemo 5/PR1.2|Fremantle PR1.2]] has full support

== Maemo Qt in Action ==
* Diablo Maemo Qt
 ADD_HERE_SOME_PICS
* Fremantle Maemo Qt
 ADD HERE SOME PICS

==Supported Maemo devices==

* [[Nokia N800]]/[[Nokia N810|N810]] (OS2008/Maemo4.1/[[Open development/Maemo roadmap/Diablo|Diablo]])
* [[Nokia N900]] (OS2009/Maemo5/[[Open development/Maemo roadmap/Fremantle|Fremantle]])

==Installing Qt==

Qt can be [[Qt4_development#Getting_started|installed in Scratchbox]] for development. For applications that use Qt and are installed via the application manager, the necessary Qt packages will automatically be installed.

==Available and proposed Qt Applications==

If you want to port a Qt application to Maemo or if you want to check if an application you love has been already ported.. [[Qt4HildonApplications|this]] is the place you would like to check.

== Documentation==

=== Qt ===

* [[Qt4 development]] developing with Qt for Maemo
* [[QML]]
* [[QtRuby]]
* [[PyQt Tips and Tricks]]

=== Non-Qt documentation ===

* Fremantle: 
** [http://sw.nokia.com/id/a3187f95-ad88-4233-b0ef-a182da3ec1c7/Hildon_2_2_Widget_UI_Specification_v1_0_en.pdf Hildon 2.2 Widget UI Spec -PDF]
** [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 Guid -PDF]
* Diablo
** ADD_SOMETHING_HERE

=== Further reading ===

* [http://www.forum.nokia.com/Tools_Docs_and_Code/Documentation/Latest.xhtml Forum Nokia Docs] contain Maemo as well as other documentation related to other Nokia platforms
* [http://wiki.forum.nokia.com/index.php/Qt_for_Maemo_Developers_Guide Qt for Maemo Developers Guide, Forum Nokia]
* [http://www.forum.nokia.com/Tools_Docs_and_Code/Documentation/Maemo.xhtml Maemo documentation, mostly about Qt, Forum Nokia]
* [http://doc.trolltech.com/qt-maemo-4.6/how-to-learn-qt.html How to learn Qt, Trolltech]
* [http://qt.nokia.com/developer/books Books] listed at qt.nokia.com
* [http://talk.maemo.org/showthread.php?t=39879 Qt4 hello world with python in 30 minutes]
* [http://wiki.forum.nokia.com/index.php/Qt_application_for_Maemo_with_DBus_support Install D-Bus Service with Qt]
* [[University Course]] (in progress): A syllabus for teaching Qt as an intensive two-week course.

==Bug tracking==

* Diablo &amp; Fremantle Qt 4.5 port
** [https://bugs.maemo.org/buglist.cgi?query_format=specific&amp;order=relevance+desc&amp;bug_status=__open__&amp;product=Qt&amp;content= View bug list]
** [https://bugs.maemo.org/enter_bug.cgi?product=Qt Report a new bug]
* Fremantle Qt 4.6 port
** [http://doc.trolltech.com/4.6/bughowto.html How to report a bug]
** [http://bugreports.qt.nokia.com/secure/CreateIssue!default.jspa Report a new bug]
** [http://bugreports.qt.nokia.com/secure/IssueNavigator.jspa?reset=true&amp;&amp;query=maemo&amp;summary=true&amp;description=true&amp;body=true&amp;environment=true&amp;pid=10510 View bug list]

==Code==

* Qt 4.5 (Diablo)
** http://gitorious.org/+qt-maemo-developers/qt/qt-maemo
* Qt 4.5 (Fremantle)
** http://gitorious.org/+qt-maemo-developers/qt/qt-maemo
* Qt 4.6 (Fremantle)
** http://qt.gitorious.org/qt/x11-maemo

==Get Help==

* Forums
** [http://discussion.forum.nokia.com/forum/forumdisplay.php?f=220 Qt for Maemo Forum Nokia Discussion board]
** [https://garage.maemo.org/forum/?group_id=424 Old qt4.garage.maemo.org forum]
* IRC
** Official Qt for Maemo IRC Channel
** Click [http://webchat.freenode.net/?channels=qt-maemo here] to join the #qt-maemo channel in frenode (irc.freenode.net).

* Mailing list
** [https://garage.maemo.org/mailman/listinfo/qt4-devel Click here to Subscribe to the Qt community ML]

[[Category:Qt]]</text>
    </revision>
  </page>
  <page>
    <title>Qt/Finger Scrolling</title>
    <id>2117</id>
    <revision>
      <id>37718</id>
      <timestamp>2010-08-12T14:07:40Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Qt4 development]]</text>
    </revision>
  </page>
  <page>
    <title>Qt/Packages</title>
    <id>2219</id>
    <revision>
      <id>32754</id>
      <timestamp>2010-04-15T09:02:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Qt4 development]]</text>
    </revision>
  </page>
  <page>
    <title>Qt4</title>
    <id>2110</id>
    <revision>
      <id>32747</id>
      <timestamp>2010-04-15T08:58:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix for move</comment>
      <text xml:space="preserve">#REDIRECT [[Qt4_development]]</text>
    </revision>
  </page>
  <page>
    <title>Qt4Hildon</title>
    <id>1210</id>
    <revision>
      <id>32749</id>
      <timestamp>2010-04-15T08:59:58Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Qt4 development]]</text>
    </revision>
  </page>
  <page>
    <title>Qt4HildonApplications</title>
    <id>3015</id>
    <revision>
      <id>22616</id>
      <timestamp>2009-11-13T17:23:32Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Qt4HildonApplications]] moved to [[Qt4 hildon applications]]: Capitalisation</comment>
      <text xml:space="preserve">#REDIRECT [[Qt4 hildon applications]]</text>
    </revision>
  </page>
  <page>
    <title>Qt4 Development</title>
    <id>3927</id>
    <revision>
      <id>32746</id>
      <timestamp>2010-04-15T08:58:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Qt4 Development]] moved to [[Qt4 development]]: capitalisation</comment>
      <text xml:space="preserve">#REDIRECT [[Qt4 development]]</text>
    </revision>
  </page>
  <page>
    <title>Qt4 Development</title>
    <id>3927</id>
    <revision>
      <id>32746</id>
      <timestamp>2010-04-15T08:58:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Qt4 Development]] moved to [[Qt4 development]]: capitalisation</comment>
      <text xml:space="preserve">#REDIRECT [[Qt4 development]]</text>
    </revision>
  </page>
  <page>
    <title>Qt4 Development</title>
    <id>3927</id>
    <revision>
      <id>32746</id>
      <timestamp>2010-04-15T08:58:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Qt4 Development]] moved to [[Qt4 development]]: capitalisation</comment>
      <text xml:space="preserve">#REDIRECT [[Qt4 development]]</text>
    </revision>
  </page>
  <page>
    <title>Qt4 Hildon</title>
    <id>3921</id>
    <revision>
      <id>32753</id>
      <timestamp>2010-04-15T09:01:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Qt4 development]]</text>
    </revision>
  </page>
  <page>
    <title>Qt4 Hildon</title>
    <id>3921</id>
    <revision>
      <id>32753</id>
      <timestamp>2010-04-15T09:01:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Qt4 development]]</text>
    </revision>
  </page>
  <page>
    <title>Qt4 Hildon/Qt Hildon Widgets</title>
    <id>2391</id>
    <revision>
      <id>28944</id>
      <timestamp>2010-02-11T15:00:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Qt]] and [[Category:Development]]</comment>
      <text xml:space="preserve">[http://qt.nokia.com/developer/qt-for-maemo-developers Qt for Maemo 5] provides Maemo-specific widgets such as PickerButtons and Banners, which are described in the following documentation:
* [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]
* [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]
* [http://www.forum.nokia.com/info/sw.nokia.com/id/e778ba1f-2507-4672-be45-798359a3aea7/Fremantle_Master_Layout_Guide.html Fremantle Master Layout Guide]
* [http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Human_Interface_Guidelines Maemo 5 Human Interface Guidelines] (legacy documentation)
* [http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Graphical_UI_Tutorial Maemo 5 Graphical UI Tutorial] (legacy documentation)

The official Qt documentation provides a list of [http://qt.nokia.com/doc/qt-maemo-4.6/examples-maemo5.html Qt for Maemo 5 examples].

These links may be of use:
* Discussion thread starting [http://www.mail-archive.com/maemo-developers@maemo.org/msg20237.html about here]
* http://maemomm.garage.maemo.org/docs/tutorial/figures/
* https://bugs.maemo.org/show_bug.cgi?id=4625
* https://git.maemo.org/projects/hildon/gitweb?p=hildon;a=summary
* [[Using Fremantle Widgets]] and the [[Talk:Using Fremantle Widgets|talk]] page

[[Category:Qt]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Qt4 Hildon: Packaging Qt application</title>
    <id>1276</id>
    <revision>
      <id>20993</id>
      <timestamp>2009-10-26T01:23:48Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <comment>fix broken redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Packaging a Qt application]]</text>
    </revision>
  </page>
  <page>
    <title>Qt4 Hildon Legacy</title>
    <id>1275</id>
    <revision>
      <id>42559</id>
      <timestamp>2011-03-09T12:08:17Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add Qt syntax highlighting, use &lt;code&gt;</comment>
      <text xml:space="preserve">== Introduction ==

To develop with [[Qt-Maemo|Qt for Maemo]], a working SDK installation is required. There are [[Documentation/Maemo_5_Final_SDK_Installation|instructions on how to install the Maemo SDK]], and you can [http://www.youtube.com/watch?v=c8myh_iBy8k watch the Maemo SDK in action]. Alternatively, you may want to try [[MADDE]], a cross-platform Maemo development tool, available as a technology preview.

== Maemo platform ==

The Maemo platform is the software stack for Nokia Internet Tablets, which includes the Maemo operating system and the Maemo SDK. The Maemo Platform is mostly based on open source code, and has been developed by the Maemo Software department within Nokia in collaboration with many open source projects such as the Linux kernel, Debian, [[Hildon]] and GNOME.

Read more about [http://maemo.org/intro/platform/ the Maemo platform] and a [http://maemo.org/intro/developer_overview/ developer overview].

== Getting started ==

To start to develop with Maemo Qt, we need to [[Documentation/Maemo_5_Final_SDK_Installation|install the Maemo SDK]].

=== Installing Qt packages in Scratchbox ===
Maemo Qt developers offers a set of Qt packages for [[Open development/Maemo roadmap/Fremantle|Fremantle]] (Maemo5 - OS2009) and [[Open development/Maemo roadmap/Diablo|Diablo]] (Maemo4.1 - OS2008).

=== Fremantle ===
You do not need to add any extra repository for Fremantle since Qt packages are already available in the SDK. You can install Qt with the command:
 fakeroot apt-get install libqt4-dev

==== Using Qt 4.6 in Fremantle ====

Since the [[Maemo 5/PR1.2|PR1.2]] release Qt 4.6 is available in public Fremantle repository. To upgrade older Scratchbox targets to use the latest packages execute the following commands:
 fakeroot apt-get update
 fakeroot apt-get dist-upgrade

=== Diablo ===
Diablo Qt packages are into the official [[Extras]] repository. In order to start to develop with those packages you need to [[Extras#Diablo|add extras repository to your repository list]], and then install Qt packages in the terminal:
 apt-get install libqt4-dev

==How to compile a Qt application in scratchbox==
Qt applications are usually built using QMake. Project like KDE instead replaced QMake with CMake for more flexibility.
 
=== QMake ===
[http://doc.trolltech.com/4.5/qmake-manual.html QMake] is a tool from Trolltech that helps simplify the build process for development project across different platforms

You can build your Maemo Qt application in 3 simple steps:
# Generating project file (Required if there is no .pro file into the app source tree)&lt;pre&gt;qmake -project&lt;/pre&gt;
# Generating Makefile from the QMake project file:&lt;pre&gt;qmake file.pro&lt;/pre&gt;
# &lt;pre&gt;make&lt;/pre&gt;

=== CMake ===

Because of some issue with [http://www.cmake.org/ CMake], [[Open development/Maemo roadmap/Diablo|Diablo]] CMake packages are currently useless since CMake segfaults (on the device at least). This issue has been solved in [[Open development/Maemo roadmap/Fremantle|Fremantle]] and CMake packages that comes from Fremantle SDK work nicely.

CMake projects usually have a &lt;code&gt;CMakeLists.txt&lt;/code&gt; file instead of: 
# .pro file used by QMake projects
# &lt;code&gt;Makefile.am&lt;/code&gt; used by Autotools projects (standard in Unix/Linux)

Using CMake to build the project is extremely easy. In the directory containing CMakeLists.txt, supply the following two commands, where path is the path to the source code.
 cmake path
 make

Note: CMake is not installed by default in [[:Category:Scratchbox|scratchbox]]. You can install it with the command:
 fakeroot apt-get install cmake

== Running a Qt application in: ==
=== Scratchbox ===
Diablo and Fremantle Qt applications can run on the device as in Scratchbox.

First step to run a Qt application is starting the SDK UI:
 
# Run Xephyr. It is able to run a [[:wikipedia:X_Window_System| X Server]] inside another X Server.&lt;pre&gt;Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb&lt;/pre&gt;
# Set display for application that runs inside scratchbox:&lt;pre&gt;export DISPLAY=:2&lt;/pre&gt;
# You can now run the SDK UI. A Diablo or Fremantle desktop will appear in your Xephyr window:&lt;pre&gt;af-sb-init.sh start&lt;/pre&gt;
# Now you are ready to run any Maemo or Maemo Qt application with:&lt;pre&gt;run-standalone.sh ./qtapps&lt;/pre&gt;

Note: &lt;code&gt;run-standalone.sh&lt;/code&gt; sets some variable needed by Qt to use the Hildon style.

=== Device ===
Maemo Qt applications are Linux binaries. They can run on the device without any problem if you copy them to &quot;partitions&quot; mounted with exec flag. (for example, &lt;code&gt;/home/user&lt;/code&gt; or &lt;code&gt;/opt&lt;/code&gt; in Fremantle).

Fore example, if we want to run quassel (Qt IRC Client) we have to launch it with:
 su -c ./quassel user

== Porting Qt applications to Maemo ==

Porting a Qt desktop application to Maemo requires very little effort. This is because the Maemo Qt libraries will take care of giving the Hildon look &amp; Feel and enabling the virtual input methods for your application.

===Overriding the Qt Maemo changes===

====Maemo Style====

Hildon Style is the default Qt application style. Other style available are:
* [http://doc.trolltech.com/4.5/gallery-cleanlooks.html QCleanLooks]
* [http://doc.trolltech.com/4.5/gallery-windows.html Windows]
* [http://doc.trolltech.com/4.5/gallery-plastique.html Plastique]

Qt application can use other Qt styles;
* Running your application with the style flag:
 ./qt-test-application -style windows

* Using [http://doc.trolltech.com/4.5/qapplication.html#setStyle QApplication::setStyle( QStyle * style )]

* If you want to change the style of a widget:[http://doc.trolltech.com/4.5/qwidget.html#setStyle QWidget::setStyle( QStyle * style )]

====Showing the status bar====

Hildon applications don't have a status bar. Qt for Maemo hides the status bar by default.

You can show it again by using method ''statusBar()-&gt;show()'' in your class derived from QMainWindow.

====Using the Kinetic Finger Scrolling (cf Gtk's PannableArea)====

See [[Qt/Finger Scrolling|Finger Scrolling]]

===Adding Maemo changes to a Qt Application===

Some methods of Qt for Maemo are not available in the &quot;standard&quot; Qt libs, so a Qt application with specific Maemo Qt code can't be built outside the Maemo SDK. To avoid this issue, the developer can use the preprocessor directives, for example with Qt 4.5 on Diablo and Fremantle:

&lt;source lang=&quot;cpp-qt&quot;&gt;
#ifdef Q_WS_HILDON
   //Specific hildon/Maemo5 code here 
#endif
&lt;/source&gt;

Qt project files can load hildon files using: (check [http://doc.trolltech.com/4.5/qmake-function-reference.html qmake ref guide] for more info about qmake options)
 contains(QT_CONFIG, hildon): {
    message(&quot;Hello Hildon&quot;)
    SOURCE += hildon.cpp
    HEADER += hildon.h
    FORMS   += hildon.ui
}

=== Home widget interaction ===

{{main|Qt4 and Hildon home widget interaction}}

===Limitations===

Currently Qt Maemo lacks full support for Hildon widgets introduced in Maemo 5. 

'''At the moment, creating a Qt application that follows Maemo 5 UI Style requires using custom Qt widgets, coded within the application itself'''.

There is work ongoing to provide Qt Hildon widgets for Maemo 5, see [[Qt4_Hildon/Qt_Hildon_Widgets|Qt Hildon Widgets]]

To get the benefits of the ongoing Maemo 5 hildon integration work in Qt, you must get the latest Qt source code and compile it yourself. See [[Qt4_Hildon#Building_Qt_from_GIT_rep|Building Qt from GIT repository]].

== Debugging a Qt application ==

{{main|Documentation/Maemo_5_Developer_Guide/Kernel_and_Debugging_Guide/Maemo_Debugging_Guide}}

'''Note''': Fremantle Gdb 6.8 crashes in x86 and gives messed up backtraces on the device. Using gdb 7.0 is recommended. You can get gdb 7.0 sources from http://ftp.de.debian.org/debian/pool/main/g/gdb/gdb_7.0.orig.tar.gz, compile it (./configure &amp;&amp; make) inside X86 and armel scratchbox targets.
[http://chaos.troll.no/~harald/gdb7/ Here you can find GDB7 for fremantle x86 and armel]. 
 /usr/local/bin/gdb7 ./myapp

== Profiling a Qt application ==

=== OProfile ===

{{main|Documentation/devtools/maemo5/oprofile}}

=== Valgrind ===

{{main|Documentation/devtools/maemo5/valgrind}}

== Packaging a Qt application for Maemo ==

{{main|Packaging a Qt application}}

== Maemo Qt API Reference ==

Maemo Qt is based on Qt for X11. It shares same APIs avoiding API breaks. In this way every Qt application that runs in other platforms (Windows, Mac OS X, Linux, S60, etc.) can run in Maemo devices as well. To Develop a Qt application you can use the [http://doc.trolltech.com/4.5/index.html Official Qt 4.5 API documentation] and the list below to see what are the Maemo changes.

===Diablo===

'''QString QDesktopServices::storageLocation(StandardLocation type)''' returns specific Maemo locations for these types:
* DesktopLocation:   QDir::homePath() + QLatin1String(&quot;/MyDocs&quot;),            instead of QDir::homePath() + QLatin1String(&quot;/Desktop&quot;)
* DocumentsLocation: QDir::homePath() + QLatin1String(&quot;/MyDocs/.documents&quot;), instead of QDir::homePath() + QLatin1String(&quot;/MyDocs/.documents&quot;)
* PicturesLocation:  QDir::homePath() + QLatin1String(&quot;/MyDocs/.images&quot;),    instead of QDir::homePath() + QLatin1String(&quot;/Pictures&quot;)
* MusicLocation:     QDir::homePath() + QLatin1String(&quot;/MyDocs/.sounds&quot;),    instead of QDir::homePath() + QLatin1String(&quot;/Music&quot;)
* MoviesLocation:    QDir::homePath() + QLatin1String(&quot;/MyDocs/.videos&quot;),    instead of QDir::homePath() + QLatin1String(&quot;/MyDocs/.videos&quot;)

'''QTabletEvents''' are able to get the pressure value from the touchscreen. The eventdeviceType is for the touchscreen is set to QTabletEvent::Stylus. QTabletEvents won't be used anymore in Fremantle

'''Finger poke''' is emulated in scratchbox by the Middle Mouse button (NOTE: There is no Fullscreen VKB in scratchbox)

'''QInputEvents''' don't move the cursor. 
It's mandatory to get working the HIM moving the cursor via QInputMethodEvents.
Why is it mandatory?  Because if the user select text with the finger from the right to the left, we are able to remove the highlighted text, but the cursor will be moved on the last char instead to stay on the first one.
   
To do that some changes has been added to some widget function like: ''widget::inputMethodEvent(QInputMethodEvent *e)''.
Modifing that function in some custom widgets may be necessary. Don't reimplementing that function will break some fullscreen virtual keyboard features.
  
'''Hardcoded Keys:'''
In the QMainWindow:
* F6 - Toggle fullscreen the application
* F4 - Shows/Hides the application context menu
* Zoom in  - is a standard [http://doc.trolltech.com/4.4/qkeysequence.html#StandardKey-enum key sequence] QKeySequence::ZoomIn
* Zoom out - is a standard [http://doc.trolltech.com/4.4/qkeysequence.html#StandardKey-enum key sequence] QKeySequence::ZoomOut

'''Input Method:'''
Maemo Qt uses the Hildon IM as default Input method. Each kind of widget can set the IM mode. This allows the input method to focus on the type of input that the application is expecting. Eg: spinboxes can receive only numeric characters (1-9).

NOTE: Qt widgets like QTextEdit, QLineEdit... set the right input method mode automatically. 

A developer can change it by using:
&lt;source lang=&quot;cpp-qt&quot;&gt;
void QInputContext::setInputMode(int mode);
&lt;/source&gt;
It will update immediately the Hildon Input method to use the selected IM mode.  

HIC Modes:
* &lt;code&gt;HILDON_GTK_INPUT_MODE_ALPHA&lt;/code&gt; 	alphabetical characters and whitespace
* &lt;code&gt;HILDON_GTK_INPUT_MODE_NUMERIC&lt;/code&gt; 	numbers 0-9 and the '-' character
* &lt;code&gt;HILDON_GTK_INPUT_MODE_SPECIAL&lt;/code&gt; 	special characters
* &lt;code&gt;HILDON_GTK_INPUT_MODE_HEXA&lt;/code&gt; 	hexadecimal characters; numbers 0-9, characters a-f, and A-F
* &lt;code&gt;HILDON_GTK_INPUT_MODE_TELE&lt;/code&gt; 	telephone numbers; numbers 0-9, whitespace, and the characters &quot;pwPW/().-+*#?,&quot;
* &lt;code&gt;HILDON_GTK_INPUT_MODE_FULL&lt;/code&gt; 	unrestricted entry mode, combination of the alpha, numeric and special modes.
* &lt;code&gt;HILDON_GTK_INPUT_MODE_MULTILINE&lt;/code&gt; 	the client contains multiple lines of text or accepts linebreaks in the input.
* &lt;code&gt;HILDON_GTK_INPUT_MODE_INVISIBLE&lt;/code&gt; 	do not echo or save the input in the IM when entering sensitive information such as passwords.
* &lt;code&gt;HILDON_GTK_INPUT_MODE_AUTOCAP&lt;/code&gt; 	automatically capitalize the first letter at the start of a sentence.
* &lt;code&gt;HILDON_GTK_INPUT_MODE_DICTIONARY&lt;/code&gt; 	enable predictive dictionaries and learning based on the input.

Example:
For a password field we need to set a specific IM mode:
&lt;source lang=&quot;cpp-qt&quot;&gt;
int mode = HILDON_GTK_INPUT_MODE_FULL | HILDON_GTK_INPUT_MODE_INVISIBLE
QInputContext *qic = widget-&gt;inputContext();
qic-&gt;setInputMode(mode);
&lt;/source&gt;
If you are developing a Custom widget able to receive input text, you can instruct your widget to use the right IM Mode just returning the mode.
  
- How does it work?
The Hildon IM sends a XMessage to pop up the &quot;Virtual Keyboard&quot; (or better the Main HIM UI) when an input widget receive the focus. The IM before to raise the VKB, makes an inputMethodQuery to the widget retrieving the IM mode. If the developer of the custom widget doesn't set the mode property, the IM will use &lt;code&gt;HILDON_GTK_INPUT_MODE_FULL&lt;/code&gt; (the default mode) for that widget.

Setting the ImMode is quite easy. Check the code below for more understanding.
&lt;source lang=&quot;cpp-qt&quot;&gt;
#ifdef Q_WS_HILDON
#include &lt;QInputContext&gt;
#endif

QVariant QAbstractSpinBox::inputMethodQuery(Qt::InputMethodQuery query) const
{    
  Q_D(const QAbstractSpinBox);
  switch(query) {
      case Qt::ImMode:{
          int mode = HILDON_GTK_INPUT_MODE_NUMERIC;
          return QVariant(mode);
      }
      default:
          return d-&gt;edit-&gt;inputMethodQuery(query);
  }
}
&lt;/source&gt;

==FREMANTLE (Qt 4.5)==

===Kinetic scrolling===

Kinetic scrolling is enabled by default in QListWidgets and is supported by any Qt widget that inherits QScrollArea.
Any item view widgets (QTreeView/QTreeWidget, QListView, QTableView/QTableWidget...) can use fingerscroll if it has &quot;FingerScrollable&quot; dynamic property set to true.
Eg:
&lt;source lang=&quot;cpp-qt&quot;&gt;
QTableWidget *table = new QTableWidget(this);
table-&gt;setProperty(&quot;FingerScrollable&quot;, true); 
&lt;/source&gt;
NOTE: Available in Qt &gt; 4.5.3-xxxxx-maemo4

===Hildon-Desktop widgets===

{{main|Qt4 Hildon/Qt Hildon Widgets}}

They are supported by Qt. An example (qt-example-hildondesktopwidget) is available in extras-devel.

===Hildon menus===

Maemo5 menus are created using QActions available in menu bar. 
Hidden, disabled, separators and widget actions won't shown. (Same in Qt 4.6)

* qt-4.5.3-xxxx-maemo4 packages - needs QActions in a &quot;fremantle&quot; menu.
* Pkgs &gt; qt-4.5.3-xxxx-maemo4 shows Maemo5 menus automatically

Note: Maemo5 policy doesn't allow application to have more than 10 items.

===Stackable windows===

http://maemomm.garage.maemo.org/docs/tutorial/figures/stackable-window.png
Are supported by Qt. To create them you need to create a MainWindow child of another Main window.
&lt;source lang=&quot;cpp-qt&quot;&gt;
QMainWindow *fistStackableWindow = new QMainWindow;
QMainWindow *secondStackableWindow = new QMainWindow(fistStackableWindow);
// you need the below line to see the back button on the top right hand corner of the stacked window instead of a cross
secondStackableWindow-&gt;setAttribute(Qt::WA_Maemo5StackedWindow);
&lt;/source&gt;
''Note: this is not entirely accurate, see''

http://qt.nokia.com/doc/qt-maemo-4.6/maemo5-stackedwindows.html

===Raise a Qt application in background===

&lt;code&gt;QWidget::activateWindow()&lt;/code&gt; does the job.

Implemented in Qt packages &gt;= qt-4.5.3-xxxx-maemo6

=== How to minimize a Qt application? ===
&lt;source lang=&quot;cpp-qt&quot;&gt;
QDBusConnection c = QDBusConnection::sessionBus();
QDBusMessage m = QDBusMessage::createSignal(&quot;/&quot;,&quot;com.nokia.hildon_desktop&quot;,&quot;exit_app_view&quot;);
c.send(m);
&lt;/source&gt;
===Portrait mode and listening for orientation changes===

If you want to run your application in portrait mode then you can add these lines to your application. The code goes in your main widget constructor.
&lt;source lang=&quot;cpp-qt&quot;&gt;
#ifdef Q_WS_HILDON
//Includes for portrait mode support
# include &lt;X11/Xlib.h&gt;
# include &lt;X11/Xatom.h&gt;
# include &lt;QtGui/QX11Info&gt;
#endif

#ifndef Q_WS_HILDON
int value = 1;
Atom portraitSupport = XInternAtom(QX11Info::display(), &quot;_HILDON_PORTRAIT_MODE_SUPPORT&quot;, false);
Atom portraitRequest = XInternAtom(QX11Info::display(), &quot;_HILDON_PORTRAIT_MODE_REQUEST&quot;, false);
XChangeProperty(QX11Info::display(), winId(), portraitSupport, XA_CARDINAL, 32, PropModeReplace, (uchar *)&amp;value, 1);
XChangeProperty(QX11Info::display(), winId(), portraitRequest, XA_CARDINAL, 32, PropModeReplace, (uchar *)&amp;value, 1);
#endif
&lt;/source&gt;
If you want to listen for orientation changes and then switch the view to landscape or potrait mode automatically than take a look at [[Maemo Qt Extra Libraries]] for more information.

=== QDockWidgets ===

QDockWidgets are not finger friendly widgets. They should not be used in Maemo.
In case you are porting an application to Maemo maybe you want to do
few changes as possible into your UI. Then you could use QDockWidget::setFeatures(QDockWidget::NoDockWidgetFeatures); to hide float and close button and lock the position of the dock widget.

=== QPrint* and QSystemTray support missing ===

Printing (QPrint*) and System tray support is missing in current Qt 4.5.3-xxxx-maemo4 packages. Since incompatibility with KDE and other Qt application, they will be enabled again in next Qt 4.5.3 packages.

=== QSplashScreen not fully compatible with Hildon-Desktop ===

QSplashScreen's window type is not supported in Fremantle. The splash screen is shown in full screen and the image is repeated to fill the splash screen's window. When splash screen is closed normal window closing animation is shown before showing the actual application window. For these reasons developers are disencouraged to use splash screens in their applications.

As a workaround for the problem you can set a window property that tells HD to skip the transitions:
&lt;source lang=&quot;cpp-qt&quot;&gt;
 static void set_no_transitions (Display *dpy, Window w)
 {
 Atom no_trans;
 int one = 1;
 no_trans = XInternAtom (dpy, &quot;_HILDON_WM_ACTION_NO_TRANSITIONS&quot;, False);
 XChangeProperty (dpy, w, no_trans,
                  XA_CARDINAL, 32, PropModeReplace,
                  (unsigned char *)&amp;one, 1);
 }
&lt;/source&gt;

=== QToolBar limitations ===

Adding a QToolBar to a QMainWindow will always result in a toolbar at the bottom of the screen. (Justification/Workarounds?)

== Contributing to the Maemo Qt Project ==

Maemo Qt is a community project. Contributing to the forum, sending us patches, give us feedbacks, tracking bugs are all activities that help us to improve the quality of our work.

Here there is a list of things that every person interested in helping us should read.

===Stay updated===

Any Maemo Qt developer should be updated and should participate to the discussions, for that he must join the Mailing list. BTW the mailing list is not for Maemo Qt Developers but it's open to Maemo Qt application developers too.

=== Introduction to Git ===

If you are a git newbie you maybe find interesting these links:
* http://www.sourcemage.org/Git_Guide
* http://www.gitcasts.com/
* http://www.gnome.org/~newren/eg/git-for-svn-users.html
* Using the git protocol through a HTTP CONNECT proxy: http://www.emilsit.net/blog/archives/how-to-use-the-git-protocol-through-a-http-connect-proxy/

===Understanding the structure of our Git repository===

{{main|Qt Maemo Git Process}}

=== Preparation ===

Make sure each scratchbox target has

  fakeroot apt-get build-dep libqt4-gui

(you may need to apt-get install libgl-dev too as it's not in the Build-Depends: yet)

===Building Qt from Git repository===

# Clone the repository:&lt;pre&gt;git clone git://gitorious.org/+qt-maemo-developers/qt/qt-maemo.git&lt;/pre&gt;or if you are a member of our team:&lt;pre&gt;git clone git@gitorious.org:+qt-maemo-developers/qt/qt-maemo.git&lt;/pre&gt;
# Change dir:&lt;pre&gt;cd qt-maemo&lt;/pre&gt;
# Copy the remote 4.5 branch in your working copy:&lt;pre&gt;git checkout -b 4.5 origin/4.5&lt;/pre&gt;
# Checkout ONE of these branches:&lt;pre&gt;git checkout -b qt-diablo origin/qt-diablo&lt;/pre&gt;&lt;pre&gt;git checkout -b qt-n900+w34 origin/qt-n900+w34&lt;/pre&gt;&lt;pre&gt;git checkout -b qt-mer origin/qt-mer&lt;/pre&gt;
# Build the packages:&lt;pre&gt;dpkg-buildpackage -rfakeroot -b&lt;/pre&gt;

===Merging branches changes in the mainline [OLD]===

Before to merge your changes in the mainline, the code must be full working, cleaned and tested. A review from another developer is also needed in order to reduce the possibility to add errors.

===QML===
[[QML]] is a GUI interface building scripting language for Qt. Check out the [[QML-EnhancedCalcExample | QML calculator example]].

==F.A.Q.==

; ''I'm trying to compile a Qt application for ARMEL, but I got the error below. What's wrong?''
: &lt;pre&gt;/targets/FREMANTLE_X86/usr/include/qt4/QtCore/qatomic_i386.h:127: error: impossible constraint in 'asm'&lt;/pre&gt;
:You are using x86 include files, then you have to update your Makefile. Running &lt;code&gt;qmake&lt;/code&gt; before &lt;code&gt;make&lt;/code&gt; will be solve this issue.

; I'm trying to compile a Qt packcage for x86, but I got the error below. What's wrong?
: &lt;pre&gt;In file included from maemo/gconfsymbols.cpp:41:
 maemo/gconfsymbols_p.h:49:25: gconf/gconf.h: No such file or directory&lt;/pre&gt;
: Your scratchbox does not have &lt;code&gt;/bin/sh&lt;/code&gt;, so when calling &lt;code&gt;pkg-config&lt;/code&gt; from &lt;code&gt;qmake&lt;/code&gt;, &lt;code&gt;CFLAGS&lt;/code&gt; and &lt;code&gt;LIBS&lt;/code&gt; are not set correctly. Running &lt;code&gt;ln -s /scratchbox/tools/bin/sh /bin/sh&lt;/code&gt; will be solve this issue.

; I'm trying to compile a diablo Qt package, so I just created a symbolic link, debian, for debian.diablo, and then run dpkg-buildpackage command, but I got a build error because the symbolic link was deleted
: When running dpkg-buildpackage, all symbolic links will be deleted, so need to rename the folder from debian.diablo to debian to make a build of diablo Qt package.

; I installed Qt (libqt4-dev) to scratchbox and tried to build a sample application, but I got the error because some header files such as qhildonstyle.h, and qvfbhdr.h etc. were missing
: libqt4-dev should copy all header files, but now, at least in 4.5.2-1maemo1, some files are missing. Please download file below and extract to your scratchbox system.
: &lt;pre&gt;http://qt4.garage.maemo.org/patches/qt4-missing-header.tgz&lt;/pre&gt;


[[Category:Development]]
[[Category:Qt]]</text>
    </revision>
  </page>
  <page>
    <title>Qt4 Hildon New</title>
    <id>3926</id>
    <revision>
      <id>32751</id>
      <timestamp>2010-04-15T09:01:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix page move</comment>
      <text xml:space="preserve">#REDIRECT [[Qt4 development]]</text>
    </revision>
  </page>
  <page>
    <title>Qt4 and Hildon home widget interaction</title>
    <id>3525</id>
    <revision>
      <id>32782</id>
      <timestamp>2010-04-15T11:28:41Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>links</comment>
      <text xml:space="preserve">The code in this wiki page is taken from the [http://maemo.org/packages/view/dlh/ dlh application] and the [http://maemo.org/packages/view/dlh-widget/ dlh widget]. Since it is FOSS, the source code is available for anyone to adapt freely.

== Service ==
The com.nokia.dlh.service file defines the D-Bus service provided by the [[Qt-Maemo|Qt4]] application:

 [D-BUS Service]
 Name=com.nokia.dlh
 Exec=/opt/maemo/usr/bin/dlh

There's a reference to this service in the dlh.desktop file too:
 X-Osso-Service=com.nokia.dlh

== Application ==

In the class definition of the objects which will interact with the home widget you need the Q_CLASSINFO macro:

 class Widget : public QWidget
 {
     Q_OBJECT
     Q_CLASSINFO(&quot;D-Bus Interface&quot;, &quot;com.nokia.dlh&quot;)
     [...]

The slots have the same name of the D-Bus messages; Q_NOREPLY mark a method to be called and not wait for it to finish processing before returning (see Qt docs):

 Q_NOREPLY void CallStartDialog();

The class constructor contains the service and the object registration:

 QDBusConnection::sessionBus().registerService(&quot;com.nokia.dlh&quot;);
 QDBusConnection::sessionBus().registerObject(&quot;/com/nokia/dlh&quot;,this, QDBusConnection::ExportAllContents);

== Home Widget ==

Some defines:

 #define DLH_SERVICE &quot;com.nokia.dlh&quot;
 #define DLH_OBJECT  &quot;/com/nokia/dlh&quot;
 #define DLH_IFACE   &quot;com.nokia.dlh&quot;

In the init function you have to initialize the osso library (see [http://maemo.org/api_refs/5.0/5.0-final/libosso/ libosso docs]):

 osso_context = osso_initialize (&quot;com.nokia.dlh-widget&quot;, &quot;0.1&quot;, 0, NULL);

When you want to execute the Qt object's slot ''CallStartDialog'' from the home widget you will use the following instruction:

 osso_rpc_run(osso_context,
              DLH_SERVICE,
              DLH_OBJECT,
              DLH_IFACE,
              &quot;CallStartDialog&quot;, NULL, DBUS_TYPE_INVALID);

That's all!

[[Category:Development]]
[[Category:Qt]]</text>
    </revision>
  </page>
  <page>
    <title>Qt4 development</title>
    <id>3833</id>
    <revision>
      <id>40167</id>
      <timestamp>2010-11-17T09:54:27Z</timestamp>
      <contributor>
        <username>harryf</username>
        <id>1873</id>
      </contributor>
      <comment>/* Building Qt from Git repository */</comment>
      <text xml:space="preserve">'''IMPORTANT: This page is for Fremantle PR 1.2 using Qt 4.6 or higher.'''
'''If you want to develop for Diablo or use Qt 4.5 please have a look at the [[Qt4_Hildon_Legacy|Qt4 Hildon Legacy Page]].'''

== Introduction ==

To develop with [[Qt-Maemo|Qt for Maemo]], a working SDK installation is required. There are [[Documentation/Maemo_5_Final_SDK_Installation|instructions on how to install the Maemo SDK]], and you can [http://www.youtube.com/watch?v=c8myh_iBy8k watch the Maemo SDK in action]. Alternatively, you may want to try [[MADDE]], a cross-platform Maemo development tool, available as a technology preview.

Maemo 5 has [http://doc.qt.nokia.com/qt-maemo-4.6/index.html official Qt documentation] - especially see [http://doc.qt.nokia.com/qt-maemo-4.6/examples-maemo5.html the Maemo5 Qt examples page].

== Getting started ==

To start to develop with Maemo Qt, we need to [[Documentation/Maemo_5_Final_SDK_Installation|install the Maemo SDK]].

Qt is available in public Fremantle repository since the release of [[Maemo 5/PR1.2|PR1.2]]. To upgrade older Scratchbox targets to use the latest packages, execute the following commands (inside Scratchbox):
 fakeroot apt-get update
 fakeroot apt-get dist-upgrade

You can install Qt with the command:
 fakeroot apt-get install libqt4-dev

'''GIANT WARNING''': Your device might not be running Qt 4.6, but your Scratchbox probably is.  Make sure that your N900 has at least the PR1.2 update by checking the software version (found in Settings-&gt;About product. PR1.2 is version 10.2010.19-1).

===How to compile a Qt application in Scratchbox===

Qt applications are usually built using QMake. Some projects, like KDE, use CMake, for more flexibility.
 
==== QMake ====
[http://doc.trolltech.com/qt-maemo-4.6/qmake-manual.html QMake] is a tool that helps simplify the build process for development project across different platforms

You can build your Maemo Qt application in 3 simple steps:
# Generating project file (Required if there is no .pro file into the app source tree)&lt;pre&gt;qmake -project&lt;/pre&gt;
# Generating Makefile from the QMake project file:&lt;pre&gt;qmake file.pro&lt;/pre&gt;
# &lt;pre&gt;make&lt;/pre&gt;

==== CMake ====

CMake projects usually have a &lt;code&gt;CMakeLists.txt&lt;/code&gt; file instead of: 
# .pro file used by QMake projects
# &lt;code&gt;Makefile.am&lt;/code&gt; used by Autotools projects (standard in Unix/Linux)

Using CMake to build the project is extremely easy. In the directory containing &lt;code&gt;CMakeLists.txt&lt;/code&gt;, supply the following two commands, where path is the path to the source code.
 cmake path
 make

Note: CMake is not installed by default in [[:Category:Scratchbox|Scratchbox]]. You can install it with the command:
 fakeroot apt-get install cmake

=== Running a Qt application in: ===
==== Scratchbox ====
Diablo and Fremantle Qt applications can run on the device as in Scratchbox.

First step to run a Qt application is starting the SDK UI:
 
# Run Xephyr on your host (not in Xephyr!). It is able to run a [[:wikipedia:X_Window_System|X Server]] inside another X Server.&lt;pre&gt;Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb&lt;/pre&gt;
# Inside Scratchbox, set the display for applications:&lt;pre&gt;export DISPLAY=:2&lt;/pre&gt;
# You can now run the SDK UI. A Diablo or Fremantle desktop will appear in your Xephyr window:&lt;pre&gt;af-sb-init.sh start&lt;/pre&gt;
# Now you are ready to run any Maemo or Maemo Qt application with:&lt;pre&gt;run-standalone.sh ./qtapps&lt;/pre&gt;

Note: &lt;code&gt;run-standalone.sh&lt;/code&gt; sets some variable needed by Qt to use the Hildon style.

Hint: If you don't want to run run-standalone.sh all the time, you can also source it: &lt;pre&gt;source /usr/bin/run-standalone.sh&lt;/pre&gt; In that shell, you can then run Qt applications without calling run-standalone.sh on every start.

==== Device ====
Maemo Qt applications are Linux binaries. They can run on the device without any problem if you copy them to &quot;partitions&quot; mounted with exec flag. (for example, &lt;code&gt;/home/user&lt;/code&gt; or &lt;code&gt;/opt&lt;/code&gt; in Fremantle).

For example, if we want to run quassel (Qt IRC Client), we have to launch it with:
 su -c ./quassel user

== Porting Qt applications to Maemo ==

Porting a Qt desktop application to Maemo requires very little effort. This is because the Maemo Qt libraries will take care of giving the Hildon look &amp; Feel and enabling the virtual input methods for your application.

===Overriding the Qt Maemo changes===

====Maemo Style====

Hildon Style is the default Qt application style. Other style available are:
* [http://doc.trolltech.com/qt-maemo-4.6/gallery-cleanlooks.html QCleanLooks]
* [http://doc.trolltech.com/qt-maemo-4.6/gallery-windows.html Windows]
* [http://doc.trolltech.com/qt-maemo-4.6/gallery-plastique.html Plastique]

Qt application can use other Qt styles;
* Running your application with the style flag:&lt;pre&gt;./qt-test-application -style windows&lt;/pre&gt;
* Using [http://doc.trolltech.com/qt-maemo-4.6/qapplication.html#setStyle QApplication::setStyle( QStyle * style )]
* If you want to change the style of a widget: [http://doc.trolltech.com/qt-maemo-4.6/qwidget.html#setStyle QWidget::setStyle( QStyle * style )]

====Showing the status bar====

Hildon applications don't have a status bar. Qt for Maemo hides the status bar by default.

You can show it again by using method &lt;code&gt;statusBar()-&gt;show()&lt;/code&gt; in your class derived from &lt;code&gt;QMainWindow&lt;/code&gt;.



===Adding Maemo changes to a Qt Application===

Some methods of Qt for Maemo are not available in the &quot;standard&quot; Qt libs, so a Qt application with specific Maemo Qt code can't be built outside the Maemo SDK. To avoid this issue, the developer can use the preprocessor directives:

In the source code:

&lt;source lang=&quot;cpp&quot;&gt;
#ifdef Q_WS_MAEMO_5
   //specific hildon/maemo5 code here
#endif
&lt;/source&gt;

In the project file:

&lt;pre&gt;
maemo5 {
   message(&quot;Hello Hildon&quot;)
   SOURCE += hildon.cpp
   HEADER += hildon.h
   FORMS   += hildon.ui
}
&lt;/pre&gt;

=== Home widget interaction ===

{{main|Qt4 and Hildon home widget interaction}}

== Debugging a Qt application ==

{{main|Documentation/Maemo_5_Developer_Guide/Kernel_and_Debugging_Guide/Maemo_Debugging_Guide}}

'''Note''': Fremantle Gdb 6.8 crashes in x86 and gives messed up backtraces on the device. Using gdb 7.0 is recommended. You can get gdb 7.0 sources from http://ftp.de.debian.org/debian/pool/main/g/gdb/gdb_7.0.orig.tar.gz, compile it (./configure &amp;&amp; make) inside X86 and armel scratchbox targets.
[http://chaos.troll.no/~harald/gdb7/ Here you can find GDB7 for fremantle x86 and armel]. 
 /usr/local/bin/gdb7 ./myapp

== Profiling a Qt application ==

=== OProfile ===

{{main|Documentation/devtools/maemo5/oprofile}}

=== Valgrind ===

{{main|Documentation/devtools/maemo5/valgrind}}

== Packaging a Qt application for Maemo ==

{{main|Packaging a Qt application}}

== Maemo Qt API Reference ==

Maemo Qt is based on Qt for X11. It shares same APIs avoiding API breaks. In this way every Qt application that runs in other platforms (Windows, Mac OS X, Linux, S60, etc.) can run in Maemo devices as well. To Develop a Qt application you can use the [http://qt.nokia.com/doc/qt-maemo-4.6 Official Qt 4.6 for Maemo API documentation] and the list below to see what are the Maemo changes.

Here are examples that show several Maemo 5 Qt widgets in Qt.

* http://qt.nokia.com/doc/qt-maemo-4.6/examples-maemo5.html
* http://qt.gitorious.org/+qt-developers/qt/x11-maemo/trees/4.6-fremantle/examples/maemo5/widgets

===Maemo5 Readme file===

There is a [http://qt.gitorious.org/+qt-developers/qt/x11-maemo/blobs/4.6-fremantle/README.maemo5 README file in Qt source tree].

== Contributing to the Maemo Qt Project ==

Maemo Qt is a community project. Contributing to the forum, sending us patches, give us feedbacks, tracking bugs are all activities that help us to improve the quality of our work.

Here there is a list of things that every person interested in helping us should read.

===Stay updated===

Any Maemo Qt developer should be updated and should participate to the discussions, for that he must join the Mailing list. BTW the mailing list is not for Maemo Qt Developers but it's open to Maemo Qt application developers too.

=== Introduction to Git ===

If you are a git newbie you maybe find interesting these links:
* http://www.sourcemage.org/Git_Guide
* http://www.gitcasts.com/
* http://www.gnome.org/~newren/eg/git-for-svn-users.html
* Using the git protocol through a HTTP CONNECT proxy: http://www.emilsit.net/blog/archives/how-to-use-the-git-protocol-through-a-http-connect-proxy/

===Understanding the structure of our Git repository===

{{main|Qt Maemo Git Process}}

=== Preparation ===

Make sure each scratchbox target has

  fakeroot apt-get build-dep libqt4-gui

(you may need to apt-get install libgl-dev too as it's not in the Build-Depends: yet)

===Building Qt from Git repository===

# Make sure you have all the build dependencies:&lt;br/&gt;&lt;pre&gt;fakeroot apt-get build-dep qt4-x11&lt;/pre&gt;
# Clone the repository:&lt;br/&gt;&lt;pre&gt;git clone git://gitorious.org/+qt-developers/qt/x11-maemo.git qt-maemo&lt;/pre&gt;&lt;br/&gt;
# Change dir:&lt;br/&gt;&lt;pre&gt;cd qt-maemo&lt;/pre&gt;
# Configure Qt:&lt;br/&gt;For x86 targets:&lt;pre&gt;./configure -maemo5&lt;/pre&gt;&lt;br/&gt;For ARM targets:&lt;pre&gt;./configure -maemo5 -opengl es2&lt;/pre&gt;.
# Build Qt:&lt;br/&gt;&lt;pre&gt;make&lt;/pre&gt;
# Install Qt:&lt;br/&gt;&lt;pre&gt;make install&lt;/pre&gt;

===Merging branches changes in the mainline [OLD]===

Before to merge your changes in the mainline, the code must be full working, cleaned and tested. A review from another developer is also needed in order to reduce the possibility to add errors.

===QML===

[[QML]] is a GUI interface building scripting language for Qt. Check out the [[QML-EnhancedCalcExample | QML calculator example]].

==F.A.Q.==

; ''I'm trying to compile a Qt application for ARMEL, but I got the error below. What's wrong?''
: &lt;pre&gt;/targets/FREMANTLE_X86/usr/include/qt4/QtCore/qatomic_i386.h:127: error: impossible constraint in 'asm'&lt;/pre&gt;
:You are using x86 include files, then you have to update your Makefile. Running &lt;code&gt;qmake&lt;/code&gt; before &lt;code&gt;make&lt;/code&gt; will be solve this issue.

; I'm trying to compile a Qt packcage for x86, but I got the error below. What's wrong?
: &lt;pre&gt;In file included from maemo/gconfsymbols.cpp:41:
 maemo/gconfsymbols_p.h:49:25: gconf/gconf.h: No such file or directory&lt;/pre&gt;
: Your scratchbox does not have &lt;code&gt;/bin/sh&lt;/code&gt;, so when calling &lt;code&gt;pkg-config&lt;/code&gt; from &lt;code&gt;qmake&lt;/code&gt;, &lt;code&gt;CFLAGS&lt;/code&gt; and &lt;code&gt;LIBS&lt;/code&gt; are not set correctly. Running &lt;code&gt;ln -s /scratchbox/tools/bin/sh /bin/sh&lt;/code&gt; will be solve this issue.

; I installed Qt (libqt4-dev) to scratchbox and tried to build a sample application, but I got the error because some header files such as qhildonstyle.h, and qvfbhdr.h etc. were missing
: libqt4-dev should copy all header files, but now, at least in 4.5.2-1maemo1, some files are missing. Please download file below and extract to your scratchbox system.
: &lt;pre&gt;http://qt4.garage.maemo.org/patches/qt4-missing-header.tgz&lt;/pre&gt;

[[Category:Development]]
[[Category:Qt]]</text>
    </revision>
  </page>
  <page>
    <title>Qt4 development</title>
    <id>3833</id>
    <revision>
      <id>40167</id>
      <timestamp>2010-11-17T09:54:27Z</timestamp>
      <contributor>
        <username>harryf</username>
        <id>1873</id>
      </contributor>
      <comment>/* Building Qt from Git repository */</comment>
      <text xml:space="preserve">'''IMPORTANT: This page is for Fremantle PR 1.2 using Qt 4.6 or higher.'''
'''If you want to develop for Diablo or use Qt 4.5 please have a look at the [[Qt4_Hildon_Legacy|Qt4 Hildon Legacy Page]].'''

== Introduction ==

To develop with [[Qt-Maemo|Qt for Maemo]], a working SDK installation is required. There are [[Documentation/Maemo_5_Final_SDK_Installation|instructions on how to install the Maemo SDK]], and you can [http://www.youtube.com/watch?v=c8myh_iBy8k watch the Maemo SDK in action]. Alternatively, you may want to try [[MADDE]], a cross-platform Maemo development tool, available as a technology preview.

Maemo 5 has [http://doc.qt.nokia.com/qt-maemo-4.6/index.html official Qt documentation] - especially see [http://doc.qt.nokia.com/qt-maemo-4.6/examples-maemo5.html the Maemo5 Qt examples page].

== Getting started ==

To start to develop with Maemo Qt, we need to [[Documentation/Maemo_5_Final_SDK_Installation|install the Maemo SDK]].

Qt is available in public Fremantle repository since the release of [[Maemo 5/PR1.2|PR1.2]]. To upgrade older Scratchbox targets to use the latest packages, execute the following commands (inside Scratchbox):
 fakeroot apt-get update
 fakeroot apt-get dist-upgrade

You can install Qt with the command:
 fakeroot apt-get install libqt4-dev

'''GIANT WARNING''': Your device might not be running Qt 4.6, but your Scratchbox probably is.  Make sure that your N900 has at least the PR1.2 update by checking the software version (found in Settings-&gt;About product. PR1.2 is version 10.2010.19-1).

===How to compile a Qt application in Scratchbox===

Qt applications are usually built using QMake. Some projects, like KDE, use CMake, for more flexibility.
 
==== QMake ====
[http://doc.trolltech.com/qt-maemo-4.6/qmake-manual.html QMake] is a tool that helps simplify the build process for development project across different platforms

You can build your Maemo Qt application in 3 simple steps:
# Generating project file (Required if there is no .pro file into the app source tree)&lt;pre&gt;qmake -project&lt;/pre&gt;
# Generating Makefile from the QMake project file:&lt;pre&gt;qmake file.pro&lt;/pre&gt;
# &lt;pre&gt;make&lt;/pre&gt;

==== CMake ====

CMake projects usually have a &lt;code&gt;CMakeLists.txt&lt;/code&gt; file instead of: 
# .pro file used by QMake projects
# &lt;code&gt;Makefile.am&lt;/code&gt; used by Autotools projects (standard in Unix/Linux)

Using CMake to build the project is extremely easy. In the directory containing &lt;code&gt;CMakeLists.txt&lt;/code&gt;, supply the following two commands, where path is the path to the source code.
 cmake path
 make

Note: CMake is not installed by default in [[:Category:Scratchbox|Scratchbox]]. You can install it with the command:
 fakeroot apt-get install cmake

=== Running a Qt application in: ===
==== Scratchbox ====
Diablo and Fremantle Qt applications can run on the device as in Scratchbox.

First step to run a Qt application is starting the SDK UI:
 
# Run Xephyr on your host (not in Xephyr!). It is able to run a [[:wikipedia:X_Window_System|X Server]] inside another X Server.&lt;pre&gt;Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb&lt;/pre&gt;
# Inside Scratchbox, set the display for applications:&lt;pre&gt;export DISPLAY=:2&lt;/pre&gt;
# You can now run the SDK UI. A Diablo or Fremantle desktop will appear in your Xephyr window:&lt;pre&gt;af-sb-init.sh start&lt;/pre&gt;
# Now you are ready to run any Maemo or Maemo Qt application with:&lt;pre&gt;run-standalone.sh ./qtapps&lt;/pre&gt;

Note: &lt;code&gt;run-standalone.sh&lt;/code&gt; sets some variable needed by Qt to use the Hildon style.

Hint: If you don't want to run run-standalone.sh all the time, you can also source it: &lt;pre&gt;source /usr/bin/run-standalone.sh&lt;/pre&gt; In that shell, you can then run Qt applications without calling run-standalone.sh on every start.

==== Device ====
Maemo Qt applications are Linux binaries. They can run on the device without any problem if you copy them to &quot;partitions&quot; mounted with exec flag. (for example, &lt;code&gt;/home/user&lt;/code&gt; or &lt;code&gt;/opt&lt;/code&gt; in Fremantle).

For example, if we want to run quassel (Qt IRC Client), we have to launch it with:
 su -c ./quassel user

== Porting Qt applications to Maemo ==

Porting a Qt desktop application to Maemo requires very little effort. This is because the Maemo Qt libraries will take care of giving the Hildon look &amp; Feel and enabling the virtual input methods for your application.

===Overriding the Qt Maemo changes===

====Maemo Style====

Hildon Style is the default Qt application style. Other style available are:
* [http://doc.trolltech.com/qt-maemo-4.6/gallery-cleanlooks.html QCleanLooks]
* [http://doc.trolltech.com/qt-maemo-4.6/gallery-windows.html Windows]
* [http://doc.trolltech.com/qt-maemo-4.6/gallery-plastique.html Plastique]

Qt application can use other Qt styles;
* Running your application with the style flag:&lt;pre&gt;./qt-test-application -style windows&lt;/pre&gt;
* Using [http://doc.trolltech.com/qt-maemo-4.6/qapplication.html#setStyle QApplication::setStyle( QStyle * style )]
* If you want to change the style of a widget: [http://doc.trolltech.com/qt-maemo-4.6/qwidget.html#setStyle QWidget::setStyle( QStyle * style )]

====Showing the status bar====

Hildon applications don't have a status bar. Qt for Maemo hides the status bar by default.

You can show it again by using method &lt;code&gt;statusBar()-&gt;show()&lt;/code&gt; in your class derived from &lt;code&gt;QMainWindow&lt;/code&gt;.



===Adding Maemo changes to a Qt Application===

Some methods of Qt for Maemo are not available in the &quot;standard&quot; Qt libs, so a Qt application with specific Maemo Qt code can't be built outside the Maemo SDK. To avoid this issue, the developer can use the preprocessor directives:

In the source code:

&lt;source lang=&quot;cpp&quot;&gt;
#ifdef Q_WS_MAEMO_5
   //specific hildon/maemo5 code here
#endif
&lt;/source&gt;

In the project file:

&lt;pre&gt;
maemo5 {
   message(&quot;Hello Hildon&quot;)
   SOURCE += hildon.cpp
   HEADER += hildon.h
   FORMS   += hildon.ui
}
&lt;/pre&gt;

=== Home widget interaction ===

{{main|Qt4 and Hildon home widget interaction}}

== Debugging a Qt application ==

{{main|Documentation/Maemo_5_Developer_Guide/Kernel_and_Debugging_Guide/Maemo_Debugging_Guide}}

'''Note''': Fremantle Gdb 6.8 crashes in x86 and gives messed up backtraces on the device. Using gdb 7.0 is recommended. You can get gdb 7.0 sources from http://ftp.de.debian.org/debian/pool/main/g/gdb/gdb_7.0.orig.tar.gz, compile it (./configure &amp;&amp; make) inside X86 and armel scratchbox targets.
[http://chaos.troll.no/~harald/gdb7/ Here you can find GDB7 for fremantle x86 and armel]. 
 /usr/local/bin/gdb7 ./myapp

== Profiling a Qt application ==

=== OProfile ===

{{main|Documentation/devtools/maemo5/oprofile}}

=== Valgrind ===

{{main|Documentation/devtools/maemo5/valgrind}}

== Packaging a Qt application for Maemo ==

{{main|Packaging a Qt application}}

== Maemo Qt API Reference ==

Maemo Qt is based on Qt for X11. It shares same APIs avoiding API breaks. In this way every Qt application that runs in other platforms (Windows, Mac OS X, Linux, S60, etc.) can run in Maemo devices as well. To Develop a Qt application you can use the [http://qt.nokia.com/doc/qt-maemo-4.6 Official Qt 4.6 for Maemo API documentation] and the list below to see what are the Maemo changes.

Here are examples that show several Maemo 5 Qt widgets in Qt.

* http://qt.nokia.com/doc/qt-maemo-4.6/examples-maemo5.html
* http://qt.gitorious.org/+qt-developers/qt/x11-maemo/trees/4.6-fremantle/examples/maemo5/widgets

===Maemo5 Readme file===

There is a [http://qt.gitorious.org/+qt-developers/qt/x11-maemo/blobs/4.6-fremantle/README.maemo5 README file in Qt source tree].

== Contributing to the Maemo Qt Project ==

Maemo Qt is a community project. Contributing to the forum, sending us patches, give us feedbacks, tracking bugs are all activities that help us to improve the quality of our work.

Here there is a list of things that every person interested in helping us should read.

===Stay updated===

Any Maemo Qt developer should be updated and should participate to the discussions, for that he must join the Mailing list. BTW the mailing list is not for Maemo Qt Developers but it's open to Maemo Qt application developers too.

=== Introduction to Git ===

If you are a git newbie you maybe find interesting these links:
* http://www.sourcemage.org/Git_Guide
* http://www.gitcasts.com/
* http://www.gnome.org/~newren/eg/git-for-svn-users.html
* Using the git protocol through a HTTP CONNECT proxy: http://www.emilsit.net/blog/archives/how-to-use-the-git-protocol-through-a-http-connect-proxy/

===Understanding the structure of our Git repository===

{{main|Qt Maemo Git Process}}

=== Preparation ===

Make sure each scratchbox target has

  fakeroot apt-get build-dep libqt4-gui

(you may need to apt-get install libgl-dev too as it's not in the Build-Depends: yet)

===Building Qt from Git repository===

# Make sure you have all the build dependencies:&lt;br/&gt;&lt;pre&gt;fakeroot apt-get build-dep qt4-x11&lt;/pre&gt;
# Clone the repository:&lt;br/&gt;&lt;pre&gt;git clone git://gitorious.org/+qt-developers/qt/x11-maemo.git qt-maemo&lt;/pre&gt;&lt;br/&gt;
# Change dir:&lt;br/&gt;&lt;pre&gt;cd qt-maemo&lt;/pre&gt;
# Configure Qt:&lt;br/&gt;For x86 targets:&lt;pre&gt;./configure -maemo5&lt;/pre&gt;&lt;br/&gt;For ARM targets:&lt;pre&gt;./configure -maemo5 -opengl es2&lt;/pre&gt;.
# Build Qt:&lt;br/&gt;&lt;pre&gt;make&lt;/pre&gt;
# Install Qt:&lt;br/&gt;&lt;pre&gt;make install&lt;/pre&gt;

===Merging branches changes in the mainline [OLD]===

Before to merge your changes in the mainline, the code must be full working, cleaned and tested. A review from another developer is also needed in order to reduce the possibility to add errors.

===QML===

[[QML]] is a GUI interface building scripting language for Qt. Check out the [[QML-EnhancedCalcExample | QML calculator example]].

==F.A.Q.==

; ''I'm trying to compile a Qt application for ARMEL, but I got the error below. What's wrong?''
: &lt;pre&gt;/targets/FREMANTLE_X86/usr/include/qt4/QtCore/qatomic_i386.h:127: error: impossible constraint in 'asm'&lt;/pre&gt;
:You are using x86 include files, then you have to update your Makefile. Running &lt;code&gt;qmake&lt;/code&gt; before &lt;code&gt;make&lt;/code&gt; will be solve this issue.

; I'm trying to compile a Qt packcage for x86, but I got the error below. What's wrong?
: &lt;pre&gt;In file included from maemo/gconfsymbols.cpp:41:
 maemo/gconfsymbols_p.h:49:25: gconf/gconf.h: No such file or directory&lt;/pre&gt;
: Your scratchbox does not have &lt;code&gt;/bin/sh&lt;/code&gt;, so when calling &lt;code&gt;pkg-config&lt;/code&gt; from &lt;code&gt;qmake&lt;/code&gt;, &lt;code&gt;CFLAGS&lt;/code&gt; and &lt;code&gt;LIBS&lt;/code&gt; are not set correctly. Running &lt;code&gt;ln -s /scratchbox/tools/bin/sh /bin/sh&lt;/code&gt; will be solve this issue.

; I installed Qt (libqt4-dev) to scratchbox and tried to build a sample application, but I got the error because some header files such as qhildonstyle.h, and qvfbhdr.h etc. were missing
: libqt4-dev should copy all header files, but now, at least in 4.5.2-1maemo1, some files are missing. Please download file below and extract to your scratchbox system.
: &lt;pre&gt;http://qt4.garage.maemo.org/patches/qt4-missing-header.tgz&lt;/pre&gt;

[[Category:Development]]
[[Category:Qt]]</text>
    </revision>
  </page>
  <page>
    <title>Qt4 hildon applications</title>
    <id>2069</id>
    <revision>
      <id>37391</id>
      <timestamp>2010-07-30T10:40:18Z</timestamp>
      <contributor>
        <ip>195.34.30.225</ip>
      </contributor>
      <comment>/* Open Pref */</comment>
      <text xml:space="preserve">==Ported Qt Applications==
These applications are already available in Maemo [[extras]] repositories.

These applications are tested also with [[Open development/Maemo roadmap/Fremantle|Fremantle]]. If not, that should be mentioned. For Fremantle most applications need re-compiling/-packaging.

They live in extras if they are stable or [[extras-devel]] if they are not fully tested.

These entries should have at least:
* Application Name
* Short Description
* Website or link to the original sources
* Maemo website (If any)
* Bug reporting: Bug report tool link or author contact
* Repository: Extras and/or Extras-Devel

===Peg-E===
* Description: Peg-E is a peg solitaire game...
* Website: http://gottcode.org/peg-e/
* Maemo website: http://maemo.org/downloads/product/OS2008/peg-e
* Bug Reporting: http://qt4.garage.maemo.org/bug.html
* Repository: Extras

===Qt-Maemo-Example===
* Description: Simple text editor
* Website: http://www.trolltech.com
* Maemo website: http://maemo.org/downloads/product/OS2008/qt-maemo-example
* Bug Reporting: http://qt4.garage.maemo.org/bug.html
* Repository: Extras

===Simsu===
* Description: Sudoku game written in Qt
* Website: http://gottcode.org/simsu/
* Maemo website: http://maemo.org/downloads/product/OS2008/simsu/
* Bug Reporting: http://qt4.garage.maemo.org/bug.html
* Repository: Extras

===Shopper===
* Description: Shopping List application
* Website: http://shopper.garage.maemo.org/
* Maemo website: http://maemo.org/downloads/product/OS2008/shopper/
* Bug Reporting: http://bugs.maemo.org/enter_bug.cgi?product=shopper
* Repository: Extras


==Tested Qt Applications==
These applications are not yet in the Maemo extras repositories.

If you have tested a Qt application just for fun or because you are going to port an application that you haven't packaged for Maemo yet then this is the right place to put some notes about it.

These applications are tested also with Fremantle. If not, that should be mentioned. For Fremantle most applications need re-compiling/-packaging.

The entries in this section should have at least:
* Application Name
* Short Description
* Website or link to the original sources
* Maemo tester contact
* TODO list

===RetroMessenger===

* Application Name: RetroMessenger
* Short Description
 It is a server less and most secure Instant messenger based on QT and retroshare (http://retroshare.sf.net) having features of chat and Link-sharing and also available feature which can be included on requirement are Message, File sharing and Games.Further new implementation subject to available support in retroshare library is &quot;VOIP&quot;. 

* Website or link to the original sources
   http://retromessenger.sf.net.
   https://retromessenger.svn.sourceforge.net/svnroot/retromessenger/QTRS_retromessenger_mingw_SVN1139/retroshare/trunk/retroshare-gui/src/

* Maemo tester contact: panpaliamahen@gmail.com
* TODO list
  (1)To test on target with &quot;ARMEL&quot; compile.
  (2)Need to do packaging for Maemo (binary and used dlls are available, so     
     also require to make a debian package if required ).
  (3)Need to take care of available maximum Memory uses and few user     
     interfaces are required to cutomize according to size of mobile screen.
  

===Arora===
* Description: http://code.google.com/p/arora/
* Website: http://code.google.com/p/arora/
* Tester: antonio.aloisio AT gmail.com
* TODO
** There are too much menu entries. Remove them.
** Adapt the debian package to Maemo
* Sceenshots/Videos:

===Minitube===
* Description: http://www.qt-apps.org/content/show.php/Minitube?content=104895
* Website: http://www.qt-apps.org/content/show.php/Minitube?content=104895
* Tester: eetu.lehmusvuo AT ixonos.com
* TODO
** Adapt the debian package to Maemo
* Sceenshots/Videos:

==Proposed Qt Application to port/write==
If you are looking forward to see a specific Qt application in Maemo, then you can propose here to the Maemo Qt community to port/Write that app in/for Maemo.

The entries in this section must have at least:
* Application name (you can suggest a name if the app doesn't exist yet)
* Application description
* Applicant/s - if an application has been already requested and you really want to see that app in Maemo, then you can add your contact here next to the others.

===Blog client===
* Full featured blog client
** WYSIWYG editor
** Media upload support
* Applicant/s: 
** antonio.aloisio AT gmail.com
** your.name AT mail.org

===KeepassX password safe===
* Full featured cross platform password manager
** Stores usernames, passwords, urls, attachments, comments, ...
** Flexible management using titles, groups
** Password generator
** Cross platform solution: Linux - Mac - Windows
* Status
** Old version available from http://qt4.garage.maemo.org/dists/chinook/extras/binary-armel/keepassx/
** Old version (0.2.2-2osso and 0.2.2-3osso) works on Diablo once the required qt4 libs have been installed using apt-get
* Issues
** keepass.desktop file needs minor tweeking to display the icon correctly
** Keepass02.2 font size are too big for a internet tablet screen size, it works but it isn't comfortable or completely usable.
** Can't open a v.1.x database (exported from Keepass2). Hence, no import. Don't know what's wrong.
* Source code
** http://www.keepassx.org/downloads
* Applicant/s: 
** void09 AT gmail.com

===Fat Rat===
Powerful file/torrent download manager
http://qt-apps.org/content/show.php/FatRat?content=78577

===OpenPref===
Card game
http://qt-apps.org/content/show.php/OpenPref?content=112900

===Virtual MIDI Piano Keyboard===
http://qt-apps.org/content/show.php/Virtual+MIDI+Piano+Keyboard?content=88233

=== QBittorrent ===
http://qt-apps.org/content/show.php/qBittorrent?content=56413

=== Qt Spotify ===
http://qt.gitorious.org/qt-labs/qtspotify

=== IP Calc ===
http://qt-apps.org/content/show.php/IP+Calc?content=107286

=== Confusion ===
http://qt-apps.org/content/show.php/Confusion?content=108551

=== Klikit ===
Board game
http://qt-apps.org/content/show.php/Klikit?content=102867

=== Picture wall ===
http://qt-apps.org/content/show.php/Picture+Wall?content=106101

===GSKonquest  ===
Game
http://qt-apps.org/content/show.php/GSKonquest?content=106111

=== Google Translator ===
http://qt-apps.org/content/show.php/Google+Translator?content=100039

=== quteSms ===
http://qt-apps.org/content/show.php/quteSms?content=103430

=== snake ===
http://qt-apps.org/content/show.php/snake?content=104319

=== PEG E ===
Already available for N810
http://qt-apps.org/content/show.php/Peg-E?content=98289

=== SIMSU ===
Sudoku clone
Already available for N810
http://qt-apps.org/content/show.php/Simsu?content=97865

[[Category:Qt]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Qt5 Packaging</title>
    <id>5106</id>
    <revision>
      <id>46892</id>
      <timestamp>2012-03-05T11:05:49Z</timestamp>
      <contributor>
        <username>ahma</username>
        <id>5053</id>
      </contributor>
      <comment>New page: == Qt5 Packaking Process ==  Following procedure automates the communication between a packager, Gitorious and OBS.   Following directory paths are required:  * Clone of Qt5 Git repository...</comment>
      <text xml:space="preserve">== Qt5 Packaking Process ==

Following procedure automates the communication between a packager, Gitorious and OBS. 

Following directory paths are required:

* Clone of Qt5 Git repository (/work/qt5 in this example)
* Checkout of Qt5 project from selected OBS (/work/obs/qt5 in this example)
* Qt-specs (/work/qt-specs in this example) (https://gitorious.org/qt-spec-effort/qt-specs)

=== Prequicities ===

Checkout OBS Project
 machine:/work/obs$ osc co qt5

Clone git tree 
 machine:/work$ git clone git://gitorious.org/qt/qt5.git

=== Configuration ===

Open update-sources.sh for editing and change following details according to your directory structure:

 # QT5_DIR is the directory where qt5 and all the submodules have been
 # checked into
 QT5_DIR=/work/qt5
 
 # OBSDIR is the directory holding your OBS qt5 project
 OBSDIR=/work/obs/qt5


=== Process in nutshell ===

 ./update-sources.sh --help
 ./update-sources.sh --no-pull

update-sources.sh command has following functionality

* Fetch latest Qt5 tree from Gitorious
* Include .spec, .changes and .path files from qt-specs
* Create tarballs from Qt5 tree
* Commit previously mentioned source packages to OBS

=== Workflow ===

Create a patch:
 machine:/work/qt-specs$ ecmas qtbase/files/fix-borken-thingies.patch
 
Modify packaging:
 machine:/work/qt-specs$ ecmas qtbase/qtbase.spec

Commit changes to OBS:
 machine:/work/qt-specs$ ./update-sources.sh --no-pull

Follow OBS logs and fix more things.</text>
    </revision>
  </page>
  <page>
    <title>QtComponents</title>
    <id>5011</id>
    <revision>
      <id>47175</id>
      <timestamp>2012-04-08T11:58:30Z</timestamp>
      <contributor>
        <ip>83.33.253.22</ip>
      </contributor>
      <comment>/* Installation */</comment>
      <text xml:space="preserve">[[Image:Hello-world.png|thumb|right]]
The '''Qt Quick Components''' project provides a set of QML components to build user interfaces. These components allow interfaces to accept user input and provide feedback indicators.

== Abstract ==
This efford adds a new set of components to the already available ones for Symbian and MeeGo platforms, located at its own namespace.

 import org.maemo.fremantle 1.0  // for Core components
 import org.maemo.extras    1.0  // for Extras components

Right now, look and feel match the one you could find in a Harmattan device. Required support to let designers implement a QtComponents theme with Fremantle look and feel is an ongoing task. See [[/ThemeHowto]] for details

== Scope ==
Available packages are compatible with Qt libs from PR1.3 firmware. This implies that QtComponents are only compatible with QtQuick 1.0 language set. For improvements on this area see [[/RoadMap]].

== Installation ==
There's available an external repository with required packages. To install this catalog, point your N900 browser to [[http://bit.ly/pIsfgI this page]] and a Maemo5 repo catalog will be downloaded and installed into your phone. After that, Go to Application Manager and install '''qt-components-10-examples'''. This will install required packages to get QtComponents up and running.

QtComponents replaces internally meegotouch input context support with the one provided by [[Maliit]]. I encourage you to test it. To get VKB support, go again to Application Manager and select '''nemo-keyboard''' package.

== Usage ==
See [[/Miniature]] or [[/Butaca]] to know typical required changes to get a Harmattan app running onto Maemo5.

== Videos ==
See [[http://vimeo.com/user8224106 Kirumedia Vimeo channel]] for latest videos

== Get involved ==
There's a lot of task on which you could help to improve this package. Just take one. Everyone is welcomed.

{{#bugzilla:
  |columns=id,severity,priority,assignee,status,resolution,summary
  |product=qt-components
  |priority=High
  |status=unconfirmed,new,assigned,needinfo,reopened,resolved,verified
  |sort=status,severity,id
}}

=== Backlog ===

{{#bugzilla:
  |columns=id,severity,priority,assignee,status,resolution,summary
  |product=qt-components
  |priority=Medium,Low,Unspecified
  |status=unconfirmed,new,assigned,needinfo,reopened
  |sort=status,id
}}

=== Easyfix (suited for newcomers) ===

{{#bugzilla:
  |columns=id,severity,priority,assignee,status,resolution,summary
  |product=qt-components
  |keywords=easyfix
  |status=unconfirmed,new,assigned,reopened
  |sort=priority,severity,priority,status,id
}}


== Contact us ==
Feedback is welcomed!

* Via [http://forum.meego.com/showthread.php?t=4264 web forum]
* Bug reports and enhancement requests can be filed [http://bit.ly/p5vEKr here] ([https://bugs.maemo.org/enter_bug.cgi?product=qt-components file new bug])

== Thanks ==
Manuel Sardá from [[http://kirumedia.com Kirumedia]] for video editing.</text>
    </revision>
  </page>
  <page>
    <title>QtComponents/Butaca</title>
    <id>5018</id>
    <revision>
      <id>45308</id>
      <timestamp>2011-09-13T19:33:05Z</timestamp>
      <contributor>
        <username>inean</username>
        <id>4650</id>
      </contributor>
      <minor/>
      <comment>/* Adapt Packing files */</comment>
      <text xml:space="preserve">'''Butaca''' is an application to fetch movie-related information. You could see a more detailed description at [https://projects.developer.nokia.com/butaca/ its home page].

== Fetch sources ==
Get master code from git repository  located at [https://gitorious.org/butaca/butaca butaca repo]

== Remove unsupported libraries ==
Check control file to see deps of this apps. At first shight, it dependends of applauncherd and ShareUI. Right now, theres no replacement for this on Fremantle, so functionality provided should be removed.

=== Applauncherd ===
Provides a boost at instantiation time for apps that link with it. You could see more info at [http://harmattan-dev.nokia.com/unstable/beta/api_refs/showdoc.php?pkn=applauncherd&amp;wb=daily-docs&amp;url=Li94bWwvZGFpbHktZG9jcy9hcHBsYXVuY2hlcmQ%3D Harmmatan API Docs] Besides that, provides ''invoker'' a tool to launch programs and add splashscreen while application is starting.

We are going to loose splash screen

To remove this library, lookup for MDeclarativeCache inside code. Once again '''grep''' is your friend. Once located, replace it by standard QApplication and QDeclarativeView classes.

&lt;syntaxhighlight lang=&quot;diff&quot;&gt;
diff --git a/src/main.cpp b/src/main.cpp
index f27f608..8f1c989 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -22,24 +22,21 @@
 #include &lt;QtGui/QApplication&gt;
 #include &lt;QtDeclarative&gt;
 #include &lt;QDeclarativeContext&gt;
-#include &lt;MDeclarativeCache&gt;
 
 Q_DECL_EXPORT int main(int argc, char *argv[])
 {
-    QApplication *app = MDeclarativeCache::qApplication(argc, argv);
-    QDeclarativeView *view = MDeclarativeCache::qDeclarativeView();
+    QApplication app(argc, argv);
+    QDeclarativeView view;
 
-    QDeclarativeContext *context = view-&gt;rootContext();
+    QDeclarativeContext *context = view.rootContext();
     ButacaController *controller = new ButacaController(context);
 
-    view-&gt;setSource(QUrl(&quot;qrc:/qml/main.qml&quot;));
-    view-&gt;showFullScreen();
+    view.setSource(QUrl(&quot;qrc:/qml/main.qml&quot;));
+    view.showFullScreen();
 
-    int result = app-&gt;exec();
+    int result = app.exec();
 
     delete controller;
-    delete view;
-    delete app;
 
     return result;
 }
&lt;/syntaxhighlight&gt;

Remove boostable deps from project files.

&lt;syntaxhighlight lang=diff&gt;
diff --git a/butaca.pro b/butaca.pro
index 465a010..a493faf 100644
--- a/butaca.pro
+++ b/butaca.pro
@@ -55,14 +55,8 @@ OTHER_FILES += \
 RESOURCES += \
     res.qrc
 
-# enable booster
-CONFIG += qt-boostable qdeclarative-boostable \
-          shareuiinterface-maemo-meegotouch \
+CONFIG += shareuiinterface-maemo-meegotouch \
           mdatauri
-QMAKE_CXXFLAGS += -fPIC -fvisibility=hidden -fvisibility-inlines-hidden
-QMAKE_LFLAGS += -pie -rdynamic
-
-LIBS += -lmdeclarativecache
 
 butacascript.files = butaca
 butacascript.path = /usr/bin/
&lt;/syntaxhighlight&gt;

And invoker from desktop file

&lt;syntaxhighlight lang=&quot;diff&quot;&gt;
diff --git a/butaca.desktop b/butaca.desktop
index 4623ef8..d0af6f4 100644
--- a/butaca.desktop
+++ b/butaca.desktop
@@ -3,6 +3,6 @@ Encoding=UTF-8
 Version=1.0
 Type=Application
 Name=Butaca
-Exec=/usr/bin/invoker --single-instance --splash /usr/share/butaca/butaca-splash.jpg --type=d /usr/bin/butaca
+Exec=/usr/bin/butaca
 Icon=/usr/share/icons/hicolor/64x64/apps/butaca.png
 Categories=Network;
&lt;/syntaxhighlight&gt;

commit

=== ShareUI ===
Share UI is a set of libraries and executables that implements platform-wide selection of destinations to share content. See project [http://meego.gitorious.org/meego-sharing-framework/share-ui/blobs/master/README README] for details.

Right now, we are going to support for this library (By the way, it seems portable to maemo5 without LMT. Any volunteers ?). Butacas defines a ButacaController class to share user preferences with others. So, we follow a 2 step approach

==== Hide ShareUI from C++ Code ====
Easy. we Just use Q_WS_MAEMO_5 and Q_WS_SIMULATOR to get this code compilable on Maemo5 and QtSimulator.

&lt;syntaxhighlight lang=&quot;diff&quot;&gt;
diff --git a/src/butacacontroller.cpp b/src/butacacontroller.cpp
index edba60a..ea58198 100644
--- a/src/butacacontroller.cpp
+++ b/src/butacacontroller.cpp
@@ -4,8 +4,11 @@
 #include &quot;sortfiltermodel.h&quot;
 
 #include &lt;QDeclarativeContext&gt;
+
+#if !defined(Q_WS_MAEMO_5) &amp;&amp; !defined(Q_WS_SIMULATOR)
 #include &lt;maemo-meegotouch-interfaces/shareuiinterface.h&gt;
-#include &lt;MDataUri&gt;
+# include &lt;MDataUri&gt;
+#endif
 
 ButacaController::ButacaController(QDeclarativeContext *context) :
     QObject(),
@@ -36,6 +39,7 @@ ButacaController::~ButacaController()
 
 void ButacaController::share(QString title, QString url)
 {
+#if !defined(Q_WS_MAEMO_5) &amp;&amp; !defined(Q_WS_SIMULATOR)
     // See https://meego.gitorious.org/meego-sharing-framework/share-ui/blobs/master/examples/link-share/page.cpp
     // and http://forum.meego.com/showthread.php?t=3768
     MDataUri dataUri;
@@ -52,6 +56,10 @@ void ButacaController::share(QString title, QString url)
     } else {
         qCritical() &lt;&lt; &quot;Invalid interface&quot;;
     }
+#else
+    Q_UNUSED(title);
+    Q_UNUSED(url);
+#endif
 }
 
 void ButacaController::fetchTheaters(QString location)
&lt;/syntaxhighlight&gt;

And disable config requirements on butaca.pro

&lt;syntaxhighlight lang=&quot;diff&quot;&gt;
diff --git a/butaca.pro b/butaca.pro
index a493faf..268b85a 100644
--- a/butaca.pro
+++ b/butaca.pro
@@ -55,8 +55,10 @@ OTHER_FILES += \
 RESOURCES += \
     res.qrc
 
+!maemo5:!simulator {
 CONFIG += shareuiinterface-maemo-meegotouch \
           mdatauri
+}
 &lt;/syntaxhighlight&gt;

==== Disable functionality on QML land ====
Disable share button on butaca toolbar

&lt;syntaxhighlight lang=&quot;diff&quot;&gt;
diff --git a/qml/ButacaToolBar.qml b/qml/ButacaToolBar.qml
index a57bbcb..a7d2ebe 100644
--- a/qml/ButacaToolBar.qml
+++ b/qml/ButacaToolBar.qml
@@ -83,7 +83,7 @@ ToolBarLayout {
             when: content !== undefined
             PropertyChanges {
                 target: shareIcon
-                enabled: true
+                enabled: false
                 visible: true
             }
             PropertyChanges {
&lt;/syntaxhighlight&gt;

commit

== Refactor QML files ==
As on [QtComponents/Miniature], we need to replace namespace by the fremantle one. In this case we need to go a bit further.

=== Update namespace ===
Use [QtComponents/migrateTo], sed or an app like regexxer. See [QtComponents/Miniature] for required changes

==== Hardcoded Paths ====
Butaca fetch Properties directly from UIConstants.js js library. This library is private to QtComponents, so it uses a file://point/to/uiConstants.js schemas that we should also change.

See [[QtComponents/ThemeHowto]] for a better (and non upstream portable) way of doing this.

=== Remove QtQuick 1.1 code ===
Reached this point. Project should be runnable on QtSimulator. '''Use QtSimulator 1.1'''. If we get console.log errors, it would be produced by unsupported QtQuick 1.1 code.

&lt;syntaxhighlight lang=&quot;bash&quot;&gt;
PATH/TO/QTSIMULATOR 1.1/Qt/gcc/bin/qmake butaca.pro &amp;&amp; make &amp;&amp; ./butaca
&lt;/syntaxhighlight&gt;

See [[QtComponents/QtSimulator]] for hints about how to get QtComponents running on it

After a trial and error process we get:
&lt;syntaxhighlight lang=&quot;diff&quot;&gt;
diff --git a/qml/MultipleMoviesDelegate.qml b/qml/MultipleMoviesDelegate.qml
index 03b5a05..df468de 100644
--- a/qml/MultipleMoviesDelegate.qml
+++ b/qml/MultipleMoviesDelegate.qml
@@ -107,7 +107,9 @@ Item {
                     font.weight: movieDelegate.titleWeight
                     font.pixelSize: movieDelegate.titleSize
                     color: movieDelegate.titleColor
-                    maximumLineCount: 3
+                   //{QTQUICK1.1
+                   //maximumLineCount: 3
+                   //}
                     wrapMode: Text.WordWrap
                     text: title
                 }
&lt;/syntaxhighlight&gt;

commit.

== Handle Close events ==
This is easy in this case.

&lt;syntaxhighlight lang=&quot;diff&quot;&gt;
diff --git a/src/main.cpp b/src/main.cpp
index 8f1c989..2fef2c3 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -32,6 +32,7 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
     ButacaController *controller = new ButacaController(context);
 
     view.setSource(QUrl(&quot;qrc:/qml/main.qml&quot;));
+    QObject::connect((QObject*)view.engine(), SIGNAL(quit()), &amp;app, SLOT(quit()));
     view.showFullScreen();
 
     int result = app-&gt;exec();
&lt;/syntaxhighlight&gt;

commit

== Adapt deployment to Fremantle == 
Some changes on how '''Butaca''' is deployed are needed to match Fremantle requirements.

=== Deployment ===
Add minimal changes to fit fremantle

==== Optify ====
Point binary to /opt and adapt paths to Fremantle

&lt;syntaxhighlight lang=&quot;diff&quot;&gt;
diff --git a/butaca.desktop b/butaca.desktop
index d0af6f4..6b552de 100644
--- a/butaca.desktop
+++ b/butaca.desktop
@@ -3,6 +3,6 @@ Encoding=UTF-8
 Version=1.0
 Type=Application
 Name=Butaca
-Exec=/usr/bin/butaca
-Icon=/usr/share/icons/hicolor/64x64/apps/butaca.png
+Exec=/opt/bin/butaca
+Icon=butaca
 Categories=Network;
diff --git a/butaca.pro b/butaca.pro
index 268b85a..a7b1fa8 100644
--- a/butaca.pro
+++ b/butaca.pro
@@ -61,15 +61,15 @@ CONFIG += shareuiinterface-maemo-meegotouch \
 }
 
 butacascript.files = butaca
-butacascript.path = /usr/bin/
+butacascript.path = /opt/bin/
 
 desktop.files = butaca.desktop
-desktop.path = /usr/share/applications/
+desktop.path = /usr/share/applications/hildon/
 
 icon.files = butaca.png
 icon.path  = /usr/share/icons/hicolor/64x64/apps/
 
 splash.files = butaca-splash.jpg
-splash.path = /usr/share/butaca/
+splash.path = /opt/share/butaca/
 
 INSTALLS += butacascript desktop icon splash
&lt;/syntaxhighlight&gt;

commit

== Update packing scripts ==
Now that all required changes are commited. generate patches with
&lt;syntaxhighlight lang=&quot;bash&quot;&gt;git format-patch origin/master&lt;/syntaxhighlight&gt;
and copy generated files into debian/patches directory.

Finally, modify rules file at debian directory to merge patches. At cdbs rules definition add:
&lt;syntaxhighlight lang=&quot;make&quot;&gt;include /usr/share/cdbs/1/rules/simple-patchsys.mk
&lt;/syntaxhighlight&gt;

==== Adapt Packing files ====
Set debhelper from 7 to 5 and remove unused deps

&lt;syntaxhighlight lang=&quot;diff&quot;&gt;
diff --git a/debian/compat b/debian/compat
index 7f8f011..7ed6ff8 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-7
+5
diff --git a/debian/control b/debian/control
index 374197b..d1711dd 100644
--- a/debian/control
+++ b/debian/control
@@ -2,9 +2,8 @@ Source: butaca
 Section: user/network
 Priority: extra
 Maintainer: Simon Pena &lt;spena@igalia.com&gt;
-Build-Depends: debhelper (&gt;= 7), applauncherd-dev, cdbs,
- libqt4-dev, maemo-meegotouch-interfaces-dev, libmdatauri-dev,
- libqtwebkit-dev
+Build-Depends: debhelper (&gt;= 5), cdbs,
+ libqt4-dev, libqt4-webkit-dev, quilt
 Standards-Version: 3.8.4
 XB-Maemo-Flags: visible
 XB-Homepage: https://projects.developer.nokia.com/butaca/
&lt;/syntaxhighlight&gt;

And thats all. You have '''Butaca''' working on Maemo5</text>
    </revision>
  </page>
  <page>
    <title>QtComponents/DevelFAQ</title>
    <id>5019</id>
    <revision>
      <id>45339</id>
      <timestamp>2011-09-16T15:47:12Z</timestamp>
      <contributor>
        <username>inean</username>
        <id>4650</id>
      </contributor>
      <comment>New page: == StatusBar == === How can I show task/close switch button in the statusbar ? === Simply, you cant. StatusBar is designed to hold system indicators like battery status, mobile phone opera...</comment>
      <text xml:space="preserve">== StatusBar ==
=== How can I show task/close switch button in the statusbar ? ===
Simply, you cant. StatusBar is designed to hold system indicators like battery status, mobile phone operator, signal strength, positioned in the same place where switch button is supposed to be. Also, add finger size buttons requires a bigger (more height) status bar.</text>
    </revision>
  </page>
  <page>
    <title>QtComponents/Miniature</title>
    <id>5014</id>
    <revision>
      <id>45290</id>
      <timestamp>2011-09-13T17:03:52Z</timestamp>
      <contributor>
        <username>uvatbc</username>
        <id>2223</id>
      </contributor>
      <minor/>
      <comment>Typos and grammar</comment>
      <text xml:space="preserve">'''Miniature''' is a chess game currently maintained by Michael Hasselmann and Quim Gil and targeted to Harmattan devices. See more about it on [[Miniature]] page.

I'm going to make use of this project as an example of the required changes to get it working on Fremantle

== Fetch sources ==
Get master code from repo following intructions at [[Miniature/Development]]

== Refactor QML files ==
QtComponents use its own namespace inside fremantle. you need to replace:
{|
|QtQuick 1.1
|QtQuick 1.0
|-
|com.nokia.meego     1.0
|org.maemo.fremantle 1.0
|-
|com.nokia.extras    1.0
|org.maemo.extras    1.0
|-
|Qt.labs.components 1.1
|Qt.labs.components 1.0
|}

=== Change meego namespace by fremantle one ===
There is a simple script to do this task located at [https://qt.gitorious.org/~inean/qt-components/ineans-qt-components/blobs/fremantle-1.0/src/fremantle/migrateTo gitorious]. invoke inside miniature directory as:

&lt;syntaxhighlight lang=&quot;bash&quot;&gt;
migrateTo --fremantle '*.qml'
&lt;/syntaxhighlight&gt;

=== Remove QtQuick 1.1  code ===
After that, you should lookup for '''QtQuick 1.1''' properties. In current upstream code threre's no one. :). The easiest way to achieve this is to use QtSimulator 1.1 and try to run code inside it. See [[QtComponents/Simulator]] to know how to get QtComponents running on QtSimulator.

commit.

== Handle Close events ==
QtComponents uses Qt.quit() event to notify application backends that user has requested to close window. Miniature doesn't handle this event on its own, so we need to add it.

First, lookup for a DeclarativeView or 'show' call inside miniature directory. A '''grep''' command point us to miniature.cc file. We add a close Slot to deal with Qt.quit() event.

&lt;syntaxhighlight lang=&quot;diff&quot;&gt;
diff --git a/game/frontend/miniature.cc b/game/frontend/miniature.cc
index 4735a72..769f8ee 100644
--- a/game/frontend/miniature.cc
+++ b/game/frontend/miniature.cc
@@ -150,6 +150,9 @@ Miniature::Miniature(Dispatcher *dispatcher,
     d-&gt;ui.rootContext()-&gt;setContextProperty(&quot;localSide&quot;, &amp;d-&gt;local_side);
     d-&gt;ui.rootContext()-&gt;setContextProperty(&quot;remoteSide&quot;, &amp;d-&gt;remote_side);
     d-&gt;ui.rootContext()-&gt;setContextProperty(&quot;activeGame&quot;, &amp;d-&gt;game_element);
+    
+    connect(d-&gt;ui.engine(), SIGNAL(quit()), this, SLOT(quit()), Qt::UniqueConnection);
+
 #endif
 
     d-&gt;command_line.setFlags(all_commands);
@@ -161,6 +164,12 @@ Miniature::Miniature(Dispatcher *dispatcher,
 Miniature::~Miniature()
 {}
 
+void Miniature::quit()
+{
+    Q_D(Miniature);
+    d-&gt;command_line.processToken(QByteArray(&quot;quit&quot;));
+}
+
void Miniature::show(const QUrl &amp;ui)
{
     Q_D(Miniature);
diff --git a/game/frontend/miniature.h b/game/frontend/miniature.h
index c4e7e91..42f4f28 100644
--- a/game/frontend/miniature.h
+++ b/game/frontend/miniature.h
@@ -201,6 +201,7 @@ public:
 private:    
     void sendCommand(AbstractCommand *command);
     Q_SLOT void onPositionChanged(const Position &amp;position);
+    Q_SLOT void quit();
 };
 
 }} // namespace Game, Frontend
&lt;/syntaxhighlight&gt;

commit

== Adapt deployment to Fremantle == 
Some changes on how miniature is deployed are needed to match Fremantle.

=== Optify code ===
use a PREFIX config variable to change default target dir from /usr to /opt. Also update locations of desktop and icon applications

&lt;syntaxhighlight lang=&quot;diff&quot;&gt;
diff --git a/config.pri b/config.pri
index 1c955c4..31be944 100644
--- a/config.pri
+++ b/config.pri
@@ -8,6 +8,13 @@ GAME_DIR = $${DIR_PREFIX}/game
 SRC_DIR = $${DIR_PREFIX}/src
 TESTS_DIR = $${DIR_PREFIX}/tests
 
+isEmpty( PREFIX ) {
+  PREFIX = /usr          
+  maemo5 {
+    PREFIX = /opt
+  }
+}
+
 enable-gui {
     DEFINES += MINIATURE_GUI_ENABLED
 }
 diff --git a/src/src.pro b/src/src.pro
index fca7c29..bf35139 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -89,7 +89,7 @@ LIBS += \
 
 }
-target.path = /usr/games
+target.path = $${PREFIX}/games
 target.depends += \
     $${IN_PWD}/frontend/frontend.qrc \
     $${IN_PWD}/frontend/MainPage.qml \
@@ -104,10 +104,10 @@ target.depends += \
     $${IN_PWD}/frontend/SeekGame.qml \
 
 desktop.files = ../miniature.desktop
-desktop.path = /usr/share/applications
+desktop.path = /usr/share/applications/hildon
 
 icon.files = $${TARGET}-n9.png
-icon.path = /usr/share/themes/base/meegotouch/icons/
+icon.path = /usr/share/icons/hicolor/64x64/
 
 INSTALLS += \
     target \
&lt;/syntaxhighlight&gt;

=== Update Desktop file ===
And finally, update desktop file. There's no applauncerd on fremantle, so remove invoker from Exec.

&lt;syntaxhighlight lang=&quot;diff&quot;&gt;
diff --git a/miniature.desktop b/miniature.desktop
index dc88397..9f29209 100644
--- a/miniature.desktop
+++ b/miniature.desktop
@@ -4,5 +4,5 @@ Version=1.0
 Terminal=false
 Type=Application
 Name=Miniature
-Exec=invoker --single-instance --type=d /usr/games/miniature
-Icon=/usr/share/themes/base/meegotouch/icons/miniature-n9.png
+Exec=/opt/games/miniature
+Icon=miniature-n9
diff --git a/src/src.pro b/src/src.pro
index 1b1356c..f42a6f9 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -95,7 +95,7 @@ LIBS += \
 
 }
&lt;/syntaxhighlight&gt;

commit

== Update packing scripts ==
Now that all required changes are commited. generate patches with
&lt;syntaxhighlight lang=&quot;bash&quot;&gt;git format-patch origin/master&lt;/syntaxhighlight&gt;
and copy generated files into debian/patches directory.

Finally, modify rules file at debian directory to merge patches. At '''config-stamp''' rule add:
&lt;syntaxhighlight lang=&quot;make&quot;&gt;for p in debian/patches/*; do patch -p1 &lt; $$p; done
&lt;/syntaxhighlight&gt;

And thats all. You have upstream '''miniature''' working on Maemo5</text>
    </revision>
  </page>
  <page>
    <title>QtComponents/missing icons</title>
    <id>5207</id>
    <revision>
      <id>48303</id>
      <timestamp>2012-06-10T14:21:37Z</timestamp>
      <contributor>
        <username>qwazix</username>
        <id>4592</id>
      </contributor>
      <comment>New page: === This is an effort to provide open icons for qt components ===  Please reorder the list moving the most needed icons to the top. There is an interface to gather all the icons made here ...</comment>
      <text xml:space="preserve">=== This is an effort to provide open icons for qt components ===

Please reorder the list moving the most needed icons to the top. There is an interface to gather all the icons made here http://play.oob.gr/annasIconMaker/toolbaricons/


=== List of missing qt components icons ===
 &lt;nowiki&gt;
2,32,32,png,meegotouch/icons/icon-s-music-video-shuffle-on.png
4,24,24,png,meegotouch/icons/icon-s-calendar-location-picker.png
12,40,40,png,meegotouch/icons/icon-m-toolbar-select-text-white-selected.png
18,64,64,png,meegotouch/icons/icon-m-content-business.png
20,20,20,png,meegotouch/icons/icon-s-status-notifier-call-missed.png
21,40,40,png,meegotouch/icons/icon-m-toolbar-reply-white-selected.png
25,80,80,png,meegotouch/icons/icon-l-widget-gallery.png
36,40,40,png,meegotouch/icons/icon-m-toolbar-grid-dimmed.png
41,40,40,png,meegotouch/icons/icon-m-toolbar-repeat-white.png
48,40,40,png,meegotouch/icons/icon-m-toolbar-favorite-unmark-dimmed-white.png
54,40,40,png,meegotouch/icons/icon-l-store-main-view.png
66,40,40,png,meegotouch/icons/icon-l-journeys-main-view.png
72,48,48,png,meegotouch/icons/icon-m-common-unlocked-inverse.png
73,64,64,png,meegotouch/icons/icon-m-content-health-care-inverse.png
74,48,48,png,meegotouch/icons/icon-m-weather-shower.png
94,48,48,png,meegotouch/icons/icon-m-camera-flash-off-pressed.png
116,64,64,png,meegotouch/icons/icon-m-camera-filter-vivid.png
120,256,256,png,meegotouch/icons/icon-l-sharing-open-document-presentation.png
133,12,16,png,meegotouch/icons/icon-s-transfer-pending.png
134,64,64,png,meegotouch/icons/icon-m-conversation-contact-attention-dialog.png
137,48,48,png,meegotouch/icons/icon-m-facebook-smiley-heart.png
140,854,480,png,meegotouch/images/system-services/malfNOK_tr.png
141,40,40,png,meegotouch/icons/icon-l-videos-tv-main-view.png
150,64,64,png,meegotouch/icons/icon-m-converation-contact-attention.png
152,20,20,png,meegotouch/icons/icon-s-status-notifier-calendar.png
155,40,40,png,meegotouch/icons/icon-m-toolbar-list-selected.png
157,854,480,jpg,meegotouch/images/splash/meegotouch-twitter-splash.jpg
159,40,40,png,meegotouch/icons/icon-l-music-main-view.png
169,40,40,png,meegotouch/icons/icon-m-toolbar-column-dimmed.png
173,40,40,png,meegotouch/icons/icon-m-toolbar-volume-dimmed-white.png
175,80,80,png,meegotouch/icons/icon-l-journeys.png
178,18,18,png,meegotouch/icons/icon-s-facebook-smiley-worried.png
180,48,48,png,meegotouch/icons/icon-m-camera-flash-auto-pressed.png
186,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-pause-dimmed-white.png
202,854,480,png,meegotouch/images/system-services/malfNOK_es_419.png
206,40,40,png,meegotouch/icons/icon-l-flickr-main-view.png
209,24,24,png,meegotouch/icons/icon-s-music-video-favorite-unmark.png
210,64,64,png,meegotouch/icons/icon-m-content-localities-inverse.png
212,40,40,png,meegotouch/icons/icon-m-toolbar-frequent-used-selected.png
227,64,64,png,meegotouch/icons/icon-m-telephony-voicemail-dimmed.png
231,40,40,png,meegotouch/icons/icon-m-toolbar-headphones-selected.png
242,64,64,png,meegotouch/icons/icon-m-service-gtalk.png
246,48,48,png,meegotouch/icons/icon-m-input-methods-previous.png
247,40,40,png,meegotouch/icons/icon-m-toolbar-directory-move-to-dimmed-white.png
257,64,64,png,meegotouch/icons/icon-m-common-addressbook-inverse.png
268,18,18,png,meegotouch/icons/icon-s-facebook-smiley-heart.png
276,128,128,png,meegotouch/icons/icon-l-energy-management-charging.png
280,64,64,png,meegotouch/icons/icon-l-picasa.png
281,854,480,png,meegotouch/images/system-services/malf_fr_CA.png
282,64,64,png,meegotouch/icons/icon-m-content-open-document-presentation-inverse.png
285,40,40,png,meegotouch/icons/icon-m-toolbar-reply-all-white-selected.png
290,40,40,png,meegotouch/icons/icon-m-toolbar-jump-to.png
301,64,64,png,meegotouch/icons/icon-m-content-favourites-inverse.png
302,32,32,png,meegotouch/icons/icon-m-telephony-callhistory-initiated.png
308,80,80,png,meegotouch/icons/icon-l-store.png
323,40,40,png,meegotouch/icons/icon-m-toolbar-next-selected.png
324,40,40,png,meegotouch/icons/icon-m-toolbar-favorite-mark-white.png
337,64,64,png,meegotouch/icons/icon-m-notification-transfer-error.png
344,40,40,png,meegotouch/icons/icon-m-toolbar-dimmed-application.png
350,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-pause-selected.png
353,64,64,png,meegotouch/icons/icon-m-content-thumbnail-broken.png
357,40,40,png,meegotouch/icons/icon-m-toolbar-new-message-selected.png
358,40,40,png,meegotouch/icons/icon-m-toolbar-undo-dimmed-white.png
366,64,64,png,meegotouch/icons/icon-m-notification-sim-services.png
375,854,480,png,meegotouch/images/system-services/malfNOK_fr_CA.png
379,32,32,png,meegotouch/icons/icon-s-musik-video-ovi.png
382,40,40,png,meegotouch/icons/icon-m-toolbar-jump-to-white-selected.png
383,48,48,png,meegotouch/icons/icon-m-common-tag-selected.png
388,64,64,png,meegotouch/icons/icon-m-camera-filter-black-white-selected.png
404,32,32,png,meegotouch/icons/icon-s-input-method-left.png
422,854,480,png,meegotouch/images/system-services/malf_pt_BR.png
429,64,64,png,meegotouch/icons/icon-m-telephony-handsfree-button-selected.png
434,64,64,png,meegotouch/icons/icon-m-content-mms-inverse.png
446,32,32,png,meegotouch/icons/icon-s-email-priority-low.png
452,132,132,png,meegotouch/icons/icon-l-camera-standby.png
456,48,48,png,meegotouch/icons/icon-m-weather-cold.png
459,256,256,png,meegotouch/icons/icon-l-sharing-image.png
460,40,40,png,meegotouch/icons/icon-m-toolbar-pages-all-selected.png
467,40,40,png,meegotouch/icons/icon-m-toolbar-tools-dimmed-white.png
475,64,64,png,meegotouch/icons/icon-m-content-description-inverse.png
477,32,32,png,meegotouch/icons/icon-s-broken-image.png
494,40,40,png,meegotouch/icons/icon-m-low-power-mode-calendar.png
500,256,256,png,meegotouch/icons/icon-l-sharing-powerpoint.png
502,40,40,png,meegotouch/icons/icon-m-toolbar-gallery-white-selected.png
505,40,40,png,meegotouch/icons/icon-m-toolbar-up-white-selected.png
518,64,64,png,meegotouch/icons/icon-m-transfer-pending.png
521,40,40,png,meegotouch/icons/icon-m-toolbar-refresh2-white.png
528,854,480,png,meegotouch/images/system-services/malf_en.png
530,40,40,png,meegotouch/icons/icon-m-toolbar-new-chat-white.png
547,26,26,png,meegotouch/icons/icon-s-camera-low-brightness.png
552,64,64,png,meegotouch/icons/icon-m-telephony-video-call-button-dimmed.png
554,36,34,png,meegotouch/icons/icon-m-conversation-group-chat-leave.png
560,32,32,png,meegotouch/icons/icon-m-camera-resolution-7m.png
562,40,40,png,meegotouch/icons/icon-m-toolbar-main-view-white.png
567,854,480,png,meegotouch/images/system-services/malfNOK_pt_BR.png
569,32,32,png,meegotouch/icons/icon-s-music-video-search.png
590,32,32,png,meegotouch/icons/icon-s-music-video-ovi.png
591,40,40,png,meegotouch/icons/icon-m-toolbar-new-chat-dimmed.png
595,854,480,png,meegotouch/images/system-services/malfNOK_pl.png
596,854,480,png,meegotouch/images/system-services/malfNOK_pt.png
605,40,40,png,meegotouch/icons/icon-m-toolbar-up-dimmed.png
611,40,40,png,meegotouch/icons/icon-m-toolbar-captured-white.png
613,48,48,png,meegotouch/icons/icon-m-camera-flash-always-pressed.png
622,40,40,png,meegotouch/icons/icon-m-toolbar-undo-selected.png
624,64,64,png,meegotouch/icons/icon-m-camera-no-filter.png
629,48,48,png,meegotouch/icons/icon-m-input-methods-close.png
638,64,64,png,meegotouch/icons/icon-m-service-service-att.png
651,64,64,png,meegotouch/icons/icon-m-content-url.png
663,40,40,png,meegotouch/icons/icon-m-toolbar-jump-to-dimmed.png
670,40,40,png,meegotouch/icons/icon-m-toolbar-repeat-dimmed-white.png
671,64,64,png,meegotouch/icons/icon-m-content-url-inverse.png
672,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-stop-white-selected.png
687,32,32,png,meegotouch/icons/icon-s-common-locked.png
698,32,32,png,meegotouch/icons/icon-s-service-skype.png
700,15,15,png,meegotouch/icons/icon-s-music-video-play.png
702,64,64,png,meegotouch/icons/icon-m-transfer-done.png
711,64,64,png,meegotouch/icons/icon-m-content-todo.png
719,64,64,png,meegotouch/icons/icon-m-service-sip.png
722,256,256,png,meegotouch/icons/icon-l-sharing-note.png
725,40,40,png,meegotouch/icons/icon-m-toolbar-tag-white-selected.png
726,40,40,png,meegotouch/icons/icon-m-toolbar-select-text-dimmed.png
731,64,64,png,meegotouch/icons/icon-m-conversation-contact-attention.png
732,64,64,png,meegotouch/icons/icon-m-content-quick-guide-inverse.png
736,64,64,png,meegotouch/icons/icon-m-content-document-inverse.png
738,24,24,png,meegotouch/icons/icon-m-lockscreen-mediacontrol-next-selected.png
744,40,40,png,meegotouch/icons/icon-m-toolbar-new-chat-selected.png
748,32,32,png,meegotouch/icons/icon-s-input-method-down.png
749,40,40,png,meegotouch/icons/icon-m-toolbar-up-white.png
775,32,32,png,meegotouch/icons/icon-s-service-picasa.png
776,40,40,png,meegotouch/icons/icon-m-toolbar-new-chat-white-selected.png
778,40,40,png,meegotouch/icons/icon-m-toolbar-dialer-white.png
779,32,32,png,meegotouch/icons/icon-m-textinput-combobox-arrow-selected.png
780,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-play-white-selected.png
787,48,48,png,meegotouch/icons/icon-m-weather-partly-cloudy.png
790,40,40,png,meegotouch/icons/icon-m-toolbar-tools-dimmed.png
794,854,480,png,meegotouch/images/system-services/malfNOK_ru.png
804,64,64,png,meegotouch/icons/icon-m-telephony-call-split.png
813,40,40,png,meegotouch/icons/icon-m-toolbar-delete-selected.png
825,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-pause-dimmed.png
830,64,64,png,meegotouch/icons/icon-m-content-game-inverse.png
833,40,40,png,meegotouch/icons/icon-m-toolbar-tab-previous-dimmed.png
841,80,80,png,meegotouch/icons/icon-l-calendar-10.png
843,80,80,png,meegotouch/icons/icon-l-calendar-12.png
845,80,80,png,meegotouch/icons/icon-l-calendar-14.png
846,80,80,png,meegotouch/icons/icon-l-calendar-17.png
847,80,80,png,meegotouch/icons/icon-l-calendar-16.png
848,80,80,png,meegotouch/icons/icon-l-calendar-19.png
849,80,80,png,meegotouch/icons/icon-l-calendar-18.png
850,64,64,png,meegotouch/icons/icon-m-content-tv-show-inverse.png
853,64,64,png,meegotouch/icons/icon-m-camera-filter-black-white.png
854,40,40,png,meegotouch/icons/icon-m-toolbar-tag-white.png
864,64,64,png,meegotouch/icons/icon-m-service-youtube.png
870,64,64,png,meegotouch/icons/icon-m-telephony-volume-button.png
871,64,64,png,meegotouch/icons/icon-m-content-pdf-inverse.png
872,64,64,png,meegotouch/icons/icon-m-bluetooth-off.png
896,40,40,png,meegotouch/icons/icon-m-toolbar-new-email-selected.png
897,64,64,png,meegotouch/icons/icon-m-service-myspace.png
901,40,40,png,meegotouch/icons/icon-m-toolbar-new-email.png
904,256,256,png,meegotouch/icons/icon-l-sharing-videos.png
918,40,40,png,meegotouch/icons/icon-m-toolbar-image-edit-dimmed-white.png
933,32,32,png,meegotouch/icons/icon-s-telephony-video-call.png
935,40,40,png,meegotouch/icons/icon-m-browser-clear.png
936,40,40,png,meegotouch/icons/icon-m-toolbar-search-selected.png
938,32,32,png,meegotouch/icons/icon-s-music-video-stop-accent.png
939,64,64,png,meegotouch/icons/icon-m-content-music-store.png
946,64,64,png,meegotouch/icons/icon-m-content-famous-person-inverse.png
963,854,480,png,meegotouch/images/system-services/malfNOK_da.png
973,40,40,png,meegotouch/icons/icon-m-toolbar-column-white-dimmed.png
982,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-previous-dimmed.png
985,32,32,png,meegotouch/icons/icon-m-common-filter.png
988,40,40,png,meegotouch/icons/icon-m-toolbar-tools-selected.png
990,40,40,png,meegotouch/icons/icon-m-toolbar-edit-white.png
991,19,18,png,meegotouch/icons/icon-s-status-flight-mode.png
998,62,63,png,meegotouch/icons/icon-l-meegotouchtheme-blanco.png
1006,13,13,png,meegotouch/icons/icon-s-unselected-page-inverse.png
1013,64,64,png,meegotouch/icons/icon-m-content-nfc.png
1018,48,48,png,meegotouch/icons/icon-m-image-edit-crop-handle.png
1024,40,40,png,meegotouch/icons/icon-m-toolbar-favorite-unmark-white-selected.png
1028,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-backwards-white-selected.png
1036,20,20,png,meegotouch/icons/icon-s-status-notifier-voicemail.png
1041,80,80,png,meegotouch/icons/icon-l-calendar-30.png
1046,64,64,png,meegotouch/icons/icon-m-content-word-inverse.png
1050,40,40,png,meegotouch/icons/icon-m-toolbar-attachment-dimmed-white.png
1051,40,40,png,meegotouch/icons/icon-m-toolbar-edit-white-selected.png
1064,48,48,png,meegotouch/icons/icon-m-camera-flash-always-choice.png
1065,40,40,png,meegotouch/icons/icon-l-rss-main-view.png
1068,40,40,png,meegotouch/icons/icon-m-toolbar-dimmed-main-view.png
1079,40,40,png,meegotouch/icons/icon-m-toolbar-refresh2-selected.png
1085,48,48,png,meegotouch/icons/icon-m-common-add-contact-disabled.png
1093,40,40,png,meegotouch/icons/icon-m-toolbar-forward-dimmed.png
1095,48,48,png,meegotouch/icons/icon-m-telephony-volume-off-button.png
1099,64,64,png,meegotouch/icons/icon-m-service-hotmail.png
1101,64,64,png,meegotouch/icons/icon-m-content-art-culture-inverse.png
1104,80,80,png,meegotouch/icons/icon-l-nokia.png
1108,64,64,png,meegotouch/icons/icon-m-content-file-not-supported-inverse.png
1109,15,15,png,meegotouch/icons/icon-s-music-video-pause.png
1111,16,20,png,meegotouch/icons/icon-s-status-transfer-pending.png
1116,32,32,png,meegotouch/icons/icon-s-service-bing.png
1120,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-backwards-selected.png
1121,64,64,png,meegotouch/icons/icon-m-content-voipcall.png
1127,64,64,png,meegotouch/icons/icon-m-content-mms-dialog.png
1130,64,64,png,meegotouch/icons/icon-m-content-voicemail-inverse.png
1135,40,40,png,meegotouch/icons/icon-m-toolbar-volume-off-white-selected.png
1139,32,32,png,meegotouch/icons/icon-s-service-yandex.png
1146,32,32,png,meegotouch/icons/icon-s-service-dopplr.png
1155,64,64,png,meegotouch/icons/icon-m-content-camera-inverse.png
1161,854,480,png,meegotouch/images/system-services/malf_zh_TW.png
1165,22,22,png,meegotouch/icons/icon-s-camera-low-contrast.png
1172,20,20,png,meegotouch/icons/icon-s-status-gps-searching.png
1173,40,40,png,meegotouch/icons/icon-m-toolbar-tab-next-dimmed-white.png
1175,64,64,png,meegotouch/icons/icon-m-content-tutorial.png
1176,40,40,png,meegotouch/icons/icon-l-drive-main-view.png
1186,256,256,png,meegotouch/icons/icon-l-sharing-url.png
1190,48,48,png,meegotouch/icons/icon-m-input-methods-backspace-compact.png
1202,19,30,png,meegotouch/icons/icon-m-common-previous-black.png
1203,64,64,png,meegotouch/icons/icon-m-content-famous-person.png
1211,40,40,png,meegotouch/icons/icon-m-toolbar-directory-dimmed.png
1213,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-pause-white-selected.png
1220,48,48,png,meegotouch/icons/icon-m-telephony-sms.png
1227,48,48,png,meegotouch/icons/icon-m-facebook-smiley-cry.png
1229,40,40,png,meegotouch/icons/icon-m-toolbar-edit-dimmed-white.png
1231,24,24,png,meegotouch/icons/icon-m-lockscreen-mediacontrol-next.png
1232,64,64,png,meegotouch/icons/icon-m-content-feed-inverse.png
1235,40,40,png,meegotouch/icons/icon-m-toolbar-callhistory-dimmed.png
1238,40,40,png,meegotouch/icons/icon-m-toolbar-done-selected.png
1240,256,256,png,meegotouch/icons/icon-l-sharing-document.png
1242,32,32,png,meegotouch/icons/icon-s-common-voicemail.png
1244,854,480,png,meegotouch/images/system-services/malf_de.png
1246,32,32,png,meegotouch/icons/icon-s-service-google.png
1250,40,40,png,meegotouch/icons/icon-m-toolbar-update-white-selected.png
1259,80,80,png,meegotouch/icons/icon-l-layar.png
1260,48,48,png,meegotouch/icons/icon-m-viewfinder-camera-selected.png
1261,64,64,png,meegotouch/icons/icon-m-calendar-reminder-inverse.png
1269,40,40,png,meegotouch/icons/icon-m-toolbar-done-white-selected.png
1273,40,40,png,meegotouch/icons/icon-m-toolbar-content-ovi-music-white-selected.png
1278,32,32,png,meegotouch/icons/icon-m-common-combobox-arrow-disabled.png
1284,40,40,png,meegotouch/icons/icon-m-toolbar-repeat-dimmed.png
1291,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-forward-selected.png
1295,40,40,png,meegotouch/icons/icon-m-toolbar-down-dimmed.png
1301,64,64,png,meegotouch/icons/icon-m-content-third-party-update-inverse.png
1303,64,64,png,meegotouch/icons/icon-m-content-application-inverse.png
1307,80,80,png,meegotouch/icons/icon-l-mail.png
1317,18,18,png,meegotouch/icons/icon-s-facebook-smiley-very-happy.png
1318,32,32,png,meegotouch/icons/icon-m-picasa.png
1328,40,40,png,meegotouch/icons/icon-l-notes-main-view.png
1329,40,40,png,meegotouch/icons/icon-m-toolbar-application-dimmed.png
1342,64,64,png,meegotouch/icons/icon-m-content-text.png
1371,32,32,png,meegotouch/icons/icon-s-service-gtalk.png
1373,16,8,png,meegotouch/icons/icon-m-common-collapse.png
1379,64,64,png,meegotouch/icons/icon-m-content-videos-inverse.png
1387,40,40,png,meegotouch/icons/icon-m-toolbar-refresh4-white.png
1391,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-play-selected.png
1394,48,48,png,meegotouch/icons/icon-m-facebook-smiley-happy.png
1398,64,64,png,meegotouch/icons/icon-m-content-thumbnail-broken-inverse.png
1401,64,64,png,meegotouch/icons/icon-m-content-file-not-supported.png
1403,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-stop-selected.png
1417,64,64,png,meegotouch/icons/icon-m-telephony-volume-button-selected.png
1429,64,64,png,meegotouch/icons/icon-m-content-landmark.png
1433,64,64,png,meegotouch/icons/icon-m-content-travel-inverse.png
1434,19,30,png,meegotouch/icons/icon-m-common-next-white.png
1435,864,480,jpg,meegotouch/images/splash/meegotouch-ap-splash-landscape.jpg
1446,64,64,png,meegotouch/icons/icon-m-content-dictionary-inverse.png
1459,40,40,png,meegotouch/icons/icon-m-toolbar-refresh4-selected.png
1461,32,32,png,meegotouch/icons/icon-s-service-twitter.png
1462,64,64,png,meegotouch/icons/icon-m-telephony-call-combine-button.png
1464,32,32,png,meegotouch/icons/icon-s-input-method-up.png
1465,48,48,png,meegotouch/icons/icon-m-weather-sunny-shower.png
1467,854,480,png,meegotouch/images/system-services/malf_fr.png
1468,64,64,png,meegotouch/icons/icon-m-content-automobile.png
1471,854,480,png,meegotouch/images/system-services/malf_fi.png
1479,64,64,png,meegotouch/icons/icon-m-transfer-cancle.png
1484,256,256,png,meegotouch/icons/icon-l-sharing-open-document-spreadsheet.png
1485,40,40,png,meegotouch/icons/icon-m-toolbar-update-selected.png
1491,32,32,png,meegotouch/icons/icon-s-common-voicemail-inverse.png
1497,32,32,png,meegotouch/icons/icon-s-transfer-download.png
1515,64,64,png,meegotouch/icons/icon-m-content-sports-inverse.png
1517,40,40,png,meegotouch/icons/icon-m-toolbar-application-dimmed-white.png
1532,48,48,png,meegotouch/icons/icon-m-weather-partly-sunny.png
1533,40,40,png,meegotouch/icons/icon-m-toolbar-tab-next.png
1536,64,64,png,meegotouch/icons/icon-m-common-volume-button.png
1541,64,64,png,meegotouch/icons/icon-m-conversation-group-chat-active.png
1546,40,40,png,meegotouch/icons/icon-m-toolbar-stop-white-selected.png
1548,40,40,png,meegotouch/icons/icon-l-twitter-main-view.png
1556,32,32,png,meegotouch/icons/icon-s-cancel.png
1559,40,40,png,meegotouch/icons/icon-m-toolbar-repeat-selected.png
1574,48,48,png,meegotouch/icons/icon-m-telephony-videocall-camera-back-selected.png
1575,40,40,png,meegotouch/icons/icon-m-toolbar-contact-dimmed.png
1584,40,40,png,meegotouch/icons/icon-m-toolbar-send-email-white.png
1598,854,480,jpg,meegotouch/images/splash/meegotouch-facebook-splash.jpg
1601,854,480,png,meegotouch/images/system-services/malfNOK_zh_HK.png
1610,48,48,png,meegotouch/icons/icon-m-telephony-view-menu.png
1615,40,40,png,meegotouch/icons/icon-m-toolbar-forward-dimmed-white.png
1616,32,32,png,meegotouch/icons/icon-s-service-vodafone.png
1617,40,40,png,meegotouch/icons/icon-m-toolbar-alarm-dimmed-white.png
1618,80,80,png,meegotouch/icons/icon-l-terminal.png
1624,40,40,png,meegotouch/icons/icon-m-toolbar-redo-dimmed.png
1631,256,256,png,meegotouch/icons/icon-l-sharing-audio.png
1633,18,18,png,meegotouch/icons/icon-s-facebook-smiley-kiss.png
1636,40,40,png,meegotouch/icons/icon-m-toolbar-main-view-selected.png
1648,854,480,png,meegotouch/images/system-services/malfNOK_zh.png
1650,80,80,png,meegotouch/icons/icon-l-grob.png
1654,64,64,png,meegotouch/icons/icon-m-service-ovi-music.png
1666,48,48,png,meegotouch/icons/icon-m-input-methods-arrow.png
1668,40,40,png,meegotouch/icons/icon-l-user-guide-main-view.png
1669,32,32,png,meegotouch/icons/icon-s-service-firefox.png
1681,32,32,png,meegotouch/icons/icon-s-common-favorite-unmark-inverse.png
1693,64,64,png,meegotouch/icons/icon-m-content-camera.png
1694,48,48,png,meegotouch/icons/icon-m-weather-flurries.png
1695,40,40,png,meegotouch/icons/icon-m-toolbar-content-audio-white.png
1698,40,40,png,meegotouch/icons/icon-l-package-manager-main-view.png
1699,40,40,png,meegotouch/icons/icon-l-skype-main-view.png
1703,40,40,png,meegotouch/icons/icon-m-toolbar-next-dimmed-white.png
1705,854,480,png,meegotouch/images/system-services/malf_hu.png
1712,64,64,png,meegotouch/icons/icon-m-service-facebook.png
1714,40,40,png,meegotouch/icons/icon-l-email-main-view.png
1717,32,32,png,meegotouch/icons/icon-m-telephony-combobox-arrow.png
1718,188,68,png,meegotouch/icons/icon-m-ovi-startup.png
1719,32,32,png,meegotouch/icons/icon-m-input-methods-1of2.png
1720,20,20,png,meegotouch/icons/icon-s-status-3g-active.png
1721,40,40,png,meegotouch/icons/icon-m-toolbar-contact-white.png
1728,32,32,png,meegotouch/icons/icon-s-service-sip.png
1731,32,32,png,meegotouch/icons/icon-m-camera-filter-vivid-screen.png
1738,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-next-white.png
1740,64,64,png,meegotouch/icons/icon-m-service-gmail.png
1745,32,32,png,meegotouch/icons/icon-s-service-mail-for-exchange.png
1756,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-play-dimmed-white.png
1759,64,64,png,meegotouch/icons/icon-m-content-sports-team.png
1760,854,480,png,meegotouch/images/system-services/malf_tr.png
1762,64,64,png,meegotouch/icons/icon-m-telephony-hold-button-selected.png
1763,40,40,png,meegotouch/icons/icon-m-toolbar-directory-white-selected.png
1769,40,40,png,meegotouch/icons/icon-m-toolbar-application-white.png
1773,80,80,png,meegotouch/icons/icon-l-skype.png
1782,64,64,png,meegotouch/icons/icon-m-email-combined-mailbox.png
1785,32,32,png,meegotouch/icons/icon-s-contacts-merged.png
1795,40,40,png,meegotouch/icons/icon-m-toolbar-list-dimmed-white.png
1796,64,64,png,meegotouch/icons/icon-m-content-open-document-presentation.png
1799,64,64,png,meegotouch/icons/icon-m-telephony-emergency-call-button-dimmed.png
1801,32,32,png,meegotouch/icons/icon-s-transfer-download-inverse.png
1803,64,64,png,meegotouch/icons/icon-m-content-album-inverse.png
1804,80,80,png,meegotouch/icons/icon-l-contact-avatar-placeholder.png
1808,256,256,png,meegotouch/icons/icon-l-sharing-word.png
1809,40,40,png,meegotouch/icons/icon-m-toolbar-reply-dimmed.png
1810,40,40,png,meegotouch/icons/icon-l-telephony-main-view.png
1812,64,64,png,meegotouch/icons/icon-m-common-emergency-call-button.png
1818,32,32,png,meegotouch/icons/icon-s-location-picker.png
1822,40,40,png,meegotouch/icons/icon-l-contacts-main-view.png
1827,40,40,png,meegotouch/icons/icon-m-toolbar-list-dimmed.png
1841,48,48,png,meegotouch/icons/icon-m-input-methods-next.png
1852,40,40,png,meegotouch/icons/icon-m-toolbar-refresh3-selected.png
1855,40,40,png,meegotouch/icons/icon-m-low-power-mode-invitation-pending.png
1857,20,20,png,meegotouch/icons/icon-s-messaging-smiley-grin.png
1866,40,40,png,meegotouch/icons/icon-m-toolbar-tools-white-selected.png
1877,854,480,png,meegotouch/images/system-services/malfNOK_de.png
1882,24,24,png,meegotouch/icons/icon-m-lockscreen-mediacontrol-stop-selected.png
1886,32,32,png,meegotouch/icons/icon-s-service-gmail.png
1891,40,40,png,meegotouch/icons/icon-m-toolbar-new-email-white-selected.png
1892,40,40,png,meegotouch/icons/icon-m-toolbar-callhistory-dimmed-white.png
1893,40,40,png,meegotouch/icons/icon-m-toolbar-down.png
1895,64,64,png,meegotouch/icons/icon-m-content-todo-inverse.png
1896,80,80,png,meegotouch/icons/icon-l-downloading.png
1897,64,64,png,meegotouch/icons/icon-m-telephony-contact-voicemail.png
1900,40,40,png,meegotouch/icons/icon-m-toolbar-cancle-white.png
1928,40,40,png,meegotouch/icons/icon-m-toolbar-application-selected.png
1929,64,64,png,meegotouch/icons/icon-m-content-bluetooth-inverse.png
1940,64,64,png,meegotouch/icons/icon-m-calendar-reminder.png
1944,40,40,png,meegotouch/icons/icon-m-toolbar-headphones-white-selected.png
1949,32,32,png,meegotouch/icons/icon-s-chat-inverse.png
1951,40,40,png,meegotouch/icons/icon-m-toolbar-column-white-selected.png
1956,40,40,png,meegotouch/icons/icon-m-low-power-mode-missed-call.png
1968,64,64,png,meegotouch/icons/icon-m-service-tippit.png
1978,18,18,png,meegotouch/icons/icon-s-status-presence-pending.png
1980,32,32,png,meegotouch/icons/icon-s-service-msn-messenger.png
1981,40,40,png,meegotouch/icons/icon-m-toolbar-refresh-dimmed.png
1982,40,40,png,meegotouch/icons/icon-m-toolbar-addressbook-white.png
1984,40,40,png,meegotouch/icons/icon-m-toolbar-refresh-selected.png
1987,20,20,png,meegotouch/icons/icon-s-status-third-party-update.png
1999,64,64,png,meegotouch/icons/icon-m-content-online-videos.png
2014,40,40,png,meegotouch/icons/icon-m-toolbar-directory-move-to-white.png
2018,32,32,png,meegotouch/icons/icon-m-presence-busy.png
2021,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-stop-white.png
2022,40,40,png,meegotouch/icons/icon-l-ovi-store-main-view.png
2029,40,40,png,meegotouch/icons/icon-m-toolbar-frequent-used-dimmed.png
2033,40,40,png,meegotouch/icons/icon-m-toolbar-content-ovi-music-dimmed-white.png
2036,48,48,png,meegotouch/icons/icon-m-weather-shower-lightning.png
2071,80,80,png,meegotouch/icons/icon-l-ap.png
2081,48,48,png,meegotouch/icons/icon-m-common-location-selected.png
2084,40,40,png,meegotouch/icons/icon-m-low-power-mode-third-party-update.png
2087,48,48,png,meegotouch/icons/icon-m-emergency-call-backspace-selected.png
2092,32,32,png,meegotouch/icons/icon-s-toolbar-rich-text.png
2095,41,40,png,meegotouch/icons/icon-l-mail-main-view.png
2102,18,18,png,meegotouch/icons/icon-s-conversation-aol-messenger.png
2105,48,48,png,meegotouch/icons/icon-m-weather-foggy.png
2107,64,64,png,meegotouch/icons/icon-m-content-online-videos-inverse.png
2110,854,480,jpg,meegotouch/images/splash/meegotouch-wifi-hotspot-splash.jpg
2120,40,40,png,meegotouch/icons/icon-m-toolbar-favorite-unmark-selected.png
2125,854,480,png,meegotouch/images/system-services/malfNOK_fr.png
2126,64,64,png,meegotouch/icons/icon-m-service-dropbox.png
2127,48,48,png,meegotouch/icons/icon-m-telephony-videocall-camera-front.png
2133,854,480,png,meegotouch/images/system-services/malfNOK_fi.png
2137,40,40,png,meegotouch/icons/icon-m-toolbar-dialer-selected.png
2140,40,40,png,meegotouch/icons/icon-m-toolbar-previous-dimmed.png
2143,128,128,png,meegotouch/icons/icon-l-energy-management-remove-charger.png
2145,64,64,png,meegotouch/icons/icon-m-telephony-mute-button-dimmed.png
2150,64,64,png,meegotouch/icons/icon-m-content-wikipedia.png
2152,32,32,png,meegotouch/icons/icon-s-refresh-inverse.png
2157,48,48,png,meegotouch/icons/icon-m-telephony-videocall-camera-back.png
2168,40,40,png,meegotouch/icons/icon-l-accounts-main-view.png
2171,64,64,png,meegotouch/icons/icon-m-telephony-add-contact-dimmed.png
2193,40,40,png,meegotouch/icons/icon-m-toolbar-contact-dimmed-white.png
2209,40,40,png,meegotouch/icons/icon-m-toolbar-grid-white-selected.png
2216,18,18,png,meegotouch/icons/icon-s-common-presence-invitation-pending.png
2219,64,64,png,meegotouch/icons/icon-m-content-calendar-inverse.png
2228,40,40,png,meegotouch/icons/icon-m-toolbar-repeat.png
2229,32,32,png,meegotouch/icons/icon-s-common-favorite-mark-selected.png
2230,64,64,png,meegotouch/icons/icon-m-content-videostream-inverse.png
2232,48,48,png,meegotouch/icons/icon-m-camera-flash-auto-choice.png
2237,40,40,png,meegotouch/icons/icon-m-toolbar-undo-white-selected.png
2240,80,80,png,meegotouch/icons/icon-l-sim-services.png
2241,48,48,png,meegotouch/icons/icon-m-weather-sunny-thunder.png
2245,40,40,png,meegotouch/icons/icon-m-toolbar-send-chat-selected.png
2247,64,64,png,meegotouch/icons/icon-m-content-chat-inverse.png
2256,40,40,png,meegotouch/icons/icon-m-toolbar-repeat-white-selected.png
2272,64,64,png,meegotouch/icons/icon-m-telephony-call-end-button.png
2273,40,40,png,meegotouch/icons/icon-m-toolbar-directory-move-to-selected.png
2274,64,64,png,meegotouch/icons/icon-m-content-audio-inverse.png
2277,32,32,png,meegotouch/icons/icon-m-camera-resolution-8m.png
2281,80,80,png,meegotouch/icons/icon-l-facebook.png
2286,64,64,png,meegotouch/icons/icon-m-content-eating-inverse.png
2300,64,64,png,meegotouch/icons/icon-m-content-eating.png
2303,40,40,png,meegotouch/icons/icon-m-toolbar-volume-dimmed.png
2311,40,40,png,meegotouch/icons/icon-m-toolbar-cancle-white-selected.png
2312,854,480,png,meegotouch/images/system-services/malfNOK_ro.png
2316,40,40,png,meegotouch/icons/icon-m-toolbar-search-dimmed-white.png
2317,40,40,png,meegotouch/icons/icon-m-toolbar-share-white-selected.png
2328,14,20,png,meegotouch/icons/icon-s-status-invitation-pending.png
2330,40,40,png,meegotouch/icons/icon-m-toolbar-callhistory.png
2331,40,40,png,meegotouch/icons/icon-m-toolbar-next-dimmed.png
2333,32,32,png,meegotouch/icons/icon-m-textinput-combobox-arrow-diabled.png
2334,40,40,png,meegotouch/icons/icon-m-toolbar-delete-white.png
2337,64,64,png,meegotouch/icons/icon-m-content-birthday-inverse.png
2339,24,24,png,meegotouch/icons/icon-m-lockscreen-mediacontrol-pause-selected.png
2344,13,13,png,meegotouch/icons/icon-s-current-page-inverse.png
2349,80,80,png,meegotouch/icons/icon-l-image.png
2367,24,24,png,meegotouch/icons/icon-m-lockscreen-mediacontrol-previous-selected.png
2368,24,24,png,meegotouch/icons/icon-s-calendar-location-picker-selected.png
2379,40,40,png,meegotouch/icons/icon-m-toolbar-select-text-selected.png
2385,854,480,png,meegotouch/images/system-services/malf_no.png
2386,854,480,png,meegotouch/images/system-services/malf_nl.png
2399,40,40,png,meegotouch/icons/icon-m-toolbar-image-edit-selected.png
2407,40,40,png,meegotouch/icons/icon-m-toolbar-favorite-unmark-dimmed.png
2408,40,40,png,meegotouch/icons/icon-m-toolbar-stop-dimmed-white.png
2413,32,32,png,meegotouch/icons/icon-s-service-flickr.png
2421,64,64,png,meegotouch/icons/icon-m-service-msn-messenger.png
2426,48,48,png,meegotouch/icons/icon-m-common-favorite-mark-selected.png
2429,256,256,png,meegotouch/icons/icon-l-sharing-open-document-text.png
2430,40,40,png,meegotouch/icons/icon-m-toolbar-dialer-dimmed-white.png
2431,40,40,png,meegotouch/icons/icon-m-toolbar-contact-selected.png
2442,64,64,png,meegotouch/icons/icon-m-conversation-group-chat.png
2443,80,80,png,meegotouch/icons/icon-l-att.png
2447,64,64,png,meegotouch/icons/icon-m-telephony-mute-button-selected.png
2448,64,64,png,meegotouch/icons/icon-m-service-caldav.png
2449,40,40,png,meegotouch/icons/icon-l-settings-main-view.png
2456,64,64,png,meegotouch/icons/icon-m-telephony-mute-button.png
2474,40,40,png,meegotouch/icons/icon-m-low-power-mode-voicemail.png
2482,40,40,png,meegotouch/icons/icon-m-toolbar-content-audio-white-selected.png
2484,32,32,png,meegotouch/icons/icon-s-service-google-calendar.png
2493,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-stop-dimmed.png
2500,26,26,png,meegotouch/icons/icon-m-camera-low-brightness.png
2514,32,32,png,meegotouch/icons/icon-s-music-video-pause-accent.png
2515,64,64,png,meegotouch/icons/icon-m-ovi-service-email.png
2518,64,64,png,meegotouch/icons/icon-m-content-open-document-spreadsheet-inverse.png
2522,64,64,png,meegotouch/icons/icon-m-telephony-content-sms.png
2524,32,32,png,meegotouch/icons/icon-s-common-expand.png
2537,32,32,png,meegotouch/icons/icon-s-service-myspace.png
2542,40,40,png,meegotouch/icons/icon-m-toolbar-volume-off-selected.png
2543,854,480,png,meegotouch/images/system-services/malfNOK_zh_TW.png
2546,64,64,png,meegotouch/icons/icon-m-content-tutorial-inverse.png
2568,854,480,png,meegotouch/images/system-services/malf_zh_HK.png
2571,40,40,png,meegotouch/icons/icon-m-telephony-sms-white.png
2576,48,48,png,meegotouch/icons/icon-m-common-search-inverse.png
2582,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-stop-dimmed-white.png
2583,40,40,png,meegotouch/icons/icon-m-toolbar-addressbook-dimmed.png
2585,64,64,png,meegotouch/icons/icon-m-content-invitation-pending.png
2594,48,48,png,meegotouch/icons/icon-m-telephony-chat.png
2598,64,64,png,meegotouch/icons/icon-m-common-done.png
2607,40,40,png,meegotouch/icons/icon-m-toolbar-shuffle.png
2612,854,480,png,meegotouch/images/system-services/malf_pt.png
2614,20,20,png,meegotouch/icons/icon-s-status-voicemail.png
2618,854,480,png,meegotouch/images/system-services/malf_pl.png
2622,32,32,png,meegotouch/icons/icon-s-refresh.png
2623,32,32,png,meegotouch/icons/icon-s-service-tippit.png
2624,40,40,png,meegotouch/icons/icon-m-toolbar-headphones-dimmed.png
2632,48,48,png,meegotouch/icons/icon-m-camera-troch-on.png
2639,40,40,png,meegotouch/icons/icon-m-toolbar-clock-dimmed-white.png
2652,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-previous-dimmed-white.png
2656,40,40,png,meegotouch/icons/icon-m-toolbar-dialer-white-selected.png
2665,40,40,png,meegotouch/icons/icon-m-toolbar-previous-selected.png
2669,854,480,png,meegotouch/icons/icon-l-startup-nokia-logo.png
2679,18,18,png,meegotouch/icons/icon-s-conversation-gtalk.png
2690,40,40,png,meegotouch/icons/icon-m-toolbar-people-white-selected.png
2691,40,40,png,meegotouch/icons/icon-m-toolbar-favorite-unmark-white.png
2692,64,64,png,meegotouch/icons/icon-m-service-google.png
2704,14,20,png,meegotouch/icons/icon-s-status-notifier-invitation-pending.png
2709,40,40,png,meegotouch/icons/icon-m-toolbar-new-email-dimmed.png
2715,480,854,png,meegotouch/icons/icon-l-clearing-device.png
2731,64,64,png,meegotouch/icons/icon-m-settings-bluetooth.png
2739,24,24,png,meegotouch/icons/icon-m-lockscreen-mediacontrol-stop-dimmed.png
2745,40,40,png,meegotouch/icons/icon-m-toolbar-frequent-used.png
2753,40,40,png,meegotouch/icons/icon-m-toolbar-column-selected.png
2760,64,64,png,meegotouch/icons/icon-m-service-skype.png
2761,40,40,png,meegotouch/icons/icon-m-toolbar-send-chat-white.png
2764,64,64,png,meegotouch/icons/icon-m-content-ringtone-inverse.png
2766,48,48,png,meegotouch/icons/icon-m-telephony-videocall-camera-front-selected.png
2768,20,20,png,meegotouch/icons/icon-s-alarm-inverse.png
2771,64,64,png,meegotouch/icons/icon-m-content-localities.png
2790,64,64,png,meegotouch/icons/icon-m-content-tips.png
2793,20,20,png,meegotouch/icons/icon-s-status-25g-active.png
2796,24,24,png,meegotouch/icons/icon-m-lockscreen-mediacontrol-pause.png
2835,854,480,png,meegotouch/images/system-services/malf_ru.png
2837,36,34,png,meegotouch/icons/icon-m-conversation-group-chat-connect.png
2838,854,480,png,meegotouch/images/system-services/malf_ro.png
2839,19,31,png,meegotouch/icons/icon-m-common-previous-selected.png
2844,40,40,png,meegotouch/icons/icon-l-calendar-main-view.png
2849,64,64,png,meegotouch/icons/icon-m-content-portable-document-format.png
2857,64,64,png,meegotouch/icons/icon-m-content-shopping.png
2864,40,40,png,meegotouch/icons/icon-m-toolbar-cancle-dimmed.png
2865,64,64,png,meegotouch/icons/icon-m-conversation-contact-attention-inverse.png
2880,20,20,png,meegotouch/icons/icon-s-status-wlan-active.png
2900,40,40,png,meegotouch/icons/icon-m-toolbar-attachment-white.png
2904,64,64,png,meegotouch/icons/icon-m-service-baidu.png
2926,48,48,png,meegotouch/icons/icon-m-camera-flash-red-eye-choice.png
2931,48,48,png,meegotouch/icons/icon-m-invitation-declined.png
2932,80,80,png,meegotouch/icons/icon-l-pause.png
2940,32,32,png,meegotouch/icons/icon-s-service-att.png
2941,40,40,png,meegotouch/icons/icon-m-toolbar-contact-white-selected.png
2942,64,64,png,meegotouch/icons/icon-m-telephony-video-call-button-selected.png
2943,32,32,png,meegotouch/icons/icon-s-service-ovi.png
2952,40,40,png,meegotouch/icons/icon-m-toolbar-favorite-mark-white-selected.png
2963,40,40,png,meegotouch/icons/icon-m-toolbar-jump-to-dimmed-white.png
2965,40,40,png,meegotouch/icons/icon-m-toolbar-gallery-dimmed.png
2971,40,40,png,meegotouch/icons/icon-l-documents-main-view.png
2973,64,64,png,meegotouch/icons/icon-m-content-photoalbum-dialog.png
2974,64,64,png,meegotouch/icons/icon-m-camera-filter-vivid-selected.png
2980,480,854,png,meegotouch/icons/icon-l-startup-nokia-logo-portrait.png
2984,18,18,png,meegotouch/icons/icon-s-facebook-smiley-happy.png
2986,64,64,png,meegotouch/icons/icon-m-content-birthday.png
2987,40,40,png,meegotouch/icons/icon-m-toolbar-reply-dimmed-white.png
2992,64,64,png,meegotouch/icons/icon-m-camera-filter-sepia-selected.png
2994,32,32,png,meegotouch/icons/icon-m-common-combobox-arrow-selected.png
2999,40,40,png,meegotouch/icons/icon-m-toolbar-delete-dimmed-white.png
3005,48,48,png,meegotouch/icons/icon-m-facebook-smiley-sad.png
3006,18,18,png,meegotouch/icons/icon-s-conversation-icq.png
3009,64,64,png,meegotouch/icons/icon-m-camera-filter-solarize-selected.png
3015,32,32,png,meegotouch/icons/icon-s-service-hotmail.png
3020,64,64,png,meegotouch/icons/icon-m-telephony-ongoing-call.png
3024,80,80,png,meegotouch/icons/icon-l-accuweather.png
3029,854,480,png,meegotouch/images/system-services/malfNOK_no.png
3031,854,480,png,meegotouch/images/system-services/malfNOK_nl.png
3036,40,40,png,meegotouch/icons/icon-m-toolbar-people-dimmed-white.png
3046,64,64,png,meegotouch/icons/icon-m-service-icq.png
3047,32,32,png,meegotouch/icons/icon-s-music-video-play-accent.png
3048,40,40,png,meegotouch/icons/icon-m-toolbar-forward-selected.png
3053,40,40,png,meegotouch/icons/icon-m-toolbar-history-dimmed-white.png
3056,64,64,png,meegotouch/icons/icon-m-service-picasa.png
3061,18,18,png,meegotouch/icons/icon-s-conversation-facebook.png
3062,40,40,png,meegotouch/icons/icon-m-toolbar-pages-all-white.png
3066,40,40,png,meegotouch/icons/icon-m-toolbar-trim-dimmed-white.png
3079,64,64,png,meegotouch/icons/icon-m-content-imdb.png
3080,18,18,png,meegotouch/icons/icon-s-status-tippit.png
3086,64,64,png,meegotouch/icons/icon-m-content-sports.png
3089,80,80,png,meegotouch/icons/icon-l-error.png
3092,32,32,png,meegotouch/icons/icon-s-music-video-more.png
3096,128,128,png,meegotouch/icons/icon-l-content-favourites.png
3106,40,40,png,meegotouch/icons/icon-m-toolbar-refresh-dimmed-white.png
3112,48,48,png,meegotouch/icons/icon-m-weather-hot.png
3114,40,40,png,meegotouch/icons/icon-m-toolbar-image-edit-white.png
3115,40,40,png,meegotouch/icons/icon-m-toolbar-add-white-selected.png
3129,64,64,png,meegotouch/icons/icon-m-telephony-hold-button-dimmed.png
3133,40,40,png,meegotouch/icons/icon-m-toolbar-shuffle-dimmed-white.png
3144,64,64,png,meegotouch/icons/icon-m-content-quick-guide.png
3149,40,40,png,meegotouch/icons/icon-m-toolbar-alarm-selected.png
3153,40,40,png,meegotouch/icons/icon-m-toolbar-delete-white-selected.png
3167,40,40,png,meegotouch/icons/icon-m-toolbar-frequent-used-dimmed-white.png
3170,40,40,png,meegotouch/icons/icon-m-toolbar-dialer-dimmed.png
3172,40,40,png,meegotouch/icons/icon-l-clock-main-view.png
3175,64,64,png,meegotouch/icons/icon-m-bluetooth-active.png
3179,854,480,png,meegotouch/images/system-services/malfNOK_uk.png
3187,64,64,png,meegotouch/icons/icon-m-content-tippit-inverse.png
3189,64,64,png,meegotouch/icons/icon-m-content-photoalbum-inverse.png
3193,48,48,png,meegotouch/icons/icon-m-camera-flash-overheat-screen.png
3194,32,32,png,meegotouch/icons/icon-s-coversation-pending.png
3206,64,64,png,meegotouch/icons/icon-m-content-video-call.png
3208,32,32,png,meegotouch/icons/icon-m-facebook.png
3210,854,480,png,meegotouch/images/system-services/malf_it.png
3211,256,256,png,meegotouch/icons/icon-l-sharing-avatar-placeholder.png
3225,64,64,png,meegotouch/icons/icon-m-content-powerpoint-inverse.png
3227,40,40,png,meegotouch/icons/icon-m-toolbar-application-white-selected.png
3229,40,40,png,meegotouch/icons/icon-m-low-power-mode-mms.png
3238,40,40,png,meegotouch/icons/icon-m-toolbar-forward-white.png
3242,64,64,png,meegotouch/icons/icon-m-notification-low-memory.png
3248,64,64,png,meegotouch/icons/icon-m-content-call-inverse.png
3250,64,64,png,meegotouch/icons/icon-m-content-business-inverse.png
3251,40,40,png,meegotouch/icons/icon-m-toolbar-callhistory-selected.png
3253,854,480,png,meegotouch/images/system-services/malfNOK_hu.png
3258,48,48,png,meegotouch/icons/icon-m-messaging-smiley-grin.png
3263,48,48,png,meegotouch/icons/icon-s-common-location.png
3265,12,20,png,meegotouch/icons/icon-m-music-video-drilldown-arrow.png
3267,48,48,png,meegotouch/icons/icon-m-gallery-location-selected.png
3269,64,64,png,meegotouch/icons/icon-m-content-avatar-placeholder-dialog.png
3274,64,64,png,meegotouch/icons/icon-m-content-music-store-inverse.png
3277,40,40,png,meegotouch/icons/icon-m-toolbar-previous-dimmed-white.png
3280,20,20,png,meegotouch/icons/icon-s-status-system-update.png
3285,18,18,png,meegotouch/icons/icon-s-conversation-yahoo-messenger.png
3312,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-previous-selected.png
3313,40,40,png,meegotouch/icons/icon-m-toolbar-volume-off-dimmed.png
3314,48,48,png,meegotouch/icons/icon-m-conversation-group-chat-offline.png
3315,40,40,png,meegotouch/icons/icon-m-toolbar-alarm-white-selected.png
3320,40,40,png,meegotouch/icons/icon-m-toolbar-tag-dimmed.png
3337,24,24,png,meegotouch/icons/icon-m-lockscreen-mediacontrol-pause-dimmed.png
3340,40,40,png,meegotouch/icons/icon-m-toolbar-new-message-white.png
3343,64,64,png,meegotouch/icons/icon-m-content-settings-inverse.png
3346,48,48,png,meegotouch/icons/icon-m-common-location-inverse.png
3356,32,32,png,meegotouch/icons/icon-m-camera-filter-negative-screen.png
3358,15,15,png,meegotouch/icons/icon-s-music-video-stop.png
3360,64,64,png,meegotouch/icons/icon-m-content-automobile-inverse.png
3369,18,18,png,meegotouch/icons/icon-s-facebook-smiley-sad.png
3370,64,64,png,meegotouch/icons/icon-m-content-sightseeing.png
3383,80,80,png,meegotouch/icons/icon-l-galaxy.png
3384,40,40,png,meegotouch/icons/icon-l-search-main-view.png
3402,64,64,png,meegotouch/icons/icon-m-content-music-band.png
3408,48,48,png,meegotouch/icons/icon-m-startup-back.png
3410,48,48,png,meegotouch/icons/icon-m-weather-clear.png
3414,40,40,png,meegotouch/icons/icon-m-toolbar-settings-dimmed-white.png
3416,40,40,png,meegotouch/icons/icon-m-toolbar-add-dimmed.png
3417,64,64,png,meegotouch/icons/icon-m-service-firefox.png
3425,40,40,png,meegotouch/icons/icon-m-toolbar-delete-dimmed.png
3430,64,64,png,meegotouch/icons/icon-m-content-email-inverse.png
3431,32,32,png,meegotouch/icons/icon-m-flickr.png
3450,48,48,png,meegotouch/icons/icon-m-common-tag-inverse.png
3453,64,64,png,meegotouch/icons/icon-m-telephony-phone-button-dimmed.png
3454,32,32,png,meegotouch/icons/icon-s-call.png
3458,64,64,png,meegotouch/icons/icon-m-content-artist-inverse.png
3462,64,64,png,meegotouch/icons/icon-m-content-audiostream-inverse.png
3469,40,40,png,meegotouch/icons/icon-m-toolbar-captured-white-selected.png
3485,48,48,png,meegotouch/icons/icon-m-input-methods-simple-pinyin.png
3488,64,64,png,meegotouch/icons/icon-m-bluetooth-carkit.png
3502,64,64,png,meegotouch/icons/icon-m-content-powerpoint-slideshow-inverse.png
3505,40,40,png,meegotouch/icons/icon-m-low-power-mode-email.png
3506,48,48,png,meegotouch/icons/icon-m-invitation-pending.png
3507,32,32,png,meegotouch/icons/icon-s-service-msn.png
3511,26,26,png,meegotouch/icons/icon-m-camera-high-brightness.png
3513,854,480,png,meegotouch/images/system-services/malfNOK_en.png
3529,854,480,png,meegotouch/images/system-services/malfNOK_ms.png
3530,80,80,png,meegotouch/icons/icon-l-gtracing.png
3532,64,64,png,meegotouch/icons/icon-m-content-sightseeing-inverse.png
3542,854,480,jpg,meegotouch/images/splash/meegotouch-accuweather-splash.jpg
3547,48,48,png,meegotouch/icons/icon-m-input-clear-inverse.png
3549,80,80,png,meegotouch/icons/icon-m-bootloader-warning.png
3551,48,48,png,meegotouch/icons/icon-m-weather-snow.png
3553,40,40,png,meegotouch/icons/icon-m-toolbar-grid-white.png
3568,32,32,png,meegotouch/icons/icon-m-presence-unknown.png
3573,48,48,png,meegotouch/icons/icon-m-weather-stormy.png
3579,854,480,png,meegotouch/images/system-services/malf_en_GB.png
3584,32,32,png,meegotouch/icons/icon-m-firefox.png
3598,32,32,png,meegotouch/icons/icon-s-service-dropbox.png
3605,40,40,png,meegotouch/icons/icon-m-toolbar-tab-previous.png
3608,32,32,png,meegotouch/icons/icon-m-camera-manual-exposure-screen.png
3610,64,64,png,meegotouch/icons/icon-m-content-sms-inverse.png
3622,64,64,png,meegotouch/icons/icon-m-camera-filter-solarize.png
3634,48,48,png,meegotouch/icons/icon-m-telephony-backspace-selected.png
3646,40,40,png,meegotouch/icons/icon-m-toolbar-tab-previous-white.png
3648,40,40,png,meegotouch/icons/icon-m-toolbar-trim-selected.png
3651,40,40,png,meegotouch/icons/icon-m-toolbar-refresh1-white.png
3661,48,48,png,meegotouch/icons/icon-m-weather-sunny.png
3664,40,40,png,meegotouch/icons/icon-m-toolbar-reply-all-selected.png
3669,64,64,png,meegotouch/icons/icon-m-camera-no-filter-selected.png
3690,48,48,png,meegotouch/icons/icon-m-image-edit-reset-all.png
3702,40,40,png,meegotouch/icons/icon-m-toolbar-favorite-mark-dimmed.png
3708,32,32,png,meegotouch/icons/icon-s-common-favorite-mark-inverse.png
3709,40,40,png,meegotouch/icons/icon-m-toolbar-next-white-selected.png
3711,80,80,png,meegotouch/icons/icon-l-installing.png
3712,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-previous-white-selected.png
3726,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-next-white-selected.png
3747,40,40,png,meegotouch/icons/icon-m-toolbar-image-edit-white-selected.png
3751,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-next-selected.png
3753,40,40,png,meegotouch/icons/icon-m-toolbar-refresh3-white.png
3755,64,64,png,meegotouch/icons/icon-m-content-voicemail.png
3756,40,40,png,meegotouch/icons/icon-m-toolbar-reply-white.png
3757,64,64,png,meegotouch/icons/icon-m-service-mail-for-exchange.png
3759,854,480,png,meegotouch/images/system-services/malf_zh.png
3764,32,32,png,meegotouch/icons/icon-s-voipcall.png
3770,40,40,png,meegotouch/icons/icon-m-toolbar-tab-previous-white-selected.png
3778,40,40,png,meegotouch/icons/icon-m-toolbar-settings-white-selected.png
3783,64,64,png,meegotouch/icons/icon-m-content-health-care.png
3784,854,480,png,meegotouch/images/system-services/malfNOK_en_US.png
3797,80,80,png,meegotouch/icons/icon-l-gigfinder.png
3799,80,80,png,meegotouch/icons/icon-l-needforspeed.png
3802,32,32,png,meegotouch/icons/icon-m-camera-filter-black-white-screen.png
3811,19,30,png,meegotouch/icons/icon-m-common-next-black.png
3817,40,40,png,meegotouch/icons/icon-m-toolbar-shuffle-white-selected.png
3821,21,30,png,meegotouch/icons/icon-m-common-jabber.png
3823,32,32,png,meegotouch/icons/icon-m-input-methods-2of2.png
3847,40,40,png,meegotouch/icons/icon-m-toolbar-pages-all-dimmed.png
3849,80,80,png,meegotouch/icons/icon-l-youtube.png
3852,64,64,png,meegotouch/icons/icon-m-camera-filter-normal.png
3855,854,480,png,meegotouch/images/system-services/malf_sk.png
3859,40,40,png,meegotouch/icons/icon-l-browser-main-view.png
3868,48,48,png,meegotouch/icons/icon-m-weather-mostly-cloudy.png
3871,40,40,png,meegotouch/icons/icon-m-toolbar-volume-white-selected.png
3877,854,480,png,meegotouch/images/system-services/malfNOK_sv.png
3880,854,480,png,meegotouch/images/system-services/malfNOK_sk.png
3884,40,40,png,meegotouch/icons/icon-l-conversation-main-view.png
3887,20,20,png,meegotouch/icons/icon-s-status-notifier-system-update.png
3889,32,32,png,meegotouch/icons/icon-m-camera-resolution-6m.png
3890,20,20,png,meegotouch/icons/icon-s-conversation-attachment.png
3893,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-backwards-dimmed-white.png
3894,40,40,png,meegotouch/icons/icon-l-camera-main-view.png
3906,40,40,png,meegotouch/icons/icon-m-toolbar-down-white-selected.png
3908,18,18,png,meegotouch/icons/icon-s-conversation-sms.png
3912,64,64,png,meegotouch/icons/icon-m-content-search.png
3914,80,80,png,meegotouch/icons/icon-l-twitter.png
3920,32,32,png,meegotouch/icons/icon-s-service-exchange.png
3925,32,32,png,meegotouch/icons/icon-s-cancel-inverse.png
3927,854,480,png,meegotouch/images/system-services/malf_ar.png
3930,854,480,png,meegotouch/images/system-services/malf_da.png
3948,80,80,png,meegotouch/icons/icon-l-calendar-02.png
3949,80,80,png,meegotouch/icons/icon-l-calendar-03.png
3950,80,80,png,meegotouch/icons/icon-l-calendar-01.png
3951,80,80,png,meegotouch/icons/icon-l-calendar-06.png
3952,80,80,png,meegotouch/icons/icon-l-calendar-07.png
3953,80,80,png,meegotouch/icons/icon-l-calendar-04.png
3954,80,80,png,meegotouch/icons/icon-l-calendar-05.png
3955,80,80,png,meegotouch/icons/icon-l-calendar-08.png
3956,80,80,png,meegotouch/icons/icon-l-calendar-09.png
3961,64,64,png,meegotouch/icons/icon-m-service-aol-messenger.png
3965,32,32,png,meegotouch/icons/icon-m-camera-no-filter-screen.png
3968,40,40,png,meegotouch/icons/icon-m-toolbar-main-view-white-selected.png
3970,64,64,png,meegotouch/icons/icon-m-content-voipcall-inverse.png
3972,40,40,png,meegotouch/icons/icon-m-toolbar-next-white.png
3996,40,40,png,meegotouch/icons/icon-l-facebook-main-view.png
4000,64,64,png,meegotouch/icons/icon-m-content-text-inverse.png
4007,40,40,png,meegotouch/icons/icon-m-toolbar-down-white.png
4008,40,40,png,meegotouch/icons/icon-m-toolbar-column-white.png
4011,40,40,png,meegotouch/icons/icon-m-toolbar-send-sms-selected.png
4023,32,32,png,meegotouch/icons/icon-s-wlan-wpa.png
4036,40,40,png,meegotouch/icons/icon-m-toolbar-select-text-white.png
4043,32,32,png,meegotouch/icons/icon-s-telephony-end-call.png
4055,40,40,png,meegotouch/icons/icon-m-toolbar-tab-previous-selected.png
4056,64,64,png,meegotouch/icons/icon-m-service-nokia-account.png
4057,20,20,png,meegotouch/icons/icon-s-status-nfc.png
4062,64,64,png,meegotouch/icons/icon-m-ovi-service-music.png
4065,16,20,png,meegotouch/icons/icon-s-status-transfer-content.png
4076,64,64,png,meegotouch/icons/icon-m-content-settings.png
4079,48,48,png,meegotouch/icons/icon-m-weather-freezing-rain.png
4084,40,40,png,meegotouch/icons/icon-m-toolbar-alarm-white.png
4087,32,32,png,meegotouch/icons/icon-s-service-facebook.png
4090,40,40,png,meegotouch/icons/icon-m-toolbar-main-view.png
4101,40,40,png,meegotouch/icons/icon-m-toolbar-directory-dimmed-white.png
4104,64,64,png,meegotouch/icons/icon-m-service-yandex.png
4115,18,18,png,meegotouch/icons/icon-s-facebook-smiley-angry.png
4116,40,40,png,meegotouch/icons/icon-m-toolbar-up-selected.png
4121,40,40,png,meegotouch/icons/icon-m-toolbar-clock-selected.png
4126,854,480,jpg,meegotouch/images/splash/meegotouch-track-n-protect-splash.jpg
4132,64,64,png,meegotouch/icons/icon-m-content-shopping-inverse.png
4145,64,64,png,meegotouch/icons/icon-m-service-exchange.png
4147,40,40,png,meegotouch/icons/icon-m-toolbar-previous-white.png
4149,48,48,png,meegotouch/icons/icon-m-facebook-smiley-wink.png
4156,40,40,png,meegotouch/icons/icon-m-toolbar-add-selected.png
4160,854,480,png,meegotouch/images/system-services/malf_cs.png
4161,80,80,png,meegotouch/icons/icon-l-simcard-service.png
4165,32,32,png,meegotouch/icons/icon-s-toolbar-underline.png
4176,40,40,png,meegotouch/icons/icon-m-toolbar-down-selected.png
4182,80,80,png,meegotouch/icons/icon-l-calendar-24.png
4183,80,80,png,meegotouch/icons/icon-l-calendar-25.png
4184,80,80,png,meegotouch/icons/icon-l-calendar-26.png
4185,80,80,png,meegotouch/icons/icon-l-calendar-27.png
4186,80,80,png,meegotouch/icons/icon-l-calendar-20.png
4187,80,80,png,meegotouch/icons/icon-l-calendar-21.png
4188,80,80,png,meegotouch/icons/icon-l-calendar-22.png
4189,80,80,png,meegotouch/icons/icon-l-calendar-23.png
4190,80,80,png,meegotouch/icons/icon-l-calendar-28.png
4191,80,80,png,meegotouch/icons/icon-l-calendar-29.png
4192,64,64,png,meegotouch/icons/icon-m-content-tv-show.png
4196,64,64,png,meegotouch/icons/icon-m-content-open-document-text-inverse.png
4215,40,40,png,meegotouch/icons/icon-m-toolbar-shuffle-white.png
4220,64,64,png,meegotouch/icons/icon-m-contacts-merged.png
4222,40,40,png,meegotouch/icons/icon-m-toolbar-trim-white-selected.png
4223,40,40,png,meegotouch/icons/icon-m-toolbar-stop-dimmed.png
4227,20,20,png,meegotouch/icons/icon-s-status-calendar.png
4253,40,40,png,meegotouch/icons/icon-m-toolbar-settings-selected.png
4257,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-forward-dimmed-white.png
4266,40,40,png,meegotouch/icons/icon-m-toolbar-frequent-used-white.png
4267,64,64,png,meegotouch/icons/icon-m-content-file-unknown-inverse.png
4276,64,64,png,meegotouch/icons/icon-m-content-travel.png
4277,64,64,png,meegotouch/icons/icon-l-firefox.png
4278,32,32,png,meegotouch/icons/icon-m-common-drilldown-arrow-disabled.png
4282,40,40,png,meegotouch/icons/icon-l-location-test-main-view.png
4284,32,32,png,meegotouch/icons/icon-s-service-youtube.png
4288,40,40,png,meegotouch/icons/icon-m-toolbar-new-email-white.png
4291,64,64,png,meegotouch/icons/icon-m-content-sms-dialog.png
4294,40,40,png,meegotouch/icons/icon-m-toolbar-new-chat-dimmed-white.png
4295,854,480,png,meegotouch/images/system-services/malfNOK_es.png
4299,18,18,png,meegotouch/icons/icon-s-conversation-skype.png
4304,32,32,png,meegotouch/icons/icon-s-service-caldav.png
4307,18,18,png,meegotouch/icons/icon-s-status-35g-suspended.png
4309,80,80,png,meegotouch/icons/icon-l-contact-avatar.png
4314,24,24,png,meegotouch/icons/icon-s-calendar-location-picker-inverse.png
4318,40,40,png,meegotouch/icons/icon-m-toolbar-send-email-selected.png
4339,64,64,png,meegotouch/icons/icon-m-telephony-volume-button-dimmed.png
4356,64,64,png,meegotouch/icons/icon-m-music-video-description.png
4363,64,64,png,meegotouch/icons/icon-m-telephony-hold-button.png
4364,40,40,png,meegotouch/icons/icon-m-toolbar-directory-white.png
4366,64,64,png,meegotouch/icons/icon-m-content-backup-inverse.png
4374,40,40,png,meegotouch/icons/icon-m-toolbar-directory-move-to-dimmed.png
4384,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-play-dimmed.png
4389,18,18,png,meegotouch/icons/icon-s-conversation-sip.png
4400,18,18,png,meegotouch/icons/icon-s-status-3g-suspended.png
4410,64,64,png,meegotouch/icons/icon-m-content-open-document-spreadsheet.png
4412,854,480,png,meegotouch/images/system-services/malf_es.png
4417,40,40,png,meegotouch/icons/icon-m-low-power-mode-system-update.png
4418,48,48,png,meegotouch/icons/icon-m-common-favorite-mark-inverse.png
4420,64,64,png,meegotouch/icons/icon-m-camera-manual-exposure-selected.png
4425,20,20,png,meegotouch/icons/icon-s-status-notifier-third-party-update.png
4430,32,32,png,meegotouch/icons/icon-s-location-picker-inverse.png
4447,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-next-dimmed.png
4451,32,32,png,meegotouch/icons/icon-s-input-method-right.png
4452,80,80,png,meegotouch/icons/icon-l-track-protect.png
4466,40,40,png,meegotouch/icons/icon-m-toolbar-search-white.png
4471,32,32,png,meegotouch/icons/icon-s-common-collapse.png
4475,18,18,png,meegotouch/icons/icon-s-status-25g-suspended.png
4483,32,32,png,meegotouch/icons/icon-s-service-lastfm.png
4485,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-next-dimmed-white.png
4492,32,32,png,meegotouch/icons/icon-m-textinput-combobox-arrow-disabled.png
4501,40,40,png,meegotouch/icons/icon-m-low-power-mode-sms.png
4502,22,22,png,meegotouch/icons/icon-m-camera-low-contrast.png
4504,48,48,png,meegotouch/icons/icon-m-weather-cloudy.png
4506,40,40,png,meegotouch/icons/icon-m-toolbar-stop-white.png
4512,40,40,png,meegotouch/icons/icon-m-toolbar-tab-next-white-selected.png
4514,64,64,png,meegotouch/icons/icon-m-camera-filter-sepia.png
4517,32,32,png,meegotouch/icons/icon-s-transfer-sync.png
4518,64,64,png,meegotouch/icons/icon-m-telephony-second-call.png
4528,48,48,png,meegotouch/icons/icon-m-telephony-sms-button.png
4532,20,20,png,meegotouch/icons/icon-s-status-tethering.png
4543,40,40,png,meegotouch/icons/icon-m-toolbar-history-white-selected.png
4544,40,40,png,meegotouch/icons/icon-m-toolbar-cancle-selected.png
4552,40,40,png,meegotouch/icons/icon-m-toolbar-volume-off-white.png
4557,32,32,png,meegotouch/icons/icon-s-transfer-upload.png
4561,48,48,png,meegotouch/icons/icon-m-input-methods-pinyin.png
4564,18,18,png,meegotouch/icons/icon-s-conversation-ovi.png
4565,18,18,png,meegotouch/icons/icon-s-bluetooth.png
4578,20,20,png,meegotouch/icons/icon-s-status-35g-active.png
4600,32,32,png,meegotouch/icons/icon-s-telephony-videocall-pause.png
4603,32,32,png,meegotouch/icons/icon-m-common-drilldown-arrow-inverse-disabled.png
4608,40,40,png,meegotouch/icons/icon-m-toolbar-gallery-dimmed-white.png
4609,64,64,png,meegotouch/icons/icon-m-service-bing.png
4615,40,40,png,meegotouch/icons/icon-m-toolbar-all-content-dimmed-white.png
4621,64,64,png,meegotouch/icons/icon-m-content-streaming.png
4624,40,40,png,meegotouch/icons/icon-l-ovi-music-main-view.png
4629,40,40,png,meegotouch/icons/icon-m-toolbar-refresh1-selected.png
4634,64,64,png,meegotouch/icons/icon-m-service-dopplr.png
4640,80,80,png,meegotouch/icons/icon-l-content-voicemail.png
4641,20,20,png,meegotouch/icons/icon-s-status-mms.png
4643,40,40,png,meegotouch/icons/icon-m-toolbar-undo-white.png
4654,32,32,png,meegotouch/icons/icon-m-telephony-callhistory-received.png
4656,64,64,png,meegotouch/icons/icon-m-content-wlan.png
4659,32,32,png,meegotouch/icons/icon-s-telephony-second-call.png
4667,32,32,png,meegotouch/icons/icon-s-toolbar-view-menu.png
4668,64,64,png,meegotouch/icons/icon-m-telephony-handsfree-button-dimmed.png
4672,64,64,png,meegotouch/icons/icon-m-camera-timer-10seconds.png
4677,40,40,png,meegotouch/icons/icon-m-toolbar-headphones-white.png
4687,48,48,png,meegotouch/icons/icon-m-weather-rain.png
4706,40,40,png,meegotouch/icons/icon-m-toolbar-attachment-dimmed.png
4711,32,32,png,meegotouch/icons/icon-s-error.png
4717,40,40,png,meegotouch/icons/icon-m-toolbar-tab-previous-dimmed-white.png
4722,40,40,png,meegotouch/icons/icon-m-toolbar-directory-selected.png
4723,32,32,png,meegotouch/icons/icon-s-call-inverse.png
4728,64,64,png,meegotouch/icons/icon-m-common-clock-inverse.png
4729,64,64,png,meegotouch/icons/icon-m-content-clipart-inverse.png
4731,40,40,png,meegotouch/icons/icon-m-toolbar-captured-dimmed-white.png
4752,48,48,png,meegotouch/icons/icon-m-facebook-smiley-angry.png
4753,32,32,png,meegotouch/icons/icon-s-common-drive-inverse.png
4768,64,64,png,meegotouch/icons/icon-m-content-note-inverse.png
4772,40,40,png,meegotouch/icons/icon-m-toolbar-undo-dimmed.png
4781,40,40,png,meegotouch/icons/icon-m-toolbar-content-audio-selected.png
4786,20,20,png,meegotouch/icons/icon-s-status-notifier-mms.png
4787,40,40,png,meegotouch/icons/icon-m-toolbar-new-email-dimmed-white.png
4788,40,40,png,meegotouch/icons/icon-m-toolbar-add-white.png
4791,64,64,png,meegotouch/icons/icon-m-content-radiostation-inverse.png
4797,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-forward-white-selected.png
4798,32,32,png,meegotouch/icons/icon-s-email-inverse.png
4800,64,64,png,meegotouch/icons/icon-m-content-powerpoint-slideshow.png
4823,48,48,png,meegotouch/icons/icon-m-camera-flash-off-choice.png
4824,64,64,png,meegotouch/icons/icon-m-content-excel-inverse.png
4828,32,32,png,meegotouch/icons/icon-s-service-baidu.png
4833,40,40,png,meegotouch/icons/icon-m-low-power-mode-chat.png
4836,64,64,png,meegotouch/icons/icon-m-content-music-band-inverse.png
4847,40,40,png,meegotouch/icons/icon-m-toolbar-list-white.png
4850,40,40,png,meegotouch/icons/icon-m-toolbar-image-edit-dimmed.png
4884,40,40,png,meegotouch/icons/icon-m-toolbar-share-dimmed.png
4887,48,48,png,meegotouch/icons/icon-m-facebook-smiley-very-happy.png
4890,40,40,png,meegotouch/icons/icon-m-toolbar-grid-selected.png
4891,854,480,png,meegotouch/images/system-services/malf_id.png
4926,40,40,png,meegotouch/icons/icon-m-toolbar-up-dimmed-white.png
4929,40,40,png,meegotouch/icons/icon-m-toolbar-content-audio-dimmed.png
4930,18,18,png,meegotouch/icons/icon-s-facebook-smiley-cry.png
4932,256,256,png,meegotouch/icons/icon-l-sharing-text.png
4935,40,40,png,meegotouch/icons/icon-m-toolbar-previous-white-selected.png
4936,40,40,png,meegotouch/icons/icon-m-toolbar-addressbook-selected.png
4939,40,40,png,meegotouch/icons/icon-m-toolbar-main-view-dimmed-white.png
4943,40,40,png,meegotouch/icons/icon-m-toolbar-trim-dimmed.png
4944,80,80,png,meegotouch/icons/icon-l-shazam.png
4945,40,40,png,meegotouch/icons/icon-m-toolbar-new-message-dimmed-white.png
4969,40,40,png,meegotouch/icons/icon-m-toolbar-all-content-white-selected.png
4972,64,64,png,meegotouch/icons/icon-m-content-sports-team-inverse.png
4981,40,40,png,meegotouch/icons/icon-m-toolbar-reply-selected.png
5003,40,40,png,meegotouch/icons/icon-m-toolbar-redo-white-selected.png
5009,64,64,png,meegotouch/icons/icon-m-music-video-volume.png
5026,48,48,png,meegotouch/icons/icon-m-telephony-chat-button.png
5027,40,40,png,meegotouch/icons/icon-m-browser-stop.png
5028,64,64,png,meegotouch/icons/icon-m-content-portable-document-format-inverse.png
5036,40,40,png,meegotouch/icons/icon-m-toolbar-alarm-dimmed.png
5041,80,80,png,meegotouch/icons/icon-l-flickr.png
5043,40,40,png,meegotouch/icons/icon-m-toolbar-contact.png
5045,40,40,png,meegotouch/icons/icon-m-toolbar-done-dimmed.png
5047,80,80,png,meegotouch/icons/icon-l-vimeo.png
5057,40,40,png,meegotouch/icons/icon-m-toolbar-shuffle-selected.png
5060,64,64,png,meegotouch/icons/icon-m-content-attachment-inverse.png
5067,24,24,png,meegotouch/icons/icon-m-lockscreen-mediacontrol-previous.png
5069,40,40,png,meegotouch/icons/icon-m-toolbar-clock-dimmed.png
5077,24,24,png,meegotouch/icons/icon-m-lockscreen-mediacontrol-play-dimmed.png
5080,864,480,jpg,meegotouch/images/splash/meegotouch-ap-splash.jpg
5093,24,24,png,meegotouch/icons/icon-m-lockscreen-mediacontrol-play.png
5094,48,48,png,meegotouch/icons/icon-m-camera-flash-red-eye-pressed.png
5096,64,64,png,meegotouch/icons/icon-m-telephony-content-chat.png
5103,40,40,png,meegotouch/icons/icon-m-toolbar-send-sms-white.png
5111,80,80,png,meegotouch/icons/icon-l-calendar-11.png
5114,80,80,png,meegotouch/icons/icon-l-calendar-13.png
5116,80,80,png,meegotouch/icons/icon-l-calendar-15.png
5118,48,48,png,meegotouch/icons/icon-m-telephony-view-menu-inverse.png
5142,40,40,png,meegotouch/icons/icon-m-toolbar-tab-next-dimmed.png
5150,64,64,png,meegotouch/icons/icon-m-service-twitter.png
5151,40,40,png,meegotouch/icons/icon-m-toolbar-history-selected.png
5155,40,40,png,meegotouch/icons/icon-m-toolbar-stop-selected.png
5156,32,32,png,meegotouch/icons/icon-s-image-edit-high-contrast.png
5160,48,48,png,meegotouch/icons/icon-m-common-refresh.png
5165,40,40,png,meegotouch/icons/icon-m-toolbar-content-ovi-music-dimmed.png
5168,40,40,png,meegotouch/icons/icon-m-toolbar-callhistory-white-selected.png
5176,80,80,png,meegotouch/icons/icon-l-sdk-connection.png
5181,32,32,png,meegotouch/icons/icon-m-att.png
5182,64,64,png,meegotouch/icons/icon-m-content-podcast-video-inverse.png
5183,64,64,png,meegotouch/icons/icon-m-content-search-inverse.png
5194,40,40,png,meegotouch/icons/icon-m-toolbar-jump-to-white.png
5199,40,40,png,meegotouch/icons/icon-m-toolbar-history-white.png
5205,40,40,png,meegotouch/icons/icon-m-toolbar-select-text-dimmed-white.png
5214,24,24,png,meegotouch/icons/icon-m-lockscreen-mediacontrol-next-dimmed.png
5216,20,20,png,meegotouch/icons/icon-s-notification-low-memory.png
5221,40,40,png,meegotouch/icons/icon-m-toolbar-up.png
5223,64,64,png,meegotouch/icons/icon-m-telephony-content-sms-dimmed.png
5224,48,48,png,meegotouch/icons/icon-m-camera-video-selected.png
5227,40,40,png,meegotouch/icons/icon-m-toolbar-jump-to-selected.png
5232,40,40,png,meegotouch/icons/icon-m-toolbar-share-selected.png
5243,48,48,png,meegotouch/icons/icon-m-weather-rain-snow.png
5248,40,40,png,meegotouch/icons/icon-m-toolbar-update-white.png
5250,18,18,png,meegotouch/icons/icon-s-conversation-twitter.png
5254,48,48,png,meegotouch/icons/icon-m-common-backspace-selected.png
5258,80,80,png,meegotouch/icons/icon-l-ovi-music.png
5264,64,64,png,meegotouch/icons/icon-m-content-genre-inverse.png
5267,40,40,png,meegotouch/icons/icon-m-toolbar-down-dimmed-white.png
5271,40,40,png,meegotouch/icons/icon-m-toolbar-redo-selected.png
5274,48,48,png,meegotouch/icons/icon-m-facebook-smiley-worried.png
5286,48,48,png,meegotouch/icons/icon-m-gallery-favorite-mark-selected.png
5290,40,40,png,meegotouch/icons/icon-m-low-power-mode-insufficient-power.png
5314,64,64,png,meegotouch/icons/icon-m-status-menu-alarm-mute.png
5316,40,40,png,meegotouch/icons/icon-m-toolbar-edit-selected.png
5319,48,48,png,meegotouch/icons/icon-m-emergency-call-backspace.png
5320,32,32,png,meegotouch/icons/icon-s-telephony-videocall-play.png
5343,64,64,png,meegotouch/icons/icon-m-service-lastfm.png
5351,32,32,png,meegotouch/icons/icon-s-facebook-card.png
5352,32,32,png,meegotouch/icons/icon-s-common-drive.png
5355,40,40,png,meegotouch/icons/icon-l-calculator-main-view.png
5361,48,48,png,meegotouch/icons/icon-m-weather-sunny-flurries.png
5373,64,64,png,meegotouch/icons/icon-m-telephony-call-combine-button-dimmed.png
5375,80,80,png,meegotouch/icons/icon-l-accounts.png
5380,32,32,png,meegotouch/icons/icon-m-camera-filter-solarize-screen.png
5384,16,8,png,meegotouch/icons/icon-m-common-expand.png
5400,854,480,png,meegotouch/images/system-services/malf_ms.png
5401,64,64,png,meegotouch/icons/icon-m-telephony-phone-button.png
5407,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-backwards-white.png
5411,40,40,png,meegotouch/icons/icon-m-toolbar-frequent-used-white-selected.png
5417,40,40,png,meegotouch/icons/icon-m-toolbar-search-dimmed.png
5427,32,32,png,meegotouch/icons/icon-m-camera-filter-sepia-screen.png
5428,24,24,png,meegotouch/icons/icon-m-lockscreen-mediacontrol-play-selected.png
5434,40,40,png,meegotouch/icons/icon-m-toolbar-all-content-white.png
5443,64,64,png,meegotouch/icons/icon-m-service-msn.png
5448,40,40,png,meegotouch/icons/icon-m-toolbar-clock-white.png
5449,64,64,png,meegotouch/icons/icon-m-content-system-update-inverse.png
5454,32,32,png,meegotouch/icons/icon-s-sms-inverse.png
5459,40,40,png,meegotouch/icons/icon-m-toolbar-done-white.png
5464,40,40,png,meegotouch/icons/icon-m-toolbar-reply-all-white.png
5475,32,32,png,meegotouch/icons/icon-s-location-picker-selected.png
5485,32,32,png,meegotouch/icons/icon-s-service-nfc.png
5490,40,40,png,meegotouch/icons/icon-m-toolbar-settings-white.png
5511,40,40,png,meegotouch/icons/icon-m-toolbar-tab-next-white.png
5517,854,480,png,meegotouch/images/system-services/malfNOK_ar.png
5529,64,64,png,meegotouch/icons/icon-m-telephony-call-split-dimmed.png
5530,256,256,png,meegotouch/icons/icon-l-sharing-excel.png
5535,32,32,png,meegotouch/icons/icon-s-service-yahoo-messenger.png
5545,64,64,png,meegotouch/icons/icon-m-content-movie-inverse.png
5550,80,80,png,meegotouch/icons/icon-l-user-guide.png
5553,20,20,png,meegotouch/icons/icon-s-alarm.png
5556,64,64,png,meegotouch/icons/icon-m-ovi-service-maps.png
5574,20,20,png,meegotouch/icons/icon-s-status-notifier-email.png
5577,48,48,png,meegotouch/icons/icon-m-common-locked-inverse.png
5578,64,64,png,meegotouch/icons/icon-m-service-nfc.png
5579,40,40,png,meegotouch/icons/icon-m-toolbar-cancle.png
5594,40,40,png,meegotouch/icons/icon-m-toolbar-volume-white.png
5598,64,64,png,meegotouch/icons/icon-m-camera-filter-negative.png
5599,64,64,png,meegotouch/icons/icon-m-service-vodafone.png
5607,40,40,png,meegotouch/icons/icon-m-toolbar-content-ovi-music-selected.png
5611,40,40,png,meegotouch/icons/icon-m-toolbar-settings-dimmed.png
5612,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-pause-white.png
5615,64,64,png,meegotouch/icons/icon-m-content-open-document-text.png
5620,128,128,png,meegotouch/icons/icon-l-energy-management-charging-1.png
5621,128,128,png,meegotouch/icons/icon-l-energy-management-charging-0.png
5622,128,128,png,meegotouch/icons/icon-l-energy-management-charging-3.png
5623,128,128,png,meegotouch/icons/icon-l-energy-management-charging-2.png
5624,128,128,png,meegotouch/icons/icon-l-energy-management-charging-4.png
5625,32,32,png,meegotouch/icons/icon-s-service-ovi-music.png
5627,40,40,png,meegotouch/icons/icon-m-toolbar-gallery-selected.png
5636,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-play-white.png
5642,40,40,png,meegotouch/icons/icon-m-toolbar-tools-white.png
5657,64,64,png,meegotouch/icons/icon-m-content-calendar.png
5660,40,40,png,meegotouch/icons/icon-m-toolbar-favorite-mark-dimmed-white.png
5664,40,40,png,meegotouch/icons/icon-m-toolbar-shuffle-dimmed.png
5667,64,64,png,meegotouch/icons/icon-m-music-video-volume-off.png
5674,64,64,png,meegotouch/icons/icon-m-telephony-handsfree-button.png
5675,40,40,png,meegotouch/icons/icon-m-toolbar-attachment-white-selected.png
5699,256,256,png,meegotouch/icons/icon-l-sharing-pdf.png
5711,32,32,png,meegotouch/icons/icon-s-telephony-hold.png
5723,64,64,png,meegotouch/icons/icon-m-service-yahoo-messenger.png
5739,64,64,png,meegotouch/icons/icon-m-content-playlist-inverse.png
5741,40,40,png,meegotouch/icons/icon-m-toolbar-volume-selected.png
5744,854,480,png,meegotouch/images/system-services/booting.png
5748,64,64,png,meegotouch/icons/icon-m-content-invitation-pending-inverse.png
5759,32,32,png,meegotouch/icons/icon-m-telephony-callhistory-missed.png
5760,40,40,png,meegotouch/icons/icon-m-low-power-mode-charging-4.png
5761,40,40,png,meegotouch/icons/icon-m-low-power-mode-charging-3.png
5762,40,40,png,meegotouch/icons/icon-m-low-power-mode-charging-2.png
5763,40,40,png,meegotouch/icons/icon-m-low-power-mode-charging-1.png
5764,40,40,png,meegotouch/icons/icon-m-low-power-mode-charging-0.png
5784,854,480,png,meegotouch/images/system-services/malfNOK_en_GB.png
5788,40,40,png,meegotouch/icons/icon-m-low-power-mode-remove-charger.png
5789,40,40,png,meegotouch/icons/icon-m-toolbar-gallery-white.png
5794,40,40,png,meegotouch/icons/icon-m-toolbar-directory-move-to-white-selected.png
5798,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-previous-white.png
5818,854,480,png,meegotouch/images/system-services/malfNOK_cs.png
5828,64,64,png,meegotouch/icons/icon-m-content-wlan-inverse.png
5829,48,48,png,meegotouch/icons/icon-m-common-favorite-unmark-inverse.png
5830,64,64,png,meegotouch/icons/icon-m-content-podcast-audio-inverse.png
5840,40,40,png,meegotouch/icons/icon-m-toolbar-edit-dimmed.png
5846,64,64,png,meegotouch/icons/icon-m-content-movie.png
5857,40,40,png,meegotouch/icons/icon-m-toolbar-history-dimmed.png
5870,40,40,png,meegotouch/icons/icon-m-toolbar-share-white.png
5883,20,20,png,meegotouch/icons/icon-s-status-notifier-software-update.png
5887,24,24,png,meegotouch/icons/icon-m-lockscreen-mediacontrol-previous-dimmed.png
5891,854,480,png,meegotouch/images/system-services/malf_es_419.png
5904,64,64,png,meegotouch/icons/icon-m-telephony-emergency-call-button.png
5909,40,40,png,meegotouch/icons/icon-m-toolbar-favorite-mark-selected.png
5911,32,32,png,meegotouch/icons/icon-s-image-edit-low-contrast.png
5916,40,40,png,meegotouch/icons/icon-l-gallery-main-view.png
5917,48,48,png,meegotouch/icons/icon-m-facebook-smiley-kiss.png
5922,19,31,png,meegotouch/icons/icon-m-common-next-selected.png
5923,854,480,png,meegotouch/images/system-services/malf_en_US.png
5933,32,32,png,meegotouch/icons/icon-s-service-icq.png
5945,18,18,png,meegotouch/icons/icon-s-conversation-jabber.png
5950,64,64,png,meegotouch/icons/icon-m-content-tips-inverse.png
5965,40,40,png,meegotouch/icons/icon-m-toolbar-new-message-dimmed.png
5976,40,40,png,meegotouch/icons/icon-m-toolbar-search-white-selected.png
5985,64,64,png,meegotouch/icons/icon-m-telephony-dialer-button-dimmed.png
5997,34,34,png,meegotouch/icons/icon-m-cherry-emergency-call.png
6013,40,40,png,meegotouch/icons/icon-m-toolbar-grid-dimmed-white.png
6016,52,52,png,meegotouch/icons/icon-m-toolbar-back-dimmed-white.png
6031,80,80,png,meegotouch/icons/icon-l-contact-voicemail.png
6043,64,64,png,meegotouch/icons/icon-m-content-poi-inverse.png
6059,64,64,png,meegotouch/icons/icon-m-telephony-dialer-button.png
6070,32,32,png,meegotouch/icons/icon-s-wlan-wep.png
6076,32,32,png,meegotouch/icons/icon-s-music-video-description.png
6077,80,80,png,meegotouch/icons/icon-l-location-test.png
6081,40,40,png,meegotouch/icons/icon-m-toolbar-new-message-white-selected.png
6088,20,20,png,meegotouch/icons/icon-s-status-notifier-chat.png
6097,40,40,png,meegotouch/icons/icon-m-toolbar-redo-dimmed-white.png
6102,196,40,png,meegotouch/icons/icon-l-about-nokia-logo.png
6107,64,64,png,meegotouch/icons/icon-m-service-google-calendar.png
6110,40,40,png,meegotouch/icons/icon-m-toolbar-pages-all-dimmed-white.png
6111,18,18,png,meegotouch/icons/icon-s-status-gsm-suspended.png
6113,40,40,png,meegotouch/icons/icon-m-toolbar-tag-dimmed-white.png
6114,40,40,png,meegotouch/icons/icon-m-toolbar-attachment-selected.png
6129,48,48,png,meegotouch/icons/icon-m-invitation-accept.png
6133,32,32,png,meegotouch/icons/icon-s-toolbar-italic.png
6141,64,64,png,meegotouch/icons/icon-m-status-menu-no-internet-connection.png
6150,32,32,png,meegotouch/icons/icon-s-facebook-card-chat.png
6164,32,32,png,meegotouch/icons/icon-s-service-aol-messenger.png
6168,40,40,png,meegotouch/icons/icon-m-toolbar-share-dimmed-white.png
6169,32,32,png,meegotouch/icons/icon-s-pause.png
6170,64,64,png,meegotouch/icons/icon-m-telephony-callhistory-missed-inverse.png
6172,64,64,png,meegotouch/icons/icon-m-ovi-service-ovi-store.png
6177,40,40,png,meegotouch/icons/icon-m-toolbar-cancle-dimmed-white.png
6187,22,22,png,meegotouch/icons/icon-m-camera-high-contrast.png
6189,40,40,png,meegotouch/icons/icon-l-maps-main-view.png
6193,32,32,png,meegotouch/icons/icon-m-presence-away.png
6198,128,128,png,meegotouch/icons/icon-l-energy-management-insufficient-power.png
6206,64,64,png,meegotouch/icons/icon-m-content-nfc-inverse.png
6208,40,40,png,meegotouch/icons/icon-m-toolbar-people-white.png
6212,64,64,png,meegotouch/icons/icon-m-camera-filter-normal-selected.png
6215,80,80,png,meegotouch/icons/icon-l-realgolf.png
6232,854,480,png,meegotouch/images/system-services/malf_sv.png
6235,40,40,png,meegotouch/icons/icon-m-toolbar-clock-white-selected.png
6238,40,40,png,meegotouch/icons/icon-m-toolbar-update-dimmed-white.png
6239,64,64,png,meegotouch/icons/icon-m-common-device-root-inverse.png
6248,48,49,png,meegotouch/icons/icon-m-common-previous-white.png
6255,26,26,png,meegotouch/icons/icon-s-camera-high-brightness.png
6262,64,64,png,meegotouch/icons/icon-m-status-menu-flight-mode.png
6267,40,40,png,meegotouch/icons/icon-m-toolbar-content-audio-dimmed-white.png
6268,62,62,png,meegotouch/icons/icon-m-content-ovi-store-inverse.png
6272,64,64,png,meegotouch/icons/icon-m-service-ovi.png
6278,64,64,png,meegotouch/icons/icon-m-service-att.png
6281,16,20,png,meegotouch/icons/icon-s-status-transfer-error.png
6291,64,64,png,meegotouch/icons/icon-m-content-art-culture.png
6319,64,64,png,meegotouch/icons/icon-m-camera-manual-exposure.png
6321,32,32,png,meegotouch/icons/icon-s-toolbar-bold.png
6324,32,32,png,meegotouch/icons/icon-s-service-nokia-account.png
6328,40,40,png,meegotouch/icons/icon-m-toolbar-reply-all-dimmed.png
6341,80,80,png,meegotouch/icons/icon-l-qik.png
6348,64,64,png,meegotouch/icons/icon-m-content-avatar-placeholder-inverse.png
6351,854,480,png,meegotouch/images/system-services/malf_uk.png
6363,64,64,png,meegotouch/icons/icon-m-camera-timer-2seconds.png
6364,40,40,png,meegotouch/icons/icon-m-low-power-mode-silent.png
6369,32,32,png,meegotouch/icons/icon-s-music-video-favorite-mark.png
6374,40,40,png,meegotouch/icons/icon-m-toolbar-forward-white-selected.png
6378,64,64,png,meegotouch/icons/icon-m-telephony-phone-button-selected.png
6384,40,40,png,meegotouch/icons/icon-m-toolbar-redo-white.png
6399,64,64,png,meegotouch/icons/icon-m-camera-shutter.png
6402,24,24,png,meegotouch/icons/icon-m-lockscreen-mediacontrol-stop.png
6407,64,64,png,meegotouch/icons/icon-m-telephony-content-chat-dimmed.png
6411,40,40,png,meegotouch/icons/icon-m-toolbar-mediacontrol-forward-white.png
6413,32,32,png,meegotouch/icons/icon-m-contacts-group.png
6414,32,32,png,meegotouch/icons/icon-m-presence-offline.png
6415,20,20,png,meegotouch/icons/icon-s-status-notifier-sms.png
6431,64,64,png,meegotouch/icons/icon-m-content-tags-inverse.png
6440,64,64,png,meegotouch/icons/icon-m-content-landmark-inverse.png
6451,64,64,png,meegotouch/icons/icon-m-camera-filter-negative-selected.png
6452,64,64,png,meegotouch/icons/icon-m-bluetooth-camera.png
6455,48,48,png,meegotouch/icons/icon-m-camera-troch-off.png
6459,40,40,png,meegotouch/icons/icon-m-toolbar-tab-next-selected.png
6463,32,32,png,meegotouch/icons/icon-m-presence-online.png
6465,40,40,png,meegotouch/icons/icon-m-toolbar-pages-all-white-selected.png
6466,40,40,png,meegotouch/icons/icon-m-toolbar-volume-off-dimmed-white.png
6469,64,64,png,meegotouch/icons/icon-m-conversation-inbox.png
6470,40,40,png,meegotouch/icons/icon-m-toolbar-tag-selected.png
6483,18,18,png,meegotouch/icons/icon-s-conversation-msn-messenger.png
6490,64,64,png,meegotouch/icons/icon-m-service-flickr.png
6494,30,30,png,meegotouch/icons/icon-s-common-favorite-selected.png
6498,20,20,png,meegotouch/icons/icon-s-status-gsm-active.png
6499,80,80,png,meegotouch/icons/icon-l-content-avatar-placeholder.png
6501,64,64,png,meegotouch/icons/icon-m-content-tippit.png
6513,32,32,png,meegotouch/icons/icon-m-status-jabber.png
6515,854,480,png,meegotouch/images/system-services/malfNOK_it.png
6520,22,22,png,meegotouch/icons/icon-s-camera-high-contrast.png
6521,854,480,png,meegotouch/images/system-services/malfNOK_id.png
6529,32,32,png,meegotouch/icons/icon-s-pause-inverse.png
6530,64,64,png,meegotouch/icons/icon-m-content-image-inverse.png
6532,80,80,png,meegotouch/icons/icon-l-calendar-31.png
6538,40,40,png,meegotouch/icons/icon-m-toolbar-list-white-selected.png
6539,40,40,png,meegotouch/icons/icon-m-toolbar-dimmed-update.png
6547,48,48,png,meegotouch/icons/icon-m-telephony-video-call-button.png
&lt;/nowiki&gt;</text>
    </revision>
  </page>
  <page>
    <title>QtLockscreen</title>
    <id>4952</id>
    <revision>
      <id>47445</id>
      <timestamp>2012-05-07T13:43:21Z</timestamp>
      <contributor>
        <username>sakya</username>
        <id>4582</id>
      </contributor>
      <comment>/* Widget list */</comment>
      <text xml:space="preserve">== General Information ==

QtLockscreen is a highly configurable replacement of Maemo5 default lockscreen created by [http://talk.maemo.org/member.php?u=49449 &quot;sakya&quot;].
(Credits for the backend go to [http://talk.maemo.org/member.php?u=25578 &quot;MohammadAG&quot;])

Further information and discussions can be found here:

* [http://talk.maemo.org/showthread.php?t=75150 &quot;(Announce) QtLockscreen: highly configurable lockscreen replacement&quot;]
* [http://talk.maemo.org/showthread.php?t=75187 &quot;Share your QtLockscreen configs!&quot;]
* [http://www.assembla.com/spaces/qtlockscreen/wiki &quot;Project Page&quot;]

For further support and information you might want to check these threads.

Check the following links to get an impression of how OtLockscreen looks:

* [http://www.assembla.com/spaces/qtlockscreen/documents/a28hxKTfyr4lm5eJe4gwI3/download/a28hxKTfyr4lm5eJe4gwI3 &quot;Screenshot&quot;], 

* [http://www.youtube.com/watch?v=hUK7OvJZGdo &quot;video&quot;] (Created by [http://talk.maemo.org/member.php?u=30235 &quot;F2thaK&quot;]) and

* [http://www.youtube.com/watch?v=Jm2jdI0Op8Q &quot;video&quot;] (Created by [http://talk.maemo.org/member.php?u=48195 &quot;pusak gaoq&quot;])

 
Currently this app is available from extras-devel (See [http://maemo.org/packages/view/qtlockscreen/ Package Info Page]).

== Disclaimer ==

&lt;font color=red&gt;'''!!! CAUTION !!!'''

Default extras-devel disclaimer:
This project is still in development stage, which means there might still be some risks, downsides and issues to be solved before it is ready for the average user...
Please read this summary carefully and evaluate the risks involved for yourself!
(Keep in mind that this can cause problems for the phone. Backup your data, backup your config (apps &gt; system &gt; backup) and know how to reflash)

'''Whatever you do, you are doing it at your own risk!'''&lt;/font&gt;

== Change Log ==

===''' Version 0.1.11 '''===

* Added ShowImage (to show/hide the forecast image), ConditionsText, ConditionsPos, ConditionsFont, ConditionsColor (for the current conditions text) settings to weather widget
* Added setting to turn on/off antialiasing (was on by default in previous versions)
* Added PercentageType setting to BatteryWidget (can be &quot;default&quot;, &quot;bq27200&quot; or &quot;dr_frost_dk&quot;)
* Fixed dateTime day and month display when Locale setting is set
* Fixed alignment settings, now you can set horizontal alignment and vertical alignment:
Example (horizontally centered and top aligned):
Alignment=&quot;center;top&quot;

'''Please note:''' &quot;TextAlignment&quot; for notification works as before (it should be named TextPosition but all themes out now uses TextAlignment, so...).
DateTime and text widget uses the &quot;new&quot; alignment horizontal+vertical.

===''' Version 0.1.10 '''===

* Added command line argument to take a screenshot:
   /usr/bin/qtlockscreen -s /home/user/screenshot.png
* Added command line argument to set the config file to use
   /usr/bin/qtlockscreen -c /opt/qtlockscreen/theme.ini
* Added SliderImagePressed setting to SlideToUnlock widget
* Fixed some bugs :p

===''' Version 0.1.9 '''===

* Fixed Weather widget script
* Fixed languages: sv_SV (I forgot the file in v.0.1.8)

===''' Version 0.1.8 '''===

* Added setting to override the system locale (see the default config file)
* Added wifi widget
* Added Weather widget
* Fixed albumart corrupted if the widget has different size in portrait and landscape
* Added languages: sv_SV
* Fixed: reverted to old orientation manager (it should fix the problems appeared from version 0.1.5)

===''' Version 0.1.7 '''===

* Fixed background problem when Orientation is set to &quot;portrait&quot; (really) :)

===''' Version 0.1.6 '''===

* Fixed background problem when Orientation is set to &quot;portrait&quot;
* Added to SlideToUnlock settings UnlockXL, UnlockXP, UnlockYL, UnlockYP

===''' Version 0.1.5 '''===

* Added SlideToUnlock widget
* Added languages: cn_CN, tw_TW
* Added setting to set the text for notification widget
* Added setting to set the text position for notification widget
* Added IM notification
* Added Text widget
* Removed embedded resources: all resources are copied to /opt/qtlockscreen

===''' Version 0.1.4 '''===

* Added german translation (NightShift79)
* The default config file is always copied to /home/user/.config/sakya/QtLockscreen.ini.default
* Added postrm script
* Fixed metadata update

===''' Version 0.1.3 '''===

* Added italian translation
* Added french translation (GaRy delaMEr)
* Added PercentageColor setting for battery widget
* Fixed: the lockscreen was on top of the alarm dialog
* Fixed: battery widget now has a ChargingImage setting

===''' Version 0.1.2 '''===

* Fixed _HILDON_WM_ACTION_NO_TRANSITIONS

===''' Version 0.1.1 '''===

* Changed default background to /etc/hildon/theme/backgrounds/lockslider.png
* Changed font settings, format = &quot;fontName;fontSize;fontWeight;italic&quot;

===''' Version 0.1.0 '''===

* Initial Release

== Known Issues ==

* When the power button is clicked the app does not update the screen for 2 seconds. This seems a Qt problem: every qt application &quot;locks&quot; when the power button is pressed, I don't know why.
* The rotation is slow.
* Album art is not loaded correctly in some situations
* Rotation of P to L does not work sometimes

== Requested Features ==

* GUI for configuration (sakya is currently not planning to create a GUI, maybe someone is willing to help out here ;-) )
* Clicking on the notifications directly opens the related app. i.e. sms' opens the conversation app, missed calls opens the phone app
* Configuring the length of time the lockscreen stays before fading out

== Planned Features ==

* &lt;s&gt;Swipe to unlock widget / feature&lt;/s&gt; (Implemented in v0.1.5)
* &lt;s&gt;IM notification widget&lt;/s&gt; (Implemented in v0.1.5)
* &lt;s&gt;Operator widget&lt;/s&gt; (Implemented in v0.1.12)
* &lt;s&gt;Wifi/3g widget&lt;/s&gt; (Implemented in v0.1.8)
* &lt;s&gt;Weather widget&lt;/s&gt; (Implemented in v0.1.8)
* &lt;s&gt;Signal widget&lt;/s&gt; (Implemented in v0.1.12)
* Change profile (general / silent) widget

== Widget list ==
There are some common settings (common to all widgets):
&lt;pre&gt;PosL                              position in landscape
PosP                              position in portrait
SizeL                             size in landscape
SizeP                             size in portrait
RotationL                         roatation angle in landscape
RotationP                         roatation angle in portrait&lt;/pre&gt;

Here's a list of available widgets with their possible settings.
&lt;pre&gt;Widget list:
------------

Rect:
  Color                           rectangle bkg color
  Radius                          border radius

DateTime:
  Alignment                       text alignment
  TimeColor                       color of time text
  DateColor                       color of date text
  DateFormat                      date format
  TimeFormat                      time format
  TimeFont                        font for time text
  DateFont                        font for date text
  BackgroundUpdateIntervalSeconds If set the widget is updated also when the lockscreen is not visible

Battery:
  PercentageType		  the type of percentage to display (default, bq27200 or dr_frost_dk)
  Images                          list of images (separated by ;) to represent the battery charge
  ChargingImage                   image to use when the battery is charging
  PercentageColor                 color for percentage
  PercentageFont                  font for percentage

UnlockButton:
  WaitTimeMsec                    time to keep the button press before the unlock (in ms)
  BackGroundImage                 button bkg image
  BackGroundImagePressed          button bkg when is pressed

SlideToUnlockButton:
  SliderPos                       initial slider position (relative to the widget)
  SliderImage                     image for the slider
  SliderImagePressed	          image for the slider when pressed
  BackgroundImage                 widget background image
  UnlockXP                        unlock x position (portrait)
  UnlockYP                        unlock y position (portrait)
  UnlockXL                        unlock x position (landscape)
  UnlockYL                        unlock y position (landscape)

MediaPlayPauseButton:
  BackGroundImagePause            bkg image for pause
  BackGroundImagePausePressed     bkg image for pause when is pressed
  BackGroundImagePlay             bkg image for play
  BackGroundImagePlayPressed      bkg image for play when is pressed

MediaNextButton:
  BackGroundImage                 bkg image
  BackGroundImagePressed          bkg image when is pressed

MediaBackButton:
  BackGroundImage                 bkg image
  BackGroundImagePressed          bkg image when is pressed

MediaMetadata:
  Alignment                       text alignment
  TitleColor                      color for title text
  ArtistColor                     color for artist
  TitleFont                       color for title
  ArtistFont                      color for artist

MediaAlbumArt:
  NoCoverImage                    image to use when no cover is available

MediaTimeLabel:
  Color                           color for text
  Font                            font for text

Image:
  Alpha                           alpha (0-255) for the image
  Image                           image

Notification:
  Type                            notification type (call, sms, email, im)
  TextAlignment                   text alignment relative to the image (top, bottom, left, right, center)
  Color                           text color
  Font                            text font

Text:
  Alignment                       text alignment
  Multiline			  set it to 1 if the text is multiline
  Color                           text color
  Font                            text font
  Text                            text

TextCommand:
  Alignment                       text alignment
  Color                           text color
  Font                            text font
  Text                            text
  Command                         external command to execute
  UpdateInterval                  seconds between each command execution (set to zero to disable)

Weather:
  ShowImage		                    show forecast image (1 or 0)
  AutoUpdateIntervalSeconds       seconds between each auto update
  ConditionsText                  text to use before the current conditions text
  ConditionsPos                   position of the current conditions text (relative to this widget)
  ConditionsFont                  color for the current conditions 
  ConditionsColor                 color for the current conditions 
  CurrentText                     text to use before the current temp
  CurrentPos                      position of the current temp text (relative to this widget)
  CurrentFont                     color for the current temp
  CurrentColor                    color for the current temp
  HighText                        text to use before the high temp
  HighPos                         position of the high temp text (relative to this widget)
  HighFont                        color for the high temp
  HighColor                       color for the high temp
  LowText                         text to use before the current temp
  LowPos                          position of the current temp text (relative to this widget)
  LowFont                         color for the current temp
  LowColor                        color for the current temp
  MinimumSecondsBetweenUpdates    minimum time between each update
  Link                            yahoo weather link.
                                  You can set this without http://weather.yahoo.com/ 
                                  ex: italy/lombardy/milan-718345 
                                  or set the full link:
                                  ex: http://weather.yahoo.com/italy/lombardy/milan-718345
  Unit                            unit to use (c or nothing)

Internet:
  WifiImage                       icon for wifi connection
  GprsImage                       icon for gprs connection

OperatorName:
  Alignment                       text alignment	
  Color                           text color
  Font                            text font
  Images                          list of images to use instead of text.
                                  Ex:
                                  Vodafone IT=/home/user/vodafone.png;TIM=/home/user/tim.png

SignalStrength:
  Images                          list of images (separated by ;) to represent the signal strength

RadioMode:
  3gIcon                          image for 3g mode
  2gIcon                          image for 2g mode

Bluetooth:
  ImageOn                         image to display when the bluetooth is on
  ImageOff                        optional image to display when the bluetooth is off

Profile:
  Images                          list of images to use for profiles.
                                  Ex:
                                  general=/opt/qtlockscreen/default/profile_general.png;silent=/opt/qtlockscreen/default/profile_silent.png

Alarm:
  Alignment                       text alignment
  Multiline			  set it to 1 if the text is multiline
  Color                           text color
  Font                            text font
  Label                           label before the alarm date/time
  Format                          format of the alarm date/time

Calendar:
  NoEventsText                    text displayed when no events are found
  Entries                         number of entries to display
  DateFormat                      date format
  DateColor                       date color
  DateFont                        date font
  TextColor                       text color
  TextFont                        text font&lt;/pre&gt;

== Customization ==

Every item on the screen is configurable (position, size, font, image...).
You can also remove or add items.

!!!Note:
Items are called widget in this context.
But these aren't Maemo desktop widgets.
You can't add a desktop widget to this lockscreen.
&quot;Widgets&quot; are coded specifically for the lockscreen, you can use only the widgets provided by the app (rectangle, metadata, datetime....)
Widgets are drawn in the order they are created, the last is the topmost.

In order to customize QtLocscreen you need to edit the default configuration
(it is automatically created in /home/user/.config/sakya/QtLockscreen.ini the first time the app is launched) '''as root''':

'''Some guidelines for better theme quality and easier management:'''

A theme should be composed by:
- The configuration file (name it themeName.ini) in /opt/qtlockscreen
- A directory containing the images (name it /opt/qtlockscreen/themeName)
- Fonts (if needed) to be installed in /usr/share/fonts

'/opt/qtlockscreen/default/' is the default theme folder and should not be used to store your custom images or other files, so you should not overwrite or add / delete anything here. It is advised to create a directory that is named as your theme in directory '/opt/qtlockscreen/' and put everything there.

Please set also 'ThemeName' and 'ThemeAuthor' in your themes - the configuration file has a section for both:

&lt;pre&gt;ThemeName=&quot;Default&quot;&lt;/pre&gt;
Adapt this to reflect the theme namechange internally; so use the value from '&lt;yourthemename&gt;' here.

The field for theme's author name:
&lt;pre&gt;ThemeAuthor=&quot;sakya&quot;&lt;/pre&gt;

Fill both fields to support proper theme switching using the GUI application and follow the general scheme for your themes, so when the GUI utility will be released the themes will be in the correct place.

It will be supported to generate Debian packages to install themes in /opt/qtlockscreen and then set it as the active one with the configuration utility.

As for the backgrounds like all other customized images, it is suggested to include them in /opt/qtlockscreen/&lt;yourthemename&gt; as 'backgroundL.(jpg|png)' for landscape orientation and 'backgroundP.(jpg|png)' for portrait orientation.

As the major result of taking such precautions your QtLockscreen theme is basically self-contained, and can be more easily distributed to other users. Another positive point is it will not place used theme backgrounds / icons that are not true desktop backgrounds in '/home/user/MyDocs/.images' or other file system directories too, keeping everything tidy.

NOTE: the default configuration file that contains all widgets and is updated if you install a new release from the repository can be found here:
&lt;pre&gt;/home/user/.config/sakya/QtLockscreen.ini.default&lt;/pre&gt;

If you changed the configuration file and want to have the changes loaded, you need to kill the running lockscreen process (or reboot).

To kill the lockscreen, type
&lt;pre&gt;pkill -HUP qtlockscreen&lt;/pre&gt;

in Xterm and hit enter.


For '''previewing theme changes''' a &quot;Designer mode&quot; is implemented; it displays all the widgets: notifications, wifi, ...

&lt;pre&gt;/usr/bin/qtlockscreen -d&lt;/pre&gt;

To test a specific configuration file use:

&lt;pre&gt;/usr/bin/qtlockscreen -d -c &quot;path to config file&quot;&lt;/pre&gt;

To take a screenshot use:

&lt;pre&gt;/usr/bin/qtlockscreen -c &quot;path to config file&quot; -s &quot;path to image to be saved&quot;&lt;/pre&gt;

The application exits when you unlock it using 'slidetounlock' widget or unlock button.

=== Customizing time format ===

Change
&lt;pre&gt;TimeFormat=&quot;hh:mm&quot;&lt;/pre&gt;

to, if you want AM/PM
&lt;pre&gt;TimeFormat=&quot;hh:mm AP&quot;&lt;/pre&gt;

or, if you want am/pm
&lt;pre&gt;TimeFormat=&quot;hh:mm ap&quot;&lt;/pre&gt;


=== Customizing icons ===

Icon can be any size.
The icon will be center/top aligned in the size you give to the widget, the text will be horizontally centered just under the icon.
Just be sure that the Size you set is enough to display the icon and the text. 
To change the notifications icon you should change the
&lt;pre&gt;Icon=&quot;:/images/message.png&quot;&lt;/pre&gt;

The &quot;:/&quot; refers to the project resources, you have to use a &quot;normal&quot; path &quot;/home/user/...&quot; 

=== Positioning items ===

You need to define the numbers of pixels, but you can also do &quot;center; center&quot; (for example) to get the object perfectly centered

=== Reset to the default configuration ===

Open a terminal and

&lt;pre&gt;sudo gainroot
rm .config/sakya/QtLockscreen.ini
pkill -HUP qtlockscreen&lt;/pre&gt;

== Available Customizations ==

Please share your customized lockscreens here!!!
 
=== 1) Created by [http://talk.maemo.org/member.php?u=30235 &quot;F2thaK&quot;] ===

Short description: 
-no media/email widgets
-black battery font
-big time/date/battery/unlock
-slide to unlock
-12hr time with no preceding zero
-compatible with v0.1.7

SCREENS/DOWNLOAD:  http://talk.maemo.org/showpost.php?p=1068392&amp;postcount=197
Video:  http://www.youtube.com/watch?v=b9QWb2X6F30

=== 2) Created by [http://talk.maemo.org/member.php?u=28950 &quot;qw3rty&quot;] ===

Short description: Big next track button

Screenshot: [http://img20.imageshack.us/img20/7830/screenshot2011072221372.png &quot;Landscape&quot;] [http://img51.imageshack.us/img51/9591/screenshot2011072221371.png &quot;portrait&quot;]

Config.ini: n/a



=== 3) Created by [http://talk.maemo.org/member.php?u=51399 &quot;Hurrian&quot;] ===

Short description: Big time, time and date left, media widget whole width. Supports landscape and portrait modes.

Screenshot: Current version: [http://goput.it/4w5.png &quot;Landscape&quot;]

QtLockscreen.ini: [http://goput.it/str/zey.zip &quot;Not a real zip, rename it to QtLockscreen.ini&quot;]

Images: [http://goput.it/str/sae.tar &quot;link&quot;]

=== 4) Created by [http://talk.maemo.org/member.php?u=46309 &quot;Syndrome&quot;] ===

Short description: No media player, custom wallpaper

Screenshot: [http://dl.dropbox.com/u/5361213/Screenshot-20110723-144828.png &quot;Landscape&quot;]

Config.ini: n/a

=== 5) Created by [http://talk.maemo.org/member.php?u=45961 &quot;kishanW&quot;] ===

Short description: Biiiig time (12hr format)

Screenshot: [http://www.atox-d.com/testGround/tempUploads/n900_qtLockscreen/Screenshot-20110724-024121.png &quot;Portrait&quot;]

Config.ini: [http://www.atox-d.com/testGround/tempUploads/n900_qtLockscreen/qtlockscreenconfig.txt &quot;link&quot;]

Wallpaper: [http://www.atox-d.com/testGround/tempUploads/n900_qtLockscreen/wallpaper-1064497P.jpg &quot;Portrait&quot;], [http://www.atox-d.com/testGround/tempUploads/n900_qtLockscreen/wallpaper-1064497L.jpg &quot;Landscape&quot;]

=== 6) Created by [http://talk.maemo.org/member.php?u=28950 &quot;qw3rty&quot;] ===

Short description: Very music player centric, larger album cover and buttons. Play/pause by tapping the cover.

Screenshot: [http://img215.imageshack.us/img215/5483/screenshot2011072317200.png &quot;Landscape&quot;] [http://img692.imageshack.us/img692/2637/screenshot2011072317202vo.png &quot;portrait&quot;]

Config.ini: [http://talk.maemo.org/showpost.php?p=1056964&amp;postcount=2 &quot;link&quot;]

=== 7) Created by [http://talk.maemo.org/member.php?u=27553 &quot;lingling92&quot;] ===

Short description: Big time, date and media player, notifications only in portrait mode

Screenshot: [http://talk.maemo.org/attachment.php?attachmentid=21599&amp;stc=1&amp;d=1311445072 &quot;Landscape&quot;] [http://talk.maemo.org/attachment.php?attachmentid=21600&amp;stc=1&amp;d=1311445084 &quot;portrait&quot;]

Config.ini: [http://talk.maemo.org/attachment.php?attachmentid=21601&amp;d=1311445147 &quot;link&quot;]

=== 8) Created by [http://talk.maemo.org/member.php?u=38353 &quot;Zekahz&quot;] ===

Short description: Only portrait mode edited, big time, no top bar. The space above the time and date is one giant invisible media player next-button

Screenshot: [http://goput.it/8lo.png &quot;portrait&quot;]

Config.ini: [http://talk.maemo.org/attachment.php?attachmentid=21608&amp;d=1311497738 &quot;link&quot;]

=== 9) Created by [http://talk.maemo.org/member.php?u=48195 &quot;pusak gaoq&quot;] ===

Short description: Centered

Screenshot: [http://img97.imageshack.us/img97/9418/screenshot2011072410314.png &quot;landscape&quot;] [http://img847.imageshack.us/img847/1477/screenshot2011072410315.png &quot;portrait&quot;]

Config.ini: n/a

Video: [http://www.youtube.com/watch?v=Jm2jdI0Op8Q &quot;link&quot;]

=== 10) Created by [http://talk.maemo.org/member.php?u=42195 &quot;KingKobraone&quot;] ===

Short description: MeeGo.de, notifications top, media player bottom, battery left

Screenshot: [http://meego.de/media/kunena/attachments/3559/Screenshot-20110724-163306.png &quot;landscape&quot;] [http://meego.de/media/kunena/attachments/3559/Screenshot-20110724-163334.png &quot;portrait&quot;]

Config.ini, lockscreens and font: [http://talk.maemo.org/attachment.php?attachmentid=21615&amp;d=1311521567 &quot;link&quot;]

(add lockscreens to &quot;/etc/hildon/theme/backgrounds/&quot;, load font with Theme customizer you dont need to activate it, the font only will be used in lockscreen)

=== 11) Created by [http://www.forums.internettablettalk.com/member.php?u=47181 &quot;ammyt&quot;] ===

1. Hair-comb:

Short description: Android Honeycomb 3 lockscreen skin, 12 hr AM/PM Android clock, Android date, glow ripple circles on lock, simplistic no media player.

Screenshot: [http://www.imagehousing.com/image/810250 &quot;portrait&quot;] [http://www.imagehousing.com/image/810249 &quot;landscape&quot;]

Config script + instructions: [http://www.forums.internettablettalk.com/showpost.php?p=1058352&amp;postcount=73 Post]


2. Black Crystal (unfinished):

Short description: Big urban-styled clock and date, htc sense panel, black/green color combination, glowing battery gauge, portrait only till now.

Screenshot: [http://www.imagehousing.com/image/812904 &quot;portrait&quot;]

Config script + instructions: [http://talk.maemo.org/showpost.php?p=1060248&amp;postcount=138 Post]


3. Elegy:

Short description: Elegant clock and date fonts, elegant music player centered, play/pause by tapping album art, Android panel, elegant glowing battery gauge, portrait mode.

Screenshot: [http://i.imgur.com/ayagP.png &quot;portraits]

Config script + instructions: [http://talk.maemo.org/showpost.php?p=1060692&amp;postcount=147 Post]


4. Neon:

Short description: Cool-looking blue dotted LED circular station, media player, play/pause by tapping albim art, blue-dotted clock and date, portrait mode.

Screenshot: [http://i.imgur.com/RvN89.png &quot;portrait&quot;]

Config script + instructions: [http://talk.maemo.org/showpost.php?p=1061798&amp;postcount=4098 Post]


5. Neon V2

Short description: Cool-looking blue dotted LED circular station, futuristic lockscreen with slide to unlock, media player, play/pause by tapping albim art, blue-dotted clock and date, portrait mode.

Screenshot: [http://i.imgur.com/Fa4dC.png &quot;portrait&quot;]

Config script + instructions: [http://talk.maemo.org/showpost.php?p=1073088&amp;postcount=324 Post]

=== 12) Created by [http://talk.maemo.org/member.php?u=41707 &quot;Harick&quot;] ===

1. Danael M9 MBEx:

Short description: IOS iphone4 theme customized by Danael [http://jdanael.deviantart.com/art/Danael-M9-MBEx-Theme-185243175 &quot;M9 MBEx&quot;]. media player without album art, clock, date and day

Type: Tap to unlock

Screenshot: [http://i51.tinypic.com/4kcnfd.png &quot;portrait&quot;] [http://i52.tinypic.com/2nvx8gj.png &quot;landscape&quot;]

Instructions: [http://talk.maemo.org/showpost.php?p=1057627&amp;postcount=453 Post]


2. Marina v1:

Short description: Marina-like lockscreen, simple, clock and date + batery meter. notifications availables only for Missed calls, Sms and Emails

Type: Tap to unlock

Screenshot: [http://i56.tinypic.com/s5jtw3.png &quot;portrait&quot;] [http://i54.tinypic.com/2ius3g8.png &quot;landscape&quot;]

Instructions: [http://talk.maemo.org/showpost.php?p=1059024&amp;postcount=103 Post]


3. Marina v2 + Mediaplayer:

Short description: Marina-like lockscreen, simple, clock and date + batery meter. All notifications availables (Missed calls, SMS, IM and Emails). Media player with Album art.

Type: Tap to unlock

Screenshot: [http://i53.tinypic.com/316qnmp.png &quot;portrait&quot;] [http://i51.tinypic.com/2h5mlpx.png &quot;landscape&quot;]

Instructions: [http://talk.maemo.org/showpost.php?p=1059585&amp;postcount=131 Post]


4. Killik Mediaplayer Lockscreen:

Short description: portrait only, &quot;mediaplayer&quot; lockscreen, showing song info, album art, controls, battery state, clock and notifications.

Type: Tap to unlock

Screenshot: [http://i53.tinypic.com/2rvyec0.png &quot;normal&quot;] [http://i52.tinypic.com/v2xrts.png &quot;charging&quot;]

Instructions: [http://talk.maemo.org/showpost.php?p=1061344&amp;postcount=167 Post]


3. R2D2:

Short description: Simple gray minimal lockscreen, clock and date + batery meter. All notifications availables (Missed calls, SMS, IM and Emails).
custom background, .psd and font included

Type: Slide to unlock

Screenshot: [http://i55.tinypic.com/eafq6q.png &quot;portrait&quot;] [http://i54.tinypic.com/4qpsep.png &quot;landscape&quot;]

Instructions: [http://talk.maemo.org/showpost.php?p=1069510&amp;postcount=223 Post]


3. Carbonized:

Short description: Simple dark &quot;carbon fiber&quot; lockscreen, clock and date + batery meter. All notifications availables (Missed calls, SMS, IM and Emails).

Type: Slide to unlock (slide up)

Screenshot: [http://i56.tinypic.com/whjolk.png &quot;portrait&quot;] [http://i55.tinypic.com/1619iv.png &quot;landscape&quot;]

Instructions: [http://talk.maemo.org/showpost.php?p=1074960&amp;postcount=374 Post]

=== 13) Created by [http://talk.maemo.org/member.php?u=50952 &quot;Laith.M.Y&quot;] ===

1- Sense :

Short description: HTC Sense 3.0 style lockscreen,contains clock,date,media player and notifications . The notifications that availables are Missed calls and SMS only.

Type : Tap to unlock (you must tap on the TIME)

Screenshot: [http://img838.imageshack.us/img838/8939/screenshot2011080518403.png &quot;Portrait only&quot;]

Instructions: [http://talk.maemo.org/showpost.php?p=1064710&amp;postcount=184 &quot;Post&quot;]


2- IPhone :

Short description: iphone style lockscreen,contains clock,date,battery,mediaplayer,wifi and notifications . All notifications availables  (Missed calls,SMS,IM and Email).You can change the background as you want because the backgrounds of time and slider are transparent.
3 backgrounds available (default iphone background , Clown fish , Fresh series)


Type : Slide to unlock

Screenshots: with MP widget [http://img842.imageshack.us/img842/6701/screenshot2011082515280.png &quot;Portrait&quot;] , [http://img825.imageshack.us/img825/8140/screenshot2011082515271.png &quot;Landscape&quot;]
, without MP widget [http://img600.imageshack.us/img600/3701/screenshot2011081822571.png &quot;Portrait&quot;] , [http://img148.imageshack.us/img148/8516/screenshot2011081822564.png &quot;Landscape&quot;]

Instructions : [http://talk.maemo.org/showpost.php?p=1076420&amp;postcount=392 &quot;Post&quot;]


3- Android :

Short description : android style lockscreen , contains clock,date,battery,wifi and notifications (missed calls,sms,IM,Email) . you can change the background as you want because all of the components of the lockscreen are transparent.


Type : Slide to unlock

Screenshots : [http://img844.imageshack.us/img844/6199/screenshot2011082616434.png &quot;Portrait&quot;] , [http://img838.imageshack.us/img838/1702/screenshot2011082718005.png &quot;Landscape&quot;]

Instructions : [http://talk.maemo.org/showpost.php?p=1077505&amp;postcount=419 &quot;Post&quot;]


4- Simple Section :

Short description : contains clock,date,battery,wifi,gprs and notifications (missed calls,sms,IM,Email) . you can change the background as you want because all of the components of the lockscreen are transparent.


Type : Slide to unlock

Screenshots : [http://img534.imageshack.us/img534/2231/screenshot2011091420251.png &quot;Portrait&quot;] , [http://img198.imageshack.us/img198/1922/screenshot2011091602571.png &quot;Landscape&quot;]

Instructions : [http://talk.maemo.org/showpost.php?p=1089259&amp;postcount=581 &quot;Post&quot;]

=== 14) Created by [http://talk.maemo.org/member.php?u=47919 &quot;Robin92&quot;] ===


1-
Htc sense with unlock down
&lt;br&gt;
No mediaplayer
&lt;br&gt;
Only portrait mode:)
[http://imageshack.us/photo/my-images/143/screenshot2011081511494.png/ &quot;Htc lockscreen picture&quot;]

Here is the files: http://talk.maemo.org/showpost.php?p=1070125&amp;postcount=253


=== 15) Created by [http://talk.maemo.org/member.php?u=34266 &quot;DJQwamii&quot;] ===

Short description:&lt;br&gt; 
- Slide to Unlock&lt;br&gt;
- Different Slide-to-Unlock Directions for Portrait &amp; Landscape&lt;br&gt;
- Contains notifications for missed calls, sms, IMs and emails (beta)&lt;br&gt;
- '''No media player'''&lt;br&gt;
&lt;br&gt;
Screenshots &amp; Download: [http://talk.maemo.org/showpost.php?p=1072727&amp;postcount=309 &quot;http://talk.maemo.org/showpost.php?p=1072727&amp;postcount=309&quot;]

=== 16) Created by [http://talk.maemo.org/member.php?u=29731 &quot;niqbal&quot;] ===

''1)'' '''Absolut Pears Vodka'''&lt;br&gt;
Smaller liquid battery used&lt;br&gt;
Slide the wallpaper up to unlock&lt;br&gt;
Slide up inspiration from WP7&lt;br&gt;
&lt;br&gt;
Screenshot: [http://i.imgur.com/4cxfb.png Absolut Pears Portrait]&lt;br&gt;
Post      : [http://talk.maemo.org/showpost.php?p=1088019&amp;postcount=559 Download]&lt;br&gt;
&lt;br&gt;
''2)'' '''Harmattan Concept'''&lt;br&gt;
Tried to mimic harmattan (n950) lockscreen feel&lt;br&gt;
Slide the Wallpaper right to unlock&lt;br&gt;
&lt;br&gt;
Screenshot: [http://i.imgur.com/R7Lc9.png Harmattan Portrait]&lt;br&gt;
Post      : [http://talk.maemo.org/showpost.php?p=1088019&amp;postcount=559 Download]&lt;br&gt;
&lt;br&gt;
''3)'' '''An Angel'''&lt;br&gt;
Elements revolving around a beautiful angel in distress&lt;br&gt;
Weather&lt;br&gt;
Probably the most eye-pleasing lockscreen&lt;br&gt;
Slide up to unlock&lt;br&gt;
&lt;br&gt;
Screenshot: [http://i.imgur.com/CVGv9.png An Angel Portrait]&lt;br&gt;
Post      : [http://talk.maemo.org/showpost.php?p=1076049&amp;postcount=381 Download]&lt;br&gt;
&lt;br&gt;
''4)'' '''High Definition'''&lt;br&gt;
Elements revolving around Liquid Battery&lt;br&gt;
Weather&lt;br&gt;
Slide right to Unlock&lt;br&gt;
Apply custom wallpaper &lt;br&gt;
&lt;br&gt;
Screenshot: [http://i.imgur.com/qxVWa.png HD Portrait]&lt;br&gt;
Post      : [http://talk.maemo.org/showpost.php?p=1081165&amp;postcount=474 Download]&lt;br&gt;
&lt;br&gt;
''5)'' '''Album Art Original'''&lt;br&gt;
Elements revolving around an album art covering most of the screen&lt;br&gt;
Controls sufficiently big enough for easier thumb navigation&lt;br&gt;
Slide right to Unlock&lt;br&gt;
&lt;br&gt;
Screenshot: [http://i.imgur.com/bTYCp.png Album Art Portrait]&lt;br&gt;
Post      : [http://talk.maemo.org/showpost.php?p=1076808&amp;postcount=400 Download]&lt;br&gt;
&lt;br&gt;
''6)'' '''Album Art Iphone'''&lt;br&gt;
Tried to mimic Iphone Media Player Widget Lockscreen using Laith's Iphone theme&lt;br&gt;
Elements revolving around an album art covering most of the screen&lt;br&gt;
Controls made big enough for comfortable control&lt;br&gt;
Date using System fonts&lt;br&gt;
Slide right to unlock&lt;br&gt;
&lt;br&gt;
Screenshot: [http://i.imgur.com/R4Xxs.png Album Art Iphone Portrait]&lt;br&gt;
Post      : [http://talk.maemo.org/showpost.php?p=1075089&amp;postcount=374 Download]&lt;br&gt;
&lt;br&gt;
''7)'' '''N900 Minions'''&lt;br&gt;
Media player widget&lt;br&gt;
Date via System settings&lt;br&gt;
Press to Unlock&lt;br&gt;
Available for both Portrait and Landscape&lt;br&gt;
&lt;br&gt;
Screenshot and Post: [http://talk.maemo.org/showpost.php?p=1059253&amp;postcount=112 Download]&lt;br&gt;

== Upload your lockscreen theme to Repository ==
''' Pre-requisites : '''
Three things are necessary to upload to maemo.org Extras:
* A [http://garage.maemo.org/ Garage] account: [[https://garage.maemo.org/account/register.php signup]]
* An &quot;invitation&quot; to upload: [[https://garage.maemo.org/extras-assistant/index.php?target=invitation_request request]]
* Install MADDE to you pc: [[http://tablets-dev.nokia.com/MADDE.php download]]

''' Preparing the package : '''
First of all download the [http://www.mediafire.com/?9gkg25p911n752r lockscreen source template]
- after uncompressing it you will get xxxx-lockscreen folder , you must change xxxx to your lockscreen theme name
- Now copy image folder and .ini file to :
   /xxxx-lockscreen/src/opt/qtlockscreen
- Copy font file (if there is font) to :
   /xxxx-lockscreen/src/opt/usr/share/fonts
- In /xxxx-lockscreen/debian you will find necessary file for packaging , you must edit it and add your lockscreen theme information (only edit chanelog,control and rules)
'''1-Editing changelog file:'''
changelog file contain these lines :
   xxxx-lockscreen (version no.) stable; urgency=low
    put changes here .
   -- creator &lt;email&gt;  Sun, 18 Sep 2011 15:40:51 +0000
change the informations to become something like this examlpe :
   iphone-lockscreen (1.0) stable; urgency=low
     add operator name widget .
    -- your name &lt;your email&gt;  Mon, 19 Sep 2011 12:25:47 +0000
'''2-Editing control file:'''
control file contain these lines :
   Source: xxxx-lockscreen
   Section: user/graphics
   Priority: extra
   Maintainer:  &lt;&gt;
   Build-Depends: libqt4-dev
   Standards-Version: 
   Package: xxxx-lockscreen
   Architecture: all
   Depends: qtlockscreen, qtlockscreenconfig
   Description: 
   XB-Maemo-Display-Name: xxxx Lockscreen
   XSBC-Bugtracker:
   XB-Maemo-Icon-26:
change the information to become something like this example:
   Source: iphone-lockscreen
   Section: user/graphics
   Priority: extra
   Maintainer: your name &lt;your email&gt;
   Build-Depends: libqt4-dev
   Standards-Version: 1.0
   Package: iphone-lockscreen
   Architecture: all
   Depends: qtlockscreen, qtlockscreenconfig
   Description: iphone style lockscreen .
   XB-Maemo-Display-Name: Iphone Lockscreen
   XSBC-Bugtracker:
   XB-Maemo-Icon-26:
'''3-Editing rule file:'''
you must only edit these lines in the rules file :
   #$(MAKE) DESTDIR=&quot;$(CURDIR)/debian/xxxx-lockscreen&quot; install
   mkdir -p &quot;$(CURDIR)/debian/xxxx-lockscreen&quot;
   mkdir -p &quot;$(CURDIR)/debian/xxxx-lockscreen/usr/share/fonts/&quot;
   cp -a &quot;src/usr/share/fonts/font name.ttf&quot; &quot;$(CURDIR)/debian/xxxx-lockscreen/usr/share/fonts/&quot;
   mkdir -p &quot;$(CURDIR)/debian/xxxx-lockscreen/opt/qtlockscreen/&quot;
   cp -a &quot;src/opt/qtlockscreen/folder name&quot; &quot;$(CURDIR)/debian/xxxx-lockscreen/opt/qtlockscreen/&quot;
   cp -a &quot;src/opt/qtlockscreen/config file name.ini&quot; &quot;$(CURDIR)/debian/xxxx-lockscreen/opt/qtlockscreen/&quot;
change these lines to somthing like this example:
   #$(MAKE) DESTDIR=&quot;$(CURDIR)/debian/iphone-lockscreen&quot; install
   mkdir -p &quot;$(CURDIR)/debian/iphone-lockscreen&quot;
   mkdir -p &quot;$(CURDIR)/debian/iphone-lockscreen/usr/share/fonts/&quot;
   cp -a &quot;src/usr/share/fonts/Arial.ttf&quot; &quot;$(CURDIR)/debian/iphone-lockscreen/usr/share/fonts/&quot;
   mkdir -p &quot;$(CURDIR)/debian/iphone-lockscreen/opt/qtlockscreen/&quot;
   cp -a &quot;src/opt/qtlockscreen/Iphone&quot; &quot;$(CURDIR)/debian/iphone-lockscreen/opt/qtlockscreen/&quot;
   cp -a &quot;src/opt/qtlockscreen/Iphone.ini&quot; &quot;$(CURDIR)/debian/iphone-lockscreen/opt/qtlockscreen/&quot;
- After editing these files (changelog,control and rules) you must convert it to unix format using MADDE by these commands:
   cd /path/xxxx-lockscreen/debian/
   tr -d '\r' &lt; rules &gt; rules1
   tr -d '\r' &lt; changelog &gt; changelog1
   tr -d '\r' &lt; control &gt; control1
now delete rules,changelog and control ,then rename rules1,changelog1 and control1 to rules,changelog,control

''' Uploading to extras-devel : '''
- you must create all needed files to upload it using MADDE by these commands :
    cd /path/xxxx-lockscreen
    mad dpkg-buildpackage -sa -S
now you will get inside xxxx-lockscreen folder three files (.changes,.dsc.tar.gz)
- Go to [https://garage.maemo.org/extras-assistant/index.php Maemo Extras Assistant] to upload your lockscreen files
- In step 1 login
- In step 2 choose fremantle and upload .changes file
- In step 3 upload .dsc and .tar.gz file
- In step 4 click on &quot;move to autobuilder&quot;
- your package will be in repository in 30 min

== Donations ==

...are welcome: [https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=M7C9G49XRH7WL &quot;donate&quot;]


[[Category:Software]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>QtRuby</title>
    <id>3905</id>
    <revision>
      <id>48823</id>
      <timestamp>2012-07-27T09:03:25Z</timestamp>
      <contributor>
        <ip>41.213.79.29</ip>
      </contributor>
      <comment>/* Linux */ Corrected QtDesigner install command</comment>
      <text xml:space="preserve">This is a quick start guide to getting into QtRuby application development. Follow the KDE link at the bottom to take this further than what I have written so far. There is good info in mikec's thread as well that pertains to QtDesigner. Please feel free to add to this guide. Also please feel free to package an optified version of libqt so we don't need to use Easy Debian.

Extra special thanks to Qole for [[Easy Debian]]. None of this would be possible without him.

I'm sure I've screwed something up so let me know in this [http://talk.maemo.org/showthread.php?t=49751 thread.]

== Preperations ==

=== Linux ===
* Get QtDesigner
 sudo apt-get install libqt4-designer 
* Get Qtruby and Ruby
 sudo apt-get install libqt4-ruby1.8

=== Windows ===
--Still need to test these directions on a win machine.  But I think this is right.
* Get QtDesigner from http://qt.nokia.com/downloads
* Get Ruby 1.87  from http://rubyinstaller.org
* Install QtRuby4 gem from a command prompt
 gem install qtruby4

=== Mac ===
I'm not sure what all is gonna be required. Read this maybe: http://osake.wordpress.com/2009/08/21/qt4-qtruby-mac-os-x/

=== N900 ===
* Install Easy Debian (available in the [[extras]] repository)
* Install ibqt4-ruby1.8 under Easy Debian using [[Nokia N900|N900]] [[terminal]].
 debbie sudo apt-get install libqt4-ruby1.8

== Your First App ==
=== QtDesigner ===
*Start QtDesigner:
It will open a window called “New Form”.
*Select Main Window.
*Change the Screen Size option to 800x400.
**It may not be possible to do this depending on what platform you are on.
**That's okay as we can change it later.
*Click Create.

Our new form is created.  We can now add controls to it and adjust its properties.

*Click the View menu at the top of QtDesigner.
*Check the Property Editor, Object Inspector and Widget Box if needed.

On the right side of the screen we see the Object Inspector and the Property Editor.
You can click on any object in the Object Inspector and you will see that the Property Editor loads that object.

*Select the Main Window in the Object Inspector.
*In the Property Editor window scroll down till you see “geometry”.
You can expand the “geometry” stub by clicking on the triangle to the left of it.
*Change the Width to 800 and the Height to 400 if necessary.

We don't need the Menu Bar or Status Bar that are default on a Main Window form.
Let's remove them.
*In the Object Inspector right click on the “menu bar” object.
*Select “Remove Menu Bar”.
*In the Object Inspector right click on the “status bar” object.
*Select “Remove”.

Let's add a label to our form to display some text.

On the left side of our screen is the Widget Box.
We can scroll through and pick widgets to add to our form.
*Drag the “Label” widget under the “Display Widgets” category onto the form.

You will see a “TextLabel” with blue dots around it.
You can drag the blue dots around to resize it.
*Right click on the label and select “Change rich text”.
This gives you a WYSIWYG text editor.
*Type in “Hello World” (or whatever you like.)
*Click “Ok” when finished.

In the Property Editor window adjust the geometry of the label to 800x400.

Now our form is complete.

Go to the File menu of QtDesigner and Save the form in a new directory somewhere.
Name the form dashboard_ui.ui
=== Rbuic ===
Now we need to translate the QtDesigner file into Ruby source code.
* In Windows drop to a command prompt.
**In linux open an xterm.
* Navigate to the directory you save the form in.
 rbuic4 -x dashboard_ui.ui -o dashboard_ui.rb
--note maybe just rbuic for windows.

=== Testing the app ===
* From your apps directory type:
 ruby dashboard_ui.rb
or 
 ruby1.8 dashboard_ui.rb
If all is well you will see your program appear.   Congratulations!

=== Transfering it to the N900 ===
*Now copy dashboard_ui.rb to your N900  MyDocs folder.
-- add more directions here
 
=== Running your app on the N900 ===
*Open the Debian Chroot from your N900 programs menu.
 cd home/user/MyDocs
 ruby1.8 dashboard_ui.rb

== Revising Your First App For Single Inheritance ==
Coming Soon.
We'll look at how to create a main.rb and subclass are ui to seperate the ui code from our program code.

== Important Links ==
* [http://techbase.kde.org/Development/Tutorials/Developing_Qt4_Applications_using_Qt_Designer_and_Ruby_on_Kubuntu KDE QTRuby tutorial]
* [http://talk.maemo.org/showthread.php?t=43663 mikec's Python/QtDesigner thread]
* [[Easy_Debian|Easy Debian wiki page]]

[[Category:Qt]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Qt Components Community Gallery</title>
    <id>5060</id>
    <revision>
      <id>45879</id>
      <timestamp>2011-11-28T02:56:27Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>New page: The '''Qt Components Community Gallery''' applications aims to provide an interactive tool for QML code and documentation. Working from the Qt Components Gallery example application, Qt Co...</comment>
      <text xml:space="preserve">The '''Qt Components Community Gallery''' applications aims to provide an interactive tool for QML code and documentation. Working from the Qt Components Gallery example application, Qt Components Community Gallery adds documentation and (working!) example code to each widget.

== Ideas ==

If you have a request or an idea for widgets, methods, or tools to add to the examples, list it here.</text>
    </revision>
  </page>
  <page>
    <title>Qt Maemo Git Process</title>
    <id>2061</id>
    <revision>
      <id>35148</id>
      <timestamp>2010-05-31T11:21:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>out of date</comment>
      <text xml:space="preserve">{{out of date}}

= Intro =
Fremantle Qt lives in gitorious.
Currently there are 2 different versions of Qt:
* Community port, based on Qt 4.5
  http://gitorious.org/+qt-maemo-developers/qt/qt-maemo

* Official port based on Qt 4.6
   http://qt.gitorious.org/qt/x11-maemo

The pages you are browsing now are related to the community port of Qt.
If you want to know more about the official Qt port, please check this page:
  http://qt.nokia.com/developer/qt-for-maemo-developers?gclid=CMDrwanfyJ0CFdQq3god12S7sA

&lt;br&gt;&lt;br&gt;

= Community Qt 4.5 port =
== Origin ==
The branches are synced with upstream Qt changes. No Maemo changes are there at all.
=== master ===
represents the latest core Qt master branch (currently 4.6)
=== 4.5 ===
represents the latest core Qt branch for 4.5


== Maemo master branches ==


=== 4.5-diablo ===
=== 4.5-fremantle ===
This branch is 
* based on 4.5
* has all feature branches selected for maemo merged into it.
* fairly plain Qt and should contains no packaging data and debian/* should not exist.

If an updates is made to 4.5 and 4.5 is merged into master-maemo-qt-4.5 then *all* conflicts with all feature/bug branches will be seen at once.
To avoid this, 4.5 is merged into each bug/feature branch and conflicts resolved in focused feature areas.
Now we need to merge the conflict-resolved features into master-maemo-qt-4.5.
At this point it may seem reasonable to simply re-merge each feature branch into master-maemo-qt-4.5 however master-maemo-qt-4.5 contains all the other features from the last merge. So as soon as the first conflict-resolved feature is merged, all the conflicts from all the other features will be hit.
The answer is to create a temporary local branch based on the latest 4.5 (see http://wiki.maemo.org/Mer/Build/UsingGitorious#Upstream_Updates) and merge each feature in turn into this branch. Then merge that into master-maemo-qt-4.5 (which should have no conflicts at all and, in the absence of any features/bugs is a simple fast-forward).

== Maemo build branches ==
These branch should be built completely and used for regular release.

These are based on master-maemo-qt-45 currently.

If you are looking for building Qt from sources for a specific platform, then you have to checkout one of these branches and run 
 dpkg-buildpackage -rfakeroot -b

=== qt-diablo ===
Diablo branch

=== qt-n900 ===
is the current Fremantle branch.
* It's a branch of internal Qt 4.5.3 repository
* It contains changes also available in 4.5-fremantle
* currently it creates packages 4.5.3-maemo4.1 compatibile that can be installed into the device without overriding pre-install Qt core pacakges.
* for more information ask to Antonio

=== qt-mer ===
Currently there is no branch.

== Maemo build script and debian folder ==
=== maemo-build-generic ===
This branch is based on and tracks master-maemo-qt-4.5
It contains common packaging that allows Qt to build on various maemo-ish releases.
A good rule is that no code is touched by non-merge commits to this branch
It simply merges master-maemo-qt-4.5

=== maemo-build-diablo ===
Branched from maemo-build-generic and modified with packaging/configuration specifically used for diablo
Note that maemo-build-diablo is not merged back

=== maemo-build-fremantle ===
Branched from maemo-build-generic and modified with packaging/configuration specifically used for fremantle

=== maemo-build-mer ===
Branched from maemo-build-generic and modified with packaging/configuration specifically used for Mer 

=== maemo-qt-scripts ===
There are some scripts to manage maemo branches or create release pacakge etc.


== Backporting 4.6 commits to our 4.5 branch ==
If we need to take some fixes from master 4.6 Qt branch, we have to cherry pick from our master branch to the 4.6-backports and master-qt-4.5 branches.

This branch is marked in yellow in the diagram

===List of backported changes===
This list make the backported changes more visible to Maemo Qt application developers.

This list is updated every time that the the backport branch is updated.

If you are a Maemo Qt developer, please update the the list with the git log output. 
[[Qt_Maemo_backported4.6Commits]]

===Request for merging 4.6 changes in Maemo Qt===
You can request it sending a mail in our ML.
&lt;br&gt;&lt;br&gt;

== Maemo fixes ==
These branches have each feature/ bug fix only. In the future, we will create a new maemo master branch, e.g. based on 4.6, at that time it is easy to chery-pick the modification to the new master branch.

=== bug-* ===
Representing potential bugs in Qt
These branches hold fixes to specific bugs.
The 4.5 branch will be merged into them to keep them up-to-date. If the bug is fixed upstream the branch will be deleted.

=== hildon-* ===
Each of these branches contain changes able to integrate Qt in the hildon environment. (Input method, menus, style).
TO FIX: Actually the widget-* branches should be renamed in hildon-widget-*

=== hw-* ===
Contain changes that improve the usability of Qt with touchscreen device.
Feature like right mouse button emulation, easy double click and so on.
TO FIX: Actually the ts-* branches should be renamed in hw-ts-*

=== maemo-* ===
Representing features in various areas and branched from cloned 4.5 branch.
Each branches adds only one feature-area.

The main covered areas are:
 - maemo-build-* 
 - maemo-qt-scripts
 - others maemo related areas.

These branches has been created just to store the changes. We don't need to merge the changes from the 4.5 branch here if is not strictly needed.
Don't merging upstream changes in these branches make more visible the Maemo changes.
Then The 4.5 branch WON'T be merged into them to keep them up-to-date.
The branch will be there and updated with our changes also when the feature is adopted upstream.
Usually is hard to track dependencies between branches. The Diagram below should explain these dependencies.

[[Image:MaemoQtOnGit-Diagram-opt2.jpg]]

[[Category:Qt]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Qt Maemo backported4.6Commits</title>
    <id>2076</id>
    <revision>
      <id>35149</id>
      <timestamp>2010-05-31T11:22:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>out of date</comment>
      <text xml:space="preserve">{{out of date}}

==Qt 4.6 Commits backported to Maemo Qt 4.5==
This page exists, to make more visible the commits backported to the maemo Qt 4.5 branch.

===commit ee9364a30b8562b9eb8444c25288869cf0a7ba8f===
Author: Denis Dzyubenko &lt;denis.dzyubenko@nokia.com&gt;
Date:   Mon Jun 15 11:19:55 2009 +0200

    We should make sure the text cursor is visible when using input methods.
 
    When typing directly text cursor is always visible (and if it isn't,
    the widget automatically scrolls to make it visible). It should work
    the same when typing using input methods.

===commit 0565a98dda69fee09aee83e36655c9a9f4c90c56===
Author: Antonio Aloisio &lt;antonio.aloisio@gmail.com&gt;
Date:   Thu Jul 2 12:43:25 2009 +0300

    Adapting 'Implemented the NET_WM_SYNC protocol on X11.' to Qt 4.5
    Author: Denis Dzyubenko &lt;denis.dzyubenko@nokia.com&gt;
    commit 2312b121131774a84d01854b3e47d3d2a035a6a1

===commit 1bf86e118a168c9aa6bed95bbe4b095f36e4a3cb===
Author: Denis Dzyubenko &lt;denis.dzyubenko@nokia.com&gt;
Date:   Thu May 28 15:03:40 2009 +0200
    Polished aboutQt dialog a little bit.
 
    Splitted text in the AboutQt dialog into several chunks to make use of
    advanced qmessagebox text fields

[[Category:Qt]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Queen BeeCon Widget</title>
    <id>3933</id>
    <revision>
      <id>46908</id>
      <timestamp>2012-03-07T12:26:09Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>typo fixed: it is queen_beecon.log not queen-beecon.log</comment>
      <text xml:space="preserve">[[Category:Software]][[Category:Power users]][[Image:Qbw1.png|500px]]

[[Image:Queen-beecon.png‎|left|logo]]

[[Queen BeeCon Widget]]
([http://talk.maemo.org/showthread.php?t=45388 See Talk Thread]) is a highly customizable and flexible widget-based multi-instance monitoring, alerting and interactive tool for Maemo 5 (Fremantle) and the [[Nokia N900|N900]]. In 8 words ... '''''A Super Powerful and Customizable Widget Generation Engine'''''

The Widget is based on the execution of external Shell/OS Commands which can be either as simple as one-liner statements or as complex as articulated shell scripts, which, for example, fetch, parse and aggregate contents retreived from the system, other applications or the Internet.

There are two basic Widget types, '''Beecons''' and '''Snippets''':

Beecons are small hexagonal cells whose background color or associated image/icon changes according to the executed Command Exit Status.

Beecons can handle virtually unlimited Command Exit Status:

* &lt;code&gt;&lt;0&lt;/code&gt; Normally notifying '''system errors''' in esecuting the script/command
* &lt;code&gt;0&lt;/code&gt; Returned when script/command '''successfully completes'''
* &lt;code&gt;1&lt;/code&gt; Used to report a '''warning condition'''
* &lt;code&gt;2&lt;/code&gt; If script/command needs to notify some '''application error conditions'''
* &lt;code&gt;&lt;=126&lt;/code&gt; Other exit status which can be handled for displaying '''user defined icons/images'''

Snippets are normal text/graphic boxes with fixed background color and images which is not influenced by the executed Command Exit Status.

== Current Status in Maemo Repositories ==

[http://maemo.org/packages/view/queen-beecon/ v1.3.3(18/1/2011) extras-devel / v1.3.3(02/09/2011) extras-testing / v1.3.3(07/10/2011) EXTRAs]

== Features List ==

* Widget can be '''multi-instantiated''', '''disabled''' and '''minimized''' on desktop (click on minimized icon on desktop will wakeup and maximize instance)
* Possibility to define multiple commands and command labels to be displayed inside the Widget
* Different types of Widget '''layouts''' and '''behaviours''' (currently Beecons and Snippets)
* Possibility to sense Phone Orientation and execute scripts accordingly
* Possibility to sense GPS/Location information/FIX from the phone and execute scripts accordingly
* Possibility to hide the background Canvas both for Beecons and Snippets  
* Possibility to use icons or images instead of text, both for Beecons/Snippets command '''title''' and '''output'' (with highly versatile positioning, zooming/scaling 5%-200%-FitToWidget)
* Possibility to use '''custom progress animations''' for each instance of the widget (with up to 30 frames, configurable frame period in msec and highly versatile positioning
* It is possible to independently show or hide both snippet's images/texts and beecon images/texts. This way you can have two images and two text placeholders on widget, for more flexibility in graphic layout
* Independent images/icons for Command Exit Statuses can also been specified. Useful, for example, for displaying different icons according to percentages values returned by command.
* Widget can be clicked on 9 different '''Hot Spots''' with a 3x3 grid layout or at specific position with ability to forward the click position to the script
* '''Multi Click''' support on widget
* Nice &quot;button-press&quot;-like visual feedback using Gradient fill 
* Widget relies also on private general purpose directories &quot;&lt;code&gt;~/.queen_beecon_dir/&lt;/code&gt;&quot; and &quot;&lt;code&gt;..../MyDocs/.images/queen_beecon_dir/&lt;/code&gt;&quot; as images/icons immediate storage. For easier population via USB of BLUETOOTH File Services.  
* Widget texts can be formatted through [http://maemo.org/api_refs/5.0/5.0-final/pango/PangoMarkupFormat.html Pango Markup Language]
* Widget Size can be customized (Width: 10-800, Height: 10-420 with pixel precision) and position can be fine tuned (X,Y +/- 5pix); Tweaking &quot;&lt;code&gt;/usr/share/hildon-desktop/transitions.ini&lt;/code&gt;&quot; may also help. (&lt;code&gt;snap_grid_size = 1 &amp; snap_to_grid_while_move = 1&lt;/code&gt;)
* Background color for Beecons can be customized for each 4 Command Exit Statuses (with graphical preview)
* Background color for Snippets can be customized (with graphical preview)
* Font Color of both command label and results can be configured (with graphical preview)
* Position and visibility of both command label and results can be configured (Hidden, Top L, Top C, Top R, Center L, Center, Center R, Bottom L, Bottom C, Bottom R) Also, rotation of lables can be changed (0, 90, 180, 270 degrees)
* Font Face, Style and Size of both command label and results can be configured with preview
* Text Justification of both command label and results can be configured (Left, Center, Right, Fill)
* Text Wrapping of results can be enabled
* Command execution can be triggered optionally on widget startup, by manual pressing on Widget, by desktop switching, by periodic updates (0=Manual, 30 s, 1 m, 5 m, 30 m, 1 h, 6 h, 12 h, 1 d, Custom Seconds Interval), by specific DBUS Events on System or Session Bus.which can be filtered through custom rules, by orientation changes, by GPS
* Command execution can be subject to network connection status and widget visibility on current desktop
* Tool includes a powerful Advanced Maintenance Dialog Box for command development and testing (TestDrive mode to display raw output of predefined or user-defined commands)
* A wide set of Parameter Substitution Variables can be passed to executed scripts; variables include: Instance ID, Pressed Hot Spot, Visibility of Widget, Execution Triggering Event, content of Output text, verbose DBUS messages, persistent information stored in widget specific parameter, Proxy related information
* Advanced Maintenance Dialog Box includes extended functionalities like:
** instance export/import with checksum
** command export/import with checksum
** command update with current Test Drive buffer
** clipboard operations
** export/import to/from files for instance data and commands.
* A set of basic Images/Icons for Snippets and Beecon Statuses is included inside the distribution package and installed inside canonical hildon hicolor 48x48 directory
* Inter Process Communication mechanism among QBW instances and with other Applications has been implemented through DBUS methods and signals handling
* It is integrated into the N900 system backup/restore features according to standard specifications as better described in the  [[Documentation/Maemo 5 Developer Guide/Generic Platform Components/Using Backup Application#Custom back-up locations|SDK documentation]]
* Powerful Application Logging Subsystem
* For Web and Proxy related information and issues please have a look at the [[#Parameter_Substitution_at_Command.2FScript_Runtime|parameter substitution documentation]] and [http://talk.maemo.org/showpost.php?p=544591&amp;postcount=12 THIS] post.

== Donate ==

[https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=QTSK26NUKNXFC Queen BeeCon Widget is free software, but if you feel like donating for supporting further developments or just to let me know that you like it, you can donate via Paypal]

== Icons in Package ==

[[Image:Snap039.png|600px]]

[[Image:DTl8W.png|600px]]

== Settings and Tools ==

=== Standard Settings and Configuration File ===

Global and per-instance QBW parameters are stored in this file:

 /home/user/.queen_beecon

==== Configuration Parameters, Types &amp; Reference ====

These are the parameters and settings which can be changed for each QBW instance. They are stored independently, for each Instance, inside the configuration file.

Their reference is also useful for [[#Interaction with QBW over DBUS|Interaction with QBW over DBUS]] and in particular for parameters amendments/fetching methods:

=====Widget Type, Visibility, Status and Associated Command=====

[[Image:Snap193.jpg|350px]]

{|class=&quot;wikitable&quot;
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|1||&lt;code&gt;0.0.1&lt;/code&gt;||&lt;code&gt;widgetType&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||&lt;code&gt;0=Beecon&lt;nowiki&gt;|&lt;/nowiki&gt;1=Snippet&lt;/code&gt;||Specify the type of the instantiated widget
|-
|2||&lt;code&gt;0.1.7&lt;/code&gt;||&lt;code&gt;widgetVisible&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||&lt;code&gt;0=Hidden&lt;nowiki&gt;|&lt;/nowiki&gt;1=Visible&lt;/code&gt;||Specify if widget components should be visible or not
|-
|3||&lt;code&gt;0.1.4&lt;/code&gt;||&lt;code&gt;operationalStatus&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||&lt;code&gt;0=Enabled&lt;nowiki&gt;|&lt;/nowiki&gt;1=Disabled&lt;/code&gt;||If disabled, the widget will not be subject to update policies and will be iconified on desktop, a subsequent tap on it will revert its status to Enabled
|-
|4||&lt;code&gt;0.0.1&lt;/code&gt;||&lt;code&gt;instanceTitle&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||-||Holds the title of the command/script to be executed. If this field is blank, it means that command is still present in the widget instance but not present any more in the list of possible commands. Can still be adited via &quot;Edit Cmd&quot; button and added again to the list.
|}

====Widget Size &amp; Position Tuning====

[[Image:Snap030.png|350px]]

{|class=&quot;wikitable&quot;
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|1||&lt;code&gt;0.0.1&lt;/code&gt;||&lt;code&gt;widWidth&lt;/code&gt;||&lt;code&gt;double&lt;/code&gt;||-||This is the Width of the widget
|-
|2||&lt;code&gt;0.0.1&lt;/code&gt;||&lt;code&gt;widHeight&lt;/code&gt;||&lt;code&gt;double&lt;/code&gt;||-||This is the Height of the widget
|-
|3||&lt;code&gt;1.3&lt;/code&gt;||&lt;code&gt;-&lt;/code&gt;||&lt;code&gt;-&lt;/code&gt;||-||This is the X coordinate of the widget, can be dynamically changed
|-
|4||&lt;code&gt;1.3&lt;/code&gt;||&lt;code&gt;-&lt;/code&gt;||&lt;code&gt;-&lt;/code&gt;||-||This is the Y coordinate of the widget, can be dynamically changed
|}

=====Status Background Colors &amp; Images=====

[[Image:Snap031.png|350px]]

{|class=&quot;wikitable&quot;
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|1||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;hideCanvas&lt;/code&gt;||&lt;code&gt;boolean&lt;/code&gt;||&lt;code&gt;true&lt;nowiki&gt;|&lt;/nowiki&gt;false&lt;/code&gt;||If set to true, the geometric canvas of the widget will not be shown
|-
|2||&lt;code&gt;1.0.4&lt;/code&gt;||&lt;code&gt;hideClickCanvas&lt;/code&gt;||&lt;code&gt;boolean&lt;/code&gt;||&lt;code&gt;true&lt;nowiki&gt;|&lt;/nowiki&gt;false&lt;/code&gt;||If set to true, the geometric canvas of the widget will not be shown on click
|-
|3||&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;snippetExtBgRGB&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||&lt;code&gt;#&lt;rrrr&gt;&lt;gggg&gt;&lt;bbbb&gt;&lt;/code&gt;||Background color of Snippets
|-
| ||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;snippetBgRGB&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||-||Obsoleted as of release &gt;=0.1.9.1
|}

=====Beecon Statuses: Images, Scale, Background Color=====

[[Image:Snap201.jpg|350px]]

{|class=&quot;wikitable&quot;
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|1||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;beecon_lt0_ImgFilename&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||-||Applies to Beecons; it's the filename of the image to be displayed if script/command returns an Exit Status less than zero
|-
|2||&lt;code&gt;0.1.4&lt;/code&gt;||&lt;code&gt;beecon_lt0_ImgZoom&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||&lt;code&gt;0=1:1&lt;/code&gt;&lt;br/&gt;&lt;code&gt;1=Fit to widget dimensions&lt;/code&gt;&lt;br/&gt;&lt;code&gt;2=5%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;3=10%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;4=15%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;... till 200%&lt;/code&gt;||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
|-
|3||&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;beecon_lt0_ExtBgRGB&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||&lt;code&gt;#&lt;rrrr&gt;&lt;gggg&gt;&lt;bbbb&gt;&lt;/code&gt;||Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status less than zero
|-
|4||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;beecon_eq0_ImgFilename&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||-||Applies to Beecons; it's the filename of the image to be displayed if script/command returns an Exit Status equals to zero
|-
|5||&lt;code&gt;0.1.4&lt;/code&gt;||&lt;code&gt;beecon_eq0_ImgZoom&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||&lt;code&gt;0=1:1&lt;/code&gt;&lt;br/&gt;&lt;code&gt;1=Fit to widget dimensions&lt;/code&gt;&lt;br/&gt;&lt;code&gt;2=5%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;3=10%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;4=15%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;... till 200%&lt;/code&gt;||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
|-
|6||&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;beecon_eq0_ExtBgRGB&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||&lt;code&gt;#&lt;rrrr&gt;&lt;gggg&gt;&lt;bbbb&gt;&lt;/code&gt;||Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status equals to zero
|-
|7||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;beecon_eq1_ImgFilename&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||-||Applies to Beecons; it's the filename of the image to be displayed if script/command returns an Exit Status equals to 1
|-
|8||&lt;code&gt;0.1.4&lt;/code&gt;||&lt;code&gt;beecon_eq1_ImgZoom&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||&lt;code&gt;0=1:1&lt;/code&gt;&lt;br/&gt;&lt;code&gt;1=Fit to widget dimensions&lt;/code&gt;&lt;br/&gt;&lt;code&gt;2=5%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;3=10%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;4=15%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;... till 200%&lt;/code&gt;||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
|-
|9||&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;beecon_eq1_ExtBgRGB&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||&lt;code&gt;#&lt;rrrr&gt;&lt;gggg&gt;&lt;bbbb&gt;&lt;/code&gt;||Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status equals to 1
|-
|10||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;beecon_ge2_ImgFilename&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||-||Applies to Beecons; it's the filename of the image to be displayed if script/command returns an Exit Status equals to 2
|-
|11||&lt;code&gt;0.1.4&lt;/code&gt;||&lt;code&gt;beecon_ge2_ImgZoom&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||&lt;code&gt;0=1:1&lt;/code&gt;&lt;br/&gt;&lt;code&gt;1=Fit to widget dimensions&lt;/code&gt;&lt;br/&gt;&lt;code&gt;2=5%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;3=10%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;4=15%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;... till 200%&lt;/code&gt;||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
|-
|12||&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;beecon_ge2_ExtBgRGB&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||&lt;code&gt;#&lt;rrrr&gt;&lt;gggg&gt;&lt;bbbb&gt;&lt;/code&gt;||Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status equals to 2
|-
|13||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;beecon_idxge2_ImgFilename&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||-||Applies to Beecons; it's the basename of the image to be displayed if script/command returns an Exit Status greater than or equal to 3; Final image filename will be built as &lt;code&gt;&lt;basename&gt;.png.&lt;exit code&gt;&lt;/code&gt; (Ex.dice.png.3, dice.png.4 ...)
|-
|14||&lt;code&gt;0.1.4&lt;/code&gt;||&lt;code&gt;beecon_idxge2_ImgZoom&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||&lt;code&gt;0=1:1&lt;/code&gt;&lt;br/&gt;&lt;code&gt;1=Fit to widget dimensions&lt;/code&gt;&lt;br/&gt;&lt;code&gt;2=5%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;3=10%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;4=15%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;... till 200%&lt;/code&gt;||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
|-
|15||&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;beecon_idxge2_ExtBgRGB&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||&lt;code&gt;#&lt;rrrr&gt;&lt;gggg&gt;&lt;bbbb&gt;&lt;/code&gt;||Applies to Beecons; it's the Background color to be displayed if script/command returns and Exit Status is greater than or equal to 3
|-
| ||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;beecon_lt0_BgRGB&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||-||Obsoleted as of release &gt;=0.1.9.1
|-
| ||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;beecon_eq0_BgRGB&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||-||Obsoleted as of release &gt;=0.1.9.1
|-
| ||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;beecon_eq1_BgRGB&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||-||Obsoleted as of release &gt;=0.1.9.1
|-
| ||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;beecon_ge2_BgRGB&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||-||Obsoleted as of release &gt;=0.1.9.1
|-
| ||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;beecon_idxge2_BgRGB&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||-||Obsoleted as of release &gt;=0.1.9.1
|}

=====Command Title Settings=====

[[Image:Snap203.jpg|350px]]

{|class=&quot;wikitable&quot; border=&quot;2&quot;
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|1||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;cmdImgFilename&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||-||Applies both to Beecons and to Snippets; it's the filename of the image to be displayed as complementary to the Command Title label. Can be used to provide a customized image-based background to the widget.
|-
|2||&lt;code&gt;1.0.3&lt;/code&gt;||&lt;code&gt;cmdImgAngle&lt;/code&gt;||&lt;code&gt;uint32&lt;/code&gt;||&lt;code&gt;0=0 Degrees&lt;/code&gt;&lt;br/&gt;&lt;code&gt;1=90 Degrees&lt;/code&gt;&lt;br/&gt;&lt;code&gt;2=180 Degrees&lt;/code&gt;&lt;br/&gt;&lt;code&gt;3=270 Degrees&lt;/code&gt;||It's the rotation of the Image associated to the Command Title (0, 90, 180, 270 degrees)
|-
|3||&lt;code&gt;0.1.4&lt;/code&gt;||&lt;code&gt;cmdImgZoom&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||&lt;code&gt;0=1:1&lt;/code&gt;&lt;br/&gt;&lt;code&gt;1=Fit to widget dimensions&lt;/code&gt;&lt;br/&gt;&lt;code&gt;2=5%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;3=10%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;4=15%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;... till 200%&lt;/code&gt;||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
|-
|4||&lt;code&gt;0.1.3&lt;/code&gt;||&lt;code&gt;cmdImgVisibilityPosition&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||&lt;code&gt;0=Hidden&lt;br/&gt;1=Top Left&lt;br/&gt;2=Top Center&lt;br/&gt;3=Top Right&lt;br/&gt;4=Center Left&lt;br/&gt;5=Center&lt;br/&gt;6=Center Right&lt;br/&gt;7=Bottom Left&lt;br/&gt;8=Bottom Center&lt;br/&gt;9=Bottom Right&lt;/code&gt;||Sets the Visibility and Position of the image associated to Command Title (Both for Snippets and for Beecons)
|-
|5||&lt;code&gt;0.1.9&lt;/code&gt;||&lt;code&gt;cmdExtFont&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||&lt;code&gt;[&lt;family&gt;] [italic] [bold] [&lt;size&gt;]&lt;/code&gt;||Font string specification for Command label (Ex. Nokia Sans Italic Bold 12)
|-
|6||&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;cmdExtFgRGB&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||&lt;code&gt;#&lt;rrrr&gt;&lt;gggg&gt;&lt;bbbb&gt;&lt;/code&gt;||It's the Foreground color to be used with Command Title label
|-
|7||&lt;code&gt;0.1.3&lt;/code&gt;||&lt;code&gt;cmdVisibilityPosition&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||&lt;code&gt;0=Hidden&lt;br/&gt;1=Top Left&lt;br/&gt;2=Top Center&lt;br/&gt;3=Top Right&lt;br/&gt;4=Center Left&lt;br/&gt;5=Center&lt;br/&gt;6=Center Right&lt;br/&gt;7=Bottom Left&lt;br/&gt;8=Bottom Center&lt;br/&gt;9=Bottom Right&lt;/code&gt;||Sets the Visibility and Position of the Command Title label
|-
|8||&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;cmdTextAngle&lt;/code&gt;||&lt;code&gt;uint32&lt;/code&gt;||&lt;code&gt;0=0 Degrees&lt;/code&gt;&lt;br/&gt;&lt;code&gt;1=90 Degrees&lt;/code&gt;&lt;br/&gt;&lt;code&gt;2=180 Degrees&lt;/code&gt;&lt;br/&gt;&lt;code&gt;3=270 Degrees&lt;/code&gt;||It's the rotation of the Command Title Label (0, 90, 180, 270 degrees)
|-
|9||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;cmdJustify&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||&lt;code&gt;0=Left&lt;/code&gt;&lt;br/&gt;&lt;code&gt;1=Right&lt;/code&gt;&lt;br/&gt;&lt;code&gt;2=Center&lt;/code&gt;&lt;br/&gt;&lt;code&gt;3=Fill&lt;/code&gt;||It's the justification to be used with Command Title label
|-
| ||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;cmdFgRGB&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||-||Obsoleted as of release &gt;=0.1.9.1
|-
| ||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;cmdFontName&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||-||Obsoleted as of release &gt;=0.1.9
|-
| ||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;cmdFontSize&lt;/code&gt;||&lt;code&gt;double&lt;/code&gt;||-||Obsoleted as of release &gt;=0.1.9
|}

=====Command Results Settings=====

[[Image:Snap032.png|350px]]

{|class=&quot;wikitable&quot; border=&quot;2&quot;
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|1||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;resImgFilename&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||-||Applies both to Snippets; it's the filename of the image to be displayed as complementary to the Command Results label.
|-
|2||&lt;code&gt;1.0.3&lt;/code&gt;||&lt;code&gt;resImgAngle&lt;/code&gt;||&lt;code&gt;uint32&lt;/code&gt;||&lt;code&gt;0=0 Degrees&lt;/code&gt;&lt;br/&gt;&lt;code&gt;1=90 Degrees&lt;/code&gt;&lt;br/&gt;&lt;code&gt;2=180 Degrees&lt;/code&gt;&lt;br/&gt;&lt;code&gt;3=270 Degrees&lt;/code&gt;||It's the rotation of the Image associated to the Command Results (0, 90, 180, 270 degrees)
|-
|3||&lt;code&gt;0.1.4&lt;/code&gt;||&lt;code&gt;resImgZoom&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||&lt;code&gt;0=1:1&lt;/code&gt;&lt;br/&gt;&lt;code&gt;1=Fit to widget dimensions&lt;/code&gt;&lt;br/&gt;&lt;code&gt;2=5%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;3=10%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;4=15%&lt;/code&gt;&lt;br/&gt;&lt;code&gt;... till 200%&lt;/code&gt;||This is the zoom/scale of the previous parameter's image (1:1, Fit, 5%-200%)
|-
|4||&lt;code&gt;0.1.3&lt;/code&gt;||&lt;code&gt;resImgVisibilityPosition&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||&lt;code&gt;0=Hidden&lt;br/&gt;1=Top Left&lt;br/&gt;2=Top Center&lt;br/&gt;3=Top Right&lt;br/&gt;4=Center Left&lt;br/&gt;5=Center&lt;br/&gt;6=Center Right&lt;br/&gt;7=Bottom Left&lt;br/&gt;8=Bottom Center&lt;br/&gt;9=Bottom Right&lt;/code&gt;||Sets the Visibility and Position of the image associated to Command Results (For Snippets)
|-
|5||&lt;code&gt;0.1.9&lt;/code&gt;||&lt;code&gt;resExtFont&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||&lt;code&gt;[&lt;family&gt;] [italic] [bold] [&lt;size&gt;]&lt;/code&gt;||Font string specification for Results label (Ex. Nokia Sans Italic Bold 12)
|-
|6||&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;resExtFgRGB&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||&lt;code&gt;#&lt;rrrr&gt;&lt;gggg&gt;&lt;bbbb&gt;&lt;/code&gt;||It's the Foreground color to be used with Command Results label
|-
|7||&lt;code&gt;0.1.3&lt;/code&gt;||&lt;code&gt;resVisibilityPosition&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||&lt;code&gt;0=Hidden&lt;br/&gt;1=Top Left&lt;br/&gt;2=Top Center&lt;br/&gt;3=Top Right&lt;br/&gt;4=Center Left&lt;br/&gt;5=Center&lt;br/&gt;6=Center Right&lt;br/&gt;7=Bottom Left&lt;br/&gt;8=Bottom Center&lt;br/&gt;9=Bottom Right&lt;/code&gt;||Sets the Visibility and Position of the Command Results label
|-
|8||&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;resTextAngle&lt;/code&gt;||&lt;code&gt;uint32&lt;/code&gt;||&lt;code&gt;0=0 Degrees&lt;/code&gt;&lt;br/&gt;&lt;code&gt;1=90 Degrees&lt;/code&gt;&lt;br/&gt;&lt;code&gt;2=180 Degrees&lt;/code&gt;&lt;br/&gt;&lt;code&gt;3=270 Degrees&lt;/code&gt;||It's the rotation of the Command Results Label (0, 90, 180, 270 degrees)
|-
|9||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;resJustify&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||&lt;code&gt;0=Left&lt;/code&gt;&lt;br/&gt;&lt;code&gt;1=Right&lt;/code&gt;&lt;br/&gt;&lt;code&gt;2=Center&lt;/code&gt;&lt;br/&gt;&lt;code&gt;3=Fill&lt;/code&gt;||It's the justification to be used with Command Results label
|-
|10||&lt;code&gt;1.3&lt;/code&gt;||&lt;code&gt;resWrapLongLines&lt;/code&gt;||&lt;code&gt;boolean&lt;/code&gt;||&lt;code&gt;false=disabled&lt;/code&gt;&lt;br/&gt;&lt;code&gt;true=enabled&lt;/code&gt;||Enables the text wrapping on long lines with Command Results label
|-
| ||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;resFgRGB&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||-||Obsoleted as of release &gt;=0.1.9.1
|-
| ||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;resFontName&lt;/code&gt;||&lt;code&gt;int32&lt;/code&gt;||-||Obsoleted as of release &gt;=0.1.9.1
|-
| ||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;resFontSize&lt;/code&gt;||&lt;code&gt;double&lt;/code&gt;||-||Obsoleted as of release &gt;=0.1.9.1
|}

=====Progress Animation=====

[[Image:Snap033.png|350px]]

{|class=&quot;wikitable&quot;
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|1||&lt;code&gt;0.1.9.8&lt;/code&gt;||&lt;code&gt;progressAnimationFrames&lt;/code&gt;||&lt;code&gt;uint32&lt;/code&gt;||&lt;code&gt;[0-30]&lt;/code&gt;||Holds the number of frames to display for the animation; 0 if animations should be hidden MAX 30
|-
|2||&lt;code&gt;0.1.9.8&lt;/code&gt;||&lt;code&gt;progressAnimationTimer&lt;/code&gt;||&lt;code&gt;uint32&lt;/code&gt;||&lt;code&gt;[0-20]&lt;/code&gt;||Holds the number of milliseconds/50 to wait before drawing next frame (&lt;=4secs)
|-
|3||&lt;code&gt;0.1.9.8&lt;/code&gt;||&lt;code&gt;progressAnimationPos&lt;/code&gt;||&lt;code&gt;uint32&lt;/code&gt;||&lt;code&gt;0=Top Left&lt;/code&gt;&lt;br/&gt;&lt;code&gt;1=Top Center&lt;/code&gt;&lt;br/&gt;&lt;code&gt;2=Top Right&lt;/code&gt;&lt;br/&gt;&lt;code&gt;3=Center Left&lt;/code&gt;&lt;br/&gt;&lt;code&gt;4=Center&lt;/code&gt;&lt;br/&gt;&lt;code&gt;5=Center Right&lt;/code&gt;&lt;br/&gt;&lt;code&gt;6=Bottom Left&lt;/code&gt;&lt;br/&gt;&lt;code&gt;7=Bottom Center&lt;/code&gt;&lt;br/&gt;&lt;code&gt;8=Bottom Right&lt;/code&gt;&lt;br/&gt;&lt;code&gt;9=Top Left &amp; Hide Widget&lt;/code&gt;&lt;br/&gt;&lt;code&gt;10=Top Center &amp; Hide Widget&lt;/code&gt;&lt;br/&gt;&lt;code&gt;11=Top Right &amp; Hide Widget&lt;/code&gt;&lt;br/&gt;&lt;code&gt;12=Center Left &amp; Hide Widget&lt;/code&gt;&lt;br/&gt;&lt;code&gt;13=Center &amp; Hide Widget&lt;/code&gt;&lt;br/&gt;&lt;code&gt;14=Center Right &amp; Hide Widget&lt;/code&gt;&lt;br/&gt;&lt;code&gt;15=Bottom Left &amp; Hide Widget&lt;/code&gt;&lt;br/&gt;&lt;code&gt;16=Bottom Center &amp; Hide Widget&lt;/code&gt;&lt;br/&gt;&lt;code&gt;17=Bottom Right &amp; Hide Widget&lt;/code&gt;||Holds the default position index of the animation in the widget and/or hide the widget itself during progress animation
|-
|4||&lt;code&gt;1.0.4&lt;/code&gt;||&lt;code&gt;progressAnimationAtClickXY&lt;/code&gt;||&lt;code&gt;boolean&lt;/code&gt;||&lt;code&gt;true&lt;nowiki&gt;|&lt;/nowiki&gt;false&lt;/code&gt;||If checked, progress animation is displayed at X,Y position where widget is clicked.
|-
|5||&lt;code&gt;0.1.9.8&lt;/code&gt;||&lt;code&gt;progressAnimationBasename&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||-||Holds the basename of the files to load as frames from the relevant directory. Final frame filename will be built as &lt;code&gt;&lt;basename&gt;&lt;frame number&gt;.png&lt;/code&gt;
|}

=====Update Policy=====

[[Image:Snap034.png|350px]]

{|class=&quot;wikitable&quot;
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|1||&lt;code&gt;0.1.0&lt;/code&gt;||&lt;code&gt;updOnStartup&lt;/code&gt;||&lt;code&gt;boolean&lt;/code&gt;||&lt;code&gt;true&lt;nowiki&gt;|&lt;/nowiki&gt;false&lt;/code&gt;||Update policy which defines if widget must be updated on system Startup or on widget Wakeup
|-
|2||&lt;code&gt;0.0.1&lt;/code&gt;||&lt;code&gt;updOnDesktop&lt;/code&gt;||&lt;code&gt;boolean&lt;/code&gt;||&lt;code&gt;true&lt;nowiki&gt;|&lt;/nowiki&gt;false&lt;/code&gt;||Update policy which defines if widget must be updated when desktop, on which the widget resides, gets displayed either by being dragged or after resume from standby.
|-
|3||&lt;code&gt;0.1.9.9&lt;/code&gt;||&lt;code&gt;updOnSight&lt;/code&gt;||&lt;code&gt;uint32&lt;/code&gt;||&lt;code&gt;true&lt;nowiki&gt;|&lt;/nowiki&gt;false&lt;/code&gt;||If set to &lt;code&gt;true&lt;/code&gt;, widget content is only updated if on current desktop and visible (if screen locked no update will take place)
|-
|4||&lt;code&gt;0.0.1&lt;/code&gt;||&lt;code&gt;updOnClick&lt;/code&gt;||&lt;code&gt;boolean&lt;/code&gt;||&lt;code&gt;true&lt;nowiki&gt;|&lt;/nowiki&gt;false&lt;/code&gt;||Update policy which defines if widget must be updated when it is clicked
|-
|5||&lt;code&gt;1.2.10&lt;/code&gt;||&lt;code&gt;multiClick&lt;/code&gt;||&lt;code&gt;boolean&lt;/code&gt;||&lt;code&gt;true&lt;nowiki&gt;|&lt;/nowiki&gt;false&lt;/code&gt;||Enable/Disable support for multi click on widget (quicker click response if disabled)
|-
|6||&lt;code&gt;1.3&lt;/code&gt;||&lt;code&gt;updOnOrientation&lt;/code&gt;||&lt;code&gt;boolean&lt;/code&gt;||&lt;code&gt;true&lt;nowiki&gt;|&lt;/nowiki&gt;false&lt;/code&gt;||Enable/Disable support for Phone Orientation
|-
|7||&lt;code&gt;0.0.1&lt;/code&gt;||&lt;code&gt;delayIndex&lt;/code&gt;||&lt;code&gt;uint32&lt;/code&gt;||&lt;code&gt;0=Timer Disabled&lt;/code&gt;&lt;br/&gt;&lt;code&gt;1=30 Secs&lt;/code&gt;&lt;br/&gt;&lt;code&gt;2=1 Min&lt;/code&gt;&lt;br/&gt;&lt;code&gt;3=5 Mins&lt;/code&gt;&lt;br/&gt;&lt;code&gt;4=30 Mins&lt;/code&gt;&lt;br/&gt;&lt;code&gt;5=1 Hour&lt;/code&gt;&lt;br/&gt;&lt;code&gt;6=6 Hours&lt;/code&gt;&lt;br/&gt;&lt;code&gt;7=12 Hours&lt;/code&gt;&lt;br/&gt;&lt;code&gt;8=1 Day&lt;/code&gt;&lt;br/&gt;&lt;code&gt;9=Custom (&quot;)&lt;/code&gt;||Sets and index of values to use as intervals/periods for command/scripts executions
|-
|8||&lt;code&gt;0.1.9.2&lt;/code&gt;||&lt;code&gt;customIntervalSecs&lt;/code&gt;||&lt;code&gt;uint32&lt;/code&gt;||&lt;code&gt;&lt;seconds&gt;&lt;/code&gt;||Sets the number of seconds to use for Custom Update Intervals
|-
|9||&lt;code&gt;0.0.1&lt;/code&gt;||&lt;code&gt;updNeworkPolicy&lt;/code&gt;||&lt;code&gt;uint32&lt;/code&gt;||&lt;code&gt;0=Irrelevant&lt;/code&gt;&lt;br/&gt;&lt;code&gt;1=When Connected&lt;/code&gt;&lt;br/&gt;&lt;code&gt;2=When Disconnected&lt;/code&gt;&lt;br/&gt;&lt;code&gt;3=PassThrough (&gt;= v1.0.6)&lt;/code&gt;||Update policy which defines if widget update must be Network dependent and what network condition must trigger the update
|-
|10||&lt;code&gt;1.3&lt;/code&gt;||&lt;code&gt;GPSsettings&lt;/code&gt;||&lt;code&gt;uint32&lt;/code&gt;||&lt;code&gt;(GPSsettings &gt;&gt; 8) 0=GPS Disabled, 1=GPS Enabled&lt;/code&gt;&lt;br/&gt;&lt;br/&gt;&lt;code&gt;(GPSsettings &gt;&gt; 4 &amp; 0xF) 0=USER_SELECTED, 1=CWP, 2=ACWP, 3=GNSS, 4=AGNSS&lt;/code&gt;&lt;br/&gt;&lt;br/&gt;&lt;code&gt;(GPSsettings &amp; 0xF) 0=DEFAULT, 1=1sec, 2=2sec, 3=5sec, 4=10sec, 5=20sec, 6=30sec, 7=60sec, 8=120sec&lt;/code&gt;||See [[Documentation/Maemo 5 Developer Guide/Using Connectivity Components/Using Location API#LocationGPSDevice and LocationGPSDeviceFix|the location API reference]]
|}

=====DBUS Event Monitoring=====

[[Image:Snap035.png|350px]]

{|class=&quot;wikitable&quot;
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|1||&lt;code&gt;0.1.9.4&lt;/code&gt;||&lt;code&gt;updOnDBUS&lt;/code&gt;||&lt;code&gt;uint32&lt;/code&gt;||&lt;code&gt;0=Disabled&lt;nowiki&gt;|&lt;/nowiki&gt;1=Enabled&lt;/code&gt;||Enables DBUS Event Monitor and Update policy which defines if widget must be updated by any DBUS Event
|-
|2||&lt;code&gt;0.1.9.4&lt;/code&gt;||&lt;code&gt;updOnDBUSBus&lt;/code&gt;||&lt;code&gt;uint32&lt;/code&gt;||&lt;code&gt;0=SYSTEM&lt;nowiki&gt;|&lt;/nowiki&gt;1=SESSION&lt;/code&gt;||Sets which DBUS bus to monitor (System/Session)
|-
|3||&lt;code&gt;0.1.9.4&lt;/code&gt;||&lt;code&gt;updOnDBUSMatchRule&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||[http://dbus.freedesktop.org/doc/dbus-specification.html#message-bus-routing See Specifications]||Specifies the rule to be matched in order for command/script to be executed (Ex.type='signal',path='/com/nokia/mce/signal',interface='com.nokia.mce.signal',member='tklock_mode_ind')
|}

=====Remember Me Value=====
[[Image:Snap094.jpg|350px]]

{|class=&quot;wikitable&quot;
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
|1||&lt;code&gt;0.1.9.6&lt;/code&gt;||&lt;code&gt;rememberMe&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||-||Holds status or persistency information across subsequent command executions.&lt;br/&gt;- Can be fetched/changed via DBUS method call &lt;code&gt;set/get_param_string string:&quot;rememberMe&quot; string:&lt;remember_this_string&gt;&lt;/code&gt;&lt;br/&gt;- Can be transferred to command/scrips execution via &lt;code&gt;$QBW_REMEMBER_ME&lt;/code&gt; Parameter Substitution&lt;br/&gt;- As of release &gt;=1.0.5 Can be also be affected by executed command output. Just echo the following string (which will not be displayed) as output of your command &lt;code&gt;QBW_REMEMBER_ME(&lt;content to be remembered&gt;)&lt;/code&gt; no angle brackets; escape &quot;close round bracket&quot; like this &quot;\)&quot; to store it as &quot;)&quot;&lt;br/&gt;See examples [http://talk.maemo.org/showthread.php?p=823123#post823123 HERE]
|}

=====Not Present in Settings Dialog Box=====

{|class=&quot;wikitable&quot;
!Ref #!!Release!!Parameter!!Type!!Possible Values!!Description
|-
| ||&lt;code&gt;0.0.1&lt;/code&gt;||&lt;code&gt;instanceCmd&lt;/code&gt;||&lt;code&gt;string&lt;/code&gt;||-||Holds the command/script to be executed
|}

=== Advanced Settings and Tools ===

Dialog can be reached via QBW Settings:

[[image:169rlh2.png]]

[[image:29q0575.png]]

[[image:Snap037.png|350px]]

====Section A: (Command TestDrive)====

# This button opens up the About dialog box
# This selector allows to dynamically change the [[#Application Logging Subsystem|QBW Logging Subsystem Verbosity]]
# This is the list of Stored Commands that you can Test Drive; upon entering the dialog box, [3] &amp; [8] are initialized with current Instance command.
# Use this button to Test Drive the command currently typed in [6]
# This button will update current instance command with the content of [8] (use it when command is working and thoroughly tested)
# Will copy to clipboard the command currently in [8]
# Will paste the clipboard into [8]
# Read-Write text field; this is the &quot;command input buffer&quot;, it is used as extended Test Drive tool for troubleshooting commands with issues
# Read-Only text field; will display the '''Exit Status &amp; Raw Output''' of the command in [8] executed by pressing button [4]

[[image:Snap038.png|350px]]

====Section B: (Commands/Beecons Import/Export processing)====

# Button will export the command currently in [A8]. Result of the export will be stored into [9] text buffer
# Button will import the command currently in [9].
# Will paste the clipboard into [9]
# Will copy to clipboard the [9] text buffer
# Will read from a file into [9]
# Will write to a file the [9] text buffer
# Button will import the Beecon/Snippet Instance Data currently in []; useful for restoring Beecons of for importing Beecons created by others.
# Button will export the Beecon/Snippet Instance Data for the current instance. Result of the export will be stored into [9] text buffer; useful for backup of Beecons of for exporting Beecons to others.
# Read-Write text field; used for temporarily processing export/import of commands and Beecon/Snippet Instance Data

==== Parameter Substitution at Command/Script Runtime ====

QBW can provide a set of specific parameters to the executing script/command. The script will have to identify the placeholders for this extra parameters as better specified in the following table:

{|class=&quot;wikitable&quot;
!Release!!Placeholder!!Substituted!!Description
|-
|&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;$QBW_ID&lt;/code&gt;||&lt;code&gt;&lt;QBW Instance ID&gt;&lt;/code&gt;||Retreives the [[#QBW Instance ID|QBW Instance ID]] and substitutes it into the run script
|-
|&lt;code&gt;0.1.9.6&lt;/code&gt;||&lt;code&gt;$QBW_HOTSPOT_PRESS&lt;/code&gt;||&lt;code&gt;&lt;Hot Spot Press/Click Position Index&gt;&lt;/code&gt;||[[Image:QBW Hot Spot Press.gif|right]]Retreives the &lt;code&gt;POSITION INDEX&lt;/code&gt; where the widget was pressed/clicked and substitutes it into the run script&lt;br/&gt;&lt;code&gt;0 = Not Pressed (Other update policy)&lt;br /&gt;1 = Top Left&lt;br /&gt;2 = Top Center&lt;br /&gt;3 = Top Right&lt;br /&gt;4 = Center Left&lt;br /&gt;5 = Center&lt;br /&gt;6 = Center Right&lt;br /&gt;7 = Bottom Left&lt;br /&gt;8 = Bottom Center&lt;br /&gt;9 = Bottom Right&lt;/code&gt;
|-
|&lt;code&gt;1.0.3&lt;/code&gt;||&lt;code&gt;$QBW_CLICKS_COUNT&lt;/code&gt;||&lt;code&gt;&lt;Number&gt;&lt;/code&gt;||Holds the number of times a QBW was pressed/clicked and substitutes it into the run script;  useful for handling single/double/triple... clicks and behave accordingly (Tested up to 12 ... :) )
|-
|&lt;s&gt;&lt;code&gt;1.0.4&lt;/code&gt;&lt;/s&gt;||&lt;s&gt;&lt;code&gt;$QBW_IS_FINGER_TAP&lt;/code&gt;&lt;/s&gt;||&lt;s&gt;&lt;code&gt;true&lt;nowiki&gt;|&lt;/nowiki&gt;false&lt;/code&gt;&lt;/s&gt;||&lt;s&gt;Holds the type of click issued on the Touch Screen&lt;br/&gt;&lt;code&gt;true&lt;/code&gt;=Touch Screen was tapped with a finger&lt;br/&gt;&lt;code&gt;false&lt;/code&gt;=Touch Screen was clicked with stylus&lt;/s&gt;
|-
|&lt;code&gt;1.0.3&lt;/code&gt;||&lt;code&gt;$QBW_CLICK_X&lt;/code&gt;&lt;br/&gt;&lt;code&gt;$QBW_CLICK_Y&lt;/code&gt;||&lt;code&gt;&lt;X Coordinate&gt;&lt;/code&gt;&lt;br/&gt;&lt;code&gt;&lt;Y Coordinate&gt;&lt;/code&gt;||Hold exact X and Y coordinates respectively where a QBW was pressed/clicked (Useful for handling different arbitrary/dynamic hotspots on widgets via launched shell scripts; virtually unlimited as handling is left to launched script/program)&lt;br/&gt;Ex.&lt;br/&gt;&lt;code&gt;x=$QBW_CLICK_X;&lt;br/&gt;y=$QBW_CLICK_Y;&lt;br&gt;if [ $x -ge 100 -a $x -le 200 -a $y -ge 100 -a $y -le 200 ];&lt;br/&gt;then echo &quot;HOT SPOT HIT&quot;;&lt;br/&gt;else echo &quot;HOT SPOT NOT HIT&quot;;&lt;br/&gt;fi;&lt;/code&gt;&lt;br/&gt;will echo &quot;HOT SPOT HIT&quot; if widget is clicked in rectangle delimited by p1(x=100,y=100) and p2(x=200,y=200) or &quot;HOT SPOT NOT HIT&quot; otherwise
|-
|&lt;code&gt;1.0.53&lt;/code&gt;||&lt;code&gt;$QBW_WIDTH&lt;/code&gt;||&lt;code&gt;&lt;Number&gt;&lt;/code&gt;||Holds the current Width of QBW widget; useful for dynamic recalculation of click hotspots
|-
|&lt;code&gt;1.0.53&lt;/code&gt;||&lt;code&gt;$QBW_HEIGHT&lt;/code&gt;||&lt;code&gt;&lt;Number&gt;&lt;/code&gt;||Holds the current Height of QBW widget; useful for dynamic recalculation of click hotspots
|-
|&lt;code&gt;1.3&lt;/code&gt;||&lt;code&gt;$QBW_POSITION_X&lt;/code&gt;&lt;br/&gt;&lt;code&gt;$QBW_POSITION_Y&lt;/code&gt;||&lt;code&gt;&lt;X Coordinate&gt;&lt;/code&gt;&lt;br/&gt;&lt;code&gt;&lt;Y Coordinate&gt;&lt;/code&gt;||Hold the current X,Y Position of QBW widget
|-
|&lt;code&gt;1.3&lt;/code&gt;||&lt;code&gt;$QBW_ORIENTATION_MODE&lt;/code&gt;||&lt;code&gt;&lt;mode&gt;&lt;/code&gt;||Holds the current Orientation Mode of QBW widget = &lt;code&gt;landscape&lt;/code&gt;, &lt;code&gt;portrait&lt;/code&gt;, &lt;code&gt;unknown&lt;/code&gt;, &lt;code&gt;landscape (inverted)&lt;/code&gt;, &lt;code&gt;portrait (inverted)&lt;/code&gt;
|-
|&lt;code&gt;1.3&lt;/code&gt;||&lt;code&gt;$QBW_ORIENTATION_STAND&lt;/code&gt;||&lt;code&gt;&lt;stand&gt;&lt;/code&gt;||Holds the current Orientation Stand of QBW widget = &lt;code&gt;off_stand&lt;/code&gt;, &lt;code&gt;on_stand&lt;/code&gt;
|-
|&lt;code&gt;1.3&lt;/code&gt;||&lt;code&gt;$QBW_ORIENTATION_FACE&lt;/code&gt;||&lt;code&gt;&lt;face&gt;&lt;/code&gt;||Holds the current Orientation Face of QBW widget = &lt;code&gt;face_up&lt;/code&gt;, &lt;code&gt;face_down&lt;/code&gt;
|-
|&lt;code&gt;1.3&lt;/code&gt;||&lt;code&gt;$QBW_ORIENTATION_X&lt;/code&gt;||&lt;code&gt;&lt;X axis value&gt;&lt;/code&gt;||Holds the current Orientation X axis of QBW widget = &lt;code&gt;-1&lt;/code&gt;&lt;-&gt;&lt;code&gt;+1&lt;/code&gt;
|-
|&lt;code&gt;1.3&lt;/code&gt;||&lt;code&gt;$QBW_ORIENTATION_Y&lt;/code&gt;||&lt;code&gt;&lt;Y axis value&gt;&lt;/code&gt;||Holds the current Orientation Y axis of QBW widget = &lt;code&gt;-1&lt;/code&gt;&lt;-&gt;&lt;code&gt;+1&lt;/code&gt;
|-
|&lt;code&gt;1.3&lt;/code&gt;||&lt;code&gt;$QBW_ORIENTATION_Z&lt;/code&gt;||&lt;code&gt;&lt;Z axis value&gt;&lt;/code&gt;||Holds the current Orientation Z axis of QBW widget = &lt;code&gt;-1&lt;/code&gt;&lt;-&gt;&lt;code&gt;+1&lt;/code&gt;
|-
|&lt;code&gt;1.3&lt;/code&gt;||&lt;code&gt;$QBW_LOCATION_FIX&lt;/code&gt;||&lt;code&gt;&lt;string&gt;&lt;/code&gt;||Holds the current GPS Position FIX in colon separated string form: &lt;code&gt;status : time : ept : latitude : longitude : eph : altitude : epv : track : epd : speed : eps : climb : epc : gsm_cell_info.mcc : wcdma_cell_info.mcc : satellites_in_view : satellites_in_use&lt;/code&gt;&lt;br/&gt;If information is not available then &lt;code&gt;nan&lt;/code&gt; is shown.&lt;br/&gt;See [[Documentation/Maemo_5_Developer_Guide/Using_Connectivity_Components/Using_Location_API#LocationGPSDevice_and_LocationGPSDeviceFix|HERE]] for reference.&lt;br/&gt;Ex. 1 : 1288031860 : 0 : 45,999999 : 9,999999 : 4026 : 157 : 20 : 210,490 : 359,990 : 0,11 : 4,43 : 0,00 : 0,03 : 0 : 0 : 10 : 5
|-
|&lt;code&gt;0.1.9.9&lt;/code&gt;||&lt;code&gt;$QBW_ON_SIGHT&lt;/code&gt;||&lt;code&gt;true&lt;nowiki&gt;|&lt;/nowiki&gt;false&lt;/code&gt;||&lt;code&gt;true&lt;/code&gt;=QBW Instance is &quot;ON SIGHT&quot;, that is widget is on current desktop and display is not locked or on stand by.&lt;br/&gt;&lt;code&gt;false&lt;/code&gt;=QBW Instance is not on current desktop and visible or display is off or on stand by
|-
|&lt;code&gt;1.0.2&lt;/code&gt;||&lt;code&gt;$QBW_IS_CONNECTED&lt;/code&gt;||&lt;code&gt;true&lt;nowiki&gt;|&lt;/nowiki&gt;false&lt;/code&gt;||&lt;code&gt;true&lt;/code&gt;=QBW Instance is connected to the network (either WLAN or GPRS)&lt;br/&gt;&lt;code&gt;false&lt;/code&gt;=QBW Instance is not connected to the network (either WLAN or GPRS)
|-
|&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;$QBW_EXEC_REASON&lt;/code&gt;||&lt;code&gt;QBW_TIMER_UPDATE&lt;/code&gt;||Script is run due to a Timer event
|-
|&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;$QBW_EXEC_REASON&lt;/code&gt;||&lt;code&gt;QBW_STARTUP_UPDATE&lt;/code&gt;||QBW instance is starting up and script run
|-
|&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;$QBW_EXEC_REASON&lt;/code&gt;||&lt;code&gt;QBW_SETTINGS_SAVE_RUN&lt;/code&gt;||Save and Run is pressed in Settings Dialog Box and script run
|-
|&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;$QBW_EXEC_REASON&lt;/code&gt;||&lt;code&gt;QBW_TEST_DRIVE&lt;/code&gt;||Script is run via Test Drive advanced dialog box
|-
|&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;$QBW_EXEC_REASON&lt;/code&gt;||&lt;code&gt;QBW_WAKEUP_CLICK&lt;/code&gt;||A disabled instance is waken up by a click on icon and script is run
|-
|&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;$QBW_EXEC_REASON&lt;/code&gt;||&lt;code&gt;QBW_CLICK&lt;/code&gt;||An instance is clicked and script is run
|-
|&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;$QBW_EXEC_REASON&lt;/code&gt;||&lt;code&gt;QBW_DESKTOP_SWITCH&lt;/code&gt;||The desktop, on which and instance is displayed, is switched/scrolled and script is run
|-
|&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;$QBW_EXEC_REASON&lt;/code&gt;||&lt;code&gt;QBW_CONNECTION_EVENT&lt;/code&gt;||A connection event takes place and script is run
|-
|&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;$QBW_EXEC_REASON&lt;/code&gt;||&lt;code&gt;QBW_DBUS_SET_PARAM_UPDATE&lt;/code&gt;||A set_param DBUS method is called and &quot;update content&quot; (script run) is explicitly required
|-
|&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;$QBW_EXEC_REASON&lt;/code&gt;||&lt;code&gt;QBW_DBUS_WAKEUP&lt;/code&gt;||A wakeup DBUS method is called and script is run
|-
|&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;$QBW_EXEC_REASON&lt;/code&gt;||&lt;code&gt;QBW_DBUS_UPDATE_CONTENT&lt;/code&gt;||&quot;update content&quot; DBUS method is called and script run is explicitly required
|-
|&lt;code&gt;0.1.9.1&lt;/code&gt;||&lt;code&gt;$QBW_EXEC_REASON&lt;/code&gt;||&lt;code&gt;QBW_DBUS_EXEC&lt;/code&gt;||&quot;exec&quot; DBUS method is called and external script run is explicitly required
|-
|&lt;code&gt;0.1.9.4&lt;/code&gt;||&lt;code&gt;$QBW_EXEC_REASON&lt;/code&gt;||&lt;code&gt;QBW_DBUS_MONITOR&lt;/code&gt;||Execution of script was triggered by DBUS Match Rules in DBUS Event Monitoring
|-
|&lt;code&gt;1.3&lt;/code&gt;||&lt;code&gt;$QBW_EXEC_REASON&lt;/code&gt;||&lt;code&gt;QBW_ORIENTATION_MONITOR&lt;/code&gt;||Execution of script was triggered by phone Orientation Change if enabled in QBW instance configuration
|-
|&lt;code&gt;1.3&lt;/code&gt;||&lt;code&gt;$QBW_EXEC_REASON&lt;/code&gt;||&lt;code&gt;QBW_LOCATION_MONITOR_FIX&lt;/code&gt;||Execution of script was triggered by FIX change in GPS Location subsystem if enabled in QBW instance configuration
|-
|&lt;code&gt;0.1.9.4&lt;/code&gt;||&lt;code&gt;$QBW_DBUS_VERBOSE_OUTPUT&lt;/code&gt;||&lt;code&gt;signal&lt;nowiki&gt;|&lt;/nowiki&gt;method call&lt;nowiki&gt;|&lt;/nowiki&gt;method return&lt;nowiki&gt;|&lt;/nowiki&gt;error&lt;nowiki&gt;|&lt;/nowiki&gt;unknown sender=&lt;sender&gt; -&gt; dest=&lt;destination&gt; path=&lt;path&gt; interface=&lt;interface&gt; member=&lt;member&gt;\n&lt;/code&gt;&lt;br/&gt;&lt;code&gt;&lt;type1&gt; &lt;param1&gt;\n&lt;/code&gt;&lt;br/&gt;&lt;code&gt;&lt;type2&gt; &lt;param2&gt;\n&lt;/code&gt;&lt;br/&gt;&lt;code&gt;&lt;typeX&gt; &lt;paramX&gt;&lt;/code&gt;||Extended values returned by DBUS Monitor for Matched Rule. Example:&lt;br/&gt;&lt;code&gt;signal sender=:1.31 -&gt; dest=(null destination) path=/com/example/app/Signal; interface=com.example.app.Signal; member=Test&lt;br/&gt;string &quot;192.168.47.100&quot;&lt;br/&gt;boolean true&lt;/code&gt;
|-
|&lt;code&gt;1.0.6&lt;/code&gt;||&lt;code&gt;$QBW_PREVIOUS_EXIT_STATUS&lt;/code&gt;||&lt;code&gt;&lt;last executed command's Exit Code&gt;&lt;/code&gt;||Exit status of the last previous executed command
|-
|&lt;code&gt;0.1.9.5&lt;/code&gt;||&lt;code&gt;$QBW_CURRENT_RESULTS_TEXT&lt;/code&gt;||&lt;code&gt;&lt;current content of results text&gt;&lt;/code&gt;||Current content of results text even if label is hidden. Useful for holding and processing previous state conditions across command executions
|-
|&lt;code&gt;0.1.9.6&lt;/code&gt;||&lt;code&gt;$QBW_HTTP_PROXY&lt;/code&gt;||&lt;code&gt;&lt;host&gt;:&lt;port&gt;&lt;/code&gt;||Returns the current HTTP Proxy as entered into parameters for current active Internet Connection
|-
|&lt;code&gt;0.1.9.6&lt;/code&gt;||&lt;code&gt;$QBW_HTTPS_PROXY&lt;/code&gt;||&lt;code&gt;&lt;host&gt;:&lt;port&gt;&lt;/code&gt;||Returns the current HTTPS Proxy as set into parameters for current active Internet Connection
|-
|&lt;code&gt;0.1.9.6&lt;/code&gt;||&lt;code&gt;$QBW_FTP_PROXY&lt;/code&gt;||&lt;code&gt;&lt;host&gt;:&lt;port&gt;&lt;/code&gt;||Returns the current FTP Proxy as set into parameters for current active Internet Connection
|-
|&lt;code&gt;0.1.9.6&lt;/code&gt;||&lt;code&gt;$QBW_SOCKS_PROXY&lt;/code&gt;||&lt;code&gt;&lt;host&gt;:&lt;port&gt;&lt;/code&gt;||Returns the current SOCKS Proxy as entered into parameters for current active Internet Connection
|-
|&lt;code&gt;0.1.9.6&lt;/code&gt;||&lt;code&gt;$QBW_RTSP_PROXY&lt;/code&gt;||&lt;code&gt;&lt;host&gt;:&lt;port&gt;&lt;/code&gt;||Returns the current RTSP Proxy as set into parameters for current active Internet Connection
|-
|&lt;code&gt;0.1.9.6&lt;/code&gt;||&lt;code&gt;$QBW_IGNORE_HOSTS_PROXY&lt;/code&gt;||&lt;code&gt;&lt;host1&gt;;&lt;host2&gt;;&lt;host...&gt;&lt;/code&gt;||Returns the current list of host which do not require a proxy as set into parameters for current active Internet Connection
|-
|&lt;code&gt;0.1.9.6&lt;/code&gt;||&lt;code&gt;$QBW_AUTO_CONFIG_PROXY_URL&lt;/code&gt;||&lt;code&gt;&lt;URL&gt;&lt;/code&gt;||Returns the current Proxy configuration URL as set into parameters for current active Internet Connection
|-
|&lt;code&gt;0.1.9.6&lt;/code&gt;||&lt;code&gt;$QBW_REMEMBER_ME&lt;/code&gt;||&lt;code&gt;&lt;string&gt;&lt;/code&gt;||Holds status or persistency information stored in configuration via Settings Dialog, DBUS method call or Command Output&lt;br/&gt;- Can be fetched/changed via DBUS method call &lt;code&gt;set/get_param_string string:&quot;rememberMe&quot; string:&lt;remember_this_string&gt;&lt;/code&gt;&lt;br/&gt;- Can be transferred to command/scrips execution via &lt;code&gt;$QBW_REMEMBER_ME&lt;/code&gt; Parameter Substitution&lt;br/&gt;- As of release &gt;=1.0.5 Can be also affected by executed command output. Just echo the following string (which will not be displayed) as output of your command &lt;code&gt;QBW_REMEMBER_ME(&lt;content to be remembered&gt;)&lt;/code&gt; no angle brackets; escape &quot;close round bracket&quot; like this &quot;\)&quot; to store it as &quot;)&quot;&lt;br/&gt;See examples [http://talk.maemo.org/showthread.php?p=823123#post823123 HERE]
|}

=== QBW Instance Timer Logic ===

The Timer logic for each instance for actions to be run periodically is programmed as follows:

* The timer of each instance is reset and re-armed every time the widget is Startup (System Boot or QBW release upgrade)
* The timer of each instance is reset and re-armed every time it is changed in the Settings dialog box and it is different from its previous value
* If a widget is disabled, either by changing is &quot;Status&quot; in the Settings dialog box or via DBUS method &lt;code&gt;sleep&lt;/code&gt;, its timer is disabled
* If a widget is re-enabled, either by changing is &quot;Status&quot; in the Settings dialog box or via DBUS method &lt;code&gt;wakeup&lt;/code&gt;, its timer is reset and re-armed
* If Settings Parameter &lt;code&gt;delayIndex&lt;/code&gt; has been changed via DBUS set_param_uint32 method, the relevant timer must be explicitly reset and rearmed via DBUS methos &lt;code&gt;reset_rearm_timer&lt;/code&gt;
* The timer is reset and re-armed every time a new QBW instance is imported via Advanced dialog box and relevant parameter is set

=== System Backup/Restore Integration ===

As of release &gt;=0.1.8 QBW is integrated into the N900 system backup/restore features according to standard specifications as better described in the SDK [[Documentation/Maemo 5 Developer Guide/Generic Platform Components/Using Backup Application#Custom back-up locations|Using Backup Application]]

&lt;code&gt;/etc/osso-backup/applications/queen-beecon.conf&lt;/code&gt; file is:
&lt;source lang=&quot;xml&quot;&gt;
&lt;backup-configuration&gt;
 &lt;locations&gt;
   &lt;location type=&quot;file&quot;
             category=&quot;settings&quot;&gt;$HOME/.queen-beecon&lt;/location&gt;
   &lt;location type=&quot;dir&quot;
             category=&quot;documents&quot;&gt;$HOME/MyDocs/.images/queen_beecon_dir&lt;/location&gt;
   &lt;location type=&quot;dir&quot;
             category=&quot;documents&quot;&gt;$HOME/.queen_beecon_dir&lt;/location&gt;
 &lt;/locations&gt;
&lt;/backup-configuration&gt;
&lt;/source&gt;

=== Application Logging Subsystem ===

As of release &gt;=1.0.2, QBW employs a powerful Application Logging subsystem.

Log file is:
 ~/.queen_beecon_dir/queen_beecon.log

Time in logfile is ISO 8601 encoded string, relative to the Coordinated Universal Time (UTC)

Logging is disabled by default.

==== Enabling Logging ====

Logging can be enabled in different ways:

* Dynamically via QBW DBUS method call
 &lt;code&gt;run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw&lt;idX&gt; oh.no.more.qbw.logger_action string:&lt;vX&gt;&lt;/code&gt;
: &lt;code&gt;&lt;idX&gt;&lt;/code&gt; is the [[#QBW Instance ID|QBW Instance ID]] of and existing QBW instance (no matter which one as logging is global)
: &lt;code&gt;&lt;vX&gt;&lt;/code&gt; is the required verbosity (Allowed values are: &lt;code&gt;v0 v1 v2 v3 v4&lt;/code&gt; from minimum verbosity to maximum)
: Example:
 run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbwid0 oh.no.more.qbw.logger_action string:v4
: '''WARNING!''' Due to performance reasons, v0 v1 v2 v3 logging verbosity is asynchronous, meaning that the log file will not be instantly updated as soon as a new information is logged.
:If you specifically need an up to date log file condition, you need to specifically issue a:
 &lt;code&gt;run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw&lt;idX&gt; oh.no.more.qbw.logger_action string:flush&lt;/code&gt;
:&lt;code&gt;v4&lt;/code&gt; logging verbosity is synchronous by design and logs a lot of information thus causing system slow down side effects at time and &lt;code&gt;~/.queen_beecon_dir/&lt;/code&gt; directory/file system filling quite quickly. Keep file system space monitored if you need this level of verbosity!

* Statically via condition file presence
: If you need to setup permanent verbosity to a specified level, also to monitor QBW startup, just go to directory:
 ~/.queen_beecon_dir/
: and issue command:
 touch queen_beecon.log.&lt;vX&gt;
: where &lt;code&gt;&lt;vX&gt;&lt;/code&gt; is the required verbosity (Allowed values are: &lt;code&gt;v0 v1 v2 v3 v4&lt;/code&gt; from minimum verbosity to maximum)
: Example:
 touch queen_beecon.log.v4
: Static Logging is activated every time the Phone/Widget is restarted

==== Changing Logging Verbosity ====

Logging verbosity can be dynamically changed by calling the following DBUS method call:
 run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw&lt;idX&gt; oh.no.more.qbw.logger_action string:&lt;vX&gt;
: &lt;code&gt;&lt;idX&gt;&lt;/code&gt; is the [[#QBW Instance ID|QBW Instance ID]] of an existing QBW instance (no matter which one as logging is global)
: &lt;code&gt;&lt;vX&gt;&lt;/code&gt; is the required verbosity (Allowed values are: &lt;code&gt;v0 v1 v2 v3 v4&lt;/code&gt; from minimum verbosity to maximum)

==== Disabling Logging ====

Logging can be dynamically disabled by calling the following DBUS method call
 run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw&lt;idX&gt; oh.no.more.qbw.logger_action string:disable
: &lt;code&gt;&lt;idX&gt;&lt;/code&gt; is the [[#QBW Instance ID|QBW Instance ID]] of an existing QBW instance (no matter which one as logging is global)

==== Resetting Log File ====

Log file can be dynamically reset to empty status by calling the following DBUS method call
 run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw&lt;idX&gt; oh.no.more.qbw.logger_action string:reset
: &lt;code&gt;&lt;idX&gt;&lt;/code&gt; is the [[#QBW Instance ID|QBW Instance ID]] of an existing QBW instance (no matter which one as logging is global)

== Interaction with QBW over DBUS ==

===Overview===

As of releases newer than 0.1.7, a new Inter Process Communication mechanism among QBW instances and with other Applications has been implemented.

Through the standard DBUS interface, both at the OS-shell and at different programming environments level, QBW instances can be controlled/accessed and mutual interaction can be guaranteed, thus allowing a set of extended functionalities like:

* Give impulse to other Beecons for content update
* Give impulse to other Beecons for layout update
* Give other Beecons one-shot alternative scripts to execute
* Remotely change QBW settings
* Retrieve other beecon's last executed commands exit status
* Provide to non graphical programs and daemons a suitable interface for displaying information on precustomized beecons on screen (for example Dbus Scripts for displaying events on the system/session DBUS like cell IDs changes, available WLANs and the like)

I encourage you to suggest possible enhancements or wishlists in this area and [http://talk.maemo.org/showthread.php?t=45388 report them in the main TALK thread]

===QBW Instance ID===

Queen Beecon Widget's Instance Id, needed for every reference in DBUS method calls, can be found at the very top of the Settings dialog box:

[[Image:Snap017.png|300px]]

===DBUS Specifications===

 QBW_DBUS_SERVICE =&quot;oh.no.more.qbw&quot;  [Name of D-Bus service]
 QBW_DBUS_PATH    =&quot;/oh/no/more/qbw&lt;idX&gt;&quot; [Name of Object Path]
 QBW_DBUS_IFACE   =&quot;oh.no.more.qbw&quot;  [Name of D-Bus interface]

* &lt;idX&gt; is the [[#QBW_Instance_ID|QBW Instance ID]]

===DBUS Methods &amp; Parameters===
QBW implements the following list of methods to trigger specific actions:

WARNING!!! Methods' Parameters are case-sensitive
{|class=&quot;wikitable&quot;
!Method!!Input Params!!Returns!!Description
|-
|&lt;code&gt;logger_action&lt;/code&gt;||&lt;code&gt;string:'disable&lt;nowiki&gt; | &lt;/nowiki&gt;v0&lt;nowiki&gt; | &lt;/nowiki&gt;v1&lt;nowiki&gt; | &lt;/nowiki&gt;v2&lt;nowiki&gt; | &lt;/nowiki&gt;v3&lt;nowiki&gt; | &lt;/nowiki&gt;v4&lt;nowiki&gt; | &lt;/nowiki&gt;reset&lt;nowiki&gt; | &lt;/nowiki&gt;flush'&lt;/code&gt;||||Performs the following actions on the qbw logger subsystem:&lt;br/&gt;&lt;br/&gt;&lt;code&gt;disable&lt;/code&gt; Disables logging&lt;br/&gt;&lt;br/&gt;&lt;code&gt;v0-4&lt;/code&gt; Sets Logger Verbosity to specified depth level&lt;br/&gt;&lt;br/&gt;&lt;code&gt;reset&lt;/code&gt; Resets the logfile &lt;code&gt;queen_beecon.log&lt;/code&gt; in directory &lt;code&gt;/home/user/.queen_beecon_dir&lt;/code&gt; to empty&lt;br/&gt;&lt;br/&gt;&lt;code&gt;flush&lt;/code&gt; Flushes content of logfile &lt;code&gt;queen_beecon.log&lt;/code&gt;
|-
|&lt;code&gt;dbus_method_monitor&lt;/code&gt;||&lt;code&gt;string:'on&lt;nowiki&gt; | &lt;/nowiki&gt;off'&lt;/code&gt;||||Toggle on-screen yellow notification message of incoming DBUS method requests for destination Instance (for debug purposes). Default=OFF
|-
|&lt;code&gt;reset_rearm_timer&lt;/code&gt;||||||Reset and rearm timer for periodically auto-updating QBW, needed to be explicitly called if parameter &lt;code&gt;delayIndex&lt;/code&gt; has been changed via DBUS &lt;code&gt;set_param_uint32&lt;/code&gt; method
|-
|&lt;code&gt;reset_rearm_connection&lt;/code&gt;||||||Reset and rearm the network connection subsystem, needed to be explicitly called if parameter &lt;code&gt;updNeworkPolicy&lt;/code&gt; has been changed via DBUS method
|-
|&lt;code&gt;reset_rearm_location&lt;/code&gt;||||||Reset and rearm the GPS location subsystem, needed to be explicitly called if parameter &lt;code&gt;GPSsettings&lt;/code&gt; has been changed via DBUS method
|-
|&lt;code&gt;reset_rearm_orientation&lt;/code&gt;||||||Reset and rearm the Phone Orientation subsystem, needed to be explicitly called if parameter &lt;code&gt;updOnOrientation&lt;/code&gt; has been changed via DBUS method
|-
|&lt;code&gt;reset_rearm_dbus_monitor&lt;/code&gt;||||||Reset and rearm the DBUS Monitor subsystem, needed to be explicitly called if parameters &lt;code&gt;updOnDBUS&lt;/code&gt;, &lt;code&gt;updOnDBUSBus&lt;/code&gt; and &lt;code&gt;updOnDBUSMatchRule&lt;/code&gt; have been changed via DBUS method
|-
|&lt;code&gt;show&lt;/code&gt;||||||Give show impulse to a QBW
|-
|&lt;code&gt;hide&lt;/code&gt;||||||Give hide impulse to a QBW
|-
|&lt;code&gt;wakeup&lt;/code&gt;||||||Give wake up impulse to a QBW and update content and layout
|-
|&lt;code&gt;sleep&lt;/code&gt;||||||Give sleep/disable/minimize impulse to a QBW
|-
|&lt;code&gt;update_content&lt;/code&gt;||||||Give impulse to a QBW for content update
|-
|&lt;code&gt;update_layout&lt;/code&gt;||||||Give impulse to a QBW for layout update
|-
|&lt;code&gt;exec&lt;/code&gt;||&lt;code&gt;string:'&lt;command&lt;nowiki&gt;|&lt;/nowiki&gt;script&gt;'&lt;/code&gt;||||Give other QBWs one-shot alternative scripts/commands to execute and update content accordingly
|-
|&lt;code&gt;set_param_string&lt;/code&gt;||&lt;code&gt;string:'&lt;param name&gt;'&lt;/code&gt;&lt;br /&gt;&lt;code&gt;string:'&lt;new value&gt;'&lt;/code&gt;&lt;br /&gt;&lt;code&gt;string:&lt;nowiki&gt;'' | &lt;/nowiki&gt;'update_content'&lt;nowiki&gt; | &lt;/nowiki&gt;'update_layout'&lt;/code&gt;|||||Change and store QBW settings [[#Configuration_Parameters.2C_Types_.26_Reference|parameter]] of type string
|-
|&lt;code&gt;set_param_int32&lt;/code&gt;||&lt;code&gt;string:'&lt;param name&gt;'&lt;/code&gt;&lt;br /&gt;&lt;code&gt;int32:'&lt;new value&gt;'&lt;/code&gt;&lt;br /&gt;&lt;code&gt;string:&lt;nowiki&gt;'' | &lt;/nowiki&gt;'update_content'&lt;nowiki&gt; | &lt;/nowiki&gt;'update_layout'&lt;/code&gt;||||Change and store QBW settings [[#Configuration_Parameters.2C_Types_.26_Reference|parameter]] of type int
|-
|&lt;code&gt;set_param_uint32&lt;/code&gt;||&lt;code&gt;string:'&lt;param name&gt;'&lt;/code&gt;&lt;br /&gt;&lt;code&gt;uint32:'&lt;new value&gt;'&lt;/code&gt;&lt;br /&gt;&lt;code&gt;string:&lt;nowiki&gt;'' | &lt;/nowiki&gt;'update_content'&lt;nowiki&gt; | &lt;/nowiki&gt;'update_layout'&lt;/code&gt;||||Change and store QBW settings [[#Configuration_Parameters.2C_Types_.26_Reference|parameter]] of type uint
|-
|&lt;code&gt;set_param_double&lt;/code&gt;||&lt;code&gt;string:'&lt;param name&gt;'&lt;/code&gt;&lt;br \&gt;&lt;code&gt;double:'&lt;new value&gt;'&lt;/code&gt;&lt;br /&gt;&lt;code&gt;string:&lt;nowiki&gt;'' | &lt;/nowiki&gt;'update_content'&lt;nowiki&gt; | &lt;/nowiki&gt;'update_layout'&lt;/code&gt;||||Change and store QBW settings [[#Configuration_Parameters.2C_Types_.26_Reference|parameter]] of type double
|-
|&lt;code&gt;set_param_boolean&lt;/code&gt;||&lt;code&gt;string:'&lt;param name&gt;'&lt;/code&gt;&lt;br /&gt;&lt;code&gt;boolean:'&lt;new value&gt;'&lt;/code&gt;&lt;br /&gt;&lt;code&gt;string:&lt;nowiki&gt;'' | &lt;/nowiki&gt;'update_content'&lt;nowiki&gt; | &lt;/nowiki&gt;'update_layout'&lt;/code&gt;||||Change and store QBW settings [[#Configuration_Parameters.2C_Types_.26_Reference|parameter]] of type boolean
|-
|&lt;code&gt;get_param&lt;/code&gt;||&lt;code&gt;string:'&lt;param name&gt;'&lt;/code&gt;||&lt;code&gt;string:'value'&lt;/code&gt;||Get QBW settings [[#Configuration_Parameters.2C_Types_.26_Reference|parameter]]
|-
|&lt;code&gt;is_on_sight&lt;/code&gt;||||&lt;code&gt;string:'value'&lt;/code&gt;||Get current widget On Sight status&lt;br/&gt;'''&lt;code&gt;true&lt;/code&gt;'''=QBW Instance is &quot;ON SIGHT&quot;, that is widget is on current desktop and display is not locked or on stand by.&lt;br/&gt;&lt;code&gt;false&lt;/code&gt;=QBW Instance is not on current desktop and visible or display is off or on stand by
|-
|&lt;code&gt;get_current_results_text&lt;/code&gt;||||&lt;code&gt;string:'value'&lt;/code&gt;||Get current content of results text
|-
|&lt;code&gt;set_position&lt;/code&gt;||&lt;code&gt;int32:'&lt;X-coord&gt;'&lt;/code&gt;&lt;br /&gt;&lt;code&gt;int32:'&lt;Y-coord&gt;'&lt;/code&gt;||||Set QBW position on desktop
|-
|&lt;code&gt;get_position&lt;/code&gt;||||&lt;code&gt;int32:'&lt;X-coord&gt;'&lt;/code&gt;&lt;br /&gt;&lt;code&gt;int32:'&lt;Y-coord&gt;'&lt;/code&gt;||Get QBW position on desktop
|-
|&lt;code&gt;get_exit_status&lt;/code&gt;||||&lt;code&gt;int32:'&lt;ExitStatus&gt;'&lt;/code&gt;||Retrieve other QBW's last executed commands exit status
|}

===DBUS Signals &amp; Parameters===

QBW issues the following list of signals to notify the &quot;world&quot; about predefined conditions and events. They will be emitted on the bus according to the following specifications:

 PATH       =&quot;/oh/no/more/qbw&lt;idX&gt;&quot;
 INTERFACE  =&quot;oh.no.more.qbw&quot;
 MEMBER     =&quot;&lt;signal name&gt;&quot; [Signal column in below list]
 PARAMETERS =&quot;&lt;parameter&gt;&quot; [Broadcast column in below list]

* &lt;idX&gt; is the [[#QBW_Instance_ID|QBW Instance ID]]

{|class=&quot;wikitable&quot;
!Signal!!Broadcasts!!Description
|-
|&lt;code&gt;signal_content_update&lt;/code&gt;||&lt;code&gt;int32:'&lt;ExitStatus&gt;'&lt;/code&gt;||Issued when [[#QBW_Instance_ID|QBW Instance &lt;idX&gt;]] executes and returns an exit status
|}

===Interacting with QBW from the Shell===

This is the template to use for calling the QBW instance methods:

* For methods which DO return values:
 run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw&lt;idX&gt; oh.no.more.qbw.&lt;method&gt; &lt;type1&gt;:&quot;&lt;param1&gt;&quot; &lt;type2&gt;:&quot;&lt;param2&gt;&quot; ... &lt;typeN&gt;:&quot;&lt;paramN&gt;&quot;
&lt;s&gt;'''WARNING!!!''' Hildon-home is quite sensitive to long running commands inside Queen Beecon Widget. If you believe that the dbus-send command is going to take much time (say &gt;2/3 secs) it is better if you add the &lt;code&gt;--reply-timeout=&lt;milliseconds&gt;&lt;/code&gt; to the dbus-send list of parameters.&lt;/s&gt; As of &gt;=0.1.9.3 release, asynchronous execution of commands/scripts obsoletes previous statement.

* For methods which DO NOT return values:
 run-standalone.sh dbus-send --session --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbw&lt;idX&gt; oh.no.more.qbw.&lt;method&gt; &lt;type1&gt;:&quot;&lt;param1&gt;&quot; &lt;type2&gt;:&quot;&lt;param2&gt;&quot; ... &lt;typeN&gt;:&quot;&lt;paramN&gt;&quot;

Where:

* &lt;code&gt;&lt;idX&gt;&lt;/code&gt; is the [[#QBW Instance ID|QBW Instance ID]]
* &lt;code&gt;&lt;method&gt;&lt;/code&gt; is the [[#DBUS Methods|Method]] to be called for the specific QBW Instance
* &lt;code&gt;&lt;typeX&gt;&lt;/code&gt; and &lt;code&gt;&lt;paramX&gt;&lt;/code&gt; are the parameter type and value as per the specific [[#DBUS Methods|Method Synopsis]]

For example:
 run-standalone.sh dbus-send --session --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbwid0 oh.no.more.qbw.set_param_string string:&quot;cmdImgFilename&quot; string:&quot;new_image_filename.png&quot; string:&quot;update_layout&quot;

or
 run-standalone.sh dbus-send --session --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbwid0 oh.no.more.qbw.dbus_method_monitor string:'on'

or
 run-standalone.sh dbus-send --session --print-reply --type=method_call --dest=oh.no.more.qbw /oh/no/more/qbwid0 oh.no.more.qbw.get_position

== QBW DBUS Events Monitor and Interceptor ==

===Overview===

As of releases newer than 0.1.9.3 QBW is now able to monitor and intercept DBUS events (like signals, methods, errors) issued by the system or other applications. For example:
* Keyboard lock/unlock
* Slide open/close
* Bluetooth connections
* GSM cells change
* WIFI networks
* Battery &amp; Charging status
* Changes in device orientation
* Incoming Calls
* Incoming SMS/IM

These events will then trigger the execution of a script which can be programmed to analyze and parse the intercepted event and perform actions accordingly.

The configuration is performed via the DBUS Event Monitoring section in Settings Dialog Box:

[[Image:Qbwdbusm.jpg||400px]]

# States if DBUS Monitoring is enabled or disabled for this QBW
# Specify whether to monitor SYSTEM or SESSION BUS
# Is the Match Rule as per [http://dbus.freedesktop.org/doc/dbus-specification.html#message-bus-routing this DBUS specifications]

I encourage you to suggest possible enhancements or wishlists in this area and report them in the main [http://talk.maemo.org/showthread.php?t=45388 TALK thread]

==== Example ====

We will monitor the SYSTEM BUS with the following Match Rule:
 type='signal',interface='com.example.app.Signal'

The cmd/script which will be executed when the event is intercepted is the following:
 echo &quot;$QBW_ID $QBW_EXEC_REASON&quot;; echo '$QBW_DBUS_VERBOSE_OUTPUT'; exit 2

This is a simulation of the following sample DBUS command:
 run-standalone.sh dbus-send --system --type=signal /com/example/app/Signal com.example.app.Signal.Test string:'Oh' string:'No!!!' string:'More QBWs!!!' boolean:true uint32:10000

And here's the output:

[[Image:qbwmonw.jpg||400px]]

== Known Issues ==

TBD

== Bug Tracker/Reports ==

[https://garage.maemo.org/tracker/?atid=4848&amp;group_id=1295&amp;func=browse Tracker/Report See HERE]

== Feature Requests ==

[https://garage.maemo.org/tracker/?atid=4851&amp;group_id=1295&amp;func=browse Apply HERE]

== Now-Brewing ==

Nothing

== Change Log ==

{{main|Queen BeeCon Widget/Changelog}}

== TODO list ==

*Bugfixing and Improving Stability
*Instance Import/Export optimization and simplification

== HOW-TOs &amp; FAQs ==

=== Create a new Basic Instance of QBW ===

After you have installed QBW package, these are the steps to create and start customizing a new Instance of the widget.

* Tap on an empty area of the Desktop and gear icon for configuration will pop up in the upper right area of the screen
:[[Image:Qbwinst1.png]]
* Click on the &quot;Add widget&quot; button
:[[Image:Qbwinst2.png]]
* Scroll selector till you find &quot;Queen Beecon Widget&quot; and click on it
:[[Image:Qbwinst3.png]]
* A new instance of the widget will be created with very basic default configuration
:[[Image:Qbwinst4.png]]
* Now if you click on the Settings Wrench Icon you'll reach the Settings Dialog for customization

=== How and Where to store Icons and Images for your Beecons ===

If no PATH is specified in the Settings for Icons and Images, QBW will look in directories on the phone's internal memories in the following order:

* First, the directory accessible via Bluetooth/PC Suite/OVI Suite or USB (Storage Mode).

 /home/user/MyDocs/.images/queen_beecon_dir/

:[[Image:Qbwwtsi.png]]

:'''WARNING!!! When phone is connected via USB in Storage Mode this directory is not available to the Widget'''; so if you plan to use QBW when in Storage Mode use directory in '''&quot;Second&quot;''' point.

* '''Second''', the directory:
 /home/user/.queen_beecon_dir

* '''Third''', the directory where QBW's '''[[#Icons_in_Package|Package Icons]]''' are stored:
 /usr/share/icons/hicolor/48x48/hildon/

If you want to replace a partial/complete set of QBW's [[#Icons in Package|Package Icons]] just create Icons/Images with same name in directories &quot;First&quot; or &quot;Second&quot;

If the specified image is not found, the following icon will appear:

[[Image:Queen-beecon-noimg.png]]

=== Create an Exit Status driven Multi Images Beecon ===

[http://talk.maemo.org/showthread.php?p=576408#post576408 Naive Dice Roller] is a good place to start looking for such implementation.

=== Scripts/Commands with long output ===

Some scripts/commands may create multiple lines which are too long to be displayed on a single line. The widget will not wrap these. In order to wrap them you can use the fold command:
 
 command-that-produces-long-lines | fold -s -w 80

The 80 in that instance is the maximum length of the line, which you can change. The -s option makes fold word wrap with spaces. More information is available from the [http://unixhelp.ed.ac.uk/CGI/man-cgi?fold fold man page].

=== Backup all Widget Instances ===
Apply [[#Export.2FSave.2FBackup Procedure for Beecon Instance Data|Export/Save/Backup Procedure for Beecon Instance Data]] for every Widget Instance you want to Backup

Save content (Beecons' Images) of directories:
 /home/user/.queen_beecon_dir
 /home/user/MyDocs/.images/queen_beecon_dir/

=== Restore all Widget Instances ===
Apply [[#Import.2FLoad.2FRestore Procedure for Beecon Exported Instance Data|Import/Load/Restore Procedure for Beecon Exported Instance Data]] for every Widget Instance you want to Restore

Restore content (Beecons' Images) of directories:
 /home/user/.queen_beecon_dir
 /home/user/MyDocs/.images/queen_beecon_dir/

=== Import/Load/Restore Procedure for Beecon Exported Instance Data ===

[http://talk.maemo.org/showthread.php?p=572028#post572028 See HERE]

=== Export/Save/Backup Procedure for Beecon Instance Data ===

[http://talk.maemo.org/showthread.php?p=613152#post613152 See HERE]

=== Copy Exported Instance Data from Browser to Phone's Clipboard ===

[http://talk.maemo.org/showthread.php?p=575685&amp;post575685 See HERE]

=== Reset QBW to Default Configuration/Commands ===

Open up [[terminal|X Terminal]] (or SSH/Putty into N900) and issue the following command:
 sudo gainroot (only if you are not already root)
 rm /home/user/.queen_beecon
 killall hildon-home

=== Completely remove QBW from your N900 ===

Open up [[terminal|X-Terminal]] (or SSH/Putty into N900) and issue the following command
 sudo gainroot
(only if you are not already root)
 dpkg -P queen-beecon
 rm /home/user/.queen_beecon
 rm -r /home/user/.queen_beecon_dir
 rm -r /home/user/MyDocs/.images/queen_beecon_dir/

=== Run every Desktop Application with different Icons/Sizes buttons ===

You can run every desktop application with a script like this and just change the image and size of the Beecon to one of your choice:

 dbus-send --type=method_call --dest=com.nokia.HildonDesktop.AppMgr /com/nokia/HildonDesktop/AppMgr com.nokia.HildonDesktop.AppMgr.LaunchApplication string:&quot;&lt;application name here&gt;&quot;

where &lt;code&gt;&lt;application name here&gt;&lt;/code&gt; is application name that you can find in &lt;code&gt;/usr/share/applications/hildon&lt;/code&gt; directory without the trailing &lt;code&gt;.desktop&lt;/code&gt;

Example for launching the image viewer:

 /usr/bin/dbus-send --dest=com.nokia.HildonDesktop.AppMgr /com/nokia/HildonDesktop/AppMgr com.nokia.HildonDesktop.AppMgr.LaunchApplication string:image-viewer

[http://talk.maemo.org/showthread.php?p=741381#post741381 See EXAMPLE Here]

=== Run Application in xterm with different Icons/Sizes buttons ===

You can run every application in xterm and customize a button on Desktop to launch it.

[http://talk.maemo.org/showthread.php?p=741436&amp;post=741436 See THIS post for a Tutorial]

=== Create invisible clickable Hot Spots on your Desktop Background Image to launch Applications or perform Actions ===

[http://talk.maemo.org/showthread.php?p=786923#post786923 See Here] and follow-up posts.

=== Relocate/Rotate a QBW widget on a Keyboard slide event ===

[http://talk.maemo.org/showthread.php?p=823118#post823118 See Here] and follow-up posts.

=== FAQs ===

====Could you make an easy way to install new beecons/scripts please?====

... perhaps define a standard folder structure inside a compressed file, perhaps some install directions file inside to guide installation, and use a custom extension; kinda like how Firefox does with XPIs, and add some GUI to install/uninstall them

This is a good question and I still haven't figured out a good answer.

Here are a few issues I mused about.

# QBW is not a standalone application; it is a Hildon-Desktop/Home plugin (a library) with plenty of constraints and with a certain fixed integration with the whole system. Messing with it it's a pain in the a**
# I tried to find a simple operational way to achieve what you are asking for, here, but to my knowledge and due to the nature of HD-HH I couldn't find any better, faster, simpler, cuter or leanier way.
# QBWs, which get shared by the community or myself, are just mockups or proof of concepts which are meant to be &quot;abused&quot;, &quot;mishandled&quot; and further customized to match each one's expectations and visual/functional taste
# The complexity of some QBWs requires manual intervention to adapt to each and everyone's environment (Ex. the QBW Instance ID used for inter-widget communication varies on each machine). To my knowledge, the automation of this adaptation process is very time consuming and far from being error-proof. I preferred to focus my effort in the most interesting area of functionalities
# QBW is a very powerful tool and can do a lot of good and nasty things... so: the more you expose its behaviour and the more &quot;open&quot; the code and effects will be
# Maemo ain't for doubleclickers

I know there is no proper answer here...

== Easter Eggs ==

=== Magic Word for bypassing Export/Import Instance Data CheckSum protection ===

[[Image:Qbwlsowk.jpg]]

Use the Source ... Luke! ;) or ask politely!

== Troubleshooting ==

=== Startup ===

If you are having issues at widget startup because of improper &quot;Update on Widget/System Startup&quot; settings:

* Open up [[terminal|X Terminal]] (or SSH/Putty into N900) and issue the following commands:
 sudo gainroot
(only if you are not already root)
 vi /home/user/.queen_beecon
* find &lt;code&gt;updOnStartup=true&lt;/code&gt; (all instances supposed to be culprits)
* Set it to false:
 updOnStartup=false
* Save file
* Immediately issue:
 killall hildon-home
* hildon-home will automatically restart and widgets won't run any more at startup

More generally just open &lt;code&gt;/home/user/.queen_beecon&lt;/code&gt; and change the Update Policies of your offending instance as per [[#Update Policy|THIS section's specifications]]

=== Running ===

==== QBW Warning! Possible Pango Markup Language inconsistent/unterminated Tag! ====

If you are using [http://maemo.org/api_refs/5.0/5.0-final/pango/PangoMarkupFormat.html Pango Markup Language] tags as output from your scripts, make sure all Tags are correctly written/spelled and terminated. Make also sure that there is an explicit newline at the very end of your output.

If you need to display the following special characters:

These NEED to be escaped:

*The less-than character (&lt;) starts element markup (the first character of a start-tag or an end-tag). Escape: &lt;code&gt;&amp;amp;lt;&lt;/code&gt;
*The greater-than character (&gt;) ends a start-tag or an end-tag. Escape: &lt;code&gt;&amp;amp;gt;&lt;/code&gt;

These MIGHT NEED to be escaped:

*The ampersand character (&amp;) starts entity markup (the first character of a character entity reference). Escape: &lt;code&gt;&amp;amp;amp;&lt;/code&gt;
*The double-quote character (&quot;) can be symbolised with this character entity reference when you need to embed a double-quote inside a string which is already double-quoted. Escape: &lt;code&gt;&amp;amp;quot;&lt;/code&gt;
*The apostrophe or single-quote character (') can be symbolised with this character entity reference when you need to embed a single-quote or apostrophe inside a string which is already single-quoted. Escape: &lt;code&gt;&amp;amp;apos;&lt;/code&gt;

==== Beecon seems to hang when fetching data or accessing the Internet/Network ====

Please have a look at the thread of [http://talk.maemo.org/showthread.php?p=544591#post544591 Timeout and Proxy related issues].

You can also have a look at [[#Parameter Substitution at Command.2FScript Runtime|THIS section]] of the WIKI for proxy related information

=== Advanced Settings and Tools Dialog Box ===

==== QBW Warning! Expected/Shown Command Output mismatch. Possible charset different from UTF-8! ====

If you press '''TestDrive''' for a command and the '''Exit Status and Command RAW Output Buffer''' still displays '''''&quot;Exit Status &amp; Command RAW Output will be displayed HERE&quot;''''' then maybe your output contains a charset different from UTF-8.

[[image:Snap091.jpg|250px]]

To have the Command Output properly displayed, try to append &quot;&lt;code.| iconv --from-code=ISO-8859-1 --to-code=UTF-8&lt;/code&gt;&quot;. For example:

 ... command1 | iconv --from-code=ISO-8859-1 --to-code=UTF-8

[[image:Snap090.jpg|250px]]

==== WARNING! Bad Checksum! Possibly corrupt Import Instance/Command Data! ====

Every exported QBW Instance/Command Data is protected by a checksum value which is stored in the header part of the export.

There are a few reason why I chose to do that:

* To preserve integrity of what the author of the QBW created (and supposedly assumed &quot;working&quot;)
* To prevent unwanted changes to the data due to clipboard copy/paste operations
* To ease the QBW exported data import process, and avoid some extra effort in coding import/export routines, by using the &lt;code&gt;g_key_file_*&lt;/code&gt; APIs

Exported data is not &quot;pure&quot; configuration text; it is &quot;meta-text&quot; with some extra '''escape characters''' (Newline, tab, carriage return, backslash, blank which are escaped as \n, \t, \r, \\, \s respectively)

This is why directly changing the data inside the import/export buffer or in a text editor before importing is strictly discouraged (unless, of course, you know what you are doing and side effects)

== Published Beecons, Scripts &amp; Commands ==

{{main|Queen BeeCon Widget/BeeCons, scripts and commands}}</text>
    </revision>
  </page>
  <page>
    <title>Queen BeeCon Widget/BeeCons, scripts and commands</title>
    <id>4755</id>
    <revision>
      <id>42377</id>
      <timestamp>2011-03-07T12:27:50Z</timestamp>
      <contributor>
        <username>asys3</username>
        <id>40</id>
      </contributor>
      <comment>/* Beecons */</comment>
      <text xml:space="preserve">This article is a collection of published BeeCons, widgets and commands for [[Queen BeeCon Widget]].

== Beecons ==

=== Cool Clock ===

[[Image:Screenshot-20101029-133324.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=855563#post855563 Beecon] will display a neat clock with calendar date.

=== &quot;2 States&quot; ON/OFF Button ===

[[Image:213ly69.jpg|200px]] [[Image:Au81ut.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=823289#post823289 Beecon] will display a &quot;2 States Button&quot; which is &quot;ON&quot; on widget/system startup and toggles at every press.

=== Custom Battery Charge Status ===

The [http://talk.maemo.org/showthread.php?p=817934#post817934 Beecon] will display a custom battery status widget

=== (Study) MLBeecon Reloaded ===

[[Image:10hvs6s.jpg|200px]] [[Image:6yzfat.jpg|200px]] [[Image:4ih8y1.jpg|200px]]

The [http://talk.maemo.org/showthread.php?t=62289 Beecon] will display a multi-tabbed view of MLB Baseball News, Scoreboard and Standings

=== Clock Control Panel ===

[[Image:031730mod.jpg|200px]]

Thanks to [http://talk.maemo.org/member.php?u=33371 Dany-69]

The [http://talk.maemo.org/showthread.php?p=813385#post813385 Beecons] will increase or decrease the maximum frequency of the processor.

=== Overclock Control Panel I ===

[[Image:Occtrlpnl.jpg|200px]]

Thanks to [http://talk.maemo.org/member.php?u=37761 techie]

The [http://talk.maemo.org/showthread.php?p=761215#post761215 Beecon] will provide following features:

* Widget to display temperature and also perform smart overclocking i.e set max cpu clock according to how hot/cool the device is (runs at specified intervals).
* A stock widget to revert to default kernel, disables smart overclocking.
* A widget to set max clock to 950, disables smart overclocking, useful as a power boost when I like want to watch a video without any stuttering, and can do without the temperature widget clocking it down in case it gets hot.
* A widget to display the current maximum cpu frequency.
* And yeah also, locking the device changes the limits to 250 500, unlocking enables the temperature widget so it clocks according to temperature again.

=== Switch MicroB browser User Agent strings ===

[[Image:345be2q.jpg|200px]]

Thanks to [http://talk.maemo.org/member.php?u=40874 sacal]

The [http://talk.maemo.org/showthread.php?p=752252#post752252 Beecons] will switch between 3 or 4 MicroB browser User Agent strings

=== Bright Display when On Charge, Dim when On Battery ===

The [http://talk.maemo.org/showthread.php?p=746195#post746195 Beecons] with dbus monitoring will manage to bring backlight to max when connected to power supply, and dim it back when disconected

=== Poker Dice ===

[[Image:Snap191.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=745422#post745422 Beecon] will let you play a funny Poker Dice Game

=== On Desktop Dialer Widget ===

[[Image:Qbwdfing.gif|100px]] [[Image:Snap190.jpg|200px]]

The [http://talk.maemo.org/showthread.php?t=58049 Beecon] will let you dial phone numbers straight from your desktop.

=== O'clocker CPU Frequency Monitor ===

[[Image:Qbwcpuf.gif|200px]] [[Image:Qbwfreq1.png|200px]]

The [http://talk.maemo.org/showthread.php?p=673080&amp;postcount=4017 Beecon] will display different frequencies in graphic format based upon:
 /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

=== Random images from Flickr's 'Most Interesting' pages ===

[[Image:Qbwrif0.jpg|200px]] [[Image:Qbwrif1.jpg|200px]] [[Image:Qbwrif2.jpg|200px]]

The [http://talk.maemo.org/showthread.php?t=53324 Beecon] will display random photos/images from http://m.flickr.com. Change update policies as per your taste.

=== N900 Overclocking (Thanks [http://talk.maemo.org/member.php?u=23878 Jakiman] and all contributors) ===

[[Image:Qbwn900oc.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=595582#post595582 Guide] will give you a thorough insight of the N900 overclocking methods with plenty of instructions and tutorials. QBW will provide a GUI Button for switching OC Frequencies

=== Random Images/Photos Slideshow (4x3 and 16x9 frames) ===

[[Image:Qbwrips1.jpg|200px]] [[Image:Qbwrips2.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=630492#post630492 Beecon] will display random photos/images from a specified directory. Both 4x3 and 16x9 aspect ratios white frames are provided. Change update policies as per your taste.

=== N900 Mini Monitor (Extras Admission Celebration Edition)!!! ===

[[Image:Qbwnmmeace.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=629644#post629644 Beecon] will show System Information relevant to Battery, CPU and Load, Uptime, Network/Internet, WIFI and File Systems.

=== Zodiac Personal Horoscope  (Italian + Bonus Read [http://talk.maemo.org/showthread.php?p=626316#post626316 Talk]) ===

[[Image:Qbwzph.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=626316#post626316 Beecon] will show your horoscope for the day. It will be personalized with the image/icon of the sign you specify.

=== Lunar Phases ===

[[Image:Qbwlf.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=625611#post625611 Beecon] will show the current phase of the moon.

=== Ebay Item Watcher ===

[[Image:Qbwebay.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=620123#post620123 Beecon] will watch an item that you specify and will provide a small Photo, Item Number, Current Bid or Buy It Now Price, Time Left for bidding, Bid Count, High Bidder and Quantity.

=== Internet Traffic Report Live Graphs ===

[[Image:Qbwitr1.jpg|200px]] [[Image:Qbwitr2.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=619178#post619178 Beecons] will fetch some Graphs from the [http://www.internettrafficreport.com Internet Traffic Report] website. The Internet Traffic Report monitors the flow of data around the world. It then displays a value between zero and 100. Higher values indicate faster and more reliable connections. See [http://www.internettrafficreport.com/faq.htm ITR FAQs] to learn more.

=== Today Schedules for TVRage.com Favourites TV Serials ===

[[Image:Qbwststvr.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=616496#post616496 Beecon] will also provide a small miniature if your most favourite Show is aired on the day.

=== N900 Hard Sleep Mode ===

[[Image:Qbwn900hsm.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=610074#post610074 Beecon] will put the N900 into Hard Sleep Mode. When pressed, it'll perform the following actions: Set WIFI OFF, Change phone network mode to GSM, Shutdown all network connections, Blank the screen, Lock device

=== European Soccer Leagues Live Results and Next Matches Beecon ===

[[Image:Qbwesllrnm.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=571270#post571270 Beecon] will also be able to highlight the match of your favourite Team and display a Green ball if it is winning, Yellow ball if match is tied, Red ball if team is losing, White ball if match is still not currently being played.

=== World Cup 2010 South Africa - Live Results, News and Next Matches ===

[[Image:Qbwwc2010sa.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=612646#post612646 Beecon] will also provide the most recent WC2010 news and will be able to highlight the match of your favourite Team and display, behind mascot, a Green ball if it is winning, Yellow ball if match is tied, Red ball if team is losing, White ball if match is still not currently being played.

=== Naive Dice Roller ===

[[Image:Qbwndr.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=576408#post576408 Beecon] will show a dice that you'll be able to roll by clicking on it.

=== World Day &amp; Night Zones ===

[[Image:Qbwwdanz.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=576390#post576390 Beecon] will display a map of the world and current position of the Sun, indicating which parts of the Earth are in day and which are in night.

=== European Accuweather Meteo ===

[[Image:Qbwamb.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=573590#post573590 Beecon] will display the meteo graphs provided by Accuweather.com for Western Europe

=== MRTG The Multi Router Traffic Grapher ===

[[Image:Qbwmrtg.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=573426#post573426 Beecon] will display the graphs provided by the uber-famous MRTG - The Multi Router Traffic Grapher

=== GMail: New Mail Notifier Beecon ===

[[Image:Qbwgmn.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=572068#post572068 Beecon] will display an empty mailbox icon or a yellow full mailbox icon and the number of new unread messages of the specified GMail account

=== Italian Ringroads (Tangenziali) Live Traffic Beecon ===

[[Image:Qbwmrltb.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=569345#post569345 Beecon] is configured to display Live Traffic graphic status of Milan Ringroads System. Other major cities in Italy are also available: ROME, TURIN, FLORENCE, NAPLES, BOLOGNA!

=== MLB Major League Baseball Matches of the Day (+tutorial/walkthrough) ===

[[Image:Qbwmlbmotd.jpg|200px]]

The [http://talk.maemo.org/showthread.php?p=563906#post563906 Beecon] will display near Real Time MLB Major League Baseball Matches results. The Widget is also capable of showing different icons/images/emoticons according to the result of a Favourite Team.

Thanks to [http://talk.maemo.org/member.php?u=39735 gkuenning] for [http://talk.maemo.org/showthread.php?p=670734&amp;postcount=152 alternative script]

=== New packages from autobuilder ===

[[Image:AutoBuilderWidget.png]]

The [http://talk.maemo.org/showpost.php?p=962408&amp;postcount=10 Beecon] will show all the output of the autobuilder website from today. Though it could be that a package is broken it gives a good overview about what's coming next or what's new.

== Scripts and Commands ==

[[Desktop Command Execution Widget scripts]] '''''Warning:''''' These are scripts for Desktop Command Execution Widget; QBW has extended functionalities so it might be needed to tweak scripts or commands a little bit for both cosmetic and functional improvements.

== Useful References ==

[[DbusScripts]] is a daemon that can execute a command when various actions occurs on DBus

[[Phone control]] D-Bus commands can be run from terminal or as shell scripts. Useful for scheduling events with fcron, executing commands, startup events, install scripts, etc.

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Queen BeeCon Widget/Changelog</title>
    <id>4754</id>
    <revision>
      <id>42047</id>
      <timestamp>2011-02-23T15:19:30Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>move from [[Queen BeeCon Widget]]</comment>
      <text xml:space="preserve">Changelog for [[Queen BeeCon Widget]]. Also see the [http://maemo.org/packages/view/queen-beecon/ maemo.org packages page].

==1.3.3==

* New: -
* Changed: For further readability, QBW Logger now outputs &quot;¶&quot;=chr$(182) instead of &quot;\n&quot;=newlines inside log strings. Only last newline is outputted untranslated.
* Bugfixing: Widget Assertion failed on QBW startup and Animation Stop; fixed
* Bugfixing: System Proxies fetching/clearing logic bugged (again!); fixed
* Bugfixing: No proper reset in DBUS Monitor INIT/DEINIT logic; fixed

==1.3.2==

* New: -
* Changed: Enabling logger verbosity in Logger Verbosity Button in Advanced Settings and Tools Dialog Box enables logging if not enabled on startup by touchlogfile
* Changed: Logger timestamps are now printed in ISO 8601 encoded string, relative to the Coordinated Universal Time (UTC)
* Bugfixing: Version was not displaying in About Box because of font too big; fixed

==1.3.1==

* New: -
* Changed: -
* Bugfixing: Incorrect error &quot;error enabling QBW_SUBSYSTEM_TIMER&quot; report in TIMER subsystem rearm

==1.3==

* New: Ability to sense Phone Orientation and execute scripts accordingly + Relevant configuration parameters (updOnOrientation)
* New: Phone Orientation Parameter Variables substitution for using with scripts which hold $QBW_ORIENTATION_MODE, $QBW_ORIENTATION_STAND, $QBW_ORIENTATION_FACE, $QBW_ORIENTATION_X, $QBW_ORIENTATION_Y, $QBW_ORIENTATION_Z
* New: Ability to sense GPS/Location information and execute scripts accordingly + Relevant configuration parameters (GPSsettings)
* New: GPS/Location Parameter Variables substitution for using with scripts which hold $QBW_LOCATION_FIX current position FIX in string form
* New: Added option to wrap text results and relevant configuration parameter resWrapLongLines
* New: New about box in Advanced Settings dialog Box with Application Name, Description, Version, Buttons for &quot;Visit website&quot; &quot;Report bug&quot; &quot;Donate&quot;, Copyright info
* New: Added confirmation in Command Deletion Dialog Box
* New: Added the possibility to completely hide widget and display only the animation when updating (useful for example to draw on-click/press FX frames and visual feedback to buttons)
* New: Parameter Variables substitution for using with scripts which holds the current X position of QBW widget ($QBW_POSITION_X); useful for dynamic update/processing of widget according to its position on screen
* New: Parameter Variables substitution for using with scripts which holds the current Y position of QBW widget ($QBW_POSITION_Y); useful for dynamic update/processing of widget according to its position on screen
* New: Implementation of toggle for multi-click support (quicker click response if disabled); with relevant settings &amp; configuration parameter &quot;multiClick&quot;
* New: Implementation of DBUS methods: reset_rearm_connection
* New: Implementation of DBUS methods: reset_rearm_location
* New: Implementation of DBUS methods: reset_rearm_orientation
* New: Implementation of DBUS methods: reset_rearm_dbus_monitor
* Changed: Complete QBW icons restyle!!!
* Changed: Changed some settings sensitivity logic according to enablement of relevant function
* Changed: Command Input Buffer in Advanced Settings Dialog Box now accepts linebreaks in the input for improved command readability
* Changed: Progress Animation is now not shown if widget is set to invisible
* Changed: @connection events now have their management subsystem and gets activated only for instances requiring it
* Changed: Changed logger verbosity @connection event
* Changed: Restyle in Update Policy Settings
* Changed: UI Restyle in Advanced Settings and Tools Dialog Box
* Changed: UI Restyle in Widget Size Settings
* Changed: UI Restyle in Widget Positioning Settings
* Changed: More verbosity for Pango Markup Language inconsistencies notification (Now instance id and offending command title are displayed)
* Changed: Optimization in wakeup/sleep logic (better error management and notifications)
* Bugfixing: Instance parameters related to commands (instanceTitle, instanceCmd) were not poperly updated when edited both in Advanced Dialog Box and in Command Add/Edit/Delete dialog box; fixed
* Bugfixing: Network connection/disconnection logic; fixed
* Bugfixing: In Advanced Dialg Box, export of command not in list caused SEGFAULT; fixed

==1.2==

* New: Release Candidate to Extras (1.0.53 -&gt; 1.2)
* Changed: Release Candidate to Extras (1.0.53 -&gt; 1.2)
* Bugfixing: Release Candidate to Extras (1.0.53 -&gt; 1.2)

==1.0.53==

* New: Parameter Variables substitution for using with scripts which holds the current width of QBW widget ($QBW_WIDTH); useful for dynamic recalculation of click hotspots 
* New: Parameter Variables substitution for using with scripts which holds the current height of QBW widget ($QBW_HEIGHT); useful for dynamic recalculation of click hotspots
* New: Parameter Variables substitution for using with scripts which holds the exit status of the last previous executed command ($QBW_PREVIOUS_EXIT_STATUS)
* New: Added new Network Connection Event condition (NETWORK__PASSTHROUGH) which will trigger the execution of command at every Network Related event. Management of the connection event status will be completely delegated to the command through $QBW_IS_CONNECTED and $QBW_EXEC_REASON==&quot;QBW_CONNECTION_EVENT&quot; Parameter Variables substitution.  
* Changed: Optimized &quot;cancel on exec in progress&quot; logic   
* Bugfixing: Some network connection status change issues; fixed

==1.0.52==

* New: In Command and Instance import in Advanced Settings and Tools Dialog Box, command title is now checked for existence, if existent &quot;+&quot;s are appendend till name is unique  
* New: In Add/Edit Command Dialog box, command title is now checked for existence, if existent, user is now asked for unique name  
* Changed: -   
* Bugfixing: Both in Settings and in Advanced Settings and Tools Dialog Box, Command Selection button was not correctly re-populated after operations on commands list (add/delete/import); fixed

==1.0.51==

* New: Added Reset/Truncate Logfile action to Logger Verbosity Button in Advanced Settings and Tools Dialog Box
* Changed: -
* Bugfixing: -

==1.0.5==

* New: Possibility to directly modify the &quot;rememberMe&quot; parameter from the output of the executed command (without using the DBUS interface which is much slower) for using with scripts which need to hold/manipulate status or persistency information. Just echo the following string (which will not be displayed) as output of your command &quot;QBW_REMEMBER_ME(&lt;content to be remembered&gt;)&quot; no angle brackets; escape &quot;close round bracket&quot; like this &quot;\)&quot; to store it as &quot;)&quot; 
* Changed: Extended warning message in case of inconsistent Pango Markup Language output (&quot;QBW Warning! Possible Pango Markup Language inconsistent/unterminated Tag!&quot;)   
* Changed: Extended warning message in case of inconsistent/non-UTF-8 output in TestDrive output Buffer (&quot;QBW Warning! Expected/Shown Command Output mismatch. Possible charset different from UTF-8!&quot;)   
* Bugfixing: QBW re-enable on double-click logic bugged; fixed

==1.0.4==

* New: Implemented the possibility to have the Progress Animation displayed at widget click X,Y coordinates; with relevant configuration parameter &quot;progressAnimationAtClickXY&quot;   
* New: Implemented the possibility to hide the background Canvas on click both for Beecons and Snippets with relevant configuration parameter &quot;hideClickCanvas&quot;   
* Changed: Some optimizations in QBW at startup, expecially for instances with execute @startup flag; should speed up widget appearance
* Changed: Checks for obsolete instances in configuration file moved to Advanced Settings and Tools Dialog; check is performed upon entering. 
* Changed: Some optimizations in progress icon animation logic
* Changed: Some optimization in multiple-clicks management
* Bugfixing: Command output for Test Drive in Advanced Settings and Tools Dialog still buggy and not displaying complete output; fixed
* Bugfixing: Logic for multiple clicks count was a bit bugged; fixed
* Bugfixing: DBUS Signal emission at end of command execution was misplaced ; fixed
* Bugfixing: Logging info incorrect for timeout seconds count function GetSeconds; fixed

==1.0.3==

* New: Added button to change Logger Verbosity in Advanced Settings and Tools Dialog Box
* New: Implementation of Command and Results image orientation angle (w/ relevant configuration parameters)
* New: Added edit box in Settings Dialog for &quot;rememberMe&quot; value. Can now be initialized also from widget and not only via DBUS method  
* New: Parameter Variables substitution for using with scripts which holds the number of times a QBW was pressed/clicked: $QBW_CLICKS_COUNT; useful for handling single/double/triple... clicks and behave accordingly (Tested up to 12 ... :) )
* New: Parameter Variables substitution for using with scripts which hold X and Y coordinates where a QBW was pressed/clicked: $QBW_CLICK_X, $QBW_CLICK_Y; useful for handling different arbitrary/dynamic hotspots on widgets via launched shell scripts 
* Changed: Now QBW instances with status disabled/minimized (black small 60x60 inactive sleeping bee icon) are enable again on double-click and non on single-click
* Bugfixing: TestDrive in Advanced Settings and Tools Dialog Box was not fetching the whole command output; fixed   
* Bugfixing: Typos in &quot;Edit Cmd&quot; Dialog Box title; fixed   
* Bugfixing: Not proper memory deallocation of some strings parameter in Settings Dialog; fixed    

==1.0.2==

* Source Modules: Changed architecture of source module ... now split into single modules according to QBW subfunctions ... expect some sneaky regressions!!!
* New: Application Logging Subsystem to log file, with different levels of verbosity (v0 v1 v2 v3 v4 from minimum verbosity to maximum) and possibility to enable/disable/reset logging and log file 
* New: Parameter Variables substitution for using with scripts which holds Network Connection status: $QBW_IS_CONNECTED (true=QBW Instance is connected to the network (either WLAN or GPRS) false=QBW Instance is NOT connected to the network (either WLAN or GPRS))
* Changed: In Settings Dialog Box changed &quot;Custom(&quot;)&quot; to &quot;Custom(Secs)&quot; for custom timer label
* Changed: In Advanced Settings and Tools Dialog Box it's now possible to scroll dialog both vertically and horizontally. So all buttons will be accessible even if you have big fonts 
* Changed: In Advanced Settings and Tools Dialog Box added more checks for Import Instance/Command Data (It should now be more restrictive on Import Data consistency/congruency)
* Bugfixing: System Proxy fetching logic bugged; fixed
* Bugfixing: reset_rearm_timer DBUS method call was not disabling timer when timer update was disabled; fixed
* Bugfixing: set_param_uint32 DBUS method call had problems if values = 0; fixed

==1.0.0.1==

* New: Nothing - Release Candidate to Extras (0.1.9.9 -&gt; 1.0.0.1)    
* Changed: Nothing - Release Candidate to Extras (0.1.9.9 -&gt; 1.0.0.1)
* Bugfixing: Nothing - Release Candidate to Extras (0.1.9.9 -&gt; 1.0.0.1)

==0.1.9.9==

* New: Added &quot;On Sight&quot; Update Policy (If flagged, content is not updated if widget is out of sight (on other desktop) or if display is locked or in stand-by)   
* New: Parameter Variables substitution for using with scripts which holds &quot;On Sight&quot; or &quot;Out Of Sight&quot; status: $QBW_ON_SIGHT (true=QBW Instance is &quot;ON SIGHT&quot;, that is widget is on current desktop and display is not locked or on stand by. false=QBW Instance is not on current desktop and visible or display is off or on stand by)
* New: DBUS method &quot;is_on_sight&quot; which returns true (QBW Instance is &quot;ON SIGHT&quot;, that is, widget is on current desktop and display is not locked or on stand by) or false (QBW Instance is not on current desktop and visible or display is off or on stand by)
* Changed: Optimized usability of settings for Widget Width and Height
* Changed: Optimized progress animation logic for visibility when instance not On Sight
* Bugfixing: - 

==0.1.9.8==

* New: Implemented per-instance progress animation with customizable number of frames, timer, position and possibility to have it shown or hidden (Now every instance can have its own progress animation) + Settings for Hide/Show, frames #, timer, position and basename. 
* Changed: Extended error message text to all DBUS methods
* Changed: Now when command or script do not return any output no more &quot;No Output&quot; text gets printed inside the widget
* Bugfixing: Added error message if non existing parameter is supplied to all DBUS methods &quot;set_param_*&quot; 
* Bugfixing: Under certain conditions HotSpot Index was not properly reset in case update policies prevented execution of script from happening. Fixed.

==0.1.9.7==

* New: -
* Changed: Line width for widget contours FX when widget pressed set to 1px    
* Bugfixing: Reentrancy issues for DBUS Monitor. Fixed
* Bugfixing: &quot;If you enter a long name for the title, the right part of the prefs gui isn't visible anymore and you can't scroll to the now hidden gadgets!&quot;. Fixed. Area is now scrollable also horizontally.
* Bugfixing: Issues with positioning of small widgets with respect to bottom and right margins. Fixed. 

==0.1.9.6==

* New: REVOLUTION!!! :) Implementation of multiple (9 = grid 3x3) Hot Spots to click on the widget. Clicked Hot Spot Index Position can then be passed to the executed script via Parameter Variables Substitution $QBW_HOTSPOT_PRESS (0=Not Pressed or other update policy,1=Top Left,2=Top Center,3=Top Right,4=Center Left,5=Center,6=Center Right,7=Bottom Left,8=Bottom Center,9=Bottom Right)
* New: Parameter Variables substitution for using with scripts which hold Proxy related information: $QBW_HTTP_PROXY, $QBW_HTTPS_PROXY, $QBW_FTP_PROXY, $QBW_SOCKS_PROXY, $QBW_RTSP_PROXY (In the format &lt;host:port&gt;)
* New: Parameter Variables substitution for using with scripts which hold Proxy related information: $QBW_IGNORE_HOSTS_PROXY (In the format &lt;host1;host2;host...&gt;)
* New: Parameter Variables substitution for using with scripts which hold proxy related information: $QBW_AUTO_CONFIG_PROXY_URL
* New: Parameter Variables substitution for using with scripts which hold status or persistency information stored in configuration via DBUS method call set_param_string string:&quot;rememberMe&quot; string:&lt;rememberthis&gt; : $QBW_REMEMBER_ME. Useful, for example, for remembering values like counters across subsequent command executions. 
* Changed: Logic to purge configuration settings of non-existent QBW instances from configuration file. (Check/Purge performed at every entrance in Settings dialog)    
* Bugfixing: Reentrancy problem with Settings dialog box. At times, in case of laggy interface, 2 or more instances of dialog were opening. Fixed. 
* Bugfixing: Incomplete unreferentiation of DBUS resources. Fixed. 
* Bugfixing: Incomplete unreferentiation of callback functions for async command execution and timers. Fixed. 
* Bugfixing: Incorrect logic for updating when widget desktop was active/on. It was updating also when active widget's desktop was swept off. Now updates content only if &quot;Update on Desktop&quot; is TRUE and Widget's Desktop is being swept on. Fixed. 

==0.1.9.5==

* New: Added supplementary progress images/icons (cycle is &quot;queen-beecon-progress[0-3].png&quot;) searching logic in directory storage in this order 1) &quot;~/Mydocs/.images/queen_beecon_dir&quot; 2) &quot;~/.queen_beecon_dir&quot;   
* New: Added button in Command Edit dialog to add instance only commands to the list of stored commands   
* New: Implementation of following DBUS methods: get_current_results_text (Get current content of results text) 
* New: Parameter Variables substitution for using with scripts which holds the current content of results text ($QBW_CURRENT_RESULTS_TEXT=Current content of results text)
* Changed: Default shape for Beecons is now rectangle. Hexagonal cell will be only shown when pressed  
* Changed: Shadow/Light effects on widget surface, either when pressed or not, are now fixed in size (~4px)  
* Changed: Changed some logic in simple Command Edit dialog box  
* Changed: After instance imported, now advanced dialog box closes and reverts back to settings with all parameters reloaded
* Changed: Changed Warning and Information notification in Advanced Settings to display hildon_banner*  
* Changed: Changed DBUS connection acquisition for DBUS Monitor.  
* Bugfixing: Refined and fixed logic for DBUS Monitor initialization and deinitialization   
* Bugfixing: Changed and fixed logic for handling/displaying Exit Code if error spawning asynchronous command  
* Bugfixing: New asynchronous execution logic was not releasing file handles. Fixed

==0.1.9.4==

* New: Ability to execute scripts by intercepting specific DBUS broadcasted signals/methods issued by the system or other applications + Relevant configuration parameters (Ex.keyboard lock, slide open/close, ecc.)   
* New: Parameter Variables substitution for using with scripts triggered by intercepted DBUS broadcasted signals/methods ($QBW_EXEC_REASON=QBW_DBUS_MONITOR, $QBW_DBUS_VERBOSE_OUTPUT=Verbose Output see WIKI)
* Changed: Changed icons for displaying command execution in progress (shown when script in progress and hidden on execution completion)
* Changed: Package installation now performs an automatic restart of hildon-home process  
* Bugfixing: Memory reallocation bugs fixed in new async command execution logic  

==0.1.9.3==

* New: Added icon for displaying command execution in progress (shown when script in progress and hidden on execution completion) 
* New: Implementation of Asynchronous Non Hildon-Home blocking command execution (Test Drive is still Synchronous for command timing evaluation purposes)  
* Changed: -  
* Bugfixing: Memory reallocation bugs fixed for all string values management in settigs dialog box  

==0.1.9.2==

* New: Added custom timeout in seconds for periodic update, not just predefined list of values
* Changed: Restyle in settings configuration for Update Policies, Fonts &amp; Colors Buttons  
* Bugfixing:  

==0.1.9.1==

* New: Parameter Variables substitution usable by script (Ex. Own Instance ID, Reason for updating content)
* New: Implementation of Command and Results text orientation angle (w/ relevant configuration parameters)
* New: New extended color dialog for background and foreground colors (Old color selection deprecated; backward compatibility for instances exported from previous releases is guaranteed and settings upgraded as necessary)
* Changed: Restyle in settings configuration for Beecon Command Exit Statuses area &amp; Command Title/Results Settings area + changed color settings appearance  
* Bugfixing: Disabled instance (icon) wasn't correctly drawn on startup; fixed 
* Bugfixing: Memory deallocation bug for &gt;=3 Exit Status image file beecon_idxge2_ImgFilename; fixed 

==0.1.9==

* New: New extended font dialog for command and results labels (Old font selection deprecated; backward compatibility for instances exported from previous releases is guaranteed and settings upgraded as necessary)
* Changed: Due to new font settings implementation, exported instances from this release onward will have their fonts reset to command=&quot;Nokia Sans bold italic 12&quot; results=&quot;Nokia Sans bold 12&quot; when imported in previous releases  
* Bugfixing: Some fixing and cleanup in package install/uninstall 

==0.1.8-testonly-PR1.2==

* WARNING This release is for testing purposes only as PR1.2 upgrade brought some instabilities which need forensics!!!
* New: Implementation of DBUS methods: reset_rearm_timer
* New: QBW is now integrated into the N900 system backup/restore features according to standard specifications as better described in SDK &quot;Using Backup Application&quot; http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Generic_Platform_Components/Using_Backup_Application#Custom_back-up_locations   
* Changed: Completely revised Timer logic and reset/re-arming for widget periodic auto-update 
* Changed: Visual feedback when Beecons pressed; now rectangle gets drawn as well as cell (better chance of noticing feedback for canvas-less Beecons)
* Bugfixing: Fixed segmentation fault if dbus get_position method called and dbus_method_monitor turned on 

==0.1.7-PR1.1.1==

* NOTE: Special Build for PR1.1.1
* New: Implementation of Widget Instance visibility toggle and configuration parameter (for showing or hiding the widget also via DBUS)
* New: Implementation of following DBUS methods: dbus_method_monitor, show, hide, wakeup, sleep, update_content, update_layout, exec, set_param_string, set_param_int32, set_param_uint32, set_param_double, set_param_boolean, get_param string, set_position, get_position, get_exit_status
* New: Implementation of following DBUS signals: sig_content_updated
* Changed: Enhanced DBUS implementation for Widget2Widget &amp; System2Widget Inter Process Communication
* Changed: Changed default values for some Update Policies in new QBW instances (updOnStartup now defaults to FALSE; updOnDesktop now defaults to FALSE) to prevent bugged Beecons from freezing hildon-home even after restart
* Respect: To querty12@talk.maemo.org Many, many, many, many, many thanks for supporting QBW IPC implementation 

==0.1.6==

* New: Simple DBUS implementation for Widget2Widget &amp; System2Widget Inter Process Communication
* New: Added Widget Instance ID in Settings Dialog Title
* Changed: Compiled Vs. PR1.2

==0.1.5==

* Changed: Thanks &quot;qwerty12&quot; disabled automatic capitalization for all text entry fields

==0.1.4==

* New: Implementation of Widget Instance disabling and minimizing on desktop (click on minimized icon on desktop will wakeup and maximize instance)
* New: Implementation of image/icon scaling function for all images used (Zoom In/Out from 5% to 200% or Fit to Widget Width/Height)
* Bugfixing: In Advanced Maintenance Dialog Box several bugfixes for Import/Export commands and instances,

==0.1.3==

* New: Added possibility to show or hide both snippet's image/text and beecon image/text. This way you can have two images and two text placeholders on widget, for more flexibility in graphic layout
* New: Added supplementary images/icons directory storage &quot;~/Mydocs/.images/queen_beecon_dir&quot;. If images/icons without path are not found here then they are searched in &quot;~/.queen_beecon_dir&quot;. For easier population via USB of BLUETOOTH File Services.
* New: Added functions in Advanced Maintenance Dialog Box: instance export/import w/ checksum, command export/import w/ checksum, command update with current Test Drive buffer, clipboard operations
* New: Added some confirmation dialogs for critical operations and some notification messages
* New: Added possibility to use different images/icons for Command Exit Statuses &gt;=3 . Basically the Exit Status value will be appended to a fixed image filename and relevant image will be loaded (ex. &quot;queen-beecon-status.png.3&quot; ... 4 ... 5 ...)
* New: Basic Images/Icons for Snippets and Beecon Statuses incorporated into .deb package and installed inside canonical hildon hicolor 48x48 directory
* Bugfixing: Fixed size and positioning of controls in Advanced Maintenance Dialog Box
* Bugfixing: Removed directory purge in &quot;rmnobraco.sh&quot; script
* Bugfixing: Checked and removed some memory leaks and resources deallocation (were causing hildon-home desktop to crash on instance disposal)
* Changed: Restyle and lots of optimization in Settings Dialog Box UI layout
* Changed: Widget's fill gradients when background is enabled
* Changed: Restyle in Advanced Maintenance Dialog Box interface, now more functional and user friendly
* Changed: When opening Advanced Maintenance Dialog Box, command in current instance is automatically copied to the TestDrive command text box
* Changed: Advanced Maintenance Dialog Box changed font to Monospace Bold for the three text views for inproved visibility

==0.1.2==

* New: Implemented Pango Markup Language support for both Command Title and Output Results text ([http://maemo.org/api_refs/5.0/5.0-final/pango/PangoMarkupFormat.html Description HERE])
* New: Basic implementation of Advanced Maintenance Dialog Box (For future use like export/import ...)
* New: Advanced Maintenance Dialog Box: TestDrive mode (to display raw output of predefined or user-defined commands)
* Changed: Had to change description in debian &quot;control&quot; file (Testers Karma-- me for this)
* Changed: Changed logic in settings dialog box, now it doesn't redraw unless strictly necessary and just content and controls which need it. Also quicker transition to main settings when back from child dialog boxes.

==0.1.1==

* Changed: Visual feedback for widget pressure is now also provided for Canvas-less beecons and snippets (button down canvas is displayed when pressed)
* Changed: Changed default size for newly created instances (50px=&gt;100px)
* Changed: Housekeeping for dead/disposed instances is now run on each instance initialization and on class termination (should be more accurate now)
* Bugfixing: Writing/Reading configuration file inconsistencies fixed
* Bugfixing: Correction in images (status/results/title) hide/show logic. If images displayed and then commented out, they kept showing! - FIXED

==0.1.0==

* WARNING! Architecture and readibility of code has been heavily revised for implementing the new functionalities...
* WARNING! Please bear with possible regressions and report bugs to the Maintainer
* New: Implemented the possibility to hide the background Canvas both for Beecons and Snippets
* New: Implemented the possibility to use different icons/images for Beecon's status output instead of just specific background color (Ex. 0=green led, 1=yellow led, 2=red led) (with high positioning versatility)
* New: Implemented the possibility to use icons/images instead of text both for Beecons/Snippets command title and output (with high positioning versatility)
* New: Implemented creation and management of private general purpose directory &quot;~/.queen_beecon_dir&quot; for widget (images/icons/etc.)
* New: Implemented &quot;Update on widget Startup&quot; option for every instance
* New: Implemented basic management/deletion of dead/disposed instances configurations data from config file
* New: Added button &quot;Save &amp; Run&quot; settings dialog which saves settings and contextually triggers command execution
* Changed: Widget Layout is now nicer with better gummy &quot;button-press&quot; like visual feedback using Gradient fill
* Changed: Button Save in settings dialog does not trigger a command execution any more
* Changed: Now command do not get updated after getting back from settings dialog (even after &quot;save&quot;); relevant event only drives updates (manual, timer, desktop, network)

==0.0.3==

* Bugfixing for widget resize(dimensions) and positioning
* Bugfixing for general network related behaviours and content update, even after settings change
* Bugfixing for Command Edit and blank command selector after returning from command edit dialog
* Changed Exit Code output for command from !?0000xxxx to !?xxxx
* Changed Command Output is returned, if any, even if Exit Code less then 0

==0.0.2==

* First Extras-devel release

==0.0.1==

* Initial Basic Queen BeeCon Implementation

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Questions and answers</title>
    <id>2738</id>
    <revision>
      <id>41472</id>
      <timestamp>2011-01-27T15:53:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>better N900 link</comment>
      <text xml:space="preserve">This is a compilations of questions and answers, mostly about the [[Nokia N900|N900]] and [[Open development/Maemo roadmap/Fremantle|Maemo 5]]. Most of these questions came from the talk.maemo.org thread [http://talk.maemo.org/showthread.php?t=32513 New User or enquirer start here].

You can also read [[User_FAQ|User FAQ]].

=General software=
===Can the N900 record sound files (like an mp3 recorder)?===
Not out of the box. Install [http://maemo.org/downloads/product/Maemo5/recorder/ Recorder] for [[Open development/Maemo roadmap/Fremantle|Maemo 5]] or  [http://maemo.org/downloads/product/Maemo5/recaller/ Recaller]. The latter can also (automatically) record all kind of calls (be it over phone or Bluetooth) or record from FM radio etc. etc.

===Is it true that 'rapier' Bible software will run on an N900 out of the box? Is it very hard to achieve?===
Not out of the box. Actually Rapier for Maemo 5 is in the [http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/rapier/1.0.5-3/ Extras-Testing queue] and hopefully we'll see it in Extras very soon.

===Please describe the simplest, most user friendly and most function-rich ways an N900 can view and edit office type documents so I can choose between them.===
I guess this would be the commercial Documents To Go software that exists for a bunch of mobile phones already. Viewing documents is free, editing documents requires you to pay for the software (the Android version is about 20 €, if I recall correctly, so the Maemo version should be priced similarly).

===The N900 manual seems to imply I can't add or edit playlists in the media player: does this mean I can't categorise my music by type (classical, jazz, rock) to play according to my mood?===
The Media Player provides &quot;Genres&quot; playlists automatically based on the metadata of the audio files. The community application [http://maemo.org/packages/view/mussorgsky/ Mussorgsky/] allows you to edit the metadata in the device itself. Currently in extras-devel (alpha-ish) and hopefully available in Extras soon.

===If I buy a N900 with qwerty keyboard, how do I type &quot;é&quot; or &quot;à&quot;?===
There's a symbol menu you can bring up to enter any of these. Otherwise, some N900 have particular keyboards with dedicated buttons for accented letters (e.g. italian N900s).

===With the exception of handwriting recognition, do I need the stylus to do anything on the N900? If so, where? How finger/touch friendly is the device?===
Using normal Maemo apps you should be ok without stylus. There is no handwriting recognition on the device.

===Where should I download apps?===
Please see the [[Downloading apps]] wiki page.

===Will the N900 be upgradeable to Maemo 6?===
At the moment no announcement about this has been made by Nokia.

=Community=
===Why are there are two different login systems for talk.maemo.org and the other maemo.org sites like Development, Community etc.?===
This is an issue that's being worked on. Historically, the maemo.org sites run on different servers, hosted by different people, and only share the same look. Single sign-on is to be expected within the next few months, though.

=Networking, internet and telephony=
===As it is 'always connected' does the N900 consume data just 'staying in touch' even when I'm not using it? If so, how much?===
Not a lot. It really depends on what you're running that consumes data in the background. E-Mail or instant messaging only consume a few kBytes when idle. There is a [http://maemo.org/downloads/product/Maemo5/personal-gprs-mon/ GPRS monitor applet] with which you can exactly see how much data is transferred.

===In the browser, does the size of the text adjust depending of the &quot;importance&quot; of the text, like on safari mobile (i.e. on talk.maemo.org, the discussions are written bigger than the &quot;edit&quot;, &quot;quote&quot;, &quot;join date&quot; etc, and I don't need to zoom at all to read the forum)===
No, sites are displayed as they were intended by the designer. They appear as on your desktop PC.

===All my data - pics, music and documents - is on a network drive accessed via wifi, so I can access it whichever computer I'm on. I'd assumed that an N900 can also access them - can it?===
If you have a uPnP/DNLA-Server, it will show up in the Media Player and you can then access all your media for replay/viewing.

===Will the device give a summary of things upon a single slide, like number of missed phone called, number of unread SMSes, unread emails, upcoming appointments?===
No. But there is probably nothing technically stopping a developer creating such a widget.

===What happens when I'm listening to music and a phone call comes in?===
The music is paused, the device switches to the phone app and the ringtone sounds. After ending the call, it resumes music playing.

===How does the device handle SMS?===
You can configure the message alerting in various ways. By default, there's a short vibration as a message incomes. Next time you turn on the display, the application switcher in the top left corner will glow to remind of some events. When selecting the switcher, it will show the overview of current programs and events/reminders: this includes missed calls and received messages.

===Will it support OTA syncing of Google contacts, calendar?===
It supports the OTA sync of Google Contacts and Calendar using the Mail for Exchange mechanism.

===What is the length of the A/V cable that comes in the box?===
The cable is a Nokia CA-75U and is 150 cm long.

===Is there an app to download Youtube videos for offline viewing?===
Actually there's [http://maemo.org/downloads/product/Maemo5/zoutube/ Zoutube] in Extras for doing this. It can browse/show/download Youtube videos.
There's also MyTube, but it's still in Extras-Devel.


[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Questions for Nokia</title>
    <id>209</id>
    <revision>
      <id>38611</id>
      <timestamp>2010-09-15T06:43:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/203.177.74.139|203.177.74.139]] ([[User talk:203.177.74.139|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">This page collects questions from the community on the availability of drivers, hardware support and documentation and other resources associated with elements of the Nokia internet tablets.

== Hardware support questions ==

===Status of PowerVR MBX driver [2] and OpenGL implementation=== 
We have PowerVR MBX chips sat in our N8x0 machines, doing, afaict, not a lot. It would be nice if it worked (think OpenGL loveliness in games, and I would hope some frivolous but eye catching snazzy desktop features - prettier UI = more publicity = more sales; perhaps...). There are Linux 2.6.x kernel drivers available, though not for the right kernel version and for the OMAP2430 rather than OMAP2420. —Simon Pickering
::Deadline for answer: [[Maemo Summit 2008|maemo summit]].--[[User:qgil|qgil]] 18:57, 11 June 2008 (UTC)
:::How does the latest reply to this [https://bugs.maemo.org/show_bug.cgi?id=1028 bug] affect this question? --Simon Pickering (lardman)
::::Daniel has very well indicated what are the plans and reasons until Diablo. The deadline above is to answer about the future.--[[User:qgil|qgil]] 05:42, 20 June 2008 (UTC)

===Status of DSP SBC task===
In the roadmap there used to be (what I interpreted as) mention of implementing a DSP task to handle encoding audio for A2DP use (where A2DP stands for Advanced Audio Distribution Protocol and is a Bluetooth protocol for sending data to Bluetooth stereo headsets [1]). SBC stands for subband codec, which is the default encoding method required by A2DP hardware. At the moment this encoding must be carried out by the ARM in software, but if the task could be offloaded to the DSP it would free up the ARM to do other things (such as decoding video better). —Simon Pickering
::We have a working (but not-realtime yet) [https://garage.maemo.org/projects/dsp-sbc/ DSP task] for this, so not a major priority for me at least --Simon Pickering (lardman) 17.05 19 June 2008 BST.
:::Working real-time now, and with ARM @400MHz (DSP @133MHz) [https://garage.maemo.org/projects/dsp-sbc/ DSP task] is here. Integration with media player, etc., is next step... --Simon Pickering (lardman) 08.58 16 July 2008 BST.

===Status of IVA===
This is part of the OMAP2420 and stands for Imaging and Video Accelerator chip. Its abilities are described at the end of this document [3], in the specifications. It looks like it could do some useful acceleration. There is however no real information available (from Ti or elsewhere) about what it is, and how to program it, though there are some hints, e.g. [4]. The DSP gateway (which is the bridge software between the ARM and the DSP) has been expanded to allow it to interface with the IVA, but the patches say that there's no driver for the IVA itself [5]. Is this being pursued (as there's little we can do about it as we have no information) and if not, why not? —Simon Pickering
:: I understand that the IVA is some specialized HW plus an ARM7TDMIE core. Why is it not being used? Lack of time/it doesn't work very well/no-one wanted to write code for it/etc.? --Simon Pickering (lardman) 13.25 22 June 2008 BST.

===Status of AGPS support===
We have heard that there is AGPS software floating around inside Nokia. Is there any idea when we are likely to see this, and what method will it use to supply the data to the GPS chipset? Will it be possible for us to feed it data, i.e. will there be an API that we can access? —Simon Pickering
::This seems to be public knowledge by now. --[[User:qgil|qgil]] 18:57, 11 June 2008 (UTC)
:::Can we have an API so we can plug our own location service in (GeoClue anyone?) to provide the initial location for the SUPL server? --Simon Pickering (lardman) 09.00 16 July 2008 BST.
:::: I'll ask when the guys come from holidays. I know location API will improve but let me find out the details. In the meantime, have you tried knocking the door at http://www.nokia.com/betalabs/agps-tablet ? Direct access to location developers.--[[User:qgil|qgil]] 09:12, 16 July 2008 (UTC)

===Wifi modules===
Is there any work being done to make binary only wifi modules open completely (definitively)? Or is it possible for Nokia to supply it in object form or at least updated as the kernel API changes over time? —Nick Loeve
::We can't give much details at this point, but something is going on and it should meet at least the basic community expectations. A safe deadline for an answer would be the [[Maemo Summit 2008|maemo summit]].--[[User:qgil|qgil]] 18:59, 11 June 2008 (UTC)

===Video out===
Is there any reason video out is not supported? Or is it already and we just don't know about it? --Simon Pickering (lardman) 10.26 6 August 2008 (BST)
:There should be tablets supporting video out for the presentations in the Maemo Summit. Let's ask there the guys providing them.  ;) --[[User:qgil|qgil]] 09:51, 6 August 2008 (UTC)
::Just to clarify, I was asking about the availability of video out through the 3.5mm jack, were you also referring to this Quim? --[[User:lardman|lardman]] 11.25 6 August 2008 (BST)
:::Ah, through the jack. Anyway, let's ask them. I'm about to start holidays and then I will have 15 days for the OSiM &amp; Summit sprint, so unless someone else takes the initiative I won't have time to dig on this.--[[User:qgil|qgil]] 19:47, 6 August 2008 (UTC)

== Open/closed software status questions for Nokia ==
===Mapping Openness===
Will maemo core provide list of maemo components with their open/close status + reasons for each component why it is closed. —hrw
::Now this is an accepted task in the 100 Days action plan. See [[Task:Mapping openness]].

===tablet-browser=== 
Why is the tablet-browser-ui closed? —[[User:generalantilles|GeneralAntilles]] 20:38, 25 June 2008 (UTC)
:Answered at [[Why_the_closed_packages#Specific_reasons_for_packages]] (it will be open in Fremantle).--[[User:qgil|qgil]] 07:39, 6 October 2008 (UTC)

===Bookmark manager engine===
I want to programmatically access and manipulate bookmarks. Why is the [http://www.webwizardry.net/~timeless/10/licensing-overview.html bookmark manager engine closed]? —Iñigo Illán Aranburu

===EAP hardware/codec DSP headers===
I would like to be create a sink which can output audio directly from the DSP (in fact I'd like to move towards an OpenMAX style setup and be able to string decoders/encoders and sinks together). Could we have the headers/example code to allow us to use the EAP_* functions? -[[User:lardman|lardman]] 11:05, 16 August 2008 (BST)

== Bug/bug tracker related questions for Nokia ==

===Thumb keyboard and text cell renderers===
When will the thumb keyboard bug with text cell renderers (to edit table cells, e.g. in maemopad+ or todo) be fixed? how are priorities assigned inside of nokia to such bugs? —Thomas 'thp' Perl
::Bug number/URL, please?--[[User:qgil|qgil]] 19:12, 11 June 2008 (UTC)
:::I believe it's [https://bugs.maemo.org/show_bug.cgi?id=1958 bug #1958]. —[[User:generalantilles|GeneralAntilles]] 14:08, 17 June 2008 (UTC)

===Security bugs===
When will the bugs tagged 'security' in bugzilla be acknowledged and fixed? Some have been open since early 2007 without even an acknowledgement from the maintainer. I ask Nokia because, to date, all these bugs are in Nokia-contributed code. Will responsiveness to security issues ever become a priority at Nokia? Will there, for example, ever be a public security contact for Nokia products?  Will Nokia (or the security@maemo.org staff, which today consists entirely of Nokia people) provide/produce a list of all upstream packages (and their version numbers) for ITOS versions to facilitate tracking of security issues in upstream code? —Olle Segerdahl
::The information available about security is located at http://maemo.org/community/security.html . If you need to know more or you think there should be additional information in that page please use the contact provided there.--[[User:qgil|qgil]] 19:12, 11 June 2008 (UTC)
::Fyi http://maemo.org/community/security.html has been updated after the Maemo 4.1 / OS2008 Feature Upgrade release.--[[User:qgil|qgil]] 09:32, 25 June 2008 (UTC)

== Documentation related questions for Nokia ==

===dmse and bme=== 
Is it likely that some documentation (or code) will be made available in the future for the dsme and bme components for power/battery/charging/device control on the tablets? 

===Serial interface===
Is it possible to document the serial pins for the N8x0 devices?
:: The pins on the n800 are somewhat documented by keesj at [http://maemo.org/community/wiki/howto_kernelcompilation/ the old wiki] --[[User:trickie|trickie]] 14:05, 17 June 2008 (UTC)

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Questions for Nokia</title>
    <id>209</id>
    <revision>
      <id>38611</id>
      <timestamp>2010-09-15T06:43:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/203.177.74.139|203.177.74.139]] ([[User talk:203.177.74.139|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">This page collects questions from the community on the availability of drivers, hardware support and documentation and other resources associated with elements of the Nokia internet tablets.

== Hardware support questions ==

===Status of PowerVR MBX driver [2] and OpenGL implementation=== 
We have PowerVR MBX chips sat in our N8x0 machines, doing, afaict, not a lot. It would be nice if it worked (think OpenGL loveliness in games, and I would hope some frivolous but eye catching snazzy desktop features - prettier UI = more publicity = more sales; perhaps...). There are Linux 2.6.x kernel drivers available, though not for the right kernel version and for the OMAP2430 rather than OMAP2420. —Simon Pickering
::Deadline for answer: [[Maemo Summit 2008|maemo summit]].--[[User:qgil|qgil]] 18:57, 11 June 2008 (UTC)
:::How does the latest reply to this [https://bugs.maemo.org/show_bug.cgi?id=1028 bug] affect this question? --Simon Pickering (lardman)
::::Daniel has very well indicated what are the plans and reasons until Diablo. The deadline above is to answer about the future.--[[User:qgil|qgil]] 05:42, 20 June 2008 (UTC)

===Status of DSP SBC task===
In the roadmap there used to be (what I interpreted as) mention of implementing a DSP task to handle encoding audio for A2DP use (where A2DP stands for Advanced Audio Distribution Protocol and is a Bluetooth protocol for sending data to Bluetooth stereo headsets [1]). SBC stands for subband codec, which is the default encoding method required by A2DP hardware. At the moment this encoding must be carried out by the ARM in software, but if the task could be offloaded to the DSP it would free up the ARM to do other things (such as decoding video better). —Simon Pickering
::We have a working (but not-realtime yet) [https://garage.maemo.org/projects/dsp-sbc/ DSP task] for this, so not a major priority for me at least --Simon Pickering (lardman) 17.05 19 June 2008 BST.
:::Working real-time now, and with ARM @400MHz (DSP @133MHz) [https://garage.maemo.org/projects/dsp-sbc/ DSP task] is here. Integration with media player, etc., is next step... --Simon Pickering (lardman) 08.58 16 July 2008 BST.

===Status of IVA===
This is part of the OMAP2420 and stands for Imaging and Video Accelerator chip. Its abilities are described at the end of this document [3], in the specifications. It looks like it could do some useful acceleration. There is however no real information available (from Ti or elsewhere) about what it is, and how to program it, though there are some hints, e.g. [4]. The DSP gateway (which is the bridge software between the ARM and the DSP) has been expanded to allow it to interface with the IVA, but the patches say that there's no driver for the IVA itself [5]. Is this being pursued (as there's little we can do about it as we have no information) and if not, why not? —Simon Pickering
:: I understand that the IVA is some specialized HW plus an ARM7TDMIE core. Why is it not being used? Lack of time/it doesn't work very well/no-one wanted to write code for it/etc.? --Simon Pickering (lardman) 13.25 22 June 2008 BST.

===Status of AGPS support===
We have heard that there is AGPS software floating around inside Nokia. Is there any idea when we are likely to see this, and what method will it use to supply the data to the GPS chipset? Will it be possible for us to feed it data, i.e. will there be an API that we can access? —Simon Pickering
::This seems to be public knowledge by now. --[[User:qgil|qgil]] 18:57, 11 June 2008 (UTC)
:::Can we have an API so we can plug our own location service in (GeoClue anyone?) to provide the initial location for the SUPL server? --Simon Pickering (lardman) 09.00 16 July 2008 BST.
:::: I'll ask when the guys come from holidays. I know location API will improve but let me find out the details. In the meantime, have you tried knocking the door at http://www.nokia.com/betalabs/agps-tablet ? Direct access to location developers.--[[User:qgil|qgil]] 09:12, 16 July 2008 (UTC)

===Wifi modules===
Is there any work being done to make binary only wifi modules open completely (definitively)? Or is it possible for Nokia to supply it in object form or at least updated as the kernel API changes over time? —Nick Loeve
::We can't give much details at this point, but something is going on and it should meet at least the basic community expectations. A safe deadline for an answer would be the [[Maemo Summit 2008|maemo summit]].--[[User:qgil|qgil]] 18:59, 11 June 2008 (UTC)

===Video out===
Is there any reason video out is not supported? Or is it already and we just don't know about it? --Simon Pickering (lardman) 10.26 6 August 2008 (BST)
:There should be tablets supporting video out for the presentations in the Maemo Summit. Let's ask there the guys providing them.  ;) --[[User:qgil|qgil]] 09:51, 6 August 2008 (UTC)
::Just to clarify, I was asking about the availability of video out through the 3.5mm jack, were you also referring to this Quim? --[[User:lardman|lardman]] 11.25 6 August 2008 (BST)
:::Ah, through the jack. Anyway, let's ask them. I'm about to start holidays and then I will have 15 days for the OSiM &amp; Summit sprint, so unless someone else takes the initiative I won't have time to dig on this.--[[User:qgil|qgil]] 19:47, 6 August 2008 (UTC)

== Open/closed software status questions for Nokia ==
===Mapping Openness===
Will maemo core provide list of maemo components with their open/close status + reasons for each component why it is closed. —hrw
::Now this is an accepted task in the 100 Days action plan. See [[Task:Mapping openness]].

===tablet-browser=== 
Why is the tablet-browser-ui closed? —[[User:generalantilles|GeneralAntilles]] 20:38, 25 June 2008 (UTC)
:Answered at [[Why_the_closed_packages#Specific_reasons_for_packages]] (it will be open in Fremantle).--[[User:qgil|qgil]] 07:39, 6 October 2008 (UTC)

===Bookmark manager engine===
I want to programmatically access and manipulate bookmarks. Why is the [http://www.webwizardry.net/~timeless/10/licensing-overview.html bookmark manager engine closed]? —Iñigo Illán Aranburu

===EAP hardware/codec DSP headers===
I would like to be create a sink which can output audio directly from the DSP (in fact I'd like to move towards an OpenMAX style setup and be able to string decoders/encoders and sinks together). Could we have the headers/example code to allow us to use the EAP_* functions? -[[User:lardman|lardman]] 11:05, 16 August 2008 (BST)

== Bug/bug tracker related questions for Nokia ==

===Thumb keyboard and text cell renderers===
When will the thumb keyboard bug with text cell renderers (to edit table cells, e.g. in maemopad+ or todo) be fixed? how are priorities assigned inside of nokia to such bugs? —Thomas 'thp' Perl
::Bug number/URL, please?--[[User:qgil|qgil]] 19:12, 11 June 2008 (UTC)
:::I believe it's [https://bugs.maemo.org/show_bug.cgi?id=1958 bug #1958]. —[[User:generalantilles|GeneralAntilles]] 14:08, 17 June 2008 (UTC)

===Security bugs===
When will the bugs tagged 'security' in bugzilla be acknowledged and fixed? Some have been open since early 2007 without even an acknowledgement from the maintainer. I ask Nokia because, to date, all these bugs are in Nokia-contributed code. Will responsiveness to security issues ever become a priority at Nokia? Will there, for example, ever be a public security contact for Nokia products?  Will Nokia (or the security@maemo.org staff, which today consists entirely of Nokia people) provide/produce a list of all upstream packages (and their version numbers) for ITOS versions to facilitate tracking of security issues in upstream code? —Olle Segerdahl
::The information available about security is located at http://maemo.org/community/security.html . If you need to know more or you think there should be additional information in that page please use the contact provided there.--[[User:qgil|qgil]] 19:12, 11 June 2008 (UTC)
::Fyi http://maemo.org/community/security.html has been updated after the Maemo 4.1 / OS2008 Feature Upgrade release.--[[User:qgil|qgil]] 09:32, 25 June 2008 (UTC)

== Documentation related questions for Nokia ==

===dmse and bme=== 
Is it likely that some documentation (or code) will be made available in the future for the dsme and bme components for power/battery/charging/device control on the tablets? 

===Serial interface===
Is it possible to document the serial pins for the N8x0 devices?
:: The pins on the n800 are somewhat documented by keesj at [http://maemo.org/community/wiki/howto_kernelcompilation/ the old wiki] --[[User:trickie|trickie]] 14:05, 17 June 2008 (UTC)

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Quick Widgets</title>
    <id>4576</id>
    <revision>
      <id>43303</id>
      <timestamp>2011-05-02T04:03:05Z</timestamp>
      <contributor>
        <username>greatgonzo</username>
        <id>3655</id>
      </contributor>
      <comment>/* Basic Example */</comment>
      <text xml:space="preserve">[http://maemo.org/packages/view/quick-widgets/ quick-widgets] is an application to facilitate creating and deploying home screen widgets. 

see [http://talk.maemo.org/showthread.php?t=65769 thread on talk]

== Features ==

* run Qt Quick applications as home widgets
* suspend widget when not on current home screen
* access to system calls in QML (wrapping &lt;code&gt;QProcess&lt;/code&gt;)
* fix widget to size or let content determine the size
* restore after reboot/crash
* rotate with landscape/portrait orientation
* absolutely no compilation/building required!

== Wish list ==

* base widgets
* more event bindings directly in qml

== Basic Examples ==

=== Application Launcher Button ===

&lt;source lang=&quot;javascript&quot;&gt;
import QtQuick 1.0
import quickwidgets 1.0

Rectangle {
    // Customize to your fancy
    property string buttonImage: &quot;/usr/share/icons/hicolor/64x64/hildon/general_email.png&quot;
    property string appName:  &quot;modest&quot;
    color: &quot;#552a2a2a&quot; // optionally &quot;transparent&quot;
    radius: 5
    property int imagePadding: 5

    width: childrenRect.width+imagePadding
    height: childrenRect.height+imagePadding
    id: container;

    Image {
        anchors.centerIn: parent
        id: play
        smooth: true
        source: buttonImage
        MouseArea {
            id: ma
            anchors.fill:  parent
            onClicked: {
                anim.running = true;
                dbus.run()
            }
        }
        SequentialAnimation {
            id: anim
            PropertyAnimation { target: play; property: &quot;scale&quot;; duration: 150; to: 0.9   }
            PropertyAnimation { target: play; property: &quot;scale&quot;; duration: 100; to: 1.0  }
        }
    }
    Process {
        id: dbus
        command: &quot;dbus-send --type=method_call --dest=com.nokia.HildonDesktop.AppMgr \
                 /com/nokia/HildonDesktop/AppMgr \
                 com.nokia.HildonDesktop.AppMgr.LaunchApplication string:\&quot;&quot;+appName+&quot;\&quot;&quot;

        onCompleted: {}
        onFailed: {}
    }
}
&lt;/source&gt;

=== Web Browser widget ===

&lt;source lang=&quot;javascript&quot;&gt;
import QtQuick 1.0
import QtWebKit 1.0

Item {
    // Modify these to customize

    // widget width
    width: 300

    // widget height
    height: 350

    // the url to display
    property string url: &quot;http://touch.facebook.com&quot;

    // the optimum width for the website. The page is scaled down
    // from this width to the widget's width
    property int optimal_width: 340

    // interval when to reload the page
    // setting it to 0 means never refresh
    property real reload_in_minutes: 10

    // end user mods.

    id: main
     MouseArea {
     	  anchors.right: parent.right
	  width: 30
	  height: parent.height
	  onClicked: {
          }
     }

    Rectangle {
         anchors.fill: parent
         radius: 10
	 color: &quot;gray&quot;
	 opacity: 0.6
    }

    Text {
         id: txt
         anchors.centerIn: parent
	 text: &quot;loading...&quot;
	 color: &quot;white&quot;
    }     

    WebView {
     	  id: browser
          transformOrigin: Item.TopLeft
	  property bool scaled: false

	  smooth: true
	  visible: false
          preferredWidth: optimal_width
          preferredHeight: parent.height
	  url: parent.url
          Behavior on y  { PropertyAnimation {} }
	  onUrlChanged: {
              y = 0
          }
	  onLoadFinished: {
              if (!scaled) {
                  browser.contentsScale = main.width/browser.width
                  scaled = true;
              }
              browser.visible = true
              //console.log('loaded')
              txt.z = 0
	 }
      }


     MouseArea {
     	  anchors.right: parent.right
	  width: 30
	  height: parent.height
	  onClicked: {
             var inc = main.height*0.9
             if (mouse.y &gt; main.height/2) {
                var dy = Math.min(inc,
                          browser.contentsSize.height-main.height+browser.y)
                browser.y -= dy
            } else {
                var dy = Math.min(inc, Math.abs(browser.y))
                browser.y += dy
            }
	  }

     }

     Timer {
     	   id: refresh
     	   interval: 1000*60*parent.reload_in_minutes
	   running: runtime.isActiveWindow
	   repeat: true
           onTriggered: { txt.z = 1
                           browser.reload.trigger()
			  }
     }

}
&lt;/source&gt;

== User Contributed scripts ==

* qmltube widget - [http://talk.maemo.org/showpost.php?p=995846&amp;postcount=548]
* quicklyrics - a lyrics widget for someplayer [http://talk.maemo.org/showpost.php?p=991754&amp;postcount=1]
* someplayer widget [http://talk.maemo.org/showpost.php?p=965421&amp;postcount=1]
* Tagesschau podcast widget [http://talk.maemo.org/showpost.php?p=968864&amp;postcount=44]
* system info widget - [http://talk.maemo.org/showpost.php?p=896791&amp;postcount=1]
* &lt;code&gt;/opt/quick-widgets/examples/process.qml&lt;/code&gt;

== API ==

document qmlprocess here...

== Thanks ==

venemo and the Nokia Qt labs

[[Category:Software]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Quicknote</title>
    <id>4499</id>
    <revision>
      <id>41825</id>
      <timestamp>2011-02-15T00:45:59Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <comment>/* Contribute */</comment>
      <text xml:space="preserve">Quicknote aims to be a dead simple unformatted note taking application with support for categories. The note names are taken from the first line of your note. 

== Features ==

Basic features:
* Quick access to changing of notes (and hiding of that quick access)
* Note history
* Note search

Keyboard Shortcuts
* Ctrl+Enter - toggle between fullscreen
* Ctrl+o, Ctrl+i - Show/hide extra UI features
* Ctrl+w, Ctrl+q - quit
* Ctrl+l - Copy the debug log contents

== Getting Quicknote ==

Getting Quicknote
* Maemo 4.1: Available in [[extras]] through the Application Manager.
* [http://maemo.org/downloads/product/Maemo5/quicknote/ Maemo 5] or available in extras through the Application Manager.
* [http://quicknote.garage.maemo.org/quicknote.deb Ubuntu]

Quicknote has been tested on:
* Ubuntu 10.04
* Maemo 4.1
* Maemo 5

== Contribute ==

* [https://bugs.maemo.org/enter_bug.cgi?product=quicknote File a bug]
* [https://bugs.maemo.org/buglist.cgi?query_format=specific&amp;order=relevance+desc&amp;bug_status=__open__&amp;product=quicknote&amp;content= View existing bug reports]
* [http://talk.maemo.org/showthread.php?t=29297 talk.maemo.org thread]
* [https://garage.maemo.org/projects/quicknote/ Garage Project (including code)] or [https://github.com/epage/Quicknote github]
* Learn about [[extras-testing]] and checkout the [http://maemo.org/packages/view/quicknote/ Package page (including voting)]

Quicknote is available under the [http://www.gnu.org/licenses/gpl-2.1.html GPL v2.1 license]

Icon is available for non-commercial use as part of the Human O2 icon set.

== Trouble Shooting and Reporting of Bugs ==

A very beneficial log can be found at &quot;&lt;code&gt;~/.quicknote/quicknote.log&lt;/code&gt;&quot;

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>R&amp;D mode</title>
    <id>1246</id>
    <revision>
      <id>48457</id>
      <timestamp>2012-06-15T15:56:10Z</timestamp>
      <contributor>
        <username>pali</username>
        <id>2764</id>
      </contributor>
      <comment>/* R&amp;D mode flags */ force-power-key</comment>
      <text xml:space="preserve">You can enable R&amp;D mode by passing the &lt;code&gt;--enable-rd-mode&lt;/code&gt; flag to the [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5|flasher]].

Note: This flag does not need to be passed to the EMMC image if you are flashing that as well.

You must use a Linux or a Mac OS X computer to enable R&amp;D Mode, as the Windows update wizard will not allow you to enable/disable R&amp;D Mode. Although, the Windows flasher will disable R&amp;D Mode if you use it to reflash a device that has R&amp;D Mode already enabled.

To switch back to production mode, use &lt;code&gt;--disable-rd-mode&lt;/code&gt;.

== What R&amp;D mode does ==

*&lt;code&gt;sudo gainroot&lt;/code&gt; in the console can be used, without installing anything [[root access|extra]], to gain a root shell.

*The power button turns on the tablet with a shortpress press as opposed to the longpress normally required.

*[[Nokia N900|N900]]: The keyboard backlight behind the left and right side of the keyboard flickers in response to system activity.

== R&amp;D mode flags ==

You can enable some R&amp;D mode flags (&lt;code&gt;flasher-3.5 --set-rd-flags=''&lt;flag&gt;''&lt;/code&gt;) for various features:

*&lt;code&gt;no-omap-wd&lt;/code&gt; - Disables the watchdog on the OMAP processor.
*&lt;code&gt;no-retu-wd&lt;/code&gt; - Disables the watchdog on retu.
*&lt;code&gt;no-lifeguard-reset&lt;/code&gt; - Disables the lifeguard process (lifeguard reboots the device when an important system process crashes).
*&lt;code&gt;serial-console&lt;/code&gt; - Enables the serial console (the serial port pins are next to the battery) and causes a shorter battery life.
*&lt;code&gt;no-usb-timeout&lt;/code&gt; - Unknown
*&lt;code&gt;sti-console&lt;/code&gt; - Unknown
*&lt;code&gt;no-charging&lt;/code&gt; - Disables charging via the USB port. bme will still be running in the background.
*&lt;code&gt;force-power-key&lt;/code&gt; - Omap bootreason will be always pwr_key. Maemo system will not see any reboots or watchdog resets. Instead Maemo will think that device was started by power key.

running the command without parameters gives a list of available modes:
&lt;code&gt;flasher-3.5 --set-rd-flags&lt;/code&gt;

&lt;pre&gt;
maemo_flasher-3.5_2.4.5.3_beta/flasher-3.5 --set-rd-flag
flasher v2.4.5 (Jun 25 2009)

Possible R&amp;D flags:
  no-omap-wd
  no-ext-wd
  no-lifeguard-reset
  serial-console
  no-usb-timeout
  sti-console
  no-charging
  force-power-key
&lt;/pre&gt;

It seems enabling of R&amp;D mode is causing device (N900) to power up on battery insert and USB-connect.
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Real Video streams</title>
    <id>177</id>
    <revision>
      <id>28932</id>
      <timestamp>2010-02-11T14:42:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>remove [[Category:Users]]</comment>
      <text xml:space="preserve">{{Midgard article}}

Here's how to get streaming video playback to work (thanks to Nathan Davenport for instructions).

The [[Nokia 770]]/[[Nokia N800|N800]]/[[Nokia N810|N810]] supports streaming of Real Video RV40 over rtsp.

Streaming of Real Video files works either over a protocol called RTSP or over normal HTTP. So you don't really have to use an RTSP server, just put a directory on apache.

But first, get your video in a nice format the Nokia tablet likes:

== Encode your video to Real Video ==

For limits with video size/quality/settings keep [[video encoding]] in mind. To generate video which will play correctly on Nokia tablets, the easiest method is to use [http://mediautils.garage.maemo.org/tablet-encode.html tablet-encode], which wraps [http://www.mplayerhq.hu/ mencoder from MPlayer]. For information on the constraints for video on the Nokia tablets, read [[video encoding]].

Get [https://helix-producer.helixcommunity.org/ Helix DNA Producer] (or alternatively [http://www.realnetworks.com/products/producer/index.html Real Producer]) for encoding to Real format.

On Linux, Helix/Real Producer can read only uncompressed audio and video from an AVI file. In addition, it does not support piping, which means that you need large amounts of temporary hard disk. On Windows, the situation is much better as Helix/Real producer can read almost any media format that has Windows codecs installed.

If you are using Linux and need to create the uncompressed video, you can do it either by using [http://ffmpeg.sourceforge.net/ Ffmpeg] or mencoder:

  ffmpeg -i original.mpg -vcodec rawvideo -acodec pcm_s16le -s 176x144 $2.avi

or

  mencoder -quiet -o temp.avi original.mpg  -oac pcm -ovc raw 

(Note that uncompressed video is very big (read, gigabytes for half an hour video))

The video can be encoded to Real format by using the following command:

  producer -i temp.avi -o temp.rm

If you created the uncompressed temporary file, remember to remove it:

  rm -f temp.avi

== Apache HTTP server ==

The easy way is to put your videos in a directory served by apache and create a .htaccess:

 &lt;Files ~ &quot;.*&quot;&gt;
   # Nokia 770 weirdness
   [ForceType] audio/x-pn-realaudio   # wrong, but works
   #ForceType application/vnd.rn-realmedia  # official, but doesn't work
   #ForceType video/vnd.rn-realvideo  # official, but doesn't work
 &lt;/Files&gt;

 &lt;Files ~ &quot;index.php&quot;&gt;
   [ForceType] application/x-httpd-php
 &lt;/Files&gt;

(be sure the &lt;Directory&gt; in apache2.conf or sites-enabled has ''''''AllowOverride'''''' ''''''FileInfo'''''')

On other web servers you can try setting the video file extension to .ram rather than .rv to trick it into setting the compatible mime type.


== Set Up a RTSP server ==

You can spare yourself the work of setting up a RTSP server, just use apache.

But if you insist:

Once you have the little Real Video file, you can set up a RTSP server so that the Nokia Video Player can open it from your computer.
I used [http://www.realnetworks.com/products/evalservers.html Real Basic Server] to do that, even though it is very very HUGE (both disk space and memory space, uses 10% of my 512MB RAM ''when idle'').

Install it by launching the executable downloaded.

An installation directory will be created.

In the installation directory there is a subdirectory &quot;Content/&quot; which contains the files that are available to the clients (i.e. the ''Videos'') which is used by default (this location can and should be changed by editing rmserver.cfg).

(it's best to copy the config file to /etc or somewhere you actually *look* for it :) )

In the installation directory launch &quot;Bin/rmserver rmserver.cfg&quot; as root (because of the port number, I guess 
when the port number were &gt;1023, you wouldn't have to be root) 

That will produce a screenful or so of output, ending with:

 Starting TID 2997877664/29271, procnum 7 (streamer)

 I: Helix Server (c) 1995-2005 [RealNetworks,] Inc. All rights reserved.
 I: Version: Helix Server 11.0 (11.0.1.1884)
 I: Platform: linux-rhel4-i686

'''Note:'''

There is also 
[http://streaming.polito.it/server Fenice] which looks much nicer (easy to configure, easy to install, source available, smaller, autoconf, no magic installer, ...), but at least with a quick try I couldn't get it to support Real Video files. It would always yield format unsupported.

== Play the File on the Nokia 770 ==

Now after all is done, open the video player on the Nokia 770.

For that open Video Player, open the Menu &quot;Video&quot;, activate the item &quot;Open Stream...&quot;, and put:

for RTSP:
 rtsp://192.168.0.1/somefile

for HTTP:
 &lt;http://192.168.0.1/somefile&gt;

(Where 192.168.0.1 is your main computer's IP address)

A popup window (or a status bar with newer releases) will appear that tells you it's buffering data and after 10 seconds or so it will start playing merrily.

[[Category:Media]]
[[Category:Midgard wiki]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Recaller</title>
    <id>3923</id>
    <revision>
      <id>45819</id>
      <timestamp>2011-11-23T15:31:48Z</timestamp>
      <contributor>
        <username>nilli</username>
        <id>4819</id>
      </contributor>
      <comment>/* Wishlist */ custom filename settings, +reply about moving desktop icon</comment>
      <text xml:space="preserve">[http://maemo.org/packages/view/recaller/ Recaller] is a widget(for the Maemo desktop) which allows your [[Nokia N900|N900]] to record all kind of audio (&quot;Rec-All&quot; :-) 
Starting with version 2.0, it has the following features:
* Auto-recording of GSM calls
* Useable as dictaphone
* Record device audio (e.g. FM or internet radio, game sounds)
* Configurable Save Folder
* Autonaming of files (including call partner number)

PLEASE donate if recaller is useful to you. Donations give me motivation, encouragement and happiness (plus pocket money :-)

==Help==
If there is no big red button on the desktop after installing the widget, simply reboot your phone.

Please use the settings mode of the Desktop to configure recaller to your needs. You can change the following settings:
* Save folder location (where recaller puts its recordings)
* Audio source when manually recording (with Autorec enabled, recaller will automatically switch to Phone or Bluetooth recording mode) (I have found this to be the opposite, what you set here is what autorec will use, otherwise manual will use system [DaveQB])
* File Format (AAC is available on all phones, is compact and clear, playback on most computers possible, but uses high CPU. Other available formats [FLAC, WAV] might not work for everybody or use too much storage).
* Autorec automatically starts the recording of GSM calls (in- and outgoing)
* Show reminders puts up a banner every 30 seconds to remind you of an ongoing recording). Icon on desktop also changes to green when a recording is ongoing.

==Performance Considerations==
* As default, Recaller uses AAC encoding. This uses about 50% of CPU for high-quality high-compression. For less CPU usage (but much larger recording files), you can use WAV encoding instead.
* In addition, saving to an external SD card might be faster than writing to the internal 32GB MMC (untested claim).
* If you don't use auto-recording regularly, make sure that it is disabled.
* Never add it to more than one desktop!

==Screenshots==
[[Image:Recaller desktop.jpg|120px]]
[[Image:Recaller menu.jpg|120px]]
[[Image:Recaller settings.jpg|120px]]

==Authors==
* Main author: [http://maemo.org/profile/view/twaelti/ Tom Waelti]
* Thanks to various pymaemo and gstreamer gurus :-)

==ChangeLog==
The [http://maemo.org/packages/view/recaller/ current changelog] is available through the package viewer.
* 2.0.0: All your wishes come true. GSM autorecording, larger icon, better status display, configurable save folder and encoding format. Uses the SHAD framework.
* 0.4.0: Simple version, no config options, available in Extras

==Roadmap==
===High priority===
* Address book name for the recorded phone calls files.
===Low priority===
* Other codecs
* Improved auto-record timings
* Auto-record for other voice protocolls

==Wishlist==
Use this space to add possible feature wishes:
* WISH (YOUR NAME)

* Please, please help us port this to Android. There are many call record apps but none record the other party. The API is published, and works in the SDK emulator, but not on the actual phone. We suspect either the chip the audio goes through is inaccessible (old analog, rather than routing through the CPU), or the driver is rigged by Google for some reason as they are unresponsive. Google Voice records both sides, but that may just be because the call goes through The Cloud'.
* Please make it not only as a widget, but also as a standard app. - E.g. as an applet that can be accessed from Settings. It really bothers me on the desktop, and we don't want nosy people to play with it and eventually mess up with the settings. This way you can solve the problem with two widgets on the desktop (the standard app may record calls, while the widget may serve us as a dictaphone). (silkworm) (+ acno)
* To phone call history list: link to the recording in cases where the call was recorded. (raatikka)
* Incoming/Outcoming icon for the recorded phone calls files.
* Hide all notifications. (epilido) (+ acno) (+ waa) / An option to turn off all activation/deactivation display
* Allow hidden folder structure E.g. files to be stored in .recordings (epilido)
* Different widget icon according to mode chosen. I keep one icon for recording calls, one for dictaphone. E.g. you could use the current icon, but overlaying &quot;c&quot;, &quot;d&quot; or &quot;s&quot; for widget configured for calls, dictaphone or system.
* hide recorded calls from media player- controlled via /home/user/.config/tracker/tracker.cfg - be aware of the need to restart the tracking service and possible re-indexing of media content (see http://talk.maemo.org/showthread.php?t=64983) (...)(+ ek-zwo)
* customizable icon size
* Replace the phone number on the recorded audio file with the name of the caller. Possibly add an option in the settings to use either the nickname, first/second name or a combination.
* Custom filename settings
** Be able to specify how the date and time should be formatted for the file name for easier readability (saturn)
** Allow user to specify the order of the phone number/name and date in the file name for sorting the files to ones preference by either the date or by caller
** Custom filename settings. User could specify what information to include in the filename, and in what order it will appear. Current setting of automatically recorded phonecalls is &quot;(prefix)_(phone number)_(YYYYMMDD)_(hhmmss-hhmmss)&quot; and with a new feature each of these section could be toggled on or off and ordered. (nilli)
* Add auto-recording of SIP/VOIP calls. (saturn) (+ waa)
* Ability to record SKYPE conversations would be much appreciated (You can record Skype with a manual recording in Recaller: Click the button yourself)
* Since this is a widget of cell phone with touch-screen, there should be a confirmation notice (Record? Yes No) of recording to prevent accidental recording when you put cell phone into pocket while touch-screen is still active. (Tom) (+ acno)
* Auto-recording for calls to/from specific contacts or groups. Plus a yes/no setting for unknown callers. (Anonymous)
* Auto-recording could ask, when phone has already finished, if recording should be saved or not: SAVE CONVERSATION? YES / NO (zentenario, saturn)
* Auto-recording files could get automatically deleted after a configurable time (typically a number of days). To preserve a particular recording a requester could move it to a subfolder (or user could just manually move the file). Be careful not to delete other files than recordings that happen to be in the same directory! Default recording directory is directly in MyDocs, after all.
* Move it around desktop / change position / hidden (visible in apps)
*: It can be moved around on the desktop, you just have to catch the right area of the icon. Keep trying! (nilli)
* Insert notes in time record, generating a .txt file to make easy search of conversation on long records- ex.: 00:01:40 - teacher said bla bla bla (Ricardo - BR)
* add option of instead being a widget to be placed in the clock area (saturn)

==Bugs==
Use this paragraph to report possible bugs. If you encounter a problem with the widget, please remove/delete it from the Home screen, then open X-Term and launch the widget manually by typing:
 python2.5 /usr/lib/hildon-desktop/recaller.py
You can now see some output from the widget. Now switch to the Home screen and work with the widget - you can then control the output in X-Term and report any errors visible.

===New/Unconfirmed===
* Recaller _always_ crashes on accepting a new call while ongoing call is placed on hold. All widgets on all desktops, including Recaller, are removed by this crash. [Comment twaelti: PLEASE: specify exact use case / test. Who calles whom first, how is the 2nd call initiated. I have problem sto recreate this issue]
* Recaller crashes when recording is too long.  In one instance, recording was terminated (ungracefully) at 80.0MB (1:26:09 aac storage); second instance, recording was terminated at 39.3 MB (42:18 acc storage).  In both instances, Recaller terminated by itself and all widgets on desktops were lost.  In the 2nd instance, the file recorded had a &quot;.aac.&quot; file name suffix, visible in file manager.  The file type was not associated with any application, but the file played without problems in media player. [Comment twaelti: looks like a memory management problem in GStreamer, so I probably can't fix it]
* Recorded voice level at N900 end is very low when using speakerphone, while on GSM call.  Recorded voice level is fine if microphone is used.  The other party's voice level is fine in both cases.  Recorded voice level is OK (but could be higher) if speaker is used for a non-GSM phone call recording initiated by hitting green button on desktop.
* Autorec is not working, when FLAC is selected as codec (WAV not tested, AAC is working)(v2.0.0-7) (ek-zwo)
* Autorec records only the other caller voice when set to 'system'. If set to 'phone', my voice is also recorded, but barely hearable, however it also records all ambiental sounds (touching the pone, walking, closing a door etc.) In this case, autorec continues to record for a few seconds after the other caller hangs up.(v2.0.0-7) (silkworm)
* Recaller freezes when call is answered via bluetooth and the proximity sensor is covered: adder name=theAdder ! nokiaaccenc bitrate=128000 output-form t=1 ! filesink location=/home/user/*********.aac. pulsesrc device=sink.hw1.monitor! queue name=q1 ! theAdder. pulsesrc device=source.hw1 ! queue name=q2 ! theAdder.

===Confirmed in 2.0.0-7===
* Autorec does not change the audio source to bluetooth automatically when a headset is used. Moreover, it doesn't even record the other party, only sound picked up from the mic (which is useless when using bluetooth) [petur]
* Recording fails when the save folder contains a space (e.g. /user/MyDocs/My recordings/). Includes bugs such as &quot;Does not stop recording / when a call is ended. Have to reboot the phone whereupon the recording is lost&quot; (FYI: the app never started recording, only changed the icon display...)
* Setting does not display new selected &quot;record-folder&quot; location. Only after restart of settings dialog the new location is displayed (v.2.0.0-7) (ek-zwo)
* Numbers containing a star/asterisk (&quot;*&quot;)  will cause Recaller to fail/lock/need reboot.
* Auto-registration of GSM calls do not work with anonymous call. '''Please try running from X-Term and report any errors - I'm unable to test this :-)''' (twaelti)
* Recording fails with on-hold call:  the first call records correctly, however, if a second call comes in and is answered, the recording stops for all calls.   I don't know if it's possible to save the second call on its own file, but not being able to save the call even on the same file should be a bug.(v2.0.0-7) (vinnie)
* It makes two files of one and the same phone conversation (if widget is added to more than one desktop - something you sholdn't do but is possible because of a bug in a config file of recaller)
* at one occasion 2 (auto)recordings of one phone call were created (1 call, but 2 recording files - 2nd starts 3s earlier and ends 2s earlier according to file name) (v2.0.0-7) (ek-zwo)
* I'm connected with my N900 to a Swedish operator through a commercial switchboard called Centrex. Centrex sends callerid with stars '*' in them. Like this: +46887326863*180. This makes recaller not able to write to file. I did a quick hack to fix it (I think). Here's the patch.
&lt;source lang=&quot;diff&quot;&gt;
--- recaller.py.old     2010-04-25 18:23:12.
+++ recaller.py 2010-04-25 18:23:59.320022067 +0200
@@ -15,6 +15,7 @@
 import string
 import time
 import gconf
+import re

 import dbus

@@ -26,6 +27,7 @@
 dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
 dbus.mainloop.glib.threads_init()

+
 APP_NAME = APP_TITLE.lower()
 LOGO = '/opt/tomch.com/%s/%s_64.png' % (APP_NAME, APP_NAME)
 GCONFPATH = &quot;/apps/Maemo/tomch.com/%s&quot; % APP_NAME
@@ -266,6 +268,8 @@
         finalName = os.path.join(self.folder,&quot;Rec_%s-%s.%s&quot; % (self.startTime, time.strftime(&quot;%H%M%S&quot;),self.fileformat.lower()))
       else:
         finalName = os.path.join(self.folder,&quot;Rec_%s_%s-%s.%s&quot; % (self.caller,self.startTime,time.strftime(&quot;%H%M%S&quot;),self.fileformat.lower()))
+      nostar = re.compile( '(\*)')
+      finalName = nostar.sub( '_ext', finalName)
       self.log(finalName)
       os.rename(self.fileName, finalName)
       self.isStopped=True
&lt;/source&gt;
(Bengt Gördén)

===Invalid===
* &lt;del&gt;Sound recorded from FM receiver has echo on playback&lt;/del&gt; To record from the FM radio, you must select SYSTEM as source, otherwise (DICTAPHONE) the mic will also record...
* Various problems of the Maemo file manager:
* Unable to rename recording files. After I rename them and save, they remain with the original name in the file browser. Only if I open them in media player, I see the new name.
* Unable to rename recording...(2): xterm also shows the new filenames (ek-zwo)
* Unable to rename recording...(3): It is probably a problem of the filemanager ? After a reboot of the phone only some (not all!) recordings show the new name. (Renamed files &quot;A&quot;,&quot;B&quot;,&quot;C&quot; to &quot;A&quot;,&quot;B1&quot;,&quot;C1&quot;, display after reboot &quot;A&quot;,&quot;B&quot;,&quot;C1&quot;) (ek-zwo at ovi.com)
* Unable to rename recording...(4): It is obviously a problem with the file manager and the media-tracking service. See &quot;Telling Media Player to ignore certain directories&quot; (http://talk.maemo.org/showthread.php?t=64983) - when the phone file directory is added to the exclude list in /home/user/.config/tracker/tracker.cfg , then renaming in the file manager works flawless (ek-zwo)

===Resolved===
* &lt;del&gt;Doesn't install unless dpkg --force-all due to trying to overwrite /usr/share/icons/48x48/hildon/mclock.png (NORMAN)&lt;/del&gt; Solved in 2.0.0-2
* &lt;del&gt;Config dialog doesn't pop up yet (NORMAN))&lt;/del&gt; Solved in 2.0.0-2
* In 2.0.0-2 I am able to record as a dictaphone just one time. The next time the icon stays red and recording is not possible. (fmonera at gmail)
* &lt;del&gt;Package doesn't list/install dependencies. I installed the -devel version and got &quot;ImportError: No module named gconf&quot; (viraptor at gmail)&lt;/del&gt; Fixed in later builds (twaelti)

[[Category:Software]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Recording phonecalls</title>
    <id>3395</id>
    <revision>
      <id>39324</id>
      <timestamp>2010-10-04T12:05:21Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">'''A desktop widget to record phone calls is now available from Maemo Extras. Search for [http://maemo.org/downloads/product/Maemo5/recaller/ &quot;recaller&quot;] using your Application Manager.'''

This page describes a method for recording calls from an [[Nokia N900|N900]], using pulseaudio command line tools to stream audio from input &amp; output devices, which requires command line tinkering.

This method was inspired by [http://www.outflux.net/blog/archives/2009/04/19/recording-from-pulseaudio/ a blog entry detailing how to record from pulseaudio], and [http://talk.maemo.org/showpost.php?p=441501&amp;postcount=41 documented] by [http://talk.maemo.org/member.php?u=13228 iKneaDough on Talk.maemo.org].

== Install pulseaudio-utils ==

First you will need to get the pulseaudio-utils package. You can install this either from [http://repository.maemo.org/pool/fremantle/free/p/pulseaudio/pulseaudio-utils_0.9.15-1maemo27+0m5_armel.deb the online Fremantle repository], or by enabling the tools repository and running

 apt-get install pulseaudio-utils

You can enable the tools repository by following [[Documentation/devtools/maemo5#Installation|the instructions for installing devtools]].

The pulseaudio-utils package provides two applications which can be used to record audio in scripts: &lt;code&gt;parec&lt;/code&gt; to record raw audio streams, and &lt;code&gt;pacat&lt;/code&gt; to play back raw audio streams.

The streams involved are: &lt;code&gt;sink.hw0.monitor&lt;/code&gt; for incoming sounds and &lt;code&gt;source.hw0&lt;/code&gt; for outgoing sounds when using the phone handset, and &lt;code&gt;sink.hw1.monitor&lt;/code&gt; for incoming sounds and &lt;code&gt;source.hw1&lt;/code&gt; for outgoing sounds when using a bluetooth headset.

== Creating scripts ==

Create the following shell scripts in your home directory:

&lt;ol&gt;
&lt;li&gt;
Put the following in a script called &lt;code&gt;simpleRec.sh&lt;/code&gt;, which you can run to record a call using the handset:

&lt;source lang=&quot;bash&quot;&gt;
NOW=`date +%F-%H-%M-%S` 
echo $NOW &gt; simpleDateTime
parec -d &quot;sink.hw0.monitor&quot; &gt; MyDocs/tmp/$NOW.pulse.in.raw &amp;
parec -d &quot;source.hw0&quot; &gt; MyDocs/tmp/$NOW.pulse.out.raw
&lt;/source&gt;
&lt;/li&gt;
&lt;li&gt;
Put the following in a script called &lt;code&gt;simpleRec.sh&lt;/code&gt;, which you can run to record a call using a Bluetooth headset:

&lt;source lang=&quot;bash&quot;&gt;
NOW=`date +%F-%H-%M-%S` 
echo $NOW &gt; simpleDateTime
parec -d &quot;sink.hw1.monitor&quot; &gt; MyDocs/tmp/$NOW.pulse.in.raw &amp;
parec -d &quot;source.hw1&quot; &gt; MyDocs/tmp/$NOW.pulse.out.raw
&lt;/source&gt;

These scrips will create two files, one for the input stream and one for the output stream, in the directory MyDocs/tmp, with a name which contains the month, day, hour and minute of the phone call.

For example, a phone call on the 13th of November, at 09:15, will be stored in the two files &lt;code&gt;11-13-09-15.pulse.in.raw&lt;/code&gt; and  &lt;code&gt;11-13-09-15.pulse.out.raw&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

== Playing back phonecalls ==

&lt;ol&gt;
&lt;li&gt;
To play back the most recent recorded call, use the following script (call it &lt;code&gt;simpleLastPlay.sh&lt;/code&gt;):

&lt;source lang=&quot;bash&quot;&gt;
LAST=`cat simpleDateTime`
pacat MyDocs/tmp/$LAST.pulse.in.raw &amp;
pacat -v MyDocs/tmp/$LAST.pulse.out.raw
&lt;/source&gt;
&lt;/li&gt;
&lt;li&gt;
To play back an older call using a unique date or time, use the following script (call it &lt;code&gt;simplePlay.sh&lt;/code&gt;):

&lt;source lang=&quot;bash&quot;&gt;
 pacat MyDocs/tmp/*$1*pulse.in.raw &amp;
 pacat -v MyDocs/tmp/*$1*pulse.out.raw
&lt;/source&gt;

for example if you know you recorded a call on Dec 1 at 12:00 am, you could run:
&lt;pre&gt;
./simplePlay.sh 12-01-00-00
&lt;/pre&gt;
or any part of the date or time that you can remember, as long as it is unique.
&lt;/li&gt;
&lt;/ol&gt;

To stop recording or playback just press ctrl+c.

Here is another useful script to stop any recording or playback if you cannot get back to its original terminal window, called &lt;code&gt;simpleStop.sh&lt;/code&gt;:

&lt;source lang=&quot;bash&quot;&gt;
killall parec
killall pacat
&lt;/source&gt;

== Disclaimer ==

Please use this only where it is legal to do so, and please do not use it for any nefarious purpose.

[[Category:Power users]]
[[Category:Media]]
[[Category:HowTo]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Red Pill</title>
    <id>1325</id>
    <revision>
      <id>8483</id>
      <timestamp>2008-11-04T13:49:06Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Red Pill]] moved to [[Red Pill mode]]: Make old wiki redirect work</comment>
      <text xml:space="preserve">#REDIRECT [[Red Pill mode]]</text>
    </revision>
  </page>
  <page>
    <title>Red Pill mode</title>
    <id>1247</id>
    <revision>
      <id>46034</id>
      <timestamp>2011-12-15T06:30:30Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 46004 by [[Special:Contributions/114.79.28.10|114.79.28.10]] ([[User talk:114.79.28.10|Talk]]) vandalism/spam</comment>
      <text xml:space="preserve">{{ambox|text=Red Pill functionality has been removed from the Hildon Application Manager GUI Maemo5 51-1 forwards. It can be enabled manually [[#activating|as shown below]].}}

An installable package, Fapman aka [http://maemo.org/packages/view/fapman/ Faster Application Manager], though, still allows access to packages outside of user/* .

'''Red Pill''' is an Application manager mode that disables certain safety features, and allows access to certain additional settings. It changes the way Application manager behaves, primarily by removing many of the safety locks that prevent users from installing harmful packages, or upgrading or replacing important system packages (which can result in reboot loops). It also hides packages that aren't relevant to users, and shows additional settings to tweak specific behaviors (like whether to cache packages to the internal memory card during installation).

'''WARNING''': Red Pill is ''not intended'' for use by users, power-users, nor the vast majority of developers. Red Pill mode is ''very likely'' to break your tablet and should not be used unless you know ''exactly'' what you are doing.

== Safety locks ==

In Blue Pill mode (the normal operating mode), Application manager has many safety locks in place to reduce the risk of the user accidentally damaging their tablet by installing harmful packages. Red Pill mode disables these locks.

== Visible packages ==

Normally, only packages in a user/* section will be displayed in the Application manager, but when Red Pill mode is enabled, packages outside of user/*, and magic packages will also be displayed. Packages outside of user/* are generally of no concern to the average user, as they will either be pulled in as dependencies for packages which ''do'' concern the user, or installed from Xterm with &lt;code&gt;apt-get&lt;/code&gt;.

Packages outside of user/* will not be backed up for reinstallation by Backup/Restore.

== Settings ==

; Clean apt cache : If activated, the equivalent of &quot;apt-get clean&quot; is performed after every install or update. (This is the default behavior for blue-pill mode.) Contents of the downloaded .deb files can be found in: /home/user/MyDocs/.apt-archive-cache/
; Assume net connection : This will not ask for an active IAP before downloading. This is useful if you have a network connection, but the tablet connectivity APIs are not available or don't know about it.
; Break locks : This will break needed locks instead of failing. This is done by default in blue pill mode so that users don't lock themselves out when a crash leaves a stale lock behind.
; Show dependencies : This adds another tab to the details dialog with some dependencies from the package.
; Show all packages : This will not filter out packages that are not in the &quot;user&quot; section. It will also allow installing packages from any section. When enabled this will show free Ovi Store packages.
; Show magic system package : This will include the &quot;magic:sys&quot; package in the list of packages. Updating that package will do something similar to &quot;apt-get upgrade&quot;. It is not yet fully defined what it will do exactly. This feature might become available in blue-pill mode at one point.
; Include package details in log : When this setting is active, opening a package details dialog will dump its content into the Log so that you more easily save it. This should be useful when reporting complicated dependency issues. This setting can only be changed in Red Pill mode, but it's effect stays active also in Blue Pill mode.
; Use MMC to download packages : If activated, all the packages will be downloaded to a temporary directory in an available MMC with enough free space, then installed in the flash memory. The MMC's are considered in order: first the internal MMC and then the removable MMC, If no MMC is available, or no MMC has enough free space, the internal flash memory will be used as usual. Using this option is useful to install/upgrade packages when there's enough free space at the root filesystem to install, but not to download plus install/upgrade, so you can use an alternative storage just to download such those packages. This option is enabled by default.
; Always check for updates : Activating this setting removes the refresh button from the toolbar and instead performs a &quot;Checking for updates&quot; operation everytime you switch to the &quot;Browse installable applications&quot; or &quot;Check for updates&quot; view. This settings was added for some quick UI experiments, but we kept it afterward. You need to restart the Application manager for this setting to take effect.
; Ignore packages from wrong domain : Usually, a package from a wrong domain will be completely ignored by the Application manager. Deactivating this setting will not ignore these packages. However, When actually installing a package from a wrong domain, a warning message will still be displayed and you need to confirm that installation should proceed. You need to restart the Application manager for this setting to take effect.

== Activating ==

'''Red Pill mode has been removed from the GUI in the 1.2009.44-1 [[Nokia N900|N900]] firmware. It can be enabled on future firmwares by editing the configuration file for HAM using terminal.'''

For the vast majority of people, using Red Pill is inadvisable. Please don't use it unless you know exactly what you are doing.

To enable Red Pill mode through HAM on old firmwares:
* Open Application manager and go to &quot;Tools -&gt; Application catalogue&quot;
* Click &quot;New&quot;
* Type &quot;matrix&quot; into the &quot;Web Address&quot; field
* Click &quot;Cancel&quot; (N900: tap outside the window)
* Tap &quot;Red&quot; in the dialog to enabled Red Pill mode, or &quot;Blue&quot; to keep the Application manager as-is or to disable Red Pill.

N900: The Red-Pill mode is not persistent after being enabled. Closing the Application manager, disables Red Pill.

To enable Red Pill mode in [[Maemo 5/PR1.1|51-1 (PR1.1)]] onwards:
* Close Hildon Application Manager if you have it opened.
* Open Terminal. Note that you can use your favorite editor to do this, vi is used for this tutorial as it is preinstalled on the N900. '''Under [[Maemo 5/PR1.2|PR1.2]] this file is not available, so one has to add the two relevant fields below for it to work.'''
* Type &lt;pre&gt;vi /home/user/.osso/hildon-application-manager&lt;/pre&gt; press I to enter input mode.
* Change &lt;pre&gt;red-pill-mode 0&lt;/pre&gt; to &lt;pre&gt;red-pill-mode 1&lt;/pre&gt;.
* Change &lt;pre&gt;red-pill-permanent 0&lt;/pre&gt; to &lt;pre&gt;red-pill-permanent 1&lt;/pre&gt;.
* Press CTRL+C to exit input mode, type &lt;pre&gt;:w&lt;/pre&gt; and press enter to save and &lt;pre&gt;:x&lt;/pre&gt; to exit.
Red pill mode will stay on till the steps are reversed.

[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Reducing number of external repositories</title>
    <id>1242</id>
    <revision>
      <id>7554</id>
      <timestamp>2008-10-01T07:16:18Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Reducing number of external repositories]] moved to [[Task:Reducing number of external repositories]]</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Reducing number of external repositories]]</text>
    </revision>
  </page>
  <page>
    <title>Reflash</title>
    <id>3802</id>
    <revision>
      <id>31798</id>
      <timestamp>2010-04-01T12:10:51Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <comment>Redirecting to [[Updating the firmware]]</comment>
      <text xml:space="preserve">#REDIRECT[[Updating the firmware]]</text>
    </revision>
  </page>
  <page>
    <title>Reflashing</title>
    <id>3129</id>
    <revision>
      <id>24055</id>
      <timestamp>2009-12-05T15:09:10Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <minor/>
      <comment>Redirecting to [[Updating the firmware]]</comment>
      <text xml:space="preserve">#REDIRECT [[Updating the firmware]]</text>
    </revision>
  </page>
  <page>
    <title>Reformatting a memory card</title>
    <id>1689</id>
    <revision>
      <id>21465</id>
      <timestamp>2009-11-01T12:19:03Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <text xml:space="preserve">Reformatting a memory card will completely clear all existing data from the card. Please copy all important data from the card prior to reformatting.

'''WARNING''': Data previously stored on a reformatted memory card may be recovered by software designed for the purpose. Do not trust reformatting to permanently destroy data.

== Using the File manager ==

# Disable virtual memory if it is being used on the card.
# Launch the File manager.
# Select the memory card to be reformatted.
# Open the File manager's menu.
# Open the &quot;Tools&quot; sub-menu.
# Select &quot;Format memory card...&quot;
# Tap the &quot;OK&quot; button.

[[Category:Users]]
[[Category:HowTo]]

[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>Remapping keyboard</title>
    <id>3349</id>
    <revision>
      <id>50694</id>
      <timestamp>2012-11-06T22:43:35Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Remapping keyboard]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">If you are not satisfied with your hardware keyboard layout, with root access (through rootsh or ssh) you can modify that as follows.

== Permanent remap ==

You need to edit this file on your [[Nokia N900|N900]]: &lt;code&gt;/usr/share/X11/xkb/symbols/nokia_vndr/rx-51&lt;/code&gt;

Before editing it you should back it up first in case something goes wrong. '''Do not place the copy in the &lt;code&gt;nokia_vndr&lt;/code&gt; folder or it will stop your phone from booting.''' Obviously all access to this file needs to be from the root account so use &lt;code&gt;sudo&lt;/code&gt; or &lt;code&gt;sudo gainroot&lt;/code&gt;.

After backing up you can then edit the file using a text editor such as leafpad, or vi from within the X terminal. (vi is ''not intuitive'' so if you have never used it before, read a manual and try it on another file first.)

After modifying the rx-51 file, type `&lt;tt&gt;setxkbmap&lt;/tt&gt;' to apply any changes for English keyboards, `&lt;tt&gt;setxkbmap de&lt;/tt&gt;' for German keyboards, etc. If you see an error you should replace the rx-51 file with your backup - if you don't the device will fail to boot and you'll have to [[Updating the firmware|reflash]] it!

Test all the keys, levels and language keyboards you have changed. If you are satisfied with your new rx-51 file, back it up as well. The next firmware upgrade might restore it to the factory default. Find some keyboard stickers if you have trouble remembering the keys you have set.

When making particularly intricate/complicated/fancy keyboard mappings, remember that '''order matters when pressing buttons'''. If you press your thumb on both Shift and FN (the blue up-right arrow key), even if you pressed them both at the same time, electronics is fast enough that the N900 registers Fn+Shift as different than Shift+Fn. For most remappings this doesn't matter because Shift is always Shift and Fn is always Fn, but you can map a special symbol onto one of them as a second level (so that an Fn'ed Shift is different than a normal shift, or a Shift'ed Fn is different than a normal Fn). This is also the same reason why you COULD make Ctrl+Fn+[Key] do something (like send dbus signals as is possible with the modified hildon desktop package by Matan that's now in the CSSU), and still get to the special symbol virtual keyboard using Fn+Ctrl. However this doesn't seem to affect the examples in this first section.

=== Remapping keyboard arrows ===

The N900 sold in English-speaking countries has 4 arrow keys, and there are no extra symbols attached to these. If you have a different device with 2 arrow keys you should be able to change the hardware keyboard layout in the equivalent of Settings--&gt;Text Input.

The arrow key mappings are located at the end of the file. If your device is set to a 4-arrow key layout, this can be modified by editing the section under &lt;code&gt;xkb_symbols &quot;arrows_4btns&quot; {&lt;/code&gt;. Note that this will change any other language layout that includes 4btns - only Polish in the default file - indicated by &lt;code&gt;include &quot;nokia_vndr/rx51{arrows_4btns}&quot;&lt;/code&gt; in the relevant language section.

(You can change the settings just for the English layout by copying the keys you want from the arrows section to beneath the line &lt;code&gt;name[Group1] = &quot;U.S. English&quot;;&lt;/code&gt;, near the top of the file. This means you could also do things like change the Polish keyboard to keys useful for programming, and change back to English for the standard keys, or vice versa if you are Polish. There are also faster but more complicated ways to use several layouts as mentioned further down this page.)

If you don't use accented characters you may want to add Page Up, Page Down, Home and End as in the following example. Pressing Fn+Left would send you to the beginning of a line.

&lt;pre&gt;
partial hidden alphanumeric_keys
xkb_symbols &quot;arrows_4btns&quot; {
    key &lt;UP&gt;   { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Up, Page_Up ] };
    key &lt;LEFT&gt; { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Left, Home ] };
    key &lt;DOWN&gt; { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Down, Page_Down ] };
    key &lt;RGHT&gt; { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Right, End ] };
};
&lt;/pre&gt;

The PC_FN_LEVEL2 setting allows combining the new keys with Shift for selecting text. For example, to select a large block of text more quickly, you can press Fn+Shift+Down, or press Fn twice to lock it and then press Shift+Down (which has become Shift+PageDown).

The next example shows how to add dead acuté, gravè, tilde~ and circumflêx accents used in Portuguese, Spanish, French, etc. To use these accents, press the relevant arrow key while holding down Fn, followed by the letter you want (i.e. a,c,e,i,n,o,u,y).

&lt;pre&gt;
xkb_symbols &quot;arrows_4btns&quot; {
    key &lt;UP&gt;   { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Up, dead_circumflex ] };
    key &lt;LEFT&gt; { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Left, dead_acute ] };
    key &lt;DOWN&gt; { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Down, dead_tilde ] };
    key &lt;RGHT&gt; { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Right, dead_grave ] };
};
&lt;/pre&gt;

This example adds German ä, ö, ü and ß:

&lt;pre&gt;
xkb_symbols &quot;arrows_4btns&quot; {
    key &lt;UP&gt;   { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Up, udiaeresis ] };
    key &lt;LEFT&gt; { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Left, odiaeresis ] };
    key &lt;DOWN&gt; { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Down, adiaeresis ] };
    key &lt;RGHT&gt; { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Right, ssharp ] };
};
&lt;/pre&gt;

[[Image:Nokia-n900-keyboard-norwegian-arrows.png|right]]

This example adds Norwegian å, ø and æ, in an arrangement similar to the usual PC keyboard layout, plus the pipe &quot;|&quot; for convenient xterm use:
&lt;br clear=&quot;all&quot;/&gt;

&lt;pre&gt;
partial alphanumeric_keys                                                                                                                                   
xkb_symbols &quot;us&quot; {                                                                                                                                          
    include &quot;nokia_vndr/rx-51(english_base)&quot;                                                                                                                
    include &quot;nokia_vndr/rx-51(arrows_4btns)&quot;                                                                                                                
                                                                                                                                                            
    name[Group1] = &quot;U.S. English&quot;;                                                                                                                          
                                                                                                                                                            
    key &lt;UP&gt;   { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Up, aring ] };                                                                          
    key &lt;LEFT&gt; { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Left, oslash ] };                                                                       
    key &lt;DOWN&gt; { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Down, ae ] };                                                                           
    key &lt;RGHT&gt; { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Right, U007C ] };                                                                                     
};                                                                                                                                                          
&lt;/pre&gt;

A four level mapping is also possible in which Fn, Shift or Fn+Shift will all input something different. '''thp's mapping''' is helpful for a German speaker who also programs using Python, Vim and the Shell:

Fn+Up inputs %, Shift+Up inputs |. Fn/Shift+Down give the invisible special keys Tab and Escape. Left and Right are mapped so that Shift gives &lt;&gt;, Fn gives [] and Shift+Fn gives {}. Finally, Shift+Fn enters German characters (Up prepares a dead diäëresïs for Umlauts and Down inputs ß).

&lt;pre&gt;
xkb_symbols &quot;arrows_4btns&quot; {
    key &lt;UP&gt;    { type[Group1] = &quot;FOUR_LEVEL&quot;, symbols[Group1] = [      Up,     bar,    percent,        dead_diaeresis  ] };
    key &lt;LEFT&gt;  { type[Group1] = &quot;FOUR_LEVEL&quot;, symbols[Group1] = [      Left,   less,   bracketleft,    braceleft       ] };
    key &lt;DOWN&gt;  { type[Group1] = &quot;FOUR_LEVEL&quot;, symbols[Group1] = [      Down,   Escape, Tab,    ssharp  ] };
    key &lt;RGHT&gt;  { type[Group1] = &quot;FOUR_LEVEL&quot;, symbols[Group1] = [      Right,  greater,        bracketright,   braceright      ] };
};
&lt;/pre&gt;

=== Example for keyboard with only two arrow keys ===

Non-English keyboards typically have only two keys for arrows, with Up and Down composed as Fn+Left and Fn+Right, respectively. If you want to change the arrow keys for all 2-arrow layouts, edit the &quot;arrows_2btns&quot; section just above the &quot;arrows_4btns&quot; one mentioned above.

It may also be useful to remap keys with accented characters, such that one of them is a dead accent, and the others are freed up for special characters that you want on the hardware keyboard.

For example, on a German N900 three keys are occupied by ä, ö and ü. The following modification changes the ü key into a dead diaeresis. Now to type ä, ö or ü, press the former ü key to load the diaeresis followed by a, o or u. This way one can also enter ë, ï and ÿ which occur in other languages.

&lt;pre&gt;
partial alphanumeric_keys
xkb_symbols &quot;de&quot; {
    include &quot;nokia_vndr/rx-51(english_base)&quot;
    include &quot;nokia_vndr/rx-51(arrows_2btns)&quot;

    name[Group1] = &quot;German&quot;;

    // 1. row
    key &lt;AD06&gt;  { [ z, Z, 6, 6 ] };
    // key &lt;AB08&gt; { [ udiaeresis, Udiaeresis, ssharp, ssharp ] };
    key &lt;AB08&gt;  { [ dead_diaeresis, asciicircum, ssharp, ssharp ] };

    // 2. row
    key &lt;AC08&gt;  { [ k,  K, semicolon, semicolon ] };
    key &lt;AC09&gt;  { [ l,  L, colon, colon ] };
    //key &lt;AB09&gt;  { [ odiaeresis, Odiaeresis, exclam, exclam ] };
    key &lt;AB09&gt;  { [ bracketleft, braceleft, exclam, exclam ] };
    //key &lt;UP&gt;  { [ adiaeresis, Adiaeresis, question, question ] };
    key &lt;UP&gt;    { [ bracketright, braceright, question, question ] };

    // 3. row
    key &lt;AB01&gt;  { [ y, Y, EuroSign, EuroSign ] };
    key &lt;AB03&gt;  { [ c, C, equal, equal ] };
    // key &lt;SPCE&gt;  { [ space, space, at, at ] };
    key &lt;SPCE&gt;  { [ space, asciitilde, at, at ] };
    //key &lt;LEFT&gt;  { [ period, comma, comma, comma ] };
    key &lt;LEFT&gt;  { [ period, bar, comma, comma ] };
};
&lt;/pre&gt;

The former ö, ä, Ö and Ä keys have been remapped to (brackets) and {braces} and the circumflex/exponent ^ to the former Ü key. Moreover, Shift-Space has been mapped to tilde~, the shortcut to your home directory (/home/user on the N900), and thus a character that can often occur in personal URLs. Shift+. has been mapped to the pipe/bar &quot;|&quot;. (The original keymaps are shown commented out by prepending &quot;//&quot;.)

Now type

 setxkbmap de

to test and install the new keyboard mapping. The new keymap will be used until the rx-51 file is modified again.

The Italian layout maps the comma, period/fullstop, up and left keys to è, ò, à and comma. In this example, we'll put the four arrow keys back and add some dead accents to allow for all accent and letter combinations.

&lt;pre&gt;
partial alphanumeric_keys
xkb_symbols &quot;it&quot; {
    include &quot;nokia_vndr/rx-51(english_base)&quot;
    // include &quot;nokia_vndr/rx-51(arrows_2btns)&quot;  USE 4 ARROW KEYS
    include &quot;nokia_vndr/rx-51(arrows_4btns)&quot;

    name[Group1] = &quot;Italian&quot;;

    // 1. row
    //key &lt;AB08&gt;  { [ egrave, Egrave, eacute, Eacute ] };
    key &lt;AB08&gt;  { [ egrave, dead_grave, agrave, dead_acute ] };

    // 2. row
    key &lt;AC06&gt;  { [ h, H, semicolon, semicolon ] };
    key &lt;AC07&gt;  { [ j, J, colon, colon ] };
    key &lt;AC08&gt;  { [ k, K, exclam, exclam ] };
    key &lt;AC09&gt;  { [ l, L, question, question ] };
    //key &lt;AB09&gt;  { [ ograve, Ograve, igrave, Igrave ] };
    key &lt;AB09&gt;  { [ period, comma, ograve, Igrave ] };
    //key &lt;UP&gt;  { [ agrave, Agrave, ugrave, Ugrave ] };

    // 3. row
    key &lt;AB01&gt;  { [ z, Z, EuroSign, EuroSign ] };
    key &lt;AB02&gt;  { [ x, X, parenleft, parenleft ] };
    key &lt;AB03&gt;  { [ c, C, parenright, parenright ] };
    //key &lt;LEFT&gt;  { [ period, comma, comma, comma ] };
};
&lt;/pre&gt;

With this setup, you have dead grave and acute accents on Shift+è and Fn-Shift+è, and you have à on Fn+è. Period and comma have been moved to the ò key, as ò and Shift+ò, while ò and ì are on that key, as Fn+ò and Fn-Shift+ò. There's no key for the ù character, but you can write it using the dead accents (Shift-è and then u).

Of couse all these are just examples. You can add any symbol you like (such as F1-F12) and remap any keys, not just the arrows.

If you can't find the name of a symbol that you want, take a look at this list of standard PC keyboard layouts as an example:

http://cgit.freedesktop.org/xkeyboard-config/tree/symbols/

An alternative approach for getting custom special characters is to edit the [[Special characters view]].

Note: the pipe symbol | is called &quot;bar&quot;.

== Multiple Layouts ==

The keyboard can also support multiple layouts, which you can cycle through. A full understanding of the details can be better acquired through reading up on xkb documentation, however, there are some easy to follow ways of creating multiple layouts without forcing yourself to use the N900's stock eight-level layout.

There are a couple of advantages to this: You can fully use all the levels of the keyboard map - as mentioned in the known bugs section below, it seems that editing levels 7 and 8 on the eight level keymaps is useless because levels 3 and 4 override them anyway. You can also have more than just two layouts, allowing you to rotate between many different languages or symbol combinations, rather than just the two sets of characters you can fill in the eight-(effectively six)-level keymappings.

The simple way to test this model is typing
&lt;code&gt;setxkbmap -layout [code for layout one],[code for layout two],[etc...]&lt;/code&gt;
The only issue is that on a stock N900, the keymap file is located deeper in the symbols directory than normal - as a result, if you do not have extkbd or bt-hid-scripts installed, the code for the standard English layout is just &quot;us&quot;, &quot;ru&quot; for Russian, etc, and they are entered normally, so if you wanted to make your layout Russian, then English, you would map it like so:
&lt;code&gt;setxkbmap -layout ru,us&lt;/code&gt;
However, if you have extkbd, bt-hid-scripts, or another package that installs extra external keyboard xkb mappings, for some reason, the N900 assumes that the first layout comes from the ...nokia_vndr/rx-51 file, but does not make this assumption for the following layouts. Thus, the above code would use the N900's correct Russian key mapping, but would use a standard external keyboard map for the &quot;us&quot; layout - which does not come with any of the third or forth level mappings for each key.

Thus, if you also use external keyboards with the available bt-hid-scripts or extkbd packages, when specifying multiple layouts (assuming you want them all to come from the rx-51 file), you need to specify the layout's path, relative to the /usr/share/X11/xkb/symbols/ folder. For the example above, with Russian followed by English, you would do:
&lt;code&gt;setxkbmap -layout ru,'nokia_vndr/rx-51(us)'&lt;/code&gt;
Explanation: the first layout assumes it's coming from the rx-51 file for some reason, but the following layouts default to the main xkb key map directory (/usr/share/X11/xkb/symbols/). So you first specify the folder, nokia_vndr, that the rx-51 file resides in (standard / use to designate the path is used); then you specify the rx-51 file; then, because there is more than one mapping inside the rx-51 file, you specify the code of the map, in this case &quot;us&quot; for English, with parentheses. The reason for the use of the quote/apostrophe (') is that when entered in the command-line, the shell attempts to interpret the parentheses as part of the shell's own syntax, and putting it in either a ' or a &quot; tells the shell to simply use the string as given. (Untested speculation - you may be able to use the backslash \ in front of each parentheses for the same effect.)

The main disadvantage to this is that without some fancy keymap modding, you cannot use the original Ctrl+Space combination to switch the layout, as Hildon locks that for its own eight-level layout switching. The other is that it takes a little bit more work to get these multiple layouts to stick correctly.

=== Switching Layouts ===

Layouts can be swapped in a couple of ways - one, with an appropriate setxkbmap -option flag. Two, with a special remapped or added key that cycles through the layouts used.

Option one depends on using the setxkbmap command; For example, &lt;code&gt;setxkbmap -option grp:ctrl_shift_toggle&lt;/code&gt; will make holding down shift and control at the same time toggle between layouts. There are many options of the sort, some of which use buttons that are not mapped to the N900's keyboard by default. There are many files in the /usr/share/X11/xkb/ directory that in some way indicate what &quot;grp:&quot; options are available; one example is /usr/share/X11/xkb/rules/xorg.lst - starting with line 620.

Option four is the simplest because, if used on every layout that you use, it makes fiddling with the setxkbmap command unnecessary (except when testing, though it's not strictly needed then either), when combined with the below section on making multiple layouts set at boot. It does, however, mean dedicating at least one key on your keymap to the task, but there are many unused key combinations that can be used for it. Like shift+backspace or fn+enter. Or any of the Shift+Fn+[key] combinations.

Here is an example of the N900 Shift key remapped so that it works like a normal shift key when pressed by itself, but works like a layout cycling key when FN is pressed and held down before Shift is pressed.
&lt;pre&gt;
xkb_symbols &quot;arrows_4btns&quot; {
    key &lt;LFSH&gt;    {
        type[Group1] = &quot;PC_FN_LEVEL2&quot;,
        symbols[Group1] = [     Shift,     ISO_Next_Group  ]
    };
    modifier_map Shift {Shift_L };
&lt;/pre&gt;
The only difference is that the &quot;type&quot; is changed from a one-level to the PC_FN_LEVEL2 type that Nokia included for use with their only-two-arrow-keys keymaps, and a second level is added with the key name &quot;ISO_Next_Group&quot;. This will cycle sequentially through your layouts in the order they are set - so if you set us,ru,de, it will cycle from English, to Russian, to German, to English again. '''Remember that order matters when pressing keys.''' If the shift key is pressed down first it will register as a shift - then the Fn key will register as a shift+Fn (which, by default, is just Fn). If the Fn key is pressed first, then the Shift key will register as Fn+Shift, which is normally just Shift, but in the above mapping becomes ISO_Next_Group. This means that FN+Shift cycles different keymap layouts, but Shift+Fn+[some key] still gives you the fourth level character mapped to that key on the layout you're currently on.

There is also an &quot;ISO_Prev_Group&quot; for cycling in the opposite direction, an &quot;ISO_First_Group&quot; and &quot;ISO_Last_Group&quot; - which is self explanatory. There is also a &quot;Mode_switch&quot; key...(as of this moment I have only used ISO_Next_Group, and the others I have not tested on the N900 yet. I also am not sure what Mode_switch does at all, but I suspect it's similar in purpose. If anyone can find the time to test to verify how they work, particularly Mode_switch, it would be greatly appreciated).

=== Setting Multiple Layouts At Boot ===

If you are satisfied with your multiple layout setup, you will soon likely find yourself annoyed by the fact that you have to run setxkbmap -layout {whatever} every time you reboot. There are two ways around this, only one of which I have managed to make work - one, run a script, somewhere from event.d, that executes after Maemo sets its xkb mapping, which will then set your own. After some brief fiddling I couldn't find a point in the boot process where I could execute the script late enough so that it would come after the default setting. It's in principle doable, hence mentioned here, but I haven't figured it out yet. Nevertheless, it should be possible to use &quot;setxkbmap -option&quot; however, as those do not override or depend on the layouts, unless the N900 sets some xkb map options in the background as well.

The other option involved editing the gconf key &lt;code&gt;/apps/osso/inputmethod/int_kb_layout&lt;/code&gt;. Changes to this will take effect immediately (I have not tested what happens if you try to set a layout/mapping that is broken and doesn't work when used through setxkbmap though this method), and will persist after a reboot. The Text Input settings menu applet reads and sets this key with its hardware keyboard layout setting. However, it is obviously incapable of understanding multiple layouts being specified at once, as setting mine to &quot;us,nokia_vndr/rx-51(ru)&quot; resulted in the Text input menu telling me my hardware keyboard was set to &quot;čeština&quot; (which a google search suggest is the Czech language). In spite of it erroneously reporting the keyboard layout, it correctly set the keyboard layouts to the us and ru layouts I have edited in the rx-51 file.

I have not tested what happens if you try to change/save the settings from within that settings applet after making this change.

== Temporary remap ==

Keys can be also remapped temporarily by loading keymap to a file, edit
that file and then reload changed file to N900 X server; like this (on an X terminal):

&lt;pre&gt;
xkbcomp :0
vi server-0.xkb
xkbcomp server-0.xkb :0
&lt;/pre&gt;

This has the advantage that if keymap get screwed out, running just &lt;code&gt;setxkbmap&lt;/code&gt; will fix it back to original. If this cannot be done, rebooting will fix things for sure.

For arrow key remapping the following script can be handy:

'''Just noticed that this makes N900 drain battery !!! (N900 was shutdown in the morning). After executing this maemo-xinput-sounds takes &gt;90% of cpu time. Killing the process will be a temporary fix; I'll look for better solution...'''

&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh

set -eux

# busybox mktemp is sooo strict: 6 X:s at the end is the only option...
tf=`mktemp xkb-XXXXXX`
trap &quot;rm $tf.0 $tf&quot; 0

xkbcomp :0 $tf.0

perl -pe '
 sub out ($$$) {
        print qq(    key &lt;$_[0]&gt; { type[Group1] = &quot;PC_FN_LEVEL2&quot;,);
        print qq( symbols[Group1] = [ $_[1], $_[2] ] };);
        return if s/.*};//; while (&lt;&gt;) { last if s/.*};//; };
 }
 s/controls=\)/controls=SlowKeys\)/; # hmm...
 out &quot;UP&quot;, &quot;Up&quot;, &quot;Odiaeresis&quot; if (/key\s+&lt;UP&gt;/);
 out &quot;DOWN&quot;, &quot;Down&quot;, &quot;adiaeresis&quot; if (/key\s+&lt;DOWN&gt;/);
 out &quot;LEFT&quot;, &quot;Left&quot;, &quot;odiaeresis&quot; if (/key\s+&lt;LEFT&gt;/);
 out &quot;RGHT&quot;, &quot;Right&quot;, &quot;Adiaeresis&quot; if (/key\s+&lt;RGHT&gt;/);
' $tf.0 &gt; $tf

xkbcomp $tf :0
&lt;/source&gt;

This one maps Up, Down, Left and Right to Ö, ä, ö, Ä, respectively (for finnish/scandinavian users), and is easy to tune for other purposes. Copy this as &lt;code&gt;xk&lt;/code&gt; to home directory on N900 and execute it as &lt;code&gt;sh xk&lt;/code&gt; whenever (seldom) you reboot N900.

== Use with vnc ==

You can use vnc with a [https://github.com/stuart12/n900_scripts/blob/master/n900vnc custom script] to show the N900's screen on your Linux PC so that you have a bigger screen and a real keyboard. In its default state the N900 will only recognise characters, even then they are typed via vnc, that are on its hardware keyboard. If you want to be able to type a % (for example) in vnc you need to add it to the N900's keyboard map. You can add them to end the of the common_keys section just after the definition of FK11:


&lt;code&gt;
    key &lt;FK12&gt;	{ [	eacute, Eacute] };
    key &lt;FK13&gt;	{ [	egrave, Egrave	] };
    key &lt;FK14&gt;	{ [	agrave, Agrave	] };
    key &lt;FK15&gt;	{ [	ugrave, Ugrave	] };
    key &lt;FK16&gt;	{ [	ecircumflex, ecircumflex	] };
    key &lt;FK17&gt;	{ [	oe, OE	] };
    key &lt;FK18&gt;	{ [	ccedilla, ccedilla	] };
    key &lt;FK19&gt;	{ [	ediaeresis, Ediaeresis	] };
    key &lt;FK20&gt;	{ [	icircumflex, icircumflex	] };
    key &lt;FK21&gt;	{ [	ucircumflex, Ucircumflex	] };
    key &lt;FK22&gt;	{ [	idiaeresis, Idiaeresis	] };
    key &lt;FK23&gt;	{ [	ocircumflex, Ocircumflex	] };
    key &lt;FK24&gt;	{ [	acircumflex, acircumflex	] };
    key &lt;I120&gt;	{ [	less, less	] };
    key &lt;I126&gt;	{ [	greater, greater	] };
    key &lt;I129&gt;	{ [	asciicircum, asciicircum	] };
    key &lt;I147&gt;	{ [	bracketright, bracketright	] };
    key &lt;I148&gt;	{ [	braceleft, braceleft	] };
    key &lt;I149&gt;	{ [	braceright, braceright	] };
    key &lt;I150&gt;	{ [	bracketleft, bracketleft	] };
    key &lt;I151&gt;	{ [	bracketright, bracketright	] };
    key &lt;I152&gt;	{ [	asciitilde, asciitilde	] };
    key &lt;I153&gt;	{ [	grave, grave	] };
    key &lt;I154&gt;	{ [	percent, percent	] };
    key &lt;I155&gt;	{ [	bar, bar	] };
    key &lt;I156&gt;	{ [	Ecircumflex, Ecircumflex	] };
    key &lt;I157&gt;	{ [	Icircumflex, Icircumflex	] };
    key &lt;I158&gt;	{ [	Ccedilla, Ccedilla	] };
    key &lt;I159&gt;	{ [	Acircumflex, Acircumflex	] };
    key &lt;KP0&gt;	{ [	KP_0 ] };
    key &lt;KP1&gt;	{ [	KP_1 ] };
    key &lt;KP2&gt;	{ [	KP_2 ] };
    key &lt;KP3&gt;	{ [	KP_3 ] };
    key &lt;KP4&gt;	{ [	KP_4 ] };
    key &lt;KP5&gt;	{ [	KP_5 ] };
    key &lt;KP6&gt;	{ [	KP_6 ] };
    key &lt;KP7&gt;	{ [	KP_7 ] };
    key &lt;KP8&gt;	{ [	KP_8 ] };
    key &lt;KP9&gt;	{ [	KP_9 ] };
    key &lt;KPDL&gt;	{ [	KP_Decimal ] };
    key &lt;KPEQ&gt;	{ [	KP_Equal ] };
    key &lt;KPDV&gt;	{ [	KP_Divide ] };
    key &lt;KPMU&gt;	{ [	KP_Multiply ] };
    key &lt;KPSU&gt;	{ [	KP_Subtract, KP_Subtract ] };
    key &lt;KPAD&gt;	{ [	KP_Add, KP_Add ] };
&lt;/code&gt;

Adding the numeric keyboard allows these keys to used, which is especially useful when typing digits into the dialler or other fields where only digits are allowed.

== Known Remap Bugs ==

There are some programs that do not pick up remapped keys correctly. X-Terminal, for instance, picks up a tab that's been mapped to a shift+(key) combination as a shift+tab instead of just tab. MicroB did something similar as of this writing.

As of this writing, FreOffice did not register a tab mapped to either fn+spacebar or shift+spacebar. Other keys for Tab worked fine.

Also, making the arrow keys have four buttons mapped to them instead of just two tends to cause problems with shift+arrow-key to highlight text.

J-k and Z-X are two pairs of keys for which pressing shift+fn+(key) causes the typing of both that key's fourth-level mapped character, and the pair key's fourth level character. So, with default mappings, shift+fn+j types &quot;)&amp;&quot;, as does &quot;shift-fn-k&quot;. So mapping those characters to separate keys at the fourth level is typically counter productive, though it could be useful for writing programs, scripts, or just mathematical expressions if you map [ to one and ] to the next one, or {}, (), or &lt;&gt;. 

Alternatively, you can delete one of the fourth-row key-maps from the keys in each pair, leaving it with only three characters (make sure to delete the last comma), and then both of those buttons will simply display the one key that's left.
 See http://wiki.maemo.org/N900_Hardware_Subsystems#Keyboard

On the eight-level layouts (such as Russian and a couple others, which switch using Ctrl+Space), it seems that only levels 5 and 6 switch with levels 1 and 2. If there are exceptions to this, I have not noticed them. Because of this, remapping levels 7 and 8 on those layouts is effectively useless.

== Links ==
[[Remapping_keyboard/user_vis_awesome_kbdmapping]]

[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Remapping keyboard/user vis awesome kbdmapping</title>
    <id>5202</id>
    <revision>
      <id>48233</id>
      <timestamp>2012-06-08T12:12:53Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <minor/>
      <comment>/* xbindkeys! */ typo</comment>
      <text xml:space="preserve">===vi_'s xkb setup===

I use the english layout.  All (useful) symbols have been added to the keyboard rendering the blue+ctrl menu redundant.  I am a heavy xterm user and would feel crippled without this set-up.

WARNING! This article assumes you have read the main article on [[remapping keyboard]]!

Features include:
*F1-F12 on blue+shift+top row 
*Tab on blue+return
*escape on Shift+backspace (for some reason 3rd level delete will not work :( )
*Page up/down &amp; home end on arrows without destroying shift highlighting (in fact shift+end works as it should)
*? moved to fourth level, allowing full stop with fn locked (makes typing in IP addresses easy)
*@ moved to fourth level, allowing use of space when fn locked.
*Euro symbol replaced with tilde (swap to £ if you are euro)
*Fourth level 'k' is '()'
*Fourth level 'Z' and 'x' are '[]'
*Fourth level '!' is '|'
*All useful symbols are now on the fourth row, read the configuration below for details

Substitute the following parts into your rx-51 file.  ALWAYS TEST to ensure you have done it right BEFORE rebooting or you WILL end up with an unbootable system.

 partial hidden alphanumeric_keys
 xkb_symbols &quot;english_base&quot; {
 
    // 1. row
    key &lt;AD01&gt;  { [ q,      Q,      1,      F1      ] };
    key &lt;AD02&gt;  { [ w,      W,      2,      F2      ] };
    key &lt;AD03&gt;  { [ e,      E,      3,      F3      ] };
    key &lt;AD04&gt;  { [ r,      R,      4,      F4      ] };
    key &lt;AD05&gt;  { [ t,      T,      5,      F5      ] };
    key &lt;AD06&gt;  { [ y,      Y,      6,      F6      ] };
    key &lt;AD07&gt;  { [ u,      U,      7,      F7      ] };
    key &lt;AD08&gt;  { [ i,      I,      8,      F8      ] };
    key &lt;AD09&gt;  { [ o,      O,      9,      F9      ] };
    key &lt;AD10&gt;  { [ p,      P,      0,      F10     ] };
    key &lt;AB08&gt;  { [ comma,      semicolon,  equal,      F11     ] };
    key &lt;BKSP&gt;  { [     BackSpace,  Escape,     BackSpace,  F12     ] };
 
    // 2. row
    key &lt;AC01&gt;  { [ a,      A,      asterisk,   asciicircum ] };
    key &lt;AC02&gt;  { [ s,      S,      plus,       percent     ] };
    key &lt;AC03&gt;  { [ d,      D,      numbersign, numbersign  ] };
    key &lt;AC04&gt;  { [ f,      F,      minus,      minus       ] };
    key &lt;AC05&gt;  { [ g,      G,      underscore, underscore  ] };
    key &lt;AC06&gt;  { [ h,      H,      parenleft,  parenleft   ] };
    key &lt;AC07&gt;  { [ j,      J,      parenright, parenleft   ] };
    key &lt;AC08&gt;  { [ k,      K,      ampersand,  parenright  ] };
    key &lt;AC09&gt;  { [ l,      L,      exclam,     bar     ] };
    key &lt;AB09&gt;  { [ period,     colon,      period,     question    ] };
 
    // 3. row
    key &lt;AB01&gt;  { [ z,      Z,      sterling,   bracketleft ] };
    key &lt;AB02&gt;  { [ x,      X,      dollar,     bracketright    ] };
    key &lt;AB03&gt;  { [ c,      C,      asciitilde, asciitilde  ] };
    key &lt;AB04&gt;  { [ v,      V,      slash,      less        ] };
    key &lt;AB05&gt;  { [ b,      B,      backslash,  greater     ] };
    key &lt;AB06&gt;  { [ n,      N,      quotedbl,   braceleft   ] };
    key &lt;AB07&gt;  { [ m,      M,      apostrophe, braceright  ] };
    key &lt;SPCE&gt;  { [ space,      space,      space,      at      ] };
 


 partial hidden alphanumeric_keys
 xkb_symbols &quot;arrows_4btns&quot; {
    // standard arrows mapping
    // normal 2nd level must not be enumerated to allow text selection with Shift key
    key &lt;UP&gt;    { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [    Up,     Prior   ] };
    key &lt;LEFT&gt;  { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [    Left,   Home    ] };
    key &lt;DOWN&gt;  { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [    Down,   Next    ] };
    key &lt;RGHT&gt;  { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [    Right,  End ] };
 


 key &lt;RTRN&gt;  { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [    KP_Enter,   Tab  ] };

&lt;br&gt;

===xbindkeys!===

The following allows: 

*fullscreen toggle of any application with ctrl+space
*middle click with blue+stylus down
*right click with shift+stylus down

Put the following in your .xbindkeysrc and launch with:

 xbindkeys -f /home/user.xbindkeysrc

NOTE! You also need to install xdotool and wmctrl.

 &quot;wmctrl -r :ACTIVE: -b toggle,fullscreen&quot;
 m:0x4 + c:65
 Control + space

 &quot;xdotool click 2&quot;
 m:0x80 + b:1 + release

 &quot;xdotool click 3&quot;
 m:0x01 + b:1 + release</text>
    </revision>
  </page>
  <page>
    <title>Remote desktop</title>
    <id>2797</id>
    <revision>
      <id>40641</id>
      <timestamp>2010-12-09T15:14:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">A remote desktop allows one to perform remote computing using graphical applications which run on the server, but are viewed from a client. Although the precise features differ per implementation the common advantages include

* Saving CPU/RAM/network resources on client
* Roaming
** 24/7 availability
** Session management, such as detaching/(re)attaching or 'shadowing' of session
** Client agnostic, allowing client to be turned off
* Remote assistance
* Running non-native software

Remote desktop is used by in many market segments, from home user to enterprise.

In our use-case the client will be [[Nokia N900]] (may also work with previous hardware/software). Currently, on Maemo, remote desktop software requires using a stylus.

The available options for Nokia N900/Maemo 5 are as follow

== VNC ==
VNC (Virtual Network Connection) is a cross-platform protocol traditionally used for remote desktop over LANs and other low-latency, high-bandwidth networks. In order to use it over consumer-grade broadband or GPRS workarounds are necessary.

* [http://talk.maemo.org/showthread.php?t=30976 Howto to get VNC working over SSH tunnel.]

[http://maemo.org/downloads/product/Maemo5/vncviewer/ VNC Viewer for Maemo5] is available in Fremantle/[[Extras]].

== RDP ==
rdesktop-cli and rdesktop are working on the N900. See this thread for details: http://talk.maemo.org/showthread.php?t=33770.

rdesktop-cli is a command line tool. On the other hand rdesktop can be used both as a command line tool and a GUI tool.

== NX ==
''Fixme'' qtnx?

== x2go ==
A fork of NX. [http://x2go.obviously-nice.de/index.php?id=7 x2go Maemo client for Diablo]

== X11 ==
SSH X11 forwarding allows you to run applications on a remote computer running an X11 server and have them displayed on a local X11 client, using the SSH protocol to keep the connection secure. For the purposes of Maemo devices, this allows you to connect to your Linux machine from your N900, run any X11 application on your Linux machine, and have it forward the display and keyboard/mouse capture to your N900.

You will need to have installed an ssh client on your N900 to do this.

The below assumes you are connecting to a Linux PC called 'host', with a user account 'user'. Note that the PC will need to have X11 Forwarding enabled in its sshd configuration file. This file can usually be found in &lt;code&gt;/etc/ssh/&lt;/code&gt;; consult your SSH documentation on how to enable this feature if the instructions below return an error.

Open an xterminal on your N900 and type:

'''~$''' ssh -X user@host

Answer the password prompt:

'''user@host's password:'''

You now have a CLI prompt from which you can launch any X11 applications on your Linux machine and have them displayed on your N900.

'''user@host:~$'''

[[Category:Fremantle]]
[[Category:Power users]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Repartitioning the flash</title>
    <id>3679</id>
    <revision>
      <id>47258</id>
      <timestamp>2012-04-17T19:42:40Z</timestamp>
      <contributor>
        <username>bzzz</username>
        <id>2476</id>
      </contributor>
      <comment>add new method using backupmenu</comment>
      <text xml:space="preserve">By default the internal eMMC flash card on the [[Nokia N900|N900]] (&lt;code&gt;/dev/mmcblk0&lt;/code&gt;) is partitioned as follows:
# 27 GiB VFAT [[MyDocs folder|MyDocs partition]] on &lt;code&gt;/dev/mmcblk0p1&lt;/code&gt;. When Maemo is booted, this is mounted on /home/user/MyDocs, however it is unmounted and exposed when the N900 is connected to a PC in mass storage mode
# 2 GiB &lt;code&gt;/home&lt;/code&gt; partition on &lt;code&gt;/dev/mmcblk0p2&lt;/code&gt;. This also contains the /opt folder (mounted on /home/opt) where optified apps are stored
# 768 MiB swap partition &lt;code&gt;/dev/mmcblk0p3&lt;/code&gt;
Total 32 GB (not GiB)

There are several reasons why you might want to repartition your eMMC flash:
* if you have a Linux background you may prefer POSIX filesystems like ext3 over the ancient VFAT filesystem. VFAT is used as it can be accessed on most non-Linux computers and is thus useful for data exchange in USB mass storage mode
* booting alternative operating systems (e.g., Mer, Moebian, Fedora) requires independent partitions
* loopback files for chroots (see [[Easy Debian]]) can be stored in VFAT MyDocs, but access is much slower than on a native partition. Also, loopback files in MyDocs are not available during USB mass storage mode
* a large /home (ext3) partition allows for many more installed applications. If backing up a linux computer it allows you to keep your filesystem permissions and other extended attributes. It can be used to create native Linux chroot enviroments (e.g., for installing non-optified software or Debian)

==Before partitioning==
* '''BACKUP YOUR DATA!''' A mistake during partitioning could brick your device, lead to complete data loss and require reflashing. Use the built-in Backup application to backup all settings etc. Backup this and the contents of MyDocs to your computer. Remove your microSD card to prevent data loss. Following this tutorial should minimize your risk of data loss but as always '''repartitioning is at your own risk'''.
* Make sure your battery is not nearly empty (rebooting costs a lot of power) or, even better, plug in your charger.
* Partitions on flash memory should be aligned to flash block sizes, which are multiples of 2, for example 32 KB. To be on the safe side use 128 KB or even 1MB.

==Using GParted - Resizing made simple==

By far the simplest way to resize your partitions is to use a GParted live CD/USB http://sourceforge.net/projects/gparted/files/gparted-live-stable/, or GParted on a Linux system or use the GParted-Live-CD in VirtualBox on Windows or MacOSX. To gain access to the whole eMMC, install BackupMenu or BackupMenu-Multiboot. 

Boot your N900 with the keyboard exposed to load BackupMenu. At this point you should also back up your rootfs and optfs to a microSD. Press w to go into USB Mass Storage mode (read-write), and connect up to your computer. You will now be able to access the whole eMMC. If you boot into Maemo rather than BackupMenu, then only the MyDocs partition will be visible.

''It is also possible to access the full eMMC by loading the [http://wiki.meego.com/ARM/N900/Using_Rescue_Initrd Rescue Initrd and kernel]. This also gives you an option to enter USB mass storage mode (read-write).''

Because of hardcoding etc. it is easiest to leave your partitions in the same order and filesystem: MyDocs vfat(/dev/mmcblk0p1 mounted on /home/user/MyDocs), /home ext3 (/dev/mmcblk0p2), and swap (/dev/mmcblk0p3). Generally you will want to shrink MyDocs and grow /home. You can also grow the swap space, which is easier than setting up a [[swap on microSD]]. However this may not really result in much benefit (see the linked page for more information). You can then create a 4th partition if you wish.

Align to MiB, not cylinders! When you are done, apply your changes then disconnect and reboot your N900 and everything should load as usual. It would be very unlikely for something to go wrong if you only resized MyDocs and /home. If something does go wrong, you will need to reflash the eMMC. You should try again at this point. If you want to give up then you will need to restore your optfs from the BackupMenu backup as well as copy the MyDocs files back over.

If you want to have more than 4 partitions, create an extended partition. Always keep MyDocs as the first partition, and the first ext3 partition as /home. (Not sure whether an ext3 inside an extended partition would count.) You can edit genfstab.awk (more proper way, resembling how Maemo does it natively) or rcS-late (in this case, system does &quot;double work&quot;, as it first proceed genfstab.awk, then overwrite commands by rcS-late ones) to automount any new partitions, or just mount them normally. (Remember to use mount options noatime, and maybe nodiratime,nobh as well)

==Manual solutions==
The rest of this page describes manual solutions.
# [[#Solution .231: swap .2Fhome and MyDocs partition|Swap the 2 GB &lt;code&gt;/home&lt;/code&gt; and 27GB MyDocs partition]] to get a 2 GB VFAT MyDocs and a 27 GB ext3 &lt;code&gt;/home&lt;/code&gt;. No partition size need to be changed and only a single reboot is necessary. This is the least invasive solution and can be easily reverted. It leaves a smaller MyDocs partition for VFAT USB mass storage mode.
# [[#Solution .232: shrink MyDocs to add additional partitions|shrink MyDocs to add additional partitions]] (e.g., for other OS). 
# setup an [[#Solution .233: arbitrary size for .2Fhome and MyDocs|arbitrary &lt;code&gt;/home&lt;/code&gt; and MyDocs division of the space]]. this is a little bit more complicated.
# [[#Solution .234: single large .2Fhome partition.2C loopback for USB|get rid of the MyDocs partition]], setup a single 31 GB ext3 partition, and replace MyDocs with loopback file(s) that could also be USB exported and have arbitrary size and filesystem. This is useful if you rarely need USB mass storage mode or if you want to export different filesystem images depending on the computer. However, the loopback files may be significantly slower.

== Some remarks ==
* Maemo hardcodes the MyDocs partition as &lt;code&gt;/dev/mmcblk0p1&lt;/code&gt; in several applications. If you want MyDocs as VFAT, it must be the first partition in the table (but not necessarily the first on the disk). To get around this, you could modify several scripts belonging to ke-recv
** if you don't want a VFAT MyDocs partition, you need to create MyDocs/DCIM directory with &quot;user&quot; permissions for the camera app to work [https://bugs.maemo.org/show_bug.cgi?id=7160 proper permissions].
* &lt;code&gt;/home&lt;/code&gt; is the first ext3 partition, swap can be any partition number
* it is not a good idea to unmount &lt;code&gt;/home&lt;/code&gt; in a running system. umounting &lt;code&gt;/home/user/MyDocs&lt;/code&gt; is generally safe (if all applications are closed)
* the most relevant scripts for partitioning are &lt;code&gt;/etc/event.d/rcS-late&lt;/code&gt;, &lt;code&gt;/usr/sbin/osso-usb-mass-storage-enable.sh&lt;/code&gt; and &lt;code&gt;/usr/sbin/osso-usb-mass-storage-disable.sh&lt;/code&gt;
* All instructions must be executed [[root access|as root]] (either from [[Terminal]] or via ssh)
* copy &amp; paste is recommended (typos are dangerous). For the table files use &quot;vi&quot; or &quot;cat &gt; table&quot; and Ctrl+D to quit

* The only &lt;code&gt;fdisk&lt;/code&gt; utility on the device is &lt;code&gt;sfdisk&lt;/code&gt;. &lt;code&gt;fdisk&lt;/code&gt; could be extracted from Debian packages but it aligns partitions based on virtual harddisk cylinders and not on flash blocks (you cn use option -uS in sfdisk for sector (512 byte) alignment)
** to modify the whole partition table use&lt;pre&gt;sfdisk -d /dev/mmcblk0 &gt; table&lt;/pre&gt;edit the file table, and overwrite the partition table with&lt;pre&gt;sfdisk --no-reread /dev/mmcblk0 &lt; table&lt;/pre&gt;
** ids of single partitions can be changed with&lt;pre&gt;sfdisk -c /dev/mmcblk0 2 83&lt;/pre&gt;(this example changes the 2nd partition to 83=Linux).
* you can boot without a &lt;code&gt;/home&lt;/code&gt; partition (for example, by commenting out the line in rcS-late or by change the partition ids to something other than 83). Maemo will create a default home (about 10 MB) on NAND. Most relevant settings (wifi, desktop) are stored on NAND anyway. Make sure to&lt;pre&gt;rm -rf /home/user&lt;/pre&gt; before reboot. This trick is useful if want to change the layout of the eMMC completely.
* ext3 partitions can be grown online, but not be shrunk.
* [http://www.gnu.org/software/parted/index.shtml parted] does not work from inside Maemo (it always crashed due to some mmap problem), works fine when booting from backupmenu and working outside of maemo.
* If you create a new ext3 filesystem, you might want to do &lt;code&gt;tune2fs -c0 -i0 device&lt;/code&gt; on your new newly created ext3 filesystems so the fs is never fsck'd on boot (these are the settings on the default ext3 /home partition).

== Solutions ==

'''WARNING: The following instructions have not been tested thoroughly yet!'''
Please report problems, positive and negative feedback to [mailto:moebian-devel@garage.maemo.org this address].

'''WARNING: Please have a look at [http://talk.maemo.org/showpost.php?p=709886&amp;postcount=191 Titan's comments] Before Proceeding!'''
It seems that with [[Maemo 5/PR1.2|PR1.2]] release below methods do not work as it is impossible to boot without &lt;code&gt;/home&lt;/code&gt;. Just so that someone who missed the post doesn't have to reflash 5-6 times after tries &amp; retries only to find it will not work.

Solution #1 Seems to be working fine as &lt;code&gt;/home&lt;/code&gt; is preserved.

=== Solution #1: swap /home and MyDocs partition ===
TODO, see [http://talk.maemo.org/showpost.php?p=424811&amp;postcount=66 how to swap FAT and ext3 parition]

We assume you have the standard Nokia partition layout on your device.

'''Warning: the contents of MyDocs will deleted. Perform a backup!'''

 umount /home/user/MyDocs
 sfdisk -c /dev/mmcblk0 1 83 # optional (safer): change FAT to ext3 id 
 mkfs.ext3 /dev/mmcblk0p1 # create ext3 on large partition
 mount /dev/mmcblk0p1 /mnt # mount new /home
 cp -a /home/* /mnt # copy contents of /home to large partition
 umount /mnt # unmount it
create the file &quot;table&quot;:
 unit: sectors
 /dev/mmcblk0p1 : start= 56631360, size=  4194304, Id= c
 /dev/mmcblk0p2 : start=       64, size= 56631296, Id=83
 /dev/mmcblk0p3 : start= 60825664, size=  1572864, Id=82
 /dev/mmcblk0p4 : start=        0, size=        0, Id= 0
continue with
 sfdisk --no-reread /dev/mmcblk0 &lt; table # change partition table, swap p1 and p2
 reboot; exit # reboot to re-read new table
after reboot
 mkfs.vfat -F32 /dev/mmcblk0p1  # create VFAT on 2GB partition
 mount /home/user/MyDocs # mount it
voila!

NB: To check size of new home partition
 du -ch /home | grep total

==== How to revert ====
'''Warning: /home must have less than 2 GB usage! MyDocs will be deleted!'''

 umount /home/user/MyDocs
 sfdisk -c /dev/mmcblk0 1 83 # optional (safer): change FAT to ext3 id 
 mkfs.ext3 /dev/mmcblk0p1 # create ext3 on smaller partition
 mount /dev/mmcblk0p1 /mnt # mount new /home
 cp -a /home/* /mnt # copy contents of /home to large partition
 umount /mnt # unmount it
create the file &quot;table&quot; (this is the original layout):
 unit: sectors
 /dev/mmcblk0p1 : start=       64, size= 56631296, Id=c
 /dev/mmcblk0p2 : start= 56631360, size=  4194304, Id= 83
 /dev/mmcblk0p3 : start= 60825664, size=  1572864, Id=82
 /dev/mmcblk0p4 : start=        0, size=        0, Id= 0
continue with
 sfdisk --no-reread /dev/mmcblk0 &lt; table # change partition table, swap p1 and p2
 reboot; exit # reboot to re-read new table
after reboot
 mkfs.vfat -F32 -s64 /dev/mmcblk0p1  # create VFAT on 27GB partition
 mount /home/user/MyDocs # mount it

=== Solution #2: shrink MyDocs to add additional partitions ===
TODO, see [https://garage.maemo.org/plugins/wiki/index.php?RepartitionInstructions&amp;id=1382&amp;type=g Repartitioning: create extended partitions]

'''Warning: the contents of MyDocs will deleted. Perform a backup!'''

 umount /home/user/MyDocs
create a new partition layout in file &quot;table&quot;. Here MyDocs (mmcblk0p1) is shrunk to 19GB (39854080*512)/(1024^3), and mmcblk0p2 is an 8GB extended partition containing ext3 partitions mmcblk0p5 and 6 (4.7GB and 3.3GB respectively). Swap is mmcblk0p4 (768MB) and /home is mmcblk0p3 (2GB).
 unit: sectors
 /dev/mmcblk0p1 : start=       64, size= 39854080, Id= 0
 /dev/mmcblk0p2 : start= 39854144, size= 16777216, Id= 5
 /dev/mmcblk0p3:  start= 56631360, size=  4194304, Id=83
 /dev/mmcblk0p4 : start= 60825664, size=  1572864, Id=82
 /dev/mmcblk0p5 : start= 39854160, size=  9765680, Id=83
 /dev/mmcblk0p6 : start= 49619856, size=  7011504, Id=83
continue with
 sfdisk --no-reread /dev/mmcblk0 &lt; table # change partition table
 reboot; exit # reboot to re-read new table
after reboot
 sfdisk -c /dev/mmcblk0 1 c # optional (safer): change FAT to ext3 id 
 mkfs.vfat -F32 /dev/mmcblk0p1  # recreate VFAT on MyDocs
 mkfs.ext3 /dev/mmcblk0p5
 mkfs.ext3 /dev/mmcblk0p6
reboot and restore MyDocs

=== Solution #3: arbitrary size for /home and MyDocs ===
TODO, see also [[User:Ruskie#Repartitioning]]

'''Warning: /home and MyDocs will be deleted. Backup everything.'''
Backup all settings (to your computer or SD), reflash, restore the settings and install rootsh (no other applications!).

create your new partition table layout in the file &quot;table&quot;.
Make sure all partitions are aligned to 32 KB and sizes are multiples of 32 KB.
The sectors are 512 bytes, so the block counts must multiplied by 2.
For example, 2GB= 4194304 blocks. Each partition should start at start+size of the previous partition.
The first partition must start at 64. Make sure to keep the swap partition (the number may be changed).
Initially set the id of your partition to 0 so that they are not mounted at reboot.
An example layout with 2 GB part1 and 27 GB part2:
 unit: sectors
 /dev/mmcblk0p1 : start=       64, size= 4194304 , Id=0
 /dev/mmcblk0p2 : start= 4194368, size=  56631296, Id=0
 /dev/mmcblk0p3 : start= 60825664, size=  1572864, Id=82
 /dev/mmcblk0p4 : start=        0, size=        0, Id= 0
(Optional) Dump your current partition table with the following command
 sfdisk -d /dev/mmcblk0 &gt; table.old
continue with
 sfdisk --no-reread /dev/mmcblk0 &lt; table # change partition table
 reboot; exit
The device creates a default /home in NAND.
Now change the parition ids and create the file systems
 sfdisk -c /dev/mmcblk0 1 c
 mkfs.vfat -F32 -s64 /dev/mmcblk0p1
 sfdisk -c /dev/mmcblk0 2 83
 mkfs.ext3 /dev/mmcblk0p2
if you have change to location or size of swap run
 mkswap &lt;swap-partition&gt;
finish with
 rm -rf /home/user
 reboot; exit
finally restore all your backups

=== Solution #4: single large /home partition, loopback for USB ===
TODO, see [http://talk.maemo.org/showpost.php?p=425359&amp;postcount=68 how to implement USB mass storage with a loopback file]

like solution #3, but don't create a MyDocs partition.

how to create a sparse 1GB loopback file:
 dd if=/dev/zero of=FAT1GB bs=1M seek=1024 count=0 # small 256MB image
 losetup /dev/loop0 FAT1GB
 mkfs.vfat -F32 /dev/loop0
 vi /etc/fstab # replace /dev/mmcblk0p2 with /dev/loop0
 mount MyDocs

=== Solution #5: Edit eMMC image (works on PR1.2, by globalbus) ===
Backup MyDocs, we need to flash device.
Open eMMC image in hex editor, go to 0xcb, you will see this
 partition {size = 4096;fs_type = &quot;ext3&quot;;prefix = &quot;home&quot;;}
Edit size parameter (do not change the size of file! The number must be from 1000 to 9999) Flash it now.

If MyDocs have incorrect size or it's not mounting automatically you need to format it and paste files from backup.
 umount /dev/mmcblk0p1
 mkfs.vfat -F32 -s64 /dev/mmcblk0p1
 mount /dev/mmcblk0p1

=== Solution #6: Custom repartitioning from a linux PC ===
Taken from [http://wiki.meego.com/ARM/N900/Using_Rescue_Initrd Using Rescue Initrd - MeeGo Wiki].

'''This way is only intended for users who have partitioned their systems before. Your files will not be affected unless you explicitly ask your partitioner to do so although there's nothing wrong with taking extra care and backing up your files'''

Install [http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_Flasher-3.5 flasher-3.5] on your box.

Get the rescue kernel and initrd rpm and extract them in a directory:
  &lt;pre&gt;mkdir n900-rescue-initrd
cd n900-rescue-initrd
wget http://repo.meego.com/MeeGo/releases/1.0/core/repos/armv7l/packages/armv7l/nokia-n900-rescue-initrd-0.1-1.3.armv7l.rpm
wget http://repo.meego.com/MeeGo/releases/1.0/core/repos/armv7l/packages/armv7l/kernel-n900-2.6.33.3-11.2.armv7l.rpm
rpm2cpio nokia-n900-rescue-initrd-0.1-1.3.armv7l.rpm | cpio -vid 
rpm2cpio kernel-n900-2.6.33.3-11.2.armv7l.rpm  | cpio -vid &lt;/pre&gt;
Now you're ready to boot the device:

Turn off your N900 by removing the battery.

Start flasher:
  &lt;pre&gt;sudo flasher-3.5 -k boot/vmlinuz-2.6.33.3-11.2-n900 -n boot/initrd.img-rescue-2.6.33.3-11.2-n900 -l -b&quot;rootdelay=1 root=/dev/ram0&quot; --set-rd-flags=no-omap-wd --set-rd-flags=no-ext-wd --enable-rd-mode&lt;/pre&gt;
Connect N900 to your PC.

Press U on the keyboard and keep holding it.

Put the battery back in.

Wait for the device to boot and press U to enable USB storage mode. The device is now added to the list of your storage devices as an increment of /dev/sd.

Partition it using your favorite partitioner (GParted recommended)

''' Don't forget to repeat the &quot;Start flasher&quot; procedure with '''&lt;code&gt;sudo flasher-3.5 --disable-rd-mode&lt;/code&gt; '''to disable R&amp;D mode.'''

=== Solution #7: Custom repartitioning from a linux PC without R&amp;D mode ===
Shorter variant of #6, using a boot manager instead of R&amp;D mode (no flasher on host required)

* Install backupmenu package first (see [http://talk.maemo.org/showthread.php?t=63975 Announce Thread] for details)
* If you want to change file systems (like ext3 to ext2), do that now
* Shut down N900
* Start with slider open, USB cable removed
* BackupMenu will show up. 
* Insert USB cable. Press '''w''' to enable USB mass storage mode
* The internal memory will now show up as additional device on your computer, like /dev/sdb. Unmount if automounted and do your resizing.
* Remove device, press '''d''' on the N900 to disconnect
* Press '''q''' and close the slider immediately. The N900 will reboot and the job is done

=== Solution #8: arbitrary size for /home and MyDocs (PR 1.2/3 compatible) ===
This solution is based off solution #3. The key difference is that this solution uses a MicroSD card as a temporary /home, so Maemo will be able to reboot in the process, thus making this solution PR1.2 and 1.3 compatible. '''MyDocs will be deleted, make a backup of it!''' This solution is tested on a PR 1.3 reflashed device, but it should work on non-clean devices aswell. If done correctly, you won't lose any settings/calendar/etc (just MyDocs), but as repartitioning is a risky proces: '''backup everything!'''

Prerequisites:
*Partition the MicroSD card so that it has a partition big enough to hold all data on /home (which is 2gb at its max). 
*Format this partition as ext3. I'll assume you've only made one big partition (which will be /dev/mmcblk1p1 in Maemo).
*Make sure you've read and understood solution #3 completely, as this one is based on it

This method involves moving /home. If you mess up the device names, format incorrectly or copy /home wrongly, Maemo will get into an infinite reboot loop, requiring a reflash to restore!!

-Mount your freshly partitioned and formatted MicroSD card
 mount /dev/mmcblk1p1 /mnt

-Unmount MyDocs (after backing it up ;)
 umount /home/user/MyDocs

-Copy /home to your MicroSD card (assuming one big ext3 partition)
 cp -a /home/* /mnt

-Open /usr/lib/genfstab.awk and comment out the following pieces of code
 start == 1 &amp;&amp; $6 == 83 &amp;&amp; !__home {
        printf &quot;%s /home ext3 %s 0 0\n&quot;, $1, home_opts            
         printf &quot;/home/opt /opt none bind\n&quot;
         __home++
 }

 start == 1 &amp;&amp; $6 == &quot;c&quot; &amp;&amp; !__fat {
        printf &quot;%s /home/user/MyDocs vfat %s 0 0\n&quot;, $1, fat_opts
        __fat++
 }
This will make sure the default /home and MyDocs won't get mounted on reboot.

-Open /etc/event.d/rcS-late, find the line '-f /usr/lib/genfstab.awk &gt; $tmp_fstab' and add this below it
 echo &quot;/dev/mmcblk1p1 /home ext3 rw,noatime,errors=continue,commit=1,data=writeback 0 0&quot; &gt;&gt; $tmp_fstab
 echo &quot;/home/opt /opt none bind&quot; &gt;&gt; $tmp_fstab
Maemo will then use the MicroSD ext3 partition (containing a copy of your /home) as the new /home after a reboot

-Reboot your phone now. If all went well, you should notice no difference between now and the situation before you started, except for that MyDocs is unavailable. If it is available, you can unmount it with 'umount /home/user/MyDocs'

-Now we can repartition the flash, as it is unused right now (except for the swap partition). An example layout with 2 GB MyDocs and 27 GB /home: 
 unit: sectors
 /dev/mmcblk0p1 : start=       64, size= 4194304 , Id=c
 /dev/mmcblk0p2 : start= 4194368, size=  56631296, Id=83
 /dev/mmcblk0p3 : start= 60825664, size=  1572864, Id=82
 /dev/mmcblk0p4 : start=        0, size=        0, Id= 0
Save the above code as a plain text file (eg. as table)on your N900. Use Id=c for MyDocs (FAT), 83 for EXT partitions and 82 for swap partition.

-Apply the partition table by running the following command in the same directory as the table file:
 sfdisk --no-reread /dev/mmcblk0 &lt; table 

-Reboot the phone

-Format the newly created large partition as ext3
 mkfs.ext3 /dev/mmcblk0p2

-And the fresh smaller one as FAT for MyDocs
 mkfs.vfat -F32 -s64 /dev/mmcblk0p1

-Mount the ext3 partition as /mnt
 mount /dev/mmcblk0p2 /mnt

-Copy you /home back
 cp -a /home/* /mnt

-Open /usr/lib/genfstab.awk again and uncomment the code you've previously commented.

-Remove the lines from /etc/event.d/rcS-late you've added before

Reboot again and you're done!. The great part is with the aid of a MicroSD card, you can truly partition exactly as you like. For example: you can also create a swap partition on the sd card, comment out the swap part of genfstab.awk, add an &quot;echo &quot;/dev/mmcblk1p'''X''' none swap sw 0 0&quot; &gt;&gt; $tmp_fstab&quot; to rcS-late (where X is the MicroSD swap partition). This will allow you to repartition the swap partition on the eMMC (or completely remove it, so that only the MicroSD card will be used as swap (for discussion about this see [http://talk.maemo.org/showthread.php?p=846082 this thread]. As long as you edit rcS-late and genfstab.awk correcly, you can partition without restrictions

P.s. Solution #4 applies in the same way to this solution, as to #3



== References ==

* [https://maemo.org/community/brainstorm/view/more_efficient_and_flexible_use_of_internal_flash brainstorm] and [http://talk.maemo.org/showthread.php?t=37869 discussion]
* [http://talk.maemo.org/showthread.php?t=35122 Repartitioning the flash]

[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Repeating entries in Calendar</title>
    <id>4206</id>
    <revision>
      <id>35267</id>
      <timestamp>2010-06-03T12:08:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>slightly wikify, categorize</comment>
      <text xml:space="preserve">The [[Nokia N900|N900]] Calendar app can create events with a limited range of recurrence types: every day, every workday, every week, every month or every year.  However, the underlying calendar engine is capable of understanding more complex repetition types (for example every 4th week) which the Calendar app can display.  

To get such an entry onto your device calendar, create it using Outlook (or other calendar app of your choice), export the entry as an iCalendar file and send it to your device by email.  Tap the file in the email and select ''Open with Calendar'', then select which calendar you want it to be in.  Do no try to edit it on device unless you want the repetition to revert to one of the simple types available on device.

[[Category:Calendar]]
[[Category:HowTo]]</text>
    </revision>
  </page>
  <page>
    <title>Replacing n900 camera</title>
    <id>4584</id>
    <revision>
      <id>40423</id>
      <timestamp>2010-12-02T09:20:19Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>move content and redirect</comment>
      <text xml:space="preserve">#REDIRECT [[N900 camera sensor#Replacing the camera]]</text>
    </revision>
  </page>
  <page>
    <title>Repository</title>
    <id>3121</id>
    <revision>
      <id>38080</id>
      <timestamp>2010-08-25T13:42:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut lots of non-existent links, wikify slightly, armel packages from Debian probably will work</comment>
      <text xml:space="preserve">The purpose of this page is to answer some (good) questions and misunderstandings that come up frequently in the community. These questions are:
# Where can I find new [[software|applications]] for my Maemo device?
# What is this &quot;[[Extras]]&quot; I keep hearing about? How about ''repository'' and ''package''?
# How does maemo.org facilitate application development, testing, and distribution?
# Why shouldn't I download .debs or install applications from [[Extras-devel]]?
# How can I learn more about these resources?

==The Basics==

A repository, or &quot;repo&quot; is a library or storehouse of software made available online. All software for Maemo is distributed this way, most of it through the Extras repository hierarchy. Everything stored in the repository is contained in packages. 

===Benefits===

Using a repository system for software has some great benefits:
* '''Resolving dependencies''' When a package is requested to be installed, an [[application manager]] can automatically install any other packages the application requires in order to work. These other packages are called dependencies.
* '''Update awareness''' Whenever a new version of the application becomes available, it will automatically be detected by the application manager. 
* '''Uniformity''' All users can be sure they have the exact same copy of the software. This makes testing and sharing information about the applications easier, which is good for both the developer and the user.
* '''Security''' Because all software comes from repositories, knowing the requirements for software to get into the repository means knowing the security risks involved when installing software. Compare this with downloading applications from arbitrary websites operated by independent parties. Each and every one of those operators has to be trusted not to provide malicious software.

===Repositories and You===

Because of the simplicity, safety and convenience of repositories, ''the only '''supported''' way to install applications in Maemo 5 is using an application manager set up to use the repositories''. However, no knowledge of this or understanding of repositories is necessary for end users, who can simply browse to [http://maemo.org/downloads the downloads page] on their maemo device. The page lists all the applications in the main Maemo repository  (Extras) and the user can simply click. The application manager will then automatically handle everything necessary to install the application.

===Beyond the Basics===

Maemo has a hierarchy of repositories that help the community move forward. New applications are first packaged and uploaded to the Extras-devel repository. They are worked on by developers until they are considered safe for users. At that point, they are &quot;promoted&quot; to [[Extras-testing]]. Power users who understand that these packages might still be risky to use and are able to recover from any problems then install and test the packages. When enough testers have given a vote of approval, the packages are again promoted, this time to Extras. They are available to the whole community.

Because of this hierarchy, there may be multiple versions of a package in the repositories: a stable version in Extras, a beta version in Extras-testing, and a development version in Extras-devel.

==More technical details for the curious==

===Debian Package System===

[[Debian]] has a [http://www.debian.org/doc/manuals/repository-howto/repository-howto.en.html manual] on how to use repositories, which is relevant because maemo applications are distributed using the Debian package system. In the Debian package system, each package is a compressed archive (similar to the well-known &quot;zip&quot; file) with a .deb extension, and has information about its contents and dependencies built into it. When these packages are installed, the [[package manager]] maintains records of all of this information, making it easy to uninstall again.

===Compatibility===

Note that while Maemo uses the Debian package system, the actual contents of the packages are not the same. A .deb package from the Debian project or Ubuntu won't work with Maemo, unless it uses the &lt;code&gt;armel&lt;/code&gt; [[processor architecture]].

===Individual .debs===

When a developer is building a new package, she or he might use one of the Debian utility programs to install the individual package. It is hoped that the preceding discussion was sufficient to convey that this is not an end-user appropriate usage of the Debian package system.

== List of Maemo repositories ==

*[[Extras]]
*[[Extras-testing]]
*[[Extras-devel]]
*[[Documentation/devtools/maemo5|Devtools]]

[[Category:Power users]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Reprepro</title>
    <id>3236</id>
    <revision>
      <id>28890</id>
      <timestamp>2010-02-11T12:28:04Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Software]]</comment>
      <text xml:space="preserve">[http://mirrorer.alioth.debian.org/ reprepro] is a tool to create and manage debian package repositories. This page documents its installation on stage.maemo.org, the Maemo repository server. Note that this is not the tool that maemo.org uses.

''' Preparation '''

Before setting up the repositories, I read that it might be good idea to have a separate partitions for the repositories. From the reprepro man pages: &quot;The most annoying problem not yet worked around is database corruption when the
disk runs out of space. Ideally put the database on another partition to
avoid that.&quot; So it seems clear that a large disk is necessary for the package
repositories. 

reprepro has some dependencies, notably Berkeley DB, and it recommends
gnupg-agent and inoticoming. Using inotify and inoticoming to check for
incoming packages is also central to the repo system, it's worth noting that
inoticoming and reprepro are maintained and written by the same person.

So, in short, I've installed these packages and their dependencies on the repository server: reprepro, libdb4.2, and inotincoming.

-- Note: explicitly stating libdb4.2 does not make much sense here. aptitude will get whatever version of that crappy lib reprepro needs just fine.


''' Set up '''

The first step I took was to create directories for the binary deb packages:

    mkdir /srv/extras/
    mkdir /srv/extras-devel/
    mkdir /srv/extras-testing/

Here we're putting the directories under the /srv/ directory so that we can isolate them from the rest of our web content. I have installed nginx to serve the repos because it is small and fast.

-- Note: If you try this at home, it's usually a good idea to only make one repository and the different projects just different distributions within that. (Unless you have a reason against that, of course).


''' Configuration '''

To create a configuration file for reprepro, we need to create a &quot;conf&quot; dir for each of our top level directories. So for diablo extras, we'll have a configuration file called /srv/extras/conf/distributions. We can add a configuration for fremantle extras in the same file since you can have multiple distros per configuration. Here is my distribution file for 'diablo':

 Origin: maemo.org
 Label: Maemo
 Suite: extras
 Codename: diablo
 Version: 0.1
 Architectures: i386 armel source
 Components: free non-free
 Description: Maemo.org package repositories for diablo
 Log: /var/log/repos/  

''' Logging '''

I have tried to make reprepro as verbose as possible, at least to start with. The logs are held in a directory along with the inoticoming logs in /var/log/repos/.


''' Adding packages '''

Now once we have reprepro set up, we can add a package this way:
 sudo reprepro -Vb . includedeb diablo /home/jeremiah/maemo-perl-packages/libv-perl_0.13-1_all.deb

The -b flag tells reprepro where its base dir is, here represented by the current dir (.) but you can export a variable with REPREPRO_BASE_DIR. Those type of directories are all configurable with reprepro and well documented in the man pages.

Here is the output from that command, showing how reprepro created the needed directories and also added a tracking database as well as exported indexes;

 Created directory &quot;./db&quot;
 /home/jeremiah/maemo-perl-packages/libv-perl_0.13-1_all.deb: component guessed  as 'free'
 Created directory &quot;./pool&quot;
 Created directory &quot;./pool/free&quot;
 Created directory &quot;./pool/free/libv&quot;
 Created directory &quot;./pool/free/libv/libv-perl&quot;
 Exporting indices...
 Created directory &quot;./dists&quot;
 Created directory &quot;./dists/diablo&quot;
 Created directory &quot;./dists/diablo/free&quot;
 Created directory &quot;./dists/diablo/free/binary-i386&quot;
 Created directory &quot;./dists/diablo/free/binary-armel&quot;
 Created directory &quot;./dists/diablo/free/source&quot;
 Created directory &quot;./dists/diablo/non-free&quot;
 Created directory &quot;./dists/diablo/non-free/binary-i386&quot;
 Created directory &quot;./dists/diablo/non-free/binary-armel&quot;
 Created directory &quot;./dists/diablo/non-free/source&quot;


''' More information '''

http://wiki.debian.org/HowToSetupADebianRepository&lt;br&gt;
http://alioth.debian.org/scm/viewvc.php/*checkout*/mirrorer/docs/manual.html?revision=HEAD&amp;root=mirrorer&lt;br&gt;
http://www.debian-administration.org/articles/286&lt;br&gt;

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Resetting the device to factory defaults</title>
    <id>1690</id>
    <revision>
      <id>33037</id>
      <timestamp>2010-04-19T11:53:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>tidy</comment>
      <text xml:space="preserve">This process will completely clear all existing data from the device and return it to a &quot;fresh from the factory&quot; state. Please copy all important data from the device prior to beginning this procedure.

# (Optional) [[Reformatting_a_memory_card|Reformat the device's memory card or cards]].
# Reset the device's lock code to &quot;12345&quot;.
# [[Updating the firmware|Flash the latest firmware onto the device]].

[[Category:HowTo]]
[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>Reverse ssh</title>
    <id>4201</id>
    <revision>
      <id>40640</id>
      <timestamp>2010-12-09T15:01:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Scripts &amp; Files */ copy scripts inline</comment>
      <text xml:space="preserve">Reverse SSH is a term describing a method to connect via [[SSH]] to a destination host, when it is actually the host that is initiating the connection to a middle server.

== Rationale ==
If your [[Nokia N900|N900]] (or any other Linux machine) is hiding behind private IP addresses / firewalls / NATs that you cannot configure - basically unreachable, you can overcome these obstacles with reverse SSH. Further discussion is located in this [http://talk.maemo.org/showthread.php?p=696130#post696130 thread].

== How To ==
Reverse SSH depends on a common server, a machine that both the client (source) and the host (destination) can reach. The host connects to the common server, waiting for the client to connect, then, the client connects to the common server, which in turn forwards that connection to the host.

== Incentive ==
My N900 has unlimited 3G data connection, and I wanted to be able to ssh to it, even though it is using a private ip address which is unreachable. Reverse ssh made it possible.

== Installation Steps ==
The core of this &quot;workaround&quot; is very simple, it consists of :
* Common server which has an SSH server accessible for both client and host
* host runs the command:&lt;pre&gt;ssh -N -C -p &lt;commonServerPort&gt; -R &lt;forwardedPort&gt;:127.0.0.1:&lt;hostPort&gt; commonServerHostname&lt;/pre&gt;
* Example:&lt;pre&gt;ssh -N -C -p 22 -R 2222:127.0.0.1:22 myHostname.no-ip.info&lt;/pre&gt;
* After connection has been set up (password is required when running the command above on the host(N900)) you connect to the common server using ssh and run the command (if configured as in the example):&lt;pre&gt;ssh root@127.0.0.1 -p 2222&lt;/pre&gt;
* You are now connected to the HOST.

== Pitfalls ==
'''There are a few shortcomings in this setup, most can be worked around.'''
* In order to skip the password query on the HOST, one must copy the public SSH key from the host to the authorized_keys folder on the common server. In case your host is the Nokia N900, the file is located at: &lt;code&gt;/root/.ssh/id_dsa.pub&lt;/code&gt;
** Some routers allow you to paste the contents of that file via the web gui of the router. (For example Tomato firmware for wrt routers)
* If the SSH connection between the host and the common server breaks, for any reason, we want it to be reconnected automatically, we can encapsulate the ssh command inside an infinite loop, using a while command:&lt;source lang=&quot;bash&quot;&gt;while true; do ssh -N -C -p 22 -R 2222:127.0.0.1:22 myHostname.no-ip.info; sleep 5; done&lt;/source&gt;
* The command should be inserted into a script, for easy dispatch.
* It is possible to add the command to &lt;code&gt;/etc/network/if-up.d/&lt;/code&gt; - this will cause it to get dispatched every time 3G / wifi are connected, making your phone available immediately.
** If the above method is used, a matching script must also be added to &lt;code&gt;/etc/network/if-down.d/&lt;/code&gt; to kill the looping ssh command to save some battery.
* When not used, and idle SSH connection might fail, In order to make the phone close the SSH session and start a new one, and also try to maintain it, we can add 2 values to the ssh configuration of your phone.
** Open the file &lt;code&gt;/etc/ssh/ssh_config&lt;/code&gt; for editing using your favorite editor, mine is vi.
** Insert the following lines into the file :
*** &lt;code&gt;ExitOnForwardFailure yes&lt;/code&gt;
*** &lt;code&gt;ServerAliveInterval 60&lt;/code&gt;
** The lines should be inserted right after the &quot;Host *&quot; line.
** I am not sure about BW usage for the &quot;ServerAliveInterval&quot; command, but it works for me, if you use it, make sure you monitor your network usage over a few days.

== Scripts &amp; Files ==

'''All files need to have executable permissions''' (&lt;code&gt;chmod +x filename&lt;/code&gt;, or &lt;code&gt;chmod 755 filename&lt;/code&gt;)

=== reverse_ssh.sh ===

This file should be located in &lt;code&gt;/usr/share&lt;/code&gt;, you also need to edit it with the correct ports and hostname.
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh

echo &quot;Script starting&quot;
while true; do ssh -N -C -p 22 -R 2222:127.0.0.1:22 myHostname.no-ip.info &gt; /var/log/reverse_ssh.log; sleep 5; done
&lt;/source&gt;

=== reverse_ssh_stop.sh ===

This file should also be in &lt;code&gt;/usr/share&lt;/code&gt;.
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh

killall reverse_ssh.sh

for i in `ps aux | grep -i &quot;ssh -n&quot; | grep -v grep | awk '{print $1}' ` ; do
        kill -9 $i
done
&lt;/source&gt;

=== reverse_ssh_if_down ===

This file should be in &lt;code&gt;/etc/network/if-down.d/&lt;/code&gt;
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh

nohup /usr/share/reverse_ssh_stop.sh &gt; /var/log/reverse_ssh_if_down.log &amp;
&lt;/source&gt;

=== reverse_ssh_if_up ===

This file should be in &lt;code&gt;/etc/network/if-up.d/&lt;/code&gt;
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/sh

echo &quot;Interface went Up&quot;
nohup /usr/share/reverse_ssh.sh &gt; /var/log/reverse_ssh_if_up.log &amp;
&lt;/source&gt;

== Warnings ==
* This may drain your battery.
* This may cause connectivity problems if you don't do something right.
* This may compromise your phones security.

== Reliability ==
* After using this for about 5 days, I can safely say this is very reliable. My setup: Nokia N900 &gt; [http://en.wikipedia.org/wiki/Linksys_WRT54G_series Linksys WRT54GL] with [http://en.wikipedia.org/wiki/Tomato_(firmware) Tomato] firmware.
* I have been able to connect to my N900 any time I wanted, and it just worked.
* Tested both when phone was on WIFI, and 3G.
* Also tested rebooting the router, causing the *.no-ip.info value to change, which also showed the N900 promptly queried for the new value.

== Credits ==
Special thanks to [http://talk.maemo.org/member.php?u=26108 Spanner] for helping me out in this [http://talk.maemo.org/showthread.php?p=696130#post696130 thread], none of this would have been possible for me without him.

Please feel free to edit this page if you have anything to add, I am not a Linux expert, and the directories I chose to put the files are totally random, they may not be the best places, but they are all very small so the impact is little.

[[Category:HowTo]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Ripping DVDs with Handbrake</title>
    <id>3303</id>
    <revision>
      <id>46644</id>
      <timestamp>2012-02-16T03:57:35Z</timestamp>
      <contributor>
        <username>sally55</username>
        <id>5019</id>
      </contributor>
      <text xml:space="preserve">This guide is created for people to convert DVD to N900 compatible without knowing anything about video. It is designed for use in a Windows environment.

==To convert DVDs you will need three things:==

*[http://www.dvddecrypter.org.uk/ DVD Decrypter] (if your DVD is encrypted)
*[http://handbrake.fr/ Handbrake]
*A preset file. Two are offered here:

[http://www.revdkathy.co.uk/maemo/Preset.plist This one] outputs a moderate sized file of adequate quality for normal viewing.
[http://www.revdkathy.co.uk/maemo/import2.plist This one] takes a lot longer to encode and outputs a large file of very high quality.

===Download and install DVD Decrypter and Handbrake.===


===Load a DVD into your pc.===


===Open DVD Decrypter.===

Please note: Maemo.org does not endorse the decrypting of DVD files in places where to do so contravenes local legislation.

*It will automatically load your DVD looking like this: 
[[Image:Vid_editing01.jpg|DVD decrypter]]



*You can change the destination folder where you wish the DVD decoded to:
[[Image:Vid editing02.jpg|DVD decrypter destination folder]]



*Having set the output folder, click: file&gt; Decrypt
[[Image:Vid editing03.jpg|DVD decrypter in action]]



DVD decrypter will create a complete mirror of your DVD contents but without any pesky encryption. When it finishes, it will play little triumphal fanfare. If it resists closing, it can be closed from the task manager.

===Remove DVD from the drive===


===Open Handbrake===
[[Image:Vid editing04.jpg|Handbrake]]



===Import your preset:===

*Click on ‘Presets’&gt; choose ‘import’
[[Image:Vid editing05.jpg|Import presets to Handbrake]]



*Browse to the folder where you stored the .plist file, select it and choose ‘open’.
[[Image:Vid editing06.jpg|Handbrake locate import .plist file]]



*Highlight the imported preset
[[Image:Vid editing07.jpg|Handbrake choose preset to import]]



===Set default output folder:===

*Click on Options

*In the ‘output files’ box browse to where you wish to store your file
[[Image:Vid editing08.jpg|Handbrake default output location]]

*Close

===Select your source files:===

*Click on  the ‘Source’ icon

*Choose the Folder, not the DVD drive
[[Image:Vid editing09.jpg|Handbrake source folder]]



*Select the VIDEO_TS folder created by Decrypter
[[Image:Vid editing10.jpg|Handbrake select source]]



*Ensuring the preset highlighted is the one you installed, click on ‘start’
[[Image:Vid editing11.jpg|Handbrake start]]



*Handbrake will open a command prompt pane for you to watch progress.
[[Image:Vid editing12.jpg|Handbrake command prompt]]



*This will close when the encoding is complete, and Handbrake will show Encoding compete.

===Transfer Files===

*Connect your N900 using ‘Mass storage mode’
*Copy the mp4 file(s) to the .video folder on N900
*If your video is not immediately visible in mplayer, access it via the file manager for first use: it will show up in future cases.

For a much fuller explanation of video encoding for N900 please see [[N900_Video_Encoding]].

==Further reading==
* [http://www.ifunia.com/how-tos/handbrake-and-99-title-dvd.html HandBrake and the 99-title DVD]
* [http://methodshop.com/gadgets/tutorials/handbrake/index.shtml How to Rip DVD's for Your iPad, iPod,Apple TV or iPhone -A Handbrake Tutorial ]

[[Category:Users]]
[[Category:Media]]</text>
    </revision>
  </page>
  <page>
    <title>Roaming tips and tricks</title>
    <id>3731</id>
    <revision>
      <id>40618</id>
      <timestamp>2010-12-08T13:01:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>tidy slightly</comment>
      <text xml:space="preserve">== Data connections when roaming ==

Turning off [[data plans|internet connections]] when roaming is obviously the best way to cut costs completely, though there are cases when this is inconvenient (such as when automated email retrieval is a necessity). HOWEVER, being always online poses certain problems and risks associated mainly with your bill at the end of the month.

The following is a list of the main causes for unnecessary/unwanted traffic.

== Automatic updates ==
'''Problem:''' One of the things that happens automatically every morning around 8 o'clock is a check for updates. It usually happens silently, and you won't know about it unless there are any updates available (case in which the little orange notification pops up in the status area).

Depending on the number of active repositories, the update can use between a couple hundred kB and 5-6MB or more. This is a sure way to an eye-popping bill at the end of the month (considering EU data charges of approximately 6EUR/MB).

'''Solution:''' Go into System &gt; App manager, tap on the menu, select Application catalogs, then successively select each catalog there and check the Disabled box, then click Save.

'''Alternative solution:''' [[Customizing_Maemo#Disabling_Auto_Updates_Check |Disable the auto updates check]] has the advantage that you can still quickly update the repos when you're on WiFi.

== Email ==

Depending on the need to have automatic email retrieval, you might want to keep it or turn it off completely when roaming.

Note for IMAP users: By default the Email application appears to check for email updates only in the Inbox folder, so to minimize data transfer you might want to set up automatic filters to divert non important emails to other folders that you can later check manually.

== RSS ==

RSS feed readers are another type of applications which can generate traffic due to automatically updating their content. The default RSS reader has an option to update automatically only when connected to WLAN, so it's better to use that. Settings can vary for the other applications.

== Weather apps ==

Situation quite similar to the RSS feeds apps. Automatic updates should be set to only when connected to WLAN or disabled altogether.

== OVI Maps and other GPS apps ==

Maps applications rely on getting a GPS position. The [[Nokia N900|N900]] features an option to get an approximate position first using GSM towers and triangulation which it then uses to get a lock on the GPS satellites. This require a data connection and a small amount of traffic. Turning this feature off can save a couple of kB. You can turn it off in System &gt; Settings &gt; Connectivity &gt; Location, under Network positioning.

In addition, you can incur heavy traffic if you have not preloaded your destination maps on your device (using Nokia Map Loader or by any other means). However, there are situations when there are updates available to the maps of your destination, and the Maps application will download them automatically. This is also a great way to get heavy traffic (from a couple hundred of kB to a few MB). To avoid this, it's better to open up the application before leaving abroad and navigate to your destination using pan and zoom, then zoom somewhere between city level and street level. This will prompt the Maps application to download any existing updates, thus avoiding the same when roaming.

'''WARNING:''' There is heavy traffic totalling about 400kB EACH TIME when launching the Nokia Maps, even when the network positioning is set to off. Please see this bug report here [https://bugs.maemo.org/show_bug.cgi?id=9594].

== Data granularity ==

This can sometimes be the deciding factor between always online and manual internet connections when roaming. Data is usually rounded up to a certain amount of kB (10kB for EU as far as I'm aware). Thus, connecting and doing a 4kB amount of traffic and then disconnecting would still be billed as 10kB. If you use your maps application for example, which uses A-GPS to find your position, the amount of transferred data is very small. Disconnecting afterwards would make you pay for 10kB.

Depending on your needs, you might decide that having a continuous internet connection (always online) might be cheaper. Data would pile up, and the whole amount would be rounded up to the nearest 10kB, as opposed to each data transfer being rounded up.

[[Category:Users]]
[[Category:Cellular]]</text>
    </revision>
  </page>
  <page>
    <title>Rockbox</title>
    <id>4670</id>
    <revision>
      <id>42252</id>
      <timestamp>2011-02-28T21:28:26Z</timestamp>
      <contributor>
        <username>thomasjfox</username>
        <id>3864</id>
      </contributor>
      <comment>/* Further links */</comment>
      <text xml:space="preserve">Rockbox is an open source audio player. It has been in development since 2001 and receives new features, tweaks and fixes every day to provide you with the best possible music listening experience.

== Important [http://www.rockbox.org/wiki/WhyRockbox features] ==
* Supports over 20 sound codecs:
** MP3, OGG, WAV, FLAC and [http://www.rockbox.org/wiki/SoundCodecs many more]
* Navigate music by folders or tag database
* Gapless playback and crossfading
* Ability to create your own themes
* [http://www.rockbox.org/wiki/AlbumArt Album art] support
* Bluetooth headset support

== Download (currently [[Extras-devel|extras-devel]] only) ==
http://maemo.org/packages/view/rockbox/

== Known issues of this port ==
* Touchscreen reacts too sensitive

== Feature ideas for this port ==
* More finger friendly default theme
* Feature to toggle between full screen and in-window
* Configurable key bindings

== FAQ for the maemo port ==
=== How do I exit the application? ===
Press CTRL+backspace to invoke the application switcher, click [X] to close it or  tab an empty area to keep it running in the background. Use the &quot;home&quot; button on n8xx devices.

=== How do I tell the tag database to ignore a folder? ===
Create an empty &quot;database.ignore&quot; file in that folder. Once this folder is there, all sub-folders will be ignored as well. A file &quot;database.unignore&quot;
does the opposite.

Example: place a &quot;database.ignore&quot; file in the root directory (&quot;/&quot;) and a
&quot;database.unignore&quot; in /media/mmc1/Music. In this way, only files under
/media/mmc1/Music will be considered and everything else will be ignored.

=== How do I go to the main menu from the WPS (while playing screen)? ===
Tab the rockbox logo on the bottom left and click on the open folder icon in the context menu. From there navigate your way up to the main menu.

== Further links ==
* [http://repo.or.cz/w/maemo-rb.git Maemo port git repository]
* [http://www.rockbox.org/wiki/GeneralFAQ Rockbox FAQ]
* [http://download.rockbox.org/daily/manual/rockbox-cowond2/rockbox-build.html Rockbox manual] (currently links to the cowon d2 manual)
* [http://www.rockbox.org/wiki/ Rockbox wiki]
* [http://www.rockbox.org/ General homepage]
* [http://www.rockbox.org/wiki/MaemoPort Maemo port status]

[[Category:Software]]
[[Category:Media]]</text>
    </revision>
  </page>
  <page>
    <title>Roguelikes</title>
    <id>4929</id>
    <revision>
      <id>45692</id>
      <timestamp>2011-11-09T12:46:45Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <comment>typo on topic formatting</comment>
      <text xml:space="preserve">== Roguelikes ==
http://roguebasin.roguelikedevelopment.org/index.php?title=What_a_roguelike_is

Talk:
http://talk.maemo.org/showthread.php?t=65869
http://talk.maemo.org/showthread.php?p=1048290


== Setup ==
You might need ESC-key, when testing not-polished versions of ported games.

This is (one) safety and temporarily way:

run
 xkbcomp :0
-&gt; it creates file named: server-0.xkb

For some reason, you must remove these rows 
 interpret AccessX_Enable+AnyOfOrNone(all) {
      action= LockControls(controls=);
 };
 interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {
      action= LockControls(controls=);
 };

Then add (example) this row:
    key &lt;BKSP&gt; {
        type= &quot;FOUR_LEVEL&quot;,
        symbols[Group1]= [       BackSpace,          Escape,       BackSpace,          Delete ]
    };

And finally run
 xkbcomp server-0.xkb :0

And then shift+backspace=ESC until next boot (or you can run setxkbmap to reset)

= Very well working games=
These games are on extras-repository and considered 'stable'.

==Nethack==
 Description: Text based Nethack
 Devices: N900
 State: installable from extras ('nethack-console')
 TMO page:
 Upstream web page: http://www.nethack.org/
 Upstream state: Newest version is from year 2003
 Technical: C
 Known Issues:
 License: Nethack general public license

==Vulture's eye==
 Description: Graphical frontend for Nethack (or SLASH'EM or unnethack)
 Devices: N810, N900
 State: installable from extras ('vultures')
 TMO page: http://talk.maemo.org/showthread.php?t=41365
 Upstream web page: http://www.darkarts.co.za/vulture/about
 Upstream state: 
 Technical: C, SDL
 Known Issues:
 License: Nethack general public license

==Robot finds kitten==
 Description: Maybe not game, but Zen simulation.
 Devices: N900
 State: Installable (package 'rfk')
 TMO page:
 Upstream web page: http://www.robotfindskitten.org/
 Upstream state: Stable.
 Technical: C, GTK
 Known Issues: Not a game? (Is this issue?)
 License: GPL?

= Works, but needs hassling =
==Adom==
 Description: 'Ancient Domains of Mystery' is the mother of all cake.
 Devices: N900
 State: Download and unpack zip.
 TMO page: http://talk.maemo.org/showpost.php?p=893219&amp;postcount=24
 Upstream web page: http://www.adom.de/
 Upstream state: Alive but closed source. Started year 1994.
 Technical: x86-Linux binary is run under qemu
 Known Issues: dark grey is black (fixed on CSSU terminal). Can seg fault on start (and work on next time).
 License: Closed source


= Working and under testing=
These 'seems' to be work, but they are still on extras-devel -repository. They do not have any know serious bugs.

==Powder==
 Description: Roguelike targeted to handhelds
 Devices: N900
 State: Version 116 installable from extras-devel (non-free section)
 TMO page: http://talk.maemo.org/showthread.php?p=1074811
 Upstream web page: http://www.zincland.com/powder/
 Upstream state: Started on 2003, and still alive.
 Technical: C, SDL, saves /home/user/powder.sav
 Known Issues: -
 License: CC Sampling Plus 1.0 (not OSI/FSF/Debian approved)

==NLarn==
 Description: A rewrite of Larn (1986).
 Devices: N900
 State: on extras-devel
 TMO page: http://talk.maemo.org/showthread.php?p=1051568
 Upstream web page: http://nlarn.sourceforge.net/
 Upstream state: Alive (2011)
 Technical: curses, C, keyboard only
 Known Issues: no menu icon, game aborts if too big font size
 License: GPL

==Savescummer==
 Description: Seven Day Roguelike. Weird game, not typical roguelike.
 Devices: N900 (no mouse support, keyboard only)
 State: Installable from extras-devel
 TMO page: http://talk.maemo.org/showthread.php?p=1050217
 Upstream web page: http://www.zincland.com/7drl/savescummer/
 Upstream state: No actively development.
 Technical: C,SDL, same author than Powder (Jeff Lait)
 Known Issues: No menuicon. root must give permissions to /opt/savescummer/save 
 License: BSD

==Cataclysm==
 Description: Post-apocalyptic zombie killing
 Devices: N900
 State: installable from extras-devel (package 'cataclysm')
 TMO page: http://talk.maemo.org/showthread.php?p=1049484
 Upstream source: https://github.com/Whales/Cataclysm
 Upstream forum: http://whalesdev.com/forums/index.php
 Upstream state: Development started on late 2010.
 Technical: C++, ncurses
 Known Issues: -
 License: Source available (no mention about license?)

==Angband==
 Description: Based on Tolkien. Started 1990 and still alive.
 Devices: N900
 State: on extras-devel
 TMO page: http://talk.maemo.org/showthread.php?p=1084216
 Upstream web page: http://rephial.org/
 Upstream state: Alive
 Technical: c,sdl (derived from 'moria')
 Known Issues: 
 License: GPL

==Crawl-commandline 0.9.1 ==
 Description: (Dungeon Crawl Stone Soup)
 Devices: N900
 State: On extras-devel
 TMO page: http://talk.maemo.org/showthread.php?p=1082231
 Upstream web page: http://crawl.develz.org/wordpress/
 Upstream state: Alive.
 Technical: C++
 Known Issues: Enter-key will not work with external keyboard
 License: GPL2+

==Lambdarogue==
 Description: Roguelike with graphical tile sets and audio.
 Devices: N900
 State: on extras-devel
 TMO page: http://talk.maemo.org/showthread.php?p=1078264
 Upstream web page: http://lambdarogue.net
 Upstream state: Not active, but alive.
 Technical: Pascal, SDL, external audio player (mplayer default). Mouse is not fully supported.
 Known Issues: Phone-profile muted not respected, volume yes.
 License: GPL2

==A Quest Too Far==
 Description: A Quest Too Far is a 7DRL where you play a veteran adventurer, fighting to overcome monsters despite his age and poor health. Rather than leveling up, you begin powerful and well equipped but your health declines throughout the game. 
 Devices: N900, N950
 State: extras-devel
 TMO page: http://talk.maemo.org/showthread.php?p=1050993
 Upstream web page: http://www.randomstuff.org.uk/~geoffrey/roguelikes/aquesttoofar.html
 Upstream state: Stable
 Technical: C++, SDL, fullscreen, keyboard only, no saving.
 Known Issues:
 License: GPL
 Link to source: http://www.randomstuff.org.uk/~geoffrey/roguelikes/AQuestTooFar1.3-091010.zip

==Brogue==
 Description: Your goal is to travel to the 26th subterranean floor of the dungeon, retrieve the Amulet of Yendor and return with it to the surface. For the truly skillful who desire further challenge, depths below 26 contain three lumenstones each -- items which confer no benefit except an increased score upon victory.
 Devices: N900
 State: extras-devel
 TMO page: http://talk.maemo.org/showthread.php?p=1051477
 Upstream web page: http://sites.google.com/site/broguegame/
 Upstream state: Alive, co-operating with upstream
 Technical: C, libtcod (SDL)
 Known Issues: 
 License: GPLv3

==Vicious Orcs==
 Description: 7day rogue by Jeff Lait
 Devices: N900
 State: extras-devel (package name vorcs)
 TMO page: http://talk.maemo.org/showthread.php?t=75407
 Upstream web page: http://www.zincland.com/7drl/orcs/
 Upstream state: Not developing any more.
 Technical: c,sdl,libtcod
 Known Issues: compiled without audio support
 License:

==Smart Kobold==
 Description: 7day rogue by Jeff Lait
 Devices: N900
 State: on extras-devel (package name kobold)
 TMO page: http://talk.maemo.org/showthread.php?t=75408
 Upstream web page: http://www.zincland.com/7drl/kobold/
 Upstream state: Not developing any more.
 Technical: c,sdl,libtcod
 Known Issues: Audio is not working.
 License:

= Works but needs additional hassle to install =

==Berserk!==
 Description: 7day roguelike, survival game of tactical bloodshed, loosely based on Kentaro Miura's Berserk manga. 
 Devices: N900
 State: extras-devel
 TMO page: http://talk.maemo.org/showthread.php?p=1078592
 Upstream web page: http://berserk.chaosforge.org/
 Upstream state: Alive (in year 2011)
 Technical: pascal, fpcvalkyrie
 Known Issues: No icon. After installing, run: sudo gainroot ; chown -R user /opt/berserkrl
 License: GPLv3 (fpcvalkyrie is LGPL/BSD (it is between license migration))

==DiabloRL==
 Description: Roguelike &quot;unmake&quot; of the popular Blizzard game Diablo.
 Devices: N900
 State: extras-devel
 TMO page: http://talk.maemo.org/showthread.php?p=1078571
 Upstream web page: http://diablo.chaosforge.org/
 Upstream state: Alive (in year 2011)
 Technical: pascal, fpcvalkyrie
 Known Issues: After installing, run: sudo gainroot ; chown -R user /opt/diablorl
 License: GPLv3 (fpcvalkyrie is LGPL/BSD (it is between license migration))


=On repository, but not working=
==Jacob's Matrix==
 Description: In Jacob's Matrix you explore a maze of twisty, turning passages, all different. Your goal is straightforward - get from the blue coloured room to the gold coloured room - but unfortunately the orientation of the passages can prove confusing.
 Devices: N900
 State: on extras-devel (package jacob)
 TMO page: http://talk.maemo.org/showthread.php?p=1084305
 Upstream web page: http://www.zincland.com/7drl/jacob/
 Upstream state: Stable
 Technical: C++, libtcod, SDL
 Known Issues: no audio, but audio is critical for game play -&gt; cheat-mode always on.
 License: BSD

==CalcRogue==
 Description: Targeted to calculators, can be built natively
 Devices: N900
 State: extras-devel
 TMO page: http://talk.maemo.org/showthread.php?p=1050425
 Upstream web page:http://calcrogue.jimrandomh.org/
 Upstream state: No news after year 2004
 Technical: C, curses, no mouse.
 Known Issues: Segfaultting often and randomly.
 License: GPL 2+

==Crawl-tiles 0.9.1-maemo4 GLES ==
 Description: Dungeon Crawl Stone Soup, Graphical version with openGLES
 Devices: N900
 State: on extras-devel
 TMO page: http://talk.maemo.org/showthread.php?p=1082231
 Upstream web page: http://crawl.develz.org/wordpress/
 Upstream state: Alive. Not well tested GLES.
 Technical: C++, SDL, GLES1
 Known Issues: Doesn't start: &quot;ASSERT(m_handle) in 'tiletex.cc' at line 79 failed.&quot;
 License:GPL2+

==Crawl-tiles 0.9.1-maemo8 openGL ==
 Description: Dungeon Crawl Stone Soup. Graphical version with openGL
 Devices: N900
 State: on extras-devel
 TMO page: http://talk.maemo.org/showthread.php?p=1082231
 Upstream web page: http://crawl.develz.org/wordpress/
 Upstream state: Alive.
 Technical: C++, SDL, openGL
 Known Issues: As openGL is software (not hardware) on N900, game is too slow to play (every steps take several minutes)
 License:GPL2+

=Nobody has done anything for maemo=
==Atrogue==
 Description: you try to find a way through a magic dungeon with nasty traps, in search of the Amulet of Yendor which is concealed somewhere deep in the dungeon. You fight against hostile creatures with magic actions and weapons and try to escape the dungeon alive and with lots of gold.
 Devices:
 State: Source available
 TMO page:
 Upstream web page: http://atrogue.sourceforge.net/
 Upstream state: Stable
 Technical: C, ncurses
 Known Issues:
 License: GPLv3
 Link to source: http://sourceforge.net/projects/atrogue/files/atrogue/atrogue-0.3.0/atrogue-0.3.0.tar.gz/download
 
==BOSS==
 Description: If you've played Moria in any of its incarnations, then BOSS will seem inherently familiar to you. BOSS is what you get when you take Moria, modernize it (magic becomes science, monsters become more realistic beasts, items get updated, etc.), add a lot of new features (different dungeon types, monsters, lots of new items, multiple towns, etc.) and give it a twisted sense of humor.
 Devices:
 State: Source available
 TMO page:
 Upstream web page: http://dungeon_keeper.republika.pl/
 Upstream state: Stable
 Technical: Pascal, FreePascal
 Known Issues: Not good game. Play Angband if you like Moria.
 License: Moria license
 Link to source: http://dungeon_keeper.republika.pl/files/boss_src-2.4a.tar.bz2

==Chrysalis==
 Description: In Chrysalis, you play as an alien creature that is trying to rid its planet of destructive human bases. The gameplay is centered around the evolution of your creature. Each level brings you points to spend on different body parts, which will either raise stats or unlock abilities. You must enter a cocoon to complete the upgrade, during which you are defenseless. The game ends when you have destroyed every base on the map.
 Devices:
 State: Source available
 TMO page:
 Upstream web page: http://sinoth.net/blog/finished-projects/chrysalis/
 Upstream state: Stable
 Technical: C++, libtcod, SDL
 Known Issues:
 License: None mentioned
 Link to source: http://sinoth.net/chrysalis.zip
 
==City of the Condemned==
 Description: The game depicts a battle between the armies of Heaven and Hell in a town where the souls of innocent people are in danger. Play as an angel, a divine warrior of God, with the mission to vanquish all evil and protect the humans. Or take your stand as a demon, sinister creation of the Devil able to possess the people to create chaos.
 Devices:
 State: Source available
 TMO page:
 Upstream web page: http://tapio.github.com/cotc/
 Upstream state: Stable
 Technical: C++, ncurses
 Known Issues:
 License: None mentioned
 Link to source: http://github.com/tapio/cotc/tarball/master
 
==Cracks and Crevices==
 Description: Cracks and Crevices is about life in the small village of Danforths Outcrop, hewn into the rock at an opening to a large crevice. The game starts with you, a young person of the village on the verge of your adulthood test, which is to survive two days in the labyrinth of the crevice before you will be allowed back into town. Only the strong survive to increase the strength of the village, and if you survive you will be allowed back into town, there you can explore or re-enter the labyrinth or take up some quests offered by the town clerk. 
 Devices: 
 State: Source available
 TMO page: 
 Upstream web page: https://redmine.bloodycactus.com/projects/show/sdlrl
 Upstream state: Slow, but active
 Technical: C, SDL
 Known Issues: 
 License: GPL
 Link to source: https://redmine.bloodycactus.com/attachments/download/32/cracks_and_crevices-0.5.tar.bz2
 
==CryptRover==
 Description: You are an archaeologist trapped in an underground crypt with a limited supply of air. You must survive long enough to reach the crypt's exit. 
 Devices: 
 State: Source available
 TMO page: 
 Upstream web page: http://code.google.com/p/cryptrover/
 Upstream state: Stable
 Technical: C, ncurses
 Known Issues: 
 License: GPL
 Link to source: http://code.google.com/p/cryptrover/downloads/list

==DungeonMinder==
 Description: DungeonMinder is a game about a being small invisible fairy tasked with keeping an adventurer alive. Accompany the heroic '@' as he explores the dungeon! Watch as he stupidly picks fights with monsters far stronger than him! Subtly influence the resulting brawl to keep him alive long enough to reach the stairs! Don't ever expect to be thanked for your good plans and hard work. 
 Devices: 
 State: Source available
 TMO page: 
 Upstream web page: http://code.google.com/p/dungeonminder/
 Upstream state: Stable
 Technical: C++
 Known Issues: 
 License: New BSD license
 Link to source: http://dungeonminder.googlecode.com/files/DungeonMinder.cpp

==Dwarftown==
 Description: Dwarftown is a 2011 seven-day roguelike. It's a simple, traditional hack-and-slash, featuring no dwarves at all. 
 Devices: 
 State: Source available
 TMO page: 
 Upstream web page: http://students.mimuw.edu.pl/~pm262952/dwarftown/
 Upstream state: Alive
 Technical: C, libtcod, LUA, SDL
 Known Issues: 
 License: MIT license
 Link to source: https://bitbucket.org/humpolec/dwarftown/downloads/dwarftown-1.0.tgz

==Tales of Maj'Eyal: Age of Ascendancy ==
 Devices: 
 State: Nothing can do before engine supports openGLES.
 TMO page: 
 Upstream web page: http://te4.org/
 Upstream state: Alive
 Technical: C, T-Engine4
 Known Issues: T-Engine4 needs OpenGL (no console/SDL fallback)
 License: GPL3+
 Link to source: http://te4.org/download

==Epic! Monster Quest: Hyper==
 Description: A blend of roguelike and RTS
 Devices: 
 State: Source available
 TMO page: 
 Upstream web page: http://sinoth.net/blog/p/epic-monster-quest-hyper/
 Upstream state: Stable
 Technical: C++, libtcod, SDL
 Known Issues: 
 License: None mentioned
 Link to source: http://sinoth.net/code/emqh_sp2.zip

==Escape From Lab 42==
 Description: A real-time roguelike set in a zombie infested lab. You have 30 minutes to escape before the computer blows the whole place up. Get out while you can.
 Devices: 
 State: Source available
 TMO page: 
 Upstream web page: http://users.freebasic-portal.de/rdc/programs.html#mozTocId901547
 Upstream state: Stable
 Technical: Freebasic
 Known Issues: 
 License: GPLv3
 Link to source: http://users.freebasic-portal.de/rdc/programs/lab4202win.zip

==Prospector==
 Description: In an unexplored sector of space humanity is trying to establish a permanent presence. Megacorporations employ freelance prospectors to find exploitable resources and map unknown planets for them. The player commands one of those scoutships, trying to become filthy rich as a prospector. 
 Devices: 
 State: Source available
 TMO page: 
 Upstream web page: http://code.google.com/p/rlprospector/
 Upstream state: Actively developed
 Technical: Freebasic, tiles
 Known Issues: 
 License: GPLv3
 Link to source: http://code.google.com/p/rlprospector/source/browse/#svn%2Ftrunk

==Escape from the Master's Lair==
 Description: You are a monster living out your life within a dungeon deep underground. You live to serve the Master. However, the Master is becoming increasingly evil, and has begun to seek a forgotten and forbidden power. Fearing the results of this new thirst for power, you have taken it upon yourself to steal the Runestones, the source of your Master's new power, and escape from the Lair of Loathing with them. 
 Devices: 
 State: Source available
 TMO page: 
 Upstream web page: http://cheeseandbacon.org/escape/index.php
 Upstream state: Stable
 Technical: C++, SDL+OpenGL
 Known Issues: 
 License: MIT license
 Link to source: http://code.google.com/p/escape-from-the-masters-lair/source/checkout

==Goblin Camp==
 Description: Game heavily influenced by Dwarf Fortress
 Devices: 
 State: Source available
 TMO page: 
 Upstream web page: http://www.goblincamp.com/
 Upstream state: Actively developed
 Technical: C++, libtcod, python, SDL...
 Known Issues: 
 License: GPL
 Link to source: https://bitbucket.org/genericcontainer/goblin-camp/src

==God of Change==
 Description: God of Change is a game where monsters change in ability over time. What might initially be an unchallenging species of monster might end up learning the ability to shoot lightning, or be resistant to damage, or be more aggressive, or gain bonuses by having comrades around. You must find the portal to finish each dungeon, but beware: spend too long and the monsters may mutate out of control. Yet if you race to the finish you may miss out on items and weapons sorely needed to stay alive. In the fifth dungeon awaits a boss fight that will require all of your skill and resources. Do you have what it takes to remain stable when nothing around you remains the same? 
 Devices: 
 State: Source available
 TMO page: 
 Upstream web page: http://code.google.com/p/godofchange/
 Upstream state: Stable
 Technical: C++, libtcod
 Known Issues: 
 License: BSD
 Link to source: http://godofchange.googlecode.com/files/God%20of%20Change%20-%20Source.zip

==Grendel's Mother==
 Description: Grendel's Mother is a game based on the old English epic Beowulf. Specifically, the player plays the role of Beowulf hunting Grendel's Mother by diving through Grendel's lake. The game's only story comes in the form of quotes from Beowulf. There are 8 levels, the goal is to reach the bottom and kill Grendel's Mother. 
 Devices: 
 State: Source available
 TMO page: 
 Upstream web page: http://code.google.com/p/dreamhack/downloads/list
 Upstream state: Stable
 Technical: C
 Known Issues: 
 License: LGPLv3
 Link to source: http://dreamhack.googlecode.com/files/GrendelsMother.zip

==Happy Hunting==
 Description: This is a short hack-and-slash roguelike demonstrating staircase connections, monsters, combat, basic equipment use, a victory condition, and the possibility of permadeath. 
 Devices: 
 State: Source available
 TMO page: 
 Upstream web page: http://sourceforge.net/projects/arid/
 Upstream state: Stable
 Technical: OCAML, ncurses
 Known Issues: 
 License: GPL
 Link to source: http://sourceforge.net/projects/arid/files/arid_7drl_2006/arid_7drl_0.16.64/arid_src-0.16.64.tar.gz/download

==Hydra Slayer==
 Description: In Hydra Slayer your task is to enter Hydra Nest and clear it. As a slayer you wish to demonstrate your profession is not obsolete nowadays. Multi-headed monsters have diminished recently but now they have returned and again threaten mankind. Lots of naive fighters went to battle hydras. They were very well provisioned, courageous and mighty but unprepared. Ancient art of hydra slaying is not an easy task. You go to show how really important is knowledge about those beasts. 
 Devices: 
 State: Source available, compiled binary - http://talk.maemo.org/showthread.php?p=1061375
 TMO page: 
 Upstream web page: http://www.roguetemple.com/z/hydra.php
 Upstream state: Actively developed
 Technical: C++
 Known Issues: 
 License: GPL
 Link to source: http://www.roguetemple.com/z/hslayer.zip


==Template==
 Description: 
 Devices: 
 State: 
 TMO page: 
 Upstream web page: 
 Upstream state: 
 Technical: 
 Known Issues: 
 License: 
 Link to source:

=Games without source code (can run under qemu?)=
Frozen Depths (http://koti.mbnet.fi/frozend/) &quot;The game is free, but not open source. &quot;

Zapm (http://zapm.org/). No source found.

DoomRL (http://doom.chaosforge.org/). &quot;As for the source, it may eventually be available, but no sooner than before DoomRL 1.0.0.&quot;

Dwarf Fortress (http://www.bay12games.com/dwarves/index.html). No source found.</text>
    </revision>
  </page>
  <page>
    <title>Root</title>
    <id>3551</id>
    <revision>
      <id>28656</id>
      <timestamp>2010-02-08T10:52:56Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <comment>Redirecting to [[Root access]]</comment>
      <text xml:space="preserve">#REDIRECT [[Root access]]</text>
    </revision>
  </page>
  <page>
    <title>Root access</title>
    <id>2</id>
    <revision>
      <id>48288</id>
      <timestamp>2012-06-09T11:15:05Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>/* sudser */</comment>
      <text xml:space="preserve">{{danger}}

Having [[:wikipedia:Superuser|root]] access is an important step for users interested in modifying things &quot;under the covers&quot; of their tablets; without it, you won't have the necessary permissions to make those modifications. Root access is disabled by default on new tablets. Thankfully, the steps to enable root access are simple.

== Why do I want root? ==

Root access is ''not'' required to install additional applications through Application Manager, open X Terminal or use your tablet in day-to-day operation.

If you want to edit the underlying system configuration, install applications ''through the command line'' or other low-level tasks, you ''will'' require root access.

== rootsh ==
&lt;small&gt;''Note: As rootsh is the simplest option, and does not require a desktop computer or running additional services, it is the recommended method for gaining root access.''&lt;/small&gt;

&lt;code&gt;rootsh&lt;/code&gt; is available in [[Extras]], and can be installed from the Application manager if you have the Extras repository enabled. It is also available directly from [http://maemo.org/downloads/product/Maemo5/rootsh/ maemo.org].

Then, from the [[terminal|shell]], run:
 sudo gainroot
(or &lt;code&gt;root&lt;/code&gt; for short). This will give you a root shell.

== sudser ==
&lt;small&gt;''Note: Some scripts require rootsh to run properly, so it's recommended to have both sudser and rootsh installed if you're using sudser.''&lt;/small&gt;

sudser adds the user to sudoers so you can use the &lt;code&gt;sudo&lt;/code&gt; command to run commands as root. 

It is available in Extras, and can be installed from the Application manager if you have Extras enabled. 


Then, from the shell, run &lt;code&gt;sudo ''command''&lt;/code&gt;. This will execute &lt;code&gt;''command''&lt;/code&gt; with root privileges.

== OpenSSH ==

# Enable Extras (if it is disabled)
# Install OpenSSH (client and server)
#* This will prompt you to change the root password from the default, &lt;code&gt;rootme&lt;/code&gt;
# SSH into your tablet as root
#* For local access, run &lt;code&gt;ssh root@localhost&lt;/code&gt;
#* For remote access, run &lt;code&gt;ssh root@''tablet's ip address''&lt;/code&gt;
# Use the root password entered at step (2) to log in

To debug issues with SSH connections, use the SSH '-v' option.

(To get SSH X forwarding ('-X' option) to work, you need to install ''xauth'' (or ''xbase-clients'') package and enable X forwarding in the SSH server configuration file on the machine where you're connecting to.)

== Research &amp;amp; Development Mode (R&amp;amp;D or RD Mode) ==

{{ambox|text=As R&amp;D mode has other side effects beyond simply enabling root access (including several that may negatively impact battery life), it is ''not'' the recommended method for gaining root access. Use [[#rootsh|rootsh]] instead.}}

{{main|R&amp;D mode}}

You can enable the R&amp;D mode which enables you to execute &lt;code&gt;sudo gainroot&lt;/code&gt; to get a root shell, simply follow the setup steps for flashing covered in [[Updating the firmware|updating the tablet firmware]], then execute

 sudo ./flasher-3.5 --enable-rd-mode -R

You are now in R&amp;D mode, and the sudo gainroot script's check will be satisfied.

== A note on sudo ==
This information is aimed at people who come to maemo from other linux distributions (Debian for example) that may have used sudo in a different way.

In fremantle (Maemo 5) sudo is a key part of the system. It is used by system processes that are started as the user to provide access (as root) when needed.

Examples of this are:
Media Tracker.
The firmware version on the 'Settings' &gt; 'About Product' page.

Both of these will malfunction if there are problems with sudo.

Sudo relies on &lt;code&gt;/etc/sudoers&lt;/code&gt;, a configuration file that details who can run what commands. &lt;code&gt;/etc/sudoers&lt;/code&gt; is traditionally modified by using the 'visudo' command. DO NOT DO THIS ON MAEMO. In maemo sudoers is regenerated periodically from config snippets in &lt;code&gt;/etc/sudoers.d/&lt;/code&gt;, using &lt;code&gt;visudo&lt;/code&gt; can cause the slow death of your system as your edit gets pushed further down /etc/sudoers.

For those who don't know, &lt;code&gt;/etc/sudoers&lt;/code&gt; works on a last match principle, so if your edit conflicts with entries above it, it will break those entries.

The 'correct' way to do this would be to put your entry in a file in &lt;code&gt;/etc/sudoers.d/&lt;/code&gt;. I leave the detail of this up the experience of the end-user. Just be advised that using &lt;code&gt;visudo&lt;/code&gt; runs the risk of subtly breaking your system.

[[Category:Wiki page of the day]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Rootfs</title>
    <id>3650</id>
    <revision>
      <id>40638</id>
      <timestamp>2010-12-09T14:42:30Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>link to [[MyDocs folder]]</comment>
      <text xml:space="preserve">Rootfs is the filesystem that the root directory (also called ‘&lt;code&gt;/&lt;/code&gt;’) is on. The [[Nokia N900|N900]] has a 256 MB OneNAND chip that is used for the rootfs, bootloader and kernel, together with a (slower) 32 GB eMMC flash that is partitioned as 768 MB swap space, 2 GB &lt;code&gt;/home&lt;/code&gt; and 27 GB &lt;code&gt;[[MyDocs folder|/home/user/MyDocs]]&lt;/code&gt;. 

Every application installs a bit of itself to the rootfs, some more than others, and the rest of it they install on other parts of the device. Applications that have been designed to install as little of themselves as they can are referred to as &quot;optified&quot;.
As it is small, the rootfs tends to fill up quickly, so one should be aware of it. A good way to keep track of the free space is to download [http://maemo.org/packages/view/conky/ Conky] (or the desktop command widget) and check it once in a while.
If you run out of space, you cannot install anything else. [[:Category:Firmware update|Firmware updates]] require huge amounts of rootfs space (just for installation) and updating can become extremely problematic. There are ways to [[free up rootfs space]]

[[Category:Hardware]]</text>
    </revision>
  </page>
  <page>
    <title>Rotation</title>
    <id>1197</id>
    <revision>
      <id>40636</id>
      <timestamp>2010-12-09T14:38:04Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add [[N900 accelerometer]] link</comment>
      <text xml:space="preserve">'''The [[Nokia N900|N900]] has bundled rotation functionalities, so this article applies only to its predecessors. See [[N900 accelerometer]] for more information.'''

Rotation allows you to change the screen orientation between landscape and portrait to all 4 cardinal directions. You may wish to do this to better view a long page of text, allow for easier left-handed operation,  for easier reading of certain websites, or a variety of other purposes.

Unfortunately, rotation support isn't bundled with Maemo even though the tablets support hardware screen rotation. Fortunately, installing the necessary packages for rotation support is a relatively easy process.

== Installing ==
First, make sure you know what you're doing! Although the steps outlined here are easy to follow and mostly safe, you are working with important system files, and a careless misstep could leaving you in need of a [[updating the firmware|reflash]].

These instructions only work for Diablo, and specifically version 5.2008.43-7, so make sure your system is completely up-to-date, and make sure [[Extras]] is enabled. You'll be installing the Advanced Backlight utility, which contains the rotation control. To begin, you will need to get [[root access]], open XTerm and become root.

There are three slightly different sets of packages for the [[Nokia N800|N800]], [[Nokia N810|N810]] and [[Nokia N810WME|N810 WiMax Edition]], so follow the appropriate steps for your device.

=== N800 ===

'''''Successfully tested on N800 with 5.2008.43-7.'''''

Run this command in XTerm as root:

 apt-get install advanced-backlight osso-software-version-'''rx34'''-unlocked

=== N810 ===
Run this command in XTerm as root:

 apt-get install advanced-backlight osso-software-version-'''rx44'''-unlocked

'''''Successfully tested on n810 with 5.2008.43-7.'''''

If you are flashed your device with 5.2008.43-7 (not updated from a earlier firmware!) then you only install advanced-backlight in Application manager and continue with next step.

=== N810W ===
'''''Successfully tested on n810 WM with 5.2008.43-7.'''''

Run this command in XTerm as root:

 apt-get install advanced-backlight osso-software-version-'''rx48'''-unlocked

=== For all N8x0 devices ===

'''''Sucsessfully tested on n800 with 5.2008.43-7.'''''

'''''Successfully tested on n810 with 5.2008.43-7.'''''

'''''Successfully tested on n810 WM with 5.2008.43-7.'''''

After following the appropriate steps for your device, continue and run:

 &lt;nowiki&gt;maemo-mini-curl -o kernel-diablo-flasher_2.6.21-200842maemo1rotationfast_all.deb http://outpo.st/rotate/kernel-diablo-flasher_2.6.21-200842maemo1rotationfast_all.deb
maemo-mini-curl -o xserver-xomap_1.3.99.0~git20070321-0osso20083801rotation_armel.deb http://outpo.st/rotate/xserver-xomap_1.3.99.0~git20070321-0osso20083801rotation_armel.deb
dpkg -i kernel-diablo-flasher_2.6.21-200842maemo1rotationfast_all.deb xserver-xomap_1.3.99.0~git20070321-0osso20083801rotation_armel.deb&lt;/nowiki&gt;

Once it finishes loading (it will take a minute), press enter to complete the proccess.
Reboot, make sure Advanced Backlight is enabled (Control panel -&gt; Panels -&gt; Status bar) and rotate using the selection in Advanced Backlight from your status bar.

[[Category:Power users]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>Rotation Manager</title>
    <id>5020</id>
    <revision>
      <id>45426</id>
      <timestamp>2011-09-27T17:08:09Z</timestamp>
      <contributor>
        <username>marmistrz</username>
        <id>4691</id>
      </contributor>
      <comment>redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Mar-Rotation Manager]]</text>
    </revision>
  </page>
  <page>
    <title>RubyBox</title>
    <id>1580</id>
    <revision>
      <id>46039</id>
      <timestamp>2011-12-15T06:32:43Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 46010 by [[Special:Contributions/114.79.28.10|114.79.28.10]] ([[User talk:114.79.28.10|Talk]]) vandalism/spam</comment>
      <text xml:space="preserve">RubyBox is a DosBox frontend written in Ruby. It allows you to run old Dos games and applications easily.

== Features ==

* Categorize your games
* Change settings without editing config files
* Add new games either manually or use the automatic scanner
* Import and export game settings using the online database
* Download freeware games, virtual keyboard layouts and keyboard mapper files with the download feature

== Usage ==

=== First Run ===

At first you should open the RubyBox preferences and enable the online database. Just enter 'nakkiboso.com' as the address and use your nickname of choice as the nickname and press 'Ok' button.

=== Adding your own games ===

[[Image:Rbox_scanner.png|180px|right]]

Adding games is easy. Just copy the games you want to try to your tablet's memory cards. Then select 'Application scan' from the menu. Press the 'Scan' button and RubyBox will scan your memory cards. Available games are then listed. By default RubyBox adds all available games but you can deselect the games you don't want to add. You can also select the correct game executable by clicking on the executable name and selecting it from the dropdown list. If you have enabled the online database, you can also select the 'Try to import game settings' option. RubyBox will then automatically import game settings from the database if found. Finally add the selected games by clicking on the 'Add selected' button. Your added games appear under the 'Uncategorized' category.

=== Importing settings ===

Select a game and click on the 'Import' button. If the game has settings in the database, they are imported automatically. These only change the DosBox' settings and don't touch your personal settings.

=== Editing settings ===

[[Image:Rbox_settings.png|300px|right]]
Select the game you want to edit and press the 'Settings' button.

==== Name ====

Game name that is shown on the category list. You can change it to your liking.

==== Executable ====

If the games has several executables and you have selected a wrong one for example, you can change it here.

==== Category ====

You can add, rename and remove categogories and then categorize your games with them. Blank category means 'Uncategorized'.

==== XKBD Layout ====

N800 users need to use virtual keyboard for most games, so if you have an N800, you should install the xkbd package. This setting allows you to select different keyboards and position them on the screen. When selecting the location, remember to click somewhere on the screen before saving the changes or changes won't be saved. Download section has Addison's keyboard collection with more virtual keyboards.

==== Mapper ====

This will allow you to select a different keyboard mapper. Mappers will change the keyboard bindings of your hardware keys. You can download alternative mappers from the download section.

==== DosBox settings ====

DosBox settings are split into basic and advanced settings. If you need to change a setting, check the 'Enabled' checkbox for that setting and change the value. Only enabled settings are saved and the rest use the DosBox' default setting.

Save the game settings by clicking on the 'Save' button.

=== Exporting settings ===

If you have found the perfect settings for a game, you can click on the 'Export' button. Your settings are stored into the database so others can enjoy them too.

=== Downloader ===

[[Image:Rbox_downloader.png|200px|right]]

RubyBox allows you to install Freeware games and custom virtual keyboards and keyboard mapper files. Just click on the 'Download' button. You can select the type of download from the dropdown at bottom left. Click on the 'Update list' button and you get a list of available downloads. Some items have icons on their left. The wrench icon means the download has imported settings in the database. The image icon means the download has a screenshot which you can view by clicking on the 'Screenshot' button. If you want to download something, select the directory you want to download them to with the 'Browse' button. Only games and temporary files are stored there, keyboards and mappers are stored under your home directory. Click on the 'Download' button to start the download. RubyBox will automatically extract and add the game to your game list.

'Statistics' button shows the statistics of RubyBox like number of registered users, imported game settings and downloads.

== Links ==

* DosBox: http://www.dosbox.com/
* DosBox at ITT: http://www.internettablettalk.com/forums/showthread.php?t=5686
* Games that work well with DosBox: http://www.internettablettalk.com/forums/showthread.php?t=15459

[[Category:Software]]
[[Category:Diablo]]</text>
    </revision>
  </page>
  <page>
    <title>Running Scratchbox in KVM</title>
    <id>2662</id>
    <revision>
      <id>32142</id>
      <timestamp>2010-04-08T11:38:10Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Why run scratchbox in KVM? */ reboot is not required, according to [[Documentation/Maemo_5_Final_SDK_Installation#x86-64_kernel]]</comment>
      <text xml:space="preserve">= Preface =

This is currently (mostly) a personal notes page, but you're welcome to edit, comment and make corrections or additions to it. Hopefully (and after some editing) it might become a complete HOWTO guide at some point.

This is still a work in progress, &lt;s&gt;meaning that I don't have a working installation yet. (I don't expect any problems in the setup though, I just have had limited time to put into this.)&lt;/s&gt;

I'm also a KVM newbie, so I could be doing some things wrong or in an unnecessarily complicated way. (Being new to this is also the reason why I decided to start writing down what I do; otherwise I'd have no way to backtrack and repeat my steps if I screw up somewhere along the way...)

== Why run scratchbox in KVM? ==

There are several reasons why you might want to do this:
* You might be running a 64-bit distribution, and be uncomfortable force-installing 32-bit packages on it
* You might not like installing software that hasn't gone through your distro's usual package management and QA process
* You might want to be able to snapshot your environment when it's ready, to be able to reinstall easily and/or migrate it to another machine.

There are several alternatives which might also work for you:
* The official VMware image, which is cross-platform and works out of the box. However, you might not like the [http://www.intelliadmin.com/index.php/2008/07/vmwares-insane-license/ audit rights clause] of the license.
* Other virtualization solutions such as Xen. Xen is open source but (unlike KVM) not part of the mainline linux kernel.
* User-mode linux might work - I think there was some discussion about this on maemo-developers, but I'm not sure what's the status of that.
* A simple chroot environment with ia32-libs, but then we're already somewhat drifting from the &quot;why&quot; part above.
* Or using a separate, standalone, non-virtualized installation would of course work too, if you have a machine to spare for that or don't mind rebooting, but that's beside the point of this article.

= Requirements =

Firstly, your CPU must support virtualization. This can be checked with:
 $ egrep '^flags.*(vmx|svm)' /proc/cpuinfo

Second, you need the modules '''kvm''' and either '''kvm-amd''' or '''kvm-intel''' available and loaded.

Third, and assuming a Debian system here, install the following:
 # apt-get install kvm virt-manager
(YMMV; there are other ways to setup KVM, and other distros might package the tools differently, but this is what we're doing here.)

Fourth, and finally, add yourself to the 'libvirt' group:
 # adduser yourusername libvirt
and either log out of your X session and re-login, or (as I prefer to do),
 $ ssh -X localhost
and do rest of your user-privileged setup in that terminal.

= Installation =

Also refer to [http://www.linux-kvm.org/page/Documents the KVM documentation] and [http://www.linux-kvm.org/page/FAQ FAQ].

TODO: Check the [http://www.linux-kvm.org/page/Management_Tools Management tools] listed on the KVM pages, to see if there's some better way for the setup. At least [http://sourceforge.net/projects/aqemu/ AQEMU] looks promising.

== Network ==

As we're not setting up a virtual server farm here, you probably won't want to bridge your physical network interface; a virtual network will do just fine.

At least Debian kvm comes with a default virtual network predefined; start it with
 # virsh net-start default

This will create a virtual virbr0 device and setup iptables forwarding rules for it. Those should be mostly fine, but you may want to check them.

Next, you'll probably want to run a DHCP server to provide an address for your virtual machine(s). Assuming the server in the 'dhcp' package is used, add virbr0 to the served interfaces in /etc/default/dhcp, and add a subnet definition to /etc/dhcpd.conf - e.g.
 subnet 192.168.122.0 netmask 255.255.255.0 {
         range 192.168.122.2 192.168.122.254;
         option routers 192.168.122.1;
         option subnet-mask 255.255.255.0;
         option broadcast-address 192.168.122.255;
         option domain-name-servers 192.168.122.1;
         option netbios-name-servers 192.168.122.1;
 }
(you can check the proper values with '''virsh net-dumpxml default'''). Oh, and yes I run my own DNS server too; you might try leaving out the domain-name-servers line if you don't. I guess probably the virbr0 forwarding rules would handle that with the outside world. The netbios-name-servers line is there just in case I add Win* virtual machines to the network later, and is not really needed here.

Now we're all set, proceed to:

== Creating the virtual machine, option one ==

There are at least two ways to initialize the virtual machine. The first one I tried was - if my memory (er, shell history) serves me right:
 $ virt-install --connect qemu:///system -n sb -r 1024 --arch i686 --vcpus 1 --os-type linux --os-variant debianlenny -v --virt-type kvm --accelerate --disk path=/home/juha/kvm/sb.qcow2,size=20,sparse=true --disk path=/dev/cdrom,device=cdrom,bus=ide,perms=ro --network network=default --keymap fi --vnc --noautoconsole
These options are somewhat superfluous (some of them would be the default anyway, but I was working through the man page and learning this stuff at the same time), but anyway this creates a 32-bit (i686) virtual machine named 'sb', with one virtual cpu, 1024 megs of ram, and 20 gigs of disk. I'm not sure what the os-type and os-variant options do exactly, but I assume they may enable some settings to be optimized for the particular OS flavor.

This also sets up vnc for the machine, with Finnish keymap (you may want to change that), but doesn't open the console automatically (I prefer to view it with virt-manager).

Note that we defined the cdrom with --disk instead of the usual --cdrom. This is to be able to give a '''bus=ide''' option instead of the usual virtio driver. ''For some reason kvm fails to boot from cdrom unless emulating the ide bus.'' Some quick googling revealed that it would - apparently - expect a 'boot=on' parameter which the current Debian virt-install fails to provide. You could try to patch the scripts to fix this, or you can just use 'ide' as above. Virtio is expected to be faster, but you probably won't be using the cdrom for much else than installation anyway.

Also note that you could as well give a path to a bootable ISO image, but I happened to have a Deian-Lenny install CD lying around, so I used that.

== Creating the virtual machine, option two ==

I actually didn't finish the installation with the above command line, deciding instead to install newer versions of kvm and the tools from unstable - to check if the booting issue would be fixed. It wasn't, but with virt-manager 0.8.0-2 it's possible to create virtual machines through the GUI. (Actually I'm not sure if the version I had from 'testing' might have included that as well, but if it did, I didn't notice. Like said these are my installation notes, please comment or fix if what I'm saying is not correct.)

If you already created the virtual machine before and want to destroy and redefine it, this can be done with
 virsh destroy sb
 virsh undefine sb

So off to the virt-manager GUI. Most of the setup is pretty straightforward and won't be covered here in detail, but unfortunately this has a couple of gotchas too:
* The GUI insists on creating your disk image in /var/lib/libvirt/images. This may be a problem if your /var is on a separate partition, and doesn't have enough space free.
** To work around this, I bind-mounted $HOME/kvm there (a symlink didn't seem to do the trick, for some reason). Unfortunately the GUI still tries to be a bit too smart and limits the maximum image size to the space available on /var, so additionally you'll have to grep the python scripts included in the '*virt*' packages for the above path, and replace it with the real physical path in your homedir. I think there were two such files. (I could be wrong, but only editing them also didn't seem to work without the bind-mount.)
** A better workaround could be selecting to use an existing image file, if you have one from a previous virt-install attempt or can figure out the right command to create it otherwise, but I didn't try that...
* Unless the cdrom booting issue has been fixed by the time you're doing this, your virtual machine will start but you will be greeted with the &quot;No bootable device&quot; message on the vnc console.
** To fix this, shut down (or force off) the virtual machine, and enter &quot;virsh edit sb&quot;. Find the cdrom definition in the XML and change its bus attribute from 'virtio' to 'ide'. While you're at it, you might replace the path for the disk image with the real location, so you won't need to keep the bind-mount around. Save the file and you're all set.

You should now have a working virtual machine installation. Insert the installation cdrom, check that the Boot Device in virt-manager &quot;Details&quot; page is set to CDROM (don't forget to Apply the change if it's not), and proceed to the next step:

== Installing the OS ==

There shouldn't be anything special or noteworthy here. Just a plain normal Debian installation (you may need to change the virt-manager Boot Device back to Hard Disk after the installation is complete).

I realized afterwards that I probably allocated way too much disk space to the virtual machine. My intention is to keep all my source code on the host machine and do all editing there, just mounting the directories to the virtual machine using some network filesystem, so I won't be needing much space on the virtual side.

This time I also installed the full Debian system in the virtual machine, complete with the GNOME desktop, OpenOffice, GIMP, Iceweasel, etc. which won't be needed on the virtual development box. So if I do this again, I'll probably use a much smaller virtual disk, and only install a minimal Debian system (and use ssh to complete the setup, instead of using the full desktop environment over vnc).

One further question: I chose the default single-partition setup, which also seemed to create swap on the virtual disk. Does that ever make sense, or would it be better to just give the virtual machine &quot;enough&quot; ram and let the host handle swapping? How much would be enough for building stuff in the SDK? How much would be too much (with respect to the physical ram installed on the host)?

== Installing the SDK ==

&lt;s&gt;With the OS in place, there shouldn't be anything unusual about the SDK installation either, but I didn't get that far yet. Up to now I had enough to do just learning to use KVM and working around the various bugs in the virtualization tools, and decided to stop here for today and write those steps down. If someone else has time to continue this before I do, please go ahead :-)&lt;/s&gt;

EDIT: No problems with SDK installation, but didn't have time to continue with this page yet.

== Setting up a network filesystem ==

To be able to edit sources on the host side (and not have to replicate my entire emacs setup). Could be done in either direction: sources on host, and exported to vm so scratchbox can access them, or sources on vm and exported to host.

TODO, the biggest piece still missing from a fully functional setup. I'm not so familiar with network filesystems, any ideas what's the best way to do this?

== Setting up Xephyr ==

In principle you could install Xephyr either on your host or in the virtual machine. I'm currently running it in the virtual machine over ssh, e.g.
 ssh -X ip.of.virtual.machine Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb
and then the usual &quot;export DISPLAY=:2&quot; and &quot;af-sb-init.sh start&quot; in scratchbox.

== OpenGL with the virtual setup ==

TODO. Possible?

== Finetuning ==

Putting the necessary steps from above into scripts so that the setup is easy to restart after a reboot. Maybe other scripts or tools to make the initial setup easier, or even a ready-to-run SDK image, if some kind person at Nokia or in the community decides to create such things? TODO.

[[Category:Development]]
[[Category:Scratchbox]]</text>
    </revision>
  </page>
  <page>
    <title>SMSCON</title>
    <id>4428</id>
    <revision>
      <id>48738</id>
      <timestamp>2012-07-13T16:21:37Z</timestamp>
      <contributor>
        <username>yablacky</username>
        <id>4689</id>
      </contributor>
      <comment>/* Wiki access history */</comment>
      <text xml:space="preserve">==Preface: Early Development/Release Info==

Info not yet present in regular part of this wiki:
[http://talk.maemo.org/showpost.php?p=1236734&amp;postcount=1213 smscon 0.10.6-1].

Update for 0.9.19++ is in progress for this wiki. In particular section &quot;Usage&quot; still needs updates.

==Introduction==

SMSCON provides complete control of your [[Nokia N900|N900]] by sending SMS commands to it. Other methods are supported as well - we come this is later - but SMS is easiest way and it is the reason why this app is named SMSCON.

Remote controlling your phone is particularly handy in case you cannot find it, for example if it has been lost or even stolen. The first approach to find the phone is giving it a usual phone call awaiting to hear it ringing somewhere in your coat-pocket or the like. If this doesn't help, SMSCON comes into play.
 
SMSCON can't guarantee that you will find your phone again, but it will provide the maximum chance to recover it. If this application ever helps you to recover your phone please tell the story on Maemo.org! The best way is of course to never lose your phone or let it get stolen...

[[SMSCON Editor]] is a GUI helper application to configure and even test SMSCON operation. We recommend normal users of the phone to use [[SMSCON Editor]]. Note that this is a separate application that installs additionally to SMSCOM.

Configuring SMSCON without [[SMSCON Editor]] is possible but you need some experience in unix command line. As almost ever, the command line offers maximum possibilities to adjust the application to your own needs.

'''WARNING:'''
This application can send (multiple) SMS messages automatically (in the background). Be aware that SMS sending is '''not free''' and it's costs depends on the used telephone subscription with your Nokia device. Sending many SMS might be a minor problem for those having a SMS-flat-rate...

=== Where to get more help ===

Please read this wiki first. If you have further questions, suggestions, compliments or bad marks then check the forum
[http://talk.maemo.org/showthread.php?t=60729 SMSCON at talk.maemo.org]. Don't hesitate to post your statement there.

=== How to report bugs ===

Click here to [mailto:schwarz.ware@gmx.de?subject=SMSCON%20BUGREPORT&amp;body=Please%20provide%20the%20following%20information:%0a%0aSMSCON-Version:%0aSMSCON-Editor-Version:%0aProblem%20description:%0aExpected%20result:%0aHow%20to%20reproduce:%0a%0aThank%20you. report a bug] or post them in the [http://talk.maemo.org/showthread.php?t=60729&amp;page=9999 forum].

==Features==

The are a bag full of features offered by SMSCON. Here's an overview:

===General===

* Looking for commands in received SMS messages.
* Asking a remote command server for commands. Details are [[ #Remote command server setup and use | here]].
* Sending notifications, responses and query results by SMS and/or by EMAIL.
* Send help about all currently recognized SMS commands. Details are [[ #List of known sms commands | here]].
* Supports use of multiple SIM cards.
* Detect SIM card change. Details are [[ #SIM card change detection | here]].
* Detect SIM card removal. Details are [[ #SIM card removal detection | here]].
* Optionally turn the phone silent on receiving a known command.
* Stores personal settings encrypted.

===Locating the phone===

* Send notification about current GPS location coordinates via SMS message and/or EMAIL. Those EMAIL have even attached a GoogleMaps picture with your phone's location on it.
* Track the phone's GPS location and location changes by let it automatically send repeated notifications in a selectable time interval.
* Let front camera take pictures and send them via email notification. With a some luck you may see where your phone is or who is using it.
* Send a live front camera video to a different computer on the internet on which is running a video viewer application [available since version 0.9.19].
* Let the phone make a voice call to your controlling phone. Once the call is established you can listen where your phone is.
* Play a pre- and user-defined sound file (only WAV supported). May be used instead of just let the phone ring and let it say a special message.

===Locking and Unlocking===

* Optionally lock the phone on receiving any known command.
* Explicitly lock the phone by command. Nobody can use your locked phone until it receives an unlock command (as long unlock code is unknown, of course).
* Optionally unlock the phone on detection of SIM card change. -- Why unlocking? Well, unlocking makes sense when regular phone owner is more interested on finding the actual device than as keeping its private/sensitive phone data protected/locked. A locked phone prevents even to enter the SIM card PIN. Consequently telephone functions do not work either. This is very secure but makes it almost impossible to contact the phone after booting with unknown SIM card installed. Note that a finder may remove the SD-memory card to read its content.

===Direct control===

* Run directly a pre-defined shell command through SMS message where command output is immediately reported.
* Run a pre-defined (and user-configurable) shell script to start other programs, delete files etc. May be used to wipe out sensitive data from phone. Direct wipe commands are not provided by SMSCON. Writing (and testing) a script doing so is at your own risk.
* Open a (reverse-)SSH connection to your own (home-)server to control the phone at command-line level from your own home (or any other) computer.

===Automatic notifications===

* Detect changing battery charge level and send notification about that.
* Detect keyboard slider movement and send notification about that. Keyboard usage might indicate that somebody has found your phone.

===System===

* Autoloads at boot. This ensures that SMSCON is active (that means is listening for commands) even after device (re)boot. Autoload is enabled by default during installation of a SMSCON package.
* Create and keep a log file on the device. The log file can be queried remotely by SMS command as well as locally via command line or [[SMSCON Editor]].
* Reboot the phone. Albeit this is possible it is not generally recommended if your SIM card has a PIN: If nobody enters the PIN correctly, the phone would boot but could not connect to GPRS network.
* Shutdown the phone. Also just possible but not generally recommended.
* Stop &amp; restart SMSCON activity by SMS command. On trouble, this might be preferred operation instead of rebooting the phone.
* Send notifications if SMSCON crashes on activity. Should this ever happen, you're encouraged to forward them to the SMSCON developer team ([[#How_to_report_bugs |make a bug report]]).

==Installation==

Always install the latest stable version on your phone; previous version can have bugs and have less functionality!

===Where to get from===

The latest stable versions are available in the [[Extras]] repository and can be installed simply using the phones Application Manager (HAM). Therefore, in HAM ensure [[Extras]] repository is enabled then open the &quot;ALL&quot; category and search for &quot;smscon&quot;.

Alternatively the packages can be found here: [http://maemo.org/downloads/product/Maemo5/smscon/ SMSCON] and there: [http://maemo.org/downloads/product/Maemo5/smscon-editor/ SMSCON Editor].

If you are willing to try unstable versions and help testing the application, consider to install packages from here: [http://maemo.org/packages/view/smscon/ SMSCON Releases] and there: [http://maemo.org/packages/view/smscon-editor/ SMSCON Editor Releases]. Be warned.

===Incompatibilities===

Read this section to find out applications known to be not perfectly compatible with SMSCON operation:

* The [[http://wiki.maemo.org/Mms fMMS]]: application (send and receive MMS) may cause use of wrong 3G connection. '''Problem''': The MMS related connection usually does allow access to internet in general. '''Solution''': Don't have a MMS related GRPS access point defined (those that fMMS would use). '''Reason''': The phone, if in automatic connection search, may select the wrong 3G connection even if SMSCON is '''not''' installed. So this is not really a SMSCON issue. The solution for proper SMSCON operation is to have only one GPRS/3G APN defined. The pure installation of fMMS is no harm while no additional APN is configured.

===Installation details===

On very first installation, SMSCON generates

* a default settings file with all the user settings of SMSCON.
* an IMSI database to store IMSI numbers of SIM cards allowed. Other SIM cards will cause detection of SIM card change and optionally unlock of the device on boot.
* a default &lt;code&gt;smscon_script&lt;/code&gt; file with example code for COM_CUSTOM command.
* a default &lt;code&gt;alarm.wav&lt;/code&gt; file for COM_ALARM command.
* a SMSCON logfile.
* a &lt;code&gt;smscon&lt;/code&gt; command for use on unix command line.

On installation of update versions (since 0.9.*) , SMSCON

* updates the settings file to disable obsolete settings.
* updates the settings file to add new settings.
* leaves IMSI database untouched.
* leaves &lt;code&gt;smscon_script&lt;/code&gt; file untouched.
* leaves &lt;code&gt;alarm.wav&lt;/code&gt; file untouched.
* tries to repair previous SMSCON installation. 
* adds entries to SMSCON logfile.
* updates the &lt;code&gt;smscon&lt;/code&gt; command.

===Before using SMSCON the first time===

It is highly recommended to review all user settings and adjust them to your needs. Since this is a lot for the first time, there are a few important things for you to setup (no must but recommended):
* All the [[#Email_settings | Email settings]] to enable SMSCON to send EMAIL notifications.
* Personalized [[#Prefix.2Fsuffix_for_all_SMS_command_strings | SMS command code prefix and/or suffix]].
* The so-called [[#SMS_command_source | master number]].
* Last not least, [[#Set_the_phone.27s_lock.2Funlock_code | Set the phones lock code]].&lt;br&gt;This is not a SMSCON setting but a N900 device setting.

We recommend use of [[SMSCON Editor]] to review and change settings. Alternatively open Xterm and use [[#Configuration |the &lt;code&gt;smscon&lt;/code&gt; command]] on unix command line. &lt;b&gt;Do not use both methods at the same time&lt;/b&gt;: keep [[SMSCON Editor]] closed while you operate smscon on the command line. Otherwise results are unpredictable.

====Set the master number====

The '''master number''' is a phone number, namely the phone number of the main controlling phone. It ''can'' but '''should not''' be number of your N900 being controlled - this would be nonsense. It can also be left empty if you don't want to use the functionality that master-number offers. Best choice is to use the number of a second phone in your phone-portfolio. The number of your boy- or girlfriend's phone also does. No matter if that is a N900 as well.

'''Controlling your N900 is not restricted to the master number's phone.''' Any phone in the world can be used to send controlling SMS to your N900 and SMSCON sends SMS responses to it. One role of master numbers's phone is to receive a blind copy of all SMS that SMSCON sends to other phones.

Another role of master number comes into play if you start to control your N900 using different methods than SMS. We come to that later.

Further, the master number receives a notification if the password for [[SMSCON Editor]] got changed.

Last not least, the master number serves as a kind of password for some functions. This is also the case if you leave the master number empty. Then the password is just the empty password.

Here is how to set the master number:

* A typo-aware way to set the master number to a particular phone's number is using [[SMSCON Editor]] version 0.9.8 or higher and it goes like this:

# Open [[SMSCON Editor]], ensure daemon runs, quit [[SMSCON Editor]].
# From the particular phone, send a command to your N900. The default SMS message text for COM_CHECK is just &lt;code&gt;Check&lt;/code&gt; (note upper/lower case letters!).
# Wait until your N900 received that SMS.
# Again open [[SMSCON Editor]] go to &quot;General&quot; settings page.
# Enter the &quot;last sender&quot; number exactly as shown in the &quot;master number&quot; field above.
# Close &quot;General&quot; settings page and quit [[SMSCON Editor]]

* Set master number directly:
** Open [[SMSCON Editor]] go to &quot;General&quot; settings page, fill in &quot;master number&quot; field. Leave the field empty if you don't want to use master-number features.
** Alternativly, on unix command line do this:
  $ smscon -set MASTERNUMBER +xxyyyyyyyyyy     # or
  $ smscon -set MASTERNUMBER &quot;&quot; # no master number

====Set the phone's lock/unlock code====

The N900 has a standard device locking function which on the phone can be configured at 888 --&gt; Phone settings --&gt; Miscellaneous Settings --&gt; Device lock.

This lock has two settings: (1) Autolock and (2) Lock code. The lock state itself goes locked when (1) the phone is idle and Autolock is enabled or (2) if explicitly locked by user via Main-on/off-Button --&gt; Lock Device.

With SMSCON the lock state can also be controlled remotely by SMS commands.

Fortunately (from users point of view) the N900 device locking function has a feature that prevents a user from accidentally lock out himself: Unless the lock code was explicitly set once in the Device Lock settings, the phone will not lock until the lock code was entered; this means you need the code to even lock the phone. Locking can be canceled at this time! Unfortunately (from SMSCON point of view) this is also true if locking was requested by a SMSCON command.

Obviously locking via SMSCON command makes sense only if the the phone goes locked immediately without asking the current user for a code before.

In order to achieve this, '''each user of SMSCON is encouraged to at least once set an explicit device lock code on his/her phone'''. No matter if the code you choose is the same as the default code 12345 (which re-use is of course not recommended) and no matter if Autolock is enabled or not.

===Phone number format===

All phone numbers should be entered with country prefix. Not only ensures this that SMS are send successfully regardless where your phone actually is located. It further is essential to make phone numbers comparable.

Prevent common mistake: If you receive the same SMSCON reply messages twice on a controlling phone, then check and ensure the MASTERNUMBER you've defined starts with international country prefix.

===After installation===

SMSCON installes to autoload at boot, this can be disabled with the command-line command &lt;code&gt;smscon -unboot&lt;/code&gt; and re-enabled by &lt;code&gt;smscon -boot&lt;/code&gt; or with [[SMSCON Editor]].

After you made initial settings start SMSCON activity like this:
&lt;pre&gt;
Nokia-N900:~$ smscon -start
INFO: Daemon smscon_daemon requested to start.
INFO: Daemon smscon_daemon started [PID=17137].
&lt;/pre&gt;

This starts a background daemon which
* loads the configured user settings file
* stores your current IMSI code in the IMSI code database
* waits for commands until stopped or phone shutdown.

When later a new SIM card is inserted the new IMSI code is verified with the code in the stored in IMSI database. This is how the &quot;SIM card change&quot; will be detected.

==Configuration==

Prior to use SMSCON you have to configure it. Do this by assigning various settings a value. Settings have an internal name, such as MASTERNUMBER. Most settings have useful default values. But some need to be set to personalized values.

To keep your privacy, SMSCON stores personal settings encrypted in the config file. Note that this is not bullet proof to the maximum extend. Experienced hackers are able to decrypt that.

Following is a categorized list of all currently known settings with their internal names and a short description. To get and set the current value of a user setting enter these the commands:
&lt;pre&gt;
$ smscon -get NAMEOFSETTING &quot;default value&quot;   # query a setting
$ smscon -set NAMEOFSETTING &quot;the new value&quot;   # assign new value
&lt;/pre&gt;
If querying a setting that is not known or not set, the default value is displayed. An attempt to assign an invalid value is denied.

===SMS command source===
* 'SENDERNUMBER': SMS number of recent controller. Receives SMS notifications.&lt;br/&gt;This setting is automatically updated each time SMSCON receives a known command via SMS message.
* 'MASTERNUMBER': SMS number of master controller (encrypted).&lt;br/&gt;This setting is never automatically updated by SMSCON except on upgrading from older version to 0.9.x where it is set to the currently stored SENDERNUMBER.

===List of known sms commands===

These settings define text to trigger the corresponding command. You're encouraged to set them to words which are easy to remember in your language. The text may be set to the empty string which completely disables the command. It's not allowed to set two commands to the same text (except empty string).

A SMS message actually sent must consist of the command text prefixed/suffixed with text defined by [[#Prefix.2Fsuffix_for_all_SMS_command_strings | SMS_COMPREFIX/SMS_COMSUFFIX]] settings respectively.

* 'COM_CHECK': Command to ask for help.&lt;br/&gt;You may forget all other commands but should keep this and the prefix/suffix in mind.
* 'COM_REBOOT': Command to reboot the phone.
* 'COM_POWEROFF': Command to shutdown the phone.
* 'COM_POWER': Command to ask for phone battery status and many other status information.
* 'COM_LOCATION': Command to ask current GPS location.
* 'COM_REMOTEON': Command to start outgoing ssh connection.
* 'COM_REMOTEOFF': Command to stop outgoing ssh connection.
* 'COM_CAMERA': Command to take a picture or a live video from front camera [video since 0.9.19]. The front camera is used because it has no cover that may be closed.
* 'COM_CALL': Command to start an outgoing call.
* 'COM_LOCK': Command to lock the phone.
* 'COM_UNLOCK': Command to unlock the phone.
* 'COM_TRACKON': Command to start GPS tracking.
* 'COM_TRACKOFF': Command to stop GPS tracking.
* 'COM_CUSTOM': Command to run a predefined [[#Files intended to be edited by user directly | user script]]. The script runs asynchronously until it terminates itself.&lt;br&gt;Version 0.9.18 supports definition of command text that accepts one or more arbitrary text parts. This parts are extracted and passed to the user script. This indirectly adds support for multiple, unlimited number of user scripts. See [[#Variable text parts in command definitions | below]] for details.
* 'COM_CUSTOMLOG': Command to ask for output of last COM_CUSTOM command.
* 'COM_SHELL': The command text must be a unix shell command. It is directly passed to a unix shell for execution. In contrast to COM_CUSTOM, the COM_SHELL command does not execute in background and its output is immediately returned as notification SMS and/or EMAIL. Due to synchronous execution, you should not call commands that run for unpredictable long time (like pure ping).&lt;br&gt;Version 0.9.18 supports the definition of command text that accepts one or more arbitrary text parts. This allows to modify the shell command on a per sms-basis. See [[#Variable text parts in command definitions | below]] for details.
* 'COM_ALARM': Command to play once a predefined [[#Files intended to be edited by user directly | sound file]]. Alarm duration depends on sound file content; there is no command to stop playing the alarm sound.
* 'COM_RESTART': Command to restart the daemon.
* 'COM_LOG': Command to ask for application log.

====Variable text parts in command definitions====

The COM_CUSTOM and COM_SHELL commands allow to define one or more arbitrary text parts. Each of these parts is simply written as a * character (star). Each * is a placeholder for zero or any number of characters as long there is a match with the sms message. In the command definition, the stars of two placeholders must not be consecutive. They must be delimited by at least one (or more) different character. Otherwise it would be completely impossible to say which placeholder covers how many chars of the incoming message.

Should there still be two (or more) consecutive stars in the command definition (like ** or ***), they act as '''one''' placeholder even though. The difference to a single star is, that ** defines an ''optional'' placeholder: All placeholders from the first (leftmost) ** up to the last (rightmost, no matter if this is a * or **) are optional. If they are omitted in the sms-message, their delimiting characters must also be omitted.

Usually the character used to delimit two placeholder can't be part of a placeholders value and there is no way to escape a character from being used as a delimiter. Should this ever become a problem, consider to define a COM_CUSTOM command using one placeholder only and parse the string in the user script.

'''Restriction''': In commands via CHECKHOST it is (currently) not possible to specify values for placeholders. In this case parameter values will be the stars from the command definition.

Examples:
&lt;pre&gt;
 If COM_CUSTOM = mycmd(*/*/*)
 then message    mycmd(there/are 3/arguments)
 calls smscon_script with 3 parameters: &quot;there&quot; &quot;are 3&quot; &quot;arguments&quot;

      message    mycmd(watch / the / blanks! )
 calls smscon_script with 3 parameters: &quot;watch &quot; &quot; the &quot; &quot; blanks! &quot;

      message    mycmd(more/2/3/4/parameters)
 calls smscon_script with 3 parameters: &quot;more&quot; &quot;2&quot; &quot;3/4/parameters&quot;

      message    mycmd(less/parameters)
 is not recognized (no match for 2nd /)

 If COM_CUSTOM = mycmd(**/*/*)
 then message    mycmd(less/parameters)
 calls smscon_script with 3 parameters: &quot;less&quot; &quot;parameters&quot; &quot;&quot;

      message    mycmd(less/)
 calls smscon_script with 3 parameters: &quot;less&quot; &quot;&quot; &quot;&quot;

      message    mycmd(less)
 calls smscon_script with 3 parameters: &quot;less&quot; &quot;&quot; &quot;&quot;

      message    mycmd()
 calls smscon_script with 3 parameters: &quot;&quot; &quot;&quot; &quot;&quot;

      message    mycmd(**/*/*)
 calls smscon_script with 3 parameters: &quot;**&quot; &quot;*&quot; &quot;*&quot;
&lt;/pre&gt;

You may also use commas or any other chars or combination of chars, even blanks to delimit placeholders:
&lt;pre&gt;
 If COM_CUSTOM = P1=*, P2=**, P3=*
 then message    P1=micky, P2=mouse
 calls smscon_script with 3 parameters: &quot;micky&quot; &quot;mouse&quot; &quot;&quot;

      message    P1=micky, P2=mouse, P3
 calls smscon_script with 3 parameters: &quot;micky&quot; &quot;mouse, P3&quot; &quot;&quot;

      message    P1=micky, P2=mouse, P3=
 calls smscon_script with 3 parameters: &quot;micky&quot; &quot;mouse&quot; &quot;&quot;

      message    P1=micky,P2=nope
 is not recognized (no match for blank behind comma)

&lt;/pre&gt;

For COM_SHELL the assignment of message chars to placeholders is not important. Placeholder just indicate variable parts of the message here. The unix command being executed consist of the complete message anyway (after message prefix/suffix was stripped away).

====An example user script for COM_CUSTOM====

The smscon_script below demonstrates how to manage multiple user scripts. It is an example that may serve as a basis for your own dispatching script. Note that it does not depend on how COM_CUSTOM is actually defined (unless it has at least 3 placeholders):
&lt;pre&gt;
#!/bin/sh
# @abstract A smscon_script that uses new COM_CUSTOM command features.
# @see SMSCON application, N900, Nokia
# @author yablacky &lt;schwarz.ware@gmx.de&gt;, 2012-05-12
# A smscon_script example that makes use of new COM_CUSTOM command features.
# They allow to define placeholder in the sms-command that accept arbitrary
# text. This text is extracted placeholder by placeholder and is passed to
# this script as positional parameters $1, $2, ...
# This example script checks the first parameter and performs different actions.
trim() { local -; set -f; echo $1; }
CMD=$(trim &quot;${1:-default}&quot;)
test $# -gt 0 &amp;&amp; shift
echo &quot;Processing '$CMD' from $SMSCON_SENDERNUMBER via $SMSCON_COMMANDORIGIN on $(date)&quot;
case &quot;$CMD&quot; in
&quot;&quot;|&quot;*&quot;|&quot;default&quot;)
	# A common case getting here is when COM_CUSTOM command is detected by CHECKHOST
	# because (currently) CHECKHOST is not able to specify parameters. 
	echo Process list on $(date):
	ps
	echo netstat:
	netstat -tean
	;;
ps)	ps
	;;
netstat)
	netstat -tean
	;;
smsconset)
	# Set SMSCON settings remotely!
	smscon -set &quot;$@&quot;
	;;
usercmd)
	# Execute any command which is given in remaining parameters.
	# *************************************************************************
	# WARNING: THIS IS VERY POWERFUL BUT IT IS FINALLY A BACKDOOR TO THE DEVICE.
	# *************************************************************************
	# To limit possible desaster, create and change to a temporary directory
	# and execute the command in the context of user rather than root:
	D=/tmp/smscon_script
	test -d &quot;$D&quot; || mkdir &quot;$D&quot; || test -d &quot;$D&quot; || exit
	chmod 777 &quot;$D&quot;
	cd &quot;$D&quot;
	echo Executing: &quot;$*&quot;
	echo &quot;$*&quot; | su user
	cd ..
	rm -fr &quot;$D&quot;
	;;
purge-the-phone)
	# Call a script that removes all private data from the phone.
	# May be called if phone is lost without chance to get it back.
	remove_sensible_private_data.sh &quot;$@&quot;
	;;
do-something-else)
	do_something_else.sh &quot;$@&quot;
	;;
*)
	echo &quot;Unknown command '$CMD'&quot;
	;;
esac

&lt;/pre&gt;

====A powerful but dangerous example for COM_SHELL====

Since version 0.9.18 it is possible to define the command text for COM_SHELL as
 sh -c &quot;*&quot;
'''SECURITY NOTE''': Don't do that if you haven't any shadow of what this means. For those who know and are crazy enough to do, it offers amazing possibilities to control the phone via SMS. You should have SMS_COMPREFIX and SMS_COMSUFFIX defined to some reasonable long text.

'''ECONOMY NOTE''': The COM_SHELL command immediately replies by sending SMS messages containing the command output. Be careful with long-time-running commands and/or hugh-output-producing commands.

====COM_CAMERA: How to select picture or video====

The COM_CAMERA command activates the front camera for taking a single picture or a live video stream [video since version 0.9.19]. Once started, a live video stream is continuously sent until explicitly stopped by another COM_CAMERA command. A picture requires only one command per picture.

To select picture or video, the COM_CAMERA command does now accept up to 3 parameters. To specify them in a SMS, you have to define the COM_CAMERA command on your phone to contain at least three (recommended optional) [[ #Variable text parts in command definitions | placeholders]]. The corresponding parameter's meaning is as follows:

 $1: Select picture or live stream (case insensitive):
     (empty), P, PIC or IMG: Take single shot image and send it by mail as usual.
     off, 0 or - (minus): Turn live stream off.
     (any other value): Turn live stream on with parameters $2 and $3 as follows: 
 $2: If live stream on: Hostname or IP where to send the live stream to.
 $3: If live stream on: Port number where the given host is listening (default 5000).

Previously COM_CAMERA commands work as before and will take a picture (unless you've defined it containing a * already). You have to change your COM_CAMERA definition to enable live videos. For example,you may set it to

 Camera**,*:*

Then SMSCON would accept the following SMS messages (prefix/suffix omitted for simplification):

 Camera                           --&gt; request to take a picture
 CameraPIC                        --&gt; ditto
 CameraVID,your-computer.com:4321 --&gt; request to start video being sent to
                                      host your-computer.com on port 4321
 CameraON,your-computer.com:4321  --&gt; ditto
 Camera1,your-computer.com:4321   --&gt; ditto (the 1 behind Camera is a 'one')
 Camera1,your-computer.com        --&gt; ditto, but uses default port 5000
 Camera0,your-computer.com        --&gt; request to stop video (the 0 behind Camera is a 'zero')
 Camera0                          --&gt; ditto
 CameraOFF                        --&gt; ditto

On a successful camera activation (picture as well as video) SMSCON sends a notification email. For pictures, this email has attached the picture taken. 

For video is attached a viewer application that can be started to receive and watch the live stream. The viewer application is designed to run on linux systems for now. It requires the gstreamer application which is free. And you need, of course, run the viewer on the host that you specified in the preceding COM_CAMERA command. The usage of viewer application is:

 usage: live-viewer.sh [--help] [port-number]
  --help              This help.
  port-number         Port on this host where to listen for incoming
                      live stream. Default port number is 5000.

If the video receiving computer is in a LAN behind a (DSL-)router (and the phone isn't) then you need to configure the router to forward the port for the UDP protocol.

By design SMSCON does not support a pre-configured video receiving host. It must be specified in each COM_CAMERA command explicitly. This gives you a wide range of possible computers where to watch the video.

SMSCON is not able to deliver picture and live video at the same time. A picture request also terminates a running live video (and does not restart it). Surprisingly SMSCON stop/start/restart does not terminate a live video. Reboot does.

'''Beware of network traffic caused by live video!''' If the phone is currently connected via WLAN then the traffic is about 40 kB/second. If a 2G or 3G connection is detected then a smaller image is sent which causes about 10 kB/second. The frame rate is about 15 fps in any case.

===Prefix/suffix for all SMS command strings===
* 'SMS_COMPREFIX': Prefix that must be present before all COM_XXX commands [even COM_SHELL] (encrypted).
* 'SMS_COMSUFFIX': Suffix that must be present behind all COM_XXX commands [even COM_SHELL] (encrypted).

These two settings play the role of passwords to protect your phone from being controlled via SMS by someone else than you. Would you leave all the command codes to their default and prefix and suffix is also empty, then I could shutdown your phone if only I have your number.

Instead of explicitly define all your SMS control commands (COM_xxx) to start with a unique prefix and/or suffix, you simply define a prefix and/or suffix that is implicitly used. If you have very cryptic codes defined you may leave &quot;SMS_COMPREFIX&quot; and/or &quot;SMS_COMSUFFIX&quot; empty. But advantage of using &quot;SMS_COMPREFIX&quot; and &quot;SMS_COMSUFFIX&quot; is:
# Prefix and suffix can be changed easily while embedded COM_xxx codes remain unchanged.
# Prefix and suffix apply to COM_SHELL command as well.

Example for COM_SHELL: With the configuration set to:
 COM_SHELL=uptime
 SMS_COMPREFIX=aaa.
 SMS_COMSUFFIX=.bbb
The recognized SMS command message to execute the shell command &quot;uptime&quot; is:
&lt;code&gt;aaa.uptime.bbb&lt;/code&gt;

Note for upgraders: In versions before 0.9.x the command message for COM_SHELL was differently.

===Remote command server===
* 'ENABLECHECKHOST': Enable checking URL for commands.
* 'CHECKHOST': The URL to check (encoded).
* 'CHECKTIME': Minutes between URL checks.

===Email settings===
* 'EMAILADDRESS': Recipient of EMAIL notifications (regular owner of this phone, please contact him!).
* 'USER': SMTP username for EMAILFROM (encrypted).
* 'PASSWORD': SMTP password for EMAILFROM (encrypted).
* 'EMAILFROM': Sender address of EMAIL notification (encrypted).
* 'MAILSERVER': SMTP server hostname or IP (encrypted).
* 'MAILPORT': SMTP server port number.

===SSH settings===
* 'REMOTEHOST': ssh server hostname or IP [to build tunnel] (encrypted).
* 'REMOTEPORT': ssh server port number [to build tunnel].
* 'REMOTEUSER': ssh server username [to build tunnel] (encrypted).
* 'REMOTEPASSWORD': ssh server password [to build tunnel] (encrypted).
* 'REMOTELISTENIP': ssh server IP address [entry of tunnel itself] that will be forwarded to phone (*|localhost|IP).
* 'REMOTELISTENPORT': ssh server port number [entry of tunnel itself] that will be forwarded to phone.
* 'REMOTE2LOCALPORT': Local port number to be forwarded to [exit of tunnel itself] on the phone.

If you want to use the SSH connection feature (COM_REMOTEON and COM_REMOTEOFF commands), you also need a fixed IP address (or a dyndns.org domain name) on your preconfigured remote server for the SSH (default port 22) connection.

===Notification settings===
* 'COMMANDREPLY': Send notification if command accepted (yes|no).
* 'MESSAGESEND': How to send notifications (sms|email|both|none).
* 'ENABLERESEND': On failure try to re-send reply message (yes|no).
* 'RESENDTIME': Minutes between message re-send tries.
* 'RESENDMAXTRY': Maximum number of message re-send tries (0=no limit).
* 'SMS_PARTS_LIMIT': SMS notification produces no more than this number of single SMS (0=no limit).
* 'LOG_TIMEFORMAT': Format to use for timestamps (see strftime).

===GPS settings===
* 'GPSSEND': How to send GPS notifications (sms|email|both).&lt;br/&gt;Read further to understand good reasons to report GPS notifications differently then others (of which sending is defined by MESSAGESEND).
* 'GPSTIMEOUT': Seconds until give up acquiring GPS coordinates.&lt;br/&gt;Timeout counting restarts after each successfully received coordinate. In order to give the GPS subsystem a chance to download the complete almanac from satellites this could be a reasonable high value. E.g. 600 seconds (5 minutes) or even more.
* 'GPSINTERVAL': Seconds between GPS coordinate acquisitions. Applies to COM_TRACKON and COM_LOCATION commands.
* 'GPSPOLLING': Minimum number of GPS coordinate acquisitions for COM_LOCATION's ''best accuracy of''.
* 'GPSMAXDEVIATION': Meters of minimum accuracy of a GPS coordinate for COM_LOCATION request.

On a '''COM_LOCATION''' command the phone acquires a series of GPS coordinates and reports the best one of them. At least GPSPOLLING coordinates are acquired for no longer than GPSPOLLING x GPSINTERVAL seconds. The timeout is utilized only so far the best coordinate's accuracy exceeds GPSMAXDEVIATION.

On a '''COM_TRACKON''' command the phone repeatedly acquires GPS coordinates and reports them in an almost GPSINTERVAL seconds interval. GPSPOLLING and GPSMAXDEVIATION play &lt;u&gt;no role&lt;/u&gt; for COM_TRACKON mode. Repeated reports might be a lot stuff and it could be really expensive if GPSSEND includes sending via SMS. Consider to set GPSSEND accordingly.

A COM_TRACKON command - after a reasonable while - should be followed by a COM_TRACKOFF or COM_LOCATION command to stop the phone from sending further notifications. Otherwise the battery runs out of breath too fast. (To be precise, COM_SHUTDOWN or COM_RESTART also stop things but are obviously not recommended for this purpose).

===Miscellaneous settings===
* 'SILENCEDEVICE': Set phone silent before executing command (yes|no).
* 'AUTODEVICELOCK': Lock phone before executing any command except un/lock (yes|no).&lt;br/&gt;This saves you from sending explicit COM_LOCK commands and may be used in conjunction with SIMUNLOCK setting enabled. The scenario is as follows:&lt;br/&gt;&lt;br/&gt;A finder/thief replaces the SIM card and reboots. SMSCON detects SIM change, unlocks (if locked et all) then connects to GPRS (of new SIM) and sends you a SIM-change notification. As you receive that, &lt;u&gt;you know the new number of your phone&lt;/u&gt;. To prevent finder/thief from operating your phone you may immediately send COM_LOCK or - with AUTODEVICELOCK enabled - even any other command to take control of your phone.&lt;br/&gt;&lt;br/&gt;
* 'SIMUNLOCK': Automatically unlock phone when new SIM is inserted (yes|no).

===Sensor detections===
* 'KEYBOARDDETECT': Send notification if keyboard is sliding (yes|no).
* 'AUTOBATREPORT': Send notification on battery discharge (yes|no).

==The SMSCON log==

All user action and activity of &lt;code&gt;smscon_daemon&lt;/code&gt; will be logged. To query the log file use [[SMSCON Editor]] or enter a &lt;code&gt;smscon -log&lt;/code&gt; command like this:

&lt;pre&gt;
Nokia-N900:~$ smscon -log
2012-01-15 00:16:34[SMSCON] INFO: Daemon smscon_daemon requested to start.
2012-01-15 00:16:35[SMSCON] INFO: Daemon smscon_daemon started [PID=17137].
2012-01-15 00:16:35[DAEMON] CRITICAL: smscon_daemon is starting.
2012-01-15 00:16:35[DAEMON] INFO: Successfully loaded &quot;/opt/smscon/smscon_config&quot; file.
2012-01-15 00:16:36[DAEMON] INFO: Found 1 IMSI code(s) in &quot;/opt/smscon/smscon_code&quot; file.
2012-01-15 00:16:36[DAEMON] INFO: Authorized IMSI code found.
2012-01-15 00:16:36[DAEMON] INFO: Phone battery charge is 45%, charging.
2012-01-15 00:16:36[DAEMON] INFO: Preferred GPS query interval is 20 sec.
2012-01-15 00:16:36[DAEMON] INFO: Keyboard slider change detection is off.
2012-01-15 00:16:36[DAEMON] INFO: Battery status change detection is off.
2012-01-15 00:16:36[DAEMON] INFO: (CHECKHOST) After 0 errors since 2012-01-14 23:16:35 GMT: Successfully read remote file.
2012-01-15 00:16:36[DAEMON] INFO: (CHECKHOST) smscon_daemon is deactivated (00) by remote host file.
2012-01-15 00:16:36[DAEMON] INFO: (CHECKHOST) Checkhost is on. Checking each 30.0 minutes.
2012-01-15 00:16:36[DAEMON] INFO: smscon auto-loads at boot. OK.
&lt;/pre&gt;

By default &lt;code&gt;smscon -log&lt;/code&gt; outputs the log information in a way that privacy data is somehow anonymous. But no guarantee! To view the log containing all data &quot;as is&quot; you need to provide the master number as a password like this:

&lt;pre&gt;
Nokia-N900:~$ smscon -pw &quot;+4912345678901&quot; -log
&lt;/pre&gt;
Where the value behind &lt;code&gt;-pw&lt;/code&gt; option is your master number.

When having trouble with SMSCON always check the log! Note that the log file itself (&lt;code&gt;smscon.log&lt;/code&gt;) is not readable by normal users. You need to use the &lt;code&gt;smscon -log&lt;/code&gt; command or use [[SMSCON Editor]] to display it (or be a super user ...).

==Usage==
 
This section explains how to operate in case you need to control your phone remotely. You need at least one of this:
* the ability to send SMS to your phone, or
* access to the remote command server your phone is polling.

To send SMS any phone does. '''Security note''': From a foreign phone, remember to remove all SMS you sent from that phones SMS-sent-history. Otherwise someone else may send them later again. If you're lucky to hold your N900 in hands again, then defining different command prefix/suffix asap is a recommended alternative or additional security option.

Won't miss to say: For using a remote command server, SMSCON and the command server must be setup and configured accordingly ''before'' you lost your phone.

No matter if SMSCON is triggered by a SMS message or by remote command server, it will first and optionally reply an acknowledge message and then execute the command in the background. 

Commands usually generate a reponse that SMSCON sends as an SMS-reply, EMAIL, both (SMS and EMAIL) or not et all. If SMS replies are enabled, they go to the phone that sent the command and to the master number if one is defined (only once if both numbers are the same). If the command comes from remote command server and SMS replies are enabled, they go to the master number if one is defined.

===Commands===
The (default) predefined SMS commands are: 
&lt;pre&gt;
Nokia-N900:~$ smscon -sms
COM_ALARM        = Alarm   /* NEW IN 0.8.1 */
COM_CALL         = Call
COM_CAMERA       = Camera
COM_CHECK        = Help
COM_CUSTOM       = Script
COM_CUSTOMLOG    = Script.log    /* NEW IN 0.9.x */
COM_LOCATION     = Location
COM_LOCK         = Lock
COM_LOG          = Log           /* NEW IN 0.9.x */
COM_POWER        = Power
COM_POWEROFF     = Poweroff
COM_REBOOT       = Reboot
COM_REMOTEOFF    = Remoteoff
COM_REMOTEON     = Remoteon
COM_RESTART      = Restart   /* NEW IN 0.8.1 */
COM_SHELL        = uptime    /* CHANGE: Better no i/o redirection since 0.9.x */
COM_TRACKOFF     = Trackoff
COM_TRACKON      = Trackon
COM_UNLOCK       = Unlock
&lt;/pre&gt;

These commands can be changed using [[SMSCON Editor]] or in Xterm at the unix command-line with the &lt;code&gt;smscon -set &lt;/code&gt; command (see [[#SMSCON command line options | SMSCON command line options]]). Set them to words in your language or something cryptic where only you know what it means, might be a good idea.

For now assume above definitions and empty SMS prefix/suffix (SMS_COMPREFIX and SMS_COMSUFFIX settings). Then when you send a SMS message to the phone which is exactly:

* 'Check' it replies by sending one or more SMS messages back to you with all the available SMSCON commands.
* 'Reboot' will reboot your phone. 
* 'Poweroff' will shutdown your phone.
* 'Location' will send the phone's current position by SMS or EMAIL (or both). 
* 'Remoteon' will enable the SSH connection to your (home-)server.
* 'Remoteoff' will terminate the SSH connection. 
* 'Camera' will take a front camera picture an send it by email.
* 'Call' will issue an outgoing call to you.
* 'Lock' will lock the device, so nobody can use your phone.
* 'Unlock' will remove the device lock.
* 'Trackon' will continuously send SMS or email (or both) with GPS location of the device.
* 'Trackoff' will disable sending GPS locations.
* 'Script' will run a predefined [[#Files intended to be edited by user directly | user shell script]].
* 'uptime' will execute the shell 'uptime' command on your phone and returns the output.
* 'Alarm' will play once a [[#Files intended to be edited by user directly | user defined sound]].
* 'Restart' will stop and start again the smscon_daemon.

===Remote command server setup and use===

To use this functionality you need a file that is accessible via internet and you must be able to change the content of that file somehow. A private or company homepage that allows you to serve a small extra file in some inconsiderable subdirectory might be all you need.

Find out the URL to retrieve the file and test the URL in a web-browser. Then setup SMSCON to query your remote command server as follows:

 smscon -set CHECKHOST &quot;http://my-homepage.example.com/privat/phone/control.txt&quot;
 smscon -set CHECKTIME 15                   # minutes
 smscon -set ENABLECHECKHOST yes

Once done, you can trigger any SMS commands by changing the content of the control.txt file (the file referred to by above URL which is an example only).

The file only must contain one of the following codes from 00, 01 to 19 or -1:

&lt;pre&gt;
-1 = COM_RESTART (behaves exactly like 17 since version 0.9.14 )
00 = no command
01 = COM_CHECK
02 = COM_REBOOT
03 = COM_POWEROFF
04 = COM_POWER
05 = COM_LOCATION
06 = COM_REMOTEON
07 = COM_REMOTEOFF
08 = COM_CAMERA
09 = COM_CALL
10 = COM_LOCK
11 = COM_UNLOCK
12 = COM_TRACKON
13 = COM_TRACKOFF
14 = COM_CUSTOM
15 = COM_SHELL
16 = COM_ALARM
17 = COM_RESTART
18 = COM_CUSTOMLOG
19 = COM_LOG
&lt;/pre&gt;
This two character code must be contained in the first two characters of the file. Further data is simply ignored but may be transferred with each query. So better keep the file small.

Note that it currently is not possible to specify values for placeholders that may be defined in a sms command (e.g. COM_CAMERA command etc).

SMSCON checks the content of the file and executes the corresponding command if the content '''changed''' since last check. This prevents repeated command execution. On the other hand, to give the same command again explicitly, you have to switch to a &quot;no comand&quot; in between, which has code 00. Don't change the command codes too early. Wait for at least CHECKTIME minutes.

If the phone has problems when reading the file from your server via the http protocol (or the protocol you set), then check the log for ''CHECKHOST'' errors.

The default CHECKTIME is 15 minutes but can be changed via CHECKTIME setting. Note that after giving a command via remote command server, it can take up to CHECKTIME minutes to detect and execute the command.

===SIM card change detection===

The first time an unknown SIM is detected, SMSCON will send a notification. It contains the new SIM card's phone number, IMSI code &amp; telecom operator name. This scenario happens if your phone's finder or thief replaces your SIM by his/hers own SIM card.

An unknown SIM is then entered to the SIM card database and will no longer generate a SIM card change notification.

===SIM card removal detection===

[since version 0.9.19] Each time the phone boots without a SIM card inserted, SMSCON tries to send an email notification (SMS is not possible without SIM). Email might work if the phone has somehow connected to an already known WLAN. The send retry option applies.

If email could be sent without SIM, there is a chance to control the phone at least via remote command server.

'''Note:''' On device boot it is possible to simply skip the SIM-card PIN-code question. To SMSCON this appears the same as SIM card removal. Consequently the email subject sent is &quot;No or skipped SIM&quot;.

'''Hint:''' Some user complained about being notified that they use their N900 albeit they use it without SIM in a home WLAN. Well, its not a bug, its a feature. Previously SMSCON versions throw away all possibilities being controlled by terminating itself. Should you use your phone this way and don't want any notifications et all, then do the same thing and stop SMSCON explicitly.

===Example config file===

Shown is an example config file as stored in &lt;code&gt;smscon_config&lt;/code&gt;. This is presented for the gentle user only. Normal users never need to see nor edit this directly. Please use smscon command line or SMSCON Editor to edit settings.

&lt;pre&gt;
# smscon user settings (initially written by version 0.9.16)

# smscon configuration file written by:
@APPVERSION      = '0.9.17'

# Send notification on battery discharge (yes|no):
AUTOBATREPORT    = 'no'

# Lock phone before executing any command except un/lock (yes|no):
AUTODEVICELOCK   = 'no'

# The URL to check (encoded):
CHECKHOST        = 'olbwLcsXidpecUsoyn63PzlmI6FcWazAIQzrVsS0qE1CuD0='

# Minutes between URL checks:
CHECKTIME        = '15.0'

# Send notification if command accepted (yes|no):
COMMANDREPLY     = 'no'

# Command to play predefined alarm.wav:
COM_ALARM        = 'Alarm'

# Command to start an outgoing call:
COM_CALL         = 'Call'

# Command to take picture:
COM_CAMERA       = 'Camera'

# Command to ask for help:
COM_CHECK        = 'Check'

# Command to run predefined user script:
COM_CUSTOM       = 'Script'

# Command to ask for user script output:
COM_CUSTOMLOG    = 'Script.log'

# Command to ask current GPS location:
COM_LOCATION     = 'Location'

# Command to lock the phone:
COM_LOCK         = 'Lock'

# Command to ask for application log (encrypted):
COM_LOG          = 'mCJtpl2x/hOmXJvthib0PZe0pA=='

# Command to ask for phone battery status:
COM_POWER        = 'Power'

# Command to shutdown the phone:
COM_POWEROFF     = 'Poweroff'

# Command to reboot the phone:
COM_REBOOT       = 'Reboot'

# Command to stop outgoing ssh connection:
COM_REMOTEOFF    = 'Remoteoff'

# Command to start outgoing ssh connection:
COM_REMOTEON     = 'Remoteon'

# Command to restart the daemon:
COM_RESTART      = 'Restart'

# Command to execute that shell command. Returns output as notification:
COM_SHELL        = 'uptime'

# Command to stop GPS tracking:
COM_TRACKOFF     = 'Trackoff'

# Command to start GPS tracking:
COM_TRACKON      = 'Trackon'

# Command to unlock the phone (encrypted):
COM_UNLOCK       = '5hIkR2JXO5Rh/DKvujfWs3Ixsg=='

# A csv with debugging options (for development use only)
DEBUGFLAGS       = ''

# Recipient of EMAIL notifications (regular owner of this phone, please contact him!):
EMAILADDRESS     = 'to@example.com'

# Sender address of EMAIL notification (encrypted):
EMAILFROM        = 'KgJG37AvcSCzgc+fNB1BbtyMpPHrQadT5gqkM5/zM9bSywc='

# Enable checking URL for commands:
ENABLECHECKHOST  = 'no'

# On failure try to re-send reply message (yes|no):
ENABLERESEND     = 'no'

# Seconds between GPS coordinate acquisitions for COM_TRACKON and COM_LOCATION:
GPSINTERVAL      = 10

# Meters of minimum accuracy of a GPS coordinate for COM_LOCATION request:
GPSMAXDEVIATION  = 50

# Number of minimum GPS coordinate acquisitions for COM_LOCATIONs best of:
GPSPOLLING       = 8

# How to send GPS notifications (sms|email|both):
GPSSEND          = 'sms'

# Seconds until give up acquiring GPS coordinates:
GPSTIMEOUT       = 1800

# Send notification if keyboard is sliding (yes|no):
KEYBOARDDETECT   = 'no'

# Format to use for timestamps (see strftime):
LOG_TIMEFORMAT   = '%Y-%m-%d %H:%M:%S'

# SMTP server port number:
MAILPORT         = 25

# SMTP server hostname or IP (encrypted):
MAILSERVER       = 'R15CnDU7WEzfK0KXN92XMRY1AvHrQadT5gqkM5/zM9bSywc='

# How to send notifications (sms|email|both|none):
MESSAGESEND      = 'sms'

# SMTP password for EMAILFROM (encrypted):
PASSWORD         = '9pfb8B3RUW0HzfsoCPC9ybIkOw=='

# Local port number to be forwarded to [exit of tunnel itself] on the phone:
REMOTE2LOCALPORT = 22

# ssh server hostname or IP [to build tunnel] (encrypted):
REMOTEHOST       = 'mqoUsM3+9k3n5VD+xNYSpTM5WQ1T+fy7Qek0+9iEtxxVjHg='

# ssh server IP address [entry of tunnel itself] that will be forwarded to phone (*|localhost|IP):
REMOTELISTENIP   = 'thMYuBGLYAoSYzwNIGmZtbB6iw=='

# ssh server port number [entry of tunnel itself] that will be forwarded to phone:
REMOTELISTENPORT = 'Fu7Jok9QmKAQNW4D364fISC97A=='

# ssh server password [to build tunnel] (encrypted):
REMOTEPASSWORD   = 'zoaD1+tPV/rjchz5kH49YvTLzA=='

# ssh server port number [to build tunnel]:
REMOTEPORT       = 22

# ssh server username [to build tunnel] (encrypted):
REMOTEUSER       = 'YIRJIwUpcrLjk5NMreAbcxG6tA=='

# Maximum number of message re-send tries (0=no limit):
RESENDMAXTRY     = 10

# Minutes between message re-send tries:
RESENDTIME       = '15.0'

# SMS number of recent controller. Receives SMS notifications:
SENDERNUMBER     = '+0000000000'

# Set phone silent before executing command (yes|no):
SILENCEDEVICE    = 'no'

# Automatically unlock phone when new SIM is inserted (yes|no):
SIMUNLOCK        = 'no'

# Prefix that must be present before all COM_XXX commands [even COM_SHELL] (encrypted):
SMS_COMPREFIX    = 'lCrge4igqhEBwf79LjQemKXTFA=='

# Suffix that must be present behind all COM_XXX commands [even COM_SHELL] (encrypted):
SMS_COMSUFFIX    = 'MQyE8gLfhntAx0LmedKshcfEuA=='

# A SMS notification produces no more than this number of single SMS (0=no limit):
SMS_PARTS_LIMIT  = 10

# SMTP username for EMAILFROM (encrypted):
USER             = 'h90Sc0FT1T+ktlwqlUHyP3nW1Q=='

# SMS number of master controller (encrypted):
MASTERNUMBER     = 'CLS61ljsGhXGsZAMN58l8II96w=='

&lt;/pre&gt;

===SMSCON command line options===
The basically available command-line options for SMSCON are as follows. There are more options e.g. to export and import all settings via command line. They are not shown here; should you ever need to use them, use &lt;code&gt;-help2&lt;/code&gt; option for help.
 
&lt;pre&gt;
Nokia-N900:~$ smscon -help
== smscon 0.9.13 - Nokia N900 remote control utility ==
usage: smscon [Options]...
 Options:
   -start             : Start smscon_daemon
   -restart           : Stop &amp; restart smscon_daemon
   -stop              : Stop smscon_daemon
   -status            : Get smscon_daemon status
   -log               : Show log file. Anonymized if no or wrong -pw option seen before.
   -del log           : Delete log file
   -sms               : Show SMS commands
   -set name &quot;value&quot;  : Set user setting (name = &quot;value&quot;)
   -config            : Show config file
   -script            : Show script file
   -scriptlog         : Show script.log file
   -del scriptlog     : Delete script.log file
   -boot              : Enable smscon_daemon to start at phone boot
   -unboot            : Disable smscon_daemon to start at phone boot
   -add imsi          : Add IMSI code of current SIM to code file
   -remove imsi       : Remove IMSI code of current SIM from code file
   -pw password       : Password to enable non-anonymized output. MASTERNUMBER is password.
   -version           : Show version number
   -help              : This help menu
   -help2             : More help (special options, rarely used).
&lt;/pre&gt;

===Remote SSH connection===

If SMSCON receives a COM_REMOTEON command (default command code 'Remoteon') it starts a ssh-server on the phone which tries to connect the host defined by REMOTEHOST setting, the &quot;server side&quot; (your own server). Values of REMOTEUSER and REMOTEPASSWORD settings are used to authenticate when contacting REMOTEHOST. This connection is (the reverse) part of the SSH connection tunnel being built.

Once this (reverse-)SSH connection is made you can from the server side (=REMOTEHOST) connect to your Nokia device with the following shell command:

&lt;pre&gt;
ssh -p 8080 localhost -l root
&lt;/pre&gt;

The hostname (''localhost'' in this example) was defined by the REMOTELISTENIP setting. The hostname ''localhost'' has special meaning, namely that you have to be logged in at your own server already when giving the above command.

The port number (''8080'' in this example) is a port number on REMOTEHOST and was defined by the REMOTELISTENPORT setting.

Above command contacts your phone at port 22 (or what ever port is defined by REMOTE2LOCALPORT setting). On the phone at this port the ssh-server is listening for incoming 'please open the door at the end of the tunnel' requests.

When you start making experiences with remote SSH connection you should leave all settings to their default, except REMOTEHOST, REMOTEUSER and REMOTEPASSWORD which must suit your own server name, user account on that server and its password.

On top of that, the remote SSH connection is even more powerful: If configured accordingly, it allows to contact the phone not only when you are logged in at REMOTEHOST. It supports connecting the phone from any (or particular) hosts in the internet as long as they are able to contact REMOTEHOST. In this case REMOTEHOST forwards  traffic to/from to the phone. Details on how to do this will follow.

==Files==

This section is a description of what you get when installing SMSCON. This is not a must-read when getting in touch with SMSCON for the first time.

If not otherwise stated, the location of all files mentioned in this section is &lt;code&gt;/opt/smscon&lt;/code&gt;.

SMSCON is a command line application whose executables parts are mainly:
* &lt;code&gt;smscon&lt;/code&gt;, the command-line control part and
* &lt;code&gt;smscon_daemon&lt;/code&gt; the daemon part, running in the background.

SMSCON is highly configurable and all the settings are stored in the &lt;code&gt;smscon_config&lt;/code&gt; file. Many settings are stored encrypted, so - from version 0.9.3 on - do not edit the file directly. See below for how to change settings.

===Files intended to be edited by user directly===

* &lt;code&gt;smscon_script&lt;/code&gt;, a unix shell script to extend SMSCON functionality. This script is intended to be edited by the gentle user. The installation of SMSCON provides a file with some non-destructive example code. SMSCON executes the script in the background with root-rights when receiving a COM_CUSTOM command. You need to be root to change &lt;code&gt;smscon_script&lt;/code&gt;.

* &lt;code&gt;alarm.wav&lt;/code&gt;, a WAV-format sound file. SMSCON plays the sound when receiving a COM_ALARM command. A special sound file (suitable to all languages) is provided by default. You're encuraged to replace it by your own sound. Write it to &lt;code&gt;/opt/smscon/alarm.wav&lt;/code&gt;. '''Note:''' currently only WAV sound is supported by SMSCON.

===Files used internally===

None of these files are intended to be viewed or even edited by a user directly. So don't do it. Use SMSCON commands to view and change them in a consistent way:

* application program files and libraries
* several log files
* internal configuration files
* temporary files to hold camera pictures, google maps etc.
* last not least, there are some internal files not stored in &lt;code&gt;/opt/smscon&lt;/code&gt;.

Names of internal files are not mentioned here by design. They are matter to change without notice as is the existence of this files itself.

===Files from other packages===

The installation of SMSCON via application manager (&quot;HAM&quot;) usually installs other software packages implicitly. They are also de-installed on SMSCON's de-installation (via HAM) in case they are no longer referenced otherwise.

Besides '''python2.5''' this is:
&lt;pre&gt;
python-crypto 
python-gobject
python-location
python-dbus
pexpect
gstreamer-tools 
openssh-client
openssh-server
alsa-utils   /* NEEDED IN &gt;= 0.8.1 */
&lt;/pre&gt;

As said above, regular use of SMSCON does not require knowledge of files nor packages used.

==(More or less) Frequently Asked Questions==

* Q: I don't have a 2g connection. Can the email functionality send via 3G rather than try and connect to gprs?&lt;br&gt;A: That should be no problem. smscon does not handle 2G and 3G connections differently. It you have internet connection et all it's no matter whether it is 3G or 2G. Some telecom networks support both and the phone is even switching between both types every now and then without affecting smscon operation.
* Q: Is there a &quot;stolen mode&quot;?&lt;br&gt;A: No, nothing special. Smscon makes use of the N900's standard device lock function and may
** explicitly lock/unlock the phone on receiving a command or
** automatically on detecting some events.

== Versions ==

More information about each available version is [http://maemo.org/packages/view/smscon/ here].

=== 0.9.19-1 (Current [[Extras-devel]]) ===

'''Changelog'''
 FIX: Fix poor image quality on COM_CAMERA command. SMSCON now uses ambient light sensor to select proper exposure and gain values for camera.

 FIX: Fix leaving temp files on smsmcon installation/upgrade.

 ADD/CHANGE: SMSCON now keeps running rather than terminating itself if it does not detect a SIM card. This offers a litte chance that the phone connects to the internet via wlan which in turn allows to use CHECKHOST to control the phone. Note: If user skips the SIM code question on device boot, the phone treats this the same as if no SIM is present. SMSCON makes no difference. Now SMSCON makes an attempt to send a notification via email if no SIM was detected.

 ADD: The COM_CAMERA command does now accept up to 3 parameters. To use them a user has to define the COM_CAMERA command on his phone to contain at least three (recommended optional) placeholders (a placeholder is written as ** or * char). More details see SMSCON wiki.

=== 0.9.18-1 ([[Extras-testing]]) ===

'''Changelog'''
 ADDED: The SMS to trigger COM_CUSTOM and COM_SHELL commands may now contain arbitrary text which is passed to the script or shell as parameters. This allows for support of multiple custom scripts.
 ADDED: Some environment variables are now setup before executing COM_CUSTOM and COM_SHELL commands:
   ${SMSCON_COMMANDORIGIN} contains info of command origin [SMS, CHECKHOST, CMDLINE]
   ${SMSCON_SENDERNUMBER} contains current sendernumber
   ${SMSCON_MASTERNUMBER} contains masternumber
  MINOR CHANGES: Fixed some typos; Superfluous script file name removed from feedback message.

=== 0.9.17-1 (Current [[Extras]]) ===

'''Changelog'''
 FIX: Notification SMS were sent twice some times due to a too short timeout value. Now a longer timeout will hopefuly fix that.

=== 0.9.16-1 ===

'''Changelog'''
 FIX: Fixed some typos.
 FIX: On some N900 devices the gps location test does not proceed until another test was started. This is fixed now.
 FIX: A GPS Error is now reported rather than it potentially aborts the SMSCON daemon.

=== 0.9.15-1 ===

'''Changelog'''
 FIX: The COM_LOCATION (and COM_TRACKON) command fail if accuracy of a received GPS coord is &quot;not a number&quot;.
 FIX: Several issues if GSP device is also used by different application at the same time (GPSJinni, OVI maps, ...) are fixed.
 FIX: Fix behaviour if COM_LOCATION/COM_TRACKON commands are received while the other one is active. Now the mode is just switched.
 CHANGE: The COM_LOCATION command now takes even more than GPSPOLLING samples if best accuracy is above 50 meters and timeout (which is GPSINTERVAL * GPSPOLLING) is not reached yet. The tolerance (50) is configurable via new GPSMAXDEVIATION setting.
 ADD: New setting GPSMAXDEVIATION: Meters of minimim accuracy of a GPS coordinate for COM_LOCATION request. Default is 50 meters.

=== 0.9.14-1 ===

'''Changelog'''
 FIX: Remove double log message on received command.
 FIX: If alarm command changes profile for playing sound, it was not restored after alarm. Now it is restored.
 FIX: No longer treat CHECKHOST commands -1 and 17 differently. They behave the same now and will restart the smscon daemon exactly once (like only -1 did before).
 FIX: Fix missing application homepage URL in package description.
 FIX: On GPS location request, dismiss the very first GPS location delivered by GPS receiver because this sometimes seems to be the last fix from a long-time-ago somewhere-else location.
 ADD: Introduce a 'DEBUGFLAGS' setting to enable/disable generation of debug information in the log (for developer use only).

=== 0.9.12-1 ===

'''Changelog'''
 FIX: Issues on reading smscon settings of older versions and/or invalid settings. &lt;yablacky&gt;
    * Invalid settings now generate a warning on start but are left unchanged and will show up in the editor fields.
    * If user does not change them, they again will generate error messages when editor pages are closed.
 CHANGE: Restructure and modification of text in the General window (minor).
 FIX: Allow characters in the &quot;Listen IP&quot; field; &quot;*&quot; and &quot;localhost&quot; are valid inputs.

=== 0.9.11-2 ===

'''Changelog'''
 FIX: Fixed repeated resending of sms or email in almost zero-time intervals in case resend-time interval was configured to less than 1 minute.
 ADD: Anonymized log files. Can be used to post logs in bug reports etc. Works like this: Logfile shown by command &quot;smscon -log&quot; is now anonymized by default (phone numbers, host names, IP-addresses)
   IMPORTANT NOTE(1): Anonymizing takes place with ABSOLUTELY NO guarantee!
   IMPORTANT NOTE(2): It is NOT A BUG if there is too much or &quot;wrong&quot; anonymizing. If new option &quot;-pw password&quot; was seen on command line before -log, then logfile is shown un-anonymized as before. And of course a super user has not limits anyway.
 CHANGE: Logfile is no longer readable by normal user.
 FIX(MINOR): Fixed typos and added more comments.	

=== 0.9.10-1===	

'''Changelog'''
 FIX: If called in user mode, prevent -export or -export! option to create/write files that user has no permissin to create or write.
 FIX: Fix crash: TypeError: can only concatenate tuple (not &quot;list&quot;) to tuple	

=== 0.9.9-1===

'''Changelog'''
 CHANGE: Deamon does no longer need to restart for switching between test mode and normal operation mode.
 FIX: Daemon now reads test command requests from a named pipe and works them off sequentially (allows to quickly start several tests in a short time).
 FIX: Fixed that COM_REMOTEOFF command did not work.
 FIX: Fixed daemon crash (&quot;need more than 3 values to unpack&quot;)
 FIX (AGAIN): Force using busybox ps-command to ensure that process information like PID is at expected place.	

=== 0.9.8-1===

'''Changelog'''	
 FIX: Fixed problems with daemon process ids on devices with extended &quot;ps&quot; command installed. This bug might prevent power users from using smscon. So this fix is reason for early release of new version.
 FIX: Fixed interchanged message parameters in smscon -init! command output.
 ADD: Added usage hints to initial smscon_script file (minor change).	

===0.9.7-1===	

'''Changelog'''	
 FIX: Send battery status notification if charge is below 10% AND discharging (not OR discharning). If devices can't tell change/discharge status; discharge is assumed.
 FIX: Don't check for bootloader if in test mode.
 FIX: Wrong error message that daemon did not start on devices with extended &quot;ps&quot; command installed.

===0.9.3-1===

'''Changelog'''

  REFACTURING:
           * Extracted common code to a library (smsconlib.py) which is now used by smscon_daemon, smscon control program and smscon-editor.
           * Added a lot of code comments.
           * Encapsulated many code into classes. E.g. the complete encyption stuff is now transparent to smscon control program and smsmcon editor.
           * Restructured code, written new and renamed a lot of old stuff.
           * Moved code from files &quot;smscon&quot; and &quot;smscon_daemon&quot; to pure python-modules (smscon_master.py and smscon_service.py respectively). The original files are now just jackets calling main() in associated python module. This allows to compile the modules and hiding source code.
  NEW:    Encryption now uses salt (formerly encrypted data can be read).
  FIX:    Encryption does no longer fail on text ending with curly open brace.
  NEW:    &quot;MASTERNUMBER&quot; concept: A SMS number stored in the config file that  does NOT change due to SMS commands like &quot;SENDERNUMBER&quot; does. Each SMS is send to both (only once if they are the same numbers, of course). SMS replies to commands which are not introduced by SMS (e.g. via CHECKHOST) are sent to the MASTERNUMBER only. On upgrading, the default MASTERNUMBER is set to the current SENDERNUMBER.
  NEW:    &quot;COM_CUSTOMLOG&quot; command: A SMS command to retreive the output of the last &quot;COM_CUSTOM&quot; command. Will be sent via email only - would send too much SMS...
  NEW:    &quot;COM_LOG&quot; command: A SMS command to retreive the smscon.log file. Will be sent via email only - would send too much SMS...
  NEW:    The output of &quot;COM_SHELL&quot; SMS command is now sent as a command reply. You may have to remove output redirections from your shell command to get non-empty reply.
  NEW:    &quot;SMS_PARTS_LIMIT&quot;: A number to limit the number of single SMS that would otherwise be generated to send a too long SMS message. Zero means no limit.
  NEW:    &quot;LOG_TIMEFORMAT&quot;: Format to be used in time stamps of SMS and EMAIL messages.
  NEW:    &quot;SMS_COMPREFIX&quot; and &quot;SMS_COMSUFFIX&quot;: Instead of explicitly define all your SMS control commands (COM_xxx) to start with a unique prefix and/or suffix, you might now separately define a prefix and/or suffix that is implicitely used. While &quot;SMS_COMPREFIX&quot; and &quot;SMS_COMSUFFIX&quot; are empty, all your commands do as in older versions. Advantage of using &quot;SMS_COMPREFIX&quot; and &quot;SMS_COMSUFFIX&quot;:
           * Prefix and suffix can be changed easyly while embedded COM_xxx remain unchanged.
           * Prefix and suffix apply to COM_SHELL command as well. Example:
               With the configuration set to:
                   COM_SHELL=uptime
                   SMS_COMPREFIX=aaa.
                   SMS_COMSUFFIX=.bbb
               The recognized SMS command to execute the shell command &quot;uptime&quot; is:
                   aaa.uptime.bbb
  FIX:    It is no longer possible to define two SMS commands as the same string except the empty string, which means to disable that command being given via SMS.
  FIX:    SMS command recognition is no longer restricted to ASCII characters. The complete GSM 7 bit default alphabet may be used now (but not unicode). This gives you a greather variete of chars to use for your SMS commands.
  NEW:    The config file will now upgrade automagically from any previous version. New options are set to their default, obsolete options are commented out.
  NEW:    New function to export and import settings to/from arbitrary file. (see smscon -export and -import options). smscon editor makes now use of this functions to retrieve a and deploy editable configuration.
  NEW:    The smscon_daemon does no longer need to be restarted explicitly if smscon changes a setting. The daemon detects changes automagically and will read and apply the new configuration automatically.
  NEW:    The smscon_daemon now maintains a &quot;last known good&quot; configuration and uses that as a fallback in case the &quot;official&quot; configuration of smscon can't properly loaded by the daemon.
  NEW:    Camera picture and GSP Location requests do no longer force unconditional switching to GPRS network connection. The current connection will be used if the internet is reachable. Should a GPRS connection be required to reach internet, the GPRS connection is established but the previous network is re-activated after picture and/or location has been replied.
  NEW:    A LOGGER is now used wherever possible. So the smscon.log file becomes really interesting.
  NEW:    The &quot;CHECKHOST&quot; URL is now extended by &quot;?LASTMCD=nn&amp;CHECKTIME=minutes&quot; which will allow the URL being a script that may use this information.
  CHANGE: &quot;CHECKHOST&quot; now works more clear as follows: While polling for commands, a command is executed once, if it differs from the last polled command. The last polled command is initialized to &quot;-1&quot; on daemon start. Code &quot;-1&quot; is &quot;restart daemon&quot; and this obviously is what happened on daemon start. Code &quot;17&quot; (COM_RESTART) is deprecated as a CHECKHOST command. Since it is different from &quot;-1&quot; it may restart the daemon repeatedly. Use code &quot;-1&quot; to restart the daemon via CHECKHOST instead. Of course, before a change to code &quot;-1&quot; is recognized by the daemon, you must have give it a different command code. If in doubt use &quot;01&quot; (COM_CHECK) because it gives you feedback that the command has been seen.
  CHANGE: &quot;CHECKTIME&quot; may now be a float to specify fractional parts of a minute: 0.25 is 15 seconds.  
  NEW:    The &quot;CHECKHOST&quot; URL may now have a protocol prefix and it may be different from &quot;http://&quot;. If the URL has no protocol prefix, then &quot;http://&quot; is supplied as default as in former versions (e.g. your config file remains valid in this point as well).
  NEW:    The battery status is logged before a command is about to be executed.
  NEW:    &quot;REMOTELISTENIP&quot;, &quot;REMOTELISTENPORT&quot; and &quot;REMOTE2LOCALPORT&quot;: These settings give you greather flexibility of setting up a tunnel to remote control your phone via a reverse ssh-connection: Use &quot;REMOTELISTENIP&quot; and &quot;REMOTELISTENPORT&quot; to define the tunnel entry maintained by the remote ssh-server (which must be setup to allow setting LISTENIP and PORT this way). &quot;REMOTELISTENPORT&quot; defaults to 8080 and &quot;REMOTELISTENIP&quot; defaults to &quot;localhost&quot; as in former versions. With these defaults you must be logged in at the ssh-server to start a remote control connection of your phone. While setting up &quot;REMOTELISTENIP&quot; you may even control the phone from somewhere else (in which case the ssh-server act as a proxy or relay). On the tunnel exit side, which is on your phone, the &quot;REMOTE2LOCALPORT&quot; is the port number where your phone's ssh-daemon is listening (usually 22).
  CHANGE: The &quot;smscon -devconfig&quot; command now requires a password to show the uncrypted configuration. The MASTERNUMBER is the password.
  NEW:    &quot;RESENDMAXTRY&quot;: This option defines the maximum number of message re-send tries. Applies to SMS and EMAIL as well. (0=no limit) On configuration upgrade this is initialized to 10.
  NEW:    smscon now has a -sendsms option to send SMS immediately. Despite being a nice feature by itself, it makes smscon editor independent from smssend program which requires an extra package.
  NEW:    smscon now allows all options to start with the usual double dash as well.



===Versions 0.8, 0.7, 0.6, 0.5 &amp; 0.4===

Please don't use these anymore. Update to 0.9 or higher.

==Future development ideas==

Feel free to add requests below.

* Add a provision for SMS reception without the UI being notified so that SMSCON control is silent.&lt;br/&gt;INFO: Remote command server (CHECKHOST) already offers silent control.
* &lt;del&gt;Saving all &lt;code&gt;smscon_config&lt;/code&gt; user variables in gconf database. No need for &lt;code&gt;smscon_config&lt;/code&gt; file anymore.&lt;/del&gt;&lt;br/&gt;(WONT IMPLEMENT)
* &lt;del&gt;Add setting for user's country mobile number prefix.&lt;/del&gt;&lt;br/&gt;(WONT IMPLEMENT: There is only one place where to specify the prefix anyway; namely the MASTERNUMBER)
* &lt;del&gt;Add setting for alternative number (where alternative is a number sent a command and does not match the default) and &lt;/del&gt;option to choose where reply should be send, i.e. default number, alternative or both. &lt;del&gt;Default number should not be replaced.&lt;/del&gt;&lt;br/&gt;(PARTLY IMPLEMENTED: Since 0.9.x there is a MASTERNUMBER concept. This is a default number that is never replaced.)
* Add setting to choose the default internet connection (WLAN, GPRS, or ANY).
* When the &quot;Camera&quot; command is sent, the process should wait for keyboard action to capture a picture and send the mail. In that way, there will be more chances to get better face portrait of the &quot;new&quot; user.
* &lt;del&gt;Add the ability to run more than one custom command.&lt;/del&gt;&lt;br/&gt;(IMPLEMENTED SINCE 0.9.18).
* &lt;del&gt;Application must be included in the ROM itself so that it cannot be removed.&lt;/del&gt;&lt;br/&gt;(CAN'T BE IMPLEMENTED)
* &lt;del&gt;Add a password so that no one else but the legitimate user can send an SMS to the phone and see where the phone is.&lt;/del&gt;&lt;br/&gt;(IMPLEMENTED since 0.9.x: The SMS_COMPREFIX/SMS_COMSUFFIX settings supply the desired password functionality) 
* Auto remove the received SMS from conversations.
* Disable PhoneSpeakerSwitch on receipt of 'call' command.
* &lt;del&gt;EmailCON: check an specified email inbox, reading it with the program itself and not the built in default mail prog, at a given frequency, paying attention to commands written in the subject and/or body, accepting all the commands that are accepted via SMS.&lt;/del&gt;&lt;br/&gt;(WONT IMPLEMENT)
* &lt;del&gt;Improve handling of front camera to reduce the odds of crappy or plain blank black pictures being taken.&lt;/del&gt;&lt;br/&gt;(CAN'T BE IMPLEMENTED)
* When in &quot;stolen&quot; mode, replace the front cam &quot;recording&quot; LED pattern with a on-lighting pattern for stealthiness.&lt;br/&gt;(NOTE: The is no 'stolen mode')
* Email, or post online somewhere you choose, any new photography taken with the main camera, geotagging whenever possible, preferably without showing any signs it's happening (if possible with an option to re-dimension the picture before sending).
* There should be an option to send email as text or as multipart html and text.&lt;br/&gt;(WHAT'S THE BENEFIT? TEND TO SAY WON'T IMPLEMENT)
* For encryption of user settings secret code key could be based on device serial number (no more predefined key in script); this enhances security.

==Testers needed==
 
Please test this software, I like to hear if it works for you or not. Please post on forum. I only can test the software with two Vodafone SIM cards from The Netherlands, I want to know if it also works with other cards and networks in other countries...

Watch [http://maemo.org/packages/repository/list/fremantle_extras-testing_free_armel/ Packages in QA testing queue] if SMSCON and/or SMSCON Editor is present there. You're encouraged to test and tell your positive or negative feedback there (thumbs up or down). Thereby following the rules of [http://wiki.maemo.org/Extras-testing#Quality_Assurance_criteria Quality Assurance criteria].

Should you find bugs, here's [[#How_to_report_bugs | how to report bugs]].

==License==
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
by the Free Software Foundation; version 2 only.

==Disclaimer==
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

==Wiki access history==

Some statistics... Updated every now and then.

This page has been accessed 33,640 times. --[[User:yablacky|yablacky]] 00:42, 24 January 2012 (UTC)&lt;br&gt;
This page has been accessed 33,870 times. --[[User:yablacky|yablacky]] 09:04, 27 January 2012 (UTC)&lt;br&gt;
This page has been accessed 34,654 times. --[[User:yablacky|yablacky]] 08:43, 4 February 2012 (UTC)&lt;br&gt;
This page has been accessed 35,120 times. --[[User:yablacky|yablacky]] 07:46, 8 February 2012 (UTC)&lt;br&gt;
This page has been accessed 36,505 times. --[[User:yablacky|yablacky]] 21:33, 22 February 2012 (UTC)&lt;br&gt;
This page has been accessed 37,061 times. --[[User:yablacky|yablacky]] 23:26, 28 February 2012 (UTC)&lt;br&gt;
This page has been accessed 38,145 times. --[[User:yablacky|yablacky]] 08:01, 11 March 2012 (UTC)&lt;br&gt;
This page has been accessed 39,024 times. --[[User:yablacky|yablacky]] 08:51, 18 March 2012 (UTC)&lt;br&gt;
This page has been accessed 41,132 times. --[[User:yablacky|yablacky]] 00:57, 13 April 2012 (UTC)&lt;br&gt;
This page has been accessed 42,375 times. --[[User:yablacky|yablacky]] 15:30, 28 April 2012 (UTC)&lt;br&gt;
This page has been accessed 43,315 times. --[[User:yablacky|yablacky]] 00:14, 13 May 2012 (UTC)&lt;br&gt;
This page has been accessed 43,675 times. --[[User:yablacky|yablacky]] 06:51, 16 May 2012 (UTC) wow, 10,000 :))&lt;br&gt;
This page has been accessed 44,554 times. --[[User:yablacky|yablacky]] 02:45, 23 May 2012 (UTC)&lt;br&gt;
This page has been accessed 44,921 times. --[[User:yablacky|yablacky]] 21:33, 24 May 2012 (UTC)&lt;br&gt;
This page has been accessed 48,809 times. --[[User:yablacky|yablacky]] 21:19, 8 June 2012 (UTC)&lt;br&gt;
This page has been accessed 55,671 times. --[[User:yablacky|yablacky]] 16:21, 13 July 2012 (UTC) 22,000!!&lt;br&gt;
[[Category:Software]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>SMSCON/issues</title>
    <id>5065</id>
    <revision>
      <id>47373</id>
      <timestamp>2012-04-30T13:22:07Z</timestamp>
      <contributor>
        <username>yablacky</username>
        <id>4689</id>
      </contributor>
      <comment>Issue concerning fMMS moved to SMSCON wiki (as known incompatibility)</comment>
      <text xml:space="preserve">This is a simple page to track of known issues and improvements requested:

* ISSUE: The SMSCON package does not have an icon.
   Solution: place an icon (48x48) on the root folder of the files you are building to have the icon generated.

* FEATURE: Add authorisation for SSH with public key.
   more info: http://talk.maemo.org/showpost.php?p=1139269&amp;postcount=874
   Allowing to start (remotely) reverse ssh is great option, but, AFAIK, now it works only with ssh connection with password authentication. could You, please, implement authorisation via public key - preferably, located @ configurable (from SMSCON editor) path?
   The idea is, to create special private/public key part, only for using it with SMSCON. normally, sane usage of public key authentication on mobile device require locking it with password - so, no way to use it remotely, as there is no one on the device to write password - but, special pubkey without password just for SMSCON (thus, creating connection with limited access), would be nice to have.

* FEATURE: Make the &quot;battery info&quot; SMS to send it only when below a threshold level configurable by the user. At the moment, SMSs are sent whenever it drops one bar or the phone is rebooted.

* FEATURE: Remove the &quot;slide keyboard&quot; message or make it sent only when smscon gets activated.

* FEATURE: Take the front camera picture when the keyboard gets slided (to increase the chances of capturing the face of the user).</text>
    </revision>
  </page>
  <page>
    <title>SMSCON Editor</title>
    <id>4431</id>
    <revision>
      <id>46340</id>
      <timestamp>2012-01-13T01:22:19Z</timestamp>
      <contributor>
        <username>saturn</username>
        <id>821</id>
      </contributor>
      <comment>/* Versions */ added newer version changelogs</comment>
      <text xml:space="preserve">The SMSCON Editor is a user interface to the configuration of the [[SMSCON]] application. Further, it can assist in verifying its correct operation and configuration.

It has been created using the PyQT libraries and the functionality is provided by Python.

With its assistance the user is able to edit from a GUI all the options and name  the secret pass-phrases of the commands used for controlling the device by the [[SMSCON]]. All settings are stored at its configuration file, i.e. the &lt;code&gt;/opt/smscon/smscon_config&lt;/code&gt; file. 

In addition, it provides an interface to initialise (i.e. init, start, stop, reset and set/remove from the device's boot sequence) the &lt;code&gt;smscon_daemon&lt;/code&gt;.  

==Installation==

The application can be installed directly by the Application Manager (HAM) and the [[Extras]] repositories. (Check [http://maemo.org/packages/view/smscon-editor/ here] for its status)  

You can also find the latest version in the [https://garage.maemo.org/frs/?group_id=1848&amp;release_id=4063 garage project page].

===Dependencies===

The editor depends to the following packages:
* smscon
* python2.5
* python2.5-qt4-gui
* python2.5-qt4-core 
* python2.5-qt4-maemo5

==Usage==

When it starts it loads the current configuration file so that the options already configured to be shown in the appropriate sections of the GUI.

FIXME: add explanations

===Start up===

A banner will popup showing the correct startup, i.e. the &lt;code&gt;smscon_config&lt;/code&gt; file is correct and that it has been successfully loaded by the editor.

[[Image:SMSCON_Editor_Startup.png|400px]]

(Since version 0.6) a password dialog will open and request the application password 

'''NOTE:''' the default password for the SMSCON Editor is '''12345''' and should not be mistaken with the password that might be requested during the installation of the OpenSSH server (which is a dependency of [[SMSCON]]).

 
[[Image:SMSCON_Editor_AskPassword.png|400px]]

===General configuration tab===

[[Image:SMSCON_Editor_General.png|600px]]

[[Image:SMSCON_Editor_General1.png|300px]]
[[Image:SMSCON_Editor_General2.png|300px]]

==== Select Reply Options ====

Choice can be made on the communication option the replies are send.

[[Image:SMSCON_Editor_disableReply.png|300px]]
[[Image:SMSCON_Editor_selectReply.png|300px]]

====Disable All Replies ====

Choice can be made to disable all replies (this will not apply for the SMS message send when an not authorised SIM card is inserted). 
If no replies to be send is requested, the relevant options will be hidden, i.e. will become non selectable.

[[Image:SMSCON_Editor_disableReply2.png|300px]]
[[Image:SMSCON_Editor_selectReply2.png|300px]]

====Send GPS Coordinates Replies ====
 
Choice can be made where the replies with the GPS coordinates should be send. 
It can be either one of: 
*SMS
*Email 
*Both
 
[[Image:SMSCON_Editor_General_selection.png|400px]]

===Email configuration tab===
 
In order to receive email notifications the appropriate tab must be filled.
Currently only few types are supported. 

An example of gmail account settings are shown below:


[[Image:SMSCON_Editor_Email.png|600px]]

===Reverse SSH configuration tab===

'''NOTE:''' Leaving empty the username and password fields will disable the reverse SSH functionality.
  
[[Image:SMSCON_Editor_SSH.png|600px]]

===Commands renaming first tab===
 
The Commands can be renamed (it is recommended for maximum safety) to ones preferences. 
  
[[Image:SMSCON_Editor_Commands1.png|300px]]
[[Image:SMSCON_Editor_Commands2.png|300px]]
 
====Prefixing Commands====
 
The &quot;Prefix&quot; functionality can be useful in the cases where it is desired all the default names to be prefixed with a common string.

''Note:'' The new names (as all other changes) are stored only after the button &quot;Update Settings&quot; is pressed.
 
[[Image:SMSCON_Editor_Commands_prefix.png|300px]]

===Program Initialisation tab===
 
[[Image:SMSCON_Editor_Init.png|600px]]
[[Image:SMSCON_Editor_Init2.png|300px]]



====Authorise a new SIM card====


In the case a new SIM card needs to be added follow the next steps to add the new IMSI avoiding triggering SMSCON

''(NOTE: SMSCON accepts authorisation multiple SIM cards)'' 

Before changing the SIM card (or with no SIM card installed)
from the Init tab using the available buttons
* &quot;Stop&quot; the SMSCON operation
* &quot;Disable&quot; the SMSCON on device boot

Then you can replace the SIM card, boot the device and open again the SMSCON Editor. From the Init tab using the available buttons:
* &quot;Add IMSI&quot;
* &quot;Enable&quot; the SMSCON on device boot
* &quot;Start&quot; the SMSCON operation
 
The new SIM card is now authorised and SMSCON is active again.
You can switch back to your old card without any intervention since now both IMSIs are authorised. 

If you want to remove the old SIM card then in the above steps and before adding the new IMSI first using the available button: 
* &quot;Remove IMSI&quot;
which will de-authorise all SIM cards.

===Invoke program test commands tab===
 
'''Note:''' 
* After each test is executed the daemon is stopped and previous configuration is restored. 
* Before exiting the application press the &quot;'''''Tests Done'''''&quot; button to start the daemon again.
 
[[Image:SMSCON_Editor_Test.png|300px]]
[[Image:SMSCON_Editor_Test2.png|300px]]

===Drop down menu===
 
[[Image:SMSCON_Editor_Main.png|600px]]
 
===About===

The about window provides also buttons to connect in the wiki pages for both parts of the application and read the latest documentation.

[[Image:SMSCON_About.png|400px]]

===Change Password=== 

Menu for changing the password for opening the Editor application.

[[Image:SMSCON_ChangePassword.png|400px]]

===Popups=== 
There are several popups triggered on actions and updates that inform the user on the current state of the operation.
 
[[Image:SMSCON_UpdatedSettings.png|400px]]
  
FIXME: add more popups and explanations.
 
== Changelog ==

=== 0.9.12-1 '''[http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/smscon-editor/0.9.12-1/ Development]''' '''[http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/smscon-editor/0.9.12-1/ Testing]''' ===
Availability: [[Extras-devel]], [[Extras-testing]]

 FIX: Issues on reading smscon settings of older versions and/or invalid settings.
   * Invalid settings now generate a warning on start but are left unchanged and will show up in the editor fields.
   * If user does not change them, they again will generate error messages when editor pages are closed.
 CHANGE: Restructure and modification of text in the General window (minor).
 FIX: Allow characters in the &quot;Listen IP&quot; field; &quot;*&quot; and &quot;localhost&quot; are valid inputs.	

=== 0.9.11-1 ===	

 NEW: first version of a Log Reader window:
   * will show the last 500 lines.
   * will show the non-anonymized output.
 CHANGE: Main window (minor) restructure.	

===0.9.10-1===

 CHANGE: Several UI modifications (aka beautifications): changed the appearence of the info boxes; set calibri as the global font.
 FIX: Removed actions for when closing the application; normal and test modes are unified in latest SMSCON - a restart might cause loss of a pending action/test.

=== 0.9.9-1 ===
 
 NEW: Added in the test window a stop button for the Reverse SSH Connection.
 NEW: Added more explanation/info boxes.
 FIX: On closing the application the daemon is restarted only if it was running. Otherwise it leaves it off.
 FIX: On the Initialise window the Init button was freezing the application instead of closing.
 CHANGE: Several UI modifications.
 CHANGE: Dependency to SMSCON was raised to 0.9.9-1 or higher.	

=== 0.9.8-1 ===	

 * 0.9.8:
 NEW: Added several info boxes in the UI to assist the user with the settings choices.
 CHANGE: Remove of the &quot;Update Settings&quot; buttons on all windows; settings are updated every time the window is closed.
 CHANGE: The Daemon is restarted every time the application closes.
 CHANGE: The RESENDTIME and CHECKTIME entry fields are replaced with QDoubleSpinBox type.
 CHANGE: Information messages in the banners are not displayed by default.

 * 0.9.7:
 NEW: Added fields REMOTELISTENIP, REMOTELISTENPORT, REMOTE2LOCALPORT in SSH config.
 NEW: Added r/o field SENDERNUMBER in the General config; shows the last number that requested an action.
 NEW: Added field COM_LOG in the Commands config; will reply the smscon.log.
 NEW: Added field COM_CUSTOMLOG in the Commands config; will reply the COM_CUSTOM output.
 NEW: Added several info boxes to assist the user with the different settings choices.
 CHANGE: The settings CHECKTIME, RESENDTIME, GPSTIMEOUT and GPSINTERVAL have been changed from float to int.
 CHANGE: The CHECKTIME, RESENDTIME, RESENDMAXTRY, GPSTIMEOUT, GPSPOLLING, REMOTEPORT, REMOTELISTENPORT and REMOTE2LOCALPORT entry fields are replaced with a QSpinBox type.
 CHANGE: Make more resilient the discovery if the Daemon is running.	

=== 0.9.6-1 ===	

 CHANGE: Rebuild of the UI; removed tabs and added for each a separate window.
 CHANGE: Removed the menu and added its actions as buttons in the main UI.
 CHANGE: Modified postrm script; inclusion of new files.
 NEW: Added Email-From field.

=== 0.9.5-1 ===	

 NEW: Added a startup screen.
 CHANGE: Modified the Init tab to have radio buttons and show the state of the daemon and the boot option.
 CHANGE: Modified the General tab with better names and more condensed structure.
 CHANGE: Modified the About window.
 CHANGE: Removed the credits dialog - superseded by the About window.
 CHANGE: Modified the .desktop file - wrong setting for terminal.
 CHANGE: Update in the postrm; restructure and inclusion of the new files.	

=== 0.9.4-1 ===

 CHANGE: Modification of the main UI to fit better in portrait orientation.

=== 0.9.3-1 === 

 * 0.9.3
 NEW:       Addition of postrm, preinst, prerm scripts for better deployment, upgrade and removal.
 CHANGE:    Modification of the postinst script.
 NEW:       Addition in the UI of a input field for the max number of retries in case of send failure.
 NEW:       Addition in the UI of a input field for the command suffix.
 CHANGE:    Removed the 'Prefix' button - no useful functionality in the new code.
 CHANGE:    Removed the 'Test done' button - code is able to handle this gracefully.
   
 * 0.9.2
 NEW:       Allow editing unsuccessfully/enforcedly loaded config.
 NEW:       Added a symlink in the postinst for starting the UI easier from terminal; in x-term it is enough to type: smscon-editor
   
 * 0.9.1
 CHANGE:    Now uses refactured version of SMSCON
             * Uses code from library (smsconlib.py).
             * Restructured code and added comments.
             * Prepared for easy adding code to edit new features.
 NEW:       Gives password hint on initial use. So SMSCON Editor goes plug and play: No need to read wiki to get it run the 1st time.
 NEW:      Encurages to change the password while it is the initial one.
 NEW:      When editor is closed, it automatically terminates test mode if required.
 NEW:      GUI feedback when the configuration is about to be updated.
 NEW:      Early GUI feedback on Editor startup (shortens time being in doubt if phone recognized my tap).
 NEW:      Sends SMS notification on attempt to start SMSCON Editor with wrong password.
 CHANGE:   No longer makes use of &quot;smssend&quot; application which might not be installed. Now uses SMSCON builtin capability to send SMS.
 CHANGE:   Eliminated and removed 'smsconEditorCopyConfig'; using &quot;smscon -import&quot; now.

=== 0.8-8 === 
* Correction of error with RESENDTIME creation.
* Replaced &quot;-init&quot; command with &quot;-force init&quot;.
* Added check in postinstal script for the config version.

=== 0.8-7 ===

* Modification of the UI to support rotation.
* Enabled rotation on all panels (some parts look ugly but it is functional).	

=== 0.8-6 ===

* Added new logic and options for support of SMSCON 0.8.x versions.
* Added dependency on smscon (&gt;= 0.8.0-1) and suggestion for smssend (&gt;= 0.1.8)
* Added auto-disable of options related to SMS replies if SMSSEND is not selected.
* Added auto-disable of options related to SMS retries if SMSRESEND is not selected.
* Added background send of SMS message on password change (optional; requires smssend package).
* Several UI modifications for usability.
* Modification of the General tab to be a scrollable list.
* Modification of the UI to expand on all the available screen estate.
* Added code in the postinstall to compile the python code.

=== 0.7-4 '''[http://maemo.org/downloads/product/Maemo5/smscon-editor/ Stable]'''===
Availability: [[Extras]]

* Addition of more test options.
* Modification of the Tests tab to be a scrollable list.
* Added a button to restart the daemon when tests complete.
* Password to open the editor will persist updates.
* Removed autocapitalisation of first character in several entry fields.
* Aligned Left all entry fields in the Email and SSH tabs.

'''Known issues'''

* options for disabling SMS replies are not displaying correctly.

=== 0.7-3 ===

* Addition of five new commands and one new option in the UI and code (support for SMSCON ver. &gt; 0.7)
* Addition of scrollable list for the commands editing. All the commands now can be edited from one tab.
* Improvement in the UI to hide SMS reply options when replies are disabled.
* Improvement in the change password window.
* Simplification and cleanup in many parts of the code.
* New About page with auto rotation.
* Correction for stackable windows.

=== 0.6-1 ===
 
* Correction in copying config file for safe editing.
* Added creation of temp config file on first use.

=== 0.6-0 ===
 
* Added password protection for opening the GUI (default password = 12345).
* Added two new dialog windows (to enter and change the password respectively).
* Added new initialisation command to delete the application stored IMSI number.
* Added new initialisation command to delete the configuration stored.
* New sudoers file to include two scripts for handling operations that need root privileges.
* Removed indirect dependency to rootsh package (i.e. use of root).
* Changed password fields in email and ssh settings to be hidden.
* Changed privileges for supporting files to be more restrictive.

=== 0.5-5 ===
 
* Added new code to read and encrypt the sensitive config file parameters (Contribution by Frank Visser).
* Restructure and heavy cleanup of the code.
* Some small main GUI corrections and beautifications.
* Package smscon has been added in the dependencies.
* Changed the sequence for updating the config file to give better information to the user.
* Updated several messages to be more descriptive.

=== 0.4.4-14 ===
 
* Added prefix of a common string to all commands.

=== 0.4.4-12 ===
 
* Added support for new option to send GPS coordinates to both email and sms.
* Increased the size of the username fields - useful with gmail and such.
* Removed smscon from the dependencies (to allow promotion in extras)

=== 0.4.4-11 ===
 
* Added tests for receiving GPS coordinates commands 
* Added tests for phonecall and sms commands 
* Added information and warning boxes 
* Many visibility enhancement changes
* Updated icon to be transparent.
* Added icon for the application manager.
* Made MailFrom = MailAddress as a temp solution until dedicated space is made for this field in the GUI.
* Added the About and Credits dialogs.
* Added smscon in the dependencies.

=== 0.4.4-9 ===
 
* Changes in the postinst script to correct it's execution and privileges 
* Added checks on the configuration file existence and to provide messages to the user when missing or corrupted.

=== 0.4.4-5 ===

'''Warning''': This version (and above) will work only with [[SMSCON]] version equal or higher than 0.4.4

* Addition of a new tickbox to provide &quot;Reply On Keybord Open&quot; settings option.
* Update of code reading the config file to include spaces in commands (provided by digitalvoid).
* Corrected canvas of the main window to fit better the N900 screen size.
* Increased the width of commands line enter.
* Corrected the .desktop file to point in the correct iconset
* Added explicit permissions in the postinst script for the gui elements file.

=== 0.4.3-9 ===

* added block on starting the UI as root (it should only be started as user)
* the editor will quit after calling the init or reset commands (after informing user).
* added slightly modified icons.
* added settings and permissions in sudoers file.
* cleanup of postinst instructions
* cleanup of commented out code.

=== 0.4.3-8 ===

* The Editor will trigger a reload of the new configuration after every update of the config file.
* Temporarily the MailFrom field in the email settings will be filled by the MailAddress (in the future will get its own element in the GUI).
* Renamed buttons in the UI from &lt;code&gt;Create Settings&lt;/code&gt; to &lt;code&gt;Update Settings&lt;/code&gt;.

'''''NOTE''''': For older versions please see the changelogs in the [https://garage.maemo.org/frs/?group_id=1848&amp;release_id=4066 project's garage page]

==Future Development==
* add mailfrom field.
* do not overwrite the password if it is already defined. 
* add more test commands.
* add option to hide the desktop entry.
* protect the installation.

==License==
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
by the Free Software Foundation; version 2 only.

==Disclaimer==
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

[[Category:Software]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>SMS Multiple Contacts</title>
    <id>3159</id>
    <revision>
      <id>38841</id>
      <timestamp>2010-09-21T14:37:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>minor fixes</comment>
      <text xml:space="preserve">Using the [[Nokia N900|N900]] it is possible to send one SMS to multiple contacts.

# Open 'Conversations' and choose ‘New SMS’. Clear any names already listed
# Click the 'To' button to bring up a list of contacts
# Find contacts either by scrolling or by typing the first few letters in the text entry box
# Highlight each contact with a tick to include in list
# If you are using the text entry to find contacts, clear the type box each time to start afresh
# When all contacts are added, click ‘Done’ 
# Your SMS will go to all listed contacts

[[Category:N900]]
[[Category:HowTo]]
[[Category:Cellular]]</text>
    </revision>
  </page>
  <page>
    <title>SPAM please delete</title>
    <id>5044</id>
    <revision>
      <id>47610</id>
      <timestamp>2012-05-25T18:35:08Z</timestamp>
      <contributor>
        <ip>78.150.238.172</ip>
      </contributor>
      <comment>Removing all content from page</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>SSH</title>
    <id>1193</id>
    <revision>
      <id>45906</id>
      <timestamp>2011-12-01T22:08:01Z</timestamp>
      <contributor>
        <username>bad_habit</username>
        <id>4845</id>
      </contributor>
      <comment>/* Server */</comment>
      <text xml:space="preserve">SSH (Secure SHell) is a network protocol that allows you to access a terminal shell remotely. The following use-cases are common:

#Administrating remote computers such as servers by using the device over a secure connection instead of plain-text.
#When performing console operations one may stumble upon limits such as text-input, battery life, raw horsepower, or available software.
#Some applications require a better network connection than device provides. E.g. a colocated 100 Mbit server running 24/7 is usually both faster as well as more reliable than a device on WiFi or 3G.
#Combined with a terminal emulator supporting detaching such as screen or dtach an application remains running after network connection is gone, device is unpowered.
#SSH protocol can be used for remote X11, forwarding, tunneling, [[:wikipedia:Virtual private network|VPN]], port knocking alternative. These are intermediate-advanced topics requiring sufficient background knowledge.

== Flavours to install on your device ==

=== OpenSSH ===

[http://maemo.org/packages/view/openssh/ OpenSSH] is the most common client and server package. It is available in [[Extras]]. You can install either only the client or server, or both depending on your particular use-case. Be aware that the installation may take a while and appear frozen, as SSH keys have to be generated during the install.

Also the server install asks you to set a new password.

=== Dropbear ===

[http://maemo.org/packages/view/dropbear/ Dropbear] is an alternative ssh client/server package which uses less disk/memory.

If you need SFTP server functionality with Dropbear, slight manual installation work is needed. Dropbear doesn't come with an SFTP server, so we're going to use OpenSSH's. You cannot install both packages simultaneously, that's why we're doing it by hand.

Find latest openssh-server armel package (Fremantle for N900) from http://maemo.org/packages/view/openssh-server, then fire up Terminal:

 $ root
 # wget http://repository.maemo.org/pool/maemo5.0/free/o/openssh/openssh-server_&lt;latest-version-here&gt;_armel.deb
 # dpkg-deb --extract openssh-server_&lt;latest-version-here&gt;_armel.deb ./openssh-server
 # cp -av ./openssh-server/usr/lib /usr
 # rm -rf ./openssh-server

== On-device Usage ==

=== Client ===

To allow you to use your tablet/phone to connect to other machines. You can connect to a remote machine from the tablet by running

 ssh user@server ip

which will give you a remote shell on the server machine.

=== Server ===

To allow other machines to connect to your tablet/phone. If you wish to access a shell on the tablet from a remote machine (to edit a local file with a real keyboard, perhaps), then all that you need to do is make sure OpenSSH server is installed on the tablet and

 ssh root@tablet ip

Note that N900's are called &quot;Nokia-N900-41-10&quot; if allocated an IP address via DHCP (see [https://bugs.maemo.org/show_bug.cgi?id=2758 this bug])

Wi-Fi power-management leads to annoying input lags and can be turned off using a long Settings applet dialog only. There is a dirty [http://talk.maemo.org/showthread.php?t=80529 workaround].

=== SCP ===

To copy a file from one host to another over an SSH connection, use [[:wikipedia:Secure_copy#SCP_program|scp]]:

 scp user@server-ip:/home/user/file /home/user/

== PuTTY ==

PuTTY is a client for the SSH and Telnet protocols. It is a popular client for Microsoft Windows, *Nix Operating Systems with ports even existing for Symbian phones, Windows Mobile and even the internet tablet itself. It can be used to connect to a tablet running OpenSSH to get a remote shell.

=== Usage ===

# Load up PuTTY on the machine you want to connect to the tablet from. You should see the window titled &quot;PuTTY Configuration&quot; and the &quot;Session&quot; category selected.
# Ensure &quot;SSH&quot; is selected as the &quot;Connection type:&quot; and enter the tablet's IP address in the &quot;Host Name (or IP address)&quot; section.
# ''If'' you need to change any other settings out of necessity or personal preference for example, go and change settings as required.
# If you want to save these settings for future use to connect to the tablet quickly, add a name in &quot;Saved Sessions&quot; and press Save.
# Press Open and enter the name of the user you wish to connect as when prompted. (&lt;code&gt;root&lt;/code&gt; is commonly used)


PuTTY may be downloaded from http://www.chiark.greenend.org.uk/~sgtatham/putty/.

=== Extra security AND convenience ===

It is fairly easy to generate a secure key to allow key-based authentication to the device. Provided you keep the key secure this is more secure than using a UNIX password (PAM).

First, make sure you can use SSH to log in to your remote *NIX computer's user account.

On the device you need to create a directory in the appropriate users home directory:
 cd
 mkdir .ssh
 chmod 700 .ssh

Back on the remote *NIX computer run the following command:
 ssh-keygen -t rsa
You'll find a file in your home directory called &lt;code&gt;.ssh/id_rsa.pub&lt;/code&gt; and &lt;code&gt;.ssh/id_rsa&lt;/code&gt;. The .pub one is allowed out in public - you give it to other machines. The other one must be kept private.

In the case your private key is stolen (ie. device stolen) the perpetrator has access to your machine without requiring a password. It is therefore recommended to use a password when issuing the &lt;code&gt;ssh-keygen&lt;/code&gt; command. Note this password should ''not'' be the same as your UNIX password.

Then if you use OpenSSH:
 su -c &quot;scp .ssh/id_rsa.pub &lt;user&gt;@&lt;hostname_or_ip_address:/home/user/.ssh/authorized_keys2&quot;
alternatively, use &lt;code&gt;ssh-copy-id&lt;/code&gt; (it makes sure all permissions are correct on the receiving end):
 ssh-copy-id -i .ssh/id_rsa.pub &lt;user&gt;@&lt;hostname_or_ip_address&gt;
For dropbear:
 su -c &quot;scp .ssh/id_rsa.pub &lt;user&gt;@&lt;hostname_or_ip_address:/home/user/.ssh/authorized_keys2&quot;
This will ask for your UNIX password to copy across the key.

Now try:
 ssh &lt;user&gt;@&lt;hostname_or_ip_address&gt;
and you should just get a shell login. If usernames on local and remote machine match you can omit the &lt;code&gt;user@&lt;/code&gt; part.

A more step-by-step stupid-proof howto is here: http://talk.maemo.org/showthread.php?t=41547

=== VPN, tunneling ===

Please see howto [http://www.undeadly.org/cgi?action=article&amp;sid=20090903183235 Tunneling out of corporate networks (Part 1)]. Alternatively, [[reverse ssh]] may be useful.

== WinSCP ==

WinSCP is an open source client (SCP, SFTP &amp; FTP) for Windows. Its main function is the secure file transfer between a local and a remote computer. It uses Secure Shell (SSH) and supports, in addition to Secure FTP, also legacy SCP protocol. 

WinSCP simplifies file transfer between your desktop and N900 by providing a graphical frontend (similar to many FTP progams). Login via SSH is performed in exactly the same way as PuTTY.

WinSCP may be downloaded from http://sourceforge.net/projects/winscp/.

[[Category:Users]]
[[Category:Connectivity]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>SSH</title>
    <id>1193</id>
    <revision>
      <id>45906</id>
      <timestamp>2011-12-01T22:08:01Z</timestamp>
      <contributor>
        <username>bad_habit</username>
        <id>4845</id>
      </contributor>
      <comment>/* Server */</comment>
      <text xml:space="preserve">SSH (Secure SHell) is a network protocol that allows you to access a terminal shell remotely. The following use-cases are common:

#Administrating remote computers such as servers by using the device over a secure connection instead of plain-text.
#When performing console operations one may stumble upon limits such as text-input, battery life, raw horsepower, or available software.
#Some applications require a better network connection than device provides. E.g. a colocated 100 Mbit server running 24/7 is usually both faster as well as more reliable than a device on WiFi or 3G.
#Combined with a terminal emulator supporting detaching such as screen or dtach an application remains running after network connection is gone, device is unpowered.
#SSH protocol can be used for remote X11, forwarding, tunneling, [[:wikipedia:Virtual private network|VPN]], port knocking alternative. These are intermediate-advanced topics requiring sufficient background knowledge.

== Flavours to install on your device ==

=== OpenSSH ===

[http://maemo.org/packages/view/openssh/ OpenSSH] is the most common client and server package. It is available in [[Extras]]. You can install either only the client or server, or both depending on your particular use-case. Be aware that the installation may take a while and appear frozen, as SSH keys have to be generated during the install.

Also the server install asks you to set a new password.

=== Dropbear ===

[http://maemo.org/packages/view/dropbear/ Dropbear] is an alternative ssh client/server package which uses less disk/memory.

If you need SFTP server functionality with Dropbear, slight manual installation work is needed. Dropbear doesn't come with an SFTP server, so we're going to use OpenSSH's. You cannot install both packages simultaneously, that's why we're doing it by hand.

Find latest openssh-server armel package (Fremantle for N900) from http://maemo.org/packages/view/openssh-server, then fire up Terminal:

 $ root
 # wget http://repository.maemo.org/pool/maemo5.0/free/o/openssh/openssh-server_&lt;latest-version-here&gt;_armel.deb
 # dpkg-deb --extract openssh-server_&lt;latest-version-here&gt;_armel.deb ./openssh-server
 # cp -av ./openssh-server/usr/lib /usr
 # rm -rf ./openssh-server

== On-device Usage ==

=== Client ===

To allow you to use your tablet/phone to connect to other machines. You can connect to a remote machine from the tablet by running

 ssh user@server ip

which will give you a remote shell on the server machine.

=== Server ===

To allow other machines to connect to your tablet/phone. If you wish to access a shell on the tablet from a remote machine (to edit a local file with a real keyboard, perhaps), then all that you need to do is make sure OpenSSH server is installed on the tablet and

 ssh root@tablet ip

Note that N900's are called &quot;Nokia-N900-41-10&quot; if allocated an IP address via DHCP (see [https://bugs.maemo.org/show_bug.cgi?id=2758 this bug])

Wi-Fi power-management leads to annoying input lags and can be turned off using a long Settings applet dialog only. There is a dirty [http://talk.maemo.org/showthread.php?t=80529 workaround].

=== SCP ===

To copy a file from one host to another over an SSH connection, use [[:wikipedia:Secure_copy#SCP_program|scp]]:

 scp user@server-ip:/home/user/file /home/user/

== PuTTY ==

PuTTY is a client for the SSH and Telnet protocols. It is a popular client for Microsoft Windows, *Nix Operating Systems with ports even existing for Symbian phones, Windows Mobile and even the internet tablet itself. It can be used to connect to a tablet running OpenSSH to get a remote shell.

=== Usage ===

# Load up PuTTY on the machine you want to connect to the tablet from. You should see the window titled &quot;PuTTY Configuration&quot; and the &quot;Session&quot; category selected.
# Ensure &quot;SSH&quot; is selected as the &quot;Connection type:&quot; and enter the tablet's IP address in the &quot;Host Name (or IP address)&quot; section.
# ''If'' you need to change any other settings out of necessity or personal preference for example, go and change settings as required.
# If you want to save these settings for future use to connect to the tablet quickly, add a name in &quot;Saved Sessions&quot; and press Save.
# Press Open and enter the name of the user you wish to connect as when prompted. (&lt;code&gt;root&lt;/code&gt; is commonly used)


PuTTY may be downloaded from http://www.chiark.greenend.org.uk/~sgtatham/putty/.

=== Extra security AND convenience ===

It is fairly easy to generate a secure key to allow key-based authentication to the device. Provided you keep the key secure this is more secure than using a UNIX password (PAM).

First, make sure you can use SSH to log in to your remote *NIX computer's user account.

On the device you need to create a directory in the appropriate users home directory:
 cd
 mkdir .ssh
 chmod 700 .ssh

Back on the remote *NIX computer run the following command:
 ssh-keygen -t rsa
You'll find a file in your home directory called &lt;code&gt;.ssh/id_rsa.pub&lt;/code&gt; and &lt;code&gt;.ssh/id_rsa&lt;/code&gt;. The .pub one is allowed out in public - you give it to other machines. The other one must be kept private.

In the case your private key is stolen (ie. device stolen) the perpetrator has access to your machine without requiring a password. It is therefore recommended to use a password when issuing the &lt;code&gt;ssh-keygen&lt;/code&gt; command. Note this password should ''not'' be the same as your UNIX password.

Then if you use OpenSSH:
 su -c &quot;scp .ssh/id_rsa.pub &lt;user&gt;@&lt;hostname_or_ip_address:/home/user/.ssh/authorized_keys2&quot;
alternatively, use &lt;code&gt;ssh-copy-id&lt;/code&gt; (it makes sure all permissions are correct on the receiving end):
 ssh-copy-id -i .ssh/id_rsa.pub &lt;user&gt;@&lt;hostname_or_ip_address&gt;
For dropbear:
 su -c &quot;scp .ssh/id_rsa.pub &lt;user&gt;@&lt;hostname_or_ip_address:/home/user/.ssh/authorized_keys2&quot;
This will ask for your UNIX password to copy across the key.

Now try:
 ssh &lt;user&gt;@&lt;hostname_or_ip_address&gt;
and you should just get a shell login. If usernames on local and remote machine match you can omit the &lt;code&gt;user@&lt;/code&gt; part.

A more step-by-step stupid-proof howto is here: http://talk.maemo.org/showthread.php?t=41547

=== VPN, tunneling ===

Please see howto [http://www.undeadly.org/cgi?action=article&amp;sid=20090903183235 Tunneling out of corporate networks (Part 1)]. Alternatively, [[reverse ssh]] may be useful.

== WinSCP ==

WinSCP is an open source client (SCP, SFTP &amp; FTP) for Windows. Its main function is the secure file transfer between a local and a remote computer. It uses Secure Shell (SSH) and supports, in addition to Secure FTP, also legacy SCP protocol. 

WinSCP simplifies file transfer between your desktop and N900 by providing a graphical frontend (similar to many FTP progams). Login via SSH is performed in exactly the same way as PuTTY.

WinSCP may be downloaded from http://sourceforge.net/projects/winscp/.

[[Category:Users]]
[[Category:Connectivity]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>SSH</title>
    <id>1193</id>
    <revision>
      <id>45906</id>
      <timestamp>2011-12-01T22:08:01Z</timestamp>
      <contributor>
        <username>bad_habit</username>
        <id>4845</id>
      </contributor>
      <comment>/* Server */</comment>
      <text xml:space="preserve">SSH (Secure SHell) is a network protocol that allows you to access a terminal shell remotely. The following use-cases are common:

#Administrating remote computers such as servers by using the device over a secure connection instead of plain-text.
#When performing console operations one may stumble upon limits such as text-input, battery life, raw horsepower, or available software.
#Some applications require a better network connection than device provides. E.g. a colocated 100 Mbit server running 24/7 is usually both faster as well as more reliable than a device on WiFi or 3G.
#Combined with a terminal emulator supporting detaching such as screen or dtach an application remains running after network connection is gone, device is unpowered.
#SSH protocol can be used for remote X11, forwarding, tunneling, [[:wikipedia:Virtual private network|VPN]], port knocking alternative. These are intermediate-advanced topics requiring sufficient background knowledge.

== Flavours to install on your device ==

=== OpenSSH ===

[http://maemo.org/packages/view/openssh/ OpenSSH] is the most common client and server package. It is available in [[Extras]]. You can install either only the client or server, or both depending on your particular use-case. Be aware that the installation may take a while and appear frozen, as SSH keys have to be generated during the install.

Also the server install asks you to set a new password.

=== Dropbear ===

[http://maemo.org/packages/view/dropbear/ Dropbear] is an alternative ssh client/server package which uses less disk/memory.

If you need SFTP server functionality with Dropbear, slight manual installation work is needed. Dropbear doesn't come with an SFTP server, so we're going to use OpenSSH's. You cannot install both packages simultaneously, that's why we're doing it by hand.

Find latest openssh-server armel package (Fremantle for N900) from http://maemo.org/packages/view/openssh-server, then fire up Terminal:

 $ root
 # wget http://repository.maemo.org/pool/maemo5.0/free/o/openssh/openssh-server_&lt;latest-version-here&gt;_armel.deb
 # dpkg-deb --extract openssh-server_&lt;latest-version-here&gt;_armel.deb ./openssh-server
 # cp -av ./openssh-server/usr/lib /usr
 # rm -rf ./openssh-server

== On-device Usage ==

=== Client ===

To allow you to use your tablet/phone to connect to other machines. You can connect to a remote machine from the tablet by running

 ssh user@server ip

which will give you a remote shell on the server machine.

=== Server ===

To allow other machines to connect to your tablet/phone. If you wish to access a shell on the tablet from a remote machine (to edit a local file with a real keyboard, perhaps), then all that you need to do is make sure OpenSSH server is installed on the tablet and

 ssh root@tablet ip

Note that N900's are called &quot;Nokia-N900-41-10&quot; if allocated an IP address via DHCP (see [https://bugs.maemo.org/show_bug.cgi?id=2758 this bug])

Wi-Fi power-management leads to annoying input lags and can be turned off using a long Settings applet dialog only. There is a dirty [http://talk.maemo.org/showthread.php?t=80529 workaround].

=== SCP ===

To copy a file from one host to another over an SSH connection, use [[:wikipedia:Secure_copy#SCP_program|scp]]:

 scp user@server-ip:/home/user/file /home/user/

== PuTTY ==

PuTTY is a client for the SSH and Telnet protocols. It is a popular client for Microsoft Windows, *Nix Operating Systems with ports even existing for Symbian phones, Windows Mobile and even the internet tablet itself. It can be used to connect to a tablet running OpenSSH to get a remote shell.

=== Usage ===

# Load up PuTTY on the machine you want to connect to the tablet from. You should see the window titled &quot;PuTTY Configuration&quot; and the &quot;Session&quot; category selected.
# Ensure &quot;SSH&quot; is selected as the &quot;Connection type:&quot; and enter the tablet's IP address in the &quot;Host Name (or IP address)&quot; section.
# ''If'' you need to change any other settings out of necessity or personal preference for example, go and change settings as required.
# If you want to save these settings for future use to connect to the tablet quickly, add a name in &quot;Saved Sessions&quot; and press Save.
# Press Open and enter the name of the user you wish to connect as when prompted. (&lt;code&gt;root&lt;/code&gt; is commonly used)


PuTTY may be downloaded from http://www.chiark.greenend.org.uk/~sgtatham/putty/.

=== Extra security AND convenience ===

It is fairly easy to generate a secure key to allow key-based authentication to the device. Provided you keep the key secure this is more secure than using a UNIX password (PAM).

First, make sure you can use SSH to log in to your remote *NIX computer's user account.

On the device you need to create a directory in the appropriate users home directory:
 cd
 mkdir .ssh
 chmod 700 .ssh

Back on the remote *NIX computer run the following command:
 ssh-keygen -t rsa
You'll find a file in your home directory called &lt;code&gt;.ssh/id_rsa.pub&lt;/code&gt; and &lt;code&gt;.ssh/id_rsa&lt;/code&gt;. The .pub one is allowed out in public - you give it to other machines. The other one must be kept private.

In the case your private key is stolen (ie. device stolen) the perpetrator has access to your machine without requiring a password. It is therefore recommended to use a password when issuing the &lt;code&gt;ssh-keygen&lt;/code&gt; command. Note this password should ''not'' be the same as your UNIX password.

Then if you use OpenSSH:
 su -c &quot;scp .ssh/id_rsa.pub &lt;user&gt;@&lt;hostname_or_ip_address:/home/user/.ssh/authorized_keys2&quot;
alternatively, use &lt;code&gt;ssh-copy-id&lt;/code&gt; (it makes sure all permissions are correct on the receiving end):
 ssh-copy-id -i .ssh/id_rsa.pub &lt;user&gt;@&lt;hostname_or_ip_address&gt;
For dropbear:
 su -c &quot;scp .ssh/id_rsa.pub &lt;user&gt;@&lt;hostname_or_ip_address:/home/user/.ssh/authorized_keys2&quot;
This will ask for your UNIX password to copy across the key.

Now try:
 ssh &lt;user&gt;@&lt;hostname_or_ip_address&gt;
and you should just get a shell login. If usernames on local and remote machine match you can omit the &lt;code&gt;user@&lt;/code&gt; part.

A more step-by-step stupid-proof howto is here: http://talk.maemo.org/showthread.php?t=41547

=== VPN, tunneling ===

Please see howto [http://www.undeadly.org/cgi?action=article&amp;sid=20090903183235 Tunneling out of corporate networks (Part 1)]. Alternatively, [[reverse ssh]] may be useful.

== WinSCP ==

WinSCP is an open source client (SCP, SFTP &amp; FTP) for Windows. Its main function is the secure file transfer between a local and a remote computer. It uses Secure Shell (SSH) and supports, in addition to Secure FTP, also legacy SCP protocol. 

WinSCP simplifies file transfer between your desktop and N900 by providing a graphical frontend (similar to many FTP progams). Login via SSH is performed in exactly the same way as PuTTY.

WinSCP may be downloaded from http://sourceforge.net/projects/winscp/.

[[Category:Users]]
[[Category:Connectivity]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>SSU</title>
    <id>1108</id>
    <revision>
      <id>6608</id>
      <timestamp>2008-08-15T01:02:39Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>Redirecting to [[Seamless Software Update]]</comment>
      <text xml:space="preserve">#REDIRECT [[Seamless Software Update]]</text>
    </revision>
  </page>
  <page>
    <title>Saera</title>
    <id>5242</id>
    <revision>
      <id>49547</id>
      <timestamp>2012-09-09T14:37:44Z</timestamp>
      <contributor>
        <ip>129.21.103.181</ip>
      </contributor>
      <comment>/* 0.1 (Initial Releases) */</comment>
      <text xml:space="preserve">=Introduction=

Saera is a Siri clone for Fremantle

Saera uses Pocketsphinx for voice recognition, eSpeak to talk and PyGTK for the GUI.


===More===

More information on the package can be found ...

[http://talk.maemo.org/showthread.php?t=84753 talk.maemo.org Saera]

[http://maemo.org/packages/view/saera/ Saera Package Page]

==Installation==

The latest versions can be found in the Devel repository and can be installed using the N900 Application Manager (HAM). 

==Operation==

To install, you will need these packages:

*pocketsphinx-utils
*pocketsphinx-hmm-en-hub4wsj
*pocketsphinx-lm-en-hub4
*gstreamer0.10-pocketsphinx
*python-gst0.10
*python-gtk2
*python-gobject
*python-cairo
*espeak

==Current Features==

Currently Saera can:-

*Tell you the time, both where you are and in a few major cities (more will be added)
*Greet you
*Verify she's working, if you say &quot;testing&quot;
*Take a picture, if the lens cover is open and the camera app isn't
*Take a picture of you with the front camera
*Tell you the meaning of life, the universe and everything
*Tell you random facts about the N900
*Call a phone number (buggy)
*Tell you where you are if you're lost
*search for food near you
*Read you new emails as they come in
*Set alarms (note that I haven't got them to boot the device if it's off yet)
*Play and pause music (although you can't play a song by name yet - that will come.)


==Bugs==

This maintainer is currently using [http://talk.maemo.org/showthread.php?t=84753 this talk.maemo.org thread] for reporting bugs.

===FAQ===
Q: Is this server-based, like Siri or Google Now?

A: No, the N900 has enough processing power to run this locally. This means that Saera will still work without an internet connection, and that you don't have to worry about the security of the server.

Q: I installed Saera, and now I have no rootfs space left! Help!

A: Saera is optified, but it depends on Pocketsphinx, which isn't. Optified Pocketsphinx packages will be uploaded eventually; in the mean time, there's a script to fix that here: [http://talk.maemo.org/showpost.php?p=1219503&amp;postcount=42].

Q: Will this run on the N9?

A: No. The N9 would require a significant rewrite to port it all to QT, and it's rather hard to do that without a device to test on.

==License/Disclaimer==

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 only. 

This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

See the GNU General Public License for more details. 

==Credits==
Created by taixzo

=Versions/Change Log=

==0.1 (Initial Releases)==
'''0.1-6  ''(Current Devel)'''''
* Fixed missing gsearch.py.
* Added Chuck Norris facts.
* Added ability to use Google Search cards.

'''0.1-5'''
* Fixed crash when IMAP folder not present.
* Added experimental POP support.

'''0.1-4'''
* Added ability to schedule alarms.

'''0.1-3'''
* Added ability to read back IMAP emails as they arrive.

'''0.1-2'''
* Fixed food search
* Added ability to search for food in several categories.

'''0.1-1 '''
* Added food search.

'''0.1-0 '''
* Initial Releases.

=Wiki Update Info=
:''Last Updated - sixwheeledbeast - 07 Sep 2012 21:11 UTC''</text>
    </revision>
  </page>
  <page>
    <title>Sasan201014</title>
    <id>4886</id>
    <revision>
      <id>43799</id>
      <timestamp>2011-06-03T11:52:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Sasan201014]] moved to [[User:Sasan201014]]: move to user namespace</comment>
      <text xml:space="preserve">#REDIRECT [[User:Sasan201014]]</text>
    </revision>
  </page>
  <page>
    <title>Scratchbox Maemo Repositories</title>
    <id>1154</id>
    <revision>
      <id>6786</id>
      <timestamp>2008-08-23T23:38:30Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Scratchbox Maemo Repositories]] moved to [[Scratchbox repositories]]: Correcting capitalization</comment>
      <text xml:space="preserve">#REDIRECT [[Scratchbox repositories]]</text>
    </revision>
  </page>
  <page>
    <title>Scratchbox repositories</title>
    <id>1098</id>
    <revision>
      <id>29446</id>
      <timestamp>2010-02-12T16:36:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Fremantle */ wikify</comment>
      <text xml:space="preserve">== Why? ==

Since distributions seem to use different formats for the
&quot;/etc/apt/sources.list&quot; file, we decided to create this page for the benefit
of developers who don't want to reinstall Scratchbox every few weeks... ;)

== How? ==

In '''Scratchbox''', do:

 $ vi &quot;/etc/apt/sources.list&quot;
 &lt;put new entries&gt;
 $ apt-get update
 $ apt-get dist-upgrade

== Fremantle ==

{{main|Documentation/Maemo_5_Final_SDK_Installation}}

 deb http://repository.maemo.org/extras''-devel'' fremantle free non-free
 deb-src http://repository.maemo.org/extras''-devel'' fremantle free

== Diablo ==

 deb http://repository.maemo.org/ diablo/sdk free non-free
 deb-src http://repository.maemo.org/ diablo/sdk free
 deb http://repository.maemo.org/ diablo/tools free non-free
 deb-src http://repository.maemo.org/ diablo/tools free

=== Porting Debian Packages ===
If you are interested in porting applications from Debian then you may want to add:
 deb-src http://www.mirrorservice.org/sites/ftp.debian.org/debian/ etch main contrib
to /etc/apt/sources.list.d/debian-source.list
This allows '''apt-get source &lt;package&gt;''' to pull in source that should be reasonably compatible with Diablo.
See [[Packaging#Porting_an_existing_Debian_package|Porting Debian packages]] for more details.

== Chinook ==

 deb http://repository.maemo.org/ chinook free non-free
 deb-src http://repository.maemo.org/ chinook free

=== Warning ===

Note that for at least one user, the current chinook repository doesn't work
anymore:

 (Reading database ... 12047 files and directories currently installed.)
 Preparing to replace passwd 1:4.0.3-31sarge5.osso7 (using .../passwd_1%3a4.0.3-31sarge5.osso7_i386.deb) ...
 Unpacking replacement passwd ...
 dpkg: error processing /var/cache/apt/archives/passwd_1%3a4.0.3-31sarge5.osso7_i386.deb (--unpack):
  trying to overwrite `/usr/sbin/add-shell', which is also in package debianutils
 Errors were encountered while processing: /var/cache/apt/archives/passwd_1%3a4.0.3-31sarge5.osso7_i386.deb
 E: Sub-process /scratchbox/devkits/debian-sarge/bin/dpkg returned an error code (1)

When that happens, you can't dist-upgrade either. So do this BEFORE editing &quot;/etc/apt/sources.list&quot; (or reedit it for &quot;Chinook&quot;):

 $ apt-get install passwd
 $ dpkg -i --force-all /var/cache/apt/archives/passwd_1%3a4.0.3-31sarge5.osso7_i386.deb
 $ apt-get install --reinstall debianutils
 $ dpkg -i --force-all /var/cache/apt/archives/debianutils&lt;tab

Or if that doesn't work either, you can, AS A LAST RESORT, try editing &quot;/etc/apt/sources.list&quot; for &quot;Diablo&quot; (see above), and then:

 $ apt-get install passwd

This will update &quot;passwd&quot; to Diablo's &quot;passwd&quot;. If you expect anything to work after that, did I tell you already that this advice comes with no warranty? ;)

No really, in the worst case your Scratchbox will be broken after that and you'll have to reinstall Scratchbox.

If it actually did work, don't forget to dist-update as soon as possible afterwards so that the remainder of the system is updated too (and hopefully doesn't choke on the already-updated &quot;passwd&quot;):

 $ apt-get dist-upgrade

In any case, should the following happen after you updated the distribution one way or another:

 Preparing to replace passwd 1:4.0.3-31sarge5.osso7 (using .../passwd_1%3a4.0.3-31sarge5.osso8_i386.deb) ...
 Unpacking replacement passwd ...
 dpkg: error processing /var/cache/apt/archives/passwd_1%3a4.0.3-31sarge5.osso8_i386.deb (--unpack): trying to overwrite `/usr/sbin/remove-shell', which is also in package debianutils

Then do this:

 $ fakeroot dpkg -i /var/cache/apt/archives/passwd_1%3a4.0.3-31sarge5.osso8_i386.deb 

So it finally shuts up and you have involuntarily updated to Diablo. ;-)

[[Category:Development]]
[[Category:Scratchbox]]</text>
    </revision>
  </page>
  <page>
    <title>Screen protector</title>
    <id>1268</id>
    <revision>
      <id>40451</id>
      <timestamp>2010-12-03T13:14:05Z</timestamp>
      <contributor>
        <ip>88.162.203.91</ip>
      </contributor>
      <comment>/* Applying */</comment>
      <text xml:space="preserve">'''Screen protectors''' are a good way to protector your device's touchscreen from damage. As the device's screen is susceptible to scratch damage, especially with extended stylus use, use of a screen protector is highly recommended. Some protectors provide additional benefits, like glare reduction. There are many different brands available that all have different pros and cons; this article outlines some of them.

== Nokia shipping protector ==

Nokia ships the devices with a simple shipping protector that isn't intended to be used as a real screen protector, but can temporarily perform that role until a real protector can be purchased and applied. You may have trouble removing the sticker attached to the factory shipping protector, but it can be removed either with a bit of patience or with a naptha-based lighter fluid (like Ronsonol).

As it isn't designed to be used as an actual screen protector, the shipping protector will show wear very rapidly, and should be replaced as soon as possible. It will, however, do an adequate job at preventing screen scratches.

== Boxwave ==

Boxwave offers two protector styles for the devices, the Anti-glare and the Crystal. Both protectors provide plenty of protection, but they differ in glare reduction and in texture. The Anti-glare protector has a matte surface that greatly reduces the amount of glare (especially outdoors), while the Crystal protector has a shiny surface more similar to the device's bare touchscreen. The Anti-glare also has a more paper-like texture than the Crystal (which is slick and smooth like the device's screen). The cost of glare reduction is an ever-so-slight reduction in the protector translucency (honestly not noticeable, but there all the same—Boxwave says 95% translucency).

=== Applying ===
Get your work area cleaned up and set up ahead of time. Do it in a low-dust room, with a sink nearby. Place the device face-down on a table after you clean its screen and only turn it over when you're ready to apply the protector. Lots of water makes things easier, so don't be too worried about getting water on the screen just try not to get too much into the edges. The application procedure goes like this:

# Wash your hands with a good strong soap. Lava works particularly well here.
# Remove the device's faceplate, if it has one (only applicable to the [[Nokia N800|N800]]).
# Unpack the protector, setting the hard plastic bubble remover nearby.
# Clean the screen, making sure to remove all smudges, spots, and dust (either use the included lint-free cloth, or one of your own).
# Set the device face-down on a flat surface (you may wish to construct a little stand so the screen won't touch the table).
# Grab the protector and figure out which side goes on the screen, then peal off the protective plastic on the sticky side.
# Flip the device over, center up one edge of the protector and apply it from that edge to the other side.
# Now, if you've gotten lucky you'll have it nicely centered up, dust free and with very few bubbles. If so, then go ahead and move on to step 14, if not, then it's time to start the next of many attempts to get it right.
# If you've got dust, then go ahead and remove the protector and set it aside somewhere safe (sticky side up, it doesn't really matter if you get more dust on it right now).
# Remove all of the dust off of the device's screen and flip it back face-down again.
# Now, head on over to the sink and wash all the dust (and, probably, fingerprints) off of the protector.
# Most of the water you can get off with gentle shaking (just be certain not to crease the protector!) and more will come off with a little bit of blowing (a keyboard-duster might actually be useful here. Try not to spit on it if you use your mouth).
# Now go back to step 7 and through to this point until you get it on right!
# Now that you've gotten it on, centered up and dust-free, it's time to use the little plastic bubble-pusher to get those bubbles out. Start from the center and work the bubbles out towards the edges.
# You'll need to use a decent amount of force, but don't overdo it, as if you push too hard, the touch-layer may become attached to the LCD-layer.
# After all bubbles are out, use a towel to clean up the excess water and reattach the faceplate if applicable.
# Once you've got all the dust out, you're done. Congratulations!

NB : I have tried a  very little bit of lightly soapy water on a clean screen (A game console not to be named here). It is then very easy to push the air and dirt left over with a plastic card. It works wonder in a humid environment (hot bathroom). You'll want to wait until it dries off or the screen would likelly go astray.

== DealExtreme ==

DealExtreme offers screen protectors that may or may be not as durable or effective as the Boxwave protector, and are not specifically cut to size for the device (so may have to be cut down or fitted under the bezel), but if you don't want to spend $15 plus shipping, they're a good option since they can be had for around $1.50 (shipping included). Some of these protectors will wear much more quickly and will need to be replaced frequently, though.

However [http://www.dealextreme.com/details.dx/sku.3800 sku 3800], after six months of use, is as good as new.

== ScreenGuardz ==
This company makes very good quality screen protectors for virtually every device, including the [http://www.screenguardz.com/ScreenGuardz_for_Nokia_N800_p/nl-s800-0107.htm N800] and [http://www.screenguardz.com/ScreenGuardz_for_Nokia_N810_p/nl-sn81-1207.htm N810]. They come 15 to a pack, and each protector lasts for a good long time (dependent on use, of course), so one pack may well last a year or three.

== Screen protectors for Sony PSP ==

A cheap alternative to screen protectors made especially for the N810 are protectors for the PlayStation Portable from Sony. On Ebay they are very cheap and the material is a nice quality multi-layer film. The width of them fits perfectly, and only the length has to cut down with scissors, which is easy to do.

== Protectors on Ebay ==
Many have had good luck with protectors from ebay.  Many can be had for less than $1.
[[Category:Users]]

[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>Sdlmame</title>
    <id>3813</id>
    <revision>
      <id>31875</id>
      <timestamp>2010-04-02T15:10:15Z</timestamp>
      <contributor>
        <username>flandry</username>
        <id>1253</id>
      </contributor>
      <comment>[[Sdlmame]] moved to [[Mame]]: Project merged upstream</comment>
      <text xml:space="preserve">#REDIRECT [[Mame]]</text>
    </revision>
  </page>
  <page>
    <title>Seamless Software Update</title>
    <id>1107</id>
    <revision>
      <id>40993</id>
      <timestamp>2011-01-05T07:18:04Z</timestamp>
      <contributor>
        <ip>80.187.97.121</ip>
      </contributor>
      <comment>/* initfs and kernel */ spelling</comment>
      <text xml:space="preserve">[[:wikipedia:Maemo_(operating_system)#SSU|SSU]] is Nokia's new method for upgrading the tablets. Rather than requiring a [[updating the firmware|reflash]] as with previous updates, SSU updates are pushed over-the-air and installed onto your live system. When Nokia pushes an update over SSU, you will see an update notification and be given the option to install the update—just like with your computer.

== Installing ==

Once a new update is pushed out, you'll see a flashing notification in your statusbar. Open the Application Manager and install the update. If you don't see the notification, then you can simply open Application Manager, tap &quot;Check for updates&quot;, make sure the catalogs are up to date (hit the little rotating circle in the toolbar if it doesn't refresh automatically), and install the update from there. If you still can't see the update, see [[Seamless Software Update#osso-software-version|osso-software-version]].

== initfs and kernel ==

Generally speaking, SSU updates should be relatively pain-free, but there are a few issues to watch out for. If you have an aftermarket kernel or initfs installed (like the rotation support kernel or [[Booting_from_a_flash_card#Install_bootmenu|fanoush's bootmenu]]) and a kernel or initfs upgrade is pushed, they will be overwritten and you'll need to wait for your kernel or the bootmenu to be updated to reinstall them.

== osso-software-version ==

If the update doesn't show up for you at all, you may have accidentally (or intentionally) uninstalled osso-software-version-rx*4, which is required to update. You can get it back by simply running an &lt;code&gt;apt-get install osso-software-version-rx34&lt;/code&gt;, for the [[Nokia N800|N800]], and an &lt;code&gt;apt-get install osso-software-version-rx44&lt;/code&gt;, for the [[Nokia N810|N810]]. Then updating your repository list in Application manager.

== Locking ==

The &lt;code&gt;osso-software-version-rx*&lt;/code&gt; meta packages have exact version dependencies to most of the packages in a given release, and re-installing the meta package will install the specified versions of the dependent packages back to your device.

The reason for this is that Nokia tests the upgrades from these specific package versions to the specific versions listed in next version of the meta package.  Due to the resource limitations of the device (mainly disk space and the disastrous effect of using all of it) there are more things that can go wrong in a system upgrade than on a normal Linux Desktop.  Forcing the versions makes sure that the update resource needs are known (unless user has manually removed some of the files installed by those dependent packages, see related issues).

== Unlocked ==

The strict dependencies in the &lt;code&gt;osso-software-version-rx*&lt;/code&gt; meta packages can be problematic if you want to install a version that is newer than the version Nokia ships. Thankfully Nokia provides &quot;unlocked&quot; versions of the system meta packkages which do not have strict dependencies. Simply install the appropriate &lt;code&gt;osso-software-version-rx*-unlocked&lt;/code&gt; for your tablet and you can install newer packages without breaking SSU.

If you want to ''remove'' OS packages, &lt;code&gt;osso-software-version-rx*-unlocked&lt;/code&gt; will not help, you'll need to remove &lt;code&gt;osso-software-version-rx*&lt;/code&gt; and grab further system updates via &lt;code&gt;apt-get&lt;/code&gt;.

== SSU History ==

=== Fremantle ===

* [[Maemo 5/PR1.1|PR1.1]]
* [[Maemo 5/PR1.1|PR1.1.1]]
* [[Maemo 5/PR1.2|PR1.2]]
* [[Maemo 5/PR1.3|PR1.3]]

=== Diablo ===

* '''Maemo 4.1.1''' (4.2008.30-2): Released on 8/11/2008, 30-2 mostly fixes some Modest and MicroB bugs, as well as a number of minor connection framework bugs. Modest's battery life related bugs were fixed in this update. There is currently no FIASCO image available for this release.
* '''Maemo 4.1.2''' (4.2008.36-5): Released on 9/29/2008, 36-5 includes fixes to Modest and MicroB, as well as a number of minor connection framework bugs. The Flash plugin's incorrect version string is fixed in this version.

== Related issues ==
* [https://bugs.maemo.org/show_bug.cgi?id=3602 osso-software-version-rx*4 dependencies prevent removing many unnecessary packages]
* [https://bugs.maemo.org/show_bug.cgi?id=3747 4.2008.36-5 is listed under 4.1.1]
* [[Task:SSU update repository procedure]] proposes some solutions to address these issues.

[[Category:Users]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Send SMSes to multiple contacts</title>
    <id>3348</id>
    <revision>
      <id>26135</id>
      <timestamp>2010-01-08T15:37:42Z</timestamp>
      <contributor>
        <username>cas07</username>
        <id>1601</id>
      </contributor>
      <comment>[[Send SMSes to multiple contacts]] moved to [[SMS Multiple Contacts]]</comment>
      <text xml:space="preserve">#REDIRECT [[SMS Multiple Contacts]]</text>
    </revision>
  </page>
  <page>
    <title>Send sms to multiple contacts using n900</title>
    <id>3201</id>
    <revision>
      <id>27661</id>
      <timestamp>2010-01-28T14:09:31Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[SMS Multiple Contacts]]</text>
    </revision>
  </page>
  <page>
    <title>Serverstatuswidget</title>
    <id>5241</id>
    <revision>
      <id>49485</id>
      <timestamp>2012-09-07T19:41:01Z</timestamp>
      <contributor>
        <username>briggers</username>
        <id>5420</id>
      </contributor>
      <comment>Added link to talk thread</comment>
      <text xml:space="preserve">Serverstatuswidget is a desktop widget for Maemo. It allows you to monitor the status of servers by pinging them periodically. 

Download and installation details are available [http://talk.maemo.org/showthread.php?t=86645 here]

==Screenshot==
[[Image:serverstatuswidget.jpg|480px|border|center|alt=Screenshot of the serverstatuswidget|Server Status Widget]]

==Help==

The usage of the widget is intuitive. You can add, remove or edit servers through the settings dialog of the widget. 

The servers are pinged at periodic intervals based on your settings. The status of the server is indicated by the icons next to the labels. 

The status can be one of four states:

* '''Server Online''' (Indicated by a green icon if you're using the default icon set, otherwise the icon that indicates &quot;online presence&quot; in your currently installed icon set)
* '''Server Offline''' (Indicated by a white icon with a cross inside it if you're using the default icon set, otherwise the icon that indicates &quot;offline presence&quot; in your currently installed icon set)
* '''Updating Status''': Displayed when the server is being pinged (Indicated by the sync icon if you're using the default icon set, otherwise the icon that indicates &quot;syncing&quot; in your currently installed icon set
* '''Error Status''': Displayed when some error occurs (Indicated by a blue icon if you're using the default icon set, otherwise the icon that indicates &quot;Connection error&quot; in your currently installed icon set)

'''You can click the button corresponding to a server to update the status of the server immediately instead of waiting for the next scheduled update.'''

==Authors==

Ashish Bhate [http://maemo.org/profile/view/briggers/ briggers]

==Thanks==

*[http://maemo.org/profile/view/twaelti/ Tom Waelti] for the [[recaller]] and [[sleeper]] plugins. I learned pymaemo, pygtk, and how to write desktop plugins by looking at the source code of these widgets
*[http://maemo.org/profile/view/khertan/ Benoît Hervier (Khertan)] for [http://khertan.net/pypackager Pypackager].
*The developers, users and contributors at [http://maemo.org maemo.org]

==License==
The source code is released under the GPLv2 license

==RoadMap==
*Alert sound or vibrate when a server goes offline
*Improve the look of the widget (Transparency etc.)
*Alternate methods to check the status of a server (fetching index.html)
*Improve threading to increase update times

==Feature Requests==
Use this space to add feature wishes: 
* Request (Name)

==Bugs==
Use this space to report bugs
* Bug (Name)</text>
    </revision>
  </page>
  <page>
    <title>Services</title>
    <id>1343</id>
    <revision>
      <id>42246</id>
      <timestamp>2011-02-28T14:09:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly, make service function column unsortable, sprinkle &lt;code&gt;</comment>
      <text xml:space="preserve">{{Out of date}}

'''Services''' are programs that run in background, invisible to the user, and do some useful work such as maintaining Internet connections, checking for email, playing sounds, etc. Sometimes, services are called ''daemons''. To see the list of services currently running on your tablet, you can use the following:

* ''ps'', ''top'', or ''htop'' command line utilities, invoked from [[terminal|XTerm]].
* ''CPU Load'' desktop applet (found in [[Extras]]).
* ''Services'' configuration applet (found in [[Extras]]).

Just like any other program, a service can be killed with the ''kill'' command or the appropriate button in the ''CPU Load'' applet. To disable a service (so that it does not start up after the next reboot), you can use the ''Services'' configuration applet. Be aware though that killing or disabling some services may seriously damage your system. Avoid it unless you are ''absolutely'' sure you know what you are doing.

== Nokia services ==

{| class=&quot;wikitable sortable&quot;
! Service Name !! class=&quot;unsortable&quot; | Service Function
|- 
| &lt;code&gt;af-base-apps&lt;/code&gt;
| Application framework. Starts some base applications like the Connectivity dialogs, the default Media Player's backend. It also starts the programs that finish the restoration process if you chose to restore a backup.
|- 
| &lt;code&gt;af-services&lt;/code&gt;
| Application framework. This sets up important kernel parameters that make your tablet more stable.
|- 
| &lt;code&gt;af-startup&lt;/code&gt;
| Application framework.
|- 
| &lt;code&gt;alarmd&lt;/code&gt;
| Alarm dispatcher responsible for waking the tablet from &quot;sleep&quot; state and running other applications at predefined times.
|- 
| &lt;code&gt;bluez-utils&lt;/code&gt;
| Bluetooth tools.
|- 
| &lt;code&gt;btcond&lt;/code&gt;
| Bluetooth connectivity.
|- 
| &lt;code&gt;dbus&lt;/code&gt;
| ''D-Bus'' message bus daemon, used for passing commands and data between applications. This is the main way for applications to talk to each other.
|- 
| &lt;code&gt;dnsmasq&lt;/code&gt;
| DNS proxy and DHCP server.
|- 
| &lt;code&gt;dsp-init&lt;/code&gt;
| DSP loader.
|- 
| &lt;code&gt;esd&lt;/code&gt;
| ''Enlightenment Sound Daemon'' responsible for mixing sound from applications, adjusting its volume, and playing it through speakers or headphones.
|- 
| &lt;code&gt;gpsdriver&lt;/code&gt;
| GPS driver that reads and processes position data from GPS receivers, making it available for applications.
|- 
| &lt;code&gt;hal&lt;/code&gt;
| Hardware Abstraction Layer
|- 
| &lt;code&gt;hildon-application-manager&lt;/code&gt;
| Periodically checks software repositories (such as [[Extras]]) for updates and informs you of any updates to your installed software.
|- 
| &lt;code&gt;hildon-desktop&lt;/code&gt;
| Hildon desktop.
|- 
| &lt;code&gt;hulda&lt;/code&gt;
| Kernel events proxy.
|- 
| &lt;code&gt;icd2&lt;/code&gt;
| Internet Connectivity Daemon
|- 
| &lt;code&gt;ke-recv&lt;/code&gt;
| Kernel events proxy.
|- 
| &lt;code&gt;libgpsbt&lt;/code&gt;
| Lets tablet connect to Bluetooth GPS devices.
|- 
| &lt;code&gt;maemo-launcher&lt;/code&gt;
| Keeps some important system libraries (''GTK+'', ''Pango'') in memory so that other applications can start up quicker.
|- 
| &lt;code&gt;mce&lt;/code&gt;
| Machine control entity.
|- 
| &lt;code&gt;mediaplayer-daemon&lt;/code&gt;
| Mediaplayer engine.
|- 
| &lt;code&gt;metalayer-crawler0&lt;/code&gt;
| Metalayer crawler.
|- 
| &lt;code&gt;multimediad&lt;/code&gt;
| Multimedia daemon.
|- 
| &lt;code&gt;obexsrv&lt;/code&gt;
| OBEX server responsible for exchanging files with Bluetooth devices, such as smartphones or computers.
|- 
| &lt;code&gt;osso-ipv6&lt;/code&gt;
| ???
|- 
| &lt;code&gt;osso-systemui&lt;/code&gt;
| System user interface.
|- 
| &lt;code&gt;osso-systemui-early&lt;/code&gt;
| System user interface.
|- 
| &lt;code&gt;rich-core&lt;/code&gt;
| When an application crashes, this service is responsible for saving information of how it crashed, for later analysis by authors. This service can be installed from ???.
|- 
| &lt;code&gt;suplistenerd&lt;/code&gt;
| Installed when AGPS for [[Nokia N810|N810]] is installed.
|- 
| &lt;code&gt;tablet-browser-daemon&lt;/code&gt;
| Loads and renders web pages that you view in web browser. Always running so that you can start browsing quickly.
|- 
| &lt;code&gt;wide-dhcpv6-client&lt;/code&gt;
| ???
|- 
| &lt;code&gt;wlancond&lt;/code&gt;
| WLAN connectivity.
|- 
| &lt;code&gt;x-server&lt;/code&gt;
| X11 server. Just like any other decent Unix or Linux device, your tablet runs one.
|}

== 3rd-party services ==

{| class=&quot;wikitable sortable&quot;
! Service Name !! class=&quot;unsortable&quot; | Service Function
|-
| &lt;code&gt;avahi-daemon&lt;/code&gt;
| [[:wikipedia:Avahi_(software):Avahi]]
|- 
| &lt;code&gt;avahi-dnsconfd&lt;/code&gt;
| [[:wikipedia:Avahi_(software):Avahi]]
|-
| &lt;code&gt;brightness-permission&lt;/code&gt;
| Installed with advanced-backlight for [[Nokia 770|770]] owners only.
|- 
| &lt;code&gt;carmand&lt;/code&gt;
| Carman background process.
|-
| &lt;code&gt;python-launcher&lt;/code&gt;
| Accelerates startup of Python applications, such as [http://maemo.org/packages/view/canola2/ Canola], by keeping some parts of Python in memory.
|- 
| &lt;code&gt;ssh&lt;/code&gt;
| ''Secure Shell Server'', usually installed from [[Extras]]. It lets you get a secure shell on the tablet remotely.
|}

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Setting up NFS</title>
    <id>46</id>
    <revision>
      <id>41767</id>
      <timestamp>2011-02-10T11:34:29Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">== In Diablo==
This chapter shows an example of how to set up your [[Nokia N800|N800]]/[[Nokia N810|N810]] as an NFS client.

=== Pre-requisites ===
You must be able to [[root access|access the device as root]].

=== Installing ===

During this process we're going to need to install a few extra packages and load some kernel modules. Once we're done, your device will be ready to do NFS mounts.

The following packages will be needed; kernel-diablo-modules-extra, nfs-common and portmap.

*kernel-diablo-modules-extra contains the necessary kernel modules 
*nfs-common contains other tools. It contains files that are both common to NFS servers &amp; clients.
*portmap contains the protocol port number conversion server that is needed for NFS. 

&lt;ol&gt;
&lt;li&gt;\
Get access to a shell (either a remote shell or an X Terminal session on the tablet itself)
&lt;/li&gt;
&lt;li&gt;
Become root via your preferred method.
&lt;/li&gt;
&lt;li&gt;
Add the required repository to &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;
&lt;pre&gt;
echo &quot;deb http://repository.maemo.org/ diablo/tools free&quot; &gt;&gt; /etc/apt/sources.list
apt-get update
&lt;/pre&gt;
(the &quot;&lt;code&gt;&gt;&gt;&lt;/code&gt;&quot; is important!)
&lt;/li&gt;
&lt;li&gt;
Run:
&lt;pre&gt;
apt-get install kernel-diablo-modules-extra portmap nfs-common
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
For the tablet to recognize a filesystem that is not compiled in the kernel, you need to load modules for tablet to recognize NFS servers. The modules must be loaded in this order. Run the next two commands exactly as they are written:
&lt;pre&gt;
cd /lib/modules/2.6.21-omap1/extra/
insmod sunrpc.ko ; insmod lockd.ko ; insmod nfs.ko
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Now the NFS share needs to be mounted. We need to make a directory for the share to be mounted in.
&lt;pre&gt;
mkdir -p /media/&lt;any name&gt;'
mount -t nfs &lt;ip.of.the.server&gt;:&lt;/share/on/the/server&gt; /media/&lt;name of directory created&gt;
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

Of course, substitute anything in the &lt;&gt; as needed. And don't include the &lt; and the &gt; when running commands with them in it.

That should do it! For the mount to work, your NFS host needs to be configured correctly and that's out of the scope of this wiki page. Just be wary of the user id mappings etc. if you want to use the mountpoint as a non-root user.

== In OS2008 ==
This chapter shows an example of how to set up your N800/N810 as an NFS client.

These instructions are valid for [[:Category:OS2008|IT OS2008]], which was released in November 2007. It is also known as ''chinook'' or 2.2007.51-3.

=== Pre-requisites ===
You must be able to [[root access|access the device as root]].

=== Installing ===

During this process we're going to need to install a few extra packages and load some kernel modules. Once we're done, your device will be ready to do NFS mounts.

The following packages will be needed; rx-34-kernel-modules-extra, nfs-common and portmap.

*rx-34-kernel-modules-extra contains the necessary kernel modules 
*nfs-common contains other tools. It contains files that are both common to NFS servers &amp; clients.
*portmap contains the protocol port number conversion server that is needed for NFS. 

&lt;ol&gt;
&lt;li&gt;
Get access to a shell (either a remote shell or an X Terminal session on the tablet itself)
&lt;/li&gt;
&lt;li&gt;
Become root via your preferred method.
&lt;/li&gt;
&lt;li&gt;
Add the required repository to the apt sources (&lt;code&gt;/etc/apt/sources.list&lt;/code&gt;).
&lt;pre&gt;
echo &quot;deb http://repository.maemo.org/ chinook free&quot; &gt; /etc/apt/sources.list.d/sdk-repo.list
apt-get update
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Run:
&lt;pre&gt;
apt-get install rx-34-kernel-modules-extra portmap nfs-common
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
For the tablet to recognize a filesystem that is not compiled in the kernel, you need to load modules for tablet to recognize NFS servers. The modules must be loaded in this order. Run the next two commands exactly as they are written.
&lt;pre&gt;
cd /lib/modules/2.6.21-omap1/extra/
insmod sunrpc.ko ; insmod lockd.ko ; insmod nfs.ko
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Now the NFS share needs to be mounted. We need to make a directory for the share to be mounted in.
&lt;pre&gt;
mkdir -p /media/&lt;any name&gt;
mount -t nfs &lt;ip.of.the.server&gt;:&lt;/share/on/the/server&gt; /media/&lt;name of directory created&gt;
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

Of course, substitute anything in the &lt;&gt; as needed. And don't include the &lt; and the &gt; when running commands with them in it.

That should do it! For the mount to work, your NFS host needs to be configured correctly and that's out of the scope of this wiki page. Just be wary of the user id mappings etc. if you want to use the mountpoint as a non-root user.

[[Category:Connectivity]]
[[Category:N8x0]]
[[Category:OS2008]]
[[Category:Power users]]
[[Category:Diablo]]</text>
    </revision>
  </page>
  <page>
    <title>ShedSkin</title>
    <id>4575</id>
    <revision>
      <id>40303</id>
      <timestamp>2010-11-25T09:12:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify, categorize</comment>
      <text xml:space="preserve">Shed Skin is an experimental compiler, that can translate pure, but implicitly statically typed Python programs into optimized C++. It can generate stand-alone programs or extension modules that can be imported and used in larger Python programs. 

For more information, check out http://code.google.com/p/shedskin/

On a simple test I could see a speed improvement of up to 18 times. The great thing is that you can more or less write normal Python and then let ShedSkin convert it to C code, so it can get compiled by gcc.

To see an application which uses Shedskin, have a look in SleepAnalyser. It has one file &lt;code&gt;mylib.py&lt;/code&gt; which gets normal imported into the Python application. How ever if there is a file &lt;code&gt;mylib.so&lt;/code&gt; in the same folder, Python will use that one.

== Example ==
As an example how to use ShedSkin for [[Open development/Maemo roadmap/Fremantle|Maemo 5]], have a look on sleepanalyser &gt; 1.7.

== How to start == 
You might have built your Python package with one of the nice tools like PyPacker. But as you now have to edit the debian files, you will have to use Scratchbox.

Install scratchbox as described in [[Documentation/Maemo 5 Final SDK Installation|the documentation]].
Then install Shedskin with &quot;apt-get install shedskin&quot; from the [[extras-devel]] repository.

There is also a good tutorial of how to use it: http://shedskin.googlecode.com/files/shedskin-tutorial-0.6.html .

== Building the package ==
=== Preparations ===
If you already have the .tar.gz file, then you already have the structure with the files. Just unpack the .tar.gz file into a folder. If you have to pack it for the first time, MohammadAG has a good page about how to generate the needed files: [[User:Mohammad7410/Packaging]]
 
Now in the debian folder, you will have to modify some files:

'''control:'''

Behind the line &quot;&lt;code&gt;Build-Depends:&lt;/code&gt;&quot; you have to add &quot;&lt;code&gt;shedskin&lt;/code&gt;&quot;. This is needed, so the autobuilder knows he has to install it.

You might also have to add some normal dependencies like &quot;&lt;code&gt;libgc1c2&lt;/code&gt;&quot; and &quot;&lt;code&gt;libpcre&lt;/code&gt;&quot; behind the line with &quot;&lt;code&gt;Depends:&lt;/code&gt;&quot;.


'''rules:'''

Under the line with &quot;install: build&quot; should be many lines with &quot;&lt;code&gt;mkdir&lt;/code&gt;&quot; and &quot;&lt;code&gt;cp -a&lt;/code&gt;&quot;. After the last one of them, add those two lines:
 cd debian/PATH_TO_mylib.py/; /usr/bin/shedskin -e mylib.py
 cd debian/PATH_TO_mylib.py/opt/SleepAnalyser/lib/; make

Where mylib.py is the python file you wnat to get compiled into a C module.
&lt;code&gt;PATH_TO_mylib.py&lt;/code&gt; is usually the same folder as the other python files are in, or maybe you put them into a subfolder &lt;code&gt;/lib&lt;/code&gt;.

=== Packing ===
Now you are ready to pack and upload the package. In Scratchbox, type the command
 dpkg-buildpackage -rfakeroot -sa -S
This will create the files you need to upload. Alternatively, you can also use the command
 dpkg-buildpackage -sa -rfakeroot -kEMAILADRESS
This will also compile it and generate a deb file, which you then can test on the phone. I suggest to do it that way. If Scratchbox can build the package, the the autobuilder will most likely be able to do it as well. But before you can do that, you have to set the compile rtarget to &lt;code&gt;armel&lt;/code&gt;. Do that with the command
  sb-conf se FREMANTLE_ARMEL
inside Scratchbox.

== Check for missing dependencies ==
The generated module is dependent on some other modules. When you have the module on your phone or in Scratchbox, you can see the dependencies with &lt;code&gt;ldd&lt;/code&gt;:

&lt;pre&gt;
ldd
      libgc.so.1 =&gt; not found
      libpcre.so.3 =&gt; /usr/lib/libpcre.so.3 (0x40053000)
      libpthread.so.0 =&gt; /lib/libpthread.so.0 (0x40079000)
      libdl.so.2 =&gt; /lib/libdl.so.2 (0x4009a000)
      libutil.so.1 =&gt; /lib/libutil.so.1 (0x400a5000)
      libpython2.5.so.1.0 =&gt; /usr/lib/libpython2.5.so.1.0 (0x400b0000)
      libstdc++.so.6 =&gt; /usr/lib/libstdc++.so.6 (0x401d4000)
      libm.so.6 =&gt; /lib/libm.so.6 (0x402b7000)
      libgcc_s.so.1 =&gt; /lib/libgcc_s.so.1 (0x4032d000)
      libc.so.6 =&gt; /lib/libc.so.6 (0x40340000)
      /lib/ld-linux.so.3 (0x2a000000)
&lt;/pre&gt;

There you also will see if a dependency is missing and you have to add it to your package. In the above example you can see that &lt;code&gt;libgc&lt;/code&gt; is missing, so you should add it as a dependency to your application.

[[Category:Development]]
[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>Shepherd</title>
    <id>3968</id>
    <revision>
      <id>45581</id>
      <timestamp>2011-10-18T13:04:49Z</timestamp>
      <contributor>
        <username>jgbreezer</username>
        <id>2120</id>
      </contributor>
      <minor/>
      <comment>/* Predicates */ spelling typo fix</comment>
      <text xml:space="preserve">This page contains all the input for a tool called &quot;Shepherd&quot;. Please feel free to add suggestions an content. [http://talk.maemo.org/showthread.php?t=31524 There is a thread] containing much more information which could be added here.

==Google Summer of Code Project==
Shepherd was chosen as one of the 10 [[GSoC 2010/Projects|Maemo-related project's for GSoC]]. More information are available on the [http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/maemo/t127230761170 GSoC-page].

==Technical background==
* Small, daemon style Qt based C++ core
* Separate GUI interface for configuration
* Modular, plugin based approach for triggers and actions
* Plugins can be written in C++, Python or external scripts

==Requirements==
* Qt4.6

===Predicates===
* location (position, allowed radius, accuracy, speed)
* time of day / day of week (cron style or whatever)
* time interval
* internet connection (cell connection vs wifi--including ESSID)
* Connected Bluetooth devices
* battery level

And of course a mix out of more than one predicate. There should be a kind of grammar which allows to use operators like AND/OR/NOT. There also should be a possibility to priorize the rules.

===Actions===
* run an app (determine if it's running--if not, start it up)
* close an app
* set profile (ringer, volume, etc)
* toggle FM transmitter
* run general script, which can totally open up opportunities
* Start or Stop Instant Messaging services, Skype or VoIP-Services
* Switch status of IM Accounts
* Get emails for specific accounts
* Trigger sharing services (e.g. Upload new photos to flickr)
* Do software upgrades in background
* Syncronize (e.g. Syncevolution)

==User interface==
* Feel free to define a graphical user interface for functions defined above

[[Category:Software]][[Category:N900]][[Category:Google Summer of Code]]</text>
    </revision>
  </page>
  <page>
    <title>Showing album art in the Media Player</title>
    <id>3227</id>
    <revision>
      <id>46491</id>
      <timestamp>2012-01-22T10:38:27Z</timestamp>
      <contributor>
        <username>etam</username>
        <id>4960</id>
      </contributor>
      <comment>/* Separate File */ simplified removing .mediaartlocal command</comment>
      <text xml:space="preserve">There are 2 methods for associating album art with songs in the built-in media player.

== Embedded ==

The first is to embed the art inside the song itself (this is actually one of the options described in the second method below). According to [http://talk.maemo.org/showpost.php?p=439343&amp;postcount=30 this discussion], the art needs to be tagged as &quot;cover.front&quot; in order to appear properly.

== Separate File ==

The second way is provide the art in a separate file in the same directory as the songs. For this to work, there are some rules that need to be followed when naming the art (see [http://live.gnome.org/MediaArtStorageSpec#Heuristics_for_finding_media_art Gnome's Media Art Storage Spec] for the details).

The simplest option is to name the cover art &quot;cover.&lt;ext&gt;&quot;, where &quot;&lt;ext&gt;&quot; must be replaced with the proper file extension.

One downside to this method is that the art also shows up in the image viewer (aka the &quot;Photos&quot; app).

Note that if the music has already been indexed by the [[Nokia N900|N900's]] tracker, further work will be required. It is easiest to move the directory containing the songs and art somewhere that the tracker does not index (&quot;tmp&quot; in the file browser works), then move it back. If this does not work, the tracker database may also need to be reset before the directory is moved back.

It may be necessary to remove any .mediaartlocal directories; you can do this safely from terminal:

find /home/MyDocs -name .mediaartlocal -delete

The tracker database can be reset by opening up [[terminal|X Terminal]] and typing &quot;tracker-processes -r&quot;, then hitting enter.

[[Category:HowTo]]
[[Category:Beginners]]
[[Category:Media]]</text>
    </revision>
  </page>
  <page>
    <title>Shutter</title>
    <id>3741</id>
    <revision>
      <id>50309</id>
      <timestamp>2012-10-21T18:12:09Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Shutter]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">[http://maemo.org/packages/view/shutter/ Shutter] is a widget for the Maemo desktop which allows your [[Nokia N900|N900]] to send a single IR command. It is configured to work as an IR remote control for either Canon, Nikon or Olympus DSLR cameras.

==Help==

If the widget doesn't show up after adding it, please reboot your phone. You can check the functionality by looking at the IR port ofthe N900 through another digicam (while pressing the shutter widget). 

==Screenshot==

A widget on the desktop that looks just like the package icon.

==Authors==

* Main author: [http://maemo.org/profile/view/twaelti/ Tom Waelti]
* Thanks to the guys in the IRreco poject for porting LIRC!

==ChangeLog==

The [http://maemo.org/packages/view/shutter/ current changelog] is available through the package viewer.
* 1.1.0 Fixed Canon cams. Added support for Pentax cams. Larger icon. Restarts LIRC daemon upon install.
* 1.0.0: Added support for Canon and Olympus cams.
* 0.1.0: Initial Release for Nikon cameras

==Roadmap==

* Support even more cameras (can someone test the lirc database remotes of Sony to find the code for these cams? Or even better: buuild a lirc file for the RMT-DSLR1 (EDIT: Sony RMT-DSLR1 codes can be found [http://forums.dpreview.com/forums/readflat.asp?forum=1037&amp;message=36172362&amp;changemode=1 here] - Kieron)

==Wishlist==

Use this space to add possible feature wishes:
* compatible with Canon 500D (wingsinwinds) and 550D (ec73)
* Zoom support (Ghost_MH)
* Shutter timer for bulb mode (inextenza)
* Shutter invoke with hardware button on N900, e.g. normal camera shutter button in the phone (reddy)
* &lt;del&gt;Pentax DSLR support (what do you need for that?) (inextenza)&lt;/del&gt;
* &lt;del&gt;Here is a patch to get Pentax DSLR support: http://albin.abo.fi/user/jfors/misc/shutter-1.0.0-2-pentax.diff (it also includes an ugly hack so you don't have to reboot to use Shutter). --[[User:access|access]] 09:48, 21 March 2010 (UTC)&lt;/del&gt;
* &lt;del&gt;Pentax DSLR support (you can use K20D model from QTIrreco) (heiwid)
&lt;/del&gt; 
* Pentax cams available in 1.1.0 ([[User:twaelti|tom2]] 21:22, 19 April 2010 (UTC))
* Brilliant!! works on Canon 5D MkII, 350D - needs timer for time-lapse fotography
* Need a settings for sending IR command in certain time interval, for cameras that do not have the feature built in. Will be great for time-lapse
* Compatible with Canon EOS 7D.

==Bugs==

Use this paragraph to report possible bugs:
* &lt;del&gt;Press the widget, get an error, &quot;Shutter: IRSend failed: 1&quot;. Not very informative. (UPDATE: Reboot fixed it) --[[User:qole|qole]] 06:59, 11 March 2010 (UTC)&lt;/del&gt; Improved message and reboot issue hopefully fixed anyway in 1.1.0 (twaelti)
* &lt;del&gt;[1.0.0-2] In desktop edit mode, config and remove buttons stack onto each other and the widget, making it difficult to manage with a thumb. --juise- 11 March 2010&lt;/del&gt; Larger icon in 1.1.0 (twaelti)
* &lt;del&gt;[1.0.0-2] Tried with Canon EOS 450D (Rebel XSi), does not work for me. &quot;Official&quot; remote (Canon RC-5) works. --juise- 11 March 2010&lt;/del&gt;
* &lt;del&gt;It does not work on my Canon EOS 500D. Camera has been selected to shot with remote control. Software has been set for camera canon. After pressing the widjet, message says: &quot;Shutter: IRSend took 0 seconds (Canon RC1....)&quot;. Nothing happens in the camera. --Davide- 11 March 2010 &lt;/del&gt;
* Canon support improved in 1.1.0, please test and report back (twaelti). Works for my EOS450D, thanks! However it seems to work only within 1m/3ft from the camera. Is there any way to boost the power as a Chinese remote from eBay works still at maybe 5m? (jarim 10-May-2010)
* &lt;del&gt;[1.0.0-2] Cannot add widget to desktop (tried before and after reboot). Nothing happens. Other widgets can be added fine. N900 is using French language. --NicMic- 19 March 2010&lt;/del&gt; 1.1.0 works on 1.2 --NicMic- &lt;del&gt;Same here, only my phone is using german language. --Jerome- 25 March 2010&lt;/del&gt; 1.1.0 works for me --Jerome-
* &lt;del&gt;Doesn't work any more. Complains about a need to reboot. When restarting lircd, lircd complains missing files, that are obviously shutter related. (one for each supported cam model.) Reinstall didn't bring the files back. Where can I download them from? Thanks.&lt;/del&gt; I downloaded sources, located the file I was missing, saved it into a folder and edited /etc/lircd.conf to include the file. (you can find the filenames there.) To restart lircd, I gave the command &quot;/etc/init.d/lircd restart&quot;, after 'sudo gainroot'. -Simppa-

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>SimpleGL Example</title>
    <id>3513</id>
    <revision>
      <id>28185</id>
      <timestamp>2010-02-02T17:12:05Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[SimpleGL Example]] moved to [[SimpleGL example]]</comment>
      <text xml:space="preserve">#REDIRECT [[SimpleGL example]]</text>
    </revision>
  </page>
  <page>
    <title>SimpleGL example</title>
    <id>3211</id>
    <revision>
      <id>40054</id>
      <timestamp>2010-11-10T21:39:10Z</timestamp>
      <contributor>
        <ip>87.245.83.90</ip>
      </contributor>
      <comment>Source: http://talk.maemo.org/showthread.php?p=750107</comment>
      <text xml:space="preserve">This is a simple program demonstrating how to use [[OpenGL-ES#OpenGL_variants|OpenGL ES 2.0]]. It will output this animated spiral, which can be moved around on the screen:

[[Image:Egl-example_output.png]]

&lt;source lang=&quot;cpp&quot;&gt;
/* Created by exoticorn ( http://talk.maemo.org/showthread.php?t=37356 )
 * edited and commented by André Bergner [endboss]
 *
 * libraries needed:   libx11-dev, libgles2-dev
 *
 * compile with:   g++  -lX11 -lEGL -lGLESv2  egl-example.cpp
 */

#include  &lt;iostream&gt;
using namespace std;

#include  &lt;cmath&gt;
#include  &lt;sys/time.h&gt;

#include  &lt;X11/Xlib.h&gt;
#include  &lt;X11/Xatom.h&gt;
#include  &lt;X11/Xutil.h&gt;

#include  &lt;GLES2/gl2.h&gt;
#include  &lt;EGL/egl.h&gt;



const char vertex_src [] =
&quot;                                        \
   attribute vec4        position;       \
   varying mediump vec2  pos;            \
   uniform vec4          offset;         \
                                         \
   void main()                           \
   {                                     \
      gl_Position = position + offset;   \
      pos = position.xy;                 \
   }                                     \
&quot;;


const char fragment_src [] =
&quot;                                                      \
   varying mediump vec2    pos;                        \
   uniform mediump float   phase;                      \
                                                       \
   void  main()                                        \
   {                                                   \
      gl_FragColor  =  vec4( 1., 0.9, 0.7, 1.0 ) *     \
        cos( 30.*sqrt(pos.x*pos.x + 1.5*pos.y*pos.y)   \
             + atan(pos.y,pos.x) - phase );            \
   }                                                   \
&quot;;
//  some more formulas to play with...
//      cos( 20.*(pos.x*pos.x + pos.y*pos.y) - phase );
//      cos( 20.*sqrt(pos.x*pos.x + pos.y*pos.y) + atan(pos.y,pos.x) - phase );
//      cos( 30.*sqrt(pos.x*pos.x + 1.5*pos.y*pos.y - 1.8*pos.x*pos.y*pos.y)
//            + atan(pos.y,pos.x) - phase );


void
print_shader_info_log (
   GLuint  shader      // handle to the shader
)
{
   GLint  length;

   glGetShaderiv ( shader , GL_INFO_LOG_LENGTH , &amp;length );

   if ( length ) {
      char* buffer  =  new char [ length ];
      glGetShaderInfoLog ( shader , length , NULL , buffer );
      cout &lt;&lt; &quot;shader info: &quot; &lt;&lt;  buffer &lt;&lt; flush;
      delete [] buffer;

      GLint success;
      glGetShaderiv( shader, GL_COMPILE_STATUS, &amp;success );
      if ( success != GL_TRUE )   exit ( 1 );
   }
}


GLuint
load_shader (
   const char  *shader_source,
   GLenum       type
)
{
   GLuint  shader = glCreateShader( type );

   glShaderSource  ( shader , 1 , &amp;shader_source , NULL );
   glCompileShader ( shader );

   print_shader_info_log ( shader );

   return shader;
}


Display    *x_display;
Window      win;
EGLDisplay  egl_display;
EGLContext  egl_context;

GLfloat
   norm_x    =  0.0,
   norm_y    =  0.0,
   offset_x  =  0.0,
   offset_y  =  0.0,
   p1_pos_x  =  0.0,
   p1_pos_y  =  0.0;

GLint
   phase_loc,
   offset_loc,
   position_loc;


EGLSurface  egl_surface;
bool        update_pos = false;

const float vertexArray[] = {
   0.0,  0.5,  0.0,
  -0.5,  0.0,  0.0,
   0.0, -0.5,  0.0,
   0.5,  0.0,  0.0,
   0.0,  0.5,  0.0 
};


void  render()
{
   static float  phase = 0;
   static int    donesetup = 0;

   static XWindowAttributes gwa;

   //// draw

   if ( !donesetup ) {
      XWindowAttributes  gwa;
      XGetWindowAttributes ( x_display , win , &amp;gwa );
      glViewport ( 0 , 0 , gwa.width , gwa.height );
      glClearColor ( 0.08 , 0.06 , 0.07 , 1.);    // background color
      donesetup = 1;
   }
   glClear ( GL_COLOR_BUFFER_BIT );

   glUniform1f ( phase_loc , phase );  // write the value of phase to the shaders phase
   phase  =  fmodf ( phase + 0.5f , 2.f * 3.141f );    // and update the local variable

   if ( update_pos ) {  // if the position of the texture has changed due to user action
      GLfloat old_offset_x  =  offset_x;
      GLfloat old_offset_y  =  offset_y;

      offset_x  =  norm_x - p1_pos_x;
      offset_y  =  norm_y - p1_pos_y;

      p1_pos_x  =  norm_x;
      p1_pos_y  =  norm_y;

      offset_x  +=  old_offset_x;
      offset_y  +=  old_offset_y;

      update_pos = false;
   }

   glUniform4f ( offset_loc  ,  offset_x , offset_y , 0.0 , 0.0 );

   glVertexAttribPointer ( position_loc, 3, GL_FLOAT, false, 0, vertexArray );
   glEnableVertexAttribArray ( position_loc );
   glDrawArrays ( GL_TRIANGLE_STRIP, 0, 5 );

   eglSwapBuffers ( egl_display, egl_surface );  // get the rendered buffer to the screen
}


////////////////////////////////////////////////////////////////////////////////////////////


int  main()
{
   ///////  the X11 part  //////////////////////////////////////////////////////////////////
   // in the first part the program opens a connection to the X11 window manager
   //

   x_display = XOpenDisplay ( NULL );   // open the standard display (the primary screen)
   if ( x_display == NULL ) {
      cerr &lt;&lt; &quot;cannot connect to X server&quot; &lt;&lt; endl;
      return 1;
   }

   Window root  =  DefaultRootWindow( x_display );   // get the root window (usually the whole screen)

   XSetWindowAttributes  swa;
   swa.event_mask  =  ExposureMask | PointerMotionMask | KeyPressMask;

   win  =  XCreateWindow (   // create a window with the provided parameters
              x_display, root,
              0, 0, 800, 480,   0,
              CopyFromParent, InputOutput,
              CopyFromParent, CWEventMask,
              &amp;swa );

   XSetWindowAttributes  xattr;
   Atom  atom;
   int   one = 1;

   xattr.override_redirect = False;
   XChangeWindowAttributes ( x_display, win, CWOverrideRedirect, &amp;xattr );

   atom = XInternAtom ( x_display, &quot;_NET_WM_STATE_FULLSCREEN&quot;, True );
   XChangeProperty (
      x_display, win,
      XInternAtom ( x_display, &quot;_NET_WM_STATE&quot;, True ),
      XA_ATOM,  32,  PropModeReplace,
      (unsigned char*) &amp;atom,  1 );

   XChangeProperty (
      x_display, win,
      XInternAtom ( x_display, &quot;_HILDON_NON_COMPOSITED_WINDOW&quot;, True ),
      XA_INTEGER,  32,  PropModeReplace,
      (unsigned char*) &amp;one,  1);

   XWMHints hints;
   hints.input = True;
   hints.flags = InputHint;
   XSetWMHints(x_display, win, &amp;hints);

   XMapWindow ( x_display , win );             // make the window visible on the screen
   XStoreName ( x_display , win , &quot;GL test&quot; ); // give the window a name

   //// get identifiers for the provided atom name strings
   Atom wm_state   = XInternAtom ( x_display, &quot;_NET_WM_STATE&quot;, False );
   Atom fullscreen = XInternAtom ( x_display, &quot;_NET_WM_STATE_FULLSCREEN&quot;, False );

   XEvent xev;
   memset ( &amp;xev, 0, sizeof(xev) );

   xev.type                 = ClientMessage;
   xev.xclient.window       = win;
   xev.xclient.message_type = wm_state;
   xev.xclient.format       = 32;
   xev.xclient.data.l[0]    = 1;
   xev.xclient.data.l[1]    = fullscreen;
   XSendEvent (                // send an event mask to the X-server
      x_display,
      DefaultRootWindow ( x_display ),
      False,
      SubstructureNotifyMask,
      &amp;xev );


   ///////  the egl part  //////////////////////////////////////////////////////////////////
   //  egl provides an interface to connect the graphics related functionality of openGL ES
   //  with the windowing interface and functionality of the native operation system (X11
   //  in our case.

   egl_display  =  eglGetDisplay( (EGLNativeDisplayType) x_display );
   if ( egl_display == EGL_NO_DISPLAY ) {
      cerr &lt;&lt; &quot;Got no EGL display.&quot; &lt;&lt; endl;
      return 1;
   }

   if ( !eglInitialize( egl_display, NULL, NULL ) ) {
      cerr &lt;&lt; &quot;Unable to initialize EGL&quot; &lt;&lt; endl;
      return 1;
   }

   EGLint attr[] = {       // some attributes to set up our egl-interface
      EGL_BUFFER_SIZE, 16,
      EGL_RENDERABLE_TYPE,
      EGL_OPENGL_ES2_BIT,
      EGL_NONE
   };

   EGLConfig  ecfg;
   EGLint     num_config;
   if ( !eglChooseConfig( egl_display, attr, &amp;ecfg, 1, &amp;num_config ) ) {
      cerr &lt;&lt; &quot;Failed to choose config (eglError: &quot; &lt;&lt; eglGetError() &lt;&lt; &quot;)&quot; &lt;&lt; endl;
      return 1;
   }

   if ( num_config != 1 ) {
      cerr &lt;&lt; &quot;Didn't get exactly one config, but &quot; &lt;&lt; num_config &lt;&lt; endl;
      return 1;
   }

   egl_surface = eglCreateWindowSurface ( egl_display, ecfg, win, NULL );
   if ( egl_surface == EGL_NO_SURFACE ) {
      cerr &lt;&lt; &quot;Unable to create EGL surface (eglError: &quot; &lt;&lt; eglGetError() &lt;&lt; &quot;)&quot; &lt;&lt; endl;
      return 1;
   }

   //// egl-contexts collect all state descriptions needed required for operation
   EGLint ctxattr[] = {
      EGL_CONTEXT_CLIENT_VERSION, 2,
      EGL_NONE
   };
   egl_context = eglCreateContext ( egl_display, ecfg, EGL_NO_CONTEXT, ctxattr );
   if ( egl_context == EGL_NO_CONTEXT ) {
      cerr &lt;&lt; &quot;Unable to create EGL context (eglError: &quot; &lt;&lt; eglGetError() &lt;&lt; &quot;)&quot; &lt;&lt; endl;
      return 1;
   }

   //// associate the egl-context with the egl-surface
   eglMakeCurrent( egl_display, egl_surface, egl_surface, egl_context );


   ///////  the openGL part  ///////////////////////////////////////////////////////////////

   GLuint vertexShader   = load_shader ( vertex_src , GL_VERTEX_SHADER  );     // load vertex shader
   GLuint fragmentShader = load_shader ( fragment_src , GL_FRAGMENT_SHADER );  // load fragment shader

   GLuint shaderProgram  = glCreateProgram ();                 // create program object
   glAttachShader ( shaderProgram, vertexShader );             // and attach both...
   glAttachShader ( shaderProgram, fragmentShader );           // ... shaders to it

   glLinkProgram ( shaderProgram );    // link the program
   glUseProgram  ( shaderProgram );    // and select it for usage

   //// now get the locations (kind of handle) of the shaders variables
   position_loc  = glGetAttribLocation  ( shaderProgram , &quot;position&quot; );
   phase_loc     = glGetUniformLocation ( shaderProgram , &quot;phase&quot;    );
   offset_loc    = glGetUniformLocation ( shaderProgram , &quot;offset&quot;   );
   if ( position_loc &lt; 0  ||  phase_loc &lt; 0  ||  offset_loc &lt; 0 ) {
      cerr &lt;&lt; &quot;Unable to get uniform location&quot; &lt;&lt; endl;
      return 1;
   }


   const float
      window_width  = 800.0,
      window_height = 480.0;

   //// this is needed for time measuring  --&gt;  frames per second
   struct  timezone  tz;
   timeval  t1, t2;
   gettimeofday ( &amp;t1 , &amp;tz );
   int  num_frames = 0;

   bool quit = false;
   while ( !quit ) {    // the main loop

      while ( XPending ( x_display ) ) {   // check for events from the x-server

         XEvent  xev;
         XNextEvent( x_display, &amp;xev );

         if ( xev.type == MotionNotify ) {  // if mouse has moved
//            cout &lt;&lt; &quot;move to: &lt;&lt; xev.xmotion.x &lt;&lt; &quot;,&quot; &lt;&lt; xev.xmotion.y &lt;&lt; endl;
            GLfloat window_y  =  (window_height - xev.xmotion.y) - window_height / 2.0;
            norm_y            =  window_y / (window_height / 2.0);
            GLfloat window_x  =  xev.xmotion.x - window_width / 2.0;
            norm_x            =  window_x / (window_width / 2.0);
            update_pos = true;
         }

         if ( xev.type == KeyPress )   quit = true;
      }

      render();   // now we finally put something on the screen

      if ( ++num_frames % 100 == 0 ) {
         gettimeofday( &amp;t2, &amp;tz );
         float dt  =  t2.tv_sec - t1.tv_sec + (t2.tv_usec - t1.tv_usec) * 1e-6;
         cout &lt;&lt; &quot;fps: &quot; &lt;&lt; num_frames / dt &lt;&lt; endl;
         num_frames = 0;
         t1 = t2;
      }
//      usleep( 1000*10 );
   }


   ////  cleaning up...
   eglDestroyContext ( egl_display, egl_context );
   eglDestroySurface ( egl_display, egl_surface );
   eglTerminate      ( egl_display );
   XDestroyWindow    ( x_display, win );
   XCloseDisplay     ( x_display );

   return 0;
}
&lt;/source&gt;
 
[[Category:Development]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>SingleSignOn</title>
    <id>650</id>
    <revision>
      <id>3511</id>
      <timestamp>2008-06-30T19:18:03Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[SingleSignOn]] moved to [[Task:Single sign-on]]: Moving to correct naming system for the mediawiki</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Single sign-on]]</text>
    </revision>
  </page>
  <page>
    <title>SleepAnalyser</title>
    <id>4854</id>
    <revision>
      <id>43424</id>
      <timestamp>2011-05-10T13:52:29Z</timestamp>
      <contributor>
        <ip>145.94.185.151</ip>
      </contributor>
      <comment>/* FAQ */</comment>
      <text xml:space="preserve">'''SleepAnalyser is an application for the MAEMO 5 based mobile phone N900. It can record your movement during your sleep.'''

It is able to visualise it on a graph to show how much you move during your sleep. This can help to indicate how you sleep. It also has an alarm function and other features. You can set the alarm and a time window (ex. 30 minutes). The Alarm will then go off sometimes during the time window (as soon as you move more), but latest at the set alarm. This should help you to wake up while you are in the light sleep phase. Old records can be loaded and visualised and the graphs can be exported as bitmaps.

==Useful links==
*The authors website: http://www.ruinelli.ch/projects/maemo/sleepanalyser
*Maemo package website: http://maemo.org/packages/view/sleepanalyser/
*Source code: https://garage.maemo.org/projects/sleepanalyser/
*Forum discussions: http://talk.maemo.org/showthread.php?p=997117#post997117

==Help==
Please have a look at the authors website (see above) for more information about SleepAnalyser. It also has a built in documentation which should explain how to use it.

==FAQ==
===How to use it?===
Start SleepAnalyser, press Record and place the phone under or beside your pillow before you sleep, the phone will do the rest.

===Will it overheat under my pillow?===
The possibility exists, however, users have reported no such case. The power usage resulting from using the software is very low. Also, it will help to use SleepAnalyser to put the phone in Offline-mode when recording (thus sleeping).

Other devices, namely Android and iOS devices, use another system to be able to continue reading sensors, and therefore will use more energy, and thus have a higher change of overheating. Don't get scared off by these stories.

===How does it work?===
SleepAnalyser uses the built in acceleration sensor to detect any movement of your body while you are asleep. Those movements are filtered and smoothed to generate a meaningful graph.

===Does it also record my snoring?===
No it only records your movements.

There are no plans to implement sound recording analysis.


===What means lucid dream music?===
Lucid dreams are dreams where the dreamer has conscious awareness that he/she is dreaming. The degree of awareness is extremely variable. The dreamer may be well aware that the environment is a dream, but will submit to the flow of the dream without trying to alter any events. At the other end of the spectrum, the dreamer may be fully aware of the dream state and can alter the entire scene and list of events that occurs in the dream to their desire.

Lucid dream music are music that offer assistance to the dreamer and help them achieve lucidity. The music is therefore seen as a cue. When the music is played when the dreamer is dreaming, the dreamer's subconscious mind recognises the cue and the dreamer becomes lucid in the dream.

====What kind of music can I use for my lucid dreams====

There are a number of different types of lucid dream music. The most common is a recorded message with a voice saying something in the lines of:
&quot;you are dreaming, this this a dream.. etc etc&quot;
A number of pre-recorded voices are available on the net via google.

A number of sources suggests that this approach may be more effective if recorded with your own voice.

Another type of lucid dream music is playing a specific sound that the dreamer recognises as a cue. This approach requires the dreamer to listen to the music first while conscious and let the mind associate the music with lucidity. For example the sound of a wind chime is often used. Before sleeping, the user trains the mind by listening to the wind chime music and register it on their mind that when this music plays, it signifies that the dream environment is a dream and not real.

In essence, any kind of music can be used as long as the mind associates the music/sound with lucidity.

====Where can I find more information on Lucid dreaming====
[http://www.dreamviews.com] is an excellent site with all the info one needs to learn more about lucid dreaming.


====How do I use the lucid dream function in SleepAnalyser?====
The lucid dream functions in the SleepAnalyser is quite limited at the moment. It only allows the triggering of the lucid music in the first sleep cycle. A person's sleep usually becomes deeper through the night and the dream phase (REM sleep) usually increase in length and vividness.

However the function is still usable. As a sleep cycle is usually 90min long in total with 60min of non-REM sleep followed by 20min of REM sleep, it is best to set the delay to 60min. 

The idea is to play the music when the user begins REM sleep. A volume of 40% can be used as a starting volume and adjusted to suit the user. It is highly depended on how deep the user's sleep is usually and how tired he/she is.

It may also be better to have a longer delay in future versions as it takes time for the user to fall asleep too and 60min may not be enough of a delay for the start of REM sleep.


[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Sleeper</title>
    <id>3716</id>
    <revision>
      <id>40633</id>
      <timestamp>2010-12-09T13:07:16Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wiify slightly</comment>
      <text xml:space="preserve">[http://maemo.org/packages/view/sleeper/ Sleeper] is a widget for the Maemo desktop which allows your [[Nokia N900|N900]] to pause the music player (or the [[Panucci]] audiobook player) after a defined amount of time (e.g. 15 minutes). It's handy when listening to music while falling asleep.

New features in '''Sleeper 1.0''' (not yet in Maemo Extras, see [http://maemo.org/packages/view/sleeper/ Sleeper in Maemo Extras]):
* Vertical or horizontal bar with configurable minute values
* Optional widget icon for easy purpose recognition
* Optional information banners (you know, the yellow ones)

Discussion takes place over at talk.maemo.org:

* [http://talk.maemo.org/showthread.php?t=40764 Time based Music Stopper for N900]

==Screenshot==
[[Image:Sleeper-widget.png|frame|center|alt=Screenshot of Sleeper widget on desktop|Sleeper widget]]

==Help==
If the widget doesn't show after installation, please reboot the device and add it again (through the Desktop Edit mode &gt; Add Widget)

==Authors==
* Main author: [http://maemo.org/profile/view/twaelti/ Tom Waelti] (initial version, extensive settings)
* Contributors: [http://maemo.org/profile/view/thp/ Thomas Perl] (Panucci integration, refactoring)
* Thanks to [http://maemo.org/profile/view/brentdc/ Brent Chiodo], the author of TouchSearch for the nice code for widget settings - saved me HOURS :-)

==ChangeLog==
The [http://maemo.org/packages/view/sleeper/ current changelog] is available through the package viewer.
* 1.2.0: Added FM Radio support by tpl/pycage. Added volume fade out. Now with shutdown option
* 1.1.0: Added Panucci support by thp. Now fully configurable through settings dialogue. Using Help/About/Donate framework.
* 1.0: Merged with work from thp, fully configurable through settings dialog. Online help. Donation button.
* 0.2.x: Unofficial versions by thp, inclusion of Panucci support, refactoring. (only published as .debs)
* 0.2.0: Now able to display/toggle state and abort timer
* 0.1.0: Initial release

==Roadmap==
* Add support for other media players if they are accessible through D-Bus

==Wishlist==
Use this space to add possible feature wishes:
* WISH (YOUR NAME)
* &lt;del&gt;Shutdown the N900 ([[User:twaelti|twaelti]])&lt;/del&gt;
* &lt;del&gt;Fade out the volume before pausing [[User:thp|thp]])&lt;/del&gt;
* Add support for MediaBox ([[User:thp|thp]], see the headphoned source)
* Add possibility to shutdown/close the player ([[User:xmartx|xmartx]])

==Bugs==
Use this paragraph to report possible bugs:
* the play button from the media player widget doesn't work with sleeper installed. it says that the audio is used by another program. after uninstall sleeper works fine
* I had defined multiple times like 1,3,5,10,15,20,30,45,60 in vertical mode and when I tried to change the times back to 15,30,45 I am unable to see the settings button.

==Patches==
Use this space for submitting patches to Sleeper (twaelti will hopefully integrate them in one of the next releases, if the patch fits the goals of the Sleeper project):

* &lt;del&gt;[http://khan.thpinfo.com/~thp/tmp/0001-Support-for-pausing-pycage-s-FM-Radio.patch Support for stopping FM Radio] by thp (D-Bus support in FM Radio's SVN)&lt;/del&gt; Integrated in 1.2.0

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>SmartControl</title>
    <id>5235</id>
    <revision>
      <id>49341</id>
      <timestamp>2012-08-31T05:13:37Z</timestamp>
      <contributor>
        <username>guisoliver</username>
        <id>5411</id>
      </contributor>
      <comment>SmartControl Installation</comment>
      <text xml:space="preserve">{{ambox|text='''This software still in alpha version, some features may not work propertly.'''}}


{{ambox|text='''THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.'''}}


[http://talk.maemo.org/showthread.php?t=85810&amp;highlight=SmartControl#Links Keep following the SmartControl thread to get news about this application]


==Installing SmartControl Alpha==

This tutorial is specifically designed to install SmartControl in a Nokia N900 but this tutorial may be useful to install the software in Nokia N800, N810 and N9. You can try, since the packages required for installing the program also exist on the platforms mentioned.

=== Installation Method===

'''SmartControl requires the following packages:''' lighttpd, php5-cgi, php5-common, sudser, zenity, sqlite3

'''1.''' Enable extras-devel and extras repository from Maemo.

'''2.''' Install dependencies typing the following command:

&lt;pre&gt;
sudo apt-get install lighttpd php5-cgi php5-common sudser zenity sqlite3
&lt;/pre&gt;

'''3.''' Download the application with Wget typing the following command:

&lt;pre&gt;
wget -c http://minizig.eu5.org/dev/smartcontrol/maemo/alpha/smartcontrol_alpha_latest.deb
&lt;/pre&gt;

'''4.''' Install the application:
&lt;pre&gt;
sudo dpkg -i smartcontrol_alpha_latest.deb
&lt;/pre&gt;

'''5.''' Start SmartControl: A new icon will be shown in Applications menu. Start it, wait some seconds and open your computer browser and type the cellphone IP and using the port 1234 (that was defined in lighttpd config). Example: http://192.168.1.4:1234.
&lt;br&gt;


Type the default password that is 1234 and in the username field, keep empty and click in key icon to login in application.


The expected screen is:

[[Image:Smartcontrol screen.jpg]]

After login screen, the main dashboard is:

[[Image:SmartControl Main.jpg]]

In version Alpha 05 the following features are working: 

* Music Manager
* Application Manager
* Image Manager
* Conversations Manager
* Conboy Manager (Notes)
* Calendar Manager

If something be wrong with application, just send a private message to guisoliver or send a mail to guisoliver@gmail.com

Keep following the project in Sourceforge.net: http://smartcontrol.sourceforge.net/</text>
    </revision>
  </page>
  <page>
    <title>Smart control</title>
    <id>5234</id>
    <revision>
      <id>49340</id>
      <timestamp>2012-08-31T05:11:06Z</timestamp>
      <contributor>
        <username>guisoliver</username>
        <id>5411</id>
      </contributor>
      <comment>SmartControl</comment>
      <text xml:space="preserve">{{ambox|text='''This software still in alpha version, some features may not work propertly.'''}}


{{ambox|text='''THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.'''}}


[http://wiki.maemo.org/NITDroid_Port#Links NITDroid Port]


==Installing SmartControl Alpha==

This tutorial is specifically designed to install SmartControl in a Nokia N900 but this tutorial may be useful to install the software in Nokia N800, N810 and N9. You can try, since the packages required for installing the program also exist on the platforms mentioned.

=== Installation Method===

'''SmartControl requires the following packages:''' lighttpd, php5-cgi, php5-common, sudser, zenity, sqlite3

'''1.''' Enable extras-devel and extras repository from Maemo.

'''2.''' Install dependencies typing the following command:

&lt;pre&gt;
sudo apt-get install lighttpd php5-cgi php5-common sudser zenity sqlite3
&lt;/pre&gt;

'''3.''' Download the application with Wget typing the following command:

&lt;pre&gt;
wget -c http://minizig.eu5.org/dev/smartcontrol/maemo/alpha/smartcontrol_alpha_latest.deb
&lt;/pre&gt;

'''4.''' Install the application:
&lt;pre&gt;
sudo dpkg -i smartcontrol_alpha_latest.deb
&lt;/pre&gt;

'''5.''' Start SmartControl: A new icon will be shown in Applications menu. Start it, wait some seconds and open your computer browser and type the cellphone IP and using the port 1234 (that was defined in lighttpd config). Example: http://192.168.1.4:1234.
&lt;br&gt;


Type the default password that is 1234 and in the username field, keep empty and click in key icon to login in application.


The expected screen is:

[[Image:Smartcontrol screen.jpg]]

After login screen, the main dashboard is:

[[Image:SmartControl Main.jpg]]

In version Alpha 05 the following features are working: 

* Music Manager
* Application Manager
* Image Manager
* Conversations Manager
* Conboy Manager (Notes)
* Calendar Manager

If something be wrong with application, just send a private message to guisoliver or send a mail to guisoliver@gmail.com

Keep following the project in Sourceforge.net: http://smartcontrol.sourceforge.net/</text>
    </revision>
  </page>
  <page>
    <title>Smartreflex</title>
    <id>5186</id>
    <revision>
      <id>48875</id>
      <timestamp>2012-08-02T09:43:43Z</timestamp>
      <contributor>
        <username>qwazix</username>
        <id>4592</id>
      </contributor>
      <comment>/* Enabling Smartreflex */</comment>
      <text xml:space="preserve">==The official explanation==

::''&quot;SmartReflex is an advanced, multi-level and multi-parameter power management approach that can be found at some TI DSPs of the OMAP35x series.&quot;''[http://www.ti.com/general/docs/wtbu/wtbugencontent.tsp?templateId=6123&amp;navigationId=12032&amp;contentId=4609]

SmartReflex is a nifty way of scaling the voltage of the processor in a way similar to frequency scaling.  That is, voltage is increased as it is required.  Conversely it is decreased as it is not required.  Most users report that this has lead to an increase of around 1/3 battery life. (DISCLAIMER:1/3 battery life is dependent on a particular users set up and style of use.)

This module adjusts OMAP3 VDD1 and VDD2 operating voltages around the nominal values of current operating point depending on silicon characteristics and operating conditions.

==SR on the Stock Nokia kernel==

Smartreflex has been considered broken for a long time. The Stock Nokia kernel implementation of SmartReflex is to be considered broken and its use is to be avoided as it has been reported to be unstable on some devices


Due to it's instability and multiple bug reports:-

''&quot;Nokia decided that SR will be kept disabled. In the next public update (PR 1.3) it will be made possible for advanced users to enable it if wanted.&quot;''

==Kernel Power==

Since [[Kernel Power]] 50 (KP50), despite some disagreements amongst some of the more senior Maemo developers, SmartReflex can now be considered stable up 900MHz with stock DSP frequencies and up to 600Mhz for overclocked DSP.

*''I know I just said SR is stable up to 900MHz however some users have reported that on their devices SR is only stable up to lower frequencies (720-805MHz for example).  For more examples on tuning SR see the KP50 article.
''

==Enabling Smartreflex==

===Temporarily from terminal===

 echo 1 &gt; /sys/power/sr_vdd1_autocomp
 echo 1 &gt; /sys/power/sr_vdd2_autocomp

This setting is not persistent and will reset to default after a reboot.  It is recommended you test with this method first to determine if SR will work for your setup.

===Terminal===

To eneble smartreflex persistently edit /etc/pmconfig

 sudo leafpad /etc/pmconfig

Use leafpad text editor to change, sr_vddX_autocomp values to: 1

 sr_vdd1_autocomp 1
 sr_vdd2_autocomp 1 

''Warning! If you set overclock voltages above that which smartreflex is stable AND you enable SR from /etc/pmconfig you WILL get a re-boot loop.  You will need to re-flash to fix.''

===GUI===

[[http://maemo.org/downloads/product/Maemo5/qcpufreq/ QCPUFreq]] application has an option to enable Smartreflex via GUI.
However it currently only enables VDD1 and disables both VDD1 and VDD2 values together if previously enabled. This [[http://talk.maemo.org/showpost.php?p=1157835&amp;postcount=180 script]] from talk.maemo.org has been tested by at least two users and modifies QCPUFreq to enable and disable both values together.

If you know a GUI method that works out of the box please edit.</text>
    </revision>
  </page>
  <page>
    <title>Smscon</title>
    <id>4515</id>
    <revision>
      <id>39524</id>
      <timestamp>2010-10-14T05:34:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect</comment>
      <text xml:space="preserve">#REDIRECT [[SMSCON]]</text>
    </revision>
  </page>
  <page>
    <title>Social news</title>
    <id>3229</id>
    <revision>
      <id>25086</id>
      <timestamp>2009-12-24T16:24:41Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>New page: The Social News system looks at local votes (thumbs up / down) as a factor to determine important items. But unlike many think, it is not the only factor used. There are several, with diff...</comment>
      <text xml:space="preserve">The Social News system looks at local votes (thumbs up / down) as a
factor to determine important items. But unlike many think, it is not
the only factor used. There are several, with different weighting:

* Comments the item has on maemo.org (available only for local news items)
* Diggs
* delicious bookmarks
* Links on other blogs (via Technorati)

Like account or app [[Karma]], the social news algorithm is also easy to
tweak to include other factors, so the weighting system is constantly
open for discussion.

Some relevant blog posts:
* http://bergie.iki.fi/blog/calculating_news_item_relevance/
* http://bergie.iki.fi/blog/maemo_social_news_launched/
* http://www.inventive.fi/sosiaalista-suunnittelua-maemoorg-news/ (in Finnish)
* [http://trac.midgard-project.org/browser/branches/ragnaroek/midcom/org.maemo.socialnews Source code]

[[Category:Maemo.org]][[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Sociality</title>
    <id>4888</id>
    <revision>
      <id>44647</id>
      <timestamp>2011-07-24T14:20:56Z</timestamp>
      <contributor>
        <username>reflektorfalke</username>
        <id>3210</id>
      </contributor>
      <text xml:space="preserve">The following is a summary of this thread on talk.maemo.org:

* [http://talk.maemo.org/showthread.php?t=72842 &quot;Sociality | Facebook client in Qt&quot;]

For further support and information you might want to check this thread.

== General Information ==

We have seen several Facebook clients for Maemo. E.g. &quot;Facebrick&quot; which development was never finished and stopped working at some point after the Facebook API was changed or Kasvopus which, while being still under development(?), has a nice UI but is limited regarding features.

Sociality is another FB client developed in Qt by the famous, living legend, MohammadAG.
It is supposed to include all features that can be included by using the FB API.

[http://i55.tinypic.com/2ii7wav.jpg &quot;Sociality Homescreen Screenshot&quot;]

It´s name &quot;Sociality&quot; is the result of a poll you may check [http://mohammadag.xceleo.org/?p=42 &quot;here&quot;].

Currently this app is available from extras-devel.

Also see [http://maemo.org/packages/view/sociality/ Package Info Page]

== Disclaimer ==

&lt;font color=red&gt;'''!!! CAUTION !!!'''

This project is still in development stage, which means there might still be some risks, downsides and issues to be solved before it is ready for the average user...
Please read this summary carefully and evaluate the risks involved for yourself!
(Keep in mind that this can cause problems for the phone. Backup your data, backup your config (apps &gt; system &gt; backup) and know how to reflash)

'''Whatever you do, you are doing it at your own risk!'''&lt;/font&gt;

However, if you want to have a decent Facebook client on Maemo and want to help out here - 

'''You are more than welcome as a tester.'''

== Change Log ==

===''' Version 0.1-3 '''===

* Minor fixes to messages and notifications UI.
* Links now clickable.
* Horizontal scrolling disabled.
* Launching via the icon should work now

===''' Version 0.1-4 '''===

* Implemented places and checkin support.
* Notifications count now shown in button's text.
* Added minor animations for avatars.

===''' Version 0.1-5 '''===

* Fixed time being shown in UTC instead of local time.
* Added photo and proper photo album support.
* Fixed non-latin character posting.

===''' Version 0.2 '''===

* Notes implemented.
* Single album or single photo download.
* Fixed events item layout in portrait mode.
* Attendees button now works in events window.
* Friends window and news feed window use threading to improve performance.
* Friends and avatars are now cached (/home/user/.cache/MohammadAG/sociality).
* Cookies for facebook.com are now saved (/home/user/.local/share/data/MohammadAG/sociality/facebook.cookies).
* All application menu buttons in the main view (Account settings, privacy settings etc...) now work (as per the iOS app, they redirect to facebook.com's site, since there's no API for this).
* Notifications will now have visual, audible, and haptic feedback, clicking a notification will open the notification dialog, all of this is configurable in settings (audible notifications will not sound in Silent profile).
* Youtube videos will now playback inside the application, if you don't like this, simply tap the title bar and open the link in the browser/copy it to your favourite youtube app.
* News feed window shows links properly.
* Places does not cause a segmentation fault if you click done without selecting a place.
* A map widget will show when you select a place to check into.
* Fixed a memory leak.
* Delete button will ask for confirmation.
* Experimental loading widget, thanks to cutetube for the image (this only shows in news feed for now).
* Like button will correctly show unlike if the post is already liked.
* Auto refresh implementation, configurable in settings (0 to disable auto refresh).
* Notifications will be marked as read on facebook.com when they're read
* Added a donate button to the about dialog

===''' Version 0.2-1 '''===

* Explicit dependency on q-extras version 1.0.7

===''' Version 0.3 '''===

* Chat implemented.
* Menu icon name changed to Sociality.
* Photo upload implemented.
* Fixed tagging friends in check-in widnow.
* Play facebook.com videos inside the application
* Don't attempt to refresh if there's no active connection.
* Allow the application to always run in the background.
* Implemented friend requests and accepting them.
* Added QBadgeButton (translated from Khertan's Python version) to show notification count.
* Allow commenting on photos.
* Notifications for comments on photos now working.
* Disable loading animation on Maemo 5 (performance issues, for now).
* Tags and &quot;to&quot; ID implemented and fixed (old versions showed incorrect -&gt; Friend name if multiple friends are tagged).
* Added a progress bar to the login window.

===''' Version 0.3-1 '''===

* Group Sociality's notifications on top of the main window (reboot required)

== Planned / Requested Features ==

* Using &quot;Facebook&quot;-theme (blue and white) and maybe some eye-candy graphics and animations  would be nice instead of a Maemolike UI (black, bold buttons). While some users in the TMO thread seem to prefer a Maemolike UI, the majority seems to prefer blue/white, maybe some kind of themeing can be implemented.
* Refresh-button not in top menubar, but easily accessible in content area with 1-click or by dragging feed down from top
* More button on the bottom of the news feed
* Searching Facebook
* Full screen mode option
* Desktop widget | Working on it ~MohammadAG
* Sync contacts (only contacts thats in my phone address book and/or sync all contacts.) Note: There is an alternative dedicated app for this called Hermes: [http://maemo.org/downloads/product/Maemo5/hermes/ &quot;Hermes&quot;]
* Call option beside friend name | Facebook API doesn't expose this ~MohammadAG
* Offline support for news feed and all
* Enable add photos on checkins
* Swiping to be added to photo view for going to next or previous picture and zoom in pictures, e.g. with a gesture as in Microb or with volume keys
* Use Volume +/- to alter the font scale
* Friends list in tile mode with bigger profile picture
* Calendar pulling events from FB automatically
* Choice between &quot;Top News&quot; and &quot;Most Recent&quot;
* Open status comments as folder trees in _same_ view

== App Icon ==

Currently Sociality uses a default FB icon.
Users in the original thread mentioned above provided several suggestions for an icon:

[http://i.imgur.com/Zc74x.png Icon 1]
[http://talk.maemo.org/attachment.php?attachmentid=19922&amp;stc=1&amp;d=1304923243 Icon 2]
[http://talk.maemo.org/attachment.php?attachmentid=20530&amp;stc=1&amp;d=1306975087 Icon 3] 
[http://talk.maemo.org/attachment.php?attachmentid=20531&amp;stc=1&amp;d=1306975096 Icon 4]  
[http://talk.maemo.org/attachment.php?attachmentid=20547&amp;stc=1&amp;d=1307093626 Icon 5]
[http://talk.maemo.org/attachment.php?attachmentid=21049&amp;stc=1&amp;d=1309025955 Icon 6]
Please feel free to comment, suggest improvements or create own icons using this [http://talk.maemo.org/showthread.php?t=72842 &quot;thread&quot;] :-)

== UI Design ==

MAG asked for support regarding UI design.
Users in the original thread provided icons as well as mockups:

[http://lopagof.deviantart.com/art/facebook-ui-icons-vector-90099876 Iconset 1]

[http://talk.maemo.org/attachment.php?attachmentid=19881&amp;stc=1&amp;d=1304782890 Mockup 1]
[http://talk.maemo.org/attachment.php?attachmentid=19880&amp;stc=1&amp;d=1304776671 Mockup 2]
[http://img716.imageshack.us/img716/3401/facebookeoq.png Mockup 3]
[http://imageshack.us/m/832/6281/screenshotnews.png Mockup 4]
[http://imageshack.us/m/862/139/screenshotwip.png Mockup 5]
[http://talk.maemo.org/attachment.php?attachmentid=20230&amp;stc=1&amp;d=1305928507 Mockup 6]
[http://img7.imageshack.us/img7/8371/newusa.png Mockup 7] 
[http://i.imgur.com/Uugnr.jpg?6113 Mockup 8]
[http://talk.maemo.org/attachment.php?attachmentid=20545&amp;stc=1&amp;d=1307093456 Mockup 9]
[http://talk.maemo.org/attachment.php?attachmentid=20599&amp;stc=1&amp;d=1307280687 Mockup 10]
[http://talk.maemo.org/attachment.php?attachmentid=20603&amp;stc=1&amp;d=1307295554 Mockup 11]
[http://talk.maemo.org/attachment.php?attachmentid=20634&amp;stc=1&amp;d=1307395718 Mockup 12]

Please feel free to comment, suggest improvements or create own mockups using this [http://talk.maemo.org/showthread.php?t=72842 &quot;thread&quot;]:-)

== Known Issues ==

* Messages in News Feed timeline from friends app/games, stuff like their FarmVille prizes etc. 
(Note: These have to be disabled on facebook itself: On a browser, check your newsfeed. Where you get i.e. a Farmville post, click &quot;x&quot; topright to remove it, and a little menu will appear. Click &quot;Hide all by Farmville&quot; and you will never see any notifications from that app again. Do this for each app until your newsfeed is clear on whichever device you choose to read it on. Sorted!)
* Can't add a new place (Not supported by FB API)
* Notes are not yet editable
* Send messages is not supported by Facebook API
* Kinetic scrolling sometimes goes crazy and goes way too fast (probably related to [http://wiki.forum.nokia.com/index.php/Qt_Kinetic_scrolling_-_from_idea_to_implementation Forum Nokia Wiki page about Kinetic Scrolling] and [http://bugreports.qt.nokia.com/browse/QTBUG-9054 QTBUG-9054])
* Accepting friend requests gives an error &quot;sorry we are trying to get it working&quot;
* Chat is implemented using XMPP (QXmpp library), takes some time to load initial online list but you can actually chat immediately
* Notifications to work with app running in background require a restart of phone and setting a refresh interval to work
* Sociality doesn't start up in background at boot up, you'll have to do start it up yourself after reboot or make an event.d file for it
* Sound notification is not working yet for chat
* Chat does not scroll automatically to the latest chat dialogue
* Loading indicator is implemented for the News feed, but not yet when loading a photo and the comments, or comments for a status update
* New status gets cut off after ampersand(&amp;) symbol

== Easter-Eggs ==

=== Light UI Layout ===
In Version 0.2-1, for an basic experimental light layout in news feed:

Add white-mode=true 

under [main] in /home/user/.config/MohammadAG/sociality.conf  

(This is just a basic implementation and doesn't look good since hildon's themes use a black background instead of transparency.)

=== Experimental Chat Feature ===

The chat feature is hidden in Version 0.2-1 (only goes online and shows friends now) you're free to enable it by adding 

experimental-chat=true 

to the config file (/home/user/.config/MohammadAG/.config/sociality.conf))

This key is obsolete as of Version 0.3

== Donations ==

...are welcome :-)
Use &quot;Donate&quot;-button in &quot;About&quot; from top bar menu - Thanks! :-)

[[Category:Software]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Software</title>
    <id>3490</id>
    <revision>
      <id>43693</id>
      <timestamp>2011-05-31T09:35:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Applications */ add MyPaint</comment>
      <text xml:space="preserve">''We're waiting for the script that can handle the list logically enough, so please be patient. Meanwhile, just head over to [http://maemo.org/downloads/Maemo5/ Maemo Downloads] and select the appropriate operating system.''

If you want to get applications to your device, I suggest you read article [[Installing applications]].

== Applications ==

A number of projects which are available for Maemo have wiki pages describing their features — other projects even use the wiki for their main web pages. This page is a catalog of those pages.

{| class=&quot;wikitable sortable&quot;
|+ Maemo Software
|-
! Application !! class=&quot;unsortable&quot; | Description !! class=&quot;unsortable&quot; | OS availability
|-
| [[Actman]] || manage multiple desktop sessions || [[Open development/Maemo roadmap/Fremantle|Maemo 5]]
|-
| [[AutoDisconnect]] || automatically disconnect network connections when they are not needed || Maemo 5
|-
| [[Bluemaemo]] || Use your Maemo device as a Bluetooth controller || [[:Category:OS2008|OS 2008]], Maemo 5
|-
| [[Bluezwitch]] || Desktop widget which allows you to quickly switch Bluetooth on or off ||
|-
| [[Dexter]] || Teletext reader ||
|-
| [[ejpi]] || RPN calculator || OS2008, Maemo 5
|-
| [[Evopedia]] || Offline Wikipedia viewer ||
|-
| [[fcron]] || Command scheduler || 
|-
| [[Gonvert]] || Unit converter || OS2008, Maemo 5
|-
| [[HomeBank Maemo]] || Finance software ||
|-
| [[I am here]] || Track your phone if it is lost or stolen || Maemo 5
|-
| [[JPush]] || Information pushing between a client and server via Jabber || Maemo 5
|-
| [[Knots2]] || Multimedia streaming software || OS 2008, Maemo 5
|-
| [[Livewallpaper]] || Live (moving) desktop backgrounds || Maemo 5
|-
| [[MaeFat]] || Weight and body mass index (BMI) tracking || Maemo 5
|-
| [[Miniature]] || Chess game with online chess server functionality || Maemo 5
|-
| [[Multilist]] || Todo list || OS2008, Maemo 5
|-
| [[MyPaint]] || Digital painting || OS2008, Maemo 5
|-
| [[Nqaap]] || audiobook player || OS2008, Maemo 5
|-
| [[OMWeather]] || Desktop applet for showing the weather || OS 2006, 2007, 2008, Maemo 5
|-
| [[NTP|OpenNTPD]] || Make the device clock keep accurate time || OS 2008, Maemo 5
|-
| [[Orrery]] || Night sky viewer and compass || Maemo 5
|-
| [[QSportsEvent]] || View scores and tables for sporting events || OS 2008, Maemo 5
|-
| [[Queen BeeCon Widget]] || desktop widget monitoring tool || Maemo 5
|-
| [[Quicknote]] || Notes || OS2008, Maemo 5
|-
| [[Quick Widgets]] || Desktop widgets written with Qt Quick || Maemo 5
|-
| [[Recaller]] || Desktop widget for recording all kinds of audio || Maemo 5
|-
| [[Rockbox]] || media player for a variety of systems || Maemo 5
|-
| [[Shutter]] || IR remote control for either Canon, Nikon or Olympus DSLR cameras ||
|-
| [[SMSCON]] || Remote control and tracking via SMS || Maemo 5
|-
| [[SMSCON Editor]] || Configuration and Test interface to [[SMSCON]] || Maemo 5
|-
| [[Sleeper]] || Desktop widget that pauses you music player after a defined time ||
|-
| [[Swappolube]] || Interface to the configuration of several parameters of the N900 kernel || Maemo 5
|-
| [[The One Ring]] || Google Voice plugin for conversations and phone || OS2008, Maemo 5
|-
| [[VertSMS]] || Vertical orientation SMS application || Maemo 5
|-
| [[Waters of Shiloah]] || streaming inspiration audiobook player || OS2008, Maemo 5
|-
| [[Wifi Assistant]] || easily connect to wireless networks requiring a login page || Maemo 5
|-
| [[Xscreensaver]] || Port of Xscreensaver for Maemo || Maemo 5
|}

For more software, see:

* [[Games]] — games for Maemo
** [[Emulators]]

and browse the [[:Category:Software|software category]], as well as the [[killer apps]] article.

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Software wish-list</title>
    <id>88</id>
    <revision>
      <id>36225</id>
      <timestamp>2010-06-24T08:56:22Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Community wish-list]]</comment>
      <text xml:space="preserve">#REDIRECT [[Community wish-list]]</text>
    </revision>
  </page>
  <page>
    <title>Source Relavent To Maemo</title>
    <id>4735</id>
    <revision>
      <id>41865</id>
      <timestamp>2011-02-17T09:50:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Source Relavent To Maemo]] moved to [[Source Relevant To Maemo]]: fix typo in title</comment>
      <text xml:space="preserve">#REDIRECT [[Source Relevant To Maemo]]</text>
    </revision>
  </page>
  <page>
    <title>Source Relevant To Maemo</title>
    <id>4730</id>
    <revision>
      <id>41864</id>
      <timestamp>2011-02-17T09:50:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>[[Source Relavent To Maemo]] moved to [[Source Relevant To Maemo]]: fix typo in title</comment>
      <text xml:space="preserve">This is intended as a list of links to source code relavent to Maemo which is not in the repositories or linked to from the appropriate page under http://maemo.org/packages/

== Packages not in the Maemo repository at all ==

*[[Documentation/Maemo 5 Developer Guide/Architecture/System Software#Mode Control Entity (MCE)|Mode Control Entity]]. Code that partially matches Fremantle is available from [http://meego.gitorious.org/meego-middleware/mce MeeGo Gitorious]
*Security and Certificate Manager library. Code (including all the keys and certificates) is available [http://gitorious.org/maemo-5-certificate-manager on Gitorious]
*Cellular modem headers. http://www.wirelessmodemapi.com/ contains some headers for the cellular modem, as does http://www.forum.nokia.com/info/sw.nokia.com/id/e920da1a-5b18-42df-82c3-907413e525fb/Nokia_Qt_SDK.html ([https://bugs.maemo.org/show_bug.cgi?id=11921 Maemo Bug 11921] contains details of how those headers actually match the N900 cell modem)

== Packages with source in the maemo repository but not referenced from the relevant package info page ==

* http://repository.maemo.org/pool/maemo5.0/free/f/fakedebconf/
* http://repository.maemo.org/pool/maemo5.0/free/c/clinkc-av-gnomevfs/
* http://repository.maemo.org/pool/maemo5.0/free/h/hildon-welcome/
* http://repository.maemo.org/pool/maemo5.0/free/g/gnuchess/
* http://repository.maemo.org/pool/maemo5.0/free/g/gstreamer0.10-mpegaudioparse-maemo/
* http://repository.maemo.org/pool/maemo5.0/free/libp/libptypes/
* http://repository.maemo.org/pool/maemo5.0/free/s/swi-prolog/
* http://repository.maemo.org/pool/maemo5.0/free/o/osso-applet-screencalibration/
* http://repository.maemo.org/pool/maemo5.0/free/o/osso-calculator-engine/
* http://repository.maemo.org/pool/maemo5.0/free/o/osso-chess-ui/
* http://repository.maemo.org/pool/maemo5.0/free/o/osso-mahjong/
* http://repository.maemo.org/pool/maemo5.0/free/o/osso-lmarbles/
* http://repository.maemo.org/pool/maemo5.0/free/o/osso-pdf-viewer/
* http://repository.maemo.org/pool/maemo5.0/free/m/matchbox-window-manager/
* http://repository.maemo.org/pool/maemo5.0/free/m/microb-geolocation/
* http://repository.maemo.org/pool/maemo5.0/free/m/microb-l10n/
* http://repository.maemo.org/pool/maemo5.0/free/m/maemo-bluez-compat/
* http://repository.maemo.org/pool/maemo5.0/free/m/maemo-optify-runonce/
* http://repository.maemo.org/pool/maemo5.0/free/m/maemoblocks/

[[Category:Fremantle]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Source petition for example package</title>
    <id>2967</id>
    <revision>
      <id>22173</id>
      <timestamp>2009-11-08T21:40:34Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Source petition for example package]] moved to [[Task:Source petition for example package]]: This is a Task</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Source petition for example package]]</text>
    </revision>
  </page>
  <page>
    <title>Sources</title>
    <id>4776</id>
    <revision>
      <id>42468</id>
      <timestamp>2011-03-08T12:04:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>move content and redirect to [[Open development]]</comment>
      <text xml:space="preserve">#REDIRECT [[Open development]]</text>
    </revision>
  </page>
  <page>
    <title>Special characters view</title>
    <id>3334</id>
    <revision>
      <id>38835</id>
      <timestamp>2010-09-21T08:59:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">The '''special characters view''' (SCV) is the symbol table that appears when typing Fn+Ctrl (Sym) on the slideout keyboard of the [[Nokia N810|N810]] or [[Nokia N900|N900]].

The set of symbols offered depends on the hardware keyboard layout chosen in the &quot;Text input&quot; settings. For users who type in a language different from the layout of the hardware keyboard, customization of the SCV is useful. The SCV layout is defined in the &lt;code&gt;*.vkb&lt;/code&gt; files located under &lt;code&gt;/usr/share/scv_layouts/&lt;/code&gt; on the device's filesystem. The pre-installed files are contained in package [http://maemo.org/packages/view/hildon-im-keyboard-assistant-scv/ hildon-im-keyboard-assistant-scv] (closed-source). vkb files are in a binary format and generated from a text file using a vkb file compiler.

A vkb file compiler can be found on [http://www.upir.cz/maemo/keyboards/ Upir's Maemo Pages]. Download the ukeyboard sources and compile them (make) on a desktop Linux installation (Maemo scratchbox not necessary). Compilation of Maemo dependent parts will fail, but the vkb compiler should succeed to be compiled.

There are sample ''def'' files in the sub-directory &lt;code&gt;keyboards-scv&lt;/code&gt; which you can adapt to your needs: Copy the file to the name matching your hardware keyboard, for example &lt;code&gt;us.def&lt;/code&gt;, edit it to meet your needs and run
 ../vkb_compiler us.def us.vkb

On the device, make a backup copy of the existing &lt;code&gt;/usr/share/scv_layouts/us.vkb&lt;/code&gt; for the case that you want to go back to the original layout. Then copy your new &lt;code&gt;us.vkb&lt;/code&gt; to &lt;code&gt;/usr/share/scv_layouts/&lt;/code&gt; on the device.

You will need to go to the &quot;text input&quot; settings and select the hardware keyboard type again. After that, the new SCV table should show up.

Remark: I had ukeyboard installed on the device when doing this, but I expect these instructions working also without it.

For people with an English keyboard typing in German language, I attach my customized &lt;code&gt;us.def&lt;/code&gt; file. I would also offer the compiled vkb file but I don't know how to attach it to the wiki page.

Related bug report: [https://bugs.maemo.org/show_bug.cgi?id=2892 #2892]

See also how to [[Remapping keyboard|remap the hardware keyboard]].

'''''Make sure, the def file is in UTF-8 encoding before running vkb_compiler on it!''''' Use &lt;code&gt;recode l1..u8 your.def&lt;/code&gt; if necessary.
&lt;pre&gt;
# German, English scv keyboard layout
# Created by Tilman Vogel &lt;tilman vogel web de&gt; (insert: dot at dot)

header {
name	&quot;German, English&quot;
lang	&quot;German, English&quot;
wc	&quot;&quot;

size	0	{ width 110 height 72 textpos 41 left 0 top 0 }
}

kbd_special {
lowercase {
	name &quot;&quot;
	margin 0 0 0 0
	default_size 0
	row {
	key &lt; special
	key &gt; special
	key [ special
	key ] special
	key { special
	key } special
	key | special
	}
	row {
	tab
	key ¥ special
	key § special
	key ½ special
	key ² special
	key % special
	key ‰ special
	}
	row {
	key ` alpha special dead
	key ´ alpha special dead
	key ^ alpha special dead
	key ~ alpha special dead
	key ¨ alpha special dead
	key ° alpha special dead
	key ˇ alpha special dead
	}
	row {
	key ä special
	key ö special
	key ü special
	key ß special
	key á special
	key é special
	key è special
	}
}
uppercase {
	name &quot;&quot;
	margin 0 0 0 0
	default_size 0
	row {
	key &lt; special
	key &gt; special
	key [ special
	key ] special
	key { special
	key } special
	key | special
	}
	row {
	tab
	key ¥ special
	key § special
	key ½ special
	key ² special
	key % special
	key ‰ special
	}
	row {
	key ` alpha special dead
	key ´ alpha special dead
	key ^ alpha special dead
	key ~ alpha special dead
	key ¨ alpha special dead
	key ° alpha special dead
	key ˇ alpha special dead
	}
	row {
	key Ä special
	key Ö special
	key Ü special
	key ß special
	key Á special
	key É special
	key È special
	}
}
}
&lt;/pre&gt;

[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Speed up web browsing</title>
    <id>2758</id>
    <revision>
      <id>41592</id>
      <timestamp>2011-02-03T13:04:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut a newline and drop a category</comment>
      <text xml:space="preserve">This is a brief introduction how to speed up web pages.

== Filtering content ==

See article [[Ad blocking]] for multiple solutions to filter web pages from unwanted content.

== Caching proxy ==

Caching proxies were traditionally used to speed up browsing on the world wide web. Some 3G operators still provide them. Sometimes, these proxies also lower the quality of JPEG images in order to save bandwidth. Opera Mini, a Java ME browser for mobile platforms, is known to utilize a caching proxy, run by Opera Software ASA. One may also configure such proxy on their own server, for example Privoxy.

== Disable flash ==

If you don't need flash, you can disable it entirely and enjoy much faster surfing experience.

To disable Flash, open your browser options via the menu bar, select &quot;Add-ons&quot; and select and disable &quot;Shockwave Flash&quot; in the &quot;Plugins&quot; tab.

[[Category:Users]]</text>
    </revision>
  </page>
  <page>
    <title>Standard WebOS apps</title>
    <id>5109</id>
    <revision>
      <id>48293</id>
      <timestamp>2012-06-09T12:34:51Z</timestamp>
      <contributor>
        <username>marmistrz</username>
        <id>4691</id>
      </contributor>
      <comment>loadApplicationSources call</comment>
      <text xml:space="preserve">== How to set up the environment ==

1. Download WebOS Doctor for Pre. (WebOS version 1.4.5) [http://www.webos-internals.org/wiki/WebOS_Doctor_Versions link]
2. Now you'll have to go through a lot of unpacking. The WebOS image is in
 ./resources/WebOS.tar/./
its name is 
 nova-cust-image-&lt;codename&gt;.rootfs.tar.gz
3. You need to unpack at least the ./usr/palm directory for this. Unpack it anywhere you want.
4. Copy the palm directory onto your N900. I had executable MyDocs.
5. I moved the files to /home/user/palm (so the applications subfolder is /home/user/palm/applications). I'll assume they're there later.
6.
 sudo ln -s /home/user/palm /usr/palm
You may want to do this too:
 sudo ln -s /home/user/lib/luna /usr/lib/luna
7. Apply this patch: [http://talk.maemo.org/attachment.php?attachmentid=25527&amp;d=1332340295 link] to /usr/palm/frameworks/mojo/submissions/347/javascript/framework.js
 patch framework.js -i framework.js.patch -o framework.js.new
 mv framework.js framework.js.old
 mv framework.js.new framework.js

=====================================

There are other steps to make the app run.

These require editing the index.html file to load the sources.json.

You need to add this line after all the script and css calls

 &lt;script type=&quot;text/javascript&quot;&gt; Mojo.loadApplicationSources() &lt;/script&gt;</text>
    </revision>
  </page>
  <page>
    <title>Starcraft</title>
    <id>4737</id>
    <revision>
      <id>41893</id>
      <timestamp>2011-02-19T13:08:50Z</timestamp>
      <contributor>
        <username>pali</username>
        <id>2764</id>
      </contributor>
      <comment>[[Starcraft]] moved to [[Stargus]]</comment>
      <text xml:space="preserve">#REDIRECT [[Stargus]]</text>
    </revision>
  </page>
  <page>
    <title>Stargus</title>
    <id>3732</id>
    <revision>
      <id>41913</id>
      <timestamp>2011-02-21T09:02:28Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Installing Stargus on Nokia N900 */ update instructions</comment>
      <text xml:space="preserve">== Installing Stargus on Nokia N900 ==

# Copy &lt;code&gt;INSTALL.EXE&lt;/code&gt; from the original Starcraft I CD to phone directory &lt;code&gt;/home/user/MyDocs/Starcraft&lt;/code&gt; (Connect phone to computer in mass storage mode and copy files to Starcraft directory). Note: Broodwar does not work
# Install Stargus from Hildon Application Manager or via apt-get
# During Stargus installation, data files from &lt;code&gt;/home/user/MyDocs/Starcraft&lt;/code&gt; will be automatically extracted. Note that this process may take 15-30 minutes and the installer may not respond during this time.
# After installation, Stargus can be run from the [[Application Menu|application menu]].

See the talk.maemo.org thread http://talk.maemo.org/showthread.php?p=904603 for discussion.

== Installing Stargus on Nokia N800 (Diablo) ==

# Download Stargus: [http://stargus.sourceforge.net/install/ Linux] - [http://sourceforge.net/projects/stargus/ Windows]
# Put your Starcraft CD in.
# Install Stargus and when you are asked, select the CD-Rom drive.
# Exit Stargus and go to the directory where Stargus was installed (C:\Program Files\Stargus)
# Copy the CONTENT of the Data directory to your memory card to media\mmc1\games\stratagus\stargus
# Next you have to download this file: [http://www.mediafire.com/?3f30xvhrd1g Stratagus deb file]
# Copy this file to the root directory of your external memory card
# running the .deb from the file manager should work
# otherwise, Open X-Terminal and type in the following as root, pressing enter after each line:
  
 cd ..
 cd ..
 cd media/mmc1/
 dpkg -i stratagus-0.1-4_armel.deb

Once installed, the shortcut created in the application menu will not work, use this code in X-terminal instead:

 stratagus -v 2 -d /media/mmc1/games/stratagus/stargus

Notes:

# Be very careful with your spelling of stratagus/stargus, it will save you a lot of frustration. Copy-and-pasting into X-term is preferable.
# You may see an error stating that preferences.lua cannot be loaded or found. ignore this. Stargus should still start and after editing settings you won't see that message again.
# Stargus may not initially start in full screen. but this is okay, you simply need to goto settings within stargus and tick &quot;full screen.&quot; don't change the display size.
# You can create a custom shortcut, using the X-term code above, in the wonderful application ''[http://maemo.org/downloads/product/OS2008/personal-menu/ Personal Menu]'' by [http://maemo.org/profile/view/fiferboy/ Andrew Olmsted]

== Acknowledgements ==

* Credit goes to linman who has ported Stratagus for Maemo and the Stargus team.
* [https://launchpad.net/stargus/ Stargus project page]

[[Category:Software]]
[[Category:Games]]
[[Category:HowTo]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Startup script</title>
    <id>3924</id>
    <revision>
      <id>39380</id>
      <timestamp>2010-10-05T13:34:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">Startup script is a script which is executed at every startup (boot) of the device. It is important to have all custom startup commands under control, you can simply have them in one file as it is described here.

==Usage examples==

You can use startup script to:

* set frequencies in kernel (overclocking with titan's kernel)
* set voltages in kernel (undervolting with titan's kernel)
* set ondemand scheduler parameters (&lt;code&gt;ignore_nice_load&lt;/code&gt;, &lt;code&gt;up_threshold&lt;/code&gt;, &lt;code&gt;sampling_rate&lt;/code&gt;)
* start daemons like [[fcron]]
* load kernel modules
* turn on additional swapping partitions (microSD)
* set swappiness
* mount additional partitions (for example ext3-formatted microSD card)
* set SmartReflex values
* run any command at startup


It is better to use startup script for setting kernel parameters rather that editing system files (for example &lt;code&gt;/etc/pmconfig&lt;/code&gt;), because you can delay the execution of the script or prevent the execution if the reboot loop is detected. The delaying option is described here, but the script to detect the reboot loop has yet to be tested and added.

==Script==

The preferred method used is a script in &lt;code&gt;/etc/event.d&lt;/code&gt; directory. All scripts in that directory are executed at every boot, but they need to be in proper format in order to work. First of all create a file in /etc/event.d/ directory named as you like, &quot;startup-script&quot; is a good pick for example.

This is an example script that you can modify and put into your startup script:

 start on started hildon-desktop
 stop on starting shutdown
 console none
 service
 
 script
 
 sleep 60
 echo 1 &gt; /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load
 echo 80 &gt; /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold
 echo 200000 &gt; /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate
 modprobe bq27x00_battery
 /etc/init.d/fcron start
 swapon /dev/mmcblk1p2
 
 end script

Customize the script to your needs and save the file. The part that you need to modify is between &quot;script&quot; and &quot;end script&quot; lines and is like any other shell script except that it doesn't need shebang at the start (&lt;code&gt;#!/bin/sh&lt;/code&gt;). The &lt;code&gt;sleep 60&lt;/code&gt; command is optional and produces delay in seconds, in the example case one minute. After you have tested your commands, you can remove this command to speed up the process.

After next reboot, all commands you put in that script will be executed. So make sure that you know what are you doing, it would be unwise to put &quot;&lt;code&gt;reboot&lt;/code&gt;&quot; into that script.

[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Static IP Address</title>
    <id>3390</id>
    <revision>
      <id>35158</id>
      <timestamp>2010-05-31T12:19:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add links</comment>
      <text xml:space="preserve">== Introduction ==
The settings for this are quite deeply buried, so here's a how-to for the setup of a static IP address on your [[Nokia N900|N900]].

Also note that this guide is aimed at new N900 and Maemo users as the task of finding the input boxes for the IP addresses can be difficult.

Of course, this is only for wlan connections, since the IP addresses you get from a 3G connection can vary a lot, and the ports are usually open.

I will not go into the process of the actual port forwarding on your router. There are other, router-specific guides for that. Like the ones on [http://portforward.com/ Portforward]

== The guide ==

First of all, I suggest you get the IP address widget from the [[extras]] repository. It is a great help when you need to find out what IP address your device is currently assigned.

Connect to your preferred wlan network and write down the IP address the widget displays. Then disconnect from the network.

Then go to the '''menu''', then '''settings''', then scroll down to and select '''internet connections'''. In the popup, press the &quot;'''connections'''&quot;-button. Highlight the wlan connection you wish to set the static IP address to, and hit '''Edit'''.

Then the edit wizard appears. Just click '''next''' without changing anything until you get to the end, where the next-button is greyed-out. A new button has appeared next to it, labeled &quot;'''Advanced'''&quot;. Tap it.

In the resulting pop-up, choose the second tab, labeled &quot;'''IP addresses'''&quot;.

At this point you need the '''subnet mask''' and the '''default gateway''' of your router, as well as the '''DNS addresses''' of your ISP (or any other DNS addresses you wish to use. Google has recently launched some of their own). If you've entered static IP addresses on your computer, you'll know how to find these out. In a nutshell: on your computer, follow the fist 4 steps on any guide here: [http://www.portforward.com/networking/staticip.htm].

The DNS addresses are usually visible on the support pages of your ISP, just google &quot;DNS (ISP name here)&quot;. A good alternative is: [http://www.opendns.com/ OpenDNS]

When you have those, we are good to go.

First, uncheck the &quot;'''Auto-retrieve IP address'''&quot;-box. Then, fill in the IP address you got from the widget in the IP address field. Do the same with the subnet mask and the default gateway, as well as the primary and secondary DNS addresses.

When done, click '''SAVE'''. And you are, well... Done!

Now you can proceed with the actual port forwarding on your router.

[[Category:Beginners]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Streaming Audio To N900</title>
    <id>5160</id>
    <revision>
      <id>47330</id>
      <timestamp>2012-04-23T20:26:27Z</timestamp>
      <contributor>
        <username>erwinjunge</username>
        <id>5157</id>
      </contributor>
      <comment>New page: To stream audio from a Linux PC to the N900, do the following:  On N900: &lt;pre&gt; root apt-get install pulseaudio-esound-compat echo &quot;.ifexists module-esound-protocol-tcp.so     load-module m...</comment>
      <text xml:space="preserve">To stream audio from a Linux PC to the N900, do the following:

On N900:
&lt;pre&gt;
root
apt-get install pulseaudio-esound-compat
echo &quot;.ifexists module-esound-protocol-tcp.so
    load-module module-esound-protocol-tcp port=6000 auth-cookie-enabled=0 auth-anonymous=1 sink=1
.endif&quot; &gt;&gt; /etc/pulse/system.pa
stop pulseaudio
start pulseaudio
&lt;/pre&gt;

On PC (replace IP_ADDRESS_OF_N900 with actual ip address of phone):
&lt;pre&gt;
sudo su
echo &quot;load-module module-esound-sink server=IP_ADDRESS_OF_N900:6000 sink_name=n900 sink_properties=device.description=N900&quot; &gt;&gt; /etc/pulse/default.pa
service pulseaudio restart
&lt;/pre&gt;

Now you can move streams to &quot;N900&quot; in pavucontrol.</text>
    </revision>
  </page>
  <page>
    <title>Streaming played video from mythtv</title>
    <id>1226</id>
    <revision>
      <id>7449</id>
      <timestamp>2008-09-25T20:10:25Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Streaming played video from mythtv]] moved to [[Streaming with MythTV]]</comment>
      <text xml:space="preserve">#REDIRECT [[Streaming with MythTV]]</text>
    </revision>
  </page>
  <page>
    <title>Streaming video from built-in webcam</title>
    <id>80</id>
    <revision>
      <id>40854</id>
      <timestamp>2010-12-21T14:29:46Z</timestamp>
      <contributor>
        <username>shadow12</username>
        <id>1552</id>
      </contributor>
      <text xml:space="preserve">It is possible to use the [[Nokia N800|N800]] and [[Nokia N900|N900]] camera as a source of streaming video. 

== N800 ==

This was originally described [https://maemo.org/community/wiki/howtostreamvideo/ here], but the referenced example has an error which prevents it from working.

This note describes how to stream video from the platform to an RTP sink, for example the [[VLC]] media player.

First, you must install the '''gstreamer-tools''' package from the diablo repo on repository.maemo.org.

* On the N800, the following script will stream video from the camera. Here, 172.31.0.244 is the Linux box with VLC installed, and 172.31.0.245 is the N800. I call this script &lt;code&gt;~/bin/rtpstream.sh&lt;/code&gt;.
 #!/bin/sh
 VPORT=5434
 APORT=5432
 HOST=${1:-172.31.0.244}
 gst-launch-0.10 v4l2src ! video/x-raw-yuv,width=176,height=144,framerate=\(fraction\)15/1 ! hantro4200enc stream-type=1 profile-and-level=1001 ! video/x-h263,framerate=\(fraction\)15/1 ! rtph263ppay mtu=1438 ! udpsink host=$HOST port=$VPORT dsppcmsrc ! queue ! audio/x-raw-int,channels=1,rate=8000 ! mulawenc ! rtppcmupay mtu=1438 ! udpsink host=$HOST port=$APORT

* On the Linux box, the sample .sdp file from [http://web.media.mit.edu/%7Elifton/snippets/n800_to_sl/ the original article], with the address of our VLC player, saved as a file i.e. &lt;code&gt;/tmp/n800.sdp&lt;/code&gt;
 v=0
 o=- 37 614155991 IN IP4 127.0.0.0
 s=QuickTime
 t=0 0
 a=range:npt=now-
 m=audio 5432 RTP/AVP 0
 c=IN IP4 172.31.0.245
 b=AS:63
 m=video 5434 RTP/AVP 96
 c=IN IP4 172.31.0.245
 a=rtpmap:96 H263-2000/90000
 a=fmtp:96
 a=cliprect:0,0,144,176
 a=framesize:96 176-144
* On the N800, pop out the camera and run:
 $ ~/bin/rtpstream.sh 
assume on PATH, +x etc.
* On Linux box (note VLC runs on other platforms as well):
 $ vlc /tmp/n800.sdp
* Enjoy streaming video (and sound) from the N800.


Thanks to [http://web.media.mit.edu/%7Elifton/snippets/n800_to_sl/ Josh Lifton] for the original leg wor

On a N800, to make the image vertically flip automatically when the camera's pointing backwards (so it's not upside-down), change the source name from &quot;v4l2src&quot; to &quot;gconfv4l2src&quot;.

To adjust the video encoding quality, have a look at the parameters described by entering &quot;gst-inspect hantro4200enc&quot; at a shell prompt.  Setting the &quot;bit-rate&quot; parameter to its maximum (515) and the &quot;profile-and-level&quot; parameter to 1007 produces a much better quality image.  Also, I suspect the &quot;stream-type&quot; parameter should be &quot;5&quot; (H263), not &quot;1&quot; (MPEG4 Video).


== N900 ==

The instructions for the N900 are very similar to the N800.
First install gstreamer-tools.
&lt;syntaxhighlight lang=&quot;bash&quot;&gt;
$ apt-get install gstreamer-tools
&lt;/syntaxhighlight&gt;
To access the back camera use:
&lt;br&gt;''/dev/video0''
&lt;br&gt;for the front
&lt;br&gt;''/dev/video1''

In the example below the IP for the two devices are as follows
*PC IP 192.168.1.101
*N900 IP 192.168.1.105

On the N900 the command you want to run is:
&lt;syntaxhighlight lang=&quot;bash&quot;&gt;
gst-launch v4l2src device=/dev/video0 ! videoscale! video/x-raw-yuv,width=320,height=240 ! ffmpegcolorspace ! jpegenc ! tcpserversink host=192.168.1.101 port=5000
&lt;/syntaxhighlight&gt;

On the PC run
&lt;syntaxhighlight lang=&quot;bash&quot;&gt;
gst-launch tcpclientsrc host=192.168.1.105 port=5000  ! jpegdec ! autovideosink
&lt;/syntaxhighlight&gt;
The below also works
&lt;br&gt;'''N900'''
&lt;syntaxhighlight lang=&quot;bash&quot;&gt;
gst-launch v4l2camsrc device=/dev/video0 ! videoscale! video/x-raw-yuv,width=320,height=240 ! ffmpegcolorspace ! jpegenc ! tcpserversink host=192.168.1.101 port=5000
&lt;/syntaxhighlight&gt;
Another example using a different encoder/decoder and udp
&lt;br&gt;'''N900'''
&lt;syntaxhighlight lang=&quot;bash&quot;&gt;
gst-launch v4l2src device=/dev/video0 ! videoscale ! video/x-raw-yuv,width=320,height=240 
! ffmpegcolorspace ! smokeenc ! udpsink host=192.168.1.101 port=5000
&lt;/syntaxhighlight&gt;
&lt;br&gt;'''PC'''
&lt;syntaxhighlight lang=&quot;bash&quot;&gt;
gst-launch udpsrc port=5000 ! smokedec ! autovideosink
&lt;/syntaxhighlight&gt;
There are many ways to skin this particular cat. Recommendations are to look at [http://www.gstreamer.net/ gstreamer] and familiarise yourself.


To stream from the N900 to VLC follow these [http://blog.pclewis.com/2010/02/streaming-nokia-n900-camera-to-vlc/ instructions]


=== For the future ===
=====vloopback=====
http://talk.maemo.org/showthread.php?t=26288
http://tektipsentriks.blogspot.com/2010/05/how-to-install-vloopback-on-ubuntu.html

===Webcam threads===
http://talk.maemo.org/showthread.php?t=31567
http://talk.maemo.org/showthread.php?t=46046

===Flumotion mention===
http://talk.maemo.org/showthread.php?t=31567&amp;page=7
extras-devel 
http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_i386/flumotion/0.7.0.1-1maemo4/

== Streaming over ssh N900 ==

Here is an alternative way of streaming video on the [[Nokia N900|N900]] over ssh.

First get ssh to do X11 forwarding by installing xauth as follows:

# Install libxmuu1 (needed by xauth) by &quot;apt-get install libxmuu1&quot;
# Install the xauth from https://bugs.maemo.org/show_bug.cgi?id=2494

Now ssh to your N900 with the flag &quot;-X&quot; and then give the command:

  gst-launch-0.10 v4l2src \
  ! videoscale ! video/x-raw-yuv,width=320,height=240 \
  ! xvimagesink

A 320x240 video window should now popup on your desktop.

[[Category:Connectivity]]
[[Category:Media]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Streaming with MythTV</title>
    <id>1225</id>
    <revision>
      <id>41711</id>
      <timestamp>2011-02-08T14:48:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">The purpose of this small how-to is to guide you on setting up MythTV video player so that when you play videos with MythTV and watch them on your screen then they will also be streamed over your (wifi) network to your tablet the same time.

Obviously, this would mean that for every movie which you will play in MythTV the box will stream it to your network. Last time I checked my router didn't charge me for putting some more load on the
network so... I don't suppose you're watching movies 24/7, and even then, who cares, let the router handle it. Any MyhTV box should handle it with ease (specifically if it does tv capture card stuff)

== Requirements ==

A tablet running [[:Category:OS2008|OS2008]] with [http://maemo.org/packages/view/mplayer/ mplayer] is recommended, but it may work with the [[Nokia 770|770]].

=== MythTV box ===

# Any MythTV version should do.
# MythTV is connected to your LAN (the same LAN which the tablet will be connected to via WiFi)
# VLC software installed (apt-get install vlc on Debian/Ubuntu based distributions)

=== Tablet ===

mplayer installed.

== Instructions ==
&lt;ol&gt;
&lt;li&gt;Run MythTV&lt;/li&gt;
&lt;li&gt;Go to Utilities/Setup -&gt; Setup -&gt; Media Settings -&gt; Video Settings -&gt; Player Settings#&lt;/li&gt;
&lt;li&gt;Change the default player option from either &quot;Internal&quot; or the mplayer command &quot;&lt;code&gt;mplayer -fs -zoom -quiet %s&lt;/code&gt;&quot; to the following:&lt;pre&gt;/usr/bin/streamplayer&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Create the file &lt;code&gt;/usr/bin/streamplayer&lt;/code&gt;
&lt;li&gt;Insert the following code to it:
&lt;source lang=&quot;bash&quot;&gt;
#!/bin/bash
vlc &quot;$1&quot; --intf dummy --sout '#transcode{fps=25.0,height=320,width=240,vcodec=mp4v,vb=768,acodec=mpga,ab=128,channels=2}:standard{access=http,mux=asf,dst=:8080}' &amp;
mypid=$!
mplayer -fs -zoom -quiet &quot;$1&quot;
kill -9 $mypid
&lt;/source&gt;
&lt;/li&gt;
&lt;li&gt;Make the file executable:&lt;pre&gt;chmod +x /usr/bin/streamplayer&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;That's all! Now play a movie in MythTV, go to your tablet and fire up mplayer with the following arguments from console:&lt;pre&gt;mplayer -aspect 16:9 http://ip-of-your-mythtv-server-:8080&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Watch the movie and enjoy! :-)&lt;/li&gt;
&lt;/ol&gt;

[[Category:Connectivity]]
[[Category:Media]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Style guide of Maemo wiki</title>
    <id>2845</id>
    <revision>
      <id>28159</id>
      <timestamp>2010-02-02T16:32:58Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Contributing to the wiki]]</comment>
      <text xml:space="preserve">#REDIRECT [[Contributing to the wiki]]</text>
    </revision>
  </page>
  <page>
    <title>Subversion</title>
    <id>170</id>
    <revision>
      <id>29799</id>
      <timestamp>2010-02-19T10:09:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>Garage link</comment>
      <text xml:space="preserve">Subversion is a source code management tool which is widely by free and open source software projects, on [[Getting started with Maemo Garage|Garage]] for example. You can find more information on [http://subversion.tigris.org the Subversion website] and [http://svnbook.red-bean.com the Subversion manual].

Subversion is used by the Maemo projects for community projects, and formerly for Maemo Platform components which were housed on the server called [http://stage.maemo.org/svn/maemo Stage].

== Server move ==

In December 2009 and January 2010, a number of faster servers were installed for Maemo, and both Nokia and community projects were moved from one repository to another.

The SVN server on [http://garage.maemo.org/svn Garage] was moved to a new server [http://vcs.maemo.org/svn VCS]. For developers who have already got a working copy with local changes who wish to relocate to the new server, you can do so with the following command:

 svn switch --relocate https://garage.maemo.org/svn/&lt;project name&gt; 
                       https://vcs.maemo.org/svn/&lt;project name&gt;

The SVN server on [http://stage.maemo.org/svn Stage] is being migrated to [http://maemo.gitorious.org Gitorious]. The easiest way to migrate from svn to git is to generate a local diff for old modules
 svn diff &gt; local_changes.patch

and to obtain the project from gitorious with a fresh clone, before re-applying your changes using 

 patch -p0 &lt; local_changes.patch

in the freshly checked out copy. 

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Swap on microSD</title>
    <id>3930</id>
    <revision>
      <id>48777</id>
      <timestamp>2012-07-19T19:53:38Z</timestamp>
      <contributor>
        <ip>78.148.139.214</ip>
      </contributor>
      <comment>/* Script */</comment>
      <text xml:space="preserve">==Swap==

[[:wikipedia:Paging|Swap]] is a virtual memory which runs off storage devices (HDD, SSD, eMMC, microSD...). It is in a form of a file on a drive (currently this method does not work on [[Open development/Maemo roadmap/Fremantle|Maemo 5]]) or as a seperate partition (this is actually a better method). Its advantages are that it expands available memory, but it is of course very slow compared to thousand times faster RAM and is therefore used by the system to drop off data which is currently not needed. That means that you can run many programs at once, but they will be running slowly. Virtually every desktop OS does that (for example Windows has page file).

Enabling additional swap is not needed on the [[Nokia N900|N900]] for expanding available memory, because it has already 256 MB of RAM and 768 MB of swap space on internal 32 GB eMMC module, resulting in 1 GB of total available memory, which is enough for a device like that. It does however help to offload the work from internal eMMC if there is additional swap space enabled on microSD, because kernel uses both swap partitions and is therefore swapping bandwidth increased which results in higher performance.

==Swappiness==

[http://kerneltrap.org/node/3000 Swappiness] is a kernel parameter which tells it how aggressively to swap. The more aggressive it is, more RAM is freed, but there is a performance impact, because more data needs to be swapped (written to the slower drive). Swappiness value is between 0 and 100 with 100 being the least aggressive. [[Open development/Maemo roadmap/Diablo|Maemo 4]] had swappiness set to 1 by default while Maemo 5 sets it to 100. The best value is somewhere in between. 256 MB of N900's RAM is enough for a few open programs and there is also enhanced battery life because eMMC doesn't need to write so much swap data. So swappiness should be set somewhere between 30 and 50. It is set with the following command which has to be [[root access|run as root]].

 echo 30 &gt; /proc/sys/vm/swappiness

You can set swappiness at each boot automatically by using a [[startup script]].

(EDIT by egoshin):  

In case of N900 you should check that with lower swappiness values you still have an acceptable time of answering calls by phone application. With lower swappiness your N900 more likely meet the situation then there is no enough memory to load phone application for incoming calls - kernel needs to swap-out some applications and you may miss a call. Maximum swap-out speed is around 18 MBytes/sec into eMMC.

With maximum swappiness the kernel just discards the memory pages of some applications because it is already in swap space and cut a time. I believe it is a reason why Nokia set 100 by default for swappiness.

(EDIT by eero):

The situation will also change after a while because swap becomes fragmented (parts of processes' memory are spread all over swap in little pieces).  I.e. testing the speed only for few hours after boot isn't enough, new setting needs to be tested for several days.

==Swap Fragmentation==

Swap fragmentation starts to occur, when total number of megabytes written during swap's life time exceed it's maximum size. Until that, swap is written in purely sequential manner (blocks that are no longer needed, are marked as free, but never used) - however, after reaching end of swap space, previously used (freed) blocks are rewritten, using new content. This means no longer writing sequentially, causing massive slowdowns, to already slow (compared to RAM) swap. A workaround to this is to disable and enable swap again - linuxswap filesystem content doesn't live through restarts, and once re-enabled, is written sequentially again. 

Swapping, Disabling and Re-enabling swap spaces can take upto a few minutes.

Information about your current swap spaces can be found by entering
 cat /proc/swaps
in a [[Terminal]]

===Solutions to Fragmentation===

====Script====

Moved to [[Talk:Swap_on_microSD]]
Options currently in discussion.

====Ereswap====
An application [[Ereswap]] is available.
This application as well as checking for defragmention and refreshing swap, also edits /etc/event.d/rcS-late.
This edit makes sure your primary swap partition on the Micro SD is available during booting.
More information is available on the [[Ereswap]] wiki

==Configure microSD card for swapping==

The microSD card must be split into at least 2 partitions. The first one should be FAT32 (vfat) formatted and the second one must be formatted for linux swap (type 82) and about 384 MB in size. You can change the size of it, but this value should be suitable for most people.

You can repartition and reformat the card with standard Linux tools from the N900 [[terminal]], but the easiest way is to connect the device in mass storage mode to a Linux machine (which can also be a virtual machine if you use other OS as your primary one) and you can do the partitioning with GUI tools.

==Using microSD partition as swap==

Reboot after the repartitioning and after the boot, this is seen in &lt;code&gt;/dev&lt;/code&gt;.

* &lt;code&gt;/dev/mmcblk0&lt;/code&gt; (internal eMMC itself)
* &lt;code&gt;/dev/mmcblk0p1&lt;/code&gt; (27 GB partition mounted on &lt;code&gt;/home/user/MyDocs&lt;/code&gt;)
* &lt;code&gt;/dev/mmcblk0p2&lt;/code&gt; (2 GB partition mounted on &lt;code&gt;/home&lt;/code&gt;)
* &lt;code&gt;/dev/mmcblk0p3&lt;/code&gt; (768 MB swap partition on eMMC)
* &lt;code&gt;/dev/mmcblk1&lt;/code&gt; (microSD itself)
* &lt;code&gt;/dev/mmcblk1p1&lt;/code&gt; (FAT32 partition on your microSD mounted on &lt;code&gt;/media/mmc1&lt;/code&gt;)
* &lt;code&gt;/dev/mmcblk1p2&lt;/code&gt; (swap partition on your microSD)

# '''mmc''' part defines type of storage device
# '''blk'''X defines number of storage device (0 is internal eMMC, 1 is microSD)
# '''p'''Y defines partition number

The swap partitions are not activated, but you can enable swapping on microSD partition with:

 swapon /dev/mmcblk1p2

If you have repartitioned microSD differently you have to change the partition number accordingly. The last part is setting the swapon command to run at every boot and you can do that with a [[startup script]].

There is an additional warning and that is that while the device is running and swap is turned on on microSD partition, you shouldn't take the card out. It would be the same as taking out a RAM stick while running.

==Swap priorities==

In order to utilize both swap partitions to balance the I/O load (striping), they should have the same priority. The &lt;code&gt;/bin/swapon&lt;/code&gt; command shipped with Maemo is the busybox version that does not support &lt;code&gt;-p&lt;/code&gt; option. If you don't have Easy Debian environment installed, download the stock Debian mount package for the armel architecture and extract (&lt;code&gt;-x&lt;/code&gt;) the swapon binary from it, and copy it somewhere e.g. &lt;code&gt;/sbin/swapon.debian&lt;/code&gt;.

It seems that it's not possible to use &lt;code&gt;-p -1&lt;/code&gt; to match the priority of the default eMMC swap partition. I use the following trick:

# activate the microSD swap: &lt;code&gt;swapon.debian -p 0 /dev/mmcblk1p2&lt;/code&gt;
# temporarily deactivate the eMMC swap: &lt;code&gt;swapoff /dev/mmcblk0p3&lt;/code&gt;
# activate it again with matching priority: &lt;code&gt;swapon.debian -p 0 /dev/mmcblk0p3&lt;/code&gt;

After that your swaps should look like this:

&lt;pre&gt;
/home/user # cat /proc/swaps
Filename				Type		Size	Used	Priority
/dev/mmcblk0p3                          partition	786424	65464	0
/dev/mmcblk1p2                          partition	393272	97908	0
&lt;/pre&gt;

Depending on the performance of your microSD card, your N900 might now feel much faster when swapping takes place, about the same, or even slower - YMMV. My N900 definitely seems to have less those total I/O trashing episodes lasting 5-10 minutes, where you might think your N900 just died, after doing heavy I/O (e.g. download a 100 MB podcast with gPodder) after activating this dual-swap scheme. 

Note: In my testing my N900 crashed when I tried to fill the VFAT data partition on the microSD with something like &lt;code&gt;dd&lt;/code&gt; from &lt;code&gt;/dev/null&lt;/code&gt; to a file. It's propably best to dedicate the whole microSD card for swap, if possible.

[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Swappolube</title>
    <id>4471</id>
    <revision>
      <id>45942</id>
      <timestamp>2011-12-06T16:39:01Z</timestamp>
      <contributor>
        <ip>85.23.163.231</ip>
      </contributor>
      <comment>/* Laptop Mode */</comment>
      <text xml:space="preserve">The SWAPPOLUBE is a user interface to the configuration of several parameters of the [[Nokia N900|N900]] kernel with the aim to make it faster. 

It provides the ability to change a number of parameters while in operation and if chosen will make them persistent by adding a script to event.d to set them after each boot.

It has been created with PyQT (PyQt v4.7.5 for Python v2.6) and the functionality is provided by Python.

The configuration options have been discussed in (at least) two talk.maemo.org threads:
[http://talk.maemo.org/showthread.php?p=815333 &quot;How to set swappiness&quot;] and 
[http://talk.maemo.org/showthread.php?t=62312 &quot;Swappolube to lubricate your gui&quot;].

==Installation==

The application can be installed directly by the Application Manager (HAM) from the [[Extras]] repositories (check [http://maemo.org/packages/view/swappolube/ here] for its status).  

You can also find the latest version in the [https://garage.maemo.org/projects/swappolube/ garage project page].

===Dependencies===

The editor depends on:

* python2.5
* python2.5-qt4-gui
* python2.5-qt4-core 
* python2.5-qt4-maemo5

==Usage==

When the application loads it reads and displays the current configuration and the options already used by the system and displays them in the appropriate sections of the GUI.

===Main configuration===

* The first row of checkboxes is to enable the setting. 
**If unchecked it will not write anything for that option.

* The second row can offer either string entry or a checkbox.
** String: is an integer value up to 4 digits.
** Checkbox: if checked will propagate a &quot;1&quot;, if not checked it will be a &quot;0&quot; , i.e. set True or False for this option.

[[Image:swappolubeMain.png|400px|Main View]] 

The centre part of the UI is a scrollable list. 
Scrolling to the bottom will show all available options as well as the button to store a custom version of the settings.

[[Image:swappolubeMain2.png|400px]] 

''note'': since version [[Swappolube#1.4-1|1.4]] the application supports rotation depending the orientation of the device.

[[Image:swappolubeMain_rotated.png|280px|Main View - rotated]]
[[Image:swappolubeMain2_rotated.png|280px]] 

====Current Button====
 
Pressing the &quot;Current&quot; button will read and display the current configuration the system uses.
 
[[Image:swappolubeMain_current.png|300px]]
 
====Proposed Button====
 
[[Image:swappolubeMain_proposed.png|300px]]

====Custom Button====
 
[[Image:swappolubeMain_custom.png|300px]]

===Drop down menu===
 
The drop down menu, aka Menubar, will offer the following options:
* Button: '''Delete Tuning File''' (will appear only if a tuning file exists)
* Button: '''Restore Default Values'''
* Button: '''Add PowerKey entry''' or '''Remove PowerKey entry''' 
* Button: '''About''' 
* Button: '''Quit'''
 
[[Image:swappolubeDropdown.png|400px]]
[[Image:swappolubeDropdown2.png|400px]]

If a tuning file exists, the option to delete it will appear:

[[Image:swappolubeDropdown3.png|400px]]

Adding a application start button in the Power key menu entry:

[[Image:swappolubePowerKeyMenu.png|400px]]

===Popup Menu===
 
Several popups inform the user on the action taken.
 
====New Config Applied====
 
[[Image:swappolube_newConfigApplied.png|300px]]
 
====New Config Created====
 
[[Image:swappolube_newConfigCreated.png|300px]]
 
====Delete Tuning File====
 
[[Image:swappolube_deleteTuning.png|300px]]
 
===About===

In the about window one can find the version of the application running as well as buttons to connect to additional documentation 
(like all the rest of the windows it supports rotation).
 
[[Image:swappolube_about1.png|280px]]
[[Image:swappolube_about2.png|280px]]

==Explanation of options==

Here is a short description of settings and the actual commands that will be used to set them. A further reading is suggested to understand better the implications involved and finding the appropriate values for your type of use of the device.

===Swappiness===

* Description: The swappiness parameter controls the tendency of the kernel to move processes out of physical memory and onto the swap disk. Because disks are much slower than RAM, this can lead to slower response times for system and applications if processes are too aggressively moved out of memory. [https://help.ubuntu.com/community/SwapFaq]
* Default: &quot;100&quot;
* Suggested: &quot;30&quot;
* Code:&lt;pre&gt;echo &quot;30&quot; &gt; /proc/sys/vm/swappiness&lt;/pre&gt;

===Page Cluster===

* Description: page-cluster controls the number of pages which are written to swap in a single attempt. The swap I/O size.It is a logarithmic value - setting it to zero means &quot;1 page&quot;, setting it to 1 means &quot;2 pages&quot;, setting it to 2 means &quot;4 pages&quot;, etc. The default value is three (eight pages at a time). There may be some small benefits in tuning this to a different value if your workload is swap-intensive. [http://www.linuxinsight.com/proc_sys_vm_page_cluster.html]
* Default: &quot;5&quot;
* Suggested: &quot;0&quot;
* Code: &lt;pre&gt;echo &quot;0&quot; &gt; /proc/sys/vm/page-cluster&lt;/pre&gt;

===Laptop Mode===

* Description: When the value for laptop_mode is set to be something other than zero, any physical disk I/O (that might have caused the hard disk to spin up, see &lt;code&gt;/proc/sys/vm/block_dump&lt;/code&gt;) causes Linux to flush all dirty blocks after the value in seconds. The result of this is that after a disk has spun down, it will not be spun up anymore to write dirty blocks, because those blocks had already been written immediately after the most recent read operation. The value of the laptop_mode knob determines the time between the occurrence of disk I/O and when the flush is triggered. A sensible value for the knob is 5 seconds. Setting the knob to 0 disables laptop mode. Since this mode has been designed with mechanical hard drives in mind to maximize the time between spin-ups that the flash memory in a cellphone does not need to worry itself with, it might actually be better to set this to zero.
* Default: &quot;0&quot;
* Suggested: &quot;1&quot;
* Code: &lt;pre&gt;echo &quot;1&quot; &gt; /proc/sys/vm/laptop_mode&lt;/pre&gt;

===oom_kill_allocating_task===

* Description: This enables or disables killing the OOM-triggering task in out-of-memory situations. If this is set to zero, the OOM killer will scan through the entire tasklist and select a task based on heuristics to kill. This normally selects a rogue memory-hogging task that frees up a large amount of memory when killed. If this is set to non-zero, the OOM killer simply kills the task that triggered the out-of-memory condition. This avoids the expensive tasklist scan and the potential randomness of the task that the manager picked to kill. If panic_on_oom is selected, it takes precedence over whatever value is used in oom_kill_allocating_task. Taken from: [http://www.linuxinsight.com/proc_sys_vm_oom_kill_allocating_task.html]
* Default: &quot;0&quot;
* Suggested: &quot;1&quot;
* Code: &lt;pre&gt;echo &quot;1&quot; &gt; /proc/sys/vm/oom_kill_allocating_task&lt;/pre&gt;

===dirty_expire_centisecs===

* Description: This tunable is used to define when dirty data is old enough to be eligible for writeout by the pdflush daemons. It is expressed in 100'ths of a second. Data which has been dirty in memory for longer than this interval will be written out next time a pdflush daemon wakes up. [http://www.linuxinsight.com/proc_sys_vm_dirty_expire_centisecs.html]
* Default: &quot;500&quot;
* Suggested: &quot;0&quot;
* Code: &lt;pre&gt;echo &quot;0&quot; &gt; /proc/sys/vm/dirty_expire_centisecs&lt;/pre&gt;

===dirty_writeback_centisecs===

* Description: The pdflush writeback daemons will periodically wake up and write &quot;old&quot; data out to disk. This tunable expresses the interval between those wakeups, in 100'ths of a second. Setting this to zero disables periodic writeback altogether. [http://www.linuxinsight.com/proc_sys_vm_dirty_writeback_centisecs.html]
* Default: &quot;500&quot;
* Suggested: &quot;0&quot;
* Code: &lt;pre&gt;echo &quot;0&quot; &gt; /proc/sys/vm/dirty_writeback_centisecs&lt;/pre&gt;

===dirty_background_ratio===

* Description: Contains, as a percentage of total system memory, the number of pages at which the pdflush background writeback daemon will start writing out dirty data. [http://www.linuxinsight.com/proc_sys_vm_dirty_background_ratio.html]
* Default: &quot;10&quot;
* Suggested: &quot;60&quot;
* Code: &lt;pre&gt;echo &quot;60&quot; &gt; /proc/sys/vm/dirty_background_ratio&lt;/pre&gt;

===dirty_ratio===

* Description: Contains, as a percentage of total system memory, the number of pages at which a process which is generating disk writes will itself start writing out dirty data. [http://www.linuxinsight.com/proc_sys_vm_dirty_ratio.html]
* Default: &quot;40&quot;
* Suggested: &quot;95&quot;
* Code: &lt;pre&gt;echo &quot;95&quot; &gt; /proc/sys/vm/dirty_ratio&lt;/pre&gt;

===tcp_timestamps===

* Description: Enable timestamps as defined in RFC1323. [http://www.linuxinsight.com/proc_sys_net_ipv4_tcp_timestamps.html] Turning off TCP timestamps can be counterproductive, since timestamps are used to estimate data packet round-trip times and transmission timeouts. Disabling RFC1323 timestamps may then result in poor performance in conditions of frequent packet losses. The Swappolube suggested default is to turn them off, but it may not in fact be optimal.
* Default: &quot;1&quot;
* Suggested: &quot;0&quot;
* Code: &lt;pre&gt;echo &quot;0&quot; &gt; /proc/sys/net/ipv4/tcp_timestamps&lt;/pre&gt;

===tcp_no_metrics_save===

* Description: Normally, TCP will remember some characteristics about the last connection in the flow cache. If tcp_no_metrics_save is set, then it doesn't. Useful for benchmarks or other tests. [http://www.linuxinsight.com/proc_sys_net_ipv4_tcp_no_metrics_save.html]
* Default: &quot;0&quot;
* Suggested: &quot;1&quot;
* Code: &lt;pre&gt;echo &quot;1&quot; &gt; /proc/sys/net/ipv4/tcp_no_metrics_save&lt;/pre&gt;

===VFS Cache Pressure===

* Description: Controls the tendency of the kernel to reclaim the memory which is used for caching of directory and inode objects. At the default value of vfs_cache_pressure = 100 the kernel will attempt to reclaim dentries and inodes at a &quot;fair&quot; rate with respect to pagecache and swapcache reclaim. Decreasing vfs_cache_pressure causes the kernel to prefer to retain dentry and inode caches. Increasing vfs_cache_pressure beyond 100 causes the kernel to prefer to reclaim dentries and inodes.
* Default: &quot;100&quot;
* Suggested: &quot;100&quot; (in search)
* Code: &lt;pre&gt;echo &quot;100&quot; &gt; /proc/sys/vm/vfs_cache_pressure&lt;/pre&gt;

==Versions==

===1.4-2  ([http://maemo.org/downloads/product/Maemo5/swappolube/ stable version])===

====Changelog====
* Modification of the UI to expand on all the available screen estate.

====Issues====

* none known/reported.

===1.4-1===

====Changelog====
* Modifications in the postrm and the postinstall script.
* Installation triggers compilation of the code and removal of not needed files.
* Added simple file to start the UI.
* Modification of the UI to support rotation.

===1.1-6===

====Changelog====
* Added a dynamic button in the application menu to add/remove the entry in the Power Key menu.
* Modified the application menu entry for deleting the tuning file to appear only when file exists.
* Added a postrm script to remove settings made by the application when uninstalled.
* Added new entries in the update script.
* Renamed a few files and methods to have understandable descriptions.

===1.1-3===

====Changelog====

* Added new options to support modifications for interactivity improvement under high I/O load (as discussed in [http://talk.maemo.org/showthread.php?t=69973 this maemo talk] thread).
* Changes in the postinstall script to compile the code.

===1.0-1===

====Changelog====

* Added new option to store and display a custom configuration.
* Several GUI improvements (buttons moved to the left, description includes default values, ...).
* Clean-up of code; better naming of variables.
* Changes in the postinstall script to include the custom settings file.
* Bump version number - the application is now feature complete.

===0.4-1===

====Changelog====

* Restructure of the GUI to have a scrollable list and the buttons on the right.
* Added better information messages on several actions.

===0.3-4 ===

====Changelog====

* Added signals to show only the enabled options.
* Added better information messages on several actions.
* Added check if the Delete Tuning option really deleted the file.

===0.3-3===

====Changelog====

* Fix typo in the About window.

===0.3-2===

====Changelog====

* Added new menu button to restore default values.
* Code cleanup and some better comments.
* New About window with connection to the wiki page and rotation support.
* Removed Credits window (it is included in the About).
* Some small UI beatifications and better ordering of the entry fields.

===0.3-1===

====Changelog====
 
* Removed indirect dependency to the rootsh package (i.e. root command).
* Update in sudoers.
* Added new script to update, store and delete the configuration values.
* Restricted privileges of companion files.

====Issues====

* none known/reported.

===0.2.0-3===

====Changelog====
 
* Fix in the update of the VFSCachePressure value. Previous version did not store this correctly.
* Fix in the reading of values from the system. A hiden linebreak (shown as space) was added in all values after hitting &quot;Current&quot; which blocked their later update.

====Issues====

* depends indirectly on rootsh package.

===0.2.0-2===

====Changelog====

* Change of the Laptop Mode setting to string.
* Updated description.
* Some UI changes - beautifications.

===0.2.0-1===

====Changelog==== 

* Added two new buttons (current &amp; proposed) to set the settings in the GUI. 
* Added icons for the application manager and the desktop.
* Many code changes/splits in methods.
* Added several protections when handling updates.
* Fixed in GUI directional errors.
* Constrained the entry values to 4 digits.

===0.1.0-8===

====Changelog==== 

* New button to update the settings. 
* Transformed several fields from boolean to strings.

''NOTE:'' For older versions please see the changelogs in the [https://garage.maemo.org/projects/swappolube/ project's garage page]

==Future Development==

''Note'': Just add your thoughts (username)..
* &lt;strike&gt;Read the current configuration stored in the tuning script and automatically display it.&lt;/strike&gt;
* &lt;strike&gt;Provide a button to show the default configuration.&lt;/strike&gt;
* &lt;strike&gt;Store/Read the configuration from a file (easy for sharing).&lt;/strike&gt;

==Swappolube-nogui==

For those who don't want to tinker too much with kernel parameters, the package swappolube-nogui provides a fixed tuning profile &quot;known to work&quot;.
Kernel parameters are modified at installation time, and the modification persist at the next boots. Package removal reverts parameters to the default values.
The swappolube-nogui package conflicts with the swappolube package because both use the same script /etc/event.d/tuning for persistence. The common application managers should prompt for removal of one when trying to install the other.

* [http://maemo.org/packages/view/swappolube-nogui/ swappolube-nogui package status]   
* [https://garage.maemo.org/projects/swappolube/ Garage project page].

==License==

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 only.

==Disclaimer==

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

[[Category:Software]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Switching Off Fit Width To View</title>
    <id>1877</id>
    <revision>
      <id>28920</id>
      <timestamp>2010-02-11T14:25:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify, categorise</comment>
      <text xml:space="preserve">== Web pages slow and distorted on your Nokia tablet? Try switching off Fit Width To View ==

An enthusiastic [[Nokia N800|N800]] user was annoyed by how badly and slowly their tablet rendered a particular website. They said it took ages to load the page even on a broadband connection, and when it loaded it looked absolutely awful with graphics distorted and all in the wrong place. The odd thing was that other tablet users who went to the same site found that it loaded very quickly and just like it would through a PC browser. Clearly something was amiss.

Then someone suggested that the browser's &quot;Fit Width To View&quot; option might be responsible, and the mystery was solved.

It seems that although the &quot;Fit Width To View&quot; option is meant to make pages fit the window better, it can occasionally completely ruin the way certain sites look, and severely slow down how quickly they load too.

If you find that your Nokia tablet's browser is displaying pages far too slowly and distorting them strangely, you might want to try switching off Fit Width To View.


=== How to switch off Fit Width To View ===

Here's how to switch it off:

# Open a new browser window.
# Click on the magnifying glass in the bottom right corner.
# Un-tick the Fit Width To View option.

...and then close the browser.

Open a new browser window, try going to the sites that you had problems with and see if they are any better.

If you ever want to switch Fit Width To View back on again, just repeat the above process and tick it instead of unticking it.

[[Category:N8x0]]
[[Category:OS2008]]</text>
    </revision>
  </page>
  <page>
    <title>Sync</title>
    <id>2747</id>
    <revision>
      <id>45319</id>
      <timestamp>2011-09-14T14:43:07Z</timestamp>
      <contributor>
        <username>ymb</username>
        <id>1216</id>
      </contributor>
      <minor/>
      <comment>/* Configuration */</comment>
      <text xml:space="preserve">This page will describe how to ''synchronize'' data on Maemo devices with other devices, services and desktop applications.

==N900==
=== Erminig ===
For synchronising one or more accounts' Google Calendars to multiple calendars on the N900, [http://maemo.org/packages/view/erminig/ Erminig] can be used.

* Erminig is still under development and only available in Extras-devel.  
: See [[http://talk.maemo.org/showpost.php?p=659567&amp;postcount=310 this post]] for a brief explanation of the naming challenge
: Backup your local calendars before proceeding. 
: Backups of your Google Calendars can be made by Setting -&gt; Export calendars.

When first synchronising, one should perhaps start with only the remote or the local calendar populated with events. Otherwise entries will get duplicated or might get lost. To empty the built-in calendar use Settings -&gt; Edit Calendars, select the appropriate calendar (default calendar is called N900), Delete on the next screen. (For the &quot;N900&quot; calendar you have to confirm that it can not be deleted but that you wish to delete all content instead.)

'''NOTE:''' Erminig only synchronises the calendar entries and does ''not'' sync tasks (follow links from [[http://talk.maemo.org/showpost.php?p=573893&amp;postcount=261 this post]]. Recently Google has announced an API.

==== Configuration ====
First you should add all the Google Accounts you wish to sync with by:
# Open ''Settings &gt; Google Accounts''
# Add each Google account with your Google ''username'' i.e john.smith@gmail.com or john.smith@example.com if the account is a Google Apps domain.
To configure the synchronisation settings:
# Click the '+' button in the toolbar to add a synchronisation between a remote calendar and a local one.
# Click the individual or all sync buttons.
You can see an slightly old version of the UI, and what the buttons do here: http://imgur.com/pwbKi.png

==== Sync frequency ====
Erminig's UI allows the specification of a ''single'' daily sync at a specified time. 
For more fine grained control, the command &lt;code&gt;erminig -a&lt;/code&gt; can be used with a scheduler such as [http://maemo.org/packages/view/alarmed/ Alarmed].

=== ActiveSync ===

If you want to sync with an Exchange server, ActiveSync (called [[Mail for Exchange]] or MfE by Nokia) can be used. You can more or less follow the instructions for [http://www.google.com/support/mobile/bin/answer.py?hl=en&amp;answer=147951 S60 on Google Sync] with the N900. In the Settings dialog, open &quot;Mail for Exchange&quot;, and follow the instructions on that webpage.

* [[Mail for Exchange | MfE]] for Google Sync is not officially supported. It still works on some occasions but it is unreliable.

==== Synchronising with Google ====

Although synchronising contacts with Gmail is not officially supported ([http://talk.maemo.org/showthread.php?t=35136 this discussion] has more details), it is possible, and has been reported to work for many people.

The [http://www.google.com/support/mobile/bin/answer.py?hl=en&amp;answer=147951 instructions for S60 sync] on Google Sync work, and give the settings you need to use for MfE on the N900.

''FIXME: Needs screenshots''

# In the Settings application, select &quot;Mail for Exchange&quot;.
# In the Credential screen of the wizard, enter your Gmail username as both your username and email address, your Google password, and leave the Domain empty.
# In Server settings, set the server to m.google.com, and leave the defaults for secure connection and port.
# In the following screen you can select contacts and calendar, and this will sync one of your Google calendars (the first) and your contacts, and you can set the frequency of synchronisation.

''Note:'' If MfE synchronisation fails, try removing all items from your N900 calendar and contacts and do a complete resync sync again. After that you can sync like normal but do not add or edit more then 5 contacts between syncs.

''Note:'' according to the Google Calendar and Contacts Sync [http://talk.maemo.org/showthread.php?t=31315&amp;page=8 thread], the NuevaSync service is apparently [http://wiki.nuevasync.com/wiki/bin/view/Public/maemoConfiguration easy to set up] and use for Google Contacts and Calendar Sync, however it is no longer free.

''Note:'' also try [http://www.google.com/support/forum/p/Google+Mobile/thread?tid=056294b3ae70852e&amp;hl=en this link] for N900 and Maemo5

=== SyncML ===

====Bluetooth / USB (native support)====

The N900 provides SyncML over Bluetooth and USB but not IP.

You can synchronize your contacts from:

* Other devices (confirmed to work with most N- and E-series phones). When Contacts or Calendar application is started for the first time it automatically suggests data import.
* PC Suite
* iSync (for Mac). You can download iSync plug-in from Nokia's support webpage.

==== HTTP support (using syncevolution)====

=====Installation=====

[[Image:Syncevolution-frontend_icon.png|thumb|left|alt=Logo|SyncEvolution logo]]

*''syncevolution itself:'' Syncevolution itself is a command line application which allows you to '''synchronize contacts and calendar entries (this includes also tasks and notes) against a SyncML server'''. You can install syncevolution using the application manager. Please note that the [[Extras-testing]] repository has to be enabled. If you use and test the program feel free to [http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/syncevolution/1.1.1-1// vote for the current version].
[[Image:Syncevolution_gui_main_screen_account.png|200px|thumb|Syncevolution frontend]]
*''GUI for syncevolution and syncevolution itself:'' For maemo there is also available a smart graphical user interface called syncevolution frontend. You can install syncevolution-frontend it using the application manager. Please note that the [[extras-devel]] repository has to be enabled.

=====Usage=====

* [[/Usage of syncevolution|Usage of syncevolution]] (command line version)
* [[/Usage of syncevolution#Syncevolution-Frontend|Usage of syncevolution-frontend]]

=====Further information=====

Syncevolution ([http://syncevolution.org/ official homepage]) also is available for [http://moblin.org/ Moblin] and therefore it also will be available for [http://meego.com/ MeeGo]. You can report bugs (also regarding the Maemo version) in [http://bugzilla.moblin.org/ moblin's bugtracker].

=== Desktop sync ===

==== Syncing with a Mac ====

=====Using Google (contacts and calendar)=====

Syncing contacts with a Mac can also be done via Google Mail. In-depth instructions can be found [http://www.macsthatwork.com/blog/2009/12/syncing-n900-with-mac-definitive-guide.html here]. After obtaining a Gmail and Google Calendar account, you can synchronise your Mac contacts with Google by [http://lifehacker.com/393855/enable-google-contact-sync-without-an-iphone-or-ipod-touch following these instructions]. Then to synchronise calendar and contacts to your N900 from Google, follow the instructions in the [[#Synchronising with Google|Google sync section]] of this page

=====Using Funambol server or other SyncML providers (contacts only)=====

If you are using syncevolution to synchronize your data using SyncML against a SyncML provider (as described [[#HTTP support (using syncevolution)|here]]) you can use the [https://www.forge.funambol.org/download/#desktop Funambol desktop client for MacOS ] to synchronize your contacts from your Mac to the same SyncML provider.

====Syncing with a Windows Desktop====

If you are using MS Outlook you can use the [https://www.forge.funambol.org/download/#desktop Funambol Outlook plugin] to synchronize your data against a SyncML provider (as described [[#HTTP support (using syncevolution)|here]]).

====Syncing with a Linux Desktop====

Some users have success with [http://syncevolution.org/ SyncEvolution] but some users find a BT [http://www.mail-archive.com/syncevolution@syncevolution.org/msg01605.html bug] that Nokia needs to [http://www.mail-archive.com/syncevolution@syncevolution.org/msg01605.html fix] or release information to create a workaround when trying to sync from the Linux machine to the phone.

Other option is to sync via application Sync on desktop, using Funambol,Google,Memotoo,Mobical or ScheduleWorld with built-in Mail for Exchange.

===Other Sync Solutions===
====Notes / Personal Wiki (using conboy and tomboy)====
Conboy is a personal notes application for Maemo which allows to sync notes versus one.ubuntu.com.

====Files (using Conduit)====
Users have reported success using Conduit to sync files from their Linux machine to the N900.

====Browser history, bookmarks, passwords, history and settings (using Mozilla Firefox and Sync Plugin))====

==== Calendar database ====

{{main|Calendar database}}

The calendar database on the N900 is stored in an SQLite database.

==N8x0==

===GPE===

[http://gpe.linuxtogo.org/ GPE] is a suite of applications that was ported to Maemo. Search for GPE in the [http://downloads.maemo.org downloads section] for your version of Maemo. (You'll probably want GPE Calendar, GPE Contacts, gpesyncd to start with.)
These are standalone applications, there's no integration with the Maemo address book. You'll not find data from GPE in the Mail client or Chat.
It should be possible to sync GPE directly with a Funambol server using msynctool (now osynctool).

===SyncML===

[http://maemo.org/downloads/product/OS2008/syncevolution SyncEvolution] provides support for SyncML via http. This means you can sync against services like [http://www.scheduleworld.com/ Scheduleworld] or [http://my.funambol.com/ MyFunambol] on the web (more services [http://syncevolution.org/documentation/compatibility listed here]), but you can not use it to sync directly via USB or bluetooth.

The advantage of SyncEvolution is that it syncs directly to the main system database on your device, which means: phone numbers are available from the internet call application, email addresses are visible in Modest etc. Unfortunately, the latest version 0.9 is not yet available for Maemo, so you have to be content with 0.8 which lacks a graphical user interface and Google integration.

When you use SyncEvolution, you'll want a more advanced contacts application to display information like postal address or birthday. This information is synced to your device but remains invisible in the Maemo Contacts-application. [http://www.pimlico-project.org/contacts.html Pimlico Contacts], though no longer maintained, is a working application to let you view and edit all fields. (Be warned: Pimlico contacts isn't properly hildonized and lacks a few icons. It really looks a mess, but it works.)

[[Category:Users]]
[[Category:Power users]]
[[Category:Software]]
[[Category:Calendar]]
[[Category:N900]]
[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>Sync/Usage of syncevolution</title>
    <id>3915</id>
    <revision>
      <id>47721</id>
      <timestamp>2012-05-28T11:42:12Z</timestamp>
      <contributor>
        <username>ayers</username>
        <id>5243</id>
      </contributor>
      <minor/>
      <comment>Group Office: Fix c&amp;p typo in urls</comment>
      <text xml:space="preserve">==syncevolution (command line version)==
You can configure [http://maemo.org/packages/view/syncevolution/ syncevolution] using config files.
''(feel free to add more information)''

===Services syncevolution is tested with===
Please feel free to add more working services in this section.
====scheduleworld====
To configure syncevolution for a scheduleworld account you have to enter the following (as user!):
 syncevolution -c scheduleworld
After this the N900's addressbook and default calendar (including events, tasks and notes) are ready to synchronize. The default setting for these sources are &quot;two-way-sync&quot;. If you wish to change this please read and edit the files:

 /home/user/.config/syncevolution/scheduleworld/sources/addressbook/config.ini
 /home/user/.config/syncevolution/scheduleworld/sources/calender/config.ini
 /home/user/.config/syncevolution/scheduleworld/sources/todo/config.ini
 /home/user/.config/syncevolution/scheduleworld/sources/memo/config.ini

You also could switch to other calendars available on you N900. For details also have a look into the config files. The needed sync sources you can search using the command &lt;code&gt;syncevolution&lt;/code&gt; as described above.
====funambol====
To configure syncevolution for your own funambol server you have to enter the following (as user!):
 syncevolution -c funambol
Then edit
 /home/user/.config/syncevolution/funambol/config.ini
and fill in your syncURL (eg http://domain.com:8080/funambol/ds), username and password.
After this the N900's addressbook and default calendar (including events, tasks and notes) should be ready to synchronize. The default setting for these sources are &quot;two-way-sync&quot;. If you wish to change this please read and edit the files:

 /home/user/.config/syncevolution/funambol/sources/addressbook/config.ini
 /home/user/.config/syncevolution/funambol/sources/calender/config.ini
 /home/user/.config/syncevolution/funambol/sources/todo/config.ini
 /home/user/.config/syncevolution/funambol/sources/memo/config.ini

You also could switch to other calendars available on you N900. For details also have a look into the config files. The needed sync sources you can search using the command &lt;code&gt;syncevolution&lt;/code&gt; as described above.

====Horde====

This is how i managed to have calendar sync with horde4 on N900. Horde3 probably needs a different procedure, but i read a report around that it's working.

*First of all let's assume that you have horde working on your server at url: horde.yourdomain.com/horde

*Second assume that you have installed syncevolution and it's frontend as we will use both for ease of use.

*Start the frontend and select &quot;Add new service&quot; by clicking the the menu. The new service wizard will start. press next and select a name youlike for &quot;service name&quot;. Keep it short as it may happen you have to type it. Let's pick &quot;myhorde&quot; for this example. As template select SyncEvolution (even if any template may work, since we are going to edit the files anyway). Press next

*Now input your username and password. Notice that the password will be saved in ''clear text'' in the configuration file. You can manually edit the configuration file to prevent this, but i did not test it. Press next.

* Now it says &quot;finish&quot;. We just started (j/k it's not that long).

* Select your new service myhorde from the list. now press the title bar and press &quot;Edit service&quot;. Change the &quot;Sync url&quot; to your horde url, but add rpc.php at the end. In our case the url will look like &quot;http://horde.yourdomain.com/horde/rpc.php&quot;.

* Change the &quot;Web url&quot; to something you like. Probably your horde log in page is a good pick.

* If you have some special names for the databases, specify them. I did not discovered yet how to correctly figure out those names without guessing and how to match them with horde db names (if someone know please explain!! It's a ''very'' important topic). What I discovered is that, here, and so probably by default, the database name you have to set for &quot;Contacts database&quot; (addressbook) is &quot;contacts&quot; and the one for &quot;Calendar database&quot; is &quot;calendar&quot;. This step is '''very''' important, if you miss it, nothing will work and you may get a message in the log like &quot;database not found&quot; or a HTTP 404 error. You can also edit those values by editing the configuration files and setting &quot;uri&quot; equal to database name (i.e uri=contacts and uni=calendar). In our example the files to edit if you do not want to use the frontend are:

  &lt;syncevolution_location&gt;/default/peers/myhorde/sources/addressbook/config.ini
  &lt;syncevolution_location&gt;/default/peers/myhorde/sources/calendar/config.ini

notice that &quot;myhorde&quot; in the path is the example name we picked up before.

* In my case i managed to figure out only the correct database name for calendar. That in my case is &quot;calendar&quot;. You may try to sync other things. In any case disable the things you do not want/does not work, else you will get an error even if half of the sync worked. To disable somehting click on it's corresponding &quot;&lt;item&gt; syncronization&quot; button and select &quot;disable&quot;.

* The first time you need to do a &quot;slow&quot; sync. Else it will not work. You have two choices. The first is to select slow sync from the corresponding &quot;&lt;item&gt; syncronization&quot; button, do a sync and then change it back to &quot;Normal sync&quot; (or the sync style you may want). The second option is to just open a terminal and execute:

  # syncevolution --sync slow myhorde contacts
  # syncevolution --sync slow myhorde calendar

this is for example for contact &quot;slow&quot; syncronization.

You have done. Syncronization should work now . I managed to actually make it work only for calendar. As for addressbook I'm interested in it says &quot;server database not found&quot; and i have no idea if this error is related to me or something i can't figure out. Also syncevolution does not report any &quot;local&quot; messages to update and this is bad as it should see a lot of contacts. If someone has an idea, please contribute to the wiki.

====Group Office====

These instructions are based on the Horde instructions from above.  The only new information is the adapted URL and the list of database names.

* Insure SyncEvolution and it's front-end are installed.
* Launch the SyncEvolution front-end, click on the menu and select &quot;Add new service&quot;
* Accept the notice by pressing next and select a &quot;service name&quot;.
* Select SyncEvolution as template and Press &quot;next&quot;.
* Enter your user name and password. Notice that the password will be saved in ''clear text'' in the configuration file. (see above) Press next.
* Select &quot;finish&quot; to create the service which can now be edited.
* Select the service from the list.
* Select the title bar and press &quot;Edit service&quot;.
* Change the &quot;Sync url&quot; to your Group Office url:
    &lt;nowiki&gt;http://your.domain.com/groupoffice/sync.php&lt;/nowiki&gt;
''Note: I was not able to connect via https: successfully with a CAcert certificate.''
* Set the &quot;Web url&quot; to something like
    &lt;nowiki&gt;http://your.domain.com/groupoffice/&lt;/nowiki&gt;
* Set the database names for the following [http://www.group-office.com/wiki/Gnome_Evolution Group Office] services
** Contacts database: contacts
** Calendar database: events
** Tasks database: tasks
** Notes database: notes

* The first Sync using &quot;slow&quot; was successful.

====Add another service here====
...

==Syncevolution-Frontend==
[[Image:Syncevolution_gui_account_detail_settings.png|200px|thumb]]
[[Image:Syncevolution_gui_select_local_calendar_source.png|200px|thumb]]
The [http://maemo.org/packages/view/syncevolution-frontend/ syncevolution graphical user interface] installs templates for the following SyncML service providers:
*Funambol
*Google - NOTE: ONLY CONTACTS CAN BE SYNC'd
*Goosync
*Memotoo
*Mobical
*Oracle
*ScheduleWorld
*Synthesis
*ZYB

All you have to do is to enter your username and password. You also can choose which calendar should be used to synchronize your events, tasks and notes. You also can define a time per day when syncevolution should run.
''(feel free to add more information)''

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Synergy</title>
    <id>5064</id>
    <revision>
      <id>46078</id>
      <timestamp>2011-12-19T09:05:02Z</timestamp>
      <contributor>
        <username>aapo</username>
        <id>1187</id>
      </contributor>
      <text xml:space="preserve">	

=General=
Synergy lets you share a mouse and keyboard between several computers over a network.

http://synergy-foss.org/

=Install=
Enable Extras-devel and install package named synergy.

=Usage=

*You must know hostname of your N900, it might be Nokia-N900. You can check it on terminal
Code:

 hostname


*Install synergy to your computer (or any another device)

*On computer:
create/modify file ~/.synergy.conf (or /etc/synergy.conf)


    section: screens
    pc:
    Nokia-N900:
    end
  
 
    section: links
    pc:
    right = Nokia-N900
    Nokia-N900:
    left = pc
    end
 
    section: options
    screenSaverSync = false
    # My KVM uses Scroll Lock to switch screens, so set the
    # hotkey to lock the cursor to the screen to something else
    keystroke(f12) = lockCursorToScreen(toggle)
    end
 
On PC, start server

 synergys -f

(-f means you will see what is happening, you can omit it when it works)

On phone, start client

 synergyc SERVER_HOST_NAME

or

 synergyc SERVER_IP


To shut it down
 killall synergyc



=Issues / good to know=
*Moving mouse will not wake the screen when dimmed (as tapping touch screen doesn't wake it)
*Data is transmitter over network (and could be slow)
*Synergy client uses CPU (and battery) even focus is not on the phone, do not let it running when not used.
(issues on upstream, e.g. http://synergy-foss.org/tracker/issues/2935)
-use</text>
    </revision>
  </page>
  <page>
    <title>Talk:100Days</title>
    <id>2963</id>
    <revision>
      <id>22165</id>
      <timestamp>2009-11-08T21:36:04Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Talk:100Days]] moved to [[Talk:Task:100Days]]: This is a Task</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Task:100Days]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:100Days/Sprint3</title>
    <id>811</id>
    <revision>
      <id>33092</id>
      <timestamp>2010-04-19T14:52:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Bugzilla Meeting */ bugs link</comment>
      <text xml:space="preserve">== Community Council ==

There's [[Talk:Task:Community_Council|consensus]] on [[Task:Community Council]] so I propose we discuss individual action points in the planning meeting. Should the organiser be Quim to act impartially in light of any potential candidacies? --[[User:jaffa|Jaffa]] 20:12, 17 July 2008 (UTC)
:Normally in the planning meeting we don't get into much details on every task. Thre are many tasks involved in a meeting and it would be too long to discuss all of them. Each task coordinator decides how to arrange debates, meetings... You have the wiki, the maemo-community list... Your call.--[[User:qgil|qgil]] 09:00, 18 July 2008 (UTC)

== Bugzilla Meeting ==

I need to get with Karsten, Andre and some others about this first, but I may want to append a Bugzilla meeting to the end of the sprint review on Tuesday. We've got a few issues that need to be addressed (mostly [[Task:3rd party bug tracking in bugs.maemo.org]]) and it'll hopefully be a good time to have everybody in one place (though it may not work out if the sprint review runs as far over as it did last time—hopefully everybody has done their homework this time around ;)). So, just a heads up to anybody that's interested in being involved. —[[User:generalantilles|GeneralAntilles]] 10:11, 20 July 2008 (UTC)
:Cool! I don't want to spend a single extra minute either on things that can be easily reported in a wiki page. Please consider adding this to http://maemo.org/news/events/ --[[User:qgil|qgil]] 11:07, 20 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:2010 Agenda</title>
    <id>2961</id>
    <revision>
      <id>22161</id>
      <timestamp>2009-11-08T21:35:37Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Talk:2010 Agenda]] moved to [[Talk:Task:2010 Agenda]]: this is a Task</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Task:2010 Agenda]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Accelerometers</title>
    <id>3416</id>
    <revision>
      <id>26844</id>
      <timestamp>2010-01-18T16:08:52Z</timestamp>
      <contributor>
        <username>sharpneli</username>
        <id>1894</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">I performed simple timing measurements for using the repeated fopen compated to using rewind on the sysfs file (as sysfs files must be seeked to start or reopened to get new information) and they are as follows:

1000 reads of values, parsing with scanf and writing to a file using repeated opening and closing of said file.

real	0m 1.74s
user	0m 0.09s
sys	0m 0.57s


1000 reads, parsing and writing by using rewind.

real	0m 1.19s
user	0m 0.02s
sys	0m 0.10s


This indicates that processor usage on applications with high fps and accelerometer usage could be lowered by using rewind instead of repeated fopen. Should this method of accessing the file be mentioned on the article? 

[[User:sharpneli|sharpneli]] 15:45, 18 January 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Accessing Windows CIFS</title>
    <id>3715</id>
    <revision>
      <id>30606</id>
      <timestamp>2010-03-06T07:42:10Z</timestamp>
      <contributor>
        <username>neilf</username>
        <id>2262</id>
      </contributor>
      <comment>N900 Wizard Mounter?</comment>
      <text xml:space="preserve">For the N900, seems there is now Wizard Mounter:
http://talk.maemo.org/showthread.php?t=44188
https://garage.maemo.org/projects/wizard-mounter/
[[User:neilf|neilf]] 07:42, 6 March 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Advanced booting</title>
    <id>1101</id>
    <revision>
      <id>48992</id>
      <timestamp>2012-08-08T17:01:12Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Advanced booting]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">Great someone is documenting this, thanks :-) Few random comments:

cp -a /mnt/initfs initfs is not best idea, you will copy also unneeded stuff in proc, sys, dev, tmp ... and you may also miss hidden stuff under some such mount point (/dev), safer is
  mount -t jffs2 /dev/mtdblock3 initfs.orig
  cp -a initfs.orig initfs

As for inplace editing, this is somewhat safe with Diablo. With older 2MB big initfs the danger was real. With just few (5-10?) edits of linuxrc file one may end with partially written (truncated) linuxrc and no way to fix it.

As for pre-caching initfs before flashing - this may not be strictly needed, maybe everything important is already cached, it is added just in case. We want to prevent situation where we are erasing/flashing /dev/mtd3 and bme or dsme causes some (both read or write) I/O and jffs2 driver becomes confused since we just erased mtd3 or completely rewrote it with different data.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Alternative desktop environments</title>
    <id>1839</id>
    <revision>
      <id>13097</id>
      <timestamp>2009-05-06T22:31:23Z</timestamp>
      <contributor>
        <username>qole</username>
        <id>57</id>
      </contributor>
      <comment>New page: This page needs screenshots. Anybody want to do that? --~~~~</comment>
      <text xml:space="preserve">This page needs screenshots. Anybody want to do that? --[[User:qole|qole]] 22:31, 6 May 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Alternative operating systems</title>
    <id>1791</id>
    <revision>
      <id>12726</id>
      <timestamp>2009-04-22T20:56:48Z</timestamp>
      <contributor>
        <username>qole</username>
        <id>57</id>
      </contributor>
      <comment>New page: General Antilles: Wiki etiquette suggests requesting a citation rather than deleting text that you feel is &quot;unsubstantiated opinion&quot;. --~~~~</comment>
      <text xml:space="preserve">General Antilles: Wiki etiquette suggests requesting a citation rather than deleting text that you feel is &quot;unsubstantiated opinion&quot;. --[[User:qole|qole]] 20:56, 22 April 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Application list</title>
    <id>3037</id>
    <revision>
      <id>22936</id>
      <timestamp>2009-11-18T16:41:02Z</timestamp>
      <contributor>
        <username>josefdk</username>
        <id>1273</id>
      </contributor>
      <comment>New page: I'm not sure what you want to do with this page, but I have a python script which spiders the downloads and generates a big old table. See [[User:Josefdk/App_List|here]] if you think it's ...</comment>
      <text xml:space="preserve">I'm not sure what you want to do with this page, but I have a python script which spiders the downloads and generates a big old table. See [[User:Josefdk/App_List|here]] if you think it's useful. [[User:josefdk|josefdk]] 16:41, 18 November 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Batteries</title>
    <id>1695</id>
    <revision>
      <id>40065</id>
      <timestamp>2010-11-11T17:08:50Z</timestamp>
      <contributor>
        <ip>84.194.34.177</ip>
      </contributor>
      <text xml:space="preserve">== Unattributed Quotes ==
The page contains an abundance of unattributed quotes. While I don't think we need to go Wikipedia-style &quot;Citation Needed&quot; happy in the maemo.org wiki, the sheer number of unattributed quotes in this particular article feels odd. Can anyone find sources for these quotes?
--[[User:sjgadsby|sjgadsby]] 13:13, 18 March 2009 (UTC)

== Battery type ==

&gt; The tablets use lithium-ion batteries

They actually use [http://en.wikipedia.org/wiki/Lithium-polymer lithium polymer] batteries ([http://e-articles.info/e/a/title/Advantages-and-Limitations-of-the-Lithium-Polymer-Battery/ advantages and disadvantages]), specifically the [http://europe.nokia.com/bp-5l BP-5L] (770, N800) and [http://europe.nokia.com/A4400191 BP-4L] (N810).

: It's a wiki, feel free to fix it yourself. ;) Also, remember to sign your comments! &lt;nowiki&gt;~~~~&lt;/nowiki&gt; [[User:generalantilles|GeneralAntilles]] 04:20, 26 March 2009 (UTC)

:Did some quick research and its actually Lithium-ion polymer so its just a variant of Li-ion and they are so similar it is probably not worth the distinction in this article. The N900 is now using Li-Ion [http://europe.nokia.com/find-products/accessories/all-accessories/power/batteries/nokia-battery-bl-5j BL-5J] --[[User:cas07|cas07]] 21:54, 16 January 2010 (UTC)

== category ==

should this be categorized to beginners or power users?

== Deep-Cycling ==

I've never fully understood this, and the article is making it worse:

&quot;discharge the battery from time to time by leaving the product switched on until it turns itself off.&quot;
(which I think fits the definition of deep-cycling) vs.
&quot;Lithium-ion batteries should never be &quot;deep-cycled&quot; like Ni-Cd batteries&quot;

So, which one is true?


== temperature ==

On this topic too the comments are contradictory.  One the one hand it says &quot;Always try to keep the battery between 15°C and 25°C (59°F and 77°F).&quot; while in the extending battery life section it says &quot;Stay cool. Li-ion batteries should be kept cool. Ideally they are stored in a refrigerator.&quot;.

Even disregarding the fact that storing in a battery is not a practical thing to do if you actually want to use it, a refrigerator is (or should be) a lot cooler than 15°C.

So again, which comment is correct?</text>
    </revision>
  </page>
  <page>
    <title>Talk:Bluetooth Network Enabled Cell Phones</title>
    <id>1793</id>
    <revision>
      <id>12745</id>
      <timestamp>2009-04-23T11:10:01Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Talk:Bluetooth Network Enabled Cell Phones]] moved to [[Talk:Bluetooth network enabled cell phones]]: Sentence case</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Bluetooth network enabled cell phones]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Bluetooth PBAP</title>
    <id>5272</id>
    <revision>
      <id>50066</id>
      <timestamp>2012-10-03T18:54:14Z</timestamp>
      <contributor>
        <username>luf</username>
        <id>5206</id>
      </contributor>
      <comment>[[Talk:Bluetooth PBAP]] moved to [[Talk:Bluetooth PBAP pre 0.46]]: Newer version needs different description.</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Bluetooth PBAP pre 0.46]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Bluetooth PBAP pre 0.46</title>
    <id>4557</id>
    <revision>
      <id>50065</id>
      <timestamp>2012-10-03T18:54:14Z</timestamp>
      <contributor>
        <username>luf</username>
        <id>5206</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Bluetooth PBAP]] moved to [[Talk:Bluetooth PBAP pre 0.46]]: Newer version needs different description.</comment>
      <text xml:space="preserve">Hallo Community,

today i install the the bluetooth PBAP.  
Now i want you to report about the funktion between my Nokia N900 and my Audi A3 (Model 2009) with Radio MSI plus.
My phone-book has been transfered automatically to my carkit and i can see all of my Phone-book-entries. Furthermore  and i can see the missing-calls, incoming-calls and the outgoing-calls. But i can't start an outgoing-call from the carkit! One of you knows this error?
Greetings Sven (from Germany)
2010.11.10

== with nokia BT kit HS510 ==

works perfect, thank you!!!

== Kenwood KDC-BT60U works for me  ==

with libopenobex2_1.5 and obexd2_0.35-0maemo1
Thank you very much</text>
    </revision>
  </page>
  <page>
    <title>Talk:Bluetooth network enabled cell phones</title>
    <id>287</id>
    <revision>
      <id>21240</id>
      <timestamp>2009-10-29T13:36:20Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <text xml:space="preserve">Phone: Sony ericsson k550
Band: 850/900/1800/1900 
DUN: no tested
Browse Files: yes
Memory Card: memory stick duo
network: gsm, grps, edge
same charger: no

Rodrigo Linfati
rodrigo@linfati.cl

== Addition of version column(s)? ==
It seems to me that the table would be more useful with the addition of a column showing the version of Maemo tested. There have been fixes in revisions of Maemo that allowed previously non-working phones to, well, work. Therefore, for the &quot;No&quot; answers, it'd be nice to see if the info is old.

It may even make sense to have a version column for the phones also. Some of those receive significant updates too.

Any thoughts?
- [[User:sjgadsby|sjgadsby]] 13:42, 18 March 2009 (UTC)

== Sync upstream? ==
Is there an other, more up date list available by an other wiki or project? If yes, which? I'd like to merge. Don't mind doing the dirty work. --[[User:allnameswereout|allnameswereout]] 13:36, 29 October 2009 (UTC)

== PAN ==
List does not include Bluetooth PAN. --[[User:allnameswereout|allnameswereout]] 13:36, 29 October 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Booting from a flash card</title>
    <id>731</id>
    <revision>
      <id>37602</id>
      <timestamp>2010-08-08T16:22:35Z</timestamp>
      <contributor>
        <username>janmalte</username>
        <id>3239</id>
      </contributor>
      <text xml:space="preserve">== mkdir /home/user/local/bin ==

Why on earth would anyone do such a horrible thing?
:Doesn't require root access and keeps gnutar out of the $PATH (bad things can happen there). I don't see what's so &quot;horrible&quot; about it, though. It's a perfectly valid setup. Also, please remember to login and sign your comments. :) —[[User:generalantilles|GeneralAntilles]] 12:49, 7 July 2008 (UTC)

Be nice to have instructions about installing without reflashing the whole unit. I understand you have to do it from Linux. (DGEC)

== SSU breaks this setup? ==

[[Updating_the_firmware#Seamless_Software_Update]] leads me to believe that this setup will be broken if Nokia pushes an update to the initfs, but perhaps I am reading it wrong.  Wish there were a solution.  Maybe this issue should be mentioned in the main page?  --[[User:gabkdlly|gabkdlly]] 11:24, 21 February 2009 (UTC)

== Doesn't work with N900 ==
there should be a notice at the top as this is not working with the N900. There is no /dev/mtdblock3 and no /mnt/initfs
''mount: mounting /dev/mtdblock3 on initfs failed: No such device''
--[[User:janmalte|janmalte]] 16:22, 8 August 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Booting from a flash card 770 version</title>
    <id>1462</id>
    <revision>
      <id>9973</id>
      <timestamp>2009-01-21T20:36:46Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>New page: == Deletion ==  This seems too Windows-specific, and the regular article should work just fine for the 770 anyway. I'm in favor of deletion. Thoughts? —~~~~</comment>
      <text xml:space="preserve">== Deletion ==

This seems too Windows-specific, and the regular article should work just fine for the 770 anyway. I'm in favor of deletion. Thoughts? —[[User:generalantilles|GeneralAntilles]] 20:36, 21 January 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Brainstorm 2010/Downloads</title>
    <id>4132</id>
    <revision>
      <id>34805</id>
      <timestamp>2010-05-25T10:34:10Z</timestamp>
      <contributor>
        <ip>132.230.57.16</ip>
      </contributor>
      <comment>oCeCRRRA</comment>
      <text xml:space="preserve">kHXcHo  &lt;a href=&quot;http://mdpkwtamxpys.com/&quot;&gt;mdpkwtamxpys&lt;/a&gt;, [url=http://hcuimhcgnqap.com/]hcuimhcgnqap[/url], [link=http://ucfmjujjvlvq.com/]ucfmjujjvlvq[/link], http://bramtjniscwg.com/</text>
    </revision>
  </page>
  <page>
    <title>Talk:Bugtracker</title>
    <id>3739</id>
    <revision>
      <id>30853</id>
      <timestamp>2010-03-09T09:50:43Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Talk:Bugtracker]] moved to [[Talk:Tracking bugs in Extras]]: Make it clear that this is about Extras (3rd party apps) and not strictly Maemo bugzilla</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Tracking bugs in Extras]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Codenames</title>
    <id>230</id>
    <revision>
      <id>2675</id>
      <timestamp>2008-06-24T22:34:23Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>/* Some comments */</comment>
      <text xml:space="preserve">== The table first ==

What about having the table at the top? It's the information most users would be looking for.--[[User:qgil|qgil]] 19:16, 12 June 2008 (UTC)
:Done. —[[User:generalantilles|GeneralAntilles]] 01:23, 13 June 2008 (UTC)

== Some comments ==

I don't dare to edit this page.  ;)  Still I will comment:

* &quot;Released with the N810 WiMAX Edition&quot; - It was released today, but no N810 WiMAX Edition.
* &quot;Bundled community-supported Qt libraries&quot; - This is explained in relation to Fremantle. Howevr, the announcement said that Qt support would be offered in maemo.org already for Diablo.
* &quot;OS2009&quot; - as discussed in the branding page, there will not be an OS2009.
* &quot;5.0&quot;, &quot;5.1&quot; nobody has mentioned these numbers officially but in the context of the page they look like confirmed. I would take them out to avoid confusion.
--[[User:qgil|qgil]] 21:58, 24 June 2008 (UTC)
:Done. —[[User:generalantilles|GeneralAntilles]] 22:34, 24 June 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Community/Mailing Lists</title>
    <id>1311</id>
    <revision>
      <id>8175</id>
      <timestamp>2008-10-30T15:32:21Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>New page: == Mailing List descriptions ==  ''These could be added to the actual mailing lists page to better describe each list.''  === maemo-announce === Subscribe to [http://lists.maemo.org/mailma...</comment>
      <text xml:space="preserve">== Mailing List descriptions ==

''These could be added to the actual mailing lists page to better describe each list.''

=== maemo-announce ===
Subscribe to [http://lists.maemo.org/mailman//listinfo/maemo-announce maemo-announce] for periodic announcements of the Maemo development platform.

=== maemo-users ===
[http://lists.maemo.org/mailman//listinfo/maemo-users Maemo-users] exists for regular Internet Tablet users who want to connect with the community, ask questions, and share experiences. This is not usually a place to discuss programming issues, unless they immediately pertain to regular tablet usage.

=== maemo-developers ===
If you’re a programmer, a hacker, or someone who wants to learn more about development for the Maemo software platform, subscribe to [http://lists.maemo.org/mailman//listinfo/maemo-developers maemo-developers]. This list is primarily meant for discussion that centers on programming, programming languages, and other development-related issues. If you have a question about something you’re trying to develop, please use this list.

=== maemo-community ===
If you’d just like to keep up on what’s happening within the maemo.org community, subscribe to the [http://lists.maemo.org/mailman/listinfo/maemo-community maemo-community] mailing list. Here, you can read and post about community-related events, issues, and other items of interest for the greater community.

=== Additional Mailing Lists Information ===
There are a couple of other mailing lists that members can subscribe to, as well as archives for all of the available mailing lists. In addition, many of the projects hosted at the Garage have active mailing lists that are specific to those projects. To learn more, go to the [http://maemo.org/community/mailing-lists/ Mailing Lists] section on maemo.org.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Community Council</title>
    <id>211</id>
    <revision>
      <id>12314</id>
      <timestamp>2009-04-06T04:52:59Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <text xml:space="preserve">Suggestions:
* use the RSS feature to pull in #m.occ and the blog into the page (a la [[Mer]])
* structure the page much more like a homepage, pushing information down into sub-pages --[[User:jaffa|Jaffa]] 17:03, 4 April 2009 (UTC)
* It would be good to stress somehow that the Council is useful to discuss with Nokia...  --[[User:qgil|qgil]] 04:52, 6 April 2009 (UTC)
** ... basic sharing &amp; preparation of events before thay are announced e.g. SDK releases and events.
** ... details about budgets, invoices and money in general e.g. hiring people, organizing events, supporting projects.
** ... delicate topics involving other companies e.g. drivers.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Community Council/Council election May 2012/Candidate declarations</title>
    <id>5139</id>
    <revision>
      <id>50029</id>
      <timestamp>2012-10-01T11:22:00Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Community Council/Council election May 2012/Candidate declarations]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">== &quot;Open mobility&quot; ==
WTF is &quot;open mobility&quot;, and what's the scope of it in regard to this election? --[[User:jaffa|Jaffa]] 15:04, 9 April 2012 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Community Council/Voting rights Q1 2009</title>
    <id>1589</id>
    <revision>
      <id>11055</id>
      <timestamp>2009-02-17T19:09:22Z</timestamp>
      <contributor>
        <username>qole</username>
        <id>57</id>
      </contributor>
      <text xml:space="preserve">Problem with Option #2: The proposed text does not match the summary. Summary says account age ignored, proposed text requires three month minimum. --[[User:qole|qole]] 00:39, 17 February 2009 (UTC)
:The summary says that anyone with a maemo.org account ''at a fixed date'' may vote. I'll double check that the proposed wording matches what was agreed (through neg-con) on -community --[[User:jaffa|Jaffa]] 08:51, 17 February 2009 (UTC)
::Summary: ''Karma ignored, '''account age ignored''' (council preferred option)''
::Proposed Text: ''community members who have maemo.org accounts '''for over 3 months''' may vote''
::One or the other should be clarified or corrected, because the summary suggests '''no''' 3 month requirement, but the text says there '''is''' one.
::--[[User:qole|qole]] 19:09, 17 February 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Community SSU</title>
    <id>5088</id>
    <revision>
      <id>47739</id>
      <timestamp>2012-05-28T16:00:37Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>moved a comment to here from main page</comment>
      <text xml:space="preserve">The following is intended to be just a scratch page, describing a possible addition to the CSSU wiki collection.  Please feel free to edit/delete at your lesiure.  Thanks.  (jpietrzak8 - Maemo.org / Copernicus- TMO)

I'd like to add a more detailed summary of the changes that CSSU has been making; something like a page for each package.  The purpose would be to educate people about the value of the CSSU -- in particular, me!  (I've had to go scrounging around dozens of places to find out exactly what has been changed).  Basically, I want something more detailed and newbie-friendly than a bare changelog.  This could be added to the &quot;features&quot; page, or perhaps a new set of pages linked below the &quot;features&quot; section of the main page.  As I have been reminded, there should be separate sets of pages for the stable and testing branches of CSSU as well.

For example, the page for Modest would look something like this (note, as of 1/17/2012, the &quot;master&quot; and &quot;stable&quot; branches of Modest in git appear to contain all the same patches, so the following would apply for both CSSU versions of the program):

==Changes to Modest==

Several changes and improvements have been made to the Modest e-mail server in the CSSU:

===Attribution and Signature===
As in many lightweight email clients, such as &quot;Hotmail&quot;, &quot;Yahoo mail&quot;, and older versions of &quot;Outlook&quot;, the PR1.3 and earlier versions of Modest place the user's &quot;signature&quot; text at the top of an outgoing message, and when replying to an email, places no attribution on the quoted text.  The CSSU changes this by placing the signature at the bottom of the message, and attributing quoted text to the person who sent it.  This is the technique used by most full-featured email clients.

[[Image:sigbelow.png]]

For more information, see:
* https://bugs.maemo.org/show_bug.cgi?id=2563
* https://bugs.maemo.org/show_bug.cgi?id=3700

===Tree Format===
Added the ability to view accounts and folders in tree format. Tree view allows quicker access to different folders of different email accounts. Rather than having to go in to an individual account to access say a local folder it is available on the first screen of modest. See screenshots below.

Start Page

[[Image:Start.png]]

Expanded (note: all folders and accounts available from one page)

[[Image:Expanded.png]]

===Offline IMAP support===
The CSSU has added an option in the account settings to turn on the &quot;Offline IMAP&quot; feature of the Camel back-end to Modest.  With this setting on, Modest will synchronize itself with the IMAP folders found on your e-mail server, downloading all the messages within them so that you can read them later.  Otherwise the body of a message is only downloaded at the moment you choose to read it.  (Currently, this setting has the unfortunate name of &quot;mcenfladvsetupofflinesync&quot;.)

Note: with this option enabled offline email is saved by default to opt(2g partition). Users with large email storage could encounter problems.   

For more information, see:
* http://mat.exon.name/modest/
* http://talk.maemo.org/showthread.php?t=55771

===Extra &quot;Send&quot; button===
In PR1.2, an extra &quot;Send&quot; button was added below the message editing region when writing a new e-mail, for the sake of convenience.  In PR1.3, this button was removed.  The CSSU returns this functionality to Modest.

[[Image:extrasend.png]]

For more information, see:
* https://bugs.maemo.org/show_bug.cgi?id=11859

===New deletion behavior===
A very subtle, but useful change in behavior: after deleting a message, PR1.3 Maemo will display the message chronologically previous to the one deleted.  The CSSU instead displays the next message.  Most e-mail clients choose to show the next message, as this aids in quickly managing incoming messages with a minimum of navigation.

For more information, see:
* https://bugs.maemo.org/show_bug.cgi?id=11839

===Improved copy to clipboard===
Improved support for copying non-editable text to the clipboard.  Officially, Maemo 5 only supports cut/copy/paste operations within editable text widgets, but unofficially some ability to copy non-editable regions has always existed.  The CSSU includes fixes for this ability.

For more information, see:
* https://bugs.maemo.org/show_bug.cgi?id=11874
* https://bugs.maemo.org/show_bug.cgi?id=10390


===moved here from main page===
    === Hildon desktop problem ===

For at least 2 persons the transitions.ini file got corrupt. It causes all widgets to be placed one above another, the topper panel is loaded several times, unsuccessfully.
I raised a bug here some time ago: [https://bugs.maemo.org/show_bug.cgi?id=12463], but still not even confirmed...
Here's a solution to this problem (but this will probably happen again): [http://talk.maemo.org/showpost.php?p=1142077&amp;postcount=89]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Community SSU/Changelog</title>
    <id>5162</id>
    <revision>
      <id>47386</id>
      <timestamp>2012-05-01T11:57:05Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Community SSU/Changelog]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>Talk:Community SSU/Features/Portrait mode</title>
    <id>4749</id>
    <revision>
      <id>42024</id>
      <timestamp>2011-02-23T11:31:52Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Portrait Mode]] moved to [[Talk:Community SSU/Features/Portrait mode]]</comment>
      <text xml:space="preserve">Can somebody give details on which apps support auto rotation and which are forced to rotate?</text>
    </revision>
  </page>
  <page>
    <title>Talk:Community mailing lists</title>
    <id>3760</id>
    <revision>
      <id>31444</id>
      <timestamp>2010-03-22T18:48:40Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Total documentation &amp; ppts */ new section</comment>
      <text xml:space="preserve">hi to all the great minds of maemo... 

sir, i need to give the presentation about maemo 5 in my class...

so, could any one please send me the '''total documentation and related ppt on maemo5'''.

A heartily thanks in advance...


my mail id is &quot;mailtoprogrammer@gmail.com&quot;

== Total documentation &amp; ppts ==

Hi there,

You have fouind it! There are thousands of pages of documentation, and much of it is available in [[documentation]] - much more is also available in the wiki, especially in the [[tutorials]] section. Good luck!

Dave.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Companies in Maemo development</title>
    <id>827</id>
    <revision>
      <id>5845</id>
      <timestamp>2008-07-28T19:08:25Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">I don't think Nemein and Neary Consulting can be put in this list as they are since they don't develop for the Maemo platform. Might be misleading.--[[User:qgil|qgil]] 22:11, 19 July 2008 (UTC)

Both removed now --[[User:dneary|dneary]] 19:08, 28 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Comparison Table</title>
    <id>2750</id>
    <revision>
      <id>20539</id>
      <timestamp>2009-10-19T21:54:53Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <text xml:space="preserve">How do we define 'discontinued'? The N800 and N810 don't receive software updates anymore, and the [http://en.wikipedia.org/wiki/Nokia_N810#Nokia_N810_WiMAX_Edition production of N810WME] is canceled with devices on sale by resellers (XOHM) send back to Nokia. IMO the comparison table should make clear that at this time of writing the only supported Maemo version is Maemo 5.0, for Nokia N900.--[[User:allnameswereout|allnameswereout]] 17:55, 18 October 2009 (UTC)

Anyone care to merge with [[Comparison_of_tablet_models]]? --[[User:twaelti|tom2]] 21:54, 19 October 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Comparison of tablet models</title>
    <id>3040</id>
    <revision>
      <id>22985</id>
      <timestamp>2009-11-19T05:52:44Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <comment>New page: what could be a category for this page? should there be modifications to beginners - power users(hard b&amp;w) -split? --~~~~</comment>
      <text xml:space="preserve">what could be a category for this page? should there be modifications to beginners - power users(hard b&amp;w) -split? --[[User:ossipena|ossipena]] 05:52, 19 November 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Conversation Mods</title>
    <id>4804</id>
    <revision>
      <id>42594</id>
      <timestamp>2011-03-10T12:00:32Z</timestamp>
      <contributor>
        <username>godofwar424</username>
        <id>4012</id>
      </contributor>
      <comment>/* Corrections */</comment>
      <text xml:space="preserve">==Recommendations==
I think a separate page is required for the mods -Ejas

'''I really don't see the need for this. It is just a waste of space in the maemo wiki. The contents page allows us to easily link to different sections as well as quickly view sections we want to see -God'''

==Corrections==
The mod for avatar, explains only about adding the avatar.png. It does not explain how to mod the conversations to show the avatar. So, atleast an explanation that avatar is shown only on supported themes is required. -Ejas  

'''Done -God'''

God, huh? Well call me Zeus, then!
So, it is mentioned that if themes don't have files, for Chat, they can just be renamed. I don't think that is correct. Wont it break the Chat messaging? I think, but am not sure, that some of the divs, spans, etc  are completely different in both... -ZEUS

'''Lol just happens to be the first 3 letters of my username :P Nope the Chat and SMS files are identical. I have been using the rename method for awhile and havent noticed any problems or errors.. -God
'''</text>
    </revision>
  </page>
  <page>
    <title>Talk:Customizing maemo for power users</title>
    <id>3425</id>
    <revision>
      <id>26986</id>
      <timestamp>2010-01-20T10:10:16Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <comment>New page: this overlaps with [[LED patterns]]. --~~~~</comment>
      <text xml:space="preserve">this overlaps with [[LED patterns]]. --[[User:ossipena|ossipena]] 10:10, 20 January 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Data plans</title>
    <id>2822</id>
    <revision>
      <id>49175</id>
      <timestamp>2012-08-20T18:28:49Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>Undo revision 49172 by [[Special:Contributions/42.121.83.74|42.121.83.74]] ([[User talk:42.121.83.74|Talk]]) SPAM</comment>
      <text xml:space="preserve">2 suggestions:

* [http://talk.maemo.org/showthread.php?p=356580 Show carrier deals, or carriers which sell N900 as per this t.m.o thread]. Logical extension of current article, but makes article more complex. 
* [http://talk.maemo.org/showthread.php?t=33379 Show average data usage of N900 users including what device is used for as per this t.m.o thread]. Helps users to decide for data plan, and helps deciphering FUPs.

Before starting above I'm waiting for more data, and must figure out structure to integrate data. --[[User:allnameswereout|allnameswereout]] 16:23, 23 October 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:DebForMeeGo</title>
    <id>3605</id>
    <revision>
      <id>29852</id>
      <timestamp>2010-02-19T15:34:42Z</timestamp>
      <contributor>
        <ip>78.70.20.188</ip>
      </contributor>
      <comment>/* All the &quot;pro Deb&quot; arguments are subjective and childish */</comment>
      <text xml:space="preserve">The discussion is approaching this from the wrong point with &quot;keep&quot; and &quot;switch&quot;. Moblin seems to be providing the base OS, and Maemo the base UI. Therefore it's ''Moblin'' that is being asked to &quot;switch&quot; to deb. --[[User:jaffa|Jaffa]] 17:49, 16 February 2010 (UTC)

== Discussion of the individual arguments ==

#  Maemo has the bigger community
:Versus? Moblin? Don't tell that to Intel.
::take a look at the numbers, rhetoric dont make a difference
# community infrastructure is based on deb - would be thrown away
:The Moblin infrastructure is being used as it offers more features. If you want a feature list, go to the meego-dev list.
::more features is not an argument. obviously the current feature set works, and it works quite well. which feature exactly would justify the work related to the change?
# deb has wider adoption (Ubuntu, Google Chrome OS, Debian)
:So... Mandriva, PCLinuxOS, OpenSuSE, not to mention SuSE EL, Red Hat EL and Fedora is not a &quot;wide adoption&quot; as well? Subjective bullet point that should be removed.
::this is not about the number of distributions but about the number of '''desktop''' users ;)
# allows syncing from Debian/ Ubuntu
:Debian isn't the end-all be-all for Linux. There are dozens of distributions that provide valuable patches and experience.
::but Ubuntu is desktop user oriented, so their patches are more valuable. For instance their boot speed optimizations make my desktop boot faster than the N900... 
# is used for distributions targetting end users
:And... Mandriva, PCLinuxOS, OpenSuSE, not to mention SuSE EL, Red Hat EL and Fedora don't target end users? Nuts!
::they primary target corporate users, the driving force behind user visible changes is Ubuntu. (Notifications, Indicator Applet)
# not to throw away experience gained with maemo which is reflected in the packaging 
:Those scripts and patches can be easily streamlined into an RPM spec. This is an opinion statement, not a factual counter point!
::I would not say that modifying each package and taking care of the interdepencies can be done ''easily''

questioning --[[User:mooninite|mooninite]] 18:20, 16 February 2010 (UTC)

reply -- madman2k</text>
    </revision>
  </page>
  <page>
    <title>Talk:Desktop Search Hackfest</title>
    <id>890</id>
    <revision>
      <id>5509</id>
      <timestamp>2008-07-25T15:40:59Z</timestamp>
      <contributor>
        <ip>69.27.21.253</ip>
      </contributor>
      <comment>/* Beagle */</comment>
      <text xml:space="preserve">== Beagle ==

Kevin Kubasik to qgil, foundation-list
		
''So I noticed no one from Beagle was slated to attend, is there interest in bringing someone from the project out? If no other beagle guys are available, I'm completely willing to go an represent the project, its just that I haven't  been that involved in it the past few months.'' Kevin Kubasik - http://kubasik.net/blog

@Kevin,
I don't think that qgil is in charge of selecting who represents what. I guess its for you to decide if you want to join the hackfest. But I have a sense that simply representing a project is not the purpose of this meeting; it is better to have someone who is actively involved with the project and can make significant contributions to the meeting.

From Kevin: I feel like while I have been less involved lately, I still have plenty to offer regarding new development/the 'beagle viewpoint'. I'm not 100% sure how attending the hackfest works, but as long as I can find a cheaper flight, I would very much like to share both my ideas for the future of search in Gnome, and make sure that Beagle can continue to be a real desktop search option for Gnome users.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Developer Guide table of contents</title>
    <id>3196</id>
    <revision>
      <id>24643</id>
      <timestamp>2009-12-15T10:32:00Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Talk:Developer Guide table of contents]] moved to [[Talk:Maemo 6 Developer Guide table of contents]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Maemo 6 Developer Guide table of contents]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Dexter</title>
    <id>3519</id>
    <revision>
      <id>28608</id>
      <timestamp>2010-02-07T19:49:01Z</timestamp>
      <contributor>
        <username>ossi1967</username>
        <id>18</id>
      </contributor>
      <comment>/* Configurations not yet ready */  Remove ORF, add swiss channels</comment>
      <text xml:space="preserve">== Configurations not yet ready ==
=== Swiss TV ===
Swiss Teletext is available from http://www.teletext.ch/

The site contains
* SF1 (German)
* SF2 (German)
* TSR1 (French)
* TSR2 (French)
* RSI LA1 (Italian)
* RSI LA2 (Italian)

All schemes could look like this (for SF1):

&lt;pre&gt;x\siteName=SF 1
x\imageUrl=http://www.teletext.ch/pics/SF1/[page]-00.gif
x\subImageUrl=http://www.teletext.ch/pics/SF1/[page]-[2:subpage].gif
x\predictionUrl=http://www.teletext.ch/SF1/[page]-00.html
x\subPredictionUrl=http://www.teletext.ch/SF1/[page]-[2:subpage].html
x\previousPrediction=&quot;&lt;a href=\&quot;/SF1/(\\d+)-\\d+.html\&quot;&gt;&lt;img src=\&quot;/design/navigation/minus.gif\&quot;&quot;
x\nextPrediction=&quot;&lt;a href=\&quot;/SF1/(\\d+)-\\d+.html\&quot;&gt;&lt;img src=\&quot;/design/navigation/plus.gif\&quot;&quot;
x\previousSubPrediction=&quot;&lt;a href=\&quot;/SF1/\\d+-(\\d+).html\&quot; class=\&quot;white_link\&quot;&gt;&amp;lt;\\d+&lt;/a&gt;&quot;
x\nextSubPrediction=&quot;&lt;a href=\&quot;/SF1/\\d+-(\\d+).html\&quot; class=\&quot;white_link\&quot;&gt;\\d+&amp;gt;&lt;/a&gt;&quot;
x\startPage=100&lt;/pre&gt;

It's just that the subImageUrl doesn't do what's needed ATM, so only some pages work.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Diablo:Missing Packages</title>
    <id>1153</id>
    <revision>
      <id>6782</id>
      <timestamp>2008-08-23T13:57:26Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Talk:Diablo:Missing Packages]] moved to [[Talk:Missing packages from Diablo Extras]]: Moved out of improper namespace. Please don't use distributions as namespaces.</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Missing packages from Diablo Extras]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Diablo: Missing Packages</title>
    <id>593</id>
    <revision>
      <id>21104</id>
      <timestamp>2009-10-27T00:37:46Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <minor/>
      <comment>Redirecting to [[Talk:Missing packages from Diablo Extras]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Missing packages from Diablo Extras]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Diablo Community Project</title>
    <id>2510</id>
    <revision>
      <id>44091</id>
      <timestamp>2011-06-21T17:21:25Z</timestamp>
      <contributor>
        <username>ggoebel</username>
        <id>4421</id>
      </contributor>
      <comment>/* Nokia not-yet-released fixes */</comment>
      <text xml:space="preserve">= TO-DO LIST =

*1st SSU
** hildon applet lock + VNC menu fixes http://qwerty12.qole.org/hildon-desktop/
** USBControl (to facilitate OTG host mode) 
** tentative - usb =&gt; ethernet support (only if well packaged)
*** There is an [http://maemo.gitorious.org/icd2-network-modules/libicd-network-usb ICD module] now.  We need to ensure that g_ether &amp; g_file_storage are never loaded at the same time ([https://bugs.maemo.org/show_bug.cgi?id=3243 bug 3243] has some relevant discussion),  [http://maemo.org/packages/view/maemo-control-usb/ maemo-control-usb] doesn't quite do it.

== Patches available in bugs.maemo.org ==
{{#bugzilla:
|keywords=community-diablo
|columns=id,summary,component,severity,votes
|sort=votes
|order=desc
}}

== Requests from talk.maemo.org [http://talk.maemo.org/showthread.php?t=30648 thread]. ==

* A2DP &amp; AVRCP (kernel patches in Mer?)
* [http://talk.maemo.org/showthread.php?t=28004 patch for hildon-desktop which makes it send a dbus-signal for every key pressed while the windows list is displayed].
* [http://talk.maemo.org/showthread.php?t=25452 libxcomposite1] with transparency (ping qwerty12 for patch).
* [http://maemo.org/packages/view/ogg-support/ Ogg support], so it can be enabled in libsdl-mixer.  Tuomas has no further plans for the Diablo version so we can just pull the existing packages and bump their version numbers.
** Performance: check gst-av by Felipe Contreras which uses FFMpeg for vorbis decoding.
* A way of optionally running USB host mode with OHCI instead of MUSB (potential workaround for [https://bugs.maemo.org/show_bug.cgi?id=3281 bug 3281].
* Figure out some way to safely update kernel modules in initfs.
* More osso-xterm [http://talk.maemo.org/showthread.php?t=23291 mods].
* Find the reason why Xkbd stopped working correctly under Diablo.
** Dirty solution [http://talk.maemo.org/showpost.php?p=408688&amp;postcount=1 here].
* DSP clock tuning (patch included [http://fanoush.wz.cz/maemo/ here], it's the diff against board-n800-dvfs.c). 
* Create a patch for modest to add a menu entry to initiate image download for HTML messages. Modest has the capability, thanks to a option hiding inside gconf, but its not accessible from the gui, and one may not always want to have it enabled.
* [http://talk.maemo.org/showthread.php?t=33359 Lock Code Dialog - Owner Tag] ([http://slexy.org/view/s2YTcGLwFj updated patch]).
* Write [https://bugs.maemo.org/show_bug.cgi?id=3030 API for services to change wallpaper]
** background manager is [http://timeless.justdave.net/mxr-test/os2008/source/hildon-desktop-2.0.6/background-manager/ here].

== Nokia not-yet-released fixes ==

Maybe we can convince Nokia to publish them (even as non-free if appropriate).

* [https://bugs.maemo.org/show_bug.cgi?id=1797 bug 1797] focus in textarea and pressing backspace in vkb triggers page back
* [https://bugs.maemo.org/show_bug.cgi?id=2450 bug 2450] Audio recording above sampling rate of 8KHz
* [https://bugs.maemo.org/show_bug.cgi?id=3144 bug 3144] Device starts reboot loop when charging
* [https://bugs.maemo.org/show_bug.cgi?id=3501 bug 3501] hildon_window_update_topmost() should handle/ignore windows that haven't been realized
* [https://bugs.maemo.org/show_bug.cgi?id=3583 bug 3583] libhildonmime fails to build with -Wformat-security due to variable format strings
* [https://bugs.maemo.org/show_bug.cgi?id=3660 bug 3660] going off- then on-line with ad-hoc doesn't reconnect wifi
* [https://bugs.maemo.org/show_bug.cgi?id=3793 bug 3793] Segmentation fault when ossofilemanager access SMB shares
* [https://bugs.maemo.org/show_bug.cgi?id=3830 bug 3830] IP Routing Table Incorrectly configured for Wi-Fi with static address
* [https://bugs.maemo.org/show_bug.cgi?id=3970 bug 3970] Media player doesn't detect media files / cannot restart metalayer-crawler</text>
    </revision>
  </page>
  <page>
    <title>Talk:Diablo Extras repository proposal</title>
    <id>306</id>
    <revision>
      <id>3441</id>
      <timestamp>2008-06-30T12:16:57Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Diablo extras repository proposal]] moved to [[Talk:Diablo Extras repository proposal]]: Capitalizing Extras</comment>
      <text xml:space="preserve">== Issues for on-device developers ==
If i understand well, only package build with autobuilder could be uploaded. If it s the case, i don't think it s a good solution for onboard developpers, as debian tool can't be used directly on the it. If diablo let s us use debian packaging tool directly on tablet it ll not be a problem. (The main problem using dpkg-buildpackage is that many option of many tools aren't available due to busybox).

Furthermore, if there is too difficulty to upload to extras or extras-devel, many dev will make their own repository. And i don't think it s a good idea. But i understand that you want to have a repository were users can rely on and where there is no error on installing packages.--[[User:khertan|khertan]] 11:08, 19 June 2008 (GMT+2)
: I think that your specific problem is mainly for python developers, only developing on the tablet itself. Easiest solution for them would be to improve pypackager so it creates valid archives and can upload the packages. As I understand it is almost doing that already and just might need a few fixes. Sure it would require a little more effort from developers, but they also have an interest in getting their applications to the end user? --[[User:xfade|xfade]] 09:24, 19 June 2008 (UTC)
:: I agree, this is just why i ven't say anything for freemantle, just to get the time to fix pypackager to make clean packages for diablo. And i hope developpers will not create others repositories.--[[User:khertan|khertan]] 17:04, 19 June 2008 (GMT+2)

== Section problem ==
Please let us fix the section problem. Packages to go into extras and extras-devel must respect the naming scheme for sections. This was often critized and (while there is possibly no solution yet) this would be the right time to get it solved. --[[User:framstag|framstag]] 12:01, 19 June 2008 (UTC)
: This section problem is something we can't easily fix and certainly not on a short-term. There will always be a category that isn't described in our 'official' sections list. Debtags really seems to be a better solution, but it would need to be implemented in the Application Manager too. Aim for Fremantle to get debtags introduced? --[[User:xfade|xfade]] 14:43, 19 June 2008 (UTC)
::On the debtags note, has anybody opened an enhancement request for that yet? —[[User:generalantilles|GeneralAntilles]] 15:11, 19 June 2008 (UTC)
::While you are right that we cannot solve this completely we could at leats clean up the situation. That means define standard groups most packages have to use and define exceptions where it makes sence (application that consist of a huge number of packages or that do not fit any other group). We should be pragmatic in the sence that we do not need a perfect solution and we should not start a flame war, but at little clean up should be possible. In consequence we generate a nice knowledge base for later discussions regarding debtags. Note however that personally I do not think that debtags will solve the problem (not enough overview), it is not the perfect solution and might be generate problesm of its own if not used with care, the same care one would need for good section names. --[[User:framstag|framstag]] 15:07, 20 June 2008 (UTC)

== Binary-only packages? ==
I agree with the proposal, but what about binary only packages ?
--[[User:anidel|anidel]] 13:59, 19 June 2008 (UTC)
:Do you mean closed source applications? Or for example an icon pack? --[[User:xfade|xfade]] 14:45, 19 June 2008 (UTC)
::Canola would be the obvious example. --[[User:jaffa|Jaffa]] 22:27, 20 June 2008 (UTC)
:Of course, a &quot;source&quot; package is just a package which can be extracted, a particular command run and a binary deb produced. There's nothing stopping closed source authors such as INDT producing a &quot;source&quot; package containing the binary files and a script to produce the binary deb. This'd satisfy the &quot;only packages which can be built using the autobuilder&quot; requirement ''and'' add an extra level of complexity to people wanting to use the maemo.org '''community''' repository for their closed source applications. --[[User:jaffa|Jaffa]] 18:59, 21 June 2008 (UTC)
::As a note aside, should we discusse now the possibility of having free &amp; non-free sections (or universe / multiverse) for these 3rd party repository that today we call extras? I mean, imagine that one day Nokia packages are published as i.e. Main / Restricted. Is this on topic here?--[[User:qgil|qgil]] 19:11, 22 June 2008 (UTC)
::I think the free/non-free thing would be a good solution. But for the community repository, surely we should aim to have as much source available as possible. --[[User:xfade|xfade]] 10:10, 23 June 2008 (UTC)
:::Wherever possible, I'm in favour of copying best practice. If it's good enough for Ubuntu to copy (and tweak) from Debian, it should be possible for us to copy from Ubuntu (and tweak). Having said that, until diablo's released (I put off installing the unreleased version), I think SSU is too much of a wildcard to make ''many'' decisions now. Are there any plans on Nokia's side as to the frequency of a release's in-life updates? Feature enhancements? Bug fixes? Security fixes? Or will SSU solely be used for big bang releases without having to reflash? --[[User:jaffa|Jaffa]] 19:21, 22 June 2008 (UTC)
::::What is the relation between having separate sections for free/non-free and frequency of updates? In any case I'm thinking more about the Fremantle timeline since Diablo is too soon to implement radical changes.--[[User:qgil|qgil]] 19:38, 22 June 2008 (UTC)
::::This SSU thing is an entirely different thing and is not being served from the extras repository. As I understand it is for ''system'' updates (applications part of the base system, not for ''application'' updates (community provided applications). --[[User:xfade|xfade]] 10:10, 23 June 2008 (UTC)
:::::I still fail to see what is the relation between SSU and free/non-free, but I just thorught youd like to know that yes, users get SSU updates when new versions of their installed extras software are available.--[[User:qgil|qgil]] 11:00, 23 June 2008 (UTC)
:::::If the frequency of updates is on the same order of magnitude of current &quot;maemo Linux based OS&quot; releases (i.e. a couple a year), carefully crafting the naming seems to me to be a monumental waste of effort. However, if a) there's going to be lots and lots and some careful differentiation is required; or there'll be many more Nokia self-installable apps released (or other, non-free apps in addition to the couple we've got already); the distinction may be worth investing in. Alternatively, I've got the wrong end of the stick. --[[User:jaffa|Jaffa]] 19:43, 22 June 2008 (UTC)
::::::Alright, let me rephrase my own question above: would it make sense to differentiate free and non-free extras packages in different sections? (the discussion about Nokia packages is not urgent and belongs to somewhere else)--[[User:qgil|qgil]] 19:56, 22 June 2008 (UTC)
:::::::From the user's point of view? Probably not. From a community point of view? Not sure. From Nokia's point-of-view? I'm not in a position to answer, but is it likely/possible that at some point extras (in some form) will be enabled by default? If so, does a free/non-free separation have any bearing on it? --[[User:jaffa|Jaffa]] 20:05, 22 June 2008 (UTC)

== Please, Keep Original Submission Procedure for Binary Packages ==
I strongly suggest that you keep the original dput-based submission procedure for binary packages, possibly marking them as non-free. The suggested submission procedure with autobuilder + promotion (1) requires the source code (not available for closed source packages) and (2) takes much more time than just doing a &quot;dput&quot;, complicating frequent package updates. This forces developers to ignore Extras repository and either create their own repositories or not use repository model at all. While centering submission process around the source code has valiant open-source intentions, it basically limits developers' freedom to distribute their software via centralized Extras repository. Any barriers to package submission (however idealistic their reasons are) will harm end users who expect most NIT software to be available from a single repository. [[User:fms|fms]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Diablo extras repository proposal</title>
    <id>639</id>
    <revision>
      <id>3442</id>
      <timestamp>2008-06-30T12:16:57Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Talk:Diablo extras repository proposal]] moved to [[Talk:Diablo Extras repository proposal]]: Capitalizing Extras</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Diablo Extras repository proposal]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Documentation/Maemo 5 Developer Guide</title>
    <id>2837</id>
    <revision>
      <id>20971</id>
      <timestamp>2009-10-25T21:46:35Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <comment>This page needs a link to a page explaining how to set up the scratchox. ~~~~</comment>
      <text xml:space="preserve">This page needs a link to a page explaining how to set up the scratchbox. [[User:guaka|guaka]] 21:46, 25 October 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Documentation/Maemo 5 Developer Guide/Application Development/Writing a new maemo application</title>
    <id>3241</id>
    <revision>
      <id>25186</id>
      <timestamp>2009-12-28T18:52:22Z</timestamp>
      <contributor>
        <username>d0b3rm4n</username>
        <id>827</id>
      </contributor>
      <comment>New page: == Remove chapter &quot;Adding help&quot; == I'm not sure if the &quot;Adding help&quot; chapter still applies to Fremantle, I think hildon_help_show() is removed there. libhildonhelp isn't on the device and ...</comment>
      <text xml:space="preserve">== Remove chapter &quot;Adding help&quot; ==
I'm not sure if the &quot;Adding help&quot; chapter still applies to Fremantle, I think hildon_help_show() is removed there. libhildonhelp isn't on the device and it's also not mentioned under http://maemo.org/development/sdks/maemo_5_api_documentation/

I suggest to remove that chapter. Can somebody please verify?</text>
    </revision>
  </page>
  <page>
    <title>Talk:Documentation/Maemo 5 Developer Guide/Architecture/Top Level Architecture</title>
    <id>2705</id>
    <revision>
      <id>20049</id>
      <timestamp>2009-10-14T10:05:54Z</timestamp>
      <contributor>
        <username>joenix</username>
        <id>1106</id>
      </contributor>
      <text xml:space="preserve">According to what was said at the Maemo Summit 2009 ('High-resolution image processing on Maemo devices'), the camera daemon in Maemo 5 is also proprietary (omap3camd package). Same for the modem interface (CSD). This is not indicated as such in the graph on this page. --[[User:joenix|joenix]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK</title>
    <id>2636</id>
    <revision>
      <id>19612</id>
      <timestamp>2009-10-07T16:59:33Z</timestamp>
      <contributor>
        <username>branedy</username>
        <id>1263</id>
      </contributor>
      <comment>Can's unzip  the image</comment>
      <text xml:space="preserve">I have been unable to cat the two zip files back together, everything except the actually disk image will unzip. the two separate zip files match the MD5 checksum so I sure they are correct. My platform is on a Mac with VirtualBox.  Any suggestions before I try downloading again?</text>
    </revision>
  </page>
  <page>
    <title>Talk:Documentation/Maemo 5 Developer Guide/Generic Platform Components/Using Backup Application</title>
    <id>4383</id>
    <revision>
      <id>37535</id>
      <timestamp>2010-08-05T13:03:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Talk:Documentation/Maemo 5 Developer Guide/Generic Platform Components/Using Backup Application]] moved to [[Talk:Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Using Backup Application]]: add &quot;Using &quot;</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Using Backup Application]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Documentation/Maemo 5 Developer Guide/Human Interface Guidelines</title>
    <id>2678</id>
    <revision>
      <id>19982</id>
      <timestamp>2009-10-14T08:52:56Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <comment>[[Talk:Documentation/Maemo 5 Developer Guide/Human Interface Guidelines]] moved to [[Talk:Legacy Maemo 5 Documentation/Human Interface Guidelines]]: This part of documentation is phased out, in favor of official Nokia forum documentation</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Legacy Maemo 5 Documentation/Human Interface Guidelines]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Documentation/Maemo 5 Developer Guide/Kernel and Debugging Guide/Maemo Debugging Guide</title>
    <id>4019</id>
    <revision>
      <id>33480</id>
      <timestamp>2010-04-26T12:34:32Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>copy from [[Talk:Using_Valgrind_and_gdb_in_Scratchbox]]</comment>
      <text xml:space="preserve">Some information copied from https://maemo.org/community/wiki/howtousevalgrindgdbinscratchbox/ --[[User:ludovicus|ludovicus]] 17:12, 24 May 2008 (UTC)
: This information was copied from http://wiki.maemo.org/Talk:Using_Valgrind_and_gdb_in_Scratchbox [[User:amigadave|amigadave]] 12:34, 26 April 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Documentation/Maemo 5 Developer Guide/Packaging, Deploying and Distributing</title>
    <id>2354</id>
    <revision>
      <id>17060</id>
      <timestamp>2009-08-29T18:23:38Z</timestamp>
      <contributor>
        <username>jeremiah</username>
        <id>585</id>
      </contributor>
      <comment>Created page</comment>
      <text xml:space="preserve">Hi, this is the discussion page for the Maemo 5 Developer gude, Packaging. Let's use this space to discuss how best to explain the Maemo 5 Packaging process with regard to development.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Using Address Book API</title>
    <id>3380</id>
    <revision>
      <id>26398</id>
      <timestamp>2010-01-12T09:15:49Z</timestamp>
      <contributor>
        <ip>192.100.124.219</ip>
      </contributor>
      <comment>New page: This page seems ok, but info about even the existance of OssoABookSelfContact to get your own contact from abook is missing. It is ofcourse in the apidoc, but a example would be nice as we...</comment>
      <text xml:space="preserve">This page seems ok, but info about even the existance of OssoABookSelfContact to get your own contact from abook is missing. It is ofcourse in the apidoc, but a example would be nice as well.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Using Backup Application</title>
    <id>3272</id>
    <revision>
      <id>37534</id>
      <timestamp>2010-08-05T13:03:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Documentation/Maemo 5 Developer Guide/Generic Platform Components/Using Backup Application]] moved to [[Talk:Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Using Backup Application]]: add &quot;Using &quot;</comment>
      <text xml:space="preserve">
After trying to make this page a bit clearer, I think that I don't understand it at all. There are a few questions which arise:

* What is the so-called locations configuration? Where is it set, and what is its default value?
* Where should users put their custom back-up scripts?
* What happens if one script has a file explicitly included with location, and another has it excluded with exclude?

I don't understand this phrase in particular:
: For other data not normally backed up, the so-called locations configuration is used. It is important that the locations configuration paths MUST NOT overlap with the documents path.

What is the documents path? What does overlap mean? Does it mean that I want to back up files in the documents path, or that a locations file is stored in the documents path, etc? I am a bit lost.

--[[User:dneary|Dave Neary]] 13:27, 30 December 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Documentation/Maemo 5 Final SDK Installation</title>
    <id>2664</id>
    <revision>
      <id>49673</id>
      <timestamp>2012-09-14T12:44:09Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Documentation/Maemo 5 Final SDK Installation]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">It strikes me that what is referred to in this page as &quot;Manual installation&quot; seems more automated than the regular instructions of downloading the .sh files and so on. Does anyone object if I rename that section to &quot;Installing using your package manager&quot; and move it closer near the top so people see that first before latching on to the .sh based installation instructions? [[User:josefdk|josefdk]] 04:39, 12 October 2009 (UTC)
 I installed using the .sh files but the manual install section looks more complicated to me.  There are more steps and more complicated commands for each step. --[[User:equim|equim]] 22:55, 6 November 2009 (UTC)


My experiences when going through this guide (using the .sh files, Ubuntu 9.04 32-bit):
* The scratchbox install script required VDSO to be disabled (the &quot;If you are not able to login, take a look at the limitations of Scratchbox.&quot; line should perhaps be copied to this step)
* Adding the deb line for the nokia binary packages to /etc/apt/sources.list with nano seemed to hard wrap the line to the screen which meant &quot;apt-get update&quot; gave an error.  I used vim to add the line instead which worked fine.
* Installing the binary packages with &quot;fakeroot apt-get install nokia-binaries nokia-apps&quot; failed near the end with &quot;connection reset by peer&quot;.  It did this for both targets but re-running the same command allowed it to complete.
--[[User:equim|equim]] 22:43, 6 November 2009 (UTC)

you need to patch the nstaller not only for non-debians -- even on debian it installs to /scratchbox, not /opt/ (neither does it ask -- but seeing what nokia did to the linux/debian on the n900 and the discouraging and useless complexity of the sdk i don't really wonder anymore about all this nonsense and bad usability).
btw: it's not really clear, why &quot;Also you must uncheck Xephyr checkbox and install it manually.&quot; is written above the code boxes for the installer and _where_ to uncheck xephyr actually, the installer only talks about the desktop icons,

== Installer on Ubuntu LTS 10.04 ==

I found that this step from the shell script instructions was necessary on my Ubuntu LTS 10.04 using the installer.


 $ sudo su
 $ echo &quot;vm.mmap_min_addr = 0&quot; &gt;&gt; /etc/sysctl.conf
 $ sysctl -p
 $ exit #to go back to user</text>
    </revision>
  </page>
  <page>
    <title>Talk:Documentation/devtools/maemo5</title>
    <id>3332</id>
    <revision>
      <id>31338</id>
      <timestamp>2010-03-19T01:35:28Z</timestamp>
      <contributor>
        <ip>69.25.98.201</ip>
      </contributor>
      <text xml:space="preserve">How much space do these devtool packages use(roughly)?  Are they optified?  Or put another way, how careful do I need to be when using these tools regarding space on the root filesystem?

Is the package named maemo-c-debug-tools?  Asking for confirmation before I add it to the wiki page (or someone else does).</text>
    </revision>
  </page>
  <page>
    <title>Talk:Documentation/devtools/maemo5/syslog</title>
    <id>3333</id>
    <revision>
      <id>25940</id>
      <timestamp>2010-01-06T06:44:13Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <text xml:space="preserve">The command in usage section seems not to work. I got the message:
 # start sysklogd
 # start: Unknown job: sysklogd

--[[User:jukey|jukey]] 06:42, 6 January 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Documentation rules</title>
    <id>1167</id>
    <revision>
      <id>6845</id>
      <timestamp>2008-08-28T03:07:46Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Talk:Documentation rules]] moved to [[Talk:Task:Documentation rules]]: Moving to correct namespace</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Task:Documentation rules]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Drivers justification</title>
    <id>799</id>
    <revision>
      <id>8445</id>
      <timestamp>2008-11-03T23:06:32Z</timestamp>
      <contributor>
        <username>qole</username>
        <id>57</id>
      </contributor>
      <comment>updated with qgil's comments in ITt</comment>
      <text xml:space="preserve">List hardware here which is underutilised/undocumented


==PowerVR==

  3d rendering (hopefully onto 5mbit on omap2420 SARAM buffer

==IVA==

  Conversion from RGB to YUV, decoding video frames, scaling and blitting bitmaps

==5mbit SRAM==
  Possible use as an RGB framebuffer for powervr/flat x11 surface.
  Would require the IVA to convert and push this RGB data onto SDRAM &quot;standard&quot; surface for the Epson LCD to display on screen quickly.


== SRAM notes/discussion ==

:irc question:
::&lt;jott&gt; lcuk: have you actually tried to investigate accessing the sram?
::&lt;lcuk&gt; where is it... ?
::&lt;lcuk&gt; this is what documentation is all about
::&lt;jott&gt; lcuk: drivers/video/omap/dispc.c atleast reads &quot;#define OMAP2_SRAM_START 0x40200000&quot;
::&lt;overflo&gt; 
            144 #define OMAP2_SRAM_START 0x40200000
            145 /* Maximum size, in reality this is smaller if SRAM is partially locked. */
            146 #define OMAP2_SRAM_SIZE                 0xa0000         /* 640k */
::    these locations are used as ram by ARM7 (IVA Processor)

::http://mxr.maemo.org/diablo/source/kernel-source-diablo-2.6.21/kernel-source/drivers/video/omap/dispc.c


:::AFAIK it is already used. 5mbits is VGA resolution. It is currently used as 'video plane' i.e. some sort of overlay. omapfb driver support more (3) planes and this 640x480 video plane in SRAM is used for media playback by stock media player. [[User:fanoush|fanoush]]


:::fanoush, can you shed some light on how its used by the mediaplayer?  We realise its vga resolution but it would be a start.
:::also, what is the point in 3 planes when it can barely send 1 plane fast enough.  as a base enabler for 3d and faster graphics it would be an ideal start.  --[[User:lcuk|lcuk]] 21:24, 16 July 2008 (UTC)


:::the reason for more planes is simplicity and speed, each plane can be enabled/disabled separately and framebuffer update (sending data to epson chip) merges those planes and gives priority to the video one (i.e. sends data only from the topmost one) so it works like overlay on desktop (and is used in same way by Xv ?). The reason for using SRAM is speed and maybe dispc can also do some operations only in SRAM, it was briefly explained by dstone on mailing list at the time second OS2007 update came with significant video speedup. Also maybe some/same plane is used by camera for similar reasons. BTW this is maybe not best place to go into details :-) [[User:fanoush|fanoush]] 08:16, 17 July 2008 (UTC)


:::As for the media player, more correct is perhaps to say that that VGA plane in SRAM is used for implementing Xv support in xserver so anything using Xv should use it too. I'm not 100% sure about SRAM being really allocated and used but whole multiple plane support with possibility of different per-plane memory type (quite complicated code) was added to kernel with that OS update so it would be insane to write so much code and complicate stuff in a big way and then not to use it. I also believe (but can be wrong) I've seen the code with plane definitions in kernel but can't find it now. [[User:fanoush|fanoush]] 09:49, 17 July 2008 (UTC)


:::Agreed on the multi plane support, it can be used to help double/triple buffering.
:::As for actually making use of the SRAM I am not so sure.  The dispc.c omap display driver below does make use of it: its expected to, it is the driver for the direct omap2420 display.  however from what we can gather this is not loaded for the n8x0, we use the omapfb/blizzard chain which uses regular DDR.
:::If mediaplayer can allocate/use memory for its own private purposes, we should be able to as well. --[[User:lcuk|lcuk]] 10:51, 17 July 2008 (UTC)


:::as for double buffering - perhaps yes, planes are not equally fast and big but one could enable/disable one of them and draw into the other and force region update. As for dispc I believe it is _is_ used. It has remote mode and can send data over rfbi (not so much different than feeding LCD directly). So there are two similar ways - draw to sdram and push it to epson chip or draw to sram and let dispc to do it too. I believe this is used because dispc can do scaling on the fly too so for larger frames you can cheat and actually send less data and overcame slow rfbi interface this way (downscaling done by epson is useless here, you want to minimize size of source data sent, not destination). It is all pretty crazy, never seen before drawing to screen scattered over so many different drivers used in combination. As for verifying plane location it should be quite easy to add some debug code when iterating over planes and print plane memory type.  Maybe it is even printed to kernel log at boot time. [[User:fanoush|fanoush]] 12:15, 17 July 2008 (UTC)


:::i was under the impression the dispc framebuffer driver was used on ti development boards within monte-vista and not touched or initialized at all by maemo at present.  we initialize omapfb and talk to the blizzard low level interface without mention of any on OMAP memory (technically the blizzard doesn't even know or care that it is sitting on an OMAP motherboard).
:::With the omapfb, there are multiple planes and from what I understand all are allocated in standard SDRAM.
:::The way I am thinking of utilizing the SRAM would be to allocate a buffer similar to the dispc SRAM based frambuffer, then after rendering, update a frame by pushing the data out to the already allocated blizzard SDRAM buffer (using the IVA to perform RGB-&gt;YUV conversion if required per the display mode) and then tell blizzard to update.
:::Sure, its a longer path but right now (because of lack of information) I am not sure we can tell the powervr to render directly to SDRAM.  If it is possible it may also give applications a fast RGB pixelbuffer to do non 3d fancy things which are limited at present by SDRAM access speeds.  --[[Special:Contributions/80.0.224.233|80.0.224.233]] 13:31, 17 July 2008 (UTC)
:::I believe the ompafb we do use was originally created to support the omap1 processor family which had to use an external lcd because it did not have a SRAM framebuffer or direct video out from the chip (it didnt have its own graphics card).  --[[Special:Contributions/80.0.224.233|80.0.224.233]] 13:52, 17 July 2008 (UTC)


:::Now that's interesting, it is not in SRAM indeed. At least in Diablo/N810. Will check OS2007/N800 but most probably it will be similar.
::: omapfb: s1d13745 LCD controller rev 1 initialized (CNF pins 3)
::: omapfb: region0 phys 80600000 virt ffa01000 size=770048 type=0
::: omapfb: region1 phys 80700000 virt ffabd000 size=786432 type=0
::: omapfb: region2 phys 87c00000 virt ffb7d000 size=1572864 type=0
::: omapfb: Framebuffer initialized. Total vram 3129344 planes 3
:::So why they added plane support in SRAM is beyond me 8-0 [[User:fanoush|fanoush]] 14:35, 17 July 2008 (UTC)


:::Huh, I was right after all. This is OS2007/N800
::: omapfb: region0 phys 87e00000 virt ffa01000 size=770048 type=0
::: omapfb: region1 phys 4022f000 virt d002f000 size=462848 type=1
::: omapfb: region2 phys 87f00000 virt ffabd000 size=770048 type=0
::: omapfb: Framebuffer initialized. Total vram 2002944 planes 3
:::I wonder why they disabled it in OS2008 (or maybe Diablo?) --[[User:fanoush|fanoush]] 15:51, 17 July 2008 (UTC)


:::fanoush, very interesting indeed and would appear to confirm the need for clear documentation.  --[[User:lcuk|lcuk]] 21:10, 17 July 2008 (UTC)


:::The 2.6.18 kernel has it defined in arch/arm/mach-omap2/board-n800.c, second plane is defined in SRAM with size 640x480x12bpp. This is no longer true since first 2.6.21 kernel used in OS2008 (defined in same source). True that planes are defined to be much larger so they would no longer fit into SRAM. The third plane now has space for two full 800x480 frames. --[[User:fanoush|fanoush]] 06:33, 18 July 2008 (UTC)

== justification point ==

Word &quot;justification&quot; in the title implies that we are supposed to justify it to Nokia (or other IP holder) why we need this information. For good justification, we have to show what value &lt;b&gt;IP holder&lt;/b&gt; gets from disclosing information, not what value the community gets. Here is the justification I suggest:

* Among Maemo community there are many people who are willing to perform &lt;b&gt;for free&lt;/b&gt; work that companies would have to hire embedded software engineers to do.
* Some of these people have already proven that they have enough qualification to do the job.
* An embedded software engineer costs company at least $75,000 on the average. Thus, if somebody does the same work for free, this leads to direct cost savings to IP holders.
* Even if a project is of no direct interest to the IP holder &lt;b&gt;at this moment&lt;/b&gt;, there is no cost to the IP holder, so there is no risk.
* Just about any popular system functionality extension to the Maemo platform (A2DP, rotated display, etc.) greatly increases value of the platform to end users (not necessarily developers). Therefore, even if the company sees no direct use for the feature, it still helps the company to sell more products.

What do we expect from Nokia and other IP holders:

* Give &lt;b&gt;certain qualified people&lt;/b&gt; from the Maemo community access to documentation after signing all proper NDAs.
* Give these people some qualified advice from engineers inside the company.
* Accept work from these people and integrate it into official software releases as necessary.

== example fast cpu rendering ==

selfless link to liqbase, whether it needs to be seen on the frontpage to show the differences to normal rendering?
http://www.youtube.com/watch?v=PUPp_mE7rwI

== The GPL violation issue ==

I have started circulating the draft and I got already some interesting feedback.

So we have a driver used strictly internally and strictly for R&amp;D purposes. This driver was done for the 2.4 kernel. When moved to 2.6 we have problems with GPL license violations, which we could ''solve'' in three ways:

# &lt;irony&gt;Keep the driver as it is and leave the driver installation to you. This way we do not distribute GPL violating drivers, but this way you are using GPL violating drivers.&lt;/irony&gt;
# &lt;irony&gt;We hack the GPL checking from the kernel we will ship, so no GPL violation (but loads of upset kernel developers?)&lt;/irony&gt;
# We spend a lot of time and money rewriting the driver to be shippable without any kernel changes or violations (not very feasible on our side, I tell you)

Note that in the points above we are not even mentioning TI, who needs to agree in the game since at the end they are the ones licensing the driver.

This is not last word. I will be posting here feedback as I get it.--[[User:qgil|qgil]] 10:12, 17 July 2008 (UTC)
:IANAL, but I don't think (1) is viable: the driver is still a derived work, even if you don't bundle it yourself. (2) would cause so much negative press as to be unbelievable and would cause serious harm to the platform (and so the community). One possible option would be to contract an external community member (or members) under NDA to receive the driver and its source with the understanding that it is not for distribution. For all intents and purposes this is therefore still Nokia internal use. That developer can then do option (3). --[[User:jaffa|Jaffa]] 11:06, 17 July 2008 (UTC)
::Good to see that we are in the same page. The first two options are listed as mathematical possibilities but in real terms are No-Go. About the third option, in principle I see a problem combining &quot;community member&quot; and &quot;NDA&quot; since normally NDAs are signed with individuals in companies or other types or organizations (e.g. universities, research centers...). In any case the organization that helps external developers getting contracts signed is Forum Nokia. Kate Alhola is the Maemo contact there and in fact she is interested and working in finding a way to get this puzzle sorted out in some way. I have sent her a link to this page. You know her as well. looks like a way to see if it's possible to move forward. In any case I keep the feedback channel open in my side and I will report here anything new.--[[User:qgil|qgil]] 18:06, 17 July 2008 (UTC)
:Note: The 2. alternative, just disabling the GPL check is really not on option that Nokia can do at all, it was just mentioned indicating there is no good and acceptable way that Nokia can do for shipping the driver. [[User:kate|kate]] 08:52, 21 July 2008 (UTC)


We are having discussions with TI if we could find reasonable terms to get driver released to developers. At the moment i see two options:
# We get from TI version that fills our requirement about being GPL compliant 
# TI/Imagination technologies will directly distribute version in their download page [http://www.imgtec.com/powervr/insider/sdkdownloads/index.asp#GLES1b]
# If there is some volunteer from community that is willing to fix the driver, I can try to help get NDA or other reasonable terms for it. 
[[User:kate|kate]] 10:52, 21 July 2008 (UTC)


*bump: for anyone monitoring this page, can we have a written update please?  --[[User:lcuk|lcuk]] 16:58, 30 October 2008 (UTC)

qgil stated, [http://internettablettalk.com/forums/showthread.php?p=237998#post237998 on 30-Oct-2008]: &quot;For what I know, the situation is still [unchanged] ... [T]he ball is currently not in Nokia's terrain and the Fremantle release has little to do with all this topic. :/&quot; --[[User:qole|qole]] 23:06, 3 November 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Easy Debian</title>
    <id>4277</id>
    <revision>
      <id>49254</id>
      <timestamp>2012-08-28T10:58:17Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Easy Debian]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">If you find any problems with the instructions in the wiki, please discuss that in the following two threads, depending on whether it's got to do with N900/Fremantle or the older Diablo version:

* [http://talk.maemo.org/showthread.php?t=34550 Easy Debian Fremantle Beta Testing] (N900)
* [http://talk.maemo.org/showthread.php?t=34713 Easy Debian Diablo Beta Testing] (N810)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Easy Debian/</title>
    <id>5083</id>
    <revision>
      <id>46246</id>
      <timestamp>2012-01-06T21:03:03Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 46245 by [[Special:Contributions/Tolinakopa|Tolinakopa]] ([[User talk:Tolinakopa|Talk]]) removed SPAM</comment>
      <text xml:space="preserve">FSCK OFF tolinakopa!</text>
    </revision>
  </page>
  <page>
    <title>Talk:Evopedia</title>
    <id>3740</id>
    <revision>
      <id>30876</id>
      <timestamp>2010-03-09T15:53:17Z</timestamp>
      <contributor>
        <ip>84.222.205.22</ip>
      </contributor>
      <comment>New page: Hi, is it possible to: # make Evopedia independent from midori? I have to keep it installed even if I use Ventura # make categories navigable? &lt;small style=&quot;background:#f00&quot;&gt;'''★ [http:/...</comment>
      <text xml:space="preserve">Hi, is it possible to:
# make Evopedia independent from midori? I have to keep it installed even if I use Ventura
# make categories navigable? &lt;small style=&quot;background:#f00&quot;&gt;'''★ [http://it.wikipedia.org/wiki/Utente:Airon90 &lt;span style=&quot;color:#000&quot;&gt;→ A&lt;/span&gt;][http://it.wikipedia.org/wiki/Speciale:Contributi/Airon90 &lt;span style=&quot;color:#f00;background:#000&quot;&gt;ir&lt;/span&gt;][http://it.wikipedia.org/wiki/Discussioni_utente:Airon90 &lt;span style=&quot;color:#000&quot;&gt;on Ĉ&lt;/span&gt;]'''&lt;/small&gt;</text>
    </revision>
  </page>
  <page>
    <title>Talk:Ext2 file system on flash card partition</title>
    <id>1293</id>
    <revision>
      <id>28143</id>
      <timestamp>2010-02-02T15:45:55Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Moving system directories to a flash card]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Extras</title>
    <id>3174</id>
    <revision>
      <id>50493</id>
      <timestamp>2012-10-27T00:35:06Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Extras]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">should this be rather on beginners -side? would seem more logical atleast to me--[[User:ossipena|ossipena]] 22:03, 11 December 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Extras-testing</title>
    <id>2539</id>
    <revision>
      <id>50428</id>
      <timestamp>2012-10-25T10:37:18Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">Comments from TeroK moved to [[Talk:Extras-testing/QA Checklist]]

- As far as 'process tracing' and other process measurements by users, we ought to describe how one does this, at least give an idea of what tools are involved. (Jeremiah)

A lot is needed to move to [[Help testing software]] -article and make this and that synchronized so that there is no overlapping etc. --[[User:ossipena|ossipena]] 07:48, 1 December 2009 (UTC)



----

Following comment moved from main page to here. Please consider that a wiki is no forum, and deleting huge passages of correct and informative text just to dump a rant without even any signature to show who's the author... that's not how a wiki should get used! 
A note to anonymous original author of that rant: Nokia won't probably read this wiki, and actually has dropped maemo at large, since quite some time now - just in case you didn't notice. So, considering these facts, please ponder what's the information you provided to your co-customers/users and if you maybe should choose a better channel than this wiki to let Nokia know about your feelings. Tip: Nokia Care

========== original post ==========
  l find it unbelievable that you would knlignwoy fragment the installed base by not providing an update to 770. Not only are you letting the owners, your early adopters down, which is bad in itself, but screwing third party developers by doubling build-, test- and distribution workload is no way to build trust for the platform. Frankly, it shows Nokia has a few things to learn about the difference between closed and open systems.
========== end original post ==========
--[[User:joerg_rw|joerg_rw]] 10:27, 25 October 2012 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Extras-testing/Command line applications</title>
    <id>3733</id>
    <revision>
      <id>30755</id>
      <timestamp>2010-03-08T15:23:56Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>Daemon requirement?!</comment>
      <text xml:space="preserve">''Pure daemons''
* Daemons like &quot;OpenSSH server&quot; and plugins like &quot;Extra decoders&quot; shouldn't need to have this icon. They should still have a clear description, but this should be for applications which won't do anything unless launched via X Terminal --[[User:jaffa|Jaffa]] 15:23, 8 March 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Extras-testing/QA Checklist</title>
    <id>3010</id>
    <revision>
      <id>22537</id>
      <timestamp>2009-11-12T08:18:53Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Talk:Extras-testing/QA Checklist]] moved to [[Talk:Extras-testing/QA checklist]]: Capitalisation</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Extras-testing/QA checklist]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Extras-testing/QA checklist</title>
    <id>2820</id>
    <revision>
      <id>41928</id>
      <timestamp>2011-02-22T09:26:56Z</timestamp>
      <contributor>
        <username>feri</username>
        <id>2</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/94.100.25.194|94.100.25.194]] ([[User talk:94.100.25.194|Talk]]); changed back to last version by [[User:Dneary|Dneary]]</comment>
      <text xml:space="preserve">== What is unacceptable power usage? ==
*Waking the device from sleep every minute?
*Waking the device at all if not in foreground?

This is complicated. Maybe someone can define rules this way? For starters, I think is good to concentrate on user perceived issues: do you feel the battery lasts less time since you installed that widget? Then hopefully at least the top apps in terms of downloads should be tested using the right tools.--[[User:qgil|qgil]] 11:11, 23 October 2009 (UTC)

There are power tools available, just that their documentation isn't there yet.
The internal limits of waking up were pretty tight. But it really is about the type of application, if you want to wardrive for WLANs, then you accept the fact that your battery will be flat really fast.
At least widgets shouldn't do anything if not on screen.--[[User:tekojo|tekojo]] 20:02, 24 October 2009 (UTC)

== Security risks? ==
* Connecting to the net without a reason?
** The trick is to know when it's &quot;without a reason&quot; or even if it's the app who is creating the connection or something else. In any case these random or unrequested connections can be cause of a bug and might have an impact in power management and even financial loss, so it's good to ask about them.--[[User:qgil|qgil]] 11:11, 23 October 2009 (UTC)

* I'd rephrase &quot;MUST NOT contain known security vulnerabilities&quot; and &quot;MUST specify a security vulnerability reporting contact point&quot;.
** This would take the ambiguity out of a security *risk* (almost nothing is risk-free). Vulnerabilities, however, are more tangible. There is, of course, still a class of vulnerabilities that could result in a debate, but much less so than when talking about risk.
** &quot;Known&quot; is also tricky - known by whom? - but it could suffice, as if anyone who is actually involved in this QA checking &quot;knows&quot;, it would trigger this.
** The contact point would usually be an email address and perhaps an associated GPG key, but the bug tracker could also suffice if the project is really keen on full disclosure. --[[User:avs|avs]] 18:30, 28 October 2009 (UTC)

== Qt ==
* How about the criteria for Qt applications? Current Qt -&gt; Maemo look is coming. That can't block the way.
** The toolkit is totally irrelevant in the QA process. As long as the app goes through the usual testing without blockers, it can go to Extras.--[[User:qgil|qgil]] 11:11, 23 October 2009 (UTC)
** What if testing finds an issue that is in Qt (or Python for that matter)? Can we trust that the underlying level is ok? 
** And if we can, it might make some parts of testing really simple, just check what parts of Qt the app uses and based on that skip most test cases.--[[User:tekojo|tekojo]] 20:07, 24 October 2009 (UTC)

== Checking root filesystem usage ==

Quick'n'dirty script:

&lt;pre&gt;
#!/bin/sh

if [ -z &quot;$1&quot; ]; then
        echo &quot;Usage: $0 &lt;packagename&gt;&quot;
        exit 1
fi

if dpkg -l $1 &gt; /dev/null ; then
        NONOPT=$(dpkg -L $1 | egrep -v &quot;^/(opt|home)&quot; | while read path; do
                [ ! -e $path -o -d $path -o -L $path ] &amp;&amp; continue
                echo &quot;$path&quot;
        done)
        [ -n &quot;$NONOPT&quot; ] &amp;&amp; du -ck $NONOPT
fi
&lt;/pre&gt;

== Bug tracker ==

XSBC-Bugtracker is a &quot;blocker&quot;. However, many applications are often too trivial to make it worth the admin. There are three options:

# ''XSBC-Bugtracker: mailto:foo@example.com'' is a supported and encouraged solution.
# It is not a blocker.
# It is considered part of the spec that if ''XSBC-Bugtracker'' is missing, it is implicitly the maintainer's email address.

--[[User:jaffa|Jaffa]] 12:03, 26 October 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Feeds</title>
    <id>2987</id>
    <revision>
      <id>22322</id>
      <timestamp>2009-11-10T11:15:42Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">is this article necessary? --[[User:ossipena|ossipena]] 07:16, 10 November 2009 (UTC)

For me, it should be included in an &quot;About the Maemo community&quot; or &quot;Maemo News&quot; page, listing various news resources. No need for it to be stand-alone. --[[User:dneary|Dave Neary]] 11:15, 10 November 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:First Steps With Your Nokia Tablet</title>
    <id>2980</id>
    <revision>
      <id>45886</id>
      <timestamp>2011-11-29T01:25:55Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45883 by [[Special:Contributions/193.105.210.88|193.105.210.88]] ([[User talk:193.105.210.88|Talk]]) SPAM</comment>
      <text xml:space="preserve">Can we please consolidate new user information like this so that the user knows what to read &amp; where? There's Maemo 101, New Users, Basics, Frequently Asked Questions, Questions and Answers and more. We need to get all this stuff together before it overflows.
--[[Special:Contributions/88.163.116.163|88.163.116.163]] 20:45, 9 November 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Free up rootfs space</title>
    <id>3613</id>
    <revision>
      <id>29684</id>
      <timestamp>2010-02-17T20:57:58Z</timestamp>
      <contributor>
        <ip>99.11.227.186</ip>
      </contributor>
      <comment>New page: Hi I added the simple command 'df' to list the actual rootfs space.  I didn't know that, very useful obviously.  Is it possible to add commands to first show how to 'check' if each suggest...</comment>
      <text xml:space="preserve">Hi I added the simple command 'df' to list the actual rootfs space.  I didn't know that, very useful obviously.

Is it possible to add commands to first show how to 'check' if each suggestion applies to you?  For instance, should I optify pymaemo?  How do I know if i need to, what commands do I type in?</text>
    </revision>
  </page>
  <page>
    <title>Talk:Fremantle Bluetooth Keyboard Layout</title>
    <id>4908</id>
    <revision>
      <id>46499</id>
      <timestamp>2012-01-23T15:10:00Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <comment>Remove older spam</comment>
      <text xml:space="preserve">== MS Bluetooth Notebook Mouse 5000 not working ==

Hi durden 
 
I have the ACER aspire 4820T that comes with bluetooth inbuilt. I have the Microsoft bluetooth mouse 5000. I have always been using it with no problems. Suddenly it stopped working. 
 
As usual, I thought I can just re-installing it by using the pairing function under the bluetooth panel &quot;Add a device&quot;. Best part is the wizard just keeps going and never stops. My mouse is already in pairing mode. 
 
Next check under devices/printers and believe it or not, it appears as indicated. However under the bluetooth control panel (Show Bluetooth devices), no mouse. In the devices &amp; printers panel, the mouse shows up. 
 
I cannot use the mouse or do a manual installation. 
 
I have also tried to upgrade the drivers for the bluetooth and still not working. Tried the mouse with another computer and no problem. Can anybody advise how to do a reset of the bluetooth module or settings? 
 
Short of a complete reinstallation of win 7 (which I hope to avoid just for one mouse), I have run out of ideas. 
 
Hope somebody can render any insight as to how to resolve the issue. 
 
Durden, did you contact Acer support about this? I tried to but they just blame the mouse and software? Any luck on your side? 
 
Thanks for reading.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Fremantle Stars</title>
    <id>2353</id>
    <revision>
      <id>17052</id>
      <timestamp>2009-08-29T09:29:20Z</timestamp>
      <contributor>
        <username>timn</username>
        <id>1078</id>
      </contributor>
      <comment>Added question about adblock plus</comment>
      <text xml:space="preserve">= Adblock Plus =
Are there any plans to bring adblock plus (http://browser-extras.garage.maemo.org/news/5/) to Maemo 5? Especially on a mobile device with smaller screens (than desktops) and data volume based contracts this would be most useful -- [[User:timn|timn]] 09:29, 29 August 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Fremantle closed packages/</title>
    <id>5154</id>
    <revision>
      <id>47239</id>
      <timestamp>2012-04-12T14:45:34Z</timestamp>
      <contributor>
        <username>albertin</username>
        <id>5118</id>
      </contributor>
      <comment>Nive to meet you</comment>
      <text xml:space="preserve">Hello My name is Albertin. I am very interest this forum. 
http://givaleriks.com - this is my site</text>
    </revision>
  </page>
  <page>
    <title>Talk:Frequently asked questions</title>
    <id>3140</id>
    <revision>
      <id>27447</id>
      <timestamp>2010-01-26T14:32:30Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:User FAQ]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:GSoC 2010</title>
    <id>3793</id>
    <revision>
      <id>31673</id>
      <timestamp>2010-03-27T16:09:26Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <text xml:space="preserve">i have an idea to create a multimedia application in mobiles. how can i propose it?
You should post it on the mailing list.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Geocaching</title>
    <id>2349</id>
    <revision>
      <id>16989</id>
      <timestamp>2009-08-26T17:53:09Z</timestamp>
      <contributor>
        <username>mve</username>
        <id>109</id>
      </contributor>
      <comment>New page: *  Some native speaker should fix all errors in this text.   *  Should these images be smaller?</comment>
      <text xml:space="preserve">*  Some native speaker should fix all errors in this text. 

*  Should these images be smaller?</text>
    </revision>
  </page>
  <page>
    <title>Talk:Getting media content onto your tablet</title>
    <id>787</id>
    <revision>
      <id>47257</id>
      <timestamp>2012-04-16T07:40:54Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/109.194.136.216|109.194.136.216]] ([[User talk:109.194.136.216|Talk]]); changed back to last version by [[User:Jaffa|Jaffa]]</comment>
      <text xml:space="preserve">this should be renamed to &quot;Streaming media to your tablet&quot;. The article on video encoding is more of a &quot;getting media content onto your tablet&quot; I think than this article.
:Please sign your edits with &lt;nowiki&gt;--~~~~&lt;/nowiki&gt;. However, even more than that, this content should be moved to the Streaming video section of [[Video encoding]]. --[[User:jaffa|Jaffa]] 14:09, 15 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Getting started with Sardine</title>
    <id>615</id>
    <revision>
      <id>3246</id>
      <timestamp>2008-06-28T19:42:45Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Delete?</comment>
      <text xml:space="preserve">Proposing to delete this page since Sardine doesn't exist anymore.--[[User:qgil|qgil]] 19:42, 28 June 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Git For Garage</title>
    <id>1362</id>
    <revision>
      <id>13927</id>
      <timestamp>2009-06-03T16:32:29Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>/* git.maemo.org without garage project */</comment>
      <text xml:space="preserve">== git.maemo.org without garage project ==

A project should be able to use git.maemo.org without having to create a garage project. This is specially true for the Nokia teams and releases. For instance, some teams might think of using git.maemo.org as default platform for development and send the packages to the Maemo SW integration from there. Having a maemo.org account (= &quot;garage account&quot;) is fine. Is this possibility being contemplated?--[[User:qgil|qgil]] 10:25, 1 December 2008 (UTC)
:Yes, it is possible. However the starting point for creating a git repository was planned to be at garage. I have to re-think the setup if a project does not need to have a garage entry first. We should remember that having a garage project does not mean that we have to utilize all the GForge features. Every project can disable any GForge module, so a Nokia project may just use garage for account management and SCM (source code management) purposes. All other modules, like tracker, forum, lists would be disabled.--[[User:feri|feri]] 10:50, 1 December 2008 (UTC)
::Still, if we are talking about hundreds of components in the Maemo platform... There is really no point opening hundreds of garage projects because of that.--[[User:qgil|qgil]] 12:14, 1 December 2008 (UTC)
:::How would those projects like to handle the account management? Garage offers the framework. If we go to a custom solution then we will end up where we started in 2005 with the subversion repositories. The solution for adding new users and granting access to repositories for svn still works today, so nothing against it, but it is more difficult to maintain then garage. Garage can easily handle a few hundred more projects. We may move the stuff to one or more dedicated server once, but this move should be anyway done next year. --[[User:feri|feri]] 12:22, 1 December 2008 (UTC)
::::I imagine git.maemo.org similarly to http://git.collabora.co.uk/ , where the Maemo SW projects are identified as e.g. /nokia/whatever.git or something. If each project needs a garage project then I guess all code needs to be uploaded manually by each time in each location. Instead, what would happen if we would hav weekly bulks of the whole Maemo sources under development or something like that? There is something I don't see about the total subordination to Garag, which is that we have clear need for a git.maemo.org where Nokia and the community can share sources and contributions, and the need for garage projects is quite minor compared to this (in my humble opinion).--[[User:qgil|qgil]] 19:30, 3 December 2008 (UTC) 
::::Can a garage project inherit permissions from another garage project? If I run 10 projects, I don't want to have to grant the same permissions to each one, and it's likely that I could run projects in such a configuration (10 distinct things that should be tracked, but the same engineers working across them). I've seen people try to use trac for this purpose, and it's pretty much a disaster [[User:timeless|timeless]] 12:44, 1 December 2008 (UTC)
:::::There is no such feature in GForge by default, but I could add it. --[[User:feri|feri]] 13:02, 1 December 2008 (UTC)
: Longer term could [http://gitorious.org gitorious.org] be integrated? Nokia/Qt already sponsors this and it provides really good team and ACL support. [[User:lbt|lbt]] 16:32, 3 June 2009 (UTC)

== Centralized view of all the projects hosted in git.maemo.org ==

Just to make sure: will it be possible to browse all the projects hosted in git.maemo.org from a centralized location? A problem with svn at garage is that you have to go project by project to know what is in there.--[[User:qgil|qgil]] 10:25, 1 December 2008 (UTC)

:Yes, it will be possible. --[[User:feri|feri]] 10:50, 1 December 2008 (UTC)

::MXR supports git, so it can index git repos just as easily as it indexes svn repos ([http://mxr.maemo.org/garage mxr]). the only issue is again knowing when new gits (or svns) are created. [[User:timeless|timeless]] 12:41, 1 December 2008 (UTC)
:::Create an interface and GForge will send the info whenever such event is triggered. --[[User:feri|feri]] 13:03, 1 December 2008 (UTC)feri

like front page of git.kernel.org, git.freedesktop.org, git.debian.org, git.maemo.org should give a list of all git projects with gitweb (or cgit).

== Any way to distinguish the Nokia projects? ==

Would it be a way to easily distinguish the Nokia projects from the rest? I'm not even sure this is needed or useful, but it might be a useful detail. In the worst case we could create a plain HTML/wiki index somewhere and link the relevant projects from there.--[[User:qgil|qgil]] 10:25, 1 December 2008 (UTC)

:At &quot;registration&quot; time (let it be on garage or elsewhere) we can certainly ask a checkbox to be ticked in case of a Nokia project, but the question is where to store this info and how to re-use. If we had the garage entry only than it would not be a problem, since we have this feature already. --[[User:feri|feri]] 10:50, 1 December 2008 (UTC)

== SVN Supported ==

Is this opening up GIT for those who like GIT, but leaving SVN still fully supported for those who prefer SVN?   Or is the long term goals to depreciate SVN for GIT? --[[User:nathanael|nathanael]] 21:43, December 03, 2008 (UTC)
:This is just about adding git support.--[[User:qgil|qgil]] 21:00, 4 December 2008 (UTC)

== Per-user git repositories ==

Sure, branches on a project repository is nice and all, but alike launchpad, it could be nice for users to have a git repository of their own to post to, which could enable easier merging of patches from that users' branches. Is this something that could be considered? Would be very useful for Mer development, i suspect. Also, is the plan to have /project/&lt;one or more repositories&gt; ? or only one repository possible per project? --[[User:stskeeps|stskeeps]] 19:02, 9 December 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Greeters</title>
    <id>2945</id>
    <revision>
      <id>22018</id>
      <timestamp>2009-11-07T09:45:27Z</timestamp>
      <contributor>
        <username>corefusion</username>
        <id>1395</id>
      </contributor>
      <text xml:space="preserve">PLEASE IF YOU EDIT ONE SIGNATURE, EDIT THE ANOTHER TOO!!!! --[[User:ossipena|ossipena]] 05:20, 6 November 2009 (UTC)

It could be a good idea to add the languages the greeters speak after their name in this list.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Hebrew</title>
    <id>3158</id>
    <revision>
      <id>26968</id>
      <timestamp>2010-01-19T23:42:22Z</timestamp>
      <contributor>
        <username>jayford</username>
        <id>1718</id>
      </contributor>
      <text xml:space="preserve">Why merge N900 and N810/N800/770? It was more readable previously? (Matan.)

- You haven't responded (had here a comment before), but I agree on readability and I reverted the merge, also added SMS aligning and RTL. (jayford)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Help testing software</title>
    <id>3126</id>
    <revision>
      <id>23950</id>
      <timestamp>2009-12-04T07:08:56Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <comment>New page: this is colliding with [[Extras-testing]] -article. I'm really busy for now but I hope I have time before christmas to get some improvements done... --~~~~</comment>
      <text xml:space="preserve">this is colliding with [[Extras-testing]] -article. I'm really busy for now but I hope I have time before christmas to get some improvements done... --[[User:ossipena|ossipena]] 07:08, 4 December 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:How To Setup NFS</title>
    <id>159</id>
    <revision>
      <id>1064</id>
      <timestamp>2008-06-06T18:07:03Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Talk:How To Setup NFS]] moved to [[Talk:Setting up NFS]]: Midgard</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Setting up NFS]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:How To Use Touch Screen Pressure Data</title>
    <id>161</id>
    <revision>
      <id>1074</id>
      <timestamp>2008-06-06T18:14:17Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Talk:How To Use Touch Screen Pressure Data]] moved to [[Talk:Using touch screen pressure data]]: Midgard</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Using touch screen pressure data]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:How to Boot the root filesystem from MMC</title>
    <id>38</id>
    <revision>
      <id>138</id>
      <timestamp>2008-05-24T15:25:05Z</timestamp>
      <contributor>
        <ip>65.244.131.148</ip>
      </contributor>
      <comment>New page: copied from https://maemo.org/community/wiki/howto_bootrootfsfrommmc/#f91bc2f2279cc505cada7ff9b53b3674 --~~~~</comment>
      <text xml:space="preserve">copied from https://maemo.org/community/wiki/howto_bootrootfsfrommmc/#f91bc2f2279cc505cada7ff9b53b3674 --[[Special:Contributions/65.244.131.148|65.244.131.148]] 15:25, 24 May 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:How to Flash Nokia Web Tablet with MacOSX</title>
    <id>79</id>
    <revision>
      <id>349</id>
      <timestamp>2008-05-27T04:28:27Z</timestamp>
      <contributor>
        <username>ludovicus</username>
        <id>13</id>
      </contributor>
      <comment>New page: originally from https://maemo.org/community/wiki/howto_flashlatestnokiaimagewithmacosx/ --~~~~</comment>
      <text xml:space="preserve">originally from https://maemo.org/community/wiki/howto_flashlatestnokiaimagewithmacosx/ --[[User:ludovicus|ludovicus]] 04:28, 27 May 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:How to Play OGG Files</title>
    <id>167</id>
    <revision>
      <id>1091</id>
      <timestamp>2008-06-06T18:25:44Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Talk:How to Play OGG Files]] moved to [[Talk:Playing OGG files]]: Midgard</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Playing OGG files]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:How to USB Network with Debian</title>
    <id>195</id>
    <revision>
      <id>21103</id>
      <timestamp>2009-10-27T00:37:32Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <comment>Redirecting to [[Talk:USB Networking with Debian]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:USB Networking with Debian]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:How to Use Valgrind GdblnScratchbox</title>
    <id>190</id>
    <revision>
      <id>33569</id>
      <timestamp>2010-04-27T12:39:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix broken redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Documentation/Maemo_5_Developer_Guide/Kernel_and_Debugging_Guide/Maemo_Debugging_Guide]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:How to personalize your N900</title>
    <id>3426</id>
    <revision>
      <id>26989</id>
      <timestamp>2010-01-20T10:12:38Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <text xml:space="preserve">this is a duplicate for [[Customizing Maemo]] --[[User:ossipena|ossipena]] 10:11, 20 January 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Howto Fix Maemo</title>
    <id>2765</id>
    <revision>
      <id>20487</id>
      <timestamp>2009-10-19T16:13:52Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Talk:Howto Fix Maemo]] moved to [[Talk:Troubleshooting]]: Not a good name. Needs more content also.</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Troubleshooting]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Howto integrate Bluetooth IP networks into connection manager</title>
    <id>118</id>
    <revision>
      <id>791</id>
      <timestamp>2008-06-03T02:06:37Z</timestamp>
      <contributor>
        <username>ludovicus</username>
        <id>13</id>
      </contributor>
      <comment>New page: originally at https://maemo.org/community/wiki/bluetoothnetworkingandconnectionmanager/ --~~~~</comment>
      <text xml:space="preserve">originally at https://maemo.org/community/wiki/bluetoothnetworkingandconnectionmanager/ --[[User:ludovicus|ludovicus]] 02:06, 3 June 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:ISP Move</title>
    <id>3005</id>
    <revision>
      <id>22474</id>
      <timestamp>2009-11-11T18:32:58Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Talk:ISP Move]] moved to [[Talk:ISP move]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:ISP move]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:ISP move</title>
    <id>2978</id>
    <revision>
      <id>22473</id>
      <timestamp>2009-11-11T18:32:58Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>[[Talk:ISP Move]] moved to [[Talk:ISP move]]</comment>
      <text xml:space="preserve">should this be removed entirely? --[[User:ossipena|ossipena]] 20:06, 9 November 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Installing PyKaraoke</title>
    <id>2246</id>
    <revision>
      <id>16172</id>
      <timestamp>2009-08-04T21:43:41Z</timestamp>
      <contributor>
        <ip>76.105.223.81</ip>
      </contributor>
      <comment>Help with installation</comment>
      <text xml:space="preserve">Hi. Thank you for posting this. I am trying to install this on my N810 to add to my business... but alas I know nothing about programming. As soon as you started talking about creating directories I got lost. Anyone have a link for a newbie on how to do this stuff?</text>
    </revision>
  </page>
  <page>
    <title>Talk:KDE on scratchbox for maemo 5</title>
    <id>3794</id>
    <revision>
      <id>31659</id>
      <timestamp>2010-03-27T13:08:04Z</timestamp>
      <contributor>
        <username>tstaerk</username>
        <id>1691</id>
      </contributor>
      <comment>New page: amigadave, since you have changed this article, it does not work any longer for me. Can you please correct it? First thing is I cannot do  /scratchbox/login and you do not explain what use...</comment>
      <text xml:space="preserve">amigadave, since you have changed this article, it does not work any longer for me. Can you please correct it? First thing is I cannot do
 /scratchbox/login
and you do not explain what user to do it as. This is costing my time. --[[User:tstaerk|tstaerk]] 13:08, 27 March 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Karma</title>
    <id>2428</id>
    <revision>
      <id>21081</id>
      <timestamp>2009-10-26T17:59:05Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">Could someone &quot;who knows&quot; add the update intervals for the various karma elements to the page? Perhaps also note who the maintainer of the karma system is.  --[[User:twaelti|tom2]] 06:42, 16 September 2009 (UTC)

:&quot;We calculate it for a set of users per hour, I think something like 500 users per hour, starting from the accounts that have been updated last. &quot; [http://talk.maemo.org/showthread.php?t=33491&amp;highlight=karma forum: karma update interval] [[User:guaka|guaka]] 17:58, 26 October 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Kernel Power</title>
    <id>4196</id>
    <revision>
      <id>50132</id>
      <timestamp>2012-10-10T17:52:00Z</timestamp>
      <contributor>
        <username>pali</username>
        <id>2764</id>
      </contributor>
      <comment>Undo revision 50131 by [[Special:Contributions/91.237.249.140|91.237.249.140]] ([[User talk:91.237.249.140|Talk]])</comment>
      <text xml:space="preserve">== Adding kernel usage information to this page ==

I believe that no one should read a 31 pages thread to get information about how to use the kernel, especially now when it's in Extras. 

That's why I'm going to start adding information about how to use the new modules. Unfortunatly I don't have a lot of spare time so I urge you all to help so people would be able to make the most out of this kernel. --[[User:jayford|jayford]] 09:37, 29 May 2010 (UTC)

== rootsh ==

It looks like rootsh doesn't work anymore, at least on my N900.
I had to:
* fix /var/lib/dpkg/info/rootsh.prerm, adding '''then''' to the script: http://talk.maemo.org/showthread.php?t=42327
* completely uninstall rootsh, from Application Manager
* install rootsh again.
Now both '''sudo gainroot''' and '''root''' works again.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Killer Apps</title>
    <id>3270</id>
    <revision>
      <id>25310</id>
      <timestamp>2009-12-29T17:38:08Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Talk:Killer Apps]] moved to [[Talk:Killer apps]]: capitalisation</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Killer apps]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Killer apps</title>
    <id>1298</id>
    <revision>
      <id>25309</id>
      <timestamp>2009-12-29T17:38:08Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Killer Apps]] moved to [[Talk:Killer apps]]: capitalisation</comment>
      <text xml:space="preserve">== Software wish-list ==

Somebody want to work on merging the [[software wish-list]] and this page, and deleting whichever one you feel should go? —[[User:generalantilles|GeneralAntilles]] 05:09, 28 October 2008 (UTC)


== The calendar topic ==
OK, mCalendar is great, but I still don't think it's a suitable app to say &quot;a calendar is implemented&quot;.  Hold it up next to the calendar on the wall.  Does it even LOOK like a calendar?   To most people, calendar == month view.  I applaud the decision to make sync an integral part of the program, as well as making it finger-friendly, but If I tried to use it to keep my schedule, I'd be dead.

Agendus was very good.  Pocket Informant was much much better.  Mostly because he was willing to listen to users and apply suggestions.

My calendar expectations: Day view, multi (i.e. 3) day view.  Week and 2 week view.  Month view with icons.  Filtered list view.  Per-appointment colors and fonts.  Different alarm sounds per appointment.  Recurring tasks.  Integration of tasks into the calendar.  Simple on-the-go appointment/task entry.  Sync and/or backup.  Multiple calendars.  More to come...
--[[User:boxofsnoo|boxofsnoo]] 13:00, 29 October 2008 (UTC)

datebook from Pimlico is a really great palm application, as it builds on top of the palm app, so everything works as before but gets extended.. I was very happy to pay real money for a license.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Knots2</title>
    <id>3341</id>
    <revision>
      <id>48994</id>
      <timestamp>2012-08-08T17:03:00Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Knots2]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">==Windows Installation==
Is it really that hard to get a proper windows installer working?  I mean seriously, I shouldn't even have to download VLC myself if your program requires it, the installer should just prompt me to install it, let me click yes, then do it itself.  Let alone having to download git (whatever the fuck that is) and COPYING AND PASTING RANDOM FILES INTO MY WINDOWS/SYSTEM32 folder are you serious?  The installer should do that.

== Windows Install ==

Thank you for your kind words. Please click on the donate button and donate me enough money to buy a Windows license. Then I could consider installing it to my Macbook and writing an installer that would suit your demands. Latter would be totally free of charge.

Better yet, why don't you step up and write me one. This is open source so I welcome all kinds of patches to make people's life easier. Just make sure people can update the server as easily as with a single git command &quot;git pull&quot;. 

But if you don't want to do this, I can just stop supporting an operating system I don't use nor can test with. Would the thought of not having Windows support at all make you feel better?

== Laymen approach ==

Hi and thank you for this, perhaps, wonderful application!
&quot;Perhaps&quot;, is only because having red all the instructions I, being an ordinary user, got lost. I understand that we all need to study and study through life (no sarcasm!) but wouldn't you want for you app be accessible to all, and I mean ALL who might not possess any knowledge as to what a &quot;cmd.exe&quot; is but, one day, might get enchanted with your product so much that would be pressing a &quot;Donate&quot; button like crazy? 
Would be just great, just awesome to be able upon installation and reading an instruction in a layman terms just start using such a great piece of software by anyone, who can read and knows how to turn the computer on. At this moment, this program is deprived of many, many and many possible users 'cause they did not receive a particular and very specific education. How many people are out there who know this stuff? Many. And how many of those who don't? A hell of a lot more! But, hey, they are all the possible users and investors!
Thanks again for taking your time reading all this. I would really like to become a user and, perhaps, a small donor to you project but the my level of computer education does not seem to be up to it.
Regards,
Anrey</text>
    </revision>
  </page>
  <page>
    <title>Talk:LED patterns</title>
    <id>3415</id>
    <revision>
      <id>38368</id>
      <timestamp>2010-09-08T09:45:17Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Keyboard LEDs */ indent quote</comment>
      <text xml:space="preserve">Is it only possible to set two channels out of the three possible channels (R G B) for the indicator led at any time?

-- Soeiro 2010-01-18

You can assign all channels to one engine, or two channels to one engine and one channel to the other, e.g.

rbg (all on engine 1)
rBG (r on engine 1, B G on engine 2)

[[User:codemonkey|codemonkey]] 09:25, 20 January 2010 (UTC)

why in the hell you don't categorize these? just did an hour of unnecessary work with [[Customizing_maemo_for_power_users]] --[[User:ossipena|ossipena]] 10:08, 20 January 2010 (UTC)

== RGB or BGR ==

Hi, in &quot;low level&quot; section, engineX_leds is supposed to store LEDs as RGB, but isn't it the contrary, BGR ?

== Keyboard LEDs ==

:Although the trigger information for engine 3 is listed we have no control over the keyboard LED, so it has no effect

I can actually control keyboard LEDs. Setting leds:lp5523:kbX/led_current isn't enough, I had to also set leds:lp5523:kbX/brighness. Patterns work like the same as for engine1 and engine2.

Cheers,
Seb</text>
    </revision>
  </page>
  <page>
    <title>Talk:Legacy Maemo 5 Documentation/Human Interface Guidelines</title>
    <id>2399</id>
    <revision>
      <id>19981</id>
      <timestamp>2009-10-14T08:52:56Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Documentation/Maemo 5 Developer Guide/Human Interface Guidelines]] moved to [[Talk:Legacy Maemo 5 Documentation/Human Interface Guidelines]]: This part of documentation is phased out, in favor of official Nokia forum documentation</comment>
      <text xml:space="preserve">For better visbility, I've also created a [http://talk.maemo.org/showthread.php?p=324176 thread in talk] to discuss this document.
--[[User:twaelti|tom2]] 09:47, 9 September 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:MADDE</title>
    <id>3610</id>
    <revision>
      <id>29672</id>
      <timestamp>2010-02-17T14:13:37Z</timestamp>
      <contributor>
        <username>dagger</username>
        <id>2149</id>
      </contributor>
      <comment>New page: Why do you provide .tar.gz for Darwin and forcing all Linux users to .deb?? If you really want to do it that way, please consider using scripts like [http://www.miketaylor.org.uk/tech/deb/...</comment>
      <text xml:space="preserve">Why do you provide .tar.gz for Darwin and forcing all Linux users to .deb?? If you really want to do it that way, please consider using scripts like [http://www.miketaylor.org.uk/tech/deb/ this] to extract it. That way you support ALL linux distros not just one.

Thanks,
Rob</text>
    </revision>
  </page>
  <page>
    <title>Talk:MADDE/Device runtime</title>
    <id>3228</id>
    <revision>
      <id>25076</id>
      <timestamp>2009-12-24T04:16:02Z</timestamp>
      <contributor>
        <username>sheltopusik</username>
        <id>1667</id>
      </contributor>
      <comment>Removing all content from page</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>Talk:MADDE/QtCreator integration for windows</title>
    <id>3787</id>
    <revision>
      <id>31592</id>
      <timestamp>2010-03-26T05:50:16Z</timestamp>
      <contributor>
        <username>arsenal</username>
        <id>2410</id>
      </contributor>
      <comment>Install latest QtCreator on your PC</comment>
      <text xml:space="preserve">
Hi,
Is this still valid? &quot;You cannot use the latest official QtCreator for this. The version has to be &gt;= 1.3.80! For these instructions the version of the 2010-02-24 is used!&quot;

If yes can you please provide the exact link to 1.3.80. I couldn't find it in the snapshots. :(

Thanks,</text>
    </revision>
  </page>
  <page>
    <title>Talk:MADDE/Qt Example</title>
    <id>4044</id>
    <revision>
      <id>33674</id>
      <timestamp>2010-04-30T16:09:00Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Talk:MADDE/Qt Example]] moved to [[Talk:MADDE/Qt example]]: Capitalisation consistency</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:MADDE/Qt example]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:MADDE/Qt example</title>
    <id>3318</id>
    <revision>
      <id>33673</id>
      <timestamp>2010-04-30T16:09:00Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>[[Talk:MADDE/Qt Example]] moved to [[Talk:MADDE/Qt example]]: Capitalisation consistency</comment>
      <text xml:space="preserve">Where to add the qthello.desktop file with MADDE?</text>
    </revision>
  </page>
  <page>
    <title>Talk:MAG:Templates</title>
    <id>124</id>
    <revision>
      <id>4978</id>
      <timestamp>2008-07-20T18:21:18Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>/* List of all templates? */</comment>
      <text xml:space="preserve">== Templates for tasks ==

Hi, what about having templates for maemo.org tasks:

* This is a proposed task, please help planning and getting it ready for a sprint. Add yourself if you are interested.
* This is an accepted task and it is currently in the maemo.org backlog. Probably nothing is stopping you to start, though.
* This is an ongoing task, planned to be completed during the ''month/year'' sprint. Your help is welcome!
* This task is completed and this page stays here for documentation purposes only. Please file bugs or propose a new, related task if you want to push this forward.
--[[User:qgil|qgil]] 19:43, 4 June 2008 (UTC)
:Mostly done, see it at [[Template:Task]]. Use it with &lt;nowiki&gt;{{template|proposed}}&lt;/nowiki&gt;, etc. —[[User:generalantilles|GeneralAntilles]] 11:06, 28 June 2008 (UTC)

== Needed templates ==

* Pages maintained by Nokia and containing official information/documentation. They should have a clear notice with Nokia logo on top. It is likely that they would be editable only by a certain group, having the discussion page open for comments. This should be explained in the banner as well.--[[User:qgil|qgil]] 07:53, 28 June 2008 (UTC)
:Just started on a more robust and centralized messagebox system. Looks will be controlled from [[Mediawiki:Common.css|Common.css]], will need to figure out the look and a color-coding system. Do you have a specific Nokia logo you'd like used for this particular box? See [[Template:Official]] —[[User:generalantilles|GeneralAntilles]] 08:33, 28 June 2008 (UTC)
:[http://maemo.org/midcom-static/style_maemo2007/nokia-logo.gif This one] instead of the traffic signal would do the trick, thanks. Don't get too obsessed about layout design, color schemes... The pages still need to look maemo.org and not Nokia. These docs in the wiki are &quot;Nokia unstable&quot; documentation, full Nokia official and stable docs and pages need to be under the nokia.com domain. In any case you might want to have a look at the [http://wiki.forum.nokia.com/index.php/Wiki_Home Forum Nokia MediaWiki] for inspiration. From my point of view, Nokia logo on top of white background for the banner would do.--[[User:qgil|qgil]] 09:38, 28 June 2008 (UTC)
:As for the wording, what about &quot;This page may only be edited by Nokia contributors. Please see the talk page for discussion.&quot;--[[User:qgil|qgil]] 09:43, 28 June 2008 (UTC)
::Looks good! Is it there a public page listing the users that are Nokia contributors with permissions to edit? If so, it would be good to link it from &quot;Nokia contributors&quot; for full transparency on who can edit. If not, no problem.--[[User:qgil|qgil]] 09:55, 28 June 2008 (UTC)
:::[[Special:ListUsers/nokiaeditors]] should do it. Updating template. . . .  —[[User:generalantilles|GeneralAntilles]] 10:15, 28 June 2008 (UTC)
::::Genius! Thanks a lot. (feel free cleaning this little thread, sorry for the noise).--[[User:qgil|qgil]] 10:25, 28 June 2008 (UTC)
* Equivalent to &quot;This article is a stub, please help expanding it.&quot;--[[User:qgil|qgil]] 07:53, 28 June 2008 (UTC)
:[[Template:Expand]] is close enough, maybe think about adding a stub later. —[[User:generalantilles|GeneralAntilles]] 10:20, 28 June 2008 (UTC)
* Equivalent to &quot;This article is probably outdated, please help updating it.&quot;--[[User:qgil|qgil]] 07:53, 28 June 2008 (UTC)
:Done, [[Template:Out_of_date]] —[[User:generalantilles|GeneralAntilles]] 10:20, 28 June 2008 (UTC)
What about a template for &quot;Candidate to be deleted&quot;, for pages like [[Rm_you|this one]]?--[[User:qgil|qgil]] 19:56, 28 June 2008 (UTC)
:Well, userspace pages shouldn't be deleted unless they're obvious spam or copyright violations. Anyway, done [[Template:Delete]]. —[[User:generalantilles|GeneralAntilles]] 21:41, 28 June 2008 (UTC)
::But [[Rm_you|this one]] is not userspace, ''an IP address'' just created a page with all that.--[[User:qgil|qgil]] 21:48, 28 June 2008 (UTC)
:::Ah, you're right, I failed to notice the lack of the User: namespace. Moved it into my own userspace for now. —[[User:generalantilles|GeneralAntilles]] 21:58, 28 June 2008 (UTC)

== Templates adding page to category ==

Would it be possible to make templates like Task or the 100 Days / 2010 Agenda add automatically the page to the related category? This way we could list all the e.g. proposed tasks automatically.--[[User:qgil|qgil]] 15:07, 28 June 2008 (UTC)
:Yes, I've done these, but it's actually really simple procedure. Just add a &lt;nowiki&gt;&lt;includeonly&gt;[[Category:''category'']]&lt;/includeonly&gt;&lt;/nowiki&gt; to the template between the body of the template and the &lt;nowiki&gt;&lt;noinclude&gt;&lt;/noinclude&gt;&lt;/nowiki&gt; part. See the [[Template:Task]] for how to set up a switch based on a parameter from the template (i.e. if the template is called by &lt;nowiki&gt;{{task:completed}}&lt;/nowiki&gt;, then add the template to the [[:Category:Completed]] subcategory). Anything in the &lt;nowiki&gt;&lt;includeonly&gt;&lt;/nowiki&gt; tags will only be inserted into a page using the template, and not the template itself. —[[User:generalantilles|GeneralAntilles]] 21:24, 28 June 2008 (UTC)

== Category for Expand ==

It would be useful that the Expand template would file the page in a Expand a category for easier tracking. See [[Task:Single_sign-on]]. Thanks!--[[User:qgil|qgil]] 12:21, 1 July 2008 (UTC)

== List of all templates? ==

Is it there a list with all the templates anywhere? Can't find it... I'm looking whether there is a template for 2010 Agenda pages like the &quot;100Days agenda&quot;. --[[User:qgil|qgil]] 18:16, 20 July 2008 (UTC)
:Er... found it just by typing &quot;2010 agenda&quot;  :)--[[User:qgil|qgil]] 18:21, 20 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:MMS</title>
    <id>3400</id>
    <revision>
      <id>26665</id>
      <timestamp>2010-01-16T02:13:20Z</timestamp>
      <contributor>
        <username>youngcalihottie</username>
        <id>1867</id>
      </contributor>
      <comment>/* Basic Editing */</comment>
      <text xml:space="preserve">== Basic Editing ==
Corrected a couple spelling errors. Created Talk page. --[[User:youngcalihottie|youngcalihottie]] 23:20, 15 January 2010 (UTC)

== 2.1.1.xxx Manual Sort Needed? ==
Currently in the &quot;2.1.1 List of mms parameters per country and per provider&quot; section, the countries listed are &quot;2.1.1.1 USA, 2.1.1.2 Italy, 2.1.1.3 Country of your choice&quot; in that order. Rather than have the countries scrambled in the random order that people will add them to the wiki, may I suggest listing each country by its [http://en.wikipedia.org/wiki/List_of_country_calling_codes country calling code]? i.e. 2.1.1.1 USA, 2.1.1.39 Italy, etc. Or just alphabetically? But in some type of order. --[[User:youngcalihottie|youngcalihottie]] 23:20, 15 January 2010 (UTC)
*Nevermind. I just added the info for AT&amp;T and I see that the numbering is done automatically. So I suppose it will just be listed randomly unless users manually alphabetize the list periodically. Or unless there is some other wiki function I don't know about? (I'm new here and just trying to help out :P) --[[User:youngcalihottie|youngcalihottie]] 23:28, 15 January 2010 (UTC)
*One solution would be to have this ordered manually. An other would be to have a table like in this article: http://wiki.maemo.org/Opt_Problem/Non-Optified_packages There you can sort each row by clicking the sort icon in the tables first line. If making manually ordered parts it would be okay to keep it in alphabetic order 2.1.1.1 Austria - 2.1.1.2 Belgium - and so on. But I also can live with the other proposals :) --[[User:jukey|jukey]] 23:37, 15 January 2010 (UTC)
**That table is pretty cool. I didn't know about that. The only reason I would vote for the way it is now over the table is because people can post anchors (http://wiki.maemo.org/Mms#USA) whereas it doesn't look like the table has that. Unless there is a way to add anchors to the table? --[[User:youngcalihottie|youngcalihottie]] 23:49, 15 January 2010 (UTC)

== /MMS ==
I don't know how to do a redirect on wiki, but /MMS (all caps) doesn't come here. We should probably fix that. --[[User:youngcalihottie|youngcalihottie]] 00:15, 16 January 2010 (UTC)

Simply move the page and the old name will link to the new name. --[[User:cas07|cas07]] 01:29, 16 January 2010 (UTC)

*Thank you for taking care of that and the info. --[[User:youngcalihottie|youngcalihottie]] 02:08, 16 January 2010 (UTC)

== Settings ==
I just got the list started with a few settings. I've done user-confirmed settings up to and including page 9 at http://talk.maemo.org/showthread.php?t=39737. So whoever comes next can just pick it up from there. I'm also going to add a link where users can search externally for additional settings at http://www.activexperts.com/xmstoolkit/mmsclist/. --[[User:youngcalihottie|youngcalihottie]] 02:12, 16 January 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:MMS implementation</title>
    <id>2871</id>
    <revision>
      <id>21311</id>
      <timestamp>2009-10-29T15:07:53Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Talk:MMS implementation]] moved to [[Talk:Task:MMS]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Task:MMS]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo-meeting/2</title>
    <id>453</id>
    <revision>
      <id>3625</id>
      <timestamp>2008-07-01T08:22:16Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>/* Time */</comment>
      <text xml:space="preserve">== Time ==
Hopefully sometime before the end of this month, but an agenda needs to be hammered out and we need to get with qgil to determine availability, so it'll probably be next month. —[[User:generalantilles|GeneralAntilles]] 04:34, 23 June 2008 (UTC)
:I'm available any evening until July 3rd. Then I will fly to GUADEC, where the evenings tend to be ''intense''.--[[User:qgil|qgil]] 15:47, 23 June 2008 (UTC)
::This is getting tighter. If you want to do it next week and in the European evening then needs to be on Tuesday or Wednesday, since I'm flying to Berlin on Thursday to meet the c-base guys, in the venue of the Maemo Summit.--[[User:qgil|qgil]] 22:01, 27 June 2008 (UTC)
:::I don't think we have the inertia behind this or the time available to try and push this before the end of July. Let's get together a better agenda and regroup after GUADEC around the end of this month/beginning of August? —[[User:generalantilles|GeneralAntilles]] 08:03, 1 July 2008 (UTC)
::::Sure, whenever you like.--[[User:qgil|qgil]] 08:22, 1 July 2008 (UTC)

== Topic ==
To be determined, but perhaps something like maemo.org Community? —[[User:generalantilles|GeneralAntilles]] 04:34, 23 June 2008 (UTC)
:Going with this for now lacking any other input. —[[User:generalantilles|GeneralAntilles]] 02:26, 27 June 2008 (UTC)

== Agenda ==
To be determined based on the topic. —[[User:generalantilles|GeneralAntilles]] 04:34, 23 June 2008 (UTC)
:Going with maemo.org Community and Diablo. Proposal on mainpage. —[[User:generalantilles|GeneralAntilles]] 03:02, 27 June 2008 (UTC)
::The fact is that I can start answering some of those questions right away. Do you want us to do that in order to focus on the discussion about not-so-clear topics?--[[User:qgil|qgil]] 06:19, 27 June 2008 (UTC)
:::Yeah, some of the questions are a little superficial, and mostly there for the edification of attendees and log-readers of the meeting who might not be aware of some stuff. Maemo-meeting was put together before this wiki was in place and communication with Nokia was a bit sparser, so some of its purpose has gone out the window with the communication taking place on the wiki. I think there's still a lot of value in the &quot;face&quot;-to-&quot;face&quot;, live nature of IRC, but the urgency for a lot of questions has been reduced.
:::So, the question is, what sort of in-depth questions can I coerce people into providing for the agenda? :D —[[User:generalantilles|GeneralAntilles]] 21:36, 27 June 2008 (UTC)
::::I have no doubt there will be topics to discuss. By cleaning the clear/small topics we can perhaps move onto other things. It is also good not to get obsessed with the community-asks-Nokia dynamics, but have a multidirectional dialog. Of course people there will lack some background, but then when they ask we just have to point them to the right wiki page. These URLs will be logged as well, therefore people following the logs can get further information in the wiki, continue the discussion there... I'll answer now a couple of things in the main page, and this will hopefully be the last typing thing I do this Friday.  :) --[[User:qgil|qgil]] 21:41, 27 June 2008 (UTC)

=== AGPS ===
About the AGPS application, now there is information in http://www.nokia.com/betalabs/agps-tablet --[[User:yerga|yerga]] 13:34, 27 June 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo-meeting/2</title>
    <id>453</id>
    <revision>
      <id>3625</id>
      <timestamp>2008-07-01T08:22:16Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>/* Time */</comment>
      <text xml:space="preserve">== Time ==
Hopefully sometime before the end of this month, but an agenda needs to be hammered out and we need to get with qgil to determine availability, so it'll probably be next month. —[[User:generalantilles|GeneralAntilles]] 04:34, 23 June 2008 (UTC)
:I'm available any evening until July 3rd. Then I will fly to GUADEC, where the evenings tend to be ''intense''.--[[User:qgil|qgil]] 15:47, 23 June 2008 (UTC)
::This is getting tighter. If you want to do it next week and in the European evening then needs to be on Tuesday or Wednesday, since I'm flying to Berlin on Thursday to meet the c-base guys, in the venue of the Maemo Summit.--[[User:qgil|qgil]] 22:01, 27 June 2008 (UTC)
:::I don't think we have the inertia behind this or the time available to try and push this before the end of July. Let's get together a better agenda and regroup after GUADEC around the end of this month/beginning of August? —[[User:generalantilles|GeneralAntilles]] 08:03, 1 July 2008 (UTC)
::::Sure, whenever you like.--[[User:qgil|qgil]] 08:22, 1 July 2008 (UTC)

== Topic ==
To be determined, but perhaps something like maemo.org Community? —[[User:generalantilles|GeneralAntilles]] 04:34, 23 June 2008 (UTC)
:Going with this for now lacking any other input. —[[User:generalantilles|GeneralAntilles]] 02:26, 27 June 2008 (UTC)

== Agenda ==
To be determined based on the topic. —[[User:generalantilles|GeneralAntilles]] 04:34, 23 June 2008 (UTC)
:Going with maemo.org Community and Diablo. Proposal on mainpage. —[[User:generalantilles|GeneralAntilles]] 03:02, 27 June 2008 (UTC)
::The fact is that I can start answering some of those questions right away. Do you want us to do that in order to focus on the discussion about not-so-clear topics?--[[User:qgil|qgil]] 06:19, 27 June 2008 (UTC)
:::Yeah, some of the questions are a little superficial, and mostly there for the edification of attendees and log-readers of the meeting who might not be aware of some stuff. Maemo-meeting was put together before this wiki was in place and communication with Nokia was a bit sparser, so some of its purpose has gone out the window with the communication taking place on the wiki. I think there's still a lot of value in the &quot;face&quot;-to-&quot;face&quot;, live nature of IRC, but the urgency for a lot of questions has been reduced.
:::So, the question is, what sort of in-depth questions can I coerce people into providing for the agenda? :D —[[User:generalantilles|GeneralAntilles]] 21:36, 27 June 2008 (UTC)
::::I have no doubt there will be topics to discuss. By cleaning the clear/small topics we can perhaps move onto other things. It is also good not to get obsessed with the community-asks-Nokia dynamics, but have a multidirectional dialog. Of course people there will lack some background, but then when they ask we just have to point them to the right wiki page. These URLs will be logged as well, therefore people following the logs can get further information in the wiki, continue the discussion there... I'll answer now a couple of things in the main page, and this will hopefully be the last typing thing I do this Friday.  :) --[[User:qgil|qgil]] 21:41, 27 June 2008 (UTC)

=== AGPS ===
About the AGPS application, now there is information in http://www.nokia.com/betalabs/agps-tablet --[[User:yerga|yerga]] 13:34, 27 June 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo-meeting/2</title>
    <id>453</id>
    <revision>
      <id>3625</id>
      <timestamp>2008-07-01T08:22:16Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>/* Time */</comment>
      <text xml:space="preserve">== Time ==
Hopefully sometime before the end of this month, but an agenda needs to be hammered out and we need to get with qgil to determine availability, so it'll probably be next month. —[[User:generalantilles|GeneralAntilles]] 04:34, 23 June 2008 (UTC)
:I'm available any evening until July 3rd. Then I will fly to GUADEC, where the evenings tend to be ''intense''.--[[User:qgil|qgil]] 15:47, 23 June 2008 (UTC)
::This is getting tighter. If you want to do it next week and in the European evening then needs to be on Tuesday or Wednesday, since I'm flying to Berlin on Thursday to meet the c-base guys, in the venue of the Maemo Summit.--[[User:qgil|qgil]] 22:01, 27 June 2008 (UTC)
:::I don't think we have the inertia behind this or the time available to try and push this before the end of July. Let's get together a better agenda and regroup after GUADEC around the end of this month/beginning of August? —[[User:generalantilles|GeneralAntilles]] 08:03, 1 July 2008 (UTC)
::::Sure, whenever you like.--[[User:qgil|qgil]] 08:22, 1 July 2008 (UTC)

== Topic ==
To be determined, but perhaps something like maemo.org Community? —[[User:generalantilles|GeneralAntilles]] 04:34, 23 June 2008 (UTC)
:Going with this for now lacking any other input. —[[User:generalantilles|GeneralAntilles]] 02:26, 27 June 2008 (UTC)

== Agenda ==
To be determined based on the topic. —[[User:generalantilles|GeneralAntilles]] 04:34, 23 June 2008 (UTC)
:Going with maemo.org Community and Diablo. Proposal on mainpage. —[[User:generalantilles|GeneralAntilles]] 03:02, 27 June 2008 (UTC)
::The fact is that I can start answering some of those questions right away. Do you want us to do that in order to focus on the discussion about not-so-clear topics?--[[User:qgil|qgil]] 06:19, 27 June 2008 (UTC)
:::Yeah, some of the questions are a little superficial, and mostly there for the edification of attendees and log-readers of the meeting who might not be aware of some stuff. Maemo-meeting was put together before this wiki was in place and communication with Nokia was a bit sparser, so some of its purpose has gone out the window with the communication taking place on the wiki. I think there's still a lot of value in the &quot;face&quot;-to-&quot;face&quot;, live nature of IRC, but the urgency for a lot of questions has been reduced.
:::So, the question is, what sort of in-depth questions can I coerce people into providing for the agenda? :D —[[User:generalantilles|GeneralAntilles]] 21:36, 27 June 2008 (UTC)
::::I have no doubt there will be topics to discuss. By cleaning the clear/small topics we can perhaps move onto other things. It is also good not to get obsessed with the community-asks-Nokia dynamics, but have a multidirectional dialog. Of course people there will lack some background, but then when they ask we just have to point them to the right wiki page. These URLs will be logged as well, therefore people following the logs can get further information in the wiki, continue the discussion there... I'll answer now a couple of things in the main page, and this will hopefully be the last typing thing I do this Friday.  :) --[[User:qgil|qgil]] 21:41, 27 June 2008 (UTC)

=== AGPS ===
About the AGPS application, now there is information in http://www.nokia.com/betalabs/agps-tablet --[[User:yerga|yerga]] 13:34, 27 June 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo.org logo contest</title>
    <id>246</id>
    <revision>
      <id>41460</id>
      <timestamp>2011-01-27T10:40:32Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Submitting entries */ fix link</comment>
      <text xml:space="preserve">What follows is a synthesis of previous discussions. The open points are related only to the selection process and contest co-ordination, we are in agreement (more or less on submission process, rules and guidelines.

== Rules Discussion ==

=== Official guidelines (Sizes, formats) ===

(discussion closed)

* Format: A logo should be available in a vector format (PDF or SVG). The submission should be a png rendering .
* Legal guidelines: The winning logo should be original, and clear of trademark encumbrance.
* Artistic guidelines: Avoid gradients (hard to put on t-shirts &amp; plate printing), keep the number of colours to a minimum (same reason). The logo should reflect the project and its values.

=== Licence/ownership ===

(discussion closed)

The submitter must agree to licence their logo under Creative Commons BY-ND, to allow the maemo.org community to use it. 

== Submitting entries ==

* Submitters must have a maemo account, and be connected and sign their entries in the wiki.
* No age restrictions apply, but some prizes may not be feasible for underage contestants.
**Second round with age restrictions. None to take part in the contest. None to get a device. About the travel, afaik nobody accepts international travel and accommodation bookings of minors (sorry for the legal terminology) unless they travel with an adult responsible. After con sider several alternatives, I think the best approach is to offer the trip and the device and see what can accept.--[[User:qgil|qgil]] 06:32, 17 June 2008 (UTC)
* Nokia employees may enter the contest, but people who enter the contest must not be involved in the selection of the winner.

Contestants must follow the following procedure for submitting their logos.

* Logos should be saved both as svg and png, with the png at least 500 pixels wide. The winner will be expected to provide a high-quality vector image of their logo.
* The logo should then be uploaded on the [[Special:Upload]] page. Please name your images in this format:
 Maemo.org_logo_contest_&lt;your username&gt;[_&lt;entry number&gt;].png
and enter this into the summary:
 maemo.org logo contest entry from [[User:&lt;your username&gt;]]
* After the logo has been uploaded, the user should then add their submission to the bottom of the [[maemo.org logo contest submissions]] page by editing the page and adding an entry in this format:
 == &lt;your username&gt; ==
 
 [[Image:Maemo.org_logo_contest_&lt;your username&gt;.png]]

[[Maemo.org_logo_contest_submissions|For example]], [[User:GeneralAntilles]]'s submission would be uploaded here: [[:Image:Maemo.org_logo_contest_GeneralAntilles.png]], and his entry would look like:
 == GeneralAntilles ==
 
 &lt;nowiki&gt;[[Image:Maemo.org_logol_contest_GeneralAntilles.png]]&lt;/nowiki&gt;

A convenience template has been created for this - if you follow the naming conventions, you should be able to simply add
&lt;nowiki&gt;{{Logo entry|Username}}&lt;/nowiki&gt;
at the end of the page.

Users submitting several entries should use a gallery, like this:
&lt;nowiki&gt;
&lt;gallery Caption=&quot;[[User:username]]&quot; widths=&quot;300px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo.org_logo_contest_[username]_1.png|Caption
Image:Maemo.org_logo_contest_[username]_2.png|Caption
Image:Maemo.org_logo_contest_[username]_3.png|Caption
&lt;/gallery&gt;
&lt;/nowiki&gt;
which will result in something like this:
&lt;gallery Caption=&quot;[[User:bundyo]]&quot; widths=&quot;300px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo.org_logo_contest_sample1_bundyo.png|Caption
Image:Maemo.org_logo_contest_sample2_bundyo.png|Caption
Image:Maemo.org_logo_contest_sample3_bundyo.png|Caption
&lt;/gallery&gt;

== Selection process ==

(still open for discussion)

Should the competition be community judged or run by a committee?

I prefer a small, transparent committee. Artwork chosen by poll is often bland, and it is easier to eliminate inappropriate candidates from consideration. --[[User:dneary|dneary]] 22:42, 16 June 2008 (UTC)
: +1. Patch submissions are not accepted by popular election but by the ones that have won a reputation to manage the source code of a project. I don't see a problem in community terms for following the same principle for selecting a winning logo. There are some people that haw shown outstanding design/graphics interest in the Maemo community: Tim Samoff (author of the unofficial Maemo UI Guide), Urho Konttori (UKMP and other apps, now Nokia employee), Tuomas Kuosmanen (author of the curre maemo.org layout aka tigert with a large free graphics background - Nokia employee), whoever designed the Canola UI, whoever is behind http://tabletui.wordpress.com/ , Reggie Suplido (ITt founder, they do care about design), Dave Neary (experience in design contest, large track in free graphics), Daniel Martín Yerga (potentially top 3rd party contributor according to http://maemo.org/profile/list/ ) and then we could have a local celebrity like i.e. [http://jimmac.musichall.cz/ jimmac].--[[User:qgil|qgil]] 05:42, 17 June 2008 (UTC)
::We need to decide on this. More opinions, please.--[[User:qgil|qgil]] 03:17, 20 June 2008 (UTC)
:::I'd like to think the community could be involved, but - as you point out - the best designs are often ignored (or their votes split). At the moment, only a couple of the suggestions really grab me as having a coherent design process, and I'd hate to see them lose out on the basis of bland bell curves or splitting the votes between them. Perhaps once the contest is closed, a debate on maemo-community (if it's created by then, or -users if not) for - say - a week by anyone energetic enough to comment, and then the committee outlined above (or the [[Task:Community Council|Community Council]] if we have it by then) go off and decide between themselves the logo of choice? --[[User:jaffa|Jaffa]] 23:42, 20 June 2008 (UTC)
::::This is a nice variant. I would still find a jury with a majority of members with a graphics related background.--[[User:qgil|qgil]] 18:43, 22 June 2008 (UTC)

In the event of voting, some measures should be taken to prevent false voting such as:
* Registered members can vote.
* Only Once.
* Maybe transparent (member name visible) with optional comment.
* Two rounds (maybe ten submissions in the second).
I think this should help the community to choose the clear winner among the submissions. [[User:bundyo|bundyo]] 20:50, 13 June 2008 (UTC)
:I need to talk to X-Fade about setting up a voting system for the [[Task:Community Council|Community Council]] voting, we could reuse that for this voting. Probably apply a similar set of rules. User accounts must be 1 month old or have at least 10 karma points? —[[User:generalantilles|GeneralAntilles]] 07:19, 14 June 2008 (UTC)
:: Maybe both? The Karma rule should be applied only to the voters though, so that everyone will be allowed to enter the contest. [[User:bundyo|bundyo]] 11:55, 14 June 2008 (UTC)
:::That's a capital OR ;) and, yes, of course no karma limits for entrants. --[[User:generalantilles|GeneralAntilles]] 14:29, 14 June 2008 (UTC)
:You are assuming that the result needs to be decide by the vote from a large amount of people. However, playing as devil's advocate, normally artworks and other creative works contest are decided by the consensus or vite of a reduced amount of people with a strong relation/involvement in the subject and an internal discussion before the selection. This was also the case at https://help.launchpad.net/logo/ , where the decision was made by the project maintainers, not the large amount of launchpad users.--[[User:qgil|qgil]] 20:12, 14 June 2008 (UTC)
:: Maybe they just have to have the last decision, but the community must show their preference, help them choose. [[User:bundyo|bundyo]] 20:20, 14 June 2008 (UTC)
::: I agree with Bundyo. Having community involvement (besides actually competing) is always a good idea, especially when it is for an open-source group.[[User:jakemaheu|jakemaheu]] 20:26, 14 June 2008 (UTC)
:::Or maybe the first decision i.e. going through a selection of 5 candidates from all submissions, and then the community vote. Or two rounds of votes perhaps. Or a preferential system. In any case voting between, say, 20 or more submissions is not easy and it is very likely that the option chosen hasn't reach anything like a 51% of support.--[[User:qgil|qgil]] 21:30, 14 June 2008 (UTC)
:::: Yes, you're right, hard to choose from hundred submissions. 5 seems kinda low though. [[User:bundyo|bundyo]] 22:11, 14 June 2008 (UTC)
:::::Practical proposal: what about completing and agreeing all the information needed to START the contest and allow people submitting their proposals. In the meantime we will have time to discuss the selection process. As far as we have something ready by August 1st...--[[User:qgil|qgil]] 12:55, 15 June 2008 (UTC)
::::::Agreed, but I'd also suggest to let the community participate in the first round and only selected (don't know how, karma, designers, you name it) people can decide the winner in the second round.--[[User:anidel|anidel]] 08:10, 20 June 2008 (UTC)
:::::::One potential problem of this would be for the Jury to fight the pressure of a most voted option if they think the best one is actually another one in the pre-selection. What started as a democratic process might be ending up in flames and accusations of non-democratic selection. Perhaps the other way round would make more sense, a jury makes a pre-selection and then people vote. However, another element to consider is the weak tools for voting we have, so easy to subvert if someone really wants to.--[[User:qgil|qgil]] 18:43, 22 June 2008 (UTC)
::::Preferential voting is good, regardless of the number of candidates or voters. (It's not necessarily easy to set up, I know, but it's much better.) I think it should be applied ''additionally'' to any candidate reduction schemes.[[User:benson|benson]] 04:08, 27 June 2008 (UTC)

===Preferential voting among authors===
Hey, I got an idea! One problem about the jury is that a decent jury shouldn't have logo submitters, but of course the maemo.org contributiors interested in graphics, UI etc are doing so. On the other hand we are getting a considerable amount of submitters, and more ar likely to come in the following weeks. Well, I'm starting to consider this '''a good sample''' representative of the Maemo community, at least those interested in something like a community logo. What about using a preferential system tool (there are many onlyne, free to use) and give voting rights '''to the own applicants'''? Voting your own applications is allowed, even to put them in the top of your selection. But rank the rest of candidates too. This will produce a common rank where the second and third preferences of the authors will decide what is actually the most accepted. Optional steps would be an individual pre-selection at the beginning (select your own 3 best candidates yourself) and a final selection done by a committe from, say, the top 5 ranked logos. The workflow would be:
# Each author selects 1 to 3 candidates from all his/her submissions for the preferential voting.
# All authors take part in the preferential voting, being asked to rank honestly all the submissions.
# A committe of people involved in the community but not involved in the previous voting decides the winner based on discussion and consensus. While the authors voting could be more centered in design aspects, the committee assures that &quot;the spirit of the community&quot; is well reflected in the winner.
--[[User:qgil|qgil]] 06:41, 27 June 2008 (UTC)


=== Pre-selection of candidates ===

In the event of a vote, there is a possibility of having a pre-selection of candidates in order to filter those not matching the rules.

== Contest coordination ==

(discussion still open)

As a Nokia employee, I really don't want to be in the middle of the organization of this contest. Who takes it? Of course I will help out and provide Nokia's view on whatever Nokia can inform i.e. details on the prize.--[[User:qgil|qgil]] 21:48, 13 June 2008 (UTC)
:Well, GeneralAntillies said that the idea was for it to be a community-driven contest, so I guess that would mean community-managed? [[User:jakemaheu|jakemaheu]] 21:55, 13 June 2008 (UTC)
::Sure, but having people explicitly responsible of coordinating a task is generally a good idea.--[[User:qgil|qgil]] 21:58, 13 June 2008 (UTC)
::: Ah, I see what you mean now. But who? That would have to be some volunteers whom are not entering or biased (the hardest part if we want members from the ITT community). [[User:jakemaheu|jakemaheu]] 22:04, 13 June 2008 (UTC)
::::The work that needs to be done now is to coordinate the discussion on rules and process until reaching conclusions. You can be entering and biased and be an efficient coordinator of these tasks, as far as you don't campaign and don't get involved in the decision of the winner.--[[User:qgil|qgil]] 22:08, 13 June 2008 (UTC)
:::::Looking at the discussion, there needs to be a few lines in the sand drawn to avoid drawn-out discussions. I have previously run a GUADEC logo competition and a GIMP splash-screen competition, I would be happy to take on the work for this one, if there is no opposition. --[[User:dneary|dneary]] 22:55, 16 June 2008 (UTC)
::::::Looks like there's no opposition here... I'll take the idea to the list. --[[User:dneary|dneary]] 07:19, 23 June 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo.org logo contest submissions</title>
    <id>279</id>
    <revision>
      <id>5906</id>
      <timestamp>2008-07-29T16:03:19Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Submissions discarded */</comment>
      <text xml:space="preserve">== Proposals with &quot;Maemo&quot; ==

Even if it's clear in the instructions that the logo needs to have the text &quot;maemo.org&quot; and only that, there are many proposals on &quot;Maemo&quot;. What should we do with them? Take them out of the submissions page? It would be counterproductive that other designers see the proposals and think that despite the rule it is ok to send more &quot;Maemo&quot; proposals.--[[User:qgil|qgil]] 20:30, 19 June 2008 (UTC)
:X-Fade and I were discussing this on #maemo earlier. We could:
:* Drop the non-compliant submissions onto a separate page.
:* Mark them as non-compliant with a template with lots of red borders and text.
:* Remove them outright and notify the submitter that the submission is non-compliant.
:Not sure what the best solution is, but we do need to do something about it soon. —[[User:generalantilles|GeneralAntilles]] 20:42, 19 June 2008 (UTC)
::What about putting a disclaimer on the top i.e. ''Submissions not following the contest rules will be removed from this page'' and removing them? The logos themselves are still uploaded and etc, so no big harm. A &quot;Maemo&quot; logo will not win the contest in any way, so it's not like the author is losing something in practical terms. They better know asap that their entry hasn't been accepted.--[[User:qgil|qgil]] 03:09, 20 June 2008 (UTC)
::: The sooner we move them away, the more time they have to create a new, compliant logo. --[[User:xfade|xfade]] 07:01, 20 June 2008 (UTC)
::::Done.--[[User:qgil|qgil]] 19:06, 20 June 2008 (UTC)

==Proposals with Tux penguin==

Even if the [http://en.wikipedia.org/wiki/Tux Tux] penguin is an image with a permissive license, I think we should discard those entries using it. The license still claims some kind of (very licit!) aknowledgement to the creator. The meaning is centered in the Linux Kernel. Right, Maemo uses this kernel and the maemo.org community has some kernel hackers. But that's it, a selected logo with Tux inside would be totally misleading. --[[User:qgil|qgil]] 19:34, 22 June 2008 (UTC)

== Proposals with gradients or textures ==

There's a number of proposals currently using gradients or colors. This seems non-compliant, and justification for removal to the talk page. However, it's complicated slightly because some deliberately use subtle gradients as a (stated) optional part of the design, which can be reduced to flat colors with no problem. I'm not sure if such dual-mode logos are permitted, and I didn't want to start dragging all the straightforward cases (where the gradient/texture was an essential design element) without being able to finish.

The gradient-optional images are ''somewhat'' similar to the favicon configurations popping up; while the use of the logo in a favicon size is mentioned in the rules, submitting it as a favicon is not; while no mention of a gradient-friendly form is mentioned in the rules, it shares the relationship as an alternate version of the design.

One solution that presents itself is to remove all images containing gradients, and all favicons, as primary submissions, and establish a template for one submission with a primary image (~500px as per rules), and a (any?) number of alternate versions as one design. Favicons and other rearrangements of the same design for different medium constraints would be alternate versions, but different color schemes, faces, etc. would be separate submissions.

The main problem with that is that the [[Talk:Maemo.org_logo_contest#Submitting_entries | rules for submission process]], while not flagged as [[Talk:Maemo.org_logo_contest#Rules_Discussion | &quot;discussion closed&quot;]], are not [[Talk:Maemo.org_logo_contest#Selection_process| &quot;open for discussion&quot;]] either; I'm not at all sure this level of change is acceptable at this point.

Any ideas? [[User:benson|benson]] 03:57, 27 June 2008 (UTC)
:Good point. I was looking at the explosion of t-shirts and I alos was thinking that, while it's a nice idea, it adds even more noise to the main page. At the end the ''invalid'' logos are not deleted and people need to be finding out that whenever something disappears from the main page is here in the discussion page. Tim has selected some entries and then has moved the rest here, making links in both sides. The same could be done on shirts and favicons, moved all of them here. It is good that an authhor says &quot;I'm working in this concept, here is the main logo and then some applications are available in th discussion page&quot;.
:The same could be done about the gradient variants. I'm not sure either about the submissions with gradients only. What about doing a first cleaning of shirts etc and then look at the page to see how to continue?--[[User:qgil|qgil]] 06:28, 27 June 2008 (UTC)

:Making an 8-letter word into a 16- or 32-pixel-wide icon is going to require some ingenuity. Even Google worked out dozens (hundreds?) of favicons before [http://googleblog.blogspot.com/2008/06/one-fish-two-fish-red-fish-blue-fish.html choosing one] that's a single &quot;g&quot;. So I think the designer's notions of alternate forms ought to be kept with the submission. [[User:rsperberg|rsperberg]] 21:52, 30 June 2008 (UTC)
::I agree with this. Shrinking 500 pixels of content into 16 pixels is no easy matter, with or without gradients. Is it to be left up to moderators to provide a favicon for the winning submission, or should the contestants? I'd think the favicon should be part of the contest, however, many people didn't contribute one, because it wasn't really specified in the guidelines. Maybe another page (or section on the submissions page) should be made to hold all favicon &quot;suggestions.&quot; T-shirts and other examples, should be removed though. They don't contribute to the contest, they just take up space.--[[User:underscore|underscore]] 16:16, 3 July 2008 (UTC)

== Submissions discarded ==
Because of having &quot;Maemo&quot; instead of &quot;maemo.org&quot;, having potential trademark issues or using existing logos (i.e. Tux penguin).
=== samantha ===
Very nice logo, but looks a little too much like the Summer Olympic '92 logo.
&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_samantha_1.png‎|Ispired to the fact that Maemo is based on an active community of people.
Image:Maemo.org_logo_contest_samantha_1_variations.png‎|Color variations and favicons of the logo (click to enlarge).
&lt;/gallery&gt;

=== dzahariev ===
&lt;gallery widths=&quot;300px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo.org_logo_contest_dzahariev_1.png|The main idea is that Open Source software is like honey and all other products that are produced inside bee hive from the united efforts of the bees. So the bees are developers and the Maemo is a result of their work. I am not so good in design, but I think that the idea have a potential.
Image:Maemo.org_logo_contest_dzahariev_2.png|This is an idea for the icon.
&lt;/gallery&gt;
=== fredyrivera ===
 &lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_fredyrivera_1.png|Maemo People Ico
Image:Maemo.org_logo_contest_fredyrivera_2.png|Maemo People
&lt;/gallery&gt;
=== jobelium ===
&lt;gallery heights=&quot;150px&quot; widths=&quot;400px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_jobelium_1.png
Image:Maemo.org_logo_contest_jobelium_2.png
Image:Maemo.org_logo_contest_jobelium_3.png
Image:Maemo.org_logo_contest_jobelium_4.png
Image:Maemo.org_logo_contest_jobelium_5.png
Image:Maemo.org_logo_contest_jobelium_9.png
Image:Maemo.org_logo_contest_jobelium_13.png
Image:Maemo.org_logo_contest_jobelium_20.png
Image:Maemo.org_logo_contest_jobelium_25.png
Image:Maemo.org_logo_contest_jobelium_26.png
Image:Maemo.org_logo_contest_jobelium_22.png |college style with Tux !
Image:Maemo.org_logo_contest_jobelium_25.png |Tux with alternate font (i like the .org)
Image:Maemo.org_logo_contest_jobelium_5.png |the same with alternate color
Image:Maemo.org_logo_contest_jobelium_30.png |the big colorfull Tux logo 
Image:Maemo.org_logo_contest_jobelium_31.png |the small Tux logo
Image:Maemo.org_logo_contest_jobelium_42.png |an alternate version of the small logo
&lt;/gallery&gt;
=== asgari ===
&lt;gallery heights=&quot;200px&quot; widths=&quot;180px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo.org_logo_contest_asgari_1.png
Image:Maemo.org_logo_contest_asgari_2.png
Image:Maemo.org_logo_contest_asgari_3.png
&lt;/gallery&gt;
=== GarethLWalt ===
&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_garethlwalt_1.png|Modern branding. This logo is easily readable at the size of a quarter. However, this pure vector logo is easily scaled to an unlimited size.
Image:Maemo.org_logo_contest_garethlwalt_2.png|Custom typography. The lettering on this logo was created carefully on a grid. The color and outline are examples.
Image:Maemo.org_logo_contest_garethlwalt_1b.png|Alternative to image #1. Added .ORG and another color change. (Pretty self explanatory.)
&lt;/gallery&gt;
:''Discounted #1b as it's too similar to Palm, Inc's [http://images.google.co.uk/images?q=palm+logo&amp;btnG=Search+Images&amp;um=1&amp;hl=en&amp;client=firefox-a&amp;rls=com.ubuntu%3Aen-GB%3Aunofficial&amp;sa=2 logo] IMHO --[[User:jaffa|Jaffa]] 00:08, 21 June 2008 (UTC)''
:''I would suggest a review of [http://wiki.maemo.org/Image:Maemo.org_logo_contest_timsamoff_0005.png this image] as well - if my logo was too similar to the old Palm logo --[[User:garethlwalt|garethlwalt]] 14:47, 25 June 2008 (UTC)''
:''You know what? You're right... Didn't even think about it. I'll move it to below. --[[User:timsamoff|timsamoff]] 12:11, 26 June 2008 (UTC)''

=== jussi ===

'''Breaking the rules'''

&lt;gallery&gt;
Image:Maemo.org_logo_contest_jussi_-004-.png|I know this is a little above and beyond. I got a little carried away. These are ideas for implementation on the core maemo brand level, where colour can be used to signify the difference between the maemo os (green) and the maemo community (orange red). I suppose this is more up to Nokia. ;) 
&lt;/gallery&gt;


'''Legacy versions'''


&lt;gallery perrow=&quot;4&quot;&gt;
Image:Maemo.org_logo_contest_jussi_-001-.png|The idea: The a and e ligature formed of dots signifies that the maemo is built on the collaborate effort of the community, and the mœbius loop / strip embedded in the ligature shows that there are infinite possibilities when you work together. Update: Changed the m-s and the thickness of the dots.
Image:Maemo.org_logo_contest_jussi_-006-.png|Alternative version, dynamic width on the dots to give more 3d-feel.
Image:Maemo.org_logo_contest_jussi_-007-.png|Alternative version, solid moebius strip. Updated with some feedback from [[User:thiercito]].
Image:Maemo.org_logo_contest_jussi_-014-.png|Alternative version, solid moebius strip with thicker æ.
Image:Maemo.org_logo_contest_jussi_-002-.png|Symbol only, to use for instance as favicon or on t-shirt print.
Image:Maemo.org_logo_contest_jussi_-003-.png|T-shirt examples
&lt;/gallery&gt;
:''To be perfectly honest, personally I prefer these versions (and the original orange dotted ae moebius ligature) than the newer versions with the moebius separate. --12:02, 16 July 2008 (UTC)'
:: Hmm, yeah, perhaps I can make a third version. Anyway, all these logos are more idea based. If the community wants to work more with me in this, they should be tweaked a lot before they're actually done. --[[User:jussi|jussi]] 15:27, 16 July 2008 (UTC)

=== thiercito ===
&lt;gallery widths=&quot;500px&quot; × perrow=&quot;1&quot;&gt;
Image:Maemo.org_logo_contest_Thiercito2.png‎
&lt;/gallery&gt;

=== timsamoff ===

''Tim has volunteered to judge the comnest, and as such we removed his 2 entries from the mix. They are saved here for reference.''

'''Note: I've honed my submissions down to my favorite ideas. For the rest, please view the [[Talk:Maemo.org_logo_contest_submissions#timsamoff|Discussion page]].''' --[[User:timsamoff|timsamoff]] 14:38, 26 June 2008 (UTC)
:Really appreciated. Pruning is a well known method to get better flowers and fruits.--[[User:qgil|qgil]] 15:41, 26 June 2008 (UTC)

&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_timsamoff_0001g.png|'''Submission #1g''' - The word intertwines to form a symbol of the path (and process) that our community travels.
Image:Maemo.org_logo_contest_timsamoff_0009b.png|'''Submission #9b''' - Think of it this way: &quot;Maemo Period.&quot;
&lt;/gallery&gt;

'''Additional Design ideas:'''
&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_timsamoff_0001g_favicon.png|'''Submission #1g''' (favicon)
Image:Maemo.org_logo_contest_timsamoff_0009b_fav.png|'''Submission #9b''' (favicon)
Image:Maemo.org_logo_contest_timsamoff_0001.png|Submission #1a (w/ drop shadow)
Image:Maemo.org_logo_contest_timsamoff_0001b_fav.png|'''Submission #1a''' (favicon w/ gradient)
Image:Maemo.org_logo_contest_timsamoff_0001b.png|'''Submission #1b''' (w/ metallic gradient &amp; drop shadow)
Image:Maemo.org_logo_contest_timsamoff_0001b_fav.png|'''Submission #1b''' (favicon w/ gradient)
Image:Maemo.org_logo_contest_timsamoff_0001c.png|'''Submission #1c''' (with wider kerning)
Image:Maemo.org_logo_contest_timsamoff_0001c_fav.png|'''Submission #1b''' (favicon w/ solid outline)
Image:Maemo.org_logo_contest_timsamoff_0001d.png|'''Submission #1d''' (w/ tighter kerning &amp; light gray outline)
Image:Maemo.org_logo_contest_timsamoff_0001d_fav.png|'''Submission #1d''' (favicon w/ light gray outline)
Image:Maemo.org_logo_contest_timsamoff_0001e.png|'''Submission #1e''' (w/dark gray outline)
Image:Maemo.org_logo_contest_timsamoff_0001e_fav.png|'''Submission #1e''' (favicon w/ dark gray outline)
Image:Maemo.org_logo_contest_timsamoff_0001f.png|'''Submission #1f''' (w/out &quot;arrow&quot;)
Image:Maemo.org_logo_contest_timsamoff_0001f_favicon.png|'''Submission #1f''' (favicon)
Image:Maemo.org_logo_contest_timsamoff_0002.png|Submission #2
Image:Maemo.org_logo_contest_timsamoff_0003.png|Submission #3
Image:Maemo.org_logo_contest_timsamoff_0004.png|Submission #4
Image:Maemo.org_logo_contest_timsamoff_0006.png|Submission #6
Image:Maemo.org_logo_contest_timsamoff_0007.png|Submission #7
Image:Maemo.org_logo_contest_timsamoff_0008.png|'''Submission #8'''
Image:Maemo.org_logo_contest_timsamoff_0008fav.png|'''Submission #8''' (favicon)
Image:Maemo.org_logo_contest_timsamoff_0009.png|'''Submission #9''' (w/ metallic gradient)
Image:Maemo.org_logo_contest_timsamoff_0009_fav.png|'''Submission #9''' (favicon w/ gradient)
Image:Maemo.org_logo_contest_timsamoff_0010.png|Submission #10
Image:Maemo.org_logo_contest_timsamoff_0011.png|Submission #11
Image:Maemo.org_logo_contest_timsamoff_0012.png|Submission #12

&lt;/gallery&gt;

'''''Discarded -- [[#GarethLWalt|as discussed above]].''' --[[User:timsamoff|timsamoff]] 12:18, 26 June 2008 (UTC)''

&lt;gallery widths=&quot;500px&quot; × perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_timsamoff_0005.png|Submission #5 (main)
Image:Maemo.org_logo_contest_timsamoff_0005fav.png|Submission #5 (favicon)
&lt;/gallery&gt;

=== femorandeira ===

&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_femorandeira_3.png|Round shapes, dark background, contrast and an old school inspiration.
Image:Maemo.org_logo_contest_femorandeira_5.png|A variation on the same idea.
Image:Maemo.org_logo_contest_femorandeira_6.png|Similar to my first concept.
Image:Maemo.org_logo_contest_femorandeira_7.png|With reflections.
Image:Maemo.org_logo_contest_femorandeira_8.png|A third color scheme, to show the versatility of the design.
&lt;/gallery&gt;

=== deadknight88 ===
&lt;gallery widths=&quot;500px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo.org_logo_contest_deadknight88_103.png | Resembles too closely the Lotus Notes logo 
&lt;/gallery&gt;

=== chall3ng3r ===

&lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_chall3ng3r_5.png|Maemo Logo 5 - Logo diaplaying &quot;Maemo&quot;
Image:Maemo.org_logo_contest_chall3ng3r_6.png|Maemo Logo 6 - Logo diaplaying &quot;Maemo&quot;
Image:Maemo.org_logo_contest_chall3ng3r_7.png|Maemo Logo 7 - Logo diaplaying &quot;Maemo&quot;
Image:Maemo.org_logo_contest_chall3ng3r_8.png|Maemo Logo 8 - Logo diaplaying &quot;Maemo&quot;
Image:Maemo.org_logo_contest_chall3ng3r_9.png|Maemo Logo 9 - Logo diaplaying &quot;Maemo&quot;
Image:Maemo.org_logo_contest_chall3ng3r_10.png|Maemo Logo 10 - Logo diaplaying &quot;Maemo&quot;
Image:Maemo.org_logo_contest_chall3ng3r_11.png|Maemo Logo 11 - Logo diaplaying &quot;Maemo&quot;
&lt;/gallery&gt;

=== rambutan ===
&lt;gallery widhts=&quot;600px&quot; &gt;
Image:Maemo.org_logo_contest_-rambutan--_-01--.png
Image:Maemo.org_logo_contest_rambutan_002.png
Image:Maemo.org_logo_contest_rambutan_003.png‎
Image : Maemo.org_logo_contest_rambutan_004.png
&lt;/gallery&gt;</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo.org logo contest submissions</title>
    <id>279</id>
    <revision>
      <id>5906</id>
      <timestamp>2008-07-29T16:03:19Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Submissions discarded */</comment>
      <text xml:space="preserve">== Proposals with &quot;Maemo&quot; ==

Even if it's clear in the instructions that the logo needs to have the text &quot;maemo.org&quot; and only that, there are many proposals on &quot;Maemo&quot;. What should we do with them? Take them out of the submissions page? It would be counterproductive that other designers see the proposals and think that despite the rule it is ok to send more &quot;Maemo&quot; proposals.--[[User:qgil|qgil]] 20:30, 19 June 2008 (UTC)
:X-Fade and I were discussing this on #maemo earlier. We could:
:* Drop the non-compliant submissions onto a separate page.
:* Mark them as non-compliant with a template with lots of red borders and text.
:* Remove them outright and notify the submitter that the submission is non-compliant.
:Not sure what the best solution is, but we do need to do something about it soon. —[[User:generalantilles|GeneralAntilles]] 20:42, 19 June 2008 (UTC)
::What about putting a disclaimer on the top i.e. ''Submissions not following the contest rules will be removed from this page'' and removing them? The logos themselves are still uploaded and etc, so no big harm. A &quot;Maemo&quot; logo will not win the contest in any way, so it's not like the author is losing something in practical terms. They better know asap that their entry hasn't been accepted.--[[User:qgil|qgil]] 03:09, 20 June 2008 (UTC)
::: The sooner we move them away, the more time they have to create a new, compliant logo. --[[User:xfade|xfade]] 07:01, 20 June 2008 (UTC)
::::Done.--[[User:qgil|qgil]] 19:06, 20 June 2008 (UTC)

==Proposals with Tux penguin==

Even if the [http://en.wikipedia.org/wiki/Tux Tux] penguin is an image with a permissive license, I think we should discard those entries using it. The license still claims some kind of (very licit!) aknowledgement to the creator. The meaning is centered in the Linux Kernel. Right, Maemo uses this kernel and the maemo.org community has some kernel hackers. But that's it, a selected logo with Tux inside would be totally misleading. --[[User:qgil|qgil]] 19:34, 22 June 2008 (UTC)

== Proposals with gradients or textures ==

There's a number of proposals currently using gradients or colors. This seems non-compliant, and justification for removal to the talk page. However, it's complicated slightly because some deliberately use subtle gradients as a (stated) optional part of the design, which can be reduced to flat colors with no problem. I'm not sure if such dual-mode logos are permitted, and I didn't want to start dragging all the straightforward cases (where the gradient/texture was an essential design element) without being able to finish.

The gradient-optional images are ''somewhat'' similar to the favicon configurations popping up; while the use of the logo in a favicon size is mentioned in the rules, submitting it as a favicon is not; while no mention of a gradient-friendly form is mentioned in the rules, it shares the relationship as an alternate version of the design.

One solution that presents itself is to remove all images containing gradients, and all favicons, as primary submissions, and establish a template for one submission with a primary image (~500px as per rules), and a (any?) number of alternate versions as one design. Favicons and other rearrangements of the same design for different medium constraints would be alternate versions, but different color schemes, faces, etc. would be separate submissions.

The main problem with that is that the [[Talk:Maemo.org_logo_contest#Submitting_entries | rules for submission process]], while not flagged as [[Talk:Maemo.org_logo_contest#Rules_Discussion | &quot;discussion closed&quot;]], are not [[Talk:Maemo.org_logo_contest#Selection_process| &quot;open for discussion&quot;]] either; I'm not at all sure this level of change is acceptable at this point.

Any ideas? [[User:benson|benson]] 03:57, 27 June 2008 (UTC)
:Good point. I was looking at the explosion of t-shirts and I alos was thinking that, while it's a nice idea, it adds even more noise to the main page. At the end the ''invalid'' logos are not deleted and people need to be finding out that whenever something disappears from the main page is here in the discussion page. Tim has selected some entries and then has moved the rest here, making links in both sides. The same could be done on shirts and favicons, moved all of them here. It is good that an authhor says &quot;I'm working in this concept, here is the main logo and then some applications are available in th discussion page&quot;.
:The same could be done about the gradient variants. I'm not sure either about the submissions with gradients only. What about doing a first cleaning of shirts etc and then look at the page to see how to continue?--[[User:qgil|qgil]] 06:28, 27 June 2008 (UTC)

:Making an 8-letter word into a 16- or 32-pixel-wide icon is going to require some ingenuity. Even Google worked out dozens (hundreds?) of favicons before [http://googleblog.blogspot.com/2008/06/one-fish-two-fish-red-fish-blue-fish.html choosing one] that's a single &quot;g&quot;. So I think the designer's notions of alternate forms ought to be kept with the submission. [[User:rsperberg|rsperberg]] 21:52, 30 June 2008 (UTC)
::I agree with this. Shrinking 500 pixels of content into 16 pixels is no easy matter, with or without gradients. Is it to be left up to moderators to provide a favicon for the winning submission, or should the contestants? I'd think the favicon should be part of the contest, however, many people didn't contribute one, because it wasn't really specified in the guidelines. Maybe another page (or section on the submissions page) should be made to hold all favicon &quot;suggestions.&quot; T-shirts and other examples, should be removed though. They don't contribute to the contest, they just take up space.--[[User:underscore|underscore]] 16:16, 3 July 2008 (UTC)

== Submissions discarded ==
Because of having &quot;Maemo&quot; instead of &quot;maemo.org&quot;, having potential trademark issues or using existing logos (i.e. Tux penguin).
=== samantha ===
Very nice logo, but looks a little too much like the Summer Olympic '92 logo.
&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_samantha_1.png‎|Ispired to the fact that Maemo is based on an active community of people.
Image:Maemo.org_logo_contest_samantha_1_variations.png‎|Color variations and favicons of the logo (click to enlarge).
&lt;/gallery&gt;

=== dzahariev ===
&lt;gallery widths=&quot;300px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo.org_logo_contest_dzahariev_1.png|The main idea is that Open Source software is like honey and all other products that are produced inside bee hive from the united efforts of the bees. So the bees are developers and the Maemo is a result of their work. I am not so good in design, but I think that the idea have a potential.
Image:Maemo.org_logo_contest_dzahariev_2.png|This is an idea for the icon.
&lt;/gallery&gt;
=== fredyrivera ===
 &lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_fredyrivera_1.png|Maemo People Ico
Image:Maemo.org_logo_contest_fredyrivera_2.png|Maemo People
&lt;/gallery&gt;
=== jobelium ===
&lt;gallery heights=&quot;150px&quot; widths=&quot;400px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_jobelium_1.png
Image:Maemo.org_logo_contest_jobelium_2.png
Image:Maemo.org_logo_contest_jobelium_3.png
Image:Maemo.org_logo_contest_jobelium_4.png
Image:Maemo.org_logo_contest_jobelium_5.png
Image:Maemo.org_logo_contest_jobelium_9.png
Image:Maemo.org_logo_contest_jobelium_13.png
Image:Maemo.org_logo_contest_jobelium_20.png
Image:Maemo.org_logo_contest_jobelium_25.png
Image:Maemo.org_logo_contest_jobelium_26.png
Image:Maemo.org_logo_contest_jobelium_22.png |college style with Tux !
Image:Maemo.org_logo_contest_jobelium_25.png |Tux with alternate font (i like the .org)
Image:Maemo.org_logo_contest_jobelium_5.png |the same with alternate color
Image:Maemo.org_logo_contest_jobelium_30.png |the big colorfull Tux logo 
Image:Maemo.org_logo_contest_jobelium_31.png |the small Tux logo
Image:Maemo.org_logo_contest_jobelium_42.png |an alternate version of the small logo
&lt;/gallery&gt;
=== asgari ===
&lt;gallery heights=&quot;200px&quot; widths=&quot;180px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo.org_logo_contest_asgari_1.png
Image:Maemo.org_logo_contest_asgari_2.png
Image:Maemo.org_logo_contest_asgari_3.png
&lt;/gallery&gt;
=== GarethLWalt ===
&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_garethlwalt_1.png|Modern branding. This logo is easily readable at the size of a quarter. However, this pure vector logo is easily scaled to an unlimited size.
Image:Maemo.org_logo_contest_garethlwalt_2.png|Custom typography. The lettering on this logo was created carefully on a grid. The color and outline are examples.
Image:Maemo.org_logo_contest_garethlwalt_1b.png|Alternative to image #1. Added .ORG and another color change. (Pretty self explanatory.)
&lt;/gallery&gt;
:''Discounted #1b as it's too similar to Palm, Inc's [http://images.google.co.uk/images?q=palm+logo&amp;btnG=Search+Images&amp;um=1&amp;hl=en&amp;client=firefox-a&amp;rls=com.ubuntu%3Aen-GB%3Aunofficial&amp;sa=2 logo] IMHO --[[User:jaffa|Jaffa]] 00:08, 21 June 2008 (UTC)''
:''I would suggest a review of [http://wiki.maemo.org/Image:Maemo.org_logo_contest_timsamoff_0005.png this image] as well - if my logo was too similar to the old Palm logo --[[User:garethlwalt|garethlwalt]] 14:47, 25 June 2008 (UTC)''
:''You know what? You're right... Didn't even think about it. I'll move it to below. --[[User:timsamoff|timsamoff]] 12:11, 26 June 2008 (UTC)''

=== jussi ===

'''Breaking the rules'''

&lt;gallery&gt;
Image:Maemo.org_logo_contest_jussi_-004-.png|I know this is a little above and beyond. I got a little carried away. These are ideas for implementation on the core maemo brand level, where colour can be used to signify the difference between the maemo os (green) and the maemo community (orange red). I suppose this is more up to Nokia. ;) 
&lt;/gallery&gt;


'''Legacy versions'''


&lt;gallery perrow=&quot;4&quot;&gt;
Image:Maemo.org_logo_contest_jussi_-001-.png|The idea: The a and e ligature formed of dots signifies that the maemo is built on the collaborate effort of the community, and the mœbius loop / strip embedded in the ligature shows that there are infinite possibilities when you work together. Update: Changed the m-s and the thickness of the dots.
Image:Maemo.org_logo_contest_jussi_-006-.png|Alternative version, dynamic width on the dots to give more 3d-feel.
Image:Maemo.org_logo_contest_jussi_-007-.png|Alternative version, solid moebius strip. Updated with some feedback from [[User:thiercito]].
Image:Maemo.org_logo_contest_jussi_-014-.png|Alternative version, solid moebius strip with thicker æ.
Image:Maemo.org_logo_contest_jussi_-002-.png|Symbol only, to use for instance as favicon or on t-shirt print.
Image:Maemo.org_logo_contest_jussi_-003-.png|T-shirt examples
&lt;/gallery&gt;
:''To be perfectly honest, personally I prefer these versions (and the original orange dotted ae moebius ligature) than the newer versions with the moebius separate. --12:02, 16 July 2008 (UTC)'
:: Hmm, yeah, perhaps I can make a third version. Anyway, all these logos are more idea based. If the community wants to work more with me in this, they should be tweaked a lot before they're actually done. --[[User:jussi|jussi]] 15:27, 16 July 2008 (UTC)

=== thiercito ===
&lt;gallery widths=&quot;500px&quot; × perrow=&quot;1&quot;&gt;
Image:Maemo.org_logo_contest_Thiercito2.png‎
&lt;/gallery&gt;

=== timsamoff ===

''Tim has volunteered to judge the comnest, and as such we removed his 2 entries from the mix. They are saved here for reference.''

'''Note: I've honed my submissions down to my favorite ideas. For the rest, please view the [[Talk:Maemo.org_logo_contest_submissions#timsamoff|Discussion page]].''' --[[User:timsamoff|timsamoff]] 14:38, 26 June 2008 (UTC)
:Really appreciated. Pruning is a well known method to get better flowers and fruits.--[[User:qgil|qgil]] 15:41, 26 June 2008 (UTC)

&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_timsamoff_0001g.png|'''Submission #1g''' - The word intertwines to form a symbol of the path (and process) that our community travels.
Image:Maemo.org_logo_contest_timsamoff_0009b.png|'''Submission #9b''' - Think of it this way: &quot;Maemo Period.&quot;
&lt;/gallery&gt;

'''Additional Design ideas:'''
&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_timsamoff_0001g_favicon.png|'''Submission #1g''' (favicon)
Image:Maemo.org_logo_contest_timsamoff_0009b_fav.png|'''Submission #9b''' (favicon)
Image:Maemo.org_logo_contest_timsamoff_0001.png|Submission #1a (w/ drop shadow)
Image:Maemo.org_logo_contest_timsamoff_0001b_fav.png|'''Submission #1a''' (favicon w/ gradient)
Image:Maemo.org_logo_contest_timsamoff_0001b.png|'''Submission #1b''' (w/ metallic gradient &amp; drop shadow)
Image:Maemo.org_logo_contest_timsamoff_0001b_fav.png|'''Submission #1b''' (favicon w/ gradient)
Image:Maemo.org_logo_contest_timsamoff_0001c.png|'''Submission #1c''' (with wider kerning)
Image:Maemo.org_logo_contest_timsamoff_0001c_fav.png|'''Submission #1b''' (favicon w/ solid outline)
Image:Maemo.org_logo_contest_timsamoff_0001d.png|'''Submission #1d''' (w/ tighter kerning &amp; light gray outline)
Image:Maemo.org_logo_contest_timsamoff_0001d_fav.png|'''Submission #1d''' (favicon w/ light gray outline)
Image:Maemo.org_logo_contest_timsamoff_0001e.png|'''Submission #1e''' (w/dark gray outline)
Image:Maemo.org_logo_contest_timsamoff_0001e_fav.png|'''Submission #1e''' (favicon w/ dark gray outline)
Image:Maemo.org_logo_contest_timsamoff_0001f.png|'''Submission #1f''' (w/out &quot;arrow&quot;)
Image:Maemo.org_logo_contest_timsamoff_0001f_favicon.png|'''Submission #1f''' (favicon)
Image:Maemo.org_logo_contest_timsamoff_0002.png|Submission #2
Image:Maemo.org_logo_contest_timsamoff_0003.png|Submission #3
Image:Maemo.org_logo_contest_timsamoff_0004.png|Submission #4
Image:Maemo.org_logo_contest_timsamoff_0006.png|Submission #6
Image:Maemo.org_logo_contest_timsamoff_0007.png|Submission #7
Image:Maemo.org_logo_contest_timsamoff_0008.png|'''Submission #8'''
Image:Maemo.org_logo_contest_timsamoff_0008fav.png|'''Submission #8''' (favicon)
Image:Maemo.org_logo_contest_timsamoff_0009.png|'''Submission #9''' (w/ metallic gradient)
Image:Maemo.org_logo_contest_timsamoff_0009_fav.png|'''Submission #9''' (favicon w/ gradient)
Image:Maemo.org_logo_contest_timsamoff_0010.png|Submission #10
Image:Maemo.org_logo_contest_timsamoff_0011.png|Submission #11
Image:Maemo.org_logo_contest_timsamoff_0012.png|Submission #12

&lt;/gallery&gt;

'''''Discarded -- [[#GarethLWalt|as discussed above]].''' --[[User:timsamoff|timsamoff]] 12:18, 26 June 2008 (UTC)''

&lt;gallery widths=&quot;500px&quot; × perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_timsamoff_0005.png|Submission #5 (main)
Image:Maemo.org_logo_contest_timsamoff_0005fav.png|Submission #5 (favicon)
&lt;/gallery&gt;

=== femorandeira ===

&lt;gallery widths=&quot;500px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_femorandeira_3.png|Round shapes, dark background, contrast and an old school inspiration.
Image:Maemo.org_logo_contest_femorandeira_5.png|A variation on the same idea.
Image:Maemo.org_logo_contest_femorandeira_6.png|Similar to my first concept.
Image:Maemo.org_logo_contest_femorandeira_7.png|With reflections.
Image:Maemo.org_logo_contest_femorandeira_8.png|A third color scheme, to show the versatility of the design.
&lt;/gallery&gt;

=== deadknight88 ===
&lt;gallery widths=&quot;500px&quot; perrow=&quot;3&quot;&gt;
Image:Maemo.org_logo_contest_deadknight88_103.png | Resembles too closely the Lotus Notes logo 
&lt;/gallery&gt;

=== chall3ng3r ===

&lt;gallery widths=&quot;300px&quot; perrow=&quot;2&quot;&gt;
Image:Maemo.org_logo_contest_chall3ng3r_5.png|Maemo Logo 5 - Logo diaplaying &quot;Maemo&quot;
Image:Maemo.org_logo_contest_chall3ng3r_6.png|Maemo Logo 6 - Logo diaplaying &quot;Maemo&quot;
Image:Maemo.org_logo_contest_chall3ng3r_7.png|Maemo Logo 7 - Logo diaplaying &quot;Maemo&quot;
Image:Maemo.org_logo_contest_chall3ng3r_8.png|Maemo Logo 8 - Logo diaplaying &quot;Maemo&quot;
Image:Maemo.org_logo_contest_chall3ng3r_9.png|Maemo Logo 9 - Logo diaplaying &quot;Maemo&quot;
Image:Maemo.org_logo_contest_chall3ng3r_10.png|Maemo Logo 10 - Logo diaplaying &quot;Maemo&quot;
Image:Maemo.org_logo_contest_chall3ng3r_11.png|Maemo Logo 11 - Logo diaplaying &quot;Maemo&quot;
&lt;/gallery&gt;

=== rambutan ===
&lt;gallery widhts=&quot;600px&quot; &gt;
Image:Maemo.org_logo_contest_-rambutan--_-01--.png
Image:Maemo.org_logo_contest_rambutan_002.png
Image:Maemo.org_logo_contest_rambutan_003.png‎
Image : Maemo.org_logo_contest_rambutan_004.png
&lt;/gallery&gt;</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo.org team</title>
    <id>1734</id>
    <revision>
      <id>12100</id>
      <timestamp>2009-03-25T19:04:06Z</timestamp>
      <contributor>
        <username>qole</username>
        <id>57</id>
      </contributor>
      <comment>need to add debmaster</comment>
      <text xml:space="preserve">We need to add the Debmaster to this page. --[[User:qole|qole]] 19:04, 25 March 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:MaemoSecurity</title>
    <id>2663</id>
    <revision>
      <id>29006</id>
      <timestamp>2010-02-11T15:28:51Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Talk:Maemo security]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Maemo security]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo 5 Clutter performance</title>
    <id>1940</id>
    <revision>
      <id>13864</id>
      <timestamp>2009-05-31T22:06:28Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <minor/>
      <comment>sign comment</comment>
      <text xml:space="preserve">This might be useful for Intel chipset based laptop users running Ubuntu Jaunty with performance issues:

https://wiki.ubuntu.com/ReinhardTartler/X/RevertingIntelDriverTo2.4

and

http://davyd.livejournal.com/275982.html?thread=1379086

[[User:marcell|marcell]] 09:11, 30 May 2009 (UTC)

Thanks, the instructions work fine on a 2006 MacBook with Intel graphics (Intel Corporation Mobile 945GM/GMS). Makes Xephyr + Fremantle SDK regain its speed.--[[User:thp|thp]] 22:06, 31 May 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo 6 Developer Guide table of contents</title>
    <id>3180</id>
    <revision>
      <id>24642</id>
      <timestamp>2009-12-15T10:32:00Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Developer Guide table of contents]] moved to [[Talk:Maemo 6 Developer Guide table of contents]]</comment>
      <text xml:space="preserve">I did think that one benefit of the wiki/linked approach is that we could actually have multiple flavours of introduction.
--[[User:lbt|lbt]] 08:54, 14 December 2009 (UTC)

Dev background:
* Symbian etc
* Linux Debian-based
* Linux non Debian-based
* Modern unixy Mac
* Windows Mobile
* Windows

Dev interest:
* Native Apps
* Web apps
* Platform
* wallpapers/ring tones/content (?)

Dev skill
* Learning
* Junior
* Experienced</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo Basics</title>
    <id>2742</id>
    <revision>
      <id>20194</id>
      <timestamp>2009-10-15T14:32:00Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Talk:Maemo Basics]] moved to [[Talk:Maemo basics]]: Standardise capitalisation. No capitalised words (apart from the first word) except in proper nouns in wiki page names.</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Maemo basics]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo Coding Competition 1</title>
    <id>4376</id>
    <revision>
      <id>37440</id>
      <timestamp>2010-08-02T20:47:41Z</timestamp>
      <contributor>
        <username>magullo</username>
        <id>2486</id>
      </contributor>
      <minor/>
      <comment>bounty questions</comment>
      <text xml:space="preserve">==bounty==
who's updating the bounty chapter? how do users get '''confirmed''' status?
--[[User:magullo|magullo]] 20:47, 2 August 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo Reconstructed</title>
    <id>1323</id>
    <revision>
      <id>8717</id>
      <timestamp>2008-11-13T06:34:48Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>/* Busybox vs dash+coreutils and such */</comment>
      <text xml:space="preserve">Add your proposals here (remember to sign the proposal with your username, use ---- plus four tildes. If you'd like to discuss the proposals in real-time, try #maemo on irc.freenode.net (IRC) --[[User:stskeeps|stskeeps]] 20:21, 3 November 2008 (UTC)

===Build tools===
Do we get a modern gcc-4.3 and boost-dev? Reason is that for esp. C++ code, g++-4.x can compile template code to much smaller code than g++-3.4. This is more true for shared objects. With boost spirit and mpl, one can create amazing small binaries. (proposal by koos)

* I don't see why it shouldn't be possible to get proper modern compilers, provided they work properly for ARM and such. The point of Maemo &quot;R&quot; is to focus more on the hildonization of apps and on working on adjustments to libraries/services to make them more sane in terms of power saving (which is also a big thing in green computing, just see PowerTOP and such). It is a problem when typical libraries that apps use like boost-dev are not up to date, because of platform particularities - and this problem is rooted in the base system. ---[[User:stskeeps|stskeeps]] 19:37, 4 November 2008 (UTC)

===Xorg===
Will xcb be part of Fremantle? Lenny already based its Xlib on xcb. (proposal by koos)

* Well, this discussion may not be about Fremantle, but about a future Maemo OS that I have no idea which codename it would have if it was accepted ;) But, based on your proposal. XCB, from xcb.freedesktop.org: The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, latency hiding, direct access to the protocol, improved threading support, and extensibility. I believe this would obviously be a good part of a mobile platform, if it does not conflict with applications and that it is not CPU intensive, and instead helps on CPU usage and memory usage. ---[[User:stskeeps|stskeeps]] 19:27, 4 November 2008 (UTC)

=== Busybox vs dash+coreutils and such ===

If you check what Busybox provides on the device:
$ dpkg -s busybox|grep Provides|tr ',' '\n'

You should compare Busybox footprint against following Debian
packages: findutils, gzip, hostname, ifupdown, module-init-tools, net-tools, procps, sed, tar, coreutils, grep, mount, login, debianutils, util-linux, vim-tiny, mawk, mktemp, bsdutils, sysvinit-utils, iputils-ping, psmisc, time

---Eero Tamminen in an e-mail to maemo-developers, Wed, 05 Nov 2008 11:23:01 +0200

* I've added the following change to the proposal, https://wiki.maemo.org/index.php?title=Maemo_Reconstructed&amp;diff=8546&amp;oldid=8540 , but even if it does raise the numbers a bit, the footprint is not -huge-, compared to let's say, an mp3 in the jffs2 fs. My argument still stands I'd say - is 3.5m so important to spare that it justifies the problems that arise from the choice of busybox? Next step is performance and memory usage I guess.. ---[[User:stskeeps|stskeeps]] 10:41, 5 November 2008 (UTC)

There is something more - even as ordinary users or script writers, the busybox tools often miss something important.  GnuTar and the other compression tools often have to be there along side.  Loop device support is NOT in busybox so to use it you must get a special mount command.  There is a lot of functionality which often needs to be added even in non developer situations.   Busybox should be stretched to add some of the missing things available as options but simply using the full standard set of tools fixes these problems as well.
:We are open to consider the inclusion of specific tools in Busybox. Please open an enhancement request in bugs.maemo.org for each tool including the reasoning why. -- Quim Gil


There are many docs, themes, icons, pictures, fonts, and other things which may not be used, so is the footprint really a problem?  How large would it really be?  If space is that tight could the internal flash be set to have a second partition with support for unix like things such as symlinks and not appear as a USB device to when attached to a PC?  Or have some way to create this in a system such that it would override busybox (maybe modify busybox such that if X exists, busybox execs X instead of its internal applet code such that it would never conflict with installing the real application, or maybe just let the symlink be removed and have busybox during init or signal recreate any links for applications which go missing).  Turn either-or into both-and.

=== A package that builds in Scratchbox should also build on a tablet ===

Debian packages in general aren't buildable with Busybox, so
above would be pending on this: https://bugs.maemo.org/show_bug.cgi?id=2896

And on modified build-essentials metapackage that brings in the suitable
GNU tools I guess.

---Eero Tamminen in an e-mail to maemo-developers, Wed, 05 Nov 2008 11:23:01 +0200

=== Kernels should be a bit richer and modules should be available ===

For example, Mac partition support cannot be added as a module.  Same with core dumps, but I think that is on by default.  For boot speed the default kernel should have things built in instead of modules, but there should be a full /lib/modules with modprobe and depmod which can be populated with modules as needed but have the module load support transparent (e.g. USB host, attaching a CD player, or HFS+ mac formatted iPod, coda or fuse for webdav, usbserial, other usb gadgets...)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo Summit 2008</title>
    <id>144</id>
    <revision>
      <id>50602</id>
      <timestamp>2012-11-02T17:14:33Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Undo revision 50601 by [[Special:Contributions/218.6.8.7|218.6.8.7]] ([[User talk:218.6.8.7|Talk]])</comment>
      <text xml:space="preserve">==Program==

=== Help with the program ===

I'm happy having the role of benevolent dictator for the schedule on Friday 19: I organize the sessions submitted and if someone finds a bug or an improvement just complain and we'll find a solution. However, I really don't want to organize the sessions on Saturday 20, which is purely a maemo.org community day. Can you please find either another dictator or a system to get that sorted out yourselves? I'm asking for a coordinator at [[Maemo_Summit_2008/Organization#Program]]. Thanks!--[[User:qgil|qgil]] 09:45, 18 July 2008 (UTC)

Also, could someone draw nice tables for the schedules? I want to do this since.. but there is always something else taking the time. In principle each day needs a table with 3 columns (3 tracks), being some sessions single cells spanning through the whole row (no tracks, just one session at a time, or breaks). Appreciated. --[[User:qgil|qgil]] 09:45, 18 July 2008 (UTC)

'''Saturday Coordinator ~ [[User:brontide|Eric Warnke]]''' Feel free to contact me directly or put your ideas here.  I will distill them and be the buffer for Nokia that day.  [[User:brontide|brontide]] 14:32, 25 July 2008 (UTC)

=== Lightning sessions ===

These are really brief sessions of 5 minutes approx i.e. demos. You can propose your own session listing it directly in the schedule '''once you have confirmed your trip to Berlin'''. If we get many proposals we will have a second round of lightning sessions on Saturday. Lightning sessions are cool!

We are open to submissions in the form of decent quality videos, to be shown to the audience and uploaded in maemo.org as part of the video materials of the Summit.

* I'd like to present Intranet search (extended desktop search) from maemo with libferris (http://www.libferris.com/). This would be a quick overview of what is available now and where I'm heading with it. -- [https://wiki.maemo.org/User:Monkeyiq Monkeyiq] July 19.
:Now you can list it yourself.--[[User:qgil|qgil]] 18:52, 20 July 2008 (UTC)
* We would like to demonstrate and talk about WorldTV99 (http://maemo.org/downloads/product/OS2008/worldtv99/) [bunanson and koos Vriezen] 09.16 16 July 2008 (BST).
:Now you can list it yourself.--[[User:qgil|qgil]] 18:52, 20 July 2008 (UTC)
* I don't know if 5 minutes would be enough, but I would like to talk about Rich UIs and the importance of being different and showing the potential of the platform to &quot;Transform&quot; itself in different products, focused in one main use: like our projects: Canola (media player) Carman (onboard computer + car media) and others like remote controls, etc. The real goal is to show why is really needed that some applications &quot;break&quot; the rules and extend the experience showing the power of openness. (this can be a full talk if of interest)
:20 seconds are enough for a great ad, 3:30 are enough for a great videoclip and 5:00 are enough for a great lightning session.  :)  Find a title and... a name for yourself (are you Marcelo?) Then on Saturday you could organize a full session.--[[User:qgil|qgil]] 08:30, 20 July 2008 (UTC)
:::Now you can list it yourself.--[[User:qgil|qgil]] 18:52, 20 July 2008 (UTC)
* I ([[user:barbieri| Gustavo Barbieri]]) got delayed due some personal problems and will just arrive in Berlin/Tegel by 2:10pm of 19th, after the lightning talks are over, may I remove my entry or someone else (qgil?) has to do it?
: Go ahead and remove it yourself. Can you move your session to anywhere else in the schedule? --[[User:timsamoff|timsamoff]] 13:49, 25 July 2008 (UTC)
: Qgil maybe another 30 minute lightning session right before we end for the day? ( assuming we have the interest from others to present ) [[User:brontide|brontide]] 13:54, 25 July 2008 (UTC)
:: timsamoff: brontide just did that for me. As for presenting later, of course I can, let's see if we can get another lightning sessions.
::If we get more lightning sessions we can have another round, although better on Saturday. They are good to break the routine.--[[User:qgil|qgil]] 18:29, 26 July 2008 (UTC)
* I ([[user:jsmanrique|jsmanrique]]) would like talking about [http://elisator.garage.maemo.org elisator] project and how [http://easy.garage.maemo.org Easy] library has helped and how could be improved. Elisator has been developed for cow's milk analisys and it has been funded by [http://www.fao.org FAO].--[[user:jsmanrique|jsmanrique]]   14:25, 29 July 2008 (UTC)
* [[user:etrunko|Eduardo Lima (Etrunko)]] would like to talk about the [http://dev.openbossa.org/trac/qedje/ QEdje] library which is being developed in INdT. This presentation will be focused on demos and much shorter than the one presented in Akademy this year by Leonardo Sobral and Artur Souza. You can find a preview on [http://www.youtube.com/watch?v=QZUwUDeJfX0 Youtube]. --[[User:etrunko|etrunko]] 18:43, 26 August 2008 (UTC)
:May I add it to the program??? Friday or Saturday session?? --[[User:etrunko|etrunko]] 20:01, 26 August 2008 (UTC)
::Added. I have also reorganized the sessions attempting to group those with a similar topic. Looking at the timing it seems that we have fully packed for both days. Can we consider the call for lightning sessions closed?--[[User:qgil|qgil]] 11:56, 4 September 2008 (UTC)
::: Here's my vote for &quot;yes.&quot; There are plenty! --[[User:timsamoff|timsamoff]] 13:27, 4 September 2008 (UTC)

=== Saturday 20th ===

I will continue to accept requests to speak, but I can't make any guarantee that the schedule will accommodate more people.  If I have scheduled any conflicts for presenters please let me know.  [[User:brontide|brontide]] 15:24, 7 August 2008 (UTC)

:Is it possible to schedule the ''maemo.org website redesign meeting'' in a slot where there is nothing about packaging, publishing, Extras or anythin website related at the same time. I need to be at those and it is generating conflicts at the moment. Thanks! --[[User:xfade|xfade]] 06:52, 8 August 2008 (UTC)
::If I have to make another change I will keep that in mind.  The problem is that no time is perfect for everyone and I have already moved it once because some people were leaving early.  [[User:brontide|brontide]] 13:17, 8 August 2008 (UTC)
:::Well, yes, but xfade aka Niels Breet is the maemo.org webmaster AND the responsable of maemo.org extras packaging tools. He really needs to be present and active in both sessions. For instance, what about moving the maemo.org redesign session to 13h instead of &quot;maemo.org extras Package Cleanup Sprint&quot;. Anyway, dos it make sense to have this packaging sprint session in 30'? This is too short time to get any result isn't it.--[[User:qgil|qgil]] 21:04, 8 August 2008 (UTC)
::::All that needed to be said is that he is participating in both sessions.  I had a request from Dave that it be earlier.  I have moved the website session to the 15:00 block and swapped it with clutter.  If 30 minutes is too short for package cleanup I have a jalimo session I could schedule in one of those blocks.  [[User:brontide|brontide]] 03:23, 9 August 2008 (UTC)

==== Waitlist ====

These are proposals that came in after the schedule was filled.  If I need to shuffle the schedule or if presenters drop out I will try and get these scheduled.

* '''Jalimo:''': by Sebastian
* '''&quot;Why do we do it?&quot;''': how I got involved in free software, the lessons I have learned from it by Dave Neary
* Lightning talk '''KDE on maemo''': by Marijn Kruisselbrink (arriving friday during lunch in Berlin)
: We will squeeze in 5 more minutes for the session, have fun. [[User:brontide|brontide]] 00:37, 15 September 2008 (UTC)

=== Mini Exhibit ===
''Moved to [[Maemo Summit 2008/Exhibit]]. See also the comments at [[Maemo_Summit_2008/Organization#OSiM]]''.

== Travel ==
Moved to [[Talk:Maemo_Summit_2008/Travel]].

==Accommodation==
Moved to [[Maemo Summit 2008/Accommodation]].

== Recording the Event ==
See [[Maemo_Summit_2008/Organization#Marketing_.26_coverage]] and post your comments / offers for help there.

== Advertising ==

I've submitted the event to the [http://lwn.net/Calendar/Monthly/2008-09/ LWN Event Calendar]. Is there any other wider advertising we can do? --[[User:jaffa|Jaffa]] 11:55, 14 July 2008 (UTC)

== Community ==

I've got some ideas to allow people attending at Maemo Summit to communicate better. If you have any other idea, please write/discuss here. --[[User:andy80|Andrea Grandi]] 10:35, 20 July 2008 (UTC)

* Prepare a sort of &quot;badge&quot;. A simple card with these informations:
** Name (nickname)
** What we do in our life (Developer/Student/Blogger/ecc...)
** Spoken languages: we could print a flag for each language we speak

* Prepare a custom Google map with all the hot points in Berlin: c-base, OSiM, all hotels we booked ecc...

* Create POI's for these place to use on Map software in our tablets

== Introduction to Maemo hacking? ==

Keywan says in maemo-developers: &quot;are there plans for a workshop or introduction for newcomers in the development for Maemo? What do you think about this idea? Is there anybody who would like to do this as a &quot;speaker&quot;? And are there other potential participants like me?
:Good idea, the question being: when? What is the right duration for this workshop and where could it fit in the agenda. One idea would be to have it on 2-3h on Saturday while the rest of running sessions are really hardcore developer or community wise.--[[User:qgil|qgil]] 07:06, 28 July 2008 (UTC)

== Lightning *idea* sessions ==

[http://maemo.org/profile/view/ifrade/ Iván] had a great idea today at lunch. What about a round of lightning sessions about '''ideas'''. You don't need to be a developer. In fact, it would be good that you are not a developer. But you have a great idea, and you present it brilliantly through text, a sketch, a presentation... In the audience you have a wide collection of power users and developers. Perhaps you find more feedback, improvements, the perfect match? The presentations are available online, next to a feedback channel. The discussion continues there. Perhaps something real will come out of that.--[[User:qgil|qgil]] 09:48, 29 July 2008 (UTC) (on behalf of Iván)
:When, though? The agenda onf Friday is already intense but... I think a refreshing session like this can be placed at 18h onwards. Right before the end, when you can catch the proposer of the idea and continue the discussion.--[[User:qgil|qgil]] 09:48, 29 July 2008 (UTC)
:I am agree that at 18:00 on Friday could be good timetable for this.--[[User:jsmanrique|jsmanrique]]
:[http://blog.ifrade.es/2008/07/30/lightning-ideas-maemo-submit/ Nice blog post from Iván]. It got rapidly to the top news in maemo.org. I'll take that as a community YES.  :)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo Summit 2008</title>
    <id>144</id>
    <revision>
      <id>50602</id>
      <timestamp>2012-11-02T17:14:33Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Undo revision 50601 by [[Special:Contributions/218.6.8.7|218.6.8.7]] ([[User talk:218.6.8.7|Talk]])</comment>
      <text xml:space="preserve">==Program==

=== Help with the program ===

I'm happy having the role of benevolent dictator for the schedule on Friday 19: I organize the sessions submitted and if someone finds a bug or an improvement just complain and we'll find a solution. However, I really don't want to organize the sessions on Saturday 20, which is purely a maemo.org community day. Can you please find either another dictator or a system to get that sorted out yourselves? I'm asking for a coordinator at [[Maemo_Summit_2008/Organization#Program]]. Thanks!--[[User:qgil|qgil]] 09:45, 18 July 2008 (UTC)

Also, could someone draw nice tables for the schedules? I want to do this since.. but there is always something else taking the time. In principle each day needs a table with 3 columns (3 tracks), being some sessions single cells spanning through the whole row (no tracks, just one session at a time, or breaks). Appreciated. --[[User:qgil|qgil]] 09:45, 18 July 2008 (UTC)

'''Saturday Coordinator ~ [[User:brontide|Eric Warnke]]''' Feel free to contact me directly or put your ideas here.  I will distill them and be the buffer for Nokia that day.  [[User:brontide|brontide]] 14:32, 25 July 2008 (UTC)

=== Lightning sessions ===

These are really brief sessions of 5 minutes approx i.e. demos. You can propose your own session listing it directly in the schedule '''once you have confirmed your trip to Berlin'''. If we get many proposals we will have a second round of lightning sessions on Saturday. Lightning sessions are cool!

We are open to submissions in the form of decent quality videos, to be shown to the audience and uploaded in maemo.org as part of the video materials of the Summit.

* I'd like to present Intranet search (extended desktop search) from maemo with libferris (http://www.libferris.com/). This would be a quick overview of what is available now and where I'm heading with it. -- [https://wiki.maemo.org/User:Monkeyiq Monkeyiq] July 19.
:Now you can list it yourself.--[[User:qgil|qgil]] 18:52, 20 July 2008 (UTC)
* We would like to demonstrate and talk about WorldTV99 (http://maemo.org/downloads/product/OS2008/worldtv99/) [bunanson and koos Vriezen] 09.16 16 July 2008 (BST).
:Now you can list it yourself.--[[User:qgil|qgil]] 18:52, 20 July 2008 (UTC)
* I don't know if 5 minutes would be enough, but I would like to talk about Rich UIs and the importance of being different and showing the potential of the platform to &quot;Transform&quot; itself in different products, focused in one main use: like our projects: Canola (media player) Carman (onboard computer + car media) and others like remote controls, etc. The real goal is to show why is really needed that some applications &quot;break&quot; the rules and extend the experience showing the power of openness. (this can be a full talk if of interest)
:20 seconds are enough for a great ad, 3:30 are enough for a great videoclip and 5:00 are enough for a great lightning session.  :)  Find a title and... a name for yourself (are you Marcelo?) Then on Saturday you could organize a full session.--[[User:qgil|qgil]] 08:30, 20 July 2008 (UTC)
:::Now you can list it yourself.--[[User:qgil|qgil]] 18:52, 20 July 2008 (UTC)
* I ([[user:barbieri| Gustavo Barbieri]]) got delayed due some personal problems and will just arrive in Berlin/Tegel by 2:10pm of 19th, after the lightning talks are over, may I remove my entry or someone else (qgil?) has to do it?
: Go ahead and remove it yourself. Can you move your session to anywhere else in the schedule? --[[User:timsamoff|timsamoff]] 13:49, 25 July 2008 (UTC)
: Qgil maybe another 30 minute lightning session right before we end for the day? ( assuming we have the interest from others to present ) [[User:brontide|brontide]] 13:54, 25 July 2008 (UTC)
:: timsamoff: brontide just did that for me. As for presenting later, of course I can, let's see if we can get another lightning sessions.
::If we get more lightning sessions we can have another round, although better on Saturday. They are good to break the routine.--[[User:qgil|qgil]] 18:29, 26 July 2008 (UTC)
* I ([[user:jsmanrique|jsmanrique]]) would like talking about [http://elisator.garage.maemo.org elisator] project and how [http://easy.garage.maemo.org Easy] library has helped and how could be improved. Elisator has been developed for cow's milk analisys and it has been funded by [http://www.fao.org FAO].--[[user:jsmanrique|jsmanrique]]   14:25, 29 July 2008 (UTC)
* [[user:etrunko|Eduardo Lima (Etrunko)]] would like to talk about the [http://dev.openbossa.org/trac/qedje/ QEdje] library which is being developed in INdT. This presentation will be focused on demos and much shorter than the one presented in Akademy this year by Leonardo Sobral and Artur Souza. You can find a preview on [http://www.youtube.com/watch?v=QZUwUDeJfX0 Youtube]. --[[User:etrunko|etrunko]] 18:43, 26 August 2008 (UTC)
:May I add it to the program??? Friday or Saturday session?? --[[User:etrunko|etrunko]] 20:01, 26 August 2008 (UTC)
::Added. I have also reorganized the sessions attempting to group those with a similar topic. Looking at the timing it seems that we have fully packed for both days. Can we consider the call for lightning sessions closed?--[[User:qgil|qgil]] 11:56, 4 September 2008 (UTC)
::: Here's my vote for &quot;yes.&quot; There are plenty! --[[User:timsamoff|timsamoff]] 13:27, 4 September 2008 (UTC)

=== Saturday 20th ===

I will continue to accept requests to speak, but I can't make any guarantee that the schedule will accommodate more people.  If I have scheduled any conflicts for presenters please let me know.  [[User:brontide|brontide]] 15:24, 7 August 2008 (UTC)

:Is it possible to schedule the ''maemo.org website redesign meeting'' in a slot where there is nothing about packaging, publishing, Extras or anythin website related at the same time. I need to be at those and it is generating conflicts at the moment. Thanks! --[[User:xfade|xfade]] 06:52, 8 August 2008 (UTC)
::If I have to make another change I will keep that in mind.  The problem is that no time is perfect for everyone and I have already moved it once because some people were leaving early.  [[User:brontide|brontide]] 13:17, 8 August 2008 (UTC)
:::Well, yes, but xfade aka Niels Breet is the maemo.org webmaster AND the responsable of maemo.org extras packaging tools. He really needs to be present and active in both sessions. For instance, what about moving the maemo.org redesign session to 13h instead of &quot;maemo.org extras Package Cleanup Sprint&quot;. Anyway, dos it make sense to have this packaging sprint session in 30'? This is too short time to get any result isn't it.--[[User:qgil|qgil]] 21:04, 8 August 2008 (UTC)
::::All that needed to be said is that he is participating in both sessions.  I had a request from Dave that it be earlier.  I have moved the website session to the 15:00 block and swapped it with clutter.  If 30 minutes is too short for package cleanup I have a jalimo session I could schedule in one of those blocks.  [[User:brontide|brontide]] 03:23, 9 August 2008 (UTC)

==== Waitlist ====

These are proposals that came in after the schedule was filled.  If I need to shuffle the schedule or if presenters drop out I will try and get these scheduled.

* '''Jalimo:''': by Sebastian
* '''&quot;Why do we do it?&quot;''': how I got involved in free software, the lessons I have learned from it by Dave Neary
* Lightning talk '''KDE on maemo''': by Marijn Kruisselbrink (arriving friday during lunch in Berlin)
: We will squeeze in 5 more minutes for the session, have fun. [[User:brontide|brontide]] 00:37, 15 September 2008 (UTC)

=== Mini Exhibit ===
''Moved to [[Maemo Summit 2008/Exhibit]]. See also the comments at [[Maemo_Summit_2008/Organization#OSiM]]''.

== Travel ==
Moved to [[Talk:Maemo_Summit_2008/Travel]].

==Accommodation==
Moved to [[Maemo Summit 2008/Accommodation]].

== Recording the Event ==
See [[Maemo_Summit_2008/Organization#Marketing_.26_coverage]] and post your comments / offers for help there.

== Advertising ==

I've submitted the event to the [http://lwn.net/Calendar/Monthly/2008-09/ LWN Event Calendar]. Is there any other wider advertising we can do? --[[User:jaffa|Jaffa]] 11:55, 14 July 2008 (UTC)

== Community ==

I've got some ideas to allow people attending at Maemo Summit to communicate better. If you have any other idea, please write/discuss here. --[[User:andy80|Andrea Grandi]] 10:35, 20 July 2008 (UTC)

* Prepare a sort of &quot;badge&quot;. A simple card with these informations:
** Name (nickname)
** What we do in our life (Developer/Student/Blogger/ecc...)
** Spoken languages: we could print a flag for each language we speak

* Prepare a custom Google map with all the hot points in Berlin: c-base, OSiM, all hotels we booked ecc...

* Create POI's for these place to use on Map software in our tablets

== Introduction to Maemo hacking? ==

Keywan says in maemo-developers: &quot;are there plans for a workshop or introduction for newcomers in the development for Maemo? What do you think about this idea? Is there anybody who would like to do this as a &quot;speaker&quot;? And are there other potential participants like me?
:Good idea, the question being: when? What is the right duration for this workshop and where could it fit in the agenda. One idea would be to have it on 2-3h on Saturday while the rest of running sessions are really hardcore developer or community wise.--[[User:qgil|qgil]] 07:06, 28 July 2008 (UTC)

== Lightning *idea* sessions ==

[http://maemo.org/profile/view/ifrade/ Iván] had a great idea today at lunch. What about a round of lightning sessions about '''ideas'''. You don't need to be a developer. In fact, it would be good that you are not a developer. But you have a great idea, and you present it brilliantly through text, a sketch, a presentation... In the audience you have a wide collection of power users and developers. Perhaps you find more feedback, improvements, the perfect match? The presentations are available online, next to a feedback channel. The discussion continues there. Perhaps something real will come out of that.--[[User:qgil|qgil]] 09:48, 29 July 2008 (UTC) (on behalf of Iván)
:When, though? The agenda onf Friday is already intense but... I think a refreshing session like this can be placed at 18h onwards. Right before the end, when you can catch the proposer of the idea and continue the discussion.--[[User:qgil|qgil]] 09:48, 29 July 2008 (UTC)
:I am agree that at 18:00 on Friday could be good timetable for this.--[[User:jsmanrique|jsmanrique]]
:[http://blog.ifrade.es/2008/07/30/lightning-ideas-maemo-submit/ Nice blog post from Iván]. It got rapidly to the top news in maemo.org. I'll take that as a community YES.  :)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo Summit 2008</title>
    <id>144</id>
    <revision>
      <id>50602</id>
      <timestamp>2012-11-02T17:14:33Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Undo revision 50601 by [[Special:Contributions/218.6.8.7|218.6.8.7]] ([[User talk:218.6.8.7|Talk]])</comment>
      <text xml:space="preserve">==Program==

=== Help with the program ===

I'm happy having the role of benevolent dictator for the schedule on Friday 19: I organize the sessions submitted and if someone finds a bug or an improvement just complain and we'll find a solution. However, I really don't want to organize the sessions on Saturday 20, which is purely a maemo.org community day. Can you please find either another dictator or a system to get that sorted out yourselves? I'm asking for a coordinator at [[Maemo_Summit_2008/Organization#Program]]. Thanks!--[[User:qgil|qgil]] 09:45, 18 July 2008 (UTC)

Also, could someone draw nice tables for the schedules? I want to do this since.. but there is always something else taking the time. In principle each day needs a table with 3 columns (3 tracks), being some sessions single cells spanning through the whole row (no tracks, just one session at a time, or breaks). Appreciated. --[[User:qgil|qgil]] 09:45, 18 July 2008 (UTC)

'''Saturday Coordinator ~ [[User:brontide|Eric Warnke]]''' Feel free to contact me directly or put your ideas here.  I will distill them and be the buffer for Nokia that day.  [[User:brontide|brontide]] 14:32, 25 July 2008 (UTC)

=== Lightning sessions ===

These are really brief sessions of 5 minutes approx i.e. demos. You can propose your own session listing it directly in the schedule '''once you have confirmed your trip to Berlin'''. If we get many proposals we will have a second round of lightning sessions on Saturday. Lightning sessions are cool!

We are open to submissions in the form of decent quality videos, to be shown to the audience and uploaded in maemo.org as part of the video materials of the Summit.

* I'd like to present Intranet search (extended desktop search) from maemo with libferris (http://www.libferris.com/). This would be a quick overview of what is available now and where I'm heading with it. -- [https://wiki.maemo.org/User:Monkeyiq Monkeyiq] July 19.
:Now you can list it yourself.--[[User:qgil|qgil]] 18:52, 20 July 2008 (UTC)
* We would like to demonstrate and talk about WorldTV99 (http://maemo.org/downloads/product/OS2008/worldtv99/) [bunanson and koos Vriezen] 09.16 16 July 2008 (BST).
:Now you can list it yourself.--[[User:qgil|qgil]] 18:52, 20 July 2008 (UTC)
* I don't know if 5 minutes would be enough, but I would like to talk about Rich UIs and the importance of being different and showing the potential of the platform to &quot;Transform&quot; itself in different products, focused in one main use: like our projects: Canola (media player) Carman (onboard computer + car media) and others like remote controls, etc. The real goal is to show why is really needed that some applications &quot;break&quot; the rules and extend the experience showing the power of openness. (this can be a full talk if of interest)
:20 seconds are enough for a great ad, 3:30 are enough for a great videoclip and 5:00 are enough for a great lightning session.  :)  Find a title and... a name for yourself (are you Marcelo?) Then on Saturday you could organize a full session.--[[User:qgil|qgil]] 08:30, 20 July 2008 (UTC)
:::Now you can list it yourself.--[[User:qgil|qgil]] 18:52, 20 July 2008 (UTC)
* I ([[user:barbieri| Gustavo Barbieri]]) got delayed due some personal problems and will just arrive in Berlin/Tegel by 2:10pm of 19th, after the lightning talks are over, may I remove my entry or someone else (qgil?) has to do it?
: Go ahead and remove it yourself. Can you move your session to anywhere else in the schedule? --[[User:timsamoff|timsamoff]] 13:49, 25 July 2008 (UTC)
: Qgil maybe another 30 minute lightning session right before we end for the day? ( assuming we have the interest from others to present ) [[User:brontide|brontide]] 13:54, 25 July 2008 (UTC)
:: timsamoff: brontide just did that for me. As for presenting later, of course I can, let's see if we can get another lightning sessions.
::If we get more lightning sessions we can have another round, although better on Saturday. They are good to break the routine.--[[User:qgil|qgil]] 18:29, 26 July 2008 (UTC)
* I ([[user:jsmanrique|jsmanrique]]) would like talking about [http://elisator.garage.maemo.org elisator] project and how [http://easy.garage.maemo.org Easy] library has helped and how could be improved. Elisator has been developed for cow's milk analisys and it has been funded by [http://www.fao.org FAO].--[[user:jsmanrique|jsmanrique]]   14:25, 29 July 2008 (UTC)
* [[user:etrunko|Eduardo Lima (Etrunko)]] would like to talk about the [http://dev.openbossa.org/trac/qedje/ QEdje] library which is being developed in INdT. This presentation will be focused on demos and much shorter than the one presented in Akademy this year by Leonardo Sobral and Artur Souza. You can find a preview on [http://www.youtube.com/watch?v=QZUwUDeJfX0 Youtube]. --[[User:etrunko|etrunko]] 18:43, 26 August 2008 (UTC)
:May I add it to the program??? Friday or Saturday session?? --[[User:etrunko|etrunko]] 20:01, 26 August 2008 (UTC)
::Added. I have also reorganized the sessions attempting to group those with a similar topic. Looking at the timing it seems that we have fully packed for both days. Can we consider the call for lightning sessions closed?--[[User:qgil|qgil]] 11:56, 4 September 2008 (UTC)
::: Here's my vote for &quot;yes.&quot; There are plenty! --[[User:timsamoff|timsamoff]] 13:27, 4 September 2008 (UTC)

=== Saturday 20th ===

I will continue to accept requests to speak, but I can't make any guarantee that the schedule will accommodate more people.  If I have scheduled any conflicts for presenters please let me know.  [[User:brontide|brontide]] 15:24, 7 August 2008 (UTC)

:Is it possible to schedule the ''maemo.org website redesign meeting'' in a slot where there is nothing about packaging, publishing, Extras or anythin website related at the same time. I need to be at those and it is generating conflicts at the moment. Thanks! --[[User:xfade|xfade]] 06:52, 8 August 2008 (UTC)
::If I have to make another change I will keep that in mind.  The problem is that no time is perfect for everyone and I have already moved it once because some people were leaving early.  [[User:brontide|brontide]] 13:17, 8 August 2008 (UTC)
:::Well, yes, but xfade aka Niels Breet is the maemo.org webmaster AND the responsable of maemo.org extras packaging tools. He really needs to be present and active in both sessions. For instance, what about moving the maemo.org redesign session to 13h instead of &quot;maemo.org extras Package Cleanup Sprint&quot;. Anyway, dos it make sense to have this packaging sprint session in 30'? This is too short time to get any result isn't it.--[[User:qgil|qgil]] 21:04, 8 August 2008 (UTC)
::::All that needed to be said is that he is participating in both sessions.  I had a request from Dave that it be earlier.  I have moved the website session to the 15:00 block and swapped it with clutter.  If 30 minutes is too short for package cleanup I have a jalimo session I could schedule in one of those blocks.  [[User:brontide|brontide]] 03:23, 9 August 2008 (UTC)

==== Waitlist ====

These are proposals that came in after the schedule was filled.  If I need to shuffle the schedule or if presenters drop out I will try and get these scheduled.

* '''Jalimo:''': by Sebastian
* '''&quot;Why do we do it?&quot;''': how I got involved in free software, the lessons I have learned from it by Dave Neary
* Lightning talk '''KDE on maemo''': by Marijn Kruisselbrink (arriving friday during lunch in Berlin)
: We will squeeze in 5 more minutes for the session, have fun. [[User:brontide|brontide]] 00:37, 15 September 2008 (UTC)

=== Mini Exhibit ===
''Moved to [[Maemo Summit 2008/Exhibit]]. See also the comments at [[Maemo_Summit_2008/Organization#OSiM]]''.

== Travel ==
Moved to [[Talk:Maemo_Summit_2008/Travel]].

==Accommodation==
Moved to [[Maemo Summit 2008/Accommodation]].

== Recording the Event ==
See [[Maemo_Summit_2008/Organization#Marketing_.26_coverage]] and post your comments / offers for help there.

== Advertising ==

I've submitted the event to the [http://lwn.net/Calendar/Monthly/2008-09/ LWN Event Calendar]. Is there any other wider advertising we can do? --[[User:jaffa|Jaffa]] 11:55, 14 July 2008 (UTC)

== Community ==

I've got some ideas to allow people attending at Maemo Summit to communicate better. If you have any other idea, please write/discuss here. --[[User:andy80|Andrea Grandi]] 10:35, 20 July 2008 (UTC)

* Prepare a sort of &quot;badge&quot;. A simple card with these informations:
** Name (nickname)
** What we do in our life (Developer/Student/Blogger/ecc...)
** Spoken languages: we could print a flag for each language we speak

* Prepare a custom Google map with all the hot points in Berlin: c-base, OSiM, all hotels we booked ecc...

* Create POI's for these place to use on Map software in our tablets

== Introduction to Maemo hacking? ==

Keywan says in maemo-developers: &quot;are there plans for a workshop or introduction for newcomers in the development for Maemo? What do you think about this idea? Is there anybody who would like to do this as a &quot;speaker&quot;? And are there other potential participants like me?
:Good idea, the question being: when? What is the right duration for this workshop and where could it fit in the agenda. One idea would be to have it on 2-3h on Saturday while the rest of running sessions are really hardcore developer or community wise.--[[User:qgil|qgil]] 07:06, 28 July 2008 (UTC)

== Lightning *idea* sessions ==

[http://maemo.org/profile/view/ifrade/ Iván] had a great idea today at lunch. What about a round of lightning sessions about '''ideas'''. You don't need to be a developer. In fact, it would be good that you are not a developer. But you have a great idea, and you present it brilliantly through text, a sketch, a presentation... In the audience you have a wide collection of power users and developers. Perhaps you find more feedback, improvements, the perfect match? The presentations are available online, next to a feedback channel. The discussion continues there. Perhaps something real will come out of that.--[[User:qgil|qgil]] 09:48, 29 July 2008 (UTC) (on behalf of Iván)
:When, though? The agenda onf Friday is already intense but... I think a refreshing session like this can be placed at 18h onwards. Right before the end, when you can catch the proposer of the idea and continue the discussion.--[[User:qgil|qgil]] 09:48, 29 July 2008 (UTC)
:I am agree that at 18:00 on Friday could be good timetable for this.--[[User:jsmanrique|jsmanrique]]
:[http://blog.ifrade.es/2008/07/30/lightning-ideas-maemo-submit/ Nice blog post from Iván]. It got rapidly to the top news in maemo.org. I'll take that as a community YES.  :)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo Summit 2008</title>
    <id>144</id>
    <revision>
      <id>50602</id>
      <timestamp>2012-11-02T17:14:33Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Undo revision 50601 by [[Special:Contributions/218.6.8.7|218.6.8.7]] ([[User talk:218.6.8.7|Talk]])</comment>
      <text xml:space="preserve">==Program==

=== Help with the program ===

I'm happy having the role of benevolent dictator for the schedule on Friday 19: I organize the sessions submitted and if someone finds a bug or an improvement just complain and we'll find a solution. However, I really don't want to organize the sessions on Saturday 20, which is purely a maemo.org community day. Can you please find either another dictator or a system to get that sorted out yourselves? I'm asking for a coordinator at [[Maemo_Summit_2008/Organization#Program]]. Thanks!--[[User:qgil|qgil]] 09:45, 18 July 2008 (UTC)

Also, could someone draw nice tables for the schedules? I want to do this since.. but there is always something else taking the time. In principle each day needs a table with 3 columns (3 tracks), being some sessions single cells spanning through the whole row (no tracks, just one session at a time, or breaks). Appreciated. --[[User:qgil|qgil]] 09:45, 18 July 2008 (UTC)

'''Saturday Coordinator ~ [[User:brontide|Eric Warnke]]''' Feel free to contact me directly or put your ideas here.  I will distill them and be the buffer for Nokia that day.  [[User:brontide|brontide]] 14:32, 25 July 2008 (UTC)

=== Lightning sessions ===

These are really brief sessions of 5 minutes approx i.e. demos. You can propose your own session listing it directly in the schedule '''once you have confirmed your trip to Berlin'''. If we get many proposals we will have a second round of lightning sessions on Saturday. Lightning sessions are cool!

We are open to submissions in the form of decent quality videos, to be shown to the audience and uploaded in maemo.org as part of the video materials of the Summit.

* I'd like to present Intranet search (extended desktop search) from maemo with libferris (http://www.libferris.com/). This would be a quick overview of what is available now and where I'm heading with it. -- [https://wiki.maemo.org/User:Monkeyiq Monkeyiq] July 19.
:Now you can list it yourself.--[[User:qgil|qgil]] 18:52, 20 July 2008 (UTC)
* We would like to demonstrate and talk about WorldTV99 (http://maemo.org/downloads/product/OS2008/worldtv99/) [bunanson and koos Vriezen] 09.16 16 July 2008 (BST).
:Now you can list it yourself.--[[User:qgil|qgil]] 18:52, 20 July 2008 (UTC)
* I don't know if 5 minutes would be enough, but I would like to talk about Rich UIs and the importance of being different and showing the potential of the platform to &quot;Transform&quot; itself in different products, focused in one main use: like our projects: Canola (media player) Carman (onboard computer + car media) and others like remote controls, etc. The real goal is to show why is really needed that some applications &quot;break&quot; the rules and extend the experience showing the power of openness. (this can be a full talk if of interest)
:20 seconds are enough for a great ad, 3:30 are enough for a great videoclip and 5:00 are enough for a great lightning session.  :)  Find a title and... a name for yourself (are you Marcelo?) Then on Saturday you could organize a full session.--[[User:qgil|qgil]] 08:30, 20 July 2008 (UTC)
:::Now you can list it yourself.--[[User:qgil|qgil]] 18:52, 20 July 2008 (UTC)
* I ([[user:barbieri| Gustavo Barbieri]]) got delayed due some personal problems and will just arrive in Berlin/Tegel by 2:10pm of 19th, after the lightning talks are over, may I remove my entry or someone else (qgil?) has to do it?
: Go ahead and remove it yourself. Can you move your session to anywhere else in the schedule? --[[User:timsamoff|timsamoff]] 13:49, 25 July 2008 (UTC)
: Qgil maybe another 30 minute lightning session right before we end for the day? ( assuming we have the interest from others to present ) [[User:brontide|brontide]] 13:54, 25 July 2008 (UTC)
:: timsamoff: brontide just did that for me. As for presenting later, of course I can, let's see if we can get another lightning sessions.
::If we get more lightning sessions we can have another round, although better on Saturday. They are good to break the routine.--[[User:qgil|qgil]] 18:29, 26 July 2008 (UTC)
* I ([[user:jsmanrique|jsmanrique]]) would like talking about [http://elisator.garage.maemo.org elisator] project and how [http://easy.garage.maemo.org Easy] library has helped and how could be improved. Elisator has been developed for cow's milk analisys and it has been funded by [http://www.fao.org FAO].--[[user:jsmanrique|jsmanrique]]   14:25, 29 July 2008 (UTC)
* [[user:etrunko|Eduardo Lima (Etrunko)]] would like to talk about the [http://dev.openbossa.org/trac/qedje/ QEdje] library which is being developed in INdT. This presentation will be focused on demos and much shorter than the one presented in Akademy this year by Leonardo Sobral and Artur Souza. You can find a preview on [http://www.youtube.com/watch?v=QZUwUDeJfX0 Youtube]. --[[User:etrunko|etrunko]] 18:43, 26 August 2008 (UTC)
:May I add it to the program??? Friday or Saturday session?? --[[User:etrunko|etrunko]] 20:01, 26 August 2008 (UTC)
::Added. I have also reorganized the sessions attempting to group those with a similar topic. Looking at the timing it seems that we have fully packed for both days. Can we consider the call for lightning sessions closed?--[[User:qgil|qgil]] 11:56, 4 September 2008 (UTC)
::: Here's my vote for &quot;yes.&quot; There are plenty! --[[User:timsamoff|timsamoff]] 13:27, 4 September 2008 (UTC)

=== Saturday 20th ===

I will continue to accept requests to speak, but I can't make any guarantee that the schedule will accommodate more people.  If I have scheduled any conflicts for presenters please let me know.  [[User:brontide|brontide]] 15:24, 7 August 2008 (UTC)

:Is it possible to schedule the ''maemo.org website redesign meeting'' in a slot where there is nothing about packaging, publishing, Extras or anythin website related at the same time. I need to be at those and it is generating conflicts at the moment. Thanks! --[[User:xfade|xfade]] 06:52, 8 August 2008 (UTC)
::If I have to make another change I will keep that in mind.  The problem is that no time is perfect for everyone and I have already moved it once because some people were leaving early.  [[User:brontide|brontide]] 13:17, 8 August 2008 (UTC)
:::Well, yes, but xfade aka Niels Breet is the maemo.org webmaster AND the responsable of maemo.org extras packaging tools. He really needs to be present and active in both sessions. For instance, what about moving the maemo.org redesign session to 13h instead of &quot;maemo.org extras Package Cleanup Sprint&quot;. Anyway, dos it make sense to have this packaging sprint session in 30'? This is too short time to get any result isn't it.--[[User:qgil|qgil]] 21:04, 8 August 2008 (UTC)
::::All that needed to be said is that he is participating in both sessions.  I had a request from Dave that it be earlier.  I have moved the website session to the 15:00 block and swapped it with clutter.  If 30 minutes is too short for package cleanup I have a jalimo session I could schedule in one of those blocks.  [[User:brontide|brontide]] 03:23, 9 August 2008 (UTC)

==== Waitlist ====

These are proposals that came in after the schedule was filled.  If I need to shuffle the schedule or if presenters drop out I will try and get these scheduled.

* '''Jalimo:''': by Sebastian
* '''&quot;Why do we do it?&quot;''': how I got involved in free software, the lessons I have learned from it by Dave Neary
* Lightning talk '''KDE on maemo''': by Marijn Kruisselbrink (arriving friday during lunch in Berlin)
: We will squeeze in 5 more minutes for the session, have fun. [[User:brontide|brontide]] 00:37, 15 September 2008 (UTC)

=== Mini Exhibit ===
''Moved to [[Maemo Summit 2008/Exhibit]]. See also the comments at [[Maemo_Summit_2008/Organization#OSiM]]''.

== Travel ==
Moved to [[Talk:Maemo_Summit_2008/Travel]].

==Accommodation==
Moved to [[Maemo Summit 2008/Accommodation]].

== Recording the Event ==
See [[Maemo_Summit_2008/Organization#Marketing_.26_coverage]] and post your comments / offers for help there.

== Advertising ==

I've submitted the event to the [http://lwn.net/Calendar/Monthly/2008-09/ LWN Event Calendar]. Is there any other wider advertising we can do? --[[User:jaffa|Jaffa]] 11:55, 14 July 2008 (UTC)

== Community ==

I've got some ideas to allow people attending at Maemo Summit to communicate better. If you have any other idea, please write/discuss here. --[[User:andy80|Andrea Grandi]] 10:35, 20 July 2008 (UTC)

* Prepare a sort of &quot;badge&quot;. A simple card with these informations:
** Name (nickname)
** What we do in our life (Developer/Student/Blogger/ecc...)
** Spoken languages: we could print a flag for each language we speak

* Prepare a custom Google map with all the hot points in Berlin: c-base, OSiM, all hotels we booked ecc...

* Create POI's for these place to use on Map software in our tablets

== Introduction to Maemo hacking? ==

Keywan says in maemo-developers: &quot;are there plans for a workshop or introduction for newcomers in the development for Maemo? What do you think about this idea? Is there anybody who would like to do this as a &quot;speaker&quot;? And are there other potential participants like me?
:Good idea, the question being: when? What is the right duration for this workshop and where could it fit in the agenda. One idea would be to have it on 2-3h on Saturday while the rest of running sessions are really hardcore developer or community wise.--[[User:qgil|qgil]] 07:06, 28 July 2008 (UTC)

== Lightning *idea* sessions ==

[http://maemo.org/profile/view/ifrade/ Iván] had a great idea today at lunch. What about a round of lightning sessions about '''ideas'''. You don't need to be a developer. In fact, it would be good that you are not a developer. But you have a great idea, and you present it brilliantly through text, a sketch, a presentation... In the audience you have a wide collection of power users and developers. Perhaps you find more feedback, improvements, the perfect match? The presentations are available online, next to a feedback channel. The discussion continues there. Perhaps something real will come out of that.--[[User:qgil|qgil]] 09:48, 29 July 2008 (UTC) (on behalf of Iván)
:When, though? The agenda onf Friday is already intense but... I think a refreshing session like this can be placed at 18h onwards. Right before the end, when you can catch the proposer of the idea and continue the discussion.--[[User:qgil|qgil]] 09:48, 29 July 2008 (UTC)
:I am agree that at 18:00 on Friday could be good timetable for this.--[[User:jsmanrique|jsmanrique]]
:[http://blog.ifrade.es/2008/07/30/lightning-ideas-maemo-submit/ Nice blog post from Iván]. It got rapidly to the top news in maemo.org. I'll take that as a community YES.  :)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo Summit 2008/Accommodation</title>
    <id>785</id>
    <revision>
      <id>4721</id>
      <timestamp>2008-07-17T19:28:56Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>/* Ending up in the same hotel */</comment>
      <text xml:space="preserve">==Booking accommodation before knowing flight==
Sponsored participant question:
How do we book accommodation before we know the flight details?
No point in booking a room for 4 days when available flights are only 3 days. --[[User:lcuk|lcuk]] 15:58, 14 July 2008 (UTC)
:I was hoping to give details about boofing flights today. Will be tomorrow, hopefully. However, it's basically up to you to decide when you fly in &amp; back so be my guest and book your hotel asap if you wish.--[[User:qgil|qgil]] 17:22, 14 July 2008 (UTC)

== Ending up in the same hotel ==

I would prefer to be in the same hotel as other participants.  Could we have some info where everyone is staying?  Hotel Ibis Berlin Mitte might be a popular choice, since it's explicitly listed here.  I see Jaffa is staying in Mercure Hotel Berlin Mitte (which is probably too expensive for the sponsorship budget).  Anyone else? --[[User:mgedmin|mgedmin]] 18:09, 14 July 2008 (UTC)
:The Ibis had got more expensive when I went to book, and [http://www.accorhotels.com/accorhotels/fichehotel/gb/mer/4988/fiche_hotel.shtml the Mercure] had a similar cheapest price to the Ibis. Also, more convenient for OSiM &amp; the summit. Probably more expensive than the budget, though --[[User:jaffa|Jaffa]] 18:37, 14 July 2008 (UTC)
::Let me know if 375€ is not enough. We need a reference amount to make sure we don't sponsor more than we can conver with the budget. This is why I'm insisting to everybody to request sponsorship asap and have travel and accommodation budgeted asap. If I could only know whether the silent ones are still planning to request sponsorship or not... With the current requests alone you could sleep in the Ritz. ;) Please help calling for registrations the ones you really want to see in Berlin. --[[User:qgil|qgil]] 18:50, 14 July 2008 (UTC)
:::My 4 nights (Tues-Fri, departing Saturday evening) came to 356EUR at the Mercure. Dunno if that sets a benchmark: I was feeling rich when I booked it. Now... not so much :-) Long time to September tho' --[[User:jaffa|Jaffa]] 19:30, 14 July 2008 (UTC)
::::Looks like it's full now, damn.--[[User:anidel|anidel]] 07:13, 15 July 2008 (UTC)
:::Hotel Ibis Berlin Mitte wants exactly 375EUR for 5 nights, but that doesn't cover breakfast (extra 9.50EUR per night).  Mercure wants more than 400 EUR.  There's another Ibis that's a bit closer, but that one is sold out already. --[[User:mgedmin|mgedmin]]
::::Then let's raise the limit to 425€ or 450€? Guys, agree on something and let me know.--[[User:qgil|qgil]] 18:00, 15 July 2008 (UTC)
:::::Let's say €400 for accomodation expenses limit and anything over that is split between participant and Nokia? Clarify that all meals are excluded unless included in the hotel rates, too? --[[User:jaffa|Jaffa]] 15:11, 17 July 2008 (UTC)
::::::We need to find a simple and sane way to deal with it. The easiest for the accountants is to pay just what says in the invoice. Anything departing from there is just complex. I' ok fixing the '''reference''' limit at 400€. If someone goes beyond that point no problem. If someone goes far beyond but taking out breakfast things look better no problem. If we talk about limits, splitting, refactoring, recalculating... then we have a lot of hassle paying back expenses to every extra participant.--[[User:qgil|qgil]] 18:19, 17 July 2008 (UTC)
:::::::Fair enough. Expense systems are never the most fun thing at the best of time, and it's you who'll have the hassle! --[[User:jaffa|Jaffa]] 19:28, 17 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo Summit 2008/Participant Photos</title>
    <id>809</id>
    <revision>
      <id>5118</id>
      <timestamp>2008-07-22T12:06:14Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">Wouldn't it be better to start asking people to upload pictures in their profiles, and have them very descriptive? There is the full list of participants at http://maemo.org/news/events/maemo_summit-001/ and from there you can see who has a complete and illustrated profile and who hasn't. Why not bugging them instead of creating yet another page to check and kind-of-spam the -users and -developers lists? (Tim, perhaps you have missed that we have maemo-community for that purpose now).--[[User:qgil|qgil]] 17:18, 17 July 2008 (UTC)
:Agreed. If nothing else this should probably be a page under the Maemo_Summit_2008 namespace as well. --[[User:jaffa|Jaffa]] 20:20, 17 July 2008 (UTC)
:: You're right, I didn't know about the maemo-community list. One of the reasons I thought this page would be useful is because it can be printed off as a complete list, rather then having to click-through to every profile manually (larger photos can also be submitted here). --[[User:timsamoff|timsamoff]] 11:31, 18 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo Summit 2008/Travel</title>
    <id>806</id>
    <revision>
      <id>6850</id>
      <timestamp>2008-08-28T12:01:23Z</timestamp>
      <contributor>
        <ip>193.5.216.100</ip>
      </contributor>
      <text xml:space="preserve">*I just saw ryanair offers free flights from Stansted to Berlin on the dates of the Summit (September 18th to September 20th). Only taxes apply, so it's only £20 to go back and forth by plane. From what I recalled, flights were 6AM on friday, 9PM on sunday, but their website just went blank, so I can't check it again. I'll try to see if it also works from other places. I don't know what you kind of discounts you get, but this might be interesting to look into. I'll check again when the website's back up --[[User:crashanddie|crashanddie]] 11:51, 3 July 2008 (UTC)
::It would appear bookings have to be made before [http://www.ryanair.com/site/EN/cheapflights.php?dest=SXF&amp;base=STN Monday July 7th] in order to get the £20 round-trip to Berlin. [http://www.ryanair.com/site/EN/dests.php?flash=chk List of different cities] that would appear to serve the Berlin airport, and can use this offer are: Stockholm  (Skavsta), Frankfurt (Hahn), London (Stansted), Dublin, Milan (Orio al Serio) and East Midlands. --[[User:crashanddie|crashanddie]] 14:40, 4 July 2008 (UTC)

*[http://www.euroflights.info/germany/berlin/ Euroflights] gives information on the various airlines which fly into/out-of Berlin --[[User:jaffa|Jaffa]] 19:58, 3 July 2008 (UTC)
::[http://www.edreams.com/edreams/english/ edreams] can give Europe wide fare information, as well - it seems. --[[User:jaffa|Jaffa]] 20:28, 3 July 2008 (UTC)

I'll be taking an easyjet flight instead of the proposed one from the travel agency. For example the travel agency quote 323.99 € and easyjet do it for 118 € (admittedly to a different airport 20km away) that needs a short train journey. Worth checking first. [[User:baloo|baloo]] 22:18, 19 July 2008 (UTC)

*General information on Airports and Public Transportation in [http://en.wikipedia.org/wiki/Berlin#Transportation Wikipedia] --[[User:andre|Andre]] 23:34, 3 July 2008 (UTC)

Pieces of advice based on my experience (based on forum post):
* If you have the time and courage you can hitchhike in Germany. Trucks easily take you aboard for a long route. [http://www.hitchwiki.org Here is a hitchhike wiki]. You can find other hitchhikers on [http://www.hitchhikers.org hitchhikers.org].
* Consider to book a train ticket in advance at [http://www.db.de/site/bahn/en/start.html Deutsche Bahn] this can save you up to 75% (if booked 2 weeks in advance) of the regular price. The 'dauer' deal provides 50% if booked 1 week in advance. Beware! Limited seats available!
* Consider a hostel, if you know a friend don't hesitate to ask for a stay, and the public transport in Berlin is cheap and fast as expected in a capital. Berlin is a city which is alive and many attractive aspects like: Alexanderplatz, Blinkenlights, CCC Berlin, [http://en.wikipedia.org/wiki/Club-Mate Club-Mate]. --[[User:allnameswereout|allnameswereout]] 12:17, 20 July 2008 (UTC)

'''Berlin WelcomeCard'''

It's been suggested by a friend that I (we) obtain a [http://www.visitberlin.de/welcomecard/index.php?lang=en Berlin WelcomeCard]. It lets you ride the U-bahn, the S-bahn, the buses, and the streetcars. You can get 2-day and 3-day versions. The 3-day is currently 21.50 €. You can buy them online, in advance. --[[User:timsamoff|timsamoff]] 02:22, 22 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo Summit 2008 recordings</title>
    <id>730</id>
    <revision>
      <id>6153</id>
      <timestamp>2008-08-01T14:57:21Z</timestamp>
      <contributor>
        <username>rsuplido</username>
        <id>16</id>
      </contributor>
      <comment>/* Sending videos as a presentation */</comment>
      <text xml:space="preserve">== Maemo Summit 2008 Recordings ==

Here you will find information regarding the recorded sessions from the Maemo Summit 2008.

== Summit a Request ==

As the Maemo Summit has yet to happen we are open to suggestions on what you would like to see, All talks will be recorded where possible but extra footage in the form of interviews, questions, back-stage action will be filmed on request. If you have a question you would like to pose to the developers working on the Maemo platform then now is your chance. Please add your question and preferably questionee, if known, to the list below.

=== Questions posed at the summit ===

Each interview should begin with a standardized set of questions about the interviewee:

# State your name and where you're from.
# Provide a description of how you are affiliated with Maemo (contributor, partner, etc.).
# Etc. (Please add if needed.)

It would also be cool to capture some establishing shots of the interviewees (short footage of person interacting at conference, but not in interview mode).

Please add your question/request below.

====Pre Summit====

* What are Nokia's hopes and goals for the Maemo Summit? [[User:baloo|baloo]] 11:53, 18 July 2008 (UTC)
* Why are you here? [[User:timsamoff|timsamoff]] 13:40, 18 July 2008 (UTC)
* What do you hope to gain from being here? [[User:timsamoff|timsamoff]] 13:40, 18 July 2008 (UTC)

====During Summit====

* What have you seen so far that is worth mentioning? [[User:timsamoff|timsamoff]] 13:40, 18 July 2008 (UTC)
* Have you made any new friends or met anyone of interest? [[User:timsamoff|timsamoff]] 13:40, 18 July 2008 (UTC)

====Post Summit====

* Do you think the summit achieved it goals? [[User:baloo|baloo]] 11:53, 18 July 2008 (UTC)
* What were the highlights of the summit? [[User:baloo|baloo]] 11:53, 18 July 2008 (UTC)
* Will there be a Maemo Summit 2009?  
* Is this planned to be an annual event?
* Can we please get 6 months advance notice for future events including dates and location?

== &quot;Storyboards&quot; ==

For lack of a better word, we need a way to loosely &quot;storyboard&quot; some of our ideas...

* Should all interviews be done in a specific location? Or should they be captured randomly throughout the conference space?
: In my opinion it would be best to shoot interviews in random locations, that way they don't all look the same. [[User:baloo|baloo]] 15:02, 18 July 2008 (UTC)
:: Ok. Agreed. [[User:timsamoff|timsamoff]] 18:33, 19 July 2008 (UTC)
* Do we need to organize some good establishing shots of the space/people or just shoot off-the-cuff?
: A catalogue of shots of the interviewee's and locations could be built up over the two days (and maybe at OSiM) to edit in later making the interview more appealing. We also need to have a standard set of questions to introduce the interviewee and maybe a couple of questions that would be interesting to hear from different viewpoints.
:: Yes. See info right under &quot;Questions posed at the Summit&quot; section. [[User:timsamoff|timsamoff]] 18:33, 19 July 2008 (UTC)
: One of the important things to do is gather a list of 'willing victims' and coordinate the recording project will all interested volunteers [[User:baloo|baloo]] 15:02, 18 July 2008 (UTC)
:: Let's start emailing people! [[User:timsamoff|timsamoff]] 18:33, 19 July 2008 (UTC)

== Streaming ==

There is a possibility for sreaming and it's all about the money. Yesterday we agreed with the c-base guys that they would include it in the modular budget.

I was certainly thinking about not accepting the sponsorship request from N people from US/Asia and with that money put in place a proper streaming &amp; recording setting. With a chat system in place they (and others) could even find some kind of real time participation. Needs more thinking.--[[User:qgil|qgil]] 09:16, 18 July 2008 (UTC)

==Sending videos as a presentation ==

Also someone had commented about sending a presentation on video as a kick-off of a session. Why not. At the end we should give example not only in physical mobility but also in other technical online community alternatives. In fact Krisse is doing just that already.--[[User:qgil|qgil]] 09:16, 18 July 2008 (UTC)

* [[User:baloo|baloo]] 11:53, 18 July 2008 (UTC) I will bring along a tripod and a Panasonic HDC-SD5 high definition camcorder. If there are no offers for a wireless/wired microphone solution I can arrange to bring one along also.
* [[User:timsamoff|timsamoff]] 13:48, 18 July 2008 (UTC) I am still trying to decide on whether to bring camera (Sony HVR-Z1U)/tripod/wireless mic or still camera (Canon 5D) and lenses. My main issue is figuring out a way to lug everything around in a primarily walking city. I have a rolling case, but it's HUGE. What do you think would be more beneficial to our cause: another video camera or a good still camera? If I do bring the still camera, I can still bring either (a) wireless mic, or (b) boom mic.
* [[User:baloo|baloo]] 15:12, 18 July 2008 (UTC) I doubt we need more than one video camera unless someone has another use for it. A good quality still camera would be great also as I only have a Nikon D40x to offer (I'll be bringing it anyway). So as you seem to have the better equipment on both counts it may be an advantage to bring all your gear but there are two issues, one, it wouldn't be convenient for you to bring everything, and two, the quality after re-encoding for the web may not be an issue so I propose that you email me and we can thrash out the idea's. After that we can post back our conclusions. Sound OK?
* [[User:rsuplido|Reggie]] 14:57, 1 August 2008 (UTC) Regarding Krisse's video, I might be able to just add it as part of our presentation, assuming my macbook will behave well with the projector. I need to patch audio from the macbook to the main amplifier. If patching is not an option, I guess the holding the mic against the macbook's speaker might work.

==Confirmed Equipment List==
* Jamie: Panasonic HDC-SD5 (video), tripod
* Tim: Canon 5D (and lenses), wireless lavaliere mic
* Add more here.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo Summit 2009</title>
    <id>1565</id>
    <revision>
      <id>11811</id>
      <timestamp>2009-03-17T22:38:52Z</timestamp>
      <contributor>
        <username>qole</username>
        <id>57</id>
      </contributor>
      <comment>/* Amsterdam (Netherlands) */</comment>
      <text xml:space="preserve">== Location Proposals ==

=== Asturias (Spain) ===
by [[user:jsmanrique|jsmanrique]]
What about [http://en.wikipedia.org/wiki/Gij%C3%B3n Gijon] or [http://en.wikipedia.org/wiki/Oviedo Oviedo] in Spain?

Ok, ok, perhaps they are not the biggest cities in Spain, but the regional opensource community/LUG ([http://www.asturlinux.org AsturLiNUX]) is celebrating its 10th years and they would help on everything. Since 2000 we have been spreading opensource in embedded devices, and lately Maemo. We have also created a
community about &quot;open mobile&quot; ([http://omag.es/ OMAG]), and we are working on a Spanish Gnome meeting (with some talks dedicated to Maemo too). So, I think that Maemo Summit would be a &quot;great end&quot; for 2009.

Despite that, there are other organizations (public and private) interested on managing and supporting an event like this. Places:
* [http://www.desdeasturias.com/laboral/ Laboral]
* [http://www.palaciocongresos-oviedo.com Congress Palace]

=== Amsterdam (Netherlands) ===

'''OSiM World''' will be organized in '''Amsterdam''' between '''15th''' and '''18th''' '''september'''.
--[[User:andy80|Andrea Grandi]] 10:19, 11 February 2009 (UTC)

If we have it ''after'' OSiM World, like last time, there is a better chance of getting people from OSiM World coming to the Summit to check it out, just like the 2008 summit. Also in Amsterdam's favour, Amsterdam is the cheapest city in continental Europe to fly into from many places in North America. --[[User:qole|qole]] 22:35, 17 March 2009 (UTC)

=== Vierhouten (Netherlands) ===

'''HAR 2009''' (Hacking At Random) will be organized between '''13th''' and '''16th''' '''August'''. You can find more informations here: [https://har2009.org/ https://har2009.org].--[[User:andy80|Andrea Grandi]] 12:28, 12 February 2009 (UTC)

=== Portland (Oregon, USA) ===

'''LinuxCon''' is in '''Portland''', Oregon, from '''Sept''' '''21st''' to '''Sept''' '''23th'''.
: I don't think we are prepared for organizing an event in the USA this year having the key contributors (many of them in Europe, including the huge majority of the Maemo SW team). Specially difficult in these times of budget ''optimizations''.--[[User:qgil|qgil]] 07:44, 11 February 2009 (UTC)

Also, expect visa problems for everybody whose country has no visa waiver program with the US.

VISA? Just for staying 4-5 days?! OMG :( --[[User:andy80|Andrea Grandi]] 13:05, 11 February 2009 (UTC)

This location may cost money in the short term, but this would certainly make money in the long.  The US is a big market for these devices, and generally unseen, and untold means--unsold.

=== Berlin and c-base again ===
As commented in the maemo-community thread. We would need to look closer at the price of moving away from a co-located event and the risk of not getting enough infrastructure to handle a bigger attendance.--[[User:qgil|qgil]] 07:46, 11 February 2009 (UTC)

If choosing another location we (the community / Nokia) have to pay lots of money to pay the place... well, I agree with C-base too.--[[User:andy80|Andrea Grandi]] 10:20, 11 February 2009 (UTC)

=== Scandinavia ===

This is my suggestion since there are lots of embedded / mobile phone people in the Nordics, what with Ericsson, Nokia, Trolltech, etc.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo Summit 2009/Organization</title>
    <id>2429</id>
    <revision>
      <id>18216</id>
      <timestamp>2009-09-16T11:22:44Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <text xml:space="preserve">=work in progress, please don't edit now=

==Equipment==
* Speaker laptops? OS available? Formats accepted?
* 4 rooms have projector.
* 1, 2, 3 have video camera but not 4. Unclear who will operate them though.

== Spaces ==
* N900 = big room
* N810 = medium room
* N800 = small room
* 770 = workshop room
* Community = Expo &amp; lunch room
* There will be an infodesk - in Community room?
* Gardrobe?

== Media &amp; bloggers ==
* Traditional media handled by Nokia Press team.
* Decision pending on tech/Linux bloggers - Quim
* Room 4 is Press Room on Friday, available for BOFs on Saturday and Sunday.

== Video coverage ==
* What are we renting, exactly?
* We need 1 person for each of the 3 cameras.
* How to process all the material?
* We need someone in charge of this.

== Maemo Expo ==
* In the Community room.
* Many small demo stands.
* maemo.org stand organized by the community - who coordinates.

== Food, drinks ==
* Lunch will happen in the Community room.

== Social events ==
* Party in FlexBar on Friday.
* Drinks after the last session on Saturday.

== Registration ==
* Badges need to be produced. A4 folded twice containing name in 2 sides, map and schedule.
* Registration possible already on Thursday afternoon (17:00-19:00). Then opening at Friday and Saturday at 9am. Sunday? Probably going to infodesk is enough.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo Summit 2009/Schedule</title>
    <id>2038</id>
    <revision>
      <id>18804</id>
      <timestamp>2009-09-25T19:05:23Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">== Conference Checklist ==

* 3 days for the conference
* Community schedule to be organised by a committee, designated by the council.
* Lightning talks - a great success last year, we should have them again
* Call for content: Issued, 15 June.
* Process for accepting talks: See [http://blogs.gnome.org/bolsh/2009/06/19/maemo-summit-help-make-it-great/ Dave Neary's blog]
* Themes? Fremantle &amp; Harmattan, in three tracks: User, App Developer, Platform Developer
* Schedule - we'll handle planning &amp; putting the schedule online on the Wiki.

== Timeline ==

* Decide on conference infrastructure and put it in place: DONE: Using Wiki
* Decide on process for getting content: DONE: Call for content + committee to choose presentations
* Issue call for content if necessary: DONE: Call for content issued, we need to do some more communication work &amp; get proposals
* Deadline for content proposals: September 13
* Presenters notified: On going

== Draft Schedule ==

This is the wiki mark-up we're using for the schedule.

=== Saturday 10 ===


{| class=&quot;wikitable&quot; border=&quot;2&quot;
|-
! Time
! Track 1
! Track 2
! Track 3
|-
| align=&quot;right&quot; | 9.00  
| colspan=&quot;3&quot; align=&quot;center&quot; | Doors Open
|- 
| 10.00 - 10.55 
| colspan=&quot;3&quot; align=&quot;center&quot; | Keynote 1
|- 
| 11.00 - 11.25 
| Users 1 
| App developers 1 
| Platform developers 1
|-
| 11.30 - 11.55 
| Users 2 
| App developers 2
| Platform developers 2
|-
| 12.00 - 12.25 
| Users 3
| App developers 3
| Platform developers 3
|-
| 12.30 - 12.55 
| Users 4
| App developers 4
| Platform developers 4
|-
| 13.00 - 14.30 
| colspan=&quot;3&quot; align=&quot;center&quot; | Lunch
|-
| 14.30 - 15.25
| colspan=&quot;3&quot; | '''Lightning talks''', 5 min each 
# Lightning talk
# Lightning talk 
# Lightning talk 
# Lightning talk 
# Lightning talk 
# Lightning talk 
# Lightning talk 
# Lightning talk 
# Lightning talk 
# Lightning talk 
# Lightning talk 
|-
| 15.30 - 15.55 
| Users 5
| App developers 5 
| Platform developers 5 
|-
| 16.00 - 16.25 
| Users 6
| App developers 6 
| Platform developers 6 
|-
| 16.30 - 16.55 
| Users 7
| App developers 7
| Platform developers 7
|-
| 17.00 - 17.25 
| Users 8
| App developers 8 
| Platform developers 8 
|-
| 17.30 - 17.55 
| Users 9
| App developers 9
| Platform developers 9
|}

=== Sunday 11 ===

{| class=&quot;wikitable&quot; border=&quot;2&quot;
|-
! Time
! Track 1
! Track 2
! Track 3
|-
| align=&quot;right&quot; | 9.00  
| colspan=&quot;3&quot; align=&quot;center&quot; | Doors Open
|- 
| 10.00 - 10.55 
| colspan=&quot;3&quot; align=&quot;center&quot; | Keynote 1
|- 
| 11.00 - 11.25 
| Users 1 
| App developers 1 
| Platform developers 1
|-
| 11.30 - 11.55 
| Users 2 
| App developers 2
| Platform developers 2
|-
| 12.00 - 12.25 
| Users 3
| App developers 3
| Platform developers 3
|-
| 12.30 - 12.55 
| Users 4
| App developers 4
| Platform developers 4
|-
| 13.00 - 14.30 
| colspan=&quot;3&quot; align=&quot;center&quot; | Lunch
|-
| 14.30 - 15.25
| colspan=&quot;3&quot; | '''Lightning talks''', 5 min each 
# Lightning talk
# Lightning talk 
# Lightning talk 
# Lightning talk 
# Lightning talk 
# Lightning talk 
# Lightning talk 
# Lightning talk 
# Lightning talk 
# Lightning talk 
# Lightning talk 
|-
| 15.30 - 16.30 
| colspan=&quot;3&quot; align=&quot;center&quot; | Final Session (round table ???)
|}


== Suggestions ==
:I think that 2009 will be Fremantle year, so I expect a summit focused on:
:* New technologies showcase (i.e., what can be done with clutter?)
:* New hardware features
:And I would add one or two roundtables to talk and discuss:
:* What's next?
:* What about past hardware? What about third party development?
:* Would you like a Maemo App Store?
:—[[user:jsmanrique|jsmanrique]]

: 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:
:* Talks about Mer?
:* Mer's development SDK/processes?
:* Hands-on Mer development sessions?
:* Mer/Maemo/Garage/Nokia integration (although this is already a fast moving target)
:-- [[User:lbt|lbt]] 21:04, 17 June 2009 (UTC)

: 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.
: --[[User:hhedberg|hhedberg]] 06:29, 2 July 2009 (UTC)

: There does not appear to be time blocked up front for &quot;meet and greet&quot;... is it assumed we will do this informally prior to the event?  Maybe the evening before?
: --[[User:texrat|texrat]] 16:34, 4 September 2009 (UTC)

: I will hold a &quot;Opt BoF&quot;, where we talk about the next steps related to the Fremantle /opt hack for giving more space to installed packages.
: --[[User:mvo|mvo]] 22 Septempter 2009</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo Summit 2009/Submissions</title>
    <id>2066</id>
    <revision>
      <id>34333</id>
      <timestamp>2010-05-13T11:59:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/203.177.74.138|203.177.74.138]] ([[User talk:203.177.74.138|Talk]]); changed back to last version by [[User:amigadave|amigadave]]</comment>
      <text xml:space="preserve">= Presentations under consideration =

Please add comments you have about presentations under consideration here.



== Propose merge ==

=== Tracker: Dial M for Metadata ===

Probably merge with the other Tracker presentation already approved ? . --[[User:vdvsx|Valério Valério]] 10:13, 17 September 2009 (UTC)

I vote to replace (with the presenter's approval) the QtTracker talk by this more general one. --[[User:dneary|Dave Neary]] 10:23, 18 September 2009 (UTC)

Agree with Dave, there is significant overlap from what I can see, to facilitate a merge or replace. --[[User:baloo|baloo]] 19:20, 20 September 2009 (UTC)

'''Propose merge or replacement with QtTracker - Merge OK'''

'''Done'''

''Managing metadata by accessing Tracker with QtTracker''
* Author: Iridian Kiiskinen, ext dash iridian dot kiiskinen at nokia dot com
* Intended audience: Application/Platform Developers
* Talk type: Presentation
* Abstract/description
: QtTracker is a Qt Object RDF Mapper with Tracker backend. It supplements Soprano, offering intuitive resource access, property traversal, sophisticated query building, live update handling, simple client-side transactions, powerful caching, and other convenience features at the top convenience layer, but also lower tier access supplying direct sparql etc. QtTracker is native C++, and integrates extensively with Qt.
: The upcoming release is the first public LGPL release of QtTracker, and an introduction is given into why, when and how QtTracker should be used. After that a basic example application presenting idiomatic usage of core features will be discussed.
* Author bio
: 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.

=== MicroB browser, why it fastest &quot;Mozilla based&quot; browser, features, extensions for MicroB ===

We already have a browser presentation approved, waiting for more opinions --[[User:vdvsx|Valério Valério]] 10:22, 17 September 2009 (UTC)

Agreed. We have a &quot;Maemo browser for power users&quot; talk, Quim suggested the two talks merge. I'd say no to this unless the presenters agree to merge their talk. --[[User:dneary|Dave Neary]] 10:23, 18 September 2009 (UTC)

Not sure a merge would work but if it can be done then a yes. --[[User:baloo|baloo]] 19:28, 20 September 2009 (UTC)

'''Propose merge with existing Maemo browser proposal - Quim to mail'''

''' MicroB browser, why it fastest &quot;Mozilla based&quot; browser, features, extensions for MicroB '''
*Oleg Romashin, oleg dot romashin at nokia dot com / Nagineni Sudarsana
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: Maemo 5, MicroB browser currently is fastest &quot;Mozilla based&quot; browser available on mobile platform. 
: 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.
: Also some description about how to write extensions for MicroB browser.

=== Designing QT application for Maemo 5 and Maemo 6 ===

Big yes. This is a very relevant presentation due to the recent discussions in the -devel ML about this topics. --[[User:vdvsx|Valério Valério]] 10:19, 17 September 2009 (UTC)

We already have a few Qt presentations in there. Is there a chance to merge this with (or replace) an existing talk? --[[User:dneary|Dave Neary]] 10:23, 18 September 2009 (UTC)

Agree. Merge. --[[User:baloo|baloo]] 19:27, 20 September 2009 (UTC)

'''Propose merge with Ian Monroe's &quot;Preparing Qt apps for Harmattan and Fremantle&quot; ''' (response: replace Ian's talk by Sergiy's)

'''Done - Leaving Ian's proposal here, for a possible BoF, if we have space.'''

''Preparing your Qt Application for Fremantle and Harmattan''
*Ian Monroe &lt;ian.monroe at collabora.co.uk&gt;
*Intended audience: application developers
*Talk type: Presentation/BoF
*Abstract/description
: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.

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.
*Integrating with Tracker
:*Telepathy
:*...and other (traditionally Gnome) parts of the Maemo stack.
*How much existing desktop GUI (if any) can be used on the small touch-screen device? 
*Core/UI separation
*Developing touch screen UIs
*Additional Information
: Non-fixed chairs so that they can be put in a circular fashion (which is best for a BoF when possible).
*Author bio
: 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's video player, Dragon Player.





== Accepted Presentation proposals ==

When presentations have been definitively accepted and moved from the &quot;Submissions&quot; page to the schedule, the discussion about them is removed, but remains visible in the [http://wiki.maemo.org/index.php?title=Talk:Maemo_Summit_2009/Submissions&amp;action=history history].

== Declined presentation proposals ==

When authors have been notified that their presentations will not be included in the schedule, we move them here.

=== Attracting the Masses ===

Presentation declined. We felt that the content wasn't compelling enough for the presentation, and there will be considerable duplication with presentations during the Nokia day, which will concentrate on cracking the mass market, and during the Fremantle Stars presentations we expect to have. Please add any comments you might have below. [[User:dneary|Dave Neary]] 16:45, 1 July 2009 (UTC)

* Daniel Gentleman, thoughtfix at gmail dot com or thoughtfix anywhere.
* Intended audience: Developers - but other parties may be interested
* Talk type: Presentation (req: projector with VGA or DVI input for a Keynote presentation) 
* Abstract/description
: Tablets have hundreds of applications now - but who are they for? If the Internet Tablets are intended to attract a more mainstream mobile market, the maemo community needs to get in touch with the needs of the target market.
: The first part of this presentation will give an overview of the most popular applications on competing platforms. This information will be collected through app store sales/download counts, direct communication with a sampling of mobile consumers, and communication with some other high-profile mobile technology journalists. This will include actual applications, connectivity options, peripherals, interface (touch/keyboard/icon/etc) preferences, and related consumer desires.
: The second part of this presentation will give an overview of the state of the existing maemo platform including commercial partners, independent contributors, and ports of more popular Linux software.
: The conclusion will analyze mobile consumer desires compared to maemo offerings and, hopefully, give developers ideas on what they can write to make the platform more appealing.

*Author bio
: The seeds of TabletBlog started in 2005 when some geek named Daniel Gentleman picked up the original Nokia 770 and started a blog. Since then, I've published thousands of bits of material reaching millions of visitors and video views. So far, I've been present for the Nokia N800 launch in CES 2007, the N810 launch at the Web2Summit, BossaConference 2008 in Recife, Brazil, and the first Maemo Summit.

=== Challenges of Multimedia within a Freely Distributable Tablet Framework ===

Seems a little too abstract for a Maemo Summit as I think these issues effect a much wider audience. A good talk but again, in the interests of keeping this a very Maemo Summit focused event, I'm saying no unless a more compelling argument is there. -- [[User:baloo|baloo]] 22:48, 12 July 2009 (UTC)

Same opinion here, in the current state I say no. --[[User:vdvsx| Valério Valério]] 09:28, 13 July 2009 (UTC)

Same here. No. There are many more compelling Mer presentations possible. --[[User:dneary|Dave Neary]] 15:23, 13 July 2009 (UTC)

'''Agreement: No'''

* Author: Matthew Craig, mtc in #Mer
* Intended audience: Users and Platform engineers
* Talk type: Presentation
* Abstract/description 
: Multimedia technology has the very real potential of framing the next generation of the web, and it is becoming a primary vehicle for communication worldwide.  The Mer Project faces unique challenges in handling this important technology, as it based on embedded architectures and strives to be freely distributable.  For example, license restrictions of MPEG technologies prevent the free distribution of the popular &quot;MP3&quot; audio playback.  With the current and rapid adoption of HTML-5 Video specifications, these difficult challenges are ones that must be addressed immediately.  This talk will review the obstacles, and the practical solutions, to using multimedia within the Mer Project.
* Author bio 
: See ''Evangelizing Mer'' below.

=== Evangelizing Mer, and Tips on Promoting Your Own Project ===

Not sure this would stand up as a full session, suited more to a lightning talk? -- [[User:baloo|baloo]] 22:48, 12 July 2009 (UTC)

Unless the author came up with a bigger plane, I also vote to convert it in a LT. --[[User:vdvsx| Valério Valério]] 09:33, 13 July 2009 (UTC)

I think an evangelisation presentation might be good. Let's see what else comes along in that style before saying yes. --[[User:dneary|Dave Neary]] 15:36, 13 July 2009 (UTC)
:On reflection, I think that this is not a great and potentially interesting session to a large number of people. Voting no. --[[User:dneary|Dave Neary]] 13:48, 31 July 2009 (UTC)

* Author: Matthew Craig, mtc in #Mer
* Intended audience: Application Developers
* Talk type: Presentation
* Abstract/description 
: The Mer Project is a community led tablet framework that offers community support for older Nokia tablet computers.  The success of the project relies on the participation of interested technologists worldwide.  Over the last half year, the Mer Project has been able to attract dozens of participants and aligned itself with important free software organizations, such as Ubuntu, openSUSE, and maemo.org, in order to assure long-term success.  Our excited participants are not only maemo.org members but also activists in their community, advocating the software in local technology clubs and events.  Find out the details of these efforts and ways that you can adopt the same policies for your own project, presented by the self-proclaimed Mer Project Chief Evangelist!
* Author bio 
: Matthew Craig is a volunteer and outspoken representative of the Mer Project.  He brings with him the experiences of being a Xiph.org Foundation volunteer and an Ubuntu Member in hopes of helping realize a cross-platform and freely distributable Mer framework.  When he is not discovering the future of micro-sized computing, Matthew handles a technical consulting practice to bring server and storage solutions to enterprise-sized environments.

=== Creating Python bindings for C libraries in Maemo ===

I don't think Python bindings for C in Maemo have something special/different than bindings for other linux 'distros'. Since we have a lot of proposed talks for the dev's track, I would prefer to have others instead of this one. Maybe a LT, but IMO, this is a big topic for a 5 min presentation. So is a no for me. --[[User:vdvsx| Valério Valério]] 11:46, 31 July 2009 (UTC)

There's already a pymaemo presentation, I think that we should leave it at that, and start solliciting presentations to fill gaps we have in the schedule. --[[User:dneary|Dave Neary]] 13:48, 31 July 2009 (UTC)
: It's been pointed out to me that there isn't. A pymaemo presentation (&quot;RAD for Maemo with PyMaemo&quot; or something like that) would be a pretty cool presentation. --[[User:dneary|Dave Neary]] 12:39, 3 August 2009 (UTC)

I proposed this talk for this reason: I think Python bindings are very very important for Maemo. Why? Because if Maemo is only programmable in C language we miss a lot of good programmers who cannot/don't want to use C language.
Having more developers (C + Python) means more applications available for Maemo.
My talk want to convince people to help PyMaemo team and showing them that it requires only few (almost...) C skills and free time to dedicate to the project. If you find it's not a good reason, I'll accept your decision anyway.
I could propose a light talk about python-mafw (the binding I'm working to) but it wouldn't be exactly the same thing. --[[User:andy80|Andrea Grandi]] 19:17, 3 August 2009 (UTC) 

*Author: Andrea Grandi (andy80), a.grandi at gmail dot com
*Intended audience: Application/Platform Developers
*Talk type: presentation (20-30 minutes)
*Abstract/description
: Lot of libraries in Linux and even in Maemo are written in C and are not directly accessible from Python. When a Python binding doesn't exist it could be useful to create one so other Python developers are able to use that library without having to code their application in C language.
: My intent is to give basic information about how to create Python bindings for a generic C library and show how to generate an automatic build and installation using distutils.
*Author bio
: I'm a student of Computer Science at &quot;Università degli Studi di Firenze&quot; (Italy) and currently I'm going to spend a whole year at &quot;Universidad Politecnica de Valencia&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'm doing a work stage at Igalia (a spanish free software company) and I'm working on a Python binding of a Maemo library.

I would love to see this, with all the new libs coming in Fremantle and beyond we need all the help we can get in order to have full Python support.  Besides, this really belongs in the platform track which is still mostly empty. --[[User:lma|lma]] 17:25, 21 August 2009 (UTC)

=== Life outdoor event with Maemo ===

*Author: Till Harbaum
*Intended audience: everyone
*Talk type: lightning talk + outdoor thing
*Abstract/description
: 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 &quot;geocoin&quot; could be made for this event.
*Author bio
: 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.

Could be part of the Stars keynote for OSM2Go. --[[User:dneary|Dave Neary]] 16:15, 30 July 2009 (UTC)

Agree. --[[User:vdvsx| Valério Valério]] 11:22, 31 July 2009 (UTC)

I like the subject, but I'm not sure it should be grouped with OSM2Go. There is a wider talk here that could look at geocaching, GPX recording for geotagging photo's, e.t.c. --[[User:baloo|baloo]] 12:45, 3 August 2009 (UTC)

'''Agreement: Propose Fremantle Stars plenary session, 10 to 15 mins each'''
'''Session confirmed, at least OMWeather, OSM2Go, liqbase and Mauku will present &amp; discuss the outside event idea with Till'''



=== Improving the Bluetooth experience on Linux ===
* Gustavo F. Padovan. &lt; gustavo at padovan dot org &gt;

*Intended audience: platform developers
*Talk type: presentation
*Abstract/description
: This talk will cover the implementation of the Enhanced Retransmission Mode(ERTM) of operation of the Logical Link Control and Adaptation Protocol (L2CAP), a Bluetooth Core layer. ERTM provides support for segmentation and reassembly of packets, flow control and error control which means, mainly, support for retransmission of lost packets on Bluetooth Core implementation on Linux for the first time.
: ERTM makes transfers more reliable, giving us a very low error rate. Also, It is one of the first steps to implement the amazing Alternate MAC/PHY(new Bluetooth 3.0 feature), which allows that Bluetooth uses the 802.11 radio to transport Bluetooth data. I'm doing this work as part of my Google Summer of Code project and I'm being mentored by Marcel Holtmann, the BlueZ maintainer.

*Author bio
: Gustavo F. Padovan is 22 years old. Computer Science student at University of Campinas, Brazil. Free Software enthusiastic and member of GPSL (a student group to promote free software at University of Campinas). He is a BlueZ core developer and was accepted on Google Summer of Code 2009 in the same project.  He has also been contributing to the Linux Kernel since May 2008. Nowadays, he works at ProFUSION embedded systems.

Not sure this would make for a good presentation. Veering towards a 'no' unless something else comes up to convince me otherwise. -- [[User:baloo|baloo]] 13:12, 26 August 2009 (UTC)

No from me too. --[[User:dneary|Dave Neary]] 19:33, 31 August 2009 (UTC)

=== Expanding the tablet user base ===
* Luc Byhet
* Intended audience: everyone
* Talk type: presentation / lessons learned
* Abstract/description

: Mobile platforms such as laptops and smartphones got pervasive but unappropriate to specific tasks and jobs. Well, not so specific as it's sometimes hundred of thousands of users. End users started envisioning specialised devices for their own specific fields and tasks. Tablets are a good fit for technical fieldforces, healthcare, trading, law enforcement or interactive guides but yet their use in these areas is not so widespread yet.

: This talk will be about influencing users and decision makers, stimulating innovation around tablets, meeting users and ensuring that devices get used. A walkthrough of succesful implementations of similar devices will be presented as well as a checklist of what to do to make this happen. This is about tech and business, code and industrial design, and potentially finding a dream job.

*Author bio

: I'm working for Accenture Technology Consulting, my job is to evangelize CIOs and decision-makers about open source software, get decisions done and launch projects. I'm a permanent observer of Open Source communities and promoter of their work. I'm currently working on innovative use cases for tablets.

Not sure about the content on this one. Seems too high level and evangelizing for me. -- [[User:baloo|baloo]] 13:23, 26 August 2009 (UTC)

If we're going for a presentation in this style, Texrat's is my preference. No. --[[User:dneary|Dave Neary]] 19:33, 31 August 2009 (UTC)

Texrat's is also my favorite in this topic. No from me. --[[User:vdvsx| Valério Valério]] 16:31, 1 September 2009 (UTC)

=== Building a Safe Mobile Browsing Experience ===
* [http://maemo.org/profile/view/timeless timeless]
* Application developers
* Presentation
*Abstract/description
: Making a browser is simple, right? All you need is a text field and a content area. Then someone asks for back, and forward, and bookmarks, and zooming. Eventually someone says they care about whether they're visiting their bank's web page or some con-artist. At this point, you realize that things aren't simple. But that's just the normal process, we're trying to build a browser for a mobile device with a small screen. Then along comes a user interface designer who tries to &quot;simplify things&quot;, you don't need to &quot;waste&quot; space on that lock icon, right? Someone asks &quot;why aren't you protecting me from phishing?&quot; Then someone says &quot;you just cost me 200 CAD in data charges&quot;. Balancing requests for features, space for user interface, and practical concerns is hard. Come listen to stories about some of the requests, decisions, and constraints. 
*Additional Information (optional)
: Presentation day must be Friday or Sunday.
*Author bio
: timeless has been working on Mozilla for 10 years in various areas, including Embedding, User Interface, Localization and Security. For the past 3 1/2 years, at Nokia working on the Maemo Browser (code name: [[MicroB|MicroB]]).

Yes from me. --[[User:vdvsx| Valério Valério]] 08:58, 25 August 2009 (UTC)

Let's see what space we have left on Sunday. --[[User:dneary|Dave Neary]] 19:33, 31 August 2009 (UTC)

'''No - prefer &quot;Browser for power users'''

=== Mobile Widget Development and Trends ===
*Author: [http://maemo.org/profile/view/rajeshlal Rajesh Lal], rajesh.lal at nokia dot com
*Intended audience: Widget Developers/Mobile Application Developers
*Talk type: Presentation/Demo
*Abstract/description
: A presentation on Mobile Widget Development, and how Maemo platform distinguishes itself with Common Web Runtime and QT, and provides a strong foundation for Mobile Developers across the World.

: This presentation is not about QT or WRT, this is about the over used term Widget, in a global term, what is the history, what is a web widget, a mobile widget, and what are the technology stack available out there for widget development. and How Maemo distingushes itself with QT and WRT. 

*Benefit to Maemo Developers
: Clear understanding of the Overused Term Widget 
: Know about Web Widgets and Mobile Widgets 
: Understand the Current Trends in Mobile Development 
: See the Definite Advantage of Maemo Platform for Widget Development
: Gain knowledge about Common Web Runtime and QT
: Learn about Widget Development in Maemo 5 and Future Maemo Devices

*Author bio
: Rajesh lal is a Nokia Research Engineer, Author, Technology Evangelist, and a Developer based in Mountain View, California. He has been involved in Widget development for last 5 years and have authored two books on Gadgets, and Widgets, namely Creating Vista Gadgets from Sams Publication and Professional Web Widgets by Wrox Publications. Rajesh holds a Master's degree in Computer Science, is a Code Project MVP and an Active member of ACM with experience in a variety of Mobile devices, namely Sony Mylo, Window's Mobile, Apple's Iphone, and Maemo devices.

We already have a Common Web Runtime presentation and also QT ones, what does this presentation cover that isn't covered elsewhere? -- [[User:baloo|baloo]] 13:37, 26 August 2009 (UTC)

Baloo, This presentation is not about QT or WRT, this is about the Widget in a global term, what is the history, what is web widget, mobile widget, and what are the technology stack available out there for widget development. How Maemo distingushes itself with QT and WRT. This presentation is about, How Maemo caters to both performance hungry developers (Qt) as well as the omnipresent web developers (WRT) as compared to other mobile development environment. --[[User:rajeshlal| Rajesh Lal]] 21:27, 29 August 2009 (UTC)

On the basis of the above information, it seems a interesting presentation for me, I'm going to say yes to this. --[[User:vdvsx| Valério Valério]] 21:49, 30 August 2009 (UTC)

There is already a presentation on QT development for Harmatan and Maemo on Friday, plus several presentations on developing Qt applications in teh community days, plus the &quot;Hildon toolkit for Fremantle&quot; presentation, plus the Qt mobility talk. That seems like a lot of overlap to me. I vote no. --[[User:dneary|Dave Neary]] 19:33, 31 August 2009 (UTC)

Dave, This presentation is not about Qt, but is about the overused term Widget itself, along with the current trends in mobile development. Qt and WRT is the Maemo's answer, but why this is better than others needs a context, this presentation covers that, by giving a comparison to Android, Palm Pre, iPhone and Windows Mobile, and by showing the different kinds of technologies used for designing, developing and packaging widgets.--[[User:rajeshlal| Rajesh Lal]] 21:49, 1 September 2009 (UTC)
: Thanks for the update Rajesh. I'm going to vote no on this proposal. We're running out of space on the schedule, and I don't think that a talk on trends in mobile platforms will be particularly interesting to the maemo.org public we're expecting to attend. --[[User:dneary|Dave Neary]] 15:39, 3 September 2009 (UTC)

'''No'''

=== WebKit Community: How It Works ===

*Ariya Hidayat, ariya dot hidayat at nokia dot com
*Intended audience: application developers
*Talk type: introduction and workshop
*Abstract/description
: 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. 
: 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.

*Author bio
: 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.

'''No - there is already a Webkit talk'''

=== ContextKit - context awareness for Maemo and everybody else ===

Yes. --[[User:vdvsx|Valério Valério]] 10:24, 17 September 2009 (UTC)

Yes. --[[User:dneary|Dave Neary]] 10:23, 18 September 2009 (UTC)
: After consultation, there are more interesting and general presentations which would be better in this place --[[User:dneary|Dave Neary]] 16:53, 21 September 2009 (UTC)

Yes. --[[User:baloo|baloo]] 19:28, 20 September 2009 (UTC)

'''No'''

*Author: Marius Vollmer &lt;marius.vollmer@nokia.com&gt;
*Intended audience: application developers/platform developers)
*Type: presentation
*Abstract
A lot of information is available from sensors and other sources that can make applications more 'aware' of the situation that a mobile device is in. The current location is an obvious example.

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 'standard' properties is defined.

This presentation introduces the ContextKit to application and platform developers.

*Author bio:
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.



=== Money for nothing: Making money off free software ===
*Dave Neary, dneary at maemo dot org
*Intended audience: Application developers mostly
*Talk type: Presentation
*Abstract/description
: So how ''do'' you make money with free software? If you can't sell it, and anyone can compete with you for maintenance and support contracts, how do you make a living?
: This presentation will go over the basic economics of making money off free stuff, and give a bunch of ideas about useful ways to make a living doing what you love.

*Author bio
: 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.

'''Presentation withdrawn by proposer'''

=== Midgard2: Content repository for your tablet and the web ===

The proposal description only explains what is Midgard, isn't clear what approach will be taken in the talk. I would like to see a more detailed description, referring the topics that will be discussed in the talk. --[[User:vdvsx| Valério Valério]] 13:35, 14 August 2009 (UTC)

Agreed. Is this going to be a Midgard talk or how we can do cool stuff with  Midgard and the tablets? --[[User:baloo|baloo]] 13:47, 14 August 2009 (UTC)

I agree with the call for more detail on what the thrust of the presentation will be. --[[User:dneary|Dave Neary]] 19:33, 31 August 2009 (UTC)
: We're looking like we'll be filling up lightning talks too. Let's just say no to this one. --[[User:dneary|Dave Neary]] 10:23, 18 September 2009 (UTC)

'''No'''

*Author: Henri Bergius, henri.bergius at iki dot fi
*Intended audience: Application Developers
*Talk type: presentation
*Abstract/description
: 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; 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's content repository services allow you to easily write applications that keep their data synchronized between tablets, web and user's desktop computers.

*Author bio
: 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'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.


=== Qt 4.6: What is comming ===

Already addressed in other Qt talks. No.  --[[User:vdvsx|Valério Valério]] 10:25, 17 September 2009 (UTC)

No. --[[User:dneary|Dave Neary]] 10:23, 18 September 2009 (UTC)

No. --[[User:baloo|baloo]] 19:35, 20 September 2009 (UTC)

'''No'''

* Authors: Anselmo Lacerda Silveira de Melo - anselmo.melo AT openbossa DOT org / Jesus Sanchez-Palencia jesus.palencia AT openbossa DOT org
* Intended audience: application developers
* Talk type: presentation
* Abstract/description

The next release of Qt is comming with brand new features, such as the State Machine Framework, the Animations API, S60 port, Scoped Pointers, Anchor Layout, performance optimizations in QGraphicsView, Multi-touch Gestures, Audio Services, GraphicsEffects, etc. The goal of the talk is to provide an overview of the benefits of each new feature and how they shall change the development of Qt applications. 
Also, some applications will be shown, running on Maemo 5 and S60, demonstrating how cross-platform Qt can be and what is ready for the new generation of Maemo devices.

* Author bio
Anselmo is a GNU/Linux user since 2002, works with Linux on embedded devices since 2006. Works for INdT as a researcher at the openBossa open-source stream, where develops rich UIs features for Qt and is also part of the Qt Labs Americas initiative. Whenever possible, he likes hunting bugs with the KDE Bugsquad.

Jesus works with Maemo since 2007, besides other embedded Linux projects since 2006. Has contributions to the ERESI project (Elf Reverse Engineering Software Interface), and nowadays works at openBossa, INdT open-source stream, where develops rich UIs features for Qt and is also part of the Qt Labs Americas initiative.

=== Spreading Qt in the New World ===

Not directly related to Maemo, and we already have other Qt talks approved. No. --[[User:vdvsx|Valério Valério]] 10:27, 17 September 2009 (UTC)

No. --[[User:dneary|Dave Neary]] 10:23, 18 September 2009 (UTC)

No. --[[User:baloo|baloo]] 19:35, 20 September 2009 (UTC)

'''No'''

* Author: Anselmo Lacerda Silveira de Melo - anselmo.melo AT openbossa DOT org
* Intended audience: Users / Application Developers
* Talk type: lightning talk
* Abstract/description

An introduction to Qt Labs Americas (http://qtlabs.openbossa.org), an initiative of openBossa stream of INdT aiming to spread Qt in the American continent, starting in Brazil. What have been done, what are the future plans and how the community can benefit from it.

* Author bio

GNU/Linux user since 2002, works with Linux on embedded devices since 2006. Works for INdT as a researcher at the openBossa open-source stream where develops rich UIs features for Qt and is also part of the Qt Labs Americas initiative. Whenever possible, he likes hunting bugs with the KDE Bugsquad.


=== Next generation layouts in Qt 4.6 ===

Not sure, seems relevant, but this will not be explained in the other Qt talks ? --[[User:vdvsx|Valério Valério]] 10:30, 17 September 2009 (UTC)

No. --[[User:dneary|Dave Neary]] 10:23, 18 September 2009 (UTC)

Space dictates, no. --[[User:baloo|baloo]] 19:36, 20 September 2009 (UTC)

'''No'''

=== Next generation layouts in Qt 4.6 ===

* Author: Caio Marcelo de Oliveira Filho - caio.oliveira AT openbossa.org
* Author: Eduardo M. Fleury - eduardo.fleury AT openbossa.org
* Intended audience: Users / Application Developers
* Talk type: presentation
* Abstract/description

With the release of N900, the first Maemo phone from Nokia, the
importance of developing rich UI applications is higher than ever.
As a consequence, new challenges are posed to both application
and framework developers.

One of these challenges is how to distribute items on the screen
in a flexible and dynamic way. This talk will present the next
generation layouts we have been developing, together with Qt
Development Frameworks, to fullfil such requirements

We will cover the new QGraphicsAnchorLayout, to be released in
Qt 4.6, including the use cases that drove us, its usage and
examples showing the benefits of such technology.

* Author bio

Caio Marcelo de Oliveira Filho graduated in computer engineering at
UNICAMP (in Brazil) and GNU/Linux user for more than a decade.
Contributed to the development of Canola2 and the Enlightenment
Foundation Libraries. Today works for Openbossa/INdT developing new
solutions for mobile applications using Qt framework and related
technologies.

Eduardo Fleury is Brazilian, graduated as Computer Engineer at Unicamp, in 2006. Since then has been working in Linux-related projects. Currently works at INdT (Nokia Institute of Technology) developing, among other projects, the Qt framework. Has been working on tools designed for the creation of rich interfaces, including AnchorLayout and animated Layouts.

=== Test framework tool for Maemo devices ===

No. Limited interest, and we already have many tools talks. --[[User:dneary|Dave Neary]] 10:23, 18 September 2009 (UTC)

No. --[[User:vdvsx|Valério Valério]] 18:11, 19 September 2009 (UTC)

No. --[[User:baloo|baloo]] 19:36, 20 September 2009 (UTC)

*Author: Carlos Aguiar - carlos.aguiar@indt.org.br, Fabio Almeida - fabio.almeida@indt.org.br, Luiz Nagata - luiz.nagata@indt.org.br and Jyrki Sippola - jyrki.sippola@nokia.com
*Intended audience: users/platform developers
*Talk type: presentation/demo
*Abstract/description:
: Companies usually develop their own tools for test and monitoring consoles directly into their products but these applications tools, in general, do not go out of production place and are not deployed for platform developers and  final consumers. These solutions are closed and just for company use. The open source community provides many tools to test different functionalities like keyboard, display, wi-fi and so on, but they do not work together as an integrated solution. 
: The proposal is to integrate different functional tests into a test framework tool for Maemo devices. This framework will be able to communicate with different test applications, control them, gather information and report status results, helping developers and users to identify problems, perform reliability tests and gather statistics. Also, it will be possible to extend this framework to support new test types.
: For demo presentation purposes the framework will run the following functional tests: keyboard, camera, audio, display and wi-fi.
*Author bio:
: Carlos, Fábio and Luiz are software developers at Nokia Technology Institute (INdT)  at Manaus/Brazil working with Linux, Maemo and device tests. Currently we are involved on project that aims to build software solutions to guarantee quality on devices. Jyrki is responsible for manufacturing test related research projects at Nokia.

=== Designing Emulators for Mobile Devices ===

I would like to have it, since is a very different topic, and seems fun for me, but I have doubts about the expected audience. --[[User:vdvsx|Valério Valério]] 16:25, 4 September 2009 (UTC)

As agreed on IRC, with the few presentation slots left, this talk doesn't stand out at all. No from me - although it'd be a nice lightning talk. --[[User:dneary|Dave Neary]] 16:29, 4 September 2009 (UTC)

'''No - propose lightning talk'''

On the second thought, I think it can be safely expanded to a more general topic of ''Writing and Optimizing Software for Mobile Devices''. Will this topic be of more interest to the audience? 
--[[User:fms|Marat Fayzullin]]

Marat, are you interested in a lightning talk? I don't think that we'll reconsider your alternative topic. --[[User:dneary|Dave Neary]] 15:26, 9 September 2009 (UTC)

I can probably compress the talk down to 15-20 minutes, but 5 minutes allocated for lightning talks are not going to suffice however I arrange the talk. --[[User:fms|Marat Fayzullin]]
: I guess we need to give you a straight yes/no then on whether the talk is accepted. --[[User:dneary|Dave Neary]] 18:10, 19 September 2009 (UTC)

Lightning talk + &quot;come chat later if your interested&quot; - yes, longer talk, no. --[[User:baloo|baloo]] 19:32, 20 September 2009 (UTC)

'''No'''

*Marat Fayzullin - RST38h on #maemo 
*Intended audience: application developers
*Talk type: presentation
*Abstract/description
: 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.
*Author bio
: 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.

=== Developing applications using Plasma ===
* Artur Duque de Souza - asouza AT kde DOT org / morpheuz AT gmail DOT com
* Intended audience: application developers
*Talk type: presentation
*Abstract/description

: KDE4 brought a new concept of desktop called &quot;Plasma&quot; where everything is a &quot;live object&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'll talk more about libplasma and how it can help the developer to create more attractive and rich UIs easily.

*Author bio

: 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.

=== PySide: Python for Qt And Automatic Bindings Generation ===

* Marcelo Lira dos Santos - marcelo.lira@openbossa.org - setanta on #maemo
* Intended audience: application developers/platform developers
* Talk type: presentation
* Abstract/description:
: 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.
: 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.
: 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.
: 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.

*Author bio
: 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.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo Talk Dos and Donts/</title>
    <id>5021</id>
    <revision>
      <id>45933</id>
      <timestamp>2011-12-06T06:10:42Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 45931 by [[Special:Contributions/46.118.161.128|46.118.161.128]] ([[User talk:46.118.161.128|Talk]]) SPAM</comment>
      <text xml:space="preserve">dunno how to delete this page completely, all just SPAM :-/</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo basics</title>
    <id>2739</id>
    <revision>
      <id>20193</id>
      <timestamp>2009-10-15T14:32:00Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Maemo Basics]] moved to [[Talk:Maemo basics]]: Standardise capitalisation. No capitalised words (apart from the first word) except in proper nouns in wiki page names.</comment>
      <text xml:space="preserve">re: &quot;The N770 cannot be upgraded to the standard Maemo versions 3 or 4 but it can be updated to what are known as &quot;Hacker's Editions&quot; (OS2007HE and OS2008HE), which were developed by the Maemo community.&quot;

It's my understanding that a third-party developer actually created the hacker editions.  I will look into this and edit if/where necessary.
-Texrat</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo brainstorm</title>
    <id>2965</id>
    <revision>
      <id>22169</id>
      <timestamp>2009-11-08T21:37:28Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Talk:Maemo brainstorm]] moved to [[Talk:Task:Maemo Brainstorm]]: This is a Task</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Task:Maemo Brainstorm]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo contribution guidelines</title>
    <id>1344</id>
    <revision>
      <id>8863</id>
      <timestamp>2008-11-20T13:12:01Z</timestamp>
      <contributor>
        <username>andy80</username>
        <id>199</id>
      </contributor>
      <text xml:space="preserve">The [http://maemo.org/legal/contribution_guidelines/ current guidelines] will be deprecated. Deadline: Fremantle beta SDK release or earlier.

- I've read them and I agree. --[[User:andy80|Andrea Grandi]] 13:12, 20 November 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo package source status</title>
    <id>836</id>
    <revision>
      <id>5547</id>
      <timestamp>2008-07-25T20:54:41Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Out of the backlog</comment>
      <text xml:space="preserve">== Mostly done? ==

Hi, in the [http://lists.maemo.org/pipermail/maemo-community/2008-July/000465.html the email sent to maemo-community] there is a file with components and packages, specifying whether they are open or closed. Please have a look and let me know what else do you need. I'm trying to upload it here to the wiki but currently the file format is not supported.--[[User:qgil|qgil]] 16:29, 20 July 2008 (UTC)
:We agreed to have this task out the backlog since [[Task:Components_and_packages]] already covers most of it.--[[User:qgil|qgil]] 20:54, 25 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo roadmap</title>
    <id>2899</id>
    <revision>
      <id>21599</id>
      <timestamp>2009-11-02T06:05:13Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Talk:Maemo roadmap]] moved to [[Talk:Open development/Maemo roadmap]]: Subpage of Open development</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Open development/Maemo roadmap]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo security</title>
    <id>2671</id>
    <revision>
      <id>29511</id>
      <timestamp>2010-02-13T16:16:41Z</timestamp>
      <contributor>
        <username>keesj</username>
        <id>38</id>
      </contributor>
      <comment>/* Will DRM-free data and DRM-free applications be accessible from both modes once they're installed/created in either of the two modes? */</comment>
      <text xml:space="preserve">A wiki is probably the best tool we have but it's not perfect.
To make it work better please sign your comments and try to maintain some structure.

Putting three ~ and a : at the start of a new comment sounds sane if you have an account; otherwise some identifier would be polite.

Suggested questions:

===What is &quot;Open Mode&quot; and can it be revoked remotely?===
[[User:lbt|lbt]] Essentially can Nokia reach out the the 2nd stage bootloader and  tell it to stop running unsigned kernels.
Maybe this should be 2 questions.

--[[User:elena_r|elena_r]] 08:37, 28 October 2009 (UTC):Short answer: &quot;Open mode&quot; allows for a user/developer to have their own security policy on a device. This means that a user/developer can change the kernel and the important system components in the way he wants/needs. This mode can't be revoked remotely. 

More detailed answer: Let me explain the modes a bit more that there are no confusions. Sorry, if I would be too academic or a bit too high-level, but it is the best way to explain things at the moment, as soon as we can't fully share the details now (work is still in progress). 

About the first mode (it got the name &quot;close mode&quot;, but it sounds too strong, so let's call it &quot;normal mode&quot;at the moment, before we have the final names): The device is called to be in the &quot;normal mode&quot;, if it has booted the Nokia signed SW Image. This includes the kernel, rootfs, and important system components, which are part of our Trusted Computing Base. The examples of such components are drivers, applications like Application manager (input gate for the SW on the platform) and many others. 

If any of such components is modified (not via system update), the device is in the &quot;open mode&quot;. The checks for the components signature are done during the boot process (see presentation), so the current assumption that in order to change the mode, the reboot is needed. Moreover, in order to get back to the &quot;normal mode&quot; from the &quot;open mode&quot;, one has to get all components back that the Nokia signature check is successful. The details of the procedure should be available later.

===Can open applications use the DRM encryption mechanisms in the Open and Closed modes?===
[[User:lbt|lbt]] I can see that this could be useful. Maybe.

--[[User:elena_r|elena_r]] 08:52, 28 October 2009 (UTC):Let me explain about the purpose of the DRM: The DRM should be used to protect the commercial content (such as applications, music) from unauthorized copy protection (the content, which would be distributed via Ovi store). Applications have another possibility to encrypt the data by using the APIs from the &quot;Protected Storage&quot; component, which was introduced during the presentation. They should be quite easy to use and give a lot of flexibility for the data encryption. The Protected storage's APIs can be used in both modes, but the encryption won't work, when you switch from one mode to another (for example if application uses the APIs to encrypt the data in the &quot;normal mode&quot;, it won't be able to decrypt it in the &quot;open mode&quot;, and vise verse).

===Is there any GPLv3 software impacted?===
[[User:lbt|lbt]] this is @ community: Please have a license discussion somewhere and let us know when you have consensus.

[[User:lbt|lbt]] What is Nokias position? Peter made a statement at the talk - can someone transcribe it and/or get Nokia to clarify.

[[User:keesj|keesj]] During the Q&amp;A of the second Maemo 6 security presentation at the the Maemo 2009 summit it was made clear GPLv3 component will not be accepted in the platform.

===What exactly is available to the end user?===

* storage encryption ?
* PIM data encryption ?
* encrypted/signed communications (phone, sms/mms, mails, IM) ?

--[[User:elena_r|elena_r]] 12:45, 28 October 2009 (UTC): If I understood the question correctly, it is about the benefits for the user that the Security FW provides. 

Here are the examples of the benefits:

1. Security FW allows us to introduce new business models (based on the DRM), which hopefully will bring much more good applications to the end users.
2. Security FW provides the tools for the applications, which can be used to make the user's data to be more secure (again, the example with the protected storage, which can be used to encrypt all your messages and store them on the device in the encrypted form (if application wishes to do so)).

One can find out more use cases, but in short, the Security FW is an enabler for many good future application and use cases(probably some we even can't see now). So, it is up to developer's to use this advantage and develop cool applications in new domains, where the security of an application (or its data) is important.

=== How does closed mode affect on-device debugging? ===

[[User:lma|lma]] For example, will ptrace(2) still work (eg gdb, strace &amp; ltrace)?  Will we be able to produce code dumps?

--[[User:elena_r|elena_r]] 09:00, 28 October 2009 (UTC):For security reasons the idea is that a developer should be able to debug its own code (application), but should not be able to assign a debugger to another process. Of course, the memory dumps, for example of the kernel memory, should be restricted, too. This is valid for the &quot;normal mode&quot;. For the &quot;open mode&quot; one should be able to do everything.

===Will DRM-free data and DRM-free applications be accessible from both modes once they're installed/created in either of the two modes?===

E.g.: I start in DRM-mode, install DRM-free applications from Extras, take 3 pictures, add some contacts. Then I switch to DRM-free mode: Will I be able to run the applications installed in DRM-free mode, view and edit my contacts and view and edit my own pictures? (And the other way round, of course, starting from DRM-free mode and switching to DRM afterwards.)


--[[User:elena_r|elena_r]] 10:19, 28 October 2009 (UTC):I will answer based on the example given above. After switching to the DRM-free mode, you should be able to use your application, access your pictures, contacts and so on (of course, if you didn't reflash the whole rootfs (in this case, you will probably need to reinstall the application), or if the application doesn't use the protected storage to encrypt, for example,  the images(in this case, it won't be able to decrypt it)). The other way round is a bit more specific. As I answered above, in order to return to the &quot;normal mode&quot; (or &quot;DRM mode&quot;), one need to return all components to their initial state. The simplest way to do it is to reflash the whole Nokia signed SW image (kernel, rootfs, and so on) back, but in this case, the data on the rootfs is lost (and your application needs to be installed again). I can't say now that will be the final way to move back to the &quot;normal mode&quot;, because this is still work in progress.

[[User:keesj|keesj]] Not having contact data protected sounds like a failure to provide useful  security features so I expect the contact data to be protected. If this is the case it should not be possible to view/edit the contact in open mode.

===What is open mode good for at all?===

Provided you don't consume digitally restricted media and don't purchase applications that in any way rely on DRM: You don't need DRM-mode then, but on the other hand why would you want DRM-free mode? What is it you cannot do in DRM-mode in such a scenario?  Use case?

--[[User:elena_r|elena_r]] 10:03, 28 October 2009 (UTC): The typical use case for the &quot;open mode&quot; is that a user wants to define its own security policy, install its own system components, change/extend the kernel and so on. The change of the policy allows you to define the trust on each SW source, for example, you can add your own source of SW and allow it to grant an access to all protected resources (of course, the DRM would be disabled, when you switch to the &quot;open mode&quot;). Low-level platform development is also possible only in the &quot;open mode&quot;.

===What is ARM's TrustZone?===
The official ARM TrustZone page:
http://www.arm.com/products/security/trustzone/index.html

===Can the Trusted Execution Environment (TrEE) be used as a kill switch for the device even if it runs in open mode?===

--[[User:elena_r|elena_r]] 09:04, 28 October 2009 (UTC): No, no worries.

===Will a SIM-locked device with a contract become unlocked at the end of the contract?===
[[User:lbt|lbt]] It seems very reasonable to allow the phone to be locked for the duration if that is part of the carrier's contract. After that it should be able to access 'open' mode. Will this be possible? How?

[[User:corsac|Corsac]]: In France for example, it's free (and mandatory) for carriers to accept sim-unlock after 6 months. It may be done before with some fee.

--[[User:elena_r|elena_r]] 09:03, 28 October 2009 (UTC): From our side, it could be possible, but it will be up to your contract with the operator and the local legislation in your country.

===Would Nokia be prepared to have Bruce Schneier and co review the security architecture?===
[[User:lbt|lbt]] a review by a respected external expert like Bruce would be very beneficial to both parties.

--[[User:elena_r|elena_r]] 09:09, 28 October 2009 (UTC): We would be very glad if smbd like Bruce can review our technology :-)
I am, personally, would be very happy to meet him and discuss the security architecture, because the first book I read about security was his famous &quot;Applied cryptography&quot; (I was still in the school at that time), but I am not sure if he is interested in things like this now :-)

=== Will a TPM chip be added? ===

r-r: Could it serve other security purpose then in Open mode?
[[User:corsac|Corsac]]: afaik, TPM is x86 only. But that's the purpose of ARM TrustZone. And we already asked the question, see above.

--[[User:elena_r|elena_r]] 12:47, 28 October 2009 (UTC): As was presented, we have a TrEE (based on the OMAP3), which we are using now.

=== How are important upgrades handled? ===

r-r: Do they require to sign a whole new system image?


--[[User:elena_r|elena_r]] 09:52, 28 October 2009 (UTC):Security FW doesn't put any limitations on how the system SW updates are delivered. It is up to the people, who is doing this, to decide in which way they would like to provide the upgrades.

== Maintaining the discussion ==

On the [http://talk.maemo.org/showthread.php?p=344427#post344427 talk.maemo.org thread], I suggest that end-users are kept at arms' length from this page and we use it as a proper communication mechanism between the community and Elena et al. --[[User:jaffa|Jaffa]] 10:43, 13 October 2009 (UTC)

More discussion in the [http://mg.pov.lt/maemo-irclog/%23maemo.2009-10-11.log.html#t2009-10-11T12:50:36 #maemo chat] which was going on concurrently with the talk and a [http://www.flickr.com/photos/30863507@N02/4007518495/ few] [http://www.flickr.com/photos/30863507@N02/4008286892/ flickr] [http://www.flickr.com/photos/30863507@N02/4007522767/ photos]. --[[User:jaffa|Jaffa]] 11:20, 13 October 2009 (UTC)


==Proposed Structure==

===User FAQ===
Community answers to common FAQs based on the technical answers below
* Can I switch modes


===Security Functionality (What can be done)===
* Privilege
* DRM

===Security Framework and Flow (How is it done)===
* boot
** bootROM
** Loader
*** simlock issues?
** kernel

* Runtime
** Privilege Management
*** Ovi/Maemo
** Encryption

===Interoperability===
* Key backup/transfer

===Customisation (Eg Enterprise, Partner)===
* ??

== protected mode hacking ==

If signed kernel will had vulnerability, can it (legally) used by user for escalating his own rights on his own cellphone in protected mode? Will nokia charge such user (or user, publishing a way to hack official kernel) with legal pursuit? #![[Special:Contributions/80.249.182.252|80.249.182.252]] 15:23, 11 February 2010 (UTC)

== SIM locking rationale ==

Keeping the user away from DRMed multimedia content in open mode is a defensible proposition. But what is the rationale for prohibiting open mode on SIM-locked phones? You must know that the vast majority of users will have SIM-locked phones. Advertising Maemo as an open platform when most users will not be able to take advantage of that openness is disingenuous.

To be honest, I have the distinct impression that the SIM-locking restriction is designed to appease carriers who are accustomed to installing sub-optimal firmware that optimizes carrier revenue not user experience. With that restriction in place, there is little reason for users who buy SIM-locked phones to choose Maemo over any other platform.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemo summit 2008</title>
    <id>659</id>
    <revision>
      <id>41694</id>
      <timestamp>2011-02-08T08:53:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/77.244.212.231|77.244.212.231]] ([[User talk:77.244.212.231|Talk]]); changed back to last version by [[User:Qgil|Qgil]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Maemo Summit 2008]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Maemowiki Action Group</title>
    <id>4091</id>
    <revision>
      <id>34337</id>
      <timestamp>2010-05-13T15:20:55Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Talk:Wiki gardeners]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Wiki gardeners]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Main Page</title>
    <id>13</id>
    <revision>
      <id>41448</id>
      <timestamp>2011-01-26T11:44:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>Undo revision 41443 by [[Special:Contributions/178.170.160.44|178.170.160.44]] ([[User talk:178.170.160.44|Talk]]) spam</comment>
      <text xml:space="preserve">== Front page organization ==

I was looking at some of the other OSS wikis (Gentoo, Slackware, Debian, etc) for ideas for the front page layout. A common theme seems to be a front page with a category index (Software, Hardware, HowTos, Developers, etc), a preamble/introduction of some sort and perhaps a news feed. Based on this I've started putting together a possible layout on my [[User:Generalantilles|userpage]]. [[User:generalantilles|generalantilles]] 05:10, 20 May 2008 (UTC)

I would like to have a very simple front page, if possible. I want to avoid having the lists of links which made the old wiki so hard to manage. I would suggest having sections for tips &amp; tricks, developer documentation, general troubleshooting and community-process related documents. I would like to have software-documentation removed completely from the wiki, in favour of downloads.maemo.org. --[[User:dneary|dneary]] 10:24, 22 May 2008 (UTC)

Had an idea about adding the Devices to the front page and threw together a quick idea here: [[User:Cas07/Sandbox/Front_page | Front Page Test]] --[[User:cas07|cas07]] 23:59, 16 January 2010 (UTC)

: We should probably start looking at reducing the number of things on the front page. To begin with, there were only 12 links on the wiki front page - we're up to 35 with your proposal. So maybe we should start removing some now. --[[User:dneary|Dave Neary]] 14:36, 20 January 2010 (UTC)

::I agree. My modification was simply to add more useful links to the front page but on reflection, there is a lot more work involved.
::--[[User:cas07|cas07]] 18:36, 21 January 2010 (UTC)



== Article organization ==

Generally speaking, I'm in favor of not nesting articles (i.e. '''HowTos/Installation''' or '''Hardware/Nokia 770'''), as it can make pages harder to link to (gotta figure out the page and what it's nested under) and generally doesn't provide a whole lot of usefulness.

I think we should favor [http://meta.wikimedia.org/wiki/Help:Category Categories] instead, since it's make page URLs less complicated, gets rid of the nesting issues, allows us to file articles in more than one place and provides us with nice automatically generated [[:Category:HowTo|indexes]]. [[User:generalantilles|generalantilles]] 05:15, 20 May 2008 (UTC)

== Dynamic content ==

It would be good to have a couple of blocks updated automatically: [[Special:Newpages|New]] and [[Special:Popularpages|Popular]] pages.--[[User:qgil|qgil]] 20:03, 28 June 2008 (UTC)

== Localization ==

To do or not to do? I'm bit interested to translate some of the most important wiki pages to Finnish language but I would like to know what others think about it.

== Help Pages ==

The Help link in the main navigation on the left (and also the Editing help link when editing a document) have no text, having a help page similar to [http://en.wikipedia.org/wiki/Help:Contents Wikipedia Help] would be really useful, particularly the &quot;Editing Wikipedia&quot;-&gt;&quot;Cheatsheet&quot; section and policy/guidelines etc. Are the Wikipedia Help pages copyright?
: I was sure that the help pages were here the first time I used the wiki... as far as I know, the help pages are available under a free documentation licence, and could be made available. -- [[User:dneary|dneary]] 10:15, 1 July 2008 (UTC)

== Problems ==
If you are not registered to this wiki the layout of the frontpage is strange. There is a lot of white space at the beginning of the MainPage. After a login the Layout looks good. (Tested with Firefox 3; 1280x1024 px)

As of August 16, the Main Page is completely blank in Firefox 3, Epiphany (Mozilla Engine), and MicroB even when logged in, but displays fine in Konqueror
: I was able to get to the main page by using https in Firefox 2 (not logged in though). [[Special:Contributions/98.223.226.131|98.223.226.131]] 23:30, 27 August 2008 (UTC)


How can i remove the new users - title from power users?!? its not in the template so no idea where it comes to there! --[[User:ossipena|ossipena]] 07:25, 6 November 2009 (UTC)
: ''sorry, the template source was the one i forgot to alter..''</text>
    </revision>
  </page>
  <page>
    <title>Talk:Main Page</title>
    <id>13</id>
    <revision>
      <id>41448</id>
      <timestamp>2011-01-26T11:44:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>Undo revision 41443 by [[Special:Contributions/178.170.160.44|178.170.160.44]] ([[User talk:178.170.160.44|Talk]]) spam</comment>
      <text xml:space="preserve">== Front page organization ==

I was looking at some of the other OSS wikis (Gentoo, Slackware, Debian, etc) for ideas for the front page layout. A common theme seems to be a front page with a category index (Software, Hardware, HowTos, Developers, etc), a preamble/introduction of some sort and perhaps a news feed. Based on this I've started putting together a possible layout on my [[User:Generalantilles|userpage]]. [[User:generalantilles|generalantilles]] 05:10, 20 May 2008 (UTC)

I would like to have a very simple front page, if possible. I want to avoid having the lists of links which made the old wiki so hard to manage. I would suggest having sections for tips &amp; tricks, developer documentation, general troubleshooting and community-process related documents. I would like to have software-documentation removed completely from the wiki, in favour of downloads.maemo.org. --[[User:dneary|dneary]] 10:24, 22 May 2008 (UTC)

Had an idea about adding the Devices to the front page and threw together a quick idea here: [[User:Cas07/Sandbox/Front_page | Front Page Test]] --[[User:cas07|cas07]] 23:59, 16 January 2010 (UTC)

: We should probably start looking at reducing the number of things on the front page. To begin with, there were only 12 links on the wiki front page - we're up to 35 with your proposal. So maybe we should start removing some now. --[[User:dneary|Dave Neary]] 14:36, 20 January 2010 (UTC)

::I agree. My modification was simply to add more useful links to the front page but on reflection, there is a lot more work involved.
::--[[User:cas07|cas07]] 18:36, 21 January 2010 (UTC)



== Article organization ==

Generally speaking, I'm in favor of not nesting articles (i.e. '''HowTos/Installation''' or '''Hardware/Nokia 770'''), as it can make pages harder to link to (gotta figure out the page and what it's nested under) and generally doesn't provide a whole lot of usefulness.

I think we should favor [http://meta.wikimedia.org/wiki/Help:Category Categories] instead, since it's make page URLs less complicated, gets rid of the nesting issues, allows us to file articles in more than one place and provides us with nice automatically generated [[:Category:HowTo|indexes]]. [[User:generalantilles|generalantilles]] 05:15, 20 May 2008 (UTC)

== Dynamic content ==

It would be good to have a couple of blocks updated automatically: [[Special:Newpages|New]] and [[Special:Popularpages|Popular]] pages.--[[User:qgil|qgil]] 20:03, 28 June 2008 (UTC)

== Localization ==

To do or not to do? I'm bit interested to translate some of the most important wiki pages to Finnish language but I would like to know what others think about it.

== Help Pages ==

The Help link in the main navigation on the left (and also the Editing help link when editing a document) have no text, having a help page similar to [http://en.wikipedia.org/wiki/Help:Contents Wikipedia Help] would be really useful, particularly the &quot;Editing Wikipedia&quot;-&gt;&quot;Cheatsheet&quot; section and policy/guidelines etc. Are the Wikipedia Help pages copyright?
: I was sure that the help pages were here the first time I used the wiki... as far as I know, the help pages are available under a free documentation licence, and could be made available. -- [[User:dneary|dneary]] 10:15, 1 July 2008 (UTC)

== Problems ==
If you are not registered to this wiki the layout of the frontpage is strange. There is a lot of white space at the beginning of the MainPage. After a login the Layout looks good. (Tested with Firefox 3; 1280x1024 px)

As of August 16, the Main Page is completely blank in Firefox 3, Epiphany (Mozilla Engine), and MicroB even when logged in, but displays fine in Konqueror
: I was able to get to the main page by using https in Firefox 2 (not logged in though). [[Special:Contributions/98.223.226.131|98.223.226.131]] 23:30, 27 August 2008 (UTC)


How can i remove the new users - title from power users?!? its not in the template so no idea where it comes to there! --[[User:ossipena|ossipena]] 07:25, 6 November 2009 (UTC)
: ''sorry, the template source was the one i forgot to alter..''</text>
    </revision>
  </page>
  <page>
    <title>Talk:Main Page</title>
    <id>13</id>
    <revision>
      <id>41448</id>
      <timestamp>2011-01-26T11:44:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>Undo revision 41443 by [[Special:Contributions/178.170.160.44|178.170.160.44]] ([[User talk:178.170.160.44|Talk]]) spam</comment>
      <text xml:space="preserve">== Front page organization ==

I was looking at some of the other OSS wikis (Gentoo, Slackware, Debian, etc) for ideas for the front page layout. A common theme seems to be a front page with a category index (Software, Hardware, HowTos, Developers, etc), a preamble/introduction of some sort and perhaps a news feed. Based on this I've started putting together a possible layout on my [[User:Generalantilles|userpage]]. [[User:generalantilles|generalantilles]] 05:10, 20 May 2008 (UTC)

I would like to have a very simple front page, if possible. I want to avoid having the lists of links which made the old wiki so hard to manage. I would suggest having sections for tips &amp; tricks, developer documentation, general troubleshooting and community-process related documents. I would like to have software-documentation removed completely from the wiki, in favour of downloads.maemo.org. --[[User:dneary|dneary]] 10:24, 22 May 2008 (UTC)

Had an idea about adding the Devices to the front page and threw together a quick idea here: [[User:Cas07/Sandbox/Front_page | Front Page Test]] --[[User:cas07|cas07]] 23:59, 16 January 2010 (UTC)

: We should probably start looking at reducing the number of things on the front page. To begin with, there were only 12 links on the wiki front page - we're up to 35 with your proposal. So maybe we should start removing some now. --[[User:dneary|Dave Neary]] 14:36, 20 January 2010 (UTC)

::I agree. My modification was simply to add more useful links to the front page but on reflection, there is a lot more work involved.
::--[[User:cas07|cas07]] 18:36, 21 January 2010 (UTC)



== Article organization ==

Generally speaking, I'm in favor of not nesting articles (i.e. '''HowTos/Installation''' or '''Hardware/Nokia 770'''), as it can make pages harder to link to (gotta figure out the page and what it's nested under) and generally doesn't provide a whole lot of usefulness.

I think we should favor [http://meta.wikimedia.org/wiki/Help:Category Categories] instead, since it's make page URLs less complicated, gets rid of the nesting issues, allows us to file articles in more than one place and provides us with nice automatically generated [[:Category:HowTo|indexes]]. [[User:generalantilles|generalantilles]] 05:15, 20 May 2008 (UTC)

== Dynamic content ==

It would be good to have a couple of blocks updated automatically: [[Special:Newpages|New]] and [[Special:Popularpages|Popular]] pages.--[[User:qgil|qgil]] 20:03, 28 June 2008 (UTC)

== Localization ==

To do or not to do? I'm bit interested to translate some of the most important wiki pages to Finnish language but I would like to know what others think about it.

== Help Pages ==

The Help link in the main navigation on the left (and also the Editing help link when editing a document) have no text, having a help page similar to [http://en.wikipedia.org/wiki/Help:Contents Wikipedia Help] would be really useful, particularly the &quot;Editing Wikipedia&quot;-&gt;&quot;Cheatsheet&quot; section and policy/guidelines etc. Are the Wikipedia Help pages copyright?
: I was sure that the help pages were here the first time I used the wiki... as far as I know, the help pages are available under a free documentation licence, and could be made available. -- [[User:dneary|dneary]] 10:15, 1 July 2008 (UTC)

== Problems ==
If you are not registered to this wiki the layout of the frontpage is strange. There is a lot of white space at the beginning of the MainPage. After a login the Layout looks good. (Tested with Firefox 3; 1280x1024 px)

As of August 16, the Main Page is completely blank in Firefox 3, Epiphany (Mozilla Engine), and MicroB even when logged in, but displays fine in Konqueror
: I was able to get to the main page by using https in Firefox 2 (not logged in though). [[Special:Contributions/98.223.226.131|98.223.226.131]] 23:30, 27 August 2008 (UTC)


How can i remove the new users - title from power users?!? its not in the template so no idea where it comes to there! --[[User:ossipena|ossipena]] 07:25, 6 November 2009 (UTC)
: ''sorry, the template source was the one i forgot to alter..''</text>
    </revision>
  </page>
  <page>
    <title>Talk:Mainstream Linux Alignment</title>
    <id>1296</id>
    <revision>
      <id>8050</id>
      <timestamp>2008-10-28T06:12:19Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <text xml:space="preserve">== CFSONID ==

Who wants to merge the appropriate content from [[CFSONID]] and delete it? —[[User:generalantilles|GeneralAntilles]] 04:35, 28 October 2008 (UTC)
:I don't see any relevant content there. Good intentions, but no specific actions to take in relation to mainstream Linux alignment. That page looks more related to [[Objective:Maemo_variants]] than this one, isn't it.--[[User:qgil|qgil]] 06:12, 28 October 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Making themes</title>
    <id>4553</id>
    <revision>
      <id>39953</id>
      <timestamp>2010-11-03T23:38:14Z</timestamp>
      <contributor>
        <ip>81.23.48.107</ip>
      </contributor>
      <comment>New page: A tutorial is really neeeded to explain how to edit the template.</comment>
      <text xml:space="preserve">A tutorial is really neeeded to explain how to edit the template.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Manual backup and restore</title>
    <id>4296</id>
    <revision>
      <id>47256</id>
      <timestamp>2012-04-16T07:40:51Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/109.194.136.216|109.194.136.216]] ([[User talk:109.194.136.216|Talk]]); changed back to last version by [[User:Narcisgarcia|Narcisgarcia]]</comment>
      <text xml:space="preserve">* How to backup the entire firmware? I want to make a full backup before making any change to the software, to make possible restoring the firmware later as an update.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Manual video encoding</title>
    <id>764</id>
    <revision>
      <id>49672</id>
      <timestamp>2012-09-14T12:44:03Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Manual video encoding]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">== Limitations ==
Video encoding is still pretty much a trial and error thing. The Wiki - this article? - should include clear specs of what works with the built in player and what doesn't.
The specs on Nokia's site include:
# Video: 3GP, AVI, WMV, MP4, H263, H.264, MPEG-1, MPEG-4, RV (RealVideo)
# Audio: MP3, WMA, AAC, AMR, AWB, M4A, MP2, RA (RealAudio), WAV
We now that these formats have encoding variants that may cause the tablet to choke. Also, it would be interesting to know which codecs can be used in which containers (in case of avi: which fourcc-codes are accepted). Especially when using manual encoding and trying to optimize for the tablet its essential to know what the built-in player can cope with.
I didn't find any official information on this. Who could provide it and write it down here?
:You're after the [[video encoding]] article, this is really more of a sub-article of that. Please remember to login and sign your comments! :) —[[User:generalantilles|GeneralAntilles]] 12:47, 9 July 2008 (UTC)
::Yes, SIR! Logged in, SIR! ;)) - Not sure about what I'm after. The [[video encoding]] article seems to focus on listing (GUI-)tools, which is not what I'm interested in. I'd like to know things like: When I do h.264, can I use B-frames? Can I put a h.264 into an AVI-container and if so, which audio formats are accepted and which fourcc code should I use? Is there a limit to the GOP-size? etc. etc. ... in an ideal world we'd have a list with all codec/container formats supported by the built-in player. Each entry would list all possible encoding options (options as defined by the standard, not related to a certain tool) and state &quot;supported&quot;, &quot;not supported&quot;, &quot;max. 3&quot; etc. This list would be written and maintained by Nokia (the authors of the player). - As this world is only close to ideal, I guess somebody else needs to gather the information. I thought this wiki page might be a good place as it deals with manual encoding where you set every single option yourself. Or should we simply merge both pages? Or write a third one? (I wasnt even sure if this wiki is the right place for this) [[User:ossi1967|ossi1967]] 15:23, 10 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:MeeGo Coding Competition 2011</title>
    <id>4829</id>
    <revision>
      <id>43186</id>
      <timestamp>2011-04-21T22:36:08Z</timestamp>
      <contributor>
        <username>mrsellout</username>
        <id>3603</id>
      </contributor>
      <comment>/* dead link - possible pasting error? */ new section</comment>
      <text xml:space="preserve">== Application proposals ==

What is this:

&lt;blockquote&gt;&quot;Be original, do not try to develop the nth Facebook or Twitter client.&quot;&lt;/blockquote&gt;



Given how Maemo doesn't have a working Facebook client and the only Twitter clients either don't work or are barely more feature-rich than an RSS reader, do we want MeeGo to end up the same way?

This honestly sounds like &quot;I don't like Twitter or Facebook but I like LinkedIn, stop making apps for stuff I don't like&quot;. [[User:glass|glass]] 12:21, 31 March 2011 (UTC)

== dead link - possible pasting error? ==

The change made on line 273 on the following link provides a dead link, and doesn't make sense (to me anyway). It looks like an accidental paste, but I can't be sure as a similar link appears in the next sentence.

http://wiki.maemo.org/index.php?title=MeeGo_Coding_Competition_2011&amp;diff=prev&amp;oldid=43136
--[[User:mrsellout|mrsellout]] 22:36, 21 April 2011 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Mer</title>
    <id>2065</id>
    <revision>
      <id>48991</id>
      <timestamp>2012-08-08T17:00:09Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Mer]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">This page is just the wiki 'Discussion' page; you probably want the [[Mer/Awareness|Awareness]]  what is this?</text>
    </revision>
  </page>
  <page>
    <title>Talk:Mer-draft</title>
    <id>2547</id>
    <revision>
      <id>19197</id>
      <timestamp>2009-10-03T09:50:15Z</timestamp>
      <contributor>
        <username>myrtti</username>
        <id>518</id>
      </contributor>
      <text xml:space="preserve">missing from the front page is a cut'n'pastable, one sentence KISS explanation what is Mer for people that haven't heard of Maemo, Mer, Nokia or NIT's before, less acronyms, and perhaps few more links to the subpages (underneath the rainbow buttons), like screenshots, what version is the latest, most needed contribution areas
* clear explanation of what the page is about, what is the latest stable and alpha/beta/rc version available, where my help would be most appreciated at the moment and who would be a good example of a contributor I might want to use as a rolemodel etc. --[[User:myrtti|myrtti]] 09:50, 3 October 2009 (UTC)

on this weeks hilight of How You Can Help(tm): DOCUMENTATION&quot;

Main tagline it's nice, but a bit too vague
doesn't serve as the explanation
it's nice as a tagline in the image
need to expand it to something that help people understand what you mean by it

Mer: We're Not Android&quot;? ;)
Mer: We're Not Android... We're open

we're beginning to aim at users too

English is not the main language for all

it's surprising how important it is to have the screenshots somewhere quite in the beginning some people, like me, check that first to see the overall maturity of stuff - if all  you can see in the screenshot is X11 gray raster background, you kinda know you might move forward to something else</text>
    </revision>
  </page>
  <page>
    <title>Talk:Mer/About</title>
    <id>2068</id>
    <revision>
      <id>16180</id>
      <timestamp>2009-08-05T05:48:54Z</timestamp>
      <contributor>
        <ip>88.117.55.209</ip>
      </contributor>
      <comment>/* What doesn't work? */ new section</comment>
      <text xml:space="preserve">How does Mer compare to Diablo as far as memory usage, user-interface performance, and overall performance?

== What doesn't work? ==

List of things not working would be helpful.
I.e. sound? WiFi, Bluetooth? GPS? non-english keyboard layouts?</text>
    </revision>
  </page>
  <page>
    <title>Talk:Mer/Documentation/Installation</title>
    <id>1871</id>
    <revision>
      <id>13395</id>
      <timestamp>2009-05-18T20:25:59Z</timestamp>
      <contributor>
        <ip>65.186.210.113</ip>
      </contributor>
      <comment>Mer testing on Nokia 770?</comment>
      <text xml:space="preserve">Has anyone tested the Mer installation for the Nokia 770?  So far, I have been unsuccessful in getting it to run...  I'm planning to attempt it again, hopefully this week, and I'll give a full report, because I would like to try this out.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Mer/Documentation/LXDE</title>
    <id>2039</id>
    <revision>
      <id>14650</id>
      <timestamp>2009-06-24T15:08:59Z</timestamp>
      <contributor>
        <username>olivluca</username>
        <id>155</id>
      </contributor>
      <text xml:space="preserve">Isn't there a better alternative to onboard?
It's using 30-40% of cpu here (no kidding) and 9% of memory.
I tried matchbox-keyboard and it uses less cpu (and it's also included in the menu, BTW, while onboard is not), however there's no statusbar applet so it's not as convenient to hide/show.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Mer/Events</title>
    <id>2861</id>
    <revision>
      <id>21135</id>
      <timestamp>2009-10-27T11:16:54Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <comment>New page: PLease merge with Mer/Events/ --~~~~</comment>
      <text xml:space="preserve">PLease merge with Mer/Events/
--[[User:twaelti|tom2]] 11:16, 27 October 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Mer/Events/</title>
    <id>2860</id>
    <revision>
      <id>21134</id>
      <timestamp>2009-10-27T11:16:41Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <text xml:space="preserve">Please merge with Mer/Events
--[[User:twaelti|tom2]] 11:16, 27 October 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Mer/Releases/0.16testing</title>
    <id>4127</id>
    <revision>
      <id>34736</id>
      <timestamp>2010-05-24T04:21:39Z</timestamp>
      <contributor>
        <ip>96.35.26.210</ip>
      </contributor>
      <comment>New page: All the download links are broken for me.  Anyone else having problems?</comment>
      <text xml:space="preserve">All the download links are broken for me.  Anyone else having problems?</text>
    </revision>
  </page>
  <page>
    <title>Talk:Mer/Releases/0.8</title>
    <id>1645</id>
    <revision>
      <id>11185</id>
      <timestamp>2009-02-25T23:42:01Z</timestamp>
      <contributor>
        <ip>195.249.188.157</ip>
      </contributor>
      <comment>mer-x86-generic-image-v0.8.vmdk.zip is missing the .vmx file</comment>
      <text xml:space="preserve">From the article:
* This is a special boot menu where boot menu items are made in /etc/bootmenu.d/*.item and refresh_bootmenu.d will flash this to initfs. '''If you are cloning or booting other OS'es, you'll need to make such .item files'''
:1. I've installed a normal version of maemo on my n800 in the internal flash. with http://fanoush.wz.cz/maemo/initfs_flasher.tgz I got a bootmenu. Now I use my internal sd card with a 1,3 GB ext2 partition for maemo and a 0,7 FAT partition for the swap. My question is: what I've to do if I want to use an other 2 GB SD card in my internal slot? It should be easy to switch back to my default version.
:2.What is the content of this .item files?--[[User:jukey|jukey]] 16:14, 18 February 2009 (UTC)


The Generic x86 - VMDK (VMware disk image) http://stskeeps.subnetmask.net/mer/0.8/mer-x86-generic-image-v0.8.vmdk.zip is missing the .vmx file ; unzipping it only reveals a .vmdk file</text>
    </revision>
  </page>
  <page>
    <title>Talk:Mer/Sprints/0.13</title>
    <id>1869</id>
    <revision>
      <id>49126</id>
      <timestamp>2012-08-16T15:52:00Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Mer/Sprints/0.13]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>Talk:Mer/Status</title>
    <id>1955</id>
    <revision>
      <id>31691</id>
      <timestamp>2010-03-28T14:44:51Z</timestamp>
      <contributor>
        <ip>78.54.5.149</ip>
      </contributor>
      <text xml:space="preserve">There is support for changing brightness from command line, but no GUI (SmartQ5), how should the table reflect that?

How about battery status / charging status?

How about available, but not installed by default (power key on SmartQ5, for example)?

====

doesn't look very up to date.
what's the state of the n900?</text>
    </revision>
  </page>
  <page>
    <title>Talk:Mer/Status/FreeRunner</title>
    <id>3810</id>
    <revision>
      <id>31862</id>
      <timestamp>2010-04-02T09:41:34Z</timestamp>
      <contributor>
        <ip>75.119.251.124</ip>
      </contributor>
      <comment>Question about MeeGo</comment>
      <text xml:space="preserve">What's the status of Mer given MeeGo? --Blaise Alleyne [[Special:Contributions/75.119.251.124|75.119.251.124]] 09:41, 2 April 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Meta:Anonymous editing</title>
    <id>408</id>
    <revision>
      <id>6542</id>
      <timestamp>2008-08-11T11:31:10Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Proposal */</comment>
      <text xml:space="preserve">== CAPTCHA ==

lcuk on #maemo had an interesting idea, NIT-based CAPTCHA questions (i.e. What is the codename for Maemo 4.0? Chinook). Of course a regular CAPTCHA system should work fine, but this'd be a nice touch. The CAPTCHA has the nice effect of both not entirely preventing anonymous edits, while hopefully stopping the bots. This should probably come with a strong suggestion for the user to register. —[[User:generalantilles|GeneralAntilles]] 15:52, 21 June 2008 (UTC)

== Just Say No ==
I vote no for anonymous edits.&lt;br&gt;
I freely admit that I want to raise the bar for editing information on a source I would like to consider 'reference'.&lt;br&gt;
[[User:lbt|lbt]] 16:23, 21 June 2008 (UTC)
:+1 from me. No anonymous edits seems like a fair balance between protecting the wiki and protecting spammer's rights to mess it up. --[[User:dneary|dneary]] 07:34, 23 June 2008 (UTC)
:&lt;del&gt;+1. Spam is a serious problem. Registering or logging in is not.&lt;/del&gt; (just saw [http://www.mediawiki.org/wiki/Captcha MediaWiki's Manual:Combating spam] and was convinced by the discussion in maemo-developers)  --[[User:qgil|qgil]] 11:47, 23 June 2008 (UTC)
:+1. If you want to say something, say who you are first.--[[User:anidel|anidel]] 11:55, 23 June 2008 (UTC)

== Ban anonymous over HTTP, but not HTTPS ==

The set-up of wiki.maemo.org uses a ''reverse proxy'', which uses Apache to forward requests from HTTP to the HTTPS port. This means that all anonymous edits over HTTP show up as 127.0.0.1. However, anonymous edits over HTTPS will feature the (non-repudiable) IP address of the editing user.

This would seem to stop the spam: all the spam to-date (and there's been a lot of it over the few days in the middle of June) has been through HTTP editing, and so a '''temporary''' ban on edits from 127.0.0.1 has eliminated it.

Therefore, we should probably make that ban permanent and deny any anonymous access through HTTP; or we &quot;fix&quot; the problem and expose the external requesting IP to mediawiki over HTTP as well, and then move quickly to ban spamming IPs. Obviously, this will be ineffective if we are hit by a distributed spam botnet.
''--[[User:jaffa|Jaffa]] 17:26, 21 June 2008 (UTC)''
:Having said that, if there's a suitable CAPTCHA-type system or plugin we can easily deploy, that'd also be effective. However, if it's non-trivial, I wouldn't say the investment of effort in it was worthwhile (IMHO). --[[User:jaffa|Jaffa]] 17:30, 21 June 2008 (UTC)

== Proposal ==

This was a [http://lists.maemo.org/pipermail/maemo-users/2008-June/021627.html proposal sent to maemo-users]. Proposing to continue the discussion here until agreement.--[[User:qgil|qgil]] 21:51, 19 July 2008 (UTC)

Frantisek Dufka wrote:
:The only argument left which I do agree with is additional work for 
:implementing captcha and fixing occasional vandalism if it won't be 100% 
:bulletproof. But maybe we already wasted more time in this dicussion 
:that it would take to implement this http://recaptcha.net/plugins/mediawiki/

Probably true.

Proposal: let's go for incremental changes until the satisfactory level.

We had it fully open and we have seen that this is not good enough since
we get spammed and this is just the beginning of a small and young wiki
not much linked.

Next step

Ban anonymous over HTTP, but not HTTPS?

: Done. --[[User:dneary|Dave Neary]] 11:31, 11 August 2008 (UTC)

If this is not good enough then next step

Captcha

if this is not enough then registration.

About anonymous contributors, I think a wiki doesn't compare to a
mailing list or a bug report tool. A comma, a number, a vowel or a word
might make a lot of sense and be a useful spontaneous contribution in a
wiki. The same cannot be said in other media.

Myself I have edited anonymously in several wikis just for minor fixes,
and I wouldn't have registered to do so.

I was already convinced by Jaffa, Frantisek and
http://www.mediawiki.org/wiki/Captcha . Then
https://wiki.maemo.org/index.php?title=Task%3AMaemo_brand&amp;diff=2641&amp;oldid=2502
came as a proof.  :)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Microemulator</title>
    <id>4610</id>
    <revision>
      <id>40766</id>
      <timestamp>2010-12-17T21:10:18Z</timestamp>
      <contributor>
        <ip>77.56.237.195</ip>
      </contributor>
      <comment>New page: My micro emulator is installed with openjava. Is that not good?  When I downloaded ejre from Sun I indicate arm7v and not arm6. Is that the wrong version?  Can I use both versions (Sun and...</comment>
      <text xml:space="preserve">My micro emulator is installed with openjava.
Is that not good?

When I downloaded ejre from Sun I indicate arm7v and not arm6.
Is that the wrong version?

Can I use both versions (Sun and openJava) at the same time?

Does the new version of Sun also have a &quot;timebomb&quot;?
If yes: How long is the trial?</text>
    </revision>
  </page>
  <page>
    <title>Talk:Miniature/Development</title>
    <id>4993</id>
    <revision>
      <id>45015</id>
      <timestamp>2011-08-23T23:02:35Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <text xml:space="preserve">[[Image:Miniature_Berlin_Defence.png|310px|thumb|The Berlin Defence, as seen in Miniature]]
== Miniature 0.? ''Berlin Defence'' ==

This is the first release of Miniature for MeeGo Harmattan which is, in fact, a total restart from the Miniature project born with Maemo 5 and the N900. 

Miniature won't play games yet, but it provides a fully featured user experience and a backend with its foundations in place. We are looking for a new breed of testers and developers and we couldn't wait to share the good stuff that is being cooked.


''BERLIN DEFENCE'' RELEASE FEATURES

* Log in to http://freechess.org aka FICS as guest or registered user.
* See a real time list of game challenges at FICS.
* UI demo: select and confirm game challenges.
* UI demo: filter game challenges by chess variant, time, increment and rating type.
* UI demo: create a new game seek.
* UI demo: chess board with movable pieces.
* UI demo: expandable chat area.
* UI demo: possibility to resign, propose a draw, request to adjourn.

The full backlog is available at https://gitorious.org/miniature/miniature/commits/master


INSTALLATION INSTRUCTIONS

You can run Miniature on the Nokia N950 and N9: 

(((mikhas to add the steps)))

Alternatively, you can use the Qt SDK or the Harmattan Platform SDK emulators. See http://wiki.maemo.org/Miniature/Development#SDK_instructions


FEEDBACK

Casual feedback is welcome at the MeeGo forum thread or the developer mailing list. You can find us as well in #miniature on irc.freenode.net

* http://forum.meego.com/showthread.php?t=3757
* https://garage.maemo.org/pipermail/chess-developer/

Bug reports can be filed at http://bit.ly/o7m9Hp


GET INVOLVED

If you love chess, freedom and mobile devices then the Miniature project is for you! Check our Wishlist and Development pages:

* http://wiki.maemo.org/Miniature/Wishlist
* http://wiki.maemo.org/Miniature/Development


Happy testing!</text>
    </revision>
  </page>
  <page>
    <title>Talk:Miniature/Wishlist/Real-time P2P Miniature</title>
    <id>5034</id>
    <revision>
      <id>46802</id>
      <timestamp>2012-02-23T10:41:37Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/188.227.177.5|188.227.177.5]] ([[User talk:188.227.177.5|Talk]]); changed back to last version by [[User:Nin101|Nin101]]</comment>
      <text xml:space="preserve">Spam killed</text>
    </revision>
  </page>
  <page>
    <title>Talk:Missing packages from Diablo Extras</title>
    <id>550</id>
    <revision>
      <id>46517</id>
      <timestamp>2012-01-24T20:50:49Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <minor/>
      <comment>Undo revision 46514 by [[Special:Contributions/46.17.98.197|46.17.98.197]] ([[User talk:46.17.98.197|Talk]]) SPAM</comment>
      <text xml:space="preserve">== Missed applications ==

Users can list here applications that are missing and important for them. This will help prioritizing the packages they depend upon.

Power users and developers can help finding out what are the problematic packages and listing them in the [[{{PAGENAME}}|main page]].

===Packages to be defined===
List here your missed application if you don't know about packages and dependencies.

* Apache (httpd)
* Audio Tag Tool
* btscanner
* HomeCPUSpeed
* HomeDiskFree
* HomeIP
* HomeMemFree
* HomeNetStat
* KeepassX (beats the heck out of pwsafe since database can be read on any other Keepass supported platform also)
* Mogg
* ncat - fwiw netcat is available in the tools repository.
** netcat is now available in extras-devel
*** mmm why have it in extras-devel if it's officially supported by Nokia in tools? --[[User:qgil|qgil]] 03:23, 3 July 2008 (UTC)
**** netscat is in the tools repository below, just installed it from there
**** Because the tools repo isn't advertised for end-users, seemed to be focused on SDK usage, repo proliferation is bad and because I didn't check. --[[User:jaffa|Jaffa]] 22:17, 7 July 2008 (UTC)
* OLSR - Mesh routing for N8x0
* osso-statusbar-clock
* [http://maemo.org/downloads/product/OS2008/pwsafe/ PasswordSafe v 1.3]
* perl modules
* Perl bindings for GNOME libxml2 and libxslt libraries (libxml-libxml-perl and libxml-libxslt-perl)
* Ruby Gems
* scapy
* sqlite3-ruby
* [http://maemo.org/downloads/product/OS2008/usbcontrol/ USB Control]
**(Note that USB Control is NOT the same thing as maemo-control-usb, maemo-control-usb only allows USB networking and does not work with keyboards or flash drives. The description of maemo-control-usb in the app manager is rather deceptive, it doesn't really allow proper host mode for USB accessories. USB Control does allow host mode for USB accessories, and it's extremely easy to install and use, hence this request for it to be brought to diablo as quickly as possible.)--[[User:krisse|krisse]] 09:31, 25 July 2008 (UTC)
* Vnc (client and server)
* Xournal (chinook version works perfectly. Add the chinook extras repo)

===Packages defined===
Move here the applications listed above once the corresponding packages and dependencies have been defined in the main page.

* Python runtime
* Python 2.5.1 - but this is a package already, not an app? Should we move it to the main page?
:Yes, and it's available in extras yet. Moving to the main page. --[[User:yerga|yerga]] 12:27, 2 July 2008 (UTC)

==Fixed!==
Move here the applications that now can be downloaded and installed from Diablo extras.

* [http://maemo.org/packages/view/battlegweled/ BattleGweled]
* [http://maemo.org/downloads/product/OS2008/canola2/ Canola2]
* [http://maemo.org/packages/view/comix/ comix]
* [http://maemo.org/packages/view/contactinfos/ Contactinfos]
* [http://maemo.org/downloads/product/OS2008/evince/ Evince Document Viewer]
* [http://maemo.org/packages/view/file/ file]
* [http://maemo.org/packages/view/free42/ free42]
* [http://maemo.org/packages/view/fuelpad/ fuelpad]
* [http://maemo.org/packages/view/fuse-utils/ fuse-utils]
* [http://maemo.org/packages/view/gnumeric/ gnumeric]
* [http://maemo.org/packages/view/labyrinth/ labyrinth]
* [http://maemo.org/packages/view/maemo-pan/ Maemo PAN]
* [http://maemo.org/packages/view/maemo-mapper/ Mappero (formerly Maemo Mapper)]
* [http://maemo.org/packages/view/mediabox/ mediabox]
* [http://maemo.org/downloads/product/OS2008/mplayer/ Mplayer]
* [http://maemo.org/downloads/product/OS2008/mytube/ mytube]
* [http://maemo.org/packages/view/nmap/ nmap]
* [http://maemo.org/packages/view/ogg-support/ ogg-support]
* [http://maemo.org/packages/view/openntpd/ openntpd]
* [http://maemo.org/downloads/product/OS2008/openssh-client/ OpenSSH server+client] - fwiw ssh is available in the tools repository.
* [http://maemo.org/packages/view/openvpn/ OpenVPN]
* [http://maemo.org/packages/view/pidgin/ Pidgin] and [http://maemo.org/packages/view/pidgin-otr/ pidgin-otr]
* [http://maemo.org/packages/view/quiver/ Quiver]
* [http://maemo.org/packages/view/rdesktop-cli/ rdesktop]
* [http://maemo.org/packages/view/rootsh/ rootsh]
* maemo-control-usb
** maemo-control-usb only provides a GUI for usb networking - but not for switching to usb host mode. USB Control seems to be first choice for a regular user --[[User:user1|user1]] 18:23, 3 July 2008 (UTC)
**USB Control is a totally different thing to maemo-control-usb, USB Control hasn't been fixed.
* [http://maemo.org/downloads/product/OS2008/omweather/ Other Maemo Weather]
* [http://maemo.org/downloads/product/OS2008/personal-menu/ Personal Menu]
* [http://maemo.org/packages/view/scummvm/ ScummVM]
* [http://maemo.org/packages/view/socat/ socat]
* [http://maemo.org/packages/view/sox/ sox]
* [http://maemo.org/packages/view/subversion/ Subversion]
* Vagalume
* [http://maemo.org/packages/view/wizard-mounter/ wizard-mounter]
* [http://maemo.org/downloads/product/OS2008/youamp/ YouAmp]

==Apps available in OS2008==
If you are running Maemo 4.1 you have them already in your device.
* ping

==Apps available in the [http://maemo.org/development/tools/ tools repository]==
* tcpdump
* telnet -FWIW, I enabled tools repository but I do not see an entry for telnet.  David Smoot
* traceroute
* wget
* wireless tools
* nano

==Apps that weren't in extras before==
Please contact the developers to have them available in Diablo extras. Now we are concentrating in making work what works in Chinook extras.

* [http://maemo.org/downloads/product/OS2008/erminig/ Erminig]
:Erming never was in the repository but I am going to work with the new erminig developer to upload it to the extras repository.--[[User:yerga|yerga]] 16:38, 26 June 2008 (UTC)
::It's in diablo extras now. --[[User:yerga|yerga]] 12:27, 2 July 2008 (UTC)
* XChat (Irc)
:The XChat build for Chinook never actually made it into a repository. There's a deb available [http://zeus.rm-fr.net/~skyhusker/xchat-chinook-betas/ here], but I don't think the sources are readily available. Somebody might consider emailing skyhusker to ask about it, or perhaps we could get some new blood to pick it up moving forward since it seems pretty stagnant right now. —[[User:generalantilles|GeneralAntilles]] 01:04, 27 June 2008 (UTC)
:: Now uploaded to chinook and diablo extras-devel, although it's annoying to have many tiny xchat-locale-$XX packages cluttering the app list.  Help would be appreciated. --[[User:mgedmin|mgedmin]] 23:56, 1 July 2008 (UTC)
* [http://rtcomm.garage.maemo.org/ Internet Communications Software Update 2]
:This is beta software provided by Nokia. It shouldn't be in extras either.
* [http://maemo.org/downloads/product/OS2008/fbreader/ FBReader]
:The packages are in fbreader.org.
::See [http://groups.google.com/group/fbreader/browse_thread/thread/d62989d01a143d19# this thread] for more information. Extras is under consideration for FBReader. —[[User:generalantilles|GeneralAntilles]] 06:42, 29 June 2008 (UTC)
* [http://claws-mail.org/maemo claws-mail]
:The packages are in it's own repository which works with Diablo.
* aircrack (mulliner.org)
* btaudit (mulliner.org)
* dsniff (mulliner.org)
* ipHome (mulliner.org)
* joe (elkins.org)
* ncftp (elkins.org)
* osso-statusbar-cpu (tschmidt)(available?)
* p0f (debfarm)
* xkbdbthid (mulliner.org)
* kismet (Note: 2008-05-R1 has debian build but also silently depends on libgpsbt-dev and libgpsmgr-dev and fails on ncurses if not installed.  There may be other dependencies, but a deb package and tgz will build)
* MaemoFTP
* jhead ([http://www.sentex.net/~mwandel/jhead/ website] - never on maemo but be handy if someone wanted to crosscompile)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Mms</title>
    <id>3402</id>
    <revision>
      <id>26642</id>
      <timestamp>2010-01-16T01:23:04Z</timestamp>
      <contributor>
        <username>cas07</username>
        <id>1601</id>
      </contributor>
      <comment>[[Talk:Mms]] moved to [[Talk:MMS]]: All Caps</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:MMS]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Modifying the root image</title>
    <id>3093</id>
    <revision>
      <id>48993</id>
      <timestamp>2012-08-08T17:02:51Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Modifying the root image]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">The roots.jffs2 for the n900 cannot be mounted this way: file doesn't recognize it as a jffs2 filesystem and trying to mounting it floods syslog with these messages:
&lt;pre&gt;
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000000: 0x4255 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000004: 0x0001 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0000003c: 0x844e instead
Empty flash at 0x00000040 ends at 0x00000200
....
....

Empty flash at 0x001a0a9c ends at 0x001a0aa0
Empty flash at 0x001a0b94 ends at 0x001a0b98
Empty flash at 0x001a0d54 ends at 0x001a0d58
Empty flash at 0x001a11b4 ends at 0x001a11b8
Empty flash at 0x001a1494 ends at 0x001a1498
Empty flash at 0x001a157c ends at 0x001a1580
....
....
Empty flash at 0x005040cc ends at 0x005040d0
Old JFFS2 bitmask found at 0x0050435c
You cannot use older JFFS2 filesystems with newer kernels
Empty flash at 0x00504664 ends at 0x00504668
....
....
Empty flash at 0x091adfa4 ends at 0x091adfa8
Cowardly refusing to erase blocks on filesystem with no valid JFFS2 nodes
empty_blocks 0, bad_blocks 0, c-&gt;nr_blocks 1166
&lt;/pre&gt;

Maybe it's encrypted?

Nope, it's just a different filesystem (UBIFS).

Well, they shouldn't call it jffs2 then, anyway see this tmo thread:

http://talk.maemo.org/showthread.php?t=35554</text>
    </revision>
  </page>
  <page>
    <title>Talk:Moving system directories to a flash card</title>
    <id>830</id>
    <revision>
      <id>33058</id>
      <timestamp>2010-04-19T13:30:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>direct link</comment>
      <text xml:space="preserve">== Deletion ==

This article duplicates a lot of information in [[Booting from a flash card]], isn't properly formatted or capitalized, and covers an un-recommended method for expanding the available application installation space. If this process must be documented, the article needs to be renamed, slimmed down (to only include the non-duplicate, relevant information), cleaned up and carry a health warning at the top, as [[booting from a flash card]] is a much cleaner, safer, more effective and more reliable method of achieving the same goal. —[[User:generalantilles|GeneralAntilles]] 09:56, 20 July 2008 (UTC)
:Well, all that talk hasn't really amounted to much. We've still got a low-quality article that doesn't carry enough health warnings (I just added one) on a method that nobody really has any reason to use. So, I'm proposing deleting again unless somebody wants to step up and bring the article up to speed. —[[User:generalantilles|GeneralAntilles]] 23:01, 29 August 2008 (UTC)
:: It is nice to see new content here but I'm afraid I don't really understand the point of this article or who should be interested in it. Sorry mfrasca. Whilst I'm a &quot;casual style&quot; writer myself I find the &quot;most programs will not work out of the box and you should reinstall them&quot;, &quot;it should work&quot; and &quot;other stuff&quot; a bit too vague to be helpful. Actually, I suspect that a lot of people would define that result as 'broken'. [[User:lbt]]
::: Still no capitalization, and the author has made it clear he's not interested in fixing it. The method described is still dangerous and pointless, and most of the &quot;health warnings&quot; are just useless snarky comments from the author. This article needs to go. —[[User:generalantilles|GeneralAntilles]] 00:09, 13 September 2008 (UTC)

== finding a better name ==

the main difference with [[booting from a flash card]] is that this way
part of the system remains on the internal memory, while others are kept on the (internal) flash card.  this is desirable (according to me) because this way I use the internal memory for volatile information (as for example the /tmp partition) and the flash card for more static data.  

so: which name do you think would be better for this page?  I had seen the [[booting from a flash card]] and also tried it out, but in the end I like my approach better: 
separating /usr and /home from the rest of the system makes it possible to reflash the machine (or the flash card) without loosing your customisations.

as for typesetting and cleaning up, being this a wiki, I believe it's better to keep things that needs being corrected (and asking that someone does so) than removing them.  so please don't keep this page marked for deletion but just for merciless editing.

I have looked a bit around here, maybe not good enough, but I did not find guidelines on capitalization, typesetting and also very little in general on how to submit new content.

how do I add a &quot;health warning?&quot;
:If it's something you wouldn't be willing to hand to your boss, then it's not up to snuff for this wiki. :) —[[User:generalantilles|GeneralAntilles]] 10:20, 20 July 2008 (UTC)
:: I don't get it...  wikis are for cooperative development of usable documentation I thought.  ...  I would never hand my boss a printout from a wiki, but I would have no problems in sending him a link to such a page and telling him, mark or correct yourself what you don't like, then tell me when you're done, I'll do my best again...  yes: I have a democratic boss! [[User:mfrasca]]
:::I also think &quot;potential deletion&quot; is too harsh, especially for someone starting to contribute in the wiki. It has the &quot;old Midgard article&quot; flag, which is enough. If there is a &quot;this page needs cleaning&quot; let's use it as well. I don't agree with the &quot;willing to hand to your boss&quot;, most excellent works start as scraps and drafts some day. If you delete them before they get mature...--[[User:qgil|qgil]] 12:23, 20 July 2008 (UTC)
:::More potential flags (thinking in general, not necessarily to this article here) could be &quot;following these steps might harm your system&quot;, &quot;this is not a recommended approach, be careful&quot;... etc. But deleting, I would do it only for really outdated and useless stuff - unless you are the author and you yourself thing that this page has no sense in the wiki.--[[User:qgil|qgil]] 12:26, 20 July 2008 (UTC)
::::the &quot;old midgard tag&quot; is something I added a bit later.  the [[:Category:articles marked for deletion]] page could maybe contain a &quot;deletion policy&quot;, the conditions under which you can expect your page to be deleted sooner or later. [[User:mfrasca]] 2008-07-20 12:38 UTC
:::::Part of the issue here is that this method of extending the rootfs is significantly less reliable and effective than just straight booting from a flash card, and this article could confuse some newbies (even with a large and hard to miss health warning) into using this method over the other. The results of which are bad. I'm in favor of deleting this if its. I'm not sure why the Midgard article tag is relevant in any way, as it doesn't appear to come from any Midgard article that I'm able to locate. Suffice to say, it's bad advice that really has no benefit over booting entirely from a card and lots and lots of disadvantages. I'm proposing deletion as much for the content itself as the quality of the presentation. —[[User:generalantilles|GeneralAntilles]] 14:51, 20 July 2008 (UTC)
:::::: I don't know...  I think that if you have arguments to show that one method is better than the other, then leave both methods and praise one on the corresponding page.  users will see a refined and trustworthy page and select it instead of a confused and loudly unrecommended one.  oh, the page on midgard is this: http://maemo.org/community/wiki/howto_keep_usr_apart [[User:mfrasca]] 2008-07-21 8:41 UTC
:::::I generally agree with generalantilles in this case. Any user who would benefit from moving /usr and /home to the SD card should be able to figure this out. And any user who can't figure this out on their own is probably better off just going ahead and booting from SD since it is better documented and more modular. Deletion might be a little harsh, but really, I don't see what it adds to the wiki. --[[User:johnx|johnx]] 08:33, 21 July 2008 (UTC)

== decide please ==

so, do we vote or how does it work?  
I would like to know whether I will find this page here next time I will need it, or if I need to keep it somewhere else.  
[[user:mfrasca]] 2008-07-22 16:35 +0200
: I have no opinion about this specific page since I don't know enough about the topic. However, I want to stress that I'm against deleting pages in general. Here we have a wiki contributor trying to do his best with a wiki page, with all good intentions. Deleting his work is no good in the short or mid term since. Instead, the page can be edited, commented, flagged, bannerized, whatever you want. The contributor might learn from other experienced developers, think about things and most importantly, feel good in this community and encouraged to keep contributing, in these or other topics. Marking a first page of a contributor for deletion as soon as it lands doesn't really help improving the case and will probably cause these people just not bothering anymore. But perhaps this needs deeper discussion somewhere else since I also see the aim of GeneralAntilles. It's only that I prefer bug red banners and edits than sending a page for deletion. Deleting pages should be left for pages nobody cares anymore, and it is clear that at least one contributor cares about this page now.--[[User:qgil|qgil]] 09:31, 23 July 2008 (UTC)

== anybody suggesting a better name? ==

I have removed the 'remove' tag.  I hope you don't mind...

If anybody feels like choosing a better name for this page, that will be mostly welcome.  I have also tried to add a big fat disclaimer at the top of the page.  If you think that's not big and fat enough, please make it stronger.  My most sincere thanks.

Also, if you add a category for unrecommended pages, please mark this one with that tag.

An even nicer thing to build could be a voting system that enables users (signed in!) to anonymously vote against or in favour of a contribution (but -again- not with the purpouse of removing it, just to make authors see what is appreciated and what is not).

Thanks everybody for all constructive critics.  -[[User:mfrasca|mfrasca]] 08:02, 25 July 2008 (UTC)
:If you can just edit the titles so they start with a Capital letter, then you will have a page that indeed shouldn't gor for deletion imo. Other people can add comments and disclaimers there if they want. Thanks for your constructivism as well.
:In the past I had proposed to have a system to rate documentation pages. The issue is less simple than it seems (e.g. a bad page gets bad rating - then it gets revamped and the content is excellent... will all the people that rated low come back and rate high). In any case, feel free [[Pushing a maemo.org task|pushing a proposal]]. There are things like http://www.mediawiki.org/wiki/Extension:Rating that might be of interest for others as well.--[[User:qgil|qgil]] 08:17, 25 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Moving system directories to a flash card partition</title>
    <id>2783</id>
    <revision>
      <id>20618</id>
      <timestamp>2009-10-20T08:53:26Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Talk:Moving system directories to a flash card partition]] moved to [[Talk:Moving system directories to a flash card]]: capitalisation</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Moving system directories to a flash card]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Mozilla Maemo Danish Weekend</title>
    <id>1776</id>
    <revision>
      <id>12478</id>
      <timestamp>2009-04-12T19:07:38Z</timestamp>
      <contributor>
        <ip>89.244.178.152</ip>
      </contributor>
      <comment>New page: My propose a short talk about OSM2Go and the imho pretty interesting fact that it's a project that started on maemo but has been ported to the desktop linux as well as to e.g. openmoko wit...</comment>
      <text xml:space="preserve">My propose a short talk about OSM2Go and the imho pretty interesting fact that it's a project that started on maemo but has been ported to the desktop linux as well as to e.g. openmoko with more ports are planned. One interesting issue might e.g. how we deal with the fact that we try to maintain different debian trees.</text>
    </revision>
  </page>
  <page>
    <title>Talk:N900</title>
    <id>3193</id>
    <revision>
      <id>25873</id>
      <timestamp>2010-01-05T15:17:38Z</timestamp>
      <contributor>
        <username>cas07</username>
        <id>1601</id>
      </contributor>
      <minor/>
      <comment>Removing all content from page</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>Talk:N900 CPU</title>
    <id>3601</id>
    <revision>
      <id>35894</id>
      <timestamp>2010-06-16T14:19:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>[[Talk:N900 Hardware CPU]] moved to [[Talk:N900 CPU]]: shorten</comment>
      <text xml:space="preserve">The OMAP processors were always created in two flavors: non-secure (General Purpose) and High Secure (term. TI).
OMAP3430, in version GP has TrustZone completely inactive – disabled. It is done during the production phase by blowing out some e-fuses (actually not blowing them physically so that HS device can be turned into GP device)
My question is: which version is in N900?
As far as I remember, for internet tablets Nokia always used GP devices, for N900 the plan was the same. Is there anyone who can confirm?</text>
    </revision>
  </page>
  <page>
    <title>Talk:N900 FAQ</title>
    <id>2920</id>
    <revision>
      <id>40568</id>
      <timestamp>2010-12-06T14:45:10Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>move to [[Talk:User FAQ#Moved from Talk:N900 FAQ]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:User FAQ#Moved from Talk:N900 FAQ]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:N900 Hardware CPU</title>
    <id>4269</id>
    <revision>
      <id>35895</id>
      <timestamp>2010-06-16T14:19:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Talk:N900 Hardware CPU]] moved to [[Talk:N900 CPU]]: shorten</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:N900 CPU]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:N900 Hardware Microprocessor</title>
    <id>4211</id>
    <revision>
      <id>36071</id>
      <timestamp>2010-06-18T13:55:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:N900 CPU]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:N900 Hardware Power Consumption</title>
    <id>3549</id>
    <revision>
      <id>28647</id>
      <timestamp>2010-02-08T08:01:42Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <minor/>
      <comment>New page: who has created this? what about sources or describing test procedures? --~~~~</comment>
      <text xml:space="preserve">who has created this? what about sources or describing test procedures? --[[User:ossipena|ossipena]] 08:01, 8 February 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:N900 Hardware USB Host</title>
    <id>4368</id>
    <revision>
      <id>37371</id>
      <timestamp>2010-07-29T14:04:06Z</timestamp>
      <contributor>
        <ip>84.227.146.237</ip>
      </contributor>
      <comment>New page: ==Power== Is there a way to get a powered usb host mode directly on N900? Or is it impossible? I know Openmoko's Freerunner had one.</comment>
      <text xml:space="preserve">==Power==
Is there a way to get a powered usb host mode directly on N900? Or is it impossible? I know Openmoko's Freerunner had one.</text>
    </revision>
  </page>
  <page>
    <title>Talk:N900 Shortcuts and Gestures</title>
    <id>4434</id>
    <revision>
      <id>38533</id>
      <timestamp>2010-09-13T14:12:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Talk:N900 Shortcuts and Gestures]] moved to [[Talk:N900 shortcuts and gestures]] over redirect: sentence capitalisation as per [[Contibuting to the wiki]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:N900 shortcuts and gestures]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:N900 USB networking</title>
    <id>3392</id>
    <revision>
      <id>44840</id>
      <timestamp>2011-08-12T08:40:01Z</timestamp>
      <contributor>
        <ip>62.78.142.240</ip>
      </contributor>
      <comment>/* Check /etc/resolv.conf in N900 */ new section</comment>
      <text xml:space="preserve">Is it possible to use the voip stack with USB networking only?

== Connecting to Fedora 12 ==

I managed to get usb networking working on a Fedora 12 host by following the instructions at http://wiki.openmoko.org/wiki/USB_Networking distilled down to the following three statements:

  ip address add 192.168.2.14/24 dev usb0
  ip link set dev usb0 up
  route add -host 192.168.2.15 dev usb0

Once I did and followed the instructions for the N900, could I do flawless two-way communication!

There still seem to be some problems that meamo is &quot;unaware&quot; of the usb0 networking. It would be nice if usb0 was listed in the list of Internet connection as one of the possible connection options.

--[[User:dov|dov]] 06:53, 2 February 2010 (UTC)

== Check /etc/resolv.conf in N900 ==

If you have done everything as per the tutorial and still unable to access PC internet connection from N900, copy the contents of /etc/resolv.conf in the PC to the /etc/resolv.conf in N900 and it should work like a charm.

Sivabalan</text>
    </revision>
  </page>
  <page>
    <title>Talk:N900 filesystem</title>
    <id>3154</id>
    <revision>
      <id>50696</id>
      <timestamp>2012-11-06T22:43:56Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:N900 filesystem]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">Regarding the N900 device:

1) Can we reformat the partition that is mounted as /home/user/MyDocs as ext3 ou ext4?

2) What would be the implications of that? I don't mind if it can't be seen by Windows boxes, but would it work as an USB mass storage device for Linux boxes?

3) What about increasing the size of /opt by decreasing the size of /home/user/MyDocs?

4) It seems that MyDocs must stay as VFAT for the the Camera to work (is it hardcoded in the hardware or driver?). Can anyone really confirm this?

--[[User:soeiro|Luis Soeiro]] 8 December 2009

I have a general question about the N900 filesystem: is it possible to display (and move/rename/delete) hidden files and directories (for example, the directories in /home/user/MyDocs/.documents/User Guides/...)? I haven't found a way.

To make this page useful, you probably only need to explain how to show hidden files in the various file managers people user (Windows Explorer, Finder, Nautilus).

--[[User:dneary|Dave Neary]] 14:44, 8 December 2009 (UTC)

Could a Mac user document the instructions for showing hidden files in Finder, please? I can't seem to find any easy reference on the internet.
--[[User:dneary|Dave Neary]] 16:35, 8 December 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:N900 filesystem</title>
    <id>3154</id>
    <revision>
      <id>50696</id>
      <timestamp>2012-11-06T22:43:56Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:N900 filesystem]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">Regarding the N900 device:

1) Can we reformat the partition that is mounted as /home/user/MyDocs as ext3 ou ext4?

2) What would be the implications of that? I don't mind if it can't be seen by Windows boxes, but would it work as an USB mass storage device for Linux boxes?

3) What about increasing the size of /opt by decreasing the size of /home/user/MyDocs?

4) It seems that MyDocs must stay as VFAT for the the Camera to work (is it hardcoded in the hardware or driver?). Can anyone really confirm this?

--[[User:soeiro|Luis Soeiro]] 8 December 2009

I have a general question about the N900 filesystem: is it possible to display (and move/rename/delete) hidden files and directories (for example, the directories in /home/user/MyDocs/.documents/User Guides/...)? I haven't found a way.

To make this page useful, you probably only need to explain how to show hidden files in the various file managers people user (Windows Explorer, Finder, Nautilus).

--[[User:dneary|Dave Neary]] 14:44, 8 December 2009 (UTC)

Could a Mac user document the instructions for showing hidden files in Finder, please? I can't seem to find any easy reference on the internet.
--[[User:dneary|Dave Neary]] 16:35, 8 December 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:N900 shortcuts and gestures</title>
    <id>3308</id>
    <revision>
      <id>46713</id>
      <timestamp>2012-02-18T20:08:07Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <minor/>
      <comment>Undo revision 46711 by [[Special:Contributions/199.19.104.197|199.19.104.197]] ([[User talk:199.19.104.197|Talk]]) URL farming NOISE, aka BS - please *delete*/rollback!</comment>
      <text xml:space="preserve">== SMS gestures ==

When someone has time, they should summarize the discoveries in this thread:
http://talk.maemo.org/showthread.php?t=45914
:It's already handled in [[N900_Shortcuts_and_Gestures#Conversations|this chapter]]--[[User:jukey|jukey]] 13:20, 26 February 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:N950/Aegis-notes</title>
    <id>5087</id>
    <revision>
      <id>46343</id>
      <timestamp>2012-01-13T08:16:10Z</timestamp>
      <contributor>
        <username>mdengler</username>
        <id>1884</id>
      </contributor>
      <comment>propose deletion of most of page as wrong and nonsensical</comment>
      <text xml:space="preserve">This page is really bad: it's wrong (lack of documentation assertion), the grammar is terrible (the &quot;Developers&quot; section is confused and almost nonsense), and the overall organisation is bad (the &quot;Developers&quot; section has an &quot;A: &quot; answer without a question, and I can't figure out what the question might be.

The end-of-life concerns seem adequately expressed, though, so I think we might leave that section and delete the rest.

Any better ideas?</text>
    </revision>
  </page>
  <page>
    <title>Talk:Navigation Tools</title>
    <id>2887</id>
    <revision>
      <id>21476</id>
      <timestamp>2009-11-01T12:29:10Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <comment>New page: not the best page in the wiki, changes needed!</comment>
      <text xml:space="preserve">not the best page in the wiki, changes needed!</text>
    </revision>
  </page>
  <page>
    <title>Talk:Networking</title>
    <id>2781</id>
    <revision>
      <id>28504</id>
      <timestamp>2010-02-06T17:49:08Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Networking (Diablo)]] moved to [[Talk:Networking]]: Remove version. Probably needs some small updates for Fremantle.</comment>
      <text xml:space="preserve">
This page needs a name change. Using (Diablo) to refer to an OS version specific copy of another wiki page is a bad idea.

Suggestions: Diablo/Networking or OS2008/Networking or Just Plain Old &quot;Networking&quot;.

--[[User:dneary|Dave Neary]] 08:46, 20 October 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Networking (Diablo)</title>
    <id>3536</id>
    <revision>
      <id>28505</id>
      <timestamp>2010-02-06T17:49:08Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Talk:Networking (Diablo)]] moved to [[Talk:Networking]]: Remove version. Probably needs some small updates for Fremantle.</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Networking]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:New users</title>
    <id>3031</id>
    <revision>
      <id>22806</id>
      <timestamp>2009-11-17T15:07:33Z</timestamp>
      <contributor>
        <username>felipec</username>
        <id>41</id>
      </contributor>
      <minor/>
      <comment>Remove stuff.</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>Talk:Nitdroid easy install on EMMC</title>
    <id>4862</id>
    <revision>
      <id>43442</id>
      <timestamp>2011-05-12T08:04:21Z</timestamp>
      <contributor>
        <username>cutterslade</username>
        <id>2727</id>
      </contributor>
      <comment>New page: I freshly installed N11 and want to upgrade to N12 do I have to leave out the two commands?</comment>
      <text xml:space="preserve">I freshly installed N11 and want to upgrade to N12 do I have to leave out the two commands?</text>
    </revision>
  </page>
  <page>
    <title>Talk:OTA to PR1.1 troubleshooting</title>
    <id>4556</id>
    <revision>
      <id>40022</id>
      <timestamp>2010-11-07T18:25:32Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">i updated the firmware of N900 via flash.exe in Windows 7 64Bit platform,but in the progress,it show that CMT status error,now i can't use the  phone call,and IMEI is lost,i tried my times ,but the problem still,how can i do now?


-----------
flash update to PR1.2 or even 1.3
there's been a ABI incompatibility for cellmo between 1.1 and 1.2, so if your versions of cellmo FW and rootfs don't match, you'll see that symptoms.
Also *make sure to charge battery*!

--[[User:joerg_rw|joerg_rw]] 18:16, 7 November 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Objective:Best community for mobile Linux innovation</title>
    <id>1052</id>
    <revision>
      <id>49036</id>
      <timestamp>2012-08-10T17:25:01Z</timestamp>
      <contributor>
        <ip>37.113.15.188</ip>
      </contributor>
      <comment>/* hzzhsh */ new section</comment>
      <text xml:space="preserve">== Becoming the best-in-class community for innovation on mobile devices running Linux ==

''Moved from [[2010 Agenda]]''

What does it take to become the de-facto community to innovate open source for Linux-based devices? Obviously, we are not alone when it comes to development on Linux on mobile devices. Development communities for Android platform and LIMO platform are likely to grow in the next 2 years. So, how do we ensure that we keep on getting the greatest brains to our community? Only through continuous growth and fresh community members from around the globe we can ensure that we get new ideas and new challenges from which we all can learn. Only through continuous learning we can create better software and better user experiences.

So again, what does it take to be a major force in open source for Linux-based mobile devices?
* a vision, a strategy, and mid-term objectives for the community
* clear and transparent rules of engagement and recognition of contributions in the community
* a virtual meeting place i.e. maemo.org but also community events for people to meet in person
* a powerful core operating system incorporating the latest versions of open source upstream projects
* best-in-class open devices for rapid prototyping on latest hardware
* easy to use tools to create, prototype, and rewrite applications on top of the SDKs
* tools for contributors to software &quot;below&quot; the SDK to prototype and publish enhancements
* strong ties with the other open source community projects
* deep understanding of consumer behavior, preferences, and consumer trends in different cultures
* a mechanism on how to deliver software from open source innovation to millions of consumers 
* based on a truly international point of view in design of device and software platform as well as community construction, internet communication is global rather than restricted in local region. 

But at the end of the day, it's all about people, relationships and networks. The community needs to be able to maintain and extend the network between the people in an efficient, fair, and transparent way.

Only when we have in our maemo.org agenda 2010 answers on how maemo.org can contribute to these above mentioned requirements, then we can succeed to bring open source innovation to millions of people across the globe and change their lives.--[[User:peterschneider|peterschneider]] 10:03, 30 May 2008 (UTC)

:''Something like this is a good start to define the vision and core objectives of this 2010 Agenda. This is where the strategic minds in the community should think big and deep to set the scope and goals they wish for maemo.org.--[[User:qgil|qgil]] 09:49, 2 June 2008 (UTC)''

== hzzhsh ==

http://acheter-cialis-generique.org/ cialis acheter   
http://acquistareviagragenerico.net/ compra viagra in italia 
http://achetercialisgenerique-fr.net/ cialis medicament     
http://acquistare-cialis-generico.net/ cialis     
http://cialiscomprargenerico.net/ cialis     
http://acquistare-viagra-italia.net/ comprare viagra online</text>
    </revision>
  </page>
  <page>
    <title>Talk:Objective:Community localization</title>
    <id>1035</id>
    <revision>
      <id>11097</id>
      <timestamp>2009-02-18T06:14:39Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Transifex</comment>
      <text xml:space="preserve">==Tools==
* [http://transifex.org/ Transifex] looks good as default candidate.--[[User:qgil|qgil]] 06:14, 18 February 2009 (UTC)

==Way of Working==
''Moved from [[2010_Agenda]]''
* Better localization guidelines for new and existing Developers.
** Keep focused on the core of the project 
** Stay unified and work out the details later
** Focus every module in a step by step instead of a free for all 
** Delegate. Newcomers need the experience.
:''It is sensible to introduce a point about community Localization in the 2010 Agenda: what is expected, what would be ideal. The discussion and specific planning would be better in a specific page, though.--[[User:qgil|qgil]] 09:05, 2 June 2008 (UTC)''</text>
    </revision>
  </page>
  <page>
    <title>Talk:Objective:Maemo variants</title>
    <id>1037</id>
    <revision>
      <id>28155</id>
      <timestamp>2010-02-02T16:28:30Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Examples */</comment>
      <text xml:space="preserve">''Moved from [[2010_Agenda]]''

* Make the process of creating and distributing custom images for tablets easy
* Provide infrastructure for users to upload their own hacked-together images
* Provide documentation on creating flashable images to users
* Make it as easy as possible to flash removable drives, and boot from removable drives
''This is a great idea, I would love to download a &quot;media player&quot; or a &quot;games machine&quot;, or a &quot;productivity tablet&quot;, etc., without worrying about downloading each individual package.  The only problem I would see with this is in losing pre-existing settings and files and programs.  I guess this would be more for deployment on new machines than updating an old one --mee 05:44, 7 June 2008 (UTC)
''

===Examples===
Three configs:
*hacker
*gamer
*communicator

make a device that fits those requirements exactly and you have a perfect tool.

The only problem is to reach that level of quality, you need intensive user feedback,  The best way to elicit such feedback, is to concentrate on a non-technical application.  Gamer is the best example.  If you can host a number of good applications, like tuxpaint or ''Wesnoth'', the application depth alone would make the device indispensable.  Make the best portable chess computer, with a deepfritz engine, and you've achieved an incredibly powerful tool.

timeframe - 12-24 weeks (adding timeframe, because ultimately decisions will be made based on man-hours available and men available.  Budgets are a necessary part of any successful project)

=== Maintenance of the legacy ===
* Put together a plan of action for moving forward with a community-maintained Hacker Edition (based on what Quim said [http://www.archive.org/details/QuimGil-MaemoLinuxtag2008Update here])
:''Having a specific proposal agreed by the community would definitely help.--[[User:qgil|qgil]] 07:50, 2 June 2008 (UTC)''</text>
    </revision>
  </page>
  <page>
    <title>Talk:Objective:One place to track feedback</title>
    <id>905</id>
    <revision>
      <id>5521</id>
      <timestamp>2008-07-25T19:53:51Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <text xml:space="preserve">== Bugzilla vs. IdeaStorm ==
On this, my view was always that IdeaStorm would be the place to develop and enhance ideas, which would lead to a mature idea being broken up and fed into Bugzilla as individual enhancement requests. So, take for example, [[User:GeneralAntilles/Improving the Application manager|my page on the Application manager]], once the idea is matured enough, it can start being parceled out into smaller enhancement requests. Things like, &quot;Add these buttons to the main view&quot;, or &quot;Switch to finger-friendly scrollbars&quot;, etc. This gives developers clearer, smaller goals to work with and ensures some degree of certainty with the request before it's filed.

One complements the other, IdeaStorm makes Bugzilla more effective by allowing it to focus on smaller pieces, while Bugzilla makes IdeaStorm more effective by giving developers more numerous, smaller, and clearer targets to sink their teeth into. —[[User:generalantilles|GeneralAntilles]] 11:40, 24 July 2008 (UTC)
:There is one (important?) detail in the way new features are introduced in the Maemo SW official products. Small enhancements, really small ones going down to the code and not touching much the UI, can be implemented directly by lead developers without much internal negotiation. You have example with Marius with the Application Manager or timeless with the browser. However, anything bigger than that e.g. a new feature that introduces an API change, a visual change or a new entry in a menu, will easily involve the development team and very likely the related product manager. In this case timings and processes are different, and the developer alone can't just go and hack. The ''worst'' is to fall in between, something too big for a developer alone to hack in an afternoon but too small to fall in the priorities of the team and product management. 
:I see that IdeaStorm might work well to drive the attention of product managers on those well formulated features that are clearly pushed by the community. Better than bugzilla supported by plans in wiki pages, I still don't know. This has a lot to do with users voting and the information being well organized. If IdeaStorm is seen as more attractove by users and they participate more and better than in bugzilla, then fine. But we have one tool more to feed and maintain, and this is why I prefer that we are totally sure that it's going to be used and useful. What I don't see is this workflow you describe from IdeaStorm to bugzilla, as I don't see bugzilla as a tool to organize tasks (others do, certainly).--[[User:qgil|qgil]] 19:10, 24 July 2008 (UTC)

== Increase End-User Involvement == 
''Moved from [[2010 Agenda]]''.

Allowances need to be made to elicit and encourage feedback from non-technical users.  User complaints and ideas need an outlet if maemo is to stay relevant as anything other than an obscure hacker's project.  Quality Assurance needs to center on the users' needs, not the developers'.  This type of QA is vital, but thankless.  It should be determined what resources Nokia is willing to contribute to such an effort, given the difficulty in getting developers to voluntarily see such an effort as a high priority.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Objective:Release early, release often</title>
    <id>837</id>
    <revision>
      <id>9475</id>
      <timestamp>2008-12-30T00:21:16Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Objective:Release soon and often]] moved to [[Talk:Objective:Release early, release often]]: More appropriate?</comment>
      <text xml:space="preserve">== To be processed ==
Moved from [[2010 Agenda]]

=== Openness, openness, openness ===
* Developing maemo towards an operating system, not depending on proprietary components to be usable
:The thing is, in order to be &quot;operating&quot; we need some of those proprietary components, at least for the hardware configurations produced by Nokia.--[[User:qgil|qgil]] 18:37, 20 July 2008 (UTC)
* Core libraries developed in the open by Nokia employees and maemo.org community contributors.
: To be more precise: 1) Upstream components are developed upstream and integrated by Nokia - community contributions preferably upstream. 2) Some upstream packages modified by Nokia - community contributions still preferably upstream, unless they are patches against the Nokia specific code (we want to minimize the list of these modified packages). c) Open source components developed by Nokia, community provides feedback - contribution policy to be defined.--[[User:qgil|qgil]] 18:37, 20 July 2008 (UTC)
* Non-Nokia specification writing and approval, worked on by Nokia employees and maemo.org community contributors; discussed on public mailing lists.
:Can you explain this, please?--[[User:qgil|qgil]] 18:37, 20 July 2008 (UTC)
* The ability to build a complete, flashable image by maemo.org community for beta testing of open components in development. (May be less necessary in an SSU-based world: TBC)
:Two levels in the approach: 1) Nokia provides a complete and flashable image and equivalent SDK for beta testing. 2) The community can build their own images - the latter goes beyond technical aspects if we include Nokia/3rd party proprietary software.--[[User:qgil|qgil]] 18:37, 20 July 2008 (UTC)
* The ability to strip a maemo-based OS down to its base and build it up again differently (for example, KDE and no Hildon).
:Related with the previous one: one thing is to be able to do this technically, the other thing is to be able to make a flashable image including proprietary pieces and redistribute them.--[[User:qgil|qgil]] 18:37, 20 July 2008 (UTC)
*By 2010, installing completely different UIs should be achievable through the Application Manager.
:The idea looks good, but we need to check the architecture to see what this means in reality and what changes need to be made.--[[User:qgil|qgil]] 18:37, 20 July 2008 (UTC)

=== Weekly SDK releases ===
* Weekly releases of updated SDK packages. SSU for SDK. So developers can start to develop for the new platform right away and not have to wait until the new SDK/OS version is released. This 'beta' SDK releases will help developers with application porting and compatibility checks. So they can release their software the day a new OS is released. --[[User:xfade|xfade]] 12:57, 4 June 2008 (UTC)
:Covered in the list of tasks in the main page.--[[User:qgil|qgil]] 18:38, 20 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Objective:Release soon and often</title>
    <id>1406</id>
    <revision>
      <id>9476</id>
      <timestamp>2008-12-30T00:21:16Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Talk:Objective:Release soon and often]] moved to [[Talk:Objective:Release early, release often]]: More appropriate?</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Objective:Release early, release often]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Olsr</title>
    <id>4051</id>
    <revision>
      <id>33844</id>
      <timestamp>2010-05-04T14:42:51Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>New page:  What is OLSR? What does it do? Why should we care about it? Inquiring minds must know. --~~~~</comment>
      <text xml:space="preserve">
What is OLSR? What does it do? Why should we care about it? Inquiring minds must know. --[[User:dneary|Dave Neary]] 14:42, 4 May 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:OpenJDK 6.0 0 (Cambridge Software Labs) on N900</title>
    <id>4563</id>
    <revision>
      <id>40132</id>
      <timestamp>2010-11-14T18:53:48Z</timestamp>
      <contributor>
        <ip>190.250.179.27</ip>
      </contributor>
      <comment>jdnichollsc@hotmail.com</comment>
      <text xml:space="preserve">Hola, resulta que ya instale el openjdk, como hago para instalar el netbeans....es desde consola? resulta que he tratado por la Xterminal del celular y me sale el error :



Nokia-N900:/home/user/temporal# ./netbeans-6.9.1-ml-java-linux.sh

Configuring the installer...

There is not enough free disk space to extract installation data 185MB of free disk space is required in a temporary folder.

Clean up the disk space and run installer again. You can specify a temporary folder with suffcient disk space using --tempdir installer argument


gracias....</text>
    </revision>
  </page>
  <page>
    <title>Talk:Open Source Proof Points</title>
    <id>1244</id>
    <revision>
      <id>7558</id>
      <timestamp>2008-10-01T07:17:10Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Talk:Open Source Proof Points]] moved to [[Talk:Task:Open Source Proof Points]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Task:Open Source Proof Points]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Open development/Maemo roadmap</title>
    <id>616</id>
    <revision>
      <id>21604</id>
      <timestamp>2009-11-02T07:33:40Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <text xml:space="preserve">== Roadmap examples ==

Some links. Please add yours. Still haven't distilled whether they are good practices or not.--[[User:qgil|qgil]] 06:11, 30 July 2008 (UTC)

* http://www.moblin.org/community/ivi/community_roadmap.php
* http://wiki.openmoko.org/wiki/Roadmap
* http://live.gnome.org/RoadMap
* http://techbase.kde.org/Schedules/KDE4/4.0_Release_Roadmap
* http://www.eclipse.org/org/councils/roadmap_v3_0/index.php
* http://phonon.kde.org/cms/1007
* Perhaps also worth looking at http://people.freedesktop.org/~jg/roadmap.html
* http://development.openoffice.org/releases/
* I'm sure you're well-away of this one, but: http://opensource.nokia.com/ (It's interesting that Maemo is not in the Projects list.) --[[User:timsamoff|timsamoff]] 12:41, 30 July 2008 (UTC)
:  Yeah, I know about that and in fact is in my ToDo list. Will attack that once the new Maemo is well defined after the 100 Days. However, afaik there are no roadmaps there. Or where? --[[User:qgil|qgil]] 19:32, 30 July 2008 (UTC)
:: Sorry. Saw the one for [http://sofia-sip.org/repos/sofia-sip/TODO Sofia-SIP] and thought each product would have a roadmap. Nope. --[[User:timsamoff|timsamoff]] 20:10, 6 August 2008 (UTC)

==Dave's feedback==
* I wrote a paper on this for Wengo, a former employer - I could translate it &amp; post it publicly somewhere if there were interest --[[User:dneary|Dave Neary]] 16:21, 6 August 2008 (UTC)
:What about starting publishing the original in French. For me is enough now.--[[User:qgil|qgil]] 19:58, 6 August 2008 (UTC)
* My favourite free software roadmap is [http://wiki.inkscape.org/wiki/index.php/Roadmap Inkscape's] - they have this concept of laying out big plans which will be the guiding principles of a release early, and as they get closer to the release, those guiding principles get broken down and enumerated, people take on features, and they end up with very fine-grained lists of things accomplished in past releases.
:Inkscape is indeed a very good example. I like the way they connect roadmaps (future) with release notes (past). However, Inkscape is just one application and Maemo is a whole platform. Single products/components in this platform could work on roadmaps having references like Inkscape. However, how to apply the good lessons to a Maemo platform roadmap?--[[User:qgil|qgil]] 19:58, 6 August 2008 (UTC)
* Other than that, I have looked - the canonical reference [http://producingoss.org Producing Open Source Software] doesn't say anything about guiding the technical direction of a project.

== Nore comments ==
Get a clear public roadmap of what the plans are for the maemo platform for Fremantle. (Note: this doesn't mean a roadmap for ITOS20XX or disclosing new hardware features etc.) --[[User:xfade|xfade]] 12:57, 4 June 2008 (UTC)
Give developers a clear list of what library versions are targetted for Fremantle. E.g. glib, gtk+, hildon. --[[User:xfade|xfade]] 12:57, 4 June 2008 (UTC)
:Ok to the idea but as for today we cannot commit publicly to a specific date, nor guarantee that this will be done within 100 days. It won't be 2010 either, most probably at some point during the second half of this year. What should we do? Add it with a disclaimer? Leave it out? --[[User:qgil|qgil]] 20:21, 4 June 2008 (UTC)
:: There's another thing - some libraries you can't release, without giving up the new hardware specs, what about them? Not released? [[User:bundyo|bundyo]] 21:38, 4 June 2008 (UTC)
:::Sure, Nokia won't have to say &quot;we release Diablo on June 5th 2008&quot;. But they can say: we plan to use glib 2.12 for Diablo? So at least developers can work towards their own target and know what features to use of the already known libs. This is about common libraries we are already using in the platform, not new ones for new features. --[[User:xfade|xfade]] 07:13, 5 June 2008 (UTC)
::::I see this has not been touched in a while so I will.  ; )  Users will always want product leaks and such.  But we can take that off the table; that's well understood.  Things start getting grey as we move toward libraries and such as xfade mentions.  So why can't a vague, high-level map be produced?  We know this would easily be the case in 100% FOSS projects.  So IMO instead of forcing the dialog always toward the &quot;Nokia can't do this&quot; end of the pool, why don't we start with what CAN be released?. --[[User:Texrat|Texrat]] 12:063, 29 Auguest 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Open development/Why the closed packages</title>
    <id>1340</id>
    <revision>
      <id>20064</id>
      <timestamp>2009-10-14T11:02:51Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Why the closed packages]] moved to [[Talk:Open development/Why the closed packages]]: move</comment>
      <text xml:space="preserve">== I have a couple of questions and comments ==
Questions from an anonymous user. Breaking them out into sections so they're readable. —[[User:generalantilles|GeneralAntilles]] 09:07, 18 November 2008 (UTC)

=== File Manager ===
Why File Manager is closed? While being not so bad in general it has some annoyances and usability problems.
* Bluetooth progress dialog is horrible. Bluetooth file transfer turns multi-tasking system into useless brick while file transfer in progress since UI is locks up. That's really differentiates all Nokias. However I'm pretty sure most users are HATE this differentiation and inability to do file transfer in background. This is EASY to fix but without sources it could be just partially worked around by disabling supermodal dialogs. This however not allows to resort to other methods of progress displaying. For example, why not to draw tray icon with progress? Or notifier popup. Something except this evil dialog which by default completely locks ui up and still remains on top even if supermodal dialogs were disabled. 
* I'm really prefer to receive file over Bluetooth without questions and without opening it into some predefined folder like &quot;Inbox&quot; - this will reduce annoyance for me when I'm using Bluetooth. There is no such option and it can't be changed easily. I believe I should have choice. By default system could behave as it does now, but I want to have option to override this behavior. With closed sources this is at least more hard than it should be. This is &quot;differentiating&quot; Nokia devices too. Hey, Nokia, you;re calling these devices computers? Come on, computers are well known to have a good overriding and customization options. Not a case with Nokia though.
* Some file operations with File Manager are annoying and very hard to execute. I see no simple way to do something with it. The only way is to reinvent the wheel and re-work file manager from scratch.
: (sorry for breaking nthe list but this is the only why that occurs to me to answer)  I will ask why the File Manager is closed. I couldn't find any request at bugs.maemo.org for opening it. If you could do that and provide the reasons why (as you are doing here) that would be useful. About the rest of FM complaints, are there bugs or enhancement requests filed? Your feedback is appreciated, but definitely useful when it lands in the right place.--[[User:qgil|qgil]] 06:57, 18 November 2008 (UTC)

=== Media ===
Media players... it is what ALWAYS &quot;differentiates&quot; Nokia, especially from computers and PMPs. These are supporting very few file formats, have dumb unusable UI and usually also VERY SLOW. Not to mention than Nokia ignores our requests to add Ogg Vorbis codec so many times. And even their own Map program uses OGG files - that's really moron that there is no official OGG support since bundled software supports OGG anyway. So if you see very crappy and useless player - you can be pretty sure, that's Nokia. Differentiating? Really, but I prefer something else as differentiation. Good and open player could be really good attempt to change this situation after all.
: Media Player is already explained in the main page. Please provide votes and additional comments in the related enhancement request. Ogg support has nothing to do with the Media Player itself. Read the comment on osso-dsp-modules and the last comments made in https://bugs.maemo.org/show_bug.cgi?id=176 to understand why tghere is nothing stopping the community to provide Ogg support optimized and integrated in the maemo platform.--[[User:qgil|qgil]] 06:57, 18 November 2008 (UTC)

=== Connectivity ===
Connections... looks good but as a result, developers have a hard times when there is need to implement other connections support like Bluetooth PAN, VPN, ... - result usually half-baked and poor. I believe this could be improved if connections framework is open so people can extend it to suite specific needs like PAN, VPNs or so easily and without dirty half-working hacks and numerous workarounds. Right now connection applets impose too many limitations. If this is differentiation, I dislike it.
: Devices equipped with Maemo connect quite well and seamlessly in many case and for many users, and this is considered differentiation. See the comments made to the Connection Applet in the maein page. If there is a specific component you would like to see open from the Connectibvity framework please file an enhancement request.--[[User:qgil|qgil]] 06:57, 18 November 2008 (UTC)
:: The ICD2 headers were [http://lists.maemo.org/pipermail//maemo-developers/2008-November/035583.html released to -developers] just last week anyway. —[[User:generalantilles|GeneralAntilles]] 08:27, 18 November 2008 (UTC)

=== DSP ===
DSP... hmm... well, Nokia is unwilling to include Ogg Vorbis so far. Now they also going to deny developers from chances to develop power-efficient codecs running on DSP side? Pulse Audio probably can't decode OGG Vorbis (or other not supported format) out of the box on DSP side using DSP which is better suited for such tasks. The real problem is that there is no open and well-established development tools to cope with DSP.
: Again, please look at the DSP comments in the main page and look also at the new Multimedia architecture in Fremantle, where you can see how codecs are running entirely in the ARM side. In practice, ARM optimization (lack of) is a bigger issue than any closed DSP related problems. Nothing stops the community (or ARM and the rest of its partners) to work on such optimization.--[[User:qgil|qgil]] 06:57, 18 November 2008 (UTC)

=== Power management ===
Power management... don't you think that if these parts are open people will have chances to improve it and all this in best interests of both Nokia and everyone who uses Nokia devices. Differentiation? Huh? I'm hardly happy with active operating times of my N810. So you guys are probably joking about differentiation. Battery is low after just few hours of www browsing! I'm really want newer tablets to have more powerful battery AND better power management.
:Are you reading the comment about mce in the main page? Still, battery life in the tablets is remarkable nowadays compared to similar products.--[[User:qgil|qgil]] 06:57, 18 November 2008 (UTC)

=== Flasher ===
Flasher. There is already open one - 0xFFFF. I'm really preferring this one to be written based on specs from Nokia rather than based on reverse engineered information. Due to reverse engineered nature of protocol it could be supported not very well.
:Again, commented in the main page. Open an enhancement request and lobby for community support if you want to speeed up things.--[[User:qgil|qgil]] 06:57, 18 November 2008 (UTC)

=== Bootloader ===
I also hope that day will come when there will be U-Boot rather than stupid proprietary NOLO blob which has too many limitations and shortcomings. You cannot backup your data before flashing so if device no longer boots - you're doomed and will never be able to access your data from device's flash. You can not simply select boot source (flash, card, network, ...). Also it is not so bad idea to release x-loader sources. Ti offers default ones anyway and rest could be quite easily reverse-engineered from X-Loader code.
:File enhancement requests explaining your reasons, please.--[[User:qgil|qgil]] 06:57, 18 November 2008 (UTC)

=== WLAN ===
wlan-cal is needed for &quot;open source&quot; wi-fi driver. If some parts are closed, wtf it's called &quot;open&quot;, then? Same with retu-time - people could for example fine-tune their clocks with simple programs using NTP to compute clocks adjustments. And there is already utility to calibrate system clocks. However this does not works when device is switched off since in this mode time measured by Retu and nothing can be done to adjust it's RTC speed (undocumented and proprietary).
:File enhancement requests explaining your reasons, please.--[[User:qgil|qgil]] 06:57, 18 November 2008 (UTC)
::There's nothing to be done for this one. Kalle has already put in the effort to fix it, but it just isn't going to happen. See the stlc45xx-devel list on Garage for details. —[[User:generalantilles|GeneralAntilles]] 09:07, 18 November 2008 (UTC)

=== Certificates ===
Certman... I hope Nokia will open it one day. Now, browser and certman are interoperating more than poorly. If Nokia is not going to improve this itself, at least why deny others from doing so as well?! Right now you cannot easily authenticate anywhere (for example browser) with SSL and certificate using certman.
:File enhancement requests explaining your reasons, please.--[[User:qgil|qgil]] 06:57, 18 November 2008 (UTC)

=== Boot customization ===
I hope Nokia will figure out that many users like to change boot logo, etc and it's behavior. On computers this is whole class of arts. On Nokias ... uhm... it is prohibitively hard to change logos and virtually impossible to change their behavior without re-writing related things from scratch.
:File enhancement requests explaining your reasons, please.--[[User:qgil|qgil]] 06:57, 18 November 2008 (UTC)

:Please use proper list formating and remember to login and sign your comments. —[[User:generalantilles|GeneralAntilles]] 14:12, 17 November 2008 (UTC)
:: Quite useless list, ignoring already existing explanations, non-structured, mixing up lots of things. Bug reports don't belong here at all (and some of them have even been fixed for Fremantle already). If you really have issues, '''properly''' file them. --[[User:andre|Andre]] 14:18, 17 November 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Opt Problem/Non-Optified packages</title>
    <id>3265</id>
    <revision>
      <id>25286</id>
      <timestamp>2009-12-29T14:46:44Z</timestamp>
      <contributor>
        <ip>192.100.124.218</ip>
      </contributor>
      <comment>what to optify and measure</comment>
      <text xml:space="preserve">I don'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.

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.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Os2008 101</title>
    <id>3038</id>
    <revision>
      <id>22960</id>
      <timestamp>2009-11-18T20:40:38Z</timestamp>
      <contributor>
        <username>josefdk</username>
        <id>1273</id>
      </contributor>
      <minor/>
      <comment>exhortation to delete</comment>
      <text xml:space="preserve">The only thing in this page is the ITT link. I've migrated that to the [[:Category:OS2008]] page so this can safely be deleted now. [[User:josefdk|josefdk]] 20:40, 18 November 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Overclocking</title>
    <id>3913</id>
    <revision>
      <id>50488</id>
      <timestamp>2012-10-27T00:32:24Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Overclocking]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">I consider moving this under [[Overclocking N900]] because this appears to be fully N900 related. Any objections? --[[User:ossipena|ossipena]] 07:37, 13 April 2010 (UTC)

feel free to do so but please a keep a link to it on [[Overclocking]] because the URL has circulated. -titan

There will not be new devices running Maemo, so that is not necessary. I've actually considered including &quot;N900&quot; in the title when I was creating a first version of the page, but I think it is simple and everyone understands it. If there are more people for the moving than against please notify me in this talk page and I'll do it. I'm actually already waiting for others to add the content and then I'll polish the whole page and include all info. -rooted</text>
    </revision>
  </page>
  <page>
    <title>Talk:Overclocking N900</title>
    <id>3914</id>
    <revision>
      <id>33418</id>
      <timestamp>2010-04-25T12:01:28Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>redirect to [[Overclocking]]</comment>
      <text xml:space="preserve">overlaps with [[Overclocking]], will do something when I have spare time.
Imo this is more appropriate because that article is solely for N900. Comments?  --[[User:ossipena|ossipena]] 08:22, 13 April 2010 (UTC)

please remove this page. If available, N8x0 overclocking info could be added to the Overclocking page.
: I redirected the page to [[Overclocking]]. [[User:amigadave|amigadave]] 12:01, 25 April 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Packaging/Guidelines</title>
    <id>4022</id>
    <revision>
      <id>47724</id>
      <timestamp>2012-05-28T11:50:12Z</timestamp>
      <contributor>
        <username>sim6</username>
        <id>4903</id>
      </contributor>
      <comment>/* Bugtracker link */</comment>
      <text xml:space="preserve">Is there a reason why in &quot;5. Control files and their fields&quot; you do not mention how to [[Packaging#Translations_of_text_fields | localize descriptions]]? [[User:ossi1967|ossi1967]]

: Thanks for the hint. It wasn't on purpose, but it would make sense to have it there. Will check and add that! [[User:danielwilms|danielwilms]]

The contents headings really need cleaning up - the table of contents is more than 2 screen lengths long on my laptop. Is there any way we can remove about 3/4 of the headings, demote most of the H1s and H2s to H2s and H3s, or split the page into several sub-pages? For my part, someone coming to the page looking for policy will probably start to be interested around the chapter &quot;The Maemo archives&quot;. Do we really need all of the context-setting stuff in chapter 1? --[[User:dneary|Dave Neary]] 11:59, 28 April 2010 (UTC)
:The headings pretty closely match the [http://www.debian.org/doc/debian-policy/ Debian policy], so are appropriate in order to make comparisons between the two. I think that the headings should stay, and the [[:wikipedia:Template:TOC_limit|TOC limit template]] should be used, if this bothers people. Personally, I would just leave the page as is, as browsing through the table of contents and clicking links is quite convenient. Limiting the TOC depth will make that harder. [[User:amigadave|amigadave]] 12:09, 28 April 2010 (UTC)

== Bugtracker link ==

The &quot;5.1 Package control files: debian/control&quot; section says:

&quot;XSBC-Bugtracker: Link to a valid bugtracker. Requirement for promotion to maemo.org extras repository.&quot;

But the [http://wiki.maemo.org/Extras-testing/QA_checklist#Blockers QA Checklist] says:

&quot;A missing bugtracker is NOT a blocker as of 01.09.2010, but use of bugtracking facilities IS strongly recommended.&quot;

Please can you change the first line to something like that:

&quot;XSBC-Bugtracker: Link to a valid bugtracker. &lt;del&gt;Requirement&lt;/del&gt;[http://wiki.maemo.org/Extras-testing/QA_checklist#Blockers] Strongly recommended for promotion to maemo.org extras repository.&quot;

Thanks</text>
    </revision>
  </page>
  <page>
    <title>Talk:Panucci</title>
    <id>2873</id>
    <revision>
      <id>21318</id>
      <timestamp>2009-10-29T15:27:00Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>RFC: delete</comment>
      <text xml:space="preserve">What the is this this about? Can this be deleted? Makes no sense. --[[User:allnameswereout|allnameswereout]] 15:27, 29 October 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Participant Photos</title>
    <id>822</id>
    <revision>
      <id>4776</id>
      <timestamp>2008-07-18T11:33:20Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>[[Talk:Participant Photos]] moved to [[Talk:Maemo Summit 2008/Participant Photos]]: TO place page under Maemo_Summit_2008 namespace</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Maemo Summit 2008/Participant Photos]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Perl</title>
    <id>4624</id>
    <revision>
      <id>49680</id>
      <timestamp>2012-09-14T17:11:31Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">jika applikasi sms digabung dengan gtranslate  sangat mudah untuk berkomunikasi dengan lain negara, dimana saya mengejah dengan bahasa indonesia berkomunikasi dengan orang japan, saya dapat menterjemakan bahasa japan kebahasa indonesia atau sebaliknya, ada jawaban?

is this gibberish worth keeping it?
--[[User:joerg_rw|joerg_rw]] 17:11, 14 September 2012 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Phone control</title>
    <id>3351</id>
    <revision>
      <id>47442</id>
      <timestamp>2012-05-06T19:36:04Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Phone control]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">What categories should this be part of, Development, Advanced users?

---

Should this page be renamed to &quot;Device Control&quot;?  There is ambiguity about the term &quot;phone&quot; - does it mean the n900 unit itself (this is what the page contents imply), or only the phone functions of the unit (as the disclaimer at the top saying &quot;use the supported telepathy APIs for phone control&quot; implies)?</text>
    </revision>
  </page>
  <page>
    <title>Talk:Playing OGG files</title>
    <id>68</id>
    <revision>
      <id>4479</id>
      <timestamp>2008-07-15T05:41:23Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve">== Introduction ==

The introduction is really ''way'' too heavy for the intended audience. Anybody else think it should be toned down a bit? —[[User:generalantilles|GeneralAntilles]] 05:41, 15 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Portrait Mode</title>
    <id>4752</id>
    <revision>
      <id>42025</id>
      <timestamp>2011-02-23T11:31:52Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>[[Talk:Portrait Mode]] moved to [[Talk:Community SSU/Features/Portrait mode]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Community SSU/Features/Portrait mode]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Preenv/FAQ</title>
    <id>4546</id>
    <revision>
      <id>44222</id>
      <timestamp>2011-06-28T08:43:31Z</timestamp>
      <contributor>
        <username>govprog</username>
        <id>4175</id>
      </contributor>
      <comment>/* about chmod */ new section</comment>
      <text xml:space="preserve">/home/user/MyDocs/preenv should be /home/user/MyDocs/.preenv to prevent the tracker from indexing

i think chmod +x will do it also for chmod a+x

== about chmod ==

Some of the users said that the games would not work with chmod a+x or chmod +rwx . Therefore, chmod +rwx will be used instead since it's more usual.Thanks for using the wiki.

[[User:govprog|govprog]] 08:43, 28 June 2011 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Preenv/Game Compatibility</title>
    <id>4855</id>
    <revision>
      <id>43356</id>
      <timestamp>2011-05-06T09:14:53Z</timestamp>
      <contributor>
        <username>govprog</username>
        <id>4175</id>
      </contributor>
      <comment>New page: In regard to the contributors, links referring to talk.maemo.org have been moved to the [[Preenv/FAQ#References|FAQ]]. Thanks for using the wiki --~~~~</comment>
      <text xml:space="preserve">In regard to the contributors, links referring to talk.maemo.org have been moved to the [[Preenv/FAQ#References|FAQ]].
Thanks for using the wiki
--[[User:govprog|govprog]] 09:14, 6 May 2011 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Prepare your application for testing</title>
    <id>4052</id>
    <revision>
      <id>33845</id>
      <timestamp>2010-05-04T14:44:17Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>New page: What is required before this page should be linked from others? I don't really like deliberately orphaned pages, esp. when they have been inactive for a couple of months. --~~~~</comment>
      <text xml:space="preserve">What is required before this page should be linked from others? I don't really like deliberately orphaned pages, esp. when they have been inactive for a couple of months. --[[User:dneary|Dave Neary]] 14:44, 4 May 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Programming FM radio</title>
    <id>4455</id>
    <revision>
      <id>38601</id>
      <timestamp>2010-09-14T09:31:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Talk:Programming FM radio]] moved to [[Talk:Programming N800 FM radio receiver]]: device-specific</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Programming N800 FM radio receiver]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Programming N800 FM radio receiver</title>
    <id>394</id>
    <revision>
      <id>38600</id>
      <timestamp>2010-09-14T09:31:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Programming FM radio]] moved to [[Talk:Programming N800 FM radio receiver]]: device-specific</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>Talk:Proximus</title>
    <id>4902</id>
    <revision>
      <id>45936</id>
      <timestamp>2011-12-06T11:19:06Z</timestamp>
      <contributor>
        <username>atamariya</username>
        <id>4851</id>
      </contributor>
      <comment>/* Use ET-Prolog */ new section</comment>
      <text xml:space="preserve">I just thought I'd give you a heads-up, it appears that there is a Belgian telecoms company called Proximus. To make matters worse, they even have an i-sphere app called Proximus. --[[User:mrsellout|mrsellout]] 12:28, 20 June 2011 (UTC)

== i'm also working on this exact thing ==

http://competition.meetmeego.org/submissions/38

I've wanted to write this app for a long time also, I actually started work on it for the competition a few weeks ago, just didn't submit it until now since I wanted to get at least 25% done before announcing anything. In case I had too many problems, I could just give up :)
Last week I saw you guys had the same idea too... 
I assume you are not planning on entering also, that would be pretty interesting. You can't really help me yet either though, since that's cheating :P
Are you guys interested in extending my work after I submit it? I can't guarantee you will like the architecture so maybe you won't want to touch it, I don't know. It's written in Qt Creator using the new mobility 1.2 stuff. So far it's only running in the simulator though.
Let me know any questions here, or [http://talk.maemo.org/private.php?do=newpm&amp;u=14379 pm me] on the foum.

Creamy Goodness


I've added you to the project, no internet connection at home atm (just moved house), so will catch you in the week for a chat -lardman

== Use ET-Prolog ==

IMHO, the daemon part can use the effort put in on ET-Prolog http://kibergus.su/node/33.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Public key logins</title>
    <id>1157</id>
    <revision>
      <id>12751</id>
      <timestamp>2009-04-23T11:22:58Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Public key logins for putty, pscp and winscp]] moved to [[Talk:Public key logins]]</comment>
      <text xml:space="preserve">Very nice how to! :-) Imho it would be a goog idea to tell the people where to switch to a 'auth with cert only' mode.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Public key logins for putty, pscp and winscp</title>
    <id>1795</id>
    <revision>
      <id>12752</id>
      <timestamp>2009-04-23T11:22:58Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Talk:Public key logins for putty, pscp and winscp]] moved to [[Talk:Public key logins]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Public key logins]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Py2deb</title>
    <id>1688</id>
    <revision>
      <id>11754</id>
      <timestamp>2009-03-16T00:48:52Z</timestamp>
      <contributor>
        <ip>91.64.179.0</ip>
      </contributor>
      <text xml:space="preserve">usually python libraries are distributed with setuptools. If there is a setup.py in the folder, chances are, the following procedure works for creating package with py2deb: 
run 
 python setup.py bdist_dumb
this creates a &lt;package name&gt;-&lt;version&gt;-linux-armv6l.tar.gz in dist/ with the tree of to be installed files (e.g. /usr/lib/python2.5/site-packages/&lt;package name&gt;/...). extract with:
 cd ..; mkdir src; cd src; tar xzvf ../&lt;package name&gt;/dist/&lt;package name&gt;-&lt;version&gt;-linux-armv6l.tar.gz
and continue with build_myapp.py script like described here.</text>
    </revision>
  </page>
  <page>
    <title>Talk:PyMaemo/GUIToolkitSelectionGuide</title>
    <id>3458</id>
    <revision>
      <id>27723</id>
      <timestamp>2010-01-29T16:09:34Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Talk:PyMaemo/GUIToolkitSelectionGuide]] moved to [[Talk:PyMaemo/GUI toolkit selection guide]]: Naming convention - no CamelCase</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:PyMaemo/GUI toolkit selection guide]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:PyMaemo/GUI toolkit selection guide</title>
    <id>3346</id>
    <revision>
      <id>35660</id>
      <timestamp>2010-06-11T17:54:28Z</timestamp>
      <contributor>
        <username>achipa</username>
        <id>954</id>
      </contributor>
      <comment>/* &quot;Best choice&quot; binding for Maemo specific functionality */ new section</comment>
      <text xml:space="preserve">Matti, can you elaborate why is PyQt's commercial license considered impractical on Maemo ? As I understand it just allows proprietary applications to use PyQt, it's not any more impractical that it is for GPL software. There is no requirement to use 'special binaries' or sorts.

----

I believe you would, at least according to [http://www.riverbankcomputing.co.uk/commercial/pyqt this page], have to provide separate versions of PyQt modules for commercial use, which would be quite a hurdle on Maemo.

[[User:mairas|mairas]] 15:16, 8 January 2010 (UTC)

----

On a second thought, restored the original wording as it was more neutral.

[[User:mairas|mairas]] 16:14, 8 January 2010 (UTC)

== Ovi compatibility ==

If there are concerns about my (speculative?) wording regarding the non-acceptability of binding-based software in Ovi, please submit an acceptable one. Stating an important fact CANNOT be speculative. I’m saying important as there were several submissions to Calling All Innovators which were written in Python and are now in jeopardy of being rejected because the authors were not aware of the limitations of Ovi.

== &quot;Best choice&quot; binding for Maemo specific functionality ==

&quot;If your project requires Maemo/MeeGo-specific Qt extensions or latest Qt features and you want your application to work in the future MeeGo platforms, PySide is the best choice for you.&quot;

I find this comment biased or misleading at best unless there is a clear comparison WHY PySide should be considered a better choice in case of Maemo/MeeGo-specific Qt extensions. That’s why I added the PyQt comment striving for balace - I didn’t want to reword somebody else’s sentences, but as is, the claim is IMHO pretentious.</text>
    </revision>
  </page>
  <page>
    <title>Talk:PyMaemo/Using Location API</title>
    <id>3580</id>
    <revision>
      <id>29157</id>
      <timestamp>2010-02-11T20:41:00Z</timestamp>
      <contributor>
        <username>mmm</username>
        <id>2104</id>
      </contributor>
      <comment>New page: [[User:Mmm|mmm]] says: Now, I don't want to ruin anything, so I'm not editing anything (yet), but it seems there's a bug in the completed code example af the end. At least that's what it s...</comment>
      <text xml:space="preserve">[[User:Mmm|mmm]] says: Now, I don't want to ruin anything, so I'm not editing anything (yet), but it seems there's a bug in the completed code example af the end. At least that's what it says in this blog post: http://www.chilitechno.com/blog/default/09-12-16/python-location_on_Maemo5_follow_up.aspx - it worked for me after removing the line. Shouldn't that be removed from the code example?</text>
    </revision>
  </page>
  <page>
    <title>Talk:QML</title>
    <id>3177</id>
    <revision>
      <id>24496</id>
      <timestamp>2009-12-13T03:18:01Z</timestamp>
      <contributor>
        <username>kimitake</username>
        <id>226</id>
      </contributor>
      <comment>New page: -opengl es2 not es ?</comment>
      <text xml:space="preserve">-opengl es2 not es ?</text>
    </revision>
  </page>
  <page>
    <title>Talk:QML-EnhancedCalcExample</title>
    <id>4339</id>
    <revision>
      <id>36720</id>
      <timestamp>2010-07-13T13:07:19Z</timestamp>
      <contributor>
        <ip>192.100.130.7</ip>
      </contributor>
      <comment>New page: hey.. hello i am new to qml.. i want to know and learn qml from the basics very basics right from the ABCD of qml. can i have the link of it.. plz help me as my job is in qml and am kinda ...</comment>
      <text xml:space="preserve">hey.. hello i am new to qml.. i want to know and learn qml from the basics very basics right from the ABCD of qml. can i have the link of it.. plz help me as my job is in qml and am kinda suffering without much knowledge on qml..plz mail me the information to mohd_arif250@yahoo.com

thanks</text>
    </revision>
  </page>
  <page>
    <title>Talk:QTMapWidget</title>
    <id>4262</id>
    <revision>
      <id>35755</id>
      <timestamp>2010-06-13T10:33:04Z</timestamp>
      <contributor>
        <username>mardy</username>
        <id>1103</id>
      </contributor>
      <text xml:space="preserve">mardy: I think that built-in location support would be a mistake.
Of course the widget should have methods to set the current position, uncertainty, speed, direction and all the rest, but I don't think it should be handling the GPS itself.
This would make the widget GPS-library agnostic and hopefully have it gain more widespread usage.</text>
    </revision>
  </page>
  <page>
    <title>Talk:QtComponents/Miniature</title>
    <id>5016</id>
    <revision>
      <id>45323</id>
      <timestamp>2011-09-14T15:38:08Z</timestamp>
      <contributor>
        <username>mohammad7410</username>
        <id>2135</id>
      </contributor>
      <text xml:space="preserve">I can take those patches in, how about a qmake CONFIG+=fremantle option?

----------

Instead of a separate slot, you can use QApplication's slot;
connect(d-&gt;ui.engine(), SIGNAL(quit()), qApp, SLOT(quit()));

~ MohammadAG.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Questions for Nokia</title>
    <id>546</id>
    <revision>
      <id>2799</id>
      <timestamp>2008-06-25T20:48:27Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>Process for submitting, answering and sorting questions</comment>
      <text xml:space="preserve">== Process for submitting, answering and sorting questions ==

I just finished cleaning up the page (had a lot of hold-over stuff from midgard, still), but we really need to figure out a better process for submitting, answering and sorting the questions here. Any suggestions? —[[User:generalantilles|GeneralAntilles]] 20:48, 25 June 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Real Video streams</title>
    <id>267</id>
    <revision>
      <id>21267</id>
      <timestamp>2009-10-29T14:27:04Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <text xml:space="preserve">Is this still relevant?.. --[[User:allnameswereout|allnameswereout]] 14:27, 29 October 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Recaller</title>
    <id>3932</id>
    <revision>
      <id>35076</id>
      <timestamp>2010-05-28T23:17:55Z</timestamp>
      <contributor>
        <ip>68.199.225.76</ip>
      </contributor>
      <comment>Requests</comment>
      <text xml:space="preserve">Do not finish record after call off


Thanks for the great work.

I have 2 requests.

1. Have auto record other voice protocols as well (You have it as a low priority. Please make it high priority :-)

2. When selecting what the auto-recaller can do, right now you can select &quot;1 of many&quot; functions. e.g. For recording either Phone calls or as a DictaPhone or System sounds or Bluetooth. This should be modified to Any of the many functions. i.e. It should be able to record none or 1 or all or anywhere in between of the above sources. It should be a Multiple Select rather than Single Select source.

Great work.

Thanks.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Red Pill mode</title>
    <id>3385</id>
    <revision>
      <id>46562</id>
      <timestamp>2012-02-02T20:21:27Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <minor/>
      <comment>Undo revision 46561 by [[Special:Contributions/82.148.109.68|82.148.109.68]] ([[User talk:82.148.109.68|Talk]]) SPAM</comment>
      <text xml:space="preserve">== Red Pill replacement ==
The &quot;Future&quot; section says, &quot;Similar function can be accomplished by Root access&quot;.  Hints at what that is would be appreciated.  Is it just command line apt* &amp; dpkg?</text>
    </revision>
  </page>
  <page>
    <title>Talk:Remapping keyboard</title>
    <id>4954</id>
    <revision>
      <id>48574</id>
      <timestamp>2012-06-21T07:32:02Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Remapping keyboard]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">prev version been SPAM/vandalism/OT</text>
    </revision>
  </page>
  <page>
    <title>Talk:Repeating entries in Calendar</title>
    <id>4517</id>
    <revision>
      <id>39553</id>
      <timestamp>2010-10-15T19:32:22Z</timestamp>
      <contributor>
        <ip>84.106.138.98</ip>
      </contributor>
      <comment>New page: All very well but I want to use my N900 as my primary device. If I had wanted to use Outlook I would have bought a device with Windows Mobile.  Why is it not possible to create entries wit...</comment>
      <text xml:space="preserve">All very well but I want to use my N900 as my primary device. If I had wanted to use Outlook I would have bought a device with Windows Mobile.

Why is it not possible to create entries with a 'complex' repeating pattern?

Regards, LMG</text>
    </revision>
  </page>
  <page>
    <title>Talk:Reprepro</title>
    <id>3235</id>
    <revision>
      <id>25140</id>
      <timestamp>2009-12-28T13:19:14Z</timestamp>
      <contributor>
        <username>jeremiah</username>
        <id>585</id>
      </contributor>
      <comment>Created page.</comment>
      <text xml:space="preserve">[http://mirrorer.alioth.debian.org/ reprepro] is a tool to create and manage debian package repositories.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Reverse ssh</title>
    <id>4429</id>
    <revision>
      <id>38444</id>
      <timestamp>2010-09-10T16:32:52Z</timestamp>
      <contributor>
        <ip>79.20.147.109</ip>
      </contributor>
      <comment>New page: What about using autossh instead of that while true shit?</comment>
      <text xml:space="preserve">What about using autossh instead of that while true shit?</text>
    </revision>
  </page>
  <page>
    <title>Talk:Root access</title>
    <id>657</id>
    <revision>
      <id>50378</id>
      <timestamp>2012-10-23T15:54:00Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Root access]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">== easyroot ==
Should we have Wiki pages promoting non-Extras debs?

Can we get &quot;easyroot&quot; into Extras as I would like to propose that we do not promote in the Wiki any deb package that is NOT in Extras (and with full source code). Alternatively, whatever happened to &quot;becomeroot&quot; which used to be the defacto package for anyone wanting to get root. All &quot;becomeroot&quot; does is replace the standard gainroot script - does anyone know what easyroot does to the tablet? —[[User:milhouse|milhouse]]
:Well, becomeroot isn't in Extras, either, and the 3rd-party repository it's in seems to be down/losing distributions all the time. Somebody needs to poke ag2 (I think he's the one, anyway) about getting his stuff in Extras, but at least nitapps.com is stable. Personally, I'm going to be a bit pragmatic on this point. I'm for &quot;whatever makes the least amount of pain and suffering for users&quot;, if that happens to be a package outside of Extras, so be it. We can always put the wiki article up, then endless pester the developer about uploading it to Extras after that. Besides, there isn't a solution in Extras for this particular problem. easyroot does pretty much the exact same thing as becomeroot, except it also lets you type just &quot;root&quot;. —[[User:generalantilles|GeneralAntilles]] 10:06, 1 July 2008 (UTC)
::I have a copy of [http://nmacleod.com/nokia/becomeroot.deb becomeroot] on my web space which installed just fine on Diablo - would it be possible to &quot;fork&quot; this and put it on Extras as the original developer doesn't seem to be around and there isn't really much to develop any more. Since it's also just a replacement gainroot script the deb is essentially the source code. —[[User:milhouse|milhouse]]
:::If you want to do that and be responsible for packaging it up for Extras, that's perfectly fine by me. —[[User:generalantilles|GeneralAntilles]] 10:18, 1 July 2008 (UTC)
::::I genuinely would if I had a clue. :( I may get a clue (about packaging) eventually but it won't be any time soon. —[[User:milhouse|milhouse]]
:::::I uploaded a easyroot clone to chinook and diablo extras (and -devel) called rootsh. GeneralAntilles already updated this page a while ago pointing to it. Just updating talk for informational purposes. —[[User:qwerty12|qwerty12]] 17:48, 14 July 2008 (BST)

== sudo gainroot ==
Many old articles and ITT posts talk about executing &quot;sudo gainroot&quot; to get root, yet easyroot apparently uses another command (&quot;root&quot;) to switch to the super user - more than one command to perform the same function is unecessary and confusing, we should where possible stick with &quot;sudo gainroot&quot; as the standard &quot;get root&quot; command as this covers both R&amp;D mode and the &quot;traditional&quot; becomeroot method. —[[User:milhouse|milhouse]]
:Eh, whichever. How about &quot;Then, from the shell, run &lt;code&gt;sudo gainroot&lt;/code&gt; (or &lt;code&gt;root&lt;/code&gt; for short). This will give you a root shell.&quot;? —[[User:generalantilles|GeneralAntilles]] 10:08, 1 July 2008 (UTC)
::It's a minor point I know but we'll be shooting ourselves in the foot if we introduce multiple options - think about all the future articles where root access may be required, are we really going to mention all of the possible options depending on what package the user has installed? Seperate issue... why isn't my username appearing after my replies? :) —[[User:milhouse|milhouse]]
:::Because you aint doin' it right. :P &lt;nowiki&gt;—~~~~&lt;/nowiki&gt; (or you can use, --, I suppose ;)) —[[User:generalantilles|GeneralAntilles]] 10:21, 1 July 2008 (UTC)
::::4*~ did the trick - thanks! —[[User:milhouse|milhouse]] 10:23, 1 July 2008 (UTC)

== Package Installation == 
This article has the comment &quot;Install easyroot from nitapps.com&quot; but doesn't explain how a deb file or package might be installed - we should have a page devoted to installing applications which can be linked to from other pages discussing the installation of packages etc. —[[User:milhouse|milhouse]]
:Fine with me. Can I take that as volunteering? ;) —[[User:generalantilles|GeneralAntilles]] 10:09, 1 July 2008 (UTC)
::I shall have a go - really just throwing ideas out there in case I don't have the time! :)

== R&amp;D Mode ==
Can someone more knowledgable than I highlight the downsides of R&amp;D mode in this article - doesn't the device use more battery power when in R&amp;D mode, possibly because it doesn't idle as often as it could? —[[User:milhouse|milhouse]]
:I don't think that's true. Certainly there are other options you can enable with the flasher (e.g. serial console) which ''does'' drain the battery faster. But R&amp;D on its own doesn't - unless something has changed recently. --[[User:jaffa|Jaffa]] 10:47, 1 July 2008 (UTC)
::I might be wrong - I hope I am! - but I'm sure I read somewhere that R&amp;D mode may influence the behaviour of WiFi, amongst other things (although I don't recall who wrote the post, so it may be completely bogus). It would be nice to have a quote from a Nokia techie giving chapter and verse on R&amp;D mode, or a link to a new page detailing R&amp;D mode and the other flasher flags. --[[User:milhouse|milhouse]] 11:00, 1 July 2008 (UTC)
:::We need an equivalent of Wikipedia's &quot;&lt;sup&gt;citation needed&lt;/sup&gt;&quot; ;-) --[[User:jaffa|Jaffa]] 11:11, 1 July 2008 (UTC)
::::We need the [https://bugs.maemo.org/show_bug.cgi?id=3283 citation plugin] first. ;) —[[User:generalantilles|GeneralAntilles]] 11:22, 1 July 2008 (UTC)

== Disclaimer required ==
This article needs a disclaimer both to protect Nokia and the foolish. —[[User:milhouse|milhouse]]
:Agreed on the foolish aspect. But this is now a community wiki, do we need to protect Nokia? Strong warnings dissuade people playing. May be worth emphasising that no matter how hard you try, a reflash should fix it? --[[User:jaffa|Jaffa]] 17:15, 1 July 2008 (UTC)
::The old midgard root access page had a disclaimer for Nokia, I think it's only fair to warn users that root access isn't sanctioned by Nokia, and that a reflash should always get you out of trouble! --[[User:milhouse|milhouse]] 19:53, 1 July 2008 (UTC)
:::Quoting [[user:qgil|qgil]]:
 &lt;qgil&gt; GeneralAntilles: something like that disclaimer should be put at some point in the footer for all pages  :)
 &lt;qgil&gt; I mean the whole maemo.org, now it says &quot;Sponsored by Nokia&quot;
 &lt;qgil&gt; then it's the maemo.org community who could have a specific warning in specific pages to avoid confusion and,
 &lt;qgil&gt; what is more important
 &lt;qgil&gt; let them know that &quot;The steps described in this page might lead to severe damage in your system and/or your device.
        You are at your own risk and you are supposed to know what you are doing&quot;
 &lt;qgil&gt; or something along these lines
:::The current warning is probably a little harsh, though, feel free to revise. —[[User:generalantilles|GeneralAntilles]] 03:04, 2 July 2008 (UTC)
::::Done. --[[User:jaffa|Jaffa]] 08:38, 2 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Rotation</title>
    <id>1584</id>
    <revision>
      <id>36485</id>
      <timestamp>2010-07-05T17:58:18Z</timestamp>
      <contributor>
        <ip>68.110.104.80</ip>
      </contributor>
      <comment>/* N900 */ new section</comment>
      <text xml:space="preserve">== Unclear about a couple lines ==

Don't want to pick nits, but as a relatively inexperienced Linux user, I would like to remove any ambiguity from instructions like these.

So, at the end, the instructions say:

:'''For both devices'''

:'''Successfully tested on n810 WM with 5.2008.43-7.''' After following the appropriate steps for your device, continue and run:

Three devices are listed above the heading -- was the N810 Wimax Edition added later and the heading after it not changed? This could read &quot;For all three devices&quot; or &quot;For N800, N810 and N810we&quot; and there would be no confusion then.

The information that it has been successfully tested on an N810we seems parenthetical, and shouldn't be put first, I think. Is this equivalent and correct?

:After taking the above steps appropriate for your device, continue by running the following command (successfully tested on an N810we with 5.2008.43-7):

Or could the information about having been tested be made bold ''and'' italic, so that it's more easily seen as a datapoint and not the beginning of the next step?

Here's where my real stumble occurs -- are those three separate commands to complete or just one really long command? If it's one really long command, may I suggest a note indicating that; and if it's three commands then indicate that by saying &quot;continue by running the following commands&quot; and explicitly using the plural? I know that as someone with little experience, I would be reassured to have this spelled out explicitly before I proceed.  

On review, I see this line near the top:

:There are two slightly different sets of packages for the N800 and the N810, so follow the appropriate steps for your device.

Since there are three different packages that might be specified, surely this should say &quot;three&quot; instead of &quot;two&quot;? Oh, I'm going to go ahead and make this correction, since it's obvious even to me :-) [[User:rsperberg|rsperberg]] 19:31, 15 February 2009 (UTC)

== missed *.deb files ==

Does anybody have required *.deb packages in his backups? Looks like http://outpo.st/ not providing them anymore. Does it makes sense to put all the staff into more safe place so it will be available for the community? 
Thanks in advance, Andrey.

[none@none:~]-» wget http://outpo.st/rotate/kernel-diablo-flasher_2.6.21-200842maemo1rotationfast_all.deb
...
HTTP request sent, awaiting response... 404 Not Found
...

== N900 ==

What is the situation with rotation on the N900?</text>
    </revision>
  </page>
  <page>
    <title>Talk:Screen protector</title>
    <id>1335</id>
    <revision>
      <id>8704</id>
      <timestamp>2008-11-12T15:54:45Z</timestamp>
      <contributor>
        <username>tz1</username>
        <id>169</id>
      </contributor>
      <comment>New page: How do you remove the faceplate?  At least without bending, breaking or doing something else bad.</comment>
      <text xml:space="preserve">How do you remove the faceplate?  At least without bending, breaking or doing something else bad.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Seamless Software Update</title>
    <id>2886</id>
    <revision>
      <id>21458</id>
      <timestamp>2009-11-01T12:13:13Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <comment>New page: Is this for beginners or power users? I can't decide. Ossipena</comment>
      <text xml:space="preserve">Is this for beginners or power users? I can't decide. Ossipena</text>
    </revision>
  </page>
  <page>
    <title>Talk:Setting up NFS</title>
    <id>47</id>
    <revision>
      <id>1063</id>
      <timestamp>2008-06-06T18:07:03Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <minor/>
      <comment>[[Talk:How To Setup NFS]] moved to [[Talk:Setting up NFS]]: Midgard</comment>
      <text xml:space="preserve">originally from here https://maemo.org/community/wiki/settingupnfs/ --[[User:ludovicus|ludovicus]] 17:33, 24 May 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Share apps</title>
    <id>309</id>
    <revision>
      <id>2115</id>
      <timestamp>2008-06-20T08:31:55Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">== Image quality ==

Would it be possible to embed the html from the ranking lists (non-dynamic) into this page, rather than just using a screenshot (which doesn't look great)? —[[User:generalantilles|GeneralAntilles]] 12:14, 19 June 2008 (UTC)

You'd need to include the relevant CSS from maemo.org - the raw HTML will look horrible (here it is for the stars, for reference)

&lt;pre&gt;
&lt;div id=&quot;bestrated&quot;&gt;
&lt;h2&gt;&lt;a href=&quot;/downloads/bestrated/OS2008/25&quot;&gt;Stars&lt;/a&gt;&lt;/h2&gt;
&lt;ul class=&quot;bestrated-applications&quot;&gt;&lt;li&gt;&lt;div class=&quot;screenshot-thumbnail&quot;&gt;

&lt;img src=&quot;http://maemo.org/midcom-serveattachmentguid-28f88e5ac31811dcbef6cf8f36daa89da89d/thumbnail_screenshot03.jpg&quot; onclick=&quot;screenshotdetails('28f88e5ac31811dcbef6cf8f36daa89da89d','http://maemo.org/midcom-serveattachmentguid-247600ecc31811dcbef6cf8f36daa89da89d/original_screenshot03.jpg');&quot; alt=&quot;Click on the screenshot to see a larger one!&quot; width=&quot;40&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;application-data&quot;&gt;
&lt;a href=&quot;http://maemo.org/downloads/product/OS2008/sdlquake/&quot;&gt;SDL Quake&lt;/a&gt;&lt;br&gt;
&lt;div class=&quot;rating&quot;&gt;
&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;     7 votes    &lt;/div&gt;

&lt;/div&gt;
&lt;/li&gt;

&lt;div id=&quot;screenshotfull28f88e5ac31811dcbef6cf8f36daa89da89d&quot; class=&quot;screenshotfull&quot;&gt;&lt;/div&gt;
&lt;li&gt;&lt;div class=&quot;screenshot-thumbnail&quot;&gt;
&lt;img src=&quot;http://maemo.org/midcom-serveattachmentguid-4df9ac1430d911ddbd94cb7cced7cacecace/thumbnail_zapys-livejournal&quot; onclick=&quot;screenshotdetails('4df9ac1430d911ddbd94cb7cced7cacecace','http://maemo.org/midcom-serveattachmentguid-38617d7830d911ddbd94cb7cced7cacecace/original_zapys-livejournal');&quot; alt=&quot;Click on the screenshot to see a larger one!&quot; width=&quot;40&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;application-data&quot;&gt;
&lt;a href=&quot;http://maemo.org/downloads/product/OS2008/zapys/&quot;&gt;Zapys - Livejournal client&lt;/a&gt;&lt;br&gt;
&lt;div class=&quot;rating&quot;&gt;
&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;     5 votes    &lt;/div&gt;

&lt;/div&gt;
&lt;/li&gt;


&lt;div id=&quot;screenshotfull4df9ac1430d911ddbd94cb7cced7cacecace&quot; class=&quot;screenshotfull&quot;&gt;&lt;/div&gt;
&lt;li&gt;&lt;div class=&quot;screenshot-thumbnail&quot;&gt;
&lt;img src=&quot;http://maemo.org/midcom-serveattachmentguid-87f414040e2911dda28f61d0f93a6f2e6f2e/thumbnail_evince.png&quot; onclick=&quot;screenshotdetails('87f414040e2911dda28f61d0f93a6f2e6f2e','http://maemo.org/midcom-serveattachmentguid-8060bd640e2911dda28f61d0f93a6f2e6f2e/original_evince.png');&quot; alt=&quot;Click on the screenshot to see a larger one!&quot; width=&quot;40&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;application-data&quot;&gt;
&lt;a href=&quot;http://maemo.org/downloads/product/OS2008/evince/&quot;&gt;Evince Document Viewer&lt;/a&gt;&lt;br&gt;
&lt;div class=&quot;rating&quot;&gt;
&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/partial_star_75.gif&quot; alt=&quot;*&quot;&gt;     13 votes    &lt;/div&gt;

&lt;/div&gt;
&lt;/li&gt;


&lt;div id=&quot;screenshotfull87f414040e2911dda28f61d0f93a6f2e6f2e&quot; class=&quot;screenshotfull&quot;&gt;&lt;/div&gt;
&lt;li&gt;&lt;div class=&quot;screenshot-thumbnail&quot;&gt;
&lt;img src=&quot;http://maemo.org/midcom-serveattachmentguid-57a1c594d83711dcad88936c31e951c651c6/thumbnail_ukeyboard.png&quot; onclick=&quot;screenshotdetails('57a1c594d83711dcad88936c31e951c651c6','http://maemo.org/midcom-serveattachmentguid-49a2f0b2d83711dcad88936c31e951c651c6/original_ukeyboard.png');&quot; alt=&quot;Click on the screenshot to see a larger one!&quot; width=&quot;40&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;application-data&quot;&gt;
&lt;a href=&quot;http://maemo.org/downloads/product/OS2008/ukeyboard/&quot;&gt;Additional keyboard layouts&lt;/a&gt;&lt;br&gt;
&lt;div class=&quot;rating&quot;&gt;
&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/partial_star_75.gif&quot; alt=&quot;*&quot;&gt;     10 votes    &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;


&lt;div id=&quot;screenshotfull57a1c594d83711dcad88936c31e951c651c6&quot; class=&quot;screenshotfull&quot;&gt;&lt;/div&gt;
&lt;li&gt;&lt;div class=&quot;screenshot-thumbnail&quot;&gt;
&lt;img src=&quot;http://maemo.org/midcom-serveattachmentguid-1bd9f4b6911811dca20f7996f70bde68de68/thumbnail_scummvm-mi2-2.png&quot; onclick=&quot;screenshotdetails('1bd9f4b6911811dca20f7996f70bde68de68','http://maemo.org/midcom-serveattachmentguid-1803f2e2911811dca20f7996f70bde68de68/original_scummvm-mi2-2.png');&quot; alt=&quot;Click on the screenshot to see a larger one!&quot; width=&quot;40&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;application-data&quot;&gt;
&lt;a href=&quot;http://maemo.org/downloads/product/OS2008/scummvm/&quot;&gt;ScummVM&lt;/a&gt;&lt;br&gt;
&lt;div class=&quot;rating&quot;&gt;
&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/orange_star.gif&quot; alt=&quot;*&quot;&gt;&lt;img src=&quot;/midcom-static/style_maemo2007/partial_star_75.gif&quot; alt=&quot;*&quot;&gt;     15 votes    &lt;/div&gt;

&lt;/div&gt;
&lt;/li&gt;

&lt;/ul&gt;
&lt;/div&gt;
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>Talk:Source petition for example package</title>
    <id>2968</id>
    <revision>
      <id>22175</id>
      <timestamp>2009-11-08T21:40:34Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>[[Talk:Source petition for example package]] moved to [[Talk:Task:Source petition for example package]]: This is a Task</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Task:Source petition for example package]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Speed up web browsing</title>
    <id>2780</id>
    <revision>
      <id>20601</id>
      <timestamp>2009-10-20T08:01:05Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>New page: This content is a little vague, and a little too &quot;power user&quot; for my liking. There is an assumption that the user will know how to find out about &amp; set up a caching proxy, and the &quot;filteri...</comment>
      <text xml:space="preserve">This content is a little vague, and a little too &quot;power user&quot; for my liking. There is an assumption that the user will know how to find out about &amp; set up a caching proxy, and the &quot;filtering content&quot; page is itself very technical - the one &quot;simple&quot; solution (installing AdBlock Plus) is at the very end of the page.

Ideally, every article in the &quot;Basics&quot; section should give instructions to the user on how to solve their problem by either configuring their tablet &amp; its applications, or by installing a package. Anything beyond the scope of that is too complex for a new tablet user to be called &quot;Basic&quot;.

--[[User:dneary|Dave Neary]] 08:01, 20 October 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Swap on microSD</title>
    <id>5220</id>
    <revision>
      <id>48795</id>
      <timestamp>2012-07-22T17:06:02Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <text xml:space="preserve">[http://talk.maemo.org/showthread.php?t=84296 SDCard Partition Methods Thread]
= Talk on Dual SD Swap Method =
See from post 67 - sixwheeledbeast

== Swap Switching Scripts ==

=== Latest Version - sixwheeledbeast === 
Now uses &quot;EOF gainroot&quot; script, although this causes multiple banner messages in the ejectsd script, not sure how to fix.
The first switching script works perfectly and fixes the multiple swapping due to a reorder.

swapswitch.sh

&lt;pre&gt;

#!/bin/sh

#Made by sixwheeledbeast, Estel, Malkavian, peterleinchen and vi_

# Setup swap names for script

## Swap 0 - Backup internal swap location
swap0=/dev/mmcblk0p3
echo $swap0

## Swap 1 - First Main Swap Location
swap1=/dev/mmcblk1p2
echo $swap1

## Swap 2 - Second Main Swap Location
swap2=/dev/mmcblk1p3
echo $swap2

# Go root if not
if [ `id -u` != 0 ] ; then
    exec  | sudo gainroot &lt;&lt;EOF
exec sh $0 $*
EOF
          exit $?
fi

# Setup notification banner
banner(){
o=org
f=freedesktop
n=Notifications
run-standalone.sh dbus-send --type=method_call \
--dest=$o.$f.$n /$o/$f/$n $o.$f.$n.SystemNoteInfoprint string:&quot;$1&quot;
}

# Get and Print Current Swap Pre
swap=`cat /proc/swaps | awk '/dev/ {print $1}'`
echo $swap
banner &quot;$swap&quot;

sleep 5

#Logic
if [ &quot;$swap&quot; = &quot;$swap1&quot; ] ;
then
   nice -20 swapon $swap2
   nice -20 swapoff $swap1
elif [ &quot;$swap&quot; = &quot;$swap2&quot; ] ;
then
   nice -20 swapon $swap1
   nice -20 swapoff $swap2
elif [ &quot;$swap&quot; = &quot;$swap0&quot; ] ;
then
   nice -20 swapon $swap1
   nice -20 swapoff $swap0
sleep 5
# Get and Print Current Swap Post
swappost=`cat /proc/swaps | awk '/dev/ {print $1}'`
banner &quot;$swappost&quot; &amp;&amp; exit 1
else
   banner &quot;Swap Switch Failed&quot; &amp;&amp; exit 1
fi
#End of Logic
&lt;/pre&gt;

swapswitchejectsd.sh

&lt;pre&gt;

#!/bin/sh

##Made by sixwheeledbeast, Estel, Malkavian, peterleinchen and vi_

# Setup swap names for script

## Swap 0 - Backup internal swap location
swap0=/dev/mmcblk0p3

## Swap 1 - First Main Swap Location
swap1=/dev/mmcblk1p2

## Swap 2 - Second Main Swap Location
swap2=/dev/mmcblk1p3

# Setup notification banner
banner(){
o=org
f=freedesktop
n=Notifications
run-standalone.sh dbus-send --type=method_call \
--dest=$o.$f.$n /$o/$f/$n $o.$f.$n.SystemNoteInfoprint string:&quot;$1&quot;
}

# Get and Print Current Swap Pre
preswap=`cat /proc/swaps | awk '/dev/ {print $1}'`
banner &quot;$preswap&quot;
sleep 5

#Logic
if [ &quot;$preswap&quot; = &quot;$swap0&quot; ];
then
   banner &quot;Swap on Internal already&quot; &amp;&amp; exit 1
elif [ &quot;$preswap&quot; = &quot;$swap1&quot; ];
then
# Go root if not

if [ `id -u` != 0 ] ; then
          exec | sudo gainroot &lt;&lt;EOF
exec sh $0 $*
EOF
         exit $?
fi
   nice -20 swapon $swap0
   nice -20 swapoff $swap1
sleep 3
swappostswitchone=`cat /proc/swaps | awk '/dev/ {print $1}'`
banner &quot;$swappostswitchone&quot; 
sleep 2
banner &quot;Safe to remove back cover&quot; &amp;&amp; exit 
elif [ &quot;$preswap&quot; = &quot;$swap2&quot; ];
then

# Go root if not

if [ `id -u` != 0 ] ; then
          exec | sudo gainroot &lt;&lt;EOF
exec sh $0 $*
EOF
         exit $?
fi
   nice -20 swapon $swap0
   nice -20 swapoff $swap2
swappostswitchtwo=`cat /proc/swaps | awk '/dev/ {print $1}'`
banner &quot;$swappostswitchtwo&quot; 
sleep 2
banner &quot;Safe to remove back cover&quot; &amp;&amp; exit 
else
   banner &quot;Swap Switch Failed&quot; 
 sleep 2
   banner &quot;DO NOT REMOVE BACK COVER - Please check swaps manually via terminal&quot; &amp;&amp; exit 2
fi

&lt;/pre&gt;

=== Version 1 - sixwheeledbeast === 

swapswitch.sh
&lt;pre&gt;

#!/bin/sh

# Made by sixwheeledbeast, Malkavian, Estel and vi_

# Setup swap names for script

## Swap 0 - Backup internal swap location
swap0=/dev/mmcblk0p3
echo $swap0

## Swap 1 - First Main Swap Location
swap1=/dev/mmcblk1p2
echo $swap1

## Swap 2 - Second Main Swap Location
swap2=/dev/mmcblk1p3
echo $swap2

# Get Current Swap
swap=`cat /proc/swaps | awk '/dev/ {print $1}'`
echo $swap 

# Go root
s=sudo
echo $sudo

# Setup notification banner
banner(){
o=org
f=freedesktop
n=Notifications
run-standalone.sh dbus-send --type=method_call \
--dest=$o.$f.$n /$o/$f/$n $o.$f.$n.SystemNoteInfoprint string:&quot;$1&quot;
}

#Print Current Swap Pre
banner &quot;$swap&quot;

sleep 5

#Logic
if [ &quot;$swap&quot; = &quot;$swap1&quot; ] ;
then
   nice -20 $s swapon $swap2
   nice -20 $s swapoff $swap1
elif [ &quot;$swap&quot; = &quot;$swap2&quot; ] ;
then
   nice -20 $s swapon $swap1
   nice -20 $s swapoff $swap2
elif [ &quot;$swap&quot; = &quot;$swap0&quot; ] ;
then
   nice -20 $s swapon $swap1
   nice -20 $s swapoff $swap0
else
   banner &quot;Swap Switch Failed&quot;
fi

sleep 5

# Get Current Swap
swappost=`cat /proc/swaps | awk '/dev/ {print $1}'`
echo $swappost 

#Print Current Swap Post
banner &quot;$swappost&quot;

&lt;/pre&gt;

swapswitchejectsd.sh
&lt;pre&gt;

#!/bin/sh

# Made by sixwheeledbeast, Malkavian, Estel and vi_

# Setup swap names for script

## Swap 0 - Backup internal swap location
swap0=/dev/mmcblk0p3

## Swap 1 - First Main Swap Location
swap1=/dev/mmcblk1p2

## Swap 2 - Second Main Swap Location
swap2=/dev/mmcblk1p3

# Get Current Swap
swap=`cat /proc/swaps | awk '/dev/ {print $1}'`
echo $swap 

# Go root
s=sudo
echo $sudo

# Setup notification banner
banner(){
o=org
f=freedesktop
n=Notifications
run-standalone.sh dbus-send --type=method_call \
--dest=$o.$f.$n /$o/$f/$n $o.$f.$n.SystemNoteInfoprint string:&quot;$1&quot;
}

#Print Current Swap Pre
banner &quot;$swap&quot;

sleep 5

#Logic
if [ &quot;$swap&quot; = &quot;$swap0&quot; ]
then
   banner &quot;Swap on Internal already!&quot;
elif [ &quot;$swap&quot; = &quot;$swap1&quot; ]
then
   nice -20 $s swapon $swap0
   nice -20 $s swapoff $swap1
elif [ &quot;$swap&quot; = &quot;$swap2&quot; ]
then
   nice -20 $s swapon $swap0
   nice -20 $s swapoff $swap2
else
   banner &quot;Swap Switch Failed&quot;
fi

sleep 5

# Get Current Swap
swappost=`cat /proc/swaps | awk '/dev/ {print $1}'`
echo $swappost 

if [ &quot;$swappost&quot; = &quot;$swap0&quot; ]
then
      banner &quot;Safe to remove back cover&quot;
else
sleep 2
      banner &quot;ERROR! DO NOT REMOVE BACK COVER&quot;
sleep 3
#Print Current Swap Post
       banner &quot;$swappost&quot;
fi

&lt;/pre&gt;

=== Version 1 - Malkavian ===

swapswitch.sh
&lt;pre&gt;
#!/bin/sh

# Made by Sixwheeledbeast and Malkavian

# Setup swap names for script
## Swap 0 - Backup internal swap location
swap0=/dev/mmcblk0p3
## Swap 1 - First Main Swap Location
swap1=/dev/mmcblk1p2
## Swap 2 - Second Main Swap Location
swap2=/dev/mmcblk1p3


# Setup notification banner
banner(){
o=org
f=freedesktop
n=Notifications
run-standalone.sh dbus-send --type=method_call \
--dest=$o.$f.$n /$o/$f/$n $o.$f.$n.SystemNoteInfoprint string:&quot;$1&quot;
}

# Get Current Swap
old=`cat /proc/swaps | awk '/dev/ {print $1}'`

#Logic
if [ &quot;$old&quot; = &quot;$swap0&quot; ]
  then if [ $RANDOM -lt 16384 ] # RANDOM gives a value from 0 to 32787. We try 50% of probabilities
    then new=&quot;$swap1&quot;
    else new=&quot;$swap2&quot;
  fi
elif [ &quot;$old&quot; = &quot;$swap1&quot; ]
  then new=&quot;$swap2&quot;
elif [ &quot;$old&quot; = &quot;$swap2&quot; ]
  then new=&quot;$swap1&quot;
else banner &quot;None of the configured swaps found active, revise the configuration. Current active swap (if any): $old&quot;
     exit 1
fi

swapon $new || \
  ( banner &quot;Ops, something failed, cannot swapon $new (so swapoff of $old neither done)&quot; &amp;&amp; exit 1 )
nice -20 swapoff $old || \
  ( banner &quot;Ops, something failed, swapon of $new done but cannot swapoff $old&quot; &amp;&amp; exit 1 )
banner &quot;OK: Swap switched from $old to $new&quot;

&lt;/pre&gt;

swapscriptejectsd.sh

&lt;pre&gt;
#!/bin/sh

# Made by Sixwheeledbeast and Malkavian

# Setup swap names for script
## Swap 0 - Backup internal swap location
swap0=/dev/mmcblk0p3
## Swap 1 - First Main Swap Location
swap1=/dev/mmcblk1p2
## Swap 2 - Second Main Swap Location
swap2=/dev/mmcblk1p3


# Setup notification banner
banner(){
o=org
f=freedesktop
n=Notifications
run-standalone.sh dbus-send --type=method_call \
--dest=$o.$f.$n /$o/$f/$n $o.$f.$n.SystemNoteInfoprint string:&quot;$1&quot;
}

# Get Current Swap
old=`cat /proc/swaps | awk '/dev/ {print $1}'`

#Logic
if [ &quot;$old&quot; = &quot;$swap0&quot; ]
  then banner &quot;Swap on Internal already!&quot; 
       exit 0
  else swapon $swap0 || \
         ( banner &quot;Ops, something failed, cannot swapon $swap0 (so swapoff of $old neither done)&quot; &amp;&amp; exit 1 )
       nice -20 swapoff $old || \
         ( banner &quot;Ops, something failed, swapon of $swap0 done but cannot swapoff $old&quot; &amp;&amp; exit 1 )
fi
&lt;/pre&gt;

== Information on Starting Swap on SD at bootup ==

Upstart format - new file in event.d

etc/event.d/relocateswap
&lt;pre&gt;
description &quot;Micro SD Swap Location on Startup&quot;
author &quot;sixwheeledbeast&quot;

console output

start on started rcS-late

script
        swapon /dev/mmcblk1p2        
        sleep 10
        swapoff /dev/mmcblk0p3
end script

&lt;/pre&gt;

==Original script from main page==
This script can be run via [[Terminal]] or using an application like [[Queen BeeCon Widget]].

It is for refreshing swap if main swap space is on Micro SD Partition 2.

 run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteDialog string:&quot;Start Swap Refresh&quot; uint32:0 string:&quot;OK&quot;; sudo swapon /dev/mmcblk0p3 ; sudo swapoff /dev/mmcblk1p2 ; run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:&quot;Swapping Back to Main Swap on SD...&quot; ; sudo swapon /dev/mmcblk1p2 ; sudo swapoff /dev/mmcblk0p3 ; run-standalone.sh dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteDialog string:&quot;Swap Refresh Complete&quot; uint32:0 string:&quot;OK&quot;

This script can be modified to suit different swap locations as required.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Swappolube</title>
    <id>4520</id>
    <revision>
      <id>39592</id>
      <timestamp>2010-10-18T15:29:00Z</timestamp>
      <contributor>
        <ip>192.100.124.218</ip>
      </contributor>
      <comment>New page: &lt;code&gt;echo &quot;1&quot; &gt; /proc/sys/vm/oom_kill_allocating_task&lt;/code&gt;  Doesn't this mean that OOM-badness heuristics are ignored and things like X, D-BUS can get killed?  If yes, that means you've...</comment>
      <text xml:space="preserve">&lt;code&gt;echo &quot;1&quot; &gt; /proc/sys/vm/oom_kill_allocating_task&lt;/code&gt;

Doesn't this mean that OOM-badness heuristics are ignored and things like X, D-BUS can get killed?  If yes, that means you've just radically increased the likelyhood of device reboots...</text>
    </revision>
  </page>
  <page>
    <title>Talk:Sync</title>
    <id>2885</id>
    <revision>
      <id>21453</id>
      <timestamp>2009-11-01T12:08:28Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <comment>New page: should the 770 be removed because only info below it is &quot;???&quot; ? Ossipena</comment>
      <text xml:space="preserve">should the 770 be removed because only info below it is &quot;???&quot; ? Ossipena</text>
    </revision>
  </page>
  <page>
    <title>Talk:Tablet death</title>
    <id>1349</id>
    <revision>
      <id>8931</id>
      <timestamp>2008-11-23T16:04:10Z</timestamp>
      <contributor>
        <username>fms</username>
        <id>35</id>
      </contributor>
      <text xml:space="preserve">what!!!! rst, this scenario is as realistic as the others --[[User:lcuk|lcuk]] 15:36, 23 November 2008 (UTC)

oh I can come up with a lot of those! but does it occur often on iTT? =) --[[User:fms|fms]]

== Internet Tablet Will Die Because a flying zombie attack will take out all the wind farms! ==
Under normal circumstances zombies do not fly, but sometime in the future this limitation will be removed.
when it does they will interfere with our clean energy wind farms and knock out the whole power-grid around the world.
Of course, this will be bad for all kinds of electronic devices, but would also mean your tablets' battery would die.
*this is only hypothetical, but is as likely as the other reasons.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:100Days</title>
    <id>83</id>
    <revision>
      <id>50432</id>
      <timestamp>2012-10-25T17:13:06Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Task:100Days]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">== Next Steps ==
It looks like the 100 Days brainstorm has reached its conclusion. The pre-agreed ideas will be discussed next Tuesday in the maemo.org June sprint meeting. We might add more tasks coming from the current backlog. The ideas ''still under discussion'' should be probably moved to the 2010 Agenda for further brainstorm.--[[User:qgil|qgil]] 20:09, 8 June 2008 (UTC)

== Scope of the 100 Days ==


== How can I help? ==

How can I help in this process, as one of the people responsible of the maemo.org planning at Nokia? I could help organizing the content, identifying what is out of scope or what more realistically falls in the Agenda 2010. Or I could just shut up and let you work.  :) fyi, in the meantime I'm already working on the maemo.org short and mid term plans internally at Nokia. --[[User:qgil|qgil]] 19:05, 1 June 2008 (UTC)
:I don't think a little direction will repress things too much at this point, and I definitely thing it will help stimulate and focus the brainstorm. Not only because of the clearer definition of purpose, scope and direction, but also from the interest a more visible Nokia involvement would make. The end result, of course, being a much more productive session. --[[User:generalantilles|generalantilles]] 20:15, 1 June 2008 (UTC)
::I will start leaving signed comments, not to touch the original text. Then you decide what to do with it.--[[User:qgil|qgil]] 06:20, 2 June 2008 (UTC)

== Russian language section ==
Is it possible to create the Russian-language section of wiki ? We would like to move here wiki.internet-tablet.com materials and translations. --[[User:dik|dik]] 22:30, 30 June 2008 (UTC)
::Interesting, but out of scope in the [[100Days]] work. I recommend you to ask at [[Talk:Maemowiki_Action_Group]].--[[User:qgil|qgil]] 23:01, 30 June 2008 (UTC)

== Clear and useful planning pages ==

The 100 days page is getting longer. I think at the end what we all want to have is a list of clear actions, being most/all of them links to pages where each action is discussed and planned in detail. Proposal to get there:
* Create pages for those topics that already got interest and meat enough. Move there all their related ideas and comments. This includes the content in this discussion lisrt, since having it hidden here or even duplicated is not going to help.
* Put at the top the items that are pre-agreed: no-brainer stuff, items with lots of community support, items already acceopted by Nokia and/or the maemo.org guys.
* New good ideas are added in the bottom and end up either in the top after being pre-agreed, or moved to other existing pages.
--[[User:qgil|qgil]] 08:09, 2 June 2008 (UTC)

= Proposals out of scope =
Archiving here proposals that don't fit in the 100 Days exercise. Please relocate somewhere if the ideas are good.

== Update developer libraries ==
* gcc-4.x, glib, powervr, it's important to give developers much more time to play with newer tools than short before a major upgrade takes place (of course with disclaimer that nothing is guaranteed to be shipped in a certain way)
* Update the vmware appliance with sb2 and python2.5 setted. And more publicity on the vmware appliance, as there is already one on garage, but many don't know it.
:''This is out of scope in this maemo.org exercise. About giving more publicity to https://garage.maemo.org/projects/maemo-sdk/ and http://maemo-sdk.garage.maemo.org/ - it's currently an alpha and the developers don't feel like advertising it much more. But anybody can follow the Garage project and, well, nobody is stopping you from advertise it more.  :) --[[User:qgil|qgil]] 07:53, 2 June 2008 (UTC)''
::''Alpha status doesn't mean that it is unusable, I use this VM regularly and it works very well. I really think this one should be promoted on maemo.org. --[[User:xfade|xfade]] 13:55, 2 June 2008 (UTC)''
::: ''Official x86_64 support will be great or at least i386 on top of x86_64. Other distributions too - some of them only need an alien. [[User:bundyo|bundyo]] 20:47, 2 June 2008 (UTC)''

== A few suggestions for developers ==
A few more suggestions for developers - the bottom rungs of the ladder.

1. Validate and verify the tools installation for the current shipping version, particularly the HOWTO.  I follow the instructions but nothing builds.  At least until I do an apt-get dist-upgrade, update, upgrade or something similar, then apt-get the -dev versions of a half dozen things, none of which is mentioned.  Which brings me to:

2. Insure the hello-world will actually build on a system cleanly installed following the exact instructions from step 1. (I had to edit things in mine) and form a deb which will work on a tablet - both install and remove.  Also split out stand-alone versions to use as templates (I can't get a statusbar only version to come up as everything seems to be interdependent).  Maemopad is a great write template, but a paint template (slightly more than trivial graphic demo) would be nice.

Hildon is not something I've dealt with, and has its own quirks along with GTK.  They aren't bad, but I could spend a week just learning the ins and outs.  But there aren't very many examples I can just change the icons and add in a chunk of code to do a simple task as a starting point, at least not without doing a lot of searching (e.g. some statusbar clocks are stand-alone).

3. Simplify the autogen/automake/autoconf stuff.  Most of this will only be run under fixed releases, so the checking for some specific version of 20 libraries is redundant, and makes the build horribly complicated.  Either in scratchbox things are there or not (and see #1 above if they are not!  I also have to keep doing apt-gets since I need -dev of everything and often don't have them).  Do I really need libtool for a trivial statusbar app?

:Autoconf is actually quite important for code portability, not only across maemo releases (1.0, 1.1, mistral, scirocco, bora, chinook, diablo and so on) but also (and more importantly) across platforms.  There is a lot of cross-pollination happening right now, and that's a very good thing IMHO. It will make your life much easier when you decide to port your application to (for example) Ubuntu Mobile, Openmoko or &quot;desktop&quot; GNOME, and it also makes porting stuff from other platforms to maemo simpler.
: Having said that, it is a bit of a learning curve, but perhaps what's needed is more entry-level documentation/tutorials (chapter 5 is a very good start at that) and tools to simplify bootstrapping (like the anjuta plugin).
:: Autoconf is not necessary to write portable software, while making your makefiles unreadable. Therefore, its use has to be made optional. 

The goal is that anyone should be able to do a working deb for a trivial off-the-cuff application or status bar, home, or control panel applet in 5 minutes by doing a global substitute (or perhaps changing a few lines of the form: #define APPNAME HILDON_HELLO_WORLD, #define AppName HildonHelloWorld, #define appname hildon_hello_world, etc.) and adding a few lines of code and scaled icons.

And for &quot;garage&quot;, there should be one centralized repository, so there would be a &quot;garage&quot; parallel to &quot;extras&quot; with all betas and releases not higher up in the chain.  Right now I've got dozens of archives and sources, so when I do a restore it becomes a nightmare getting all the applications back and it makes application manager slower having to go through dozens of archives.  It doesn't help having a &quot;garage page&quot; if it is not much better than hosting offsite.  But then for all these add-ons I could just do apt-get source and/or apt-get install.  Maybe this is what &quot;extras&quot; is for, but it seems to never work or have anything. —Preceding unsigned comment added by [[User:70.209.165.167|70.209.165.167]] 19:32, 29 May 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:2010 Agenda</title>
    <id>86</id>
    <revision>
      <id>22160</id>
      <timestamp>2009-11-08T21:35:36Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <minor/>
      <comment>[[Talk:2010 Agenda]] moved to [[Talk:Task:2010 Agenda]]: this is a Task</comment>
      <text xml:space="preserve">== Continuing the 2010 brainstorm ==
While the 100 Days brainstorm is almost closed and in its way for planning and implementation, we can continue brainstorming now for the mid term agenda. The 100 Days discussion was imho very good and we have got a concrete agenda with many subpages that now will need to get into details and execution. We should do something similar now with the Agenda 2010. Deadline? As you wish, latest in 100 days in order to present the plan in OSiM &amp; the maemo summit.--[[User:qgil|qgil]] 20:14, 8 June 2008 (UTC)
:This is not moving forward alone. Proposing to close the 2010 Agenda during the [[100Days/Sprint2|Sprint 2]].--[[User:qgil|qgil]] 20:18, 28 June 2008 (UTC)

== Out of scope ==

=== End-user software wishlist ===
{{main|Software wish-list}}
Software requests are really '''out-of-scope''' and ''not relevant'' to this brainstorming session. Please see the main article.

'''End-user software wishlist''' is really out of scope here, for the reasons explained in the 100 Days discussion page. Even asking for specific developer toos that are not web server based are not very in the scope of this maemo.org exercise.--[[User:qgil|qgil]] 13:34, 30 May 2008 (UTC)
:So what '''is''' the scope for this long-term vision? How the community would like the *.maemo.org websites to be? What about the process that maemo the OS has been devloped (largely be Nokia)? A bit more explanation on '''your''' hopes on what this will achieve would be a useful steer, I think. --[[User:jaffa|jaffa]] 21:40, 30 May 2008 (UTC)
::Alright, what about this. maemo.org becomes &quot;the best-in-class community for innovation on mobile devices running Linux&quot;. The maemo.org project is '''really''' community driven and in fact freedom to innovate is an essential part of its success. Nokia sponsors the project and helps in the parts where is needed, but doesn't stay in the way. What is on-topic in this brainstorm: the '''community''' objectives, dynamics, services, tools, etc, available in maemo.org - and what Nokia should do to leverage, empower, support them. To support you.--[[User:qgil|qgil]] 18:54, 1 June 2008 (UTC)

=== IDE ===
I'm maybe asking for too much but an IDE with 
* syntax highlighting and code completion for the major used languages (C, C++, Python, maybe Vala, along with their Hildon/Osso integration)
* scratchbox building 
* directly build deb from IDE and post it to extras/devel
* run testing on device through SSH
will '''greatly''' help developers. [[User:bundyo|bundyo]] 20:50, 29 May 2008 (UTC)

: Something like [http://maemo.org/news/announcements/view/1204012983.html Eclipse] and/or [http://pluthon.garage.maemo.org/ PluThon]? [[User:generalantilles|generalantilles]] 21:05, 29 May 2008 (UTC)
:: I'm aware of all the Eclipse integrations, however i was talking more in the lines of a smaller/native IDE like Geany/mEdit. [[User:bundyo|bundyo]] 21:19, 29 May 2008 (UTC)
:: Vala on Monodevelop with a standalone emulator (i.e. could we avoid scratchbox?) would be a dream. --[[User:boxofsnoo|boxofsnoo]] 15:18, 30 May 2008 (UTC)

=== Office ===

IMHO; I think that the idea of an office suite Is not something that belongs on an IT better support for google docs or something of that nature would be a better idea, you don't have to worry about different versions or storage space on the device... Thoughts? —Preceding unsigned comment added by [[User:24.4.115.113|24.4.115.113]] 23:23, 29 May 2008 (UTC)

:Please consider offline use!  I don't think gDocs uses the screen space very well, and it's too slow for quick edits.  The ITs need to walk the line between feature bloat and speed/accessibility. —Preceding unsigned comment added by [[User:boxofsnoo|boxofsnoo]] 11:20, 30 May 2008 (UTC)

== Marketing analysis ==
=== Target groups analysis  ===

Nice summary by Peter. Here are some analysis tables to try which might to help identify concrete tasks to get the best of people, relationships and networks (of course the tables are likely not complete) --[[User:Framstag|Framstag]].

So who are the people were are interested in to join the group? Who are the people that might be interested in the device?

* Developer
** Wants to reuse existing infrastructure =&gt; Try to better integrate with portals like www.sf.net and similar. Perhaps in the end www.mameo.org is just an anaggregator for other sides?
** Documentation, Examples, Development enviroment
** Looking for co-developers, loking for porters =&gt; resource market 
** Subgroup &quot;Gtk/Gnome developer&quot;
*** Wants to reduce porting =&gt; Identical APIs
** Subgroup &quot;Foreign toolkit developer&quot;
*** Wants to better integrate their application into the platform =&gt; Have two layer APIs, one that does not depend on Gtk libraries (or at least Gtk Event loop) and one that builds on top of that layer using Gtk/Gnome primitives.
** Subgroup &quot;Game developer&quot;
*** Wants more GUI power
*** Wants distribution channels
*** Wants (hardware) basics for new ideas and alternative games ideas
** Subgroup &quot;Open Source activists&quot;
*** Have everything open
** Subgroup &quot;Commercial developers&quot;
*** Require comerical support
* Software Porters
** Wants to reuse existing aproaches and solutions for the big distributions
** Would like to reduce changes to application, because developers is already prepared (screen resolution, network specifics) =&gt; push extended APIs upstream. Make thinks easier.
* Customizer (people reselling a hardware/software variant of the device, OS, GUI) 
** Wants the distribution modifyable from ground up =&gt; Make things available, more open, document more processes and tools
* Add-on Hardware suppliers
** Wants hardward documentation
** Wants more interfaces
* User
** Private person with no special interest (likely EMail, browser, calendar, adressbook, chat and some small games)
** Business User (Needs PIM inkl. Synchronisation (important!) and Office, MS compatibility is a must)
** Surfer (Uses the Device as primary or secondary browser, possibly also for EMail)
** Linux Advocat (needs ports of all the common Linux Tools)

=== Software group analysis ===

* Desktop ports
* Mobility specific software (GPS, Chat, Syncing)
* Games
* Multimedia

=== Future trends analysis ===

So where is the market going?

* Memory is cheap
* Ergonomics
* Mobility
* Synchronisation
* Convergence
* Education - http://wiki.sugarlabs.org, Tutorials and other educational tools built-in, such as complete man pages

==Unsure==
These are taken from the main page and perhaps go back there. They kind of mix software development with community activities.

=== Standards ===
The development for mobile devices forces the developers today, to focus on one target platform with one existing device. To give maemo a future, it will be essential to apply to existing standards, as well as work with other mobile projects to create new standards, wherever possible. Beyond the principal commitment to the GNOME Mobile stack and freedesktop.org standards, we have to formulate and support APIs and services for accessing and controlling the system functionality. Maybe a standardized DBus API currently rising at [http://www.freesmartphone.org FreeSmartphone.org] would the the right way.

=== Development Framework ===
* Better GPS resources. (GeoClue???)
* Development Tools and Utilities for Linux, OS X and Windows.
** GUI development package (reduce learning curve)
** Better feedback on testing of packages 
** make simple system for ideas to be tried 
** Better emulator on PC. Comes with most default applications of NIT and is based on a newer QEmu (at least one that supports Virtualization Extensions).
* Better modern native languages support - like Vala and D. &amp;&amp; how to build a hello world app in C++/Vala in 10 minute (no more!)
:''Let's take what is relevant of these points for the maemo.org community and online infrastructure. For instance &quot;Better feedback on testing of packages&quot; and &quot;make simple system for ideas to be tried&quot;.--[[User:qgil|qgil]] 09:05, 2 June 2008 (UTC)''

=== Ship high level building blocks ===
* Think of media server, VoIP, contact lists, camera, GPS localization. Currently developers only have the low level API's, while mostly they just want a widget that displays the mentioned data and listen to user interaction signal or device signals. This also makes these functionalities look the same in all applications using them
:''This is out of scope in the 2010 Agenda call. API and developer offering in general will improve and we might organize similar a similar brainstorming for that.--[[User:qgil|qgil]] 09:05, 2 June 2008 (UTC)''

=== Eliminate porting and allow synchronisation with upstream distributions ===

A massive challenge and limiting factor for maemo is the lack of software that has been ported.  A great goal for 2010 would be to work out how to allow direct use of repositories from an upstream distribution (e.g. Debian testing armel) so packages do not have to be ported at all.  Initially this might only be for command line utilities, developer utilities, libraries, etc -- leaving GUI applications for a later phase.  There would still be a need for some ported packages, and some maemo-specific repositories to contain them, but the &quot;long tail&quot; of less frequently used packages would be made available.

Once this has been achieved, and a large number of packages are available, maemo should be able to be updated from the repositories chosen by the user: some users may choose to keep in sync with Debian stable, others with testing and some even with unstable.  This means that all packages (including system core packages like libc) need to be able to be updated (possibly with disclaimers).  Nokia could choose to create Nokia-specific versions of some core libraries if they want to avoid risk of library changes.

A further stage (probably beyond 2010) would be to work out how to allow kernel upgrades, without necessarily having to sacrifice the closed-source drivers for key hardware!  This could, for example, involve having a (limited) set of kernels available, with key closed source components rebuilt for them by Nokia, but not tied to ITOS release schedules.

The goal is to make the platform as useful as Debian is today, at least for those who do not insist on 100% openness.

== Marketing the community efforts to consumers ==
The maemo community is challenged by Nokia's need to succeed on the market. Not a unique position, but somehow strange for an open project. Right now IMHO, the output is by far not visible enough to average end users, which in turn means few users are likely to become active community members in the future. &quot;Selling&quot; the achievements of the community is crucial: End users need to know the potential of their devices and need to become a little curious so that some of them end up being active community members.
Existing problems are known: software distribution, localisation of maemo.org, communication, …

=== The one site for end users ===
To address those problems, I suggest to basically leave things as they at maemo.org but use a totally different site to showcase to first time users what the community achieves. This could well be [http://tableteer.nokia.com Tableteer] (which would have to be improved drastically, though!), meaning that Nokia would have to play an active role and there's little room for community input. It could also be (preferred) a Nokia funded community page or a sub-project of maemo.org, provided that Nokia really directs users there. 
The point is to have it
* localised (the way we treat non English-speaking customers is incredibly bad ATM)
* feature selected downloads with whole articles
* offer short and superficial &quot;How-To&quot;- and &quot;Did You Know?&quot;-style articles and tablet-optimised videos, always including &quot;Where to find more software&quot;
* syndicate everything from the high-quality extras-repository in a list with screenshots, localised descriptions etc.
* link to further community resources, preferably those in the language currently requested by the user agent if available
In short: It should be friendly, understandable, deliberately incomplete, offer only the very best the community can give at any time. Above all, it should make users want more and make users want to know more.
This should help take the strain from maemo.org about localisation, how to present software etc. - maemo.org can then safely focus on developers and very advanced users.
:''Yes, all true. As you say this is homework for Nokia and it should be out of maemo.org in order to guarantee community independence and freedom to do things (even wrong or broken things) in this context. There have been some steps in the consumer marketing directions i.e. Tableteer or http://nokia.com/os2008 . More needs to be done and the community aspect of maemo is one of the things that should be stressed as a unique offer for end users beyond the device they bought and the software that came with it. This task is already in our plans, thank you for your input on that.--[[User:qgil|qgil]] 09:11, 4 June 2008 (UTC)
::''Good to hear it is on the agenda! Pls. just reconsider the matter-of-factly &quot;this is homework for Nokia&quot;-part. It can be, yes, but so far, they didn't come up with very useful solutions. After 3 years (or five, talking about 2010) it could be time for the community to step forward and present itself better. -- [[User:ossi|ossi]] 11:20, 4 June 2008 (UTC)
:::''FYI, Internet Tablet Talk is launching a new sister site ([http://www.tabletscene.com/ Tablet Scene])catering only to the new users of Internet Tablets / Maemo devices. Technical talk (eg. x-term commands) will be discouraged so new users will feel more welcome. Newbies then graduate to Internet Tablet Talk to talk about advanced topics. Another site coming is a separate software only site which links to maemo.org. With regards to just being 'one site', well, the plan is to link the sites together. --[[User:rsuplido|Reggie]] 00:38, 2 August 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:3rd party bug tracking in bugs.maemo.org</title>
    <id>825</id>
    <revision>
      <id>5303</id>
      <timestamp>2008-07-24T11:10:12Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Task:Garage bug tracking in Bugzilla]] moved to [[Talk:Task:3rd party bug tracking in bugs.maemo.org]]: To be precise</comment>
      <text xml:space="preserve">== &quot;Community&quot; instead of &quot;Garage&quot; + Website ==

Now there is a &quot;Garage&quot; item in the Classification at bugs.maemo.org. Proposing to rename it to &quot;Community&quot; and adding there the Website product. Or have &quot;maemo.org&quot; as a separate entry in the classification, since it has and will have less and less to do with the official software offering by Nokia.--[[User:qgil|qgil]] 11:11, 19 July 2008 (UTC)
:In fact, after going throough the bugs in Website it is clear that we need to make an own product for Documentation (the official, maintained by Nokia) and put it inside &quot;Maemo Software&quot;. The rest of Website can go then under &quot;Community&quot;.--[[User:qgil|qgil]] 14:58, 19 July 2008 (UTC)
::Yes, timeless and I were discussing this, we were thinking something along the lines of Maemo Software, Nokia, Garage, Website. Part of the problem with lumping Website in with Community is that it will be increasingly difficult to get to the Website products in the Community classification as the number of Garage projects tracking bugs in Bugzilla increases. Personally, I think it's a good idea to separate the relatively-less-important Garage projects from the more important Website stuff. —[[User:generalantilles|GeneralAntilles]] 20:20, 19 July 2008 (UTC)

== Bug tracking future plan ==
''Moved from [[2010 Agenda]]''

* It's unclear where to report problems about packages found in the application catalog.  A single bug tracker is needed, or at least a catalog that would redirect the user to the appropriate tracker from a common start page.  Or we could set up a &quot;maemo&quot; distribution on launchpad.net, which would let us integrate with the bug trackers of individual packages.
:''Nokia is open to discuss any possibility of integration of maemo.org with third parties i.e. ITt and also using any external service i.e. launchpad.net. We can commit to overall plans for the 100 Days exercise but not on execution. Having a better and common understabnding of how this steps would fall in the 2010 Agenda would definitely help to see what are the right first steps.--[[User:qgil|qgil]] 07:45, 2 June 2008 (UTC)''</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Brainstorm Java</title>
    <id>2788</id>
    <revision>
      <id>33639</id>
      <timestamp>2010-04-30T01:12:30Z</timestamp>
      <contributor>
        <username>hleinone</username>
        <id>2675</id>
      </contributor>
      <text xml:space="preserve">Just in case, note that http://wiki.maemo.org/Java also exists. A merge? --[[User:qgil|qgil]] 08:17, 21 October 2009 (UTC)

Yeah I started both, but one (Task:Brainstorm_Java) will be deleted soon because that was temporary entry to allow collaboration before putting on Brainstorm. --[[User:allnameswereout|allnameswereout]] 03:33, 22 October 2009 (UTC)

Few comments on the article. First of all there seems to be no real future for JavaMe. So I would count that out especially from the high-end devices like the ones that run Maemo. So the choice is more or less between Dalvik or an SE implementation. By the way it's unfair to call Dalvik &quot;Google's&quot; since Google has only contributed into it as part of developing their Android platform.
--[[User:hleinone|hleinone]] 01:12, 30 April 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Brainstorming new features</title>
    <id>900</id>
    <revision>
      <id>5812</id>
      <timestamp>2008-07-28T11:43:39Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <minor/>
      <comment>/* uservoice.com */ Wasn't logged in</comment>
      <text xml:space="preserve">== IdeaStorm ==
''Moved from [[2010 Agenda]]''
* As suggested [http://geekpenguin.blogspot.com/2008/04/bright-idea.html here] and [http://www.internettablettalk.com/forums/showthread.php?t=19556 here], we could set up an IdeaStorm for Maemo to cover:
** Software ideas larger in scale than Bugzilla enhancement requests, in particular, acting as a focusing agent for Bugzilla enhancement requests (e.g. IdeaStorm brainstorming session -&gt; multiple Bugzilla enhancement requests).
** Hardware requests outside the scope of Bugzilla.
:''Isn't this more of a 100 Days action?--[[User:qgil|qgil]] 08:54, 2 June 2008 (UTC)''
::''I think it's quite a big task, if you want it to be user-friendly, and with a voting system that provides useful feedback -- [[User:felipec|FelipeC]] 12:43, 2 June 2008 (UTC)''

This objective is now listed in the [https://garage.maemo.org/plugins/wiki/index.php?June2008Sprint&amp;id=106&amp;type=g maemo.org development backlog]. Oskari from Nemein pushes but you can help out already today.

== uservoice.com ==

Krisse suggests to have a look at http://uservoice.com - which looks like a commercial service based in something like IdeaStorm.--[[User:qgil|qgil]] 19:30, 25 July 2008 (UTC)
:Okay, I've got to admit here that I hadn't come across Ideastorm before when I suggested Uservoice. From the looks of things they're rather similar, and personally I'd be okay with either, as long as there is some easier-to-understand alternative to Bugzilla, and as long as Nokia does actually respond to suggestions. BTW Uservoice is commercial but it doesn't have ads, its business model is based around offering extra features to the companies using their service.--[[User:krisse|krisse]] 10:13, 28 July 2008 (UTC)
::Having said that, does Ideastorm have the same limited number of votes as Uservoice? That's quite an important feature to discourage people from suggesting things thoughtlessly.--[[User:krisse|krisse]] 10:21, 28 July 2008 (UTC)
:::The main difference is that Uservoice is a hosted service defined by a company you pay for, while IdeaStorm is an open source application you can install or port to your servers and configure in the way you want, free of charge.--[[User:qgil|qgil]] 11:05, 28 July 2008 (UTC)
::::This one's a no brainer. ;) Open source &gt; *. —[[User:generalantilles|GeneralAntilles]] 11:43, 28 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Busybox</title>
    <id>1728</id>
    <revision>
      <id>12103</id>
      <timestamp>2009-03-25T20:49:26Z</timestamp>
      <contributor>
        <username>lma</username>
        <id>37</id>
      </contributor>
      <comment># CONFIG_RESIZE is not set</comment>
      <text xml:space="preserve">= Busybox features =

== Status ==

{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Compatible
| style=&quot;background:LightBlue&quot; | WiP
| Not checked/unsure
| style=&quot;background:LightGray&quot; | Not applicable
| style=&quot;background:Orange&quot; | Compatible but buggy
| style=&quot;background:Tomato&quot; | Incompatible
|}

{| class=&quot;wikitable sortable&quot;
|-
! Feature
! Diablo (1.6.1.legal-1osso15)
! Fremantle (1.10.2.legal-1osso16)
! Would increase GNU/Debian tools compatibility
! Comments
|- style=&quot;background:LightGray&quot;
| FEATURE_2_4_MODULES || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_2_6_MODULES || y || n || n || real module-init-tools in Fremantle
|- style=&quot;background:LightGray&quot;
| FEATURE_ADDUSER_LONG_OPTIONS || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_ADDUSER_TO_GROUP || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_AIX_LABEL || n || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_ALLOW_EXEC || y || y || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_APPLETS_FALLBACK || - || n ||  || maemo patch
|- style=&quot;background:LightGray&quot;
| FEATURE_AR_LONG_FILENAMES || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_AUTOWIDTH || y || y ||  || 
|- style=&quot;&quot;
| FEATURE_AWK_MATH || n || n || y || but would pull in libm. gawk is also available.
|- style=&quot;background:LightGray&quot;
| FEATURE_BRCTL_FANCY || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_BUFFERS_GO_IN_BSS || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_BUFFERS_GO_ON_STACK || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_BUFFERS_USE_MALLOC || n || n ||  || not set, but default option
|- style=&quot;background:LightGray&quot;
| FEATURE_CHAT_CLR_ABORT || - || n ||  || chat comes from ppp package
|- style=&quot;background:LightGray&quot;
| FEATURE_CHAT_IMPLICIT_CR || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_CHAT_NOFAIL || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_CHAT_SEND_ESCAPES || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_CHAT_SWALLOW_OPTS || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_CHAT_TTY_HIFI || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_CHAT_VAR_ABORT_LEN || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_CHCON_LONG_OPTIONS || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_CHECK_NAMES || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_CHECK_TAINTED_MODULE || n || n || n || real module-init-tools in Fremantle
|- style=&quot;background:LightGray&quot;
| FEATURE_CLEAN_UP || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_COMPRESS_USAGE || y || y ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_COPYBUF_KB || - || 4 ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_CROND_CALL_SENDMAIL || n || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_DATE_ISOFMT || y || y || y || GNU coreutils date supports -I, although it's undocumented in the man &amp; info pages.
|- style=&quot;background:Tomato&quot;
| FEATURE_DD_IBS_OBS || n || n || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_DD_SIGNAL_HANDLING || y || y || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_DEB_TAR_BZ2 || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_DEB_TAR_GZ || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_DEB_TAR_LZMA || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_DEL_USER_FROM_GROUP || n || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_DEVFS || n || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_DEVPTS || y || y || y || 
|- style=&quot;background:Tomato&quot;
| FEATURE_DF_INODE || - || n || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_DIFF_BINARY || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_DIFF_DIR || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_DIFF_MINIMAL || n || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_DMESG_PRETTY || y || y || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_DPKG_DEB_EXTRACT_ONLY || n || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_DU_DEFAULT_BLOCKSIZE_1K || y || y || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_EDITING || y || y || n || 
|- style=&quot;background:LightGray&quot;
| FEATURE_EDITING_FANCY_KEYS || y || - || n || Enabled but not configurable in Fremantle alpha version
|- style=&quot;background:LightGray&quot;
| FEATURE_EDITING_FANCY_PROMPT || y || y || n || 
|- style=&quot;background:LightGray&quot;
| FEATURE_EDITING_HISTORY || 15 || 15 || n || 
|- style=&quot;background:LightGray&quot;
| FEATURE_EDITING_MAX_LEN || - || 1024 || n || 
|- style=&quot;background:Orange&quot;
| FEATURE_EDITING_SAVEHISTORY || y || y ||  || Bugs [https://bugs.maemo.org/show_bug.cgi?id=4174 4174], [https://bugs.maemo.org/show_bug.cgi?id=4175 4175]
|- style=&quot;background:LightGray&quot;
| FEATURE_EDITING_VI || n || n || n || 
|- style=&quot;background:LightGray&quot;
| FEATURE_EJECT_SCSI || - || n ||  || 
|- style=&quot;background:Tomato&quot;
| FEATURE_ENV_LONG_OPTIONS || n || n || y || 
|- style=&quot;&quot;
| FEATURE_ETC_NETWORKS || - || n ||  || 
|- style=&quot;background:Tomato&quot;
| FEATURE_EXPAND_LONG_OPTIONS || - || n || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_EXTRA_QUIET || n || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FANCY_ECHO || y || y || y || 
|- style=&quot;background:Tomato&quot;
| FEATURE_FANCY_HEAD || n || n || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FANCY_PING || y || y || y || 
|- style=&quot;background:Tomato&quot;
| FEATURE_FANCY_SLEEP || n || n || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FANCY_TAIL || y || y || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_FAST_TOP || - || y || n || 
|- style=&quot;background:LightGray&quot;
| FEATURE_FBSET_FANCY || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_FBSET_READMODE || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_FDISK_ADVANCED || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_FDISK_WRITABLE || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_FIND_CONTEXT || - || n || n || 
|- style=&quot;background:Tomato&quot;
| FEATURE_FIND_DELETE || n || n || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FIND_DEPTH || y || y || y || 
|- style=&quot;background:Tomato&quot;
| FEATURE_FIND_EXEC || n || n || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FIND_GROUP || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FIND_INUM || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FIND_MAXDEPTH || - || y || y || 
|- style=&quot;background:Tomato&quot;
| FEATURE_FIND_MMIN || n || n || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FIND_MTIME || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FIND_NEWER || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FIND_NOT || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FIND_PAREN || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FIND_PATH || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FIND_PERM || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FIND_PRINT0 || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FIND_PRUNE || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FIND_REGEX || - || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FIND_SIZE || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FIND_TYPE || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FIND_USER || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_FIND_XDEV || y || y || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_FTPGETPUT_LONG_OPTIONS || n || n || n || no FTPGET/FTPPUT
|- style=&quot;background:LightGray&quot;
| FEATURE_FULL_LIBBUSYBOX || n || - || n || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_GREP_CONTEXT || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_GREP_EGREP_ALIAS || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_GREP_FGREP_ALIAS || y || y || y || 
|- style=&quot;background:Tomato&quot;
| FEATURE_GUNZIP_UNCOMPRESS || n || n || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_HAVE_RPC || y || y || y || pulled in by FEATURE_MOUNT_NFS
|- style=&quot;background:LightGray&quot;
| FEATURE_HDPARM_GET_IDENTITY || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HDPARM_HDIO_DRIVE_RESET || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HDPARM_HDIO_GETSET_DMA || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HDPARM_HDIO_SCAN_HWIF || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HDPARM_HDIO_TRISTATE_HWIF || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HDPARM_HDIO_UNREGISTER_HWIF || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HEXDUMP_REVERSE || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HTTPD_AUTH_MD5 || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HTTPD_BASIC_AUTH || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HTTPD_CGI || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HTTPD_ENCODE_URL_STR || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HTTPD_ERROR_PAGES || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HTTPD_PROXY || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HTTPD_RANGES || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HTTPD_SETUID || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_HTTPD_USE_SENDFILE || - || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_HUMAN_READABLE || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_HWCLOCK_ADJTIME_FHS || n || n || n || 
|- style=&quot;background:Tomato&quot;
| FEATURE_HWCLOCK_LONG_OPTIONS || n || n || y || CONFIG_HWCLOCK=y in Fremantle
|- style=&quot;background:LightGreen&quot;
| FEATURE_IFCONFIG_BROADCAST_PLUS || n || n || n || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_IFCONFIG_HW || y || y ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_IFCONFIG_SLIP || n || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_IFCONFIG_STATUS || y || y ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_IFUPDOWN_EXTERNAL_DHCP || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_IFUPDOWN_IFCONFIG_BUILTIN || y || y ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_IFUPDOWN_IP || n || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_IFUPDOWN_IPV4 || y || y || y || 
|- style=&quot;&quot;
| FEATURE_IFUPDOWN_IPV6 || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_IFUPDOWN_IP_BUILTIN || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_IFUPDOWN_MAPPING || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_INDIVIDUAL || - || n || n || 
|- style=&quot;background:LightGray&quot;
| FEATURE_INETD_RPC || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_INETD_SUPPORT_BUILTIN_DISCARD || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_INETD_SUPPORT_BUILTIN_ECHO || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_INETD_SUPPORT_BUILTIN_TIME || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_INITRD || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_INIT_COREDUMPS || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_INIT_SCTTY || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_INIT_SYSLOG || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_INSMOD_KSYMOOPS_SYMBOLS || n || n || n || real module-init-tools in Fremantle
|- style=&quot;background:LightGray&quot;
| FEATURE_INSMOD_LOADINKMEM || n || n || n || real module-init-tools in Fremantle
|- style=&quot;background:LightGray&quot;
| FEATURE_INSMOD_LOAD_MAP || n || n || n || real module-init-tools in Fremantle
|- style=&quot;background:LightGray&quot;
| FEATURE_INSMOD_LOAD_MAP_FULL || n || n || n || real module-init-tools in Fremantle
|- style=&quot;background:LightGray&quot;
| FEATURE_INSMOD_VERSION_CHECKING || n || n || n || real module-init-tools in Fremantle
|- style=&quot;background:LightGray&quot;
| FEATURE_INSTALLER || n || n || n || 
|- style=&quot;background:Tomato&quot;
| FEATURE_INSTALL_LONG_OPTIONS || n || n || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_IPCALC_FANCY || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_IPCALC_LONG_OPTIONS || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_IPC_SYSLOG || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_IPC_SYSLOG_BUFFER_SIZE || - || - ||  || 
|- style=&quot;background:LightBlue&quot;
| FEATURE_IPV6 || n || n || y || Bug [https://bugs.maemo.org/show_bug.cgi?id=419 419]
|- style=&quot;&quot;
| FEATURE_IP_ADDRESS || n || n ||  || CONFIG_IP is not set but iproute missing in Fremantle alpha?
|- style=&quot;&quot;
| FEATURE_IP_LINK || n || n ||  || 
|- style=&quot;&quot;
| FEATURE_IP_RARE_PROTOCOLS || - || n ||  || 
|- style=&quot;&quot;
| FEATURE_IP_ROUTE || n || n ||  || 
|- style=&quot;&quot;
| FEATURE_IP_RULE || n || n ||  || 
|- style=&quot;&quot;
| FEATURE_IP_SHORT_FORMS || n || n ||  || 
|- style=&quot;&quot;
| FEATURE_IP_TUNNEL || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_KILL_DELAY || - || - ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_KILL_REMOVED || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_LESS_BRACKETS || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_LESS_FLAGCS || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_LESS_FLAGS || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_LESS_MARKS || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_LESS_MAXLINES || - || - ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_LESS_REGEXP || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_LOGREAD_REDUCED_LOCKING || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_LSMOD_PRETTY_2_6_OUTPUT || n || n || n || real module-init-tools in Fremantle
|- style=&quot;background:LightGray&quot;
| FEATURE_LS_COLOR || n || n || y || GNU coreutils ls has --color, but nothing should break without it.
|- style=&quot;background:LightGray&quot;
| FEATURE_LS_COLOR_IS_DEFAULT || n || n ||  || 
|- style=&quot;background:Tomato&quot;
| FEATURE_LS_FILETYPES || n || n || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_LS_FOLLOWLINKS || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_LS_RECURSIVE || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_LS_SORTFILES || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_LS_TIMESTAMPS || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_LS_USERNAME || y || y || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_LZMA_FAST || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_MAKEDEVS_LEAF || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_MAKEDEVS_TABLE || n || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_MD5_SHA1_SUM_CHECK || n || y || y || Bug [https://bugs.maemo.org/show_bug.cgi?id=3265 3265]
|- style=&quot;background:LightGray&quot;
| FEATURE_MDEV_CONF || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_MDEV_EXEC || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_MDEV_LOAD_FIRMWARE || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_MDEV_RENAME || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_MINIX2 || n || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_MKDIR_LONG_OPTIONS || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_MKSWAP_V0 || n || n || n || Technically util-linux-ng mkswap does support -v0, but it's not needed or even supported in linux 2.6
|- style=&quot;background:LightGray&quot;
| FEATURE_MODPROBE_FANCY_ALIAS || y || n || n || real module-init-tools in Fremantle
|- style=&quot;background:LightGray&quot;
| FEATURE_MODPROBE_MULTIPLE_OPTIONS || y || n || n || real module-init-tools in Fremantle
|- style=&quot;background:LightGray&quot;
| FEATURE_MOUNT_CIFS || n || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_MOUNT_FAKE || - || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_MOUNT_FLAGS || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_MOUNT_FSTAB || y || y || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_MOUNT_HELPERS || - || y ||  || mount helpers use a different interface in util-linux-ng
|- style=&quot;background:LightGray&quot;
| FEATURE_MOUNT_LABEL || - || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_MOUNT_LOOP || y || y || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_MOUNT_NFS || y || y ||  || 
|- style=&quot;background:Tomato&quot;
| FEATURE_MOUNT_VERBOSE || - || n || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_MTAB_SUPPORT || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_MV_LONG_OPTIONS || y || y || y || 
|- style=&quot;&quot;
| FEATURE_NAMEIF_EXTENDED || - || n ||  || CONFIG_NAMEIF=y in Fremantle alpha, but nameif is also provided by net-tools
|- style=&quot;background:LightGreen&quot;
| FEATURE_NETSTAT_WIDE || n || n || n || 
|- style=&quot;background:LightGray&quot;
| FEATURE_NOLOGIN || - || y ||  || is this needed?
|- style=&quot;background:LightGray&quot;
| FEATURE_OSF_LABEL || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_PASSWD_WEAK_CHECK || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_PIDFILE || n || n || n || none of the applets that use this are enabled
|- style=&quot;background:Tomato&quot;
| FEATURE_PIDOF_OMIT || n || n || y || 
|- style=&quot;background:Tomato&quot;
| FEATURE_PIDOF_SINGLE || n || n || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_PREFER_APPLETS || n || - || n || not in the Fremantle alpha config, but defaults to n
|- style=&quot;&quot;
| FEATURE_PREFER_IPV4_ADDRESS || - || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_PRESERVE_HARDLINKS || n || n || n || 
|- style=&quot;background:Tomato&quot;
| FEATURE_PS_TIME || - || n || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_PS_UNUSUAL_SYSTEMS || - || n ||  || 
|- style=&quot;background:Tomato&quot;
| FEATURE_PS_WIDE || n || n || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_QUERY_MODULE_INTERFACE || n || n || n || real module-init-tools in Fremantle
|- style=&quot;background:LightGreen&quot;
| FEATURE_READLINK_FOLLOW || y || y || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_REMOTE_LOG || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_RESIZE_PRINT || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_RFC3397 || n || n || n || 
|- style=&quot;background:Tomato&quot;
| FEATURE_RMDIR_LONG_OPTIONS || - || n || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_ROTATE_LOGFILE || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_RPM_BZ2 || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_RUNCON_LONG_OPTIONS || n || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_RUN_PARTS_FANCY || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_RUN_PARTS_LONG_OPTIONS || y || y || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_SECURETTY || y || y ||  || is this needed?
|- style=&quot;background:LightGray&quot;
| FEATURE_SETCONSOLE_LONG_OPTIONS || n || n || n || 
|- style=&quot;background:LightGray&quot;
| FEATURE_SETFILES_CHECK_OPTION || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_SGI_LABEL || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_SHADOWPASSWDS || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_SHARED_BUSYBOX || n || n || n || 
|- style=&quot;background:LightGray&quot;
| FEATURE_SH_EXTRA_QUIET || n || n || n || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_SH_IS_ASH || y || y || y || Ash seems like the best choice for a shell
|- style=&quot;background:LightGray&quot;
| FEATURE_SH_IS_HUSH || n || n || n || 
|- style=&quot;background:LightGray&quot;
| FEATURE_SH_IS_LASH || n || - || n || 
|- style=&quot;background:LightGray&quot;
| FEATURE_SH_IS_MSH || n || n || n || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_SH_IS_NONE || n || n || n || Need at least one
|- style=&quot;background:LightGray&quot;
| FEATURE_SH_STANDALONE || n || n || n || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_SORT_BIG || n || y || y || Bug [https://bugs.maemo.org/show_bug.cgi?id=3132 3132]
|- style=&quot;background:Tomato&quot;
| FEATURE_SPLIT_FANCY || n || n || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_START_STOP_DAEMON_FANCY || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_START_STOP_DAEMON_LONG_OPTIONS || n || n ||  || 
|- style=&quot;background:Tomato&quot;
| FEATURE_STAT_FORMAT || n || n || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_SUID || y || y ||  || bb is not installed setuid, but this is enabled by login, su etc
|- style=&quot;&quot;
| FEATURE_SUID_CONFIG || n || n ||  || 
|- style=&quot;&quot;
| FEATURE_SUID_CONFIG_QUIET || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_SUN_LABEL || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_SU_CHECKS_SHELLS || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_SU_SYSLOG || y || y ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_SYSLOG || y || y ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_SYSLOGD_DUP || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_TAB_COMPLETION || y || y || n || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_TAR_AUTODETECT || - || n || n || 
|- style=&quot;background:Tomato&quot;
| FEATURE_TAR_BZIP2 || n || n || y || 
|- style=&quot;background:Tomato&quot;
| FEATURE_TAR_COMPRESS || n || n || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_TAR_CREATE || y || y || y || 
|- style=&quot;background:Tomato&quot;
| FEATURE_TAR_FROM || n || n || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_TAR_GNU_EXTENSIONS || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_TAR_GZIP || y || y || y || 
|- style=&quot;background:Tomato&quot;
| FEATURE_TAR_LONG_OPTIONS || n || n || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_TAR_LZMA || n || n || n || -a option has different meaning in GNU tar which uses --lzma for this
|- style=&quot;background:LightBlue&quot;
| FEATURE_TAR_OLDGNU_COMPATIBILITY || y || n || y || Bug [https://bugs.maemo.org/show_bug.cgi?id=4237 4237]
|- style=&quot;background:LightGreen&quot;
| FEATURE_TAR_OLDSUN_COMPATIBILITY || - || y || y || http://www.gnu.org/software/tar/manual/tar.html#SEC139
|- style=&quot;background:LightGreen&quot;
| FEATURE_TAR_TOUCH || y || y || y || maemo patch, still not in upstream bb.  Reason appears to be misunderstanding on the meaning of the option (http://www.mail-archive.com/busybox@busybox.net/msg00831.html).
|- style=&quot;background:Tomato&quot;
| FEATURE_TAR_UNAME_GNAME || - || n || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_TASKSET_FANCY || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_TEE_USE_BLOCK_IO || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_TELNETD_STANDALONE || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_TELNET_AUTOLOGIN || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_TELNET_TTYPE || n || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_TEST_64 || y || y || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_TFTP_BLOCKSIZE || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_TFTP_GET || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_TFTP_PUT || n || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_TOPMEM || - || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_TOP_CPU_GLOBAL_PERCENTS || - || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_TOP_CPU_USAGE_PERCENTAGE || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_TOP_DECIMALS || - || y || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_TRACEROUTE_SOURCE_ROUTE || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_TRACEROUTE_USE_ICMP || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_TRACEROUTE_VERBOSE || n || n ||  || 
|- style=&quot;background:Tomato&quot;
| FEATURE_TR_CLASSES || n || n || y || 
|- style=&quot;background:Tomato&quot;
| FEATURE_TR_EQUIV || n || n || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_UDHCPC_ARPING || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_UDHCPD_WRITE_LEASES_EARLY || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_UDHCP_DEBUG || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_UDHCP_PORT || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_UDHCP_SYSLOG || n || - ||  || 
|- style=&quot;background:Tomato&quot;
| FEATURE_UMOUNT_ALL || n || n || y || although it's hard to imagine why this would be useful except when shutting down 
|- style=&quot;background:LightGray&quot;
| FEATURE_UNARCHIVE_TAPE || n || n || n || Enables seeking on pipe input in seek_by_jump(). It looks like only cpio uses this, tar calls seek_by_read() directly.
|- style=&quot;background:Tomato&quot;
| FEATURE_UNEXPAND_LONG_OPTIONS || - || n || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_USERNAME_COMPLETION || n || n || n || 
|- style=&quot;background:LightGray&quot;
| FEATURE_USE_INITTAB || n || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_USE_TERMIOS || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_UTMP || y || y ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_VERBOSE_CP_MESSAGE || - || y || n || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VERBOSE_USAGE || n || n || n || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_VI_8BIT || - || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_VI_COLON || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_VI_DOT_CMD || y || y || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VI_MAX_LEN || - || 4096 ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VI_OPTIMIZE_CURSOR || y || y ||  || 
|- style=&quot;background:Tomato&quot;
| FEATURE_VI_READONLY || n || n || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_VI_SEARCH || y || y || y || 
|- style=&quot;background:Tomato&quot;
| FEATURE_VI_SET || n || n || y || 
|- style=&quot;background:Tomato&quot;
| FEATURE_VI_SETOPTS || n || n || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_VI_USE_SIGNALS || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_VI_WIN_RESIZE || y || y || y || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_VI_YANKMARK || y || y || y || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VOLUMEID_CRAMFS || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VOLUMEID_EXT || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VOLUMEID_FAT || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VOLUMEID_HFS || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VOLUMEID_ISO9660 || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VOLUMEID_JFS || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VOLUMEID_LINUXRAID || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VOLUMEID_LINUXSWAP || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VOLUMEID_LUKS || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VOLUMEID_NTFS || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VOLUMEID_OCFS2 || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VOLUMEID_REISERFS || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VOLUMEID_ROMFS || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VOLUMEID_SYSV || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VOLUMEID_UDF || - || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_VOLUMEID_XFS || - || n ||  || 
|- style=&quot;background:Tomato&quot;
| FEATURE_WC_LARGE || n || n || y || Probably unnecessary, but it's just a type change.
|- style=&quot;background:LightGray&quot;
| FEATURE_WGET_AUTHENTICATION || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_WGET_LONG_OPTIONS || n || n ||  || 
|- style=&quot;background:LightGray&quot;
| FEATURE_WGET_STATUSBAR || n || n ||  || 
|- style=&quot;background:LightGreen&quot;
| FEATURE_WTMP || y || y ||  || 
|- style=&quot;background:Tomato&quot;
| FEATURE_XARGS_SUPPORT_CONFIRMATION || n || n || y || 
|- style=&quot;background:LightBlue&quot;
| FEATURE_XARGS_SUPPORT_QUOTES || n || n || y || Bug [https://bugs.maemo.org/show_bug.cgi?id=3951 3951]
|- style=&quot;background:Tomato&quot;
| FEATURE_XARGS_SUPPORT_TERMOPT || n || n || y || 
|- style=&quot;background:Tomato&quot;
| FEATURE_XARGS_SUPPORT_ZERO_TERM || n || n || y || Note that FEATURE_FIND_PRINT0=y
|}</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Collaboration infrastructure</title>
    <id>1330</id>
    <revision>
      <id>8635</id>
      <timestamp>2008-11-08T23:02:59Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve">''Please post here ideas/questions for brainstorming''

'''Q: '''What is the ideal infrastructure for a fruitful collaboration between Nokia teams and the community?

'''Q: '''Repository, mailing list, wiki, news. Anything else critical?

'''Q: '''What is good/bad in http://garage.maemo.org?

'''Q: '''What is good/bad in other references:
* http://launchpad.net
* http://source.android.com/
* http://moblin.org/projects
* http://code.google.com
* http://trolltech.com/developer
* more

'''A: '''Launchpad has the advantage of making the project more visible at least, and provides a wide range of functions to collaborate. Only worry is if launchpad gets &quot;run over by a bus&quot; (bankrupt, etc). Android page seems very developer-oriented, whereas launchpad would also be more user-friendly and maybe more welcoming as a collaboration platform for intro-level developers/users. Moblin seems to suffer from the &quot;i'm a project homepage, for developers and unwelcome to users&quot; mentality too. Code.google.com seems to have a little more with getting community involved (developer demos etc). Trolltech seems to get the hint about community as well, but also takes care of presenting the material on a more executive level. ---[[User:stskeeps|stskeeps]] 23:02, 8 November 2008 (UTC)

'''Q: '''SVN / Git... does that matter? Is it preferrable to have a single repository with a single tool and all projects hosted there or let every project have their preferred tool?

'''Q: '''Is the usage of external infrastructure considered e.g. launchpad or http://gitorious.org/ ?

'''Q: '''There are two main level of collaboration: within a single project and cross-project. What are the needs of each?

'''Q: '''Use microblogging channels (Jaiku as an example) for developers both internal and external to communicate changes/notification/achievements/etc? ---[[User:stskeeps|stskeeps]] 23:02, 8 November 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Comments2Talk</title>
    <id>1846</id>
    <revision>
      <id>13199</id>
      <timestamp>2009-05-10T11:07:36Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>New page: See also http://talk.maemo.org/showthread.php?p=286101</comment>
      <text xml:space="preserve">See also http://talk.maemo.org/showthread.php?p=286101</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Community Council</title>
    <id>241</id>
    <revision>
      <id>46135</id>
      <timestamp>2011-12-29T13:34:13Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/46.17.97.223|46.17.97.223]] ([[User talk:46.17.97.223|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">==Community Council==

Mmm... It is probably benefitial for the maemo community and for the dialog with Nokia to have some structure. We are doing effective steps towards this: some people get admin rights, some people might become QA evaluators in the extras repositories, some people receive are more visible and push for certain things in a structured way... However, also with my community shirt I think that 10 days of brainstorm is not enough to define a proposal, and probably 100 days are not enough to implement it either. So, what about 100 Days for the community to discuss and agree on the way to be formally structured?--[[User:qgil|qgil]] 08:54, 4 June 2008 (UTC)
:Possibly true - however I'd want to avoid us getting into too long talking about a process which can be enhanced/refined at a later date, and get some of the structure in-place sooner. Perfectly happy to go with the consensus on this (since it's necessary for it to work ;-)) --[[User:jaffa|jaffa]] 10:39, 4 June 2008 (UTC)
::Alright, you have the (obvious) pre-agreement on my side. Please discuss and once there is an agreed idea create page accordingly and move this content there. Thanks! --[[User:qgil|qgil]] 20:41, 4 June 2008 (UTC)
It's a good idea but I think it too early to do this. I suggest to do this after the 100 days when all maemo is well defined and everyone's on the same page with what maemo is and what's its direction. --[[User:rsuplido|Reggie]] 14:07, 5 June 2008 (UTC)
:Perhaps. But there's always something round the corner: it's like buying a computer (or gadget ;-)): if you wait, there's always something better. --[[User:jaffa|jaffa]] 16:18, 5 June 2008 (UTC)
:Having a focusing agent like the council is more important now than in 100 days after everything has settled and there's nothing to do anymore. —[[User:generalantilles|GeneralAntilles]] 20:44, 5 June 2008 (UTC)
::My point here is, Nokia hasn't officially announced anything yet with regards to all the plans suggested. I heard Ari and the maemo.org team are officially announcing something at the [[Maemo Summit 2008]]. If the decision is 100% (or a good percentage) community run, then it's all good. There are lots to do after the 100 Days - mainly implement, prioritize, and streamline the plans, and keep things organized, as what is defined in the 'Roles of the council' below. --[[User:rsuplido|Reggie]] 13:41, 6 June 2008 (UTC)
:::Nokia aren't 'supposed' to be announcing anything official with regards to all the plans suggested: this is a community action plan, and has very little to do with Nokia (albeit lots to do with [[User:qgil|qgil]]'s role of community manager). Unless Nokia are going to fundamentally change the purpose of maemo (and maemo.org), there will still be times when they ask for the &quot;community&quot;'s input. And for that we need a way of the community speaking with one voice. --[[User:jaffa|jaffa]] 13:51, 6 June 2008 (UTC)
::::Agree on the community voice. I would still like to hear [[User:qgil|qgil]]'s thoughts on this though, mainly on how much say/control Nokia will have, and/or if the community can override Nokia. Maybe Nokia will just be in the sidelines and watch maemo.org takes its course. --[[User:rsuplido|Reggie]] 14:04, 6 June 2008 (UTC)
:::::Nokia likes the idea of maemo.org being really a community driven site, moving the official content and software releases to Forum Nokia or somewhere else under the nokia.com domain and control. Having a growing and engaged community willing to assume more responsibilities and power is part of the common success. In this sense the community council is helpful if it's representative and backed by the community. Note the difference between maemo.org activities and the planning, development and release of the official maemo software. There Nokia keeps the same control as now. The structured community might have more influence, power to lobby and to organize alternative maemo variants at their will, though. Personally I have no problems about starting this task now. My only personal concern as community member is to go so fast that the community doesn't follow and then we have a not-really representative council, unable to canalize the hundred voices and becoming at the end one source of feedback more to deal with. This risk is probably the same now and in 100 days, though. If you take a 'release soon &amp; often' approach open to iterations until consolidating the model, then starting soon shouldn't be a problem per se.--[[User:qgil|qgil]] 19:44, 6 June 2008 (UTC)

== Monthly IRC meetings ==

We already have #maemo-meeting for IRC-discussion with Quim, should the Council IRC meetings be something separate and additional to that, or integrated with the #maemo-meetings? —[[User:generalantilles|GeneralAntilles]] 03:06, 12 June 2008 (UTC)
:Integrated, IMHO --[[User:dneary|dneary]] 13:00, 12 June 2008 (UTC)
:Agreed, perhaps the council members would be the only ones allowed to interact, and any questions would be sent via then --[[User:lardman|lardman]] 12:40, 13th June 2008 (GMT+1)
::Or maybe just act as the moderators who give ''voice'' to others. Otherwise there is a big burden on any council member to fairly represent/ask on behalf of people, and if they cannot live to up that people will get disillusioned, and you will probably see participation wane, except for those people with the ''contacts'' to get their voice heard. My 2 cents --[[User:trickie|trickie]] 12:27, 13 June 2008 (UTC)
:::[http://lists.maemo.org/pipermail/maemo-developers/2008-May/033419.html Moderation was discussed] after the last #maemo-meeting and I was very against it. So, here's the proposal:

=== New Proposal ===
&lt;nowiki&gt;#&lt;/nowiki&gt;maemo-meeting IRC meetings will be held monthly as usual. Since the community issues likely to come up during these meetings are going to be issues the council will be working on, anyway, the council's job should be to help the community develop an agenda each month (to be done in the wiki) and help to the agenda during the meeting.

==== Agenda ====
The council should serve only to help direct the organization of the topic and agenda for #maemo-meetings and to assist in keeping the meetings on-track. 

* An agenda for the next month will be set up on the wiki after the end up of the current month's meeting.
** A topic will be decided upon within one week of the opening of next month's agenda
** The agenda for the next meeting will be finalized at least a week in advance of the next meeting (which gives time for Quim to prepare for the topic and possibly bring guests appropriate to it).
* The council should make attendees aware of both the meeting and the topic and agenda for the next meeting.

==== Meeting management ====
Any attendee should be allowed to talk during the meeting, but attendees are asked to keep questions ''on-topic'' and ''stick to the agenda''. Any chatter during the meeting should be held in #maemo and kept out of #maemo-meeting.

* The room will be set moderated.
* Council members, Quim and any guests, and X-Fade (others?) will be granted operator status for each meeting.
* Meeting attendees will all be granted voice by default on joining (this may actually be more difficult than it previously was with Freenode's new services—will have to test this one)
** Attendees all have the right to speak by default (voice), but they can lose this right for the duration of the meeting after 3 warnings (de-voiced).
** Warnings will be issued by those with operator status for asking off-topic questions or participating in chatter in #maemo-meeting instead of #maemo, 3 strikes and you're out (well, muted).

This plan should prevent any feelings of disenfranchisement and help keep the discussions on-topic and on-agenda.

== Council member karma requirements ==

The current proposal says 100 karma points. Should this be reduced or this requirement lifted or revised pending improvements to the maemo.org karma system? It currently does not include edits from the new wiki, only includes bugs submitted from bugzilla, etc. —[[User:generalantilles|GeneralAntilles]] 03:28, 12 June 2008 (UTC)
: If that's to be a precondition, then the problems with karma need to be fixed first. Notably: [https://bugs.maemo.org/show_bug.cgi?id=2481 bug #2481] and [https://bugs.maemo.org/show_bug.cgi?id=3240 bug #3240], but really there are a bunch of karma-related problems, if the measure actually becomes important for community participation. [https://bugs.maemo.org/buglist.cgi?query_format=specific&amp;order=relevance+desc&amp;bug_status=__open__&amp;product=&amp;content=karma Here's a list]. --[[User:dneary|dneary]] 13:04, 12 June 2008 (UTC)

: We should be careful setting arbitrary thresholds. If someone with experience of community work came along and wanted to join, there should be the option somehow, despite the initial lack of karma --[[User:lardman|lardman]] 12:42, 13 June 2008
::Call it &quot;a clear track record with the community&quot; instead? Or maybe just let the voting take care of it? If a nominee really doesn't have what it takes to be a part of the council, then they wont get elected anyway. —[[User:generalantilles|GeneralAntilles]] 04:35, 14 June 2008 (UTC)
:::The point of an arbitrary threshold is to stop subjective decisions as to &quot;clear track records&quot; (and who gets to decide?). Also, to be blunt, I wouldn't want to be represented by someone who had no prior contact with maemo.org and - at best - was &quot;just&quot; active on ITT. ITT &quot;thanks&quot; should be included in the karma count, but isn't this supposed to be what karma is for?! An arbitrary limit will mean some people would be excluded, but if they're that eager can't they then do the work to get the karma? The council members have to represent the community - how can they do that if they've not been active in it to date. --[[User:jaffa|jaffa]] 19:06, 15 June 2008 (UTC)

== Council voting karma requirements ==
The karma requirement for voting has the same issues with the current limitations of the karma system.  I also am concerned that if the council is going to represent the community, then we shouldn't be setting a high a barrier to voting, otherwise it will only be representing a certain part of the community.  Perhaps alternative requirements such as being registered on maemo.org for at least 6 months (for example) could be used in addition to ensure voters have sufficient experience of maemo.  --[[User:pepitoe|pepitoe]] 14:07, 13 June 2008 (UTC)

At the moment the proposal says 50 karma points are the minimum for voting for a candidate. I prefer the &quot;usenet style&quot; where everybody (with an valid mail adress and real name) is allow to vote for e.g. a new newsgroup name. It should be a small problem to vote vor 50 maemo.org applications to get enough karma for the vote. I think it should be enough to have a valid maemo.org account. No minimum karma points are needed. Maybe for the council itself but not for the right to vote.

The karma thing ''could be'' (''not 'is' '') a nice indicator for the number of community activities. And not more...
--[[User:jukey|jukey]] 14:15, 13 June 2008 (UTC)
:I like this plan. So, the maemo.org account must exist for at least 6 months (maybe set something of an amnesty and make it 1 month for the first elections, since I know a lot of people don't yet have maemo.org accounts), exceptions will be made for new accounts less than 6 months old (or 1 month for the first election?) with more than 25 (?) karma points. —[[User:generalantilles|GeneralAntilles]] 04:30, 14 June 2008 (UTC)
::For me the proposal &quot;after X month having a maemo account&quot; everybody should be able to vote sounds much better than &quot;after collecting x karma points people are allowed to vote&quot;. Because of the 6 month phase between two elections 3 month should be enough. So people have to wait 3 to 9 month to wait for the next election, what seems time enough to me.
::But all in all the ''best'' way ''I think'' would be: Everybody with a maemo account should be able to vote - no minimum for acount-having-time or karma.--[[User:jukey|jukey]] 11:09, 16 June 2008 (UTC)
:::That's a logical OR, so users with young accounts who do participate and contribute can still vote. The idea with these requirements is to avoid having people open fake accounts to skew the votes. While it may seem harsh, I don't think the dubious advantage of letting zero-participation users vote outweighs this. Besides, it's not difficult to get together 25 karma points. --[[User:generalantilles|GeneralAntilles]] 14:41, 16 June 2008 (UTC)
:::Good points. Have we got the account age information, though? (Certainly not in any current UI, IIRC - will have to ask X-Fade or ferenc or someone if it's in the DB). This is related to the minimum-karma points required for nominees: we don't need minimum-karma thresholds for nominees if the community can be &quot;trusted&quot; to vote &quot;sensibly&quot; (IYSWIM). However, how can the community as a whole trust it's voice if there's no minimum threshold for the &quot;quality&quot; of the people voting. One of the aims of the council is to streamline and co-ordinate the community's response when Nokia want to know &quot;what the community thinks&quot;, a lot of that is representing all of the people who are ''currently'' contributing and marshalling that response. Obviously, a wider aim is to increase participance and represent the people who are currently unheard; but I think these aims may have slightly different requirements in terms of council rules. --[[User:jaffa|jaffa]] 21:58, 20 June 2008 (UTC)
:::According to http://maemo.org/profile/list/ today there are about 250 users with +50 karma points and around 425 with +25. Getting 25 points is not very difficult: rate some news and apps and after some time you are there. Account age alone doesn't help much avoiding fake accounts, eve if it requires a more patient faker. Accummulate points for several accounts is a more tedious job, though. I think 3 months + 25 points is a reasonable requirement. You don't get rights in most clubs with less than an equivalent to that (and if you do you could quote Groucho Marx on &quot;I wouldn't join any club that would have me as a member.&quot;) On the other side, having the Council no budget and very relative power at least in the initial elections we can probably relax the terms and tighten only if it's needed.--[[User:qgil|qgil]] 19:03, 22 June 2008 (UTC)
::::X-Fade has confirmed that the midgard database contains account creation date. Do we have a consensus on 25 points + 3 months? It doesn't go *all* the way back, pre-midgard, but since that was more than 3 months ago, it doesn't matter :-) --[[User:jaffa|Jaffa]] 10:55, 27 June 2008 (UTC)
:::::Sounds good to me. --[[User:dneary|dneary]] 16:17, 27 June 2008 (UTC)
:::::It's okay for me too. --[[User:jukey|jukey]] 16:29, 28 June 2008 (UTC)
:::::Right, I've edited the original proposal and we should try and get the election on the agenda for [[100Days/Sprint3|Sprint3]] --[[User:jaffa|Jaffa]] 19:33, 17 July 2008 (UTC)

== Merging with Task:Community Council ==

Hi, what about mergin this page and [[Community Council|Task:Community Council]]. Until now I'm indetifying as &quot;Task:&quot; those pages to wormk on something, to avoid people getting confused with the Something (if you know what I mean).--[[User:qgil|qgil]] 11:21, 13 June 2008 (UTC)
:Done —[[User:generalantilles|GeneralAntilles]] 11:43, 13 June 2008 (UTC)
::Thanks! (The &quot;Task:&quot; practice wasn't strong enough to avoid the confusion about the logo contest though)  :)

== Company affiliation ==

Now it says: &quot;''Nokia employees who reach the minimum karma level ''are'' eligible to stand as nominees. However, this should be noted by them when advertising their nomination.''&quot; I agree, but I think it would be good to make always explicit your affiliation if you are working professionally for any organization with a remote relation to Maemo, software development, etc. This practice has been useful at least in the context of the GNOME Foundation.--[[User:qgil|qgil]] 19:15, 22 June 2008 (UTC)
:Agreed, it's not just Nokians who may have a vested interest. I'll update the wording. --[[User:jaffa|Jaffa]] 19:23, 22 June 2008 (UTC)

== Included in Sprint2? ==

Hi, yesterday we forgot about discussing this task. It is clear that is an &quot;accepted&quot; task and therefore should be at least at [[Maemo.org_backlog]]. If you want to commit it (or part of) to the current sprint, feel free listing it at [[100Days/Sprint2#New_in_this_sprint]]. All this reminds us that the sprint planning meetings should be open to anybody handling a task ongoing/accepted/proposed. (In fact if we are not many people there is not reason to moderate it at all, but this is another topic)  :) --[[User:qgil|qgil]] 12:52, 1 July 2008 (UTC)
:Answering to myself: it's still in the backlog and hopefully everything will be ready to be part of the Sprint4.--[[User:qgil|qgil]] 20:50, 25 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Community Council/Eligible candidates</title>
    <id>1120</id>
    <revision>
      <id>33049</id>
      <timestamp>2010-04-19T12:39:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>direct link</comment>
      <text xml:space="preserve">I would probably filter out the Nokia people. This is supposed to be a community council after all. -- marcell

Marcell: As per regulations agreed in [[Community Council]], Nokia employees are not excluded from being candidates. They must, however, declare their affiliation and interest in Nokia (contractor, for example) when nominating themselves.
--[[User:dneary|Dave Neary]] 07:16, 15 August 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Community Council/Eligible voters</title>
    <id>5045</id>
    <revision>
      <id>45739</id>
      <timestamp>2011-11-17T12:58:36Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>[[Talk:Task:Community Council/Eligible voters]] moved to [[SPAM please delete]]: no way to delete initial edits</comment>
      <text xml:space="preserve">#REDIRECT [[SPAM please delete]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Components and packages</title>
    <id>876</id>
    <revision>
      <id>50396</id>
      <timestamp>2012-10-24T02:45:40Z</timestamp>
      <contributor>
        <ip>94.181.168.128</ip>
      </contributor>
      <comment>/* gzzxcvasx */ new section</comment>
      <text xml:space="preserve">=== ToDo ===
The current version satisfies the core mission of this task. However, there is some work that could be done to improve it. Tha raw data is available so anybody can continue the work.

* Better organization of packages. Ideally there would be a basic overview of the areas of the platform, a second level with the specific software components of each area and a third level listing the packages under a component.
* Nicer presentation of graphics and data in the spreadsheet.
* Export the data to HTML or PDF for easier access.


* Introduce approximate lines of code or size of each package to have a better view of the dimensions of each packages and the open/closed relation in a more accurate way. Now ''operator-wizard'' appears just as big as the whole Linux Kernel.
** Done. Just missing some packages.--[[User:qgil|qgil]] 07:17, 23 July 2008 (UTC) 
* Is it worth listing the specific licenses of each open source package? It's mostly a manual work...
** Not requikred, as agreed yesterday in the Sprint3 planning meeting.--[[User:qgil|qgil]] 07:17, 23 July 2008 (UTC)

== gzzxcvasx ==

http://buycheapcialisgnericonline.net/  purchase cialis 
http://buycheapgenericcialisonline.com/  price cialis 
http://achetergeneriquecialisfr.net/ cialis sans ordonnance</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Consolidation of Extras</title>
    <id>635</id>
    <revision>
      <id>3436</id>
      <timestamp>2008-06-30T12:15:00Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve">From a Nokia point of view the interest is to have a single repository for distributing third party applications. External repositories should be an exception targeting very specific needs and users. Nokia is not interested in blurring the boundaries between a community supported extras repository and the repo someone has setup somewhere.--[[User:qgil|qgil]] 06:59, 2 June 2008 (UTC)''
:While it is obviously better to have a single repository, both for users and for Nokia, realistically it is not going to happen soon. So, there is still a place for a repo aggregator like Gronmayer to exist. Additionally, creating an AppInstaller-like AJAX web site for Gronmayer specifically targeted for displaying in MicroB will let you test different AppInstaller designs before implementing them in a real application and pushing them to the users. It is really easy to change a piece of PHP code but changing a native app and updating everybody's tablets with it is more dofficult. [[User:fms|fms]]
::If you want to have any specific action around the Gronmayer aggregator &amp; tools, that's totally fine. Go ahead. I'm just saying that Nokia prefers to invest its time and resources fixing the root of the problem, even if it will take longer than 100 Days.--[[User:qgil|qgil]] 07:59, 2 June 2008 (UTC)
:I really like the idea. It should be merged with the Download section of Maemo.org. There should be an &quot;Add your application&quot; button that will open a new page where to enter all the informations regarding the new Application (the 'main page'). The submission of this new Application should automatically create: a) a garage project for the Application b) a discussion thread on the ITT forum for this Application's first release c) a Download page in Maemo.org will be created as well. This set of web tools should follow the Application during its lifetime. As long as the developer tags the application as Alpha or Beta, it should only appear in the Maemo Extras-devel repository. When the developer tags it as Stable it should be moved to the Maemo Extras repository. For each new release the developer should decide if to open a new discussion thread for that specific release or not (on the ITT forum). The first post on the ITT forum thread should also provide a set of links at least for 'reporting bugs' (and should, obviously, point to the garage's bugzilla page for that project). This link to bugzilla should also appear on the Application 'main page'. We have ONE Application, there should be a little more than ONE place on the web for it and for its resources--[[User:anidel|anidel]] 12:12, 3 June 2008 (UTC)

== &quot;Application Store&quot; ==
* Use gronmayer's scripts to create a web site that merges applications from all known repositories into a single list and lets you browse them with MicroB using HTML UI similar to N-Gage, Apple Store, etc. While it sounds ambitious, it is not difficult to do, as we always have app descriptions and icons (form .deb files) and we also have screenshots for apps hosted at Garage. Reformatting this data in a format that can be nicely presented in tablet browser is not difficult.
* Effectively replace &quot;itTSS&quot; with this website.
* Make sure that all applications which are actually available in the repositories can be found in the Maemo.org downloads section.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Consolidation of extras</title>
    <id>637</id>
    <revision>
      <id>3431</id>
      <timestamp>2008-06-30T12:06:48Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Talk:Task:Consolidation of extras]] moved to [[Talk:Task:Consolidation of Extras]]: Capitalizing Extras</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Task:Consolidation of Extras]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Define voting procedure for Community Council elections</title>
    <id>1366</id>
    <revision>
      <id>9178</id>
      <timestamp>2008-12-03T23:10:11Z</timestamp>
      <contributor>
        <username>benson</username>
        <id>147</id>
      </contributor>
      <comment>/* Discussion */</comment>
      <text xml:space="preserve">It seems we don't have TeX enabled here...
Dumping original content here, and will edit the main page to render it readable. If we get TeX, this may be pasted back...
== Proposal: RRV ==
=== Variables ===
*&lt;math&gt;l&lt;/math&gt;: number of voters
*&lt;math&gt;m&lt;/math&gt;: number of candidates
*&lt;math&gt;n&lt;/math&gt;: number of seats
*&lt;math&gt;i&lt;/math&gt;: index of voters (&lt;math&gt;1 \le i \le l&lt;/math&gt;)
*&lt;math&gt;j&lt;/math&gt;: index of candidates (&lt;math&gt;1 \le j \le m&lt;/math&gt;)
*&lt;math&gt;k&lt;/math&gt;: index of seats (and rounds) (&lt;math&gt;1 \le k \le n&lt;/math&gt;)
=== Parameters ===
A range for votes is selected by two limits, &lt;math&gt;a_{max}&lt;/math&gt; and &lt;math&gt;a_{min}&lt;/math&gt;.
Reasonable choices include:
*&lt;math&gt;a_{min}=0&lt;/math&gt;, &lt;math&gt;a_{max}=1&lt;/math&gt; (unbalanced, normalized)
*&lt;math&gt;a_{min}=-1&lt;/math&gt;, &lt;math&gt;a_{max}=1&lt;/math&gt; (balanced)
*&lt;math&gt;a_{min}=0&lt;/math&gt;, &lt;math&gt;a_{max}=100&lt;/math&gt; (unbalanced percentage; potentially useful if ratings were to be quantized) 
The effects of the voting system are generally independent of the limits selected, but a balanced range ''may'' be preferred by some voters to permit unknown candidates to be rated 0 with known, disliked candidates rated negative. Obviously this effect may be accomplished in an unbalanced range by rating unknown candidates &lt;math&gt;\tfrac{a_{min} + a_{max}}{2}&lt;/math&gt;. Some calculations are simplified by using the unbalanced, normalized range, which makes it preferable from a numerical perspective.

A ballot from voter &lt;math&gt;i&lt;/math&gt; consists of &lt;math&gt;m&lt;/math&gt; ratings &lt;math&gt;a_{ij}&lt;/math&gt; for the &lt;math&gt;m&lt;/math&gt; candidates, such that &lt;math&gt;a_{min} \le a_{ij} \le a_{max}&lt;/math&gt;.

=== Procedure ===
After all ballots are collected, &lt;math&gt;n&lt;/math&gt; rounds are held to choose the winners &lt;math&gt;w_{k}&lt;/math&gt;, with one winner chosen per round. In the first round, the weighted ratings for each voter are initialized as &lt;math&gt;b_{ij1}=a_{ij}&lt;/math&gt;. The weighted scores in each round are summed:

&lt;math&gt;B_{jk}=\sum_{i=1}^{l}b_{ijk}&lt;/math&gt;

The highest-scoring candidate not yet elected wins; this is not simple to express formally:

&lt;math&gt;w_k = \max ( B_{jk} \ni j \notin w_{1 \cdots k-1})&lt;/math&gt;

The weighted scores for each succeeding round are calculated by de-emphasizing ballots according to the portion in which they've already won:

&lt;math&gt;b_{ij(k+1)}=\frac{a_{ij}}{1+\sum_{p=1}^{k}\tfrac{a_{iw_p}-a_{min}}{a_{max}-a_{min}}}&lt;/math&gt;

In the case of an unbalanced range (&lt;math&gt;a_{min} = 0&lt;/math&gt;), &lt;math&gt;b_{ij(k+1)}=\frac{a_{ij}}{1+\sum_{p=1}^{k}\tfrac{a_{iw_p}}{a_{max}}}&lt;/math&gt;, and in the normalized case (&lt;math&gt;a_{max} = 1&lt;/math&gt;), &lt;math&gt;b_{ij(k+1)}=\frac{a_{ij}}{1+\sum_{p=1}^{k}a_{iw_p}}&lt;/math&gt;.

=== Discussion ===

It seems to me like this voting system requires voters to understand at least a little game theory. It looks far too complicated to be used in a real-life election.

The voting system used should, in my opinion, require the voter to do one of three things:
* Choose candidates in order of preference (1, 2, 3...)
* Choose 1 favourite candidate
* Choose their N favourite candidates from the electorate (the GNOME system)

Of the three choices, the GNOME system is my least favourite, and the straight vote seems a little limiting. I prefer simple preferential voting.

Of the simple preferential voting systems, my favourite is single transferable vote. It's better than Condorcet, in my opinion, because it is understandable quite easily by the electorate and does not produce unexpected results (such as someone who was no-one's favourite candidate getting elected).

--[[User:dneary|Dave Neary]] 18:39, 3 December 2008 (UTC)
:From the voter's perspective, I don't see score ballots as requiring more game theory knowledge than ranked ballots. Both require voters assigning numbers to some or all candidates, but preferential ballots make it ''more'' complex, by adding constraints on those numbers. All voters have to do (perhaps I wasn't clear on this, as I was emphasizing the underlying mechanics) is assign a score from 0 to 1 (ideally continuous, but possibly discretized) to each candidate, reflecting the value they assign to that candidate's winning.

:I think score ballots are better because they are simpler and more expressive. Since there are no possible invalid ballots, there is no need to keep the ballot valid (by dynamically altering the voter's previous input), or to reject invalid ballots (and throw the voter back to fix the invalid ballot). The score ballot also carries more information because it preserves the relative magnitude of preferences, while ranked methods consider only the direction.

:Another ballot system you didn't mention is approval ballots (the extreme discretization of score ballots; simply a checkbox by each candidate); these enjoy all the simplicity of the GNOME system, but are intermediate in expressiveness with preferential ballots, so I'd rate them a more desirable choice than GNOME. They also inherit from score ballots the lack of invalid ballots, allowing a simpler voting process than either preference or GNOME; however, I'm not real sure on other counting methods for approval ballots (besides, obviously, the reweighting algorithm as proposed).

:As for &quot;far too complicated&quot;, are you referring to the voter's perspective, or the implementation of the scoring mechanics? If the latter, it may be because I (a non-mathie) was trying to state things formally.  I considered whipping up some C or Octave code to demonstrate, and can still do that if it's helpful. It seems substantially simpler to me than effective STV counting methods, such as Meek counting, and has the benefit of being deterministic and finite-depth, making it seem more likely to be numerically robust, and simple to implement. (I'm also aware of substantially less work on multi-winner score-ballot methods, so the proposed reweighting may be gaining simplicity at the cost of using the ballot information less efficiently than Meek/STV does, but the additional information expressed in score ballots does compensate for this...) --[[User:benson|benson]] 23:10, 3 December 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Defining maemo</title>
    <id>226</id>
    <revision>
      <id>48816</id>
      <timestamp>2012-07-25T13:39:48Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>Undo revision 48804 by [[Special:Contributions/37.113.9.196|37.113.9.196]] ([[User talk:37.113.9.196|Talk]])</comment>
      <text xml:space="preserve">==Defining maemo==
Asking to define maemo? I do not even really know what maemo was (or still is???). Start with a real newbie section after you have the definition ready.--[[User:kozuch82|kozuch82]] 13:02, 12 June 2008 (UTC)
:Well, this is exactly the point: coming up with clear definitions that even a newbie (or precisely a newbie) would understand.--[[User:qgil|qgil]] 18:58, 12 June 2008 (UTC)
::Hm, I think terms like maemo, Hildon and Internet Tablet OS mix together for a newbie.--[[User:kozuch82|kozuch82]] 13:04, 13 June 2008 (UTC)
:::This is one of the reasons behind the proposal at [[Task:Maemo_brand#Definitions]].--[[User:qgil|qgil]] 21:55, 13 June 2008 (UTC)

== Discussion ==

=== What is maemo ===
Discussion moved to [[Task:Maemo brand]].

=== Describing the maemo community ===
Many people see the maemo community as a group of people having Nokia as a counterpart. A more accurate picture would:
* Have Nokia as a community player, describing the activities that are done at a community level.
* Show the relationships with related upstream projects: where the collaboration is happening beyond just using the free software provided.
* Add the many organizations involved in maemo development or research, from companies to universities.

Also, what about

* Go a bit deeper inside the &quot;group of people&quot; and identifying core contributors: more work on karma and user profiles would be needed.

Now the most visible are the one ''shouting louder'' and more often. It would be useful though to identify key contributors in the many community areas: application development, platform hacking, documentation, support, bug reporting, news, marketing...
--[[User:qgil|qgil]] 05:57, 5 June 2008 (UTC)  

--''From a practical point-of-view, isn't maemo pretty much completely dependent on Nokia right now?  Are there any viable non-Nokia maemo platforms out there?  How much core development is not directed by the Nokia mothership?  Claiming independence is counterproductive if it isn't tied to reality. - mee 04:28, 7 June 2008 (UTC)''

====Categorise the Community - thoughts====
The section above describes Maemo's place in the greater community.
However, who is maemo serving? (this may be a start on going a bit deeper)

Tech Level 1:
* Users : Windows/Mac desktop users who bought an N800 and want new wallpaper, a neat clock etc.
Tech Level 2:
* Power Users : Install more apps, alternative launchers, alpha/beta sw, up to new distros (eg Debian). More complex networking, ssh, scripting, python, documentation...
Tech Level 3:
* App Developers : Porting/writing gui apps and daemons; may want api info. Need to get to know the various environments.
* WM Developers : Starting to hack on gtk or QT4, the X server etc etc
* Kernel Developers : Fixing kernel bugs, tweaks, backporting, hardware support.

Each of these user types needs information : even an experienced kernel hacker will want to know the current best practice to setup the dev environment (SB1 or 2?)
More importantly pages should be written with an awareness of the target tech level. 

Whilst thinking about the levels of user involvement I thought that we could help users self-categorise using some old Doom terms: &quot;Easy&quot;, &quot;Bring it on&quot;, &quot;Hurt me&quot;.
Saves newbies complaining when they start down a path labelled 'Hurt me'...
[[User:lbt|lbt]] 10:47, 12 June 2008 (UTC)

=== Building a strong brand ===
Discussion moved to [[Task:Maemo brand]].</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Documentation rules</title>
    <id>661</id>
    <revision>
      <id>6844</id>
      <timestamp>2008-08-28T03:07:46Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Documentation rules]] moved to [[Talk:Task:Documentation rules]]: Moving to correct namespace</comment>
      <text xml:space="preserve">== Help Pages ==
I think a guideline for articles would be a good idea, see the discussion on  [[Talk:Main_Page#Help_Pages|Help Pages]] which gives the [http://en.wikipedia.org/wiki/Help:Contents Wikipedia Help] page as an example, where they have several entries covering policies and guidelines, as well as other related subjects. -[[User:milhouse|milhouse]] 12:05, 1 July 2008 (UTC)
:On one hand it's good to have a little structure, and on the other you don't want to scare potential contributors away. Unless stated otherwise, I think you can pretty safely assume an article applies to everything. :) If something is very device- or OS-specific I suspect it will say so. —[[User:generalantilles|GeneralAntilles]] 12:17, 1 July 2008 (UTC)
::I agree here too - we don't want articles that state they are specific to the 770/N800/N810 simply because they're the only devices available, because when the &quot;N900&quot; is released all those old articles will be in need of updating to add support for the N900. Keeping articles general and only mentioning explicit incompatabilities is probably the best idea. This is what could be stated in the guidelines page, along with other useful tips for writing articles, which would help promote a consistent style and hopefully quality. --[[User:milhouse|milhouse]] 12:24, 1 July 2008 (UTC)
:::The point is: much more people are reading articles than writing articles. And so it would be only a little effort for someone, who had tryed something described in the article to give a &quot;Testet with device&quot; or &quot;Testet with OS&quot; stamp. And if there will be a new device everybody who tests the old stuff on the new device could tell the community whats happen with the stamp on the article. A wiki article is not getting more actual without a stamp. There should be the possibility to tell everybody who reads the article how actual it _could_ be.--[[User:jukey|jukey]] 13:20, 3 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Fast Server</title>
    <id>254</id>
    <revision>
      <id>6069</id>
      <timestamp>2008-07-31T08:36:50Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>/* Known problems */</comment>
      <text xml:space="preserve">Did anyone besides me get a bunch of connection errors yesterday? It seemed as if the server went down for a few minutes. [[User:jakemaheu|jakemaheu]] 20:28, 14 June 2008 (UTC)

== Known problems ==

Tasks and bugs that are stuck depending on [[Task:Fast Server]]. Note that there are more enhancements not listed here that are put in the queue since they would take a bit more of horse power:

* Implementation of the [server infra plan https://garage.maemo.org/plugins/wiki/index.php?ServerInfraPlan&amp;id=106&amp;type=g]
* [https://bugs.maemo.org/show_bug.cgi?id=2085 Same logged in and https behavior as in Garage (and bugzilla)]
* [https://bugs.maemo.org/show_bug.cgi?id=3280 Wiki pages sometimes fail to load with &quot;lost network connection&quot;]
* [https://bugs.maemo.org/show_bug.cgi?id=3354 Publishing packages to garage.maemo.org oftens results in &quot;lost connection&quot; and &quot;permission denied&quot; from scp]

There have been also many complaints about maemo.org performance in the past. Enough for people keep complaining. The worst problems were fixed with the cache issues solved (proved with the 4.1 release) but there are still many problems. Some representative user discussions could be:
* [http://www.internettablettalk.com/forums/showthread.php?t=16394 nokia - shame on you - maemo.org server is deadly slow]
* [http://www.internettablettalk.com/forums/showthread.php?t=7533 Maemo.org useless? ]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:File hosting on maemo.org</title>
    <id>1823</id>
    <revision>
      <id>12979</id>
      <timestamp>2009-05-02T17:19:28Z</timestamp>
      <contributor>
        <ip>209.206.154.162</ip>
      </contributor>
      <comment>New page: Well you all know I'm interested in helping in anyways I can. -AndrewFBlack</comment>
      <text xml:space="preserve">Well you all know I'm interested in helping in anyways I can. -AndrewFBlack</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Fremantle application categories</title>
    <id>2424</id>
    <revision>
      <id>18170</id>
      <timestamp>2009-09-14T23:38:19Z</timestamp>
      <contributor>
        <username>qole</username>
        <id>57</id>
      </contributor>
      <comment>What about telephony apps?</comment>
      <text xml:space="preserve">What about telephony apps? --[[User:qole|qole]] 23:38, 14 September 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Garage bug tracking in Bugzilla</title>
    <id>904</id>
    <revision>
      <id>5304</id>
      <timestamp>2008-07-24T11:10:12Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Talk:Task:Garage bug tracking in Bugzilla]] moved to [[Talk:Task:3rd party bug tracking in bugs.maemo.org]]: To be precise</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Task:3rd party bug tracking in bugs.maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Getting Nokia involved in bugs.maemo.org</title>
    <id>906</id>
    <revision>
      <id>9225</id>
      <timestamp>2008-12-06T20:29:48Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <comment>added more explanations on today's reorg</comment>
      <text xml:space="preserve">== Best practices for everybody ==

There is one assumption that not always becomes true: Bugzilla users know how to deal with bug tracking. This might apply both to users (poor reports, wrong severity/priority, reopening of wontfixes/invalids just because, bad behavior...) and maintainers (harsh resolving, lack of explanations, little knowledge of the possibilities of the tool, bad behavior too...). We see this in most free software projects and bugs.maemo.org is not exempt of this risk.

In fact, having @nokia guys around makes things a bit more difficult sometimes: certain users take the chance to establish a personal war against &quot;Nokia&quot;, others might simply ignore the complexity behind a simple bug and a simple Nokia developer commenting on that bug. On the other hand, Nokia employees are busy enough with an internal bug tracker that counts in their internal process, and communicating to the outside makes things more complex: because of wearing the Nokia shirt you can be quoted anywhere and because some (actually many) bug resolutions are related to confidential information.

Also, Maemo gets many newcomers not familiar with free software development practices, both in the user and developer side, which makes the own concept of a public bug tracker strange for some.

For all these reasons it would be good to have a concise 'for dummies' guide for users and maintainers that everybody could refer to when learning how to get involved.--[[User:qgil|qgil]] 11:54, 24 July 2008 (UTC)

== Success (and really wrong) stories ==

Putting the pressure on single developers doesn't help actually. The reality of the average Maemo SW developer is: busy with Nokia internal processes (including automated and human testing) and reporting to a project manager (directly) and a release manager (indirectly) that most probably don't follow the activity in bugs.maemo.org. Considering this setting, the public Bugzilla brings more work in exchange of an unclear outcome. This is why good triaging by the maemo.org bugmasters and the Bugsquad is good, because they help triage what really matters.

However, the real step is to prove that good usage of bugs.maemo.org results in less work and better quality, not more work resulting in worse performance/quality. I'm not saying that this is *the* position of Nokia. What I'm saying is that Nokia processes have been evolving during years and just recently they had to consider something like a public Bugzilla. Coming from an open source background the importance of public bug trackers is clear, and doesn't need further explanation. But on the other hand, device programs and non-free software development programs can also show good success rates with test and error management process done internally, getting user feedback from surveys, controlled tests, etc.. The Maemo SW is in between, affected by device &amp; closed source software development and also by pure open source development.

There are many things that are being changed internally to adapt to this situation, but there is one task where the Maemo community can help: bring the success stories happening in Maemo and elsewhere with a similar setting (e.g. public bugtrackers efficiently handled by companies shipping software preinstalled in devices). Equally useful would be clear stories of things that went wrong or could have gone clearly better if Nokia would have made a better use of bugs.maemo.org.

Being specific and objective, showing statistics and trends, helps a lot convincing not one or two developers but whole teams and management structures.--[[User:qgil|qgil]] 12:08, 24 July 2008 (UTC)

=== Status of projects ===

Something that would help in the Fremantle timeline is to define what products (aka which teams) are doing better and worse. Now there is an overall complaint, which is unfair to actually those individuals and teams that are doing a good work in bugs.maemo.org. The general complaint is also more difficult for us to chase reasons why things are how they are. If instead there would be a wiki page or something showing &quot;red - yellow - green - star&quot; status of each product matching a team, then we all would be able to focus on the right spots.--[[User:qgil|qgil]] 07:56, 19 November 2008 (UTC)
:I really hope the people who are putting forth that extra effort realize the complaints don't include them (even if they're not specifically excluded). I certainly appreciate the hard work those people put in, and I know most everybody else does, too. :) —[[User:generalantilles|GeneralAntilles]] 08:25, 19 November 2008 (UTC)

==== What metrics? ====

:Should be pretty easy to implement, but what are our metrics? Initial response time? Total fix turnaround time? Probably too complicated (the more complicated it is, the easier it is to be unfair) A simple two-part response rate and fix rate combination? Should the metrics be based entirely on hard-data, or would it be appropriate to factor in perception from, say, the Bugsquad (&quot;Yes, this team's numbers look good, but the responses were largely unhelpful and slow to arrive, and the fixes sub-par.&quot;). If the goal is simply to pin-point teams that need to improve their participation, than a perception-based grade with some statistical number crunching sounds best. —[[User:generalantilles|GeneralAntilles]] 08:25, 19 November 2008 (UTC)
::Perception is more than enough, I think. Red = too bad. Yellow = Well, ok. Green = Good!. Star = You're amazing, thanks!. The guys are getting plenty of robotic metrics in their jobs and at the end the objective is &quot;perceived quality&quot;. If you want to add numbers I'm sure they will be useful, but I think those 4 states (or even 2: good/bad) are good enough to chase the specific problems of the affected teams and congratulate publicly those doing a good work. --[[User:qgil|qgil]] 11:56, 20 November 2008 (UTC)

==== How often and where? ====

:How often should the report be updated? Weekly? Monthly? Quarterly? Obviously a wiki page should be maintained for reference, but where should the reports go to? maemo-developers? A blog for this purpose?
:: I'd say monthly. I was tempted to say quarterly since all teams might have some months specially stressful, but the longer the period the lesser your memory is reliable and the more you need to sustain perceptions with actual numbers.--[[User:qgil|qgil]] 12:10, 20 November 2008 (UTC)

:Can we start now? :D —[[User:generalantilles|GeneralAntilles]] 08:25, 19 November 2008 (UTC)
::OK, here's a really rough draft outline [[Task:Bugzilla report card]]. —[[User:generalantilles|GeneralAntilles]] 09:07, 19 November 2008 (UTC)
:::Hum, I'd start with something more minimalistic: x=months / y=products / content of cell: bad (red background) / meh (yellow) / good (green) / star .--[[User:qgil|qgil]] 12:10, 20 November 2008 (UTC)

== Improvements in the weekly reports ==

The weekly Bug Jar is just fantastic. It is also a very visual proof about the community capacity to get organized and help. Even if unrelated, it came more or less at the same time than the maemo.org bugmasters joined the team. Both things have cause a very good impact in the internal bug management people and process. Some ideas for improvement in the weekly reports:
* Website bugs out of the Jars. The Website bugs are reasonably well tracked and managed mostly at a community/public level. There are many and they add too much data to the Jars. Data like that is almost pure noise for the average Nokia guy working in Maemo Software.
* Visualizing the progress: now we get a picture every week, but we rely on our own memory to judge whether there is progress or not, small progress or big. Ideally there would be statistics and graphs showing the progress. A very good discovery and proofpoint would be to find out that before bugmasters and jars the lines were pointing trend A, and after that the lines point to much cooler trend B. This might sound stupid but those lines might convince more people inside and outside Nokia, more users and developers and managers, than the most rationalized arguments.
* Bug Jars in this wiki? Forget about this if it's too much extra work, but documenting the reports in the wiki would be useful. It could even be the default interface and then send updates to maemo.org lists and ITt.
--[[User:qgil|qgil]] 07:57, 25 July 2008 (UTC)
: Karsten is also working on porting some weekly summary/overview to Maemo Bugzilla, see [https://bugs.maemo.org/show_bug.cgi?id=3553]. This is on the map for [[100Days/Sprint4]]. Stephen is CC'ed and I naively hope that some code (or at least ideas) can be shared. --[[User:andre|andre]] 18:08, 12 August 2008 (UTC)

== Better organization of products and components ==

If you look inside components like System Software, System Management or Multimedia you will see that there is a bit of inconsistency aka mess in the components. This is not only poor usability for the bug reporters. It also makes life harder for Nokia developers to track where are the reports that affect to their work. Specially if you consider that developers work on teams, and many times teams are mapped to certain products and components. It is easier for Team A to know that they have to follow Product A and forget safely about the rest. This is now clear for e.g. Connectivity or Development Platform, which happen to be products that are reasonably well maintained. System Software would be the opposite case.--[[User:qgil|qgil]] 10:09, 30 July 2008 (UTC)
: I'm going to work on improving this in [[100Days/Sprint4]], see [https://bugs.maemo.org/show_bug.cgi?id=3562]. --[[User:andre|andre]] 18:14, 12 August 2008 (UTC)

: The organization is mostly my fault*, I didn't particularly like the organization used in the internal bug tracker and was trying to aim for something which more closely mapped to what users would see when they used their device. In the n800, that's basically: 1. Browser, 2. Communications, and 3. Desktop. After those come distinct blobs: A. Connectivity, B. Multimedia and C. Games. Then comes a section which is harder to divide. I chose to map things that appeared in/near control panel as &quot;System management&quot; and everything else into &quot;System software&quot;. Note that [http://mozilla.org mozilla.org] is currently experiencing a similar growing pain, the current [https://bugzilla.mozilla.org bugzilla.mozilla.org] organization is built around functionality that only the engineers who work on an area understand. This means that if you're an end user, or even an engineer from a different area you have a terrible time trying to find the right place to file a bug. * Except for Internet Tablet Video Converter which someone added on behalf of a different Nokia group. --[[User:timeless|timeless]] 18:51, 3 September 2008 (UTC)

:: Hi, I have been thinking and my conclusion is that we need a structure mapping platform areas and components down to the packages level. This would serve a much better purpose for generating reports and finding out the bugs in a way the Maemo teams at Nokia can process and handle better.--[[User:qgil|qgil]] 06:50, 22 October 2008 (UTC)
:::Package level? That'd be (for example) having components for dsme, bme and mce? Or breaking down &quot;Browser&quot; into microb-eal, microb-engine, tablet-browser-ui, tablet-browser-dialogs, tablet-browser-widgets, tablet-browser-controls, etc, etc? That sounds (to me, and assuming I'm actually reading &quot;packages level&quot; correctly) like hell for triagers and a good way to scare off reporters. —[[User:generalantilles|GeneralAntilles]] 07:01, 22 October 2008 (UTC)
::::Ok, ok, don't take the package level literally always. I agree they make less sense at the application level, where most end users will probably land. My main concern is not the package level but the fact that bugzilla products reflect better platform structure and (as a happy coincidence) Maemo SW team structure. For instance, now &quot;Applications&quot; list in fact &quot;Rest of applications&quot;, since Browser or Media Player are elsewhere. At the same time, &quot;Multimedia&quot; is handling both application and platorm components. The Maemo SW team has a clear divide between applications and platform. Users probably will be happier too if they would have an easy way to access the whole application level without having to mess with more obscure platform components. By doing this we can go to deeper levels in the platform since now there is a single component for e.g. &quot;Multimedia Framework&quot; when actually it would be good to know whether a bug is in GStreamer, PulseAudio or some Nokia closed component (for instance, upstream developers could track better what is going on there). No need to go down to the full list of GStreamer related packages, agreed. Let me start drafting a structure... Don't look at the components so much, I have concentrated on the products in this first round. --[[User:qgil|qgil]] 06:08, 23 October 2008 (UTC)

:Overall I like the reorg. Renaming System management to Settings &amp; Maintenance (which is mostly what you did) makes a lot of sense, I'm sorry I hadn't come up w/ that name in my reorg. X-Discontinued is an interesting hack. I'd sooner move it out of Official Applications. At mozilla.org, we have a Graveyard classification for this. That python is listed under discontinued is odd.... splitting some of System software into Desktop platform seems reasonable. DUN=(bt) Dial up networking; ICD=Internet Connectivity Daemon. Splitting Core out may make the Maemo Software Core team happy, but I'm not sure that Internationalization belongs in Desktop platform. I guess from an ownership perspective it does. From someone who usually doesn't pay attention to how Maemo Software (this is an organization in Nokia) works it doesn't. --[[User:timeless|timeless]] 19:14, 10 November 2008 (UTC)

=== Draft structure (implemented on Dec 06th, 2008) ===

The 3 levels respond to Classification, Product and Component. What is today &quot;Maemo Software&quot; would be split in Official Applications and Official Platform. 

* Official Applications (respond to a structure evident from a user point of view)
** Browser
*** Bookmarks
** Chat &amp; Internet Call ''(was: Communication)''
*** Chat
*** General ''(was: Communication/General (9 bugs))''
*** Internet Call ''(was: Communication/Internet Call)''
*** Presence ''(was: Communication/Presence)''
*** SIP ''(was: Communication/SIP)''
*** XMPP ''(was: Communication/XMPP)''
** Contacts ''(was: Communication/Contacts)''
** E-mail ''(was: Communication/Email)'' (Note: Webmail notifier: Under Home applets)
** Games
*** Blocks
*** Chess
*** Mahjong
*** Marbles
** Home applets
*** Battery
*** Clock 
*** Connection 
*** Contacts
*** Display 
*** Getting started
*** Internet radio 
*** Internet search
*** RSS feed reader
*** Webmail Notifier ''(was: Applications/Webmail Notifier, 8 bugs)''
** Images &amp; Camera ''(fits better to also have Cam bugs somewhere)''
*** Camera ''(was: Multimedia/Camera)''
*** Image viewer ''(was: Applications/Image viewer)''
** Map
** Media Player ''(was: Multimedia/Media Player)''
** RSS feed reader ''(was: Applications/RSS feed reader)''
** Settings &amp; Maintenance
*** Application manager ''(was: System management/Application manager)''
*** Backup/Restore ''(was: System management/Backup/Restore)''
*** Connection manager UI ''(was: System management/Connection manager)''
*** Control panel ''(was: System management/Control panel)''
*** Startup wizard ''(was: System management/Startup Wizard)''
*** Software updater
** Utilities
*** File manager ''(was: System management/File manager)''
*** Calculator
*** Clock
*** Help
*** Internet Tablet Video Converter ('''TODO''': Not yet moved due to subcomponents)
*** Notes
*** PDF reader
*** Sketch
*** Search ('''TODO''': What is this and who added it here? Not yet created)
*** X Terminal ''(was: System software/X Terminal)''
* Official Platform (respond to an architectural structure)
** Desktop platform
*** cairo
*** clutter
*** File System UI ''(was: System software/File System UI)''
*** Finger keyboard ''(was: System software/Finger keyboard)''
*** Fonts ''(was: System software/Fonts)''
*** gconf ''(was: System software/gconf)''
*** general ''(was: System software/general)'' ('''TODO''': Clean up and split up into Desktop platform and system software)
*** glib ''(was: System software/glib)''
*** gnome-vfs ''(was: System software/gnome-vfs)''
*** gtk ''(was: System software/gtk)''
*** gvfs
*** hildon-libs ''(was: System software/hildon-libs)''
*** hildon-thumbnail ''(was: System software/hildon-thumbnail)''
*** Home ''(was: Desktop/Home)''
*** Icons ''(was: Desktop/Icons)''
*** Input method framework ''(was: System software/Input method framework)''
*** Internationalization
*** libosso ''(was: System software/libosso)''
*** pango
*** sapwood ''(was: System software/sapwood)''
*** startup-shutdown ''(was: System software/startup-shutdown)''
*** Task navigator ''(was: Desktop/Task navigator)''
*** Themes ''(was: Desktop/Themes and System software/hildon-theme)'' '''TODO:''' Merge with System software/hildon-theme
*** Virtual keyboard ''(was: System software/Virtual keyboard)''
*** window-manager ''(was: System software/window-manager)''
** Connectivity
*** Bluetooth
*** DUN
*** ICD
*** Networking
*** Operator Setup Wizard ''(was: System management/Operator Setup Wizard)''
*** WiFi
*** WiMAX
** Core
*** Busybox ''(was: System software/Busybox)''
*** Kernel ''(was: System software/Kernel)''
*** X Server ''(was: System software/X Server)''
** Data
*** Meta Tracker
*** metalayer-crawler ('''TODO''': Move to X-Graveyard as Fremantle does NOT have initfs)
*** SQLite
** Development platform
*** Documentation
*** general
*** installer
*** rootstrap
*** SDK
*** Tools
** Flasher
** Location ''(was: Connectivity/Location Framework)''
** Multimedia
*** DSP ('''TODO:''' Create and clean up; Though DSP gateway = Kernel) '''SETNEWQA''': dsp-bugs@maemo.bugs
*** Gstreamer
*** Media streamer ('''TODO:''' better in applications? --[[User:qgil|qgil]] 19:32, 5 November 2008 (UTC) )
*** Multimedia framework ('''TODO:''' Vague)
*** Pulseaudio
*** Real
** Real Time Communication
*** Telepathy
** System software
*** application-killer
*** D-Bus ''(was: dbus)''
*** Device lock ''(was: Desktop/Device lock)'' '''TODO''': Triage - some bugs belong here, but some are in fact hildon widget bugs)
*** dsme (''was: System Software/dsme AND System Software/Watchdog'', '''TODO''': merge?)
*** File system
*** general
*** glibc
*** HAL
*** libxml
*** maemo-launcher
*** mmc-and-usb
*** OHM
*** upstart ('''TODO''': Add this for Fremantle?)
** Translations
** UI Specification
** User guide &amp; Help content (should get rid off vague &quot;Docu&quot; term)
*** Help content
*** User guide
* X-Graveyard
** X-Discontinued
*** Audio player (770) ''(was: Multimedia/Audio player)''
*** core-initfs ('''TODO''': Create, move 2021, 1855, 3852, 3589 and maybe 3745. Fremantle does NOT have initfs)
*** FM Radio (N800) ''(was: Multimedia/FM Radio)''
*** &quot;Misdirected&quot; product bugs
*** Browser: Opera engine ''(was: Browser/Opera engine (770/N800))''
*** osso-email ''(was: Communication/osso-email)''
*** python ''(was: System software/python)''
*** Video player (770) ''(was: Multimedia/Video player)''

[[User:Andre|Andre]]: Getting rid of the &quot;Applications&quot; product is very good. It was often confused with Desktop (e.g. mixing up Applets and Apps with the same name). But having Desktop now in Platform might also be confusing if you're used to the old structure so I changed this to &quot;Desktop Platform&quot;.
What I have already done: I've moved Developer Docu from Website to Dev Platform (because it's out of community scope, see bug 3562).
Removed ancient Games/Startscreen subcomponent (only 2 bugs), Removed Desktop/PC connection (1 wrong bug), Desktop/Tableteer Info (0 bugs), Desktop/Desktop Info applet (0 bugs). Removed Communication/Accounts (3 bugs, 2 wrong). Removed System software/libcommon-error (0 bugs).
Removed System management/Teach handwriting (0 bugs). Removed Web shortcut (0 bugs, development stalled since Diablo).
Several additions done on Dec 06th 2008 (metalayer-crawler, HAL, OHM, Software Updater, Maps, gvfs, pango, Internationalization, meta tracker, SQLite, Pulseaudio, GStreamer, Real, etc). Removed iconf (moved into Internationalization), removed User Interaction (cleaned up and moved into other components).

=== Draft implementation ===
[http://blogs.gnome.org/aklapper/2008/11/07/bugsmaemoorg-reorganization Original plan]:
&lt;ol&gt;
&lt;li&gt;Create new default QA virtual accounts for new products/components in advance ('''done''')&lt;/li&gt;
&lt;li&gt;Define a good day/time (Sunday?)&lt;/li&gt;
&lt;/ol&gt;
::Friday night's or holiday weekends are better [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;Display info message about reorg one week in advance in /template/en/default/global/banner.html.tmpl&lt;/li&gt;
&lt;li&gt;Create dummy products (X-DoNotUse1 etc) in advance with their TMs and versions to save time (as number of planned products &gt; current number of products)&lt;/li&gt;
&lt;/ol&gt;
:: Create products with correct names but which have a group access restriction to the admin group. They won't show up to anyone else. [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)
:: Use the &quot;shutdownhtml&quot; param to keep everyone else out (you need a feature which we need to upstream, contact moznet#bmo for it if we haven't posted a bug+patch) [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)
&lt;ol start=&quot;5&quot;&gt;
&lt;li&gt;Disable mail notification&lt;/li&gt;
&lt;li&gt;Implement changes&lt;/li&gt;
&lt;li&gt;Correct some other inconsistent QA Contact settings in some bugs that I have on a list&lt;/li&gt;
&lt;/ol&gt;
::TODO: Check whether adding a disabled virtual QA Contact to watchlist really provides receiving mail - I doubt with the current settings --[[User:Andre|Andre]])
::disabling an account doesn't prevent it from getting mail, you need to disable mail in editprefs, there's a cheap url to doing this, it's something like https://bugzilla/userprefs.cgi?tab=email&amp;dosave=1 you can use impersonation to flop in and out of each user fairly quickly. [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)
&lt;ol start=&quot;8&quot;&gt;
&lt;li&gt;Enable mail notification&lt;/li&gt;
&lt;li&gt;Remove banner&lt;/li&gt;
&lt;/ol&gt;
[[User:timeless|timeless]] prefers to keep mail notification enabled while doing this, see [http://blogs.gnome.org/aklapper/2008/11/07/bugsmaemoorg-reorganization/#comment-325 discussion]. So far, I disagree. :) --[[User:Andre|Andre]]  12:06, 11 November 2008 (UTC)

the other thing i messed up in the bmo reorg basically destroyed date state about a set of bugs, the only way i had of finding them was searching through my mail [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Getting Nokia involved in bugs.maemo.org</title>
    <id>906</id>
    <revision>
      <id>9225</id>
      <timestamp>2008-12-06T20:29:48Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <comment>added more explanations on today's reorg</comment>
      <text xml:space="preserve">== Best practices for everybody ==

There is one assumption that not always becomes true: Bugzilla users know how to deal with bug tracking. This might apply both to users (poor reports, wrong severity/priority, reopening of wontfixes/invalids just because, bad behavior...) and maintainers (harsh resolving, lack of explanations, little knowledge of the possibilities of the tool, bad behavior too...). We see this in most free software projects and bugs.maemo.org is not exempt of this risk.

In fact, having @nokia guys around makes things a bit more difficult sometimes: certain users take the chance to establish a personal war against &quot;Nokia&quot;, others might simply ignore the complexity behind a simple bug and a simple Nokia developer commenting on that bug. On the other hand, Nokia employees are busy enough with an internal bug tracker that counts in their internal process, and communicating to the outside makes things more complex: because of wearing the Nokia shirt you can be quoted anywhere and because some (actually many) bug resolutions are related to confidential information.

Also, Maemo gets many newcomers not familiar with free software development practices, both in the user and developer side, which makes the own concept of a public bug tracker strange for some.

For all these reasons it would be good to have a concise 'for dummies' guide for users and maintainers that everybody could refer to when learning how to get involved.--[[User:qgil|qgil]] 11:54, 24 July 2008 (UTC)

== Success (and really wrong) stories ==

Putting the pressure on single developers doesn't help actually. The reality of the average Maemo SW developer is: busy with Nokia internal processes (including automated and human testing) and reporting to a project manager (directly) and a release manager (indirectly) that most probably don't follow the activity in bugs.maemo.org. Considering this setting, the public Bugzilla brings more work in exchange of an unclear outcome. This is why good triaging by the maemo.org bugmasters and the Bugsquad is good, because they help triage what really matters.

However, the real step is to prove that good usage of bugs.maemo.org results in less work and better quality, not more work resulting in worse performance/quality. I'm not saying that this is *the* position of Nokia. What I'm saying is that Nokia processes have been evolving during years and just recently they had to consider something like a public Bugzilla. Coming from an open source background the importance of public bug trackers is clear, and doesn't need further explanation. But on the other hand, device programs and non-free software development programs can also show good success rates with test and error management process done internally, getting user feedback from surveys, controlled tests, etc.. The Maemo SW is in between, affected by device &amp; closed source software development and also by pure open source development.

There are many things that are being changed internally to adapt to this situation, but there is one task where the Maemo community can help: bring the success stories happening in Maemo and elsewhere with a similar setting (e.g. public bugtrackers efficiently handled by companies shipping software preinstalled in devices). Equally useful would be clear stories of things that went wrong or could have gone clearly better if Nokia would have made a better use of bugs.maemo.org.

Being specific and objective, showing statistics and trends, helps a lot convincing not one or two developers but whole teams and management structures.--[[User:qgil|qgil]] 12:08, 24 July 2008 (UTC)

=== Status of projects ===

Something that would help in the Fremantle timeline is to define what products (aka which teams) are doing better and worse. Now there is an overall complaint, which is unfair to actually those individuals and teams that are doing a good work in bugs.maemo.org. The general complaint is also more difficult for us to chase reasons why things are how they are. If instead there would be a wiki page or something showing &quot;red - yellow - green - star&quot; status of each product matching a team, then we all would be able to focus on the right spots.--[[User:qgil|qgil]] 07:56, 19 November 2008 (UTC)
:I really hope the people who are putting forth that extra effort realize the complaints don't include them (even if they're not specifically excluded). I certainly appreciate the hard work those people put in, and I know most everybody else does, too. :) —[[User:generalantilles|GeneralAntilles]] 08:25, 19 November 2008 (UTC)

==== What metrics? ====

:Should be pretty easy to implement, but what are our metrics? Initial response time? Total fix turnaround time? Probably too complicated (the more complicated it is, the easier it is to be unfair) A simple two-part response rate and fix rate combination? Should the metrics be based entirely on hard-data, or would it be appropriate to factor in perception from, say, the Bugsquad (&quot;Yes, this team's numbers look good, but the responses were largely unhelpful and slow to arrive, and the fixes sub-par.&quot;). If the goal is simply to pin-point teams that need to improve their participation, than a perception-based grade with some statistical number crunching sounds best. —[[User:generalantilles|GeneralAntilles]] 08:25, 19 November 2008 (UTC)
::Perception is more than enough, I think. Red = too bad. Yellow = Well, ok. Green = Good!. Star = You're amazing, thanks!. The guys are getting plenty of robotic metrics in their jobs and at the end the objective is &quot;perceived quality&quot;. If you want to add numbers I'm sure they will be useful, but I think those 4 states (or even 2: good/bad) are good enough to chase the specific problems of the affected teams and congratulate publicly those doing a good work. --[[User:qgil|qgil]] 11:56, 20 November 2008 (UTC)

==== How often and where? ====

:How often should the report be updated? Weekly? Monthly? Quarterly? Obviously a wiki page should be maintained for reference, but where should the reports go to? maemo-developers? A blog for this purpose?
:: I'd say monthly. I was tempted to say quarterly since all teams might have some months specially stressful, but the longer the period the lesser your memory is reliable and the more you need to sustain perceptions with actual numbers.--[[User:qgil|qgil]] 12:10, 20 November 2008 (UTC)

:Can we start now? :D —[[User:generalantilles|GeneralAntilles]] 08:25, 19 November 2008 (UTC)
::OK, here's a really rough draft outline [[Task:Bugzilla report card]]. —[[User:generalantilles|GeneralAntilles]] 09:07, 19 November 2008 (UTC)
:::Hum, I'd start with something more minimalistic: x=months / y=products / content of cell: bad (red background) / meh (yellow) / good (green) / star .--[[User:qgil|qgil]] 12:10, 20 November 2008 (UTC)

== Improvements in the weekly reports ==

The weekly Bug Jar is just fantastic. It is also a very visual proof about the community capacity to get organized and help. Even if unrelated, it came more or less at the same time than the maemo.org bugmasters joined the team. Both things have cause a very good impact in the internal bug management people and process. Some ideas for improvement in the weekly reports:
* Website bugs out of the Jars. The Website bugs are reasonably well tracked and managed mostly at a community/public level. There are many and they add too much data to the Jars. Data like that is almost pure noise for the average Nokia guy working in Maemo Software.
* Visualizing the progress: now we get a picture every week, but we rely on our own memory to judge whether there is progress or not, small progress or big. Ideally there would be statistics and graphs showing the progress. A very good discovery and proofpoint would be to find out that before bugmasters and jars the lines were pointing trend A, and after that the lines point to much cooler trend B. This might sound stupid but those lines might convince more people inside and outside Nokia, more users and developers and managers, than the most rationalized arguments.
* Bug Jars in this wiki? Forget about this if it's too much extra work, but documenting the reports in the wiki would be useful. It could even be the default interface and then send updates to maemo.org lists and ITt.
--[[User:qgil|qgil]] 07:57, 25 July 2008 (UTC)
: Karsten is also working on porting some weekly summary/overview to Maemo Bugzilla, see [https://bugs.maemo.org/show_bug.cgi?id=3553]. This is on the map for [[100Days/Sprint4]]. Stephen is CC'ed and I naively hope that some code (or at least ideas) can be shared. --[[User:andre|andre]] 18:08, 12 August 2008 (UTC)

== Better organization of products and components ==

If you look inside components like System Software, System Management or Multimedia you will see that there is a bit of inconsistency aka mess in the components. This is not only poor usability for the bug reporters. It also makes life harder for Nokia developers to track where are the reports that affect to their work. Specially if you consider that developers work on teams, and many times teams are mapped to certain products and components. It is easier for Team A to know that they have to follow Product A and forget safely about the rest. This is now clear for e.g. Connectivity or Development Platform, which happen to be products that are reasonably well maintained. System Software would be the opposite case.--[[User:qgil|qgil]] 10:09, 30 July 2008 (UTC)
: I'm going to work on improving this in [[100Days/Sprint4]], see [https://bugs.maemo.org/show_bug.cgi?id=3562]. --[[User:andre|andre]] 18:14, 12 August 2008 (UTC)

: The organization is mostly my fault*, I didn't particularly like the organization used in the internal bug tracker and was trying to aim for something which more closely mapped to what users would see when they used their device. In the n800, that's basically: 1. Browser, 2. Communications, and 3. Desktop. After those come distinct blobs: A. Connectivity, B. Multimedia and C. Games. Then comes a section which is harder to divide. I chose to map things that appeared in/near control panel as &quot;System management&quot; and everything else into &quot;System software&quot;. Note that [http://mozilla.org mozilla.org] is currently experiencing a similar growing pain, the current [https://bugzilla.mozilla.org bugzilla.mozilla.org] organization is built around functionality that only the engineers who work on an area understand. This means that if you're an end user, or even an engineer from a different area you have a terrible time trying to find the right place to file a bug. * Except for Internet Tablet Video Converter which someone added on behalf of a different Nokia group. --[[User:timeless|timeless]] 18:51, 3 September 2008 (UTC)

:: Hi, I have been thinking and my conclusion is that we need a structure mapping platform areas and components down to the packages level. This would serve a much better purpose for generating reports and finding out the bugs in a way the Maemo teams at Nokia can process and handle better.--[[User:qgil|qgil]] 06:50, 22 October 2008 (UTC)
:::Package level? That'd be (for example) having components for dsme, bme and mce? Or breaking down &quot;Browser&quot; into microb-eal, microb-engine, tablet-browser-ui, tablet-browser-dialogs, tablet-browser-widgets, tablet-browser-controls, etc, etc? That sounds (to me, and assuming I'm actually reading &quot;packages level&quot; correctly) like hell for triagers and a good way to scare off reporters. —[[User:generalantilles|GeneralAntilles]] 07:01, 22 October 2008 (UTC)
::::Ok, ok, don't take the package level literally always. I agree they make less sense at the application level, where most end users will probably land. My main concern is not the package level but the fact that bugzilla products reflect better platform structure and (as a happy coincidence) Maemo SW team structure. For instance, now &quot;Applications&quot; list in fact &quot;Rest of applications&quot;, since Browser or Media Player are elsewhere. At the same time, &quot;Multimedia&quot; is handling both application and platorm components. The Maemo SW team has a clear divide between applications and platform. Users probably will be happier too if they would have an easy way to access the whole application level without having to mess with more obscure platform components. By doing this we can go to deeper levels in the platform since now there is a single component for e.g. &quot;Multimedia Framework&quot; when actually it would be good to know whether a bug is in GStreamer, PulseAudio or some Nokia closed component (for instance, upstream developers could track better what is going on there). No need to go down to the full list of GStreamer related packages, agreed. Let me start drafting a structure... Don't look at the components so much, I have concentrated on the products in this first round. --[[User:qgil|qgil]] 06:08, 23 October 2008 (UTC)

:Overall I like the reorg. Renaming System management to Settings &amp; Maintenance (which is mostly what you did) makes a lot of sense, I'm sorry I hadn't come up w/ that name in my reorg. X-Discontinued is an interesting hack. I'd sooner move it out of Official Applications. At mozilla.org, we have a Graveyard classification for this. That python is listed under discontinued is odd.... splitting some of System software into Desktop platform seems reasonable. DUN=(bt) Dial up networking; ICD=Internet Connectivity Daemon. Splitting Core out may make the Maemo Software Core team happy, but I'm not sure that Internationalization belongs in Desktop platform. I guess from an ownership perspective it does. From someone who usually doesn't pay attention to how Maemo Software (this is an organization in Nokia) works it doesn't. --[[User:timeless|timeless]] 19:14, 10 November 2008 (UTC)

=== Draft structure (implemented on Dec 06th, 2008) ===

The 3 levels respond to Classification, Product and Component. What is today &quot;Maemo Software&quot; would be split in Official Applications and Official Platform. 

* Official Applications (respond to a structure evident from a user point of view)
** Browser
*** Bookmarks
** Chat &amp; Internet Call ''(was: Communication)''
*** Chat
*** General ''(was: Communication/General (9 bugs))''
*** Internet Call ''(was: Communication/Internet Call)''
*** Presence ''(was: Communication/Presence)''
*** SIP ''(was: Communication/SIP)''
*** XMPP ''(was: Communication/XMPP)''
** Contacts ''(was: Communication/Contacts)''
** E-mail ''(was: Communication/Email)'' (Note: Webmail notifier: Under Home applets)
** Games
*** Blocks
*** Chess
*** Mahjong
*** Marbles
** Home applets
*** Battery
*** Clock 
*** Connection 
*** Contacts
*** Display 
*** Getting started
*** Internet radio 
*** Internet search
*** RSS feed reader
*** Webmail Notifier ''(was: Applications/Webmail Notifier, 8 bugs)''
** Images &amp; Camera ''(fits better to also have Cam bugs somewhere)''
*** Camera ''(was: Multimedia/Camera)''
*** Image viewer ''(was: Applications/Image viewer)''
** Map
** Media Player ''(was: Multimedia/Media Player)''
** RSS feed reader ''(was: Applications/RSS feed reader)''
** Settings &amp; Maintenance
*** Application manager ''(was: System management/Application manager)''
*** Backup/Restore ''(was: System management/Backup/Restore)''
*** Connection manager UI ''(was: System management/Connection manager)''
*** Control panel ''(was: System management/Control panel)''
*** Startup wizard ''(was: System management/Startup Wizard)''
*** Software updater
** Utilities
*** File manager ''(was: System management/File manager)''
*** Calculator
*** Clock
*** Help
*** Internet Tablet Video Converter ('''TODO''': Not yet moved due to subcomponents)
*** Notes
*** PDF reader
*** Sketch
*** Search ('''TODO''': What is this and who added it here? Not yet created)
*** X Terminal ''(was: System software/X Terminal)''
* Official Platform (respond to an architectural structure)
** Desktop platform
*** cairo
*** clutter
*** File System UI ''(was: System software/File System UI)''
*** Finger keyboard ''(was: System software/Finger keyboard)''
*** Fonts ''(was: System software/Fonts)''
*** gconf ''(was: System software/gconf)''
*** general ''(was: System software/general)'' ('''TODO''': Clean up and split up into Desktop platform and system software)
*** glib ''(was: System software/glib)''
*** gnome-vfs ''(was: System software/gnome-vfs)''
*** gtk ''(was: System software/gtk)''
*** gvfs
*** hildon-libs ''(was: System software/hildon-libs)''
*** hildon-thumbnail ''(was: System software/hildon-thumbnail)''
*** Home ''(was: Desktop/Home)''
*** Icons ''(was: Desktop/Icons)''
*** Input method framework ''(was: System software/Input method framework)''
*** Internationalization
*** libosso ''(was: System software/libosso)''
*** pango
*** sapwood ''(was: System software/sapwood)''
*** startup-shutdown ''(was: System software/startup-shutdown)''
*** Task navigator ''(was: Desktop/Task navigator)''
*** Themes ''(was: Desktop/Themes and System software/hildon-theme)'' '''TODO:''' Merge with System software/hildon-theme
*** Virtual keyboard ''(was: System software/Virtual keyboard)''
*** window-manager ''(was: System software/window-manager)''
** Connectivity
*** Bluetooth
*** DUN
*** ICD
*** Networking
*** Operator Setup Wizard ''(was: System management/Operator Setup Wizard)''
*** WiFi
*** WiMAX
** Core
*** Busybox ''(was: System software/Busybox)''
*** Kernel ''(was: System software/Kernel)''
*** X Server ''(was: System software/X Server)''
** Data
*** Meta Tracker
*** metalayer-crawler ('''TODO''': Move to X-Graveyard as Fremantle does NOT have initfs)
*** SQLite
** Development platform
*** Documentation
*** general
*** installer
*** rootstrap
*** SDK
*** Tools
** Flasher
** Location ''(was: Connectivity/Location Framework)''
** Multimedia
*** DSP ('''TODO:''' Create and clean up; Though DSP gateway = Kernel) '''SETNEWQA''': dsp-bugs@maemo.bugs
*** Gstreamer
*** Media streamer ('''TODO:''' better in applications? --[[User:qgil|qgil]] 19:32, 5 November 2008 (UTC) )
*** Multimedia framework ('''TODO:''' Vague)
*** Pulseaudio
*** Real
** Real Time Communication
*** Telepathy
** System software
*** application-killer
*** D-Bus ''(was: dbus)''
*** Device lock ''(was: Desktop/Device lock)'' '''TODO''': Triage - some bugs belong here, but some are in fact hildon widget bugs)
*** dsme (''was: System Software/dsme AND System Software/Watchdog'', '''TODO''': merge?)
*** File system
*** general
*** glibc
*** HAL
*** libxml
*** maemo-launcher
*** mmc-and-usb
*** OHM
*** upstart ('''TODO''': Add this for Fremantle?)
** Translations
** UI Specification
** User guide &amp; Help content (should get rid off vague &quot;Docu&quot; term)
*** Help content
*** User guide
* X-Graveyard
** X-Discontinued
*** Audio player (770) ''(was: Multimedia/Audio player)''
*** core-initfs ('''TODO''': Create, move 2021, 1855, 3852, 3589 and maybe 3745. Fremantle does NOT have initfs)
*** FM Radio (N800) ''(was: Multimedia/FM Radio)''
*** &quot;Misdirected&quot; product bugs
*** Browser: Opera engine ''(was: Browser/Opera engine (770/N800))''
*** osso-email ''(was: Communication/osso-email)''
*** python ''(was: System software/python)''
*** Video player (770) ''(was: Multimedia/Video player)''

[[User:Andre|Andre]]: Getting rid of the &quot;Applications&quot; product is very good. It was often confused with Desktop (e.g. mixing up Applets and Apps with the same name). But having Desktop now in Platform might also be confusing if you're used to the old structure so I changed this to &quot;Desktop Platform&quot;.
What I have already done: I've moved Developer Docu from Website to Dev Platform (because it's out of community scope, see bug 3562).
Removed ancient Games/Startscreen subcomponent (only 2 bugs), Removed Desktop/PC connection (1 wrong bug), Desktop/Tableteer Info (0 bugs), Desktop/Desktop Info applet (0 bugs). Removed Communication/Accounts (3 bugs, 2 wrong). Removed System software/libcommon-error (0 bugs).
Removed System management/Teach handwriting (0 bugs). Removed Web shortcut (0 bugs, development stalled since Diablo).
Several additions done on Dec 06th 2008 (metalayer-crawler, HAL, OHM, Software Updater, Maps, gvfs, pango, Internationalization, meta tracker, SQLite, Pulseaudio, GStreamer, Real, etc). Removed iconf (moved into Internationalization), removed User Interaction (cleaned up and moved into other components).

=== Draft implementation ===
[http://blogs.gnome.org/aklapper/2008/11/07/bugsmaemoorg-reorganization Original plan]:
&lt;ol&gt;
&lt;li&gt;Create new default QA virtual accounts for new products/components in advance ('''done''')&lt;/li&gt;
&lt;li&gt;Define a good day/time (Sunday?)&lt;/li&gt;
&lt;/ol&gt;
::Friday night's or holiday weekends are better [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;Display info message about reorg one week in advance in /template/en/default/global/banner.html.tmpl&lt;/li&gt;
&lt;li&gt;Create dummy products (X-DoNotUse1 etc) in advance with their TMs and versions to save time (as number of planned products &gt; current number of products)&lt;/li&gt;
&lt;/ol&gt;
:: Create products with correct names but which have a group access restriction to the admin group. They won't show up to anyone else. [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)
:: Use the &quot;shutdownhtml&quot; param to keep everyone else out (you need a feature which we need to upstream, contact moznet#bmo for it if we haven't posted a bug+patch) [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)
&lt;ol start=&quot;5&quot;&gt;
&lt;li&gt;Disable mail notification&lt;/li&gt;
&lt;li&gt;Implement changes&lt;/li&gt;
&lt;li&gt;Correct some other inconsistent QA Contact settings in some bugs that I have on a list&lt;/li&gt;
&lt;/ol&gt;
::TODO: Check whether adding a disabled virtual QA Contact to watchlist really provides receiving mail - I doubt with the current settings --[[User:Andre|Andre]])
::disabling an account doesn't prevent it from getting mail, you need to disable mail in editprefs, there's a cheap url to doing this, it's something like https://bugzilla/userprefs.cgi?tab=email&amp;dosave=1 you can use impersonation to flop in and out of each user fairly quickly. [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)
&lt;ol start=&quot;8&quot;&gt;
&lt;li&gt;Enable mail notification&lt;/li&gt;
&lt;li&gt;Remove banner&lt;/li&gt;
&lt;/ol&gt;
[[User:timeless|timeless]] prefers to keep mail notification enabled while doing this, see [http://blogs.gnome.org/aklapper/2008/11/07/bugsmaemoorg-reorganization/#comment-325 discussion]. So far, I disagree. :) --[[User:Andre|Andre]]  12:06, 11 November 2008 (UTC)

the other thing i messed up in the bmo reorg basically destroyed date state about a set of bugs, the only way i had of finding them was searching through my mail [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Getting Nokia involved in bugs.maemo.org</title>
    <id>906</id>
    <revision>
      <id>9225</id>
      <timestamp>2008-12-06T20:29:48Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <comment>added more explanations on today's reorg</comment>
      <text xml:space="preserve">== Best practices for everybody ==

There is one assumption that not always becomes true: Bugzilla users know how to deal with bug tracking. This might apply both to users (poor reports, wrong severity/priority, reopening of wontfixes/invalids just because, bad behavior...) and maintainers (harsh resolving, lack of explanations, little knowledge of the possibilities of the tool, bad behavior too...). We see this in most free software projects and bugs.maemo.org is not exempt of this risk.

In fact, having @nokia guys around makes things a bit more difficult sometimes: certain users take the chance to establish a personal war against &quot;Nokia&quot;, others might simply ignore the complexity behind a simple bug and a simple Nokia developer commenting on that bug. On the other hand, Nokia employees are busy enough with an internal bug tracker that counts in their internal process, and communicating to the outside makes things more complex: because of wearing the Nokia shirt you can be quoted anywhere and because some (actually many) bug resolutions are related to confidential information.

Also, Maemo gets many newcomers not familiar with free software development practices, both in the user and developer side, which makes the own concept of a public bug tracker strange for some.

For all these reasons it would be good to have a concise 'for dummies' guide for users and maintainers that everybody could refer to when learning how to get involved.--[[User:qgil|qgil]] 11:54, 24 July 2008 (UTC)

== Success (and really wrong) stories ==

Putting the pressure on single developers doesn't help actually. The reality of the average Maemo SW developer is: busy with Nokia internal processes (including automated and human testing) and reporting to a project manager (directly) and a release manager (indirectly) that most probably don't follow the activity in bugs.maemo.org. Considering this setting, the public Bugzilla brings more work in exchange of an unclear outcome. This is why good triaging by the maemo.org bugmasters and the Bugsquad is good, because they help triage what really matters.

However, the real step is to prove that good usage of bugs.maemo.org results in less work and better quality, not more work resulting in worse performance/quality. I'm not saying that this is *the* position of Nokia. What I'm saying is that Nokia processes have been evolving during years and just recently they had to consider something like a public Bugzilla. Coming from an open source background the importance of public bug trackers is clear, and doesn't need further explanation. But on the other hand, device programs and non-free software development programs can also show good success rates with test and error management process done internally, getting user feedback from surveys, controlled tests, etc.. The Maemo SW is in between, affected by device &amp; closed source software development and also by pure open source development.

There are many things that are being changed internally to adapt to this situation, but there is one task where the Maemo community can help: bring the success stories happening in Maemo and elsewhere with a similar setting (e.g. public bugtrackers efficiently handled by companies shipping software preinstalled in devices). Equally useful would be clear stories of things that went wrong or could have gone clearly better if Nokia would have made a better use of bugs.maemo.org.

Being specific and objective, showing statistics and trends, helps a lot convincing not one or two developers but whole teams and management structures.--[[User:qgil|qgil]] 12:08, 24 July 2008 (UTC)

=== Status of projects ===

Something that would help in the Fremantle timeline is to define what products (aka which teams) are doing better and worse. Now there is an overall complaint, which is unfair to actually those individuals and teams that are doing a good work in bugs.maemo.org. The general complaint is also more difficult for us to chase reasons why things are how they are. If instead there would be a wiki page or something showing &quot;red - yellow - green - star&quot; status of each product matching a team, then we all would be able to focus on the right spots.--[[User:qgil|qgil]] 07:56, 19 November 2008 (UTC)
:I really hope the people who are putting forth that extra effort realize the complaints don't include them (even if they're not specifically excluded). I certainly appreciate the hard work those people put in, and I know most everybody else does, too. :) —[[User:generalantilles|GeneralAntilles]] 08:25, 19 November 2008 (UTC)

==== What metrics? ====

:Should be pretty easy to implement, but what are our metrics? Initial response time? Total fix turnaround time? Probably too complicated (the more complicated it is, the easier it is to be unfair) A simple two-part response rate and fix rate combination? Should the metrics be based entirely on hard-data, or would it be appropriate to factor in perception from, say, the Bugsquad (&quot;Yes, this team's numbers look good, but the responses were largely unhelpful and slow to arrive, and the fixes sub-par.&quot;). If the goal is simply to pin-point teams that need to improve their participation, than a perception-based grade with some statistical number crunching sounds best. —[[User:generalantilles|GeneralAntilles]] 08:25, 19 November 2008 (UTC)
::Perception is more than enough, I think. Red = too bad. Yellow = Well, ok. Green = Good!. Star = You're amazing, thanks!. The guys are getting plenty of robotic metrics in their jobs and at the end the objective is &quot;perceived quality&quot;. If you want to add numbers I'm sure they will be useful, but I think those 4 states (or even 2: good/bad) are good enough to chase the specific problems of the affected teams and congratulate publicly those doing a good work. --[[User:qgil|qgil]] 11:56, 20 November 2008 (UTC)

==== How often and where? ====

:How often should the report be updated? Weekly? Monthly? Quarterly? Obviously a wiki page should be maintained for reference, but where should the reports go to? maemo-developers? A blog for this purpose?
:: I'd say monthly. I was tempted to say quarterly since all teams might have some months specially stressful, but the longer the period the lesser your memory is reliable and the more you need to sustain perceptions with actual numbers.--[[User:qgil|qgil]] 12:10, 20 November 2008 (UTC)

:Can we start now? :D —[[User:generalantilles|GeneralAntilles]] 08:25, 19 November 2008 (UTC)
::OK, here's a really rough draft outline [[Task:Bugzilla report card]]. —[[User:generalantilles|GeneralAntilles]] 09:07, 19 November 2008 (UTC)
:::Hum, I'd start with something more minimalistic: x=months / y=products / content of cell: bad (red background) / meh (yellow) / good (green) / star .--[[User:qgil|qgil]] 12:10, 20 November 2008 (UTC)

== Improvements in the weekly reports ==

The weekly Bug Jar is just fantastic. It is also a very visual proof about the community capacity to get organized and help. Even if unrelated, it came more or less at the same time than the maemo.org bugmasters joined the team. Both things have cause a very good impact in the internal bug management people and process. Some ideas for improvement in the weekly reports:
* Website bugs out of the Jars. The Website bugs are reasonably well tracked and managed mostly at a community/public level. There are many and they add too much data to the Jars. Data like that is almost pure noise for the average Nokia guy working in Maemo Software.
* Visualizing the progress: now we get a picture every week, but we rely on our own memory to judge whether there is progress or not, small progress or big. Ideally there would be statistics and graphs showing the progress. A very good discovery and proofpoint would be to find out that before bugmasters and jars the lines were pointing trend A, and after that the lines point to much cooler trend B. This might sound stupid but those lines might convince more people inside and outside Nokia, more users and developers and managers, than the most rationalized arguments.
* Bug Jars in this wiki? Forget about this if it's too much extra work, but documenting the reports in the wiki would be useful. It could even be the default interface and then send updates to maemo.org lists and ITt.
--[[User:qgil|qgil]] 07:57, 25 July 2008 (UTC)
: Karsten is also working on porting some weekly summary/overview to Maemo Bugzilla, see [https://bugs.maemo.org/show_bug.cgi?id=3553]. This is on the map for [[100Days/Sprint4]]. Stephen is CC'ed and I naively hope that some code (or at least ideas) can be shared. --[[User:andre|andre]] 18:08, 12 August 2008 (UTC)

== Better organization of products and components ==

If you look inside components like System Software, System Management or Multimedia you will see that there is a bit of inconsistency aka mess in the components. This is not only poor usability for the bug reporters. It also makes life harder for Nokia developers to track where are the reports that affect to their work. Specially if you consider that developers work on teams, and many times teams are mapped to certain products and components. It is easier for Team A to know that they have to follow Product A and forget safely about the rest. This is now clear for e.g. Connectivity or Development Platform, which happen to be products that are reasonably well maintained. System Software would be the opposite case.--[[User:qgil|qgil]] 10:09, 30 July 2008 (UTC)
: I'm going to work on improving this in [[100Days/Sprint4]], see [https://bugs.maemo.org/show_bug.cgi?id=3562]. --[[User:andre|andre]] 18:14, 12 August 2008 (UTC)

: The organization is mostly my fault*, I didn't particularly like the organization used in the internal bug tracker and was trying to aim for something which more closely mapped to what users would see when they used their device. In the n800, that's basically: 1. Browser, 2. Communications, and 3. Desktop. After those come distinct blobs: A. Connectivity, B. Multimedia and C. Games. Then comes a section which is harder to divide. I chose to map things that appeared in/near control panel as &quot;System management&quot; and everything else into &quot;System software&quot;. Note that [http://mozilla.org mozilla.org] is currently experiencing a similar growing pain, the current [https://bugzilla.mozilla.org bugzilla.mozilla.org] organization is built around functionality that only the engineers who work on an area understand. This means that if you're an end user, or even an engineer from a different area you have a terrible time trying to find the right place to file a bug. * Except for Internet Tablet Video Converter which someone added on behalf of a different Nokia group. --[[User:timeless|timeless]] 18:51, 3 September 2008 (UTC)

:: Hi, I have been thinking and my conclusion is that we need a structure mapping platform areas and components down to the packages level. This would serve a much better purpose for generating reports and finding out the bugs in a way the Maemo teams at Nokia can process and handle better.--[[User:qgil|qgil]] 06:50, 22 October 2008 (UTC)
:::Package level? That'd be (for example) having components for dsme, bme and mce? Or breaking down &quot;Browser&quot; into microb-eal, microb-engine, tablet-browser-ui, tablet-browser-dialogs, tablet-browser-widgets, tablet-browser-controls, etc, etc? That sounds (to me, and assuming I'm actually reading &quot;packages level&quot; correctly) like hell for triagers and a good way to scare off reporters. —[[User:generalantilles|GeneralAntilles]] 07:01, 22 October 2008 (UTC)
::::Ok, ok, don't take the package level literally always. I agree they make less sense at the application level, where most end users will probably land. My main concern is not the package level but the fact that bugzilla products reflect better platform structure and (as a happy coincidence) Maemo SW team structure. For instance, now &quot;Applications&quot; list in fact &quot;Rest of applications&quot;, since Browser or Media Player are elsewhere. At the same time, &quot;Multimedia&quot; is handling both application and platorm components. The Maemo SW team has a clear divide between applications and platform. Users probably will be happier too if they would have an easy way to access the whole application level without having to mess with more obscure platform components. By doing this we can go to deeper levels in the platform since now there is a single component for e.g. &quot;Multimedia Framework&quot; when actually it would be good to know whether a bug is in GStreamer, PulseAudio or some Nokia closed component (for instance, upstream developers could track better what is going on there). No need to go down to the full list of GStreamer related packages, agreed. Let me start drafting a structure... Don't look at the components so much, I have concentrated on the products in this first round. --[[User:qgil|qgil]] 06:08, 23 October 2008 (UTC)

:Overall I like the reorg. Renaming System management to Settings &amp; Maintenance (which is mostly what you did) makes a lot of sense, I'm sorry I hadn't come up w/ that name in my reorg. X-Discontinued is an interesting hack. I'd sooner move it out of Official Applications. At mozilla.org, we have a Graveyard classification for this. That python is listed under discontinued is odd.... splitting some of System software into Desktop platform seems reasonable. DUN=(bt) Dial up networking; ICD=Internet Connectivity Daemon. Splitting Core out may make the Maemo Software Core team happy, but I'm not sure that Internationalization belongs in Desktop platform. I guess from an ownership perspective it does. From someone who usually doesn't pay attention to how Maemo Software (this is an organization in Nokia) works it doesn't. --[[User:timeless|timeless]] 19:14, 10 November 2008 (UTC)

=== Draft structure (implemented on Dec 06th, 2008) ===

The 3 levels respond to Classification, Product and Component. What is today &quot;Maemo Software&quot; would be split in Official Applications and Official Platform. 

* Official Applications (respond to a structure evident from a user point of view)
** Browser
*** Bookmarks
** Chat &amp; Internet Call ''(was: Communication)''
*** Chat
*** General ''(was: Communication/General (9 bugs))''
*** Internet Call ''(was: Communication/Internet Call)''
*** Presence ''(was: Communication/Presence)''
*** SIP ''(was: Communication/SIP)''
*** XMPP ''(was: Communication/XMPP)''
** Contacts ''(was: Communication/Contacts)''
** E-mail ''(was: Communication/Email)'' (Note: Webmail notifier: Under Home applets)
** Games
*** Blocks
*** Chess
*** Mahjong
*** Marbles
** Home applets
*** Battery
*** Clock 
*** Connection 
*** Contacts
*** Display 
*** Getting started
*** Internet radio 
*** Internet search
*** RSS feed reader
*** Webmail Notifier ''(was: Applications/Webmail Notifier, 8 bugs)''
** Images &amp; Camera ''(fits better to also have Cam bugs somewhere)''
*** Camera ''(was: Multimedia/Camera)''
*** Image viewer ''(was: Applications/Image viewer)''
** Map
** Media Player ''(was: Multimedia/Media Player)''
** RSS feed reader ''(was: Applications/RSS feed reader)''
** Settings &amp; Maintenance
*** Application manager ''(was: System management/Application manager)''
*** Backup/Restore ''(was: System management/Backup/Restore)''
*** Connection manager UI ''(was: System management/Connection manager)''
*** Control panel ''(was: System management/Control panel)''
*** Startup wizard ''(was: System management/Startup Wizard)''
*** Software updater
** Utilities
*** File manager ''(was: System management/File manager)''
*** Calculator
*** Clock
*** Help
*** Internet Tablet Video Converter ('''TODO''': Not yet moved due to subcomponents)
*** Notes
*** PDF reader
*** Sketch
*** Search ('''TODO''': What is this and who added it here? Not yet created)
*** X Terminal ''(was: System software/X Terminal)''
* Official Platform (respond to an architectural structure)
** Desktop platform
*** cairo
*** clutter
*** File System UI ''(was: System software/File System UI)''
*** Finger keyboard ''(was: System software/Finger keyboard)''
*** Fonts ''(was: System software/Fonts)''
*** gconf ''(was: System software/gconf)''
*** general ''(was: System software/general)'' ('''TODO''': Clean up and split up into Desktop platform and system software)
*** glib ''(was: System software/glib)''
*** gnome-vfs ''(was: System software/gnome-vfs)''
*** gtk ''(was: System software/gtk)''
*** gvfs
*** hildon-libs ''(was: System software/hildon-libs)''
*** hildon-thumbnail ''(was: System software/hildon-thumbnail)''
*** Home ''(was: Desktop/Home)''
*** Icons ''(was: Desktop/Icons)''
*** Input method framework ''(was: System software/Input method framework)''
*** Internationalization
*** libosso ''(was: System software/libosso)''
*** pango
*** sapwood ''(was: System software/sapwood)''
*** startup-shutdown ''(was: System software/startup-shutdown)''
*** Task navigator ''(was: Desktop/Task navigator)''
*** Themes ''(was: Desktop/Themes and System software/hildon-theme)'' '''TODO:''' Merge with System software/hildon-theme
*** Virtual keyboard ''(was: System software/Virtual keyboard)''
*** window-manager ''(was: System software/window-manager)''
** Connectivity
*** Bluetooth
*** DUN
*** ICD
*** Networking
*** Operator Setup Wizard ''(was: System management/Operator Setup Wizard)''
*** WiFi
*** WiMAX
** Core
*** Busybox ''(was: System software/Busybox)''
*** Kernel ''(was: System software/Kernel)''
*** X Server ''(was: System software/X Server)''
** Data
*** Meta Tracker
*** metalayer-crawler ('''TODO''': Move to X-Graveyard as Fremantle does NOT have initfs)
*** SQLite
** Development platform
*** Documentation
*** general
*** installer
*** rootstrap
*** SDK
*** Tools
** Flasher
** Location ''(was: Connectivity/Location Framework)''
** Multimedia
*** DSP ('''TODO:''' Create and clean up; Though DSP gateway = Kernel) '''SETNEWQA''': dsp-bugs@maemo.bugs
*** Gstreamer
*** Media streamer ('''TODO:''' better in applications? --[[User:qgil|qgil]] 19:32, 5 November 2008 (UTC) )
*** Multimedia framework ('''TODO:''' Vague)
*** Pulseaudio
*** Real
** Real Time Communication
*** Telepathy
** System software
*** application-killer
*** D-Bus ''(was: dbus)''
*** Device lock ''(was: Desktop/Device lock)'' '''TODO''': Triage - some bugs belong here, but some are in fact hildon widget bugs)
*** dsme (''was: System Software/dsme AND System Software/Watchdog'', '''TODO''': merge?)
*** File system
*** general
*** glibc
*** HAL
*** libxml
*** maemo-launcher
*** mmc-and-usb
*** OHM
*** upstart ('''TODO''': Add this for Fremantle?)
** Translations
** UI Specification
** User guide &amp; Help content (should get rid off vague &quot;Docu&quot; term)
*** Help content
*** User guide
* X-Graveyard
** X-Discontinued
*** Audio player (770) ''(was: Multimedia/Audio player)''
*** core-initfs ('''TODO''': Create, move 2021, 1855, 3852, 3589 and maybe 3745. Fremantle does NOT have initfs)
*** FM Radio (N800) ''(was: Multimedia/FM Radio)''
*** &quot;Misdirected&quot; product bugs
*** Browser: Opera engine ''(was: Browser/Opera engine (770/N800))''
*** osso-email ''(was: Communication/osso-email)''
*** python ''(was: System software/python)''
*** Video player (770) ''(was: Multimedia/Video player)''

[[User:Andre|Andre]]: Getting rid of the &quot;Applications&quot; product is very good. It was often confused with Desktop (e.g. mixing up Applets and Apps with the same name). But having Desktop now in Platform might also be confusing if you're used to the old structure so I changed this to &quot;Desktop Platform&quot;.
What I have already done: I've moved Developer Docu from Website to Dev Platform (because it's out of community scope, see bug 3562).
Removed ancient Games/Startscreen subcomponent (only 2 bugs), Removed Desktop/PC connection (1 wrong bug), Desktop/Tableteer Info (0 bugs), Desktop/Desktop Info applet (0 bugs). Removed Communication/Accounts (3 bugs, 2 wrong). Removed System software/libcommon-error (0 bugs).
Removed System management/Teach handwriting (0 bugs). Removed Web shortcut (0 bugs, development stalled since Diablo).
Several additions done on Dec 06th 2008 (metalayer-crawler, HAL, OHM, Software Updater, Maps, gvfs, pango, Internationalization, meta tracker, SQLite, Pulseaudio, GStreamer, Real, etc). Removed iconf (moved into Internationalization), removed User Interaction (cleaned up and moved into other components).

=== Draft implementation ===
[http://blogs.gnome.org/aklapper/2008/11/07/bugsmaemoorg-reorganization Original plan]:
&lt;ol&gt;
&lt;li&gt;Create new default QA virtual accounts for new products/components in advance ('''done''')&lt;/li&gt;
&lt;li&gt;Define a good day/time (Sunday?)&lt;/li&gt;
&lt;/ol&gt;
::Friday night's or holiday weekends are better [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;Display info message about reorg one week in advance in /template/en/default/global/banner.html.tmpl&lt;/li&gt;
&lt;li&gt;Create dummy products (X-DoNotUse1 etc) in advance with their TMs and versions to save time (as number of planned products &gt; current number of products)&lt;/li&gt;
&lt;/ol&gt;
:: Create products with correct names but which have a group access restriction to the admin group. They won't show up to anyone else. [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)
:: Use the &quot;shutdownhtml&quot; param to keep everyone else out (you need a feature which we need to upstream, contact moznet#bmo for it if we haven't posted a bug+patch) [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)
&lt;ol start=&quot;5&quot;&gt;
&lt;li&gt;Disable mail notification&lt;/li&gt;
&lt;li&gt;Implement changes&lt;/li&gt;
&lt;li&gt;Correct some other inconsistent QA Contact settings in some bugs that I have on a list&lt;/li&gt;
&lt;/ol&gt;
::TODO: Check whether adding a disabled virtual QA Contact to watchlist really provides receiving mail - I doubt with the current settings --[[User:Andre|Andre]])
::disabling an account doesn't prevent it from getting mail, you need to disable mail in editprefs, there's a cheap url to doing this, it's something like https://bugzilla/userprefs.cgi?tab=email&amp;dosave=1 you can use impersonation to flop in and out of each user fairly quickly. [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)
&lt;ol start=&quot;8&quot;&gt;
&lt;li&gt;Enable mail notification&lt;/li&gt;
&lt;li&gt;Remove banner&lt;/li&gt;
&lt;/ol&gt;
[[User:timeless|timeless]] prefers to keep mail notification enabled while doing this, see [http://blogs.gnome.org/aklapper/2008/11/07/bugsmaemoorg-reorganization/#comment-325 discussion]. So far, I disagree. :) --[[User:Andre|Andre]]  12:06, 11 November 2008 (UTC)

the other thing i messed up in the bmo reorg basically destroyed date state about a set of bugs, the only way i had of finding them was searching through my mail [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Getting Nokia involved in bugs.maemo.org</title>
    <id>906</id>
    <revision>
      <id>9225</id>
      <timestamp>2008-12-06T20:29:48Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <comment>added more explanations on today's reorg</comment>
      <text xml:space="preserve">== Best practices for everybody ==

There is one assumption that not always becomes true: Bugzilla users know how to deal with bug tracking. This might apply both to users (poor reports, wrong severity/priority, reopening of wontfixes/invalids just because, bad behavior...) and maintainers (harsh resolving, lack of explanations, little knowledge of the possibilities of the tool, bad behavior too...). We see this in most free software projects and bugs.maemo.org is not exempt of this risk.

In fact, having @nokia guys around makes things a bit more difficult sometimes: certain users take the chance to establish a personal war against &quot;Nokia&quot;, others might simply ignore the complexity behind a simple bug and a simple Nokia developer commenting on that bug. On the other hand, Nokia employees are busy enough with an internal bug tracker that counts in their internal process, and communicating to the outside makes things more complex: because of wearing the Nokia shirt you can be quoted anywhere and because some (actually many) bug resolutions are related to confidential information.

Also, Maemo gets many newcomers not familiar with free software development practices, both in the user and developer side, which makes the own concept of a public bug tracker strange for some.

For all these reasons it would be good to have a concise 'for dummies' guide for users and maintainers that everybody could refer to when learning how to get involved.--[[User:qgil|qgil]] 11:54, 24 July 2008 (UTC)

== Success (and really wrong) stories ==

Putting the pressure on single developers doesn't help actually. The reality of the average Maemo SW developer is: busy with Nokia internal processes (including automated and human testing) and reporting to a project manager (directly) and a release manager (indirectly) that most probably don't follow the activity in bugs.maemo.org. Considering this setting, the public Bugzilla brings more work in exchange of an unclear outcome. This is why good triaging by the maemo.org bugmasters and the Bugsquad is good, because they help triage what really matters.

However, the real step is to prove that good usage of bugs.maemo.org results in less work and better quality, not more work resulting in worse performance/quality. I'm not saying that this is *the* position of Nokia. What I'm saying is that Nokia processes have been evolving during years and just recently they had to consider something like a public Bugzilla. Coming from an open source background the importance of public bug trackers is clear, and doesn't need further explanation. But on the other hand, device programs and non-free software development programs can also show good success rates with test and error management process done internally, getting user feedback from surveys, controlled tests, etc.. The Maemo SW is in between, affected by device &amp; closed source software development and also by pure open source development.

There are many things that are being changed internally to adapt to this situation, but there is one task where the Maemo community can help: bring the success stories happening in Maemo and elsewhere with a similar setting (e.g. public bugtrackers efficiently handled by companies shipping software preinstalled in devices). Equally useful would be clear stories of things that went wrong or could have gone clearly better if Nokia would have made a better use of bugs.maemo.org.

Being specific and objective, showing statistics and trends, helps a lot convincing not one or two developers but whole teams and management structures.--[[User:qgil|qgil]] 12:08, 24 July 2008 (UTC)

=== Status of projects ===

Something that would help in the Fremantle timeline is to define what products (aka which teams) are doing better and worse. Now there is an overall complaint, which is unfair to actually those individuals and teams that are doing a good work in bugs.maemo.org. The general complaint is also more difficult for us to chase reasons why things are how they are. If instead there would be a wiki page or something showing &quot;red - yellow - green - star&quot; status of each product matching a team, then we all would be able to focus on the right spots.--[[User:qgil|qgil]] 07:56, 19 November 2008 (UTC)
:I really hope the people who are putting forth that extra effort realize the complaints don't include them (even if they're not specifically excluded). I certainly appreciate the hard work those people put in, and I know most everybody else does, too. :) —[[User:generalantilles|GeneralAntilles]] 08:25, 19 November 2008 (UTC)

==== What metrics? ====

:Should be pretty easy to implement, but what are our metrics? Initial response time? Total fix turnaround time? Probably too complicated (the more complicated it is, the easier it is to be unfair) A simple two-part response rate and fix rate combination? Should the metrics be based entirely on hard-data, or would it be appropriate to factor in perception from, say, the Bugsquad (&quot;Yes, this team's numbers look good, but the responses were largely unhelpful and slow to arrive, and the fixes sub-par.&quot;). If the goal is simply to pin-point teams that need to improve their participation, than a perception-based grade with some statistical number crunching sounds best. —[[User:generalantilles|GeneralAntilles]] 08:25, 19 November 2008 (UTC)
::Perception is more than enough, I think. Red = too bad. Yellow = Well, ok. Green = Good!. Star = You're amazing, thanks!. The guys are getting plenty of robotic metrics in their jobs and at the end the objective is &quot;perceived quality&quot;. If you want to add numbers I'm sure they will be useful, but I think those 4 states (or even 2: good/bad) are good enough to chase the specific problems of the affected teams and congratulate publicly those doing a good work. --[[User:qgil|qgil]] 11:56, 20 November 2008 (UTC)

==== How often and where? ====

:How often should the report be updated? Weekly? Monthly? Quarterly? Obviously a wiki page should be maintained for reference, but where should the reports go to? maemo-developers? A blog for this purpose?
:: I'd say monthly. I was tempted to say quarterly since all teams might have some months specially stressful, but the longer the period the lesser your memory is reliable and the more you need to sustain perceptions with actual numbers.--[[User:qgil|qgil]] 12:10, 20 November 2008 (UTC)

:Can we start now? :D —[[User:generalantilles|GeneralAntilles]] 08:25, 19 November 2008 (UTC)
::OK, here's a really rough draft outline [[Task:Bugzilla report card]]. —[[User:generalantilles|GeneralAntilles]] 09:07, 19 November 2008 (UTC)
:::Hum, I'd start with something more minimalistic: x=months / y=products / content of cell: bad (red background) / meh (yellow) / good (green) / star .--[[User:qgil|qgil]] 12:10, 20 November 2008 (UTC)

== Improvements in the weekly reports ==

The weekly Bug Jar is just fantastic. It is also a very visual proof about the community capacity to get organized and help. Even if unrelated, it came more or less at the same time than the maemo.org bugmasters joined the team. Both things have cause a very good impact in the internal bug management people and process. Some ideas for improvement in the weekly reports:
* Website bugs out of the Jars. The Website bugs are reasonably well tracked and managed mostly at a community/public level. There are many and they add too much data to the Jars. Data like that is almost pure noise for the average Nokia guy working in Maemo Software.
* Visualizing the progress: now we get a picture every week, but we rely on our own memory to judge whether there is progress or not, small progress or big. Ideally there would be statistics and graphs showing the progress. A very good discovery and proofpoint would be to find out that before bugmasters and jars the lines were pointing trend A, and after that the lines point to much cooler trend B. This might sound stupid but those lines might convince more people inside and outside Nokia, more users and developers and managers, than the most rationalized arguments.
* Bug Jars in this wiki? Forget about this if it's too much extra work, but documenting the reports in the wiki would be useful. It could even be the default interface and then send updates to maemo.org lists and ITt.
--[[User:qgil|qgil]] 07:57, 25 July 2008 (UTC)
: Karsten is also working on porting some weekly summary/overview to Maemo Bugzilla, see [https://bugs.maemo.org/show_bug.cgi?id=3553]. This is on the map for [[100Days/Sprint4]]. Stephen is CC'ed and I naively hope that some code (or at least ideas) can be shared. --[[User:andre|andre]] 18:08, 12 August 2008 (UTC)

== Better organization of products and components ==

If you look inside components like System Software, System Management or Multimedia you will see that there is a bit of inconsistency aka mess in the components. This is not only poor usability for the bug reporters. It also makes life harder for Nokia developers to track where are the reports that affect to their work. Specially if you consider that developers work on teams, and many times teams are mapped to certain products and components. It is easier for Team A to know that they have to follow Product A and forget safely about the rest. This is now clear for e.g. Connectivity or Development Platform, which happen to be products that are reasonably well maintained. System Software would be the opposite case.--[[User:qgil|qgil]] 10:09, 30 July 2008 (UTC)
: I'm going to work on improving this in [[100Days/Sprint4]], see [https://bugs.maemo.org/show_bug.cgi?id=3562]. --[[User:andre|andre]] 18:14, 12 August 2008 (UTC)

: The organization is mostly my fault*, I didn't particularly like the organization used in the internal bug tracker and was trying to aim for something which more closely mapped to what users would see when they used their device. In the n800, that's basically: 1. Browser, 2. Communications, and 3. Desktop. After those come distinct blobs: A. Connectivity, B. Multimedia and C. Games. Then comes a section which is harder to divide. I chose to map things that appeared in/near control panel as &quot;System management&quot; and everything else into &quot;System software&quot;. Note that [http://mozilla.org mozilla.org] is currently experiencing a similar growing pain, the current [https://bugzilla.mozilla.org bugzilla.mozilla.org] organization is built around functionality that only the engineers who work on an area understand. This means that if you're an end user, or even an engineer from a different area you have a terrible time trying to find the right place to file a bug. * Except for Internet Tablet Video Converter which someone added on behalf of a different Nokia group. --[[User:timeless|timeless]] 18:51, 3 September 2008 (UTC)

:: Hi, I have been thinking and my conclusion is that we need a structure mapping platform areas and components down to the packages level. This would serve a much better purpose for generating reports and finding out the bugs in a way the Maemo teams at Nokia can process and handle better.--[[User:qgil|qgil]] 06:50, 22 October 2008 (UTC)
:::Package level? That'd be (for example) having components for dsme, bme and mce? Or breaking down &quot;Browser&quot; into microb-eal, microb-engine, tablet-browser-ui, tablet-browser-dialogs, tablet-browser-widgets, tablet-browser-controls, etc, etc? That sounds (to me, and assuming I'm actually reading &quot;packages level&quot; correctly) like hell for triagers and a good way to scare off reporters. —[[User:generalantilles|GeneralAntilles]] 07:01, 22 October 2008 (UTC)
::::Ok, ok, don't take the package level literally always. I agree they make less sense at the application level, where most end users will probably land. My main concern is not the package level but the fact that bugzilla products reflect better platform structure and (as a happy coincidence) Maemo SW team structure. For instance, now &quot;Applications&quot; list in fact &quot;Rest of applications&quot;, since Browser or Media Player are elsewhere. At the same time, &quot;Multimedia&quot; is handling both application and platorm components. The Maemo SW team has a clear divide between applications and platform. Users probably will be happier too if they would have an easy way to access the whole application level without having to mess with more obscure platform components. By doing this we can go to deeper levels in the platform since now there is a single component for e.g. &quot;Multimedia Framework&quot; when actually it would be good to know whether a bug is in GStreamer, PulseAudio or some Nokia closed component (for instance, upstream developers could track better what is going on there). No need to go down to the full list of GStreamer related packages, agreed. Let me start drafting a structure... Don't look at the components so much, I have concentrated on the products in this first round. --[[User:qgil|qgil]] 06:08, 23 October 2008 (UTC)

:Overall I like the reorg. Renaming System management to Settings &amp; Maintenance (which is mostly what you did) makes a lot of sense, I'm sorry I hadn't come up w/ that name in my reorg. X-Discontinued is an interesting hack. I'd sooner move it out of Official Applications. At mozilla.org, we have a Graveyard classification for this. That python is listed under discontinued is odd.... splitting some of System software into Desktop platform seems reasonable. DUN=(bt) Dial up networking; ICD=Internet Connectivity Daemon. Splitting Core out may make the Maemo Software Core team happy, but I'm not sure that Internationalization belongs in Desktop platform. I guess from an ownership perspective it does. From someone who usually doesn't pay attention to how Maemo Software (this is an organization in Nokia) works it doesn't. --[[User:timeless|timeless]] 19:14, 10 November 2008 (UTC)

=== Draft structure (implemented on Dec 06th, 2008) ===

The 3 levels respond to Classification, Product and Component. What is today &quot;Maemo Software&quot; would be split in Official Applications and Official Platform. 

* Official Applications (respond to a structure evident from a user point of view)
** Browser
*** Bookmarks
** Chat &amp; Internet Call ''(was: Communication)''
*** Chat
*** General ''(was: Communication/General (9 bugs))''
*** Internet Call ''(was: Communication/Internet Call)''
*** Presence ''(was: Communication/Presence)''
*** SIP ''(was: Communication/SIP)''
*** XMPP ''(was: Communication/XMPP)''
** Contacts ''(was: Communication/Contacts)''
** E-mail ''(was: Communication/Email)'' (Note: Webmail notifier: Under Home applets)
** Games
*** Blocks
*** Chess
*** Mahjong
*** Marbles
** Home applets
*** Battery
*** Clock 
*** Connection 
*** Contacts
*** Display 
*** Getting started
*** Internet radio 
*** Internet search
*** RSS feed reader
*** Webmail Notifier ''(was: Applications/Webmail Notifier, 8 bugs)''
** Images &amp; Camera ''(fits better to also have Cam bugs somewhere)''
*** Camera ''(was: Multimedia/Camera)''
*** Image viewer ''(was: Applications/Image viewer)''
** Map
** Media Player ''(was: Multimedia/Media Player)''
** RSS feed reader ''(was: Applications/RSS feed reader)''
** Settings &amp; Maintenance
*** Application manager ''(was: System management/Application manager)''
*** Backup/Restore ''(was: System management/Backup/Restore)''
*** Connection manager UI ''(was: System management/Connection manager)''
*** Control panel ''(was: System management/Control panel)''
*** Startup wizard ''(was: System management/Startup Wizard)''
*** Software updater
** Utilities
*** File manager ''(was: System management/File manager)''
*** Calculator
*** Clock
*** Help
*** Internet Tablet Video Converter ('''TODO''': Not yet moved due to subcomponents)
*** Notes
*** PDF reader
*** Sketch
*** Search ('''TODO''': What is this and who added it here? Not yet created)
*** X Terminal ''(was: System software/X Terminal)''
* Official Platform (respond to an architectural structure)
** Desktop platform
*** cairo
*** clutter
*** File System UI ''(was: System software/File System UI)''
*** Finger keyboard ''(was: System software/Finger keyboard)''
*** Fonts ''(was: System software/Fonts)''
*** gconf ''(was: System software/gconf)''
*** general ''(was: System software/general)'' ('''TODO''': Clean up and split up into Desktop platform and system software)
*** glib ''(was: System software/glib)''
*** gnome-vfs ''(was: System software/gnome-vfs)''
*** gtk ''(was: System software/gtk)''
*** gvfs
*** hildon-libs ''(was: System software/hildon-libs)''
*** hildon-thumbnail ''(was: System software/hildon-thumbnail)''
*** Home ''(was: Desktop/Home)''
*** Icons ''(was: Desktop/Icons)''
*** Input method framework ''(was: System software/Input method framework)''
*** Internationalization
*** libosso ''(was: System software/libosso)''
*** pango
*** sapwood ''(was: System software/sapwood)''
*** startup-shutdown ''(was: System software/startup-shutdown)''
*** Task navigator ''(was: Desktop/Task navigator)''
*** Themes ''(was: Desktop/Themes and System software/hildon-theme)'' '''TODO:''' Merge with System software/hildon-theme
*** Virtual keyboard ''(was: System software/Virtual keyboard)''
*** window-manager ''(was: System software/window-manager)''
** Connectivity
*** Bluetooth
*** DUN
*** ICD
*** Networking
*** Operator Setup Wizard ''(was: System management/Operator Setup Wizard)''
*** WiFi
*** WiMAX
** Core
*** Busybox ''(was: System software/Busybox)''
*** Kernel ''(was: System software/Kernel)''
*** X Server ''(was: System software/X Server)''
** Data
*** Meta Tracker
*** metalayer-crawler ('''TODO''': Move to X-Graveyard as Fremantle does NOT have initfs)
*** SQLite
** Development platform
*** Documentation
*** general
*** installer
*** rootstrap
*** SDK
*** Tools
** Flasher
** Location ''(was: Connectivity/Location Framework)''
** Multimedia
*** DSP ('''TODO:''' Create and clean up; Though DSP gateway = Kernel) '''SETNEWQA''': dsp-bugs@maemo.bugs
*** Gstreamer
*** Media streamer ('''TODO:''' better in applications? --[[User:qgil|qgil]] 19:32, 5 November 2008 (UTC) )
*** Multimedia framework ('''TODO:''' Vague)
*** Pulseaudio
*** Real
** Real Time Communication
*** Telepathy
** System software
*** application-killer
*** D-Bus ''(was: dbus)''
*** Device lock ''(was: Desktop/Device lock)'' '''TODO''': Triage - some bugs belong here, but some are in fact hildon widget bugs)
*** dsme (''was: System Software/dsme AND System Software/Watchdog'', '''TODO''': merge?)
*** File system
*** general
*** glibc
*** HAL
*** libxml
*** maemo-launcher
*** mmc-and-usb
*** OHM
*** upstart ('''TODO''': Add this for Fremantle?)
** Translations
** UI Specification
** User guide &amp; Help content (should get rid off vague &quot;Docu&quot; term)
*** Help content
*** User guide
* X-Graveyard
** X-Discontinued
*** Audio player (770) ''(was: Multimedia/Audio player)''
*** core-initfs ('''TODO''': Create, move 2021, 1855, 3852, 3589 and maybe 3745. Fremantle does NOT have initfs)
*** FM Radio (N800) ''(was: Multimedia/FM Radio)''
*** &quot;Misdirected&quot; product bugs
*** Browser: Opera engine ''(was: Browser/Opera engine (770/N800))''
*** osso-email ''(was: Communication/osso-email)''
*** python ''(was: System software/python)''
*** Video player (770) ''(was: Multimedia/Video player)''

[[User:Andre|Andre]]: Getting rid of the &quot;Applications&quot; product is very good. It was often confused with Desktop (e.g. mixing up Applets and Apps with the same name). But having Desktop now in Platform might also be confusing if you're used to the old structure so I changed this to &quot;Desktop Platform&quot;.
What I have already done: I've moved Developer Docu from Website to Dev Platform (because it's out of community scope, see bug 3562).
Removed ancient Games/Startscreen subcomponent (only 2 bugs), Removed Desktop/PC connection (1 wrong bug), Desktop/Tableteer Info (0 bugs), Desktop/Desktop Info applet (0 bugs). Removed Communication/Accounts (3 bugs, 2 wrong). Removed System software/libcommon-error (0 bugs).
Removed System management/Teach handwriting (0 bugs). Removed Web shortcut (0 bugs, development stalled since Diablo).
Several additions done on Dec 06th 2008 (metalayer-crawler, HAL, OHM, Software Updater, Maps, gvfs, pango, Internationalization, meta tracker, SQLite, Pulseaudio, GStreamer, Real, etc). Removed iconf (moved into Internationalization), removed User Interaction (cleaned up and moved into other components).

=== Draft implementation ===
[http://blogs.gnome.org/aklapper/2008/11/07/bugsmaemoorg-reorganization Original plan]:
&lt;ol&gt;
&lt;li&gt;Create new default QA virtual accounts for new products/components in advance ('''done''')&lt;/li&gt;
&lt;li&gt;Define a good day/time (Sunday?)&lt;/li&gt;
&lt;/ol&gt;
::Friday night's or holiday weekends are better [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;Display info message about reorg one week in advance in /template/en/default/global/banner.html.tmpl&lt;/li&gt;
&lt;li&gt;Create dummy products (X-DoNotUse1 etc) in advance with their TMs and versions to save time (as number of planned products &gt; current number of products)&lt;/li&gt;
&lt;/ol&gt;
:: Create products with correct names but which have a group access restriction to the admin group. They won't show up to anyone else. [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)
:: Use the &quot;shutdownhtml&quot; param to keep everyone else out (you need a feature which we need to upstream, contact moznet#bmo for it if we haven't posted a bug+patch) [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)
&lt;ol start=&quot;5&quot;&gt;
&lt;li&gt;Disable mail notification&lt;/li&gt;
&lt;li&gt;Implement changes&lt;/li&gt;
&lt;li&gt;Correct some other inconsistent QA Contact settings in some bugs that I have on a list&lt;/li&gt;
&lt;/ol&gt;
::TODO: Check whether adding a disabled virtual QA Contact to watchlist really provides receiving mail - I doubt with the current settings --[[User:Andre|Andre]])
::disabling an account doesn't prevent it from getting mail, you need to disable mail in editprefs, there's a cheap url to doing this, it's something like https://bugzilla/userprefs.cgi?tab=email&amp;dosave=1 you can use impersonation to flop in and out of each user fairly quickly. [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)
&lt;ol start=&quot;8&quot;&gt;
&lt;li&gt;Enable mail notification&lt;/li&gt;
&lt;li&gt;Remove banner&lt;/li&gt;
&lt;/ol&gt;
[[User:timeless|timeless]] prefers to keep mail notification enabled while doing this, see [http://blogs.gnome.org/aklapper/2008/11/07/bugsmaemoorg-reorganization/#comment-325 discussion]. So far, I disagree. :) --[[User:Andre|Andre]]  12:06, 11 November 2008 (UTC)

the other thing i messed up in the bmo reorg basically destroyed date state about a set of bugs, the only way i had of finding them was searching through my mail [[User:timeless|timeless]] 17:37, 19 November 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:ITt Collaboration</title>
    <id>1241</id>
    <revision>
      <id>48856</id>
      <timestamp>2012-07-30T10:17:16Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Task:ITt Collaboration]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">''(((Discussion moved from main page)))''

maemo.org and ITt services should integrate much better i.e. maemo.org Downloads syndicated in ITt and ITt users getting maemo.org karma. 

* Each application (version) that is syndicated on Internet Tablet Talk, starts a new thread in the forums so end-users get notified of new apps as well as provide a way to give feedback to the developers. Developers themselves can also join in the discussion. This, hopefully, will help to better the quality of applications.
:''What would be the point of most the garage facilities then? I am not convinced that developers will all go looking at ITT for feedback (some projects work like that, but most rely on mailing lists and irc for example). If there was to a ITT thread for user feedback then maybe add to it a big fat 'report a bug on package x' or 'contact developers of package x'. --[[User:trickie|trickie]] 12:17, 1 June 2008 (UTC)''
::''I second that. Forums are not suitable for regular development, and taking the discussion away from the tracker facilities is a bad thing - the people will keep reporting bugs on the forums rather than filling a report. Besides, lots of developers don't read forums, they are counter-productive and take a lot of time. Users or developers can start threads for their apps on their own, but I see no reason to make this obligatory. --[[User:zap|zap]] 14:45, 3 June 2008 (UTC)''
:::''The goal here is to get the average to not so average end-user to get involved, solicit feedback from them, and hopefully provide a good discussion between other users and ultimately improve the apps. No one, even the developers, are required to join the discussion but  it will be healthy for the community to discuss the app and not just report bugs. --[[User:rsuplido|Reggie]] 14:30, 4 June 2008 (UTC)'' 
* Provide a way for developers to easily add a bug at the application's Garage page for confirmed bugs reported in the discussion thread.
:''We have agreed with ITt on the general idea. It's something urgent and it would be definitely good to see it in the 100 Days. The specific plan to be discussed in an open page, either here or in ITt or both. In any case, it's clear that the feature is &quot;syndication&quot;. Then ITt or whoever can benefit from that, and are the developers of each piece of software that decide if they want to direct the user feedback to ITt, their garage project, the project website, etc.--[[User:qgil|qgil]] 06:59, 2 June 2008 (UTC)''
::''A solution could be to add a bugtracker field to the entry in the application catalog. This could then point to the developer's own bugtracker, the maemo bugtracker or a thread at ITt. This could be done on a short term and be a temporary solution until we implement a global bugtracker. --[[User:xfade|xfade]] 13:23, 2 June 2008 (UTC)''

* Today we have too many channels (ITT, maemo.org...). Maybe have some more focus like: maemo.org for developers and ITT for end users and something that links them so software releases can be announced automatically on ITT and users from ITT can easily post bugs on garage bugzilla for example.
:''Perhaps develop a plan, but this isn't specific enough to achieve in 3 months, IMHO --[[User:jaffa|jaffa]] 22:10, 29 May 2008 (UTC)''
::''I'm not convinced that two channels is too many, either. —[[User:generalantilles|generalantilles]] 20:04, 31 May 2008 (UTC)


=== Discussion Forums ===


3. Effectively replace &quot;iTT Software Section&quot; with #2 from this list.

:: About 2 and 3 - I thought we all agreed on that here: http://www.internettablettalk.com/forums/showthread.php?t=20261, just compiling a single list won't solve the dependency hell.  [[User:bundyo|bundyo]] 19:04, 30 May 2008 (UTC)

:: It will not but then it is not the goal of 2. The goal is to supplement the current half-baked Application Installer app with a quickly modifiable online interface for searching and selecting applications. This will help users to find more applications and in the same time it will help developers to figure out just how exactly application installer should work. Instead of waiting for the next OS release, it is really easy to modify the web interface and see which modification is better. Later, the real App Installer can be designed to have the same or similar interface.
::: I can see what your idea is, but i don't think the user will be happy when his/her NIT falls into a reboot loop due to some library replacement. Not good for official, but maybe will be good for the developers to see what is already ported and not doing it again. [[User:bundyo|bundyo]] 20:49, 30 May 2008 (UTC)
:::: Situation where a library used by some other application is being upgraded can be checked and reported to the user, as a warning. And no, of course I do not suggest that this system is associated with Nokia in any way:  Nokia can't be held responsible for all the repositories out there.
::::: Well, then it should be discussed as kind of an upgrade to Gronmayer's site, maybe with him? [[User:bundyo|bundyo]] 21:35, 30 May 2008 (UTC)
:::::: Definitely: after all, he has all the code already. Replicating it is extra work. As to the UI, I have got a mock up already, if anybody is interested (http://fms.komkon.org/Maemo/). [[User:fms|fms]]

== Out of scope ==

1. Fix iTT's style sheets so that they work well on MicroB! It is a joke that a site dedicated to internet tablets cannot be effectively viewed with an internet tablet.
: Just stylesheets may not be enough - the real problem lies elsewhere: run a Firebug Net test and look at the results - seems like right now the front page is 700k, delivered by 67 requests. Some things take seconds to load, some javascripts are with php extension, thus not using cache, taking precious bandwidth and seconds to load, I'm not sure I see the reason for that. Things that can be done to get it faster - javascript libraries can be compressed with YUI compressor for instance and not served with php so they can cache properly, replace youtube videos with handy links for mytube just for ITs, combine stylesheets and javascripts together, reducing requests, use fewer PNGs with alpha, if any - Cairo probably will have a good deal of trouble displaying them on an IT. [[User:bundyo|bundyo]] 20:44, 30 May 2008 (UTC)
:: Umgh... I did notice the stylesheet but did not know it was that bad. My suggestion would be to simplify the page rather than use compressor, etc. There is absolutely no reason for this page to be this complicated and take 700kB. It is not doing anything special, just presenting a few views to the reader. Really hope Reggie sees the light at some point and changes his setup. —Preceding unsigned comment added by [[User:fms|fms]] 17:19, 30 May 2008 (UTC)
:Though definitely something that needs doing, it's a bit out of scope for maemo.org. ;) Somebody want to run through the areas where Reggie could optimized and open a thread in the [http://www.internettablettalk.com/forums/forumdisplay.php?f=16 Comment/Suggest] forum over there? —[[User:generalantilles|generalantilles]] 21:22, 30 May 2008 (UTC)
::another itT redesign (tablet-friendly) is planned. --[[User:rsuplido|Reggie]] 20:54, 2 June 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Improving maemo.org</title>
    <id>1062</id>
    <revision>
      <id>8310</id>
      <timestamp>2008-10-31T15:30:31Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Move proposals to talk page, concentrate on &quot;design drafts&quot; (and have each one succeed the previous) instead</comment>
      <text xml:space="preserve">== What is the target? ==
* Rethink focus of maemo.org as a whole: Are Tablets for coders or regular users? (I think the latter.) - TimSamoff
:IMHO open collaboration is the lowest barriers and passive users aka consumers will be much happier with a pure consumer site. See [[2010_Agenda#The_one_site_for_end_users]] (might move to an own page soon).--[[User:qgil|qgil]] 20:28, 1 August 2008 (UTC)

== Improving the current web structure ==

=== What is wrong in the current maemo.org website structure?===
* Navigation is a little hard to...navigate.
** Certain user-centered items should be prevalent and easy to use (e.g., Downloads, News, Documentation).
*** Downloads page(s) could be better organized (takes notes from user-centered software sites like [http://www.versiontracker.com VersionTracker.com], or even something [http://www.mp3.com completely non-software-related]).
** A lot of the subnav stuff (Roadmap, Lists, Bugzilla, SDK, IRC, etc.) could be removed from the main page and placed in a Developer-centric page.
* As discussed [[Talk:Task:Improving_maemo.org/community#Where_to_get_dynamic_content_from|here]], should the main page be more of an aggregated community-driven content portal?

=== What works about the current web structure? ===
'''List positive remarks here:'''
* Main page News summaries are good.
* The idea of posting &quot;The Pearl&quot; is good. Should it just be called &quot;maemo.org Download Picks&quot; (or something)?

=== Proposals to turn bad in good and create a good structure ===
* List here proposals.

== Improving the current web content ==

What is wrong in the current maemo.org content?
* Too much text alone. This is ok in developer documentation and dense stuff, but for the rest...--[[User:qgil|qgil]] 20:35, 1 August 2008 (UTC)

Proposals to turn bad in good and create good content.
* Snappy texts combined with images and graphics (screenshots, images, pictures...) and video, lots of videos and screencasts. Maemo is beautiful and its community generates a lot of visual stuff.--[[User:qgil|qgil]] 20:35, 1 August 2008 (UTC)

== Proposals for front page refresh ==

Several proposals for front page layout were submitted:

* [[User:Qgil | Quim Gil]]: Proposals [[:Image:2898548020_f296152527_b.jpg|1]], [[:Image:Maemo-org-joint-mockup.png|2]] and [[:Image:Maemoorg-home-proposal-3.jpg|3]]
* [[User:Dneary | Dave Neary]]: [[:Image:Dneary_front_page_mockup.jpg | Dave's proposal]]
* [[User:Jaffa | Andrew Flegg]]: [http://bleb.org/software/maemo/maemo-org_mockup.png Jaffa's mock-up]
* [[User:Bundyo | Kamen Bundev]]: [http://www.bundyo.org/maemo/site Bundyo's mock-up (customizable front page, click on panel headers for controls)] [http://www.bundyo.org/maemo/site/index2.html Bundyo's mock-up 2 (internal page, dynamic breadcrumbs)] [[User:bundyo|bundyo]] 09:02, 1 October 2008 (UTC)
* [[User:timsamoff | Tim Samoff]]: [http://samoff.maemobox.org/maemo_redesign/samoff-maemo.org-redesign_idea_0006.png 1] ([http://samoff.maemobox.org/maemo_redesign/samoff-maemo.org-redesign_idea_0006-sidebar.png sidebar]), [http://samoff.maemobox.org/maemo_redesign/samoff-maemo.org-redesign_idea_0007.png 2], [http://samoff.maemobox.org/maemo_redesign/samoff-maemo.org-redesign_idea_0008e.png 3], [http://samoff.maemobox.org/maemo_redesign/samoff-maemo.org-redesign_idea_0009b-loggedout.png 4] ([http://samoff.maemobox.org/maemo_redesign/samoff-maemo.org-redesign_idea_0009b-loggedin.png logged-in]), a [http://samoff.maemobox.org/maemo_redesign/samoff-variation_on_andres_HOMEB.png variation on Andre's HOMEB proposal], and a [http://samoff.maemobox.org/maemo_redesign/samoff-variation_of_HOME_03_MOD.png variation on Andre's HOME_03_MOD idea]
* [[User:andrecunha | Andre Cunha]]: Hi everyone, I work with Marcelo and Glauber in OpenBossa and here is my proposal based on the sketches submited by you. Front page [http://openbossa.andrecunha.com/HOME.jpg], [http://openbossa.andrecunha.com/HOME2.jpg], [http://openbossa.andrecunha.com/HOME3.jpg] and second level page[http://openbossa.andrecunha.com/LEVEL2.jpg]
* [[User:glaoliver | Glaubert Oliveira]]: Hi, this is the layout sent by Andre with the modifications proposed on maemo-community list and based on Tim's layout [http://wiki.maemo.org/Image:HOME_03_MOD.png]

== Improving the current layout ==
Discussed at [[Talk:Task:Maemo.org_facelift]].

== A whole wiki? ==
* Why not ''wikify'' the entire site? Midgard is great software, but going completely wiki would speak well of &quot;openness.&quot; - timsamoff
:&quot;The entire site&quot; is technically a nightmare. If you mean the static content we can discuss about more areas to be moved to this wiki, well integrated. But Downloads or News rely totally on Midgard and you don't want to wikify them, leave alone bugzilla or garage.  :)  What specifically have you in mind?--[[User:qgil|qgil]] 20:30, 1 August 2008 (UTC)
:: That makes sense. I was thinking of all of the &quot;static&quot; content on the site -- really meaning any page that relies on text/image/video/other media. When looking at maemo.org as a whole, pretty much everything aside from those that you mentioned, is content that could be community maintained. --[[User:timsamoff|timsamoff]] 18:57, 7 August 2008 (UTC)

http://maemo.org/community/wiki/applicationrepositories/ doesn't contain information about OS2008, only 2007 and 2006. This is bad because it looks like cruft / unmaintained information.

== Content ==
'''Discussion moved from front page'''

* Website information does not suit the needs of newcomers: How to install or do xy on the IT? Where is recent information about OS2008? Is this page, which I am looking at, an outdated or a recent page on maemo.org? What resources are available for me (alias I am confused by unconnected information sources: gronmayer, internettablettalk, planet.maemo, official Nokia site, internettabletschool, maemo ...) Where is a detailed roadmap for Maemo? Is there an application wishlist for OS2008? Where can I give input/ideas as end-user? 
:''All good points, agreed.--[[User:qgil|qgil]] 07:38, 2 June 2008 (UTC)''
* [http://maemo.org/news/planet-maemo/ planet-maemo] in other languages: For me planet maemo is a very nice aggregation service. This should be available in other languages too. Maybe there should be two versions (per language) of planet maemo: one for developers and one for end users.
:''We can do multiple languages by creating a folder for each language and adding the proper feeds to those folders. There is also a possibility to display news based on what you have thumbed up and down in the past, but that would be something that can only be done after the planned server upgrade. --[[User:xfade|xfade]] 13:49, 2 June 2008 (UTC)''
Is there a target date for the server upgrade? --[[User:jukey|jukey]] 09:05, 18 August 2008 (UTC)
* I'd like to see something like library.gnome.org - searchable content, generated from latest documentation in packages where possible, and updated regularly. --[[User:dneary|dneary]] 10:39, 3 June 2008 (UTC)
:''Interesting. Currently the API documentation is published in a suboptimal way. If this is feasible to do with our current setting then I guess it would be really useful. Worth being a 100 Days proposal by its own.''--[[User:qgil|qgil]] 10:33, 4 June 2008 (UTC)
::''Just FYI, library.gnome.org also supports hosting external sources, like it does for gstreamer already. But it's most probably not an option here. fredp might be the GNOME person to talk to.'' --[[User:andre|andre]] 09:15, 1 August 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Improving maemo.org/Community</title>
    <id>920</id>
    <revision>
      <id>41681</id>
      <timestamp>2011-02-07T15:31:12Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Community Experience */ do not link to redirect</comment>
      <text xml:space="preserve">== Proposal ==

In reference to maemo.org [http://maemo.org/community/ Community page].

* Write better intro description.
* Improve content by describing each of the items available to the maemo.org community (items being those things in the right sidebar -- and maybe more).
* Provide useful links to resources for first-time community members.
: I will take this on. --[[User:timsamoff|timsamoff]] 12:55, 24 July 2008 (UTC)
:: Thanks! Please create [[Task:Improving maemo.org/community]] and put reciprocal links to the bug report [https://bugs.maemo.org/show_bug.cgi?id=3177 Add RSS feeds to community portal] that Dave and Ferenc agreed to work on. I also have some ideas and it will be easier to write them down once you start with a first proposal.--[[User:qgil|qgil]] 18:58, 24 July 2008 (UTC)
* I'll most likely have to add some info pertaining to the new features that Henri Bergius has been working on (e.g., Maemo Forums, etc.), but I don't have the time to research right now.

== Where to get dynamic content from ==

The community is dynamic and so could be the Community page. Potential sources of dynamic content:
: Quim, starting to get time to work on this -- hopefully some this weekend, and then more Monday... Wondering: These are great ideas, but wouldn't they be more appropriate on the main maemo.org page? I was thinking that this would be more of a community info/howto, but using it as a community portal works too. I just need to know what you're thinking so I don't do any unecessary work. --[[User:timsamoff|timsamoff]] 12:05, 1 August 2008 (UTC)
::I'm not saying that all this *is* the content of the section. I was just thinking out loud the potential sources. That info&amp;howto also needs to be there, and very prominent. All this + News + Pearl is too much for a home open to new visitors. The Community section assumes a default visitor more interested in the day to day of the community. A couple of these could go to the home though. Perhaps one day we have customizable homes for registered users and people can just select what they want... The basic info about the community needs to be clear in the section too, but make everything static when the community is vibrant is kind of a contradiction.--[[User:qgil|qgil]] 19:49, 1 August 2008 (UTC)

=== People ===
* Total - how many registered users
* New - most recent user.
* Loved - most recent loved.
* Hot - biggest increment of karma in the last 30 days.

=== Events ===
* Upcoming - next events with &quot;community&quot; tag to come.

=== Lists ===
* New - last emails in the 3 lists.
* Hot - most active threads in the last 10 days.

=== InternatTabletTalk ===
* New - last posts.
* Hot - Most active in the last 10 days.

=== Wiki ===
* [[Special:Newpages|New Pages]]
* [[Special:Newimages|New Images]]
* [[Special:Popularpages|Popular]]

=== Bugs ===
* Last Jar stats summary
* New - most recent bug
* Voted - most voted

=== Garage ===
* Total - number of projects
* New - most recent project
* Active - most active in the last week

== Proposals for displaying dynamic content ==

With the understanding that the maemo.org design/layout will soon change, propose possible ways to deliver dynamic content in an uncluttered manner...

=== Layout Proposal #1 ===

'''''Note:''' This layout is no longer relevant, as design for the general maemo.org website has begun. Check [[Task:Improving_maemo.org#Maemo.org_Homepage_refresh|here]] for progress.''

* Main page (textual) content on the left
* All aggregated content on the right (number of tabs shown here could be reduced or expanded depending on amount of data that needed to be accessed from this page)
** As aggregated content loads in each tab, a cycling progress indicator alert user to status

[[Image:Maemo.org community layout idea 001.png|center|thumb|256px|Layout Proposal #1]]

== Content Iteration #2 (backup) ==

=== The maemo.org Community ===

Welcome to the maemo.org community!

[http://en.wikipedia.org/wiki/Community_of_interest Wikipedia] defines a community of interest as, “a community of people who share a common interest or passion…” That’s what the maemo.org community is all about: passion for Nokia Internet Tablets, passion for open source software, passion for new ideas -- the list goes on and on. Whether you’re a casual tablet user or a dyed-in-the-wool hacker, this is where you will find a collection of these passions -- a community constructed by spaces, events, tools, applications, and a desire to not only witness first-hand, but lend a hand to the future of mobile computing.

Admittedly, the list of community resources below is incomplete (there are just too many to include here). Visit each section to see how you can become connected with the greater maemo.org community. Explore and you will find a number of additional spaces for involvement.

=== Community Exemplified ===

A healthy community is owes everything to the activity of it's members. The maemo.org community exemplifies this reality better than any by continuing to be a passionate, self-motivated, and active group of people all interested in advancing Nokia Internet Tablets and the Maemo software platform. Nokia is proud of the maemo.org community and below are a list of community-driven spaces that stand out and deserve to be recognized.

* [http://planet.maemo.org Planet Maemo]
* [http://talk.maemo.org Maemo Talk]]
* [[Community/Internet Tablet School|Internet Tablet School]]

=== Community Experience ===

&quot;Community&quot; can be a rather nebulous term until you have a chance to experience the relationships, support, and friendship of other community members. Interestingly, if you are part of a truly authentic community, you will soon realize that you want to contribute to the community. The links below are for people who have reached the point that they desire to add to the efforts of the other community members.

* [[Extras|Application Catalog]]
* [[Getting started with Maemo Garage|The Garage]]
* [[Getting involved|Get Involved]]
* [[maemo.org wiki:About|Wiki]]
* [[Community/Community Projects|Community Projects]]
* [[Community mailing lists|Mailing Lists]]
* [[IRC]]

=== Make a Difference ===
While being a part of the maemo.org community is important, nothing is quite as critical as helping to make maemo.org, the Maemo software platform, and Internet Tablets better for all users. To assist in this, every community member is asked to offer some time and energy into submitting bug reports and feature requests, and reporting potential security issues.

* [[Karma|Bugs &amp; Features]]
* [[Community/Security Issues|Security Issues]]

=== The Real Winner ===
Thriving communities are made up of many diverse people who have a common aspiration, common interests, and a willingness to help the community grow and sustain. In the case of maemo.org, the community exists to further develop and improve on a leading-edge hardware and software methodology. The outcome of this effort is quite obvious: a mobile computing device that is powerful and easy to use. Consequently, the winner in this cohesion of minds and spirits is you. Consider joining this effort. Be a part of a community that has a solidified passion for improving on the Nokia Internet Tablet experience.

== Get Involved ==

Moving [[Getting involved]] from the maemo.org development proposals, since it was considered to be part of the /Community task. --[[User:qgil|qgil]] 11:50, 7 November 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Improving maemo.org/Development</title>
    <id>1324</id>
    <revision>
      <id>8599</id>
      <timestamp>2008-11-07T09:34:17Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>/* Other possible content */</comment>
      <text xml:space="preserve">== Deprecated content ==

Some content is considered deprecated, but has no direct equivalent in the latest documentation. some of it might still be appropriate for inclusion in the documentation portal.

* [http://maemo.org/development/documentation/tutorials/ Tutorials]
* [http://maemo.org/development/documentation/how-tos/3-x/ HOWTOs] (outdated - we might want to cherry-pick those that are still useful and put them in the wiki)

These have not been carried forward to the 4.1 platform guide as far as I can see - at least, I have not found their equivalent in there. --[[User:dneary|Dave Neary]] 11:59, 4 November 2008 (UTC)
: Yes, the relevant are. For instance, &quot;How to use the Camera API&quot; = &quot;8.3 Camera API Usage&quot;. Integrating all the separate HowTo's in a single and integrated piece of documentation was the main exercise done with the Maemo Diablo Reference Manual. If there is a relevant doc missing then it's a bug.--[[User:qgil|qgil]] 09:31, 7 November 2008 (UTC)

== Other possible content ==

* [http://maemo.org/maemo_release_documentation/maemo4.1.x/node16.html Quality considerations] deserves special attention since contains all the elements that are relevant for mobile development. --[[User:qgil|Quim Gil]]
: The chapter title didn't mean anything to me - I'm not sure how to sell that on the development portal. --[[User:dneary|Dave Neary]] 11:59, 4 November 2008 (UTC)
:: I won't argue the catchiness of the title, but the content of this chapter is essential, specially for the majority of developers not familiar woth mobile platforms and its specific constraints and security aspects. This chapter contains also a very useful checklist to assess the potential quality level of your application.--[[User:qgil|qgil]] 09:34, 7 November 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Improving maemo.org/Graphics</title>
    <id>1549</id>
    <revision>
      <id>12400</id>
      <timestamp>2009-04-09T04:28:46Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <text xml:space="preserve">typo in http://wiki.maemo.org/images/f/fc/Icons.png

&quot;click to Isntall&quot; should be &quot;Click to Install&quot;

Any way to make thumbs-up/down icons more clearly defined (they do not look like thumbs very much right now) and do something about that ugly rounded Install icon? What was the purpose of rounding it, anyway?
: Unfortunately, your comments are subjective. It's not that I don't think they have value, but several people (hundreds?) have seen these icons for months now and haven't complained. --[[User:timsamoff|timsamoff]] 21:06, 8 April 2009 (UTC)
:: Well, then, I'll complain. I don't love the rounding on the .install image and I'd really like to see heart/thumb instead of thumb/thumb. Both because they're more distinct and easier to talk about (&quot;Yeah, I thumbed that blog post&quot; &quot;So, did you like it? . . .&quot;). [[User:generalantilles|GeneralAntilles]] 01:56, 9 April 2009 (UTC)
::: Of course these things can be changed, but how long have they been visible for critique? --[[User:timsamoff|timsamoff]] 02:01, 9 April 2009 (UTC)
:::: What's your point? They absolutely cannot be changed? [[User:generalantilles|GeneralAntilles]] 04:26, 9 April 2009 (UTC)
::::: I don't think I said that. Nope, I didn't. --[[User:timsamoff|timsamoff]] 04:28, 9 April 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Improving maemo.org/community</title>
    <id>1300</id>
    <revision>
      <id>8080</id>
      <timestamp>2008-10-28T20:11:19Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Talk:Task:Improving maemo.org/community]] moved to [[Talk:Task:Improving maemo.org/Community]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Task:Improving maemo.org/Community]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Improving maemo.org/community</title>
    <id>1300</id>
    <revision>
      <id>8080</id>
      <timestamp>2008-10-28T20:11:19Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Talk:Task:Improving maemo.org/community]] moved to [[Talk:Task:Improving maemo.org/Community]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Task:Improving maemo.org/Community]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Improving the Application manager</title>
    <id>469</id>
    <revision>
      <id>8982</id>
      <timestamp>2008-11-25T15:09:44Z</timestamp>
      <contributor>
        <ip>205.247.111.216</ip>
      </contributor>
      <comment>/* feature request: ability to hide applications selectively/individually */</comment>
      <text xml:space="preserve">== Thanks for this work! ==

This is cool. I mean, I haven't gone through the content but only the fact that you are investing this time and brains is good enough already. I wonder if all the &quot;Improving...&quot; work could be structured in a way that would match the Maemo architecture and also the applications Nokia is developing in top of it i.e. linking to pages like this one and also to relevant enhancement requests in bugs.maemo.org. This would help other contributors improving current proposals instead of starting a new one. It would also help product managers at Nokia following this effort and responding to it.--[[User:qgil|qgil]] 10:25, 23 June 2008 (UTC)

== Info Dialog ==

A 'Changes' tab in the Info Dialog would be nice for updated applications, at the moment to find out if an update is worth installing you have to look elsewhere (ITT, garage, developer blog etc) and it can be quite difficult to track down. [[User:pepitoe|pepitoe]] 14:01, 23 July 2008 (UTC)

== Background processing without indication ==
It will just get stuck here (applies to other screens) when doing things in the background when you try to do some operation (e.g. install from web or from a deb file using the file manager, or even edit catalogs).  Attempting to do anything else including the same thing which you don't know if it received, it just says &quot;Operation in progress...&quot; with no way to abort, no measure of progress, and it can sit there for a very long time with no changes and appearing it has crashed.  There should be at minimum a busy status (e.g. a gtk field that changes to text saying something like &quot;Busy Updating...&quot;), but even more a progress indicator and/or some indication of what operation is in progress (did it get the instruction to install the right thing or did I tap the wrong thing or is it doing something else entirely?).  If it is doing something unrelated or even interruptable (updating the package list, looking for upgrades), there should be a way to abort.  This could replace or add to the Button bar noted below —[[User:tz1]]

== feature request: ability to hide applications selectively/individually ==

One of my biggest pet peeves is that when I run through the &quot;Main view | Browse installable applications | All&quot; view, or the &quot;Main view | Show installed applications&quot; view, I am not able to hide pesky items that I've seen every time I've run the Application manager.

Example 1), installed applications that I know I want to keep: &quot;advanced-backlight&quot;, &quot;erminig&quot;, &quot;Personal Menu&quot;, &quot;rapier&quot;, &quot;pidgin&quot;, &quot;tipcalculator&quot;, &quot;sliderule&quot;.

Example 2), available applications that I know I don't want: all of the games! (abuse, barrage, blobby, blobwars, bomberman, etc...), all of the subscription services! (rhapsody, skype, vagalume, etc...), all of the dll's! (libgnokii3, libgtk, etc...), and individual apps that I know for certain that I don't want and won't want (gpodder, grcm, irreco-theme-evil, etc...).

It is extremely annoying and frustrating to have to wade through all of these every time I go looking to see what applications I want to try next, or want to uninstall.

Once I know that I want these to stay installed, I should be able to hide it, so that other items are easier to see.

If I want to see these later, there can be an option to &quot;show hidden applications&quot;.

-- swajime (can't log in :-( )

P.S.  It would also be good to have a &quot;previously unseen&quot; view, when new software is added, or when new repositories are added.
P.P.S.  Now that I'm thinking about it, I think it would also be good to be able to view by repository.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:MMS</title>
    <id>2487</id>
    <revision>
      <id>42582</id>
      <timestamp>2011-03-10T09:11:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>spam: Undo revision 42579 by [[Special:Contributions/72.229.251.243|72.229.251.243]] ([[User talk:72.229.251.243|Talk]])</comment>
      <text xml:space="preserve">whatever ui we have to come up with
if we must change/disconnect the internet connection - lets make sure we ask first...
(and try to do it before we get all the way through)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Maemo-meeting</title>
    <id>466</id>
    <revision>
      <id>2457</id>
      <timestamp>2008-06-23T06:45:24Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>maemo.org sprint meetings</comment>
      <text xml:space="preserve">== maemo.org sprint meetings ==

Just a note on the information about maemo.org development sprint meeting available [[100Days#Community-led_action_plan_process|here]].--[[User:qgil|qgil]] 06:45, 23 June 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Maemo.org facelift</title>
    <id>1064</id>
    <revision>
      <id>6242</id>
      <timestamp>2008-08-04T19:58:51Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>/* Proposals for creating a great maemo.org layout. */</comment>
      <text xml:space="preserve">For issues regarding content and structure on the maemo.org [[Task:Improving_maemo.org#Maemo.org_Homepage_refresh|homepage]] (as well as other pages), please go [[Task:Improving_maemo.org]] and its [[Task:Improving_maemo.org|discussion page]].

== Improving the current layout ==
Layout = graphics and mostly what can be controlled with the CSS styles. 

=== What's wrong about the current maemo.org layout? ===
'''List issues here:'''
* Many graphical elements are blurry. Is this a post-process issue, or is it inherent in the original artwork?
* Not very usable on Maemo compatible devices. Even less with thumbs only.

=== What works about the current maemo.org layout? ===
'''List positive remarks here:'''
* Here

=== Proposals for creating a great maemo.org layout. ===
'''List proposals here:'''
* New color in [http://maemo.org/news/announcements/view/logo_contest_results.html new maemo.org logo] should be used.
* Make it a fluid layout.
* Make it more ajaxy. Use [http://jquery.org jQuery] or [http://www.prototypejs.org Prototype] (or [http://en.wikipedia.org/wiki/List_of_Ajax_frameworks something]) to create a clean, snappy UX.
* Very finger usable in Maemo compatible devices.--[[User:qgil|qgil]] 20:33, 1 August 2008 (UTC)
* Specific layout for Maemo compatible devices Y/N? See the [http://www.internettablettalk.com/forums/showpost.php?p=209927&amp;postcount=6 ITt discussion].
* The author/team of the winning logo should be invited to work on the redesign.
* Less text only links and more icons in homepage and navigation. See [http://www.internettablettalk.com/forums/showpost.php?p=209927&amp;postcount=6 allameswerout suggestions in ITt].</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Maemo Brainstorm</title>
    <id>1363</id>
    <revision>
      <id>22168</id>
      <timestamp>2009-11-08T21:37:28Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Maemo brainstorm]] moved to [[Talk:Task:Maemo Brainstorm]]: This is a Task</comment>
      <text xml:space="preserve">== Feedback ==
By --[[User:qgil|qgil]] 23:47, 7 May 2009 (UTC)
* Why not using the right column for Brainstorm navigation letting content start right below the header? Like we are doing elsewhere. Some thing like
** Add new idea
** Add new solution
** Ideas
*** Sandbox
*** Popular ((default))
*** Accepted
*** Implemented
** Categories
*** Multimedia
*** Internet
*** Games
*** (etc)
* I don't see the point of making Milestones so relevant. They are relevant only when an idea is Accepted and Implemented.
* Categories are important. I will provide a list.
* Titles in comments don't show up. Not needed at all.
* After voting some kind of transition should appear since it takes a while to get the vote registered and you are not sure whether you clicked well or not.
* The whole Brainstorm seems to be slow? Saving a page takes a lot.
** I played with caching because of the login issue. Is it better now? --[[User:xfade|xfade]] 09:33, 8 May 2009 (UTC)
* Grey background? What about aligning with Talk style and make text run on top of white? Just an opinion.
* Pictures should resize automatically.
* Pictures can be uploaded in ideas (good) but they won't show up (bad).
* Missing somewhere a place saying how many ideas and solutions submitted, how many open to votes and how many implemented. A block/banner in the right column?
* Personally I like better the voting box from ideatorrent.org. Mainly the green/red arrows instead of hands. They bring strong clarity and color. Those hands... they don't look so so nice. No, in the news either. Again, just an opinion.
* A feature missing in Announcements that will be more missed here is the fact that all commenters (and creators of solutions) receive notifications when others have commented to the idea, not only the poster of the idea.
* Any way to watch ideas and receive any updates happening to them? I'm thinking on e.g. Nokians interested in following a specific Idea, even if it's not in the most popular.
* Any way to watch a category and get a notification every time someone has posted a new idea or a new solution in that category? I'm thinking of Nokia product managers.
** Each category has a separate RSS feed. --[[User:xfade|xfade]] 09:33, 8 May 2009 (UTC)
* The email received says &quot;page #1 has been commented by Quim Gil (qgil)&quot; in the subject. Better to change &quot;page #1&quot; by the title of the idea.
** This bug has been fixed [http://trac.midgard-project.org/ticket/1118 in midgard] --[[User:xfade|xfade]] 10:50, 8 May 2009 (UTC)



== Proposal to use talk.maemo.org for comments ==

Proposing to have talk.maemo.org as a powerful infrastructure for comments, bypassing Misgard's comments completely: [[Task:Comments2Talk]]

== &quot;maemo.org&quot; category ==

Following penguinbait's suggestion, the brainstorm should be also used to brainstorm about community topics. Therefore requesting the category &quot;maemo.org&quot; to be added.--[[User:qgil|qgil]] 20:04, 11 May 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Maemo Community distribution</title>
    <id>1253</id>
    <revision>
      <id>8148</id>
      <timestamp>2008-10-30T08:26:25Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>/* &quot;osso&quot; = DEPRECATED */ new section</comment>
      <text xml:space="preserve">== Busybox ==

Would some repackaging to avoid the conflicts between busybox and coreutils et al. (or replacing busybox for good) as [http://lists.maemo.org/pipermail/maemo-developers/2008-August/034643.html discussed] in maemo-developers be plausible in the community distribution? --[[User:benson|benson]] 03:03, 3 October 2008 (UTC)
: Yeah, I was thinking about this yesterday. The problem isn't really the packaging, but setting up the initscripts so they don't choke on the gnutils. Obviously somebody will have to work this all out, but it's a perfectly reasonable goal for the community distribution to allow swapping in coreutils components easily. —[[User:generalantilles|GeneralAntilles]] 07:01, 3 October 2008 (UTC)

== Nokia binaries ==

mvo suggested a slightly different solution: we set up a file in garage.maemo.org where the community maintainers could list the pacakges that they would like to see in non-free and a cron script on stage would copy these packages from eg. updates/diablo-1 to updates/diablo-1/non-free. I am still waiting for approval/rejection for the whole idea though. --[[User:marcell|marcell]]

== &quot;osso&quot; = DEPRECATED ==

Please leave &quot;osso&quot; rest in peace and don't use it in anything new. Yes, it is still in the name of packages and stuff but from our perspective this is all legacy in the way of deprecation. Thanks! --[[User:qgil|qgil]] 08:26, 30 October 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Maemo brainstorm</title>
    <id>2818</id>
    <revision>
      <id>28119</id>
      <timestamp>2010-02-02T15:02:23Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Task:Maemo Brainstorm]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Maemo brand</title>
    <id>234</id>
    <revision>
      <id>50106</id>
      <timestamp>2012-10-06T20:48:44Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>Undo revision 50101 by [[Special:Contributions/205.209.142.190|205.209.142.190]] ([[User talk:205.209.142.190|Talk]])</comment>
      <text xml:space="preserve">== Building a strong brand ==

Um, I hate to sound rude, but where does one get off telling 3rd party developers what to name their applications? I could understand if it were Nokia applications you were discussing that you had some sway over, but asking one of the most prominent 3rd party developers to rename their application for &quot;branding reasons&quot; just doesn't sit well with me. :\ —[[User:generalantilles|GeneralAntilles]] 10:13, 12 June 2008 (UTC)
:The fact is that since the trademark policy was approved no new application has come up with the name &quot;maemo something&quot;, and &quot;something for maemo&quot; is the recommended alternative. We declared amnesty to the projects created before the trademark policy for obvious reasons. We could talk about recommendation to swith to the trademark compliant formulas, but not enforcement. But they might be interested. If you notice &quot;Mapper&quot; is cooler name than &quot;Maemo Mapper&quot;. Also think about the opssibility to have it ported it to i.e. S60 in a future. Why getting your app tied to the name of one platform if it ever becomes succesful and ported to other platforms?--[[User:qgil|qgil]] 12:42, 12 June 2008 (UTC)
::FWIW, I'd disagree that &quot;Mapper&quot; is a more cool name for a multi-platform application. The ability for people to find its website when it's such a generic word is diminished. &quot;Maemo Mapper&quot;, by contrast, is better for being namespaced. A multi-platform app would be better called &quot;UbuntuGoogleFacebookMadeUpPortmanteauWord&quot; and try and get traction around its unique name (&quot;Atlassian&quot; would be a good one, for example, if it weren't already taken[http://www.atlassian.com/]). So, for example, &quot;MapExplorer for Maemo&quot; could identify the Maemo version of a coolly named product available for multiple platforms, by &quot;MapExplorer&quot; being a non-generic (in this case, portmanteau) word. --[[User:jaffa|Jaffa]] 22:07, 22 June 2008 (UTC)

As for the distinction between maemo and Internet Tablet OS, I think this is a ''very'' important one. Internet Tablet OS is a fairly proprietary mobile operating system that ships with Nokia Internet Tablets, maemo is an open-source development platform for mobile Linux. They're two distinctly separate (if sometimes closely related) things. Moving forward, we should really be ''increasing'' this distinction, not blurring it further. —[[User:generalantilles|GeneralAntilles]] 10:13, 12  June 2008 (UTC)
:Let's see. The &quot;fairly proprietary&quot; part in the OS2008 comes mainly from the application and Nokia design layer, since the rest of closed elements are also present in the low level and developer platform. The current diff between Maemo 4 and and OS2008 would be, according to these definition, these preinstalled applications and the Nokia design layer that is not available in the SDK (covered by the open Plankton theme). Is that right? If so, then a possibility would be that Maemo = Maemo platform = from kernel to SDK. Then the Nokia N810 would still ship Maemo 4 + a set of preinstalled applications and a Nokia design flavor. In a potential escenario, someone in the maemo community could also take Maemo 4, add a section of application and a default own theme.--[[User:qgil|qgil]] 12:42, 12 June 2008 (UTC)

I do agree that consistent usage of terminology has been lacking in maemo-related stuff from Nokia (MicroB versus Mozilla-based Browser for maemo is a fun one, though I understand the reasoning behind it), but I don't think eliminating important distinctions is the way to go about improving this situation. —[[User:generalantilles|GeneralAntilles]] 10:13, 12 June 2008 (UTC)
:It is though a priority reducing the brand soup and simplifying things that people anyway were doing '&quot;wrong&quot; but consistengly (i.e. Maemo instead of maemo)--[[User:qgil|qgil]] 12:42, 12 June 2008 (UTC)

== What is maemo ==

Many people are confused about what exactly maemo is, and the difference between Nokia's ITOS and maemo.org.

To my mind, maemo is &quot;the open collaboration project which was started by the release of a free software stack which made up part of the OS installed on Nokia's Internet Tablet series&quot;. That's a pretty crummy definition, but engenders a number of important distinctions:

* maemo is not only the software running on your tablet
* maemo is not just the website and tablet user community
* maemo is not limited to free software
* maemo is software based in origin
* maemo is not limited to the needs of Nokia tablets - it can evolve beyond that usecase
* maemo is, above all, an open collaboration project - community developed software, free software, open access, and all of the infrastructure to support it

The major evolution of maemo should thus be a move to enable the community, to help maemo evolve away from its internet tablet roots. Things which allow maemo users to target other devices, replace &quot;official&quot; software or libraries, and otherwise hack on the maemo platform, are all useful. Discussions about opening drivers for hardware, or adding new applications to the tablets, are not. On the other hand, proposals to open up the documentation and APIs for proprietary components is a community enabler, and might be relevant.

:Who wrote the text above? Only to know who are we discussing with.  :)  Also, I have just posted some ideas about the scope of maemo as a &quot;software platform based mostly in open source components&quot; at [https://bugs.maemo.org/show_bug.cgi?id=630#c20 bug #630 - Increased Bugzilla transparency - get the developers involved!].

::That would be me. --[[User:dneary|dneary]] 07:52, 11 June 2008 (UTC)
:: oh, yeah, it is known for ages - wiki is good collaboration tool for small team of known to each other, but rather poor for conversations and other forms of communication [[User:silpol|silpol]] 11:14, 16 June 2008 (UTC)

:What's going to happen to maemo.org? The &quot;[[User:Peterschneider|proposal for the new intro page]]&quot; reads like an internal website for Maemo Software inside intranet.nokia.com, with the community more of a footnote. If maemo.org is the collaborative space of the Maemo community - in which Maemo Software are an &quot;equal and active partner&quot; - shouldn't the community be front-and-centre, and the technical details of the Maemo platform shunted downstream? [http://www.getfirefox.com GetFirefox.com] doesn't start off talking about versions of Gecko, it gives end-users a clean, simple interface to get what ''they'' want, from which the bowels of developer documentation can also be found for that more limited subset. However, if there's a maemo(software).com, owned and run by Nokia's Maemo Software group, it'll presumably talk more about commercial partnerships, Devices running Maemo, licenseable software stack benefits, etc. etc. --[[User:jaffa|Jaffa]] 21:51, 22 June 2008 (UTC)
::This is a good discussion for the [[User:Peterschneider|proposal for the new intro page]], why not moving it there?  I believe Peter is trying to do a compromise to improve *now* http://maemo.org/intro/ while starting to evolve the language and concepts putting the community aspect in the middle. I also think that a compromise needs to be made while there is no site for Maemo-the-software and while the community hasn't taken really over maemo.org. Feel free to contribute improving those pages in the direction you think is appropriate! --[[User:qgil|qgil]] 22:23, 22 June 2008 (UTC)

== Building a strong brand ==
To built a strong brand i.e. something that people will remember and have have feelings about, we need foremost two things:
* clarity about what which name stands for and what are the values
* consistent implementation of the terminology

As pointed out already above, now we have maemo, maemo.org, Maemo Mapper, Other Maemo Weather, Internet Tablet OS, OS2008, ITOS and so on. This is not helpful. In general, as less names we have as stronger the remaining name becomes. So, why not center everything around the strongest word: maemo? Why not just talk about maemo platform, maemo software, maemo SDK, maemo community, Mapper for maemo, and maemo 4 (currently known as OS2008)?

And then, why do we want to re-educate people, newcomers, and tech writers in the use of English grammar? Why can't we use a capital &quot;M&quot; always for Maemo? Most of the strong Internet brands and open source brands have a capital letter: Google, Facebook, Ubuntu, Linux. Why do we need to be different?

Our updated terminology would be:
* Maemo Community with the home on maemo.org
* Maemo - the open source software that powers mobile devices
* Maemo SDK - the baseline to create applications
* Maemo platform - everything from kernel up to SDK
* Maemo 4 - the release with XYZ features
* Devices running Maemo software - Nokia N810 running Maemo software (and not Maemo devices)
* Mapper for Maemo - a great application--[[User:peterschneider|peterschneider]] 08:25, 12 June 2008 (UTC)

== Advantages of the current proposal ==
Have a look at the draft proposal for definitions above. They are based on Peter's points in the ''Building a strong brand'' section above and try to assimilate the ideas posted by Dave and GA, adding other cases that came to mind while writing.

Apart from the clear advantage of unifying denominations around the Maemo magic word (leaving behind several different names) there are more that are not evident today:
* The Maemo word would be used without interferences in the Nokia products, press releases, marketing materials... All this just follows what was the practice in the media, blogs and discussions, that have been using repeatedly &quot;Maemo&quot; to simplify.
* This consistent and repeated use of the Maemo word can just benefit maemo.org. Nokia will offer to its customers a straight gateway to the community space.
* &quot;maemo.org&quot; becomes the identifier of the community, and it is defined as a community driven project. This means that the community will have more control on the usage of &quot;maemo.org&quot;. For instance, that proposal of rewarding core community contributors with @maemo.org addresses, a &quot;priviledge&quot; that until now has been only in the reach of Nokia employees and certain contributors with signed commercial contracts (aka the maemo.org crew). 
* The community would be almost completely free to define the &quot;maemo.org&quot; logo for this website, shirts, stickers and etc. Nokia would still keep the Maemo trademark and therefore the possibility to raise a veto, but being all the official usage around &quot;Maemo&quot; with a Nokia visual identity, the hypothetical pressure on &quot;maemo.org&quot; diminishes significantly. 
* In fact, the Maemo community could run a contest to define a new maemo.org logo (and new shirts &amp; stickers?). Nokia could sponsor prizes and the purchase of the related materials... to be distributed in the maemo summit?
--[[User:qgil|qgil]] 20:58, 12 June 2008 (UTC)
:Sounds sensible, however I've found it very difficult to be sure I'm clearly identifying what I want to clearly identify in a couple of recent edits to talk pages. There's a distinction between Maemo, Maemo software (aka &quot;applications for Maemo&quot;) and Maemo Software which is relatively [[Task:Maemo_brand#Definitions|clearly defined]], and seems to have been carefully crafted to avoid ambiguation; but has resulted in some clumsy English IME. --[[User:jaffa|Jaffa]] 21:59, 22 June 2008 (UTC)
::Specific corrections and improvements are welcome! --[[User:qgil|qgil]] 22:25, 22 June 2008 (UTC)
:::What's the process for changing them? Presumably these are directly related to Nokia's Maemo trademark and Nokia's business plans/internal team names and, if nothing else, would (I expect) require management sign-off/input. Which ones are open to community change, or are the terms effectively fixed by Nokia, and the definitions clarifiable by anyone? Not that I've a problem if Nokia have fixed the terms (it's their trademark, after all!), just want to be clear in this transitionary phase. --[[User:jaffa|Jaffa]] 22:30, 22 June 2008 (UTC)
::::Mmmm I guess Nokia is the benevolent dictator for the Maemo definitions as owner of the trademark. In practice I will approve the definitions i.e. at the end of the current sprint and then be open for improvement, as always. The maemo.org community should own their own definition, obviously.--[[User:qgil|qgil]] 22:38, 22 June 2008 (UTC)

== Some clarification on the correct name for the OS ==
Formerly, the OS shipped on the tablets was &quot;Internet Tablet OS&quot; and a specific version of the OS was referred to as &quot;OS''year''&quot; (i.e., OS2008), but that name and usage is being phased out in favor of &quot;Maemo&quot; for the OS and &quot;Maemo ''n''&quot; for a specific version of the OS. The issue is that &quot;Maemo&quot; would seem to refer to the Maemo platform, but is actually only referring to a subset of the platform, the OS. So, jumping off from Nokia's more-than-a-little-awkward &quot;maemo Linux-based OS&quot;, can the OS be referred to as &quot;Maemo OS&quot; or something similar for clarification purposes? —[[User:generalantilles|GeneralAntilles]] 16:22, 16 June 2008 (UTC)
:The thing is: who cares? Don't get me wrong, I know you care and I also care but when it comes to talk to consumers, power users or developers, why they wouldn't be happy just knowing (if they are interested to know) that inside this device there is Maemo running customized with a certain UI layer and a collection of applications? &quot;OS&quot; doesn't tell much to the majority of computer users (while a % of developers keep discussing about where the OS finishes and start the applications). In mobile devices and in 2008 the &quot;OS&quot; precision is probably even more unnecessary.--[[User:qgil|qgil]] 19:28, 16 June 2008 (UTC)
::OK, let me give a more specific example. Over at Wikipedia we currently have two articles that encompass &quot;Maemo&quot; the [http://en.wikipedia.org/wiki/Maemo Maemo article], which covers the platform overview, SDK, maemo.org and Maemo Software, and the [http://en.wikipedia.org/wiki/Internet_Tablet_OS Internet Tablet OS article], which covers what used to be Internet Tablet OS and is now &quot;Maemo&quot; or, in my thinking, Maemo OS.
::So, my question is, how do we rectify this? —[[User:generalantilles|GeneralAntilles]] 17:03, 20 June 2008 (UTC)
:::Now you don't need to rectify anything, since &quot;OS2008&quot; is still a valid denomination until Fremantle comes. I can't guarantee now what Nokia will tell about the software preinstalled in the image corresponding to Fremantle, but according to the current plan it would be called Maemo N (being N the version number), specifying then the UI and applications offered on top. I don't see much sense in &quot;Maemo OS&quot; since i.e. Chess doesn't need to be tied to *the* Maemo OS or the platform. Who knows, perhaps by the time Fremantle or Harmattan comes there are third parties that have build alternative images based on Maemo anmd they would be, conceptually, no less and no more Maemo OS. It might also happen in the future that Nokia itself makes variants based on a same Maemo version for i.e. diffrent countries or segments. I think we really want to stick Maemo to the stack from kernal to SDK and that's it. Before Fremantle release, you are saved with the Wikipedia OS2008 page (thank you very much for your work also there, by the way).--[[User:qgil|qgil]] 19:17, 20 June 2008 (UTC)

== Changes to the [http://maemo.org/intro/trademarks/ Maemo Trademark Policy] ==

Unclear points to be sorted out:
* To check with the legal guys: is &quot;maemo.org&quot; kept in the same terms or left out? Probably still in, and this is how Nokia helps protecting the term from abuse. Still, would there be some kind of formal transfer or share of rights of &quot;maemo.org&quot;?).
* ''it would be inappropriate for them to say their product or service is “based on maemo”.'' - Just checking: is this still appropriate?
* Should the practices on the Maemo logo be removed? There are currently no plans for a Maemo logo, the only logo-logo will be &quot;maemo.org&quot; and its usage will be different.
* Will the TM be still enforced in th use of Maemo?
* Can the Maemo community produce marketing materials and merchandising without requesting every time permission to Nokia? Is it enough to organize the projects publicly for transparency sake, assuming they are alway not-for-profit?

== Questions and thoughts ==

Hi all, I'm new to this place, and I'm new to wikis, so if I do things wrongly, feel free to delete / alter. I couldn't find any better place to write this. 

I am a Swedish graphic- and brand designer based in Singapore, and I found this page through the competition for the new logo for maemo.org, and it got me curious about the Maemo brand in general. 

If I understand things correctly (and I'm not sure I do), you want to do two things at once. Firstly, you want to make a new logo for maemo.org, but your fundamental problem which you're trying to solve on this page lies with, secondly, trying to unify, simplify and clarify the use of the Maemo name and brand to people (like myself) who don't quite understand the difference between all the different permutations. 

The question that I asked myself when reading the brief for the maemo.org logo and the [[Task:Maemo_brand|Definitions on the Memo brand page]] is if you're not starting from the wrong direction. Isn't what Maemo need firstly a strong visual identity, starting with the Maemo logo (or &quot;maemo&quot; or however it's written), and then is accompanied by different additions or alterations for the respective sub fields, like

Maemo  - main logo

* Maemo Platform
** Maemo SDK
** Maemo 4
** Application for Maemo / Made for Maemo

* Maemo Community
** Maemo.org
 
And so on? 

What I'm thinking, after having read the definitions, that we should start with the main Maemo logo. The one that exists today is of course usable, but the best way from a brand perspective would perhaps be to create a logo and brand that is more dynamic, that allows for different sublogos or sub-brands, and that can be used by both Nokia and this community. I am not sure how this would be visualised, since I just started thinking about it, but you could separate the sub brands not necessarily only by name, but also by shape or colour, as long as you stick to a predefined system that still says &quot;Maemo&quot;.

I would love to help you out in any way I can, and I do have some experience since I deal with these kinds of problems on a daily basis. I'm just not quite sure I have understood everything yet, so I apologize if what I'm saying is incomplete or plain wrong. --[[User:jussi|jussi]] 16:43, 19 June 2008 (UTC)

:Hi jussi, welcome on board. &quot;Maemo&quot; is a trademark owned by Nokia, a company that as you may imagine has a branding team and a complex brand architecture. Nokia will do whatever it's done with the Maemo brand, and probably no community exercise in a wiki will help much on that. However, Nokia really wants &quot;maemo.org&quot; to keep standing as an identifier for the community, freed from all the brand architecture stuff that is so strict inside Nokia (and I guess for a reason, considering that the Nokia brand is one of the most successful in the world). This is the reason of detaching &quot;maemo.org&quot; explicitely from any Nokia reference and let the community decide on the image and concept they want to ''wear''.--[[User:qgil|qgil]] 20:34, 19 June 2008 (UTC)

:: Hi qgil. Thanks for clarifying that! I realise now the matter is probably a little more complex than I first thought. I do appreciate the need, both for Nokia to let maemo.org roam free, so to speak, and for the developers of the maemo.org community to have their own identity. Cool. I still see some potential difficulties in separating the maemo.org from the Nokia Maemo brand too much, since maemo.org is '''the''' website for Maemo, apart from some pages deep down in the Nokia structure. You'll still have to say that you're developing for the Maemo platform and so on. But then again, I may be wrong, as I often am.

::I'll take what you said into consideration. Thanks again. --[[User:jussi|jussi]] 01:50, 20 June 2008 (UTC)
:::Ref. &quot;maemo.org is '''the''' website for Maemo&quot;, the idea is to offer any Nokia official deliveries from [http://www.forum.nokia.com/main/platforms/maemo/index.html Forum Nokia] and any consumer related information from the evolution of http://nokia.com/os2008 --[[User:qgil|qgil]] 03:15, 20 June 2008 (UTC)

== maemo is too overloaded, confusing ==

Below are a handful of questions that I have or am translating from other threads.  Right now the biggest problem is there is too litter differentiation between the software, the hardware, the users, and the community when it comes to naming.  Maemo has become overloaded to the point that I have a hard time figure out what is being referred to.  I think that this confusion is shared by the community as evident by the thread on maemo-community http://lists.maemo.org/pipermail/maemo-community/2008-September/000829.html and the thread at iTT http://www.internettablettalk.com/forums/showthread.php?t=23388.

The most confusing would be maemo since it's the root.  When I say Maemo community do I mean &quot;Maemo&quot; community as in &quot;Open source software platform for mobile devices. Developed by Nokia in collaboration with the Maemo community and some of the best open source upstream projects.&quot; - community or do I mean &quot;The sum of developers working openly on the Maemo platform and compatible applications + Maemo users with different levels of experience, interested in all kinds of collaboration and contributions to the project&quot;?  Does it make a difference if I call it the maemo community?  What about the maemo.org community?  What are those differences and do they make any sense to someone who has not read the branding document?

Leading from there we have maemo.org, does this even need a definition, it's a website.  The fact that it even has a definition will lead to confusion since something like &quot;maemo.org community&quot; since are we referring to only people that work on the website, or are we using the domain name to refer to all maemo ( or is that Maemo ) users?

The reality is the community for Maemo(tm) is maemo.org, but the former is a trademark and the latter is a community driven initiative.  So I can call my software &quot;maemo.org Foo&quot;, but not &quot;maemo Foo&quot; ( I think ).  It doesn't help that the Trademark policy is still not updated either http://maemo.org/legal/terms_of_use/trademarks/ and points to 404 pages ( http://maemo.org/intro/trademarks/ ).  Since the trademark policy also current conflicts with the wiki, which is overriding.

maemo.org is the community site, but bugs.maemo.org only tracks &quot;Maemo software&quot; bugs, not community bugs.

In the end the fact is that maemo is partially trademarked by Nokia, partially the software that Nokia develops, partially a website that was run by Nokia and is now developed by the community, and partially the users that make up the community.... did I miss anything?   

[[User:brontide|brontide]] 17:54, 11 September 2008 (UTC)

Other items that need updating. Maemo Extras -&gt; maemo.org Extras.  All of the mailing lists that are maemo-somthing either need to be Maemo-something or maemo.org-something. [[User:brontide|brontide]] 18:23, 11 September 2008 (UTC)

Garage.maemo.org is hosting projects that are closed to the community [[User:brontide|brontide]] 18:35, 11 September 2008 (UTC)
:I _think_ you may be overcomplicating things. The brand page says that &quot;Maemo&quot; can be used in conjunction with applications &quot;Foo for Maemo&quot;, and *does* describe the platform. Therefore the mailing lists, IRC channels, etc. are all fine. Is the specific problem here the one raised as to whether the council is the &quot;maemo.org Community Council&quot; or the &quot;Maemo Community Council&quot;? --[[User:jaffa|Jaffa]] 20:22, 11 September 2008 (UTC)
::Is maemo.org the Maemo Community then? and what exactly does that mean?  What about Maemo Extras? [[User:brontide|brontide]] 20:28, 11 September 2008 (UTC)
:::&quot;maemo Extras&quot; is clearly incorrect. https://bugs.maemo.org/show_bug.cgi?id=3307 —[[User:generalantilles|GeneralAntilles]] 23:39, 11 September 2008 (UTC)
:::: I like Quim's statement (probably butchered in my paraphrasing) that maemo.org is the official location of the Maemo Community -- which integrates other locations (such as itT, etc). Thus, Maemo Community Council works just fine. --[[User:timsamoff|timsamoff]] 12:30, 12 September 2008 (UTC)
::::: The problem is that &quot;Maemo Community&quot; is already defined in the branding document and it's separate from maemo.org.  If maemo.org is just the official site of the Maemo community then so be it and the Brand document should be updated.  [[User:brontide|brontide]] 14:21, 12 September 2008 (UTC)

Another example of issues.  I can say that I develop software for Maemo... but to say that I'm a Maemo Software Developer would be incorrect when both statements are identical from someone unfamiliar with Maemo branding..  This is because &quot;Maemo Software&quot; has special meaning as part of the branding document.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Maemo public roadmapping process</title>
    <id>2902</id>
    <revision>
      <id>21606</id>
      <timestamp>2009-11-02T07:34:22Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Talk:Task:Maemo public roadmapping process]] moved to [[Open development/Maemo roadmap]]: Merging</comment>
      <text xml:space="preserve">#REDIRECT [[Open development/Maemo roadmap]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Maemo roadmap</title>
    <id>2897</id>
    <revision>
      <id>28117</id>
      <timestamp>2010-02-02T15:00:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Open development/Maemo roadmap]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Mapping openness</title>
    <id>599</id>
    <revision>
      <id>7706</id>
      <timestamp>2008-10-09T08:58:45Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>/* The plan */</comment>
      <text xml:space="preserve">Openness is a significant part of what makes maemo so strong, putting together a plan for addressing closed-source components, particularly those directly controlled by Nokia (e.g. low-level stuff like mce and dsme, and user-space stuff like tablet-browser and the task/statusbar applets), would be both a good way to work towards making things that (the community believes, and that Nokia will be convinced of ;)) should be open open and, more generally, addressing the community's concerns over openness in general, particularly the &quot;Why?&quot; of it.
:''Perhaps ''Map openness'' would be a more accurate description, specially for the 100 Days. Nokia has not the goal of shipping a 100% open source platform. Open source is the recommended approach, but closed source is used when it offers a differentiator, an advantage over competitors. But it is good to get a common understanding on why Nokia is shipping component X as closed source, and answer when possible to requests about opensourcing something.--[[User:qgil|qgil]] 06:46, 2 June 2008 (UTC)''
::''No, I don't disagree. The community's end-goal here is greater openness (I don't think anybody but the strongest outliers is really dead-set on 100% open, though), and the first step towards achieving that goal is greater (and more specific) communication on the subject, thus, the mapping. So the title could be a bit misleading from the agenda perspective, but openness is definitely the goal here. —[[User:generalantilles|generalantilles]] 16:09, 2 June 2008 (UTC)''

== The plan ==
* Identify all components (a module name isn't enough). Be like [http://live.gnome.org/TwoPointTwentyfive GNOME's release set list].
* Identify all closed components in the OS at each layer:
** Initfs/direct hardware access
** Firmware used by kernel modules (Wifi, Bluetooth)
** Libraries (libgpsbt, liblocation)
** Low-level system daemons (mce, dsme)
** User-space applications (tablet-browser, applets)
::''Hopefully something automated taking the output of &lt;code&gt;dpkg&lt;/code&gt; and comparing it with source packages in repository.maemo.org could act as the starting point for this --[[User:jaffa|Jaffa]] 00:22, 21 June 2008 (UTC)''
* For each package:
** Outline purpose in a dedicated wiki page.
** Describe the closed-source rationale.
::''Will need some form of mediawiki template for such pages --[[User:jaffa|Jaffa]] 22:26, 29 May 2008 (UTC)''
:::''Just added it to the tasklist for [[MAG:Templates#Open/Closed table, justification, and petition templates|MAG:Templates]]. —[[User:generalantilles|GeneralAntilles]] 19:02, 5 June 2008 (UTC)
* Document the process for working towards opening the component, or its specification.
* Ensuring any new closed packages get a wiki page containing their rationale.
:''Yes, we can do or at least start something along these lines in the 100 Days. What about getting into details about this plan in a page apart, to keeop the main page clean?  (same would apply to the rest of actions taken) Let's also see to the potential starting points i.e. [http://maemo.org/development/documentation/how-tos/4-x/maemo_architecture.html the maemo architecture] and the [http://tablets-dev.nokia.com/4.0.1/4.0_vs_4.0.1_content_comparison.html list of packages].--[[User:qgil|qgil]] 06:46, 2 June 2008 (UTC)''
::''Having a map of components (and a list whether they are open source or not) will also make it easier to add the keyword &quot;easyfix&quot; to bug reports that could be potential entrypoints for code contributors - marking bug reports of closed-source components as &quot;easyfix&quot; does not make sense. Currently it's not easy to find out whether a specific component is open source or not.--[[User:andre|andre]] 21:57, 9 June 2008 (UTC)''

== Get official statement about Nokia's stance towards software freedom ==
Attempts to make Maemo completely free software appear to be restricted by company guidelines, rules or policies. Still there is no official document describing the relationship in detail. Parts of the community want to have this information. 100 days is a reasonable timeframe to set up an official document answering the following question and provide a rationale for it:

* Is Maemo's goal to be 100% free software (one day)?
:''I think the simple, and widely publicized, answer here is &quot;No&quot;. ;) —[[User:generalantilles|generalantilles]] 16:09, 2 June 2008 (UTC)''
::''See my comment above for a short answer. However, 2 things. One is that it would be good to have as an objective for the 100 Days an explanation of Nokia about it's open source strategy with the maemo platform. The other one is that the answer also depends a bit on how we define &quot;maemo&quot;. Is it the core platform? Is the whole stack preinstalled in the compatible devices? Something else? As fot today different people have different notions about what is &quot;maemo&quot;. The definition is important because, in a wide sense, not even Ubuntu is &quot;100% free software&quot; even if people perceived it like this. Perhaps &quot;defining maemo&quot; should be an objective as well.--[[User:qgil|qgil]] 19:30, 2 June 2008 (UTC)
: ''I don't see why maemo goal couldn't be being 100% free although that wouldn't be a goal for ITOS (which is based on maemo) or Nokia (a participant and major contributor in maemo) --Eero Tamminen 4th June 2008''

This document could then be put onto maemo.org webserver to allow every (prospective) community member to decide on her/his own whether this is acceptable for her/him or not. As an inspiration Bug Labs are providing such a [http://buglabs.net/license document] on their website.

== Freedom to tinker ==
Since the Internet Tablet device hardware lacks specification for parts of the hardware people have begun tinkering with it to find out how stuff works. However those people do not like to publish their findings because they fear the risk of being sued. The request to Nokia therefore is: Please provide and official document that says that Nokia officially '''tolerates''' such works. It is not needed that Nokia endorses or in any way appreciates reverse engineering efforts.
:Erm, you want to back this up with something? I think stuff like [https://garage.maemo.org/projects/dsp-sbc/ this] would indicate otherwise. —[[User:generalantilles|GeneralAntilles]] 20:50, 10 June 2008 (UTC)

:License agreements are official documents. How would Nokia provide another document with official status telling in practice that it is ok to break license agreements? Developers tinkering can see what has happened until now. Has been Nokia aggresive against maemo &amp; tablets tinkering? Which attitudes have you found from Nokia developers or managers? You judge.--[[User:qgil|qgil]] 21:01, 10 June 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Motivating people</title>
    <id>1425</id>
    <revision>
      <id>9696</id>
      <timestamp>2009-01-13T01:05:08Z</timestamp>
      <contributor>
        <username>lcuk</username>
        <id>43</id>
      </contributor>
      <comment>New page: I want to add a participation/offers list somewhere, so we can see whos doing what. this was my outline, delete or put into a page if acceptable:  --~~~~   It aims to link together members...</comment>
      <text xml:space="preserve">I want to add a participation/offers list somewhere, so we can see whos doing what.
this was my outline, delete or put into a page if acceptable:  --[[User:lcuk|lcuk]] 01:05, 13 January 2009 (UTC)


It aims to link together members with the skills or apps they think they are good at or have something to offer.

'''Only add yourself to this list if you think you can participate, addition to the list is not a contract.'''

'''gary birkett :: lcuk :: liquid@gmail.com'''
*liqbase - fast graphics library and core ui widget (n8x0 onwards)
*sketch - faster than paper instant memory          (n8x0 onwards)
*graffiti - recall of sketches and postcards        (n8x0 onwards)
*hello_mum - instant postcard creation and distribution ( really depends on new camera, but should work on 8x0 )

'''yourname :: yournick :: youraddr'''
*description (hardware)

Please rearrange and/or delete if this is the wrong place/details, its just an idea.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Open Source Proof Points</title>
    <id>1239</id>
    <revision>
      <id>12152</id>
      <timestamp>2009-03-31T05:58:37Z</timestamp>
      <contributor>
        <username>qole</username>
        <id>57</id>
      </contributor>
      <comment>ports section worries</comment>
      <text xml:space="preserve">== Actually doable? ==

''Are'' there any examples where open Maemo components have helped drive the platform forward? The [http://hildon-app-mgr.garage.maemo.org/ App Manager] is open source, but who's going to get up to speed on hacking on it and submit patches upstream when:
* There's no patch policy.
* There's no clear direction (until the summit) as to what the future plans of the platform are, let alone this one small part of it.

Some people have done small hacks (disable the irritating Nokia-Legal-enforced &quot;warning&quot; when installing packages) and published them on ITT, but real open source contributions happen when it's ''collaboration''. Code can be open sourced - and thrown over the wall - but without open ''development'', the real successes are yet to be seen. --[[User:jaffa|Jaffa]]  21:02, 30 September 2008 (UTC)
: I basically agree with you - I'm happy collecting objective proofpoints of failure if you wish (seriously). [[Task:Mapping_openness]] was a first step needed as a foundation, but once that it is in a maneagable state we need to get serious into the [[2010_Agenda]] where ''collaboration'' is at the center point of all the objectives. &quot;Review the Maemo contribution guidelines&quot; needs to be recovered from [[Maemo.org_proposals]] and be put in the backlog, although Nokia is doing steps forwards working on a common policy for all its open source projects, including Maemo, Qt and the many tiny Linux projects around. [[Task:Maemo_public_roadmapping_process]] also needs to be in place, as well, as an open development process and setup for Maemo open source projects lead by Nokia. Still, I think some progress has been done and I hope we can extract proofpoints already, even if not as strong as you would wish. Note that these proofpoints help us getting approval and resources for next steps... Or better said, the lack of proofpoints won't help us working more and better with open source and in the open.--[[User:qgil|qgil]] 05:26, 7 October 2008 (UTC) 
:There ''is'' a clear counter-argument. Without open source end-user application development there'd be no Firefox, there'd be no Evolution; so there'd be no Gecko, no Camel (and so no libtinymail). So, there'd be no microb and no modest. Nokia's &quot;differentiation&quot; argument is built-on the shoulders of giants. Open source UIs - in general - aren't great, with high profile exceptions. However, in the versions of Maemo to-date, I don't see the benefits of this differentation. All it does is prevent community solutions to &quot;popular&quot; problems (I won't mention 12/24 hour clock again; oops, too late ;-)). From what we've seen and heard of Fremantle, this differentiation ''could'' finally appear (as a user, I hope so). --[[User:jaffa|Jaffa]] 21:11, 30 September 2008 (UTC)
::Turning the omelette, you are proving that there are indeed proofpoints, like microb and modest. :)  Nokia has invested significant resources, directly or indirectly, pushing the development of the underlying technologies and contributing to the related community projects you are mentioning. Nokia wouldn't have the browser and email client Maemo is shipping now, but those community projects wouldn't probably be where they are now without those contributions. About differentiation, I agree the &quot;benefits&quot; are not clear at the moment. As you see we are cleaning a bit the house, opening some components while defining better the areas where Nokia decides to go on its own. Fremantle is seeing significant changes and I'd like to think that the picture will be clear and solid in Harmattan. Everybody agrees that there is nothing more pointless that a differentiation that doesn't differentiate  ;) but I think Nokia is correcting and updating the picture with a consistent strategy (you may or may not agree with).--[[User:qgil|qgil]] 05:35, 7 October 2008 (UTC)

== Ports section ==

I tried to clean this section up, but there's so much wrong here that it might be better to remove it altogether. It's fine if there will be no decisions made using the info here, but I fear someone with little knowledge except this section might use it to make an important decision. That would be bad. --[[User:qole|qole]] 05:58, 31 March 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:PIM</title>
    <id>1309</id>
    <revision>
      <id>45901</id>
      <timestamp>2011-12-01T03:51:50Z</timestamp>
      <contributor>
        <username>jacktanner</username>
        <id>1854</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/50.97.198.139|50.97.198.139]] ([[User talk:50.97.198.139|Talk]]); changed back to last version by [[User:Allnameswereout|Allnameswereout]]</comment>
      <text xml:space="preserve">I'm to shy to start on the main page and I dont really know what exactly is expected.
I'd suggest a discussion should include:
*What's PIM, anyway? I'd suggest the following to stay in line with popular clients and online services like Ovi:
**Contacts
**Calendar
**Notes
**Tasks
**Syncing of all the above
*What do we have? Contrary to what we all say, we do have some of it. EDS, right? I use syncevolution+scheduleworld.com for syncing. Integrates really well with stock applications. Pimplico Contacts makes a not perfect, but working interface for contact details not shown in stock contacts applications ..., so ATM I do have a working PIM for contacts that includes syncing and integrates (almost) perfectly with Internet Calls and Chats from the Telepathy side.
*Workflows we want to - ah... work. (?) Like: I want to have a sync option that always overwrites local data from server. I want to have contact's birthdays automatically show up in calendar. I want it all to be integrated with Chat and Internet Call the way it is now. - etc.
*Technical background...? no input here from my side
[[User:ossi1967|ossi1967]] 14:25, 30 October 2008 (UTC)
: This looks indeed like a good structure for the main page: Contacts, Calendar, Notes, Tasks, Syncing + a General section for features umbrella, integration, UX or whatever.--[[User:qgil|qgil]] 20:43, 30 October 2008 (UTC)

[http://www.linux.com/feature/150671 Three to-do list managers for GNU/Linux.] All GTK-based. Someone who runs Linux and eager to check them out willing to review them and imagine how they work on Maemo (or make a quick port)?</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:PR1.2 autobuilder</title>
    <id>3907</id>
    <revision>
      <id>32530</id>
      <timestamp>2010-04-12T15:06:55Z</timestamp>
      <contributor>
        <username>niqt</username>
        <id>1361</id>
      </contributor>
      <comment>New page: The situation today is complicated, I have scratchbox sdk 1.2 in scratchbox and 1.1 in N900; how do i test my application? We need a solution: the ability to choose the auto-builder!</comment>
      <text xml:space="preserve">The situation today is complicated, I have scratchbox sdk 1.2 in scratchbox and 1.1 in N900; how do i test my application? We need a solution: the ability to choose the auto-builder!</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Package categories</title>
    <id>1304</id>
    <revision>
      <id>10478</id>
      <timestamp>2009-01-27T21:27:42Z</timestamp>
      <contributor>
        <username>ian_r</username>
        <id>537</id>
      </contributor>
      <comment>Proposed new category: Theme or UI</comment>
      <text xml:space="preserve">== Problems ==

* There is beauty in simplicity. Adding more categories would never solve the problem for some people. --[[User:timsamoff|timsamoff]] 18:34, 16 October 2008 (UTC)
* This may be the better method, although &quot;descriptive&quot; is still subjective. --[[User:timsamoff|timsamoff]] 18:34, 16 October 2008 (UTC)

== Office vs Productivity ==

Any more thought/discussion on &quot;office&quot; being changed to &quot;productivity&quot;? Or, has this been decided? --[[User:timsamoff|timsamoff]] 13:44, 29 October 2008 (UTC)
: It's an i18n question, and so not ''really'' important at the moment (i.e. deciding if the categories are sufficient for all use cases). However, IMHO, &quot;Productivity&quot; is a ''more'' flawed label than ''Office'' as the tablet is a tool. All tools should increase productivity at doing '''something'''. People buy physical calendars from office supply firms, Ubuntu (and freedesktop.org) label it &quot;Office&quot; and it encompasses Evolution's calendar; so it works for me. --[[User:jaffa|Jaffa]] 13:48, 29 October 2008 (UTC)
:: Makes sense. Good argument that I can stand by. ;) --[[User:timsamoff|timsamoff]] 14:05, 29 October 2008 (UTC)

== Debtags ==

I'm not sure if this will help us here. We would need to specify a lot of tags for packages. Question is: how are we going to display this in the application manager or website without being confusing --[[User:xfade|xfade]] 12:02, 5 August 2008 (UTC)
: We should use Debtags to encode the information we need for Maemo (by defining tags like Maemo::Category), but we probably shouldn't try to expose all the existing Debtags in the UI.  This is a slight abuse of Debtags, but better than the current abuse of Section, I think.  If the abuse is too great, we can have our own fields in debian/control: Maemo-Category: --[[User:mvo|mvo]]

== Defined top-level categories &amp; application-specific subcategories ==

Alternate lbt+johnx top level categories
{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot;
! Key
! Example English i18n
! Example apps
|-
| user/desktop
| Desktop
| Home, statusbar and taskbar applets
|-
| user/development
| Programming
| py2deb
|-
| user/education
| Educational
| Flashcard apps
|-
| user/games
| Games
| Doom, Duke Nukem 3D
|-
| user/graphics
| Graphics
| Photo apps, GIMP, Inkscape, fonts
|-
| user/multimedia
| Multimedia ''or'' Sound &amp; Video
| Canola, mplayer, Kagu, UKMP, MediaBox
|-
| user/navigation
| (Location &amp;) Navigation
| maemo-mapper, Navit
|-
| user/network
| Internet &amp; Networking
| Web browsers, Samba clients, OpenAFS, Transmission
|-
| user/office
| Office
| AbiWord, Gnumeric, PDF viewer
|-
| user/science
| Science
| gnuplot, Octave
|-
| user/social
| Personal and Social
| GPE and mcalendar (PIM), xchat and Pidgin (IM), claws mail (email), eCoach (personal fitness)
|-
| user/system
| System
| rotation-support, enhanced kernels, themes
|-
| user/utilities
| Utilities ''or'' Accessories
| Calculators, terminals, text editors
|-
|}

What separates &quot;Personal and Social&quot; from the other categories? The primary purpose of an application in the &quot;Personal and Social&quot; category is for either communicating with other people (Social), working with information about your life (Personal) or both (Personal and Social). An IM app is different than a web browser because a browser is a generic tool for working with things on a network (or maybe communicating), while an IM app is unquestionably for communicating with people.

== Additional categories ==

We could add more categories to the official list. To do this we need to define a list of categories that need to be added. If we have a list of categories, we need to discuss whether they are really beneficial. 

Please add your proposed category, description and motivation here:

desktop: A category for desktop plugins. --[[User:xfade|xfade]] 15:13, 4 August 2008 (UTC)
: Could be a good idea, but what makes this different from &quot;Accessories&quot;? --[[User:timsamoff|timsamoff]] 18:35, 16 October 2008 (UTC)
:: Accessories -&gt; what would one expect there. I personally think that Accessories is just as bad as Other ;) --[[User:xfade|xfade]] 08:20, 17 October 2008 (UTC)
::: Well, I think the ambiguity comes from developers not using the categories properly, not necessarily from the category names not being descriptiove enough (e.g., currently, we can't even expect the &quot;music&quot; category to have every music-oriented application included anyway). In this case, enforcing the proper use of categorization is more important than the actual category names. --[[User:timsamoff|timsamoff]] 13:09, 17 October 2008 (UTC)

Is there a possibility of subcategories? Or, do they all need to be top-level? --[[User:timsamoff|timsamoff]] 18:36, 16 October 2008 (UTC)
: To keep with Debian sections, it can only be top-level. (IIRC) --[[User:xfade|xfade]] 08:20, 17 October 2008 (UTC)
:: Eh? We're already not &quot;keeping with Debian sections&quot; by insisting on a &quot;user/&quot; prefix for applications to be exposed to the user. Why is changing that to support &quot;user/multimedia/Canola/themes&quot; (for example) any worse? Or does the Debian policy already allow for the &quot;user/&quot; prefix? --[[User:jaffa|Jaffa]] 13:12, 17 October 2008 (UTC)
::: Debian uses the first part for the part of the repo in needs to be in. For example non-free/hamradio will make the package end up in the non-free part of the repo. So Maemo uses an adaption of that idea ;) --[[User:xfade|xfade]] 14:17, 17 October 2008 (UTC)
:::: So there's nothing ''intrinsically'' stopping us from having extra slashes. Indeed, I can almost perform the mental gymnastics to say we're using it to further sub-divide the repo ;-) --[[User:jaffa|Jaffa]] 14:22, 17 October 2008 (UTC)

fonts --[[User:matan|matan]]

languages: for packages that add support for other languages. --[[User:matan|matan]]
: I think this should be put in 'user/support', no need to add a category for that? --[[User:xfade|xfade]] 09:47, 23 October 2008 (UTC)
: Yes, I don't think we'll really have enough packages to justify a whole new category just for translation and input support. user/support already covers that stuff anyway. —[[User:generalantilles|GeneralAntilles]] 17:26, 23 October 2008 (UTC) 

navigation: Suggested by GA. --[[User:xfade|xfade]] 09:47, 23 October 2008 (UTC)
: Nokia is already using it for a number of their own packages, and considering the type of device we have it makes sense. —[[User:generalantilles|GeneralAntilles]] 17:26, 23 October 2008 (UTC)
:: &quot;Navigation&quot; seems to be too narrow a definition for a top-level category - why don't we have &quot;Word Processing&quot; instead of Office as &quot;Word Processing&quot; is equally narrow? Navigation-type applications should go into an &quot;Applications&quot; category (which would be distinct from Games, Multimedia, Office etc.), and Applications could/should have a Navigation sub-category if we allow sub-categories. Alternatively create a &quot;Location&quot; top-level category which could include navigation-related applications/packages. —[[User:milhouse|milhouse]] 13:25, 27 October 2008 (UTC)

Utilities, maybe? Question is, what do we do with accessories/tools/utilities, and, perhaps, desktop? —[[User:generalantilles|GeneralAntilles]] 17:26, 23 October 2008 (UTC)

Themes, or maybe User Interface: Under the current proposed list, themes go in 'system', which I think is unintuitive. --[[User:ian_r|ian_r]] 21:27, 27 January 2009 (UTC)

== Aliases ==

Because Debian uses different terms (e.g. comm) to describe the same (e.g. Communication) the former could be made an alias for the latter. While this wouldn't solve the problem completely, its at least a (small) start. It can be hard-coded in the packages themself, or in the Application Manager instead.

== Freshmeat ==

[http://freshmeat.net/browse/18/ Freshmeat] manages a big database of software, and have had their own (sub)-categories allowing one to search for one or more programs falling under specific definitions such as programming langauge used or what network protocols it uses. It appears the Debtags are some kind of advanced/extensive subset of this, providing also metadata for a search engine?

== Filter ==

Some kind of blacklist filter (on category) to define what one is interested in might also work. For example, I'm glad people can run their old legacy games on the NIT, but I really don't give a rat about them, so I don't want to see all these emulators for these ancient consoles. Likewise, I imagine some folks wouldn't be interested in say CLI applications. Or GPS applications.
:allnameswereout, please remember to sign your comments with &lt;nowiki&gt;—~~~~&lt;/nowiki&gt;, otherwise it's very difficult to know who you're responding to. This really belongs over [[Talk:Task:Improving the Application manager|here]], anyway. —[[User:generalantilles|GeneralAntilles]] 15:27, 4 November 2008 (UTC)

== Question ==
Question: link http://maemo.org/midcom-permalink-8431f58cb10511dda6cc5b17a7e6a198a198 claims that translations are needed. But this Wiki claims that task is completed. 

However I can't see RU_ru language here so far in languages table. I can help with translation into Russian language if needed since Russian is my native language. But I can't figure out if there is still help needed or task has been completed and I'm too late.
:fms provided an ru_RU translation, it's towards the right end of the table. The translation is still ongoing, but the task task the October Sprint to compile a new list of package categories is completed. Somewhat confusing I guess, but so it goes. ;) —[[User:generalantilles|GeneralAntilles]] 02:57, 14 November 2008 (UTC)

== Example apps ==

I like the restricted category list, but I'm wondering - is the list of example apps in [[Task:Package_categories#New_list_for_Diablo]] set in stone? The reason I ask is that I think themes should be in desktop, not system. I wasn't sure if I was allowed to edit the page. --[[User:pelago|pelago]] 00:18, 18 January 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Packaging policy proposed changes</title>
    <id>1925</id>
    <revision>
      <id>13719</id>
      <timestamp>2009-05-27T10:40:49Z</timestamp>
      <contributor>
        <username>jeremiah</username>
        <id>585</id>
      </contributor>
      <comment>New page: Is 'tools' going to be included as a section?</comment>
      <text xml:space="preserve">Is 'tools' going to be included as a section?</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Proof-read Human Interface Guidelines</title>
    <id>2027</id>
    <revision>
      <id>15567</id>
      <timestamp>2009-07-13T16:15:09Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Yay! ;)</comment>
      <text xml:space="preserve">
* Questions (answers from [[User:dneary|Dave Neary]] 15:47, 13 July 2009 (UTC))
** Are we talking about Hildon devices or Maemo devices?
*** Maemo Fremantle devices
**** Ok. This will have to be changed everywhere then. --[[User:timsamoff|timsamoff]] 16:15, 13 July 2009 (UTC)
** Can I edit the Section titles? Some of them could be helped by more descriptive (and better thought-out titles).
*** Yes. Editing section titles should be fine. Just make sure to move linked pages when you do so.
**** Thanks! --[[User:timsamoff|timsamoff]] 16:15, 13 July 2009 (UTC)
** What should I do if a section needs more than just creative proof-reading? A few sections that I've edited could use a lot more fleshing-out.
** First step is to contact Ivan or Joaquim and ask them what they think. Perhaps they agree, perhaps they don't. I think that attaching the proposed rewrite as a comment to a bug you create is the best way to go about refining it further.
**** Great. Will do. --[[User:timsamoff|timsamoff]] 16:15, 13 July 2009 (UTC)
** What about screen shots? I still haven't gotten the Maemo 5 SDK working, but this entire HIG could really benefit with some good visual examples.
*** Agreed. Similarly, I haven't got the Maemo 5 SDK working properly on my laptop. It seems it's a hardware related issue for me. Suggesting screenshots in the wiki at the appropriate place seems like a great idea.
**** Perfect. --[[User:timsamoff|timsamoff]] 16:15, 13 July 2009 (UTC)
** This document contains sections that could not only use a complete rewrite, but a complete rethinking about the content they possess. As stated, screen shots could help, but fleshing out the how's and why's would be much more suitable. An example might be to link certain statements to real-world location (e.g., asking developers to let users provide feedback should link to Bugzilla, etc.).
*** Seems like a sensible suggestion. Again, the first step is to identify issues, and contact maintainers (perhaps through Bugzilla) to see if they are aware of the issues, and if certain omissions are deliberate (and why). Assuming they aren't, we can get anything fixed.
**** Ok. Sounds good. --[[User:timsamoff|timsamoff]] 16:15, 13 July 2009 (UTC)

    --[[User:timsamoff|timsamoff]] 06:31, 7 July 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Publishing API docs</title>
    <id>842</id>
    <revision>
      <id>5039</id>
      <timestamp>2008-07-21T07:38:34Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>/* gtk-doc, doxygen... */ new section</comment>
      <text xml:space="preserve">== High level library docs ==

Moved from [[Documentation wishlist]]

The current documents are mostly API-oriented. It would be useful to have an overview of all the basic libraries one can (and should) link against (gtk, hildon, osso, gstreamer etc). The doc should explain every library in a few paragraphs:
* What the library is, what it does, why do you need it
* What Autoconf/Automake magic is needed to use it
* Possibly manual compiler switches for compiling and linking
* Various gotchas, initialization order, other funky stuff

== gtk-doc, doxygen... ==

One problem is that some packages use gtk-doc while others use doxygen. --[[User:qgil|qgil]] 07:38, 21 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:RSS Feed reader</title>
    <id>3506</id>
    <revision>
      <id>28089</id>
      <timestamp>2010-02-02T11:19:02Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Talk:Task:RSS Feed reader]] moved to [[Talk:Task:RSS feed reader]]: Capitalization</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Task:RSS feed reader]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:RSS feed reader</title>
    <id>1389</id>
    <revision>
      <id>28088</id>
      <timestamp>2010-02-02T11:19:02Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Task:RSS Feed reader]] moved to [[Talk:Task:RSS feed reader]]: Capitalization</comment>
      <text xml:space="preserve">It's good to have so many links but... what are the key features or reasons for success of a specific project? What makes you enjoy the apps or services you enjoy? What made you choose them over the rest? Please answer next to the links in the main page. Quim

== Evince? ==

Guys, why is Evince here? I think it was a typo or lame copy/paste :)
: @antimirov: Because I added it. Now if you had also provided arguments I could actually answer your question. ;-) --[[User:andre|andre]] 14:48, 22 December 2008 (UTC)
: : @andre: It's just because I thought this page was devoted to RSS readers. Can Evince read feeds? No. So why?
::: @antimorov: *cough* Thanks. Sigh. I wonder what's up with my reading capabilities today. Should go to buy more chocolate... --[[User:andre|andre]] 15:19, 22 December 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Reducing number of external repositories</title>
    <id>3234</id>
    <revision>
      <id>46296</id>
      <timestamp>2012-01-10T19:36:43Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 46295 by [[Special:Contributions/80.243.191.178|80.243.191.178]] ([[User talk:80.243.191.178|Talk]]) SPAM</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>Talk:Task:Remarkable community projects</title>
    <id>648</id>
    <revision>
      <id>45650</id>
      <timestamp>2011-11-01T03:44:22Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>Undo revision 45647 by [[Special:Contributions/200.72.32.173|200.72.32.173]] ([[User talk:200.72.32.173|Talk]])</comment>
      <text xml:space="preserve">== What others think ==
Links from blog/media reviews on third party Maemo applications:
* http://thenokiablog.com/2008/07/25/nokia-internet-tablet-top-8-applications/
* http://creeva.com/2008/05/07/first-night-with-the-n810/
* [http://www.internettablettalk.com/forums/showthread.php?t=21988 20 Remarkably Useful Posts] is also a list of remarkable projects.

== Category Distinctions ==

Clarification on the criteria for distinguishing between categories would be very helpful; while the difference of &quot;Born for Maemo&quot; and &quot;Very Nice Ports&quot; is plain, the exact distinction of &quot;Outstanding Utilities&quot; is unclear. [[User:benson|benson]] 17:41, 30 June 2008 (UTC)
:Don't you think I have it clear myself.  :)  At the beginnign the intend was clear: a home applet doing a single task belongs to a different category than a full featured application. However, the line is definitely grey. Proposals for improvement are welcome! --[[User:qgil|qgil]] 22:24, 30 June 2008 (UTC)

== Thread in Internet Tablet Talk ==

See also the interesting discussion at [http://www.internettablettalk.com/forums/showthread.php?t=21334 Listing the remarkable projects around Maemo] --[[User:qgil|qgil]] 05:49, 2 July 2008 (UTC)

== Alpha Applications == 
Beeing the developer of WeightJinni I was coaxed that it was named on this web page. However I was suprized that it was claimed to be alpha. I think it was initialy labeled &quot;alpha&quot; on downloads but since there was one person that used it every day over some months and found it stable and useable ( 5 Kg :-)) it was raised to &quot;stable&quot; a while ago. So was this labeled because of crashed or missing features? Please contact me! --[[User:framstag|framstag]] 06:09, 2 July 2008 (UTC)
: The &quot;(still in alpha)&quot; was written by the guy who listed your app. The [http://maemo.org/downloads/product/OS2008/weightjinni/ Downloads page] says &quot;not yet well tested beta&quot; and &quot;Stable Quality&quot;. &quot;1 vote - 280 downloads&quot; doesn't tell much also about the feedback level. So perhaps you need to clarify things a bit when promoting your app so your users get the picture right.  :)  fyi I haven't tested the app myself, nor I pretend to test all the apps proposed at this point. This needs to be a community effort as well at some point. Thanks for the interest! --[[User:qgil|qgil]] 09:25, 2 July 2008 (UTC)

== Not in Extras ==

mYTube was in extras, don't know what happened. Maybe the developer can shed some light. [[User:bundyo|bundyo]] 07:28, 2 July 2008 (UTC)
:Not in Nokia's interest maybe? (Just speculating..)
::Are you kidding? Asking the developer takes as much time as speculating in such a senseless way.--[[User:qgil|qgil]] 19:17, 3 July 2008 (UTC)
::I think it's in Nokia interest, not at the contrary. The developer ask about her problem [http://www.internettablettalk.com/forums/showthread.php?t=19798&amp;highlight=mytube here], and I pointed her to the bugzilla, but it never happened. Probably, the package was automatically deleted because it was uploaded to a bad place in the repository. --[[User:yerga|yerga]] 21:08, 3 July 2008 (UTC)
:::Well, there is some legal uncertainty connected with those YouTube downloaders/viewers that might make it less desirable for a big company to promote such a program. With Mapper for example that's less of a concern as it has other uses than breaching Google map's TOS, but an application with a single purpose is harder to defend legally. However, the reasons in this particular case might as well be completely different of course, and I'm sure somebody will be able to tell us something about it.
::::Mytube is now in diablo extras repository. --[[User:yerga|yerga]] 12:18, 7 July 2008 (UTC)
:::::Good to see. Keeping the eyes open and motivations in mind should be a good idea nevertheless- even just to keep expectations realistic.
::::::Can you please sign &amp; date your comments with &lt;nowiki&gt;--~~~~&lt;/nowiki&gt;? Thanks --[[User:jaffa|Jaffa]] 14:05, 12 July 2008 (UTC)

mogg is not in diablo extras. Should it be removed from the list? --[[Special:Contributions/83.150.82.126|83.150.82.126]] 00:35, 15 September 2008 (UTC) (mikkov, but wiki doesn't keep me logged in)
:MaemoPad+ and maemo-mapper are also missing from diablo extras --[[Special:Contributions/83.150.82.126|83.150.82.126]] 00:39, 15 September 2008 (UTC)
== Relationship with Pearls ==

We already have one way of singling out remarkable projects - the [https://maemo.org/downloads/featured/OS2008/25/ Maemo Pearls]. What's the relationship between these applications and those?
:I'd say the pearls need to be selected from the remarkable community projects only.--[[User:qgil|qgil]] 20:39, 6 August 2008 (UTC)

Are we aiming to have these apps be features prominently in the existing Downloads site, in the wiki, or on the maemo.org home page?
: +1 Downloads section.--[[User:qgil|qgil]] 20:39, 6 August 2008 (UTC)

I'm unclear what form the final remarkable projects list will take. I was planning on taking the screen cap from each project, put it together with a &lt;200 word introduction, and link to the application page, and have that be a page in the wiki, linked to from the front page.
:Screen cap + intro + link to app page is what the Downloads server app does already with page listings. Let's just use that service instead of adding more manual work in the wiki. This will need an improvement to create such pages: flesh for a task in a next sprint?--[[User:qgil|qgil]] 20:39, 6 August 2008 (UTC)
:: That's what I thought too - seemed like a lot of duplication of effort. So here's my plan: add a check-box to apps to allow admins to tag them &quot;remarkable community projects&quot;, and have the equivalent of the featured apps page list them all, rather than just the apps which have featured as pearls in the past. The alternative quick fix is to set a &quot;featured app&quot; time for all the applications we consider remarkable apps, and they will appear in this list right now. I like this solution because it doesn't require hacking the server, and we can always update the time in an app from the list at some stage to bring it back to the front page. --[[User:dneary|Dave Neary]] 22:23, 6 August 2008 (UTC)

I think we should move all of the currently excluded apps off the page and into the Talk page, and contact maintainers to let them know what they need to do to get in the list of remarkable projects.

==Ruled Out==
These applications have been ruled out on one or more criteria, but can be brought back to the Proposals once they meet the criteria.

=== Doesn't install cleanly via .install ===

*[http://maemo.org/downloads/product/OS2008/labyrinth Labyrinth]: An idea-mapping tool with a lot of potential.
*&lt;s&gt;[http://maemo.org/downloads/product/OS2008/maemopadplus MaemoPad+]: Tree-based notes and sketching application&lt;/s&gt; - installs cleanly now
*[http://maemo.org/downloads/product/OS2008/usbcontrol/ USB Control]: Take advantage of USB keyboards &amp; drives (drives require a separate power source) w/Nokia cable &amp; adapter.
*&lt;s&gt;[http://maemo.org/downloads/product/OS2008/quiver/ Quiver]: Simple UI is fast and flexible.  Does one thing--displays photos--well.&lt;/s&gt; - tested on a fresh diablo, installs fine.
*[http://maemo.org/downloads/product/OS2008/scummvm/ ScummVM]: program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files.
*[http://maemo.org/downloads/product/OS2008/pidgin Pidgin for Maemo]: Instant messaging application, ported from the desktop.
*&lt;s&gt;[http://maemo.org/downloads/product/OS2008/phonelink PhoneLink]: Send SMS or dial a number using GPE or built-in (EDS) Contacts and a bluetooth-enable mobile phone.&lt;/s&gt; - installs cleanly now

===Not in maemo.org extras===
Appear in good condition to the user (e.g. beta/stable, page in Downloads, one-click install...) but are out of the maemo.org extras game.
*[http://maemo.org/downloads/product/OS2008/mauku/ Mauku]: Jaiku client designed explicitly for Maemo, and makes good use of the UI including finger / stylus / kinetic gestures.
:Mauku developer plans to put it in Extras. Has account setup already. --[[User:xfade|xfade]] 11:53, 7 August 2008 (UTC)
::Mauku is in Extras now. --[[User:hhedberg|hhedberg]] 17:27, 30 October 2008 (UTC)
*[http://garage.maemo.org/projects/boxar boxar]: an easy to learn and easy to master musical instrument for Maemo.

===Not available in Downloads===
Being consistent, the most remarkable applications for Maemo need to be available in http://maemo.org/downloads
*Abiword : Abiword's another desktop application which has a really nice port to maemo. A document editor which is very powerful and lightweight.
*Dates &amp; Contacts : Both part of the Pimlico suite of applications, these allow me to use the N810 as a personal calendar and address book, with desktop synchronisation to boot.
*Gnumeric : Gnumeric is a great spreadsheet application, and the maemo port has been very nicely done.
*Gourmet Recipe Manager : A neat way to plan meals.
*MLB Viewer : For baseball fans, simple UI, subscription to mlb.com required for video, audio is 'free'.
*[http://notecase.sourceforge.net/index.html NoteCase] : a full featured hierarchical note manager 
*VCURLs72 : Major US TV channels on your tablet. Best Edutainment without monthly fee 
*XChat : IRC on your tablet. Nice port.

===Still Alpha===
*[http://maemo.org/downloads/product/OS2008/weightjinni Weightjinni] :  A simple way to track food consumption, weight loss/gain (still in alpha).

*[http://liqbase.net/ liqbase] : playground for sketching with kinetic graffiti with fullscreen tearfree refresh
**Undergoing full testing in preperation for pushing to extras.
**.deb package available
**born ON maemo FOR maemo, makes the most of the device
**http://www.internettablettalk.com/forums/showthread.php?t=23854

===Developed by Nokia===
These are left out here.
*Camera : This is the first 3rd party application I installed on my tablet.
*Fmradio : The other first 3rd party application n800 users install on their tablet.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Single-click publishing for Garage</title>
    <id>932</id>
    <revision>
      <id>5531</id>
      <timestamp>2008-07-25T20:20:06Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>New page: == Garage improvements == ''Moved from [[2010 Agenda]] * Implement some sort of automated single-click push-to-Downloads for Garage projects. :''Interesting idea. What about the feasibilit...</comment>
      <text xml:space="preserve">== Garage improvements ==
''Moved from [[2010 Agenda]]
* Implement some sort of automated single-click push-to-Downloads for Garage projects.
:''Interesting idea. What about the feasibility? Niels? Ferenc? In any case integrating Garage with Downloads make a lot of sense, and the question is whether this would fit in the 100 Days or later.--[[User:qgil|qgil]] 06:59, 2 June 2008 (UTC)''
::''I think we need to prevent (the need for) single file download as much as possible, but rather provide a way of uploading those packages into the extras repository directly from garage. This way people can also download the applications from the Application Manager. --[[User:xfade|xfade]] 13:20, 2 June 2008 (UTC)''
:::''More generally speaking, maybe something like single-click (or two, or three, or a dozen, but you get the picture) project management from Garage for everything? —[[User:generalantilles|generalantilles]] 16:09, 2 June 2008 (UTC)&quot;
::''What I had understood (without reading and thinking much, I reckon) was a single click thingy for developers to upload updated packages in Garage and in a single click get the packages in extras and the update reflected in the Downloads section. Now I see that the request is probably about something different and what I'm thinking of is perhaps a bit too much for the next 100 Days. Should we move this then to 2010 Agenda under a generic &quot;Garage-extras-Downloads integration&quot;?''--[[User:qgil|qgil]] 20:11, 4 June 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Source petition for example package</title>
    <id>495</id>
    <revision>
      <id>22174</id>
      <timestamp>2009-11-08T21:40:34Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Source petition for example package]] moved to [[Talk:Task:Source petition for example package]]: This is a Task</comment>
      <text xml:space="preserve">I think it should read (maybe additionally):
  Keeping 'package name' closed benefits Nokia in the following ways: . . . 
[[User:lbt|lbt]] 19:25, 23 June 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Sprint progress</title>
    <id>677</id>
    <revision>
      <id>3874</id>
      <timestamp>2008-07-02T21:24:28Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>/* Completed Tasks */</comment>
      <text xml:space="preserve">== Completed Tasks ==

It's hard to pick out completed tasks in the table. Perhaps the color could change, or some sort of text styling could be put in place for finished tasks? Or maybe switch to &quot;Complete&quot; or &quot;Finished&quot; instead of &quot;100%&quot; when they're done? —[[User:generalantilles|GeneralAntilles]] 18:06, 2 July 2008 (UTC)
: Better? --[[User:qgil|qgil]] 00:19, 3 July 2008 (EEST)
::Perfect. ;) —[[User:generalantilles|GeneralAntilles]] 21:24, 2 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:Texts for maemo.nokia.com</title>
    <id>2239</id>
    <revision>
      <id>16028</id>
      <timestamp>2009-07-31T15:58:41Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>New page: == Introduction for developers ==  Ideas to develop, keeping them simple and short. More catchy than accurate or explained in depth.  * Basic platform description. * Intro to the offering ...</comment>
      <text xml:space="preserve">== Introduction for developers ==

Ideas to develop, keeping them simple and short. More catchy than accurate or explained in depth.

* Basic platform description.
* Intro to the offering in a sensible way: Mozilla add-ons, Python, C/C++, GTK+Qt, SDK, SDK+, Eclipse plugins (do we need to digest all this or make a tighter selection).
* Specific message to Linux ports.
* Specific message to Symbian and .NET developers.
* Highlights on open platform development. 
* Introduction to Forum Nokia: official &amp; stable.
* Introduction to maemo.org Developers corner: community &amp; unstable.
* Links to Quickstart Guide, Reference Manual and Training Materials.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:donation on download page</title>
    <id>1256</id>
    <revision>
      <id>7639</id>
      <timestamp>2008-10-03T13:58:04Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>/* Bounty system by another name? */ new section</comment>
      <text xml:space="preserve">== Out-of-scope ==

Personally, I think this is out-of-scope for maemo.org and Downloads, and I'm not really in love with the idea of developers begging for money through the website. It's easy enough to handle donations through PayPal without involving maemo.org. —[[User:generalantilles|GeneralAntilles]] 09:39, 3 October 2008 (UTC)

== Bounty system by another name? ==

Bounty system discussions have been had before - and this seems to be one (&quot;I'll donate some money if the developer does X&quot;). Further comments at: https://bugs.maemo.org/show_bug.cgi?id=3763#c4 --[[User:jaffa|Jaffa]] 13:58, 3 October 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:maemo.org IRC cloaks</title>
    <id>2787</id>
    <revision>
      <id>20699</id>
      <timestamp>2009-10-20T19:50:27Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve">Maybe I'm stupid, and I rarely use IRC. ;-)   But what is a &quot;cloak&quot; and why would I want it. [[User:Nathanael|nathanael]]
:Wikipedia has a useful overview: http://meta.wikimedia.org/wiki/IRC/Cloaks Essentially it provides 3 things:

# Privacy, since your IP is no longer displayed for all of the world.
# Bling, since you know you've arrived when you've got a maemo.org cloak. ;)
# Identification, it helps other users spot important and useful people in the organization.

[[User:generalantilles|GeneralAntilles]] 19:49, 20 October 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:maemo.org logo contest</title>
    <id>276</id>
    <revision>
      <id>1857</id>
      <timestamp>2008-06-18T09:50:34Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Talk:Task:maemo.org logo contest]] moved to [[Talk:Maemo.org logo contest]]: The Task is closed, the competition will be open in a few minutes.</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Maemo.org logo contest]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:maemo roadmap</title>
    <id>634</id>
    <revision>
      <id>28116</id>
      <timestamp>2010-02-02T15:00:25Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>Redirecting to [[Talk:Open development/Maemo roadmap]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Open development/Maemo roadmap]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Task:talk.maemo.org</title>
    <id>1364</id>
    <revision>
      <id>11992</id>
      <timestamp>2009-03-22T02:18:25Z</timestamp>
      <contributor>
        <username>vjones777</username>
        <id>761</id>
      </contributor>
      <comment>/* Retrograde step for users */ new section</comment>
      <text xml:space="preserve">
== Blogging ==

There doesn't seem to be much advantage of setting up blogging through vBulletin (unless, of course, I'm missing something ;)), would doing it through Midgard be more straightforward? As it's already integrated into the karma and news systems.

== Retrograde step for users ==

While a applaude the intent to expand and improve internettablettalk, I feel that merging it with maemo.org could be a very bad thing for new users.

Internettablettalk (ITT) is geared to users and is where I get most, maybe all, of my news, support and howtos for the tablet.  Even as an experienced computer user with various OSes, I get the distinct impression that maemo.org is a DEVELOPER site.  For example, take a look at maemo's home page from the point of view of a new user.  The title of the homepage (and by implication, the theme of the whole site) is 'Open source development'.   At this point my new user mother is already backing out.  But wait, there's hope - A 'Tutorials' link...  nope, more developer stuff.

OK, lets try the 'OS2008 User site' - that's got to be good right?  Nope - I get to a Nokia page advertising the various devices.  There is a 'Make it yours' link, so I think I can find all the s/w available for the Nokia there.  Hmmm, funny, it only lists 10 applications.  By now I'd be thinking I've bought a pretty limited device!

My point is that the 'integration' into the developers site isnt going to be a good thing - at least not unless its well thought out from (and obvious to) a new users perspective.  

Getting rid of the ITT wiki would be a very bad idea - comparing the [http://www.internettablettalk.com/wiki/index.php?title=Main_Page ITT wiki] with the [https://wiki.maemo.org/Category:Users Maemo users wiki] shows that the ITT wiki is much more geared to new users and has, IMO, much more info.  The Maemo users wiki page is more of an index page.  If these are to be merged I respectfully suggest that the 'ITT wiki' is retained as the user homepage, and the 'Maemo wiki' ''&quot;index&quot;'' could be expanded to index the combination of all the articles.

New users should EASILY be able to find there way to new software and have a welcoming greeting - think of your less computer savvy friends trying to get to grips with it on there own.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Technology Overview</title>
    <id>569</id>
    <revision>
      <id>2919</id>
      <timestamp>2008-06-26T19:44:52Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Should this page be deleted?</comment>
      <text xml:space="preserve">This page belongs to the training materials and, as for today, we don't have plans to move them to the wiki. Should this page be deleted?--[[User:qgil|qgil]] 19:44, 26 June 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Tracking bugs in Extras</title>
    <id>3649</id>
    <revision>
      <id>31133</id>
      <timestamp>2010-03-15T10:48:05Z</timestamp>
      <contributor>
        <username>timeless</username>
        <id>139</id>
      </contributor>
      <minor/>
      <comment>spelling</comment>
      <text xml:space="preserve">- '''Requirement proposal''': After clicking bugtracker link, you can start filing a bug right away or just after clicking one link at maximum at the page that opens. --[[User:ossipena|ossipena]] 09:38, 24 February 2010 (UTC)

- '''Requirement proposal''': Bug report has to be directly notified to the maintainer. --torpedo48 9:57, 24 February 2010 (UTC)

- '''Requirement proposal''': When Bugtracker link is not supplied default bugtracker is used. Default bugtracker is packages interface itself, or maintainer mail address. This way QA time can be reduced in some cases by weeks when Bugtracker field shaping is not needed. --[[User:mikkov|mikkov]] 08:31, 26 February 2010 (UTC)

- ''How are you going to report a bug to package interface? With magic? Email is of course fine with smaller packages--[[User:ossipena|ossipena]] 09:21, 3 March 2010 (UTC)''

- ''Come on! I think maemo.org runs mostly on PHP code not magic. Most important thing here is there should be a default bugtracker for all packages like in any other big distro. --[[User:mikkov|mikkov]] 10:27, 3 March 2010 (UTC)''

- Are you serious? creating a bugtracker takes couple minutes, putting your email to correct configuration file when packaging takes couple seconds. It is same rules for everyone, why others must do it and you don't? --[[User:ossipena|ossipena]] 10:45, 3 March 2010 (UTC)

- Of course I am serious. I'd like to see good maemo.org infrastructure and current one isn't good enough. Look at Ubuntu for example. -- [[User:mikkov|mikkov]] 21:58, 4 March 2010 (UTC)

- Bugtracker link requirement in package has no real benefit. Better system is that maemo.org/packages (or something else) is declared default bugtracker and bugtracker field can be used to indicate if some other bug tracker is used instead. Additionally the link is really only used in maemo.org/downloads where link can be added separately.
This way one package testing is immediately simplified (and some packages is limbo are freed).[[User:mikkov|mikkov]] 13:50, 24 February 2010 (UTC)

- So you insist every link must be added separately via maemo.org pages? why not in the packaging phase? same work, different timing though. --[[User:ossipena|ossipena]] 10:50, 3 March 2010 (UTC)

- No I don't insist that they must but could. It's less work because when it's not to your liking it's easier to fix it (2 weeks vs. 1 minute) -- [[User:mikkov|mikkov]] 21:58, 4 March 2010 (UTC)

- Embedding bugtrackers links in the packages themselves makes bug reporting easy and immediate for every user who knows a little about our bugtracking system and conventions. Why changing our easy-to-use and easy-to-remember convention with different one? Nonsense. --[[User:torpedo48|torpedo48]] 12:50, 3 March 2010 (UTC)

- Bugtracker link in package isn't easy to use or easy to remember. How many packages have been turned down only because link isn't valid? I'm asking for flexibility, bugtracker link isn't critical and it can be handled separately if maintainer likes to handle it that way. Each time when package is voted down because of bugtracker other two weeks is lost, for no good reason. Again if default bugtracker existed then bugtracker field could be used, but on for good reason  (bugs are handled somewhere else upstream)-- [[User:mikkov|mikkov]] 21:58, 4 March 2010 (UTC)

- '''Link to package testing site itself?'''
* A link to the package in the testing queue &lt;code&gt;&lt;nowiki&gt;http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/[packagename]&lt;/nowiki&gt;&lt;/code&gt; The reason is that there will be no bug history once there is published a new version.''This is clearly a proposal and not agreed with. Also mailto links don't have any public records [[User:mikkov|mikkov]] 16:17, 4 March 2010 (UTC)''

- Yeah bugtrcker take 5 min to be created ... when you could create one yourself on bugs.maemo.org ... but this is not the case ... as a maintainer you cannot also create a new version but must send a mail !!!
This QA Testing rules are becoming more and more boring ... Currently it s take me more time to conform to all that rules which changes all the time than coding the application ! The result is less evolutions, features, improvement, and bugs fix ... and this QA Process make me so furious that i decide just to stop to try to publish things to extras ... 
Now i ve 2 solutions :
- create my own repository
- say to users to install extras devel 
The both can be easy for users by making some .install file !
That was a good community one year ago ... now i m feeling excluded from it.
[[User:khertan|khertan]]

- I still can't understand the problem. It is simple as hell: just create a bugtracker (if you can't obtain a bugtracker in bugs.maemo.org, just use the Garage!) and insert a link in the bugtracker field. I'm new in this community, I don't know how it was years ago but I know one thing: it needs some more strictness in testing rules. You know what makes ME furious? The fact that a few people (luckily not the majority, which seems to understand the simplicity of these little rules) can't follow those two easy steps!
[[User:torpedo48|torpedo48]]

- Hum ... and to create a garage project for each package ?

Send an email ... to create a new version in the bug tracker ... send an email ... this isn't serious ...

Currently look far away than your nose ... how many apps ready for user are available in extras-devel and how many are in extras ? Yep right ... continue like that ... this will end with a divided community, many repositories ... Clearly for me it s a no go ... I ll just stop to try to push my apps to extras ... i prefer &quot;lost my time&quot; to fix and improve. I ll just create my own repository, own bugtracker on my web site ... and nobody will got karma for posting bugs ...

And bugtracker is just one of the painful step to push apps to extras ...
[[User:khertan|khertan]]

- Is it to difficult for you to create a bugtracker in Garage for all your apps? You can use every bugtracker you want, you can even have just one for a hundred apps, I don't care. The important thing is that bugs can be sent to you directly.
AND, if all the ready apps would be in Extras without some control and rules, it would be a mess; when the first problem would come up, the community would collapse on itself like a house of cards. We are building the bases of a great future, we can't leave holes; of course not everybody will be happy initially, but it's a necessary condition for the starting. [[User:torpedo48|torpedo48]]

You need to have developers for that

- Me neither can't understand the problem with using packages interface in bugtracker. After all big part of the bugs are reported only there during testing period. Maintainer gets immediate notification of a new message and everybody else sees all the other messages. Maintainers of bigger projects which actually get some bugs reported are likely to get a real bugtracker. For the lesser projects simple forum like system within maemo.org (which is partially hidden) works very well for the purpose. Seriously bugtracker links isn't the issue which should be on top of things in QA process. -- [[User:mikkov|mikkov]] 22:10, 4 March 2010 (UTC)
:Thanks for explaining you thoughts. I can follow your arguments. I also think it's better to have a link to the package system then to use an email address only. But if the application is getting more complex there should be a regular bug tracker - imho.--[[User:jukey|jukey]] 11:01, 5 March 2010 (UTC)
-- My summary: Some flexibility is needed in bugtracker links. Maintainers are able to choose best bugtracker for their needs. Default bugtracker for all packages should be the target in maemo.org. -- [[User:mikkov|mikkov]] 23:48, 4 March 2010 (UTC)

- I'll take some of the arguments here like a joke, because taking more time trying to fulfill the Q&amp;A rules than coding the app... Q&amp;A requirements are one time change for package, once you get it right you don't need to care more about it, and is not that difficult to get right, even theme makers without any code/package experience can make good packages.

Mikkov has some good suggestions, and I agree that the current situations is far from good, we have proposed changes to the package interface that can improve things a bit and we're open to more suggestions, but we only have one coder to implement them :(. Anyway I'll evaluate the proposals and report back. -- [[User:vdvsx|VDVsx]] 15:14, 6 March 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Troubleshooting</title>
    <id>2759</id>
    <revision>
      <id>21919</id>
      <timestamp>2009-11-05T17:15:51Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">Uargh. Please don't create empty pages. It just wastes time, makes searches slower, creates wrong expectations when seeing the result in the search, ...

I don't like either the name of the page or its intention. I wouldn't find this page if looking for a &quot;fix&quot;. How about &quot;Common problems&quot;? And aren't there other pages like this that exist already? Suggest merge. --[[User:dneary|Dave Neary]] 15:21, 19 October 2009 (UTC)

well feel free to tell me where i can find a similar page so i can merge....

and the point of category:basics is to keep articles readable to all no matter how tech oriented they are. we cant merge articles so that one size fits all, n00bs and developers.

add one word to the end to the previous comment: &quot;imo&quot;

: I really don't like the way this page is going. There are no common problems in there - nothing that someone having an issue might find and hook onto. What is the goal of the page? I have lots of ideas for problems that someone might be looking for suggested solutions for - low battery life, bad performance, internet connection issues, rebooting phone, crashing application... the list goes on. And yet this page isn't aiming to help people with their problem, it's intended to be a general &quot;one size fix all&quot; page, which I don't think is any use to any one. I'm going to suggest deletion and creation of a &quot;Troubleshooting&quot; section in the [[Frequently asked questions | user FAQ]]. --[[User:dneary|Dave Neary]] 17:15, 5 November 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Troubleshooting boot issues</title>
    <id>1124</id>
    <revision>
      <id>45383</id>
      <timestamp>2011-09-20T23:35:15Z</timestamp>
      <contributor>
        <username>int_ua</username>
        <id>3497</id>
      </contributor>
      <minor/>
      <comment>/* reboot analyse script */</comment>
      <text xml:space="preserve">Might be useful to add ideas from http://www.internettablettalk.com/forums/showthread.php?t=16056 here

== reboot analyse script ==

I've just written a script to help analyse an unexpected reboot.
See http://talk.maemo.org/showthread.php?p=1092902#post1092902

And I also suggest adding &quot;reboot&quot; to the page title.</text>
    </revision>
  </page>
  <page>
    <title>Talk:USB Network with Debian</title>
    <id>197</id>
    <revision>
      <id>1290</id>
      <timestamp>2008-06-10T15:38:36Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Talk:USB Network with Debian]] moved to [[Talk:USB Networking with Debian]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:USB Networking with Debian]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:USB Networking with Debian</title>
    <id>110</id>
    <revision>
      <id>21224</id>
      <timestamp>2009-10-29T13:15:33Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <text xml:space="preserve">originally came from https://maemo.org/community/wiki/howtosetupusbnetworkingdebian/
--[[Special:Contributions/65.244.131.151|65.244.131.151]] 22:25, 2 June 2008 (UTC)

Link is dead... --[[User:allnameswereout|allnameswereout]] 13:15, 29 October 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:USB host mode</title>
    <id>4282</id>
    <revision>
      <id>46463</id>
      <timestamp>2012-01-20T21:32:51Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <minor/>
      <comment>Undo revision 46462 by [[Special:Contributions/46.17.98.197|46.17.98.197]] ([[User talk:46.17.98.197|Talk]]) SPAM</comment>
      <text xml:space="preserve">==USB 1.0 or 2.0==
How fast is the USB speed? Ist 2.0?</text>
    </revision>
  </page>
  <page>
    <title>Talk:USB networking</title>
    <id>676</id>
    <revision>
      <id>47412</id>
      <timestamp>2012-05-03T18:07:31Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 47409 by [[Special:Contributions/200.110.82.230|200.110.82.230]] ([[User talk:200.110.82.230|Talk]]) no deleting of contributions by other users in &quot;talk&quot;</comment>
      <text xml:space="preserve">(axique) I tried to add a dummy devices on my N800
gconftool -s -t string /system/osso/connectivity/IAP/DEFAULT/type DUMMY
but it does not show up in the connection list. 
I don't know how this syntax must be changed to archive this.
(PS: feel free to remove this comment)

Dummy connections are broken in Diablo due to the new icd2 daemon -qwerty12
== unmounting mmc cards when using usb networking ==

Is there some reason why there is 
&lt;nowiki&gt;        umount /media/mmc1
        umount /media/mmc2&lt;/nowiki&gt;
in usb networking setup script? IMO it is perfectly possible to have mounted cards while using usb networking mode. --[[User:fanoush|fanoush]] 19:56, 4 July 2008 (UTC)

Idem here I see no reason to unount the file systems --[[User:keesj|keesj]] 21:53, 4 July 2008 (UTC)

== internet browsing via usb ==

Hi, I've set up everything and I have a successful USB connection (I even have a ssh access to my N900).

DNS seems ok too since I've made a routing (I've used IP-MASQUERADE-HOWTO).

I can ping www.google.com for instance and I even managed to get the home page using wget www.google.com.

But the terminal doesn't use the USB connection when launching the browser from main MAEMO GUI.

Is it possible to choose the USB connection during the &quot;internet connection selection&quot; process instead of only Wifi or 3G ?

== Current state of this &quot;feature&quot; ==

I have the patch for bug 3243 installed (via the recently-released Community SSU feature) on an N800 running OS2008.  I have the USB Networking control panel installed; after running:
* lsmod lists g_ether (alongside g_file_storage)
* ifconfig lists the usb0 interface

The control panel window displays nothing but the &quot;Setup&quot; button; Refresh does nothing.  Not clear how to uninstall this; I guess ifdown, then rmmod.

I also have the Advance Power Meter applet, which provides a switch between Host and OTG USB mode.  With OTG selected, the N800 behaves as always when connected to the computer: the external cards are presented as storage devices.

With Host selected, on first connection, I was asked for a .INF file.  I tried installing the &quot;newer&quot; .INF for the N900.  Windows installed it with no complaint; however, the device did not show up in Windows' Hardware Manager -- until I selected &quot;Show hidden devices&quot;.  It doesn't appear in the Network Connections control panel.

When I try to uninstall (from Device Manager), I got: &quot;Failed to uninstall device.  The device may be required to boot up the computer.&quot;  This was puzzling, until I found [http://support.microsoft.com/kb/315539 this Microsoft KB entry] which explains how to show ''all'' the hidden entries; the driver can be uninstalled from the second, ghosted node.

Trying now to re-install on Windows using the older (770) .INF, but Windows is no longer noticing when the device is plugged in (in Host mode).

== Set proxy ==
In the FAQ part of this page there is question: &quot;My tablet can now talk to my XP machine, but how do I get out to the rest of the network?&quot;. It says just to edit the 'Dummy network' access point to add proxies. When I did this on my N900 I couldn't avoid entering a SSID for the 'Dummy network'. Now I aways get an error when switching to the dummy network because this SSID isn't found. How can I set the proxy without entering an SSID? It seems that the solution is to rerun &quot;gconftool-2 -s -t string /system/osso/connectivity/IAP/DUMMY/type DUMMY&quot; once the proxies have been set.

== How do I set up DNS once I have connected the tablet and the host? ==
I did this differently on my N900. I added &quot;resolv-file=/var/run/resolv.conf.usb0&quot; at the end of /etc/dnsmasq.conf and the 2 following lines to /etc/network/interfaces in the &quot;iface usb0 inet static&quot; stanza:
&lt;pre&gt;
	up echo nameserver 172.16.47.1 &gt; /var/run/resolv.conf.usb0
	up kill -SIGHUP `pidof dnsmasq`
&lt;/pre&gt;
This seems a more standard way of adding a namesaver to dnsmasq. I don't know if I should remove /var/run/resolv.conf.usb0 when I take the USB interface down. On the host in the &quot;iface usb0 inet static&quot;, I added:
&lt;pre&gt;
	up iptables -A PREROUTING -t nat -p udp -i $IFACE -d $IF_ADDRESS --dport domain -j DNAT --to-destination $(sed -ne '/^nameserver /{s///p;q}' /etc/resolv.conf)
	up iptables -A PREROUTING -t nat -p tcp -i $IFACE -d $IF_ADDRESS --dport domain -j DNAT --to-destination $(sed -ne '/^nameserver /{s///p;q}' /etc/resolv.conf)
&lt;/pre&gt;
to redirect the N900's dns queries to the correct nameserver. This avoids having to run a name server on my host.</text>
    </revision>
  </page>
  <page>
    <title>Talk:Updating the firmware</title>
    <id>3128</id>
    <revision>
      <id>48791</id>
      <timestamp>2012-07-21T22:01:19Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Updating the firmware]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">a great point from Bijiont @ t.m.o:
speaking of wiki, I am surprised the flashing instructions for each OS aren't a little more clear.

For example I don't see the &quot;u&quot; key mentioned on any of the OS instructions.

I know what some are saying &quot;Then update it. . . it's a wiki anyone can do it&quot;. I would but I don't have a N900 nor first hand experience flashing only what I have read here at Maemo.org

Something which may be helpful would be to break down per device how to flash. I know this may sound &quot;low tech&quot; but maybe even include images for people who don't have a tech background.

I know I know, &quot;Are you some kind of moron&quot;? No I actually do a ton of programming so this isn't a request or suggestion from a low tech person but someone who almost spends more time commenting code than the actual code itself.

Code is only as good as the comments that tell you what a nest does.

--[[User:ossipena|ossipena]] 08:37, 4 December 2009 (UTC)

== Flashing order ==

Marcell edited page by adding: &quot;(Warning for eMMC flashing order added. Will be very important for PR1.2 onwards)&quot;

I´m just bit confused because if you read emmc section you notice that in the end is says:
&quot;Having flashed the eMMC, you should now flash the firmware of your device. &quot;
And it doesn't make sense after first saying that you should first flash rootfs.


I undid the changes done to the page. [http://tablets-dev.nokia.com/nokia_N900.php tablets-dev.nokia.com restricted downloads] clearly states that &quot;NOTE: Always flash the FIASCO image first, then the eMMC image immediately after that. Never boot up the device between flashing the FIASCO image and the eMMC image!&quot;.
I hope that no one would edit this page and reverse the order, as it's causing enough confusion already. --[[User:mohammad7410|mohammad7410]] 12:16, 30 June 2010 (UTC)



I'm again doing an undo of an undo of an undo, as the recommended order of flashing is clearly &quot;eMMC '''first''', then rootfs. This has been discussed ad nauseum on IRC, with developers of optification as well as Nokia employees who edited the tablets-dev.nokia.com note, but not to sufficient clarity.

Rationale: when you flash rootfs and by any accident boot up the device prior to eMMC flash, you will end with a broken system, as eMMC flashing deletes the optification done on first boot. IF OTOH you accidentally try to boot a system after eMMC flashing, prior to rootfs flash, then the boot will simply fail, and you can happily go on and flash rootfs after your eMMC.

'''bottom line: tablets-dev.nokia.com is wrong, and eMMC then rootfs is the correct sequence'''

--[[User:joerg_rw|joerg_rw]] 16:21, 19 December 2010 (UTC)

ps.: I really wonder what those editors think of us trying to fix this. Do you think you're the only ones that can read the note on tablets-dev.nokia.com and we edit this here just for shits and giggles? We thoroughly thought about that edit - and we're right on it.



[http://tablets-dev.nokia.com/nokia_N900.php tablets-dev.nokia.com restricted downloads] finally has correct advice:
 NOTE: Always flash the eMMC image first, then the FIASCO image immediately after that. Never boot up the device between flashing the FIASCO image and the eMMC image! When flashing eMMC always also flash FIASCO rootfs - NEVER boot the device between the two flashes.
Thanks Niels Breet!

--[[User:joerg_rw|joerg_rw]] 13:04, 21 December 2010 (UTC)

== Notes by henkka ==
Couple of notes after flashing vanilla + emmc. Maybe these should be mentioned in wiki.

- After flashing vanilla system reboots and asks pin code (not mentioned in wiki)
--&gt; Is emmc flashing mandatory or just recommended after flashing vanilla?

- I couldn't flash emmc with given guide. Have to go with u-key and connect usb cable as in vanilla guide.


----
eMMC == *VANILLA* (= MyDocs content, /home, /opt, all on the 32GB eMMC storage)

rootfs == FIASCO == *COMBINED* (= &quot;the linux system as found on 256MB NAND storage&quot;)

--[[User:joerg_rw|joerg_rw]] 13:12, 21 December 2010 (UTC)

== pit 2012 , pit 28 , pit-37  ==

Through Blogger, i have a blog using Blogspot.  I would likie to know how to export all my posts from Blogspot to my newly created Weebly blog..

== moved here from main page ==
http://wiki.maemo.org/index.php?title=Updating_the_firmware&amp;diff=46136&amp;oldid=46123
Weird squares all over the screen 
After following this doc, and restart my N900 I got weird squares instead of characters an a missing image warning. I found this forum from nokia and it works. notes from nokia The sumary is Do not restart the phone between the two flashes!!! this means remove the -R from the first flash, and imediatelly after do the vanilla flash with the -R not need to unplug the usb cable between flashes either (at least using linux) 

----
A: missing chars (weird squares) and other problems are a result of flashing eMMC and not flashing rootfs after that. It's been explained several times over there on the main page. You '''either''' MUST NOT BOOT after flashing rootfs/COMBINED before flashing eMMC/VANILLA, '''or''' you flash rootfs AFTER eMMC (the foolproof method) - you could have fixed your problem by simply flashing rootfs when you seen those weird squares instead of chars.

--[[User:joerg_rw|joerg_rw]] 14:05, 29 December 2011 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:Useful Mobile URLs</title>
    <id>4519</id>
    <revision>
      <id>39558</id>
      <timestamp>2010-10-16T19:01:20Z</timestamp>
      <contributor>
        <username>oktosite</username>
        <id>3299</id>
      </contributor>
      <comment>Google Reader Touch</comment>
      <text xml:space="preserve">I feel [https://www.google.com/reader/i/ Google Reader Touch] should be mentioned here too. It beats the regular mobile interface flat. --[[User:oktosite|oktosite]] 19:01, 16 October 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:User FAQ</title>
    <id>575</id>
    <revision>
      <id>40567</id>
      <timestamp>2010-12-06T14:43:54Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Moved from Talk:N900 FAQ */ new section</comment>
      <text xml:space="preserve">This is *really* old, and probably obsolete. Is it worth keeping it or rework heavily? Probably nobody would miss it if deleted... --[[User:qgil|qgil]] 21:54, 26 June 2008 (UTC)

== layout ==

ideas to have better layout&amp; usability, please! --[[User:ossipena|ossipena]] 15:33, 18 November 2009 (UTC)

== Sets of questions ==
This post http://talk.maemo.org/showthread.php?t=34061 had a lot of good questions.  Are they all covered?

== Moved from Talk:N900 FAQ ==

I propose including this in just a FAQ, rather than having a separate N900 page.
--[[User:dneary|Dave Neary]] 18:32, 4 November 2009 (UTC)


I have no huge problem with that idea. I have 3 concerns though: 

* The FAQ was conceptualized as separate because the device is uniquely what is bringing many people to the site with specific N900-related questions (some of which are maemo-related, I grant)
* The regular FAQ could be intimidating to new users who are uninterested in the minutiae of development, for instance - with the best will in the world, at present, 'how do I get root access' is not something your new N900 owner or prospective owner would give a monkey's about, if I may be frank.
* Putting this into the regular FAQ might be a bit of overkill (there's a lot here that is really rather specific)

To address these, it's necessary to revamp the FAQ page as is radically. e.g. with questions at top, compartmentalized, and linked to a set of answers either below or perhaps on different page(s) - there is a reason for this, btw - pages that are too long are not friendly, load slowly, and are frustrating on small screens.

I digress. Let's talk

Steve Marsh. 13:57 EST 4/11/09

=== Developer &amp; user FAQs ===

Steve: I have proposed 2 FAQs in the [[wiki gardeners]] page - one for a developer FAQ and one for a user FAQ - we already have about 7 different pages which are candidates for merges into one or the other:

For developers:
* [[Developer_FAQ#Maemo_SDK_and_Scratchbox|Q&amp;A - SDK and Scratchbox]]
* [[Q&amp;A Porting to Fremantle]]
* [[Autobuilder FAQ]]

For users &amp; power users:
* [[Questions and answers]]
* [[Frequently asked questions]]
* [[Troubleshooting]]
* [[N900 FAQ]]

I think it would be good to simplify both the maintenance and the navigation for users by avoiding duplication of information and possible conflicting information and have all of these be in the one place, with clear &amp; good headings &amp; navigation.

--[[User:dneary|Dave Neary]] 19:25, 4 November 2009 (UTC)

=== FAQ structure ===

Dave

I think that structure is an excellent one, and I'd be delighted to see some of (all of?) the N900FAQ embedded within where it makes sense. I'd also be delighted to help out in the editing if you think that it's possible/sensible.

To clarify - the structure I refer it is Developer_FAQ and USER-FAQ... I thin the N900 thing has bits of both in it, but it's mostly user.

As an aside, in my head I can also see a graduated structure to the FAQ, with simple Q's leading to more complex ones in some clever way I haven't managed to make clear to myself yet! (but perhaps simply by their order in the list)

Steve

=== Idea on FAQ ===

Dave (and anyone listening)

Putting together idea for the user faq. Take a look at http://wiki.maemo.org/User:Smarsh/Ideas/FAQIdea and let me know if it's worth continuing with...?

[[User:smarsh|smarsh]] 20:35, 6 November 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:User frequently asked questions</title>
    <id>3142</id>
    <revision>
      <id>24065</id>
      <timestamp>2009-12-05T15:20:49Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Talk:User frequently asked questions]] moved to [[Talk:User FAQ]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:User FAQ]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Using Fremantle Widgets</title>
    <id>3017</id>
    <revision>
      <id>22620</id>
      <timestamp>2009-11-13T17:24:00Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Talk:Using Fremantle Widgets]] moved to [[Talk:Using Fremantle widgets]]: Capitalisation</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Using Fremantle widgets]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Using Fremantle widgets</title>
    <id>1997</id>
    <revision>
      <id>22619</id>
      <timestamp>2009-11-13T17:24:00Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Using Fremantle Widgets]] moved to [[Talk:Using Fremantle widgets]]: Capitalisation</comment>
      <text xml:space="preserve">== On Gtk+ widgets ==

''(Information extracted *as is* from the Hildon 2.2 Widget UI Specification to be published before the Maemo 5 final release)''

There are many Gtk+ widgets which are not used in Maemo at all. The list below contains widgets that are still in use.

&lt;table cellpadding=&quot;4&quot; border=&quot;2&quot; cellspacing=&quot;0&quot; width=&quot;98%&quot;&gt;
&lt;tr&gt;
&lt;td bgcolor=&quot;#D9D9D9&quot;&gt;&lt;b&gt;State&lt;/b&gt;
&lt;/td&gt;&lt;td bgcolor=&quot;#D9D9D9&quot;&gt;&lt;b&gt;Widget&lt;/b&gt;
&lt;/td&gt;&lt;td bgcolor=&quot;#D9D9D9&quot;&gt;&lt;b&gt;Description&lt;/b&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HILDON 2.2
&lt;/td&gt;&lt;td&gt;GtkLabel&lt;br /&gt;GtkImage&lt;br /&gt;GtkProgressBar&lt;br /&gt;GtkHScale&lt;br /&gt;GtkVScale&lt;br /&gt;GtkTreeView&lt;br /&gt;GtkIconView
&lt;/td&gt;&lt;td&gt;Used normally in both legacy and Hildon 2.2 apps.
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LEGACY
&lt;/td&gt;&lt;td&gt;GtkEntry
&lt;/td&gt;&lt;td&gt;REPLACED by HildonEntry
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LEGACY
&lt;/td&gt;&lt;td&gt;GtkTextView
&lt;/td&gt;&lt;td&gt;REPLACED by HildonTextView
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LEGACY
&lt;/td&gt;&lt;td&gt;GtkExpander
&lt;/td&gt;&lt;td&gt;REPLACED by HildonPannableArea. Any show/hide toggling is not recommended for Hildon 2.2.
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LEGACY
&lt;/td&gt;&lt;td&gt;GtkNotebook
&lt;/td&gt;&lt;td&gt;REPLACED by HildonPannableArea. Tabs of any kind are NOT used in Hildon 2.2
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LEGACY
&lt;/td&gt;&lt;td&gt;GtkScrolledWindow
&lt;/td&gt;&lt;td&gt;REPLACED by HildonPannableArea. No scrollbars, direct finger panning instead.
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OBSOLETE
&lt;/td&gt;&lt;td&gt;GtkMenuBar
&lt;/td&gt;&lt;td&gt;REPLACED by HildonAppMenu
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OBSOLETE
&lt;/td&gt;&lt;td&gt;GtkColorSelectionDialog&lt;br /&gt;GtkFontSelectionDialog&lt;br /&gt;GtkFontButton
&lt;/td&gt;&lt;td&gt;REPLACED by HildonPickerButton and HildonPickerDialog. Build the color/font picker using generic &lt;b&gt;Hildon Touch List Picker&lt;/b&gt;.
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OBSOLETE
&lt;/td&gt;&lt;td&gt;GtkFileChooserButton
&lt;/td&gt;&lt;td&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OBSOLETE
&lt;/td&gt;&lt;td&gt;GtkStatusBar
&lt;/td&gt;&lt;td&gt;Use content area instead, there's no equivalent UI element to status bar in Hildon2.2
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OBSOLETE
&lt;/td&gt;&lt;td&gt;GtkPageSetupUnixDialog&lt;br /&gt;GtkPrintUnixDialog
&lt;/td&gt;&lt;td&gt;PRINTING UI NOT SUPPORTED
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</text>
    </revision>
  </page>
  <page>
    <title>Talk:Using touch screen pressure data</title>
    <id>50</id>
    <revision>
      <id>1073</id>
      <timestamp>2008-06-06T18:14:17Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <minor/>
      <comment>[[Talk:How To Use Touch Screen Pressure Data]] moved to [[Talk:Using touch screen pressure data]]: Midgard</comment>
      <text xml:space="preserve">originally from https://maemo.org/community/wiki/howto_usetouchscreenpressuredata/ --[[User:ludovicus|ludovicus]] 18:27, 24 May 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk:VertSMS</title>
    <id>4113</id>
    <revision>
      <id>43719</id>
      <timestamp>2011-06-01T13:49:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>[[VertSMS/secret]] moved to [[Talk:VertSMS]]: moving to talk page</comment>
      <text xml:space="preserve">&quot;secret&quot; notepad

https://www.watchguard.com/help/docs/ssl/2/en-US/Content/FAQs/configure_smpp_faq.html

I am not part of Nokia, but I have worked with SMS and telecomms a lot, there are a couple of possibilities, but I haven't time right now to download and analyse your code.

When you send a text message, you may need to set the Destination and Source Type of Number and/or Numbering Plan Indicator in the SMS PDU. See https://www.watchguard.com/help/docs..._smpp_faq.html. Look for smpp-submit-dest-addr-ton and smpp-submit-dest-addr-npi

It's possible that right now that the Destination (and maybe Source) TON is not being set and picking up the default for the various providers, some of whom default to 1 (international) and some whom default to 4 (Subscriber Number).
Alternatively, you may already be setting the TON and some operators are recognising and overriding the setting, some are not.

My guess is that it's just the TON that might need changing and the NPI is fine.

Another possibility is that when you send the message you send 00nnnnnnn instead of +nnnnnnnnn. IIRC, the + is the correct thing to send as it translates to &quot;use international routing&quot; in the switches. The 00 prefix does the same in most countries, but I don't think it's guaranteed, whereas + is. I am not 100% sure on the accuracy of this statement though .

'''how do i add TON=1 DEST=358xxxxxxx ?!?!?'''


http://adywicaksono.wordpress.com/2008/02/08/how-to-send-flash-sms/

Flash SMS is a type of SMS which will be displayed directly on screen once received. This one is known working on Nokia mobile phone, I don’t know with others. As we know, normal SMS once received is saved either on SIM card or mobile phone memory and then user is noticed by a beep or similar SMS alarm. Flash SMS is different.

Flash SMS is done by define message class part of TP-DCS of SMS PDU to zero (0×00), what TP-DCS is? Please read GSM 03.40 :) . Here’s an example of SMS PDU (in hexadecimal):

15010A91561904472800F4A718496E6920636F6E746F6820666C61736820534D53206C686F

Let us breakdown:

    * 1st byte: 0×15 or in binary 00010101
          o TP-MTI (bit 0&amp;1) = 01 means this PDU SMS type is SMS-SUBMIT
          o TP-RD (bit 2) = 1 means reject duplicate if there’s a same SMS with same TP-MR
          o TP-VPF (bit 4&amp;3) = 10 means this SMS contain validity period info with relative format
          o TP-SRR (bit 5) = 0 means we don’t ask for delivery report
          o TP-UDHI (bit 6) = 0 means no user data header information (UDHI)
          o TP-RP (bit 7) = 0 means reply path unused
    * 2nd byte: TP-MR = 0×01, means message reference number is 0×01
    * 3rd byte: TP-DA length = 0x0A, this is length of destination address.I want to send to my own number which is 6591407482 -&gt; see there’re 10 digits, to TP-DA should be 0x0A or 10 in decimal
    * 4th byte: TON/NPI info = 0×91 or in binary format 10010001
          o TON (bit 6,5,4) = 001 -&gt; means International Number
          o NPI (bit 3,2,1,0) = 0001 -&gt; means ISDN telephone number
    * 5th byte .. 9th byte: 5619044728 -&gt; this is the destination number 6591407482 but written in BCD semioctet format
    * 10th byte: TP-PID = 0×00 -&gt; means use default protocol identifier
    * 11th byte: TP-DCS = 0xF4 or in binary format 11110100
          o Bit 3,2 = 01, means TP-UD (user data) is encoded using 8 bit format
          o Bit 0,1 = 00, means class 0 {this will make this sms become flash sms}
    * 12th byte: TP-VP = 0xA7 means this SMS is valid only for 24 hours
    * 13th byte: TP-UDL = 0×18 means the user data/message part length is 24 character
    * the rest byte:
          o 496E6920636F6E746F6820666C61736820534D53206C686F
                + Thi is hex representation of string “Ini contoh flash SMS lho”, you may use http://www.ttdpatch.net/cgi-bin/str2hex.pl to convert from hex to string and vice versa

sample string:
1, 10, 10, 129, 64, 21, 33, 19, 0, 0, 0, 3, 234, 119, 93

 1 00000001
 
 10 00001010

 10 00001010

 129 10000001</text>
    </revision>
  </page>
  <page>
    <title>Talk:Video encoding</title>
    <id>3677</id>
    <revision>
      <id>46534</id>
      <timestamp>2012-01-30T11:36:55Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Talk:Video encoding]]&quot;: Spam added 3 times in the last 40 days [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">For handbrake there needs to be the command line options, not just the plist file, since .plist does not work with handbrake-cli</text>
    </revision>
  </page>
  <page>
    <title>Talk:Why the closed packages</title>
    <id>2709</id>
    <revision>
      <id>20065</id>
      <timestamp>2009-10-14T11:02:51Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Talk:Why the closed packages]] moved to [[Talk:Open development/Why the closed packages]]: move</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Open development/Why the closed packages]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Wifi Assistant</title>
    <id>4872</id>
    <revision>
      <id>45027</id>
      <timestamp>2011-08-24T06:40:05Z</timestamp>
      <contributor>
        <ip>79.45.4.4</ip>
      </contributor>
      <text xml:space="preserve">Hi,
 good thing. I use it, but now I get to captive portal where I cannot convince the browser to save username &amp; passw. It is very annoying. Does it have something in common with wifi assistant? Any known solution?
thanks</text>
    </revision>
  </page>
  <page>
    <title>Talk:Wiki Gardeners</title>
    <id>4093</id>
    <revision>
      <id>34309</id>
      <timestamp>2010-05-12T20:07:45Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Talk:Wiki Gardeners]] moved to [[Talk:Wiki gardeners]]</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:Wiki gardeners]]</text>
    </revision>
  </page>
  <page>
    <title>Talk:Wiki gardeners</title>
    <id>113</id>
    <revision>
      <id>34308</id>
      <timestamp>2010-05-12T20:07:45Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <minor/>
      <comment>[[Talk:Wiki Gardeners]] moved to [[Talk:Wiki gardeners]]</comment>
      <text xml:space="preserve">== Embed category lists? ==

Is it possible to embed category lists in a page? I would like to have [[:Category:Proposed|the proposed tasks]] automagically listed at https://wiki.maemo.org/100Days/Sprint2#Proposals instead of having to keep manually the list.--[[User:qgil|qgil]] 12:36, 29 June 2008 (UTC)
:Well, according to [http://www.mwusers.com/forums/showthread.php?t=5405 this], we definitely need a plugin. Either [http://www.mediawiki.org/wiki/Extension:CategoryTree CategoryTree], which seems to do want we want here, the other option is [http://www.mediawiki.org/wiki/Extension:DynamicPageList DynamicPageList], which is more complicated, but is capable of doing a lot more stuff. They seem to be compatible with each other, so installing both seems like a good plan. Anyway, I've filed bugs [https://bugs.maemo.org/show_bug.cgi?id=3341 #3341] and [https://bugs.maemo.org/show_bug.cgi?id=3342 #3342]. —[[User:generalantilles|GeneralAntilles]] 12:53, 29 June 2008 (UTC)

== Other Language Section ==

Is it possible to create the Russian-language and other language section of wiki ? We would like to move here wiki.internet-tablet.com materials and translations. --[[User:dik|dik]] 23:58, 30 June 2008 (UTC)
:This may not be super-feasible. Wikipedia does it by providing a nearly-completely separate wiki for each language. We could do it here by providing a namespace for each language, but that is likely to clutter up searches, categories and page lists with non-English results, which is probably not a desired outcome. Will likely need to discuss further. —[[User:generalantilles|GeneralAntilles]] 06:19, 1 July 2008 (UTC)
:Personally, I'm very much against cluttering up the wiki with non-English content. Running a separate mediawiki instance for each language may be the better option (from a wiki-user perspective, anyway), but running a dozen or other instances that are guaranteed to end up as spam repositories isn't something that we need. So, in order to have a language instance added, we need to see a minimum commitment (say, 5 dedicated people that are willing to manage the wiki, patrol for spam, etc). —[[User:generalantilles|GeneralAntilles]] 06:50, 1 July 2008 (UTC)
:: hope you won't drag that for ages - community development in non-English languages is no less priority than pushing forward English-only solution. [[User:silpol|silpol]] 08:50, 2 July 2008 (UTC)
:::Why not elaborating a decent [http://wiki.maemo.org/100Days/Sprint3#Proposals proposal]?--[[User:qgil|qgil]] 09:33, 2 July 2008 (UTC)
:::As GeneralAntilles says, though, it needs commitment from others. There are probably no more than a dozen people regularly tending this wiki and a wiki is like a garden: it needs to be regularly pruned, watered etc. to prevent rotting and weeds. If there's enough commitment and energy for a non-English language wiki, I'd be happy to support it; but I agree with GA: it shouldn't clutter up the English wiki search results and so may have to be an entirely separate instance. --[[User:jaffa|Jaffa]] 17:11, 2 July 2008 (UTC)
::::I can tending russian wiki--[[User:dik|dik]] 10:23, 3 July 2008 (UTC)

::::I'm ready to participate in moderation of russian branch. --[[User:vetalik|vetalik]] 14:31, 4 July 2008 (UTC)

== More uploadable file formats ==

I'm [http://lists.maemo.org/pipermail/maemo-community/2008-July/000465.html Unable to upload a file to the wiki]. This is stopping [[Task:Components_and_packages]]. Please let me know whether this can be done or not with the wiki. If not, I will find another place. Thanks!--[[User:qgil|qgil]] 08:35, 19 July 2008 (UTC)
: http://www.mediawiki.org/wiki/Manual:%24wgFileExtensions --[[User:qgil|qgil]] 15:11, 19 July 2008 (UTC)
::This is definitely a ferenc issue. —[[User:generalantilles|GeneralAntilles]] 20:15, 19 July 2008 (UTC)

== Templates ==

I was trying to make wikipedia like infobox template for software but probably missed some templates as page didn't come out as supposed. [[OMWeather]] is page where I was trying to make it. I hope that someone can make that template to work properly. Or was it mistake to copy those templates directly from wikipedia? If so templates I made should probably be deleted.
:I tidied up the OMWeather article, and removed the templates as no other article was using them. [[User:amigadave|amigadave]] 12:53, 4 May 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Talk moderators</title>
    <id>1694</id>
    <revision>
      <id>40084</id>
      <timestamp>2010-11-12T13:25:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add wiki user page links</comment>
      <text xml:space="preserve">[http://talk.maemo.org/member.php?u=2 Reggie Suplido] is the administrator of [http://talk.maemo.org talk.maemo.org]. He can grant moderator permissions to users with merits willing to contribute.

* Promoting threads to News.
* Moderating threads: deleting spam, moving threads to right folders...
* Moderating users: abusers...

These are the current global moderators:
* [http://talk.maemo.org/member.php?u=4209 lardman] [[User:Lardman]]
* [http://talk.maemo.org/member.php?u=6047 timsamoff] [[User:timsamoff]]
* [http://talk.maemo.org/member.php?u=5991 sjgadsby] [[User:sjgadsby]]

These are the current local moderators:
* [http://talk.maemo.org/member.php?u=10410 qole] [[User:qole]], Alternatives
* [http://talk.maemo.org/member.php?u=16237 andrewfblack], Design
* [http://talk.maemo.org/member.php?u=9921 wazd], Design

A more recent list may be found [http://talk.maemo.org/showgroups.php here].

[[Category:Talk]]</text>
    </revision>
  </page>
  <page>
    <title>Task:100Days</title>
    <id>81</id>
    <revision>
      <id>49258</id>
      <timestamp>2012-08-28T11:00:09Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Task:100Days]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">{{task|completed}}

The '''100 Days Action Plan''' brainstorm for maemo.org has covered its first objective and now the list of proposal is closed. Now the help is needed in the committed tasks listed below. The strategic brainstorm continues at [[2010_Agenda|maemo.org 2010]].

=Community-led action plan process=
Planned sprints:
* Sprint 1. Started on 2008/06/10. [https://garage.maemo.org/plugins/wiki/index.php?June2008Sprint&amp;id=106&amp;type=g Tasks committed]. IRC review meeting on 2008/06/30.
* [[100Days/Sprint2|Sprint 2]]. IRC review meeting on 2008/07/22.
* [[100Days/Sprint3|Sprint 3]]. IRC review meeting on 2008/08/12.
* [[100Days/Sprint4|Sprint 4]]. IRC review meeting on 2008/09/02.
* [[100Days/Sprint5|Sprint 5]]. Life/IRC review meeting at [[Maemo Summit 2008|maemo summit]] on 2008/09/19.

=Agreed tasks=

== Defining maemo ==
{{main|Task:Defining maemo}}
Crystal-clear definitions of maemo, maemo.org, OS2008 and so on.

[[User:Qgil|qgil]] coordinates this task. Not included in the Sprint 1 (June) but you can start helping out now.

==Fast server==
{{main|Task:Fast Server}}
Browsing and downloading from maemo.org should be simply fast. No excuses.

Nemein will work on this task. More details to come.

== Mapping openness ==
{{main|Task:Mapping openness}}
* Identifying closed-source components and the reasons why, addressing the community's concerns over openness.

[[User:Qgil|qgil]] coordinates this task. Not included in the Sprint 1 (June) but you can start helping out now.

== [http://www.internettablettalk.com Internet Tablet Talk] Collaboration ==
{{main|Task:ITt Collaboration}}
maemo.org and ITt services should integrate much better i.e. maemo.org Downloads syndicated in ITt and ITt users getting maemo.org [[karma]].

Nemein will handle this task. Henri is the contact. More to come soon.

== Consolidation of extras ==
{{main|Task:Consolidation of Extras}}
The Extras repository needs to become the single reference for developers willing to reach end users at large.

Niels to coordinate this. More details to come.

== Improving maemo.org ==
{{main|Task:Improving maemo.org}}
maemo.org needs improvements in usability, content, format and style.

Dave to coordinate this task. More details to come up later.

Nemein will help on this, but there needs to be a clear plan first to see who pushes what.

=== Content cleanup ===
{{main|Task:Content Cleanup}}
Dress up the most important content, dump what is not relevant, handle the rest via the wiki.

== Roadmap for the Maemo platform ==
{{main|Open development/Maemo roadmap}}
A Maemo roadmap for developers, disclosing information about open source components and developer libraries.

[[User:Qgil|qgil]] coordinates this task. Planned for the Sprint 5 (September) but you can start helping out now.

== Community Council ==
{{main|Community Council}}
A process for electing a small &quot;Community Council&quot; should be created and elections held.

This task needs a coordinator.
:''Jaffa, lardman, or myself are probably the ones to push this. Jaffa's currently on vacation, so I'll get together with lardman tomorrow to start getting the ball rolling on this. —[[User:generalantilles|GeneralAntilles]] 01:01, 12 June 2008 (UTC)''

== More pre-agreed tasks ==
Help planning them further and moving them to an own page.

* [[Task:Using garage.maemo.org]] - Ferenc
* Close misnamed (and now misused) maemo2midgard-discuss mailing list and create maemo-community alongside existing mailing lists for overall discussions about maemo.org sites and community topics in general. Ferenc . '''[http://lists.maemo.org/mailman//listinfo/maemo-community DONE]'''.


[[Category:Community]]
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Task:2010 Agenda</title>
    <id>82</id>
    <revision>
      <id>46441</id>
      <timestamp>2012-01-17T13:34:14Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/189.191.93.73|189.191.93.73]] ([[User talk:189.191.93.73|Talk]]); changed back to last version by [[User:Timsamoff|Timsamoff]]</comment>
      <text xml:space="preserve">{{task|ongoing}}

Help defining the '''maemo.org 2010 Agenda'''. This is taken to mean the vision the community has for the state of maemo in 2010.

= Objectives =
Each objective consists of a list of tasks. The list of objectives here is ready for community approval but the tasks in each page need surely more iterations.

== Best community for mobile Linux innovation  ==
{{main|Objective:Best community for mobile Linux innovation}}
The best open source projects target primarily the Maemo platform.

== Release soon &amp; often ==
{{main|Objective:Release soon and often}}
Public releases of Maemo while it's being developed.

== One place to track feedback ==
{{main|Objective:One place to track feedback}}
bugs.maemo.org to get Nokia developers involved as well as the consolidated community projects.

== Co-production of official &amp; community documentation ==
{{main|Objective:Co-production of official &amp; community documentation}}
Nokia and the Maemo community to collaborate in the production of the documentation developers and other contributors need.

== Community localization ==
{{main|Objective:Community localization}}
The Maemo experience in our own language, translated by ourselves.

== Maemo variants ==
{{main|Objective:Maemo variants}}
Tools to bring platform innovation to adventurous users.</text>
    </revision>
  </page>
  <page>
    <title>Task:3rd party bug tracking in bugs.maemo.org</title>
    <id>689</id>
    <revision>
      <id>29432</id>
      <timestamp>2010-02-12T16:13:38Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Bugzilla]]</comment>
      <text xml:space="preserve">{{Template:2010 agenda}}
{{task|accepted}}

This task is part of [[Objective:One place to track feedback]].

Fitting with the intent of the [[Task:Maemo brand]] change-up, this is a proposal to migrate [http://garage.maemo.org/ Garage] bug tracking into the [https://bugs.maemo.org maemo.org bugzilla]. '''This task is a still in the proposal stage''', with many details still to be determined before work can begin.

== Proposal ==
''That the Garage bug tracking system be disabled for all new projects, a system for tracking Garage project bugs in bugzilla be put together, and existing Garage project tracking be migrated to it.''

As anybody who has ever tried to use the Garage bug tracker knows, it is a very difficult system to work with—it is difficult to submit bugs, it is difficult to find bugs, and it is difficult to track bugs, and should be closed down and disabled asap. The recent [[Task:Maemo brand|Maemo branding]] changes and [http://www.maemo.org maemo.org] moving into community hands presents us with a good opportunity to do away with the Garage tracker and moved Garage project bug tracking into a centralized Maemo tracking system—bugzilla.

== Objectives ==
* To move away from the difficult to navigate, manage and use Garage tracking system to the much saner bugzilla.
* Provide a centralized bug tracking system for both Maemo and Maemo-related projects in Garage.
* Encourage Garage project quality by reducing bug tracking overhead, and encouraging user bug reporting.

== Implementation issues ==
There are a number of specific issues with the implementation of this change that need to be worked out.

=== Bugzilla ===
* Classification setup needs to be figured out (Garage, Maemo Software, Nokia?)
* Process for creating new Garage project products in Bugzilla
** Component structure
** Default assignee policy
** Can this be automated safely or does it have to be done by hand?
* Templates need to be looked at figure out what should be displayed when creating a new bug.

==== New bug submission template ====
The Maemo Software, Nokia, and Website stuff should be front and foremost, particularly when submitting new bugs. The new bug template should probably be revised to look something like [[:Image:New-bug-mockup.jpg|this]].

A new, simplified screen should also be created for creating bugs to dramatically lower the barrier to entry. The number of fields should be the minimum possible. A core set would include:
* Summary
* Description
* Component (mapping to garage project? what if a single project has multiple apps, e.g. [[http://maemo.org/downloads/product/PC/tablet-encode/ tablet-encode]] and mediaserv?)
* Version (come from versions released on downloads.maemo.org or file releases in garage or owner-definable?)
* Priority (possibly named &quot;impact&quot;)

User's confronted with the current Bugzilla form (containing fields not intended for reporters to set, internal alias fields and all manner of other confusing elements) is ''such'' a disincentive to report bugs.

=== Garage ===
* Can the Garage tracker be disabled?
** There will probably be some projects that still wish to use the Garage tracker (namely, the 770 backport stuff), can it be left in place for just these projects and disabled for existing projects that wish to use bugzilla?
* How tightly integrated can the Garage project page be with bugzilla? Can the tracker entry on the project front-page show bugzilla bug status?
* Should there be a barrier to entry for Bugzilla tracking to keep clutter down?
** qgil came up with the perfect answer to this on [https://bugs.maemo.org/show_bug.cgi?id=630#c23 bug #630]—Extras! Though there will have to be some other metric for non-tablet software.
*** Beta/stable quality and complete page at http://maemo.org/downloads/PC/ ? --[[User:qgil|qgil]] 19:56, 15 July 2008 (UTC)
**** Beta/stable quality and complete page in http://maemo.org/downloads/ should also be a requirement for anything ''in'' Extras as well. Only things in /PC/ can bypass the Extras requirement. Sounds good to me. --[[User:jaffa|Jaffa]] 22:52, 18 July 2008 (UTC)

[[Category:Bugzilla]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Brainstorm Java</title>
    <id>2751</id>
    <revision>
      <id>35516</id>
      <timestamp>2010-06-08T18:19:42Z</timestamp>
      <contributor>
        <ip>213.243.172.74</ip>
      </contributor>
      <comment>/* Community or Nokia builds Iced Tea */</comment>
      <text xml:space="preserve">Temporary entry to outline Brainstorm entry for ''Java support on Maemo 5'' [http://talk.maemo.org/showthread.php?t=32914 as result of discussion on t.m.o]. Also see [[Java]]; this wiki entry is permanent and not related to Brainstorm.

== Proposal 1: [http://java.sun.com/javame/ Java ME] ==

=== Nokia buys Java ME royalities and lets SUN port it ===

*+) Official implementation, official support
*+) [http://talk.maemo.org/showpost.php?p=351021&amp;postcount=95 According to a member of the Java Runtime Team] at Nokia, some work on this port has already been done.
*-)  Probably quite expensive
*-)  Closed license

=== Community ports [https://phoneme.dev.java.net PhoneME] ([http://www.sun.com/software/opensource/java/faq.jsp#c more info]) ===

*+) GPL
*-) No team as of yet
*-) Not &quot;official&quot;, so no advertising of MIDP capability
*-) No info as to how complete this implementation is

=== Nokia or the community ports a Java SE implementation, and we use something like [http://www.microemu.org MicroEmu] for ME compatibility ===

*+-) See above
*-) Might be a bit slower

=== Use the Google Android's Virtual Machine Dalvik ===

*+) Open source, fast, mobile phone optimized
*+) It would be great if the Maemo community could profit from all android apps.
*-) Google

== Proposal 2: [http://java.sun.com/javase/embedded Java SE] ==

=== Nokia buys Java SE embedded royalities and lets SUN port it ===

*+) Official implementation, official support
*-) Probably quite expensive
*-) Closed license

=== Community ports [http://openjdk.java.net OpenJDK 6 JRE] ([http://www.sun.com/software/opensource/java/faq.jsp#b more info]) ===

*+) GPL
*+) OpenJDK Port of [http://www.camswl.com/openjdk Cambridge Software Labs] seems to work quite good on N900: [[OpenJDK 6.0_0 (Cambridge Software Labs) on N900]]
*-) No team as of yet
*-) Not &quot;official&quot;, so no advertising
*-) No info as to how complete this implementation is

=== Community ports [https://wiki.evolvis.org/jalimo/ Jalimo] ===

*+) GPL
*-) Not much activity lately
*-) No advertising, maybe incomplete

=== Community or Nokia builds [http://icedtea.classpath.org/wiki/Main_Page Iced Tea] ===
* ) This actually includes the Cambridge optimisations, so IcedTea supersedes &quot;Community ports OpenJDK 6 JRE&quot;.
*+) Debian already has armel packages of this. Only repackage needed.
*+) The above repackage has been done and uploaded to extras-devel: http://talk.maemo.org/showthread.php?t=51871
*-) However, no hildonization. The Jalimo project has built good Hildonized SWT, which can be combined with this for good results.
*+) True GPL, no binary components
*-) No team so far
*-) No official advertising

== Todo ==

Following is not taken into account in above proposals.

*?) Compatibility of open source implementations with the official one. Certified YES/NO. If no, please link to what is missing.
*?) Browser plugin is not covered in discussion.

[[Category:Community]]
[[Category:Brainstorm]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Brainstorming new features</title>
    <id>901</id>
    <revision>
      <id>11167</id>
      <timestamp>2009-02-24T03:23:43Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>/* Questions */ Question about UserVoice</comment>
      <text xml:space="preserve">{{Template:2010 agenda}}
{{task|ongoing}

This task is part of the [[Objective:One_place_to_track_feedback]].

Currently feature requests are handled via http://bugs.maemo.org in a not very efficient way: many users don't know about this and the connection with Maemo SW product management is poor. In fact both aspects are somewhat related: product managers have plenty of sources of feedback and community feedback is spread through different channels with a lot of noise and overlaps. The solution is to promote a single channel at a Maemo community level, give relevant to the topics that matter and have a good communication with product management there.

== Questions ==
* How to get this tool in sync with Maemo product management and R&amp;D teams at Nokia?
* What are the requirements?
* Can bugs.maemo.org enough fulfill them? Why?
* If not, is a tool like [http://brainstorm.ubuntu.com/ Ubuntu Brainstorm] what we need?
** Has anyone ever used [http://uservoice.com/ UserVoice]? It's closed and fee-based, but I'm hearing good things about it. --[[User:timsamoff|timsamoff]] 03:23, 24 February 2009 (UTC)

Discussion about the Maemo Brainstorm tool is located in [[Task:Maemo_brainstorm|Maemo Brainstorm]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Bugzilla report card</title>
    <id>1342</id>
    <revision>
      <id>8854</id>
      <timestamp>2008-11-20T12:04:26Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Undo revision 8853 by [[Special:Contributions/qgil|qgil]] ([[User talk:qgil|Talk]])</comment>
      <text xml:space="preserve">{{task|proposed}}

{{quotation|Something that would help in the Fremantle timeline is to define what products (aka which teams) are doing better and worse. Now there is an overall complaint, which is unfair to actually those individuals and teams that are doing a good work in bugs.maemo.org. The general complaint is also more difficult for us to chase reasons why things are how they are. If instead there would be a wiki page or something showing &quot;red - yellow - green - star&quot; status of each product matching a team, then we all would be able to focus on the right spots.|Quim Gil}}

== Metrics ==

Grading is based on response rate (how many incoming bugs were responded to?), fix rate (excluding moreinfo, DUPLICATE, WORKSFORME, and INVALID), and (Bugsquad?) perception based on experience with the team.

== Report format ==

'''NOTE: This table is entirely bogus.'''

{| class=&quot;wikitable sortable&quot;
|-
! Team !! Response !! Fix !! Rating !! Comments
|- style=&quot;background:LightBlue&quot;
| Browser || 23/34 || 10/29 || Good || Good response rate, but fixes are slow.
|- style=&quot;background:Orange&quot;
| Desktop || 2/19 || 12/15  || Yellow || Excellent fix rate, but communication is sorely lacking.
|- style=&quot;background:Tomato&quot;
| Connectivity || 5/25 || 2/25 || Poor || Poor fix rate and poor communication leaves a lot to be desired.
|- style=&quot;background:LightGreen&quot;
| Utilities [[Image:Star.png]] || 10/10 || 5/5 || '''Excellent!''' || Perfect response rate, perfect fix rate (excluding moreinfo bugs).
|}


[[Category:Community]]
[[Category:maemo.org]]
[[Category:Bugzilla]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Busybox</title>
    <id>1403</id>
    <revision>
      <id>20366</id>
      <timestamp>2009-10-18T18:34:52Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">Let's talk about developing openly the Maemo implementation of BusyBox.

This component has raised a lot of interest (and passionate debates) in the community. See also this community project for a BusyBox variant: https://garage.maemo.org/projects/busybox-test/

All these energies could converge in a common effort.

== Open enhancement requests ==

{{#bugzilla:
  |component=Busybox
  |severity=enhancement
  |status=unconfirmed,new,assigned,reopened
  |sort=votes
  |order=desc
  |columns=votes,id,summary
}}

== Open bugs ==

{{#bugzilla:
  |component=Busybox
  |severity=!enhancement
  |status=unconfirmed,new,assigned,reopened
  |sort=votes
  |order=desc
  |columns=votes,severity,id,summary
}}
[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Collaboration infrastructure</title>
    <id>1317</id>
    <revision>
      <id>32691</id>
      <timestamp>2010-04-14T13:59:12Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>{{task|accepted}}</comment>
      <text xml:space="preserve">{{task|accepted}}

This task is related to [[Objective:Release soon and often]].

Here we want to define the infrastructure needed to develop projects in an open and collaborative way. Thre is two views to the question: the project-centric view and the platform-centric view.

Examples of potential conflicts between both views:
* Garage offers bug tracker and wiki to al projects. However, do we want to use those or push the projects to concentrate in bugs.maemo.org and wiki.mamo.org?
* Tero is figuring out a strategy to offer git in maemo.org. Is it about enabling git for garage projects or creating a generic git.maemo.org where everybody uploads their code?

Please leave your opinions in the [[Talk:Task:Collaboration_infrastructure|discussion]] page.

== Project level ==

Let's take as an example the open development of the [https://garage.maemo.org/projects/hildon-app-mgr/ Application Manager]. What there is now and what is needed.

=== Visible infrastructure ===

* [http://hildon-app-mgr.garage.maemo.org/ Static website], with basic documentation.
* [http://garage.maemo.org Garage] project.
* [https://garage.maemo.org/scm/?group_id=122 SVN] and [http://gitorious.org/projects/hildon-application-manager git] (in Gitorious.org) repositories.
* [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;classification=Maemo+Software&amp;component=Application+manager&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= Component in bugs.maemo.org] ([https://garage.maemo.org/tracker/?group_id=122 Garage Tracker] available but not used.
* [[Task:Improving_the_Application_manager|A wiki page]] in wiki.maemo.org.
* Lists - a [https://garage.maemo.org/mail/?group_id=122 Commits list] exists; th discussion happens in maemo-developers.
* [https://garage.maemo.org/forum/forum.php?forum_id=452 Forum] available, although not maintained.
* [http://mariusv.wordpress.com/ Marius' blog], lead developer - actually more into [http://mvo.jaiku.com/ microblogging].
* [https://garage.maemo.org/pm/?group_id=122 Tasks], not used.
* [https://garage.maemo.org/docman/?group_id=122 Docs], not used.
* [https://garage.maemo.org/news/?group_id=122 News], not used.
* [https://garage.maemo.org/frs/?group_id=122 Files], not used.

== Platform level ==</text>
    </revision>
  </page>
  <page>
    <title>Task:Comments2Talk</title>
    <id>1845</id>
    <revision>
      <id>32190</id>
      <timestamp>2010-04-08T15:10:09Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix link</comment>
      <text xml:space="preserve">{{task|proposed}}

== Rationale ==

Now there is http://talk.maemo.org - an excellent platform to handle comments and discussions in the Maemo community. It's much more powerful than the current infrastructure for comments in maemo.org, so why not use it. 

The change would also bridge much better the ''traditional'' maemo.org and InternetTabletTalk communities: commenters on announcements, maemo.org blogs, downloads or brainstorm would land on talk.maemo.org and regular users of t.m.o would be more aware of what is being originated in other parts of maemo.org.

The main reason to push this is the new Maemo Brainstorm, that ideally would be officially released with the new way of handling comments. Talk and Brainstorm are naturally tied together.

There was also a big discussion and a plan at the time on [[/Task:ITt_Collaboration#ITt_application_catalog_feeds|ITt application catalog feeds]], and this would be a straight forward implementation of that plan.

Comments on [[Main Page|Maemo wiki]], [http://bugs.maemo.org Maemo bugzilla] and [http://garage.maemo.org Maemo Garage] can stay the way they are.  :)

== Dependencies ==

[[Task:Single sign-on]] is a dependency to have this system working flawlessly. However, if we need to choose between waiting the full implementation or go ahead with e.g. Brainstorm and make users have twoi logins at the beginning, I would go for the latter. It all depends on the planned dates to complete Single Sign-On, Brainstorm and Comments2Talk.

== In practice ==

=== Brainstorm ===
[[Task:Maemo_brainstorm|The future Brainstorm]] is centered on creating ideas, proposing solutions ans rating them up/down. All this functionality is being designed as a Midgard CMS module and this is good. But comments on ideas are also allowed, and they could be much better handled in tmo threads.

This is where we should put our focus for a first sprint. As opposed to the rst of existing maemo.org channels, this is new and it is better that is released with the right infrastructure in place to avoid future changes, move of comments to a different system, etc.

=== Downloads ===
Reggie had created a spec but it is currently [http://www.internettablettalk.com/wiki/index.php?title=Maemo.org_Syndication gone]. A couple of thoughts while it is recovered:

* A page like http://maemo.org/downloads/product/OS2008/personal-menu/ should contain all the basic information but then the comments and votes would be originated in a tmo thread (the basic infrastructure is in place since tmo also handle 5 star ratings). Probably not easy, though.
* Question: a new application generates automatically a new thread or do we wait for a first commenter to click a link that would create it? Whatever is technically easier. Probably creation of a new thread by default is better anyway: more awareness to more users, even if then many threads risk to remain empty.
* Question: what happens to all the current comments and ratings? One possibility would be to keep what exists as it is and start with the new system with Maemo 5.
* Question: by default new versions of an application would stay in the same thread - but what is a developer does a major upgrade in a same OS release, can he define a way to start a new thread?

=== News ===
A new entry creates automatically a new thread in tmo where all the comments are handle. This applies to:
* [http://maemo.org/news/announcements/ Announcements]
* [http://maemo.org/news/events/ Events]
* [http://maemo.org/community/council/ Council blog]
* It would be nice to offer a recommendation to [http://maemo.org/news/planet-maemo/ Planet Maemo] blogs willing to follow the practice - http://maemoteam.wordpress.com/ comes to mind.
* Same recommendation for [http://maemo.org/news/community/ Garage news] - it's probably not worth attempting to hack GForge to do that automatically.
[[Category:Talk]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Community Council</title>
    <id>140</id>
    <revision>
      <id>47469</id>
      <timestamp>2012-05-10T12:33:07Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/208.23.77.15|208.23.77.15]] ([[User talk:208.23.77.15|Talk]]); changed back to last version by [[User:Jaffa|Jaffa]]</comment>
      <text xml:space="preserve">#redirect [[Community_Council]]

{{Template:100Days agenda}}
{{task|completed}}

== Objective ==
A process for electing a small &quot;Community Council&quot; should be created and elections held.

[[User:qgil|Quim Gil]] is currently responsible for managing the Maemo community on behalf of Nokia. But who is the community? Getting consensus of hundreds of disparate people through mailing lists and wiki-edits means the person who shouts loudest wins.

Therefore —inspired by Debian's Project Leader concept— during the next [[100Days]], a process for electing a small &quot;Community Council&quot; should be created and elections held.

== The Community council ==

This is the proposal for a Community Council based on the [[Task:Community Council|proposal]] from the [[100Days|100 Days brainstorm]]. It is a work in progress to be thrashed out over the next 30 days, so these ideas are fluid and will change frequently. Please see the [[Talk:Community_Council|talk page]] for discussion.

=== Purpose ===
The maemo community currently lacks focus for its issues and ideas. There are a lot of great minds with lots of good ideas but they lack organization and focus. The council will serve to help distill and focus these ideas (from the maemo.org mailing lists, IRC, itT, Bugzilla, etc), bring them to Nokia's attention, and seek to understand Nokia's position on these issues and help to explain it to the rest of the community.

The council will also serve to facilitate a dialog between Nokia and the community on these issues, holding monthly IRC meetings with Nokia representatives to discuss progress on existing issues and raise new issues.

==== Roles of the council ====
* Monthly IRC meeting with Nokia representatives. Open to all, but moderated so only the council members and Nokia representatives can talk.
* Distill maemo community issues, from maemo-* mailing lists, ITT, etc. and raise with Nokia.
* Understand, and help explain, Nokia's decisions and processes to the rest of the community to ensure that dialogue remains helpful, fruitful and progressive.
* Advocate maemo.org, and involvement in its community, to end-users.
* Help manage community involvement, for example [[Maemowiki Action Group]], [[100Days]] and [[2010 Agenda]].
* Act as the definitive mouthpiece for the maemo.org community when questions are asked of the community by, say, Nokia.
* Help direct efforts of Nokia employees working on behalf of the community.

=== Structure ===
The council will be composed of 5 community members to be elected by the community with 1 member as the council chairman. The chairman will be selected by the council after the completion of elections and requires a majority vote of 3 out of 5 council members. If no majority can be reached, the chairman will be the member with the most community votes. Potential candidates must have 100 karma points on maemo.org.

==== Elections ====
{{main|Community_Council#Election_Process}}

==== Operations ====
* The council will hold monthly IRC meetings with the contacts from the Maemo Software team at Nokia to discuss new issues and progress on existing issues.
* Distill community issues to bring to Nokia's attention.
* Help manage community involvement (e.g. [[Maemowiki Action Group]], [[100Days]] and [[2010 Agenda]])

== Election ==

The first election will take place between 3/9/2008 and 10/9/2008. Voting will be open to all members of the community who have an account on maemo.org for more than 3 months on the 10/9/2008 - that is, on 10/6/2008. Candidatures opened on 14/8/2008, and will close on 2/9/2008 at 23:59 UTC. Candidatures should be sent to maemo-community@maemo.org mentioning maemo username, real name, company affiliation and reasons for wanting to be on the council.

* [[Task:Community Council/Eligible candidates | Eligible candidates]]
* [[Task:Community Council/Candidate declarations | Candidate declarations for the inaugural community council elections]]
* [[Task:Community Council/Eligible voters | Eligible voters]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Community Council/Candidate declarations</title>
    <id>1674</id>
    <revision>
      <id>11430</id>
      <timestamp>2009-03-04T10:41:45Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Task:Community Council/Candidate declarations]] moved to [[Task:Community Council/Candidate declarations for September 2008]]</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Community Council/Candidate declarations for September 2008]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Community Council/Candidate declarations for March 2009</title>
    <id>1675</id>
    <revision>
      <id>46448</id>
      <timestamp>2012-01-17T19:03:05Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <minor/>
      <comment>Undo revision 46447 by [[Special:Contributions/109.230.216.225|109.230.216.225]] ([[User talk:109.230.216.225|Talk]]) vandalism</comment>
      <text xml:space="preserve">== Ryan Abel ==
;Name
: Ryan Abel

;Company affiliation
: None

; maemo.org username
: [http://maemo.org/profile/view/generalantilles/ GeneralAntilles]

;Motivations
: I had a lot of fun serving on the Council the first time around and I really feel the inaugural Council accomplished a lot in its 6-month term (see Andrew's post for a list ;)), as such, I'd like to serve a second term and continue working for the Maemo Community. There is still a lot of work to be done to see the accomplishment of major goals like improving Nokia's understanding of open source and encouraging greater collaboration between Nokia and the community. There are also a lot of smaller-scale project like integrating the Application Manager with Downloads, implementing a strong QA process for Extras, and improving the state of Maemo documentation (to name a few of my pet projects).

: This is a pivotal time for Maemo, with Fremantle and the next tablet looming on the horizon and likely a major marketing shift for the platform within the next year or two the platform will be undergoing many major changes and quite a bit of activity, I'd like to be here to encourage things in the right direction.

== Jamie Bennett ==
;Name
: Jamie Bennett

;Company affiliation
: None

;maemo.org username
: [http://maemo.org/profile/view/baloo/ baloo]

;Introduction
: I'm a Senior Software Developer for a large games company based in Holland (I'm actually based in the UK though) using embedded technologies to produce visually stunning games. A large part of my day job translates well to the vision required for a next-generate tablet, good UI, flowing user experience, rich graphics, functional whilst being compelling. I would like to bring this experience to the Nokia tablets.

: As for Maemo, I organised the Maemo community presence at the Nokia's OSiM booth last year and was responsible for the video coverage at the first summit, something that I would like to continue to do this year.

: I'm active in most parts of the community, maintain a blog at http://www.linuxuk.org and generally have a real passion for embedded technologies.

: Any questions then just ask away.

;Motivations 
: Maemo is at a defining moment in its history. When the 770 came out, maybe ahead of its time, the Nokia device was in a market space pretty much on its own. Today, the new device comes into a world where expectations are high, competitors are plentiful and success is not guaranteed. I want to be there to help translate the community's vision of what they want to see into something that is commercially viable for Nokia. I want to lend my professional experience to helping make the new tablets a success whist strengthening this unique community we have here, one that I am sure is the envy of many companies that try to straddle the open/closed source world.

: I stood for council in the inaugural community elections but missed out to a great team that did an excellent job in their first 6 months. This time I would like to have the opportunity to do my part.

== Alan Bruce ==

;Name
: Alan Bruce

;maemo.org
: [http://maemo.org/profile/view/qole/ qole]

;Corporate affiliation
: None

;Introduction
: I am a prolific poster on ITT. If you have spent any time browsing those forums, you've seen my posts. If you want more information, please see my profile on maemo.org.

;Motivations
: Another well-known community member asked me to stand for the Community Council. I replied that I participated enough in the community as it is, and I wasn't interested in &quot;entangling myself in politics and bureaucracy&quot; for the meager rewards that this position would entail.

: My encourager made me look again at my reasons for not standing, and they started to look petty and selfish. He also was very complimentary, and I can't resist a good ego-stroke.

: He replied (in part):
:: I see your points, but... I would [like to] see enthusiastic, well-liked people in Council member positions... I see you as someone who has really made Maemo a better place. Yes, you have done this without being in a 'leadership' role, but (a) I'm certain that many people view you as a 'leader' already; (b) how cool is it to garner a position where your attitude and actions will motivate other users to follow suit...&quot;

:: [I]f you truly want to see Maemo become a world-class platform, then... Well... I do think you'd make a good Council member based on the type of person you are, what you mean to the Maemo community, and how you might inspire others to think outside of the box.&quot;

: So I will put my name up for a position on the Maemo Community Council, and you, the community, can decide if you really want me there.

== Andrew Flegg ==
;Name
: Andrew Flegg

;Company affiliation
: None relevant to Maemo

;maemo.org username
: [http://maemo.org/profile/view/jaffa/ Jaffa]

;Motivations
: I'm proud to have been a member of the inaugural Community Council. In the last six months, we've seen a sea-change in the way Maemo is progressing: the summit; community ownership of maemo.org; better use of Bugzilla; the realistic vision of a community-led &quot;hacker edition&quot; in Mer; a webmaster, docmaster, bugmaster and now debmaster all being paid for for us; open communication and - importantly - progress indicators like the pre-release SDKs, which would've been unheard of back in 2006/2007.

: The Council has been involved in many of these, but would claim credit for few. I believe we've truly fulfilled our role as facilitators and would like to continue my role there. We've not got everything right, but I think we've proved the idea; and that it can be a cohesive force within the community.

: I think there's still work to be done, though. Nokia are being more open, and projects like Tracker and GUPnP are being developed openly. Modest has slipped back into internal development; some patches to Application Manager have been merged, but the community's vision for application management in Diablo - and Fremantle - looks unlikely to have been realised. The system as a whole, and the application environment which so clearly defines the Maemo brand, are architected internally. Design decisions are taken internally.

: Slowly, hopefully, we can change Nokia management into utilising the enthusiastic talent at their disposal in a way which is truly ground-breaking in the industry; with a root-to-tip collaboration between us all.

: Thanks for reading this, and I'll happily answer any questions anyone has.

== Stephen Gadsby ==
;Name
: Stephen Gadsby

;Corporate affiliation
: None

;maemo.org username
: [http://maemo.org/profile/view/sjgadsby/ sjgadsby]

;Introduction
: Though I have a degree in computer science, I'm much more a technology generalist than a programmer. The primary focus of my day job is assisting users--with a wide range of comfort and skill levels--in integrating technology into their work. I create end user documentation for, and provide training in the use of, complex systems, and I also serve as the interface point between system designers and users, relaying information between the two groups and translating concepts into appropriate language for each. 

;Motivations
: Last year, I became frustrated with the disconnect between Nokia and the community. As I looked for a way in which I could initiate change, Maemo Bugzilla stood out as a key point of failure. What should have been a primary meeting point of users and platform developers was largely ignored by both sides.

: I began posting Bug Jars, weekly summaries of top issues and activity within Bugzilla, to Internet Tablet Talk (iTT). My immediate goal was to increase awareness of Bugzilla within the iTT user base. I reasoned that if more users knew of Bugzilla and saw top ten lists of bugs, some of them might begin voting up issues important to them, and in time, perhaps move on to submitting structured bug reports in Bugzilla in place of non-specific posts buried in iTT threads.

: As I longer term goal, I hoped that if community usage of Bugzilla increased, Nokia might feel pressure to increase their own presence there beyond the odd comment by the mysterious &quot;Maemo QA&quot;. This was a long shot, I knew, but it was a task I could undertake myself, and it was action. Rhetoric had shown no results.

: In the end, of course, Bugzilla improvements are proceeding due, largely, to the efforts of Andre and Karsten, hired just after the Bug Jars began, and Nokia/community relations were put on a path of improvement by the inaugural Community Council. However, I still feel that drive to help move the community forward, and there remains a large expanse of ground to be covered before we're where we should be.

: I welcome your questions and thoughts. Thank you.

== Andrea Grandi ==
;Name
: Andrea Grandi

;Company affiliation
: None

;maemo.org username
: [http://maemo.org/profile/view/andy80/ andy80]

;Introduction
: My name is Andrea Grandi, I'm 28 and I live in Pistoia (Tuscany, ITALY). I'm a programmer, in particular very interested in Linux and opensource. I've been working for some years as computer programmer, then I decided to begin studing at university, and currently I'm attending at &quot;Università degli studi di Firenze&quot; to get the Computer Science degree. I spend lot of my time to manage the Pistoia Linux User Group I founded in 2001.

;My life in community
: I'm part of the community since I bought my first Nokia 770. I started contributing to the mailing lists, I wrote some tutorials (in italian language, then I translated them to english) and I ported SPIM (a MIPS emulator) to Nokia 770. Later I had the possibility to buy a N810 and I was able to experiment more with the Maemo SDK. I was at the Maemo Summit in Berlin, doing a light talk about Maemo development using Eclipse, PluThon and EsBox plugins.

;Motivations
: I really would like to be able to do more for the community and one of the best way could be to be part of the council, to help both users/developers to explain their requests to Nokia and Nokia to understand the requests from the community. There are a lot of fantastic ideas comung from the community that could improve what we are doing: the key is to organize them and giving them more attention. This is what I've always looked for: working together to build something great!

== Kees Jongenburger ==

;Name
: Kees Jongenburger

;maemo.org username
: [http://maemo.org/profile/view/keesj/ keesj]

;Corporate affiliation
: I work for [http://www.tomtom.com/ TomTom] as embedded software engineer

;Motivation
: When I looks at everything Maemo represents I think we are in a challenging position . I think that we have  plenty of open source software and a powerful company behind us. Of course we will also have great hardware, but that as said we are in a challenging position. At times of the 770 creating an open source portable Internet and media experience was something very special, but this is no longer enough. The rules are changing. There is now accessible open hardware out there that almost &quot;fits in your pocket&quot;. There are also many embedded distributions out there, there is 3d hardware support, there are netbooks with 3G Internet, androids , openmoko's and IPhones. I think it's time for the community to be more pragmatic and focused on profit. Mer is a very nice example of how we as community can gain &quot;profit&quot; from Maemo, it enables US to use and change The Maemo software stack in interesting ways and make it run on interesting platforms. We need more things like this that enables business around and IN the community, this will drive development of the platform. Simply put we are lagging behind in terms of growing the community. Mer offers a nice and open solution for platform developers but we also need to find a solution to help  casual users create market around their software. The new hardware and software stack will be great but we need to develop our vision to grow booth towards independence and business. This community needs food and I want to help selecting the ingredients for the menu.

: I have been earning my life using and developing open source software in the last 12 years. I am following many embedded open source project (beagle, openmoko and Maemo being a few). I guess I am not the typical person who usually can be found in the council of &quot;communities&quot; but I think I can represent a good portion of the developers interested in Maemo development.

: I have not done something like this before , therefore I try!

== Tim Samoff ==
;Name
: Tim Samoff

;Company affiliation
: None

;maemo.org username
: [http://maemo.org/profile/view/timsamoff/ timsamoff]

;Introduction
: I'm a veteran graphic/web designer, filmmaker, and musician. I'm also 1/5 of the inaugural Maemo Community Council. During my time on the Council I've been instrumental in the development of the new maemo.org website (currently under development), hiring our new (and first) debmaster, communicating community-relevant issues with Nokia as well as the greater Maemo Community, organizing the first Maemo Summit, and more.

;Motivation
: If you hadn't heard by now, I'm not a developer. I'm a regular Maemo user who happens to have an eye for design aesthetic and general user experience. I have been an open source advocate for many years and have taken part (and have been intimately involved) with several open source communities over the years. I believe in the current philosophy behind Maemo (http://is.gd/ltB4), and I am passionate about being a part of the future possibilities. While my motivation might not be centered around developing software for this platform, it is centered around the desire to see our software (first- or third-party) live up to its potential and compete with other software platforms.

:You can find me spouting off about Maemo at the above URL, my blog (below), Facebook, Flickr, Twitter, and Jaiku — just Google my name if you're really curious. Let me know if you have any questions or concerns.

:(And, like our current Council Chair, I also like long walks on the beach.)

== Aniello Del Sorbo ==
;Name
: Aniello Del Sorbo

;Corporate affiliation
: None

; maemo.org username
: [http://maemo.org/profile/view/anidel/ anidel]

; Introduction:
: I am a software developer actually living and working in London. My main contribution to the Maemo.org community has been the [http://maemo.org/downloads/product/OS2008/xournal/ Xournal] port.

;Motivations:
: For the fist time, since I've been part of a community, I finally have been able to actually feel being part of it. And this happened with the Maemo.org community.

: This community, grown spontaneously, around the Nokia Internet Tablets has been amazing and is something I, personally, never found around any other commercial gadget.

: I think this is mostly due because Nokia is actually asking for feedback from the community and is actually listening to it.

: It may be not the first time that a commercial organization (particularly not one as big as Nokia) actually feeds a community around its devices, but surely Nokia is the first that is actually doing it the Right Way: they are listening.

:They have a long history of upstream contributions in the open source department and this surely contributed in the decision to help foster an active community.

: I want to help make sure Nokia knows that actively listening to an organized community greatly benefits both. I am sure they know that, but it is important that we do not fail them.

:I sure think this will lead the way for other organizations (be them commercial or not) when it comes to participating to the open source world.

: I am thrilled by the opportunity to help shape the way this two-way communication should be.

: I really want to help voice the community concerns, suggestions and ideas, but mostly to help shape the better way to achieve this, so that these tools/methods would serve as an example.


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Community Council/Candidate declarations for September 2008</title>
    <id>1106</id>
    <revision>
      <id>11429</id>
      <timestamp>2009-03-04T10:41:44Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <minor/>
      <comment>[[Task:Community Council/Candidate declarations]] moved to [[Task:Community Council/Candidate declarations for September 2008]]</comment>
      <text xml:space="preserve">== Candidates for Community Council Elections Sept 2008 ==

=== Ryan Abel ===
;Name
: Ryan Abel

;Company affiliation
: None

; maemo.org username
: [http://maemo.org/profile/view/generalantilles/ GeneralAntilles]

;Motivations
: I have an intense interest in the tablets and the community around them. I'd like to help improve the community and the tablets by providing leadership and working to facilitate better-coordinated and more effective community action (like the maemo.org brainstorming sessions). I'd also like to help facility better communication between Nokia and the maemo.org community.

=== Jamie Bennett ===
; Name
: Jamie Bennett

;Company affiliation
: None

;maemo.org username
: [http://maemo.org/profile/view/baloo/ baloo]

;Motivations 
: I'm a senior software developer in the gaming industry with an intense passion for Linux and mobile devices. My day job's ideals spill over to the tablets ambitions, usually on a one to one basis. Good interface, great user experience, good visuals e.t.c. I feel that as a passionate user I can bring my professional experience to the tablet environment along with my motivation to make Maemo on mobile devices the number 1 choice.

=== Andrew Flegg ===
; Name
: Andrew Flegg

; Company affiliation
: None relevant to Maemo

; maemo.org username
: [http://maemo.org/profile/view/jaffa/ Jaffa]

; Motivations
: I've been interested in Maemo devices since about mid-2005, and bought a 770 the day the went on sale. Since then, I've been increasingly involved in the community - both on InternetTabletTalk and, increasingly, maemo.org.
: I believe Nokia have yet to fully tap into the community that exists, and the community needs to help Nokia grow membership and activity within the Maemo ecosystem.
: I want to push for Nokia to do more and more Maemo development in the open, with them *truly* having to justify why a component is closed. I want to have the community contribute more directly to the development process, whether in roadmapping; specification writing/review or testing of pre-released products.
: The maemo.org community is growing: we need to ensure it keeps growing. I'm pleased to see that, already, some of the points I raised in &quot;[http://www.maemopeople.org/index.php/jaffa/2008/04/20/maemo_org_what_next maemo.org: what next?]&quot; are coming about. I want to see the Council pushing this agenda to increase the level of dialogue happening at the Maemo *strategic* level between Nokia - as its corporate sponsor - and the maemo.org community - as the passionate, experienced, but currently undirected, community that it is.

=== Eduardo Lima (Etrunko) ===
;Name
:Eduardo Lima

;Company
:INdT - Instituto Nokia de Tecnologia

;Maemo.org username
:[http://maemo.org/profile/view/etrunko/ etrunko]

;Motivations
:I've been involved with maemo software since the very beginning of the platform, thanks to my job at INdT. When Nokia released the first Internet Tablet device, Nokia 770 together with ITOS2005, we started providing applications to the platform, such as ports of GNOME applications and games using SDL library. Other contributions pre OS2006 include participation in the definition of the Telepathy spec and a very strong participation in the development of BlueZ, the linux bluetooth implementation.

:Another remarkably contribution to the platform has been the maintenance of Python programming language since those days. Python has been widely used in the platform for various projects, and in my opinion it has brought the attention of many developers to Maemo, increasing its value and visibility in the Free/Open Source Software world.

:With the release of the first version of Canola media player, we started to explore deeper the various possibilities the platform provides us. With a completely different approach of user interaction, it quickly became one of the most used applications by the users. It was written in C language and had SDL as its core lib. We then evoluted the idea of Canola and have rewritten it from scratch, now using Python programming language and using the Enlightenment Foundation Libraries (EFL) as the core libraries. I'm currently the maintainer of the whole EFL, python-efl and Canola packages for all internet tablet devices (770, N800 and N810).

:Another interesting project I was deeply involved was the first version of Carman, which turned your device in a full OBDII analyzer.

:I personally think we can do much more for Maemo and at the same time, there are many other ideas and opportunities that can be exctracted from it. This initiative of a community-driven project really instigates me. We can achieve a lot more together and I would like to participate closer to the community decisions.

=== Ryan Pavlik ===
; Name
: Ryan Pavlik

; Company affiliation
: None

; maemo.org username
: [http://maemo.org/profile/view/megabyte405/ megabyte405]

; Motivations
: I have been involved with the open-source community, starting with the AbiWord word processor, for several years now, and am a user of all three Nokia tablets. I look forward to fostering broader adoption of the Maemo-based devices through evaluation of community needs. As an AbiWord developer and also as a user, I see a disconnect between users, developers, and Nokia that is hampering developmental efficiency and leading to bad blood.

=== Simon Pickering ===
; Name
: Simon Pickering

; Company affiliation
: None

;maemo.org username
: [http://maemo.org/profile/view/lardman/ lardman]

; Motivations
: I like hacking (e.g. DSP and Jazelle) and the Nokia tablets provide lots of scope, especially due to missing information/drivers/etc (e.g. PowerVR, IVA, EAP_* headers for direct DSP audio output). I'm very keen to establish closer links between the technical staff/groups at Nokia and the community developers who would like to enhance/expand the tablets' abilities. I would really like to have the community more heavily involved in emerging features of the internet tablets, with component alpha-/beta-testing and access to more information (if it can be arranged). It is nice to see that we (Nokia &amp; the Community) have made progress on the communication and information side of things with e.g. the &quot;Questions for Nokia&quot; page (http://wiki.maemo.org/Questions_for_Nokia).

=== Tim Samoff ===
; Name
: Tim Samoff

; Company affiliation
: None w/ Nokia

;maemo.org username
: [http://maemo.org/profile/view/timsamoff/ timsamoff]

; Motivations
: I have a vested interest in Maemo/maemo.org as a tablet user, UI designer, UX specialist, and developer. I am passionate about this community and desire to help it (us) succeed in both tablet-user community relations, tablet usability, and open-source software development.

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Community Council/Eligible candidates</title>
    <id>1099</id>
    <revision>
      <id>33048</id>
      <timestamp>2010-04-19T12:38:51Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>direct link</comment>
      <text xml:space="preserve">== List of eligible candidates ==

The following is the list of eligible candidates for the upcoming community council elections, according to the criteria laid out in [[Community Council]]. Karma totals are as they were on 14/8/2008.

{|
|-
! Username
! Real name
! Company
! Karma
|-
| [http://maemo.org/profile/view/qgil.html qgil]
|  Quim Gil  
|  Nokia  
|  2046
|-
| [http://maemo.org/profile/view/yerga.html yerga]
| Daniel Martín Yerga 
| 
| 1043
|-
| [http://maemo.org/profile/view/timsamoff.html timsamoff]
| Tim Samoff 
| EMBARQ 
| 681
|-
| [http://maemo.org/profile/view/jaffa.html jaffa]
| Andrew Flegg 
| 
| 660
|-
| [http://maemo.org/profile/view/nakkebar.html nakkebar]
| Eero Tamminen 
| Nokia 
| 652
|-
| [http://maemo.org/profile/view/khertan.html khertan]
| Benoît HERVIER 
| Naxos 
| 588
|-
| [http://maemo.org/profile/view/framstag.html framstag]
| Tim Teulings 
| 
| 578
|-
| [http://maemo.org/profile/view/lucianomw.html lucianomw]
| Luciano Wolf 
| 
| 576
|-
| [http://maemo.org/profile/view/jonek.html jonek]
| Johannes Eickhold 
| University of Karlsruhe (Germany) 
| 557
|-
| [http://maemo.org/profile/view/timeless.html timeless]
| timeless - 
| Nokia 
| 525
|-
| [http://maemo.org/profile/view/gcobb.html gcobb]
| Graham Cobb 
| 
| 504
|-
| [http://maemo.org/profile/view/pipeline.html pipeline]
| pipe line 
| 
| 498
|-
| [http://maemo.org/profile/view/ed_.html ed_]
| Ed Bartosh 
| Nokia 
| 498
|-
| [http://maemo.org/profile/view/jku.html jku]
| Jussi Kukkonen 
| 
| 482
|-
| [http://maemo.org/profile/view/jatikka.html jatikka]
| Jarmo Tikka 
| Nokia Corporation 
| 452
|-
| [http://maemo.org/profile/view/kulve.html kulve]
| Tuomas Kulve 
| 
| 451
|-
| [http://maemo.org/profile/view/kaltsi.html kaltsi]
| Juha Kallioinen 
| 
| 441
|-
| [http://maemo.org/profile/view/atmasphere.html atmasphere]
| Jonathan Greene 
| 
| 433
|-
| [http://maemo.org/profile/view/murrayc.html murrayc]
| Murray Cumming 
| Openismus GmbH 
| 393
|-
| [http://maemo.org/profile/view/xfade.html xfade]
| Niels Breet 
| maemo.org 
| 388
|-
| [http://maemo.org/profile/view/generalantilles.html generalantilles]
| Ryan Abel 
| 
| 368
|-
| [http://maemo.org/profile/view/lardman.html lardman]
| Simon Pickering 
| NA 
| 344
|-
| [http://maemo.org/profile/view/pycage.html pycage]
| Martin Grimme 
| 
| 332
|-
| [http://maemo.org/profile/view/bergie.html bergie]
| Henri Bergius 
| 
| 332
|-
| [http://maemo.org/profile/view/jlbrd.html jlbrd]
| Jean-Luc Biord 
| 
| 330
|-
| [http://maemo.org/profile/view/tak.html tak]
| Levi Bard 
| 
| 330
|-
| [http://maemo.org/profile/view/tbergstr.html tbergstr]
| Terje Bergström 
| 
| 326
|-
| [http://maemo.org/profile/view/linuxrebel.html linuxrebel]
| James Sparenberg 
| 
| 324
|-
| [http://maemo.org/profile/view/fms.html fms]
| Marat Fayzullin 
| 
| 324
|-
| [http://maemo.org/profile/view/fredoll.html fredoll]
| Fred Lefévère-Laoide 
| 
| 323 
|-
| [http://maemo.org/profile/view/collin.html collin]
|  Collin Mulliner  
|   
|  307
|-
| [http://maemo.org/profile/view/disq.html disq]
| Kemal Hadimli 
| 
| 307
|-
| [http://maemo.org/profile/view/florian.html florian]
| Florian Boor 
| 
| 302
|-
| [http://maemo.org/profile/view/mvo.html mvo]
| Marius Vollmer 
| 
| 301
|-
| [http://maemo.org/profile/view/tvogel.html tvogel]
| Tilman Vogel 
| 
| 295
|-
| [http://maemo.org/profile/view/konttori.html konttori]
| Urho Konttori 
| 
| 293
|-
| [http://maemo.org/profile/view/wwp.html wwp]
| Tristan Chabredier 
| 
| 292
|-
| [http://maemo.org/profile/view/axique.html axique]
| Christoph Würstle 
| 
| 284
|-
| [http://maemo.org/profile/view/loki.html loki]
| Massimo Mund 
| 
| 282
|-
| [http://maemo.org/profile/view/anidel.html anidel]
| Aniello Del Sorbo 
| University of Salerno, Italy 
| 282
|-
| [http://maemo.org/profile/view/kvalo.html kvalo]
| Kalle Valo 
| Nokia 
| 277
|-
| [http://maemo.org/profile/view/megabyte405.html megabyte405]
| Ryan Pavlik 
| 
| 271
|-
| [http://maemo.org/profile/view/beermad.html beermad]
| Tony Green 
| 
| 266
|-
| [http://maemo.org/profile/view/trevarthan.html trevarthan]
| Jesse Guardiani 
| 
| 262
|-
| [http://maemo.org/profile/view/scriptkiller.html scriptkiller]
| Michael Arndt 
| 
| 251
|-
| [http://maemo.org/profile/view/fanoush.html fanoush]
| Frantisek Dufka 
| 
| 250
|-
| [http://maemo.org/profile/view/czr.html czr]
| Aleksandr Koltsoff 
| 
| 248
|-
| [http://maemo.org/profile/view/tonymaro.html tonymaro]
| Tony Maro 
| 
| 237
|-
| [http://maemo.org/profile/view/aisu.html aisu]
| Tyler Longwell 
| 
| 236
|-
| [http://maemo.org/profile/view/jakunnar.html jakunnar]
| Jake Kunnari 
| 
| 235
|-
| [http://maemo.org/profile/view/baloo.html baloo]
| Jamie Bennett 
| 
| 235
|-
| [http://maemo.org/profile/view/dneary.html dneary]
| Dave Neary 
| Neary Consulting 
| 233
|-
| [http://maemo.org/profile/view/barbieri.html barbieri]
| Gustavo Barbieri 
| ProFUSION 
| 232
|-
| [http://maemo.org/profile/view/agarcia.html agarcia]
| Alberto Garcia 
| 
| 228
|-
| [http://maemo.org/profile/view/marcell.html marcell]
| Marcell Lengyel 
| Nokia 
| 226
|-
| [http://maemo.org/profile/view/olivluca.html olivluca]
| Luca Olivetti 
| 
| 224
|-
| [http://maemo.org/profile/view/milhouse.html milhouse]
| Neil MacLeod 
| 
| 224
|-
| [http://maemo.org/profile/view/andy80.html andy80]
| Andrea Grandi 
| 
| 223
|-
| [http://maemo.org/profile/view/colinleroy.html colinleroy]
| Colin Leroy 
| 
| 219
|-
| [http://maemo.org/profile/view/feri.html feri]
| Ferenc Szekely 
| maemo.org 
| 218 
|-
| [http://maemo.org/profile/view/terje.html terje]
|  Terje Bergström  
|   
|  216
|-
| [http://maemo.org/profile/view/antimirov.html antimirov]
| Eugene Antimirov 
| 
| 215
|-
| [http://maemo.org/profile/view/jtukkine.html jtukkine]
| Juha Tukkinen 
| Nokia 
| 211
|-
| [http://maemo.org/profile/view/fiferboy.html fiferboy]
| Andrew Olmsted 
| 
| 206
|-
| [http://maemo.org/profile/view/simon.html simon]
| Simon Budig 
| kernel concepts 
| 196
|-
| [http://maemo.org/profile/view/klausr.html klausr]
| Klaus Rotter 
| 
| 193
|-
| [http://maemo.org/profile/view/twaelti.html twaelti]
| Tom Waelti 
| Unisys (Schweiz) AG 
| 191
|-
| [http://maemo.org/profile/view/tahitibob35.html tahitibob35]
| David Hautbois 
| 
| 189
|-
| [http://maemo.org/profile/view/fcrozat.html fcrozat]
| Frederic Crozat 
| 
| 184
|-
| [http://maemo.org/profile/view/miker.html miker]
| Mike Rowehl 
| 
| 174
|-
| [http://maemo.org/profile/view/mike_morrison.html mike_morrison]
| mike morrison 
| 
| 173
|-
| [http://maemo.org/profile/view/zerojay.html zerojay]
| Jason Carter 
| 
| 172
|-
| [http://maemo.org/profile/view/morphbr.html morphbr]
| Artur Souza 
| 
| 171
|-
| [http://maemo.org/profile/view/mishas.html mishas]
| Mikhail Sobolev 
| 
| 171
|-
| [http://maemo.org/profile/view/b0unc3.html b0unc3]
| Daniele Maio 
| 
| 170
|-
| [http://maemo.org/profile/view/ajf.html ajf]
| Alfredo J. Fabretti 
| 
| 170
|-
| [http://maemo.org/profile/view/zerionseven.html zerionseven]
| Tero Hietanen 
| 
| 167
|-
| [http://maemo.org/profile/view/bones.html bones]
| Sergio Melas 
| Solvay Chemicals 
| 166
|-
| [http://maemo.org/profile/view/lapa.html lapa]
| Luis Lorenzo 
| 
| 164
|-
| [http://maemo.org/profile/view/sebas.html sebas]
| Sebastian Maemo 
| 
| 159
|-
| [http://maemo.org/profile/view/gnuite.html gnuite]
| John Costigan 
| Google, Inc. 
| 158
|-
| [http://maemo.org/profile/view/bluegene.html bluegene]
| vicente garcia diez 
| 
| 157
|-
| [http://maemo.org/profile/view/keesj.html keesj]
| Kees Jongenburger 
| TomTom B.V. 
| 156
|-
| [http://maemo.org/profile/view/oriolj.html oriolj]
| Oriol Jiménez 
| 
| 156
|-
| [http://maemo.org/profile/view/jbenc.html jbenc]
| Jiri Benc 
| 
| 156
|-
| [http://maemo.org/profile/view/kate.html kate]
| Kate Alhola 
| Nokia 
| 156
|-
| [http://maemo.org/profile/view/jholmblad.html jholmblad]
| John Holmblad 
| 
| 155
|-
| [http://maemo.org/profile/view/mikkov.html mikkov]
| Mikko Vartiainen 
| 
| 151
|-
| [http://maemo.org/profile/view/nite_man.html nite_man]
| Michael Stepanov 
| 
| 149
|-
| [http://maemo.org/profile/view/feijai.html feijai]
| Sean Luke 
| 
| 149 
|-
| [http://maemo.org/profile/view/homac.html homac]
|  Holger Macht  
|   
|  146
|-
| [http://maemo.org/profile/view/rossburton.html rossburton]
| Ross Burton 
| 
| 145
|-
| [http://maemo.org/profile/view/inz.html inz]
| Santtu Lakkala 
| 
| 144
|-
| [http://maemo.org/profile/view/krisse.html krisse]
| Krisse Juorunen 
| 
| 142
|-
| [http://maemo.org/profile/view/tonikitoo.html tonikitoo]
| Antonio Gomes 
| 
| 142
|-
| [http://maemo.org/profile/view/felipec.html felipec]
| Felipe Contreras 
| 
| 142
|-
| [http://maemo.org/profile/view/marciom.html marciom]
| Marcio Macedo 
| INdT 
| 140
|-
| [http://maemo.org/profile/view/mwiktowy.html mwiktowy]
| Michael Wiktowy 
| 
| 138
|-
| [http://maemo.org/profile/view/pamadio.html pamadio]
| Pierre Amadio 
| 
| 136
|-
| [http://maemo.org/profile/view/vasvlad.html vasvlad]
| Vlad Vasiliev 
| Gas company 
| 135
|-
| [http://maemo.org/profile/view/etrunko.html etrunko]
| Eduardo Lima 
| INdT 
| 135
|-
| [http://maemo.org/profile/view/guerby.html guerby]
| Laurent GUERBY 
| 
| 135
|-
| [http://maemo.org/profile/view/setanta.html setanta]
| Marcelo Lira 
| 
| 134
|-
| [http://maemo.org/profile/view/hhedberg.html hhedberg]
| Henrik Hedberg 
| 
| 134
|-
| [http://maemo.org/profile/view/frankusb.html frankusb]
| Frank Banul 
| 
| 134
|-
| [http://maemo.org/profile/view/arnims.html arnims]
| Arnim Sauerbier 
| 
| 133
|-
| [http://maemo.org/profile/view/nix_nix.html nix_nix]
| Gabriel Schulhof 
| 
| 130
|-
| [http://maemo.org/profile/view/detlef.html detlef]
| Detlef Schmicker 
| 
| 130
|-
| [http://maemo.org/profile/view/tigert.html tigert]
| Tuomas Kuosmanen 
| Nokia 
| 130
|-
| [http://maemo.org/profile/view/lorelei.html lorelei]
| Pascal Jermini 
| 
| 130
|-
| [http://maemo.org/profile/view/mklein.html mklein]
| Mike Klein 
| 
| 129
|-
| [http://maemo.org/profile/view/serge.html serge]
| Siarhei Siamashka 
| 
| 127
|-
| [http://maemo.org/profile/view/frisket.html frisket]
| Peter Flynn 
| 
| 127
|-
| [http://maemo.org/profile/view/tuukka.html tuukka]
| Tuukka Tolvanen 
| 
| 125
|-
| [http://maemo.org/profile/view/mones.html mones]
| Ricardo Mones 
| 
| 121
|-
| [http://maemo.org/profile/view/claws.html claws]
| Paul Mangan 
| 
| 121
|-
| [http://maemo.org/profile/view/mgedmin.html mgedmin]
| Marius Gedminas 
| Programmers of Vilnius 
| 120
|-
| [http://maemo.org/profile/view/drfredc.html drfredc]
| Fred Chittenden 
| 
| 119
|-
| [http://maemo.org/profile/view/pronkko.html pronkko]
| Pekka Rönkkö 
| 
| 117
|-
| [http://maemo.org/profile/view/koos.html koos]
| Koos Vriezen 
| froglogic Hamburg 
| 116 
|-
| [http://maemo.org/profile/view/hrw.html hrw]
|  Marcin Juszkiewicz  
|  HaeRWu  
|  116
|-
| [http://maemo.org/profile/view/lmoura.html lmoura]
| Lauro Moura 
| 
| 114
|-
| [http://maemo.org/profile/view/wolfg1969.html wolfg1969]
| Yong Guo 
| 
| 114
|-
| [http://maemo.org/profile/view/mjn.html mjn]
| Marko Nykanen 
| 
| 113
|-
| [http://maemo.org/profile/view/adaviel.html adaviel]
| Andrew Daviel 
| 
| 113
|-
| [http://maemo.org/profile/view/jpavelek.html jpavelek]
| Jakub Pavelek 
| 
| 112
|-
| [http://maemo.org/profile/view/pancake.html pancake]
| pancake nopcode 
| 
| 112
|-
| [http://maemo.org/profile/view/sjgadsby.html sjgadsby]
| Stephen Gadsby 
| Millersville University of Pennsylvania 
| 111
|-
| [http://maemo.org/profile/view/jvaltane.html jvaltane]
| Joni Valtanen 
| 
| 110
|-
| [http://maemo.org/profile/view/stranger.html stranger]
| Dariusz Wiechecki 
| 
| 107
|-
| [http://maemo.org/profile/view/tony2001.html tony2001]
| Antony Dovgal 
| 
| 107
|-
| [http://maemo.org/profile/view/newca12.html newca12]
| Olivier ROLAND 
| 
| 106
|-
| [http://maemo.org/profile/view/thp.html thp]
| Thomas Perl 
| 
| 104
|-
| [http://maemo.org/profile/view/bmidgley.html bmidgley]
| Brad Midgley 
| 
| 104
|-
| [http://maemo.org/profile/view/austin.html austin]
| Austin Che 
| 
| 104 
|}


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Community Council/Eligible voters</title>
    <id>1121</id>
    <revision>
      <id>47379</id>
      <timestamp>2012-04-30T16:51:11Z</timestamp>
      <contributor>
        <ip>173.225.251.175</ip>
      </contributor>
      <comment>/* List of eligible voters for September 2008 community council election */</comment>
      <text xml:space="preserve">== List of eligible voters for September 2008 community council election ==

The following is the list of people who had created a maemo.org account on or before the 10th of June 2008, and are thus eligible to vote according to the criteria agreed on the maemo-community mailing list for the inaugural election.

{|
|-
! Username
! Real name
! Registration date
|-
| [http://maemo.org/profile/view/a4rpl.html a4rpl]
| Ruel Laurenciana
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/a9bejo.html a9bejo]
| Benjamin Ferrari
| 2007-12-16 07:40:53
|-
| [http://maemo.org/profile/view/aaa448.html aaa448]
| aaa aaa
| 2007-10-19 08:40:30
|-
| [http://maemo.org/profile/view/aaausti.html aaausti]
| allison austin
| 2007-11-16 17:46:25
|-
| [http://maemo.org/profile/view/aaawlw.html aaawlw]
| Anson Wong
| 2007-12-13 02:42:17
|-
| [http://maemo.org/profile/view/aabilio.html aabilio]
| Abilio Almeida
| 2008-02-18 04:31:03
|-
| [http://maemo.org/profile/view/aacero.html aacero]
| Anibal Acero
| 2007-07-01 02:40:18
|-
| [http://maemo.org/profile/view/aadhunik.html aadhunik]
| Jaspal Singh
| 2007-11-16 17:47:25
|-
| [http://maemo.org/profile/view/aagmex.html aagmex]
| Aitor Arriea
| 2006-12-29 20:10:02
|-
| [http://maemo.org/profile/view/aakash121.html aakash121]
| Aakash Joshi
| 2007-11-16 17:48:01
|-
| [http://maemo.org/profile/view/aakashj.html aakashj]
| aakash j
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/aakkjj.html aakkjj]
| ak josh
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/aalam.html aalam]
| Amanpreet Singh Alam
| 2008-01-22 05:31:25
|-
| [http://maemo.org/profile/view/aaneton.html aaneton]
| Tommi Aijala
| 2007-05-18 19:11:29
|-
| [http://maemo.org/profile/view/aardvarq.html aardvarq]
| David Beal
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/aarkeketa.html aarkeketa]
| asa arkeketa
| 2008-06-09 03:31:12
|-
| [http://maemo.org/profile/view/aarne3.html aarne3]
| Pasi Kvist
| 2008-04-10 15:41:08
|-
| [http://maemo.org/profile/view/aarni.html aarni]
| Aarni Manni
| 2008-02-04 18:31:16
|-
| [http://maemo.org/profile/view/aarobert.html aarobert]
| Aaron Roberts
| 2007-05-23 05:29:05
|-
| [http://maemo.org/profile/view/aat2404.html aat2404]
| Ajish Thomas
| 2007-05-18 19:12:19
|-
| [http://maemo.org/profile/view/abanro.html abanro]
| aban robert
| 2007-11-30 10:48:26
|-
| [http://maemo.org/profile/view/abaqueiro.html abaqueiro]
| Alfonso Baqueiro
| 2007-05-18 19:10:40
|-
| [http://maemo.org/profile/view/abarrow.html abarrow]
| Andy Barrow
| 2007-11-16 17:46:37
|-
| [http://maemo.org/profile/view/abarte.html abarte]
| abarte smith
| 2007-05-18 19:13:11
|-
| [http://maemo.org/profile/view/abbe.html abbe]
| Asbjørn Lund
| 2008-01-19 11:31:07
|-
| [http://maemo.org/profile/view/abbott.html abbott]
| Bruce Abbott
| 2007-11-28 15:43:34
|-
| [http://maemo.org/profile/view/abbra.html abbra]
| Alexander Bokovoy
| 2007-05-18 19:13:21
|-
| [http://maemo.org/profile/view/abbsters.html abbsters]
| ryan lohse
| 2008-01-27 03:33:26
|-
| [http://maemo.org/profile/view/abdonaguillon.html abdonaguillon]
| Abdon Aguillon
| 2008-05-03 17:41:06
|-
| [http://maemo.org/profile/view/abear.html abear]
| Jude Hebert
| 2007-10-20 09:40:31
|-
| [http://maemo.org/profile/view/abel1236.html abel1236]
| abel ng
| 2008-01-16 22:42:34
|-
| [http://maemo.org/profile/view/abelmn.html abelmn]
| Abel MN
| 2007-10-30 16:40:37
|-
| [http://maemo.org/profile/view/abhijithvr.html abhijithvr]
| abhijith v r
| 2008-04-18 08:41:07
|-
| [http://maemo.org/profile/view/abhirana.html abhirana]
| abhi rana
| 2007-12-11 16:25:18
|-
| [http://maemo.org/profile/view/abhishta.html abhishta]
| Abhishta Paranjpe
| 2007-10-22 01:40:36
|-
| [http://maemo.org/profile/view/abisgood.html abisgood]
| austin bisgood
| 2007-11-16 17:49:00
|-
| [http://maemo.org/profile/view/abject.html abject]
| Larry McCarthy
| 2007-05-18 19:13:50
|-
| [http://maemo.org/profile/view/ablamb.html ablamb]
| Anthony Lamb
| 2007-05-18 19:10:48
|-
| [http://maemo.org/profile/view/ablanco.html ablanco]
| Anna Blanco
| 2008-02-04 19:31:13
|-
| [http://maemo.org/profile/view/ableauto.html ableauto]
| John Chen
| 2008-05-19 13:41:04
|-
| [http://maemo.org/profile/view/ablondin.html ablondin]
| Andre Blondin
| 2007-12-21 18:42:42
|-
| [http://maemo.org/profile/view/abmoll.html abmoll]
| Alex Moll
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/abnerf.html abnerf]
| Abner Silva
| 2007-05-18 19:11:39
|-
| [http://maemo.org/profile/view/abo.html abo]
| Andreas Böttger
| 2008-04-15 18:41:09
|-
| [http://maemo.org/profile/view/abock.html abock]
| Allen Bock
| 2007-12-30 00:40:53
|-
| [http://maemo.org/profile/view/abood86.html abood86]
| abdullah al qalaf
| 2008-02-04 18:31:17
|-
| [http://maemo.org/profile/view/aboris.html aboris]
| Boris Abramenko
| 2007-12-21 17:41:35
|-
| [http://maemo.org/profile/view/aboveallent.html aboveallent]
| kevin robinson
| 2007-11-16 17:48:16
|-
| [http://maemo.org/profile/view/abrar.html abrar]
| abrar barkat
| 2007-03-19 15:34:21
|-
| [http://maemo.org/profile/view/abrilc.html abrilc]
| Alberto Abrilc Cerdà
| 2007-12-11 16:25:25
|-
| [http://maemo.org/profile/view/abroom.html abroom]
| andrew broom
| 2008-02-27 18:31:06
|-
| [http://maemo.org/profile/view/abstract.html abstract]
| Alex Aver
| 2008-01-17 20:42:06
|-
| [http://maemo.org/profile/view/abt731.html abt731]
| gilbert gimeno
| 2007-11-16 17:48:16
|-
| [http://maemo.org/profile/view/abuchrist.html abuchrist]
| Jeff Carlile
| 2007-11-16 17:47:59
|-
| [http://maemo.org/profile/view/abyssus.html abyssus]
| Christian Eisner
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/ac7ss-1.html ac7ss-1]
| Glenn Brockett
| 2008-02-24 22:31:01
|-
| [http://maemo.org/profile/view/acacaczho.html acacaczho]
| zho wei
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/acastelao.html acastelao]
| Alf 
| 2007-05-18 19:11:39
|-
| [http://maemo.org/profile/view/acavallari.html acavallari]
| Antonio Cavallari
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/acazorzi.html acazorzi]
| Antonio Ca' Zorzi
| 2008-02-08 17:41:29
|-
| [http://maemo.org/profile/view/accordin.html accordin]
| GIovanni Grieco
| 2007-11-15 07:55:40
|-
| [http://maemo.org/profile/view/ace354.html ace354]
| Timothy Kirk
| 2007-05-18 19:13:49
|-
| [http://maemo.org/profile/view/acevid.html acevid]
| ace vid
| 2008-01-24 16:32:16
|-
| [http://maemo.org/profile/view/achadwick.html achadwick]
| Andrew Chadwick
| 2008-02-24 06:31:00
|-
| [http://maemo.org/profile/view/achapin.html achapin]
| Aaron Chapin
| 2008-03-04 16:31:10
|-
| [http://maemo.org/profile/view/achezzz.html achezzz]
| Al Chez
| 2008-01-10 04:40:57
|-
| [http://maemo.org/profile/view/achich.html achich]
| Adem Chich
| 2007-07-06 02:40:14
|-
| [http://maemo.org/profile/view/achitnis.html achitnis]
| Atul Chitnis
| 2008-03-04 16:31:12
|-
| [http://maemo.org/profile/view/acidborg.html acidborg]
| Jaime Frutos Morales
| 2007-05-18 19:11:11
|-
| [http://maemo.org/profile/view/acidcortex.html acidcortex]
| Stefan Vasiljevic
| 2007-05-18 19:13:24
|-
| [http://maemo.org/profile/view/acirema11.html acirema11]
| Dina Ramirez
| 2008-03-10 06:31:01
|-
| [http://maemo.org/profile/view/aciux.html aciux]
| leonardo acierno
| 2008-05-10 22:41:07
|-
| [http://maemo.org/profile/view/acjames22.html acjames22]
| allen cornell
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/ackbar.html ackbar]
| George Ackbar
| 2007-11-28 15:43:47
|-
| [http://maemo.org/profile/view/aclauhs.html aclauhs]
| Alysia Clauhs
| 2008-04-04 17:41:04
|-
| [http://maemo.org/profile/view/acmartin.html acmartin]
| Aaron Martin
| 2007-11-28 15:43:11
|-
| [http://maemo.org/profile/view/acocaracha.html acocaracha]
| John A
| 2007-11-30 10:49:33
|-
| [http://maemo.org/profile/view/acompte.html acompte]
| Albert Compte
| 2007-10-30 14:40:38
|-
| [http://maemo.org/profile/view/acorliss.html acorliss]
| Arthur Corliss
| 2007-05-18 19:11:23
|-
| [http://maemo.org/profile/view/acorn-risc.html acorn-risc]
| James Cook
| 2006-10-30 17:22:10
|-
| [http://maemo.org/profile/view/acosta.html acosta]
| Afonso Costa
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/acquaria73.html acquaria73]
| monica milena bellini
| 2008-06-01 17:41:12
|-
| [http://maemo.org/profile/view/acruzat.html acruzat]
| Andres Cruzat
| 2007-05-18 19:10:58
|-
| [http://maemo.org/profile/view/actarus.html actarus]
| Ivan Andrian
| 2008-06-04 22:41:11
|-
| [http://maemo.org/profile/view/actioncj17.html actioncj17]
| Corey Jackson
| 2007-11-16 17:47:30
|-
| [http://maemo.org/profile/view/activehal.html activehal]
| Simon Thomas
| 2008-02-16 00:31:03
|-
| [http://maemo.org/profile/view/acucci.html acucci]
| Anthony Cucci
| 2007-11-16 17:46:21
|-
| [http://maemo.org/profile/view/acwonders.html acwonders]
| Alainna Wonders
| 2007-07-03 22:40:11
|-
| [http://maemo.org/profile/view/acydlord.html acydlord]
| Christopher Poage
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/adalberts.html adalberts]
| Adalbert Schwafel
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/adalisan.html adalisan]
| Sancar Adali
| 2007-07-03 20:40:16
|-
| [http://maemo.org/profile/view/adam.html adam]
| Adam Nowicki
| 2008-04-09 03:41:06
|-
| [http://maemo.org/profile/view/adam296.html adam296]
| Adam Macgill
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/adamboardman.html adamboardman]
| Adam Boardman
| 2007-10-18 17:40:31
|-
| [http://maemo.org/profile/view/adamc1999.html adamc1999]
| Adam Curry
| 2007-05-18 19:11:20
|-
| [http://maemo.org/profile/view/adammelancon.html adammelancon]
| Adam Melancon
| 2007-06-28 04:40:07
|-
| [http://maemo.org/profile/view/adamoel.html adamoel]
| Adam Oczkos
| 2007-10-20 06:40:32
|-
| [http://maemo.org/profile/view/adamwolf.html adamwolf]
| Adam Wolf
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/adamzeit.html adamzeit]
| Adam Zeitsiff
| 2007-07-09 14:40:16
|-
| [http://maemo.org/profile/view/adam_boardman.html adam_boardman]
| Adam Boardman
| 2007-10-18 17:40:30
|-
| [http://maemo.org/profile/view/adashel.html adashel]
| A dashel
| 2007-11-05 17:40:43
|-
| [http://maemo.org/profile/view/adaviel.html adaviel]
| Andrew Daviel
| 2008-03-02 01:31:16
|-
| [http://maemo.org/profile/view/adbosch.html adbosch]
| Ad Bosch
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/adbowlin.html adbowlin]
| allan bowlin
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/adcockm.html adcockm]
| Michael Adcock
| 2007-12-31 00:41:29
|-
| [http://maemo.org/profile/view/adcomp.html adcomp]
| David Art
| 2008-03-19 14:31:06
|-
| [http://maemo.org/profile/view/adds.html adds]
| mark ribchinsky
| 2008-02-24 06:31:00
|-
| [http://maemo.org/profile/view/adedov.html adedov]
| Anton Dedov
| 2007-12-11 16:26:02
|-
| [http://maemo.org/profile/view/adefendi.html adefendi]
| alessandro defendi
| 2007-10-15 23:40:26
|-
| [http://maemo.org/profile/view/adelineluke.html adelineluke]
| Adeline Luke
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/ademar.html ademar]
| Ademar Reis
| 2008-06-10 18:31:16
|-
| [http://maemo.org/profile/view/adesutter.html adesutter]
| Andrew DeSutter
| 2007-05-18 19:11:38
|-
| [http://maemo.org/profile/view/adezn88.html adezn88]
| Zheng Nan
| 2008-03-12 10:31:03
|-
| [http://maemo.org/profile/view/adiamondgirliam.html adiamondgirliam]
| Colleen Stock
| 2007-11-16 17:46:24
|-
| [http://maemo.org/profile/view/adichess.html adichess]
| Adithya Balasubramanian
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/adidaswolf2.html adidaswolf2]
| Ronnie Lee
| 2007-12-11 16:25:18
|-
| [http://maemo.org/profile/view/adilson.html adilson]
| Adilson Oliveira
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/aditya.html aditya]
| Aditya Chadha
| 2007-11-28 15:43:26
|-
| [http://maemo.org/profile/view/adi_people.html adi_people]
| aditya nair
| 2008-01-24 09:31:30
|-
| [http://maemo.org/profile/view/adjih.html adjih]
| Cedric Adjih
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/adlerrot.html adlerrot]
| adler rothschild
| 2007-11-16 17:49:14
|-
| [http://maemo.org/profile/view/adly15.html adly15]
| Ayman Adly
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/admin.html admin]
| Midgard Administrator
| 0000-00-00 00:00:00
|-
| [http://maemo.org/profile/view/admin.html admin]
| test admin
| 2007-05-21 13:42:57
|-
| [http://maemo.org/profile/view/adnet.html adnet]
| kevin strong
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/ado.html ado]
| Andreas Hübner
| 2007-12-20 22:41:55
|-
| [http://maemo.org/profile/view/adolfodeluca.html adolfodeluca]
| Adolfo Deluca
| 2008-04-08 15:41:12
|-
| [http://maemo.org/profile/view/adonikam.html adonikam]
| Adonikam Virgo
| 2007-12-11 16:25:40
|-
| [http://maemo.org/profile/view/adoolittle.html adoolittle]
| Albert Doolittle
| 2007-06-24 03:40:05
|-
| [http://maemo.org/profile/view/adorkablevy.html adorkablevy]
| vy phan
| 2007-05-29 20:50:44
|-
| [http://maemo.org/profile/view/adotka.html adotka]
| Anton Panov
| 2007-11-16 17:48:01
|-
| [http://maemo.org/profile/view/adoyle.html adoyle]
| Allan Doyle
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/adq.html adq]
| Andrew de Quincey
| 2008-06-01 12:41:08
|-
| [http://maemo.org/profile/view/adrenas.html adrenas]
| Adriano Simone
| 2007-05-18 19:12:04
|-
| [http://maemo.org/profile/view/adrian.html adrian]
| Adrian Lv
| 2008-01-14 13:51:09
|-
| [http://maemo.org/profile/view/adrian142.html adrian142]
| Adrian Vogler
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/adrian2miami.html adrian2miami]
| Adrian Gomez
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/adrianchleung.html adrianchleung]
| Adrian Leung
| 2007-11-16 17:47:47
|-
| [http://maemo.org/profile/view/adriano.html adriano]
| Adriano Sing
| 2007-05-18 19:14:46
|-
| [http://maemo.org/profile/view/adricnet.html adricnet]
| Ben Knowles
| 2006-12-13 11:10:03
|-
| [http://maemo.org/profile/view/adrimaxi.html adrimaxi]
| Adrien Asséré
| 2007-10-19 12:40:32
|-
| [http://maemo.org/profile/view/adryan16.html adryan16]
| Adrian Richardson
| 2007-11-16 17:49:38
|-
| [http://maemo.org/profile/view/advhertz.html advhertz]
| Mario Rossi
| 2008-02-18 15:31:01
|-
| [http://maemo.org/profile/view/advokat.html advokat]
| chernyshov leonid
| 2007-11-16 17:46:22
|-
| [http://maemo.org/profile/view/adynikki.html adynikki]
| adrian marshall
| 2008-02-27 04:31:05
|-
| [http://maemo.org/profile/view/adywicaksono.html adywicaksono]
| Ady Wicaksono
| 2007-10-18 13:40:30
|-
| [http://maemo.org/profile/view/ae6tv.html ae6tv]
| Hans Ehlert
| 2007-11-04 07:40:39
|-
| [http://maemo.org/profile/view/aecio.html aecio]
| Aecio Pires
| 2008-04-26 00:41:23
|-
| [http://maemo.org/profile/view/aemev.html aemev]
| Emre Evinc
| 2008-03-14 22:31:35
|-
| [http://maemo.org/profile/view/aeonfinis.html aeonfinis]
| Kenneth Smith
| 2007-12-29 23:41:04
|-
| [http://maemo.org/profile/view/aep.html aep]
| Alberto Escudero-Pascual
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/aerialist.html aerialist]
| Shunya Sato
| 2007-12-11 16:24:58
|-
| [http://maemo.org/profile/view/aerodown.html aerodown]
| Terry Furlow
| 2007-11-15 07:56:19
|-
| [http://maemo.org/profile/view/aeryn.html aeryn]
| Ama Okoro
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/aeugenio.html aeugenio]
| Andre Eugenio
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/afabbric.html afabbric]
| anthony fabbricino
| 2007-05-18 19:11:14
|-
| [http://maemo.org/profile/view/afazul.html afazul]
| abdul fazul
| 2007-12-11 16:25:22
|-
| [http://maemo.org/profile/view/affa.html affa]
| Simo Fält
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/afhgts.html afhgts]
| andrew hawkins
| 2007-11-15 07:56:23
|-
| [http://maemo.org/profile/view/afine99.html afine99]
| Al Fine
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/afljj.html afljj]
| Antonio Jacob
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/afore.html afore]
| Art Fore
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/afrianoracle.html afrianoracle]
| clinton jones
| 2007-06-30 22:41:00
|-
| [http://maemo.org/profile/view/afseaman.html afseaman]
| Rick Seaman
| 2007-04-05 15:25:35
|-
| [http://maemo.org/profile/view/ag2.html ag2]
| Andrey Gubarev
| 2007-12-11 16:26:11
|-
| [http://maemo.org/profile/view/agaldor.html agaldor]
| Tim Conrad
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/agarayta.html agarayta]
| Ariel Guerra
| 2008-03-18 19:31:04
|-
| [http://maemo.org/profile/view/agarcia.html agarcia]
| Alberto Garcia
| 2007-10-29 01:40:37
|-
| [http://maemo.org/profile/view/agathon.html agathon]
| Clif Kranish
| 2008-04-03 20:41:26
|-
| [http://maemo.org/profile/view/agd.html agd]
| Antonio Guillén Domínguez
| 2007-12-16 17:40:54
|-
| [http://maemo.org/profile/view/agent911.html agent911]
| ЕВГЕНИЙ 21212
| 2007-11-16 17:48:33
|-
| [http://maemo.org/profile/view/agentmyth.html agentmyth]
| Simon Lodge
| 2007-10-25 21:40:35
|-
| [http://maemo.org/profile/view/agentv.html agentv]
| Sam VanHouten
| 2007-11-30 10:49:35
|-
| [http://maemo.org/profile/view/agent_mcbob.html agent_mcbob]
| Jon-Paul Lakritz
| 2007-12-21 12:41:15
|-
| [http://maemo.org/profile/view/aggedor2.html aggedor2]
| Tim Lindquist
| 2007-11-28 15:43:34
|-
| [http://maemo.org/profile/view/agile.html agile]
| Ford Guo
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/agiletrack.html agiletrack]
| Adam Lane
| 2007-11-15 07:55:51
|-
| [http://maemo.org/profile/view/agimei.html agimei]
| Anthony Gimei
| 2007-12-13 22:41:58
|-
| [http://maemo.org/profile/view/agmacias.html agmacias]
| Alejandra G
| 2008-04-03 11:41:04
|-
| [http://maemo.org/profile/view/agomez.html agomez]
| Andres Gomez
| 2008-02-05 16:31:18
|-
| [http://maemo.org/profile/view/agorf.html agorf]
| Aggelos Orfanakos
| 2008-01-31 07:31:06
|-
| [http://maemo.org/profile/view/agouda.html agouda]
| Amir Gouda
| 2007-06-13 16:00:33
|-
| [http://maemo.org/profile/view/agranzot.html agranzot]
| Alberto Granzotto
| 2007-10-22 08:40:36
|-
| [http://maemo.org/profile/view/aguera26.html aguera26]
| Fernando Aguera
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/agutie01.html agutie01]
| Alejandro Gutierrez
| 2007-10-31 18:40:35
|-
| [http://maemo.org/profile/view/agutnova.html agutnova]
| alina gutnova
| 2008-06-06 08:41:17
|-
| [http://maemo.org/profile/view/ag_smith.html ag_smith]
| gioacchino mazzurco
| 2007-10-30 17:40:36
|-
| [http://maemo.org/profile/view/ahamathrt.html ahamathrt]
| Howard Honig
| 2007-07-09 16:40:18
|-
| [http://maemo.org/profile/view/ahbleza.html ahbleza]
| Paul Gillingwater
| 2007-05-18 19:11:56
|-
| [http://maemo.org/profile/view/ahennings.html ahennings]
| Adam Hennings
| 2007-06-30 17:40:08
|-
| [http://maemo.org/profile/view/ahirsima.html ahirsima]
| Ari-Pekka Hirsimäki
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/ahjie1989.html ahjie1989]
| satanic Workshiper
| 2007-12-31 03:42:33
|-
| [http://maemo.org/profile/view/ahm507.html ahm507]
| Ahmed Hammad
| 2007-11-19 09:01:24
|-
| [http://maemo.org/profile/view/ahmed.html ahmed]
| Ahmed Hajji
| 2007-10-25 17:40:33
|-
| [http://maemo.org/profile/view/ahmedgurbuz.html ahmedgurbuz]
| Ahmed Gurbuz
| 2007-06-30 18:40:08
|-
| [http://maemo.org/profile/view/ahmedj.html ahmedj]
| Ahmed Jaradat
| 2007-10-20 08:40:32
|-
| [http://maemo.org/profile/view/ahs3.html ahs3]
| Al Stone
| 2007-05-18 19:11:55
|-
| [http://maemo.org/profile/view/ahsima.html ahsima]
| ah sima
| 2007-05-18 19:14:03
|-
| [http://maemo.org/profile/view/ahsya.html ahsya]
| a g
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/ahu.html ahu]
| Arttu Huhtiniemi
| 2007-05-18 19:10:38
|-
| [http://maemo.org/profile/view/ahuostil.html ahuostil]
| Ari Huostila
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/ahzzz.html ahzzz]
| N C
| 2008-01-15 08:41:01
|-
| [http://maemo.org/profile/view/ailiad.html ailiad]
| Alexander Iliadis
| 2007-05-18 19:10:50
|-
| [http://maemo.org/profile/view/ainouye.html ainouye]
| abe inouye
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/airadier.html airadier]
| Álvaro J. Iradier Muro
| 2007-05-18 19:10:55
|-
| [http://maemo.org/profile/view/airbisquit9000.html airbisquit9000]
| Air Bisquit
| 2007-07-06 18:40:10
|-
| [http://maemo.org/profile/view/airmech61.html airmech61]
| ANIL MENON
| 2007-06-08 13:37:17
|-
| [http://maemo.org/profile/view/airsal.html airsal]
| Andi Irsal
| 2007-05-18 19:11:53
|-
| [http://maemo.org/profile/view/airw0lf.html airw0lf]
| Air Wolf
| 2007-10-21 00:40:32
|-
| [http://maemo.org/profile/view/aisu.html aisu]
| Tyler Longwell
| 2007-09-08 14:40:25
|-
| [http://maemo.org/profile/view/aitalaat.html aitalaat]
| Ahmed Talaat
| 2008-03-05 22:31:05
|-
| [http://maemo.org/profile/view/ajabma.html ajabma]
| Alan Abma
| 2008-05-09 18:41:09
|-
| [http://maemo.org/profile/view/ajansmrn.html ajansmrn]
| mohammad danesh
| 2007-12-19 00:40:59
|-
| [http://maemo.org/profile/view/ajansmrnd.html ajansmrnd]
| mohammed danesh
| 2008-01-27 22:31:34
|-
| [http://maemo.org/profile/view/ajaramillou.html ajaramillou]
| Alberto Jaramillo
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/ajaska.html ajaska]
| Jaakko Kaski
| 2007-06-08 13:37:19
|-
| [http://maemo.org/profile/view/ajatus.html ajatus]
| Mikko Kuusipalo
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/ajax1.html ajax1]
| Erik Anderson
| 2007-10-22 19:40:34
|-
| [http://maemo.org/profile/view/ajespinosa.html ajespinosa]
| alejo espinosa
| 2008-05-22 00:41:27
|-
| [http://maemo.org/profile/view/ajf.html ajf]
| Alfredo J. Fabretti
| 2007-05-18 19:12:40
|-
| [http://maemo.org/profile/view/ajh33.html ajh33]
| Adam Howell
| 2007-10-19 08:40:30
|-
| [http://maemo.org/profile/view/ajiang.html ajiang]
| Alvin Jiang
| 2007-11-28 15:43:17
|-
| [http://maemo.org/profile/view/ajlaff.html ajlaff]
| Alex Laffrenier
| 2008-03-29 11:31:06
|-
| [http://maemo.org/profile/view/ajmacke.html ajmacke]
| Tony Macke
| 2008-01-01 19:41:10
|-
| [http://maemo.org/profile/view/ajo.html ajo]
| Miguel Angel Ajo
| 2007-11-28 18:10:25
|-
| [http://maemo.org/profile/view/ajohnson.html ajohnson]
| Allen Johnson
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/ajorg.html ajorg]
| Andrew Jorgensen
| 2007-10-19 15:40:31
|-
| [http://maemo.org/profile/view/ajose1024.html ajose1024]
| Antonio Jose Gomes
| 2008-05-11 11:41:06
|-
| [http://maemo.org/profile/view/ajrimmer.html ajrimmer]
| andy rimer
| 2007-05-18 19:11:44
|-
| [http://maemo.org/profile/view/ajturner.html ajturner]
| Andrew Turner
| 2007-10-22 02:40:32
|-
| [http://maemo.org/profile/view/ak-85.html ak-85]
| Andrei Korolev
| 2008-02-03 19:32:30
|-
| [http://maemo.org/profile/view/ak47po.html ak47po]
| Andrew King
| 2007-10-23 23:40:29
|-
| [http://maemo.org/profile/view/ak770.html ak770]
| jon flanagan
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/aka179.html aka179]
| Anton K
| 2008-05-14 16:41:08
|-
| [http://maemo.org/profile/view/akai.html akai]
| akai megami
| 2008-01-05 21:40:50
|-
| [http://maemo.org/profile/view/akalaylioglu.html akalaylioglu]
| Ayhan Kalaylioglu
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/akallio.html akallio]
| Aleksi Kallio
| 2007-06-01 11:02:51
|-
| [http://maemo.org/profile/view/akamike.html akamike]
| mike ogden
| 2007-12-27 14:41:03
|-
| [http://maemo.org/profile/view/akandala.html akandala]
| Anantha Kandala
| 2007-06-19 07:10:36
|-
| [http://maemo.org/profile/view/akashiii.html akashiii]
| Akash Kashyap
| 2008-02-08 14:31:00
|-
| [http://maemo.org/profile/view/akayareal.html akayareal]
| Yeriel Forbes
| 2008-01-10 00:41:08
|-
| [http://maemo.org/profile/view/akbar.html akbar]
| Akbar Basha
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/akeroz.html akeroz]
| Aker Australia
| 2007-11-16 17:49:01
|-
| [http://maemo.org/profile/view/akeskita.html akeskita]
| Anne Keskitalo
| 2007-05-18 19:14:47
|-
| [http://maemo.org/profile/view/akhadra.html akhadra]
| Ali K
| 2008-01-16 04:41:15
|-
| [http://maemo.org/profile/view/akheirax.html akheirax]
| Abz Abz
| 2007-11-16 17:46:45
|-
| [http://maemo.org/profile/view/aki.html aki]
| Aki Mimoto
| 2007-10-22 18:40:43
|-
| [http://maemo.org/profile/view/akih.html akih]
| Akihiko Hasegawa
| 2007-12-11 16:25:53
|-
| [http://maemo.org/profile/view/akirisa.html akirisa]
| Akira Kudo
| 2007-11-16 17:49:46
|-
| [http://maemo.org/profile/view/akkaw.html akkaw]
| Walter Akka
| 2007-06-08 13:36:54
|-
| [http://maemo.org/profile/view/aklabow.html aklabow]
| Adrian Bowling
| 2007-12-24 01:41:43
|-
| [http://maemo.org/profile/view/aklsjjk.html aklsjjk]
| Dave King
| 2008-05-16 03:41:09
|-
| [http://maemo.org/profile/view/akmanarda.html akmanarda]
| Arda Akman
| 2008-02-07 20:42:55
|-
| [http://maemo.org/profile/view/ako.html ako]
| Ari Kontio
| 2008-05-06 14:41:07
|-
| [http://maemo.org/profile/view/akoli.html akoli]
| Ari Koli
| 2007-05-18 19:11:29
|-
| [http://maemo.org/profile/view/akornick.html akornick]
| Adam Kornick
| 2007-06-29 12:40:08
|-
| [http://maemo.org/profile/view/akram.html akram]
| Akram Al-Shahib
| 2008-02-18 15:31:00
|-
| [http://maemo.org/profile/view/aktuspiknik.html aktuspiknik]
| aktus piknik
| 2007-11-16 17:47:33
|-
| [http://maemo.org/profile/view/akula.html akula]
| T Mansikka
| 2007-07-04 03:40:18
|-
| [http://maemo.org/profile/view/akv.html akv]
| Anders Kvist
| 2007-10-22 18:40:43
|-
| [http://maemo.org/profile/view/al1.html al1]
| Alain Chautard
| 2007-11-28 17:50:47
|-
| [http://maemo.org/profile/view/alainjleb.html alainjleb]
| Alain Buret
| 2008-01-08 22:41:01
|-
| [http://maemo.org/profile/view/alainvien.html alainvien]
| alain vien
| 2008-05-01 14:41:07
|-
| [http://maemo.org/profile/view/alakritz.html alakritz]
| Adam Lakritz
| 2007-05-18 19:14:20
|-
| [http://maemo.org/profile/view/alang.html alang]
| Mohd Fadhli Bin Dasril
| 2008-05-09 14:41:08
|-
| [http://maemo.org/profile/view/alangunn.html alangunn]
| Alan Gunn
| 2007-12-11 16:25:41
|-
| [http://maemo.org/profile/view/alanmcna.html alanmcna]
| Alan McNatty
| 2008-02-29 11:31:03
|-
| [http://maemo.org/profile/view/alann.html alann]
| Alann Hery
| 2007-10-22 09:40:34
|-
| [http://maemo.org/profile/view/alaprone.html alaprone]
| Alan Currence
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/alarmingsword.html alarmingsword]
| Stefan Boesen
| 2008-05-16 23:41:08
|-
| [http://maemo.org/profile/view/alastairmc.html alastairmc]
| Alastair McIntyre
| 2007-12-24 16:41:07
|-
| [http://maemo.org/profile/view/alau0115.html alau0115]
| Andy Lau
| 2007-05-18 19:14:06
|-
| [http://maemo.org/profile/view/alawn.html alawn]
| wu bo
| 2007-11-16 17:48:13
|-
| [http://maemo.org/profile/view/alban.html alban]
| Alban Crequy
| 2008-05-29 17:41:09
|-
| [http://maemo.org/profile/view/albapete.html albapete]
| pete alba
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/albertek.html albertek]
| Al Ekstrom
| 2008-04-28 05:41:04
|-
| [http://maemo.org/profile/view/alberthosin.html alberthosin]
| Albert Hosin
| 2007-12-28 04:40:55
|-
| [http://maemo.org/profile/view/albertinpierre.html albertinpierre]
| Pierre Albertin
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/albertkarel.html albertkarel]
| albert karel
| 2007-04-05 15:25:38
|-
| [http://maemo.org/profile/view/alberto79it.html alberto79it]
| Alberto Macchi
| 2007-12-17 22:41:24
|-
| [http://maemo.org/profile/view/albgarse.html albgarse]
| Alberto Garcia
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/albrandwood.html albrandwood]
| Ashley Brandwood
| 2008-01-28 22:41:44
|-
| [http://maemo.org/profile/view/albright.html albright]
| William Seager
| 2008-03-03 18:31:04
|-
| [http://maemo.org/profile/view/albson.html albson]
| D Albson
| 2007-12-21 19:41:41
|-
| [http://maemo.org/profile/view/albumiin.html albumiin]
| Toomas Lukk
| 2008-04-17 08:41:17
|-
| [http://maemo.org/profile/view/alcam.html alcam]
| Alun G
| 2007-12-26 13:41:00
|-
| [http://maemo.org/profile/view/alcides.html alcides]
| Alcides Neto
| 2008-03-05 15:31:02
|-
| [http://maemo.org/profile/view/alcione.html alcione]
| Alcione Pinheiro
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/alcris.html alcris]
| Alex Crisafulli
| 2008-05-23 03:41:08
|-
| [http://maemo.org/profile/view/aldebar.html aldebar]
| pippo pluto
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/aldersonjames20.html aldersonjames20]
| James Alderson
| 2007-12-11 16:25:20
|-
| [http://maemo.org/profile/view/aldoboccacci.html aldoboccacci]
| Aldo Boccacci
| 2007-12-11 16:25:07
|-
| [http://maemo.org/profile/view/ale.html ale]
| alessandro rimoldi
| 2008-03-09 11:31:01
|-
| [http://maemo.org/profile/view/aleaa.html aleaa]
| alex a
| 2008-03-13 17:31:05
|-
| [http://maemo.org/profile/view/aleale99.html aleale99]
| ale ale99
| 2007-05-18 19:12:12
|-
| [http://maemo.org/profile/view/aleasoft.html aleasoft]
| Alvaro Alea Fernandez
| 2007-10-19 19:40:32
|-
| [http://maemo.org/profile/view/alecrim.html alecrim]
| Francisco Keppler Silva Alecrim
| 2007-10-18 17:40:30
|-
| [http://maemo.org/profile/view/alee.html alee]
| Alison Lee
| 2007-11-16 17:46:48
|-
| [http://maemo.org/profile/view/alegeott.html alegeott]
| Ale Trinca
| 2007-10-22 09:40:34
|-
| [http://maemo.org/profile/view/alegiaco.html alegiaco]
| Alessandro Giacomel
| 2007-12-11 16:26:05
|-
| [http://maemo.org/profile/view/aleguy.html aleguy]
| Keith Woeltje
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/alejandro.html alejandro]
| Alejandro S
| 2007-10-20 17:40:32
|-
| [http://maemo.org/profile/view/alejf.html alejf]
| Edgar Alejandro Jarquin Flores
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/alejf08.html alejf08]
| edgar alejandro jarquin flores
| 2008-03-02 17:31:05
|-
| [http://maemo.org/profile/view/aleksandyr.html aleksandyr]
| Alexander Lash
| 2007-05-18 19:10:34
|-
| [http://maemo.org/profile/view/aleksdd.html aleksdd]
| Aleksandar Damyanov
| 2008-01-13 13:41:06
|-
| [http://maemo.org/profile/view/aleksi.html aleksi]
| Alek Silverstone
| 2008-03-19 12:31:02
|-
| [http://maemo.org/profile/view/alendit.html alendit]
| Dimitri Vorona
| 2008-02-07 11:31:16
|-
| [http://maemo.org/profile/view/aleos.html aleos]
| alexander ostrovsky
| 2008-03-02 21:31:01
|-
| [http://maemo.org/profile/view/alesis69.html alesis69]
| Alex Lopez
| 2007-11-16 17:49:17
|-
| [http://maemo.org/profile/view/alesuve.html alesuve]
| Alejandro Sutil
| 2007-05-18 19:12:10
|-
| [http://maemo.org/profile/view/alevinsn.html alevinsn]
| Aaron Levinson
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/alex.html alex]
| alex gonzalez
| 2007-11-28 18:52:23
|-
| [http://maemo.org/profile/view/alex-weej.html alex-weej]
| Alexander Jones
| 2007-10-19 20:40:33
|-
| [http://maemo.org/profile/view/alex111397.html alex111397]
| gary puchan
| 2007-07-10 01:40:20
|-
| [http://maemo.org/profile/view/alex2jf.html alex2jf]
| alex D
| 2008-01-09 19:41:27
|-
| [http://maemo.org/profile/view/alex46.html alex46]
| jim barron
| 2008-01-02 18:51:28
|-
| [http://maemo.org/profile/view/alexander-wolf.html alexander-wolf]
| Alexander Wolf
| 2007-09-25 20:40:24
|-
| [http://maemo.org/profile/view/alexandre.html alexandre]
| Alexandre Gabriel
| 2008-02-10 03:30:32
|-
| [http://maemo.org/profile/view/alexbel63.html alexbel63]
| alexander belanov
| 2007-10-19 01:40:31
|-
| [http://maemo.org/profile/view/alexcrown.html alexcrown]
| Alex Crown
| 2008-01-14 08:41:02
|-
| [http://maemo.org/profile/view/alexdin.html alexdin]
| Aleksander Modin
| 2007-12-25 13:41:04
|-
| [http://maemo.org/profile/view/alexdin07.html alexdin07]
| Aleksander Modin
| 2007-12-25 13:41:04
|-
| [http://maemo.org/profile/view/alexey_ma.html alexey_ma]
| Alexey Malevinsky
| 2007-08-16 13:40:20
|-
| [http://maemo.org/profile/view/alexfi.html alexfi]
| Alex Fuentes
| 2008-05-13 21:41:08
|-
| [http://maemo.org/profile/view/alexgiordano.html alexgiordano]
| alex giordano
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/alexgiordano78.html alexgiordano78]
| alex giordano
| 2007-12-26 19:41:10
|-
| [http://maemo.org/profile/view/alexgmcleod.html alexgmcleod]
| Alex McLeod
| 2008-05-23 13:41:08
|-
| [http://maemo.org/profile/view/alexgold.html alexgold]
| alessandro loro
| 2007-11-16 17:48:01
|-
| [http://maemo.org/profile/view/alexgonzalez.html alexgonzalez]
| alex gonzalez
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/alexhoward.html alexhoward]
| Alex Howard
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/alexhudson.html alexhudson]
| Alex Hudson
| 2007-10-19 13:40:34
|-
| [http://maemo.org/profile/view/alexib.html alexib]
| Alexey Baranov
| 2007-08-29 08:40:23
|-
| [http://maemo.org/profile/view/alexili.html alexili]
| Alexei Iliasov
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/alexjlee.html alexjlee]
| alex lee
| 2007-05-18 19:12:10
|-
| [http://maemo.org/profile/view/alexleung.html alexleung]
| Alex Leung
| 2008-05-16 04:41:07
|-
| [http://maemo.org/profile/view/alexm.html alexm]
| Alex Morrison
| 2007-10-26 12:40:34
|-
| [http://maemo.org/profile/view/alexo.html alexo]
| Alexander Otsabrik
| 2008-05-21 14:41:07
|-
| [http://maemo.org/profile/view/alexpacio.html alexpacio]
| Alessandro Bolletta
| 2007-10-22 13:40:33
|-
| [http://maemo.org/profile/view/alexpotato.html alexpotato]
| Alex Elliott
| 2008-01-17 13:41:18
|-
| [http://maemo.org/profile/view/alexweinert.html alexweinert]
| Alexander Weinert
| 2007-10-23 10:40:55
|-
| [http://maemo.org/profile/view/alexwiguna.html alexwiguna]
| Alex Wiguna
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/alexypagan.html alexypagan]
| alexy pagan
| 2008-02-27 03:30:58
|-
| [http://maemo.org/profile/view/alexz.html alexz]
| al jopiler
| 2007-05-18 19:13:06
|-
| [http://maemo.org/profile/view/alex_chuang.html alex_chuang]
| alexchuang chuang
| 2007-10-29 06:40:40
|-
| [http://maemo.org/profile/view/alex_kh.html alex_kh]
| alex Khleborob
| 2007-05-18 19:14:10
|-
| [http://maemo.org/profile/view/alfarg.html alfarg]
| Alfa alfarg
| 2007-05-18 19:12:39
|-
| [http://maemo.org/profile/view/alfdev.html alfdev]
| Alfredo De Vito
| 2007-10-22 08:40:35
|-
| [http://maemo.org/profile/view/alfielee.html alfielee]
| Rex Alfie Lee
| 2008-05-28 00:41:26
|-
| [http://maemo.org/profile/view/alfonsob.html alfonsob]
| Alfonso Bozzelli
| 2007-10-22 09:40:35
|-
| [http://maemo.org/profile/view/alfonsodg.html alfonsodg]
| Alfonso de la Guarda
| 2007-11-28 15:43:12
|-
| [http://maemo.org/profile/view/alfred999.html alfred999]
| alfred newman
| 2008-04-09 19:41:30
|-
| [http://maemo.org/profile/view/alfredodermatt.html alfredodermatt]
| Alfred Odermatt
| 2008-01-07 15:40:56
|-
| [http://maemo.org/profile/view/algerg.html algerg]
| George Alger
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/alglib.html alglib]
| Vladimir Bystricky
| 2008-01-09 07:40:55
|-
| [http://maemo.org/profile/view/algmnp.html algmnp]
| Marcelo Neubauer de Paula
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/algspd.html algspd]
| Javier B
| 2008-01-02 18:51:28
|-
| [http://maemo.org/profile/view/alias.html alias]
| Mirko M
| 2007-06-12 12:42:32
|-
| [http://maemo.org/profile/view/alibosworth.html alibosworth]
| ali bosworth
| 2007-11-16 17:49:23
|-
| [http://maemo.org/profile/view/alicen.html alicen]
| alice nothing
| 2008-05-30 18:41:10
|-
| [http://maemo.org/profile/view/alicia.html alicia]
| alicia a
| 2007-12-30 00:40:54
|-
| [http://maemo.org/profile/view/aliciaweber.html aliciaweber]
| Alicia Weber Laviña
| 2007-10-18 16:40:28
|-
| [http://maemo.org/profile/view/alienone.html alienone]
| Alien One
| 2007-11-28 15:43:25
|-
| [http://maemo.org/profile/view/alijames.html alijames]
| Alistair James
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/alikebabay.html alikebabay]
| Alisher Akhmetov
| 2007-05-18 19:14:27
|-
| [http://maemo.org/profile/view/alikrem.html alikrem]
| Celestino Sanchez Lazaro
| 2007-12-11 16:25:47
|-
| [http://maemo.org/profile/view/alioscia.html alioscia]
| Alioscia Rosa
| 2007-10-25 13:40:34
|-
| [http://maemo.org/profile/view/alipstadt.html alipstadt]
| Adam Lipstadt
| 2007-11-16 17:47:17
|-
| [http://maemo.org/profile/view/alivin70.html alivin70]
| Vincenzo Bruno
| 2007-12-31 11:41:01
|-
| [http://maemo.org/profile/view/aljordsbc.html aljordsbc]
| Allan Dumapal
| 2008-02-01 01:41:02
|-
| [http://maemo.org/profile/view/alkn.html alkn]
| Antti Lipponen
| 2007-04-05 15:25:37
|-
| [http://maemo.org/profile/view/allabeze.html allabeze]
| Allan Bezerra
| 2007-11-15 07:55:51
|-
| [http://maemo.org/profile/view/allan.html allan]
| Allan Sharpe
| 2007-12-28 18:41:29
|-
| [http://maemo.org/profile/view/allanniva.html allanniva]
| Allan Niva
| 2008-04-26 12:41:05
|-
| [http://maemo.org/profile/view/allanpatrick.html allanpatrick]
| Allan Patrick
| 2008-03-25 02:31:06
|-
| [http://maemo.org/profile/view/allegory.html allegory]
| Nadia Whisenand
| 2007-11-16 17:47:44
|-
| [http://maemo.org/profile/view/allendesje.html allendesje]
| juan allendes
| 2008-01-14 16:41:04
|-
| [http://maemo.org/profile/view/allerj.html allerj]
| J. Aller
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/allida.html allida]
| dan allison
| 2007-10-22 14:40:33
|-
| [http://maemo.org/profile/view/allisonaaronb.html allisonaaronb]
| Aaron Allison
| 2008-03-26 16:31:06
|-
| [http://maemo.org/profile/view/allmadden21.html allmadden21]
| John Madden
| 2007-07-02 02:40:08
|-
| [http://maemo.org/profile/view/allmonjoy3.html allmonjoy3]
| Matt Allmon
| 2008-04-04 21:41:06
|-
| [http://maemo.org/profile/view/alltid.html alltid]
| hugo jimenez
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/alltimes.html alltimes]
| gianni berruti
| 2006-12-01 11:20:55
|-
| [http://maemo.org/profile/view/allygallagher.html allygallagher]
| Ally Gallagher
| 2007-07-13 18:40:10
|-
| [http://maemo.org/profile/view/almeidapaulopt.html almeidapaulopt]
| Paulo Almeida
| 2007-10-18 22:40:24
|-
| [http://maemo.org/profile/view/almerrickburton.html almerrickburton]
| sean crissy
| 2008-01-06 05:40:55
|-
| [http://maemo.org/profile/view/almidan.html almidan]
| abdullah ahmed
| 2008-04-30 00:41:13
|-
| [http://maemo.org/profile/view/almu3allim.html almu3allim]
| alfa moha
| 2007-10-14 14:40:39
|-
| [http://maemo.org/profile/view/aln.html aln]
| Alina Frolova
| 2008-03-21 17:31:03
|-
| [http://maemo.org/profile/view/alnatar.html alnatar]
| Alex Tarasov
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/aloisiojr.html aloisiojr]
| Aloisio Almeida Jr
| 2007-11-16 17:48:36
|-
| [http://maemo.org/profile/view/alongmire22.html alongmire22]
| anthony longmire
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/alonsher.html alonsher]
| jose hernandez
| 2008-01-16 21:51:14
|-
| [http://maemo.org/profile/view/alovalle.html alovalle]
| Alex Ovalle
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/alp.html alp]
| Alp Toker
| 2007-10-14 14:40:36
|-
| [http://maemo.org/profile/view/alpha-3.html alpha-3]
| xiaoqing zhou
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/alphabeta2.html alphabeta2]
| k adams
| 2007-08-17 00:40:19
|-
| [http://maemo.org/profile/view/alphalux.html alphalux]
| Ryan Lux
| 2007-12-17 01:41:19
|-
| [http://maemo.org/profile/view/alphaman.html alphaman]
| Aaron Sakovich
| 2008-01-21 14:32:17
|-
| [http://maemo.org/profile/view/alphaone.html alphaone]
| Daniel Willmann
| 2007-11-05 14:02:15
|-
| [http://maemo.org/profile/view/alphapenguin.html alphapenguin]
| Alex Tsai
| 2007-12-15 06:41:10
|-
| [http://maemo.org/profile/view/alphonse99.html alphonse99]
| Hiroyuki Sakata
| 2007-07-06 18:40:10
|-
| [http://maemo.org/profile/view/alprem.html alprem]
| Alnoor Premji
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/alsarvar.html alsarvar]
| al sarvar
| 2008-02-23 21:31:02
|-
| [http://maemo.org/profile/view/alsee.html alsee]
| Alexander Fomichev
| 2008-05-18 08:41:07
|-
| [http://maemo.org/profile/view/altan321.html altan321]
| Bob Freud
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/alteron.html alteron]
| alteron Orlin
| 2008-04-08 18:41:18
|-
| [http://maemo.org/profile/view/altheviking.html altheviking]
| Alan Reese
| 2008-04-02 06:41:01
|-
| [http://maemo.org/profile/view/altoidbox.html altoidbox]
| Joseph Boeckman
| 2007-12-11 16:25:25
|-
| [http://maemo.org/profile/view/aluke.html aluke]
| Aian Luke
| 2007-11-30 10:49:37
|-
| [http://maemo.org/profile/view/alulat.html alulat]
| ayub lulat
| 2007-11-16 17:48:01
|-
| [http://maemo.org/profile/view/alvano.html alvano]
| Sergio Alvano
| 2007-12-20 00:40:27
|-
| [http://maemo.org/profile/view/alvaradodg.html alvaradodg]
| Guillermo Alvarado
| 2007-10-18 00:40:46
|-
| [http://maemo.org/profile/view/alvb.html alvb]
| Andrea Van Benshcoten
| 2007-12-25 23:41:30
|-
| [http://maemo.org/profile/view/alvin.html alvin]
| Alvin Abad
| 2007-05-18 19:13:41
|-
| [http://maemo.org/profile/view/alvinet.html alvinet]
| Alberto Vincenzi
| 2007-10-22 07:40:35
|-
| [http://maemo.org/profile/view/alvinpd.html alvinpd]
| Alvin PD
| 2007-05-29 09:30:36
|-
| [http://maemo.org/profile/view/alwine.html alwine]
| albert needham
| 2007-12-11 16:25:36
|-
| [http://maemo.org/profile/view/alwpoe.html alwpoe]
| Arthur Williams
| 2008-01-31 04:31:07
|-
| [http://maemo.org/profile/view/alxeg.html alxeg]
| Alexander Egorov
| 2007-10-23 12:40:33
|-
| [http://maemo.org/profile/view/alxndr.html alxndr]
| Alan Santiago
| 2007-07-05 06:40:12
|-
| [http://maemo.org/profile/view/alyneho.html alyneho]
| Howard Alyne
| 2007-11-28 15:43:06
|-
| [http://maemo.org/profile/view/amadi.html amadi]
| denis amadi
| 2008-04-05 16:41:05
|-
| [http://maemo.org/profile/view/amalone.html amalone]
| anthony malone
| 2008-01-14 00:41:51
|-
| [http://maemo.org/profile/view/amarcoskb.html amarcoskb]
| antonio alves
| 2008-06-03 13:41:08
|-
| [http://maemo.org/profile/view/amaury07.html amaury07]
| amaury khelifi
| 2007-07-02 12:40:07
|-
| [http://maemo.org/profile/view/ambarmetta.html ambarmetta]
| Matt T
| 2008-01-29 06:31:28
|-
| [http://maemo.org/profile/view/amboy9420.html amboy9420]
| Elton PELLER
| 2007-11-16 17:48:13
|-
| [http://maemo.org/profile/view/amenhotepiii.html amenhotepiii]
| pharoah alex
| 2007-12-31 13:41:47
|-
| [http://maemo.org/profile/view/ameuse.html ameuse]
| aaron meuse
| 2007-12-20 23:42:27
|-
| [http://maemo.org/profile/view/amggti.html amggti]
| Aaron Gray
| 2008-01-11 11:11:24
|-
| [http://maemo.org/profile/view/amigokin.html amigokin]
| cristian castro
| 2007-07-04 05:40:18
|-
| [http://maemo.org/profile/view/amille2.html amille2]
| Anne Miller
| 2007-07-10 20:40:20
|-
| [http://maemo.org/profile/view/aminov.html aminov]
| amin chehade
| 2008-01-15 19:43:42
|-
| [http://maemo.org/profile/view/amircas.html amircas]
| AMIR CASAB
| 2008-03-13 22:31:06
|-
| [http://maemo.org/profile/view/amit.html amit]
| Amit Kucheria
| 2007-11-16 17:49:40
|-
| [http://maemo.org/profile/view/amitgil.html amitgil]
| Amit Gil
| 2007-10-20 23:40:31
|-
| [http://maemo.org/profile/view/amnlima.html amnlima]
| Antonio Marcus Nogueira Lima
| 2007-05-18 19:11:09
|-
| [http://maemo.org/profile/view/amoresperro.html amoresperro]
| Mark Ludlow
| 2008-01-19 06:31:02
|-
| [http://maemo.org/profile/view/amosct3.html amosct3]
| Chris Amos
| 2007-05-18 19:11:50
|-
| [http://maemo.org/profile/view/amoult.html amoult]
| Timo Luoma
| 2007-11-15 07:56:15
|-
| [http://maemo.org/profile/view/amrigo.html amrigo]
| Ângelo Rigo
| 2008-04-21 00:42:32
|-
| [http://maemo.org/profile/view/amros.html amros]
| Amit Routh
| 2008-06-10 08:31:13
|-
| [http://maemo.org/profile/view/ams.html ams]
| a s
| 2008-03-01 08:31:01
|-
| [http://maemo.org/profile/view/amtam.html amtam]
| Alan Tam
| 2008-02-01 16:31:10
|-
| [http://maemo.org/profile/view/amvidian.html amvidian]
| Jordon Bedwell
| 2007-11-16 17:46:40
|-
| [http://maemo.org/profile/view/amymouan08.html amymouan08]
| Amy Moua
| 2008-03-19 22:31:05
|-
| [http://maemo.org/profile/view/amyplant.html amyplant]
| Amy Plant
| 2007-05-18 19:11:43
|-
| [http://maemo.org/profile/view/ana.html ana]
| Ana Guerrero
| 2007-10-19 13:40:36
|-
| [http://maemo.org/profile/view/anacarolmoraes.html anacarolmoraes]
| Ana Carolina Moraes
| 2007-05-18 19:14:43
|-
| [http://maemo.org/profile/view/anajuliarfo.html anajuliarfo]
| Ana Julia Oliveira
| 2007-05-18 19:12:11
|-
| [http://maemo.org/profile/view/analidasj.html analidasj]
| analida sanint
| 2008-02-17 20:31:00
|-
| [http://maemo.org/profile/view/anamana.html anamana]
| Roy Harkness
| 2007-10-20 18:40:30
|-
| [http://maemo.org/profile/view/ananda.html ananda]
| Walter Fliss
| 2008-01-24 20:41:13
|-
| [http://maemo.org/profile/view/anandb.html anandb]
| Anand Bhansali
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/anand_pandey.html anand_pandey]
| Anand Pandey
| 2007-10-30 03:40:39
|-
| [http://maemo.org/profile/view/anantha_cmc.html anantha_cmc]
| Ananthanarayanan Krishnamurthi
| 2007-07-09 09:40:51
|-
| [http://maemo.org/profile/view/anateus.html anateus]
| Mike Katsevman
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/anc4ar.html anc4ar]
| A N
| 2007-11-16 17:46:40
|-
| [http://maemo.org/profile/view/ancailliau.html ancailliau]
| Antoine Cailliau
| 2007-05-18 19:11:16
|-
| [http://maemo.org/profile/view/anchinchen.html anchinchen]
| Anchin Chen
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/ancientlore.html ancientlore]
| Michael Lore
| 2007-07-07 14:40:08
|-
| [http://maemo.org/profile/view/anders.html anders]
| Anders Waldenborg
| 2007-10-18 16:40:02
|-
| [http://maemo.org/profile/view/andorsch.html andorsch]
| Andreas P
| 2007-12-11 16:25:14
|-
| [http://maemo.org/profile/view/andraxin.html andraxin]
| András Méhes
| 2007-10-30 00:40:38
|-
| [http://maemo.org/profile/view/andre.html andre]
| Andre Klapper
| 2007-10-31 21:40:35
|-
| [http://maemo.org/profile/view/andrea.html andrea]
| andrea yapp
| 2007-05-18 19:12:01
|-
| [http://maemo.org/profile/view/andreagrandi.html andreagrandi]
| Andrea Grandi
| 2007-12-11 16:24:23
|-
| [http://maemo.org/profile/view/andrearossi0479.html andrearossi0479]
| andrea rossi
| 2007-12-26 21:41:16
|-
| [http://maemo.org/profile/view/andreas.html andreas]
| Andreas Orfanos
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/andreas01.html andreas01]
| andreas farrenkopf
| 2007-11-28 15:43:37
|-
| [http://maemo.org/profile/view/andreasn.html andreasn]
| Andreas Nilsson
| 2007-05-18 19:14:29
|-
| [http://maemo.org/profile/view/andreatek.html andreatek]
| Andrea Tek
| 2008-04-16 01:41:15
|-
| [http://maemo.org/profile/view/andrehoraa.html andrehoraa]
| André Hora
| 2007-05-18 19:12:31
|-
| [http://maemo.org/profile/view/andrej1001.html andrej1001]
| Andrej Simonovski
| 2007-10-22 22:40:34
|-
| [http://maemo.org/profile/view/andrejsd.html andrejsd]
| Andrejs Dimbirs
| 2007-07-12 23:40:16
|-
| [http://maemo.org/profile/view/andresgranados.html andresgranados]
| Andres Granados Serrano
| 2007-05-18 19:12:26
|-
| [http://maemo.org/profile/view/andresme.html andresme]
| andrei sakalouski
| 2007-12-29 04:40:58
|-
| [http://maemo.org/profile/view/andrew.html andrew]
| Andrew Hedges
| 2006-12-13 11:10:03
|-
| [http://maemo.org/profile/view/andrew-p.html andrew-p]
| Andrew P
| 2008-01-26 22:31:14
|-
| [http://maemo.org/profile/view/andrewb.html andrewb]
| Andrew B
| 2007-12-16 20:41:02
|-
| [http://maemo.org/profile/view/andrewbarr.html andrewbarr]
| Andrew Barr
| 2007-05-18 19:10:23
|-
| [http://maemo.org/profile/view/andrewdupa.html andrewdupa]
| Andrey Andreev
| 2007-11-16 17:47:25
|-
| [http://maemo.org/profile/view/andrewfblack.html andrewfblack]
| Andrew Black
| 2008-05-28 22:41:13
|-
| [http://maemo.org/profile/view/andrewgatt.html andrewgatt]
| Andrew Gatt
| 2007-05-18 19:10:29
|-
| [http://maemo.org/profile/view/andrewgodwin.html andrewgodwin]
| Andrew Godwin
| 2007-05-18 19:11:02
|-
| [http://maemo.org/profile/view/andrewhuo.html andrewhuo]
| Zhigang Huo
| 2007-10-25 04:40:36
|-
| [http://maemo.org/profile/view/andrewjbarr.html andrewjbarr]
| Andrew Barr
| 2007-12-17 18:41:14
|-
| [http://maemo.org/profile/view/andrewpkent.html andrewpkent]
| Andrew Kent
| 2007-06-27 04:40:07
|-
| [http://maemo.org/profile/view/andrews.html andrews]
| Andrey Safonov
| 2008-06-01 11:41:12
|-
| [http://maemo.org/profile/view/andrewsman.html andrewsman]
| andrew oye
| 2008-01-01 03:41:01
|-
| [http://maemo.org/profile/view/andrewupton.html andrewupton]
| Andrew Upton
| 2008-05-09 22:41:07
|-
| [http://maemo.org/profile/view/andrey.html andrey]
| Andrey Lim
| 2007-10-24 09:40:33
|-
| [http://maemo.org/profile/view/andre_meireles.html andre_meireles]
| Andre Meireles
| 2007-11-16 17:46:35
|-
| [http://maemo.org/profile/view/andriod.html andriod]
| Andy Fundinger
| 2007-02-07 02:33:44
|-
| [http://maemo.org/profile/view/andrsbub.html andrsbub]
| Anders Berg
| 2007-01-17 17:10:05
|-
| [http://maemo.org/profile/view/andrunko.html andrunko]
| Andre Moreira Magalhaes
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/andryzzone.html andryzzone]
| Andrea Scalia
| 2007-10-23 08:40:40
|-
| [http://maemo.org/profile/view/andrzej85.html andrzej85]
| Andrzej Janiak
| 2007-06-29 01:40:13
|-
| [http://maemo.org/profile/view/andumag.html andumag]
| Alexandru Maria
| 2008-04-16 16:41:21
|-
| [http://maemo.org/profile/view/andy.html andy]
| Antti Ijäs
| 2007-05-18 19:10:46
|-
| [http://maemo.org/profile/view/andy-held.html andy-held]
| Andreas Franek
| 2007-10-22 19:40:36
|-
| [http://maemo.org/profile/view/andy80.html andy80]
| Andrea Grandi
| 2007-07-06 00:40:11
|-
| [http://maemo.org/profile/view/andybear.html andybear]
| Andreas Behr
| 2007-05-18 19:12:15
|-
| [http://maemo.org/profile/view/andybehr.html andybehr]
| Andreas Behr
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/andychoi008.html andychoi008]
| Andy Choi
| 2007-12-29 05:40:58
|-
| [http://maemo.org/profile/view/andycrack.html andycrack]
| Andres Fraile
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/andydoyal.html andydoyal]
| andrew doyal
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/andygates.html andygates]
| Andy Gates
| 2007-04-05 15:25:39
|-
| [http://maemo.org/profile/view/andylee.html andylee]
| Andy Lee
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/andymak.html andymak]
| Andy Makepeace
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/andyrcash.html andyrcash]
| andy andy
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/andysova.html andysova]
| Andrew Ploskirev
| 2007-07-06 17:40:17
|-
| [http://maemo.org/profile/view/anfalas.html anfalas]
| Antonio Molina Gonzalez
| 2007-06-21 16:40:07
|-
| [http://maemo.org/profile/view/angel.html angel]
| angel angel
| 2007-05-18 19:12:29
|-
| [http://maemo.org/profile/view/angel2008.html angel2008]
| Angel Io
| 2008-02-11 03:31:17
|-
| [http://maemo.org/profile/view/angel699.html angel699]
| angel rodriguez
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/angelb.html angelb]
| Angel Buendia
| 2008-01-29 19:32:41
|-
| [http://maemo.org/profile/view/angelicmeiko.html angelicmeiko]
| Vanessa Matsuhara
| 2007-05-18 19:12:50
|-
| [http://maemo.org/profile/view/angelo.html angelo]
| angelo angelo
| 2008-01-19 13:31:10
|-
| [http://maemo.org/profile/view/angelr.html angelr]
| Angel Roman
| 2007-05-18 19:13:43
|-
| [http://maemo.org/profile/view/angelroman.html angelroman]
| Angel Roman
| 2007-11-30 10:48:31
|-
| [http://maemo.org/profile/view/angelsfell.html angelsfell]
| carlos barrera
| 2008-01-25 05:31:04
|-
| [http://maemo.org/profile/view/angrycore.html angrycore]
| core core
| 2008-05-11 15:41:12
|-
| [http://maemo.org/profile/view/angus.html angus]
| Mathias Labeyrie
| 2007-05-18 19:11:53
|-
| [http://maemo.org/profile/view/anhtnguyen.html anhtnguyen]
| tam nguyen
| 2007-11-28 15:43:34
|-
| [http://maemo.org/profile/view/anhtruongus.html anhtruongus]
| Anh Truong
| 2008-02-27 04:31:05
|-
| [http://maemo.org/profile/view/anh_saigon33.html anh_saigon33]
| Anh Saigon33
| 2007-11-16 17:47:34
|-
| [http://maemo.org/profile/view/anicepac.html anicepac]
| guy howard klopp
| 2007-05-18 19:10:25
|-
| [http://maemo.org/profile/view/anidel.html anidel]
| Aniello Del Sorbo
| 2007-05-18 19:11:44
|-
| [http://maemo.org/profile/view/anikula.html anikula]
| Aki Nikula
| 2007-10-18 14:40:30
|-
| [http://maemo.org/profile/view/anil7213.html anil7213]
| antonio iciarte
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/anilkumarv.html anilkumarv]
| Anil Kumar
| 2007-06-08 13:37:21
|-
| [http://maemo.org/profile/view/anime69.html anime69]
| emile mctaggart
| 2008-04-03 15:41:05
|-
| [http://maemo.org/profile/view/animexfan.html animexfan]
| anime fan
| 2007-12-11 16:24:54
|-
| [http://maemo.org/profile/view/aninanet.html aninanet]
| anina net
| 2007-12-15 17:40:57
|-
| [http://maemo.org/profile/view/anjani.html anjani]
| Anjani Srivastava
| 2007-11-16 17:48:02
|-
| [http://maemo.org/profile/view/anjiro.html anjiro]
| Daniel Ashbrook
| 2008-03-25 17:33:47
|-
| [http://maemo.org/profile/view/ankkuri.html ankkuri]
| Mika Linnanoja
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/anl9009.html anl9009]
| Thomas Reginald
| 2007-06-08 13:37:16
|-
| [http://maemo.org/profile/view/anlin.html anlin]
| anlin dong
| 2008-01-17 15:41:09
|-
| [http://maemo.org/profile/view/anmichel.html anmichel]
| Andrzej Michel
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/anmolsheth.html anmolsheth]
| Anmol Sheth
| 2007-10-24 20:40:35
|-
| [http://maemo.org/profile/view/anna770.html anna770]
| Anna Langley
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/annik5k.html annik5k]
| Nik Giddens
| 2007-05-18 19:13:47
|-
| [http://maemo.org/profile/view/annuminas.html annuminas]
| Ilja Schumacher
| 2008-03-21 16:31:05
|-
| [http://maemo.org/profile/view/anon2.html anon2]
| barry masel
| 2007-12-11 16:25:42
|-
| [http://maemo.org/profile/view/anontrol.html anontrol]
| anon trawl
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/anortham.html anortham]
| Alan Northam
| 2008-02-07 16:31:39
|-
| [http://maemo.org/profile/view/anothy.html anothy]
| Anthony Sorace
| 2007-06-08 13:37:16
|-
| [http://maemo.org/profile/view/anr1963.html anr1963]
| Andrew Ramage
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/anrosa.html anrosa]
| André Goddard Rosa
| 2007-05-18 19:10:51
|-
| [http://maemo.org/profile/view/anshalvorson.html anshalvorson]
| Hal Halvorson
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/anshu_kowtha.html anshu_kowtha]
| Anshuman Kowtha
| 2008-02-20 06:31:03
|-
| [http://maemo.org/profile/view/ansuman.html ansuman]
| Ansuman Padhy
| 2007-11-16 17:48:16
|-
| [http://maemo.org/profile/view/ansuto.html ansuto]
| andras suto
| 2008-01-17 20:42:04
|-
| [http://maemo.org/profile/view/antama.html antama]
| Angel Tari
| 2008-03-25 19:31:33
|-
| [http://maemo.org/profile/view/antbri.html antbri]
| anthony wright
| 2007-12-11 16:25:06
|-
| [http://maemo.org/profile/view/antey124.html antey124]
| Alexandr Antonov
| 2007-11-16 17:47:44
|-
| [http://maemo.org/profile/view/anthdm.html anthdm]
| Anth Millington
| 2007-02-07 02:33:38
|-
| [http://maemo.org/profile/view/anthony.html anthony]
| Anthony castille
| 2007-12-25 00:41:12
|-
| [http://maemo.org/profile/view/anthonyeu.html anthonyeu]
| anthony eu
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/anthonygs13.html anthonygs13]
| Anthony Guravitz-Shaw
| 2008-01-25 21:41:41
|-
| [http://maemo.org/profile/view/anthonytodd.html anthonytodd]
| anthony todd
| 2007-11-16 17:49:04
|-
| [http://maemo.org/profile/view/anthos.html anthos]
| Vladimir Pozniak
| 2008-02-04 21:41:20
|-
| [http://maemo.org/profile/view/antikristian.html antikristian]
| Kristian Alvestad
| 2007-05-18 19:12:34
|-
| [http://maemo.org/profile/view/antimirov.html antimirov]
| Eugene Antimirov
| 2008-01-13 23:41:03
|-
| [http://maemo.org/profile/view/antmiller.html antmiller]
| ant miller
| 2007-05-18 19:11:09
|-
| [http://maemo.org/profile/view/antoalt.html antoalt]
| Antonio Altana
| 2007-10-22 09:40:34
|-
| [http://maemo.org/profile/view/antoines.html antoines]
| Antoine Schweitzer-Chaput
| 2007-05-18 19:11:21
|-
| [http://maemo.org/profile/view/antongicevski.html antongicevski]
| martin glotz
| 2008-01-13 21:51:02
|-
| [http://maemo.org/profile/view/antoninosensei.html antoninosensei]
| Antonio Strada
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/antonio1975.html antonio1975]
| Antonio De Luca
| 2007-07-04 23:40:11
|-
| [http://maemo.org/profile/view/antoniooliva.html antoniooliva]
| antonio oliva
| 2007-10-22 10:40:34
|-
| [http://maemo.org/profile/view/antonr.html antonr]
| A R
| 2007-05-21 13:43:19
|-
| [http://maemo.org/profile/view/antonypranata.html antonypranata]
| Antony Pranata
| 2007-11-16 17:47:20
|-
| [http://maemo.org/profile/view/antoszka.html antoszka]
| Antoni Grzymala
| 2007-10-20 17:40:33
|-
| [http://maemo.org/profile/view/anttilaine.html anttilaine]
| Antti Laine
| 2007-10-18 13:40:28
|-
| [http://maemo.org/profile/view/anttisavolainen.html anttisavolainen]
| Antti Savolainen
| 2008-02-26 14:31:07
|-
| [http://maemo.org/profile/view/antuvschle.html antuvschle]
| Jen Pierce
| 2007-07-02 20:40:15
|-
| [http://maemo.org/profile/view/antz.html antz]
| Jing Z
| 2008-03-20 05:31:03
|-
| [http://maemo.org/profile/view/anunakin.html anunakin]
| Marcus Fazzi
| 2008-05-21 14:41:08
|-
| [http://maemo.org/profile/view/anurick.html anurick]
| Albert Nurick
| 2007-10-23 21:40:34
|-
| [http://maemo.org/profile/view/anxer.html anxer]
| Sotiris Salloum
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/anymountain.html anymountain]
| Ethan Holzman
| 2008-01-18 05:30:58
|-
| [http://maemo.org/profile/view/anyons6.html anyons6]
| ukjjjn hhnhhj
| 2008-04-29 11:41:04
|-
| [http://maemo.org/profile/view/aoztuncer.html aoztuncer]
| Anil Oztuncer
| 2007-11-16 17:46:34
|-
| [http://maemo.org/profile/view/ap91484.html ap91484]
| Alexander Poplawski
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/apache256.html apache256]
| Norbert 
| 2007-12-18 14:40:52
|-
| [http://maemo.org/profile/view/apardo.html apardo]
| Antonio Pardo
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/aparna.html aparna]
| Aparna Nandyal
| 2007-11-16 17:49:04
|-
| [http://maemo.org/profile/view/apekool.html apekool]
| Judocus Borm
| 2007-05-31 20:11:21
|-
| [http://maemo.org/profile/view/aperezbios.html aperezbios]
| Alex Perez
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/apernas1.html apernas1]
| alex pernas
| 2008-05-04 13:41:08
|-
| [http://maemo.org/profile/view/apexer.html apexer]
| Feng Gao
| 2007-12-17 03:41:02
|-
| [http://maemo.org/profile/view/aph.html aph]
| stefan dimov
| 2007-12-22 14:41:28
|-
| [http://maemo.org/profile/view/apinheiro.html apinheiro]
| Alejandro Piñeiro
| 2008-02-19 10:31:00
|-
| [http://maemo.org/profile/view/apisraelson.html apisraelson]
| Alex Israelson
| 2007-10-29 00:40:34
|-
| [http://maemo.org/profile/view/aplatypus.html aplatypus]
| Will Mason
| 2008-05-17 11:40:05
|-
| [http://maemo.org/profile/view/apo.html apo]
| Andreas Poisel
| 2008-04-21 15:41:14
|-
| [http://maemo.org/profile/view/apoc112.html apoc112]
| Josh Glessner
| 2008-02-04 14:31:18
|-
| [http://maemo.org/profile/view/apoca388.html apoca388]
| carlos leyva
| 2007-11-30 10:49:35
|-
| [http://maemo.org/profile/view/apohja.html apohja]
| Antti Pohja
| 2007-11-15 07:56:04
|-
| [http://maemo.org/profile/view/apollo.html apollo]
| Martin Collins
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/appearance.html appearance]
| Syed Mazhar Hussain
| 2007-10-21 08:40:30
|-
| [http://maemo.org/profile/view/apple01.html apple01]
| lausen keane
| 2008-04-19 23:41:06
|-
| [http://maemo.org/profile/view/applesbananas.html applesbananas]
| leo postovoit
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/apportum.html apportum]
| Jerry Saperstein
| 2007-07-08 00:40:13
|-
| [http://maemo.org/profile/view/aprendiendo.html aprendiendo]
| Jose Jose
| 2008-03-10 18:31:05
|-
| [http://maemo.org/profile/view/apteryx.html apteryx]
| Jeff Adams
| 2007-07-06 15:40:18
|-
| [http://maemo.org/profile/view/apuentes.html apuentes]
| Antía Puentes Felpeto
| 2007-11-15 11:40:42
|-
| [http://maemo.org/profile/view/apuzup.html apuzup]
| apu zup
| 2007-11-16 17:47:02
|-
| [http://maemo.org/profile/view/apw76006.html apw76006]
| A E
| 2007-12-26 13:41:01
|-
| [http://maemo.org/profile/view/aquaman74.html aquaman74]
| John Papadopoulos
| 2008-05-15 19:41:10
|-
| [http://maemo.org/profile/view/aquarius.html aquarius]
| Tomas Lastovicka
| 2008-01-25 16:43:09
|-
| [http://maemo.org/profile/view/aquaticus.html aquaticus]
| Natalia Zalcman
| 2007-05-18 19:14:48
|-
| [http://maemo.org/profile/view/arakari.html arakari]
| Luis Carrión Gil
| 2008-04-16 12:41:06
|-
| [http://maemo.org/profile/view/arakker.html arakker]
| Tommy Henriksen
| 2008-06-01 04:41:07
|-
| [http://maemo.org/profile/view/araksanyi.html araksanyi]
| Atilla RAKSANYI
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/aramis002.html aramis002]
| Claudio Gaspa
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/araneidae.html araneidae]
| Michael Abbott
| 2008-02-28 17:31:03
|-
| [http://maemo.org/profile/view/arangel.html arangel]
| Arangel Angov
| 2007-05-18 19:11:44
|-
| [http://maemo.org/profile/view/arantala.html arantala]
| Arto Rantala
| 2007-11-16 17:47:49
|-
| [http://maemo.org/profile/view/arara_verwiebe.html arara_verwiebe]
| Arara Verwiebe
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/arasila.html arasila]
| Antti Rasila
| 2007-05-23 05:29:27
|-
| [http://maemo.org/profile/view/araujo.html araujo]
| Alvaro Araujo-Pinto
| 2008-05-05 18:41:56
|-
| [http://maemo.org/profile/view/araujone.html araujone]
| Antonio Gomes
| 2007-05-18 19:12:15
|-
| [http://maemo.org/profile/view/arca83.html arca83]
| Alex Arca
| 2007-05-18 19:11:43
|-
| [http://maemo.org/profile/view/archil.html archil]
| archil archil
| 2008-02-22 13:30:57
|-
| [http://maemo.org/profile/view/archon.html archon]
| Rodrigo Apolinario
| 2007-10-25 23:40:32
|-
| [http://maemo.org/profile/view/archt.html archt]
| Dylan Hoang
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/archy1976.html archy1976]
| andrea circhetta
| 2007-11-15 07:55:50
|-
| [http://maemo.org/profile/view/arcor.html arcor]
| Andre Fiorilli
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/arcturusrhan.html arcturusrhan]
| Angel Rodriguez
| 2008-02-16 03:31:04
|-
| [http://maemo.org/profile/view/arczero.html arczero]
| adam cohen
| 2007-12-15 18:41:04
|-
| [http://maemo.org/profile/view/ardaumut.html ardaumut]
| ardaumut ardaumut
| 2008-02-11 21:31:16
|-
| [http://maemo.org/profile/view/ardee.html ardee]
| Alan Deeley
| 2008-01-18 17:33:04
|-
| [http://maemo.org/profile/view/ardissono.html ardissono]
| cristian ardissono
| 2007-10-22 16:40:31
|-
| [http://maemo.org/profile/view/arejaytee.html arejaytee]
| Rob Thomas
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/arekm.html arekm]
| Arkadiusz Miskiewicz
| 2007-11-15 07:56:18
|-
| [http://maemo.org/profile/view/aremick.html aremick]
| alan remick
| 2008-03-23 18:31:08
|-
| [http://maemo.org/profile/view/arezende.html arezende]
| Adriano Rezende
| 2008-03-24 19:31:04
|-
| [http://maemo.org/profile/view/arfonzo.html arfonzo]
| Alfonso P
| 2007-11-16 17:46:45
|-
| [http://maemo.org/profile/view/argalil.html argalil]
| A.R. Galil
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/argonel.html argonel]
| Joe Morrison
| 2008-03-26 16:31:07
|-
| [http://maemo.org/profile/view/arian.html arian]
| Arian Bär
| 2007-11-28 15:43:49
|-
| [http://maemo.org/profile/view/ariel798.html ariel798]
| Ariel Dummer
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/arie_moreira.html arie_moreira]
| jorge gonzalez
| 2007-05-29 09:30:12
|-
| [http://maemo.org/profile/view/arimus.html arimus]
| Richard Horton
| 2007-12-11 16:26:30
|-
| [http://maemo.org/profile/view/arisquito.html arisquito]
| Orlando Caceres
| 2007-11-28 15:43:45
|-
| [http://maemo.org/profile/view/aritor1.html aritor1]
| Ari Torkkola
| 2007-05-18 19:13:03
|-
| [http://maemo.org/profile/view/arivero.html arivero]
| Alejandro Rivero
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/arj.html arj]
| Anders Rune Jensen
| 2007-05-18 19:10:38
|-
| [http://maemo.org/profile/view/arju.html arju]
| Arvid Juskaitis
| 2007-08-19 09:40:20
|-
| [http://maemo.org/profile/view/arjun.html arjun]
| Arjun Giri
| 2007-05-23 05:29:33
|-
| [http://maemo.org/profile/view/arjun225.html arjun225]
| Robert Lin
| 2007-10-22 17:40:32
|-
| [http://maemo.org/profile/view/arjun4patel.html arjun4patel]
| arjun patel
| 2007-05-18 19:12:32
|-
| [http://maemo.org/profile/view/arjungiri.html arjungiri]
| artem antonov
| 2007-11-28 18:10:24
|-
| [http://maemo.org/profile/view/arjwright.html arjwright]
| Antoine RJ Wright
| 2007-10-19 16:40:34
|-
| [http://maemo.org/profile/view/arkana.html arkana]
| Rhonda Arkana
| 2007-05-18 19:11:33
|-
| [http://maemo.org/profile/view/arkiwi.html arkiwi]
| Richard Stonehouse
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/armada.html armada]
| ed de jonge
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/arman68.html arman68]
| arman rastaman
| 2007-11-16 17:46:39
|-
| [http://maemo.org/profile/view/armin.html armin]
| Armin Warda
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/arminb.html arminb]
| Armin Burgmeier
| 2007-11-16 17:49:09
|-
| [http://maemo.org/profile/view/arming.html arming]
| xu ming
| 2007-11-28 15:43:11
|-
| [http://maemo.org/profile/view/armon6.html armon6]
| Sean McLarty
| 2008-04-22 08:41:07
|-
| [http://maemo.org/profile/view/arne.html arne]
| Arne Zellentin
| 2006-12-13 11:10:03
|-
| [http://maemo.org/profile/view/arnims.html arnims]
| Arnim Sauerbier
| 2007-05-18 19:12:34
|-
| [http://maemo.org/profile/view/arnix.html arnix]
| arnie t
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/arno50.html arno50]
| Arno Reversat
| 2007-05-18 19:11:21
|-
| [http://maemo.org/profile/view/arnoldol.html arnoldol]
| Arnoldo Lara Gimenez
| 2007-05-18 19:13:04
|-
| [http://maemo.org/profile/view/arnost.html arnost]
| Arnost Valicek
| 2007-12-11 16:25:06
|-
| [http://maemo.org/profile/view/arocker4.html arocker4]
| Alex Craley
| 2008-03-14 17:31:18
|-
| [http://maemo.org/profile/view/arog73.html arog73]
| Aaron Rogers
| 2007-05-18 19:12:39
|-
| [http://maemo.org/profile/view/arpesenti.html arpesenti]
| Armando Pesenti Gritti
| 2007-10-22 07:40:36
|-
| [http://maemo.org/profile/view/arrodas.html arrodas]
| Alberto Ruiz Rodas
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/arrow.html arrow]
| Dave Archer
| 2007-05-18 19:10:43
|-
| [http://maemo.org/profile/view/arsenico77.html arsenico77]
| gianluca cavaliere
| 2007-11-16 17:47:30
|-
| [http://maemo.org/profile/view/arslan.html arslan]
| mehmet arslan
| 2007-12-23 17:41:36
|-
| [http://maemo.org/profile/view/artbulla.html artbulla]
| Art Bulla
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/artdeguzman.html artdeguzman]
| Arturo De Guzman
| 2007-12-23 08:41:13
|-
| [http://maemo.org/profile/view/artem_chuprina.html artem_chuprina]
| Artem Chuprina
| 2008-04-04 15:44:09
|-
| [http://maemo.org/profile/view/artexpo2.html artexpo2]
| zenek blus
| 2008-03-23 21:31:03
|-
| [http://maemo.org/profile/view/artglz.html artglz]
| arturo gonzalez
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/artgopi.html artgopi]
| Artur Pinheiro
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/arthudf.html arthudf]
| Arthur Camargo
| 2008-05-02 19:41:09
|-
| [http://maemo.org/profile/view/arthur.html arthur]
| arthur lutringer
| 2007-11-06 14:02:05
|-
| [http://maemo.org/profile/view/artoku.html artoku]
| arto kumpumäki
| 2007-10-17 18:40:29
|-
| [http://maemo.org/profile/view/artum.html artum]
| Yue Zhang
| 2007-05-18 19:12:29
|-
| [http://maemo.org/profile/view/arturpawel.html arturpawel]
| Artur Maczka
| 2008-04-22 16:41:10
|-
| [http://maemo.org/profile/view/artwind.html artwind]
| David Calley
| 2007-11-16 17:48:03
|-
| [http://maemo.org/profile/view/arunchowdhary.html arunchowdhary]
| arc kal
| 2008-02-23 21:31:03
|-
| [http://maemo.org/profile/view/arundba.html arundba]
| arunkumar raghavan
| 2008-02-08 00:32:24
|-
| [http://maemo.org/profile/view/arzik.html arzik]
| Ari Kaihola
| 2008-02-24 11:31:00
|-
| [http://maemo.org/profile/view/arzka.html arzka]
| Ari Saastamoinen
| 2007-10-19 15:40:31
|-
| [http://maemo.org/profile/view/asabil.html asabil]
| Ali Sabil
| 2007-10-19 16:40:34
|-
| [http://maemo.org/profile/view/asaleya.html asaleya]
| amr magdy
| 2008-04-17 20:41:15
|-
| [http://maemo.org/profile/view/asalvadori.html asalvadori]
| Andrea Salvadori
| 2007-11-15 07:55:50
|-
| [http://maemo.org/profile/view/asbradbury.html asbradbury]
| Alex Bradbury
| 2007-10-21 20:40:34
|-
| [http://maemo.org/profile/view/ascard.html ascard]
| ascard gg
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/ascherjim.html ascherjim]
| James Ascher
| 2007-09-04 06:50:15
|-
| [http://maemo.org/profile/view/aseems.html aseems]
| Aseem Shakuntal
| 2007-06-11 09:50:38
|-
| [http://maemo.org/profile/view/ashaf.html ashaf]
| Alexander S
| 2007-07-06 02:40:14
|-
| [http://maemo.org/profile/view/ashayh.html ashayh]
| Ashay Humane
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/ashbolt.html ashbolt]
| Nicholas Ashbolt
| 2007-11-19 09:01:24
|-
| [http://maemo.org/profile/view/ashfordc.html ashfordc]
| Clive Ashford
| 2007-10-30 04:40:36
|-
| [http://maemo.org/profile/view/ashik_n800.html ashik_n800]
| Ashik Hasan
| 2007-10-25 07:40:35
|-
| [http://maemo.org/profile/view/ashish.html ashish]
| Ashish Tandon
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/ashiverma.html ashiverma]
| Ashish Kumar
| 2008-01-18 09:31:04
|-
| [http://maemo.org/profile/view/ashokmp.html ashokmp]
| Ashok Padmanabhan
| 2007-11-02 17:40:36
|-
| [http://maemo.org/profile/view/ashokvakar.html ashokvakar]
| Ashok Kumar Reddy Vaka
| 2007-10-22 18:40:43
|-
| [http://maemo.org/profile/view/ashok_replies.html ashok_replies]
| Brian N
| 2007-10-29 20:40:36
|-
| [http://maemo.org/profile/view/ashsalvi.html ashsalvi]
| Ash Salvi
| 2007-05-18 19:12:19
|-
| [http://maemo.org/profile/view/ashtonbrsc.html ashtonbrsc]
| Michael Basil
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/ashwindsousa.html ashwindsousa]
| Ashwin Dsousa
| 2007-12-15 17:40:56
|-
| [http://maemo.org/profile/view/ashwinm.html ashwinm]
| Ashwin Mylavarapu
| 2008-02-28 14:31:06
|-
| [http://maemo.org/profile/view/ashwortr.html ashwortr]
| Robert Ashworth
| 2007-11-16 17:46:22
|-
| [http://maemo.org/profile/view/asikdasik.html asikdasik]
| Ana Temkin
| 2008-01-06 01:40:55
|-
| [http://maemo.org/profile/view/asisaac79.html asisaac79]
| Anil Isaac
| 2007-12-25 17:42:08
|-
| [http://maemo.org/profile/view/aska87.html aska87]
| Dewayne Lewis
| 2008-06-07 06:31:10
|-
| [http://maemo.org/profile/view/askforpraveen.html askforpraveen]
| praveen rajendra reddy
| 2007-11-16 17:47:53
|-
| [http://maemo.org/profile/view/askman.html askman]
| andrey kim
| 2007-05-23 10:51:01
|-
| [http://maemo.org/profile/view/aslakjo.html aslakjo]
| aslak johannessen
| 2008-02-08 09:31:26
|-
| [http://maemo.org/profile/view/asmig.html asmig]
| Kenny M
| 2007-07-04 21:40:17
|-
| [http://maemo.org/profile/view/asmodaous.html asmodaous]
| Patrick Mack
| 2008-01-23 00:33:10
|-
| [http://maemo.org/profile/view/asmok.html asmok]
| Asmo Koskinen
| 2007-05-18 19:11:33
|-
| [http://maemo.org/profile/view/asolis559.html asolis559]
| abigail solis
| 2008-01-08 14:40:58
|-
| [http://maemo.org/profile/view/aspia.html aspia]
| Lars Henriksen
| 2008-03-31 03:41:03
|-
| [http://maemo.org/profile/view/aspiegel.html aspiegel]
| Andy Spiegel
| 2007-05-18 19:12:25
|-
| [http://maemo.org/profile/view/aspiers.html aspiers]
| Adam Spiers
| 2007-12-20 22:41:55
|-
| [http://maemo.org/profile/view/aspirin5000.html aspirin5000]
| Pate Cortinas
| 2007-12-17 20:41:02
|-
| [http://maemo.org/profile/view/aspitz.html aspitz]
| Ayal Spitz
| 2007-10-18 18:40:30
|-
| [http://maemo.org/profile/view/aspnes.html aspnes]
| James Aspnes
| 2007-10-17 03:40:27
|-
| [http://maemo.org/profile/view/asquires.html asquires]
| wayne han
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/asqw.html asqw]
| Jeff Hew
| 2007-11-28 15:42:52
|-
| [http://maemo.org/profile/view/assa1980.html assa1980]
| ASSANI YACOUB MOHAMED
| 2008-02-12 14:33:13
|-
| [http://maemo.org/profile/view/assimovt.html assimovt]
| Tair Assimov
| 2007-05-18 19:13:05
|-
| [http://maemo.org/profile/view/astaronte.html astaronte]
| Manuel García
| 2008-04-20 22:41:36
|-
| [http://maemo.org/profile/view/asterisk770.html asterisk770]
| chai yingchao
| 2007-11-28 16:00:37
|-
| [http://maemo.org/profile/view/asteriskcyc.html asteriskcyc]
| chai yingchao
| 2007-11-30 10:48:59
|-
| [http://maemo.org/profile/view/astonish.html astonish]
| Aston Martin
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/astro.html astro]
| Albert Stro
| 2007-11-15 07:55:30
|-
| [http://maemo.org/profile/view/astromme.html astromme]
| Andrew Stromme
| 2007-12-31 15:41:05
|-
| [http://maemo.org/profile/view/asturcon.html asturcon]
| Asturcon Asturias
| 2007-12-23 23:41:35
|-
| [http://maemo.org/profile/view/asuncion.html asuncion]
| Asun Merino
| 2007-11-30 10:48:23
|-
| [http://maemo.org/profile/view/asuslik.html asuslik]
| Aleksey Sukhov
| 2008-02-04 07:31:09
|-
| [http://maemo.org/profile/view/aswarp.html aswarp]
| Alfonso de la Fuente
| 2007-05-18 19:11:32
|-
| [http://maemo.org/profile/view/asys3.html asys3]
| Uwe Koch
| 2007-10-18 20:40:33
|-
| [http://maemo.org/profile/view/atalavera.html atalavera]
| ALEJANDRO TALAVERA
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/atatem.html atatem]
| Alexis Tatem
| 2007-11-19 09:00:36
|-
| [http://maemo.org/profile/view/atboogaard.html atboogaard]
| Alexandra Boogaard
| 2008-02-08 19:41:22
|-
| [http://maemo.org/profile/view/atdomoko.html atdomoko]
| Attila Domokos
| 2007-05-18 19:11:15
|-
| [http://maemo.org/profile/view/atkarc.html atkarc]
| Attila Kokavecz
| 2008-03-28 17:31:08
|-
| [http://maemo.org/profile/view/atlas95.html atlas95]
| cyril levis
| 2007-12-17 12:40:50
|-
| [http://maemo.org/profile/view/atleta.html atleta]
| Laszlo Marai
| 2007-12-30 22:45:22
|-
| [http://maemo.org/profile/view/atmasphere.html atmasphere]
| Jonathan Greene
| 2007-05-18 19:12:03
|-
| [http://maemo.org/profile/view/atmchuck.html atmchuck]
| Chuck Miller
| 2007-12-29 16:41:07
|-
| [http://maemo.org/profile/view/atmoos42.html atmoos42]
| Sean Brogan
| 2007-12-22 20:41:43
|-
| [http://maemo.org/profile/view/atmos42.html atmos42]
| Sean Brogan
| 2007-12-22 20:41:43
|-
| [http://maemo.org/profile/view/atoku.html atoku]
| Anton Kulchitsky
| 2007-05-18 19:11:16
|-
| [http://maemo.org/profile/view/atomic.html atomic]
| Alpay YAMAN
| 2007-12-20 11:41:35
|-
| [http://maemo.org/profile/view/atomozero.html atomozero]
| Andrea Bernardi
| 2007-05-18 19:12:00
|-
| [http://maemo.org/profile/view/atorrico.html atorrico]
| Alberto Torrico García-Miña
| 2007-10-29 17:40:37
|-
| [http://maemo.org/profile/view/atos.html atos]
| Henry Yan
| 2007-11-19 09:01:25
|-
| [http://maemo.org/profile/view/atsvetkov.html atsvetkov]
| Anton Tsvetkov
| 2007-07-09 05:40:20
|-
| [http://maemo.org/profile/view/attilio.html attilio]
| locci cesare
| 2008-04-12 05:41:07
|-
| [http://maemo.org/profile/view/attinisoft.html attinisoft]
| Rolf Henrich
| 2007-10-22 13:40:33
|-
| [http://maemo.org/profile/view/atul.html atul]
| Atul Raut
| 2007-11-01 14:40:39
|-
| [http://maemo.org/profile/view/atulbhide.html atulbhide]
| Atul Bhide
| 2007-07-13 17:40:19
|-
| [http://maemo.org/profile/view/atuygun.html atuygun]
| atilla tuygun
| 2008-04-06 15:41:04
|-
| [http://maemo.org/profile/view/audijeep.html audijeep]
| Dan Demedeiros
| 2007-10-19 19:40:33
|-
| [http://maemo.org/profile/view/audio.html audio]
| Demian Martin
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/audioworld.html audioworld]
| Karl Petermichl
| 2007-11-16 17:47:47
|-
| [http://maemo.org/profile/view/augsteyer.html augsteyer]
| Konstantin Kiritsenko
| 2007-12-26 07:41:01
|-
| [http://maemo.org/profile/view/auguston.html auguston]
| Augusto Navarro
| 2007-06-11 17:30:43
|-
| [http://maemo.org/profile/view/auguston1.html auguston1]
| Augusto Navarro
| 2007-11-30 10:48:55
|-
| [http://maemo.org/profile/view/aulis.html aulis]
| Colin Alie
| 2008-04-26 03:45:26
|-
| [http://maemo.org/profile/view/aumdlsu.html aumdlsu]
| Wesley Greer
| 2007-11-16 17:47:47
|-
| [http://maemo.org/profile/view/aun.html aun]
| shawn anonymous
| 2007-12-11 16:25:41
|-
| [http://maemo.org/profile/view/aural.html aural]
| Richard Fahey
| 2007-10-27 18:40:36
|-
| [http://maemo.org/profile/view/aurel32.html aurel32]
| Aurélien Jarno
| 2007-11-02 18:40:35
|-
| [http://maemo.org/profile/view/aurora85.html aurora85]
| s fly
| 2008-04-16 02:51:14
|-
| [http://maemo.org/profile/view/aurthur_dent_99.html aurthur_dent_99]
| Aurthur Dent
| 2007-08-28 17:10:07
|-
| [http://maemo.org/profile/view/austin.html austin]
| Austin Che
| 2007-08-24 03:40:22
|-
| [http://maemo.org/profile/view/auxiliaire.html auxiliaire]
| Viktor Daróczi
| 2008-01-13 21:51:02
|-
| [http://maemo.org/profile/view/avallach.html avallach]
| Pawel Andrejas
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/avalon.html avalon]
| Avalon 12345
| 2007-05-18 19:11:39
|-
| [http://maemo.org/profile/view/ave.html ave]
| A Piers
| 2008-02-18 20:31:02
|-
| [http://maemo.org/profile/view/avel.html avel]
| Alexandros Vellis
| 2007-10-22 13:40:33
|-
| [http://maemo.org/profile/view/aveli.html aveli]
| vijay Aveligonda
| 2007-10-19 06:40:30
|-
| [http://maemo.org/profile/view/aver.html aver]
| Alex Aver
| 2007-05-18 19:14:02
|-
| [http://maemo.org/profile/view/averagejo.html averagejo]
| mike walker
| 2008-04-12 08:41:05
|-
| [http://maemo.org/profile/view/avi.html avi]
| Antonin Vit
| 2008-01-03 20:41:14
|-
| [http://maemo.org/profile/view/avidan.html avidan]
| Avidan Ross
| 2007-05-18 19:11:01
|-
| [http://maemo.org/profile/view/avijk.html avijk]
| Avi Karam
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/avilella.html avilella]
| Albert Vilella
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/avilkman.html avilkman]
| arto vilkman
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/avinashmagdum83.html avinashmagdum83]
| Avinash Magdum
| 2007-06-28 07:40:07
|-
| [http://maemo.org/profile/view/avoluka.html avoluka]
| Akulov Andrey
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/avramig.html avramig]
| avrami gross
| 2008-02-15 17:30:59
|-
| [http://maemo.org/profile/view/avs.html avs]
| Antti Vähä-Sipilä
| 2007-06-08 13:37:04
|-
| [http://maemo.org/profile/view/awalton.html awalton]
| A. Walton
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/award100.html award100]
| Ilias Bertsimas
| 2007-11-15 07:56:06
|-
| [http://maemo.org/profile/view/awmurrell91.html awmurrell91]
| Drew Murrell
| 2007-12-28 02:41:06
|-
| [http://maemo.org/profile/view/awsumdave.html awsumdave]
| David Gilleand
| 2007-11-16 17:46:57
|-
| [http://maemo.org/profile/view/axaman.html axaman]
| Aki Tamminen
| 2007-07-17 11:40:21
|-
| [http://maemo.org/profile/view/axeb110.html axeb110]
| Albin Oh
| 2008-05-15 02:41:09
|-
| [http://maemo.org/profile/view/axelfoleyml.html axelfoleyml]
| Axel Dittmann
| 2007-07-07 12:40:17
|-
| [http://maemo.org/profile/view/axelfro.html axelfro]
| Axel Fromell
| 2007-06-11 07:01:14
|-
| [http://maemo.org/profile/view/axioma.html axioma]
| axioma mind
| 2007-05-18 19:14:42
|-
| [http://maemo.org/profile/view/axique.html axique]
| Christoph Würstle
| 2007-05-18 19:11:06
|-
| [http://maemo.org/profile/view/axmed20044.html axmed20044]
| ahmed abdirisak
| 2008-01-31 06:31:21
|-
| [http://maemo.org/profile/view/ayaskant.html ayaskant]
| ayaskant sahu
| 2007-12-12 22:41:58
|-
| [http://maemo.org/profile/view/aychekay.html aychekay]
| Harlan
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/ayoze.html ayoze]
| Ayoze Roberto Bernardo
| 2007-10-18 13:40:30
|-
| [http://maemo.org/profile/view/ayre.html ayre]
| AYRE AYRE
| 2007-05-18 19:11:59
|-
| [http://maemo.org/profile/view/azathoth.html azathoth]
| Jordi Marrios Mendez
| 2007-10-19 13:40:37
|-
| [http://maemo.org/profile/view/azazel.html azazel]
| Alberto Berti
| 2007-10-22 11:40:33
|-
| [http://maemo.org/profile/view/azazello.html azazello]
| Andrey Yaromenok
| 2008-05-12 17:41:11
|-
| [http://maemo.org/profile/view/azeal.html azeal]
| Greg Christy
| 2007-05-18 19:11:02
|-
| [http://maemo.org/profile/view/azeledge.html azeledge]
| Tim Yee
| 2008-01-07 14:41:03
|-
| [http://maemo.org/profile/view/azelquiros.html azelquiros]
| AZQ ZQ
| 2008-02-22 20:31:01
|-
| [http://maemo.org/profile/view/azemute.html azemute]
| Zac Campbell
| 2008-02-05 15:32:32
|-
| [http://maemo.org/profile/view/azil.html azil]
| Azil Adi Permana
| 2007-10-24 06:40:36
|-
| [http://maemo.org/profile/view/aziz.html aziz]
| aziz alyahya
| 2008-05-18 19:41:26
|-
| [http://maemo.org/profile/view/azizsyr.html azizsyr]
| Abdulaziz El-SHihabi
| 2007-12-30 08:41:00
|-
| [http://maemo.org/profile/view/azjack520.html azjack520]
| jack baty
| 2007-09-15 00:40:11
|-
| [http://maemo.org/profile/view/azndownlow.html azndownlow]
| James Verdaguer
| 2007-12-24 23:41:11
|-
| [http://maemo.org/profile/view/azog.html azog]
| Bill DAugustine
| 2007-11-16 17:49:00
|-
| [http://maemo.org/profile/view/azstew.html azstew]
| Rick Stewart
| 2007-11-16 17:46:32
|-
| [http://maemo.org/profile/view/aztecthedog.html aztecthedog]
| Tuan Phan
| 2006-12-17 01:10:09
|-
| [http://maemo.org/profile/view/azzivar.html azzivar]
| Greg Ravizza
| 2007-11-28 15:43:47
|-
| [http://maemo.org/profile/view/azznprd.html azznprd]
| michael c
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/a_harju.html a_harju]
| Antti Harju
| 2008-01-28 15:41:53
|-
| [http://maemo.org/profile/view/a_logan.html a_logan]
| Andrew Logan
| 2007-07-05 18:40:11
|-
| [http://maemo.org/profile/view/b0ris.html b0ris]
| Boris Golovnev
| 2007-10-28 07:40:33
|-
| [http://maemo.org/profile/view/b0unc3.html b0unc3]
| Daniele Maio
| 2007-05-18 19:12:28
|-
| [http://maemo.org/profile/view/b0wtie.html b0wtie]
| Jarrad McInnes
| 2007-12-15 05:40:51
|-
| [http://maemo.org/profile/view/b1ackf0x.html b1ackf0x]
| f0x b1ack
| 2007-12-23 15:41:23
|-
| [http://maemo.org/profile/view/b1cq7.html b1cq7]
| isaac graham
| 2007-12-30 20:41:25
|-
| [http://maemo.org/profile/view/b2220128.html b2220128]
| Tom Peacock
| 2008-03-12 01:31:14
|-
| [http://maemo.org/profile/view/b3annex.html b3annex]
| toshio kuramata
| 2007-10-19 20:40:33
|-
| [http://maemo.org/profile/view/b3eck.html b3eck]
| Brandon Beck
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/b4u2r1.html b4u2r1]
| owen thomas
| 2008-02-10 01:31:21
|-
| [http://maemo.org/profile/view/b4uno8.html b4uno8]
| Marc Bremer
| 2007-11-16 17:48:56
|-
| [http://maemo.org/profile/view/b747mech.html b747mech]
| Craig Temple
| 2007-05-18 19:12:43
|-
| [http://maemo.org/profile/view/babaroga.html babaroga]
| darko dojin
| 2007-12-11 16:25:28
|-
| [http://maemo.org/profile/view/babasaki.html babasaki]
| seiichirou babasaki
| 2007-04-26 20:21:34
|-
| [http://maemo.org/profile/view/babelo.html babelo]
| Fabrice Crohas
| 2007-10-25 23:40:27
|-
| [http://maemo.org/profile/view/bablaet.html bablaet]
| Bab Laet
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/babygirler06.html babygirler06]
| shabreka wimberly
| 2008-01-13 21:51:02
|-
| [http://maemo.org/profile/view/babymonkey.html babymonkey]
| Gernot Rahn
| 2007-11-16 17:48:40
|-
| [http://maemo.org/profile/view/bac522.html bac522]
| b clark
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/bacchus1106.html bacchus1106]
| Micah Davis
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/bacdr78.html bacdr78]
| Didier OLOL
| 2007-10-19 16:40:33
|-
| [http://maemo.org/profile/view/bachemin.html bachemin]
| John Bachemin
| 2007-05-18 19:10:25
|-
| [http://maemo.org/profile/view/backpackerii.html backpackerii]
| Dan McCarthy
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/backspaces.html backspaces]
| Owen Densmore
| 2007-05-18 19:10:23
|-
| [http://maemo.org/profile/view/bacobb.html bacobb]
| Betty A Cobb
| 2008-02-28 19:30:58
|-
| [http://maemo.org/profile/view/bad.html bad]
| mansen meier
| 2007-11-16 17:46:56
|-
| [http://maemo.org/profile/view/badak.html badak]
| efe ogretmen
| 2007-05-29 09:30:34
|-
| [http://maemo.org/profile/view/badmacktuck.html badmacktuck]
| patrick mellinger
| 2007-11-16 17:46:40
|-
| [http://maemo.org/profile/view/badoc.html badoc]
| Miguel Galán
| 2007-05-18 19:11:55
|-
| [http://maemo.org/profile/view/badribha.html badribha]
| Badrul Ibrahim
| 2007-06-19 07:10:36
|-
| [http://maemo.org/profile/view/baholi.html baholi]
| Horst Bambula
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/bahram1.html bahram1]
| b nik
| 2007-10-18 20:40:33
|-
| [http://maemo.org/profile/view/baileje1.html baileje1]
| Jeff Bailey
| 2008-02-05 04:32:42
|-
| [http://maemo.org/profile/view/baileysaufeis.html baileysaufeis]
| ttttt kkkkkkk
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/baimbridge.html baimbridge]
| Timothy Williams
| 2007-11-16 17:49:02
|-
| [http://maemo.org/profile/view/baksiidaa.html baksiidaa]
| Matt Turner
| 2007-10-15 03:40:27
|-
| [http://maemo.org/profile/view/bakunin.html bakunin]
| Camarada Bakunin
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/balaji.html balaji]
| balaji l.n
| 2007-11-15 07:55:45
|-
| [http://maemo.org/profile/view/balaji_d.html balaji_d]
| balaji d
| 2007-06-19 13:40:21
|-
| [http://maemo.org/profile/view/balam.html balam]
| Abraham Arce
| 2008-03-14 02:31:04
|-
| [http://maemo.org/profile/view/baldoni.html baldoni]
| Matteo Baldoni
| 2008-05-05 09:41:09
|-
| [http://maemo.org/profile/view/baldric.html baldric]
| Clinton Smullen
| 2008-01-12 15:41:41
|-
| [http://maemo.org/profile/view/balerno.html balerno]
| Martin Eversfield
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/balfela.html balfela]
| Liam Balfe
| 2007-11-16 17:47:12
|-
| [http://maemo.org/profile/view/baliw.html baliw]
| Vesa Mikkola
| 2007-05-18 19:10:31
|-
| [http://maemo.org/profile/view/baliwae.html baliwae]
| I Made Sathyabudi Adnyana
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/ballyerbull.html ballyerbull]
| Frosty Jack
| 2007-11-16 17:48:42
|-
| [http://maemo.org/profile/view/baloo.html baloo]
| Jamie Bennett
| 2007-07-31 21:40:20
|-
| [http://maemo.org/profile/view/baloo588.html baloo588]
| TEJ DESAI
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/balrog.html balrog]
| Pavel Gusernov
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/balrog-kun.html balrog-kun]
| Andrzej Zaborowski
| 2008-01-28 12:32:33
|-
| [http://maemo.org/profile/view/bamberg29.html bamberg29]
| David Clubb
| 2007-10-18 19:40:42
|-
| [http://maemo.org/profile/view/bambos.html bambos]
| bambos bambou
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/bamdo.html bamdo]
| Sangmin Lee
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/bandi.html bandi]
| gusti andika
| 2007-05-18 19:12:53
|-
| [http://maemo.org/profile/view/bandit64.html bandit64]
| Perry Rubino
| 2007-10-31 02:40:39
|-
| [http://maemo.org/profile/view/banditrider.html banditrider]
| Joe McManus
| 2007-11-16 11:40:42
|-
| [http://maemo.org/profile/view/bandolo.html bandolo]
| Nicola Bandolin
| 2007-12-14 13:40:50
|-
| [http://maemo.org/profile/view/bandzdaddy.html bandzdaddy]
| Ted Aliado
| 2007-05-18 19:10:28
|-
| [http://maemo.org/profile/view/bang1000.html bang1000]
| bjoern kaas
| 2007-11-28 15:43:26
|-
| [http://maemo.org/profile/view/bangert.html bangert]
| Thilo Bangert
| 2007-10-21 09:40:33
|-
| [http://maemo.org/profile/view/banich.html banich]
| ricky bauer
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/banshee82.html banshee82]
| Davide Bettio
| 2007-10-22 10:40:34
|-
| [http://maemo.org/profile/view/bantah.html bantah]
| giorgio gori
| 2007-10-28 08:40:35
|-
| [http://maemo.org/profile/view/banux.html banux]
| bastien quelen
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/banyan.html banyan]
| Paul Burnett
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/baophuoc.html baophuoc]
| phuoc bao
| 2007-06-08 13:37:17
|-
| [http://maemo.org/profile/view/baramuse.html baramuse]
| Basile Mellac
| 2007-10-19 13:40:37
|-
| [http://maemo.org/profile/view/baraniello.html baraniello]
| Vincenzo Baraniello
| 2008-01-13 22:41:58
|-
| [http://maemo.org/profile/view/barbashov.html barbashov]
| Ilya Barbashov
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/barbieri.html barbieri]
| Gustavo Barbieri
| 2007-05-18 19:13:39
|-
| [http://maemo.org/profile/view/barevnej.html barevnej]
| barevnej barevnej
| 2007-05-18 19:13:13
|-
| [http://maemo.org/profile/view/bargepole.html bargepole]
| david cavanagh
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/baris.html baris]
| Baris Cicek
| 2007-10-19 19:40:32
|-
| [http://maemo.org/profile/view/barisione.html barisione]
| Marco Barisione
| 2007-10-18 16:40:18
|-
| [http://maemo.org/profile/view/baristabob.html baristabob]
| robert fisher
| 2007-07-07 13:40:10
|-
| [http://maemo.org/profile/view/barmstrong.html barmstrong]
| Bill Armstrong
| 2007-05-18 19:11:09
|-
| [http://maemo.org/profile/view/barnes1701.html barnes1701]
| Peter Barnes
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/barneycraggs.html barneycraggs]
| Barney Cragsg
| 2007-10-27 18:40:36
|-
| [http://maemo.org/profile/view/barniz.html barniz]
| Bernardo Pablo Martinez
| 2008-02-11 21:31:17
|-
| [http://maemo.org/profile/view/baro.html baro]
| Jesus A. Baro
| 2007-10-19 08:40:30
|-
| [http://maemo.org/profile/view/barront.html barront]
| t barron
| 2007-12-18 18:41:06
|-
| [http://maemo.org/profile/view/barrybennett.html barrybennett]
| Barry Bennett
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/barryboz.html barryboz]
| Barry Rucinski
| 2007-11-28 16:30:48
|-
| [http://maemo.org/profile/view/barrydt.html barrydt]
| Barry Toll
| 2007-12-28 00:40:45
|-
| [http://maemo.org/profile/view/bart.html bart]
| bart max
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/bartdesign.html bartdesign]
| Bart Brinkhuis
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/bartekk.html bartekk]
| bart k
| 2007-11-16 17:50:20
|-
| [http://maemo.org/profile/view/bartomeu.html bartomeu]
| Bartomeu Roig Martínez
| 2007-05-18 19:10:36
|-
| [http://maemo.org/profile/view/bartvanhoek.html bartvanhoek]
| bart hoek
| 2008-01-12 20:42:46
|-
| [http://maemo.org/profile/view/bary.html bary]
| bary saunders
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/basaravikiran.html basaravikiran]
| basa ravikiran
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/basia314.html basia314]
| Ron Bryson
| 2008-04-10 03:41:08
|-
| [http://maemo.org/profile/view/bassmaster.html bassmaster]
| Sean Rohde
| 2008-01-05 03:40:59
|-
| [http://maemo.org/profile/view/basti29d.html basti29d]
| Sebastian Drost
| 2007-11-16 17:49:38
|-
| [http://maemo.org/profile/view/bastosse.html bastosse]
| Sébastien HATCHI
| 2008-01-26 13:42:24
|-
| [http://maemo.org/profile/view/batch.html batch]
| Chris Batchilder
| 2008-04-24 00:41:20
|-
| [http://maemo.org/profile/view/batman2840.html batman2840]
| phil widdecombe
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/batofq.html batofq]
| Federico Bato
| 2008-02-16 00:31:02
|-
| [http://maemo.org/profile/view/batog50.html batog50]
| Anatoliy Fishbeyn
| 2008-06-10 04:31:20
|-
| [http://maemo.org/profile/view/batoo.html batoo]
| VIOT Fabrice
| 2007-10-22 07:40:35
|-
| [http://maemo.org/profile/view/battlemidget.html battlemidget]
| adam stokes
| 2008-02-20 01:31:10
|-
| [http://maemo.org/profile/view/baudwalk.html baudwalk]
| Kim Rasmussen
| 2008-02-26 06:31:01
|-
| [http://maemo.org/profile/view/baumgaro.html baumgaro]
| Robert Baumgartner
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/bautschdg.html bautschdg]
| Dennis Bautsch
| 2007-12-11 16:26:27
|-
| [http://maemo.org/profile/view/bavery123.html bavery123]
| Bill Avery
| 2007-11-16 17:46:48
|-
| [http://maemo.org/profile/view/bayareajohn.html bayareajohn]
| JOHN NAGY
| 2008-05-04 09:41:04
|-
| [http://maemo.org/profile/view/bayger.html bayger]
| Patryk Bajer
| 2007-07-16 18:40:18
|-
| [http://maemo.org/profile/view/bayk.html bayk]
| Andrew Black
| 2008-04-30 18:41:11
|-
| [http://maemo.org/profile/view/baynonee.html baynonee]
| aryeh shender
| 2007-04-04 08:16:22
|-
| [http://maemo.org/profile/view/bayouwillie.html bayouwillie]
| Rex Koontz
| 2008-01-13 15:42:23
|-
| [http://maemo.org/profile/view/bayowar.html bayowar]
| Philipp Dörner
| 2008-03-22 20:31:05
|-
| [http://maemo.org/profile/view/bayport.html bayport]
| RE HENDERSON
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/bazmi.html bazmi]
| bazmi husain
| 2007-11-16 17:49:18
|-
| [http://maemo.org/profile/view/bazz.html bazz]
| joe user
| 2008-01-24 04:32:25
|-
| [http://maemo.org/profile/view/bb0yfl1p3.html bb0yfl1p3]
| michael b
| 2007-11-16 17:46:23
|-
| [http://maemo.org/profile/view/bbader007.html bbader007]
| Bill Bader
| 2008-04-09 16:41:06
|-
| [http://maemo.org/profile/view/bballaddict.html bballaddict]
| richard rau
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/bbearmd2.html bbearmd2]
| Jerry Ward
| 2007-11-28 17:40:52
|-
| [http://maemo.org/profile/view/bbeatty.html bbeatty]
| Robert Beatty
| 2007-11-03 01:40:37
|-
| [http://maemo.org/profile/view/bbergman.html bbergman]
| Bruce Bergman
| 2007-10-29 22:40:37
|-
| [http://maemo.org/profile/view/bboilard.html bboilard]
| Robert Boilard
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/bbrfast.html bbrfast]
| Bill Radford
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/bbrodie.html bbrodie]
| Ben Brodie
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/bburd.html bburd]
| Barry Burd
| 2007-07-22 20:40:19
|-
| [http://maemo.org/profile/view/bbyte.html bbyte]
| Carroll Flora
| 2007-10-19 16:40:33
|-
| [http://maemo.org/profile/view/bc90021.html bc90021]
| Thomas Quinlan
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/bcabral.html bcabral]
| Bernardo Cabral
| 2007-10-19 07:40:30
|-
| [http://maemo.org/profile/view/bchapman.html bchapman]
| Ben Chapman
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/bchiang.html bchiang]
| bruce c
| 2007-11-28 15:43:37
|-
| [http://maemo.org/profile/view/bchuertas.html bchuertas]
| Borja Chicharro
| 2007-10-20 17:40:32
|-
| [http://maemo.org/profile/view/bcjenkins.html bcjenkins]
| Brandon Jenkins
| 2007-11-16 17:46:39
|-
| [http://maemo.org/profile/view/bclabeaux.html bclabeaux]
| Bryan Clabeaux
| 2007-10-22 00:40:42
|-
| [http://maemo.org/profile/view/bcow.html bcow]
| Antti Peltonen
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/bcsaba.html bcsaba]
| Bistey Csaba
| 2007-10-19 10:40:37
|-
| [http://maemo.org/profile/view/bcvthul.html bcvthul]
| Beert Chris van 't Hul
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/bdander.html bdander]
| Brent Andersen
| 2008-03-14 05:31:01
|-
| [http://maemo.org/profile/view/bdchua.html bdchua]
| Bernardo David Chua
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/bden.html bden]
| Bill Denson
| 2007-11-28 17:50:40
|-
| [http://maemo.org/profile/view/bdevlin.html bdevlin]
| Brad Devlin
| 2007-11-28 15:43:06
|-
| [http://maemo.org/profile/view/bdogg64.html bdogg64]
| B R
| 2007-12-31 02:41:02
|-
| [http://maemo.org/profile/view/bdsilver.html bdsilver]
| Barry Silver
| 2008-03-11 03:31:11
|-
| [http://maemo.org/profile/view/bduman.html bduman]
| bulent duman
| 2008-01-25 14:33:07
|-
| [http://maemo.org/profile/view/beachboybogart.html beachboybogart]
| Mike Riley
| 2008-06-02 23:41:13
|-
| [http://maemo.org/profile/view/beaker.html beaker]
| Michael Beacom
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/bear.html bear]
| Mike Taylor
| 2007-05-18 19:12:04
|-
| [http://maemo.org/profile/view/bearcat.html bearcat]
| Holly Hill
| 2008-03-07 01:31:32
|-
| [http://maemo.org/profile/view/beaukris.html beaukris]
| bo pars
| 2008-03-15 16:31:06
|-
| [http://maemo.org/profile/view/bebaer.html bebaer]
| BAER Jean-Marc
| 2007-05-18 19:14:08
|-
| [http://maemo.org/profile/view/bebetigno.html bebetigno]
| Piero Antonio Zecca
| 2007-10-23 09:40:33
|-
| [http://maemo.org/profile/view/bechard5456.html bechard5456]
| David Bechard
| 2007-11-16 17:46:31
|-
| [http://maemo.org/profile/view/beck907.html beck907]
| beck Hung
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/becorporate.html becorporate]
| Emmanuel BOUTEILLER
| 2008-01-21 19:32:04
|-
| [http://maemo.org/profile/view/bedouinboy.html bedouinboy]
| David Andrews
| 2008-05-18 06:41:07
|-
| [http://maemo.org/profile/view/beej.html beej]
| Marc Bejarano
| 2007-11-16 17:46:36
|-
| [http://maemo.org/profile/view/beel.html beel]
| john doe
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/beermad.html beermad]
| Tony Green
| 2007-08-13 19:40:31
|-
| [http://maemo.org/profile/view/beernut.html beernut]
| Mark Alston
| 2008-04-24 18:41:07
|-
| [http://maemo.org/profile/view/beesquivel.html beesquivel]
| Benjamin Esquivel
| 2007-07-02 22:40:22
|-
| [http://maemo.org/profile/view/beh5716.html beh5716]
| Bobby Hancock
| 2007-06-24 02:40:06
|-
| [http://maemo.org/profile/view/behumble.html behumble]
| Geon Goo
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/bejank.html bejank]
| Beth Azat
| 2007-12-26 15:51:49
|-
| [http://maemo.org/profile/view/bekecs.html bekecs]
| Gábor Békési
| 2008-03-19 09:31:02
|-
| [http://maemo.org/profile/view/bektas45.html bektas45]
| mehmet bektas
| 2007-11-16 17:47:45
|-
| [http://maemo.org/profile/view/bel.html bel]
| Stefan Kurtz-Rudloff
| 2007-10-23 15:50:39
|-
| [http://maemo.org/profile/view/bela.html bela]
| Proba Proba
| 2008-01-22 09:31:03
|-
| [http://maemo.org/profile/view/belanger.html belanger]
| Jay Belanger
| 2008-04-02 03:41:03
|-
| [http://maemo.org/profile/view/belder.html belder]
| Bill Ellder
| 2007-10-27 22:41:25
|-
| [http://maemo.org/profile/view/beldig.html beldig]
| Markus Beldig
| 2007-11-03 09:40:38
|-
| [http://maemo.org/profile/view/belgaroo.html belgaroo]
| Brad Evans
| 2008-02-08 09:31:26
|-
| [http://maemo.org/profile/view/bellau.html bellau]
| Laurent Belmonte
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/belloc.html belloc]
| Chuck Glidden
| 2008-03-12 15:31:19
|-
| [http://maemo.org/profile/view/belutz.html belutz]
| Andi Darmawan
| 2007-10-18 13:40:30
|-
| [http://maemo.org/profile/view/belwal.html belwal]
| Ravi Belwal
| 2007-11-16 17:48:15
|-
| [http://maemo.org/profile/view/bemari.html bemari]
| Esa Juntunen
| 2007-04-16 12:41:51
|-
| [http://maemo.org/profile/view/ben3185.html ben3185]
| benjamin katthöfer
| 2008-05-26 09:41:14
|-
| [http://maemo.org/profile/view/benakiva.html benakiva]
| Itzhak Ben-AKiva
| 2007-10-19 23:40:32
|-
| [http://maemo.org/profile/view/benares98.html benares98]
| James Lopez
| 2008-01-12 04:41:33
|-
| [http://maemo.org/profile/view/benben2000.html benben2000]
| Be ben
| 2007-12-25 03:41:06
|-
| [http://maemo.org/profile/view/bencer.html bencer]
| Jorge Salamero Sanz
| 2007-06-08 13:37:15
|-
| [http://maemo.org/profile/view/bendavies.html bendavies]
| Ben Davies
| 2007-12-19 10:41:00
|-
| [http://maemo.org/profile/view/bendonahue.html bendonahue]
| Ben Donahue
| 2007-11-15 07:54:59
|-
| [http://maemo.org/profile/view/bengtw.html bengtw]
| Bengt Wennerström
| 2008-03-17 21:31:06
|-
| [http://maemo.org/profile/view/benh.html benh]
| Benjamin Herrenschmidt
| 2008-05-05 05:41:13
|-
| [http://maemo.org/profile/view/benitoa.html benitoa]
| Benoit Asserin
| 2008-01-03 08:40:57
|-
| [http://maemo.org/profile/view/benj2007.html benj2007]
| Benjamin Escudero
| 2008-02-11 00:32:24
|-
| [http://maemo.org/profile/view/benjami.html benjami]
| Benjamí Villoslada
| 2007-05-18 19:12:23
|-
| [http://maemo.org/profile/view/benjamin_ng.html benjamin_ng]
| Benjamin Ng
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/benjholla.html benjholla]
| Ben Holland
| 2008-05-04 05:41:18
|-
| [http://maemo.org/profile/view/benjoe.html benjoe]
| Ben Clark
| 2007-05-18 19:11:44
|-
| [http://maemo.org/profile/view/benm.html benm]
| ben mooy
| 2007-05-18 19:11:42
|-
| [http://maemo.org/profile/view/bennux.html bennux]
| Marco Pichierri
| 2007-10-30 13:40:36
|-
| [http://maemo.org/profile/view/benoit.html benoit]
| Benoît De Backer
| 2007-10-29 22:40:36
|-
| [http://maemo.org/profile/view/benoit0123.html benoit0123]
| Benoît Gilon
| 2007-05-18 19:10:59
|-
| [http://maemo.org/profile/view/benoy.html benoy]
| Benoy George
| 2007-05-18 19:10:52
|-
| [http://maemo.org/profile/view/benslayton.html benslayton]
| Ben Slayton
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/benson.html benson]
| Benson Mitchell
| 2007-11-28 15:43:31
|-
| [http://maemo.org/profile/view/benster08.html benster08]
| b t
| 2008-05-25 01:51:35
|-
| [http://maemo.org/profile/view/bensterr.html bensterr]
| Bejamin Kavoossi
| 2007-12-11 16:26:00
|-
| [http://maemo.org/profile/view/benswayze.html benswayze]
| adam corr
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/benwah.html benwah]
| steve bennett
| 2008-01-28 05:31:07
|-
| [http://maemo.org/profile/view/benz145.html benz145]
| Ben Lang
| 2007-12-31 07:41:13
|-
| [http://maemo.org/profile/view/benzbenz.html benzbenz]
| bing liu
| 2008-01-04 07:41:13
|-
| [http://maemo.org/profile/view/ben_998.html ben_998]
| Ben Lai
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/ben_bambenek.html ben_bambenek]
| Ben Bambenek
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/ben_jiang.html ben_jiang]
| Ben Jiang
| 2007-11-28 17:22:02
|-
| [http://maemo.org/profile/view/bepp.html bepp]
| Stefan Bepplu
| 2007-05-18 19:11:41
|-
| [http://maemo.org/profile/view/beresina.html beresina]
| marc sieber
| 2007-05-18 19:12:51
|-
| [http://maemo.org/profile/view/berettashot117.html berettashot117]
| Will O'Bannon
| 2008-06-02 13:41:11
|-
| [http://maemo.org/profile/view/bergie.html bergie]
| Henri Bergius
| 2007-05-18 19:11:22
|-
| [http://maemo.org/profile/view/bergo.html bergo]
| Konrad Marek Zapalowicz
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/berimor.html berimor]
| Konstantin Bovsunovskiy
| 2008-01-04 14:41:26
|-
| [http://maemo.org/profile/view/berkandy.html berkandy]
| andrea malagoli
| 2007-10-23 16:40:35
|-
| [http://maemo.org/profile/view/berkant.html berkant]
| Berkant Bitim
| 2008-03-03 20:31:08
|-
| [http://maemo.org/profile/view/berlinpower.html berlinpower]
| Stefan Ritzi
| 2008-05-17 12:41:11
|-
| [http://maemo.org/profile/view/bernardlove.html bernardlove]
| bernie brown
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/berntsen.html berntsen]
| N. Berntsen
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/berto23.html berto23]
| Berto Melendez
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/bertux.html bertux]
| Bertrand Juglas
| 2007-12-11 16:25:33
|-
| [http://maemo.org/profile/view/berwan.html berwan]
| Bertrand Pivaty
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/bestis.html bestis]
| Jani Ollikainen
| 2007-10-24 17:41:02
|-
| [http://maemo.org/profile/view/beto4812.html beto4812]
| albeerto vazquez
| 2008-06-02 19:41:42
|-
| [http://maemo.org/profile/view/bettin-andrea.html bettin-andrea]
| Andrea Bettin
| 2007-12-16 16:40:56
|-
| [http://maemo.org/profile/view/bettywoo.html bettywoo]
| Betty Woo
| 2008-03-04 02:31:14
|-
| [http://maemo.org/profile/view/betulah.html betulah]
| Clayton Tapp
| 2007-12-18 01:41:34
|-
| [http://maemo.org/profile/view/betzilla.html betzilla]
| bettina pfeifer
| 2008-03-02 18:31:01
|-
| [http://maemo.org/profile/view/beww.html beww]
| Brian Wood
| 2007-11-16 17:47:33
|-
| [http://maemo.org/profile/view/bexley.html bexley]
| Christopher Becks
| 2007-12-13 06:40:50
|-
| [http://maemo.org/profile/view/bfhowell.html bfhowell]
| Burgess Howell
| 2007-11-16 17:47:56
|-
| [http://maemo.org/profile/view/bgander.html bgander]
| Barbara Anderson
| 2008-05-28 21:41:30
|-
| [http://maemo.org/profile/view/bge.html bge]
| Benoit Goudreault-Emond
| 2008-05-07 04:41:06
|-
| [http://maemo.org/profile/view/bgoines78.html bgoines78]
| Brian Goines
| 2008-03-02 08:31:03
|-
| [http://maemo.org/profile/view/bgood4000.html bgood4000]
| Jean Schoeters
| 2007-11-16 17:47:27
|-
| [http://maemo.org/profile/view/bgray42.html bgray42]
| Bill Gray
| 2008-03-16 04:31:04
|-
| [http://maemo.org/profile/view/bgross.html bgross]
| Bill Gross
| 2007-12-21 23:41:14
|-
| [http://maemo.org/profile/view/bhang.html bhang]
| matthew wehttam
| 2008-01-11 11:11:25
|-
| [http://maemo.org/profile/view/bhanupatial.html bhanupatial]
| Bhanu Patial
| 2007-12-22 22:52:52
|-
| [http://maemo.org/profile/view/bharad.html bharad]
| Ravi Bharadwaj
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/bhaskar.html bhaskar]
| bhaskar bhaskar
| 2008-01-26 17:31:27
|-
| [http://maemo.org/profile/view/bhaskerreddyr.html bhaskerreddyr]
| Bhasker Reddy
| 2007-06-11 10:52:28
|-
| [http://maemo.org/profile/view/bhavey.html bhavey]
| Brandon Havey
| 2007-07-04 18:40:09
|-
| [http://maemo.org/profile/view/bhcohen.html bhcohen]
| Bruce Cohen
| 2007-05-18 19:11:35
|-
| [http://maemo.org/profile/view/bherrmann7.html bherrmann7]
| bob herrmann
| 2007-07-02 16:50:17
|-
| [http://maemo.org/profile/view/bhulst.html bhulst]
| bob hulst
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/bhupesh.html bhupesh]
| Bhupesh Kharwa
| 2007-11-16 17:47:53
|-
| [http://maemo.org/profile/view/biasquez.html biasquez]
| Marco Biasco
| 2007-10-22 06:40:32
|-
| [http://maemo.org/profile/view/bichir.html bichir]
| bichir bichir
| 2008-02-17 23:31:01
|-
| [http://maemo.org/profile/view/bicklien47.html bicklien47]
| bickli lafortune
| 2007-11-16 17:48:16
|-
| [http://maemo.org/profile/view/biedro.html biedro]
| Marcin Biedroń
| 2007-05-18 19:12:38
|-
| [http://maemo.org/profile/view/bienemeier.html bienemeier]
| steffi meier
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/bigamps.html bigamps]
| Joel Street
| 2007-12-30 06:40:51
|-
| [http://maemo.org/profile/view/bigbaycny.html bigbaycny]
| tim benson
| 2007-12-17 20:41:02
|-
| [http://maemo.org/profile/view/bigbob.html bigbob]
| BigBob Fun
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/bigboy0918.html bigboy0918]
| yang cheng
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/bigboy1019.html bigboy1019]
| Yang Cheng
| 2008-03-11 13:31:06
|-
| [http://maemo.org/profile/view/bigbug.html bigbug]
| Alexandre Boeglin
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/bigburkefamily.html bigburkefamily]
| James Burke
| 2007-10-23 16:40:34
|-
| [http://maemo.org/profile/view/bigdaddie.html bigdaddie]
| Steve Lawrence
| 2007-11-16 17:46:38
|-
| [http://maemo.org/profile/view/bigdeer.html bigdeer]
| chengjun wu
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/bigdewil.html bigdewil]
| zecqin bigdewil
| 2008-04-12 22:41:21
|-
| [http://maemo.org/profile/view/bigdreams.html bigdreams]
| Bishal Raj Karki
| 2008-05-02 20:41:11
|-
| [http://maemo.org/profile/view/biggatings.html biggatings]
| Michael Matalon
| 2007-05-18 19:11:54
|-
| [http://maemo.org/profile/view/biggdee33.html biggdee33]
| destry ogden
| 2008-03-03 02:30:59
|-
| [http://maemo.org/profile/view/bigkeen.html bigkeen]
| Matt Keener
| 2007-12-11 16:24:09
|-
| [http://maemo.org/profile/view/biglar44.html biglar44]
| Larry Underwood
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/bigpuppy.html bigpuppy]
| BigPuppy BigPuppy
| 2007-07-09 05:40:21
|-
| [http://maemo.org/profile/view/bigred66.html bigred66]
| Eric Roberts
| 2007-07-12 20:40:11
|-
| [http://maemo.org/profile/view/bigstew.html bigstew]
| Big Stew
| 2007-11-16 17:47:56
|-
| [http://maemo.org/profile/view/bigtallack.html bigtallack]
| Keith Ackerman
| 2007-11-16 17:47:25
|-
| [http://maemo.org/profile/view/bigvic.html bigvic]
| Victor Soud Jr.
| 2008-01-02 14:41:01
|-
| [http://maemo.org/profile/view/bigwasp.html bigwasp]
| Anton Hummel
| 2008-03-25 10:31:07
|-
| [http://maemo.org/profile/view/bigwave.html bigwave]
| Ian Fraser
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/big_dawg.html big_dawg]
| Cotie Jones
| 2007-11-16 17:47:53
|-
| [http://maemo.org/profile/view/bihailanpo.html bihailanpo]
| bihailanpo bihailanpo
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/bijjal.html bijjal]
| Soumya Bijjal
| 2007-07-16 11:40:18
|-
| [http://maemo.org/profile/view/bikerpoet.html bikerpoet]
| William Morris
| 2007-12-27 06:40:57
|-
| [http://maemo.org/profile/view/bilboed.html bilboed]
| Edward Hervey
| 2007-10-19 08:40:30
|-
| [http://maemo.org/profile/view/billbeau.html billbeau]
| bill pfleging
| 2007-12-31 17:40:57
|-
| [http://maemo.org/profile/view/billc.html billc]
| Bill Cutts
| 2008-02-28 02:31:02
|-
| [http://maemo.org/profile/view/billc124.html billc124]
| William Curran
| 2007-07-11 01:40:18
|-
| [http://maemo.org/profile/view/billdrone.html billdrone]
| bill black
| 2007-05-18 19:10:42
|-
| [http://maemo.org/profile/view/billehunt.html billehunt]
| Bill Hunt
| 2008-02-10 09:31:25
|-
| [http://maemo.org/profile/view/billg.html billg]
| bill gross
| 2007-12-24 20:41:18
|-
| [http://maemo.org/profile/view/billgano.html billgano]
| Bill Gano
| 2007-05-18 19:10:38
|-
| [http://maemo.org/profile/view/billhamr.html billhamr]
| William Hammontree
| 2007-11-16 17:47:49
|-
| [http://maemo.org/profile/view/billlewan.html billlewan]
| Bill Lewan
| 2008-01-10 11:41:14
|-
| [http://maemo.org/profile/view/billsb.html billsb]
| Brenton Bills
| 2007-05-23 05:29:47
|-
| [http://maemo.org/profile/view/billyhut.html billyhut]
| William L hutchison Sr
| 2008-03-01 05:31:01
|-
| [http://maemo.org/profile/view/billykart.html billykart]
| Billy McPaul
| 2008-02-07 09:31:15
|-
| [http://maemo.org/profile/view/bill_mcgonigle.html bill_mcgonigle]
| Bill McGonigle
| 2008-02-12 17:31:30
|-
| [http://maemo.org/profile/view/bilofsky.html bilofsky]
| Walt Bilofsky
| 2007-12-28 00:41:15
|-
| [http://maemo.org/profile/view/bilsbury.html bilsbury]
| Andrew Bilsbury
| 2007-05-18 19:12:48
|-
| [http://maemo.org/profile/view/binaryplanet.html binaryplanet]
| david sunil
| 2008-03-25 10:31:05
|-
| [http://maemo.org/profile/view/bindesekk.html bindesekk]
| alec mcdaniel
| 2007-10-14 22:40:28
|-
| [http://maemo.org/profile/view/binh8051.html binh8051]
| binh doan
| 2007-11-16 17:48:57
|-
| [http://maemo.org/profile/view/binhara.html binhara]
| Alessandro Binhara
| 2007-10-24 00:40:32
|-
| [http://maemo.org/profile/view/binnell.html binnell]
| glyn binnell
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/binsoo2003.html binsoo2003]
| ben kim
| 2008-05-31 17:41:11
|-
| [http://maemo.org/profile/view/biobronch.html biobronch]
| Andreas Winter
| 2007-10-22 11:40:33
|-
| [http://maemo.org/profile/view/biomimetic.html biomimetic]
| Marcus Cole
| 2007-11-15 07:55:44
|-
| [http://maemo.org/profile/view/biophysics.html biophysics]
| Karthik Karthik
| 2007-12-20 18:41:18
|-
| [http://maemo.org/profile/view/bios.html bios]
| Tobias Lange
| 2008-02-26 02:31:45
|-
| [http://maemo.org/profile/view/biotic.html biotic]
| Mark Baker
| 2007-11-05 08:40:36
|-
| [http://maemo.org/profile/view/biotics.html biotics]
| John Edwards
| 2007-11-03 10:40:39
|-
| [http://maemo.org/profile/view/biquillo.html biquillo]
| Victor Diaz
| 2007-10-30 17:40:36
|-
| [http://maemo.org/profile/view/birdrock.html birdrock]
| SON SANG-IL
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/biren22.html biren22]
| biren shah
| 2008-01-18 13:31:45
|-
| [http://maemo.org/profile/view/biris.html biris]
| Ilias Biris
| 2007-10-22 21:40:34
|-
| [http://maemo.org/profile/view/birjan.html birjan]
| claudio isaac
| 2008-05-24 17:41:11
|-
| [http://maemo.org/profile/view/birneyw.html birneyw]
| Walt Birney
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/birzhevik.html birzhevik]
| Eueniy Ivanov
| 2007-12-11 16:24:54
|-
| [http://maemo.org/profile/view/bishal.html bishal]
| Bishal Raj Karki
| 2008-05-03 19:41:07
|-
| [http://maemo.org/profile/view/bishop.html bishop]
| David Quigley
| 2007-12-11 22:41:48
|-
| [http://maemo.org/profile/view/biskit.html biskit]
| Tom Buckley
| 2007-10-19 20:40:33
|-
| [http://maemo.org/profile/view/bit101.html bit101]
| Keith Peters
| 2008-02-29 19:31:03
|-
| [http://maemo.org/profile/view/bitc0re.html bitc0re]
| Nelio Lima
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/bitdragon.html bitdragon]
| Wolfgang Kienreich
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/bitfiddler.html bitfiddler]
| George Chamberlain
| 2008-06-10 02:31:17
|-
| [http://maemo.org/profile/view/bitlooter.html bitlooter]
| Edmond Kemokai
| 2007-04-05 15:25:39
|-
| [http://maemo.org/profile/view/bitmage.html bitmage]
| Brian Daniels
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/bitmanglr.html bitmanglr]
| Dean Harrington
| 2008-06-06 17:43:07
|-
| [http://maemo.org/profile/view/bitneuro.html bitneuro]
| Neuromancer Bit
| 2007-11-16 17:48:25
|-
| [http://maemo.org/profile/view/bitten.html bitten]
| Claus Bitten
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/bittercreek.html bittercreek]
| ken humble
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/bittinen.html bittinen]
| Mika Leppinen
| 2007-05-21 13:43:30
|-
| [http://maemo.org/profile/view/bitzilla.html bitzilla]
| minjun xi
| 2008-03-27 04:31:13
|-
| [http://maemo.org/profile/view/bit_junkie.html bit_junkie]
| bit junkie
| 2007-11-03 03:40:39
|-
| [http://maemo.org/profile/view/bizshop.html bizshop]
| steve veltkamp
| 2007-11-16 17:46:56
|-
| [http://maemo.org/profile/view/bizzle1984.html bizzle1984]
| daniel hornsby
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/bj139.html bj139]
| William Jones
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/bjanz.html bjanz]
| Burt Janz
| 2008-01-11 14:41:00
|-
| [http://maemo.org/profile/view/bjerardino.html bjerardino]
| Bruno Jerardino-Wiesenborn
| 2007-11-28 15:43:26
|-
| [http://maemo.org/profile/view/bjiang.html bjiang]
| Ben Jiang
| 2007-11-16 17:48:24
|-
| [http://maemo.org/profile/view/bjimba.html bjimba]
| Jim Russell
| 2008-01-30 04:31:33
|-
| [http://maemo.org/profile/view/bjmyers.html bjmyers]
| Barry Myers
| 2007-05-18 19:11:50
|-
| [http://maemo.org/profile/view/bjoernflorack.html bjoernflorack]
| bjoern florack
| 2008-03-20 20:31:03
|-
| [http://maemo.org/profile/view/bjpitts.html bjpitts]
| bj pitts
| 2007-07-11 21:40:17
|-
| [http://maemo.org/profile/view/bjw777.html bjw777]
| Ben Ward
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/bjwhite3114.html bjwhite3114]
| Brian White
| 2008-01-26 13:42:23
|-
| [http://maemo.org/profile/view/bk2.html bk2]
| Brian Klemm
| 2007-05-23 05:29:34
|-
| [http://maemo.org/profile/view/bkader.html bkader]
| Ben ABDELKADER
| 2007-10-19 11:40:11
|-
| [http://maemo.org/profile/view/bkaufman2008.html bkaufman2008]
| Barry Kaufman
| 2008-02-14 20:31:15
|-
| [http://maemo.org/profile/view/bkc.html bkc]
| brad clements
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/bkelley9.html bkelley9]
| Ben Kelley
| 2007-12-18 22:41:44
|-
| [http://maemo.org/profile/view/bkharu.html bkharu]
| paul aquino
| 2007-12-18 04:40:52
|-
| [http://maemo.org/profile/view/bknycguy1.html bknycguy1]
| corey darrell
| 2008-03-29 05:31:06
|-
| [http://maemo.org/profile/view/bkor.html bkor]
| Olav vitters
| 2007-10-19 13:40:33
|-
| [http://maemo.org/profile/view/bkortleven.html bkortleven]
| bram kortleven
| 2008-01-11 12:41:08
|-
| [http://maemo.org/profile/view/bkruse.html bkruse]
| Brandon Kruse
| 2008-01-20 03:32:11
|-
| [http://maemo.org/profile/view/blachner.html blachner]
| Bernd Lachner
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/blackcat.html blackcat]
| Konstantin Melentiev
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/blackdragonzero.html blackdragonzero]
| Mario Garcia
| 2007-11-16 17:47:48
|-
| [http://maemo.org/profile/view/blackjam.html blackjam]
| Jakub Černý
| 2008-03-22 23:31:04
|-
| [http://maemo.org/profile/view/blackopz.html blackopz]
| MOe D
| 2007-11-16 17:47:41
|-
| [http://maemo.org/profile/view/blackrider.html blackrider]
| Petr Ketner
| 2007-11-16 17:48:15
|-
| [http://maemo.org/profile/view/blackspot.html blackspot]
| aaa zzz
| 2008-01-20 15:31:17
|-
| [http://maemo.org/profile/view/blackwood.html blackwood]
| B C
| 2008-01-14 13:51:07
|-
| [http://maemo.org/profile/view/black_sheep.html black_sheep]
| Matteo Marchesotti
| 2007-05-18 19:12:10
|-
| [http://maemo.org/profile/view/blake.html blake]
| Blake Lewis
| 2007-07-02 18:40:16
|-
| [http://maemo.org/profile/view/blakepmiller.html blakepmiller]
| blake miller
| 2008-02-18 19:31:10
|-
| [http://maemo.org/profile/view/blaqueknight.html blaqueknight]
| Edrick McKnight
| 2007-12-27 23:41:20
|-
| [http://maemo.org/profile/view/blassphemy.html blassphemy]
| Patrick Blass
| 2008-05-16 11:41:09
|-
| [http://maemo.org/profile/view/blauhung.html blauhung]
| Tony Narciso
| 2008-03-28 04:31:03
|-
| [http://maemo.org/profile/view/blazerw.html blazerw]
| Randy Wilson
| 2007-06-19 21:40:19
|-
| [http://maemo.org/profile/view/bldewolf.html bldewolf]
| Brian De Wolf
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/bleclaire.html bleclaire]
| bruce leclaire
| 2008-01-11 11:11:24
|-
| [http://maemo.org/profile/view/bleek.html bleek]
| Bobby Kurtz
| 2007-12-21 19:41:40
|-
| [http://maemo.org/profile/view/bleibow.html bleibow]
| Barry Leibowicz
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/blertie2.html blertie2]
| Bert Payne
| 2007-06-19 07:10:36
|-
| [http://maemo.org/profile/view/bleuelune8.html bleuelune8]
| Ryan Bibb
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/blindfollower.html blindfollower]
| blind follower
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/blindgaenger.html blindgaenger]
| Bernd Jünger
| 2008-02-22 18:31:02
|-
| [http://maemo.org/profile/view/blizzardville.html blizzardville]
| Brett Nelson
| 2008-01-06 08:40:57
|-
| [http://maemo.org/profile/view/blkhawk.html blkhawk]
| Falk Bergman
| 2007-10-20 20:40:31
|-
| [http://maemo.org/profile/view/blkmajik.html blkmajik]
| Shawn Michael
| 2007-11-28 15:43:47
|-
| [http://maemo.org/profile/view/blogodioseryo.html blogodioseryo]
| Marcos Fuertes
| 2007-11-28 15:43:18
|-
| [http://maemo.org/profile/view/blond88.html blond88]
| Claudio Spallone
| 2007-11-16 17:48:18
|-
| [http://maemo.org/profile/view/blondysinger.html blondysinger]
| Francesco Colucci
| 2007-10-30 10:40:36
|-
| [http://maemo.org/profile/view/bloodbare.html bloodbare]
| Ramon Navarro Bosch
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/bls.html bls]
| Mike Filonov
| 2008-02-01 13:31:03
|-
| [http://maemo.org/profile/view/blue.html blue]
| Ciaran Downey
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/blue4dia.html blue4dia]
| Eunryung LEe
| 2007-05-18 19:13:49
|-
| [http://maemo.org/profile/view/blue4j.html blue4j]
| Joe Blue
| 2007-10-16 01:40:30
|-
| [http://maemo.org/profile/view/blueatria.html blueatria]
| Eric Korhonen
| 2008-04-27 03:41:07
|-
| [http://maemo.org/profile/view/bluedigits.html bluedigits]
| Roland Krikava
| 2007-05-18 19:10:30
|-
| [http://maemo.org/profile/view/bluedog.html bluedog]
| Tom Formosa
| 2007-11-02 00:40:36
|-
| [http://maemo.org/profile/view/bluedream.html bluedream]
| zhang qingshan
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/bluegene.html bluegene]
| vicente garcia diez
| 2007-05-18 19:13:32
|-
| [http://maemo.org/profile/view/bluehash.html bluehash]
| Gerard S
| 2007-11-16 17:47:47
|-
| [http://maemo.org/profile/view/bluehub.html bluehub]
| jaesung kwon
| 2007-07-05 04:40:17
|-
| [http://maemo.org/profile/view/bluemonk.html bluemonk]
| Tomasz Jarosik
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/blueoxygen.html blueoxygen]
| Erwin Kristanto
| 2007-07-12 07:40:04
|-
| [http://maemo.org/profile/view/blueplasma.html blueplasma]
| Kenji Yamamoto
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/bluescreen.html bluescreen]
| Thorsten Erdmann
| 2007-10-16 21:40:31
|-
| [http://maemo.org/profile/view/bluesincenew.html bluesincenew]
| David Hathaway
| 2007-12-21 05:40:57
|-
| [http://maemo.org/profile/view/bluesmind.html bluesmind]
| Andy Loewe
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/bluespyder.html bluespyder]
| Chuck Lee
| 2007-05-18 19:12:34
|-
| [http://maemo.org/profile/view/bluestarsapp.html bluestarsapp]
| fritze meier
| 2008-04-19 21:41:14
|-
| [http://maemo.org/profile/view/bluestory.html bluestory]
| Toni Nichev
| 2007-11-16 17:49:47
|-
| [http://maemo.org/profile/view/bluesubaru.html bluesubaru]
| Paul Dippel
| 2008-01-17 01:41:39
|-
| [http://maemo.org/profile/view/bluetoo.html bluetoo]
| Mike Emmett
| 2007-11-16 17:48:03
|-
| [http://maemo.org/profile/view/bluetooth.html bluetooth]
| Seppo Pakarinen
| 2007-11-16 17:48:15
|-
| [http://maemo.org/profile/view/bluice101.html bluice101]
| deborah walker
| 2007-11-28 15:43:37
|-
| [http://maemo.org/profile/view/blumf7.html blumf7]
| Scott Morgan
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/blurg.html blurg]
| Stian Lastname
| 2007-10-27 18:40:35
|-
| [http://maemo.org/profile/view/blutenue.html blutenue]
| Salvatore Regina
| 2007-12-24 13:41:17
|-
| [http://maemo.org/profile/view/blyon.html blyon]
| Robert Lyon
| 2007-12-17 23:41:11
|-
| [http://maemo.org/profile/view/bmarett.html bmarett]
| Bruce Marett
| 2007-10-20 14:40:33
|-
| [http://maemo.org/profile/view/bmarks.html bmarks]
| bennett marks
| 2008-03-20 02:31:06
|-
| [http://maemo.org/profile/view/bmastenbrook.html bmastenbrook]
| Brian Mastenbrook
| 2008-03-25 12:31:21
|-
| [http://maemo.org/profile/view/bmathews.html bmathews]
| bert mathews
| 2008-01-15 12:50:58
|-
| [http://maemo.org/profile/view/bmcmillen.html bmcmillen]
| Brian McMillen
| 2007-11-16 17:47:59
|-
| [http://maemo.org/profile/view/bmd14.html bmd14]
| jamel bouch
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/bmg.html bmg]
| Bob McGhee
| 2007-12-11 16:25:09
|-
| [http://maemo.org/profile/view/bmhonline.html bmhonline]
| brian hird
| 2007-05-18 19:13:05
|-
| [http://maemo.org/profile/view/bmidgley.html bmidgley]
| Brad Midgley
| 2007-05-18 19:14:12
|-
| [http://maemo.org/profile/view/bmikey.html bmikey]
| mike buls
| 2007-07-03 22:40:11
|-
| [http://maemo.org/profile/view/bmilam.html bmilam]
| Bill Milam
| 2007-12-20 05:41:57
|-
| [http://maemo.org/profile/view/bmmmeup.html bmmmeup]
| Scott Maichel
| 2007-07-08 07:40:10
|-
| [http://maemo.org/profile/view/bmoe.html bmoe]
| Brian Moe
| 2007-12-11 16:25:07
|-
| [http://maemo.org/profile/view/bmorgenthaler.html bmorgenthaler]
| Brenden Morgenthaler
| 2007-10-17 22:40:26
|-
| [http://maemo.org/profile/view/bmy.html bmy]
| Brett Young
| 2008-03-06 22:31:07
|-
| [http://maemo.org/profile/view/bnumbers71.html bnumbers71]
| Bret numbers
| 2008-03-04 15:31:02
|-
| [http://maemo.org/profile/view/bnunez.html bnunez]
| Ben Nunez
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/boatspeed.html boatspeed]
| Dave Spragg
| 2007-11-16 17:49:30
|-
| [http://maemo.org/profile/view/bob3.html bob3]
| robert thiry
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/bob318.html bob318]
| robin hung
| 2007-11-15 07:55:41
|-
| [http://maemo.org/profile/view/bob810.html bob810]
| Ralf Chrobok
| 2008-05-12 16:41:12
|-
| [http://maemo.org/profile/view/bobb.html bobb]
| bob b
| 2007-11-28 15:43:45
|-
| [http://maemo.org/profile/view/bobbiecobley.html bobbiecobley]
| Beverley Cobley
| 2008-03-21 17:31:04
|-
| [http://maemo.org/profile/view/bobby001.html bobby001]
| Frédéric VIGOT
| 2007-10-19 13:40:32
|-
| [http://maemo.org/profile/view/bobbygbreeze.html bobbygbreeze]
| Bobby Breeze
| 2007-11-16 17:49:22
|-
| [http://maemo.org/profile/view/bobcan22.html bobcan22]
| Robert Cannatelli
| 2008-03-24 06:31:03
|-
| [http://maemo.org/profile/view/bobcanna.html bobcanna]
| Robert Cannataro
| 2007-05-18 19:10:55
|-
| [http://maemo.org/profile/view/bobdeloyd.html bobdeloyd]
| Robert Deloyd
| 2007-05-18 19:11:50
|-
| [http://maemo.org/profile/view/bobf4321.html bobf4321]
| Bob Fillmore
| 2007-05-18 19:12:20
|-
| [http://maemo.org/profile/view/bobglenn.html bobglenn]
| robert glenn
| 2008-02-01 19:31:54
|-
| [http://maemo.org/profile/view/bobgray.html bobgray]
| Bob Gray
| 2007-10-20 17:40:33
|-
| [http://maemo.org/profile/view/bobgus.html bobgus]
| Bob Gustafson
| 2007-11-16 17:50:07
|-
| [http://maemo.org/profile/view/bobik.html bobik]
| Bobik Novak
| 2007-12-12 00:40:49
|-
| [http://maemo.org/profile/view/bobka.html bobka]
| Vlad secret
| 2008-02-04 10:31:35
|-
| [http://maemo.org/profile/view/bobleo.html bobleo]
| Robert Motsch
| 2007-05-18 19:12:53
|-
| [http://maemo.org/profile/view/boblinds.html boblinds]
| Bob Lindstrom
| 2007-07-03 08:40:11
|-
| [http://maemo.org/profile/view/bobman21.html bobman21]
| Robert Rosenbaum
| 2007-11-16 17:47:34
|-
| [http://maemo.org/profile/view/bobonopolis.html bobonopolis]
| Bob French
| 2008-02-15 18:31:00
|-
| [http://maemo.org/profile/view/bobpaul.html bobpaul]
| Paul Klapperich
| 2007-05-18 19:10:46
|-
| [http://maemo.org/profile/view/bobsol.html bobsol]
| Bob Solomon
| 2007-05-18 19:12:45
|-
| [http://maemo.org/profile/view/bob_2101.html bob_2101]
| Bob Davis
| 2008-04-03 08:41:04
|-
| [http://maemo.org/profile/view/bob_chen88.html bob_chen88]
| Robert Chen
| 2007-12-11 16:25:21
|-
| [http://maemo.org/profile/view/boco.html boco]
| b oco
| 2007-07-21 23:40:13
|-
| [http://maemo.org/profile/view/boda.html boda]
| BoDa BoDa
| 2007-05-18 19:10:54
|-
| [http://maemo.org/profile/view/bodger.html bodger]
| Simon Appleby
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/bodkin.html bodkin]
| James Last
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/bodom81.html bodom81]
| Vincenzo Ciancaglini
| 2007-10-23 08:40:40
|-
| [http://maemo.org/profile/view/boffin.html boffin]
| Vladimir Gusev
| 2007-10-18 07:40:28
|-
| [http://maemo.org/profile/view/bofh.html bofh]
| BOFH BOFH
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/bofr.html bofr]
| braulio fabian
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/bogadan.html bogadan]
| Yeongmok You
| 2007-05-29 09:30:41
|-
| [http://maemo.org/profile/view/bogdan.html bogdan]
| bogdan ragulij
| 2008-02-02 10:31:33
|-
| [http://maemo.org/profile/view/bogdanov_a.html bogdanov_a]
| Andrey Bogdanov
| 2008-03-08 20:31:07
|-
| [http://maemo.org/profile/view/bogmihail.html bogmihail]
| Mihail Bogdanovich
| 2008-03-01 00:30:58
|-
| [http://maemo.org/profile/view/bogranlund.html bogranlund]
| Bo Granlund
| 2007-08-14 12:40:21
|-
| [http://maemo.org/profile/view/bohaalmi.html bohaalmi]
| Bogdan Gosporarczyk
| 2007-11-16 17:48:59
|-
| [http://maemo.org/profile/view/bojas08.html bojas08]
| bojas bojas
| 2007-12-11 16:25:05
|-
| [http://maemo.org/profile/view/bokehfr.html bokehfr]
| Stephane bokeh
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/bold1342.html bold1342]
| david boldra
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/boldie.html boldie]
| joel berglund
| 2007-05-18 19:13:16
|-
| [http://maemo.org/profile/view/boltrix.html boltrix]
| Adriano Marques
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/bombay0612.html bombay0612]
| Jerry Turta
| 2008-05-03 05:41:06
|-
| [http://maemo.org/profile/view/bonabob.html bonabob]
| Robert Fedderwitz
| 2007-11-16 17:49:38
|-
| [http://maemo.org/profile/view/bonanote.html bonanote]
| Guillermo Bona
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/bonasse.html bonasse]
| John Bonasse
| 2007-07-05 18:40:12
|-
| [http://maemo.org/profile/view/bones.html bones]
| Sergio Melas
| 2007-05-21 13:43:17
|-
| [http://maemo.org/profile/view/bongmunoz.html bongmunoz]
| Bong Munoz
| 2007-11-16 17:49:23
|-
| [http://maemo.org/profile/view/bonnardp.html bonnardp]
| pierre bonnard
| 2007-12-17 22:41:23
|-
| [http://maemo.org/profile/view/boobu469.html boobu469]
| dung la
| 2007-07-10 05:40:11
|-
| [http://maemo.org/profile/view/boofhiggs.html boofhiggs]
| Yves Chen
| 2007-10-19 16:40:34
|-
| [http://maemo.org/profile/view/booiiing.html booiiing]
| Patric Schenke
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/bookman761.html bookman761]
| frank garner
| 2007-12-17 19:41:04
|-
| [http://maemo.org/profile/view/boon9680.html boon9680]
| BoonHwee Tan
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/bootbootcar.html bootbootcar]
| bootboot car
| 2007-12-17 09:40:51
|-
| [http://maemo.org/profile/view/bootdoc120.html bootdoc120]
| charlie bradley
| 2008-03-21 15:31:08
|-
| [http://maemo.org/profile/view/booyah5.html booyah5]
| Karen Wilson
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/bopfer.html bopfer]
| Bryan Opfer
| 2007-11-16 17:47:04
|-
| [http://maemo.org/profile/view/borbor.html borbor]
| matt winslow
| 2007-12-11 16:25:33
|-
| [http://maemo.org/profile/view/boriska.html boriska]
| boriska boriska
| 2008-03-20 20:31:05
|-
| [http://maemo.org/profile/view/boristsr.html boristsr]
| boris tsr
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/boris_the_blade.html boris_the_blade]
| Martin Persson
| 2007-11-19 14:41:51
|-
| [http://maemo.org/profile/view/bormotov.html bormotov]
| Vladimir Bormotov
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/bornfree13.html bornfree13]
| D Miller
| 2008-05-08 06:41:05
|-
| [http://maemo.org/profile/view/borsic.html borsic]
| Boris Legradic
| 2008-03-17 14:31:06
|-
| [http://maemo.org/profile/view/bosartig.html bosartig]
| jerry mize
| 2008-05-18 17:41:10
|-
| [http://maemo.org/profile/view/bosc.html bosc]
| didier bosc
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/bousch.html bousch]
| Boudewijn Schrader
| 2007-10-31 21:40:36
|-
| [http://maemo.org/profile/view/bouvin.html bouvin]
| Niels Olof Bouvin
| 2007-11-16 17:49:17
|-
| [http://maemo.org/profile/view/bownsaway.html bownsaway]
| keith bown
| 2007-05-18 19:12:03
|-
| [http://maemo.org/profile/view/bowser0001.html bowser0001]
| Matthew O'Brien
| 2007-11-15 07:56:25
|-
| [http://maemo.org/profile/view/boxer188.html boxer188]
| Syed Asifulla
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/boxofsnoo.html boxofsnoo]
| Jonathan Markevich
| 2007-12-23 22:42:08
|-
| [http://maemo.org/profile/view/boychichi.html boychichi]
| Qi Ouyang
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/boyhand.html boyhand]
| David Boyhan
| 2007-10-18 19:40:41
|-
| [http://maemo.org/profile/view/boylin.html boylin]
| Michael Weston
| 2007-11-15 07:55:52
|-
| [http://maemo.org/profile/view/boyplankton.html boyplankton]
| Vincent Marcus
| 2007-10-19 19:40:33
|-
| [http://maemo.org/profile/view/boz.html boz]
| Juuso Korhonen
| 2008-05-09 10:41:07
|-
| [http://maemo.org/profile/view/bpa.html bpa]
| bryan Alton
| 2007-10-31 08:40:37
|-
| [http://maemo.org/profile/view/bpatr.html bpatr]
| bab bab
| 2007-05-18 19:11:34
|-
| [http://maemo.org/profile/view/bpfoot.html bpfoot]
| Bill Proudfoot
| 2007-12-11 16:26:17
|-
| [http://maemo.org/profile/view/bphynes.html bphynes]
| Byron Hynes
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/bpwrutgrink.html bpwrutgrink]
| Bernard Rutgrink
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/bpyxq.html bpyxq]
| bp yxq
| 2007-11-16 17:47:34
|-
| [http://maemo.org/profile/view/bradb.html bradb]
| Brad Burleson
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/bradl.html bradl]
| brad porter
| 2008-05-29 03:41:11
|-
| [http://maemo.org/profile/view/bradtaylor.html bradtaylor]
| Brad Taylor
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/bradtravels.html bradtravels]
| brad sulewski
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/bragon.html bragon]
| Marc de Courville
| 2008-02-15 16:30:12
|-
| [http://maemo.org/profile/view/brain.html brain]
| michae keiner
| 2007-11-04 15:40:38
|-
| [http://maemo.org/profile/view/braino.html braino]
| Steve Brown
| 2008-02-25 03:32:29
|-
| [http://maemo.org/profile/view/brandon242139.html brandon242139]
| Brandon McCants
| 2007-05-18 19:10:50
|-
| [http://maemo.org/profile/view/brandonrhoads.html brandonrhoads]
| Brandon Rhoads
| 2007-06-08 13:37:13
|-
| [http://maemo.org/profile/view/bratsche.html bratsche]
| Cody Russell
| 2007-10-29 16:40:34
|-
| [http://maemo.org/profile/view/brauliofabian.html brauliofabian]
| braulio fabian
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/braveslice.html braveslice]
| Tilli Kaalimato
| 2007-06-01 00:01:34
|-
| [http://maemo.org/profile/view/brave_lau.html brave_lau]
| Yong Liu
| 2008-05-14 06:41:06
|-
| [http://maemo.org/profile/view/braz918.html braz918]
| christian brazier
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/brazhe.html brazhe]
| Alexey Brazhe
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/brazilianboy.html brazilianboy]
| Lucas Pires Camargo
| 2008-01-18 22:31:39
|-
| [http://maemo.org/profile/view/brchen.html brchen]
| Bor-rong Chen
| 2007-05-30 20:31:00
|-
| [http://maemo.org/profile/view/breakwell.html breakwell]
| john breakwell
| 2008-04-10 04:41:05
|-
| [http://maemo.org/profile/view/brecklundin.html brecklundin]
| Breck Lundin
| 2008-02-05 19:31:29
|-
| [http://maemo.org/profile/view/breiner.html breiner]
| Jan Breinholt.org
| 2007-05-18 19:14:17
|-
| [http://maemo.org/profile/view/brelse.html brelse]
| I.B Hyman
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/bren1304.html bren1304]
| Brenda Tuazon
| 2008-03-26 16:31:07
|-
| [http://maemo.org/profile/view/brendacous.html brendacous]
| Brenda Cousino
| 2008-02-26 04:31:01
|-
| [http://maemo.org/profile/view/brendan.html brendan]
| Brendan Cully
| 2007-05-18 19:11:09
|-
| [http://maemo.org/profile/view/brendan4.html brendan4]
| brendan smith
| 2007-05-18 19:11:46
|-
| [http://maemo.org/profile/view/brenduh.html brenduh]
| Brenda Smith
| 2007-06-27 21:40:08
|-
| [http://maemo.org/profile/view/brenlla.html brenlla]
| Roberto Brenlla
| 2007-05-18 19:13:59
|-
| [http://maemo.org/profile/view/brennall.html brennall]
| David Johnston
| 2007-07-04 13:40:16
|-
| [http://maemo.org/profile/view/brentleedragon.html brentleedragon]
| Brent Hickman
| 2008-04-01 03:41:03
|-
| [http://maemo.org/profile/view/bretta.html bretta]
| Brett Arends
| 2007-05-18 19:12:18
|-
| [http://maemo.org/profile/view/brhoads.html brhoads]
| brandon Rhoads
| 2007-04-16 12:41:53
|-
| [http://maemo.org/profile/view/bri1410.html bri1410]
| brian sandberg
| 2008-01-11 11:11:24
|-
| [http://maemo.org/profile/view/brian007.html brian007]
| Brian Miller
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/brianchicago.html brianchicago]
| Brian Bauer
| 2007-10-22 03:40:36
|-
| [http://maemo.org/profile/view/brianj.html brianj]
| Brian Jones
| 2007-12-22 11:41:13
|-
| [http://maemo.org/profile/view/brianjdoherty.html brianjdoherty]
| Brian Doherty
| 2008-03-04 16:31:12
|-
| [http://maemo.org/profile/view/brianna25.html brianna25]
| Brianna Hart
| 2007-05-18 19:13:37
|-
| [http://maemo.org/profile/view/brice.html brice]
| Brice Hamon
| 2007-05-29 15:40:38
|-
| [http://maemo.org/profile/view/bricha.html bricha]
| Alexander Brichkin
| 2008-02-09 03:32:37
|-
| [http://maemo.org/profile/view/briget.html briget]
| opy gomes
| 2007-11-28 18:51:40
|-
| [http://maemo.org/profile/view/briglia.html briglia]
| Anderson Briglia
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/brilca.html brilca]
| carlos bril
| 2007-11-28 15:43:20
|-
| [http://maemo.org/profile/view/brjaan.html brjaan]
| Jaan Sass
| 2008-01-05 19:22:02
|-
| [http://maemo.org/profile/view/bro0ke.html bro0ke]
| b. r.
| 2007-12-11 16:23:02
|-
| [http://maemo.org/profile/view/brocky59.html brocky59]
| phil brockbank
| 2007-05-18 19:11:04
|-
| [http://maemo.org/profile/view/broder.html broder]
| Evan Broder
| 2008-04-09 07:41:06
|-
| [http://maemo.org/profile/view/brodersalsa.html brodersalsa]
| Broder Salsa
| 2007-05-18 19:10:33
|-
| [http://maemo.org/profile/view/brodseba.html brodseba]
| Sébastien Brodeur
| 2007-05-18 19:12:20
|-
| [http://maemo.org/profile/view/broesel.html broesel]
| Dominik R.
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/brookheather.html brookheather]
| Simon Heather
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/brookiemonsta.html brookiemonsta]
| John Brook
| 2008-01-04 20:41:10
|-
| [http://maemo.org/profile/view/brooks.html brooks]
| Ishmael Braggs
| 2007-12-26 13:41:01
|-
| [http://maemo.org/profile/view/brooney.html brooney]
| Bryan Rooney
| 2008-03-27 17:31:10
|-
| [http://maemo.org/profile/view/broonie.html broonie]
| Mark Brown
| 2007-05-18 19:10:25
|-
| [http://maemo.org/profile/view/broter.html broter]
| bob elliott
| 2007-05-18 19:10:37
|-
| [http://maemo.org/profile/view/brown-n.html brown-n]
| Nick Brown
| 2008-01-23 21:31:29
|-
| [http://maemo.org/profile/view/brownie.html brownie]
| Phil Knight
| 2008-01-21 19:32:05
|-
| [http://maemo.org/profile/view/bruce.html bruce]
| Bruce Adams
| 2007-10-29 17:40:36
|-
| [http://maemo.org/profile/view/bruce48125.html bruce48125]
| george nicikowski
| 2008-02-15 00:30:57
|-
| [http://maemo.org/profile/view/bruce89.html bruce89]
| Bruce Cowan
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/brucedenney.html brucedenney]
| Bruce Denney
| 2007-11-16 17:49:21
|-
| [http://maemo.org/profile/view/brucel.html brucel]
| Bruce Long
| 2007-10-19 03:40:34
|-
| [http://maemo.org/profile/view/brucerob.html brucerob]
| Bruce Robertson
| 2008-02-19 03:31:00
|-
| [http://maemo.org/profile/view/bruce_fine.html bruce_fine]
| bruce gao
| 2007-10-20 03:40:31
|-
| [http://maemo.org/profile/view/brucinsk.html brucinsk]
| Barry Rucinski
| 2007-11-30 10:48:57
|-
| [http://maemo.org/profile/view/brumma.html brumma]
| Christopher LeGrand
| 2007-07-08 14:40:21
|-
| [http://maemo.org/profile/view/brunoabinader.html brunoabinader]
| Bruno Abinader
| 2007-05-18 19:14:32
|-
| [http://maemo.org/profile/view/brunov25.html brunov25]
| bruno vernier
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/brutisww.html brutisww]
| mark hutchison
| 2008-05-09 00:42:06
|-
| [http://maemo.org/profile/view/brwatters.html brwatters]
| brian watters
| 2007-11-19 09:01:14
|-
| [http://maemo.org/profile/view/bryanarr.html bryanarr]
| Bryan Rapisura
| 2008-01-22 09:31:11
|-
| [http://maemo.org/profile/view/bryanbrough.html bryanbrough]
| Bryan Brough
| 2008-03-07 13:31:04
|-
| [http://maemo.org/profile/view/bscbmd997.html bscbmd997]
| Chua Kheong
| 2008-03-13 03:31:06
|-
| [http://maemo.org/profile/view/bschreiner.html bschreiner]
| Bernd Schreiner
| 2007-11-05 13:20:54
|-
| [http://maemo.org/profile/view/bselk.html bselk]
| Barry Selk
| 2008-01-11 11:11:26
|-
| [http://maemo.org/profile/view/bshellenbaum.html bshellenbaum]
| Bruce Shellenbaum
| 2007-11-30 10:49:36
|-
| [http://maemo.org/profile/view/bsiv.html bsiv]
| Balaji Sivaraman
| 2007-05-18 19:11:19
|-
| [http://maemo.org/profile/view/bsmmaemo.html bsmmaemo]
| Brian Miranda
| 2007-11-30 10:49:37
|-
| [http://maemo.org/profile/view/bsnavely.html bsnavely]
| Bud snavely
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/bsrmaemo.html bsrmaemo]
| Ramesh BS
| 2007-11-30 10:48:14
|-
| [http://maemo.org/profile/view/bsterix.html bsterix]
| - -
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/bstern.html bstern]
| Ben Stern
| 2007-11-16 17:47:46
|-
| [http://maemo.org/profile/view/bswarm.html bswarm]
| Dave Bouchonnet
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/bsw_m.html bsw_m]
| Alexey Petrovich
| 2008-01-27 19:31:39
|-
| [http://maemo.org/profile/view/btauto.html btauto]
| brandon hinsdale
| 2007-05-18 19:13:11
|-
| [http://maemo.org/profile/view/btb.html btb]
| Bradley Bell
| 2008-03-07 00:31:06
|-
| [http://maemo.org/profile/view/btmec.html btmec]
| Brian Hilbern
| 2007-10-19 01:40:32
|-
| [http://maemo.org/profile/view/btnh23.html btnh23]
| jarno storhammar
| 2008-06-06 14:41:13
|-
| [http://maemo.org/profile/view/btokars.html btokars]
| Bruce Tokars
| 2007-06-29 13:40:09
|-
| [http://maemo.org/profile/view/buaasrf.html buaasrf]
| Sun Ruifeng
| 2008-03-02 13:31:03
|-
| [http://maemo.org/profile/view/buarco.html buarco]
| manuel de abreu
| 2007-05-18 19:13:03
|-
| [http://maemo.org/profile/view/bublik.html bublik]
| Max Bublikoff
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/buce.html buce]
| buce wiliam
| 2007-05-05 11:55:44
|-
| [http://maemo.org/profile/view/buchi.html buchi]
| Gabriel Bucher
| 2007-10-21 05:40:32
|-
| [http://maemo.org/profile/view/buchinho.html buchinho]
| Sebastian Buch
| 2007-11-16 17:47:33
|-
| [http://maemo.org/profile/view/buck0182.html buck0182]
| Mike Owens
| 2007-11-01 23:40:38
|-
| [http://maemo.org/profile/view/buckler.html buckler]
| Dan Buckler
| 2007-12-11 22:41:47
|-
| [http://maemo.org/profile/view/buddy.html buddy]
| S Duncan
| 2007-10-19 00:40:52
|-
| [http://maemo.org/profile/view/buddymigs.html buddymigs]
| Migs Hipolito
| 2008-02-11 02:32:13
|-
| [http://maemo.org/profile/view/budks.html budks]
| Buddhika Siddhisena
| 2007-11-15 07:56:14
|-
| [http://maemo.org/profile/view/buffalosoldier.html buffalosoldier]
| Firdaus Aziz
| 2007-10-19 23:40:32
|-
| [http://maemo.org/profile/view/buffi66.html buffi66]
| Burkhard Buehner
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/bug2.html bug2]
| Wim Kevenaar
| 2007-10-23 07:40:34
|-
| [http://maemo.org/profile/view/buggsy2.html buggsy2]
| Bob Fry
| 2007-07-15 14:40:19
|-
| [http://maemo.org/profile/view/bugpv.html bugpv]
| pPhil VelDink
| 2008-04-22 16:41:10
|-
| [http://maemo.org/profile/view/bugsking.html bugsking]
| Bugs King
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/bugzilla.html bugzilla]
| Bugzilla User
| 2008-05-08 19:41:07
|-
| [http://maemo.org/profile/view/bukubuku.html bukubuku]
| Luke Lin
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/bulik.html bulik]
| Michal Bulant
| 2007-11-16 17:47:19
|-
| [http://maemo.org/profile/view/bull.html bull]
| Sébastien RAMOS
| 2007-06-12 14:43:56
|-
| [http://maemo.org/profile/view/bulldoggys8.html bulldoggys8]
| george nicikowski
| 2007-12-26 22:41:26
|-
| [http://maemo.org/profile/view/bunanson.html bunanson]
| anson bun
| 2007-11-30 10:48:41
|-
| [http://maemo.org/profile/view/bunansonli.html bunansonli]
| bun anson
| 2007-11-28 18:10:46
|-
| [http://maemo.org/profile/view/bundyo.html bundyo]
| Kamen Bundev
| 2007-12-31 08:40:58
|-
| [http://maemo.org/profile/view/bunnyfly.html bunnyfly]
| Bunnyfly Autumn
| 2007-11-16 17:47:34
|-
| [http://maemo.org/profile/view/buntoaster.html buntoaster]
| bun lin
| 2008-04-28 19:41:09
|-
| [http://maemo.org/profile/view/burbridge.html burbridge]
| Austin Burbridge
| 2008-02-26 09:31:06
|-
| [http://maemo.org/profile/view/burdara.html burdara]
| ilia burdara
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/burger.html burger]
| Philippe Kalaf
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/burger_.html burger_]
| Birger Hedman
| 2008-05-21 15:41:07
|-
| [http://maemo.org/profile/view/burggraf2.html burggraf2]
| Mark Burggraf
| 2007-12-26 00:41:24
|-
| [http://maemo.org/profile/view/burner23.html burner23]
| Daniel Rebei
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/burnside36.html burnside36]
| Alistair McLennan
| 2007-11-05 17:40:40
|-
| [http://maemo.org/profile/view/burque.html burque]
| Winter Laite
| 2007-04-05 15:25:37
|-
| [http://maemo.org/profile/view/burra9.html burra9]
| Sai Burra
| 2007-12-11 17:41:04
|-
| [http://maemo.org/profile/view/burstowl.html burstowl]
| lee burstow
| 2008-04-18 15:41:05
|-
| [http://maemo.org/profile/view/butchie.html butchie]
| François Bonnet
| 2008-03-03 19:31:01
|-
| [http://maemo.org/profile/view/butlerca.html butlerca]
| chris butler
| 2007-10-19 16:40:34
|-
| [http://maemo.org/profile/view/butuyokumania.html butuyokumania]
| akeda kaz
| 2007-12-11 16:25:15
|-
| [http://maemo.org/profile/view/buz.html buz]
| Buz Stewart
| 2007-11-16 17:47:45
|-
| [http://maemo.org/profile/view/bvsciguy.html bvsciguy]
| Ben V
| 2007-12-14 03:40:49
|-
| [http://maemo.org/profile/view/bwaffles1791.html bwaffles1791]
| William Mulligan
| 2007-01-17 14:20:08
|-
| [http://maemo.org/profile/view/bwana.html bwana]
| Ayman Abdallah
| 2008-04-15 21:41:11
|-
| [http://maemo.org/profile/view/bwayson.html bwayson]
| Bill Wayson
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/bwlinux.html bwlinux]
| Brian Walters
| 2007-05-18 19:11:54
|-
| [http://maemo.org/profile/view/bwonderlich.html bwonderlich]
| Brian W
| 2008-02-18 03:30:58
|-
| [http://maemo.org/profile/view/bwoo.html bwoo]
| Benjamin Woo
| 2007-06-21 11:40:06
|-
| [http://maemo.org/profile/view/bwooce.html bwooce]
| Bruce Fitzsimons
| 2007-11-15 07:55:54
|-
| [http://maemo.org/profile/view/bwrich.html bwrich]
| Brian Rich
| 2007-06-26 19:40:06
|-
| [http://maemo.org/profile/view/bxrydah2004.html bxrydah2004]
| Bokul Miah
| 2008-02-20 22:31:00
|-
| [http://maemo.org/profile/view/bybybartle.html bybybartle]
| ore lio
| 2007-11-16 17:47:06
|-
| [http://maemo.org/profile/view/byron426.html byron426]
| Jorge Rivera
| 2008-03-15 20:31:02
|-
| [http://maemo.org/profile/view/byte.html byte]
| Eoin Rogers
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/byteless.html byteless]
| Asim Manzur
| 2007-10-16 14:40:26
|-
| [http://maemo.org/profile/view/bytoz.html bytoz]
| Pierpaolo Tozzi
| 2007-10-19 05:40:31
|-
| [http://maemo.org/profile/view/byzza32.html byzza32]
| byzza silva
| 2008-02-09 09:31:03
|-
| [http://maemo.org/profile/view/bz10692002.html bz10692002]
| 聰文 劉
| 2007-06-08 13:37:15
|-
| [http://maemo.org/profile/view/bzchickin.html bzchickin]
| Aaron Verhoeven
| 2008-03-01 04:31:00
|-
| [http://maemo.org/profile/view/bzolnier.html bzolnier]
| Bartlomiej Zolnierkiewicz
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/b_ana89.html b_ana89]
| Brian Ana
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/c0ffee.html c0ffee]
| Jochen Eisinger
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/c0psrul3.html c0psrul3]
| mike n.
| 2008-01-02 05:40:56
|-
| [http://maemo.org/profile/view/c73.html c73]
| antonio carli
| 2007-10-22 15:40:33
|-
| [http://maemo.org/profile/view/ca28326.html ca28326]
| Rodney Roehrle
| 2007-11-28 15:43:11
|-
| [http://maemo.org/profile/view/cabbagepatch.html cabbagepatch]
| dm ma
| 2008-05-12 22:41:17
|-
| [http://maemo.org/profile/view/cabbie.html cabbie]
| steve davenport
| 2008-03-07 03:31:04
|-
| [http://maemo.org/profile/view/cabisson.html cabisson]
| Corey Bisson
| 2007-11-16 17:49:05
|-
| [http://maemo.org/profile/view/cacalde.html cacalde]
| Camilo Calderon
| 2007-10-22 19:40:35
|-
| [http://maemo.org/profile/view/cactus777.html cactus777]
| Ron Arsenault
| 2007-11-28 18:10:18
|-
| [http://maemo.org/profile/view/cactus7770.html cactus7770]
| Ron Arsenault
| 2007-11-16 17:49:21
|-
| [http://maemo.org/profile/view/cadmaster.html cadmaster]
| John Wilson
| 2007-11-16 17:48:15
|-
| [http://maemo.org/profile/view/caeppa.html caeppa]
| Luca Battistoni
| 2008-02-15 09:31:01
|-
| [http://maemo.org/profile/view/caesargus.html caesargus]
| August Malson
| 2008-05-06 23:41:25
|-
| [http://maemo.org/profile/view/cai.html cai]
| Brandon Cash
| 2007-10-21 01:40:37
|-
| [http://maemo.org/profile/view/caioduilio.html caioduilio]
| Michele La Rocca
| 2007-10-23 23:40:28
|-
| [http://maemo.org/profile/view/caiosousa.html caiosousa]
| caio sousa
| 2007-05-18 19:12:08
|-
| [http://maemo.org/profile/view/cairn.html cairn]
| Cai Maver
| 2007-10-23 04:40:34
|-
| [http://maemo.org/profile/view/caiserx.html caiserx]
| Eddie Cruz
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/cake.html cake]
| Sergey Ryzhkov
| 2008-02-07 21:43:07
|-
| [http://maemo.org/profile/view/cal.html cal]
| bill jones
| 2007-05-18 19:12:17
|-
| [http://maemo.org/profile/view/calamitie.html calamitie]
| Michael McNeela
| 2008-01-01 00:40:54
|-
| [http://maemo.org/profile/view/calboyankfan1.html calboyankfan1]
| Brandon Grodski
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/calca.html calca]
| gianluigi calcaterra
| 2007-10-19 13:40:37
|-
| [http://maemo.org/profile/view/calcifer.html calcifer]
| calcifer calc
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/cald.html cald]
| Marcos Lara
| 2008-02-10 07:31:01
|-
| [http://maemo.org/profile/view/caldweb.html caldweb]
| Blake Caldwell
| 2007-12-27 06:40:58
|-
| [http://maemo.org/profile/view/caleb.html caleb]
| Caleb Hewitt
| 2007-05-18 19:12:53
|-
| [http://maemo.org/profile/view/calipsio.html calipsio]
| Denis Burkin
| 2008-04-11 12:41:04
|-
| [http://maemo.org/profile/view/calitidexvii.html calitidexvii]
| Bryce James
| 2007-11-16 17:48:01
|-
| [http://maemo.org/profile/view/callesto.html callesto]
| Jeremy Taylor
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/calogeroe82.html calogeroe82]
| calogeroe manfredy
| 2008-03-22 16:31:04
|-
| [http://maemo.org/profile/view/calvinbq.html calvinbq]
| Brendan Quinn
| 2008-04-29 15:41:05
|-
| [http://maemo.org/profile/view/camarzan.html camarzan]
| Carmelo Marzano
| 2008-01-27 18:31:30
|-
| [http://maemo.org/profile/view/cambba.html cambba]
| Samuli Järvelä
| 2007-10-17 06:40:28
|-
| [http://maemo.org/profile/view/camel.html camel]
| Rob Williams
| 2008-03-24 01:31:16
|-
| [http://maemo.org/profile/view/camenspinn.html camenspinn]
| Christopher Amen-Kroeger
| 2007-11-15 22:01:05
|-
| [http://maemo.org/profile/view/camerabike.html camerabike]
| Mark Shankel
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/camerong.html camerong]
| Cameron Goble
| 2008-02-09 02:31:05
|-
| [http://maemo.org/profile/view/camh.html camh]
| Cameron Hutchison
| 2008-02-28 23:31:01
|-
| [http://maemo.org/profile/view/camilo.html camilo]
| juan ramirez
| 2008-04-02 17:40:06
|-
| [http://maemo.org/profile/view/camiloepp.html camiloepp]
| camilo perez
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/caminophaze.html caminophaze]
| joe cffrey
| 2007-05-18 19:13:09
|-
| [http://maemo.org/profile/view/camu.html camu]
| Gerlando Termini
| 2007-10-29 16:40:36
|-
| [http://maemo.org/profile/view/canatella.html canatella]
| Damien Merenne
| 2007-10-23 14:40:36
|-
| [http://maemo.org/profile/view/cancubadam.html cancubadam]
| adam fox
| 2008-01-23 04:31:15
|-
| [http://maemo.org/profile/view/candell.html candell]
| Louis Candell
| 2007-05-18 19:12:26
|-
| [http://maemo.org/profile/view/candy.html candy]
| Sai Burra
| 2007-12-11 16:26:31
|-
| [http://maemo.org/profile/view/cangott.html cangott]
| Cristian Angotti
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/canogq.html canogq]
| Gil Quintana
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/cansev.html cansev]
| CANSEV TUMER
| 2007-11-16 17:49:19
|-
| [http://maemo.org/profile/view/cantes.html cantes]
| dody cantes
| 2007-05-18 19:11:01
|-
| [http://maemo.org/profile/view/canyouscore.html canyouscore]
| V Humphrey
| 2007-11-28 15:43:25
|-
| [http://maemo.org/profile/view/caperdog.html caperdog]
| andy barclay
| 2007-12-25 22:41:45
|-
| [http://maemo.org/profile/view/capslock.html capslock]
| cAPSLOCK (James Johnson)
| 2007-05-18 19:10:44
|-
| [http://maemo.org/profile/view/captainigloo.html captainigloo]
| Nicolas Aguirre
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/captainjoe.html captainjoe]
| joe regnier
| 2007-11-30 10:49:31
|-
| [http://maemo.org/profile/view/captainzerocool.html captainzerocool]
| Tyler D
| 2007-11-15 07:56:02
|-
| [http://maemo.org/profile/view/capuera.html capuera]
| aziz abdel
| 2008-03-05 13:31:04
|-
| [http://maemo.org/profile/view/carl.html carl]
| Carl Roach
| 2007-06-08 13:37:19
|-
| [http://maemo.org/profile/view/carla1291.html carla1291]
| carla lustre
| 2008-03-15 20:31:03
|-
| [http://maemo.org/profile/view/carljk.html carljk]
| carl kristoffersen
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/carlleigh.html carlleigh]
| Carlton Lee
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/carlo.html carlo]
| carlo amoroso
| 2007-06-25 18:40:16
|-
| [http://maemo.org/profile/view/carlobrualdi.html carlobrualdi]
| Carlo Brualdi
| 2007-10-18 19:40:42
|-
| [http://maemo.org/profile/view/carlone1974.html carlone1974]
| carlone 1974
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/carlos.html carlos]
| Carlos Guerreiro
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/carlos2831.html carlos2831]
| Carlos Aguilar
| 2007-11-16 17:49:07
|-
| [http://maemo.org/profile/view/carlosbarrera.html carlosbarrera]
| Carlos Barrera
| 2007-10-23 09:40:32
|-
| [http://maemo.org/profile/view/carlosbrunocb.html carlosbrunocb]
| Carlos Bruno Oliveira Lopes
| 2008-02-14 12:01:19
|-
| [http://maemo.org/profile/view/carlosbruno_cb.html carlosbruno_cb]
| Carlos Bruno Oliveira Lopes
| 2008-04-20 16:41:32
|-
| [http://maemo.org/profile/view/carloscg.html carloscg]
| carlos castro
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/carlosferreira.html carlosferreira]
| Carlos Ferreira
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/carlosg2.html carlosg2]
| Carlos Garza
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/carlosgc.html carlosgc]
| Carlos Garcia Campos
| 2007-10-20 10:40:30
|-
| [http://maemo.org/profile/view/carlosh.html carlosh]
| Carlos Hernandez
| 2007-06-24 15:40:07
|-
| [http://maemo.org/profile/view/carlosjhr64.html carlosjhr64]
| Carlos Hernandez
| 2008-06-06 18:31:16
|-
| [http://maemo.org/profile/view/carlosmoniz.html carlosmoniz]
| carlos moniz
| 2007-09-10 13:40:23
|-
| [http://maemo.org/profile/view/carlosparamio.html carlosparamio]
| Carlos Paramio
| 2007-10-25 16:40:35
|-
| [http://maemo.org/profile/view/carlosraposo.html carlosraposo]
| carlos raposo
| 2007-07-23 20:40:19
|-
| [http://maemo.org/profile/view/carlosthebest.html carlosthebest]
| carlos carlos
| 2008-04-18 05:41:08
|-
| [http://maemo.org/profile/view/carloszamo.html carloszamo]
| Carlos Zamorano
| 2006-10-30 17:22:10
|-
| [http://maemo.org/profile/view/carloszamo89.html carloszamo89]
| carlos zamorano
| 2007-05-18 19:12:49
|-
| [http://maemo.org/profile/view/carloverano.html carloverano]
| Carlo Verano
| 2008-04-20 15:41:20
|-
| [http://maemo.org/profile/view/carl_frantz.html carl_frantz]
| Carl Frantz
| 2007-07-29 09:20:51
|-
| [http://maemo.org/profile/view/carmantl.html carmantl]
| terral carman
| 2008-01-17 22:31:25
|-
| [http://maemo.org/profile/view/carmelo.html carmelo]
| carmelo zaccone
| 2007-11-16 17:50:24
|-
| [http://maemo.org/profile/view/caro620.html caro620]
| Carolina Tung
| 2007-12-15 03:40:49
|-
| [http://maemo.org/profile/view/carole44.html carole44]
| carole robinson
| 2008-05-20 11:41:08
|-
| [http://maemo.org/profile/view/carolina.html carolina]
| Carolina Nogueira
| 2007-05-18 19:12:00
|-
| [http://maemo.org/profile/view/carpediem1.html carpediem1]
| taylan kapan
| 2007-11-03 11:40:38
|-
| [http://maemo.org/profile/view/carrierdetect.html carrierdetect]
| Andrew Back
| 2007-09-09 09:40:25
|-
| [http://maemo.org/profile/view/cartersfarm.html cartersfarm]
| Ed Carter
| 2007-11-16 17:46:25
|-
| [http://maemo.org/profile/view/carthy_k.html carthy_k]
| karthikeyan karuppiah
| 2008-01-22 12:31:19
|-
| [http://maemo.org/profile/view/cartoonetwork.html cartoonetwork]
| cartoonetwork c
| 2007-12-11 16:25:57
|-
| [http://maemo.org/profile/view/carty.html carty]
| Michael CARTY
| 2007-10-19 20:40:33
|-
| [http://maemo.org/profile/view/cary2238.html cary2238]
| Cary Breeze
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/caseyd.html caseyd]
| Casey D
| 2008-01-30 22:32:14
|-
| [http://maemo.org/profile/view/casobe.html casobe]
| casobe lobre
| 2007-05-18 19:13:55
|-
| [http://maemo.org/profile/view/caspar.html caspar]
| caspar min
| 2007-11-16 17:47:20
|-
| [http://maemo.org/profile/view/casper.html casper]
| Mike M
| 2007-10-23 16:40:35
|-
| [http://maemo.org/profile/view/cassidy.html cassidy]
| Guillaume Desmottes
| 2007-10-19 11:40:31
|-
| [http://maemo.org/profile/view/castletop11.html castletop11]
| j evans
| 2007-11-16 17:47:57
|-
| [http://maemo.org/profile/view/casual_kumar.html casual_kumar]
| Kumar Lomash
| 2008-02-22 07:30:56
|-
| [http://maemo.org/profile/view/cately.html cately]
| ca mark
| 2007-05-18 19:14:20
|-
| [http://maemo.org/profile/view/cathyntlai.html cathyntlai]
| cathy lai
| 2008-03-01 03:31:59
|-
| [http://maemo.org/profile/view/cattdreams.html cattdreams]
| mark delatorre
| 2007-05-18 19:10:46
|-
| [http://maemo.org/profile/view/cavalieregovea.html cavalieregovea]
| fabiola cavaliere
| 2007-11-30 10:49:32
|-
| [http://maemo.org/profile/view/cavargasp.html cavargasp]
| Carlos Vargas
| 2007-10-18 23:40:29
|-
| [http://maemo.org/profile/view/cavassin.html cavassin]
| Wanderlei Antonio Cavassin
| 2007-10-19 18:40:34
|-
| [http://maemo.org/profile/view/cayte.html cayte]
| cayte walker
| 2007-03-19 15:34:20
|-
| [http://maemo.org/profile/view/cbakes004.html cbakes004]
| Colin Bakey
| 2007-11-19 09:10:36
|-
| [http://maemo.org/profile/view/cbarnett.html cbarnett]
| Carey Barnett
| 2007-11-16 17:47:04
|-
| [http://maemo.org/profile/view/cbchay.html cbchay]
| Chee Beng Chay
| 2008-04-04 08:41:06
|-
| [http://maemo.org/profile/view/cbisscutt.html cbisscutt]
| Chuck Bisscutt
| 2008-01-30 06:31:12
|-
| [http://maemo.org/profile/view/cbjcbjcbj.html cbjcbjcbj]
| jay rideout
| 2007-12-20 04:41:14
|-
| [http://maemo.org/profile/view/cblackburn.html cblackburn]
| Chris Blackburn
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/cbuzzell.html cbuzzell]
| craig buzzell
| 2008-02-18 01:31:02
|-
| [http://maemo.org/profile/view/cbx33.html cbx33]
| Pete Savage
| 2007-08-12 20:40:20
|-
| [http://maemo.org/profile/view/cc0master.html cc0master]
| christian cordero
| 2008-05-09 02:41:12
|-
| [http://maemo.org/profile/view/ccefoo.html ccefoo]
| Leo Chou
| 2008-02-17 03:31:00
|-
| [http://maemo.org/profile/view/ccfromnj.html ccfromnj]
| C C Sullivan
| 2007-10-19 16:40:33
|-
| [http://maemo.org/profile/view/ccgriggs.html ccgriggs]
| Christy Griggs
| 2007-11-16 17:46:25
|-
| [http://maemo.org/profile/view/ccharles.html ccharles]
| Colin Charles
| 2007-10-19 05:40:30
|-
| [http://maemo.org/profile/view/ccie97.html ccie97]
| d. l.
| 2008-01-23 06:30:58
|-
| [http://maemo.org/profile/view/ccns.html ccns]
| Michał Niedźwiecki
| 2007-05-18 19:11:19
|-
| [http://maemo.org/profile/view/ccooke.html ccooke]
| Charles Cooke
| 2007-10-25 16:40:34
|-
| [http://maemo.org/profile/view/ccsr.html ccsr]
| Chandrashekar Reddy Challagonda
| 2007-06-08 13:37:17
|-
| [http://maemo.org/profile/view/cdaffara.html cdaffara]
| Carlo Daffara
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/cdaisley.html cdaisley]
| clyde daisley
| 2008-02-23 18:31:03
|-
| [http://maemo.org/profile/view/cdcdcon.html cdcdcon]
| Danilo Conti
| 2008-05-20 00:41:24
|-
| [http://maemo.org/profile/view/cdcooper.html cdcooper]
| Colin Cooper
| 2007-12-14 11:40:51
|-
| [http://maemo.org/profile/view/cdecampli.html cdecampli]
| craig decampli
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/cdetka.html cdetka]
| Chris Detka
| 2008-01-03 20:41:15
|-
| [http://maemo.org/profile/view/cdiflora.html cdiflora]
| Cristiano di Flora
| 2007-05-29 09:30:44
|-
| [http://maemo.org/profile/view/cdizzle.html cdizzle]
| Christopher Grossarth
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/cdjordan.html cdjordan]
| cao dan
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/cdmackay.html cdmackay]
| Calum Mackay
| 2008-01-18 13:31:46
|-
| [http://maemo.org/profile/view/cdmp.html cdmp]
| Dave Askforit
| 2007-05-18 19:14:37
|-
| [http://maemo.org/profile/view/cdot99.html cdot99]
| corey siewert
| 2008-02-15 03:31:01
|-
| [http://maemo.org/profile/view/ce4a.html ce4a]
| Serge Piltiai
| 2008-01-30 23:32:35
|-
| [http://maemo.org/profile/view/cebbri.html cebbri]
| fabrizio marroccu
| 2008-02-20 11:31:00
|-
| [http://maemo.org/profile/view/ced.html ced]
| Julien S
| 2007-05-24 14:21:06
|-
| [http://maemo.org/profile/view/cedric.html cedric]
| Cedric BAIL
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/ceeceebee.html ceeceebee]
| Clay Babcock
| 2007-05-18 19:12:41
|-
| [http://maemo.org/profile/view/cekohler1.html cekohler1]
| Craig Kohler
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/cele.html cele]
| celestino sanchez lazaro
| 2007-12-23 13:41:22
|-
| [http://maemo.org/profile/view/celesteh.html celesteh]
| Les Hutchins
| 2007-06-19 07:10:36
|-
| [http://maemo.org/profile/view/cemdermenci123.html cemdermenci123]
| cem dermenci
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/cemysce.html cemysce]
| Michael Yagliyan
| 2008-02-29 02:31:01
|-
| [http://maemo.org/profile/view/cerealkiller.html cerealkiller]
| cereal killer
| 2008-06-09 14:31:16
|-
| [http://maemo.org/profile/view/cerebus.html cerebus]
| Timothy Miller
| 2007-05-18 19:11:37
|-
| [http://maemo.org/profile/view/cerrma.html cerrma]
| mark cerreta
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/cesarcris.html cesarcris]
| Cesar Cristobal
| 2007-12-11 16:26:22
|-
| [http://maemo.org/profile/view/cesardizon.html cesardizon]
| cesar dizon
| 2007-11-16 17:49:24
|-
| [http://maemo.org/profile/view/cesarflores.html cesarflores]
| Cesar Flores
| 2007-11-16 17:48:01
|-
| [http://maemo.org/profile/view/cesarnegronz.html cesarnegronz]
| cesar negron
| 2007-11-28 15:43:34
|-
| [http://maemo.org/profile/view/cesman.html cesman]
| Cecil Watson
| 2007-05-18 19:10:59
|-
| [http://maemo.org/profile/view/cewein.html cewein]
| Clifford Weinstein
| 2007-11-15 07:55:09
|-
| [http://maemo.org/profile/view/cfiedler.html cfiedler]
| C Fiedler
| 2008-01-20 07:30:57
|-
| [http://maemo.org/profile/view/cflannery316.html cflannery316]
| Cathal Flanneery
| 2007-05-18 19:10:48
|-
| [http://maemo.org/profile/view/cflorin.html cflorin]
| claude florin
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/cflynn.html cflynn]
| Chris Flynn
| 2007-05-18 19:12:25
|-
| [http://maemo.org/profile/view/cgagimp.html cgagimp]
| Stephen Simpson
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/cgalisteo.html cgalisteo]
| Carlos Galisteo
| 2007-10-19 10:40:36
|-
| [http://maemo.org/profile/view/cgallaty.html cgallaty]
| Chris Gallaty
| 2007-11-16 17:50:16
|-
| [http://maemo.org/profile/view/cgardner.html cgardner]
| craig gardner
| 2007-11-28 15:43:20
|-
| [http://maemo.org/profile/view/cgawron.html cgawron]
| Christian Gawron
| 2007-05-18 19:11:03
|-
| [http://maemo.org/profile/view/cgdel.html cgdel]
| Delphine Calapez
| 2007-11-15 07:55:45
|-
| [http://maemo.org/profile/view/cgexport.html cgexport]
| christophe gauthier
| 2007-07-02 10:40:09
|-
| [http://maemo.org/profile/view/cghebert.html cghebert]
| colin hebert
| 2007-12-29 20:40:58
|-
| [http://maemo.org/profile/view/cgil.html cgil]
| carlos gil
| 2007-11-28 17:30:04
|-
| [http://maemo.org/profile/view/cgilfill.html cgilfill]
| Chuck Gilfill
| 2008-03-25 14:31:06
|-
| [http://maemo.org/profile/view/cgirda.html cgirda]
| Chakravarthy Girda
| 2007-11-16 17:49:47
|-
| [http://maemo.org/profile/view/cgrantham.html cgrantham]
| Carrel Grantham
| 2007-11-16 17:46:56
|-
| [http://maemo.org/profile/view/cgundogan.html cgundogan]
| cetin gundogan
| 2007-11-19 09:01:24
|-
| [http://maemo.org/profile/view/cgw.html cgw]
| Chad Wagner
| 2007-10-18 21:40:31
|-
| [http://maemo.org/profile/view/chachachazippo2.html chachachazippo2]
| Kevin Marek
| 2007-11-30 10:49:25
|-
| [http://maemo.org/profile/view/chachos.html chachos]
| Eduardo Morales
| 2007-06-08 13:37:21
|-
| [http://maemo.org/profile/view/chadmiller.html chadmiller]
| Chad Miller
| 2007-11-16 17:47:57
|-
| [http://maemo.org/profile/view/chadvavra.html chadvavra]
| Chad Vavra
| 2007-11-15 07:55:31
|-
| [http://maemo.org/profile/view/chaeoz.html chaeoz]
| Jerald Cheong
| 2007-07-09 07:40:26
|-
| [http://maemo.org/profile/view/chagas.html chagas]
| Jason Chagas
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/chaim.html chaim]
| Chaim Johnson
| 2007-05-18 19:12:04
|-
| [http://maemo.org/profile/view/chaiqiang.html chaiqiang]
| Qiang Chai
| 2008-05-20 06:41:08
|-
| [http://maemo.org/profile/view/chaitrax.html chaitrax]
| Chaitra B S
| 2007-05-18 19:13:25
|-
| [http://maemo.org/profile/view/chak88.html chak88]
| chak donovan
| 2007-12-26 15:51:48
|-
| [http://maemo.org/profile/view/chalatso.html chalatso]
| charles mcmahan
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/chals108.html chals108]
| charles charles
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/chamiltonj.html chamiltonj]
| Charles Hamilton
| 2007-04-05 15:25:37
|-
| [http://maemo.org/profile/view/chamitart.html chamitart]
| Caro Goodfellow
| 2007-12-27 06:40:59
|-
| [http://maemo.org/profile/view/chamois.html chamois]
| Emilie Phillips
| 2008-03-06 00:31:03
|-
| [http://maemo.org/profile/view/chandan.html chandan]
| Chandan Bisht
| 2007-05-29 11:21:06
|-
| [http://maemo.org/profile/view/chandani.html chandani]
| Haresh Chandani
| 2007-05-18 19:13:41
|-
| [http://maemo.org/profile/view/chandave.html chandave]
| Davy Chan
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/chandero.html chandero]
| Alexander Cruz Márquez
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/chandrav.html chandrav]
| Chandra Vanipenta
| 2008-02-19 10:31:02
|-
| [http://maemo.org/profile/view/chandra_van.html chandra_van]
| Chandra Vanipenta
| 2007-11-16 17:49:24
|-
| [http://maemo.org/profile/view/chandrews.html chandrews]
| Chester Andrews
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/chandru.html chandru]
| chandramohan natesan
| 2007-07-06 09:40:11
|-
| [http://maemo.org/profile/view/chandureddy.html chandureddy]
| chandu reddy
| 2008-04-01 11:41:06
|-
| [http://maemo.org/profile/view/changchingyew.html changchingyew]
| Changching Yew
| 2007-10-19 06:40:29
|-
| [http://maemo.org/profile/view/chaoszeus.html chaoszeus]
| Craig Weston
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/chaotix.html chaotix]
| Gerhard Gonter
| 2008-02-03 02:31:30
|-
| [http://maemo.org/profile/view/charles.html charles]
| char gnil
| 2007-11-16 17:47:35
|-
| [http://maemo.org/profile/view/charles_ri.html charles_ri]
| Charles Richer
| 2008-05-26 12:41:15
|-
| [http://maemo.org/profile/view/charlie.html charlie]
| Charlie Hernandez
| 2007-11-19 09:01:24
|-
| [http://maemo.org/profile/view/charlie45.html charlie45]
| charlie vader
| 2008-03-11 19:31:03
|-
| [http://maemo.org/profile/view/charliejones.html charliejones]
| Charles Jones
| 2007-10-21 17:40:33
|-
| [http://maemo.org/profile/view/charlie_24.html charlie_24]
| carlos manuel morales vasquez
| 2008-02-07 00:31:07
|-
| [http://maemo.org/profile/view/charlykwon.html charlykwon]
| heon ju kwon
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/chasco.html chasco]
| Chas C
| 2008-01-27 10:31:08
|-
| [http://maemo.org/profile/view/chaser.html chaser]
| Noe Cuevas
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/chasing.html chasing]
| Josh Knowles
| 2007-12-19 01:41:32
|-
| [http://maemo.org/profile/view/chastrich.html chastrich]
| carl hastrich
| 2008-01-29 13:41:46
|-
| [http://maemo.org/profile/view/chatterbox.html chatterbox]
| Kurt Rauscher
| 2007-05-18 19:11:04
|-
| [http://maemo.org/profile/view/chauser.html chauser]
| Carl Hauser
| 2007-11-06 02:40:41
|-
| [http://maemo.org/profile/view/che24.html che24]
| che hhh
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/cheatzrichter.html cheatzrichter]
| stefan hecker
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/checkoh.html checkoh]
| Sergio Duran
| 2008-05-12 05:41:06
|-
| [http://maemo.org/profile/view/cheese.html cheese]
| josef radinger
| 2007-10-23 18:40:40
|-
| [http://maemo.org/profile/view/cheesepuff.html cheesepuff]
| fishy eater
| 2007-07-01 20:40:36
|-
| [http://maemo.org/profile/view/cheetah.html cheetah]
| Cheetah 
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/cheetahcat.html cheetahcat]
| Todd Warr
| 2008-05-19 03:41:12
|-
| [http://maemo.org/profile/view/chej.html chej]
| Heikki Marjala
| 2008-02-06 00:31:29
|-
| [http://maemo.org/profile/view/chelli.html chelli]
| Thomas Schmidt
| 2007-11-16 17:50:12
|-
| [http://maemo.org/profile/view/chelya.html chelya]
| Alexei Chelukanov
| 2008-05-13 12:41:08
|-
| [http://maemo.org/profile/view/chemist23.html chemist23]
| cem baki
| 2008-03-31 22:41:05
|-
| [http://maemo.org/profile/view/chen.html chen]
| Zhiyong chen
| 2007-11-15 07:55:50
|-
| [http://maemo.org/profile/view/chenca.html chenca]
| Renato Chencarek
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/chengfeng.html chengfeng]
| feng chen
| 2007-05-18 19:11:45
|-
| [http://maemo.org/profile/view/chengjsl.html chengjsl]
| John Cheng
| 2007-12-19 04:40:53
|-
| [http://maemo.org/profile/view/chenkai036.html chenkai036]
| Tom Chen
| 2007-10-23 13:40:33
|-
| [http://maemo.org/profile/view/chenwt77.html chenwt77]
| Wentong CHEN
| 2008-02-14 12:01:19
|-
| [http://maemo.org/profile/view/chenx.html chenx]
| Xun Chen
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/chenxee.html chenxee]
| xi chen
| 2007-11-16 17:46:40
|-
| [http://maemo.org/profile/view/cherilynsangels.html cherilynsangels]
| cherilyn genovese
| 2007-12-25 06:40:55
|-
| [http://maemo.org/profile/view/cherkinator.html cherkinator]
| sergio serna
| 2007-05-18 19:13:38
|-
| [http://maemo.org/profile/view/chernomyrdin.html chernomyrdin]
| Andrey Chernomyrdin
| 2008-05-06 12:41:07
|-
| [http://maemo.org/profile/view/cherzog.html cherzog]
| Christian Herzog
| 2007-04-05 15:25:40
|-
| [http://maemo.org/profile/view/chetanknanda.html chetanknanda]
| chetan nanda
| 2007-10-30 10:40:37
|-
| [http://maemo.org/profile/view/chetan_agg.html chetan_agg]
| Chetan Aggarwal
| 2008-04-17 15:41:06
|-
| [http://maemo.org/profile/view/chevrier.html chevrier]
| christophe chevrier
| 2007-05-18 19:10:43
|-
| [http://maemo.org/profile/view/chewy1576.html chewy1576]
| shawn hoesel
| 2008-05-26 23:41:18
|-
| [http://maemo.org/profile/view/chiayu.html chiayu]
| Chia Yu
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/chibiace.html chibiace]
| Casey O'Donnell
| 2007-05-31 21:40:35
|-
| [http://maemo.org/profile/view/chiccolinux.html chiccolinux]
| Claudio Cilli
| 2007-05-18 19:11:53
|-
| [http://maemo.org/profile/view/chichesterfang.html chichesterfang]
| chichester fang
| 2008-01-14 01:40:59
|-
| [http://maemo.org/profile/view/chickenlittle.html chickenlittle]
| Andy Seubert
| 2007-05-29 09:30:32
|-
| [http://maemo.org/profile/view/chief.html chief]
| George Donnelly
| 2008-03-08 17:31:06
|-
| [http://maemo.org/profile/view/chiefwfb.html chiefwfb]
| michael anderson
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/chief_chef888.html chief_chef888]
| Pablo Jr Sen
| 2007-07-11 12:40:16
|-
| [http://maemo.org/profile/view/chien26.html chien26]
| Ken Kou
| 2007-05-18 19:11:58
|-
| [http://maemo.org/profile/view/chilepeppa.html chilepeppa]
| Janine Hanson
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/chill.html chill]
| Charles Hill
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/chilump.html chilump]
| willie stewart
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/chimaera.html chimaera]
| Dave Bullock
| 2007-12-17 20:41:00
|-
| [http://maemo.org/profile/view/chinese_ys.html chinese_ys]
| Shuai Yu
| 2007-11-16 17:49:05
|-
| [http://maemo.org/profile/view/chinpokomon.html chinpokomon]
| Ryan Beesley
| 2007-07-03 05:40:10
|-
| [http://maemo.org/profile/view/chinux.html chinux]
| chinux zyj
| 2007-05-18 19:13:09
|-
| [http://maemo.org/profile/view/chipfxr.html chipfxr]
| Ron Borum
| 2007-11-16 17:48:16
|-
| [http://maemo.org/profile/view/chippiehall.html chippiehall]
| Christopher Hall
| 2007-12-11 16:25:16
|-
| [http://maemo.org/profile/view/chipx86.html chipx86]
| Christian Hammond
| 2007-11-15 07:55:42
|-
| [http://maemo.org/profile/view/chirstius.html chirstius]
| Chuck Hirstius
| 2007-05-18 19:10:58
|-
| [http://maemo.org/profile/view/chithraprabha.html chithraprabha]
| chithra prabha
| 2007-11-16 17:47:02
|-
| [http://maemo.org/profile/view/chito4.html chito4]
| Ulises Galeano
| 2008-04-18 15:41:06
|-
| [http://maemo.org/profile/view/chitti.html chitti]
| Chitti Babu Theegala
| 2008-01-25 10:31:08
|-
| [http://maemo.org/profile/view/chiuluikai.html chiuluikai]
| Ricky Chiu
| 2007-11-28 15:43:44
|-
| [http://maemo.org/profile/view/chjbbrk.html chjbbrk]
| Jia Shen
| 2007-12-30 23:41:06
|-
| [http://maemo.org/profile/view/chlai88.html chlai88]
| hanzi lampar
| 2008-05-04 22:41:13
|-
| [http://maemo.org/profile/view/chlimmy.html chlimmy]
| jimmy kempfer
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/chodaboy.html chodaboy]
| Choda Boy
| 2008-01-01 09:41:02
|-
| [http://maemo.org/profile/view/choffee.html choffee]
| John Cooper
| 2007-09-07 10:40:24
|-
| [http://maemo.org/profile/view/chokri.html chokri]
| chokri ac
| 2008-05-28 20:41:15
|-
| [http://maemo.org/profile/view/chomber.html chomber]
| Lasse Riittola
| 2008-01-06 09:40:55
|-
| [http://maemo.org/profile/view/chompy.html chompy]
| Chompy xtrastron3
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/chop_yo.html chop_yo]
| Marcos Atienza Soto
| 2007-10-24 07:40:33
|-
| [http://maemo.org/profile/view/chow7894.html chow7894]
| Damien Chow
| 2008-02-07 15:31:30
|-
| [http://maemo.org/profile/view/chowen_maemo.html chowen_maemo]
| zillur rahman jamali
| 2007-07-05 10:40:08
|-
| [http://maemo.org/profile/view/chpe.html chpe]
| Christian Persch
| 2007-05-18 19:14:13
|-
| [http://maemo.org/profile/view/chrget.html chrget]
| Chris Motz
| 2007-11-16 17:47:27
|-
| [http://maemo.org/profile/view/chripell.html chripell]
| Christian Pellegrin
| 2007-12-12 04:40:50
|-
| [http://maemo.org/profile/view/chris.html chris]
| Christoph Munkelt
| 2007-05-18 19:12:07
|-
| [http://maemo.org/profile/view/chris1051.html chris1051]
| Chris Aliviado
| 2008-03-23 03:31:02
|-
| [http://maemo.org/profile/view/chris123.html chris123]
| chris herrnberger
| 2007-03-19 15:34:19
|-
| [http://maemo.org/profile/view/chris1668.html chris1668]
| christopher smith
| 2007-11-15 07:55:42
|-
| [http://maemo.org/profile/view/chrisallen42.html chrisallen42]
| Christopher Alle n
| 2007-12-30 22:45:23
|-
| [http://maemo.org/profile/view/chrisb.html chrisb]
| Chris Bonner
| 2007-12-15 01:41:19
|-
| [http://maemo.org/profile/view/chrisbonner.html chrisbonner]
| Christopher Bonner
| 2007-06-19 07:10:39
|-
| [http://maemo.org/profile/view/chrischiles.html chrischiles]
| chris chiles
| 2008-02-20 02:31:00
|-
| [http://maemo.org/profile/view/chrisforan.html chrisforan]
| Chris Foran
| 2007-11-16 18:41:11
|-
| [http://maemo.org/profile/view/chrisglencross.html chrisglencross]
| Chris Glencross
| 2007-12-19 14:41:21
|-
| [http://maemo.org/profile/view/chrish.html chrish]
| Chris Howie
| 2007-12-19 03:41:03
|-
| [http://maemo.org/profile/view/chrish123ca.html chrish123ca]
| chris h
| 2007-11-28 17:30:57
|-
| [http://maemo.org/profile/view/chrish64.html chrish64]
| Chris Horianopoulos
| 2007-11-16 17:49:09
|-
| [http://maemo.org/profile/view/chrism.html chrism]
| Chris McCabe
| 2007-05-18 19:11:54
|-
| [http://maemo.org/profile/view/chrismcnally.html chrismcnally]
| Chris Mcnally
| 2007-05-18 19:12:27
|-
| [http://maemo.org/profile/view/chrismerkel.html chrismerkel]
| Christopher Merkel
| 2008-03-22 18:31:07
|-
| [http://maemo.org/profile/view/chrismil.html chrismil]
| Chris Miles
| 2008-05-09 20:41:09
|-
| [http://maemo.org/profile/view/chrismtn.html chrismtn]
| Chris Jung
| 2008-03-24 04:31:02
|-
| [http://maemo.org/profile/view/chrisspencer.html chrisspencer]
| chris spencer
| 2008-04-04 02:41:04
|-
| [http://maemo.org/profile/view/christaylor2008.html christaylor2008]
| christoher taylor
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/christcake.html christcake]
| X Y
| 2008-05-07 12:41:07
|-
| [http://maemo.org/profile/view/christefano.html christefano]
| Christefano 
| 2008-03-11 22:31:08
|-
| [http://maemo.org/profile/view/christian54.html christian54]
| christian hagerman
| 2008-01-05 13:40:56
|-
| [http://maemo.org/profile/view/christianhauck.html christianhauck]
| Christian Hauck
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/christianjhjose.html christianjhjose]
| Christian Jose
| 2007-12-11 16:25:38
|-
| [http://maemo.org/profile/view/christophe.html christophe]
| Christophe CAZIN
| 2007-10-23 09:40:33
|-
| [http://maemo.org/profile/view/christopher.html christopher]
| christopher dräger
| 2007-12-31 18:41:08
|-
| [http://maemo.org/profile/view/christos.html christos]
| Christos Peris
| 2007-05-18 19:13:33
|-
| [http://maemo.org/profile/view/chrisyau.html chrisyau]
| Chris Yau
| 2008-04-09 02:41:08
|-
| [http://maemo.org/profile/view/chri_ke.html chri_ke]
| Kenneth Rohde Christiansen
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/chromered.html chromered]
| Alvin Harwick
| 2007-11-28 17:30:49
|-
| [http://maemo.org/profile/view/chronix.html chronix]
| Polychronis Papadakis
| 2007-10-28 00:40:29
|-
| [http://maemo.org/profile/view/chtaylo3.html chtaylo3]
| Chris Taylor
| 2007-05-18 19:14:31
|-
| [http://maemo.org/profile/view/chuckfll.html chuckfll]
| Chuck Crawley
| 2007-11-16 17:49:11
|-
| [http://maemo.org/profile/view/chuckfloyd.html chuckfloyd]
| Chuck Floyd
| 2007-06-29 23:40:07
|-
| [http://maemo.org/profile/view/chuckmv.html chuckmv]
| Chuck Dao
| 2007-10-28 18:40:35
|-
| [http://maemo.org/profile/view/chuckr.html chuckr]
| Chuck Robey
| 2008-02-26 04:31:00
|-
| [http://maemo.org/profile/view/chucky4444.html chucky4444]
| Javier Ema
| 2007-05-18 19:11:42
|-
| [http://maemo.org/profile/view/chue.html chue]
| chue xiong
| 2007-05-18 19:14:14
|-
| [http://maemo.org/profile/view/chukostar.html chukostar]
| Norman Kwong
| 2007-06-19 15:40:18
|-
| [http://maemo.org/profile/view/chungdh2.html chungdh2]
| Do Chung
| 2007-05-18 19:13:26
|-
| [http://maemo.org/profile/view/chw.html chw]
| Christian Werner
| 2007-05-30 06:40:48
|-
| [http://maemo.org/profile/view/chyang.html chyang]
| Chen Yang
| 2008-05-04 23:41:04
|-
| [http://maemo.org/profile/view/cibercol.html cibercol]
| Jose Vasquez
| 2008-04-23 17:41:08
|-
| [http://maemo.org/profile/view/cicciobelllo.html cicciobelllo]
| ciccio ciccio
| 2007-12-21 05:40:56
|-
| [http://maemo.org/profile/view/cidoca.html cidoca]
| Cidorvan Leite
| 2007-05-18 19:11:15
|-
| [http://maemo.org/profile/view/cigarjoe.html cigarjoe]
| Joe Novak
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/cindom.html cindom]
| Dominik Paffrath
| 2007-12-21 19:41:38
|-
| [http://maemo.org/profile/view/cinsco3046.html cinsco3046]
| scott rash
| 2008-01-11 23:41:08
|-
| [http://maemo.org/profile/view/ciperl.html ciperl]
| Benjamin Bradley
| 2007-06-25 21:40:09
|-
| [http://maemo.org/profile/view/cipher1981.html cipher1981]
| Zhongzhen Li
| 2007-11-19 10:40:43
|-
| [http://maemo.org/profile/view/circa68.html circa68]
| MICHAEL LEFEVRE
| 2008-01-13 02:40:55
|-
| [http://maemo.org/profile/view/city.html city]
| ci ty
| 2007-11-15 07:55:50
|-
| [http://maemo.org/profile/view/civodul.html civodul]
| Ludovic Courtès
| 2007-10-31 10:40:35
|-
| [http://maemo.org/profile/view/cj2b.html cj2b]
| Christophe Bothamy
| 2007-11-16 17:49:22
|-
| [http://maemo.org/profile/view/cj6666.html cj6666]
| Chi Huang
| 2007-05-18 19:14:39
|-
| [http://maemo.org/profile/view/cjackiewicz.html cjackiewicz]
| Cezary Jackiewicz
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/cjager.html cjager]
| charlie jager
| 2008-05-10 19:41:24
|-
| [http://maemo.org/profile/view/cjb110.html cjb110]
| Chris Beach
| 2007-07-13 17:40:19
|-
| [http://maemo.org/profile/view/cjbarnes18.html cjbarnes18]
| Craig Barnes
| 2007-10-25 00:40:40
|-
| [http://maemo.org/profile/view/cjefts3.html cjefts3]
| charles jefts
| 2008-01-19 02:31:14
|-
| [http://maemo.org/profile/view/cjk.html cjk]
| Christoph Kuhmuench
| 2007-05-18 19:13:35
|-
| [http://maemo.org/profile/view/cjkring.html cjkring]
| Chuck Kring
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/cjmonicajr.html cjmonicajr]
| charlie monica
| 2008-01-03 02:41:06
|-
| [http://maemo.org/profile/view/cjoe7.html cjoe7]
| Chikin Joe
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/cjrahm.html cjrahm]
| C Rahm
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/ckas.html ckas]
| christian swift
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/ckbowman.html ckbowman]
| Chet Bowman
| 2008-04-27 14:41:07
|-
| [http://maemo.org/profile/view/ckellner.html ckellner]
| Christian Kellner
| 2007-05-30 12:40:51
|-
| [http://maemo.org/profile/view/ckonkel.html ckonkel]
| Chris Konkel
| 2008-01-31 19:42:41
|-
| [http://maemo.org/profile/view/ckornacker.html ckornacker]
| Christian Kornacker
| 2007-10-22 21:40:32
|-
| [http://maemo.org/profile/view/cktakahasi.html cktakahasi]
| Claudio Takahasi
| 2007-05-18 19:13:16
|-
| [http://maemo.org/profile/view/ckubota.html ckubota]
| Colin Kubota
| 2008-01-04 04:40:53
|-
| [http://maemo.org/profile/view/ckuester.html ckuester]
| Christian Kuester
| 2007-05-18 19:14:31
|-
| [http://maemo.org/profile/view/ckyook.html ckyook]
| charles yook
| 2007-12-23 06:41:33
|-
| [http://maemo.org/profile/view/cl4rk3.html cl4rk3]
| Matthew Derby
| 2007-07-10 04:40:23
|-
| [http://maemo.org/profile/view/clach04.html clach04]
| Chris Clark
| 2007-10-20 01:40:32
|-
| [http://maemo.org/profile/view/claita.html claita]
| Carlos Laita
| 2007-05-18 19:10:51
|-
| [http://maemo.org/profile/view/clarice.html clarice]
| Clarice Starling
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/claride.html claride]
| Claudia de Ridder
| 2008-01-13 14:41:00
|-
| [http://maemo.org/profile/view/clarkd6982.html clarkd6982]
| Deborah Clark
| 2008-02-09 01:32:23
|-
| [http://maemo.org/profile/view/claudioes.html claudioes]
| Serri Claudio
| 2007-05-18 19:12:30
|-
| [http://maemo.org/profile/view/claudiu83pro.html claudiu83pro]
| adrian calin
| 2008-02-19 22:31:03
|-
| [http://maemo.org/profile/view/claudius.html claudius]
| Claudius Henrichs
| 2008-02-17 22:30:59
|-
| [http://maemo.org/profile/view/clav.html clav]
| Sébastien CLAVIER
| 2007-05-18 19:12:30
|-
| [http://maemo.org/profile/view/claws.html claws]
| Paul Mangan
| 2007-11-19 13:40:55
|-
| [http://maemo.org/profile/view/clayg.html clayg]
| clay gerrard
| 2007-12-13 06:40:50
|-
| [http://maemo.org/profile/view/cleishy.html cleishy]
| rab mcleish
| 2008-01-21 10:31:00
|-
| [http://maemo.org/profile/view/cleof28.html cleof28]
| Phil Sadler
| 2007-05-18 19:10:43
|-
| [http://maemo.org/profile/view/clerable.html clerable]
| christian lerable
| 2007-11-16 17:47:34
|-
| [http://maemo.org/profile/view/cles.html cles]
| Claude Lessard
| 2008-06-07 17:31:14
|-
| [http://maemo.org/profile/view/cleverswine.html cleverswine]
| Kevin Noone
| 2007-11-16 17:47:58
|-
| [http://maemo.org/profile/view/clharting.html clharting]
| Christopher Harting
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/clicker666.html clicker666]
| Tony Cimello
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/cliffm.html cliffm]
| cliff manton
| 2007-11-28 15:43:11
|-
| [http://maemo.org/profile/view/climent.html climent]
| Jesus Climent
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/clint.html clint]
| Clint Adams
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/clintroberts.html clintroberts]
| Clint Roberts
| 2007-12-11 16:25:27
|-
| [http://maemo.org/profile/view/clinvanderlinde.html clinvanderlinde]
| Clint van der Linde
| 2007-11-28 15:42:39
|-
| [http://maemo.org/profile/view/clmabe.html clmabe]
| Clarissa Becerril
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/cloakable.html cloakable]
| Andrew Hailes
| 2008-02-29 22:31:00
|-
| [http://maemo.org/profile/view/cloned77.html cloned77]
| Dean Bernabe
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/clopez66.html clopez66]
| Carmelo Lopez
| 2008-02-27 23:30:59
|-
| [http://maemo.org/profile/view/cloudhe.html cloudhe]
| He Ju
| 2007-06-19 07:10:34
|-
| [http://maemo.org/profile/view/clown.html clown]
| Al Nikolov
| 2007-10-31 09:40:36
|-
| [http://maemo.org/profile/view/clownspicy.html clownspicy]
| Matthew Lynch
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/clp.html clp]
| Carlos López Pérez
| 2007-10-18 21:40:32
|-
| [http://maemo.org/profile/view/clq.html clq]
| Christian Quale
| 2007-05-18 19:11:57
|-
| [http://maemo.org/profile/view/cls3152.html cls3152]
| joe schmoe
| 2007-07-05 13:40:10
|-
| [http://maemo.org/profile/view/clubifaximatic.html clubifaximatic]
| javier noguera
| 2007-05-18 19:11:06
|-
| [http://maemo.org/profile/view/clubmike.html clubmike]
| mj strong
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/clubstrb.html clubstrb]
| rik g
| 2007-11-16 17:49:02
|-
| [http://maemo.org/profile/view/clutch.html clutch]
| M B
| 2008-03-02 22:31:00
|-
| [http://maemo.org/profile/view/clyde01.html clyde01]
| Ed Fielding
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/cmak.html cmak]
| Sergei Makavkin
| 2007-11-28 15:43:28
|-
| [http://maemo.org/profile/view/cman65.html cman65]
| jerry crawford
| 2007-05-18 19:11:32
|-
| [http://maemo.org/profile/view/cmarcelo.html cmarcelo]
| Caio Oliveira
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/cmcater.html cmcater]
| Cui Miao
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/cmctablet.html cmctablet]
| Cory Capone
| 2007-10-19 19:40:32
|-
| [http://maemo.org/profile/view/cmdrmonkey.html cmdrmonkey]
| Peter Davis
| 2007-12-27 18:41:32
|-
| [http://maemo.org/profile/view/cmetz.html cmetz]
| Chuck Metz Jr
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/cmichels.html cmichels]
| chris michels
| 2007-11-16 17:46:32
|-
| [http://maemo.org/profile/view/cmmagid.html cmmagid]
| Charles Magid
| 2008-03-18 01:31:15
|-
| [http://maemo.org/profile/view/cms3717.html cms3717]
| chris skinner
| 2007-12-25 18:41:16
|-
| [http://maemo.org/profile/view/cmsj.html cmsj]
| Chris Jones
| 2007-10-19 15:40:31
|-
| [http://maemo.org/profile/view/cmsmith.html cmsmith]
| Craig Smith
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/cmuniz.html cmuniz]
| Carlos Muniz
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/cnmirose.html cnmirose]
| Chris Rose
| 2007-05-29 09:30:38
|-
| [http://maemo.org/profile/view/coachal.html coachal]
| Alan Thompson
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/coastalguy.html coastalguy]
| K W
| 2007-11-15 07:56:00
|-
| [http://maemo.org/profile/view/cobanbrian.html cobanbrian]
| brian Chang
| 2007-11-16 17:49:27
|-
| [http://maemo.org/profile/view/cobra77.html cobra77]
| Tom Kopra
| 2007-11-05 22:40:41
|-
| [http://maemo.org/profile/view/cochonkiss.html cochonkiss]
| MARIE HELENE MAKASSO
| 2007-10-24 13:40:35
|-
| [http://maemo.org/profile/view/cochrankd.html cochrankd]
| ken cochran
| 2007-07-04 13:40:19
|-
| [http://maemo.org/profile/view/codecannon.html codecannon]
| Michael Blake
| 2008-05-19 20:41:10
|-
| [http://maemo.org/profile/view/codecottage.html codecottage]
| Elizabeth Hamilton
| 2008-01-25 23:31:10
|-
| [http://maemo.org/profile/view/codek.html codek]
| Max Choi
| 2007-06-30 09:40:07
|-
| [http://maemo.org/profile/view/codeninja.html codeninja]
| Uri Bivens
| 2008-04-01 22:41:05
|-
| [http://maemo.org/profile/view/codyw725.html codyw725]
| William Cody
| 2007-10-31 19:40:35
|-
| [http://maemo.org/profile/view/cofeinesunshine.html cofeinesunshine]
| Justinas Cobman
| 2007-11-15 15:50:59
|-
| [http://maemo.org/profile/view/cogtx.html cogtx]
| Danny ridley
| 2007-11-28 16:30:38
|-
| [http://maemo.org/profile/view/cogtx12.html cogtx12]
| danny ridley
| 2007-11-30 10:48:54
|-
| [http://maemo.org/profile/view/cokmonkey.html cokmonkey]
| Frank Gonzalez Jr
| 2007-06-25 13:40:10
|-
| [http://maemo.org/profile/view/coldfusion.html coldfusion]
| Stefan Kochev
| 2007-10-21 19:40:33
|-
| [http://maemo.org/profile/view/colegiocamus.html colegiocamus]
| claudio i
| 2007-12-18 01:41:36
|-
| [http://maemo.org/profile/view/colesen.html colesen]
| Claus Olesen
| 2008-01-01 22:40:56
|-
| [http://maemo.org/profile/view/colinleroy.html colinleroy]
| Colin Leroy
| 2007-05-18 19:12:18
|-
| [http://maemo.org/profile/view/colinsteele.html colinsteele]
| Colin Steele
| 2007-11-16 17:49:28
|-
| [http://maemo.org/profile/view/collin.html collin]
| Collin Mulliner
| 2007-05-18 19:10:51
|-
| [http://maemo.org/profile/view/colonel_sponsz.html colonel_sponsz]
| Orde Saunders
| 2007-11-28 15:43:12
|-
| [http://maemo.org/profile/view/coltonloos.html coltonloos]
| colton loos
| 2007-12-27 06:40:59
|-
| [http://maemo.org/profile/view/combatdoc.html combatdoc]
| Jon Dough
| 2008-05-22 23:41:10
|-
| [http://maemo.org/profile/view/comdsal.html comdsal]
| Chad Gonzalez
| 2007-11-16 17:46:40
|-
| [http://maemo.org/profile/view/comeaub.html comeaub]
| Bryan Comeau
| 2008-01-04 02:40:59
|-
| [http://maemo.org/profile/view/comker.html comker]
| Comker To
| 2007-10-19 07:40:31
|-
| [http://maemo.org/profile/view/commanderberti.html commanderberti]
| thomas konzept
| 2008-03-28 19:31:11
|-
| [http://maemo.org/profile/view/commsman.html commsman]
| Julian Toler
| 2007-12-18 16:41:46
|-
| [http://maemo.org/profile/view/communicator55.html communicator55]
| Phiiip Neo
| 2007-11-16 17:48:10
|-
| [http://maemo.org/profile/view/compudj.html compudj]
| Mathieu Desnoyers
| 2008-05-06 03:41:11
|-
| [http://maemo.org/profile/view/comunicato1.html comunicato1]
| Antonio Majo
| 2008-04-09 20:41:06
|-
| [http://maemo.org/profile/view/confortif.html confortif]
| frank conforti
| 2008-02-17 22:31:00
|-
| [http://maemo.org/profile/view/confusedowner5.html confusedowner5]
| Devon Brammer
| 2008-01-15 21:42:20
|-
| [http://maemo.org/profile/view/coniglj.html coniglj]
| John Coniglione
| 2008-04-26 13:41:06
|-
| [http://maemo.org/profile/view/conor.html conor]
| Conor O'Neill
| 2007-10-18 14:40:30
|-
| [http://maemo.org/profile/view/contraptions.html contraptions]
| Chris Shadwick
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/convulted.html convulted]
| André Xuereb
| 2007-05-18 19:10:54
|-
| [http://maemo.org/profile/view/cookins.html cookins]
| Alex Otamas
| 2008-02-11 12:31:13
|-
| [http://maemo.org/profile/view/cool12age.html cool12age]
| Jaime Cantu
| 2008-05-26 00:41:27
|-
| [http://maemo.org/profile/view/coolmokum81.html coolmokum81]
| Masakazu Murakami
| 2008-06-05 04:41:09
|-
| [http://maemo.org/profile/view/coolth3.html coolth3]
| Theo Santos
| 2008-01-27 07:31:00
|-
| [http://maemo.org/profile/view/coolthe.html coolthe]
| theo santos
| 2008-01-19 10:31:14
|-
| [http://maemo.org/profile/view/copatagonia.html copatagonia]
| nicolas massone
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/coppertop.html coppertop]
| peter ernst
| 2007-11-16 17:49:29
|-
| [http://maemo.org/profile/view/corbet.html corbet]
| Jonathan Corbet
| 2007-10-22 23:40:32
|-
| [http://maemo.org/profile/view/cord.html cord]
| Cord Beermann
| 2007-10-18 20:40:33
|-
| [http://maemo.org/profile/view/coredumped.html coredumped]
| Juan Guerrero
| 2007-10-19 20:40:31
|-
| [http://maemo.org/profile/view/corevette.html corevette]
| Corey Farwell
| 2007-11-15 07:56:21
|-
| [http://maemo.org/profile/view/coreyburger.html coreyburger]
| Corey Burger
| 2007-11-01 06:40:36
|-
| [http://maemo.org/profile/view/corleens.html corleens]
| carl alectus
| 2007-11-15 07:56:23
|-
| [http://maemo.org/profile/view/corneuge.html corneuge]
| Eugene Cornes
| 2007-11-16 17:49:10
|-
| [http://maemo.org/profile/view/coro777.html coro777]
| Juyong Lee
| 2007-11-16 17:48:27
|-
| [http://maemo.org/profile/view/corona.html corona]
| El Burro
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/corpheus.html corpheus]
| alfonso gonzalez
| 2008-01-26 14:32:39
|-
| [http://maemo.org/profile/view/corris.html corris]
| Corris Randall
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/corrosive.html corrosive]
| Mike Galdenzi
| 2007-06-28 01:40:19
|-
| [http://maemo.org/profile/view/corsar1947.html corsar1947]
| peter kopschina
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/corsetto.html corsetto]
| Giorgio Corso
| 2007-10-22 09:40:34
|-
| [http://maemo.org/profile/view/corvuscorax.html corvuscorax]
| andrea forno
| 2007-05-18 19:13:08
|-
| [http://maemo.org/profile/view/corvuus.html corvuus]
| Rob Nagy
| 2007-10-23 02:40:36
|-
| [http://maemo.org/profile/view/corwin.html corwin]
| Corwin Amber
| 2008-04-15 14:41:17
|-
| [http://maemo.org/profile/view/corwyn.html corwyn]
| Corwyn Miyagishima
| 2007-11-01 00:40:36
|-
| [http://maemo.org/profile/view/cosmicpurveyor.html cosmicpurveyor]
| Chris Webster
| 2007-05-18 19:12:09
|-
| [http://maemo.org/profile/view/cosswill.html cosswill]
| sharon williams
| 2008-02-02 19:31:29
|-
| [http://maemo.org/profile/view/cotafish.html cotafish]
| brian cota
| 2007-04-16 12:41:54
|-
| [http://maemo.org/profile/view/coughlin.html coughlin]
| Brian Coughlin
| 2007-05-18 19:13:51
|-
| [http://maemo.org/profile/view/cowbite.html cowbite]
| Tom Gilmer
| 2008-02-22 04:30:57
|-
| [http://maemo.org/profile/view/cowbot.html cowbot]
| Arnim Sauerbier
| 2007-05-18 19:13:50
|-
| [http://maemo.org/profile/view/cowboy.html cowboy]
| Ronald ross
| 2007-11-16 17:49:32
|-
| [http://maemo.org/profile/view/coxcombi.html coxcombi]
| stephane ackermann
| 2007-05-18 19:11:54
|-
| [http://maemo.org/profile/view/coyan.html coyan]
| Rodrigo Fdez.
| 2007-05-18 19:11:50
|-
| [http://maemo.org/profile/view/cozytom.html cozytom]
| Tom Brusehaver
| 2007-05-18 19:13:55
|-
| [http://maemo.org/profile/view/cpaun.html cpaun]
| Cristian Paun
| 2008-03-31 23:41:05
|-
| [http://maemo.org/profile/view/cpfl.html cpfl]
| cp fl
| 2008-01-07 18:40:58
|-
| [http://maemo.org/profile/view/cpino61.html cpino61]
| Pino Claudio
| 2007-11-16 17:49:19
|-
| [http://maemo.org/profile/view/cpjosearturo.html cpjosearturo]
| Jose González
| 2007-11-15 07:56:24
|-
| [http://maemo.org/profile/view/cpleng7.html cpleng7]
| Leng Chen Peng
| 2008-05-12 03:41:16
|-
| [http://maemo.org/profile/view/cquilliam.html cquilliam]
| Corey Quilliam
| 2008-04-20 08:41:09
|-
| [http://maemo.org/profile/view/cqupthwb.html cqupthwb]
| H WB
| 2007-12-11 16:25:36
|-
| [http://maemo.org/profile/view/crabbsaline.html crabbsaline]
| Brad Crabb
| 2008-01-01 07:40:59
|-
| [http://maemo.org/profile/view/crackershak.html crackershak]
| Ronald Addis
| 2007-07-10 21:40:17
|-
| [http://maemo.org/profile/view/crackhead.html crackhead]
| Corey Menscher
| 2007-05-18 19:10:43
|-
| [http://maemo.org/profile/view/craiga.html craiga]
| Craig Andrews
| 2008-05-26 12:41:17
|-
| [http://maemo.org/profile/view/craigstanton.html craigstanton]
| Craig Stanton
| 2008-01-11 11:11:24
|-
| [http://maemo.org/profile/view/craig_p.html craig_p]
| Craig Park
| 2007-06-30 05:40:07
|-
| [http://maemo.org/profile/view/crash-override.html crash-override]
| Tim Desmarais
| 2007-11-30 10:49:32
|-
| [http://maemo.org/profile/view/crashanddie.html crashanddie]
| Sebastiaan Lauwers
| 2008-03-28 19:31:13
|-
| [http://maemo.org/profile/view/crasmus.html crasmus]
| charles rasmus
| 2008-05-13 18:41:11
|-
| [http://maemo.org/profile/view/crater.html crater]
| Michael Gorman
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/crawdad.html crawdad]
| Bob Crawford
| 2007-12-11 16:26:15
|-
| [http://maemo.org/profile/view/crawfordm.html crawfordm]
| Michael Crawford
| 2008-01-16 17:41:16
|-
| [http://maemo.org/profile/view/crayon.html crayon]
| Karen Eichelberger
| 2008-04-22 05:41:11
|-
| [http://maemo.org/profile/view/crazy3.html crazy3]
| Zhang Li
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/crazydrum.html crazydrum]
| dylan householder
| 2008-02-02 00:41:24
|-
| [http://maemo.org/profile/view/crazymoonboy.html crazymoonboy]
| Chandramouli Panigrahi
| 2008-04-08 06:41:04
|-
| [http://maemo.org/profile/view/crazystar.html crazystar]
| Crazy Star
| 2007-12-11 16:25:56
|-
| [http://maemo.org/profile/view/crcardsfan.html crcardsfan]
| Dave Bonds
| 2008-03-12 21:31:06
|-
| [http://maemo.org/profile/view/creamyg.html creamyg]
| lance colton
| 2008-02-15 12:30:57
|-
| [http://maemo.org/profile/view/creative.html creative]
| Daniel Lindblad
| 2008-01-02 13:41:08
|-
| [http://maemo.org/profile/view/creazine.html creazine]
| Dmytro Samsonov
| 2008-02-10 16:32:20
|-
| [http://maemo.org/profile/view/cres28.html cres28]
| Carey Johnson
| 2007-10-23 00:40:32
|-
| [http://maemo.org/profile/view/crevetor.html crevetor]
| Antoine Reversat
| 2008-01-06 19:41:36
|-
| [http://maemo.org/profile/view/crew15m.html crew15m]
| shawn tannis
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/crez.html crez]
| Clément Rezvoy
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/crhea.html crhea]
| Cris Rhea
| 2007-11-16 17:47:35
|-
| [http://maemo.org/profile/view/crille.html crille]
| Tom Creer
| 2008-05-04 15:41:05
|-
| [http://maemo.org/profile/view/crimson_orguss.html crimson_orguss]
| Ronald Ho Hip
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/cristianconti2.html cristianconti2]
| Cristian Conti
| 2007-10-23 12:40:34
|-
| [http://maemo.org/profile/view/cristo.html cristo]
| Jani Arkiomaa
| 2007-07-03 07:40:07
|-
| [http://maemo.org/profile/view/cristol.html cristol]
| Stephen Cristol
| 2007-07-03 20:40:16
|-
| [http://maemo.org/profile/view/crisuli.html crisuli]
| Christian Pichler
| 2007-05-18 19:11:46
|-
| [http://maemo.org/profile/view/critical.html critical]
| Alister Roberts
| 2007-11-15 07:56:14
|-
| [http://maemo.org/profile/view/criticalbill.html criticalbill]
| Critical Bill
| 2007-06-23 20:40:07
|-
| [http://maemo.org/profile/view/crlopez66.html crlopez66]
| Carmelo Lopez
| 2007-11-02 05:40:38
|-
| [http://maemo.org/profile/view/crm-admin.html crm-admin]
| CRM Admin
| 2007-09-04 13:40:25
|-
| [http://maemo.org/profile/view/croatoan.html croatoan]
| Christian Bonanno
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/croccy22.html croccy22]
| Matthew Beaman
| 2008-04-17 17:40:36
|-
| [http://maemo.org/profile/view/cross.html cross]
| Christopher Cross
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/crow.html crow]
| Amer Yasin
| 2008-05-13 16:41:14
|-
| [http://maemo.org/profile/view/crsilvers.html crsilvers]
| Randy Silvers
| 2008-02-07 02:31:50
|-
| [http://maemo.org/profile/view/crux.html crux]
| Christian Hueller
| 2007-05-18 19:13:35
|-
| [http://maemo.org/profile/view/cruzcruz0.html cruzcruz0]
| manuel cruz
| 2007-11-16 17:47:35
|-
| [http://maemo.org/profile/view/cryogen.html cryogen]
| Rich M
| 2007-05-18 19:13:25
|-
| [http://maemo.org/profile/view/cryptodendrum.html cryptodendrum]
| Crypto den Drum
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/crythias.html crythias]
| Gerald Young
| 2007-12-20 09:41:21
|-
| [http://maemo.org/profile/view/csaavedra.html csaavedra]
| Claudio Saavedra
| 2008-05-29 16:41:08
|-
| [http://maemo.org/profile/view/csasalu.html csasalu]
| Chetak Sasalu
| 2008-04-09 14:41:07
|-
| [http://maemo.org/profile/view/cseals3.html cseals3]
| Carl Seals
| 2007-11-16 17:46:32
|-
| [http://maemo.org/profile/view/csharp.html csharp]
| Craig Sharp
| 2007-06-08 13:37:16
|-
| [http://maemo.org/profile/view/cshonea.html cshonea]
| Cary Honea
| 2007-10-18 16:40:28
|-
| [http://maemo.org/profile/view/csjpeter.html csjpeter]
| Péter Császár
| 2007-10-22 11:40:33
|-
| [http://maemo.org/profile/view/csomerlot.html csomerlot]
| Chris Somerlot
| 2007-11-16 17:48:37
|-
| [http://maemo.org/profile/view/csorbagomba.html csorbagomba]
| Csorba Gomba
| 2007-10-22 10:40:34
|-
| [http://maemo.org/profile/view/csound.html csound]
| Leonid Krot
| 2008-01-15 10:40:59
|-
| [http://maemo.org/profile/view/csperry.html csperry]
| craig perry
| 2007-05-18 19:10:26
|-
| [http://maemo.org/profile/view/cstar707.html cstar707]
| chad starling
| 2008-03-05 20:31:01
|-
| [http://maemo.org/profile/view/csteelatgburg.html csteelatgburg]
| Chuck Steel
| 2007-11-16 17:48:28
|-
| [http://maemo.org/profile/view/csteinman.html csteinman]
| craig steinman
| 2007-07-08 18:40:17
|-
| [http://maemo.org/profile/view/csuppiah.html csuppiah]
| claude suppiah
| 2007-05-18 19:13:01
|-
| [http://maemo.org/profile/view/cswift.html cswift]
| Craig Swift
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/ctcherry.html ctcherry]
| Ttmothy Cherry
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/ctden.html ctden]
| den hodgson
| 2007-11-30 10:49:35
|-
| [http://maemo.org/profile/view/cteall.html cteall]
| Chris Teall
| 2008-04-03 20:41:24
|-
| [http://maemo.org/profile/view/cthiel.html cthiel]
| Christoph Thiel
| 2007-10-18 19:40:42
|-
| [http://maemo.org/profile/view/ctn800.html ctn800]
| C. T.
| 2007-11-28 15:43:34
|-
| [http://maemo.org/profile/view/ctomasio.html ctomasio]
| Carlos Tomasio
| 2007-11-15 07:55:40
|-
| [http://maemo.org/profile/view/cts_account.html cts_account]
| Christopher Terry
| 2008-01-18 04:31:01
|-
| [http://maemo.org/profile/view/ctyler.html ctyler]
| Christopher Tyler
| 2007-11-16 17:49:39
|-
| [http://maemo.org/profile/view/cu006752.html cu006752]
| Tom Tham
| 2007-05-18 19:12:23
|-
| [http://maemo.org/profile/view/cuda440-6.html cuda440-6]
| Rainer Glaeser
| 2007-11-16 17:49:21
|-
| [http://maemo.org/profile/view/cuneyt.html cuneyt]
| Cuneyt Ergincan
| 2007-10-17 12:40:29
|-
| [http://maemo.org/profile/view/curemx.html curemx]
| mario garza
| 2008-03-22 18:31:05
|-
| [http://maemo.org/profile/view/curgan.html curgan]
| Celil Urgan
| 2007-11-28 15:43:50
|-
| [http://maemo.org/profile/view/curiouslarry.html curiouslarry]
| larry rudolph
| 2007-05-18 19:10:44
|-
| [http://maemo.org/profile/view/curtisb10.html curtisb10]
| curtis burnett
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/curtisl13.html curtisl13]
| Curtis Fisher
| 2007-12-19 13:41:39
|-
| [http://maemo.org/profile/view/curtisw.html curtisw]
| Curtis Wilson
| 2007-06-08 13:37:01
|-
| [http://maemo.org/profile/view/curtlee2002.html curtlee2002]
| Curtis Bolin
| 2007-10-22 17:40:33
|-
| [http://maemo.org/profile/view/curtmcgirt.html curtmcgirt]
| john curtiss
| 2007-06-29 00:40:07
|-
| [http://maemo.org/profile/view/custmbld.html custmbld]
| Tom greico
| 2007-07-04 16:40:16
|-
| [http://maemo.org/profile/view/cutejerry.html cutejerry]
| wang rui
| 2008-05-25 09:41:09
|-
| [http://maemo.org/profile/view/cuu508.html cuu508]
| Pēteris Caune
| 2008-05-19 17:41:09
|-
| [http://maemo.org/profile/view/cuugi.html cuugi]
| Jukka Loukkaanhuhta
| 2007-10-31 08:40:37
|-
| [http://maemo.org/profile/view/cvalcke.html cvalcke]
| Cédric VALCKE
| 2007-05-18 19:11:50
|-
| [http://maemo.org/profile/view/cvandend.html cvandend]
| Christian Vandendorpe
| 2007-05-18 19:11:22
|-
| [http://maemo.org/profile/view/cvbruce.html cvbruce]
| Bruce Skelly
| 2008-04-05 23:41:04
|-
| [http://maemo.org/profile/view/cvdude.html cvdude]
| mike colbary
| 2007-07-01 17:40:06
|-
| [http://maemo.org/profile/view/cvmiller.html cvmiller]
| Craig Miller
| 2007-11-16 17:49:39
|-
| [http://maemo.org/profile/view/cvok.html cvok]
| Petr Frýdl
| 2007-11-15 07:55:30
|-
| [http://maemo.org/profile/view/cvphillips.html cvphillips]
| Charles Phillips
| 2008-02-01 04:31:13
|-
| [http://maemo.org/profile/view/cvsmjd.html cvsmjd]
| mark drinkhill
| 2007-11-16 17:49:12
|-
| [http://maemo.org/profile/view/cw97229.html cw97229]
| Carl Wong
| 2007-11-16 17:49:07
|-
| [http://maemo.org/profile/view/cwancik.html cwancik]
| marcin krygier
| 2008-03-22 00:31:04
|-
| [http://maemo.org/profile/view/cwarrensmith.html cwarrensmith]
| Chris Warren-Smith
| 2007-11-16 17:49:51
|-
| [http://maemo.org/profile/view/cweck.html cweck]
| Caj Weckström
| 2008-01-11 11:11:26
|-
| [http://maemo.org/profile/view/cwiiis.html cwiiis]
| Chris Lord
| 2007-11-16 17:49:40
|-
| [http://maemo.org/profile/view/cwlevel42.html cwlevel42]
| Christian Wenzel
| 2007-11-28 16:00:27
|-
| [http://maemo.org/profile/view/cwpvt100.html cwpvt100]
| cal osmu
| 2007-10-26 11:40:36
|-
| [http://maemo.org/profile/view/cwwny.html cwwny]
| bill b
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/cwyble.html cwyble]
| Charles Wyble
| 2008-02-01 20:42:11
|-
| [http://maemo.org/profile/view/cxl000.html cxl000]
| Chris Leach
| 2007-10-22 06:40:32
|-
| [http://maemo.org/profile/view/cyba.html cyba]
| Zbigniew Chyla
| 2008-01-11 20:51:12
|-
| [http://maemo.org/profile/view/cybe.html cybe]
| Staffan Enbom
| 2008-03-11 07:31:10
|-
| [http://maemo.org/profile/view/cyber1.html cyber1]
| satveer singh
| 2007-11-28 15:43:36
|-
| [http://maemo.org/profile/view/cyber1967.html cyber1967]
| cyber1967 cyber1967
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/cyberbillp.html cyberbillp]
| William Patterson
| 2008-02-20 02:31:01
|-
| [http://maemo.org/profile/view/cyberboy.html cyberboy]
| Guo Jigang
| 2007-11-16 17:49:03
|-
| [http://maemo.org/profile/view/cybercat.html cybercat]
| Felix Anadonious
| 2008-01-20 05:31:00
|-
| [http://maemo.org/profile/view/cyberghost.html cyberghost]
| quand do
| 2007-12-11 16:24:52
|-
| [http://maemo.org/profile/view/cyberjarre.html cyberjarre]
| joe strummer
| 2007-11-16 17:48:52
|-
| [http://maemo.org/profile/view/cyberlux.html cyberlux]
| Marie Bergeron
| 2007-12-18 02:41:28
|-
| [http://maemo.org/profile/view/cybernut.html cybernut]
| Clive Midwinter
| 2008-02-06 15:42:59
|-
| [http://maemo.org/profile/view/cyberx.html cyberx]
| Jorge Pereira
| 2007-10-19 16:40:33
|-
| [http://maemo.org/profile/view/cyborg.html cyborg]
| Clif Brown
| 2008-05-03 16:41:07
|-
| [http://maemo.org/profile/view/cybr1d.html cybr1d]
| klodian vladasi
| 2007-07-03 19:40:15
|-
| [http://maemo.org/profile/view/cybrix.html cybrix]
| Nils Jensen
| 2007-05-18 19:11:50
|-
| [http://maemo.org/profile/view/cycmeg.html cycmeg]
| Yeong Chun Chua
| 2007-11-16 17:49:06
|-
| [http://maemo.org/profile/view/cycojesus.html cycojesus]
| Gwenhael Le Moine
| 2007-10-20 06:40:31
|-
| [http://maemo.org/profile/view/cycologist.html cycologist]
| Bradley Ford
| 2007-07-01 22:40:10
|-
| [http://maemo.org/profile/view/cyd.html cyd]
| Yidong Chong
| 2008-03-06 19:31:18
|-
| [http://maemo.org/profile/view/cygnus.html cygnus]
| guillermo olivera
| 2008-01-11 23:41:07
|-
| [http://maemo.org/profile/view/cyke64.html cyke64]
| cyke64 cyke64
| 2008-04-24 12:41:06
|-
| [http://maemo.org/profile/view/cynoclast.html cynoclast]
| Trampas Kirk
| 2007-12-11 16:26:32
|-
| [http://maemo.org/profile/view/cypherbios.html cypherbios]
| Rafael Proen
| 2007-11-16 17:50:27
|-
| [http://maemo.org/profile/view/cyphunk.html cyphunk]
| nathan fain
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/cypou.html cypou]
| Cyprien Laplace
| 2007-11-16 17:48:50
|-
| [http://maemo.org/profile/view/cyrelk.html cyrelk]
| Cyril Elkaim
| 2006-12-18 16:40:05
|-
| [http://maemo.org/profile/view/cyrildk.html cyrildk]
| cyril kanchan
| 2008-01-25 05:31:04
|-
| [http://maemo.org/profile/view/cyrix386.html cyrix386]
| John John
| 2007-12-20 06:40:56
|-
| [http://maemo.org/profile/view/cyrus25681.html cyrus25681]
| deep kumar
| 2007-06-30 14:40:17
|-
| [http://maemo.org/profile/view/cyweb.html cyweb]
| eduardo andrade
| 2008-02-04 19:31:14
|-
| [http://maemo.org/profile/view/cyzen.html cyzen]
| Mike Herbst
| 2007-05-18 19:10:33
|-
| [http://maemo.org/profile/view/czesla.html czesla]
| Mirko Czesla
| 2007-05-18 19:10:56
|-
| [http://maemo.org/profile/view/czhang.html czhang]
| Cheng Zhang
| 2007-10-24 17:41:03
|-
| [http://maemo.org/profile/view/czr.html czr]
| Aleksandr Koltsoff
| 2007-11-16 17:49:24
|-
| [http://maemo.org/profile/view/c_borss.html c_borss]
| Christian Borss
| 2008-05-18 18:41:11
|-
| [http://maemo.org/profile/view/c_c_dumas.html c_c_dumas]
| Chris Dumas
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/c_legaspi.html c_legaspi]
| claudio legaspi
| 2007-05-18 19:11:04
|-
| [http://maemo.org/profile/view/d-net.html d-net]
| Krzysztof Wójtowicz
| 2007-10-18 17:40:31
|-
| [http://maemo.org/profile/view/d3200cb1.html d3200cb1]
| carlos bravo
| 2007-11-16 17:46:39
|-
| [http://maemo.org/profile/view/d3s0.html d3s0]
| Desislav Dyakov
| 2008-03-24 20:31:04
|-
| [http://maemo.org/profile/view/d3vi1.html d3vi1]
| Razvan Vilt
| 2007-10-18 23:40:30
|-
| [http://maemo.org/profile/view/d3vil.html d3vil]
| Филипп Шилов
| 2008-02-09 11:31:02
|-
| [http://maemo.org/profile/view/da22a.html da22a]
| Darryl Mattin
| 2007-11-05 23:51:30
|-
| [http://maemo.org/profile/view/daarvark.html daarvark]
| Lucas Azevedo
| 2007-10-31 13:40:38
|-
| [http://maemo.org/profile/view/dabney.html dabney]
| Gorm Less
| 2008-02-07 03:31:19
|-
| [http://maemo.org/profile/view/dacianvv.html dacianvv]
| Dacian Vasilescu
| 2007-06-20 16:40:09
|-
| [http://maemo.org/profile/view/dacohen.html dacohen]
| David Cohen
| 2007-10-19 18:40:35
|-
| [http://maemo.org/profile/view/dacre3010.html dacre3010]
| Mr Unsworth
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/dad.html dad]
| Andre Draszik
| 2007-10-20 01:40:33
|-
| [http://maemo.org/profile/view/daddytinman.html daddytinman]
| Barry Johnson
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/daengbo.html daengbo]
| Daeng Bo
| 2007-05-31 07:20:39
|-
| [http://maemo.org/profile/view/daevansjr.html daevansjr]
| Dave Evans
| 2008-01-23 16:41:03
|-
| [http://maemo.org/profile/view/daf.html daf]
| daf maemoFR
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/daffyno.html daffyno]
| cristian Del Prete
| 2007-11-15 07:55:39
|-
| [http://maemo.org/profile/view/dafmalo.html dafmalo]
| daniel malony
| 2007-05-18 19:12:42
|-
| [http://maemo.org/profile/view/dafreaq.html dafreaq]
| edward ichoho
| 2007-12-11 16:25:03
|-
| [http://maemo.org/profile/view/daghaner.html daghaner]
| daghan erdogdu
| 2008-02-21 23:30:59
|-
| [http://maemo.org/profile/view/dagreene.html dagreene]
| Donald Greene
| 2008-01-05 22:41:02
|-
| [http://maemo.org/profile/view/dagscire.html dagscire]
| Diego Galindo
| 2007-12-11 16:26:13
|-
| [http://maemo.org/profile/view/daham11.html daham11]
| daham dahamr
| 2007-11-15 07:56:21
|-
| [http://maemo.org/profile/view/daharder.html daharder]
| Dav Harvey
| 2007-06-30 02:40:08
|-
| [http://maemo.org/profile/view/dahazel.html dahazel]
| David Hazel
| 2007-07-26 09:40:22
|-
| [http://maemo.org/profile/view/daige68.html daige68]
| Felix Fung
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/daikerjohn.html daikerjohn]
| John Daiker
| 2008-02-05 02:33:31
|-
| [http://maemo.org/profile/view/dailydriver.html dailydriver]
| Sohaib Anwer
| 2007-06-10 15:33:57
|-
| [http://maemo.org/profile/view/daire_obyrne.html daire_obyrne]
| Daire O'Byrne
| 2008-02-10 14:32:05
|-
| [http://maemo.org/profile/view/dakota626.html dakota626]
| Lui Gra
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/dal.html dal]
| Dal Mac
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/dalacan.html dalacan]
| Derrick Choo
| 2007-06-09 15:20:53
|-
| [http://maemo.org/profile/view/dalaut.html dalaut]
| David Lautner
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/dalezuk.html dalezuk]
| George Zuk
| 2007-12-11 16:24:47
|-
| [http://maemo.org/profile/view/dalinian.html dalinian]
| Tim Jones
| 2008-02-10 20:32:26
|-
| [http://maemo.org/profile/view/dallah.html dallah]
| Daku_jagga Khinda
| 2008-05-10 19:41:23
|-
| [http://maemo.org/profile/view/dally28.html dally28]
| chris eigen
| 2007-05-18 19:12:17
|-
| [http://maemo.org/profile/view/daltocli.html daltocli]
| Zahn Daltocli
| 2007-07-05 02:40:16
|-
| [http://maemo.org/profile/view/damao.html damao]
| Jens Shao
| 2007-05-18 19:11:49
|-
| [http://maemo.org/profile/view/damiano.html damiano]
| Damiano Conte
| 2008-05-16 15:42:22
|-
| [http://maemo.org/profile/view/damien.html damien]
| Damien Genet
| 2007-10-27 14:40:36
|-
| [http://maemo.org/profile/view/damith.html damith]
| damith wickramanayake
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/damtalldave.html damtalldave]
| David Rasmussen
| 2007-11-16 17:48:26
|-
| [http://maemo.org/profile/view/dan.html dan]
| dan novi
| 2007-12-12 07:40:48
|-
| [http://maemo.org/profile/view/dan2074.html dan2074]
| Dany P
| 2008-05-01 05:41:06
|-
| [http://maemo.org/profile/view/dan67sf.html dan67sf]
| Daniel Frey
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/danail.html danail]
| danail t
| 2007-05-18 19:10:56
|-
| [http://maemo.org/profile/view/danb.html danb]
| dan billington
| 2008-05-01 13:41:05
|-
| [http://maemo.org/profile/view/dancraft.html dancraft]
| Dan Craft
| 2007-05-18 19:10:41
|-
| [http://maemo.org/profile/view/dancswithrobots.html dancswithrobots]
| David Contreni
| 2007-11-16 17:49:14
|-
| [http://maemo.org/profile/view/dandrader.html dandrader]
| Daniel d'Andrada
| 2007-05-18 19:12:28
|-
| [http://maemo.org/profile/view/dandrep.html dandrep]
| DAndre Pritchett
| 2007-10-21 04:40:38
|-
| [http://maemo.org/profile/view/dandya.html dandya]
| Andrew McCain
| 2007-12-30 04:41:07
|-
| [http://maemo.org/profile/view/dangerseeker.html dangerseeker]
| William Johnson
| 2008-05-08 11:41:06
|-
| [http://maemo.org/profile/view/danguy.html danguy]
| Dan Sanders
| 2007-05-18 19:12:45
|-
| [http://maemo.org/profile/view/danhave.html danhave]
| danny havelick
| 2008-04-10 02:41:11
|-
| [http://maemo.org/profile/view/danher.html danher]
| Daniel Hernandez
| 2008-05-10 10:41:05
|-
| [http://maemo.org/profile/view/danhomolka.html danhomolka]
| Dan Homolka
| 2007-10-18 21:40:30
|-
| [http://maemo.org/profile/view/daniel.html daniel]
| daniel kercher
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/daniel86.html daniel86]
| Daniel Stangherlin
| 2008-03-03 20:31:08
|-
| [http://maemo.org/profile/view/danielc.html danielc]
| Daniel Carrera
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/danielcf2996.html danielcf2996]
| daniel espinal
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/danieldangz.html danieldangz]
| DAVID DANG
| 2008-04-09 23:41:04
|-
| [http://maemo.org/profile/view/danielerosa.html danielerosa]
| daniele rosa
| 2008-01-29 10:31:10
|-
| [http://maemo.org/profile/view/danielh.html danielh]
| Daniel Hellsson
| 2008-01-04 10:40:53
|-
| [http://maemo.org/profile/view/danieljb.html danieljb]
| Daniel Braithwaite
| 2008-02-23 11:31:00
|-
| [http://maemo.org/profile/view/danielk.html danielk]
| Daniel Elstner
| 2007-05-18 19:11:03
|-
| [http://maemo.org/profile/view/daniellion.html daniellion]
| CJ Adams
| 2007-11-15 07:55:48
|-
| [http://maemo.org/profile/view/daniello100.html daniello100]
| Daniel Ovalle
| 2007-12-25 14:41:37
|-
| [http://maemo.org/profile/view/danielrojasc.html danielrojasc]
| Daniel Rojas
| 2008-04-15 00:41:30
|-
| [http://maemo.org/profile/view/danielronde.html danielronde]
| Daniel Ronde
| 2007-11-16 17:47:35
|-
| [http://maemo.org/profile/view/daniels.html daniels]
| Daniel Stone
| 2007-10-24 21:40:43
|-
| [http://maemo.org/profile/view/danielsz.html danielsz]
| Daniel Szmulewicz
| 2008-01-27 07:30:59
|-
| [http://maemo.org/profile/view/danielweck.html danielweck]
| Daniel Weck
| 2007-10-18 17:40:30
|-
| [http://maemo.org/profile/view/daniel_arguilla.html daniel_arguilla]
| daniel arguilla
| 2007-05-18 19:11:04
|-
| [http://maemo.org/profile/view/danijelm.html danijelm]
| Danijel M
| 2007-12-20 00:41:14
|-
| [http://maemo.org/profile/view/danilo.html danilo]
| Danilo Cesar Lemes de Paula
| 2007-05-23 05:29:36
|-
| [http://maemo.org/profile/view/danilopo.html danilopo]
| Danilo Oliveira
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/danini.html danini]
| Daniel Baussou
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/danio.html danio]
| Dan Pidcock
| 2007-11-16 17:48:15
|-
| [http://maemo.org/profile/view/danjb.html danjb]
| Daniel Butterfield
| 2007-07-05 05:40:10
|-
| [http://maemo.org/profile/view/danjimnar.html danjimnar]
| Joe Lam
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/danlargo.html danlargo]
| Stephen Davis
| 2008-03-14 14:31:08
|-
| [http://maemo.org/profile/view/danmanmtl.html danmanmtl]
| dan man
| 2007-05-18 19:13:35
|-
| [http://maemo.org/profile/view/danmao.html danmao]
| Mao Dan
| 2008-01-09 02:40:56
|-
| [http://maemo.org/profile/view/danmiddle2.html danmiddle2]
| dan middleton
| 2007-10-30 19:40:36
|-
| [http://maemo.org/profile/view/dann.html dann]
| Bohdan Přerovský
| 2007-10-21 21:40:45
|-
| [http://maemo.org/profile/view/danna.html danna]
| Nobuhiro SEKIMOTO
| 2007-05-18 19:13:31
|-
| [http://maemo.org/profile/view/dannemil.html dannemil]
| Jim Dannemiller
| 2008-03-24 13:31:03
|-
| [http://maemo.org/profile/view/dannieb.html dannieb]
| Dannie Bonner
| 2008-01-25 22:31:17
|-
| [http://maemo.org/profile/view/dannym.html dannym]
| Danny Milosavljevic
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/dannyobrien.html dannyobrien]
| Danny O Brien
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/dannyowelch.html dannyowelch]
| Danny Welch
| 2007-11-16 17:46:39
|-
| [http://maemo.org/profile/view/dannyrappleyea.html dannyrappleyea]
| Danny Rappleyea
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/dannyvdrew.html dannyvdrew]
| Danny Drew
| 2007-06-11 14:40:47
|-
| [http://maemo.org/profile/view/dannywa.html dannywa]
| dan morris
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/dano312.html dano312]
| D Ochiva
| 2007-05-18 19:14:18
|-
| [http://maemo.org/profile/view/danoyoung.html danoyoung]
| dan young
| 2007-05-18 19:10:34
|-
| [http://maemo.org/profile/view/danramos.html danramos]
| Dan Ramos
| 2007-05-18 19:12:16
|-
| [http://maemo.org/profile/view/danrdj.html danrdj]
| Dan De Jong
| 2008-03-07 18:31:24
|-
| [http://maemo.org/profile/view/dansak001.html dansak001]
| Sean Tailby
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/dansanj.html dansanj]
| Daniel Pedersen
| 2007-04-05 15:25:36
|-
| [http://maemo.org/profile/view/danschaffer.html danschaffer]
| dan schaffer
| 2007-11-15 07:55:44
|-
| [http://maemo.org/profile/view/dante024781.html dante024781]
| Bren Ford
| 2007-11-15 11:40:45
|-
| [http://maemo.org/profile/view/dantez.html dantez]
| Dan Thezone
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/danu33.html danu33]
| Daniel Shgohhh
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/danwaterloo.html danwaterloo]
| dan waterloo
| 2008-04-06 13:41:05
|-
| [http://maemo.org/profile/view/dan_greenblatt.html dan_greenblatt]
| Daniel Greenblatt
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/daperl.html daperl]
| Earl Pearl
| 2007-12-14 20:40:59
|-
| [http://maemo.org/profile/view/dapoaa.html dapoaa]
| dapo ajose-adeogun
| 2007-05-18 19:11:42
|-
| [http://maemo.org/profile/view/dappad.html dappad]
| david phillips
| 2007-07-07 14:40:08
|-
| [http://maemo.org/profile/view/daptek.html daptek]
| caros espinal
| 2007-07-13 15:40:18
|-
| [http://maemo.org/profile/view/darcn810.html darcn810]
| Anthony Lee
| 2008-02-21 19:31:01
|-
| [http://maemo.org/profile/view/darcon.html darcon]
| Conrad J
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/darea.html darea]
| Darea Ford
| 2007-05-18 19:10:47
|-
| [http://maemo.org/profile/view/darekdobro.html darekdobro]
| Dariusz Dobrosiewicz
| 2008-04-25 08:41:04
|-
| [http://maemo.org/profile/view/darenhomewood.html darenhomewood]
| daren homewood
| 2007-11-16 17:47:30
|-
| [http://maemo.org/profile/view/darfoo.html darfoo]
| Mark True
| 2007-05-18 19:14:30
|-
| [http://maemo.org/profile/view/dario_finardi.html dario_finardi]
| Dario Finardi
| 2008-01-30 15:32:06
|-
| [http://maemo.org/profile/view/darkamex.html darkamex]
| Americo Iacovizzi
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/darkblue.html darkblue]
| Yangcheng Huang
| 2007-11-15 07:55:44
|-
| [http://maemo.org/profile/view/darkdragonvkq.html darkdragonvkq]
| Victor Quach
| 2008-02-03 22:42:39
|-
| [http://maemo.org/profile/view/darknetone.html darknetone]
| Mike Wilsher
| 2008-02-08 17:41:31
|-
| [http://maemo.org/profile/view/darkwinner.html darkwinner]
| Victor Abson
| 2007-11-04 23:41:04
|-
| [http://maemo.org/profile/view/darman.html darman]
| anthony malone
| 2008-03-20 14:31:03
|-
| [http://maemo.org/profile/view/darrenkenny.html darrenkenny]
| Darren Kenny
| 2007-10-24 15:40:34
|-
| [http://maemo.org/profile/view/darrennewman.html darrennewman]
| Darren Newman
| 2008-05-28 23:41:15
|-
| [http://maemo.org/profile/view/dart.html dart]
| Dart Agnan
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/darth.html darth]
| Alessio Roberto
| 2007-11-19 09:10:41
|-
| [http://maemo.org/profile/view/darthbane666.html darthbane666]
| MARK FOWLER
| 2008-01-13 15:42:21
|-
| [http://maemo.org/profile/view/darthsebulba04.html darthsebulba04]
| Chris Friesen
| 2008-04-13 15:41:12
|-
| [http://maemo.org/profile/view/darthvader.html darthvader]
| damiano tallini
| 2007-10-24 09:40:34
|-
| [http://maemo.org/profile/view/darth_radar.html darth_radar]
| Kedar Kapoor
| 2007-11-06 02:40:41
|-
| [http://maemo.org/profile/view/darwin022.html darwin022]
| Sasha S
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/daryl.html daryl]
| daryl starnes
| 2007-06-19 07:10:38
|-
| [http://maemo.org/profile/view/daryl0.html daryl0]
| dqrio bonfanti
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/daryl733.html daryl733]
| Daryl Lee
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/dasajev.html dasajev]
| Daniel Liljeqvist
| 2007-10-19 15:40:31
|-
| [http://maemo.org/profile/view/dashu.html dashu]
| Klaus Enzensperger
| 2007-11-15 07:55:44
|-
| [http://maemo.org/profile/view/daskxg.html daskxg]
| Ken G
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/data.html data]
| Ting Yao Lin
| 2007-10-21 11:40:32
|-
| [http://maemo.org/profile/view/databasea.html databasea]
| Dilip J
| 2007-11-15 07:56:11
|-
| [http://maemo.org/profile/view/datahog.html datahog]
| Phillip Langley
| 2007-05-29 09:30:37
|-
| [http://maemo.org/profile/view/datahunter.html datahunter]
| Richard Zhu
| 2008-01-10 03:40:56
|-
| [http://maemo.org/profile/view/datajohan.html datajohan]
| Johan Lofgren
| 2008-05-26 07:41:08
|-
| [http://maemo.org/profile/view/datamon.html datamon]
| Wayne Moodie
| 2007-05-18 19:12:39
|-
| [http://maemo.org/profile/view/datapath.html datapath]
| Will Page
| 2008-01-13 02:40:54
|-
| [http://maemo.org/profile/view/datatw.html datatw]
| data lin
| 2008-01-01 02:41:10
|-
| [http://maemo.org/profile/view/datblazinni69a.html datblazinni69a]
| edwin santos
| 2008-03-01 02:32:44
|-
| [http://maemo.org/profile/view/datnguyen.html datnguyen]
| dat nguyen
| 2007-11-28 16:50:29
|-
| [http://maemo.org/profile/view/datnguyen511.html datnguyen511]
| dat nguyen
| 2007-11-30 10:48:53
|-
| [http://maemo.org/profile/view/dattamiruke.html dattamiruke]
| datta miruke
| 2008-04-03 22:41:10
|-
| [http://maemo.org/profile/view/daubrey.html daubrey]
| Dustin Aubrey
| 2007-10-23 03:40:39
|-
| [http://maemo.org/profile/view/daudr.html daudr]
| Rob Berryhill
| 2007-07-06 20:40:19
|-
| [http://maemo.org/profile/view/dauntless9.html dauntless9]
| Ian Burns
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/dave123.html dave123]
| Dave Peterson
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/dave1ahc.html dave1ahc]
| david reeve
| 2007-12-25 01:41:40
|-
| [http://maemo.org/profile/view/dave42.html dave42]
| david stotler
| 2007-11-16 17:46:23
|-
| [http://maemo.org/profile/view/dave6134.html dave6134]
| Dave Carlson
| 2007-05-18 19:12:39
|-
| [http://maemo.org/profile/view/daveb70.html daveb70]
| Dave B
| 2007-11-16 17:49:21
|-
| [http://maemo.org/profile/view/davebaar.html davebaar]
| David Baar
| 2008-03-24 18:31:07
|-
| [http://maemo.org/profile/view/davebatey.html davebatey]
| David Batey
| 2007-01-18 01:20:06
|-
| [http://maemo.org/profile/view/davedickey.html davedickey]
| David Dickey
| 2008-02-12 19:31:37
|-
| [http://maemo.org/profile/view/davemendoza.html davemendoza]
| Dave Mendoza
| 2008-01-17 02:32:53
|-
| [http://maemo.org/profile/view/daverod.html daverod]
| David Rodriguez
| 2007-12-21 17:41:34
|-
| [http://maemo.org/profile/view/daverup.html daverup]
| David Ritter
| 2007-10-18 19:40:42
|-
| [http://maemo.org/profile/view/daves.html daves]
| David Steele
| 2007-11-01 13:40:38
|-
| [http://maemo.org/profile/view/davetidwell.html davetidwell]
| Dave Tidwell
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/davevg.html davevg]
| David Van Ginneken
| 2007-12-11 16:25:51
|-
| [http://maemo.org/profile/view/davew.html davew]
| David Whittaker
| 2007-11-16 17:46:32
|-
| [http://maemo.org/profile/view/david0937.html david0937]
| David Chiou
| 2008-05-12 02:51:07
|-
| [http://maemo.org/profile/view/davidangelo.html davidangelo]
| david de guzman
| 2008-06-06 06:41:13
|-
| [http://maemo.org/profile/view/davidb.html davidb]
| David Bolter
| 2007-10-31 19:40:36
|-
| [http://maemo.org/profile/view/daviddugan.html daviddugan]
| dave dugan
| 2008-02-10 01:31:21
|-
| [http://maemo.org/profile/view/davidearl.html davidearl]
| David Earl
| 2008-01-29 18:43:29
|-
| [http://maemo.org/profile/view/davidfurniss.html davidfurniss]
| David Furniss
| 2008-05-23 03:41:09
|-
| [http://maemo.org/profile/view/davidgp.html davidgp]
| David García Pérez
| 2007-11-16 17:49:12
|-
| [http://maemo.org/profile/view/davidgro.html davidgro]
| David Grossberg
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/davidgs.html davidgs]
| david grau
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/davidhilton.html davidhilton]
| David Hilton
| 2008-05-11 00:41:59
|-
| [http://maemo.org/profile/view/davidhuebel.html davidhuebel]
| David Huebel
| 2008-03-20 23:31:05
|-
| [http://maemo.org/profile/view/davidjagoe.html davidjagoe]
| David Jagoe
| 2008-04-05 19:41:06
|-
| [http://maemo.org/profile/view/davidjl39.html davidjl39]
| David Laverick
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/davidjw14.html davidjw14]
| David Watson
| 2008-05-07 12:41:06
|-
| [http://maemo.org/profile/view/davidmaxwaterma.html davidmaxwaterma]
| max waterman
| 2008-03-02 09:30:58
|-
| [http://maemo.org/profile/view/davidmclintock1.html davidmclintock1]
| david mclintock
| 2007-05-18 19:12:23
|-
| [http://maemo.org/profile/view/davidnemer.html davidnemer]
| David Nemer
| 2007-11-16 17:48:01
|-
| [http://maemo.org/profile/view/davidpodhola.html davidpodhola]
| David Podhola
| 2008-05-08 18:41:09
|-
| [http://maemo.org/profile/view/davidrod.html davidrod]
| david rodriguez
| 2007-06-08 13:37:16
|-
| [http://maemo.org/profile/view/davidsco27.html davidsco27]
| David Scott
| 2008-05-29 12:41:10
|-
| [http://maemo.org/profile/view/davidswright.html davidswright]
| David Wright
| 2007-06-27 21:40:07
|-
| [http://maemo.org/profile/view/davidtackett.html davidtackett]
| david tackett
| 2007-05-18 19:12:27
|-
| [http://maemo.org/profile/view/davidweber.html davidweber]
| David Weber
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/davidzenner.html davidzenner]
| David Zenner
| 2008-02-05 22:32:44
|-
| [http://maemo.org/profile/view/david_junco10.html david_junco10]
| David Junco Madrid
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/davied.html davied]
| Dave Daniels
| 2007-05-18 19:12:50
|-
| [http://maemo.org/profile/view/davigc.html davigc]
| Davi Gonçalves
| 2008-04-27 08:41:05
|-
| [http://maemo.org/profile/view/davige.html davige]
| David Gertz
| 2007-12-31 14:40:53
|-
| [http://maemo.org/profile/view/davis65536.html davis65536]
| Jack Challen
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/davnsuz1.html davnsuz1]
| dave jones
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/davrghes.html davrghes]
| Dennis Varghese
| 2007-11-30 10:48:09
|-
| [http://maemo.org/profile/view/davromaniak.html davromaniak]
| Cyril LAVIER
| 2007-11-15 07:54:52
|-
| [http://maemo.org/profile/view/davtech44.html davtech44]
| david o'connor
| 2008-02-05 21:32:30
|-
| [http://maemo.org/profile/view/davy014.html davy014]
| davy branger
| 2007-10-20 14:40:33
|-
| [http://maemo.org/profile/view/dawiele.html dawiele]
| Dariusz Wielebinski
| 2007-11-16 17:49:40
|-
| [http://maemo.org/profile/view/dawildcherry.html dawildcherry]
| candice al
| 2008-04-10 20:41:22
|-
| [http://maemo.org/profile/view/dawix.html dawix]
| Dawid Nowacki
| 2008-05-29 20:41:29
|-
| [http://maemo.org/profile/view/dawnmist.html dawnmist]
| Janeene Beeforth
| 2007-11-16 17:48:28
|-
| [http://maemo.org/profile/view/daymeansday.html daymeansday]
| holly deitz
| 2008-04-11 17:41:04
|-
| [http://maemo.org/profile/view/dayredd.html dayredd]
| Dayal Reddy
| 2008-01-07 01:42:24
|-
| [http://maemo.org/profile/view/daysawayac.html daysawayac]
| Shane Colliatie
| 2007-07-07 01:40:10
|-
| [http://maemo.org/profile/view/dazeysan.html dazeysan]
| Jesse C
| 2007-11-30 10:49:36
|-
| [http://maemo.org/profile/view/db3d.html db3d]
| Dylan Beadle
| 2007-07-05 17:50:20
|-
| [http://maemo.org/profile/view/db48x.html db48x]
| Daniel Brooks
| 2007-07-12 05:40:37
|-
| [http://maemo.org/profile/view/dballester.html dballester]
| David Ballester
| 2007-05-18 19:10:38
|-
| [http://maemo.org/profile/view/dbasner.html dbasner]
| daniel bas
| 2007-11-28 15:43:20
|-
| [http://maemo.org/profile/view/dbat23.html dbat23]
| Daniel Batassa
| 2008-04-15 02:41:12
|-
| [http://maemo.org/profile/view/dbicker.html dbicker]
| David Bicker
| 2007-12-11 16:25:46
|-
| [http://maemo.org/profile/view/dblstp.html dblstp]
| Dana Harrington
| 2007-12-20 15:51:43
|-
| [http://maemo.org/profile/view/dbond45.html dbond45]
| jon dimetros
| 2007-11-16 17:46:24
|-
| [http://maemo.org/profile/view/dboverbey.html dboverbey]
| Dale Overbey
| 2007-10-22 22:40:33
|-
| [http://maemo.org/profile/view/dbpaddler.html dbpaddler]
| ryan crognale
| 2007-07-04 03:40:17
|-
| [http://maemo.org/profile/view/dbrew826.html dbrew826]
| David Brewer
| 2007-12-24 12:41:00
|-
| [http://maemo.org/profile/view/dbstirl.html dbstirl]
| Davi Stirling
| 2008-02-01 01:41:04
|-
| [http://maemo.org/profile/view/dbtorreliob.html dbtorreliob]
| Daniel Torrelio
| 2008-05-21 23:41:11
|-
| [http://maemo.org/profile/view/dbyford.html dbyford]
| Dustin Byford
| 2008-01-14 12:41:21
|-
| [http://maemo.org/profile/view/dc3.html dc3]
| David Christie
| 2008-01-27 10:31:06
|-
| [http://maemo.org/profile/view/dc910316.html dc910316]
| Kwang Hwa Lai
| 2008-03-28 00:31:03
|-
| [http://maemo.org/profile/view/dca.html dca]
| Alex De Coster
| 2007-10-20 09:40:30
|-
| [http://maemo.org/profile/view/dca1972.html dca1972]
| David Arduini
| 2007-04-05 15:25:36
|-
| [http://maemo.org/profile/view/dcair23.html dcair23]
| derek combs
| 2008-02-23 02:30:07
|-
| [http://maemo.org/profile/view/dcarter.html dcarter]
| David Carter
| 2006-10-30 17:22:10
|-
| [http://maemo.org/profile/view/dcerroni.html dcerroni]
| Dan Cerroni
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/dcfcuit.html dcfcuit]
| mike fernandez
| 2007-07-02 21:40:09
|-
| [http://maemo.org/profile/view/dchallet.html dchallet]
| Damien Challet
| 2007-03-19 15:34:20
|-
| [http://maemo.org/profile/view/dchang.html dchang]
| dom chang
| 2007-05-18 19:11:43
|-
| [http://maemo.org/profile/view/dclxvi.html dclxvi]
| dcxlvi 29a
| 2008-05-28 16:41:03
|-
| [http://maemo.org/profile/view/dcreed.html dcreed]
| Daniel Cranmore
| 2008-03-08 21:31:15
|-
| [http://maemo.org/profile/view/dcrocha.html dcrocha]
| Daniel Rocha
| 2007-11-16 17:47:57
|-
| [http://maemo.org/profile/view/dcroennau.html dcroennau]
| DC Roennau
| 2007-05-29 09:30:41
|-
| [http://maemo.org/profile/view/dcrost.html dcrost]
| don crost-fink
| 2007-12-18 01:41:36
|-
| [http://maemo.org/profile/view/dcx.html dcx]
| Didier COURTAUD
| 2008-03-21 14:31:07
|-
| [http://maemo.org/profile/view/dd-b.html dd-b]
| David Dyer-Bennet
| 2008-01-07 20:41:20
|-
| [http://maemo.org/profile/view/ddalex.html ddalex]
| Alexandru DAMIAN
| 2007-10-23 09:40:34
|-
| [http://maemo.org/profile/view/ddamours.html ddamours]
| Danny D'Amours
| 2007-07-12 17:40:18
|-
| [http://maemo.org/profile/view/ddca02.html ddca02]
| David Ca
| 2007-05-18 19:10:53
|-
| [http://maemo.org/profile/view/ddhua.html ddhua]
| Dung HUA
| 2008-02-08 12:31:09
|-
| [http://maemo.org/profile/view/ddking.html ddking]
| Dev Shah
| 2008-02-16 18:31:00
|-
| [http://maemo.org/profile/view/ddmh.html ddmh]
| Marcel Heber
| 2007-11-16 17:47:47
|-
| [http://maemo.org/profile/view/ddonia.html ddonia]
| Damián D'Onia
| 2008-01-21 15:31:55
|-
| [http://maemo.org/profile/view/ddtrills.html ddtrills]
| Brian Dappa
| 2007-10-17 21:40:29
|-
| [http://maemo.org/profile/view/ddugan.html ddugan]
| david dugan
| 2008-02-10 01:31:19
|-
| [http://maemo.org/profile/view/dead1nside.html dead1nside]
| Jonathan Pritchard
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/deadboi.html deadboi]
| paul despe
| 2007-11-28 15:43:25
|-
| [http://maemo.org/profile/view/deadpan.html deadpan]
| duane young
| 2008-01-09 23:41:01
|-
| [http://maemo.org/profile/view/deaj.html deaj]
| Dennis Flanders
| 2008-03-25 16:31:04
|-
| [http://maemo.org/profile/view/deathlord.html deathlord]
| Carlo Becchi
| 2007-10-22 11:40:33
|-
| [http://maemo.org/profile/view/debacle.html debacle]
| W. Martin Borgert
| 2007-10-18 22:40:29
|-
| [http://maemo.org/profile/view/debald1.html debald1]
| David Baldwin
| 2007-11-16 17:49:21
|-
| [http://maemo.org/profile/view/debernardis.html debernardis]
| Ernesto de Bernardis
| 2007-06-01 06:04:47
|-
| [http://maemo.org/profile/view/debroq.html debroq]
| Don Brock
| 2007-05-18 19:14:42
|-
| [http://maemo.org/profile/view/debug.html debug]
| DBug Bug
| 2007-07-10 04:40:21
|-
| [http://maemo.org/profile/view/debugger.html debugger]
| Iiro Rahkonen
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/dec----.html dec----]
| declan kitchener
| 2007-10-16 01:40:29
|-
| [http://maemo.org/profile/view/decided.html decided]
| ihsan yurttas
| 2007-11-16 17:48:38
|-
| [http://maemo.org/profile/view/decoherence.html decoherence]
| Sean Murphy
| 2008-01-17 18:51:14
|-
| [http://maemo.org/profile/view/decrypt.html decrypt]
| Kok Yong Teo
| 2007-11-16 17:49:17
|-
| [http://maemo.org/profile/view/dedekind.html dedekind]
| Artem Bityutskiy
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/dedmundson.html dedmundson]
| Darren Edmundson
| 2007-10-26 11:40:37
|-
| [http://maemo.org/profile/view/deejay1.html deejay1]
| Łukasz Jernaś
| 2007-10-22 08:40:36
|-
| [http://maemo.org/profile/view/deejoe.html deejoe]
| D Anderson
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/deekdeek.html deekdeek]
| Deek Deek
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/deepa.html deepa]
| Deepa Santhanam Anand
| 2007-10-19 12:40:32
|-
| [http://maemo.org/profile/view/deepak.html deepak]
| Deepak Nath
| 2007-11-19 09:01:25
|-
| [http://maemo.org/profile/view/deeparaj.html deeparaj]
| Deepa Raj
| 2008-04-18 06:41:15
|-
| [http://maemo.org/profile/view/deepsight.html deepsight]
| Jose Garduno
| 2008-01-14 13:51:09
|-
| [http://maemo.org/profile/view/deepthivadlama.html deepthivadlama]
| subha deepthi vadlamani
| 2007-12-12 05:40:59
|-
| [http://maemo.org/profile/view/deerndlph.html deerndlph]
| dee randolph
| 2007-10-14 14:40:12
|-
| [http://maemo.org/profile/view/deeteroderdas.html deeteroderdas]
| Mitch Thompson
| 2007-11-16 17:47:19
|-
| [http://maemo.org/profile/view/default.html default]
| Don Dafoe
| 2007-11-16 17:47:27
|-
| [http://maemo.org/profile/view/defiant.html defiant]
| resti bagcal
| 2008-01-04 06:40:54
|-
| [http://maemo.org/profile/view/defiantroa.html defiantroa]
| Ken Shu
| 2007-11-16 17:49:18
|-
| [http://maemo.org/profile/view/defrost.html defrost]
| David Frost
| 2007-12-29 04:40:59
|-
| [http://maemo.org/profile/view/dejan20003.html dejan20003]
| Dejan Krajnc
| 2007-12-11 16:26:08
|-
| [http://maemo.org/profile/view/dejayecho.html dejayecho]
| eric gainer
| 2007-12-27 08:40:56
|-
| [http://maemo.org/profile/view/deke.html deke]
| Derrick Scholz
| 2007-12-26 02:41:22
|-
| [http://maemo.org/profile/view/delaroca.html delaroca]
| Denis DeLaRoca
| 2007-07-09 03:40:42
|-
| [http://maemo.org/profile/view/delauri.html delauri]
| Antonio De Lauri
| 2007-10-29 13:40:36
|-
| [http://maemo.org/profile/view/delbenepaolo.html delbenepaolo]
| paolo del bene
| 2007-11-28 17:50:23
|-
| [http://maemo.org/profile/view/deliaann.html deliaann]
| Delia Villarreal
| 2007-05-18 19:10:34
|-
| [http://maemo.org/profile/view/deliman.html deliman]
| Doseok Kim
| 2007-07-05 17:50:21
|-
| [http://maemo.org/profile/view/delio.html delio]
| Delio Brignoli
| 2008-01-11 11:11:25
|-
| [http://maemo.org/profile/view/deltakilo.html deltakilo]
| Dejan Krajnc
| 2007-05-18 19:10:33
|-
| [http://maemo.org/profile/view/delvin.html delvin]
| Delvin Deep
| 2007-06-22 05:40:06
|-
| [http://maemo.org/profile/view/demanjv.html demanjv]
| Joseph DeMan
| 2007-12-11 16:26:28
|-
| [http://maemo.org/profile/view/demarko9999.html demarko9999]
| maurice massie
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/demc.html demc]
| Daniel Márquez
| 2007-06-20 07:40:19
|-
| [http://maemo.org/profile/view/demetrio965.html demetrio965]
| coronati paolo
| 2008-02-20 21:31:01
|-
| [http://maemo.org/profile/view/demosuzki.html demosuzki]
| neil costtigan
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/demux.html demux]
| Alexey Sazonov
| 2008-03-02 00:31:03
|-
| [http://maemo.org/profile/view/denebeim.html denebeim]
| Jay Denebeim
| 2007-02-07 02:33:42
|-
| [http://maemo.org/profile/view/deneem4.html deneem4]
| everett sheppard
| 2008-04-03 12:41:07
|-
| [http://maemo.org/profile/view/denela.html denela]
| Denise Bryant
| 2007-06-30 15:40:08
|-
| [http://maemo.org/profile/view/denials.html denials]
| Dan Scott
| 2007-10-20 02:40:32
|-
| [http://maemo.org/profile/view/denium.html denium]
| ... ...
| 2007-11-15 07:55:10
|-
| [http://maemo.org/profile/view/denladeside.html denladeside]
| Lars Knudsen
| 2007-11-28 17:10:37
|-
| [http://maemo.org/profile/view/dennisdalesr.html dennisdalesr]
| Dennis Seipel
| 2007-05-18 19:11:58
|-
| [http://maemo.org/profile/view/dennispate.html dennispate]
| dennis pate
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/dennisv.html dennisv]
| Dennis Varghese
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/dennisvjames.html dennisvjames]
| Dennis James
| 2008-02-03 09:31:22
|-
| [http://maemo.org/profile/view/denny.html denny]
| Denny de la Haye
| 2008-03-09 11:31:03
|-
| [http://maemo.org/profile/view/deraucourt.html deraucourt]
| Philippe de Raucourt
| 2006-12-16 18:40:04
|-
| [http://maemo.org/profile/view/derek.html derek]
| Derek Coleman
| 2007-05-18 19:10:28
|-
| [http://maemo.org/profile/view/derekh.html derekh]
| Derek Harding
| 2007-05-18 19:12:28
|-
| [http://maemo.org/profile/view/derekn.html derekn]
| Derek Nicholson
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/derekp.html derekp]
| Derek Pressnall
| 2008-01-11 22:41:08
|-
| [http://maemo.org/profile/view/derwood.html derwood]
| Daemon Anastas
| 2008-03-20 04:31:02
|-
| [http://maemo.org/profile/view/deryni.html deryni]
| Etan Reisner
| 2007-10-23 04:40:34
|-
| [http://maemo.org/profile/view/desadoc.html desadoc]
| Erivaldo Lima
| 2008-03-27 19:31:11
|-
| [http://maemo.org/profile/view/desean87.html desean87]
| desean garley
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/desht.html desht]
| Des Herriott
| 2007-11-28 15:43:42
|-
| [http://maemo.org/profile/view/desibeli.html desibeli]
| Toni Lähdekorpi
| 2007-06-19 07:10:37
|-
| [http://maemo.org/profile/view/desihero.html desihero]
| Saket Gupta
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/desnowz.html desnowz]
| des snowz
| 2008-05-13 17:41:09
|-
| [http://maemo.org/profile/view/desrt.html desrt]
| ryan lortie
| 2007-10-19 16:40:34
|-
| [http://maemo.org/profile/view/detlef.html detlef]
| Detlef Schmicker
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/detronizator.html detronizator]
| Ivan De Marino
| 2007-10-22 09:40:34
|-
| [http://maemo.org/profile/view/dev9null.html dev9null]
| Wayne Fiori
| 2007-05-18 19:11:48
|-
| [http://maemo.org/profile/view/devang.html devang]
| devang muchhala
| 2007-07-03 05:40:10
|-
| [http://maemo.org/profile/view/deviceguru.html deviceguru]
| Rick Lehrbaum
| 2008-01-21 19:32:05
|-
| [http://maemo.org/profile/view/devicescape.html devicescape]
| Devicescape Inc.
| 2007-11-16 17:46:57
|-
| [http://maemo.org/profile/view/devinator.html devinator]
| Devin Akin
| 2007-11-16 17:49:26
|-
| [http://maemo.org/profile/view/devl.html devl]
| Lennart Fridén
| 2007-06-01 08:50:42
|-
| [http://maemo.org/profile/view/devod.html devod]
| Jared Smith
| 2007-05-18 19:12:24
|-
| [http://maemo.org/profile/view/devona.html devona]
| Cyrill Svirezhev
| 2007-12-30 12:41:00
|-
| [http://maemo.org/profile/view/dew.html dew]
| Doug Werner
| 2007-07-22 04:40:41
|-
| [http://maemo.org/profile/view/dew542512.html dew542512]
| dew dew
| 2008-01-26 16:43:22
|-
| [http://maemo.org/profile/view/dexter.html dexter]
| dexter tello
| 2007-11-16 17:48:01
|-
| [http://maemo.org/profile/view/dez.html dez]
| Denis Walker
| 2007-11-16 17:47:37
|-
| [http://maemo.org/profile/view/dezjohnson.html dezjohnson]
| desiree johnson
| 2007-07-04 06:40:09
|-
| [http://maemo.org/profile/view/dfan.html dfan]
| Nick Syperek
| 2007-11-16 17:46:32
|-
| [http://maemo.org/profile/view/dfcamara.html dfcamara]
| Danilo Câmara
| 2008-02-04 18:31:14
|-
| [http://maemo.org/profile/view/dfcoburn.html dfcoburn]
| Dennis Coburn
| 2007-11-16 17:49:38
|-
| [http://maemo.org/profile/view/dfj225.html dfj225]
| Doug Jones
| 2007-12-30 02:40:59
|-
| [http://maemo.org/profile/view/dflansbaum.html dflansbaum]
| David Flansbaum
| 2008-03-24 06:31:04
|-
| [http://maemo.org/profile/view/dfmoses.html dfmoses]
| Daniel Moses
| 2007-11-02 03:40:38
|-
| [http://maemo.org/profile/view/dfn_doe.html dfn_doe]
| Dave Pratt
| 2007-11-01 00:40:34
|-
| [http://maemo.org/profile/view/dfoulger.html dfoulger]
| Davis Foulger
| 2007-05-18 19:11:18
|-
| [http://maemo.org/profile/view/dfoustou.html dfoustou]
| dionysis foustoukos
| 2007-05-18 19:12:40
|-
| [http://maemo.org/profile/view/dfumagalli.html dfumagalli]
| Davide Fumagalli
| 2007-05-18 19:10:55
|-
| [http://maemo.org/profile/view/dfutcher.html dfutcher]
| richard futcher
| 2007-11-16 17:47:35
|-
| [http://maemo.org/profile/view/dg4892.html dg4892]
| Dustin Gerlach
| 2008-04-24 19:41:10
|-
| [http://maemo.org/profile/view/dgbruce.html dgbruce]
| David Bruce
| 2008-01-08 01:41:20
|-
| [http://maemo.org/profile/view/dgemmer.html dgemmer]
| David Gemmer
| 2007-12-16 14:41:07
|-
| [http://maemo.org/profile/view/dgenge.html dgenge]
| Darren Genge
| 2007-11-16 17:48:10
|-
| [http://maemo.org/profile/view/dggraphics.html dggraphics]
| dg graphics
| 2007-07-03 20:40:15
|-
| [http://maemo.org/profile/view/dgibbon.html dgibbon]
| Dafydd Gibbon
| 2008-01-19 00:31:02
|-
| [http://maemo.org/profile/view/dgiustin.html dgiustin]
| Domy G
| 2007-10-26 10:40:36
|-
| [http://maemo.org/profile/view/dgjonesy.html dgjonesy]
| david jones
| 2008-05-09 02:41:13
|-
| [http://maemo.org/profile/view/dgmunity.html dgmunity]
| dennis moriarity
| 2007-10-27 00:40:39
|-
| [http://maemo.org/profile/view/dgoodwin.html dgoodwin]
| Devan Goodwin
| 2007-10-18 17:40:30
|-
| [http://maemo.org/profile/view/dgoss.html dgoss]
| d goss
| 2007-11-16 17:48:47
|-
| [http://maemo.org/profile/view/dgottlieb.html dgottlieb]
| Dan Gottlieb
| 2007-05-18 19:11:18
|-
| [http://maemo.org/profile/view/dgturner.html dgturner]
| Douglas Turner
| 2008-03-02 00:31:04
|-
| [http://maemo.org/profile/view/dharar.html dharar]
| Jan Hampl
| 2007-10-22 19:40:36
|-
| [http://maemo.org/profile/view/dharr18.html dharr18]
| David Harrison
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/dhartman.html dhartman]
| Darrick Hartman
| 2008-05-14 07:41:07
|-
| [http://maemo.org/profile/view/dhavens.html dhavens]
| DAN HAVENS
| 2007-07-13 14:40:10
|-
| [http://maemo.org/profile/view/dhawalmaemo.html dhawalmaemo]
| dhawal makwana
| 2007-05-18 19:12:37
|-
| [http://maemo.org/profile/view/dhcolesj.html dhcolesj]
| Howard Coles Jr
| 2007-12-30 01:41:30
|-
| [http://maemo.org/profile/view/dhd.html dhd]
| David Huggins-Daines
| 2007-06-20 22:40:07
|-
| [http://maemo.org/profile/view/dherlich.html dherlich]
| Dustin Herlich
| 2007-10-19 02:40:29
|-
| [http://maemo.org/profile/view/dheywood.html dheywood]
| Dave Heywood
| 2007-12-11 16:25:37
|-
| [http://maemo.org/profile/view/dhfast.html dhfast]
| David Fastman
| 2007-11-15 07:56:02
|-
| [http://maemo.org/profile/view/dhfxchina.html dhfxchina]
| Fei Huang
| 2008-04-24 11:41:07
|-
| [http://maemo.org/profile/view/dhiman.html dhiman]
| sanjiv dhiman
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/dhmarkley.html dhmarkley]
| Derek Markley
| 2007-10-24 19:40:34
|-
| [http://maemo.org/profile/view/dholbrough.html dholbrough]
| Dean Holbrough
| 2008-03-05 21:31:07
|-
| [http://maemo.org/profile/view/dhollierday.html dhollierday]
| Derek Hollier-Day
| 2007-05-18 19:12:32
|-
| [http://maemo.org/profile/view/dholst.html dholst]
| Dick Holst
| 2007-05-18 19:13:06
|-
| [http://maemo.org/profile/view/dhon.html dhon]
| Peter Gibson
| 2007-11-28 17:30:49
|-
| [http://maemo.org/profile/view/dhon_.html dhon_]
| Peter Gibson
| 2007-10-18 23:40:29
|-
| [http://maemo.org/profile/view/dhpagan.html dhpagan]
| Danel Pagan
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/diablo_un.html diablo_un]
| David Amundson
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/diabolicalmind.html diabolicalmind]
| Ozan Bas
| 2007-09-12 21:40:24
|-
| [http://maemo.org/profile/view/diamondjim.html diamondjim]
| James Koehler
| 2007-11-16 17:47:34
|-
| [http://maemo.org/profile/view/dianacaro889.html dianacaro889]
| Diana Hernández
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/diananassaney.html diananassaney]
| Diana Nassaney
| 2008-03-17 01:31:16
|-
| [http://maemo.org/profile/view/diana_facanha.html diana_facanha]
| Diana Façanha
| 2008-02-28 23:31:02
|-
| [http://maemo.org/profile/view/diazhh.html diazhh]
| hector diaz
| 2007-12-11 16:24:57
|-
| [http://maemo.org/profile/view/dicandor.html dicandor]
| rick wheelock
| 2007-05-18 19:11:55
|-
| [http://maemo.org/profile/view/dicer.html dicer]
| Felix Knecht
| 2007-12-22 19:41:46
|-
| [http://maemo.org/profile/view/dick000.html dick000]
| richard plesset
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/dickcheung.html dickcheung]
| hh hhi
| 2007-11-15 07:55:35
|-
| [http://maemo.org/profile/view/dickeyduncan.html dickeyduncan]
| Jeffrey Friedman
| 2007-11-15 07:56:25
|-
| [http://maemo.org/profile/view/dickinsonr.html dickinsonr]
| Randal Dickinson
| 2007-12-31 18:41:07
|-
| [http://maemo.org/profile/view/dicknite.html dicknite]
| RD Figgins
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/dictomail.html dictomail]
| Richard Yegan
| 2008-01-24 00:02:27
|-
| [http://maemo.org/profile/view/didex.html didex]
| Arsen Simonyan
| 2007-09-04 18:40:23
|-
| [http://maemo.org/profile/view/didier_tremblay.html didier_tremblay]
| Didier Tremblay
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/didjit.html didjit]
| Chris C
| 2008-01-11 11:11:24
|-
| [http://maemo.org/profile/view/dido.html dido]
| Paolo Didonè
| 2006-12-13 11:10:03
|-
| [http://maemo.org/profile/view/didoforteau.html didoforteau]
| dion forteau
| 2008-04-01 16:41:05
|-
| [http://maemo.org/profile/view/didszuleit.html didszuleit]
| Frank Didszuleit
| 2007-10-18 21:40:31
|-
| [http://maemo.org/profile/view/dieb.html dieb]
| André Dieb Martins
| 2007-10-30 21:40:39
|-
| [http://maemo.org/profile/view/dieckerman.html dieckerman]
| Diego Docampo
| 2007-12-29 03:41:07
|-
| [http://maemo.org/profile/view/dieddf.html dieddf]
| Diego Freitas
| 2007-11-16 17:47:43
|-
| [http://maemo.org/profile/view/diediaga.html diediaga]
| Diego Diaz
| 2008-02-21 16:30:59
|-
| [http://maemo.org/profile/view/diego.html diego]
| Diego Bezerra
| 2007-05-18 19:12:23
|-
| [http://maemo.org/profile/view/diegocg.html diegocg]
| Diego Calleja
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/diegoe.html diegoe]
| Diego Escalante Urrelo
| 2007-05-18 19:12:43
|-
| [http://maemo.org/profile/view/diegohcg.html diegohcg]
| Diego Gonzalez
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/dieman.html dieman]
| Scott Dier
| 2007-10-19 16:40:33
|-
| [http://maemo.org/profile/view/dieselcop.html dieselcop]
| Charles Scrimpshire
| 2007-11-30 10:49:35
|-
| [http://maemo.org/profile/view/difiant.html difiant]
| alber ong
| 2007-11-15 07:56:18
|-
| [http://maemo.org/profile/view/digger.html digger]
| digger vermont
| 2007-12-11 16:26:26
|-
| [http://maemo.org/profile/view/digidietze.html digidietze]
| Josua Dietze
| 2008-03-18 18:31:08
|-
| [http://maemo.org/profile/view/digitalace7.html digitalace7]
| Daniel Guzman
| 2007-11-16 17:47:04
|-
| [http://maemo.org/profile/view/digitaldoc.html digitaldoc]
| Digital Doc
| 2008-04-03 14:41:07
|-
| [http://maemo.org/profile/view/digitaldruid.html digitaldruid]
| marco de santis
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/digitalknk.html digitalknk]
| Jonathan Molina
| 2007-10-19 16:40:34
|-
| [http://maemo.org/profile/view/digus.html digus]
| Gus Osborne
| 2007-12-11 16:26:31
|-
| [http://maemo.org/profile/view/digver.html digver]
| digger vermont
| 2007-12-11 16:26:32
|-
| [http://maemo.org/profile/view/dijenerate.html dijenerate]
| Symon Pricharde
| 2007-12-18 00:40:53
|-
| [http://maemo.org/profile/view/dik.html dik]
| dik .
| 2007-10-29 19:42:07
|-
| [http://maemo.org/profile/view/dikehead.html dikehead]
| Remon van den Berge
| 2008-04-14 08:41:04
|-
| [http://maemo.org/profile/view/dilbertatmsu.html dilbertatmsu]
| Dwayne McCoy
| 2007-11-06 01:41:00
|-
| [http://maemo.org/profile/view/dillera.html dillera]
| andy diller
| 2007-07-10 13:40:17
|-
| [http://maemo.org/profile/view/dimass.html dimass]
| Dmitriy Buzdyk
| 2007-10-22 02:40:33
|-
| [http://maemo.org/profile/view/dimawert.html dimawert]
| Dmitry Kuryshev
| 2008-06-05 12:41:10
|-
| [http://maemo.org/profile/view/dimitar1932.html dimitar1932]
| dimitar ignatov
| 2007-10-29 21:40:36
|-
| [http://maemo.org/profile/view/dimkov1.html dimkov1]
| Dmitry Kovtun
| 2007-05-18 19:13:09
|-
| [http://maemo.org/profile/view/dimonus.html dimonus]
| dima dimonov
| 2008-03-18 18:31:07
|-
| [http://maemo.org/profile/view/dimspiliop.html dimspiliop]
| dim spil
| 2008-04-29 13:41:08
|-
| [http://maemo.org/profile/view/dingdeng.html dingdeng]
| Deng Ding
| 2007-10-19 09:40:32
|-
| [http://maemo.org/profile/view/dino0815.html dino0815]
| Sebastian Löser
| 2008-05-01 08:41:06
|-
| [http://maemo.org/profile/view/dinorah.html dinorah]
| Dinorah Monteiro
| 2007-08-23 22:40:22
|-
| [http://maemo.org/profile/view/dinre.html dinre]
| Scott A Russell
| 2008-02-14 12:01:17
|-
| [http://maemo.org/profile/view/dio.html dio]
| Paolo Smedile
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/diogenes.html diogenes]
| Tomi Pihlainen
| 2007-05-18 19:11:54
|-
| [http://maemo.org/profile/view/diogenessouza.html diogenessouza]
| Souza Diogenes
| 2007-11-16 17:48:54
|-
| [http://maemo.org/profile/view/diogofalcao2.html diogofalcao2]
| Diogo Falcao
| 2007-12-11 16:26:30
|-
| [http://maemo.org/profile/view/dionyc.html dionyc]
| Yuriy G
| 2007-10-18 14:40:30
|-
| [http://maemo.org/profile/view/dipersioa.html dipersioa]
| Andrea Di Persio
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/directore.html directore]
| j jmg
| 2008-03-25 01:31:15
|-
| [http://maemo.org/profile/view/dirge.html dirge]
| Alex Ibrado
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/dirk.html dirk]
| Dirk Behme
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/dirke.html dirke]
| Marko Hirvonen
| 2008-05-18 06:41:07
|-
| [http://maemo.org/profile/view/dirtblade.html dirtblade]
| Dirt Blade
| 2007-11-16 17:48:14
|-
| [http://maemo.org/profile/view/disaacs0514.html disaacs0514]
| Derek Isaacs
| 2008-02-14 12:01:19
|-
| [http://maemo.org/profile/view/discnick.html discnick]
| Nikos Zikos
| 2008-04-30 17:41:09
|-
| [http://maemo.org/profile/view/disconnect.html disconnect]
| Dis Connect
| 2007-11-16 17:49:46
|-
| [http://maemo.org/profile/view/discus-axel.html discus-axel]
| Axel Pauli
| 2007-05-18 19:11:56
|-
| [http://maemo.org/profile/view/disneycrazedmom.html disneycrazedmom]
| lara stonesifer
| 2008-02-14 15:30:58
|-
| [http://maemo.org/profile/view/disprosium.html disprosium]
| Ezra Kissel
| 2007-05-18 19:11:05
|-
| [http://maemo.org/profile/view/disq.html disq]
| Kemal Hadimli
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/dissolve.html dissolve]
| Benjamin Roberts
| 2007-10-27 23:40:09
|-
| [http://maemo.org/profile/view/distguitar.html distguitar]
| Aleksandr Kronberg
| 2007-05-23 05:29:11
|-
| [http://maemo.org/profile/view/dively06.html dively06]
| dale dively
| 2007-05-18 19:11:32
|-
| [http://maemo.org/profile/view/diveq.html diveq]
| brad burgess
| 2007-08-20 04:40:15
|-
| [http://maemo.org/profile/view/diverse_izzue.html diverse_izzue]
| Alexander Hunziker
| 2007-12-14 22:40:52
|-
| [http://maemo.org/profile/view/divinerites.html divinerites]
| D. G.
| 2007-12-15 06:41:09
|-
| [http://maemo.org/profile/view/dixonagee.html dixonagee]
| Bruce Agee
| 2007-07-07 06:40:18
|-
| [http://maemo.org/profile/view/dizel.html dizel]
| Alexander Savchenko
| 2008-03-24 21:31:05
|-
| [http://maemo.org/profile/view/dizzied.html dizzied]
| FELIPE PULIDO
| 2008-01-15 23:51:01
|-
| [http://maemo.org/profile/view/dizzied247.html dizzied247]
| FELIPE PULIDO
| 2008-01-17 23:31:27
|-
| [http://maemo.org/profile/view/dizzybones.html dizzybones]
| j c
| 2007-07-01 10:40:06
|-
| [http://maemo.org/profile/view/dj2.html dj2]
| dan sinclair
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/djack.html djack]
| Dave Sexton
| 2007-12-12 16:40:51
|-
| [http://maemo.org/profile/view/djalicee.html djalicee]
| max cakmak
| 2008-05-01 13:41:06
|-
| [http://maemo.org/profile/view/djames1.html djames1]
| D James
| 2007-12-15 08:40:49
|-
| [http://maemo.org/profile/view/djamloops.html djamloops]
| richard turner
| 2008-02-10 22:31:39
|-
| [http://maemo.org/profile/view/djarrett53.html djarrett53]
| darrell jarrett
| 2007-12-28 23:41:23
|-
| [http://maemo.org/profile/view/djarty.html djarty]
| Artem Sereda
| 2008-02-01 07:31:16
|-
| [http://maemo.org/profile/view/djas.html djas]
| John Santiago
| 2007-11-16 17:48:10
|-
| [http://maemo.org/profile/view/djason.html djason]
| Jason Walp
| 2007-06-30 02:40:08
|-
| [http://maemo.org/profile/view/djbclark.html djbclark]
| Daniel Clark
| 2007-05-18 19:10:47
|-
| [http://maemo.org/profile/view/djcarpediem.html djcarpediem]
| Singleton Makin
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/djcb.html djcb]
| Dirk-Jan Binnema
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/djcicle.html djcicle]
| taylon perez
| 2007-10-20 03:40:29
|-
| [http://maemo.org/profile/view/djdevon1.html djdevon1]
| davon jones
| 2008-03-25 00:31:04
|-
| [http://maemo.org/profile/view/djequi.html djequi]
| Eze Dro
| 2008-02-17 23:31:00
|-
| [http://maemo.org/profile/view/djfake.html djfake]
| Charles snider
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/djfi.html djfi]
| Dennis Fischer
| 2007-12-25 09:41:12
|-
| [http://maemo.org/profile/view/djfriar.html djfriar]
| Tom Crat
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/djido.html djido]
| Djido Jelovac
| 2007-12-23 00:41:39
|-
| [http://maemo.org/profile/view/djlefebvre.html djlefebvre]
| Dennis Lefebvre
| 2007-11-16 17:49:30
|-
| [http://maemo.org/profile/view/djlsigd.html djlsigd]
| Daniel Meyers
| 2007-12-16 01:46:23
|-
| [http://maemo.org/profile/view/djmartins.html djmartins]
| Douglas Martins
| 2008-04-26 14:41:05
|-
| [http://maemo.org/profile/view/djmspringcreek.html djmspringcreek]
| David Morris
| 2006-12-13 11:10:03
|-
| [http://maemo.org/profile/view/djohnson.html djohnson]
| david johnson
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/djst.html djst]
| David Tenser
| 2008-01-30 13:31:06
|-
| [http://maemo.org/profile/view/djtansey.html djtansey]
| David Tansey
| 2007-10-21 06:40:33
|-
| [http://maemo.org/profile/view/djtim.html djtim]
| Tim Breitberg
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/dju.html dju]
| julien faivre
| 2006-10-30 17:22:10
|-
| [http://maemo.org/profile/view/djware.html djware]
| Don Ware
| 2007-07-09 16:40:18
|-
| [http://maemo.org/profile/view/djyobi.html djyobi]
| ben brown
| 2007-12-26 18:42:33
|-
| [http://maemo.org/profile/view/dkaiser.html dkaiser]
| David Kaiser
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/dkeller.html dkeller]
| Dan Keller
| 2008-06-04 19:41:27
|-
| [http://maemo.org/profile/view/dkennedy.html dkennedy]
| darren kennedy
| 2008-03-26 08:31:03
|-
| [http://maemo.org/profile/view/dkent12.html dkent12]
| Dave Kent
| 2008-01-24 00:02:25
|-
| [http://maemo.org/profile/view/dkingsf.html dkingsf]
| Dan Kingsford
| 2008-01-17 15:41:08
|-
| [http://maemo.org/profile/view/dknauss.html dknauss]
| David Dickson
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/dknauth.html dknauth]
| Daniel Knauth
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/dkothari.html dkothari]
| Devesh Kothari
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/dkr.html dkr]
| Damaris Kröger
| 2006-10-30 17:22:10
|-
| [http://maemo.org/profile/view/dkraul.html dkraul]
| Douglas Kraul
| 2007-05-18 19:13:29
|-
| [http://maemo.org/profile/view/dkruse.html dkruse]
| Dieter Kruse
| 2007-05-23 05:29:04
|-
| [http://maemo.org/profile/view/dk_n.html dk_n]
| Dejan Krajnc
| 2007-11-30 10:49:07
|-
| [http://maemo.org/profile/view/dlai.html dlai]
| Jens Fursund
| 2007-10-19 13:40:33
|-
| [http://maemo.org/profile/view/dlain.html dlain]
| dan lain
| 2007-11-16 17:49:50
|-
| [http://maemo.org/profile/view/dlance.html dlance]
| douglas lance
| 2007-12-29 14:40:57
|-
| [http://maemo.org/profile/view/dlee21.html dlee21]
| Dave Lee
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/dleemeyer.html dleemeyer]
| David L Meyer
| 2008-03-18 12:31:06
|-
| [http://maemo.org/profile/view/dlhuss.html dlhuss]
| Jake Johnson
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/dlococo.html dlococo]
| David Lococo
| 2007-10-25 20:40:36
|-
| [http://maemo.org/profile/view/dlsmith.html dlsmith]
| devin smith
| 2007-05-18 19:12:36
|-
| [http://maemo.org/profile/view/dmac.html dmac]
| duncan maccallum
| 2007-06-08 13:37:13
|-
| [http://maemo.org/profile/view/dmahak.html dmahak]
| Daniel Mahak
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/dman31754.html dman31754]
| Dwight deVera
| 2008-01-31 02:31:01
|-
| [http://maemo.org/profile/view/dmandee.html dmandee]
| Dedrick Whipple
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/dmanrevived.html dmanrevived]
| Charlie Zheng
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/dmatetelki.html dmatetelki]
| Denes Matetelki
| 2007-10-24 12:40:37
|-
| [http://maemo.org/profile/view/dmballweg.html dmballweg]
| Darin BAllweg
| 2007-06-20 16:40:09
|-
| [http://maemo.org/profile/view/dmdriggs.html dmdriggs]
| David Driggs
| 2008-05-01 22:41:10
|-
| [http://maemo.org/profile/view/dmee.html dmee]
| Dmitry Alekseenko
| 2007-10-19 18:40:32
|-
| [http://maemo.org/profile/view/dmerek.html dmerek]
| Derek O'Connell
| 2007-10-18 23:40:29
|-
| [http://maemo.org/profile/view/dmerlin7.html dmerlin7]
| Don Detwiler
| 2007-11-16 17:46:37
|-
| [http://maemo.org/profile/view/dmery.html dmery]
| David Mery
| 2007-10-18 21:40:07
|-
| [http://maemo.org/profile/view/dmfoxe.html dmfoxe]
| david foxe
| 2007-11-16 17:49:11
|-
| [http://maemo.org/profile/view/dmfrey.html dmfrey]
| Daniel Frey
| 2008-01-09 14:41:08
|-
| [http://maemo.org/profile/view/dmg.html dmg]
| daniel german
| 2007-11-28 17:30:44
|-
| [http://maemo.org/profile/view/dmgerman.html dmgerman]
| daniel german
| 2007-08-13 05:40:21
|-
| [http://maemo.org/profile/view/dmiruke.html dmiruke]
| dattaram miruke
| 2008-01-30 07:31:24
|-
| [http://maemo.org/profile/view/dmisener.html dmisener]
| Dennis Misener
| 2007-10-24 22:40:33
|-
| [http://maemo.org/profile/view/dmitry.html dmitry]
| Dmitry Golovaty
| 2008-03-21 20:31:04
|-
| [http://maemo.org/profile/view/dmitryadov.html dmitryadov]
| Dmitry Adov
| 2007-12-19 12:40:59
|-
| [http://maemo.org/profile/view/dmlucoff.html dmlucoff]
| David Lucoff
| 2008-03-30 21:31:09
|-
| [http://maemo.org/profile/view/dmoore74.html dmoore74]
| Damien Moore
| 2007-11-30 10:49:23
|-
| [http://maemo.org/profile/view/dmr.html dmr]
| Alessandro Di Marco
| 2007-10-19 10:40:36
|-
| [http://maemo.org/profile/view/dmsoler.html dmsoler]
| Dionisio Martínez Soler
| 2007-10-29 10:40:38
|-
| [http://maemo.org/profile/view/dmtelf.html dmtelf]
| Matthew Israelsohn
| 2007-11-16 17:49:14
|-
| [http://maemo.org/profile/view/dmurphy.html dmurphy]
| Darragh Murphy
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/dnapps.html dnapps]
| Dion Daley
| 2008-01-01 09:41:02
|-
| [http://maemo.org/profile/view/dnastar.html dnastar]
| eric liao
| 2008-01-22 14:32:03
|-
| [http://maemo.org/profile/view/dnastase.html dnastase]
| Daniel Nastase
| 2007-11-28 15:43:37
|-
| [http://maemo.org/profile/view/dnataraj.html dnataraj]
| NATARAJ DONTHULA
| 2007-11-28 17:40:13
|-
| [http://maemo.org/profile/view/dneary.html dneary]
| Dave Neary
| 2007-10-31 10:40:34
|-
| [http://maemo.org/profile/view/dneteng.html dneteng]
| David McGinniss
| 2007-05-18 19:12:28
|-
| [http://maemo.org/profile/view/dnewall.html dnewall]
| David Newall
| 2007-10-18 21:40:31
|-
| [http://maemo.org/profile/view/dnuske.html dnuske]
| daniel nuske
| 2007-11-16 17:49:22
|-
| [http://maemo.org/profile/view/do13.html do13]
| Dirk Opfer
| 2007-05-18 19:10:26
|-
| [http://maemo.org/profile/view/dobrovol.html dobrovol]
| Natalia Dobrovolskaya
| 2007-06-21 12:40:06
|-
| [http://maemo.org/profile/view/docaware.html docaware]
| Fidenzio Burbello
| 2007-05-18 19:11:53
|-
| [http://maemo.org/profile/view/dochubert.html dochubert]
| H Siu
| 2007-10-31 08:40:36
|-
| [http://maemo.org/profile/view/doclist.html doclist]
| doclist .
| 2007-05-18 19:12:33
|-
| [http://maemo.org/profile/view/doclml.html doclml]
| larry levinson
| 2007-06-30 15:40:08
|-
| [http://maemo.org/profile/view/doctor.html doctor]
| Pavel Blokhin
| 2007-10-30 21:40:39
|-
| [http://maemo.org/profile/view/doctorching.html doctorching]
| Lyle Ching
| 2007-07-08 00:40:12
|-
| [http://maemo.org/profile/view/doctoss.html doctoss]
| Thomas Gray
| 2007-06-08 13:37:19
|-
| [http://maemo.org/profile/view/dodiesis.html dodiesis]
| Mario Signorino
| 2007-10-18 23:40:26
|-
| [http://maemo.org/profile/view/dodji.html dodji]
| Dodji SEKETELI
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/dodo.html dodo]
| dodo dodo
| 2007-05-18 19:12:40
|-
| [http://maemo.org/profile/view/dodo9999.html dodo9999]
| dodo9999 dodo9999
| 2007-05-18 19:11:18
|-
| [http://maemo.org/profile/view/dodo99999.html dodo99999]
| dodo dodo
| 2007-11-28 17:40:22
|-
| [http://maemo.org/profile/view/dofeel.html dofeel]
| wu xiaoyong
| 2008-04-10 16:41:11
|-
| [http://maemo.org/profile/view/dogsbody.html dogsbody]
| Dan Benton
| 2007-12-26 00:41:28
|-
| [http://maemo.org/profile/view/doinker.html doinker]
| don juan
| 2007-11-16 17:49:14
|-
| [http://maemo.org/profile/view/doitian.html doitian]
| Ian Yang
| 2007-12-11 16:26:23
|-
| [http://maemo.org/profile/view/doka.html doka]
| Dmitriy Murzinov
| 2007-12-17 15:40:56
|-
| [http://maemo.org/profile/view/dolbyarun.html dolbyarun]
| Arun Srinivasan
| 2007-11-16 17:49:32
|-
| [http://maemo.org/profile/view/dolesun.html dolesun]
| dole sun
| 2008-03-29 01:31:24
|-
| [http://maemo.org/profile/view/doliveras.html doliveras]
| Daniel Oliveras
| 2008-01-04 08:40:55
|-
| [http://maemo.org/profile/view/dolmen.html dolmen]
| Olivier Mengué
| 2007-10-19 16:40:31
|-
| [http://maemo.org/profile/view/dolske.html dolske]
| Justin Dolske
| 2007-11-01 07:40:34
|-
| [http://maemo.org/profile/view/dom62.html dom62]
| domenico loparco
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/domanhthang.html domanhthang]
| THANG do manh
| 2007-05-18 19:12:24
|-
| [http://maemo.org/profile/view/domdidom.html domdidom]
| Damien Guignard
| 2007-10-19 07:40:31
|-
| [http://maemo.org/profile/view/domenico.html domenico]
| domenico liberta'
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/domi89.html domi89]
| Domenico Colucci
| 2008-02-03 18:41:35
|-
| [http://maemo.org/profile/view/domnic839.html domnic839]
| dominic donohue
| 2008-04-25 09:41:12
|-
| [http://maemo.org/profile/view/domriley.html domriley]
| Dominic Riley
| 2007-11-16 17:49:07
|-
| [http://maemo.org/profile/view/domtor0.html domtor0]
| Dominique CARON
| 2007-10-20 08:40:30
|-
| [http://maemo.org/profile/view/don123049.html don123049]
| Don Pritchett
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/donaggio.html donaggio]
| Luca Donaggio
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/dondo.html dondo]
| christian steinmetz
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/donghaima.html donghaima]
| Donghai Ma
| 2007-12-19 20:42:10
|-
| [http://maemo.org/profile/view/dongiu.html dongiu]
| Klaus Kreutz
| 2007-11-30 10:49:36
|-
| [http://maemo.org/profile/view/donglan.html donglan]
| hdl dl
| 2008-03-10 04:31:06
|-
| [http://maemo.org/profile/view/donluu.html donluu]
| Don Luu
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/donman58.html donman58]
| Don Wilson
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/donmecako.html donmecako]
| don carreon
| 2007-05-18 19:12:58
|-
| [http://maemo.org/profile/view/donna.html donna]
| donna walls
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/donna_520.html donna_520]
| donna moynihan
| 2008-02-07 04:32:45
|-
| [http://maemo.org/profile/view/donnie.html donnie]
| Rachid REMIL
| 2008-06-10 03:31:16
|-
| [http://maemo.org/profile/view/donnny.html donnny]
| Don MacBth
| 2007-11-16 17:49:39
|-
| [http://maemo.org/profile/view/donpippo.html donpippo]
| Giacomo Ferrante
| 2008-01-26 16:43:22
|-
| [http://maemo.org/profile/view/dont.html dont]
| Don Taylor
| 2008-02-14 19:31:00
|-
| [http://maemo.org/profile/view/dontomsci.html dontomsci]
| Tommaso Scicchitano
| 2007-10-22 12:40:34
|-
| [http://maemo.org/profile/view/donza.html donza]
| Deby Stewart
| 2007-06-25 15:40:09
|-
| [http://maemo.org/profile/view/don_antonio.html don_antonio]
| Toni Gantenbein
| 2007-05-29 09:30:40
|-
| [http://maemo.org/profile/view/don_que.html don_que]
| Steven Shelton
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/doodoo.html doodoo]
| Di Luo
| 2007-07-09 06:40:26
|-
| [http://maemo.org/profile/view/doomsday.html doomsday]
| Wilfredo Nieves
| 2007-11-16 17:47:04
|-
| [http://maemo.org/profile/view/dopper.html dopper]
| Joe Dopp
| 2007-11-05 13:21:02
|-
| [http://maemo.org/profile/view/dorel.html dorel]
| dorel pascu
| 2008-01-28 14:32:17
|-
| [http://maemo.org/profile/view/dorfun.html dorfun]
| Amador Loureiro Blanco
| 2008-02-06 22:01:17
|-
| [http://maemo.org/profile/view/dorism.html dorism]
| Michael Doris
| 2007-07-08 22:40:36
|-
| [http://maemo.org/profile/view/dorkosticks.html dorkosticks]
| ben buurstra
| 2008-05-09 15:41:08
|-
| [http://maemo.org/profile/view/dormant.html dormant]
| Roderick Stewart
| 2007-10-30 18:40:35
|-
| [http://maemo.org/profile/view/dorsey.html dorsey]
| adam dorsey
| 2008-03-05 19:31:02
|-
| [http://maemo.org/profile/view/dorto.html dorto]
| dor to
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/dotchen.html dotchen]
| gabriele centurelli
| 2007-11-16 17:46:31
|-
| [http://maemo.org/profile/view/dothang83.html dothang83]
| thang do
| 2007-05-18 19:11:27
|-
| [http://maemo.org/profile/view/dothen810.html dothen810]
| Michael Cho
| 2007-12-17 19:41:04
|-
| [http://maemo.org/profile/view/dotnate.html dotnate]
| nate pocock
| 2008-03-21 02:31:07
|-
| [http://maemo.org/profile/view/dottedmag.html dottedmag]
| Mikhail Gusarov
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/doubleu3.html doubleu3]
| Wayne Walker
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/dougauto.html dougauto]
| Douglas Ross
| 2008-02-18 19:31:11
|-
| [http://maemo.org/profile/view/dougr615.html dougr615]
| james roberts
| 2007-11-15 07:56:06
|-
| [http://maemo.org/profile/view/dougroberts.html dougroberts]
| doug roberts
| 2007-05-18 19:10:26
|-
| [http://maemo.org/profile/view/dougt.html dougt]
| Doug Turner
| 2008-05-14 21:41:15
|-
| [http://maemo.org/profile/view/dowem.html dowem]
| Eli Dow
| 2007-10-25 14:40:33
|-
| [http://maemo.org/profile/view/doxi.html doxi]
| Michel Gagnon
| 2007-10-19 17:40:32
|-
| [http://maemo.org/profile/view/dpark0626.html dpark0626]
| duk park
| 2007-05-18 19:12:23
|-
| [http://maemo.org/profile/view/dpark062658.html dpark062658]
| duk park
| 2007-11-30 10:48:24
|-
| [http://maemo.org/profile/view/dpavlin.html dpavlin]
| Dobrica Pavlinusic
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/dpb.html dpb]
| Daniel Bainton
| 2007-10-19 08:40:30
|-
| [http://maemo.org/profile/view/dpetroni.html dpetroni]
| Dejan Petronijeivc
| 2008-01-13 20:40:42
|-
| [http://maemo.org/profile/view/dpfmalloy.html dpfmalloy]
| den malloy
| 2008-01-25 20:33:14
|-
| [http://maemo.org/profile/view/dpfolie.html dpfolie]
| Duaine Folie
| 2007-11-28 15:43:35
|-
| [http://maemo.org/profile/view/dpnk44.html dpnk44]
| Martin Williams
| 2008-03-17 14:31:08
|-
| [http://maemo.org/profile/view/dpodwall.html dpodwall]
| Dan Podwall
| 2008-01-04 21:42:33
|-
| [http://maemo.org/profile/view/dpudikov.html dpudikov]
| 1 12
| 2008-05-03 18:41:03
|-
| [http://maemo.org/profile/view/dputnam.html dputnam]
| dean putnam
| 2007-06-30 16:40:20
|-
| [http://maemo.org/profile/view/dqtuan_it.html dqtuan_it]
| Dam Tuan
| 2008-02-22 08:30:57
|-
| [http://maemo.org/profile/view/draeger.html draeger]
| christopher draeger
| 2007-06-22 09:40:08
|-
| [http://maemo.org/profile/view/dragon.html dragon]
| Guneri Yesilyurt
| 2007-05-18 19:12:05
|-
| [http://maemo.org/profile/view/dragon2508.html dragon2508]
| percy caupain
| 2008-01-03 10:41:01
|-
| [http://maemo.org/profile/view/dragonnefyre.html dragonnefyre]
| Andy Laughton
| 2007-12-11 16:25:04
|-
| [http://maemo.org/profile/view/dralon.html dralon]
| Roland Scales
| 2007-06-13 17:40:48
|-
| [http://maemo.org/profile/view/draypsych.html draypsych]
| dustin malouff
| 2008-02-20 01:31:09
|-
| [http://maemo.org/profile/view/drbed.html drbed]
| darren bedford
| 2008-03-21 21:31:03
|-
| [http://maemo.org/profile/view/drboo.html drboo]
| Colin Vallance
| 2007-07-03 14:40:08
|-
| [http://maemo.org/profile/view/drclark.html drclark]
| clark capers
| 2008-04-18 22:41:23
|-
| [http://maemo.org/profile/view/drducky.html drducky]
| Kelly Alexander
| 2007-07-01 12:40:07
|-
| [http://maemo.org/profile/view/dremetek.html dremetek]
| Dolph Heppel
| 2008-02-11 04:31:07
|-
| [http://maemo.org/profile/view/dremin.html dremin]
| doug remington
| 2008-05-08 21:41:06
|-
| [http://maemo.org/profile/view/drepasky.html drepasky]
| Dick Repasky
| 2007-07-10 01:40:21
|-
| [http://maemo.org/profile/view/drew.html drew]
| drew casaccio
| 2007-06-30 20:40:09
|-
| [http://maemo.org/profile/view/drewan.html drewan]
| Andrew W.
| 2007-06-08 13:37:22
|-
| [http://maemo.org/profile/view/drewconsi.html drewconsi]
| drew considine
| 2007-05-23 05:29:46
|-
| [http://maemo.org/profile/view/drfink.html drfink]
| david fink
| 2007-05-18 19:14:09
|-
| [http://maemo.org/profile/view/drfredc.html drfredc]
| Fred Chittenden
| 2007-10-24 16:40:33
|-
| [http://maemo.org/profile/view/drgates.html drgates]
| Dan Gates
| 2008-01-27 22:31:35
|-
| [http://maemo.org/profile/view/drgnfly.html drgnfly]
| Dh Reitz
| 2008-01-26 06:31:09
|-
| [http://maemo.org/profile/view/drhayt.html drhayt]
| Richard Moran
| 2007-10-27 21:40:45
|-
| [http://maemo.org/profile/view/drhelix.html drhelix]
| hallo hullo
| 2008-02-02 16:31:49
|-
| [http://maemo.org/profile/view/drhoades.html drhoades]
| Derek Rhoades
| 2008-04-08 18:41:18
|-
| [http://maemo.org/profile/view/drierat.html drierat]
| Daniel Riera
| 2008-04-15 09:41:04
|-
| [http://maemo.org/profile/view/driftology.html driftology]
| anthony lester
| 2007-10-14 14:40:14
|-
| [http://maemo.org/profile/view/drift_me.html drift_me]
| P Chiu
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/driu_.html driu_]
| Andrea Lisi
| 2007-10-22 12:40:33
|-
| [http://maemo.org/profile/view/driverz.html driverz]
|  
| 2007-05-18 19:14:02
|-
| [http://maemo.org/profile/view/drizal.html drizal]
| remone edwards
| 2007-05-18 19:13:19
|-
| [http://maemo.org/profile/view/drizzt.html drizzt]
| Timothy Redaelli
| 2007-10-22 08:40:36
|-
| [http://maemo.org/profile/view/drker.html drker]
| Dan K
| 2007-12-11 16:26:01
|-
| [http://maemo.org/profile/view/drmozen.html drmozen]
| Mehmet öZEN
| 2008-01-06 23:52:21
|-
| [http://maemo.org/profile/view/drober.html drober]
| Roberto Salgado
| 2007-11-30 10:49:36
|-
| [http://maemo.org/profile/view/drodgin.html drodgin]
| Dan Rodgin
| 2007-05-18 19:10:42
|-
| [http://maemo.org/profile/view/droggen.html droggen]
| Daniel Roggen
| 2007-11-16 17:50:29
|-
| [http://maemo.org/profile/view/dropbear.html dropbear]
| peter bodley
| 2007-11-15 07:55:42
|-
| [http://maemo.org/profile/view/droygao.html droygao]
| Hongliang Gao
| 2007-10-16 21:40:32
|-
| [http://maemo.org/profile/view/drozd.html drozd]
| vadim veleos
| 2008-01-27 21:30:25
|-
| [http://maemo.org/profile/view/drozhkov.html drozhkov]
| Dmitry Rozhkov
| 2007-07-12 12:40:19
|-
| [http://maemo.org/profile/view/drpike.html drpike]
| Massimo 
| 2008-01-07 21:41:15
|-
| [http://maemo.org/profile/view/drspin71.html drspin71]
| silvio de lucia
| 2007-10-18 23:40:29
|-
| [http://maemo.org/profile/view/drtibasato.html drtibasato]
| David Tiba Sato
| 2008-03-14 01:31:18
|-
| [http://maemo.org/profile/view/drtjstone.html drtjstone]
| Tim Stone
| 2007-07-08 23:40:17
|-
| [http://maemo.org/profile/view/drulli.html drulli]
| Ulrich Schwalvenberg
| 2007-05-29 09:30:42
|-
| [http://maemo.org/profile/view/drunkenoaf.html drunkenoaf]
| Mark Hillen
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/druxx.html druxx]
| Ulf Behrens
| 2008-01-29 12:32:04
|-
| [http://maemo.org/profile/view/drwilt.html drwilt]
| Dave Wilton
| 2007-11-16 17:48:10
|-
| [http://maemo.org/profile/view/drydiggins.html drydiggins]
| George Lowry
| 2007-12-25 00:41:12
|-
| [http://maemo.org/profile/view/drzblackmamba.html drzblackmamba]
| nicolas landra
| 2007-10-21 06:40:32
|-
| [http://maemo.org/profile/view/drzenix.html drzenix]
| Jose Spetz
| 2007-12-12 18:40:53
|-
| [http://maemo.org/profile/view/dr_jeff.html dr_jeff]
| jeff miles
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/dr_kludge.html dr_kludge]
| Greg Morgan
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/dsadams17.html dsadams17]
| dave adams
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/dscaife.html dscaife]
| David Scaife
| 2008-04-25 14:41:06
|-
| [http://maemo.org/profile/view/dschless.html dschless]
| Daniel Schless
| 2007-06-19 07:10:39
|-
| [http://maemo.org/profile/view/dschmicker.html dschmicker]
| Detlef Schmicker
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/dsdee.html dsdee]
| David Dee
| 2008-02-22 13:30:58
|-
| [http://maemo.org/profile/view/dselven.html dselven]
| Dominic Selven
| 2007-12-11 16:26:06
|-
| [http://maemo.org/profile/view/dsimp.html dsimp]
| dustin simpson
| 2007-07-03 16:40:10
|-
| [http://maemo.org/profile/view/dslerner.html dslerner]
| David Lerner
| 2008-01-12 16:41:08
|-
| [http://maemo.org/profile/view/dsmudger.html dsmudger]
| Dan Smith
| 2008-02-07 18:31:19
|-
| [http://maemo.org/profile/view/dsowa.html dsowa]
| David Sowa
| 2007-06-27 20:40:16
|-
| [http://maemo.org/profile/view/dspeed.html dspeed]
| Derek Speed
| 2007-11-15 07:54:51
|-
| [http://maemo.org/profile/view/dsproductionz.html dsproductionz]
| mark liebrand
| 2008-01-16 07:41:04
|-
| [http://maemo.org/profile/view/dsprouse417.html dsprouse417]
| Daniel Sprouse
| 2007-05-18 19:11:49
|-
| [http://maemo.org/profile/view/dsralph.html dsralph]
| Ralph Spencer
| 2008-03-04 05:31:02
|-
| [http://maemo.org/profile/view/dst.html dst]
| Didier Stevens
| 2007-11-15 07:55:39
|-
| [http://maemo.org/profile/view/dstartz.html dstartz]
| Donna Startz
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/dstengle.html dstengle]
| David Stenglein
| 2007-10-18 19:40:41
|-
| [http://maemo.org/profile/view/dswanson.html dswanson]
| dave swanson
| 2007-05-18 19:10:43
|-
| [http://maemo.org/profile/view/dt101010.html dt101010]
| David Bernstein
| 2007-10-19 01:40:32
|-
| [http://maemo.org/profile/view/dtandrews.html dtandrews]
| Todd Andrews
| 2007-07-04 05:40:16
|-
| [http://maemo.org/profile/view/dtcnadams.html dtcnadams]
| Duane Adams
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/dtnixl.html dtnixl]
| Dave Nerge
| 2008-01-06 17:40:59
|-
| [http://maemo.org/profile/view/dtorio.html dtorio]
| David Torio Padron
| 2007-12-16 19:41:06
|-
| [http://maemo.org/profile/view/dtseng123.html dtseng123]
| darren tseng
| 2007-11-28 15:42:12
|-
| [http://maemo.org/profile/view/dttatu.html dttatu]
| tamer tuz
| 2008-02-28 22:31:02
|-
| [http://maemo.org/profile/view/dtto55.html dtto55]
| david walker
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/duanwenhui.html duanwenhui]
| duan wenhui
| 2007-05-30 06:03:28
|-
| [http://maemo.org/profile/view/dubwise.html dubwise]
| Dan Richardson
| 2008-01-11 11:11:15
|-
| [http://maemo.org/profile/view/duc.html duc]
| Duc Nguyen
| 2008-01-14 04:41:02
|-
| [http://maemo.org/profile/view/ducati9595fx.html ducati9595fx]
| john stewart
| 2008-02-20 18:31:00
|-
| [http://maemo.org/profile/view/duckdown.html duckdown]
| mike tyson
| 2007-12-11 16:26:32
|-
| [http://maemo.org/profile/view/dude.html dude]
| Victor Backman
| 2007-12-27 19:41:39
|-
| [http://maemo.org/profile/view/duduak.html duduak]
| David Lev
| 2007-11-16 17:49:14
|-
| [http://maemo.org/profile/view/dueyfinster.html dueyfinster]
| Neil Grogan
| 2007-02-01 22:10:08
|-
| [http://maemo.org/profile/view/duke9985.html duke9985]
| loic pfister
| 2008-02-20 09:31:02
|-
| [http://maemo.org/profile/view/duluth.html duluth]
| carlo villoresi
| 2008-02-07 18:30:37
|-
| [http://maemo.org/profile/view/dumsterdave.html dumsterdave]
| david magrane
| 2008-04-08 15:41:09
|-
| [http://maemo.org/profile/view/duncan.html duncan]
| Duncan Booth
| 2007-12-11 16:25:30
|-
| [http://maemo.org/profile/view/durgis.html durgis]
| Brad Booms
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/durin.html durin]
| Sami Erjomaa
| 2007-05-18 19:12:31
|-
| [http://maemo.org/profile/view/dustin.html dustin]
| Andrew Sherepa
| 2007-11-15 07:55:52
|-
| [http://maemo.org/profile/view/dustincollis.html dustincollis]
| Dustin Collis
| 2008-04-09 03:41:07
|-
| [http://maemo.org/profile/view/dustinw78.html dustinw78]
| dustin watkins
| 2008-04-08 18:41:16
|-
| [http://maemo.org/profile/view/dusty.html dusty]
| Dustin DeWeese
| 2008-02-28 03:31:04
|-
| [http://maemo.org/profile/view/dutch.html dutch]
| dutch dev
| 2008-03-11 20:31:01
|-
| [http://maemo.org/profile/view/dvarghes.html dvarghes]
| Dennis Varghese
| 2008-01-16 17:41:15
|-
| [http://maemo.org/profile/view/dvdinva.html dvdinva]
| DAVID NELSON
| 2008-02-21 00:30:58
|-
| [http://maemo.org/profile/view/dveeden.html dveeden]
| Daniel van Eeden
| 2007-11-03 13:40:43
|-
| [http://maemo.org/profile/view/dvergin.html dvergin]
| David Vergin
| 2008-02-04 05:31:31
|-
| [http://maemo.org/profile/view/dvincent.html dvincent]
| David Vincent
| 2007-11-28 15:43:20
|-
| [http://maemo.org/profile/view/dwainusa.html dwainusa]
| Don Adams
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/dwardo.html dwardo]
| Benjamin REVEILLE
| 2007-05-18 19:12:18
|-
| [http://maemo.org/profile/view/dwforslund.html dwforslund]
| David Forslund
| 2007-11-28 15:43:48
|-
| [http://maemo.org/profile/view/dwightschrute.html dwightschrute]
| dakota rivero
| 2007-12-26 15:51:49
|-
| [http://maemo.org/profile/view/dwijendra.html dwijendra]
| dwijendra Kumar
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/dwinc.html dwinc]
| edwin coleman
| 2007-11-16 17:47:19
|-
| [http://maemo.org/profile/view/dwlegg.html dwlegg]
| David Legg
| 2008-02-02 11:31:03
|-
| [http://maemo.org/profile/view/dwmann7.html dwmann7]
| William Mann
| 2007-05-18 19:12:03
|-
| [http://maemo.org/profile/view/dwnto7.html dwnto7]
| Doug Winters
| 2007-06-28 02:40:08
|-
| [http://maemo.org/profile/view/dws.html dws]
| Daniel Schaefer
| 2007-12-22 21:42:16
|-
| [http://maemo.org/profile/view/dwysong.html dwysong]
| D Wysong
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/dyatsun.html dyatsun]
| Dana yatsun
| 2008-05-16 06:41:18
|-
| [http://maemo.org/profile/view/dylanmccall.html dylanmccall]
| Dylan McCall
| 2007-10-19 22:40:30
|-
| [http://maemo.org/profile/view/dylann800.html dylann800]
| d e
| 2008-01-02 05:40:55
|-
| [http://maemo.org/profile/view/dymas.html dymas]
| pat reehal
| 2007-11-16 17:49:13
|-
| [http://maemo.org/profile/view/dynamix.html dynamix]
| Martin Johnson
| 2007-12-29 01:41:08
|-
| [http://maemo.org/profile/view/dzahariev.html dzahariev]
| Dobromir Zahariev
| 2008-04-18 08:41:09
|-
| [http://maemo.org/profile/view/dzamarripa.html dzamarripa]
| david zamarripa
| 2007-06-25 04:40:06
|-
| [http://maemo.org/profile/view/dzerrien.html dzerrien]
| Don Zerrien
| 2007-11-16 17:49:17
|-
| [http://maemo.org/profile/view/dzignr.html dzignr]
| Jimmy Cheah
| 2007-07-03 01:40:15
|-
| [http://maemo.org/profile/view/dzzhu.html dzzhu]
| zhu da zhi
| 2008-05-25 01:51:37
|-
| [http://maemo.org/profile/view/d_armantrading.html d_armantrading]
| dennis armantrading
| 2007-07-08 13:40:09
|-
| [http://maemo.org/profile/view/d_i_g.html d_i_g]
| Dmitry Goldobin
| 2008-05-06 05:41:07
|-
| [http://maemo.org/profile/view/d_nataraj.html d_nataraj]
| NATARAJ DONTHULA
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/e133th4x0r.html e133th4x0r]
| David Allender
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/e1776.html e1776]
| Eric Gregorich
| 2008-01-04 15:43:10
|-
| [http://maemo.org/profile/view/e1th0r.html e1th0r]
| Hector Colina
| 2007-11-15 07:55:53
|-
| [http://maemo.org/profile/view/e2jc.html e2jc]
| jack vanderwaal
| 2007-10-14 18:40:26
|-
| [http://maemo.org/profile/view/ea5.html ea5]
| andrea g
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/eaaronp.html eaaronp]
| Bryan haskins
| 2007-05-18 19:11:40
|-
| [http://maemo.org/profile/view/eagleclay.html eagleclay]
| walter michaels
| 2008-04-03 16:41:07
|-
| [http://maemo.org/profile/view/eagleone777.html eagleone777]
| eagle one
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/earl.html earl]
| Earl Gentile
| 2007-06-30 03:40:09
|-
| [http://maemo.org/profile/view/earl00.html earl00]
| Earl Naylor
| 2007-06-11 07:51:55
|-
| [http://maemo.org/profile/view/easysky.html easysky]
| sky hong
| 2007-11-28 15:43:32
|-
| [http://maemo.org/profile/view/eatpizza.html eatpizza]
| Mud Honey
| 2007-05-18 19:10:50
|-
| [http://maemo.org/profile/view/ebassi.html ebassi]
| Emmanuele Bassi
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/ebekker.html ebekker]
| Zed Bekker
| 2007-05-18 19:11:32
|-
| [http://maemo.org/profile/view/eberna.html eberna]
| emanuele bernardi
| 2007-10-19 17:40:32
|-
| [http://maemo.org/profile/view/ebike.html ebike]
| Bernard Mentink
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/ebnert.html ebnert]
| Tobias Ebner
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/ebragge.html ebragge]
| Eero Bragge
| 2007-11-16 17:47:58
|-
| [http://maemo.org/profile/view/ebrimasecka.html ebrimasecka]
| ebrima secka
| 2008-03-31 11:41:07
|-
| [http://maemo.org/profile/view/ebrooks.html ebrooks]
| Eric Brooks
| 2007-11-16 17:47:57
|-
| [http://maemo.org/profile/view/ebsuresh.html ebsuresh]
| suresh eb
| 2007-10-18 16:40:28
|-
| [http://maemo.org/profile/view/ec1771.html ec1771]
| ettore cascino
| 2007-07-30 05:40:19
|-
| [http://maemo.org/profile/view/ecastillo.html ecastillo]
| edoardo castillo
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/ecc.html ecc]
| Eric Cooper
| 2007-07-07 15:40:11
|-
| [http://maemo.org/profile/view/ecdi.html ecdi]
| Eckhard Diezel
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/echelon89.html echelon89]
| francesco rosso
| 2007-10-22 07:40:36
|-
| [http://maemo.org/profile/view/echterbayer.html echterbayer]
| Alfred Heigl
| 2007-05-18 19:10:27
|-
| [http://maemo.org/profile/view/eclipsebluex.html eclipsebluex]
| Christopher Arosemena
| 2008-05-29 20:41:30
|-
| [http://maemo.org/profile/view/ecobusman.html ecobusman]
| peter spratt
| 2008-03-11 06:31:06
|-
| [http://maemo.org/profile/view/econprof.html econprof]
| Daniel Christiansen
| 2008-04-11 15:41:06
|-
| [http://maemo.org/profile/view/econtigo.html econtigo]
| erik weber
| 2007-07-10 03:40:15
|-
| [http://maemo.org/profile/view/ecronin.html ecronin]
| Eric Cronin
| 2008-04-16 16:41:20
|-
| [http://maemo.org/profile/view/eda.html eda]
| Ed Adasiewicz
| 2007-02-10 18:50:07
|-
| [http://maemo.org/profile/view/edc808a.html edc808a]
| Edward Constantine
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/edckdw.html edckdw]
| eric de ceuster
| 2007-05-23 05:29:38
|-
| [http://maemo.org/profile/view/eddard.html eddard]
| Eddie Hiatt
| 2007-07-04 06:40:10
|-
| [http://maemo.org/profile/view/edderspcs.html edderspcs]
| ed mac
| 2007-07-03 12:40:09
|-
| [http://maemo.org/profile/view/eddieburgess.html eddieburgess]
| eddie burgess
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/eddired.html eddired]
| Edgardo Crescenzi
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/eddison.html eddison]
| eddison saengnak
| 2008-02-01 18:31:05
|-
| [http://maemo.org/profile/view/edem.html edem]
| edem chen
| 2008-01-29 07:31:13
|-
| [http://maemo.org/profile/view/edenexile.html edenexile]
| Adam Tan
| 2007-12-20 09:41:21
|-
| [http://maemo.org/profile/view/edenoyelle.html edenoyelle]
| Emmanuel Denoyelle
| 2007-12-11 16:25:33
|-
| [http://maemo.org/profile/view/edeus.html edeus]
| Karoly Nador
| 2008-02-14 12:01:19
|-
| [http://maemo.org/profile/view/edfonseca.html edfonseca]
| Emanuel Fonseca
| 2007-11-28 15:43:46
|-
| [http://maemo.org/profile/view/edgester.html edgester]
| Jason Edgecombe
| 2008-04-09 00:42:57
|-
| [http://maemo.org/profile/view/edgley.html edgley]
| simon edgley
| 2007-05-18 19:13:46
|-
| [http://maemo.org/profile/view/edigasp.html edigasp]
| edigasp edigasp
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/edik.html edik]
| ed sternin
| 2008-02-01 20:42:12
|-
| [http://maemo.org/profile/view/edison.html edison]
| Edison Mera Menéndez
| 2007-11-15 07:54:53
|-
| [http://maemo.org/profile/view/edisonlopez.html edisonlopez]
| edison lopez
| 2008-01-09 04:41:00
|-
| [http://maemo.org/profile/view/edisson.html edisson]
| Edisson Braga
| 2007-05-18 19:13:47
|-
| [http://maemo.org/profile/view/edjard.html edjard]
| Edjard Mota
| 2008-03-04 12:31:01
|-
| [http://maemo.org/profile/view/edjunior76.html edjunior76]
| Edmund Cudanes Jr
| 2007-05-18 19:12:33
|-
| [http://maemo.org/profile/view/edjusted.html edjusted]
| Edward Wu
| 2007-07-25 20:40:18
|-
| [http://maemo.org/profile/view/edman.html edman]
| Edward Cann
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/edmundsong.html edmundsong]
| edmunds ong
| 2007-12-11 18:41:08
|-
| [http://maemo.org/profile/view/edrex.html edrex]
| Eric Drechsel
| 2008-04-13 22:41:14
|-
| [http://maemo.org/profile/view/edsack.html edsack]
| Edgar Sack
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/edssouza.html edssouza]
| edson souza
| 2007-05-18 19:12:17
|-
| [http://maemo.org/profile/view/edt.html edt]
| ed tomlinson
| 2007-06-09 13:50:54
|-
| [http://maemo.org/profile/view/eduard-urbach.html eduard-urbach]
| Eduard Urbach
| 2007-10-25 12:40:36
|-
| [http://maemo.org/profile/view/eduardp.html eduardp]
| Eduard Pertinez
| 2007-05-18 19:11:13
|-
| [http://maemo.org/profile/view/edubezval.html edubezval]
| Eduardo Bezerra Valentin
| 2007-05-18 19:11:14
|-
| [http://maemo.org/profile/view/eduplessis.html eduplessis]
| Édouard Duplessis
| 2007-11-15 07:55:44
|-
| [http://maemo.org/profile/view/edvax.html edvax]
| Ed V
| 2007-11-16 17:49:19
|-
| [http://maemo.org/profile/view/edwardgao.html edwardgao]
| Qin Gao
| 2008-01-03 10:40:59
|-
| [http://maemo.org/profile/view/edwardparadis.html edwardparadis]
| Ed Paradis
| 2008-02-04 05:31:30
|-
| [http://maemo.org/profile/view/edwinhu.html edwinhu]
| John Doe
| 2007-11-06 04:40:46
|-
| [http://maemo.org/profile/view/ed_.html ed_]
| Ed Bartosh
| 2007-05-18 19:10:44
|-
| [http://maemo.org/profile/view/ed_raymond.html ed_raymond]
| Edward Raymond
| 2007-10-23 05:40:34
|-
| [http://maemo.org/profile/view/eehmke.html eehmke]
| Eggert Ehmke
| 2008-04-16 13:41:10
|-
| [http://maemo.org/profile/view/eelaix.html eelaix]
| caigao yang
| 2008-06-04 23:41:14
|-
| [http://maemo.org/profile/view/eemaju.html eemaju]
| Jussi Maaniitty
| 2007-10-19 07:40:30
|-
| [http://maemo.org/profile/view/eemars.html eemars]
| Andy Luo
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/eenest.html eenest]
| Eugene Nesterenko
| 2007-05-18 19:12:29
|-
| [http://maemo.org/profile/view/eeojmt.html eeojmt]
| James Turbitt
| 2008-06-04 22:41:09
|-
| [http://maemo.org/profile/view/eeroglu.html eeroglu]
| emin eroglu
| 2007-11-15 07:55:03
|-
| [http://maemo.org/profile/view/eeros.html eeros]
| Eero Salli
| 2007-10-20 06:40:32
|-
| [http://maemo.org/profile/view/eetu.html eetu]
| Eetu Huisman
| 2007-12-12 13:40:50
|-
| [http://maemo.org/profile/view/eeyore.html eeyore]
| Ilia Fakhroudinoff
| 2007-06-28 15:40:14
|-
| [http://maemo.org/profile/view/efebo_abel.html efebo_abel]
| Omar F Rodriguez
| 2007-10-20 06:40:32
|-
| [http://maemo.org/profile/view/effie0830.html effie0830]
| Peter Rad
| 2007-11-16 17:47:57
|-
| [http://maemo.org/profile/view/efhirt.html efhirt]
| Eric Hirt
| 2008-04-10 23:41:07
|-
| [http://maemo.org/profile/view/efilion.html efilion]
| Eric Filion
| 2007-12-31 04:42:10
|-
| [http://maemo.org/profile/view/eflo9435.html eflo9435]
| Ernest Floyd
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/efoxxi.html efoxxi]
| Michael Kotov
| 2008-02-01 20:42:13
|-
| [http://maemo.org/profile/view/efrengut.html efrengut]
| Efren Gutierrez
| 2008-03-21 13:31:04
|-
| [http://maemo.org/profile/view/egorkkk.html egorkkk]
| Egor Sobakov
| 2007-11-02 14:40:36
|-
| [http://maemo.org/profile/view/egres.html egres]
| Serge Matveev
| 2007-08-14 20:40:21
|-
| [http://maemo.org/profile/view/egrot.html egrot]
| T. Storm
| 2007-05-18 19:11:39
|-
| [http://maemo.org/profile/view/eguilfoyle.html eguilfoyle]
| Eamon Guilfoyle
| 2008-04-13 00:45:29
|-
| [http://maemo.org/profile/view/egv.html egv]
| Gennady Evstratov
| 2008-05-25 15:41:16
|-
| [http://maemo.org/profile/view/egveer.html egveer]
| E van der Veer
| 2007-06-19 07:10:38
|-
| [http://maemo.org/profile/view/ehadsell.html ehadsell]
| Egan Hadsell
| 2008-01-19 02:31:16
|-
| [http://maemo.org/profile/view/ehanley.html ehanley]
| Eric Hanley
| 2007-10-18 23:40:29
|-
| [http://maemo.org/profile/view/ehell.html ehell]
| earl hellum
| 2007-11-28 15:43:18
|-
| [http://maemo.org/profile/view/ehuntx.html ehuntx]
| ethan hunt
| 2008-02-11 19:32:03
|-
| [http://maemo.org/profile/view/eibenstock.html eibenstock]
| Mathias Schmidt
| 2007-06-08 13:37:15
|-
| [http://maemo.org/profile/view/eichels.html eichels]
| Eric Eichelsdorfer
| 2008-03-10 16:31:01
|-
| [http://maemo.org/profile/view/eichi.html eichi]
| Thomas Krauss
| 2007-07-08 18:40:17
|-
| [http://maemo.org/profile/view/eicyme.html eicyme]
| james jackson
| 2007-05-30 15:40:52
|-
| [http://maemo.org/profile/view/eideteker.html eideteker]
| Mike Kessler
| 2008-01-11 23:41:07
|-
| [http://maemo.org/profile/view/eige.html eige]
| Sharon Eige
| 2007-11-04 00:40:43
|-
| [http://maemo.org/profile/view/eileen.html eileen]
| eileen khoo
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/eilukka.html eilukka]
| Eija Lukkarila
| 2008-02-24 10:31:45
|-
| [http://maemo.org/profile/view/ein750.html ein750]
| Pontus Sjöström
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/eipi.html eipi]
| Sanjeev Visvanatha
| 2007-12-13 03:40:58
|-
| [http://maemo.org/profile/view/eirikr72.html eirikr72]
| Erick Fuentes
| 2007-05-18 19:13:03
|-
| [http://maemo.org/profile/view/eismaus.html eismaus]
| Cornelia Reinhardt
| 2007-10-31 13:40:37
|-
| [http://maemo.org/profile/view/eitzei.html eitzei]
| Antti Järvinen
| 2007-11-16 17:49:28
|-
| [http://maemo.org/profile/view/eizzn.html eizzn]
| Peter Ha
| 2008-01-25 21:41:42
|-
| [http://maemo.org/profile/view/ejoftheweb.html ejoftheweb]
| Edward Barrow
| 2007-11-15 13:40:45
|-
| [http://maemo.org/profile/view/ejw02.html ejw02]
| elanna webster
| 2008-01-11 18:41:25
|-
| [http://maemo.org/profile/view/ekayxu.html ekayxu]
| Ekay Xu
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/ekersha299.html ekersha299]
| eslam kersha
| 2007-07-01 09:40:07
|-
| [http://maemo.org/profile/view/ekosin.html ekosin]
| Ergil Osin
| 2007-10-18 13:40:30
|-
| [http://maemo.org/profile/view/ekoster.html ekoster]
| Everhard Koster
| 2007-10-19 19:40:32
|-
| [http://maemo.org/profile/view/ekrowicki.html ekrowicki]
| Eric Krowicki
| 2008-06-10 14:31:16
|-
| [http://maemo.org/profile/view/el-amir.html el-amir]
| Amir Ben
| 2007-11-16 17:49:31
|-
| [http://maemo.org/profile/view/elango.html elango]
| Elango Pandiyan
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/elanna123.html elanna123]
| elanna webster
| 2008-02-05 10:31:27
|-
| [http://maemo.org/profile/view/elayne.html elayne]
| elayne safir
| 2008-04-18 02:51:04
|-
| [http://maemo.org/profile/view/elb.html elb]
| Ethan Blanton
| 2007-10-26 23:40:30
|-
| [http://maemo.org/profile/view/elbert.html elbert]
| Elbert Hu
| 2007-10-18 21:40:03
|-
| [http://maemo.org/profile/view/elbournb.html elbournb]
| Berni Elbourn
| 2008-02-26 22:31:13
|-
| [http://maemo.org/profile/view/elcic.html elcic]
| Paolo Miani
| 2007-11-16 17:49:34
|-
| [http://maemo.org/profile/view/eldemila.html eldemila]
| Debbie N
| 2007-07-17 19:41:34
|-
| [http://maemo.org/profile/view/eldios.html eldios]
| Lele é_è
| 2007-05-18 19:13:07
|-
| [http://maemo.org/profile/view/electronicani.html electronicani]
| george kazaklis
| 2007-12-21 14:51:19
|-
| [http://maemo.org/profile/view/eleftherakis.html eleftherakis]
| George Eleftherakis
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/elementsk8er.html elementsk8er]
| Eric Hernandez
| 2007-11-16 17:47:47
|-
| [http://maemo.org/profile/view/eleoig.html eleoig]
| Gioele Casieri
| 2007-09-07 10:40:23
|-
| [http://maemo.org/profile/view/elephantum.html elephantum]
| Andrey Tatarinov
| 2007-05-18 19:11:39
|-
| [http://maemo.org/profile/view/eleseur.html eleseur]
| Eric LeSeur
| 2007-12-23 02:41:48
|-
| [http://maemo.org/profile/view/elfosognatore.html elfosognatore]
| fulvio pezzella
| 2008-02-14 12:01:18
|-
| [http://maemo.org/profile/view/elfstones65.html elfstones65]
| Jason Engelsman
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/elgato.html elgato]
| Richard Griffin
| 2007-12-30 22:45:23
|-
| [http://maemo.org/profile/view/elias21.html elias21]
| Les Schwartz
| 2008-04-15 14:41:18
|-
| [http://maemo.org/profile/view/elie.html elie]
| Elie GERHARD
| 2008-04-26 01:41:02
|-
| [http://maemo.org/profile/view/eliza.html eliza]
| Eliza Kao
| 2008-05-21 17:41:03
|-
| [http://maemo.org/profile/view/eljayelrey.html eljayelrey]
| Jay Divac
| 2007-05-23 05:29:45
|-
| [http://maemo.org/profile/view/ellenm1.html ellenm1]
| ellen murphy
| 2007-07-07 12:40:16
|-
| [http://maemo.org/profile/view/ellie.html ellie]
| Ellie Portugali
| 2007-05-18 19:13:15
|-
| [http://maemo.org/profile/view/elliio.html elliio]
| elliio .
| 2007-11-16 17:48:01
|-
| [http://maemo.org/profile/view/elmachi.html elmachi]
| mario Fabian
| 2007-11-15 07:56:16
|-
| [http://maemo.org/profile/view/elmano.html elmano]
| Elmano Carvalho
| 2007-05-18 19:14:08
|-
| [http://maemo.org/profile/view/elmanocarvalho.html elmanocarvalho]
| Elmano Carvalho
| 2007-05-18 19:11:13
|-
| [http://maemo.org/profile/view/elmarco.html elmarco]
| Marc-Andre Lureau
| 2007-05-18 19:12:28
|-
| [http://maemo.org/profile/view/elmoose.html elmoose]
| JOse Ciprian
| 2007-12-11 16:25:50
|-
| [http://maemo.org/profile/view/elo.html elo]
| Leo Selavo
| 2007-10-19 16:40:34
|-
| [http://maemo.org/profile/view/elow.html elow]
| edison lopez
| 2008-02-24 09:30:58
|-
| [http://maemo.org/profile/view/elpaso.html elpaso]
| Alessandro Pasotti
| 2007-04-04 08:16:22
|-
| [http://maemo.org/profile/view/elperro.html elperro]
| Roberto Carlos Vazquez
| 2007-12-27 12:41:26
|-
| [http://maemo.org/profile/view/elpillo.html elpillo]
| Raul Perez-Alejo Neyra
| 2008-03-17 21:31:05
|-
| [http://maemo.org/profile/view/else58.html else58]
| Ed Swarthout
| 2007-06-22 06:40:07
|-
| [http://maemo.org/profile/view/elton223.html elton223]
| Robin Lapat
| 2007-11-16 17:47:25
|-
| [http://maemo.org/profile/view/eltuco.html eltuco]
| Gerardo Artola Pola
| 2008-01-28 11:31:28
|-
| [http://maemo.org/profile/view/eluis.html eluis]
| Eduardo Luis
| 2007-12-12 22:41:59
|-
| [http://maemo.org/profile/view/elwarren.html elwarren]
| Warren Lindsey
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/elwoody.html elwoody]
| Juergen Vollmer
| 2007-10-20 19:40:30
|-
| [http://maemo.org/profile/view/elyobelyob.html elyobelyob]
| Nick B
| 2007-12-16 15:40:49
|-
| [http://maemo.org/profile/view/ema-jc.html ema-jc]
| Joseph Caban
| 2008-03-04 00:31:05
|-
| [http://maemo.org/profile/view/emabardo.html emabardo]
| ema bardo
| 2007-11-30 10:49:36
|-
| [http://maemo.org/profile/view/emags.html emags]
| Bradley Liu
| 2007-11-28 15:43:48
|-
| [http://maemo.org/profile/view/emanuel.html emanuel]
| Emanuel Filho
| 2007-05-18 19:12:44
|-
| [http://maemo.org/profile/view/emanuele.html emanuele]
| Emanuele Olivetti
| 2007-10-22 11:40:32
|-
| [http://maemo.org/profile/view/emarlin.html emarlin]
| evan marlin
| 2007-11-16 17:46:37
|-
| [http://maemo.org/profile/view/ember447.html ember447]
| Emil Berbano
| 2008-03-24 19:31:04
|-
| [http://maemo.org/profile/view/emdimon.html emdimon]
| Matt Dimond-Brown
| 2008-01-21 23:41:29
|-
| [http://maemo.org/profile/view/emedlin.html emedlin]
| Eric Medlin
| 2007-11-16 17:47:06
|-
| [http://maemo.org/profile/view/emenius.html emenius]
| Naved Azhar
| 2008-01-22 16:30:59
|-
| [http://maemo.org/profile/view/emerenda.html emerenda]
| Elaine Merenda
| 2007-12-11 16:25:21
|-
| [http://maemo.org/profile/view/emerick.html emerick]
| emerick giberne
| 2007-10-20 07:40:33
|-
| [http://maemo.org/profile/view/emiki.html emiki]
| Szilard Miklos Erdelyi
| 2007-11-15 07:55:45
|-
| [http://maemo.org/profile/view/emil10001.html emil10001]
| John Feig
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/emilzaag.html emilzaag]
| Emil Zaag
| 2008-03-24 17:31:07
|-
| [http://maemo.org/profile/view/emind.html emind]
| Davide Bocci
| 2007-10-22 06:40:31
|-
| [http://maemo.org/profile/view/emjayes.html emjayes]
| Mika Saarela
| 2008-05-14 11:41:08
|-
| [http://maemo.org/profile/view/emmanuel.html emmanuel]
| Emmanuel Pacaud
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/emmit504.html emmit504]
| emmit ramsey
| 2007-05-18 19:11:08
|-
| [http://maemo.org/profile/view/emresar.html emresar]
| emre sarigol
| 2007-12-21 14:51:19
|-
| [http://maemo.org/profile/view/emsino.html emsino]
| Martin J. Laubach
| 2007-11-16 17:50:05
|-
| [http://maemo.org/profile/view/enbrewer.html enbrewer]
| Eric Brewer
| 2007-12-28 18:41:28
|-
| [http://maemo.org/profile/view/ende.html ende]
| bakoye solama
| 2007-11-15 07:55:52
|-
| [http://maemo.org/profile/view/ender.html ender]
| Andrew Wiggin
| 2008-03-25 00:31:05
|-
| [http://maemo.org/profile/view/endo.html endo]
| sean brozak
| 2008-03-24 02:32:16
|-
| [http://maemo.org/profile/view/endorphinum.html endorphinum]
| Carlos Pinto
| 2007-12-19 16:41:32
|-
| [http://maemo.org/profile/view/endzeit.html endzeit]
| Markus H.
| 2007-12-17 16:41:24
|-
| [http://maemo.org/profile/view/end_user.html end_user]
| Rusto Busto
| 2007-11-16 17:49:05
|-
| [http://maemo.org/profile/view/enermax.html enermax]
| lamine bakhta
| 2008-05-21 20:41:10
|-
| [http://maemo.org/profile/view/engelbp.html engelbp]
| Paul Engelberth
| 2008-01-17 19:41:16
|-
| [http://maemo.org/profile/view/engelshai.html engelshai]
| Torsten Reimers
| 2007-11-16 17:49:32
|-
| [http://maemo.org/profile/view/engerling.html engerling]
| andreas meyer
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/enginator.html enginator]
| Slim Chestnut
| 2008-02-02 07:31:04
|-
| [http://maemo.org/profile/view/englert.html englert]
| Ervin Englert
| 2007-10-18 20:40:22
|-
| [http://maemo.org/profile/view/enguillem.html enguillem]
| Guillem Mateu
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/eng_houssam.html eng_houssam]
| houssam eddin makkie
| 2008-05-16 12:41:13
|-
| [http://maemo.org/profile/view/enigma_wang.html enigma_wang]
| Michael Wang
| 2007-12-12 06:40:49
|-
| [http://maemo.org/profile/view/enilder.html enilder]
| Bryan M
| 2007-05-31 02:40:52
|-
| [http://maemo.org/profile/view/enjoioc.html enjoioc]
| steve rin
| 2007-11-15 07:56:23
|-
| [http://maemo.org/profile/view/enlith.html enlith]
| Zhou Enlith
| 2007-06-30 13:40:07
|-
| [http://maemo.org/profile/view/eno.html eno]
| Ajai Khattri
| 2008-04-08 18:41:18
|-
| [http://maemo.org/profile/view/enobian.html enobian]
| mark caldwell
| 2008-03-31 23:41:04
|-
| [http://maemo.org/profile/view/enodev.html enodev]
| Jan Dittmer
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/enotil.html enotil]
| linus gonzales
| 2008-02-15 00:30:57
|-
| [http://maemo.org/profile/view/enr1c0.html enr1c0]
| Enrico Lovuolo
| 2007-10-22 15:40:35
|-
| [http://maemo.org/profile/view/enrevanche.html enrevanche]
| barry campbell
| 2007-05-18 19:12:25
|-
| [http://maemo.org/profile/view/enrgeeman.html enrgeeman]
| Nathaniel Clench
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/enric.html enric]
| Enrique Guitart
| 2007-05-18 19:13:53
|-
| [http://maemo.org/profile/view/enrico.html enrico]
| enrico wang
| 2007-10-17 10:40:27
|-
| [http://maemo.org/profile/view/ensonic.html ensonic]
| Stefan Kost
| 2007-05-21 13:43:14
|-
| [http://maemo.org/profile/view/enyback.html enyback]
| Emil Nyback
| 2008-04-29 10:41:07
|-
| [http://maemo.org/profile/view/eocanha.html eocanha]
| Enrique Ocaña González
| 2008-04-18 11:41:08
|-
| [http://maemo.org/profile/view/eode.html eode]
| Brian Visel
| 2007-06-28 01:40:17
|-
| [http://maemo.org/profile/view/eokerson.html eokerson]
| Ed Okerson
| 2007-05-18 19:11:28
|-
| [http://maemo.org/profile/view/epankala.html epankala]
| Janne Pänkälä
| 2007-10-19 07:40:30
|-
| [http://maemo.org/profile/view/epelo.html epelo]
| Esa E
| 2007-01-05 13:20:07
|-
| [http://maemo.org/profile/view/epepepep.html epepepep]
| Brian Epstein
| 2007-12-11 16:25:08
|-
| [http://maemo.org/profile/view/epertinez.html epertinez]
| Eduard Pertíñez
| 2007-10-22 07:40:36
|-
| [http://maemo.org/profile/view/epicrelic.html epicrelic]
| E F
| 2007-05-18 19:11:48
|-
| [http://maemo.org/profile/view/epiphonic.html epiphonic]
| ian horne
| 2007-11-16 17:47:44
|-
| [http://maemo.org/profile/view/epitaciom.html epitaciom]
| Epitacio Miguel
| 2007-11-16 17:48:31
|-
| [http://maemo.org/profile/view/epohl.html epohl]
| Edvard Pohl
| 2007-11-28 15:43:06
|-
| [http://maemo.org/profile/view/epollari.html epollari]
| Esa Pollari
| 2007-06-10 10:10:38
|-
| [http://maemo.org/profile/view/eponx.html eponx]
| Viktor A
| 2008-04-04 03:41:05
|-
| [http://maemo.org/profile/view/eppyramot.html eppyramot]
| Sheldon Epstein
| 2007-07-08 18:40:16
|-
| [http://maemo.org/profile/view/epresence.html epresence]
| kofi glover
| 2008-03-22 22:31:02
|-
| [http://maemo.org/profile/view/epretorious.html epretorious]
| eric pretorious
| 2007-11-16 17:49:17
|-
| [http://maemo.org/profile/view/epurvis2.html epurvis2]
| ellen purvis
| 2008-01-15 06:40:55
|-
| [http://maemo.org/profile/view/epx.html epx]
| Elvis Pfutzenreuter
| 2007-04-05 15:25:39
|-
| [http://maemo.org/profile/view/epyon333.html epyon333]
| Jose Castillo
| 2007-05-18 19:12:18
|-
| [http://maemo.org/profile/view/epytos.html epytos]
| Nick McLoughlin
| 2007-10-29 20:40:36
|-
| [http://maemo.org/profile/view/eram.html eram]
| fatih erener
| 2007-12-24 13:41:17
|-
| [http://maemo.org/profile/view/eransan.html eransan]
| Eran Sandhaus
| 2008-05-04 03:41:05
|-
| [http://maemo.org/profile/view/erduende.html erduende]
| Jesús Carmona Garrido
| 2007-10-19 07:40:30
|-
| [http://maemo.org/profile/view/erezs.html erezs]
| Erez Strauss
| 2007-10-23 05:40:34
|-
| [http://maemo.org/profile/view/erg.html erg]
| Doug Coleman
| 2007-10-18 22:40:30
|-
| [http://maemo.org/profile/view/eric.html eric]
| Eric Dubois
| 2007-11-15 07:55:12
|-
| [http://maemo.org/profile/view/eric70.html eric70]
| Eric Siete Cero
| 2007-12-29 13:41:05
|-
| [http://maemo.org/profile/view/ericcmi.html ericcmi]
| Eric Chaney
| 2008-04-24 06:41:15
|-
| [http://maemo.org/profile/view/ericdv.html ericdv]
| Eric De Vito
| 2007-05-18 19:12:17
|-
| [http://maemo.org/profile/view/ericf2009.html ericf2009]
| Eric Foster
| 2008-04-05 07:41:06
|-
| [http://maemo.org/profile/view/erich929.html erich929]
| Erich Meyer
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/ericl.html ericl]
| Eric Ladouceur
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/ericliu.html ericliu]
| Eric Liu
| 2007-10-24 14:40:36
|-
| [http://maemo.org/profile/view/ericof.html ericof]
| Erico Andrei
| 2007-10-19 19:40:33
|-
| [http://maemo.org/profile/view/erictsing.html erictsing]
| Eric Tsing
| 2007-12-11 16:26:33
|-
| [http://maemo.org/profile/view/erik.html erik]
| Erik Salaj
| 2007-10-19 00:40:52
|-
| [http://maemo.org/profile/view/erikarls.html erikarls]
| Erik Karlsson
| 2007-05-18 19:11:07
|-
| [http://maemo.org/profile/view/erikthered.html erikthered]
| Erik Nelson
| 2008-02-29 02:31:02
|-
| [http://maemo.org/profile/view/erik_olsen.html erik_olsen]
| Erik Olsen
| 2008-03-20 15:31:03
|-
| [http://maemo.org/profile/view/eris23.html eris23]
| Jeffrey Katz
| 2007-06-19 07:10:34
|-
| [http://maemo.org/profile/view/erkan7.html erkan7]
| kece erkan
| 2007-05-31 15:41:11
|-
| [http://maemo.org/profile/view/erkk84.html erkk84]
| Erik Bertoletti
| 2007-10-23 19:40:36
|-
| [http://maemo.org/profile/view/erkko.html erkko]
| Erkko Anttila
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/ermine.html ermine]
| M. Ouimette
| 2008-02-20 01:31:10
|-
| [http://maemo.org/profile/view/ernaveen.html ernaveen]
| Naveen Verma
| 2007-05-23 05:29:46
|-
| [http://maemo.org/profile/view/ernesma.html ernesma]
| Ernesto Lluch
| 2007-10-18 17:40:30
|-
| [http://maemo.org/profile/view/ernestlim.html ernestlim]
| ernest lim
| 2007-12-11 16:25:51
|-
| [http://maemo.org/profile/view/ernestosoto.html ernestosoto]
| Ernesto Soto
| 2008-01-21 04:31:20
|-
| [http://maemo.org/profile/view/erocket.html erocket]
| Elliot Nelson
| 2008-02-15 03:31:00
|-
| [http://maemo.org/profile/view/erodriguez.html erodriguez]
| Eliezer Rodriguez
| 2008-04-06 02:41:09
|-
| [http://maemo.org/profile/view/erohn.html erohn]
| Ernie Rohn
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/erpaolino.html erpaolino]
| paolo coronati
| 2007-10-22 20:40:35
|-
| [http://maemo.org/profile/view/erpierce.html erpierce]
| Eric Pierce
| 2007-10-21 20:40:34
|-
| [http://maemo.org/profile/view/err.html err]
| Er Oz
| 2007-11-28 16:50:26
|-
| [http://maemo.org/profile/view/erreipnaej.html erreipnaej]
| Jean Pierre Bargheon
| 2007-11-05 13:20:22
|-
| [http://maemo.org/profile/view/ersame.html ersame]
| Juan Antonio Infantes Diaz
| 2007-04-05 15:25:38
|-
| [http://maemo.org/profile/view/erstazi.html erstazi]
| Seth Keiper
| 2007-11-16 17:47:17
|-
| [http://maemo.org/profile/view/erstein.html erstein]
| Eric Steinbrecher
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/ertaev.html ertaev]
| Maksat Ertaev
| 2008-02-24 07:31:00
|-
| [http://maemo.org/profile/view/esasalonen.html esasalonen]
| Esa Salonen
| 2007-06-08 13:37:17
|-
| [http://maemo.org/profile/view/esbazsi.html esbazsi]
| Balazs Sandor
| 2007-06-20 06:40:19
|-
| [http://maemo.org/profile/view/esbjr.html esbjr]
| Edward B
| 2007-11-16 17:47:04
|-
| [http://maemo.org/profile/view/escape.html escape]
| marc kevin
| 2007-10-22 11:40:33
|-
| [http://maemo.org/profile/view/eschava.html eschava]
| Eugene Schava
| 2008-02-20 13:31:00
|-
| [http://maemo.org/profile/view/escomic.html escomic]
| es sim
| 2008-02-12 06:31:12
|-
| [http://maemo.org/profile/view/esine.html esine]
| Tero Tulppo
| 2008-03-06 19:31:18
|-
| [http://maemo.org/profile/view/esm.html esm]
| Edjard Mota
| 2007-12-11 16:26:31
|-
| [http://maemo.org/profile/view/esoriano2.html esoriano2]
| Ernesto Soriano Ariza
| 2007-05-18 19:13:02
|-
| [http://maemo.org/profile/view/esotic.html esotic]
| David Zahn
| 2008-01-06 22:42:32
|-
| [http://maemo.org/profile/view/estariol.html estariol]
| Neal Leddy
| 2007-11-16 17:46:34
|-
| [http://maemo.org/profile/view/esthetic.html esthetic]
| Pan Deng
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/estrauss.html estrauss]
| Erik Strauss
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/eswartz.html eswartz]
| Ed Swartz
| 2008-01-09 17:41:05
|-
| [http://maemo.org/profile/view/etanoox.html etanoox]
| Giuseppe Ricceri
| 2007-05-10 12:00:21
|-
| [http://maemo.org/profile/view/etelzenaed.html etelzenaed]
| alicia diaz
| 2008-01-07 17:41:10
|-
| [http://maemo.org/profile/view/eternity69.html eternity69]
| Dmitriy Musatov
| 2007-10-29 22:40:37
|-
| [http://maemo.org/profile/view/etherfish.html etherfish]
| albert hofmann
| 2008-03-24 06:31:04
|-
| [http://maemo.org/profile/view/ethnarch.html ethnarch]
| mike zazzali
| 2007-05-18 19:12:16
|-
| [http://maemo.org/profile/view/etiong.html etiong]
| Edward Tiong
| 2007-11-16 17:47:44
|-
| [http://maemo.org/profile/view/etolgayalcin.html etolgayalcin]
| E.Tolga YALCIN
| 2007-11-16 17:49:28
|-
| [http://maemo.org/profile/view/etomcat.html etomcat]
| Jared Kung
| 2007-12-11 16:25:14
|-
| [http://maemo.org/profile/view/etoms.html etoms]
| Tomasz Lato
| 2007-05-18 19:11:08
|-
| [http://maemo.org/profile/view/etrmedia.html etrmedia]
| Chris Kregoski
| 2007-11-16 17:48:16
|-
| [http://maemo.org/profile/view/etron.html etron]
| Jesse E
| 2007-07-24 22:40:18
|-
| [http://maemo.org/profile/view/etrunko.html etrunko]
| Eduardo Lima
| 2007-05-18 19:12:52
|-
| [http://maemo.org/profile/view/euanmarop.html euanmarop]
| Euan Marley
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/euchreprof.html euchreprof]
| James Mellish
| 2007-05-18 19:12:24
|-
| [http://maemo.org/profile/view/eugenedale.html eugenedale]
| dale dively
| 2007-02-11 03:20:06
|-
| [http://maemo.org/profile/view/eugenetang.html eugenetang]
| eugene tang
| 2008-02-25 21:30:59
|-
| [http://maemo.org/profile/view/eugeneteo.html eugeneteo]
| Eugene Teo
| 2007-06-10 15:50:41
|-
| [http://maemo.org/profile/view/eugenia.html eugenia]
| eugenia sousa cavalcante
| 2008-05-19 21:41:10
|-
| [http://maemo.org/profile/view/eugtiv.html eugtiv]
| Eugene Tivikov
| 2008-02-15 02:31:10
|-
| [http://maemo.org/profile/view/euro-tax1.html euro-tax1]
| Tunde Kallai
| 2007-05-18 19:11:14
|-
| [http://maemo.org/profile/view/eurogirlstew.html eurogirlstew]
| ruth green
| 2007-11-16 17:49:37
|-
| [http://maemo.org/profile/view/eurotrip15.html eurotrip15]
| Adil dauti
| 2007-11-15 07:54:17
|-
| [http://maemo.org/profile/view/evad.html evad]
| Dawid Lorenz
| 2008-03-24 12:31:01
|-
| [http://maemo.org/profile/view/evan.html evan]
| Evan McLean
| 2008-01-06 23:52:20
|-
| [http://maemo.org/profile/view/evanjfraser.html evanjfraser]
| Evan Fraser
| 2007-11-28 15:43:42
|-
| [http://maemo.org/profile/view/evaquero.html evaquero]
| Enrique Vaquero Rubio
| 2008-02-26 14:31:06
|-
| [http://maemo.org/profile/view/everaldo.html everaldo]
| Everaldo Canuto
| 2007-05-18 19:11:54
|-
| [http://maemo.org/profile/view/everett.html everett]
| Everett Holland
| 2007-05-18 19:11:04
|-
| [http://maemo.org/profile/view/evgeni2335.html evgeni2335]
| Evgeni Zhuravlev
| 2007-05-23 05:29:43
|-
| [http://maemo.org/profile/view/evgeniiv.html evgeniiv]
| Evgeniy Vorotnikov
| 2008-05-24 19:41:12
|-
| [http://maemo.org/profile/view/evilpaul.html evilpaul]
| Paul Cummins
| 2008-03-02 16:31:08
|-
| [http://maemo.org/profile/view/ewa.html ewa]
| Chris Schmidt
| 2007-05-18 19:13:22
|-
| [http://maemo.org/profile/view/ewerness.html ewerness]
| Eric Werness
| 2007-02-08 08:40:12
|-
| [http://maemo.org/profile/view/ewhalen.html ewhalen]
| Emmett Whalen
| 2007-12-17 01:41:20
|-
| [http://maemo.org/profile/view/ewilhelm.html ewilhelm]
| Eric Wilhelm
| 2007-10-18 21:40:31
|-
| [http://maemo.org/profile/view/ewinston.html ewinston]
| Edward Winston
| 2007-06-08 13:37:19
|-
| [http://maemo.org/profile/view/ex-navy.html ex-navy]
| D olson
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/exception13.html exception13]
| Serge Korolev
| 2008-04-21 11:41:11
|-
| [http://maemo.org/profile/view/excleptor.html excleptor]
| Ryan Walb
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/excorpus.html excorpus]
| Sean Herschmiller
| 2008-04-20 05:41:06
|-
| [http://maemo.org/profile/view/exeonical.html exeonical]
| Arto Karppinen
| 2007-05-18 19:13:59
|-
| [http://maemo.org/profile/view/exnaba.html exnaba]
| lig hwang
| 2007-11-15 07:56:26
|-
| [http://maemo.org/profile/view/extrem2000.html extrem2000]
| kyle smith
| 2008-05-27 10:41:10
|-
| [http://maemo.org/profile/view/exxxist.html exxxist]
| Bogdan Meleschenko
| 2008-03-07 08:31:03
|-
| [http://maemo.org/profile/view/eyeguy2020.html eyeguy2020]
| Steve Rubinstein
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/eyemn.html eyemn]
| greg c
| 2007-11-16 17:49:21
|-
| [http://maemo.org/profile/view/eyeroll.html eyeroll]
| Dave Dmytriw
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/eyevic.html eyevic]
| Victor Chong
| 2007-05-29 09:30:40
|-
| [http://maemo.org/profile/view/ez27uva.html ez27uva]
| Eliezer Lee
| 2008-05-02 16:41:14
|-
| [http://maemo.org/profile/view/ezfox.html ezfox]
| Enrico Zschorn
| 2007-05-24 09:21:49
|-
| [http://maemo.org/profile/view/eziicss.html eziicss]
| Edgars S
| 2007-05-18 19:11:09
|-
| [http://maemo.org/profile/view/ezmaemo.html ezmaemo]
| ez ez
| 2007-11-16 17:46:57
|-
| [http://maemo.org/profile/view/ezod.html ezod]
| Aaron Mavrinac
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/ezotech.html ezotech]
| Chris Moore
| 2007-12-11 16:25:42
|-
| [http://maemo.org/profile/view/ezs.html ezs]
| shawn yx
| 2007-11-16 17:48:57
|-
| [http://maemo.org/profile/view/ezy.html ezy]
| Sergeui Penkov
| 2008-01-09 09:41:08
|-
| [http://maemo.org/profile/view/e_arizon_benito.html e_arizon_benito]
| Enrique Arizon Benito
| 2007-10-18 22:40:27
|-
| [http://maemo.org/profile/view/e_gamonal.html e_gamonal]
| Eduard Gamonal
| 2008-04-06 14:41:04
|-
| [http://maemo.org/profile/view/e_l_green.html e_l_green]
| Eric Green
| 2007-11-28 15:42:46
|-
| [http://maemo.org/profile/view/faassen.html faassen]
| Martijn Faassen
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/fab.html fab]
| Fabrice FRELIN
| 2007-06-25 18:40:15
|-
| [http://maemo.org/profile/view/fabay.html fabay]
| Fabio Olaechea
| 2007-12-11 16:23:24
|-
| [http://maemo.org/profile/view/faber78.html faber78]
| fabien lefebvre
| 2007-12-24 11:41:12
|-
| [http://maemo.org/profile/view/fabianjack.html fabianjack]
| fabian jack
| 2007-11-19 09:01:25
|-
| [http://maemo.org/profile/view/fabien.html fabien]
| fabien fabien
| 2008-02-07 13:31:22
|-
| [http://maemo.org/profile/view/fabiocaseri.html fabiocaseri]
| Fabio Caseri
| 2007-10-22 07:40:35
|-
| [http://maemo.org/profile/view/fabioranieri.html fabioranieri]
| Fabio Ranieri
| 2007-11-16 17:47:58
|-
| [http://maemo.org/profile/view/fabiothomaz.html fabiothomaz]
| Fabio Thomaz
| 2008-01-03 14:41:07
|-
| [http://maemo.org/profile/view/fabiovaz.html fabiovaz]
| Fabio Vaz
| 2007-12-24 12:41:00
|-
| [http://maemo.org/profile/view/fabioxj.html fabioxj]
| fabio gattazzo
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/fabledviper.html fabledviper]
| john goh
| 2008-01-09 03:41:17
|-
| [http://maemo.org/profile/view/fabricemg.html fabricemg]
| Fabrice MARTIN-GONTHIER
| 2008-01-03 11:41:02
|-
| [http://maemo.org/profile/view/fabrixx.html fabrixx]
| Fabrizio Midollini
| 2007-10-23 16:40:35
|-
| [http://maemo.org/profile/view/fabyon.html fabyon]
| Fabio Yonezawa
| 2007-07-06 17:40:17
|-
| [http://maemo.org/profile/view/fachlouk.html fachlouk]
| Mo Del
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/faciest.html faciest]
| face it
| 2007-11-28 15:43:27
|-
| [http://maemo.org/profile/view/faded515.html faded515]
| Ben McDonald
| 2008-04-16 10:41:08
|-
| [http://maemo.org/profile/view/fadsjeik.html fadsjeik]
| Pim Hilbers
| 2007-11-16 17:49:24
|-
| [http://maemo.org/profile/view/fadzil.html fadzil]
| Muhamad Fadzil Ramli
| 2007-11-19 09:00:41
|-
| [http://maemo.org/profile/view/fagato.html fagato]
| Fabian Jansen
| 2007-12-21 22:41:59
|-
| [http://maemo.org/profile/view/fahere.html fahere]
| fernando hereñuz
| 2008-02-25 22:30:59
|-
| [http://maemo.org/profile/view/faif.html faif]
| yonghao wang
| 2007-11-16 17:49:41
|-
| [http://maemo.org/profile/view/faithful.html faithful]
| John Valentinetti
| 2007-10-19 11:40:31
|-
| [http://maemo.org/profile/view/fakebanana.html fakebanana]
| Jeremy Peterson
| 2007-12-20 12:41:33
|-
| [http://maemo.org/profile/view/faldosary.html faldosary]
| Fahad AL-Dosary
| 2008-06-06 21:31:43
|-
| [http://maemo.org/profile/view/falkaholic.html falkaholic]
| E F
| 2008-02-18 20:31:03
|-
| [http://maemo.org/profile/view/fallucch.html fallucch]
| Antonio Fallucchi
| 2007-12-11 16:25:56
|-
| [http://maemo.org/profile/view/falsefiction5.html falsefiction5]
| justin thomas
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/falstaff1.html falstaff1]
| Oleg Liakhovich
| 2008-03-11 10:31:05
|-
| [http://maemo.org/profile/view/famusc.html famusc]
| Andrea Musci
| 2008-03-22 00:31:04
|-
| [http://maemo.org/profile/view/fang64.html fang64]
| Roy Williams
| 2007-12-31 08:40:57
|-
| [http://maemo.org/profile/view/fanic.html fanic]
| Stéfanic ELDIN
| 2007-05-18 19:14:23
|-
| [http://maemo.org/profile/view/fanley.html fanley]
| fanley romelus
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/fanoush.html fanoush]
| Frantisek Dufka
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/fantast_xue.html fantast_xue]
| William Xue
| 2007-11-02 01:40:36
|-
| [http://maemo.org/profile/view/farmpk.html farmpk]
| Paul Krug
| 2007-12-13 18:40:44
|-
| [http://maemo.org/profile/view/farzadb82.html farzadb82]
| Farzad Battiwalla
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/faschinj.html faschinj]
| Joshua Fasching
| 2008-03-07 20:31:11
|-
| [http://maemo.org/profile/view/fastergun1012.html fastergun1012]
| Mike Smith
| 2007-10-15 21:40:27
|-
| [http://maemo.org/profile/view/fatcatfan.html fatcatfan]
| Eric King
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/faust3.html faust3]
| Sascha Sommer
| 2007-10-22 12:40:34
|-
| [http://maemo.org/profile/view/favinhamichiles.html favinhamichiles]
| Flávia Lindoso
| 2007-10-19 19:40:32
|-
| [http://maemo.org/profile/view/fayaz.html fayaz]
| Fayaz ali Naz
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/faz.html faz]
| Faz Z
| 2007-11-30 10:49:37
|-
| [http://maemo.org/profile/view/fazal.html fazal]
| Fazal Khan
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/fazoltan.html fazoltan]
| Fábián Zoltán
| 2008-05-22 20:41:30
|-
| [http://maemo.org/profile/view/fazz.html fazz]
| Tomasz Fus
| 2008-04-21 13:41:07
|-
| [http://maemo.org/profile/view/fbanos.html fbanos]
| frank banos
| 2008-05-12 22:41:16
|-
| [http://maemo.org/profile/view/fbettinger.html fbettinger]
| bettinger franck
| 2007-11-16 17:46:40
|-
| [http://maemo.org/profile/view/fboldog.html fboldog]
| Ferenc Boldog
| 2007-10-19 07:40:30
|-
| [http://maemo.org/profile/view/fbothamy.html fbothamy]
| Frédéric Bothamy
| 2007-05-18 19:11:15
|-
| [http://maemo.org/profile/view/fcanonici.html fcanonici]
| Fabrizio Canonici
| 2007-10-22 13:40:33
|-
| [http://maemo.org/profile/view/fcarvalho.html fcarvalho]
| Flavio Oliveira
| 2007-05-18 19:11:42
|-
| [http://maemo.org/profile/view/fcassia.html fcassia]
| Fernando Cassia
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/fchao3s.html fchao3s]
| Ryan Murray
| 2008-05-30 10:41:10
|-
| [http://maemo.org/profile/view/fcp27.html fcp27]
| Francisco Cortés Palenzuela
| 2008-01-28 15:41:54
|-
| [http://maemo.org/profile/view/fcrochik.html fcrochik]
| Felipe Crochik
| 2007-12-31 11:41:01
|-
| [http://maemo.org/profile/view/fcrozat.html fcrozat]
| Frederic Crozat
| 2007-05-18 19:11:29
|-
| [http://maemo.org/profile/view/fcsouzajr.html fcsouzajr]
| Francisco CS Junior
| 2007-05-18 19:12:09
|-
| [http://maemo.org/profile/view/fdedinec.html fdedinec]
| Florent de Dinechin
| 2007-10-22 13:40:34
|-
| [http://maemo.org/profile/view/fdelarosa.html fdelarosa]
| Fernando de la Rosa
| 2007-11-16 17:47:35
|-
| [http://maemo.org/profile/view/fdelgado.html fdelgado]
| francisco delgado gallego
| 2007-12-21 12:41:14
|-
| [http://maemo.org/profile/view/fdesousa.html fdesousa]
| Fernando De Sousa
| 2008-03-22 23:31:04
|-
| [http://maemo.org/profile/view/feanor.html feanor]
| Fabio Falcinelli
| 2007-10-22 07:40:35
|-
| [http://maemo.org/profile/view/feanor88.html feanor88]
| jose maria plaza
| 2007-11-16 17:46:45
|-
| [http://maemo.org/profile/view/featurmeagle.html featurmeagle]
| Peter Beagle
| 2008-06-01 21:41:15
|-
| [http://maemo.org/profile/view/febb.html febb]
| Felipe Barousse
| 2007-10-23 06:40:34
|-
| [http://maemo.org/profile/view/feijai.html feijai]
| Sean Luke
| 2007-05-18 19:10:45
|-
| [http://maemo.org/profile/view/felaleo.html felaleo]
| Fela Loe
| 2007-05-18 19:12:28
|-
| [http://maemo.org/profile/view/felante.html felante]
| Fabio Stefanini
| 2007-10-30 16:40:36
|-
| [http://maemo.org/profile/view/felendze.html felendze]
| Wojtek Felendzer
| 2007-05-18 19:10:40
|-
| [http://maemo.org/profile/view/felipe.html felipe]
| Felipe Pontes
| 2008-04-10 19:41:12
|-
| [http://maemo.org/profile/view/felipeabf.html felipeabf]
| Felipe Fernandes
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/felipebalbi.html felipebalbi]
| Felipe Balbi
| 2008-01-27 18:31:30
|-
| [http://maemo.org/profile/view/felipebzr.html felipebzr]
| Felipe Andrade
| 2007-10-22 19:40:36
|-
| [http://maemo.org/profile/view/felipec.html felipec]
| Felipe Contreras
| 2007-05-18 19:12:15
|-
| [http://maemo.org/profile/view/felipelc.html felipelc]
| Felipe Coutinho
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/felixdraconis.html felixdraconis]
| Jason Emery
| 2008-02-15 21:31:00
|-
| [http://maemo.org/profile/view/felixlalas.html felixlalas]
| Felix La
| 2007-07-09 18:40:17
|-
| [http://maemo.org/profile/view/felixturcotte.html felixturcotte]
| felix turcotte
| 2007-12-11 16:25:40
|-
| [http://maemo.org/profile/view/fellian.html fellian]
| ian fell
| 2007-12-11 16:25:19
|-
| [http://maemo.org/profile/view/fellowpacker.html fellowpacker]
| Guy Fellow
| 2007-10-27 21:40:44
|-
| [http://maemo.org/profile/view/felonious.html felonious]
| dmitry asanov
| 2007-12-30 05:40:55
|-
| [http://maemo.org/profile/view/femorandeira.html femorandeira]
| Felipe Erias Morandeira
| 2007-05-23 05:29:44
|-
| [http://maemo.org/profile/view/fenconsulting.html fenconsulting]
| frank araujo
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/fengtso.html fengtso]
| FENG-TSO SUN
| 2008-04-20 07:41:17
|-
| [http://maemo.org/profile/view/fengxu_zha.html fengxu_zha]
| feng xu
| 2007-11-16 17:47:30
|-
| [http://maemo.org/profile/view/fenildf.html fenildf]
| Feng Ding
| 2007-05-18 19:11:57
|-
| [http://maemo.org/profile/view/ferchulin.html ferchulin]
| fer chulin
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/ferdi_laco.html ferdi_laco]
| Ferdinand Laco
| 2007-11-16 17:49:38
|-
| [http://maemo.org/profile/view/ferdsjoseph.html ferdsjoseph]
| Ferdinand Santos
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/feri.html feri]
| Ferenc Szekely
| 2007-02-12 00:00:00
|-
| [http://maemo.org/profile/view/fernando.html fernando]
| Fernando Marques
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/fernie.html fernie]
| Jarkko Torvinen
| 2008-02-07 22:32:45
|-
| [http://maemo.org/profile/view/ferrebam.html ferrebam]
| Eduardo Ferreiro
| 2007-10-18 19:40:41
|-
| [http://maemo.org/profile/view/ferret7.html ferret7]
| John Morewood
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/ferseho.html ferseho]
| fernando holguin
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/feruriel.html feruriel]
| Fernando Cardona
| 2008-02-26 04:31:01
|-
| [http://maemo.org/profile/view/fesar.html fesar]
| Francis Ravikumar
| 2007-11-06 04:40:48
|-
| [http://maemo.org/profile/view/fesato.html fesato]
| felipe sabogal toro
| 2008-05-29 01:41:05
|-
| [http://maemo.org/profile/view/festerles.html festerles]
| Les Lem
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/fetzi.html fetzi]
| hansi burli
| 2007-12-11 16:24:58
|-
| [http://maemo.org/profile/view/feustelfactor.html feustelfactor]
| Martin Feustel
| 2008-03-10 23:31:09
|-
| [http://maemo.org/profile/view/ffarber.html ffarber]
| Fred Farber
| 2007-05-18 19:12:15
|-
| [http://maemo.org/profile/view/ffcooky.html ffcooky]
| Franz Ferwagner
| 2008-01-09 19:41:26
|-
| [http://maemo.org/profile/view/ffebrer.html ffebrer]
| Francesc Febrer
| 2007-10-18 19:40:40
|-
| [http://maemo.org/profile/view/ffoegboy.html ffoegboy]
| Geoff Shortland
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/fgdenis.html fgdenis]
| Denislav Slavkov
| 2008-04-20 15:41:21
|-
| [http://maemo.org/profile/view/fgg.html fgg]
| laifa fang
| 2008-05-16 06:41:19
|-
| [http://maemo.org/profile/view/fgg_maemo.html fgg_maemo]
| laifa fang
| 2008-06-03 08:41:12
|-
| [http://maemo.org/profile/view/fgiorgi.html fgiorgi]
| Fabrizio Giorgi
| 2007-10-22 15:40:35
|-
| [http://maemo.org/profile/view/fgpenn.html fgpenn]
| francis pennarola
| 2008-02-06 22:31:15
|-
| [http://maemo.org/profile/view/fgs.html fgs]
| Floriano Scioscia
| 2007-10-23 10:40:55
|-
| [http://maemo.org/profile/view/fgullama.html fgullama]
| Frank Gulla
| 2007-06-19 07:10:37
|-
| [http://maemo.org/profile/view/fgurin.html fgurin]
| francois gurin
| 2007-10-20 20:40:31
|-
| [http://maemo.org/profile/view/fheinz.html fheinz]
| Federico Heinz
| 2007-07-02 16:50:16
|-
| [http://maemo.org/profile/view/fherrera.html fherrera]
| Fernando Herrera
| 2007-08-06 09:40:20
|-
| [http://maemo.org/profile/view/fhijawi.html fhijawi]
| Fadi Almasalha
| 2007-11-28 15:43:29
|-
| [http://maemo.org/profile/view/fiacobelli.html fiacobelli]
| Francisco Iacobelli
| 2008-04-04 03:41:04
|-
| [http://maemo.org/profile/view/fici90.html fici90]
| matej ficko
| 2008-03-15 18:31:05
|-
| [http://maemo.org/profile/view/fidoman.html fidoman]
| Sergey Dorofeev
| 2008-04-25 21:41:06
|-
| [http://maemo.org/profile/view/fiedlers.html fiedlers]
| steve fiedler
| 2008-02-24 16:30:57
|-
| [http://maemo.org/profile/view/fiferboy.html fiferboy]
| Andrew Olmsted
| 2007-10-19 00:40:52
|-
| [http://maemo.org/profile/view/fightclb.html fightclb]
| rich lindland
| 2007-11-16 17:48:59
|-
| [http://maemo.org/profile/view/figo8.html figo8]
| Marco Trdeli
| 2007-11-15 07:56:26
|-
| [http://maemo.org/profile/view/figo888.html figo888]
| Michael Trup
| 2007-12-11 16:24:59
|-
| [http://maemo.org/profile/view/fiifi.html fiifi]
| jackson ofosu
| 2007-10-17 14:40:30
|-
| [http://maemo.org/profile/view/filem0n.html filem0n]
| angel sanchez
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/filip.html filip]
| Philippe Dessante
| 2007-10-22 22:40:34
|-
| [http://maemo.org/profile/view/filon.html filon]
| Filip Kłębczyk
| 2008-02-09 14:31:56
|-
| [http://maemo.org/profile/view/filthy.html filthy]
| george ram
| 2007-12-29 04:40:59
|-
| [http://maemo.org/profile/view/findlike.html findlike]
| kyuhyung cho
| 2007-11-15 07:55:45
|-
| [http://maemo.org/profile/view/fingerprint.html fingerprint]
| Saalo Sparkes
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/fintux.html fintux]
| Jukka Alasalmi
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/fionn.html fionn]
| Fionn Behrens
| 2007-10-18 20:40:33
|-
| [http://maemo.org/profile/view/firdavs.html firdavs]
| Bahromjon Abdurasulov
| 2008-03-18 19:31:04
|-
| [http://maemo.org/profile/view/firebird.html firebird]
| Jeremiah Bird
| 2007-06-30 03:40:09
|-
| [http://maemo.org/profile/view/firebird8.html firebird8]
| Wilson Tang
| 2008-04-11 19:41:10
|-
| [http://maemo.org/profile/view/firefishy.html firefishy]
| Grant Slater
| 2007-05-18 19:11:10
|-
| [http://maemo.org/profile/view/firehazard51.html firehazard51]
| Anthony Pankala
| 2008-03-13 06:31:04
|-
| [http://maemo.org/profile/view/fireman.html fireman]
| bill tang
| 2008-01-26 21:32:13
|-
| [http://maemo.org/profile/view/fireun.html fireun]
| f un
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/firstmad.html firstmad]
| Marc Daum
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/firsttiger.html firsttiger]
| Kelvin Kang
| 2007-11-16 17:47:43
|-
| [http://maemo.org/profile/view/fish.html fish]
| Johannes Ziemke
| 2007-02-07 02:40:02
|-
| [http://maemo.org/profile/view/fisher.html fisher]
| Gregor Hodapp Fliege
| 2007-12-27 13:41:00
|-
| [http://maemo.org/profile/view/fishor.html fishor]
| Alexey Fisher
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/fisico800.html fisico800]
| Fabio Stefanini
| 2007-05-18 19:12:54
|-
| [http://maemo.org/profile/view/fisuk.html fisuk]
| Lari Liikala
| 2007-11-16 17:50:12
|-
| [http://maemo.org/profile/view/fits_ct.html fits_ct]
| ct wang
| 2007-12-12 20:41:27
|-
| [http://maemo.org/profile/view/fiuton.html fiuton]
| alan sanchez
| 2008-02-28 03:31:04
|-
| [http://maemo.org/profile/view/fixb.html fixb]
| F-Xavier BORNES
| 2007-10-23 15:50:37
|-
| [http://maemo.org/profile/view/fjutah.html fjutah]
| Mikko Antila
| 2007-10-14 16:40:26
|-
| [http://maemo.org/profile/view/flabrosse.html flabrosse]
| Fred Labrosse
| 2007-06-08 13:37:16
|-
| [http://maemo.org/profile/view/flafla.html flafla]
| flavio flaminio
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/flagar.html flagar]
| Flavio Gargiulo
| 2007-10-18 21:40:31
|-
| [http://maemo.org/profile/view/flail.html flail]
| Oddvar Lovaas
| 2007-12-21 20:41:54
|-
| [http://maemo.org/profile/view/flamingos.html flamingos]
| Kim Hung
| 2007-11-30 10:49:37
|-
| [http://maemo.org/profile/view/flaprocha.html flaprocha]
| Felipe Rocha
| 2008-04-18 23:41:06
|-
| [http://maemo.org/profile/view/flareup.html flareup]
| david mccarthy
| 2007-10-22 11:40:32
|-
| [http://maemo.org/profile/view/flarson.html flarson]
| frank larson
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/flashbackk.html flashbackk]
| NO Way
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/flashj.html flashj]
| flash jervis
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/flatini.html flatini]
| Frank Latini
| 2007-06-19 07:10:18
|-
| [http://maemo.org/profile/view/flavioribeiro.html flavioribeiro]
| Flávio Ribeiro
| 2008-04-26 18:41:07
|-
| [http://maemo.org/profile/view/flaviothunder.html flaviothunder]
| Flavio Alberto Lopes Soares
| 2007-11-28 15:43:25
|-
| [http://maemo.org/profile/view/fldude99.html fldude99]
| Jay Newman
| 2007-05-18 19:10:53
|-
| [http://maemo.org/profile/view/fledermaus.html fledermaus]
| dennis peters
| 2007-12-29 11:40:57
|-
| [http://maemo.org/profile/view/fledermaus19828.html fledermaus19828]
| dennis peters
| 2007-12-29 11:40:57
|-
| [http://maemo.org/profile/view/fleet.html fleet]
| Fleet Camberley
| 2007-05-18 19:13:16
|-
| [http://maemo.org/profile/view/flens.html flens]
| Christian Paulsen
| 2007-05-18 19:13:10
|-
| [http://maemo.org/profile/view/fletchcz.html fletchcz]
| Miroslav Mikulica
| 2007-11-19 09:01:24
|-
| [http://maemo.org/profile/view/flex_work.html flex_work]
| Felix Pop
| 2007-11-16 17:46:31
|-
| [http://maemo.org/profile/view/flib.html flib]
| bryton greenwood
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/flight.html flight]
| Gregor Hoffleit
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/flinkster.html flinkster]
| j f
| 2007-05-18 19:10:44
|-
| [http://maemo.org/profile/view/flip.html flip]
| Andrew Harsent
| 2007-10-19 11:40:30
|-
| [http://maemo.org/profile/view/flipside94.html flipside94]
| James Mandani
| 2007-12-18 08:50:57
|-
| [http://maemo.org/profile/view/flo.html flo]
| Florin Kollan
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/flomet.html flomet]
| Jim Kirk
| 2007-05-18 19:13:01
|-
| [http://maemo.org/profile/view/floralab.html floralab]
| Kenneth Scott
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/florian.html florian]
| Florian Boor
| 2007-05-18 19:13:47
|-
| [http://maemo.org/profile/view/floridalbm.html floridalbm]
| chung lee
| 2008-01-20 23:32:23
|-
| [http://maemo.org/profile/view/flow.html flow]
| i rs
| 2007-02-07 02:33:41
|-
| [http://maemo.org/profile/view/flp0.html flp0]
| Bálint Ferenczi
| 2007-10-22 13:40:32
|-
| [http://maemo.org/profile/view/flufje.html flufje]
| fulvio Marfoni
| 2007-05-18 19:12:45
|-
| [http://maemo.org/profile/view/flux41.html flux41]
| John Vrbanac
| 2008-04-10 16:41:10
|-
| [http://maemo.org/profile/view/fluxxball.html fluxxball]
| Russell Klopfer
| 2007-06-19 07:10:38
|-
| [http://maemo.org/profile/view/flyalot.html flyalot]
| Keith Hearn
| 2007-05-23 05:29:26
|-
| [http://maemo.org/profile/view/flyd.html flyd]
| Joel Jalbert
| 2007-10-19 12:40:32
|-
| [http://maemo.org/profile/view/flyer.html flyer]
| Joe DeVincentis
| 2007-12-23 04:41:06
|-
| [http://maemo.org/profile/view/flyingelbow.html flyingelbow]
| danny flyingelbow
| 2007-11-16 17:47:02
|-
| [http://maemo.org/profile/view/flyrok.html flyrok]
| Fly Rok
| 2007-11-16 17:49:41
|-
| [http://maemo.org/profile/view/flyswatter.html flyswatter]
| David Tison
| 2007-12-11 16:25:14
|-
| [http://maemo.org/profile/view/fmalita.html fmalita]
| Florin Malita
| 2007-10-18 16:40:28
|-
| [http://maemo.org/profile/view/fmarques.html fmarques]
| Fernando Marques
| 2007-11-30 10:48:23
|-
| [http://maemo.org/profile/view/fmcgraw.html fmcgraw]
| David Edelman
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/fmedina.html fmedina]
| Fernando Medina
| 2007-10-22 06:40:32
|-
| [http://maemo.org/profile/view/fms.html fms]
| Marat Fayzullin
| 2007-10-19 06:40:27
|-
| [http://maemo.org/profile/view/fnazarr.html fnazarr]
| Ferdinand Nazario
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/fnngms.html fnngms]
| JAMES SCALES
| 2007-11-16 17:47:59
|-
| [http://maemo.org/profile/view/fnordianslip.html fnordianslip]
| Darren Long
| 2007-05-18 19:13:44
|-
| [http://maemo.org/profile/view/fnov.html fnov]
| ddde ggtty
| 2007-12-11 16:24:52
|-
| [http://maemo.org/profile/view/foen.html foen]
| sebastian faul
| 2007-10-20 11:40:34
|-
| [http://maemo.org/profile/view/foetalstalk.html foetalstalk]
| Mark Waldron
| 2008-01-06 16:41:03
|-
| [http://maemo.org/profile/view/folhabranca.html folhabranca]
| Eduardo Rocha
| 2007-05-18 19:11:00
|-
| [http://maemo.org/profile/view/fondoo.html fondoo]
| Alan Lee
| 2007-05-18 19:12:51
|-
| [http://maemo.org/profile/view/fonsus.html fonsus]
| Al Lee
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/foofur.html foofur]
| Fulvio Franceschini
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/footer.html footer]
| Terrance Dreyer
| 2007-08-31 12:40:21
|-
| [http://maemo.org/profile/view/foowar.html foowar]
| Jaime Ruiz Frontera
| 2007-10-18 21:40:31
|-
| [http://maemo.org/profile/view/foranzi.html foranzi]
| frank oranzi
| 2007-05-18 19:10:38
|-
| [http://maemo.org/profile/view/forcan.html forcan]
| Francesco Leserri
| 2007-12-16 09:40:53
|-
| [http://maemo.org/profile/view/forcev.html forcev]
| Andrew Wafaa
| 2007-10-18 13:40:30
|-
| [http://maemo.org/profile/view/force_computer.html force_computer]
| Arif Rokhman
| 2007-11-28 15:43:18
|-
| [http://maemo.org/profile/view/forddata.html forddata]
| Stuart Ford
| 2007-10-21 20:40:33
|-
| [http://maemo.org/profile/view/forestierul.html forestierul]
| Catalin Vasile
| 2007-05-18 19:11:58
|-
| [http://maemo.org/profile/view/foreverg.html foreverg]
| Giuseppe Mariniello
| 2007-10-22 08:40:35
|-
| [http://maemo.org/profile/view/foreveryang.html foreveryang]
| yang yong
| 2007-11-16 17:47:20
|-
| [http://maemo.org/profile/view/forewarned7.html forewarned7]
| Anthony Miracle
| 2008-06-10 15:31:15
|-
| [http://maemo.org/profile/view/forge.html forge]
| Santeri Lindgren
| 2007-11-02 15:40:38
|-
| [http://maemo.org/profile/view/forgotten1.html forgotten1]
| Scott Dunn
| 2007-04-04 08:16:22
|-
| [http://maemo.org/profile/view/forje.html forje]
| Jean-Pierre Fortune
| 2007-06-27 13:40:12
|-
| [http://maemo.org/profile/view/forme3d.html forme3d]
| Mike Allen
| 2007-11-16 17:47:44
|-
| [http://maemo.org/profile/view/fortch.html fortch]
| C F
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/fostwal.html fostwal]
| Walter Foster
| 2007-06-25 01:40:05
|-
| [http://maemo.org/profile/view/fotifo.html fotifo]
| jah rastafar
| 2008-01-24 04:32:28
|-
| [http://maemo.org/profile/view/fotogb.html fotogb]
| Andrea Bertoli
| 2007-12-11 16:26:07
|-
| [http://maemo.org/profile/view/foursea.html foursea]
| denton ho
| 2008-04-25 05:41:09
|-
| [http://maemo.org/profile/view/fowxzs.html fowxzs]
| Dmitry Ziazin
| 2007-06-10 17:11:54
|-
| [http://maemo.org/profile/view/fox.html fox]
| Fox Chao
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/fox1.html fox1]
| james bond
| 2008-04-24 01:41:08
|-
| [http://maemo.org/profile/view/foxfling.html foxfling]
| fei hu
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/foxmc.html foxmc]
| Walter knoernschild
| 2007-05-29 09:30:36
|-
| [http://maemo.org/profile/view/foxx.html foxx]
| Joshua Brown
| 2007-12-11 16:26:08
|-
| [http://maemo.org/profile/view/fox_zi.html fox_zi]
| Fox Zi
| 2008-01-09 18:40:58
|-
| [http://maemo.org/profile/view/fpanagak.html fpanagak]
| Foti Panagakos
| 2007-07-08 13:40:10
|-
| [http://maemo.org/profile/view/fparodi.html fparodi]
| Fabio Parodi
| 2008-01-11 11:11:26
|-
| [http://maemo.org/profile/view/fpbrooks.html fpbrooks]
| Phil Brooks
| 2007-05-18 19:12:36
|-
| [http://maemo.org/profile/view/fpbsl.html fpbsl]
| bao shulun
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/fpollani.html fpollani]
| francesco pollani
| 2008-05-18 06:41:06
|-
| [http://maemo.org/profile/view/fpp.html fpp]
| Fred Pacquier
| 2007-10-20 19:40:31
|-
| [http://maemo.org/profile/view/fprio.html fprio]
| Frank Prio
| 2007-04-05 15:25:38
|-
| [http://maemo.org/profile/view/fraber.html fraber]
| francesco bernardi
| 2007-05-15 17:42:10
|-
| [http://maemo.org/profile/view/fragkiad.html fragkiad]
| Alex Fragkiadakis
| 2007-10-30 08:41:03
|-
| [http://maemo.org/profile/view/fragos.html fragos]
| George Fragos
| 2007-05-24 06:20:39
|-
| [http://maemo.org/profile/view/fragosa35.html fragosa35]
| francisco corado
| 2007-11-28 15:43:50
|-
| [http://maemo.org/profile/view/fraik.html fraik]
| Freek Ahlman
| 2008-03-26 20:31:06
|-
| [http://maemo.org/profile/view/fraluk.html fraluk]
| franz josef
| 2008-01-15 20:42:29
|-
| [http://maemo.org/profile/view/framstag.html framstag]
| Tim Teulings
| 2007-05-18 19:10:52
|-
| [http://maemo.org/profile/view/francel.html francel]
| france l
| 2008-05-02 16:41:15
|-
| [http://maemo.org/profile/view/francesco.html francesco]
| Francesco Vozza
| 2007-06-08 13:37:21
|-
| [http://maemo.org/profile/view/francesco83.html francesco83]
| Francesco Fileppo
| 2008-03-09 13:31:02
|-
| [http://maemo.org/profile/view/francios.html francios]
| fra lion
| 2007-11-15 14:40:57
|-
| [http://maemo.org/profile/view/franco.html franco]
| Franco Tulli
| 2007-03-19 15:34:19
|-
| [http://maemo.org/profile/view/francoismaemo.html francoismaemo]
| francois bilodeau
| 2008-04-04 16:41:04
|-
| [http://maemo.org/profile/view/franc_vaccaro.html franc_vaccaro]
| francesco vaccaro
| 2007-12-22 14:41:28
|-
| [http://maemo.org/profile/view/frank.html frank]
| Frank W. Kooistra
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/frankie.html frankie]
| Francesco Lovergine
| 2007-10-19 10:40:37
|-
| [http://maemo.org/profile/view/frankiefumbles.html frankiefumbles]
| Frank Rodriguez
| 2008-04-18 01:41:31
|-
| [http://maemo.org/profile/view/franklegarreta.html franklegarreta]
| FRANK LEGARRETA
| 2007-11-19 09:01:23
|-
| [http://maemo.org/profile/view/frankman.html frankman]
| frank man
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/frankncatini.html frankncatini]
| Frank N Catini
| 2008-05-18 18:41:12
|-
| [http://maemo.org/profile/view/frankols.html frankols]
| francisco torres
| 2008-02-18 04:31:03
|-
| [http://maemo.org/profile/view/frankoo6.html frankoo6]
| Frank DeCoste
| 2007-07-11 01:40:19
|-
| [http://maemo.org/profile/view/frankp.html frankp]
| Frank Portaro
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/franksbrian.html franksbrian]
| brian franks
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/franksumatra.html franksumatra]
| Ben Sumatra
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/frankusb.html frankusb]
| Frank Banul
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/frankwalzer2.html frankwalzer2]
| Frank Walzer
| 2007-10-25 16:40:35
|-
| [http://maemo.org/profile/view/franot.html franot]
| Franck HENOT
| 2007-12-29 19:41:26
|-
| [http://maemo.org/profile/view/frantic.html frantic]
| chandler li
| 2008-01-17 07:40:58
|-
| [http://maemo.org/profile/view/franz1979.html franz1979]
| Francisco Durán Gutiérrez
| 2008-01-14 15:41:36
|-
| [http://maemo.org/profile/view/franzose90.html franzose90]
| patrick sotow
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/frappe987.html frappe987]
| Brie Koyanagi
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/frasej.html frasej]
| James Frase
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/frasier.html frasier]
| frasier glenn
| 2007-05-18 19:12:20
|-
| [http://maemo.org/profile/view/fratk.html fratk]
| Frank Tkacz
| 2008-03-13 23:31:00
|-
| [http://maemo.org/profile/view/fratol.html fratol]
| frank tolkmitt
| 2008-05-18 14:41:24
|-
| [http://maemo.org/profile/view/frbl.html frbl]
| William Lange
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/fre12345.html fre12345]
| F Engel
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/freakair.html freakair]
| clinton hoines
| 2008-05-22 23:40:31
|-
| [http://maemo.org/profile/view/freality.html freality]
| Ken Love
| 2008-03-17 16:31:02
|-
| [http://maemo.org/profile/view/freat.html freat]
| Ron Senykoff
| 2007-07-09 02:40:15
|-
| [http://maemo.org/profile/view/freaz.html freaz]
| Ondrej Musil
| 2008-03-13 14:31:22
|-
| [http://maemo.org/profile/view/fred69009.html fred69009]
| frederic a
| 2007-10-22 22:40:32
|-
| [http://maemo.org/profile/view/fredbublitz.html fredbublitz]
| Frederico Bublitz
| 2007-11-16 17:48:32
|-
| [http://maemo.org/profile/view/freddysampayo.html freddysampayo]
| Freddy Sampayo
| 2008-01-09 14:41:09
|-
| [http://maemo.org/profile/view/fredericklee.html fredericklee]
| Frederick Lee
| 2007-10-16 03:40:26
|-
| [http://maemo.org/profile/view/frederico.html frederico]
| Frederico Camurça de Azevedo
| 2007-05-18 19:10:49
|-
| [http://maemo.org/profile/view/fredgy.html fredgy]
| fred rubin
| 2007-11-15 07:56:06
|-
| [http://maemo.org/profile/view/fredl.html fredl]
| Frederic Lepied
| 2007-10-26 20:40:35
|-
| [http://maemo.org/profile/view/fredlin1.html fredlin1]
| chung lin
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/fredlinmaemo.html fredlinmaemo]
| chung lin
| 2007-11-30 10:48:40
|-
| [http://maemo.org/profile/view/fredmad.html fredmad]
| fred madison
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/fredofromstart.html fredofromstart]
| Fred L. Mir
| 2007-05-18 19:10:56
|-
| [http://maemo.org/profile/view/fredoll.html fredoll]
| Fred Lefévère-Laoide
| 2007-05-18 19:10:39
|-
| [http://maemo.org/profile/view/fredous.html fredous]
| Mark Field
| 2007-10-20 11:40:34
|-
| [http://maemo.org/profile/view/fredp.html fredp]
| Fred Pacquier
| 2007-05-21 13:43:19
|-
| [http://maemo.org/profile/view/fredrik.html fredrik]
| Frederic Chabot
| 2007-10-20 17:40:33
|-
| [http://maemo.org/profile/view/fredsan42.html fredsan42]
| Eddie Mansu
| 2008-02-14 12:01:18
|-
| [http://maemo.org/profile/view/fredsch.html fredsch]
| Fred Scheres
| 2007-12-21 18:42:41
|-
| [http://maemo.org/profile/view/fredsoneya.html fredsoneya]
| Fred Soneya
| 2007-06-24 11:40:06
|-
| [http://maemo.org/profile/view/fredxuzhou.html fredxuzhou]
| Zhou Xu
| 2007-06-08 13:37:20
|-
| [http://maemo.org/profile/view/fredyrivera.html fredyrivera]
| fredy rivera
| 2008-05-14 12:41:06
|-
| [http://maemo.org/profile/view/fred_jp.html fred_jp]
| Frederico Camurça de Azevedo
| 2008-03-31 17:41:07
|-
| [http://maemo.org/profile/view/free2blade.html free2blade]
| Jeremy Gulley
| 2007-12-11 16:25:11
|-
| [http://maemo.org/profile/view/freefans.html freefans]
| Blues Chou
| 2008-06-02 09:41:14
|-
| [http://maemo.org/profile/view/freelikegnu.html freelikegnu]
| Francisco Athens
| 2008-04-07 23:40:42
|-
| [http://maemo.org/profile/view/freeman.html freeman]
| alex guo
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/freeman540.html freeman540]
| IHSAN elbedry
| 2007-11-16 17:46:40
|-
| [http://maemo.org/profile/view/freepda.html freepda]
| freepda freepda
| 2008-05-15 20:45:14
|-
| [http://maemo.org/profile/view/freewheelin.html freewheelin]
| Nicolas Moncourt
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/free_man.html free_man]
| gui gui
| 2007-06-19 07:10:34
|-
| [http://maemo.org/profile/view/freid.html freid]
| Frank Reid
| 2007-11-16 17:46:48
|-
| [http://maemo.org/profile/view/frend213.html frend213]
| Mihail Noskov
| 2008-01-28 16:33:11
|-
| [http://maemo.org/profile/view/freon.html freon]
| Pawel Diabel
| 2007-06-27 07:40:09
|-
| [http://maemo.org/profile/view/frese2000.html frese2000]
| Sergio freni
| 2007-10-21 22:40:35
|-
| [http://maemo.org/profile/view/fressshhh.html fressshhh]
| Fred Tag
| 2007-10-24 17:41:03
|-
| [http://maemo.org/profile/view/fresta.html fresta]
| Fredrik Ståhl
| 2007-05-18 19:12:57
|-
| [http://maemo.org/profile/view/fresus.html fresus]
| Jesús R. G.
| 2007-05-18 19:13:36
|-
| [http://maemo.org/profile/view/frethop.html frethop]
| Mike Jipping
| 2007-05-18 19:13:58
|-
| [http://maemo.org/profile/view/fretwire.html fretwire]
| Henry Sandefur
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/friarsguides.html friarsguides]
| John Allen
| 2007-05-18 19:13:19
|-
| [http://maemo.org/profile/view/friday13th.html friday13th]
| Jason Torres
| 2007-11-16 17:48:57
|-
| [http://maemo.org/profile/view/friric.html friric]
| Richard Fritz
| 2008-05-24 21:41:23
|-
| [http://maemo.org/profile/view/fris13.html fris13]
| Ron Duguay
| 2007-07-09 20:40:15
|-
| [http://maemo.org/profile/view/frisket.html frisket]
| Peter Flynn
| 2007-11-28 15:43:29
|-
| [http://maemo.org/profile/view/frobok.html frobok]
| Bob McGregor
| 2008-05-16 14:41:11
|-
| [http://maemo.org/profile/view/frogat3.html frogat3]
| dennis ketchum
| 2007-10-26 05:40:37
|-
| [http://maemo.org/profile/view/froghunter.html froghunter]
| ben neely
| 2008-05-19 03:41:10
|-
| [http://maemo.org/profile/view/frolman.html frolman]
| loic rio
| 2008-02-28 12:31:05
|-
| [http://maemo.org/profile/view/fromfela.html fromfela]
| the kid
| 2007-05-18 19:10:48
|-
| [http://maemo.org/profile/view/frossie.html frossie]
| Frossie Economou
| 2008-03-14 00:31:01
|-
| [http://maemo.org/profile/view/frosty.html frosty]
| ian shaw
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/frozenchrome.html frozenchrome]
| Frozen Chrom
| 2008-02-26 21:30:59
|-
| [http://maemo.org/profile/view/fryfly321.html fryfly321]
| Dan Flangana
| 2008-02-06 20:31:57
|-
| [http://maemo.org/profile/view/fsalamero.html fsalamero]
| Fernando Salamero Pelay
| 2007-10-18 23:40:29
|-
| [http://maemo.org/profile/view/fsdrofos.html fsdrofos]
| Jose A. CP
| 2007-11-16 17:49:43
|-
| [http://maemo.org/profile/view/fsheha.html fsheha]
| zero cool
| 2008-04-16 07:41:19
|-
| [http://maemo.org/profile/view/fsmw.html fsmw]
| Fernando San Martín Woerner
| 2007-07-20 21:40:22
|-
| [http://maemo.org/profile/view/fsogamer.html fsogamer]
| ray roy
| 2007-05-18 19:14:20
|-
| [http://maemo.org/profile/view/fsteen.html fsteen]
| Franklin Steen
| 2007-11-16 17:49:31
|-
| [http://maemo.org/profile/view/fsu239.html fsu239]
| Joshua Vogt
| 2008-01-22 18:32:12
|-
| [http://maemo.org/profile/view/fthamura.html fthamura]
| Frans Thamura
| 2007-10-24 00:40:33
|-
| [http://maemo.org/profile/view/ftr588.html ftr588]
| Tom Riddle
| 2008-05-01 19:41:07
|-
| [http://maemo.org/profile/view/ftuzzo.html ftuzzo]
| francesco tuzzolino
| 2007-11-16 17:47:56
|-
| [http://maemo.org/profile/view/fuban.html fuban]
| fabian muermann
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/fuelfive.html fuelfive]
| Scott Brown
| 2007-05-18 19:10:53
|-
| [http://maemo.org/profile/view/fullo.html fullo]
| Francesco Fullone
| 2007-10-22 07:40:35
|-
| [http://maemo.org/profile/view/fulvio58.html fulvio58]
| fulvio gervasoni
| 2007-11-15 07:56:19
|-
| [http://maemo.org/profile/view/funamizu.html funamizu]
| toru funamizu
| 2007-06-08 13:37:09
|-
| [http://maemo.org/profile/view/fundinga.html fundinga]
| Pete Fundinger
| 2007-07-07 23:40:10
|-
| [http://maemo.org/profile/view/fuochid.html fuochid]
| Antonio Core
| 2007-11-16 17:47:55
|-
| [http://maemo.org/profile/view/furayaku.html furayaku]
| fura yaku
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/furayaku2001.html furayaku2001]
| francois francois
| 2007-05-18 19:12:08
|-
| [http://maemo.org/profile/view/fusanari.html fusanari]
| Fusanari Shimizu
| 2007-10-20 20:40:31
|-
| [http://maemo.org/profile/view/fussi68.html fussi68]
| Markus Fuß
| 2008-01-05 12:41:14
|-
| [http://maemo.org/profile/view/futih.html futih]
| Fatih Hosoglu
| 2008-01-16 14:41:04
|-
| [http://maemo.org/profile/view/futinoj.html futinoj]
| joe smith
| 2008-03-20 20:31:05
|-
| [http://maemo.org/profile/view/fuying2002.html fuying2002]
| Ying Fu
| 2008-02-14 12:01:19
|-
| [http://maemo.org/profile/view/fuying_kelly.html fuying_kelly]
| ying fu
| 2007-10-30 03:40:37
|-
| [http://maemo.org/profile/view/fuzzcheck.html fuzzcheck]
| Fuzz Check
| 2008-02-04 05:31:31
|-
| [http://maemo.org/profile/view/fuzzyness.html fuzzyness]
| Fuzz Wuzz
| 2008-03-31 07:41:06
|-
| [http://maemo.org/profile/view/fvozza.html fvozza]
| Francesco Vozza
| 2007-11-30 10:48:35
|-
| [http://maemo.org/profile/view/fwartman.html fwartman]
| Frank Wartman
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/fwdoyle.html fwdoyle]
| Frank Doyle
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/fwn.html fwn]
| Florian Warnecke
| 2007-11-15 14:40:55
|-
| [http://maemo.org/profile/view/fysmd.html fysmd]
| Ian Rhodes
| 2007-05-18 19:12:05
|-
| [http://maemo.org/profile/view/fzamora.html fzamora]
| Freddy Zamora
| 2007-05-18 19:14:35
|-
| [http://maemo.org/profile/view/f_manzan.html f_manzan]
| Federico Manzan
| 2007-12-11 16:25:46
|-
| [http://maemo.org/profile/view/g5i.html g5i]
| Stanley Gobing
| 2007-11-15 07:56:23
|-
| [http://maemo.org/profile/view/ga6or.html ga6or]
| Gabor Barton
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/gabe0x02.html gabe0x02]
| Gabriel Littman
| 2007-07-07 09:40:15
|-
| [http://maemo.org/profile/view/gabeparker28.html gabeparker28]
| gabe parker
| 2008-06-05 13:41:37
|-
| [http://maemo.org/profile/view/gabkdlly.html gabkdlly]
| Gabriel Pannwitz
| 2008-02-23 11:31:00
|-
| [http://maemo.org/profile/view/gabo.html gabo]
| Kari Karvonen
| 2007-05-18 19:10:58
|-
| [http://maemo.org/profile/view/gabrielnava.html gabrielnava]
| Gabriel Nava Vazquez
| 2007-05-18 19:10:53
|-
| [http://maemo.org/profile/view/gabriel_vergara.html gabriel_vergara]
| Gabriel Vergara
| 2007-10-31 16:40:37
|-
| [http://maemo.org/profile/view/gabrimonfa.html gabrimonfa]
| Gabriele Monfardini
| 2007-10-22 08:40:35
|-
| [http://maemo.org/profile/view/gadipudi.html gadipudi]
| Gadipudi Pawan
| 2007-05-23 05:29:33
|-
| [http://maemo.org/profile/view/gadomska_anna.html gadomska_anna]
| Anna Gadomska
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/gadzukz.html gadzukz]
| Degir Gruene
| 2007-07-18 13:41:12
|-
| [http://maemo.org/profile/view/gaizka.html gaizka]
| Gaizka Allende
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/galf.html galf]
| Sebastian von Alfthan
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/gallaro.html gallaro]
| Jeremy Gallaro
| 2007-11-16 17:47:37
|-
| [http://maemo.org/profile/view/gallen.html gallen]
| Glenn Allen
| 2007-07-13 10:40:18
|-
| [http://maemo.org/profile/view/galt.html galt]
| Gal Topper
| 2007-12-14 06:40:53
|-
| [http://maemo.org/profile/view/gameoverceo.html gameoverceo]
| Dominic Pierre
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/gamepp.html gamepp]
| bernie shen
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/gamo62.html gamo62]
| GW Moran
| 2007-12-19 06:41:27
|-
| [http://maemo.org/profile/view/gampa.html gampa]
| D Vargo
| 2007-12-29 06:40:57
|-
| [http://maemo.org/profile/view/gandalf.html gandalf]
| Dick Klemets
| 2007-11-15 18:40:48
|-
| [http://maemo.org/profile/view/ganderss.html ganderss]
| Gunnar Andersson
| 2008-04-17 21:41:26
|-
| [http://maemo.org/profile/view/gandzia.html gandzia]
| Anna Gadomska
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/ganeshk.html ganeshk]
| Ganesh Kasthurirangan
| 2007-10-15 20:40:26
|-
| [http://maemo.org/profile/view/ganoczi.html ganoczi]
| Jozef Ganoczi
| 2007-05-18 19:14:22
|-
| [http://maemo.org/profile/view/gaodacyc.html gaodacyc]
| yingchao chao
| 2008-01-29 02:31:10
|-
| [http://maemo.org/profile/view/gaodaliu.html gaodaliu]
| chai yingchao
| 2007-11-30 10:49:00
|-
| [http://maemo.org/profile/view/garagebattle.html garagebattle]
| rob fleming
| 2007-06-30 02:40:07
|-
| [http://maemo.org/profile/view/garakl.html garakl]
| Lado Garakanidze
| 2007-11-16 17:46:47
|-
| [http://maemo.org/profile/view/garben.html garben]
| Gary Bennett
| 2008-01-11 20:51:11
|-
| [http://maemo.org/profile/view/garciad1.html garciad1]
| Dorota G
| 2008-02-02 04:31:08
|-
| [http://maemo.org/profile/view/garethbailey.html garethbailey]
| Gareth Bailey
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/garethlwalt.html garethlwalt]
| Gareth Walters
| 2008-01-30 23:32:34
|-
| [http://maemo.org/profile/view/garett.html garett]
| Razvan Pencu
| 2007-10-20 05:40:31
|-
| [http://maemo.org/profile/view/garfi.html garfi]
| Rafael Roset
| 2007-12-13 20:41:16
|-
| [http://maemo.org/profile/view/garretaj.html garretaj]
| Andrew Garrett
| 2007-04-05 15:25:39
|-
| [http://maemo.org/profile/view/garrett.html garrett]
| Garrett LeSage
| 2007-10-19 14:40:34
|-
| [http://maemo.org/profile/view/garrrrr.html garrrrr]
| Igor Gusarov
| 2007-10-24 11:40:33
|-
| [http://maemo.org/profile/view/garryp80.html garryp80]
| Garry Philip
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/garryweil.html garryweil]
| Garry Weil
| 2007-07-08 20:40:38
|-
| [http://maemo.org/profile/view/garthinthere.html garthinthere]
| Garth Johnson
| 2007-10-19 10:40:35
|-
| [http://maemo.org/profile/view/garu.html garu]
| Igor Gubar
| 2008-02-14 13:30:58
|-
| [http://maemo.org/profile/view/garvin40.html garvin40]
| G Lai
| 2007-05-18 19:10:49
|-
| [http://maemo.org/profile/view/gary.html gary]
| gary Bishop
| 2008-01-31 17:32:11
|-
| [http://maemo.org/profile/view/gary007.html gary007]
| Gary Nixon
| 2008-02-18 16:30:59
|-
| [http://maemo.org/profile/view/gary123.html gary123]
| gary yu
| 2008-01-23 01:31:10
|-
| [http://maemo.org/profile/view/gary201.html gary201]
| gary vedvik
| 2007-12-26 16:51:07
|-
| [http://maemo.org/profile/view/gary347.html gary347]
| Gurmeet Singh
| 2007-11-16 06:40:43
|-
| [http://maemo.org/profile/view/garygrebus.html garygrebus]
| Gary Grebus
| 2007-04-04 08:16:22
|-
| [http://maemo.org/profile/view/garyhodgson.html garyhodgson]
| Gary Hodgson
| 2008-04-22 22:41:27
|-
| [http://maemo.org/profile/view/garyjp.html garyjp]
| gary phillips
| 2007-11-01 23:40:38
|-
| [http://maemo.org/profile/view/garyrjf.html garyrjf]
| frank gary
| 2007-05-18 19:13:42
|-
| [http://maemo.org/profile/view/gasabb.html gasabb]
| Gustavo Sabbione
| 2007-06-19 07:10:34
|-
| [http://maemo.org/profile/view/gastellier.html gastellier]
| benoit gastellier
| 2007-06-01 13:20:39
|-
| [http://maemo.org/profile/view/gastonca.html gastonca]
| gaston carrasco
| 2007-11-16 17:49:04
|-
| [http://maemo.org/profile/view/gatekeeper.html gatekeeper]
| vince joe
| 2008-02-11 06:31:02
|-
| [http://maemo.org/profile/view/gathaja.html gathaja]
| Risto Oikarinen
| 2007-05-29 09:30:44
|-
| [http://maemo.org/profile/view/gatsu.html gatsu]
| Emilio Astorga Bustamante
| 2008-04-02 00:41:24
|-
| [http://maemo.org/profile/view/gauntlet.html gauntlet]
| Andrew Wohlfahrt
| 2007-11-05 02:40:36
|-
| [http://maemo.org/profile/view/gaurav.html gaurav]
| Gaurav Upadhyay
| 2007-07-24 09:41:42
|-
| [http://maemo.org/profile/view/gauravn.html gauravn]
| ga na
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/gaurdheeraj.html gaurdheeraj]
| Dheeraj Gaur
| 2008-02-06 07:32:26
|-
| [http://maemo.org/profile/view/gausher.html gausher]
| gausher lee
| 2007-06-30 04:40:08
|-
| [http://maemo.org/profile/view/gav.html gav]
| Aleksey Gorlov
| 2007-11-28 15:43:37
|-
| [http://maemo.org/profile/view/gavin.html gavin]
| Gavin O' Gorman
| 2007-05-18 19:10:33
|-
| [http://maemo.org/profile/view/gavinchen.html gavinchen]
| Gavin Chen
| 2007-11-16 17:46:57
|-
| [http://maemo.org/profile/view/gavinmcnair.html gavinmcnair]
| Gavin McNair
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/gavren.html gavren]
| Gavin Renwick
| 2007-06-01 11:50:46
|-
| [http://maemo.org/profile/view/gavsteed.html gavsteed]
| Gavin Steed
| 2007-07-10 14:40:16
|-
| [http://maemo.org/profile/view/gazaaaa99.html gazaaaa99]
| Gareth Streeter
| 2008-01-18 21:31:40
|-
| [http://maemo.org/profile/view/gazome.html gazome]
| Libert Guillaume
| 2007-05-18 19:14:02
|-
| [http://maemo.org/profile/view/gazreese.html gazreese]
| gareth reese
| 2007-11-15 07:55:36
|-
| [http://maemo.org/profile/view/gbambo.html gbambo]
| Gregory Bambo
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/gbarlas.html gbarlas]
| Gerassimos Barlas
| 2007-10-20 11:40:34
|-
| [http://maemo.org/profile/view/gbarret.html gbarret]
| gbs bar
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/gbhat.html gbhat]
| Girish Bhat
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/gbil.html gbil]
| George Billios
| 2007-05-18 19:13:33
|-
| [http://maemo.org/profile/view/gblasi.html gblasi]
| Giovanni Blasi
| 2008-01-07 10:40:55
|-
| [http://maemo.org/profile/view/gbliss.html gbliss]
| Greg Bliss
| 2007-12-11 16:24:46
|-
| [http://maemo.org/profile/view/gbodeman.html gbodeman]
| Geoff Bodeman
| 2007-05-18 19:11:29
|-
| [http://maemo.org/profile/view/gbranum.html gbranum]
| grant branum
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/gbreaker.html gbreaker]
| ghassan khzouz
| 2008-04-21 14:41:12
|-
| [http://maemo.org/profile/view/gbuergisser.html gbuergisser]
| Gregor Buergisser
| 2007-11-15 22:01:02
|-
| [http://maemo.org/profile/view/gcancelmi.html gcancelmi]
| Gianluca Cancelmi
| 2007-10-18 14:40:30
|-
| [http://maemo.org/profile/view/gcarothers.html gcarothers]
| Gavin Carothers
| 2007-07-03 21:40:32
|-
| [http://maemo.org/profile/view/gcarrier.html gcarrier]
| Geoffroy Carrier
| 2007-06-26 14:40:12
|-
| [http://maemo.org/profile/view/gcarriero.html gcarriero]
| Giancarlo Carriero
| 2007-04-05 15:25:37
|-
| [http://maemo.org/profile/view/gchalakov.html gchalakov]
| georgi chalakov
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/gcnlmft.html gcnlmft]
| Grant Chikazawa-Nelson
| 2008-03-20 22:31:04
|-
| [http://maemo.org/profile/view/gcobb.html gcobb]
| Graham Cobb
| 2007-04-05 15:25:37
|-
| [http://maemo.org/profile/view/gcole.html gcole]
| Greg Cole
| 2007-10-19 18:40:34
|-
| [http://maemo.org/profile/view/gcolina.html gcolina]
| George Colina
| 2007-11-16 17:48:36
|-
| [http://maemo.org/profile/view/gcomputerdna.html gcomputerdna]
| john chen
| 2007-05-18 19:13:02
|-
| [http://maemo.org/profile/view/gcuvier.html gcuvier]
| George Cuvier
| 2007-12-20 04:41:13
|-
| [http://maemo.org/profile/view/gdavidbeck.html gdavidbeck]
| Dave Beck
| 2008-01-25 01:32:20
|-
| [http://maemo.org/profile/view/gdavidson22.html gdavidson22]
| George Davidson
| 2007-11-15 07:55:51
|-
| [http://maemo.org/profile/view/gdeutsch.html gdeutsch]
| Gerald Deutsch
| 2007-10-23 00:40:32
|-
| [http://maemo.org/profile/view/gdgray.html gdgray]
| Greg Gray
| 2008-04-22 12:41:14
|-
| [http://maemo.org/profile/view/gdhgdh.html gdhgdh]
| Gavin Hamill
| 2007-08-06 08:40:25
|-
| [http://maemo.org/profile/view/gdimike.html gdimike]
| mike goldberg
| 2007-05-18 19:14:01
|-
| [http://maemo.org/profile/view/gds.html gds]
| Glenn Strong
| 2007-05-18 19:10:59
|-
| [http://maemo.org/profile/view/gdsc.html gdsc]
| - -
| 2007-05-18 19:11:28
|-
| [http://maemo.org/profile/view/gdvsl.html gdvsl]
| Gerhard Andreß
| 2007-05-18 19:11:48
|-
| [http://maemo.org/profile/view/ge0rg.html ge0rg]
| georg ogris
| 2008-03-19 10:31:04
|-
| [http://maemo.org/profile/view/gearoid.html gearoid]
| Gearoid Hynes
| 2008-03-31 16:41:09
|-
| [http://maemo.org/profile/view/gearoid2.html gearoid2]
| Gearoid Hynes
| 2008-05-23 19:41:27
|-
| [http://maemo.org/profile/view/gecko.html gecko]
| Benjamin Pollack
| 2007-11-16 17:47:06
|-
| [http://maemo.org/profile/view/geckox999.html geckox999]
| daniel kemp
| 2007-12-16 03:40:55
|-
| [http://maemo.org/profile/view/geckx7.html geckx7]
| anthony greco
| 2007-06-13 18:40:52
|-
| [http://maemo.org/profile/view/geek78.html geek78]
| Jean-Paul Azevedo
| 2007-10-19 11:40:32
|-
| [http://maemo.org/profile/view/geekboi.html geekboi]
| Charles Hutchinson
| 2007-12-11 16:25:56
|-
| [http://maemo.org/profile/view/geekboy.html geekboy]
| geek boy
| 2008-03-05 09:31:00
|-
| [http://maemo.org/profile/view/geekiac.html geekiac]
| Steven Smith
| 2008-02-09 02:31:06
|-
| [http://maemo.org/profile/view/geekout2.html geekout2]
| kevin norris
| 2007-11-16 17:46:25
|-
| [http://maemo.org/profile/view/geeoox.html geeoox]
| Petra Janke
| 2007-10-30 11:40:35
|-
| [http://maemo.org/profile/view/geep100.html geep100]
| Gorden Marlin
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/geezmo.html geezmo]
| Alberto Pirovano
| 2007-10-22 15:40:35
|-
| [http://maemo.org/profile/view/gehringralf.html gehringralf]
| Ralf Gehring
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/gekk.html gekk]
| Ghennady Turcov
| 2007-11-04 06:40:37
|-
| [http://maemo.org/profile/view/gekker.html gekker]
| Gary Ekker
| 2007-10-19 19:40:33
|-
| [http://maemo.org/profile/view/gemchug74.html gemchug74]
| yura yura
| 2008-03-23 22:31:08
|-
| [http://maemo.org/profile/view/gemediversa.html gemediversa]
| Nicoletta Perri
| 2008-05-18 12:41:10
|-
| [http://maemo.org/profile/view/gemman.html gemman]
| Rainer Winter
| 2008-01-24 15:33:44
|-
| [http://maemo.org/profile/view/gemniii42.html gemniii42]
| george newbury
| 2007-10-25 15:40:35
|-
| [http://maemo.org/profile/view/gene.html gene]
| gene chow
| 2008-04-19 15:41:09
|-
| [http://maemo.org/profile/view/genecristan.html genecristan]
| gene cristan
| 2007-06-08 13:37:21
|-
| [http://maemo.org/profile/view/geneonlbk.html geneonlbk]
| gene jaleski
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/genepool.html genepool]
| Avi Solomon
| 2007-11-16 17:49:28
|-
| [http://maemo.org/profile/view/generalantilles.html generalantilles]
| Ryan Abel
| 2007-11-28 15:43:20
|-
| [http://maemo.org/profile/view/generationally.html generationally]
| Mads Hintz-Madsen
| 2007-10-20 07:40:34
|-
| [http://maemo.org/profile/view/genetyk.html genetyk]
| michal sokolowski
| 2007-12-23 11:41:33
|-
| [http://maemo.org/profile/view/geneven.html geneven]
| Gene Venable
| 2007-05-18 19:11:45
|-
| [http://maemo.org/profile/view/gene_cash.html gene_cash]
| Gene Cash
| 2007-09-01 01:40:25
|-
| [http://maemo.org/profile/view/genioeu.html genioeu]
| Eugenio Bruno
| 2007-07-01 09:40:07
|-
| [http://maemo.org/profile/view/geniusthemaster.html geniusthemaster]
| jon flournoy
| 2007-11-16 17:47:35
|-
| [http://maemo.org/profile/view/genjosanzo.html genjosanzo]
| alberto aresca
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/genome4hire.html genome4hire]
| Christopher Soghoian
| 2007-11-04 06:40:36
|-
| [http://maemo.org/profile/view/genotecinc.html genotecinc]
| D G
| 2007-11-05 18:40:43
|-
| [http://maemo.org/profile/view/gentle991.html gentle991]
| Bob Kert
| 2008-06-02 12:41:10
|-
| [http://maemo.org/profile/view/geoavila.html geoavila]
| geovanny avila
| 2008-03-28 00:31:04
|-
| [http://maemo.org/profile/view/geoffsauer.html geoffsauer]
| Geoffrey Sauer
| 2008-01-15 20:42:28
|-
| [http://maemo.org/profile/view/geomat.html geomat]
| George Matveev
| 2008-05-11 10:41:05
|-
| [http://maemo.org/profile/view/geometer.html geometer]
| Nikolay Pultsin
| 2007-05-18 19:11:10
|-
| [http://maemo.org/profile/view/geomort.html geomort]
| George Mortimer
| 2008-05-27 16:41:15
|-
| [http://maemo.org/profile/view/geopil.html geopil]
| Georg Pilartz
| 2007-10-27 08:40:35
|-
| [http://maemo.org/profile/view/georg.html georg]
| ge org
| 2007-11-16 17:47:59
|-
| [http://maemo.org/profile/view/georgemcr.html georgemcr]
| JORGE ROMERO
| 2008-02-01 01:41:04
|-
| [http://maemo.org/profile/view/georgeogoodman.html georgeogoodman]
| George Goodman
| 2008-04-15 04:41:42
|-
| [http://maemo.org/profile/view/georgep9.html georgep9]
| George Patterson
| 2007-06-19 07:10:35
|-
| [http://maemo.org/profile/view/georgesat.html georgesat]
| George Vourdakis
| 2007-11-16 17:48:15
|-
| [http://maemo.org/profile/view/georgiou.html georgiou]
| Kostas Georgiou
| 2007-10-20 12:40:33
|-
| [http://maemo.org/profile/view/geos2.html geos2]
| yrjo sorvari
| 2007-05-23 05:29:37
|-
| [http://maemo.org/profile/view/geosub.html geosub]
| Victor Geosub
| 2008-05-27 07:41:09
|-
| [http://maemo.org/profile/view/geraldko.html geraldko]
| Gerald Koblentz
| 2008-02-01 04:31:12
|-
| [http://maemo.org/profile/view/geralt78.html geralt78]
| Jan Soc
| 2007-05-18 19:11:55
|-
| [http://maemo.org/profile/view/gerardas.html gerardas]
| gerardas rem
| 2007-06-19 07:10:35
|-
| [http://maemo.org/profile/view/gerard_roma.html gerard_roma]
| gerard roma
| 2007-11-04 21:40:37
|-
| [http://maemo.org/profile/view/gerbick.html gerbick]
| William McBee
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/gerg1.html gerg1]
| Greg Campbell
| 2008-03-16 00:31:02
|-
| [http://maemo.org/profile/view/germanjc.html germanjc]
| Germán Jerez
| 2007-05-18 19:13:08
|-
| [http://maemo.org/profile/view/gerolad79.html gerolad79]
| justin milovitch
| 2008-04-20 13:41:25
|-
| [http://maemo.org/profile/view/gerolzie.html gerolzie]
| Gerolf Ziegenhain
| 2007-05-18 19:11:15
|-
| [http://maemo.org/profile/view/gerrygerry.html gerrygerry]
| gerry gerry
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/gerrynjr.html gerrynjr]
| gerry normandin
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/gerryt1.html gerryt1]
| Gerry Thompson
| 2008-05-23 21:41:08
|-
| [http://maemo.org/profile/view/gershon.html gershon]
| g b
| 2008-02-22 01:31:10
|-
| [http://maemo.org/profile/view/gerteisen.html gerteisen]
| Edgar Gerteisen
| 2007-06-26 08:40:06
|-
| [http://maemo.org/profile/view/gerwyn.html gerwyn]
| Gerwyn Sealey
| 2007-11-16 17:47:17
|-
| [http://maemo.org/profile/view/geshi.html geshi]
| Kuba T
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/gestalter.html gestalter]
| Kai Müller
| 2007-11-16 17:49:28
|-
| [http://maemo.org/profile/view/getc.html getc]
| Daniel Regeci
| 2007-11-05 21:50:55
|-
| [http://maemo.org/profile/view/getovkoki.html getovkoki]
| Kosta Getov
| 2007-10-21 05:40:32
|-
| [http://maemo.org/profile/view/getpams.html getpams]
| anna Kand
| 2007-07-08 23:40:18
|-
| [http://maemo.org/profile/view/getran.html getran]
| eric tran
| 2007-05-18 19:13:43
|-
| [http://maemo.org/profile/view/gettons.html gettons]
| Tommaso Carrara
| 2007-10-21 23:40:24
|-
| [http://maemo.org/profile/view/gewcmr.html gewcmr]
| Gary Wenger
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/geyikali.html geyikali]
| ali altug
| 2008-03-23 07:31:04
|-
| [http://maemo.org/profile/view/gf667.html gf667]
| George Foster
| 2008-05-17 19:40:55
|-
| [http://maemo.org/profile/view/gfanders.html gfanders]
| gary anderson
| 2008-03-14 21:31:04
|-
| [http://maemo.org/profile/view/gfdsa.html gfdsa]
| Michael Tabolsky
| 2007-12-17 19:41:04
|-
| [http://maemo.org/profile/view/gfeirer.html gfeirer]
| Greg Feirer
| 2007-10-23 12:40:33
|-
| [http://maemo.org/profile/view/gfgoubea.html gfgoubea]
| Guy Goubeaux
| 2008-01-21 16:32:21
|-
| [http://maemo.org/profile/view/gfrankel.html gfrankel]
| gary frankel
| 2007-12-12 02:40:57
|-
| [http://maemo.org/profile/view/gfry73.html gfry73]
| Ryan Godfrey
| 2007-11-16 17:49:00
|-
| [http://maemo.org/profile/view/ggardner.html ggardner]
| George Gardner
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/ggattsr.html ggattsr]
| Greg G.
| 2007-05-18 19:11:02
|-
| [http://maemo.org/profile/view/ggb.html ggb]
| Thomas McCaulley
| 2007-05-18 19:11:51
|-
| [http://maemo.org/profile/view/ggolmaemo.html ggolmaemo]
| Gregor Golbach
| 2007-10-25 08:40:35
|-
| [http://maemo.org/profile/view/ggotam.html ggotam]
| g gotam
| 2007-12-25 11:41:00
|-
| [http://maemo.org/profile/view/ggozad.html ggozad]
| George Gozadinos
| 2007-05-18 19:12:12
|-
| [http://maemo.org/profile/view/ggparker.html ggparker]
| Gary Parker
| 2007-12-18 19:41:15
|-
| [http://maemo.org/profile/view/ghanfling.html ghanfling]
| Gary Hanfling
| 2008-01-19 23:41:07
|-
| [http://maemo.org/profile/view/ghavenga.html ghavenga]
| Gregory Havenga
| 2007-07-04 01:40:15
|-
| [http://maemo.org/profile/view/ghazuria.html ghazuria]
| Gunveer Hazuria
| 2007-11-15 07:55:44
|-
| [http://maemo.org/profile/view/gherivero.html gherivero]
| Ghe Rivero
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/ghigomatto.html ghigomatto]
| Mirco Massone
| 2007-05-29 09:30:42
|-
| [http://maemo.org/profile/view/ghill.html ghill]
| ghill liao
| 2008-04-01 15:41:07
|-
| [http://maemo.org/profile/view/ghillliao.html ghillliao]
| ghill liao
| 2008-04-01 15:41:07
|-
| [http://maemo.org/profile/view/ghoelzl.html ghoelzl]
| Guenther Hoelzl
| 2008-01-08 20:51:46
|-
| [http://maemo.org/profile/view/ghoonk.html ghoonk]
| Kenneth Wong
| 2008-01-03 18:41:23
|-
| [http://maemo.org/profile/view/ghost.html ghost]
| ghost ong
| 2008-04-06 16:41:07
|-
| [http://maemo.org/profile/view/ghostt.html ghostt]
| Miroslav Kyta
| 2008-05-19 17:41:07
|-
| [http://maemo.org/profile/view/ghsimon123.html ghsimon123]
| gh simon
| 2008-01-04 16:42:11
|-
| [http://maemo.org/profile/view/giakomino.html giakomino]
| Mattia Maestrini
| 2007-10-23 15:50:39
|-
| [http://maemo.org/profile/view/giallo.html giallo]
| Gianluca Campo
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/giancarlo.html giancarlo]
| Giancarlo Dellepiane
| 2007-10-24 14:40:35
|-
| [http://maemo.org/profile/view/gianfranco.html gianfranco]
| Vas Tom
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/giani.html giani]
| Buzatu Giani-Viorel
| 2007-10-14 15:40:27
|-
| [http://maemo.org/profile/view/gianni68.html gianni68]
| Gianni Pullecenella
| 2008-01-07 16:41:26
|-
| [http://maemo.org/profile/view/giannix.html giannix]
| Gianni Conti
| 2007-05-18 19:12:44
|-
| [http://maemo.org/profile/view/gianspi.html gianspi]
| gian spi
| 2007-11-16 17:50:17
|-
| [http://maemo.org/profile/view/giantcrazy.html giantcrazy]
| Giant Crazy
| 2007-07-10 19:40:17
|-
| [http://maemo.org/profile/view/giblah5.html giblah5]
| Ashfaqur Rahman
| 2007-05-18 19:13:22
|-
| [http://maemo.org/profile/view/gibo.html gibo]
| Sandro Petrillo
| 2007-06-08 13:36:52
|-
| [http://maemo.org/profile/view/gideondk.html gideondk]
| Gideon de Kok
| 2007-10-18 13:40:28
|-
| [http://maemo.org/profile/view/giel.html giel]
| Giel van Schijndel
| 2008-06-08 23:31:09
|-
| [http://maemo.org/profile/view/giff.html giff]
| David Gifford
| 2007-10-29 18:40:37
|-
| [http://maemo.org/profile/view/giffer2.html giffer2]
| Matt Kinnear
| 2007-11-28 16:41:12
|-
| [http://maemo.org/profile/view/giffnyc.html giffnyc]
| David Gifford
| 2007-11-30 10:49:31
|-
| [http://maemo.org/profile/view/gig81.html gig81]
| Luigi Colella
| 2008-02-12 15:31:03
|-
| [http://maemo.org/profile/view/gigabyte77.html gigabyte77]
| Jason Van Schagen
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/gigamegawatts.html gigamegawatts]
| Dan Watts
| 2008-01-29 18:43:26
|-
| [http://maemo.org/profile/view/gil.html gil]
| Carlos Gil
| 2007-05-30 02:20:42
|-
| [http://maemo.org/profile/view/gilbertsy.html gilbertsy]
| Gilbert Sy
| 2008-04-22 07:41:05
|-
| [http://maemo.org/profile/view/gilgam.html gilgam]
| Nicolas Gruson
| 2007-05-14 12:00:13
|-
| [http://maemo.org/profile/view/gilgrav.html gilgrav]
| Gilbert Gravitt
| 2008-05-01 17:41:24
|-
| [http://maemo.org/profile/view/gilles.html gilles]
| Gilles BERETA
| 2007-05-18 19:11:35
|-
| [http://maemo.org/profile/view/gim.html gim]
| Gionata Massi
| 2007-10-25 12:40:36
|-
| [http://maemo.org/profile/view/ginasinger.html ginasinger]
| Gina Greisinger
| 2007-11-16 17:47:47
|-
| [http://maemo.org/profile/view/ginger.html ginger]
| Yanp Ster
| 2007-11-28 15:43:48
|-
| [http://maemo.org/profile/view/ginronin.html ginronin]
| Chris Jean-Pierre
| 2007-11-16 17:49:07
|-
| [http://maemo.org/profile/view/gio2812.html gio2812]
| gio gio
| 2007-05-18 19:12:00
|-
| [http://maemo.org/profile/view/giodex.html giodex]
| gio dex
| 2008-01-18 09:31:05
|-
| [http://maemo.org/profile/view/gionascarselli.html gionascarselli]
| giona scarselli
| 2007-12-11 16:25:05
|-
| [http://maemo.org/profile/view/giorgio.html giorgio]
| Giorgio Biacchi
| 2007-11-30 10:49:37
|-
| [http://maemo.org/profile/view/giorgosg.html giorgosg]
| Giorgos Giagas
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/girobypu.html girobypu]
| Francesco Palma
| 2007-05-29 09:30:40
|-
| [http://maemo.org/profile/view/girvinc.html girvinc]
| Chase Girvin
| 2007-05-18 19:11:00
|-
| [http://maemo.org/profile/view/gisborne.html gisborne]
| Guyren Howe
| 2007-05-18 19:11:38
|-
| [http://maemo.org/profile/view/giskard.html giskard]
| Riccardo Setti
| 2007-10-18 20:40:33
|-
| [http://maemo.org/profile/view/giuleo.html giuleo]
| Giuseppe Tosches
| 2008-04-20 20:41:11
|-
| [http://maemo.org/profile/view/giuliastro.html giuliastro]
| Giulio Ardoino
| 2007-10-22 06:40:32
|-
| [http://maemo.org/profile/view/givanaldo.html givanaldo]
| Givanaldo Rocha de Souza
| 2008-05-13 12:41:09
|-
| [http://maemo.org/profile/view/gizmonix.html gizmonix]
| Chung Pao
| 2007-12-31 07:41:13
|-
| [http://maemo.org/profile/view/gjbaker.html gjbaker]
| George J Baker
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/gjditchfield.html gjditchfield]
| Glen Ditchfield
| 2008-01-24 00:30:26
|-
| [http://maemo.org/profile/view/gjgall.html gjgall]
| Gil Gall
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/gjt-de.html gjt-de]
| gerd jan tschoepe
| 2008-02-04 13:31:11
|-
| [http://maemo.org/profile/view/gkalog.html gkalog]
| George Kalogiannis
| 2007-05-18 19:11:29
|-
| [http://maemo.org/profile/view/gkanai.html gkanai]
| Gen Kanai
| 2008-04-11 08:41:09
|-
| [http://maemo.org/profile/view/gkleijweg.html gkleijweg]
| Gido Kleijweg
| 2008-04-25 00:41:23
|-
| [http://maemo.org/profile/view/gkordics.html gkordics]
| gabriel kordics
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/gkunkle.html gkunkle]
| geoff kunkle
| 2007-05-18 19:12:33
|-
| [http://maemo.org/profile/view/gl00my.html gl00my]
| Peter Kosyh
| 2008-03-12 07:31:02
|-
| [http://maemo.org/profile/view/glaciergrueven.html glaciergrueven]
| Oliver Meister
| 2007-05-18 19:11:52
|-
| [http://maemo.org/profile/view/glangston32712.html glangston32712]
| gary langston
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/glaryomama.html glaryomama]
| Ed Bachman
| 2007-11-16 17:48:25
|-
| [http://maemo.org/profile/view/glauber.html glauber]
| Glauber Ferreira
| 2007-04-05 15:25:46
|-
| [http://maemo.org/profile/view/glbelchior.html glbelchior]
| Gerson Belchior
| 2007-07-09 01:40:19
|-
| [http://maemo.org/profile/view/glebite.html glebite]
| Paul Warner
| 2007-07-10 13:40:18
|-
| [http://maemo.org/profile/view/gleff49.html gleff49]
| glenn kennedy
| 2007-05-29 09:30:38
|-
| [http://maemo.org/profile/view/gleitz.html gleitz]
| Benjamin Gleitzman
| 2007-05-18 19:11:23
|-
| [http://maemo.org/profile/view/glenn.html glenn]
| glenn white
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/glennswest.html glennswest]
| Glenn west
| 2007-11-01 05:40:35
|-
| [http://maemo.org/profile/view/glenux.html glenux]
| Glenn Rolland
| 2007-06-19 07:10:35
|-
| [http://maemo.org/profile/view/glen_chen.html glen_chen]
| eric chen
| 2008-01-16 06:41:02
|-
| [http://maemo.org/profile/view/glesica.html glesica]
| George Lesica
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/gletelli.html gletelli]
| Guillaume Letellier
| 2007-10-23 10:40:55
|-
| [http://maemo.org/profile/view/glewis.html glewis]
| Grant Lewis
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/glezos.html glezos]
| Dimitris Glezos
| 2007-11-15 07:55:59
|-
| [http://maemo.org/profile/view/glhiii.html glhiii]
| George Hart
| 2008-01-01 03:41:01
|-
| [http://maemo.org/profile/view/globalattitude.html globalattitude]
| karen maduschke
| 2008-01-15 17:42:32
|-
| [http://maemo.org/profile/view/globalserver.html globalserver]
| scott dalrymple
| 2008-01-09 22:41:02
|-
| [http://maemo.org/profile/view/globster.html globster]
| Arkadiy Glazov
| 2007-10-23 10:40:55
|-
| [http://maemo.org/profile/view/glorybox.html glorybox]
| lorenzo selmin
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/glosaul.html glosaul]
| saul stockhamer
| 2007-05-23 06:10:37
|-
| [http://maemo.org/profile/view/glostah.html glostah]
| b oco
| 2007-07-21 23:40:15
|-
| [http://maemo.org/profile/view/gluca.html gluca]
| Gianluca Magalotti
| 2007-11-28 15:43:28
|-
| [http://maemo.org/profile/view/glutrino.html glutrino]
| Danny Bennett
| 2008-04-27 16:41:08
|-
| [http://maemo.org/profile/view/glyphery.html glyphery]
| Marcus Brodeur
| 2007-11-30 10:49:32
|-
| [http://maemo.org/profile/view/gm276.html gm276]
| Don Butterworth
| 2007-11-16 17:46:39
|-
| [http://maemo.org/profile/view/gm770.html gm770]
| Georges Meylan
| 2008-01-30 19:42:00
|-
| [http://maemo.org/profile/view/gma10in2007.html gma10in2007]
| Donna Czerepinski
| 2007-11-16 17:47:30
|-
| [http://maemo.org/profile/view/gmacay.html gmacay]
| Gerardo Macay
| 2007-05-18 19:14:42
|-
| [http://maemo.org/profile/view/gmacky.html gmacky]
| garron clark
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/gmaigne.html gmaigne]
| Gilles Maigne
| 2007-11-28 15:43:19
|-
| [http://maemo.org/profile/view/gmann.html gmann]
| Godfrey Clayton
| 2008-04-22 19:40:51
|-
| [http://maemo.org/profile/view/gmarvel.html gmarvel]
| george maravelias
| 2008-02-15 22:31:03
|-
| [http://maemo.org/profile/view/gmc.html gmc]
| Greg Christy
| 2007-12-21 13:41:04
|-
| [http://maemo.org/profile/view/gmeister.html gmeister]
| Greg Meister
| 2008-04-10 19:41:11
|-
| [http://maemo.org/profile/view/gmf2000.html gmf2000]
| Grant McWilliams
| 2007-11-30 10:49:37
|-
| [http://maemo.org/profile/view/gmicsko.html gmicsko]
| Gabor Micsko
| 2007-10-18 16:40:28
|-
| [http://maemo.org/profile/view/gmillar.html gmillar]
| Geordie Millar
| 2007-12-11 16:26:15
|-
| [http://maemo.org/profile/view/gmkurtyka.html gmkurtyka]
| George Kurtyka
| 2007-05-18 19:12:30
|-
| [http://maemo.org/profile/view/gmlvsk.html gmlvsk]
| andrei gum
| 2008-03-07 04:31:03
|-
| [http://maemo.org/profile/view/gmoney.html gmoney]
| g p
| 2008-03-25 03:31:06
|-
| [http://maemo.org/profile/view/gmonne.html gmonne]
| Gustavo Monne
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/gmoreno.html gmoreno]
| German Moreno
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/gmstrong.html gmstrong]
| Gary Strong
| 2007-06-29 21:40:19
|-
| [http://maemo.org/profile/view/gndeepak.html gndeepak]
| Deepak Neethimani
| 2007-11-05 13:21:02
|-
| [http://maemo.org/profile/view/gnitin21.html gnitin21]
| Nitin Gupta
| 2008-04-22 12:41:15
|-
| [http://maemo.org/profile/view/gnolan.html gnolan]
| Greg Nolan
| 2007-06-28 01:40:19
|-
| [http://maemo.org/profile/view/gnolaum.html gnolaum]
| Terry McAllister
| 2008-02-29 00:31:01
|-
| [http://maemo.org/profile/view/gnomeuser.html gnomeuser]
| David Nielsen
| 2007-10-25 06:40:36
|-
| [http://maemo.org/profile/view/gntman.html gntman]
| Richard Costa
| 2007-05-18 19:12:04
|-
| [http://maemo.org/profile/view/gnue.html gnue]
| Makoto Nukui
| 2007-05-18 19:12:19
|-
| [http://maemo.org/profile/view/gnuite.html gnuite]
| John Costigan
| 2007-05-21 13:43:07
|-
| [http://maemo.org/profile/view/gnuton.html gnuton]
| Antonio Aloisio
| 2007-10-23 16:40:35
|-
| [http://maemo.org/profile/view/go-in.html go-in]
| no name
| 2007-03-19 15:34:18
|-
| [http://maemo.org/profile/view/go4itmybabe.html go4itmybabe]
| Stefano Pinzani
| 2007-10-23 13:40:34
|-
| [http://maemo.org/profile/view/go4jas.html go4jas]
| Jaspreet Bhangoo
| 2007-05-18 19:14:08
|-
| [http://maemo.org/profile/view/goatfree.html goatfree]
| Tyler Lee
| 2007-12-24 07:41:10
|-
| [http://maemo.org/profile/view/gocadd.html gocadd]
| Carlos Gomez
| 2007-11-16 17:48:10
|-
| [http://maemo.org/profile/view/gochito.html gochito]
| francisco romero
| 2007-11-16 17:46:24
|-
| [http://maemo.org/profile/view/goconfigure.html goconfigure]
| chris overstreet
| 2007-11-16 17:47:30
|-
| [http://maemo.org/profile/view/goddard.html goddard]
| André Goddard Rosa
| 2007-04-05 15:25:36
|-
| [http://maemo.org/profile/view/godfather.html godfather]
| Hung Chu
| 2007-10-19 11:40:31
|-
| [http://maemo.org/profile/view/godwinng.html godwinng]
| Godwin Ng
| 2007-08-31 03:40:09
|-
| [http://maemo.org/profile/view/goenzoy.html goenzoy]
| Gottfried Zojer
| 2007-11-16 17:49:20
|-
| [http://maemo.org/profile/view/goergen.html goergen]
| Daniel Goergen
| 2007-10-29 13:40:35
|-
| [http://maemo.org/profile/view/goggremlin.html goggremlin]
| Gog Gremlin
| 2007-07-05 21:40:16
|-
| [http://maemo.org/profile/view/gohei.html gohei]
| adonis carrasquillo
| 2007-11-28 17:50:54
|-
| [http://maemo.org/profile/view/gohei1.html gohei1]
| adonis carrasquillo
| 2007-05-24 06:20:40
|-
| [http://maemo.org/profile/view/gokhanb7.html gokhanb7]
| gokhan butun
| 2008-02-17 17:31:02
|-
| [http://maemo.org/profile/view/gokudo.html gokudo]
| yousef albader
| 2007-05-18 19:14:27
|-
| [http://maemo.org/profile/view/golab.html golab]
| Mikael Andersson
| 2007-11-16 17:47:33
|-
| [http://maemo.org/profile/view/golam_sarower.html golam_sarower]
| Golam Sarower
| 2007-11-16 17:47:19
|-
| [http://maemo.org/profile/view/golan.html golan]
| Jesus Roncero
| 2007-10-19 10:40:36
|-
| [http://maemo.org/profile/view/goldplatnium.html goldplatnium]
| christopher blue
| 2007-05-18 19:10:48
|-
| [http://maemo.org/profile/view/goldseam.html goldseam]
| Peter Renner
| 2008-01-23 03:31:01
|-
| [http://maemo.org/profile/view/goldwein.html goldwein]
| Joel Goldwein
| 2007-07-05 18:40:12
|-
| [http://maemo.org/profile/view/goldy.html goldy]
| Goldy Liang
| 2007-10-17 02:40:26
|-
| [http://maemo.org/profile/view/golf117.html golf117]
| Xavier Garza
| 2008-04-29 18:41:07
|-
| [http://maemo.org/profile/view/golfish.html golfish]
| Feng Guo
| 2008-01-31 04:31:07
|-
| [http://maemo.org/profile/view/golkeepr22.html golkeepr22]
| Josh Allen
| 2007-11-16 17:46:36
|-
| [http://maemo.org/profile/view/gombau.html gombau]
| Alberto Gombau
| 2008-03-25 18:31:07
|-
| [http://maemo.org/profile/view/gomer.html gomer]
| winston smith
| 2007-11-16 17:49:37
|-
| [http://maemo.org/profile/view/gomezpmike.html gomezpmike]
| Miguel Eduardo Gomez Pereira
| 2008-03-26 19:31:08
|-
| [http://maemo.org/profile/view/gompers.html gompers]
| Dave Ropte
| 2008-01-09 01:41:02
|-
| [http://maemo.org/profile/view/gonehuntn.html gonehuntn]
| C S
| 2007-11-16 17:49:38
|-
| [http://maemo.org/profile/view/gonp.html gonp]
| Gonzalo Perez
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/gonzalosimo.html gonzalosimo]
| Gonzalo Simó Cardalda
| 2007-05-18 19:13:17
|-
| [http://maemo.org/profile/view/gonzalo_simo.html gonzalo_simo]
| Gonzalo Simó CARDALDA
| 2007-12-11 16:26:00
|-
| [http://maemo.org/profile/view/gonzo.html gonzo]
| Kagan S
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/gonzoiii.html gonzoiii]
| David Davidov
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/gonzoua.html gonzoua]
| Oleksandr Tymoshenko
| 2008-04-18 17:41:12
|-
| [http://maemo.org/profile/view/gooberschnot.html gooberschnot]
| T Eng
| 2007-10-19 18:40:35
|-
| [http://maemo.org/profile/view/goodale.html goodale]
| Tom Goodale
| 2007-10-20 21:41:30
|-
| [http://maemo.org/profile/view/goodlife1923.html goodlife1923]
| Louis Harvey
| 2008-03-26 08:31:03
|-
| [http://maemo.org/profile/view/gooey.html gooey]
| Jonathan Bar-Gil
| 2007-11-28 18:00:25
|-
| [http://maemo.org/profile/view/googlehupf.html googlehupf]
| klaus jaeger
| 2007-05-18 19:10:33
|-
| [http://maemo.org/profile/view/googler.html googler]
| jin jianrong
| 2007-11-16 17:46:47
|-
| [http://maemo.org/profile/view/googs.html googs]
| zakir hussain
| 2008-02-18 15:30:59
|-
| [http://maemo.org/profile/view/goomy.html goomy]
| Rafaela Líbano
| 2008-04-05 06:41:05
|-
| [http://maemo.org/profile/view/goon.html goon]
| BIN DONG
| 2007-05-29 09:30:36
|-
| [http://maemo.org/profile/view/goose73.html goose73]
| kevin davidson
| 2008-04-30 21:41:30
|-
| [http://maemo.org/profile/view/gopalmarda.html gopalmarda]
| gopal marda
| 2007-05-18 19:11:24
|-
| [http://maemo.org/profile/view/gopher.html gopher]
| Benjamin Schweizer
| 2008-04-07 11:41:03
|-
| [http://maemo.org/profile/view/gorag.html gorag]
| Mikko Dittmer
| 2007-11-16 17:47:12
|-
| [http://maemo.org/profile/view/gordon.html gordon]
| Gordon Wallace
| 2007-05-18 19:10:59
|-
| [http://maemo.org/profile/view/gordonmaynard.html gordonmaynard]
| Gordon Maynard
| 2008-01-20 11:32:39
|-
| [http://maemo.org/profile/view/gordosgear.html gordosgear]
| gordon simmons
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/gorecht.html gorecht]
| Georg Link
| 2007-11-15 07:56:17
|-
| [http://maemo.org/profile/view/gorkadune.html gorkadune]
| Gorka Dune
| 2007-05-18 19:10:47
|-
| [http://maemo.org/profile/view/gorlik.html gorlik]
| Gabriele Gorla
| 2007-11-16 17:49:06
|-
| [http://maemo.org/profile/view/goscha.html goscha]
| zeng sam
| 2007-12-12 13:40:49
|-
| [http://maemo.org/profile/view/gosia.html gosia]
| malgorzata ciesielska
| 2008-05-16 13:41:07
|-
| [http://maemo.org/profile/view/gospo.html gospo]
| Andy Gospodarek
| 2007-12-11 16:25:42
|-
| [http://maemo.org/profile/view/got.html got]
| Jon Berry
| 2007-11-16 17:47:57
|-
| [http://maemo.org/profile/view/gotan.html gotan]
| Tim O
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/gouache95.html gouache95]
| sangho park
| 2008-05-25 08:41:10
|-
| [http://maemo.org/profile/view/gourmand.html gourmand]
| Gourmand Gourmet
| 2008-03-24 19:31:04
|-
| [http://maemo.org/profile/view/gourmet.html gourmet]
| Serge Gourmet
| 2008-04-05 16:41:04
|-
| [http://maemo.org/profile/view/goverweg.html goverweg]
| Gerrit Overweg
| 2007-10-24 12:40:37
|-
| [http://maemo.org/profile/view/goviacn.html goviacn]
| bill hay
| 2007-12-14 17:41:10
|-
| [http://maemo.org/profile/view/govmiller.html govmiller]
| Eric Miller
| 2008-01-08 21:41:16
|-
| [http://maemo.org/profile/view/gowen.html gowen]
| Gary Owen
| 2007-05-23 05:29:41
|-
| [http://maemo.org/profile/view/gperkins.html gperkins]
| graham perkins
| 2007-12-11 16:26:23
|-
| [http://maemo.org/profile/view/gpletnev.html gpletnev]
| Grigory Pletnev
| 2007-10-15 08:40:27
|-
| [http://maemo.org/profile/view/gpotato.html gpotato]
| Marco Bono
| 2008-03-13 00:31:11
|-
| [http://maemo.org/profile/view/gpsbud.html gpsbud]
| Bud Cole
| 2007-11-16 17:47:44
|-
| [http://maemo.org/profile/view/gpsybld.html gpsybld]
| tracey kennelly
| 2007-12-31 12:40:58
|-
| [http://maemo.org/profile/view/gpuchi.html gpuchi]
| Gustavo Puchi Medina
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/gr8tech.html gr8tech]
| Ted Madill
| 2008-01-24 19:32:09
|-
| [http://maemo.org/profile/view/grace21.html grace21]
| bel marquez
| 2008-04-19 22:41:14
|-
| [http://maemo.org/profile/view/grackle.html grackle]
| Alex French
| 2008-05-15 13:41:10
|-
| [http://maemo.org/profile/view/graemew66.html graemew66]
| graeme wadsworth
| 2008-02-29 21:31:06
|-
| [http://maemo.org/profile/view/grafxbear.html grafxbear]
| bob young
| 2007-05-18 19:14:33
|-
| [http://maemo.org/profile/view/graham.html graham]
| graham fennell
| 2007-05-18 19:13:23
|-
| [http://maemo.org/profile/view/grahamdouglas.html grahamdouglas]
| Graham Douglas
| 2007-11-16 17:49:17
|-
| [http://maemo.org/profile/view/grahame.html grahame]
| Grahame Bowland
| 2007-10-25 05:40:32
|-
| [http://maemo.org/profile/view/grahamlc.html grahamlc]
| graham Craddock
| 2008-05-22 19:41:28
|-
| [http://maemo.org/profile/view/gramifications.html gramifications]
| Graham Anderson
| 2008-02-27 04:31:04
|-
| [http://maemo.org/profile/view/grampaof2.html grampaof2]
| joe russell
| 2007-11-16 17:47:19
|-
| [http://maemo.org/profile/view/grantp.html grantp]
| grant phillips
| 2008-05-06 05:41:06
|-
| [http://maemo.org/profile/view/granul.html granul]
| Simon B
| 2008-02-27 18:31:04
|-
| [http://maemo.org/profile/view/grape.html grape]
| steve macgregor
| 2008-03-17 08:31:00
|-
| [http://maemo.org/profile/view/graphics.html graphics]
| Petri Tolppanen
| 2007-05-18 19:11:48
|-
| [http://maemo.org/profile/view/graphicsguy.html graphicsguy]
| Jonathan Cohen
| 2008-02-18 07:30:59
|-
| [http://maemo.org/profile/view/grard.html grard]
| Gerard de Vos
| 2007-10-20 13:40:31
|-
| [http://maemo.org/profile/view/grasote.html grasote]
| radu i
| 2007-12-18 04:40:53
|-
| [http://maemo.org/profile/view/gratcscc.html gratcscc]
| Gilert Rhodes
| 2008-04-29 16:41:06
|-
| [http://maemo.org/profile/view/grau.html grau]
| robert helou
| 2007-04-05 15:25:39
|-
| [http://maemo.org/profile/view/gravies.html gravies]
| Graham Davies
| 2007-05-18 19:11:28
|-
| [http://maemo.org/profile/view/grazy.html grazy]
| Nicolas Graziano
| 2007-06-19 14:40:18
|-
| [http://maemo.org/profile/view/gre66.html gre66]
| gregg bookham
| 2008-05-12 19:41:13
|-
| [http://maemo.org/profile/view/great770.html great770]
| Tsuyoshi SUGANO
| 2007-05-18 19:13:36
|-
| [http://maemo.org/profile/view/grebo.html grebo]
| Eric Roberts
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/greedinc.html greedinc]
| Christopher Bioteau
| 2007-06-30 17:40:07
|-
| [http://maemo.org/profile/view/greekgman71.html greekgman71]
| George Kazakos
| 2007-11-28 15:43:26
|-
| [http://maemo.org/profile/view/greekharry.html greekharry]
| harry nicholos
| 2007-05-18 19:11:20
|-
| [http://maemo.org/profile/view/greenbereta1c.html greenbereta1c]
| Nate Mallory
| 2007-12-25 22:41:45
|-
| [http://maemo.org/profile/view/greendeath.html greendeath]
| Dmitry Elkin
| 2008-01-12 03:41:07
|-
| [http://maemo.org/profile/view/greenfire.html greenfire]
| Denis Mekshun
| 2007-05-18 19:12:41
|-
| [http://maemo.org/profile/view/greenfirex.html greenfirex]
| spencer bartlett
| 2008-01-05 12:41:13
|-
| [http://maemo.org/profile/view/greenstream.html greenstream]
| thuy nguyen
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/greenwb.html greenwb]
| Bryan Greenwood
| 2007-07-05 16:40:10
|-
| [http://maemo.org/profile/view/greg4814.html greg4814]
| Greg Jelson
| 2007-11-16 17:49:06
|-
| [http://maemo.org/profile/view/gregarican.html gregarican]
| Greg Kujawa
| 2007-07-13 17:40:17
|-
| [http://maemo.org/profile/view/gregcobb81.html gregcobb81]
| Greg Cobb
| 2008-01-06 17:40:59
|-
| [http://maemo.org/profile/view/gregg.html gregg]
| Gregg Geigler
| 2008-04-14 16:40:42
|-
| [http://maemo.org/profile/view/gregifer.html gregifer]
| greg otte
| 2007-10-17 14:40:30
|-
| [http://maemo.org/profile/view/gregnall.html gregnall]
| Greg Nall
| 2007-06-26 16:40:05
|-
| [http://maemo.org/profile/view/gregphillips.html gregphillips]
| Greg Phillips
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/gregwilkins.html gregwilkins]
| Greg Wilkins
| 2008-03-15 10:31:05
|-
| [http://maemo.org/profile/view/grex.html grex]
| Alex Grex
| 2007-11-16 17:48:10
|-
| [http://maemo.org/profile/view/greyarea.html greyarea]
| olawale williams
| 2007-10-23 02:40:35
|-
| [http://maemo.org/profile/view/greycardinal.html greycardinal]
| Valentin Kazimirov
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/greyfox.html greyfox]
| Nurbol Suleymenov
| 2007-07-01 08:40:07
|-
| [http://maemo.org/profile/view/greyghost.html greyghost]
| Phillip Dubov
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/greygore1.html greygore1]
| greg puertolas
| 2007-11-15 07:55:57
|-
| [http://maemo.org/profile/view/greykat.html greykat]
| Nik Katsabas
| 2007-11-16 17:49:24
|-
| [http://maemo.org/profile/view/greyseal.html greyseal]
| Konrad Godfrey
| 2008-05-02 03:41:06
|-
| [http://maemo.org/profile/view/griderob.html griderob]
| Robert Perez
| 2007-10-19 07:40:30
|-
| [http://maemo.org/profile/view/gridhawk.html gridhawk]
| sven sackers
| 2008-02-18 23:30:59
|-
| [http://maemo.org/profile/view/griffie.html griffie]
| Eric Griffith
| 2008-03-29 04:31:06
|-
| [http://maemo.org/profile/view/griffin1340.html griffin1340]
| james kronvold
| 2007-05-18 19:12:45
|-
| [http://maemo.org/profile/view/griffin215.html griffin215]
| richard griffin
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/griffith.html griffith]
| Ben Griffith
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/grigorislionis.html grigorislionis]
| Grigoris Lionis
| 2007-06-26 18:40:07
|-
| [http://maemo.org/profile/view/grigoriy.html grigoriy]
| Grigoriy Ferdman
| 2007-11-01 09:40:37
|-
| [http://maemo.org/profile/view/grimbald.html grimbald]
| Teemu Pirinen
| 2008-01-07 09:40:54
|-
| [http://maemo.org/profile/view/grint.html grint]
| Ruslan Gogunskiy
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/grisu.html grisu]
| Ulrich Gries
| 2007-05-29 09:30:40
|-
| [http://maemo.org/profile/view/griz326.html griz326]
| steve hammill
| 2007-05-18 19:13:49
|-
| [http://maemo.org/profile/view/grkim.html grkim]
| gr kim
| 2007-05-23 11:51:11
|-
| [http://maemo.org/profile/view/grmsingh.html grmsingh]
| Gurmeet Singh
| 2007-11-30 10:49:37
|-
| [http://maemo.org/profile/view/groma.html groma]
| gerard roma
| 2007-11-30 10:49:27
|-
| [http://maemo.org/profile/view/grone87.html grone87]
| Manfred Hutt
| 2007-11-15 07:56:22
|-
| [http://maemo.org/profile/view/grooveboxx.html grooveboxx]
| J H
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/grossdavis.html grossdavis]
| Gavin Davis
| 2007-12-15 02:40:52
|-
| [http://maemo.org/profile/view/grout.html grout]
| mat frgt
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/grr.html grr]
| Grzegorz Raczkowski
| 2008-03-04 13:31:10
|-
| [http://maemo.org/profile/view/gru.html gru]
| Radovan Obradovic
| 2007-11-15 07:55:55
|-
| [http://maemo.org/profile/view/grucker.html grucker]
| jay rucker
| 2008-05-09 23:40:40
|-
| [http://maemo.org/profile/view/grugnog.html grugnog]
| Owen Barton
| 2008-01-09 06:50:58
|-
| [http://maemo.org/profile/view/grumpylad.html grumpylad]
| michael davison
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/grymoire.html grymoire]
| Tracy Atteberry
| 2007-06-29 19:40:08
|-
| [http://maemo.org/profile/view/gryphonking.html gryphonking]
| Larry Dixon
| 2007-05-18 19:11:35
|-
| [http://maemo.org/profile/view/gsaenz1.html gsaenz1]
| Gil Saenz
| 2007-11-28 15:43:25
|-
| [http://maemo.org/profile/view/gsagers.html gsagers]
| Glen Sagers
| 2007-05-18 19:12:18
|-
| [http://maemo.org/profile/view/gsarhan.html gsarhan]
| Gaith Sarhan
| 2008-03-15 03:31:12
|-
| [http://maemo.org/profile/view/gsean5.html gsean5]
| sean gutirrz
| 2007-06-13 23:40:53
|-
| [http://maemo.org/profile/view/gsf.html gsf]
| Gabriel Sean Farrell
| 2007-11-15 07:56:00
|-
| [http://maemo.org/profile/view/gsm1000.html gsm1000]
| Gerry Murphy
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/gsmit.html gsmit]
| Alex Windernan
| 2007-10-14 14:40:13
|-
| [http://maemo.org/profile/view/gspyer.html gspyer]
| greg spyer
| 2007-11-28 15:43:27
|-
| [http://maemo.org/profile/view/gsruff.html gsruff]
| Steve 
| 2008-01-04 07:41:13
|-
| [http://maemo.org/profile/view/gst.html gst]
| Guenther Starnberger
| 2007-11-15 07:55:28
|-
| [http://maemo.org/profile/view/gstasiak.html gstasiak]
| Grzegorz Stasiak
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/gszczutkowski.html gszczutkowski]
| Grzegorz Szczutkowski
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/gszpiniak.html gszpiniak]
| Guy Szpiniak
| 2007-11-15 07:55:45
|-
| [http://maemo.org/profile/view/gte952r.html gte952r]
| Ken Bo
| 2007-06-23 15:40:06
|-
| [http://maemo.org/profile/view/gtgrif.html gtgrif]
| Nick Maluzhkovitch
| 2008-03-28 11:31:04
|-
| [http://maemo.org/profile/view/gtg_maemo.html gtg_maemo]
| Gustavo Torres
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/gtlangdon.html gtlangdon]
| Geoff Langdon
| 2008-04-19 12:41:06
|-
| [http://maemo.org/profile/view/gtorlot.html gtorlot]
| Grégory Torloting
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/gtrevize.html gtrevize]
| Dante Passalacqua
| 2008-01-08 23:41:24
|-
| [http://maemo.org/profile/view/gtsg020.html gtsg020]
| Mike Ryan
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/gtsmith.html gtsmith]
| GT Smith
| 2007-12-18 21:41:15
|-
| [http://maemo.org/profile/view/guadarismo.html guadarismo]
| Gustavo Martinez
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/guaiacum.html guaiacum]
| Luis Guillermo Coronado Chacon
| 2007-10-19 19:40:31
|-
| [http://maemo.org/profile/view/guaka.html guaka]
| Kasper Souren
| 2007-05-18 19:11:17
|-
| [http://maemo.org/profile/view/guanacux.html guanacux]
| Guanacux A
| 2008-05-16 21:41:20
|-
| [http://maemo.org/profile/view/guarache1.html guarache1]
| Pete Cast
| 2008-01-22 05:31:25
|-
| [http://maemo.org/profile/view/guardian.html guardian]
| Gregory Pakosz
| 2007-11-15 07:56:22
|-
| [http://maemo.org/profile/view/guberif.html guberif]
| Ben Maemo
| 2008-01-28 07:32:44
|-
| [http://maemo.org/profile/view/guddupapa.html guddupapa]
| Guddu Papa
| 2007-05-18 19:12:58
|-
| [http://maemo.org/profile/view/guenterfrick.html guenterfrick]
| Dr. Günter Frick
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/guerby.html guerby]
| Laurent GUERBY
| 2007-01-20 17:00:09
|-
| [http://maemo.org/profile/view/guerne-ca.html guerne-ca]
| Claude-Alain Guerne
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/gugms.html gugms]
| Andrés Chacón Coscia
| 2007-05-18 19:13:03
|-
| [http://maemo.org/profile/view/guha_priya.html guha_priya]
| Guha Priya
| 2007-11-16 17:48:36
|-
| [http://maemo.org/profile/view/guii.html guii]
| Guilherme Puglia
| 2008-05-13 02:41:07
|-
| [http://maemo.org/profile/view/guillakunst.html guillakunst]
| guillaume field
| 2007-10-20 14:40:33
|-
| [http://maemo.org/profile/view/guillem.html guillem]
| Guillem Jover
| 2007-05-18 19:11:40
|-
| [http://maemo.org/profile/view/guiman.html guiman]
| Emmanuel Wilhelm
| 2007-12-11 16:26:34
|-
| [http://maemo.org/profile/view/guiperez.html guiperez]
| Guilherme Perez
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/guitarhead.html guitarhead]
| louie ostrea
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/guitarhero1441.html guitarhero1441]
| Logan McPhail
| 2008-01-20 03:32:09
|-
| [http://maemo.org/profile/view/guitsduche.html guitsduche]
| Guillaume Duchet
| 2008-01-16 18:41:42
|-
| [http://maemo.org/profile/view/guizmo34.html guizmo34]
| Elie Elkaim
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/gultig.html gultig]
| Gultig Gustaffsen
| 2006-10-30 17:22:10
|-
| [http://maemo.org/profile/view/gumbit.html gumbit]
| Oleg Osedach
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/gummibaerchen.html gummibaerchen]
| Timm Preetz
| 2007-10-19 15:40:31
|-
| [http://maemo.org/profile/view/gunawanaj.html gunawanaj]
| Antonius Gunawan
| 2007-11-16 17:49:11
|-
| [http://maemo.org/profile/view/gungar.html gungar]
| brian pankratz
| 2007-06-29 22:40:09
|-
| [http://maemo.org/profile/view/gunnarmathiason.html gunnarmathiason]
| Gunnar Mathiason
| 2007-10-19 15:40:31
|-
| [http://maemo.org/profile/view/guntereren.html guntereren]
| Gunter Eren
| 2008-03-24 17:31:09
|-
| [http://maemo.org/profile/view/gupa.html gupa]
| Efren Olague
| 2008-01-20 01:42:19
|-
| [http://maemo.org/profile/view/gurban.html gurban]
| Gerhard Urban
| 2008-03-25 19:31:32
|-
| [http://maemo.org/profile/view/gurbo.html gurbo]
| Roberto Etcheverry
| 2007-05-31 21:40:37
|-
| [http://maemo.org/profile/view/gurkantur.html gurkantur]
| gurkan tur
| 2007-11-16 17:47:34
|-
| [http://maemo.org/profile/view/guru.html guru]
| Chris Kwon
| 2008-05-28 08:41:11
|-
| [http://maemo.org/profile/view/guruevi.html guruevi]
| Guru Evi
| 2008-03-21 17:31:04
|-
| [http://maemo.org/profile/view/gurumac.html gurumac]
| Berkant Kaya
| 2007-10-30 23:40:38
|-
| [http://maemo.org/profile/view/gurur.html gurur]
| Jere Malinen
| 2007-04-05 15:25:38
|-
| [http://maemo.org/profile/view/guslaguna.html guslaguna]
| gustavo mendez
| 2007-07-10 22:40:12
|-
| [http://maemo.org/profile/view/gustavobar.html gustavobar]
| gustavo barboza
| 2008-01-15 18:41:06
|-
| [http://maemo.org/profile/view/gustavodario.html gustavodario]
| Gustavo Dario
| 2007-11-16 17:47:19
|-
| [http://maemo.org/profile/view/gustavomoss.html gustavomoss]
| Gustavo Moss
| 2007-11-28 15:43:36
|-
| [http://maemo.org/profile/view/gustavotiberio.html gustavotiberio]
| Gustavo Tiberio
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/gutemjunior.html gutemjunior]
| Gutemberg Júnior
| 2008-03-06 13:31:01
|-
| [http://maemo.org/profile/view/guthrikb.html guthrikb]
| Kevin Guthrie
| 2007-11-15 07:55:47
|-
| [http://maemo.org/profile/view/guymage.html guymage]
| Donars Guillaume
| 2006-10-30 17:22:10
|-
| [http://maemo.org/profile/view/guynux.html guynux]
| Guy Passail
| 2007-10-23 10:40:55
|-
| [http://maemo.org/profile/view/guyrubens.html guyrubens]
| Guy Rubens
| 2008-05-14 14:41:42
|-
| [http://maemo.org/profile/view/gvarisco.html gvarisco]
| Gianluca Varisco
| 2007-10-21 22:40:33
|-
| [http://maemo.org/profile/view/gventresca.html gventresca]
| Gianfranco Ventresca
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/gvisser.html gvisser]
| Gary Visser
| 2007-05-18 19:10:35
|-
| [http://maemo.org/profile/view/gw666.html gw666]
| Gregg Williams
| 2007-05-18 19:14:25
|-
| [http://maemo.org/profile/view/gwak.html gwak]
| greg gulrajani
| 2007-06-20 11:40:06
|-
| [http://maemo.org/profile/view/gwalker.html gwalker]
| Gregory Walker
| 2008-05-19 02:41:13
|-
| [http://maemo.org/profile/view/gwdavis28.html gwdavis28]
| Glenn Davis
| 2007-11-16 17:47:33
|-
| [http://maemo.org/profile/view/gweis.html gweis]
| Gerhard Weis
| 2007-05-18 19:12:44
|-
| [http://maemo.org/profile/view/gwhite.html gwhite]
| Gary White
| 2007-05-18 19:14:38
|-
| [http://maemo.org/profile/view/gwielopolski.html gwielopolski]
| Grzegorz Wielopolski
| 2007-05-18 19:13:13
|-
| [http://maemo.org/profile/view/gwmmmaemo.html gwmmmaemo]
| Gary White
| 2008-01-11 15:52:00
|-
| [http://maemo.org/profile/view/gwright.html gwright]
| George Wright
| 2007-10-19 11:40:31
|-
| [http://maemo.org/profile/view/gyime.html gyime]
| gyimesi péter
| 2007-05-30 19:02:08
|-
| [http://maemo.org/profile/view/gylman.html gylman]
| gyl man
| 2008-05-27 03:40:42
|-
| [http://maemo.org/profile/view/gymboyinict.html gymboyinict]
| Michael Dinh
| 2007-11-03 06:40:40
|-
| [http://maemo.org/profile/view/gyver.html gyver]
| Lionel Bouton
| 2008-04-06 22:41:05
|-
| [http://maemo.org/profile/view/gzmask.html gzmask]
| shulang lei
| 2007-05-18 19:13:57
|-
| [http://maemo.org/profile/view/g_ru.html g_ru]
| Geoff Ruscoe
| 2007-11-16 17:46:32
|-
| [http://maemo.org/profile/view/g_toro.html g_toro]
| Gianluca Toro
| 2008-02-23 10:31:01
|-
| [http://maemo.org/profile/view/g_zizi_p.html g_zizi_p]
| dragan pazin
| 2007-12-19 14:41:22
|-
| [http://maemo.org/profile/view/h2tony.html h2tony]
| tony anastasio
| 2007-05-18 19:11:20
|-
| [http://maemo.org/profile/view/h3r_19.html h3r_19]
| Hermanto Wijaya
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/ha70769.html ha70769]
| Henry Aaltonen
| 2007-10-31 09:40:36
|-
| [http://maemo.org/profile/view/haans.html haans]
| Haans Mulder
| 2008-01-30 04:31:32
|-
| [http://maemo.org/profile/view/haapomaa.html haapomaa]
| Eki Haapomaa
| 2008-03-25 11:31:03
|-
| [http://maemo.org/profile/view/habalux.html habalux]
| Teemu Haapoja
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/habril.html habril]
| Héctor C. Abril B.
| 2007-11-16 17:48:24
|-
| [http://maemo.org/profile/view/habtool.html habtool]
| clive wagenaar
| 2007-11-16 17:47:25
|-
| [http://maemo.org/profile/view/hackjackal.html hackjackal]
| Jack Swindell
| 2007-11-15 07:56:06
|-
| [http://maemo.org/profile/view/hackmeister.html hackmeister]
| Patrick Davila
| 2007-10-22 11:40:33
|-
| [http://maemo.org/profile/view/hadess.html hadess]
| Bastien Nocera
| 2007-05-18 19:11:20
|-
| [http://maemo.org/profile/view/haelios77.html haelios77]
| ryan roque
| 2007-12-11 16:25:06
|-
| [http://maemo.org/profile/view/haenisch.html haenisch]
| marcos haenisch
| 2008-04-12 13:41:08
|-
| [http://maemo.org/profile/view/hafken.html hafken]
| Dave Hafken
| 2007-05-18 19:12:38
|-
| [http://maemo.org/profile/view/hagert.html hagert]
| Mikael Syrjänen
| 2008-03-22 10:31:06
|-
| [http://maemo.org/profile/view/haifen.html haifen]
| Robin Kauffman
| 2007-11-16 17:49:37
|-
| [http://maemo.org/profile/view/hajo.html hajo]
| Peter Schilling
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/hajosch.html hajosch]
| Hans-joachim Schilling
| 2008-01-21 16:33:19
|-
| [http://maemo.org/profile/view/halachky.html halachky]
| Gil Weiner
| 2007-11-15 07:56:10
|-
| [http://maemo.org/profile/view/halchemy.html halchemy]
| Chris Ellison
| 2007-12-11 16:25:26
|-
| [http://maemo.org/profile/view/half.html half]
| Igor Lakihev
| 2007-12-12 05:41:00
|-
| [http://maemo.org/profile/view/hali.html hali]
| hali colandrea
| 2007-11-16 17:46:37
|-
| [http://maemo.org/profile/view/hallax.html hallax]
| Jaakko Hallavo
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/halliwells99.html halliwells99]
| Brian McSweeney
| 2007-05-18 19:12:58
|-
| [http://maemo.org/profile/view/hallski.html hallski]
| Mikael Hallendal
| 2007-10-19 15:40:31
|-
| [http://maemo.org/profile/view/halsf.html halsf]
| Hal Espen
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/hamcam.html hamcam]
| Phil Fraboni
| 2008-02-04 07:31:09
|-
| [http://maemo.org/profile/view/hamishg.html hamishg]
| Hamish Good
| 2008-02-26 13:31:04
|-
| [http://maemo.org/profile/view/hamishmacewan.html hamishmacewan]
| Hamish MacEwan
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/hammcastle.html hammcastle]
| josh hamm
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/hammurapi.html hammurapi]
| Lajos Vetek
| 2007-12-29 00:41:12
|-
| [http://maemo.org/profile/view/hamroun.html hamroun]
| hamroun mourad
| 2008-03-07 11:31:05
|-
| [http://maemo.org/profile/view/han4458.html han4458]
| Henri ARRETO
| 2007-11-16 17:49:24
|-
| [http://maemo.org/profile/view/handa29.html handa29]
| Anthony Hand
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/handful.html handful]
| Marcelo Eduardo
| 2007-05-21 13:43:22
|-
| [http://maemo.org/profile/view/hangslot.html hangslot]
| Mike Edwards
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/hani.html hani]
| Hani Akeila
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/haniball.html haniball]
| hanibal bcheri
| 2007-05-18 19:12:39
|-
| [http://maemo.org/profile/view/hankunshubby.html hankunshubby]
| christian hagerman
| 2008-02-28 00:31:14
|-
| [http://maemo.org/profile/view/hanky.html hanky]
| Hannu Lehtikangas
| 2007-05-18 19:13:44
|-
| [http://maemo.org/profile/view/hanky2.html hanky2]
| Hannu Lehtikangas
| 2007-11-30 10:48:28
|-
| [http://maemo.org/profile/view/hanmik.html hanmik]
| chris poor
| 2007-07-06 21:40:22
|-
| [http://maemo.org/profile/view/hannes180356.html hannes180356]
| Johannes Huber
| 2007-12-26 15:51:49
|-
| [http://maemo.org/profile/view/hanno.html hanno]
| Hanno Zulla
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/hannonlaw.html hannonlaw]
| Kevin Hannon
| 2008-01-17 05:40:58
|-
| [http://maemo.org/profile/view/hannuko.html hannuko]
| Hannu Kotipalo
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/hannupippuri.html hannupippuri]
| Hannu Pippuri
| 2008-02-26 20:31:06
|-
| [http://maemo.org/profile/view/hannuxx.html hannuxx]
| Hannu Heikkinen
| 2008-04-18 05:41:06
|-
| [http://maemo.org/profile/view/hanpiira.html hanpiira]
| Hannele Piirainen
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/hans-castorp.html hans-castorp]
| Robert Cloud
| 2008-05-30 20:41:11
|-
| [http://maemo.org/profile/view/hansc.html hansc]
| hans cuypers
| 2008-03-06 15:31:05
|-
| [http://maemo.org/profile/view/hansm.html hansm]
| Johann Meisl
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/hansoan1.html hansoan1]
| andrew hanson
| 2008-02-13 04:31:03
|-
| [http://maemo.org/profile/view/hantonio.html hantonio]
| cristiano preite
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/hantse.html hantse]
| han tse
| 2007-11-16 17:47:06
|-
| [http://maemo.org/profile/view/hanumi.html hanumi]
| Hannes Huovila
| 2007-12-25 17:42:09
|-
| [http://maemo.org/profile/view/hanz8888.html hanz8888]
| hanz jiang
| 2007-11-16 17:49:19
|-
| [http://maemo.org/profile/view/happygamer2005.html happygamer2005]
| Paul Dunton
| 2008-01-08 14:40:58
|-
| [http://maemo.org/profile/view/happyrat.html happyrat]
| Julie Ratner
| 2007-11-06 02:40:41
|-
| [http://maemo.org/profile/view/harbaum.html harbaum]
| Till Harbaum
| 2007-10-26 08:40:34
|-
| [http://maemo.org/profile/view/harbind.html harbind]
| Tomi Yritys
| 2008-01-14 15:41:35
|-
| [http://maemo.org/profile/view/hardcoder.html hardcoder]
| Fredrik Spånggård
| 2006-12-13 11:10:03
|-
| [http://maemo.org/profile/view/hardeaux.html hardeaux]
| Chris Hartmann
| 2007-12-20 05:41:56
|-
| [http://maemo.org/profile/view/hardevw.html hardevw]
| hardev w
| 2008-03-14 01:31:18
|-
| [http://maemo.org/profile/view/hari908.html hari908]
| Harish Koka
| 2007-10-19 07:40:30
|-
| [http://maemo.org/profile/view/harikrishna.html harikrishna]
| Hari Krishna
| 2008-04-01 07:41:05
|-
| [http://maemo.org/profile/view/harishan.html harishan]
| harishan n800
| 2007-11-16 17:48:33
|-
| [http://maemo.org/profile/view/harjuan.html harjuan]
| Antti Harju
| 2008-01-28 15:41:54
|-
| [http://maemo.org/profile/view/harm919.html harm919]
| Angel Castro
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/harmaa.html harmaa]
| Harri Määttä
| 2007-05-18 19:12:24
|-
| [http://maemo.org/profile/view/haroldfigueroa.html haroldfigueroa]
| harold figueroa
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/haroldjennings.html haroldjennings]
| harold jennings
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/harper42.html harper42]
| John Harper
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/harri.html harri]
| Harri Vattulainen
| 2008-04-16 07:41:20
|-
| [http://maemo.org/profile/view/harris997.html harris997]
| christopher Harris
| 2007-05-18 19:11:16
|-
| [http://maemo.org/profile/view/harrisonpark.html harrisonpark]
| harrison park
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/harry.html harry]
| kate harr
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/harryqu.html harryqu]
| Harry Qu
| 2007-12-12 12:40:50
|-
| [http://maemo.org/profile/view/harshmurumkar.html harshmurumkar]
| Harsh Murumkar
| 2007-11-28 15:43:33
|-
| [http://maemo.org/profile/view/hartti.html hartti]
| Hartti SUomela
| 2008-03-18 06:31:02
|-
| [http://maemo.org/profile/view/hartvig.html hartvig]
| Kåre Hartvig Jensen
| 2007-11-16 17:49:21
|-
| [http://maemo.org/profile/view/hartwell.html hartwell]
| Holly Hartwell
| 2007-12-12 21:41:50
|-
| [http://maemo.org/profile/view/harveyg1.html harveyg1]
| Greg Harvey
| 2008-02-14 12:01:18
|-
| [http://maemo.org/profile/view/harvwallbanger.html harvwallbanger]
| Harv Wall
| 2007-11-15 07:55:44
|-
| [http://maemo.org/profile/view/hashbrow.html hashbrow]
| Gerald Cunningham
| 2007-06-01 00:01:37
|-
| [http://maemo.org/profile/view/hashimoe.html hashimoe]
| Edward Hashimoto
| 2007-07-01 19:40:14
|-
| [http://maemo.org/profile/view/hass0002.html hass0002]
| Sayed Hashimi
| 2007-07-04 03:40:16
|-
| [http://maemo.org/profile/view/hassanusi.html hassanusi]
| naser hassanusi
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/hasselmm.html hasselmm]
| Mathias Hasselmann
| 2007-10-19 06:40:31
|-
| [http://maemo.org/profile/view/hassies1.html hassies1]
| Esa Hassinen
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/hatchpool.html hatchpool]
| Gary Bell
| 2008-04-30 20:41:07
|-
| [http://maemo.org/profile/view/havainto.html havainto]
| Jari Havanto
| 2007-10-19 18:40:35
|-
| [http://maemo.org/profile/view/hawk.html hawk]
| Pavel Chistyakov
| 2007-06-19 08:40:17
|-
| [http://maemo.org/profile/view/hawk8242.html hawk8242]
| Yutong Cho
| 2007-11-16 17:48:10
|-
| [http://maemo.org/profile/view/hawkgirl.html hawkgirl]
| t collins
| 2008-02-14 12:01:19
|-
| [http://maemo.org/profile/view/hawkinsyao.html hawkinsyao]
| Hawkins Yao
| 2007-06-19 07:10:36
|-
| [http://maemo.org/profile/view/hawks.html hawks]
| Charles Hawkins
| 2008-05-04 13:41:09
|-
| [http://maemo.org/profile/view/haztile.html haztile]
| sergey len
| 2008-01-14 21:41:13
|-
| [http://maemo.org/profile/view/hbpham.html hbpham]
| hbp ham
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/hcel.html hcel]
| Lech Deregowski
| 2008-01-11 21:41:09
|-
| [http://maemo.org/profile/view/hch.html hch]
| LAURIANO THIBAULT
| 2007-10-23 00:40:32
|-
| [http://maemo.org/profile/view/hczim.html hczim]
| Heike C. Zimmerer
| 2007-10-19 13:40:34
|-
| [http://maemo.org/profile/view/hdao.html hdao]
| hung dao
| 2007-06-19 07:10:08
|-
| [http://maemo.org/profile/view/hdrider98.html hdrider98]
| Dave Olsen
| 2007-08-30 22:40:23
|-
| [http://maemo.org/profile/view/healingsites.html healingsites]
| Leonard Holmes
| 2007-11-16 17:49:28
|-
| [http://maemo.org/profile/view/heathric.html heathric]
| h r
| 2007-11-16 17:47:35
|-
| [http://maemo.org/profile/view/heavyrail.html heavyrail]
| Heavy Rail
| 2008-01-31 09:30:59
|-
| [http://maemo.org/profile/view/heavyrain.html heavyrain]
| Ty Hoffman
| 2006-12-13 11:30:15
|-
| [http://maemo.org/profile/view/heavyt.html heavyt]
| tony nion
| 2007-05-18 19:11:55
|-
| [http://maemo.org/profile/view/hebbalag.html hebbalag]
| Suresh Hebbalagere
| 2007-10-18 17:40:31
|-
| [http://maemo.org/profile/view/hebco.html hebco]
| Tony Lopez
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/hebert.html hebert]
| Hebert Duarte
| 2008-02-25 21:30:58
|-
| [http://maemo.org/profile/view/hebrews.html hebrews]
| romer zurita
| 2008-01-19 08:30:59
|-
| [http://maemo.org/profile/view/hebrywong.html hebrywong]
| Henry Wong
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/hechizero.html hechizero]
| Jesus Torres
| 2008-02-27 22:31:06
|-
| [http://maemo.org/profile/view/hecktor.html hecktor]
| babuciba babucibaeee
| 2007-05-10 12:00:19
|-
| [http://maemo.org/profile/view/hecsnokia.html hecsnokia]
| Hector Ramirez
| 2008-01-24 18:42:15
|-
| [http://maemo.org/profile/view/hedlasse.html hedlasse]
| Lars Hedman
| 2007-10-29 14:40:35
|-
| [http://maemo.org/profile/view/heerojyuy.html heerojyuy]
| Matthew Stutheit
| 2008-01-05 22:41:01
|-
| [http://maemo.org/profile/view/heertobi.html heertobi]
| Tobias Heer
| 2008-03-29 15:31:06
|-
| [http://maemo.org/profile/view/heikkih.html heikkih]
| Heikki Henriksen
| 2007-10-19 13:40:30
|-
| [http://maemo.org/profile/view/heiko.html heiko]
| Heiko Scherpinski
| 2007-05-18 19:12:35
|-
| [http://maemo.org/profile/view/heitorcarlos.html heitorcarlos]
| Heitor Carlos
| 2008-02-27 17:31:07
|-
| [http://maemo.org/profile/view/helge.html helge]
| helge münnich
| 2008-03-26 17:31:06
|-
| [http://maemo.org/profile/view/helio666.html helio666]
| leon bell
| 2008-01-05 01:41:10
|-
| [http://maemo.org/profile/view/hellamps.html hellamps]
| Alexey Degtiarev
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/hellcomes.html hellcomes]
| Francisco Javier Collado Valle
| 2007-10-19 21:40:32
|-
| [http://maemo.org/profile/view/helliewm.html helliewm]
| helen wilkinson-makey
| 2008-03-09 19:31:01
|-
| [http://maemo.org/profile/view/hellli72.html hellli72]
| Helmut Schmid
| 2007-10-19 15:40:30
|-
| [http://maemo.org/profile/view/hellonick.html hellonick]
| yong zhou
| 2007-11-16 17:49:14
|-
| [http://maemo.org/profile/view/helloworld.html helloworld]
| SwapNeel Dange
| 2007-11-28 15:43:12
|-
| [http://maemo.org/profile/view/hellrell3132.html hellrell3132]
| Sean Reynolds
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/hellwolf.html hellwolf]
| ZC Miao
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/helly.html helly]
| Yu Degui
| 2007-11-16 17:49:02
|-
| [http://maemo.org/profile/view/helmut.html helmut]
| mark townsend
| 2007-11-16 17:49:06
|-
| [http://maemo.org/profile/view/helmuth.html helmuth]
| Helmuth Breitenfellner
| 2007-05-18 19:14:30
|-
| [http://maemo.org/profile/view/helveyj.html helveyj]
| Helvey Johnson
| 2007-07-05 13:40:10
|-
| [http://maemo.org/profile/view/heman.html heman]
| Jimmy Hedman
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/henautio.html henautio]
| Henri Autio
| 2008-01-07 09:40:54
|-
| [http://maemo.org/profile/view/hendryx.html hendryx]
| Matthew Hendrickse
| 2007-05-18 19:13:42
|-
| [http://maemo.org/profile/view/henheng.html henheng]
| Henn Heng
| 2007-11-16 17:49:22
|-
| [http://maemo.org/profile/view/henleino.html henleino]
| Henrik Leinonen
| 2007-06-08 13:37:18
|-
| [http://maemo.org/profile/view/henning.html henning]
| henning sprang
| 2007-06-19 07:10:38
|-
| [http://maemo.org/profile/view/henningspruth.html henningspruth]
| Henning Spruth
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/henpecked.html henpecked]
| harry breucker
| 2007-10-27 20:40:35
|-
| [http://maemo.org/profile/view/henri.html henri]
| henri lelong
| 2007-10-19 05:40:29
|-
| [http://maemo.org/profile/view/henrikmad.html henrikmad]
| Henrik Madsen
| 2008-01-01 20:41:15
|-
| [http://maemo.org/profile/view/henrique.html henrique]
| Henrique Romano
| 2008-01-06 04:40:54
|-
| [http://maemo.org/profile/view/henry.html henry]
| Henry Tang
| 2007-11-16 17:49:46
|-
| [http://maemo.org/profile/view/henryj11k.html henryj11k]
| Henry Juskevicius
| 2007-11-15 07:56:03
|-
| [http://maemo.org/profile/view/hepaajan.html hepaajan]
| Heikki Paajanen
| 2008-04-16 09:41:10
|-
| [http://maemo.org/profile/view/hepnerj.html hepnerj]
| John Hepner
| 2008-04-07 01:41:08
|-
| [http://maemo.org/profile/view/heredavid.html heredavid]
| here david
| 2007-12-11 16:26:11
|-
| [http://maemo.org/profile/view/herent.html herent]
| Jean-Paul Simard
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/heri.html heri]
| heriberto hernandez
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/hero04.html hero04]
| da we
| 2007-07-11 02:40:16
|-
| [http://maemo.org/profile/view/herold.html herold]
| David Herold
| 2007-04-16 12:42:00
|-
| [http://maemo.org/profile/view/herzi.html herzi]
| Sven Herzberg
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/hesa.html hesa]
| Henrik Sandklef
| 2007-11-16 17:49:14
|-
| [http://maemo.org/profile/view/hessam777.html hessam777]
| Hessam Tehrani
| 2008-02-27 01:31:14
|-
| [http://maemo.org/profile/view/heti.html heti]
| Heikki Tiittanen
| 2007-10-19 08:40:30
|-
| [http://maemo.org/profile/view/hetihe.html hetihe]
| Timo Heikkilä
| 2008-04-14 10:41:03
|-
| [http://maemo.org/profile/view/hetku.html hetku]
| petri jarvinen
| 2008-04-05 19:41:05
|-
| [http://maemo.org/profile/view/hevertonsns.html hevertonsns]
| Heverton Stuart
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/heviosso.html heviosso]
| Alexander Shishkin
| 2007-10-20 21:41:17
|-
| [http://maemo.org/profile/view/hewmuent.html hewmuent]
| mayhew cuthbertson
| 2007-05-18 19:11:42
|-
| [http://maemo.org/profile/view/hewyk.html hewyk]
| Henry Wong
| 2007-11-16 17:48:29
|-
| [http://maemo.org/profile/view/hexa.html hexa]
| Antoine Tremblay
| 2007-11-15 07:55:58
|-
| [http://maemo.org/profile/view/hextar.html hextar]
| Hextar Star
| 2007-12-25 18:41:15
|-
| [http://maemo.org/profile/view/heydon.html heydon]
| John Heydon
| 2007-11-16 17:49:55
|-
| [http://maemo.org/profile/view/heyhey84.html heyhey84]
| mark lim
| 2007-11-16 17:47:12
|-
| [http://maemo.org/profile/view/heyheyman.html heyheyman]
| Patrick Kon
| 2007-11-16 17:47:06
|-
| [http://maemo.org/profile/view/heymon.html heymon]
| Randy Chu
| 2007-05-18 19:12:58
|-
| [http://maemo.org/profile/view/heywood.html heywood]
| heywood heywood
| 2008-01-11 11:11:25
|-
| [http://maemo.org/profile/view/heyzeus123.html heyzeus123]
| Michael Yee
| 2008-01-29 18:43:29
|-
| [http://maemo.org/profile/view/hfw01.html hfw01]
| Hal Wilke
| 2008-02-02 20:31:02
|-
| [http://maemo.org/profile/view/hgayosso.html hgayosso]
| Hugo Gayosso
| 2008-01-01 16:40:57
|-
| [http://maemo.org/profile/view/hgoehlma.html hgoehlma]
| Hinrich Göhlmann
| 2007-11-16 17:48:08
|-
| [http://maemo.org/profile/view/hhedberg.html hhedberg]
| Henrik Hedberg
| 2007-07-16 12:40:17
|-
| [http://maemo.org/profile/view/hhhhancock.html hhhhancock]
| l courtnell
| 2007-12-29 01:41:07
|-
| [http://maemo.org/profile/view/hibiscusrn.html hibiscusrn]
| tecataquian troy
| 2008-03-29 12:31:06
|-
| [http://maemo.org/profile/view/hibridmatthias.html hibridmatthias]
| Matthew Borgeson
| 2008-04-21 15:41:14
|-
| [http://maemo.org/profile/view/hicazi45.html hicazi45]
| mesut öz
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/hideo.html hideo]
| Kirill Larin
| 2007-10-22 10:40:34
|-
| [http://maemo.org/profile/view/hiekka.html hiekka]
| Timo Hiekka
| 2007-10-19 14:40:33
|-
| [http://maemo.org/profile/view/hieptranit.html hieptranit]
| Hiep Tran
| 2007-06-22 05:40:07
|-
| [http://maemo.org/profile/view/highchecker.html highchecker]
| hans meier
| 2008-01-22 22:31:29
|-
| [http://maemo.org/profile/view/hihill.html hihill]
| Hill Ha
| 2007-10-22 14:40:33
|-
| [http://maemo.org/profile/view/hijawi.html hijawi]
| Fadi Almasalha
| 2007-10-23 18:40:38
|-
| [http://maemo.org/profile/view/hijomayor.html hijomayor]
| Hijo Mayor
| 2007-12-11 16:26:00
|-
| [http://maemo.org/profile/view/hika1999.html hika1999]
| Mitsuru Sato
| 2008-03-15 06:31:00
|-
| [http://maemo.org/profile/view/hill.html hill]
| Crystal Hill
| 2008-04-15 23:42:11
|-
| [http://maemo.org/profile/view/hillbillyles.html hillbillyles]
| Les Hetiman
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/hillct.html hillct]
| Colin Hill
| 2007-10-16 01:40:30
|-
| [http://maemo.org/profile/view/hilljec.html hilljec]
| Jeff Hill
| 2007-07-02 00:40:20
|-
| [http://maemo.org/profile/view/hilljo.html hilljo]
| jon hill
| 2007-11-16 17:47:44
|-
| [http://maemo.org/profile/view/hillsee.html hillsee]
| steven hills
| 2007-05-18 19:12:25
|-
| [http://maemo.org/profile/view/hilmaringi.html hilmaringi]
| Hilmar Ingi Rúnarsson
| 2007-06-30 14:40:20
|-
| [http://maemo.org/profile/view/hilmer.html hilmer]
| Holger Hilmer
| 2008-02-01 13:31:03
|-
| [http://maemo.org/profile/view/hiltsy.html hiltsy]
| Don Hilts
| 2008-03-21 02:31:08
|-
| [http://maemo.org/profile/view/himadri.html himadri]
| Himadri Jyoti
| 2007-12-24 05:41:13
|-
| [http://maemo.org/profile/view/hind.html hind]
| Eugene Zelinskii
| 2008-01-08 13:41:34
|-
| [http://maemo.org/profile/view/hiphead.html hiphead]
| dan fortier
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/hircus.html hircus]
| Michel Salim
| 2007-10-24 03:40:40
|-
| [http://maemo.org/profile/view/hiro.html hiro]
| Andy Staley
| 2008-03-16 10:31:01
|-
| [http://maemo.org/profile/view/hiromu.html hiromu]
| Hiro Ota
| 2008-02-26 08:30:59
|-
| [http://maemo.org/profile/view/hiryzer.html hiryzer]
| Shawn McLaughlin
| 2008-04-27 03:41:06
|-
| [http://maemo.org/profile/view/hisham.html hisham]
| Hisham Mardam-Bey
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/hiwawa.html hiwawa]
| Henry Zhou
| 2007-11-16 17:49:22
|-
| [http://maemo.org/profile/view/hjansen.html hjansen]
| Helmut Jansen
| 2007-12-14 12:40:51
|-
| [http://maemo.org/profile/view/hjon71.html hjon71]
| Jon Horton
| 2007-05-18 19:13:21
|-
| [http://maemo.org/profile/view/hk91666.html hk91666]
| Franklin Smith
| 2007-11-16 17:49:18
|-
| [http://maemo.org/profile/view/hkfreedom.html hkfreedom]
| Dominie Liang
| 2007-05-31 18:10:48
|-
| [http://maemo.org/profile/view/hkjinlee.html hkjinlee]
| Heonkyu Jin
| 2008-03-09 13:31:02
|-
| [http://maemo.org/profile/view/hlampert.html hlampert]
| Hugh Lampert
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/hman.html hman]
| Harlan Sender
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/hme001.html hme001]
| hans meiser
| 2007-05-18 19:12:14
|-
| [http://maemo.org/profile/view/hmikko.html hmikko]
| Mikko Honkala
| 2007-07-10 13:40:18
|-
| [http://maemo.org/profile/view/hnbrown.html hnbrown]
| Harold Brown
| 2007-12-21 17:41:35
|-
| [http://maemo.org/profile/view/hnicholas.html hnicholas]
| Henry Nicholas
| 2007-12-11 16:25:02
|-
| [http://maemo.org/profile/view/hnozaki.html hnozaki]
| Hajime Nozaki
| 2008-01-04 10:40:52
|-
| [http://maemo.org/profile/view/hns.html hns]
| Hannes Wallnoefer
| 2007-10-18 13:40:07
|-
| [http://maemo.org/profile/view/hobbes.html hobbes]
| H Obbes
| 2007-10-18 18:40:30
|-
| [http://maemo.org/profile/view/hodags.html hodags]
| Austin Ritchie
| 2007-05-18 19:11:48
|-
| [http://maemo.org/profile/view/hodas.html hodas]
| Josh Hodas
| 2007-10-20 08:40:32
|-
| [http://maemo.org/profile/view/hofjoe68.html hofjoe68]
| Joerg Hofmann
| 2007-10-19 17:40:19
|-
| [http://maemo.org/profile/view/hogli.html hogli]
| Holger Kuhn
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/hoho.html hoho]
| Holger Honig
| 2007-06-08 13:37:19
|-
| [http://maemo.org/profile/view/hoko11.html hoko11]
| Chi O
| 2007-06-11 19:02:07
|-
| [http://maemo.org/profile/view/holahola.html holahola]
| HOLA HOLA
| 2007-07-10 07:40:09
|-
| [http://maemo.org/profile/view/holger.html holger]
| Holger Heimsch
| 2007-12-11 16:26:06
|-
| [http://maemo.org/profile/view/holger_hugo.html holger_hugo]
| Holger Slongo
| 2007-11-01 02:40:38
|-
| [http://maemo.org/profile/view/holla2040.html holla2040]
| Craig Hollabaugh
| 2008-02-03 07:32:08
|-
| [http://maemo.org/profile/view/hollabakk03.html hollabakk03]
| otis vinston
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/hollow.html hollow]
| Alessandro Lazzarini
| 2008-01-25 16:43:07
|-
| [http://maemo.org/profile/view/hollowa.html hollowa]
| Adrian Holloway
| 2007-12-14 11:40:52
|-
| [http://maemo.org/profile/view/hollph.html hollph]
| Willem Klein Bleumink
| 2007-12-26 12:41:11
|-
| [http://maemo.org/profile/view/hollstro.html hollstro]
| Markku Hollström
| 2007-05-18 19:11:07
|-
| [http://maemo.org/profile/view/hollywoods805.html hollywoods805]
| Holly Sanders
| 2007-11-16 17:47:47
|-
| [http://maemo.org/profile/view/holm.html holm]
| Holm Sarfert
| 2007-12-11 16:26:26
|-
| [http://maemo.org/profile/view/holonoro.html holonoro]
| noro holo
| 2007-10-16 10:40:26
|-
| [http://maemo.org/profile/view/holsson.html holsson]
| Hans Olsson
| 2008-02-12 20:31:06
|-
| [http://maemo.org/profile/view/holtmann.html holtmann]
| Marcel Holtmann
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/holyjunkz.html holyjunkz]
| Chee En Lim
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/homac.html homac]
| Holger Macht
| 2007-05-18 19:11:19
|-
| [http://maemo.org/profile/view/homeclown007.html homeclown007]
| michael kloepfer
| 2008-01-30 03:31:15
|-
| [http://maemo.org/profile/view/hongwei.html hongwei]
| Hongwei Zhou
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/hoodrock.html hoodrock]
| stephen higgins
| 2007-10-25 23:40:33
|-
| [http://maemo.org/profile/view/hookoo.html hookoo]
| Harri Kaasalainen
| 2007-11-15 07:55:09
|-
| [http://maemo.org/profile/view/hoosfoos.html hoosfoos]
| David Zosel
| 2007-10-20 02:40:31
|-
| [http://maemo.org/profile/view/hopearcher.html hopearcher]
| Jacqueline Archer
| 2008-02-15 00:30:57
|-
| [http://maemo.org/profile/view/hopeless_case.html hopeless_case]
| Christopher Marshall
| 2007-07-11 03:40:17
|-
| [http://maemo.org/profile/view/hopemini.html hopemini]
| Sungmin Choi
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/hopgun.html hopgun]
| Nordine SAIM
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/hopkinsj.html hopkinsj]
| jack hopkins
| 2007-12-28 23:41:24
|-
| [http://maemo.org/profile/view/horemans.html horemans]
| j h
| 2007-12-30 01:41:29
|-
| [http://maemo.org/profile/view/horneds.html horneds]
| Klenov Kirill
| 2007-05-29 09:30:42
|-
| [http://maemo.org/profile/view/hortari.html hortari]
| Vicky Enalen
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/hostman.html hostman]
| Robert Vogt
| 2007-12-11 16:26:10
|-
| [http://maemo.org/profile/view/hotbutteredsoul.html hotbutteredsoul]
| marko rissanen
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/hothead.html hothead]
| Ivaylo Rashev
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/hotrod.html hotrod]
| Rodney Bunting
| 2007-12-11 16:25:11
|-
| [http://maemo.org/profile/view/hotrodbondsman.html hotrodbondsman]
| Buster Collins
| 2007-09-10 17:40:29
|-
| [http://maemo.org/profile/view/hotwax.html hotwax]
| Pontus Walck
| 2007-12-27 02:41:40
|-
| [http://maemo.org/profile/view/housemartin.html housemartin]
| Nicholas Martin
| 2007-11-16 17:46:34
|-
| [http://maemo.org/profile/view/houston42.html houston42]
| Grant Houston
| 2007-06-25 18:40:16
|-
| [http://maemo.org/profile/view/houtek.html houtek]
| Houston Allen
| 2007-05-18 19:13:38
|-
| [http://maemo.org/profile/view/howieb2001.html howieb2001]
| Howard Baker
| 2007-11-16 17:49:24
|-
| [http://maemo.org/profile/view/hozano.html hozano]
| Mário Hozano Souza
| 2007-05-18 19:12:47
|-
| [http://maemo.org/profile/view/hozzybear023.html hozzybear023]
| holly morton
| 2007-12-26 11:41:16
|-
| [http://maemo.org/profile/view/hp4d.html hp4d]
| howard-philip ford
| 2008-03-19 12:31:00
|-
| [http://maemo.org/profile/view/hpatel120.html hpatel120]
| hiren patel
| 2008-04-08 03:41:05
|-
| [http://maemo.org/profile/view/hpchan.html hpchan]
| HP CHAN
| 2008-03-04 16:31:12
|-
| [http://maemo.org/profile/view/hpgoldstein.html hpgoldstein]
| Herschel Goldstein
| 2008-01-07 18:40:59
|-
| [http://maemo.org/profile/view/hphamnj.html hphamnj]
| Hung Pham
| 2007-09-10 12:40:23
|-
| [http://maemo.org/profile/view/hpknith.html hpknith]
| Sorin Cazacu
| 2007-11-15 07:55:55
|-
| [http://maemo.org/profile/view/hrd3ms.html hrd3ms]
| REMI BRAGEU
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/hrt.html hrt]
| Hugh Taylor
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/hrw.html hrw]
| Marcin Juszkiewicz
| 2008-01-31 14:34:15
|-
| [http://maemo.org/profile/view/hschwar.html hschwar]
| Henry Schwar
| 2007-12-25 12:41:05
|-
| [http://maemo.org/profile/view/hsherril.html hsherril]
| harold sherrill
| 2007-06-13 04:41:15
|-
| [http://maemo.org/profile/view/hsjung.html hsjung]
| hyunseok jung
| 2008-03-27 15:31:09
|-
| [http://maemo.org/profile/view/hsojeel.html hsojeel]
| josh lee
| 2007-11-16 17:48:24
|-
| [http://maemo.org/profile/view/hstair.html hstair]
| Henry (Pete) Stair
| 2008-01-12 22:41:13
|-
| [http://maemo.org/profile/view/hstraub.html hstraub]
| Herbert Straub
| 2007-12-12 13:40:50
|-
| [http://maemo.org/profile/view/hsusi.html hsusi]
| Heikki Susi
| 2008-04-04 11:41:10
|-
| [http://maemo.org/profile/view/httmfd.html httmfd]
| H DM
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/http.html http]
| Thierry MEURGUES
| 2007-07-08 09:40:09
|-
| [http://maemo.org/profile/view/huaming.html huaming]
| huaming wang
| 2007-05-18 19:12:05
|-
| [http://maemo.org/profile/view/huanggao.html huanggao]
| Gao HUANG
| 2007-11-28 17:21:36
|-
| [http://maemo.org/profile/view/huangshan.html huangshan]
| Christian Zipfel
| 2007-06-08 21:00:44
|-
| [http://maemo.org/profile/view/huang_gao.html huang_gao]
| Gao HUANG
| 2007-11-30 10:49:05
|-
| [http://maemo.org/profile/view/huawei.html huawei]
| Wei Hua
| 2007-07-03 03:40:09
|-
| [http://maemo.org/profile/view/huayang.html huayang]
| hua yang
| 2008-06-02 02:41:25
|-
| [http://maemo.org/profile/view/hub.html hub]
| Hubert Figuiere
| 2007-10-18 13:40:30
|-
| [http://maemo.org/profile/view/hubert.html hubert]
| hubert pinglin
| 2007-11-28 15:43:34
|-
| [http://maemo.org/profile/view/hubertly.html hubertly]
| Hubert Lawyone
| 2008-03-30 13:31:07
|-
| [http://maemo.org/profile/view/hublais.html hublais]
| Hubert Blais
| 2007-11-16 17:47:59
|-
| [http://maemo.org/profile/view/huckda.html huckda]
| david huckaby
| 2007-05-24 08:40:45
|-
| [http://maemo.org/profile/view/hudd333.html hudd333]
| jIM hUDDLESTON
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/huddy526.html huddy526]
| hudson williams
| 2008-01-31 20:31:08
|-
| [http://maemo.org/profile/view/huffman.html huffman]
| Eugene Letenkov
| 2008-03-30 17:31:07
|-
| [http://maemo.org/profile/view/hugh.html hugh]
| Hugh Redelmeier
| 2007-08-04 05:40:15
|-
| [http://maemo.org/profile/view/hughnano.html hughnano]
| Hugh Nano
| 2008-01-29 10:31:11
|-
| [http://maemo.org/profile/view/hughsie.html hughsie]
| Richard Hughes
| 2006-12-13 11:10:03
|-
| [http://maemo.org/profile/view/hugo.html hugo]
| Hugo Tavares Reis
| 2008-01-06 13:41:05
|-
| [http://maemo.org/profile/view/hugolp.html hugolp]
| Hugo Baldasano
| 2007-12-13 19:41:55
|-
| [http://maemo.org/profile/view/hugoq01.html hugoq01]
| hugo quinonez
| 2008-03-05 18:31:13
|-
| [http://maemo.org/profile/view/huguesno.html huguesno]
| Hugues Nodet
| 2007-10-20 14:40:33
|-
| [http://maemo.org/profile/view/hula.html hula]
| Mikael Kullberg
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/hulalulu.html hulalulu]
| Hung Trinh
| 2007-05-18 19:10:40
|-
| [http://maemo.org/profile/view/hullfandan.html hullfandan]
| Dan Black
| 2007-11-28 15:43:18
|-
| [http://maemo.org/profile/view/hulsh.html hulsh]
| Nenad Veselinov
| 2008-05-25 16:41:12
|-
| [http://maemo.org/profile/view/humbert.html humbert]
| Ludger Humbert
| 2007-05-18 19:12:53
|-
| [http://maemo.org/profile/view/humberto.html humberto]
| Humberto Ortiz Zuazaga
| 2008-03-26 02:32:54
|-
| [http://maemo.org/profile/view/humblegeek.html humblegeek]
| Phil DeBoest
| 2007-08-30 22:40:23
|-
| [http://maemo.org/profile/view/humphreyh.html humphreyh]
| Humphrey Hutchinson
| 2007-11-16 17:48:27
|-
| [http://maemo.org/profile/view/hungsiu.html hungsiu]
| Resfa Liu
| 2007-11-15 07:56:21
|-
| [http://maemo.org/profile/view/huotsu.html huotsu]
| Antti Huotarinen
| 2007-11-28 17:21:16
|-
| [http://maemo.org/profile/view/hurri.html hurri]
| Andrey Khurri
| 2007-10-19 07:40:31
|-
| [http://maemo.org/profile/view/hurtado.html hurtado]
| Sergio Hurtado
| 2008-05-12 01:41:07
|-
| [http://maemo.org/profile/view/husky.html husky]
| andrew bushuev
| 2008-01-22 20:32:19
|-
| [http://maemo.org/profile/view/hustzxq524.html hustzxq524]
| Frank Zheng
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/huzheng.html huzheng]
| Hu Zheng
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/hvacengi.html hvacengi]
| Brad White
| 2008-06-03 16:41:16
|-
| [http://maemo.org/profile/view/hvc.html hvc]
| Heitor Vital
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/hvthang.html hvthang]
| hoang thang
| 2008-03-26 11:31:01
|-
| [http://maemo.org/profile/view/hwbnmr.html hwbnmr]
| Christian Ludwig
| 2007-12-11 16:25:57
|-
| [http://maemo.org/profile/view/hxarian.html hxarian]
| Philip Naylor
| 2008-03-22 10:31:05
|-
| [http://maemo.org/profile/view/hxgee.html hxgee]
| HX Gee
| 2008-01-25 13:31:39
|-
| [http://maemo.org/profile/view/hyartep.html hyartep]
| hyar tep
| 2007-12-28 20:41:32
|-
| [http://maemo.org/profile/view/hyggo.html hyggo]
| Hyggo Almeida
| 2007-05-18 19:10:39
|-
| [http://maemo.org/profile/view/hygl1234.html hygl1234]
| tony gonzales
| 2007-11-15 07:55:47
|-
| [http://maemo.org/profile/view/hyogen.html hyogen]
| Justin Lee
| 2007-11-28 15:43:15
|-
| [http://maemo.org/profile/view/hyperion2010.html hyperion2010]
| Tom Gillespie
| 2007-06-08 13:37:15
|-
| [http://maemo.org/profile/view/hyun7575.html hyun7575]
| Jung Lepen
| 2008-05-08 09:41:09
|-
| [http://maemo.org/profile/view/hzakarni.html hzakarni]
| hussam zakarni
| 2007-11-16 17:46:39
|-
| [http://maemo.org/profile/view/hze.html hze]
| Holger Zeinert
| 2007-11-30 10:49:36
|-
| [http://maemo.org/profile/view/hzman.html hzman]
| Hermanni Hänninen
| 2008-04-08 19:41:12
|-
| [http://maemo.org/profile/view/hzyangfan.html hzyangfan]
| yang fan
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/i-chick.html i-chick]
| william chick
| 2008-03-12 20:31:29
|-
| [http://maemo.org/profile/view/i122luvu.html i122luvu]
| eugene tang
| 2008-02-25 21:30:59
|-
| [http://maemo.org/profile/view/i1328.html i1328]
| mike gee
| 2007-07-06 18:40:10
|-
| [http://maemo.org/profile/view/iadrich.html iadrich]
| Adrián Macías
| 2007-11-28 15:43:37
|-
| [http://maemo.org/profile/view/iain.html iain]
| iain holmes
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/iamsav.html iamsav]
| Alexander Soloviev
| 2008-01-22 14:32:01
|-
| [http://maemo.org/profile/view/iamu.html iamu]
| kevin donnalley
| 2007-11-16 17:46:56
|-
| [http://maemo.org/profile/view/iamyan.html iamyan]
| Ian Reeves
| 2008-03-09 22:31:06
|-
| [http://maemo.org/profile/view/ianbak.html ianbak]
| Ian Baker
| 2008-02-21 11:30:58
|-
| [http://maemo.org/profile/view/ianburrell.html ianburrell]
| Ian Burrell
| 2008-01-09 20:41:30
|-
| [http://maemo.org/profile/view/iancumihai.html iancumihai]
| mihai iancu
| 2007-05-18 19:12:25
|-
| [http://maemo.org/profile/view/iangduncan.html iangduncan]
| Ian Duncan
| 2008-02-04 20:41:19
|-
| [http://maemo.org/profile/view/ianloic.html ianloic]
| Ian McKellar
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/ianncc.html ianncc]
| ian charnock
| 2007-11-28 17:50:18
|-
| [http://maemo.org/profile/view/ians.html ians]
| ian stephen
| 2008-04-04 22:41:52
|-
| [http://maemo.org/profile/view/ianslack.html ianslack]
| ian slack
| 2008-04-30 14:41:05
|-
| [http://maemo.org/profile/view/ian_r.html ian_r]
| Ian Ryge
| 2007-05-18 19:12:38
|-
| [http://maemo.org/profile/view/ibane.html ibane]
| Juan Martin
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/ibangugroov.html ibangugroov]
| Robert Roath
| 2008-04-23 15:41:08
|-
| [http://maemo.org/profile/view/ibexcentral.html ibexcentral]
| ert ert
| 2007-11-16 17:48:03
|-
| [http://maemo.org/profile/view/ibico.html ibico]
| Joohn Doe
| 2008-03-21 09:31:02
|-
| [http://maemo.org/profile/view/ibouazizi.html ibouazizi]
| Imed Bouazizi
| 2007-06-08 13:37:18
|-
| [http://maemo.org/profile/view/ibuntonjr.html ibuntonjr]
| Irving Bunton, Jr
| 2008-03-14 07:31:35
|-
| [http://maemo.org/profile/view/icaicm.html icaicm]
| akhtar umarji
| 2007-10-18 22:40:28
|-
| [http://maemo.org/profile/view/icantremember.html icantremember]
| mike p
| 2007-05-18 19:11:08
|-
| [http://maemo.org/profile/view/icarius.html icarius]
| Ica Rius
| 2007-05-29 09:30:43
|-
| [http://maemo.org/profile/view/icarius75.html icarius75]
| Mehdi Bedadi
| 2007-10-19 19:40:33
|-
| [http://maemo.org/profile/view/icarus4ever.html icarus4ever]
| Thomas Strecker
| 2007-10-19 16:40:32
|-
| [http://maemo.org/profile/view/icarusjj.html icarusjj]
| john johnson
| 2008-03-09 23:31:07
|-
| [http://maemo.org/profile/view/icct.html icct]
| Yuri Pimenov
| 2007-10-19 04:40:30
|-
| [http://maemo.org/profile/view/ice.html ice]
| eric fernandez
| 2007-11-28 17:40:49
|-
| [http://maemo.org/profile/view/icebattle.html icebattle]
| Wayne Izatt
| 2007-12-27 04:41:15
|-
| [http://maemo.org/profile/view/icebox.html icebox]
| ice box
| 2008-03-09 16:31:04
|-
| [http://maemo.org/profile/view/icebug.html icebug]
| Clinton Block
| 2007-07-09 18:40:17
|-
| [http://maemo.org/profile/view/icefreez.html icefreez]
| David B
| 2007-08-26 03:40:21
|-
| [http://maemo.org/profile/view/iceman.html iceman]
| eric fernandez
| 2007-11-30 10:49:30
|-
| [http://maemo.org/profile/view/icemanrobo.html icemanrobo]
| Victor Guerrido
| 2006-10-30 17:22:10
|-
| [http://maemo.org/profile/view/icenlove28.html icenlove28]
| ericson fernandez
| 2008-01-01 14:41:11
|-
| [http://maemo.org/profile/view/icer.html icer]
| Ville Mällinen
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/icerabbit.html icerabbit]
| frank d
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/icewood.html icewood]
| Riku Pelander
| 2007-02-07 02:33:44
|-
| [http://maemo.org/profile/view/icfacilities.html icfacilities]
| Jay Valerio
| 2007-12-15 21:41:15
|-
| [http://maemo.org/profile/view/ichbin.html ichbin]
| Norman Steinbach
| 2007-12-24 02:41:21
|-
| [http://maemo.org/profile/view/ichmoimeyo.html ichmoimeyo]
| ich moimeyo
| 2007-05-18 19:11:24
|-
| [http://maemo.org/profile/view/ichrisart.html ichrisart]
| Christopher Artry
| 2007-12-19 20:42:06
|-
| [http://maemo.org/profile/view/ickle.html ickle]
| Chris Wilson
| 2007-05-18 19:10:30
|-
| [http://maemo.org/profile/view/iconoclast.html iconoclast]
| michael turner
| 2007-05-18 19:12:08
|-
| [http://maemo.org/profile/view/iconolith.html iconolith]
| Christen Bouffard
| 2008-04-08 23:41:09
|-
| [http://maemo.org/profile/view/icontrans.html icontrans]
| aleksandr vopilov
| 2008-01-22 03:31:19
|-
| [http://maemo.org/profile/view/ictc930.html ictc930]
| tom chin
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/idron.html idron]
| Андрей Иванов
| 2008-04-24 18:41:06
|-
| [http://maemo.org/profile/view/idumeka.html idumeka]
| dan mosugu
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/id_kishore.html id_kishore]
| krishna kishore
| 2008-04-03 13:41:07
|-
| [http://maemo.org/profile/view/iegubkin.html iegubkin]
| Ivan Gubkin
| 2007-12-14 14:41:04
|-
| [http://maemo.org/profile/view/iesu350z.html iesu350z]
| johnny chen
| 2008-03-11 06:31:05
|-
| [http://maemo.org/profile/view/ietv.html ietv]
| S Williamson
| 2007-07-06 19:40:16
|-
| [http://maemo.org/profile/view/if42.html if42]
| Ian Fogg
| 2008-01-11 13:40:59
|-
| [http://maemo.org/profile/view/ifallacy.html ifallacy]
| Jeffrey Lin
| 2007-07-08 21:40:11
|-
| [http://maemo.org/profile/view/iflyfree.html iflyfree]
| ed zawacki
| 2008-05-02 16:41:14
|-
| [http://maemo.org/profile/view/ifrade.html ifrade]
| Ivan Frade
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/ifrank.html ifrank]
| Frank Persian
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/ig0r.html ig0r]
| Igor Tarasov
| 2008-03-27 16:31:07
|-
| [http://maemo.org/profile/view/igabrovec.html igabrovec]
| Ivana Gabrovec
| 2007-10-18 20:40:33
|-
| [http://maemo.org/profile/view/iggy.html iggy]
| Michael Spaulding
| 2008-05-02 02:41:18
|-
| [http://maemo.org/profile/view/igiboy.html igiboy]
| Janos Ignacz
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/ignat1.html ignat1]
| ignat1 ignat1
| 2008-05-30 23:41:09
|-
| [http://maemo.org/profile/view/ignat111.html ignat111]
| ignat1 ignat1
| 2008-05-27 11:41:19
|-
| [http://maemo.org/profile/view/ignets.html ignets]
| Ignets Mouz
| 2007-10-20 12:40:34
|-
| [http://maemo.org/profile/view/igoetrich.html igoetrich]
| Edgar Kogler
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/igor.html igor]
| Igor Goryachev
| 2006-10-30 17:22:10
|-
| [http://maemo.org/profile/view/igreek.html igreek]
| slaw luk
| 2008-02-27 17:31:07
|-
| [http://maemo.org/profile/view/igriks.html igriks]
| Igors Ustinovs
| 2008-01-06 07:41:14
|-
| [http://maemo.org/profile/view/ih8gates.html ih8gates]
| Scott Reston
| 2007-05-18 19:10:28
|-
| [http://maemo.org/profile/view/ihadiyanto.html ihadiyanto]
| Irwan hadiyanto
| 2007-11-02 16:40:36
|-
| [http://maemo.org/profile/view/iharo.html iharo]
| Harold Chow
| 2007-12-25 17:42:09
|-
| [http://maemo.org/profile/view/ihminen.html ihminen]
| Andreas Brodt
| 2007-05-18 19:11:09
|-
| [http://maemo.org/profile/view/iiiluisiii.html iiiluisiii]
| renie collazo
| 2008-04-12 03:41:09
|-
| [http://maemo.org/profile/view/iilunga.html iilunga]
| Luiz Freitas
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/iitee.html iitee]
| Ilkka Tengvall
| 2007-02-20 01:40:56
|-
| [http://maemo.org/profile/view/ijon.html ijon]
| Ivan Chelyubeev
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/ikbahrian.html ikbahrian]
| ikram ashraf
| 2007-05-18 19:11:32
|-
| [http://maemo.org/profile/view/iktus.html iktus]
| Cosimo Galasso
| 2007-10-22 12:40:34
|-
| [http://maemo.org/profile/view/ikun.html ikun]
| Ikun Tob
| 2007-12-15 09:40:50
|-
| [http://maemo.org/profile/view/ilabadie.html ilabadie]
| jo buck
| 2008-01-13 02:40:55
|-
| [http://maemo.org/profile/view/ilabstudios.html ilabstudios]
| Adam Haider
| 2007-05-18 19:12:20
|-
| [http://maemo.org/profile/view/ildido.html ildido]
| Paolo Didonè
| 2007-10-21 23:40:34
|-
| [http://maemo.org/profile/view/ileutenegger.html ileutenegger]
| Ives Leutenegger
| 2007-05-18 19:12:58
|-
| [http://maemo.org/profile/view/ilhankilic.html ilhankilic]
| ilhan kilic
| 2007-07-18 21:40:25
|-
| [http://maemo.org/profile/view/ilia.html ilia]
| Ilia Lobsanov
| 2006-11-14 12:50:02
|-
| [http://maemo.org/profile/view/iliaden.html iliaden]
| ilia ddenotkine
| 2008-01-26 23:31:17
|-
| [http://maemo.org/profile/view/illaziale.html illaziale]
| luglio mario
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/illium.html illium]
| William Hill
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/illogict.html illogict]
| Chidambar Zinnoury
| 2007-10-18 15:40:22
|-
| [http://maemo.org/profile/view/ilou.html ilou]
| philippe hayer
| 2007-05-18 19:10:57
|-
| [http://maemo.org/profile/view/ilovenicotine.html ilovenicotine]
| Joel Mellon
| 2007-07-04 02:40:22
|-
| [http://maemo.org/profile/view/iltasu.html iltasu]
| Gabriele Tassoni
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/ilu.html ilu]
| Ilkka Haapavirta
| 2007-11-06 14:02:07
|-
| [http://maemo.org/profile/view/iluetkeb.html iluetkeb]
| Ingo Lütkebohle
| 2007-10-19 13:40:33
|-
| [http://maemo.org/profile/view/ilya.html ilya]
| Ilya Dogolazky
| 2007-11-16 17:50:00
|-
| [http://maemo.org/profile/view/ilya_dan.html ilya_dan]
| Ilya Danilov
| 2008-03-19 06:30:59
|-
| [http://maemo.org/profile/view/il_bale.html il_bale]
| Francesco Balestrieri
| 2008-05-18 10:41:06
|-
| [http://maemo.org/profile/view/imabored.html imabored]
| yep yep
| 2008-01-24 04:32:27
|-
| [http://maemo.org/profile/view/imagenuitybot.html imagenuitybot]
| celtic nubian
| 2007-11-16 17:49:06
|-
| [http://maemo.org/profile/view/imagin8or.html imagin8or]
| Phil Howard
| 2007-11-16 17:48:40
|-
| [http://maemo.org/profile/view/iman.html iman]
| Evgen Smolei
| 2007-11-15 07:56:06
|-
| [http://maemo.org/profile/view/imarkdd.html imarkdd]
| Mark Deadmond
| 2007-12-19 17:41:24
|-
| [http://maemo.org/profile/view/imasudonim.html imasudonim]
| ima Sudonim
| 2007-11-16 17:48:08
|-
| [http://maemo.org/profile/view/imbasavaraj.html imbasavaraj]
| Basavaraj im
| 2008-02-12 07:31:14
|-
| [http://maemo.org/profile/view/imcoey.html imcoey]
| jason coey
| 2008-02-06 07:32:25
|-
| [http://maemo.org/profile/view/imedina.html imedina]
| Iñigo Medina García
| 2007-05-18 19:11:33
|-
| [http://maemo.org/profile/view/imhyo.html imhyo]
| Hyo Jun Im
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/immelody.html immelody]
| Melody Latimer
| 2008-05-05 20:41:07
|-
| [http://maemo.org/profile/view/imotoyuh.html imotoyuh]
| Yuhji Imoto
| 2007-06-08 13:37:21
|-
| [http://maemo.org/profile/view/imrahil.html imrahil]
| Jarek Szczepanski
| 2007-05-18 19:12:15
|-
| [http://maemo.org/profile/view/imsinji.html imsinji]
| changhwan choi
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/imtheface.html imtheface]
| Andy Apdhani
| 2007-10-18 12:40:28
|-
| [http://maemo.org/profile/view/imulic.html imulic]
| Irfan Mulic
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/im_chandave.html im_chandave]
| Davy Chan
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/inari.html inari]
| Inari Frank
| 2007-11-16 17:49:37
|-
| [http://maemo.org/profile/view/inasmuch.html inasmuch]
| Adam Brauch
| 2007-04-05 15:25:39
|-
| [http://maemo.org/profile/view/inbox_23.html inbox_23]
| Vivek Tyagi
| 2007-06-25 10:40:06
|-
| [http://maemo.org/profile/view/ince50.html ince50]
| cemil yorgun
| 2007-05-18 19:12:51
|-
| [http://maemo.org/profile/view/incognito.html incognito]
| Ted Van Boort
| 2007-12-11 16:24:59
|-
| [http://maemo.org/profile/view/indiacharlie.html indiacharlie]
| Ian Cockburn
| 2007-10-18 17:40:30
|-
| [http://maemo.org/profile/view/indianbear.html indianbear]
| Franklin Beard
| 2007-05-18 19:12:35
|-
| [http://maemo.org/profile/view/indianer.html indianer]
| Juergen Link
| 2007-10-28 17:40:36
|-
| [http://maemo.org/profile/view/indira2604.html indira2604]
| Indira Swetha
| 2008-02-21 05:30:56
|-
| [http://maemo.org/profile/view/indo888.html indo888]
| Paul The
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/ineedspeed.html ineedspeed]
| Agustin Lopez
| 2007-07-09 02:40:15
|-
| [http://maemo.org/profile/view/inetcom.html inetcom]
| Eduardo Martinho
| 2008-02-17 14:31:02
|-
| [http://maemo.org/profile/view/inf.html inf]
| inf inf
| 2008-02-11 00:32:25
|-
| [http://maemo.org/profile/view/infamousbrad.html infamousbrad]
| Brad Hicks
| 2007-07-09 21:40:16
|-
| [http://maemo.org/profile/view/infinityxi.html infinityxi]
| Steven Day
| 2008-03-18 20:31:06
|-
| [http://maemo.org/profile/view/infinity_roy.html infinity_roy]
| frederic montes
| 2007-12-24 12:41:00
|-
| [http://maemo.org/profile/view/infoeco.html infoeco]
| Zack Denfeld
| 2008-05-15 02:41:10
|-
| [http://maemo.org/profile/view/infonomada.html infonomada]
| Pablo Angeletti
| 2007-10-19 10:40:24
|-
| [http://maemo.org/profile/view/ingalsuo.html ingalsuo]
| Seppo Ingalsuo
| 2007-12-28 08:41:12
|-
| [http://maemo.org/profile/view/iniestra.html iniestra]
| alonso iniestra
| 2007-06-22 18:40:10
|-
| [http://maemo.org/profile/view/inkbot.html inkbot]
| jason brown
| 2007-11-16 17:47:49
|-
| [http://maemo.org/profile/view/inky.html inky]
| Ian Key
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/inluxication.html inluxication]
| Greg Wolf
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/inniyah.html inniyah]
| Miriam Ruiz
| 2007-11-15 07:55:18
|-
| [http://maemo.org/profile/view/inok11.html inok11]
| Inok Song
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/inquisitor.html inquisitor]
| Norbert Wächter
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/insanecripple.html insanecripple]
| jeff windish
| 2008-04-11 03:41:04
|-
| [http://maemo.org/profile/view/insert_nick.html insert_nick]
| Antonio Orlando
| 2007-05-18 19:11:34
|-
| [http://maemo.org/profile/view/insinoori.html insinoori]
| Jone Tone
| 2008-02-13 10:31:03
|-
| [http://maemo.org/profile/view/instalkino.html instalkino]
| Yra Yrian
| 2007-12-12 08:40:52
|-
| [http://maemo.org/profile/view/intangible.html intangible]
| James Cole
| 2007-10-18 18:40:30
|-
| [http://maemo.org/profile/view/interfasys.html interfasys]
| O P
| 2007-12-21 11:41:12
|-
| [http://maemo.org/profile/view/interp01.html interp01]
| David Kramer
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/intersys.html intersys]
| Steve Soskin
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/interupto.html interupto]
| evan savage
| 2008-01-31 04:31:07
|-
| [http://maemo.org/profile/view/intprop.html intprop]
| Steven Hoffberg
| 2007-10-24 20:40:35
|-
| [http://maemo.org/profile/view/invernizzi.html invernizzi]
| Fabrizio Invernizzi
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/inyafo.html inyafo]
| Yavor Yanakiev
| 2008-02-03 18:41:36
|-
| [http://maemo.org/profile/view/inz.html inz]
| Santtu Lakkala
| 2007-05-18 19:10:44
|-
| [http://maemo.org/profile/view/ioan.html ioan]
| e1 ioan
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/iokamoto.html iokamoto]
| Itsuo Okamoto
| 2007-10-18 19:40:41
|-
| [http://maemo.org/profile/view/ioliver.html ioliver]
| Ian Oliver
| 2007-11-28 16:50:38
|-
| [http://maemo.org/profile/view/ioliver2.html ioliver2]
| Ian Oliver
| 2007-11-30 10:49:09
|-
| [http://maemo.org/profile/view/ionakka.html ionakka]
| Kuisma Salonen
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/iooi.html iooi]
| Rob Papasi
| 2007-06-25 06:40:08
|-
| [http://maemo.org/profile/view/ipae.html ipae]
| Ismael Torres Dominguez
| 2007-10-28 13:16:46
|-
| [http://maemo.org/profile/view/iphostway.html iphostway]
| craig cavallaro
| 2007-11-15 07:56:05
|-
| [http://maemo.org/profile/view/ipo.html ipo]
| Ilkka Poutanen
| 2007-05-18 19:11:31
|-
| [http://maemo.org/profile/view/ipse.html ipse]
| Ipse Tase
| 2007-10-28 20:40:35
|-
| [http://maemo.org/profile/view/ip_alma_pi.html ip_alma_pi]
| i p
| 2007-10-24 12:40:37
|-
| [http://maemo.org/profile/view/iqbaltabrez.html iqbaltabrez]
| Tabrez Iqbal
| 2007-11-28 17:21:47
|-
| [http://maemo.org/profile/view/iraklius.html iraklius]
| Irakli Saparidze
| 2007-05-18 19:13:20
|-
| [http://maemo.org/profile/view/irb.html irb]
| George Hayduke
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/irbiker.html irbiker]
| jason sanchez
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/irdast.html irdast]
| Nemo Nautilus
| 2007-12-19 23:41:22
|-
| [http://maemo.org/profile/view/ireland2roam.html ireland2roam]
| John Ireland
| 2008-02-18 06:30:58
|-
| [http://maemo.org/profile/view/irenigma.html irenigma]
| Christina Nguyen
| 2008-01-19 17:31:13
|-
| [http://maemo.org/profile/view/irina.html irina]
| irina ivanova
| 2007-10-19 20:40:08
|-
| [http://maemo.org/profile/view/iriumbcn.html iriumbcn]
| iriumbcn irium
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/irko.html irko]
| Irko Aario
| 2007-05-18 19:12:44
|-
| [http://maemo.org/profile/view/irongeek.html irongeek]
| Adrian Crenshaw
| 2007-11-16 17:47:32
|-
| [http://maemo.org/profile/view/ironworm.html ironworm]
| Kay Lay
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/isaacws.html isaacws]
| Isaac Schlittenhart
| 2007-12-11 16:24:59
|-
| [http://maemo.org/profile/view/isaaktnt.html isaaktnt]
| Isaak Tanook
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/isacw.html isacw]
| Isac Wilhelms
| 2008-02-03 12:31:07
|-
| [http://maemo.org/profile/view/isak.html isak]
| Isaac Herskowich
| 2008-03-24 01:31:15
|-
| [http://maemo.org/profile/view/isaksson.html isaksson]
| Johan Isaksson
| 2007-05-18 19:12:18
|-
| [http://maemo.org/profile/view/ishigawa.html ishigawa]
| B T
| 2008-03-16 15:31:05
|-
| [http://maemo.org/profile/view/ishmeister.html ishmeister]
| alan ishler
| 2008-02-12 12:31:15
|-
| [http://maemo.org/profile/view/iskarion.html iskarion]
| Markus Göbel
| 2008-02-09 17:41:01
|-
| [http://maemo.org/profile/view/islaitin.html islaitin]
| Ismo Laitinen
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/islandsvinur.html islandsvinur]
| Christian Luijten
| 2007-11-01 18:40:37
|-
| [http://maemo.org/profile/view/ismael.html ismael]
| Gennaro Del Campo
| 2007-10-22 09:40:34
|-
| [http://maemo.org/profile/view/isoalted.html isoalted]
| Sivasubramanian Muthusamy
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/isodee.html isodee]
| Dan Lumenko
| 2007-10-19 09:40:33
|-
| [http://maemo.org/profile/view/isofttech.html isofttech]
| isofttech isofttech
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/isoschiz.html isoschiz]
| Martin Morrison
| 2007-11-16 17:47:43
|-
| [http://maemo.org/profile/view/isrich.html isrich]
| Isra Srichompoo
| 2007-11-19 09:01:23
|-
| [http://maemo.org/profile/view/istanbul.html istanbul]
| mit navn
| 2007-11-16 17:49:24
|-
| [http://maemo.org/profile/view/isthar.html isthar]
| Lasse Nylander
| 2008-01-26 09:31:12
|-
| [http://maemo.org/profile/view/istvan.html istvan]
| Istvan Hodos
| 2007-05-18 19:10:24
|-
| [http://maemo.org/profile/view/isummala.html isummala]
| Ilja Summala
| 2008-01-02 16:41:07
|-
| [http://maemo.org/profile/view/italianzero.html italianzero]
| nick fortino
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/italo.html italo]
| sam darabi
| 2007-11-28 17:50:45
|-
| [http://maemo.org/profile/view/italodance.html italodance]
| sam darabi
| 2007-05-18 19:12:23
|-
| [http://maemo.org/profile/view/italodancemp3.html italodancemp3]
| sam darabi
| 2008-03-14 10:31:08
|-
| [http://maemo.org/profile/view/italosouto.html italosouto]
| Italo Souto de Figueiredo
| 2008-02-14 23:31:02
|-
| [http://maemo.org/profile/view/itcave.html itcave]
| Jared Boorky
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/itco00.html itco00]
| itamar cohen-ogen
| 2007-05-29 09:30:40
|-
| [http://maemo.org/profile/view/ithelog.html ithelog]
| Jarmo Ahosola
| 2007-05-18 19:11:11
|-
| [http://maemo.org/profile/view/ither.html ither]
| Ither Seed
| 2007-11-16 17:49:22
|-
| [http://maemo.org/profile/view/itil_prince.html itil_prince]
| Tom Williams
| 2008-01-05 00:40:56
|-
| [http://maemo.org/profile/view/itkach.html itkach]
| Igor Tkach
| 2007-05-18 19:10:51
|-
| [http://maemo.org/profile/view/itlogberry.html itlogberry]
| martin paulo malodrigo
| 2007-12-15 21:41:16
|-
| [http://maemo.org/profile/view/itoledo.html itoledo]
| Ivan Toledo Ivanovic
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/itscroot.html itscroot]
| Richard Murphy
| 2007-11-01 20:40:37
|-
| [http://maemo.org/profile/view/itzfun.html itzfun]
| Sunil Kumar
| 2007-10-18 19:40:42
|-
| [http://maemo.org/profile/view/itzopicha.html itzopicha]
| Itzo Picha
| 2007-10-23 19:40:37
|-
| [http://maemo.org/profile/view/iukpun.html iukpun]
| Sergey Shutov
| 2008-05-20 20:41:14
|-
| [http://maemo.org/profile/view/ivan.html ivan]
| Ivan Ivanov
| 2008-02-12 14:33:16
|-
| [http://maemo.org/profile/view/ivan1208.html ivan1208]
| Ivan Huylebroeck
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/ivanharda.html ivanharda]
| ivan milanov
| 2007-04-05 15:25:39
|-
| [http://maemo.org/profile/view/ivanigod.html ivanigod]
| ivan de luca
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/ivanovp.html ivanovp]
| Peter Ivanov
| 2007-10-19 16:40:34
|-
| [http://maemo.org/profile/view/ivanwilson.html ivanwilson]
| Ivan Wilson
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/ivan_pe.html ivan_pe]
| Ivan Miguel
| 2008-03-23 07:31:02
|-
| [http://maemo.org/profile/view/ivictor.html ivictor]
| Victor Arroyo
| 2007-05-18 19:12:43
|-
| [http://maemo.org/profile/view/ivpram.html ivpram]
| Ivan Pramatarov
| 2007-11-19 09:01:22
|-
| [http://maemo.org/profile/view/ivyboob.html ivyboob]
| Jm J
| 2007-05-18 19:11:06
|-
| [http://maemo.org/profile/view/iw3hug.html iw3hug]
| M. D.
| 2008-03-23 11:31:02
|-
| [http://maemo.org/profile/view/iwi.html iwi]
| Marcin Iwinski
| 2008-01-07 02:40:57
|-
| [http://maemo.org/profile/view/iwkse.html iwkse]
| Salvatore De Paolis
| 2008-02-05 22:32:42
|-
| [http://maemo.org/profile/view/izan.html izan]
| eric enrique raudales san martin
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/izelaya.html izelaya]
| Iván Zelaya
| 2007-11-16 17:46:47
|-
| [http://maemo.org/profile/view/izhereal375.html izhereal375]
| Izreal Boss
| 2007-07-04 09:40:15
|-
| [http://maemo.org/profile/view/izupan.html izupan]
| Ivan Zupan
| 2007-10-31 21:40:36
|-
| [http://maemo.org/profile/view/j00nas2.html j00nas2]
| Joonas Pelkonen
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/j195.html j195]
| John Karpilovsky
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/j1mrooney.html j1mrooney]
| jim rooney
| 2007-05-18 19:14:02
|-
| [http://maemo.org/profile/view/j1o1h1n.html j1o1h1n]
| john lehmann
| 2007-06-19 07:10:38
|-
| [http://maemo.org/profile/view/j2918370.html j2918370]
| Tom Holland
| 2007-10-24 01:40:39
|-
| [http://maemo.org/profile/view/j2red.html j2red]
| jared moreno
| 2007-11-16 17:49:09
|-
| [http://maemo.org/profile/view/j2u.html j2u]
| James Wilhelm
| 2007-05-18 19:12:00
|-
| [http://maemo.org/profile/view/j5ive504.html j5ive504]
| Jon Harrison
| 2008-03-01 19:31:00
|-
| [http://maemo.org/profile/view/j770.html j770]
| Jake Jupiter
| 2008-01-29 23:31:17
|-
| [http://maemo.org/profile/view/jaaksi.html jaaksi]
| Ari Jaaksi
| 2007-05-23 09:40:49
|-
| [http://maemo.org/profile/view/jaasho1.html jaasho1]
| dahir barre
| 2007-12-18 15:41:14
|-
| [http://maemo.org/profile/view/jaaura.html jaaura]
| Jarkko Aura
| 2007-12-18 08:50:57
|-
| [http://maemo.org/profile/view/jabastien.html jabastien]
| Jacques Bastien
| 2007-11-04 22:40:46
|-
| [http://maemo.org/profile/view/jabba.html jabba]
| Neil Parry
| 2008-02-07 08:31:31
|-
| [http://maemo.org/profile/view/jabberwock84.html jabberwock84]
| jonathan milford
| 2008-04-25 22:41:11
|-
| [http://maemo.org/profile/view/jabbott.html jabbott]
| Joe Abbott
| 2007-12-25 15:41:14
|-
| [http://maemo.org/profile/view/jabbotts.html jabbotts]
| Joe Abbotts
| 2008-01-29 23:31:22
|-
| [http://maemo.org/profile/view/jabko13.html jabko13]
| JOHN BENNETT
| 2007-12-11 16:26:26
|-
| [http://maemo.org/profile/view/jabla.html jabla]
| Janne Jaula
| 2007-11-15 07:56:01
|-
| [http://maemo.org/profile/view/jabra.html jabra]
| Gabriel Zaccak
| 2007-12-21 02:41:01
|-
| [http://maemo.org/profile/view/jacadym.html jacadym]
| Jacek Smyda
| 2007-10-19 09:40:33
|-
| [http://maemo.org/profile/view/jacekr.html jacekr]
| Jacek Reddig
| 2007-12-30 17:41:15
|-
| [http://maemo.org/profile/view/jachu.html jachu]
| Przemysław Janaszek
| 2007-11-16 17:49:43
|-
| [http://maemo.org/profile/view/jacirez.html jacirez]
| John Doe
| 2007-11-16 17:48:57
|-
| [http://maemo.org/profile/view/jack101.html jack101]
| Jack Liang
| 2007-05-18 19:12:13
|-
| [http://maemo.org/profile/view/jack9900.html jack9900]
| claud rasberry
| 2008-03-27 17:31:10
|-
| [http://maemo.org/profile/view/jackalfan.html jackalfan]
| Jackal Fan
| 2008-03-29 18:31:07
|-
| [http://maemo.org/profile/view/jackjansen.html jackjansen]
| Jack Jansen
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/jackl.html jackl]
| jack lail
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/jackyyuen.html jackyyuen]
| Jacky Yuen
| 2008-01-26 21:32:11
|-
| [http://maemo.org/profile/view/jack_frost_esq.html jack_frost_esq]
| Jack Frost
| 2008-01-01 16:40:57
|-
| [http://maemo.org/profile/view/jacobh.html jacobh]
| Jacob Head
| 2007-10-27 11:40:34
|-
| [http://maemo.org/profile/view/jacobhanks.html jacobhanks]
| jacob hanks
| 2007-10-19 03:40:35
|-
| [http://maemo.org/profile/view/jacobmp92.html jacobmp92]
| Jacob Peddicord
| 2007-12-11 16:26:27
|-
| [http://maemo.org/profile/view/jacquesvr.html jacquesvr]
| jac van rhijn
| 2008-04-26 20:41:07
|-
| [http://maemo.org/profile/view/jad.html jad]
| Jad madi
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/jadjay.html jadjay]
| jerome avond
| 2008-03-06 14:31:25
|-
| [http://maemo.org/profile/view/jadusty.html jadusty]
| Ja Dusty
| 2007-11-16 17:49:21
|-
| [http://maemo.org/profile/view/jaebird.html jaebird]
| Jae Stutzman
| 2007-05-18 19:10:46
|-
| [http://maemo.org/profile/view/jaffa.html jaffa]
| Andrew Flegg
| 2007-05-18 19:11:00
|-
| [http://maemo.org/profile/view/jagmig.html jagmig]
| Jaquel Miqueno
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/jaguar.html jaguar]
| Sergei Moiseichyk
| 2008-06-05 11:41:13
|-
| [http://maemo.org/profile/view/jah3800.html jah3800]
| john harris
| 2008-01-19 23:41:08
|-
| [http://maemo.org/profile/view/jaick.html jaick]
| Schorsch Cheffe
| 2007-11-05 20:21:26
|-
| [http://maemo.org/profile/view/jaime.html jaime]
| Jaime Ruiz Frontera
| 2007-05-18 19:11:30
|-
| [http://maemo.org/profile/view/jairus.html jairus]
| jairus adams
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/jaistandard.html jaistandard]
| Kosuke Nakayama
| 2007-10-18 17:40:31
|-
| [http://maemo.org/profile/view/jait.html jait]
| Jari Tenhunen
| 2006-12-13 11:10:03
|-
| [http://maemo.org/profile/view/jake.html jake]
| jake lowss
| 2008-02-18 07:31:00
|-
| [http://maemo.org/profile/view/jake104.html jake104]
| Jacob McKay
| 2007-05-18 19:12:39
|-
| [http://maemo.org/profile/view/jakeapher.html jakeapher]
| Jake Kenneally
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/jakebw.html jakebw]
| Jacob Wartenberg
| 2007-07-06 02:40:13
|-
| [http://maemo.org/profile/view/jakelj.html jakelj]
| Tomaz Jakelj
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/jakemaheu.html jakemaheu]
| Jake Maheu
| 2008-05-24 01:41:28
|-
| [http://maemo.org/profile/view/jaken.html jaken]
| alberto finardi
| 2007-12-11 16:25:52
|-
| [http://maemo.org/profile/view/jakewendt.html jakewendt]
| Jake Wendt
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/jako.html jako]
| Dennis Day
| 2007-12-30 07:41:04
|-
| [http://maemo.org/profile/view/jakunnar.html jakunnar]
| Jake Kunnari
| 2007-05-18 19:12:53
|-
| [http://maemo.org/profile/view/jalanara.html jalanara]
| Jussi Alanara
| 2007-11-30 10:49:37
|-
| [http://maemo.org/profile/view/jalava.html jalava]
| Jalmari Raippalinna
| 2007-10-19 11:40:31
|-
| [http://maemo.org/profile/view/jalbrizio.html jalbrizio]
| Jeremi Albrizio
| 2008-03-04 20:31:16
|-
| [http://maemo.org/profile/view/jalen_woo.html jalen_woo]
| Haoling Wu
| 2007-12-11 16:24:01
|-
| [http://maemo.org/profile/view/jaltman.html jaltman]
| Jeffrey Altman
| 2007-11-15 07:56:14
|-
| [http://maemo.org/profile/view/jalvarez.html jalvarez]
| Juan Miguel Alvarez Tosco
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/jamart3d.html jamart3d]
| jeff martin
| 2008-04-11 18:41:06
|-
| [http://maemo.org/profile/view/jamblor.html jamblor]
| Victor Toth
| 2008-05-04 21:41:06
|-
| [http://maemo.org/profile/view/jambo46.html jambo46]
| Jim Paddock
| 2008-01-17 21:51:14
|-
| [http://maemo.org/profile/view/jamesbody.html jamesbody]
| James Body
| 2008-01-31 14:34:15
|-
| [http://maemo.org/profile/view/jamesc760.html jamesc760]
| James Cho
| 2008-03-01 18:31:01
|-
| [http://maemo.org/profile/view/jamesface.html jamesface]
| James Face
| 2008-01-16 17:41:16
|-
| [http://maemo.org/profile/view/jamesgsb.html jamesgsb]
| Geoff James
| 2007-05-23 05:29:35
|-
| [http://maemo.org/profile/view/jamesjackjohn.html jamesjackjohn]
| James Perry
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/jamesmanios.html jamesmanios]
| James Manios
| 2007-11-16 17:47:06
|-
| [http://maemo.org/profile/view/jamesowong.html jamesowong]
| james wong
| 2008-05-18 02:41:08
|-
| [http://maemo.org/profile/view/jamey.html jamey]
| Jamey Hicks
| 2007-05-18 19:13:49
|-
| [http://maemo.org/profile/view/jamez01.html jamez01]
| James Paterni
| 2007-10-20 09:40:31
|-
| [http://maemo.org/profile/view/jamgolf.html jamgolf]
| jawad malik
| 2007-05-18 19:14:36
|-
| [http://maemo.org/profile/view/jamie.html jamie]
| james smith
| 2008-02-07 00:31:06
|-
| [http://maemo.org/profile/view/jamieb01.html jamieb01]
| jamie elmer
| 2008-05-16 23:41:10
|-
| [http://maemo.org/profile/view/jamikkon.html jamikkon]
| Jarno Mikkonen
| 2007-10-17 12:40:29
|-
| [http://maemo.org/profile/view/jammula.html jammula]
| naveen jammula
| 2007-11-28 17:21:49
|-
| [http://maemo.org/profile/view/jamorin.html jamorin]
| Jim Amorin
| 2007-05-18 19:12:32
|-
| [http://maemo.org/profile/view/jampekka.html jampekka]
| Jami Pekkanen
| 2007-06-08 13:37:20
|-
| [http://maemo.org/profile/view/jamshed_ctg.html jamshed_ctg]
| Md. Jamshed Haider Siddiqi
| 2008-04-03 16:41:06
|-
| [http://maemo.org/profile/view/jamt9000.html jamt9000]
| James Thewlis
| 2007-10-18 20:40:33
|-
| [http://maemo.org/profile/view/jan.html jan]
| Jan Behrmann
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/janboe.html janboe]
| Janboe Ye
| 2008-03-12 18:31:07
|-
| [http://maemo.org/profile/view/jandmdickerson.html jandmdickerson]
| John Dickerson
| 2007-05-18 19:12:54
|-
| [http://maemo.org/profile/view/jandrewt82.html jandrewt82]
| jacob taunton
| 2007-10-17 18:40:29
|-
| [http://maemo.org/profile/view/jane.html jane]
| Janetta Koskela
| 2007-10-24 10:40:34
|-
| [http://maemo.org/profile/view/jang.html jang]
| Jan Glauber
| 2007-10-21 21:40:43
|-
| [http://maemo.org/profile/view/jani24240.html jani24240]
| jani arkiomaa
| 2008-02-05 20:31:45
|-
| [http://maemo.org/profile/view/janilaakso.html janilaakso]
| Jani Laakso
| 2007-10-31 14:40:36
|-
| [http://maemo.org/profile/view/janipp.html janipp]
| Jani Peltotalo
| 2007-05-18 19:11:00
|-
| [http://maemo.org/profile/view/janivakar.html janivakar]
| janardhan redy Vaka
| 2007-10-19 06:40:31
|-
| [http://maemo.org/profile/view/janizz.html janizz]
| jani niemi
| 2007-12-11 16:25:48
|-
| [http://maemo.org/profile/view/janjansenbe.html janjansenbe]
| Jan Jansen
| 2007-05-18 19:11:05
|-
| [http://maemo.org/profile/view/janko.html janko]
| Janusch Koza
| 2008-01-17 23:31:27
|-
| [http://maemo.org/profile/view/jankojuric.html jankojuric]
| Janko Juric
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/jann.html jann]
| Jann Linder
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/janncker.html janncker]
| Janncker wan
| 2007-05-18 19:12:45
|-
| [http://maemo.org/profile/view/janne.html janne]
| Janne Johansson
| 2007-05-18 19:11:00
|-
| [http://maemo.org/profile/view/janos.html janos]
| Janos Pap
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/janpieniadz.html janpieniadz]
| Jan Pieniadz
| 2007-11-16 17:49:10
|-
| [http://maemo.org/profile/view/janpla.html janpla]
| Jan Andersen
| 2007-10-19 09:40:33
|-
| [http://maemo.org/profile/view/jantman.html jantman]
| Jason Antman
| 2007-11-16 17:47:19
|-
| [http://maemo.org/profile/view/jantypas.html jantypas]
| John Antypas
| 2008-02-25 23:30:58
|-
| [http://maemo.org/profile/view/janus.html janus]
| Jan Bertrem
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/jan_riber.html jan_riber]
| Jan Riber Christensen
| 2007-12-11 16:26:10
|-
| [http://maemo.org/profile/view/jappy5.html jappy5]
| Claire Collins
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/jaq.html jaq]
| Jacek Tomkowicz
| 2007-10-14 23:40:28
|-
| [http://maemo.org/profile/view/jarcat38.html jarcat38]
| eric kurt
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/jarent.html jarent]
| Jacek Arent
| 2007-05-29 21:00:56
|-
| [http://maemo.org/profile/view/jari.html jari]
| Jari Sassi
| 2006-10-30 17:22:10
|-
| [http://maemo.org/profile/view/jarikokk.html jarikokk]
| Jari Kokkonen
| 2007-11-16 17:47:45
|-
| [http://maemo.org/profile/view/jarinmono.html jarinmono]
| jari mono
| 2008-01-23 10:31:17
|-
| [http://maemo.org/profile/view/jaroslaw.html jaroslaw]
| Jarosław Sadziński
| 2007-11-16 17:47:02
|-
| [http://maemo.org/profile/view/jartashi.html jartashi]
| Sergey Fo
| 2007-05-23 09:30:49
|-
| [http://maemo.org/profile/view/jartza.html jartza]
| Jari Tulilahti
| 2007-10-16 14:40:26
|-
| [http://maemo.org/profile/view/jary23.html jary23]
| Jarek Kulik
| 2008-02-10 13:31:18
|-
| [http://maemo.org/profile/view/jaslar.html jaslar]
| James LaRue
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/jasmsn.html jasmsn]
| John Smith
| 2008-01-04 15:43:11
|-
| [http://maemo.org/profile/view/jason.html jason]
| Jason Choi
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/jason0x21.html jason0x21]
| Jason Sullivan
| 2008-06-06 16:41:20
|-
| [http://maemo.org/profile/view/jasonchan1111.html jasonchan1111]
| Jason Chan
| 2008-01-11 11:11:24
|-
| [http://maemo.org/profile/view/jasoncharity.html jasoncharity]
| jsson manwaring
| 2007-12-23 00:41:40
|-
| [http://maemo.org/profile/view/jasonchiu.html jasonchiu]
| Jason Chiu
| 2007-06-30 00:40:08
|-
| [http://maemo.org/profile/view/jasonliang919.html jasonliang919]
| jason liang
| 2008-01-28 05:31:08
|-
| [http://maemo.org/profile/view/jasonr.html jasonr]
| Jason Rosenfeld
| 2007-05-18 19:10:48
|-
| [http://maemo.org/profile/view/jasonyankees26.html jasonyankees26]
| Jason Stern
| 2008-02-02 23:33:02
|-
| [http://maemo.org/profile/view/jasowder.html jasowder]
| jason sowder
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/jasper.html jasper]
| Jasper Greve
| 2007-10-30 04:40:37
|-
| [http://maemo.org/profile/view/jaspervenema.html jaspervenema]
| jasper venema
| 2008-01-31 17:32:13
|-
| [http://maemo.org/profile/view/jassinghinc.html jassinghinc]
| jaspreet singh
| 2007-11-28 15:43:21
|-
| [http://maemo.org/profile/view/jastrea.html jastrea]
| Jon Streaty
| 2007-11-16 17:46:45
|-
| [http://maemo.org/profile/view/jatikka.html jatikka]
| Jarmo Tikka
| 2007-05-18 19:10:44
|-
| [http://maemo.org/profile/view/jau.html jau]
| Mateusz F
| 2008-03-22 09:31:05
|-
| [http://maemo.org/profile/view/javanerd.html javanerd]
| Pasi Keränen
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/javashaman.html javashaman]
| christian walker
| 2007-05-31 05:00:39
|-
| [http://maemo.org/profile/view/javiarias.html javiarias]
| Javier Arias
| 2007-06-19 07:10:39
|-
| [http://maemo.org/profile/view/javico.html javico]
| Jose Antonio Vico Palomino
| 2006-12-13 11:10:03
|-
| [http://maemo.org/profile/view/javier09.html javier09]
| javier loureiro
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/javiercitoch.html javiercitoch]
| javier cureño
| 2007-05-18 19:14:35
|-
| [http://maemo.org/profile/view/javierluiso.html javierluiso]
| Javier Luiso
| 2007-11-15 07:55:56
|-
| [http://maemo.org/profile/view/javiermon.html javiermon]
| javier mon
| 2007-05-18 19:11:53
|-
| [http://maemo.org/profile/view/javiero.html javiero]
| Javier Vazquez
| 2007-05-18 19:13:23
|-
| [http://maemo.org/profile/view/jawad.html jawad]
| Jawad Aslam
| 2007-11-28 18:10:30
|-
| [http://maemo.org/profile/view/jawadaslam.html jawadaslam]
| Jawad Aslam
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/jaxmailman.html jaxmailman]
| vince tucker
| 2008-05-02 04:41:04
|-
| [http://maemo.org/profile/view/jaxx.html jaxx]
| Julien Banchet
| 2007-08-21 07:40:22
|-
| [http://maemo.org/profile/view/jayasimha.html jayasimha]
| Jayasimha Rao
| 2007-12-11 16:25:19
|-
| [http://maemo.org/profile/view/jayasurya.html jayasurya]
| jaya surya kumar uppalapati
| 2008-05-15 09:41:12
|-
| [http://maemo.org/profile/view/jaybolter.html jaybolter]
| Jay Bolter
| 2007-06-08 13:37:15
|-
| [http://maemo.org/profile/view/jayholler.html jayholler]
| Jay Holler
| 2007-05-18 19:11:24
|-
| [http://maemo.org/profile/view/jayleardutt.html jayleardutt]
| jie du
| 2007-10-20 21:41:27
|-
| [http://maemo.org/profile/view/jayspry.html jayspry]
| Jay Spry
| 2007-09-25 15:40:26
|-
| [http://maemo.org/profile/view/jayzion.html jayzion]
| jay zion
| 2008-02-08 04:31:03
|-
| [http://maemo.org/profile/view/jazup.html jazup]
| jacob wermann
| 2007-12-22 21:42:17
|-
| [http://maemo.org/profile/view/jazz.html jazz]
| jazz alyxzander
| 2007-11-28 15:43:26
|-
| [http://maemo.org/profile/view/jazz4two.html jazz4two]
| Frank Graves
| 2007-11-28 18:50:50
|-
| [http://maemo.org/profile/view/jazzvm.html jazzvm]
| Jasper van Mechelen
| 2007-12-11 16:25:03
|-
| [http://maemo.org/profile/view/jazzwire.html jazzwire]
| Jason Renouf
| 2008-01-19 13:31:11
|-
| [http://maemo.org/profile/view/jazzymc.html jazzymc]
| Kaloyan Danchev
| 2008-02-01 14:31:18
|-
| [http://maemo.org/profile/view/jbaarash.html jbaarash]
| james barash
| 2007-12-22 21:42:17
|-
| [http://maemo.org/profile/view/jbasbc.html jbasbc]
| Susan Anderson
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/jbb.html jbb]
| josh boroff
| 2008-02-17 01:30:58
|-
| [http://maemo.org/profile/view/jbecerra.html jbecerra]
| jose becerra
| 2008-01-18 22:31:38
|-
| [http://maemo.org/profile/view/jbecknell.html jbecknell]
| John Becknell
| 2007-05-18 19:12:54
|-
| [http://maemo.org/profile/view/jbenc.html jbenc]
| Jiri Benc
| 2007-05-18 19:13:24
|-
| [http://maemo.org/profile/view/jbergius.html jbergius]
| Joonas Bergius
| 2007-05-18 19:12:15
|-
| [http://maemo.org/profile/view/jbishop14.html jbishop14]
| Jason Bishop
| 2007-07-10 19:40:18
|-
| [http://maemo.org/profile/view/jblank.html jblank]
| Jonas Blank
| 2007-10-21 10:40:31
|-
| [http://maemo.org/profile/view/jbo9917.html jbo9917]
| Johannes Böhler
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/jbobyn.html jbobyn]
| John Bobyn
| 2007-05-18 19:13:41
|-
| [http://maemo.org/profile/view/jbodajlo.html jbodajlo]
| James Bodajlo
| 2007-11-16 17:46:38
|-
| [http://maemo.org/profile/view/jbolt.html jbolt]
| James Bolt
| 2007-05-18 19:12:58
|-
| [http://maemo.org/profile/view/jboogie151.html jboogie151]
| James Gomes
| 2008-05-10 19:41:24
|-
| [http://maemo.org/profile/view/jbounce.html jbounce]
| Roman Sharma
| 2008-02-24 06:30:59
|-
| [http://maemo.org/profile/view/jbowes.html jbowes]
| James Bowes
| 2007-10-18 17:40:30
|-
| [http://maemo.org/profile/view/jbray333.html jbray333]
| Jim Bray
| 2008-04-06 03:41:08
|-
| [http://maemo.org/profile/view/jbrocketman.html jbrocketman]
| James Boorn
| 2008-02-09 20:31:42
|-
| [http://maemo.org/profile/view/jbsailjb.html jbsailjb]
| John Blackburn
| 2008-03-20 20:31:05
|-
| [http://maemo.org/profile/view/jbt4u2.html jbt4u2]
| joe thornton
| 2007-11-15 07:55:45
|-
| [http://maemo.org/profile/view/jbtatou.html jbtatou]
| jean-baptiste villard
| 2007-10-22 04:40:32
|-
| [http://maemo.org/profile/view/jbuchanan38.html jbuchanan38]
| Jack Buchanan
| 2007-11-16 17:46:24
|-
| [http://maemo.org/profile/view/jbux.html jbux]
| Joseph La
| 2008-05-30 19:41:11
|-
| [http://maemo.org/profile/view/jc23.html jc23]
| jc ca
| 2008-01-29 19:32:42
|-
| [http://maemo.org/profile/view/jc2k.html jc2k]
| John Carr
| 2007-10-18 19:40:41
|-
| [http://maemo.org/profile/view/jc8541.html jc8541]
| J C
| 2007-06-30 14:40:20
|-
| [http://maemo.org/profile/view/jcamdr.html jcamdr]
| Jean-Christian de Rivaz
| 2007-01-18 13:10:06
|-
| [http://maemo.org/profile/view/jcanter.html jcanter]
| james canter
| 2007-11-28 18:00:35
|-
| [http://maemo.org/profile/view/jcarre.html jcarre]
| john carre
| 2008-02-26 02:31:43
|-
| [http://maemo.org/profile/view/jcasteel.html jcasteel]
| james casteel
| 2007-05-18 19:12:55
|-
| [http://maemo.org/profile/view/jcastelaz.html jcastelaz]
| Jim Castelaz
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/jcb.html jcb]
| Jens Becker
| 2007-05-18 19:11:13
|-
| [http://maemo.org/profile/view/jcdr.html jcdr]
| Jean-Christian de Rivaz
| 2007-12-26 17:41:42
|-
| [http://maemo.org/profile/view/jchalifour.html jchalifour]
| Josh Chalifour
| 2007-10-19 13:40:34
|-
| [http://maemo.org/profile/view/jchalmus.html jchalmus]
| joe spinler
| 2008-05-30 05:41:09
|-
| [http://maemo.org/profile/view/jchapman.html jchapman]
| Justin Chapman
| 2007-05-18 19:13:13
|-
| [http://maemo.org/profile/view/jcharette.html jcharette]
| Jon Charette
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/jcherepy.html jcherepy]
| Bill Cherepy
| 2007-05-18 19:12:29
|-
| [http://maemo.org/profile/view/jcho360.html jcho360]
| juan bolivar
| 2008-04-09 02:41:07
|-
| [http://maemo.org/profile/view/jck995.html jck995]
| John Kaniecki
| 2007-07-09 18:40:17
|-
| [http://maemo.org/profile/view/jcladian.html jcladian]
| john cladianos
| 2007-06-08 13:36:41
|-
| [http://maemo.org/profile/view/jclarkv.html jclarkv]
| Clark Venable
| 2007-05-24 06:20:39
|-
| [http://maemo.org/profile/view/jcline1.html jcline1]
| justin cline
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/jcmarco.html jcmarco]
| Jose Carlos Marco
| 2007-10-18 14:40:14
|-
| [http://maemo.org/profile/view/jcmendocino.html jcmendocino]
| Julio Mendoza
| 2008-05-14 00:41:31
|-
| [http://maemo.org/profile/view/jcords.html jcords]
| jonas cords
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/jcostantino.html jcostantino]
| Jeff Costantino
| 2007-05-18 19:11:25
|-
| [http://maemo.org/profile/view/jcusick.html jcusick]
| John Cusick
| 2008-03-23 00:31:03
|-
| [http://maemo.org/profile/view/jcw.html jcw]
| Jean-Claude Wippler
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/jd-.html jd-]
| J. D.
| 2008-02-22 23:30:59
|-
| [http://maemo.org/profile/view/jdanecki.html jdanecki]
| Jakub Danecki
| 2007-10-18 17:40:29
|-
| [http://maemo.org/profile/view/jdanylko.html jdanylko]
| Jonathan Danylko
| 2007-10-18 12:40:28
|-
| [http://maemo.org/profile/view/jdapena.html jdapena]
| José Dapena Paz
| 2007-05-18 19:10:30
|-
| [http://maemo.org/profile/view/jdbuddy.html jdbuddy]
| John Bockman
| 2008-01-02 14:41:02
|-
| [http://maemo.org/profile/view/jdeakin123.html jdeakin123]
| jeff deakin
| 2007-07-06 16:40:15
|-
| [http://maemo.org/profile/view/jdeaton.html jdeaton]
| James Deaton
| 2007-07-09 05:40:19
|-
| [http://maemo.org/profile/view/jdenman.html jdenman]
| Eddie T
| 2008-05-06 00:41:10
|-
| [http://maemo.org/profile/view/jdeprez.html jdeprez]
| Jerome DEPREZ
| 2007-10-18 19:40:41
|-
| [http://maemo.org/profile/view/jdfsau.html jdfsau]
| john fraser
| 2007-11-16 17:47:47
|-
| [http://maemo.org/profile/view/jdmarch.html jdmarch]
| Jonathan March
| 2008-04-29 13:41:06
|-
| [http://maemo.org/profile/view/jdmr.html jdmr]
| Justine Robertson
| 2007-10-24 04:40:35
|-
| [http://maemo.org/profile/view/jdn.html jdn]
| John Nguyen
| 2008-02-05 03:31:13
|-
| [http://maemo.org/profile/view/jdodziuk.html jdodziuk]
| Jozef Dodziuk
| 2008-02-06 01:51:57
|-
| [http://maemo.org/profile/view/jdub.html jdub]
| Jeff Waugh
| 2007-10-21 09:40:33
|-
| [http://maemo.org/profile/view/jdurany.html jdurany]
| Jaume Durany
| 2008-03-29 18:31:07
|-
| [http://maemo.org/profile/view/jdwroten.html jdwroten]
| Jim Wroten
| 2007-11-16 17:49:01
|-
| [http://maemo.org/profile/view/jealbert.html jealbert]
| Albert Jeanton
| 2008-01-18 15:31:29
|-
| [http://maemo.org/profile/view/jean34.html jean34]
| Jean Bort
| 2007-10-19 13:40:37
|-
| [http://maemo.org/profile/view/jeanecadett.html jeanecadett]
| Jean E Cadett
| 2008-04-14 01:41:09
|-
| [http://maemo.org/profile/view/jeanluc.html jeanluc]
| Jean-Luc Madison
| 2007-11-16 17:47:19
|-
| [http://maemo.org/profile/view/jeanmarc.html jeanmarc]
| Jean-Marc Skopek
| 2008-01-27 18:31:30
|-
| [http://maemo.org/profile/view/jeanmichelbo.html jeanmichelbo]
| jean mcihel bonnet
| 2007-11-16 17:48:57
|-
| [http://maemo.org/profile/view/jeans.html jeans]
| Nick Criscuolo
| 2007-11-15 20:40:46
|-
| [http://maemo.org/profile/view/jebe.html jebe]
| Jesse Peurala
| 2008-03-17 22:31:05
|-
| [http://maemo.org/profile/view/jebr0wn.html jebr0wn]
| Jason Brown
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/jebr0wn9.html jebr0wn9]
| Jason Brown
| 2007-10-26 13:40:34
|-
| [http://maemo.org/profile/view/jebw.html jebw]
| Jeremy Wilkins
| 2008-01-20 23:32:23
|-
| [http://maemo.org/profile/view/jecarey.html jecarey]
| John Carey
| 2007-05-18 19:10:31
|-
| [http://maemo.org/profile/view/jed.html jed]
| Jed Frechette
| 2007-07-05 00:40:15
|-
| [http://maemo.org/profile/view/jed555.html jed555]
| jeff mcnabb
| 2008-05-02 23:41:05
|-
| [http://maemo.org/profile/view/jeepers.html jeepers]
| Kevin Partridge
| 2007-05-18 19:11:18
|-
| [http://maemo.org/profile/view/jeeps.html jeeps]
| John-Paul Anderson
| 2007-11-28 15:43:19
|-
| [http://maemo.org/profile/view/jefdiver.html jefdiver]
| Jeff Lambert
| 2008-01-04 20:41:11
|-
| [http://maemo.org/profile/view/jeff.html jeff]
| Jeff Buchbinder
| 2007-05-18 19:11:09
|-
| [http://maemo.org/profile/view/jeffbond.html jeffbond]
| jeffery bond
| 2008-01-04 02:41:00
|-
| [http://maemo.org/profile/view/jeffc.html jeffc]
| Jeff Cunningham
| 2008-03-17 16:31:03
|-
| [http://maemo.org/profile/view/jeffdameth.html jeffdameth]
| Hannes Janetzek
| 2007-10-29 21:40:35
|-
| [http://maemo.org/profile/view/jeffghs.html jeffghs]
| Jeffrey Greep
| 2008-04-24 02:41:26
|-
| [http://maemo.org/profile/view/jeffgrado.html jeffgrado]
| jeff b
| 2008-02-16 18:31:00
|-
| [http://maemo.org/profile/view/jeffk.html jeffk]
| Jeff Kowalczyk
| 2007-10-20 04:40:33
|-
| [http://maemo.org/profile/view/jeffling.html jeffling]
| jeff lin
| 2007-06-30 16:40:09
|-
| [http://maemo.org/profile/view/jeffmccoy.html jeffmccoy]
| jeffrey mccoy
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/jeffreymarti.html jeffreymarti]
| Jeffrey Marti
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/jeffreytz.html jeffreytz]
| Jeffrey Tschiltsch
| 2007-05-18 19:12:14
|-
| [http://maemo.org/profile/view/jeffx.html jeffx]
| Jeff x
| 2007-11-16 17:49:02
|-
| [http://maemo.org/profile/view/jegb.html jegb]
| Enrique Gallar
| 2008-02-26 17:30:59
|-
| [http://maemo.org/profile/view/jeisch.html jeisch]
| Jonathan Eisch
| 2007-07-06 02:40:14
|-
| [http://maemo.org/profile/view/jejoma.html jejoma]
| John Ray
| 2007-04-05 15:25:39
|-
| [http://maemo.org/profile/view/jeki.html jeki]
| Piter Pupkin
| 2008-03-22 20:31:06
|-
| [http://maemo.org/profile/view/jelijah.html jelijah]
| John Connell
| 2007-07-03 00:40:10
|-
| [http://maemo.org/profile/view/jelloli.html jelloli]
| Jello Li
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/jem555.html jem555]
| Pablo Ferrero
| 2007-05-18 19:14:38
|-
| [http://maemo.org/profile/view/jemaia.html jemaia]
| jamaia aymen
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/jemamena.html jemamena]
| javier ema
| 2007-05-18 19:12:35
|-
| [http://maemo.org/profile/view/jendos.html jendos]
| jenya m
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/jengilomen.html jengilomen]
| jen gilomen
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/jenissimo.html jenissimo]
| Jenya Smirnov
| 2008-02-03 18:41:36
|-
| [http://maemo.org/profile/view/jenkins75.html jenkins75]
| mark jenkins
| 2008-01-13 07:41:01
|-
| [http://maemo.org/profile/view/jensg.html jensg]
| Jens Geiregat
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/jensgk.html jensgk]
| Jens Godsk Katz-Kolberg
| 2007-05-18 19:12:28
|-
| [http://maemo.org/profile/view/jensjens.html jensjens]
| jens jens
| 2007-12-30 12:40:59
|-
| [http://maemo.org/profile/view/jensjk.html jensjk]
| JJ K
| 2007-11-28 15:43:47
|-
| [http://maemo.org/profile/view/jensomat.html jensomat]
| Jens Bücker
| 2007-10-24 20:40:35
|-
| [http://maemo.org/profile/view/jer006.html jer006]
| jeremy gillespie
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/jeremy142e.html jeremy142e]
| jeremy whorton
| 2007-07-08 03:40:15
|-
| [http://maemo.org/profile/view/jeremy32.html jeremy32]
| Jeremy Smathers
| 2007-06-20 20:40:09
|-
| [http://maemo.org/profile/view/jeremybe.html jeremybe]
| jeremy berger
| 2007-11-16 17:49:22
|-
| [http://maemo.org/profile/view/jeremyh.html jeremyh]
| Jeremy Hubbell
| 2007-05-18 19:10:29
|-
| [http://maemo.org/profile/view/jermainlaforce.html jermainlaforce]
| Jermain la Force
| 2007-11-16 17:47:06
|-
| [http://maemo.org/profile/view/jeroddunn.html jeroddunn]
| Jerod Dunn
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/jeroen.html jeroen]
| Jeroen Dekkers
| 2008-04-12 21:41:22
|-
| [http://maemo.org/profile/view/jeroenv.html jeroenv]
| Jeroen Vermeulen
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/jerrel.html jerrel]
| wang jerrel
| 2008-02-15 03:31:01
|-
| [http://maemo.org/profile/view/jerremy09.html jerremy09]
| Jan Vaško
| 2008-02-11 09:30:59
|-
| [http://maemo.org/profile/view/jerriss.html jerriss]
| zoe zhong
| 2007-10-18 15:40:25
|-
| [http://maemo.org/profile/view/jerry.html jerry]
| h. gerald niemira
| 2008-02-17 22:31:00
|-
| [http://maemo.org/profile/view/jerrymannil.html jerrymannil]
| Jerry Mannil
| 2007-06-28 09:40:07
|-
| [http://maemo.org/profile/view/jerryn.html jerryn]
| Jerry Normandin
| 2007-11-16 17:48:03
|-
| [http://maemo.org/profile/view/jerryrt.html jerryrt]
| Jerry Tian
| 2007-11-15 07:55:32
|-
| [http://maemo.org/profile/view/jerseyjoe.html jerseyjoe]
| joe lago
| 2008-02-12 20:31:05
|-
| [http://maemo.org/profile/view/jeskritt.html jeskritt]
| jonathan eskritt
| 2007-10-22 22:40:33
|-
| [http://maemo.org/profile/view/jesseg.html jesseg]
| Jesse G
| 2007-05-18 19:11:36
|-
| [http://maemo.org/profile/view/jesseshangout.html jesseshangout]
| Jesse Shaw
| 2007-05-18 19:12:55
|-
| [http://maemo.org/profile/view/jessio.html jessio]
| jesse lullaby
| 2008-04-27 08:41:07
|-
| [http://maemo.org/profile/view/jessychacha.html jessychacha]
| Jasbir Singh
| 2008-01-29 14:33:26
|-
| [http://maemo.org/profile/view/jess_lyn.html jess_lyn]
| Jesslyn Abdul Salam
| 2007-12-12 10:40:53
|-
| [http://maemo.org/profile/view/jester.html jester]
| Angelo Gaggero
| 2006-10-30 17:22:10
|-
| [http://maemo.org/profile/view/jesus.html jesus]
| Jesus Sanchez-Palencia
| 2008-05-09 12:41:27
|-
| [http://maemo.org/profile/view/jesusalex.html jesusalex]
| alejandro ortiz
| 2008-04-09 00:43:00
|-
| [http://maemo.org/profile/view/jesusisaza.html jesusisaza]
| jesús isaza
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/jethomas.html jethomas]
| Jaime Thomas
| 2007-10-18 21:40:31
|-
| [http://maemo.org/profile/view/jett1.html jett1]
| sss sss
| 2008-01-08 04:41:32
|-
| [http://maemo.org/profile/view/jeyrb.html jeyrb]
| jey burrows
| 2007-05-18 19:13:30
|-
| [http://maemo.org/profile/view/jfactor.html jfactor]
| Jackie Hodge
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/jfarr.html jfarr]
| J Farr
| 2008-04-15 14:41:09
|-
| [http://maemo.org/profile/view/jfayling.html jfayling]
| Jason Fayling
| 2007-10-20 02:40:31
|-
| [http://maemo.org/profile/view/jfcanter.html jfcanter]
| james canter
| 2007-10-18 15:40:35
|-
| [http://maemo.org/profile/view/jfe.html jfe]
| j e
| 2007-07-09 20:40:16
|-
| [http://maemo.org/profile/view/jfegrp.html jfegrp]
| Alan Ford
| 2007-05-29 09:30:38
|-
| [http://maemo.org/profile/view/jfernandez.html jfernandez]
| Javier Fernández García-Boente
| 2007-05-18 19:12:35
|-
| [http://maemo.org/profile/view/jferrando.html jferrando]
| Jordi Ferrando Fabra
| 2007-11-02 09:40:39
|-
| [http://maemo.org/profile/view/jfgill1.html jfgill1]
| Jeffrey Gill
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/jfhanks.html jfhanks]
| jim hanks
| 2007-10-15 00:40:27
|-
| [http://maemo.org/profile/view/jfkrauser.html jfkrauser]
| jack krauser
| 2007-03-19 15:34:18
|-
| [http://maemo.org/profile/view/jflanagan.html jflanagan]
| jon flanagan
| 2007-05-18 19:14:27
|-
| [http://maemo.org/profile/view/jfrazier.html jfrazier]
| Jeff Frazier
| 2008-06-02 22:41:10
|-
| [http://maemo.org/profile/view/jg67.html jg67]
| Jörg Gruß
| 2007-11-15 18:40:48
|-
| [http://maemo.org/profile/view/jgallen23.html jgallen23]
| Greg Allen
| 2008-01-07 05:41:04
|-
| [http://maemo.org/profile/view/jgalocha.html jgalocha]
| jagm galoawa
| 2008-04-18 15:41:07
|-
| [http://maemo.org/profile/view/jgaritams.html jgaritams]
| Jose Pablo garita
| 2007-11-15 07:55:18
|-
| [http://maemo.org/profile/view/jgarzon.html jgarzon]
| Joaquin Garzon
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/jgasperoni.html jgasperoni]
| joseph gasperoni
| 2008-05-16 15:42:25
|-
| [http://maemo.org/profile/view/jgclares.html jgclares]
| Juan Garcia Clares
| 2008-02-17 14:31:00
|-
| [http://maemo.org/profile/view/jgenovese.html jgenovese]
| John Genovese
| 2007-06-30 18:40:10
|-
| [http://maemo.org/profile/view/jgguasch.html jgguasch]
| Jose Guasch
| 2008-04-08 22:41:04
|-
| [http://maemo.org/profile/view/jgibbs56.html jgibbs56]
| Jerry Gibbs
| 2007-11-15 07:55:49
|-
| [http://maemo.org/profile/view/jgkeegan.html jgkeegan]
| james keegan
| 2007-12-26 22:41:25
|-
| [http://maemo.org/profile/view/jglopezl.html jglopezl]
| Gerardo Lopez
| 2007-06-19 07:10:36
|-
| [http://maemo.org/profile/view/jgoswick.html jgoswick]
| John Goswick
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/jgraham.html jgraham]
| Jim graham
| 2007-11-02 19:40:38
|-
| [http://maemo.org/profile/view/jgrant.html jgrant]
| Jason Grant
| 2007-05-18 19:12:20
|-
| [http://maemo.org/profile/view/jgriswol.html jgriswol]
| jerry griswold
| 2007-05-18 19:12:26
|-
| [http://maemo.org/profile/view/jgsanchez.html jgsanchez]
| Juan Sanchez Fernandez
| 2008-05-27 22:41:15
|-
| [http://maemo.org/profile/view/jh13.html jh13]
| Julian Hong
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/jhaitsma.html jhaitsma]
| Jaap Haitsma
| 2007-10-21 12:40:32
|-
| [http://maemo.org/profile/view/jhamms.html jhamms]
| joe hammonds
| 2007-05-18 19:12:13
|-
| [http://maemo.org/profile/view/jhedberg.html jhedberg]
| Johan Hedberg
| 2007-02-02 09:40:10
|-
| [http://maemo.org/profile/view/jhewarren.html jhewarren]
| John W
| 2008-01-28 23:31:07
|-
| [http://maemo.org/profile/view/jhill7777.html jhill7777]
| Jeff Hill
| 2007-07-09 21:40:15
|-
| [http://maemo.org/profile/view/jhjoyce.html jhjoyce]
| john joyce
| 2007-11-16 17:47:30
|-
| [http://maemo.org/profile/view/jhl.html jhl]
| james larmouth
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/jhlynch.html jhlynch]
| john lynch
| 2008-03-22 23:31:03
|-
| [http://maemo.org/profile/view/jhm_mke.html jhm_mke]
| JH M
| 2008-02-12 22:41:15
|-
| [http://maemo.org/profile/view/jhoff80.html jhoff80]
| Joe Hoffman
| 2007-10-20 14:40:33
|-
| [http://maemo.org/profile/view/jhohertz.html jhohertz]
| Joe Hohertz
| 2007-10-22 14:40:18
|-
| [http://maemo.org/profile/view/jholmblad.html jholmblad]
| John Holmblad
| 2007-05-18 19:12:03
|-
| [http://maemo.org/profile/view/jhonytl.html jhonytl]
| Jhony Tello L
| 2008-06-06 06:41:11
|-
| [http://maemo.org/profile/view/jhp3x1.html jhp3x1]
| hunter phillips
| 2008-01-04 06:40:55
|-
| [http://maemo.org/profile/view/jhs_s.html jhs_s]
| Johannes Schmid
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/jhurleston.html jhurleston]
| John Hurleston
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/jiajo.html jiajo]
| Premjith S
| 2007-04-05 15:25:39
|-
| [http://maemo.org/profile/view/jiez.html jiez]
| Jie Zhang
| 2008-06-06 00:41:34
|-
| [http://maemo.org/profile/view/jiggy.html jiggy]
| Wayne Breau
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/jiivonen.html jiivonen]
| Jukka-Pekka Iivonen
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/jiji.html jiji]
| Kosuke Nakayama
| 2007-11-30 10:48:26
|-
| [http://maemo.org/profile/view/jijonty.html jijonty]
| Jivko Dutsov
| 2007-12-17 13:40:50
|-
| [http://maemo.org/profile/view/jikkme.html jikkme]
| Paul Weeks
| 2007-07-07 12:40:17
|-
| [http://maemo.org/profile/view/jim909.html jim909]
| Jim Mullhaupt
| 2008-04-17 15:41:06
|-
| [http://maemo.org/profile/view/jimb.html jimb]
| James Brinkhoff
| 2007-12-18 05:40:57
|-
| [http://maemo.org/profile/view/jimb3sixty.html jimb3sixty]
| jim bratager
| 2007-11-16 17:47:04
|-
| [http://maemo.org/profile/view/jimbobjoe.html jimbobjoe]
| jon hall
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/jimbochou.html jimbochou]
| Jimmy Wan
| 2008-01-10 09:41:01
|-
| [http://maemo.org/profile/view/jimbodude21.html jimbodude21]
| J Cialdea
| 2008-05-22 20:41:28
|-
| [http://maemo.org/profile/view/jimboee.html jimboee]
| jim kocol
| 2007-11-16 17:49:22
|-
| [http://maemo.org/profile/view/jimbroadhurst.html jimbroadhurst]
| Jim Broadhurst
| 2007-12-11 16:26:21
|-
| [http://maemo.org/profile/view/jimbrown.html jimbrown]
| Jim Brown
| 2008-03-10 13:31:03
|-
| [http://maemo.org/profile/view/jimc_uclamath.html jimc_uclamath]
| James Carter
| 2007-04-16 12:41:53
|-
| [http://maemo.org/profile/view/jimmead.html jimmead]
| James Mead
| 2007-11-16 17:46:57
|-
| [http://maemo.org/profile/view/jimmydean22.html jimmydean22]
| jimmy dean
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/jimmyjimmy.html jimmyjimmy]
| Jim Houghton
| 2007-11-30 10:49:35
|-
| [http://maemo.org/profile/view/jimmywill.html jimmywill]
| jimmy williams
| 2007-11-28 15:43:47
|-
| [http://maemo.org/profile/view/jimmyyao.html jimmyyao]
| Yi Yao
| 2007-11-15 07:55:56
|-
| [http://maemo.org/profile/view/jimouf.html jimouf]
| Lionel DEBIEVE
| 2007-07-04 15:40:10
|-
| [http://maemo.org/profile/view/jimrooney.html jimrooney]
| Jim Rooney
| 2007-11-30 10:48:29
|-
| [http://maemo.org/profile/view/jimsl01.html jimsl01]
| James Lacassagne
| 2007-11-16 17:49:02
|-
| [http://maemo.org/profile/view/jim_buchanan.html jim_buchanan]
| Jim Buchanan
| 2008-04-09 21:41:10
|-
| [http://maemo.org/profile/view/jinkman.html jinkman]
| John Inkmann
| 2008-02-22 16:31:01
|-
| [http://maemo.org/profile/view/jinlaca.html jinlaca]
| Jeff Cramer
| 2008-01-20 16:31:16
|-
| [http://maemo.org/profile/view/jinqilin.html jinqilin]
| zhou huijun
| 2007-11-16 17:49:12
|-
| [http://maemo.org/profile/view/jinqilin1618.html jinqilin1618]
| z hj
| 2007-11-28 17:21:40
|-
| [http://maemo.org/profile/view/jirka.html jirka]
| Jiri Brozovsky
| 2007-05-18 19:10:31
|-
| [http://maemo.org/profile/view/jisakiel.html jisakiel]
| Ezequiel Lara
| 2008-03-30 00:31:07
|-
| [http://maemo.org/profile/view/jiskafo.html jiskafo]
| Jiska Ford
| 2007-11-16 17:47:47
|-
| [http://maemo.org/profile/view/jiten.html jiten]
| Joonatan Kaartinen
| 2007-11-16 17:49:20
|-
| [http://maemo.org/profile/view/jivaeric.html jivaeric]
| Eric Lee
| 2008-01-25 19:44:01
|-
| [http://maemo.org/profile/view/jjamor.html jjamor]
| Juanjo Amor
| 2007-10-22 18:40:41
|-
| [http://maemo.org/profile/view/jjhughes.html jjhughes]
| John Hughes
| 2007-12-25 20:41:24
|-
| [http://maemo.org/profile/view/jjk305.html jjk305]
| john knox
| 2007-07-02 18:40:16
|-
| [http://maemo.org/profile/view/jjking700.html jjking700]
| joe king
| 2007-11-16 17:47:49
|-
| [http://maemo.org/profile/view/jjleejr.html jjleejr]
| James Lee
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/jjlemine.html jjlemine]
| Jari Leminen
| 2007-05-29 09:30:42
|-
| [http://maemo.org/profile/view/jjlucsy.html jjlucsy]
| Joel Lucsy
| 2007-07-03 17:40:11
|-
| [http://maemo.org/profile/view/jjmartin5.html jjmartin5]
| James Martin
| 2007-10-19 12:40:32
|-
| [http://maemo.org/profile/view/jjmicro.html jjmicro]
| jjmicro xian
| 2008-02-11 16:42:40
|-
| [http://maemo.org/profile/view/jjnoelbe.html jjnoelbe]
| Jean-Jacques NOEL
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/jjolly.html jjolly]
| john jolly
| 2007-06-24 05:40:06
|-
| [http://maemo.org/profile/view/jjpody.html jjpody]
| jim podewitz
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/jjrv.html jjrv]
| Juha Järvi
| 2007-10-22 13:40:34
|-
| [http://maemo.org/profile/view/jjunchen.html jjunchen]
| Jianjun Chen
| 2008-02-18 15:31:01
|-
| [http://maemo.org/profile/view/jjunk16.html jjunk16]
| Bernie Long
| 2008-02-09 00:31:08
|-
| [http://maemo.org/profile/view/jjussi.html jjussi]
| Jussi Jääskeläinen
| 2008-05-11 09:41:07
|-
| [http://maemo.org/profile/view/jjwades.html jjwades]
| Jeff Smith
| 2007-11-16 17:46:32
|-
| [http://maemo.org/profile/view/jj_willis.html jj_willis]
| J.J. Willis
| 2008-05-23 14:41:13
|-
| [http://maemo.org/profile/view/jkainula.html jkainula]
| Jukka Kainulainen
| 2007-10-31 18:40:36
|-
| [http://maemo.org/profile/view/jkarjala.html jkarjala]
| Jari Karjala
| 2007-05-23 05:29:41
|-
| [http://maemo.org/profile/view/jkataja.html jkataja]
| Janne Kataja
| 2007-05-18 19:11:09
|-
| [http://maemo.org/profile/view/jkbuha.html jkbuha]
| Julian Buhagiar
| 2008-02-23 20:31:02
|-
| [http://maemo.org/profile/view/jkemp.html jkemp]
| James Kemp
| 2008-01-23 19:02:29
|-
| [http://maemo.org/profile/view/jkgamer.html jkgamer]
| Jeff Hughes
| 2007-10-30 20:40:35
|-
| [http://maemo.org/profile/view/jkhoward.html jkhoward]
| john howard
| 2008-02-24 13:30:59
|-
| [http://maemo.org/profile/view/jkjkaufm.html jkjkaufm]
| Jeff Kaufman
| 2008-02-25 23:30:58
|-
| [http://maemo.org/profile/view/jkmace.html jkmace]
| jack kirk
| 2007-12-28 19:41:12
|-
| [http://maemo.org/profile/view/jkmaline.html jkmaline]
| Jouni Malinen
| 2007-11-02 22:40:40
|-
| [http://maemo.org/profile/view/jkramer.html jkramer]
| Jonas Kramer
| 2008-06-01 22:41:17
|-
| [http://maemo.org/profile/view/jkridner.html jkridner]
| Jason Kridner
| 2007-05-18 19:12:30
|-
| [http://maemo.org/profile/view/jkrzysztof80.html jkrzysztof80]
| Krzysztof Jurkowski
| 2008-01-16 15:41:37
|-
| [http://maemo.org/profile/view/jkstark.html jkstark]
| Kris Stark
| 2007-12-11 16:25:58
|-
| [http://maemo.org/profile/view/jku.html jku]
| Jussi Kukkonen
| 2007-05-18 19:12:50
|-
| [http://maemo.org/profile/view/jkujku.html jkujku]
| j k
| 2008-03-08 16:31:11
|-
| [http://maemo.org/profile/view/jkyro.html jkyro]
| Jaakko Kyrö
| 2007-06-22 07:40:09
|-
| [http://maemo.org/profile/view/jlaako.html jlaako]
| Jussi Laako
| 2007-11-16 17:46:29
|-
| [http://maemo.org/profile/view/jlaanti.html jlaanti]
| Jesse Laanti
| 2007-11-16 17:50:06
|-
| [http://maemo.org/profile/view/jlahtine.html jlahtine]
| Jukka Lahtinen
| 2008-02-04 19:31:14
|-
| [http://maemo.org/profile/view/jlahtinen.html jlahtinen]
| Jukka Lahtinen
| 2007-05-18 19:10:31
|-
| [http://maemo.org/profile/view/jlamb62480.html jlamb62480]
| jason lamb
| 2007-12-30 02:40:58
|-
| [http://maemo.org/profile/view/jlanning893.html jlanning893]
| John Lanning
| 2007-05-18 19:12:45
|-
| [http://maemo.org/profile/view/jlapenna.html jlapenna]
| Joseph LaPenna
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/jlapointe.html jlapointe]
| Jim Lapointe
| 2007-12-11 16:23:23
|-
| [http://maemo.org/profile/view/jlauber.html jlauber]
| John Lauber
| 2007-10-19 18:40:34
|-
| [http://maemo.org/profile/view/jlb2909.html jlb2909]
| james bearde
| 2007-11-15 07:55:51
|-
| [http://maemo.org/profile/view/jlb2909xx.html jlb2909xx]
| james bearde
| 2008-01-26 09:31:11
|-
| [http://maemo.org/profile/view/jlbrd.html jlbrd]
| Jean-Luc Biord
| 2007-01-20 14:40:04
|-
| [http://maemo.org/profile/view/jlcollado.html jlcollado]
| Jose Collado
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/jlconing.html jlconing]
| John Coning
| 2007-11-15 07:55:49
|-
| [http://maemo.org/profile/view/jldiaz.html jldiaz]
| Jose Diaz
| 2008-04-01 15:41:07
|-
| [http://maemo.org/profile/view/jlee0128.html jlee0128]
| Jenny Lee
| 2007-11-16 17:47:58
|-
| [http://maemo.org/profile/view/jleminen.html jleminen]
| Janne Leminen
| 2007-05-18 19:10:56
|-
| [http://maemo.org/profile/view/jlgoolsbee.html jlgoolsbee]
| Lee Goolsbee
| 2007-05-18 19:11:22
|-
| [http://maemo.org/profile/view/jlhagg.html jlhagg]
| Lamar Haggard
| 2008-03-15 00:31:01
|-
| [http://maemo.org/profile/view/jlittler.html jlittler]
| John Littler
| 2007-11-16 17:47:34
|-
| [http://maemo.org/profile/view/jllchao.html jllchao]
| James Chao
| 2007-12-26 03:41:13
|-
| [http://maemo.org/profile/view/jlmalet.html jlmalet]
| Jean-Luc MALET
| 2008-02-24 18:31:00
|-
| [http://maemo.org/profile/view/jlp.html jlp]
| Jure Repinc
| 2008-04-15 15:41:16
|-
| [http://maemo.org/profile/view/jlr.html jlr]
| Jeremy Rayman
| 2007-05-18 19:13:20
|-
| [http://maemo.org/profile/view/jlrtech.html jlrtech]
| jeffrey rosnick
| 2007-11-30 10:49:35
|-
| [http://maemo.org/profile/view/jlslate.html jlslate]
| Jim Slate
| 2007-12-11 16:25:07
|-
| [http://maemo.org/profile/view/jlsypro.html jlsypro]
| Julien LAURENT
| 2007-10-24 16:40:33
|-
| [http://maemo.org/profile/view/jlu.html jlu]
| Julius Luukko
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/jluedke.html jluedke]
| James Luedke
| 2007-11-15 07:56:13
|-
| [http://maemo.org/profile/view/jluisn.html jluisn]
| José Luís Nascimento
| 2007-05-18 19:10:47
|-
| [http://maemo.org/profile/view/jlwren.html jlwren]
| John Wren
| 2008-03-12 17:31:04
|-
| [http://maemo.org/profile/view/jmaaniit.html jmaaniit]
| Jussi Maaniitty
| 2007-05-18 19:11:14
|-
| [http://maemo.org/profile/view/jmaemo.html jmaemo]
| Jamal Hadi Salim
| 2007-11-02 11:40:34
|-
| [http://maemo.org/profile/view/jmandly.html jmandly]
| José Antonio Mandly Ramírez
| 2007-11-16 17:47:34
|-
| [http://maemo.org/profile/view/jmania.html jmania]
| jia jia
| 2007-11-16 17:46:38
|-
| [http://maemo.org/profile/view/jmarzano.html jmarzano]
| James Marzano
| 2007-04-05 15:25:38
|-
| [http://maemo.org/profile/view/jmawilliams.html jmawilliams]
| Jon Williams
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/jmaybush.html jmaybush]
| John Maybush
| 2007-12-12 02:40:57
|-
| [http://maemo.org/profile/view/jmbaja.html jmbaja]
| John Milan
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/jmbajet.html jmbajet]
| Jean-Marc BAJET
| 2007-10-18 17:40:31
|-
| [http://maemo.org/profile/view/jmbass02.html jmbass02]
| John Millage
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/jmberg.html jmberg]
| Johannes Berg
| 2007-10-22 08:40:36
|-
| [http://maemo.org/profile/view/jmccaf.html jmccaf]
| James McCaffrey
| 2008-02-27 11:31:01
|-
| [http://maemo.org/profile/view/jmcclean.html jmcclean]
| John McClean
| 2006-12-16 20:30:08
|-
| [http://maemo.org/profile/view/jmchugh.html jmchugh]
| j mch
| 2007-05-18 19:14:07
|-
| [http://maemo.org/profile/view/jmcrorie.html jmcrorie]
| john mcrorie
| 2008-02-02 19:31:32
|-
| [http://maemo.org/profile/view/jmdubya.html jmdubya]
| Jason Whitmire
| 2007-06-28 02:40:08
|-
| [http://maemo.org/profile/view/jmf_renard.html jmf_renard]
| Jean-Marie RENARD
| 2007-11-16 17:49:44
|-
| [http://maemo.org/profile/view/jmh.html jmh]
| Juha Havulinna
| 2008-04-02 19:41:10
|-
| [http://maemo.org/profile/view/jmhsrv.html jmhsrv]
| david ernst
| 2008-04-23 19:41:11
|-
| [http://maemo.org/profile/view/jmiahman.html jmiahman]
| Jeremiah Summers
| 2007-05-18 19:11:25
|-
| [http://maemo.org/profile/view/jmiller171.html jmiller171]
| Jeb Miller
| 2007-04-04 08:16:22
|-
| [http://maemo.org/profile/view/jmizell.html jmizell]
| John Mizell
| 2007-10-18 18:40:08
|-
| [http://maemo.org/profile/view/jmk2000.html jmk2000]
| Jeff Kelly
| 2007-05-18 19:10:28
|-
| [http://maemo.org/profile/view/jmklst.html jmklst]
| Jörg habe ich
| 2008-04-28 19:41:10
|-
| [http://maemo.org/profile/view/jmlawson.html jmlawson]
| jamal lawson
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/jmmejiav.html jmmejiav]
| jaime mauricio mejia vargas
| 2008-03-17 23:31:02
|-
| [http://maemo.org/profile/view/jmoeei.html jmoeei]
| hassan elatta
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/jmorenobs.html jmorenobs]
| Jorge moreno-burgos
| 2007-05-18 19:13:13
|-
| [http://maemo.org/profile/view/jmorenz.html jmorenz]
| John Morenz
| 2007-12-26 12:40:24
|-
| [http://maemo.org/profile/view/jmorris644.html jmorris644]
| Joe Morris
| 2007-01-15 17:00:02
|-
| [http://maemo.org/profile/view/jms1.html jms1]
| John Simpson
| 2007-04-04 08:16:22
|-
| [http://maemo.org/profile/view/jmthomas.html jmthomas]
| james thomas
| 2007-04-05 15:25:39
|-
| [http://maemo.org/profile/view/jmueller82.html jmueller82]
| joe mueller
| 2008-05-28 04:41:10
|-
| [http://maemo.org/profile/view/jnajera.html jnajera]
| Jesse Najera
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/jnet770.html jnet770]
| jose B.
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/jnettleton.html jnettleton]
| Jon Nettleton
| 2007-10-19 12:40:32
|-
| [http://maemo.org/profile/view/jng838.html jng838]
| joe eng
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/jnk27.html jnk27]
| john kemeny
| 2007-11-16 17:46:36
|-
| [http://maemo.org/profile/view/jnmobile.html jnmobile]
| James Noble
| 2008-05-07 21:41:07
|-
| [http://maemo.org/profile/view/jnousiai.html jnousiai]
| Jari Nousiainen
| 2007-05-18 19:11:40
|-
| [http://maemo.org/profile/view/jnovemb.html jnovemb]
| jim november
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/jnz.html jnz]
| Jordan Harriton
| 2008-04-07 04:41:02
|-
| [http://maemo.org/profile/view/jo2007.html jo2007]
| Joachim Schiebel
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/joachimm.html joachimm]
| Joachim Martin
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/joalo.html joalo]
| joaquin lopez rodriguez
| 2007-05-18 19:12:16
|-
| [http://maemo.org/profile/view/joanna.html joanna]
| Joanna Ostrander
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/joannerve.html joannerve]
| joan gracia schnabel
| 2007-12-11 16:25:58
|-
| [http://maemo.org/profile/view/joaoborges.html joaoborges]
| Joao Borges
| 2007-05-18 19:12:16
|-
| [http://maemo.org/profile/view/joaocdsa.html joaocdsa]
| João Sá
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/joaquinalvarado.html joaquinalvarado]
| Joaquin Alvarado
| 2007-05-18 19:12:19
|-
| [http://maemo.org/profile/view/jobelium.html jobelium]
| erilaz jobel
| 2007-10-22 03:40:36
|-
| [http://maemo.org/profile/view/jobester.html jobester]
| jobester 
| 2008-03-29 08:31:06
|-
| [http://maemo.org/profile/view/jobeyjoe.html jobeyjoe]
| Joseph Harvey
| 2007-05-18 19:12:34
|-
| [http://maemo.org/profile/view/jobi.html jobi]
| Johan Bilien
| 2007-05-18 19:11:04
|-
| [http://maemo.org/profile/view/jochym.html jochym]
| Pawel Jochym
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/jodzio.html jodzio]
| James JOhns
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/joe.html joe]
| joe bolen
| 2007-11-15 07:56:23
|-
| [http://maemo.org/profile/view/joe2316.html joe2316]
| joe schmoe
| 2008-05-31 07:43:07
|-
| [http://maemo.org/profile/view/joe886.html joe886]
| joe blogs
| 2007-12-11 16:26:03
|-
| [http://maemo.org/profile/view/joeberger.html joeberger]
| joe berger
| 2007-11-15 07:54:54
|-
| [http://maemo.org/profile/view/joebl86.html joebl86]
| joseph block
| 2007-05-29 09:30:43
|-
| [http://maemo.org/profile/view/joebush.html joebush]
| Joe Bush
| 2008-04-15 20:41:09
|-
| [http://maemo.org/profile/view/joec.html joec]
| joe comforti
| 2008-04-10 22:41:05
|-
| [http://maemo.org/profile/view/joefru.html joefru]
| Joe Fruchey
| 2007-07-01 02:40:18
|-
| [http://maemo.org/profile/view/joegum.html joegum]
| joe glez
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/joehun.html joehun]
| Joerg Hundgeburth
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/joek.html joek]
| Joe Kandaba
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/joel.html joel]
| joel raj
| 2008-05-06 14:41:06
|-
| [http://maemo.org/profile/view/joel0613.html joel0613]
| Joel Greenberg
| 2007-11-16 17:49:02
|-
| [http://maemo.org/profile/view/joelalli.html joelalli]
| joe lalli
| 2007-05-18 19:11:26
|-
| [http://maemo.org/profile/view/joelhb.html joelhb]
| Joel Burkholder
| 2008-05-30 17:41:13
|-
| [http://maemo.org/profile/view/joelja.html joelja]
| joel jaeggli
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/joelolmedo.html joelolmedo]
| Joel Olmedo
| 2008-02-28 07:31:02
|-
| [http://maemo.org/profile/view/joepagiii.html joepagiii]
| joe pagliaro
| 2008-04-15 15:41:14
|-
| [http://maemo.org/profile/view/joergen.html joergen]
| Jörgen Scheibengruber
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/joern.html joern]
| Joern Becker
| 2007-05-18 19:13:04
|-
| [http://maemo.org/profile/view/joesch.html joesch]
| Jörg Schömer
| 2008-04-16 19:41:08
|-
| [http://maemo.org/profile/view/joesweep.html joesweep]
| Joe Sweep
| 2008-01-26 18:33:15
|-
| [http://maemo.org/profile/view/joeysmiles.html joeysmiles]
| joe jackson
| 2008-06-04 22:41:11
|-
| [http://maemo.org/profile/view/joe_cot.html joe_cot]
| Joseph Terranova
| 2008-01-25 08:31:02
|-
| [http://maemo.org/profile/view/jogtac.html jogtac]
| j gretz
| 2008-02-09 01:32:22
|-
| [http://maemo.org/profile/view/johan.html johan]
| Johan Berggren
| 2007-05-18 19:12:06
|-
| [http://maemo.org/profile/view/johanges.html johanges]
| Johan Strandberg
| 2008-05-30 08:41:08
|-
| [http://maemo.org/profile/view/johannes.html johannes]
| Johannes Johansson
| 2007-05-18 19:14:17
|-
| [http://maemo.org/profile/view/john.html john]
| John Näsman
| 2007-11-16 17:49:57
|-
| [http://maemo.org/profile/view/john1wolf2002.html john1wolf2002]
| John Wolfram
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/john2007nj.html john2007nj]
| John Doherty
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/john78.html john78]
| John Robinson
| 2008-04-16 21:41:10
|-
| [http://maemo.org/profile/view/john819.html john819]
| john crandall
| 2008-01-26 19:31:06
|-
| [http://maemo.org/profile/view/johna.html johna]
| John Aherne
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/johnathan.html johnathan]
| Johnathan Skinner
| 2008-05-12 04:41:05
|-
| [http://maemo.org/profile/view/johnblommers.html johnblommers]
| John Blommers
| 2007-05-18 19:12:04
|-
| [http://maemo.org/profile/view/johnc.html johnc]
| John Wong
| 2007-11-16 17:48:29
|-
| [http://maemo.org/profile/view/johnc16.html johnc16]
| John Cool
| 2007-05-18 19:11:03
|-
| [http://maemo.org/profile/view/johncass.html johncass]
| john cass
| 2007-05-18 19:11:21
|-
| [http://maemo.org/profile/view/johnhburris.html johnhburris]
| john burris
| 2007-11-28 18:00:22
|-
| [http://maemo.org/profile/view/johni58.html johni58]
| John Ingramq
| 2008-02-23 22:31:09
|-
| [http://maemo.org/profile/view/johniac.html johniac]
| John Vaccaro
| 2007-12-25 21:41:42
|-
| [http://maemo.org/profile/view/johnjul.html johnjul]
| John Norman
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/johnkim.html johnkim]
| john kim
| 2008-01-11 11:11:23
|-
| [http://maemo.org/profile/view/johnkranz.html johnkranz]
| John Kranz
| 2007-11-28 15:42:40
|-
| [http://maemo.org/profile/view/johnkzin.html johnkzin]
| John Rudd
| 2007-09-11 06:40:23
|-
| [http://maemo.org/profile/view/johnlam03.html johnlam03]
| john lamastra
| 2007-11-16 17:47:53
|-
| [http://maemo.org/profile/view/johnlhynes.html johnlhynes]
| John Hynes
| 2007-12-31 03:42:33
|-
| [http://maemo.org/profile/view/johnlsloan.html johnlsloan]
| John Sloan
| 2007-07-05 02:40:15
|-
| [http://maemo.org/profile/view/johnm114.html johnm114]
| John Montgomery
| 2007-11-16 17:47:45
|-
| [http://maemo.org/profile/view/johnmccombs.html johnmccombs]
| john mccombs
| 2007-11-28 15:43:26
|-
| [http://maemo.org/profile/view/johnmech.html johnmech]
| John Oberg
| 2007-11-16 17:47:44
|-
| [http://maemo.org/profile/view/johnminard.html johnminard]
| John Minard
| 2008-01-28 18:42:23
|-
| [http://maemo.org/profile/view/johnn800.html johnn800]
| john pelaez
| 2007-12-11 16:24:56
|-
| [http://maemo.org/profile/view/johnny.html johnny]
| johnny ruddux
| 2007-12-22 14:41:27
|-
| [http://maemo.org/profile/view/johnny40964096.html johnny40964096]
| y z
| 2007-11-16 17:48:15
|-
| [http://maemo.org/profile/view/johnnyh.html johnnyh]
| John Harrison
| 2007-11-16 17:47:26
|-
| [http://maemo.org/profile/view/johnnynokia.html johnnynokia]
| Eric M
| 2007-11-30 10:49:37
|-
| [http://maemo.org/profile/view/johnosvision.html johnosvision]
| john stirling
| 2008-02-19 03:30:58
|-
| [http://maemo.org/profile/view/johnpad.html johnpad]
| John K
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/johnr.html johnr]
| J Rainer
| 2007-11-28 18:42:13
|-
| [http://maemo.org/profile/view/johnsdre.html johnsdre]
| Drew Johnson
| 2008-02-17 06:30:59
|-
| [http://maemo.org/profile/view/johnsharpe.html johnsharpe]
| John Sharpe
| 2008-02-14 12:01:19
|-
| [http://maemo.org/profile/view/johnstrand.html johnstrand]
| John Strand
| 2007-05-18 19:12:44
|-
| [http://maemo.org/profile/view/johnswinburn.html johnswinburn]
| john swinburn
| 2007-11-16 17:47:19
|-
| [http://maemo.org/profile/view/johntea.html johntea]
| tea john
| 2008-01-21 03:31:11
|-
| [http://maemo.org/profile/view/johnx.html johnx]
| John Bloom
| 2007-12-11 16:26:32
|-
| [http://maemo.org/profile/view/john_20040.html john_20040]
| Johnny Vibert
| 2008-01-28 20:33:00
|-
| [http://maemo.org/profile/view/johs.html johs]
| Joshua Smith
| 2007-05-18 19:12:20
|-
| [http://maemo.org/profile/view/joirv.html joirv]
| Joseph Benjamin
| 2007-05-18 19:13:47
|-
| [http://maemo.org/profile/view/jojoturkey.html jojoturkey]
| joanne domina
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/jokerz.html jokerz]
| Rob Nagy
| 2007-11-30 10:49:22
|-
| [http://maemo.org/profile/view/jokerz_lv.html jokerz_lv]
| oskars stals
| 2007-12-14 00:41:07
|-
| [http://maemo.org/profile/view/jokovo.html jokovo]
| jokovo ovoko
| 2007-12-28 03:40:57
|-
| [http://maemo.org/profile/view/jolapatate.html jolapatate]
| joel cornet
| 2008-01-23 13:32:06
|-
| [http://maemo.org/profile/view/jomat.html jomat]
| Johannes Matheis
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/jomealey.html jomealey]
| jon omealey
| 2007-07-08 21:40:10
|-
| [http://maemo.org/profile/view/jon.html jon]
| Jon Dowland
| 2008-01-11 12:41:08
|-
| [http://maemo.org/profile/view/jon1012.html jon1012]
| Jonathan Schemoul
| 2007-10-18 12:40:26
|-
| [http://maemo.org/profile/view/jonaix.html jonaix]
| j l
| 2008-05-10 04:41:06
|-
| [http://maemo.org/profile/view/jonasf.html jonasf]
| Jonas Fischer
| 2007-11-28 15:43:46
|-
| [http://maemo.org/profile/view/jonaslindstedt.html jonaslindstedt]
| Jonas Lindstedt
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/jonatha.html jonatha]
| Jonatha Panni
| 2007-10-22 07:40:33
|-
| [http://maemo.org/profile/view/jonathan.html jonathan]
| Jonathan D'Orleans
| 2008-02-26 18:31:08
|-
| [http://maemo.org/profile/view/jonca.html jonca]
| Jon Adams
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/jonek.html jonek]
| Johannes Eickhold
| 2007-05-18 19:12:08
|-
| [http://maemo.org/profile/view/jongep86.html jongep86]
| Maarten - Alexander Jongepier
| 2008-05-25 19:41:13
|-
| [http://maemo.org/profile/view/jonhoglund.html jonhoglund]
| Jon Hoglund
| 2008-03-01 22:31:08
|-
| [http://maemo.org/profile/view/joni994.html joni994]
| joni koski
| 2007-10-18 19:40:42
|-
| [http://maemo.org/profile/view/jonlund.html jonlund]
| Jon Lundberg
| 2008-02-28 15:31:07
|-
| [http://maemo.org/profile/view/jonna.html jonna]
| Jonna Eskelinen
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/jonni.html jonni]
| Jonni Rainisto
| 2007-11-15 07:55:24
|-
| [http://maemo.org/profile/view/jonniedollas.html jonniedollas]
| jonnie dollas
| 2008-01-05 12:41:14
|-
| [http://maemo.org/profile/view/jonniejamaica.html jonniejamaica]
| Jonnie Jamaica
| 2008-02-13 09:31:09
|-
| [http://maemo.org/profile/view/jonnyblaze30.html jonnyblaze30]
| jonny blae
| 2007-06-27 16:40:10
|-
| [http://maemo.org/profile/view/jonnylamb.html jonnylamb]
| Jonny Lamb
| 2007-05-18 19:11:26
|-
| [http://maemo.org/profile/view/jonovos.html jonovos]
| John Novosel
| 2007-07-02 17:40:16
|-
| [http://maemo.org/profile/view/jonrauch.html jonrauch]
| Jon Rauch
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/jonsmirl.html jonsmirl]
| Jon Smirl
| 2007-05-18 19:11:26
|-
| [http://maemo.org/profile/view/joo.html joo]
| joo 500
| 2008-01-18 15:31:29
|-
| [http://maemo.org/profile/view/jookos.html jookos]
| Joakim Koskela
| 2007-06-08 13:37:20
|-
| [http://maemo.org/profile/view/joorg.html joorg]
| Jörg Strobel
| 2007-05-18 19:13:09
|-
| [http://maemo.org/profile/view/jope.html jope]
| Johannes Pystynen
| 2007-06-08 13:37:17
|-
| [http://maemo.org/profile/view/joq100.html joq100]
| Joaquín Montón Bueno
| 2006-12-12 16:30:03
|-
| [http://maemo.org/profile/view/jora-rus.html jora-rus]
| Yanshin Alexei
| 2007-06-08 13:37:17
|-
| [http://maemo.org/profile/view/jorcacu.html jorcacu]
| Jorge Callejas
| 2008-02-02 09:32:44
|-
| [http://maemo.org/profile/view/jorchl.html jorchl]
| jorge jorge
| 2008-01-08 17:41:24
|-
| [http://maemo.org/profile/view/jorda.html jorda]
| Jordà Polo
| 2007-10-19 11:40:31
|-
| [http://maemo.org/profile/view/jordangilman.html jordangilman]
| jordan gilman
| 2007-12-21 03:40:55
|-
| [http://maemo.org/profile/view/jorde.html jorde]
| Jori Lallo
| 2007-10-19 12:40:29
|-
| [http://maemo.org/profile/view/jordi.html jordi]
| Jordi Mallach
| 2007-10-19 11:40:31
|-
| [http://maemo.org/profile/view/jordimas.html jordimas]
| Jordi Mas
| 2007-10-25 13:40:34
|-
| [http://maemo.org/profile/view/jored.html jored]
| Jorge Jimenez
| 2007-11-30 10:49:36
|-
| [http://maemo.org/profile/view/jorg.html jorg]
| jorgen srtycharz
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/jorgecallejas.html jorgecallejas]
| Jorge Callejas
| 2008-02-10 01:31:21
|-
| [http://maemo.org/profile/view/jorgem2000.html jorgem2000]
| Jorge Mendoza
| 2007-11-16 17:49:26
|-
| [http://maemo.org/profile/view/jorsmit.html jorsmit]
| Cole Williams
| 2007-11-16 17:49:02
|-
| [http://maemo.org/profile/view/jorymil.html jorymil]
| John Miller
| 2008-04-27 02:41:06
|-
| [http://maemo.org/profile/view/jos.html jos]
| José Ignacio Fernández
| 2007-11-16 17:49:14
|-
| [http://maemo.org/profile/view/jos2007.html jos2007]
| Joachim Schiebel
| 2007-11-30 10:49:25
|-
| [http://maemo.org/profile/view/jose.html jose]
| José Manuel Alarcón Roldán
| 2007-05-18 19:11:35
|-
| [http://maemo.org/profile/view/jose5912.html jose5912]
| Jose Silverio
| 2007-06-19 07:10:37
|-
| [http://maemo.org/profile/view/jose6944.html jose6944]
| jose espinoza
| 2007-05-18 19:14:13
|-
| [http://maemo.org/profile/view/josebidi.html josebidi]
| Jose Bidigaray
| 2007-07-24 23:40:13
|-
| [http://maemo.org/profile/view/josegambino.html josegambino]
| jose gambino
| 2008-05-03 04:41:11
|-
| [http://maemo.org/profile/view/josegd.html josegd]
| jose gd
| 2008-03-14 21:31:04
|-
| [http://maemo.org/profile/view/josei09.html josei09]
| jose i. icaza
| 2007-12-22 04:42:03
|-
| [http://maemo.org/profile/view/josemdrguez.html josemdrguez]
| Jose Miguel Doña Rodriguez
| 2007-12-11 16:26:33
|-
| [http://maemo.org/profile/view/josemj1.html josemj1]
| Marshall Jose
| 2007-05-18 19:11:28
|-
| [http://maemo.org/profile/view/josenj.html josenj]
| Jose Negron
| 2008-01-10 05:40:55
|-
| [http://maemo.org/profile/view/joseo.html joseo]
| jose orenes
| 2008-01-24 15:33:40
|-
| [http://maemo.org/profile/view/joseph2002.html joseph2002]
| Joseph Lee
| 2007-07-07 01:40:10
|-
| [http://maemo.org/profile/view/josephlin470.html josephlin470]
| Joseph Lin
| 2007-11-15 07:56:24
|-
| [http://maemo.org/profile/view/josephrenda.html josephrenda]
| Joseph Renda
| 2008-02-08 06:31:25
|-
| [http://maemo.org/profile/view/joseyong.html joseyong]
| Jose Yong
| 2007-12-24 21:41:30
|-
| [http://maemo.org/profile/view/josh.html josh]
| Josh Triplett
| 2007-05-18 19:10:56
|-
| [http://maemo.org/profile/view/josh1152.html josh1152]
| Josh Bloom
| 2007-11-15 07:56:26
|-
| [http://maemo.org/profile/view/josh31337.html josh31337]
| josh arteaga
| 2007-12-11 23:40:53
|-
| [http://maemo.org/profile/view/joshb247.html joshb247]
| josh bee
| 2007-10-20 01:40:33
|-
| [http://maemo.org/profile/view/joshipk.html joshipk]
| Pradeep Joshi
| 2007-05-18 19:11:49
|-
| [http://maemo.org/profile/view/joshkane89.html joshkane89]
| josh kane
| 2007-05-29 09:30:11
|-
| [http://maemo.org/profile/view/joshkress.html joshkress]
| Joerg Josh Kress
| 2007-10-29 14:40:35
|-
| [http://maemo.org/profile/view/joshtriplett.html joshtriplett]
| Josh Triplett
| 2007-12-14 08:40:50
|-
| [http://maemo.org/profile/view/joshuafan.html joshuafan]
| joshua fan
| 2008-02-24 17:31:04
|-
| [http://maemo.org/profile/view/jospeeters.html jospeeters]
| Jos PEETERS
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/josuef.html josuef]
| Josue Fontecha
| 2008-05-07 01:41:09
|-
| [http://maemo.org/profile/view/jos_peeters.html jos_peeters]
| Jos Peeters
| 2007-05-18 19:11:19
|-
| [http://maemo.org/profile/view/jot.html jot]
| matin scheiner
| 2007-11-03 06:40:40
|-
| [http://maemo.org/profile/view/jot999.html jot999]
| JoJo Tillmann
| 2007-10-30 09:40:35
|-
| [http://maemo.org/profile/view/jothipriya.html jothipriya]
| jothi priya
| 2007-08-13 04:40:22
|-
| [http://maemo.org/profile/view/jott.html jott]
| Jonas Hurrelmann
| 2007-10-19 13:40:35
|-
| [http://maemo.org/profile/view/jounggj.html jounggj]
| GyongJin Joung
| 2007-06-08 13:37:21
|-
| [http://maemo.org/profile/view/jowain.html jowain]
| jouni wallden
| 2008-02-10 07:31:00
|-
| [http://maemo.org/profile/view/joyfit.html joyfit]
| Philip Jia
| 2007-07-04 03:40:18
|-
| [http://maemo.org/profile/view/joylove.html joylove]
| bob Joylove
| 2007-12-22 00:41:28
|-
| [http://maemo.org/profile/view/jozeluiz.html jozeluiz]
| Jose Luis Morales
| 2007-05-18 19:10:40
|-
| [http://maemo.org/profile/view/jozsef.html jozsef]
| József Pap
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/jp2010.html jp2010]
| Jeff Purcell
| 2007-11-15 07:56:01
|-
| [http://maemo.org/profile/view/jp6891.html jp6891]
| Janak Patel
| 2007-12-28 22:41:12
|-
| [http://maemo.org/profile/view/jpaalasm.html jpaalasm]
| Joonas Paalasmaa
| 2008-03-21 16:31:04
|-
| [http://maemo.org/profile/view/jpakkane.html jpakkane]
| Jussi Pakkanen
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/jpalko.html jpalko]
| Jukka Palko
| 2007-10-19 12:40:32
|-
| [http://maemo.org/profile/view/jpap.html jpap]
| John Papandriopoulos
| 2007-05-18 19:12:00
|-
| [http://maemo.org/profile/view/jparent.html jparent]
| Jeffrey Parent
| 2007-07-12 23:40:14
|-
| [http://maemo.org/profile/view/jparker11.html jparker11]
| joe parker
| 2008-01-23 19:02:27
|-
| [http://maemo.org/profile/view/jparrishsr.html jparrishsr]
| james parrish
| 2007-11-15 07:55:20
|-
| [http://maemo.org/profile/view/jpavelek.html jpavelek]
| Jakub Pavelek
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/jpcook.html jpcook]
| John Cook
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/jpemaemo.html jpemaemo]
| Joyce Evans
| 2008-01-18 15:31:29
|-
| [http://maemo.org/profile/view/jpetersen.html jpetersen]
| Jan Arne Petersen
| 2007-11-16 17:50:06
|-
| [http://maemo.org/profile/view/jpham111.html jpham111]
| john pham
| 2008-05-27 14:41:17
|-
| [http://maemo.org/profile/view/jphanley.html jphanley]
| Jason Hanley
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/jphhughes.html jphhughes]
| John Hughes
| 2008-01-11 11:11:25
|-
| [http://maemo.org/profile/view/jpilomia.html jpilomia]
| Janaina Pilomia
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/jpj.html jpj]
| John Jurewicz
| 2007-01-10 22:00:04
|-
| [http://maemo.org/profile/view/jpjannes.html jpjannes]
| James Jannes
| 2007-05-18 19:10:38
|-
| [http://maemo.org/profile/view/jpkorva.html jpkorva]
| Jari Korva
| 2008-03-05 12:31:07
|-
| [http://maemo.org/profile/view/jplhere.html jplhere]
| James Ludlam
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/jpmitchell.html jpmitchell]
| John Mitchell
| 2007-10-18 17:40:30
|-
| [http://maemo.org/profile/view/jppequenao.html jppequenao]
| Joao Pequenao
| 2007-05-18 19:13:24
|-
| [http://maemo.org/profile/view/jprieur.html jprieur]
| Johann Prieur
| 2007-12-16 17:40:55
|-
| [http://maemo.org/profile/view/jproulx.html jproulx]
| Jonathan Proulx
| 2007-10-30 13:40:35
|-
| [http://maemo.org/profile/view/jpryor223.html jpryor223]
| Jeffrey Pryor
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/jps.html jps]
| j sugrue
| 2007-05-18 19:10:54
|-
| [http://maemo.org/profile/view/jpsieppi.html jpsieppi]
| Jari-Pekka Sieppi
| 2008-01-21 11:31:42
|-
| [http://maemo.org/profile/view/jpt000.html jpt000]
| Jose Trincao
| 2008-01-09 12:40:53
|-
| [http://maemo.org/profile/view/jptmoore.html jptmoore]
| john moore
| 2007-11-28 15:43:42
|-
| [http://maemo.org/profile/view/jpvalois.html jpvalois]
| Jean-Philippe Valois
| 2008-05-12 23:41:13
|-
| [http://maemo.org/profile/view/jpw.html jpw]
| John Paul Wallington
| 2007-10-21 21:40:45
|-
| [http://maemo.org/profile/view/jpwb.html jpwb]
| Paul Bamber
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/jqckmccart.html jqckmccart]
| jack mccart
| 2008-02-19 14:31:02
|-
| [http://maemo.org/profile/view/jrappleg.html jrappleg]
| john applegate
| 2008-05-24 15:41:24
|-
| [http://maemo.org/profile/view/jray.html jray]
| jerry cox
| 2007-11-15 07:56:00
|-
| [http://maemo.org/profile/view/jrbl.html jrbl]
| Joe Blaylock
| 2007-11-16 17:47:07
|-
| [http://maemo.org/profile/view/jrelpapi951.html jrelpapi951]
| junior elpapi
| 2008-05-03 20:41:06
|-
| [http://maemo.org/profile/view/jrh.html jrh]
| Jonathan Hudson
| 2007-05-18 19:13:37
|-
| [http://maemo.org/profile/view/jrisberg.html jrisberg]
| Joel Risberg
| 2007-07-09 18:40:16
|-
| [http://maemo.org/profile/view/jritvas.html jritvas]
| Juha Ritvas
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/jrivera.html jrivera]
| Jorge Rivera
| 2007-11-16 17:49:32
|-
| [http://maemo.org/profile/view/jrmatson.html jrmatson]
| Jon Matson
| 2008-03-18 19:31:03
|-
| [http://maemo.org/profile/view/jrock2004.html jrock2004]
| John Costanzo
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/jrogersitctel.html jrogersitctel]
| Jeff Rogers
| 2007-06-30 03:40:08
|-
| [http://maemo.org/profile/view/jroivas.html jroivas]
| Jouni Roivas
| 2007-05-18 19:10:22
|-
| [http://maemo.org/profile/view/jroman91.html jroman91]
| John Roman
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/jrouyer.html jrouyer]
| Jeff Rouyer
| 2008-04-04 01:41:27
|-
| [http://maemo.org/profile/view/jrr.html jrr]
| Jose Rodriguez Ruibal
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/jrwynne.html jrwynne]
| Jim Wynne
| 2007-12-26 03:41:14
|-
| [http://maemo.org/profile/view/jsalvalzo.html jsalvalzo]
| Joe Salvalzo
| 2007-07-01 14:40:08
|-
| [http://maemo.org/profile/view/jsc.html jsc]
| Jimmy Clark
| 2008-04-06 10:41:03
|-
| [http://maemo.org/profile/view/jscawood.html jscawood]
| Jake Cawood
| 2008-01-19 00:31:01
|-
| [http://maemo.org/profile/view/jschalsk.html jschalsk]
| john schalski
| 2007-10-24 20:40:34
|-
| [http://maemo.org/profile/view/jschmidt.html jschmidt]
| Jeff Schmidt
| 2007-07-10 03:40:16
|-
| [http://maemo.org/profile/view/jschmitt.html jschmitt]
| John Schmitt
| 2008-02-10 23:32:43
|-
| [http://maemo.org/profile/view/jschroettle.html jschroettle]
| Josef Schroettle
| 2007-11-16 17:46:56
|-
| [http://maemo.org/profile/view/jseminerio.html jseminerio]
| John Seminerio
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/jsgarvin.html jsgarvin]
| Jon Garvin
| 2007-12-17 02:40:57
|-
| [http://maemo.org/profile/view/jslegare.html jslegare]
| Jean-Sébastien Légaré
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/jsmanrique.html jsmanrique]
| Manrique Lopez
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/jsmith.html jsmith]
| Jared Smith
| 2008-01-05 17:41:09
|-
| [http://maemo.org/profile/view/jsmorin.html jsmorin]
| Jean-Sébastien Morin
| 2008-05-24 17:41:10
|-
| [http://maemo.org/profile/view/jsn90621.html jsn90621]
| Jason Choi
| 2008-02-09 08:31:09
|-
| [http://maemo.org/profile/view/jsprenkl.html jsprenkl]
| Jay Sprenkle
| 2007-11-16 17:47:12
|-
| [http://maemo.org/profile/view/jssmith.html jssmith]
| Jeremy Smith
| 2007-11-03 04:40:40
|-
| [http://maemo.org/profile/view/jstoefer.html jstoefer]
| Jan Stöfer
| 2007-12-11 16:25:48
|-
| [http://maemo.org/profile/view/jsuthar.html jsuthar]
| Jitu Suthar
| 2007-12-18 00:40:53
|-
| [http://maemo.org/profile/view/jszheng.html jszheng]
| Zheng JieSheng
| 2007-10-24 07:40:34
|-
| [http://maemo.org/profile/view/jtaji.html jtaji]
| James Taji
| 2007-10-24 14:40:36
|-
| [http://maemo.org/profile/view/jtannous.html jtannous]
| joe tannous
| 2007-12-27 03:41:10
|-
| [http://maemo.org/profile/view/jtarrio.html jtarrio]
| Jacobo Tarrio
| 2007-10-19 10:40:36
|-
| [http://maemo.org/profile/view/jtester.html jtester]
| Jonathan Tester
| 2007-09-12 18:40:24
|-
| [http://maemo.org/profile/view/jtevans.html jtevans]
| John Evans
| 2008-02-07 19:32:39
|-
| [http://maemo.org/profile/view/jtilghman.html jtilghman]
| John Tilghman
| 2007-10-29 08:40:34
|-
| [http://maemo.org/profile/view/jtippy.html jtippy]
| James Tippy
| 2007-11-16 17:46:32
|-
| [http://maemo.org/profile/view/jtiri.html jtiri]
| Jaakko Tiri
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/jtmonone.html jtmonone]
| Jukka Mononen
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/jtokash.html jtokash]
| John Tokash
| 2007-11-16 17:49:41
|-
| [http://maemo.org/profile/view/jtorra.html jtorra]
| Josep Torra
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/jtra.html jtra]
| Jakub Travnik
| 2007-05-18 19:10:53
|-
| [http://maemo.org/profile/view/jtrobinson131.html jtrobinson131]
| john robinson
| 2008-03-23 02:32:09
|-
| [http://maemo.org/profile/view/jtsnyc47.html jtsnyc47]
| jeremiah stoldt
| 2007-06-30 22:41:01
|-
| [http://maemo.org/profile/view/jtukkine.html jtukkine]
| Juha Tukkinen
| 2007-06-08 13:37:22
|-
| [http://maemo.org/profile/view/jtulkki.html jtulkki]
| Jouni Tulkki
| 2007-05-18 19:10:55
|-
| [http://maemo.org/profile/view/jtuttle.html jtuttle]
| J.P. Tuttle
| 2007-07-07 00:40:16
|-
| [http://maemo.org/profile/view/ju3lig.html ju3lig]
| Chris Julg
| 2008-04-16 16:41:21
|-
| [http://maemo.org/profile/view/ju9or.html ju9or]
| Tor-Erik Klausen
| 2008-04-24 19:41:08
|-
| [http://maemo.org/profile/view/juan191.html juan191]
| Juan Aljure
| 2008-05-29 19:41:15
|-
| [http://maemo.org/profile/view/juanj.html juanj]
| Juan Munoz
| 2008-05-30 08:41:07
|-
| [http://maemo.org/profile/view/juanjo.html juanjo]
| juanjo ledo
| 2008-02-06 22:31:14
|-
| [http://maemo.org/profile/view/juanlopez4691.html juanlopez4691]
| Juan López
| 2007-11-06 14:02:06
|-
| [http://maemo.org/profile/view/juanma.html juanma]
| Juan Manuel García Molina
| 2007-12-11 16:25:15
|-
| [http://maemo.org/profile/view/judy4770.html judy4770]
| JUDITH SALSBURY
| 2007-07-09 02:40:15
|-
| [http://maemo.org/profile/view/juepi.html juepi]
| Juergen Pichlbauer
| 2007-05-18 19:12:13
|-
| [http://maemo.org/profile/view/juergbi.html juergbi]
| Jürg Billeter
| 2007-10-18 12:40:27
|-
| [http://maemo.org/profile/view/juerro.html juerro]
| Eric Garcia
| 2007-07-13 20:40:18
|-
| [http://maemo.org/profile/view/juggie.html juggie]
| jug jones
| 2007-12-11 16:26:33
|-
| [http://maemo.org/profile/view/jugglingcats.html jugglingcats]
| Alfie Kirkpatrick
| 2008-03-05 12:31:06
|-
| [http://maemo.org/profile/view/juhak.html juhak]
| Juha Koivisto
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/juham.html juham]
| Juha Mäenalusta
| 2007-10-23 18:40:40
|-
| [http://maemo.org/profile/view/juhana.html juhana]
| Juhana Hirvilahti
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/juhanil.html juhanil]
| juhani linnanoja
| 2007-12-26 15:51:44
|-
| [http://maemo.org/profile/view/juhanima.html juhanima]
| Juhani Mäkelä
| 2008-04-15 10:41:10
|-
| [http://maemo.org/profile/view/juhaz.html juhaz]
| Juha Sahakangas
| 2007-10-21 15:40:33
|-
| [http://maemo.org/profile/view/juho.html juho]
| Juho Laatu
| 2008-02-24 08:31:12
|-
| [http://maemo.org/profile/view/jui.html jui]
| Jussi Uusi-Illikainen
| 2007-05-18 19:10:31
|-
| [http://maemo.org/profile/view/juissi.html juissi]
| jussi jaakonaho
| 2007-10-20 20:40:31
|-
| [http://maemo.org/profile/view/juissi_t.html juissi_t]
| Juha Tiensyrjä
| 2008-03-10 14:31:07
|-
| [http://maemo.org/profile/view/juize.html juize]
| Tuomas Ojamies
| 2007-05-18 19:12:49
|-
| [http://maemo.org/profile/view/jukey.html jukey]
| Uwe Kaminski
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/juki_010.html juki_010]
| ramon vicencio
| 2007-07-02 05:40:19
|-
| [http://maemo.org/profile/view/jukkar.html jukkar]
| Jukka Rissanen
| 2007-05-18 19:10:37
|-
| [http://maemo.org/profile/view/jule.html jule]
| jule sievert
| 2008-01-01 16:40:57
|-
| [http://maemo.org/profile/view/julesmcn.html julesmcn]
| Jules McN
| 2008-03-27 20:31:06
|-
| [http://maemo.org/profile/view/julf.html julf]
| Johan Helsingius
| 2007-04-16 12:41:52
|-
| [http://maemo.org/profile/view/julian.html julian]
| Julian Bleecker
| 2007-11-16 17:49:22
|-
| [http://maemo.org/profile/view/julianashley.html julianashley]
| Julian Ashley
| 2007-11-15 07:55:40
|-
| [http://maemo.org/profile/view/julianlb.html julianlb]
| Julian Lewis-Booth
| 2007-11-16 17:46:37
|-
| [http://maemo.org/profile/view/juliano.html juliano]
| Klaus Sodemann
| 2008-05-20 11:41:09
|-
| [http://maemo.org/profile/view/juliob.html juliob]
| Julio Biason
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/julioc.html julioc]
| Julio Navarro
| 2008-02-01 22:31:01
|-
| [http://maemo.org/profile/view/julioromano.html julioromano]
| Marco Romano
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/julio_testoni.html julio_testoni]
| Julio Testoni
| 2007-07-03 03:40:10
|-
| [http://maemo.org/profile/view/julipan.html julipan]
| julipan julipan
| 2007-12-20 21:41:59
|-
| [http://maemo.org/profile/view/juliusabiola.html juliusabiola]
| Julius Abiola
| 2007-05-18 19:13:57
|-
| [http://maemo.org/profile/view/juliuszs.html juliuszs]
| julius szelagiewicz
| 2007-06-21 19:40:06
|-
| [http://maemo.org/profile/view/julnofx.html julnofx]
| julien nofrits
| 2008-04-25 12:41:05
|-
| [http://maemo.org/profile/view/julyfirst.html julyfirst]
| duane july
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/juma.html juma]
| Jukka Matila
| 2007-11-28 15:43:20
|-
| [http://maemo.org/profile/view/jumar.html jumar]
| Jussi Orajärvi
| 2007-05-18 19:13:57
|-
| [http://maemo.org/profile/view/jumpmark.html jumpmark]
| mark preza
| 2007-12-22 08:41:21
|-
| [http://maemo.org/profile/view/jumpula.html jumpula]
| Jussi Hakala
| 2007-10-16 20:40:27
|-
| [http://maemo.org/profile/view/junglecoon.html junglecoon]
| Alessio Antonelli
| 2007-10-22 10:40:35
|-
| [http://maemo.org/profile/view/junglepenguin.html junglepenguin]
| Jelmer Slotegraaf
| 2007-06-23 18:40:06
|-
| [http://maemo.org/profile/view/junio.html junio]
| Junio Anthes-Moody
| 2007-05-18 19:11:38
|-
| [http://maemo.org/profile/view/junix.html junix]
| Jussi Uljas
| 2007-05-18 19:10:39
|-
| [http://maemo.org/profile/view/junkmale.html junkmale]
| junk male
| 2007-12-11 23:40:53
|-
| [http://maemo.org/profile/view/junnu76.html junnu76]
| Mika Juoperi
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/junttari.html junttari]
| Ari Junttila
| 2007-11-16 17:49:09
|-
| [http://maemo.org/profile/view/jupaason.html jupaason]
| Juho Paasonen
| 2007-03-19 15:34:21
|-
| [http://maemo.org/profile/view/jura.html jura]
| Ralf Feldhusen
| 2007-11-15 07:55:39
|-
| [http://maemo.org/profile/view/jurandy.html jurandy]
| Jurandy Soares Jr.
| 2008-05-13 22:42:05
|-
| [http://maemo.org/profile/view/jurasek.html jurasek]
| jiri sasek
| 2007-11-16 17:49:03
|-
| [http://maemo.org/profile/view/jurek.html jurek]
| jerzy konopka
| 2008-02-08 05:31:07
|-
| [http://maemo.org/profile/view/jurop88.html jurop88]
| Michele Giorgini
| 2007-11-16 17:50:14
|-
| [http://maemo.org/profile/view/jusdef.html jusdef]
| jus def
| 2007-07-02 02:10:17
|-
| [http://maemo.org/profile/view/juslem.html juslem]
| Jussi Lemmetty
| 2007-10-19 13:40:37
|-
| [http://maemo.org/profile/view/juspass.html juspass]
| Jussi Passi
| 2007-08-14 12:40:21
|-
| [http://maemo.org/profile/view/jusranta.html jusranta]
| Jussi Rantala
| 2008-03-22 17:31:01
|-
| [http://maemo.org/profile/view/jussar.html jussar]
| Justin Meyer
| 2007-11-15 07:56:25
|-
| [http://maemo.org/profile/view/jussiora.html jussiora]
| Jussi Orajärvi
| 2007-11-16 17:49:20
|-
| [http://maemo.org/profile/view/jussi_peltonen.html jussi_peltonen]
| jussi peltonen
| 2007-05-18 19:12:29
|-
| [http://maemo.org/profile/view/justinpassion.html justinpassion]
| Justin Hong
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/justjaxon.html justjaxon]
| jackson tinker
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/justjpm.html justjpm]
| jim mockus
| 2008-04-02 13:41:41
|-
| [http://maemo.org/profile/view/justnot.html justnot]
| Leo Stef
| 2008-01-29 13:41:47
|-
| [http://maemo.org/profile/view/justsoso8.html justsoso8]
| first last
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/justyn.html justyn]
| Justyn Crane
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/juubaker.html juubaker]
| John Baker
| 2008-02-22 21:31:02
|-
| [http://maemo.org/profile/view/juxtapoz.html juxtapoz]
| Allan D
| 2008-01-12 03:41:05
|-
| [http://maemo.org/profile/view/jvachun.html jvachun]
| Jan Vachun
| 2008-01-06 17:40:59
|-
| [http://maemo.org/profile/view/jvader.html jvader]
| j vader
| 2007-11-16 17:48:08
|-
| [http://maemo.org/profile/view/jvaltane.html jvaltane]
| Joni Valtanen
| 2007-05-18 19:11:02
|-
| [http://maemo.org/profile/view/jvd.html jvd]
| Johannes Duschl
| 2007-10-20 10:40:29
|-
| [http://maemo.org/profile/view/jvernon.html jvernon]
| Jeff Vernon
| 2008-04-11 00:41:41
|-
| [http://maemo.org/profile/view/jvibert1.html jvibert1]
| Johnny Vibert
| 2008-05-14 10:41:09
|-
| [http://maemo.org/profile/view/jvishoot.html jvishoot]
| James Vishoot
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/jvprat.html jvprat]
| Jordi Vilalta
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/jvtm.html jvtm]
| Jyrki Muukkonen
| 2007-12-15 13:40:51
|-
| [http://maemo.org/profile/view/jwall.html jwall]
| Joe Wall
| 2008-03-21 15:31:08
|-
| [http://maemo.org/profile/view/jwallander.html jwallander]
| Jonas Wallander
| 2008-04-29 07:41:04
|-
| [http://maemo.org/profile/view/jwatt.html jwatt]
| Jonathan Watt
| 2008-04-22 08:41:06
|-
| [http://maemo.org/profile/view/jwboyer.html jwboyer]
| josh boyer
| 2007-05-18 19:11:03
|-
| [http://maemo.org/profile/view/jwh128.html jwh128]
| Jon Walters
| 2007-12-13 04:40:52
|-
| [http://maemo.org/profile/view/jwhelan.html jwhelan]
| Jason Whelan
| 2007-10-19 05:40:30
|-
| [http://maemo.org/profile/view/jwhidden.html jwhidden]
| JP Whidden
| 2008-02-04 06:30:59
|-
| [http://maemo.org/profile/view/jwhistler.html jwhistler]
| Jim Whistler
| 2008-01-21 18:32:44
|-
| [http://maemo.org/profile/view/jwilke.html jwilke]
| Jeroen Wilke
| 2007-10-18 13:40:30
|-
| [http://maemo.org/profile/view/jwlemke.html jwlemke]
| James Lemke
| 2008-02-15 22:31:02
|-
| [http://maemo.org/profile/view/jwtseng.html jwtseng]
| James Tseng
| 2007-05-18 19:10:48
|-
| [http://maemo.org/profile/view/jycjyc11.html jycjyc11]
| john chung
| 2008-05-22 23:41:08
|-
| [http://maemo.org/profile/view/jyeley.html jyeley]
| Jeff Yeley
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/jykortel.html jykortel]
| Jyrki Kortelainen
| 2007-10-25 09:40:33
|-
| [http://maemo.org/profile/view/jylee.html jylee]
| Jin Yong Lee
| 2007-12-11 16:25:30
|-
| [http://maemo.org/profile/view/jyli.html jyli]
| Jyrki Lindfors
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/jyniu.html jyniu]
| Jingyu Niu
| 2008-01-23 07:33:25
|-
| [http://maemo.org/profile/view/jynus.html jynus]
| Jaime Crespo
| 2007-05-18 19:12:44
|-
| [http://maemo.org/profile/view/jyoung1685.html jyoung1685]
| Jerome Young
| 2008-02-13 01:41:40
|-
| [http://maemo.org/profile/view/jyro.html jyro]
| Jayesh Salvi
| 2007-08-11 00:40:20
|-
| [http://maemo.org/profile/view/jyuyu.html jyuyu]
| Javier Donaire
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/jzencovich.html jzencovich]
| Jonathan Zencovich
| 2007-05-18 19:11:55
|-
| [http://maemo.org/profile/view/j_bargil.html j_bargil]
| Jonathan Bar-Gil
| 2007-05-18 19:14:23
|-
| [http://maemo.org/profile/view/j_gat.html j_gat]
| Jason Conklin
| 2008-04-17 01:41:20
|-
| [http://maemo.org/profile/view/j_minuscule.html j_minuscule]
| Jerome Rosset
| 2008-03-25 23:31:07
|-
| [http://maemo.org/profile/view/k0059.html k0059]
| sun deli
| 2008-03-12 10:31:02
|-
| [http://maemo.org/profile/view/k4rn4k.html k4rn4k]
| gianluca karnak
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/k4rnhack.html k4rnhack]
| Gianluca D'Andrea
| 2007-10-19 15:40:31
|-
| [http://maemo.org/profile/view/k6kgs.html k6kgs]
| Robert Buaas
| 2007-11-16 17:47:25
|-
| [http://maemo.org/profile/view/k6lcs.html k6lcs]
| Clint Bradford
| 2007-11-15 07:56:27
|-
| [http://maemo.org/profile/view/k7-22.html k7-22]
| Antonio Rutigliano
| 2007-05-18 19:12:32
|-
| [http://maemo.org/profile/view/kaandemirtas.html kaandemirtas]
| kaan demirtas
| 2007-05-18 19:12:49
|-
| [http://maemo.org/profile/view/kad.html kad]
| Alexander Kanevskiy
| 2007-05-18 19:10:23
|-
| [http://maemo.org/profile/view/kadionik.html kadionik]
| Patrice Kadionik
| 2007-11-28 15:43:44
|-
| [http://maemo.org/profile/view/kadymac.html kadymac]
| Kathleen McGregor
| 2007-11-15 07:54:53
|-
| [http://maemo.org/profile/view/kafachan.html kafachan]
| Kafa Chan
| 2007-11-16 17:48:10
|-
| [http://maemo.org/profile/view/kaidan.html kaidan]
| Dan Dang
| 2007-06-30 19:40:10
|-
| [http://maemo.org/profile/view/kairo.html kairo]
| Robert Kaiser
| 2008-05-26 20:41:14
|-
| [http://maemo.org/profile/view/kaito.html kaito]
| Rolf Deme
| 2008-01-07 03:40:59
|-
| [http://maemo.org/profile/view/kaitsu.html kaitsu]
| Kai Skiftesvik
| 2007-09-05 09:40:23
|-
| [http://maemo.org/profile/view/kaizendenki.html kaizendenki]
| Kevin Wright
| 2008-01-20 02:32:49
|-
| [http://maemo.org/profile/view/kajsa.html kajsa]
| Kajsa Anderson
| 2008-03-31 15:41:07
|-
| [http://maemo.org/profile/view/kajuna.html kajuna]
| `pedro rodriguez
| 2007-02-07 02:33:41
|-
| [http://maemo.org/profile/view/kakaroto.html kakaroto]
| Youness El Alaoui
| 2007-10-18 18:40:30
|-
| [http://maemo.org/profile/view/kakos.html kakos]
| Mark Eret
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/kalaakso.html kalaakso]
| Kari Laakso
| 2007-11-15 07:55:33
|-
| [http://maemo.org/profile/view/kaleaht.html kaleaht]
| Ahti Kalervo
| 2007-05-18 19:11:22
|-
| [http://maemo.org/profile/view/kaliatech.html kaliatech]
| Joshua Sanderson
| 2008-05-05 13:41:09
|-
| [http://maemo.org/profile/view/kalilac.html kalilac]
| Kalil de A. Carvalho
| 2008-05-13 23:40:38
|-
| [http://maemo.org/profile/view/kallma.html kallma]
| Marko Kallio
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/kaloz.html kaloz]
| Imre Kaloz
| 2007-10-18 19:40:41
|-
| [http://maemo.org/profile/view/kaltsi.html kaltsi]
| Juha Kallioinen
| 2007-05-18 19:14:45
|-
| [http://maemo.org/profile/view/kaltsix.html kaltsix]
| Juha Kallioinen
| 2007-11-15 07:55:55
|-
| [http://maemo.org/profile/view/kalyanmn.html kalyanmn]
| kalyan mn
| 2008-05-08 13:41:07
|-
| [http://maemo.org/profile/view/kamal3501.html kamal3501]
| kamal jaiswal
| 2007-11-28 17:22:00
|-
| [http://maemo.org/profile/view/kamalakar.html kamalakar]
| kamalakar garikina
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/kamaljaiswal.html kamaljaiswal]
| kamal jaiswal
| 2007-05-23 05:29:41
|-
| [http://maemo.org/profile/view/kamalwadhwa.html kamalwadhwa]
| kamal wadhwa
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/kameleau78.html kameleau78]
| Arnaud MASSIA
| 2007-11-15 07:56:05
|-
| [http://maemo.org/profile/view/kanabis.html kanabis]
| Andrew Gray
| 2007-11-16 17:46:36
|-
| [http://maemo.org/profile/view/kandalf.html kandalf]
| emanuele d'errico
| 2007-10-22 22:40:33
|-
| [http://maemo.org/profile/view/kangsz.html kangsz]
| kelvin kang
| 2007-05-18 19:12:05
|-
| [http://maemo.org/profile/view/kannangraja.html kannangraja]
| Kannan Raja
| 2008-01-07 23:40:57
|-
| [http://maemo.org/profile/view/kantu33.html kantu33]
| Carlos Cantu
| 2007-06-30 14:40:20
|-
| [http://maemo.org/profile/view/kapeesh.html kapeesh]
| kapeesh b
| 2007-07-03 04:40:10
|-
| [http://maemo.org/profile/view/kapikkar.html kapikkar]
| Kari Pikkarainen
| 2007-05-18 19:11:02
|-
| [http://maemo.org/profile/view/karafiat.html karafiat]
| László Karafiót
| 2008-01-19 23:41:08
|-
| [http://maemo.org/profile/view/karan25.html karan25]
| Umakaran Nemallan
| 2007-11-16 17:49:10
|-
| [http://maemo.org/profile/view/karatchov.html karatchov]
| Malek Boughattas
| 2008-01-10 11:41:14
|-
| [http://maemo.org/profile/view/karchie.html karchie]
| kent archie
| 2007-10-25 02:40:33
|-
| [http://maemo.org/profile/view/kareljansens.html kareljansens]
| Karel Jansens
| 2007-05-18 19:11:19
|-
| [http://maemo.org/profile/view/karento.html karento]
| Mika Karento
| 2007-11-16 17:46:39
|-
| [http://maemo.org/profile/view/karfai.html karfai]
| Don Kelly
| 2008-01-27 17:31:35
|-
| [http://maemo.org/profile/view/karhiaho.html karhiaho]
| Ismo Karhiaho
| 2008-05-10 03:41:07
|-
| [http://maemo.org/profile/view/karijackson.html karijackson]
| Kari Jackson
| 2007-05-18 19:10:58
|-
| [http://maemo.org/profile/view/kariok.html kariok]
| Kari Keinanen
| 2007-11-16 17:46:57
|-
| [http://maemo.org/profile/view/karlfenwick.html karlfenwick]
| karl fenwick
| 2007-11-16 17:49:37
|-
| [http://maemo.org/profile/view/karlrado.html karlrado]
| karl schultz
| 2007-11-16 17:47:25
|-
| [http://maemo.org/profile/view/karmapolice.html karmapolice]
| Heikki Salavirta
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/karnhack.html karnhack]
| ganluca dandrea
| 2007-11-16 17:50:19
|-
| [http://maemo.org/profile/view/karoliina.html karoliina]
| Karoliina Salminen
| 2007-05-18 19:14:24
|-
| [http://maemo.org/profile/view/karrade.html karrade]
| Jessvin Thomas
| 2007-12-11 17:40:44
|-
| [http://maemo.org/profile/view/karrih.html karrih]
| Karri Huhtanen
| 2007-12-18 05:40:56
|-
| [http://maemo.org/profile/view/karstenb.html karstenb]
| Karsten Bräckelmann
| 2008-05-02 16:41:13
|-
| [http://maemo.org/profile/view/karthik1129.html karthik1129]
| karthik Murugan
| 2008-06-09 10:31:11
|-
| [http://maemo.org/profile/view/karthikrams.html karthikrams]
| KArthik ram
| 2008-01-16 06:41:01
|-
| [http://maemo.org/profile/view/kasia.html kasia]
| Katarzyna Urbaniak
| 2007-10-28 17:40:36
|-
| [http://maemo.org/profile/view/kasmra.html kasmra]
| Sami Mäki
| 2008-02-19 09:31:01
|-
| [http://maemo.org/profile/view/kaspad.html kaspad]
| Esa Niemi
| 2007-10-16 10:40:25
|-
| [http://maemo.org/profile/view/katdu.html katdu]
| Kalpesh Desai
| 2007-08-15 07:40:22
|-
| [http://maemo.org/profile/view/kate.html kate]
| Kate Alhola
| 2007-05-21 13:43:15
|-
| [http://maemo.org/profile/view/katem.html katem]
| Kare Mueninghoff
| 2007-12-19 02:40:55
|-
| [http://maemo.org/profile/view/katerine.html katerine]
| katerine Alanis
| 2008-06-10 04:31:21
|-
| [http://maemo.org/profile/view/katiasilva.html katiasilva]
| Katia Silva
| 2008-02-15 01:31:06
|-
| [http://maemo.org/profile/view/katkatkat.html katkatkat]
| kat kat
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/katoung.html katoung]
| Ackara Em
| 2008-05-30 19:41:13
|-
| [http://maemo.org/profile/view/katta117.html katta117]
| lalitha katta
| 2007-11-16 17:47:47
|-
| [http://maemo.org/profile/view/katzj.html katzj]
| Jeremy Katz
| 2007-10-18 13:40:30
|-
| [http://maemo.org/profile/view/kavoth.html kavoth]
| Kristi Voth
| 2008-04-08 11:41:08
|-
| [http://maemo.org/profile/view/kawasaki.html kawasaki]
| Arto Kurvinen
| 2007-05-18 19:10:50
|-
| [http://maemo.org/profile/view/kaysievers.html kaysievers]
| Kay Sievers
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/kay_stark.html kay_stark]
| Kay Stark
| 2007-05-18 19:11:38
|-
| [http://maemo.org/profile/view/kazaflei822.html kazaflei822]
| wang leong lei
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/kazemoth.html kazemoth]
| Warren Kinman
| 2007-11-06 03:40:37
|-
| [http://maemo.org/profile/view/kazimirov.html kazimirov]
| Dmitry Kazimirov
| 2007-11-16 17:47:20
|-
| [http://maemo.org/profile/view/kazmadness.html kazmadness]
| kaster troy
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/kazrak.html kazrak]
| Brad Jones
| 2007-05-18 19:12:46
|-
| [http://maemo.org/profile/view/kazuoskk.html kazuoskk]
| Sidney Kawamura
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/kazuya.html kazuya]
| Kazuya Sakakihara
| 2008-01-13 17:41:26
|-
| [http://maemo.org/profile/view/kb0sei.html kb0sei]
| Robert McCarty
| 2007-12-17 02:40:56
|-
| [http://maemo.org/profile/view/kbarter.html kbarter]
| k barter
| 2007-05-18 19:12:24
|-
| [http://maemo.org/profile/view/kbateman.html kbateman]
| Kirk Bateman
| 2007-11-16 17:47:06
|-
| [http://maemo.org/profile/view/kbdnooni.html kbdnooni]
| Paul Hounslow
| 2007-12-13 09:40:51
|-
| [http://maemo.org/profile/view/kbensit.html kbensit]
| benny colon
| 2008-03-06 04:31:09
|-
| [http://maemo.org/profile/view/kbensitel.html kbensitel]
| Benny Jewl
| 2008-03-23 02:32:11
|-
| [http://maemo.org/profile/view/kbloom.html kbloom]
| Ken Bloom
| 2008-02-13 00:31:04
|-
| [http://maemo.org/profile/view/kbmetz.html kbmetz]
| Kevin M
| 2007-05-18 19:12:25
|-
| [http://maemo.org/profile/view/kbo7.html kbo7]
| kyle bowne
| 2007-11-16 17:48:33
|-
| [http://maemo.org/profile/view/kbomb623.html kbomb623]
| Keller Baum
| 2007-05-18 19:11:11
|-
| [http://maemo.org/profile/view/kbovs.html kbovs]
| Konstantin bovsunovskiy
| 2008-01-24 18:42:17
|-
| [http://maemo.org/profile/view/kboyse.html kboyse]
| kent boyse
| 2007-05-18 19:13:10
|-
| [http://maemo.org/profile/view/kburhardt.html kburhardt]
| Kris Burhardt
| 2007-05-17 20:10:26
|-
| [http://maemo.org/profile/view/kburnsmill.html kburnsmill]
| Keith Miller
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/kburtch.html kburtch]
| Kevin Burtch
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/kc2.html kc2]
| ken seto
| 2008-01-16 07:41:05
|-
| [http://maemo.org/profile/view/kc5rbq.html kc5rbq]
| Tracy Lane
| 2007-07-05 06:40:11
|-
| [http://maemo.org/profile/view/kcamnairb.html kcamnairb]
| Brian Mack
| 2007-11-28 15:43:18
|-
| [http://maemo.org/profile/view/kcarr224.html kcarr224]
| Karl Carr
| 2007-10-18 18:40:30
|-
| [http://maemo.org/profile/view/kcgr.html kcgr]
| Kevin Robison
| 2007-01-04 21:40:27
|-
| [http://maemo.org/profile/view/kchaitanyak.html kchaitanyak]
| krishna kalidindi
| 2007-11-16 17:47:47
|-
| [http://maemo.org/profile/view/kchan2888.html kchan2888]
| Ken Chan
| 2007-11-16 17:49:11
|-
| [http://maemo.org/profile/view/kciss.html kciss]
| Chris Bicnell
| 2007-05-18 19:12:33
|-
| [http://maemo.org/profile/view/kcmojo.html kcmojo]
| Scott Frei
| 2007-12-18 04:40:53
|-
| [http://maemo.org/profile/view/kcnjax.html kcnjax]
| Kevin Gowdy
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/kcome.html kcome]
| Harry Li
| 2007-10-25 07:40:35
|-
| [http://maemo.org/profile/view/kcott.html kcott]
| Kevin Cottingham
| 2008-01-01 02:41:09
|-
| [http://maemo.org/profile/view/kcoupe1.html kcoupe1]
| kenneth coupe
| 2008-05-16 17:41:25
|-
| [http://maemo.org/profile/view/kcrom.html kcrom]
| Terry Justice
| 2008-01-07 17:41:09
|-
| [http://maemo.org/profile/view/kd5uzz.html kd5uzz]
| Daniel Turner
| 2007-11-16 17:47:27
|-
| [http://maemo.org/profile/view/kday.html kday]
| Kevin Day
| 2007-12-25 22:41:45
|-
| [http://maemo.org/profile/view/kdbaumann.html kdbaumann]
| Kurt Baumann
| 2008-01-03 16:41:34
|-
| [http://maemo.org/profile/view/kdouglas.html kdouglas]
| Keith Douglas
| 2007-10-18 11:40:29
|-
| [http://maemo.org/profile/view/kdz328ci.html kdz328ci]
| Kyle Zinkler
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/ke6zuz.html ke6zuz]
| John Mock
| 2007-12-26 19:41:10
|-
| [http://maemo.org/profile/view/kebe.html kebe]
| Ed Kear
| 2007-06-30 01:40:08
|-
| [http://maemo.org/profile/view/keben.html keben]
| roger li
| 2007-11-16 17:46:56
|-
| [http://maemo.org/profile/view/kecsap.html kecsap]
| Csaba Kertész
| 2007-11-15 07:55:32
|-
| [http://maemo.org/profile/view/keesj.html keesj]
| Kees Jongenburger
| 2007-05-18 19:10:49
|-
| [http://maemo.org/profile/view/kefir.html kefir]
| Dmitry L
| 2007-11-28 15:43:43
|-
| [http://maemo.org/profile/view/kegawa2000.html kegawa2000]
| Kazuaki Egawa
| 2007-10-31 01:40:38
|-
| [http://maemo.org/profile/view/keichwa.html keichwa]
| Karl Eichwalder
| 2007-10-19 09:40:32
|-
| [http://maemo.org/profile/view/keihin.html keihin]
| Ron Thigpen
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/keirthomas.html keirthomas]
| Keir Thomas
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/keita94110.html keita94110]
| Pie Lam
| 2007-11-15 09:40:43
|-
| [http://maemo.org/profile/view/keithdarwent.html keithdarwent]
| Keith Darwent
| 2007-11-19 09:01:23
|-
| [http://maemo.org/profile/view/keithhearn.html keithhearn]
| Keith Hearn
| 2007-05-18 19:11:58
|-
| [http://maemo.org/profile/view/keithjones100.html keithjones100]
| Keith Jones
| 2008-06-07 12:31:14
|-
| [http://maemo.org/profile/view/keithmorrill.html keithmorrill]
| Keith Morrill
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/keithpreston.html keithpreston]
| Keith Preston
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/kelcon.html kelcon]
| Lukasz Keler
| 2008-01-31 17:32:13
|-
| [http://maemo.org/profile/view/keldog.html keldog]
| kel ly
| 2008-04-13 02:41:24
|-
| [http://maemo.org/profile/view/kelkabany.html kelkabany]
| Ken Elkabany
| 2008-03-17 08:31:01
|-
| [http://maemo.org/profile/view/kelvin.html kelvin]
| kelvin u
| 2008-01-05 22:41:02
|-
| [http://maemo.org/profile/view/kelvin1.html kelvin1]
| kelvin clark
| 2007-05-18 19:12:14
|-
| [http://maemo.org/profile/view/kelvinseabrook.html kelvinseabrook]
| Kelvin Seabrook
| 2008-05-22 02:41:08
|-
| [http://maemo.org/profile/view/kemba69.html kemba69]
| kemba heppard
| 2007-12-26 19:41:10
|-
| [http://maemo.org/profile/view/kemm.html kemm]
| Alexey Antipovsky
| 2007-12-23 19:41:32
|-
| [http://maemo.org/profile/view/kempja.html kempja]
| james kemp
| 2007-05-18 19:11:09
|-
| [http://maemo.org/profile/view/ken.html ken]
| Ken Cantwell
| 2008-01-01 00:40:54
|-
| [http://maemo.org/profile/view/ken-xchen.html ken-xchen]
| ken chen
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/ken5409.html ken5409]
| hai hua
| 2007-05-18 19:12:41
|-
| [http://maemo.org/profile/view/ken770.html ken770]
| Ken Fletcher
| 2007-05-18 19:10:59
|-
| [http://maemo.org/profile/view/kenaaron.html kenaaron]
| Ken Aaron
| 2008-03-22 00:31:02
|-
| [http://maemo.org/profile/view/kenacer.html kenacer]
| Ken Ace
| 2008-01-12 00:41:00
|-
| [http://maemo.org/profile/view/kenay74.html kenay74]
| ken ay
| 2008-04-12 11:41:06
|-
| [http://maemo.org/profile/view/kenbaldwin.html kenbaldwin]
| Ken Baldwin
| 2007-08-31 03:40:23
|-
| [http://maemo.org/profile/view/kenbeltran.html kenbeltran]
| Ken Beltran
| 2008-02-07 17:33:47
|-
| [http://maemo.org/profile/view/kender.html kender]
| kender sec
| 2007-05-18 19:10:31
|-
| [http://maemo.org/profile/view/kenelbo.html kenelbo]
| ken herman
| 2007-05-18 19:13:18
|-
| [http://maemo.org/profile/view/kenelm.html kenelm]
| Kenelm McKinney
| 2007-05-18 19:14:47
|-
| [http://maemo.org/profile/view/kenhwilley.html kenhwilley]
| Ken Willey
| 2008-03-04 23:30:58
|-
| [http://maemo.org/profile/view/kenipod.html kenipod]
| le ken
| 2007-05-18 19:11:45
|-
| [http://maemo.org/profile/view/kenley.html kenley]
| Imre Kelényi
| 2007-11-16 17:48:10
|-
| [http://maemo.org/profile/view/kennu.html kennu]
| Kenneth Falck
| 2008-01-05 13:40:55
|-
| [http://maemo.org/profile/view/kennycrudup.html kennycrudup]
| Kenneth Crudup
| 2007-07-01 03:40:07
|-
| [http://maemo.org/profile/view/kennykaiyinyu.html kennykaiyinyu]
| Kenny YU
| 2008-01-27 09:31:08
|-
| [http://maemo.org/profile/view/kenny_yang.html kenny_yang]
| kenny yang
| 2007-11-01 12:40:39
|-
| [http://maemo.org/profile/view/kenoscully.html kenoscully]
| Ken Scully
| 2007-05-18 19:14:44
|-
| [http://maemo.org/profile/view/kenpresley.html kenpresley]
| Ken Presley
| 2008-04-04 23:41:04
|-
| [http://maemo.org/profile/view/kenroy.html kenroy]
| Kenroy Harrison
| 2007-05-18 19:13:33
|-
| [http://maemo.org/profile/view/kent.html kent]
| evet walk
| 2008-01-14 18:43:05
|-
| [http://maemo.org/profile/view/kentmore.html kentmore]
| winston simth
| 2008-01-14 18:43:07
|-
| [http://maemo.org/profile/view/kenttami.html kenttami]
| Tommi Kenttamies
| 2008-01-31 14:34:15
|-
| [http://maemo.org/profile/view/kenvandine.html kenvandine]
| Ken VanDine
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/kepler.html kepler]
| Keijo Lähetkangas
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/keppieboy.html keppieboy]
| matthew weiner
| 2007-12-29 20:40:57
|-
| [http://maemo.org/profile/view/kerbe.html kerbe]
| Joonas Hämäläinen
| 2007-10-25 16:40:35
|-
| [http://maemo.org/profile/view/kernelpanic.html kernelpanic]
| charles werbick
| 2007-12-28 08:41:11
|-
| [http://maemo.org/profile/view/kerryfox.html kerryfox]
| kerry teverbaugh
| 2008-03-25 02:31:07
|-
| [http://maemo.org/profile/view/kersing.html kersing]
| Jac Kersing
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/kerwoodderby.html kerwoodderby]
| Marshall Jose
| 2007-05-18 19:12:33
|-
| [http://maemo.org/profile/view/kesitter.html kesitter]
| keith sitter
| 2008-01-23 04:31:14
|-
| [http://maemo.org/profile/view/keskju.html keskju]
| Juha Matti Keskinen
| 2007-05-23 05:29:42
|-
| [http://maemo.org/profile/view/ketralnis.html ketralnis]
| David King
| 2007-06-19 07:10:38
|-
| [http://maemo.org/profile/view/kevers.html kevers]
| Kevin Roper
| 2008-04-27 17:41:09
|-
| [http://maemo.org/profile/view/kevflan.html kevflan]
| kevin flnagan
| 2007-04-05 15:25:37
|-
| [http://maemo.org/profile/view/kevin.html kevin]
| Kevin Zhang
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/kevin999.html kevin999]
| kevin smith
| 2007-11-04 20:40:37
|-
| [http://maemo.org/profile/view/kevinb.html kevinb]
| Kevin Baker
| 2007-10-27 07:40:38
|-
| [http://maemo.org/profile/view/kevincollateral.html kevincollateral]
| kevin adams
| 2007-07-07 02:40:39
|-
| [http://maemo.org/profile/view/kevinf.html kevinf]
| Kevin Feyrer
| 2008-02-05 14:31:23
|-
| [http://maemo.org/profile/view/kevinhilman.html kevinhilman]
| Kevin Hilman
| 2007-11-15 07:55:00
|-
| [http://maemo.org/profile/view/kevinleake01.html kevinleake01]
| Kevin Leake
| 2007-05-29 09:30:09
|-
| [http://maemo.org/profile/view/kevinohio.html kevinohio]
| kevin lambrych
| 2008-01-15 00:40:56
|-
| [http://maemo.org/profile/view/kevins3845.html kevins3845]
| kevin snelson
| 2007-11-16 17:47:37
|-
| [http://maemo.org/profile/view/kevinverma.html kevinverma]
| Kevin Verma
| 2007-05-18 19:10:55
|-
| [http://maemo.org/profile/view/kevinwazs.html kevinwazs]
| keevin wen
| 2008-03-15 02:31:07
|-
| [http://maemo.org/profile/view/kevinweiler.html kevinweiler]
| Kevin Weiler
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/kevkev.html kevkev]
| Kevin Kempton
| 2007-12-26 02:41:23
|-
| [http://maemo.org/profile/view/kevmille.html kevmille]
| Kevin Miller
| 2007-12-25 07:41:09
|-
| [http://maemo.org/profile/view/kevoland.html kevoland]
| kevin moore
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/keyfo.html keyfo]
| keith chan
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/keymastr.html keymastr]
| keith barineau
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/keyrn.html keyrn]
| Petro A.
| 2007-04-05 15:25:36
|-
| [http://maemo.org/profile/view/keysersoze.html keysersoze]
| Daniel Fox
| 2007-10-23 13:40:34
|-
| [http://maemo.org/profile/view/kg4gyt.html kg4gyt]
| Phillip Fenstermacher
| 2007-05-18 19:11:36
|-
| [http://maemo.org/profile/view/kgb10a8.html kgb10a8]
| Kaj G Backas
| 2007-06-12 05:40:38
|-
| [http://maemo.org/profile/view/kgingeri.html kgingeri]
| Karl Gingerich
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/kgorelov.html kgorelov]
| Kirill Gorelov
| 2007-12-11 16:25:06
|-
| [http://maemo.org/profile/view/kgriggs.html kgriggs]
| Kevan Griggs
| 2007-05-18 19:12:50
|-
| [http://maemo.org/profile/view/kgronholm.html kgronholm]
| Kaj Grönholm
| 2008-05-16 07:41:15
|-
| [http://maemo.org/profile/view/kgw.html kgw]
| Ken Walker
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/khadgaray.html khadgaray]
| Ritesh Khadgaray
| 2007-10-19 21:40:32
|-
| [http://maemo.org/profile/view/khaled.html khaled]
| Khaled Hosny
| 2007-10-25 23:40:26
|-
| [http://maemo.org/profile/view/khaledm65.html khaledm65]
| khaled mougharbel
| 2008-03-25 11:31:02
|-
| [http://maemo.org/profile/view/khalicl13.html khalicl13]
| Khalid Harun
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/khalid.html khalid]
| Khalid Kamal
| 2008-04-12 23:41:08
|-
| [http://maemo.org/profile/view/khamel.html khamel]
| Rocco Filippo Zanni
| 2007-10-22 08:40:36
|-
| [http://maemo.org/profile/view/khan2.html khan2]
| s khan
| 2007-07-01 17:40:07
|-
| [http://maemo.org/profile/view/khaoula83.html khaoula83]
| khaoula G
| 2008-05-15 18:41:08
|-
| [http://maemo.org/profile/view/khawkins.html khawkins]
| Kevin Hawkins
| 2008-01-14 23:41:19
|-
| [http://maemo.org/profile/view/khedara.html khedara]
| Khedara Ariyaratne
| 2008-04-02 20:41:05
|-
| [http://maemo.org/profile/view/khertan.html khertan]
| Benoît HERVIER
| 2007-07-06 08:40:09
|-
| [http://maemo.org/profile/view/khilman.html khilman]
| Kevin Hilman
| 2007-11-30 10:49:34
|-
| [http://maemo.org/profile/view/khm007.html khm007]
| Karl-Heinz Maus
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/khoa112.html khoa112]
| Khoa Dai
| 2007-11-16 17:46:45
|-
| [http://maemo.org/profile/view/kholman128.html kholman128]
| Kirk Holman
| 2007-06-20 04:40:19
|-
| [http://maemo.org/profile/view/khrys.html khrys]
| Christian Valleise
| 2008-03-04 15:31:02
|-
| [http://maemo.org/profile/view/khudyakov.html khudyakov]
| Vyacheslav Khudyakov
| 2008-01-21 20:33:11
|-
| [http://maemo.org/profile/view/kh_naba.html kh_naba]
| Naba Kumar
| 2007-11-16 17:49:05
|-
| [http://maemo.org/profile/view/kianalee.html kianalee]
| Vanessa Phonsavath
| 2007-05-18 19:10:38
|-
| [http://maemo.org/profile/view/kiannalee.html kiannalee]
| Kianna Lee
| 2007-05-18 19:12:29
|-
| [http://maemo.org/profile/view/kiatoa.html kiatoa]
| Matt Welland
| 2007-12-19 06:41:25
|-
| [http://maemo.org/profile/view/kibbycbe.html kibbycbe]
| Jay Basu
| 2008-02-14 12:01:19
|-
| [http://maemo.org/profile/view/kiccop.html kiccop]
| Enrico P
| 2007-10-23 00:40:31
|-
| [http://maemo.org/profile/view/kichum.html kichum]
| Krishnakumar Madathil Kovilakam
| 2008-02-27 14:31:10
|-
| [http://maemo.org/profile/view/kickinmhl.html kickinmhl]
| Corey Malcom
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/kidrev.html kidrev]
| James King
| 2007-08-18 23:40:06
|-
| [http://maemo.org/profile/view/kihamala.html kihamala]
| Kimmo Hämäläinen
| 2007-05-18 19:11:52
|-
| [http://maemo.org/profile/view/kiilerix.html kiilerix]
| Mads Kiilerich
| 2007-10-14 14:40:09
|-
| [http://maemo.org/profile/view/kikidonk.html kikidonk]
| Raphaël Slinckx
| 2007-10-19 15:40:31
|-
| [http://maemo.org/profile/view/kileppal.html kileppal]
| Kimmo Leppälä
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/killabyte.html killabyte]
| Gerardo García Peña
| 2008-03-04 12:31:00
|-
| [http://maemo.org/profile/view/killbot.html killbot]
| l p
| 2007-11-16 17:48:15
|-
| [http://maemo.org/profile/view/killerkiwi.html killerkiwi]
| Killer Kiwi
| 2008-05-15 22:41:59
|-
| [http://maemo.org/profile/view/killeus.html killeus]
| Mateus Assis Maximo de Lima
| 2008-02-18 20:31:02
|-
| [http://maemo.org/profile/view/killfill.html killfill]
| Phillip Neumann
| 2007-11-28 15:43:27
|-
| [http://maemo.org/profile/view/killr1232.html killr1232]
| Ryan McLeskey
| 2007-10-31 01:40:38
|-
| [http://maemo.org/profile/view/killshot.html killshot]
| ;klgbog ghji;gh
| 2008-01-07 11:40:53
|-
| [http://maemo.org/profile/view/kilokat7.html kilokat7]
| Tim Tromp
| 2008-01-27 14:31:36
|-
| [http://maemo.org/profile/view/kilroy155.html kilroy155]
| Russell Sagraves
| 2008-01-29 02:31:09
|-
| [http://maemo.org/profile/view/kilroywuzhere.html kilroywuzhere]
| Ken Rosman
| 2007-11-28 15:43:36
|-
| [http://maemo.org/profile/view/kilyx.html kilyx]
| Valerio Del Meglio
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/kimak_j.html kimak_j]
| kate gavrilova
| 2008-02-14 12:01:19
|-
| [http://maemo.org/profile/view/kimbadie.html kimbadie]
| kimberly rodrigues
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/kimerleerice.html kimerleerice]
| Kimerlee Rice
| 2007-11-16 17:46:35
|-
| [http://maemo.org/profile/view/kimhuynh.html kimhuynh]
| kim huynh
| 2007-11-28 15:43:35
|-
| [http://maemo.org/profile/view/kimitake.html kimitake]
| Kimitake .
| 2007-05-18 19:11:59
|-
| [http://maemo.org/profile/view/kimj.html kimj]
| Jinn Kim
| 2007-10-21 05:40:31
|-
| [http://maemo.org/profile/view/kimjscott.html kimjscott]
| Kim Scott
| 2007-06-09 00:57:18
|-
| [http://maemo.org/profile/view/kimju.html kimju]
| Kimmo Jukarainen
| 2007-10-24 11:40:34
|-
| [http://maemo.org/profile/view/kimmitt.html kimmitt]
| Alan Kimmitt
| 2007-12-31 16:40:57
|-
| [http://maemo.org/profile/view/kinell.html kinell]
| Glen Knott
| 2007-07-10 22:40:07
|-
| [http://maemo.org/profile/view/king2k3k4.html king2k3k4]
| Ferdinand Morelos
| 2008-04-30 14:41:06
|-
| [http://maemo.org/profile/view/kingdark.html kingdark]
| king of linux linux fans
| 2008-01-02 07:41:00
|-
| [http://maemo.org/profile/view/kingkong.html kingkong]
| king kong
| 2007-11-16 17:47:25
|-
| [http://maemo.org/profile/view/kingtbone.html kingtbone]
| ken olsen
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/kinik.html kinik]
| Gary Lasker
| 2007-11-16 17:47:07
|-
| [http://maemo.org/profile/view/kinkki.html kinkki]
| Jussi Pennanen
| 2007-11-15 07:55:51
|-
| [http://maemo.org/profile/view/kinnerc.html kinnerc]
| Doc Kinne
| 2008-05-21 02:41:06
|-
| [http://maemo.org/profile/view/kino.html kino]
| Jukka Alander
| 2007-11-19 09:01:25
|-
| [http://maemo.org/profile/view/kip.html kip]
| Kip Warner
| 2008-03-21 08:31:02
|-
| [http://maemo.org/profile/view/kir.html kir]
| Kyryl Bilokurov
| 2007-10-22 07:40:35

|-
| [http://maemo.org/profile/view/kiran.html kiran]
| kiran TG
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/kiran174.html kiran174]
| Kiran konda
| 2007-11-15 10:40:45
|-
| [http://maemo.org/profile/view/kiranchand.html kiranchand]
| kiran chand
| 2007-05-23 05:29:45
|-
| [http://maemo.org/profile/view/kirbyn.html kirbyn]
| Jorge Marin
| 2008-01-27 11:31:15
|-
| [http://maemo.org/profile/view/kircshe.html kircshe]
| a kirsilla
| 2007-11-28 15:43:36
|-
| [http://maemo.org/profile/view/kirienko.html kirienko]
| Yury Kirienko
| 2007-10-19 08:40:31
|-
| [http://maemo.org/profile/view/kisap.html kisap]
| Pasi Kankaanpaa
| 2007-06-22 09:40:09
|-
| [http://maemo.org/profile/view/kishawi.html kishawi]
| adel kishawi
| 2007-11-16 17:46:38
|-
| [http://maemo.org/profile/view/kismore.html kismore]
| kyle sp
| 2008-02-25 11:30:57
|-
| [http://maemo.org/profile/view/kiss1024.html kiss1024]
| Seungsik Kwak
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/kissarpb4.html kissarpb4]
| samuel sarpong
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/kisselew.html kisselew]
| miguel k
| 2008-05-18 23:41:13
|-
| [http://maemo.org/profile/view/kissingwolf.html kissingwolf]
| Kevin zou
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/kissmate.html kissmate]
| Kiss Mate
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/kitamy.html kitamy]
| yasuko kitamura
| 2007-06-26 23:40:06
|-
| [http://maemo.org/profile/view/kittekaak.html kittekaak]
| Christian Kaak
| 2008-01-13 15:42:22
|-
| [http://maemo.org/profile/view/kittyle.html kittyle]
| Bob Kaye
| 2007-12-25 01:41:39
|-
| [http://maemo.org/profile/view/kitzj0.html kitzj0]
| Joseph Kitzmiller
| 2007-08-20 23:40:10
|-
| [http://maemo.org/profile/view/kivitalo.html kivitalo]
| Juha Kivitalo
| 2008-03-16 13:31:02
|-
| [http://maemo.org/profile/view/kiwav.html kiwav]
| gabriele pacetti
| 2007-10-22 13:40:34
|-
| [http://maemo.org/profile/view/kj052030.html kj052030]
| Ken Johnson
| 2007-10-18 20:40:33
|-
| [http://maemo.org/profile/view/kjansky1.html kjansky1]
| A . C.
| 2007-05-18 19:12:22
|-
| [http://maemo.org/profile/view/kjauhiai.html kjauhiai]
| Kari Jauhiainen
| 2007-10-26 07:40:36
|-
| [http://maemo.org/profile/view/kjbleau.html kjbleau]
| Ken Bleau
| 2007-12-30 15:41:09
|-
| [http://maemo.org/profile/view/kjetilho.html kjetilho]
| Kjetil Torgrim Homme
| 2007-05-18 19:11:05
|-
| [http://maemo.org/profile/view/kjigy.html kjigy]
| Kevin Igoe
| 2008-03-18 01:31:15
|-
| [http://maemo.org/profile/view/kjlynn.html kjlynn]
| Kevin Lynn
| 2007-05-18 19:14:00
|-
| [http://maemo.org/profile/view/kjones.html kjones]
| Keith Jones
| 2007-10-20 11:40:33
|-
| [http://maemo.org/profile/view/kkashwin.html kkashwin]
| Ashwin Kumar
| 2008-04-29 19:41:08
|-
| [http://maemo.org/profile/view/kkbadhwar.html kkbadhwar]
| monty badhwar
| 2007-12-30 15:41:09
|-
| [http://maemo.org/profile/view/kkbusk.html kkbusk]
| Kyle Busque
| 2008-04-26 02:40:05
|-
| [http://maemo.org/profile/view/kkitts.html kkitts]
| Kevin Kitts
| 2007-07-06 14:40:15
|-
| [http://maemo.org/profile/view/kkp.html kkp]
| krasimir petrov
| 2007-11-28 15:43:35
|-
| [http://maemo.org/profile/view/kkpaul.html kkpaul]
| Jan W.
| 2007-05-18 19:12:09
|-
| [http://maemo.org/profile/view/kksrini.html kksrini]
| Srinivasan Kumarasamy
| 2008-06-10 12:31:15
|-
| [http://maemo.org/profile/view/kkv.html kkv]
| Kirill Krinkin
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/klaasjan.html klaasjan]
| Klaasjan Brand
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/klaiberth.html klaiberth]
| Klaiberth J
| 2008-05-05 18:41:53
|-
| [http://maemo.org/profile/view/klancast.html klancast]
| Kevin Lancaster
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/klapskalli.html klapskalli]
| Tim Sievers
| 2007-11-28 15:43:43
|-
| [http://maemo.org/profile/view/klatham.html klatham]
| Ken Latham
| 2008-01-20 23:32:23
|-
| [http://maemo.org/profile/view/klausanderson.html klausanderson]
| Klaus Anderson
| 2007-05-18 19:10:49
|-
| [http://maemo.org/profile/view/klausf.html klausf]
| Klaus Foerster
| 2007-12-27 01:41:45
|-
| [http://maemo.org/profile/view/klausr.html klausr]
| Klaus Rotter
| 2007-05-18 19:10:54
|-
| [http://maemo.org/profile/view/klbostee.html klbostee]
| Klaas Bosteels
| 2007-10-19 07:40:31
|-
| [http://maemo.org/profile/view/klbrun.html klbrun]
| Chris Vail
| 2007-07-12 10:40:16
|-
| [http://maemo.org/profile/view/klchng.html klchng]
| kl chng
| 2007-11-16 17:49:27
|-
| [http://maemo.org/profile/view/kleetc.html kleetc]
| Kelvin Lee
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/klein_kreng.html klein_kreng]
| elaine leblanc
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/klf965.html klf965]
| Kelly Accorso
| 2007-11-16 17:49:14
|-
| [http://maemo.org/profile/view/klimgyt.html klimgyt]
| G Klimgyt
| 2008-01-25 12:31:15
|-
| [http://maemo.org/profile/view/klix.html klix]
| gil forcada
| 2007-05-18 19:11:41
|-
| [http://maemo.org/profile/view/klizmata.html klizmata]
| Kalin Daskalov
| 2007-10-30 08:41:02
|-
| [http://maemo.org/profile/view/kllindem.html kllindem]
| klaus lindemann
| 2008-01-26 20:32:43
|-
| [http://maemo.org/profile/view/klpeders.html klpeders]
| Klaus Pedersen
| 2007-11-16 17:47:30
|-
| [http://maemo.org/profile/view/km04.html km04]
| Miles Strombach
| 2007-06-28 06:40:06
|-
| [http://maemo.org/profile/view/kmaisch.html kmaisch]
| Patrick Rieder
| 2007-12-25 13:41:04
|-
| [http://maemo.org/profile/view/kmajanen.html kmajanen]
| kaj majanen
| 2007-05-18 19:10:48
|-
| [http://maemo.org/profile/view/kmanavalan.html kmanavalan]
| Manavalan Krishnan
| 2007-11-16 17:48:54
|-
| [http://maemo.org/profile/view/kmartell.html kmartell]
| k martell
| 2008-05-22 05:41:07
|-
| [http://maemo.org/profile/view/kmccarn.html kmccarn]
| Kevin McCarn
| 2007-12-11 16:26:05
|-
| [http://maemo.org/profile/view/kmcnall.html kmcnall]
| Kevin McNall
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/kmerenkov.html kmerenkov]
| Konstantin Merenkov
| 2007-07-20 20:40:18
|-
| [http://maemo.org/profile/view/kmikic.html kmikic]
| KRESIMIR MIKIC
| 2008-02-10 07:31:01
|-
| [http://maemo.org/profile/view/kmugitani.html kmugitani]
| Kohhei Mugitani
| 2007-06-19 07:10:38
|-
| [http://maemo.org/profile/view/kmx22.html kmx22]
| Robin Thunell
| 2008-04-02 12:41:08
|-
| [http://maemo.org/profile/view/knapinski.html knapinski]
| Michal Knapinski
| 2007-05-29 09:30:38
|-
| [http://maemo.org/profile/view/knchris.html knchris]
| Kevin Christiansen
| 2007-11-16 17:47:25
|-
| [http://maemo.org/profile/view/knicks48.html knicks48]
| Keith Wright
| 2008-01-17 12:41:11
|-
| [http://maemo.org/profile/view/knirch.html knirch]
| Thomas Nilsson
| 2007-10-18 19:40:42
|-
| [http://maemo.org/profile/view/kniveton.html kniveton]
| T.J. Kniveton
| 2007-10-22 01:40:37
|-
| [http://maemo.org/profile/view/knopkern.html knopkern]
| Octavi Font Sola
| 2007-06-23 18:40:07
|-
| [http://maemo.org/profile/view/knorby.html knorby]
| Karl Norby
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/knothe.html knothe]
| Dennis Knothe
| 2008-06-07 07:31:32
|-
| [http://maemo.org/profile/view/knotsew.html knotsew]
| dan stewat
| 2008-02-19 04:31:06
|-
| [http://maemo.org/profile/view/knowsearch.html knowsearch]
| Sergio R
| 2008-02-17 10:30:59
|-
| [http://maemo.org/profile/view/kny.html kny]
| Morten Aarøe
| 2007-12-21 20:41:54
|-
| [http://maemo.org/profile/view/koad.html koad]
| Nicholas Kiraly
| 2007-11-16 17:47:44
|-
| [http://maemo.org/profile/view/kobak.html kobak]
| Balazs Koren
| 2007-10-18 20:40:33
|-
| [http://maemo.org/profile/view/kocbach.html kocbach]
| Ladislav Kocbach
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/kockers.html kockers]
| j r
| 2007-05-18 19:10:28
|-
| [http://maemo.org/profile/view/kodos.html kodos]
| D Yeoman
| 2008-02-24 04:30:56
|-
| [http://maemo.org/profile/view/koen.html koen]
| Koen Kooi
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/koenigsson.html koenigsson]
| Karl-König Königsson
| 2007-10-27 22:41:30
|-
| [http://maemo.org/profile/view/koka4.html koka4]
| igor kokoshkin
| 2008-05-27 22:41:14
|-
| [http://maemo.org/profile/view/kokart.html kokart]
| Alfredo Soto Gomez
| 2007-05-18 19:12:12
|-
| [http://maemo.org/profile/view/kokegulper.html kokegulper]
| Remo-tito Aguilar
| 2008-01-02 07:40:59
|-
| [http://maemo.org/profile/view/kokler.html kokler]
| MTX Cocaine
| 2007-11-16 17:47:20
|-
| [http://maemo.org/profile/view/koklite.html koklite]
| lite kok
| 2008-05-29 08:41:08
|-
| [http://maemo.org/profile/view/kokoro.html kokoro]
| Richard de Koster
| 2007-06-27 02:40:14
|-
| [http://maemo.org/profile/view/kola123.html kola123]
| Jay Sam
| 2007-11-15 07:55:22
|-
| [http://maemo.org/profile/view/kolja.html kolja]
| Kalle Koljander
| 2008-03-15 16:31:05
|-
| [http://maemo.org/profile/view/kolli_raghava.html kolli_raghava]
| Raghava Reddy K
| 2007-10-25 14:40:34
|-
| [http://maemo.org/profile/view/kolyan2k.html kolyan2k]
| Ilya Yeliseyev
| 2008-02-08 03:32:11
|-
| [http://maemo.org/profile/view/komarov.html komarov]
| Nikolay Komsrov
| 2007-06-26 14:40:13
|-
| [http://maemo.org/profile/view/kondor.html kondor]
| Andrew Sichevoi
| 2008-03-13 08:31:06
|-
| [http://maemo.org/profile/view/kondor85.html kondor85]
| Edward Kondratiev
| 2007-05-18 19:12:55
|-
| [http://maemo.org/profile/view/kong.html kong]
| Kong Chart
| 2008-05-23 08:41:08
|-
| [http://maemo.org/profile/view/konichiwamonsta.html konichiwamonsta]
| Marco Michna
| 2007-10-22 11:40:34
|-
| [http://maemo.org/profile/view/kons.html kons]
| Konstantin Werkner
| 2008-02-02 20:31:01
|-
| [http://maemo.org/profile/view/kontola.html kontola]
| Kalervo Kontola
| 2008-02-11 14:32:22
|-
| [http://maemo.org/profile/view/konttori.html konttori]
| Urho Konttori
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/kooda.html kooda]
| K K
| 2007-11-28 17:21:44
|-
| [http://maemo.org/profile/view/kookoo.html kookoo]
| Kim Kallinen
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/koolmikee27.html koolmikee27]
| michael banks
| 2008-05-24 19:41:13
|-
| [http://maemo.org/profile/view/koos.html koos]
| Koos Vriezen
| 2007-05-18 19:13:04
|-
| [http://maemo.org/profile/view/kopla.html kopla]
| Juha P
| 2008-06-10 07:31:11
|-
| [http://maemo.org/profile/view/kor05rus.html kor05rus]
| Ivan Korzhenevsky
| 2008-04-04 09:41:05
|-
| [http://maemo.org/profile/view/korc.html korc]
| Andrés Mauricio Correa N
| 2007-05-18 19:10:30
|-
| [http://maemo.org/profile/view/koreanego.html koreanego]
| terry bristol
| 2007-05-18 19:13:17
|-
| [http://maemo.org/profile/view/korede898.html korede898]
| kakaka aiaiai
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/korlaplankton.html korlaplankton]
| Sean Murphy
| 2008-01-17 18:51:13
|-
| [http://maemo.org/profile/view/koroshiya.html koroshiya]
| Koroshiya Ichi
| 2008-02-21 23:30:58
|-
| [http://maemo.org/profile/view/korovkin.html korovkin]
| Dmitriy Korovkin
| 2007-10-27 02:40:34
|-
| [http://maemo.org/profile/view/korpios.html korpios]
| Tom Tobin
| 2007-10-17 22:40:27
|-
| [http://maemo.org/profile/view/korzno.html korzno]
| Konstantin Bulanov
| 2008-03-05 14:30:31
|-
| [http://maemo.org/profile/view/kos0177.html kos0177]
| Sergey Konko
| 2007-06-08 13:37:19
|-
| [http://maemo.org/profile/view/kosebay.html kosebay]
| Serdar Köse
| 2007-12-27 12:41:26
|-
| [http://maemo.org/profile/view/kosmic.html kosmic]
| Etienne Chenard
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/kosola.html kosola]
| Matti Kosola
| 2007-07-05 09:40:15
|-
| [http://maemo.org/profile/view/kosse.html kosse]
| Karsten Kosmala
| 2007-05-18 19:13:55
|-
| [http://maemo.org/profile/view/kot-kota.html kot-kota]
| kot kota
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/kotczarny.html kotczarny]
| Kot Czarny
| 2008-03-31 09:41:05
|-
| [http://maemo.org/profile/view/kouchin.html kouchin]
| Artem Kouchin
| 2008-03-02 20:31:06
|-
| [http://maemo.org/profile/view/kovalchek.html kovalchek]
| stanislav stanislav
| 2008-04-24 04:41:06
|-
| [http://maemo.org/profile/view/kovalychuk.html kovalychuk]
| Piter Kovalychuk
| 2007-05-18 19:12:19
|-
| [http://maemo.org/profile/view/kovanenta.html kovanenta]
| Tapio Kovanen
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/kozmickid.html kozmickid]
| Darrell McCreary
| 2007-05-18 19:13:56
|-
| [http://maemo.org/profile/view/kozmickid69.html kozmickid69]
| Darrell McCreary
| 2008-02-11 07:31:29
|-
| [http://maemo.org/profile/view/kozmoe.html kozmoe]
| Aaron Randolph jr
| 2007-11-16 17:47:19
|-
| [http://maemo.org/profile/view/kozuch82.html kozuch82]
| Jan Kucera
| 2007-11-16 17:49:04
|-
| [http://maemo.org/profile/view/kp4djt.html kp4djt]
| william hast
| 2007-12-15 19:43:24
|-
| [http://maemo.org/profile/view/kpel.html kpel]
| Kostas Peletidis
| 2007-11-16 17:49:24
|-
| [http://maemo.org/profile/view/kperala.html kperala]
| Kalle Perälä
| 2007-05-18 19:13:03
|-
| [http://maemo.org/profile/view/kperoni.html kperoni]
| kevin peroni
| 2007-11-15 07:56:02
|-
| [http://maemo.org/profile/view/kpollari.html kpollari]
| Kermit Pollari
| 2008-01-24 14:31:41
|-
| [http://maemo.org/profile/view/kpsledge.html kpsledge]
| Kris Sledge
| 2008-02-22 21:31:01
|-
| [http://maemo.org/profile/view/kpvk.html kpvk]
| Venkatakrishnan Kannan
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/kpyogendran.html kpyogendran]
| yogendran kasi perumal
| 2007-11-16 17:47:44
|-
| [http://maemo.org/profile/view/kralisec.html kralisec]
| Laurent 
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/kramey.html kramey]
| shelly logue
| 2008-02-02 06:31:49
|-
| [http://maemo.org/profile/view/krashpd.html krashpd]
| jay hovland
| 2007-11-16 17:46:57
|-
| [http://maemo.org/profile/view/krazybat.html krazybat]
| Krazy BAT
| 2008-03-22 12:31:02
|-
| [http://maemo.org/profile/view/krbvroc1.html krbvroc1]
| Ken Bass
| 2007-12-21 19:41:41
|-
| [http://maemo.org/profile/view/krems.html krems]
| albert krems
| 2008-05-29 03:41:11
|-
| [http://maemo.org/profile/view/krenem00.html krenem00]
| Milan Krenek
| 2007-11-16 17:47:25
|-
| [http://maemo.org/profile/view/krever.html krever]
| Al Krever
| 2007-05-18 19:14:13
|-
| [http://maemo.org/profile/view/kris.html kris]
| Kristian Rietveld
| 2007-05-18 19:11:27
|-
| [http://maemo.org/profile/view/krischan.html krischan]
| Krischan Keitsch
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/krischan76.html krischan76]
| krischan keitsch
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/krish.html krish]
| krisnil gounder
| 2008-02-02 23:33:02
|-
| [http://maemo.org/profile/view/krisse.html krisse]
| Krisse Juorunen
| 2007-10-19 09:40:31
|-
| [http://maemo.org/profile/view/krivas.html krivas]
| Mike Trkal
| 2008-05-23 17:41:13
|-
| [http://maemo.org/profile/view/kroemerk.html kroemerk]
| kathy Kroemer
| 2007-12-19 03:41:02
|-
| [http://maemo.org/profile/view/krojdest.html krojdest]
| kosta rojdest
| 2007-12-19 06:41:27
|-
| [http://maemo.org/profile/view/krokr.html krokr]
| Reg Day
| 2007-06-13 08:30:25
|-
| [http://maemo.org/profile/view/kromo.html kromo]
| Victor Toni
| 2008-03-09 13:31:02
|-
| [http://maemo.org/profile/view/krsnad.html krsnad]
| Krishna Dayanidhi
| 2007-11-16 17:49:37
|-
| [http://maemo.org/profile/view/krum.html krum]
| Vladimir Krumstein
| 2007-08-25 11:40:22
|-
| [http://maemo.org/profile/view/krunizm.html krunizm]
| khairunizam mohd nordin
| 2008-01-25 08:31:01
|-
| [http://maemo.org/profile/view/krushr.html krushr]
| Winston Weinert
| 2008-01-31 01:31:21
|-
| [http://maemo.org/profile/view/kryno.html kryno]
| kryno kryno
| 2008-04-30 19:41:09
|-
| [http://maemo.org/profile/view/krys2fur.html krys2fur]
| krys2 fur
| 2007-05-18 19:13:29
|-
| [http://maemo.org/profile/view/kryzystian.html kryzystian]
| john doe
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/krzsas.html krzsas]
| Krzysztof Sasiak
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/krzysiekdrozd.html krzysiekdrozd]
| Krzysztof Drozd
| 2008-02-28 09:30:59
|-
| [http://maemo.org/profile/view/krzysiekskreta.html krzysiekskreta]
| Krzysztof Skreta
| 2007-11-16 17:47:04
|-
| [http://maemo.org/profile/view/krzysztofdrozd.html krzysztofdrozd]
| Krzysztof Drozd
| 2008-05-03 10:41:12
|-
| [http://maemo.org/profile/view/ksantas.html ksantas]
| kostas santas
| 2008-04-11 13:41:05
|-
| [http://maemo.org/profile/view/ksesoftware.html ksesoftware]
| Kurt Krueger
| 2008-05-28 19:41:09
|-
| [http://maemo.org/profile/view/ksilvers3.html ksilvers3]
| Kenneth Silverstein
| 2007-11-28 15:43:37
|-
| [http://maemo.org/profile/view/ksinbln.html ksinbln]
| knut singer
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/ksukhija.html ksukhija]
| Kamal Sukhija
| 2008-01-03 22:41:22
|-
| [http://maemo.org/profile/view/kt79.html kt79]
| Kermit Tensmeyer
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/kthorn.html kthorn]
| Kevin Thorn
| 2007-10-20 12:40:32
|-
| [http://maemo.org/profile/view/ktkinnun.html ktkinnun]
| Kimmo Kinnunen
| 2007-11-15 11:40:45
|-
| [http://maemo.org/profile/view/ktneely.html ktneely]
| Kevin Neely
| 2008-01-23 16:41:04
|-
| [http://maemo.org/profile/view/ktraub.html ktraub]
| Kevin Traub
| 2007-07-01 15:40:09
|-
| [http://maemo.org/profile/view/ku4tp.html ku4tp]
| Virgil Chambers
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/kuangyujing.html kuangyujing]
| Kuangyu Jing
| 2007-05-29 09:30:39
|-
| [http://maemo.org/profile/view/kudos1uk.html kudos1uk]
| Anthony Sorton
| 2007-08-03 10:40:18
|-
| [http://maemo.org/profile/view/kuebler.html kuebler]
| Martin Kübler
| 2008-02-14 17:30:59
|-
| [http://maemo.org/profile/view/kueche.html kueche]
| stefan küchenmeister
| 2007-01-08 23:50:03
|-
| [http://maemo.org/profile/view/kuelin.html kuelin]
| dhfjf hd
| 2007-07-09 15:40:16
|-
| [http://maemo.org/profile/view/kugelmugel.html kugelmugel]
| Kugel Mugel
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/kuilo.html kuilo]
| Fabrizio Fiorentini
| 2007-11-02 07:40:49
|-
| [http://maemo.org/profile/view/kulve.html kulve]
| Tuomas Kulve
| 2007-05-18 19:12:50
|-
| [http://maemo.org/profile/view/kumaboris.html kumaboris]
| adrian garcia
| 2007-11-28 15:43:17
|-
| [http://maemo.org/profile/view/kumar.html kumar]
| kumar amu
| 2008-03-07 07:31:02
|-
| [http://maemo.org/profile/view/kumppa.html kumppa]
| Timo Suokas
| 2008-05-09 08:41:06
|-
| [http://maemo.org/profile/view/kumrv.html kumrv]
| arvind shukla
| 2008-06-09 06:31:11
|-
| [http://maemo.org/profile/view/kuncoro.html kuncoro]
| Kuncoro Wastuwibowo
| 2007-10-18 13:40:30
|-
| [http://maemo.org/profile/view/kunnajak.html kunnajak]
| Jake Kunnari
| 2007-04-05 15:25:37
|-
| [http://maemo.org/profile/view/kup.html kup]
| Peter Kupietz
| 2007-05-18 19:10:53
|-
| [http://maemo.org/profile/view/kuparsaa.html kuparsaa]
| Antti Kuparsaari
| 2007-05-18 19:11:36
|-
| [http://maemo.org/profile/view/kupe.html kupe]
| Doug Kupersmith
| 2007-11-16 17:49:22
|-
| [http://maemo.org/profile/view/kuriiri.html kuriiri]
| Timo Mikkilä
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/kurmaphi.html kurmaphi]
| Philip Ku
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/kurnalbert.html kurnalbert]
| Sam Busby
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/kursula.html kursula]
| Mikko Kursula
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/kurtbaeten.html kurtbaeten]
| kurt baeten
| 2007-11-01 12:40:39
|-
| [http://maemo.org/profile/view/kurthamon.html kurthamon]
| kurt hamon
| 2007-12-27 20:41:33
|-
| [http://maemo.org/profile/view/kurtis318.html kurtis318]
| kurtis ruby
| 2008-02-10 20:32:27
|-
| [http://maemo.org/profile/view/kurupted.html kurupted]
| ok ok
| 2008-01-06 00:40:55
|-
| [http://maemo.org/profile/view/kusemuckl.html kusemuckl]
| Nils op den Winkel
| 2008-05-13 16:41:13
|-
| [http://maemo.org/profile/view/kushalchawda.html kushalchawda]
| Kushal Chawda
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/kushalj.html kushalj]
| Kushal Joshi
| 2007-06-08 13:37:14
|-
| [http://maemo.org/profile/view/kusumk.html kusumk]
| Kusuma Paidi
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/kuusipal.html kuusipal]
| Mikko Kuusipalo
| 2007-07-06 06:40:15
|-
| [http://maemo.org/profile/view/kuyu.html kuyu]
| Kuifei Yu
| 2008-01-29 09:31:09
|-
| [http://maemo.org/profile/view/kvalo.html kvalo]
| Kalle Valo
| 2007-05-18 19:11:23
|-
| [http://maemo.org/profile/view/kwarkoo.html kwarkoo]
| Devon Craig
| 2008-01-06 17:40:59
|-
| [http://maemo.org/profile/view/kwazar.html kwazar]
| Vadim K.
| 2008-03-20 20:31:05
|-
| [http://maemo.org/profile/view/kwir1.html kwir1]
| Martha Pontoni
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/kwohlhueter.html kwohlhueter]
| Karen Wohlhueter
| 2008-02-05 22:32:43
|-
| [http://maemo.org/profile/view/kwon1212.html kwon1212]
| HYUCK CHAN KWON
| 2007-12-11 16:26:05
|-
| [http://maemo.org/profile/view/kyantonius.html kyantonius]
| Kemas Antonius
| 2007-05-18 19:10:44
|-
| [http://maemo.org/profile/view/kyjuta00.html kyjuta00]
| Jukka-Pekka Kynsijärvi
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/kylecronan.html kylecronan]
| Kyle Cronan
| 2008-01-12 01:41:02
|-
| [http://maemo.org/profile/view/kylemic.html kylemic]
| kyle mcmenamy
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/kylemtanis.html kylemtanis]
| kyle tanis
| 2008-05-08 21:41:08
|-
| [http://maemo.org/profile/view/kypeli.html kypeli]
| Johan Paul
| 2007-10-19 07:40:30
|-
| [http://maemo.org/profile/view/l-m.html l-m]
| Lauri Malva
| 2008-02-11 15:42:09
|-
| [http://maemo.org/profile/view/l0cutus.html l0cutus]
| Stefano Zamprogno
| 2007-10-23 11:40:33
|-
| [http://maemo.org/profile/view/l1100.html l1100]
| STEVEN LEWIS
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/l30xc93.html l30xc93]
| 9x93 Nwark
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/la23.html la23]
| dennis miller
| 2007-11-28 16:50:38
|-
| [http://maemo.org/profile/view/la3875.html la3875]
| Jeff Brown
| 2008-05-26 15:41:09
|-
| [http://maemo.org/profile/view/laasworld.html laasworld]
| Jake Laas
| 2007-12-11 16:24:43
|-
| [http://maemo.org/profile/view/laavu.html laavu]
| Seppo Yliklaavu
| 2008-05-20 07:41:08
|-
| [http://maemo.org/profile/view/labchong.html labchong]
| lab chong
| 2007-07-06 12:40:09
|-
| [http://maemo.org/profile/view/ladonna1985.html ladonna1985]
| damion whittingham
| 2007-11-16 17:49:30
|-
| [http://maemo.org/profile/view/ladrake.html ladrake]
| Lawrence Drake
| 2007-06-08 13:37:14
|-
| [http://maemo.org/profile/view/ladu75.html ladu75]
| ladurini stefano
| 2007-05-18 19:11:16
|-
| [http://maemo.org/profile/view/lady_lin.html lady_lin]
| Stefanie Boers
| 2007-10-29 15:40:35
|-
| [http://maemo.org/profile/view/laer.html laer]
| Laer Haider
| 2007-05-18 19:11:04
|-
| [http://maemo.org/profile/view/lafemina.html lafemina]
| tom lafemina
| 2007-04-05 15:25:37
|-
| [http://maemo.org/profile/view/laforge.html laforge]
| Harald Welte
| 2007-10-18 22:40:29
|-
| [http://maemo.org/profile/view/laforge1979.html laforge1979]
| alex alexic
| 2008-05-10 22:41:08
|-
| [http://maemo.org/profile/view/lagham.html lagham]
| Derek Harding
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/laholl2.html laholl2]
| l holland
| 2007-05-18 19:11:48
|-
| [http://maemo.org/profile/view/laiaibarra.html laiaibarra]
| luis alejandro ibarra acosta
| 2007-11-16 17:49:05
|-
| [http://maemo.org/profile/view/lailaihei.html lailaihei]
| Alconost refragui
| 2008-03-21 16:31:05
|-
| [http://maemo.org/profile/view/lain.html lain]
| Eric Agan
| 2007-11-15 07:55:45
|-
| [http://maemo.org/profile/view/lainx12.html lainx12]
| alex wong
| 2008-01-17 04:41:09
|-
| [http://maemo.org/profile/view/lajijon2007.html lajijon2007]
| Luis Ramirez
| 2007-12-11 16:26:01
|-
| [http://maemo.org/profile/view/lakeman.html lakeman]
| Steve Curling
| 2007-05-23 05:29:41
|-
| [http://maemo.org/profile/view/lakuta.html lakuta]
| luiz tadashi akuta
| 2008-05-05 03:41:08
|-
| [http://maemo.org/profile/view/lala.html lala]
| ll ll
| 2008-04-02 20:41:07
|-
| [http://maemo.org/profile/view/lala_mobile.html lala_mobile]
| wu junwei
| 2007-10-30 15:40:48
|-
| [http://maemo.org/profile/view/lalet.html lalet]
| Pierre LALET
| 2007-05-18 19:11:10
|-
| [http://maemo.org/profile/view/lalid.html lalid]
| lars lidstrom
| 2007-10-19 15:40:31
|-
| [http://maemo.org/profile/view/lalitka.html lalitka]
| lalitha katta
| 2007-11-30 10:49:00
|-
| [http://maemo.org/profile/view/lamikr.html lamikr]
| Mika Laitio
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/lamm1258.html lamm1258]
| Michel Lamontagne
| 2008-01-13 04:40:53
|-
| [http://maemo.org/profile/view/lamson.html lamson]
| lam son
| 2007-06-29 16:40:15
|-
| [http://maemo.org/profile/view/lancelot916.html lancelot916]
| lawrence huey
| 2007-10-15 02:40:27
|-
| [http://maemo.org/profile/view/lancerevo.html lancerevo]
| Paolo Sangregorio
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/lancewex.html lancewex]
| Lance Wex
| 2008-01-22 01:31:48
|-
| [http://maemo.org/profile/view/landfinder40.html landfinder40]
| bob evans
| 2007-11-16 17:47:35
|-
| [http://maemo.org/profile/view/landont.html landont]
| T L
| 2008-01-19 15:33:06
|-
| [http://maemo.org/profile/view/landyman.html landyman]
| Steve Oatway
| 2007-10-19 18:40:34
|-
| [http://maemo.org/profile/view/langarita.html langarita]
| raul langarita
| 2008-03-24 23:31:03
|-
| [http://maemo.org/profile/view/langjohn2010.html langjohn2010]
| John Lang
| 2007-05-18 19:12:01
|-
| [http://maemo.org/profile/view/langley.html langley]
| John Langley
| 2006-10-30 17:22:10
|-
| [http://maemo.org/profile/view/lapa.html lapa]
| Luis Lorenzo
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/laperie.html laperie]
| Andrei Laperie
| 2007-07-12 14:40:18
|-
| [http://maemo.org/profile/view/laptop006.html laptop006]
| Julien Goodwin
| 2007-10-20 02:40:31
|-
| [http://maemo.org/profile/view/larch.html larch]
| Dan French
| 2007-12-29 18:41:05
|-
| [http://maemo.org/profile/view/lardman.html lardman]
| Simon Pickering
| 2007-05-21 13:43:12
|-
| [http://maemo.org/profile/view/larned6.html larned6]
| Gary Larned
| 2007-07-08 02:40:10
|-
| [http://maemo.org/profile/view/larryking.html larryking]
| Larry King
| 2008-02-22 02:31:02
|-
| [http://maemo.org/profile/view/larry_jr.html larry_jr]
| Larry de Oliveira Lira Jr
| 2007-05-18 19:14:34
|-
| [http://maemo.org/profile/view/larsgk.html larsgk]
| Lars Knudsen
| 2007-11-30 10:49:11
|-
| [http://maemo.org/profile/view/larsic.html larsic]
| Lars Buschkamp
| 2007-12-17 23:41:12
|-
| [http://maemo.org/profile/view/lars_p_fink.html lars_p_fink]
| Lars Persson Fink
| 2007-08-13 09:40:21
|-
| [http://maemo.org/profile/view/larux.html larux]
| Jari Laru
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/laseray.html laseray]
| Raymond Martin
| 2007-11-16 17:47:45
|-
| [http://maemo.org/profile/view/laskuh.html laskuh]
| adam bennett
| 2007-05-18 19:11:39
|-
| [http://maemo.org/profile/view/lasm.html lasm]
| Anton Livanov
| 2008-01-08 04:41:32
|-
| [http://maemo.org/profile/view/lassir.html lassir]
| Lassi Romanainen
| 2007-07-10 13:40:18
|-
| [http://maemo.org/profile/view/lassis.html lassis]
| Lassi Syrjala
| 2007-11-16 17:50:31
|-
| [http://maemo.org/profile/view/lasupermarmota.html lasupermarmota]
| Ivan Hinojal
| 2008-01-13 17:41:26
|-
| [http://maemo.org/profile/view/laszlo.html laszlo]
| Leslie Gyorgy
| 2008-05-13 03:41:08
|-
| [http://maemo.org/profile/view/lateski.html lateski]
| Lauri Vene
| 2008-03-18 17:31:02
|-
| [http://maemo.org/profile/view/latheos.html latheos]
| Laochailan Merrill
| 2008-02-09 03:32:34
|-
| [http://maemo.org/profile/view/latz.html latz]
| Gál László
| 2007-10-27 13:40:34
|-
| [http://maemo.org/profile/view/lauren.html lauren]
| lauren roberts
| 2007-12-20 03:40:56
|-
| [http://maemo.org/profile/view/laurenj1313.html laurenj1313]
| lauren johnson
| 2007-10-17 20:40:26
|-
| [http://maemo.org/profile/view/lauti.html lauti]
| Frank Lautenbach
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/lauyncorey.html lauyncorey]
| hua hua
| 2008-02-17 21:30:59
|-
| [http://maemo.org/profile/view/lavapaw.html lavapaw]
| Eric Kasten
| 2007-11-16 17:47:55
|-
| [http://maemo.org/profile/view/lavo.html lavo]
| Rod Lavington
| 2007-11-15 07:55:44
|-
| [http://maemo.org/profile/view/lavspraku.html lavspraku]
| lavs praku
| 2007-11-02 09:40:37
|-
| [http://maemo.org/profile/view/lawman.html lawman]
| lawrence barnard
| 2008-03-12 06:31:02
|-
| [http://maemo.org/profile/view/lawrencekang.html lawrencekang]
| lawrence kang
| 2008-02-03 12:31:08
|-
| [http://maemo.org/profile/view/lawrephord.html lawrephord]
| lawrence hordy
| 2008-05-02 01:41:23
|-
| [http://maemo.org/profile/view/layer99.html layer99]
| Shawn Mack
| 2007-10-22 18:40:43
|-
| [http://maemo.org/profile/view/layn.html layn]
| layn layn
| 2007-05-18 19:13:11
|-
| [http://maemo.org/profile/view/laz.html laz]
| S Martinez
| 2007-12-25 13:41:04
|-
| [http://maemo.org/profile/view/lazyeyedboglin.html lazyeyedboglin]
| Ben Loughead
| 2008-04-11 13:41:06
|-
| [http://maemo.org/profile/view/lazyswamp.html lazyswamp]
| Kwanghoon Choi
| 2007-11-16 17:46:22
|-
| [http://maemo.org/profile/view/lbattraw.html lbattraw]
| Larry Battraw
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/lbause.html lbause]
| Lars Beseke
| 2007-06-08 13:37:19
|-
| [http://maemo.org/profile/view/lbeckm3.html lbeckm3]
| Lyle Beckman
| 2007-05-18 19:14:24
|-
| [http://maemo.org/profile/view/lbedford.html lbedford]
| Liam Bedford
| 2007-10-19 15:40:31
|-
| [http://maemo.org/profile/view/lbhud.html lbhud]
| Rob Wiers
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/lbindi.html lbindi]
| luca bindi
| 2007-10-22 09:40:34
|-
| [http://maemo.org/profile/view/lbloch.html lbloch]
| Laurent Bloch
| 2007-07-19 15:40:18
|-
| [http://maemo.org/profile/view/lblum.html lblum]
| Laszlo Blum
| 2007-10-30 17:40:36
|-
| [http://maemo.org/profile/view/lbt.html lbt]
| David Greaves
| 2008-05-26 17:41:09
|-
| [http://maemo.org/profile/view/lcuk.html lcuk]
| Gary Birkett
| 2008-06-02 22:41:09
|-
| [http://maemo.org/profile/view/ldecicco.html ldecicco]
| Luca De Cicco
| 2007-11-16 17:49:41
|-
| [http://maemo.org/profile/view/lderkacz.html lderkacz]
| Łukasz Derkacz
| 2007-11-15 11:40:45
|-
| [http://maemo.org/profile/view/ldinnouti.html ldinnouti]
| Leonardo Dinnouti
| 2007-05-23 05:29:37
|-
| [http://maemo.org/profile/view/lds9525.html lds9525]
| Larry Stepp
| 2007-12-27 21:51:11
|-
| [http://maemo.org/profile/view/ldty7d.html ldty7d]
| Luke Todd
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/le1o.html le1o]
| Lee York
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/lean.html lean]
| Lean Fuglsang
| 2007-10-19 13:40:36
|-
| [http://maemo.org/profile/view/leandro.html leandro]
| Leandro Sales
| 2007-05-18 19:10:29
|-
| [http://maemo.org/profile/view/leblancrs.html leblancrs]
| Richard LeBlanc
| 2008-03-29 09:31:04
|-
| [http://maemo.org/profile/view/lebreton.html lebreton]
| Eric Le Breton
| 2007-12-19 10:41:01
|-
| [http://maemo.org/profile/view/lee.html lee]
| Lee Watson
| 2008-06-05 17:41:14
|-
| [http://maemo.org/profile/view/lee399.html lee399]
| lee taylor
| 2007-11-16 17:46:39
|-
| [http://maemo.org/profile/view/leebel.html leebel]
| Lee Bel
| 2007-07-10 04:40:23
|-
| [http://maemo.org/profile/view/leecowdrey.html leecowdrey]
| Lee Cowdrey
| 2007-10-23 08:40:40
|-
| [http://maemo.org/profile/view/leedell.html leedell]
| laurence leedell
| 2007-05-18 19:11:38
|-
| [http://maemo.org/profile/view/leefw.html leefw]
| Lee Francis Wilhelmsen
| 2008-01-06 01:40:54
|-
| [http://maemo.org/profile/view/leejjoon.html leejjoon]
| Jae-Joon Lee
| 2008-02-08 20:31:56
|-
| [http://maemo.org/profile/view/leemo.html leemo]
| Paul Leeming
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/leenski.html leenski]
| Eileen Lee
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/leewebhouse.html leewebhouse]
| Lee Web
| 2007-10-22 03:40:35
|-
| [http://maemo.org/profile/view/leewiggy.html leewiggy]
| Lee Harris
| 2008-01-24 16:32:17
|-
| [http://maemo.org/profile/view/legion.html legion]
| Otto Rommel
| 2008-03-30 20:31:07
|-
| [http://maemo.org/profile/view/legorc.html legorc]
| Carlos Cabello
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/leica.html leica]
| Lisa Singh
| 2008-05-18 14:41:26
|-
| [http://maemo.org/profile/view/leif.html leif]
| Leif Ryge
| 2007-11-16 17:47:56
|-
| [http://maemo.org/profile/view/leighbb.html leighbb]
| Leigh Brown
| 2008-02-26 16:31:04
|-
| [http://maemo.org/profile/view/lelutin.html lelutin]
| Gabriel Filion
| 2008-02-07 15:31:29
|-
| [http://maemo.org/profile/view/lemacfar.html lemacfar]
| Farzad Amiri
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/lemody.html lemody]
| Tapani Pälli
| 2007-05-18 19:11:17
|-
| [http://maemo.org/profile/view/len089.html len089]
| Len Mendy
| 2008-03-16 14:30:58
|-
| [http://maemo.org/profile/view/lenchin.html lenchin]
| Len Chin
| 2007-10-21 01:40:37
|-
| [http://maemo.org/profile/view/lenconner.html lenconner]
| Leonard Conner
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/lengau.html lengau]
| Alex Lowe
| 2008-02-12 03:31:43
|-
| [http://maemo.org/profile/view/lennielg.html lennielg]
| Lennie LG
| 2007-06-11 16:50:39
|-
| [http://maemo.org/profile/view/lennys26.html lennys26]
| len stewart
| 2007-11-30 10:49:36
|-
| [http://maemo.org/profile/view/leo1981.html leo1981]
| Leonardo Prosperi
| 2007-10-22 02:40:34
|-
| [http://maemo.org/profile/view/leobofete.html leobofete]
| Leo Bofete
| 2007-05-18 19:10:36
|-
| [http://maemo.org/profile/view/leoboyohboy.html leoboyohboy]
| Leo Dean Mnalo
| 2008-01-18 11:31:01
|-
| [http://maemo.org/profile/view/leonardo.html leonardo]
| Leo Innah
| 2008-01-22 10:30:58
|-
| [http://maemo.org/profile/view/leonremi.html leonremi]
| léon shlaen
| 2008-06-05 18:41:16
|-
| [http://maemo.org/profile/view/leoprosperi.html leoprosperi]
| Leonardo Prosperi
| 2007-11-30 10:48:18
|-
| [http://maemo.org/profile/view/leosgb.html leosgb]
| Leo Britto
| 2007-12-24 22:41:23
|-
| [http://maemo.org/profile/view/leoshen.html leoshen]
| leo shen
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/leosoto.html leosoto]
| Leo Soto
| 2008-03-18 02:32:35
|-
| [http://maemo.org/profile/view/leoyw.html leoyw]
| Leo Yuwono
| 2008-01-05 21:40:52
|-
| [http://maemo.org/profile/view/leoz.html leoz]
| Leonid Zolotarev
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/lequaani.html lequaani]
| Mikko Laajola
| 2007-10-22 08:40:36
|-
| [http://maemo.org/profile/view/lerat.html lerat]
| Rolf Laun
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/lerrup.html lerrup]
| Michael Truscott
| 2007-10-20 22:40:35
|-
| [http://maemo.org/profile/view/lerrus.html lerrus]
| Stewart Guy
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/les.html les]
| I A
| 2007-11-28 15:41:18
|-
| [http://maemo.org/profile/view/lesbians.html lesbians]
| Joseph Hoponu
| 2008-03-08 18:31:04
|-
| [http://maemo.org/profile/view/leshik.html leshik]
| Alexey Merinov
| 2007-05-18 19:11:40
|-
| [http://maemo.org/profile/view/leskent.html leskent]
| les kent
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/leslie.html leslie]
| leslie williams
| 2007-11-30 10:49:23
|-
| [http://maemo.org/profile/view/lesmorss.html lesmorss]
| les morss
| 2007-05-18 19:13:14
|-
| [http://maemo.org/profile/view/lesxejets.html lesxejets]
| les x e jets
| 2007-05-18 19:12:29
|-
| [http://maemo.org/profile/view/letiteuf.html letiteuf]
| bruno busch
| 2007-08-04 10:40:21
|-
| [http://maemo.org/profile/view/leto_ii.html leto_ii]
| Leto Atreides
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/leungsk.html leungsk]
| steve leung
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/leuq2000.html leuq2000]
| Miquel Millan de la Torre
| 2007-05-18 19:10:38
|-
| [http://maemo.org/profile/view/level45.html level45]
| Christian Wenzel
| 2007-11-30 10:49:06
|-
| [http://maemo.org/profile/view/levone.html levone]
| Lev Mogs
| 2008-04-16 10:41:07
|-
| [http://maemo.org/profile/view/levysoft.html levysoft]
| Antonio Troise
| 2007-10-22 14:40:33
|-
| [http://maemo.org/profile/view/lewgb.html lewgb]
| graves boylston
| 2007-06-10 13:41:33
|-
| [http://maemo.org/profile/view/lewis1946.html lewis1946]
| james giles
| 2007-11-15 07:55:36
|-
| [http://maemo.org/profile/view/lewisling.html lewisling]
| Lewis Ling
| 2008-03-29 14:31:08
|-
| [http://maemo.org/profile/view/lewix.html lewix]
| lewix liu
| 2008-01-14 12:41:20
|-
| [http://maemo.org/profile/view/lexa_.html lexa_]
| lexa fedotov
| 2007-12-26 15:51:49
|-
| [http://maemo.org/profile/view/lexeika.html lexeika]
| alex k.
| 2008-03-24 11:31:04
|-
| [http://maemo.org/profile/view/lexiyntax.html lexiyntax]
| Daniel E. Markle
| 2007-05-18 19:10:42
|-
| [http://maemo.org/profile/view/leyman.html leyman]
| Marcus Leyman
| 2007-10-19 13:40:37
|-
| [http://maemo.org/profile/view/lfd.html lfd]
| Damien LEFEVRE
| 2008-06-01 18:41:09
|-
| [http://maemo.org/profile/view/lfelipe.html lfelipe]
| Luis Felipe Moraes
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/lfschmirl.html lfschmirl]
| Leonard Schmirl
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/lgb.html lgb]
| Gábor Lénárt
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/lgreengard.html lgreengard]
| leslie greengard
| 2007-11-28 15:43:36
|-
| [http://maemo.org/profile/view/lgs.html lgs]
| Lorenzo Gil Sánchez
| 2007-05-18 19:12:14
|-
| [http://maemo.org/profile/view/lhaim.html lhaim]
| HL L'Haim
| 2008-01-10 07:41:02
|-
| [http://maemo.org/profile/view/lharris.html lharris]
| Lawrence Harris
| 2007-12-15 08:40:48
|-
| [http://maemo.org/profile/view/lhinds7.html lhinds7]
| Logan Hinds
| 2007-11-16 17:47:07
|-
| [http://maemo.org/profile/view/lhingle.html lhingle]
| Lance Hingle
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/lhones.html lhones]
| luke hones
| 2008-01-05 06:40:55
|-
| [http://maemo.org/profile/view/lhtexas.html lhtexas]
| lynn holland
| 2007-06-30 14:40:20
|-
| [http://maemo.org/profile/view/liahr.html liahr]
| Cecilia Rebouças
| 2007-05-18 19:11:25
|-
| [http://maemo.org/profile/view/liamodonovan.html liamodonovan]
| Liam O'Donovan
| 2008-02-27 17:31:07
|-
| [http://maemo.org/profile/view/libadier.html libadier]
| libadier agudelo
| 2008-01-15 01:41:02
|-
| [http://maemo.org/profile/view/liceovernilo.html liceovernilo]
| mauricio zubirats
| 2007-06-08 13:37:19
|-
| [http://maemo.org/profile/view/lichao.html lichao]
| chao li
| 2007-10-20 12:40:34
|-
| [http://maemo.org/profile/view/licorn.html licorn]
| Dmitry Mikushkin
| 2008-05-15 23:41:08
|-
| [http://maemo.org/profile/view/lidaiqin2008.html lidaiqin2008]
| Daiqin Li
| 2008-02-21 08:30:57
|-
| [http://maemo.org/profile/view/lidongbest.html lidongbest]
| dong li
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/lifebloger.html lifebloger]
| Didier NORDIO
| 2007-10-19 13:40:32
|-
| [http://maemo.org/profile/view/lifengleon.html lifengleon]
| Lifeng Wang
| 2007-08-09 23:40:20
|-
| [http://maemo.org/profile/view/lifutushi.html lifutushi]
| Ariff Abdullah
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/lightningbolt.html lightningbolt]
| P. Pedersen
| 2008-01-20 19:33:12
|-
| [http://maemo.org/profile/view/lightslayer.html lightslayer]
| Kevin Motschal
| 2007-06-24 12:40:07
|-
| [http://maemo.org/profile/view/lihsus.html lihsus]
| Sushil Prabhu
| 2007-10-24 23:40:33
|-
| [http://maemo.org/profile/view/liia.html liia]
| Liia Sarjakoski
| 2007-12-24 18:41:26
|-
| [http://maemo.org/profile/view/liiv.html liiv]
| Josip Lisec
| 2007-10-25 16:40:34
|-
| [http://maemo.org/profile/view/lijl.html lijl]
| li jianlin
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/lijs.html lijs]
| Liliana Janeiro
| 2007-10-18 18:40:30
|-
| [http://maemo.org/profile/view/lik-best.html lik-best]
| Aleksandrs Loginovs
| 2007-11-16 17:47:57
|-
| [http://maemo.org/profile/view/likanli.html likanli]
| li kan
| 2007-12-11 16:26:13
|-
| [http://maemo.org/profile/view/lilak.html lilak]
| Stefan Brzostkowski
| 2008-03-06 13:31:00
|-
| [http://maemo.org/profile/view/lild82603.html lild82603]
| dewayne powell
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/lildood.html lildood]
| sergio martinez
| 2007-11-16 17:47:56
|-
| [http://maemo.org/profile/view/lilith.html lilith]
| Corrado Leita
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/lilroe0421.html lilroe0421]
| roosevelt dunning
| 2008-06-07 13:31:25
|-
| [http://maemo.org/profile/view/liltux.html liltux]
| spencer wells
| 2007-05-29 09:30:40
|-
| [http://maemo.org/profile/view/limm.html limm]
| M. Lim
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/limonandrey.html limonandrey]
| Andrey Limonchenko
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/linbox.html linbox]
| guenter weissenseel
| 2008-05-25 15:41:17
|-
| [http://maemo.org/profile/view/lindever.html lindever]
| Pathompol Suebpradist
| 2007-10-19 08:40:31
|-
| [http://maemo.org/profile/view/lindhve.html lindhve]
| Veli-Pekka Lindholm
| 2007-05-18 19:12:22
|-
| [http://maemo.org/profile/view/lindonato.html lindonato]
| Donato Franciulli
| 2007-10-28 20:40:34
|-
| [http://maemo.org/profile/view/linehifi.html linehifi]
| harry wolf
| 2008-01-30 12:31:11
|-
| [http://maemo.org/profile/view/lingmann.html lingmann]
| Jeremy Lingmann
| 2007-10-19 04:40:30
|-
| [http://maemo.org/profile/view/lingtm.html lingtm]
| Samantha Ling
| 2008-03-26 21:31:07
|-
| [http://maemo.org/profile/view/linickx.html linickx]
| Nick Bettison
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/link.html link]
| Juergen Link
| 2007-11-30 10:49:20
|-
| [http://maemo.org/profile/view/linny.html linny]
| Gaetan Lord
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/linux23dragon.html linux23dragon]
| David Bennison
| 2007-05-18 19:10:37
|-
| [http://maemo.org/profile/view/linux446.html linux446]
| mike king
| 2007-11-16 17:47:43
|-
| [http://maemo.org/profile/view/linux88.html linux88]
| deb lin
| 2007-11-04 00:40:46
|-
| [http://maemo.org/profile/view/linuxerick.html linuxerick]
| erick henrique
| 2007-05-18 19:13:51
|-
| [http://maemo.org/profile/view/linuxhippy.html linuxhippy]
| Clemens Eisserer
| 2007-05-15 09:12:14
|-
| [http://maemo.org/profile/view/linuxkrn.html linuxkrn]
| Greg Watson
| 2007-11-01 00:40:36
|-
| [http://maemo.org/profile/view/linuxnew.html linuxnew]
| new linuxuser
| 2008-02-22 19:30:58
|-
| [http://maemo.org/profile/view/linuxoid.html linuxoid]
| Fedya NA
| 2008-01-04 15:43:09
|-
| [http://maemo.org/profile/view/linuxquestions.html linuxquestions]
| Jeremy Garcia
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/linuxrebel.html linuxrebel]
| James Sparenberg
| 2007-05-18 19:10:55
|-
| [http://maemo.org/profile/view/linuxvermont.html linuxvermont]
| Charles Webb
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/linux_author.html linux_author]
| willie ball
| 2008-01-13 00:40:56
|-
| [http://maemo.org/profile/view/linville.html linville]
| John Linville
| 2007-10-20 13:40:32
|-
| [http://maemo.org/profile/view/liog100.html liog100]
| Lionel Guerard
| 2007-11-15 07:56:01
|-
| [http://maemo.org/profile/view/lionicex.html lionicex]
| David González
| 2007-11-28 15:43:43
|-
| [http://maemo.org/profile/view/liopic.html liopic]
| Julio Martinez
| 2008-01-30 11:31:11
|-
| [http://maemo.org/profile/view/liquidsg.html liquidsg]
| Sean Gordon
| 2007-12-13 16:41:28
|-
| [http://maemo.org/profile/view/lirq.html lirq]
| Maxim Myskov
| 2008-06-04 19:41:26
|-
| [http://maemo.org/profile/view/lisandy.html lisandy]
| Andy Steyn
| 2008-04-07 13:41:07
|-
| [http://maemo.org/profile/view/lisasbills1.html lisasbills1]
| lisa buckingham
| 2008-01-14 17:51:24
|-
| [http://maemo.org/profile/view/lisoant.html lisoant]
| Lari Iso-Anttila
| 2007-05-18 19:14:46
|-
| [http://maemo.org/profile/view/listen.html listen]
| jordan mora
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/litalau.html litalau]
| Lita Lau
| 2007-12-25 19:41:35
|-
| [http://maemo.org/profile/view/lite.html lite]
| Pekka Tarvainen
| 2007-05-29 23:01:09
|-
| [http://maemo.org/profile/view/literacy_now.html literacy_now]
| kelley graham
| 2007-11-16 17:48:40
|-
| [http://maemo.org/profile/view/litero26.html litero26]
| tracy litero
| 2007-11-28 15:43:20
|-
| [http://maemo.org/profile/view/litos.html litos]
| Carlos Chinea
| 2007-05-18 19:10:52
|-
| [http://maemo.org/profile/view/littlegreiger.html littlegreiger]
| Shawn Greig
| 2008-05-13 01:41:15
|-
| [http://maemo.org/profile/view/littlekif.html littlekif]
| kittles twittles
| 2007-12-22 06:41:21
|-
| [http://maemo.org/profile/view/littlestmexican.html littlestmexican]
| shane mendez
| 2008-04-12 06:41:05
|-
| [http://maemo.org/profile/view/litus.html litus]
| carles mallafre
| 2007-10-20 14:40:32
|-
| [http://maemo.org/profile/view/liuguanjun.html liuguanjun]
| guanjun liu
| 2008-04-02 15:41:06
|-
| [http://maemo.org/profile/view/liujunming.html liujunming]
| liu junming
| 2007-06-12 03:41:31
|-
| [http://maemo.org/profile/view/liuxf.html liuxf]
| Xiangfeng Liu
| 2007-11-16 17:48:26
|-
| [http://maemo.org/profile/view/liuzhuangzhi.html liuzhuangzhi]
| Thevert Liu
| 2007-11-28 15:43:35
|-
| [http://maemo.org/profile/view/livingcontrol.html livingcontrol]
| Justin Martin-Lawrence
| 2007-11-16 17:47:57
|-
| [http://maemo.org/profile/view/livingjacob.html livingjacob]
| Karla Censon
| 2007-11-16 17:49:27
|-
| [http://maemo.org/profile/view/livnes.html livnes]
| Shahar Livne
| 2007-10-21 07:40:32
|-
| [http://maemo.org/profile/view/liw.html liw]
| Lars Wirzenius
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/lixir.html lixir]
| Brad Read
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/liyanron.html liyanron]
| ronny philip
| 2007-10-26 12:40:33
|-
| [http://maemo.org/profile/view/liyaoshi.html liyaoshi]
| yaoshi lee
| 2007-10-23 05:40:33
|-
| [http://maemo.org/profile/view/lizardo.html lizardo]
| Anderson Lizardo
| 2007-05-18 19:10:44
|-
| [http://maemo.org/profile/view/lizhao.html lizhao]
| zhao li
| 2007-08-16 10:40:21
|-
| [http://maemo.org/profile/view/lj535i.html lj535i]
| Lance Jones
| 2007-10-19 04:40:30
|-
| [http://maemo.org/profile/view/ljjohnson88.html ljjohnson88]
| lawrence johnson
| 2008-03-05 04:31:05
|-
| [http://maemo.org/profile/view/ljones03.html ljones03]
| Lee Jones
| 2007-12-21 00:41:01
|-
| [http://maemo.org/profile/view/lkravovicz.html lkravovicz]
| Leho Kraav
| 2007-05-18 19:13:51
|-
| [http://maemo.org/profile/view/lkurens.html lkurens]
| Larry Kurens
| 2007-12-24 08:41:16
|-
| [http://maemo.org/profile/view/llamakarma.html llamakarma]
| dean ezra
| 2007-08-10 22:40:20
|-
| [http://maemo.org/profile/view/lleukkun.html lleukkun]
| Lauri Leukkunen
| 2007-06-20 10:53:20
|-
| [http://maemo.org/profile/view/lluci.html lluci]
| llucià córdoba sobrevia
| 2007-11-16 17:49:20
|-
| [http://maemo.org/profile/view/lluis.html lluis]
| Lluis Guirao
| 2007-05-18 19:12:05
|-
| [http://maemo.org/profile/view/lm2.html lm2]
| James Kelleher
| 2008-03-03 16:31:22
|-
| [http://maemo.org/profile/view/lma.html lma]
| Lucas Maneos
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/lmanul.html lmanul]
| Manu Cornet
| 2007-12-11 16:26:04
|-
| [http://maemo.org/profile/view/lmf.html lmf]
| Luis Ferreira
| 2007-11-16 17:49:39
|-
| [http://maemo.org/profile/view/lmiguel.html lmiguel]
| Luís Mota
| 2008-02-27 21:31:05
|-
| [http://maemo.org/profile/view/lmo52.html lmo52]
| larry moises
| 2007-10-29 06:40:38
|-
| [http://maemo.org/profile/view/lmontrie.html lmontrie]
| Lionel Montrieux
| 2007-11-06 14:00:16
|-
| [http://maemo.org/profile/view/lmoura.html lmoura]
| Lauro Moura
| 2007-05-18 19:12:09
|-
| [http://maemo.org/profile/view/lmveloso.html lmveloso]
| Lucas Mazzardo Veloso
| 2007-05-18 19:11:36
|-
| [http://maemo.org/profile/view/lmwong.html lmwong]
| lincoln wong
| 2008-03-20 04:31:03
|-
| [http://maemo.org/profile/view/loaderr.html loaderr]
| Carlos Fanini
| 2008-03-08 17:31:04
|-
| [http://maemo.org/profile/view/lobon12.html lobon12]
| fernando fernandez
| 2008-04-21 08:41:06
|-
| [http://maemo.org/profile/view/lobotomia.html lobotomia]
| Giuseppe Guerrasio
| 2007-10-22 09:40:35
|-
| [http://maemo.org/profile/view/lobsterdale.html lobsterdale]
| dale steanson
| 2008-04-19 16:41:06
|-
| [http://maemo.org/profile/view/lockenwitz.html lockenwitz]
| Paul Lockenwitz
| 2007-11-16 17:46:22
|-
| [http://maemo.org/profile/view/locusf.html locusf]
| Aleksi Suomalainen
| 2007-12-16 13:40:55
|-
| [http://maemo.org/profile/view/locusta.html locusta]
| loc loc
| 2008-02-28 05:30:59
|-
| [http://maemo.org/profile/view/locutusoftrek.html locutusoftrek]
| Francesco Cristelli
| 2007-10-22 11:40:31
|-
| [http://maemo.org/profile/view/lodans.html lodans]
| tom jones
| 2007-11-16 17:47:42
|-
| [http://maemo.org/profile/view/lodecesa.html lodecesa]
| Lorenzo De Cesare
| 2007-05-18 19:14:13
|-
| [http://maemo.org/profile/view/lodrino.html lodrino]
| Francesco Zanini
| 2007-10-22 06:40:32
|-
| [http://maemo.org/profile/view/lodro.html lodro]
| lodro rigdzin
| 2008-05-18 15:41:10
|-
| [http://maemo.org/profile/view/lodxcol.html lodxcol]
| Justin Grover
| 2007-05-18 19:13:54
|-
| [http://maemo.org/profile/view/loekvanderhelm.html loekvanderhelm]
| Loek van der Helm
| 2007-05-18 19:12:18
|-
| [http://maemo.org/profile/view/lofquist.html lofquist]
| Brian Lofquist
| 2007-07-06 18:40:09
|-
| [http://maemo.org/profile/view/loft306.html loft306]
| mike rapp
| 2007-08-21 00:40:21
|-
| [http://maemo.org/profile/view/log2ins.html log2ins]
| Antonio Fanelli
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/logicle.html logicle]
| Justin Randall
| 2007-10-20 22:40:35
|-
| [http://maemo.org/profile/view/logicwar.html logicwar]
| Eric Colombara
| 2007-12-25 10:41:05
|-
| [http://maemo.org/profile/view/loginme.html loginme]
| Marshall LL
| 2008-03-18 17:31:01
|-
| [http://maemo.org/profile/view/logologo.html logologo]
| hans huber
| 2007-11-01 19:40:36
|-
| [http://maemo.org/profile/view/logoskronos.html logoskronos]
| S K
| 2007-06-19 07:10:37
|-
| [http://maemo.org/profile/view/logvinon.html logvinon]
| Nikolay Logvinov
| 2008-06-02 07:42:08
|-
| [http://maemo.org/profile/view/lokams.html lokams]
| Satish LN
| 2007-05-23 05:29:37
|-
| [http://maemo.org/profile/view/loki.html loki]
| Massimo Mund
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/lokidor.html lokidor]
| Emmanuel Papin
| 2008-06-01 12:41:09
|-
| [http://maemo.org/profile/view/lokimaemo.html lokimaemo]
| Stanley Foss
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/lolbo2002.html lolbo2002]
| Pedro Lopez
| 2007-11-28 15:43:36
|-
| [http://maemo.org/profile/view/lollo1979.html lollo1979]
| lorenzo pioltini
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/lonelybob.html lonelybob]
| Kevin Korpi
| 2007-10-22 05:40:31
|-
| [http://maemo.org/profile/view/loneranger.html loneranger]
| j B
| 2007-10-21 16:40:33
|-
| [http://maemo.org/profile/view/longoriakat.html longoriakat]
| Armando Longoria
| 2007-10-21 16:40:33
|-
| [http://maemo.org/profile/view/longprp.html longprp]
| Pierre Longpre
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/longwire.html longwire]
| john parnell
| 2007-12-28 02:41:07
|-
| [http://maemo.org/profile/view/loogu.html loogu]
| wu dizhou
| 2007-11-16 17:49:19
|-
| [http://maemo.org/profile/view/lool.html lool]
| Loïc Minier
| 2007-06-08 13:37:19
|-
| [http://maemo.org/profile/view/loongson.html loongson]
| Yuanfei Chen
| 2008-04-19 10:43:04
|-
| [http://maemo.org/profile/view/lopey.html lopey]
| k lopez
| 2007-07-10 20:40:19
|-
| [http://maemo.org/profile/view/loralyn.html loralyn]
| Loralyn Cramer
| 2007-11-16 17:49:06
|-
| [http://maemo.org/profile/view/lorcollea.html lorcollea]
| lorie colleary
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/lordfreddy.html lordfreddy]
| Fred Kuok
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/lordms12.html lordms12]
| Mostafa Moh.
| 2007-11-28 15:43:37
|-
| [http://maemo.org/profile/view/lordmyschkin.html lordmyschkin]
| Martin Roth
| 2008-01-13 03:41:05
|-
| [http://maemo.org/profile/view/lordsmack.html lordsmack]
| christopher tamer
| 2007-12-12 13:40:50
|-
| [http://maemo.org/profile/view/lorekd.html lorekd]
| David Lorek
| 2007-11-01 18:40:35
|-
| [http://maemo.org/profile/view/lorela78.html lorela78]
| lore lara
| 2007-12-11 16:25:26
|-
| [http://maemo.org/profile/view/lorelei.html lorelei]
| Pascal Jermini
| 2008-06-06 11:41:16
|-
| [http://maemo.org/profile/view/lorena.html lorena]
| Lorena Maia
| 2008-03-06 21:31:11
|-
| [http://maemo.org/profile/view/lorenzo.html lorenzo]
| colnat laurent
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/lorez1.html lorez1]
| Alan Lee
| 2007-12-11 16:25:14
|-
| [http://maemo.org/profile/view/lork.html lork]
| Knut Lorenzen
| 2007-11-16 17:49:27
|-
| [http://maemo.org/profile/view/lornoss.html lornoss]
| Tyson Vinson
| 2008-02-07 14:31:46
|-
| [http://maemo.org/profile/view/losoutlandos.html losoutlandos]
| Los Outlandos
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/lostdog.html lostdog]
| Clive McQueen
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/lostdream.html lostdream]
| allan philip
| 2008-04-10 13:41:06
|-
| [http://maemo.org/profile/view/lostjewelz.html lostjewelz]
| Garrick Barber
| 2007-12-11 16:25:03
|-
| [http://maemo.org/profile/view/lotek.html lotek]
| Dave Schmidt
| 2007-10-16 21:40:32
|-
| [http://maemo.org/profile/view/lottirj.html lottirj]
| Robert J. Lotti
| 2007-12-11 16:25:46
|-
| [http://maemo.org/profile/view/lottolot.html lottolot]
| son hoang
| 2008-05-15 23:41:09
|-
| [http://maemo.org/profile/view/lou.html lou]
| TP LOU
| 2007-04-05 15:25:36
|-
| [http://maemo.org/profile/view/loubenzing.html loubenzing]
| lou benzing
| 2007-11-16 17:48:08
|-
| [http://maemo.org/profile/view/loudelaisla.html loudelaisla]
| Lourdes De la Isla
| 2007-11-15 07:55:41
|-
| [http://maemo.org/profile/view/loud_silence.html loud_silence]
| George Giannopoulos
| 2007-10-23 02:40:36
|-
| [http://maemo.org/profile/view/loughmiller.html loughmiller]
| Danny Loughmiller
| 2008-01-30 16:31:26
|-
| [http://maemo.org/profile/view/louiem3.html louiem3]
| Luis Martinez
| 2007-11-28 15:42:35
|-
| [http://maemo.org/profile/view/louiep.html louiep]
| Louie Plank
| 2008-05-17 00:45:07
|-
| [http://maemo.org/profile/view/louis.html louis]
| louis denson
| 2007-05-29 22:51:34
|-
| [http://maemo.org/profile/view/louis1919.html louis1919]
| louis dix-neuf
| 2007-05-18 19:11:47
|-
| [http://maemo.org/profile/view/louisd.html louisd]
| Louis DiMeglio
| 2007-11-04 21:40:35
|-
| [http://maemo.org/profile/view/louisdixneuf.html louisdixneuf]
| Louis Plouffe
| 2007-11-30 10:49:10
|-
| [http://maemo.org/profile/view/louisph.html louisph]
| Louis-Philippe Dubrule
| 2008-04-18 12:41:36
|-
| [http://maemo.org/profile/view/lounis.html lounis]
| Lounis Bellabes
| 2007-11-03 19:40:36
|-
| [http://maemo.org/profile/view/lousonian.html lousonian]
| nelson bonifacio
| 2007-07-01 09:40:06
|-
| [http://maemo.org/profile/view/lou_dog.html lou_dog]
| luis padro
| 2008-02-06 19:41:21
|-
| [http://maemo.org/profile/view/love2cruise.html love2cruise]
| steve osgood
| 2007-11-28 15:41:19
|-
| [http://maemo.org/profile/view/love727.html love727]
| lin de
| 2008-02-17 13:31:00
|-
| [http://maemo.org/profile/view/lovebug.html lovebug]
| Thijs Vermeir
| 2007-08-05 12:40:23
|-
| [http://maemo.org/profile/view/lovebug356.html lovebug356]
| Thijs Vermeir
| 2007-05-18 19:14:29
|-
| [http://maemo.org/profile/view/lovedfish.html lovedfish]
| Leon Bai
| 2008-02-15 07:31:00
|-
| [http://maemo.org/profile/view/lovellview.html lovellview]
| Steven Wallace
| 2008-01-03 19:42:23
|-
| [http://maemo.org/profile/view/low4own.html low4own]
| Robert Clay
| 2007-11-16 17:49:09
|-
| [http://maemo.org/profile/view/lowqui.html lowqui]
| Woody G
| 2007-12-29 22:41:00
|-
| [http://maemo.org/profile/view/loyomoyo.html loyomoyo]
| Samuel Makun
| 2007-05-18 19:13:21
|-
| [http://maemo.org/profile/view/lpaatero.html lpaatero]
| Lauri Paatero
| 2008-05-11 06:41:06
|-
| [http://maemo.org/profile/view/lpiecuch.html lpiecuch]
| Leszek Piecuch
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/lqc23.html lqc23]
| luis quiñones
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/lqx_999.html lqx_999]
| xing xing
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/lrentz.html lrentz]
| Lee Rentz
| 2007-12-20 17:41:29
|-
| [http://maemo.org/profile/view/lruffino.html lruffino]
| Louis Ruffino
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/lrzymow.html lrzymow]
| Leszek Rzymowski
| 2007-06-19 15:40:18
|-
| [http://maemo.org/profile/view/ls7152.html ls7152]
| Jeffrey Wong
| 2007-08-03 07:40:20
|-
| [http://maemo.org/profile/view/lschn5150.html lschn5150]
| larry schoenberger
| 2008-05-08 02:41:07
|-
| [http://maemo.org/profile/view/lsmook.html lsmook]
| sangmook lim
| 2008-02-14 12:01:19
|-
| [http://maemo.org/profile/view/lstar7.html lstar7]
| Terrie Johnson
| 2007-11-15 07:55:31
|-
| [http://maemo.org/profile/view/lstep.html lstep]
| Luc Stepniewski
| 2007-12-19 16:41:32
|-
| [http://maemo.org/profile/view/lsup.html lsup]
| Alexey Klikov
| 2008-01-12 13:41:20
|-
| [http://maemo.org/profile/view/ltaarnio.html ltaarnio]
| Lauri Aarnio
| 2007-12-21 09:41:07
|-
| [http://maemo.org/profile/view/ltraver.html ltraver]
| Layton Traver
| 2007-11-16 17:47:34
|-
| [http://maemo.org/profile/view/luc.html luc]
| Luc Pionchon
| 2007-05-18 19:11:57
|-
| [http://maemo.org/profile/view/luc-s.html luc-s]
| luc smeesters
| 2007-05-18 19:10:23
|-
| [http://maemo.org/profile/view/luca.html luca]
| Luca Silvestri
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/lucagervasi.html lucagervasi]
| Luca Gervasi
| 2007-11-28 15:43:15
|-
| [http://maemo.org/profile/view/lucaparisioo.html lucaparisioo]
| luca parisio
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/lucasacchi.html lucasacchi]
| Luca Sacchi
| 2007-10-22 10:40:33
|-
| [http://maemo.org/profile/view/lucasfelex.html lucasfelex]
| Lucas Felex
| 2007-05-29 19:50:36
|-
| [http://maemo.org/profile/view/lucasr.html lucasr]
| Lucas Rocha
| 2007-05-18 19:14:25
|-
| [http://maemo.org/profile/view/lucass.html lucass]
| Lukasz Kulakowski
| 2008-01-11 22:41:09
|-
| [http://maemo.org/profile/view/lucaturano.html lucaturano]
| Luca Turano
| 2007-06-23 12:40:06
|-
| [http://maemo.org/profile/view/luca_brazi.html luca_brazi]
| Artem Karpov
| 2007-11-28 15:43:33
|-
| [http://maemo.org/profile/view/lucho.html lucho]
| Latchesar Ionkov
| 2007-11-15 07:55:49
|-
| [http://maemo.org/profile/view/luciano.html luciano]
| Luciano Sanchez
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/lucianomw.html lucianomw]
| Luciano Wolf
| 2007-05-18 19:13:06
|-
| [http://maemo.org/profile/view/lucid.html lucid]
| Tapio Leipälä
| 2008-03-28 21:31:05
|-
| [http://maemo.org/profile/view/luckii.html luckii]
| Luckii M
| 2008-02-08 09:31:27
|-
| [http://maemo.org/profile/view/luckyguy.html luckyguy]
| Larry Zhao
| 2008-03-19 15:31:01
|-
| [http://maemo.org/profile/view/luckyluke.html luckyluke]
| Luther Golledge
| 2007-05-18 19:14:29
|-
| [http://maemo.org/profile/view/lucky_cat.html lucky_cat]
| Alex Kislitsa
| 2008-03-29 18:31:06
|-
| [http://maemo.org/profile/view/lucy.html lucy]
| Lucy Gallagher
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/ludlow.html ludlow]
| mark ludlow
| 2008-01-19 07:30:58
|-
| [http://maemo.org/profile/view/ludoved.html ludoved]
| Serge Al
| 2007-06-08 13:37:08
|-
| [http://maemo.org/profile/view/ludovic.html ludovic]
| ludovic arnold
| 2007-05-18 19:11:33
|-
| [http://maemo.org/profile/view/ludovicus.html ludovicus]
| Lewis Schmidt
| 2008-05-22 17:41:11
|-
| [http://maemo.org/profile/view/lugermanwings.html lugermanwings]
| Lu Perondini
| 2007-10-19 09:40:33
|-
| [http://maemo.org/profile/view/luhz5858.html luhz5858]
| Samuel Lu
| 2007-11-16 17:48:16
|-
| [http://maemo.org/profile/view/luigicristaldi.html luigicristaldi]
| Luigi Cristaldi
| 2007-05-18 19:11:49
|-
| [http://maemo.org/profile/view/luigimarra.html luigimarra]
| luigi marra
| 2007-05-18 19:11:30
|-
| [http://maemo.org/profile/view/luis.html luis]
| Luis Villa
| 2007-11-16 17:49:41
|-
| [http://maemo.org/profile/view/luisaguiar24.html luisaguiar24]
| Luis Aguiar
| 2007-10-18 21:40:31
|-
| [http://maemo.org/profile/view/luisbq27.html luisbq27]
| luis bass
| 2007-12-11 16:23:08
|-
| [http://maemo.org/profile/view/luisca.html luisca]
| Luis Carlos Cobo Rus
| 2007-10-19 18:40:35
|-
| [http://maemo.org/profile/view/luiscalzadilla.html luiscalzadilla]
| luis calzadilla
| 2007-07-05 04:40:18
|-
| [http://maemo.org/profile/view/luisllana.html luisllana]
| Luis Llana
| 2007-05-18 19:12:15
|-
| [http://maemo.org/profile/view/luismc75.html luismc75]
| Luis Contreras
| 2008-01-31 04:31:07
|-
| [http://maemo.org/profile/view/luismo.html luismo]
| Luis Morales
| 2007-11-16 17:49:23
|-
| [http://maemo.org/profile/view/luismy.html luismy]
| Luis De Anda
| 2007-11-16 17:49:13
|-
| [http://maemo.org/profile/view/luiso.html luiso]
| Luis Pérez Meliá
| 2007-11-15 07:56:02
|-
| [http://maemo.org/profile/view/luizaraujo1965.html luizaraujo1965]
| luiz araujo
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/luizirber.html luizirber]
| Luiz Irber
| 2007-05-18 19:12:07
|-
| [http://maemo.org/profile/view/luiz_fernando.html luiz_fernando]
| Luiz Fernando Bernardes Ribeiro
| 2007-10-19 21:40:32
|-
| [http://maemo.org/profile/view/lukared.html lukared]
| luka red
| 2007-06-19 11:40:19
|-
| [http://maemo.org/profile/view/lukaskotto.html lukaskotto]
| Luka Skate
| 2007-09-05 09:40:23
|-
| [http://maemo.org/profile/view/lukass.html lukass]
| Lukas N
| 2007-11-16 17:48:24
|-
| [http://maemo.org/profile/view/lukers.html lukers]
| Luk Kap
| 2007-11-16 17:48:10
|-
| [http://maemo.org/profile/view/lukeshields.html lukeshields]
| luke shields
| 2007-11-30 10:49:37
|-
| [http://maemo.org/profile/view/lukewarmtapioca.html lukewarmtapioca]
| Britt Selvitelle
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/luke_mendoza.html luke_mendoza]
| Luke Mendoza
| 2007-12-12 09:40:50
|-
| [http://maemo.org/profile/view/lukicweb.html lukicweb]
| Milan Lukic
| 2007-11-16 17:49:51
|-
| [http://maemo.org/profile/view/lukor.html lukor]
| Alexandr O'Kornev
| 2007-12-11 16:26:23
|-
| [http://maemo.org/profile/view/lumax.html lumax]
| Yannick Lefebvre
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/lumisade.html lumisade]
| Janne Tompuri
| 2007-01-17 14:00:13
|-
| [http://maemo.org/profile/view/lumpymambo.html lumpymambo]
| Martin Schwed
| 2007-11-16 17:47:30
|-
| [http://maemo.org/profile/view/lunarbird.html lunarbird]
| Josh Smith
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/lunitic_27.html lunitic_27]
| tim cullen
| 2007-10-25 00:40:38
|-
| [http://maemo.org/profile/view/luogni.html luogni]
| Luca Ognibene
| 2007-05-18 19:10:39
|-
| [http://maemo.org/profile/view/luojinmu.html luojinmu]
| Jim luo
| 2007-10-19 07:40:30
|-
| [http://maemo.org/profile/view/luovanto.html luovanto]
| Jussi Mäkinen
| 2007-12-11 16:26:29
|-
| [http://maemo.org/profile/view/lupa18.html lupa18]
| Lu Pa
| 2007-10-24 14:40:36
|-
| [http://maemo.org/profile/view/lupex.html lupex]
| Roberto Lupi
| 2007-10-21 23:40:29
|-
| [http://maemo.org/profile/view/lupin3d.html lupin3d]
| Lorenzo Cervo
| 2007-11-16 17:49:13
|-
| [http://maemo.org/profile/view/lupo.html lupo]
| Valerio Parini
| 2007-10-29 02:40:39
|-
| [http://maemo.org/profile/view/lupus.html lupus]
| Paolo Molaro
| 2007-10-18 13:40:30
|-
| [http://maemo.org/profile/view/lurchi.html lurchi]
| Stefan Brüns
| 2007-10-20 10:40:30
|-
| [http://maemo.org/profile/view/luso.html luso]
| Antonio Candido
| 2007-11-28 15:40:51
|-
| [http://maemo.org/profile/view/lutavr.html lutavr]
| Avruckii Vladimir
| 2007-11-28 15:43:21
|-
| [http://maemo.org/profile/view/luusyphre.html luusyphre]
| Steven Luu
| 2007-11-30 10:49:36
|-
| [http://maemo.org/profile/view/luuucky.html luuucky]
| Andreas Laake
| 2007-12-11 16:25:50
|-
| [http://maemo.org/profile/view/lvince.html lvince]
| L Vince
| 2008-02-08 14:31:01
|-
| [http://maemo.org/profile/view/lvlassiter.html lvlassiter]
| Leonard Lassiter
| 2007-12-14 03:40:50
|-
| [http://maemo.org/profile/view/lvmee.html lvmee]
| Younghoo Lee
| 2008-06-09 09:31:18
|-
| [http://maemo.org/profile/view/lvratto.html lvratto]
| scott staggs
| 2008-02-12 06:31:11
|-
| [http://maemo.org/profile/view/lvronghai.html lvronghai]
| ronghai lv
| 2007-12-18 19:41:15
|-
| [http://maemo.org/profile/view/lwang.html lwang]
| Ling Wang
| 2008-03-17 17:31:06
|-
| [http://maemo.org/profile/view/lwchen.html lwchen]
| Li-Wen Chen
| 2007-11-15 07:56:25
|-
| [http://maemo.org/profile/view/lweinhoff.html lweinhoff]
| Laurence Weinhoff
| 2007-09-20 04:40:24
|-
| [http://maemo.org/profile/view/lxlmurdoclxl.html lxlmurdoclxl]
| Joshua Myers
| 2008-04-06 21:41:04
|-
| [http://maemo.org/profile/view/ly0shka.html ly0shka]
| Aleksey A.
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/ly1234567.html ly1234567]
| luyuan luyuan
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/lyal.html lyal]
| Alex MedVed
| 2008-03-25 00:31:05
|-
| [http://maemo.org/profile/view/lyall.html lyall]
| Lyall Moffitt
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/lyly.html lyly]
| Lynda Metref
| 2007-11-16 17:49:52
|-
| [http://maemo.org/profile/view/lyndon.html lyndon]
| Lauri Savolainen
| 2007-05-18 19:11:10
|-
| [http://maemo.org/profile/view/lynos.html lynos]
| necati keles
| 2008-01-19 03:31:21
|-
| [http://maemo.org/profile/view/lynoure.html lynoure]
| Lynoure Braakman
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/lysxberry.html lysxberry]
| yan sheng liao
| 2008-04-13 08:41:16
|-
| [http://maemo.org/profile/view/lytle78.html lytle78]
| Rick Kempf
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/lyz.html lyz]
| Tom Lynema
| 2007-12-12 17:40:48
|-
| [http://maemo.org/profile/view/lyze.html lyze]
| ivo gonzalez
| 2007-11-16 17:49:30
|-
| [http://maemo.org/profile/view/lyzzard8148.html lyzzard8148]
| Liz Gaestel
| 2007-05-18 19:10:50
|-
| [http://maemo.org/profile/view/l_over_a.html l_over_a]
| Brian K
| 2008-01-28 23:31:06
|-
| [http://maemo.org/profile/view/l_t1325.html l_t1325]
| George Donnelly
| 2007-12-14 19:41:50
|-
| [http://maemo.org/profile/view/m0dmc.html m0dmc]
| david cattermole
| 2007-10-30 09:40:37
|-
| [http://maemo.org/profile/view/m0lo.html m0lo]
| Jarl Falkenborn
| 2008-05-05 12:41:08
|-
| [http://maemo.org/profile/view/m1elr.html m1elr]
| cal d
| 2007-07-06 19:40:15
|-
| [http://maemo.org/profile/view/m3artin.html m3artin]
| Martin Petrovski
| 2008-01-27 16:31:32
|-
| [http://maemo.org/profile/view/m47iast.html m47iast]
| Mathias Teikari
| 2008-03-12 11:31:03
|-
| [http://maemo.org/profile/view/m4thew.html m4thew]
| mathew roberts
| 2007-11-16 17:46:36
|-
| [http://maemo.org/profile/view/ma2dy.html ma2dy]
| Viktor Soussine
| 2007-06-20 21:40:06
|-
| [http://maemo.org/profile/view/maaemo.html maaemo]
| John Smith
| 2008-02-08 00:32:21
|-
| [http://maemo.org/profile/view/mab1.html mab1]
| Mark Belec
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/maba.html maba]
| Mauricio Barraza
| 2007-08-15 11:40:19
|-
| [http://maemo.org/profile/view/mabbas.html mabbas]
| mohamed abbas
| 2008-04-16 20:41:19
|-
| [http://maemo.org/profile/view/macaubas.html macaubas]
| Lutz Lehmann
| 2007-11-16 17:49:27
|-
| [http://maemo.org/profile/view/macberh.html macberh]
| Richard Schulte
| 2007-05-18 19:13:33
|-
| [http://maemo.org/profile/view/macbruce.html macbruce]
| simon bruce
| 2008-01-04 16:42:11
|-
| [http://maemo.org/profile/view/macchino.html macchino]
| macchi alessandro
| 2007-05-18 19:12:07
|-
| [http://maemo.org/profile/view/maccord.html maccord]
| marc andrews
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/maccyjam.html maccyjam]
| James Mac
| 2007-12-31 17:40:58
|-
| [http://maemo.org/profile/view/maceo.html maceo]
| Sven Koerber
| 2007-10-20 10:40:30
|-
| [http://maemo.org/profile/view/macerch.html macerch]
| Mauro Cerchiai
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/macgammmb.html macgammmb]
| Mathieu McBee
| 2007-12-24 08:41:17
|-
| [http://maemo.org/profile/view/machados.html machados]
| Sergio Machado
| 2007-05-30 08:40:45
|-
| [http://maemo.org/profile/view/machimivuole.html machimivuole]
| carlini gabriele
| 2008-02-17 12:30:59
|-
| [http://maemo.org/profile/view/machinehead.html machinehead]
| Jason Cole
| 2007-11-16 17:48:50
|-
| [http://maemo.org/profile/view/maclellan.html maclellan]
| scott Maclellan
| 2008-01-10 09:41:01
|-
| [http://maemo.org/profile/view/maclo.html maclo]
| Lorenzo Tedesco
| 2007-12-21 00:41:02
|-
| [http://maemo.org/profile/view/macman.html macman]
| André Lex
| 2007-11-05 18:40:42
|-
| [http://maemo.org/profile/view/macman92363.html macman92363]
| ken maclean
| 2008-01-12 00:41:00
|-
| [http://maemo.org/profile/view/macmonk.html macmonk]
| Dan Monk
| 2008-03-14 19:31:11
|-
| [http://maemo.org/profile/view/macpuarsa.html macpuarsa]
| Edison Kuok
| 2008-05-19 14:41:10
|-
| [http://maemo.org/profile/view/macr0t0r.html macr0t0r]
| James Sorenson
| 2008-04-18 18:41:08
|-
| [http://maemo.org/profile/view/macrob69.html macrob69]
| Rob Johnstone
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/macsat.html macsat]
| mac sat
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/macster_man1976.html macster_man1976]
| Kenneth MacLean
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/macstibs.html macstibs]
| D Waserstein
| 2008-03-13 05:31:10
|-
| [http://maemo.org/profile/view/macsuzuki.html macsuzuki]
| Mac Suzuki
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/macwang.html macwang]
| Mac Wang
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/madcat.html madcat]
| Adrien BUSTANY
| 2008-03-25 17:33:50
|-
| [http://maemo.org/profile/view/madchicken.html madchicken]
| Pierpaolo Follia
| 2007-10-22 07:40:35
|-
| [http://maemo.org/profile/view/madcity83.html madcity83]
| CK Seow
| 2007-11-03 02:40:39
|-
| [http://maemo.org/profile/view/madcow3417.html madcow3417]
| madcow 3417
| 2007-07-01 00:40:07
|-
| [http://maemo.org/profile/view/maddler.html maddler]
| William Maddler
| 2007-05-18 19:12:02
|-
| [http://maemo.org/profile/view/maddoxa.html maddoxa]
| alice maddox
| 2008-05-20 23:40:13
|-
| [http://maemo.org/profile/view/madeinfi.html madeinfi]
| Jouni Nurmi
| 2007-11-16 17:49:05
|-
| [http://maemo.org/profile/view/madfreak.html madfreak]
| lawrence spivey
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/madhu.html madhu]
| Madhu Nadempalli
| 2007-11-16 17:47:48
|-
| [http://maemo.org/profile/view/madhu_suriya.html madhu_suriya]
| Madhusudhan Nanjappa
| 2007-12-19 08:40:55
|-
| [http://maemo.org/profile/view/madkangas.html madkangas]
| Matt Kangas
| 2007-10-19 05:40:27
|-
| [http://maemo.org/profile/view/madking426.html madking426]
| Leslie Lee
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/madman2k.html madman2k]
| Pavel Rojtberg
| 2007-10-23 08:40:40
|-
| [http://maemo.org/profile/view/madmanltdz.html madmanltdz]
| aaron bradshaw
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/madscientist.html madscientist]
| Philip Kohn
| 2008-01-11 11:11:23
|-
| [http://maemo.org/profile/view/madsk.html madsk]
| Mads Kristensen
| 2007-11-16 17:49:24
|-
| [http://maemo.org/profile/view/madymax.html madymax]
| A Popa
| 2008-04-23 10:41:20
|-
| [http://maemo.org/profile/view/maeka.html maeka]
| enrico Kalb
| 2007-10-24 15:40:34
|-
| [http://maemo.org/profile/view/maemo.html maemo]
| we gdf
| 2007-05-29 18:40:40
|-
| [http://maemo.org/profile/view/maemoac.html maemoac]
| X Y
| 2007-05-18 19:13:17
|-
| [http://maemo.org/profile/view/maemobcn.html maemobcn]
| jo lo
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/maemocoder.html maemocoder]
| Eugene Kalinin
| 2008-05-31 22:41:18
|-
| [http://maemo.org/profile/view/maemodaf.html maemodaf]
| daf .
| 2007-05-18 19:14:16
|-
| [http://maemo.org/profile/view/maemojari.html maemojari]
| Jari Lunkka
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/maemomusiq.html maemomusiq]
| Donnele Herring
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/maemopat.html maemopat]
| Pat Nicholls
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/maemore.html maemore]
| Adnog Sinne
| 2008-05-11 01:41:07
|-
| [http://maemo.org/profile/view/maemotaku.html maemotaku]
| Aratus Clarke
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/maemoteam.html maemoteam]
| Maemo Team team
| 2007-11-30 10:49:11
|-
| [http://maemo.org/profile/view/maemo_jem123.html maemo_jem123]
| Matt Stormer
| 2008-01-25 18:32:23
|-
| [http://maemo.org/profile/view/maennes.html maennes]
| Martin Buscher
| 2007-11-28 15:43:44
|-
| [http://maemo.org/profile/view/maerr.html maerr]
| Er Oz
| 2007-11-30 10:48:58
|-
| [http://maemo.org/profile/view/maestrojal.html maestrojal]
| Jared Leuck
| 2007-07-01 11:40:07
|-
| [http://maemo.org/profile/view/maestro_alubia.html maestro_alubia]
| Fabian Köster
| 2008-04-23 11:41:12
|-
| [http://maemo.org/profile/view/mafmanet.html mafmanet]
| Myrle Francis
| 2007-07-10 17:40:19
|-
| [http://maemo.org/profile/view/magarj.html magarj]
| Jeff Magar
| 2007-12-29 18:41:05
|-
| [http://maemo.org/profile/view/maggie.html maggie]
| maggie reeve
| 2007-05-18 19:13:11
|-
| [http://maemo.org/profile/view/maggot_dzx.html maggot_dzx]
| Pedro Diaz
| 2007-10-28 20:40:35
|-
| [http://maemo.org/profile/view/magicfab.html magicfab]
| Fabian Rodriguez
| 2007-10-19 18:40:06
|-
| [http://maemo.org/profile/view/magicman1970.html magicman1970]
| david mayhew
| 2007-11-28 15:43:11
|-
| [http://maemo.org/profile/view/magironmic.html magironmic]
| Wendell Magdalena
| 2007-10-20 14:40:31
|-
| [http://maemo.org/profile/view/magnusl.html magnusl]
| Magnus Larsson
| 2007-04-04 08:16:22
|-
| [http://maemo.org/profile/view/magnuslar.html magnuslar]
| Magnus Larsson
| 2008-04-13 21:41:10
|-
| [http://maemo.org/profile/view/mago.html mago]
| Georg Levshin
| 2007-12-27 20:41:33
|-
| [http://maemo.org/profile/view/magpye.html magpye]
| Maggie Kimball
| 2007-07-01 17:40:07
|-
| [http://maemo.org/profile/view/magreen.html magreen]
| Matthew Green
| 2008-01-20 12:31:03
|-
| [http://maemo.org/profile/view/mahdionline.html mahdionline]
| mahdi online
| 2008-05-27 12:41:17
|-
| [http://maemo.org/profile/view/mahesh4pritesh.html mahesh4pritesh]
| mahesh kanani
| 2008-05-03 09:41:18
|-
| [http://maemo.org/profile/view/mahmoud.html mahmoud]
| mahmoud elsayed
| 2008-01-02 05:40:55
|-
| [http://maemo.org/profile/view/mahmud.html mahmud]
| Kirill Mukhametov
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/mahmutsahin.html mahmutsahin]
| mahmut sahin
| 2008-03-23 00:31:02
|-
| [http://maemo.org/profile/view/mahsah.html mahsah]
| Mahmut Sahin
| 2008-03-17 12:31:02
|-
| [http://maemo.org/profile/view/maiden.html maiden]
| Kola Sokol
| 2008-05-22 13:41:11
|-
| [http://maemo.org/profile/view/mainman.html mainman]
| Renaud Vizié
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/maitomo.html maitomo]
| tomoyuki maita
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/majakka.html majakka]
| pauli keinanen
| 2008-05-23 19:41:26
|-
| [http://maemo.org/profile/view/majesty4.html majesty4]
| Steve R Sior
| 2007-12-11 16:26:16
|-
| [http://maemo.org/profile/view/majmal26.html majmal26]
| Mudassar Ajmal
| 2008-05-08 02:41:06
|-
| [http://maemo.org/profile/view/majomo.html majomo]
| Joe Hammonds
| 2007-05-18 19:12:29
|-
| [http://maemo.org/profile/view/majorsporto.html majorsporto]
| Rich Phillips
| 2008-02-20 21:31:01
|-
| [http://maemo.org/profile/view/mak.html mak]
| blah blah
| 2007-11-16 17:48:49
|-
| [http://maemo.org/profile/view/makaveli.html makaveli]
| Frederic DIKA
| 2007-10-19 11:40:27
|-
| [http://maemo.org/profile/view/makaveli6480.html makaveli6480]
| Ali Azzam
| 2007-11-16 17:47:46
|-
| [http://maemo.org/profile/view/makelaa.html makelaa]
| Aapo Makela
| 2007-05-18 19:11:14
|-
| [http://maemo.org/profile/view/maketo.html maketo]
| Ognen Duzlevski
| 2007-12-11 16:26:35
|-
| [http://maemo.org/profile/view/makher28.html makher28]
| maki moli
| 2007-10-20 13:40:31
|-
| [http://maemo.org/profile/view/makiston.html makiston]
| abdul aziz abubakar
| 2008-03-29 01:31:26
|-
| [http://maemo.org/profile/view/mako.html mako]
| Dan Nichols
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/maks61.html maks61]
| Максим Римский
| 2008-02-05 19:31:31
|-
| [http://maemo.org/profile/view/maksimm7.html maksimm7]
| Maksim M
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/makuchaku.html makuchaku]
| Makuchaku .
| 2007-05-18 19:10:58
|-
| [http://maemo.org/profile/view/malasimbo.html malasimbo]
| Winfried Wellenhöfer
| 2007-10-28 08:40:34
|-
| [http://maemo.org/profile/view/maldonados.html maldonados]
| carlos maldonado
| 2007-05-29 09:30:40
|-
| [http://maemo.org/profile/view/malici606.html malici606]
| jt graham
| 2008-02-14 12:00:45
|-
| [http://maemo.org/profile/view/malin.html malin]
| dd ff
| 2007-10-19 12:40:31
|-
| [http://maemo.org/profile/view/malli.html malli]
| Matias Alli
| 2008-02-26 13:31:05
|-
| [http://maemo.org/profile/view/mallum.html mallum]
| Matthew Allum
| 2007-10-18 13:40:30
|-
| [http://maemo.org/profile/view/maloi.html maloi]
| ivan lorvi
| 2008-01-20 08:31:14
|-
| [http://maemo.org/profile/view/malomba224.html malomba224]
| Mary Lombardo
| 2007-12-11 16:25:46
|-
| [http://maemo.org/profile/view/malong335.html malong335]
| Mark Long
| 2007-11-28 15:42:46
|-
| [http://maemo.org/profile/view/maltron.html maltron]
| Mauricio Leal
| 2007-05-18 19:14:38
|-
| [http://maemo.org/profile/view/maly1.html maly1]
| massimo giordano
| 2008-01-03 12:41:17
|-
| [http://maemo.org/profile/view/malyadri.html malyadri]
| Malyadri Beegala
| 2008-01-20 05:31:01
|-
| [http://maemo.org/profile/view/mamandell.html mamandell]
| MA Mandell
| 2007-05-18 19:11:19
|-
| [http://maemo.org/profile/view/mammamo.html mammamo]
| petri jaarre
| 2008-05-24 18:41:11
|-
| [http://maemo.org/profile/view/mamukrazy.html mamukrazy]
| luis perez
| 2008-04-09 06:41:10
|-
| [http://maemo.org/profile/view/mana.html mana]
| mana guru
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/manasulu.html manasulu]
| KUNIHISA IZUMI
| 2008-02-01 13:31:03
|-
| [http://maemo.org/profile/view/manasulu0826.html manasulu0826]
| Kunihisa Izumi
| 2008-05-04 05:41:16
|-
| [http://maemo.org/profile/view/manciuria.html manciuria]
| Candido Santolla
| 2007-10-19 15:40:31
|-
| [http://maemo.org/profile/view/mancy.html mancy]
| Beta Tester
| 2008-05-17 22:41:07
|-
| [http://maemo.org/profile/view/mandewu.html mandewu]
| jojn buss
| 2007-12-11 16:26:33
|-
| [http://maemo.org/profile/view/mandibela.html mandibela]
| Antti Pajula
| 2007-12-22 13:42:15
|-
| [http://maemo.org/profile/view/mando107304.html mando107304]
| Mohamed Afify
| 2008-03-02 06:31:02
|-
| [http://maemo.org/profile/view/manfredi90.html manfredi90]
| Manfredi Caracausi
| 2007-10-22 11:40:33
|-
| [http://maemo.org/profile/view/mangler.html mangler]
| M T
| 2008-01-11 11:11:25
|-
| [http://maemo.org/profile/view/mangojo.html mangojo]
| jonathan bechard
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/maniack.html maniack]
| Omair Kamil
| 2007-10-19 18:40:35
|-
| [http://maemo.org/profile/view/manish.html manish]
| Manish Patel
| 2008-01-07 06:40:58
|-
| [http://maemo.org/profile/view/manishan.html manishan]
| Shivakumar Manishankar
| 2007-05-18 19:14:48
|-
| [http://maemo.org/profile/view/manix.html manix]
| Michael Trunner
| 2007-11-16 17:50:13
|-
| [http://maemo.org/profile/view/manjunathan_py.html manjunathan_py]
| Manjunathan Padua
| 2007-10-18 17:40:31
|-
| [http://maemo.org/profile/view/manohargujja.html manohargujja]
| Vijay Manohar Rao
| 2008-05-15 06:41:16
|-
| [http://maemo.org/profile/view/manolisfb.html manolisfb]
| manos k
| 2008-04-09 13:41:06
|-
| [http://maemo.org/profile/view/manou.html manou]
| Reuben Reichmann
| 2008-01-26 14:32:37
|-
| [http://maemo.org/profile/view/manpavel.html manpavel]
| Pavel None
| 2007-06-09 03:41:14
|-
| [http://maemo.org/profile/view/manshak0.html manshak0]
| Shailander Mangla
| 2007-11-16 17:47:19
|-
| [http://maemo.org/profile/view/mansmagic.html mansmagic]
| Man Singh
| 2007-07-05 13:40:10
|-
| [http://maemo.org/profile/view/mantas.html mantas]
| Mantas Zapolskas
| 2007-05-18 19:13:09
|-
| [http://maemo.org/profile/view/manu.html manu]
| emmanuel phaet
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/manuelitoss.html manuelitoss]
| manuel perdicaro
| 2008-04-02 13:41:38
|-
| [http://maemo.org/profile/view/maodu1.html maodu1]
| Carl Z
| 2007-12-18 16:41:45
|-
| [http://maemo.org/profile/view/maometto.html maometto]
| Daniele Calabrese
| 2008-03-12 21:31:05
|-
| [http://maemo.org/profile/view/mapelkon.html mapelkon]
| Markus Pelkonen
| 2007-08-30 06:40:22
|-
| [http://maemo.org/profile/view/mar969.html mar969]
| Ian Mar
| 2008-02-06 01:51:59
|-
| [http://maemo.org/profile/view/maradeky.html maradeky]
| Antonin Vit
| 2007-12-25 01:41:39
|-
| [http://maemo.org/profile/view/marcblanchet.html marcblanchet]
| Marc Blanchet
| 2007-11-16 17:47:58
|-
| [http://maemo.org/profile/view/marcelamarmo.html marcelamarmo]
| Marcela Marmo
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/marcell.html marcell]
| Marcell Lengyel
| 2007-05-18 19:14:33
|-
| [http://maemo.org/profile/view/marcelosaviski.html marcelosaviski]
| Marcelo Saviski
| 2008-05-08 14:41:08
|-
| [http://maemo.org/profile/view/marceloxlago.html marceloxlago]
| Marcelo Lago
| 2007-05-18 19:12:13
|-
| [http://maemo.org/profile/view/marcelr.html marcelr]
| marcel ryser
| 2007-11-16 17:49:21
|-
| [http://maemo.org/profile/view/marcham89.html marcham89]
| Michael Archambault
| 2008-03-02 00:31:04
|-
| [http://maemo.org/profile/view/marchand.html marchand]
| Stephane Marchand-Maillet
| 2007-10-19 07:40:31
|-
| [http://maemo.org/profile/view/marchese.html marchese]
| Joe Marchese
| 2008-03-17 09:31:01
|-
| [http://maemo.org/profile/view/marciallus.html marciallus]
| MarCo Lanouiller
| 2007-05-18 19:10:26
|-
| [http://maemo.org/profile/view/marcinp.html marcinp]
| Marcin Pęczek
| 2007-05-18 19:12:28
|-
| [http://maemo.org/profile/view/marciodeg.html marciodeg]
| Marcio Deg
| 2007-11-15 07:56:04
|-
| [http://maemo.org/profile/view/marciom.html marciom]
| Marcio Macedo
| 2007-05-18 19:12:47
|-
| [http://maemo.org/profile/view/marcklein.html marcklein]
| Marc Klein
| 2007-10-20 15:40:32
|-
| [http://maemo.org/profile/view/marcle007.html marcle007]
| marcle marcle
| 2008-05-22 13:40:41
|-
| [http://maemo.org/profile/view/marco.html marco]
| Marco Romano
| 2006-12-13 11:10:03
|-
| [http://maemo.org/profile/view/marco0rotos.html marco0rotos]
| marco de ruvo
| 2008-02-02 19:31:32
|-
| [http://maemo.org/profile/view/marco1268.html marco1268]
| Marco Morelli
| 2007-10-16 00:40:25
|-
| [http://maemo.org/profile/view/marco240267.html marco240267]
| Marco DE MEO
| 2007-12-15 18:41:03
|-
| [http://maemo.org/profile/view/marcog.html marcog]
| marco gattel
| 2007-11-15 17:52:38
|-
| [http://maemo.org/profile/view/marcogi.html marcogi]
| Marco Gigante
| 2007-11-16 17:48:10
|-
| [http://maemo.org/profile/view/marcohandbell.html marcohandbell]
| marco campanella
| 2007-03-19 15:34:20
|-
| [http://maemo.org/profile/view/marcohh.html marcohh]
| Marco Marco
| 2007-05-18 19:10:52
|-
| [http://maemo.org/profile/view/marcohh1972.html marcohh1972]
| marco marco
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/marcondi.html marcondi]
| Marco Monsurro
| 2007-06-08 13:37:17
|-
| [http://maemo.org/profile/view/marcooti.html marcooti]
| ed marcotte
| 2007-10-25 22:40:29
|-
| [http://maemo.org/profile/view/marcushh.html marcushh]
| Marcus Oberdiek
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/marcus_ames.html marcus_ames]
| Marcus Ames
| 2007-12-11 16:25:53
|-
| [http://maemo.org/profile/view/marcxroma.html marcxroma]
| marc roma
| 2008-02-19 23:31:00
|-
| [http://maemo.org/profile/view/mardox.html mardox]
| Matti Jutila
| 2007-11-19 14:41:52
|-
| [http://maemo.org/profile/view/mardy.html mardy]
| Alberto Mardegan
| 2007-05-18 19:12:38
|-
| [http://maemo.org/profile/view/marekz.html marekz]
| Marek Zajac
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/marian.html marian]
| marian szengel
| 2007-12-11 16:25:19
|-
| [http://maemo.org/profile/view/mariasun_39.html mariasun_39]
| Mari Asun
| 2007-05-18 19:12:22
|-
| [http://maemo.org/profile/view/mariauwe.html mariauwe]
| Maria - Katharina Claus
| 2008-01-13 00:40:57
|-
| [http://maemo.org/profile/view/mario.html mario]
| Mario Đanić
| 2007-10-25 00:40:40
|-
| [http://maemo.org/profile/view/marioatc1.html marioatc1]
| Mario Tobar
| 2008-04-23 17:41:09
|-
| [http://maemo.org/profile/view/mariocarrion.html mariocarrion]
| Mario Carrión
| 2007-08-04 22:40:21
|-
| [http://maemo.org/profile/view/marissap.html marissap]
| Marissa Padila
| 2007-11-28 15:43:47
|-
| [http://maemo.org/profile/view/maritam.html maritam]
| Marita Mathie
| 2007-11-28 15:43:36
|-
| [http://maemo.org/profile/view/maritus.html maritus]
| Lukasz Pawlik
| 2007-05-18 19:11:00
|-
| [http://maemo.org/profile/view/maritza.html maritza]
| Maritza Vazquez
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/marius2008.html marius2008]
| marius fjeld
| 2008-01-12 16:41:07
|-
| [http://maemo.org/profile/view/mariuss.html mariuss]
| Marius Scurtescu
| 2007-06-26 18:40:06
|-
| [http://maemo.org/profile/view/mariusz.html mariusz]
| Mariusz Lasek
| 2007-10-18 14:40:30
|-
| [http://maemo.org/profile/view/mariuszzajac.html mariuszzajac]
| Mariusz Zając
| 2007-05-18 19:13:45
|-
| [http://maemo.org/profile/view/marjariitta.html marjariitta]
| marja-riitta kinnunen
| 2006-10-30 17:22:10
|-
| [http://maemo.org/profile/view/marjola.html marjola]
| Pekka Marjola
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/mark.html mark]
| mo mohamed
| 2008-01-26 07:31:06
|-
| [http://maemo.org/profile/view/mark-de.html mark-de]
| markus decker
| 2007-11-15 12:40:44
|-
| [http://maemo.org/profile/view/mark21rebel.html mark21rebel]
| mark perry
| 2007-05-18 19:10:59
|-
| [http://maemo.org/profile/view/mark4096.html mark4096]
| Mark Butler
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/mark5jenny.html mark5jenny]
| mark murphy
| 2008-01-06 16:41:02
|-
| [http://maemo.org/profile/view/markagnew90.html markagnew90]
| mark agnew
| 2007-06-08 13:37:15
|-
| [http://maemo.org/profile/view/markb99.html markb99]
| mark bieon
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/markca.html markca]
| Mark Campbell-Adams
| 2007-11-16 17:47:12
|-
| [http://maemo.org/profile/view/markdp.html markdp]
| mark phillips
| 2008-01-11 18:41:23
|-
| [http://maemo.org/profile/view/markfleser.html markfleser]
| Mark Fleser
| 2007-07-08 01:40:23
|-
| [http://maemo.org/profile/view/markfrith.html markfrith]
| Mark Frith
| 2007-05-18 19:12:59
|-
| [http://maemo.org/profile/view/markgross.html markgross]
| mark gross
| 2007-10-18 18:40:30
|-
| [http://maemo.org/profile/view/markgsaye.html markgsaye]
| Mark Saye
| 2007-10-20 10:40:30
|-
| [http://maemo.org/profile/view/markiemark.html markiemark]
| mark nightingale
| 2008-01-09 10:40:55
|-
| [http://maemo.org/profile/view/markitos.html markitos]
| marko v
| 2007-11-16 17:47:37
|-
| [http://maemo.org/profile/view/markkierzkowski.html markkierzkowski]
| Mark Kierzkowski
| 2007-05-30 05:03:21
|-
| [http://maemo.org/profile/view/marklise.html marklise]
| Mark Lise
| 2007-10-23 17:40:32
|-
| [http://maemo.org/profile/view/marko.html marko]
| Mark Price
| 2007-09-04 06:50:04
|-
| [http://maemo.org/profile/view/markoh.html markoh]
| Marko Hietala
| 2008-05-24 08:41:07
|-
| [http://maemo.org/profile/view/markos.html markos]
| Marko Samastur
| 2007-10-18 14:40:25
|-
| [http://maemo.org/profile/view/markovuksanovic.html markovuksanovic]
| Marko Vuksanovic
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/markperry.html markperry]
| mark perry
| 2007-05-18 19:10:30
|-
| [http://maemo.org/profile/view/markrich.html markrich]
| Mark Rich
| 2008-05-01 19:41:06
|-
| [http://maemo.org/profile/view/marksalinowec.html marksalinowec]
| Mark Salinowec
| 2007-11-16 17:49:13
|-
| [http://maemo.org/profile/view/marksandiego.html marksandiego]
| Mark San Diego
| 2007-10-14 23:40:27
|-
| [http://maemo.org/profile/view/markswan.html markswan]
| mark swanson
| 2007-11-16 17:48:02
|-
| [http://maemo.org/profile/view/markturner.html markturner]
| mark turner
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/markus2066.html markus2066]
| mark davies
| 2008-03-13 03:31:05
|-
| [http://maemo.org/profile/view/markusk.html markusk]
| markus kreiner
| 2007-12-11 16:25:12
|-
| [http://maemo.org/profile/view/markusx.html markusx]
| mark usx
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/markvm.html markvm]
| mark mohnkern
| 2008-02-17 01:31:08
|-
| [http://maemo.org/profile/view/markw.html markw]
| Mark Wilson
| 2007-11-16 17:49:26
|-
| [http://maemo.org/profile/view/markynl.html markynl]
| jalal al kardali
| 2007-11-16 17:46:29
|-
| [http://maemo.org/profile/view/markyoung.html markyoung]
| Mark Young
| 2007-07-07 23:40:11
|-
| [http://maemo.org/profile/view/mark_kent.html mark_kent]
| Mark Kent
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/marlonj.html marlonj]
| Marlon Manrique
| 2007-11-28 15:43:26
|-
| [http://maemo.org/profile/view/marlus.html marlus]
| Marcus Ahlfors
| 2007-10-22 06:40:32
|-
| [http://maemo.org/profile/view/maroo.html maroo]
| Irene Arredeoneo
| 2008-01-25 20:33:15
|-
| [http://maemo.org/profile/view/marquezd.html marquezd]
| Daniel Márquez
| 2007-05-18 19:12:24
|-
| [http://maemo.org/profile/view/marreini.html marreini]
| Markku Reinikainen
| 2007-11-16 17:47:06
|-
| [http://maemo.org/profile/view/marros.html marros]
| Ross Marshall
| 2008-01-11 16:41:09
|-
| [http://maemo.org/profile/view/marsel331.html marsel331]
| marsel khayrullin
| 2007-06-19 07:10:37
|-
| [http://maemo.org/profile/view/marshallhscott.html marshallhscott]
| Arshall Scotti
| 2008-01-16 18:41:40
|-
| [http://maemo.org/profile/view/marslars.html marslars]
| Lars Nielsen
| 2008-01-08 11:40:59
|-
| [http://maemo.org/profile/view/marticek.html marticek]
| Michael Marticek
| 2008-04-07 03:41:15
|-
| [http://maemo.org/profile/view/martinc.html martinc]
| Martin Cheng
| 2007-11-06 01:40:58
|-
| [http://maemo.org/profile/view/martinjakubik.html martinjakubik]
| martin jakubik
| 2008-04-20 20:41:11
|-
| [http://maemo.org/profile/view/martinux.html martinux]
| Martin MOUZE
| 2007-10-18 19:40:42
|-
| [http://maemo.org/profile/view/martinwinlow.html martinwinlow]
| Martin Winlow
| 2007-06-21 15:40:06
|-
| [http://maemo.org/profile/view/martin_aedla.html martin_aedla]
| Martin Aedla
| 2008-05-22 13:41:10
|-
| [http://maemo.org/profile/view/martin_gz.html martin_gz]
| Martin Vazquez Cabanas
| 2007-05-18 19:14:28
|-
| [http://maemo.org/profile/view/martroy.html martroy]
| martin hunt
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/marty5924.html marty5924]
| Mercedes Figueroa
| 2008-03-14 18:31:36
|-
| [http://maemo.org/profile/view/marty5924z.html marty5924z]
| Mercedes Marty
| 2008-03-25 14:31:08
|-
| [http://maemo.org/profile/view/marty707.html marty707]
| Marty Marty
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/martyk01.html martyk01]
| martin kesselman
| 2007-12-20 21:41:58
|-
| [http://maemo.org/profile/view/martynizer.html martynizer]
| Martyn Evans
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/martynovis.html martynovis]
| Igor Martynov
| 2008-03-11 16:31:02
|-
| [http://maemo.org/profile/view/martynv1.html martynv1]
| Vitaly Martynchuk
| 2008-03-06 12:31:21
|-
| [http://maemo.org/profile/view/martyskitch.html martyskitch]
| Mart squicciarini
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/martyt7.html martyt7]
| marty thurber
| 2007-11-03 02:40:37
|-
| [http://maemo.org/profile/view/martytem.html martytem]
| Martin TemchuK
| 2007-07-01 13:40:08
|-
| [http://maemo.org/profile/view/marvin.html marvin]
| marvin -
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/marvince.html marvince]
| Vincent Elens
| 2008-06-06 20:31:19
|-
| [http://maemo.org/profile/view/marvlk.html marvlk]
| Marvin L Kopf
| 2007-07-11 05:40:09
|-
| [http://maemo.org/profile/view/marvs98.html marvs98]
| Marvin Briones
| 2007-11-16 17:47:07
|-
| [http://maemo.org/profile/view/maryjane2008.html maryjane2008]
| MaryJane Esmero
| 2008-04-06 22:41:04
|-
| [http://maemo.org/profile/view/marysia.html marysia]
| maria sawicki
| 2008-01-15 14:42:20
|-
| [http://maemo.org/profile/view/mas.html mas]
| Darius Fezter
| 2008-03-30 14:31:05
|-
| [http://maemo.org/profile/view/masab.html masab]
| Matti Bräysy
| 2007-05-18 19:10:37
|-
| [http://maemo.org/profile/view/masamio.html masamio]
| Sami Matala
| 2007-05-18 19:12:23
|-
| [http://maemo.org/profile/view/masaya7.html masaya7]
| masaya kobayashi
| 2008-01-28 00:31:05
|-
| [http://maemo.org/profile/view/masc.html masc]
| milton case
| 2007-12-11 16:25:37
|-
| [http://maemo.org/profile/view/mashbill.html mashbill]
| Mash Bill
| 2007-11-06 01:40:59
|-
| [http://maemo.org/profile/view/maslovsky.html maslovsky]
| Anton Maslovsky
| 2007-05-18 19:11:20
|-
| [http://maemo.org/profile/view/masmithca.html masmithca]
| Michael Smith
| 2007-06-19 07:10:38
|-
| [http://maemo.org/profile/view/masmunoz.html masmunoz]
| Marc Munoz
| 2007-12-22 17:41:44
|-
| [http://maemo.org/profile/view/massee.html massee]
| Michael Massee
| 2008-01-07 16:41:25
|-
| [http://maemo.org/profile/view/massimiliano.html massimiliano]
| Massimiliano Belletti
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/massimo770.html massimo770]
| massimo fortuni
| 2007-02-01 23:30:06
|-
| [http://maemo.org/profile/view/massimotux.html massimotux]
| MASSIMO FORTUNI
| 2008-04-07 22:46:06
|-
| [http://maemo.org/profile/view/mastadave99999.html mastadave99999]
| Davis Di Lillo
| 2007-12-27 16:42:26
|-
| [http://maemo.org/profile/view/mastda.html mastda]
| Nick Lippa
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/masterjkd.html masterjkd]
| George Wang
| 2007-11-16 17:49:31
|-
| [http://maemo.org/profile/view/mastiff.html mastiff]
| ivan sapelkin
| 2008-01-28 12:32:34
|-
| [http://maemo.org/profile/view/mastiff1985.html mastiff1985]
| ivan petrov
| 2008-04-19 05:41:04
|-
| [http://maemo.org/profile/view/mat.html mat]
| Mathieu Pillard
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/matala.html matala]
| Luca Aluffi
| 2007-10-22 00:40:42
|-
| [http://maemo.org/profile/view/matallo.html matallo]
| Carlos Matallin Civera
| 2007-10-21 23:40:34
|-
| [http://maemo.org/profile/view/matan.html matan]
| Matan Ziv-Av
| 2007-05-18 19:13:33
|-
| [http://maemo.org/profile/view/mateagar.html mateagar]
| Matthew Eagar
| 2008-01-17 20:42:06
|-
| [http://maemo.org/profile/view/matech.html matech]
| Markus Wagner
| 2008-04-16 11:41:07
|-
| [http://maemo.org/profile/view/mateen_maldar.html mateen_maldar]
| Maldar Mateen
| 2007-05-18 19:12:46
|-
| [http://maemo.org/profile/view/mateo.html mateo]
| Matthew Bodaly
| 2007-11-15 07:56:25
|-
| [http://maemo.org/profile/view/mateus.html mateus]
| Mateus Zenaide
| 2008-01-16 18:41:41
|-
| [http://maemo.org/profile/view/mathew.html mathew]
| Mathew -
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/mathieu63.html mathieu63]
| Mathieu Renault
| 2007-05-18 19:12:50
|-
| [http://maemo.org/profile/view/mathieugrin.html mathieugrin]
| Mathieu Grin
| 2007-11-16 17:49:29
|-
| [http://maemo.org/profile/view/mati.html mati]
| mati shirizly
| 2007-10-22 14:40:33
|-
| [http://maemo.org/profile/view/matiaz.html matiaz]
| Matias Juntunen
| 2007-10-23 19:40:36
|-
| [http://maemo.org/profile/view/matizovod.html matizovod]
| Georgy Agafonov
| 2008-02-09 20:31:41
|-
| [http://maemo.org/profile/view/matjones.html matjones]
| mat jones
| 2007-02-17 04:30:11
|-
| [http://maemo.org/profile/view/matmat23.html matmat23]
| matthew Travers
| 2007-12-26 15:51:48
|-
| [http://maemo.org/profile/view/matmota.html matmota]
| Alberto González Palomo
| 2007-10-21 12:40:33
|-
| [http://maemo.org/profile/view/matneee.html matneee]
| Martin Allen
| 2007-05-18 19:14:42
|-
| [http://maemo.org/profile/view/mato.html mato]
| Martin Lucina
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/matomeramat.html matomeramat]
| matome ramathoka
| 2008-03-19 16:31:01
|-
| [http://maemo.org/profile/view/maton.html maton]
| Martin Porac
| 2007-10-27 22:41:18
|-
| [http://maemo.org/profile/view/matrix3937.html matrix3937]
| Dieter Kamke
| 2007-10-23 18:40:40
|-
| [http://maemo.org/profile/view/matrixemre15.html matrixemre15]
| emre yaaşa
| 2008-01-24 21:43:20
|-
| [http://maemo.org/profile/view/matsavol.html matsavol]
| Matti Savolainen
| 2007-10-20 20:40:30
|-
| [http://maemo.org/profile/view/matsho.html matsho]
| Thomas Cobb
| 2007-11-28 15:43:33
|-
| [http://maemo.org/profile/view/matt.html matt]
| Matt Johnston
| 2007-10-20 12:40:34
|-
| [http://maemo.org/profile/view/mattdb.html mattdb]
| Matt Dimond-Brown
| 2007-12-11 16:24:27
|-
| [http://maemo.org/profile/view/mattdraco.html mattdraco]
| Matt Warnecke
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/mattedm.html mattedm]
| Matt R
| 2007-11-28 15:43:43
|-
| [http://maemo.org/profile/view/matteoc.html matteoc]
| Matteo Carli
| 2007-10-22 07:40:35
|-
| [http://maemo.org/profile/view/matteoca.html matteoca]
| Matteo Campofiorito
| 2007-10-21 15:40:32
|-
| [http://maemo.org/profile/view/matteodcm.html matteodcm]
| matteo della corte
| 2007-12-13 17:41:01
|-
| [http://maemo.org/profile/view/matteomc.html matteomc]
| Matteo rossi
| 2007-10-23 08:40:41
|-
| [http://maemo.org/profile/view/matthew.html matthew]
| michael sibblies
| 2008-01-12 01:41:01
|-
| [http://maemo.org/profile/view/matthew3.html matthew3]
| matthew hirtz
| 2007-11-16 17:47:46
|-
| [http://maemo.org/profile/view/matthewciuccio.html matthewciuccio]
| matthew ciuccio
| 2007-11-28 15:43:14
|-
| [http://maemo.org/profile/view/matthews_rj.html matthews_rj]
| John Matthews
| 2007-07-07 07:40:17
|-
| [http://maemo.org/profile/view/matthias.html matthias]
| Matthias Stürmer
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/matti.html matti]
| Matti Ollila
| 2007-11-16 17:49:25
|-
| [http://maemo.org/profile/view/mattikorola.html mattikorola]
| Matti Korola
| 2007-05-18 19:11:00
|-
| [http://maemo.org/profile/view/mattk.html mattk]
| Matthew Kleczewski
| 2008-05-26 16:41:16
|-
| [http://maemo.org/profile/view/mattmay.html mattmay]
| Matt May
| 2007-10-23 19:40:31
|-
| [http://maemo.org/profile/view/mattmills.html mattmills]
| Matt Mills
| 2008-04-15 01:41:08
|-
| [http://maemo.org/profile/view/mattocchi.html mattocchi]
| Mirco Attocchi
| 2008-06-03 22:41:10
|-
| [http://maemo.org/profile/view/mattox.html mattox]
| Matthew Hughes
| 2007-10-18 14:40:28
|-
| [http://maemo.org/profile/view/mattrixhax.html mattrixhax]
| Michael Dick
| 2007-06-25 14:40:09
|-
| [http://maemo.org/profile/view/mattrs.html mattrs]
| Matt Rogers
| 2007-05-23 05:29:40
|-
| [http://maemo.org/profile/view/mattwb.html mattwb]
| Matthew Boyd
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/mattybp.html mattybp]
| matthew plager
| 2007-05-18 19:11:43
|-
| [http://maemo.org/profile/view/matty_matt.html matty_matt]
| Matt Wakeman
| 2007-05-18 19:10:38
|-
| [http://maemo.org/profile/view/matz.html matz]
| Markus Maletz
| 2007-06-08 13:37:16
|-
| [http://maemo.org/profile/view/mat_jack1.html mat_jack1]
| Matteo Giaccone
| 2007-11-04 22:40:43
|-
| [http://maemo.org/profile/view/mauddib.html mauddib]
| Stuart Chown
| 2008-03-01 17:31:01
|-
| [http://maemo.org/profile/view/maulkin.html maulkin]
| Neil McGovern
| 2007-10-23 08:40:40
|-
| [http://maemo.org/profile/view/maurice1.html maurice1]
| maurice devrell
| 2008-02-09 10:31:06
|-
| [http://maemo.org/profile/view/maurice800.html maurice800]
| Maurice devere
| 2008-04-10 11:41:05
|-
| [http://maemo.org/profile/view/mauricem.html mauricem]
| Maurice Marks
| 2007-05-18 19:11:26
|-
| [http://maemo.org/profile/view/mauricio.html mauricio]
| Marko Peitsila
| 2007-05-18 19:12:42
|-
| [http://maemo.org/profile/view/maurolinux.html maurolinux]
| mauro attardi
| 2007-10-25 16:40:33
|-
| [http://maemo.org/profile/view/maurs.html maurs]
| Salvatore Cristofaro
| 2007-10-21 22:40:34
|-
| [http://maemo.org/profile/view/maven.html maven]
| sheila brol
| 2008-01-06 18:41:05
|-
| [http://maemo.org/profile/view/maverick.html maverick]
| Maverick Ruelos
| 2007-10-19 04:40:30
|-
| [http://maemo.org/profile/view/maverick12345.html maverick12345]
| NATHAN ROWDEN
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/mavi.html mavi]
| Virpi Mattila
| 2008-02-11 10:31:05
|-
| [http://maemo.org/profile/view/mavire.html mavire]
| Markku Vire
| 2007-02-09 23:10:10
|-
| [http://maemo.org/profile/view/max.html max]
| max master
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/max2003.html max2003]
| Clausi Massimiiano
| 2007-12-24 12:41:00
|-
| [http://maemo.org/profile/view/maxcerra.html maxcerra]
| max cerra
| 2007-12-28 08:41:12
|-
| [http://maemo.org/profile/view/maxfax.html maxfax]
| b l
| 2008-04-30 20:41:06
|-
| [http://maemo.org/profile/view/maxilogan.html maxilogan]
| Omar Filippini
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/maxim.html maxim]
| Maxim Osipov
| 2007-10-19 08:40:30
|-
| [http://maemo.org/profile/view/maximan.html maximan]
| Matt Taylor
| 2007-07-29 09:20:55
|-
| [http://maemo.org/profile/view/maximian28.html maximian28]
| Massimiliano Lignelli
| 2008-01-17 13:41:17
|-
| [http://maemo.org/profile/view/maximo4k.html maximo4k]
| Maksym Kuvyklin
| 2007-12-12 17:40:49
|-
| [http://maemo.org/profile/view/maximo818.html maximo818]
| maximo teves
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/maximusign.html maximusign]
| maximus maximus
| 2008-03-19 02:31:02
|-
| [http://maemo.org/profile/view/maxitwist.html maxitwist]
| rob gall
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/maxjhuang.html maxjhuang]
| JH Alchemie
| 2007-05-18 19:14:38
|-
| [http://maemo.org/profile/view/maxking.html maxking]
| Massimo Reddavide
| 2007-05-18 19:13:18
|-
| [http://maemo.org/profile/view/maxm.html maxm]
| Max Mopp
| 2007-11-16 17:49:09
|-
| [http://maemo.org/profile/view/maxmenna.html maxmenna]
| max menna
| 2008-01-20 17:41:27
|-
| [http://maemo.org/profile/view/maxoueb.html maxoueb]
| Maxime Boulin
| 2007-10-18 16:40:28
|-
| [http://maemo.org/profile/view/maxx.html maxx]
| Mads Villadsen
| 2007-10-19 21:40:32
|-
| [http://maemo.org/profile/view/maxxam.html maxxam]
| Russ Johnson
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/maxxx.html maxxx]
| max kitson
| 2007-11-05 18:40:43
|-
| [http://maemo.org/profile/view/maxxy.html maxxy]
| Wayne Roach
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/maxxy1.html maxxy1]
| Wayne Roach
| 2007-05-18 19:11:05
|-
| [http://maemo.org/profile/view/max_power.html max_power]
| Rico Kjesa
| 2007-10-18 17:40:29
|-
| [http://maemo.org/profile/view/maygrait.html maygrait]
| enda mcgrath
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/maykomeier.html maykomeier]
| Mayko Meier
| 2007-10-26 09:40:33
|-
| [http://maemo.org/profile/view/mayo.html mayo]
| seamus hayes
| 2007-05-18 19:12:25
|-
| [http://maemo.org/profile/view/mazinga65.html mazinga65]
| Gaspare Cannavò
| 2007-10-22 13:40:33
|-
| [http://maemo.org/profile/view/mazzen.html mazzen]
| Markus Ortel
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/mb108.html mb108]
| Matthew Beals
| 2008-01-06 19:41:37
|-
| [http://maemo.org/profile/view/mbanck.html mbanck]
| Michael Banck
| 2007-11-05 18:40:38
|-
| [http://maemo.org/profile/view/mbass.html mbass]
| Matthew Bassett
| 2007-10-25 08:40:34
|-
| [http://maemo.org/profile/view/mbaumhof.html mbaumhof]
| Michael Baumhof
| 2007-07-07 16:40:15
|-
| [http://maemo.org/profile/view/mbcarroll.html mbcarroll]
| Matt Carroll
| 2007-07-10 23:40:11
|-
| [http://maemo.org/profile/view/mbeckom.html mbeckom]
| melani beckom
| 2007-12-24 06:43:40
|-
| [http://maemo.org/profile/view/mbertoldi.html mbertoldi]
| Michele Bertoldi
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/mbfrog.html mbfrog]
| Denis Bernard
| 2008-01-24 12:32:46
|-
| [http://maemo.org/profile/view/mblondel.html mblondel]
| Mathieu Blondel
| 2007-05-18 19:14:19
|-
| [http://maemo.org/profile/view/mboes.html mboes]
| Mathieu Boespflug
| 2007-05-18 19:11:57
|-
| [http://maemo.org/profile/view/mbogoevici.html mbogoevici]
| Marius Bogoevici
| 2007-07-18 03:40:28
|-
| [http://maemo.org/profile/view/mbuchmann.html mbuchmann]
| Michael Buchmann
| 2007-05-18 19:11:25
|-
| [http://maemo.org/profile/view/mbuesch.html mbuesch]
| Michael Buesch
| 2007-10-20 13:40:32
|-
| [http://maemo.org/profile/view/mcallow.html mcallow]
| Matt Callow
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/mcapurso.html mcapurso]
| Mario Capurso
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/mcarland.html mcarland]
| Michael Carland
| 2008-04-20 03:41:19
|-
| [http://maemo.org/profile/view/mcarmo.html mcarmo]
| MARIA DO CARMO BENEVIDES
| 2008-05-26 22:41:09
|-
| [http://maemo.org/profile/view/mcb.html mcb]
| Mari do Carmo Benevides
| 2008-05-16 00:41:25
|-
| [http://maemo.org/profile/view/mccann.html mccann]
| William Jon McCann
| 2007-10-19 13:40:37
|-
| [http://maemo.org/profile/view/mcdavif1.html mcdavif1]
| sean mcdavid
| 2007-06-27 17:40:09
|-
| [http://maemo.org/profile/view/mcfab.html mcfab]
| Fabrice Smith
| 2007-11-16 17:49:30
|-
| [http://maemo.org/profile/view/mcgrof.html mcgrof]
| Luis Rodriguez
| 2007-10-20 17:40:31
|-
| [http://maemo.org/profile/view/mchapman.html mchapman]
| Mike Chapman
| 2008-02-28 16:31:07
|-
| [http://maemo.org/profile/view/mchehab.html mchehab]
| Mauro Carvalho Chehab
| 2007-10-20 01:40:33
|-
| [http://maemo.org/profile/view/mchenetz.html mchenetz]
| Michael Chenetz
| 2007-05-18 19:10:38
|-
| [http://maemo.org/profile/view/mckayc.html mckayc]
| McKay Christensen
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/mckebapp.html mckebapp]
| S. M.
| 2007-07-06 11:40:09
|-
| [http://maemo.org/profile/view/mckeek.html mckeek]
| Kyle McKee
| 2007-12-26 19:41:09
|-
| [http://maemo.org/profile/view/mckemie.html mckemie]
| William McKemie
| 2007-05-18 19:12:17
|-
| [http://maemo.org/profile/view/mcken.html mcken]
| alain mckenna
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/mckoan1.html mckoan1]
| bruce thompson
| 2007-05-18 19:12:10
|-
| [http://maemo.org/profile/view/mckuikland.html mckuikland]
| M D
| 2007-12-20 05:41:56
|-
| [http://maemo.org/profile/view/mcleod.html mcleod]
| kyle mcleod
| 2008-05-22 03:41:09
|-
| [http://maemo.org/profile/view/mclouser.html mclouser]
| Michael Clouser
| 2007-07-07 16:40:15
|-
| [http://maemo.org/profile/view/mconner.html mconner]
| Montgomery Conner
| 2007-12-29 00:41:13
|-
| [http://maemo.org/profile/view/mcortizo.html mcortizo]
| Marina Belen Cortizo
| 2008-01-31 22:31:46
|-
| [http://maemo.org/profile/view/mcrawler.html mcrawler]
| ilya a p
| 2007-05-23 05:29:31
|-
| [http://maemo.org/profile/view/mcrocker.html mcrocker]
| Mark Crocker
| 2007-05-29 09:30:37
|-
| [http://maemo.org/profile/view/mcu.html mcu]
| Mike Urbanski
| 2007-10-29 15:40:34
|-
| [http://maemo.org/profile/view/mcvera.html mcvera]
| marcelo vera
| 2007-12-16 07:40:52
|-
| [http://maemo.org/profile/view/mdamt.html mdamt]
| Mohammad Anwari
| 2007-05-18 19:11:06
|-
| [http://maemo.org/profile/view/mdawe.html mdawe]
| mtwsed mzajy
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/mdellweg.html mdellweg]
| Matthias Dellweg
| 2008-04-22 14:41:11
|-
| [http://maemo.org/profile/view/mdk.html mdk]
| Michael Dominic K.
| 2007-05-18 19:10:44
|-
| [http://maemo.org/profile/view/mdmillman.html mdmillman]
| Michael Millman
| 2007-12-29 21:41:17
|-
| [http://maemo.org/profile/view/mdmuhala.html mdmuhala]
| mike dmuhala
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/mdomosla.html mdomosla]
| Michal Domoslawski
| 2007-10-18 14:40:30
|-
| [http://maemo.org/profile/view/mdong.html mdong]
| Mike Dong
| 2008-01-15 03:41:02
|-
| [http://maemo.org/profile/view/mdonkers.html mdonkers]
| Mari Donkers
| 2007-07-24 19:40:20
|-
| [http://maemo.org/profile/view/mdos.html mdos]
| marc dostie
| 2008-04-09 17:41:08
|-
| [http://maemo.org/profile/view/mdouge.html mdouge]
| morris douge
| 2007-05-18 19:11:52
|-
| [http://maemo.org/profile/view/mdpye.html mdpye]
| Michael Pye
| 2007-12-30 02:40:58
|-
| [http://maemo.org/profile/view/mdvx.html mdvx]
| Xavier Glattard
| 2007-11-28 17:30:43
|-
| [http://maemo.org/profile/view/mdwgo.html mdwgo]
| Michael Wynn
| 2007-05-18 19:12:13
|-
| [http://maemo.org/profile/view/me987654.html me987654]
| Pete Anderson
| 2007-07-10 17:40:20
|-
| [http://maemo.org/profile/view/mecatronico77.html mecatronico77]
| Alvaro Caballero
| 2007-11-16 17:49:38
|-
| [http://maemo.org/profile/view/mecca148.html mecca148]
| kesean felton
| 2007-12-16 21:41:21
|-
| [http://maemo.org/profile/view/meckie.html meckie]
| Andreas Bender
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/mecksbro.html mecksbro]
| james littrell
| 2007-11-05 20:41:03
|-
| [http://maemo.org/profile/view/medberry.html medberry]
| David Medberry
| 2007-12-31 17:40:57
|-
| [http://maemo.org/profile/view/meden.html meden]
| Alessio Gaeta
| 2007-10-22 13:40:33
|-
| [http://maemo.org/profile/view/medineu.html medineu]
| joel salinas
| 2007-12-24 23:41:11
|-
| [http://maemo.org/profile/view/medspx.html medspx]
| Médéric RIBREUX
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/medved.html medved]
| Alexander Medved
| 2008-03-30 14:31:06
|-
| [http://maemo.org/profile/view/megabyte405.html megabyte405]
| Ryan Pavlik
| 2007-07-06 05:40:12
|-
| [http://maemo.org/profile/view/megacoolrock.html megacoolrock]
| logan armistead
| 2007-11-16 17:49:19
|-
| [http://maemo.org/profile/view/megatronix.html megatronix]
| Pirooz Pasha
| 2007-05-18 19:13:07
|-
| [http://maemo.org/profile/view/mehdigh.html mehdigh]
| Mehdi Ghasemi
| 2007-10-24 12:40:36
|-
| [http://maemo.org/profile/view/meiiem.html meiiem]
| mei mei
| 2007-11-15 07:56:24
|-
| [http://maemo.org/profile/view/meirm.html meirm]
| Meir Michanie
| 2007-09-25 10:40:05
|-
| [http://maemo.org/profile/view/mejm.html mejm]
| Mika Mononen
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/melchizedek.html melchizedek]
| Nicholas Buchanan
| 2007-05-18 19:12:11
|-
| [http://maemo.org/profile/view/melfont.html melfont]
| mark elfont
| 2007-07-04 16:40:16
|-
| [http://maemo.org/profile/view/melipcastro.html melipcastro]
| melisa pereira
| 2007-05-18 19:12:20
|-
| [http://maemo.org/profile/view/melisa4765.html melisa4765]
| Melisa Lawrence
| 2008-02-29 06:30:58
|-
| [http://maemo.org/profile/view/mellis.html mellis]
| Michael Ellis
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/mellow_old_dude.html mellow_old_dude]
| Matt Ehh?
| 2007-10-24 05:40:35
|-
| [http://maemo.org/profile/view/melunko.html melunko]
| Hallyson Melo
| 2007-09-24 12:40:26
|-
| [http://maemo.org/profile/view/mem.html mem]
| Magnus Sandberg
| 2008-01-02 15:41:00
|-
| [http://maemo.org/profile/view/meman.html meman]
| el daif
| 2008-01-25 14:33:09
|-
| [http://maemo.org/profile/view/meme.html meme]
| me alta
| 2008-03-21 19:31:05
|-
| [http://maemo.org/profile/view/memoken-at.html memoken-at]
| hiroaki kashibuchi
| 2008-01-15 01:41:01
|-
| [http://maemo.org/profile/view/mend0za.html mend0za]
| Vlad Shakhov
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/menozero.html menozero]
| Giovanni Pensa
| 2007-10-18 13:40:30
|-
| [http://maemo.org/profile/view/mentatmy.html mentatmy]
| Mehmet Yunt
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/mente.html mente]
| Antonio Parisi
| 2007-10-21 23:40:28
|-
| [http://maemo.org/profile/view/meowson.html meowson]
| Alvis Koon
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/mergitur.html mergitur]
| James Wilhelm
| 2007-11-30 10:48:22
|-
| [http://maemo.org/profile/view/merill00.html merill00]
| Lloyd Merithew
| 2007-12-11 16:25:15
|-
| [http://maemo.org/profile/view/merito.html merito]
| Dawid Wolski
| 2008-04-13 21:41:12
|-
| [http://maemo.org/profile/view/merito123.html merito123]
| Dawid Wolski
| 2008-01-10 00:41:06
|-
| [http://maemo.org/profile/view/merkuralex.html merkuralex]
| Alex Howard
| 2007-11-30 10:49:31
|-
| [http://maemo.org/profile/view/merlin.html merlin]
| Randy Patry
| 2007-11-30 10:49:31
|-
| [http://maemo.org/profile/view/merlincat33.html merlincat33]
| Myra Kelly
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/merryotter.html merryotter]
| Bill Marriott
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/mersiuse.html mersiuse]
| Masoud Serpoushani
| 2008-04-02 10:41:06
|-
| [http://maemo.org/profile/view/mervisivula.html mervisivula]
| Mervi Sivula
| 2007-11-16 17:49:37
|-
| [http://maemo.org/profile/view/mervoid.html mervoid]
| Merrill Newell
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/mervy1231.html mervy1231]
| maurizio indolfi
| 2007-06-25 19:40:07
|-
| [http://maemo.org/profile/view/meshferg.html meshferg]
| Martin Ferguson
| 2007-12-20 21:41:59
|-
| [http://maemo.org/profile/view/messmaker.html messmaker]
| daniele roat
| 2007-10-22 17:40:33
|-
| [http://maemo.org/profile/view/metalhead.html metalhead]
| Metal Head
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/metallicat.html metallicat]
| Brad Morrissey
| 2007-12-17 04:40:49
|-
| [http://maemo.org/profile/view/metallmile.html metallmile]
| mille radamsson
| 2008-05-02 06:41:06
|-
| [http://maemo.org/profile/view/metbot65.html metbot65]
| neil metcalfe
| 2007-11-16 17:49:22
|-
| [http://maemo.org/profile/view/meteozguz.html meteozguz]
| mete ozguz
| 2007-11-19 09:01:25
|-
| [http://maemo.org/profile/view/methatron82.html methatron82]
| bracciantini ivan
| 2007-11-28 15:43:35
|-
| [http://maemo.org/profile/view/methodjs.html methodjs]
| Mike Breland
| 2008-03-15 01:31:11
|-
| [http://maemo.org/profile/view/meti91.html meti91]
| meti a
| 2008-05-26 17:41:11
|-
| [http://maemo.org/profile/view/meticore.html meticore]
| Marcelo Paiva
| 2008-04-20 17:41:19
|-
| [http://maemo.org/profile/view/metinirtemek.html metinirtemek]
| metin irtemek
| 2007-10-26 05:40:35
|-
| [http://maemo.org/profile/view/metis.html metis]
| metis metis
| 2007-10-22 19:40:36
|-
| [http://maemo.org/profile/view/metpolapu.html metpolapu]
| kevin bone
| 2008-05-30 15:41:11
|-
| [http://maemo.org/profile/view/metus.html metus]
| Marcel Boon
| 2007-09-10 20:40:22
|-
| [http://maemo.org/profile/view/meverickgonzo.html meverickgonzo]
| Daniel Steiner
| 2007-11-16 17:47:59
|-
| [http://maemo.org/profile/view/mew.html mew]
| Michael Wilson
| 2007-05-18 19:14:28
|-
| [http://maemo.org/profile/view/mezhekov.html mezhekov]
| Maxim Mezhekov
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/mfalberts.html mfalberts]
| mark alberts
| 2007-12-11 16:24:43
|-
| [http://maemo.org/profile/view/mfbernardes.html mfbernardes]
| Murillo Bernardes
| 2007-05-18 19:12:10
|-
| [http://maemo.org/profile/view/mfd141.html mfd141]
| Frank C
| 2007-11-16 17:47:35
|-
| [http://maemo.org/profile/view/mferreira.html mferreira]
| Miguel Ferreira
| 2007-10-18 18:40:31
|-
| [http://maemo.org/profile/view/mferretti.html mferretti]
| Michele Ferretti
| 2007-10-24 20:40:35
|-
| [http://maemo.org/profile/view/mflaig.html mflaig]
| Michael Flaig
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/mfortner.html mfortner]
| Matthew Fortner
| 2008-02-25 14:31:22
|-
| [http://maemo.org/profile/view/mfrasca.html mfrasca]
| Mario Frasca
| 2007-11-02 15:40:38
|-
| [http://maemo.org/profile/view/mgardina.html mgardina]
| Mick Gardina
| 2007-11-02 19:40:36
|-
| [http://maemo.org/profile/view/mgcolin.html mgcolin]
| Mark Colin
| 2007-05-18 19:11:18
|-
| [http://maemo.org/profile/view/mgedmin.html mgedmin]
| Marius Gedminas
| 2007-05-18 19:10:49
|-
| [http://maemo.org/profile/view/mgeusa.html mgeusa]
| Marco Geusa
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/mgubaidullin.html mgubaidullin]
| Marat Gubaidullin
| 2008-01-24 13:31:17
|-
| [http://maemo.org/profile/view/mgvmarcelo.html mgvmarcelo]
| Marcelo Vieira
| 2007-05-23 05:29:38
|-
| [http://maemo.org/profile/view/mhamed.html mhamed]
| mohamed hamed
| 2007-11-16 17:48:13
|-
| [http://maemo.org/profile/view/mhartgring.html mhartgring]
| Marco Hartgring
| 2008-01-13 09:41:00
|-
| [http://maemo.org/profile/view/mhasuji.html mhasuji]
| muraza hasuji
| 2008-03-22 02:32:14
|-
| [http://maemo.org/profile/view/mhauskn.html mhauskn]
| m hau
| 2008-02-26 16:31:04
|-
| [http://maemo.org/profile/view/mheart2.html mheart2]
| mheart mheart
| 2007-05-18 19:11:59
|-
| [http://maemo.org/profile/view/mheiskar.html mheiskar]
| Markku Heiskari
| 2007-10-25 10:40:32
|-
| [http://maemo.org/profile/view/mhilbery.html mhilbery]
| matt hilbery
| 2007-05-18 19:13:20
|-
| [http://maemo.org/profile/view/mhirsch.html mhirsch]
| Matthew Hirsch
| 2007-07-06 19:40:17
|-
| [http://maemo.org/profile/view/mhklein.html mhklein]
| Marc Klein
| 2007-11-30 10:49:12
|-
| [http://maemo.org/profile/view/mhornyak.html mhornyak]
| Miklós Hornyák
| 2007-11-16 17:49:03
|-
| [http://maemo.org/profile/view/mhoungbo.html mhoungbo]
| Mathias Houngbo
| 2007-10-22 14:40:33
|-
| [http://maemo.org/profile/view/mhts.html mhts]
| Mark Sahim
| 2007-11-30 10:49:36
|-
| [http://maemo.org/profile/view/mhuska.html mhuska]
| Mike Huska
| 2007-11-16 17:46:40
|-
| [http://maemo.org/profile/view/miahon.html miahon]
| Mika Ahonen
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/miamipanther.html miamipanther]
| xudong ni
| 2007-07-07 07:40:18
|-
| [http://maemo.org/profile/view/miamirat.html miamirat]
| thomas rountree
| 2007-11-15 07:56:02
|-
| [http://maemo.org/profile/view/miastrong.html miastrong]
| wilma taranda
| 2007-12-23 15:40:58
|-
| [http://maemo.org/profile/view/mica.html mica]
| Michael Augustin
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/micael.html micael]
| Micael Rodrigues
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/micampe.html micampe]
| Michele Campeotto
| 2008-01-15 12:50:59
|-
| [http://maemo.org/profile/view/micchow.html micchow]
| Mic Chow
| 2007-11-28 15:43:48
|-
| [http://maemo.org/profile/view/micfuc.html micfuc]
| michele fucito
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/mich.html mich]
| Michael Rudolf
| 2007-05-18 19:12:54
|-
| [http://maemo.org/profile/view/michaelajones.html michaelajones]
| Michael Jones
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/michaelboulan.html michaelboulan]
| michael boulanger
| 2007-12-25 22:41:44
|-
| [http://maemo.org/profile/view/michaelcorlett.html michaelcorlett]
| Michael Corlett
| 2008-01-17 12:41:12
|-
| [http://maemo.org/profile/view/michaelczx.html michaelczx]
| chen zhixin
| 2007-07-02 08:40:12
|-
| [http://maemo.org/profile/view/michaelh.html michaelh]
| Michael Hope
| 2008-04-19 00:41:15
|-
| [http://maemo.org/profile/view/michaelhund.html michaelhund]
| Michael Hund
| 2008-02-26 22:31:12
|-
| [http://maemo.org/profile/view/michaelnt.html michaelnt]
| Michael Thompson
| 2007-05-18 19:10:49
|-
| [http://maemo.org/profile/view/michaelsjames.html michaelsjames]
| Michael James
| 2007-05-18 19:12:34
|-
| [http://maemo.org/profile/view/michaelsworld.html michaelsworld]
| Michael Sugden
| 2008-02-02 19:31:31
|-
| [http://maemo.org/profile/view/michaelt.html michaelt]
| Michaël Tucker
| 2007-11-16 17:47:57
|-
| [http://maemo.org/profile/view/michaelu432.html michaelu432]
| Mike Umphress
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/michaelunicycle.html michaelunicycle]
| Martin Willmott
| 2008-05-22 17:41:12
|-
| [http://maemo.org/profile/view/michaelxy.html michaelxy]
| Michael O
| 2007-08-25 07:40:21
|-
| [http://maemo.org/profile/view/micharg.html micharg]
| Michail Argyriou
| 2007-12-18 22:41:43
|-
| [http://maemo.org/profile/view/michelb.html michelb]
| Michel Brabants
| 2007-05-18 19:12:34
|-
| [http://maemo.org/profile/view/michele.html michele]
| michele spina
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/michele93.html michele93]
| michele michele
| 2007-11-19 09:01:25
|-
| [http://maemo.org/profile/view/mick.html mick]
| mitchell webb
| 2008-01-14 03:40:54
|-
| [http://maemo.org/profile/view/mickael.html mickael]
| mick cune
| 2008-02-23 09:30:58
|-
| [http://maemo.org/profile/view/micke.html micke]
| Micke Högdahl
| 2007-10-20 10:40:30
|-
| [http://maemo.org/profile/view/mickerbod.html mickerbod]
| mick elson
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/mickeyjck.html mickeyjck]
| marcos nazario
| 2008-02-19 07:30:59
|-
| [http://maemo.org/profile/view/mickeyl.html mickeyl]
| Michael Lauer
| 2007-10-22 09:40:34
|-
| [http://maemo.org/profile/view/mickfergusonusa.html mickfergusonusa]
| michael ferguson
| 2008-02-12 06:31:12
|-
| [http://maemo.org/profile/view/mickletz.html mickletz]
| wayne mickletz
| 2007-12-11 16:25:57
|-
| [http://maemo.org/profile/view/micko.html micko]
| Michal Kolodziejczyk
| 2007-10-18 13:40:30
|-
| [http://maemo.org/profile/view/mickrouse.html mickrouse]
| mick rouse
| 2007-11-16 17:46:40
|-
| [http://maemo.org/profile/view/micky.html micky]
| Mikko Nieminen
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/micro.html micro]
| Robert Sedlak
| 2008-02-06 00:31:31
|-
| [http://maemo.org/profile/view/microbins.html microbins]
| Mike Robins
| 2008-03-27 13:31:05
|-
| [http://maemo.org/profile/view/microchip123.html microchip123]
| Liam Nelson
| 2008-04-08 08:41:05
|-
| [http://maemo.org/profile/view/microe.html microe]
| Erik Hovland
| 2007-11-16 17:47:57
|-
| [http://maemo.org/profile/view/microfab.html microfab]
| Jim Harper
| 2007-11-28 15:43:36
|-
| [http://maemo.org/profile/view/microguy.html microguy]
| guy lafaille
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/micxer.html micxer]
| Michael Weinrich
| 2006-12-13 22:00:06
|-
| [http://maemo.org/profile/view/midiwall.html midiwall]
| Mark Pulver
| 2007-05-18 19:10:49
|-
| [http://maemo.org/profile/view/midwinter.html midwinter]
| scott rogers
| 2007-11-16 17:49:18
|-
| [http://maemo.org/profile/view/mieltem.html mieltem]
| Anandhi Mani
| 2007-07-02 17:40:16
|-
| [http://maemo.org/profile/view/miezmiez.html miezmiez]
| max master
| 2007-11-30 10:48:29
|-
| [http://maemo.org/profile/view/mightydagz.html mightydagz]
| henry pilapil
| 2007-05-18 19:13:43
|-
| [http://maemo.org/profile/view/mightymoose.html mightymoose]
| peter david
| 2007-10-20 04:40:31
|-
| [http://maemo.org/profile/view/mightymouse.html mightymouse]
| henry pilapil
| 2007-11-16 17:49:28
|-
| [http://maemo.org/profile/view/miguel.html miguel]
| Jose Azevedo
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/miguelangelajo.html miguelangelajo]
| Miguel Angel Ajo Pelayo
| 2007-10-27 21:40:35
|-
| [http://maemo.org/profile/view/miguelaugusto.html miguelaugusto]
| Miguel Falcão
| 2007-05-18 19:12:35
|-
| [http://maemo.org/profile/view/miguelmoura.html miguelmoura]
| Miguel Moura
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/mihaicapota.html mihaicapota]
| Mihai Capotă
| 2007-10-19 18:40:34
|-
| [http://maemo.org/profile/view/mihaivoicu.html mihaivoicu]
| M V
| 2007-07-06 21:40:22
|-
| [http://maemo.org/profile/view/mihalis.html mihalis]
| Mihalis Veletas
| 2007-11-28 15:43:36
|-
| [http://maemo.org/profile/view/miikakuha.html miikakuha]
| Miika Kuha
| 2007-10-18 18:40:30
|-
| [http://maemo.org/profile/view/miiko.html miiko]
| Mikko Antila
| 2007-11-16 17:50:06
|-
| [http://maemo.org/profile/view/miind.html miind]
| samuel bågfors
| 2008-02-08 10:31:31
|-
| [http://maemo.org/profile/view/mika73.html mika73]
| Mika Myllyvaara
| 2007-05-18 19:12:21
|-
| [http://maemo.org/profile/view/mikado.html mikado]
| Phil Reed
| 2008-04-14 15:41:07
|-
| [http://maemo.org/profile/view/mikado2005.html mikado2005]
| Greg Anderson
| 2007-05-18 19:10:41
|-
| [http://maemo.org/profile/view/mikak.html mikak]
| Mika Kumanto
| 2007-06-19 15:40:18
|-
| [http://maemo.org/profile/view/mikal.html mikal]
| Mika Luostarinen
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/mikaluostarinen.html mikaluostarinen]
| mika luostarinen
| 2007-05-18 19:12:03
|-
| [http://maemo.org/profile/view/mikamars.html mikamars]
| Mika Mars
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/mikan.html mikan]
| Mika Niinistö
| 2007-07-30 10:40:19
|-
| [http://maemo.org/profile/view/mikas.html mikas]
| Mika Suonmaa
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/mikaz.html mikaz]
| mikaz z
| 2007-10-14 14:40:07
|-
| [http://maemo.org/profile/view/mika_w.html mika_w]
| Mika Wahlroos
| 2007-11-16 17:46:38
|-
| [http://maemo.org/profile/view/mikchai.html mikchai]
| mike chai
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/mike.html mike]
| Mike Yue
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/mike2000.html mike2000]
| Mike Peter
| 2007-11-30 10:49:36
|-
| [http://maemo.org/profile/view/mike432.html mike432]
| Mike Umphress
| 2007-12-11 16:25:38
|-
| [http://maemo.org/profile/view/mike9152.html mike9152]
| Mike Ehrmann
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/mike99.html mike99]
| mike mike
| 2007-11-15 07:55:42
|-
| [http://maemo.org/profile/view/mikebeard.html mikebeard]
| Mike Beard
| 2007-10-19 03:40:35
|-
| [http://maemo.org/profile/view/mikebell.html mikebell]
| Mike Bell
| 2008-02-05 05:31:10
|-
| [http://maemo.org/profile/view/mikebreuer.html mikebreuer]
| Mike Breuer
| 2008-02-01 22:31:02
|-
| [http://maemo.org/profile/view/mikec.html mikec]
| Mike Cowlishaw
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/mikechue.html mikechue]
| Michael Chue
| 2007-09-07 05:40:05
|-
| [http://maemo.org/profile/view/mikedikta.html mikedikta]
| Mike Dikta
| 2007-12-11 16:24:17
|-
| [http://maemo.org/profile/view/mikeg12.html mikeg12]
| Michael Giuricich
| 2008-01-18 16:31:12
|-
| [http://maemo.org/profile/view/mikehess.html mikehess]
| Michael Hess
| 2007-06-25 14:40:08
|-
| [http://maemo.org/profile/view/mikej262.html mikej262]
| mike jenkins
| 2008-03-24 00:31:02
|-
| [http://maemo.org/profile/view/mikel.html mikel]
| Michael Leeson
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/mikelococo.html mikelococo]
| Mike Lococo
| 2007-02-07 02:33:44
|-
| [http://maemo.org/profile/view/mikem23.html mikem23]
| Michael McLean
| 2007-08-01 21:40:21
|-
| [http://maemo.org/profile/view/mikemoll1984.html mikemoll1984]
| mike moll
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/miken700.html miken700]
| Mike Nelson
| 2008-01-04 18:51:04
|-
| [http://maemo.org/profile/view/miker.html miker]
| Mike Rowehl
| 2007-09-06 05:40:23
|-
| [http://maemo.org/profile/view/mikespit1.html mikespit1]
| mike spit
| 2008-01-30 21:32:04
|-
| [http://maemo.org/profile/view/miketrev.html miketrev]
| Tero Lipponen
| 2007-11-16 17:49:23
|-
| [http://maemo.org/profile/view/mikevraziel.html mikevraziel]
| Kumar Bala
| 2007-12-14 19:41:49
|-
| [http://maemo.org/profile/view/mikewi.html mikewi]
| michael winter
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/mikewright1.html mikewright1]
| Mike Wright
| 2007-11-15 07:55:26
|-
| [http://maemo.org/profile/view/mikeylab.html mikeylab]
| Michael Labozzetta
| 2008-01-01 07:40:59
|-
| [http://maemo.org/profile/view/mikeypr.html mikeypr]
| Mike Peters
| 2007-12-19 00:40:59
|-
| [http://maemo.org/profile/view/mike_bike_kite.html mike_bike_kite]
| Michael Robinson
| 2007-11-16 17:49:26
|-
| [http://maemo.org/profile/view/mike_kelly.html mike_kelly]
| Mike Kelly
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/mike_l.html mike_l]
| Mike L
| 2007-11-16 17:48:28
|-
| [http://maemo.org/profile/view/mike_morrison.html mike_morrison]
| mike morrison
| 2007-05-18 19:12:24
|-
| [http://maemo.org/profile/view/mike_sign.html mike_sign]
| Michael Sign
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/mikhail.html mikhail]
| Mikhail Ramalho
| 2008-03-03 17:31:02
|-
| [http://maemo.org/profile/view/mikhako.html mikhako]
| Mikhail Kostousov
| 2008-03-27 12:31:09
|-
| [http://maemo.org/profile/view/mikian.html mikian]
| Mikko Kokkonen
| 2007-11-16 17:49:22
|-
| [http://maemo.org/profile/view/mikie666666.html mikie666666]
| mike cook
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/mikklepp.html mikklepp]
| Mikko Leppänen
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/mikko.html mikko]
| M M
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/mikkome.html mikkome]
| Mikko Mehtonen
| 2008-02-12 09:31:03
|-
| [http://maemo.org/profile/view/mikkoo.html mikkoo]
| mikko ojutkangas
| 2008-01-30 21:32:05
|-
| [http://maemo.org/profile/view/mikkov.html mikkov]
| Mikko Vartiainen
| 2008-06-06 23:31:11
|-
| [http://maemo.org/profile/view/mikneg.html mikneg]
| Mike Negron
| 2007-06-30 11:40:07
|-
| [http://maemo.org/profile/view/miko.html miko]
| Miko Nieminen
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/mikoikar.html mikoikar]
| Mika Oikarinen
| 2008-02-12 07:31:12
|-
| [http://maemo.org/profile/view/mikr.html mikr]
| Mikko Rantanen
| 2007-11-16 17:50:05
|-
| [http://maemo.org/profile/view/mikrobi.html mikrobi]
| Artur Sikorski
| 2008-02-02 23:33:01
|-
| [http://maemo.org/profile/view/mikroft.html mikroft]
| Mik Roft
| 2008-02-19 16:31:18
|-
| [http://maemo.org/profile/view/miky.html miky]
| michele restuccia
| 2008-02-12 19:31:38
|-
| [http://maemo.org/profile/view/mildness.html mildness]
| Billy Burton
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/mildwine.html mildwine]
| Seong Beom Cheong
| 2007-05-18 19:14:34
|-
| [http://maemo.org/profile/view/miles124.html miles124]
| Tony Foster
| 2007-10-18 17:40:30
|-
| [http://maemo.org/profile/view/milhouse.html milhouse]
| Neil MacLeod
| 2007-11-16 17:50:07
|-
| [http://maemo.org/profile/view/milkplus.html milkplus]
| Valerio Tucci
| 2007-10-24 08:40:36
|-
| [http://maemo.org/profile/view/milldrum.html milldrum]
| Greg Mindrum
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/millennium23.html millennium23]
| Santana Josy
| 2007-11-16 17:48:45
|-
| [http://maemo.org/profile/view/millnok.html millnok]
| Mark Stevens
| 2007-05-18 19:12:52
|-
| [http://maemo.org/profile/view/mimaemo.html mimaemo]
| Di Paola Michele
| 2007-11-16 15:40:46
|-
| [http://maemo.org/profile/view/mina.html mina]
| Mina Anna
| 2008-03-24 13:31:02
|-
| [http://maemo.org/profile/view/minakov.html minakov]
| Vladimir Minakov
| 2007-12-11 23:40:53
|-
| [http://maemo.org/profile/view/minallamture.html minallamture]
| Minal Lamture
| 2007-06-08 13:37:22
|-
| [http://maemo.org/profile/view/minami.html minami]
| Seiichi Minami
| 2008-02-01 17:31:43
|-
| [http://maemo.org/profile/view/minch.html minch]
| Max Minchenko
| 2008-02-04 13:31:11
|-
| [http://maemo.org/profile/view/mindmasta101.html mindmasta101]
| chris jackson
| 2007-07-01 21:40:08
|-
| [http://maemo.org/profile/view/mingjen.html mingjen]
| Ming-Jen Chen
| 2007-07-05 12:40:15
|-
| [http://maemo.org/profile/view/minh.html minh]
| M M
| 2007-11-30 10:48:29
|-
| [http://maemo.org/profile/view/minhhuynh.html minhhuynh]
| minh huynh
| 2007-05-18 19:14:39
|-
| [http://maemo.org/profile/view/minhhuynh21.html minhhuynh21]
| MINH HUYNHQUANG
| 2007-05-18 19:14:21
|-
| [http://maemo.org/profile/view/minibob79.html minibob79]
| robert foster
| 2007-11-16 17:47:25
|-
| [http://maemo.org/profile/view/minimal.html minimal]
| Ian S
| 2007-11-16 17:48:52
|-
| [http://maemo.org/profile/view/minizt.html minizt]
| Evan Lei
| 2007-07-04 02:40:24
|-
| [http://maemo.org/profile/view/minjun.html minjun]
| Minjun Xi
| 2007-10-24 06:40:33
|-
| [http://maemo.org/profile/view/minnam.html minnam]
| Srikanth Minnam
| 2007-09-09 15:40:23
|-
| [http://maemo.org/profile/view/mino.html mino]
| Lefqih Amine
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/minstn.html minstn]
| Mindaugas Stonys
| 2007-05-18 19:13:41
|-
| [http://maemo.org/profile/view/minuet.html minuet]
| Christian Kamis
| 2007-10-22 06:40:30
|-
| [http://maemo.org/profile/view/minuo.html minuo]
| Nicholas Ault
| 2007-11-16 17:47:20
|-
| [http://maemo.org/profile/view/miodrag.html miodrag]
| Miodrag Simovic-Seuss
| 2007-07-04 17:40:14
|-
| [http://maemo.org/profile/view/miorojas.html miorojas]
| mio rojas
| 2008-05-13 15:41:08
|-
| [http://maemo.org/profile/view/mirandasoft.html mirandasoft]
| Marcos Miranda
| 2007-05-23 05:29:45
|-
| [http://maemo.org/profile/view/mirellaamazona.html mirellaamazona]
| Mirella Miller
| 2007-11-16 17:46:40
|-
| [http://maemo.org/profile/view/mirko_bordignon.html mirko_bordignon]
| Mirko Bordignon
| 2007-10-21 23:40:26
|-
| [http://maemo.org/profile/view/miro.html miro]
| Miroslav Rajcic
| 2007-08-30 08:40:23
|-
| [http://maemo.org/profile/view/mirsilla.html mirsilla]
| Mirka Sillanpää
| 2008-01-31 08:31:59
|-
| [http://maemo.org/profile/view/mirumoto.html mirumoto]
| Sera Martin
| 2007-05-18 19:10:58
|-
| [http://maemo.org/profile/view/mirwan.html mirwan]
| mirwan hakim
| 2007-11-16 17:47:20
|-
| [http://maemo.org/profile/view/mirza_daud.html mirza_daud]
| Mirza Abu Baig
| 2007-11-15 07:56:12
|-
| [http://maemo.org/profile/view/mis8231.html mis8231]
| misty gonzalez
| 2007-11-30 10:49:35
|-
| [http://maemo.org/profile/view/mischamolhoek.html mischamolhoek]
| Mischa Molhoek
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/mishas.html mishas]
| Mikhail Sobolev
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/misko.html misko]
| William Miskovetz
| 2007-07-09 02:40:15
|-
| [http://maemo.org/profile/view/misschannel.html misschannel]
| 32335 d2gber
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/missieskittie.html missieskittie]
| missie .
| 2008-01-18 15:31:27
|-
| [http://maemo.org/profile/view/misslovanu.html misslovanu]
| Stephanie White
| 2007-12-28 09:40:54
|-
| [http://maemo.org/profile/view/mist.html mist]
| Mirko Strüßmann
| 2007-05-18 19:11:02
|-
| [http://maemo.org/profile/view/misterchrisso.html misterchrisso]
| Christopher Liesfield
| 2007-11-15 07:56:12
|-
| [http://maemo.org/profile/view/mistergadget.html mistergadget]
| brian schiller
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/misterx.html misterx]
| Darian Hinds
| 2007-11-28 15:43:50
|-
| [http://maemo.org/profile/view/misterx5.html misterx5]
| Darian Hinds
| 2007-07-11 15:40:17
|-
| [http://maemo.org/profile/view/mistieandjames.html mistieandjames]
| james ostolaza
| 2007-05-18 19:10:48
|-
| [http://maemo.org/profile/view/mitch.html mitch]
| Michael Natterer
| 2007-05-18 19:11:31
|-
| [http://maemo.org/profile/view/mitchelln.html mitchelln]
| Neill Mitchell
| 2008-06-10 10:31:24
|-
| [http://maemo.org/profile/view/mitko.html mitko]
| dimitar belchinov
| 2008-05-23 20:41:12
|-
| [http://maemo.org/profile/view/mitzi82.html mitzi82]
| Maurizio Megna
| 2007-05-18 19:11:34
|-
| [http://maemo.org/profile/view/mixal.html mixal]
| Mi Xal
| 2008-05-20 12:41:33
|-
| [http://maemo.org/profile/view/mizme.html mizme]
| metin mizrahi
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/mizto.html mizto]
| Mikko Salmela
| 2008-04-15 08:41:18
|-
| [http://maemo.org/profile/view/mizusawa.html mizusawa]
| Noriko MIZUSAWA
| 2007-05-18 19:13:38
|-
| [http://maemo.org/profile/view/mjames_84.html mjames_84]
| Marc James
| 2008-03-03 20:31:07
|-
| [http://maemo.org/profile/view/mjb.html mjb]
| michael butler
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/mjbright.html mjbright]
| Michael Bright
| 2008-01-02 16:41:08
|-
| [http://maemo.org/profile/view/mjcburr.html mjcburr]
| Matt Burr
| 2007-10-16 15:40:28
|-
| [http://maemo.org/profile/view/mjchoi824.html mjchoi824]
| mark choi
| 2007-12-11 16:25:29
|-
| [http://maemo.org/profile/view/mjcohen.html mjcohen]
| martin cohen
| 2008-01-24 21:43:21
|-
| [http://maemo.org/profile/view/mjd.html mjd]
| Larif Mejdi
| 2007-01-09 18:40:03
|-
| [http://maemo.org/profile/view/mjg59.html mjg59]
| Matthew Garrett
| 2007-10-19 11:40:32
|-
| [http://maemo.org/profile/view/mjiaopal.html mjiaopal]
| Meng Jiao
| 2007-11-16 17:49:19
|-
| [http://maemo.org/profile/view/mjkasper.html mjkasper]
| Michael Kasper
| 2007-07-04 20:40:15
|-
| [http://maemo.org/profile/view/mjl.html mjl]
| Matt Lomuti
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/mjn.html mjn]
| Marko Nykanen
| 2007-05-18 19:10:44
|-
| [http://maemo.org/profile/view/mjpitka2.html mjpitka2]
| Mikko Pitkanen
| 2007-10-29 10:40:38
|-
| [http://maemo.org/profile/view/mjptwo.html mjptwo]
| michael prignano
| 2007-12-30 15:41:09
|-
| [http://maemo.org/profile/view/mjraatik.html mjraatik]
| Mikko Raatikainen
| 2008-04-27 17:41:07
|-
| [http://maemo.org/profile/view/mjwinter.html mjwinter]
| mary winter
| 2007-11-30 10:49:12
|-
| [http://maemo.org/profile/view/mj_bourque.html mj_bourque]
| M&amp;amp;J Bourque
| 2008-03-13 02:32:53
|-
| [http://maemo.org/profile/view/mk1.html mk1]
| mark k
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/mk8.html mk8]
| Torello Querci
| 2007-05-23 05:29:42
|-
| [http://maemo.org/profile/view/mkaul.html mkaul]
| Mario Kaul
| 2008-01-03 07:40:53
|-
| [http://maemo.org/profile/view/mkauppil.html mkauppil]
| Markus Kauppila
| 2008-02-14 12:01:10
|-
| [http://maemo.org/profile/view/mkauzlar.html mkauzlar]
| marko kauzlaric
| 2007-12-24 09:41:05
|-
| [http://maemo.org/profile/view/mkb.html mkb]
| Markus Berg
| 2007-06-19 07:10:38
|-
| [http://maemo.org/profile/view/mkenk.html mkenk]
| Miran Kenk
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/mkharper.html mkharper]
| Michael Harper
| 2007-05-18 19:11:18
|-
| [http://maemo.org/profile/view/mkitt.html mkitt]
| Marios Kimonos
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/mklein.html mklein]
| Mike Klein
| 2007-05-18 19:10:45
|-
| [http://maemo.org/profile/view/mkodc.html mkodc]
| edek jan
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/mkokabi.html mkokabi]
| Mohsen Kokabi
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/mkuehne.html mkuehne]
| Michael Kühne
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/mkulke.html mkulke]
| Magnus Kulke
| 2007-12-27 14:41:02
|-
| [http://maemo.org/profile/view/mkumm.html mkumm]
| Michael Kumm
| 2007-10-15 17:40:11
|-
| [http://maemo.org/profile/view/ml270.html ml270]
| lucio lucio
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/mlafaix.html mlafaix]
| Martin Lafaix
| 2007-10-19 12:40:08
|-
| [http://maemo.org/profile/view/mlafon.html mlafon]
| Marc Lafon
| 2008-03-05 15:31:01
|-
| [http://maemo.org/profile/view/mlannon.html mlannon]
| mike lannon
| 2008-02-05 11:31:12
|-
| [http://maemo.org/profile/view/mlappala.html mlappala]
| Mika Lappalainen
| 2007-11-15 07:56:23
|-
| [http://maemo.org/profile/view/mlazare1.html mlazare1]
| michael lazare
| 2007-12-15 22:40:52
|-
| [http://maemo.org/profile/view/mlceliz.html mlceliz]
| Martin Lopez
| 2008-04-15 17:41:15
|-
| [http://maemo.org/profile/view/mlegault.html mlegault]
| Manuel Legault
| 2007-05-18 19:11:02
|-
| [http://maemo.org/profile/view/mlinnano.html mlinnano]
| Mika Linnanoja
| 2007-11-30 10:49:26
|-
| [http://maemo.org/profile/view/mlinux.html mlinux]
| 商 易
| 2007-10-22 14:40:32
|-
| [http://maemo.org/profile/view/mllattanzi.html mllattanzi]
| Michael Lattanzi
| 2007-05-18 19:11:35
|-
| [http://maemo.org/profile/view/mllbroom.html mllbroom]
| Lynn Broom
| 2008-04-11 21:41:24
|-
| [http://maemo.org/profile/view/mlobato.html mlobato]
| Miguel Lobato
| 2007-12-21 05:40:57
|-
| [http://maemo.org/profile/view/mlouvier.html mlouvier]
| Mike Louvier
| 2007-12-11 16:26:17
|-
| [http://maemo.org/profile/view/mltodino.html mltodino]
| mike todino
| 2007-11-16 17:47:02
|-
| [http://maemo.org/profile/view/mluostarinen.html mluostarinen]
| Mika Luostarinen
| 2007-05-18 19:10:34
|-
| [http://maemo.org/profile/view/mlvj.html mlvj]
| Martin Jenkins
| 2007-05-18 19:10:39
|-
| [http://maemo.org/profile/view/mlyko.html mlyko]
| Marcin Lyko
| 2007-10-18 14:40:30
|-
| [http://maemo.org/profile/view/mm0iol.html mm0iol]
| angus Morrison
| 2008-03-16 15:31:04
|-
| [http://maemo.org/profile/view/mm360.html mm360]
| Peter Anderson
| 2007-12-20 10:42:01
|-
| [http://maemo.org/profile/view/mm79.html mm79]
| Maarten Menheere
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/mmanoj1982.html mmanoj1982]
| mmanoj kumar
| 2007-11-15 07:56:21
|-
| [http://maemo.org/profile/view/mmariani.html mmariani]
| Mario Mariani
| 2007-10-16 19:40:27
|-
| [http://maemo.org/profile/view/mmarshall.html mmarshall]
| Mike Marshall
| 2007-05-18 19:13:56
|-
| [http://maemo.org/profile/view/mmarxmeier.html mmarxmeier]
| Michael Marxmeier
| 2007-10-19 13:40:33
|-
| [http://maemo.org/profile/view/mmauri.html mmauri]
| Marc Mauri
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/mmauter.html mmauter]
| Michael Mauter
| 2007-11-15 07:55:34
|-
| [http://maemo.org/profile/view/mmbutter.html mmbutter]
| Mario Butter
| 2007-05-14 16:40:35
|-
| [http://maemo.org/profile/view/mmelchor.html mmelchor]
| Miguel A. Melchor
| 2007-06-21 13:40:06
|-
| [http://maemo.org/profile/view/mmestery.html mmestery]
| Megan Mestery
| 2007-12-31 14:40:52
|-
| [http://maemo.org/profile/view/mmichelt.html mmichelt]
| Markus Michelt
| 2007-07-01 13:40:08
|-
| [http://maemo.org/profile/view/mmihelic.html mmihelic]
| Matej Mihelič
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/mmirza.html mmirza]
| mochamad mirza
| 2007-05-18 19:11:51
|-
| [http://maemo.org/profile/view/mmm4321.html mmm4321]
| max pat
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/mmreinik.html mmreinik]
| Mika Reinikainen
| 2007-08-13 11:40:19
|-
| [http://maemo.org/profile/view/mmsand.html mmsand]
| melanie sanderson
| 2008-01-22 20:32:18
|-
| [http://maemo.org/profile/view/mmzymxf.html mmzymxf]
| Xiaofeng Mi
| 2007-12-14 22:40:52
|-
| [http://maemo.org/profile/view/mnandikonda.html mnandikonda]
| Mahender Nandikonda
| 2007-06-08 13:37:21
|-
| [http://maemo.org/profile/view/mneblett.html mneblett]
| Michael Neblett
| 2007-11-02 02:40:37
|-
| [http://maemo.org/profile/view/mnk.html mnk]
| Mathias Nicolajsen Kjærgaard
| 2008-02-03 10:31:13
|-
| [http://maemo.org/profile/view/mnomady.html mnomady]
| michael norman
| 2007-05-18 19:11:21
|-
| [http://maemo.org/profile/view/mobi1.html mobi1]
| mobi1 mobi2
| 2008-02-16 18:30:59
|-
| [http://maemo.org/profile/view/mobiledivide.html mobiledivide]
| Itai Kaitano
| 2007-10-19 03:40:35
|-
| [http://maemo.org/profile/view/mobilefluency.html mobilefluency]
| George Batalinski
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/mobilematt.html mobilematt]
| matt sapero
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/mobiplayer.html mobiplayer]
| Pedro J. Pérez Rodríguez
| 2008-03-03 18:31:04
|-
| [http://maemo.org/profile/view/mobmax.html mobmax]
| Maxim Donchenko
| 2007-10-18 21:40:31
|-
| [http://maemo.org/profile/view/mobyflux.html mobyflux]
| Felix P
| 2007-11-16 17:49:05
|-
| [http://maemo.org/profile/view/modelcitizen.html modelcitizen]
| adam morgan
| 2008-04-16 21:41:09
|-
| [http://maemo.org/profile/view/modenoff.html modenoff]
| Vyacheslav Moff
| 2008-03-01 21:31:07
|-
| [http://maemo.org/profile/view/modesto.html modesto]
| Modesto del Río
| 2008-01-27 12:31:46
|-
| [http://maemo.org/profile/view/moebius2.html moebius2]
| J X
| 2007-11-28 15:43:28
|-
| [http://maemo.org/profile/view/moesmiol.html moesmiol]
| mo e
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/mogmic.html mogmic]
| Michele Moglia
| 2008-03-19 22:31:04
|-
| [http://maemo.org/profile/view/mogurito.html mogurito]
| Ezequiel Foncubierta Estevez
| 2007-07-09 20:40:16
|-
| [http://maemo.org/profile/view/mohalam.html mohalam]
| mohamed alhadi
| 2007-11-16 17:48:15
|-
| [http://maemo.org/profile/view/mohamedshen.html mohamedshen]
| mohamed shenawy
| 2008-05-07 16:41:06
|-
| [http://maemo.org/profile/view/mohanv.html mohanv]
| Mohan Vanavamalai
| 2007-11-16 17:47:30
|-
| [http://maemo.org/profile/view/mohuifu.html mohuifu]
| mo huifu
| 2008-03-18 04:31:01
|-
| [http://maemo.org/profile/view/moimart.html moimart]
| Moises Martinez
| 2007-05-18 19:11:08
|-
| [http://maemo.org/profile/view/moises47.html moises47]
| moises jafif
| 2007-11-28 17:21:33
|-
| [http://maemo.org/profile/view/moises4747.html moises4747]
| moises jafif
| 2007-11-30 10:48:51
|-
| [http://maemo.org/profile/view/mokamester.html mokamester]
| Miklós Mányai
| 2007-10-19 08:40:12
|-
| [http://maemo.org/profile/view/mokkel.html mokkel]
| Kenneth Mokkelbost
| 2007-05-18 19:11:40
|-
| [http://maemo.org/profile/view/mokolatzki.html mokolatzki]
| m o k
| 2007-05-18 19:12:01
|-
| [http://maemo.org/profile/view/mokozi.html mokozi]
| Mark Chionh
| 2007-11-16 17:47:33
|-
| [http://maemo.org/profile/view/molchr.html molchr]
| Ronald Molcher
| 2007-11-15 07:56:24
|-
| [http://maemo.org/profile/view/moltar.html moltar]
| paul smyth
| 2008-03-05 05:31:00
|-
| [http://maemo.org/profile/view/moluxs.html moluxs]
| Marc Moreno
| 2008-04-16 11:41:08
|-
| [http://maemo.org/profile/view/momchil.html momchil]
| momchil karabulev
| 2007-10-19 08:40:30
|-
| [http://maemo.org/profile/view/momcilo.html momcilo]
| Momcilo Majic
| 2007-11-16 17:49:23
|-
| [http://maemo.org/profile/view/moncopainalain.html moncopainalain]
| alain chautard
| 2007-05-18 19:14:21
|-
| [http://maemo.org/profile/view/mondoshawan.html mondoshawan]
| June Tate-Gans
| 2008-02-27 15:31:01
|-
| [http://maemo.org/profile/view/mones.html mones]
| Ricardo Mones
| 2007-10-19 10:40:37
|-
| [http://maemo.org/profile/view/monette.html monette]
| Monette Lazaro
| 2008-04-17 20:41:15
|-
| [http://maemo.org/profile/view/mongo.html mongo]
| Elvin Montego
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/mongomeri.html mongomeri]
| Gianni Ceramicola
| 2007-11-16 17:47:53
|-
| [http://maemo.org/profile/view/monicam.html monicam]
| Monica Mejia
| 2007-12-12 21:41:50
|-
| [http://maemo.org/profile/view/monkeyiq.html monkeyiq]
| Ben Martin
| 2007-10-19 03:40:34
|-
| [http://maemo.org/profile/view/monkito.html monkito]
| Hui Ling
| 2007-11-16 17:47:02
|-
| [http://maemo.org/profile/view/monkoz.html monkoz]
| Simeon Rusev
| 2008-03-29 23:31:06
|-
| [http://maemo.org/profile/view/mono.html mono]
| Noritaka Moriguchi
| 2007-05-18 19:12:34
|-
| [http://maemo.org/profile/view/monodromy.html monodromy]
| John Scherk
| 2007-12-25 13:41:03
|-
| [http://maemo.org/profile/view/monoid.html monoid]
| Richard Lewis
| 2007-10-23 17:40:33
|-
| [http://maemo.org/profile/view/monotom.html monotom]
| Tomas Cerych
| 2007-11-16 17:49:25
|-
| [http://maemo.org/profile/view/monroe.html monroe]
| Jason Martin
| 2007-05-18 19:11:17
|-
| [http://maemo.org/profile/view/montanavike.html montanavike]
| John Johnson
| 2007-12-11 16:24:59
|-
| [http://maemo.org/profile/view/monteleo.html monteleo]
| Claudio Monteleone
| 2008-01-14 23:41:17
|-
| [http://maemo.org/profile/view/monyetempur.html monyetempur]
| Wahyu Budi Raharjo
| 2007-11-28 15:43:35
|-
| [http://maemo.org/profile/view/moom.html moom]
| Simon TRENY
| 2007-10-18 17:40:30
|-
| [http://maemo.org/profile/view/mooney101.html mooney101]
| Benjamin Mooney
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/moonraker.html moonraker]
| Qiyaamudien Adams
| 2007-06-19 07:40:11
|-
| [http://maemo.org/profile/view/moonseer.html moonseer]
| Curtis Wilson
| 2007-05-18 19:11:39
|-
| [http://maemo.org/profile/view/moonshine.html moonshine]
| James Pooton
| 2007-11-16 17:48:53
|-
| [http://maemo.org/profile/view/moose.html moose]
| Mauricio Chavez
| 2007-10-19 22:40:31
|-
| [http://maemo.org/profile/view/morada.html morada]
| george cairns
| 2008-05-19 20:41:09
|-
| [http://maemo.org/profile/view/moralesmedardo.html moralesmedardo]
| medardo morales
| 2008-06-04 12:41:16
|-
| [http://maemo.org/profile/view/moravec.html moravec]
| John Moravec
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/morbec.html morbec]
| Fabio Morbec
| 2008-03-12 16:31:02
|-
| [http://maemo.org/profile/view/morbidfinn.html morbidfinn]
| Ari Kosunen
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/moreno.html moreno]
| Claudio Moreno
| 2008-01-01 14:41:11
|-
| [http://maemo.org/profile/view/morgan.html morgan]
| morgan razon
| 2007-11-16 17:49:14
|-
| [http://maemo.org/profile/view/morganf.html morganf]
| Morgan Fosstveit
| 2008-02-18 15:31:01
|-
| [http://maemo.org/profile/view/morganglines.html morganglines]
| Morgan Glines
| 2007-11-28 15:43:37
|-
| [http://maemo.org/profile/view/morglace.html morglace]
| Alex Khovrin
| 2008-02-10 15:32:47
|-
| [http://maemo.org/profile/view/morgs.html morgs]
| Morgan Collett
| 2007-10-19 11:40:32
|-
| [http://maemo.org/profile/view/morgushong.html morgushong]
| morgus hong
| 2008-03-10 04:31:05
|-
| [http://maemo.org/profile/view/morkfromork.html morkfromork]
| Mork Ork
| 2008-01-25 16:43:09
|-
| [http://maemo.org/profile/view/mornem.html mornem]
| Morne Michel
| 2007-11-28 15:43:26
|-
| [http://maemo.org/profile/view/morozzz.html morozzz]
| Nikita Morozov
| 2007-11-16 17:48:57
|-
| [http://maemo.org/profile/view/morphbr.html morphbr]
| Artur Souza
| 2007-05-18 19:11:54
|-
| [http://maemo.org/profile/view/morpheus356.html morpheus356]
| Geeorge Geoerges
| 2008-03-02 11:31:01
|-
| [http://maemo.org/profile/view/morpheuzzz.html morpheuzzz]
| Pierre Calleros
| 2007-11-16 17:49:06
|-
| [http://maemo.org/profile/view/morrieon.html morrieon]
| morrie oneil
| 2007-11-30 10:49:06
|-
| [http://maemo.org/profile/view/morriswong.html morriswong]
| Morris Wong
| 2007-10-20 15:40:30
|-
| [http://maemo.org/profile/view/mortela.html mortela]
| marko ortela
| 2007-12-11 16:25:23
|-
| [http://maemo.org/profile/view/morten.html morten]
| Morten Proschowsky
| 2007-05-18 19:11:29
|-
| [http://maemo.org/profile/view/morty.html morty]
| Markus Mertens
| 2008-03-23 17:31:01
|-
| [http://maemo.org/profile/view/mosaiccthump.html mosaiccthump]
| D Crump
| 2007-06-08 13:37:14
|-
| [http://maemo.org/profile/view/moselbh.html moselbh]
| Brian Moseley
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/mosfet.html mosfet]
| Eugene Gagarin
| 2008-02-01 10:31:04
|-
| [http://maemo.org/profile/view/moshe.html moshe]
| moshe zrihen
| 2008-05-05 15:41:06
|-
| [http://maemo.org/profile/view/moshkenstein.html moshkenstein]
| john doe
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/moskitto.html moskitto]
| moskitto mos
| 2007-11-16 17:46:24
|-
| [http://maemo.org/profile/view/moslof56.html moslof56]
| charles folsom
| 2007-11-16 17:48:08
|-
| [http://maemo.org/profile/view/mossburg.html mossburg]
| moss burg
| 2007-11-28 15:43:33
|-
| [http://maemo.org/profile/view/moti.html moti]
| marten henrichson
| 2007-11-16 17:47:02
|-
| [http://maemo.org/profile/view/mottid.html mottid]
| Motti Daniel
| 2008-06-04 10:41:09
|-
| [http://maemo.org/profile/view/motus.html motus]
| Sergiy Matusevych
| 2007-10-19 17:40:32
|-
| [http://maemo.org/profile/view/motuzp.html motuzp]
| Pavol Mizerak
| 2007-04-26 20:21:30
|-
| [http://maemo.org/profile/view/motuzpn810.html motuzpn810]
| pawko pawko
| 2008-04-29 19:41:09
|-
| [http://maemo.org/profile/view/motze.html motze]
| Moritz Seltmann
| 2007-10-17 22:40:25
|-
| [http://maemo.org/profile/view/mousashehadi.html mousashehadi]
| Mousa Shehadi
| 2008-03-24 21:31:04
|-
| [http://maemo.org/profile/view/mouse.html mouse]
| mouse mouseling
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/mouseonmar.html mouseonmar]
| markus loder-taucher
| 2008-02-11 00:32:26
|-
| [http://maemo.org/profile/view/move.html move]
| ta yi leu
| 2008-03-23 05:31:05
|-
| [http://maemo.org/profile/view/movez.html movez]
| Rodolfo Boer
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/mowabb.html mowabb]
| Stéphane TISSERAND
| 2008-01-27 18:31:30
|-
| [http://maemo.org/profile/view/mox17.html mox17]
| Erling Stage
| 2007-12-15 14:41:05
|-
| [http://maemo.org/profile/view/moxfulder.html moxfulder]
| David Goetschmann
| 2007-10-18 20:40:33
|-
| [http://maemo.org/profile/view/moya.html moya]
| Carl Hastrich
| 2008-01-24 15:33:43
|-
| [http://maemo.org/profile/view/mpace.html mpace]
| massimo pace
| 2007-05-18 19:14:11
|-
| [http://maemo.org/profile/view/mpaljug.html mpaljug]
| Michael Paljug
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/mpalka.html mpalka]
| Marcin Palka
| 2007-05-23 11:22:30
|-
| [http://maemo.org/profile/view/mpancorbo.html mpancorbo]
| Manuel Pancorbo
| 2007-05-18 19:10:29
|-
| [http://maemo.org/profile/view/mperes.html mperes]
| Miguel Peres
| 2008-03-04 03:31:19
|-
| [http://maemo.org/profile/view/mperetz.html mperetz]
| matthew peretz
| 2007-11-16 17:48:33
|-
| [http://maemo.org/profile/view/mperka.html mperka]
| Mike Perka
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/mpheery3.html mpheery3]
| Marvin Heery
| 2007-12-27 20:41:32
|-
| [http://maemo.org/profile/view/mplawner.html mplawner]
| Michael Plawner
| 2008-01-04 09:40:57
|-
| [http://maemo.org/profile/view/mpohrille.html mpohrille]
| Martin Pohrille
| 2007-07-10 23:40:12
|-
| [http://maemo.org/profile/view/mpouse.html mpouse]
| Kaihui Mu
| 2007-10-15 03:40:28
|-
| [http://maemo.org/profile/view/mprentice.html mprentice]
| Michael Prentice
| 2007-07-10 22:40:16
|-
| [http://maemo.org/profile/view/mpw.html mpw]
| Mike Weber
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/mpyrh.html mpyrh]
| Martti Pyrhönen
| 2007-05-18 19:11:56
|-
| [http://maemo.org/profile/view/mrahman252003.html mrahman252003]
| Mahbub Rahman
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/mraipio.html mraipio]
| Markus Räipiö
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/mraty.html mraty]
| Matti Räty
| 2008-03-17 14:31:08
|-
| [http://maemo.org/profile/view/mraxlop.html mraxlop]
| Krys Furman
| 2007-05-31 18:30:45
|-
| [http://maemo.org/profile/view/mrazm2am.html mrazm2am]
| Martin Mrazik
| 2007-10-19 12:40:32
|-
| [http://maemo.org/profile/view/mrben.html mrben]
| Ben Thorp
| 2007-11-16 17:46:39
|-
| [http://maemo.org/profile/view/mrbromley.html mrbromley]
| martyn bromley
| 2007-06-22 09:40:09
|-
| [http://maemo.org/profile/view/mrchapp.html mrchapp]
| Daniel Díaz
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/mrd.html mrd]
| Michael Detweiler
| 2007-05-18 19:11:13
|-
| [http://maemo.org/profile/view/mredeker.html mredeker]
| Marcus Redeker
| 2007-07-10 08:40:14
|-
| [http://maemo.org/profile/view/mreidy.html mreidy]
| mike reidy
| 2007-11-15 07:55:38
|-
| [http://maemo.org/profile/view/mrfiber.html mrfiber]
| David Goff
| 2007-12-30 18:41:32
|-
| [http://maemo.org/profile/view/mrflash2000.html mrflash2000]
| richard carter
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/mrg9999.html mrg9999]
| fred Bloggs
| 2007-11-16 17:47:12
|-
| [http://maemo.org/profile/view/mrgoess.html mrgoess]
| Mark Goessling
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/mrhankey.html mrhankey]
| Florian Kisser
| 2007-12-19 01:41:31
|-
| [http://maemo.org/profile/view/mrhei.html mrhei]
| king hei ng
| 2007-11-16 17:49:01
|-
| [http://maemo.org/profile/view/mrhifi.html mrhifi]
| greg horne
| 2007-11-16 17:49:04
|-
| [http://maemo.org/profile/view/mrice1354.html mrice1354]
| kavin u
| 2007-11-28 17:40:52
|-
| [http://maemo.org/profile/view/mrinvisible.html mrinvisible]
| Johnathan Harris
| 2008-01-19 02:31:16
|-
| [http://maemo.org/profile/view/mrkot.html mrkot]
| Pavel Glibin
| 2007-10-19 13:40:34
|-
| [http://maemo.org/profile/view/mrkou.html mrkou]
| kou junli
| 2007-11-01 01:40:35
|-
| [http://maemo.org/profile/view/mrlate.html mrlate]
| John McLean
| 2007-12-23 05:41:27
|-
| [http://maemo.org/profile/view/mrlucifer.html mrlucifer]
| chen zhou
| 2008-01-01 14:41:09
|-
| [http://maemo.org/profile/view/mrn.html mrn]
| mariano m
| 2007-05-18 19:13:32
|-
| [http://maemo.org/profile/view/mrnmart.html mrnmart]
| mariano m
| 2007-11-30 10:49:23
|-
| [http://maemo.org/profile/view/mromagna.html mromagna]
| Matt Romagna
| 2008-05-22 17:41:09
|-
| [http://maemo.org/profile/view/mroman.html mroman]
| Manuel Roman
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/mroper.html mroper]
| Mark Roper
| 2008-04-05 17:41:05
|-
| [http://maemo.org/profile/view/mrorpheus.html mrorpheus]
| Amazin Beach
| 2008-05-21 02:41:08
|-
| [http://maemo.org/profile/view/mrossi1.html mrossi1]
| Mario Rossi
| 2007-12-26 04:41:17
|-
| [http://maemo.org/profile/view/mrp.html mrp]
| mika 
| 2007-04-05 15:25:38
|-
| [http://maemo.org/profile/view/mrpotato18a.html mrpotato18a]
| Richard Wood
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/mrrush.html mrrush]
| Balaji Rangasamy
| 2007-12-11 16:25:46
|-
| [http://maemo.org/profile/view/mrs24.html mrs24]
| Mallory Scola
| 2008-01-27 10:31:07
|-
| [http://maemo.org/profile/view/mrshodan.html mrshodan]
| Thomas Hauder
| 2007-11-16 17:46:29
|-
| [http://maemo.org/profile/view/mrt2hen.html mrt2hen]
| HENRY MARTINEZ
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/mrturbulence.html mrturbulence]
| mister turbulence
| 2007-11-15 07:55:38
|-
| [http://maemo.org/profile/view/mrtyshaw.html mrtyshaw]
| martin shaw
| 2008-05-24 18:41:09
|-
| [http://maemo.org/profile/view/mrudolph.html mrudolph]
| Mark Rudolph
| 2007-05-18 19:13:59
|-
| [http://maemo.org/profile/view/mrunx.html mrunx]
| Pablo 'merKur' Kohan
| 2008-06-09 02:31:13
|-
| [http://maemo.org/profile/view/mrwatch921.html mrwatch921]
| Lorenzo santi
| 2007-12-12 01:41:29
|-
| [http://maemo.org/profile/view/mrwatch922.html mrwatch922]
| lorenzo santi
| 2007-12-12 01:41:29
|-
| [http://maemo.org/profile/view/mrwerwolf.html mrwerwolf]
| Vladimir Perepelkov
| 2007-05-18 19:13:18
|-
| [http://maemo.org/profile/view/mrwgt.html mrwgt]
| Gerd Mitländer
| 2007-10-20 11:40:34
|-
| [http://maemo.org/profile/view/mrwgt18.html mrwgt18]
| Gerd Mitländer
| 2007-11-30 10:49:19
|-
| [http://maemo.org/profile/view/mrwiech.html mrwiech]
| Maciej Wiechecki
| 2007-07-29 20:40:19
|-
| [http://maemo.org/profile/view/mrwiz.html mrwiz]
| james dierauer
| 2007-07-03 22:40:11
|-
| [http://maemo.org/profile/view/mryals.html mryals]
| Mark Ryals
| 2008-03-13 04:31:01
|-
| [http://maemo.org/profile/view/mrzaphodb.html mrzaphodb]
| Keith Williamson
| 2008-03-02 20:31:06
|-
| [http://maemo.org/profile/view/mrzoink.html mrzoink]
| Danny Nolan
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/mr_miranda.html mr_miranda]
| marcio miranda
| 2008-06-07 03:31:13
|-
| [http://maemo.org/profile/view/msakkine.html msakkine]
| Marko Sakkinen
| 2007-09-06 12:40:20
|-
| [http://maemo.org/profile/view/msalah.html msalah]
| Mohamed Salah
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/msam.html msam]
| Marcio Montenegro
| 2007-07-11 16:40:15
|-
| [http://maemo.org/profile/view/msameer.html msameer]
| Mohammed Hassan
| 2007-06-19 07:10:36
|-
| [http://maemo.org/profile/view/msanchez.html msanchez]
| Mario Sánchez Prada
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/msaunby.html msaunby]
| Michael Saunby
| 2007-05-18 19:11:55
|-
| [http://maemo.org/profile/view/mschirpke.html mschirpke]
| Michael Schirpke
| 2008-02-29 04:31:07
|-
| [http://maemo.org/profile/view/mschlee.html mschlee]
| mike schlee
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/mschwed.html mschwed]
| Martin Schwed
| 2008-02-04 00:32:18
|-
| [http://maemo.org/profile/view/msegarra.html msegarra]
| Manuel Segarra
| 2007-12-22 12:41:25
|-
| [http://maemo.org/profile/view/msf.html msf]
| mark flannery
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/msherman.html msherman]
| Mark Sherman
| 2008-02-08 21:31:55
|-
| [http://maemo.org/profile/view/msherman57.html msherman57]
| Michael Sherman
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/mshivk.html mshivk]
| Shivakumar Manishankar
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/msilver.html msilver]
| Michael Silver
| 2007-05-18 19:12:18
|-
| [http://maemo.org/profile/view/mskip.html mskip]
| m skip
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/msmoulton.html msmoulton]
| Michael Moulton
| 2008-01-21 23:41:31
|-
| [http://maemo.org/profile/view/msoap.html msoap]
| serg mmm
| 2008-02-02 00:41:25
|-
| [http://maemo.org/profile/view/msoini.html msoini]
| Mox Soini
| 2007-03-19 15:34:18
|-
| [http://maemo.org/profile/view/mssg131187.html mssg131187]
| Shahan Gilani
| 2008-04-15 10:41:11
|-
| [http://maemo.org/profile/view/msshuna.html msshuna]
| Shuna Holmes
| 2007-07-07 20:40:09
|-
| [http://maemo.org/profile/view/mstamm.html mstamm]
| mark stamm
| 2007-10-26 15:40:33
|-
| [http://maemo.org/profile/view/mstevens.html mstevens]
| Mozelle Stevens
| 2008-02-26 03:30:59
|-
| [http://maemo.org/profile/view/msugano.html msugano]
| Makoto Sugano
| 2007-05-18 19:12:37
|-
| [http://maemo.org/profile/view/msum.html msum]
| msum moorhead
| 2008-03-03 22:31:03
|-
| [http://maemo.org/profile/view/mszybist.html mszybist]
| Michel Szybist
| 2008-01-04 10:40:53
|-
| [http://maemo.org/profile/view/mtage.html mtage]
| Mario Tirado
| 2007-05-18 19:10:47
|-
| [http://maemo.org/profile/view/mtapoja.html mtapoja]
| Mika Tapojärvi
| 2007-05-23 05:29:40
|-
| [http://maemo.org/profile/view/mtb554.html mtb554]
| Michael BIN
| 2008-02-09 18:31:38
|-
| [http://maemo.org/profile/view/mthorn.html mthorn]
| m t
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/mthsr1.html mthsr1]
| michael hale
| 2007-11-16 17:48:01
|-
| [http://maemo.org/profile/view/mtikkane.html mtikkane]
| Matti Tikkanen
| 2007-07-10 11:40:16
|-
| [http://maemo.org/profile/view/mtkorpel.html mtkorpel]
| Mikko Korpelainen
| 2007-04-04 08:16:22
|-
| [http://maemo.org/profile/view/mtnpark.html mtnpark]
| carol lorance
| 2008-03-12 22:31:43
|-
| [http://maemo.org/profile/view/mtoberg.html mtoberg]
| Tommi Berg
| 2007-10-19 06:40:31
|-
| [http://maemo.org/profile/view/mtoups.html mtoups]
| Matt Toups
| 2008-02-17 17:31:02
|-
| [http://maemo.org/profile/view/mtrigoboff.html mtrigoboff]
| Michael Trigoboff
| 2007-12-29 23:41:05
|-
| [http://maemo.org/profile/view/mtubay.html mtubay]
| marc tubay
| 2007-11-15 07:56:24
|-
| [http://maemo.org/profile/view/muadib84.html muadib84]
| Barry Sullivan
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/mudhoney.html mudhoney]
| Bryan Zubrod
| 2008-01-17 07:40:59
|-
| [http://maemo.org/profile/view/mudsculpter.html mudsculpter]
| Rodney Harris
| 2008-01-23 21:22:01
|-
| [http://maemo.org/profile/view/muebelacker.html muebelacker]
| Mathias Uebelacker
| 2007-05-18 19:10:31
|-
| [http://maemo.org/profile/view/muflo.html muflo]
| Alessandro De Filippo
| 2007-11-15 07:56:07
|-
| [http://maemo.org/profile/view/mugen.html mugen]
| Jun Lam
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/mugg.html mugg]
| Peter Kaiser
| 2007-06-22 06:40:07
|-
| [http://maemo.org/profile/view/muhammad3mar.html muhammad3mar]
| umar malik
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/muisei.html muisei]
| John Peterson
| 2007-12-11 23:40:53
|-
| [http://maemo.org/profile/view/muller999.html muller999]
| stephen lowe
| 2008-01-17 11:41:06
|-
| [http://maemo.org/profile/view/multics69.html multics69]
| ChangWoo Min
| 2008-01-27 11:31:16
|-
| [http://maemo.org/profile/view/mumus.html mumus]
| Edouard Kleinhans
| 2008-05-28 17:41:11
|-
| [http://maemo.org/profile/view/munish62801.html munish62801]
| Munish Kumar Singh
| 2007-10-26 06:40:34
|-
| [http://maemo.org/profile/view/munk.html munk]
| Tom Slof
| 2007-05-18 19:12:26
|-
| [http://maemo.org/profile/view/munkorama.html munkorama]
| Tom Slofkosky
| 2008-04-30 07:46:09
|-
| [http://maemo.org/profile/view/munky261.html munky261]
| adam baker
| 2008-02-25 22:31:00
|-
| [http://maemo.org/profile/view/munozferna.html munozferna]
| Fernando Muñoz
| 2008-04-13 23:41:37
|-
| [http://maemo.org/profile/view/murfman23.html murfman23]
| angel bonilla
| 2008-03-27 14:30:43
|-
| [http://maemo.org/profile/view/murphy.html murphy]
| Murphy 
| 2007-09-10 14:40:25
|-
| [http://maemo.org/profile/view/murrayc.html murrayc]
| Murray Cumming
| 2007-05-21 13:43:08
|-
| [http://maemo.org/profile/view/murthybmg.html murthybmg]
| murthy murthy
| 2007-05-18 19:14:07
|-
| [http://maemo.org/profile/view/musikgoat.html musikgoat]
| Tim Potter
| 2008-02-15 01:31:07
|-
| [http://maemo.org/profile/view/mustafeez27.html mustafeez27]
| Waqas Mustafeez
| 2007-11-15 07:55:29
|-
| [http://maemo.org/profile/view/mustalinux.html mustalinux]
| Mustali Dalal
| 2007-11-19 09:01:25
|-
| [http://maemo.org/profile/view/mustang.html mustang]
| Nori Orr
| 2007-11-28 15:43:37
|-
| [http://maemo.org/profile/view/mustoor.html mustoor]
| mustoor venkatram
| 2007-06-26 11:40:06
|-
| [http://maemo.org/profile/view/mutek.html mutek]
| Mark Kent
| 2008-05-17 09:40:55
|-
| [http://maemo.org/profile/view/muth02446.html muth02446]
| robert muth
| 2007-05-18 19:13:58
|-
| [http://maemo.org/profile/view/muthukumar.html muthukumar]
| Muthu kumar
| 2008-03-11 11:31:04
|-
| [http://maemo.org/profile/view/mutlab.html mutlab]
| Luca Verzani
| 2007-10-22 05:40:33
|-
| [http://maemo.org/profile/view/mutouyueliang.html mutouyueliang]
| George Song
| 2008-02-27 07:30:59
|-
| [http://maemo.org/profile/view/muuuurf.html muuuurf]
| greg parrau
| 2007-11-05 18:40:42
|-
| [http://maemo.org/profile/view/muyelove2007.html muyelove2007]
| chen Gonglong
| 2007-06-27 01:40:06
|-
| [http://maemo.org/profile/view/muzaafir.html muzaafir]
| Sujith R
| 2007-11-16 17:48:32
|-
| [http://maemo.org/profile/view/muzzetta.html muzzetta]
| Alessandro Muzzetta
| 2007-10-20 07:40:34
|-
| [http://maemo.org/profile/view/mv2devnul.html mv2devnul]
| Mark VandenBrink
| 2007-11-15 07:56:11
|-
| [http://maemo.org/profile/view/mvaisane.html mvaisane]
| Matti Väisänen
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/mvarakin.html mvarakin]
| Michael Varakin
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/mvassallo.html mvassallo]
| Michelangelo Vassallo
| 2007-11-15 07:55:52
|-
| [http://maemo.org/profile/view/mve.html mve]
| Marko Vertainen
| 2007-05-18 19:11:24
|-
| [http://maemo.org/profile/view/mvermeer.html mvermeer]
| Martin Vermeer
| 2007-05-18 19:12:27
|-
| [http://maemo.org/profile/view/mvo.html mvo]
| Marius Vollmer
| 2007-05-18 19:11:08
|-
| [http://maemo.org/profile/view/mw2008.html mw2008]
| Marcus Wyremblewski
| 2008-04-15 09:41:06
|-
| [http://maemo.org/profile/view/mwallwork.html mwallwork]
| Mark Wallwork
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/mwaltz.html mwaltz]
| Mark Waltz
| 2007-05-18 19:12:37
|-
| [http://maemo.org/profile/view/mwasilew.html mwasilew]
| Milosz Wasilewski
| 2007-11-16 17:50:28
|-
| [http://maemo.org/profile/view/mweb.html mweb]
| Mathias Weber
| 2007-05-18 19:10:33
|-
| [http://maemo.org/profile/view/mwetekam.html mwetekam]
| michael wetekam
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/mwheldri.html mwheldri]
| Mark Wheldrick
| 2008-01-30 12:31:10
|-
| [http://maemo.org/profile/view/mwiktowy.html mwiktowy]
| Michael Wiktowy
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/mwjburton.html mwjburton]
| Mark Burton
| 2007-11-16 17:49:07
|-
| [http://maemo.org/profile/view/mwood2.html mwood2]
| Michael Wood
| 2008-05-20 04:35:05
|-
| [http://maemo.org/profile/view/mwright.html mwright]
| Mike Wright
| 2007-11-03 15:40:39
|-
| [http://maemo.org/profile/view/mxchen04.html mxchen04]
| 陈 明炫
| 2007-11-06 02:40:40
|-
| [http://maemo.org/profile/view/mxfrost.html mxfrost]
| Max Frost
| 2007-10-28 20:40:22
|-
| [http://maemo.org/profile/view/myang.html myang]
| Mu Yang
| 2007-05-18 19:13:55
|-
| [http://maemo.org/profile/view/mybabyhayley.html mybabyhayley]
| sara sandlin
| 2008-03-04 18:31:03
|-
| [http://maemo.org/profile/view/mycroft72.html mycroft72]
| Simon Guy
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/mydreamer.html mydreamer]
| My Dreamer
| 2007-11-15 07:56:26
|-
| [http://maemo.org/profile/view/myfanwy.html myfanwy]
| r p
| 2008-02-06 09:31:31
|-
| [http://maemo.org/profile/view/mykhaylo.html mykhaylo]
| Mykhaylo Davydenko
| 2008-05-04 11:41:06
|-
| [http://maemo.org/profile/view/mylord.html mylord]
| eike watermann
| 2007-11-16 17:49:00
|-
| [http://maemo.org/profile/view/myn800.html myn800]
| robert mooney
| 2007-11-16 17:49:17
|-
| [http://maemo.org/profile/view/myp2p.html myp2p]
| li neo
| 2008-03-24 06:30:53
|-
| [http://maemo.org/profile/view/mypda.html mypda]
| mypda mypda
| 2008-02-19 08:30:58
|-
| [http://maemo.org/profile/view/myriaddev.html myriaddev]
| Jerry Farmer
| 2007-11-15 07:56:00
|-
| [http://maemo.org/profile/view/myrjola.html myrjola]
| Mika Yrjölä
| 2007-11-02 06:40:36
|-
| [http://maemo.org/profile/view/myroch.html myroch]
| Miroslav Holubec
| 2007-11-28 15:43:28
|-
| [http://maemo.org/profile/view/myrtti.html myrtti]
| Miia Ranta
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/mysteriis.html mysteriis]
| Michael M.
| 2008-03-05 19:31:01
|-
| [http://maemo.org/profile/view/mystes.html mystes]
| Joshua Rothenberg
| 2007-12-30 05:40:55
|-
| [http://maemo.org/profile/view/myszka.html myszka]
| mark myszka
| 2007-11-16 17:47:57
|-
| [http://maemo.org/profile/view/mythic.html mythic]
| Martin Mach
| 2007-11-15 07:56:01
|-
| [http://maemo.org/profile/view/mywifi.html mywifi]
| cheri determan
| 2008-01-02 18:51:29
|-
| [http://maemo.org/profile/view/myxberry.html myxberry]
| yan sheng liao
| 2008-01-16 17:41:16
|-
| [http://maemo.org/profile/view/mzabaluev.html mzabaluev]
| Mikhail Zabaluev
| 2007-07-12 16:40:22
|-
| [http://maemo.org/profile/view/mzandrew.html mzandrew]
| Matthew Andrew
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/mzechner.html mzechner]
| mario zechner
| 2007-11-16 17:49:13
|-
| [http://maemo.org/profile/view/mzeid.html mzeid]
| mohamed hassan
| 2007-11-28 15:43:48
|-
| [http://maemo.org/profile/view/mzukowski.html mzukowski]
| Matt Zukowski
| 2007-11-06 02:40:41
|-
| [http://maemo.org/profile/view/m_stolle.html m_stolle]
| Martin Stolle
| 2008-03-12 20:31:28
|-
| [http://maemo.org/profile/view/n0hot.html n0hot]
| scott gottfrid
| 2007-04-16 12:41:52
|-
| [http://maemo.org/profile/view/n2rjt.html n2rjt]
| David Brown
| 2007-07-04 00:40:09
|-
| [http://maemo.org/profile/view/n3lll.html n3lll]
| Thomas Frobase
| 2007-11-28 17:40:50
|-
| [http://maemo.org/profile/view/n6gps.html n6gps]
| Brent Bolen
| 2007-10-19 04:40:28
|-
| [http://maemo.org/profile/view/n6mod.html n6mod]
| Aleksandr Milewski
| 2007-07-13 02:40:19
|-
| [http://maemo.org/profile/view/n70hk.html n70hk]
| Truman Lam
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/n770.html n770]
| Konrad Moessnang
| 2008-04-18 16:41:15
|-
| [http://maemo.org/profile/view/n770-freak.html n770-freak]
| Michael Frase
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/n7ray.html n7ray]
| Richard Kowalsky
| 2007-11-28 15:43:20
|-
| [http://maemo.org/profile/view/n800.html n800]
| Jim Gaspar
| 2007-12-21 14:51:19
|-
| [http://maemo.org/profile/view/n8000.html n8000]
| niii 80000
| 2007-12-15 22:40:53
|-
| [http://maemo.org/profile/view/n800chuck.html n800chuck]
| chuck ahrens
| 2007-11-16 17:47:32
|-
| [http://maemo.org/profile/view/n800user.html n800user]
| N800 User
| 2007-11-16 17:48:27
|-
| [http://maemo.org/profile/view/n8bitme.html n8bitme]
| Dean Clark
| 2007-12-26 05:41:35
|-
| [http://maemo.org/profile/view/n8willis.html n8willis]
| Nathan Willis
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/n9210.html n9210]
| peter haape
| 2007-06-27 19:40:09
|-
| [http://maemo.org/profile/view/n9awu.html n9awu]
| Byron Klemesrud
| 2007-06-30 00:40:08
|-
| [http://maemo.org/profile/view/n9ots.html n9ots]
| ben hawley
| 2007-12-11 16:25:01
|-
| [http://maemo.org/profile/view/nac.html nac]
| Aleksey Nesterenko
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/nacho.html nacho]
| Ignacio Lopez
| 2008-02-10 20:32:28
|-
| [http://maemo.org/profile/view/nachomp.html nachomp]
| Ignacio Marin Prendes
| 2008-01-17 00:41:09
|-
| [http://maemo.org/profile/view/nacos.html nacos]
| Michael K. Nacos
| 2007-05-18 19:13:45
|-
| [http://maemo.org/profile/view/nafai.html nafai]
| Travis Hartwell
| 2007-10-19 17:40:32
|-
| [http://maemo.org/profile/view/nafets1975.html nafets1975]
| Stefan Bengtsson
| 2007-12-28 14:41:07
|-
| [http://maemo.org/profile/view/nagineni.html nagineni]
| Sudarsana Nagineni
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/nagrdeto.html nagrdeto]
| mohamed saeed
| 2008-04-16 01:41:14
|-
| [http://maemo.org/profile/view/nagylakas.html nagylakas]
| Péter Nagy
| 2007-10-19 18:40:34
|-
| [http://maemo.org/profile/view/nahh801.html nahh801]
| Nicole Harris
| 2008-01-23 13:32:07
|-
| [http://maemo.org/profile/view/nahkiainen.html nahkiainen]
| Rane Lahti
| 2007-12-19 09:40:58
|-
| [http://maemo.org/profile/view/nahkurti.html nahkurti]
| Tiit Nahkur
| 2007-05-18 19:11:43
|-
| [http://maemo.org/profile/view/nakkebar.html nakkebar]
| Eero Tamminen
| 2007-05-18 19:11:49
|-
| [http://maemo.org/profile/view/naksentijevic.html naksentijevic]
| Nikola Aksentijevic
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/nakummitul.html nakummitul]
| Mitul Nakum
| 2007-10-23 05:40:34
|-
| [http://maemo.org/profile/view/name_withheld.html name_withheld]
| Name Withheld
| 2008-01-07 04:40:54
|-
| [http://maemo.org/profile/view/namorvx.html namorvx]
| Roman Kristof
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/namuh.html namuh]
| scott piper
| 2008-01-15 02:42:02
|-
| [http://maemo.org/profile/view/nanabear.html nanabear]
| Nana Zuazua
| 2008-04-05 22:41:04
|-
| [http://maemo.org/profile/view/nanckekr.html nanckekr]
| Anders Nancke-Krogh
| 2007-05-18 19:13:03
|-
| [http://maemo.org/profile/view/nancy.html nancy]
| Nancy Samaniego
| 2008-01-18 18:31:15
|-
| [http://maemo.org/profile/view/nander.html nander]
| nander` hokwerda
| 2007-11-16 17:49:21
|-
| [http://maemo.org/profile/view/nanlucrea.html nanlucrea]
| nannette edwards
| 2008-02-29 01:31:08
|-
| [http://maemo.org/profile/view/nanni85.html nanni85]
| Salvi Gianni
| 2007-10-22 16:40:31
|-
| [http://maemo.org/profile/view/nanokool.html nanokool]
| Nanos Koolinksi
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/nanomirandav.html nanomirandav]
| Fernando Miranda
| 2008-06-06 00:41:36
|-
| [http://maemo.org/profile/view/nanozap.html nanozap]
| Maec Soubliere
| 2008-01-26 20:32:44
|-
| [http://maemo.org/profile/view/nanpaman.html nanpaman]
| Tony Diaz
| 2008-04-13 00:45:22
|-
| [http://maemo.org/profile/view/nanu21.html nanu21]
| Tim Balint
| 2007-11-15 07:55:30
|-
| [http://maemo.org/profile/view/naoto.html naoto]
| Naoto Komatsu
| 2008-05-01 06:41:06
|-
| [http://maemo.org/profile/view/naovouporai.html naovouporai]
| Bruno Ramalho
| 2008-02-07 16:31:40
|-
| [http://maemo.org/profile/view/naranek.html naranek]
| Jarmo Lahtiranta
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/narayan.html narayan]
| Narayan Subramaniam
| 2007-01-31 09:00:09
|-
| [http://maemo.org/profile/view/narbat.html narbat]
| Steve King
| 2008-02-26 16:31:03
|-
| [http://maemo.org/profile/view/narutofox.html narutofox]
| chase fox
| 2008-05-19 06:41:06
|-
| [http://maemo.org/profile/view/narvaezg.html narvaezg]
| Guillermo Narvaez
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/nascaredd.html nascaredd]
| Edd Galloway
| 2007-05-18 19:13:42
|-
| [http://maemo.org/profile/view/naspedude.html naspedude]
| William DenSon
| 2007-11-30 10:48:54
|-
| [http://maemo.org/profile/view/nat.html nat]
| Nathanael Presson
| 2007-11-16 17:48:16
|-
| [http://maemo.org/profile/view/natali1882.html natali1882]
| Eliana Casanova
| 2007-11-28 15:43:42
|-
| [http://maemo.org/profile/view/nathan0.html nathan0]
| Nathan Oakes
| 2007-05-29 09:30:43
|-
| [http://maemo.org/profile/view/nathanael.html nathanael]
| Nathanael Anderson
| 2007-10-25 22:40:33
|-
| [http://maemo.org/profile/view/nathanderwise.html nathanderwise]
| Emilio Mundula
| 2008-01-30 23:32:33
|-
| [http://maemo.org/profile/view/nati_unifor.html nati_unifor]
| Engenharia Do Conhecimento
| 2007-11-16 17:46:36
|-
| [http://maemo.org/profile/view/nau.html nau]
| Natalia Udaltsova
| 2007-12-11 16:25:24
|-
| [http://maemo.org/profile/view/nau10.html nau10]
| Thomas Naughton
| 2008-03-27 17:31:09
|-
| [http://maemo.org/profile/view/nautic.html nautic]
| Thierry GAUTHIER
| 2007-11-15 07:55:42
|-
| [http://maemo.org/profile/view/nav7fi.html nav7fi]
| Naveen Gundu
| 2007-11-16 17:48:15
|-
| [http://maemo.org/profile/view/navarrica.html navarrica]
| angela sabbb
| 2008-01-08 17:41:25
|-
| [http://maemo.org/profile/view/navarrica00.html navarrica00]
| navarrica ca
| 2008-02-03 16:31:38
|-
| [http://maemo.org/profile/view/naveen.html naveen]
| Naveen Selva
| 2008-05-14 14:41:44
|-
| [http://maemo.org/profile/view/naveenjammula.html naveenjammula]
| Naveen Jammula
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/navi.html navi]
| Anthony Nguyen
| 2008-02-26 18:31:09
|-
| [http://maemo.org/profile/view/nazarrf.html nazarrf]
| Ferdinand Nazario
| 2007-06-19 07:10:37
|-
| [http://maemo.org/profile/view/nbaltar.html nbaltar]
| Nick Baltar
| 2007-10-24 16:40:32
|-
| [http://maemo.org/profile/view/nbcgod.html nbcgod]
| Brian Sheehan
| 2007-12-29 08:40:59
|-
| [http://maemo.org/profile/view/nbloch.html nbloch]
| Nick Bloch
| 2007-11-16 17:49:11
|-
| [http://maemo.org/profile/view/nbrennie.html nbrennie]
| Neil Rennie
| 2007-11-16 17:48:27
|-
| [http://maemo.org/profile/view/nbtux.html nbtux]
| Nicola Buso
| 2008-02-10 23:32:44
|-
| [http://maemo.org/profile/view/ncaverync.html ncaverync]
| Dean Boulware
| 2007-07-08 21:40:11
|-
| [http://maemo.org/profile/view/ncc123.html ncc123]
| Neill Currie
| 2008-03-25 19:31:33
|-
| [http://maemo.org/profile/view/ncfiv91071.html ncfiv91071]
| nick fernandez
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/nckcttn.html nckcttn]
| Nick Cotton
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/ncmreynolds.html ncmreynolds]
| Nick Reynolds
| 2007-11-16 17:49:24
|-
| [http://maemo.org/profile/view/ncsunickv.html ncsunickv]
| Nick Velado
| 2007-10-26 22:40:33
|-
| [http://maemo.org/profile/view/ndap.html ndap]
| Andreas Persenius
| 2007-05-18 19:11:45
|-
| [http://maemo.org/profile/view/ndenev.html ndenev]
| Niki Denev
| 2007-12-17 19:41:03
|-
| [http://maemo.org/profile/view/ndepetris.html ndepetris]
| nicholas depetris
| 2008-01-09 05:41:08
|-
| [http://maemo.org/profile/view/nealwalfield.html nealwalfield]
| Neal Walfield
| 2008-03-24 18:31:08
|-
| [http://maemo.org/profile/view/nebbit.html nebbit]
| Jeff Cook
| 2008-03-28 17:31:08
|-
| [http://maemo.org/profile/view/nedrichards.html nedrichards]
| nick richards
| 2007-10-19 08:40:30
|-
| [http://maemo.org/profile/view/neelakanta.html neelakanta]
| Mahesh Neelakanta
| 2007-07-05 03:40:12
|-
| [http://maemo.org/profile/view/neelance.html neelance]
| Richard Musiol
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/neelotpal.html neelotpal]
| Neelotpal Kundu
| 2007-11-15 07:56:05
|-
| [http://maemo.org/profile/view/neesenk.html neesenk]
| Liu Zhiyong
| 2007-11-16 17:49:29
|-
| [http://maemo.org/profile/view/nefertari.html nefertari]
| Albert Studer
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/nefgarcia.html nefgarcia]
| Neftalí García
| 2007-10-31 01:40:37
|-
| [http://maemo.org/profile/view/negatiefmann.html negatiefmann]
| aljoscha bergforth
| 2008-04-17 09:41:04
|-
| [http://maemo.org/profile/view/neil499.html neil499]
| Neil Mehta
| 2008-01-28 03:31:18
|-
| [http://maemo.org/profile/view/neilbhalla.html neilbhalla]
| Neil Bhalla
| 2008-01-14 21:41:11
|-
| [http://maemo.org/profile/view/neilgower.html neilgower]
| Neil Gower
| 2008-02-19 10:31:02
|-
| [http://maemo.org/profile/view/neilgp.html neilgp]
| Neil Parry
| 2008-01-21 12:51:20
|-
| [http://maemo.org/profile/view/neiljerram.html neiljerram]
| Neil Jerram
| 2007-05-18 19:10:29
|-
| [http://maemo.org/profile/view/neilna.html neilna]
| anil nanda
| 2007-07-07 22:40:11
|-
| [http://maemo.org/profile/view/neilpopat.html neilpopat]
| Neil Popat
| 2007-05-18 19:12:48
|-
| [http://maemo.org/profile/view/nekica.html nekica]
| n v
| 2007-12-11 16:25:30
|-
| [http://maemo.org/profile/view/nekim.html nekim]
| Mike N
| 2008-05-09 23:41:07
|-
| [http://maemo.org/profile/view/neliger.html neliger]
| Loïc Eggermont
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/nellgotty.html nellgotty]
| darnell thomas
| 2008-01-01 14:41:11
|-
| [http://maemo.org/profile/view/nellyngz.html nellyngz]
| ROman Yourkevitch
| 2008-01-07 12:40:53
|-
| [http://maemo.org/profile/view/nelow.html nelow]
| Nathan Low
| 2007-11-15 07:55:55
|-
| [http://maemo.org/profile/view/nelsonrn.html nelsonrn]
| Russ Nelson
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/nemobiker.html nemobiker]
| nemo nemo
| 2008-03-19 09:31:01
|-
| [http://maemo.org/profile/view/nemosan.html nemosan]
| Andy Burrell
| 2007-11-05 17:40:43
|-
| [http://maemo.org/profile/view/neogene.html neogene]
| Andrea Leganza
| 2007-10-22 07:40:34
|-
| [http://maemo.org/profile/view/neolari.html neolari]
| pablo trabucco
| 2008-04-26 00:41:20
|-
| [http://maemo.org/profile/view/neostar.html neostar]
| Wout Martens
| 2007-12-19 20:42:09
|-
| [http://maemo.org/profile/view/neostrider.html neostrider]
| Daniel Monteiro
| 2007-05-18 19:13:18
|-
| [http://maemo.org/profile/view/neptuneh20.html neptuneh20]
| j t
| 2007-12-11 16:24:57
|-
| [http://maemo.org/profile/view/nerr.html nerr]
| Erhan Ozbek
| 2007-11-16 17:47:20
|-
| [http://maemo.org/profile/view/nesferato.html nesferato]
| michael henson
| 2007-07-07 18:40:15
|-
| [http://maemo.org/profile/view/nesher.html nesher]
| Oern Ortwein
| 2007-11-28 15:43:27
|-
| [http://maemo.org/profile/view/ness.html ness]
| Waldo Zamor
| 2008-03-07 17:31:25
|-
| [http://maemo.org/profile/view/nesth.html nesth]
| Luc Lebel
| 2007-12-22 05:41:24
|-
| [http://maemo.org/profile/view/netavam.html netavam]
| Abraham Arce
| 2007-07-03 23:40:15
|-
| [http://maemo.org/profile/view/netblade.html netblade]
| Oskari Kokko
| 2007-05-18 19:14:00
|-
| [http://maemo.org/profile/view/netdude.html netdude]
| net dude
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/netrick.html netrick]
| net rick
| 2007-10-19 09:40:33
|-
| [http://maemo.org/profile/view/netrider11.html netrider11]
| W. Seto
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/netrunjan.html netrunjan]
| jan baden
| 2007-01-15 17:00:02
|-
| [http://maemo.org/profile/view/netvandal.html netvandal]
| michele tameni
| 2007-10-21 22:40:34
|-
| [http://maemo.org/profile/view/network.html network]
| dongjoon cho
| 2007-10-17 11:40:27
|-
| [http://maemo.org/profile/view/neubuser.html neubuser]
| Frank Neubüser
| 2007-10-16 20:40:28
|-
| [http://maemo.org/profile/view/neulee.html neulee]
| John Lee
| 2008-04-15 14:41:18
|-
| [http://maemo.org/profile/view/neurinux.html neurinux]
| Cristian Pedrotti
| 2007-10-22 09:40:33
|-
| [http://maemo.org/profile/view/neustradamus.html neustradamus]
| Neustradamus **
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/nevatt48.html nevatt48]
| james Nevatt
| 2007-12-29 11:40:56
|-
| [http://maemo.org/profile/view/nevelex.html nevelex]
| Ctaldo Miola
| 2008-05-25 08:41:08
|-
| [http://maemo.org/profile/view/nevermnd.html nevermnd]
| Anthony Balducci
| 2008-02-01 12:31:11
|-
| [http://maemo.org/profile/view/nevyn642.html nevyn642]
| joseph lynn
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/newbury.html newbury]
| Geoffrey Newbury
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/newca12.html newca12]
| Olivier ROLAND
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/newfish.html newfish]
| sunny fung
| 2008-05-19 08:41:08
|-
| [http://maemo.org/profile/view/newstar108.html newstar108]
| Jessica Kim
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/newtest.html newtest]
| new test
| 2008-06-03 09:41:10
|-
| [http://maemo.org/profile/view/newtest2.html newtest2]
| new test 2
| 2008-06-03 10:41:09
|-
| [http://maemo.org/profile/view/newtj.html newtj]
| ken chuang
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/newyork10023.html newyork10023]
| Philip Law III
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/new_2_linux.html new_2_linux]
| Aidon Le
| 2008-02-14 22:31:06
|-
| [http://maemo.org/profile/view/new_bee.html new_bee]
| han liang
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/nfaria.html nfaria]
| Nuno Faria
| 2007-12-23 15:41:23
|-
| [http://maemo.org/profile/view/nfg.html nfg]
| Heppelforte Snodgrass
| 2008-01-10 00:41:08
|-
| [http://maemo.org/profile/view/nforti17.html nforti17]
| Nick Forti
| 2008-03-21 05:31:02
|-
| [http://maemo.org/profile/view/nfv770.html nfv770]
| Neal Viemeister
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/ng23055.html ng23055]
| Jon Morgan
| 2008-01-12 01:41:02
|-
| [http://maemo.org/profile/view/ngchol.html ngchol]
| ngchol ngchol
| 2007-05-18 19:10:55
|-
| [http://maemo.org/profile/view/nginny.html nginny]
| Nelson George
| 2007-10-17 16:40:29
|-
| [http://maemo.org/profile/view/ngupta.html ngupta]
| Neeraj Gupta
| 2008-01-20 21:31:30
|-
| [http://maemo.org/profile/view/nguyen.html nguyen]
| Loc Nguyen
| 2007-10-16 10:40:26
|-
| [http://maemo.org/profile/view/nguyenhuyngoc.html nguyenhuyngoc]
| huy ngoc
| 2008-02-11 03:31:17
|-
| [http://maemo.org/profile/view/nhanquy.html nhanquy]
| Nhan Tran
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/nhdezoito.html nhdezoito]
| Ádrian Lívio
| 2007-05-18 19:12:09
|-
| [http://maemo.org/profile/view/nhope.html nhope]
| Nancy Hope Lowens
| 2007-07-04 14:40:10
|-
| [http://maemo.org/profile/view/nialldontech.html nialldontech]
| Niall Donnelly
| 2008-02-11 17:42:46
|-
| [http://maemo.org/profile/view/niallg.html niallg]
| Niall Gillespie
| 2007-10-22 10:40:34
|-
| [http://maemo.org/profile/view/nibblecat.html nibblecat]
| Topi Hukkanen
| 2008-05-13 12:41:09
|-
| [http://maemo.org/profile/view/nicholaselmer.html nicholaselmer]
| Nicholas Elmer
| 2008-04-05 01:41:05
|-
| [http://maemo.org/profile/view/nick1701.html nick1701]
| Nick Sanders
| 2007-12-15 03:40:49
|-
| [http://maemo.org/profile/view/nickeastbay.html nickeastbay]
| Nick Lostracco
| 2008-05-01 00:41:21
|-
| [http://maemo.org/profile/view/nickname.html nickname]
| nick coldea
| 2007-05-18 19:11:46
|-
| [http://maemo.org/profile/view/nicknick.html nicknick]
| nick nick
| 2007-07-10 09:40:10
|-
| [http://maemo.org/profile/view/nickster.html nickster]
| Nick Humphries
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/nico.html nico]
| nicolas huot
| 2008-02-12 01:31:34
|-
| [http://maemo.org/profile/view/nicobaca.html nicobaca]
| Nicolas Baca
| 2007-12-29 20:40:58
|-
| [http://maemo.org/profile/view/nicolasc.html nicolasc]
| christophe nicolas
| 2008-01-17 21:51:14
|-
| [http://maemo.org/profile/view/nicolasfr.html nicolasfr]
| Nicolas DERYCKE
| 2007-05-18 19:10:58
|-
| [http://maemo.org/profile/view/nicolev.html nicolev]
| Nicole Vincent
| 2007-09-05 22:40:23
|-
| [http://maemo.org/profile/view/niconacre.html niconacre]
| nacry nicolas
| 2007-12-17 22:41:22
|-
| [http://maemo.org/profile/view/nicop22.html nicop22]
| Nicolas Fauvel
| 2007-06-21 09:40:06
|-
| [http://maemo.org/profile/view/nico_zhu.html nico_zhu]
| nico zhu
| 2008-05-04 03:41:05
|-
| [http://maemo.org/profile/view/nicprimo.html nicprimo]
| Nicola Bellomo
| 2007-05-18 19:10:33
|-
| [http://maemo.org/profile/view/nicula.html nicula]
| Anssi Nikula
| 2008-04-26 15:41:04
|-
| [http://maemo.org/profile/view/niesa.html niesa]
| sami niemi
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/nifan.html nifan]
| Nifan Nifan
| 2008-02-27 22:31:05
|-
| [http://maemo.org/profile/view/nightcze.html nightcze]
| Filip Zítko
| 2007-12-24 21:41:31
|-
| [http://maemo.org/profile/view/nightdenizen.html nightdenizen]
| Joshua Call
| 2007-05-18 19:10:26
|-
| [http://maemo.org/profile/view/nightkeen.html nightkeen]
| Vladimir Zaitsev
| 2008-03-24 22:31:09
|-
| [http://maemo.org/profile/view/nightmare.html nightmare]
| Klaus Müller
| 2007-06-08 13:37:17
|-
| [http://maemo.org/profile/view/nightstorm.html nightstorm]
| Bruce Mallett
| 2008-05-31 19:41:14
|-
| [http://maemo.org/profile/view/nightwolf.html nightwolf]
| Khaled Islem Bouya
| 2007-12-22 00:41:28
|-
| [http://maemo.org/profile/view/nihatkosar.html nihatkosar]
| nihat kosar
| 2007-11-03 05:40:41
|-
| [http://maemo.org/profile/view/nihon2000.html nihon2000]
| Larry Chen
| 2007-06-13 16:00:32
|-
| [http://maemo.org/profile/view/nik1.html nik1]
| Nik Pribisic
| 2007-05-18 19:11:13
|-
| [http://maemo.org/profile/view/nik19.html nik19]
| Nikola P.
| 2007-05-18 19:11:43
|-
| [http://maemo.org/profile/view/nikef.html nikef]
| Sergey Nikiforov
| 2008-01-16 19:51:58
|-
| [http://maemo.org/profile/view/nikem.html nikem]
| Nils Kemper
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/nikhil.html nikhil]
| Nikhil Gupta
| 2008-01-14 09:41:03
|-
| [http://maemo.org/profile/view/nikhil_bhargava.html nikhil_bhargava]
| nikhil bhargava
| 2007-11-16 17:47:49
|-
| [http://maemo.org/profile/view/nikkoboy.html nikkoboy]
| Nicolas Martin
| 2007-11-16 17:49:30
|-
| [http://maemo.org/profile/view/niko.html niko]
| John Smith
| 2008-01-30 16:31:26
|-
| [http://maemo.org/profile/view/nikobit.html nikobit]
| Nikolay Bitsadze
| 2008-01-28 18:42:21
|-
| [http://maemo.org/profile/view/nikolas.html nikolas]
| Nikolas Clark
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/nikolay.html nikolay]
| Nikolay Ryzhov
| 2007-11-16 09:40:42
|-
| [http://maemo.org/profile/view/nikopol.html nikopol]
| Andrey Andersson
| 2007-10-18 19:40:41
|-
| [http://maemo.org/profile/view/nikor.html nikor]
| Søren Poulsen
| 2007-05-18 19:11:41
|-
| [http://maemo.org/profile/view/nikozster.html nikozster]
| NiKoZ _
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/niksimms.html niksimms]
| nik simms
| 2008-01-08 10:40:58
|-
| [http://maemo.org/profile/view/nikson.html nikson]
| nikson Proper
| 2007-11-16 17:47:47
|-
| [http://maemo.org/profile/view/nikson_nn.html nikson_nn]
| nikson nn
| 2007-05-18 19:11:14
|-
| [http://maemo.org/profile/view/niku.html niku]
| Niklas Tikkala
| 2007-12-11 16:24:54
|-
| [http://maemo.org/profile/view/nils.html nils]
| Nils Faerber
| 2007-05-21 13:43:07
|-
| [http://maemo.org/profile/view/nimix000.html nimix000]
| nimix 000
| 2007-11-03 09:40:36
|-
| [http://maemo.org/profile/view/ninature.html ninature]
| larry pasley
| 2008-01-30 08:31:18
|-
| [http://maemo.org/profile/view/ninjak.html ninjak]
| Massimiliano Zagaglia
| 2007-12-11 16:25:39
|-
| [http://maemo.org/profile/view/nino.html nino]
| loccci cesare
| 2008-05-13 01:41:13
|-
| [http://maemo.org/profile/view/ninodelprete.html ninodelprete]
| nino delprete
| 2008-04-01 05:41:03
|-
| [http://maemo.org/profile/view/ninuxpdb.html ninuxpdb]
| paolo delbene
| 2007-09-05 19:40:22
|-
| [http://maemo.org/profile/view/niol.html niol]
| Alexandre Rossi
| 2007-11-16 17:47:25
|-
| [http://maemo.org/profile/view/nipa.html nipa]
| Tomi Nieminen
| 2007-10-21 10:40:31
|-
| [http://maemo.org/profile/view/nipper.html nipper]
| Victor Sidorov
| 2008-01-19 20:41:00
|-
| [http://maemo.org/profile/view/nisha.html nisha]
| nisha jain
| 2008-01-28 23:31:07
|-
| [http://maemo.org/profile/view/nishan.html nishan]
| Nishan Fernando
| 2007-05-18 19:14:17
|-
| [http://maemo.org/profile/view/nishanf.html nishanf]
| Nishan Fernando
| 2007-05-18 19:13:34
|-
| [http://maemo.org/profile/view/nishi850.html nishi850]
| Kazunobu Nishimura
| 2007-11-28 15:43:36
|-
| [http://maemo.org/profile/view/nitchand.html nitchand]
| Nithin Chandrashekar
| 2007-10-30 11:40:34
|-
| [http://maemo.org/profile/view/nite_man.html nite_man]
| Michael Stepanov
| 2007-05-18 19:10:50
|-
| [http://maemo.org/profile/view/nitin.html nitin]
| Nitin Mahajan
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/nittanyboy.html nittanyboy]
| Richard Stonage
| 2008-02-12 07:31:14
|-
| [http://maemo.org/profile/view/nivw.html nivw]
| Niv Vaizer
| 2008-01-08 21:41:16
|-
| [http://maemo.org/profile/view/nixgeek.html nixgeek]
| Tim Manochehri
| 2008-04-03 14:41:08
|-
| [http://maemo.org/profile/view/nix_nix.html nix_nix]
| Gabriel Schulhof
| 2007-05-18 19:12:34
|-
| [http://maemo.org/profile/view/niya319.html niya319]
| tamesha brewer
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/nizartk.html nizartk]
| nizar tackie
| 2007-12-26 01:42:39
|-
| [http://maemo.org/profile/view/njadwards.html njadwards]
| Yi Sun
| 2007-07-09 02:40:15
|-
| [http://maemo.org/profile/view/njhardc0re.html njhardc0re]
| Todd Vernick
| 2007-11-16 17:46:35
|-
| [http://maemo.org/profile/view/njsf.html njsf]
| Nelson Ferreira
| 2007-11-04 20:40:40
|-
| [http://maemo.org/profile/view/njwjensen.html njwjensen]
| niels jensen
| 2007-07-22 21:40:19
|-
| [http://maemo.org/profile/view/nkben.html nkben]
| Ben Nesbitt
| 2007-11-28 15:43:44
|-
| [http://maemo.org/profile/view/nknayyar.html nknayyar]
| Naresh Nayyar
| 2007-12-18 06:40:54
|-
| [http://maemo.org/profile/view/nkourtis.html nkourtis]
| Nikos Kourtis
| 2007-12-29 06:40:56
|-
| [http://maemo.org/profile/view/nlewis.html nlewis]
| Nicholas Lewis
| 2008-04-17 09:41:06
|-
| [http://maemo.org/profile/view/nlkccom.html nlkccom]
| Norman Lam
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/nlrogers.html nlrogers]
| Nathaniel Rogers
| 2008-04-23 21:41:08
|-
| [http://maemo.org/profile/view/nmaou.html nmaou]
| napoleon maou
| 2008-01-25 00:31:07
|-
| [http://maemo.org/profile/view/nmardi.html nmardi]
| nabeel mardi
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/nmkraju.html nmkraju]
| Madhu Nadempalli
| 2007-11-30 10:49:05
|-
| [http://maemo.org/profile/view/nnackeeran.html nnackeeran]
| Nackeeran Narayanan
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/nnh.html nnh]
| Nikolay Khartanovich
| 2007-11-16 17:46:56
|-
| [http://maemo.org/profile/view/nning.html nning]
| Nan Ning
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/nnod.html nnod]
| Donn Morrison
| 2007-10-18 19:40:41
|-
| [http://maemo.org/profile/view/no1doc.html no1doc]
| Atul Sachdev
| 2007-06-09 16:51:00
|-
| [http://maemo.org/profile/view/no1readsthese.html no1readsthese]
| Jeff Gonzalez
| 2008-01-26 05:31:22
|-
| [http://maemo.org/profile/view/noah.html noah]
| Noah Woo
| 2007-05-18 19:11:31
|-
| [http://maemo.org/profile/view/noahvail.html noahvail]
| Noah Vail
| 2007-11-28 15:42:49
|-
| [http://maemo.org/profile/view/nock.html nock]
| Shawn Nock
| 2007-10-18 15:40:21
|-
| [http://maemo.org/profile/view/nocturnal2578.html nocturnal2578]
| tim vite
| 2007-12-11 16:25:09
|-
| [http://maemo.org/profile/view/nodens.html nodens]
| Javier Olvera
| 2007-09-19 16:40:25
|-
| [http://maemo.org/profile/view/nodoughballin.html nodoughballin]
| B R
| 2007-06-29 11:40:07
|-
| [http://maemo.org/profile/view/noelkan.html noelkan]
| Noel Kantaris
| 2008-03-09 08:31:02
|-
| [http://maemo.org/profile/view/nofearxp.html nofearxp]
| Jr Parel
| 2007-06-22 09:40:09
|-
| [http://maemo.org/profile/view/nofool.html nofool]
| Dave Rakestraw
| 2007-11-16 17:47:47
|-
| [http://maemo.org/profile/view/nogui.html nogui]
| Cameron Johnson
| 2007-05-18 19:11:14
|-
| [http://maemo.org/profile/view/noir.html noir]
| Jesus Nuño
| 2007-05-18 19:10:30
|-
| [http://maemo.org/profile/view/nokia007.html nokia007]
| nokia007 bond
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/nokia770.html nokia770]
| winig nakapakorn
| 2008-01-25 05:31:02
|-
| [http://maemo.org/profile/view/nokia770os07.html nokia770os07]
| AKSHAYA PAMARTHI
| 2008-02-08 01:31:17
|-
| [http://maemo.org/profile/view/nokia9xxx.html nokia9xxx]
| nokia ben nokia
| 2008-02-04 14:31:19
|-
| [http://maemo.org/profile/view/nokiaa.html nokiaa]
| nokia a
| 2007-06-21 21:40:09
|-
| [http://maemo.org/profile/view/nokiadev.html nokiadev]
| Jo Dalton
| 2007-10-28 20:40:35
|-
| [http://maemo.org/profile/view/nokiagladistor.html nokiagladistor]
| g g
| 2008-03-08 16:31:10
|-
| [http://maemo.org/profile/view/nokiaklaus.html nokiaklaus]
| Klaus Fetscher
| 2007-06-19 07:10:35
|-
| [http://maemo.org/profile/view/nokialittleboy.html nokialittleboy]
| Pitou Leng
| 2007-12-11 16:25:10
|-
| [http://maemo.org/profile/view/nokian5157.html nokian5157]
| Lee Luong
| 2007-11-16 17:47:32
|-
| [http://maemo.org/profile/view/nokian800.html nokian800]
| prateek gulati
| 2008-05-11 14:41:07
|-
| [http://maemo.org/profile/view/nokianew.html nokianew]
| Neil Gottlieb
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/nokiapaul.html nokiapaul]
| Paul Ek
| 2007-12-31 12:40:57
|-
| [http://maemo.org/profile/view/nokiasmurf.html nokiasmurf]
| Aaron Netzer
| 2008-02-21 08:30:56
|-
| [http://maemo.org/profile/view/nokiauser03.html nokiauser03]
| johnny long
| 2008-02-03 04:31:13
|-
| [http://maemo.org/profile/view/noknok770.html noknok770]
| narong pung
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/noktux.html noktux]
| moritz kruttwig
| 2007-11-16 17:47:44
|-
| [http://maemo.org/profile/view/nolag.html nolag]
| Normand Lagace
| 2007-11-16 17:49:22
|-
| [http://maemo.org/profile/view/nolangjohnson.html nolangjohnson]
| Nolan Johnson
| 2007-07-04 04:40:09
|-
| [http://maemo.org/profile/view/nolaviz.html nolaviz]
| Alon Ziv
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/noltec.html noltec]
| Christian Nolte
| 2008-02-06 14:31:47
|-
| [http://maemo.org/profile/view/nomad_amg.html nomad_amg]
| Andre Gauthier
| 2008-02-23 22:31:05
|-
| [http://maemo.org/profile/view/nomis.html nomis]
| Simon Munton
| 2007-10-19 21:40:31
|-
| [http://maemo.org/profile/view/non.html non]
| ghh hhh
| 2008-01-05 23:41:05
|-
| [http://maemo.org/profile/view/nonborn.html nonborn]
| Danil Titlinov
| 2007-11-16 17:49:04
|-
| [http://maemo.org/profile/view/noneus.html noneus]
| Stefan Lohmaier
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/nonford150.html nonford150]
| John Burris
| 2007-11-15 07:56:17
|-
| [http://maemo.org/profile/view/nonserious.html nonserious]
| Rich Saunders
| 2008-02-09 04:31:13
|-
| [http://maemo.org/profile/view/noodlehead7078.html noodlehead7078]
| Jonathan Galinski
| 2007-11-16 17:46:32
|-
| [http://maemo.org/profile/view/norcalbarney.html norcalbarney]
| matthew bennett
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/nord1233.html nord1233]
| Peter Nord
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/nordee.html nordee]
| John Phillips
| 2008-03-12 17:31:03
|-
| [http://maemo.org/profile/view/norinme.html norinme]
| Marco Poletì
| 2008-01-28 22:41:42
|-
| [http://maemo.org/profile/view/normb.html normb]
| Norm Byers
| 2007-12-11 16:25:35
|-
| [http://maemo.org/profile/view/normi.html normi]
| Norman Dutton
| 2007-11-16 17:46:45
|-
| [http://maemo.org/profile/view/normmonkey.html normmonkey]
| Josh Audette
| 2007-11-16 17:47:43
|-
| [http://maemo.org/profile/view/normstrm.html normstrm]
| Norman Pyke
| 2007-06-27 17:40:07
|-
| [http://maemo.org/profile/view/northvector.html northvector]
| trent templar
| 2008-03-22 08:31:03
|-
| [http://maemo.org/profile/view/nortis.html nortis]
| Martin Isak Jansen
| 2007-11-30 10:49:23
|-
| [http://maemo.org/profile/view/nortonjco.html nortonjco]
| John Norton
| 2007-12-29 08:41:00
|-
| [http://maemo.org/profile/view/nosbodh.html nosbodh]
| howard dobson
| 2007-05-18 19:12:57
|-
| [http://maemo.org/profile/view/nostromo.html nostromo]
| Bud Raymond
| 2007-07-04 05:40:19
|-
| [http://maemo.org/profile/view/notaguru.html notaguru]
| Hank Eis
| 2007-07-05 04:40:18
|-
| [http://maemo.org/profile/view/notatoad.html notatoad]
| kyle schrama
| 2007-11-28 15:43:27
|-
| [http://maemo.org/profile/view/nothing-2.html nothing-2]
| Ye Jiangwei
| 2007-11-16 17:48:08
|-
| [http://maemo.org/profile/view/notpeter.html notpeter]
| Peter Tripp
| 2007-11-16 17:46:40
|-
| [http://maemo.org/profile/view/novaterata.html novaterata]
| Nova Terata
| 2008-04-25 15:41:07
|-
| [http://maemo.org/profile/view/novleex.html novleex]
| nov leex
| 2008-01-27 21:31:23
|-
| [http://maemo.org/profile/view/novrain96.html novrain96]
| lillian rodriguez
| 2007-11-15 07:56:17
|-
| [http://maemo.org/profile/view/noway0032.html noway0032]
| Tur Rob
| 2008-03-15 00:31:01
|-
| [http://maemo.org/profile/view/nowinter.html nowinter]
| Me No
| 2007-10-22 20:40:35
|-
| [http://maemo.org/profile/view/nowotny.html nowotny]
| alan nowotny
| 2007-05-18 19:12:08
|-
| [http://maemo.org/profile/view/noyz.html noyz]
| Bryan Quiroz
| 2007-05-29 09:30:43
|-
| [http://maemo.org/profile/view/npmccallum.html npmccallum]
| Nathaniel McCallum
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/npt.html npt]
| Nick Thompson
| 2007-11-28 17:40:53
|-
| [http://maemo.org/profile/view/nrbq.html nrbq]
| William Roland
| 2008-01-04 15:43:11
|-
| [http://maemo.org/profile/view/nrnr.html nrnr]
| Norman Ramsey
| 2007-11-28 15:43:45
|-
| [http://maemo.org/profile/view/nrune.html nrune]
| mike brown
| 2007-12-20 12:41:08
|-
| [http://maemo.org/profile/view/nsitnov.html nsitnov]
| Nedelcho Sitnov
| 2007-12-25 07:41:09
|-
| [http://maemo.org/profile/view/nspeer.html nspeer]
| neil speer
| 2007-05-18 19:12:48
|-
| [http://maemo.org/profile/view/nsteveo.html nsteveo]
| Steve McCormick
| 2007-05-18 19:14:44
|-
| [http://maemo.org/profile/view/nsurfer.html nsurfer]
| alex 
| 2008-05-02 10:41:10
|-
| [http://maemo.org/profile/view/nswint.html nswint]
| Noah Swint
| 2008-03-12 02:31:15
|-
| [http://maemo.org/profile/view/ntd.html ntd]
| Hao Yu
| 2008-01-18 10:31:10
|-
| [http://maemo.org/profile/view/ntrusbak.html ntrusbak]
| Niels Trusbak
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/ntsourak.html ntsourak]
| Nikos Tsourakis
| 2007-05-18 19:13:59
|-
| [http://maemo.org/profile/view/nuai_1112.html nuai_1112]
| Annuar Yusof
| 2007-12-11 16:25:04
|-
| [http://maemo.org/profile/view/nuclide.html nuclide]
| Marat Bakhtegariev
| 2007-12-23 09:41:21
|-
| [http://maemo.org/profile/view/nudelsnack.html nudelsnack]
| Andreas Benzing
| 2007-01-31 18:30:05
|-
| [http://maemo.org/profile/view/nukaperry.html nukaperry]
| Jeff Perry
| 2007-05-18 19:12:04
|-
| [http://maemo.org/profile/view/nukky2520.html nukky2520]
| s w
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/null.html null]
| Fernando Fuentes
| 2007-05-18 19:10:25
|-
| [http://maemo.org/profile/view/number6.html number6]
| Greg Richardson
| 2007-12-16 01:46:35
|-
| [http://maemo.org/profile/view/numbere5.html numbere5]
| Eric Cates
| 2008-05-13 15:41:11
|-
| [http://maemo.org/profile/view/numeh.html numeh]
| Ndubisi Umeh
| 2008-01-02 21:41:39
|-
| [http://maemo.org/profile/view/nunnehi.html nunnehi]
| Marcus Brodeur
| 2007-07-08 09:40:10
|-
| [http://maemo.org/profile/view/nunu2000sg.html nunu2000sg]
| Nu nu Ng
| 2007-10-27 05:40:37
|-
| [http://maemo.org/profile/view/nuphorm.html nuphorm]
| Ed Richard
| 2007-11-30 10:49:20
|-
| [http://maemo.org/profile/view/nurbay.html nurbay]
| nurbay aydin
| 2008-06-08 18:31:13
|-
| [http://maemo.org/profile/view/nursultan.html nursultan]
| Sultan Nurik
| 2007-11-30 10:49:26
|-
| [http://maemo.org/profile/view/nursultan11.html nursultan11]
| nurik11 nurik
| 2007-11-16 17:49:31
|-
| [http://maemo.org/profile/view/nutradoc.html nutradoc]
| James Lembeck
| 2008-03-10 01:34:15
|-
| [http://maemo.org/profile/view/nuuneoi.html nuuneoi]
| Sittiphol Phanvilai
| 2007-10-19 04:40:30
|-
| [http://maemo.org/profile/view/nuxlli.html nuxlli]
| Everton Ribeiro
| 2008-04-22 23:41:20
|-
| [http://maemo.org/profile/view/nuzhaa.html nuzhaa]
| adnan alsarraf
| 2007-07-10 18:40:16
|-
| [http://maemo.org/profile/view/nvantreeck.html nvantreeck]
| Norman Van Treeck
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/nvuanh.html nvuanh]
| Nguyen Vu Anh
| 2007-05-18 19:12:38
|-
| [http://maemo.org/profile/view/nweeck.html nweeck]
| nelson wee
| 2007-05-18 19:13:31
|-
| [http://maemo.org/profile/view/nwp.html nwp]
| Nick Phillips
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/nycsfo.html nycsfo]
| riccardo spina
| 2007-06-23 03:40:06
|-
| [http://maemo.org/profile/view/nyczwillz.html nyczwillz]
| William L
| 2007-11-16 17:47:43
|-
| [http://maemo.org/profile/view/nyfkin.html nyfkin]
| Tony Bruno
| 2008-02-16 12:30:58
|-
| [http://maemo.org/profile/view/nygren.html nygren]
| Erik Nygren
| 2007-10-18 22:40:28
|-
| [http://maemo.org/profile/view/nylorend.html nylorend]
| Jaime Grunfeld
| 2008-02-10 19:31:15
|-
| [http://maemo.org/profile/view/nynexman4464.html nynexman4464]
| Alex Rock
| 2007-07-01 04:40:14
|-
| [http://maemo.org/profile/view/nypasta.html nypasta]
| Frank Campi
| 2007-11-16 17:46:31
|-
| [http://maemo.org/profile/view/nysebull.html nysebull]
| Mike Bower
| 2007-07-05 02:40:16
|-
| [http://maemo.org/profile/view/nyte_falcon.html nyte_falcon]
| Chaim Sanders
| 2006-10-30 17:22:10
|-
| [http://maemo.org/profile/view/nyum96.html nyum96]
| Barry Broome
| 2007-11-16 17:46:25
|-
| [http://maemo.org/profile/view/nzraik.html nzraik]
| nizar zraik
| 2007-05-18 19:12:53
|-
| [http://maemo.org/profile/view/n_simham.html n_simham]
| Narasimham Melanathur
| 2007-09-13 13:40:25
|-
| [http://maemo.org/profile/view/oahvenla.html oahvenla]
| Osma Ahvenlampi
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/oaskofare.html oaskofare]
| Usman Askofare
| 2007-11-16 17:46:23
|-
| [http://maemo.org/profile/view/oaussieo.html oaussieo]
| Ken Stow
| 2007-12-31 19:40:57
|-
| [http://maemo.org/profile/view/obb770.html obb770]
| obb 770
| 2007-06-19 07:40:19
|-
| [http://maemo.org/profile/view/oberstet.html oberstet]
| Tobias Oberstein
| 2008-04-20 06:41:25
|-
| [http://maemo.org/profile/view/obi.html obi]
| Andreas Oberritter
| 2007-02-01 15:20:06
|-
| [http://maemo.org/profile/view/object47.html object47]
| david wayne
| 2007-11-16 17:47:57
|-
| [http://maemo.org/profile/view/obren1.html obren1]
| o b
| 2008-01-07 13:40:58
|-
| [http://maemo.org/profile/view/obrez.html obrez]
| obrez o
| 2007-12-19 20:42:08
|-
| [http://maemo.org/profile/view/obscure9.html obscure9]
| Andrea Franchi
| 2007-10-22 09:40:33
|-
| [http://maemo.org/profile/view/oceanlover.html oceanlover]
| Mike Devaney
| 2008-02-24 16:30:58
|-
| [http://maemo.org/profile/view/oceansoul.html oceansoul]
| Ximena E. Cardinali
| 2007-05-18 19:11:28
|-
| [http://maemo.org/profile/view/octor.html octor]
| Andy Ball
| 2007-06-08 13:37:13
|-
| [http://maemo.org/profile/view/odavilar.html odavilar]
| Oscar Davila
| 2007-11-15 07:55:07
|-
| [http://maemo.org/profile/view/odeoness.html odeoness]
| mario ja
| 2007-11-15 07:55:51
|-
| [http://maemo.org/profile/view/odlopez.html odlopez]
| Kolya Gerasimov
| 2007-07-11 03:40:18
|-
| [http://maemo.org/profile/view/odollamsky.html odollamsky]
| Alexey Odollamskiy
| 2007-11-28 15:43:12
|-
| [http://maemo.org/profile/view/oej.html oej]
| Olle E Johansson
| 2006-10-30 17:22:10
|-
| [http://maemo.org/profile/view/oeschgi.html oeschgi]
| Philipp Oeschger
| 2007-05-18 19:11:10
|-
| [http://maemo.org/profile/view/offenmeier.html offenmeier]
| eugene tekuch
| 2007-11-30 10:48:17
|-
| [http://maemo.org/profile/view/oggis.html oggis]
| Olli Salli
| 2007-10-19 11:40:32
|-
| [http://maemo.org/profile/view/ogi.html ogi]
| Ognian Samokovliyski
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/ognend.html ognend]
| Ognen Duzlevski
| 2007-12-11 16:25:42
|-
| [http://maemo.org/profile/view/ogorter.html ogorter]
| Onne Gorter
| 2007-05-18 19:12:15
|-
| [http://maemo.org/profile/view/oguh.html oguh]
| Hugo Nogueira
| 2007-10-22 14:40:33
|-
| [http://maemo.org/profile/view/oh8gej.html oh8gej]
| Julian W
| 2008-05-10 16:41:08
|-
| [http://maemo.org/profile/view/oh8vj.html oh8vj]
| Pentti Jutila
| 2008-03-27 22:31:10
|-
| [http://maemo.org/profile/view/oholler.html oholler]
| oliver holler
| 2007-11-15 07:55:38
|-
| [http://maemo.org/profile/view/oier.html oier]
| oier blasco
| 2007-10-19 13:40:34
|-
| [http://maemo.org/profile/view/oilinki.html oilinki]
| Pekka Oilinki
| 2007-05-29 09:30:14
|-
| [http://maemo.org/profile/view/ojup.html ojup]
| pujo cahyono
| 2007-08-30 02:40:21
|-
| [http://maemo.org/profile/view/okantlin.html okantlin]
| Olli-Markus Kantlin
| 2007-10-30 09:40:37
|-
| [http://maemo.org/profile/view/okashum.html okashum]
| Shumpei Takizawa
| 2007-11-28 17:40:53
|-
| [http://maemo.org/profile/view/okbcnu.html okbcnu]
| david tennie
| 2008-01-12 14:41:24
|-
| [http://maemo.org/profile/view/okisevilla.html okisevilla]
| diego gonzalez
| 2008-05-10 18:41:06
|-
| [http://maemo.org/profile/view/okko.html okko]
| Oskari Ojala
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/okokki.html okokki]
| Oscar Kokki
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/oksase.html oksase]
| Seppo Oksa
| 2007-11-16 17:49:07
|-
| [http://maemo.org/profile/view/olberger.html olberger]
| Olivier Berger
| 2007-06-19 07:10:33
|-
| [http://maemo.org/profile/view/olcaytu.html olcaytu]
| olcaytu endes
| 2008-04-16 23:41:13
|-
| [http://maemo.org/profile/view/oldghost.html oldghost]
| Thomas Kanzelsberger
| 2007-06-08 13:37:20
|-
| [http://maemo.org/profile/view/oldmancoyote1.html oldmancoyote1]
| Carl Carlson
| 2008-03-21 04:31:03
|-
| [http://maemo.org/profile/view/oldradiogeek.html oldradiogeek]
| Glenn Wittenberg
| 2007-11-16 17:48:15
|-
| [http://maemo.org/profile/view/oldscool.html oldscool]
| Brad Read
| 2008-05-13 17:41:10
|-
| [http://maemo.org/profile/view/oldscout1.html oldscout1]
| Howard Alexander
| 2008-04-02 13:41:40
|-
| [http://maemo.org/profile/view/old_old_7.html old_old_7]
| Johnny Chan
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/old__school.html old__school]
| sergey moloshnikov
| 2007-06-08 13:37:18
|-
| [http://maemo.org/profile/view/oleg47ny.html oleg47ny]
| oleg kotelnikov
| 2008-02-23 22:31:08
|-
| [http://maemo.org/profile/view/olegkor.html olegkor]
| Oleg Korenkow
| 2007-10-20 08:40:32
|-
| [http://maemo.org/profile/view/olento.html olento]
| Marko Juhanne
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/oleross.html oleross]
| ole ross
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/olga.html olga]
| Olga Sidorova
| 2007-05-18 19:10:48
|-
| [http://maemo.org/profile/view/olgasewer.html olgasewer]
| tanya alex
| 2008-01-08 08:41:12
|-
| [http://maemo.org/profile/view/oliv.html oliv]
| Olivier DOLE
| 2007-06-11 16:30:38
|-
| [http://maemo.org/profile/view/olivea1973.html olivea1973]
| franc roskar
| 2007-05-18 19:10:52
|-
| [http://maemo.org/profile/view/oliver.html oliver]
| Oliver 
| 2008-04-02 20:41:07
|-
| [http://maemo.org/profile/view/olivers.html olivers]
| Oliver Stosberg
| 2007-10-18 15:40:33
|-
| [http://maemo.org/profile/view/oliverue.html oliverue]
| Oliver Unter Ecker
| 2007-10-29 17:40:37
|-
| [http://maemo.org/profile/view/oliver_lee.html oliver_lee]
| Lee Lee
| 2008-04-17 09:41:06
|-
| [http://maemo.org/profile/view/olivier.html olivier]
| Olivier Moreau
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/olivierfarolet.html olivierfarolet]
| olivier farolet
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/olivluca.html olivluca]
| Luca Olivetti
| 2007-09-26 22:40:26
|-
| [http://maemo.org/profile/view/olle.html olle]
| Olle Segerdahl
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/oltimus.html oltimus]
| Eugune Pichugin
| 2008-05-13 05:41:08
|-
| [http://maemo.org/profile/view/oluka007.html oluka007]
| oluka okpa
| 2007-10-31 22:40:36
|-
| [http://maemo.org/profile/view/olympian105.html olympian105]
| Thaddeus Lee
| 2007-10-28 23:40:39
|-
| [http://maemo.org/profile/view/omaciel.html omaciel]
| Og Maciel
| 2007-10-19 16:40:34
|-
| [http://maemo.org/profile/view/omarpm.html omarpm]
| Omar Perez
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/omasque.html omasque]
| Rob H
| 2007-12-17 15:40:56
|-
| [http://maemo.org/profile/view/omasub.html omasub]
| Victor Urrea
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/omegaman.html omegaman]
| Carlos Iván Prieto Rubio
| 2007-10-22 08:40:36
|-
| [http://maemo.org/profile/view/omenplayer.html omenplayer]
| Jerald Mize
| 2007-11-03 00:40:36
|-
| [http://maemo.org/profile/view/omerfarukgok.html omerfarukgok]
| omer faruk gok
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/ominousluv.html ominousluv]
| R. Aaron Ramey
| 2008-01-24 23:51:14
|-
| [http://maemo.org/profile/view/omniball.html omniball]
| Dominik Schips
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/omoragnolo.html omoragnolo]
| Marco Paternostro
| 2007-11-28 15:43:35
|-
| [http://maemo.org/profile/view/omukage.html omukage]
| daniele rossi
| 2007-10-21 23:40:29
|-
| [http://maemo.org/profile/view/ondrax.html ondrax]
| Ondrej Kliment
| 2007-10-16 13:40:27
|-
| [http://maemo.org/profile/view/oneillsden.html oneillsden]
| Colleen O'Neill
| 2008-05-30 15:41:10
|-
| [http://maemo.org/profile/view/oneinfiniteloop.html oneinfiniteloop]
| Sasha Friedenberg
| 2007-06-27 16:40:11
|-
| [http://maemo.org/profile/view/onemaster.html onemaster]
| Hans Franz
| 2007-06-13 18:41:01
|-
| [http://maemo.org/profile/view/onesound.html onesound]
| onesound groove
| 2007-12-18 08:50:57
|-
| [http://maemo.org/profile/view/one_red_eye.html one_red_eye]
| M G
| 2007-10-23 02:40:35
|-
| [http://maemo.org/profile/view/onhiatus.html onhiatus]
| Tony jones
| 2007-11-15 07:55:38
|-
| [http://maemo.org/profile/view/onion.html onion]
| Kaj-Michael Lang
| 2007-05-18 19:10:41
|-
| [http://maemo.org/profile/view/onix.html onix]
| David Koch
| 2007-10-18 04:40:28
|-
| [http://maemo.org/profile/view/onlinejimk.html onlinejimk]
| JIm Kallaugher
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/onlysolution.html onlysolution]
| Casey Carlin
| 2007-07-02 08:40:11
|-
| [http://maemo.org/profile/view/ono.html ono]
| Tez Ono
| 2007-05-18 19:13:16
|-
| [http://maemo.org/profile/view/onthego.html onthego]
| Walter Mallard
| 2007-12-29 00:41:12
|-
| [http://maemo.org/profile/view/ontological.html ontological]
| ontological zombie
| 2007-11-16 17:49:28
|-
| [http://maemo.org/profile/view/onuvo.html onuvo]
| Andrey Mosov
| 2007-11-15 07:56:03
|-
| [http://maemo.org/profile/view/onydea.html onydea]
| Paolo Tamilia
| 2007-12-24 00:41:27
|-
| [http://maemo.org/profile/view/onyxcel.html onyxcel]
| Uche Unogu
| 2008-03-20 21:31:03
|-
| [http://maemo.org/profile/view/oommoo.html oommoo]
| Vic Bancroft
| 2007-05-18 19:12:21
|-
| [http://maemo.org/profile/view/ooppari.html ooppari]
| Petri Hannula
| 2007-11-28 15:43:43
|-
| [http://maemo.org/profile/view/oort.html oort]
| Alex Kicelew
| 2008-01-25 08:31:02
|-
| [http://maemo.org/profile/view/oouc.html oouc]
| Oou Seaman
| 2007-07-09 11:40:05
|-
| [http://maemo.org/profile/view/opeeschick.html opeeschick]
| charlene olson
| 2007-12-12 05:41:00
|-
| [http://maemo.org/profile/view/opencodes.html opencodes]
| seven technology
| 2007-07-02 20:40:14
|-
| [http://maemo.org/profile/view/opendeep.html opendeep]
| pradeep kumar
| 2008-03-18 07:31:00
|-
| [http://maemo.org/profile/view/opengeek.html opengeek]
| Jason Coward
| 2008-01-22 05:31:23
|-
| [http://maemo.org/profile/view/openxing.html openxing]
| open xing
| 2008-03-06 15:31:05
|-
| [http://maemo.org/profile/view/opera890.html opera890]
| opera N770
| 2007-11-16 17:48:08
|-
| [http://maemo.org/profile/view/opeyemi8.html opeyemi8]
| Paule Alli
| 2007-12-20 15:51:44
|-
| [http://maemo.org/profile/view/ophelix.html ophelix]
| Ophelix Serpenca
| 2007-05-18 19:11:28
|-
| [http://maemo.org/profile/view/opher.html opher]
| Opher Aloni
| 2007-12-21 14:51:18
|-
| [http://maemo.org/profile/view/opqdonut.html opqdonut]
| Joel Kaasinen
| 2007-06-08 13:37:21
|-
| [http://maemo.org/profile/view/option8.html option8]
| charles Mangin
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/opy.html opy]
| opy gomes
| 2007-11-30 10:49:09
|-
| [http://maemo.org/profile/view/orangerock15.html orangerock15]
| Jeremy Chen
| 2008-01-26 18:33:14
|-
| [http://maemo.org/profile/view/oranginalab.html oranginalab]
| Tomas Jimenez
| 2007-05-18 19:12:13
|-
| [http://maemo.org/profile/view/oranta.html oranta]
| Sergey Boldyrev
| 2007-05-18 19:11:50
|-
| [http://maemo.org/profile/view/orbitz.html orbitz]
| Shawn Beswick
| 2007-05-18 19:13:06
|-
| [http://maemo.org/profile/view/orcim.html orcim]
| loris michielutti
| 2007-10-22 07:40:35
|-
| [http://maemo.org/profile/view/ordxpres.html ordxpres]
| Maciej Radzik
| 2008-03-23 13:31:04
|-
| [http://maemo.org/profile/view/orgoz.html orgoz]
| Olivier Boudet
| 2007-11-16 17:46:47
|-
| [http://maemo.org/profile/view/orie.html orie]
| Olga Yermishkina
| 2007-10-21 06:40:33
|-
| [http://maemo.org/profile/view/oriolj.html oriolj]
| Oriol Jiménez
| 2007-10-20 02:40:30
|-
| [http://maemo.org/profile/view/orionlogic.html orionlogic]
| orion logic
| 2007-05-18 19:13:42
|-
| [http://maemo.org/profile/view/orionpax.html orionpax]
| colin lee
| 2008-02-20 17:30:58
|-
| [http://maemo.org/profile/view/oripuma.html oripuma]
| Imam Bukhori
| 2008-01-30 07:31:23
|-
| [http://maemo.org/profile/view/orlandoc.html orlandoc]
| Orlando cabrera
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/orochikun.html orochikun]
| Eduardo Rubio
| 2007-12-15 08:40:49
|-
| [http://maemo.org/profile/view/oronzous.html oronzous]
| Ivo Santamaria
| 2007-12-20 22:41:54
|-
| [http://maemo.org/profile/view/orppa.html orppa]
| Petri Kanerva
| 2007-05-18 19:12:07
|-
| [http://maemo.org/profile/view/orrc.html orrc]
| Christopher Orr
| 2007-10-21 12:40:34
|-
| [http://maemo.org/profile/view/orroberson.html orroberson]
| otto roberson
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/orson.html orson]
| peter stack
| 2008-03-16 16:31:01
|-
| [http://maemo.org/profile/view/ortelius.html ortelius]
| Jeffrey Johnson
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/ortmar212.html ortmar212]
| mario ortiz
| 2008-02-17 02:31:13
|-
| [http://maemo.org/profile/view/orvind.html orvind]
| Anton Khokhlov
| 2007-06-08 13:37:20
|-
| [http://maemo.org/profile/view/osandland.html osandland]
| Orjan Sandland
| 2008-01-19 03:31:21
|-
| [http://maemo.org/profile/view/osantana.html osantana]
| Osvaldo Santana
| 2007-05-18 19:12:47
|-
| [http://maemo.org/profile/view/osattari.html osattari]
| omar sattari
| 2007-11-02 15:40:37
|-
| [http://maemo.org/profile/view/oscar770.html oscar770]
| Oscar Bethancourt Reyes
| 2007-12-14 04:41:00
|-
| [http://maemo.org/profile/view/oscar777.html oscar777]
| carlo mosca
| 2008-05-25 13:41:11
|-
| [http://maemo.org/profile/view/oscarbevilacqua.html oscarbevilacqua]
| oscar bevilacqua
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/oscarjs.html oscarjs]
| Oscar Silva
| 2007-05-18 19:12:05
|-
| [http://maemo.org/profile/view/oscarrgd.html oscarrgd]
| Oscar Rodriguez
| 2008-03-22 04:31:05
|-
| [http://maemo.org/profile/view/oscrow.html oscrow]
| okan solmaz
| 2008-03-11 22:31:07
|-
| [http://maemo.org/profile/view/osdt.html osdt]
| Frank Schnieder
| 2007-12-31 07:41:14
|-
| [http://maemo.org/profile/view/osemutech.html osemutech]
| James Watters
| 2008-01-11 11:11:20
|-
| [http://maemo.org/profile/view/osetivo.html osetivo]
| Kel Varnsen
| 2007-07-09 16:40:17
|-
| [http://maemo.org/profile/view/osia.html osia]
| Krzysztof Oćwieja
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/oska.html oska]
| Oskars Zvejnieks
| 2008-04-27 20:41:05
|-
| [http://maemo.org/profile/view/oskar.html oskar]
| Oskar Matzerath
| 2008-05-19 03:41:12
|-
| [http://maemo.org/profile/view/oski2302.html oski2302]
| oscar olano
| 2008-02-10 21:31:29
|-
| [http://maemo.org/profile/view/oslec.html oslec]
| Sergio Diaz
| 2008-03-25 03:31:07
|-
| [http://maemo.org/profile/view/osmanseixas.html osmanseixas]
| Osman Júnior
| 2008-04-11 15:41:07
|-
| [http://maemo.org/profile/view/osokthedevil.html osokthedevil]
| jason ship
| 2008-01-22 04:31:32
|-
| [http://maemo.org/profile/view/ospecter.html ospecter]
| Steven Haile
| 2008-01-29 21:31:31
|-
| [http://maemo.org/profile/view/ossgil.html ossgil]
| Gil Pedersen
| 2007-06-19 07:10:35
|-
| [http://maemo.org/profile/view/ossi.html ossi]
| Oskar Welzl
| 2008-06-03 20:41:18
|-
| [http://maemo.org/profile/view/ossi1967.html ossi1967]
| Oskar Welzl
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/ossito.html ossito]
| vaughan smith
| 2007-11-16 17:48:13
|-
| [http://maemo.org/profile/view/ostryjak.html ostryjak]
| Ostin Stryjak
| 2007-11-16 17:47:58
|-
| [http://maemo.org/profile/view/otala.html otala]
| Teemu Otala
| 2007-05-18 19:10:29
|-
| [http://maemo.org/profile/view/otfried.html otfried]
| Otfried Cheong
| 2007-12-11 16:26:12
|-
| [http://maemo.org/profile/view/othan.html othan]
| Okkar Than
| 2007-10-17 23:40:27
|-
| [http://maemo.org/profile/view/otislynn.html otislynn]
| amy vie
| 2008-05-22 18:41:13
|-
| [http://maemo.org/profile/view/otoivainen.html otoivainen]
| Olavi Toivainen
| 2007-03-19 15:34:17
|-
| [http://maemo.org/profile/view/otoklir.html otoklir]
| oto klir
| 2008-03-24 10:31:05
|-
| [http://maemo.org/profile/view/ottob.html ottob]
| otto bauer
| 2008-01-05 00:40:57
|-
| [http://maemo.org/profile/view/ouba.html ouba]
| Denis Sacchet
| 2008-02-27 14:31:11
|-
| [http://maemo.org/profile/view/ouid.html ouid]
| Laurent KISLAIRE
| 2007-12-11 16:26:32
|-
| [http://maemo.org/profile/view/outhere.html outhere]
| Jason Briggs
| 2008-03-15 23:31:00
|-
| [http://maemo.org/profile/view/outi.html outi]
| Patrick Hurrelmann
| 2007-10-22 09:40:34
|-
| [http://maemo.org/profile/view/outlawpoet.html outlawpoet]
| Justin Corwin
| 2007-05-18 19:12:03
|-
| [http://maemo.org/profile/view/outofbound.html outofbound]
| Thomas Geiger
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/outzider.html outzider]
| Nick Melnick
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/overclocke.html overclocke]
| stephane codolo
| 2008-04-13 15:41:11
|-
| [http://maemo.org/profile/view/overmanculture.html overmanculture]
| Tony Standing
| 2007-11-16 17:46:31
|-
| [http://maemo.org/profile/view/ovjo12.html ovjo12]
| Ove Nordström
| 2007-10-19 06:40:31
|-
| [http://maemo.org/profile/view/owlpen.html owlpen]
| Peng Yang
| 2007-05-18 19:11:00
|-
| [http://maemo.org/profile/view/oxodrol.html oxodrol]
| doug staten
| 2008-04-17 13:41:25
|-
| [http://maemo.org/profile/view/oxy2.html oxy2]
| frn nn
| 2007-12-29 20:40:58
|-
| [http://maemo.org/profile/view/oxyum.html oxyum]
| Ivan Fedorov
| 2007-06-08 13:37:16
|-
| [http://maemo.org/profile/view/oysteigi.html oysteigi]
| Øystein Gisnås
| 2007-05-18 19:11:48
|-
| [http://maemo.org/profile/view/oyvind.html oyvind]
| firstname lastname
| 2007-05-18 19:11:57
|-
| [http://maemo.org/profile/view/ozerki.html ozerki]
| Alexander Nikandrov
| 2007-05-29 09:30:41
|-
| [http://maemo.org/profile/view/ozzieskid.html ozzieskid]
| Rick Nelson
| 2007-05-18 19:13:07
|-
| [http://maemo.org/profile/view/o_drugan.html o_drugan]
| Ovidiu Drugan
| 2007-06-19 07:10:36
|-
| [http://maemo.org/profile/view/p0llux.html p0llux]
| g p
| 2008-05-17 07:41:07
|-
| [http://maemo.org/profile/view/p0lymar.html p0lymar]
| Paolo Sellari
| 2007-12-18 18:41:07
|-
| [http://maemo.org/profile/view/p2mate.html p2mate]
| Peter De Schrijver
| 2008-02-11 11:31:31
|-
| [http://maemo.org/profile/view/p3rfectblue.html p3rfectblue]
| Emmanuel Rabaya
| 2007-11-30 10:49:35
|-
| [http://maemo.org/profile/view/p900.html p900]
| stefan dem
| 2008-03-17 17:31:05
|-
| [http://maemo.org/profile/view/pablito56.html pablito56]
| Pablo Enfedaque
| 2007-06-12 11:41:22
|-
| [http://maemo.org/profile/view/pablo.html pablo]
| Robert Jorgenson
| 2007-11-28 15:43:36
|-
| [http://maemo.org/profile/view/pablo59.html pablo59]
| paolo martini
| 2007-11-16 17:48:27
|-
| [http://maemo.org/profile/view/pablochacin.html pablochacin]
| Pablo Chacin
| 2007-05-18 19:10:39
|-
| [http://maemo.org/profile/view/pablojr.html pablojr]
| Pablo Rogina
| 2008-01-18 04:31:03
|-
| [http://maemo.org/profile/view/pabos.html pabos]
| Patrick Bakker
| 2007-10-18 16:40:03
|-
| [http://maemo.org/profile/view/pabs.html pabs]
| Paul Duncan
| 2008-01-22 23:51:28
|-
| [http://maemo.org/profile/view/pac8walka.html pac8walka]
| larry ham
| 2008-03-09 08:31:01
|-
| [http://maemo.org/profile/view/pacarreker.html pacarreker]
| patricia carreker
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/pacarreker02.html pacarreker02]
| Patricia Carreker
| 2007-11-16 17:49:19
|-
| [http://maemo.org/profile/view/paco.html paco]
| francisco anaya
| 2008-03-31 08:41:09
|-
| [http://maemo.org/profile/view/pacsey.html pacsey]
| Seydina Aliou Mbow
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/padan71.html padan71]
| Dan Pavel
| 2008-01-30 08:31:18
|-
| [http://maemo.org/profile/view/paddypaws.html paddypaws]
| kieran Hurley
| 2007-11-16 17:47:19
|-
| [http://maemo.org/profile/view/padrino.html padrino]
| Brian Raymond
| 2007-07-02 02:10:17
|-
| [http://maemo.org/profile/view/padrino121.html padrino121]
| Brian Raymond
| 2007-11-30 10:49:15
|-
| [http://maemo.org/profile/view/padys.html padys]
| Pawel Dys
| 2008-04-15 09:41:06
|-
| [http://maemo.org/profile/view/pagemy.html pagemy]
| phi hong
| 2008-04-11 15:41:07
|-
| [http://maemo.org/profile/view/pagerk.html pagerk]
| Bob Page
| 2008-01-08 05:40:54
|-
| [http://maemo.org/profile/view/paguro.html paguro]
| Michail Melnikov
| 2007-12-11 16:25:51
|-
| [http://maemo.org/profile/view/pain.html pain]
| Pain 999
| 2008-04-08 02:41:04
|-
| [http://maemo.org/profile/view/pairodocks.html pairodocks]
| Clay Busker
| 2008-05-17 04:40:10
|-
| [http://maemo.org/profile/view/pajaron.html pajaron]
| Jesus Pajaron Diaz
| 2007-11-15 07:55:42
|-
| [http://maemo.org/profile/view/pajeka.html pajeka]
| paul lewis
| 2007-09-11 15:40:25
|-
| [http://maemo.org/profile/view/pakerman.html pakerman]
| Panu Åkerman
| 2007-05-18 19:14:09
|-
| [http://maemo.org/profile/view/pakman.html pakman]
| Eugene Galashkin
| 2008-04-07 10:41:04
|-
| [http://maemo.org/profile/view/palash78.html palash78]
| Sana Ullah
| 2008-05-27 05:41:09
|-
| [http://maemo.org/profile/view/paldmsy.html paldmsy]
| pal dmsy
| 2007-12-23 11:41:32
|-
| [http://maemo.org/profile/view/palin.html palin]
| Pauli Alin
| 2007-05-23 05:29:43
|-
| [http://maemo.org/profile/view/palintheus.html palintheus]
| Trey Brown
| 2007-12-12 00:40:49
|-
| [http://maemo.org/profile/view/pallavirao.html pallavirao]
| Pallavi Rao
| 2007-05-18 19:10:24
|-
| [http://maemo.org/profile/view/pallo.html pallo]
| Pablo Virolainen
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/palmonova.html palmonova]
| simone palm
| 2007-11-16 17:49:27
|-
| [http://maemo.org/profile/view/palmota.html palmota]
| Simone Palm
| 2007-11-16 17:49:27
|-
| [http://maemo.org/profile/view/palmsolo.html palmsolo]
| Matthew Miller
| 2008-01-24 06:31:00
|-
| [http://maemo.org/profile/view/palsys.html palsys]
| Zoltan Pal
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/pamadio.html pamadio]
| Pierre Amadio
| 2007-05-18 19:14:30
|-
| [http://maemo.org/profile/view/pamelajaye.html pamelajaye]
| pam ashworth
| 2008-06-01 23:41:10
|-
| [http://maemo.org/profile/view/pamelalevy.html pamelalevy]
| Pamela Levy
| 2008-02-19 23:30:59
|-
| [http://maemo.org/profile/view/pampus.html pampus]
| Fritz Pampus
| 2007-05-18 19:10:26
|-
| [http://maemo.org/profile/view/pamster.html pamster]
| Pam Gaffney
| 2007-12-27 04:41:15
|-
| [http://maemo.org/profile/view/pan.html pan]
| antonio mariano
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/pancake.html pancake]
| pancake nopcode
| 2007-11-16 17:50:14
|-
| [http://maemo.org/profile/view/panda.html panda]
| john sorensen
| 2008-05-31 16:41:12
|-
| [http://maemo.org/profile/view/pandalan.html pandalan]
| Hon chan
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/pandapaul.html pandapaul]
| Michael Penzkofer
| 2008-03-21 12:31:05
|-
| [http://maemo.org/profile/view/pandrian.html pandrian]
| Pierre ANDRIANTAVY
| 2007-10-23 17:40:34
|-
| [http://maemo.org/profile/view/pangjai.html pangjai]
| wuthipong pangjai
| 2007-12-11 16:25:00
|-
| [http://maemo.org/profile/view/panj22.html panj22]
| Paul Jacobs
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/pannikt.html pannikt]
| Radek Smigielski
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/panta.html panta]
| Marco Pa
| 2007-10-18 16:40:03
|-
| [http://maemo.org/profile/view/panthar.html panthar]
| Robert Holak
| 2007-02-14 00:50:06
|-
| [http://maemo.org/profile/view/panuvart.html panuvart]
| Panu Vartiainen
| 2007-07-02 14:40:10
|-
| [http://maemo.org/profile/view/panwar.html panwar]
| S Panwar
| 2007-05-24 15:41:22
|-
| [http://maemo.org/profile/view/panwars.html panwars]
| Sanjay Panwar
| 2007-05-24 15:31:31
|-
| [http://maemo.org/profile/view/panxiaoku.html panxiaoku]
| xiaoku pan
| 2008-06-04 09:41:12
|-
| [http://maemo.org/profile/view/paolo0503.html paolo0503]
| Wen Chen
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/paolodelbene.html paolodelbene]
| paolo del bene
| 2007-05-18 19:11:34
|-
| [http://maemo.org/profile/view/pao_rb7.html pao_rb7]
| paulina retamal
| 2008-04-23 01:41:07
|-
| [http://maemo.org/profile/view/papageno.html papageno]
| Michael Costantino
| 2007-05-18 19:10:52
|-
| [http://maemo.org/profile/view/papakigr.html papakigr]
| Constantinos Griponisiotis
| 2007-05-18 19:13:13
|-
| [http://maemo.org/profile/view/papakilo.html papakilo]
| Paul Kilduff
| 2007-11-28 15:43:36
|-
| [http://maemo.org/profile/view/papaseo.html papaseo]
| Roman Vorobiov
| 2007-11-16 17:48:34
|-
| [http://maemo.org/profile/view/papaurn.html papaurn]
| papa urn
| 2008-03-16 19:31:05
|-
| [http://maemo.org/profile/view/papavart.html papavart]
| Armen Varteressian
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/papper.html papper]
| joe piranio
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/pappy.html pappy]
| paul apas
| 2007-05-18 19:11:24
|-
| [http://maemo.org/profile/view/papuan.html papuan]
| Francesco Doni
| 2007-10-22 09:40:34
|-
| [http://maemo.org/profile/view/papynoel.html papynoel]
| Emmanuel Nars
| 2007-11-16 12:40:49
|-
| [http://maemo.org/profile/view/parallelo2002.html parallelo2002]
| Cataldi Consuelo
| 2007-11-15 07:55:35
|-
| [http://maemo.org/profile/view/paranoid.html paranoid]
| paranoid paranoia
| 2007-10-30 00:40:35
|-
| [http://maemo.org/profile/view/pardavid.html pardavid]
| David Parisi
| 2008-05-07 20:41:13
|-
| [http://maemo.org/profile/view/parkor.html parkor]
| Phil Parker
| 2008-04-05 02:41:03
|-
| [http://maemo.org/profile/view/parks61.html parks61]
| Andrae Parks
| 2008-04-12 04:41:07
|-
| [http://maemo.org/profile/view/parrymcd.html parrymcd]
| Parry McDhakey
| 2007-12-11 16:25:43
|-
| [http://maemo.org/profile/view/parsifal.html parsifal]
| stephen o'gorman
| 2007-11-16 17:47:35
|-
| [http://maemo.org/profile/view/partha6.html partha6]
| partha 6
| 2007-10-19 05:40:30
|-
| [http://maemo.org/profile/view/parumi.html parumi]
| Pau Arumí
| 2007-11-04 16:40:37
|-
| [http://maemo.org/profile/view/par_eng.html par_eng]
| B Hunter
| 2008-03-21 12:31:04
|-
| [http://maemo.org/profile/view/pasaojan.html pasaojan]
| Pauli Ojanperä
| 2007-10-19 09:40:33
|-
| [http://maemo.org/profile/view/pascaln.html pascaln]
| Pascal Normand
| 2007-12-11 16:26:13
|-
| [http://maemo.org/profile/view/pashabear.html pashabear]
| P Morton
| 2007-07-08 16:40:14
|-
| [http://maemo.org/profile/view/pasi.html pasi]
| Pasi Pentikäinen
| 2008-04-15 16:41:16
|-
| [http://maemo.org/profile/view/pasigmarcos.html pasigmarcos]
| Marcos Miranda
| 2007-05-23 05:29:46
|-
| [http://maemo.org/profile/view/passall123.html passall123]
| Jun Li
| 2008-01-28 17:32:04
|-
| [http://maemo.org/profile/view/pastafazoule.html pastafazoule]
| paulie pastafazoule
| 2007-12-17 00:40:52
|-
| [http://maemo.org/profile/view/patansv.html patansv]
| Humberto Molina
| 2008-01-11 17:51:42
|-
| [http://maemo.org/profile/view/patchrick.html patchrick]
| Patrick O'Connor
| 2007-11-28 15:43:22
|-
| [http://maemo.org/profile/view/patcolvin.html patcolvin]
| Patrick Colvin
| 2007-12-21 22:41:59
|-
| [http://maemo.org/profile/view/pathak.html pathak]
| bhanu pathak
| 2007-10-25 12:40:35
|-
| [http://maemo.org/profile/view/patholio.html patholio]
| pat holio
| 2008-02-16 01:31:05
|-
| [http://maemo.org/profile/view/pati.html pati]
| patricio lino
| 2007-11-19 14:41:52
|-
| [http://maemo.org/profile/view/patkelsey.html patkelsey]
| pat kelsey
| 2007-07-05 16:40:10
|-
| [http://maemo.org/profile/view/patmartini.html patmartini]
| Pat Martini
| 2007-07-09 06:40:27
|-
| [http://maemo.org/profile/view/patom.html patom]
| Paul Tomlinson
| 2008-02-15 18:31:00
|-
| [http://maemo.org/profile/view/patosoto.html patosoto]
| Patricio Soto
| 2008-03-03 05:31:02
|-
| [http://maemo.org/profile/view/patr.html patr]
| Patrick Reehal
| 2007-11-30 10:49:27
|-
| [http://maemo.org/profile/view/patrick.html patrick]
| Patrick Gu
| 2007-11-06 14:02:06
|-
| [http://maemo.org/profile/view/patriot.html patriot]
| patriot patriot
| 2007-11-16 17:49:28
|-
| [http://maemo.org/profile/view/patskoo.html patskoo]
| Pat Skoolisariyaporn
| 2007-05-18 19:13:54
|-
| [http://maemo.org/profile/view/paul.html paul]
| Paul Walmsley
| 2007-11-03 21:40:44
|-
| [http://maemo.org/profile/view/paul123.html paul123]
| paul morgan
| 2007-10-30 08:41:03
|-
| [http://maemo.org/profile/view/paul8bit.html paul8bit]
| Paul Sweeney
| 2008-02-14 12:01:16
|-
| [http://maemo.org/profile/view/paulatthehug.html paulatthehug]
| Paul Oldham
| 2008-06-03 07:41:09
|-
| [http://maemo.org/profile/view/paulclan.html paulclan]
| Paul Clan
| 2007-12-30 10:41:02
|-
| [http://maemo.org/profile/view/paulcmarsh.html paulcmarsh]
| Paul Marsh
| 2008-01-23 01:31:11
|-
| [http://maemo.org/profile/view/pauldf.html pauldf]
| Paul F
| 2008-01-14 09:41:04
|-
| [http://maemo.org/profile/view/pauldonaldson.html pauldonaldson]
| Paul Donaldson
| 2007-11-16 17:47:59
|-
| [http://maemo.org/profile/view/paule8.html paule8]
| Franky nook
| 2007-05-18 19:12:32
|-
| [http://maemo.org/profile/view/paulfallows.html paulfallows]
| Paul Fallows
| 2007-05-18 19:12:10
|-
| [http://maemo.org/profile/view/paulfoxson.html paulfoxson]
| Paul Foxson
| 2007-06-27 14:40:14
|-
| [http://maemo.org/profile/view/paulgear.html paulgear]
| Paul Gear
| 2007-12-12 01:41:28
|-
| [http://maemo.org/profile/view/paulh.html paulh]
| paul hide
| 2007-06-08 13:37:16
|-
| [http://maemo.org/profile/view/paulinielle.html paulinielle]
| Paulinielle Cordeiro
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/pauliship.html pauliship]
| paul swindler
| 2007-05-18 19:12:30
|-
| [http://maemo.org/profile/view/pauljohn32.html pauljohn32]
| Paul Johnson
| 2007-11-16 17:48:16
|-
| [http://maemo.org/profile/view/paulk.html paulk]
| Paul Kirner
| 2007-11-16 17:48:18
|-
| [http://maemo.org/profile/view/paulmacl.html paulmacl]
| paul maclugash
| 2007-05-18 19:10:28
|-
| [http://maemo.org/profile/view/paulmikael.html paulmikael]
| Paul Forsström
| 2007-05-18 19:11:18
|-
| [http://maemo.org/profile/view/paulmorin.html paulmorin]
| paul morin
| 2007-12-14 01:41:38
|-
| [http://maemo.org/profile/view/paulo2d.html paulo2d]
| Paulo Dimaano
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/paulocamargo.html paulocamargo]
| Paulo Camargo
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/pauloim.html pauloim]
| Paulo Ibaña
| 2007-10-18 19:40:42
|-
| [http://maemo.org/profile/view/pauloromulo.html pauloromulo]
| Paulo Romulo
| 2007-05-18 19:13:07
|-
| [http://maemo.org/profile/view/paulpalmer801.html paulpalmer801]
| paul palmer
| 2007-12-11 16:25:11
|-
| [http://maemo.org/profile/view/paulray.html paulray]
| Paul Pistore
| 2008-02-06 14:31:46
|-
| [http://maemo.org/profile/view/paulshen.html paulshen]
| Paul Shen
| 2007-10-16 02:40:26
|-
| [http://maemo.org/profile/view/paulsorvik.html paulsorvik]
| Paul Sorvik
| 2007-11-15 07:55:48
|-
| [http://maemo.org/profile/view/paultap.html paultap]
| Paul Tap
| 2008-01-28 07:32:48
|-
| [http://maemo.org/profile/view/paultseung.html paultseung]
| Paul Tseung
| 2007-11-16 17:48:03
|-
| [http://maemo.org/profile/view/paulwebster.html paulwebster]
| Paul Webster
| 2007-05-18 19:11:20
|-
| [http://maemo.org/profile/view/paul_treg.html paul_treg]
| Paul Tregoning
| 2007-10-25 21:40:33
|-
| [http://maemo.org/profile/view/paul_wisner.html paul_wisner]
| Paul Wisner
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/paur.html paur]
| Gary Paur
| 2008-03-14 12:31:00
|-
| [http://maemo.org/profile/view/pav.html pav]
| Pauli Virtanen
| 2007-09-22 15:40:25
|-
| [http://maemo.org/profile/view/pavel.html pavel]
| Pavel Fialko
| 2007-05-18 19:11:17
|-
| [http://maemo.org/profile/view/pavelc.html pavelc]
| Pavel Catrain
| 2007-05-18 19:12:55
|-
| [http://maemo.org/profile/view/pavellino.html pavellino]
| Pavel Durov
| 2007-11-28 15:42:47
|-
| [http://maemo.org/profile/view/pavellino08.html pavellino08]
| pavel durov
| 2008-02-09 18:31:39
|-
| [http://maemo.org/profile/view/pavelponomariov.html pavelponomariov]
| Pavel Ponomariov
| 2007-11-16 17:47:56
|-
| [http://maemo.org/profile/view/pavise.html pavise]
| Yecheng CAO
| 2008-04-17 20:41:14
|-
| [http://maemo.org/profile/view/pawaca.html pawaca]
| Paul Walker
| 2007-01-20 01:10:09
|-
| [http://maemo.org/profile/view/pawan_vs.html pawan_vs]
| Pawan Sankeshwari
| 2007-05-29 09:30:37
|-
| [http://maemo.org/profile/view/pawerner.html pawerner]
| Paul Werner
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/pawpawyoung.html pawpawyoung]
| pawpaw young
| 2008-01-15 08:41:02
|-
| [http://maemo.org/profile/view/paxa.html paxa]
| Petri Kujala
| 2007-05-18 19:12:38
|-
| [http://maemo.org/profile/view/paxo.html paxo]
| william chick
| 2007-11-19 09:00:58
|-
| [http://maemo.org/profile/view/paxux.html paxux]
| jonathan wizartar
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/paynespa.html paynespa]
| steve payne
| 2007-11-04 18:40:34
|-
| [http://maemo.org/profile/view/pbakker.html pbakker]
| peter bakker
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/pbalare.html pbalare]
| Pablo Balarezo
| 2007-11-16 17:47:55
|-
| [http://maemo.org/profile/view/pbeagle.html pbeagle]
| peter beqgle
| 2008-05-07 19:41:08
|-
| [http://maemo.org/profile/view/pbecke.html pbecke]
| Paul Becke
| 2008-02-24 03:30:54
|-
| [http://maemo.org/profile/view/pberis.html pberis]
| Paul Beriswill
| 2007-10-18 16:40:28
|-
| [http://maemo.org/profile/view/pberling.html pberling]
| Paul Berlinguette
| 2007-05-18 19:11:46
|-
| [http://maemo.org/profile/view/pbkimo.html pbkimo]
| james schafer
| 2007-11-16 17:49:05
|-
| [http://maemo.org/profile/view/pbmajorpb.html pbmajorpb]
| P b
| 2007-05-29 09:30:42
|-
| [http://maemo.org/profile/view/pboudre1.html pboudre1]
| Philippe Boudreau
| 2007-11-28 15:43:34
|-
| [http://maemo.org/profile/view/pboyington.html pboyington]
| Tony Pisarek
| 2007-12-11 16:25:05
|-
| [http://maemo.org/profile/view/pbrauer.html pbrauer]
| Peter Brauer
| 2007-07-05 14:40:09
|-
| [http://maemo.org/profile/view/pbriesch.html pbriesch]
| Paul Briesch
| 2007-12-29 21:41:19
|-
| [http://maemo.org/profile/view/pbryan.html pbryan]
| Paul Bryan
| 2008-05-24 17:41:11
|-
| [http://maemo.org/profile/view/pcambraia.html pcambraia]
| Paulo Cambraia
| 2007-10-29 01:40:35
|-
| [http://maemo.org/profile/view/pcameron.html pcameron]
| Peter Cameron
| 2008-01-30 13:31:06
|-
| [http://maemo.org/profile/view/pcasar.html pcasar]
| Paolo Casarini
| 2007-05-18 19:12:10
|-
| [http://maemo.org/profile/view/pcdevil.html pcdevil]
| Attila Gonda
| 2007-10-18 17:40:30
|-
| [http://maemo.org/profile/view/pcdhake.html pcdhake]
| Parry D
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/pcfe.html pcfe]
| Patrick Ernzer
| 2007-05-18 19:11:30
|-
| [http://maemo.org/profile/view/pcherny1.html pcherny1]
| Paul Cherny
| 2007-11-06 05:40:39
|-
| [http://maemo.org/profile/view/pcheung08.html pcheung08]
| paul chan
| 2007-05-18 19:13:34
|-
| [http://maemo.org/profile/view/pcjonboy.html pcjonboy]
| jon crowell
| 2008-05-07 03:41:06
|-
| [http://maemo.org/profile/view/pclark23.html pclark23]
| Pete Clark
| 2008-01-26 16:43:21
|-
| [http://maemo.org/profile/view/pclfcl.html pclfcl]
| Liang Roc
| 2007-12-30 10:41:04
|-
| [http://maemo.org/profile/view/pcole.html pcole]
| Peter Cole
| 2007-10-19 10:40:36
|-
| [http://maemo.org/profile/view/pcorrenti.html pcorrenti]
| Paolo Correnti
| 2007-10-22 14:40:33
|-
| [http://maemo.org/profile/view/pcpete.html pcpete]
| Peter J
| 2007-07-04 15:40:11
|-
| [http://maemo.org/profile/view/pcros.html pcros]
| pierre cros
| 2007-11-16 17:49:21
|-
| [http://maemo.org/profile/view/pcsabi.html pcsabi]
| Csaba Parádi
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/pct.html pct]
| Paul Thoms
| 2008-05-20 12:41:34
|-
| [http://maemo.org/profile/view/pculliton.html pculliton]
| Phillip Culliton
| 2008-02-21 19:31:00
|-
| [http://maemo.org/profile/view/pcullum.html pcullum]
| Paul Cullum
| 2008-05-22 03:41:10
|-
| [http://maemo.org/profile/view/pdaeng.html pdaeng]
| Deng Pan
| 2008-03-18 23:31:11
|-
| [http://maemo.org/profile/view/pdapat.html pdapat]
| Francois Humbert
| 2008-03-21 23:31:03
|-
| [http://maemo.org/profile/view/pdaphoneman.html pdaphoneman]
| ashley liu
| 2008-02-03 17:31:08
|-
| [http://maemo.org/profile/view/pddk1977.html pddk1977]
| Peter Dransfeld
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/pdecesari.html pdecesari]
| Paola De Cesari
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/pdelrieu.html pdelrieu]
| Philippe Delrieua
| 2007-05-18 19:11:34
|-
| [http://maemo.org/profile/view/pdfarmar.html pdfarmar]
| peter farmar
| 2008-01-20 23:32:21
|-
| [http://maemo.org/profile/view/pdonner.html pdonner]
| paul donner
| 2007-05-18 19:12:30
|-
| [http://maemo.org/profile/view/pdq.html pdq]
| Reiner Klenk
| 2007-05-18 19:10:34
|-
| [http://maemo.org/profile/view/pdubb222.html pdubb222]
| paul wesely
| 2007-07-04 16:40:16
|-
| [http://maemo.org/profile/view/pdundas.html pdundas]
| Paul Dundas
| 2007-05-18 19:14:40
|-
| [http://maemo.org/profile/view/pdxpal.html pdxpal]
| JS SONG
| 2007-07-11 20:40:17
|-
| [http://maemo.org/profile/view/pdz.html pdz]
| Max Pope
| 2007-05-18 19:10:50
|-
| [http://maemo.org/profile/view/pe14life.html pe14life]
| Kia Stallings
| 2008-05-15 06:41:15
|-
| [http://maemo.org/profile/view/peaho.html peaho]
| Pekka Aho
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/pedralho.html pedralho]
| Andre Pedralho
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/pedro.html pedro]
| Michael J Charland
| 2008-01-10 02:40:56
|-
| [http://maemo.org/profile/view/pedrones.html pedrones]
| Pedro Nunes
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/peerchah.html peerchah]
| peer chah
| 2007-11-16 17:49:12
|-
| [http://maemo.org/profile/view/pegnjeff.html pegnjeff]
| Jeffrey Holt
| 2007-12-13 15:41:41
|-
| [http://maemo.org/profile/view/pehagg.html pehagg]
| Peter Hagg
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/pejoha.html pejoha]
| Petri Hämäläinen
| 2008-01-24 23:51:13
|-
| [http://maemo.org/profile/view/pekka.html pekka]
| Pekka Aho
| 2008-01-07 09:40:54
|-
| [http://maemo.org/profile/view/pekkatoronto.html pekkatoronto]
| pekka toronto
| 2007-11-16 17:47:25
|-
| [http://maemo.org/profile/view/pekkis.html pekkis]
| Esa Pekkarinen
| 2007-04-16 12:41:54
|-
| [http://maemo.org/profile/view/pekkoson.html pekkoson]
| Pekka Kosonen
| 2007-11-16 17:47:57
|-
| [http://maemo.org/profile/view/peku.html peku]
| Marcin Pęczek
| 2007-05-18 19:13:10
|-
| [http://maemo.org/profile/view/pel.html pel]
| Peter Lundqvist
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/pelayor.html pelayor]
| Rafael Pelayo
| 2007-10-22 19:40:35
|-
| [http://maemo.org/profile/view/peligrinus.html peligrinus]
| slava gusher
| 2007-10-25 11:40:41
|-
| [http://maemo.org/profile/view/pellan.html pellan]
| Benoit Pellan
| 2008-01-14 16:41:03
|-
| [http://maemo.org/profile/view/peluko.html peluko]
| Antonio Carrillo
| 2007-12-23 21:41:36
|-
| [http://maemo.org/profile/view/pema.html pema]
| Pekka Marjola
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/pena.html pena]
| Pentti Virtanen
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/penguinbait.html penguinbait]
| Matthew Lewis
| 2007-05-18 19:11:58
|-
| [http://maemo.org/profile/view/penguinpete.html penguinpete]
| Pete Pielow
| 2007-05-18 19:14:37
|-
| [http://maemo.org/profile/view/penttinent.html penttinent]
| Toni Penttinen
| 2007-05-18 19:12:43
|-
| [http://maemo.org/profile/view/penyos.html penyos]
| kevin azeng
| 2007-07-02 03:40:07
|-
| [http://maemo.org/profile/view/pepet.html pepet]
| Pep Bernat Sànchez Moner
| 2007-11-30 10:48:34
|-
| [http://maemo.org/profile/view/pepitoe.html pepitoe]
| David Martel
| 2007-11-16 17:50:15
|-
| [http://maemo.org/profile/view/peps.html peps]
| Per Bruno
| 2007-11-16 17:49:21
|-
| [http://maemo.org/profile/view/pep_bernat.html pep_bernat]
| Josep Bernat Sanchez Moner
| 2007-10-19 17:40:14
|-
| [http://maemo.org/profile/view/peralju.html peralju]
| Juha Perälä
| 2007-06-08 13:37:17
|-
| [http://maemo.org/profile/view/pereverv.html pereverv]
| Victor Pereverzev
| 2007-11-16 17:49:00
|-
| [http://maemo.org/profile/view/perezrui.html perezrui]
| Jose Luis Pérez Ruiz
| 2007-10-19 07:40:30
|-
| [http://maemo.org/profile/view/perf.html perf]
| Bartosz Alchimowicz
| 2007-11-16 17:50:10
|-
| [http://maemo.org/profile/view/perfect007.html perfect007]
| Alex Kabanov
| 2007-10-19 10:40:37
|-
| [http://maemo.org/profile/view/perhana.html perhana]
| tuomo pentinsaari
| 2007-05-18 19:13:10
|-
| [http://maemo.org/profile/view/periagoge.html periagoge]
| Andre Munro
| 2007-12-21 22:41:58
|-
| [http://maemo.org/profile/view/perikles.html perikles]
| Perikles Stamatopoulos
| 2008-04-04 14:41:09
|-
| [http://maemo.org/profile/view/perja.html perja]
| Per Thomas Jahr
| 2007-10-19 07:40:31
|-
| [http://maemo.org/profile/view/perkijef.html perkijef]
| Jeff Perkins
| 2008-03-14 13:31:04
|-
| [http://maemo.org/profile/view/perlcapt.html perlcapt]
| Ben Smith
| 2007-11-03 14:40:39
|-
| [http://maemo.org/profile/view/pernhui.html pernhui]
| Pern Hui chia
| 2008-01-30 14:31:14
|-
| [http://maemo.org/profile/view/perrinsteph.html perrinsteph]
| stephane perrin
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/perroverd.html perroverd]
| Celso González
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/perrygirls.html perrygirls]
| Erika Perry
| 2008-03-30 01:31:10
|-
| [http://maemo.org/profile/view/perrymex.html perrymex]
| perry mcfar!!in
| 2007-12-21 15:51:16
|-
| [http://maemo.org/profile/view/perrywnkle.html perrywnkle]
| perry tevere
| 2007-11-16 17:47:55
|-
| [http://maemo.org/profile/view/persanmu.html persanmu]
| Santiago Perdomo
| 2008-06-05 23:41:11
|-
| [http://maemo.org/profile/view/person519.html person519]
| Jason Vedelago
| 2008-03-17 10:31:00
|-
| [http://maemo.org/profile/view/perth.html perth]
| Poul Erik Thamdrup
| 2007-05-18 19:14:00
|-
| [http://maemo.org/profile/view/pertinaxvir.html pertinaxvir]
| Dan Supinski
| 2008-03-20 14:31:04
|-
| [http://maemo.org/profile/view/pescamilla.html pescamilla]
| Paul Escamilla
| 2007-12-18 03:40:52
|-
| [http://maemo.org/profile/view/pesce.html pesce]
| ANTONIO BRANCATO
| 2007-11-15 07:56:03
|-
| [http://maemo.org/profile/view/pesto.html pesto]
| Keith Tyndall
| 2007-10-19 20:40:33
|-
| [http://maemo.org/profile/view/pet.html pet]
| Poul Erik Thamdrup
| 2007-11-30 10:48:31
|-
| [http://maemo.org/profile/view/petardocasa.html petardocasa]
| pep ardo
| 2008-03-23 00:31:03
|-
| [http://maemo.org/profile/view/petch.html petch]
| Alongkot Burutarchanai
| 2007-11-28 15:43:25
|-
| [http://maemo.org/profile/view/petec.html petec]
| Pierre Calleros
| 2008-03-20 05:31:01
|-
| [http://maemo.org/profile/view/petejc.html petejc]
| Pete Collins
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/peter.html peter]
| Peter Oleski
| 2007-05-18 19:11:59
|-
| [http://maemo.org/profile/view/peter22302.html peter22302]
| thuan dang
| 2008-01-07 04:40:55
|-
| [http://maemo.org/profile/view/peter2742.html peter2742]
| peter taylor
| 2008-04-26 16:41:04
|-
| [http://maemo.org/profile/view/peter777truong.html peter777truong]
| PHUC TRUONG
| 2008-03-03 18:31:02
|-
| [http://maemo.org/profile/view/peterbahn.html peterbahn]
| werner zeltner
| 2007-10-22 00:40:40
|-
| [http://maemo.org/profile/view/peterbrewer.html peterbrewer]
| Peter Brewer
| 2007-05-18 19:13:31
|-
| [http://maemo.org/profile/view/peterdanko.html peterdanko]
| peter danko
| 2007-06-08 13:37:14
|-
| [http://maemo.org/profile/view/petergilbert.html petergilbert]
| Peter Gilbert
| 2007-06-08 13:37:17
|-
| [http://maemo.org/profile/view/petergunson.html petergunson]
| peter gunson
| 2007-12-11 16:25:01
|-
| [http://maemo.org/profile/view/peterharper.html peterharper]
| Peter Harper
| 2007-05-24 06:20:35
|-
| [http://maemo.org/profile/view/peterjohnson.html peterjohnson]
| peter johnson
| 2007-11-16 17:46:39
|-
| [http://maemo.org/profile/view/peterks.html peterks]
| Peter Stoyanov
| 2008-05-20 01:41:11
|-
| [http://maemo.org/profile/view/peterlong.html peterlong]
| peter long
| 2008-02-07 08:31:30
|-
| [http://maemo.org/profile/view/peterpar.html peterpar]
| Piotr Parlewicz
| 2008-02-23 21:31:03
|-
| [http://maemo.org/profile/view/peterrobbemond.html peterrobbemond]
| Peter Robbemond
| 2007-11-19 09:10:40
|-
| [http://maemo.org/profile/view/peterschneider.html peterschneider]
| Peter Schneider
| 2008-03-20 08:31:02
|-
| [http://maemo.org/profile/view/petersklee.html petersklee]
| Peter Lee
| 2007-05-18 19:14:30
|-
| [http://maemo.org/profile/view/peterson.html peterson]
| Piotr Synowski
| 2007-10-22 13:40:34
|-
| [http://maemo.org/profile/view/petertrapmore.html petertrapmore]
| peter trapmore
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/petertuson.html petertuson]
| Peter Tuson
| 2007-11-19 09:01:25
|-
| [http://maemo.org/profile/view/peterv.html peterv]
| Peter Van der Beken
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/peterw.html peterw]
| Peter Westerström
| 2007-05-18 19:12:31
|-
| [http://maemo.org/profile/view/peterw7.html peterw7]
| Peter Collins
| 2007-11-15 07:55:52
|-
| [http://maemo.org/profile/view/peter_pan.html peter_pan]
| Peter Z
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/peter_wade.html peter_wade]
| Peter Wade
| 2007-06-09 21:12:13
|-
| [http://maemo.org/profile/view/petevans.html petevans]
| p evans
| 2007-12-12 23:41:06
|-
| [http://maemo.org/profile/view/petkan.html petkan]
| Petko Manolov
| 2007-10-23 07:40:34
|-
| [http://maemo.org/profile/view/petmyluma.html petmyluma]
| Dean Burkhalter
| 2007-05-18 19:10:26
|-
| [http://maemo.org/profile/view/petro59.html petro59]
| peter ellebracht
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/petrosi.html petrosi]
| peter joannidis
| 2007-10-22 16:40:31
|-
| [http://maemo.org/profile/view/petrum.html petrum]
| Petru Marginean
| 2007-10-22 02:40:34
|-
| [http://maemo.org/profile/view/petrus2069.html petrus2069]
| pedro pol
| 2008-01-29 12:32:02
|-
| [http://maemo.org/profile/view/petshopp.html petshopp]
| victor roberts
| 2007-12-24 05:41:12
|-
| [http://maemo.org/profile/view/petteri.html petteri]
| Petteri Pyrrö
| 2007-05-18 19:13:10
|-
| [http://maemo.org/profile/view/petterihintikka.html petterihintikka]
| Petteri Hintikka
| 2007-05-30 03:10:57
|-
| [http://maemo.org/profile/view/petterik.html petterik]
| Petteri Kettunen
| 2007-11-16 17:46:56
|-
| [http://maemo.org/profile/view/pettis.html pettis]
| PC www.drpc.es
| 2007-12-12 11:40:47
|-
| [http://maemo.org/profile/view/pettkett.html pettkett]
| Petteri Kettunen
| 2007-12-27 03:41:10
|-
| [http://maemo.org/profile/view/petunnia.html petunnia]
| Lc C.M.
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/pevanhoj.html pevanhoj]
| Pekka Vanhoja
| 2007-07-11 05:40:10
|-
| [http://maemo.org/profile/view/pezzottoboy.html pezzottoboy]
| renato riccio
| 2007-10-19 15:40:11
|-
| [http://maemo.org/profile/view/pf1yes.html pf1yes]
| fabian chudak
| 2007-10-19 04:40:30
|-
| [http://maemo.org/profile/view/pfalci.html pfalci]
| Paulo Falci
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/pferrill.html pferrill]
| Paul Ferrill
| 2007-07-08 02:40:12
|-
| [http://maemo.org/profile/view/pfiffer.html pfiffer]
| Quinlan Pfiffer
| 2007-10-20 13:40:31
|-
| [http://maemo.org/profile/view/pflenti.html pflenti]
| Paolo F.sco Lenti
| 2007-10-25 20:40:35
|-
| [http://maemo.org/profile/view/pgecona.html pgecona]
| pablo torres
| 2007-12-24 03:41:22
|-
| [http://maemo.org/profile/view/pghdc37.html pghdc37]
| Dan Collins
| 2008-05-16 20:42:01
|-
| [http://maemo.org/profile/view/pgruebele.html pgruebele]
| Philip Gruebele
| 2007-12-21 16:41:13
|-
| [http://maemo.org/profile/view/pgrunwald.html pgrunwald]
| Paul Grunwald
| 2007-10-20 04:40:33
|-
| [http://maemo.org/profile/view/pguise.html pguise]
| Paul Guise
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/pgunson.html pgunson]
| peter gunson
| 2007-05-18 19:13:26
|-
| [http://maemo.org/profile/view/ph5.html ph5]
| Philipp Zabel
| 2007-10-21 09:40:32
|-
| [http://maemo.org/profile/view/phabulosa.html phabulosa]
| Ning Bao
| 2007-08-31 19:40:09
|-
| [http://maemo.org/profile/view/phaerus.html phaerus]
| i c
| 2007-11-16 17:49:09
|-
| [http://maemo.org/profile/view/phanatic.html phanatic]
| Szilveszter Farkas
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/phanev.html phanev]
| Phaneendrakumar Venkata Adabala
| 2008-05-22 12:41:08
|-
| [http://maemo.org/profile/view/phaoost.html phaoost]
| Yevgeny Kosarzhevsky
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/phareax.html phareax]
| ascra vescra
| 2008-02-14 13:30:57
|-
| [http://maemo.org/profile/view/phasefx.html phasefx]
| Jason Etheridge
| 2007-10-23 01:40:36
|-
| [http://maemo.org/profile/view/phatsua.html phatsua]
| Andrei Ionescu
| 2007-11-15 07:55:56
|-
| [http://maemo.org/profile/view/phd2007.html phd2007]
| otthman alsulami
| 2008-05-29 05:41:09
|-
| [http://maemo.org/profile/view/phe.html phe]
| pertti heikkila
| 2008-03-25 06:31:03
|-
| [http://maemo.org/profile/view/pheebs.html pheebs]
| Petra Balog
| 2007-11-16 17:49:05
|-
| [http://maemo.org/profile/view/pheezy.html pheezy]
| evan cordes
| 2007-05-29 20:30:56
|-
| [http://maemo.org/profile/view/pheindl.html pheindl]
| Paul Heindl
| 2007-12-13 23:41:08
|-
| [http://maemo.org/profile/view/pherk.html pherk]
| Peter Herkenrath
| 2007-11-16 17:49:57
|-
| [http://maemo.org/profile/view/phetroy.html phetroy]
| Philippe Hétroy
| 2007-10-18 14:40:30
|-
| [http://maemo.org/profile/view/phi.html phi]
| Phi D
| 2007-05-18 19:14:37
|-
| [http://maemo.org/profile/view/phibo.html phibo]
| Philipp Seidel
| 2007-11-30 10:49:25
|-
| [http://maemo.org/profile/view/phiiil.html phiiil]
| phil bezard
| 2008-05-12 06:41:08
|-
| [http://maemo.org/profile/view/phil383.html phil383]
| philip adams
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/philask.html philask]
| Philip Askey
| 2007-05-18 19:10:49
|-
| [http://maemo.org/profile/view/phildizon.html phildizon]
| phil dizon
| 2007-11-16 17:49:22
|-
| [http://maemo.org/profile/view/phildream68.html phildream68]
| Philippe POTHEE
| 2007-11-16 17:46:32
|-
| [http://maemo.org/profile/view/philibertf.html philibertf]
| fred philibert
| 2007-05-18 19:12:33
|-
| [http://maemo.org/profile/view/philipbarrett.html philipbarrett]
| Philip Barrett
| 2007-05-18 19:11:19
|-
| [http://maemo.org/profile/view/philipl.html philipl]
| Philip Langdale
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/philipneum.html philipneum]
| philip neumann
| 2008-01-05 01:41:11
|-
| [http://maemo.org/profile/view/philipp5.html philipp5]
| Philipp Zeissig
| 2007-11-15 08:40:45
|-
| [http://maemo.org/profile/view/philipx.html philipx]
| Philip Leroux
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/phillip.html phillip]
| Phillip Jason
| 2008-01-14 01:41:00
|-
| [http://maemo.org/profile/view/philm21.html philm21]
| Philip Moncrieff
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/philn.html philn]
| Philippe Normand
| 2007-10-18 15:40:42
|-
| [http://maemo.org/profile/view/philtrick.html philtrick]
| Philip Trickett
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/philwil.html philwil]
| phil williams
| 2008-01-13 17:41:24
|-
| [http://maemo.org/profile/view/phil_d.html phil_d]
| Philip DeGrandis
| 2007-07-09 02:40:15
|-
| [http://maemo.org/profile/view/phjnky.html phjnky]
| rick smith
| 2008-01-30 16:31:25
|-
| [http://maemo.org/profile/view/phoenix741.html phoenix741]
| Ulrich Van Den Hekke
| 2007-05-18 19:12:40
|-
| [http://maemo.org/profile/view/phoenixeight.html phoenixeight]
| Kenneth Ng
| 2007-06-19 07:10:39
|-
| [http://maemo.org/profile/view/phoenixlpr.html phoenixlpr]
| Gabor Szelei
| 2007-10-19 06:40:31
|-
| [http://maemo.org/profile/view/phoenixxx.html phoenixxx]
| ivailo iliev
| 2008-01-05 21:40:52
|-
| [http://maemo.org/profile/view/phoglund.html phoglund]
| Paul Hoglund
| 2008-01-26 18:33:15
|-
| [http://maemo.org/profile/view/phoh.html phoh]
| Patrick Hohmann
| 2007-11-05 19:40:18
|-
| [http://maemo.org/profile/view/phomes.html phomes]
| Thomas Andersen
| 2007-10-29 10:40:38
|-
| [http://maemo.org/profile/view/phoneboy.html phoneboy]
| Dameon Welch-Abernathy
| 2007-10-21 06:40:34
|-
| [http://maemo.org/profile/view/phoxl888.html phoxl888]
| Brian Nguyen
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/phrito.html phrito]
| Matt Fletcher
| 2007-05-18 19:12:15
|-
| [http://maemo.org/profile/view/phungte.html phungte]
| Phung Te Ha
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/phurd.html phurd]
| Pete Hurd
| 2007-05-18 19:13:57
|-
| [http://maemo.org/profile/view/phuzzgun.html phuzzgun]
| Clarke Huff
| 2007-05-29 16:02:03
|-
| [http://maemo.org/profile/view/piatnica.html piatnica]
| Joe Lip
| 2007-12-15 19:43:23
|-
| [http://maemo.org/profile/view/pict1201.html pict1201]
| Martin Reid
| 2007-12-22 19:41:46
|-
| [http://maemo.org/profile/view/piega.html piega]
| Oscar Francia
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/pierdav.html pierdav]
| pierre houlle
| 2008-01-26 18:33:12
|-
| [http://maemo.org/profile/view/pierleonardo.html pierleonardo]
| piereleonardo cambule
| 2007-12-17 15:40:55
|-
| [http://maemo.org/profile/view/pierluigi88.html pierluigi88]
| Pierluigi Picciau
| 2007-10-22 00:40:42
|-
| [http://maemo.org/profile/view/pierlux.html pierlux]
| Pierre-Luc Beaudoin
| 2007-12-11 16:25:49
|-
| [http://maemo.org/profile/view/pierobud.html pierobud]
| Pietro Budicin
| 2007-10-22 08:40:36
|-
| [http://maemo.org/profile/view/pierpaolo.html pierpaolo]
| pierpaolo pagni
| 2007-06-19 07:10:37
|-
| [http://maemo.org/profile/view/pierre.html pierre]
| Pierre LALET
| 2007-11-30 10:49:21
|-
| [http://maemo.org/profile/view/pierrecss.html pierrecss]
| Pierre Soares
| 2008-04-07 18:41:27
|-
| [http://maemo.org/profile/view/piezzo.html piezzo]
| Jarno Pietilä
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/pigge.html pigge]
| pg holmlov
| 2007-11-19 09:01:25
|-
| [http://maemo.org/profile/view/piguet.html piguet]
| Yves Piguet
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/piku.html piku]
| James Grimwood
| 2007-11-16 17:49:10
|-
| [http://maemo.org/profile/view/pilgram.html pilgram]
| Philip Griffin
| 2008-01-02 21:41:38
|-
| [http://maemo.org/profile/view/pilgrim.html pilgrim]
| Philip Griffin
| 2007-05-18 19:13:56
|-
| [http://maemo.org/profile/view/pillar.html pillar]
| Juha Linnanen
| 2007-05-18 19:12:27
|-
| [http://maemo.org/profile/view/pilou.html pilou]
| Pierre-François Angrand
| 2008-01-08 13:41:35
|-
| [http://maemo.org/profile/view/pilric.html pilric]
| richard pilling
| 2007-12-20 18:41:19
|-
| [http://maemo.org/profile/view/piltdown.html piltdown]
| toony gist
| 2008-01-27 18:31:30
|-
| [http://maemo.org/profile/view/pinaatti.html pinaatti]
| Mika -
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/pincopallo.html pincopallo]
| Paolo Dionisi Vici
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/pincushionqueen.html pincushionqueen]
| Heather Sloan
| 2007-12-11 16:25:20
|-
| [http://maemo.org/profile/view/pinenuts.html pinenuts]
| Jim Lamb
| 2007-10-24 03:40:40
|-
| [http://maemo.org/profile/view/pinesolpirate.html pinesolpirate]
| John Hobbs
| 2006-12-13 11:10:03
|-
| [http://maemo.org/profile/view/pingerton.html pingerton]
| pinger ton
| 2007-09-15 23:40:07
|-
| [http://maemo.org/profile/view/pinglin.html pinglin]
| Hubert Pinglin
| 2007-10-23 13:40:34
|-
| [http://maemo.org/profile/view/pinguino.html pinguino]
| Amichai Rotman
| 2007-05-18 19:11:52
|-
| [http://maemo.org/profile/view/pinguozz.html pinguozz]
| pinguozz pinguozz
| 2007-06-13 16:00:33
|-
| [http://maemo.org/profile/view/pink.html pink]
| Alex Obukhov
| 2007-11-16 17:47:02
|-
| [http://maemo.org/profile/view/pinkpointer.html pinkpointer]
| Adriano Toldo
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/pinkroses.html pinkroses]
| josefina angeles
| 2007-11-16 17:48:16
|-
| [http://maemo.org/profile/view/pinut12.html pinut12]
| Patané Giuseppe
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/pio.html pio]
| piotr lesniewski
| 2007-11-16 17:47:34
|-
| [http://maemo.org/profile/view/piotras.html piotras]
| Piotr Pokora
| 2007-05-18 19:13:48
|-
| [http://maemo.org/profile/view/piotrekkowalski.html piotrekkowalski]
| Piotr Kowalski
| 2007-11-16 17:47:55
|-
| [http://maemo.org/profile/view/pip.html pip]
| Patrick Ip
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/pipeline.html pipeline]
| pipe line
| 2007-05-18 19:12:17
|-
| [http://maemo.org/profile/view/pipici.html pipici]
| Pier Paolo Caruso
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/pipioni.html pipioni]
| wang pei
| 2007-05-18 19:14:36
|-
| [http://maemo.org/profile/view/pipkato.html pipkato]
| Pip Kato
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/pipo.html pipo]
| christophe balmy
| 2007-10-15 00:40:26
|-
| [http://maemo.org/profile/view/pipo33.html pipo33]
| diego gonzalez gonzalez
| 2007-11-28 15:43:35
|-
| [http://maemo.org/profile/view/pippo.html pippo]
| pippo pluto
| 2007-10-22 17:40:33
|-
| [http://maemo.org/profile/view/piratefish.html piratefish]
| John Silvia
| 2007-11-16 17:48:33
|-
| [http://maemo.org/profile/view/piroalex.html piroalex]
| alessandro piro
| 2007-11-04 17:40:36
|-
| [http://maemo.org/profile/view/pironato.html pironato]
| Stefano Pironato
| 2007-11-28 15:43:36
|-
| [http://maemo.org/profile/view/piruokon.html piruokon]
| Piia Ruokonen
| 2007-10-19 10:40:37
|-
| [http://maemo.org/profile/view/pisa_p.html pisa_p]
| marco marcop
| 2007-01-30 13:50:05
|-
| [http://maemo.org/profile/view/pista.html pista]
| Istvan Sabo
| 2007-12-25 19:41:36
|-
| [http://maemo.org/profile/view/pisupati.html pisupati]
| Sukumar Pisupati
| 2007-11-16 17:46:20
|-
| [http://maemo.org/profile/view/pitermark.html pitermark]
| petr bel
| 2007-05-18 19:13:28
|-
| [http://maemo.org/profile/view/piters.html piters]
| Piotr Golonka
| 2007-05-18 19:13:25
|-
| [http://maemo.org/profile/view/pitlog.html pitlog]
| Tom Manos
| 2007-07-29 09:20:52
|-
| [http://maemo.org/profile/view/pixdamix.html pixdamix]
| Tom Ridchardson
| 2007-10-29 11:40:33
|-
| [http://maemo.org/profile/view/pixelmonkey.html pixelmonkey]
| Andrew Montalenti
| 2007-04-05 15:25:39
|-
| [http://maemo.org/profile/view/pixelseventy2.html pixelseventy2]
| Chris Hembrow
| 2007-06-24 16:40:09
|-
| [http://maemo.org/profile/view/pixueto.html pixueto]
| Pixueto Asturianu
| 2008-05-08 15:41:08
|-
| [http://maemo.org/profile/view/pixxx.html pixxx]
| Christian Brignani
| 2007-10-22 07:40:36
|-
| [http://maemo.org/profile/view/pjb770.html pjb770]
| paul bithray
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/pjboudewijns.html pjboudewijns]
| Peter Boudewijns
| 2007-11-16 17:49:13
|-
| [http://maemo.org/profile/view/pjburgess.html pjburgess]
| Paul Burgess
| 2007-10-28 16:40:34
|-
| [http://maemo.org/profile/view/pjcares22.html pjcares22]
| patricio cruz
| 2007-05-18 19:12:37
|-
| [http://maemo.org/profile/view/pje.html pje]
| Peter Elliot
| 2007-12-31 18:41:08
|-
| [http://maemo.org/profile/view/pjgarrett.html pjgarrett]
| P Garrett
| 2008-01-27 01:31:10
|-
| [http://maemo.org/profile/view/pjhamman.html pjhamman]
| john hamman
| 2007-12-29 03:41:06
|-
| [http://maemo.org/profile/view/pjhannapel.html pjhannapel]
| phillip hannapel
| 2008-03-09 00:31:08
|-
| [http://maemo.org/profile/view/pjkreft.html pjkreft]
| James Kreft
| 2007-06-26 22:40:07
|-
| [http://maemo.org/profile/view/pjlehtim.html pjlehtim]
| Pasi Lehtimäki
| 2007-11-16 17:49:06
|-
| [http://maemo.org/profile/view/pjprior.html pjprior]
| Pete Prior
| 2007-11-16 17:48:13
|-
| [http://maemo.org/profile/view/pjrm.html pjrm]
| Peter Moulder
| 2007-05-18 19:10:47
|-
| [http://maemo.org/profile/view/pjsanon.html pjsanon]
| Pierre Sanon
| 2007-10-19 12:40:32
|-
| [http://maemo.org/profile/view/pjwelsh.html pjwelsh]
| PJ Welsh
| 2007-10-19 18:40:34
|-
| [http://maemo.org/profile/view/pkahle.html pkahle]
| Peter Kahle
| 2007-05-18 19:11:30
|-
| [http://maemo.org/profile/view/pkegley.html pkegley]
| p kegley
| 2007-06-19 19:40:19
|-
| [http://maemo.org/profile/view/pkehoe.html pkehoe]
| Patrick Kehoe
| 2007-10-16 05:40:26
|-
| [http://maemo.org/profile/view/pkendoka.html pkendoka]
| paolo yim
| 2007-11-16 17:47:33
|-
| [http://maemo.org/profile/view/pkissman.html pkissman]
| Paul Kissman
| 2007-05-18 19:12:08
|-
| [http://maemo.org/profile/view/pklauss.html pklauss]
| Peter Klauss
| 2007-11-16 17:47:58
|-
| [http://maemo.org/profile/view/pkorpine.html pkorpine]
| Pekka Korpinen
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/pkot.html pkot]
| Pawel Kot
| 2007-10-19 14:40:34
|-
| [http://maemo.org/profile/view/pkotiadis.html pkotiadis]
| Peter Kotiadis
| 2007-11-16 17:47:25
|-
| [http://maemo.org/profile/view/pk_testing.html pk_testing]
| p k
| 2008-05-14 13:41:10
|-
| [http://maemo.org/profile/view/pl25.html pl25]
| Alexandr Plehanov
| 2008-03-12 14:31:01
|-
| [http://maemo.org/profile/view/plaes.html plaes]
| Priit Laes
| 2007-05-18 19:11:59
|-
| [http://maemo.org/profile/view/plagg.html plagg]
| Salvatore Murgola
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/plammi.html plammi]
| Pasi Lammi
| 2007-11-16 17:50:08
|-
| [http://maemo.org/profile/view/planoronna.html planoronna]
| ronna stanley
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/plantex.html plantex]
| Matthieu PLANTEY
| 2008-02-07 19:32:36
|-
| [http://maemo.org/profile/view/play2win.html play2win]
| n win
| 2007-05-18 19:12:27
|-
| [http://maemo.org/profile/view/playerx.html playerx]
| rob friedman
| 2007-06-26 22:40:07
|-
| [http://maemo.org/profile/view/playon.html playon]
| bede p
| 2007-12-11 16:25:40
|-
| [http://maemo.org/profile/view/playya.html playya]
| Frederik Sdun
| 2007-11-15 07:56:22
|-
| [http://maemo.org/profile/view/plerten.html plerten]
| Peter Lerten
| 2007-05-18 19:11:44
|-
| [http://maemo.org/profile/view/plitshec.html plitshec]
| Sheldon Plitt
| 2007-11-02 17:40:36
|-
| [http://maemo.org/profile/view/plm918.html plm918]
| Peg Lisko
| 2007-06-27 02:40:12
|-
| [http://maemo.org/profile/view/plmar923.html plmar923]
| p mar
| 2007-10-25 07:40:35
|-
| [http://maemo.org/profile/view/plmrmusic.html plmrmusic]
| Ryan Palmer
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/plo2001.html plo2001]
| paul olet
| 2008-01-13 22:41:58
|-
| [http://maemo.org/profile/view/plorch.html plorch]
| Pat Lorch
| 2007-05-18 19:11:33
|-
| [http://maemo.org/profile/view/plotnikau.html plotnikau]
| Slava Plotnikau
| 2008-01-26 19:31:07
|-
| [http://maemo.org/profile/view/ploum.html ploum]
| Lionel Dricot
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/plperry.html plperry]
| Patricia Perry
| 2007-11-16 17:48:15
|-
| [http://maemo.org/profile/view/pltl828.html pltl828]
| p l
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/plug115.html plug115]
| john henderson
| 2006-12-30 00:20:05
|-
| [http://maemo.org/profile/view/plwrenn.html plwrenn]
| Philip Wrenn
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/plympton.html plympton]
| Dan Richardson
| 2007-10-18 17:40:31
|-
| [http://maemo.org/profile/view/pmak.html pmak]
| Peter Makohon
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/pmboos.html pmboos]
| Paul Boos
| 2007-07-01 02:40:17
|-
| [http://maemo.org/profile/view/pmbsa.html pmbsa]
| Paul Broughton
| 2008-03-31 18:41:10
|-
| [http://maemo.org/profile/view/pmcampbell.html pmcampbell]
| Paul Campbell
| 2008-01-23 21:22:02
|-
| [http://maemo.org/profile/view/pmccarron.html pmccarron]
| Patrick McCarron
| 2007-12-30 16:41:03
|-
| [http://maemo.org/profile/view/pmcgowan.html pmcgowan]
| Pat McGowan
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/pmcgrane.html pmcgrane]
| Patrick McGrane
| 2007-05-29 09:30:41
|-
| [http://maemo.org/profile/view/pmidol.html pmidol]
| Philippe Midol-Monnet
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/pmielonen.html pmielonen]
| Pekka Mielonen
| 2007-05-18 19:10:29
|-
| [http://maemo.org/profile/view/pmp.html pmp]
| Panu Puro
| 2007-05-18 19:13:53
|-
| [http://maemo.org/profile/view/pmp1209.html pmp1209]
| ted knaga
| 2008-01-30 03:31:15
|-
| [http://maemo.org/profile/view/pmuilu.html pmuilu]
| Petteri Muilu
| 2007-10-18 08:40:28
|-
| [http://maemo.org/profile/view/pna.html pna]
| Puria Nafisi
| 2007-06-19 17:40:17
|-
| [http://maemo.org/profile/view/pngpcy.html pngpcy]
| Chin Yong Png
| 2007-12-11 16:25:47
|-
| [http://maemo.org/profile/view/pnguyen.html pnguyen]
| Paul Nguyen
| 2008-02-29 21:31:05
|-
| [http://maemo.org/profile/view/pnose.html pnose]
| Oliver Paulzen
| 2008-01-14 21:41:13
|-
| [http://maemo.org/profile/view/po8.html po8]
| Bart Massey
| 2007-10-21 10:40:30
|-
| [http://maemo.org/profile/view/pockel.html pockel]
| pockel Liu
| 2007-05-23 05:29:33
|-
| [http://maemo.org/profile/view/pocketpad.html pocketpad]
| eric thomas
| 2008-01-03 02:41:05
|-
| [http://maemo.org/profile/view/podge3.html podge3]
| bill lesser
| 2007-11-05 18:40:43
|-
| [http://maemo.org/profile/view/pogudo.html pogudo]
| Sergey Pogudo
| 2007-05-18 19:11:41
|-
| [http://maemo.org/profile/view/pohly.html pohly]
| Patrick Ohly
| 2007-10-24 07:40:32
|-
| [http://maemo.org/profile/view/poikanen.html poikanen]
| Petri Niemi
| 2007-05-29 09:30:38
|-
| [http://maemo.org/profile/view/polarforilla.html polarforilla]
| caleb klaus
| 2007-01-18 10:00:14
|-
| [http://maemo.org/profile/view/polaris.html polaris]
| Jorge Bello
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/poliorcetes.html poliorcetes]
| Juan Chulilla
| 2007-06-19 07:10:35
|-
| [http://maemo.org/profile/view/poll1075.html poll1075]
| Lio Poll
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/poll69.html poll69]
| kevin cross
| 2007-11-16 17:47:07
|-
| [http://maemo.org/profile/view/pollucts.html pollucts]
| David Kramer
| 2008-06-08 05:31:27
|-
| [http://maemo.org/profile/view/pololo01.html pololo01]
| PAOLO BARRASSO
| 2007-11-16 17:47:35
|-
| [http://maemo.org/profile/view/polossatik.html polossatik]
| polos satik
| 2008-02-27 00:30:58
|-
| [http://maemo.org/profile/view/poltergiest.html poltergiest]
| S H
| 2007-06-25 14:40:09
|-
| [http://maemo.org/profile/view/polyesterangst.html polyesterangst]
| William Szechinski
| 2007-05-18 19:11:35
|-
| [http://maemo.org/profile/view/pomipa.html pomipa]
| Pomi Pomi
| 2007-12-11 16:25:41
|-
| [http://maemo.org/profile/view/pomokey.html pomokey]
| Steven Maynard
| 2008-01-09 06:50:59
|-
| [http://maemo.org/profile/view/pongkiat.html pongkiat]
| Pongkiat Chedpitaksakul
| 2008-01-24 23:51:14
|-
| [http://maemo.org/profile/view/pontelad.html pontelad]
| Andrew Moore
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/ponychu.html ponychu]
| Jiang Zhu
| 2007-05-18 19:12:39
|-
| [http://maemo.org/profile/view/poodle78.html poodle78]
| Doug Powell
| 2008-02-28 03:31:03
|-
| [http://maemo.org/profile/view/poopin04.html poopin04]
| Darrel Paul
| 2007-11-16 17:48:27
|-
| [http://maemo.org/profile/view/pope523.html pope523]
| Joseph Harris
| 2008-02-16 20:30:59
|-
| [http://maemo.org/profile/view/popovsky.html popovsky]
| Popovsky Evgeny
| 2007-06-08 13:37:14
|-
| [http://maemo.org/profile/view/popspannicoleta.html popspannicoleta]
| nicoleta pop span
| 2008-06-06 15:31:11
|-
| [http://maemo.org/profile/view/porantes.html porantes]
| Pedro Orantes
| 2008-03-27 16:31:06
|-
| [http://maemo.org/profile/view/porchus.html porchus]
| Matthew Lynch
| 2008-04-24 20:41:15
|-
| [http://maemo.org/profile/view/porduna.html porduna]
| Pablo Orduña
| 2008-05-09 10:41:08
|-
| [http://maemo.org/profile/view/porfyras.html porfyras]
| george porfiriadis
| 2007-11-16 17:49:26
|-
| [http://maemo.org/profile/view/porratoda.html porratoda]
| ronnie b
| 2008-05-07 03:41:05
|-
| [http://maemo.org/profile/view/portxxx.html portxxx]
| luis luna
| 2007-11-16 17:47:07
|-
| [http://maemo.org/profile/view/posde.html posde]
| Peer Oliver Schmidt
| 2007-12-29 17:41:36
|-
| [http://maemo.org/profile/view/poser.html poser]
| Chris Piekarski
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/posixpilot.html posixpilot]
| Mike Dunn
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/postmedia.html postmedia]
| Darren Thompson
| 2007-11-16 17:47:49
|-
| [http://maemo.org/profile/view/posya.html posya]
| Pavel Kiselev
| 2007-11-19 09:01:25
|-
| [http://maemo.org/profile/view/potmilkz.html potmilkz]
| luis cheong
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/poudding.html poudding]
| poud ding
| 2008-02-07 04:32:46
|-
| [http://maemo.org/profile/view/poupou.html poupou]
| Sebastien Pouliot
| 2007-11-16 13:40:45
|-
| [http://maemo.org/profile/view/poussa.html poussa]
| Sakari Poussa
| 2007-11-16 17:49:45
|-
| [http://maemo.org/profile/view/poveroclaudio.html poveroclaudio]
| ROSSI Claudio
| 2007-11-15 07:55:49
|-
| [http://maemo.org/profile/view/power-wolf100.html power-wolf100]
| Wolf Power
| 2008-03-31 07:41:06
|-
| [http://maemo.org/profile/view/powerguy.html powerguy]
| Gregory Leyner
| 2007-07-06 19:40:16
|-
| [http://maemo.org/profile/view/powerhorse.html powerhorse]
| LI MA
| 2008-05-28 12:41:10
|-
| [http://maemo.org/profile/view/powerhouse.html powerhouse]
| paul butterworth
| 2007-11-16 17:46:32
|-
| [http://maemo.org/profile/view/powernet_it.html powernet_it]
| Alessandro Frati
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/powertowin.html powertowin]
| Tony Silveira
| 2007-12-13 16:41:27
|-
| [http://maemo.org/profile/view/poxtius.html poxtius]
| Josema Fernandez
| 2007-05-18 19:10:21
|-
| [http://maemo.org/profile/view/ppaiva.html ppaiva]
| paula paiva
| 2007-06-19 07:10:34
|-
| [http://maemo.org/profile/view/ppda.html ppda]
| Patrick Vranckx
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/ppessi.html ppessi]
| Pekka Pessi
| 2007-07-13 13:40:47
|-
| [http://maemo.org/profile/view/ppires.html ppires]
| Paulo Pires
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/ppk101.html ppk101]
| winig nakapakorn
| 2007-11-16 17:49:24
|-
| [http://maemo.org/profile/view/ppound.html ppound]
| Paul Pound
| 2008-03-01 16:31:00
|-
| [http://maemo.org/profile/view/ppyrzanowski.html ppyrzanowski]
| Piotr Pyrzanowski
| 2007-05-18 19:12:30
|-
| [http://maemo.org/profile/view/pr0pain.html pr0pain]
| pr0 pain
| 2008-01-06 04:40:55
|-
| [http://maemo.org/profile/view/pr3b3n.html pr3b3n]
| Tobias Glenstrup
| 2007-10-18 18:40:30
|-
| [http://maemo.org/profile/view/prabhu006.html prabhu006]
| Prabhu Swaminathan
| 2007-09-26 14:40:33
|-
| [http://maemo.org/profile/view/prashanthbabu.html prashanthbabu]
| Prashanth Babu
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/praveendubey.html praveendubey]
| praveen dubey
| 2007-07-09 02:40:14
|-
| [http://maemo.org/profile/view/prcdslnc13.html prcdslnc13]
| joe spanier
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/preda.html preda]
| Mihai Preda
| 2008-01-28 05:31:08
|-
| [http://maemo.org/profile/view/predhead.html predhead]
| Paul Redhead
| 2008-06-03 13:41:09
|-
| [http://maemo.org/profile/view/preston.html preston]
| Brian Preston
| 2007-10-18 21:40:32
|-
| [http://maemo.org/profile/view/primep.html primep]
| ville hyvönen
| 2007-10-22 07:40:36
|-
| [http://maemo.org/profile/view/prin1229.html prin1229]
| Kim Hosang
| 2007-06-19 12:40:18
|-
| [http://maemo.org/profile/view/princephilip.html princephilip]
| Prince philip
| 2007-11-06 03:40:39
|-
| [http://maemo.org/profile/view/princeuchendu.html princeuchendu]
| Prince Uchendu
| 2007-11-16 17:47:55
|-
| [http://maemo.org/profile/view/pringlega.html pringlega]
| George Pringle
| 2008-05-05 12:41:06
|-
| [http://maemo.org/profile/view/prishelec.html prishelec]
| Fedor Salnikov
| 2008-01-29 14:43:15
|-
| [http://maemo.org/profile/view/prisunto.html prisunto]
| Thiago Onofre
| 2007-06-12 13:42:41
|-
| [http://maemo.org/profile/view/prithvi.html prithvi]
| prithvi raj
| 2008-03-24 18:31:08
|-
| [http://maemo.org/profile/view/priyankbpl.html priyankbpl]
| Priyank Chourasia
| 2007-10-26 13:40:33
|-
| [http://maemo.org/profile/view/prk60091.html prk60091]
| paul kesselman
| 2007-07-02 16:50:17
|-
| [http://maemo.org/profile/view/probi.html probi]
| Róbert Pető
| 2007-10-29 10:40:38
|-
| [http://maemo.org/profile/view/probinson.html probinson]
| Peter Robnsin
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/procik82.html procik82]
| Mateusz Chojnicki
| 2007-10-19 00:40:49
|-
| [http://maemo.org/profile/view/prodrigestivill.html prodrigestivill]
| Pau Rodriguez Estivill
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/profairy.html profairy]
| Helen Gregory
| 2007-12-12 23:41:07
|-
| [http://maemo.org/profile/view/professorvv.html professorvv]
| Me Meme
| 2007-11-15 07:55:42
|-
| [http://maemo.org/profile/view/profshadow.html profshadow]
| Dennis Dormady
| 2007-07-08 23:40:16
|-
| [http://maemo.org/profile/view/prollymolly.html prollymolly]
| Mark Holle
| 2007-11-28 15:43:37
|-
| [http://maemo.org/profile/view/promethh.html promethh]
| Ken Foreman
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/promorelit.html promorelit]
| peperone roberto
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/pronkko.html pronkko]
| Pekka Rönkkö
| 2007-05-18 19:13:48
|-
| [http://maemo.org/profile/view/prontissimo.html prontissimo]
| louis labelle
| 2007-11-16 17:49:20
|-
| [http://maemo.org/profile/view/pronto.html pronto]
| Julia Dmitrieva
| 2008-06-07 08:31:14
|-
| [http://maemo.org/profile/view/prontopronto.html prontopronto]
| Romanio Tavirel
| 2008-01-03 22:41:23
|-
| [http://maemo.org/profile/view/pronuke.html pronuke]
| John Wheeler
| 2007-12-17 02:40:57
|-
| [http://maemo.org/profile/view/propheet.html propheet]
| Prochor Aniszczuk
| 2008-02-11 15:42:08
|-
| [http://maemo.org/profile/view/prophette.html prophette]
| Jan Whiteside
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/prospero.html prospero]
| Philipp Schwaha
| 2008-04-12 12:41:04
|-
| [http://maemo.org/profile/view/protasoff.html protasoff]
| Protasov Andrew
| 2008-01-05 12:41:13
|-
| [http://maemo.org/profile/view/proudtobeavol.html proudtobeavol]
| shanna franklin-roland
| 2007-07-09 04:40:15
|-
| [http://maemo.org/profile/view/prschaffner.html prschaffner]
| Philip Schaffner
| 2007-11-15 07:56:22
|-
| [http://maemo.org/profile/view/pruebaabc.html pruebaabc]
| titan 123
| 2008-01-09 21:41:10
|-
| [http://maemo.org/profile/view/pruocchio.html pruocchio]
| Paul Ruocchio
| 2007-11-16 17:47:34
|-
| [http://maemo.org/profile/view/prutwo.html prutwo]
| ophir prusak
| 2007-10-20 02:40:31
|-
| [http://maemo.org/profile/view/psantane.html psantane]
| Pekka Santanen
| 2007-12-27 11:41:04
|-
| [http://maemo.org/profile/view/psb777.html psb777]
| Paul Beardsell
| 2007-11-16 17:48:13
|-
| [http://maemo.org/profile/view/psdepsde.html psdepsde]
| Peter Edwards
| 2007-11-16 17:49:11
|-
| [http://maemo.org/profile/view/psero.html psero]
| Pascal Sero
| 2007-06-22 20:40:06
|-
| [http://maemo.org/profile/view/pseudofinn.html pseudofinn]
| Jeremiah Anway
| 2007-11-15 07:55:04
|-
| [http://maemo.org/profile/view/pseudomind.html pseudomind]
| mike leimon
| 2007-05-18 19:14:32
|-
| [http://maemo.org/profile/view/pseudox.html pseudox]
| lee slazinski
| 2008-01-12 22:41:12
|-
| [http://maemo.org/profile/view/psglenn.html psglenn]
| Perry Glenn
| 2007-05-29 09:30:42
|-
| [http://maemo.org/profile/view/psjuma.html psjuma]
| Juha Marila
| 2008-01-18 08:31:17
|-
| [http://maemo.org/profile/view/psk.html psk]
| Philippe SCHMUCK
| 2007-05-18 19:12:04
|-
| [http://maemo.org/profile/view/psmitty.html psmitty]
| Paul Smith
| 2008-01-11 11:11:25
|-
| [http://maemo.org/profile/view/psmt.html psmt]
| Philipp Thomas
| 2007-10-23 14:40:36
|-
| [http://maemo.org/profile/view/psnead.html psnead]
| Patrick Snead
| 2008-02-20 17:30:34
|-
| [http://maemo.org/profile/view/psoljala.html psoljala]
| pasi soljala
| 2007-05-18 19:14:41
|-
| [http://maemo.org/profile/view/psp2005mix.html psp2005mix]
| mariano perez
| 2007-11-16 17:47:43
|-
| [http://maemo.org/profile/view/pstmstr.html pstmstr]
| Michael Cox
| 2007-06-11 11:21:02
|-
| [http://maemo.org/profile/view/psujek345.html psujek345]
| pawel xxx
| 2008-03-06 19:31:17
|-
| [http://maemo.org/profile/view/psw0523.html psw0523]
| Park Sunwoo
| 2007-07-10 07:40:08
|-
| [http://maemo.org/profile/view/psychiatras.html psychiatras]
| Mindaugas Seinauskas
| 2007-05-18 19:14:25
|-
| [http://maemo.org/profile/view/psycho275.html psycho275]
| Psycho 275
| 2008-05-27 03:41:08
|-
| [http://maemo.org/profile/view/psylinder.html psylinder]
| M Beiner
| 2008-03-18 22:31:04
|-
| [http://maemo.org/profile/view/ptaffs.html ptaffs]
| peter taffs
| 2007-11-16 17:49:11
|-
| [http://maemo.org/profile/view/ptesone.html ptesone]
| Peter Tesone
| 2007-10-30 21:40:38
|-
| [http://maemo.org/profile/view/pthorell.html pthorell]
| Per Thorell
| 2007-05-18 19:10:59
|-
| [http://maemo.org/profile/view/ptica.html ptica]
| Paul Pticin
| 2007-09-24 22:40:24
|-
| [http://maemo.org/profile/view/ptit_seb.html ptit_seb]
| Sébastien GRAVIER
| 2007-08-22 14:40:22
|-
| [http://maemo.org/profile/view/ptiz.html ptiz]
| ptiz ptiz
| 2008-06-02 21:41:13
|-
| [http://maemo.org/profile/view/ptman.html ptman]
| Paul Tötterman
| 2007-05-18 19:11:38
|-
| [http://maemo.org/profile/view/ptolemy.html ptolemy]
| Arcady Kluchev
| 2008-03-23 19:31:03
|-
| [http://maemo.org/profile/view/ptolonen.html ptolonen]
| Petteri Tolonen
| 2007-05-18 19:12:40
|-
| [http://maemo.org/profile/view/ptosiani.html ptosiani]
| Paolo Tosiani
| 2007-12-11 16:25:05
|-
| [http://maemo.org/profile/view/ptritabaugh.html ptritabaugh]
| Phillip Tritabaugh
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/ptrobo.html ptrobo]
| carlos trobo
| 2008-02-05 09:31:15
|-
| [http://maemo.org/profile/view/publicaldo.html publicaldo]
| Al Osterkil
| 2007-10-31 02:40:38
|-
| [http://maemo.org/profile/view/puddytat.html puddytat]
| Geraldine Korbel
| 2007-11-28 17:10:32
|-
| [http://maemo.org/profile/view/puebler.html puebler]
| puebler puebler
| 2007-05-18 19:12:40
|-
| [http://maemo.org/profile/view/pugaholicnm4.html pugaholicnm4]
| Gail Albers
| 2008-03-04 05:31:01
|-
| [http://maemo.org/profile/view/pugfantus.html pugfantus]
| Jason Peck
| 2007-07-31 10:40:22
|-
| [http://maemo.org/profile/view/puggy.html puggy]
| Puggy Pugster
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/pukesrainbows.html pukesrainbows]
| nope nopenope
| 2008-01-24 19:32:11
|-
| [http://maemo.org/profile/view/pula.html pula]
| pula pizda
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/pulphero.html pulphero]
| jim jones
| 2007-12-24 16:41:08
|-
| [http://maemo.org/profile/view/pulsar.html pulsar]
| Paul Rogalinski
| 2007-05-18 19:13:55
|-
| [http://maemo.org/profile/view/pulvis.html pulvis]
| hannu helin
| 2007-10-18 13:40:30
|-
| [http://maemo.org/profile/view/punit.html punit]
| Punit Vaidya
| 2007-11-16 17:48:16
|-
| [http://maemo.org/profile/view/pupnik.html pupnik]
| Arnim Sauerbier
| 2007-05-18 19:13:17
|-
| [http://maemo.org/profile/view/puppafish.html puppafish]
| Puppa Fish
| 2008-03-23 10:31:06
|-
| [http://maemo.org/profile/view/purdy6240.html purdy6240]
| Dennis Purdy
| 2008-04-10 10:41:13
|-
| [http://maemo.org/profile/view/pureka.html pureka]
| Paul Pureka
| 2008-01-15 06:40:55
|-
| [http://maemo.org/profile/view/purpinnc.html purpinnc]
| kevin hayes
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/purpleredbird.html purpleredbird]
| B house
| 2007-11-16 17:47:45
|-
| [http://maemo.org/profile/view/purushottam_r_s.html purushottam_r_s]
| Purushottam S
| 2008-01-15 06:40:54
|-
| [http://maemo.org/profile/view/pushwall.html pushwall]
| Doug Howell
| 2008-01-22 21:32:00
|-
| [http://maemo.org/profile/view/pusspink.html pusspink]
| Ann Richter
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/pussywillow.html pussywillow]
| Sheryl Shiplack
| 2008-01-22 04:31:38
|-
| [http://maemo.org/profile/view/putty.html putty]
| he tianhe
| 2008-01-18 11:31:01
|-
| [http://maemo.org/profile/view/pvanhoof.html pvanhoof]
| Philip Van Hoof
| 2007-05-21 13:43:19
|-
| [http://maemo.org/profile/view/pv_rajkumar.html pv_rajkumar]
| Polanki varadarajkumar
| 2008-06-06 13:41:13
|-
| [http://maemo.org/profile/view/pweston.html pweston]
| Peter Weston
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/pwrv.html pwrv]
| starr yu
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/pxllr.html pxllr]
| Larry Romo
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/pycage.html pycage]
| Martin Grimme
| 2006-12-13 11:10:03
|-
| [http://maemo.org/profile/view/pyhimys.html pyhimys]
| Samppa Kytömäki
| 2007-11-16 17:49:41
|-
| [http://maemo.org/profile/view/pyjimbo.html pyjimbo]
| James Donaldson
| 2008-03-23 23:31:03
|-
| [http://maemo.org/profile/view/pyro777.html pyro777]
| TJ McLauglin
| 2007-11-16 17:46:56
|-
| [http://maemo.org/profile/view/pyrofenix.html pyrofenix]
| tim beljavskis
| 2007-07-01 03:40:08
|-
| [http://maemo.org/profile/view/pyry.html pyry]
| Pyry Virtanen
| 2008-02-26 19:31:09
|-
| [http://maemo.org/profile/view/pyxl26.html pyxl26]
| Pyxl Willhite
| 2007-07-05 16:40:09
|-
| [http://maemo.org/profile/view/pzhal.html pzhal]
| Peter Halatyn
| 2007-12-11 16:22:59
|-
| [http://maemo.org/profile/view/pzhou.html pzhou]
| peng zhou
| 2008-02-03 02:31:32
|-
| [http://maemo.org/profile/view/p_tisserand.html p_tisserand]
| Patrice Tisserand
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/qahmad.html qahmad]
| Ahmad Qasim
| 2008-05-23 14:41:12
|-
| [http://maemo.org/profile/view/qarza.html qarza]
| Kari Sainio
| 2008-05-29 12:41:08
|-
| [http://maemo.org/profile/view/qbase.html qbase]
| Markus Boström
| 2007-05-18 19:11:28
|-
| [http://maemo.org/profile/view/qboyz.html qboyz]
| Anand Sivashanmugam
| 2007-10-30 11:40:35
|-
| [http://maemo.org/profile/view/qc_runner.html qc_runner]
| Nancy Johnson
| 2007-07-10 18:40:15
|-
| [http://maemo.org/profile/view/qemls29.html qemls29]
| Ed Eng
| 2007-11-16 17:46:23
|-
| [http://maemo.org/profile/view/qgil.html qgil]
| Quim Gil
| 2007-05-18 19:12:03
|-
| [http://maemo.org/profile/view/qingcai.html qingcai]
| yong lu
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/qingfeng.html qingfeng]
| Anna Li
| 2008-03-18 20:31:06
|-
| [http://maemo.org/profile/view/qkris.html qkris]
| Krzysztof Szklarski
| 2008-04-12 15:41:08
|-
| [http://maemo.org/profile/view/qmichard.html qmichard]
| Quentin Michard
| 2007-11-16 17:47:34
|-
| [http://maemo.org/profile/view/qnr.html qnr]
| Terry Ross
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/qole.html qole]
| alan bruce
| 2007-11-16 00:40:42
|-
| [http://maemo.org/profile/view/qsar.html qsar]
| alex shvyrev
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/qtandcrazy.html qtandcrazy]
| Armindo Gonzalez
| 2007-06-29 20:40:16
|-
| [http://maemo.org/profile/view/quantumbb.html quantumbb]
| Bill Wofford
| 2007-11-16 17:47:49
|-
| [http://maemo.org/profile/view/quantux.html quantux]
| Alex Ibrado
| 2008-01-24 23:51:14
|-
| [http://maemo.org/profile/view/quasimora.html quasimora]
| Guy Woodward
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/queencityrunner.html queencityrunner]
| Nancy Johnson
| 2007-11-30 10:49:33
|-
| [http://maemo.org/profile/view/quesne.html quesne]
| Tore Nordstrand
| 2007-10-19 13:40:33
|-
| [http://maemo.org/profile/view/quinlana.html quinlana]
| Adrienne Quinlan
| 2007-08-26 11:40:22
|-
| [http://maemo.org/profile/view/qurius.html qurius]
| Morten Karlsen
| 2007-10-17 18:40:28
|-
| [http://maemo.org/profile/view/quylan.html quylan]
| Quy Nguyen
| 2007-07-01 19:40:13
|-
| [http://maemo.org/profile/view/qwavel.html qwavel]
| Tom Malcolmson
| 2008-05-06 17:42:32
|-
| [http://maemo.org/profile/view/qwazyboy.html qwazyboy]
| derek shuman
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/qwert.html qwert]
| david qwert
| 2007-05-18 19:11:34
|-
| [http://maemo.org/profile/view/qwerty12.html qwerty12]
| Faheem Pervez
| 2008-01-27 17:31:34
|-
| [http://maemo.org/profile/view/qwerty172.html qwerty172]
| Bill Thanis
| 2007-07-05 18:40:12
|-
| [http://maemo.org/profile/view/qwertz68.html qwertz68]
| Andreas Neels
| 2007-05-29 09:30:43
|-
| [http://maemo.org/profile/view/r-r.html r-r]
| Alex .
| 2007-11-16 17:50:28
|-
| [http://maemo.org/profile/view/r00tkit.html r00tkit]
| r00t kit
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/r200.html r200]
| R2 .
| 2007-11-16 17:50:25
|-
| [http://maemo.org/profile/view/r2d2rogers.html r2d2rogers]
| Rob Rogers
| 2007-11-16 17:50:05
|-
| [http://maemo.org/profile/view/r2global.html r2global]
| Ben MG
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/r2w4h86.html r2w4h86]
| Ryan Hepler
| 2007-06-30 22:41:01
|-
| [http://maemo.org/profile/view/r336514.html r336514]
| Rita Moore
| 2007-05-18 19:12:22
|-
| [http://maemo.org/profile/view/r351574nc3.html r351574nc3]
| Leo Przybylski
| 2007-11-30 10:49:36
|-
| [http://maemo.org/profile/view/r3tro.html r3tro]
| Sebastian Busch
| 2007-11-05 14:41:03
|-
| [http://maemo.org/profile/view/r4cdeleon.html r4cdeleon]
| Ruel de Leon
| 2007-10-31 14:40:37
|-
| [http://maemo.org/profile/view/r8ders2k.html r8ders2k]
| Fabian Ramirez
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/raa.html raa]
| RA Anderson
| 2007-05-23 05:29:45
|-
| [http://maemo.org/profile/view/raanders.html raanders]
| Rod Anderson
| 2007-05-18 19:12:06
|-
| [http://maemo.org/profile/view/raaschp.html raaschp]
| peter raasch
| 2007-11-16 17:47:53
|-
| [http://maemo.org/profile/view/rabarkar.html rabarkar]
| Roberto Abarca Cárdenas
| 2007-11-15 07:56:15
|-
| [http://maemo.org/profile/view/rabbit.html rabbit]
| simon k
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/rabbitii.html rabbitii]
| Ivan Izilov
| 2007-10-23 16:40:33
|-
| [http://maemo.org/profile/view/rabidbuni.html rabidbuni]
| stephen morup
| 2008-05-08 03:41:06
|-
| [http://maemo.org/profile/view/rabidtabid.html rabidtabid]
| Randall Smith
| 2007-12-11 16:25:10
|-
| [http://maemo.org/profile/view/rabil.html rabil]
| Rick Bilonick
| 2008-05-21 03:41:12
|-
| [http://maemo.org/profile/view/rabilon.html rabilon]
| Richard Bilonick
| 2008-05-23 04:41:08
|-
| [http://maemo.org/profile/view/rabryn.html rabryn]
| Ryan Bryngelson
| 2007-07-02 02:10:17
|-
| [http://maemo.org/profile/view/raccoon.html raccoon]
| lj Palmer
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/raccoonworks.html raccoonworks]
| Alan Fletcher
| 2007-11-30 10:49:36
|-
| [http://maemo.org/profile/view/racenry24.html racenry24]
| henry pilapil
| 2007-11-30 10:48:29
|-
| [http://maemo.org/profile/view/racer.html racer]
| IAN CHARNOCK
| 2007-05-18 19:10:23
|-
| [http://maemo.org/profile/view/racgordon.html racgordon]
| robert gordon
| 2008-05-18 21:41:10
|-
| [http://maemo.org/profile/view/rackie.html rackie]
| Racky Wong
| 2007-12-15 07:40:53
|-
| [http://maemo.org/profile/view/rad5030.html rad5030]
| larry dustin
| 2007-12-24 00:41:27
|-
| [http://maemo.org/profile/view/radanliev.html radanliev]
| Petar Radanliev
| 2008-05-23 18:41:24
|-
| [http://maemo.org/profile/view/radek.html radek]
| Radek Smigielski
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/radekrat.html radekrat]
| Radek Vokal
| 2008-05-29 07:41:31
|-
| [http://maemo.org/profile/view/radha_vkrishna.html radha_vkrishna]
| radhakrishna votti
| 2008-02-20 10:30:58
|-
| [http://maemo.org/profile/view/radical.html radical]
| David Stock
| 2007-05-18 19:11:53
|-
| [http://maemo.org/profile/view/radio.html radio]
| Kevin Weiler
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/radiotalent.html radiotalent]
| Matt Tackett
| 2007-11-16 17:47:32
|-
| [http://maemo.org/profile/view/radovan.html radovan]
| radovan bierens
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/radu54.html radu54]
| Radu Oprea
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/radub.html radub]
| Radu Braniste
| 2008-04-21 15:41:12
|-
| [http://maemo.org/profile/view/rae_ptrp.html rae_ptrp]
| Jhoanna Rae Marquez
| 2007-11-16 17:47:25
|-
| [http://maemo.org/profile/view/raf.html raf]
| Robert Fleming
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/rafa11.html rafa11]
| maxim pikhtovnikov
| 2008-01-23 19:42:09
|-
| [http://maemo.org/profile/view/rafaelanta.html rafaelanta]
| Rafael Anta
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/rafaelefucho.html rafaelefucho]
| Rafael Arias
| 2007-12-30 23:41:06
|-
| [http://maemo.org/profile/view/rafaelfe.html rafaelfe]
| Rafael Fernandes
| 2007-05-18 19:13:19
|-
| [http://maemo.org/profile/view/rafaelle.html rafaelle]
| Rafaelle Pinto do Rêgo
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/rafaelnokia770.html rafaelnokia770]
| rafa espendindola
| 2007-06-08 13:37:16
|-
| [http://maemo.org/profile/view/rafaelsolis.html rafaelsolis]
| rafael solis
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/rafanto.html rafanto]
| Antonio Di Cello
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/raff.html raff]
| Raffaele Sena
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/raffo.html raffo]
| Raffaele Di Fazio
| 2007-10-22 14:40:33
|-
| [http://maemo.org/profile/view/rafl.html rafl]
| Florian Ragwitz
| 2007-10-27 22:41:27
|-
| [http://maemo.org/profile/view/raft3330.html raft3330]
| Rafael Turró
| 2008-02-01 23:31:21
|-
| [http://maemo.org/profile/view/raftbison.html raftbison]
| fred astair
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/rag.html rag]
| Robin Gape
| 2007-12-11 16:25:16
|-
| [http://maemo.org/profile/view/ragner.html ragner]
| Ragner Magalhaes
| 2007-10-18 17:40:31
|-
| [http://maemo.org/profile/view/ragnhaug.html ragnhaug]
| Ragnvald Haugsvaer
| 2008-03-25 15:31:04
|-
| [http://maemo.org/profile/view/ragsx.html ragsx]
| ronald g
| 2007-05-18 19:10:57
|-
| [http://maemo.org/profile/view/rahimlila.html rahimlila]
| Rahim Lila
| 2007-11-15 07:56:26
|-
| [http://maemo.org/profile/view/rahul.html rahul]
| rahul d
| 2008-01-25 05:31:03
|-
| [http://maemo.org/profile/view/raimoj.html raimoj]
| Raimo Jormalainen
| 2008-03-04 13:31:10
|-
| [http://maemo.org/profile/view/rainbow.html rainbow]
| Guillaume Maes
| 2008-01-11 13:40:59
|-
| [http://maemo.org/profile/view/rainbowbreeze.html rainbowbreeze]
| Legolas Elf
| 2007-10-24 08:40:36
|-
| [http://maemo.org/profile/view/rajatdhawan.html rajatdhawan]
| Rajat Dhawan
| 2008-03-18 20:31:06
|-
| [http://maemo.org/profile/view/rajesh.html rajesh]
| Atul Raut
| 2007-12-18 08:50:56
|-
| [http://maemo.org/profile/view/rajeshtaneja.html rajeshtaneja]
| Rajesh Taneja
| 2008-05-13 05:41:14
|-
| [http://maemo.org/profile/view/rajivbhat.html rajivbhat]
| Rajiv Bhat
| 2007-11-15 07:56:00
|-
| [http://maemo.org/profile/view/rajmago.html rajmago]
| Rajat Mago
| 2007-06-20 15:40:06
|-
| [http://maemo.org/profile/view/rakaunis.html rakaunis]
| Rami Kaunisto
| 2007-05-18 19:12:08
|-
| [http://maemo.org/profile/view/rakeshsoneja.html rakeshsoneja]
| Rakesh Kumar
| 2007-06-08 13:37:21
|-
| [http://maemo.org/profile/view/ralexa32.html ralexa32]
| alexander regehr
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/ralf.html ralf]
| ralf win
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/ralfz.html ralfz]
| Ralf Zimmermann
| 2008-05-29 19:41:14
|-
| [http://maemo.org/profile/view/rallat.html rallat]
| Israel Ferrer
| 2007-11-19 09:01:25
|-
| [http://maemo.org/profile/view/ralle.html ralle]
| Ralf Hofmann
| 2008-01-06 20:41:51
|-
| [http://maemo.org/profile/view/ralph.html ralph]
| Ralph Dale-Jones
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/ralphb.html ralphb]
| Ralph B
| 2007-10-25 18:40:40
|-
| [http://maemo.org/profile/view/ralphs.html ralphs]
| Ralph Schraven
| 2007-12-11 16:26:30
|-
| [http://maemo.org/profile/view/ralucam.html ralucam]
| Raluca Musaloiu-E.
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/ram.html ram]
| Ramanan Selvaratnam
| 2007-10-20 05:40:30
|-
| [http://maemo.org/profile/view/ramai.html ramai]
| ramai camargo
| 2007-10-26 02:40:35
|-
| [http://maemo.org/profile/view/ramalingam.html ramalingam]
| Ramalingam R
| 2007-11-16 17:48:02
|-
| [http://maemo.org/profile/view/ramamujula.html ramamujula]
| seetha amujula
| 2007-12-11 16:25:46
|-
| [http://maemo.org/profile/view/ramatan.html ramatan]
| Jörg Helbing
| 2007-10-30 11:40:35
|-
| [http://maemo.org/profile/view/rambo.html rambo]
| Eero af Heurlin
| 2007-05-21 13:43:19
|-
| [http://maemo.org/profile/view/rambo-test.html rambo-test]
| [TEST] Eero af Heurlin
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/ramillator.html ramillator]
| Rik MILLER
| 2008-01-31 00:40:58
|-
| [http://maemo.org/profile/view/ramin.html ramin]
| Ramin Perumal
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/raminicola.html raminicola]
| Rami Kanhouche
| 2008-01-25 02:30:56
|-
| [http://maemo.org/profile/view/ramin_sidhu.html ramin_sidhu]
| Raminder S. Sidhu
| 2008-01-26 13:42:25
|-
| [http://maemo.org/profile/view/ramirezguido.html ramirezguido]
| guido ramirez
| 2007-12-11 16:26:35
|-
| [http://maemo.org/profile/view/ramiro.html ramiro]
| Ramiro Estrugo
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/ramkalaskar.html ramkalaskar]
| Ram Kumar
| 2007-11-16 17:49:12
|-
| [http://maemo.org/profile/view/ramon.html ramon]
| savello ottaviani
| 2007-10-30 10:40:37
|-
| [http://maemo.org/profile/view/ramonrabello.html ramonrabello]
| Ramon Rabello
| 2007-12-25 02:41:19
|-
| [http://maemo.org/profile/view/randombits.html randombits]
| Mark Cannon
| 2007-05-18 19:13:20
|-
| [http://maemo.org/profile/view/randrus.html randrus]
| Richard Andrus
| 2007-11-28 15:43:25
|-
| [http://maemo.org/profile/view/randylm.html randylm]
| Randy Mills
| 2007-06-30 18:40:10
|-
| [http://maemo.org/profile/view/rane.html rane]
| Vaibhav Rane
| 2007-10-19 07:40:30
|-
| [http://maemo.org/profile/view/rangans.html rangans]
| Ranganathan Sridharan
| 2008-03-05 14:31:01
|-
| [http://maemo.org/profile/view/ranger-2007.html ranger-2007]
| Colin Murray
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/ranger97s33.html ranger97s33]
| Loke Chok Kang
| 2007-07-25 11:40:40
|-
| [http://maemo.org/profile/view/rangerover.html rangerover]
| 路 虎
| 2008-04-17 01:41:22
|-
| [http://maemo.org/profile/view/ranida.html ranida]
| Randall Goff
| 2007-11-02 02:40:38
|-
| [http://maemo.org/profile/view/ranjan.html ranjan]
| ranjan datta
| 2007-12-19 04:40:53
|-
| [http://maemo.org/profile/view/ranjitpil.html ranjitpil]
| Ranjit Pillai
| 2008-05-09 07:41:06
|-
| [http://maemo.org/profile/view/ranzeboo.html ranzeboo]
| Jarkka Kivikanta
| 2007-12-17 09:40:50
|-
| [http://maemo.org/profile/view/raoulh.html raoulh]
| raoul hecky
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/raphseraph.html raphseraph]
| Rafael Padilla Monroy
| 2008-04-24 05:41:10
|-
| [http://maemo.org/profile/view/rapope.html rapope]
| Rocky Pope
| 2008-05-28 04:41:11
|-
| [http://maemo.org/profile/view/rarara77.html rarara77]
| Ra McCarthy
| 2007-10-21 17:40:32
|-
| [http://maemo.org/profile/view/rasca.html rasca]
| Raoul Scarazzini
| 2007-10-22 07:40:36
|-
| [http://maemo.org/profile/view/rashef.html rashef]
| Mirko Grewing
| 2007-06-25 15:40:09
|-
| [http://maemo.org/profile/view/rasjani.html rasjani]
| jani mikkonen
| 2007-05-29 09:30:42
|-
| [http://maemo.org/profile/view/rasmithuk.html rasmithuk]
| Russell Smith
| 2007-05-18 19:11:25
|-
| [http://maemo.org/profile/view/rasrachaiya.html rasrachaiya]
| ras rachaiya
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/raster.html raster]
| Pete Prodoehl
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/rastreador.html rastreador]
| Manuel Angel Fernandez Fernandez
| 2007-10-20 11:40:34
|-
| [http://maemo.org/profile/view/ratchtjaw.html ratchtjaw]
| John Slaughter
| 2007-07-02 07:40:17
|-
| [http://maemo.org/profile/view/ratencia.html ratencia]
| Rafael Atencia
| 2007-10-20 09:40:31
|-
| [http://maemo.org/profile/view/ratm.html ratm]
| Kay 1st
| 2007-11-28 15:43:18
|-
| [http://maemo.org/profile/view/ratmir.html ratmir]
| Vitalii Belelia
| 2008-03-28 22:31:10
|-
| [http://maemo.org/profile/view/ratol.html ratol]
| Lab Engineer
| 2007-05-18 19:14:32
|-
| [http://maemo.org/profile/view/ratrodster.html ratrodster]
| David Hickman
| 2007-06-20 03:40:18
|-
| [http://maemo.org/profile/view/ratsailer.html ratsailer]
| Phillip Ho
| 2007-05-18 19:11:04
|-
| [http://maemo.org/profile/view/ratso.html ratso]
| Jon Chizek
| 2007-05-18 19:11:42
|-
| [http://maemo.org/profile/view/rattus.html rattus]
| Maxim Burov
| 2008-01-31 14:34:16
|-
| [http://maemo.org/profile/view/ratur.html ratur]
| Nicolas Ghaye
| 2007-05-18 19:10:25
|-
| [http://maemo.org/profile/view/raul.html raul]
| Raul Herbster
| 2007-05-18 19:12:46
|-
| [http://maemo.org/profile/view/rauldepaz.html rauldepaz]
| Raul de Paz Navajas
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/raulherbster.html raulherbster]
| Raul Fernandes Herbster
| 2007-11-28 17:40:13
|-
| [http://maemo.org/profile/view/raulito.html raulito]
| raulyn jimenez
| 2007-12-11 16:23:57
|-
| [http://maemo.org/profile/view/rautis.html rautis]
| Aapo Rautiainen
| 2007-05-18 19:11:20
|-
| [http://maemo.org/profile/view/rav1974.html rav1974]
| Rene Vasquez
| 2007-07-15 14:40:19
|-
| [http://maemo.org/profile/view/ravcasti.html ravcasti]
| Ravey Castillo
| 2007-07-10 00:40:40
|-
| [http://maemo.org/profile/view/raveer.html raveer]
| Mitja Pufic
| 2007-05-24 12:40:43
|-
| [http://maemo.org/profile/view/raven.html raven]
| A Raven
| 2007-05-18 19:11:48
|-
| [http://maemo.org/profile/view/raven77.html raven77]
| Alan Wong
| 2007-05-18 19:13:06
|-
| [http://maemo.org/profile/view/ravena79.html ravena79]
| Loic Alleyne
| 2007-12-11 16:25:32
|-
| [http://maemo.org/profile/view/ravigangula.html ravigangula]
| Ravi Gangula
| 2008-01-08 16:41:00
|-
| [http://maemo.org/profile/view/ravinder.html ravinder]
| ravinder chouhan
| 2007-12-28 08:41:12
|-
| [http://maemo.org/profile/view/ravious.html ravious]
| Ravious Null
| 2007-11-16 17:47:06
|-
| [http://maemo.org/profile/view/raviraj.html raviraj]
| Raviraj Bhat
| 2007-11-28 15:43:45
|-
| [http://maemo.org/profile/view/ravirk.html ravirk]
| Ravi R K
| 2008-05-23 09:41:27
|-
| [http://maemo.org/profile/view/rax.html rax]
| xb rax
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/rayeve.html rayeve]
| Raymond Eve
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/rayfrech.html rayfrech]
| ray frech
| 2007-11-16 17:48:01
|-
| [http://maemo.org/profile/view/rayreichard.html rayreichard]
| Raay Reichard
| 2008-01-01 10:40:56
|-
| [http://maemo.org/profile/view/raytrace.html raytrace]
| ray ytace
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/raziel.html raziel]
| Luo Haojie
| 2008-01-19 11:31:08
|-
| [http://maemo.org/profile/view/razmatei.html razmatei]
| Razvan Matei
| 2008-01-12 18:40:59
|-
| [http://maemo.org/profile/view/razrswat.html razrswat]
| Russell Horine
| 2007-12-30 06:40:52
|-
| [http://maemo.org/profile/view/razzyel.html razzyel]
| Antonio Moraes
| 2007-11-05 20:21:32
|-
| [http://maemo.org/profile/view/rb032703.html rb032703]
| richard brown
| 2007-12-11 16:25:47
|-
| [http://maemo.org/profile/view/rb2.html rb2]
| Ralf Baumgärtner
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/rb2221135.html rb2221135]
| Richard Burton
| 2007-07-23 14:40:17
|-
| [http://maemo.org/profile/view/rb2335.html rb2335]
| Renato Breznik
| 2007-05-18 19:11:52
|-
| [http://maemo.org/profile/view/rba27jsa.html rba27jsa]
| Robert Altmeyer
| 2007-05-18 19:10:31
|-
| [http://maemo.org/profile/view/rbarth.html rbarth]
| Reinhold Barth
| 2007-10-17 12:40:29
|-
| [http://maemo.org/profile/view/rbejar.html rbejar]
| Rubén Béjar
| 2008-02-06 10:31:06
|-
| [http://maemo.org/profile/view/rbellaver.html rbellaver]
| Richard Bellaver
| 2007-11-15 07:56:00
|-
| [http://maemo.org/profile/view/rbeverly3.html rbeverly3]
| Robert Beverly
| 2008-01-31 19:42:39
|-
| [http://maemo.org/profile/view/rbhokse.html rbhokse]
| Rajesh b
| 2007-10-20 16:40:30
|-
| [http://maemo.org/profile/view/rbillideau.html rbillideau]
| Rob Billideau
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/rbokel.html rbokel]
| Ralf Bokelberg
| 2007-12-11 16:26:17
|-
| [http://maemo.org/profile/view/rboumart.html rboumart]
| rachid boumart
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/rbracewell.html rbracewell]
| Robert Bracewell
| 2007-07-17 08:40:10
|-
| [http://maemo.org/profile/view/rbradford.html rbradford]
| Rob Bradford
| 2007-05-18 19:13:15
|-
| [http://maemo.org/profile/view/rbraig.html rbraig]
| Robert Braig
| 2007-12-11 16:26:33
|-
| [http://maemo.org/profile/view/rbreuer.html rbreuer]
| Rolf Breuer
| 2007-07-31 17:40:20
|-
| [http://maemo.org/profile/view/rbtbray.html rbtbray]
| robert bray
| 2007-05-18 19:10:36
|-
| [http://maemo.org/profile/view/rbuckley.html rbuckley]
| Rich Buckley
| 2008-04-08 21:41:08
|-
| [http://maemo.org/profile/view/rcadden.html rcadden]
| Ricky Cadden
| 2007-11-16 17:49:56
|-
| [http://maemo.org/profile/view/rcaddyuk.html rcaddyuk]
| Richard Caddy
| 2007-12-11 19:41:16
|-
| [http://maemo.org/profile/view/rcampbell.html rcampbell]
| Ryan Campbell
| 2007-06-28 03:40:08
|-
| [http://maemo.org/profile/view/rcardoza.html rcardoza]
| Ryan Cardoza
| 2007-12-23 04:41:05
|-
| [http://maemo.org/profile/view/rcatherman.html rcatherman]
| Ryan Catherman
| 2008-04-09 14:41:09
|-
| [http://maemo.org/profile/view/rcauston.html rcauston]
| Raymond Causton
| 2007-10-31 23:41:55
|-
| [http://maemo.org/profile/view/rcglidden.html rcglidden]
| Ron Glidden
| 2008-02-25 22:31:00
|-
| [http://maemo.org/profile/view/rchk.html rchk]
| henrik maarn
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/rcking1501.html rcking1501]
| Ronald King
| 2007-11-16 17:49:11
|-
| [http://maemo.org/profile/view/rclbelem.html rclbelem]
| Rodrigo Belem
| 2007-05-18 19:13:47
|-
| [http://maemo.org/profile/view/rcmc2020.html rcmc2020]
| Robert McCrae
| 2007-11-19 09:01:20
|-
| [http://maemo.org/profile/view/rcoronado33mx.html rcoronado33mx]
| roberto coronado
| 2007-11-16 17:47:34
|-
| [http://maemo.org/profile/view/rcorradini.html rcorradini]
| Robert Corradini
| 2007-08-21 03:40:23
|-
| [http://maemo.org/profile/view/rcrawfor.html rcrawfor]
| Rod Crawford
| 2008-05-20 22:41:12
|-
| [http://maemo.org/profile/view/rcsteele.html rcsteele]
| Robert Steele
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/rcwoolley.html rcwoolley]
| Rob Woolley
| 2007-12-26 20:41:46
|-
| [http://maemo.org/profile/view/rdardemann.html rdardemann]
| Rainer Dardemann
| 2007-05-18 19:14:22
|-
| [http://maemo.org/profile/view/rdejean.html rdejean]
| ray d
| 2007-11-15 07:55:45
|-
| [http://maemo.org/profile/view/rdesfo.html rdesfo]
| ry de
| 2008-01-10 05:40:54
|-
| [http://maemo.org/profile/view/rdfranke.html rdfranke]
| Ron Franke
| 2007-11-16 17:46:56
|-
| [http://maemo.org/profile/view/rdmayer.html rdmayer]
| Richard Mayer
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/rdoolen.html rdoolen]
| Robert Doolen
| 2007-12-11 16:25:01
|-
| [http://maemo.org/profile/view/rdorsch.html rdorsch]
| Rainer Dorsch
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/rdrandal.html rdrandal]
| Robert Randall
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/rdrogers74.html rdrogers74]
| robert rogers
| 2007-12-29 17:41:35
|-
| [http://maemo.org/profile/view/rdw1922.html rdw1922]
| bob sanders
| 2008-02-21 00:31:00
|-
| [http://maemo.org/profile/view/readiovirus.html readiovirus]
| Fabio Tesser
| 2007-10-20 11:40:34
|-
| [http://maemo.org/profile/view/realitygaps.html realitygaps]
| Marc Blumenfrucht
| 2007-10-19 02:40:30
|-
| [http://maemo.org/profile/view/reallyi1.html reallyi1]
| the girl
| 2007-05-18 19:12:16
|-
| [http://maemo.org/profile/view/realvv.html realvv]
| fu wei
| 2007-05-31 02:13:43
|-
| [http://maemo.org/profile/view/reason.html reason]
| R E
| 2007-11-16 17:50:06
|-
| [http://maemo.org/profile/view/rebe.html rebe]
| Pekka Reijula
| 2007-06-29 05:40:10
|-
| [http://maemo.org/profile/view/rebelpilot.html rebelpilot]
| joe evans
| 2007-11-15 07:56:11
|-
| [http://maemo.org/profile/view/reboot.html reboot]
| Bill Hallsworth
| 2007-11-28 15:43:41
|-
| [http://maemo.org/profile/view/rebroad.html rebroad]
| Edmund Broadley
| 2007-06-19 19:40:19
|-
| [http://maemo.org/profile/view/recordus.html recordus]
| Xupeng Yun
| 2008-04-17 13:41:27
|-
| [http://maemo.org/profile/view/redants.html redants]
| Horatio Kier
| 2008-01-01 00:40:54
|-
| [http://maemo.org/profile/view/redcarrot79.html redcarrot79]
| Jonghwa lee
| 2008-04-24 12:41:05
|-
| [http://maemo.org/profile/view/redcoyote7.html redcoyote7]
| John Heida
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/reddy.html reddy]
| Dariusz Filipski
| 2007-05-18 19:11:01
|-
| [http://maemo.org/profile/view/redhat.html redhat]
| Robert Stoeber
| 2007-10-21 01:40:35
|-
| [http://maemo.org/profile/view/redhead.html redhead]
| Rainer Wocher
| 2007-05-23 05:29:39
|-
| [http://maemo.org/profile/view/redherring.html redherring]
| pascal buch
| 2007-08-14 21:40:20
|-
| [http://maemo.org/profile/view/rediego.html rediego]
| VINCENZO D'ADDIO
| 2007-12-11 16:25:03
|-
| [http://maemo.org/profile/view/redleader.html redleader]
| m bough
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/rednektek.html rednektek]
| J Slaton
| 2007-11-16 17:47:34
|-
| [http://maemo.org/profile/view/redpola.html redpola]
| Neil Brewitt
| 2007-07-04 16:40:16
|-
| [http://maemo.org/profile/view/redsalt.html redsalt]
| rachel llitwin
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/redscart.html redscart]
| mike aspell
| 2008-03-13 13:31:11
|-
| [http://maemo.org/profile/view/redshift.html redshift]
| Jerry Lin
| 2008-01-15 17:42:34
|-
| [http://maemo.org/profile/view/redwolf217.html redwolf217]
| Jonathan Pucinischi
| 2007-12-31 16:40:57
|-
| [http://maemo.org/profile/view/reed.html reed]
| Stefano Maffulli
| 2007-10-22 08:40:34
|-
| [http://maemo.org/profile/view/reeder29.html reeder29]
| Doug Reeder
| 2007-11-15 07:55:39
|-
| [http://maemo.org/profile/view/reflecto.html reflecto]
| Jeffrey Koh
| 2007-11-15 07:56:24
|-
| [http://maemo.org/profile/view/refugee.html refugee]
| Christian Stelter
| 2007-10-18 14:40:20
|-
| [http://maemo.org/profile/view/regio.html regio]
| EMILIO VILLARREAL
| 2008-03-10 11:31:04
|-
| [http://maemo.org/profile/view/reilly.html reilly]
| lada hora
| 2008-05-04 16:41:23
|-
| [http://maemo.org/profile/view/reinerkoch.html reinerkoch]
| Reiner Koch
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/reinhard.html reinhard]
| Reinhard Enders
| 2007-05-18 19:11:54
|-
| [http://maemo.org/profile/view/rejacob.html rejacob]
| Richard Jacob
| 2007-05-18 19:11:35
|-
| [http://maemo.org/profile/view/rekcahx.html rekcahx]
| Timo Poikola
| 2007-10-16 14:40:26
|-
| [http://maemo.org/profile/view/rekha.html rekha]
| Rekha Bhintade
| 2008-02-28 12:31:06
|-
| [http://maemo.org/profile/view/releone.html releone]
| antonio sconziano
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/relm256.html relm256]
| David Lim
| 2007-10-21 04:40:40
|-
| [http://maemo.org/profile/view/rem100.html rem100]
| godet remy
| 2008-02-01 12:31:12
|-
| [http://maemo.org/profile/view/remdog.html remdog]
| frank ortiz
| 2007-11-16 17:47:34
|-
| [http://maemo.org/profile/view/remoran.html remoran]
| Robert Moran
| 2008-01-31 05:31:07
|-
| [http://maemo.org/profile/view/remover.html remover]
| catalin onofrei
| 2007-05-18 19:14:35
|-
| [http://maemo.org/profile/view/remware.html remware]
| rem mg
| 2007-05-18 19:12:49
|-
| [http://maemo.org/profile/view/remy_f.html remy_f]
| Remy Frerebeau
| 2007-12-13 07:40:52
|-
| [http://maemo.org/profile/view/renato.html renato]
| renato fisichella
| 2007-05-18 19:11:40
|-
| [http://maemo.org/profile/view/renatofilho.html renatofilho]
| renato filho
| 2007-08-09 17:40:24
|-
| [http://maemo.org/profile/view/renatoso.html renatoso]
| Renato Soccol
| 2007-10-22 07:40:36
|-
| [http://maemo.org/profile/view/renato_souto.html renato_souto]
| Renato Souto
| 2008-03-06 15:31:05
|-
| [http://maemo.org/profile/view/rend.html rend]
| christian eustorio
| 2007-10-22 07:40:36
|-
| [http://maemo.org/profile/view/rene.html rene]
| Rene Mac
| 2007-11-16 17:49:07
|-
| [http://maemo.org/profile/view/renee327.html renee327]
| RENEE BRANDON
| 2007-11-28 18:00:33
|-
| [http://maemo.org/profile/view/renee3274.html renee3274]
| RENEE BRANDON
| 2007-11-30 10:48:51
|-
| [http://maemo.org/profile/view/reneef2003.html reneef2003]
| nichie finley
| 2007-11-16 17:47:33
|-
| [http://maemo.org/profile/view/renest.html renest]
| René Stadler
| 2008-01-27 12:31:44
|-
| [http://maemo.org/profile/view/reno413.html reno413]
| douglas gallagher
| 2007-11-16 17:47:35
|-
| [http://maemo.org/profile/view/renoo.html renoo]
| Renaud Laborbe
| 2008-05-15 16:41:55
|-
| [http://maemo.org/profile/view/rentia.html rentia]
| Balázs Ravasz
| 2007-05-18 19:13:53
|-
| [http://maemo.org/profile/view/repass.html repass]
| John Repass
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/reppeto.html reppeto]
| brian reppeto
| 2008-01-05 00:40:57
|-
| [http://maemo.org/profile/view/requa.html requa]
| Dan Howard
| 2008-05-17 12:41:10
|-
| [http://maemo.org/profile/view/rerlin.html rerlin]
| Rami Erlin
| 2008-02-13 10:31:02
|-
| [http://maemo.org/profile/view/resiak.html resiak]
| Will Thompson
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/resoli.html resoli]
| Roberto Resoli
| 2007-10-22 09:40:33
|-
| [http://maemo.org/profile/view/resurrectionist.html resurrectionist]
| rusto busto
| 2008-02-13 04:31:02
|-
| [http://maemo.org/profile/view/retro.html retro]
| Marty Tremblay
| 2007-11-28 16:10:34
|-
| [http://maemo.org/profile/view/retro7.html retro7]
| retro retro
| 2008-04-17 12:41:08
|-
| [http://maemo.org/profile/view/retrohunter.html retrohunter]
| Marty Tremblay
| 2007-11-30 10:49:29
|-
| [http://maemo.org/profile/view/revati.html revati]
| Revati(Dr.) Kulkarni
| 2008-02-18 10:31:00
|-
| [http://maemo.org/profile/view/revplod.html revplod]
| steve wilkinson
| 2007-11-16 17:48:15
|-
| [http://maemo.org/profile/view/revsbech.html revsbech]
| Kasper Revsbech
| 2007-11-16 17:47:59
|-
| [http://maemo.org/profile/view/revwillie.html revwillie]
| Sean Vincent
| 2007-05-18 19:11:18
|-
| [http://maemo.org/profile/view/rewryte.html rewryte]
| Ian DesVignes
| 2007-11-16 17:46:29
|-
| [http://maemo.org/profile/view/reyaris.html reyaris]
| ari tubs
| 2008-02-28 07:31:01
|-
| [http://maemo.org/profile/view/rfaleide.html rfaleide]
| lanny faleide
| 2007-05-18 19:10:53
|-
| [http://maemo.org/profile/view/rflood2.html rflood2]
| Bob Flood
| 2008-05-25 21:41:18
|-
| [http://maemo.org/profile/view/rfrost.html rfrost]
| bob frost
| 2008-01-25 17:31:22
|-
| [http://maemo.org/profile/view/rg0775.html rg0775]
| Rainbow Green
| 2007-07-05 14:40:10
|-
| [http://maemo.org/profile/view/rg33.html rg33]
| rg 33
| 2007-05-18 19:12:51
|-
| [http://maemo.org/profile/view/rg33color.html rg33color]
| rg 33
| 2008-01-15 05:41:30
|-
| [http://maemo.org/profile/view/rga.html rga]
| Reijo Gauffin
| 2007-05-18 19:12:44
|-
| [http://maemo.org/profile/view/rganesan.html rganesan]
| Ganesan Rajagopal
| 2008-03-02 16:31:07
|-
| [http://maemo.org/profile/view/rgbpoint.html rgbpoint]
| roger brown
| 2007-05-18 19:10:55
|-
| [http://maemo.org/profile/view/rgevers.html rgevers]
| Rob Gevers
| 2008-05-19 15:41:09
|-
| [http://maemo.org/profile/view/rgg.html rgg]
| Glenn Gay
| 2007-07-09 01:40:19
|-
| [http://maemo.org/profile/view/rggavmm770.html rggavmm770]
| Roy Gavilan
| 2007-05-18 19:11:54
|-
| [http://maemo.org/profile/view/rgnypek.html rgnypek]
| bob gnypek
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/rgordy.html rgordy]
| Robert Gordy
| 2007-11-16 17:48:01
|-
| [http://maemo.org/profile/view/rgranath.html rgranath]
| Ron Granath
| 2008-03-02 20:31:05
|-
| [http://maemo.org/profile/view/rgreenosborne.html rgreenosborne]
| Russell Green Osborne
| 2007-11-16 17:49:22
|-
| [http://maemo.org/profile/view/rhackenb.html rhackenb]
| Bob Hackenberg
| 2007-05-18 19:11:51
|-
| [http://maemo.org/profile/view/rhakli.html rhakli]
| Risto Häkli
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/rhannon.html rhannon]
| rob hannon
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/rharrison.html rharrison]
| Russell Harrison
| 2008-02-08 21:31:54
|-
| [http://maemo.org/profile/view/rheacoro.html rheacoro]
| Tsui Ching
| 2008-03-05 18:31:11
|-
| [http://maemo.org/profile/view/rheintel.html rheintel]
| Raymond Heintel
| 2007-10-27 00:40:40
|-
| [http://maemo.org/profile/view/rhelps.html rhelps]
| Richard Helps
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/rhesus-negative.html rhesus-negative]
| Klaus Ruehl
| 2007-10-29 21:40:36
|-
| [http://maemo.org/profile/view/rheve.html rheve]
| Herve Frydlender
| 2007-12-12 00:40:49
|-
| [http://maemo.org/profile/view/rhickling.html rhickling]
| Richard Hickling
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/rhoppin.html rhoppin]
| robert hoppin
| 2008-02-17 23:31:01
|-
| [http://maemo.org/profile/view/rhostager.html rhostager]
| Rob Hostager
| 2007-11-16 17:49:35
|-
| [http://maemo.org/profile/view/rhuber.html rhuber]
| Raimund Huber
| 2007-12-17 13:40:49
|-
| [http://maemo.org/profile/view/rhuddle2000.html rhuddle2000]
| richard huddleston
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/rhult.html rhult]
| Richard Hult
| 2007-10-31 08:40:37
|-
| [http://maemo.org/profile/view/rhumbliner.html rhumbliner]
| tom reinertson
| 2007-05-18 19:12:45
|-
| [http://maemo.org/profile/view/rhx.html rhx]
| Rene Hexel
| 2007-05-18 19:12:18
|-
| [http://maemo.org/profile/view/rhymo2.html rhymo2]
| Raimo van der Klein
| 2007-12-17 19:41:04
|-
| [http://maemo.org/profile/view/rhys.html rhys]
| Rhys Ulerich
| 2007-05-18 19:10:24
|-
| [http://maemo.org/profile/view/ribalda.html ribalda]
| Ricardo Ribalda Delgado
| 2007-10-22 16:40:32
|-
| [http://maemo.org/profile/view/riblitz.html riblitz]
| Harold Danner
| 2008-05-29 00:41:30
|-
| [http://maemo.org/profile/view/ricano.html ricano]
| Rino Carl Sekanina
| 2007-10-24 10:40:35
|-
| [http://maemo.org/profile/view/ricardo.html ricardo]
| Ricardo Moraes Guimaraes
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/ricardohello.html ricardohello]
| Ricardo Moraes Guimaraes
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/ricardomarcelo.html ricardomarcelo]
| Ricardo Marcelo
| 2007-11-15 07:56:03
|-
| [http://maemo.org/profile/view/ricardomp.html ricardomp]
| Ricardo Piteira
| 2007-11-16 17:48:15
|-
| [http://maemo.org/profile/view/ricardosouza.html ricardosouza]
| Ricardo Souza
| 2008-03-30 20:31:08
|-
| [http://maemo.org/profile/view/riccvann.html riccvann]
| ricc vann
| 2008-01-21 19:32:04
|-
| [http://maemo.org/profile/view/ricegf.html ricegf]
| George Rice
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/rich7la.html rich7la]
| Rich Savanella
| 2007-11-16 17:49:22
|-
| [http://maemo.org/profile/view/richardg1952.html richardg1952]
| Richard Griffiths
| 2007-10-18 19:40:42
|-
| [http://maemo.org/profile/view/richardj.html richardj]
| Richard Jelbert
| 2007-11-28 15:43:35
|-
| [http://maemo.org/profile/view/richardjames73.html richardjames73]
| richard foster
| 2008-04-22 20:41:12
|-
| [http://maemo.org/profile/view/richardliao.html richardliao]
| Richard Liao
| 2007-12-22 06:41:21
|-
| [http://maemo.org/profile/view/richardmoss.html richardmoss]
| r moss
| 2007-05-18 19:10:59
|-
| [http://maemo.org/profile/view/richardsith.html richardsith]
| riccardo magrini
| 2007-10-22 07:40:34
|-
| [http://maemo.org/profile/view/richardski.html richardski]
| Richard Sierakowski
| 2007-11-16 17:49:26
|-
| [http://maemo.org/profile/view/richardt.html richardt]
| Richard trimble
| 2007-10-25 23:40:27
|-
| [http://maemo.org/profile/view/richardwoodruff.html richardwoodruff]
| Richard Woodruff
| 2007-11-06 14:02:07
|-
| [http://maemo.org/profile/view/richard_cc.html richard_cc]
| Ricardo Alba Atencia
| 2008-05-13 11:41:10
|-
| [http://maemo.org/profile/view/richard_log.html richard_log]
| ricardo rapia
| 2007-12-22 03:41:13
|-
| [http://maemo.org/profile/view/richbumx.html richbumx]
| Henry Siauw
| 2007-06-25 22:40:09
|-
| [http://maemo.org/profile/view/richevans.html richevans]
| Richard Evans
| 2008-02-14 22:31:05
|-
| [http://maemo.org/profile/view/richie.html richie]
| Richard Booth
| 2007-05-18 19:14:16
|-
| [http://maemo.org/profile/view/richkant.html richkant]
| rich kant
| 2008-02-03 02:31:31
|-
| [http://maemo.org/profile/view/richm.html richm]
| R Morrissh
| 2007-11-30 10:48:52
|-
| [http://maemo.org/profile/view/richmindseed.html richmindseed]
| Ankur Mandhania
| 2007-09-12 10:40:11
|-
| [http://maemo.org/profile/view/richsizzle127.html richsizzle127]
| richard rau
| 2007-11-30 10:49:20
|-
| [http://maemo.org/profile/view/richsticks.html richsticks]
| Richard Halpern
| 2008-01-04 03:40:53
|-
| [http://maemo.org/profile/view/rick.html rick]
| Rick Penn
| 2007-11-16 17:47:48
|-
| [http://maemo.org/profile/view/rick65000.html rick65000]
| Rick Castillo
| 2008-01-09 18:40:59
|-
| [http://maemo.org/profile/view/rick670.html rick670]
| richard leonard1
| 2007-12-31 16:40:56
|-
| [http://maemo.org/profile/view/rickcull.html rickcull]
| Rick Cull
| 2008-01-20 15:31:18
|-
| [http://maemo.org/profile/view/rickdlong.html rickdlong]
| Rick Long
| 2007-05-29 09:30:35
|-
| [http://maemo.org/profile/view/rickduhrkopf.html rickduhrkopf]
| Rick Duhrkopf
| 2007-06-28 16:40:07
|-
| [http://maemo.org/profile/view/rickmac444.html rickmac444]
| Richard MacDonald
| 2008-02-19 20:31:01
|-
| [http://maemo.org/profile/view/rickmhall.html rickmhall]
| Rick Hall
| 2007-11-16 17:47:17
|-
| [http://maemo.org/profile/view/ricko.html ricko]
| RiCkO Olivas
| 2008-01-30 18:31:07
|-
| [http://maemo.org/profile/view/rickp.html rickp]
| rick pfuntner
| 2007-11-16 17:47:55
|-
| [http://maemo.org/profile/view/rickrich.html rickrich]
| Rick Richardson
| 2007-07-02 17:40:15
|-
| [http://maemo.org/profile/view/ricky.html ricky]
| Ricky Liang
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/rickyberg.html rickyberg]
| Eric Berg
| 2007-12-27 16:42:27
|-
| [http://maemo.org/profile/view/rickybrent.html rickybrent]
| Ricky Brent
| 2008-01-06 13:41:04
|-
| [http://maemo.org/profile/view/rickyf.html rickyf]
| richard frisch
| 2007-12-11 16:26:04
|-
| [http://maemo.org/profile/view/rickyu77.html rickyu77]
| RICKY YU
| 2007-07-10 12:41:00
|-
| [http://maemo.org/profile/view/rick_hunter.html rick_hunter]
| Alberto Basso
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/ricmoo.html ricmoo]
| richard moon
| 2007-05-23 05:28:55
|-
| [http://maemo.org/profile/view/rico1026.html rico1026]
| 孟展 蔡
| 2008-05-16 19:41:23
|-
| [http://maemo.org/profile/view/rico44.html rico44]
| eric peres
| 2007-12-11 16:25:46
|-
| [http://maemo.org/profile/view/ricosuave2100.html ricosuave2100]
| Claude Davis
| 2008-04-05 13:41:08
|-
| [http://maemo.org/profile/view/rico_w_johnson.html rico_w_johnson]
| rico johnson
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/riecke2135.html riecke2135]
| sayuri riecke
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/riedle.html riedle]
| Riedle S
| 2007-05-18 19:12:36
|-
| [http://maemo.org/profile/view/riesconet.html riesconet]
| Carlos Riesco
| 2008-05-02 15:41:07
|-
| [http://maemo.org/profile/view/rifaqatnike.html rifaqatnike]
| rifaqat shah
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/rik.html rik]
| Richmond K.
| 2007-11-01 14:40:39
|-
| [http://maemo.org/profile/view/rikgrimsby.html rikgrimsby]
| rik spencer
| 2007-12-14 21:41:44
|-
| [http://maemo.org/profile/view/rimniceanum.html rimniceanum]
| rimniceanu mihai
| 2008-01-09 13:41:09
|-
| [http://maemo.org/profile/view/rinehartpe.html rinehartpe]
| David Rinehart
| 2007-10-20 00:40:37
|-
| [http://maemo.org/profile/view/rinski.html rinski]
| Edward Rinski
| 2008-05-11 11:41:05
|-
| [http://maemo.org/profile/view/rinykane.html rinykane]
| risto nykanen
| 2008-01-02 18:51:27
|-
| [http://maemo.org/profile/view/rip.html rip]
| adam p
| 2007-10-27 19:40:34
|-
| [http://maemo.org/profile/view/ripfactory.html ripfactory]
| Patrick McGrath
| 2008-05-14 11:41:06
|-
| [http://maemo.org/profile/view/ripl.html ripl]
| Rip Linton
| 2008-01-28 19:33:12
|-
| [http://maemo.org/profile/view/ripnetuk.html ripnetuk]
| George Styles
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/ripple.html ripple]
| pasquale cascone
| 2007-10-23 08:40:40
|-
| [http://maemo.org/profile/view/rismyth.html rismyth]
| Robert Smith
| 2008-03-14 12:31:01
|-
| [http://maemo.org/profile/view/rita.html rita]
| Rita Dise
| 2008-04-17 20:41:13
|-
| [http://maemo.org/profile/view/ritchey2002.html ritchey2002]
| roberto ferraro
| 2007-05-18 19:13:05
|-
| [http://maemo.org/profile/view/ritmo.html ritmo]
| Dan Armas
| 2007-05-18 19:14:23
|-
| [http://maemo.org/profile/view/riussi.html riussi]
| Juha Ristolainen
| 2007-10-22 06:40:32
|-
| [http://maemo.org/profile/view/rivalschools.html rivalschools]
| Ryan Price
| 2007-07-03 18:40:09
|-
| [http://maemo.org/profile/view/river.html river]
| river jones
| 2007-05-18 19:14:07
|-
| [http://maemo.org/profile/view/rivermin.html rivermin]
| Paul Harmon
| 2007-10-18 18:40:31
|-
| [http://maemo.org/profile/view/rivierealix.html rivierealix]
| Alix RIVIERE
| 2008-01-11 11:11:26
|-
| [http://maemo.org/profile/view/rixed.html rixed]
| cedric cellier
| 2008-06-07 12:31:13
|-
| [http://maemo.org/profile/view/rizlaman.html rizlaman]
| bryan bell
| 2008-02-29 13:30:58
|-
| [http://maemo.org/profile/view/rizni.html rizni]
| rizni nizar
| 2008-05-13 11:41:12
|-
| [http://maemo.org/profile/view/rizoslocos.html rizoslocos]
| hh hh
| 2007-12-30 22:45:23
|-
| [http://maemo.org/profile/view/rjann.html rjann]
| robert jann
| 2007-07-01 22:40:09
|-
| [http://maemo.org/profile/view/rjcameron8.html rjcameron8]
| robert cameron
| 2007-12-28 22:41:13
|-
| [http://maemo.org/profile/view/rje4242.html rje4242]
| Robert Ehtesham
| 2008-04-03 00:41:19
|-
| [http://maemo.org/profile/view/rjh123.html rjh123]
| r j
| 2007-11-16 17:49:38
|-
| [http://maemo.org/profile/view/rjhensen.html rjhensen]
| Bob Jansen
| 2007-12-24 19:41:07
|-
| [http://maemo.org/profile/view/rjkopper.html rjkopper]
| Richard Kopper
| 2008-01-05 16:41:39
|-
| [http://maemo.org/profile/view/rjohnsonxx00.html rjohnsonxx00]
| Richard Johnson
| 2008-05-22 16:41:10
|-
| [http://maemo.org/profile/view/rjoudrey.html rjoudrey]
| Richard Joudrey
| 2007-11-03 22:40:39
|-
| [http://maemo.org/profile/view/rjplin.html rjplin]
| Roger Lin
| 2007-10-26 20:40:33
|-
| [http://maemo.org/profile/view/rjplopes.html rjplopes]
| Ricardo Lopes
| 2007-11-15 07:54:57
|-
| [http://maemo.org/profile/view/rjreptile.html rjreptile]
| rj bowman
| 2008-02-21 03:31:02
|-
| [http://maemo.org/profile/view/rjungmann.html rjungmann]
| Renaud Jungmann
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/rk86.html rk86]
| Alex Matveev
| 2008-01-07 08:41:10
|-
| [http://maemo.org/profile/view/rkalenka.html rkalenka]
| Richard Kalenka
| 2007-12-25 21:41:41
|-
| [http://maemo.org/profile/view/rkarraker.html rkarraker]
| roger karraker
| 2007-12-11 16:26:20
|-
| [http://maemo.org/profile/view/rkayak2049.html rkayak2049]
| Jimmy Rollings
| 2008-05-28 19:41:11
|-
| [http://maemo.org/profile/view/rkeane.html rkeane]
| Robert Keane
| 2007-12-11 16:25:41
|-
| [http://maemo.org/profile/view/rkeefe.html rkeefe]
| Rich Keefe
| 2007-04-05 15:25:38
|-
| [http://maemo.org/profile/view/rkekki.html rkekki]
| Ricardo Kekki
| 2007-11-16 17:49:47
|-
| [http://maemo.org/profile/view/rkg.html rkg]
| aaron gunther
| 2008-01-06 22:42:31
|-
| [http://maemo.org/profile/view/rkhalloran.html rkhalloran]
| Robert Halloran
| 2008-01-04 01:41:13
|-
| [http://maemo.org/profile/view/rkiechle.html rkiechle]
| Ryan Kiechle
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/rkimsp.html rkimsp]
| Kim Spindle
| 2007-07-17 17:40:42
|-
| [http://maemo.org/profile/view/rknowles.html rknowles]
| Rich Knowles
| 2007-11-16 17:46:31
|-
| [http://maemo.org/profile/view/rkonka.html rkonka]
| Raghu Konka
| 2008-04-14 18:41:04
|-
| [http://maemo.org/profile/view/rkpnaidu.html rkpnaidu]
| Ramakrishna Naidu Penikelapati
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/rkraus.html rkraus]
| Rick Kraus
| 2008-05-26 03:41:10
|-
| [http://maemo.org/profile/view/rkulik.html rkulik]
| Robert Kulik
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/rkymtnreb.html rkymtnreb]
| Dave Hopkins
| 2007-11-16 17:47:56
|-
| [http://maemo.org/profile/view/rlaager.html rlaager]
| Richard Laager
| 2007-10-30 17:40:35
|-
| [http://maemo.org/profile/view/rledford.html rledford]
| Rick Ledford
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/rleighto.html rleighto]
| Russell Leighton
| 2008-01-27 01:31:11
|-
| [http://maemo.org/profile/view/rleyba.html rleyba]
| robert leyba
| 2007-12-27 01:41:45
|-
| [http://maemo.org/profile/view/rliechty.html rliechty]
| Ron Liechty
| 2007-10-19 09:40:32
|-
| [http://maemo.org/profile/view/rlittler.html rlittler]
| Robert Littler
| 2008-05-29 19:41:15
|-
| [http://maemo.org/profile/view/rlougher.html rlougher]
| Robert Lougher
| 2007-12-11 16:25:22
|-
| [http://maemo.org/profile/view/rlumley.html rlumley]
| Ross Lumley
| 2007-06-13 16:49:24
|-
| [http://maemo.org/profile/view/rlvianna.html rlvianna]
| Roberto Vianna
| 2007-12-11 16:25:20
|-
| [http://maemo.org/profile/view/rlwva.html rlwva]
| Robert Watkins
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/rly.html rly]
| Rainer Lytz
| 2007-10-19 08:40:30
|-
| [http://maemo.org/profile/view/rmachenw.html rmachenw]
| Rybo ChenhyphenWing
| 2007-12-11 16:25:16
|-
| [http://maemo.org/profile/view/rmacmorran.html rmacmorran]
| Rob MacMorran
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/rmady.html rmady]
| nayef ahmed
| 2007-11-16 17:49:28
|-
| [http://maemo.org/profile/view/rmaldonado0.html rmaldonado0]
| Robert Maldondo
| 2008-01-24 01:32:19
|-
| [http://maemo.org/profile/view/rmancl.html rmancl]
| Robbie Mancl
| 2008-05-16 19:41:24
|-
| [http://maemo.org/profile/view/rmarino.html rmarino]
| rosario marino
| 2008-03-19 14:31:05
|-
| [http://maemo.org/profile/view/rmarquez.html rmarquez]
| Roy Marquez
| 2007-11-28 15:42:41
|-
| [http://maemo.org/profile/view/rmartin2819.html rmartin2819]
| Russell Martin
| 2007-10-20 13:40:31
|-
| [http://maemo.org/profile/view/rmathie.html rmathie]
| Robert Mathie
| 2007-12-24 18:41:25
|-
| [http://maemo.org/profile/view/rmatos.html rmatos]
| Ricardo Matos
| 2007-05-18 19:11:01
|-
| [http://maemo.org/profile/view/rmattb.html rmattb]
| Matt Barkau
| 2008-04-05 04:41:04
|-
| [http://maemo.org/profile/view/rmcgowan.html rmcgowan]
| Bob McGowan
| 2008-05-28 05:41:13
|-
| [http://maemo.org/profile/view/rmerritt.html rmerritt]
| Robert Merritt
| 2008-06-02 04:41:08
|-
| [http://maemo.org/profile/view/rmey.html rmey]
| renaud meynial
| 2007-05-18 19:11:25
|-
| [http://maemo.org/profile/view/rmheise.html rmheise]
| Rafael Heise
| 2007-10-26 18:40:38
|-
| [http://maemo.org/profile/view/rmiguel.html rmiguel]
| Rodrigo Miguel
| 2007-10-31 12:40:35
|-
| [http://maemo.org/profile/view/rmonk.html rmonk]
| RIchard Monk
| 2008-05-02 12:41:07
|-
| [http://maemo.org/profile/view/rmoravcik.html rmoravcik]
| Roman Moravcik
| 2008-03-01 11:30:59
|-
| [http://maemo.org/profile/view/rmorriso.html rmorriso]
| Roderick Morrison
| 2008-05-21 00:41:24
|-
| [http://maemo.org/profile/view/rmorrow.html rmorrow]
| Rick Morrow
| 2008-04-24 12:41:06
|-
| [http://maemo.org/profile/view/rmsilva.html rmsilva]
| Ricardo Marcelo
| 2007-05-29 09:30:41
|-
| [http://maemo.org/profile/view/rm_you.html rm_you]
| Adam Harwell
| 2008-01-18 17:33:05
|-
| [http://maemo.org/profile/view/rnagy.html rnagy]
| Randall Nagy
| 2007-11-15 07:55:51
|-
| [http://maemo.org/profile/view/rnalesnik.html rnalesnik]
| Robert Nalesnik
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/rnamile.html rnamile]
| John Doe
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/rnasby.html rnasby]
| Robert Nasby
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/rnc.html rnc]
| Ron Ciminero
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/rnfuller.html rnfuller]
| Randy Fuller
| 2008-02-29 18:31:02
|-
| [http://maemo.org/profile/view/rnight.html rnight]
| richard sotillio
| 2008-04-11 00:41:40
|-
| [http://maemo.org/profile/view/rntmn.html rntmn]
| Curtis Lackey
| 2008-01-28 11:31:26
|-
| [http://maemo.org/profile/view/ro88rodgers.html ro88rodgers]
| ross rodgers
| 2008-03-06 04:31:07
|-
| [http://maemo.org/profile/view/roachdaniel.html roachdaniel]
| Dan Roach
| 2007-05-18 19:10:39
|-
| [http://maemo.org/profile/view/road33.html road33]
| Adam Harrriman
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/roadburn.html roadburn]
| robert frick
| 2007-11-16 17:49:05
|-
| [http://maemo.org/profile/view/roadranger.html roadranger]
| Ron Kimball
| 2007-07-07 05:40:09
|-
| [http://maemo.org/profile/view/roadrunner12.html roadrunner12]
| Geraldine Korbel
| 2007-11-30 10:49:12
|-
| [http://maemo.org/profile/view/rob.html rob]
| Rob Hamilton
| 2007-10-18 18:40:29
|-
| [http://maemo.org/profile/view/robbh66.html robbh66]
| Rob BH
| 2007-07-07 03:40:15
|-
| [http://maemo.org/profile/view/robbiearm.html robbiearm]
| robbie armstrong
| 2007-05-18 19:12:35
|-
| [http://maemo.org/profile/view/robbyt.html robbyt]
| Rob Terhaar
| 2007-10-21 07:40:33
|-
| [http://maemo.org/profile/view/robcat.html robcat]
| Roberto Catini
| 2007-10-21 23:40:34
|-
| [http://maemo.org/profile/view/robchartier.html robchartier]
| Robert Chartier
| 2007-06-19 07:10:33
|-
| [http://maemo.org/profile/view/robert.html robert]
| Robert Escardo
| 2007-05-18 19:12:31
|-
| [http://maemo.org/profile/view/robert66.html robert66]
| rob warner
| 2008-01-07 17:41:09
|-
| [http://maemo.org/profile/view/robertkrowe.html robertkrowe]
| Robert Rowe
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/robertobrien.html robertobrien]
| Robert O'Brien
| 2007-07-10 03:40:16
|-
| [http://maemo.org/profile/view/robertopoda.html robertopoda]
| roberto poda
| 2008-03-23 09:31:02
|-
| [http://maemo.org/profile/view/roberto_de_leon.html roberto_de_leon]
| Roberto De Leon
| 2007-10-28 17:40:34
|-
| [http://maemo.org/profile/view/robertrahardja.html robertrahardja]
| Robert Rahardja
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/robertsnowden17.html robertsnowden17]
| Robert Snowden
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/robertsnowden18.html robertsnowden18]
| rob snow
| 2008-02-02 05:32:19
|-
| [http://maemo.org/profile/view/robertxperez.html robertxperez]
| Robert Perez
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/robert_m.html robert_m]
| Robert Moricz
| 2007-11-28 15:43:34
|-
| [http://maemo.org/profile/view/robewers.html robewers]
| Rob Ewers
| 2008-02-27 23:30:59
|-
| [http://maemo.org/profile/view/robgore.html robgore]
| Rob Gore
| 2007-05-18 19:10:43
|-
| [http://maemo.org/profile/view/robgort.html robgort]
| Robert Ware
| 2008-04-20 20:41:09
|-
| [http://maemo.org/profile/view/robheaton.html robheaton]
| Rob Heaton
| 2007-07-07 13:40:10
|-
| [http://maemo.org/profile/view/robilad.html robilad]
| Dalibor Topic
| 2007-10-21 13:40:30
|-
| [http://maemo.org/profile/view/robin.html robin]
| Robin C
| 2008-02-05 04:32:44
|-
| [http://maemo.org/profile/view/robingujjar.html robingujjar]
| Robin singh
| 2008-06-04 12:41:15
|-
| [http://maemo.org/profile/view/robisonjoel.html robisonjoel]
| Joel Robison
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/robjasey.html robjasey]
| Rob Cairns
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/roblevi.html roblevi]
| Robert Levine
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/roblynn.html roblynn]
| robert boucher
| 2007-11-16 17:48:26
|-
| [http://maemo.org/profile/view/robm.html robm]
| Rob McLean
| 2008-01-05 17:41:09
|-
| [http://maemo.org/profile/view/robmarchesini.html robmarchesini]
| roberto marchesini
| 2007-10-22 09:40:34
|-
| [http://maemo.org/profile/view/robmiller.html robmiller]
| rob miller
| 2007-11-16 17:46:25
|-
| [http://maemo.org/profile/view/robmtl007.html robmtl007]
| Robert Crecco
| 2007-07-07 22:40:10
|-
| [http://maemo.org/profile/view/robnoss.html robnoss]
| Robert Nossen
| 2007-11-30 10:49:36
|-
| [http://maemo.org/profile/view/robolange.html robolange]
| Robert Lange
| 2008-03-18 01:31:14
|-
| [http://maemo.org/profile/view/robot101.html robot101]
| Robert McQueen
| 2007-07-12 15:50:18
|-
| [http://maemo.org/profile/view/robreder.html robreder]
| Robert Reder
| 2007-12-30 12:41:00
|-
| [http://maemo.org/profile/view/robsta.html robsta]
| Robert Staudinger
| 2007-10-23 16:40:35
|-
| [http://maemo.org/profile/view/robtaylor.html robtaylor]
| Robert Taylor
| 2007-11-06 14:02:01
|-
| [http://maemo.org/profile/view/robur.html robur]
| Francisco Coelho
| 2008-02-21 11:30:59
|-
| [http://maemo.org/profile/view/robust.html robust]
| Yongjun Wu
| 2007-12-27 01:41:44
|-
| [http://maemo.org/profile/view/rob_figlabs.html rob_figlabs]
| Rob Charlton
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/rockhopper.html rockhopper]
| Christopher Sink
| 2007-06-19 07:10:34
|-
| [http://maemo.org/profile/view/rockito.html rockito]
| rocky jimenez
| 2007-12-29 21:41:18
|-
| [http://maemo.org/profile/view/rocksolid.html rocksolid]
| Rolly Hung
| 2007-12-22 15:41:33
|-
| [http://maemo.org/profile/view/rocky.html rocky]
| neto panyagua
| 2008-02-04 04:33:15
|-
| [http://maemo.org/profile/view/rod4l.html rod4l]
| israel rodriguez
| 2007-07-03 23:40:04
|-
| [http://maemo.org/profile/view/rodarvus.html rodarvus]
| Rodrigo Novo
| 2007-05-21 13:43:03
|-
| [http://maemo.org/profile/view/rodavelino.html rodavelino]
| Rodrigo Ramos
| 2008-03-01 02:32:41
|-
| [http://maemo.org/profile/view/roddy.html roddy]
| Roddy Shuler
| 2008-01-10 04:40:58
|-
| [http://maemo.org/profile/view/rodgerrm.html rodgerrm]
| Robert Rodger
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/rodneylfields.html rodneylfields]
| rodney fields
| 2007-11-16 17:48:32
|-
| [http://maemo.org/profile/view/rodraul.html rodraul]
| Raul Rodriguez
| 2008-02-24 06:31:00
|-
| [http://maemo.org/profile/view/rodrigofm04.html rodrigofm04]
| Rodrigo Melo
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/rodriguez1607.html rodriguez1607]
| Paul Rodriguez
| 2007-10-21 22:40:31
|-
| [http://maemo.org/profile/view/roel.html roel]
| Roel Groeneveld
| 2007-10-18 12:40:27
|-
| [http://maemo.org/profile/view/roger.html roger]
| Roger Lee
| 2008-06-09 03:31:11
|-
| [http://maemo.org/profile/view/rogerallinson.html rogerallinson]
| Roger Allinson
| 2007-11-05 14:02:13
|-
| [http://maemo.org/profile/view/rogeratm.html rogeratm]
| Roger Jensen
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/rogerdodger.html rogerdodger]
| n g
| 2007-10-30 11:40:36
|-
| [http://maemo.org/profile/view/rogergenehorton.html rogergenehorton]
| Roger Horton
| 2008-04-03 04:41:03
|-
| [http://maemo.org/profile/view/rogerp.html rogerp]
| Roger Pariseau
| 2007-07-03 00:40:09
|-
| [http://maemo.org/profile/view/rogershepherd.html rogershepherd]
| Roger Shepherd
| 2007-05-31 21:23:58
|-
| [http://maemo.org/profile/view/roggair.html roggair]
| roger seidel
| 2008-01-30 13:31:06
|-
| [http://maemo.org/profile/view/roguespear.html roguespear]
| rob hand
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/rohit.html rohit]
| Rohit Patil
| 2007-06-30 08:40:06
|-
| [http://maemo.org/profile/view/rohitiit05.html rohitiit05]
| Rohit Nair
| 2008-05-21 04:41:09
|-
| [http://maemo.org/profile/view/rojkov.html rojkov]
| Dmitry Rozhkov
| 2007-05-18 19:10:30
|-
| [http://maemo.org/profile/view/rokjos.html rokjos]
| joseph robledo
| 2008-05-01 21:41:09
|-
| [http://maemo.org/profile/view/rolandalistair.html rolandalistair]
| David Jones
| 2007-12-13 17:41:02
|-
| [http://maemo.org/profile/view/rolandpd.html rolandpd]
| Roland Domagalski
| 2007-10-20 22:40:35
|-
| [http://maemo.org/profile/view/rolea.html rolea]
| bison zhang
| 2008-02-18 22:31:00
|-
| [http://maemo.org/profile/view/rolf.html rolf]
| chris eden
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/rolfedh.html rolfedh]
| Rolfe Dlugy-Hegwer
| 2008-03-31 17:41:09
|-
| [http://maemo.org/profile/view/rolis2559.html rolis2559]
| roberto vargas
| 2008-02-28 07:31:02
|-
| [http://maemo.org/profile/view/rollervegan.html rollervegan]
| Johnathan Skinner
| 2008-05-20 19:41:09
|-
| [http://maemo.org/profile/view/roman139.html roman139]
| Roman Golsha
| 2008-06-10 12:31:13
|-
| [http://maemo.org/profile/view/romancito.html romancito]
| romain valicon
| 2008-04-06 17:41:06
|-
| [http://maemo.org/profile/view/romaxa.html romaxa]
| Oleg Romashin
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/romaxa_xz.html romaxa_xz]
| Oleg Romashin
| 2007-05-21 13:43:18
|-
| [http://maemo.org/profile/view/romekbo.html romekbo]
| romi bodi
| 2008-03-14 22:31:34
|-
| [http://maemo.org/profile/view/romracer.html romracer]
| Michael Orban
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/romx.html romx]
| Roman Hmelevsky
| 2007-05-18 19:11:55
|-
| [http://maemo.org/profile/view/ron1n.html ron1n]
| Salvatore Nuzzo
| 2007-05-18 19:12:00
|-
| [http://maemo.org/profile/view/ronadody.html ronadody]
| ranya el sherbiny
| 2007-11-16 17:47:59
|-
| [http://maemo.org/profile/view/ronald29x.html ronald29x]
| Ronald Stevanus
| 2008-04-17 06:41:09
|-
| [http://maemo.org/profile/view/rondavis.html rondavis]
| Ron Davis
| 2007-11-16 17:47:57
|-
| [http://maemo.org/profile/view/rone.html rone]
| Ron Ellenbecker
| 2007-11-16 17:47:43
|-
| [http://maemo.org/profile/view/ronh.html ronh]
| Ron Hickson
| 2007-12-11 16:24:57
|-
| [http://maemo.org/profile/view/ronjwilson.html ronjwilson]
| Ron Wilson
| 2007-11-05 20:21:21
|-
| [http://maemo.org/profile/view/ronojoy.html ronojoy]
| ronojoy dasgupta
| 2008-01-26 15:33:07
|-
| [http://maemo.org/profile/view/ronpatel2006.html ronpatel2006]
| Ron Patel
| 2007-10-31 07:40:35
|-
| [http://maemo.org/profile/view/ronzo.html ronzo]
| ron wim
| 2007-12-20 23:42:27
|-
| [http://maemo.org/profile/view/roopej.html roopej]
| Roope Järvinen
| 2008-01-28 14:32:16
|-
| [http://maemo.org/profile/view/rooster.html rooster]
| Brian Murphy
| 2007-12-22 19:41:46
|-
| [http://maemo.org/profile/view/rootbear1992.html rootbear1992]
| Christopher Atherton
| 2008-04-09 23:41:03
|-
| [http://maemo.org/profile/view/rootix.html rootix]
| Christophe GUILLOUX
| 2007-11-28 15:43:26
|-
| [http://maemo.org/profile/view/rootx.html rootx]
| Magnus Westerberg
| 2007-05-18 19:12:43
|-
| [http://maemo.org/profile/view/roqcky66.html roqcky66]
| roque vargas
| 2008-01-13 05:40:58
|-
| [http://maemo.org/profile/view/roque.html roque]
| vargas roque
| 2007-12-11 16:25:40
|-
| [http://maemo.org/profile/view/roquemv.html roquemv]
| Roque Versolato
| 2008-01-17 03:41:13
|-
| [http://maemo.org/profile/view/rory.html rory]
| Rory McCann
| 2007-10-21 12:40:34
|-
| [http://maemo.org/profile/view/rosemygirl.html rosemygirl]
| Michael Sitar
| 2007-05-23 05:29:36
|-
| [http://maemo.org/profile/view/roshini.html roshini]
| roshini b
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/roshweb.html roshweb]
| Roshan Revankar
| 2008-01-31 20:31:09
|-
| [http://maemo.org/profile/view/rossburton.html rossburton]
| Ross Burton
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/rossirossi.html rossirossi]
| Suzanne Rossi
| 2007-12-11 16:25:43
|-
| [http://maemo.org/profile/view/ross_giles.html ross_giles]
| ross giles
| 2008-01-27 10:31:07
|-
| [http://maemo.org/profile/view/rothiel.html rothiel]
| Julien Chazal
| 2007-10-25 15:40:36
|-
| [http://maemo.org/profile/view/rotox.html rotox]
| Jukka Roto
| 2008-03-10 17:30:59
|-
| [http://maemo.org/profile/view/roun.html roun]
| Igor Chaly
| 2007-07-09 19:40:31
|-
| [http://maemo.org/profile/view/rounder.html rounder]
| Maik Meyer
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/rounsavc.html rounsavc]
| cliff rounsavall
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/rouyerj.html rouyerj]
| Jeff Rouyer
| 2008-06-07 03:31:15
|-
| [http://maemo.org/profile/view/rowbodoc.html rowbodoc]
| bradley rowberry
| 2008-03-27 05:31:07
|-
| [http://maemo.org/profile/view/rowden2007.html rowden2007]
| graham rowden
| 2007-05-29 09:30:38
|-
| [http://maemo.org/profile/view/rowdy324.html rowdy324]
| Ryan Rosen
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/rowee.html rowee]
| Raul Alvarez
| 2008-01-30 03:31:14
|-
| [http://maemo.org/profile/view/rowelch.html rowelch]
| Roy Welch
| 2008-05-26 00:41:25
|-
| [http://maemo.org/profile/view/rowhitehouse.html rowhitehouse]
| Richard Whitehouse
| 2007-05-18 19:12:00
|-
| [http://maemo.org/profile/view/roxanne143.html roxanne143]
| roxanne mooney
| 2007-11-16 17:47:57
|-
| [http://maemo.org/profile/view/royce.html royce]
| Royce Freeman
| 2007-11-16 17:49:42
|-
| [http://maemo.org/profile/view/roydan.html roydan]
| Daniel Roy
| 2007-12-11 16:25:40
|-
| [http://maemo.org/profile/view/roylkay.html roylkay]
| Roy Kay
| 2007-05-23 05:29:36
|-
| [http://maemo.org/profile/view/royonok.html royonok]
| Roy O'Brien
| 2008-02-12 18:32:24
|-
| [http://maemo.org/profile/view/roy_anr.html roy_anr]
| Anirban Roy
| 2007-05-18 19:13:14
|-
| [http://maemo.org/profile/view/rpaneque.html rpaneque]
| robert paneque
| 2008-04-01 11:41:03
|-
| [http://maemo.org/profile/view/rpariseau.html rpariseau]
| Roger Pariseau
| 2008-01-26 02:31:50
|-
| [http://maemo.org/profile/view/rpeto.html rpeto]
| robert peto
| 2007-10-19 14:40:34
|-
| [http://maemo.org/profile/view/rpompeu.html rpompeu]
| roberto pompeu
| 2007-11-16 17:49:07
|-
| [http://maemo.org/profile/view/rpresley2008.html rpresley2008]
| Roy Presley
| 2007-11-28 15:43:25
|-
| [http://maemo.org/profile/view/rprince.html rprince]
| Rikki Prince
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/rps.html rps]
| Rupert Schlick
| 2008-02-03 13:31:27
|-
| [http://maemo.org/profile/view/rpsyke.html rpsyke]
| Romaryc PELISSIE
| 2007-05-18 19:14:13
|-
| [http://maemo.org/profile/view/rpurdie.html rpurdie]
| Richard Purdie
| 2007-11-30 10:49:30
|-
| [http://maemo.org/profile/view/rpurdie2.html rpurdie2]
| Richard Purdie
| 2007-11-30 10:49:30
|-
| [http://maemo.org/profile/view/rpwrogers.html rpwrogers]
| Paul Rogers
| 2008-04-20 17:41:18
|-
| [http://maemo.org/profile/view/rqb.html rqb]
| Randal Bird
| 2007-10-18 05:40:26
|-
| [http://maemo.org/profile/view/rrainist.html rrainist]
| Roope Rainisto
| 2007-05-18 19:11:13
|-
| [http://maemo.org/profile/view/rregos.html rregos]
| Robert Regos
| 2007-11-15 07:55:11
|-
| [http://maemo.org/profile/view/rristow.html rristow]
| Robin Ristow
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/rromppainen.html rromppainen]
| Rami Paramo
| 2007-05-18 19:10:24
|-
| [http://maemo.org/profile/view/rruphies.html rruphies]
| Hunter Ross
| 2008-01-27 06:31:33
|-
| [http://maemo.org/profile/view/rrwood.html rrwood]
| Roy Wood
| 2007-11-30 10:49:37
|-
| [http://maemo.org/profile/view/rs53.html rs53]
| Robert Spalding
| 2007-12-19 07:40:55
|-
| [http://maemo.org/profile/view/rsa66866.html rsa66866]
| Rajkumar Ramaswamy
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/rsalveti.html rsalveti]
| Ricardo Salveti
| 2008-05-17 22:41:08
|-
| [http://maemo.org/profile/view/rsarchet.html rsarchet]
| Raymond Sarchet
| 2008-05-18 16:41:11
|-
| [http://maemo.org/profile/view/rsbenloss.html rsbenloss]
| R Benloss
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/rscarano.html rscarano]
| Ruggero Scarano
| 2007-05-18 19:11:53
|-
| [http://maemo.org/profile/view/rscasas.html rscasas]
| Ramon scasas
| 2007-12-11 16:26:35
|-
| [http://maemo.org/profile/view/rscharf.html rscharf]
| Richard Scharf
| 2007-06-19 07:10:37
|-
| [http://maemo.org/profile/view/rsege.html rsege]
| ron sege
| 2007-05-18 19:11:09
|-
| [http://maemo.org/profile/view/rselley.html rselley]
| Ryan Selley
| 2008-02-26 00:30:58
|-
| [http://maemo.org/profile/view/rsgideon.html rsgideon]
| Robert Gideon
| 2008-01-13 22:41:56
|-
| [http://maemo.org/profile/view/rsimmons.html rsimmons]
| Rick Simmons
| 2007-06-19 07:10:07
|-
| [http://maemo.org/profile/view/rsmol.html rsmol]
| Robert Smol
| 2007-05-18 19:12:05
|-
| [http://maemo.org/profile/view/rsperberg.html rsperberg]
| Roger Sperberg
| 2007-05-21 13:43:03
|-
| [http://maemo.org/profile/view/rsr.html rsr]
| Richard Louis
| 2007-10-25 22:40:33
|-
| [http://maemo.org/profile/view/rstebner.html rstebner]
| Russ Stebner
| 2007-11-16 17:48:10
|-
| [http://maemo.org/profile/view/rstevens.html rstevens]
| chen fei
| 2007-06-20 02:40:24
|-
| [http://maemo.org/profile/view/rstone75.html rstone75]
| Juhana Hietala
| 2007-11-16 17:47:20
|-
| [http://maemo.org/profile/view/rstrathman.html rstrathman]
| randolph strathmann
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/rstuart.html rstuart]
| Ryan Stuart
| 2008-04-15 13:41:10
|-
| [http://maemo.org/profile/view/rsuhan2008.html rsuhan2008]
| Suhan Rajakumaran
| 2008-03-18 20:31:04
|-
| [http://maemo.org/profile/view/rsuplido.html rsuplido]
| Reggie Suplido
| 2007-05-18 19:13:39
|-
| [http://maemo.org/profile/view/rtabor.html rtabor]
| ryan tabor
| 2008-03-09 18:31:02
|-
| [http://maemo.org/profile/view/rtaneza.html rtaneza]
| Ronald Taneza
| 2007-11-28 15:43:42
|-
| [http://maemo.org/profile/view/rtcode.html rtcode]
| Robin Thunell
| 2007-11-15 07:55:56
|-
| [http://maemo.org/profile/view/rtnok.html rtnok]
| rr tt
| 2007-12-17 15:40:56
|-
| [http://maemo.org/profile/view/rtp.html rtp]
| Arnaud Patard
| 2007-05-18 19:11:11
|-
| [http://maemo.org/profile/view/rtrebs.html rtrebs]
| randall trebs
| 2008-05-01 04:41:03
|-
| [http://maemo.org/profile/view/rtrudel.html rtrudel]
| robin trudel
| 2008-02-05 13:31:51
|-
| [http://maemo.org/profile/view/rts.html rts]
| Raul Tammesalu
| 2008-01-30 13:31:06
|-
| [http://maemo.org/profile/view/rtseng.html rtseng]
| Richard Tseng
| 2007-11-16 17:49:10
|-
| [http://maemo.org/profile/view/ru00pa.html ru00pa]
| AME Aziz
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/rubenv.html rubenv]
| Ruben Vermeersch
| 2007-10-19 22:40:31
|-
| [http://maemo.org/profile/view/rubyyot.html rubyyot]
| Jamal Hansen
| 2007-05-18 19:13:30
|-
| [http://maemo.org/profile/view/ruda.html ruda]
| Rudá Moura
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/rudi.html rudi]
| Roland Marcus Rutschmann
| 2007-05-10 12:00:19
|-
| [http://maemo.org/profile/view/rudnev.html rudnev]
| Vladimir Rudnev
| 2007-11-28 15:43:21
|-
| [http://maemo.org/profile/view/rudolf.html rudolf]
| Rudolf Palosaari
| 2007-05-18 19:12:07
|-
| [http://maemo.org/profile/view/rudyvolkers.html rudyvolkers]
| Rudy Volkers
| 2007-05-18 19:14:17
|-
| [http://maemo.org/profile/view/ruemligen.html ruemligen]
| Rolf Weber
| 2008-05-27 20:41:15
|-
| [http://maemo.org/profile/view/rufimm.html rufimm]
| Rufino Monrové Morán
| 2008-02-06 18:52:15
|-
| [http://maemo.org/profile/view/rufus999.html rufus999]
| Timo Posemann
| 2007-06-28 08:40:06
|-
| [http://maemo.org/profile/view/rugek.html rugek]
| Rene Lengwinat
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/rugge.html rugge]
| Ruggero Scarano
| 2007-06-20 10:53:19
|-
| [http://maemo.org/profile/view/rugner.html rugner]
| Max Power
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/ruifarinha.html ruifarinha]
| rui farinha
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/ruilyn.html ruilyn]
| ruilin hao
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/ruiterbc.html ruiterbc]
| ruiter caldas
| 2008-03-24 19:31:03
|-
| [http://maemo.org/profile/view/runcnw.html runcnw]
| vince melamed
| 2007-05-18 19:12:13
|-
| [http://maemo.org/profile/view/rune.html rune]
| Jurgen Haan
| 2007-07-02 12:40:08
|-
| [http://maemo.org/profile/view/runuh.html runuh]
| Daniel Hall
| 2008-04-16 18:41:14
|-
| [http://maemo.org/profile/view/rusakko.html rusakko]
| Ari Rusakko
| 2008-06-02 07:42:11
|-
| [http://maemo.org/profile/view/rusb.html rusb]
| Ruslan Bryhljaev
| 2008-02-01 09:30:59
|-
| [http://maemo.org/profile/view/rusch.html rusch]
| Ruschelle Malabanan
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/ruslit.html ruslit]
| Rus Littman
| 2007-12-11 17:41:05
|-
| [http://maemo.org/profile/view/russchow.html russchow]
| Russell Chow
| 2007-10-15 19:40:26
|-
| [http://maemo.org/profile/view/russhdonova.html russhdonova]
| Russell Donovan
| 2008-03-06 06:31:04
|-
| [http://maemo.org/profile/view/russke.html russke]
| Russell Kern
| 2007-10-18 17:40:31
|-
| [http://maemo.org/profile/view/russose.html russose]
| Salvatore Russo
| 2007-10-19 15:40:31
|-
| [http://maemo.org/profile/view/russw_uk.html russw_uk]
| Russ Wood
| 2007-12-31 20:41:05
|-
| [http://maemo.org/profile/view/rusty-.html rusty-]
| Rusty Dash
| 2007-11-19 09:01:25
|-
| [http://maemo.org/profile/view/rustyhall.html rustyhall]
| rusty hall
| 2007-11-19 09:00:23
|-
| [http://maemo.org/profile/view/rutledge.html rutledge]
| Chris Rutledge
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/ruuppana.html ruuppana]
| pertti niemenmaa
| 2007-07-06 07:40:09
|-
| [http://maemo.org/profile/view/ruutana.html ruutana]
| Antti Huotarinen
| 2007-05-18 19:12:11
|-
| [http://maemo.org/profile/view/rvandiessen.html rvandiessen]
| Raymond van Diessen
| 2008-04-10 12:41:06
|-
| [http://maemo.org/profile/view/rvenkat.html rvenkat]
| Radha Venkat
| 2007-08-14 03:40:26
|-
| [http://maemo.org/profile/view/rvinge.html rvinge]
| Rasmus vinge
| 2008-01-08 14:40:57
|-
| [http://maemo.org/profile/view/rvk.html rvk]
| Valtteri Kokkoniemi
| 2007-05-18 19:13:27
|-
| [http://maemo.org/profile/view/rvolkers.html rvolkers]
| rudy volkers
| 2007-11-30 10:48:31
|-
| [http://maemo.org/profile/view/rwalford79.html rwalford79]
| roger alford
| 2007-07-06 23:40:16
|-
| [http://maemo.org/profile/view/rwatson452.html rwatson452]
| Rob Watson
| 2008-04-03 22:41:12
|-
| [http://maemo.org/profile/view/rwcrip.html rwcrip]
| Russ Replogle
| 2007-06-30 22:41:01
|-
| [http://maemo.org/profile/view/rwhitby.html rwhitby]
| Rod Whitby
| 2007-06-08 13:37:18
|-
| [http://maemo.org/profile/view/rwl.html rwl]
| Rich Lourette
| 2007-10-30 00:40:30
|-
| [http://maemo.org/profile/view/rwzeitgeist.html rwzeitgeist]
| Bob Peterson
| 2007-12-13 22:41:59
|-
| [http://maemo.org/profile/view/rx215.html rx215]
| Tino Passante
| 2007-11-16 17:48:01
|-
| [http://maemo.org/profile/view/ryan.html ryan]
| ryan mojaat
| 2007-06-11 06:11:08
|-
| [http://maemo.org/profile/view/ryanb.html ryanb]
| Ryan Balch
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/ryancnelson.html ryancnelson]
| ryan nelson
| 2007-05-29 09:30:41
|-
| [http://maemo.org/profile/view/ryanoctober.html ryanoctober]
| Ryan Knowles
| 2007-12-19 16:41:32
|-
| [http://maemo.org/profile/view/ryanshow.html ryanshow]
| Ryan Showalter
| 2008-03-01 09:31:01
|-
| [http://maemo.org/profile/view/ryanzilla.html ryanzilla]
| ryan hughes
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/ryan_h_mau.html ryan_h_mau]
| Ryan Mau
| 2007-11-16 17:46:32
|-
| [http://maemo.org/profile/view/rykkin.html rykkin]
| Martin Johannesson
| 2007-10-27 17:40:34
|-
| [http://maemo.org/profile/view/ryoohki.html ryoohki]
| Michael Cheselka
| 2007-11-15 07:55:47
|-
| [http://maemo.org/profile/view/s-kuehl.html s-kuehl]
| Sönke Kühl
| 2007-10-21 18:40:33
|-
| [http://maemo.org/profile/view/s0ccerk1ng.html s0ccerk1ng]
| debo fortuna
| 2008-02-24 18:31:02
|-
| [http://maemo.org/profile/view/s11d336b.html s11d336b]
| George Sapp
| 2007-05-23 05:29:47
|-
| [http://maemo.org/profile/view/s325ix.html s325ix]
| Sergey Kozlov
| 2008-05-31 17:41:11
|-
| [http://maemo.org/profile/view/s3m10s.html s3m10s]
| Mike Mahan
| 2007-11-19 09:01:24
|-
| [http://maemo.org/profile/view/saagaloo.html saagaloo]
| Paul Johnson
| 2007-05-18 19:12:51
|-
| [http://maemo.org/profile/view/saahir.html saahir]
| Umair Jamal
| 2007-11-16 17:47:58
|-
| [http://maemo.org/profile/view/saaib.html saaib]
| Urivan Flores
| 2007-08-04 10:40:19
|-
| [http://maemo.org/profile/view/saarelma.html saarelma]
| Risto Saarelma
| 2008-01-15 20:42:29
|-
| [http://maemo.org/profile/view/saask.html saask]
| Sami Askolin
| 2007-11-16 17:47:57
|-
| [http://maemo.org/profile/view/sabasi.html sabasi]
| sam abasi
| 2008-04-12 21:41:20
|-
| [http://maemo.org/profile/view/sabdullah.html sabdullah]
| Shafaq Abdullah
| 2007-10-18 12:40:27
|-
| [http://maemo.org/profile/view/sabeehali.html sabeehali]
| Muhammad Ali
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/sabgvb.html sabgvb]
| Pat Griffin
| 2007-11-16 17:47:30
|-
| [http://maemo.org/profile/view/sabio.html sabio]
| manuel de abreu
| 2008-02-10 17:33:24
|-
| [http://maemo.org/profile/view/sabolton.html sabolton]
| Scott Bolton
| 2007-12-31 15:41:05
|-
| [http://maemo.org/profile/view/sabrake.html sabrake]
| sarah brake
| 2007-06-30 03:40:09
|-
| [http://maemo.org/profile/view/sachin.html sachin]
| sachin ravi
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/sachin007.html sachin007]
| vamsi kanumuri
| 2008-03-31 18:41:11
|-
| [http://maemo.org/profile/view/sadam.html sadam]
| Adam Schreiber
| 2007-10-18 18:40:31
|-
| [http://maemo.org/profile/view/sadrul.html sadrul]
| Sadrul Chowdhury
| 2007-10-28 00:40:34
|-
| [http://maemo.org/profile/view/safemode.html safemode]
| serge fou
| 2008-01-19 10:31:13
|-
| [http://maemo.org/profile/view/sagetea.html sagetea]
| David Long
| 2008-03-29 13:31:07
|-
| [http://maemo.org/profile/view/sahbey.html sahbey]
| Erdal Koca
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/saidarao.html saidarao]
| saidu sundar
| 2007-12-13 08:40:57
|-
| [http://maemo.org/profile/view/saifrc.html saifrc]
| Saif Choudhury
| 2007-06-26 15:40:09
|-
| [http://maemo.org/profile/view/sailor164.html sailor164]
| Jozua Hattingh
| 2007-05-18 19:12:42
|-
| [http://maemo.org/profile/view/saitong.html saitong]
| Sai Tong
| 2007-11-16 17:47:30
|-
| [http://maemo.org/profile/view/saizfuentes.html saizfuentes]
| jose tevar
| 2007-12-30 23:41:05
|-
| [http://maemo.org/profile/view/sajid.html sajid]
| saj sh
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/sakamoto.html sakamoto]
| taka sakamoto
| 2008-01-17 22:31:23
|-
| [http://maemo.org/profile/view/saklotz.html saklotz]
| Stephen Klotz
| 2008-02-14 12:01:15
|-
| [http://maemo.org/profile/view/sakpas.html sakpas]
| Osakpamwan Imafidon
| 2007-05-18 19:12:43
|-
| [http://maemo.org/profile/view/salazarosvaldo.html salazarosvaldo]
| Osvaldo Andrés Salazar Díaz
| 2008-01-20 20:32:35
|-
| [http://maemo.org/profile/view/salbach.html salbach]
| Stefan Salbach
| 2007-11-16 17:49:07
|-
| [http://maemo.org/profile/view/salgado.html salgado]
| Guilherme Salgado
| 2007-10-19 13:40:37
|-
| [http://maemo.org/profile/view/salgood.html salgood]
| Salgood Sam
| 2008-02-14 12:01:15
|-
| [http://maemo.org/profile/view/salgua.html salgua]
| Salvatore Guarino
| 2007-02-01 13:20:06
|-
| [http://maemo.org/profile/view/salimma.html salimma]
| Michel Salim
| 2007-05-15 17:42:10
|-
| [http://maemo.org/profile/view/salinasv.html salinasv]
| Jorge Villaseñor Salinas
| 2007-10-31 01:40:38
|-
| [http://maemo.org/profile/view/salmonella.html salmonella]
| Marco Wierer
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/salomaocohen.html salomaocohen]
| Salomão Cohen
| 2008-03-25 21:32:22
|-
| [http://maemo.org/profile/view/salomon.html salomon]
| Benjamin Albert
| 2007-10-19 11:40:32
|-
| [http://maemo.org/profile/view/salukhan.html salukhan]
| salman khan
| 2008-05-04 18:41:15
|-
| [http://maemo.org/profile/view/salva.html salva]
| Salva Vallde
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/salvo_75.html salvo_75]
| Salvo Lombardo
| 2008-01-19 12:32:01
|-
| [http://maemo.org/profile/view/sam.html sam]
| thomas dirscherl
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/sam-c.html sam-c]
| Samuel Cohen
| 2007-12-11 16:25:02
|-
| [http://maemo.org/profile/view/sam-network.html sam-network]
| Sam Sulaimanov
| 2007-10-19 19:40:33
|-
| [http://maemo.org/profile/view/samalone.html samalone]
| Stuart Malone
| 2007-05-18 19:11:23
|-
| [http://maemo.org/profile/view/saman.html saman]
| saman sereshgi
| 2007-11-15 07:56:20
|-
| [http://maemo.org/profile/view/samana.html samana]
| Luc Samana
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/samandiriel.html samandiriel]
| Tyler Style
| 2007-05-18 19:11:57
|-
| [http://maemo.org/profile/view/samanna.html samanna]
| Saman A-Naeen
| 2007-10-23 16:40:35
|-
| [http://maemo.org/profile/view/samarth.html samarth]
| Samarth Gupta
| 2007-01-26 15:20:02
|-
| [http://maemo.org/profile/view/samarth17.html samarth17]
| Samarth Gupta
| 2008-01-05 00:40:57
|-
| [http://maemo.org/profile/view/samatva.html samatva]
| Samatva Peace
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/samdengler.html samdengler]
| Sam Dengler
| 2007-06-29 03:40:09
|-
| [http://maemo.org/profile/view/sameo.html sameo]
| Samuel Ortiz
| 2006-10-30 17:22:10
|-
| [http://maemo.org/profile/view/samgonzales.html samgonzales]
| sam gonzales
| 2008-03-20 07:31:00
|-
| [http://maemo.org/profile/view/samhain.html samhain]
| Nikolaus Klepp
| 2007-11-15 07:55:35
|-
| [http://maemo.org/profile/view/samikk.html samikk]
| Sami Keski-Kasari
| 2007-11-15 07:54:55
|-
| [http://maemo.org/profile/view/samikoskela.html samikoskela]
| sami koskela
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/samir74.html samir74]
| Samir Al-Mashshat
| 2007-11-05 18:40:42
|-
| [http://maemo.org/profile/view/samis.html samis]
| Sami Salerto
| 2007-06-11 11:02:21
|-
| [http://maemo.org/profile/view/sami_r.html sami_r]
| Sami Ronkainen
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/sammy.html sammy]
| sammy klaas
| 2007-10-16 14:40:21
|-
| [http://maemo.org/profile/view/samoth1977.html samoth1977]
| Thomas Schulte
| 2007-05-18 19:11:22
|-
| [http://maemo.org/profile/view/sampeson.html sampeson]
| Sami Pesonen
| 2007-11-15 12:40:43
|-
| [http://maemo.org/profile/view/sampie.html sampie]
| Sami Pietila
| 2007-10-22 10:40:34
|-
| [http://maemo.org/profile/view/sampo.html sampo]
| sampo mattila
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/sampp.html sampp]
| Sampo Savola
| 2007-09-05 09:40:22
|-
| [http://maemo.org/profile/view/sampson.html sampson]
| Sampson Sampson
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/sampsonb.html sampsonb]
| Sampson Brueher
| 2007-05-18 19:11:05
|-
| [http://maemo.org/profile/view/sampy.html sampy]
| sami kuivala
| 2008-05-21 18:41:13
|-
| [http://maemo.org/profile/view/samtastic.html samtastic]
| Samson Shupe
| 2008-02-03 20:33:34
|-
| [http://maemo.org/profile/view/samuel_kuan.html samuel_kuan]
| Samuel Kuan
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/samuko.html samuko]
| Sam Kohler
| 2007-12-27 16:42:27
|-
| [http://maemo.org/profile/view/samyeda.html samyeda]
| Sam Yeda
| 2007-11-16 17:49:34
|-
| [http://maemo.org/profile/view/sam_sayers.html sam_sayers]
| Sam Sayers
| 2008-03-18 20:31:06
|-
| [http://maemo.org/profile/view/sam_synack.html sam_synack]
| Samir Bellabes
| 2007-10-24 11:40:34
|-
| [http://maemo.org/profile/view/san.html san]
| Stefan Sayer
| 2007-11-03 14:40:38
|-
| [http://maemo.org/profile/view/sanchez.html sanchez]
| Sergio Sanchez
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/sandeep.html sandeep]
| Sandeep Puthanpurayil
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/sandesh.html sandesh]
| sandy sandy
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/sandlake.html sandlake]
| Mac Owens
| 2007-07-29 09:20:53
|-
| [http://maemo.org/profile/view/sandokan.html sandokan]
| l l
| 2007-12-11 16:26:28
|-
| [http://maemo.org/profile/view/sandokan40.html sandokan40]
| loic le scou
| 2008-02-14 12:01:19
|-
| [http://maemo.org/profile/view/sandy.html sandy]
| Sanford Zussman
| 2007-11-16 17:46:56
|-
| [http://maemo.org/profile/view/sandyqpr.html sandyqpr]
| sandy cochrane
| 2007-12-18 21:41:15
|-
| [http://maemo.org/profile/view/sangallimarco.html sangallimarco]
| marco sangalli
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/sanghino.html sanghino]
| Francesco Mori
| 2007-10-22 09:40:34
|-
| [http://maemo.org/profile/view/sangyim.html sangyim]
| Sang Yim
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/sanigar999.html sanigar999]
| richard sanigar
| 2007-10-14 21:40:27
|-
| [http://maemo.org/profile/view/sanji.html sanji]
| Victor Wennerholm
| 2007-11-16 17:49:04
|-
| [http://maemo.org/profile/view/sankarshan.html sankarshan]
| Sankarshan Mukhopadhyay
| 2007-10-22 09:40:34
|-
| [http://maemo.org/profile/view/sanraj83.html sanraj83]
| Rajesh Sankaran
| 2007-11-28 15:43:48
|-
| [http://maemo.org/profile/view/santi.html santi]
| Santiago Millán Conchello
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/santi90000.html santi90000]
| Santiago Recio Garcia
| 2008-04-25 08:41:05
|-
| [http://maemo.org/profile/view/santo.html santo]
| santo campisi
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/santux.html santux]
| santos deprie
| 2008-03-21 19:31:03
|-
| [http://maemo.org/profile/view/sanue.html sanue]
| Akira Sano
| 2007-10-29 08:40:28
|-
| [http://maemo.org/profile/view/sanurjim.html sanurjim]
| Jamess Agee
| 2007-07-05 13:40:09
|-
| [http://maemo.org/profile/view/sapien-red.html sapien-red]
| sapien red
| 2007-10-29 14:40:34
|-
| [http://maemo.org/profile/view/sapient.html sapient]
| andrew whyte
| 2007-05-18 19:11:03
|-
| [http://maemo.org/profile/view/sappho.html sappho]
| sappho sappho
| 2007-11-28 15:41:22
|-
| [http://maemo.org/profile/view/sarace.html sarace]
| Antonio Scopelliti
| 2007-10-22 07:40:35
|-
| [http://maemo.org/profile/view/saraedd.html saraedd]
| Sara Edd
| 2008-06-06 04:41:08
|-
| [http://maemo.org/profile/view/sarahliz.html sarahliz]
| sarah elizabeth
| 2007-05-18 19:12:10
|-
| [http://maemo.org/profile/view/sarahlynn0903.html sarahlynn0903]
| sarah dehaes
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/saravan78.html saravan78]
| saravan d
| 2007-05-18 19:13:23
|-
| [http://maemo.org/profile/view/sarev0k.html sarev0k]
|  
| 2007-05-18 19:13:08
|-
| [http://maemo.org/profile/view/sarguin.html sarguin]
| Stephane Arguin
| 2008-04-14 18:41:06
|-
| [http://maemo.org/profile/view/sarrdonik.html sarrdonik]
| Greg Harris
| 2008-01-08 16:41:00
|-
| [http://maemo.org/profile/view/sarthurs1.html sarthurs1]
| Stephen Arthurs
| 2008-01-12 03:41:06
|-
| [http://maemo.org/profile/view/sarunas.html sarunas]
| Sarunas V
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/sasha2000.html sasha2000]
| Alex Baumn
| 2007-06-28 06:40:07
|-
| [http://maemo.org/profile/view/sashk5.html sashk5]
| Sascha Kiesewetter
| 2007-09-16 09:40:27
|-
| [http://maemo.org/profile/view/sasubillis.html sasubillis]
| Sreenu Sasubilli
| 2008-05-21 08:41:08
|-
| [http://maemo.org/profile/view/satch.html satch]
| Stephen Lusk
| 2007-11-16 17:47:06
|-
| [http://maemo.org/profile/view/sateeshkavuri.html sateeshkavuri]
| Sateesh Kavuri
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/sathih.html sathih]
| sathia narayanan
| 2008-03-16 04:31:05
|-
| [http://maemo.org/profile/view/satmalau.html satmalau]
| Lee K.W.
| 2007-11-16 17:49:14
|-
| [http://maemo.org/profile/view/satotim.html satotim]
| yz lu
| 2008-05-06 06:41:07
|-
| [http://maemo.org/profile/view/saturley.html saturley]
| Peter Saturley
| 2008-01-17 01:41:38
|-
| [http://maemo.org/profile/view/saturn.html saturn]
| Christos Saturn
| 2007-05-18 19:10:57
|-
| [http://maemo.org/profile/view/satyadeep.html satyadeep]
| Satyadeep Garapaty
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/saumya.html saumya]
| saumya ray
| 2008-05-15 06:41:16
|-
| [http://maemo.org/profile/view/savagegus.html savagegus]
| Matthew Finlayson
| 2008-03-10 01:34:18
|-
| [http://maemo.org/profile/view/savago.html savago]
| Adenilson Cavalcanti
| 2008-03-04 15:31:02
|-
| [http://maemo.org/profile/view/saveli06.html saveli06]
| saveli06 saveli06
| 2007-05-18 19:11:45
|-
| [http://maemo.org/profile/view/saviq.html saviq]
| Michał Sawicz
| 2008-05-19 09:41:08
|-
| [http://maemo.org/profile/view/savirr.html savirr]
| Simon Virr
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/savor13.html savor13]
| miguel ortiz
| 2007-05-18 19:11:27
|-
| [http://maemo.org/profile/view/savvy.html savvy]
| sergey titov
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/saxon.html saxon]
| danilo spada
| 2008-03-22 17:31:00
|-
| [http://maemo.org/profile/view/saxsux.html saxsux]
| Josh Smith
| 2007-11-04 15:40:36
|-
| [http://maemo.org/profile/view/sayre05.html sayre05]
| Homer Sayre
| 2007-11-16 17:49:19
|-
| [http://maemo.org/profile/view/sayrer.html sayrer]
| Robert Sayre
| 2007-10-22 20:40:34
|-
| [http://maemo.org/profile/view/saywut.html saywut]
| Jeff Polson
| 2007-11-16 17:46:29
|-
| [http://maemo.org/profile/view/sazmy.html sazmy]
| Samer Azmy
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/sbalousek.html sbalousek]
| Steve Balousek
| 2007-11-16 17:48:16
|-
| [http://maemo.org/profile/view/sbambrough.html sbambrough]
| Scott Bambrough
| 2007-11-16 17:50:13
|-
| [http://maemo.org/profile/view/sbater.html sbater]
| Sidney Bater
| 2008-05-26 02:41:09
|-
| [http://maemo.org/profile/view/sbaturzio.html sbaturzio]
| Sbaturzio Cantina
| 2007-11-16 17:50:03
|-
| [http://maemo.org/profile/view/sbhw.html sbhw]
| sbhw soho
| 2008-02-05 13:31:57
|-
| [http://maemo.org/profile/view/sbiegalski.html sbiegalski]
| Seth Biegalski
| 2007-05-18 19:13:36
|-
| [http://maemo.org/profile/view/sblut.html sblut]
| SUSAN KORNBLUT
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/sbouchard25.html sbouchard25]
| Stephane Bouchard
| 2008-04-22 20:41:13
|-
| [http://maemo.org/profile/view/sbr.html sbr]
| sebastien barre
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/sbraccia.html sbraccia]
| carlo sbraccia
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/sbrutin.html sbrutin]
| Brutin Sylvain
| 2007-05-18 19:10:43
|-
| [http://maemo.org/profile/view/sc2.html sc2]
| Mikko Soikkala
| 2008-05-12 09:41:07
|-
| [http://maemo.org/profile/view/sc53.html sc53]
| Sarah Clement
| 2007-05-18 19:11:38
|-
| [http://maemo.org/profile/view/scabraal.html scabraal]
| San Cabraal
| 2007-11-01 21:40:38
|-
| [http://maemo.org/profile/view/scaldov.html scaldov]
| Miroslav Scaldov
| 2008-03-03 17:31:03
|-
| [http://maemo.org/profile/view/scar.html scar]
| thomas debarochez
| 2007-05-18 19:10:30
|-
| [http://maemo.org/profile/view/scarface76.html scarface76]
| andrew smith
| 2008-05-27 15:41:21
|-
| [http://maemo.org/profile/view/scarflash.html scarflash]
| shoumik pennathur
| 2008-03-20 21:31:02
|-
| [http://maemo.org/profile/view/scarica.html scarica]
| luigi giovanni
| 2007-11-16 17:47:19
|-
| [http://maemo.org/profile/view/scarlet.html scarlet]
| Caleb Moore
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/scarr.html scarr]
| Scott Carr
| 2007-10-18 22:40:30
|-
| [http://maemo.org/profile/view/scbauer.html scbauer]
| Scott Bauer
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/scegliau.html scegliau]
| Andrea Benedetto
| 2007-05-18 19:11:30
|-
| [http://maemo.org/profile/view/scheibenhonig.html scheibenhonig]
| Arne Balzer
| 2007-05-18 19:13:15
|-
| [http://maemo.org/profile/view/schepke.html schepke]
| Christian Schepke
| 2007-05-18 19:11:59
|-
| [http://maemo.org/profile/view/schiluve.html schiluve]
| Sudheer Kumar Chiluveri
| 2008-06-03 08:41:11
|-
| [http://maemo.org/profile/view/schlagi411.html schlagi411]
| Frank Schlageter
| 2007-05-18 19:11:38
|-
| [http://maemo.org/profile/view/schlegee.html schlegee]
| eric schlegel
| 2007-07-11 00:40:15
|-
| [http://maemo.org/profile/view/schlicke.html schlicke]
| Wolf Schlickenrieder
| 2007-05-18 19:11:10
|-
| [http://maemo.org/profile/view/schmidg.html schmidg]
| Guillaume Schmid
| 2007-05-18 19:14:25
|-
| [http://maemo.org/profile/view/schmidhead.html schmidhead]
| gregory schmid
| 2007-10-23 13:40:34
|-
| [http://maemo.org/profile/view/schneiter.html schneiter]
| Daniel Schneiter
| 2007-11-16 17:49:30
|-
| [http://maemo.org/profile/view/schrick.html schrick]
| Michael Schrick
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/schro36130.html schro36130]
| Dave Schroeder
| 2008-03-24 22:31:07
|-
| [http://maemo.org/profile/view/schroedt.html schroedt]
| Eric Schrödter
| 2007-10-24 20:40:35
|-
| [http://maemo.org/profile/view/schroncd.html schroncd]
| David Schronce
| 2007-07-03 20:40:16
|-
| [http://maemo.org/profile/view/schulerrw.html schulerrw]
| Robert Schuler
| 2008-02-16 14:31:36
|-
| [http://maemo.org/profile/view/schultzy.html schultzy]
| Michael Schultz
| 2008-02-18 05:30:58
|-
| [http://maemo.org/profile/view/schung2503.html schung2503]
| Sun Chung
| 2007-07-02 18:40:14
|-
| [http://maemo.org/profile/view/schweitz_ant.html schweitz_ant]
| Antoine Schweitzer-Chaput
| 2008-06-01 12:41:10
|-
| [http://maemo.org/profile/view/schwertfeger.html schwertfeger]
| Carsten Schwertfeger
| 2008-03-21 09:31:03
|-
| [http://maemo.org/profile/view/schwuk.html schwuk]
| David Murphy
| 2007-10-22 09:40:33
|-
| [http://maemo.org/profile/view/sciboy.html sciboy]
| Benjamin Green
| 2007-10-18 17:40:31
|-
| [http://maemo.org/profile/view/scl.html scl]
| Sam Lan
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/scl77.html scl77]
| Sam Lan
| 2007-01-09 11:00:05
|-
| [http://maemo.org/profile/view/sclark161.html sclark161]
| scott clark
| 2007-12-31 06:41:26
|-
| [http://maemo.org/profile/view/scndr.html scndr]
| rick amburgey
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/scoop.html scoop]
| Jason Sheehan
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/scoopc.html scoopc]
| Scoop Carlile
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/scorpiiannee.html scorpiiannee]
| Anne Chen
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/scorptig.html scorptig]
| Andre Raymond
| 2008-03-30 04:31:05
|-
| [http://maemo.org/profile/view/scott99tx.html scott99tx]
| Scott Pak
| 2008-04-22 02:41:10
|-
| [http://maemo.org/profile/view/scotta.html scotta]
| Scott Allen
| 2008-01-16 14:41:05
|-
| [http://maemo.org/profile/view/scottdocherty.html scottdocherty]
| scott docherty
| 2008-06-04 20:41:12
|-
| [http://maemo.org/profile/view/scotth.html scotth]
| scott hill
| 2008-05-01 06:41:05
|-
| [http://maemo.org/profile/view/scotthung.html scotthung]
| Scott hung
| 2007-12-27 05:41:00
|-
| [http://maemo.org/profile/view/scottish70.html scottish70]
| sergio botti
| 2007-10-23 14:40:35
|-
| [http://maemo.org/profile/view/scottlind.html scottlind]
| Scott Lind
| 2007-11-28 15:43:42
|-
| [http://maemo.org/profile/view/scottls.html scottls]
| Scott Samber
| 2008-05-04 17:41:20
|-
| [http://maemo.org/profile/view/scottplough.html scottplough]
| Scott Plough
| 2007-05-18 19:12:10
|-
| [http://maemo.org/profile/view/scottsummers198.html scottsummers198]
| Scott summers
| 2007-07-07 13:40:09
|-
| [http://maemo.org/profile/view/scottym.html scottym]
| Scott Mollica
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/scott_g.html scott_g]
| Scott Gentle
| 2007-11-30 10:49:35
|-
| [http://maemo.org/profile/view/scr.html scr]
| scr scr
| 2008-06-10 13:31:14
|-
| [http://maemo.org/profile/view/scrappy898.html scrappy898]
| Armando Gallardo
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/scratch.html scratch]
| Joseph Bernard
| 2007-11-16 17:48:16
|-
| [http://maemo.org/profile/view/scribleofbaja.html scribleofbaja]
| Jeremy Orris
| 2007-12-11 16:25:12
|-
| [http://maemo.org/profile/view/script.html script]
| S K
| 2007-12-13 09:40:09
|-
| [http://maemo.org/profile/view/scriptk.html scriptk]
| Michael A.
| 2007-12-13 09:40:43
|-
| [http://maemo.org/profile/view/scriptkiller.html scriptkiller]
| Michael Arndt
| 2007-05-18 19:10:43
|-
| [http://maemo.org/profile/view/scroocho7.html scroocho7]
| kartik jariwala
| 2007-05-18 19:11:55
|-
| [http://maemo.org/profile/view/scsi2.html scsi2]
| John Doe
| 2007-11-15 07:55:07
|-
| [http://maemo.org/profile/view/scsuh.html scsuh]
| Seung-chull suh
| 2007-05-29 09:30:40
|-
| [http://maemo.org/profile/view/sct.html sct]
| Sven Trochelmann
| 2008-01-06 11:40:53
|-
| [http://maemo.org/profile/view/sctbak.html sctbak]
| scott baker
| 2007-12-11 16:25:40
|-
| [http://maemo.org/profile/view/scubasmith.html scubasmith]
| Greg Smith
| 2008-04-18 16:41:14
|-
| [http://maemo.org/profile/view/scudderfish.html scudderfish]
| David Smith
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/scunacc.html scunacc]
| Derek Jones
| 2008-02-14 12:01:19
|-
| [http://maemo.org/profile/view/sdatha.html sdatha]
| sc at
| 2007-07-04 16:40:13
|-
| [http://maemo.org/profile/view/sdblair.html sdblair]
| Steve Blair
| 2007-07-03 02:40:10
|-
| [http://maemo.org/profile/view/sdeiross.html sdeiross]
| Stefano Dei Rossi
| 2007-10-22 09:40:35
|-
| [http://maemo.org/profile/view/sdhiman.html sdhiman]
| sanjiv dhiman
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/sdouba.html sdouba]
| Salim Douba
| 2007-06-08 13:37:15
|-
| [http://maemo.org/profile/view/sdtom.html sdtom]
| Thomas Fischer
| 2007-10-26 11:40:37
|-
| [http://maemo.org/profile/view/sdwozniak.html sdwozniak]
| Scott Wozniak
| 2007-04-05 15:25:36
|-
| [http://maemo.org/profile/view/seaar.html seaar]
| wang hao
| 2008-05-18 16:40:55
|-
| [http://maemo.org/profile/view/seaccong.html seaccong]
| seac cong
| 2008-01-25 07:31:01
|-
| [http://maemo.org/profile/view/sealfish.html sealfish]
| Edmond Seal
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/seamusdaithi.html seamusdaithi]
| James Pierce
| 2007-05-18 19:14:32
|-
| [http://maemo.org/profile/view/sean.html sean]
| Sean Flemming
| 2008-03-01 05:31:02
|-
| [http://maemo.org/profile/view/seandarcy.html seandarcy]
| sean darcy
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/seanm.html seanm]
| Sean McCleary
| 2006-12-29 20:10:02
|-
| [http://maemo.org/profile/view/seanpk.html seanpk]
| Sean Kennedy
| 2008-05-29 23:41:09
|-
| [http://maemo.org/profile/view/sean_phelan.html sean_phelan]
| Sean Phelan
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/seapharm.html seapharm]
| Joseph Lee
| 2007-12-21 00:41:04
|-
| [http://maemo.org/profile/view/seaquest.html seaquest]
| Oguz Yilmaz
| 2007-05-23 13:30:58
|-
| [http://maemo.org/profile/view/searook.html searook]
| Phil Hodgkins
| 2007-11-16 17:46:45
|-
| [http://maemo.org/profile/view/seatrout.html seatrout]
| Antero Lehtonen
| 2008-05-29 15:41:10
|-
| [http://maemo.org/profile/view/seattleweb.html seattleweb]
| Seattle Web
| 2007-11-16 17:46:37
|-
| [http://maemo.org/profile/view/sebage.html sebage]
| Sebastian Wright
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/sebandrea.html sebandrea]
| Andrea Sebastiani
| 2007-10-22 10:40:35
|-
| [http://maemo.org/profile/view/sebarto.html sebarto]
| Serafino Bartolomei
| 2007-10-24 18:40:34
|-
| [http://maemo.org/profile/view/sebas.html sebas]
| Sebastian Maemo
| 2007-05-18 19:11:35
|-
| [http://maemo.org/profile/view/sebasoft.html sebasoft]
| Sebastian Dieguez
| 2007-10-14 14:40:31
|-
| [http://maemo.org/profile/view/sebbarre.html sebbarre]
| Sebastien B
| 2007-05-31 07:50:41
|-
| [http://maemo.org/profile/view/sebbelese.html sebbelese]
| sebastien blaise
| 2008-05-04 21:41:07
|-
| [http://maemo.org/profile/view/sebjames.html sebjames]
| Seb James
| 2007-10-18 16:40:07
|-
| [http://maemo.org/profile/view/sebo.html sebo]
| Michal Seben
| 2007-10-18 23:40:29
|-
| [http://maemo.org/profile/view/sebssi.html sebssi]
| Mohamed BOUMIA
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/sector_9.html sector_9]
| Javier Quiles
| 2008-03-12 10:31:03
|-
| [http://maemo.org/profile/view/secure-hd.html secure-hd]
| Paul Tomoiaga
| 2008-05-12 03:41:15
|-
| [http://maemo.org/profile/view/securityinfos.html securityinfos]
| Antonio Stano
| 2007-10-28 11:47:49
|-
| [http://maemo.org/profile/view/seephirot.html seephirot]
| Alessio Molinaro
| 2007-11-15 07:55:42
|-
| [http://maemo.org/profile/view/seg.html seg]
| Steffen Elberg Godskesen
| 2007-06-12 15:40:44
|-
| [http://maemo.org/profile/view/segnale007.html segnale007]
| Pietro Sammarco
| 2007-10-22 09:40:32
|-
| [http://maemo.org/profile/view/segoave.html segoave]
| s visick
| 2008-03-18 00:31:02
|-
| [http://maemo.org/profile/view/segon.html segon]
| John Malik
| 2008-06-03 12:41:09
|-
| [http://maemo.org/profile/view/segphault.html segphault]
| Ryan Paul
| 2007-10-23 19:40:37
|-
| [http://maemo.org/profile/view/seifer2k.html seifer2k]
| Loris Loris
| 2008-03-20 17:31:06
|-
| [http://maemo.org/profile/view/seiluri.html seiluri]
| Toni Ruuhi
| 2007-05-18 19:11:06
|-
| [http://maemo.org/profile/view/seindal.html seindal]
| René Seindal
| 2007-05-18 19:11:32
|-
| [http://maemo.org/profile/view/seintexas.html seintexas]
| Shondra Eppinger
| 2007-11-16 17:47:07
|-
| [http://maemo.org/profile/view/seisei.html seisei]
| gigi pizza
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/sekarp.html sekarp]
| sekar poyyamozhi
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/sekimoto.html sekimoto]
| Nobuhiro SEKIMOTO
| 2007-06-12 12:42:30
|-
| [http://maemo.org/profile/view/selfish.html selfish]
| M Mahsun
| 2007-06-08 13:37:20
|-
| [http://maemo.org/profile/view/selfkidding.html selfkidding]
| Yaqi Wu
| 2008-01-15 07:41:02
|-
| [http://maemo.org/profile/view/sell01.html sell01]
| chunlee sai wui
| 2007-05-23 05:29:40
|-
| [http://maemo.org/profile/view/selwyn.html selwyn]
| Selwyn Wener
| 2008-02-21 07:30:57
|-
| [http://maemo.org/profile/view/semi.html semi]
| Semi Malinen
| 2007-05-18 19:11:20
|-
| [http://maemo.org/profile/view/semiprof.html semiprof]
| Rainer Schaupp
| 2007-10-22 14:40:33
|-
| [http://maemo.org/profile/view/senko.html senko]
| Senko Rasic
| 2007-10-19 13:40:33
|-
| [http://maemo.org/profile/view/senpar.html senpar]
| Dom Senna
| 2007-12-11 16:24:48
|-
| [http://maemo.org/profile/view/sensible.html sensible]
| justin roberti
| 2007-11-16 17:49:25
|-
| [http://maemo.org/profile/view/senuxis.html senuxis]
| Olatunji Gbadamosi
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/sephiroth45.html sephiroth45]
| justin ahlquist
| 2007-05-18 19:10:25
|-
| [http://maemo.org/profile/view/sepi.html sepi]
| Evgeni Gordejev
| 2007-11-15 07:55:38
|-
| [http://maemo.org/profile/view/seppel_1983.html seppel_1983]
| Sebastian Kettner
| 2007-11-16 17:49:21
|-
| [http://maemo.org/profile/view/serantes.html serantes]
| David Serantes Díaz
| 2007-10-19 13:40:34
|-
| [http://maemo.org/profile/view/serge.html serge]
| Siarhei Siamashka
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/serge207.html serge207]
| Sergio d
| 2007-06-08 13:37:17
|-
| [http://maemo.org/profile/view/sergeib.html sergeib]
| sergei belinis
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/sergen.html sergen]
| Serge Nikitin
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/sergio.html sergio]
| Sergio Luis
| 2007-05-18 19:11:27
|-
| [http://maemo.org/profile/view/sergiocdma.html sergiocdma]
| serg degtyarev
| 2008-04-04 21:41:04
|-
| [http://maemo.org/profile/view/sergiojg.html sergiojg]
| sergio gonzalez
| 2007-05-18 19:12:49
|-
| [http://maemo.org/profile/view/sergk79.html sergk79]
| Sergey Koltsov
| 2008-03-12 09:30:59
|-
| [http://maemo.org/profile/view/seriousjoker.html seriousjoker]
| Marco Paleari
| 2007-10-26 08:40:33
|-
| [http://maemo.org/profile/view/seriouswrong.html seriouswrong]
| Tony Chamberlain
| 2008-04-22 07:41:04
|-
| [http://maemo.org/profile/view/serlegar.html serlegar]
| serge legare
| 2008-03-11 02:31:07
|-
| [http://maemo.org/profile/view/serrano.html serrano]
| manuel serrano
| 2007-07-09 08:40:15
|-
| [http://maemo.org/profile/view/seshasai73.html seshasai73]
| Seshasai Kuchimanchi
| 2007-10-19 09:40:32
|-
| [http://maemo.org/profile/view/setanta.html setanta]
| Marcelo Lira
| 2007-05-18 19:13:39
|-
| [http://maemo.org/profile/view/sethcohn.html sethcohn]
| Seth Cohn
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/seth_slade.html seth_slade]
| James Madison
| 2007-12-17 01:41:20
|-
| [http://maemo.org/profile/view/seth__.html seth__]
| Luke Luks
| 2008-02-04 13:31:10
|-
| [http://maemo.org/profile/view/setupfax.html setupfax]
| dano won
| 2007-12-11 16:25:15
|-
| [http://maemo.org/profile/view/seurrep.html seurrep]
| Patrick Seurre
| 2008-03-12 15:31:20
|-
| [http://maemo.org/profile/view/sevarco.html sevarco]
| marc graber
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/seventhstream.html seventhstream]
| Jack Osborn
| 2007-09-06 17:40:11
|-
| [http://maemo.org/profile/view/sevo.html sevo]
| Sevo Stille
| 2007-12-12 23:41:08
|-
| [http://maemo.org/profile/view/sewilco.html sewilco]
| Scot Wilcoxon
| 2008-01-03 18:02:24
|-
| [http://maemo.org/profile/view/sexus6.html sexus6]
| Rick Dangerous
| 2008-02-18 17:30:58
|-
| [http://maemo.org/profile/view/sexyblack.html sexyblack]
| leslie williams
| 2007-11-30 10:49:29
|-
| [http://maemo.org/profile/view/seyed.html seyed]
| seyed djazayeri
| 2007-05-18 19:13:14
|-
| [http://maemo.org/profile/view/sfabriti.html sfabriti]
| Sampsa Fabritius
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/sfalardeau.html sfalardeau]
| Steve Falardeay
| 2008-02-25 20:31:07
|-
| [http://maemo.org/profile/view/sfdesignguru.html sfdesignguru]
| Bryan Oh
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/sfitzjava.html sfitzjava]
| Shawn Fitzgerald
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/sfizio78.html sfizio78]
| Daniele Mauri
| 2008-04-07 17:41:09
|-
| [http://maemo.org/profile/view/sflamuth.html sflamuth]
| Stan LaMuth
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/sfoan.html sfoan]
| J K
| 2007-06-25 22:40:09
|-
| [http://maemo.org/profile/view/sfolwell.html sfolwell]
| steve folwell
| 2007-11-16 17:46:29
|-
| [http://maemo.org/profile/view/sfseay.html sfseay]
| Stephen Seay
| 2007-06-29 21:40:18
|-
| [http://maemo.org/profile/view/sfutoma770.html sfutoma770]
| Stan Futoma
| 2007-11-16 17:46:22
|-
| [http://maemo.org/profile/view/sf_gadget_guy.html sf_gadget_guy]
| Clyne Acosta
| 2007-10-20 17:40:33
|-
| [http://maemo.org/profile/view/sg600924.html sg600924]
| richard monk
| 2007-11-16 17:47:06
|-
| [http://maemo.org/profile/view/sgarrity.html sgarrity]
| Steven Garrity
| 2007-07-23 15:40:17
|-
| [http://maemo.org/profile/view/sgbirch.html sgbirch]
| Stephen Birch
| 2007-05-18 19:11:10
|-
| [http://maemo.org/profile/view/sgdaniel.html sgdaniel]
| Sumner Daniel
| 2007-11-16 20:00:50
|-
| [http://maemo.org/profile/view/sgerry.html sgerry]
| gerry gerry
| 2008-02-12 11:31:03
|-
| [http://maemo.org/profile/view/sginer.html sginer]
| Stephane GINER
| 2007-10-19 13:40:37
|-
| [http://maemo.org/profile/view/sgoep2.html sgoep2]
| SANTIAGO PISTONE
| 2007-10-19 00:40:51
|-
| [http://maemo.org/profile/view/sgoerg.html sgoerg]
| Stefan Georg
| 2008-03-11 08:31:04
|-
| [http://maemo.org/profile/view/sgosnell.html sgosnell]
| Stan Gosnell
| 2007-11-28 15:43:35
|-
| [http://maemo.org/profile/view/sgranjoux.html sgranjoux]
| Sébastien Granjoux
| 2008-05-16 20:40:25
|-
| [http://maemo.org/profile/view/sgraybill1.html sgraybill1]
| Scott Graybill
| 2007-10-15 03:40:28
|-
| [http://maemo.org/profile/view/sgtoobie.html sgtoobie]
| Gary Cline
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/shackan.html shackan]
| Paolo Durante
| 2007-05-18 19:12:32
|-
| [http://maemo.org/profile/view/shadowdevil.html shadowdevil]
| david eaves
| 2008-01-19 12:32:00
|-
| [http://maemo.org/profile/view/shadowdevil629.html shadowdevil629]
| david eaves
| 2007-12-18 11:41:05
|-
| [http://maemo.org/profile/view/shadowdude1794.html shadowdude1794]
| Ben Reul
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/shadowfac.html shadowfac]
| Michael Rokicki
| 2008-01-19 08:30:59
|-
| [http://maemo.org/profile/view/shadowmouse.html shadowmouse]
| Elliot Francis
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/shadowrr.html shadowrr]
| Jean charles ORY
| 2007-05-18 19:11:13
|-
| [http://maemo.org/profile/view/shahzad.html shahzad]
| Shahzad Hussain
| 2008-05-12 16:41:11
|-
| [http://maemo.org/profile/view/shaikparvez.html shaikparvez]
| Shaik Parvez
| 2008-01-29 17:31:28
|-
| [http://maemo.org/profile/view/shaji.html shaji]
| Sharjeel Aziz
| 2007-12-11 16:26:16
|-
| [http://maemo.org/profile/view/shaka5.html shaka5]
| shaka yeeloy
| 2007-11-28 15:43:33
|-
| [http://maemo.org/profile/view/shakthimaan.html shakthimaan]
| Shakthi Kannan
| 2007-10-25 07:40:33
|-
| [http://maemo.org/profile/view/shakur84.html shakur84]
| Daniel Bobe
| 2007-09-13 18:40:24
|-
| [http://maemo.org/profile/view/shamanism.html shamanism]
| Stefan Dimov
| 2007-11-03 15:40:38
|-
| [http://maemo.org/profile/view/shambles.html shambles]
| paul campbell
| 2007-05-14 12:00:04
|-
| [http://maemo.org/profile/view/shane1970.html shane1970]
| Shane van Deventer
| 2007-10-17 01:40:27
|-
| [http://maemo.org/profile/view/shankoman.html shankoman]
| John Shanko
| 2007-11-16 17:46:31
|-
| [http://maemo.org/profile/view/shanu.html shanu]
| Shanker Balan
| 2008-05-12 15:41:13
|-
| [http://maemo.org/profile/view/shapirlex.html shapirlex]
| Alex Shapiro
| 2008-03-02 02:31:06
|-
| [http://maemo.org/profile/view/shapr.html shapr]
| Shae Erisson
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/shapsis.html shapsis]
| Sophia Hapsis
| 2008-03-09 19:31:02
|-
| [http://maemo.org/profile/view/share.html share]
| Frank Krentz
| 2007-05-18 19:13:35
|-
| [http://maemo.org/profile/view/sharkman18.html sharkman18]
| antonio villarreal
| 2007-12-11 16:25:16
|-
| [http://maemo.org/profile/view/sharpneli.html sharpneli]
| Teemu Virolainen
| 2007-05-30 11:20:50
|-
| [http://maemo.org/profile/view/sharpstick.html sharpstick]
| bill keiser
| 2007-12-11 16:25:07
|-
| [http://maemo.org/profile/view/shashank.html shashank]
| Shashank Garg
| 2007-11-16 17:47:48
|-
| [http://maemo.org/profile/view/shashikumar5.html shashikumar5]
| Shashi Kumar
| 2007-10-19 05:40:31
|-
| [http://maemo.org/profile/view/shashurup.html shashurup]
| George Kibardin
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/shaslam.html shaslam]
| Stuart Haslam
| 2008-02-10 00:31:07
|-
| [http://maemo.org/profile/view/shatadru.html shatadru]
| D Roy
| 2007-12-19 22:41:38
|-
| [http://maemo.org/profile/view/shawarma.html shawarma]
| Soren Hansen
| 2007-10-21 18:40:24
|-
| [http://maemo.org/profile/view/shawn5767.html shawn5767]
| shawn ward
| 2007-07-03 05:40:09
|-
| [http://maemo.org/profile/view/shawnc.html shawnc]
| shawn choo
| 2007-12-11 16:26:13
|-
| [http://maemo.org/profile/view/shawnostler.html shawnostler]
| Shawn Ostler
| 2008-03-10 22:31:08
|-
| [http://maemo.org/profile/view/shawn_dude.html shawn_dude]
| Shawn Hicks
| 2007-12-11 16:25:43
|-
| [http://maemo.org/profile/view/shawzborne.html shawzborne]
| Shawn Osborne
| 2008-02-11 18:31:33
|-
| [http://maemo.org/profile/view/shay.html shay]
| Shailesh Beesam
| 2008-01-25 20:33:10
|-
| [http://maemo.org/profile/view/shaynewithay.html shaynewithay]
| shayne frebert
| 2007-10-23 01:40:36
|-
| [http://maemo.org/profile/view/shayney.html shayney]
| shayne frebert
| 2007-11-16 17:48:18
|-
| [http://maemo.org/profile/view/sheez0wick3d.html sheez0wick3d]
| bjay payumo
| 2007-12-11 16:25:10
|-
| [http://maemo.org/profile/view/shegeek.html shegeek]
| Rhonda Perez
| 2007-10-21 19:40:32
|-
| [http://maemo.org/profile/view/sheli.html sheli]
| JOSE FERNANDEZ GONZALEZ
| 2007-05-18 19:13:07
|-
| [http://maemo.org/profile/view/shemminger.html shemminger]
| Stephen Hemminger
| 2007-10-20 16:40:31
|-
| [http://maemo.org/profile/view/shenhaoyu.html shenhaoyu]
| Haoyu shen
| 2008-01-31 14:34:13
|-
| [http://maemo.org/profile/view/shenki.html shenki]
| Joel Stanley
| 2007-10-19 13:40:34
|-
| [http://maemo.org/profile/view/shepard.html shepard]
| Tom-Wilkin Martinussen
| 2008-01-31 13:31:33
|-
| [http://maemo.org/profile/view/sherazi.html sherazi]
| james white
| 2008-01-26 02:31:49
|-
| [http://maemo.org/profile/view/sheridanfabian.html sheridanfabian]
| fabian rodriguez
| 2007-12-27 15:41:05
|-
| [http://maemo.org/profile/view/sherjeel.html sherjeel]
| ali khan
| 2007-11-28 15:43:24
|-
| [http://maemo.org/profile/view/shewan.html shewan]
| Shewan Yitayew
| 2008-03-04 00:31:07
|-
| [http://maemo.org/profile/view/shi11.html shi11]
| seth hillinger
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/shiftdb.html shiftdb]
| s hiftdb
| 2007-12-18 01:41:36
|-
| [http://maemo.org/profile/view/shihai.html shihai]
| shi hai
| 2007-05-29 09:30:41
|-
| [http://maemo.org/profile/view/shilbert.html shilbert]
| Sebastian Hilbert
| 2007-10-31 09:40:35
|-
| [http://maemo.org/profile/view/shimagoza.html shimagoza]
| b b
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/shimoza.html shimoza]
| Kirill Larin
| 2007-11-30 10:49:21
|-
| [http://maemo.org/profile/view/shinlin.html shinlin]
| shinlin kwan
| 2007-11-19 13:40:55
|-
| [http://maemo.org/profile/view/shirazworld.html shirazworld]
| Mr Cool
| 2008-03-08 02:31:09
|-
| [http://maemo.org/profile/view/shirazworldusf.html shirazworldusf]
| Mr Shiraz
| 2008-04-10 02:41:09
|-
| [http://maemo.org/profile/view/shiv.html shiv]
| Eswar Malla
| 2007-05-18 19:11:13
|-
| [http://maemo.org/profile/view/shivalwolf.html shivalwolf]
| Shival Wolf
| 2008-04-24 04:41:06
|-
| [http://maemo.org/profile/view/shivankannan.html shivankannan]
| Shivan Kannan
| 2007-11-16 17:48:24
|-
| [http://maemo.org/profile/view/shlomotaasan.html shlomotaasan]
| Shlomo Taasan
| 2007-12-20 20:42:16
|-
| [http://maemo.org/profile/view/shmoe4562.html shmoe4562]
| Dave Creer
| 2007-06-30 15:40:07
|-
| [http://maemo.org/profile/view/shmuma.html shmuma]
| Max Lapan
| 2007-08-01 18:40:18
|-
| [http://maemo.org/profile/view/shm_walera.html shm_walera]
| Valeriy Kashparenko
| 2008-02-27 11:31:00
|-
| [http://maemo.org/profile/view/sho.html sho]
| Eike Hein
| 2007-10-18 14:40:30
|-
| [http://maemo.org/profile/view/shocking.html shocking]
| Stephen Hocking
| 2007-06-22 05:40:07
|-
| [http://maemo.org/profile/view/shoegoo.html shoegoo]
| Garrett Hoxie
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/shogun.html shogun]
| James Goodwin
| 2007-11-15 07:56:11
|-
| [http://maemo.org/profile/view/shoguz78.html shoguz78]
| Peter Pan
| 2007-12-29 17:41:36
|-
| [http://maemo.org/profile/view/shoofly.html shoofly]
| P K
| 2007-05-18 19:12:07
|-
| [http://maemo.org/profile/view/shoosoo.html shoosoo]
| Erica Griffiths
| 2008-03-20 23:31:06
|-
| [http://maemo.org/profile/view/shoowty.html shoowty]
| Jason Yaffe
| 2007-11-16 17:47:53
|-
| [http://maemo.org/profile/view/showard.html showard]
| Stephen Howard
| 2007-05-18 19:13:29
|-
| [http://maemo.org/profile/view/showerless.html showerless]
| zhenyu wu
| 2007-11-06 02:40:41
|-
| [http://maemo.org/profile/view/shownoregrets.html shownoregrets]
| rob fors
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/shravantewary.html shravantewary]
| Shravan Tewary
| 2007-11-16 17:46:32
|-
| [http://maemo.org/profile/view/shredwheat.html shredwheat]
| Pete Shinners
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/shrix.html shrix]
| Shrikant K
| 2007-11-16 17:49:13
|-
| [http://maemo.org/profile/view/shtolik.html shtolik]
| Anatol Piachurkin
| 2008-02-05 09:31:18
|-
| [http://maemo.org/profile/view/shu.html shu]
| chris shuler
| 2007-11-28 15:43:24
|-
| [http://maemo.org/profile/view/shuaibshukur.html shuaibshukur]
| shuaib shukur
| 2007-10-22 13:40:33
|-
| [http://maemo.org/profile/view/shubhamsh.html shubhamsh]
| Shubham Sharma
| 2007-11-15 07:55:54
|-
| [http://maemo.org/profile/view/shubhangi.html shubhangi]
| Shubhangi Nikam
| 2007-11-28 15:42:55
|-
| [http://maemo.org/profile/view/shuggy_wuggy.html shuggy_wuggy]
| tom brown
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/shumit85.html shumit85]
| dkjei dijei
| 2008-01-28 03:31:18
|-
| [http://maemo.org/profile/view/shushu.html shushu]
| shushu inbar
| 2007-12-11 16:25:56
|-
| [http://maemo.org/profile/view/shutter007.html shutter007]
| Yuri Shiryaev
| 2008-03-01 16:31:01
|-
| [http://maemo.org/profile/view/shved.html shved]
| Sergei Andrei
| 2008-01-11 18:41:25
|-
| [http://maemo.org/profile/view/shylakaye.html shylakaye]
| shyla liebscher
| 2007-12-26 04:41:17
|-
| [http://maemo.org/profile/view/shymaemofantasy.html shymaemofantasy]
| J D
| 2008-03-12 20:31:29
|-
| [http://maemo.org/profile/view/siancu.html siancu]
| Stelian Iancu
| 2007-10-19 13:40:34
|-
| [http://maemo.org/profile/view/sic0048.html sic0048]
| Brian Simmons
| 2007-06-26 19:40:05
|-
| [http://maemo.org/profile/view/sidali2000.html sidali2000]
| SID ALI DAIMELLAH
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/siddhiq.html siddhiq]
| Siddhiq ahamed
| 2007-05-31 08:00:41
|-
| [http://maemo.org/profile/view/sidjuc.html sidjuc]
| Juan Julian Callegari
| 2008-03-31 18:41:12
|-
| [http://maemo.org/profile/view/sidrees.html sidrees]
| Syed Idris Shah
| 2008-04-02 10:41:06
|-
| [http://maemo.org/profile/view/siegbert.html siegbert]
| siegbert zöhrer
| 2007-12-12 18:40:53
|-
| [http://maemo.org/profile/view/sienk1977.html sienk1977]
| mike sienk
| 2007-11-16 17:46:25
|-
| [http://maemo.org/profile/view/sig.html sig]
| Igor Sapkov
| 2008-03-22 21:31:06
|-
| [http://maemo.org/profile/view/siggie.html siggie]
| sige opamp
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/sigitas.html sigitas]
| sigitas skirgaila
| 2008-03-18 23:31:12
|-
| [http://maemo.org/profile/view/sigmabruh.html sigmabruh]
| Aaron Whiteside
| 2007-05-18 19:13:40
|-
| [http://maemo.org/profile/view/sigmarkarl.html sigmarkarl]
| sigmar stefansson
| 2007-10-29 19:42:09
|-
| [http://maemo.org/profile/view/signum.html signum]
| Pentti Virtanen
| 2007-11-30 10:49:19
|-
| [http://maemo.org/profile/view/sigra.html sigra]
| Erik Sigra
| 2008-03-15 21:31:04
|-
| [http://maemo.org/profile/view/sileggio.html sileggio]
| Simone Leggio
| 2007-07-18 11:50:11
|-
| [http://maemo.org/profile/view/silent33.html silent33]
| erol ercan
| 2008-06-09 11:31:11
|-
| [http://maemo.org/profile/view/silentmak.html silentmak]
| silentmak silentmak
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/silkk01.html silkk01]
| Jason Crist
| 2007-11-16 17:47:34
|-
| [http://maemo.org/profile/view/silpol.html silpol]
| Andriy Tymchenko
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/silv3r.html silv3r]
| P parker
| 2007-12-11 16:25:52
|-
| [http://maemo.org/profile/view/silvan.html silvan]
| Silvan Marco Fin
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/silver84000.html silver84000]
| jl silver
| 2007-12-11 16:25:04
|-
| [http://maemo.org/profile/view/silverhawk755.html silverhawk755]
| Tony Crutchfield
| 2008-01-04 17:54:02
|-
| [http://maemo.org/profile/view/silviocaracas.html silviocaracas]
| Silvio Moura Jr.
| 2008-04-26 11:41:06
|-
| [http://maemo.org/profile/view/silviuviju.html silviuviju]
| silviu viju
| 2007-05-18 19:12:30
|-
| [http://maemo.org/profile/view/simark.html simark]
| Simon Mark
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/simbe.html simbe]
| Jaakko Laihonen
| 2007-10-29 10:40:37
|-
| [http://maemo.org/profile/view/simbimbo.html simbimbo]
| Steven Imbimbo
| 2007-05-18 19:11:04
|-
| [http://maemo.org/profile/view/simboss.html simboss]
| Simone Giannecchini
| 2008-06-04 00:41:25
|-
| [http://maemo.org/profile/view/simineon.html simineon]
| Thomas Schock
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/simogerard.html simogerard]
| Simon Gerry
| 2007-12-11 16:25:25
|-
| [http://maemo.org/profile/view/simon.html simon]
| Simon Budig
| 2007-05-18 19:11:00
|-
| [http://maemo.org/profile/view/simon80.html simon80]
| Simon R
| 2007-11-16 17:49:43
|-
| [http://maemo.org/profile/view/simonebrunozzi.html simonebrunozzi]
| simone brunozzi
| 2007-10-22 08:40:36
|-
| [http://maemo.org/profile/view/simon_.html simon_]
| Simon Opelt
| 2007-10-18 23:40:29
|-
| [http://maemo.org/profile/view/simosx.html simosx]
| Simos Xenitellis
| 2007-11-28 15:43:26
|-
| [http://maemo.org/profile/view/simo_7.html simo_7]
| Simone Venturini
| 2007-10-28 17:40:35
|-
| [http://maemo.org/profile/view/simpson2nd.html simpson2nd]
| zi bin xu
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/simzer.html simzer]
| Simon Laszlo
| 2007-10-21 08:40:29
|-
| [http://maemo.org/profile/view/sinad.html sinad]
| Sebastien Bonnegent
| 2007-12-11 16:25:42
|-
| [http://maemo.org/profile/view/sinclair.html sinclair]
| David Sinclair
| 2007-11-15 07:56:21
|-
| [http://maemo.org/profile/view/singlemalt.html singlemalt]
| Chuck Campbell
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/singlestub.html singlestub]
| Younghun Kim
| 2007-05-18 19:13:22
|-
| [http://maemo.org/profile/view/sinichi.html sinichi]
| Francis Bayaya
| 2007-12-14 22:40:52
|-
| [http://maemo.org/profile/view/sinosudial.html sinosudial]
| steven m
| 2007-11-15 07:55:51
|-
| [http://maemo.org/profile/view/sinpoto.html sinpoto]
| Jorge Guiñez
| 2007-12-11 16:25:22
|-
| [http://maemo.org/profile/view/sinxr8088.html sinxr8088]
| Max Nguyen
| 2007-07-03 19:40:15
|-
| [http://maemo.org/profile/view/sinyoricky.html sinyoricky]
| lie siang
| 2007-12-28 04:40:55
|-
| [http://maemo.org/profile/view/sipilaju.html sipilaju]
| Juri Sipilä
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/sipphone.html sipphone]
| Matthew Kardos
| 2007-05-18 19:11:45
|-
| [http://maemo.org/profile/view/sircuus.html sircuus]
| cedric pouydebat
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/sirhunter2010.html sirhunter2010]
| Hunter X
| 2007-11-06 01:41:00
|-
| [http://maemo.org/profile/view/sirishak.html sirishak]
| Sirisha Kunapareddy
| 2007-10-30 12:40:37
|-
| [http://maemo.org/profile/view/sirji.html sirji]
| Bharat Sharma
| 2007-07-10 02:40:12
|-
| [http://maemo.org/profile/view/sirjuanlu.html sirjuanlu]
| Juan Luis Prieto
| 2007-10-22 15:40:35
|-
| [http://maemo.org/profile/view/sirlinux.html sirlinux]
| Sir Linux
| 2007-06-28 02:40:07
|-
| [http://maemo.org/profile/view/sirma_siang.html sirma_siang]
| Marc SIRY
| 2007-11-16 17:49:37
|-
| [http://maemo.org/profile/view/sirtoozee.html sirtoozee]
| Xiang Zhai
| 2008-04-17 06:41:07
|-
| [http://maemo.org/profile/view/sir_iceman.html sir_iceman]
| ericson fernandez
| 2007-10-28 17:40:36
|-
| [http://maemo.org/profile/view/sismi.html sismi]
| David Terni
| 2007-10-22 14:40:33
|-
| [http://maemo.org/profile/view/sisofo76.html sisofo76]
| mario iannucci
| 2007-05-18 19:11:14
|-
| [http://maemo.org/profile/view/sittizu.html sittizu]
| sittizu uno
| 2008-01-23 19:02:29
|-
| [http://maemo.org/profile/view/siva.html siva]
| venkata siva r gandi
| 2007-10-25 01:40:41
|-
| [http://maemo.org/profile/view/siva_gandi.html siva_gandi]
| Siva Gandi
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/sixgen.html sixgen]
| may lee
| 2008-01-12 04:41:32
|-
| [http://maemo.org/profile/view/sixtyfive.html sixtyfive]
| Kai Bürks
| 2007-05-18 19:11:47
|-
| [http://maemo.org/profile/view/sixvoz.html sixvoz]
| fco cor
| 2008-03-02 02:31:07
|-
| [http://maemo.org/profile/view/siyavush.html siyavush]
| siyavush teymurov
| 2008-04-10 19:41:10
|-
| [http://maemo.org/profile/view/sjagan.html sjagan]
| Jagan satagopan
| 2008-03-18 18:31:08
|-
| [http://maemo.org/profile/view/sjatkins.html sjatkins]
| Samantha Atkins
| 2007-10-19 02:40:30
|-
| [http://maemo.org/profile/view/sjbruening.html sjbruening]
| Steven Bruening
| 2007-07-03 16:40:10
|-
| [http://maemo.org/profile/view/sjenkins.html sjenkins]
| Steven Jenkins
| 2008-01-04 19:40:58
|-
| [http://maemo.org/profile/view/sjgadsby.html sjgadsby]
| Stephen Gadsby
| 2007-10-19 18:40:35
|-
| [http://maemo.org/profile/view/sjgould.html sjgould]
| Steve Gould
| 2008-01-01 11:40:57
|-
| [http://maemo.org/profile/view/sjmartin.html sjmartin]
| Stephen Martin
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/sjmelhuish.html sjmelhuish]
| Simon Melhuish
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/sjoblom17.html sjoblom17]
| james sjoblom
| 2007-05-18 19:12:34
|-
| [http://maemo.org/profile/view/sjoerd.html sjoerd]
| Sjoerd Simons
| 2007-10-23 10:40:54
|-
| [http://maemo.org/profile/view/sjpenn.html sjpenn]
| Steve Penn
| 2007-11-16 17:47:19
|-
| [http://maemo.org/profile/view/sjsclv.html sjsclv]
| Stan Stacey
| 2007-11-05 03:40:39
|-
| [http://maemo.org/profile/view/sjuogor.html sjuogor]
| Osvaldo Garcia
| 2008-02-26 14:31:07
|-
| [http://maemo.org/profile/view/sk1025.html sk1025]
| Scott Klein
| 2008-02-02 06:31:51
|-
| [http://maemo.org/profile/view/sk8erkid0321.html sk8erkid0321]
| greg simmons
| 2008-01-19 19:31:45
|-
| [http://maemo.org/profile/view/ska8erforever.html ska8erforever]
| Kyle McKnight
| 2007-11-16 17:47:48
|-
| [http://maemo.org/profile/view/skallen.html skallen]
| Anders Karlsson
| 2007-05-18 19:12:30
|-
| [http://maemo.org/profile/view/skande.html skande]
| Riccardo Scandellari
| 2007-11-04 23:41:08
|-
| [http://maemo.org/profile/view/skanky.html skanky]
| Stephen Page
| 2007-11-16 17:46:40
|-
| [http://maemo.org/profile/view/skearon.html skearon]
| Stephen Kearon
| 2007-11-16 17:47:06
|-
| [http://maemo.org/profile/view/skeezer65134.html skeezer65134]
| J F
| 2007-12-16 03:40:54
|-
| [http://maemo.org/profile/view/skelso.html skelso]
| Scott Kelso
| 2007-10-23 21:40:36
|-
| [http://maemo.org/profile/view/skemie.html skemie]
| Georg Schmidt
| 2007-10-23 09:40:33
|-
| [http://maemo.org/profile/view/skenn_ie.html skenn_ie]
| Shane Kennedy
| 2007-05-18 19:12:26
|-
| [http://maemo.org/profile/view/skery.html skery]
| kolia markel
| 2007-10-25 09:40:32
|-
| [http://maemo.org/profile/view/sketch-foo.html sketch-foo]
| Anna Xambo
| 2007-10-28 21:40:38
|-
| [http://maemo.org/profile/view/skewpar.html skewpar]
| David Tran
| 2007-11-30 10:49:36
|-
| [http://maemo.org/profile/view/skibur.html skibur]
| Juan Sauceda
| 2007-11-05 00:40:30
|-
| [http://maemo.org/profile/view/skieps.html skieps]
| antanas jo
| 2007-11-15 07:55:50
|-
| [http://maemo.org/profile/view/skinny.html skinny]
| Scott Henning
| 2007-06-20 16:40:09
|-
| [http://maemo.org/profile/view/skion.html skion]
| Pieter Ennes
| 2008-02-14 22:31:06
|-
| [http://maemo.org/profile/view/skipper3k.html skipper3k]
| Luka Kac
| 2007-10-22 14:40:33
|-
| [http://maemo.org/profile/view/skirienko.html skirienko]
| Sergey Kirienko
| 2007-11-15 07:56:10
|-
| [http://maemo.org/profile/view/skler.html skler]
| Mauro Foti
| 2007-05-18 19:10:35
|-
| [http://maemo.org/profile/view/skloustin.html skloustin]
| Scott Kloustin
| 2007-10-18 17:40:30
|-
| [http://maemo.org/profile/view/skohlsmith.html skohlsmith]
| Shawn Kohlsmith
| 2007-05-18 19:12:23
|-
| [http://maemo.org/profile/view/skorianez.html skorianez]
| Leonardo Skorianez
| 2007-05-18 19:11:33
|-
| [http://maemo.org/profile/view/skr.html skr]
| Konrad Riedel
| 2007-05-18 19:10:31
|-
| [http://maemo.org/profile/view/skreddymd.html skreddymd]
| s,k, reddy
| 2007-07-09 20:40:16
|-
| [http://maemo.org/profile/view/skret.html skret]
| Daniel Skret
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/skumar_rao.html skumar_rao]
| Sunil Kumar
| 2007-10-19 06:40:28
|-
| [http://maemo.org/profile/view/skuse.html skuse]
| mark skuse
| 2008-01-30 03:31:15
|-
| [http://maemo.org/profile/view/skye.html skye]
| wendy ri
| 2007-11-16 17:48:10
|-
| [http://maemo.org/profile/view/skyhell.html skyhell]
| Johann Konrad
| 2007-05-18 19:13:27
|-
| [http://maemo.org/profile/view/skyhigh.html skyhigh]
| Yang yongyou
| 2007-11-16 17:49:27
|-
| [http://maemo.org/profile/view/skyhusker.html skyhusker]
| Alberto García Hierro
| 2007-05-18 19:11:14
|-
| [http://maemo.org/profile/view/skyline.html skyline]
| lingjiang zeng
| 2008-01-20 08:31:15
|-
| [http://maemo.org/profile/view/skyostil.html skyostil]
| Sami Kyöstilä
| 2008-05-15 07:41:08
|-
| [http://maemo.org/profile/view/skytracker.html skytracker]
| Joseph Brilliantono
| 2008-05-29 03:41:10
|-
| [http://maemo.org/profile/view/skywise.html skywise]
| Scott Ellerman
| 2007-05-18 19:11:08
|-
| [http://maemo.org/profile/view/sky_kiss.html sky_kiss]
| li yong
| 2008-03-20 09:31:06
|-
| [http://maemo.org/profile/view/slack4bob.html slack4bob]
| Michael Barretta
| 2008-05-18 15:41:09
|-
| [http://maemo.org/profile/view/sladen.html sladen]
| Paul Sladen
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/slakker.html slakker]
| Tyler Slak
| 2007-07-03 23:40:14
|-
| [http://maemo.org/profile/view/slamp.html slamp]
| Steve Lampke
| 2007-07-07 20:40:10
|-
| [http://maemo.org/profile/view/slandier.html slandier]
| Stephane Landier
| 2007-05-29 09:30:38
|-
| [http://maemo.org/profile/view/slapdash.html slapdash]
| peter hutchinson
| 2007-11-28 17:21:38
|-
| [http://maemo.org/profile/view/slapdash243.html slapdash243]
| peter hutchinson
| 2007-11-30 10:49:01
|-
| [http://maemo.org/profile/view/slapin.html slapin]
| Sergey Lapin
| 2007-10-19 10:40:37
|-
| [http://maemo.org/profile/view/slarty101.html slarty101]
| Simon west
| 2007-11-16 17:47:36
|-
| [http://maemo.org/profile/view/slavatasha.html slavatasha]
| Slava Markov
| 2007-10-29 15:40:36
|-
| [http://maemo.org/profile/view/slavoosh.html slavoosh]
| Slawek Liszewski
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/slayd.html slayd]
| Vik Kriva
| 2007-10-19 14:40:34
|-
| [http://maemo.org/profile/view/sledge.html sledge]
| Steffen Holzwarth
| 2007-11-28 15:43:42
|-
| [http://maemo.org/profile/view/sleep7.html sleep7]
| Sam Fenner
| 2007-11-15 07:56:19
|-
| [http://maemo.org/profile/view/sleeper3.html sleeper3]
| Quansheng Song
| 2007-11-16 17:49:39
|-
| [http://maemo.org/profile/view/slehtola.html slehtola]
| Sami Lehtola
| 2007-12-28 20:41:31
|-
| [http://maemo.org/profile/view/slettnes.html slettnes]
| Tor Slettnes
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/sli.html sli]
| Sami Liedes
| 2007-10-24 23:40:27
|-
| [http://maemo.org/profile/view/slickninja.html slickninja]
| Jonathan Robertson
| 2008-06-09 22:31:16
|-
| [http://maemo.org/profile/view/slikor.html slikor]
| Seth Nelson
| 2007-05-18 19:11:00
|-
| [http://maemo.org/profile/view/slim.html slim]
| Tim Mueller
| 2007-11-30 10:49:36
|-
| [http://maemo.org/profile/view/slimb.html slimb]
| Steve Lim
| 2007-11-16 17:47:44
|-
| [http://maemo.org/profile/view/slint.html slint]
| Johannes Höhn
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/slippmann.html slippmann]
| S Lip
| 2008-01-11 19:41:27
|-
| [http://maemo.org/profile/view/slk.html slk]
| Saad Liaquat
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/slntninja.html slntninja]
| Nick L.
| 2007-06-25 01:40:07
|-
| [http://maemo.org/profile/view/sloan.html sloan]
| Arin Bennett
| 2007-11-16 17:47:43
|-
| [http://maemo.org/profile/view/slonnik.html slonnik]
| slonnik slonnik
| 2007-12-17 12:40:51
|-
| [http://maemo.org/profile/view/slonopotamus.html slonopotamus]
| Marat Radchenko
| 2008-02-04 12:31:10
|-
| [http://maemo.org/profile/view/slooftsuj.html slooftsuj]
| Ross Kennedy
| 2007-11-16 17:48:26
|-
| [http://maemo.org/profile/view/sloth.html sloth]
| Niklas Therning
| 2007-07-08 12:40:27
|-
| [http://maemo.org/profile/view/slow.html slow]
| Julio Biason
| 2007-05-31 07:30:38
|-
| [http://maemo.org/profile/view/slow68.html slow68]
| Stefan Lowe
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/slowbass.html slowbass]
| anita bonghit
| 2007-06-08 13:37:20
|-
| [http://maemo.org/profile/view/slowdog.html slowdog]
| Wei Yeh
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/slscoach.html slscoach]
| Chuch Blocher
| 2008-01-25 21:41:42
|-
| [http://maemo.org/profile/view/slutec18.html slutec18]
| Stefano Lucchetti
| 2007-11-16 17:46:56
|-
| [http://maemo.org/profile/view/slvr32.html slvr32]
| Jason Byrne
| 2008-01-26 18:33:14
|-
| [http://maemo.org/profile/view/slyboy.html slyboy]
| David Porter
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/slyer.html slyer]
| Matkovskiy Alexander
| 2007-12-11 16:25:02
|-
| [http://maemo.org/profile/view/slyty71.html slyty71]
| Tyler Vignoli
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/sm3mo.html sm3mo]
| Alessio Devanna
| 2007-10-27 12:40:35
|-
| [http://maemo.org/profile/view/sm777c.html sm777c]
| Stephan Courter
| 2007-12-26 02:41:23
|-
| [http://maemo.org/profile/view/smabille.html smabille]
| Stephane Mabille
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/smabres.html smabres]
| Sergio Mabres
| 2007-10-18 22:40:28
|-
| [http://maemo.org/profile/view/smackpotato.html smackpotato]
| John Docherty
| 2007-10-14 14:40:32
|-
| [http://maemo.org/profile/view/smallmj.html smallmj]
| Mark Small
| 2008-05-27 17:41:17
|-
| [http://maemo.org/profile/view/smancke.html smancke]
| Sebastian Mancke
| 2007-12-11 16:24:54
|-
| [http://maemo.org/profile/view/smargo.html smargo]
| Sergei Margolin
| 2007-05-18 19:11:30
|-
| [http://maemo.org/profile/view/smart.html smart]
| emidio di gaspare
| 2007-11-28 17:50:27
|-
| [http://maemo.org/profile/view/smartexport.html smartexport]
| Robert Gebauer
| 2007-05-18 19:11:05
|-
| [http://maemo.org/profile/view/smartin737.html smartin737]
| steve martin
| 2007-06-22 09:40:09
|-
| [http://maemo.org/profile/view/smatte64.html smatte64]
| Simoniz Mattel
| 2008-02-20 01:31:10
|-
| [http://maemo.org/profile/view/smaxchen.html smaxchen]
| peter urban
| 2007-12-21 18:42:42
|-
| [http://maemo.org/profile/view/smbumbera.html smbumbera]
| steven bumbera
| 2007-12-19 15:41:45
|-
| [http://maemo.org/profile/view/smclose.html smclose]
| Sarah Close
| 2008-01-01 00:40:53
|-
| [http://maemo.org/profile/view/smcross.html smcross]
| Sean Cross
| 2007-05-18 19:12:29
|-
| [http://maemo.org/profile/view/smcv.html smcv]
| Simon McVittie
| 2007-11-16 17:49:46
|-
| [http://maemo.org/profile/view/smg3d.html smg3d]
| Stéphane Gagné
| 2008-02-02 03:31:10
|-
| [http://maemo.org/profile/view/smicke.html smicke]
| Miika Heiskanen
| 2007-05-18 19:12:47
|-
| [http://maemo.org/profile/view/smile.html smile]
| tiger wang
| 2008-02-27 15:31:00
|-
| [http://maemo.org/profile/view/smilingart.html smilingart]
| thapana kusirivatananukul
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/smith.html smith]
| smith smith
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/smithk1.html smithk1]
| Kenton Smith
| 2008-03-03 06:31:01
|-
| [http://maemo.org/profile/view/smiths.html smiths]
| smith ana
| 2007-11-16 17:47:45
|-
| [http://maemo.org/profile/view/smitra.html smitra]
| Suvendu Mitra
| 2007-11-16 17:49:36
|-
| [http://maemo.org/profile/view/smman.html smman]
| smman smman
| 2007-10-28 02:40:38
|-
| [http://maemo.org/profile/view/smo.html smo]
| smo 
| 2007-05-18 19:11:45
|-
| [http://maemo.org/profile/view/smoehle.html smoehle]
| Stephen Moehle
| 2008-03-29 19:31:08
|-
| [http://maemo.org/profile/view/smohan.html smohan]
| Satish Mohan
| 2007-10-22 09:40:25
|-
| [http://maemo.org/profile/view/smoiseev.html smoiseev]
| Serge Moiseev
| 2008-04-18 22:41:21
|-
| [http://maemo.org/profile/view/smok.html smok]
| Artur Konarski
| 2007-11-28 15:43:43
|-
| [http://maemo.org/profile/view/smollica.html smollica]
| Scott Mollica
| 2007-11-30 10:48:33
|-
| [http://maemo.org/profile/view/smorar.html smorar]
| Sameer Morar
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/smoreau.html smoreau]
| sonnel moreau
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/smortex.html smortex]
| Romain Tartière
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/smouyal.html smouyal]
| Stefan Mouyal
| 2007-05-18 19:11:08
|-
| [http://maemo.org/profile/view/smthng.html smthng]
| R R
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/smusa.html smusa]
| ss ss
| 2007-07-06 00:40:10
|-
| [http://maemo.org/profile/view/smuzy.html smuzy]
| sun sunny
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/sm_khasim.html sm_khasim]
| khasim syed mohammed
| 2007-06-20 06:40:19
|-
| [http://maemo.org/profile/view/sn0n.html sn0n]
| Robert Douglas
| 2007-10-19 19:40:33
|-
| [http://maemo.org/profile/view/snacarlo.html snacarlo]
| STEVEN NACARLO
| 2007-11-16 17:46:34
|-
| [http://maemo.org/profile/view/snail7.html snail7]
| Piotr Padowski
| 2008-03-28 17:31:07
|-
| [http://maemo.org/profile/view/snakebyte.html snakebyte]
| Zsolt Kovacs
| 2007-11-15 07:56:09
|-
| [http://maemo.org/profile/view/snallen.html snallen]
| allen gordon
| 2007-05-18 19:13:12
|-
| [http://maemo.org/profile/view/snblitz.html snblitz]
| Brian Litzinger
| 2007-08-15 07:40:22
|-
| [http://maemo.org/profile/view/snell96.html snell96]
| Steve Snell
| 2007-12-11 16:25:28
|-
| [http://maemo.org/profile/view/snig178.html snig178]
| Owen Griffin
| 2008-02-07 17:33:48
|-
| [http://maemo.org/profile/view/sniz.html sniz]
| Artem Roshenia
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/snocross569.html snocross569]
| John Smith
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/snojoe.html snojoe]
| joe ralph
| 2007-12-25 15:41:15
|-
| [http://maemo.org/profile/view/snookums.html snookums]
| Thomas Nesse
| 2007-11-16 17:46:29
|-
| [http://maemo.org/profile/view/snoopy.html snoopy]
| Audrey Green
| 2007-11-28 17:30:36
|-
| [http://maemo.org/profile/view/snoopy255.html snoopy255]
| Audrey Green
| 2007-11-30 10:48:55
|-
| [http://maemo.org/profile/view/snoshrk.html snoshrk]
| m arrowwod
| 2008-05-04 03:41:04
|-
| [http://maemo.org/profile/view/snovakovic.html snovakovic]
| Sasa Novakovic
| 2008-01-21 18:32:42
|-
| [http://maemo.org/profile/view/snowman323.html snowman323]
| Zachary McGibbon
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/snowwy66.html snowwy66]
| dave mark
| 2007-07-10 02:40:11
|-
| [http://maemo.org/profile/view/snuffy.html snuffy]
| Gary Davis
| 2008-05-05 00:41:26
|-
| [http://maemo.org/profile/view/sobbill.html sobbill]
| Bill Hackett
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/soberalien8.html soberalien8]
| alessandro neri
| 2007-10-22 11:40:32
|-
| [http://maemo.org/profile/view/sobral.html sobral]
| Leonardo Cunha
| 2007-05-18 19:11:20
|-
| [http://maemo.org/profile/view/soccersteven11.html soccersteven11]
| steven dennis
| 2008-01-16 02:40:57
|-
| [http://maemo.org/profile/view/societes.html societes]
| Paulo Gonzales
| 2007-11-15 07:56:03
|-
| [http://maemo.org/profile/view/sodatown.html sodatown]
| Ed Johnson
| 2007-10-18 17:40:31
|-
| [http://maemo.org/profile/view/sodomaemo.html sodomaemo]
| jose antonio garcia lopeez
| 2007-12-27 15:41:04
|-
| [http://maemo.org/profile/view/sofia.html sofia]
| sofia t
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/soham.html soham]
| SOHAM PATEL
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/soinull.html soinull]
| Tim Crothers
| 2007-07-03 15:40:12
|-
| [http://maemo.org/profile/view/sokeila.html sokeila]
| Tomi Sokeila
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/soknet.html soknet]
| soknet soknet
| 2008-03-28 02:32:16
|-
| [http://maemo.org/profile/view/sokratus.html sokratus]
| Sergey Kurilovich
| 2007-10-24 04:40:36
|-
| [http://maemo.org/profile/view/solarion.html solarion]
| Joseph Pingenot
| 2007-10-19 17:40:32
|-
| [http://maemo.org/profile/view/solegv.html solegv]
| Sorokin Oleg
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/soletaken.html soletaken]
| D Rao
| 2007-10-25 13:40:33
|-
| [http://maemo.org/profile/view/solid.html solid]
| Jebb Stewart
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/soljalap.html soljalap]
| pasi soljala
| 2007-11-30 10:48:30
|-
| [http://maemo.org/profile/view/sollosa.html sollosa]
| Khalid Mehmood
| 2007-10-30 22:41:01
|-
| [http://maemo.org/profile/view/solmory.html solmory]
| ChangHyun Jang
| 2007-11-28 15:43:46
|-
| [http://maemo.org/profile/view/solomon.html solomon]
| Richard Solomon
| 2007-07-02 16:50:17
|-
| [http://maemo.org/profile/view/solooksitout.html solooksitout]
| So Looksitout
| 2007-10-14 14:40:39
|-
| [http://maemo.org/profile/view/solotc.html solotc]
| Chris Cort
| 2007-05-18 19:13:17
|-
| [http://maemo.org/profile/view/solt.html solt]
| Marcin Sołtysiak
| 2008-03-01 23:31:03
|-
| [http://maemo.org/profile/view/solucanrenos.html solucanrenos]
| solucan renos
| 2008-04-17 22:41:06
|-
| [http://maemo.org/profile/view/somanyfish.html somanyfish]
| Lisa Fish
| 2008-04-29 00:41:33
|-
| [http://maemo.org/profile/view/someguy.html someguy]
| G Douglas Davidson
| 2007-05-18 19:12:09
|-
| [http://maemo.org/profile/view/somhi.html somhi]
| Somhi Nosemeolvide
| 2007-10-18 18:40:30
|-
| [http://maemo.org/profile/view/sommerfee.html sommerfee]
| Axel Sommerfeldt
| 2008-03-29 22:31:06
|-
| [http://maemo.org/profile/view/somnath.html somnath]
| somnath avvari
| 2007-11-28 18:10:21
|-
| [http://maemo.org/profile/view/somnathavvari.html somnathavvari]
| somnath avvari
| 2007-05-18 19:13:50
|-
| [http://maemo.org/profile/view/somnath_avvari.html somnath_avvari]
| somnath avvari
| 2008-04-21 06:41:14
|-
| [http://maemo.org/profile/view/sompop.html sompop]
| sompop singhatiraj
| 2007-11-16 17:48:27
|-
| [http://maemo.org/profile/view/somszcynjb.html somszcynjb]
| John Smith
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/somu439.html somu439]
| somu sree
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/sonej.html sonej]
| Sonej Nillah
| 2007-05-18 19:12:25
|-
| [http://maemo.org/profile/view/songtam.html songtam]
| spencers woon
| 2007-12-29 04:41:00
|-
| [http://maemo.org/profile/view/songwing.html songwing]
| songwing song
| 2007-11-16 17:47:34
|-
| [http://maemo.org/profile/view/songyear.html songyear]
| Jason Song
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/sonhoang.html sonhoang]
| son hoang
| 2007-11-16 17:49:21
|-
| [http://maemo.org/profile/view/sonicvibe.html sonicvibe]
| noah wood
| 2008-01-04 23:41:52
|-
| [http://maemo.org/profile/view/sonitrilok.html sonitrilok]
| Trilok Soni
| 2007-07-23 09:40:18
|-
| [http://maemo.org/profile/view/sonphanusa.html sonphanusa]
| Son Phan
| 2007-07-02 23:40:09
|-
| [http://maemo.org/profile/view/sonyonlyman.html sonyonlyman]
| Lonny Zack
| 2008-01-14 15:41:36
|-
| [http://maemo.org/profile/view/sooder.html sooder]
| Sudhir Pawar
| 2007-11-16 17:47:17
|-
| [http://maemo.org/profile/view/soonil.html soonil]
| Soonil Bae
| 2007-10-25 15:40:34
|-
| [http://maemo.org/profile/view/sootoon.html sootoon]
| Clement Tan
| 2008-05-18 04:41:08
|-
| [http://maemo.org/profile/view/sooze.html sooze]
| Susan Crawley
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/sophistry.html sophistry]
| Martijn van Beek
| 2007-11-15 07:56:03
|-
| [http://maemo.org/profile/view/sopuli.html sopuli]
| Hannu Leinonen
| 2007-10-26 23:40:34
|-
| [http://maemo.org/profile/view/sorahl.html sorahl]
| John Buxbaum
| 2007-05-18 19:11:18
|-
| [http://maemo.org/profile/view/soundbyte.html soundbyte]
| Brian Shaylor
| 2007-07-29 09:20:54
|-
| [http://maemo.org/profile/view/southland310.html southland310]
| ramiro cano
| 2007-07-05 19:40:14
|-
| [http://maemo.org/profile/view/sovash.html sovash]
| Oleg Shatalov
| 2008-01-30 08:31:17
|-
| [http://maemo.org/profile/view/spaccapietra.html spaccapietra]
| giovanni spaccapietra
| 2007-10-18 17:40:31
|-
| [http://maemo.org/profile/view/space2.html space2]
| Pal Szasz
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/spacehunt.html spacehunt]
| Roger So
| 2007-10-29 07:40:37
|-
| [http://maemo.org/profile/view/spacer.html spacer]
| Hendrik Beijeman
| 2008-01-01 12:41:00
|-
| [http://maemo.org/profile/view/spaceriot.html spaceriot]
| Morten Pors Nielsen
| 2008-01-19 09:31:08
|-
| [http://maemo.org/profile/view/spacey.html spacey]
| Chad Spacey
| 2007-10-18 18:40:30
|-
| [http://maemo.org/profile/view/spaetz.html spaetz]
| Sebastian Spaeth
| 2007-05-18 19:12:09
|-
| [http://maemo.org/profile/view/spakman.html spakman]
| Mark Somerville
| 2007-12-11 16:24:23
|-
| [http://maemo.org/profile/view/spamaverter.html spamaverter]
| spam averter
| 2008-02-03 16:31:39
|-
| [http://maemo.org/profile/view/spanaint.html spanaint]
| SORIN PANAINTE
| 2007-11-16 17:47:35
|-
| [http://maemo.org/profile/view/spano.html spano]
| omar martinez
| 2007-12-27 01:41:46
|-
| [http://maemo.org/profile/view/sparasta.html sparasta]
| stef paras
| 2007-11-16 17:48:59
|-
| [http://maemo.org/profile/view/sparkey6.html sparkey6]
| Gabor Gönczöl
| 2007-11-01 12:40:39
|-
| [http://maemo.org/profile/view/sparklone.html sparklone]
| Alexandr Gluschenko
| 2008-01-30 13:31:06
|-
| [http://maemo.org/profile/view/sparks.html sparks]
| Les Adams
| 2008-02-19 20:31:00
|-
| [http://maemo.org/profile/view/sparr.html sparr]
| Clarence Risher
| 2007-08-08 03:41:01
|-
| [http://maemo.org/profile/view/spassky.html spassky]
| Maxim Spassky
| 2007-06-19 07:10:36
|-
| [http://maemo.org/profile/view/spbike.html spbike]
| bill broadley
| 2007-12-11 16:26:01
|-
| [http://maemo.org/profile/view/spcassidy.html spcassidy]
| Stephen Cassidy
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/spdegabrielle.html spdegabrielle]
| Stephen De Gabrielle
| 2007-10-21 18:40:32
|-
| [http://maemo.org/profile/view/spearsd.html spearsd]
| Daniel Spears
| 2008-01-07 22:41:15
|-
| [http://maemo.org/profile/view/species8472.html species8472]
| species 8472
| 2008-04-23 09:41:09
|-
| [http://maemo.org/profile/view/speculatrix.html speculatrix]
| Paul M
| 2007-12-19 12:41:02
|-
| [http://maemo.org/profile/view/speedhaven.html speedhaven]
| jennifer conner
| 2007-06-30 12:40:08
|-
| [http://maemo.org/profile/view/speednut.html speednut]
| Dave Speednut
| 2008-03-07 01:31:34
|-
| [http://maemo.org/profile/view/speedwagon57.html speedwagon57]
| elliott tudor
| 2008-02-14 17:31:00
|-
| [http://maemo.org/profile/view/speedytheman.html speedytheman]
| uiho honoin
| 2008-03-02 18:31:01
|-
| [http://maemo.org/profile/view/spele.html spele]
| Sami Tuohino
| 2008-02-26 08:30:59
|-
| [http://maemo.org/profile/view/spembert.html spembert]
| Sam Pemberton
| 2007-05-18 19:10:31
|-
| [http://maemo.org/profile/view/spenrod.html spenrod]
| sd penrod
| 2008-01-30 08:31:18
|-
| [http://maemo.org/profile/view/spernoga.html spernoga]
| Bob Spernoga
| 2007-12-29 19:41:29
|-
| [http://maemo.org/profile/view/spherik.html spherik]
| Toni Gurguí
| 2007-05-18 19:13:43
|-
| [http://maemo.org/profile/view/sphurti.html sphurti]
| sphurti durgade
| 2007-11-16 17:49:59
|-
| [http://maemo.org/profile/view/spice3d.html spice3d]
| Doug Nakakihara
| 2007-05-18 19:11:38
|-
| [http://maemo.org/profile/view/spider.html spider]
| Naoki Moribe
| 2007-02-12 12:30:06
|-
| [http://maemo.org/profile/view/spiderman31.html spiderman31]
| rian perez
| 2007-07-03 03:40:10
|-
| [http://maemo.org/profile/view/spiderterp.html spiderterp]
| Dawn Mckenna
| 2008-01-15 07:40:59
|-
| [http://maemo.org/profile/view/spiderx.html spiderx]
| Derek Wilson
| 2007-05-18 19:10:45
|-
| [http://maemo.org/profile/view/spidie.html spidie]
| Steve Dalton
| 2008-02-12 12:31:16
|-
| [http://maemo.org/profile/view/spikayak.html spikayak]
| Greg Spike
| 2007-11-16 18:41:10
|-
| [http://maemo.org/profile/view/spimman.html spimman]
| Philip Wade
| 2008-03-31 07:41:05
|-
| [http://maemo.org/profile/view/spin0.html spin0]
| Jari Pappila
| 2007-06-13 16:00:33
|-
| [http://maemo.org/profile/view/spinalfluid.html spinalfluid]
| asda ads
| 2007-05-18 19:14:44
|-
| [http://maemo.org/profile/view/spiney.html spiney]
| Wolfgang Karall
| 2007-05-18 19:11:30
|-
| [http://maemo.org/profile/view/sping.html sping]
| James Sping
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/spinter.html spinter]
| Sandor Pinter
| 2007-10-29 10:40:38
|-
| [http://maemo.org/profile/view/spiotr.html spiotr]
| Piotr Olo
| 2008-01-17 21:51:12
|-
| [http://maemo.org/profile/view/spirali.html spirali]
| Stanislav Bohm
| 2008-03-05 21:31:06
|-
| [http://maemo.org/profile/view/spirit-iddqd.html spirit-iddqd]
| Kirill P
| 2008-03-08 20:31:06
|-
| [http://maemo.org/profile/view/spiritby.html spiritby]
| Viktor Medyha
| 2008-04-26 13:41:07
|-
| [http://maemo.org/profile/view/spiros.html spiros]
| Spiros Vathis
| 2008-02-29 16:31:00
|-
| [http://maemo.org/profile/view/spiry2sick.html spiry2sick]
| Szymon Kosecki
| 2007-11-28 15:43:19
|-
| [http://maemo.org/profile/view/spiryt.html spiryt]
| Szymon Kosecki
| 2007-12-20 19:42:19
|-
| [http://maemo.org/profile/view/spirytusick.html spirytusick]
| Szymon Kosecki
| 2008-01-17 21:51:14
|-
| [http://maemo.org/profile/view/spiteman.html spiteman]
| Dmitry Romanov
| 2007-10-24 13:40:34
|-
| [http://maemo.org/profile/view/spkbk.html spkbk]
| Bill Broadley
| 2007-05-18 19:10:23
|-
| [http://maemo.org/profile/view/splashd.html splashd]
| John Davis
| 2007-05-18 19:11:08
|-
| [http://maemo.org/profile/view/splatt68.html splatt68]
| s pr
| 2007-11-15 07:56:01
|-
| [http://maemo.org/profile/view/splattman.html splattman]
| geeg platt
| 2007-10-17 01:40:28
|-
| [http://maemo.org/profile/view/spokenipples.html spokenipples]
| handy dandy
| 2008-05-15 01:41:09
|-
| [http://maemo.org/profile/view/spomoly.html spomoly]
| mario cuellar
| 2008-03-07 06:31:00
|-
| [http://maemo.org/profile/view/spotdog14.html spotdog14]
| Alex McCollough
| 2007-11-15 07:56:20
|-
| [http://maemo.org/profile/view/sprae.html sprae]
| Lucas Tretyn
| 2008-02-19 21:30:59
|-
| [http://maemo.org/profile/view/spreitzer.html spreitzer]
| Wolfgang Spreitzer
| 2007-11-16 17:47:25
|-
| [http://maemo.org/profile/view/spriteland.html spriteland]
| Jiemei LAN
| 2007-05-18 19:14:07
|-
| [http://maemo.org/profile/view/sproax.html sproax]
| Rakon Masters
| 2008-02-01 01:41:03
|-
| [http://maemo.org/profile/view/sproing.html sproing]
| k c
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/spwinters.html spwinters]
| Sam Winters
| 2008-05-30 04:41:06
|-
| [http://maemo.org/profile/view/spycedtx.html spycedtx]
| Adam L
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/spynaltom.html spynaltom]
| Tom Spynal
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/spyroskoutelas.html spyroskoutelas]
| Spyros koutelas
| 2008-01-20 10:31:05
|-
| [http://maemo.org/profile/view/squale.html squale]
| Pascal Rolle
| 2007-11-05 13:20:53
|-
| [http://maemo.org/profile/view/squarb.html squarb]
| Brian Lemme
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/squigley.html squigley]
| Ville Laaksonen
| 2008-01-30 20:42:36
|-
| [http://maemo.org/profile/view/squirl.html squirl]
| squirl cover
| 2007-06-19 07:10:35
|-
| [http://maemo.org/profile/view/srastin.html srastin]
| Sam Rastin
| 2008-01-07 02:40:58
|-
| [http://maemo.org/profile/view/srbox.html srbox]
| Mirko Raca
| 2007-10-25 15:40:36
|-
| [http://maemo.org/profile/view/srdoddy.html srdoddy]
| steve dodd
| 2007-05-18 19:11:19
|-
| [http://maemo.org/profile/view/sreece.html sreece]
| steven reece
| 2007-06-13 20:50:51
|-
| [http://maemo.org/profile/view/sreelatha_p.html sreelatha_p]
| sreelatha polaki
| 2008-05-15 06:41:17
|-
| [http://maemo.org/profile/view/srics.html srics]
| Sridhar R
| 2007-12-14 23:41:06
|-
| [http://maemo.org/profile/view/sril.html sril]
| Latha Sunkan
| 2007-11-16 17:49:04
|-
| [http://maemo.org/profile/view/srn.html srn]
| Sarah Newman
| 2007-11-16 17:49:05
|-
| [http://maemo.org/profile/view/srpage.html srpage]
| Simon Page
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/sruthireddyhyd.html sruthireddyhyd]
| sruthireddy V
| 2007-11-15 07:55:50
|-
| [http://maemo.org/profile/view/srwalter.html srwalter]
| Steven Walter
| 2007-11-15 07:56:11
|-
| [http://maemo.org/profile/view/sryan1372.html sryan1372]
| Shawn Ryan
| 2007-11-15 07:56:08
|-
| [http://maemo.org/profile/view/sryffel.html sryffel]
| Sebi Ryffel
| 2007-05-18 19:12:43
|-
| [http://maemo.org/profile/view/ssaenz.html ssaenz]
| Sandra Saenz de Tejada
| 2008-04-03 17:41:06
|-
| [http://maemo.org/profile/view/ssalmija.html ssalmija]
| Sanna Salmijärvi
| 2007-11-16 17:50:33
|-
| [http://maemo.org/profile/view/ssam.html ssam]
| sam tygier
| 2007-11-16 17:49:28
|-
| [http://maemo.org/profile/view/ssamayoa.html ssamayoa]
| Sergio Samayoa
| 2007-06-21 20:40:09
|-
| [http://maemo.org/profile/view/sschoen.html sschoen]
| Stephan Schoen
| 2007-12-11 16:25:28
|-
| [http://maemo.org/profile/view/sscout.html sscout]
| sscout lesxejets
| 2007-11-28 17:10:18
|-
| [http://maemo.org/profile/view/ssd.html ssd]
| Alexander Danilchuck
| 2008-03-14 21:31:03
|-
| [http://maemo.org/profile/view/ssd1445.html ssd1445]
| Shari S Drew
| 2008-04-02 12:41:07
|-
| [http://maemo.org/profile/view/ssharan.html ssharan]
| Santosh Sharan
| 2008-01-16 06:41:02
|-
| [http://maemo.org/profile/view/ssichi.html ssichi]
| stefano sichi
| 2008-03-02 19:31:00
|-
| [http://maemo.org/profile/view/ssimoness.html ssimoness]
| Simone Soldateschi
| 2007-10-22 08:40:35
|-
| [http://maemo.org/profile/view/ssimoss.html ssimoss]
| simone Soldateschi
| 2007-11-30 10:49:21
|-
| [http://maemo.org/profile/view/ssjolsha.html ssjolsha]
| Simon Sjolshagen
| 2007-05-23 05:29:38
|-
| [http://maemo.org/profile/view/sslava.html sslava]
| Slava Stus
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/ssmony.html ssmony]
| Mony Sath
| 2008-05-12 03:41:14
|-
| [http://maemo.org/profile/view/ssolod.html ssolod]
| Sergey Solod
| 2008-05-30 11:41:08
|-
| [http://maemo.org/profile/view/ssprod.html ssprod]
| Steve Sherman
| 2007-12-20 00:41:15
|-
| [http://maemo.org/profile/view/ssuzuki.html ssuzuki]
| Stephanie Suzuki
| 2007-12-11 16:25:53
|-
| [http://maemo.org/profile/view/ssvoip.html ssvoip]
| Hiro Ishizaka
| 2007-12-21 16:40:58
|-
| [http://maemo.org/profile/view/ss_n800.html ss_n800]
| s s
| 2008-02-11 03:31:13
|-
| [http://maemo.org/profile/view/st-mathieu.html st-mathieu]
| Mathieu Bredeau
| 2008-01-19 12:32:01
|-
| [http://maemo.org/profile/view/stafo.html stafo]
| Stefan Stamenov
| 2008-03-10 14:31:08
|-
| [http://maemo.org/profile/view/stale.html stale]
| Alessandro Staltari
| 2008-06-01 13:41:14
|-
| [http://maemo.org/profile/view/stalwart.html stalwart]
| Pavel Shevchuk
| 2007-10-27 14:40:34
|-
| [http://maemo.org/profile/view/stanback.html stanback]
| tim stanton
| 2007-05-18 19:10:59
|-
| [http://maemo.org/profile/view/stanevski.html stanevski]
| Sasho Tanevski
| 2008-05-24 18:41:11
|-
| [http://maemo.org/profile/view/stanga86.html stanga86]
| Daniel Stangherlin
| 2008-03-27 23:31:10
|-
| [http://maemo.org/profile/view/stanger68.html stanger68]
| Clayton Letourneau
| 2007-11-15 07:56:23
|-
| [http://maemo.org/profile/view/stanleyj.html stanleyj]
| Joseph Stanley
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/stanleylei.html stanleylei]
| stanley lei
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/starbase00.html starbase00]
| Michael Davidson
| 2007-05-18 19:12:08
|-
| [http://maemo.org/profile/view/starfishy.html starfishy]
| Christian Huebner
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/starguard.html starguard]
| katherine stewart
| 2008-05-15 07:41:09
|-
| [http://maemo.org/profile/view/starhusker.html starhusker]
| Y Mao
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/starprism_7.html starprism_7]
| juni elyna jubely
| 2007-12-17 02:40:57
|-
| [http://maemo.org/profile/view/starrior.html starrior]
| Anton D
| 2008-02-11 13:31:06
|-
| [http://maemo.org/profile/view/stas.html stas]
| Stanislav Gobunov
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/stbn.html stbn]
| S B
| 2007-05-18 19:11:50
|-
| [http://maemo.org/profile/view/ste.html ste]
| stefan englhardt
| 2007-05-18 19:11:03
|-
| [http://maemo.org/profile/view/stealf.html stealf]
| Stefan Alfbo
| 2008-02-06 07:31:45
|-
| [http://maemo.org/profile/view/steelbutt.html steelbutt]
| Michael Schwind
| 2007-01-26 15:20:04
|-
| [http://maemo.org/profile/view/steele775.html steele775]
| Johnny C.
| 2007-11-16 17:49:18
|-
| [http://maemo.org/profile/view/steely.html steely]
| neil levins
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/stefan-schmidt.html stefan-schmidt]
| Stefan Schmidt
| 2007-10-19 17:40:32
|-
| [http://maemo.org/profile/view/stefan123.html stefan123]
| serfd asertg
| 2007-06-08 13:37:16
|-
| [http://maemo.org/profile/view/stefankr.html stefankr]
| Stefan Kerwer
| 2007-11-16 17:47:59
|-
| [http://maemo.org/profile/view/stefano.html stefano]
| Stefano Miani
| 2007-05-18 19:13:40
|-
| [http://maemo.org/profile/view/stefanor.html stefanor]
| Stefano Rivera
| 2007-10-20 18:40:30
|-
| [http://maemo.org/profile/view/stef_nti.html stef_nti]
| stéphane B
| 2007-12-28 23:41:24
|-
| [http://maemo.org/profile/view/steima.html steima]
| Matthias Steinbauer
| 2007-10-19 13:40:37
|-
| [http://maemo.org/profile/view/stelchio.html stelchio]
| Stylianos Chiotellis
| 2007-12-21 11:41:13
|-
| [http://maemo.org/profile/view/stelefane.html stelefane]
| stephane ouvrard
| 2007-11-28 15:43:24
|-
| [http://maemo.org/profile/view/step1936.html step1936]
| stephen hong
| 2007-11-30 10:49:37
|-
| [http://maemo.org/profile/view/stepcut.html stepcut]
| Jeremy Shaw
| 2007-12-11 16:26:31
|-
| [http://maemo.org/profile/view/stephane.html stephane]
| Stéphane Alnet
| 2007-05-18 19:11:25
|-
| [http://maemo.org/profile/view/stephanehirschi.html stephanehirschi]
| Stephane HlRSCHl
| 2008-05-12 07:41:06
|-
| [http://maemo.org/profile/view/stepharmor.html stepharmor]
| Stéphane ROMANO
| 2007-12-21 16:41:13
|-
| [http://maemo.org/profile/view/stephbel.html stephbel]
| Stephane Bellanger
| 2007-10-22 08:40:35
|-
| [http://maemo.org/profile/view/stephenmyles.html stephenmyles]
| Stephen Henriksen
| 2007-05-18 19:12:00
|-
| [http://maemo.org/profile/view/stephenthomas.html stephenthomas]
| stephen thomas
| 2007-11-16 17:47:17
|-
| [http://maemo.org/profile/view/stephentt1.html stephentt1]
| Stephen McConnell
| 2007-11-28 17:00:50
|-
| [http://maemo.org/profile/view/stephenwing.html stephenwing]
| Stephen Wing
| 2007-10-19 17:40:31
|-
| [http://maemo.org/profile/view/stephenws.html stephenws]
| Stephen Smith
| 2007-11-16 17:49:27
|-
| [http://maemo.org/profile/view/steppek.html steppek]
| Kreg Steppe
| 2007-10-18 17:40:31
|-
| [http://maemo.org/profile/view/sterling.html sterling]
| Sterling Little
| 2007-05-18 19:10:34
|-
| [http://maemo.org/profile/view/stesco00.html stesco00]
| Scott Stewart
| 2007-05-18 19:12:30
|-
| [http://maemo.org/profile/view/steve1600.html steve1600]
| steve curling
| 2007-05-18 19:12:32
|-
| [http://maemo.org/profile/view/steve24.html steve24]
| Steve Kerr
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/steveberry.html steveberry]
| Stephen Berry
| 2007-11-05 20:21:25
|-
| [http://maemo.org/profile/view/stevecgelliott.html stevecgelliott]
| Steve Elliott
| 2007-11-15 07:56:26
|-
| [http://maemo.org/profile/view/steveg.html steveg]
| Steve Goldstein
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/stevehonn.html stevehonn]
| Steven Honnor
| 2008-01-04 16:42:10
|-
| [http://maemo.org/profile/view/steveili.html steveili]
| Stefano Ilengo
| 2007-05-18 19:12:28
|-
| [http://maemo.org/profile/view/stevekdavis.html stevekdavis]
| steve davis
| 2007-11-16 17:47:53
|-
| [http://maemo.org/profile/view/stevelee.html stevelee]
| Steve Lee
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/steven.html steven]
| Steven Nolting
| 2007-12-12 20:41:27
|-
| [http://maemo.org/profile/view/stevend.html stevend]
| steve davolt
| 2008-01-03 23:41:02
|-
| [http://maemo.org/profile/view/stevengaedy.html stevengaedy]
| Steven Gaedy
| 2008-02-24 22:31:00
|-
| [http://maemo.org/profile/view/stevenrwalter.html stevenrwalter]
| Steven Walter
| 2007-12-11 16:25:15
|-
| [http://maemo.org/profile/view/stevenspencer01.html stevenspencer01]
| steven spencer
| 2007-11-16 17:47:56
|-
| [http://maemo.org/profile/view/stevenwxly.html stevenwxly]
| Steve Weatherly
| 2007-11-16 17:49:09
|-
| [http://maemo.org/profile/view/stevenzhang.html stevenzhang]
| Steven Zhang
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/steveo.html steveo]
| Steve McCormick
| 2007-11-30 10:48:26
|-
| [http://maemo.org/profile/view/stevesizemore.html stevesizemore]
| Steve Sizemore
| 2007-05-18 19:11:25
|-
| [http://maemo.org/profile/view/stevetarbox.html stevetarbox]
| Stephen Tarbox
| 2007-07-04 21:40:16
|-
| [http://maemo.org/profile/view/stevewalsh.html stevewalsh]
| steve walsh
| 2007-05-18 19:10:39
|-
| [http://maemo.org/profile/view/stevo83.html stevo83]
| stephen whelan
| 2008-01-26 18:33:15
|-
| [http://maemo.org/profile/view/stewartblong.html stewartblong]
| stewart long
| 2007-05-18 19:14:03
|-
| [http://maemo.org/profile/view/stewarty222.html stewarty222]
| stewart black
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/stewp6340.html stewp6340]
| stewart pressnall
| 2007-11-16 17:46:32
|-
| [http://maemo.org/profile/view/stezz.html stezz]
| Stefano Mosconi
| 2007-05-23 05:29:40
|-
| [http://maemo.org/profile/view/stillpoint.html stillpoint]
| stefano silvi
| 2007-10-22 11:40:32
|-
| [http://maemo.org/profile/view/stimpelton.html stimpelton]
| Peter Mustermann
| 2007-05-18 19:10:38
|-
| [http://maemo.org/profile/view/stinkier.html stinkier]
| p c
| 2008-03-25 00:31:05
|-
| [http://maemo.org/profile/view/stisne.html stisne]
| servane Tisné
| 2007-05-18 19:14:25
|-
| [http://maemo.org/profile/view/stitch.html stitch]
| oliver starr
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/stl.html stl]
| Stefanie Luipersbeck
| 2008-03-06 10:31:09
|-
| [http://maemo.org/profile/view/stlbud.html stlbud]
| Bill Budenholzer
| 2008-04-30 03:41:39
|-
| [http://maemo.org/profile/view/stock786.html stock786]
| kim kim
| 2008-05-07 05:41:06
|-
| [http://maemo.org/profile/view/stocky.html stocky]
| Marvin Valere
| 2007-06-29 14:40:06
|-
| [http://maemo.org/profile/view/stodoverto.html stodoverto]
| Steve Todoverto
| 2007-07-01 16:40:09
|-
| [http://maemo.org/profile/view/stomki.html stomki]
| stephen tomkinson
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/stone.html stone]
| Stone shi
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/stonegale.html stonegale]
| Stanley Badger
| 2007-12-11 16:24:59
|-
| [http://maemo.org/profile/view/stonybrookadam.html stonybrookadam]
| Adam Rosebrock
| 2007-10-23 23:40:35
|-
| [http://maemo.org/profile/view/stopczynskim.html stopczynskim]
| matthew stopczynski
| 2007-12-11 16:26:25
|-
| [http://maemo.org/profile/view/storager.html storager]
| Dmitry Tsirulnikov
| 2007-05-18 19:11:53
|-
| [http://maemo.org/profile/view/stormbom.html stormbom]
| Michael Stormbom
| 2008-03-12 13:31:11
|-
| [http://maemo.org/profile/view/stormnw.html stormnw]
| Josias Lima
| 2007-12-31 03:42:33
|-
| [http://maemo.org/profile/view/stormyview.html stormyview]
| ian roche
| 2008-03-23 23:31:02
|-
| [http://maemo.org/profile/view/storm_tec.html storm_tec]
| andre jackson
| 2007-11-16 17:47:56
|-
| [http://maemo.org/profile/view/stoyanoviliyan.html stoyanoviliyan]
| iliyan stoyanov
| 2008-04-22 12:41:13
|-
| [http://maemo.org/profile/view/stradius.html stradius]
| 
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/stranger.html stranger]
| Dariusz Wiechecki
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/stranzenbach.html stranzenbach]
| eddy stranzenbach
| 2007-10-19 06:40:31
|-
| [http://maemo.org/profile/view/strat.html strat]
| Robert Stratton
| 2008-05-23 23:41:09
|-
| [http://maemo.org/profile/view/strathy.html strathy]
| Todd Redhead
| 2008-01-30 16:31:26
|-
| [http://maemo.org/profile/view/stratification.html stratification]
| Aaron Leavitt
| 2007-11-28 15:43:12
|-
| [http://maemo.org/profile/view/stratta.html stratta]
| Marilia Stratta
| 2007-07-08 00:40:13
|-
| [http://maemo.org/profile/view/strayle.html strayle]
| Stirling Trayle
| 2008-03-14 23:31:00
|-
| [http://maemo.org/profile/view/streg.html streg]
| Lasse Korpela
| 2007-05-18 19:10:54
|-
| [http://maemo.org/profile/view/strollin.html strollin]
| Bruce Parshall
| 2007-11-16 17:49:27
|-
| [http://maemo.org/profile/view/stromya1.html stromya1]
| FRANK GRAVES
| 2007-08-27 06:40:24
|-
| [http://maemo.org/profile/view/strongzgy.html strongzgy]
| Guiyong Zhu
| 2008-04-11 01:41:17
|-
| [http://maemo.org/profile/view/stuarti.html stuarti]
| stuart innes
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/studiox19.html studiox19]
| T Bag
| 2008-01-09 14:41:09
|-
| [http://maemo.org/profile/view/stud_ying.html stud_ying]
| jesse clark
| 2007-10-22 11:40:33
|-
| [http://maemo.org/profile/view/stuporglue.html stuporglue]
| Michael Moore
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/stustev.html stustev]
| Stuart Stevenson
| 2007-05-23 05:29:38
|-
| [http://maemo.org/profile/view/stutsman99.html stutsman99]
| Daniel Stutsman
| 2007-05-23 05:29:47
|-
| [http://maemo.org/profile/view/stwiseman.html stwiseman]
| Steven Wiseman
| 2008-01-01 07:40:58
|-
| [http://maemo.org/profile/view/stwiseman64.html stwiseman64]
| Steven Wiseman
| 2008-04-20 06:41:24
|-
| [http://maemo.org/profile/view/stylemen.html stylemen]
| x dfg
| 2008-03-02 14:31:00
|-
| [http://maemo.org/profile/view/styler0120.html styler0120]
| Sam Tyler
| 2007-11-16 17:47:56
|-
| [http://maemo.org/profile/view/su1man.html su1man]
| Sulman Shah
| 2007-05-18 19:11:15
|-
| [http://maemo.org/profile/view/su27smk.html su27smk]
| li liqun
| 2007-12-30 15:41:08
|-
| [http://maemo.org/profile/view/suanand.html suanand]
| Anand Subramanian
| 2007-05-18 19:14:45
|-
| [http://maemo.org/profile/view/suarezvictor.html suarezvictor]
| Victor Suarez
| 2007-10-19 17:40:32
|-
| [http://maemo.org/profile/view/suavi.html suavi]
| suavi eren
| 2007-11-16 17:48:38
|-
| [http://maemo.org/profile/view/subindo.html subindo]
| Joao D.
| 2008-04-01 15:41:06
|-
| [http://maemo.org/profile/view/subramjm.html subramjm]
| Jane Subramanian
| 2007-12-30 20:41:24
|-
| [http://maemo.org/profile/view/substance.html substance]
| Tommi Laukkanen
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/subzerox1.html subzerox1]
| Marcelo Enrique
| 2007-06-19 07:10:39
|-
| [http://maemo.org/profile/view/subzro3.html subzro3]
| Wesley Frost
| 2007-06-11 01:42:43
|-
| [http://maemo.org/profile/view/sucevic.html sucevic]
| joseph sucevic
| 2007-07-13 20:40:17
|-
| [http://maemo.org/profile/view/sudheera.html sudheera]
| Sudheera Fernando
| 2007-11-16 17:50:26
|-
| [http://maemo.org/profile/view/sudhirmathane.html sudhirmathane]
| sudhir mathane
| 2008-03-06 12:31:22
|-
| [http://maemo.org/profile/view/suds.html suds]
| dave schwager
| 2007-12-29 04:41:00
|-
| [http://maemo.org/profile/view/suifeng.html suifeng]
| sui feng
| 2008-01-12 17:51:29
|-
| [http://maemo.org/profile/view/suihkulokki.html suihkulokki]
| Riku Voipio
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/suitti.html suitti]
| Stephen Uitti
| 2007-11-16 17:48:45
|-
| [http://maemo.org/profile/view/sujoymitra.html sujoymitra]
| Sujoy Mitra
| 2007-11-16 17:46:37
|-
| [http://maemo.org/profile/view/suka.html suka]
| Andreas Proschofsky
| 2007-11-19 12:40:51
|-
| [http://maemo.org/profile/view/sukyatk.html sukyatk]
| Sonsia Atkinson
| 2007-12-30 16:41:03
|-
| [http://maemo.org/profile/view/sully.html sully]
| Sulman Syed
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/sumailiano.html sumailiano]
| sumaila karim
| 2007-05-18 19:13:43
|-
| [http://maemo.org/profile/view/sumito.html sumito]
| Greg Wilburn
| 2007-05-18 19:13:00
|-
| [http://maemo.org/profile/view/sundar5.html sundar5]
| saidulu sundar
| 2007-11-28 15:43:48
|-
| [http://maemo.org/profile/view/sundiverdb.html sundiverdb]
| David Broschinsky
| 2008-01-24 19:32:10
|-
| [http://maemo.org/profile/view/sunfell.html sunfell]
| Lorie Johnson
| 2007-11-30 10:49:36
|-
| [http://maemo.org/profile/view/sungbob.html sungbob]
| bob lee
| 2008-01-26 00:31:17
|-
| [http://maemo.org/profile/view/sungrove.html sungrove]
| Neil Sundberg
| 2007-12-13 03:40:58
|-
| [http://maemo.org/profile/view/sunilkhokhar.html sunilkhokhar]
| Sunil Khokhar
| 2007-05-29 09:30:41
|-
| [http://maemo.org/profile/view/sunnfire.html sunnfire]
| merrick richardson
| 2008-03-20 23:31:06
|-
| [http://maemo.org/profile/view/sunnygoh.html sunnygoh]
| Goh Kok ying
| 2007-05-18 19:14:06
|-
| [http://maemo.org/profile/view/sunset666.html sunset666]
| Hans Dieter Schmitz
| 2008-01-24 10:31:00
|-
| [http://maemo.org/profile/view/sunsetco.html sunsetco]
| Phil Hurley
| 2007-05-18 19:11:59
|-
| [http://maemo.org/profile/view/sunx.html sunx]
| D Carter
| 2007-10-22 05:40:33
|-
| [http://maemo.org/profile/view/superfella.html superfella]
| David Haney
| 2008-04-17 14:41:33
|-
| [http://maemo.org/profile/view/superfool.html superfool]
| Hieu Nguyen
| 2007-11-05 06:40:36
|-
| [http://maemo.org/profile/view/supergroomer.html supergroomer]
| david huber
| 2007-12-26 04:41:16
|-
| [http://maemo.org/profile/view/superman07.html superman07]
| Scott Lee
| 2007-11-16 17:46:43
|-
| [http://maemo.org/profile/view/supermaninfl.html supermaninfl]
| Ricky D
| 2007-12-28 18:41:29
|-
| [http://maemo.org/profile/view/supkzg.html supkzg]
| kuan zgo
| 2007-12-13 21:41:07
|-
| [http://maemo.org/profile/view/surefit.html surefit]
| william boynansky
| 2008-04-23 11:41:13
|-
| [http://maemo.org/profile/view/suren21.html suren21]
| Surendrakumar Paulraj
| 2008-02-28 10:30:59
|-
| [http://maemo.org/profile/view/surfcitymojo.html surfcitymojo]
| Jeff Nicholson
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/surf_medic.html surf_medic]
| Adam Smith
| 2008-01-21 02:35:39
|-
| [http://maemo.org/profile/view/susanb.html susanb]
| susan bridgforth
| 2008-04-02 22:41:06
|-
| [http://maemo.org/profile/view/susanfrances.html susanfrances]
| susan bridgforth
| 2008-02-29 03:31:01
|-
| [http://maemo.org/profile/view/suse.html suse]
| s use
| 2008-04-04 18:41:12
|-
| [http://maemo.org/profile/view/sushil.html sushil]
| sushil shrestha
| 2008-03-17 22:31:04
|-
| [http://maemo.org/profile/view/sushil_victory.html sushil_victory]
| vellanki sushil
| 2008-02-26 04:31:01
|-
| [http://maemo.org/profile/view/susi.html susi]
| Heikki Susi
| 2007-11-16 17:46:23
|-
| [http://maemo.org/profile/view/susido.html susido]
| Chuck Andreas
| 2007-12-28 21:41:23
|-
| [http://maemo.org/profile/view/suskela.html suskela]
| Sami Uskela
| 2008-01-17 19:41:15
|-
| [http://maemo.org/profile/view/suso_cai.html suso_cai]
| Suso fernández
| 2007-05-18 19:10:31
|-
| [http://maemo.org/profile/view/sutasu.html sutasu]
| Stan Tereshenko
| 2007-12-18 19:41:14
|-
| [http://maemo.org/profile/view/sutaxinc.html sutaxinc]
| Paul Nelson
| 2007-06-21 17:40:07
|-
| [http://maemo.org/profile/view/svandeventer.html svandeventer]
| Shane van Deventer
| 2007-11-30 10:49:10
|-
| [http://maemo.org/profile/view/svartalf.html svartalf]
| Frank Earl
| 2008-02-26 20:31:07
|-
| [http://maemo.org/profile/view/svbackstreets.html svbackstreets]
| Dennis Lepak
| 2008-02-17 16:30:59
|-
| [http://maemo.org/profile/view/svdoever.html svdoever]
| Serge van den Oever
| 2007-05-18 19:11:26
|-
| [http://maemo.org/profile/view/sven.html sven]
| Sven Guettner
| 2007-05-18 19:12:11
|-
| [http://maemo.org/profile/view/sven-tek.html sven-tek]
| Sven Jaborek
| 2008-01-08 00:40:59
|-
| [http://maemo.org/profile/view/svenerik.html svenerik]
| Sven Erik Kölbel
| 2007-04-04 08:16:22
|-
| [http://maemo.org/profile/view/sveno.html sveno]
| Sven Olausson
| 2007-12-16 20:41:01
|-
| [http://maemo.org/profile/view/svensk.html svensk]
| Andrew svensk
| 2008-03-06 07:31:03
|-
| [http://maemo.org/profile/view/sverma.html sverma]
| Sameer Verma
| 2007-11-16 17:49:42
|-
| [http://maemo.org/profile/view/sviitane.html sviitane]
| Sami Viitanen
| 2007-05-18 19:14:28
|-
| [http://maemo.org/profile/view/svillar.html svillar]
| Sergio Villar Senin
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/svolpe.html svolpe]
| Shane Volpe
| 2007-10-18 11:40:28
|-
| [http://maemo.org/profile/view/svolz.html svolz]
| Stefan Volz
| 2007-11-16 17:47:49
|-
| [http://maemo.org/profile/view/svp.html svp]
| Sergei Pooheer
| 2007-05-18 19:13:01
|-
| [http://maemo.org/profile/view/svs-57.html svs-57]
| Sergey Smirnov
| 2008-05-07 19:41:07
|-
| [http://maemo.org/profile/view/svstar.html svstar]
| keith wo
| 2007-12-27 02:41:38
|-
| [http://maemo.org/profile/view/svu.html svu]
| Sergey Udaltsov
| 2007-05-18 19:13:18
|-
| [http://maemo.org/profile/view/sw01.html sw01]
| Steven Wall
| 2008-04-23 18:41:11
|-
| [http://maemo.org/profile/view/sw360cab.html sw360cab]
| Sergio Matone
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/swapper.html swapper]
| Luis Rodriguez
| 2007-10-21 21:40:45
|-
| [http://maemo.org/profile/view/swaroopchotu.html swaroopchotu]
| Swaroop Thoppil
| 2007-11-16 17:49:27
|-
| [http://maemo.org/profile/view/swarzy.html swarzy]
| Ettore Conte
| 2008-02-27 18:31:06
|-
| [http://maemo.org/profile/view/swatje.html swatje]
| F. Cauwe
| 2007-05-18 19:11:44
|-
| [http://maemo.org/profile/view/sweener.html sweener]
| Cory Wagner
| 2007-10-21 02:40:31
|-
| [http://maemo.org/profile/view/sweetbill.html sweetbill]
| Bing Lin
| 2007-11-16 17:47:19
|-
| [http://maemo.org/profile/view/sweetinfluence.html sweetinfluence]
| muhammed dogru
| 2008-04-13 17:41:06
|-
| [http://maemo.org/profile/view/sweinst.html sweinst]
| Serge Weinstock
| 2008-01-05 11:41:08
|-
| [http://maemo.org/profile/view/swen.html swen]
| Swen Weinhold
| 2008-03-29 14:31:07
|-
| [http://maemo.org/profile/view/swengib914.html swengib914]
| Terrance Turnage
| 2007-12-12 15:40:48
|-
| [http://maemo.org/profile/view/swervco.html swervco]
| K Curvin
| 2007-07-06 00:40:11
|-
| [http://maemo.org/profile/view/swest.html swest]
| Gonzo peng
| 2008-04-22 05:41:10
|-
| [http://maemo.org/profile/view/swettycat.html swettycat]
| Sergik Kotikov
| 2008-05-07 10:41:06
|-
| [http://maemo.org/profile/view/swfiua.html swfiua]
| John Gill
| 2007-10-19 19:40:32
|-
| [http://maemo.org/profile/view/swheatstone.html swheatstone]
| Steve Wheatstone
| 2007-11-16 17:47:48
|-
| [http://maemo.org/profile/view/swhiser.html swhiser]
| Sam Hiser
| 2007-05-18 19:11:04
|-
| [http://maemo.org/profile/view/swims.html swims]
| Shane Wims
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/swing.html swing]
| Kim Roos
| 2007-10-19 12:40:31
|-
| [http://maemo.org/profile/view/switcheddy.html switcheddy]
| switch eddy
| 2008-01-02 23:41:06
|-
| [http://maemo.org/profile/view/swobj.html swobj]
| Jahn Swob
| 2007-12-24 06:43:41
|-
| [http://maemo.org/profile/view/swoop.html swoop]
| M Abernathy
| 2007-11-16 17:46:56
|-
| [http://maemo.org/profile/view/sword_ch.html sword_ch]
| cheng jian
| 2007-06-08 13:37:20
|-
| [http://maemo.org/profile/view/swornom.html swornom]
| Sandy Wornom
| 2007-05-18 19:10:26
|-
| [http://maemo.org/profile/view/sx500.html sx500]
| Maks K.
| 2008-01-13 18:41:14
|-
| [http://maemo.org/profile/view/sxl269.html sxl269]
| sean lu
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/sxpert.html sxpert]
| Raphael Jacquot
| 2007-04-05 15:25:37
|-
| [http://maemo.org/profile/view/syam.html syam]
| Syam Madanapalli
| 2007-05-18 19:12:01
|-
| [http://maemo.org/profile/view/sycohen.html sycohen]
| sy cohen
| 2007-11-16 17:46:34
|-
| [http://maemo.org/profile/view/sydb.html sydb]
| Michael Pacey
| 2008-01-29 00:31:13
|-
| [http://maemo.org/profile/view/syedmunib.html syedmunib]
| Syed Munib Hadi
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/sylvainblot.html sylvainblot]
| Sylvain BLOT
| 2007-11-15 07:56:14
|-
| [http://maemo.org/profile/view/sylvaincarle.html sylvaincarle]
| Sylvain Carle
| 2007-10-23 13:40:34
|-
| [http://maemo.org/profile/view/symbbari.html symbbari]
| Kari Markkola
| 2007-06-28 19:40:10
|-
| [http://maemo.org/profile/view/symbiat.html symbiat]
| Ajai Khattri
| 2007-10-20 23:40:32
|-
| [http://maemo.org/profile/view/symbiatch.html symbiatch]
| Sami Kuhmonen
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/symphone.html symphone]
| Samuel Shen
| 2007-11-16 17:48:03
|-
| [http://maemo.org/profile/view/synchro.html synchro]
| R Daelmans
| 2007-05-18 19:11:45
|-
| [http://maemo.org/profile/view/synki.html synki]
| Juha-Matti Heikkala
| 2007-05-18 19:10:39
|-
| [http://maemo.org/profile/view/synok282.html synok282]
| Andrei Petrov
| 2008-02-05 16:31:17
|-
| [http://maemo.org/profile/view/synoptics.html synoptics]
| Luciano Caviglione
| 2008-06-03 19:41:23
|-
| [http://maemo.org/profile/view/syntinal.html syntinal]
| Kip Rains
| 2008-01-07 05:41:03
|-
| [http://maemo.org/profile/view/syrax.html syrax]
| Georgi Marinov
| 2007-11-16 17:47:56
|-
| [http://maemo.org/profile/view/syrjala.html syrjala]
| Ville Syrjala
| 2007-10-19 17:40:32
|-
| [http://maemo.org/profile/view/sys1997.html sys1997]
| Riverfour Hill
| 2007-05-18 19:13:45
|-
| [http://maemo.org/profile/view/sys49152.html sys49152]
| Robert Winkler
| 2008-02-14 20:31:14
|-
| [http://maemo.org/profile/view/sysco.html sysco]
| s h
| 2007-11-16 17:49:22
|-
| [http://maemo.org/profile/view/systa.html systa]
| Kari Systä
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/szypeople.html szypeople]
| Johnny Su
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/szzszzszz925.html szzszzszz925]
| Zhengzong Sun
| 2007-11-16 17:49:00
|-
| [http://maemo.org/profile/view/s_uliano.html s_uliano]
| Steve Uliano
| 2008-04-01 00:41:21
|-
| [http://maemo.org/profile/view/t-maemo.html t-maemo]
| t f
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/t-unit.html t-unit]
| Tobias Mann
| 2008-02-14 22:31:06
|-
| [http://maemo.org/profile/view/t-v.html t-v]
| Thomas Viehmann
| 2008-01-15 11:42:19
|-
| [http://maemo.org/profile/view/t1d7i0.html t1d7i0]
| Gerald Woergoetter
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/t3st3r.html t3st3r]
| t3st3r User
| 2007-10-18 03:40:27
|-
| [http://maemo.org/profile/view/t5kojo01.html t5kojo01]
| Joni Kokko
| 2008-04-02 10:41:05
|-
| [http://maemo.org/profile/view/ta2cpo.html ta2cpo]
| Ömer Güleray
| 2007-12-28 16:41:15
|-
| [http://maemo.org/profile/view/taarna.html taarna]
| Debra Christiansen
| 2007-12-11 16:25:23
|-
| [http://maemo.org/profile/view/tabatonga.html tabatonga]
| martin wegener
| 2007-12-19 22:41:38
|-
| [http://maemo.org/profile/view/tablet.html tablet]
| Kevin Wright
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/tabletman720.html tabletman720]
| Tim Hemingway
| 2007-05-18 19:12:12
|-
| [http://maemo.org/profile/view/tabletsh.html tabletsh]
| Sherif Hassabo
| 2007-10-23 19:40:35
|-
| [http://maemo.org/profile/view/tablet_newbie.html tablet_newbie]
| Simon Davis
| 2007-06-28 15:40:15
|-
| [http://maemo.org/profile/view/tabrez.html tabrez]
| Tabrez Iqbal
| 2007-11-16 17:48:16
|-
| [http://maemo.org/profile/view/taciana.html taciana]
| Taciana Rached
| 2008-05-13 13:41:08
|-
| [http://maemo.org/profile/view/tacraigjr.html tacraigjr]
| Tom Craig
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/tadafumi_ido.html tadafumi_ido]
| Tadafumi Ido
| 2007-06-28 00:40:08
|-
| [http://maemo.org/profile/view/tadeufilippini.html tadeufilippini]
| Jose Tadeu Agneli filippini
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/tagazok.html tagazok]
| Olivier Leplus
| 2007-10-21 20:40:31
|-
| [http://maemo.org/profile/view/taglioretti.html taglioretti]
| Roberto Taglioretti
| 2007-11-15 13:40:46
|-
| [http://maemo.org/profile/view/taguapire.html taguapire]
| Oscar A. Mata T.
| 2008-01-02 11:41:02
|-
| [http://maemo.org/profile/view/tah.html tah]
| Talita Menezes
| 2007-05-18 19:11:08
|-
| [http://maemo.org/profile/view/tahirsyyed.html tahirsyyed]
| Tahir Syed
| 2007-11-19 09:01:24
|-
| [http://maemo.org/profile/view/tahitibob35.html tahitibob35]
| David Hautbois
| 2007-05-18 19:12:09
|-
| [http://maemo.org/profile/view/tahoejoe.html tahoejoe]
| Joseph Longo
| 2007-11-28 15:43:35
|-
| [http://maemo.org/profile/view/tahorg.html tahorg]
| loic jeannin
| 2007-10-19 13:40:37
|-
| [http://maemo.org/profile/view/taillear.html taillear]
| noh liu
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/tajuma.html tajuma]
| Tatu Mannisto
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/tak.html tak]
| Levi Bard
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/takabanana.html takabanana]
| Takahito Torimoto
| 2007-06-25 14:40:07
|-
| [http://maemo.org/profile/view/takadesign.html takadesign]
| Atsushi Takayasu
| 2007-05-18 19:11:45
|-
| [http://maemo.org/profile/view/takizawa.html takizawa]
| kazuhiro takizawa
| 2007-11-03 11:40:36
|-
| [http://maemo.org/profile/view/talat.html talat]
| Talat UYARER
| 2007-11-28 15:43:17
|-
| [http://maemo.org/profile/view/talee.html talee]
| Teressa Lee
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/taliaki.html taliaki]
| leo cucchiara
| 2008-01-03 14:41:07
|-
| [http://maemo.org/profile/view/tallaoua.html tallaoua]
| Tarek ALLAOUA
| 2008-05-28 19:41:11
|-
| [http://maemo.org/profile/view/talli.html talli]
| talli somekh
| 2007-05-18 19:12:56
|-
| [http://maemo.org/profile/view/tallicame.html tallicame]
| Kathy Korky
| 2007-11-16 17:47:58
|-
| [http://maemo.org/profile/view/tallmamma.html tallmamma]
| Marty User
| 2007-11-16 17:47:33
|-
| [http://maemo.org/profile/view/talmage.html talmage]
| David Talmage
| 2008-03-06 17:31:04
|-
| [http://maemo.org/profile/view/talonso.html talonso]
| Tirso Alonso
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/talonusaf81.html talonusaf81]
| WILLIAM CHAPIN
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/talpa.html talpa]
| Visti Andresen
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/tama.html tama]
| Ta Ma
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/tamara.html tamara]
| Tamara Baia
| 2007-05-18 19:11:24
|-
| [http://maemo.org/profile/view/tamarin2087.html tamarin2087]
| Levi Sauerbrei
| 2008-03-08 02:31:07
|-
| [http://maemo.org/profile/view/tambor.html tambor]
| attilio panzeri
| 2008-03-16 09:31:01
|-
| [http://maemo.org/profile/view/tambor54.html tambor54]
| attilio panzeri
| 2008-03-30 15:31:08
|-
| [http://maemo.org/profile/view/tamim.html tamim]
| Tamim Haroun
| 2007-12-11 19:41:16
|-
| [http://maemo.org/profile/view/tampstaffs.html tampstaffs]
| kalyan kondaplly
| 2007-10-23 02:40:36
|-
| [http://maemo.org/profile/view/tanchai.html tanchai]
| Jackson Lin
| 2008-02-26 01:31:07
|-
| [http://maemo.org/profile/view/tang.html tang]
| haitao tang
| 2006-12-13 11:30:05
|-
| [http://maemo.org/profile/view/tangea.html tangea]
| antonio carofiglio
| 2008-04-06 16:41:08
|-
| [http://maemo.org/profile/view/tanglebaby.html tanglebaby]
| chris dickson
| 2007-11-16 17:48:15
|-
| [http://maemo.org/profile/view/tanguy.html tanguy]
| Tanguy BONNEAU
| 2008-01-30 18:30:33
|-
| [http://maemo.org/profile/view/tanguyr.html tanguyr]
| Tanguy Rademakers
| 2008-03-14 10:31:09
|-
| [http://maemo.org/profile/view/tank.html tank]
| tank tank
| 2008-06-08 17:31:20
|-
| [http://maemo.org/profile/view/tanuzzodesign.html tanuzzodesign]
| Gaetano Polizzi
| 2007-10-22 08:40:36
|-
| [http://maemo.org/profile/view/tanveer.html tanveer]
| tanveer qureshi
| 2007-05-18 19:12:19
|-
| [http://maemo.org/profile/view/tanya2616.html tanya2616]
| tanya skippen
| 2008-03-25 22:31:06
|-
| [http://maemo.org/profile/view/tao.html tao]
| David Weinehall
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/taomelos.html taomelos]
| Marc Baldwin
| 2008-02-07 01:32:28
|-
| [http://maemo.org/profile/view/taowow.html taowow]
| Dan Larson
| 2007-05-18 19:10:40
|-
| [http://maemo.org/profile/view/tapio_hirvela.html tapio_hirvela]
| Tapio Hirvela
| 2007-05-18 19:11:25
|-
| [http://maemo.org/profile/view/tappenchris.html tappenchris]
| Chris HO
| 2007-12-11 16:26:32
|-
| [http://maemo.org/profile/view/taqu.html taqu]
| tanja quinten
| 2007-11-16 17:49:11
|-
| [http://maemo.org/profile/view/tarby.html tarby]
| Péter Tarbaj
| 2007-10-19 08:40:30
|-
| [http://maemo.org/profile/view/tardyp.html tardyp]
| Pierre tardy
| 2007-10-20 01:40:33
|-
| [http://maemo.org/profile/view/target123.html target123]
| goda jdgas
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/targget.html targget]
| targget targget
| 2008-03-18 09:31:03
|-
| [http://maemo.org/profile/view/tarikul_hut.html tarikul_hut]
| Md. Tarikul Islam
| 2008-02-04 10:31:37
|-
| [http://maemo.org/profile/view/tariq.html tariq]
| Tariq Farooqi
| 2007-06-10 09:40:50
|-
| [http://maemo.org/profile/view/tarkhil.html tarkhil]
| Alex Povolotsky
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/tarkness.html tarkness]
| Tarkan Nein
| 2007-10-18 18:40:04
|-
| [http://maemo.org/profile/view/tartatack.html tartatack]
| Adrian Lopez Becerra
| 2007-12-11 16:26:31
|-
| [http://maemo.org/profile/view/taruross.html taruross]
| Taru Ross
| 2007-11-16 17:46:47
|-
| [http://maemo.org/profile/view/tarvid.html tarvid]
| Jim Tarvid
| 2008-04-16 02:51:12
|-
| [http://maemo.org/profile/view/tash.html tash]
| t ash
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/tasha401.html tasha401]
| Tasha Marshall
| 2008-03-05 06:30:59
|-
| [http://maemo.org/profile/view/tashador.html tashador]
| Doris Jones
| 2008-03-21 02:31:09
|-
| [http://maemo.org/profile/view/tasmanian.html tasmanian]
| Eriks Jansons
| 2007-11-15 07:56:18
|-
| [http://maemo.org/profile/view/taspts.html taspts]
| Per Sjöholm
| 2008-01-16 22:42:31
|-
| [http://maemo.org/profile/view/tastier.html tastier]
| John Atkins
| 2008-02-01 17:31:44
|-
| [http://maemo.org/profile/view/tastyklean.html tastyklean]
| Jonathan Pugh
| 2008-03-09 18:31:03
|-
| [http://maemo.org/profile/view/tatiana.html tatiana]
| Tatiana Meshkova
| 2008-05-06 08:41:25
|-
| [http://maemo.org/profile/view/tatsurei.html tatsurei]
| Daniel Blank
| 2007-11-15 07:56:16
|-
| [http://maemo.org/profile/view/tatumannisto.html tatumannisto]
| Tatu Mannisto
| 2007-05-18 19:12:27
|-
| [http://maemo.org/profile/view/tavellan.html tavellan]
| Tero Avellan
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/taveyard.html taveyard]
| tony aveyard
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/tavvo.html tavvo]
| Gustavo Solera
| 2008-02-11 17:42:45
|-
| [http://maemo.org/profile/view/taycait.html taycait]
| Scott Evers
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/tayedrumma.html tayedrumma]
| wes kennedy
| 2007-11-16 17:47:44
|-
| [http://maemo.org/profile/view/taz.html taz]
| javier diaz
| 2008-03-28 20:31:06
|-
| [http://maemo.org/profile/view/tb303.html tb303]
| Moi Toi
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/tb6471.html tb6471]
| Tyler Beechey
| 2008-02-05 16:31:18
|-
| [http://maemo.org/profile/view/tbambrou.html tbambrou]
| thomas bambrough
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/tbason.html tbason]
| Tom Bason
| 2007-10-27 02:40:35
|-
| [http://maemo.org/profile/view/tben54.html tben54]
| Terry Bennett
| 2007-05-18 19:13:13
|-
| [http://maemo.org/profile/view/tbergstr.html tbergstr]
| Terje Bergström
| 2007-05-18 19:12:57
|-
| [http://maemo.org/profile/view/tbirdchuck.html tbirdchuck]
| Charles Castro
| 2007-11-16 17:49:35
|-
| [http://maemo.org/profile/view/tbm.html tbm]
| Martin Michlmayr
| 2007-10-20 12:40:34
|-
| [http://maemo.org/profile/view/tbryla.html tbryla]
| Tomasz Bryla
| 2007-10-14 14:40:38
|-
| [http://maemo.org/profile/view/tbullivant.html tbullivant]
| Todd Bullivant
| 2007-10-22 16:40:32
|-
| [http://maemo.org/profile/view/tcase.html tcase]
| Tony Case
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/tcetin.html tcetin]
| Tevfik Cetin
| 2007-10-18 12:40:27
|-
| [http://maemo.org/profile/view/tchong1967.html tchong1967]
| ted chong
| 2007-07-04 22:40:16
|-
| [http://maemo.org/profile/view/tclangston.html tclangston]
| Todd Langston
| 2007-07-05 16:40:10
|-
| [http://maemo.org/profile/view/tclavier.html tclavier]
| Thomas Clavier
| 2007-05-18 19:10:41
|-
| [http://maemo.org/profile/view/tdahlia.html tdahlia]
| larry phenis
| 2007-05-18 19:11:34
|-
| [http://maemo.org/profile/view/tdavis34.html tdavis34]
| Tim Davis
| 2007-12-11 16:25:43
|-
| [http://maemo.org/profile/view/tdebug.html tdebug]
| Gleb Kuzmin
| 2007-11-16 17:49:27
|-
| [http://maemo.org/profile/view/tdickes.html tdickes]
| Thomas Dickes
| 2007-12-22 19:41:45
|-
| [http://maemo.org/profile/view/tdk_1988.html tdk_1988]
| mohmmad taher
| 2008-04-17 15:41:05
|-
| [http://maemo.org/profile/view/tdrakenh.html tdrakenh]
| Thomas Drake
| 2007-11-05 18:40:41
|-
| [http://maemo.org/profile/view/tds-cdma.html tds-cdma]
| Hai Tang
| 2007-11-16 17:47:42
|-
| [http://maemo.org/profile/view/tdscdma.html tdscdma]
| ha ta
| 2007-06-23 19:40:07
|-
| [http://maemo.org/profile/view/tdthawke.html tdthawke]
| Tosh Hawke
| 2007-11-16 17:48:17
|-
| [http://maemo.org/profile/view/teal123.html teal123]
| Garry Thompson
| 2008-03-24 01:31:16
|-
| [http://maemo.org/profile/view/teamstaz.html teamstaz]
| michael burroughs
| 2007-06-11 03:20:46
|-
| [http://maemo.org/profile/view/tecedo.html tecedo]
| Tyrone Collins
| 2007-12-20 08:41:24
|-
| [http://maemo.org/profile/view/techbiz.html techbiz]
| C Ng
| 2007-11-30 10:48:49
|-
| [http://maemo.org/profile/view/techbod.html techbod]
| marcus grant
| 2008-01-26 21:32:13
|-
| [http://maemo.org/profile/view/techhead49.html techhead49]
| Steve Oak
| 2008-05-31 19:41:13
|-
| [http://maemo.org/profile/view/techie_deepak.html techie_deepak]
| deepak sharma
| 2008-05-15 05:41:07
|-
| [http://maemo.org/profile/view/techman.html techman]
| W E
| 2008-01-06 10:41:48
|-
| [http://maemo.org/profile/view/technelio.html technelio]
| Nelio Lima
| 2008-03-04 21:31:11
|-
| [http://maemo.org/profile/view/technoman.html technoman]
| Guenther bauer
| 2008-04-26 03:45:22
|-
| [http://maemo.org/profile/view/technopodman.html technopodman]
| Alberto Baez
| 2007-05-18 19:11:03
|-
| [http://maemo.org/profile/view/technut.html technut]
| technut .
| 2007-11-03 03:40:41
|-
| [http://maemo.org/profile/view/techuser.html techuser]
| Anup Sharma
| 2007-10-21 12:40:34
|-
| [http://maemo.org/profile/view/techwolf.html techwolf]
| liqiang zhang
| 2007-11-28 15:43:34
|-
| [http://maemo.org/profile/view/tecknix.html tecknix]
| Teck Nix
| 2007-05-18 19:14:33
|-
| [http://maemo.org/profile/view/ted.html ted]
| Ted Gould
| 2007-10-18 20:40:33
|-
| [http://maemo.org/profile/view/ted3929.html ted3929]
| Art Schreckengost
| 2007-05-18 19:13:55
|-
| [http://maemo.org/profile/view/tedbean.html tedbean]
| Ted Bean
| 2007-06-26 21:40:07
|-
| [http://maemo.org/profile/view/teddy1018.html teddy1018]
| Teddy Tsai
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/teddyshady.html teddyshady]
| Frederick Safadi
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/tedel.html tedel]
| Thomas Edelmann
| 2007-10-19 12:40:32
|-
| [http://maemo.org/profile/view/tedesj.html tedesj]
| J T
| 2007-06-30 22:40:58
|-
| [http://maemo.org/profile/view/tedp.html tedp]
| Ted Pomeroy
| 2007-11-30 10:49:35
|-
| [http://maemo.org/profile/view/teek.html teek]
| Michael Dopp
| 2007-10-27 14:40:36
|-
| [http://maemo.org/profile/view/teekainu.html teekainu]
| Teemu Kainulainen
| 2007-05-18 19:10:29
|-
| [http://maemo.org/profile/view/teemuhir.html teemuhir]
| Teemu Hirvonen
| 2007-11-16 17:49:31
|-
| [http://maemo.org/profile/view/teemum.html teemum]
| Teemu Mäki
| 2007-11-16 17:48:48
|-
| [http://maemo.org/profile/view/tehif.html tehif]
| Ivan Tsvetanov
| 2007-12-11 16:25:18
|-
| [http://maemo.org/profile/view/tehmasp.html tehmasp]
| Tehmasp C.
| 2007-06-26 05:40:09
|-
| [http://maemo.org/profile/view/teiterryd.html teiterryd]
| William D'Silva
| 2008-04-17 01:41:22
|-
| [http://maemo.org/profile/view/tekinesmer.html tekinesmer]
| tekin esmer
| 2007-11-16 17:47:46
|-
| [http://maemo.org/profile/view/tekio.html tekio]
| Ismail C
| 2007-11-28 15:43:37
|-
| [http://maemo.org/profile/view/teknico.html teknico]
| Nicola Larosa
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/tekristo.html tekristo]
| Tero Kristo
| 2007-08-07 13:40:14
|-
| [http://maemo.org/profile/view/tektronic.html tektronic]
| Lucian Darie
| 2008-05-21 22:41:10
|-
| [http://maemo.org/profile/view/telbone.html telbone]
| Mark Drozd
| 2008-02-28 07:31:02
|-
| [http://maemo.org/profile/view/telcorion.html telcorion]
| sacha heck
| 2007-10-25 23:40:27
|-
| [http://maemo.org/profile/view/telema.html telema]
| Stefan Thiem
| 2008-02-01 01:41:04
|-
| [http://maemo.org/profile/view/tellarhk.html tellarhk]
| Joshua Johnston
| 2007-11-03 09:40:37
|-
| [http://maemo.org/profile/view/telnet05.html telnet05]
| kosm avger
| 2008-03-06 16:31:13
|-
| [http://maemo.org/profile/view/tenedor.html tenedor]
| cesar mendoza
| 2008-02-26 04:31:01
|-
| [http://maemo.org/profile/view/tenente_gio.html tenente_gio]
| giovanni cecati
| 2007-11-28 15:43:26
|-
| [http://maemo.org/profile/view/tenkawa.html tenkawa]
| MaShaun Jones
| 2007-12-14 20:41:00
|-
| [http://maemo.org/profile/view/tenordma.html tenordma]
| Teemu Nordman
| 2007-11-28 15:43:18
|-
| [http://maemo.org/profile/view/tentalos.html tentalos]
| hamza kallouchi
| 2007-07-15 16:40:10
|-
| [http://maemo.org/profile/view/teog69.html teog69]
| Matteo Gallignani
| 2007-12-28 12:41:29
|-
| [http://maemo.org/profile/view/teppo.html teppo]
| Teo Taponen
| 2007-11-16 17:49:28
|-
| [http://maemo.org/profile/view/terabyte1.html terabyte1]
| Hugo Shepherd
| 2007-11-16 17:49:10
|-
| [http://maemo.org/profile/view/teradome.html teradome]
| Noah M
| 2007-09-25 22:40:25
|-
| [http://maemo.org/profile/view/teraguru1.html teraguru1]
| Rajneesh Sharma
| 2007-11-16 17:49:28
|-
| [http://maemo.org/profile/view/teratec.html teratec]
| Butera Pierino
| 2008-01-04 21:42:32
|-
| [http://maemo.org/profile/view/tereos.html tereos]
| Teresa Eos
| 2008-01-04 08:40:56
|-
| [http://maemo.org/profile/view/tereos8.html tereos8]
| teresa eos
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/terje.html terje]
| Terje Bergström
| 2007-05-18 19:12:49
|-
| [http://maemo.org/profile/view/terkkie711.html terkkie711]
| Kyle Radon
| 2007-12-11 16:26:00
|-
| [http://maemo.org/profile/view/termy92.html termy92]
| Mark Hong
| 2007-11-16 17:46:53
|-
| [http://maemo.org/profile/view/tero.html tero]
| Tero Salminen
| 2008-06-06 10:41:11
|-
| [http://maemo.org/profile/view/teroaijala.html teroaijala]
| Tero Äijälä
| 2008-03-17 07:31:00
|-
| [http://maemo.org/profile/view/teroz.html teroz]
| Terence Namusonge
| 2007-10-18 21:40:32
|-
| [http://maemo.org/profile/view/terraces.html terraces]
| Alexandre Passant
| 2007-11-02 17:40:35
|-
| [http://maemo.org/profile/view/terrance.html terrance]
| T Williams
| 2008-05-04 01:41:09
|-
| [http://maemo.org/profile/view/terrencegf.html terrencegf]
| Terrence Fleury
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/terroar.html terroar]
| Ernest Lyons
| 2007-11-16 17:48:30
|-
| [http://maemo.org/profile/view/terrortot.html terrortot]
| Reindeer Lover
| 2007-10-21 02:40:30
|-
| [http://maemo.org/profile/view/terryb.html terryb]
| Terry B
| 2008-03-05 21:31:07
|-
| [http://maemo.org/profile/view/terryd.html terryd]
| William D'Silva
| 2008-05-02 16:41:14
|-
| [http://maemo.org/profile/view/terrydoc.html terrydoc]
| Terry Docherty
| 2008-03-27 02:31:10
|-
| [http://maemo.org/profile/view/terryrussell.html terryrussell]
| terry russell
| 2008-01-01 01:41:26
|-
| [http://maemo.org/profile/view/terrys61.html terrys61]
| Terry Slade
| 2007-12-21 05:40:57
|-
| [http://maemo.org/profile/view/teryfoley.html teryfoley]
| terry foley
| 2007-05-18 19:11:24
|-
| [http://maemo.org/profile/view/test.html test]
| test test
| 2008-04-29 11:41:03
|-
| [http://maemo.org/profile/view/test1.html test1]
| Test1 User1
| 2007-11-30 10:49:08
|-
| [http://maemo.org/profile/view/test2.html test2]
| Test2 User
| 2007-11-16 17:49:05
|-
| [http://maemo.org/profile/view/test3.html test3]
| Test3 User
| 2007-11-30 10:49:08
|-
| [http://maemo.org/profile/view/test4.html test4]
| Test4 User
| 2007-11-30 10:49:08
|-
| [http://maemo.org/profile/view/test5.html test5]
| Test5 User
| 2007-11-30 10:49:08
|-
| [http://maemo.org/profile/view/tester.html tester]
| Olivier Crête
| 2007-10-18 14:40:08
|-
| [http://maemo.org/profile/view/testmidgard.html testmidgard]
| test test
| 2007-05-21 13:43:24
|-
| [http://maemo.org/profile/view/testreplication.html testreplication]
| Test Replication
| 2007-04-05 15:25:38
|-
| [http://maemo.org/profile/view/teturtia.html teturtia]
| Tero Turtiainen
| 2008-05-30 06:41:12
|-
| [http://maemo.org/profile/view/teuerland.html teuerland]
| Renato Pellegrini
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/teuf.html teuf]
| Christophe Fergeau
| 2007-10-20 09:40:31
|-
| [http://maemo.org/profile/view/tevans.html tevans]
| Thomas Evans
| 2008-02-07 20:42:57
|-
| [http://maemo.org/profile/view/tevi.html tevi]
| Xavier Batlle
| 2007-05-18 19:14:45
|-
| [http://maemo.org/profile/view/teviitan.html teviitan]
| Tero Viitanen
| 2007-05-18 19:11:39
|-
| [http://maemo.org/profile/view/tevion.html tevion]
| martin grover
| 2008-03-01 15:31:02
|-
| [http://maemo.org/profile/view/tewald.html tewald]
| Thomas Ewald
| 2007-10-26 17:40:13
|-
| [http://maemo.org/profile/view/texaskiwi.html texaskiwi]
| charlie morris
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/texiwill.html texiwill]
| Edward Haletky
| 2007-12-21 15:51:16
|-
| [http://maemo.org/profile/view/texrat.html texrat]
| Randall Arnold
| 2007-05-18 19:12:13
|-
| [http://maemo.org/profile/view/teziegler.html teziegler]
| Tom Ziegler
| 2007-11-28 16:00:57
|-
| [http://maemo.org/profile/view/tfeger.html tfeger]
| t feger
| 2008-05-08 21:41:08
|-
| [http://maemo.org/profile/view/tfheen.html tfheen]
| Tollef Fog Heen
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/tfichtel.html tfichtel]
| Thomas Fichtel
| 2007-05-18 19:11:52
|-
| [http://maemo.org/profile/view/tfindley.html tfindley]
| Tristan Findley
| 2007-10-19 09:40:33
|-
| [http://maemo.org/profile/view/tfinnan.html tfinnan]
| Timothy Finnan
| 2007-05-18 19:10:40
|-
| [http://maemo.org/profile/view/tfinnert.html tfinnert]
| todd finnerty
| 2007-12-28 04:40:56
|-
| [http://maemo.org/profile/view/tfjosmi.html tfjosmi]
| Johannes Schmidt
| 2007-05-18 19:11:03
|-
| [http://maemo.org/profile/view/tfrobase.html tfrobase]
| tom frobase
| 2007-11-30 10:48:56
|-
| [http://maemo.org/profile/view/tfyre.html tfyre]
| Francois Steyn
| 2007-05-18 19:11:15
|-
| [http://maemo.org/profile/view/tgalati4.html tgalati4]
| Terence Galati
| 2007-05-18 19:12:13
|-
| [http://maemo.org/profile/view/tganser.html tganser]
| Todd Ganser
| 2007-05-18 19:10:40
|-
| [http://maemo.org/profile/view/tgebhardt.html tgebhardt]
| Torsten Gebhardt
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/tgfb.html tgfb]
| Tiago Barros
| 2007-10-18 13:40:30
|-
| [http://maemo.org/profile/view/tghocson.html tghocson]
| Tony Hocson
| 2007-08-04 22:40:22
|-
| [http://maemo.org/profile/view/tgilpe.html tgilpe]
| Tomás Gil
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/tgreenwood2.html tgreenwood2]
| Thomas Greenwood
| 2007-10-24 15:40:33
|-
| [http://maemo.org/profile/view/tgreico.html tgreico]
| tom greico
| 2007-07-04 17:40:15
|-
| [http://maemo.org/profile/view/tgrosser.html tgrosser]
| Thomas Grosser
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/tgunning.html tgunning]
| tom gunning
| 2008-03-02 18:31:00
|-
| [http://maemo.org/profile/view/thadkrgr.html thadkrgr]
| Thad Krueger
| 2007-05-18 19:12:04
|-
| [http://maemo.org/profile/view/thagrasshoppa.html thagrasshoppa]
| Tim Cusack
| 2008-01-30 20:42:38
|-
| [http://maemo.org/profile/view/thai94.html thai94]
| chai isaroskul
| 2008-02-22 13:30:56
|-
| [http://maemo.org/profile/view/thanatermesis.html thanatermesis]
| Samuel Flores
| 2007-11-28 15:43:35
|-
| [http://maemo.org/profile/view/thangatc.html thangatc]
| thang do
| 2007-07-10 05:40:12
|-
| [http://maemo.org/profile/view/thanhbka85dn.html thanhbka85dn]
| Nguyen Tien Thanh
| 2007-12-30 19:41:21
|-
| [http://maemo.org/profile/view/thatchmaster.html thatchmaster]
| Erik Thatcher
| 2008-01-05 03:40:58
|-
| [http://maemo.org/profile/view/thatcloud.html thatcloud]
| That Cloud
| 2007-05-12 17:14:07
|-
| [http://maemo.org/profile/view/thatguy.html thatguy]
| that guy
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/thaukko.html thaukko]
| Chrisroph Maerz
| 2007-06-09 22:11:08
|-
| [http://maemo.org/profile/view/thayford.html thayford]
| Tracy Hayford
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/thaytan.html thaytan]
| Jan Schmidt
| 2007-10-19 08:40:30
|-
| [http://maemo.org/profile/view/thbrehme.html thbrehme]
| thomas brehme
| 2007-12-20 06:40:57
|-
| [http://maemo.org/profile/view/thebat137.html thebat137]
| Anne Hanna
| 2008-05-12 17:41:09
|-
| [http://maemo.org/profile/view/thebluenile.html thebluenile]
| Henrikki Selkee
| 2007-10-20 22:40:33
|-
| [http://maemo.org/profile/view/thebyte.html thebyte]
| John Sonal
| 2007-10-21 00:40:33
|-
| [http://maemo.org/profile/view/thecage.html thecage]
| Antero Närvä
| 2007-11-02 12:40:36
|-
| [http://maemo.org/profile/view/thecodeman.html thecodeman]
| Derek Lawson
| 2008-04-02 14:41:07
|-
| [http://maemo.org/profile/view/thecolorblue.html thecolorblue]
| brad davis
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/thedarkrabbit.html thedarkrabbit]
| A. Woolner
| 2008-01-16 08:40:57
|-
| [http://maemo.org/profile/view/theeminent1.html theeminent1]
| Scott B.
| 2007-12-20 20:42:15
|-
| [http://maemo.org/profile/view/theflew.html theflew]
| Mark Flewellen
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/thefuture.html thefuture]
| the future
| 2007-11-15 07:55:21
|-
| [http://maemo.org/profile/view/theice_man.html theice_man]
| shane craig
| 2008-01-11 11:11:17
|-
| [http://maemo.org/profile/view/theideaman.html theideaman]
| Benjamin Young
| 2007-11-01 14:40:38
|-
| [http://maemo.org/profile/view/thejasco.html thejasco]
| Simone Scalas
| 2007-10-22 12:40:34
|-
| [http://maemo.org/profile/view/thejgang.html thejgang]
| John Schroeder
| 2008-02-01 05:31:10
|-
| [http://maemo.org/profile/view/thejohnpainter.html thejohnpainter]
| John Painter
| 2007-10-21 02:40:31
|-
| [http://maemo.org/profile/view/thejoker.html thejoker]
| Jocke Selin
| 2008-03-28 15:31:06
|-
| [http://maemo.org/profile/view/themegaman.html themegaman]
| Adam Parsons
| 2008-02-20 15:31:08
|-
| [http://maemo.org/profile/view/thengh.html thengh]
| Tom Engh
| 2007-05-18 19:12:20
|-
| [http://maemo.org/profile/view/thenossens.html thenossens]
| Robert Nossen
| 2008-01-25 23:31:09
|-
| [http://maemo.org/profile/view/theodank.html theodank]
| Theo Drimalas
| 2008-01-27 22:31:35
|-
| [http://maemo.org/profile/view/theoryno3.html theoryno3]
| P R
| 2007-06-08 13:37:20
|-
| [http://maemo.org/profile/view/thepainter.html thepainter]
| paul Minott
| 2007-11-15 07:55:30
|-
| [http://maemo.org/profile/view/thepimpdaddy.html thepimpdaddy]
| chris okay
| 2008-03-27 14:31:05
|-
| [http://maemo.org/profile/view/theplaz.html theplaz]
| Michael Plasmeier
| 2007-10-19 00:40:51
|-
| [http://maemo.org/profile/view/thequickone.html thequickone]
| J. Quick
| 2008-05-20 21:41:14
|-
| [http://maemo.org/profile/view/therainman.html therainman]
| luca miccini
| 2007-10-19 22:40:31
|-
| [http://maemo.org/profile/view/therblack.html therblack]
| Richard Black
| 2007-03-19 15:34:20
|-
| [http://maemo.org/profile/view/theril.html theril]
| Jami Pekkanen
| 2007-08-30 12:40:22
|-
| [http://maemo.org/profile/view/therziger.html therziger]
| tobias herziger
| 2008-02-22 08:30:57
|-
| [http://maemo.org/profile/view/thesandlord.html thesandlord]
| Sandeep Dinesh
| 2008-01-06 19:41:37
|-
| [http://maemo.org/profile/view/thesprocket.html thesprocket]
| Brian Hughes
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/thess.html thess]
| Tim Hess
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/thethibs.html thethibs]
| Marc Thibault
| 2008-04-09 00:43:00
|-
| [http://maemo.org/profile/view/thevin.html thevin]
| vinh diep
| 2007-06-29 05:40:09
|-
| [http://maemo.org/profile/view/thewalt.html thewalt]
| Walter Jevack
| 2008-01-16 13:41:29
|-
| [http://maemo.org/profile/view/thewetpaperbag.html thewetpaperbag]
| Gustave Younggren
| 2007-11-16 17:49:03
|-
| [http://maemo.org/profile/view/the_codeman.html the_codeman]
| ken segler
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/the_ether.html the_ether]
| g c
| 2008-01-30 02:31:23
|-
| [http://maemo.org/profile/view/the_handy_andy.html the_handy_andy]
| Andrew Buckley
| 2007-10-29 19:42:09
|-
| [http://maemo.org/profile/view/the_skizal.html the_skizal]
| j v
| 2007-08-13 21:40:22
|-
| [http://maemo.org/profile/view/thiagobrunoms.html thiagobrunoms]
| Thiago Sales
| 2007-05-18 19:12:24
|-
| [http://maemo.org/profile/view/thiagodefreitas.html thiagodefreitas]
| Thiago de Freitas
| 2007-05-18 19:12:22
|-
| [http://maemo.org/profile/view/thiagoss.html thiagoss]
| Thiago Sousa Santos
| 2007-11-16 17:49:04
|-
| [http://maemo.org/profile/view/thiagozanetti.html thiagozanetti]
| Thiago Zanetti
| 2008-06-10 15:31:14
|-
| [http://maemo.org/profile/view/thibri.html thibri]
| Thijs Brinkman
| 2008-03-06 02:41:12
|-
| [http://maemo.org/profile/view/thiebaut.html thiebaut]
| Thiebaut Mochel
| 2007-10-21 08:40:30
|-
| [http://maemo.org/profile/view/thienpont.html thienpont]
| thienpont eric
| 2007-05-18 19:11:05
|-
| [http://maemo.org/profile/view/thiercito.html thiercito]
| thier cito
| 2008-01-14 02:41:10
|-
| [http://maemo.org/profile/view/thierer.html thierer]
| Martin Thierer
| 2007-11-15 07:56:02
|-
| [http://maemo.org/profile/view/thierry.html thierry]
| Thierry Husson
| 2008-03-25 21:32:21
|-
| [http://maemo.org/profile/view/thierryb.html thierryb]
| Thierry Blanchard
| 2007-12-29 19:41:28
|-
| [http://maemo.org/profile/view/thierrymaemo.html thierrymaemo]
| Thierry Rosenthal
| 2007-11-16 17:46:32
|-
| [http://maemo.org/profile/view/thijs.html thijs]
| Thijs Brouwer
| 2008-01-05 19:41:03
|-
| [http://maemo.org/profile/view/thinh.html thinh]
| Thinh Nguyen
| 2007-05-18 19:11:03
|-
| [http://maemo.org/profile/view/thinhnd.html thinhnd]
| Thinh Nguyen
| 2007-11-30 10:48:29
|-
| [http://maemo.org/profile/view/thinhoe.html thinhoe]
| Thin Hoe
| 2007-11-16 17:47:47
|-
| [http://maemo.org/profile/view/thinker45.html thinker45]
| James Pieper
| 2008-02-18 10:30:59
|-
| [http://maemo.org/profile/view/thirdmani.html thirdmani]
| Third Man
| 2007-05-18 19:13:28
|-
| [http://maemo.org/profile/view/thmorf.html thmorf]
| Thomas Morf
| 2007-11-16 17:49:09
|-
| [http://maemo.org/profile/view/thoenig.html thoenig]
| Timo Hönig
| 2007-10-21 16:40:31
|-
| [http://maemo.org/profile/view/thoma.html thoma]
| Daisuke Aoki
| 2008-03-22 07:31:03
|-
| [http://maemo.org/profile/view/thomasd.html thomasd]
| Thomas Dankert
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/thomasdawes.html thomasdawes]
| Bach Tsan
| 2007-05-29 09:30:40
|-
| [http://maemo.org/profile/view/thomasvm.html thomasvm]
| Thomas Van Machelen
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/thomb.html thomb]
| Thom Berg
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/thompson2020.html thompson2020]
| James Thompson
| 2007-11-16 17:49:24
|-
| [http://maemo.org/profile/view/thompsonc_tate.html thompsonc_tate]
| Chris Thompson
| 2008-03-14 20:31:08
|-
| [http://maemo.org/profile/view/thor101.html thor101]
| B T
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/thorbo.html thorbo]
| Thor Larsen
| 2007-05-18 19:10:35
|-
| [http://maemo.org/profile/view/thorg.html thorg]
| Jean-Philippe Prat
| 2007-10-19 18:40:35
|-
| [http://maemo.org/profile/view/thorne.html thorne]
| David Lugo
| 2007-10-26 09:40:34
|-
| [http://maemo.org/profile/view/thornja.html thornja]
| jason thornton
| 2007-11-16 17:46:49
|-
| [http://maemo.org/profile/view/thorstenwagner.html thorstenwagner]
| Thorsten Wagner
| 2007-01-08 10:30:04
|-
| [http://maemo.org/profile/view/thoughtfix.html thoughtfix]
| Daniel Gentleman
| 2007-05-18 19:13:45
|-
| [http://maemo.org/profile/view/thp.html thp]
| Thomas Perl
| 2008-01-23 11:31:12
|-
| [http://maemo.org/profile/view/thraxygine.html thraxygine]
| dennis buison
| 2008-04-05 20:41:07
|-
| [http://maemo.org/profile/view/threadsofchoice.html threadsofchoice]
| Marjorie Acuff
| 2008-04-01 23:41:08
|-
| [http://maemo.org/profile/view/thrivedan.html thrivedan]
| danny daniels
| 2007-11-30 10:49:36
|-
| [http://maemo.org/profile/view/throughnothing.html throughnothing]
| William Wolf
| 2007-05-18 19:12:14
|-
| [http://maemo.org/profile/view/thsantos.html thsantos]
| Thiago Santos
| 2007-10-15 16:40:28
|-
| [http://maemo.org/profile/view/thugbug99.html thugbug99]
| Alex Pokazanov
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/thuleorfe.html thuleorfe]
| Thule ORFE
| 2008-01-22 07:31:02
|-
| [http://maemo.org/profile/view/thumbface.html thumbface]
| Benjamin Schechter
| 2007-07-04 21:40:16
|-
| [http://maemo.org/profile/view/thunder.html thunder]
| Sargeant Major
| 2008-02-19 13:30:59
|-
| [http://maemo.org/profile/view/tiago.html tiago]
| tiago alves
| 2007-05-18 19:13:08
|-
| [http://maemo.org/profile/view/tiagomedeiros.html tiagomedeiros]
| Tiago Medeiros
| 2008-03-31 17:41:09
|-
| [http://maemo.org/profile/view/tians.html tians]
| tians tians
| 2007-10-21 04:40:41
|-
| [http://maemo.org/profile/view/tiaren.html tiaren]
| tiziano arena
| 2007-11-15 07:56:11
|-
| [http://maemo.org/profile/view/tiash.html tiash]
| Artashes Antonyan
| 2008-02-02 22:31:11
|-
| [http://maemo.org/profile/view/tibi2004.html tibi2004]
| TIBOR FAJT
| 2007-11-16 17:49:38
|-
| [http://maemo.org/profile/view/tibor73.html tibor73]
| T A
| 2007-06-19 07:10:35
|-
| [http://maemo.org/profile/view/ticapix.html ticapix]
| pierre gronlier
| 2007-10-19 12:40:32
|-
| [http://maemo.org/profile/view/tickneb.html tickneb]
| Ben Tickner
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/tifapabi.html tifapabi]
| tixi ermeio
| 2007-11-16 17:46:39
|-
| [http://maemo.org/profile/view/tigerpilot.html tigerpilot]
| Don Ivener
| 2008-04-14 13:41:17
|-
| [http://maemo.org/profile/view/tigert.html tigert]
| Tuomas Kuosmanen
| 2007-05-21 13:43:26
|-
| [http://maemo.org/profile/view/tigge.html tigge]
| Gustav Tiger
| 2007-10-19 13:40:37
|-
| [http://maemo.org/profile/view/tigger.html tigger]
| Janet Kelley
| 2008-01-09 05:41:09
|-
| [http://maemo.org/profile/view/tiglath.html tiglath]
| Felix Marco
| 2007-10-18 23:40:29
|-
| [http://maemo.org/profile/view/tigrux.html tigrux]
| Sandino Flores
| 2007-12-19 17:41:23
|-
| [http://maemo.org/profile/view/tikilgs.html tikilgs]
| Laurent guyot-sionnest
| 2007-10-25 05:40:34
|-
| [http://maemo.org/profile/view/tiku.html tiku]
| Siddharth Tiku
| 2007-06-13 16:00:33
|-
| [http://maemo.org/profile/view/tillars2706.html tillars2706]
| tillar swalm
| 2007-12-11 16:25:05
|-
| [http://maemo.org/profile/view/tim1.html tim1]
| Tim Fuchs
| 2007-11-05 16:40:52
|-
| [http://maemo.org/profile/view/tim1967.html tim1967]
| Ilya Titov
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/timbaldwin.html timbaldwin]
| Tim Baldwin
| 2007-12-12 03:41:22
|-
| [http://maemo.org/profile/view/timbel.html timbel]
| tj beljavskis
| 2007-07-01 03:40:08
|-
| [http://maemo.org/profile/view/timbit2.html timbit2]
| D K
| 2008-03-21 16:31:04
|-
| [http://maemo.org/profile/view/timcop.html timcop]
| t c
| 2007-07-01 01:40:09
|-
| [http://maemo.org/profile/view/timekiller.html timekiller]
| Jason Donahue
| 2007-11-16 17:49:28
|-
| [http://maemo.org/profile/view/timeless.html timeless]
| timeless -
| 2007-05-18 19:11:03
|-
| [http://maemo.org/profile/view/timetravel0.html timetravel0]
| daniele lando
| 2007-10-23 07:40:33
|-
| [http://maemo.org/profile/view/timewalker.html timewalker]
| Douglas Lai
| 2007-07-30 06:40:21
|-
| [http://maemo.org/profile/view/timfin.html timfin]
| Tim Finlayson
| 2008-04-16 17:41:20
|-
| [http://maemo.org/profile/view/timharris20.html timharris20]
| Tim Harris
| 2008-01-22 08:31:17
|-
| [http://maemo.org/profile/view/timheatwole.html timheatwole]
| Tim Heatwole
| 2008-05-05 14:41:22
|-
| [http://maemo.org/profile/view/timinator1967.html timinator1967]
| Timothy Lewis
| 2007-12-29 09:40:54
|-
| [http://maemo.org/profile/view/timj.html timj]
| Tim Janik
| 2007-05-18 19:13:46
|-
| [http://maemo.org/profile/view/timlawrenz.html timlawrenz]
| Tim Lawrenz
| 2007-05-29 14:20:43
|-
| [http://maemo.org/profile/view/timo.html timo]
| Timo Steuerwald
| 2007-05-18 19:12:09
|-
| [http://maemo.org/profile/view/timon.html timon]
| Tiemon Snetselear
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/timotheus.html timotheus]
| Tim Habersack
| 2007-12-26 20:41:45
|-
| [http://maemo.org/profile/view/timpuri.html timpuri]
| Timo Häkli
| 2007-05-18 19:10:37
|-
| [http://maemo.org/profile/view/timsamoff.html timsamoff]
| Tim Samoff
| 2007-05-18 19:12:07
|-
| [http://maemo.org/profile/view/timstephens.html timstephens]
| Tim Stephens
| 2007-07-11 05:40:10
|-
| [http://maemo.org/profile/view/timteam.html timteam]
| Timur Aminev
| 2008-03-06 19:31:18
|-
| [http://maemo.org/profile/view/timwolfson.html timwolfson]
| Tim Wolfson
| 2007-11-16 17:46:29
|-
| [http://maemo.org/profile/view/timwoo.html timwoo]
| Tim Woo
| 2008-04-08 10:41:06
|-
| [http://maemo.org/profile/view/tim_edmonds.html tim_edmonds]
| Tim Edmonds
| 2007-10-30 14:40:37
|-
| [http://maemo.org/profile/view/tim_fenton.html tim_fenton]
| Tim Fenton
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/tinab.html tinab]
| Tina Bizaj
| 2007-10-31 11:40:36
|-
| [http://maemo.org/profile/view/tingyster.html tingyster]
| Daniel de Repentigny
| 2008-01-27 19:31:38
|-
| [http://maemo.org/profile/view/tinkerman.html tinkerman]
| steven hess
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/tinosingh.html tinosingh]
| Tino Singh
| 2007-11-15 07:56:21
|-
| [http://maemo.org/profile/view/tintheman.html tintheman]
| tin man
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/tinttaaja.html tinttaaja]
| Jukka-Pekka Sarajärvi
| 2008-02-05 18:34:05
|-
| [http://maemo.org/profile/view/tinuvial.html tinuvial]
| Melinda White
| 2007-07-03 18:40:10
|-
| [http://maemo.org/profile/view/tinytoad.html tinytoad]
| David Kennedy
| 2007-10-31 15:40:35
|-
| [http://maemo.org/profile/view/tipa.html tipa]
| Timo Parviainen
| 2008-04-06 16:41:08
|-
| [http://maemo.org/profile/view/tirabosco.html tirabosco]
| Valentin Rieger
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/tirithen.html tirithen]
| Fredrik Söderström
| 2007-05-29 09:30:37
|-
| [http://maemo.org/profile/view/titan69.html titan69]
| Dmitry Chechulin
| 2008-01-16 14:41:05
|-
| [http://maemo.org/profile/view/tiur1x.html tiur1x]
| Per Ulrich Kristiansen
| 2007-11-05 20:41:05
|-
| [http://maemo.org/profile/view/tiziano.html tiziano]
| Tiziano Lattisi
| 2007-11-04 10:40:37
|-
| [http://maemo.org/profile/view/tizio69_69.html tizio69_69]
| Gino LAttuga
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/tj110158.html tj110158]
| terrance johnson
| 2008-01-11 16:40:33
|-
| [http://maemo.org/profile/view/tjaalton.html tjaalton]
| Timo Aaltonen
| 2007-10-20 07:40:34
|-
| [http://maemo.org/profile/view/tjaarda.html tjaarda]
| Michael Tjaarda
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/tjarboui.html tjarboui]
| Tahar Jarboui
| 2007-09-04 06:50:31
|-
| [http://maemo.org/profile/view/tjardick.html tjardick]
| Tjardick van der Kraan
| 2007-11-15 07:56:23
|-
| [http://maemo.org/profile/view/tjb.html tjb]
| Thomas Baker
| 2007-10-19 13:40:32
|-
| [http://maemo.org/profile/view/tjbogart33.html tjbogart33]
| Timothy Bogart
| 2008-04-19 03:41:13
|-
| [http://maemo.org/profile/view/tjdavis2768.html tjdavis2768]
| Thomas Davis
| 2007-11-05 03:40:40
|-
| [http://maemo.org/profile/view/tjfford.html tjfford]
| timothy forf
| 2007-11-16 17:49:15
|-
| [http://maemo.org/profile/view/tjhukkan.html tjhukkan]
| Teemu Hukkanen
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/tjiiang.html tjiiang]
| wusheng tjiiang
| 2007-05-18 19:10:25
|-
| [http://maemo.org/profile/view/tjim.html tjim]
| t j
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/tjormola.html tjormola]
| Tuomas Jormola
| 2007-10-18 19:40:41
|-
| [http://maemo.org/profile/view/tjreiss38.html tjreiss38]
| tom reiss
| 2008-06-06 10:41:12
|-
| [http://maemo.org/profile/view/tjs850.html tjs850]
| torre schmitt
| 2008-01-24 06:31:01
|-
| [http://maemo.org/profile/view/tjutzu.html tjutzu]
| Tapani Jurmu
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/tkaefer.html tkaefer]
| Tobias Käfer
| 2007-10-19 07:40:30
|-
| [http://maemo.org/profile/view/tkallai.html tkallai]
| Tunde Kallai
| 2006-10-30 17:22:10
|-
| [http://maemo.org/profile/view/tkappauf.html tkappauf]
| Todd Kappauf
| 2007-12-31 16:40:57
|-
| [http://maemo.org/profile/view/tkarches.html tkarches]
| Tom Karches
| 2007-05-18 19:11:56
|-
| [http://maemo.org/profile/view/tkautto.html tkautto]
| Teemu Kautto
| 2007-10-18 19:40:41
|-
| [http://maemo.org/profile/view/tkeohane.html tkeohane]
| t keohane
| 2007-05-18 19:10:24
|-
| [http://maemo.org/profile/view/tknudsen.html tknudsen]
| J. Toby Knudsen
| 2008-01-02 17:41:08
|-
| [http://maemo.org/profile/view/tko.html tko]
| Tommi Komulainen
| 2007-05-18 19:11:07
|-
| [http://maemo.org/profile/view/tko-germany.html tko-germany]
| asdasd asdasd
| 2008-02-13 09:31:10
|-
| [http://maemo.org/profile/view/tkomu.html tkomu]
| Tommi Komu
| 2007-10-26 14:40:35
|-
| [http://maemo.org/profile/view/tl1234562004.html tl1234562004]
| Tim Lee
| 2007-12-21 23:41:15
|-
| [http://maemo.org/profile/view/tlacuache.html tlacuache]
| Seth Grover
| 2008-04-22 19:41:12
|-
| [http://maemo.org/profile/view/tlagarde.html tlagarde]
| Thierry Lagarde
| 2007-05-18 19:10:58
|-
| [http://maemo.org/profile/view/tlatilco.html tlatilco]
| David Le Roy
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/tlebend.html tlebend]
| Thomas Le
| 2008-03-13 12:31:01
|-
| [http://maemo.org/profile/view/tliljestrom.html tliljestrom]
| Tanja Liljestrom
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/tlindber.html tlindber]
| Tom Lindberg
| 2007-08-28 17:10:08
|-
| [http://maemo.org/profile/view/tlindholm.html tlindholm]
| Tuomo Lindholm
| 2007-10-19 06:40:31
|-
| [http://maemo.org/profile/view/tln514.html tln514]
| Thuy Nguyen
| 2007-12-11 16:25:11
|-
| [http://maemo.org/profile/view/tlnewton.html tlnewton]
| tim newton
| 2007-11-16 17:46:57
|-
| [http://maemo.org/profile/view/tma.html tma]
| Tero Auvinen
| 2008-06-03 11:41:13
|-
| [http://maemo.org/profile/view/tman.html tman]
| the t
| 2007-11-05 23:51:28
|-
| [http://maemo.org/profile/view/tmbmobile.html tmbmobile]
| Timothy Baker
| 2008-06-04 13:41:10
|-
| [http://maemo.org/profile/view/tmccann.html tmccann]
| Tristan McCann
| 2007-10-18 13:40:29
|-
| [http://maemo.org/profile/view/tmeese.html tmeese]
| Timothy Meese
| 2007-10-19 20:40:33
|-
| [http://maemo.org/profile/view/tmenguy.html tmenguy]
| Thomas Menguy
| 2007-05-29 09:30:42
|-
| [http://maemo.org/profile/view/tmielika.html tmielika]
| Taneli Mielikäinen
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/tmills05.html tmills05]
| Tyler M
| 2007-07-04 00:40:10
|-
| [http://maemo.org/profile/view/tmlind.html tmlind]
| Tony Lindgren
| 2007-11-01 11:40:36
|-
| [http://maemo.org/profile/view/tmortn.html tmortn]
| Hugh Cowart
| 2007-12-31 17:40:58
|-
| [http://maemo.org/profile/view/tmr.html tmr]
| tmr realive
| 2008-04-30 06:41:06
|-
| [http://maemo.org/profile/view/tmrice.html tmrice]
| Tim Fletcher-Rice
| 2007-05-18 19:13:52
|-
| [http://maemo.org/profile/view/tmwwtm.html tmwwtm]
| Matthew Miller
| 2007-07-01 16:40:08
|-
| [http://maemo.org/profile/view/tmy.html tmy]
| tapani myllymaki
| 2007-10-30 22:41:00
|-
| [http://maemo.org/profile/view/tna.html tna]
| Terje N Abusland
| 2007-05-18 19:11:10
|-
| [http://maemo.org/profile/view/tnickel.html tnickel]
| Thomas Nickel
| 2008-04-29 14:41:05
|-
| [http://maemo.org/profile/view/tnisbett.html tnisbett]
| calvin nisbett
| 2007-12-11 16:25:28
|-
| [http://maemo.org/profile/view/tnoleto.html tnoleto]
| Tomaz Noleto
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/tnronin1.html tnronin1]
| Mitchell Teeters
| 2007-06-28 21:40:06
|-
| [http://maemo.org/profile/view/toalan.html toalan]
| Alan To
| 2008-05-07 04:41:04
|-
| [http://maemo.org/profile/view/toast.html toast]
| Tost Oast
| 2007-10-27 11:40:35
|-
| [http://maemo.org/profile/view/tobiasj.html tobiasj]
| John Tobias
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/tobotras.html tobotras]
| Boris Tobotras
| 2008-02-10 18:31:14
|-
| [http://maemo.org/profile/view/toby.html toby]
| toby proctor
| 2007-05-18 19:10:54
|-
| [http://maemo.org/profile/view/toby79er.html toby79er]
| Tobias Gude
| 2007-05-18 19:14:04
|-
| [http://maemo.org/profile/view/tobyroberts.html tobyroberts]
| Toby Roberts
| 2007-11-16 17:47:11
|-
| [http://maemo.org/profile/view/tocnai.html tocnai]
| nai cot
| 2007-11-16 17:46:56
|-
| [http://maemo.org/profile/view/toddk01.html toddk01]
| todd klueger
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/toddosten.html toddosten]
| todd osten
| 2007-12-30 06:40:52
|-
| [http://maemo.org/profile/view/todsqd.html todsqd]
| todd theissen
| 2007-07-03 19:40:15
|-
| [http://maemo.org/profile/view/tofolo.html tofolo]
| David Armstrong
| 2007-11-16 17:46:45
|-
| [http://maemo.org/profile/view/tofuu99.html tofuu99]
| Jennifer Tomas
| 2007-05-18 19:10:25
|-
| [http://maemo.org/profile/view/toiminimi.html toiminimi]
| Tomi Moilanen
| 2007-10-19 12:40:32
|-
| [http://maemo.org/profile/view/tokara2132.html tokara2132]
| Tokara D'Anor
| 2008-04-19 03:41:12
|-
| [http://maemo.org/profile/view/tokenada.html tokenada]
| token ada
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/tokyodan.html tokyodan]
| Theron Huffman
| 2008-06-05 03:41:13
|-
| [http://maemo.org/profile/view/toleranssi.html toleranssi]
| Lari Pelkonen
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/tolgam.html tolgam]
| Christophe Gueret
| 2007-10-18 20:40:33
|-
| [http://maemo.org/profile/view/tolis.html tolis]
| Apostolos Siotos
| 2007-05-18 19:11:49
|-
| [http://maemo.org/profile/view/tolisoft.html tolisoft]
| Anatoli Marinov
| 2008-03-12 08:31:15
|-
| [http://maemo.org/profile/view/tom.html tom]
| Tom Bychowski
| 2007-06-24 16:40:08
|-
| [http://maemo.org/profile/view/tom3058.html tom3058]
| Tom Leadholm
| 2007-05-18 19:12:56
|-
| [http://maemo.org/profile/view/toma.html toma]
| tom haste
| 2007-11-16 17:49:40
|-
| [http://maemo.org/profile/view/tomaczar.html tomaczar]
| Andrew Thomas
| 2008-05-18 16:41:11
|-
| [http://maemo.org/profile/view/tomarch.html tomarch]
| Thomas Archambault
| 2008-01-22 22:31:31
|-
| [http://maemo.org/profile/view/tomas.html tomas]
| Tomas Junnonen
| 2007-05-18 19:11:23
|-
| [http://maemo.org/profile/view/tomas-.html tomas-]
| Tomas Tomas
| 2007-08-21 07:40:23
|-
| [http://maemo.org/profile/view/tomasu.html tomasu]
| Thomas Fjellstrom
| 2007-10-19 07:40:30
|-
| [http://maemo.org/profile/view/tomato0053.html tomato0053]
| kim sak
| 2007-11-15 07:56:26
|-
| [http://maemo.org/profile/view/tomax.html tomax]
| tom erz
| 2007-11-19 14:41:51
|-
| [http://maemo.org/profile/view/tombear.html tombear]
| Tommi Karhu
| 2007-05-18 19:11:43
|-
| [http://maemo.org/profile/view/tomcom.html tomcom]
| Tom Comstock
| 2007-07-02 06:40:12
|-
| [http://maemo.org/profile/view/tomcreer.html tomcreer]
| Tom Creer
| 2008-03-28 12:31:09
|-
| [http://maemo.org/profile/view/tomczc.html tomczc]
| tom allen
| 2007-11-15 07:55:41
|-
| [http://maemo.org/profile/view/tomgj.html tomgj]
| tom gwynn
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/tomh.html tomh]
| tom hauptkorn
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/tomhawley.html tomhawley]
| Tom Hawley
| 2007-12-24 20:41:17
|-
| [http://maemo.org/profile/view/tomi_h.html tomi_h]
| Tomi Heinonen
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/tomladams.html tomladams]
| Tom Adams
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/tomlassiter.html tomlassiter]
| Tom Lassiter
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/tommaso.html tommaso]
| tommaso florio
| 2007-06-21 10:40:11
|-
| [http://maemo.org/profile/view/tommik.html tommik]
| Tommi Kivimäki
| 2008-06-09 10:31:12
|-
| [http://maemo.org/profile/view/tommim.html tommim]
| Tommi Myöhänen
| 2007-12-11 16:41:24
|-
| [http://maemo.org/profile/view/tommitomato.html tommitomato]
| Thomas Preuß
| 2007-12-11 16:25:51
|-
| [http://maemo.org/profile/view/tommo.html tommo]
| Thomas Margraf
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/tommy27.html tommy27]
| tommy hopkins
| 2007-11-16 17:46:55
|-
| [http://maemo.org/profile/view/tommycant.html tommycant]
| tom canterino
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/tommyccd.html tommyccd]
| Tom Cochran
| 2007-11-19 13:40:54
|-
| [http://maemo.org/profile/view/tommyg.html tommyg]
| Thomas Guzman
| 2008-03-21 04:31:04
|-
| [http://maemo.org/profile/view/tommyhle.html tommyhle]
| Tom Le
| 2007-07-01 03:40:08
|-
| [http://maemo.org/profile/view/tomohr.html tomohr]
| Tom Mohr
| 2007-11-16 17:47:49
|-
| [http://maemo.org/profile/view/tomori74.html tomori74]
| Zoltan Tomori
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/tompermutt.html tompermutt]
| Tom Permutt
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/tomphe.html tomphe]
| Tom Phelan
| 2008-02-21 15:30:58
|-
| [http://maemo.org/profile/view/tompkin.html tompkin]
| Eric Tompkin
| 2007-05-23 05:29:05
|-
| [http://maemo.org/profile/view/tompre.html tompre]
| Tomas Ally
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/tomressel.html tomressel]
| tomas ressel
| 2007-11-15 11:40:45
|-
| [http://maemo.org/profile/view/tomt.html tomt]
| Tom Terry
| 2007-11-16 17:47:45
|-
| [http://maemo.org/profile/view/tomtex1952.html tomtex1952]
| Ervin House
| 2007-12-23 05:41:25
|-
| [http://maemo.org/profile/view/tomtimeshr.html tomtimeshr]
| Tom Mathews
| 2007-12-27 01:41:45
|-
| [http://maemo.org/profile/view/tomtom.html tomtom]
| pat mcCloud
| 2008-01-21 21:32:56
|-
| [http://maemo.org/profile/view/tomutal.html tomutal]
| Lucian Tomuta
| 2007-11-16 17:47:56
|-
| [http://maemo.org/profile/view/tomwwolf.html tomwwolf]
| Tom Wolf
| 2007-05-18 19:11:28
|-
| [http://maemo.org/profile/view/ton582002.html ton582002]
| tony naranjo
| 2008-01-29 03:31:17
|-
| [http://maemo.org/profile/view/toni.html toni]
| Toni Prug
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/tonicipriani.html tonicipriani]
| Calvin Cheung
| 2008-04-11 16:41:04
|-
| [http://maemo.org/profile/view/tonikitoo.html tonikitoo]
| Antonio Gomes
| 2007-05-18 19:12:15
|-
| [http://maemo.org/profile/view/tonto.html tonto]
| Kit Lethby
| 2008-05-20 14:41:10
|-
| [http://maemo.org/profile/view/tontti.html tontti]
| Asko Tontti
| 2007-10-20 13:40:30
|-
| [http://maemo.org/profile/view/tony2001.html tony2001]
| Antony Dovgal
| 2008-02-14 12:01:19
|-
| [http://maemo.org/profile/view/tonyandmarian.html tonyandmarian]
| M M Abramowicz
| 2008-04-17 15:41:06
|-
| [http://maemo.org/profile/view/tonycowan.html tonycowan]
| Tony Cowan
| 2007-11-16 17:47:55
|-
| [http://maemo.org/profile/view/tonycox.html tonycox]
| Tony Cox
| 2008-04-07 20:41:10
|-
| [http://maemo.org/profile/view/tonyfalc.html tonyfalc]
| Tony Falcone
| 2008-03-05 21:31:07
|-
| [http://maemo.org/profile/view/tonyfatl.html tonyfatl]
| tony fulkerson
| 2007-07-08 03:40:13
|-
| [http://maemo.org/profile/view/tonyfm.html tonyfm]
| Tony Fadjar M
| 2007-10-19 03:40:32
|-
| [http://maemo.org/profile/view/tonyhuynh28.html tonyhuynh28]
| tony huynh
| 2007-11-28 15:43:47
|-
| [http://maemo.org/profile/view/tonymaro.html tonymaro]
| Tony Maro
| 2007-07-30 19:40:19
|-
| [http://maemo.org/profile/view/tonyms.html tonyms]
| tony zhang
| 2008-03-06 09:31:01
|-
| [http://maemo.org/profile/view/tonynavex.html tonynavex]
| Anthony Lakin
| 2007-11-30 10:49:33
|-
| [http://maemo.org/profile/view/tonypercy.html tonypercy]
| Tony Percy
| 2007-10-21 20:40:34
|-
| [http://maemo.org/profile/view/tonyvboy.html tonyvboy]
| anthony nguyen
| 2007-11-16 17:47:19
|-
| [http://maemo.org/profile/view/toobie.html toobie]
| touby amphone
| 2007-05-18 19:12:38
|-
| [http://maemo.org/profile/view/toofbrush.html toofbrush]
| RJ Nishi
| 2008-05-17 17:41:08
|-
| [http://maemo.org/profile/view/toojays.html toojays]
| John Scott
| 2007-11-15 07:56:24
|-
| [http://maemo.org/profile/view/toolengineer.html toolengineer]
| Michael Agunzo
| 2007-07-01 21:40:07
|-
| [http://maemo.org/profile/view/toolofdownfall.html toolofdownfall]
| b k
| 2008-04-24 15:41:07
|-
| [http://maemo.org/profile/view/tootsie2602.html tootsie2602]
| Oscar Olano
| 2008-04-10 20:41:24
|-
| [http://maemo.org/profile/view/topos.html topos]
| Hans Halvorson
| 2007-12-29 18:41:04
|-
| [http://maemo.org/profile/view/toqueboy.html toqueboy]
| jfry craig
| 2008-02-10 18:31:13
|-
| [http://maemo.org/profile/view/toqui.html toqui]
| Ivan Pereira Rios
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/tor.html tor]
| Tor Arntsen
| 2007-05-18 19:11:30
|-
| [http://maemo.org/profile/view/torann81.html torann81]
| Torann Marks
| 2007-12-22 04:42:02
|-
| [http://maemo.org/profile/view/torb.html torb]
| Tor-björn Claesson
| 2007-05-29 09:30:40
|-
| [http://maemo.org/profile/view/torbinv.html torbinv]
| Vadim Torbin
| 2007-11-28 15:43:05
|-
| [http://maemo.org/profile/view/torden.html torden]
| Jake Odell
| 2007-05-18 19:10:30
|-
| [http://maemo.org/profile/view/tore.html tore]
| Daniele Torelli
| 2007-12-11 16:25:27
|-
| [http://maemo.org/profile/view/torero233.html torero233]
| antonio gonzalez ruiz
| 2007-11-28 15:43:34
|-
| [http://maemo.org/profile/view/torley.html torley]
| Torley Lives
| 2008-06-06 15:31:12
|-
| [http://maemo.org/profile/view/torpenson.html torpenson]
| Torpenson Agent
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/torras.html torras]
| Waba Waba Waba
| 2007-04-04 08:16:22
|-
| [http://maemo.org/profile/view/torsten0099.html torsten0099]
| Torsten E.
| 2007-06-19 07:10:29
|-
| [http://maemo.org/profile/view/tortoise.html tortoise]
| Chris Jones
| 2007-05-18 19:14:13
|-
| [http://maemo.org/profile/view/tortovsland.html tortovsland]
| Tor Tovsland
| 2007-12-11 16:25:18
|-
| [http://maemo.org/profile/view/torx.html torx]
| Deyang Chan
| 2007-06-08 13:37:13
|-
| [http://maemo.org/profile/view/toscanox.html toscanox]
| SILVIO MARCONI
| 2007-05-18 19:12:48
|-
| [http://maemo.org/profile/view/toshio.html toshio]
| Toshio Kuramata
| 2007-10-19 19:40:32
|-
| [http://maemo.org/profile/view/tosser.html tosser]
| Jae Cho
| 2007-11-15 07:54:58
|-
| [http://maemo.org/profile/view/totallymaxed.html totallymaxed]
| Andrew Herron
| 2007-11-16 17:48:18
|-
| [http://maemo.org/profile/view/totesen.html totesen]
| Jose Antonio Tena Sendra
| 2008-02-27 22:31:06
|-
| [http://maemo.org/profile/view/totore86.html totore86]
| Salvatore D'Angelo
| 2007-10-22 09:40:34
|-
| [http://maemo.org/profile/view/tower-e-cons.html tower-e-cons]
| Jose Abreu
| 2008-06-07 16:31:13
|-
| [http://maemo.org/profile/view/toxygen.html toxygen]
| Carlos S
| 2007-11-15 07:54:59
|-
| [http://maemo.org/profile/view/tozehilario.html tozehilario]
| ANTONIO HILARIO
| 2007-10-18 22:40:29
|-
| [http://maemo.org/profile/view/tp79800.html tp79800]
| Tommi Pirttiniemi
| 2007-11-16 17:49:38
|-
| [http://maemo.org/profile/view/tpackert305.html tpackert305]
| Thomas Packert
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/tpanero.html tpanero]
| Tony Panero
| 2007-05-18 19:13:29
|-
| [http://maemo.org/profile/view/tpatzig.html tpatzig]
| Tom Patzig
| 2007-10-23 19:40:36
|-
| [http://maemo.org/profile/view/tpax.html tpax]
| Kiril Danilovich
| 2007-11-05 20:21:32
|-
| [http://maemo.org/profile/view/tpc.html tpc]
| TP Chris
| 2007-11-16 17:46:38
|-
| [http://maemo.org/profile/view/tpeixinho.html tpeixinho]
| Telmo Peixinho
| 2008-03-25 11:31:03
|-
| [http://maemo.org/profile/view/tpelkone.html tpelkone]
| Tuomas Pelkonen
| 2007-05-23 05:29:43
|-
| [http://maemo.org/profile/view/tphan847.html tphan847]
| Tuan Phan
| 2007-11-30 10:48:21
|-
| [http://maemo.org/profile/view/tpibruce.html tpibruce]
| Bruce Huang
| 2007-12-27 05:41:01
|-
| [http://maemo.org/profile/view/tpm.html tpm]
| Tim-Philipp Müller
| 2007-10-19 16:40:34
|-
| [http://maemo.org/profile/view/tpsailer.html tpsailer]
| Tim Sailer
| 2007-05-18 19:12:04
|-
| [http://maemo.org/profile/view/tpterm.html tpterm]
| Naum Kopman
| 2007-12-30 14:41:08
|-
| [http://maemo.org/profile/view/tpwch.html tpwch]
| Andreas Eriksson
| 2007-10-21 12:40:33
|-
| [http://maemo.org/profile/view/tpykal.html tpykal]
| Timo Pykalainen
| 2008-03-02 04:30:59
|-
| [http://maemo.org/profile/view/tracerman.html tracerman]
| a m
| 2007-07-10 03:40:16
|-
| [http://maemo.org/profile/view/tractordan.html tractordan]
| Dan Neilsen
| 2007-07-09 21:40:16
|-
| [http://maemo.org/profile/view/traeker.html traeker]
| Todd Raeker
| 2007-12-11 16:25:38
|-
| [http://maemo.org/profile/view/tragos.html tragos]
| Kim Ylä-Tuuhonen
| 2008-03-18 07:31:01
|-
| [http://maemo.org/profile/view/trah.html trah]
| michael hart
| 2007-10-22 12:40:34
|-
| [http://maemo.org/profile/view/trainut1.html trainut1]
| Bruce Mair
| 2008-02-03 19:32:28
|-
| [http://maemo.org/profile/view/trainwreck.html trainwreck]
| Ryan Veach
| 2007-05-18 19:13:25
|-
| [http://maemo.org/profile/view/trajansm.html trajansm]
| Trajan Smith
| 2008-01-14 21:41:13
|-
| [http://maemo.org/profile/view/trajjm.html trajjm]
| joerg mal
| 2007-11-28 15:43:20
|-
| [http://maemo.org/profile/view/traktorfan.html traktorfan]
| Esa Pirjo
| 2008-01-20 14:31:05
|-
| [http://maemo.org/profile/view/tran.html tran]
| Stephane tran
| 2008-03-23 23:31:03
|-
| [http://maemo.org/profile/view/tranceaddict.html tranceaddict]
| Trance Addict
| 2008-05-31 17:41:09
|-
| [http://maemo.org/profile/view/trane68.html trane68]
| E Chaffee
| 2007-11-16 17:46:56
|-
| [http://maemo.org/profile/view/tranvanhoang.html tranvanhoang]
| Van Hoang Tran
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/trapanator.html trapanator]
| Luca Manganelli
| 2007-10-18 17:40:31
|-
| [http://maemo.org/profile/view/traskilajussi.html traskilajussi]
| Jussi Träskilä
| 2007-10-20 16:40:31
|-
| [http://maemo.org/profile/view/traumrakel.html traumrakel]
| Alexander Geyer
| 2008-02-22 23:30:58
|-
| [http://maemo.org/profile/view/travelbean.html travelbean]
| Ben Ben
| 2008-03-21 16:31:03
|-
| [http://maemo.org/profile/view/travllinman.html travllinman]
| Donielle Hembry
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/tre.html tre]
| tre bien
| 2007-11-16 17:47:48
|-
| [http://maemo.org/profile/view/treadders.html treadders]
| Darren Treadwell
| 2007-11-05 18:40:42
|-
| [http://maemo.org/profile/view/trebor.html trebor]
| Robert Gindhart
| 2008-02-21 23:30:58
|-
| [http://maemo.org/profile/view/treefrog.html treefrog]
| David Campbell
| 2007-04-05 15:25:37
|-
| [http://maemo.org/profile/view/treehuggerguy.html treehuggerguy]
| Chris Waldron
| 2007-11-16 17:47:55
|-
| [http://maemo.org/profile/view/tregas.html tregas]
| Tyler Regas
| 2007-11-16 17:46:20
|-
| [http://maemo.org/profile/view/treinio.html treinio]
| Topi Reinio
| 2007-11-16 17:47:57
|-
| [http://maemo.org/profile/view/trendystyle.html trendystyle]
| emanuele corno
| 2007-05-18 19:12:07
|-
| [http://maemo.org/profile/view/trevarthan.html trevarthan]
| Jesse Guardiani
| 2007-06-08 20:00:45
|-
| [http://maemo.org/profile/view/trevorgrant.html trevorgrant]
| trevor grant
| 2007-04-05 15:25:38
|-
| [http://maemo.org/profile/view/trevorpowdrell.html trevorpowdrell]
| Trevor Powdrell
| 2008-05-03 02:41:08
|-
| [http://maemo.org/profile/view/trevwhite.html trevwhite]
| Trevor White
| 2007-11-01 21:40:37
|-
| [http://maemo.org/profile/view/treywedge.html treywedge]
| Trey Wedge
| 2007-11-16 17:47:55
|-
| [http://maemo.org/profile/view/triccer.html triccer]
| Kormakur Danielsson
| 2008-02-10 03:31:04
|-
| [http://maemo.org/profile/view/trickey.html trickey]
| Jack Pressnell
| 2007-06-19 20:40:18
|-
| [http://maemo.org/profile/view/trickie.html trickie]
| Nick Loeve
| 2007-05-18 19:10:46
|-
| [http://maemo.org/profile/view/trilan.html trilan]
| Trilan Warwind
| 2007-06-25 22:40:08
|-
| [http://maemo.org/profile/view/trilok.html trilok]
| Trilok Soni
| 2007-04-05 15:25:39
|-
| [http://maemo.org/profile/view/trina.html trina]
| Dennis Miller
| 2007-11-30 10:49:04
|-
| [http://maemo.org/profile/view/trinhtuan.html trinhtuan]
| Tuan TRINH
| 2008-02-05 04:32:44
|-
| [http://maemo.org/profile/view/tripperdan99.html tripperdan99]
| trip dan
| 2008-05-12 12:41:10
|-
| [http://maemo.org/profile/view/tripti.html tripti]
| Tripti Gupta
| 2007-10-21 19:40:33
|-
| [http://maemo.org/profile/view/tripzero.html tripzero]
| Kevron Rees
| 2007-11-16 17:46:36
|-
| [http://maemo.org/profile/view/trl.html trl]
| ted lowe
| 2007-10-22 01:40:37
|-
| [http://maemo.org/profile/view/trokiki.html trokiki]
| Ladislas Trojan
| 2007-11-28 15:43:34
|-
| [http://maemo.org/profile/view/tronda.html tronda]
| Trond Andersen
| 2007-05-18 19:10:49
|-
| [http://maemo.org/profile/view/trosiek.html trosiek]
| Mateusz Pietruszka
| 2007-11-15 07:56:05
|-
| [http://maemo.org/profile/view/trotyl84.html trotyl84]
| luk tur
| 2008-05-21 10:41:08
|-
| [http://maemo.org/profile/view/trpster.html trpster]
| Tom Park
| 2007-05-18 19:12:12
|-
| [http://maemo.org/profile/view/trueguy.html trueguy]
| t nguyen
| 2007-07-10 08:40:13
|-
| [http://maemo.org/profile/view/truemilk.html truemilk]
| Ivan Giacomelli
| 2007-10-22 08:40:26
|-
| [http://maemo.org/profile/view/truempelmann.html truempelmann]
| Susanne Truempelmann
| 2007-12-11 16:25:59
|-
| [http://maemo.org/profile/view/truent.html truent]
| Marc Miller
| 2007-12-11 16:22:31
|-
| [http://maemo.org/profile/view/trumanselling.html trumanselling]
| danny shengg
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/trumpetto.html trumpetto]
| Edwin Brinkhuis
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/trunks.html trunks]
| Javier Carranza
| 2007-11-16 17:48:12
|-
| [http://maemo.org/profile/view/trustwiz.html trustwiz]
| Richard Schecter
| 2007-05-18 19:11:29
|-
| [http://maemo.org/profile/view/tsailer.html tsailer]
| Thomas Sailer
| 2008-03-01 12:31:14
|-
| [http://maemo.org/profile/view/tsali8.html tsali8]
| Stephen McConnell
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/tsaviran.html tsaviran]
| Tommi Saviranta
| 2007-10-25 11:40:40
|-
| [http://maemo.org/profile/view/tsavola.html tsavola]
| Timo Savola
| 2007-10-19 09:40:32
|-
| [http://maemo.org/profile/view/tscally.html tscally]
| Tom Scally
| 2007-11-16 17:47:49
|-
| [http://maemo.org/profile/view/tscofield.html tscofield]
| Tom Scofield
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/tseliot.html tseliot]
| Alberto Milone
| 2007-10-19 13:40:34
|-
| [http://maemo.org/profile/view/tshanabrook.html tshanabrook]
| terence shanabrook
| 2007-05-18 19:10:25
|-
| [http://maemo.org/profile/view/tsharju.html tsharju]
| Teemu Harju
| 2007-05-18 19:13:08
|-
| [http://maemo.org/profile/view/tshawv01.html tshawv01]
| Tim Shawver
| 2007-12-26 06:41:10
|-
| [http://maemo.org/profile/view/tsilva.html tsilva]
| thomas silva
| 2007-11-06 01:41:00
|-
| [http://maemo.org/profile/view/tskoog.html tskoog]
| Trenton Skoog
| 2007-11-16 17:47:44
|-
| [http://maemo.org/profile/view/tsm1mt.html tsm1mt]
| Tom Mandera
| 2007-10-19 18:40:33
|-
| [http://maemo.org/profile/view/tsmithe.html tsmithe]
| Toby Smithe
| 2007-10-20 15:40:32
|-
| [http://maemo.org/profile/view/tsn80.html tsn80]
| Tin Ngo
| 2007-07-02 15:40:11
|-
| [http://maemo.org/profile/view/tso.html tso]
| kenneth marken
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/tsorro.html tsorro]
| Teemu Sorvisto
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/tspuhler.html tspuhler]
| Tom Spuhler
| 2008-01-06 05:40:55
|-
| [http://maemo.org/profile/view/tsquared467.html tsquared467]
| Tim Tinnel
| 2007-12-27 19:41:40
|-
| [http://maemo.org/profile/view/tsterns.html tsterns]
| Thomas Sterns
| 2008-06-02 19:41:41
|-
| [http://maemo.org/profile/view/tsulliva.html tsulliva]
| terrence sullivan
| 2008-05-04 19:41:12
|-
| [http://maemo.org/profile/view/tsunami.html tsunami]
| Ruslan Palamar
| 2007-05-18 19:13:02
|-
| [http://maemo.org/profile/view/tsut69.html tsut69]
| timothy sutcliffe
| 2007-07-02 03:40:08
|-
| [http://maemo.org/profile/view/tswindell.html tswindell]
| Tom Swindell
| 2007-07-20 18:40:39
|-
| [http://maemo.org/profile/view/ts_1002.html ts_1002]
| tyler shelton
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/tterribe.html tterribe]
| Timothy Terriberry
| 2007-05-18 19:12:03
|-
| [http://maemo.org/profile/view/ttolvane.html ttolvane]
| Tapio Tolvanen
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/ttrainor.html ttrainor]
| Tim Trainor
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/ttrusock.html ttrusock]
| Tom Trusock
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/ttw.html ttw]
| Teresa Wiseman
| 2007-12-16 06:40:57
|-
| [http://maemo.org/profile/view/ttw27.html ttw27]
| Teresa Tersol-Wiseman
| 2008-01-05 13:40:56
|-
| [http://maemo.org/profile/view/tu13es.html tu13es]
| brandon dubois
| 2007-12-11 16:26:26
|-
| [http://maemo.org/profile/view/tuan.html tuan]
| Tuan Nguyen
| 2008-06-02 06:41:12
|-
| [http://maemo.org/profile/view/tuankhanh570.html tuankhanh570]
| Tuan Le Anh
| 2007-06-13 08:30:28
|-
| [http://maemo.org/profile/view/tubademir.html tubademir]
| tuba demir
| 2008-04-08 09:41:06
|-
| [http://maemo.org/profile/view/tucniak.html tucniak]
| Michal Harakal
| 2007-10-20 19:40:31
|-
| [http://maemo.org/profile/view/tufei.html tufei]
| Alex Yuan
| 2008-01-16 18:41:41
|-
| [http://maemo.org/profile/view/tuhl.html tuhl]
| Thomas Uhl
| 2007-10-19 23:40:28
|-
| [http://maemo.org/profile/view/tuju.html tuju]
| Juha Tuomala
| 2007-11-16 17:49:08
|-
| [http://maemo.org/profile/view/tukemoni.html tukemoni]
| tuukka prykäri
| 2008-01-04 21:42:31
|-
| [http://maemo.org/profile/view/tula97.html tula97]
| Alex Gervolskiy
| 2007-07-09 05:40:20
|-
| [http://maemo.org/profile/view/tullis.html tullis]
| Ben Tullis
| 2007-07-16 16:40:16
|-
| [http://maemo.org/profile/view/tunamonkey.html tunamonkey]
| carmen grindrod
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/tuna_monkey.html tuna_monkey]
| tuna monkey
| 2007-11-30 10:48:42
|-
| [http://maemo.org/profile/view/tundra.html tundra]
| valued customer
| 2008-03-09 21:31:04
|-
| [http://maemo.org/profile/view/tunio.html tunio]
| Julien Bonnec
| 2008-01-18 11:31:01
|-
| [http://maemo.org/profile/view/turboblix.html turboblix]
| marco neroni
| 2007-11-15 07:56:25
|-
| [http://maemo.org/profile/view/turtle.html turtle]
| Paul John
| 2008-01-28 21:41:02
|-
| [http://maemo.org/profile/view/turtle99.html turtle99]
| bruce skelton
| 2007-11-16 17:49:12
|-
| [http://maemo.org/profile/view/tusarnayak.html tusarnayak]
| Tusar Nayak
| 2007-11-28 15:43:47
|-
| [http://maemo.org/profile/view/tusarnayak12.html tusarnayak12]
| Tusar Nayak
| 2008-01-31 03:31:04
|-
| [http://maemo.org/profile/view/tuthck.html tuthck]
| tu thck
| 2007-11-15 07:56:16
|-
| [http://maemo.org/profile/view/tuukka.html tuukka]
| Tuukka Tolvanen
| 2007-05-18 19:12:28
|-
| [http://maemo.org/profile/view/tuukkah.html tuukkah]
| Tuukka Hastrup
| 2007-10-18 20:40:33
|-
| [http://maemo.org/profile/view/tux71.html tux71]
| Christian F
| 2007-10-18 17:40:31
|-
| [http://maemo.org/profile/view/tuxedomask29.html tuxedomask29]
| Kelley Hendrix
| 2008-02-19 18:31:00
|-
| [http://maemo.org/profile/view/tuxenrique.html tuxenrique]
| Enrique Aguirre
| 2007-05-18 19:11:12
|-
| [http://maemo.org/profile/view/tuxmax78.html tuxmax78]
| Massimiliano Principi
| 2007-10-22 06:40:32
|-
| [http://maemo.org/profile/view/tuxslayer.html tuxslayer]
| Aleksey Yashchenko
| 2008-01-30 10:33:05
|-
| [http://maemo.org/profile/view/tuxtorials.html tuxtorials]
| Chris Maggs
| 2007-11-16 17:47:19
|-
| [http://maemo.org/profile/view/tvainio.html tvainio]
| Teemu Vainio
| 2008-03-26 08:31:01
|-
| [http://maemo.org/profile/view/tvd04c.html tvd04c]
| Ti Dinh
| 2007-11-15 07:56:06
|-
| [http://maemo.org/profile/view/tvhoang.html tvhoang]
| TranVan Hoang
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/tvijlbrief.html tvijlbrief]
| Tom Vijlbrief
| 2007-05-18 19:12:17
|-
| [http://maemo.org/profile/view/tvint.html tvint]
| tim vint
| 2007-11-16 17:46:51
|-
| [http://maemo.org/profile/view/tvisperas.html tvisperas]
| tony visperas
| 2007-11-16 17:47:56
|-
| [http://maemo.org/profile/view/tvleavitt.html tvleavitt]
| Thomas Leavitt
| 2007-09-04 06:50:30
|-
| [http://maemo.org/profile/view/tvogel.html tvogel]
| Tilman Vogel
| 2007-05-18 19:12:05
|-
| [http://maemo.org/profile/view/tvtony.html tvtony]
| anthony vessa
| 2008-04-15 22:41:05
|-
| [http://maemo.org/profile/view/twaelti.html twaelti]
| Tom Waelti
| 2007-08-23 21:40:23
|-
| [http://maemo.org/profile/view/twaltari.html twaltari]
| Taneli Waltari
| 2008-01-07 23:40:57
|-
| [http://maemo.org/profile/view/twarnick.html twarnick]
| Thomas Warnick
| 2007-06-20 22:40:08
|-
| [http://maemo.org/profile/view/twatkins.html twatkins]
| Thomas Watkins
| 2007-07-07 02:40:40
|-
| [http://maemo.org/profile/view/tweak.html tweak]
| Lance Zane
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/tweet.html tweet]
| tweet hemron
| 2008-03-10 22:31:07
|-
| [http://maemo.org/profile/view/tweetytanya.html tweetytanya]
| Tanya byrd
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/twegener.html twegener]
| Tim Wegener
| 2007-07-29 09:21:00
|-
| [http://maemo.org/profile/view/twelc.html twelc]
| tim welch
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/twg.html twg]
| Thomas W. Geuting
| 2007-05-29 09:30:42
|-
| [http://maemo.org/profile/view/twig.html twig]
| Marcin Sydor
| 2007-12-12 15:40:48
|-
| [http://maemo.org/profile/view/twilaschuster.html twilaschuster]
| Twila Schuster
| 2008-02-11 11:31:31
|-
| [http://maemo.org/profile/view/twillber.html twillber]
| Toni Willberg
| 2007-10-26 20:40:03
|-
| [http://maemo.org/profile/view/twindemu.html twindemu]
| Todd Windemuth
| 2007-11-28 15:43:36
|-
| [http://maemo.org/profile/view/twinkletoes.html twinkletoes]
| David Richardson
| 2007-11-15 07:55:50
|-
| [http://maemo.org/profile/view/twipsy002a.html twipsy002a]
| Allison Kibbey
| 2007-05-18 19:11:46
|-
| [http://maemo.org/profile/view/twistedpear.html twistedpear]
| Garreth Jeremiah
| 2007-12-12 16:40:51
|-
| [http://maemo.org/profile/view/twitikai.html twitikai]
| Timo Witikainen
| 2007-10-20 10:40:31
|-
| [http://maemo.org/profile/view/twizzle.html twizzle]
| Nikkia Ballantyne
| 2008-02-27 18:31:06
|-
| [http://maemo.org/profile/view/twm132.html twm132]
| Todd Moats
| 2007-11-30 10:49:37
|-
| [http://maemo.org/profile/view/twoofseven.html twoofseven]
| Matthias Benesch
| 2008-05-08 20:41:07
|-
| [http://maemo.org/profile/view/twotoes.html twotoes]
| Ray Galvin
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/two_n.html two_n]
| Donn Harris
| 2007-07-07 16:40:14
|-
| [http://maemo.org/profile/view/twstephens.html twstephens]
| Thomas Stephens
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/twynog.html twynog]
| Richard Turner
| 2008-02-28 09:30:58
|-
| [http://maemo.org/profile/view/txapa.html txapa]
| Martin C. Rodriguez
| 2007-05-18 19:12:59
|-
| [http://maemo.org/profile/view/txcwby.html txcwby]
| Texas Cowboy
| 2007-11-15 07:56:11
|-
| [http://maemo.org/profile/view/txenoo.html txenoo]
| Chema Casanova Crespo
| 2007-10-18 18:40:30
|-
| [http://maemo.org/profile/view/txfr.html txfr]
| John Warren
| 2008-01-22 13:32:01
|-
| [http://maemo.org/profile/view/txkmartin.html txkmartin]
| ken martin
| 2007-11-16 17:47:37
|-
| [http://maemo.org/profile/view/txneo.html txneo]
| Peter Wulfing
| 2007-12-27 20:41:32
|-
| [http://maemo.org/profile/view/tyadams22.html tyadams22]
| tyler adams
| 2007-05-18 19:12:49
|-
| [http://maemo.org/profile/view/tyager.html tyager]
| Tom Yager
| 2007-05-18 19:10:50
|-
| [http://maemo.org/profile/view/tygertyger.html tygertyger]
| Aaron Lee
| 2007-12-29 07:40:53
|-
| [http://maemo.org/profile/view/tyrion.html tyrion]
| David Dolphin
| 2008-01-21 14:32:18
|-
| [http://maemo.org/profile/view/tyrionlannister.html tyrionlannister]
| Dustin Aubrey
| 2008-01-09 08:41:04
|-
| [http://maemo.org/profile/view/tyshon6.html tyshon6]
| tyshon taylor
| 2007-11-16 17:46:30
|-
| [http://maemo.org/profile/view/tz1.html tz1]
| t z
| 2007-12-11 16:26:00
|-
| [http://maemo.org/profile/view/tzahal2000.html tzahal2000]
| ilan behm
| 2007-07-01 04:40:15
|-
| [http://maemo.org/profile/view/tzaura.html tzaura]
| Thomas Zaura
| 2008-04-24 04:41:04
|-
| [http://maemo.org/profile/view/tzeentch.html tzeentch]
| Emmanuel Losier
| 2007-12-11 16:25:52
|-
| [http://maemo.org/profile/view/tzhou23.html tzhou23]
| bob mcneill
| 2008-02-03 15:31:12
|-
| [http://maemo.org/profile/view/tziegler.html tziegler]
| Tom Ziegler
| 2007-11-30 10:48:45
|-
| [http://maemo.org/profile/view/tzz.html tzz]
| Ted Zlatanov
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/t_tao.html t_tao]
| Thomas Tao
| 2008-02-11 03:31:17
|-
| [http://maemo.org/profile/view/u805u.html u805u]
| umar unia
| 2007-07-09 19:40:32
|-
| [http://maemo.org/profile/view/ucallmetomek.html ucallmetomek]
| Jonathan Tomek
| 2007-11-16 17:47:55
|-
| [http://maemo.org/profile/view/udayan.html udayan]
| Udayan Kumar
| 2008-04-09 22:41:07
|-
| [http://maemo.org/profile/view/udibr.html udibr]
| Ehud Ben-Reuven
| 2007-12-11 16:25:19
|-
| [http://maemo.org/profile/view/udon.html udon]
| John V
| 2007-11-16 17:50:03
|-
| [http://maemo.org/profile/view/ueicom.html ueicom]
| dae woo
| 2007-12-31 11:41:00
|-
| [http://maemo.org/profile/view/ugawd.html ugawd]
| m dondo
| 2007-05-24 16:20:51
|-
| [http://maemo.org/profile/view/ugettinit.html ugettinit]
| ramon thomas
| 2007-05-18 19:10:26
|-
| [http://maemo.org/profile/view/uian.html uian]
| Uian Sol Gorgônio
| 2007-11-16 17:49:04
|-
| [http://maemo.org/profile/view/uiman.html uiman]
| ui main
| 2007-11-16 11:40:42
|-
| [http://maemo.org/profile/view/ukgatecrasher.html ukgatecrasher]
| shaun allison
| 2007-08-10 22:40:19
|-
| [http://maemo.org/profile/view/ukki.html ukki]
| Janne Mäkinen
| 2008-03-22 19:31:07
|-
| [http://maemo.org/profile/view/ukpanwar.html ukpanwar]
| Umakant Panwar
| 2007-11-16 17:46:56
|-
| [http://maemo.org/profile/view/ukraemer.html ukraemer]
| Ulli Kraemer
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/ulander.html ulander]
| tuomo ulander
| 2007-10-25 11:40:40
|-
| [http://maemo.org/profile/view/ulfl.html ulfl]
| Ulf Lagerros
| 2007-05-18 19:11:24
|-
| [http://maemo.org/profile/view/uli.html uli]
| ulisse cavallini
| 2007-07-10 13:40:18
|-
| [http://maemo.org/profile/view/uliok.html uliok]
| sergei sairanen
| 2008-03-13 02:32:56
|-
| [http://maemo.org/profile/view/ulises.html ulises]
| Ulises Cerviño Beresi
| 2008-02-04 12:31:09
|-
| [http://maemo.org/profile/view/ulissesf.html ulissesf]
| Ulisses Furquim
| 2007-05-18 19:10:30
|-
| [http://maemo.org/profile/view/ulpe.html ulpe]
| Teemu Laukkarinen
| 2008-05-09 08:41:07
|-
| [http://maemo.org/profile/view/ulpian.html ulpian]
| Stefan Tunkel
| 2007-05-18 19:11:41
|-
| [http://maemo.org/profile/view/ulury.html ulury]
| Roman Balbukh
| 2008-01-09 21:41:10
|-
| [http://maemo.org/profile/view/ulysseslh.html ulysseslh]
| Hong Li
| 2007-11-15 09:40:44
|-
| [http://maemo.org/profile/view/umbertosm.html umbertosm]
| Umberto Sorace Maresca
| 2007-09-14 11:40:25
|-
| [http://maemo.org/profile/view/umbfer.html umbfer]
| Umberto Ferraro
| 2007-10-23 16:40:35
|-
| [http://maemo.org/profile/view/umrath.html umrath]
| Thoralf Will
| 2007-05-18 19:13:53
|-
| [http://maemo.org/profile/view/unail.html unail]
| wilbur Wu
| 2007-11-16 17:48:24
|-
| [http://maemo.org/profile/view/unatine.html unatine]
| Pavel M
| 2007-05-18 19:11:30
|-
| [http://maemo.org/profile/view/unbiased.html unbiased]
| B G
| 2007-11-16 17:47:56
|-
| [http://maemo.org/profile/view/uncorq.html uncorq]
| Lori Easterly
| 2008-05-09 01:41:10
|-
| [http://maemo.org/profile/view/undefined.html undefined]
| Corey Wright
| 2007-07-09 02:40:16
|-
| [http://maemo.org/profile/view/underscore.html underscore]
| Henry Weathersbee
| 2008-04-01 21:41:04
|-
| [http://maemo.org/profile/view/unfaceful.html unfaceful]
| laway manay
| 2007-11-16 17:46:35
|-
| [http://maemo.org/profile/view/unfukwitable.html unfukwitable]
| josh coulter
| 2008-02-04 06:31:00
|-
| [http://maemo.org/profile/view/unhinged.html unhinged]
| Mark Lee
| 2007-05-18 19:10:40
|-
| [http://maemo.org/profile/view/unickshaxor.html unickshaxor]
| Ben Weigand
| 2007-11-16 17:49:28
|-
| [http://maemo.org/profile/view/unicyn.html unicyn]
| Alberto Fernandez
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/unijan.html unijan]
| john sta ana
| 2008-03-31 18:41:12
|-
| [http://maemo.org/profile/view/unique311.html unique311]
| stan one
| 2007-06-01 06:30:49
|-
| [http://maemo.org/profile/view/uniqueunitedltd.html uniqueunitedltd]
| Zhenya Wei
| 2007-05-18 19:12:09
|-
| [http://maemo.org/profile/view/unistar.html unistar]
| olaf richter
| 2007-11-16 17:47:06
|-
| [http://maemo.org/profile/view/unit3.html unit3]
| Graeme Humphries
| 2006-10-30 17:22:09
|-
| [http://maemo.org/profile/view/unkfrank.html unkfrank]
| Frank Surget
| 2007-11-30 10:48:14
|-
| [http://maemo.org/profile/view/unkljon.html unkljon]
| john gee
| 2008-01-18 01:40:58
|-
| [http://maemo.org/profile/view/unloco.html unloco]
| i mc
| 2007-07-08 01:40:22
|-
| [http://maemo.org/profile/view/unorg.html unorg]
| un org
| 2007-06-11 14:40:45
|-
| [http://maemo.org/profile/view/unrealblender.html unrealblender]
| Joshua Lewis
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/unsulangi.html unsulangi]
| Suryanto Unsulangi
| 2007-11-16 17:47:57
|-
| [http://maemo.org/profile/view/untouched.html untouched]
| Ramsin Israel
| 2007-11-15 07:55:58
|-
| [http://maemo.org/profile/view/un_nain_connu.html un_nain_connu]
| Boris Ridard
| 2007-05-18 19:11:33
|-
| [http://maemo.org/profile/view/uozgu.html uozgu]
| Ugur Özgü Akıncı
| 2007-11-02 15:40:36
|-
| [http://maemo.org/profile/view/up2dream.html up2dream]
| up dream
| 2007-11-16 17:47:07
|-
| [http://maemo.org/profile/view/updrafts.html updrafts]
| Dave Miller
| 2007-11-16 17:47:48
|-
| [http://maemo.org/profile/view/upendra.html upendra]
| Upendra reddy Maddi Reddy
| 2007-06-19 07:10:36
|-
| [http://maemo.org/profile/view/upman.html upman]
| Paul Opitz
| 2007-05-18 19:13:29
|-
| [http://maemo.org/profile/view/urabus.html urabus]
| Grzegorz Rewucki
| 2007-11-28 15:43:15
|-
| [http://maemo.org/profile/view/uraka.html uraka]
| Uraka Lee
| 2007-11-16 17:47:27
|-
| [http://maemo.org/profile/view/urban1.html urban1]
| Bob Warner
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/urbanenomad.html urbanenomad]
| Won Kim
| 2007-06-19 20:40:17
|-
| [http://maemo.org/profile/view/urbansloth.html urbansloth]
| Byron Wiebe
| 2008-05-22 15:41:10
|-
| [http://maemo.org/profile/view/urbansurfer.html urbansurfer]
| elmar gryffenberg
| 2007-10-23 15:50:39
|-
| [http://maemo.org/profile/view/urbonis.html urbonis]
| laurynas urbonas
| 2007-11-16 17:46:37
|-
| [http://maemo.org/profile/view/uriele.html uriele]
| Marco Menarini
| 2007-10-22 14:40:33
|-
| [http://maemo.org/profile/view/urilabob.html urilabob]
| Bob McKay
| 2007-11-16 17:48:10
|-
| [http://maemo.org/profile/view/urkrishpatel.html urkrishpatel]
| krish patel
| 2007-12-11 16:25:09
|-
| [http://maemo.org/profile/view/uroneira56.html uroneira56]
| Carlos Neira
| 2008-01-11 11:11:24
|-
| [http://maemo.org/profile/view/usa4148.html usa4148]
| Dan Cusick
| 2007-06-25 13:40:09
|-
| [http://maemo.org/profile/view/usagisan.html usagisan]
| Andrea Gerli
| 2008-01-11 11:11:24
|-
| [http://maemo.org/profile/view/usef.html usef]
| Yousef Al Imam
| 2008-01-07 20:41:19
|-
| [http://maemo.org/profile/view/usmc1williesmom.html usmc1williesmom]
| barbara williams
| 2007-05-18 19:12:22
|-
| [http://maemo.org/profile/view/usms.html usms]
| william taylor
| 2007-07-01 13:40:07
|-
| [http://maemo.org/profile/view/usparc2.html usparc2]
| mark green
| 2007-12-25 13:41:04
|-
| [http://maemo.org/profile/view/ustazolat.html ustazolat]
| ustaz miftahu
| 2007-10-20 13:40:31
|-
| [http://maemo.org/profile/view/ustinov.html ustinov]
| Alexey Ustinov
| 2008-01-12 14:41:25
|-
| [http://maemo.org/profile/view/utahdave.html utahdave]
| David Gorham
| 2007-06-19 07:10:38
|-
| [http://maemo.org/profile/view/uttsrw.html uttsrw]
| Ric Walford
| 2008-01-12 15:41:41
|-
| [http://maemo.org/profile/view/uvikrama.html uvikrama]
| Unnikrishnan Vikrama Panicker
| 2007-10-24 18:40:38
|-
| [http://maemo.org/profile/view/uzalgo.html uzalgo]
| Farid Hadj Azimian
| 2007-10-19 19:40:32
|-
| [http://maemo.org/profile/view/uzerchuk.html uzerchuk]
| Oleksiy Uzerchuk
| 2008-02-16 15:31:00
|-
| [http://maemo.org/profile/view/v-rus89.html v-rus89]
| misha berdichevskiy
| 2008-02-22 17:30:58
|-
| [http://maemo.org/profile/view/v3rt1g0.html v3rt1g0]
| Chad Kittel
| 2008-03-29 22:31:09
|-
| [http://maemo.org/profile/view/va3jwk.html va3jwk]
| Jim Kerr
| 2008-05-13 15:41:11
|-
| [http://maemo.org/profile/view/vabgeo.html vabgeo]
| Varghese George
| 2007-10-24 03:40:38
|-
| [http://maemo.org/profile/view/vacendak.html vacendak]
| frank burton
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/vadim.html vadim]
| Vadim Peterburgsky
| 2007-05-18 19:12:25
|-
| [http://maemo.org/profile/view/vadim0977.html vadim0977]
| Vad Vadim
| 2008-04-22 18:41:26
|-
| [http://maemo.org/profile/view/vadimkinas.html vadimkinas]
| Vadimkinas Vadimkinas
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/vadim_us.html vadim_us]
| vadim_us Anonymous
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/vadp.html vadp]
| Vad Pechkin
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/vag71.html vag71]
| Vagelis Nonas
| 2007-10-22 09:40:34
|-
| [http://maemo.org/profile/view/vai.html vai]
| Kemal BEKTAS
| 2007-12-11 16:26:30
|-
| [http://maemo.org/profile/view/vaibhav.html vaibhav]
| vaibhav rane
| 2007-11-30 10:49:16
|-
| [http://maemo.org/profile/view/vaibhav11.html vaibhav11]
| Vaibhav Parmar
| 2007-11-16 17:46:56
|-
| [http://maemo.org/profile/view/vaio2k.html vaio2k]
| sung kim
| 2007-10-15 18:40:26
|-
| [http://maemo.org/profile/view/vaiodon.html vaiodon]
| Don Thompson
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/vakeros.html vakeros]
| Tim Bateman
| 2007-12-21 00:41:05
|-
| [http://maemo.org/profile/view/val.html val]
| Valentine Sinitsyn
| 2007-06-19 07:10:37
|-
| [http://maemo.org/profile/view/valdived.html valdived]
| ed valdivia
| 2007-05-18 19:14:21
|-
| [http://maemo.org/profile/view/vale.html vale]
| valentino pistis
| 2007-12-11 16:25:56
|-
| [http://maemo.org/profile/view/valerie.html valerie]
| Valerie Oncina
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/valet24.html valet24]
| gustavo patiño sánchez
| 2008-03-10 07:31:00
|-
| [http://maemo.org/profile/view/valex2u.html valex2u]
| alexander Vrakas
| 2007-10-19 01:40:32
|-
| [http://maemo.org/profile/view/valfageme.html valfageme]
| vita alfageme
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/valhalla.html valhalla]
| Valtteri Halla
| 2007-05-18 19:13:28
|-
| [http://maemo.org/profile/view/valko.html valko]
| juho valkonen
| 2008-02-03 12:31:08
|-
| [http://maemo.org/profile/view/valkyriesound.html valkyriesound]
| Sherri Hendrickson
| 2007-05-18 19:10:54
|-
| [http://maemo.org/profile/view/valter61.html valter61]
| Val Ter
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/valto.html valto]
| Enrico valtolina
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/valveman.html valveman]
| Robert Parker
| 2007-11-16 17:47:30
|-
| [http://maemo.org/profile/view/vami.html vami]
| vamshi rao
| 2007-12-19 02:40:55
|-
| [http://maemo.org/profile/view/vamp1blackrose.html vamp1blackrose]
| Colby Reifler
| 2007-06-21 03:40:06
|-
| [http://maemo.org/profile/view/vamsi653.html vamsi653]
| vamsi krishna
| 2008-03-28 12:31:07
|-
| [http://maemo.org/profile/view/vancano.html vancano]
| Marc Prinsen
| 2008-01-25 20:33:14
|-
| [http://maemo.org/profile/view/vanderbush.html vanderbush]
| Kevin Bush
| 2008-05-02 00:42:03
|-
| [http://maemo.org/profile/view/vandreser.html vandreser]
| Tom Van Dreser
| 2008-02-10 19:31:14
|-
| [http://maemo.org/profile/view/vandys.html vandys]
| Andrew Valencia
| 2008-01-12 03:41:06
|-
| [http://maemo.org/profile/view/vango05.html vango05]
| jae hood
| 2008-01-21 08:32:54
|-
| [http://maemo.org/profile/view/vania.html vania]
| Ivan Klimek
| 2007-11-16 17:48:03
|-
| [http://maemo.org/profile/view/vanichalla.html vanichalla]
| vani challa
| 2008-04-11 06:41:04
|-
| [http://maemo.org/profile/view/vanman2usa.html vanman2usa]
| steve serrano
| 2007-12-19 03:41:03
|-
| [http://maemo.org/profile/view/vanokuten.html vanokuten]
| Ivan Kuten
| 2007-06-11 13:41:37
|-
| [http://maemo.org/profile/view/vansky.html vansky]
| van sky
| 2008-05-30 07:41:23
|-
| [http://maemo.org/profile/view/vapour.html vapour]
| Vapour IFH
| 2008-02-29 04:31:08
|-
| [http://maemo.org/profile/view/varek.html varek]
| Marcin Ulanecki
| 2007-10-24 23:40:33
|-
| [http://maemo.org/profile/view/varga.html varga]
| Jan Varga
| 2007-11-16 17:46:21
|-
| [http://maemo.org/profile/view/vargento.html vargento]
| victor argento
| 2007-05-18 19:10:29
|-
| [http://maemo.org/profile/view/varggy.html varggy]
| jay eff
| 2007-11-16 17:47:58
|-
| [http://maemo.org/profile/view/varis.html varis]
| Varis Gaitov
| 2007-11-16 17:48:20
|-
| [http://maemo.org/profile/view/varris.html varris]
| Varis Asadullin
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/varshney.html varshney]
| Peeyush Varshney
| 2008-04-28 11:41:05
|-
| [http://maemo.org/profile/view/varuna.html varuna]
| jacob helskins
| 2008-04-19 20:41:09
|-
| [http://maemo.org/profile/view/vascocanaria.html vascocanaria]
| Jose Maria Arruabarrena Beraza
| 2008-06-08 21:31:16
|-
| [http://maemo.org/profile/view/vash.html vash]
| aaron williams
| 2007-05-18 19:11:54
|-
| [http://maemo.org/profile/view/vastator.html vastator]
| Charles Harris
| 2008-04-09 18:41:09
|-
| [http://maemo.org/profile/view/vastelectron.html vastelectron]
| Philip Hoang
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/vasu.html vasu]
| vasu dev
| 2007-11-02 09:40:39
|-
| [http://maemo.org/profile/view/vasvlad.html vasvlad]
| Vlad Vasiliev
| 2007-05-21 13:43:22
|-
| [http://maemo.org/profile/view/vasyar800.html vasyar800]
| Vasya Rikoff
| 2008-01-14 20:41:13
|-
| [http://maemo.org/profile/view/vasyx.html vasyx]
| Vasiliy Artem'ev
| 2007-10-18 18:40:31
|-
| [http://maemo.org/profile/view/vbackman.html vbackman]
| victor backman
| 2007-06-27 13:40:13
|-
| [http://maemo.org/profile/view/vballgod.html vballgod]
| Edward Gregory
| 2007-06-27 16:40:11
|-
| [http://maemo.org/profile/view/vbdogan.html vbdogan]
| Veysel Baydogan
| 2007-05-18 19:10:59
|-
| [http://maemo.org/profile/view/vbede.html vbede]
| Tom Bing
| 2008-04-09 17:41:09
|-
| [http://maemo.org/profile/view/vbrilon.html vbrilon]
| Victor Brilon
| 2007-12-20 09:41:20
|-
| [http://maemo.org/profile/view/vburger.html vburger]
| Victor Burger
| 2007-11-16 17:47:33
|-
| [http://maemo.org/profile/view/vbwagner.html vbwagner]
| Victor Wagner
| 2007-11-15 07:55:50
|-
| [http://maemo.org/profile/view/vcarceler.html vcarceler]
| Victor Carceler
| 2007-06-23 17:40:08
|-
| [http://maemo.org/profile/view/vcgomes.html vcgomes]
| Vinicius Gomes
| 2007-11-16 17:48:06
|-
| [http://maemo.org/profile/view/vcip.html vcip]
| vc ip
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/vdepizzol.html vdepizzol]
| Vinicius Depizzol
| 2007-10-18 17:40:25
|-
| [http://maemo.org/profile/view/vdstreet.html vdstreet]
| Victoria Street
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/vdudov.html vdudov]
| Vladimir Dudov
| 2008-01-10 08:41:05
|-
| [http://maemo.org/profile/view/ve2dx.html ve2dx]
| richard desaulniers
| 2008-05-22 17:41:13
|-
| [http://maemo.org/profile/view/ve4drk.html ve4drk]
| Dan Keizer
| 2007-12-11 16:25:34
|-
| [http://maemo.org/profile/view/ve7frg.html ve7frg]
| George Farris
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/vect0r.html vect0r]
| mike pablo
| 2008-05-26 18:41:16
|-
| [http://maemo.org/profile/view/vectormax.html vectormax]
| Manuel Pomales
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/veg.html veg]
| Jeff Goller
| 2007-11-16 17:46:24
|-
| [http://maemo.org/profile/view/vegai.html vegai]
| Vesa Kaihlavirta
| 2007-11-02 07:40:48
|-
| [http://maemo.org/profile/view/vegard.html vegard]
| Vegard Engen
| 2007-05-18 19:11:31
|-
| [http://maemo.org/profile/view/veilleperso.html veilleperso]
| olivier ruffin
| 2007-10-19 13:40:32
|-
| [http://maemo.org/profile/view/velco.html velco]
| Momchil Velikov
| 2007-11-16 17:49:20
|-
| [http://maemo.org/profile/view/velez.html velez]
| omar velez
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/velikij.html velikij]
| dima viktorov
| 2007-11-16 17:49:13
|-
| [http://maemo.org/profile/view/veliptm.html veliptm]
| Veli-Pekka Mäkelä
| 2007-05-18 19:14:47
|-
| [http://maemo.org/profile/view/vellon.html vellon]
| Jose Antonio Vellon Hornero
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/vellu.html vellu]
| Veli-Matti Toratti
| 2007-11-16 17:48:25
|-
| [http://maemo.org/profile/view/veloba.html veloba]
| Veronica Banks
| 2007-05-18 19:12:19
|-
| [http://maemo.org/profile/view/veloci18.html veloci18]
| nathan melland
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/venga.html venga]
| Isac Wilhelms
| 2006-12-13 11:30:04
|-
| [http://maemo.org/profile/view/venkat.html venkat]
| Venkat Venkat
| 2007-10-29 09:40:35
|-
| [http://maemo.org/profile/view/vennim.html vennim]
| ven nim
| 2008-01-08 04:41:31
|-
| [http://maemo.org/profile/view/ventovic.html ventovic]
| victor mitchell
| 2007-11-16 17:47:44
|-
| [http://maemo.org/profile/view/venture37.html venture37]
| Sevan Janiyan
| 2007-11-16 17:46:40
|-
| [http://maemo.org/profile/view/venubvs.html venubvs]
| Venu Battula
| 2007-12-27 00:41:20
|-
| [http://maemo.org/profile/view/verbal.html verbal]
| paolo caldana
| 2007-04-04 08:16:22
|-
| [http://maemo.org/profile/view/verbus.html verbus]
| very hardian
| 2008-04-08 10:41:04
|-
| [http://maemo.org/profile/view/verdino.html verdino]
| verdino ontario
| 2007-12-24 06:42:02
|-
| [http://maemo.org/profile/view/verhom11.html verhom11]
| Michel Verhoeven
| 2007-05-18 19:10:36
|-
| [http://maemo.org/profile/view/verilog.html verilog]
| Ashot Gasparyan
| 2007-12-13 15:41:42
|-
| [http://maemo.org/profile/view/vern.html vern]
| Ian Lawrence
| 2007-05-21 13:43:18
|-
| [http://maemo.org/profile/view/vero.html vero]
| Vero Pepperrell
| 2007-10-22 18:40:43
|-
| [http://maemo.org/profile/view/veronicadesio.html veronicadesio]
| veronica desio
| 2007-10-17 22:40:26
|-
| [http://maemo.org/profile/view/versus.html versus]
| szentinek zsolt
| 2008-02-26 20:31:07
|-
| [http://maemo.org/profile/view/vertikar.html vertikar]
| Karl von Muller
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/verysmall.html verysmall]
| joel lei
| 2008-04-03 02:42:26
|-
| [http://maemo.org/profile/view/vesamattila.html vesamattila]
| vesa mattila
| 2008-06-04 11:41:16
|-
| [http://maemo.org/profile/view/vesarajala.html vesarajala]
| vesa rajala
| 2007-12-18 19:41:15
|-
| [http://maemo.org/profile/view/vesku.html vesku]
| Vesa Kousa
| 2008-01-20 09:31:05
|-
| [http://maemo.org/profile/view/vetalik.html vetalik]
| Vitalij Ozornin
| 2008-02-01 11:31:03
|-
| [http://maemo.org/profile/view/vetelys.html vetelys]
| ville vetelys
| 2008-01-07 10:40:56
|-
| [http://maemo.org/profile/view/vewoowoo.html vewoowoo]
| Pan Xu
| 2008-03-04 08:30:59
|-
| [http://maemo.org/profile/view/vexen.html vexen]
| Vexen Liebely
| 2007-10-18 19:40:42
|-
| [http://maemo.org/profile/view/vfoschi.html vfoschi]
| Vittorio Foschi
| 2007-10-22 09:40:34
|-
| [http://maemo.org/profile/view/vgrigor.html vgrigor]
| Vladimir Grigoryev
| 2007-07-08 09:40:10
|-
| [http://maemo.org/profile/view/vhaajanen.html vhaajanen]
| Veli-Pekka Haajanen
| 2007-11-16 17:49:29
|-
| [http://maemo.org/profile/view/vhi.html vhi]
| Vesa Hirvisalo
| 2007-10-24 12:40:30
|-
| [http://maemo.org/profile/view/vhilario.html vhilario]
| toze hilario
| 2008-05-28 07:42:50
|-
| [http://maemo.org/profile/view/vialach.html vialach]
| christian viala
| 2007-11-16 17:48:10
|-
| [http://maemo.org/profile/view/vianny27.html vianny27]
| michael wang
| 2007-11-15 07:56:23
|-
| [http://maemo.org/profile/view/viasat.html viasat]
| Alex Alex
| 2008-02-29 21:31:04
|-
| [http://maemo.org/profile/view/vibe.html vibe]
| Justin Zhao
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/vicar63jr.html vicar63jr]
| carlos viray
| 2007-05-23 05:29:39
|-
| [http://maemo.org/profile/view/vicsptcruiser1.html vicsptcruiser1]
| victoria mcgurk
| 2007-11-16 17:46:48
|-
| [http://maemo.org/profile/view/victor.html victor]
| Victore Merzer
| 2007-12-18 09:41:02
|-
| [http://maemo.org/profile/view/victoriniestra.html victoriniestra]
| victor iniestra
| 2007-12-28 21:41:24
|-
| [http://maemo.org/profile/view/victoriys.html victoriys]
| Victoriys Victoriys
| 2008-01-19 17:31:12
|-
| [http://maemo.org/profile/view/victormui.html victormui]
| victor mui
| 2008-05-06 02:41:10
|-
| [http://maemo.org/profile/view/victoroff.html victoroff]
| Igor Victorov
| 2007-11-16 17:49:18
|-
| [http://maemo.org/profile/view/victortavares.html victortavares]
| Victor Tavares
| 2008-01-30 00:41:21
|-
| [http://maemo.org/profile/view/victorvicho.html victorvicho]
| victor vergara
| 2008-02-11 15:42:09
|-
| [http://maemo.org/profile/view/victorvsc.html victorvsc]
| victor cavalcante
| 2008-03-08 14:31:07
|-
| [http://maemo.org/profile/view/vidar.html vidar]
| Vidar Madsen
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/vidu.html vidu]
| Vincent Dupont
| 2007-10-23 19:40:36
|-
| [http://maemo.org/profile/view/vietbabe.html vietbabe]
| viet babe
| 2008-04-16 06:41:06
|-
| [http://maemo.org/profile/view/vigupta.html vigupta]
| Vijay gupta
| 2007-10-19 09:40:32
|-
| [http://maemo.org/profile/view/viili1.html viili1]
| Ari Forss
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/vijayachandran.html vijayachandran]
| Vijay Chandran
| 2007-12-11 16:26:03
|-
| [http://maemo.org/profile/view/vijaymanoharrao.html vijaymanoharrao]
| Vijay Manohar
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/vijayshan.html vijayshan]
| vijay shan
| 2008-01-04 16:42:11
|-
| [http://maemo.org/profile/view/vijcool.html vijcool]
| Hari Santhosh
| 2007-10-19 11:40:32
|-
| [http://maemo.org/profile/view/viking.html viking]
| Øyvind Aabling
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/viksu.html viksu]
| Petri Halonen
| 2008-03-21 07:31:04
|-
| [http://maemo.org/profile/view/vilaflor.html vilaflor]
| frank michel
| 2007-05-18 19:14:37
|-
| [http://maemo.org/profile/view/villa.html villa]
| Villa -
| 2007-11-16 17:46:59
|-
| [http://maemo.org/profile/view/village_id10t.html village_id10t]
| Joseph McIsaac
| 2008-03-31 18:41:11
|-
| [http://maemo.org/profile/view/villasol.html villasol]
| Fernando Villasol
| 2007-05-18 19:12:08
|-
| [http://maemo.org/profile/view/villela_rodrigo.html villela_rodrigo]
| Rodrigo Villela
| 2008-04-01 04:41:03
|-
| [http://maemo.org/profile/view/villeys.html villeys]
| Ville Runtti
| 2007-05-18 19:13:50
|-
| [http://maemo.org/profile/view/vilvo.html vilvo]
| Ville Ilvonen
| 2007-06-08 13:37:06
|-
| [http://maemo.org/profile/view/vims.html vims]
| Sebastian Virus
| 2007-05-18 19:13:19
|-
| [http://maemo.org/profile/view/vin2ktalks.html vin2ktalks]
| Vinod Kumar K V
| 2007-10-19 13:40:37
|-
| [http://maemo.org/profile/view/vinara70.html vinara70]
| Vitaliy Shokha
| 2007-12-11 16:26:23
|-
| [http://maemo.org/profile/view/vinayharugop.html vinayharugop]
| Vinay Harugop
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/vinc17.html vinc17]
| Vincent Lefèvre
| 2008-03-05 11:31:01
|-
| [http://maemo.org/profile/view/vince.html vince]
| Frank Niemann
| 2008-03-07 12:31:03
|-
| [http://maemo.org/profile/view/vincent-lark.html vincent-lark]
| vincent lark
| 2007-11-16 17:49:24
|-
| [http://maemo.org/profile/view/vincentgreen.html vincentgreen]
| Vincent Green
| 2007-07-20 14:40:18
|-
| [http://maemo.org/profile/view/vincenzo.html vincenzo]
| Vincenzo Belpiede
| 2007-05-18 19:13:34
|-
| [http://maemo.org/profile/view/vincenzogentile.html vincenzogentile]
| vincenzo gentile
| 2007-12-27 11:41:03
|-
| [http://maemo.org/profile/view/vincepia.html vincepia]
| vincenzo piazza
| 2007-11-02 10:40:34
|-
| [http://maemo.org/profile/view/vinebear.html vinebear]
| David Bearry
| 2007-05-23 05:29:37
|-
| [http://maemo.org/profile/view/vineeshhere.html vineeshhere]
| vineesh Kumar
| 2008-02-19 06:31:01
|-
| [http://maemo.org/profile/view/vinemt.html vinemt]
| Matt Vine
| 2008-02-21 09:30:59
|-
| [http://maemo.org/profile/view/vineyjoshi.html vineyjoshi]
| viney joshi
| 2007-11-16 17:47:29
|-
| [http://maemo.org/profile/view/viniciushisao.html viniciushisao]
| Vinicius Hisao Suzuki
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/vinmes.html vinmes]
| Vincenzo Messina
| 2007-10-22 08:40:35
|-
| [http://maemo.org/profile/view/vinny_75.html vinny_75]
| Vinod Srinivasan
| 2007-12-19 21:41:34
|-
| [http://maemo.org/profile/view/vinodmkrishnan.html vinodmkrishnan]
| Vinod Muthukrishnan
| 2007-07-04 18:40:10
|-
| [http://maemo.org/profile/view/vint.html vint]
| isaev vitaliy
| 2007-12-15 10:40:49
|-
| [http://maemo.org/profile/view/vintor.html vintor]
| Vincent Garcia
| 2008-02-13 00:31:02
|-
| [http://maemo.org/profile/view/viper1_2001.html viper1_2001]
| Chris Torwick
| 2008-05-06 06:41:06
|-
| [http://maemo.org/profile/view/viperbyte650.html viperbyte650]
| Ryan Tiebout
| 2007-11-05 21:50:53
|-
| [http://maemo.org/profile/view/viqsi.html viqsi]
| Jo Valentine-Cooper
| 2008-04-20 20:41:11
|-
| [http://maemo.org/profile/view/virdenjohn.html virdenjohn]
| john virden
| 2007-05-18 19:10:24
|-
| [http://maemo.org/profile/view/virgilsweeney.html virgilsweeney]
| virgil sweeney
| 2007-11-16 17:47:30
|-
| [http://maemo.org/profile/view/virprob.html virprob]
| virprob vir
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/virtanen.html virtanen]
| ari virtanen
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/virtualrep.html virtualrep]
| Rick Schlang
| 2007-05-18 19:12:12
|-
| [http://maemo.org/profile/view/visali.html visali]
| Visali Vasiraju
| 2008-03-07 05:31:01
|-
| [http://maemo.org/profile/view/vishru.html vishru]
| vishrut konijeti
| 2008-04-01 00:41:22
|-
| [http://maemo.org/profile/view/visy.html visy]
| Visa-Valtteri Pimiä
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/vitahum.html vitahum]
| Geza Geza
| 2007-12-11 16:26:30
|-
| [http://maemo.org/profile/view/vitalica.html vitalica]
| vitalica frontier
| 2007-05-18 19:10:51
|-
| [http://maemo.org/profile/view/vitaly13.html vitaly13]
| Vitaly Chekusov
| 2008-01-09 15:41:08
|-
| [http://maemo.org/profile/view/vitaly_repin.html vitaly_repin]
| Vitaly Repin
| 2008-02-06 15:43:00
|-
| [http://maemo.org/profile/view/vital_z.html vital_z]
| vit rus
| 2008-05-01 20:41:05
|-
| [http://maemo.org/profile/view/vitosans.html vitosans]
| Vito Sansevero
| 2007-10-19 16:40:32
|-
| [http://maemo.org/profile/view/vivekraman.html vivekraman]
| vivek raman
| 2008-01-13 10:41:00
|-
| [http://maemo.org/profile/view/viveksekar.html viveksekar]
| vivek sekar
| 2007-11-16 17:50:05
|-
| [http://maemo.org/profile/view/vivia.html vivia]
| Vivia Nikolaidou
| 2007-10-18 20:40:33
|-
| [http://maemo.org/profile/view/viviansinaswee.html viviansinaswee]
| Vivian Sinaswee
| 2007-11-28 15:43:37
|-
| [http://maemo.org/profile/view/vivijim.html vivijim]
| Rodrigo Vivi
| 2007-05-18 19:12:38
|-
| [http://maemo.org/profile/view/vjaquez.html vjaquez]
| Víctor Manuel Jáquez Leal
| 2008-06-03 17:51:40
|-
| [http://maemo.org/profile/view/vjktm.html vjktm]
| v p
| 2007-12-28 17:41:07
|-
| [http://maemo.org/profile/view/vjoh.html vjoh]
| Viktor Johanek
| 2008-05-03 04:41:09
|-
| [http://maemo.org/profile/view/vkaldanis.html vkaldanis]
| Vassilis Kaldanis
| 2007-10-17 14:40:28
|-
| [http://maemo.org/profile/view/vkallioniemi.html vkallioniemi]
| Ville Kallioniemi
| 2007-12-29 23:41:04
|-
| [http://maemo.org/profile/view/vkanevska.html vkanevska]
| Valentina Kanevska
| 2006-12-13 11:30:10
|-
| [http://maemo.org/profile/view/vkon.html vkon]
| Vadim Konovalov
| 2008-02-02 07:31:03
|-
| [http://maemo.org/profile/view/vkuosa.html vkuosa]
| Ville Kuosa
| 2007-07-12 12:40:18
|-
| [http://maemo.org/profile/view/vkvraju.html vkvraju]
| Kasi Viswanath
| 2007-11-16 17:48:59
|-
| [http://maemo.org/profile/view/vlad.html vlad]
| Vladimir Krougly
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/vlad1943.html vlad1943]
| Владимир Беляк
| 2007-12-11 16:26:04
|-
| [http://maemo.org/profile/view/vlad92.html vlad92]
| Vlad Băeşu
| 2007-06-19 07:10:36
|-
| [http://maemo.org/profile/view/vladimi3076.html vladimi3076]
| Vladimir De La Rosa
| 2007-05-29 09:30:41
|-
| [http://maemo.org/profile/view/vladimircatao.html vladimircatao]
| Vladimir Catão
| 2007-05-18 19:12:59
|-
| [http://maemo.org/profile/view/vlg.html vlg]
| Vladislav Grinchenko
| 2007-05-18 19:12:24
|-
| [http://maemo.org/profile/view/vliscony.html vliscony]
| Rogier van Vlissingen
| 2007-05-18 19:12:31
|-
| [http://maemo.org/profile/view/vman76nj.html vman76nj]
| Sam Sneed
| 2007-07-09 21:40:16
|-
| [http://maemo.org/profile/view/vme.html vme]
| ville ettala
| 2008-01-05 15:41:09
|-
| [http://maemo.org/profile/view/vnangia.html vnangia]
| varun nangia
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/vnguyen972.html vnguyen972]
| Vu Nguyen
| 2007-11-30 10:49:37
|-
| [http://maemo.org/profile/view/vocking.html vocking]
| Volker Voecking
| 2007-11-16 17:46:32
|-
| [http://maemo.org/profile/view/vodall.html vodall]
| Bill Vodall
| 2007-06-08 13:37:14
|-
| [http://maemo.org/profile/view/vodka.html vodka]
| Philip Marien
| 2007-10-18 21:40:31
|-
| [http://maemo.org/profile/view/vogon.html vogon]
| Lutz Molgedey
| 2008-01-22 19:31:37
|-
| [http://maemo.org/profile/view/void.html void]
| Holger Behrens
| 2007-12-21 09:41:06
|-
| [http://maemo.org/profile/view/vokyous.html vokyous]
| Benjamin LaPointe
| 2007-12-22 21:42:17
|-
| [http://maemo.org/profile/view/volcada82.html volcada82]
| Kyungseon Joo
| 2007-12-11 16:25:45
|-
| [http://maemo.org/profile/view/volkantur.html volkantur]
| volkan tur
| 2007-11-16 17:47:59
|-
| [http://maemo.org/profile/view/volkermord.html volkermord]
| Derek Brown
| 2008-05-11 18:41:12
|-
| [http://maemo.org/profile/view/volkerv.html volkerv]
| Volker Vöcking
| 2007-10-18 11:40:29
|-
| [http://maemo.org/profile/view/volkov.html volkov]
| Dmitry Volkov
| 2008-02-14 12:01:18
|-
| [http://maemo.org/profile/view/volta.html volta]
| Nelson Soria
| 2008-04-23 07:41:08
|-
| [http://maemo.org/profile/view/voma955.html voma955]
| 955 voma
| 2007-11-16 17:49:27
|-
| [http://maemo.org/profile/view/vonami.html vonami]
| Dmitry Ivanov
| 2007-12-18 08:50:57
|-
| [http://maemo.org/profile/view/vonwirth.html vonwirth]
| Hans Vonwirth
| 2008-05-19 10:41:09
|-
| [http://maemo.org/profile/view/voodoomate.html voodoomate]
| voodoo mate
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/vorear.html vorear]
| Victor ORear
| 2007-10-20 22:40:35
|-
| [http://maemo.org/profile/view/vorken.html vorken]
| Alex Tokarev
| 2007-11-15 07:55:22
|-
| [http://maemo.org/profile/view/vorne.html vorne]
| Markku Vorne
| 2007-06-08 13:36:58
|-
| [http://maemo.org/profile/view/vortex.html vortex]
| James McDowell
| 2007-05-18 19:12:01
|-
| [http://maemo.org/profile/view/vortexryu.html vortexryu]
| Hoseong Ryu
| 2007-05-18 19:10:29
|-
| [http://maemo.org/profile/view/vorticerosso.html vorticerosso]
| Claudio Chimera
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/vorxton.html vorxton]
| Andréas HAFFNER
| 2007-10-19 13:40:36
|-
| [http://maemo.org/profile/view/vost.html vost]
| Stefan Volz
| 2007-05-18 19:10:26
|-
| [http://maemo.org/profile/view/vpol.html vpol]
| Victor Polukcht
| 2007-12-29 22:40:59
|-
| [http://maemo.org/profile/view/vport.html vport]
| Vladimir Portnichenko
| 2007-12-12 12:40:51
|-
| [http://maemo.org/profile/view/vpuhakka.html vpuhakka]
| vesa puhakka
| 2007-05-18 19:12:03
|-
| [http://maemo.org/profile/view/vrabi.html vrabi]
| Attila Vrabecz
| 2007-11-16 17:47:50
|-
| [http://maemo.org/profile/view/vrahkone.html vrahkone]
| Valtteri Rahkonen
| 2007-05-18 19:10:55
|-
| [http://maemo.org/profile/view/vre.html vre]
| Ville Reijonen
| 2007-05-18 19:14:22
|-
| [http://maemo.org/profile/view/vrej.html vrej]
| vrej jans
| 2008-01-29 07:31:14
|-
| [http://maemo.org/profile/view/vrette.html vrette]
| Brett Vrette
| 2008-04-20 15:41:21
|-
| [http://maemo.org/profile/view/vrhoeven.html vrhoeven]
| Jean-Pierre Verhoeven
| 2007-06-13 16:00:33
|-
| [http://maemo.org/profile/view/vroetman.html vroetman]
| Victor Roetman
| 2007-05-18 19:10:37
|-
| [http://maemo.org/profile/view/vroveda.html vroveda]
| Vinicius Gonçalves
| 2007-11-15 07:55:55
|-
| [http://maemo.org/profile/view/vrussell.html vrussell]
| Ruogu Luo
| 2007-10-18 21:40:31
|-
| [http://maemo.org/profile/view/vsekim.html vsekim]
| Michael Vincent
| 2007-11-16 17:47:47
|-
| [http://maemo.org/profile/view/vsimionescu.html vsimionescu]
| vlad simionescu
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/vsiruela.html vsiruela]
| Victor Siruela Matos
| 2007-06-08 13:37:22
|-
| [http://maemo.org/profile/view/vsmoland.html vsmoland]
| Visa Smolander
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/vsomers.html vsomers]
| brock Sampson
| 2008-01-03 22:41:23
|-
| [http://maemo.org/profile/view/vsumagman.html vsumagman]
| Tony Pabon
| 2007-11-28 15:43:40
|-
| [http://maemo.org/profile/view/vsuontam.html vsuontam]
| Vesa S
| 2007-05-18 19:12:21
|-
| [http://maemo.org/profile/view/vt13013.html vt13013]
| Steven Van Tilburg
| 2007-12-11 16:25:06
|-
| [http://maemo.org/profile/view/vtdave96.html vtdave96]
| Dave Musci
| 2007-10-26 21:40:26
|-
| [http://maemo.org/profile/view/vtec2k7.html vtec2k7]
| Dan Mastro
| 2008-01-22 17:30:58
|-
| [http://maemo.org/profile/view/vting.html vting]
| Vincent Ting
| 2008-02-11 23:31:43
|-
| [http://maemo.org/profile/view/vtolkov.html vtolkov]
| Valeri Tolkov
| 2007-11-16 17:46:25
|-
| [http://maemo.org/profile/view/vts997.html vts997]
| andrea benelli
| 2007-10-22 08:40:35
|-
| [http://maemo.org/profile/view/vtyagi.html vtyagi]
| vipin tyagi
| 2007-10-29 07:40:39
|-
| [http://maemo.org/profile/view/vu3rjy.html vu3rjy]
| Bhaskara Raju
| 2007-10-19 11:40:31
|-
| [http://maemo.org/profile/view/vudean.html vudean]
| Dean Merritt
| 2007-07-03 19:40:14
|-
| [http://maemo.org/profile/view/vudentz.html vudentz]
| Luiz Augusto von Dentz
| 2007-05-18 19:11:49
|-
| [http://maemo.org/profile/view/vuemme.html vuemme]
| Valerio Montanari
| 2007-05-18 19:12:01
|-
| [http://maemo.org/profile/view/vvadim.html vvadim]
| Vadim Zaripov
| 2008-01-13 21:51:02
|-
| [http://maemo.org/profile/view/vvhicke.html vvhicke]
| mem mem
| 2007-10-03 03:40:25
|-
| [http://maemo.org/profile/view/vvieira.html vvieira]
| Henry Vieira
| 2007-05-12 17:13:33
|-
| [http://maemo.org/profile/view/vvvnsk.html vvvnsk]
| Vladimir Vaschenko
| 2008-02-15 15:31:03
|-
| [http://maemo.org/profile/view/vwgm.html vwgm]
| vwgm vwgm
| 2007-11-16 17:47:15
|-
| [http://maemo.org/profile/view/vyborgsat.html vyborgsat]
| Felix Felixoff
| 2007-04-16 12:41:53
|-
| [http://maemo.org/profile/view/vykk3.html vykk3]
| Victoria Welch
| 2007-11-28 15:43:21
|-
| [http://maemo.org/profile/view/vyt.html vyt]
| Vitaly Ostanin
| 2007-06-08 13:37:19
|-
| [http://maemo.org/profile/view/w14.html w14]
| Mike Robinson
| 2007-12-11 16:26:05
|-
| [http://maemo.org/profile/view/w2ctx.html w2ctx]
| Ron Pfeiffer
| 2008-03-04 15:31:01
|-
| [http://maemo.org/profile/view/w4csc.html w4csc]
| Larry Butler
| 2008-03-04 02:31:15
|-
| [http://maemo.org/profile/view/wa501ph.html wa501ph]
| Wayne Phillips
| 2007-11-30 10:49:37
|-
| [http://maemo.org/profile/view/wackysalut.html wackysalut]
| Alexandre Bourget
| 2007-05-18 19:12:25
|-
| [http://maemo.org/profile/view/wadeall.html wadeall]
| Wade Allsopp
| 2007-11-03 06:40:39
|-
| [http://maemo.org/profile/view/wae5.html wae5]
| Bill Eadie
| 2007-11-19 09:01:24
|-
| [http://maemo.org/profile/view/waechterj.html waechterj]
| Jacob Waechter
| 2007-10-17 21:40:30
|-
| [http://maemo.org/profile/view/wagenschmiedt.html wagenschmiedt]
| Werner Ehl
| 2008-01-11 15:52:01
|-
| [http://maemo.org/profile/view/wahez.html wahez]
| Walther Zwart
| 2007-11-16 17:47:47
|-
| [http://maemo.org/profile/view/wahlau.html wahlau]
| Sian Lun Lau
| 2007-11-16 17:49:40
|-
| [http://maemo.org/profile/view/waikiki.html waikiki]
| Igor Varnero
| 2008-01-06 21:41:52
|-
| [http://maemo.org/profile/view/waisto.html waisto]
| Joonas Wäistö
| 2007-10-17 12:40:28
|-
| [http://maemo.org/profile/view/waite.html waite]
| Brian Waite
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/wakanus2.html wakanus2]
| Pavel GLIUCK OGAR
| 2007-11-16 17:49:31
|-
| [http://maemo.org/profile/view/wakoond.html wakoond]
| András Takács
| 2007-12-11 16:25:12
|-
| [http://maemo.org/profile/view/waleed452.html waleed452]
| waleed khalid
| 2007-10-25 18:40:38
|-
| [http://maemo.org/profile/view/walibix.html walibix]
| Yannick VIGIER
| 2007-10-15 11:40:27
|-
| [http://maemo.org/profile/view/walkfour.html walkfour]
| mark walker
| 2007-06-29 12:40:08
|-
| [http://maemo.org/profile/view/wally.html wally]
| Wally Benson
| 2007-12-11 16:24:48
|-
| [http://maemo.org/profile/view/wallytrek.html wallytrek]
| Wally Loncala
| 2008-04-25 15:41:06
|-
| [http://maemo.org/profile/view/walrusanderson.html walrusanderson]
| Walter Anderson
| 2008-02-06 16:51:38
|-
| [http://maemo.org/profile/view/walshga.html walshga]
| Jim Walsh
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/walte.html walte]
| Yang Walte
| 2008-03-28 06:31:05
|-
| [http://maemo.org/profile/view/walter-zettl.html walter-zettl]
| Walter Zettl
| 2007-11-16 17:48:49
|-
| [http://maemo.org/profile/view/walterra.html walterra]
| Walter Rafelsberger
| 2007-10-26 10:40:35
|-
| [http://maemo.org/profile/view/walterw.html walterw]
| Walter White
| 2008-02-10 23:32:45
|-
| [http://maemo.org/profile/view/walts.html walts]
| Walt Scrivens
| 2008-01-22 22:31:31
|-
| [http://maemo.org/profile/view/wamanning.html wamanning]
| walter manning
| 2008-01-18 18:31:14
|-
| [http://maemo.org/profile/view/wamble.html wamble]
| Eric Rose
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/wangyao.html wangyao]
| Yao Wang
| 2007-10-19 08:40:30
|-
| [http://maemo.org/profile/view/wangych.html wangych]
| Yichun Wang
| 2008-01-09 09:41:09
|-
| [http://maemo.org/profile/view/wantsfly.html wantsfly]
| 冬 冬
| 2007-11-16 17:48:16
|-
| [http://maemo.org/profile/view/war1ock.html war1ock]
| Kyle Etgen
| 2007-07-08 02:40:12
|-
| [http://maemo.org/profile/view/warep5532.html warep5532]
| Emmanuel Asercion
| 2007-11-16 17:47:52
|-
| [http://maemo.org/profile/view/warly.html warly]
| Florent Villard
| 2007-11-03 13:40:44
|-
| [http://maemo.org/profile/view/warman.html warman]
| Anthony malone
| 2008-03-28 16:31:22
|-
| [http://maemo.org/profile/view/warn81.html warn81]
| nick warren
| 2007-11-16 17:49:26
|-
| [http://maemo.org/profile/view/warren64c.html warren64c]
| warren coleman
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/warsoundz.html warsoundz]
| terrel watson
| 2007-11-28 15:43:37
|-
| [http://maemo.org/profile/view/wart.html wart]
| Wartan Hachaturow
| 2007-11-15 07:55:15
|-
| [http://maemo.org/profile/view/wasabi.html wasabi]
| Jerry Haltom
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/waskelly.html waskelly]
| dave maret
| 2008-04-29 01:41:08
|-
| [http://maemo.org/profile/view/wassup.html wassup]
| Sylvain Bernard
| 2007-06-08 13:37:01
|-
| [http://maemo.org/profile/view/wat4er.html wat4er]
| Holy Spawn
| 2008-03-28 17:31:08
|-
| [http://maemo.org/profile/view/watadoo.html watadoo]
| bill thompson
| 2008-01-29 19:32:40
|-
| [http://maemo.org/profile/view/waterboycj.html waterboycj]
| Curtis jones
| 2008-01-18 21:31:41
|-
| [http://maemo.org/profile/view/waterfall.html waterfall]
| Ayman Wagdy
| 2007-11-16 17:48:25
|-
| [http://maemo.org/profile/view/wathsala.html wathsala]
| wathsala vithanage
| 2007-11-15 08:40:45
|-
| [http://maemo.org/profile/view/watkid.html watkid]
| dave watkins
| 2007-11-16 17:46:39
|-
| [http://maemo.org/profile/view/wave.html wave]
| Sören Wellhöfer
| 2007-11-15 07:56:04
|-
| [http://maemo.org/profile/view/wave0615.html wave0615]
| Warren Ave-Lallemant
| 2008-03-22 00:31:04
|-
| [http://maemo.org/profile/view/wavelevgth.html wavelevgth]
| Gordon Rankin
| 2007-05-18 19:12:06
|-
| [http://maemo.org/profile/view/wavin.html wavin]
| Susan Winer
| 2007-11-16 17:47:25
|-
| [http://maemo.org/profile/view/wavy.html wavy]
| Dave dyer
| 2008-01-04 17:54:01
|-
| [http://maemo.org/profile/view/way22go.html way22go]
| Johnny Yeung
| 2007-11-16 17:47:09
|-
| [http://maemo.org/profile/view/wayn3w.html wayn3w]
| Wayne Wylupski
| 2007-05-18 19:11:13
|-
| [http://maemo.org/profile/view/wayne5446.html wayne5446]
| wayne carmona
| 2007-05-15 17:42:10
|-
| [http://maemo.org/profile/view/wayne71.html wayne71]
| wayne cummings
| 2007-11-16 17:48:01
|-
| [http://maemo.org/profile/view/wayneomac.html wayneomac]
| wayne Cameron
| 2007-05-18 19:11:51
|-
| [http://maemo.org/profile/view/waypoints.html waypoints]
| Richard Mardon
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/wazd.html wazd]
| Andrew Zhilin
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/wb0gaz.html wb0gaz]
| David Feldman
| 2008-04-20 22:41:35
|-
| [http://maemo.org/profile/view/wbcarey.html wbcarey]
| Bill Carey
| 2007-11-16 17:46:40
|-
| [http://maemo.org/profile/view/wberrier.html wberrier]
| Wade Berrier
| 2007-11-15 07:55:37
|-
| [http://maemo.org/profile/view/wbs.html wbs]
| Alejandro Andrade Alarcon
| 2008-01-22 22:31:31
|-
| [http://maemo.org/profile/view/wbsfire.html wbsfire]
| alejandro andrade
| 2007-12-30 05:40:55
|-
| [http://maemo.org/profile/view/wburke.html wburke]
| Wayne Burke
| 2008-01-20 03:32:11
|-
| [http://maemo.org/profile/view/wce2k.html wce2k]
| Wellis Cesten
| 2008-02-07 07:31:03
|-
| [http://maemo.org/profile/view/wclwong.html wclwong]
| wallace wong
| 2007-05-18 19:10:58
|-
| [http://maemo.org/profile/view/wconnett.html wconnett]
| william connett
| 2007-11-16 17:46:31
|-
| [http://maemo.org/profile/view/wcrocket.html wcrocket]
| Bill Crockett
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/wdehoog.html wdehoog]
| Willem-Jan de Hoog
| 2007-10-19 19:40:33
|-
| [http://maemo.org/profile/view/we-ird.html we-ird]
| Alexandr Belosludtsev
| 2007-06-08 13:37:20
|-
| [http://maemo.org/profile/view/wealthweb.html wealthweb]
| eric yu
| 2008-06-07 12:31:12
|-
| [http://maemo.org/profile/view/weapon21.html weapon21]
| kiss peter
| 2007-04-05 15:25:39
|-
| [http://maemo.org/profile/view/webb.html webb]
| Reece Webb
| 2007-10-19 13:40:34
|-
| [http://maemo.org/profile/view/webba.html webba]
| alexander webb
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/webcruise.html webcruise]
| Alexander Webcruise
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/webgineering.html webgineering]
| John Burge
| 2007-11-19 09:01:25
|-
| [http://maemo.org/profile/view/webliskot.html webliskot]
| Juha Nurminen
| 2007-10-23 08:40:39
|-
| [http://maemo.org/profile/view/websurfinmurf.html websurfinmurf]
| Michael Murphy
| 2007-06-08 13:37:16
|-
| [http://maemo.org/profile/view/webwurst.html webwurst]
| Tobias Bradtke
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/weellu.html weellu]
| Veli-Pekka Eloranta
| 2007-11-16 17:49:30
|-
| [http://maemo.org/profile/view/weezedog.html weezedog]
| Jason Wiese
| 2007-07-06 03:40:08
|-
| [http://maemo.org/profile/view/weezy1.html weezy1]
| louise moore
| 2007-12-11 16:25:26
|-
| [http://maemo.org/profile/view/wehope.html wehope]
| Bill Hope
| 2007-07-24 12:41:05
|-
| [http://maemo.org/profile/view/weichengher.html weichengher]
| Wei-Cheng Her
| 2007-05-23 05:29:42
|-
| [http://maemo.org/profile/view/weida.html weida]
| mike weida
| 2007-10-24 08:40:35
|-
| [http://maemo.org/profile/view/weidling.html weidling]
| Dean Weidling
| 2007-11-15 07:55:45
|-
| [http://maemo.org/profile/view/weiler.html weiler]
| Sam Weiler
| 2007-11-15 07:55:43
|-
| [http://maemo.org/profile/view/weim.html weim]
| yury kidalov
| 2008-06-03 13:41:10
|-
| [http://maemo.org/profile/view/weitzman.html weitzman]
| m weitzman
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/weixianlin.html weixianlin]
| eric wei
| 2007-11-16 17:48:28
|-
| [http://maemo.org/profile/view/welderman.html welderman]
| welderman welderman
| 2008-03-06 15:31:04
|-
| [http://maemo.org/profile/view/wellkon.html wellkon]
| diego gonzalez
| 2007-11-16 17:47:24
|-
| [http://maemo.org/profile/view/wellsbr01.html wellsbr01]
| Wellington Lacerda
| 2008-05-11 01:41:05
|-
| [http://maemo.org/profile/view/wellsw.html wellsw]
| wes wells
| 2007-12-11 16:24:55
|-
| [http://maemo.org/profile/view/wellu.html wellu]
| Wellu Mäkinen
| 2007-11-16 17:49:00
|-
| [http://maemo.org/profile/view/wendland99.html wendland99]
| David wendland
| 2007-11-16 17:49:07
|-
| [http://maemo.org/profile/view/wendong.html wendong]
| Wendong Li
| 2007-10-18 18:40:27
|-
| [http://maemo.org/profile/view/werewolf.html werewolf]
| Oriol Farràs
| 2007-05-18 19:11:24
|-
| [http://maemo.org/profile/view/wernerb38.html wernerb38]
| Werner Blank
| 2007-12-11 16:24:58
|-
| [http://maemo.org/profile/view/wernersen.html wernersen]
| Werner Luettecken
| 2007-11-15 07:55:34
|-
| [http://maemo.org/profile/view/weroskr.html weroskr]
| dgjkd djty
| 2008-01-05 00:40:19
|-
| [http://maemo.org/profile/view/werrismys.html werrismys]
| Kimmo Veijalainen
| 2007-05-18 19:12:21
|-
| [http://maemo.org/profile/view/wes120.html wes120]
| wesley van sprundel
| 2007-11-16 17:46:45
|-
| [http://maemo.org/profile/view/wesq.html wesq]
| Vesa-Matti Hartikainen
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/westwho.html westwho]
| Ray roberts
| 2008-01-29 18:43:30
|-
| [http://maemo.org/profile/view/wetcoast.html wetcoast]
| Michael Watkins
| 2007-11-28 15:41:03
|-
| [http://maemo.org/profile/view/wetnet.html wetnet]
| Master Blaster
| 2007-11-28 15:43:34
|-
| [http://maemo.org/profile/view/wetpeds.html wetpeds]
| Todd Hall
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/wgoodson.html wgoodson]
| Bill Goodson
| 2006-12-13 11:30:12
|-
| [http://maemo.org/profile/view/wgrazier.html wgrazier]
| Wendy Grazier
| 2007-11-16 17:48:05
|-
| [http://maemo.org/profile/view/wguaraldi.html wguaraldi]
| Will Guaraldi
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/wguerra.html wguerra]
| Walter Guerra
| 2008-03-25 12:31:22
|-
| [http://maemo.org/profile/view/whatevah.html whatevah]
| Jerry Horn
| 2007-12-31 01:42:16
|-
| [http://maemo.org/profile/view/whatever.html whatever]
| ryan webster
| 2008-01-28 15:41:55
|-
| [http://maemo.org/profile/view/whayong.html whayong]
| Ian Legarda
| 2008-02-17 20:30:59
|-
| [http://maemo.org/profile/view/whc.html whc]
| William Christensen
| 2008-02-19 23:31:00
|-
| [http://maemo.org/profile/view/wheelie.html wheelie]
| Ville Oras
| 2007-05-18 19:10:48
|-
| [http://maemo.org/profile/view/whereisian.html whereisian]
| Ian Bell
| 2007-11-16 17:47:19
|-
| [http://maemo.org/profile/view/whistler162.html whistler162]
| Paul Larson
| 2007-12-14 09:40:49
|-
| [http://maemo.org/profile/view/whitfordjazz.html whitfordjazz]
| Philip Pinel
| 2007-05-18 19:10:24
|-
| [http://maemo.org/profile/view/whitis.html whitis]
| Mark Whitis
| 2007-11-16 17:49:21
|-
| [http://maemo.org/profile/view/whiz.html whiz]
| Tero Heino
| 2007-10-23 18:40:40
|-
| [http://maemo.org/profile/view/whouweling.html whouweling]
| Wouter Houweling
| 2007-11-16 17:47:49
|-
| [http://maemo.org/profile/view/whtzmb.html whtzmb]
| C Mok
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/whw456979.html whw456979]
| leo wong
| 2007-11-16 17:48:28
|-
| [http://maemo.org/profile/view/why.html why]
| why urs
| 2007-11-28 15:43:42
|-
| [http://maemo.org/profile/view/why-pengo.html why-pengo]
| Jon Morgan
| 2008-01-09 02:40:59
|-
| [http://maemo.org/profile/view/whycode.html whycode]
| rahul garg
| 2008-02-06 02:31:37
|-
| [http://maemo.org/profile/view/whyly.html whyly]
| Arno Onken
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/wibleh.html wibleh]
| Andrew Holt
| 2007-11-19 09:00:25
|-
| [http://maemo.org/profile/view/wickasitha.html wickasitha]
| Dasun Wickasitha
| 2008-06-09 07:31:29
|-
| [http://maemo.org/profile/view/wickedbaldy.html wickedbaldy]
| Mario Uson
| 2007-11-16 17:47:04
|-
| [http://maemo.org/profile/view/wickerman.html wickerman]
| Steve McDonald
| 2007-07-11 18:40:15
|-
| [http://maemo.org/profile/view/wicksmith.html wicksmith]
| Wick Smith
| 2007-06-28 02:40:08
|-
| [http://maemo.org/profile/view/wideopenirirs.html wideopenirirs]
| K C
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/wiebelt.html wiebelt]
| Bernd Wiebelt
| 2007-10-19 13:40:06
|-
| [http://maemo.org/profile/view/wiggadun.html wiggadun]
| willis dun
| 2008-01-24 19:32:12
|-
| [http://maemo.org/profile/view/wiin_maemo.html wiin_maemo]
| Dirk Winning
| 2007-07-08 08:40:09
|-
| [http://maemo.org/profile/view/wikiadmin.html wikiadmin]
| Mediawiki Admin
| 2008-05-06 19:41:11
|-
| [http://maemo.org/profile/view/wilberhinojosa.html wilberhinojosa]
| Wilber Hinojosa Delgadillo
| 2007-05-18 19:11:44
|-
| [http://maemo.org/profile/view/wildbill.html wildbill]
| Bill Childers
| 2007-10-19 18:40:34
|-
| [http://maemo.org/profile/view/wildfire.html wildfire]
| Alvin Harwick
| 2007-10-18 18:40:22
|-
| [http://maemo.org/profile/view/wildpenguin.html wildpenguin]
| Matthew Hagedorn
| 2007-05-18 19:14:05
|-
| [http://maemo.org/profile/view/wildponies.html wildponies]
| Heath Robertson
| 2008-01-27 05:31:15
|-
| [http://maemo.org/profile/view/wildpossum.html wildpossum]
| Grahame Kelly
| 2007-11-16 17:48:58
|-
| [http://maemo.org/profile/view/wildriding.html wildriding]
| Anton Rogaynis
| 2007-11-16 17:46:32
|-
| [http://maemo.org/profile/view/wildwill44.html wildwill44]
| will huddleston
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/wildwill445.html wildwill445]
| Will Huddleston
| 2007-11-16 17:46:41
|-
| [http://maemo.org/profile/view/will.html will]
| Will Scales
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/will3100.html will3100]
| willie harrington
| 2007-11-16 17:48:04
|-
| [http://maemo.org/profile/view/wille.html wille]
| Per Wille
| 2007-04-16 12:41:54
|-
| [http://maemo.org/profile/view/willer.html willer]
| Willer Moreira
| 2007-11-16 17:47:59
|-
| [http://maemo.org/profile/view/william.html william]
| william chick
| 2007-11-28 17:51:00
|-
| [http://maemo.org/profile/view/williamdeo.html williamdeo]
| William de Oliveira
| 2007-11-16 17:49:24
|-
| [http://maemo.org/profile/view/williamuk1.html williamuk1]
| william chick
| 2007-11-02 17:40:36
|-
| [http://maemo.org/profile/view/willianrp.html willianrp]
| fabio willian murashima
| 2007-11-28 15:43:19
|-
| [http://maemo.org/profile/view/willrea.html willrea]
| William Rea
| 2006-12-13 11:30:14
|-
| [http://maemo.org/profile/view/willwest.html willwest]
| Will Westlake
| 2007-11-16 17:49:34
|-
| [http://maemo.org/profile/view/willydavidk.html willydavidk]
| David Kitts
| 2007-12-21 19:41:41
|-
| [http://maemo.org/profile/view/wilsonkaranja92.html wilsonkaranja92]
| wilson karanja
| 2007-11-16 17:48:28
|-
| [http://maemo.org/profile/view/wilweb.html wilweb]
| jose duran
| 2008-02-15 16:30:57
|-
| [http://maemo.org/profile/view/wimhuls.html wimhuls]
| Wim Huls
| 2007-11-16 17:49:12
|-
| [http://maemo.org/profile/view/wimmi.html wimmi]
| Michael Wiemeler
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/wimoreir.html wimoreir]
| Willer Moreira
| 2007-05-18 19:11:32
|-
| [http://maemo.org/profile/view/win3.html win3]
| Min-seok Seung
| 2007-10-21 14:40:33
|-
| [http://maemo.org/profile/view/wings002.html wings002]
| Jaegyu Choi
| 2007-10-20 02:40:31
|-
| [http://maemo.org/profile/view/winpeace.html winpeace]
| win peace
| 2008-02-14 12:01:09
|-
| [http://maemo.org/profile/view/winquis.html winquis]
| Christoffer Winquist
| 2007-11-16 17:47:01
|-
| [http://maemo.org/profile/view/winter-systems.html winter-systems]
| Reinhold Winter
| 2007-12-11 16:26:25
|-
| [http://maemo.org/profile/view/winterheart.html winterheart]
| Azamat Hackimov
| 2007-10-21 23:40:34
|-
| [http://maemo.org/profile/view/wintermute.html wintermute]
| Rob Cameron
| 2007-05-18 19:14:26
|-
| [http://maemo.org/profile/view/winteum.html winteum]
| marcel k
| 2008-01-14 18:43:07
|-
| [http://maemo.org/profile/view/wired34341.html wired34341]
| Avery W
| 2008-02-19 03:31:00
|-
| [http://maemo.org/profile/view/wiredwolf.html wiredwolf]
| Andrea Bellucci
| 2007-12-11 16:26:27
|-
| [http://maemo.org/profile/view/wirenut666.html wirenut666]
| kevin mccusker
| 2007-05-18 19:12:41
|-
| [http://maemo.org/profile/view/wirlfly.html wirlfly]
| Zheng Spark
| 2007-10-23 06:40:33
|-
| [http://maemo.org/profile/view/wirrkopf.html wirrkopf]
| Malte Mand
| 2007-05-18 19:12:14
|-
| [http://maemo.org/profile/view/wiscoteiger.html wiscoteiger]
| Ben Teigen
| 2008-02-16 06:31:06
|-
| [http://maemo.org/profile/view/wishi.html wishi]
| Jonas Hermann
| 2008-04-16 21:41:08
|-
| [http://maemo.org/profile/view/wishing.html wishing]
| hari naga
| 2007-12-11 16:25:21
|-
| [http://maemo.org/profile/view/wishmaster.html wishmaster]
| Guillermo Garcia
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/wisp.html wisp]
| Joshua Layne
| 2007-11-28 15:43:43
|-
| [http://maemo.org/profile/view/witman.html witman]
| wit man
| 2007-10-31 00:40:36
|-
| [http://maemo.org/profile/view/witznitz.html witznitz]
| Brian Knight
| 2007-05-18 19:11:03
|-
| [http://maemo.org/profile/view/wizardchai.html wizardchai]
| Qiang Chai
| 2008-03-15 12:31:04
|-
| [http://maemo.org/profile/view/wiztom.html wiztom]
| tom scally
| 2007-07-04 20:40:16
|-
| [http://maemo.org/profile/view/wizzard_tower.html wizzard_tower]
| Bertrand Lee
| 2007-11-16 17:47:10
|-
| [http://maemo.org/profile/view/wizzro.html wizzro]
| Thomas Montfort
| 2007-11-28 15:43:33
|-
| [http://maemo.org/profile/view/wjg15.html wjg15]
| William Gauthier
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/wjgeorge.html wjgeorge]
| william george
| 2007-05-18 19:12:07
|-
| [http://maemo.org/profile/view/wk2001kx.html wk2001kx]
| wang kun
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/wlashell.html wlashell]
| Will LaShell
| 2007-10-19 15:40:31
|-
| [http://maemo.org/profile/view/wllmharrison.html wllmharrison]
| Bill Harrison
| 2007-04-04 08:16:22
|-
| [http://maemo.org/profile/view/wlmsears.html wlmsears]
| williqm sears
| 2008-02-07 02:31:48
|-
| [http://maemo.org/profile/view/wmceast.html wmceast]
| William East
| 2007-05-18 19:12:04
|-
| [http://maemo.org/profile/view/wmealing.html wmealing]
| Wade Mealing
| 2007-10-19 15:40:31
|-
| [http://maemo.org/profile/view/wmt.html wmt]
| spi pro
| 2007-07-02 18:40:15
|-
| [http://maemo.org/profile/view/wm_eddie.html wm_eddie]
| Eduardo Gonzalez
| 2007-10-19 04:40:29
|-
| [http://maemo.org/profile/view/woaim65.html woaim65]
| yin lei
| 2008-01-05 07:40:52
|-
| [http://maemo.org/profile/view/wodin.html wodin]
| Wayne Swanson
| 2007-05-18 19:10:34
|-
| [http://maemo.org/profile/view/wodisch.html wodisch]
| Wolf-Dietrich Schmook
| 2007-10-18 20:40:33
|-
| [http://maemo.org/profile/view/woglinde.html woglinde]
| Henning Heinold
| 2007-10-18 22:40:28
|-
| [http://maemo.org/profile/view/woifi.html woifi]
| wolfgang neudorfer
| 2008-05-30 08:41:08
|-
| [http://maemo.org/profile/view/wolenzack.html wolenzack]
| David Vega Nevares
| 2007-11-16 17:46:27
|-
| [http://maemo.org/profile/view/wolf08.html wolf08]
| Andrew Stromme
| 2007-11-16 17:49:06
|-
| [http://maemo.org/profile/view/wolfebreed.html wolfebreed]
| Daniel Wolfe
| 2008-03-21 15:31:07
|-
| [http://maemo.org/profile/view/wolffred.html wolffred]
| Frédéric MIRAS
| 2007-10-26 17:40:32
|-
| [http://maemo.org/profile/view/wolfg.html wolfg]
| Guo Yong
| 2007-05-18 19:12:34
|-
| [http://maemo.org/profile/view/wolfg1969.html wolfg1969]
| Yong Guo
| 2007-05-18 19:12:11
|-
| [http://maemo.org/profile/view/wolfmane.html wolfmane]
| Mark Haury
| 2008-03-26 02:32:51
|-
| [http://maemo.org/profile/view/wolle_s.html wolle_s]
| Wolfgang Schneider
| 2008-01-02 10:40:59
|-
| [http://maemo.org/profile/view/wolney.html wolney]
| Walt Olney
| 2007-06-19 07:10:38
|-
| [http://maemo.org/profile/view/womfoo.html womfoo]
| Kranium Gikos Mendoza
| 2007-12-19 13:41:38
|-
| [http://maemo.org/profile/view/wonder.html wonder]
| Vladimir Artemov
| 2008-03-10 08:31:02
|-
| [http://maemo.org/profile/view/wonderboy.html wonderboy]
| Christian Chun
| 2007-11-28 15:43:36
|-
| [http://maemo.org/profile/view/wongjpm.html wongjpm]
| j wong
| 2008-02-16 03:31:03
|-
| [http://maemo.org/profile/view/wonjeon.html wonjeon]
| Won Jeon
| 2008-06-02 16:41:11
|-
| [http://maemo.org/profile/view/wonken.html wonken]
| Wilhelm Onken
| 2007-11-16 17:47:05
|-
| [http://maemo.org/profile/view/woodymd.html woodymd]
| Scott Woodson
| 2007-11-16 17:47:35
|-
| [http://maemo.org/profile/view/woolf.html woolf]
| Igor Pylnov
| 2008-02-12 21:31:30
|-
| [http://maemo.org/profile/view/woolim.html woolim]
| Woolim Kim
| 2007-12-11 16:26:18
|-
| [http://maemo.org/profile/view/wooshman.html wooshman]
| Andy Derrick
| 2007-11-16 17:46:56
|-
| [http://maemo.org/profile/view/woower.html woower]
| vladimir izotov
| 2008-04-28 15:41:06
|-
| [http://maemo.org/profile/view/wordord.html wordord]
| Word Ord
| 2007-05-18 19:13:58
|-
| [http://maemo.org/profile/view/worldcompanies.html worldcompanies]
| Jason Apter
| 2007-12-23 02:41:48
|-
| [http://maemo.org/profile/view/wormfood.html wormfood]
| Dave Wormfood
| 2007-12-22 05:41:24
|-
| [http://maemo.org/profile/view/wouter.html wouter]
| Wouter Lagerweij
| 2008-06-02 18:41:16
|-
| [http://maemo.org/profile/view/wow.html wow]
| vladimir izotov
| 2008-05-03 16:41:09
|-
| [http://maemo.org/profile/view/wowbagger.html wowbagger]
| David Hagood
| 2007-02-07 02:33:43
|-
| [http://maemo.org/profile/view/woznihack.html woznihack]
| Arturo Di Lecce
| 2007-10-22 21:40:34
|-
| [http://maemo.org/profile/view/wpaisley.html wpaisley]
| William Paisley
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/wparmenter.html wparmenter]
| William Parmenter
| 2007-07-06 18:40:10
|-
| [http://maemo.org/profile/view/wpirri.html wpirri]
| Walter Pirri
| 2007-10-23 20:40:32
|-
| [http://maemo.org/profile/view/wqdeng.html wqdeng]
| Wenqing Deng
| 2007-05-18 19:14:19
|-
| [http://maemo.org/profile/view/wquillin.html wquillin]
| Will Quillin
| 2007-12-29 00:41:10
|-
| [http://maemo.org/profile/view/wramos1.html wramos1]
| Wilbert Ramos
| 2007-05-18 19:12:33
|-
| [http://maemo.org/profile/view/wreiter.html wreiter]
| William Reiter
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/wrestler32203.html wrestler32203]
| mark riemersma
| 2008-05-02 04:41:05
|-
| [http://maemo.org/profile/view/wrgander.html wrgander]
| Wolfgang R Gander
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/wrightwe.html wrightwe]
| Bill Wright
| 2007-10-28 20:40:35
|-
| [http://maemo.org/profile/view/wrnewman.html wrnewman]
| Bill Newman
| 2007-10-21 04:40:41
|-
| [http://maemo.org/profile/view/wrzindio.html wrzindio]
| mario de beni
| 2008-01-03 22:41:23
|-
| [http://maemo.org/profile/view/wsadams66.html wsadams66]
| william adams
| 2007-12-23 23:41:36
|-
| [http://maemo.org/profile/view/wsj33.html wsj33]
| jun wang
| 2008-06-08 08:31:30
|-
| [http://maemo.org/profile/view/wstearns.html wstearns]
| William Stearns
| 2007-10-23 02:40:33
|-
| [http://maemo.org/profile/view/wstew6571.html wstew6571]
| William Srewart
| 2008-05-10 19:41:25
|-
| [http://maemo.org/profile/view/wtarget.html wtarget]
| Thierry Lafay
| 2007-05-18 19:14:30
|-
| [http://maemo.org/profile/view/wulfdesign.html wulfdesign]
| Larry James
| 2008-01-01 02:41:10
|-
| [http://maemo.org/profile/view/wulfgang.html wulfgang]
| gang wang
| 2008-04-05 09:41:04
|-
| [http://maemo.org/profile/view/wumpus.html wumpus]
| Wladimir van der Laan
| 2007-05-18 19:10:43
|-
| [http://maemo.org/profile/view/wusel.html wusel]
| Kai Siering
| 2007-10-18 14:40:28
|-
| [http://maemo.org/profile/view/wuss912.html wuss912]
| Ian Emmons
| 2007-06-30 20:40:10
|-
| [http://maemo.org/profile/view/wuwing.html wuwing]
| Wen Wu
| 2008-02-24 03:30:56
|-
| [http://maemo.org/profile/view/wuzhaojun.html wuzhaojun]
| Zhaojun WU
| 2007-11-15 07:55:42
|-
| [http://maemo.org/profile/view/ww42fi.html ww42fi]
| Bill Wofford
| 2007-11-30 10:49:26
|-
| [http://maemo.org/profile/view/ww9rivers.html ww9rivers]
| Wei Wang
| 2007-05-15 17:42:10
|-
| [http://maemo.org/profile/view/wwhitefarm.html wwhitefarm]
| Ron Hickson
| 2007-05-18 19:11:52
|-
| [http://maemo.org/profile/view/wwonderllama.html wwonderllama]
| Phill Wiggin
| 2007-05-18 19:12:06
|-
| [http://maemo.org/profile/view/wwp.html wwp]
| Tristan Chabredier
| 2007-10-19 13:40:36
|-
| [http://maemo.org/profile/view/wwward.html wwward]
| William Ward
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/wylhistory.html wylhistory]
| f w
| 2007-10-23 03:40:39
|-
| [http://maemo.org/profile/view/wylie1608.html wylie1608]
| Wyl Ie
| 2008-02-05 23:32:53
|-
| [http://maemo.org/profile/view/wynst.html wynst]
| Willy Nasution
| 2007-10-19 01:40:32
|-
| [http://maemo.org/profile/view/wzrd.html wzrd]
| G F
| 2007-11-04 20:40:40
|-
| [http://maemo.org/profile/view/wzwang.html wzwang]
| Zhiming Wang
| 2007-11-16 17:48:03
|-
| [http://maemo.org/profile/view/wzzrd.html wzzrd]
| Maxim Burgerhout
| 2008-01-06 15:41:03
|-
| [http://maemo.org/profile/view/w_i.html w_i]
| Jerry Jalava
| 2007-05-21 13:43:25
|-
| [http://maemo.org/profile/view/x2rich.html x2rich]
| Xiaoxin Sun
| 2007-11-16 17:50:02
|-
| [http://maemo.org/profile/view/xabisam.html xabisam]
| javier sanjurjo amado
| 2007-08-05 15:40:20
|-
| [http://maemo.org/profile/view/xadimore.html xadimore]
| xadimore xahid
| 2008-04-20 09:41:25
|-
| [http://maemo.org/profile/view/xaeth.html xaeth]
| Greg Swift
| 2008-03-10 03:31:05
|-
| [http://maemo.org/profile/view/xakutin.html xakutin]
| Juan Gomez
| 2007-10-18 13:40:26
|-
| [http://maemo.org/profile/view/xaliu.html xaliu]
| Xiaolin Liu
| 2007-11-16 17:47:06
|-
| [http://maemo.org/profile/view/xan.html xan]
| Xan Lopez
| 2007-05-18 19:11:07
|-
| [http://maemo.org/profile/view/xancandal.html xancandal]
| xan candal
| 2007-05-18 19:10:54
|-
| [http://maemo.org/profile/view/xandu25.html xandu25]
| ADAM lolo
| 2008-05-28 03:41:07
|-
| [http://maemo.org/profile/view/xanthonyx1118.html xanthonyx1118]
| anthony garcia
| 2007-09-04 06:50:17
|-
| [http://maemo.org/profile/view/xathros.html xathros]
| Bill Ortlieb
| 2008-01-03 15:42:04
|-
| [http://maemo.org/profile/view/xavicxdp.html xavicxdp]
| CARLOS DELGADO
| 2007-12-14 21:41:44
|-
| [http://maemo.org/profile/view/xavo.html xavo]
| xavier garbin
| 2008-04-25 00:41:19
|-
| [http://maemo.org/profile/view/xblueray.html xblueray]
| Raymond Chou
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/xcrider.html xcrider]
| Svante Kärkkäinen
| 2007-11-16 17:49:03
|-
| [http://maemo.org/profile/view/xdw197782.html xdw197782]
| 徐 东卫
| 2008-01-19 05:31:12
|-
| [http://maemo.org/profile/view/xeboy.html xeboy]
| jibin zou
| 2008-03-11 07:31:11
|-
| [http://maemo.org/profile/view/xellaphan.html xellaphan]
| chris martin
| 2007-05-18 19:13:04
|-
| [http://maemo.org/profile/view/xenophil.html xenophil]
| thomas cinatl
| 2007-12-25 16:41:16
|-
| [http://maemo.org/profile/view/xeos.html xeos]
| xeos ...
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/xetra.html xetra]
| David X
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/xevous.html xevous]
| fggg ghgh
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/xfade.html xfade]
| Niels Breet
| 2007-05-21 13:43:21
|-
| [http://maemo.org/profile/view/xfygx.html xfygx]
| yang guangxiang
| 2007-08-19 14:40:20
|-
| [http://maemo.org/profile/view/xgl.html xgl]
| Xavier Glattard
| 2007-11-30 10:48:57
|-
| [http://maemo.org/profile/view/xgmr.html xgmr]
| sbastian sandy
| 2007-11-16 17:47:04
|-
| [http://maemo.org/profile/view/xgmx.html xgmx]
| Kevin McDonald
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/xharada.html xharada]
| Danilo Freire
| 2007-05-18 19:10:26
|-
| [http://maemo.org/profile/view/xhsoldier.html xhsoldier]
| Hai Xu
| 2007-10-18 08:40:27
|-
| [http://maemo.org/profile/view/xiayule.html xiayule]
| you zhou
| 2007-10-16 03:40:27
|-
| [http://maemo.org/profile/view/xiayule8807.html xiayule8807]
| zhou you
| 2008-05-16 08:41:07
|-
| [http://maemo.org/profile/view/xicobode.html xicobode]
| Francisco Baudet
| 2008-01-05 15:41:08
|-
| [http://maemo.org/profile/view/xifi.html xifi]
| www xifi
| 2007-12-11 16:24:59
|-
| [http://maemo.org/profile/view/xine.html xine]
| steve ellingson
| 2007-11-16 17:49:16
|-
| [http://maemo.org/profile/view/xisco.html xisco]
| francisco reyna
| 2008-02-15 18:30:58
|-
| [http://maemo.org/profile/view/xj0903.html xj0903]
| 谢 军
| 2007-05-18 19:10:43
|-
| [http://maemo.org/profile/view/xkdzy.html xkdzy]
| Yuan Zhao
| 2008-03-26 15:31:04
|-
| [http://maemo.org/profile/view/xlage.html xlage]
| Xavier Gillard
| 2007-11-16 17:47:40
|-
| [http://maemo.org/profile/view/xlex0x835.html xlex0x835]
| Alexander Potemkin
| 2007-10-22 10:40:35
|-
| [http://maemo.org/profile/view/xluke.html xluke]
| feee rrrrr
| 2007-12-11 16:26:18
|-
| [http://maemo.org/profile/view/xma.html xma]
| Xavier Maillard
| 2008-05-23 10:41:17
|-
| [http://maemo.org/profile/view/xman.html xman]
| jerry xu
| 2007-12-12 03:41:21
|-
| [http://maemo.org/profile/view/xmfisher.html xmfisher]
| Jason wen
| 2007-11-16 17:46:26
|-
| [http://maemo.org/profile/view/xopher.html xopher]
| Richard McIntosh
| 2007-12-12 23:41:07
|-
| [http://maemo.org/profile/view/xora.html xora]
| Graeme Gregory
| 2007-10-18 22:40:25
|-
| [http://maemo.org/profile/view/xorbit.html xorbit]
| Patrick Van Oosterwijck
| 2007-12-19 19:42:19
|-
| [http://maemo.org/profile/view/xorlab.html xorlab]
| Tommaso isgro
| 2007-11-28 17:21:59
|-
| [http://maemo.org/profile/view/xorlabk.html xorlabk]
| Tommaso isgro
| 2007-11-30 10:48:25
|-
| [http://maemo.org/profile/view/xornor.html xornor]
| petri pyoria
| 2007-05-18 19:13:18
|-
| [http://maemo.org/profile/view/xoubir.html xoubir]
| Thibault Lamy
| 2007-05-18 19:11:23
|-
| [http://maemo.org/profile/view/xquery.html xquery]
| Slava Sedov
| 2007-05-18 19:14:44
|-
| [http://maemo.org/profile/view/xqzu.html xqzu]
| adrian yanez
| 2008-02-14 12:01:19
|-
| [http://maemo.org/profile/view/xray61.html xray61]
| Peter Ecsery-Merrens
| 2007-05-18 19:11:14
|-
| [http://maemo.org/profile/view/xrcalvar.html xrcalvar]
| Xabier Rodríguez Calvar
| 2008-01-07 09:40:55
|-
| [http://maemo.org/profile/view/xrobat.html xrobat]
| Eric Ren
| 2007-12-11 16:25:35
|-
| [http://maemo.org/profile/view/xrs.html xrs]
| Chris Hirsch
| 2007-12-11 16:26:10
|-
| [http://maemo.org/profile/view/xryx.html xryx]
| chris c
| 2007-05-18 19:13:35
|-
| [http://maemo.org/profile/view/xshroom.html xshroom]
| Nils-Johan Gynther
| 2008-01-07 19:41:18
|-
| [http://maemo.org/profile/view/xspeed9190.html xspeed9190]
| Nick S
| 2007-05-18 19:11:53
|-
| [http://maemo.org/profile/view/xtarenx.html xtarenx]
| Taren Francisco
| 2007-11-15 07:55:46
|-
| [http://maemo.org/profile/view/xujun.html xujun]
| Danny Xu
| 2008-06-02 03:41:10
|-
| [http://maemo.org/profile/view/xunil99.html xunil99]
| Volker Hauffe
| 2007-05-18 19:12:48
|-
| [http://maemo.org/profile/view/xuxing.html xuxing]
| xu xing
| 2007-11-28 15:43:43
|-
| [http://maemo.org/profile/view/xuyiseu.html xuyiseu]
| Yi Xu
| 2007-10-19 12:40:32
|-
| [http://maemo.org/profile/view/xvila.html xvila]
| Xavier Vila
| 2008-03-15 12:31:03
|-
| [http://maemo.org/profile/view/xwaver.html xwaver]
| Isaac Fischer
| 2007-07-08 07:40:09
|-
| [http://maemo.org/profile/view/xwupo.html xwupo]
| sh s
| 2008-05-01 05:41:07
|-
| [http://maemo.org/profile/view/xw_max.html xw_max]
| Xie Wei
| 2007-10-18 11:40:29
|-
| [http://maemo.org/profile/view/xxv.html xxv]
| Steve Pomeroy
| 2008-05-22 16:41:13
|-
| [http://maemo.org/profile/view/xyzbiris.html xyzbiris]
| Ilias Biris
| 2007-10-30 10:40:35
|-
| [http://maemo.org/profile/view/xyzo.html xyzo]
| Laurent MARTIN
| 2007-05-18 19:13:24
|-
| [http://maemo.org/profile/view/x_2.html x_2]
| richard sun
| 2007-05-18 19:11:23
|-
| [http://maemo.org/profile/view/x_lucifer.html x_lucifer]
| chen zhou
| 2007-11-16 17:48:00
|-
| [http://maemo.org/profile/view/y000_adrianne.html y000_adrianne]
| Adrianne Pena
| 2007-07-09 01:40:18
|-
| [http://maemo.org/profile/view/y2j164.html y2j164]
| jo soussan
| 2007-07-02 15:40:11
|-
| [http://maemo.org/profile/view/y3dips.html y3dips]
| ammar wk
| 2007-07-12 10:40:15
|-
| [http://maemo.org/profile/view/yabbas.html yabbas]
| Yasin Abbas
| 2007-10-27 01:40:39
|-
| [http://maemo.org/profile/view/yael.html yael]
| ya ah
| 2007-05-18 19:12:21
|-
| [http://maemo.org/profile/view/yago2r.html yago2r]
| Louis Ricard
| 2007-10-19 16:40:34
|-
| [http://maemo.org/profile/view/yaholo.html yaholo]
| Chris Hoyt
| 2008-04-05 03:41:06
|-
| [http://maemo.org/profile/view/yakav.html yakav]
| Andrey Yakovlev
| 2007-12-11 16:25:33
|-
| [http://maemo.org/profile/view/yakdogan.html yakdogan]
| Yalcin Akdogan
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/yaketyyaker.html yaketyyaker]
| tom park
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/yakko.html yakko]
| Bob Skipson
| 2007-05-18 19:11:44
|-
| [http://maemo.org/profile/view/yakupovrn.html yakupovrn]
| Rustem Yakupov
| 2008-06-04 06:41:08
|-
| [http://maemo.org/profile/view/yalp.html yalp]
| Marc CAPDEVIELLE
| 2006-12-13 11:30:03
|-
| [http://maemo.org/profile/view/yaluruns.html yaluruns]
| jay nam
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/yanekpl.html yanekpl]
| Yan Pyaskovskiy
| 2008-02-08 08:32:29
|-
| [http://maemo.org/profile/view/yanglei.html yanglei]
| lei yang
| 2007-12-17 05:40:51
|-
| [http://maemo.org/profile/view/yangshuangli.html yangshuangli]
| shuangli yang
| 2008-01-15 03:41:03
|-
| [http://maemo.org/profile/view/yani.html yani]
| Yani Ioannou
| 2007-07-08 05:40:08
|-
| [http://maemo.org/profile/view/yannick.html yannick]
| Defais Yannick
| 2007-08-29 10:40:23
|-
| [http://maemo.org/profile/view/yann_b.html yann_b]
| Yann Benigot
| 2008-01-09 14:41:09
|-
| [http://maemo.org/profile/view/yaojinyang.html yaojinyang]
| Yaojin Yang
| 2007-11-15 07:55:39
|-
| [http://maemo.org/profile/view/yaosj2k.html yaosj2k]
| adam yao
| 2008-03-11 02:31:05
|-
| [http://maemo.org/profile/view/yaoyi.html yaoyi]
| Yi Yao
| 2007-11-30 10:48:36
|-
| [http://maemo.org/profile/view/yapal.html yapal]
| Alexey Yaparov
| 2007-06-26 09:40:06
|-
| [http://maemo.org/profile/view/yapyap.html yapyap]
| randy nolan
| 2007-11-30 10:49:35
|-
| [http://maemo.org/profile/view/yaqxsw.html yaqxsw]
| Joe Schneider
| 2007-05-18 19:11:29
|-
| [http://maemo.org/profile/view/yarema.html yarema]
| Yarema Hrytsyshyn
| 2008-03-26 08:31:03
|-
| [http://maemo.org/profile/view/yarod.html yarod]
| Daniel Coquette
| 2006-10-30 17:22:10
|-
| [http://maemo.org/profile/view/yart.html yart]
| Артём Яроцкий
| 2008-02-05 17:31:54
|-
| [http://maemo.org/profile/view/ycaouette.html ycaouette]
| Yanni Caouette
| 2007-05-18 19:14:03
|-
| [http://maemo.org/profile/view/ydossow.html ydossow]
| Yonathan Dossow
| 2008-01-25 18:32:21
|-
| [http://maemo.org/profile/view/ydube.html ydube]
| Yves Dubé
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/yeager.html yeager]
| Daniel Nylander
| 2008-01-11 11:11:26
|-
| [http://maemo.org/profile/view/yegor.html yegor]
| Yegor Koroliow
| 2008-01-11 11:11:23
|-
| [http://maemo.org/profile/view/yeiazel.html yeiazel]
| Sébastien Munch
| 2006-12-13 11:30:06
|-
| [http://maemo.org/profile/view/yellaji.html yellaji]
| Aviligonda Mohanyellaji
| 2007-10-19 05:40:31
|-
| [http://maemo.org/profile/view/yellowbug.html yellowbug]
| Song Huang
| 2007-11-16 17:49:31
|-
| [http://maemo.org/profile/view/yelvington.html yelvington]
| Steve Yelvington
| 2007-10-04 10:40:25
|-
| [http://maemo.org/profile/view/yemmi20.html yemmi20]
| yemi ayeni
| 2007-11-16 17:47:39
|-
| [http://maemo.org/profile/view/yeneti.html yeneti]
| Praveen Kumar Yeneti
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/yenice.html yenice]
| Ahmet Yıldız
| 2007-11-16 17:48:21
|-
| [http://maemo.org/profile/view/yep.html yep]
| yep chester
| 2008-04-28 15:41:05
|-
| [http://maemo.org/profile/view/yepingyu.html yepingyu]
| YEPING YU
| 2007-11-15 07:56:20
|-
| [http://maemo.org/profile/view/yerga.html yerga]
| Daniel Martín Yerga
| 2007-05-18 19:10:55
|-
| [http://maemo.org/profile/view/yerneh.html yerneh]
| henry goh
| 2007-05-18 19:11:42
|-
| [http://maemo.org/profile/view/yesmathew.html yesmathew]
| Mathew Chacko
| 2007-10-19 20:40:33
|-
| [http://maemo.org/profile/view/yesudeep.html yesudeep]
| Yesudeep Mangalapilly
| 2008-05-17 19:40:57
|-
| [http://maemo.org/profile/view/yetiuk.html yetiuk]
| yeti uk
| 2007-11-16 17:47:28
|-
| [http://maemo.org/profile/view/yey365.html yey365]
| Jim Griffiths
| 2008-04-29 19:41:09
|-
| [http://maemo.org/profile/view/yfournier.html yfournier]
| Yves Fournier
| 2008-04-27 13:41:20
|-
| [http://maemo.org/profile/view/yilomka.html yilomka]
| yilmaz kaya
| 2007-12-23 05:41:26
|-
| [http://maemo.org/profile/view/yingguan.html yingguan]
| junming liu
| 2007-05-31 02:53:41
|-
| [http://maemo.org/profile/view/yjag02.html yjag02]
| doug porter
| 2007-05-18 19:11:59
|-
| [http://maemo.org/profile/view/ykaliuta.html ykaliuta]
| Yauheni Kaliuta
| 2007-10-18 12:40:27
|-
| [http://maemo.org/profile/view/yksipoika.html yksipoika]
| Esa Ketola
| 2007-11-01 18:40:37
|-
| [http://maemo.org/profile/view/yl2626.html yl2626]
| Lei Yang
| 2007-12-26 09:40:54
|-
| [http://maemo.org/profile/view/ylitarvas.html ylitarvas]
| Matti Ylitarvas
| 2008-01-03 10:41:02
|-
| [http://maemo.org/profile/view/ylucki.html ylucki]
| Yedlapalli Lakshmaiah
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/ymaginary.html ymaginary]
| andrei braga
| 2007-11-16 17:49:09
|-
| [http://maemo.org/profile/view/ymoore.html ymoore]
| Y Moore
| 2007-11-16 17:48:07
|-
| [http://maemo.org/profile/view/yodainva.html yodainva]
| John Loucks
| 2007-05-18 19:13:00
|-
| [http://maemo.org/profile/view/yodl.html yodl]
| Yannick OUVRARD
| 2007-11-28 15:43:21
|-
| [http://maemo.org/profile/view/yodude.html yodude]
| Steven Yeager
| 2007-02-07 02:33:42
|-
| [http://maemo.org/profile/view/yogesh4u.html yogesh4u]
| Yogesh Kanitkar
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/yogeshjs.html yogeshjs]
| Yogesh Solanke
| 2008-06-10 02:31:15
|-
| [http://maemo.org/profile/view/yogi.html yogi]
| dogan anil
| 2007-11-16 17:48:03
|-
| [http://maemo.org/profile/view/yogz.html yogz]
| Francisco Salazar
| 2007-11-16 17:48:22
|-
| [http://maemo.org/profile/view/yohan_chia.html yohan_chia]
| yohan chiarianto
| 2007-11-16 17:47:22
|-
| [http://maemo.org/profile/view/yohel.html yohel]
| Andrei Pretkel
| 2008-01-04 18:51:03
|-
| [http://maemo.org/profile/view/yollsy.html yollsy]
| johann ruelle
| 2007-10-17 19:40:29
|-
| [http://maemo.org/profile/view/yongfengxi.html yongfengxi]
| kim sak
| 2007-05-18 19:12:14
|-
| [http://maemo.org/profile/view/yooitzjad.html yooitzjad]
| Jad Zeitoune
| 2007-12-11 16:26:32
|-
| [http://maemo.org/profile/view/yoonjj.html yoonjj]
| yoon jung
| 2008-01-05 17:41:08
|-
| [http://maemo.org/profile/view/yooper.html yooper]
| Jim LaVallee
| 2008-01-08 03:41:13
|-
| [http://maemo.org/profile/view/yoran.html yoran]
| Yoran Leichsenring
| 2007-11-16 17:50:13
|-
| [http://maemo.org/profile/view/york2.html york2]
| York Yuen
| 2007-11-16 17:47:00
|-
| [http://maemo.org/profile/view/youroy.html youroy]
| Roy Young
| 2008-01-09 16:41:12
|-
| [http://maemo.org/profile/view/yowda.html yowda]
| Eric Yow
| 2008-01-21 14:32:16
|-
| [http://maemo.org/profile/view/ypslinux.html ypslinux]
| y p
| 2007-06-25 22:40:08
|-
| [http://maemo.org/profile/view/yrams44.html yrams44]
| brent tillman
| 2007-11-16 17:47:23
|-
| [http://maemo.org/profile/view/ytsukeng.html ytsukeng]
| Veniamin Volkov
| 2007-11-28 15:43:36
|-
| [http://maemo.org/profile/view/yucca.html yucca]
| Jukka Silvennoinen
| 2007-10-25 07:40:35
|-
| [http://maemo.org/profile/view/yuen47.html yuen47]
| Anthony Yuen
| 2007-10-20 07:40:34
|-
| [http://maemo.org/profile/view/yuhang111.html yuhang111]
| yu hang
| 2007-07-06 04:40:10
|-
| [http://maemo.org/profile/view/yuhopd.html yuhopd]
| Lee yuho
| 2008-01-09 11:52:30
|-
| [http://maemo.org/profile/view/yujc1986.html yujc1986]
| jiachen yu
| 2007-12-11 16:25:40
|-
| [http://maemo.org/profile/view/yujianjun.html yujianjun]
| yu jianjun
| 2008-06-02 02:41:24
|-
| [http://maemo.org/profile/view/yukiyu.html yukiyu]
| Jose Mojica
| 2008-03-07 17:31:24
|-
| [http://maemo.org/profile/view/yulcris.html yulcris]
| brands nardo
| 2008-02-02 01:40:59
|-
| [http://maemo.org/profile/view/yumekobo.html yumekobo]
| Weijie Yin
| 2007-12-19 00:40:57
|-
| [http://maemo.org/profile/view/yumi_.html yumi_]
| Joëlla spier
| 2008-04-07 08:41:04
|-
| [http://maemo.org/profile/view/yummy10.html yummy10]
| Geoff Kent
| 2007-05-18 19:14:41
|-
| [http://maemo.org/profile/view/yungcho.html yungcho]
| yung ho
| 2008-02-14 12:01:17
|-
| [http://maemo.org/profile/view/yunsung98.html yunsung98]
| S.H SA
| 2008-05-16 05:41:07
|-
| [http://maemo.org/profile/view/yurgengoa.html yurgengoa]
| YURGEN GOA
| 2007-10-23 03:40:38
|-
| [http://maemo.org/profile/view/yuricgomes.html yuricgomes]
| Yuri Gomes
| 2008-05-07 19:41:06
|-
| [http://maemo.org/profile/view/yusufag.html yusufag]
| yusuf arapoglu
| 2007-05-18 19:13:14
|-
| [http://maemo.org/profile/view/yuwt.html yuwt]
| yu wt
| 2007-11-15 07:55:52
|-
| [http://maemo.org/profile/view/yuyijun.html yuyijun]
| yijun yu
| 2007-07-11 11:40:17
|-
| [http://maemo.org/profile/view/yuyou.html yuyou]
| Yu You
| 2007-05-18 19:10:39
|-
| [http://maemo.org/profile/view/yves.html yves]
| Yves Kurz
| 2008-01-04 11:41:58
|-
| [http://maemo.org/profile/view/yvesk.html yvesk]
| Yves Kurz
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/ywwg.html ywwg]
| Owen Williams
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/yyjkmm.html yyjkmm]
| Javier Kwong
| 2007-12-19 16:41:32
|-
| [http://maemo.org/profile/view/yyy.html yyy]
| Triple Why
| 2007-11-16 17:48:11
|-
| [http://maemo.org/profile/view/yyysim.html yyysim]
| sida yang
| 2008-05-03 12:41:06
|-
| [http://maemo.org/profile/view/yzhang.html yzhang]
| Y ZAlt
| 2007-12-14 20:41:00
|-
| [http://maemo.org/profile/view/z2n.html z2n]
| Mark Bergman
| 2008-02-14 12:01:19
|-
| [http://maemo.org/profile/view/z32chic.html z32chic]
| chic z32
| 2008-03-15 18:31:03
|-
| [http://maemo.org/profile/view/z70swe.html z70swe]
| Mikael Larsson
| 2008-05-09 20:41:07
|-
| [http://maemo.org/profile/view/zabbler.html zabbler]
| Brad Haakenson
| 2007-12-11 16:26:33
|-
| [http://maemo.org/profile/view/zaborokopatel.html zaborokopatel]
| Mihail Panov
| 2008-02-10 13:31:20
|-
| [http://maemo.org/profile/view/zac.html zac]
| karl Arsch
| 2008-04-28 14:41:16
|-
| [http://maemo.org/profile/view/zacharye.html zacharye]
| Zach Epstein
| 2007-12-11 16:25:54
|-
| [http://maemo.org/profile/view/zachmann.html zachmann]
| Mark Zachmann
| 2008-01-27 18:31:29
|-
| [http://maemo.org/profile/view/zaf.html zaf]
| Tim Fournet
| 2007-11-16 17:47:25
|-
| [http://maemo.org/profile/view/zaferna.html zaferna]
| Zaferna Berg
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/zaforic.html zaforic]
| Richard Frye
| 2007-12-27 00:51:19
|-
| [http://maemo.org/profile/view/zagman.html zagman]
| zag man
| 2008-05-02 03:41:07
|-
| [http://maemo.org/profile/view/zagor.html zagor]
| Piotr Zagorowski
| 2007-12-16 17:40:55
|-
| [http://maemo.org/profile/view/zaheerm.html zaheerm]
| Zaheer Merali
| 2007-10-18 16:40:29
|-
| [http://maemo.org/profile/view/zaia.html zaia]
| Saija Alaharju
| 2007-11-16 17:47:53
|-
| [http://maemo.org/profile/view/zaidsa3sa3.html zaidsa3sa3]
| zaid sa3sa3
| 2007-07-07 01:40:09
|-
| [http://maemo.org/profile/view/zaling.html zaling]
| Benjamin Cavanaugh
| 2007-10-19 17:40:32
|-
| [http://maemo.org/profile/view/zanglang.html zanglang]
| Jerry Chong
| 2007-11-16 17:47:35
|-
| [http://maemo.org/profile/view/zanmato.html zanmato]
| Juho Valtonen
| 2007-12-11 16:26:33
|-
| [http://maemo.org/profile/view/zanote.html zanote]
| jafunk daneer
| 2007-05-18 19:14:28
|-
| [http://maemo.org/profile/view/zap.html zap]
| Andrew Zabolotny
| 2008-04-01 18:41:08
|-
| [http://maemo.org/profile/view/zap345.html zap345]
| Chris Tietema
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/zapcaster.html zapcaster]
| Joseph Savard
| 2007-05-18 19:10:34
|-
| [http://maemo.org/profile/view/zaper.html zaper]
| Szymon Zajac
| 2008-01-24 14:31:41
|-
| [http://maemo.org/profile/view/zaper13.html zaper13]
| zaper13 zaper13
| 2008-01-24 14:31:38
|-
| [http://maemo.org/profile/view/zaph.html zaph]
| Stefan W
| 2008-01-27 16:31:33
|-
| [http://maemo.org/profile/view/zaphod99a.html zaphod99a]
| martin locarek
| 2007-11-16 17:49:13
|-
| [http://maemo.org/profile/view/zapp.html zapp]
| Rolf Offermanns
| 2008-02-14 21:31:06
|-
| [http://maemo.org/profile/view/zar000000.html zar000000]
| Ralph Lazaro
| 2007-11-16 17:49:27
|-
| [http://maemo.org/profile/view/zarazs.html zarazs]
| Aron Szaraz
| 2007-10-18 22:40:12
|-
| [http://maemo.org/profile/view/zarazum.html zarazum]
| Pavel Gertman
| 2008-01-14 11:41:03
|-
| [http://maemo.org/profile/view/zarina.html zarina]
| Zarina MM
| 2007-12-11 16:25:33
|-
| [http://maemo.org/profile/view/zbart124.html zbart124]
| Andy knack
| 2007-05-18 19:12:54
|-
| [http://maemo.org/profile/view/zbigniewkozak.html zbigniewkozak]
| Zbigniew kozak
| 2007-10-19 07:40:30
|-
| [http://maemo.org/profile/view/zbqmz.html zbqmz]
| nicholas wang
| 2007-05-30 16:40:42
|-
| [http://maemo.org/profile/view/zbyszekh.html zbyszekh]
| Zbigniew Hladij
| 2007-11-15 07:56:24
|-
| [http://maemo.org/profile/view/zchydem.html zchydem]
| Marko Mattila
| 2007-11-16 17:49:18
|-
| [http://maemo.org/profile/view/zcj_1122.html zcj_1122]
| Millek Zhang
| 2007-11-16 17:47:30
|-
| [http://maemo.org/profile/view/zclauden.html zclauden]
| Claude Nucci
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/zcorpio.html zcorpio]
| Maca Ney
| 2008-02-12 14:33:15
|-
| [http://maemo.org/profile/view/zdra.html zdra]
| Xavier Claessens
| 2007-10-19 15:40:31
|-
| [http://maemo.org/profile/view/zebianco.html zebianco]
| JOSE BIANCO
| 2008-02-10 06:31:10
|-
| [http://maemo.org/profile/view/zecagou.html zecagou]
| François Chenais
| 2007-10-20 08:40:32
|-
| [http://maemo.org/profile/view/zeeclorate.html zeeclorate]
| David Guest
| 2007-11-28 15:43:43
|-
| [http://maemo.org/profile/view/zeekaos.html zeekaos]
| Zee Kaos
| 2007-12-11 16:25:25
|-
| [http://maemo.org/profile/view/zeenix.html zeenix]
| Zeeshan Ali
| 2007-06-29 08:40:08
|-
| [http://maemo.org/profile/view/zeez.html zeez]
| Joe Kandaba
| 2007-12-20 15:51:44
|-
| [http://maemo.org/profile/view/zegenvs.html zegenvs]
| Fumikazu FUJIWARA
| 2008-02-12 03:31:42
|-
| [http://maemo.org/profile/view/zeitlin.html zeitlin]
| Vadim Zeitlin
| 2007-11-15 07:55:03
|-
| [http://maemo.org/profile/view/zelea2.html zelea2]
| Missouga Dongi
| 2007-05-18 19:10:23
|-
| [http://maemo.org/profile/view/zelen.html zelen]
| Kimmo Toro
| 2007-05-18 19:13:35
|-
| [http://maemo.org/profile/view/zelle.html zelle]
| Markus Iser
| 2008-02-25 14:31:21
|-
| [http://maemo.org/profile/view/zelmorex.html zelmorex]
| Daryl Low
| 2008-01-14 12:41:21
|-
| [http://maemo.org/profile/view/zelzaaal.html zelzaaal]
| mohammed almansoori
| 2007-11-16 17:46:44
|-
| [http://maemo.org/profile/view/zenbrother.html zenbrother]
| Jason Willis
| 2007-10-18 15:40:43
|-
| [http://maemo.org/profile/view/zenden.html zenden]
| Santeri Itälinna
| 2007-05-18 19:11:33
|-
| [http://maemo.org/profile/view/zennon.html zennon]
| carlos ferreira
| 2007-11-16 17:49:24
|-
| [http://maemo.org/profile/view/zeno.html zeno]
| goh wei lee
| 2007-11-16 17:47:38
|-
| [http://maemo.org/profile/view/zenoteo.html zenoteo]
| Zeno Tomiolo
| 2007-10-22 14:40:33
|-
| [http://maemo.org/profile/view/zenyk.html zenyk]
| Zenyk Matchyshyn
| 2007-10-18 20:40:27
|-
| [http://maemo.org/profile/view/zephr.html zephr]
| Richard Knowles
| 2006-12-13 11:30:09
|-
| [http://maemo.org/profile/view/zeppo.html zeppo]
| Seppo Korpelainen
| 2007-05-18 19:14:34
|-
| [http://maemo.org/profile/view/zeptar.html zeptar]
| Troy Reed
| 2007-10-21 18:40:32
|-
| [http://maemo.org/profile/view/zerionseven.html zerionseven]
| Tero Hietanen
| 2007-05-18 19:12:55
|-
| [http://maemo.org/profile/view/zeroben.html zeroben]
| Ben Zero
| 2007-11-16 17:48:03
|-
| [http://maemo.org/profile/view/zerobytez.html zerobytez]
| Arnold Cabrera
| 2008-03-14 04:31:06
|-
| [http://maemo.org/profile/view/zerodogg.html zerodogg]
| Eskild Hustvedt
| 2007-10-19 14:40:35
|-
| [http://maemo.org/profile/view/zerojay.html zerojay]
| Jason Carter
| 2007-10-18 13:40:28
|-
| [http://maemo.org/profile/view/zestuart.html zestuart]
| Ze Stuart
| 2007-10-18 14:40:29
|-
| [http://maemo.org/profile/view/zetx.html zetx]
| Caleb L
| 2007-10-19 04:40:30
|-
| [http://maemo.org/profile/view/zevv.html zevv]
| Ico Doornekamp
| 2007-10-18 15:40:44
|-
| [http://maemo.org/profile/view/zflsy.html zflsy]
| feng zhang
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/zhaan.html zhaan]
| C H
| 2007-12-12 00:40:48
|-
| [http://maemo.org/profile/view/zhall21.html zhall21]
| Ezekiel Hall
| 2007-10-21 09:40:33
|-
| [http://maemo.org/profile/view/zhangchi.html zhangchi]
| Zhang Chi
| 2008-01-28 03:31:17
|-
| [http://maemo.org/profile/view/zhanghao82.html zhanghao82]
| hao zhang
| 2007-12-29 22:41:00
|-
| [http://maemo.org/profile/view/zhangqh.html zhangqh]
| qinghua zhang
| 2007-10-18 04:40:27
|-
| [http://maemo.org/profile/view/zhangva.html zhangva]
| Eric Zhang
| 2007-10-25 23:40:33
|-
| [http://maemo.org/profile/view/zhangyanpc.html zhangyanpc]
| zhang yan
| 2007-06-29 08:40:09
|-
| [http://maemo.org/profile/view/zhanxw.html zhanxw]
| Xiaowei Zhan
| 2007-12-16 03:40:55
|-
| [http://maemo.org/profile/view/zhaoqi.html zhaoqi]
| Qi Zhao
| 2008-01-25 16:43:05
|-
| [http://maemo.org/profile/view/zheka_m.html zheka_m]
| Evgeniy Z
| 2008-01-03 23:41:03
|-
| [http://maemo.org/profile/view/zhiz0id.html zhiz0id]
| Yura Secret
| 2007-11-16 17:47:16
|-
| [http://maemo.org/profile/view/zhlgx.html zhlgx]
| zhlgx zhlgx
| 2008-03-14 11:31:09
|-
| [http://maemo.org/profile/view/zhouyong.html zhouyong]
| yong zhou
| 2007-12-12 01:41:29
|-
| [http://maemo.org/profile/view/zhr_ky.html zhr_ky]
| huirong zhang
| 2008-06-03 02:41:14
|-
| [http://maemo.org/profile/view/zhuangel570.html zhuangel570]
| hyrix angel
| 2008-04-21 05:41:06
|-
| [http://maemo.org/profile/view/zhuangzi.html zhuangzi]
| Zi Zhuang
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/zhukov.html zhukov]
| Gennadiy Zhukov
| 2008-01-30 13:31:05
|-
| [http://maemo.org/profile/view/zhulei5.html zhulei5]
| zhu lei
| 2007-11-28 15:43:16
|-
| [http://maemo.org/profile/view/zhussain.html zhussain]
| zakir hussain
| 2007-11-16 17:47:21
|-
| [http://maemo.org/profile/view/zial.html zial]
| Patrick Perron
| 2008-02-01 02:31:04
|-
| [http://maemo.org/profile/view/zic.html zic]
| Jonathan Marsaud
| 2007-12-26 15:01:09
|-
| [http://maemo.org/profile/view/zid-35.html zid-35]
| sergei andrei
| 2008-01-11 19:41:26
|-
| [http://maemo.org/profile/view/zidagar.html zidagar]
| Parrella Antonio
| 2007-10-22 14:40:13
|-
| [http://maemo.org/profile/view/zidem.html zidem]
| francesco zippa
| 2007-05-18 19:11:41
|-
| [http://maemo.org/profile/view/ziegen.html ziegen]
| Gerolf Ziegenhain
| 2007-10-18 20:40:33
|-
| [http://maemo.org/profile/view/zielaq.html zielaq]
| Łukasz Zieliński
| 2007-10-18 19:40:42
|-
| [http://maemo.org/profile/view/ziemey.html ziemey]
| kaitlin zieme
| 2007-12-17 20:41:01
|-
| [http://maemo.org/profile/view/zigbeebob.html zigbeebob]
| Robert Hollands
| 2008-03-09 19:31:02
|-
| [http://maemo.org/profile/view/ziggetty.html ziggetty]
| robert vos
| 2007-05-18 19:11:36
|-
| [http://maemo.org/profile/view/ziggygt.html ziggygt]
| robert senzig
| 2008-01-18 05:30:59
|-
| [http://maemo.org/profile/view/ziggys.html ziggys]
| Carew Jenkins
| 2007-11-19 09:01:15
|-
| [http://maemo.org/profile/view/ziked.html ziked]
| Mirza Rahman
| 2007-11-15 07:56:23
|-
| [http://maemo.org/profile/view/zilibo.html zilibo]
| luca obili
| 2007-11-16 17:46:48
|-
| [http://maemo.org/profile/view/zimage.html zimage]
| Theodor Milkov
| 2007-05-18 19:13:32
|-
| [http://maemo.org/profile/view/zimmer.html zimmer]
| Scott Zimmerman
| 2008-02-17 17:31:01
|-
| [http://maemo.org/profile/view/zimmerle.html zimmerle]
| Felipe Zimmerle
| 2006-12-13 11:30:13
|-
| [http://maemo.org/profile/view/zingaralho.html zingaralho]
| Nuno Silva
| 2007-11-16 17:49:45
|-
| [http://maemo.org/profile/view/zinovi.html zinovi]
| Zinovi Krougly
| 2007-10-29 00:40:35
|-
| [http://maemo.org/profile/view/ziobill.html ziobill]
| zio bill
| 2008-01-28 01:32:51
|-
| [http://maemo.org/profile/view/zion.html zion]
| franc comino
| 2006-12-13 11:30:07
|-
| [http://maemo.org/profile/view/zio_cesco.html zio_cesco]
| Francesco Marangoni
| 2007-12-15 15:41:01
|-
| [http://maemo.org/profile/view/zipster.html zipster]
| Bob Thorton
| 2007-10-18 14:40:10
|-
| [http://maemo.org/profile/view/zizz.html zizz]
| colin shannon
| 2007-05-18 19:12:39
|-
| [http://maemo.org/profile/view/zjava.html zjava]
| Newton King
| 2007-11-16 17:46:50
|-
| [http://maemo.org/profile/view/zjb153.html zjb153]
| zach brode
| 2007-10-21 22:40:34
|-
| [http://maemo.org/profile/view/zjujoe.html zjujoe]
| Lixin Song
| 2008-05-26 23:41:16
|-
| [http://maemo.org/profile/view/zkimhi.html zkimhi]
| ziv kimhi
| 2007-11-16 17:46:58
|-
| [http://maemo.org/profile/view/zl2ctm.html zl2ctm]
| Charlie Morris
| 2007-11-16 17:47:51
|-
| [http://maemo.org/profile/view/zlenka.html zlenka]
| lena kretova
| 2007-11-16 17:49:05
|-
| [http://maemo.org/profile/view/zleon.html zleon]
| z leon
| 2008-02-24 10:31:47
|-
| [http://maemo.org/profile/view/zloi.html zloi]
| Pavel Chistov
| 2007-10-22 13:40:33
|-
| [http://maemo.org/profile/view/zlu.html zlu]
| zhao lu
| 2008-01-24 05:31:24
|-
| [http://maemo.org/profile/view/zlweb.html zlweb]
| Zhao Liang
| 2007-10-23 08:40:36
|-
| [http://maemo.org/profile/view/zmini_me.html zmini_me]
| James van de Ven
| 2007-11-16 17:50:24
|-
| [http://maemo.org/profile/view/zmud.html zmud]
| richard liu
| 2007-10-14 18:40:27
|-
| [http://maemo.org/profile/view/zniber21.html zniber21]
| zniber mohamed rizki
| 2008-02-11 01:36:20
|-
| [http://maemo.org/profile/view/zodar025.html zodar025]
| Michael Amirault
| 2007-12-11 16:26:14
|-
| [http://maemo.org/profile/view/zodman.html zodman]
| zodman vr
| 2008-02-04 04:33:20
|-
| [http://maemo.org/profile/view/zoglesby.html zoglesby]
| Zach Oglesby
| 2007-10-29 20:40:35
|-
| [http://maemo.org/profile/view/zok.html zok]
| Zoran Nikolic
| 2007-05-18 19:12:48
|-
| [http://maemo.org/profile/view/zoke.html zoke]
| Markus Brischke
| 2006-12-13 11:30:08
|-
| [http://maemo.org/profile/view/zole2112.html zole2112]
| Andrew Zillges
| 2007-11-16 17:46:42
|-
| [http://maemo.org/profile/view/zolrak.html zolrak]
| Carlos Mario Cardona Rave
| 2008-02-07 12:31:23
|-
| [http://maemo.org/profile/view/zombiejesus.html zombiejesus]
| Brad Leclerc
| 2008-04-28 17:41:08
|-
| [http://maemo.org/profile/view/zombiestwice.html zombiestwice]
| sharon roth
| 2008-04-28 21:41:06
|-
| [http://maemo.org/profile/view/zonefree2000.html zonefree2000]
| zone free
| 2007-11-16 17:46:37
|-
| [http://maemo.org/profile/view/zoochick415.html zoochick415]
| angela washington
| 2007-11-16 17:46:32
|-
| [http://maemo.org/profile/view/zookcool.html zookcool]
| zook cool
| 2008-03-24 07:31:02
|-
| [http://maemo.org/profile/view/zoovision.html zoovision]
| Sean Berner
| 2008-03-30 03:31:06
|-
| [http://maemo.org/profile/view/zoran.html zoran]
| Zoran Kolic
| 2007-05-18 19:11:15
|-
| [http://maemo.org/profile/view/zorankovacevic.html zorankovacevic]
| Zoran Kovacevic
| 2007-05-18 19:12:12
|-
| [http://maemo.org/profile/view/zorro.html zorro]
| Andrea Brugiolo
| 2008-05-11 23:41:07
|-
| [http://maemo.org/profile/view/zouxv.html zouxv]
| zou xv
| 2008-03-14 01:31:16
|-
| [http://maemo.org/profile/view/zristian.html zristian]
| Christian Carmine
| 2008-03-25 09:31:01
|-
| [http://maemo.org/profile/view/zsf_njust.html zsf_njust]
| zhou shengfeng
| 2008-04-07 12:41:08
|-
| [http://maemo.org/profile/view/zsolt.html zsolt]
| Zsolt Hajdu
| 2007-11-16 18:41:11
|-
| [http://maemo.org/profile/view/ztbsauer.html ztbsauer]
| Adrian Cendrowski
| 2007-11-28 15:43:26
|-
| [http://maemo.org/profile/view/ztlcox.html ztlcox]
| Tony Cox
| 2007-11-16 17:47:55
|-
| [http://maemo.org/profile/view/zu03776.html zu03776]
| Scott Kelley
| 2006-12-13 11:30:11
|-
| [http://maemo.org/profile/view/zuazua.html zuazua]
| Reuben Zuazua
| 2008-04-23 17:41:09
|-
| [http://maemo.org/profile/view/zubozrout.html zubozrout]
| Martin Kozub
| 2008-04-27 14:41:06
|-
| [http://maemo.org/profile/view/zuh.html zuh]
| Kalle Vahlman
| 2007-05-18 19:10:58
|-
| [http://maemo.org/profile/view/zulla.html zulla]
| Hanno Zulla
| 2007-05-18 19:11:19
|-
| [http://maemo.org/profile/view/zumalave.html zumalave]
| José Antonio Zumalave Rivas
| 2007-11-01 23:40:35
|-
| [http://maemo.org/profile/view/zumbi.html zumbi]
| Eva Rio Novoa
| 2007-12-31 10:41:02
|-
| [http://maemo.org/profile/view/zumbruk.html zumbruk]
| Arturo Calzino
| 2007-11-16 17:47:14
|-
| [http://maemo.org/profile/view/zunguri.html zunguri]
| Rob Scott
| 2007-04-05 15:25:39
|-
| [http://maemo.org/profile/view/zurlocker.html zurlocker]
| Zack Urlocker
| 2007-10-22 21:40:34
|-
| [http://maemo.org/profile/view/zuti.html zuti]
| Timo Jutila
| 2007-05-18 19:11:43
|-
| [http://maemo.org/profile/view/zuza-32.html zuza-32]
| gosia c
| 2007-11-16 17:47:45
|-
| [http://maemo.org/profile/view/zvin.html zvin]
| Serge Vin
| 2007-06-19 07:10:37
|-
| [http://maemo.org/profile/view/zweizeit.html zweizeit]
| Zwei Zeit
| 2007-06-27 22:40:06
|-
| [http://maemo.org/profile/view/zwobot4maemo.html zwobot4maemo]
| privat privat
| 2008-02-16 12:30:59
|-
| [http://maemo.org/profile/view/zword.html zword]
| Zword Zouhorde
| 2007-06-19 07:10:26
|-
| [http://maemo.org/profile/view/zxamp.html zxamp]
| z x
| 2008-04-12 19:41:09
|-
| [http://maemo.org/profile/view/zygomatic.html zygomatic]
| lacoin stephane
| 2007-05-18 19:11:05
|-
| [http://maemo.org/profile/view/zyufo.html zyufo]
| yang zhang
| 2007-11-16 17:46:52
|-
| [http://maemo.org/profile/view/zyzo-777.html zyzo-777]
| abdulaziz al-kobeir
| 2008-03-28 11:31:05
|-
| [http://maemo.org/profile/view/zzfi.html zzfi]
| Evgeny B.
| 2007-11-15 07:56:24
|-
| [http://maemo.org/profile/view/zzhet.html zzhet]
| Harold Townsend
| 2007-10-25 04:40:37
|}

[[Category:Community Council]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Community Council/Elligible candidates</title>
    <id>1100</id>
    <revision>
      <id>6579</id>
      <timestamp>2008-08-13T19:54:25Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Task:Community Council/Elligible candidates]] moved to [[Task:Community Council/Eligible candidates]]: Typo in page title</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Community Council/Eligible candidates]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Community firmware image distribution</title>
    <id>1384</id>
    <revision>
      <id>34211</id>
      <timestamp>2010-05-11T08:13:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify, categorize</comment>
      <text xml:space="preserve">As part of the community efforts to backport Fremantle components ([[Mer]]), there have been discussions on how the community can provide firmware images containing proprietary contents (nokia software, hardware firmware blobs, 3rd party?, etc.) and distribute these. 

A proposal to deal with this problem could be to, allow/license/etc maemo.org, directed by the Maemo Community Council, elected by the Maemo Community, to do the following:

*On their servers construct, based on build scripts provided by community developers, firmware images (FIASCO images, jffs images, etc.) containing the proprietary contents.

*The resulting images will then be provided by the maemo.org servers.

The resulting firmware images would only be downloadable through providing a valid MAC address for a Nokia Internet Tablet product and agreeing to a license covering the user's use of the firmware image, just like tablets-dev.nokia.com.

The effect of this could be, through the maemo.org process, that the community could be able to remix the firmware images, backport Fremantle components without having to directly deal with licensing and could make it possible to provide alternative distributions for the tablets without them sacrificing hardware interfaces, etc.

== First request: Distribution of initfs jffs2 (or other formats) image from maemo.org ==

Of the closed source content in the Diablo initfs, we would like to be able to distribute (from maemo.org) to [[Nokia N800|N800]], [[Nokia N810|N810]] and N810WE users an initfs image containing the following bits (paths relative to initfs) under a scheme similar to above:

Wi-Fi and connectivity related:

* /lib/modules/2.6.21-omap1/umac.ko (Reason: Counterpart to cx3110x driver)
* /usr/lib/hotplug/firmware/3826.arm (Reason: Firmware for STLC45xx)
* /usr/sbin/wlan-cal (Reason: providing calibration data to cx3110x)
* /usr/bin/bt-cal (Reason: calibration of bluetooth chip)
* From outside initfs, stlc45xx-cal-0.1.2 , found at http://tablets-dev.nokia.com/d2.php (Reason: binary only initfs utility for providing calibration data to the new open source driver stlc45xx)

Battery handling:

* /usr/bin/bme_RX-34 (for proper handling of battery and charging)
* /usr/bin/bme_RX-44 (as above)

RTC and alarm:

* /usr/bin/retutime (for alarm setting, time handling, etc)

Device state management:

* Any binaries and libraries that are needed to make DSME function and run (for basic functionality, backlight, wlan-cal, etc.)

Various:

* /usr/bin/cal-tool (for access to R&amp;D flags, etc for purposes of system development)

We would also like clarification of the licensing of /linuxrc.

== See also ==

* [http://lists.maemo.org/pipermail/maemo-community/2008-December/002813.html Proposal for community firmware images] on maemo-community

[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Components and packages</title>
    <id>571</id>
    <revision>
      <id>6333</id>
      <timestamp>2008-08-06T06:23:58Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>/* Table of packages */</comment>
      <text xml:space="preserve">{{Template:100Days agenda}}
{{task|completed}}

''This is a subtask of [[Task:Defining maemo]] coordinated by [http://maemo.org/profile/view/bijjal/ Soumya].''

We need to come up with the list of packages that define Maemo 4.1, according to the new [[Task:Maemo brand|definition of Maemo]]: 

* '''Maemo platform''' - The software stack from the Linux Kernel to the SDK. It's mostly open source code originated in upstream projects plus some open components developed by Nokia. Some exceptions of Nokia and third party proprietary software are included in order to provide a fully functional stack.

Integrating these components one should be able to generate a functional image and a complete SDK.

The list packages should be presented in a sensible way e.g. organized around the components described in the new [http://maemo.org/intro Intro] and the [http://maemo.org/maemo_release_documentation/maemo4.1.x/node6.html Maemo software architecture] documentation.

==Table of packages==
=== Third draft ===
A third draft is available '''[https://garage.maemo.org/docman/view.php/106/354/maemopackages-20080725.ods HERE]'''. Now all packages have LOC counts.

=== Second draft ===
A second draft is available '''[https://garage.maemo.org/docman/view.php/106/353/maemopackages-20080723.ods HERE]'''. It contains the same data as the first draft plus the approximate lines of code of the packages. This data wasn't initially required in this task yet now it can be used now to compare the amount of code open vs closed.

Some packages are still missing LOC counts:
* netbase
* libxmu
* libxpm
* libxres
* linux-kernel-headers
* gcc
* initfs-diablo
* kernel-diablo

=== First draft ===
A first draft is available '''[https://garage.maemo.org/docman/view.php/106/352/maemopackages-20080716.ods HERE]'''. It contains:

* Proposed list of packages that make Maemo. They come from the Maemo 4.1 SDK profile plus some additional packages needed to complete a bootable image. Compared to the OS2008 image, most applications and Nokia design elements are missing.
* Organization of packages in components. 
* Basic status of the license of each package:
** OSS Upstream: packages that essentially have been integrated just as they come from their upstream projects.
** OSS Modified: packages originated upstream that have been adapted by Nokia to run on Maemo.
** OSS Nokia: open source packages developed by Nokia.
** Nokia closed: closed source packages developed by Nokia.
** 3rd party: closed source packages developed by third parties.
* A graph visualizing the amount and type of packages per each component.</text>
    </revision>
  </page>
  <page>
    <title>Task:Consolidation of Extras</title>
    <id>128</id>
    <revision>
      <id>31260</id>
      <timestamp>2010-03-18T08:13:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Consolidation of wiki content */ remove [[Extras/Policy]] link</comment>
      <text xml:space="preserve">{{Template:100Days agenda}}
{{task|ongoing}}
The Extras repository needs to become the single reference for developers willing to reach end users at large.

== Consolidation of wiki content ==

[[Extras]] information is scattered over several pages, and needs to be consolidated. A list of pages that should be merged is:

* &lt;s&gt;[[Maemo_packaging_quick_start_guide]]&lt;/s&gt;  merged with [[Packaging]], redirected
* [[Packaging]]
* &lt;s&gt;[[Maemo_packaging]]&lt;/s&gt; merged with [[Packaging]], redirected
* [[Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing]] detailed, all-encompassing documentation - linked from [[Packaging]]
* [[Extras]]
** &lt;s&gt;''Extras/Policy'' no content, should link to defunct ’Maemo packaging policy’?&lt;/s&gt; deleted, content at [[Packaging#Packaging policy]]
** [[Extras/3rd_Party_Package_Policy]]
* [[Extras-testing]]
* [[Uploading_to_Extras-devel]]
* &lt;s&gt;[[Uploading_to_Extras]]&lt;/s&gt; orphaned, should be deleted
* &lt;s&gt;[[Developer_FAQ#Extras]]&lt;/s&gt; linked to developer guide and Packaging
* [[User:Jebba/Package_Building_HOWTO]]

== Extras Process ==
{{main|Extras repository process definition}}
* Address the issues with current Extras acceptance and put together a plan for streamlining the acceptance system for Extras(-devel), (not necessarily easier or less stringent, but more straightforward and clear).
** Clearly document the steps required to gain entry. Some sort of &quot;Maemo Software Distribution Guide&quot; (I know we already have something like this up, but make it prominent and bring it up to speed on everything) that the community (and maemo.org) can point developers to is important.
* Lay out the groundwork for a peer-review system for Extras acceptance (or devel to Extras promotion) to help ensure good quality assurance on its packages.

== Social Engineering ==
* Put the pressure on developers:
** Encourage developers not using a repository to package their applications and push them to Extras(-devel), and get developers with 3rd-party repositories to close them down and push their stuff into Extras(-devel).
** Encourage developers to follow proper packaging guidelines (based on the draft [https://maemo.org/forrest-images/pdf/maemo-policy.pdf here]).
** Encourage developers launching applications on Downloads to include as much information about the application as possible (screenshots, good descriptions, good changelogs).

At the end of the 100 Days direct uploads to extras should be disabled and use the promotion interface instead. --[[User:qgil|qgil]] 07:34, 10 June 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Task:Consolidation of extras</title>
    <id>636</id>
    <revision>
      <id>3429</id>
      <timestamp>2008-06-30T12:06:48Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Task:Consolidation of extras]] moved to [[Task:Consolidation of Extras]]: Capitalizing Extras</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Consolidation of Extras]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Content Cleanup</title>
    <id>129</id>
    <revision>
      <id>7599</id>
      <timestamp>2008-10-01T15:36:41Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Clean up page, reorganise sections, remove completed tasks</comment>
      <text xml:space="preserve">{{100Days agenda}}
{{task|accepted}}

Connected to [[Task:Improving maemo.org]]

Break the site up according to various use-cases. For each part of the site, identify the most important content and put it up front.

Outdated official content should not appear in the primary navigation of the site, but should be accessible in an archive - esp. 3.x downloads, API documentation, guides.

The wiki can be one of two things - a sandbox for brainstorming or a repository for documentation. It's hard for it to be both.

=== Site organisation ===

* Use-case by use-case, figure out what the most important information on the site is, and make it easy to find.
** Concentrate on the site structure more than the content.
* If there is still useful and mostly relevant information which needs updating to the latest release, update. 
* Archive the outdated information away from the maemo 4.x stuff.
* Mark the outdated stuff clearly. Date content in general with the last time it was reviewed.
* Improve the search (google?). Make search by section possible (developer documentation, user &amp; community sections) - ideally allow inclusion of Bugzilla, the wiki and itT in search results.

=== Get focused ===
* Add porting FAQ wiki page detailing common problems developers will run into (i.e. application is killed 3 seconds after launch) and how to deal with them. Provide examples of typical GTK/Motif/etc. application changes needed to properly Hildonize the application. List ways to deal with porting of toolkit-specific functionality whether it be internationalization or mouse/keyboard input.
: Sounds like the things in the FAQ need to be in the porting guide --15:36, 1 October 2008 (UTC)
* Stress the fact that the Internet Tablet is not a PC and apps should be created/ported with the tablet form in mind. Don't just do a direct port of an existing app. Aim for quality and Internet Tablet usability. 
* Focused discussion/guide on User Interface so apps will have a consistent look as well as provide a similar way to interface with the user

=== Build environment ===
* Provide an example of simple build environment *not* relying on AutoConf and its friends. A single includable makefile should suffice, when used with SB2.
* Clearly *say* in the SB readme that it is not possible to debug every application on the desktop, show how to test applications on the target device using SSH/SCP or some other means.

=== Longer-term goals ===

These will not be part of the initial website revision, because they require more substantial changes to infrastructure

* Make it possible for logged-in developers to annotate any place in the documentation. Link to annotations from documentation.
* Clearly define what changes is made by default on gtk : like GtkTreeView with hidden header columns by default, or image-button off ...
:''The idea is to have the sources of the official documentation here in this wiki. Users could add comments in the discussion pages, perhaps some users could get edit rights too. To be decided. The Nokia teams would updated their part of the documentation here and then all would be revised and conveniently package in PDF when a new stable release comes. So yes, we can put this in the 100 Days and then let's see how far we go in this timeframe.--[[User:qgil|qgil]] 07:34, 2 June 2008 (UTC)''
* Define types of applications that will be useful on the Internet Tablet
* Maybe provide a few simple stylesheets and JavaScript libs for creating quick iPhone-like web apps running in MicroB. This should be very light, very easy to use, and targeted to casual users.
:''Good ideas, they can be pushed by Nokia and the community. The point about Javascript libs is imho more of a 2010 Agenda thing, though. I don't mean we wouldn't have anything before 2010, but 100 Days is just too tight. Besides, the work to be done goes beyond maemo.org.--[[User:qgil|qgil]] 07:34, 2 June 2008 (UTC)''

=== Development ===

See [[Task:Improving maemo.org/Development]]

''Related pages'':
* [[Objective:Co-production_of_official_%26_community_documentation]] + [https://bugs.maemo.org/show_bug.cgi?id=101 Use the wiki for developer documentation]</text>
    </revision>
  </page>
  <page>
    <title>Task:Define voting procedure for Community Council elections</title>
    <id>1327</id>
    <revision>
      <id>21218</id>
      <timestamp>2009-10-29T13:06:38Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <text xml:space="preserve">{{task|completed}}


Due to the noise generated by the voting procedure from the first election, the procedure needs to be reevaluated and a better system needs to be put in place for the next election.

== Proposal: RRV ==
[http://scorevoting.net/RRV.html Background from scorevoting.net]

I've added a description of [http://en.wikipedia.org/wiki/Range_voting#Reweighted_range_voting RRV] to Wikipedia. Since TeX isn't enabled here, it's easiest to read it there. (Provided, of course, it remains intact...)

The proposal is edited for html legibility and simplicity below, but should be a complete specification.

=== Variables ===
*''l'': number of voters
*''m'': number of candidates
*''n'': number of seats
*''i'': index of voters (1 &amp;le; ''i'' &amp;le; ''l'')
*''j'': index of candidates (1 &amp;le; ''j'' &amp;le; ''m'')
*''k'': index of seats (and rounds) (1 &amp;le; ''k'' &amp;le; ''n'')
=== Parameters ===
An unbalanced normalized range is to be used, ranging from 0 to 1.

A ballot from voter ''i'' consists of ''m'' ratings ''a&lt;sub&gt;ij&lt;/sub&gt;'' for the ''m'' candidates, such that 0 &amp;le; ''a&lt;sub&gt;ij&lt;/sub&gt;'' &amp;le; 1.

=== Procedure ===
After all ballots are collected, ''n'' rounds are held to choose the winners ''w&lt;sub&gt;k&lt;/sub&gt;'', with one winner chosen per round. In the first round, the weighted ratings for each voter are initialized as ''b&lt;sub&gt;ij1&lt;/sub&gt; = a&lt;sub&gt;ij&lt;/sub&gt;''. The weighted scores in each round are summed:

''B&lt;sub&gt;jk&lt;/sub&gt;'' = &amp;sum;&lt;sub&gt;''i''&amp;isin;(1&amp;hellip;''l'')&lt;/sub&gt;'' b&lt;sub&gt;ijk&lt;/sub&gt;''

The highest-scoring candidate not yet elected wins; this is not simple to express formally:

''w&lt;sub&gt;k&lt;/sub&gt;'' = max ( ''B&lt;sub&gt;jk&lt;/sub&gt;'' s.t. ''j'' &amp;notin; ''w''&lt;sub&gt;1&amp;hellip;(''k''-1)&lt;/sub&gt;)

The weighted scores for each succeeding round are calculated by de-emphasizing ballots according to the portion in which they've already won:

''b''&lt;sub&gt;''ij''(''k''+1)&lt;/sub&gt;=''a&lt;sub&gt;ij&lt;/sub&gt;'' / ( 1 + &amp;sum;&lt;sub&gt;''p''&amp;isin;(1&amp;hellip;''k'')&lt;/sub&gt; ''a&lt;sub&gt;iw&lt;sub&gt;p&lt;/sub&gt;&lt;/sub&gt;'' )

== Proposal: Single Transferable Vote ==

Notation:
* N seats available
* C candidates running
* T total valid votes cast in the election
* Q (the quota) = floor(T/(N+1) + 1)
 
[http://en.wikipedia.org/wiki/Single_transferable_vote Single transferable vote] is the voting system used in Ireland's general elections, with multi-seat constituencies resembling a Maemo Community Council vote - there are N places and C candidates, with C &gt; N. There is an added advantage of having [http://stv.sourceforge.net/ software available to count STV].

The voting system is simple from the voter's point of view - you vote in order of preference for one or more of the candidates. If you only have a first preference, you vote only 1 for your choice. If you have a second preference, you give him number 2, and you continue like this down the ballot, as far as you care to go.

Counting is also quite simple. We first count all the number 1 votes, and rank the candidates in order. If any candidates have more than T/(N+1) votes, they are deemed elected. Their surplus votes (the votes over the quota Q) are redistributed according to the weighings of their second preferences.

If no-one has been deemed elected, or all surpluses have been distributed, the candidate with the least first preferences is eliminated, and his votes are redistributed according to the second preference.

This process is repeated until N candidates are deemed elected, or until there are only 2 unelected candidates remaining. In this situation, the candidate with the highest number of votes is deemed elected without having reached the quota.

A simple example will illustrate:

4 candidates (A, B, C), 2 seats, 11 votes, the quota is thus 4 votes.

# A, B
# A, C
# A
# A, B, C
# B, C
# B, A
# B, C
# C
# C, A
# C
# D, C

1st count:
* A: 4
* B: 3
* C: 3
* D: 1

A is deemed elected, and D is eliminated.

D's 2nd preferences give 1 vote to C.

2nd count:
* A: 4
* B: 3
* C: 4

A and C are deemed elected.

== Discussions ==

* [http://www.internettablettalk.com/forums/showthread.php?p=239338 Defining the Maemo Community Council voting procedure - Internet Tablet Talk]

[[Category:Community]]
[[Category:maemo.org]]
[[Category:Community Council]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Defining maemo</title>
    <id>125</id>
    <revision>
      <id>6927</id>
      <timestamp>2008-09-02T19:44:34Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Tasks */</comment>
      <text xml:space="preserve">{{100Days agenda}}

== Objectives ==
* Define maemo, maemo.org and Internet Tablet OS / OS2008.
* Identify the blocks of the [http://maemo.org/maemo_release_documentation/maemo4.1.x/node6.html#SECTION00630000000000000000 maemo software architecture] and the projects behind. See [[Task:Components and packages]]
* Define the roles of Nokia, the maemo community, the open source upstream projects and other organizations related to the maemo platform i.e. companies and universities. See [[Companies in Maemo development]] and [[Task:Upstream projects]]
* Produce an initial Who is Who in maemo.org based on the user profiles, to be expanded in a decentralized way.
** Improve [http://maemo.org/profile/list the list of Maemo contributors] and expand [http://maemo.org/profile maemo.org profiles] to allow someone to identify key contributors and who they work for easily.
** Identify Maemo component primary contacts, [[Companies in Maemo development|companies involved in Maemo development]] and [[Task:Upstream projects|key upstream projects we contribute to and benefit from]]
* Produce a list of [[Task:Remarkable community projects|remarkable maemo projects]].

== Tasks ==
Help is welcome in all of them.

=== Completed ===
* Define the [[Task:Maemo brand|Maemo brand]].
* Bug &lt;del&gt;[https://bugs.maemo.org/show_bug.cgi?id=2343 maemo white paper architecture picture needs to be updated]&lt;/del&gt; (WONTFIX)
* Documenting [[companies in Maemo development|companies involved in maemo development]] - Dave
* [[Task:Remarkable community projects]] around Maemo - this list is [https://maemo.org/downloads/featured/OS2008/50/ the maemo.org featured applications] but we need a way to &quot;elect&quot; new projects to be remarkable.

=== Ongoing ===
From the [https://garage.maemo.org/plugins/wiki/index.php?June2008Sprint&amp;id=106&amp;type=g maemo.org June sprint]:
* Publish a &quot;[[People|Who's who in maemo]]&quot;, including Nokia engineers working with the community, contractors and volunteers. Encourage people to update their information to keep the document up to date - Dave
* User profile improvements defined and started + bug [https://bugs.maemo.org/show_bug.cgi?id=2202 Automatic data in user profiles] - Oskari
* [[Task:Components and packages]] that define Maemo - Soumya
* [[Task:Upstream projects]] Maemo relies upon - Dave</text>
    </revision>
  </page>
  <page>
    <title>Task:Document maemo.org processes</title>
    <id>3489</id>
    <revision>
      <id>40632</id>
      <timestamp>2010-12-09T11:59:35Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* docmaster (Dave) */</comment>
      <text xml:space="preserve">{{task|ongoing}}

This is a list of maemo.org processes, infrastructure and applications which require documentation, because only one or two people know how to do it.

The goal is to make sure that no-one on the team is indispensable, and that the &quot;bus factor&quot; on every component of maemo.org is greater than one - that is, that there is no component where only one person knows how it works and can fix it when it breaks. This is a list of documents we should have, categorised (roughly) by the person who knows the information to document.


== sysadmin (Ferenc) ==
* [http://maemo.org/infra What servers are in the maemo.org infrastructure?]
* [http://maemo.org/infra What services are running on maemo.org?]
* Who has access to the servers with admin privileges to the various services?

== webmaster (Niels) ==

* How have we configured our web server(s)? (Asked by Jeremiah)
* What do you do when the autobuilder goes down?  (Asked by Jeremiah, FAQ from community)
* What tools are there to diagnose a problem with package submission?  (FAQ: &quot;Is the builder working, or just slow?&quot;)
* How are packages promoted from extras-devel to extras-testing, and then to extras?  (Asked by Jeremiah, community FAQ)
* What is the process for non-free packages to get into extras? (Community FAQ, esp Mauku)
* How does the autobuilder work? (Asked by Jeremiah)

== debmaster (Jeremiah) ==

* [[Packaging | Maemo packaging guide]]
* How does one do maintenance on the package repositories?

== bugmaster (Andre) ==

* [[Bugs:Administration guide | Bugzilla administration guide]]
* [[Bugs:Adding Extra products | How to add a product from Extras to bugs.maemo.org]]
* [[Bugs:Triage guide | Bugzilla triage guide]]
* [[Bugs:Cloning | How to clone bugs from public to internal bugzilla]]
* [[Bugs:Stock answers | Stock answers to common situations that arise for bug triagers]]

== docmaster (Dave) ==
* [[Maemo.org team/Generating election results | Generating election results]] after an election
* [[Maemo.org team/Updating maemo.org sites | Updating maemo.org websites]]
* [[Documentation/Patching API docs | How can I update API documentation?]]
* Where is the MediaWiki install for wiki.maemo.org stored, and what changes have been made compared to a vanilla install? Is the modification history in source control somewhere? How does that get updated on deployment? See [[Maemo.org team/Updating maemo.org sites#wiki.maemo.org | Updating wiki.maemo.org]]
* Where does the information for the user profile page come from in the Midgard database?


[[Category:Community]]
[[Category:Maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Document the maemo.org Sprint procedure</title>
    <id>1326</id>
    <revision>
      <id>9133</id>
      <timestamp>2008-12-03T14:55:41Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve">{{task|completed}}


Complete the documentation of the maemo.org Sprint procedure and cleanup existing documentation so everybody has a clear definition of the process.

This task is being handled by [[User:generalantilles|GeneralAntilles]].

== Existing documentation ==

Existing pages that may need to be organized and cleaned up.

* [[maemo.org Sprints]]
* [[maemo.org proposals]]
* [[Pushing a maemo.org task]]
* [[Task:Sprint progress]]

== Sprints ==

* [[100Days/Sprint2]]
* [[100Days/Sprint3]]
* [[100Days/Sprint4]]
* [[100Days/Sprint5]]
* [[maemo.org Sprints/October 08]]
* [[maemo.org Sprints/November 08]]
* [[maemo.org Sprints/December 08]]

[[Category:Community]]
[[Category:maemo.org]]
[[Category:Sprints]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Documentation rules</title>
    <id>660</id>
    <revision>
      <id>34212</id>
      <timestamp>2010-05-11T08:18:42Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">Imho it would be nice to have a small set of rules for editing documentation pages. Is there already a wiki page for this? If not, there should be one.
E.g.: [[Documentation_rules]]

My first intension reading the first clean wiki article &quot;Root access&quot; was:
* For which device?
* For which OS?

In future artikles there will be the same questions. So in every documentation article of the wiki there should be some tags:
* Tested with: N810
* Tested with: 770
* [...]
* Tested with OS2006
* [...]
* Skills and requirements for doing the stuff written in this article

What do you think?

[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Download client for extras-applications</title>
    <id>3101</id>
    <revision>
      <id>23639</id>
      <timestamp>2009-12-01T08:03:03Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>/* Development */</comment>
      <text xml:space="preserve">== Idea ==

The client should be used in addition to the native application manager and provide easily more information for the inexperienced user. The client will:

* ease finding and sorting applications based on different criteria (ratings, number of downloads, categories, etc.)
* search for applications with a free-text search
* get basic information about the applications (like description, number of downloads, ratings, comments, screenshots, etc.)
* send feedback (like ratings, comments)
* download the installation file and pass it directly to the application manager, which handles the installation


For further information have a look at the [http://danielwilms.wordpress.com/2009/10/21/download-client-for-applications-in-extras/ initial blog-post].

== Server communication ==

The back-end implementation is ongoing work ATM. It is based on the [http://www.freedesktop.org/wiki/Specifications/open-collaboration-services open collaboration services API]. The implementation doesn't apply in all parts to the standard, but the work is ongoing and the goal is to change and improve it step by step. More information about this you find in the [[{{PAGENAME}}/REST-API | REST API]].



== User interface ==

The user interface is created by wazd. The current development you can follow on the [[{{PAGENAME}}/User_Interface | UI]] page.



== Development ==

The application is developed in Qt. There is a separation of UI- and back-end implementation. The goal of the next weeks is to separate them completely and to offer the back-end as a library, so that apart from the client it can be used e.g. in a widget or other implementations. More detailed information in the [[{{PAGENAME}}/Development | development]] section.






{{task}}</text>
    </revision>
  </page>
  <page>
    <title>Task:Download client for extras-applications/Development</title>
    <id>3113</id>
    <revision>
      <id>34213</id>
      <timestamp>2010-05-11T08:20:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">This part documentation explains how the code is structured and which parts are used as the client-side implementation of the [[Task:Download_client_for_extras-applications/REST-API | REST API]].



===STRUCTURE===

The [url git-repository] in [http://garage.maemo.org garage] contains the source code of the application. The source-folder contains to different directories:


* '''gui''': This directory contains the implementation of the user interface. ATM this part of the code is a bit messy because of a complete change of the UI. This is pretty much work in progress and needs a proper clean-up.

* '''maemo''': The back-end implementation of the REST API can be found here. The major API to request data from the server is located in MaemoApplicationHandler. This class takes care of the communication and parsing. Further several objects are defined here, like the MaemoApplication, it's subclass MaemoApplicationDetails and MaemoComment.





===API===



'''MaemoApplicationHandler'''

This file contains the API to request the data from the server.

* Request list of applications:

 /* requests a list of all available applications
  * parameter:
  *  OS -&gt; lists the applications for the specified operating system ('OS2007','OS2008','Maemo5')
  *  cat -&gt; id of the category
  *  page -&gt; number of the page
  *  pagesize -&gt; applications/request
  *  keyword  -&gt; search for applications regarding a specified keyword
  */
 void requestApplications (QString OS,
                           QString cat,
                           int page,
                           int pageSize,
                           QString keyword);

:The response is returned as a list of MaemoApplication objects, when the following signal is emitted:
 void ready (QList&lt;MaemoApplication *&gt;*);

* Request application details

 /* parameter:
  *  uid -&gt; identifier of an application
  */
 void requestApplicationData (QString uid);
            
:Signal, emitted when the data is received:
 void detailsReady(MaemoApplicationDetails*);

* Request images:

 //requests an image by a url
 void requestImage (QString url);
 //signal
 void imageReady(QPixmap*);

[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Download client for extras-applications/REST-API</title>
    <id>3104</id>
    <revision>
      <id>34214</id>
      <timestamp>2010-05-11T08:20:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">The REST-API to fetch the content is based on the content part of the [http://www.freedesktop.org/wiki/Specifications/open-collaboration-services open collaboration services API]. Right now the following calls are implemented:




'''CATEGORIES'''

The [http://www.freedesktop.org/wiki/Specifications/open-collaboration-services#head-bc4b00b0f4e7121df53cdd3a8d0c71a62b30a465 categories API] is fully implemented. An example for the OS2008:

.../categories?parent=OS2008 :

 &lt;?xml version=&quot;1.0&quot;?&gt;
 &lt;ocs&gt;
    &lt;meta&gt;
        &lt;status&gt;ok&lt;/status&gt;
        &lt;message&gt;&lt;/message&gt;
        &lt;totalitems&gt;16&lt;/totalitems&gt;
    &lt;/meta&gt;
    &lt;data&gt;
        &lt;category&gt;
            &lt;id&gt;id&lt;/id&gt;
            &lt;name&gt;Multimedia&lt;/name&gt;
        &lt;/category&gt;
        &lt;category&gt;
            &lt;id&gt;id&lt;/id&gt;
            &lt;name&gt;Games&lt;/name&gt;
        &lt;/category&gt;
        ...
        &lt;category&gt;
            &lt;id&gt;id&lt;/id&gt;
            &lt;name&gt;Travel&lt;/name&gt;
        &lt;/category&gt;
    &lt;/data&gt;
 &lt;/ocs&gt;




'''LIST'''

The idea of this call is to get a list regarding to the arguments, given in the [http://www.freedesktop.org/wiki/Specifications/open-collaboration-services#head-bece9f40fa226bfd6dab67769e1750925a416f95-2 specification]. The following arguments are implemented:

* '''search''': searches for a specified keyword
* '''categories''': filters the list by the specified category
* '''page''': content page
* '''pagesize''': items per page
* '''sortmode''': Possible values are: &quot;new&quot; - newest first , &quot;alpha&quot; - alphabetical, &quot;high&quot; - highest rated, &quot;down&quot; - most downloads

Further the list of fields, which are returned by the request are the ones you find in the example:

 &lt;?xml version=&quot;1.0&quot;?&gt;
 &lt;ocs&gt;
    &lt;meta&gt;
        &lt;status&gt;ok&lt;/status&gt;
        &lt;message&gt;&lt;/message&gt;
        &lt;totalitems&gt;1&lt;/totalitems&gt;
    &lt;/meta&gt;
    &lt;data&gt;
        &lt;content&gt;
            &lt;id&gt;id&lt;/id&gt;
            &lt;name&gt;name&lt;/name&gt;
            &lt;version&gt;1.0&lt;/version&gt;
            &lt;changed&gt;2009-05-06T12:05:13+0000&lt;/changed&gt;
            &lt;created&gt;2009-05-06T12:05:13+0000&lt;/created&gt;
            &lt;downloads&gt;0&lt;/downloads&gt;
            &lt;score&gt;0&lt;/score&gt;
            &lt;comments&gt;0&lt;/comments&gt;
        &lt;/content&gt;
    &lt;/data&gt;
 &lt;/ocs&gt;



'''GET'''

The get-method is not based on the [http://www.freedesktop.org/wiki/Specifications/open-collaboration-services#head-8adf4754e5f65b3d851400de09c52409f7a15031-5 specification] yet. Work is ongoing.




'''NEXT STEPS'''

* separate ratings and comments



'''Open issues'''

Related to the [[Task:Single_sign-on | SSO]] task is the question on how to implement the features, where a log-in is required, like personal rating and commenting. One suggestion would be to use the [http://www.salmon-protocol.org/ salmon protocol] for that. But this is still work in progress.

[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Download client for extras-applications/REST-API REST API</title>
    <id>3106</id>
    <revision>
      <id>23576</id>
      <timestamp>2009-11-30T12:54:17Z</timestamp>
      <contributor>
        <username>danielwilms</username>
        <id>683</id>
      </contributor>
      <comment>[[Task:Download client for extras-applications/REST-API REST API]] moved to [[Task:Download client for extras-applications/REST-API]]</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Download client for extras-applications/REST-API]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Downloads catalog improvements</title>
    <id>1429</id>
    <revision>
      <id>34215</id>
      <timestamp>2010-05-11T08:21:16Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">The main purpose of this wiki page is to gather ideas about how to improve [http://downloads.maemo.org/ Downloads].

== Category reorg ==

We had long discussions about what [[Task:Package_categories|packages categories]] to use. Implementation and deployment is currently blocked by [https://bugs.maemo.org/show_bug.cgi?id=1805 bug #1805]. The current catalog still shows a mostly randomly-selected list of categories. It should be reorganized to use the official list of categories agreed on by the community.

Implications:
* New categories need to be configured.
* All applications in non-standard categories need to be moved to new categories.
* Redirect URLs need to be configured for existing category listings.

== OS200x vs Maemo x ==

In the past Nokia referred to OS releases OS2007, OS2008, etc. The use of OS200x has been deprecated in favor of Maemo x (e.g., Fremantle is Maemo 5). The catalog is currently organized by OS200x, this needs to be changed to the new versioning scheme.

Implications:
* New icons for OS releases.
* URLs need to change as OS version is used.
* Redirection needs to be configured for old URLs.
* Downloads statistics need to be updated for new names.

== Automatically create entries in Downloads when package in Extras has user/* section ==

At the moment not all applications which are available in Extras are listed in Downloads. A script could gather basic information for all user applications in Extras and create entries in the catalog. These entries can later be updated by users to give more details about the application.

== Add Application Manager install failures feedback to downloads ==

There is a plan to integrate [https://bugs.maemo.org/show_bug.cgi?id=1563 install status feedback] into the Application Manager. Downloads could use statistics from installation failures to display the &quot;quality&quot; of a package.

== Redesign Downloads front page ==

[[Image:Download_v_02.png|100px]] Implement current design proposal

== Reporting back comments directly to developer ==

Currently comments entered for a package at downloads do not automatically get send to the developer (aka user/account that was used to create/modify the downloads entry). I repeately had the problem that comments entered by people that had problems with my software were only accidently detected a while later. Please send all comments for my software to my mail account. Also add a big button &quot;Press here if you have problems&quot; that offers a form to enter a free form message to the developer (bugzilla possible later, too?). Of course my email address should be kept hidden. [[User:framstag]]

: ''We can enable mailing for comments, in fact it should be enabled. Will check this. We have a special field in the edit form where you can add the URL of your bugtracker, so people can easily file bugs. --[[User:xfade|xfade]] 09:17, 29 January 2009 (UTC)''

: ''Please further enhance this feature to cc: the email to someone at Maemo. I have been trying to contact a developer for weeks with no results (their package is embarassingly out of date and misleading to others) --[[User:gerritv|gerritv]] 22:31, 31 January 2009 (UTC)''
:: ''Who at Maemo, exactly? and why? Are they responsible for the package somehow? (I find it unlikely, and suspect they'd rather not be bothered by things that don't concern them) Or are you confusing Maemo and maemo.org? —[[User:generalantilles|GeneralAntilles]] 02:31, 1 February 2009 (UTC)''

== Automatically add links to external resources based on package control file (homepage, source) ==

The package may contain a &quot;homepage&quot; field. If this is a case, automatically add a link to it to the web page of the package. Or is this already the case (have not tested this)? Or do we need a &quot;Maemo-Homepage field&quot; in case of direct port etc...? This could possibly enhanced to directly link to source code (Vcs-*, especially Vcs-Browser), too. However in this case one should add a &quot;detail&quot; rider to do not get the wegpage too crowded by default). Had a user that claimed it was hard to find the sources (in fact he did not find them at all ;-)).

[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:EvaluateTransifex</title>
    <id>2277</id>
    <revision>
      <id>16448</id>
      <timestamp>2009-08-12T18:43:20Z</timestamp>
      <contributor>
        <username>zerojay</username>
        <id>1013</id>
      </contributor>
      <comment>[[Task:EvaluateTransifex]] moved to [[Task:Evaluate Transifex]]: Told that camel casing isn't supposed to be used on the wiki.</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Evaluate Transifex]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Evaluate Transifex</title>
    <id>2276</id>
    <revision>
      <id>21347</id>
      <timestamp>2009-10-29T17:18:56Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <comment>add conboy evaluation notice</comment>
      <text xml:space="preserve">{{task|proposed}}

== Evaluating Transifex ==

This task is part of a series of tasks for the overall goal of bringing localization and proofreading of strings used in Maemo, Mer and other applications to the community. As it is a long-term goal that will require the cooperation of several key community and Nokia members, it has been split up into several smaller tasks so that each piece can be pushed into the Maemo SCRUM backlog.

See the [[Objective:Community_localization|Community Localization topic]] for more information on the overall set of tasks and goals.

== Conboy ==
Conny, [http://talk.maemo.org/showthread.php?t=33382 author of Conboy], is evaluating Transifex. You can join the effort by signing up on Transifex, and providing your username to Conny who will then grant you rights to provide translations.

=== Task ===

The installation of an instance of the [http://transifex.org/ Transifex localization platform] for the purpose of evaluating its merits for Maemo, Mer and 3rd party applications for the Maemo platform.

Alternatively, if the resources cannot be gathered together for installing a hosted instance under the Maemo banner, the [http://transifex.net publicly hosted instance of Transifex] could be used for the purpose of evaluation instead.

The Mer project has expressed interest and desire to be a testing bed for Transifex's integration and implementation for Maemo.

=== Resources Required ===

* Maemo.org Webmaster
Needed for the actual installation of the [http://transifex.org/wiki/Download Transifex software] to the Maemo.org webserver, as well as the initial configuration of the software.

* Nokia/Maemo localization team
Needed for the purpose of evaluating the Transifex software from the Nokia perspective. They will need to evaluate the software in terms of ease-of-use, implementation within their workflow and ease of integration within the source repositories (SVN, Git, others).

* Maemo community/community council 
Needed for the purpose of evaluating the Transifex software from the community and 3rd party perspective. They will need to evaluate the software in terms of ease-of-use, implementation within their workflow and ease of integration within the source repositories (SVN, Git, others).

=== Additional Information ===

[http://talk.maemo.org/showpost.php?p=311163&amp;postcount=26 Quim has said] that [http://wiki.maemo.org/Maemo_Summit_2009 Maemo Summmit 2009] would be one of the best places to meet and to push this task and those related to it forward.

The Transifex product director, [http://maemo.org/profile/view/glezos/ Dimitris Glezos], has [http://talk.maemo.org/showpost.php?p=309993&amp;postcount=23 expressed interest] in helping to discuss and implement Transifex within Maemo. [http://maemo.org/news/events/maemo_summit_2009/#participants He has also registered for Maemo Summit 2009], [http://wiki.maemo.org/Maemo_Summit_2009/Submissions#Towards_painless_yet_quality_translations submitted a talk/BoF] and has requested sponsorship.</text>
    </revision>
  </page>
  <page>
    <title>Task:Fast Server</title>
    <id>126</id>
    <revision>
      <id>8478</id>
      <timestamp>2008-11-04T13:12:09Z</timestamp>
      <contributor>
        <username>tekojo</username>
        <id>281</id>
      </contributor>
      <text xml:space="preserve">{{Template:100Days agenda}}
{{task|ongoing}}

'''Progress on this task depends on the server upgrade done by the ISP''' and it moved to the Backlog. see [[100Days/Sprint2]].--[[User:qgil|qgil]] 12:36, 1 July 2008 (UTC)

Browsing and downloading from maemo.org should be simply fast. No excuses.

Although things have improved some (particularly after the OS2008 release), they don't seem to be keeping up well with the ever increasing numbers of tablet users, and downtime or slowness from the critical services offered by maemo.org is unacceptable. 
* Mirror repository.maemo.org to ensure good uptime and fast response.
* Mirror tablets-dev.nokia.com to ensure good uptime and fast response.
* Improve the hardware and bandwidth availability behind *.maemo.org to ensure good uptime and fast response—maemo.org is too slow!
:''This work is ongoing and the results should be noticed way before the end of the 100 Days.--[[User:qgil|qgil]] 06:24, 2 June 2008 (UTC)''
:: -'' &quot;...running a beowolf cluster of 770's?&quot;'' : ) - mee 20:25, 8 June 2008 (UTC)

= Services =
== maemo.org website ==
=== problem ===
This server is really overloaded on all parts, especially after 15:00 UTC.
=== solution ===
Multiple servers to spread the load and move the database to a separate server.
=== progress ===
The ISP has delivered our servers. We now wait for Eero from Nemein to return from holiday, so he can set them up. --[[User:xfade|xfade]] 12:43, 31 July 2008 (UTC)

Before switching over to the new servers, a performance testing needs to be done. It is not yet agreed who will do the testing and what is the earliest date when they could start, but there are at least two candidates.
Whenever the new servers are in a shape where I can see the maemo front page on access, and the load generator servers are in place the load testing can start.
After the load testing, the data must be synced with the live server, all services prepared for the switchover and if all parties agree push the button. Now we need to come up with some milestones and deadlines. -- [[User:marcell|marcell]] 19:49, 2 Sept 2008 (UTC)

Many tweaks and tunes done by Niels and Nemein. Midgard version will be upgraded to 8.09 as soon as a sensible time is found (discuss this with Nemein 6.11.2008). Midgard 8.09 will improve web server performce.
New hardware for the database backend will come available late next week. This should take care of the current really bad database performance.
--[[User:tekojo|tekojo]] 13:10, 4 Nove 2008 (UTC)

== garage.maemo.org ==
=== problem ===
The server is overloaded because of increased SVN usage, autobuilder and repository related work. The server doesn't have enough RAM for filesystem cache, so a lot of IO has to be done. This slows all other processes down.
=== proposed solution ===
* Move autobuilder and repository related tasks to a separate server. (Not available at the moment)
* Move SVN(Projects' sourcecode) repository to a separate server. (Not available at the moment)
=== progress ===
none yet --[[User:xfade|xfade]] 12:43, 31 July 2008 (UTC)

more ram is ordered for the server, we are waiting for the ISP to install it. -- [[User:marcell|marcell]] 19:52, 2 September 2008 (UTC)

== autobuilder - builder ==
=== problem ===
We currently have one VM with 3 build queues. All builds for extras-devel are done on this VM. The VM only has a total of 10GB of disk space and doesn't have a very powerful cpu.
=== proposed solution ===
Order multiple VMs with sufficient disk space and cpu power.
=== progress ===
none yet --[[User:xfade|xfade]] 07:19, 1 August 2008 (UTC)

= Subtasks =
The following subtasks were listed in the backlog:
* Implement [https://garage.maemo.org/plugins/wiki/index.php?ServerInfraPlan&amp;id=106&amp;type=g ServerInfraPlan] - Marcell to get things from ISP, then Nemein continues until done.
* Cache issues: images not served, old stuff out, not updating, wiki redirect? - Eero (From February. Can wait to new server infra).
* Plan for login issues (From March. Depends on infrastructure improvement) - Eero
* Testing maemo.org with Midgards 8.09 and 9.03 to get [http://bergie.iki.fi/blog/some_thoughts_on_green_programming-php-midgard_and_simplicity.html major performance boost] - Henri</text>
    </revision>
  </page>
  <page>
    <title>Task:File hosting on maemo.org</title>
    <id>1820</id>
    <revision>
      <id>32696</id>
      <timestamp>2010-04-14T14:39:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>redundant [[Category:Tasks]]</comment>
      <text xml:space="preserve">{{task|proposed}}

== Goals ==

*Add File sharing for all maemo.org users.
*Allow easy access for all users to upload/download files.
*Give developers a way to host large files, or small files that are not worthy of a Garage Project.

== Use Cases ==

*Someone develops a program that requires a file larger then limit on Garage and *do not want to bring file into smaller files.
*A person writes several small programs that are not worth of a Garage project but he needs a place to host them.
*User can upload there latest backup of tablet to there storage and retrieve it in case tablet crash.

== Wishes ==

*FTP Access to storage area.
*Access to all maemo.org users with no extra signup.
*Creation of storage account when account is created.
*Allow 500MB or more per file
*Allow 1GB of total Storage
*One Private Folder for storing things like backups
*One Public Folder for storing things like programs.
*Easy web address (something like http://www.maemo.org/~USERNAME)
*Custom FTP program for tablet that only requires you to enter user name and password.(this will help newer users in uploading to the storage area.)</text>
    </revision>
  </page>
  <page>
    <title>Task:Fremantle application categories</title>
    <id>1946</id>
    <revision>
      <id>34216</id>
      <timestamp>2010-05-11T08:22:16Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">This page defines the Application Categories that applications can slot into. They will then appear in this category in the Application Manager on the user's tablet.

The following is the current draft of the Application categories.

{| class=&quot;wikitable&quot;
! Key
! Example English i18n
! Example apps
|-
| user/desktop
| Desktop
| Home, statusbar and taskbar applets
|-
| user/development
| Programming
| py2deb
|-
| user/education
| Education
| Flashcard apps
|-
| user/games
| Games
| Doom, Duke Nukem 3D
|-
| user/graphics
| Graphics
| Photo apps, GIMP, Inkscape, fonts
|-
| user/multimedia
| Multimedia ''or'' Sound &amp; Video
| Canola, mplayer, Kagu, UKMP, MediaBox
|-
| user/navigation
| (Location &amp;) Navigation
| maemo-mapper, Navit
|-
| user/network
| Internet &amp; Networking
| Web browsers, Samba clients, OpenAFS, Transmission
|-
| user/office
| Office
| GPE, Claws, AbiWord
|-
| user/science
| Science
| gnuplot, Octave
|-
| user/system
| System
| rotation-support, enhanced kernels, themes
|-
| user/utilities
| Utilities ''or'' Accessories
| Calculators, terminals, text editors
|-
|}

If the package's section starts &quot;user/&quot;, but is not any of the above, the ''Application Manager'' forces them into an &quot;Other&quot; section.

== Proposed changes ==

=== Add &quot;Sharing plugins&quot; category ===

The following category should be added:

{| class=&quot;wikitable&quot;
! Key
! Example English i18n
! Example apps
|-
| user/sharing
| Sharing Plugins
| Plugins that add additional upload and download protocols to applications, such as a Flickr photo upload.
|-
|}

See [https://bugs.maemo.org/show_bug.cgi?id=3844#c8 here] for a discussion.

== Translations ==

Application category must be translated into all supported languages.

{| class=&quot;wikitable&quot;
! Key
! en_GB
! en_US
! es_MX
! nl_NL
! pt_BR
! no_NO
! fi_FI
! it_IT
! fr_CA
! da_DK
! pt_PT
! sv_SE
! fr_FR
! es_ES
! ru_RU
! de_DE 
|-
| user/desktop
| Desktop
| Desktop
| Escritorio
| Bureaublad
| Área de Trabalho
| Skrivebord
| Työpöytä
| Desktop
| Bureau
| Skrivebord
| Área de Trabalho
| Skrivbord
| Bureau
| Escritorio
| Рабочий стол
| Desktop
|-
| user/development
| Programming
| Programming
| Programación
| Ontwikkeling
| Desenvolvimento
| Programming
| Ohjelmointi
| Programmazione
| Programmation
| Programmering
| Desenvolvimento
| Programmering
| Programmation
| Programación
| Программирование
| Entwicklung
|-
| user/education
| Education
| Education
| Educación
| Educatief
| Educação
| Undervisning
| Opiskelu
| Educazione
| Éducation
| Undervisning 
| Educação
| Utbildning
| Éducation
| Educación
| Образование
| Bildung
|-
| user/games
| Games
| Games
| Juegos
| Spelletjes
| Jogos
| Spill
| Pelit
| Giochi
| Jeux
| Spil
| Jogos
| Spel
| Jeux
| Juegos
| Игры
| Spiele
|-
| user/graphics
| Graphics
| Graphics
| Gráficos
| Grafisch
| Gráficos
| Grafikk
| Grafiikka
| Grafica
| Graphismes
| Grafik
| Gráficos
| Grafik
| Graphismes
| Gráficos
| Графика
| Grafik
|-
| user/multimedia
| Multimedia
| Multimedia
| Multimedia
| Multimedia
| Multimídia
| Multimedia
| Multimedia
| Multimedia
| Multimédia
| Multimedier
| Multimédia
| Multimedia
| Multimédia
| Multimedia
| Мультимедия
| Multimedia
|-
| user/navigation
| Location &amp; Navigation
| Location &amp; Navigation
| Localización y Navegación
| Locatie en Navigatie
| Posicionamento e Navegação
| Posisjon og Navigasjonen
| Paikannus ja navigointi
| Posizione e Navigazione
| Localisation et Navigation
| Position og Navigation
| Posicionamento e Navegação
| Position och Navigation
| Localisation et Navigation
| Localización y Navegación
| Позиционирование и навигация
| Position &amp; Navigation
|-
| user/network
| Internet &amp; Networking
| Internet &amp; Networking
| Internet y Redes
| Internet en Netwerk
| Internet e Redes
| Internet og Nettverk
| Internet ja viestintä
| Internet e reti
| Internet et Réseaux
| Internet og netværk
| Internet e Redes
| Internet och Nätverk
| Internet et Réseaux
| Internet y Redes
| Интернет и сети
| Internet &amp; Netzwerk
|-
| user/office
| Office
| Office
| Oficina
| Kantoor
| Escritório
| Kontor
| Toimisto
| Ufficio
| Bureautique
| Kontor
| Escritório
| Kontor
| Bureautique
| Oficina
| Оффис
| Büro
|-
| user/science
| Science
| Science
| Ciencia
| Wetenschap
| Ciência
| Vitenskap
| Tiede
| Scienza
| Science
| Videnskab
| Ciência 
| Vetenskap
| Science
| Ciencia
| Наука
| Wissenschaft
|-
| user/system
| System
| System
| Sistema
| Systeem
| Sistema
| System
| Järjestelmä
| Sistema
| Système
| System
| Sistema
| System
| Système
| Sistema
| Система
| System
|-
| user/utilities
| Utilities
| Utilities
| Utilitarios
| Gereedschappen
| Utilitários
| Verktoy
| Apuohjelmat
| Utilità
| Utilitaires
| Værktøjer
| Utilitários
| Verktyg
| Utilitaires
| Utilidades
| Утилиты
| Werkzeuge
|-
|}

[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Garage bug tracking in Bugzilla</title>
    <id>903</id>
    <revision>
      <id>5302</id>
      <timestamp>2008-07-24T11:10:12Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Task:Garage bug tracking in Bugzilla]] moved to [[Task:3rd party bug tracking in bugs.maemo.org]]: To be precise</comment>
      <text xml:space="preserve">#REDIRECT [[Task:3rd party bug tracking in bugs.maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Garage facelift</title>
    <id>3803</id>
    <revision>
      <id>32693</id>
      <timestamp>2010-04-14T14:03:40Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>{{task|accepted}}</comment>
      <text xml:space="preserve">{{task|accepted}}

The theme of garage.maemo.org is still from the early days (2005). With some effort we could setup a GForge test site and hack the 'newstyle' theme. 

Unfortunately it is not enough to create a standard GForge theme, due to a number of customization we happened to do compared to upstream.

I believe within a couple of days we could get a reasonable result.

I am wondering if a talented designer / graphic artist could give me a hand and provide a sketch for -at least- the [http://garage.maemo.org opening page of garage]. I am committed to setup the test server.


[[User:feri|feri]] 12:46, 1 April 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Task:Garage facelift (implement the current maemo.org theme)</title>
    <id>3805</id>
    <revision>
      <id>31811</id>
      <timestamp>2010-04-01T12:49:36Z</timestamp>
      <contributor>
        <username>feri</username>
        <id>2</id>
      </contributor>
      <comment>[[Task:Garage facelift (implement the current maemo.org theme)]] moved to [[Task:Garage facelift]]</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Garage facelift]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Getting Nokia involved in Bugzilla</title>
    <id>897</id>
    <revision>
      <id>5285</id>
      <timestamp>2008-07-24T10:33:07Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Task:Getting Nokia involved in Bugzilla]] moved to [[Task:Getting Nokia involved in bugs.maemo.org]]: Being precise  :)</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Getting Nokia involved in bugs.maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Getting Nokia involved in bugs.maemo.org</title>
    <id>847</id>
    <revision>
      <id>6961</id>
      <timestamp>2008-09-03T06:51:01Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <minor/>
      <comment>task|ongoing</comment>
      <text xml:space="preserve">{{Template:2010 agenda}}
{{task|ongoing}}

This task is part of [[Objective:One place to track feedback]].

This task aims to provide a set of clear, attainable goals with a workable timeline based on the ideas and discussion in [https://bugs.maemo.org/show_bug.cgi?id=630 bug #630]. The primary objective is to improve openness by getting Nokia to [http://www.maemopeople.org/index.php/jaffa/2008/04/20/maemo_org_what_next work ''in'' the community].

== Goals ==
* Increase Nokia's overall openness.
* Get Nokia to do its work ''in'' the community, not just ''with'' it.
* Get Nokia engineers and product managers involved in Bugzilla.

== First steps ==
* Begin encouraging Nokia engineers and product managers to register in Bugzilla and get involved.
* Begin assigning products to real Nokia engineers and product managers, and have them triage and manage the bugs in their products. Triaging (real triaging and prioritization, not just community guesswork) should not be done by just one person (Andre, primarily, though Karsten is also involved here).

== Long-term tasks ==
* Close down the internal bug tracker to all open products and move the bug tracking of open products to Bugzilla.</text>
    </revision>
  </page>
  <page>
    <title>Task:Git over ssh</title>
    <id>3830</id>
    <revision>
      <id>41777</id>
      <timestamp>2011-02-11T11:37:41Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>task is apparently complete</comment>
      <text xml:space="preserve">{{task|completed}}

Garage currently offers git over WebDAV access for software projects. Unfortunately this solution has several limitations. Apart from its slowness it is often unreliable, meaning that commits do not get to the repo properly. In some cases the repositories are completely unavailable (e.g. behind firewalls and proxeis) and there is no way to use hooks (ie. trigger events on certain actions happen to a repository).

However the biggest advantage of the current solution is the access control. With WebDAV it is relatively easy to limit who can access a certain project and what sort of rights does the person have on that repository. 

Git over ssh would benefit developers. Access control will pose some challenges. We already have means to store the developers ssh key(s), and we certainly know the groups they belong to, so in theory it should be easy to put these together.

I would like to keep the &quot;git over WebDAV&quot; as a backup solution, but preserving full access (read / write) via WebDAV while ssh is in use might be tricky. There are places where people are not allowed to establish ssh connections outside of their company network (for various security reasons), so having a plan B for them would be essential.

Git over ssh has also been [http://lists.maemo.org/pipermail/maemo-developers/2009-November/022284.html requested by the community] and we promised to deliver it after the server move.</text>
    </revision>
  </page>
  <page>
    <title>Task:ITt Collaboration</title>
    <id>127</id>
    <revision>
      <id>22812</id>
      <timestamp>2009-11-17T15:53:37Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Tasks */</comment>
      <text xml:space="preserve">{{task|completed}}
{{100Days agenda}}

There is a list of tasks to be done in order to assure a good integration between http://maemo.org and http://internettablettalk.com

== Tasks==

These are the somewhat defined and agreed tasks. There are more potential tasks in the [[Talk:Task:ITt_Collaboration|discussion]] page that need to be defined and extracted here.

=== ITt karma counting ===

Integrated iTT with maemo.org [[karma]] system. See
* [https://bugs.maemo.org/show_bug.cgi?id=2303 Karma should count ITT 'Thanks!&quot;] 
* [https://bugs.maemo.org/show_bug.cgi?id=2304 Karma should take ITT forum posts and threads started into account]

This also touches multi-user feed retrieval:
* [https://bugs.maemo.org/show_bug.cgi?id=2296 Karma not counted in ITt feed]

=== ITt application catalog feeds ===

Provide an automatic way to syndicate applications to the Internet Tablet Talk Software Section (itTSS).

See [http://www.internettablettalk.com/wiki/index.php?title=Maemo.org_Syndication spec on ITt] - '''Can't be found now - any way to recover it?'''

=== ITt integration with maemo.org ===

This task is being tracked in [[Task:talk.maemo.org]]
[[Category:Talk]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Implement new maemo.org layout and style</title>
    <id>1372</id>
    <revision>
      <id>32185</id>
      <timestamp>2010-04-08T15:01:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify links</comment>
      <text xml:space="preserve">{{task|completed}}


This page serves as a TODO and status list for the implementation of the new layout and styles to all Maemo web services.

== Status ==

{| class=&quot;wikitable sortable&quot;
|-
! Service
! Worked on by
! %
! last updated
! Info
|-
| maemo.org || - || 90% || 2009-04-23 || -
|-
| garage.maemo.org || - || 0% || 2008-12-08 || -
|-
| lists.maemo.org || - || 0% || 2008-12-08 || -
|-
| bugs.maemo.org || - || 0% || 2008-12-08 || -
|-
| search.maemo.org || - || 0% || 2008-12-08 || -
|-
| talk.maemo.org || - || 0% || 2008-12-08 || -
|-
| wiki.maemo.org || - || 70% || 2009-03-03 || -
|-
| Extras Promoter || - || 0% || 2008-12-08 || -
|-
| Extras Assistant || - || 0% || 2008-12-08 || -
|-
| Voting system || - || 0% || 2008-12-08 || -
|}

== maemo.org ==

=== Specifics ===
{| class=&quot;wikitable sortable&quot;
|-
! 
! 
! Info
|-
| Platform || Midgard || Ragnaroek
|-
| Can be worked on without disturbing regular users? || Yes || Separate host http://newstyle.maemo.org
|-
| Style in SCM? || Yes || maemo2midgard svn
|-
| Needs reconfiguring? || Probably || Depends on layout changes
|-
| Difficulty || Medium || Lot of work to change all layouts.
|}

=== Plan ===
* Create maemo2009 style in maemo2midgard svn. '''done'''
* Setup temporary host newstyle.maemo.org where we apply the new style to current website. '''done'''
* Change style and configuration snippets in svn and sync to newstyle host. '''under work'''
* Repeat until satisfied
* Apply to live site

=== Checklist ===

We are now tracking all of the bugs/enhancements for the new site design [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;classification=maemo.org+Website&amp;product=Website&amp;component=Newstyle&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= here].

=== Subsections ===

* Normal page (maemo.org/somepage)
** Design: '''done'''
** XHTML/CSS: '''almost done''' -&gt; Missing: correct backgrounds for sidebar menu. 
** Template: '''done''' (http://newstyle.maemo.org/intro/developer_overview/)
* Front page (http://maemo.org)
** Design: [[:Image:HOME_8.png]]
** XHTML/CSS: '''mostly done''' Events etc still need styling, need some banners for forum nokia etc
** Template:
* Login screen (https://maemo.org)
** Design: '''done'''
** XHTML/CSS: '''done'''
** Template: '''done'''
* Social news (http://maemo.org/news)
** Design: [[:Image:Planet_Maemo.png]]
** XHTML/CSS: '''mostly done'''
** Template: 2009-02-19
* Planet Maemo (http://maemo.org/news/planet-maemo)
** Design: [[:Image:Planet_Maemo.png]]
** XHTML/CSS:
** Template: 2009-02-19
* Event calendar (http://maemo.org/news/events/)
** Design:
** XHTML/CSS:
** Template:
* Comments (loaded to news and app pages)
** Design: [[:Image:Download_with_rating.png]]
** XHTML/CSS: Some work done, needs account widget still
** Template: Some work done, needs account widget still
* Maemo profile page (http://maemo.org/profile/view/username)
** Design: [[:Image:Profile_page.png]]
** XHTML/CSS: '''mostly done'''
** Template: '''mostly done'''
* Maemo profile list (http://maemo.org/profile/list)
** Design: '''done'''
** XHTML/CSS: '''done'''
** Template: '''mostly done''', needs resized avatar image.
* Downloads main page
** Design: [[:Image:Download_v_02.png]]
** XHTML/CSS: '''mostly done''', missing (?) icon in more sizes
** Template: '''mostly done'''
* Downloads category page (http://maemo.org/downloads/OS2008/desktop-environment/)
** Design:  '''done'''
** XHTML/CSS: '''mostly done''', some spacing issues left.
** Template: '''mostly done''', sidebar categories list needs to show active category
* Downloads application page (http://maemo.org/downloads/product/OS2008/omweather/)
** Design: [[:Image:Download_with_rating.png]]
** XHTML/CSS: '''mostly done'''
** Template: '''mostly done'''

== garage.maemo.org ==
=== Specifics ===
{| class=&quot;wikitable sortable&quot;
|-
! 
! 
! Info
|-
| Platform || GForge || 
|-
| Can be worked on without disturbing regular users? || Yes || New theme can be developed even on the live server
|-
| Style in SCM? || Yes || [https://garage.maemo.org/scm/?group_id=669 garage project]
|-
| Needs reconfiguring? || Possibly || Depends on layout changes
|-
| Difficulty || High || Can do it after server migration - ferenc
|}
=== Plan ===

I have the latest 'garage' replicated on my machine, theme development can start there and continue on the live machine once the server migration is completed.

[[User:feri|feri]] 10:31, 6 October 2009 (UTC)

== lists.maemo.org ==
=== Specifics ===
{| class=&quot;wikitable sortable&quot;
|-
! 
! 
! Info
|-
| Platform || Mailman || 
|-
| Can be worked on without disturbing regular users? || Yes || Can test on local instance and copy files over when done.
|-
| Style in SCM? || Yes || maemo2midgard svn
|-
| Needs reconfiguring? || No || 
|-
| Difficulty || Medium || Need to edit some Mailman source files as not all pages are themed.
|}
=== Plan ===
* Create style files and test on a local instance.
* Regenerate one email in the archive to see if the style works on live data.
* Move style to lists.maemo.org and regenerate the entire email archive html files

== bugs.maemo.org ==
=== Specifics ===
{| class=&quot;wikitable sortable&quot;
|-
! 
! 
! Info
|-
| Platform || Bugzilla || 
|-
| Can be worked on without disturbing regular users? || Yes || We have a [https://test.maemo.org/testzilla_ferenc/ test bugzilla] setup, so testing can be done there.
|-
| Style in SCM? || Yes || [https://garage.maemo.org/scm/?group_id=675 bugs svn]
|-
| Needs reconfiguring? || No || 
|-
| Difficulty || Medium ||  
|}

=== Plan ===

== search.maemo.org ==
=== Specifics ===
{| class=&quot;wikitable sortable&quot;
|-
! 
! 
! Info
|-
| Platform || Google || Google Mini Search Appliance
|-
| Can be worked on without disturbing regular users? || Yes || Need to create a new frontend and edit that XSLT.
|-
| Style in SCM? || No || The Google Mini's config is not available from svn. [[User:feri|feri]] 10:43, 6 October 2009 (UTC)
|-
| Needs reconfiguring? || No || Frontend can be switched easily
|-
| Difficulty || High || This XSLT is complex
|}
=== Plan ===
* Create new frontend in the Enterprise Controller
* Copy current XSLT to new frontend
* Edit style
* Try new frontend in Test Center, repeat step 3 until:
* If satisfied, switch frontend.

* willing to work on it later this year [[User:feri|feri]] 10:43, 6 October 2009 (UTC)

== talk.maemo.org ==

== wiki.maemo.org ==
=== Specifics ===
{| class=&quot;wikitable sortable&quot;
|-
! 
! 
! Info
|-
| Platform || Mediawiki || 
|-
| Can be worked on without disturbing regular users? || Yes || Need to create a new skin and set that in user profile
|-
| Style in SCM? || No ||
|-
| Needs reconfiguring? || No || Skin can be switched easily
|-
| Difficulty || Medium || Might need some fixes for mediawiki specific elements
|}
=== Plan ===
* Create new skin based on monobook
* Edit skin
* Set skin in user profile, so you can test it.
* If satisfied, switch skin.

== Extras Promoter ==
=== Specifics ===
{| class=&quot;wikitable sortable&quot;
|-
! 
! 
! Info
|-
| Platform || Python || Custom code
|-
| Can be worked on without disturbing regular users? || Yes || Local setup
|-
| Style in SCM? || Yes || extras-cauldron svn
|-
| Needs reconfiguring? || No || 
|-
| Difficulty || Low || Copy header and footer + some tweaks
|}
=== Plan ===
* Edit header and footer to reflect new style
* Test on local setup
* Move into production

== Extras Assistant ==
=== Specifics ===
{| class=&quot;wikitable sortable&quot;
|-
! 
! 
! Info
|-
| Platform || PHP || Custom code
|-
| Can be worked on without disturbing regular users? || Yes || 
|-
| Style in SCM? || No || Need to upload to svn, will go to extras-cauldron svn.
|-
| Needs reconfiguring? || No || Just switch layout
|-
| Difficulty || Low || Copy header &amp; footer + some tweaks.
|}


== Voting system ==
=== Specifics ===
{| class=&quot;wikitable sortable&quot;
|-
! 
! 
! Info
|-
| Platform || PHP || Custom code
|-
| Can be worked on without disturbing regular users? || Yes || 
|-
| Style in SCM? || Yes || maemo2midgard SVN
|-
| Needs reconfiguring? || No || Just switch layout
|-
| Difficulty || Low || Copy header &amp; footer + some tweaks.
|}</text>
    </revision>
  </page>
  <page>
    <title>Task:Improving maemo.org</title>
    <id>100</id>
    <revision>
      <id>32590</id>
      <timestamp>2010-04-13T12:57:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify links</comment>
      <text xml:space="preserve">{{100Days agenda}}
{{task|completed}}

Connected to [[Task:Content Cleanup]]

== Goals ==

We will:

* Reorganise existing content to allow most common use-cases to be fulfilled    easily
* Create new content where appropriate to fulfill use-cases
* Remove or move information which does not contribute to the most common  use-cases
* Make the site visually attractive and fresh, to match the maemo.org visuals
* Make different maemo.org sites visually consistent
* Ensure the site works well on the tablets

== Non-goals ==

We will not:
* Re-write all content
* Move away from Midgard
* Load the site with heavy content such as flash (see tablet goal).

== Use cases ==

The following are the core use-cases to be addressed by the website rework:

# A new tablet owner wants to install some software on his tablet.
# An interested application developer comes to maemo.org to learn how to write a new application for the tablet.
# An existing application developer comes to maemo.org looking for information on modifying his application for Maemo.
# A Maemo Community member is looking for the latest news from around the world of Maemo
# An interested user wants to know how he can help make Maemo better or give feedback
# A tablet user has a problem which they would like to resolve.

== Content ==

We need to change some of the content substantially:

* Front page - see [[Task:Improving_maemo.org#Maemo.org_Homepage_refresh]] and [http://lists.maemo.org/pipermail/maemo-community/2008-September/000955.html this mailing list discussion].
* Development - see [[Task:Improving_maemo.org/Development]]
* Community - see [[Task:Improving_maemo.org/community]]

We don't need to substantially revise the Intro, News or Downloads pages.

The front page will primarily be portal pages to help get people where they want to go, but also to let people get a flavour of the Maemo community.

The community page will show the Maemo community in all its glory - covering communication, people, projects, what's new, what's cool, what we're up to. The page will be almost entirely dynamic and will reflect the current state of Maemo.

The Development page should respond to four different needs - getting software development kits and images for development, getting general introductions, tutorials, overviews of the platform and other general information, exposing searchable reference documents for the Maemo platform APIs, and finally (but very importantly, giving a visitor a map of the developer-focused communication forums that exist in Maemo, including itT, mailing lists, IRC and the wiki.

=== Maemo.org Homepage refresh ===

The concept of the existing maemo.org homepage is good and we should keep it. 


The final make-up of the maemo.org front-page will be based on [http://samoff.maemobox.org/maemo_redesign/samoff-maemo.org-redesign_idea_0008e.png Tim Samoff's final proposal]:
* A title bar with the new maemo.org logo
* A menu containing: 
** &quot;About&quot; - points to current http://maemo.org/intro
** &quot;Downloads&quot; - points to current http://maemo.org/downloads
** &quot;News&quot; - points to current http://maemo.org/news
** &quot;Get help&quot; - points to (new page) http://maemo.org/support - see [[Task:Improving_maemo.org/Support]]
** &quot;Development&quot; - points to (updated page) http://maemo.org/development - see [[Task:Improving_maemo.org/Development]]
* A search box which will search the website. Ideally, the search results page will allow the user to filter parts of the site only.
* Discrete &quot;Log in / Register&quot; links (or, when logged in, a link to the user's profile page, with &quot;Welcome back, [http://maemo.org/profile/view/dneary Dave Neary]&quot; or something similar)
* Prominently featured at the top of the page, the current &quot;Fresh&quot; and &quot;Hot&quot; downloads, which should point to the latest updated application, and one of the featured application (&quot;the pearl&quot;), the most popular application or the best rated application (to be decided) on the downloads page.
* News - the front page should feature a section with the 5 most recent headlines from http://maemo.org/news/, including the lead paragraph for the most recent news item
* Sidebar - other elements in the page will be less prominently placed, in a side-bar
** &quot;Get involved&quot; - points to the (updated page) http://maemo.org/community - see [[Task:Improving_maemo.org/Community]]
** The &quot;Get involved&quot; block should also include a link to a featured community member (including icon/photo), and could also include a link to the mewest maemo.org account creator (&quot;Welcome [http://maemo.org/profile/view/dneary Dave Neary]!&quot;)
** Links (with web banner) to [http://maemo.nokia.com Nokia's Maemo site], [http://www.internettablettalk.com/ Internet Tablet Talk] and [http://www.forum.nokia.com/ Forum Nokia]
* Page footer
** Copyright notice (note content will be copyright Nokia and respective authors - wording to be clarified)
** Legal notices - points to http://maemo.org/legal which will contain copyright &amp; trademark notices and trademark style guide, terms of use and privacy policy
** &quot;Midgard CMS&quot; - a link to http://www.midgard-project.org/
** A notice that the site is &quot;Sponsored by Nokia&quot;

=== Design drafts ===

* [http://samoff.maemobox.org/maemo_redesign/samoff-maemo.org-redesign_idea_0009b-loggedout.png Tim's mock-up]
* [[:Image:HOME_03_MOD.png | Andre Cunha's redraft]] based on Tim's design and mailing list comments (including a [http://openbossa.andrecunha.com/LEVEL2.jpg second level page])
* [http://samoff.maemobox.org/maemo_redesign/samoff-variation_of_HOME_03_MOD.png Tim Samoff proposed variation on Andre's HOME_03_MOD idea]
* [[:Image:HOME_04.png|(Glaubert) A proposal for a horizontal content structure more compact]]
* [[:Image:HOME_05.png|(Glaubert) A Dark grey version, for the new layout horizontally structured]]
* [[:Image:HOME_7.png|(Glaubert) lighter site proposal]]
* [[:Image:HOME_8.png|(Glaubert) lighter site proposal with some adjustments proposed by Tim and Henri B.]]

=== Tracking progress ===

Progress on the implementation of this new maemo.org style is being tracked on the page [[Task:Implement new maemo.org layout and style]].

=== Community ===

''Main Article: [[Task:Improving_maemo.org/Community]]''
* In reference to maemo.org [http://maemo.org/community/ Community page].

== Functionality and navigation ==
* Single sign on for maemo.org/garage.maemo.org/wiki/bugzilla -&gt; would make community participation easier and the '[[karma]]' calculation (if needed) too.
:''Ferenc is working on bugzilla, IIRC. The others already have one account for all. --[[User:xfade|xfade]] 13:49, 2 June 2008 (UTC)''
::''The &quot;one account for all&quot; is not the same as Single Sign-On (SSO). SSO would need additional software and integration. The one account for all feature will be completed when bugzilla will use garage for authentication. This is work in progress and will be completed in the June sprint. --[[User:feri|feri]] 14:08, 2 June 2008 (UTC)''
*The user login process really is broken. Secondly, the login for the wiki has terrible user interface design, as it does not point to a page where one can register, despite the fact that it is called the &quot;Log in / create account&quot; page. ''--mee 13:54, 7 June 2008 (UTC)''

== Style and format ==

Proposal: Open proposal for community generated mock-ups, and one or two Nokia
sponsored mock-ups from INdT.

{{main|Task:Maemo.org facelift}}

See also [[Task:Improving maemo.org/Graphics]]

== Content organisation ==

There are two aspects: content and its organisation.

* Content: Need to evaluate existing content for its usefulness for common use-cases. Need to ensure it is obvious when content is out-dated/deprecated.
** Delete old wiki content completely - it is polluting Google    juice, and confusing users who see it as new information
** News page should include links to outside articles, blogs, official   announcements, high-ranked ITT threads, etc. It should be a window on the   highest-ranked Maemo time-sensitive content
* Integration with sub-sites and partner sites:
** Midgard vs Wiki vs gtkdoc vs ...
** Ask gronmayer to take site off-line, in favour of a really useful extras (we're getting there)
* Organisation: Existing content should be presented and linked to in a way that makes popular tasks easy, and unpopular tasks available through   linking, and also through search (site search and web search).
** We will reorganise information on tutorials, SDKs, and platform APIs so that the site user will encounter the most up-to-date information by default, and must dig a bit deeper to get out-of-date legacy information
** Move to OS2008/tutorials, OS2008/SDK reference, etc...
** Currently, OS2008, OS2007, ... docs are all mixed together in each category
** Link to HTML reference documentation in favour of PDF
** Promote useful wiki pages to http://maemo.org/documentation

We need to look at 3 things:

* Clean page layout for all portal pages - pages must bring you easily to the    content you're interested in, if you are in the most common use-cases
* Efficient search on website
* Web search indexing of Maemo content
* Ensure all outdated content is removed from the primary navigation paths of   users interested in common use-cases.

== Smoothing the introduction of new users to maemo.org ==

* The development section should be organized in a simple, clear and centralized way to beginners. The following information is important and should be presented to the newcomers immediately they enter the development section.
# Simple steps of getting started should be presented in a clear and definite way ,on a conspicuous area with color. for example:
## Sign up a maemo account (link to register page)
## Download and set up development environment.(link to detailed method page)
## Create hello world application, Package and Test(link to several typical and simple examples,and useful links to advanced docs should be included)
## Collaboration on maemo.org and Launch app on the download section (link to pages including usage of project homepage)
# Key features of maemo platform should be presented on the section page explicitly.
## Free to develop and launch applications.
## Powerful enough to create advanced applications.
## Flexibility in programming (Gtk+/C,Python,Qt and etc)
## Easy to port existing application.
# Wiki on frequent technical problems in programming(the how-tos part),and entry to developer's disscusion board(link to ITT's or a new one) to help newcomers to find solutions to difficulty and ask for help.
# All docs in a catalog with good classification for look up.
# Maemo's roadmap and history, technical news and announcement about maemo.
# Maemo app gallery and entry to experienced and recently active developers' tech blogs.</text>
    </revision>
  </page>
  <page>
    <title>Task:Improving maemo.org</title>
    <id>100</id>
    <revision>
      <id>32590</id>
      <timestamp>2010-04-13T12:57:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify links</comment>
      <text xml:space="preserve">{{100Days agenda}}
{{task|completed}}

Connected to [[Task:Content Cleanup]]

== Goals ==

We will:

* Reorganise existing content to allow most common use-cases to be fulfilled    easily
* Create new content where appropriate to fulfill use-cases
* Remove or move information which does not contribute to the most common  use-cases
* Make the site visually attractive and fresh, to match the maemo.org visuals
* Make different maemo.org sites visually consistent
* Ensure the site works well on the tablets

== Non-goals ==

We will not:
* Re-write all content
* Move away from Midgard
* Load the site with heavy content such as flash (see tablet goal).

== Use cases ==

The following are the core use-cases to be addressed by the website rework:

# A new tablet owner wants to install some software on his tablet.
# An interested application developer comes to maemo.org to learn how to write a new application for the tablet.
# An existing application developer comes to maemo.org looking for information on modifying his application for Maemo.
# A Maemo Community member is looking for the latest news from around the world of Maemo
# An interested user wants to know how he can help make Maemo better or give feedback
# A tablet user has a problem which they would like to resolve.

== Content ==

We need to change some of the content substantially:

* Front page - see [[Task:Improving_maemo.org#Maemo.org_Homepage_refresh]] and [http://lists.maemo.org/pipermail/maemo-community/2008-September/000955.html this mailing list discussion].
* Development - see [[Task:Improving_maemo.org/Development]]
* Community - see [[Task:Improving_maemo.org/community]]

We don't need to substantially revise the Intro, News or Downloads pages.

The front page will primarily be portal pages to help get people where they want to go, but also to let people get a flavour of the Maemo community.

The community page will show the Maemo community in all its glory - covering communication, people, projects, what's new, what's cool, what we're up to. The page will be almost entirely dynamic and will reflect the current state of Maemo.

The Development page should respond to four different needs - getting software development kits and images for development, getting general introductions, tutorials, overviews of the platform and other general information, exposing searchable reference documents for the Maemo platform APIs, and finally (but very importantly, giving a visitor a map of the developer-focused communication forums that exist in Maemo, including itT, mailing lists, IRC and the wiki.

=== Maemo.org Homepage refresh ===

The concept of the existing maemo.org homepage is good and we should keep it. 


The final make-up of the maemo.org front-page will be based on [http://samoff.maemobox.org/maemo_redesign/samoff-maemo.org-redesign_idea_0008e.png Tim Samoff's final proposal]:
* A title bar with the new maemo.org logo
* A menu containing: 
** &quot;About&quot; - points to current http://maemo.org/intro
** &quot;Downloads&quot; - points to current http://maemo.org/downloads
** &quot;News&quot; - points to current http://maemo.org/news
** &quot;Get help&quot; - points to (new page) http://maemo.org/support - see [[Task:Improving_maemo.org/Support]]
** &quot;Development&quot; - points to (updated page) http://maemo.org/development - see [[Task:Improving_maemo.org/Development]]
* A search box which will search the website. Ideally, the search results page will allow the user to filter parts of the site only.
* Discrete &quot;Log in / Register&quot; links (or, when logged in, a link to the user's profile page, with &quot;Welcome back, [http://maemo.org/profile/view/dneary Dave Neary]&quot; or something similar)
* Prominently featured at the top of the page, the current &quot;Fresh&quot; and &quot;Hot&quot; downloads, which should point to the latest updated application, and one of the featured application (&quot;the pearl&quot;), the most popular application or the best rated application (to be decided) on the downloads page.
* News - the front page should feature a section with the 5 most recent headlines from http://maemo.org/news/, including the lead paragraph for the most recent news item
* Sidebar - other elements in the page will be less prominently placed, in a side-bar
** &quot;Get involved&quot; - points to the (updated page) http://maemo.org/community - see [[Task:Improving_maemo.org/Community]]
** The &quot;Get involved&quot; block should also include a link to a featured community member (including icon/photo), and could also include a link to the mewest maemo.org account creator (&quot;Welcome [http://maemo.org/profile/view/dneary Dave Neary]!&quot;)
** Links (with web banner) to [http://maemo.nokia.com Nokia's Maemo site], [http://www.internettablettalk.com/ Internet Tablet Talk] and [http://www.forum.nokia.com/ Forum Nokia]
* Page footer
** Copyright notice (note content will be copyright Nokia and respective authors - wording to be clarified)
** Legal notices - points to http://maemo.org/legal which will contain copyright &amp; trademark notices and trademark style guide, terms of use and privacy policy
** &quot;Midgard CMS&quot; - a link to http://www.midgard-project.org/
** A notice that the site is &quot;Sponsored by Nokia&quot;

=== Design drafts ===

* [http://samoff.maemobox.org/maemo_redesign/samoff-maemo.org-redesign_idea_0009b-loggedout.png Tim's mock-up]
* [[:Image:HOME_03_MOD.png | Andre Cunha's redraft]] based on Tim's design and mailing list comments (including a [http://openbossa.andrecunha.com/LEVEL2.jpg second level page])
* [http://samoff.maemobox.org/maemo_redesign/samoff-variation_of_HOME_03_MOD.png Tim Samoff proposed variation on Andre's HOME_03_MOD idea]
* [[:Image:HOME_04.png|(Glaubert) A proposal for a horizontal content structure more compact]]
* [[:Image:HOME_05.png|(Glaubert) A Dark grey version, for the new layout horizontally structured]]
* [[:Image:HOME_7.png|(Glaubert) lighter site proposal]]
* [[:Image:HOME_8.png|(Glaubert) lighter site proposal with some adjustments proposed by Tim and Henri B.]]

=== Tracking progress ===

Progress on the implementation of this new maemo.org style is being tracked on the page [[Task:Implement new maemo.org layout and style]].

=== Community ===

''Main Article: [[Task:Improving_maemo.org/Community]]''
* In reference to maemo.org [http://maemo.org/community/ Community page].

== Functionality and navigation ==
* Single sign on for maemo.org/garage.maemo.org/wiki/bugzilla -&gt; would make community participation easier and the '[[karma]]' calculation (if needed) too.
:''Ferenc is working on bugzilla, IIRC. The others already have one account for all. --[[User:xfade|xfade]] 13:49, 2 June 2008 (UTC)''
::''The &quot;one account for all&quot; is not the same as Single Sign-On (SSO). SSO would need additional software and integration. The one account for all feature will be completed when bugzilla will use garage for authentication. This is work in progress and will be completed in the June sprint. --[[User:feri|feri]] 14:08, 2 June 2008 (UTC)''
*The user login process really is broken. Secondly, the login for the wiki has terrible user interface design, as it does not point to a page where one can register, despite the fact that it is called the &quot;Log in / create account&quot; page. ''--mee 13:54, 7 June 2008 (UTC)''

== Style and format ==

Proposal: Open proposal for community generated mock-ups, and one or two Nokia
sponsored mock-ups from INdT.

{{main|Task:Maemo.org facelift}}

See also [[Task:Improving maemo.org/Graphics]]

== Content organisation ==

There are two aspects: content and its organisation.

* Content: Need to evaluate existing content for its usefulness for common use-cases. Need to ensure it is obvious when content is out-dated/deprecated.
** Delete old wiki content completely - it is polluting Google    juice, and confusing users who see it as new information
** News page should include links to outside articles, blogs, official   announcements, high-ranked ITT threads, etc. It should be a window on the   highest-ranked Maemo time-sensitive content
* Integration with sub-sites and partner sites:
** Midgard vs Wiki vs gtkdoc vs ...
** Ask gronmayer to take site off-line, in favour of a really useful extras (we're getting there)
* Organisation: Existing content should be presented and linked to in a way that makes popular tasks easy, and unpopular tasks available through   linking, and also through search (site search and web search).
** We will reorganise information on tutorials, SDKs, and platform APIs so that the site user will encounter the most up-to-date information by default, and must dig a bit deeper to get out-of-date legacy information
** Move to OS2008/tutorials, OS2008/SDK reference, etc...
** Currently, OS2008, OS2007, ... docs are all mixed together in each category
** Link to HTML reference documentation in favour of PDF
** Promote useful wiki pages to http://maemo.org/documentation

We need to look at 3 things:

* Clean page layout for all portal pages - pages must bring you easily to the    content you're interested in, if you are in the most common use-cases
* Efficient search on website
* Web search indexing of Maemo content
* Ensure all outdated content is removed from the primary navigation paths of   users interested in common use-cases.

== Smoothing the introduction of new users to maemo.org ==

* The development section should be organized in a simple, clear and centralized way to beginners. The following information is important and should be presented to the newcomers immediately they enter the development section.
# Simple steps of getting started should be presented in a clear and definite way ,on a conspicuous area with color. for example:
## Sign up a maemo account (link to register page)
## Download and set up development environment.(link to detailed method page)
## Create hello world application, Package and Test(link to several typical and simple examples,and useful links to advanced docs should be included)
## Collaboration on maemo.org and Launch app on the download section (link to pages including usage of project homepage)
# Key features of maemo platform should be presented on the section page explicitly.
## Free to develop and launch applications.
## Powerful enough to create advanced applications.
## Flexibility in programming (Gtk+/C,Python,Qt and etc)
## Easy to port existing application.
# Wiki on frequent technical problems in programming(the how-tos part),and entry to developer's disscusion board(link to ITT's or a new one) to help newcomers to find solutions to difficulty and ask for help.
# All docs in a catalog with good classification for look up.
# Maemo's roadmap and history, technical news and announcement about maemo.
# Maemo app gallery and entry to experienced and recently active developers' tech blogs.</text>
    </revision>
  </page>
  <page>
    <title>Task:Improving maemo.org/Community</title>
    <id>919</id>
    <revision>
      <id>33307</id>
      <timestamp>2010-04-22T13:16:55Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>direct link</comment>
      <text xml:space="preserve">{{100Days agenda}}
{{task|completed}}

'''''Note 1:''' Possible additions to this page might be accentuating photos like [http://flickr.com/photos/thoughtfix/2869591803/in/set-72157607375406663/ this], [http://flickr.com/photos/thoughtfix/2870420742/in/set-72157607375406663/ this], or [http://flickr.com/photos/thoughtfix/2873394056/in/pool-maemosummit2008 this].''

'''''Note 2:''' I propose using a [http://jquery.com jQuery] plugin like [http://plugins.jquery.com/project/bt this] (BeautyTips) or [http://plugins.jquery.com/project/animatedcollapsiblediv this] (Animated Collapsible DIV) in order to better explain each of the links below. This would apply to the content linked to with &quot;additional info&quot; below.''

== The Maemo Community ==

Welcome to Maemo community. We are a global collaborative consisting of Internet Tablet users, professional software developers and hobbyists, Maemo Software (Nokia), and more. We are all passionate about open source software, improving the tablet user experience, and innovating mobile computing. Whether you’re a casual tablet user or a dyed-in-the-wool hacker, this is where you can join in the collaboration -- conversations, events, tools, and applications that can impact thousands of tablet users worldwide.

=== Experience Maemo ===

* '''Join the community''' ([[Getting involved|additional info]])
* '''Download tablet software''' ([[Extras|additional info]])
* '''See what others are developing &amp; contribute your own code''' ([[Getting started with Maemo Garage|additional info]])

===Get Help ===

* '''Use the wiki''' ([[maemo.org wiki:About|additional info]])
* '''Join a mailing list''' ([[Community mailing lists|additional info]])
* '''Chat with other tablet users''' ([[IRC|additional info]])

=== Make a Difference ===

* '''Contribute to the community''' ([[Getting involved|additional info]])
* '''Report bugs &amp; suggest new features''' ([[Karma|additional info]])
* '''Report security issues''' ([[Community/Security_Issues|additional info]])

=== Additional Conversations ===

* '''Read Maemo news''' ([[Community/News|additional info]])
* '''Read tablet users' blogs''' ([http://planet.maemo.org Planet Maemo])
* '''Visit Internet Tablet Talk''' ([http://talk.maemo.org Maemo Talk])
* '''Ask questions at Tablet Scene''' ([[Community/Internet_Tablet_Scene|additional info]])

== Page Layout Wireframe ==

'''Note:''' The colored boxes are nothing other than placeholders for what might be nice iconography (or even just bullet points). The text after each box is a link to an interim &quot;descriptor&quot; page. As you'll see, this is meant to look and function much like the [[Task:Improving_maemo.org/Development|Development page]].

[[Image:Maemo.org-community_wireframe.png|center|thumb|256px|Community page layout wireframe]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Improving maemo.org/Design requested</title>
    <id>1479</id>
    <revision>
      <id>34217</id>
      <timestamp>2010-05-11T08:22:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">This page will list all pages and items which need a design.

{| class=&quot;wikitable&quot;
! Page !! Comment !! Design screenshot
|-
| Support page || [[Task:Improving_maemo.org/Support]] Wireframe by Tim ||
|-
| Profile page || Page should include person widget box. [http://maemo.org/profile/view/qgil/ Example page current situation] ||
|-
| Planet || There were some comments about this, will look them up --[[User:xfade|xfade]] 14:25, 22 January 2009 (UTC) || [[Image:Planet_Maemo.png|100px]]
|-
| Downloads || Design is probably enough for now || [[Image:Download_v_02.png|100px]]
|}

[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Improving maemo.org/Development</title>
    <id>1250</id>
    <revision>
      <id>41546</id>
      <timestamp>2011-02-01T12:37:28Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Proposed structure for development portal */ better link</comment>
      <text xml:space="preserve">== Proposed structure for development portal ==

This is a proposal for an improved structure for http://maemo.org/development - see [[Talk:Task:Improving maemo.org/Development|the talk page]] for ongoing discussion related to this content.

There is some discussion on bugzilla at [https://bugs.maemo.org/show_bug.cgi?id=3178 bug #3178: Developer documentation portal needs revision]

Different developers coming to maemo.org need four different things - to get started with a Maemo development environment, to get tutorial-type documentation that will help them use it, to consult reference documentation for the platform's APIs, and to get help when they run into problems. 

So all of the things in the &quot;Development&quot; section can be split along these lines:

# &quot;Getting started&quot; or &quot;Developer downloads&quot; will include:
#* [http://maemo.org/development/sdks/maemo-4-1-diablo-sdk/ Instructions on downloading the SDK]
#* [http://maemo.org/maemo_release_documentation/maemo4.1.x/node4.html A guide to getting a Scratchbox environment up &amp; running]
#* Links to the [http://maemo.org/development/tools/ various useful tools] (and [[Documentation/devtools|more useful tools]]) &amp; [http://maemo.org/development/documentation/ide_integration/ Eclipse integration]
# &quot;Documentation&quot; or &quot;Knowledge base&quot; or whatever we want to call it will include:
#* [http://maemo.org/development/documentation/Quick%20Start%20Guide/ Quick Start Guide]
#* [http://maemo.org/maemo_release_documentation/maemo4.1.x/ The platform guide], including &quot;[http://maemo.org/maemo_release_documentation/maemo4.1.x/node7.html Getting started]&quot;, &quot;[http://maemo.org/maemo_release_documentation/maemo4.1.x/node13.html Porting an application]&quot;, and [http://maemo.org/maemo_release_documentation/maemo4.1.x/node6.html a guide to the components of the platform]
#* [https://garage.maemo.org/svn/maemoexamples/tags/maemo_4.1/ Code samples]
#* [http://maemo.org/development/training/ Training material] - [http://maemo.org/development/training/maemo_technology_overview_content/ technology overview], [http://maemo.org/development/training/maemo_getting_started_content/ getting started], [http://maemo.org/development/training/maemo_application_development_content/ application development] and [http://maemo.org/development/training/maemo_platform_development_content/ platform development]
#* Link to (and a description of) [http://garage.maemo.org/ the garage]
#* Links to relevant material in the wiki
#* Links to useful external resources &amp; articles, and kudos for upstream projects
#* A link to the relevant pages explaining how to promote an app in extras &amp; maemo.org/downloads.
#* A link to the [http://www.forum.nokia.com/main/platforms/maemo/ Maemo pages at Forum Nokia].
#* Note also the [http://maemo4mobile.garage.maemo.org/ Maemo for Symbian &amp; .Net developers] documentation.
#* '''See [[Talk:Task:Improving maemo.org/Development | Talk page]]''' [http://maemo.org/maemo_release_documentation/maemo4.1.x/node16.html Quality considerations]

# &quot;Reference&quot; will include:
#* [http://maemo.org/development/documentation/man_pages/ Man pages] - indexed and searchable
#* [http://maemo.org/development/documentation/apis/4-1/ API docs for the platform] - searchable!
# &quot;Get help&quot; will include:
#* Reference to the [https://maemo.org/mailman/listinfo/maemo-developers developers mailing list] (with an [http://maemo.org/community/maemo-developers/rss.xml RSS feed of latest threads])
#* Pointer to [http://maemo.org/community/irc/ IRC] (no need to link to the page - simply refer to the channel)
#* Relevant material from the wiki (with [http://wiki.maemo.org/index.php?title=Special:Recentchanges&amp;feed=rss an RSS feed] of latest changes)
#* A link to [http://bugs.maemo.org Bugzilla], with [https://bugs.maemo.org/page.cgi?id=bug-writing.html reporting guidelines] (and an RSS feed of recently (created/fixed/modified?) bugs)

The one thing I'm having some trouble with is figuring out where [http://maemo.org/development/sources/ Source code] will go (it is after all vital). I suspect that it goes better in a separate section, or in &quot;Developer downloads&quot;.

Note that not all of these things will be on the front page - the idea is to provide people with easily identifiable areas where they can find what they're looking for - any content on the portal page should reinforce the meaning of the categories, rather than be exhaustive.

=== Other ideas from brainstorm ===

During the brainstorm, the following points were proposed as priorities:

# Place references / howtos / tutorials onto one page so that developer does not need to click through several menus.
# Move outdated documentation away, but move older documentation that has not been updated for 4.x up, with a note &quot;not fully applicable for 4.x&quot;.
# Make it possible for logged-in developers to annotate any place in the documentation. Link to annotations from documentation.
# Switch to SB2. SB1 is difficult to install and stays insulated from the rest of developer's system, making development complicated.
# Provide an example of simple build environment *not* relying on AutoConf and its friends. A single includable makefile should suffice, when used with SB2.
# Clearly *say* in the SB readme that it is not possible to debug every application on the desktop, show how to test applications on the target device using SSH/SCP or some other means.
# Maybe provide a few simple stylesheets and JavaScript libs for creating quick iPhone-like web apps running in MicroB. This should be very light, very easy to use, and targeted to casual users.

Of these, the proposed structure addresses the first point. The second point will be a useful side-effect of this. In addition, I propose that we begin dating release- or time-sensitive information to aid with this filtering process, both for site editors and for visitors.

I do not believe that we should address the goals of allowing annotations to all developer pages, addressing Scratchbox issues, and providing sample stylesheets for MicroB within the scope of revising the developer page structure. I propose that bugs be opened for specific issues and that these be addressed separately at some future date.

''Related pages'':
* [[Objective:Co-production_of_official_%26_community_documentation]] + [https://bugs.maemo.org/show_bug.cgi?id=101 Use the wiki for developer documentation]

== Proposed wireframe ==

'''Or: Why Dave is not a Designer'''

Core ideas: Simple block structure with developer-oriented RSS feeds in the sidebar.

[[Image:Development_wireframe.png]]


== Design proposal ==

'''Or: Why Andre and Glaubert do graphical design'''

[[Image:DEVELOPMENT.png]]

[[Category:Community]]
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Improving maemo.org/Graphics</title>
    <id>1433</id>
    <revision>
      <id>42266</id>
      <timestamp>2011-03-01T11:13:41Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Page Design Status */ wikify image links</comment>
      <text xml:space="preserve">== Templates required for maemo.org ==

=== Member profile ===

We want 2 versions of a member profile badge: one with a small hackergochi and name, and maybe karma, for a usecase like in a news item, comment on a story/application, etc. and a second version for a stand-alone badge type thing, with a bigger photo + name + some details of the profile. The big version should fit nicely on a sidebar, or in a profile page.

The information needed for the small version will be the avatar, the real name or maemo.org username of the person, their karma rating and online status. Other decorations will be added depending on the application (whether the person has given the post a thumbs up or down, the rating the person has given an application, the date the comment was added, etc).

Current small version:

[[Image:GA_mini.png|Comment on application]]

Suggested information laid out (badly) by [[User:Dneary]]. The unshaded bits make up the generic template, the shaded bits are context-specific content (comments, ratings, thumbs up/down, date, ...):

[[Image:Small_user_profile_color.png|Comment on application]]

Proposed small version:

[[Image:Wide_person_template.png]]

Bigger version:

[[Image:Large-person-template.png]]

Bigger version(sidebar):

[[Image:Person&amp;App-Templates(sidebar) 03.png]]


For the large version of the profile template, there is some required information, and some optional information, that we could add to the template. The main use of the template will be to allow us to feature people from the community in the same way that we currently feature applications on the front page and the downloads page.

Required:
* Big avatar
* Name/user name
* Link to profile
* Online status
* Karma

Optional available information:

* Projects
* Interests
* Description
* Karma breakdown by category
* Joined since...

=== Small Application ===

This template will be used in small lists of applications, sorted by rating, popularity, freshness, or (when available) application karma.

'''Current:'''

Stars: [[Image:Maqii_stars.png|Top rated application]]

Popular: [[Image:Canola_popular.png|Popular application]]

Fresh: [[Image:Ecoach_fresh.png|Fresh application]]

=== Large application ===

Elements required in the application template are:
* Screenshot
* Downloads
* Popularity (karma/stars)
* Application name
* Short application description

Other elements which might be useful for the application profile are something like a [http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001OR sparkline] showing download trends, or a percentile rating of the application according to application karma, popularity, or whatever. To give you an idea what I mean by a sparkline, here's an example: [[Image:Sparkline.png|Simple sparkline]]

This template will be used on the new front page, as well as in the downloads page, to link to specific applications. A nice generic template will allow for this to be reused even more widely later, if done right.

[[Image:Aisleriot_pearl.png|Large application profile]]

Application Profile[[Image:Wide_app.png]]

== Graphics resources required for maemo.org ==

The following are icon files required for the new maemo.org.

There are also image file resources which will need their backgrounds changed for the new site. A list of these should go here.

{| class=&quot;wikitable&quot;
! Name !! Current !! New
|-
| Thumbs down on  || http://static.maemo.org/net.nemein.favourites/bury.png|| [[Image:Bad_over.png]]
|-
| Thumbs down off || http://static.maemo.org/net.nemein.favourites/not-buried.png|| [[Image:Bad_Normal.png]]
|-
| Thumbs down rollover || http://static.maemo.org/net.nemein.favourites/not-buried-hover.png|| [[Image:Bad_rollover.png]]
|-
| Heart on || http://static.maemo.org/net.nemein.favourites/favorite.png|| [[Image:Good_over.png]]
|-
| Heart off || http://static.maemo.org/net.nemein.favourites/not-favorite.png || [[Image:Good_Normal.png]]
|-
| Heart rollover || http://static.maemo.org/net.nemein.favourites/not-favorite-hover.png|| [[Image:Good_rollover.png]]
|-
| Star on || http://static.maemo.org/style_maemo2007/orange_star.gif || [[Image:Star_Over.png]]
|-
| Star off || http://static.maemo.org/style_maemo2007/grey_star.gif || [[Image:Star_Normal.png]]
|-
| Star Rollover || || [[Image:Star_rollover.png]]
|-
| List Bullet 1 || See front page ||
|-
| List Bullet 2 || http://static.maemo.org/style_maemo2007/arrow.png  ||[[Image:Bullet.png]]
|-
| Online || http://static.maemo.org/net.nehmer.account/online.png || [[Image:on.png]]
|-
| Offline || http://static.maemo.org/net.nehmer.account/offline.png || [[Image:off.png]]
|-
| Status on/off Rollover || || [[Image:Status_rollover.png]]
|-
| Default buddy icon || None? || [[Image:DefaultAvatarProfile.png]]
|-
| Default application || http://static.maemo.org/style_maemo2007/no-screenshot.png || [[Image:DefaltApplication.png]]
|-
| Add new application || http://static.maemo.org/style_maemo2007/add-application.gif || [[Image:AddApplication.png]]
|-
| Click to install || http://static.maemo.org/style_maemo2007/install_button_small.png || [[Image:ClickToInstall.png]]
|-
| Missing .install ||  || [[Image:MissingInstall.png]]
|-
| OS2006 on || http://static.maemo.org/style_maemo2007/os2006-green.gif ||[[Image:OS2006_over.png]]
|-
| OS2006 off || http://static.maemo.org/style_maemo2007/os2006-grey.gif ||[[Image:OS2006_normal.png]]
|-
| OS2006 Rollover ||  ||[[Image:OS2006_rollover.png]]
|-
| OS2007 on || http://static.maemo.org/style_maemo2007/os2007-green.gif ||[[Image:OS2007_Over.png]]
|-
| OS2007 off || http://static.maemo.org/style_maemo2007/os2007-grey.gif ||[[Image:OS2007_Normal.png]]
|-
| OS2007 Rollover||  ||[[Image:OS2007_rollover.png]]
|-
| OS2008 on || http://static.maemo.org/style_maemo2007/os2008-green.gif ||[[Image:OS2008_Over.png ]]
|-
| OS2008 off || http://static.maemo.org/style_maemo2007/os2008-grey.gif ||[[Image:OS2008_Normal.png]]
|-
| OS2008 Rollover ||  ||[[Image:OS2008_rollover.png]]
|-
| Maemo 5 on || ||[[Image:Maemo5_Over.png]]
|-
| Maemo 5 off || ||[[Image:Maemo5_Normal.png]]
|-
| Maemo 5 Rollover || ||[[Image:Maemo5_rollover.png]]
|-
| Maemo 4 on || ||[[Image:Maemo4_Over.png]]
|-
| Maemo 4 off || ||[[Image:Maemo4_Normal.png]]
|-
| Maemo 4 Rollover || ||[[Image:Maemo4_rollover.png]]
|-
| Maemo 3 on || ||[[Image:Maemo3_Over.png]]
|-
| Maemo 3 off || ||[[Image:Maemo3_Normal.png]]
|-
| Maemo 3 Rollover || ||[[Image:Maemo3_rollover.png]]
|-
| Hot overlay || || [[Image:Hot_overlay.png]]
|-
| Fresh overlay || || [[Image:Fresh_overlay.png]]
|-
| PC on || http://static.maemo.org/style_maemo2007/pc-green.gif || [[Image:PC_Over.png]]
|-
| PC off || http://static.maemo.org/style_maemo2007/pc-grey.gif || [[Image:PC_Normal.png]]
|-
| PC Rollover ||  || [[Image:PC_Over_rollover.png]]
|-
| Default avatar || http://static.maemo.org/style_maemo2007/hackergotchi-notfound.png || [[Image:Avatar_Planet.png]]
|-
| Delete Normal||  ||[[Image:Delete_Normal.png]]
|-
| Delete Over|| ||[[Image:Delete_over.png]]
|-
| Delete Rollover|| ||[[Image:Delete_rollover.png]]
|-
| Do not Abuse || ||[[Image:notAbuse_normal.png]]
|-
| Do not Abuse Over||  ||[[Image:notAbuse_over.png]]
|-
| Do not Abuse Rollover||  ||[[Image:NotAbuse_rollover.png]]
|-
| LittleBuddy Normal || ||[[Image:LittleBuddy_Normal.png]]
|-
| LittleBuddy Over||  ||[[Image:LittleBuddy_over.png]]
|-
| LittleBuddy Rollover||  ||[[Image:LittleBuddy_rollover.png]]
|-
| Bar Normal ||  ||[[Image:Bar_Normal.png]]
|-
| Bar Over || ||[[Image:Bar_Over.png]]
|-
| Bar Rollover ||  ||[[Image:Bar_rollover.png]]
|}


== Page Design Status ==

These are the links which we have designed already. If you need any page to be designed, please feel free to put its name here:

{| class=&quot;wikitable&quot;
! Page name !! Wireframe or link reference !!  Designed page Link

|-
| Login ||  || [[:Image:Login_page.png]]
|-
| Profile List ||  || [[:Image:Profile_List.png]]
|}
[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Improving maemo.org/Support</title>
    <id>1283</id>
    <revision>
      <id>27872</id>
      <timestamp>2010-02-01T09:51:51Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">{{100Days agenda}}
{{task|completed}}

== Getting help at maemo.org ==

One of the core use-cases identified in [[Task:Improving_maemo.org]] is:
* A tablet user has a problem which they would like to resolve. 

To address this usecase, I have proposed a link to a &quot;Get help&quot; page on the front page. The page linked to should include the following:

== Main Content &quot;boxes&quot; == 
* Links to forums where the user can ask for help, including:
** Internet Tablet Talk
** Mailing lists
** IRC
** Bugzilla as a bug forum? &quot;Browse bug reports&quot;?
* Links to documentation sources which might be useful, including
** HOWTOs
** Relevant pages in the wiki such as [[:Category:Users]] or [[:Category:HowTo]]
** Troubleshooting section of the guide
** Official user documentation
** FAQs
* A link to Bugzilla - &quot;Report a bug&quot;

== Main Content &quot;other&quot; ==
* Ultimately, this page should contain a large (prominent) search box that can search wiki/Bugzilla/forums/mailing lists and display most applicable results below. (See the [http://support.mozilla.com/en-US/kb/Firefox+Support+Home+Page Firefox Support page].)
** In lieu of this type of functionality, a search box that searches Bugzilla would be preferable. 
* Likewise, this page should have a dynamic element too - say the recent additions to the wiki, most recently created and resolved bugs (or the most popular bugs) or the most recent mails from the Maemo Users mailing list.
** This could be the initial &quot;result&quot; that appears on the page before a search is performed.
* Dynamic content related to support forums:
** Recent posts feed from maemo-users
** Latest threads feed from itT
** Recently opened bugs list from Bugzilla
** Recently closed bugs from Bugzilla?
** Latest changes feed from the wiki

== Page Layout Wireframe ==

'''Note:''' This still needs some work.

[[Image:Maemo.org-support_wireframe.png|center|thumb|256px|Support page layout wireframe]]

[[Image:Support.png|center|thumb|256px|Support page design]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Improving maemo.org/community</title>
    <id>1299</id>
    <revision>
      <id>8078</id>
      <timestamp>2008-10-28T20:11:19Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Task:Improving maemo.org/community]] moved to [[Task:Improving maemo.org/Community]]</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Improving maemo.org/Community]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Improving maemo.org/proposal</title>
    <id>1200</id>
    <revision>
      <id>32598</id>
      <timestamp>2010-04-13T13:09:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify links</comment>
      <text xml:space="preserve">= Improving maemo.org =

== Goals ==

We will:

* Reorganise existing content to allow most common use-cases to be fulfilled    easily
* Create new content where appropriate to fulfill use-cases
* Remove or move information which does not contribute to the most common  use-cases
* Make the site visually attractive and fresh, to match the maemo.org visuals
* Make different maemo.org sites visually consistent
* Ensure the site works well on the tablets

== Non-goals ==

We will not:
* Re-write all content
* Move away from Midgard
* Load the site with heavy content such as flash (see tablet goal).

== Use cases ==

The following are the core use-cases to be addressed by the website rework:

# A new tablet owner wants to install some software on his tablet. He arrives    at http://maemo.org/downloads after a web search for &quot;Nokia tablet software    download&quot;, and navigating through the #6 link. (NOTE: search for &quot;Nokia     N810 software download&quot;, the download page on maemo.org is not on the first    10 pages).
# An interested application developer comes to maemo.org to learn how to    write a new application for the tablet.
# An existing application developer comes to maemo.org looking for    information on modifying his application for Maemo.
# A Maemo Community member is looking for the latest news from around the    world of Maemo
# An interested user wants to know how he can help make Maemo better
# A community member wants to know what the future plans for Maemo are, and    wants to suggest features and priorities
# A tablet user has a problem which they would like to resolve.
# A site maintainer or community member wants to create a new news item, or    promote new important content so that it gets more attention.

== Current maemo.org website ==

For reference.

Content:

* Introduction
* Dowloads
* Community
* Development
* News

Sub-menu: 
** Documentation -&gt; Development/Documentation
** Tutorials -&gt; Development/Documentation/Tutorials
** Roadmap -&gt; Development/Roadmap
** Lists -&gt; Community/mailing-lists.html
** Bugzilla -&gt; http://maemo.org/bugzilla
** Wiki -&gt; [[Main Page|http://wiki.maemo.org]]
** IRC -&gt; Community/IRC
** SDK -&gt; Development/SDKs
** Repositories -&gt; community/wiki/applicationrepositories

=== Disparate websites ===

* http://maemo.org
* http://bugs.maemo.org
* [[Main Page|http://wiki.maemo.org]]
* http://planet.maemo.org
* http://garage.maemo.org
* http://www.internettablettalk.com/
* http://maemo.org/downloads
* http://europe.nokia.com/A4579470

Plus: External articles, reviews, blogs, press, tutorials, FAQs, wikis, ...

== Proposed steps for revamp ==

1. Pages we need to revise substantially:

* Front page - see [[Task:Improving_maemo.org#Maemo.org_Homepage_refresh]] and [http://lists.maemo.org/pipermail/maemo-community/2008-September/000955.html this mailing list discussion].
* Development - see [[Task:Improving_maemo.org/Development]]
* Community - see [[Task:Improving_maemo.org/community]]

We don't need to substantially revise the Intro, News or Downloads pages.

The front page will primarily be portal pages to help get people where they want to go, but also to let people get a flavour of the Maemo community.

The community page will show the Maemo community in all its glory - covering communication, people, projects, what's new, what's cool, what we're up to. The page will be almost entirely dynamic and will reflect the current state of Maemo.

The Development page should respond to four different needs - getting software development kits and images for development, getting general introductions, tutorials, overviews of the platform and other general information, exposing searchable reference documents for the Maemo platform APIs, and finally (but very importantly, giving a visitor a map of the developer-focused communication forums that exist in Maemo, including itT, mailing lists, IRC and the wiki.
 
2. Theme:

We need a refreshed look &amp; theme corresponding to maemo.org visual identity
change.

Proposal: Open proposal for community generated mock-ups, and one or two Nokia
sponsored mock-ups from INdT.

INdT have started work on at least one proposal, which will be forthcoming very soon, and which will be influenced by the content of the maemo.org front page.

3. Content Organisation

There are two aspects: content and its organisation.

* Content: Need to evaluate existing content for its usefulness for common    use-cases. Need to ensure it is obvious when content is out-dated/deprecated.
** Delete old wiki content completely - it is polluting Google    juice, and confusing users who see it as new information
** News page should include links to outside articles, blogs, official   announcements, high-ranked ITT threads, etc. It should be a window on the   highest-ranked Maemo time-sensitive content
* Sub-sites:
** Midgard vs Wiki vs gtkdoc vs ...
** Ask gronmayer to take site off-line, in favour of a really useful extras (we're getting there)
* Organisation: Existing content should be presented and linked to in a way   that makes popular tasks easy, and unpopular tasks available through   linking, and also through search (site search and web search).
** We will reorganise information on tutorials, SDKs, and platform APIs so that the site user will encounter the most up-to-date information by default, and must dig a bit deeper to get out-of-date legacy information
** Link to HTML reference documentation in favour of PDF
** Promote useful wiki pages to http://maemo.org/documentation

We need to look at 3 things:

* Clean page layout for all portal pages - pages must bring you easily to the    content you're interested in, if you are in the most common use-cases
* Efficient search on website
* Web search indexing of Maemo content
* Ensure all outdated content is removed from the primary navigation paths of   users interested in common use-cases.

=== Proposal ===

* Proposals for information to be given place of honour on the  maemo.org front page, and on each of the sub-portals, in particular documentation, news, community (see proposal by timsamoff at [[Task:Improving maemo.org/Community]]) but also review intro in light of redesign.
* Proposal for hierarchy which makes most useful information easily available

Proposals due for October 1st.

Suggested items for proposals:

* Re-organise documentation by release rather than by purpose:
** OS2008/tutorials, OS2008/SDK reference, etc...
** Currently, OS2008, OS2007, ... docs are all mixed together in each category
** Makes it easier to archive outdated information when they're done this way

I'm unsure what to do with outside content. The ideal would be to have a kind
of call-back system, where we link to it from the most appropriate place in
maemo.org, but this isn't a maintainable solution right now.

3. Marrying content and style

* Ruthlessly reduce the number of words on portal pages
* Need graphics and navigation structure which are ergonomic and attractive
* Suggest that web designers behind the themes must be involved at this   stage. A first draft of the new portal pages can be part of the new   theme proposals (thus the deadline for themes being later than content   organisations.


Themes to be evaluated by a group of community members named by the council,
winner to be chosen from mock-ups November 1st.

Deadline for accepting both theme and content re-organisation: November 1st.




Once we have a theme, and an organisation of the existing content which makes
sense, we must execute, with the participation of the web design &amp; graphics
team and copy editors, to ensure that the portal sites fulfill their goal,
while remaining manageable over time.

The website re-work should be completed by December 1st.


[[Category:Community]]
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Improving the Application manager</title>
    <id>312</id>
    <revision>
      <id>43453</id>
      <timestamp>2011-05-13T21:38:55Z</timestamp>
      <contributor>
        <username>mrsellout</username>
        <id>3603</id>
      </contributor>
      <minor/>
      <comment>Remove advertising links (&quot;(like [http://www.essaymill.com/| essay search] [http://www.essaymill.com essay search] [http://www.bestessayhelp.com:essay help] [http://www.bestessayhelp.com/buy-research)</comment>
      <text xml:space="preserve">[[Image:Application manager icon.png|left]]As one of the foremost applications in a new user's experience of Maemo, Application manager needs to be one of the platform's best (perhaps only surpassed by the browser and email client). As it stands, though, it is still in need of improvement in a lot of areas. Some of these improvements are small changes (like allowing the repository list to be refreshed from the main view), and some of them are quite large (like the category view overhaul), but the end result should be a much better and more usable Application manager.



== Goals for Fremantle ==

Until we get more specifics on the new UI for Fremantle, let's set out some general features we'd like to see implemented.

[[Image:Tag-search-mockup.png|thumb|250px|Mock-up of a search]]
=== Tracker and debtags ===

Tracker being included in Fremantle offers some interesting opportunities to use metadata. debtags were proposed as a potential solution to the [[Task:Package_categories|package categories]] issue, but they likely offer more potential by providing metadata to be indexed for searching with Tracker. Say I'm looking to find a web browser. Normally, I'd either know the list of available browsers for Maemo, know which one I wanted and go straight for it, or I'd tap on the &quot;Internet &amp; Network&quot; and find them there. Unfortunately, things like Boingo, email clients, ftp clients and ssh are also going to be in that list, and picking names like &quot;MicroB&quot;, &quot;Fennec&quot; or &quot;Tear&quot; out as web browsers without looking at the descriptions is impossible. With Tracker (and usefully complete and accurate tagging), I can simply type &quot;web browser&quot; into a search field to pull up a list of browsers.

[[Image:Rating-view-mockup.png|thumb|left|250px|Mock-up of the package view with ratings]]
=== Integrations with Downloads ===

[http://downloads.maemo.org Downloads] offers a great place to get more detailed information about packages (including detailed descriptions, change logs, and screenshots), and to comment and provide feedback. Users should be able to enter their maemo.org credentials into the Application Manager, then comment on and rate packages directly from the it. This will both increase the amount of feedback received by packages in Downloads and increase the amount of data available to users browsing for packages.

Data from Downloads should be used to provide &quot;Fresh&quot;, &quot;Popular&quot;, and &quot;Highest rated&quot; lists on the main view.

[[Image:Application-view-mockup.png|thumb|250px|Mock-up of the application view]]
=== Revised application info panel ===

The package info dialog is too limited in the current Application Manager, a fullscreen view should be added that includes several tabs containing a description, screenshots, comments and ratings, as well as maintainer, section, repository, version, size, and dependency information.

=== Find as you type ===

Most modern operating systems support find as you type. When presented with a list of items, a user can begin typing the name of the item they want and it will jump right to it. This wasn't feasible in Maemo before the N810's hardware keyboard, but with the hardware keyboard it's something that many users expect.

== Main view ==
The main view is a user's portal to Maemo software, it's largely fine right now, but not very interesting. It needs a way to draw in new users and get them interested in the software available to them.

[[Image:Main-view-mockup.png|thumb|250px|Mock-up of the main view]]
=== New buttons ===
One way to make the view more interesting is to add a few buttons over on the right hand side (where the big Application manager icon is right now). Something like, Featured applications (taken from Downloads), Popular applications (also from Downloads), and New applications (since last repository refresh, or maybe new in the last week—the specifics of this one will need consideration). As most of the Featured and Popular applications will reside in Extras (and Extras ships disabled), this would serve as a nice way to introduce new users to Extras by offering to enable it for them when they go to install an application from these lists. 
:* [https://bugs.maemo.org/show_bug.cgi?id=3279 Bug #3279] - Streamlining user access to the Extras repository

=== Button bar ===
The button bar is another small problem with the main view. Right now, all the icons are grayed out and useless. At the very least, the repository refresh button should be enabled here. The search button could be enabled to perform a global search (with filters for available/installed applications), the install button could be replaced with the repository list, and the info button could show the logs.

== Category view ==
The category view is really the worst part of Application manager right now. It's so bad, in fact, that there really isn't much point in browsing under anything but &quot;All&quot;. This is a combination of two issues, the poor state of Maemo packaging consistency, and a straight-up badly put together category view. The packaging issue is separate from Application manager, and will hopefully be addressed somewhat by the new packaging guidelines.

[[Image:Application manager grid-view mockup.jpg|thumb|250px|Mock-up of the grid-view]]
=== Grid view ===
The current category view has an awful lot of wasted whitespace. My initial reaction here was that a grid view in place of a the current list-view would make better use of space and improve the thumb-ability (ordering is badly messed-up in my mock-up—it should be left-to-right rather than top-to-bottom). The number of packages in each category should be noted parenthetically next to the category name (shown in the tree-view mock-up).

This view does have a few downfalls, though. It doesn't make it easy to see what's in any particular category, so if you're searching for something or just browsing around, you will be jumping between the category view and application list view quite a bit. Which is expensive in taps and rendering. Also, longer category names may cause rendering issues ('''Communications''' becoming '''Communicat...''' is just plain bad).

[[Image:Application manager tree-view mockup.jpg|left|thumb|250px|Mock-up of the tree-view]]
=== Tree view ===
The grid-view is probably the most straightforward and immediate solution, but some extra options wouldn't hurt. Some sort of tree view (while mildly ungainly with such limited screen real estate) could give a nice overview alternative to &quot;All&quot; while reducing the number of screens the user needs to scroll through. Show all the categories as collapsible branches, and indicate the number of packages in each category parenthetically next to the category name. The user can collapse or expand a branch by tapping on the category name, or using the dpad up/down to scroll to the desired category and the left/right to collapse or expand it.

[[Image:Application manager column-view mockup.jpg|thumb|250px|Mock-up of the column-view]]
=== Column view ===
Finally a column view could be another useful alternative for reducing the number of screens to tap through and provide a better overview. Put a column of categories on the left (again, with the number of packages in each category indicated parenthetically) and display the packages in that category in the right column. Basically, the same behavior as the File manager.

Each of these views has their own advantages and disadvantages, as such, a single view shouldn't be picked at the exclusion of all others, rather, all views could be implemented and a switch (either in the menu, or on the button bar, and perhaps as shortcuts for N810 users) added to toggle between them depending on user-preference on use-case.

== Application list ==
The application list is where most of the user's time will be spent—browsing and installing/removing/updating applications and packages—and is arguably the most important area of the Application manager. As it stands, most of what's wrong with the application list is either technical (e.g., the irritating list refresh) or related to the various dialogs related to the list (e.g., the info dialog), and the basic UI of the application list is really quite fine.
* Change to Modest's nice, big, thumbable scroll bars. Another option would be to do away with scroll bars and have kinetic thumb-scrolling.
* Columns should be sortable by tapping their names, as well as from the menu. It should also be possible to resize them.
* List refresh needs to be somehow sped up on completely eliminated. This is much better in Diablo, as it doesn't refresh whenever you look at it funny, but still a problem.
** Destroying and redrawing the list is annoying, even if it does now remember your current location. I'd prefer individual rows to be removed (need to see how slow this would be).
* Pressing a key (N810) should jump the list to the first item named with that letter (e.g. press &quot;v&quot; jumps/scrolls the list to the first package called &quot;v.....&quot;)
* We should look at the possibility of allow multiple install/removes. I.e. we could create a &quot;Mark for Installation&quot; button on the highlighted row, then use the &quot;Install&quot; button in the toolbar as &quot;Install Marked Packages&quot;. Likewise for removing packages. This would save quite a lot of time for people who want to install/remove more than one thing.
* If there are problems with the installation (e.g. unmet dependencies), visually indicate it instead of letting the user attempt only to be told he can't two dialogs later.  Have a validate button if this will take time to figure out.
* If the package is not going to be backed up (e.g. non-user in red-pill), or might involve other differences from how a normal user package is installed and metadata stored, indicate that on this screen or the install ok/cancel dialog.
* (Install/Upgrade) Have a way of downloading the debs to the memory card and don't delete them when cleaning (for restore purposes, e.g. reflash to avoid downloading everything again).
* (Install/Upgrade) For batch upgrades or installs, have a &quot;continue on any error&quot; option instead of having to say continue on every package.  Perhaps have something to indicate it will prompt and install all non-prompting first.

=== Info dialog ===
What the information dialog suffers from is a bad case of the scrollies. Practically every tab for almost every package presents the user with a horizontal scroll bar. This should really never happen for a native widget.

Or of both of these things will reduce the occurrence of the horizontal scroll bar:
* The horizontal width of the info dialog should be expanded slightly to contain more information (there is a lot of additional room available in fullscreen).
* The information being displayed should be intelligently soft-wrapped and/or slightly reformatted to fit into the dialog.

[[Image:Application manager summary mock-up.png|thumb|250px|Mock-up of the summary tab]]
==== Summary ====
The summary tab is mostly OK. Adding a &quot;Repository&quot; item to indicate which repository a package is in would be useful (especially for identifying Extras and Extras-devel packages). The largest problem is the short description that doesn't get soft-wrapped. Soft-wrapping this description would eliminate the horizontal scrolling in most cases for the summary tab.

[[Image:Application manager description mock-up.png|thumb|left|250px|Mock-up of the description tab]]
==== Description ====
The description field also needs soft-wrapping to make some descriptions fit. The problem here is that many descriptions are already hard-wrapped, which might result in ugly half-soft/half-hard–wrapped text. Some simple de-wrapping (e.g. just removing all newlines that aren't followed by a blank line) may already result in a pleasing line wrap. This may need to be addressed [https://maemo.org/forrest-images/pdf/maemo-policy.pdf packaging-side].

[[Image:Application manager installing mock-up.png|thumb|250px|Mock-up of the installing tab]]

==== Installing/Uninstalling/Upgrading/Problems ====
This tab is a particularly bad offender, as the content is a known value—we know the type of information that appears here and we can predict how it will be formatted. The first and simplest solution is to take all of the packages under each heading and aligned them with the left side of the dialog. Most of the problems crop up from having such a huge amount of whitespace to the left of the package lists, so bringing these lists down a line and over to the left would eliminate a lot of horizontal scrolling. The headings (e.g., &quot;Application packages missing:&quot;) will need to be offset from the text somehow, too.
[[Category:Community]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Integrate Mer into Garage Autobuilder</title>
    <id>2032</id>
    <revision>
      <id>40086</id>
      <timestamp>2010-11-12T14:51:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{mer}}</comment>
      <text xml:space="preserve">{{mer}}

This proposal arises from the CPH weekend.

The intention is that when an application is submitted to the Garage Autobuilder it is also submitted to the OBS build system.

This proposal is not finished yet.
[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Karma details</title>
    <id>3807</id>
    <revision>
      <id>32694</id>
      <timestamp>2010-04-14T14:07:44Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>{{task|accepted}}</comment>
      <text xml:space="preserve">{{task|accepted}}

We show the karma points break down list on each profile page. An [http://maemo.org/profile/view/feri example] is shown here:

[[Image:Karma_details.png|border|600px]]

The idea here is to provide more information on the work each particular user has been doing for earning the points.

So each &quot;karma bar&quot; on the page would be basically a link that leads to an aggregated list of the user activities. 

For example the &quot;Blog&quot; bar could link to a page where we show all the posts that Planet Maemo has aggregated from the person. 

Similarly the &quot;Bugzilla&quot; bars would lead to pages, where Bugzilla shows all the bugs this user has been fixed, or reported...</text>
    </revision>
  </page>
  <page>
    <title>Task:Karma for applications</title>
    <id>1681</id>
    <revision>
      <id>13028</id>
      <timestamp>2009-05-05T08:50:37Z</timestamp>
      <contributor>
        <username>bergie</username>
        <id>260</id>
      </contributor>
      <text xml:space="preserve">{{task|ongoing}}

Application karma seeks to provide plausible &quot;score number&quot; for each application in the Maemo application catalog.

The application karma will follow a pattern familiar from Maemo's user karma (see http://maemo.org/profile/list/ and http://maemo.org/profile/view/bergie/), utilizing various sources of information about the application to calculate its activity and importance.

== Goals ==

* Provide a simple, unified way for users and developers to judge an application's quality.
* Provide a distributed [[Extras repository process definition|quality assurance]] system for handling package promotion.
* Provide a fast-updating list of &quot;currently hot&quot; applications
* Provide a way to rate applications remotely

== Metrics for judging &quot;quality&quot; ==

These are calculated using information inside maemo.org Midgard database:

* Number of downloads
* Number of ratings
* Average rating
* Frequency of updates
* Number of releases available
* Number of OS versions supported

As well as from outside it:

* Bug activity (in Bugzilla)
* Freshmeat.net stats (when the new Freshmeat [http://help.freshmeat.net/discussions/questions/39-where-are-the-rdf-files-from-the-backend-directory#comment_120399 reimplements their APIs])
* Blog mentions (via Technorati, using &quot;unixname&quot; as tag)
* Screenshots uploaded (via [http://www.flickr.com/services/api/flickr.photos.search.html Flickr], using &quot;unixname&quot; as tag)
* Number of contributors in Garage

All karma items are counted once per day, and stored so that the development of application karma can be followed on a graph. The total karma of an application will be available in the application's [http://www.midgard-project.org/documentation/mgdschema-metadata-object/ metadata.score].

== Counting currently &quot;hot&quot; applications ==

To make a dynamic listing of applications that are &quot;hot right now&quot;, we need to store some additional download statistics per application:

* Total amount of downloads
* Average downloads per day during last week
* Yesterday's downloads

These can then be used to calculate whether an application is getting more downloads on a given day than usual, meaning that it is &quot;currently hot&quot;.

This should be possible to count via:

current karma = (yesterday's karma - age modifier) + (total download count - yesterdays downloadcount - lastweeks daily average)

== Remote rating of applications ==

Maemo applications will be featured in other services outside the regular Maemo.org website scope, including the application manager in the device itself.

To support rating applications through these, we should implement an API for rating and commenting applications remotely.

The API could be modeled after [http://web.archive.org/web/20060203035137/http://wellformedweb.org/story/9 CommentsApi].</text>
    </revision>
  </page>
  <page>
    <title>Task:Kill the old wiki</title>
    <id>1248</id>
    <revision>
      <id>8489</id>
      <timestamp>2008-11-04T13:55:40Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Category:Midgard wiki */</comment>
      <text xml:space="preserve">{{task|completed}}

The [http://maemo.org/community/wiki/wikireorg/ old midgard wiki] is causing trouble by cluttering up google results, archiving deprecated information, being an uneditable ''wiki'', and generally being useless. It needs to die.

== Moving ==

Most of the existing useful articles have already been moved, but there are a few salvageable articles still remaining that weren't moved because the midgard was originally going to stick around as an archive. Since that is causing way more trouble than it's worth, more articles (not many) are being moved.

*http://maemo.org/community/wiki/applicationmanagerredpillmode/
*http://maemo.org/community/wiki/lithiumionbatteryusage/
*http://maemo.org/community/wiki/rdmode/

== Redirects ==

Since it's a bad plan to break the web and the midgard wiki is going to be deleted, some of its useful URLs should be redirected to their new locations.

*http://maemo.org/community/wiki/howto_flashlatestnokiaimagewithlinux/
** http://wiki.maemo.org/Updating_the_tablet_firmware (currently goes to [[Main Page]])
*http://maemo.org/community/wiki/howto_flashlatestnokiaimagewithmacosx/
** http://wiki.maemo.org/Updating_the_tablet_firmware (currently goes to [[Main Page]])
*http://maemo.org/community/wiki/howto_easily_boot_from_mmc_card/
** http://wiki.maemo.org/Booting_from_a_flash_card
*http://maemo.org/community/wiki/usbnetworking/
** http://wiki.maemo.org/USB_networking
*http://maemo.org/community/wiki/howdoibecomeroot/
** http://wiki.maemo.org/Root_access
*http://maemo.org/community/wiki/howto_easily_becomeroot/
** http://wiki.maemo.org/Root_access
*http://maemo.org/community/wiki/videoencoding/
** http://wiki.maemo.org/Video_encoding
*http://maemo.org/community/wiki/dspprogramming/
** http://wiki.maemo.org/Programming_the_DSP
*http://maemo.org/community/wiki/wifipsm/
** http://wiki.maemo.org/Wifi_Power_Saving_Mode_(PSM)
*http://maemo.org/community/wiki/questionsfornokia/
** http://wiki.maemo.org/Questions_for_Nokia
*http://maemo.org/community/wiki/settingupnfs/
** http://wiki.maemo.org/Setting_up_NFS
*http://maemo.org/community/wiki/projectmailinglists/
** http://wiki.maemo.org/Community_mailing_lists
*http://maemo.org/community/wiki/lithiumionbatteryusage/
** http://wiki.maemo.org/Batteries
*http://maemo.org/community/wiki/rdmode/
** http://wiki.maemo.org/R&amp;D_mode
*http://maemo.org/community/wiki/applicationmanagerredpillmode/
** http://wiki.maemo.org/Red_Pill_mode
*http://maemo.org/community/wiki/howto-bluetoothnetworking/
**http://wiki.maemo.org/Bluetooth

== [[:Category:Midgard wiki]] ==

The following come from the [[:Category:Midgard wiki | Midgard wiki category]]

All of the following old wiki links, with the exception of dspprogramming and settingupnfs, get redirected to [[Main Page]].

*http://maemo.org/community/wiki/howtoaccesswindowscifs/
**http://wiki.maemo.org/Accessing_Windows_CIFS
*http://maemo.org/community/wiki/bluetoothdun/
*http://maemo.org/community/wiki/bluetoothnetworkingandconnectionmanager/
**http://wiki.maemo.org/Bluetooth_networking
*http://maemo.org/community/wiki/maemowithjhbuild/
**http://wiki.maemo.org/Building_maemo_with_jhbuild
*http://maemo.org/community/wiki/gamedevelopment/
**http://wiki.maemo.org/Game_development
*http://maemo.org/community/wiki/howtogetmediacontentontoyourtablet/
**http://wiki.maemo.org/Getting_media_content_onto_your_tablet
*http://maemo.org/community/wiki/maemogaragestartup/
**http://wiki.maemo.org/Getting_started_with_Maemo_Garage
*http://maemo.org/community/wiki/javalanguage/
**http://wiki.maemo.org/Java
*http://maemo.org/community/wiki/mono/
**http://wiki.maemo.org/Mono
*http://maemo.org/community/wiki/mydocs/
**http://wiki.maemo.org/MyDocs_folder
*http://maemo.org/community/wiki/fmradioprogramming/
**http://wiki.maemo.org/Programming_FM_radio
*http://maemo.org/community/wiki/dspprogramming/
**http://wiki.maemo.org/Programming_the_DSP
*http://maemo.org/community/wiki/packagebuildingwithoutlinuxusingpypackager/
**http://wiki.maemo.org/PyPackager
*http://maemo.org/community/wiki/realvideostreams/
**http://wiki.maemo.org/Real_Video_streams
*http://maemo.org/community/wiki/reportingrebootissues/
**http://wiki.maemo.org/Reporting_reboot_issues
*http://maemo.org/community/wiki/settingupnfs/
**http://wiki.maemo.org/Setting_up_NFS
*http://maemo.org/community/wiki/howtostreamvideo/
**http://wiki.maemo.org/Streaming_video_from_built-in_webcam
*http://maemo.org/community/wiki/subversionrepository/
**http://wiki.maemo.org/Subversion
*http://maemo.org/community/wiki/howto_usetouchscreenpressuredata/
**http://wiki.maemo.org/Using_touch_screen_pressure_data
*http://maemo.org/community/wiki/x11extensiontutorial/
**http://wiki.maemo.org/X11_Extension_tutorial


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Task:MMS</title>
    <id>2486</id>
    <revision>
      <id>41470</id>
      <timestamp>2011-01-27T15:46:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>direct N900 link</comment>
      <text xml:space="preserve">The aim of this page is to list potential obstacles and solutions in regards to implementing MMS in Maemo 5 ”[[Open development/Maemo roadmap/Fremantle|Fremantle]]” on the [[Nokia N900|N900]].

== Use case ==
While this has been discussed much back and forth both on Talk and on #maemo, here are some points why MMS should be implemeneted:
* Quickly sending private pictures to someone.
* While most users tend to be able to receive MMS, there's a lot few with push e-mail on their phones atm (need citation, but this is what's come up in discussion; see [[Mms_implemention_conversation]])
* Another use case is to send your location from nokia maps over mms to quickly allow another person using nokia maps and gps find a location or service (e.g. bar, restaurant , etc).

The advantage MMS have over e-mail on the phone as well is it's generally less spammy; e.g. no Facebook notification mails etc.

== Implementation ==
To successfully implement MMS sending and receiving on the N900 the following has to be done:

=== Hook in to SMS receiving.===
According to [http://talk.maemo.org/showpost.php?p=319365&amp;postcount=15 this] post by danielwilms the final SDK for Maemo5 should let us do this through Telepathy. 

To handle WAP Push messages one will be required to register a handler via the D-BUS API (final docs on this pending, for alpha version please contact [http://talk.maemo.org/member.php?u=24057 frals]).

=== Fetch the MMS from the provider.===
Multiple issues with this.

* Fremantle UI currently only allows configuring one (GPRS) APN. Add one manually with gconftool and it will show up in the UI afterwards

Example:
 gconftool-2 --set /system/osso/connectivity/IAP/Tele2@32@MMS/type --type string &quot;GPRS&quot;
 gconftool-2 --set /system/osso/connectivity/IAP/Tele2@32@MMS/name --type string &quot;Tele2 MMS&quot;
 gconftool-2 --set /system/osso/connectivity/IAP/Tele2@32@MMS/gprs_accesspointname --type string &quot;internet.tele2.se&quot;
 gconftool-2 --set /system/osso/connectivity/IAP/Tele2@32@MMS/ipv4_type --type string AUTO
 gconftool-2 --set /system/osso/connectivity/IAP/Tele2@32@MMS/sim_imsi --type string YOURSIMIMSI

To get the SIM IMSI to use:
 gconftool -R /system/osso/connectivity/IAP |grep sim_imsi

* Most operators only allow fetching of MMS when accessing via a specific [http://en.wikipedia.org/wiki/Access_Point_Name APN]. To access this you would have to temporarily suspend your current 3G connection and switch over to this (is this correct? need someone with knowledge on this). On S60 you won't get dropped as long as you are on a 3G connection.

* If the user only got access to GPRS the current connection (if in-use) have to to be temporarily suspended while fetching the MMS. This should be doable by doing a &quot;Deffered Retrieval&quot;. &lt;ref&gt;[http://www.openmobilealliance.org/Technical/release_program/docs/CopyrightClick.aspx?pck=MMS&amp;file=V1_3-20080128-C/OMA-TS-MMS-CTR-V1_3-20080128-C.pdf Figure 7. Page 16]&lt;/ref&gt;

* Accessing the MMS &quot;server&quot; through a specific connection: iptables tweaking? Discussion at [[Mms_implemention_conversation#Technical]]. The following is based on that conversation:
** The problem here is routing specific data to the specific connection. While this is possible with some clever routes, this does raise the problem with operators having the same gateway for both GPRS and MMS connections, which might lead to a collision (if both they are indeed the same gateway, it should be no problem just getting the MMS over the current connection?).
** One possibility is to tag the appropiate packets with iptables and then sent to a different routing table.
** To overcome the problem with different gateways on the same subnet one could add a hard dumb route to the specific gateway via route, then set the Internet gateway to a higher priority. e.g. rename 123.123.123.0 -&gt; MMS route via iproute2 NAT. Something like http://lartc.org/howto/lartc.rpdb.multiple-links.html maybe?
** Another solution would be a mms-fetcher-daemon running as a specific user (e.g. mmsd) and use iptables to route all these packages to the correct interface. This works around when both the GPRS and the MMSC specified is on the same IP but requires different connections. i.e. &quot;route add 1.2.3.4 ppp:mmc - fails if there is also a server on 1.2.3.4 on ppp:normal&quot;. However, using the ipt_route module (experimental for years, netfilter patch-o-matic-ng) would allow traffic to be directed out of a specific interface (ppp:mmc) and since this interface is point2point it would not need a specific route. infact the mmc ip address could be access via ppp:normal or ppp:mmc depending on the match criteria of iptables (pid, uid?).
** '''At the core of it - whats needed is a separate interface (e.g. ppp0, ppp1 etc) for each APN the user sets up'''.

* Applications should be able to request a certain IAP to be activated; thus should the MMS app be able to request the correct APN. [[Mms_implemention_conversation#Higher_level_technical|Source]]

* The functionality to handle the above problem is in linux-2.6.30+ (Fremantle runs 2.6.28) so if there is a future kernel upgrade, it should be possible to implement full MMS support. [http://talk.maemo.org/showthread.php?p=349859#post349859 See this talk-post.] Alternative would be to backport the networking namespace to 2.6.28.

=== Format the MMS and display it correctly.===
* How open is the Messaging client?

Plenty of open source libs to do this in other languages:

# [http://www.hellkvist.org/software/ PHP1]
# [http://heyman.info/mmsdecoder.php PHP2]
# [http://sourceforge.net/projects/mmslib/ Java] [http://sourceforge.net/projects/freshmeat_messaging-midp/ JavaSE/JavaME]
# [http://projects.xplico.org/mmsdec.html C]
# [http://www.gammu.org/wiki/index.php?title=GPlus:Main_Page Gammu+ with C++ implementation (compilable in Linux and Windows)]
# [http://python-mms.sourceforge.net/ Python]

== Rough roadmap ==
Before MMS implementation is written a roadmap must be chosen, and various factors must be taken into account before choosing a roadmap.

Potential roadmaps based on e.g. practical situations could use a quick community hack whereas official certification is much more work, and theoretical/technical.

Please note following information is much easier understood by using a flowchart.

=== Quick hack, r/o ===
* Make sure a technical inclined Nokia N900 user is able
** Receive MMS
** Read MMS
* Community support; not official Nokia support
* CLI, GUI, HIG not important

Implemented, see: http://talk.maemo.org/showthread.php?p=450237#post450237

=== Quick hack, r/w ===

* Make sure a technical inclined Nokia N900 user is able to
** Receive &amp; sent MMS
** Read MMS
** Write MMS
* Community support; not official Nokia support
* CLI, GUI, HIG not important

Implemented, see: http://talk.maemo.org/showthread.php?p=450981#post450981

=== Quick hack, r/o, user-friendly ===
* Make sure a non-technical inclined Nokia N900 user is able
** Receive MMS
** Read MMS
* Community support; not official Nokia support
* Finger/touch GUI, HIG recommended

=== Quick hack, non-r/w user-friendly ===

* Make sure a technical inclined Nokia N90 user is able to
** Receive &amp; sent MMS
** Read MMS
** Write MMS
* Community support; not official Nokia support
* Finger/touch GUI, HIG recommended

Implemented, see http://talk.maemo.org/showthread.php?p=459426#post459426

=== Full specs, r/w, user-friendly ===

* Make sure a non-technical inclined Nokia N900 user is able to
** Receive &amp; sent MMS
** Read MMS
** Write MMS
* Official support by Nokia, official MMS certification.
* Must support all the specifications such as WAP 2.1.
* Finger/touch GUI, HIG mandatory

== References ==
[[Task:MMS/Conversation]]
&lt;references /&gt;

[[Category:Brainstorm]]
[[Category:Cellular]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Task:MMS/Conversation</title>
    <id>2485</id>
    <revision>
      <id>34218</id>
      <timestamp>2010-05-11T08:22:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">__FORCETOC__
this is a conversation which occured on #maemo Monday 28th September 2009
It principally involves users ab and astorm discussing implementation specifics for MMS on the n900.

it is not a proposal of any sort now, and requires cleanup and extrapolating into a formal proposal/way forward so others can get involved.

the conversation consists of 2 principle sections
firstly, the problem definition itself and issues with the proposed &quot;send an email&quot; approach.
then ab and astorm get into the swing of thing and start talking shop :)


Please help by cleaning up this conversation into the specifics and possibly attempt to writeup a proposal based on some of the points discussed here.

Attempt of write up is at [[MMS implementation]]

==Problem Definition==

&lt;pre&gt;

&lt;johnx&gt; really. I didn't know they had a specific MMS meltdown
&lt;johnx&gt; I just thought they were just in a state of partial meltdown all the time
&lt;kirma&gt; I wonder how much network congestion there is in .fi networks in practice. I suspect considerably less...
&lt;cmug&gt; mavhc, johnx, thats why you have the Ovi share account and you put the picture there
&lt;johnx&gt; people pay attention to their data usage instead of hitting youtube on the bus, so yes, probably :)
&lt;lcuk&gt; putting pictures on public accounts is not always wanted
&lt;lcuk&gt; i want to sometimes send a picture to a specific user with the expectation of privacy and &quot;for your eyes only&quot;
&lt;cmug&gt; lcuk, or you can send it to them on email
&lt;RST38h&gt; kirma: Well, set the MB price so that 1GB of data costs the user $50, and you have solved most of the network problems while keeping users happy
&lt;lcuk&gt; cmug, only a few people have email on their phones
&lt;lcuk&gt; even if capable, most dont configure it
&lt;lcuk&gt; i dont see the point in email on my mobile device
&lt;lcuk&gt; its something i leave for big pc still
* lcuk has never configured an email account on any mobile device
* RST38h used Modest today. What is this world coming to?
&lt;kirma&gt; the problem with email on the phone is that I get way too much of if to funnel it all to the phone, and a more dedicated filter for the stuff is going to drop lots of stuff that I want to read eventually anyway
&lt;lcuk&gt; cmug, my email account gets so much traffic
&lt;RST38h&gt; kirma: Headers-Only save the day
&lt;RST38h&gt; kirma: And IMAP too
&lt;Myrtti&gt; why the bloody hell would I want my work email on my phone?
&lt;lcuk&gt; cos your collegue might want to send you a picture!
&lt;Myrtti&gt; or get &quot;You've been invited to an event&quot; emails from facebook?
&lt;johnx&gt; Myrtti, spoken like someone who isn't permanently &quot;on call&quot;
&lt;kirma&gt; rst38h: well, still, hundreds of emails per day are unbearable to even look at on a phone
&lt;lcuk&gt; if you are oncall
&lt;lcuk&gt; you get your work people to setup your work device
&lt;RST38h&gt; kirma: it is fine if they are threaded
&lt;Myrtti&gt; if I'm not by my computer, I'm not working
&lt;Myrtti&gt; if I am, I most likely am
&lt;lcuk&gt; johnx, why are you using your personal device as a work tool - i hope you are compensated accordingly
* kirma is in many ways stuck into early nineties unix world technology-wise, and doesn't want to change very easily... although many things would get simplified if he did
&lt;RST38h&gt; lcuk: I prefer to use a single device for everything, so no need for compensation
&lt;cmug&gt; filtering is the key to success
&lt;lcuk&gt; is the filtering documented clearly currently
&lt;lcuk&gt; and could [random_person] set it up easily
&lt;lcuk&gt; so they dont miss their work mails
&lt;cmug&gt; i don't filter on the phones, i filter on thunderbird or server directly
&lt;cmug&gt; erm
&lt;cmug&gt; i am a technically oriented person, so i find it difficult to think that somebody who would use filtering would need help setting it up
&lt;cmug&gt; i understand that my mother in law would not be able to setup filtering rules, but she receives one email per week
&lt;lcuk&gt; i am a technical person also - i think and write in c at a very low level
&lt;johnx&gt; lots of people at my office receive huge amounts of email but are some of the least &quot;technical&quot; in the company
&lt;lcuk&gt; email filtering is something i have rarely stepped into and is outside my field of knowledge
&lt;johnx&gt; think: customer service, marketing, etc
&lt;lcuk&gt; why should i spend a week setting up something like that
&lt;cmug&gt; you win, lets moan about lack of mms together
&lt;lcuk&gt; lets find a solution rather
&lt;lcuk&gt; i see there are people digging and seeign libraries and mechanisms
&lt;lcuk&gt; and of course, someone at nokia itself has to know!
&lt;cmug&gt; sure if it can be implemented it should be
&lt;lcuk&gt; nod, im sure some of the maemo guys have beers with some other guys from different departments.  we might be a different OS but get the right people together and they might be able to find a solution
&lt;kirma&gt; I wonder if MMS implementations might have patent mines on trivial issues
&lt;kirma&gt; like, there's a bunch of patents related to text input methods (like T9, even if it's not exactly T9), and SMS
&lt;lcuk&gt; sms is there
&lt;kirma&gt; patentability of those &quot;inventions&quot; is questionable at the best, but what can you do now
&lt;lcuk&gt; and i have to say, works better than any other implementation ive ever used :$
&lt;kirma&gt; I suppose N900 specifically chooses not to implement T9?
&lt;lcuk&gt; it has a qwerty keyboard
&lt;kirma&gt; yep
&lt;kirma&gt; but so has E90...
&lt;lcuk&gt; kirma, thats because it has a phone keypad too
&lt;X-Fade&gt; kirma: But you get T9 for free with Nokia's Symbian ;)
&lt;AStorm&gt; s/free/included in price/
&lt;AStorm&gt; you don't get it in the free version
&lt;AStorm&gt; T9 is propietary
&lt;X-Fade&gt; AStorm: Sure, but for Nokia it is no work to add it for E90 as they have it in every other phone.
&lt;AStorm&gt; (while I could make a better, more accurate system w/o infringing on that fairly broad patent, it wouldn't be easy)
&lt;AStorm&gt; true
&lt;kirma&gt; of course, it's licensed. but even trying to implement reasonably equivalent functionality would, stupidly enough, be a patent breach
&lt;X-Fade&gt; And those firmwares are just the basic components added together ;)
&lt;AStorm&gt; kirma: that's why you have to read the patent and circumvent it
&lt;AStorm&gt; :&gt;
&lt;AStorm&gt; should be possible
&lt;X-Fade&gt; I really see no use for T9 on N900 or N810.
&lt;AStorm&gt; yes, there is none
&lt;AStorm&gt; we have a full keyboard there
&lt;johnx&gt; AStorm, though if you read the pattent and they find you infringing you might suffer a larger fine then someone who claims they never heard of it ;)
&lt;AStorm&gt; no.
&lt;kirma&gt; X-Fade: I can understand, but the patent issue spaghetti is probably one more reason pushing it away from the device...
&lt;AStorm&gt; johnx: that doesn't work that way
&lt;AStorm&gt; I just get a cease and desist
&lt;AStorm&gt; and then I do that.
&lt;X-Fade&gt; kirma: Nah, how about not spending time on useless components ;)
&lt;AStorm&gt; or I can take it to the court
&lt;/pre&gt;

==Technical==

&lt;pre&gt;
&lt;ab&gt; MMS is not so easy. I've been told there are technical requirements to have two separate IPv4 namespaces when dealing with MMS and GPRS/EDGE/3G at the same time, as gateways might have same IP networks provided and then you'd have collisions
&lt;AStorm&gt; hehe
&lt;AStorm&gt; simple - fix the gateway
&lt;kirma&gt; on every operator separately...
&lt;ab&gt; the gateway is something that belongs to an operator
&lt;RST38h&gt; ab: No way???
&lt;AStorm&gt; MMS gateway doesn't have to provide any networks
&lt;AStorm&gt; only MMS.
&lt;RST38h&gt; So THAT may be the reason for &quot;kernel MMS support&quot;
&lt;AStorm&gt; the real fix is: add a correct route
&lt;X-Fade&gt; So it needs some kind of tunnel?
&lt;ab&gt; RST38h, there are ways, of course, but someone needs to investigate them. My current metaphor is that an issue similar to have correct implementation of something like VLAN tagging over the same ethernet port
&lt;AStorm&gt; so MMS gateway only gets one route
&lt;AStorm&gt; exactly to its IP
&lt;AStorm&gt; and nothing else
&lt;AStorm&gt; hmm, although...
&lt;AStorm&gt; the dumb ISP might be using a subnet to provide MMS
&lt;ab&gt; AStorm, fun is in the case when both IPs are the same from both gateways
&lt;kirma&gt; I suppose MMS is run over separate ATM/ISDN virtual connection or whatever it should be called, which itself isn't bad, but overlapping routes sure make it more problematic
&lt;ab&gt; so at least from my ISP-related past I know it is possible to solve on a stock 2.4/2.6 kernel but for what price and control over networking setup?
&lt;kirma&gt; I can imagine how it can be implemented without kernel modifications, but it's certainly more complicated than the benefit of having MMS for average N900 users would warrant straight away
&lt;AStorm&gt; ab: then you add a multipath route?
&lt;AStorm&gt; hmmh
&lt;AStorm&gt; or rather, why then the other ASN won't accept MMS?
&lt;johnx&gt; kinda seems like the thing you put in, say a 5.1 release :)
&lt;ab&gt; AStorm, I was thinking along the line of having packets tagged with iptables and then routed to a separate routing table within ip rule
&lt;AStorm&gt; ab: yes yes, nice idea
&lt;AStorm&gt; or instead, just routed via a device
&lt;AStorm&gt; so you have ppp0 and ppp1
&lt;AStorm&gt; one for MMS, the other for internet
&lt;AStorm&gt; both via different ASNs
&lt;AStorm&gt; but that needs some kernel support, yes
&lt;ab&gt; sure, but you need to have the packets tagged first because those interfaces might still have same IP subnets and you would need to help a routing a bit with proper tagging
&lt;AStorm&gt; naah
&lt;ab&gt; with such approach no kernel changes are needed but some user space work on tunnel setup and rules for firewall/ip rule
&lt;AStorm&gt; you could rename the routes
&lt;AStorm&gt; e.g. 123.123.123.0 -&gt; MMS route
&lt;AStorm&gt; via a hard iproute2 NAT
&lt;AStorm&gt; ab: you still need kernel support
&lt;AStorm&gt; note different ASNs
&lt;AStorm&gt; so you need 2 ppp devices
&lt;AStorm&gt; otherwise it will go through the wrong ASN
&lt;AStorm&gt; and might get rejected
&lt;ab&gt; if you have two interfaces, say ppp0, ppp1, both span the same IP subnet (GPRS gateway and MMS gateway gave you overlapping networks), you need to set routes quite carefully for that
&lt;AStorm&gt; not carefully
&lt;AStorm&gt; it's very simple really
&lt;AStorm&gt; different metric (= priority)
&lt;AStorm&gt; internet route gets higher priority
&lt;ab&gt; yep, and then you'd need to tag packets based on a content, not only destination
&lt;AStorm&gt; and then you add a hard dumb NAT (using some local IPs) to access that other route
&lt;AStorm&gt; no.
&lt;AStorm&gt; you do a trick
&lt;AStorm&gt; ip renaming.
&lt;AStorm&gt; far easier
&lt;ab&gt; yep, that is what I was suggesting as well
&lt;AStorm&gt; no, you were suggesting an owner match in iptables
&lt;AStorm&gt; which is... ugh.
&lt;ab&gt; no
&lt;AStorm&gt; ab: or l7 match, even more ugly
&lt;ab&gt; this is one of approaches, another was exactly what you have said
&lt;AStorm&gt;  ab | AStorm, I was thinking along the line of having packets tagged with iptables and then routed to a separate routing table within ip rule
&lt;AStorm&gt; no.
&lt;ab&gt; AStorm, care to write it up on wiki.maemo.org?
&lt;AStorm&gt; ip rule would need some protocol match
&lt;AStorm&gt; while NAT would need only a tiny bit of knowledge in the MMS app
&lt;ab&gt; ip rule needs a mark from firewall, it is enough there
&lt;AStorm&gt; (it must know about IP rename)
&lt;AStorm&gt; mark from firewall based on what?
&lt;AStorm&gt; ;p
&lt;AStorm&gt; owner? protocol? both are ugly
&lt;AStorm&gt; instead, I'd rather have MMS mapped to some constant ip subnet
&lt;ab&gt; make sure you also cover a case when hosts A and B which belong to MMS and GPRS networks have the same IP and you need to send to A for MMS and access B on a GPRS network for everything else
&lt;AStorm&gt; maybe even ipv6 to not clobber anything
&lt;AStorm&gt; ;p
&lt;ab&gt; this is something that guys internally were showing as evidence from some of operators
&lt;AStorm&gt; sure it does, metric takes care of this case
&lt;AStorm&gt; while the nat rule takes care of the rename and routes to the correct ppp device
&lt;ab&gt; AStorm, please write your proposal on wiki.maemo.org
&lt;AStorm&gt; and the routing table *doesn't* look at the metric then.
&lt;AStorm&gt; (since the device is specified)
&lt;AStorm&gt; ab: hmmh, I don't even have an account
&lt;AStorm&gt; but I will write it down
&lt;ab&gt; time to create :)
&lt;AStorm&gt; after I implement a test setup here
&lt;ab&gt; good
&lt;AStorm&gt; or, you can add the routing info for MMS to another routing table
&lt;AStorm&gt; but that may require a patch for ppp
&lt;ab&gt; again, as I was saying :) &lt;ab&gt; AStorm, I was thinking along the line of having packets tagged with iptables and then routed to a separate routing table within ip rule
&lt;AStorm&gt; tagged with iptables = fallible
&lt;AStorm&gt; since any tagging done there will be either on owner (one process? please...)
&lt;AStorm&gt; or content (slow and... meh)
&lt;AStorm&gt; others will infringe on internet access
&lt;AStorm&gt; although you could do a NAT in iptables
&lt;ab&gt; ip rule can work with nat (it has nat option)
&lt;ab&gt; it also has incoming interface to match, that would be an easiest thing if we could make it a sort of a tunnel where applications always send to a locally maintained address (on some tun/tap interface)
&lt;ab&gt; and we re-write routing based on a packet that comes from that interface
&lt;ab&gt; pure NAT
&lt;AStorm&gt; incoming interface? ugh.
&lt;AStorm&gt; worse than having some constant local ip range
&lt;AStorm&gt; which is far easier to adapt apps to.
&lt;AStorm&gt; e.g. you could have MMS on 127.0.127.x
&lt;AStorm&gt; or such.
&lt;ab&gt; just as what I was going to right
&lt;ab&gt; write
&lt;AStorm&gt; incoming on MMS is routed fine already
&lt;AStorm&gt; (since ip rule will catch it)
&lt;ab&gt; yes, it is more or less clear
&lt;ab&gt; would be good to have a write up so that I can further point internal guys to this proposal
&lt;/pre&gt;

== Higher level technical ==

&lt;pre&gt;
[22:17:15] &lt;frals&gt; hmm, when ur on 3G, you got one voice and one data connection right? couldnt you get that to be dual data?
[22:17:24] &lt;frals&gt; &lt;- 3g/gsm noob ;)
[22:18:08] &lt;lcuk&gt; frals, i dunno
[22:18:14] &lt;lcuk&gt; its just automatic mumbo jumbo
[22:19:00] &lt;lcuk&gt; qwerty12_N810 to placate some might be an idea to actually indicate in the initial posting of your that it was later sorted ;)
[22:20:14] &lt;javispedro&gt; frals: I dunno about 3G, but I read somewhere that MMS requires an extra inet connection.
[22:20:29] &lt;lcuk&gt; ahhh well
[22:20:31] &lt;frals&gt; yeah it requires you to connect to a specific APN to get the MMS
[22:20:34] &lt;javispedro&gt; s/inet/net
[22:20:44] &lt;frals&gt; or rather, most operator requires that afaik
[22:20:54] &lt;javispedro&gt; frals: well, icd2 is supposed to be able to handle that :S
[22:21:31] &lt;javispedro&gt; (the nit internet connectivity daemon, in case you're wondering)
[22:22:15] &lt;frals&gt; yeah was looking at that yesterday, from what i gathered it required user confirmation when starting a new connection, which would be annoying when auto fetching an mms
[22:22:33] &lt;frals&gt; on the other hand im sure i dont have the whole picture and it can be circumvented somehow ;)
[22:22:46] &lt;ShadowJK&gt; i'd think you'd be able to set it no-confirm
[22:22:54] &lt;javispedro&gt; frals: not sure. apps can open wi-fi without any dialog if an existing AP is found
[22:23:17] &lt;javispedro&gt; considering we could have control of the plugin and thus be able to decide that, I'd guess we'd be able to bypass confirmation.
[22:23:29] &lt;frals&gt; ye - but does that setting apply to just the one connection or systemwide..
[22:23:37] &lt;frals&gt; ah good point javispedro
[22:24:54] &lt;javispedro&gt; (either way, the mms not necessarily has to be managed by icd2, and you may have worse kernel problems to resolve)
[22:25:30] &lt;lcuk&gt; frals, javispedro make sure the important bits of your dialog goes onto the wiki page
[22:25:59] &lt;javispedro&gt; don't consider my word authoritave, it am not a icd2 dev ;)
[22:26:45] &lt;lcuk&gt; javispedro, your word is good as a counterpoint to a conversation, even if you dont know it exactly it helps to make the right sounds
[22:29:16] &lt;javispedro&gt; frals: and apps can request for a certain IAP to be activated, thus mms apps could request the mms iap to be activated.
http://maemo.org/api_refs/5.0/beta/icd2/group__dbus__api.html#g2d518bd08002c0a8a92c8ba00546360f
&lt;/pre&gt;

[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Maemo-meeting</title>
    <id>450</id>
    <revision>
      <id>8217</id>
      <timestamp>2008-10-30T18:12:02Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <minor/>
      <comment>Categorization</comment>
      <text xml:space="preserve">Maemo-meeting is a semi-monthly IRC meeting with Nokia held on [http://www.freenode.net Freenode] in [irc://chat.freenode.net/maemo-meeting #maemo-meeting] where we discuss current maemo.org and Maemo issues.

'''The topic and agenda for next month's meeting are being discussed at [[Maemo-meeting/2|Maemo-meeting #2]].'''

== Agenda ==
A topic and agenda is defined prior to each month's meeting to avoid confusion during the meeting, allow the Nokia repressentative to come better equipped for the topic (possible with guests) and help keep it productive.

* The topic for the next month's meeting will be decided upon within 1 week after current month's meeting.
* An agenda will then be put together in the next 2 weeks and finalized no later than 1 week before the next meeting.

The agenda should be sized so as to last no longer than 1-2 hours. If there are any items remaining on the agenda at the end of that period, the meeting may be extended with the agreement of the Nokia representative (and any guests, if relevant). If any additional items remain, or the meeting is not able to be extended topics can either be dropped or carried over to next month's meeting.

== Procedure ==
In order to keep the discussion manageable and on-topic, a certain procedure must be followed.
* The meeting will be overseen by X-Fade and the [[Task:Community Council|maemo.org Community Council]] members, who will be granted operator permissions.
* The channel will be moderated and all participants will be granted voice by default.
* In order to keep the discussion on-topic and on-agenda, participants we be allowed 3 warnings before losing their voice for the duration of the meeting.
** Warnings will be issued by operators for chatter in #maemo-meeting (chatter belongs in #maemo), off-agenda questions, and disruptive behavior.

== Time and place ==
The meeting will be held over IRC in [irc://chat.freenode.net/maemo-meeting #maemo-meeting on the [http://www.freenode.net Freenode] network. Those unfamiliar with IRC should see the [http://www.irchelp.org/irchelp/irctutorial.html irchelp.org IRC tutorial] for information. The time will be determined each month based on the availability of the core participants. The meetings will generally last for no more than 1-2 hours, though time may be extended with the agreement of the Nokia representative.

== History ==
[[Maemo-meeting/1|Maemo-meeting #1 - May 13th, 2008]]


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Maemo.org facelift</title>
    <id>1063</id>
    <revision>
      <id>28070</id>
      <timestamp>2010-02-02T10:24:25Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">We now have a new logo for maemo.org:

[[Image:Maemo_org_logo.png]]

and we need to update the maemo.org site to use this logo everywhere.

It may be an opportunity to review the layout and style of maemo.org and refresh the visual image of the site.

* Maemo.org can benefit from some face lifting - right now on 1280x1024 (this resolution seems to be very common to developers) only half of the real screen estate is used. With some loose block positioning both 800x480 and bigger resolutions can be supported. Maybe even specialized tablet finger-friendly look for those preferring it.
* More relevant information displayed on front page, preferably customizable blocks like Netvibes and iGoogle. Since the content is gzipped, that won't be too harming to the traffic. Blocks can be optionally auto updated for those that like to keep their browser pages open (and if Prizm is ported - even in the tray). For instance, a &quot;new bugs&quot; section with voting on the fly will boost bugzilla usage.
* Make links more standardized.  New users often expect links would be underlined, even subtly, or appear to be a button of some kind.  Don't rely on hover effects because the tablet can't practically use them.  See [http://en.wikipedia.org/wiki/Mystery_Meat_Navigation Wikipedia on 'Mystery Meat Navigation']
* Format and style need to be unified across as much of the site as possible (excluding things like Garage and Bugzilla). Take, for instance [http://maemo.org/news/planet-maemo/ Planet] and [http://maemo.org/news/ News], two pages that should be very similar, if not the same. Perhaps take News' style and format and apply it to Planet (add the contributor's avatar to the upper right of each article? Much like [http://slashdot.org slashdot] does with their article category images.), as the News style seems to offer a cleaner look that better utilizes the available space.
* For the outliers like Garage and Bugzilla, at least the style should largely be unified with the main site—using the same fonts, same colors, etc.
:''OK to have a well integrated, efficient and nice-looking layout across maemo.org. Ok to discuss in detail in  a page apart and ok to have a basic plan agreed in 100 Days. The execution will take longer, though.--[[User:qgil|qgil]] 07:38, 2 June 2008 (UTC)''

Note also that maemo.org's visual identity is not only the logo, but also the stylesheets, icons and other graphics. See [[Task:Improve maemo.org/Graphics]] for more information.

[[Category:Community]]
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Maemo Brainstorm</title>
    <id>1209</id>
    <revision>
      <id>24166</id>
      <timestamp>2009-12-06T12:18:22Z</timestamp>
      <contributor>
        <ip>60.242.143.81</ip>
      </contributor>
      <comment>Fixed spelling and capitalisation</comment>
      <text xml:space="preserve">{{task|ongoing}}

= Need =
* Developers, community, users, etc. can suggest ideas to Nokia and to the developers
* People can give thumbs up and down to the ideas
* People can comment the ideas and other comments

== Examples ==
* http://brainstorm.ubuntu.com/ &amp; http://www.ideatorrent.org/
** All the basic functionalities. Registration needed to add content, comment and vote
* https://features.opensuse.org/ - commented at http://en.opensuse.org/Proposals/openFate &amp; http://aseigo.blogspot.com/2009/01/do-you-believe-in-fate.html
* http://aivo.sonera.fi/ (in Finnish)
** A big ISP-company in Finland. Registration needed to add content, comment and vote
* http://ideastorm.com
* http://ideaforge.linux.com/

= Questions =
* Does everything require registration?
** Viewing ideas does not.
** Voting and commenting, or in the case where you have the permission, reviewing ideas or moderating, do.
* Layout?
** There are few examples (feel free to add more examples)
* Views
** What are the views needed to show ideas
*** Latest
*** Most commented
*** Most voted
*** Most liked
*** Most hated
*** Sandbox (awaiting moderation)
* [[Karma]]
** How are the karma-points counted, do you get one point from one idea?
*** Submitting an idea should get you exactly the same karma as submitting a bug.
** What about commenting and voting?
*** Nothing for voting, comments on ideas should get you the same karma as comments on blog posts or products, and proposing solutions should get you more.

= Roadmap =
# Answer questions
# Testcomponent to test-server
# Community tests and gives comments
# Publish

= Basic idea =
* Port ideatorrent functionality to Midgard
** Reason for not using ideatorrent: Runs on top of drupal, so it would be another CMS on the server
** See [http://trac.midgard-project.org/ticket/1082 Upstream ticket #1082]
* Looks a bit like a news feed
* On top of the page there is horizontal navigation, containing the four root statuses
* Viewing allowed for everyone, voting and commenting only for the registered users
* Only one vote per user, user can change the vote he/she made
* Statuses can be changed by moderators
** Changing status won't make a comment, but status history can be viewed by everyone
* Moderators can delete items and comments
* Items can be linked to another items (duplicate items for example)
* Creator can choose that he/she want's an email about comments and status updates to that item
** If so, every comment and status update sends an email to the creator
** Set to 'no' by default
** Creator can change the setting afterwards (every email contains a link to change the setting)
* Every listing shows only the title and description, score (like 18 (+22/-4)) and the count of comments
** When you click the title of the item, you get to see all the comments in that item
* New items require one moderator for deletion, two moderator votes for publication to move to &quot;Under consideration&quot;

== Item ==
* Item's fields
** Title
** Explanation
** Status (explained later)
** Milestone
** Category (basicly all the categories in the application manager and also OS)
*** Do we need this? Is the milestone enough?
** Creator
* Item has couple states
** Sandbox (only moderators can comment these ideas)
*** Valid candidate (All the new ideas that are not yet approved by the moderators (not visible to the anonymous user))
*** Invalid ideas (spam, etc)
*** Already implemented (ideas, that already exists, someone just needs to answer those somehow)
*** Duplicates (if the idea is already somewhere)
** In a need of voting (accepted under commenting) ''this needs a better title''
*** Milestones as a subnavi
** Under development
*** Milestones as a subnavi
** Implemented
*** Milestones as a subnavi

== Commenting ==
* Comment fields
** Title
** Vote (up or down)
** Commenter
* Every second comment has different background to help reading
** If creator comments the idea, there is a different background and/or title-color
** If moderador comments the idea, there is a different background and/or title-color

==Workflow==

Each idea goes through a series of statuses

* Sandbox waiting
** New ideas wait until a moderator deals with them - two moderator approvals required for publication
** Users can propose solutions or comment the idea
** Solutions cannot be promoted or demoted
* Sandbox invalid, duplicate and implemented
** &quot;Moderated away&quot;
** Cannot be proposed, commented, promoted or demoted
** Reasons for invalidating: &quot;Spam&quot;, &quot;Already implemented&quot;, &quot;Duplicate&quot; (link to another idea), &quot;Not an idea&quot; (propose submitting to bugzilla)
* Under consideration
** Ideas accepted by moderator
** New solutions can be proposed
** Solutions can be promoted or demoted
** Idea can be commented
* In development
** Ideas moderator has marked as being in development
** Only the selected solution(s) are shown
** New solutions cannot be proposed
** Solutions can be promoted or demoted
** Idea can be commented
* Implemented
** Ideas moderator has marked as having been implemented
** Only the selected solution(s) are shown
** New solutions cannot be proposed
** Solutions cannot be promoted or demoted
** Idea can be commented

== Moderators ==

The moderator team should be sufficiently big that submitted ideas do not stay for a long time in moderation. The Ubuntu Brainstorm Moderators team has over 30 members.

To provide a basic check &amp; balance to incoming ideas, ideas should only move from the sandbox to &quot;Under consideration&quot; when two moderators have approved it. The user interface should show when an idea has one vote in the sandbox view.

Ideas in the sandbox will be rejected when labeled one of &quot;Not an idea&quot;, &quot;Duplicate&quot;, &quot;Spam&quot; or &quot;Already implemented&quot;.

Users can signal to moderators that an idea which has left the sandbox is already implemented, spam or a duplicate, but the idea can only be rejected by a moderator.

Some relevant links for Ubuntu moderator guidelines, which look just fine for maemo:
* [https://wiki.ubuntu.com/Brainstorm/BrainstormModerators Moderation guidelines]
* [http://brainstorm.ubuntu.com/faq/ The Brainstorm FAQ] including [http://brainstorm.ubuntu.com/faq/#question11 Idea posting guidelines]
* Just for reference, [https://launchpad.net/~brainstorm-moderators the brainstorm moderators team page] contains a bunch of interesting links

= Basic site structure =
* Frontpage
** List 10 most voted items with status &quot;In a need of voting&quot;
** Paged
* Latest
** Shows 10 latest items that have had some sort of change (status, comment or vote)
** Paged
* Newest ideas
** Show the 10 latest items by creation time
* Most liked
* Most hated
* Most commented

== Categories ==

* Desktop
* Education &amp; Science
* Games
* Internet &amp; Networking
* Location &amp; Navigation
* Media
* Office
* Utilities
* User Experience
* System
* Programming
* Devices
* Accessories
* Marketing
* Others

= Layout =
== Frontpage ==
[[Image:Brainstorm frontpage.png|400px]]



[[Category:Community]]
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Maemo Community distribution</title>
    <id>1251</id>
    <revision>
      <id>10502</id>
      <timestamp>2009-01-28T20:21:01Z</timestamp>
      <contributor>
        <username>sjgadsby</username>
        <id>23</id>
      </contributor>
      <minor/>
      <comment>/* Sort out a repository */ &quot;exposure&quot; -&gt; &quot;exposed&quot;</comment>
      <text xml:space="preserve">{{task|proposed}}

A community-provided distribution of Maemo can offer the community more freedom, better options, greater customizability, and better stability than the Nokia-provided distribution. This task outlines the process for putting together a community distribution of Maemo.

== Goals ==

Provide a community distribution less encumbered by Nokia's corporate policies that is more flexible in its packaging, bundles community software, and modifies Nokia software and packaging with community patches.

== Sort out a repository ==

It would be preferable to simply distribute all packages in Extras, but this adds complexity and may simply be impossible to do cleanly, as these packages are likely to interfere with SSU and confuse users. Extras-devel is probably more appropriate, but that would force users wanting to use the community distribution to be exposed to unstable software. Not ideal. The simpler and cleaner option is to use a separate repository either on repository.maemo.org or a 3rd party repository somewhere else.

We have 3 options for handling packages:

# Everything is copied wholesale from tableteer to the community repository.
#* Pros: Straightforward, easy, controllable.
#* Cons: Legal gray area.
# All free components from tableteer are copied to the community repository, but non-free components are fetched from tableteer.
#* Pros: No legal issues, no additional effort for Nokia.
#* Cons: Increases complexity, reduces control, and exposes users to updates before the community can sanitize them.
# All free components from tableteer are copied to the community repository, and an additional non-free section is added to tableteer.
#* Pros: Increased control, no legal issues, cleaner.
#* Cons: More effort for Nokia.

After [https://bugs.maemo.org/show_bug.cgi?id=3602 some discussion], it seems like option 3 is likely the most workable. Some scripting could be implemented to help reduce manual overhead, but this is likely a goal for later.

== osso-software-version-community ==

We need to provide a community version of osso-software-version that has a modified dependencies list that provides the community distribution. A couple considerations should be kept in mind, dependencies on proprietary junk will be removed (skype, gizmo, etc.), dependencies will be setup to allow easy installation of updated system libraries and 3rd-party patches (rotation, 48MHz, etc.), and unnecessary packages that shouldn't be part of the OS-proper will be moved to separate packages that can be uninstalled through application manager (bundled PDFs, images, movies, etc.).

=== Add ===

Community enhancements that should be added to the default community distribution.

* '''advanced-backlight''': To replace sound and brightness by default.
* '''bootmenu''': For multiboot and USB recovery.
* '''e2fsprogs''': For handling ext2/3 filesystems.

=== Remove ===

Useless and proprietary stuff to be removed.

* '''gizmo-installer''': Remove proprietary advertising.
* '''rhapsody-installer''': Remove proprietary advertising.
* '''skype-installer''': Remove proprietary advertising.

=== Modify ===

Existing packages that should be enhanced.

* '''hildon-status-bar-display''': Remove from statusbar by default in favor of Advanced Backlight.
* '''osso-statusbar-presence''': Non-mandatory .desktop file
* '''osso-statusbar-sound''': Remove from statusbar by default in favor of Advanced Backlight.
* '''preinstalled-documentation-rx34/rx44''': Move to its own package.
* '''preinstalled-images''': Move to its own package.
* '''preinstalled-sounds''': Move to its own package.
* '''preinstalled-videos''': Move to its own package.

== Patches, hacks, and modifications ==

As a community distribution, we're not burdened by corporate policy and decision making, so we're free to include interesting and useful patches and hacks that Nokia cannot.

=== Application manager ===

A community distribution could serve as an easier way to include community branches of Nokia open source applications. The Application manager is a particularly good candidate for this, and could include patches to:

* Disable the legal warning.
* Increase the amount of information Application manager provides.
* Move some of the more useful features out of Red Pill and into the application proper.
* Improve the category view.

=== bootmenu ===

Including a modified initfs both increases versatility (by allowing easier multiboot), and gives all users access to recovery modes for when things go wrong. A graphical bootmenu should be put together to increase user-friendliness.

==== Configuration ====

By default, a bundled initfs should boot immediately to the default partition, offering  a short window to enter recovery mode, but no partition selection. Users can then add partitions either through a .item system on the console with a &quot;flasher&quot; script that commits the appropriate filesystem changes, or through an easy-to-use control panel.

==== Recovery mode ====

The bootmenu should offer a number of recovery modes in addition to the existing USBNet recovery. The recovery mode should offer the option to make backup images (to put on one of the cards or other mass storage device), restore backup images, and maybe offer some sort of framebuffer console for use with a hardware keyboard.</text>
    </revision>
  </page>
  <page>
    <title>Task:Maemo OBS</title>
    <id>5159</id>
    <revision>
      <id>48147</id>
      <timestamp>2012-06-04T22:12:13Z</timestamp>
      <contributor>
        <username>woody14619</username>
        <id>1579</id>
      </contributor>
      <comment>/* Weekly meetings */</comment>
      <text xml:space="preserve">== Goals ==

This project enables the following:

*Provide a single, community OBS that includes Harmattan, Fremantle and Diablo as targets to faciliate the development of applications that work on all platforms.
*To collaborate with Mer/Nemo to share the costs of maintaining and operating the community OBS.

== Weekly meetings ==

We are currently having weekly meetings on Mondays, 15:00 UTC. We will be using the maemo-developers mailing list for communications.

Meeting minutes can be found [[Task:Maemo_OBS:Meeting_Minutes|here]].

== Issues ==

=== Build dependencies ===

Maemo SDK ships what is called a rootstrap with many packages preinstalled. Developers usually do not explicitly mention those packages in their build dependencies because they're already preinstalled.

OBS doesn't accept rootstraps. Each builder process starts with an empty virtual machine, and from there a fixed set of packages is installed onto it. 

Therefore, the packages that do not explicitly list the in-rootstrap packages in their build-dependencies fail to build. 

==== Solutions to consider ====

# Manually go through all build failures and add the missing build-dependencies to the packages. Hard to contact all the package maintainers.
# Manually go through all build failures and add the missing build-dependencies to the fixed list of packages that are preinstalled when the VM starts. Each package on this list adds to the build time of all packages...
# Investigate the use of an actual rootstrap (maybe with SB2 it is possible?)

=== Scratchboxisms ===

A scratchboxism happens when a developer assumes something that is only true when running under Scratchbox(1). It might be a special environment variable, special directory, the behavior of certain commands, the fact that is actually x86, or the use of a custom Scratchbox devkit.

Many packages have scratchboxisms. The exact number is yet to be determined. Hopefully, not large.

==== Solutions to consider ====

# SB2 might help here.
# Manually fix the packages. The hard way. Most build problems are trivial, but even then this might require quite some time.
# ... Emulate those Scratchboxisms in some other way?

== Current progress ==

=== April 23 2012 === 

X-Fade [http://mg.pov.lt/maemo-meeting-irclog/%23maemo-meeting.2012-04-23.log.html#t2012-04-23T18:51:05 agreed] to import the Fremantle 1.3 SDK packages to OBS, as well as the current Fremantle extras-testing. This should give us updated estimates on how large the &quot;problems&quot; are

Additionally, we agreed that we should look for more information on the use of Scratchbox2 on OBS.

=== May 22 2012 ===

[http://mg.pov.lt/maemo-meeting-irclog/latest.log.html#t2012-05-22T17:59:44]

The imported Fremantle 1.3 SDK packages are not yet built. Some issues have already been found (such as [https://bugs.maemo.org/show_bug.cgi?id=11445 the presence of x86 binaries in some official SDK armel packages]). Even with all qt-based packages failing because of the previous issue, the number of failing packages did not grow to unmanageable proportions.


Additionally, we have extra documentation regarding the use of SB2: [http://wiki.merproject.org/wiki/Platform_SDK_and_SB2].

The idea of the build process using SB2 is 1) the builder creates a new virtual machine, 2) installs the base Fremantle X86 packages to it, 3) installs Scratchbox2 and the arm crosscompiler, 4) boots the VM, 5) installs some more packages, 6) configures the SB2 target and installs base packages to it, 6 ) enters SB2 and starts building.

Therefore, the first detected requirement is that we need to provide the following Fremantle X86 debian packages:
# Scratchbox2 
# CodeSourcery 2009q3

javispedro will be playing with this.

=== May 29 2012 ===

xfade:
I've imported qt4-dev with armel binaries into the PR1.3 repo. This fixed building Qt apps for Fremantle

Currently trying to build qemu dynamically linked for PR1.3, starting out with the qemu-kvm version that was uploaded to extras-devel. This failed building a few times on OBS because the vm ran out of memory. Trying again :)</text>
    </revision>
  </page>
  <page>
    <title>Task:Maemo OBS,</title>
    <id>5198</id>
    <revision>
      <id>48146</id>
      <timestamp>2012-06-04T22:10:41Z</timestamp>
      <contributor>
        <username>woody14619</username>
        <id>1579</id>
      </contributor>
      <comment>[[Task:Maemo OBS,]] moved to [[Task:Maemo OBS:Meeting Minutes]]: Messed up link, but using it as a good excuse to put meeting minutes on a separate page, as to not clutter the main page more.</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Maemo OBS:Meeting Minutes]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Maemo OBS:Meeting Minutes</title>
    <id>5197</id>
    <revision>
      <id>48363</id>
      <timestamp>2012-06-12T22:04:16Z</timestamp>
      <contributor>
        <username>woody14619</username>
        <id>1579</id>
      </contributor>
      <comment>/* Meeting Minutes */</comment>
      <text xml:space="preserve">Meetings for Maemo OBS are held on FreeNode in #maemo-meeting Mondays at 15:00 UTC.


----

== Meeting Minutes ==

=== Meeting on June 25th 2012 === 

=== Meeting on June 18th 2012 === 

=== Meeting on June 11th 2012 === 
[http://mg.pov.lt/maemo-meeting-irclog/%23maemo-meeting.2012-06-11.log.html Logs]

* X-Fade reports on progress with Maemo OBS
** Setup LDAP server and will tie that into OBS this week.
** Packaged changes to the OBS scripts for SB2
** Still need to work on SB2 bootstrap repo.
** Got help from SB2 maintainers, still need to package those changes.
* StsKeeps will help with project config setup.
* Merlin1991 would like to help out with testing when setup is ready.
* Javispedro is out the next two weeks with work.

=== Meeting on June 4th 2012 === 
[http://mg.pov.lt/maemo-meeting-irclog/%23maemo-meeting.2012-06-04.log.html Logs]

* X-Fade reports on progress with Maemo OBS
** Found a bug in gcc that was causing high VM usage in some compiles.
** The new OBS can use targeted gcc versions, but may cause issues.
** SB2 setup is on-going.  We have contact with the maintainer and may have a sub-optimal but functional deb version soon.
* Javispedro notes there are issues with SB2.3 pre building in Fremantle. He created a patch that gets around it, but it should be fixed up stream if possible.
* Also noted, SB2 has different paths for it's toolchain (vs SB1).
* Q&amp;A session with X-Fade and Javispedro about current state and issues around OBS.
* Javispedro will likely be out for two meetings after next week (18th/25th).

=== Meeting on May 29th 2012 === 
[http://mg.pov.lt/maemo-meeting-irclog/%23maemo-meeting.2012-05-29.log.html Logs]

* Timoph and X-Fade are working on building qemu under PR1.3
* Stskeeps discusses his work on getting SB2 working with cross compile under Mer.  Suggests SB2.3 is a good candidate for use.
* Javispedro notes that SB2 for Diablo may be very difficult.

=== Meeting on May 14th 2012 === 
[http://mg.pov.lt/maemo-meeting-irclog/%23maemo-meeting.2012-05-14.log.html Logs]

=== Meeting on May 7th 2012 === 
[http://mg.pov.lt/maemo-meeting-irclog/%23maemo-meeting.2012-05-07.log.html Logs]

=== Meeting on May 14th 2012 === 
[http://mg.pov.lt/maemo-meeting-irclog/%23maemo-meeting.2012-05-14.log.html Logs]

=== Meeting on April 23rd 2012 === 
[http://mg.pov.lt/maemo-meeting-irclog/%23maemo-meeting.2012-04-23.log.html Logs]

* Initial meeting (must read for those new to OBS).
* X-Fade lays out what OBS does and how it differs from existing build system.
* Discussions about particulars follow, including questions about Mer's approach and SB2.

== Q &amp; A about OBS (taken from various meeting minutes) ==

''Q:'' What are the current roadblocks?&lt;br&gt;
''A:'' Getting bootstrapping for SB2 is currently on-going, which just takes time &amp; experimentation.  Authentication of OBS is also an issue, as it requires moving the user database to LDAP.

''Q:'' Will the new OBS be slower than the old system?&lt;br&gt;
''A:'' It shouldn't be, as a large part of the build will be done via cross-compile instead of emulated local compile.

''Q:'' Will maintainership issues be easier with OBS?&lt;br&gt;
''A:'' Yes, as OBS has a more granular ACL system that allows permissions to be broken up.  It's far more script-able than the current system.</text>
    </revision>
  </page>
  <page>
    <title>Task:Maemo Summit 2008/Organization</title>
    <id>788</id>
    <revision>
      <id>46067</id>
      <timestamp>2011-12-17T23:34:54Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>Undo revision 46064 by [[Special:Contributions/109.99.76.214|109.99.76.214]] ([[User talk:109.99.76.214|Talk]]) vandalism/SPAM</comment>
      <text xml:space="preserve">{{task|completed}}

There is plenty of things to do for the [[Maemo Summit 2008]] and you can help in any of them.

Propose yourself in any of the ''Who?'' vacant cordination roles. Add yourself to any task you want to volunteer.

== Infrastructure ==
Rooms, equipement, wlan, caffeine.

Quim (Nokia) and Tierhouse (c-base) coordinate.

* Infrastructure and services agreed with c-base. The infrastructure planned can absorb 150-200 people, which is the expected attendance.
** One [http://share.ovi.com/media/qgil.public/qgil.10003?sort=5 big room] and 2 medium for the Summit tracks.
** One small room for the [[Desktop Search Hackfest]].
** [http://share.ovi.com/media/qgil.public/qgil.10002?sort=5 c-base] social [http://share.ovi.com/media/qgil.public/qgil.10001?sort=5 space].
** Wardrobe, watched storage for gear.
** Two bars at c-base and actor school: free tea, coffee, water. Soft drinks 2€.
** Tables, chairs, power chords, projectors.
** Wlan
** Reception, security.
** Cleaning before, during (e.g. empty bottles), and after the event.
** Technical support (mics, wlan, electricity)..
** Lunch.

* 3 tablets with video out will be available to speakers.
** Recording screencasts. Through VNC client and PC? Through video card? Screencast recorder installed in device??? '''OPEN, OPTIONAL'''
* Ideally 3 laptops available as well, to avoid technical problems with projects. '''OPEN, OPTIONAL'''
** While PDF's are going to work, what other formats will be supported on the laptops?  ( PowerPoint version?, Video formats?).  A browser is presumed, but what about SSH or other tools?  I just want to make sure that if my own equipment becomes unusable/unavailable that my presentations are 100% portable to one of these loaner devices. [[User:brontide|brontide]] 15:47, 8 August 2008 (UTC)
***I'm sure enough of us will be around with laptops for 'backup'. If you worried brontide I can install what ever you need on my laptop just in case yours goes 'pop' at the summit [[User:baloo|baloo]]
** I can still connect my macbook correct? --[[User:rsuplido|Reggie]] 19:24, 8 August 2008 (UTC)
* Central place to link to all presentations and materials used. '''OPEN''' It's an important detail but easy to fix, to be decided.
* [[Maemo_Summit_2008/Speakers|Q&amp;A for Speakers]]

== Sponsored participants ==
Approval, instructions, expense claims.

Quim coordinates the approval and anything having to do with money and Nokia.

* List of sponsored participants closed, including Maemo community meembers, bloggers and [[Desktop Search Hackfest]] participants. See the &quot;Accepted&quot; in the [http://maemo.org/news/events/maemo_summit-001/ registration list].

== OSiM ==
Maemo activities at http://www.osimworld.com, registration discount.

Quim coordinates since this is mostly about Nokia driven stuff.

* The list of sponsored community members is available at [[Maemo_in_OSiM_World_2008]].
* The developer session on Thursday 18 will have more than what is explained in the program, based on what Ari Jaaksi will present on Wed 17. Erkko Antila (Fremantle product manager), Quim Gil (OSS marketing manager) and Niels Breet (maemo.org webmaster) will share the schedule to discuss software offering, development platform and Maemo community.
* There will be a 3x2m stand shared between Maemo SW / Nokia and maemo.org /Community. Teemu Sorvisto and Eric Warnke coordinate from Nokia &amp; community side.
::Eric can't organise the OSiM exhibit as he is arriving late. He has passed on the mantle to me. [[User:baloo|baloo]]
* There is a plan for a exhibit: [[Maemo_Summit_2008/Exhibit]].

== Program ==
Define the [[Maemo_Summit_2008#Schedule|schedule]].

Quim coordinates the schedule on Friday, the Nokia strong day.
[[User:brontide|Eric Warnke]] coordinates the schedule on Saturday, the community strong day.

* Progressing fine. Should we put any deadline for proposals to ''scare'' people and make them submit? We can always have last minute changes.--[[User:qgil|qgil]] 22:34, 15 July 2008 (UTC)
* Sarturday starts to need some structure, although we can wait to know better what are the sessions proposed.--[[User:qgil|qgil]] 22:34, 15 July 2008 (UTC)
:Please post your proposals for sessions at [[Talk:Maemo_Summit_2008#Lightning_sessions]] or [[Talk:Maemo_Summit_2008#BoFs_and_workshops]].--[[User:qgil|qgil]] 19:19, 17 July 2008 (UTC)
:: I have volunteered myself for Saturday scheduling, I'll get this beaten into a reasonable schedule soon. [[User:brontide|brontide]] 02:54, 25 July 2008 (UTC)

== Merchandising ==
Shirts, stickers and lanyards with the new maemo.org logo are planned.

Coordinated by [http://maemo.org/profile/view/luovanto.html Jussi].

* We got a new logo to use [[Image:Maemo_org_logo_colour.png]].
* Then we will need asap lovely designs for a shirt and a sticker optimized for tablets. We will also produce lanyards for the Summit badges. Glaubert works on this.
* Amounts and sizes to be defined. The reference is the distribution used for GUADEC'06, that went well. Man: 25 XXL - 175 XL - 225 L - 150 M - 50 S. Woman 25 XL - 25 L - 25 M - 10 S. This time we can add shirts for small children since it seems that there are many young parents in the Maemo community.
* Shirts produced in Helsinki so Jussi can check samples and make sure everything is fine.
* Possibility to send out some to key contributors? To be considered specially if this doesn't bring extra work to Nokians (and to Quim to be more precise)  :)
:Jussi investigates, any ideas welcome.--[[User:qgil|qgil]] 11:48, 31 July 2008 (UTC)

== Marketing &amp; coverage ==
Inform and engage before, during and after the Summit.

Coordinated by Who? (Nokia) and Who? (Maemo community). Perhaps Who? (c-base) as well. 

* Specific tasks to be defined.
* Priority: cover the sponsorship budget with the best contributors asap.
* Priority: keep the registration up to 150 people getting the relevant people in the Maemo community and upstream.
* Jussi and Teemu from the Maemo SW marketing team will help. Back from holidays in August.
* [[User:baloo |Jamie Bennett]] proposes [[Maemo_Summit_2008_recordings|video coverage]]. Time to get into concrete plans.
* [[User:andy80|Andrea Grandi]] offers to take pictures at the event, and blog (almost real time) what happens during the summit in Italian language for people in Italy. --[[User:andy80|andy80]] 14:54, 17 July 2008 (UTC)
* [[User:Timsamoff |Tim]] is helping Jamie with video planning and execution. They've already decided on equipment. He's also bringing a camera to gather stills from the event (but not living blogging them).
* [[User:thoughtfix |ThoughtFix]] will help with interviewing tasks.

== Social events ==
Friday night and whatever else you feel like doing for fun.

Coordinated by Who? (Maemo community) and Who? (c-base).
Quim can help with budget upon request and availability.

* Friday night for sure. Proposals? c-base is well prepared for night fever, multimedia stuff...
* We need to find a shop doing custom shirts sending or bringing an digital image, for the Summit dresscode. I'm totally serious about it. :) --[[User:qgil|qgil]] 22:34, 15 July 2008 (UTC)

== Overall coordination ==
* Shouldn't be needed if the tasks above work just fine. They should be pretty free during the Summit in order to  respond efficiently to any issue. They can take shortcuts deciding in urgent cases.
* Quim (Nokia) + Who? (Maemo community) + housetier (c-base)
** I will be coordinating the exhibit at OSiM and can help out on any other role that is needed whist I'm there. [[User:baloo|baloo]]
* Does Nokia need help with registration processes, etc.? If so, I can stand at a table and check people in, etc. Whatever is needed. --[[User:timsamoff|timsamoff]] 02:52, 25 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Task:Maemo brainstorm</title>
    <id>2817</id>
    <revision>
      <id>28138</id>
      <timestamp>2010-02-02T15:42:19Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Maemo Brainstorm]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Maemo brand</title>
    <id>231</id>
    <revision>
      <id>33052</id>
      <timestamp>2010-04-19T13:06:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>direct link</comment>
      <text xml:space="preserve">{{Template:100Days agenda}}
{{task|completed}}

This is a subtask of [[Task:Defining maemo|Task:Defining Maemo]] coordinated by [[User:Qgil|qgil]].

== Objectives ==
* Describe Maemo and specify the usage of the Maemo brand, changing the [http://maemo.org/intro/trademarks/ trademark policy] if needed.
* Describe ''maemo.org'' as identifier of the Maemo community. 
* Clarify the situation of other related names and logos i.e. codenames, Internet Tablet OS, OS2008...

== Proposal ==
This is a '''DRAFT READY TO REVIEW'''. If nothing happens it will be considered approved at the end of the [[100Days/Sprint2]] (2008/07/22).

=== Definitions ===
* '''Maemo''' - Open source software platform for mobile devices. Developed by Nokia in collaboration with the Maemo community and some of the best open source upstream projects.
** '''Maemo platform''' - The software stack from the Linux Kernel to the SDK. It's mostly open source code originated in upstream projects plus some open components developed by Nokia. Some exceptions of Nokia and third party proprietary software are included in order to provide a fully functional stack.
** '''Maemo SDK''' - Collection of supported developer tools providing the baseline to create applications for Maemo.
** '''Maemo 4''' - A specific Maemo release. Each release gets a codename first, corresponding to the name of a wind (e.g. Chinook). The codename is valid during the development phase, becoming ''Maemo n'' when it's launched.
** '''Applications for Maemo''' - Programs compatible with Maemo. According to the [http://maemo.org/intro/trademarks/ trademark policy], the ''Maemo Something'' formula is recommended only for components that are part of the platform. Applications compatible with Maemo should avoid this formula. This policy is not enforced but just recommended to those projects released before the trademark was approved.
* '''Maemo community''' - The sum of developers working openly on the Maemo platform and compatible applications + Maemo users with different levels of experience, interested in all kinds of collaboration and contributions to the project.
** '''maemo.org''' -  Space of collaboration of the Maemo community, organized around open source tools and ways of working. Started as a project run by Nokia, it's currently moving towards a community driven initiative.
* '''Maemo Software''' - Denomination of the team at Nokia developing and integrating the Maemo platform, SDK and a collection of applications.
* '''Devices running Maemo''' - Nokia 770, N800, N810. All of them belong to the Nokia Internet Tablet family. Nokia integrates in these products an own UI design layer and offers a set of pre-installed applications.

=== Transition ===
* '''maemo Linux based OS2008''' - [http://nokia.com/os2008 Formula used by Nokia] to name the full software stack available for the N800, N810 and N810 WiMAX Edition. From Fremantle onwards the &quot;Maemo n&quot; formula will prevail.
* '''The current maemo logo''' - To be evolved into a &quot;maemo.org&quot; logo identifying the Maemo community. &quot;.org&quot; added, fresh look, no TM. [[maemo.org logo contest|Produced]] and maintained by the community.

=== Deprecated/Wrong ===
* '''Maemo Linux''' - Still used in the ''maemo Linux based OS2008'' formula, currently in transition. Do not propagate further.
* '''Maemo UI''' - Maemo has by default the '''[http://maemo.org/forrest-images/pdf/UI_Style_Guide_Summary_2.0.pdf Hildon UI]''', formed by several components e.g. Hildon Application Framework. Other UIs can be implemented on top of Maemo, by Nokia or third parties.
* '''Maemo devices''' - Unsupported formula, use ''Devices running Maemo'' instead.
* '''Internet Tablet OS''' - Used before the OS2008 formula and deprecated since October 2007.
* '''Sardine''' - Project closed. It was the [http://sardine.garage.maemo.org/ open development project] of the Hildon Application Framework.

=== To Be Defined ===
Out of scope in the 100Days exercise since they would involve extra work in software code, package names... They have no changes in Diablo anyway, let's work on them in the following release cycles. Some of them are core open source applications, to be defined as well if they belong to the platform or are sitting on top of it. 
* '''MicroB''' - Technically is the engine of the [http://browser.garage.maemo.org/ Mozilla based browser]. In practice is the name the community is using when referring to the whole browser product.
* '''Modest''' - [http://modest.garage.maemo.org/ Open source email client] released with Diablo.

=== Changes to the [http://maemo.org/intro/trademarks/ Maemo Trademark Policy] ===
The Maemo SW team at Nokia will take care of this. Not relevant anymore from a Maemo community point of view.
* The new rule defines &quot;Maemo&quot; always beginning with upper case.
* The usage of the &quot;maemo.org&quot; logo needs to be defined. The &quot;maemo.org&quot; logo can be used to link to http://maemo.org but not to e.g. Maemo pages at nokia.com.
* Current &quot;maemo&quot; logo to be removed.
* No TM for the &quot;maemo.org&quot; logo.

== Discussion ==
Moved to [[Talk:Task:Maemo brand]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Maemo brand</title>
    <id>231</id>
    <revision>
      <id>33052</id>
      <timestamp>2010-04-19T13:06:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>direct link</comment>
      <text xml:space="preserve">{{Template:100Days agenda}}
{{task|completed}}

This is a subtask of [[Task:Defining maemo|Task:Defining Maemo]] coordinated by [[User:Qgil|qgil]].

== Objectives ==
* Describe Maemo and specify the usage of the Maemo brand, changing the [http://maemo.org/intro/trademarks/ trademark policy] if needed.
* Describe ''maemo.org'' as identifier of the Maemo community. 
* Clarify the situation of other related names and logos i.e. codenames, Internet Tablet OS, OS2008...

== Proposal ==
This is a '''DRAFT READY TO REVIEW'''. If nothing happens it will be considered approved at the end of the [[100Days/Sprint2]] (2008/07/22).

=== Definitions ===
* '''Maemo''' - Open source software platform for mobile devices. Developed by Nokia in collaboration with the Maemo community and some of the best open source upstream projects.
** '''Maemo platform''' - The software stack from the Linux Kernel to the SDK. It's mostly open source code originated in upstream projects plus some open components developed by Nokia. Some exceptions of Nokia and third party proprietary software are included in order to provide a fully functional stack.
** '''Maemo SDK''' - Collection of supported developer tools providing the baseline to create applications for Maemo.
** '''Maemo 4''' - A specific Maemo release. Each release gets a codename first, corresponding to the name of a wind (e.g. Chinook). The codename is valid during the development phase, becoming ''Maemo n'' when it's launched.
** '''Applications for Maemo''' - Programs compatible with Maemo. According to the [http://maemo.org/intro/trademarks/ trademark policy], the ''Maemo Something'' formula is recommended only for components that are part of the platform. Applications compatible with Maemo should avoid this formula. This policy is not enforced but just recommended to those projects released before the trademark was approved.
* '''Maemo community''' - The sum of developers working openly on the Maemo platform and compatible applications + Maemo users with different levels of experience, interested in all kinds of collaboration and contributions to the project.
** '''maemo.org''' -  Space of collaboration of the Maemo community, organized around open source tools and ways of working. Started as a project run by Nokia, it's currently moving towards a community driven initiative.
* '''Maemo Software''' - Denomination of the team at Nokia developing and integrating the Maemo platform, SDK and a collection of applications.
* '''Devices running Maemo''' - Nokia 770, N800, N810. All of them belong to the Nokia Internet Tablet family. Nokia integrates in these products an own UI design layer and offers a set of pre-installed applications.

=== Transition ===
* '''maemo Linux based OS2008''' - [http://nokia.com/os2008 Formula used by Nokia] to name the full software stack available for the N800, N810 and N810 WiMAX Edition. From Fremantle onwards the &quot;Maemo n&quot; formula will prevail.
* '''The current maemo logo''' - To be evolved into a &quot;maemo.org&quot; logo identifying the Maemo community. &quot;.org&quot; added, fresh look, no TM. [[maemo.org logo contest|Produced]] and maintained by the community.

=== Deprecated/Wrong ===
* '''Maemo Linux''' - Still used in the ''maemo Linux based OS2008'' formula, currently in transition. Do not propagate further.
* '''Maemo UI''' - Maemo has by default the '''[http://maemo.org/forrest-images/pdf/UI_Style_Guide_Summary_2.0.pdf Hildon UI]''', formed by several components e.g. Hildon Application Framework. Other UIs can be implemented on top of Maemo, by Nokia or third parties.
* '''Maemo devices''' - Unsupported formula, use ''Devices running Maemo'' instead.
* '''Internet Tablet OS''' - Used before the OS2008 formula and deprecated since October 2007.
* '''Sardine''' - Project closed. It was the [http://sardine.garage.maemo.org/ open development project] of the Hildon Application Framework.

=== To Be Defined ===
Out of scope in the 100Days exercise since they would involve extra work in software code, package names... They have no changes in Diablo anyway, let's work on them in the following release cycles. Some of them are core open source applications, to be defined as well if they belong to the platform or are sitting on top of it. 
* '''MicroB''' - Technically is the engine of the [http://browser.garage.maemo.org/ Mozilla based browser]. In practice is the name the community is using when referring to the whole browser product.
* '''Modest''' - [http://modest.garage.maemo.org/ Open source email client] released with Diablo.

=== Changes to the [http://maemo.org/intro/trademarks/ Maemo Trademark Policy] ===
The Maemo SW team at Nokia will take care of this. Not relevant anymore from a Maemo community point of view.
* The new rule defines &quot;Maemo&quot; always beginning with upper case.
* The usage of the &quot;maemo.org&quot; logo needs to be defined. The &quot;maemo.org&quot; logo can be used to link to http://maemo.org but not to e.g. Maemo pages at nokia.com.
* Current &quot;maemo&quot; logo to be removed.
* No TM for the &quot;maemo.org&quot; logo.

== Discussion ==
Moved to [[Talk:Task:Maemo brand]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Maemo contributions</title>
    <id>2706</id>
    <revision>
      <id>20056</id>
      <timestamp>2009-10-14T10:55:57Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Task:Maemo contributions]] moved to [[Open development/Maemo contributions]]: move</comment>
      <text xml:space="preserve">#REDIRECT [[Open development/Maemo contributions]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Maemo public roadmapping process</title>
    <id>617</id>
    <revision>
      <id>33068</id>
      <timestamp>2010-04-19T14:01:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify link</comment>
      <text xml:space="preserve">{{Template:100Days agenda}}
{{task|ongoing}}

This is a subtask of [[Open development/Maemo roadmap|Task:maemo roadmap]] coordinated by [[User:Qgil|qgil]].

Feedback welcome.

* How Nokia should disclose roadmap plans.
* Good practices (URLs welcome).
* How the community should provide input and influence the roadmap.
* Anything else missing.</text>
    </revision>
  </page>
  <page>
    <title>Task:Maemo roadmap</title>
    <id>2896</id>
    <revision>
      <id>27660</id>
      <timestamp>2010-01-28T14:09:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Open development/Maemo roadmap]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Maemo roadmap/Fremantle</title>
    <id>2895</id>
    <revision>
      <id>27656</id>
      <timestamp>2010-01-28T14:07:12Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Open development/Maemo roadmap/Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Maemo roadmap/Harmattan</title>
    <id>2894</id>
    <revision>
      <id>28136</id>
      <timestamp>2010-02-02T15:40:38Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Open development/Maemo roadmap/Harmattan]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Mapping openness</title>
    <id>99</id>
    <revision>
      <id>36709</id>
      <timestamp>2010-07-13T10:31:28Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Ongoing */ fix link</comment>
      <text xml:space="preserve">{{100Days agenda}}

==Objectives==
* Clarify the open source strategy of Nokia in Maemo.
* Identify the licenses of the packages that make Maemo.
* Provide the reasons of closed source packages to be closed.
* Define a process to request the opening of a package.
* Document the maemo.org maintenance and development processes.

==Tasks==
Help is welcome in all of them.

===Completed===
* Document explaining the open source positioning and strategy of Nokia in Maemo. - Quim
* Introduce [[Maemo package source status|license and open/closed status]] to the [[Task:Components_and_packages|list of packages]] - Soumya?

===Ongoing===

* [[Task:Document maemo.org processes|Documenting in maemo.org the web development process]] (see [[Maemo.org team/Updating maemo.org sites|updating maemo.org sites]]  - Dave
* [[Why the closed packages|Explanation of the reasons why the closed source packages are closed]] - Quim
* Describe the [[Task:Maemo contributions|Maemo contributions]] to complement http://opensource.nokia.com - Quim

===Backlog===
Currently in the [https://garage.maemo.org/plugins/wiki/index.php?June2008Sprint&amp;id=106&amp;type=g maemo.org backlog]:
* Define maemo.org policies for things like editbugs, getting @maemo.org email addresses, and if it doesn't exist, getting svn access - Dave
* [https://bugs.maemo.org/show_bug.cgi?id=1584 Bug 1584] - provide system management software under free software licenses - Quim
* Process to [[Source petition for example package|request a closed source package to be open]] - volunteers needed.
* Review the [http://maemo.org/legal/contribution_guidelines/ Maemo contribution guidelines] - Quim</text>
    </revision>
  </page>
  <page>
    <title>Task:Mer Repository Setup</title>
    <id>1381</id>
    <revision>
      <id>40088</id>
      <timestamp>2010-11-12T15:11:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{mer}}</comment>
      <text xml:space="preserve">{{mer}}

As part of the Mer bootstrapping process, a repository at http://repository.maemo.org/community/ will have to be set up.

== Repository layout ==

*Suite: unstable
*Codename: alpha
*Components: main
*Architectures: i386 armel (all)

(later we will have a stable distribution, and a similar promotion interface to extras one will be used)

== Bootstrapping ==

*Copying all .dsc and .deb from repository.mer.tspre.org and loading into repository. We get SDK problems if we have to re-compile everything again, and the packages were built natively already.

== Upload possibilities ==

*Similar interface as to uploading to i386 &amp; armel builder as with extras.
*There should be a specific moderation of invitations to be able to upload to the Mer repositories.
*There should be a possibility to upload self-built packages (source &amp; binary packages), like 'non-free' but directly to 'main', for certain uploaders (kernel-diablo is a specific problem, as it doesn't build cleanly on new SDK with gcc4)

== Builder specifics == 

*Builders should target both i386 and armel (armv5el, not vfp) (will probably have to be set with CFLAGS)
*Mer has, for armv5el, a scratchbox v1 SDK:
**Toolchain: http://scratchbox.org/~jhakala/unofficial/scratchbox-toolchain-arm-linux-cs2008q3-72_1.0.8-1_i386.deb
**Devkit: http://stskeeps.subnetmask.net/mer/scratchbox-devkit-mer_1.0.8_i386.deb , debian-etch, cputransp
**On top of QEMU EABI: (http://maemogeek.blogspot.com/2007/11/installing-qemu-arm-eabi-patch-into.html)
**sb-conf setup MER-ARMEL --compiler=arm-linux-cs2008q3-72 --devkits=debian-etch:cputransp:mer --cputransp=qemu-arm-eabi -f
**sb-conf reset -f MER-ARMEL
**sb-conf select MER-ARMEL
**sb-conf rootstrap MER-ARMEL http://stskeeps.subnetmask.net/mer/mer-armel-rootstrap-v8.tar.gz
**sb-conf install MER-ARMEL --etc --devkits
*For i386 a following model could work:
**A tar.gz with debootstrap of a buildd variant (found at http://stskeeps.subnetmask.net/mer/mer-i386-rootstrap-v0.tar.gz ) , apt sources may have to be adjusted.
**chrooting into the unpacked tar.gz, put in source package, grab dependancies, build it natively (pbuilder?)
[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Motivating people</title>
    <id>1423</id>
    <revision>
      <id>34219</id>
      <timestamp>2010-05-11T08:24:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">Recently there has been [http://www.internettablettalk.com/forums/showthread.php?t=26147 some discussion] about what motivates people, how more people can get involved and how to encourage people to get involved.

While the discussion is certainly very lively, and people certainly have come up with a lot of ideas, the forum may not be the best way to organize potential solutions. For that reason, this wiki page may be used to brainstorm some ideas about what could motivate people (could be you, could be other people) to get more involved in Maemo-related (not necessarily Nokia!) projects. There is one twist about contributing to this wiki: '''Anyone who contributes a problem or something that keeps them from getting involved, must also try to offer a solution.''' It's ok to be optimistic, but also try to be realistic. Also, there are sometimes more than one solution to the same problem. Don't stop brainstorming about ways to fix 
problems just because someone else has brought up a solution!

=== API Breaks ===

* ''Problem'': Some people are worried about sudden API breaks in the future forcing them to rewrite their code.
* ''Solution'': Nokia could commit to giving a certain amount of warning before breaking public APIs.

=== Money ===

* ''Problem'': Some people aren't motivated to code for Maemo because they're not making money off of it.
* ''Solution 1'': Would it be possible for Nokia to put up some bounties for projects that they feel are suited to the community and that they aren't working on internally?
* ''Solution 2'': Nokia (or maemo.org?) could setup a centralized bounty system so that users could post bounties for certain projects.
* ''Solution 3'': maemo.org hires!, hire developers to develop components chosen by the community, already seen with debmaster, the people running maemo.org, etc.
* ''Solution 4'': How about an app store like for a popular phone? I know it sounds cliche, but I really believe many developers are there because it is SO easy to have the potential to make some modest amount of money.

=== Don't know where to start ===

* ''Problem'': It's hard for me to get involved because I don't know what needs to be done.
* ''Solution'': Create a subforum where developers can make requests for assistance (Need artist for new icon, please test this new release, translators needed, etc.)

=== Development tools are challenging to setup ===

* ''Problem'': The larger the barrier to getting a working development environment, the fewer contributors
* ''Solution'': Productize the eclipse development environment - no more alpha or beta, make it feature complete and simple to use. Can the community contribute to this?

[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Move DNS</title>
    <id>3497</id>
    <revision>
      <id>32700</id>
      <timestamp>2010-04-14T14:59:13Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix template usage</comment>
      <text xml:space="preserve">{{task|proposed}}

DNS for maemo.org is currently hosted at Nokia. In January 2010, there was a multi-DAY outage in part caused by DNS issues. Apparently it takes a &quot;long&quot; time to get DNS changes for maemo.org through  Nokia.

There are literally hundreds of DNS providers, many of which could do the job for a service which should run 100% of the time. Updates can be done immediately via web interfaces. The cost is very minimal.

In sum, maemo.org should switch to a new DNS host.

[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Open Development</title>
    <id>2632</id>
    <revision>
      <id>21105</id>
      <timestamp>2009-10-27T00:38:04Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <minor/>
      <comment>Redirecting to [[Open development]]</comment>
      <text xml:space="preserve">#REDIRECT [[Open development]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Open Source Proof Points</title>
    <id>1236</id>
    <revision>
      <id>41766</id>
      <timestamp>2011-02-10T10:02:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Patches */ add links</comment>
      <text xml:space="preserve">{{task|proposed}}

{{quotation|After youtube’s madness, I wouldn’t ever underestimate the creativity of the kids anymore. After wikipedia, the Linux kernel, KDE, GNOME, Webkit and Firefox, I wouldn’t ever underestimate the energy of volunteer experts anymore.|[http://pvanhoof.be/blog/index.php/2008/10/05/comparing-mobile-development-to-the-music-industry From the mind of Philip]}}

All we know open source is great, but in addition of the aim and the theory it is good to collect real cases. Those proof points should be based on the Maemo platform and showcase examples of open source contribution goodness. Examples on how community contributions are helping Nokia building a better platform and shipping commercial products with it.

== Application Manager ==

The open Application Manager has allowed community developers to step in and begin [[Task:Improving the Application manager|improving it]] without [http://www.internettablettalk.com/forums/showthread.php?t=24582 waiting for Nokia].

== Patches ==

Community members have [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=patch&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= submitted many patches] to Maemo thanks to its open nature.

Some of these are currently being integrated into a [[Community SSU|Community Seamless Software Update]] - updates and upgrades to [[Nokia N900|N900]]'s Maemo 5 core software that can be installed as a normal firmware update, provided entirely by community members.

== Applications ==
Some of the best community contributions are simply applications!
=== Maemo Mapper===
Maemo Mapper has been here since OS2006 on the 770, and is a community-built, open source mapping application with GPS support. It's an excellent alternative to the default Map application included with OS2008/Diablo.
=== Canola ===
Possibly a jewel of open-source on the tablets, Canola (again, since OS2006) is a (soon to be?) open-source media center for the tablet. It's got plug-ins for last.fm, YouTube, and has a built-in podcast downloader and photo-viewer. It can download cover-art automatically (again, with a plug-in) and do plenty of neat tricks.
=== MPlayer ===
Why wasn't this included by default in OS2008, or at least Diablo? It supports every bloody format you can throw at it, and is a massive improvement over the default. There are also frontends that increase usability.

== Alternative Operating Systems ==
{{main|Alternative operating systems}}
Many ports of other operating systems have been done and can be installed with little trouble, thanks to a great deal of community support and documentation.</text>
    </revision>
  </page>
  <page>
    <title>Task:PIM</title>
    <id>1310</id>
    <revision>
      <id>32601</id>
      <timestamp>2010-04-13T13:18:38Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify link</comment>
      <text xml:space="preserve">This page started as a consequence of this ITt thread: [http://www.internettablettalk.com/forums/showthread.php?t=24654 Did you say PIM? Come here please]. 

* Vote on current enhancement requests or open new ones at http://bugs.maemo.org
* Summarize more complex proposals here or in new wiki pages.
* Link to good and bad ideas, projects, examples out there.

This exercise is as useful to Nokia as to the own community and 3rd party developers in seeing what are the great ideas and points of most interest. And the names able to move them forward. Think visionary. Think Harmattan. Squeeze your brains showing that you are getting it so right.

== General needs ==
In trying to ''move outside the PIM-trap'', please list here the things you want to do with your tablet related to managing your daily life. Who knows, maybe there are better ways of doing &quot;PIM&quot; besides of the regular Calendar+Todo+Addresses approach.

* Knowing where I need to be today
* Knowing where I need to be next
* Knowing where I was last friday at four

* Knowing when I have free time next week / month
* Knowing if I'm free tomorrow at six

* Knowing the context of my events (work, studying, hobbies, friends)

* Seeing all the times I've been to place X or met person  Y
* Having the device notify me if it notices that I'm running late or forgetting something (GPS, location awareness?)


* Using the data from my previous calendar when migrating to tablets
* Browsing my events on my computer and cell phone. I should have all the contacts from my cell and computer on the tablet, and changes should be updated elsewhere automatically.


* Making notes quick
* Finding my notes later easily 
* Classifying my notes (work, school, misc.)


* Initiating a phone call to my friend from my tablet

[[User:naranek|naranek]]

* Getting related information I'm not actively looking for as a side effect: 
** Postal addresses show up in map application as POIs (get people-related info when I'm not in &quot;Contacts&quot;)
** Instant messaging application highlights contacts with birthdays (get time-related info when I'm not in &quot;Calendar&quot;) [[User:ossi1967|ossi1967]] 12:52, 31 October 2008 (UTC)


Let's not forget there's a context outside Maemo - Ovi.com, the user's dektop etc. - Regardless of the necessity to &quot;think outside the box&quot;, do we have a common understanding that when we say PIM, it means ''at least'' Calendar+Todo+Addresses+Notes+Syncing? [[User:ossi1967|ossi1967]] 09:17, 31 October 2008 (UTC)

Personally only use the calendar from the usual PIM software, so I hope others can chime in on the needs that the other software fills. We certainly shouldn't limit ourselves to anything at this point. (I also have trouble staying logged in so I'm writing anonymously. Sorry about that.) [[User:naranek|naranek]]

== Desired Features ==

=== General/shared features ===
SIMPLE views for the UI dialogs.  most of the time as a user I do not require all these things, yes we '''need''' them there, but an option to dumb down or remove the extra stuff would be really important to me. 
* for instance, most todo items for me simply need a description, once they are on the list I know they need doing

--[[User:lcuk|lcuk]] 22:25, 30 October 2008 (UTC)

The GTD philosophy is to collect simply and easily, and process later.  A quick entry option would be wise - or a tabbed interface like mCalendar or Pimlico Dates.- [[User:boxofsnoo|boxofsnoo]]

Allow items to be tagged with more than one tag and allow filtering on multiple tags.
* So, a contact may work for Company X, be alumnus of school Y and be a part of SIG A. I would like to be able to assign tags &quot;X&quot;, &quot;Y&quot;, and &quot;SIG A&quot; and later filter on any of these tags to find all my contacts who work for &quot;X&quot; and were once in &quot;Y&quot; etc. 

-- [[User:cyta|cyta]]

Some things aren't essential but really help.  For example, a context-sensitive zoom... for example, in Pocket Informant, you tap on a day in the month grid and that day grows to take most of the grid space, and everything else squashes down to minimum size.

Palm's newer address books did this too, as you scrolled through the names with the hardware keys, the currently selected one was double the height, and had much bigger fonts.

I can see how this could extend also to the todo list, too  --[[User:boxofsnoo|boxofsnoo]] 01:38, 31 October 2008 (UTC)

the current app manager kindof does this --[[User:lcuk|lcuk]] 19:47, 2 November 2008 (UTC)

=== Calendar ===
#* Calendar function with '''iCal''' support - import/export functions
#* Multiple calendars (ie. work, home, hobbies, school..)
#* Interaction  (or import from) with Web enabled calendars - namely Google, Zoho Planner, 30 Boxes
#* Integrate Calendar with Addressbook component - for easy inter communication between apps
#** Automatically import anniversairies and '''birthdays from addressbook''' oponent and calculate (current age e.g.) - [[User:asys3|asys3]]
#*** Do we want to &quot;import&quot; as in &quot;import once&quot; or do we want to automatically have birthdays/anniversaries displayed in calendar if option checked? I'd prefer the automatic way. [[User:ossi1967|ossi1967]] 12:37, 31 October 2008 (UTC)
#* Interact Calendar with Web Browser - so as to enable opening a web link from a Calendar event directly
#* Allow generic and open format of Calendar data - so that it can be used by 3rd party apps as well (i.e. sqlite)
#* Synching
#** Support '''syncml''' to synchronize dates to mobile phone and a server pim database (e.g. funambol, evolution) - [[User:asys3|asys3]]
#** '''Support CalDAV''' - [[User:boxofsnoo|boxofsnoo]]
#** Support '''synching over bluetooth''' and wlan - [[User:asys3|asys3]]
#** Support synching with OpenSync to allow syncing with widest range of other applications (including kdepim and evolution) - [[User:gcobb|gcobb]]
#** Support direct syncing with Outlook (over BT, USB, WiFi) -- it may be evil but it is by far the dominant requirement for anyone in business - [[User:gcobb|gcobb]]
#* Interaction with email program - allow to open a mail with a specific date attached - [[User:asys3|asys3]]
#** Better yet, copy the mail body into the notes field of the event. - [[User:boxofsnoo|boxofsnoo]]
#** And send and receive meeting requests (iCalendar format) by email, with Accept, Decline, Tentative responses - [[User:gcobb|gcobb]]
#* Monthly grid view
#** Multi-day events - [[User:boxofsnoo|boxofsnoo]]
#** Multiple calendars - [[User:boxofsnoo|boxofsnoo]]
#** Quick-glance task identification - icons? - [[User:boxofsnoo|boxofsnoo]]
#* Integrate to-do items into schedule - items with no date should show up on 'today' - [[User:boxofsnoo|boxofsnoo]]
#** wouldn't that get very messy quickly?  have options for the display [ ] events [ ] tasks [ ] mails ... ? --[[User:lcuk|lcuk]] 22:40, 30 October 2008 (UTC)
#*** most PIM apps on, say, Palm do this already.  The options are typically to hide undated, or only show tasks that are pending. Mails are completely unnecessary, if it's a task that's mailed, it will typically already be converted into one or the other. - [[User:boxofsnoo|boxofsnoo]]
#* Repeating events - [[User:vre|vre]]
#** Repeating options similar as in GPE or in Date Book for PalmOS (check Garnet VM)
#** An event can be changed so that all occurences change accordingly
#** An event can be removed from the middle of repeat
#** Events can be removed for a period, or for all future events from the selected day
#** An individual event's time/date can be adjusted so that the other occurences does not change (decoupling)
#** An individual event can be renamed without changing the rest of the occurences (decoupling)
#* Alarms should integrate with the alarm daemon (allow alarms to wake up device when off, etc.) --[[User:davidgro|davidgro]] 11:10, 10 February 2009 (UTC)
#* Types of repeating events - [[User:tor|tor]] (copied from an ITT posting about Palm repeating events)
#** Daily until..
#** Every week (on day)
#** Every other week (on day)
#** Every month (on day)
#** Every year (on date)
#** Every N day(s) until date (or forever)
#** Every N week(s) until date (or forever), on e.g. Thursday
#** Every N month(s) until date (or forever), e.g. the 27th of that month
#** Every N month(s) until date (or forever), e.g. the 4th Thursday of that month
#** Every N year(s), until date (or forever), e.g. November 27th every year
#* Good support for timezones, including plane journeys that start and end in different timezones.  At least the back end and iCal import/export should handle them correctly, preserving timezone information if and when it exists.  ([[User:matthew_exon|matthew_exon]] - this stuff has caused me enough trouble I've resorted to writing [http://mat.exon.name/cgi/travel-calendar this] to work around it.)  Use cases:
#** I work in Sydney.  A colleague in San Francisco invites me (with an iCal file) to a weekly conference call at 09:00 every Wednesday, SF time.  When daylight savings switches in either SF or Sydney, the appointment adjusts accordingly, so that it's always 09:00 SF time. For bonus points, calendar gives me an extra warning whenever any timezone I have appointments in has an upcoming daylight savings change.  &quot;Daylight savings starts in the USA on Sunday. The following appointments will be an hour earlier: (shows my American appointments)&quot;.  Then, a couple of weeks later, &quot;Daylight savings ends in New South Wales on Sunday.  The following appointments will be an hour earlier: (also shows my American appointments)&quot;.
#** I've booked a flight from Auckland, New Zealand, to Los Angeles.  It leaves on Monday at 17:30 New Zealand time, and arrives at 11:45 the same day LA time.  Notice that it arrives before it leaves - the UI shouldn't barf at this!  I want to email this appointment to a friend as an iCal file so that he can pick me up at the airport.
#** I work in London, but I'll be in New York for three days from next Tuesday.  I schedule an automatic timezone change for 13:00 that day.  There's a time difference of 5 hours, so next Tuesday is shown as having 29 hours, with the hours 08:00 to 13:00 appearing twice.  For the three days I'm in New York, the calendar shows New York time, for the days before and after London time.  That way I can, right now, add appointments in both London and New York, without having to calculate timezone offsets in my head every time.
#*** Is it really necessary for Tuesday to be shown as having 29 hours? It would seem better just to have the UI allow you to change the time zone as required. Having 29 hours in the same day due to a transit raises many issues that might not be worth the development cost of dealing with (even dealing with daylight savings time adjustments correctly raises so many issues that most calendaring applications do not deal with it correctly, or even at all). Consider this:
#**** Taking a trip to just the other side of the date line may result in arriving the day before you leave. This cannot be dealt with using a longer or shorter day alone (although it could be dealt with by two duplicated short days, however the SYD-LAX case could also be dealt with by a single duplicated short day)
#**** In a multi-day view there should be some synchronisation between the times on the multi-day view. I have yet to see a published calendaring application that does this correctly for the daylight savings case. Doing so for a time zone change due to travel would result in a lot of extra blank space on the screen.
#**** How would you propose to deal with recurring appointments intersecting the transition? (This is a problem for daylight savings transitions too, but would be worse in this case).
#**** Having said all that this is not impossible. It could be mostly dealt with by including an internal (to the application) time zone that has additional adjustments (although going backwards a day could not be), but see below.
#**** Consider an East Coast business person with the trip set out below. You have four transitions in the one day (including the daylight savings to standard time transition in the morning). Reading the single day view is somewhat of a challenge because there are multiple duplicate time spans, and some of them do not occur on the hour, requiring additional horizontal lines to mark the time zone transition. The days before and after need multiple transition periods (in a multi-day view) where a gap is displayed in the day (so as to attempt to line up &quot;correctly&quot; with this day).
#***** On the day that daylight savings ends, start in New York City at 6:00am (ExT) on UA7660.
#***** Arrive in Chicago at 11:05am (CxT).
#***** Conduct a meeting at the airport from 12:00pm to 1:00pm. Yes, it is Sunday, but our business person is an orthodox Jew, so his Sabbath was the day before and conducting business on a Sunday seems a perfectly natural thing for him to do.
#***** Leave Chicago at 2:46pm on UA220.
#***** Arrive in Denver at 4:24pm (MxT).
#***** Conduct a meeting at the airport from 5:00pm to 5:30pm.
#***** Leave Denver at 6:05pm on UA498
#***** Arrive in LA at 7:32pm (PxT)
#***** (Amazingly, on this day, all the flights depart and arrive precisely on time).

=== Address Book ===
#* import/export functions 
#* Integration with the Calendar component - allow for cross application interaction
#* Import/export from web Contact apps - namely Google Contact, Yahoo Address Book etc.
#* Allow user added fields (e.g. 4 mobile phone numbers if needed, 2 URLs for office/private website) - [[User:asys3|asys3]]
#* Either allow multiple format masks for fields like phone numbers or do not enforce a format on them.
#** (E.g. &quot;US&quot; formatted phone numbers just look wrong in other countries) - [[User:cyta|cyta]]
#** Agreed, most of the best contact apps do not enforce formats. - [[User:boxofsnoo|boxofsnoo]]
#** Still: Assuming that voice call applications will access the data, we face the following problem: Synced data ends up on or, more likely, comes from the cell phone. A lot of people follow the carriers' advice and use the international prefix there. (like &quot;+431555123&quot; for the number 555123 in vienna (01), austria (0043).) VoIP-carriers sometimes don't handle this well and expect 0+area code+number instead or 00+country code+area code+number for international calls. This is most annoying and currently prevents dialling directly from the address book. One possible solution would be to have each voice call application handle this. The other would be to offer a call to the PIM-database for such applications to retrieve &quot;+&quot;-prefixed numbers in a user-defined way, like: &quot;replace +43 with 0&quot;. Having this boring part centralized in the PIM-framework could even make it more powerful: in combination with a geolocation-API, the rules could depend on where I am. (if I'm abroad, replace +43 with 0043) - nobody would do something like this for only 1 voip application, so it'd be cool to have it in the PIM. [[User:ossi1967|ossi1967]] 19:02, 1 November 2008 (UTC)
#* Integrate with Maemo email client - so as to allow selection/adding to and from the addressbook and email client together
#* Allow active web links from any contact information to interact with Web browser.
#* Allow generic and open format of Calendar data - so that it can be used by 3rd party apps as well
#** should be '''VCARD''' - look for best suitable VCARD definition - [[User:asys3|asys3]]
#** That would be vCard 3.0, specified in RFC 2425 and RFC 2426.  But this is for import/export, not for the application data - [[User:gcobb|gcobb]]
#* Synching
#** '''Support syncml''' to synchronize contacts to mobile phone and a server pim database (e.g. funambol, evolution) - [[User:asys3|asys3]]
#** Support '''synching over bluetooth''' and wlan - [[User:asys3|asys3]]
#** Support synching with OpenSync to allow syncing with widest range of other applications (including kdepim and evolution) - [[User:gcobb|gcobb]]
#** Support direct syncing with Outlook (over BT, USB, WiFi) -- it may be evil but it is by far the dominant requirement for anyone in business - [[User:gcobb|gcobb]]
#* Avoid the &quot;first name / last name&quot; thing.  Where am I supposed to put the middle name?  What about when my contact is a business name?  And it causes lots of confusion for Chinese names where the family name is the first name.  Better to just have a single &quot;Name&quot; field.

=== ToDo List ===
#* Items should have start date, deadline, priority, tags as well as description and completed (and completion date). 
#* Should optionally be finger-friendly (especially relevant for to-do lists)
#* Subtasks/Projects - a 'hierarchical todo list', can include tick-box items, amount-completed for subtasks, and/or just headings (see [http://www.janerob.com/rob/prozect/ prozect])
#* Integration with sites like ToodleDo or RememberTheMilk.
#* Recurring tasks
#* Categorized/tagged filtered view
#* Include options for items to fire an alarm not only at a certain time, but also at a certain place (&quot;remind me when I'm  at...&quot;)
#* Make tasks visible in calendar too, start date to deadline (similar to no time event in PalmOs date book)
#* After completing: hide or show as done (this could be adjustable view from a menu)
#* Multiple lists (home, work, hobbies) - basically a tag also.. but tied with calendar and addressbook and their separate groupings
#* Should be viewable (and zoomable) by context or tag.  Zoom will take the current filtered/grouped level and elevate it to the top or root level, so that nothing else is visible.  Good for focusing on a project, or showing tasks only relevant to a context (&quot;At Office&quot;, &quot;Out shopping&quot;)
#* Synching
#** Support synching with OpenSync to allow syncing with widest range of other applications (including kdepim and evolution) - [[User:gcobb|gcobb]]
#** Support direct syncing with Outlook (over BT, USB, WiFi) -- it may be evil but it is by far the dominant requirement for anyone in business - [[User:gcobb|gcobb]]

=== Syncing ===
*Sync on a per-profile basis; (Nokia could pre-configure profiles like Ovi)
*Sync from/to desktop as well as to services on the internet
*Let user define sync options (refresh from server, overwrite, sync 2 ways....) 
*Maybe central place in settings or in a dedicated sync application to do these settings. &quot;Sync now!&quot; only from applications. (Simpler this way?) [[User:ossi1967|ossi1967]] 12:53, 31 October 2008 (UTC)
*Pay special attention to the way instant messaging Contacts are handled after a sync: Today it may happen that people from my XMPP roaster will end up as new contacts after a sync even though they already have a full entry (with phone number, postal address etc.) in the EDS database... The PIM framework needs a way to keep track of changes on both ends, instant messaging and sync interface, and at least try to re-apply roaster data to the correct contacts even after a full &quot;overwrite from server&quot;-sync. [[User:ossi1967|ossi1967]] 10:21, 24 November 2008 (UTC)
*Strongly recommend adopting OpenSync as the sync tool: it either already handles or intends to handle the issues above (which are really very tough) -- no point in duplicating work - [[User:gcobb|gcobb]]
*Easy, single-button sync with paired mobile phone - [[User:gcobb|gcobb]]

== User Interface Considerations ==
There's a choice between the &quot;one application PIM suite&quot; (as Outlook, Evolution) and many smaller applications.
I guess on a tablet it makes sense to offer smaller &quot;per-use-case&quot;-applications the way the Pimlico suite currently does. [[User:ossi1967|ossi1967]] 09:51, 31 October 2008 (UTC)


Here is an example of a per-use-case approach. This won't be useable for all use cases of calendar, but for browsing on the move this would be great, because it is also very easy to use with the 4-way navigator. The idea is presenting the calendar as a menu where you navigate toward the information you want. It doesn't require starting a separate program, just start clicking from a calendar button. 

Because of [https://bugs.maemo.org/show_bug.cgi?id=3788 Bug 3378] I can't add the images to the wiki, but see the following links to see what I mean.
[http://naranek.wippiespace.com/n800/sshot01.png Image 1] [http://naranek.wippiespace.com/n800/sshot02.png Image 2] [http://naranek.wippiespace.com/n800/sshot03.png Image 3] [http://naranek.wippiespace.com/n800/sshot04.png Image 4] [http://naranek.wippiespace.com/n800/sshot05.png Image 5] [http://naranek.wippiespace.com/n800/sshot06.png Image 6]
[http://naranek.wippiespace.com/n800/sshot07.png Image 7] 
I made a quick &amp; dirty demo with the bookmarks. You can try it yourself by downloading and importing [http://naranek.wippiespace.com/n800/Calendar-final-2.html this file] to bookmarks: 
I have only filled one day and made paths that lead to it from week, month and year routes so you get the idea. The numbers are there mostly to keep the items in order. This would need a nicer way of going back in the structure, and browsing long lists up and down, but it's just quick &amp; dirty prototyping anyway. [[User:naranek|naranek]] [[Special:Contributions/80.221.22.253|80.221.22.253]] 10:14, 1 November 2008 (UTC)

A team of UI designers from University of Michigan are [http://www.internettablettalk.com/forums/showthread.php?t=25257 sharing] mock-ups and a Flash page describing the interface of a fictious application called Maemo Organizer. It'd be great if they could collaborate with one of the projects hereunder or developers interested in an organizer/PIM application. If you are currently designing such application consider to look at these mock-ups and the Flash page for inspiration --[[User:allnameswereout|allnameswereout]] 13:31, 2 December 2008 (UTC)

== Technical Design Considerations ==
I'd appreciate a design where we concentrate an application framework for data storage and retrieval. This should be the central part of the OS and used by stock applications as well as 3rd party apps. End user applications like &quot;Address Book&quot; and &quot;Calendar&quot; or &quot;Syncing&quot; access this database, but can be changed by the user without loosing data. 
This way, it's also easier to avoid the &quot;PIM trap&quot; (who coined this phrase?) because there's no need to built the one great PIM application. A map application (instead of Contacts) can show postal addresses as POIs, a IM roaster (instead of Calendar) can highlight people with birthdays today or within one week, ... PIM mashups instead of PIM trap. [[User:ossi1967|ossi1967]] 12:42, 31 October 2008 (UTC)

== Status of current PIM apps ==

Could we list what's good and what's missing in the various current PIMs? 
Might give us an idea of where to start improving things (especially for those who've not used all of them)

I've started with a few apps I could find, there are doubtless others, please add them (and urls, and change the urls there if there's something better)
--[[User:Lardman|Lardman]] 30 Oct 2008 21:56 UTC


----

=== Pimlico Dates ===
http://www.pimlico-project.org/dates.html
==== Good ====
*Synchronisation via syncevolution is possible and works well

==== Bad ====
*Seems like its no longer actively developed for Maemo
*Dreadful interface. Not intuitive.
*Seems to switch appointments to other times randomly after tipping on an entry with the stylus.
*No alarms.

----

=== Pimlico Tasks ===
http://www.pimlico-project.org/tasks.html
==== Good ====
*Simple order is probably good enough for most people
*Entering tasks are drop dead simple

==== Bad ====
*Has a bit of strange UI artifacts when attempting to modify a task
*Does not go full screen in Maemo
*Does not support alarms w/ task dates

----

=== Pimlico Contact ===
http://www.pimlico-project.org/contacts.html
==== Good ====
*Same database as stock &quot;Contacts&quot; application; works as extended view to postal address and other data stored on the tablet, but not shown normally
*Part of an already usable workflow that includes syncing with SyncEvolution
==== Bad ====
*Seems like its no longer actively developed for Maemo
*Bad cosmetics. Looks terrible.
----

=== GPE Calendar ===
http://gpe.handhelds.org/projects/GPE-calendar.shtml
==== Good ====

Has :
* Day view
* Week view
* Month view
* List view

Can publish/retrieve to/from remote iCal servers (eg eGroupware)

Has multiple calendars (eg remote, work, social)

Has reminder service

Can publish/export as iCal

==== Bad ====

* Missing Native sync support
* No Two-week (or 3-day) grid view
* No Year view
* Missing Per task formatting (icons would be nice) --[[User:boxofsnoo|boxofsnoo]] 21:00, 30 October 2008 (UTC)
* No options for start/stop of the day, or time increments (15 min, 30 min, 1 hour)
* No options for non-shaded/combined weekends
* Slows down to a crawl when there are a lot of events in the database.
* Editing repeating event changes all occurrences, and delete removes current or current and all future, no other options
* When entering a new event, end date(+time) does not automatically update when start date(+time) changes
* When entering a new event it takes much more work to change time and date than for example on Date Book on PalmOS (check GarnetVM)
* No snooze function on the alarm
* No quick way to turn off the alarm when your tablets display is locked.

----

=== GPE To-do list ===
==== Good ====
* Categories
* Ability to purge completed tasks

==== Bad ====
* Buttons are too tiny, even for stylus use
* No subtasks/projects or tags
* No start date
* No integration with calendar (apart from applet)
* No alarms on due date

----

=== GPE Contacts ===
==== Good ====
* Quick lookup 3-letter tabs on left
* Search
* Categories

==== Bad ====
* Does not integrate with Mail
::then probably doesn't integrate at all, right? (IM, internet call...) [[User:ossi1967|ossi1967]] 18:44, 31 October 2008 (UTC)
* First, Last name display is not configurable, sort looks off
* First, Last name parsing is often wrong.  Needs at least 2 separate fields
----

=== mCalendar ===
http://www.khertan.net/mcalendar.php
==== Good ====
* finger friendly
* in active development
* desktop integration
* maemo targeted

==== Bad ====
* &lt;s&gt;Grid views missing&lt;/s&gt;
::This seems to be fixed in last version ([[User:kup|kup]])
* Can't deselect an online calendar from sync - all or nothing
* Can't enter tasks into subcalendars
* Tied only to Google calendar
* No iCal import
* Only What is synced from Google calendar, missing Where and Description
----

=== slapd ===
Small but fully featured addressbook engine

----

=== kdepimpi ===
https://garage.maemo.org/projects/kdepimpi/
* For more information please see: http://www.internettablettalk.com/forums/showthread.php?t=15566
* The definitive home for the KDEMPIMPI project can be found at http://sourceforge.net/projects/kdepimpi/
==== Good ====
* kdepimpi is a mature, very stable, working application under X11, Windows, and the Sharp Zaurus (OpenZaurus, ARM architecture)
* the [http://www.oesf.org/forum/index.php?showtopic=25009&amp;st=15&amp;p=177780&amp;#entry177780 .deb packaged version of kdepimpi compiled for OESF] installs and runs very, very well on the N810 (models with soft keyboards will probably not work as the package is not Hildonized). The [http://www.zdez.org/libqt3-3.3.deb libqt3] package is required.
* the package currently meets about 90% of the [[#Desired_Features|Desired Features]]
* the current port of kopi (the calendar/to-do list) is usable on a daily basis for simple uses &lt;s&gt;for people very familiar with the program on other platforms and is a good proof-of-concept&lt;/s&gt;
* the kopi calendar can be synchronized with a google calendar, via the PreSycn preferences setting to use &quot;wget&quot; to download the ICS version of the google calendar, and through [http://gcaldaemon.sourceforge.net/ GCALDaemon] to upload the calendar back to google.
* &lt;s&gt;the source code and overall package status are of enough quality that even someone with my ([mailto:z2n@merctech.com z2n]) limited development expertise was able to do the basic port to Maemo. I estimate that a fully Hildonized port to Maemo would not be difficult for a skilled developer.&lt;/s&gt;

==== Bad ====
* &lt;s&gt;the Maemo port far from complete and is not currently usable for novices...the GUI is lacking menus and icons, making navigation difficult at best&lt;/s&gt;
* &lt;s&gt;only the kopi (calendar/to-do) application has been ported&lt;/s&gt;
* the installation procedure is not ready for general use (requires &lt;tt&gt;dpkg -i --force-depends&lt;/tt&gt;, manual &lt;tt&gt;ldconfig&lt;/tt&gt;, etc.)
* &lt;s&gt;the current installation doesn't provide desktop launcher (menu entries)&lt;/s&gt;
* Does not work with a soft keyboard for n800 users
* The battery seems to run down quickly if kdepimpi is left running
* Most of the dialogs are too large for the screen so controls are off the bottom of the screen.
* The menu takes up screen space because the app is not hildonized.
* There is no full screen mode.
* Cannot type anything requiring the &quot;Fn&quot; key (or &quot;Chr&quot; key) into the edit boxes.
----

=== osmo ===

Preliminary [http://www.internettablettalk.com/forums/showthread.php?t=14774 port]. The 0.2.2 port is compiled with experimental SyncML but does not support some newer features (such as exporting iCal). The 0.2.4 port is compiled without experimental SyncML support.

==== Good ====
* Supports SyncML (experimental)
* Supports iCal (import &amp; export)
* Supports birthdays
* Supports calendar (including day, week, month, year, moon, zodiac details)
* Supports todo list
* Supports contacts list
* Supports notes with encrypted storage using libgringotts
* Supports libnotify
* Supports striking out past events, placing accent on deadlines or due events
* Customizable colours and fonts

==== Bad ====
* While GTK2, not Hildonized nor very touch _finger_ friendly (stylus usage is OK)
* While has option to invoke 'tinygui' with argument -t or --tinygui this does not work well (on the NIT?)
* Ugly interface. Has that windows 3.1 feel about it.
----

=== SyncEvolution ===
http://www.estamos.de/projects/SyncML/
==== Good ====
*Syncs Contacts and Events via SyncML servers (like ScheduleWorld.com)
*Result fully integrated with stock applications as well as  Pimlico Dates/Contacts
*Great customization
*Works well in daily use 
==== Bad ====
*Command line only, need to edit config files
*No direct syncing (desktop to tablet)
*No sync of GPE calendar entries
----

=== Gene Cash ===
Chinook/Diablo version at https://garage.maemo.org/projects/genecash-pim

==== Good ====
* can sync from ical (eg google) although only about 90%
* has an agenda where the next month's dates are shown
* can choose to show day/week/month/year
* has recurring apointments although not of the &quot;3rd weekend in July&quot; variety
* uses Maemo alarm and alarms happen even if calendar not loaded
* exports to iCal
==== Bad ====
* Agenda can have a single appointment repeated
* tightly integrated with his ToDo app so that it fires up ToDo if that's not running when you create a new appointment
* not finger friendly - buttons too small
* updates take a long time, with little user feedback

----

=== Seqretary ===
http://www.kawseq.com/products/seqretary
==== Good ====
*Actively being developed
*Designed for Maemo on Nokia Internet Tablets
*Calendaring, scheduling and alarms
*Voice recording suitable for making notes and taking dictation

==== Bad ====
*Still under development
*Contact management, task management, and synchronisation not yet implemented

----

== Other links ==
* http://chandlerproject.org/
* http://sourceforge.net/projects/osmo-pim --[[User:Lardman|Lardman]] 1 Nov 2008 10:17 UTC

== Unsorted ==

* [http://live.gnome.org/Planner Planner] --[[User:allnameswereout|allnameswereout]] 13:56, 26 November 2008 (UTC)
* [http://www.day-planner.org Day Planner] --[[User:allnameswereout|allnameswereout]] 12:02, 29 November 2008 (UTC)

----

[[Category:Community]]
[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Task:PR1.2 autobuilder</title>
    <id>3831</id>
    <revision>
      <id>34220</id>
      <timestamp>2010-05-11T08:37:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{task|completed}}</comment>
      <text xml:space="preserve">{{task|completed}}

== Background ==

After the PR1.2 SDK was released, Niels deployed it to the autobuilder; enacting a plan which was discussed on this list. This has caused problems with libhildon dependencies, but the problems aren't just limited to that library [http://lists.maemo.org/pipermail/maemo-developers/2010-March/025668.html].

Both Niels and the Council believe we should do something to assist.


== What we should do ==

We *need* to do something, both to improve the situation in [[extras-devel]] and [[extras-testing]] today, and test an approach for the next upgrade.

The main requirements here are, I think:

* It's not an excessive amount of work
* It's a viable long term strategy
* The QA process doesn't get broken

Thoughts and comments from developers, or anyone else with a idea,
will be much appreciated.


== Progress ==
 
Fremantle autobuilder has been switched to the Squeeze devkit; idea [[#Use the improved dpkg-shlibdeps]] has been implemented. [http://lists.maemo.org/pipermail/maemo-developers/2010-April/025870.html] [http://lists.maemo.org/pipermail/maemo-developers/2010-April/025905.html]. -- 21:50, 16 April 2010 (UTC)

== Options ==

=== Deploy SDKs as they are released; treat -devel and -testing as trunk ===

This is what we have now, I think we can say it doesn't work if there's going to be more than a few days between SDK release and device upgrade. Since Nokia doesn't pre-announce release dates, and last minute bugs could cause problems; I think we can rule this one out.

=== Revert the builder ===

This is basically a step backwards. &quot;Changing the builder config is easy. Cleaning up -devel and rebuilding the affected packages is quite some work as we don't have any scripts for that made yet.&quot;

=== Hack the SDK, create some kind of hybrid ===

This'd be bad enough if limited to just libhildon, but isn't viable and WILL cause unforeseen problems. Veto :-)

=== Create separate repos, build queues for pre- and post-1.2 ===

Similar to what's been done for Extras proper. &quot;Creating the repos will be about a day work, but the part that sits on top of that (management scripts, Packages interface, QA queue) will probably take a week of work.&quot;

There are hard issues around QA here.

=== Try building in each SDK in turn ===

My suggestion; when someone uploads to &quot;fremantle&quot; auto-builder it attempts to build the package against the PR1.1 SDK. If it succeeds, it goes into Extras-devel. If it fails to build, it gets built with the PR1.2 SDK, and so on.

For an app with compile time symbol resolution (e.g. C/C++), this'd handle both cases quite nicely. Python apps would have to depend on the specific versions of bindings which gave them the features they wanted - again, not too much of a problem.

At extras(-stable) promotion time you could even decide, based on actual binary package dependencies, whether to put in fremantle-1.2 or both fremantle-1.2 &amp; fremantle extras repos. This would fix another common complain, &quot;what if I don't upgrade for a few weeks&quot;.

Larger packages could be prevent from being tried to built twice by stating a forced build dependency on a PR1.2 version of any system package.

Some software won't install from -devel and -testing as it does now, but that will be reduced to the set of software which is actually using features that are unavailable. A HAM patch could grey out applications which were uninstallable, or show some other indication.

This is, effectively, reinventing the more intelligent [http://wiki.debian.org/Projects/ImprovedDpkgShlibdeps dpkg-shlibdeps].

However, it deals with the following three circumstances:

#Application uses API which has changed in later SDK. This will be built with PR1.1 SDK, succeeds and goes into Extras-devel. Can be promoted to Extras-testing but there's no clear way for a tester to know it won't work if their device is running the latest OS.
#Application uses API which is unchanged in later SDK. This will be built with PR1.1 SDK, succeeds and goes into Extras-devel. Can be promoted to Extras-testing and tested on any device with PR1.1 or PR1.2. Once promoted it COULD go into fremantle and fremantle-1.2.
#Application uses API which is introduced in later SDK. This will be built with PR1.1 SDK and fail. It will    be rebuilt with PR1.2 SDK, succeed and go into Extras-devel. Can be promoted to Extras-testing and tested by testers using the most recent release. Once promoted it will go into fremantle-1.2.

=== Use the improved dpkg-shlibdeps ===

This is a big topic and as such might require more careful consideration, but seems way more future proof than the rest of options.

Stuff that would need to be done:
#Add the debian-squeeze devkit to the autobuilder. At this point I don't know if it's usable, or not. The Lenny devkit does not contain dpkg-shlibdeps.
#Ensure required .symbols files are in the SDK. We could either
#*Fix upstream. Make them generate .symbols files, make them use the updated devkit. Probably impossible for PR1.2.
#*Ship symbol files ourselves in an external package. A bit ugly, requires maintenance. 
#Put the built packages into a common -devel repo, or specific -devel-1.0 and -devel-1.2 repositories?
#If single -devel &amp; -testing repositories, decide whether to put packages in -1.0 or -1.2 at -stable promotion time.

Some cons:
*Just enabling debian-squeeze devkit in autobuilder might cause problems. Need to check on that. Might need testing.
*Need to ensure that local SDK installations can replicate the autobuilder setup. This means debian-squeeze devkit, and .symbols files have to be distributed.

A nice added benefit is that we get updated debhelper in the SDK, and more Debian compatibility; might be worth to push.

==== Initial testing ====

There will be a temporary autobuilder with the debian-squeeze devkit installed where we will experiment with .symbols files. We have thrown a few packages to it with no visible problems so far; if someone thinks his package might break when built under a newer Debian tooling please say so before it breaks.

.symbols file generation is currently being done externally, using the publicly released library binaries and dpkg-gensymbols. A sample PR1.2 libhildon1 .symbols file looks like [http://depot.javispedro.com/nit/syms/libhildon1.symbols this], and will be placed in /etc/dpkg/symbols/ .

=== Case-by-case basis ===

Developer complains: add a temporary exception to autobuilder to build
$APPNAME with PR1.0/1.1 SDK, but goes into the shared extras-devel as
now.</text>
    </revision>
  </page>
  <page>
    <title>Task:Package QA web interface</title>
    <id>1973</id>
    <revision>
      <id>42595</id>
      <timestamp>2011-03-10T12:01:29Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify section heagings and list, add links</comment>
      <text xml:space="preserve">{{task|proposal}}

== Need ==
* Developers need to promote their package from [[extras-devel]] to [[extras-testing]] and [[extras]]
* Packages need to be tested before they are available for the general public
* Community members should be able to help test applications
* Testers should be able to report issues with packages
* Testers should see a list of packages waiting to be tested

== Workflow ==

=== Regular ===
A developer uploads a source tarball to the autobuilder. After successful building, this package ends up in extras-devel.

''extras-devel is considered the development repository, not for end users.''

Every package in extras-devel gets an entry in the package web interface. On this page authors can be added to the package and information can be filled in. Default information is gathered from the actual debian package in the repository.

When a developer thinks his application is ready for wider testing and eventually end users, he promotes the package to extras-testing. (Automated QA tests will be performed, but this is outside the scope of this document)

Once the application ends up in extras-testing, the application shows up in the list of packages waiting to be tested. An RSS feed will be available too.

Every community tester can now test the application on their device and report back. The tester can give thumbs up or thumbs down for the package. There is a possibility to file a bug against the package directly '''OR''' comments can be left on the package information page, describing the problem the tester encountered.

Possible outcome:
* If a package receives negative feedback, the [[debmaster]] will look at the package's problems. If the problem is serious, the package will be removed from the test queue and the author will be notified.
* If the package receives X positive feedback, the package goes to the promotion queue for Extras.
* If the package receives no feedback within X days, the debmaster will look at the package and see what needs to be done.

When a package is in the promotion queue for Extras, the original uploader (or team) can promote the package to Extras. This makes it easy for the project to time their release.

=== Exceptions ===
* Security fixes can be specially handled by debmaster.
* Fixes for serious bugs can be specially handled by debmaster.

=== Implementation questions ===
* How would we handle dependencies, when promoting and testing an application.
* Will we remove a package from extras-testing when it has received X amount of negative feedback or only remove it from the testing queue page.

== Inspirational mockup ==
[https://fedoraproject.org/wiki/MyFedora/Mockups#Package_Details Fedora Packages page]

== Implementation steps ==

# Package page
# Promotion page
# Package feedback
# Test queue

[[Category:Community]]
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Package categories</title>
    <id>1071</id>
    <revision>
      <id>50053</id>
      <timestamp>2012-10-02T07:53:05Z</timestamp>
      <contributor>
        <ip>118.97.95.238</ip>
      </contributor>
      <comment>/* Debtags */</comment>
      <text xml:space="preserve">{{task|completed}}


This wiki page serves as a discussion page for improving the categorization system used for Maemo packages. Improvements here will be pushed to the [http://maemo.org/forrest-images/pdf/maemo-policy.pdf Maemo Packaging Policy] through [[Task:Packaging policy proposed changes]].

This proposal is coordinated by [[User:Xfade|Niels Breet]] and is part of the [[Extras_repository_process_definition|Extras repository process definition]].

== Problem ==

People feel the need to create new categories, because the current list is too limited.

Another problem is that some categories aren't very descriptive. What applications go in to tools, support or accessories?

== Maemo Packaging Policy ==

The current [http://maemo.org/forrest-images/pdf/maemo-policy.pdf Maemo Packaging Policy] lists the following sections:

* accessories
* communication
* games
* multimedia
* office
* other
* programming
* support
* themes
* tools

== New list for Diablo ==

This is the [http://lists.maemo.org/pipermail//maemo-developers/2008-October/035437.html final] list for  Diablo:

{| class=&quot;wikitable&quot;
! Key
! Example English i18n
! Example apps
|-
| user/desktop
| Desktop
| Home, statusbar and taskbar applets
|-
| user/development
| Programming
| py2deb
|-
| user/education
| Education
| Flashcard apps
|-
| user/games
| Games
| Doom, Duke Nukem 3D
|-
| user/graphics
| Graphics
| Photo apps, GIMP, Inkscape, fonts
|-
| user/multimedia
| Multimedia ''or'' Sound &amp; Video
| Canola, mplayer, Kagu, UKMP, MediaBox
|-
| user/navigation
| (Location &amp;) Navigation
| maemo-mapper, Navit
|-
| user/network
| Internet &amp; Networking
| Web browsers, Samba clients, OpenAFS, Transmission
|-
| user/office
| Office
| GPE, Claws, AbiWord
|-
| user/science
| Science
| gnuplot, Octave
|-
| user/system
| System
| rotation-support, enhanced kernels, themes
|-
| user/utilities
| Utilities ''or'' Accessories
| Calculators, terminals, text editors
|-
|}

If the package's section starts &quot;user/&quot;, but is not any of the above, the ''Application Manager'' forces them into an &quot;Other&quot; section.

== Future additions ==

The current proposed list is only for Diablo, future additions and changes will be considered for Fremantle.

It seems H-A-M supports (will support?) the section &quot;user/hidden&quot; in the future ([http://maemo.gitorious.org/hildon-application-manager/mainline/commit/deeb9558129e22f9d1ca49ef9b6565a173603fcd commit log]). This section will not be shown in the &quot;Download&quot; view, but will be shown in the &quot;Update&quot; and &quot;Uninstall&quot; views.

=== Debtags ===

Debian Package Tags: Faceted Classification

As stated on the [http://debtags.alioth.debian.org/faceted.html debtags website]:

{{quotation|Drawing a bit freely from the literature of Faceted Classification, a facet is a group of tags which describe the same quality of a package. Package Tags are organized in Facets, that represent different points of view from which to look at the package archive. For example, you could have a &quot;Usage&quot; facet with tags about what a program is intended to be used for, or you could have a &quot;Media&quot; facet with tags about what kind of information a program is able to process, a &quot;Technology&quot; facet about the technology a package uses, and so on. With this approach, every tag is situated in a specific context, and has a clear meaning. Also, tags from different facets shed light on packages from different points of view, giving &quot;depth&quot; to its categorization. Take something tagged with &quot;Use::Chatting&quot;, &quot;Technology::IRC&quot;, &quot;Role::Server&quot;: it has a remarkable level of detail, and tells almost everything we need to know about what the package does.[http://www.wayankatel.com Informasi Blog Pendidikan]}}

=== Application-specific subcategories ===

Within each of the top-level categories, projects may want to group a number of packages together. For this, sub-sections can be used. For example, Canola may have:

{| class=&quot;wikitable&quot;
! Package
! Section
|-
| canola2
| user/multimedia/Canola
|-
| canola2-theme-flatblack
| user/multimedia/Canola/themes
|-
| canola2-youtube-plugin
| user/multimedia/Canola/plugins
|-
| canola-tuning
| user/multimedia/Canola/settings
|}

The rule is simple:
# If the portion of the section path starts with a capital letter, it is shown as-is
# Otherwise the portion of the section path must be one of the above sections or, additionally:
#* themes
#* plugins
#* translations

== Translations ==

{| class=&quot;wikitable&quot;
! Key
! en_GB
! en_US
! es_MX
! nl_NL
! pt_BR
! no_NO
! fi_FI
! it_IT
! fr_CA
! da_DK
! pt_PT
! sv_SE
! fr_FR
! es_ES
! ru_RU
! de_DE 
|-
| user/desktop
| Desktop
| Desktop
| Escritorio
| Bureaublad
| Área de Trabalho
| Skrivebord
| Työpöytä
| Desktop
| Bureau
| Skrivebord
| Área de Trabalho
| Skrivbord
| Bureau
| Escritorio
| Рабочий стол
| Desktop
|-
| user/development
| Programming
| Programming
| Programación
| Ontwikkeling
| Desenvolvimento
| Programming
| Ohjelmointi
| Programmazione
| Programmation
| Programmering
| Desenvolvimento
| Programmering
| Programmation
| Programación
| Программирование
| Entwicklung
|-
| user/education
| Education
| Education
| Educación
| Educatief
| Educação
| Undervisning
| Opiskelu
| Educazione
| Éducation
| Undervisning 
| Educação
| Utbildning
| Éducation
| Educación
| Образование
| Bildung
|-
| user/games
| Games
| Games
| Juegos
| Spelletjes
| Jogos
| Spill
| Pelit
| Giochi
| Jeux
| Spil
| Jogos
| Spel
| Jeux
| Juegos
| Игры
| Spiele
|-
| user/graphics
| Graphics
| Graphics
| Gráficos
| Grafisch
| Gráficos
| Grafikk
| Grafiikka
| Grafica
| Graphismes
| Grafik
| Gráficos
| Grafik
| Graphismes
| Gráficos
| Графика
| Grafik
|-
| user/multimedia
| Multimedia
| Multimedia
| Multimedia
| Multimedia
| Multimídia
| Multimedia
| Multimedia
| Multimedia
| Multimédia
| Multimedier
| Multimédia
| Multimedia
| Multimédia
| Multimedia
| Мультимедиа
| Multimedia
|-
| user/navigation
| Location &amp; Navigation
| Location &amp; Navigation
| Localización y Navegación
| Locatie en Navigatie
| Posicionamento e Navegação
| Posisjon og Navigasjonen
| Paikannus ja navigointi
| Posizione e Navigazione
| Localisation et Navigation
| Position og Navigation
| Posicionamento e Navegação
| Position och Navigation
| Localisation et Navigation
| Localización y Navegación
| Позиционирование и навигация
| Position &amp; Navigation
|-
| user/network
| Internet &amp; Networking
| Internet &amp; Networking
| Internet y Redes
| Internet en Netwerk
| Internet e Redes
| Internet og Nettverk
| Internet ja viestintä
| Internet e reti
| Internet et Réseaux
| Internet og netværk
| Internet e Redes
| Internet och Nätverk
| Internet et Réseaux
| Internet y Redes
| Интернет и сети
| Internet &amp; Netzwerk
|-
| user/office
| Office
| Office
| Oficina
| Kantoor
| Escritório
| Kontor
| Toimisto
| Ufficio
| Bureautique
| Kontor
| Escritório
| Kontor
| Bureautique
| Oficina
| Офис
| Büro
|-
| user/science
| Science
| Science
| Ciencia
| Wetenschap
| Ciência
| Vitenskap
| Tiede
| Scienza
| Science
| Videnskab
| Ciência 
| Vetenskap
| Science
| Ciencia
| Наука
| Wissenschaft
|-
| user/system
| System
| System
| Sistema
| Systeem
| Sistema
| System
| Järjestelmä
| Sistema
| Système
| System
| Sistema
| System
| Système
| Sistema
| Система
| System
|-
| user/utilities
| Utilities
| Utilities
| Utilitarios
| Gereedschappen
| Utilitários
| Verktoy
| Apuohjelmat
| Utilità
| Utilitaires
| Værktøjer
| Utilitários
| Verktyg
| Utilitaires
| Utilidades
| Утилиты
| Werkzeuge
|-
|}

== Reference ==

=== freedesktop.org ===

The basic, rationalised, set of high-level sections according to the [http://standards.freedesktop.org/menu-spec/latest/apa.html freedesktop.org menu specification] are: ''Accessories, Development, Education, Game, Graphics, Multimedia, Network, Office, Settings, System''.

=== Debian ===

The Debian archive maintainers [http://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections provide] the authoritative list of sections. At present, they are: ''admin, comm, devel, doc, editors, electronics, embedded, games, gnome, graphics, hamradio, interpreters, kde, libs, libdevel, mail, math, misc, net, news, oldlibs, otherosfs, perl, python, science, shells, sound, tex, text, utils, web, x11.''

=== Previous discussions ===

* [http://communitizer.blogspot.com/2008/04/rfc-maemo-package-guidelines-mandatory.html Communitizer blog]
* [http://lists.maemo.org/pipermail/maemo-developers/2008-April/033093.html Mandatory categories discussion]

=== Bugs ===

{{#bugzilla:id=1805
|columns=id,priority,severity,modified,product,status,summary,to
}}


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Package categories</title>
    <id>1071</id>
    <revision>
      <id>50053</id>
      <timestamp>2012-10-02T07:53:05Z</timestamp>
      <contributor>
        <ip>118.97.95.238</ip>
      </contributor>
      <comment>/* Debtags */</comment>
      <text xml:space="preserve">{{task|completed}}


This wiki page serves as a discussion page for improving the categorization system used for Maemo packages. Improvements here will be pushed to the [http://maemo.org/forrest-images/pdf/maemo-policy.pdf Maemo Packaging Policy] through [[Task:Packaging policy proposed changes]].

This proposal is coordinated by [[User:Xfade|Niels Breet]] and is part of the [[Extras_repository_process_definition|Extras repository process definition]].

== Problem ==

People feel the need to create new categories, because the current list is too limited.

Another problem is that some categories aren't very descriptive. What applications go in to tools, support or accessories?

== Maemo Packaging Policy ==

The current [http://maemo.org/forrest-images/pdf/maemo-policy.pdf Maemo Packaging Policy] lists the following sections:

* accessories
* communication
* games
* multimedia
* office
* other
* programming
* support
* themes
* tools

== New list for Diablo ==

This is the [http://lists.maemo.org/pipermail//maemo-developers/2008-October/035437.html final] list for  Diablo:

{| class=&quot;wikitable&quot;
! Key
! Example English i18n
! Example apps
|-
| user/desktop
| Desktop
| Home, statusbar and taskbar applets
|-
| user/development
| Programming
| py2deb
|-
| user/education
| Education
| Flashcard apps
|-
| user/games
| Games
| Doom, Duke Nukem 3D
|-
| user/graphics
| Graphics
| Photo apps, GIMP, Inkscape, fonts
|-
| user/multimedia
| Multimedia ''or'' Sound &amp; Video
| Canola, mplayer, Kagu, UKMP, MediaBox
|-
| user/navigation
| (Location &amp;) Navigation
| maemo-mapper, Navit
|-
| user/network
| Internet &amp; Networking
| Web browsers, Samba clients, OpenAFS, Transmission
|-
| user/office
| Office
| GPE, Claws, AbiWord
|-
| user/science
| Science
| gnuplot, Octave
|-
| user/system
| System
| rotation-support, enhanced kernels, themes
|-
| user/utilities
| Utilities ''or'' Accessories
| Calculators, terminals, text editors
|-
|}

If the package's section starts &quot;user/&quot;, but is not any of the above, the ''Application Manager'' forces them into an &quot;Other&quot; section.

== Future additions ==

The current proposed list is only for Diablo, future additions and changes will be considered for Fremantle.

It seems H-A-M supports (will support?) the section &quot;user/hidden&quot; in the future ([http://maemo.gitorious.org/hildon-application-manager/mainline/commit/deeb9558129e22f9d1ca49ef9b6565a173603fcd commit log]). This section will not be shown in the &quot;Download&quot; view, but will be shown in the &quot;Update&quot; and &quot;Uninstall&quot; views.

=== Debtags ===

Debian Package Tags: Faceted Classification

As stated on the [http://debtags.alioth.debian.org/faceted.html debtags website]:

{{quotation|Drawing a bit freely from the literature of Faceted Classification, a facet is a group of tags which describe the same quality of a package. Package Tags are organized in Facets, that represent different points of view from which to look at the package archive. For example, you could have a &quot;Usage&quot; facet with tags about what a program is intended to be used for, or you could have a &quot;Media&quot; facet with tags about what kind of information a program is able to process, a &quot;Technology&quot; facet about the technology a package uses, and so on. With this approach, every tag is situated in a specific context, and has a clear meaning. Also, tags from different facets shed light on packages from different points of view, giving &quot;depth&quot; to its categorization. Take something tagged with &quot;Use::Chatting&quot;, &quot;Technology::IRC&quot;, &quot;Role::Server&quot;: it has a remarkable level of detail, and tells almost everything we need to know about what the package does.[http://www.wayankatel.com Informasi Blog Pendidikan]}}

=== Application-specific subcategories ===

Within each of the top-level categories, projects may want to group a number of packages together. For this, sub-sections can be used. For example, Canola may have:

{| class=&quot;wikitable&quot;
! Package
! Section
|-
| canola2
| user/multimedia/Canola
|-
| canola2-theme-flatblack
| user/multimedia/Canola/themes
|-
| canola2-youtube-plugin
| user/multimedia/Canola/plugins
|-
| canola-tuning
| user/multimedia/Canola/settings
|}

The rule is simple:
# If the portion of the section path starts with a capital letter, it is shown as-is
# Otherwise the portion of the section path must be one of the above sections or, additionally:
#* themes
#* plugins
#* translations

== Translations ==

{| class=&quot;wikitable&quot;
! Key
! en_GB
! en_US
! es_MX
! nl_NL
! pt_BR
! no_NO
! fi_FI
! it_IT
! fr_CA
! da_DK
! pt_PT
! sv_SE
! fr_FR
! es_ES
! ru_RU
! de_DE 
|-
| user/desktop
| Desktop
| Desktop
| Escritorio
| Bureaublad
| Área de Trabalho
| Skrivebord
| Työpöytä
| Desktop
| Bureau
| Skrivebord
| Área de Trabalho
| Skrivbord
| Bureau
| Escritorio
| Рабочий стол
| Desktop
|-
| user/development
| Programming
| Programming
| Programación
| Ontwikkeling
| Desenvolvimento
| Programming
| Ohjelmointi
| Programmazione
| Programmation
| Programmering
| Desenvolvimento
| Programmering
| Programmation
| Programación
| Программирование
| Entwicklung
|-
| user/education
| Education
| Education
| Educación
| Educatief
| Educação
| Undervisning
| Opiskelu
| Educazione
| Éducation
| Undervisning 
| Educação
| Utbildning
| Éducation
| Educación
| Образование
| Bildung
|-
| user/games
| Games
| Games
| Juegos
| Spelletjes
| Jogos
| Spill
| Pelit
| Giochi
| Jeux
| Spil
| Jogos
| Spel
| Jeux
| Juegos
| Игры
| Spiele
|-
| user/graphics
| Graphics
| Graphics
| Gráficos
| Grafisch
| Gráficos
| Grafikk
| Grafiikka
| Grafica
| Graphismes
| Grafik
| Gráficos
| Grafik
| Graphismes
| Gráficos
| Графика
| Grafik
|-
| user/multimedia
| Multimedia
| Multimedia
| Multimedia
| Multimedia
| Multimídia
| Multimedia
| Multimedia
| Multimedia
| Multimédia
| Multimedier
| Multimédia
| Multimedia
| Multimédia
| Multimedia
| Мультимедиа
| Multimedia
|-
| user/navigation
| Location &amp; Navigation
| Location &amp; Navigation
| Localización y Navegación
| Locatie en Navigatie
| Posicionamento e Navegação
| Posisjon og Navigasjonen
| Paikannus ja navigointi
| Posizione e Navigazione
| Localisation et Navigation
| Position og Navigation
| Posicionamento e Navegação
| Position och Navigation
| Localisation et Navigation
| Localización y Navegación
| Позиционирование и навигация
| Position &amp; Navigation
|-
| user/network
| Internet &amp; Networking
| Internet &amp; Networking
| Internet y Redes
| Internet en Netwerk
| Internet e Redes
| Internet og Nettverk
| Internet ja viestintä
| Internet e reti
| Internet et Réseaux
| Internet og netværk
| Internet e Redes
| Internet och Nätverk
| Internet et Réseaux
| Internet y Redes
| Интернет и сети
| Internet &amp; Netzwerk
|-
| user/office
| Office
| Office
| Oficina
| Kantoor
| Escritório
| Kontor
| Toimisto
| Ufficio
| Bureautique
| Kontor
| Escritório
| Kontor
| Bureautique
| Oficina
| Офис
| Büro
|-
| user/science
| Science
| Science
| Ciencia
| Wetenschap
| Ciência
| Vitenskap
| Tiede
| Scienza
| Science
| Videnskab
| Ciência 
| Vetenskap
| Science
| Ciencia
| Наука
| Wissenschaft
|-
| user/system
| System
| System
| Sistema
| Systeem
| Sistema
| System
| Järjestelmä
| Sistema
| Système
| System
| Sistema
| System
| Système
| Sistema
| Система
| System
|-
| user/utilities
| Utilities
| Utilities
| Utilitarios
| Gereedschappen
| Utilitários
| Verktoy
| Apuohjelmat
| Utilità
| Utilitaires
| Værktøjer
| Utilitários
| Verktyg
| Utilitaires
| Utilidades
| Утилиты
| Werkzeuge
|-
|}

== Reference ==

=== freedesktop.org ===

The basic, rationalised, set of high-level sections according to the [http://standards.freedesktop.org/menu-spec/latest/apa.html freedesktop.org menu specification] are: ''Accessories, Development, Education, Game, Graphics, Multimedia, Network, Office, Settings, System''.

=== Debian ===

The Debian archive maintainers [http://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections provide] the authoritative list of sections. At present, they are: ''admin, comm, devel, doc, editors, electronics, embedded, games, gnome, graphics, hamradio, interpreters, kde, libs, libdevel, mail, math, misc, net, news, oldlibs, otherosfs, perl, python, science, shells, sound, tex, text, utils, web, x11.''

=== Previous discussions ===

* [http://communitizer.blogspot.com/2008/04/rfc-maemo-package-guidelines-mandatory.html Communitizer blog]
* [http://lists.maemo.org/pipermail/maemo-developers/2008-April/033093.html Mandatory categories discussion]

=== Bugs ===

{{#bugzilla:id=1805
|columns=id,priority,severity,modified,product,status,summary,to
}}


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Packaging Policy proposed changes</title>
    <id>1319</id>
    <revision>
      <id>8302</id>
      <timestamp>2008-10-31T14:55:34Z</timestamp>
      <contributor>
        <username>xfade</username>
        <id>15</id>
      </contributor>
      <comment>[[Task:Packaging Policy proposed changes]] moved to [[Task:Packaging policy proposed changes]]: CamelCase :)</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Packaging policy proposed changes]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Packaging policy proposed changes</title>
    <id>1318</id>
    <revision>
      <id>18443</id>
      <timestamp>2009-09-21T12:42:20Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <comment>/* Discussion */  added to relevant bugzilla entries</comment>
      <text xml:space="preserve">{{task|ongoing}}


The current [https://maemo.org/forrest-images/pdf/maemo-policy.pdf Maemo Packaging Policy] (version 0.23) needs to be changed in light of the revised list of [[Task:Package categories|valid package categories]].

== Package sections (Policy section 2.2)==

Current section list seems to be confusing to both community developers and Nokia teams. All sections that were added by developers have been reviewed and this proposal is based on that result.

=== Current sections ===

* accessories
* communication
* games
* multimedia
* office
* other
* programming
* support
* themes

=== Proposed sections ===

{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot;
! Key
! Example English i18n
! Example apps
|-
| user/desktop
| Desktop
| Home, statusbar and taskbar applets
|-
| user/development
| Programming
| py2deb
|-
| user/education
| Educational
| Flashcard apps
|-
| user/games
| Games
| Doom, Duke Nukem 3D
|-
| user/graphics
| Graphics
| Photo apps, GIMP, Inkscape, fonts
|-
| user/multimedia
| Multimedia ''or'' Sound &amp; Video
| Canola, mplayer, Kagu, UKMP, MediaBox
|-
| user/navigation
| (Location &amp;) Navigation
| maemo-mapper, Navit
|-
| user/network
| Internet &amp; Networking
| Web browsers, Samba clients, OpenAFS, Transmission
|-
| user/office
| Office
| GPE, Claws, AbiWord
|-
| user/science
| Science
| gnuplot, Octave
|-
| user/system
| System
| rotation-support, enhanced kernels, themes
|-
| user/utilities
| Utilities ''or'' Accessories
| Calculators, terminals, text editors
|-
|}

== Proposed revisions ==

Section 2.2 currently reads:

{{quotation|The section of packages in the user segment SHOULD be one of the following: ''accessories, communication, games, multimedia, ofﬁce, other, programming, support, themes, tools''.&lt;sup&gt;3&lt;/sup&gt; The sections in this list will appear correctly localized in the Application Manager.}}

Proposed revision:

{{quotation|The section of packages in the user segment SHOULD be one of the following: ''desktop, development, education, games, graphics, multimedia, navigation, network, office, science, system, utilities''.&lt;sup&gt;3&lt;/sup&gt; The sections in this list will appear correctly localized in the Application Manager. If the package's section starts with &quot;user/&quot;, but is not any of the above, the Application Manager will place them into an &quot;Other&quot; section.}}


Section B.3 Parallel option currently reads:

When this option has been added to the Debian policy, add link here to an
appropriate section. For now, see the discussion in the following Debian policy bug:
[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=209008]

Proposal:

Possibly an quick explanation of the parallel option and a link to http://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules-options or your own explanation.

Oh, and a note explaining -j *must* have a number or you'll kill the autobuilder with massive builds.

=== Discussion ===

* [http://lists.maemo.org/pipermail//maemo-developers/2008-October/035437.html Proposed] final list for Diablo
* [[Task:Package categories]]
* [http://communitizer.blogspot.com/2008/04/rfc-maemo-package-guidelines-mandatory.html Communitizer blog]
* [http://lists.maemo.org/pipermail/maemo-developers/2008-April/033093.html Mandatory categories discussion]
* Bugzilla [https://bugs.maemo.org/show_bug.cgi?id=3844 #3844] and [https://bugs.maemo.org/show_bug.cgi?id=5055 #5055]

=== Related ===

The maemo.org policy checker, [http://wiki.maemo.org/Maemian maemian], will implement code to check incoming packages for their compliance with maemo policy. 
See http://wiki.maemo.org/Extras-testing#Maemian.2FMinimae_checks_after_builds for what maemian is currently checking.
[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Proof-read Human Interface Guidelines</title>
    <id>2019</id>
    <revision>
      <id>17130</id>
      <timestamp>2009-08-31T20:13:16Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Replacing page with '== Proof-reading Fremantle Human Interface Guidelines ==


{{task|completed}}

The Maemo HIG was proof-read and edited by a number of people, including [[User:dneary|Dave Neary...'</comment>
      <text xml:space="preserve">== Proof-reading Fremantle Human Interface Guidelines ==


{{task|completed}}

The Maemo HIG was proof-read and edited by a number of people, including [[User:dneary|Dave Neary]], [[User:lbt|lbt]], [[User:qole|qole]] and [[User:timsamoff|timsamoff]] in the wiki, and the resulting changes were integrated into the reference version, which can be found at [[Documentation/Maemo 5 Developer Guide/Human Interface Guidelines]].

Thanks to all involved in the effort! This task is now completed.</text>
    </revision>
  </page>
  <page>
    <title>Task:Provide spec for Mer infrastructure on Garage</title>
    <id>2031</id>
    <revision>
      <id>49257</id>
      <timestamp>2012-08-28T10:59:48Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Task:Provide spec for Mer infrastructure on Garage]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">{{mer}}

This proposal arises from the CPH weekend.

It would be useful to have infrastructure for the Mer project on Garage.

This task is not to provide that infrastructure but simply to specify what that infrastructure should support.

Suggestions:
* Setting up Mer transifex server;
* bandwidth hungry packaging tasks such as pulling gitorious releases, making packages and pushing to OBS which is unreliable on slow links.
* Trialing OBS setup
* Running services such as sprintweb
* Support the garage/Mer integration work

I am thinking of a number of VMs rather than physical hardware at this point.

This task is not yet ready for consideration :)
[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Providing changes since last version of a package</title>
    <id>775</id>
    <revision>
      <id>42090</id>
      <timestamp>2011-02-24T14:19:11Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* XML file */ use &lt;source&gt;</comment>
      <text xml:space="preserve">== Background ==

For the Application Manager and downloads.maemo.org it would be nice to have automatically updated information about changes since last version of a package. It would be good to have the change information available inside a package.

== Problems ==

=== debian package changelog ===
The debian package changelog describes changed to the package made by the package maintainer. If maintainer and developer are different a changelog entry for a major relase could just contain &quot;New upstream version&quot;.

=== ChangeLog ===
Another option would be to use the ChangeLog of the original source package - this would contain upstream documentation to changes in the original software. You would expect to find new features there. However upstream information might contain information of varying detail. Another problem is that the ChangeLog is &quot;owned&quot; by upstream, the maintainer can/should not change it.

== Proposed solutions ==

=== XML file ===
Add a Maemo specific XML file for each package.

An example:
&lt;source lang=&quot;xml&quot;&gt;
 &lt;maemo-release-changelog&gt;
 &lt;revision release-date=&quot;2008-07-07 23:05:00&quot; revision=&quot;&lt;package revision&gt;&quot;&gt;
   &lt;description&gt;
     Packages new upstream version.
   &lt;/description&gt;
 &lt;/revision&gt;
 &lt;release release-date=&quot;2008-07-01 11:55:00&quot; version=&quot;&lt;source package version&gt;&quot;&gt;
   &lt;description&gt;
     Now plays funny sound on start.
   &lt;/description&gt;
 &lt;/release&gt;
 &lt;/maemo-release-changelog&gt;
&lt;/source&gt;
When the XML file isn't found, fallback to ChangeLog and changelog. [Proposed by [[User:framstag|framstag]]]

I vote for this solution.
Actually a small tool could be created to convert the XML to TXT (thus becoming a regular ChangeLog file)--[[User:anidel|anidel]] 15:33, 10 July 2008 (UTC)

=== Additional header in debian/control ===

I wonder whether another header would be sufficient in debian/control? We've already got XB-Maemo-Icon, adding XBS-Version-Changes or something could be sufficient. 

Certainly for downloads.maemo.org; for more detail the debian/changelog is available and /should/ be the definitive location so we don't diverge too much from other Debian-based systems. --[[User:jaffa]]

=== Comparison ===

(Commenting on my own proposal): I both suggestions as valid and good ideas. However they solve different problems. My proposal collects more data than acutally required to display the latest change (it has history) and is thus more complex, while the other solutions is far simpler and exactly fits the initial requirement. So the questions is: How much changelog do we need? For what purpose? If we do not find more purpose then initially requested I would suggest to start with the header aproach - just because it is simpler.--[[User:framstag|framstag]] 19:27, 14 July 2008 (UTC)


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Publishing API docs</title>
    <id>841</id>
    <revision>
      <id>14474</id>
      <timestamp>2009-06-19T13:49:33Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">{{Template:2010 agenda}}
{{task|proposed}}

Currently the API docs are spread in different spaces and are processed through different tools. We need a unified process and a single place. This task needs to be done in collaboration with the Nokia teams. The ideal time frame would be the Fremantle release cycle.

==Requirements==

An API doc publishing system should fulfill a few basic requirements:

* Automated: When a new version of a package is released, the API documentation should be updated accordingly, with no human intervention
* Searchable: You should be able to search API docs by function name, or by task (free text)
* Complete: All API references should be documented, and be up to date.
* Works internally &amp; externally: Unreleased APIs should have in-progress API documentation visible on the Nokia intranet, released packages should have their API documentation automatically updated on an external site

===Plan===
* Get external library.maemo.org working
** Install library.gnome.org and get it working with .debs in a Debian repository rather than building documentation with a .tar.gz
** Ensure it detects new releases and rebuilds documentation automatically
** Set it loose on Maemo's repository with a starting module list
** Work on look &amp; feed of front page to ensure it integrates well with the rest of maemo.org
* Get internal library working
** Manage internal releases, define repository for in-progress API docs

After the initial task, there are other issues to resolve:

* Ensure that Doxygen, gtk-doc and qdoc documentation are all consistent in terms of stylesheets &amp; layout
* Probably others I haven't thought of right now</text>
    </revision>
  </page>
  <page>
    <title>Task:RSS Feed reader</title>
    <id>3505</id>
    <revision>
      <id>28087</id>
      <timestamp>2010-02-02T11:19:02Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Task:RSS Feed reader]] moved to [[Task:RSS feed reader]]: Capitalization</comment>
      <text xml:space="preserve">#REDIRECT [[Task:RSS feed reader]]</text>
    </revision>
  </page>
  <page>
    <title>Task:RSS feed reader</title>
    <id>1388</id>
    <revision>
      <id>43334</id>
      <timestamp>2011-05-05T10:43:04Z</timestamp>
      <contributor>
        <ip>217.237.150.136</ip>
      </contributor>
      <comment>added Popppr to Windows software</comment>
      <text xml:space="preserve">{{task|proposed}}

The official RSS Feed Reader and related home applet are being ported to [[Open development/Maemo roadmap/Fremantle|Fremantle]]. Even if it's 100% open source, the development is nowadays closed and the input from the community is very small. Unless we all do something about it.

Interested in having an excellent feed reader in Maemo? Get involved!

See also the discussion [http://www.internettablettalk.com/forums/showthread.php?p=251146  Love feeds? Read this]

== Core features ==
Just an idea.

* Handles efficiently feeds of text, images, audio, video...
** Would it be ok if audio/video triggered media player of choice? (I.e., the next point.)
* Well integrated with browser (and media player?)
* Connects regularly for updates and small transfers.
* Downloads volumes of data when wlan is available.
* Basic usage through desktop plugin.
** Unread feed count on app icon (or via desktop plugin)
* Smart syncing with my other feed readers (via online?)
** Or with an online service like Bloglines?
* Developed in Maemo but easy to deploy in other platforms.
* Filtering (blacklisting, whitelisting, priority) combined with modus operandi based on situation user is in (work, home, travel, etc)
** I.e., Smart Lists?
* Feed categorization (and/or folders)
* Full text search (or downloaded items)
* Ability to cache feeds/envlosures (to user-specified location) for offline usage
* Import/export OPML
* TTS (text-to-speach) support

== How to get there ==
There are different ways to get there:

* Everybody gets involved in the development of the official RSS Feed Reader
* Existing Maemo community alternatives are pushed. Candidates: 
** [http://maemo.org/downloads/product/OS2008/feedcircuit/ Feed Circuit] - buggy; locks up on BBC feeds and Wired mag feeds
** [http://penguintv.sourceforge.net/ Penguin TV]
** [http://jaiku.com/channel/mauku/presence/50592777 How crazy would be to extend Mauku as a RSS feed reader with a very smart home applet?] - or with any microblog app.
** [http://gpodder.org/ gPodder]
** And how crazy would it be to mix it with a podcast app.
** And how crazy would it be to mix feed reader, microblog reader and podcast app?
*** In my opinion, it would be better to keep things separate, because of different usage patterns (if you don't think keeping apps and use cases separate, why not make the all-in-one browser+email+feed reader+microblogging+podcasts+chat+phone+contacts+notetaking+drawing app?) --[[User:thp|thp]] 19:44, 27 December 2008 (UTC)
* Ports from GNOME/KDE or anywhere native. Not that Maemo's RSS Feed Reader derives from [http://liferea.sourceforge.net/ Liferea].  Candidates:
** Your candidates here.
* Firefox extensions
** Your candidates here.

== Competition ==
What great products are other (mobile) platforms offering? Name, link and remarkable features that make the app/service so good.

Note also the potential discussion about local app versus web service (and a way in between).

=== Local apps ===

==== Linux ====
* [http://liferea.sourceforge.net/ Liferea]
** Features:
*** Synchronization with Google Reader
*** Browser integration (with Add-ons)
*** Podcast/enclosure support
*** Folders/categories
* [http://penguintv.sourceforge.net/ PenguinTV]
* [http://gpodder.org/ gPodder]
* [http://launchpad.net/gwibber Gwibber] is an open source microblogging client for GNOME developed with Python and GTK. It supports Twitter, Jaiku, Identi.ca, Facebook, Flickr, Digg, and RSS.
** While this is an ''aggregator'' of sorts (like [http://mauku.henrikhedberg.com/ Mauku] is), should it really be added to this list? Can custom feeds be added? Does it support podcasting? --[[User:timsamoff|timsamoff]] 14:08, 13 January 2009 (UTC)

==== Mac OS X ====
* [http://www.newsfirerss.com/ NewsFire]
** Features:
*** Podcast &amp; Enclosure support
*** Integrated blog editor (for posting to personal blog)
*** Groups
*** Labels
*** Smart Groups
*** Search
*** Import/export OPML
* [http://www.newsgator.com/INDIVIDUALS/NETNEWSWIRE/ NetNewsWire]
** Features:
*** Built-in tabbed browser (no need to launch an additional browser to view actual sites)
*** Desktop integration (can notify the user via various desktop widgets)
*** Synchronized clippings (synchronize feeds and feed status with various online services like Bloglines)
*** Will download and transfer podcasts to iTunes (i.e., transfer to another media player)
*** Supports multiple Smart Lists (display filtered results of feeds)
*** Supports custom styles (CSS)
*** Supports grouping/folders
*** Supports article flagging
*** Supports microformats (for Calendar and Contacts)
*** Import/Export of OPML
* [http://www.vienna-rss.org/vienna2.php Vienna]
** Features:
*** Podcast support
*** Customisable toolbar
*** Built-in tabbed browser
*** Global search
*** Smart Folders
*** Custom styles (CSS)
*** Three layouts
*** Blogging integration
*** Enclosure support
*** Article filters
*** Manual reordering of the subscription list

==== Windows ====
* [http://www.sharpreader.net/ SharpReader]
** Features:
*** Handles all RSS versions, ATOM 0.3 and 1.0, modules like dublin core, content:encoding, xhtml:body, etc.
*** Advanced threading support allowing you to view connected items together in a threaded fashion (detects and shows connections between items if they have same link, if one item links to another, if two items both link to the same external webpage, or if an item has comments)
*** Grouping/categories
*** Feed settings (refresh-rate, purge timeout, and category-wide settings)
*** Drag-and-drop subscription method
*** Feedster integration
*** Support for proxy-servers and proxy authentication
*** Reduces bandwidth by using HTTP Conditional GETs and gzip/deflate encoding
***Desktop integration
*** Import/export OPML
*** Filtering
*** HTTP Authentication support

* [http://kptl.co/popppr/ Popppr]
** Features:
*** focused on Media RSS feeds; pops image content onto desktop
*** free, lightweight software


==== Cross-Platform ====
* [http://www.rssowl.org/ RSSOwl]
** Features:
*** SWT-based ([http://www.eclipse.org/swt/ Standard Widget Toolkit])
*** Search (word, phrase, and other feeds)
*** Easy organization
*** Feed sharing
*** Integrated browser
*** AmphetaRate (for acquiring news tailored to user's tastes)
*** Export to PDF, RTF, and HTML
*** Import/export OPML
*** Supports exchange collections with others
*** Automatic updates 
* [http://www.blogbridge.com/ BogBridge]
** Features:
*** Categories and subcategories
*** Cross Listing (any category can be cross listed in one or more other categories)
*** Categories and subcategories available as OPML Reading Lists
*** Synchronization via Reading Lists
*** Top 10 and Top 100 List (automatically monitors the number of users looking at any feed and dynamically compute a Top 10 and Top 100 list, each of which is available as an OPML Reading List)
*** Tree and List display of categories

=== Online services ===
* [http://www.bloglines.com/ Bloglines]
** Features:
*** All-in-one Blog and news feed search, online subscriptions, news reader, blog publishing and social sharing tools
*** Mobile version optimized for handheld computers and cell phones
*** Email subscriptions help manage your e-newsletter traffic
*** Package Tracking (UPS, USPS &amp; FedEx)
*** Custom weather forecasts
*** Personalized recommendations to find new subscriptions
*** Bookmarklet for single-click subscriptions to any source
*** Notifiers for all browser types to remind you when new articles have arrived
*** Saved Searches deliver future articles matching your key words and phrases
*** Most Popular lists show the days hot topics and which blogs are getting the most noticed
*** Add-on tools for bloggers such as automated blogrolls, subscription buttons
* [http://www.feedburner.com/ FeedBurner]
** FeedBurner has recently been aquired by Google.
* [http://reader.google.com Google Reader]
** Features:
*** Single page that lets you see new items at a glance
*** Import/export OPML
*** Choice between list view or expanded view
*** Automatic marking of items as read as they are scrolled past
*** Search
*** Sharing (share feeds and articles with other users)
*** Offline access
*** Desktop/browser integration
* [http://reader.feedshow.com/ FeedShow]
** Features:
*** Import/export OPML
*** Folders/categories
*** Save items locally
*** Convert to PDF/print format
* [http://my.gpodder.org/ My gPodder]

=== &quot;Host Your Own&quot; Solutions ===
* [http://gregarius.net/ Gregarius]
** Features:
*** Web-based
*** Import/export OPML
*** Supports themes and plugins
*** Search
*** Basic i18n support
*** Committed to web standards (renders XHTML/CSS)
*** FREE software, released under GPL 
* [http://tt-rss.org/ Tiny Tiny RSS]
** Features:
*** Server-side application (user only needs a web browser)
*** Import/export OPML
*** Free software, licensed under GPL
*** Support for generation of aggregated feeds
*** Supports Technorati-style tags
*** Filtering
*** Supports multiuser operation
*** Categories
*** Supports HTTP Digest and Basic authentication for reading protected feeds
*** Supports feed enclosures (podcasts)
*** Supports XML-RPC API
*** Supports article scoring
*** Supports inline XSPF MP3 player for podcasts 
* [http://zvonnews.sourceforge.net/ zFeeder]
** Features:
*** Import/export OPML
*** Supports autodiscovery of feeds
*** Bookmarklet to easily add feeds
*** Custom styles (CSS)
*** Online/offline refreshing of feeds via browser or cron
*** Categories
*** WAP (wml) output
* [http://simplepie.org/ Simple Pie]
** I'm not sure SimplePie should be included in this list (i.e., it allows users to manipulate and display feeds, but it's not really an aggregator in the true sense of the word). --[[User:timsamoff|timsamoff]] 21:00, 30 December 2008 (UTC)

== Open enhancement requests ==

{{#bugzilla:
  |product=RSS+feed+reader
  |severity=enhancement
  |status=unconfirmed,new,assigned,reopened
  |sort=votes
  |order=desc
  |columns=votes,id,summary
}}

== Open bugs ==

{{#bugzilla:
  |product=RSS+feed+reader
  |severity=!enhancement
  |status=unconfirmed,new,assigned,reopened
  |sort=votes
  |order=desc
  |columns=votes,severity,id,summary
}}</text>
    </revision>
  </page>
  <page>
    <title>Task:Reducing number of external repositories</title>
    <id>1234</id>
    <revision>
      <id>42332</id>
      <timestamp>2011-03-03T14:56:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Repositories */ add table caption, make table sortable</comment>
      <text xml:space="preserve">{{task|accepted}}

We're currently working on getting the number of external repositories down to a minimum. Our goal is to have a lot less repositories on gronmayer as soon as possible.

It needs to be clear that we want the packages to be moved to Extras and after that the repository can be closed. The point of this effort is to get as much packages as possible in a central repository, not closing repositories and loosing packages!

This is part of the effort discussed in a talk about the future of Extras at the Maemo summit. More information can be found in this [http://communitizer.blogspot.com/2008/09/talk-reducing-number-of-external.html blog post]

If you need help or have questions: Contact niels at maemo or X-Fade in #maemo on irc.freenode.net.

==Repositories==
{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Closed
| style=&quot;background:LightBlue&quot; | Contacted
| style=&quot;background:LightYellow&quot; | Positive response
|}

{| class=&quot;wikitable sortable&quot;
|+ Status of external repositories
|-
!id
!repository
!packages in repository
!packages in extras
!status
|- style=&quot;background:LightGreen&quot;
|1.||Mozilla|| 2 || 0 || Filed [http://bugzilla.mozilla.org/show_bug.cgi?id=457307 bug #457307], Fennec has been moved to Extras.
|- style=&quot;background:LightGreen&quot;
|2.||Eko One|| 5 || 1 || '''CLOSED''' --[[User:xfade|xfade]] 13:00, 14 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|3.||Hand Held SHell|| 2 || 0 || Owner will upload packages to Extras. --[[User:xfade|xfade]] 14:37, 16 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|4.||ANEMONE IPv6 Repository|| 6 || 0 || Contacted owner --[[User:xfade|xfade]] 13:16, 16 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|5.||jabber.dk|| 1 || 0 || Contacted owner --[[User:xfade|xfade]] 13:16, 16 October 2008 (UTC)
|- style=&quot;background:LightGreen&quot;
|6.||mango.dia.unisa|| 10 || 3 || '''CLOSED''' (Thanks anidel!)
|- style=&quot;background:LightGreen&quot;
|7.||mYTube|| 5 || 5 || '''CLOSED'''
|-
|8.||Gizmo Catalogue|| 2 || 0 || Marcell is making some calls internally. —[[User:generalantilles|GeneralAntilles]] 09:40, 3 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|9.||tschmidt|| 12 || 9 || Contacted owner --[[User:xfade|xfade]] 12:38, 29 September 2008 (UTC)
|- style=&quot;background:LightGreen&quot;
|10.||qt4|| 51 || 39 || '''CLOSED''' (Thanks gnuton!) --[[User:xfade|xfade]] 10:02, 1 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|11.||Ricky Brent&amp;#039;s Maemo || 51 || 41 || Owner will start to upload packages to Extras. --[[User:xfade|xfade]] 10:20, 1 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|12.||Aeracode OS2008|| 1 || 1 || Owner will check version of package against extras-devel. --[[User:xfade|xfade]] 14:37, 16 October 2008 (UTC)
|- style=&quot;background:LightGreen&quot;
|13.||anderenen.de|| 18 || 18 || '''CLOSED''' --[[User:xfade|xfade]] 13:00, 14 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|14.||Claws Mail|| 13 || 12 || Contacted owner --[[User:xfade|xfade]] 12:50, 29 September 2008 (UTC)
|-
|15.||Devicescape|| 1 || 0 || closed source application - no use to do something about that --[[User:xfade|xfade]] 13:18, 29 September 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|16.||Estamos|| 1 || 0 || Contacted owner --[[User:xfade|xfade]] 13:16, 16 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|17.||FBReader Repository|| 11 || 8 || Work in progress --[[User:xfade|xfade]] 20:00, 30 September 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|18.|| ZerionSeven|| 2 || 0 || Contacted owner --[[User:xfade|xfade]] 13:16, 16 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|19.|| Modest|| a lot || 0 || Owners will move packages to Extras and close repository. --[[User:xfade|xfade]] 13:00, 14 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|20.|| RTComm beta|| a lot || 0 || Owner is going to move files to Extras-devel --[[User:xfade|xfade]] 14:16, 30 September 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|21.||Yann Benigot&amp;#039;s Repository|| 4 || 0 || Contacted owner --[[User:xfade|xfade]] 13:16, 16 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|22.||Armin|| 12 || 1 || Contacted owner. --[[User:xfade|xfade]] 19:51, 7 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|23.||Austinche|| 27 || 7 || Owner will upload packages to Extras. --[[User:xfade|xfade]] 15:19, 13 November 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|24.||Browser Extras|| 28 || 0 || Contacted owner, will look into it. --[[User:xfade|xfade]] 20:14, 7 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|25.||Mapper|| 12 || 1 || Contacted owner --[[User:xfade|xfade]] 13:16, 16 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|26.||elkins.org|| 14 || 4 || Contacted owner. --[[User:xfade|xfade]] 20:25, 7 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|27.||MUlliNER.ORG Maemo Software (Maemo 4.x)|| 15 || 1 || Owner wants to move important packages into Extras, contains mostly commandline tools, not really for end-users. --[[User:xfade|xfade]] 13:00, 14 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|28.||Jalimo|| 13 || 0 || Contacted owner --[[User:xfade|xfade]] 13:16, 16 October 2008 (UTC)
|-
|29.||Maemo Hackers|| 64 || 25 || -
|- style=&quot;background:LightBlue&quot;
|30.||Dayless|| 21 || 3 || Contacted owner. --[[User:xfade|xfade]] 19:51, 7 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|31.||lancode.de|| 10 || 0 || Contacted owner. --[[User:xfade|xfade]] 13:51, 16 October 2008 (UTC)
|-
|32.||OpenedHand Prebuilt Maemo Packages|| 26 || 7 || -
|- style=&quot;background:LightBlue&quot;
|33.||Anunakin|| 39 || 9 || Contacted owner --[[User:xfade|xfade]] 18:08, 9 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|34.||Maemo CJK|| 27 || 1 || Contacted owner. --[[User:xfade|xfade]] 13:51, 16 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|35.||mg.pov.lt (Diablo)|| 23 || 12 || Positive response, needs help with deciding what to do with some 'quick hack' packages. --[[User:xfade|xfade]] 19:29, 7 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|36.||Andrey&amp;#039;s maemo repository|| 13 || 0 || Contacted owner --[[User:xfade|xfade]] 20:31, 7 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|37.||Carman catalogue|| 6 || 0 || Contacted owner, will close after next release of Carman. --[[User:xfade|xfade]] 19:29, 7 October 2008 (UTC)
|-
|38.||debfarm|| 175 || 51 || -
|- style=&quot;background:LightYellow&quot;
|39.||Collabora Haze|| 10 || 5 || Packages are going to get uploaded to Extras by owner. --[[User:xfade|xfade]] 13:49, 9 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|40.||Collabora catalogue|| 10 || 5 || Packages are going to get uploaded to Extras by owner. --[[User:xfade|xfade]] 13:49, 9 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|41.||Innologies Package Repository|| 6 || 0 || Mauku and it's libs are now in Extras, owner will close repository after a short transition period. --[[User:xfade|xfade]] 12:16, 30 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|42.||give|| 13 || 1 || Contacted owner. --[[User:xfade|xfade]] 19:51, 7 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|43.||Synthesize.us|| 9 || 0 || Contacted owner. --[[User:xfade|xfade]] 13:51, 16 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|44.||tuomas.kulve.fi|| 25 || 10 || Positive response. Needs help with conflicting packages in Maemo. (How to solve this) --[[User:xfade|xfade]] 19:29, 7 October 2008 (UTC)
|- style=&quot;background:LightGreen&quot;
|45.||Upir\&amp;#039;s repository|| 5 || 0 || '''CLOSED''' --[[User:xfade|xfade]] 09:43, 31 December 2008 (UTC)
|- style=&quot;background:LightGreen&quot;
|46.||Community Canola Temp|| 76 || 76 || '''CLOSED''' 
|- style=&quot;background:LightBlue&quot;
|47.||Wardenclyffe|| 14 || 1 || Contacted owner. --[[User:xfade|xfade]] 13:51, 16 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|48.||Tills Maemo|| 12 || 2 || Owner is uploading packages to Extras --[[User:xfade|xfade]] 13:49, 9 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|49.||Mollux.org|| 10 || 0 || Contacted owner --[[User:xfade|xfade]] 20:14, 7 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|50.||qole|| &gt; || ? || Will speak to him during May sprint meeting. --[[User:jeremiah|jeremiah]] May 2009
|}


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Reducing number of external repositories</title>
    <id>1234</id>
    <revision>
      <id>42332</id>
      <timestamp>2011-03-03T14:56:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Repositories */ add table caption, make table sortable</comment>
      <text xml:space="preserve">{{task|accepted}}

We're currently working on getting the number of external repositories down to a minimum. Our goal is to have a lot less repositories on gronmayer as soon as possible.

It needs to be clear that we want the packages to be moved to Extras and after that the repository can be closed. The point of this effort is to get as much packages as possible in a central repository, not closing repositories and loosing packages!

This is part of the effort discussed in a talk about the future of Extras at the Maemo summit. More information can be found in this [http://communitizer.blogspot.com/2008/09/talk-reducing-number-of-external.html blog post]

If you need help or have questions: Contact niels at maemo or X-Fade in #maemo on irc.freenode.net.

==Repositories==
{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Closed
| style=&quot;background:LightBlue&quot; | Contacted
| style=&quot;background:LightYellow&quot; | Positive response
|}

{| class=&quot;wikitable sortable&quot;
|+ Status of external repositories
|-
!id
!repository
!packages in repository
!packages in extras
!status
|- style=&quot;background:LightGreen&quot;
|1.||Mozilla|| 2 || 0 || Filed [http://bugzilla.mozilla.org/show_bug.cgi?id=457307 bug #457307], Fennec has been moved to Extras.
|- style=&quot;background:LightGreen&quot;
|2.||Eko One|| 5 || 1 || '''CLOSED''' --[[User:xfade|xfade]] 13:00, 14 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|3.||Hand Held SHell|| 2 || 0 || Owner will upload packages to Extras. --[[User:xfade|xfade]] 14:37, 16 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|4.||ANEMONE IPv6 Repository|| 6 || 0 || Contacted owner --[[User:xfade|xfade]] 13:16, 16 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|5.||jabber.dk|| 1 || 0 || Contacted owner --[[User:xfade|xfade]] 13:16, 16 October 2008 (UTC)
|- style=&quot;background:LightGreen&quot;
|6.||mango.dia.unisa|| 10 || 3 || '''CLOSED''' (Thanks anidel!)
|- style=&quot;background:LightGreen&quot;
|7.||mYTube|| 5 || 5 || '''CLOSED'''
|-
|8.||Gizmo Catalogue|| 2 || 0 || Marcell is making some calls internally. —[[User:generalantilles|GeneralAntilles]] 09:40, 3 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|9.||tschmidt|| 12 || 9 || Contacted owner --[[User:xfade|xfade]] 12:38, 29 September 2008 (UTC)
|- style=&quot;background:LightGreen&quot;
|10.||qt4|| 51 || 39 || '''CLOSED''' (Thanks gnuton!) --[[User:xfade|xfade]] 10:02, 1 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|11.||Ricky Brent&amp;#039;s Maemo || 51 || 41 || Owner will start to upload packages to Extras. --[[User:xfade|xfade]] 10:20, 1 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|12.||Aeracode OS2008|| 1 || 1 || Owner will check version of package against extras-devel. --[[User:xfade|xfade]] 14:37, 16 October 2008 (UTC)
|- style=&quot;background:LightGreen&quot;
|13.||anderenen.de|| 18 || 18 || '''CLOSED''' --[[User:xfade|xfade]] 13:00, 14 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|14.||Claws Mail|| 13 || 12 || Contacted owner --[[User:xfade|xfade]] 12:50, 29 September 2008 (UTC)
|-
|15.||Devicescape|| 1 || 0 || closed source application - no use to do something about that --[[User:xfade|xfade]] 13:18, 29 September 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|16.||Estamos|| 1 || 0 || Contacted owner --[[User:xfade|xfade]] 13:16, 16 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|17.||FBReader Repository|| 11 || 8 || Work in progress --[[User:xfade|xfade]] 20:00, 30 September 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|18.|| ZerionSeven|| 2 || 0 || Contacted owner --[[User:xfade|xfade]] 13:16, 16 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|19.|| Modest|| a lot || 0 || Owners will move packages to Extras and close repository. --[[User:xfade|xfade]] 13:00, 14 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|20.|| RTComm beta|| a lot || 0 || Owner is going to move files to Extras-devel --[[User:xfade|xfade]] 14:16, 30 September 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|21.||Yann Benigot&amp;#039;s Repository|| 4 || 0 || Contacted owner --[[User:xfade|xfade]] 13:16, 16 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|22.||Armin|| 12 || 1 || Contacted owner. --[[User:xfade|xfade]] 19:51, 7 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|23.||Austinche|| 27 || 7 || Owner will upload packages to Extras. --[[User:xfade|xfade]] 15:19, 13 November 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|24.||Browser Extras|| 28 || 0 || Contacted owner, will look into it. --[[User:xfade|xfade]] 20:14, 7 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|25.||Mapper|| 12 || 1 || Contacted owner --[[User:xfade|xfade]] 13:16, 16 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|26.||elkins.org|| 14 || 4 || Contacted owner. --[[User:xfade|xfade]] 20:25, 7 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|27.||MUlliNER.ORG Maemo Software (Maemo 4.x)|| 15 || 1 || Owner wants to move important packages into Extras, contains mostly commandline tools, not really for end-users. --[[User:xfade|xfade]] 13:00, 14 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|28.||Jalimo|| 13 || 0 || Contacted owner --[[User:xfade|xfade]] 13:16, 16 October 2008 (UTC)
|-
|29.||Maemo Hackers|| 64 || 25 || -
|- style=&quot;background:LightBlue&quot;
|30.||Dayless|| 21 || 3 || Contacted owner. --[[User:xfade|xfade]] 19:51, 7 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|31.||lancode.de|| 10 || 0 || Contacted owner. --[[User:xfade|xfade]] 13:51, 16 October 2008 (UTC)
|-
|32.||OpenedHand Prebuilt Maemo Packages|| 26 || 7 || -
|- style=&quot;background:LightBlue&quot;
|33.||Anunakin|| 39 || 9 || Contacted owner --[[User:xfade|xfade]] 18:08, 9 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|34.||Maemo CJK|| 27 || 1 || Contacted owner. --[[User:xfade|xfade]] 13:51, 16 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|35.||mg.pov.lt (Diablo)|| 23 || 12 || Positive response, needs help with deciding what to do with some 'quick hack' packages. --[[User:xfade|xfade]] 19:29, 7 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|36.||Andrey&amp;#039;s maemo repository|| 13 || 0 || Contacted owner --[[User:xfade|xfade]] 20:31, 7 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|37.||Carman catalogue|| 6 || 0 || Contacted owner, will close after next release of Carman. --[[User:xfade|xfade]] 19:29, 7 October 2008 (UTC)
|-
|38.||debfarm|| 175 || 51 || -
|- style=&quot;background:LightYellow&quot;
|39.||Collabora Haze|| 10 || 5 || Packages are going to get uploaded to Extras by owner. --[[User:xfade|xfade]] 13:49, 9 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|40.||Collabora catalogue|| 10 || 5 || Packages are going to get uploaded to Extras by owner. --[[User:xfade|xfade]] 13:49, 9 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|41.||Innologies Package Repository|| 6 || 0 || Mauku and it's libs are now in Extras, owner will close repository after a short transition period. --[[User:xfade|xfade]] 12:16, 30 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|42.||give|| 13 || 1 || Contacted owner. --[[User:xfade|xfade]] 19:51, 7 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|43.||Synthesize.us|| 9 || 0 || Contacted owner. --[[User:xfade|xfade]] 13:51, 16 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|44.||tuomas.kulve.fi|| 25 || 10 || Positive response. Needs help with conflicting packages in Maemo. (How to solve this) --[[User:xfade|xfade]] 19:29, 7 October 2008 (UTC)
|- style=&quot;background:LightGreen&quot;
|45.||Upir\&amp;#039;s repository|| 5 || 0 || '''CLOSED''' --[[User:xfade|xfade]] 09:43, 31 December 2008 (UTC)
|- style=&quot;background:LightGreen&quot;
|46.||Community Canola Temp|| 76 || 76 || '''CLOSED''' 
|- style=&quot;background:LightBlue&quot;
|47.||Wardenclyffe|| 14 || 1 || Contacted owner. --[[User:xfade|xfade]] 13:51, 16 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|48.||Tills Maemo|| 12 || 2 || Owner is uploading packages to Extras --[[User:xfade|xfade]] 13:49, 9 October 2008 (UTC)
|- style=&quot;background:LightBlue&quot;
|49.||Mollux.org|| 10 || 0 || Contacted owner --[[User:xfade|xfade]] 20:14, 7 October 2008 (UTC)
|- style=&quot;background:LightYellow&quot;
|50.||qole|| &gt; || ? || Will speak to him during May sprint meeting. --[[User:jeremiah|jeremiah]] May 2009
|}


[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Remarkable community projects</title>
    <id>573</id>
    <revision>
      <id>9440</id>
      <timestamp>2008-12-26T02:12:43Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve">{{Template:100Days agenda}}
{{task|completed}}

''This is a subtask of [[Task:Defining maemo]] and is coordinated by Dave Neary.''

There are hundreds of community projects around Maemo, but some are especially remarkable, providing a unique contribution to the project. 

Getting a list of these projects would help to
* Improve their quality and promote them as ''ready to primetime''.
* Highlight to externals some of the amazing stuff the Maemo platform can offer.
* Bring attention, testing, contributions, new users to them.
* Indicate to Nokia what is really worth promoting in their Maemo related activities. 
* Cheer up the ego of promoters and contributors.  :)

See also the [[Fremantle Stars]] and [[Killer_Apps]].

==Criteria==
* '''Alive''': Maintained regularly and available in the last stable release.
* '''Open''': community feedback and contributions are part of the project - open source is a very good factor but not a must.
* '''Stable''': feature set complete, installs flawlessly, works, doesn't harm the system, secure.
* '''Finger/thumb UI''': stylus to be required only in exceptional and evident cases (e.g. drawing apps).
* '''Decent design''': visually attractive and/or simple interface that works just as expected.
* '''maemo.org active''': available in extras, complete information page in Downloads.
* '''Non commercial''': Not developed by Nokia or commercial partners.

== The Best of Maemo Applications ==
'''Please do not list new proposals directly here'''. Use the [[Talk:Task:Remarkable_community_projects|discussion]] page instead. These are projects that accomplish most of the criteria above. They be available in the Maemo 4.1 extras repository and offer a Download page in maemo.org. Add you comment if you think any of these candidates is not fit enough for the top selection, or belong to a different category. Apps marked with [[Image:Star.png]] appear now [http://maemo.org/downloads/featured/OS2008/25/ in the list of featured Maemo applications].

===Born for Maemo===
Remarkable projects targetting primarily the Maemo platform.
*[http://maemo.org/downloads/product/OS2008/canola2/ Canola2] [[Image:Star.png]]: Canola is a media consumer: photos, music, videos...local or remote, you name it.
*[http://maemo.org/downloads/product/OS2008/maemo-mapper Maemo Mapper] [[Image:Star.png]]: Most downloaded application for Maemo. Best map application. Can interact with lots of different mapping sites, including OpenStreetmap.
*[http://maemo.org/downloads/product/OS2008/maemo-wordpy Maemo WordPy] [[Image:Star.png]]: Blogging software that hooks to WordPress and Blogger accounts, allows image uploads, post creating and editing, tagging. Especially notable for its finger-friendly menu.
*[http://maemo.org/downloads/product/OS2008/mediabox/ MediaBox] [[Image:Star.png]]: A nice, simple UI for viewing photos and movies.  Not as 'bare-bones' as Mplayer, not as 'tricked-out' as Canola2.
*[http://maemo.org/downloads/product/OS2008/mytube/ mYTube] [[Image:Star.png]]: An youtube browsing/downloading/playing application.
*[http://maemo.org/downloads/product/OS2008/numptyphysics Numpty Physics] [[Image:Star.png]]: This game is educational, hard, fun. Made for the stylus.
*[http://maemo.org/downloads/product/OS2008/vagalume Vagalume] [[Image:Star.png]]: Last.fm is my favourite music site, and Vagalume is my favourite Last.fm client.
*[http://maemo.org/downloads/product/OS2008/liqbase liqbase] [[Image:Star.png]]: one of the most innovative and tablet-specific projects yet ! (-fpp)

===Very nice ports===
Remarkable projects successfully ported to Maemo.
*[http://maemo.org/downloads/product/OS2008/mplayer/ MPlayer] [[Image:Star.png]]: Simple UI, provides the best playback performance for mpeg4/divx/xvid video on Nokia 770/N8x0.
*[http://maemo.org/downloads/product/OS2008/evince/ Evince] [[Image:Star.png]]: Evince is a document viewer for multiple document formats. It currently supports pdf, postscript, djvu, tiff and dvi.
*[http://maemo.org/downloads/product/OS2008/ines/ iNES] [[Image:Star.png]], [http://maemo.org/downloads/product/OS2008/fmsx/ fMSX] [[Image:Star.png]], [http://maemo.org/downloads/product/OS2008/colem/ ColEm] [[Image:Star.png]], [http://maemo.org/downloads/product/OS2008/speccy/ Speccy] [[Image:Star.png]], [http://maemo.org/downloads/product/OS2008/vgba/ VGBA] [[Image:Star.png]] - all fms's emulators - great ports of his original ones.
*[http://maemo.org/downloads/product/OS2008/xournal Xournal] [[Image:Star.png]]: A great notes/sketch utility.  One of ''few'' apps that utilize the pressure sensitivity of the screen!  Invaluable to create and annotate PDF documents on a pocket computer.

===Outstanding utilities===
Remarkable projects successful in a focused mission.
*[http://maemo.org/downloads/product/OS2008/advanced-backlight/ Advanced Backlight] [[Image:Star.png]]: Replaces the default Volume and Brightness applets with a unified applet that also provides rotation orientation selection.
*[http://maemo.org/downloads/product/OS2008/erminig Erminig] [[Image:Star.png]]: Allows a two-way sync between Google Calendars and the GPE calendar on the N810.
*[http://maemo.org/downloads/product/OS2008/load-applet/ Load Applet] [[Image:Star.png]]: Because being able to see when/why the system becomes slow makes a huge difference in user experience.
*[http://maemo.org/downloads/product/OS2008/statusbarclock/ Large StatusBar Clock] [[Image:Star.png]]: A configurable digital clock for the statusbar.
*[http://maemo.org/downloads/product/OS2008/maemo-recorder Maemo Recorder] [[Image:Star.png]]: Turn your N8X0 into a dictaphone. Very useful.
*[http://maemo.org/downloads/product/OS2008/mirage/ Mirage] [[Image:Star.png]]: Opens many file formats; allows for simple photo editing on the tablet.
*[http://maemo.org/downloads/product/OS2008/mogg/ mogg] [[Image:Star.png]]: Although not as ideal a solution as DSP-side decoding, the best we've got at the moment.
*[http://maemo.org/downloads/product/OS2008/omweather/ OMWeather] [[Image:Star.png]]: Critical app.  When this didn't work for a whole day after the Diablo release, I had to look outside!
*[http://maemo.org/downloads/product/OS2008/personal-menu/ Personal Menu] [[Image:Star.png]]: Sidebar plugin, customizable menu for launching up to 36 installed applications or arbitrary commands.
*[http://maemo.org/downloads/product/OS2008/worldtv99/ WorldTV99] [[Image:Star.png]]: TVs around the world on your tablet. Best Edutainment without monthly fee</text>
    </revision>
  </page>
  <page>
    <title>Task:SSU update repository procedure</title>
    <id>1224</id>
    <revision>
      <id>33070</id>
      <timestamp>2010-04-19T14:11:29Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>links</comment>
      <text xml:space="preserve">{{task|proposed}}

Nokia's new procedure with the Tableteer update repository for [[Seamless Software Update|Seamless Software Updates]] (SSU) updates leaves much to be desired, and this article will outline some of the problems and pitfalls of the chosen procedure, as well as some possible solutions to these problems.

== What could have been ==

The new SSU system was something of a coup for the community when it was first announced. Not only were flashing updates a thing of the past, but it meant Nokia might decouple minor updates from major OS releases, which would mean more frequent, smaller bug fix updates to individual packages allowing bug fixes to come sooner and more often. It also meant that system packages would be available from a repository, so when something went wrong while playing with them (say, while testing out the latest MicroB SVN), one could simply grab a fresh copy from apt, instead of having to reflash or pull the package from another device.

== The Problem ==

Unfortunately, with Diablo and SSU, Nokia has, for whatever reason, decided that each individual SSU release needs its own update repository (i.e., diablo/ for 23-14 and diablo-1/ for 30-2), and since Nokia has decided not to populate the latest repository with even the most basic of packages ([[Seamless Software Update#osso-software-version|osso-software-version-rx*4]], for example), one of the biggest side-benefits of the SSU system is eliminated.

It's easy to remove o-s-v, difficult to reinstall it without it being available in the update repository, and quite possible to end up with reboot loops if you attempt an upgrade without it.

There is also secondary problem that goes with updates. The problem of updating SDK repository with relevant sources for binaries released in the update. Having no sources is against spirit (and word) of GPL and it also causes practical problems for developers and indirectly also for regular users. See also [http://bugs.maemo.org/show_bug.cgi?id=3648 bug #3648].

== Proposed solutions ==

Fortunately, the solutions to this problem are very straightforward and easy to implement.

=== Most desirable ===

All updates are pushed through a single repository per distribution (diablo/ for Diablo, fremantle/ for Fremantle, etc) and all of the system packages (i.e., everything o-s-v depends on) are available in that repository.

This means all system packages are installable from through apt, o-s-v is always available, and the world is generally a happier place.

The downside, of course, is the question of updates. Will you be able to jump from a 23-14 to a 41-5 without going through each individual update in between without issue (my bet is yes)? I don't know enough about Linux packaging to guarantee that that would be safe nor, will Nokia be likely to want to do the testing to ensure that it is. So this may not be an acceptable option, though it did seem to work OK during the Diablo beta period.

=== Compromise ===

Each update has its own repository (diablo/, diablo-1/, diablo-2/, etc), but all of the latest packages for that update are available there, so they can be easily reinstalled if need be. This is a good compromise choice, as it doesn't offer too many update-system stabilities issues for Nokia to worry over and doesn't leave users high-and-dry for packages.

=== Bare minimum ===

At the barest minimum, o-s-v needs to be available from each update repository as soon as it's live, as it's very easy to remove it doing a variety of harmless things, but very difficult to re-install it if it's not available (as the nokia-repositories package will nuke your old update repo in the process of the upgrade), and an attempted apt-get upgrade ''without'' o-s-v installed can lead to reboot loops.
[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Single-click publishing for Garage</title>
    <id>933</id>
    <revision>
      <id>5533</id>
      <timestamp>2008-07-25T20:23:01Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>expand</comment>
      <text xml:space="preserve">{{task|proposed}}
{{Template:Expand}}

See the [[Talk:Task:Single-click_publishing_for_Garage|discussion page]].</text>
    </revision>
  </page>
  <page>
    <title>Task:Single sign-on</title>
    <id>649</id>
    <revision>
      <id>35259</id>
      <timestamp>2010-06-03T10:25:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">{{expand}}



==Introduction==

The following gives an overview of the '''first draft''' of a Single Sign-on (SSO) concept for the maemo.org components, as they exist at the moment. The components are:

* Midgard – Content Management System (PHP and C/Java)
* Bugzilla – Bugtracker tool (Perl)
* Mediawiki – Wiki software application (PHP)
* Gforge – Project management system (PHP)

The situation right now requires from every user for every of the listed components a separate account with a username/password combination to access the different services. Goal of this proposal is a solution, which provides a SSO concept for all those application together, and which prevents the user from creating a new account. The document only gives an overview of the different possible options and requires some basic understanding of SSO concepts. It is not meant being a tutorial, but rather to give a proposal for the existing architecture. Further information can be found by following the added links. Feel free to comment and add information, where you think that it is helpful.

==Requirements==
As the basic infrastructure is already given by the tools, which are already in use, the new components have to fit into it and support them. The basic requirements for the possible solutions are:

# Additional components should be Open Source solutions
# Existing tools have to be supported
# Prevent basic changes in existing infrastructure
# Improvement in user experience should worth the additional amount of work
# Should base on standard technologies

Based on the now defined goals and requirements possible solutions can be discussed. The focus should be clearly on the enhancements in the usability for the user. The first question is, which type of SSO concept is most adaptable to the given scenario. The first possibility would be to integrate a authentication server, which handles all the user related information. Secondly open standards like OpenID or SAML could provide an application-focused authentication. A third option is the combination of both, using a central authentication server for the single authentication and for the sign-on OpenID or SAML. The next chapter shows an overview of the proposed architecture and before going more into details by discussing the general concept.

== Proposed Architecture ==
Before going more into technical details the following figure shows the proposal for the Single Sign-on concept. The following parts provide some more detailed information, and give further reasons for it.

[[Image:SSO_Architecture.jpg]]

==General Concept==
The best choice for one of the three different options depends hardly on the goals, the requirements and the amount of effort, which should be invested in implementing the solution. The following will give a short introduction in what they are capable to achieve.

=== Centralised Authentication Server ===
The architecture of the system would change in a way, that instead of providing an authentication method on every single server, the authentication would be handled with the help of an additional component, the authentication server. This component can work as proxy (CAS) or gateway (JOSSO) and use sessions and cookies to communicate to the application whether a user is authenticated or not. This is done on the application side by using libraries, which are offered for every implementation and mostly supports several programming languages. The database with the credentials can be set up apart from the concrete server using any standard technologies (LDAP, MySQL etc.). The benefits and drawbacks of this kind of architecture are:

'''Benefits:'''
* Open Source components available
* No big changes to the current components
* Easy to adapt
* Scalable

'''Drawbacks:'''
* Using it without special modifications, user still would have to create account

	
This approach focuses more on the user-perspective and hides the authentication process for each application from the user. From the user-perspective there is only one single UI for the login on every application needed and the set of supported applications appears as a coherent system environment.
   
=== Decentralised Authentication ===
The decentralised approach focuses more on the application perspective and the goal is to decentralise the management of the user-credentials and abstract this from the single application. The two basic mechanisms for this are OpenID and SAML. Details about this will be given after the general technical overview. Focusing on the authentication both approaches work in a similar way, assuming a web-browser as the client. When a user wants to access a protected application, the user will be redirected to the identity provider. There the user has to be authenticated. Afterwards, the user will be redirected again to the relying party, which provides the application. In the last step the relying party validates the authentication with the identity provider. Finally, the user is logged in.
'''Benefits:'''
* Open standards
* Easy to adapt
* scalable
* One identity provider handles user-credentials – user can select, which account to use
'''Drawbacks:'''
* Application-centric approach – user would have to go through some sign-in process on every application

=== Combination of the decentralised and centralised approach ===
The two concepts, which were presented before solve two different problems within the single-sign on idea. The first, centralised approach, focuses on the ability of sharing the sign-on process for a set of different applications, while the decentralised approach focuses more on the abstraction of the sign-on process for the single applications. Each approach has its drawback regarding the requirements. The combination of both approaches would help to eliminate those drawbacks by the cost of more work for the implementation of the concept. The idea is to use a central authentication server, which handles the authentication for a set of applications, and further, OpenId or SAML as an identity provider, so that the user does not have to bother with creating a new account with additional username and password.

'''Benefits:'''
* Combines the benefits of the first two approaches
'''Drawbacks:'''
* More complex implementation

=== Proposal ===
The overall goal of the SSO concept is to improve the usability on all the different components, which are provided by maemo.org. The first user-centric concept would improve the usability a lot, even though the user would have to create still a new account to sign on. On top of this it would be good to combine this concept with the ability of using a public identity provider to give the user the choice and without bothering with new credentials. To summarise, two steps have to be done:
# '''Implementation of a centralised authentication server'''
# '''Enhance 1. by implementing the integration of a public identity provider'''


== Available and commonly used tools ==
Goal of this chapter is to provide an overview of available tools regarding the already existing architecture and the result of the analysis of the general concept. After summarising the required features, which should be provided by the centralised authentication server, some implementations for will be shown and compared. 

=== Centralised Authentication Server ===

'''REQUIREMENTS''' The implementation of the server has to follow some requirements, which are given by the current setup of the different applications, provided under maemo.org domain. A list of them is provided in the following list:
* Support of the different programming languages, which are needed by the used components (PHP, PERL, Java)
* Support of OpenID/SAML
* Easy to adapt to service applications

'''CENTRAL AUTHENTICATION SERVICE (CAS)''' CAS provides a central system for applications and handles the user authentication for them. Technically CAS is a Java web application, which supports Tomcat to set it up. The management of the user credentials is not handled within the service. Commonly used authentication methods are supported, like LDAP, databases via JDBC, JAAS etc. Further, CAS supports all of the required programming languages (PHP, Perl, Java) and provides clients for it. For the mediawiki is directly a plugin available. It supports besides its own authentication protocol OpenID and SAML. The provided example show, that it is pretty straight forward to add an application to the service.

'''JOSSO''' This service is a Java-based implementation of a centralized authentication system. It runs on Java application servers like Tomcat or JBoss. The user data management is in JOSSO can be as well as in the CAS case be implemented with LDAP or an additional database. The drawback is the support of client agents. It is possible though to use the support of Perl through the Apache and its modules but direct client libraries are only supported for Java and PHP. OpenID and SAML can be used as authentication protocols as well.

'''OpenSSO''' Java based authentication System, which is supported by Sun. The service runs on a Java application server, and supports as well as the previous systems the management of the user identity data in a database (JDBC) or integrated by LDAP. OppenSSO is Java-based, but supports as well other clients. The support for further clients seems to be not really in the focus of OpenSSO. The client SDK for PHP is for example under construction. OpenID and SAML extensions are available and the service is extensible with those. 

=== Proposal ===
The proposal is in this case to use CAS as the authentication system. In the following it will be compared to the other two solutions.

'''Client''' The service is quite flexible in the client support and the adaptation within the clients seems to be really straight forward. Further, from the client-side of view, there exist already a plugin for the mediawiki. Compared with the two other implementations, CAS supports clearly more client implementations and all these in an easy way. The support of very different applications is part of the strategy of CAS (“CASify applications”). JOSSO as well as OpenSSO concentrate clearly on Java client support, even though it is possible to work around these limitations. The CAS approach seems to be more reliable and it is regarding the wide client support definitely more scalable. New applications can be integrated quite easily, and the already existing architecture does not have to be changed extensively. Only the sign-on part of the applications has to be changed with the help of the mentioned libraries. The server runs as a completely separated component. The user database on application side still can be used to authorise actions for the user. Only the profiles have to be mapped to the new user data.

'''Service''' All the services support almost the same range of features. Important is the integration of external user data management by a database or LDAP. CAS supports this, as well as the others. Another critical feature is the support of open authentication protocols like OpenID and SAML. Both, CAS and JOSSO, are extensible regarding to this. OpenSSO focuses more on SAML, but there exist also a (btw. quite old) extension for the OpenID support. An advantage of JOSSO and OpenSSO is the support of authorisation methods within the authentication server. But here is the question if that is really the intention of an authentication service in general. The architecture allows authorisation methods on every single component, which still could be used, when the only the authentication is done by an additional server.


=== Decentralized Authentication ===
On top of the central authentication service, some decentralize user identity management system could be integrated. Two of the most important systems are already briefly mentioned, namely OpenID and SAML. Some more technical details will be introduced in the following.

'''OPENID''' OpenID is an open authentication protocol, which allows a user to use an account of a OpenID provider of his/her choice and use it to login on every service, which supports the protocol. The idea bases simply on a unique id, which is provided to the user and which identifies the OpenID provider. The typical structure is 'username.openid_provider_url'. On the service, where the user wants to login, the OpenID has to be entered and after that, the user is redirected to the OpenID login page of the provider. To provide misusage the user has to agree use the OpenID provider to sign-on the service. Finally a redirect to the original service will take place. The service application validates the incoming data with the OpenID provider and the user is logged in.

'''SAML'''
will be updated soon


=== Proposal ===
'''IDEA:''' OpenID (maemo.org as OpenID Provider?!?) - will be updated soon


== References ==
will be updated soon


More https://bugs.maemo.org/show_bug.cgi?id=3340

== Implementation information ==
 
* [[Task:Single_sign-on/Account_info_stored_in_ldap]] Inventory of information to be stored in LDAP for all maemo.org services
* [[Task:Single_sign-on/UserManagement-API]] API for getting and storing user-information
* [[Task:Single sign-on/Status may 2010]] implementation progress

[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Single sign-on/Account info stored in ldap</title>
    <id>1927</id>
    <revision>
      <id>38657</id>
      <timestamp>2010-09-16T12:42:23Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* bugs.maemo.org */</comment>
      <text xml:space="preserve">This page describes which data is needed for a local account in one of the services maemo.org hosts. This data is to be used to specify data fields in LDAP for central storage.

==Services==

{| class=&quot;wikitable sortable&quot;
|-
! Service
! Framework
|-
| maemo.org || Midgard
|-
| garage.maemo.org || G-Forge
|-
| bugs.maemo.org || Bugzilla
|-
| talk.maemo.org || vBulletin
|-
| wiki.maemo.org || Mediawiki
|}

=== maemo.org ===
{| class=&quot;wikitable sortable&quot;
|-
! Field
! Datatype
|-
| id || int(11)
|-
| username || char(255)
|-
| firstname || char(255)
|-
| lastname || char(255)
|-
| birthdate || datetime
|-
| street || char(255)
|-
| postcode || char(255)
|-
| city || char(255)
|-
| email || char(255)
|-
| fax || char(255)
|-
| country || char(255)
|}

=== Garage ===
{| class=&quot;wikitable sortable&quot;
|-
! Field
! Datatype
|-
| user_id || int
|-
| user_name || text
|-
| email || text
|-
| realname || char(32)
|-
| jabber_address || text
|-
| address || text
|-
| phone || text
|-
| fax || text
|-
| title || text
|-
| firstname || text
|-
| lastname || text
|-
| address2 || text
|-
| ccode || char(2)
|}

=== Talk ===
{| class=&quot;wikitable sortable&quot;
|-
! Field
! Datatype
|-
| userid || int(10)
|-
| username || varchar(100)
|-
| password || varchar(32)
|-
| joindate || int(10)
|-
| email || varchar(100)
|-
| homepage || varchar(100)
|-
| icq || varchar(20)
|-
| aim || varchar(20)
|-
| yahoo || varchar(32)
|-
| birthday || varchar(10)
|-
| msn || varchar(100)
|-
| jabber || varchar(250)
|-
| skype || varchar(32)
|}

=== bugs.maemo.org ===
{| class=&quot;wikitable sortable&quot;
|-
! Field
! Datatype
|-
| userid || int(9)
|-
| cryptpassword || char(128)
|-
| realname || char(255)
|-
| disabledtext || char(255)
|-
| mybugslink || int(4)
|-
| refreshed_when || datetime
|-
| extern_id || char(64)
|}

=== wiki.maemo.org ===
Table mw_user.

There is also mw_user_groups describing access rights the user has.

{| class=&quot;wikitable sortable&quot;
|-
! Field
! Datatype
|-
| user_id                  || int(10) unsigned
|-
| user_name                || varchar(255)
|-
| user_real_name           || varchar(255)
|-
| user_password            || tinyblob
|-
| user_newpassword         || tinyblob
|-
| user_newpass_time        || binary(14)
|-
| user_email               || tinytext
|-
| user_options             || blob
|-
| user_touched             || binary(14)
|-
| user_token               || binary(32)
|-
| user_email_authenticated || binary(14)
|-
| user_email_token         || binary(32)
|-
| user_email_token_expires || binary(14)
|-
| user_registration        || binary(14)
|-
| user_editcount           || int(11)
|}

[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Single sign-on/Status</title>
    <id>1928</id>
    <revision>
      <id>34222</id>
      <timestamp>2010-05-11T08:38:58Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">This wiki page should give an update of the current status of the SSO implementation for the maemo.org components. The concept behind it and the reasons for the chosen implementation can be found here: [[Task:Single_sign-on]]

== SSO Status meeting 23-07 ==

'''Wiki is fully integrated'''
* sign-in and sign-out

'''User information'''
*All editing interfaces should redirect to Midgard n.n.account
**Registration also happens there
*Niels has [[Task:Single_sign-on/Account_info_stored_in_ldap|documented]] what data we need to manage
**Add to the n.n.accounts DM2 schema
*When user is edited in Midgard we should push the data to backend
**which will notify other services
**done as MidCOM watcher in the org.maemo.cas component

'''User information exchange'''
*Web services on top of Midgard MVC (midgard2)
*PULL interface that services can poll
**Changes since transaction ID XX
*PUSH interface for notifying services about changes
**webhooks http://blog.webhooks.org/about/
*Implementation
**Additional software (on the same server as CAS?)
***midgard2 
***mysql (for userdata storage)
**Midgard MVC component for providing the web services
***JSON as transfer medium
***SSL client cert authentication between services and the Midgard2 instance
**CAS talks directly to MySQL
***CAS needs just username and password in some table (encryption?)
**The protocol specification needed ASAP (Alexey)
***Look up similar implementations in other web services


== Discuss it! ==

If you have suggestions, ideas, comments or questions feel free to join [http://maemo.org/maemo-meeting/sso-meeting-2009-05-27.html #maemo-meeting, 27.05. 12:00 UTC]

=== In short - the main results of the meeting ===

Besides a general status update, here in a few words the main results of the meeting:

==== User management ====
* Centralised in one component
* Implemented on top of Midgard
** Infrastructure and UI already there
** Only modifications instead of rebuild from scratch
* Stored in a LDAP directory
* Applications...
** ...request the data from the user management system
** ...still have there own, local database
** ...offer endpoint, which can be pinged by the user management system to inform, that user data has been changed

==== Data merging ====
* First proposal 2-way merge, but problem with talk, as mostly different from the rest
* Better (or additionally): First login into new system request user to specify user names and passwords of all components and merge them under the new account

==== Keep informed ====
Here, in the monthly [[Maemo.org_Sprints/May_09|sprints]] and on my [http://danielwilms.wordpress.com blog] you can get always the newest information on the topic. In a couple of weeks we will meet again to discuss the status. I hope there will be a lively discussion in the meanwhile to get new ideas, comments and suggestions.

== Test environment setup ==

Here you find the current status of the test environment. It is not meant for testing, but it should inform about the status right now.

[[Image:Architecture_test_envi.jpg]]

'''Authentication Server'''

* Instance of CAS running on the test server
* Apache Tomcat used as servlet container
* Secure connection
* self signed certificate used for testing purposes
* LDAP directory used for user authentication (running on virtual machine)


'''Mediawiki'''

* Instance of mediawiki running on the test server
* Apache web server used to host the wiki
* CAS authentication integrated
* User can log in and logout using CAS
* Single sign-out now working


'''GForge'''
* Instance hosted by apache web server running in test environment
* Integration ongoing


'''User Management System'''
* Abstracted of the others components
* Should contain all the user related data
* Applications could request data from it
* Right now just a UI as a user registry

== Issues ==

* ISSUE: LDAP/registry not over secure connection

== Next steps ==

* Full integration of GForge
* Concept user data management -&gt; apart from CAS
** Merging of different userdatabases (bugzilla, talk, midgard)
* Midgard integration
* Getting Wiki, Midgard, GForge in a shape for public testing


== Future Plans ==
* integration of bugzilla, talk


== Open Questions ==
* How should the application get the data from the user management system
** First possibility: 
*** Just UI to register user and update data
*** Other components get data by LDAP-access
** Second idea:
*** Web UI for user
*** REST API for applications

[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Single sign-on/Status may 2010</title>
    <id>4200</id>
    <revision>
      <id>35258</id>
      <timestamp>2010-06-03T10:24:28Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">This page should give a short overview of what is implemented up to now. We are at the moment on the way to move our test-environment to maemo.org. The following components are included right now:


* CAS
** CAS server running in Apache Tomcat
** Authenticates against LDAP and MySQL
** No special theme yet.

* Wiki
** Communication to CAS server implemented
** Single sign-on is integrated
** Single sign-out is integrated
** Implementation of database sync started, but not completed yet

* GForge
** CAS integration implemented
** Single sign-on is integrated
** Single sign-out is integrated
** Implementation of user sync similar to wiki - not completed

* Midgard
** [http://trac.midgard-project.org/browser/branches/ragnaroek/midcom/org.maemo.cas org.maemo.cas] MidCOM component provides authentication via CAS

* Midgard 2 - responsible for the database sync service
** [http://github.com/nemein/org_maemo_userdata org_maemo_userdata] MidgardMVC component implements xmlhttp-server for user-data synchronization

In the Maemo.org environment are the following components installed:

* CAS
** Fully functional with test-MySQL database

* Midgard
** ToDo 

* Midgard2 (located on the same server as CAS)
** Prelimenary version installed (needs to be upgraded to 10.05.x before testing)

[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Single sign-on/UserManagement-API</title>
    <id>2244</id>
    <revision>
      <id>34224</id>
      <timestamp>2010-05-11T08:54:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">==URL map==
===GET requests===
====/transactions/list/?since=UUID====

Returns array of transactions, which happened later then UUID specified. Possible reply:

    [
        {   &quot;uuid&quot;:&quot;00000000-0000-0000-C000-000000000046&quot;,
            &quot;action&quot;:&quot;create&quot;,
            &quot;timestamp&quot;:&quot;2009-08-04T00:07:12+04:00&quot;,
            &quot;data&quot;:{
                &quot;uuid&quot;:&quot;00000000-0000-0001-C000-000000000046&quot;,
                &quot;login&quot;:&quot;maemo&quot;,
                &quot;email&quot;:&quot;maemo@example.com&quot;,
                &quot;firstname&quot;:&quot;N&quot;,
                &quot;lastname&quot;:&quot;810&quot;,
                &quot;foo&quot;:&quot;bar&quot;
            }
        },
        {   &quot;uuid&quot;:&quot;00000000-0000-0000-C000-000000000047&quot;,
            &quot;action&quot;:&quot;update&quot;,
            &quot;timestamp&quot;:&quot;2009-08-04T00:07:13+04:00&quot;,
            &quot;data&quot;:{
                &quot;uuid&quot;:&quot;00000000-0000-0001-C000-000000000047&quot;,
                &quot;login&quot;:&quot;johndoe&quot;,
                &quot;email&quot;:&quot;johndoe@example.com&quot;,
                &quot;firstname&quot;:&quot;jonn&quot;,
                &quot;lastname&quot;:&quot;doe&quot;,
                &quot;foo&quot;:&quot;bar&quot;
            }
        },
        {   &quot;uuid&quot;:&quot;00000000-0000-0000-C000-000000000049&quot;,
            &quot;action&quot;:&quot;delete&quot;,
            &quot;timestamp&quot;:&quot;2009-08-04T00:07:22+04:00&quot;
        }
    ]

====/user/?param=value====

For example: 

    /user/?uuid=00000000-0000-0000-C000-000000000046
    /user/?login=maemo
    /user/?email=maemo@example.com

These return [false] or array of single user's data:

    {
        &quot;uuid&quot;:&quot;00000000-0000-0001-C000-000000000047&quot;,
        &quot;login&quot;:&quot;johndoe&quot;,
        &quot;email&quot;:&quot;johndoe@example.com&quot;,
        &quot;firstname&quot;:&quot;jonn&quot;,
        &quot;lastname&quot;:&quot;doe&quot;,
        &quot;foo&quot;:&quot;bar&quot;
    }

===POST requests===
====/user/====
Create user

Expects array with user-data as request-body

Returns [UUID] or [false]

====/user/?uuid=UUID====
Update user whose UUID matches

Expects array with user-data as request-body

Returns [true] or [false]

===DELETE requests===
====/user/?uuid=UUID====
Delete user whose UUID matches

Returns [true] or [false]

==Implementation details==

User-management service will be powered by Midgard-2 technology. Data will be represented by objects of 2 types:
* User
** UUID
** login
** firstname
** lastname
** etc. … (see [[Task:Single_sign-on/Account_info_stored_in_ldap]] for more details on user-fields)
* Transaction
** UUID
** timestamp
** action (can take values: create, update, delete)
** User's UUID

[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Source petition for example package</title>
    <id>491</id>
    <revision>
      <id>22172</id>
      <timestamp>2009-11-08T21:40:34Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <minor/>
      <comment>[[Source petition for example package]] moved to [[Task:Source petition for example package]]: This is a Task</comment>
      <text xml:space="preserve">{{Template:100Days agenda}}
{{task|accepted}}
{{Template:Expand}}

This is a petition to have the source of ''package name'' opened.

== Reasoning ==

''Package name'' should be open source because. . . .

== Requests ==
Starting a list here to have all the requests in one place.

* [https://bugs.maemo.org/show_bug.cgi?id=3195 Connection applet source should be open]</text>
    </revision>
  </page>
  <page>
    <title>Task:Sprint progress</title>
    <id>622</id>
    <revision>
      <id>8743</id>
      <timestamp>2008-11-14T04:11:44Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>Cleanup and categorization</comment>
      <text xml:space="preserve">{{task|completed}}

You can follow the first iteration at [[100Days/Sprint2]]

==The Problem: Progress Unknown==
maemo.org is being developed through public sprints since February 2008. The parties involved are the maemo.org funded crew, the Nemein guys in charge of the Midgard CMS and the Nokia contacts. 

In every sprint planning meeting each one of us has committed to a lot more than at the end was completed. This is not a problem per se (it usually happen, apparently). The problem is the lack of shared information about the progress on tasks and the reasons for the delays.

This leads to common issues like:
* Not knowing whether a task is stuck or the responsible party is working on it and just not reporting progress.
* Not knowing whether a task apparently stuck will be addressed anytime soon or will drop to the next sprint.
* Not knowing whether a task could get help from others, including people external to the core team.

According to previous agreements, everybody should send weekly reports to the mailing list. In practice only few people have done it and only a few times.

==The Proposal: Adapt SCRUM==
In fact these problems are well known in project management, especially in distributed environments. Agile development fights this lack of information with a daily short scrum meeting and a table showing the progress of all committed tasks.

===Document tasks===
Documenting is always good, but in our case it is essential. A written description of a task is the first and best element to ensure that everybody agrees on the same plan. We owe transparency to the Maemo community and we want to receive their help whenever possible. Tasks can be started by one person and continued by others. At any time a team member might want to know about a specific task and they can't go to the office of the co-worker and ask. 

All this leads to documenting tasks properly. All tasks willing to be commited in a maemo.org sprint should have either:
* [[:Category:Proposed|A proposal]] in a wiki page starting with &quot;Task:&quot; using the [[Template:Task]] in mode &lt;nowiki&gt;{{task|proposed}}&lt;/nowiki&gt;.
* Or a bug report in product Website with [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Website&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;priority=Medium&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=  Medium priority].

'''Proposal''': No new tasks accepted in the Backlog after Sprint2 unless they are backed by a decent wiki page or bug report.

===Daily microreports===
Having daily standup scrum meetings when working online is difficult.  ;)  Instead, it's easy to update (ideally daily) your status in a wiki page by telling in 3 sentences:
# '''What have I done since my last report.''' This is useful for others to see what is the progress.
# '''What are the obstacles I'm facing.''' This is useful to highlight problems (e.g. non-evident dependencies) where others can help.
# '''What is my plan today.''' This helps you to get organized and provides an orientation to others working in related tasks.

'''Proposal''': Start this practice in Sprint2.

===Progress table===
We can skip time allocation and nice graphical burn-down charts, :) but it would be useful to have a simple table showing the basic information for all the tasks involved in a sprint. This way it would be easy to see in a first glance where are the green and red areas.

{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightGreen&quot;
| 2008-06-24 || Task D || Miguel || '''DONE''' || LightGreen = Completed
|- style=&quot;background:LightBlue&quot;
| 2008-03-21 || Task B || Micaela || 50% || LightBlue = Good progress
|-
| 2008-02-20 || Task A || Mika || 50% || Default = Just standing
|- style=&quot;background:Orange&quot;
| 2008-04-22 || Task C || Michael || 50% || Orange = Some help needed!
|- style=&quot;background:Tomato&quot;
| 2008-05-23 || Task D || Michelle || 50% || Tomato = Really stuck/delayed
|}


[[Category:Community]]
[[Category:maemo.org]]
[[Category:Sprints]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Texts for maemo.nokia.com</title>
    <id>1321</id>
    <revision>
      <id>34223</id>
      <timestamp>2010-05-11T08:53:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">maemo.nokia.com will contain one page related to the current scope of maemo.org. Here we draft it. Quim needs to deliver *yesterday*.

[http://talk.maemo.org/showthread.php?p=308006 Talk discussion]

== Software freedom, open communities and you ==

Maemo devices are all about choice. Users can enjoy the features and services included right out of the box, and they can shape their own experience by downloading many more applications — most of them for free. This is how Maemo devices become something more than just cool gadgets, they become integral tools that satisfy demanding customers.

That said, if you want more... there is a lot more.

Maemo is an open platform running on open devices. It has Linux at its core, but also plenty more software components maintained by communities of open source developers. The platform is based on well-known technologies that are widely used in the free software community. 

''&quot;So what?&quot;'' you might say. Well, all of this matters if you wish to go beyond the role of a customer, a pure user.

In 1991, a young developer named Linus Torvalds began a software project in Helsinki, Finland (coincidentally the same city where the Maemo headquarters are located). That project was called Linux, and one interesting aspect of it was its ''open'' and ''free'' creative process. Other developers could look at the code, improve it, adapt it to specific purposes, and redistribute it.

All of this was — and is — done in a transparent and collaborative way, mostly via the Internet. Freedom, transparency, and online collaboration defined the methods of working on this very successful project. Free software existed before Linux, but over the years it has become a global phenomenon, an industrial trend, and a source of inspiration for countless important projects that drive the Internet today: Mozilla, Wikipedia, BitTorrent... The list is long. Maemo is proud to be a part of this tradition, contributing to several open source projects where Nokia is also involved. 

You will feel this as soon as you land at [http://maemo.org http://maemo.org]. The Maemo Community is a place for everybody to share, discuss, get and provide help, work on improvements, and enjoy the open atmosphere. No matter what your background in computing is, or what your motivation for purchasing a Maemo device was, you are guaranteed to find peers to meet and have fun with. This is how anyone can get involved in open source collaboration — even without a clue about programming.

Give it a try. [http://maemo.org/downloads/ Download] and rate some applications, [http://talk.maemo.org share your opinions], [http://maemo.org/community/brainstorm/ propose ideas]... Once you enter this open collaboration, it will be easy to know what to do next.

'''Beware.''' You might end up learning more than you expect. You might become more excited and involved than you intended to. Your community karma  might rise beyond your expectations. One day you might even find yourself meeting other Maemo peers face-to-face, late at night in a city you've never visited before —  far beyond the point where you were a pure user.
 
Yes, all of these things might happen to you after opening a Maemo box.

[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Upstream projects</title>
    <id>2707</id>
    <revision>
      <id>20059</id>
      <timestamp>2009-10-14T11:00:02Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Task:Upstream projects]] moved to [[Open development/Upstream projects]]: move</comment>
      <text xml:space="preserve">#REDIRECT [[Open development/Upstream projects]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Usability experiences</title>
    <id>1094</id>
    <revision>
      <id>32786</id>
      <timestamp>2010-04-15T11:46:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use mediawiki references</comment>
      <text xml:space="preserve">== Introduction ==

This task aims to provide solutions for solving the lack of input from users to developers regarding ''usability''. This task is ''not'' directly aimed at solving usability related problems. Instead, the focus is to bring users and developers in communication with each other, providing a system of either 1-way or 2-way ''feedback''.

In order to understand this task it is recommended the reader educates him or herself about usability. See for example Wikipedia &lt;ref&gt;[[:wikipedia:Usability]]&lt;/ref&gt; for an introduction about usability. Also, please consider to recent analysis on free software/open source software and usability related problems. ''Why Free Software has poor usability, and how to improve it'' by Matthew Paul Thomas &lt;ref&gt;http://mpt.net.nz/archive/2008/08/01/free-software-usability&lt;/ref&gt;, and a rebuttal to this article ''Comments on Recent Open Source Usability Article'' by Celeste Lyn Paul &lt;ref&gt; http://weblog.obso1337.org/2008/comments-on-recent-open-source-usability-article&lt;/ref&gt;.

If you are interested in usability in free software/open source software please consider to join the Season of Usability sponsored by Google and Nokia &lt;ref&gt;http://season.openusability.org/&lt;/ref&gt;.

== The problem ==

Nokia wishes to make the NIT more consumer-ready, for non-developers and non-technical inclined users. In order to achieve this, both Nokia developers and 3rd party developers need to make their programs better usable. Users must have a convenient way to inform developers not only about ''bugs'' but also about ''usability''-related problems. There is currently no easy way for users to express their experience with a certain program or part of maemo; and there is no easy way for developers to learn about a user experiences.

== Proposed solution(s) ==

Provide a platform on maemo.org where users are able to provide a usability experience with a program. A user would be able to add their experience to a Nokia or 3rd party program. Developers can easily these experiences using the maemo.org framework. An example of a usability experience of Maemo Mapper is quoted in this post by allnameswereout on Internet Tablet Talk &lt;ref name=&quot;itt&quot;&gt;
http://www.internettablettalk.com/forums/showpost.php?p=209927&amp;postcount=6&lt;/ref&gt;. It has to be taken into account that on one hand users want to express their feelings about a program, while on the other hand want to have their usability-related problem solved. Due to the subjective content of usability experiences the signal-to-noise might be lower than preferred. Therefore, it is important how maemo.org provides the framework for a user, to increase the signal-to-noise ratio by a set of guidelines. There was no set of guidelines used in earlier referred example post &lt;ref name=&quot;itt&quot; /&gt;. This important aspect has to be still worked out. Please use the talk page on this wiki entry for discussion concerning these guidelines.

== Caveats ==

To be done.

== Sources == 

The following sources are referred to by this wiki entry.

&lt;references /&gt;

[[Category:Community]]
[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:Using garage.maemo.org</title>
    <id>664</id>
    <revision>
      <id>33302</id>
      <timestamp>2010-04-22T13:08:37Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>one fewer link</comment>
      <text xml:space="preserve">{{Template:100Days agenda}}
{{task|ongoing}}

Develop a recommended usage policy for garage.maemo projects, taking into account turning off GForge modules not needed (perhaps defaulting in a subset rather than all, for new projects). Further discussions on whether non-core bugs should be in central Bugzilla and garage trackers merged/closed (also see [[Task:3rd party bug tracking in bugs.maemo.org]]). Ferenc to expand and work on a proposal.

Currently there is a bit mess of documentation:

* http://maemo.org/intro/maemo_garage/
* [[Getting_started_with_Maemo_Garage]]
* [[Git_For_Garage]]
* ... and more if you search for Garage in the wiki.</text>
    </revision>
  </page>
  <page>
    <title>Task:Wiki dumps</title>
    <id>3499</id>
    <revision>
      <id>32695</id>
      <timestamp>2010-04-14T14:16:29Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix template usage</comment>
      <text xml:space="preserve">{{task|proposed}}


Public weekly SQL dumps of the maemo.org wiki should be made available. This would allow the community to make their own copies of the dumps for backups and for use with offline viewers such as evopedia.

There are two types of dump of MediaWiki:
* A database dump using &lt;pre&gt;mysqldump -h&lt;hostname&gt; -u&lt;user&gt; -p &lt;dbname&gt;&lt;/pre&gt; which includes account data and site information
* An XML dump of the page contents, which is done on the shell on the server with &lt;pre&gt;php $MEDIAWIKI_DIR/maintenance/dumpBackup.php --full &gt; mediawiki_dump.xml&lt;/pre&gt;

All image files and attachments are stored on the filesystem in `/var/lib/mediawiki/images` and can be archived with a .tar.gz

References:
* [http://meta.wikimedia.org/wiki/MediaWiki#Database_dump MediaWiki database dump]
* [http://www.mediawiki.org/wiki/Manual:Backing_up_a_wiki Backing up a wiki]</text>
    </revision>
  </page>
  <page>
    <title>Task: Garage facelift (implement the current maemo.org theme)</title>
    <id>3804</id>
    <revision>
      <id>32178</id>
      <timestamp>2010-04-08T14:21:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Garage facelift]]</text>
    </revision>
  </page>
  <page>
    <title>Task:donation on download page</title>
    <id>1255</id>
    <revision>
      <id>32690</id>
      <timestamp>2010-04-14T13:57:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>{{task}}</comment>
      <text xml:space="preserve">{{task|accepted}}

'''Feature wanted:''' 
maemo to support donations to software in maemo-&gt;download.

Optimal would be a '''donation button''' near the &quot;on click installation&quot; and maemo (or a maemo partner) handling the transfer of the money to different
accounts of the authors and developers of the software with (by project maintainer) defined ratios.

'''Reason:''' 
I have feature requests for our software (vncviewer) with donation offer, and
like to have a simple way to handle donations to realize the requests. I think,
this would help some developers to realize feature requests.

Of cause it is possible for an author to put a donation button on the project main page using some donation provider.
But I think maemo commuity would be a good place to offer this. I
know, it is some administration necessary, but exactly this is the reason, why
I did not do it myself up to now. 

On the other side, if more maemo applications would offer a donation button,
this might influence the behaviour of the users on accepting this to be the
kind of way this application &quot;store&quot; works.</text>
    </revision>
  </page>
  <page>
    <title>Task:fremantle application categories</title>
    <id>1947</id>
    <revision>
      <id>13891</id>
      <timestamp>2009-06-02T17:15:38Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[Task:fremantle application categories]] moved to [[Task:Fremantle application categories]]</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Fremantle application categories]]</text>
    </revision>
  </page>
  <page>
    <title>Task:maemo.org IRC cloaks</title>
    <id>2786</id>
    <revision>
      <id>37437</id>
      <timestamp>2010-08-02T15:46:00Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">{{task|completed}}

This task aims to outline a plan for assigning cloaks for maemo.org staff, maemo.org contributors, Nokia employees and Nokia contractors.

&lt;s&gt;Cloaks should be broken down into two basic sections maemo.org and Nokia. maemo.org should use maemo.org/ and Nokia Maemo/.&lt;/s&gt; Not possible due to Freenode guidelines, using Maemo/comumnity and Maemo/ instead.

The list of all community cloak wearers is available [[maemo.org IRC cloak list|here]]. Any Nokia employees or contractors interested in a cloak should contact [[User:Generalantilles|GeneralAntilles]] or [[User:Xfade|X-Fade]] on Freenode.

Also please refer to https://bugs.maemo.org/show_bug.cgi?id=8450

== maemo.org ==

maemo.org cloaks can be broken down into paid staff and contributors.

=== Staff ===

We currently have 6 positions on the [[maemo.org team]]:

* Maemo/community/webmaster
* Maemo/community/docmaster
* Maemo/community/bugmaster
* Maemo/community/debmaster
* Maemo/community/talkmaster
* Maemo/community/distmaster

=== Contributors ===

Contributor cloaks should be kept simple. One cloak for council members, another for recognized contributors with over 500 karma points.

* Maemo/community/council
* Maemo/community/contributor

== Nokia ==

Cloaks for Nokia employees and contractors should be as flexible as possible. For example, some valid cloak options might include:

* Maemo/opensourceadvocate
* Maemo/MicroB/engineer
* Maemo/Modest/architect
* Maemo/marketing
* Maemo/Nokia/employee
* Maemo/Igalia

Nokia employees and contractors not wishing to advertise their affiliation with the company are welcome to use a /Maemo/community/contributor cloak.</text>
    </revision>
  </page>
  <page>
    <title>Task:maemo.org IRC feeds</title>
    <id>670</id>
    <revision>
      <id>9182</id>
      <timestamp>2008-12-04T05:40:41Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Changing &quot;Maemo Wiki&quot;</comment>
      <text xml:space="preserve">{{task|proposed}}

Bugzilla and the wiki both feature streams of frequently updated information that is difficult to monitor. With Bugzilla, you can, of course, subscribe yourself to email notifications for any number of changes, but this will quickly become overwhelming is mail folders fill up and backlogs grow. The wiki isn't much better, the [[Special:Recentchanges]] page can be monitored, but this can be difficult to sort through to see new changes, and requires constantly reloading a web page, and the RSS feed is similarly difficult. To make it easier to monitor both streams, an IRC bot that feeds this information into #maemo-bugs and #maemoorg-wiki should be put installed.

== Bugzilla feed ==
A bugzilla feed of new and updated bugs should be easy to put together with either [http://supybot.com/ supybot] or [http://www.mozilla.org/projects/mozbot/ mozbot].

jott has started work on a supybot with the bugzilla plugin.

== Wiki feed ==
Wikipedia maintains a bot-provided feed for vandalism monitoring in #cvn-wp-en, but I'm not sure the exact method used to acquire this feed. Some research needs to be done here.</text>
    </revision>
  </page>
  <page>
    <title>Task:maemo.org logo contest</title>
    <id>275</id>
    <revision>
      <id>1855</id>
      <timestamp>2008-06-18T09:50:34Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Task:maemo.org logo contest]] moved to [[Maemo.org logo contest]]: The Task is closed, the competition will be open in a few minutes.</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo.org logo contest]]</text>
    </revision>
  </page>
  <page>
    <title>Task:maemo roadmap</title>
    <id>633</id>
    <revision>
      <id>27659</id>
      <timestamp>2010-01-28T14:08:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Open development/Maemo roadmap]]</text>
    </revision>
  </page>
  <page>
    <title>Task:osso-xterm</title>
    <id>1391</id>
    <revision>
      <id>20360</id>
      <timestamp>2009-10-18T18:32:37Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <text xml:space="preserve">Let's explore the possibility of opening completely the development of osso-xterm, in a setting where Nokia and community maintainers would work together.

Proposed objectives:
* Port osso-xterm to Fremantle (and rename to maemo-xterm or anything !osso)
** Perhaps !xterm, as well; it's libvte-based, and not related to xterm proper.
*** The name &quot;maemo-terminal&quot; seems to be taken (after a quick Google Search: [http://www.internettablettalk.com/forums/showthread.php?t=84 maemo-terminal from 2005]); also taken: mterm ([http://mterm.sf.net/ a dockable program launcher on sourceforge]) other suggestions for the name: mterminal (only ~ 330 unrelated hits on Google); maemoterm (0 hits on google); maemotty (too abstract/unrelated?); maemo-vte (only 2 hits talking about &quot;vte&quot; in maemo) --[[User:thp|thp]] 13:26, 23 December 2008 (UTC)
* Diablo port handled totally by community members?

== Garage project ==
https://garage.maemo.org/projects/osso-xterm/

== Open enhancement requests ==

{{#bugzilla:
  |component=X+Terminal
  |severity=enhancement
  |status=unconfirmed,new,assigned,reopened
  |sort=votes
  |order=desc
  |columns=votes,id,summary
}}

== Open bugs ==

{{#bugzilla:
  |component=X+Terminal
  |severity=!enhancement
  |status=unconfirmed,new,assigned,reopened
  |sort=votes
  |order=desc
  |columns=votes,severity,id,summary
}}
[[Category:Tasks]]</text>
    </revision>
  </page>
  <page>
    <title>Task:rsyncd</title>
    <id>3493</id>
    <revision>
      <id>32689</id>
      <timestamp>2010-04-14T13:53:28Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix template usage</comment>
      <text xml:space="preserve">{{task|proposed}}

In the interest of making it as easy as possible for people to make copies of the maemo.org repositories, an rsync server should be set up.

Sample code:
 $ cat /etc/rsyncd.conf 
 [repository.maemo.org]
   path = /var/www/repository.maemo.org
   comment = Extras Repositories for Maemo 5 (Fremantle)
   read only = yes
   use chroot = yes
   max connections=256
   list = yes
   uid = nobody
   gid = rsync
   dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz



== Done ==

I have set this up, but we need to poke a hole in the firewall for outside parties to reach the rsync server.  -- Jeremiah</text>
    </revision>
  </page>
  <page>
    <title>Task:talk.maemo.org</title>
    <id>1365</id>
    <revision>
      <id>32791</id>
      <timestamp>2010-04-15T13:36:54Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* New structure */ fix links</comment>
      <text xml:space="preserve">{{task|completed}}

In an effort to unify and strengthen the Maemo Community, [http://www.internettablettalk.com/ Internet Tablet Talk] will be coming under the maemo.org banner as [http://talk.maemo.org talk.maemo.org]. Hosting costs be picked up by Nokia, which means advertisement can be removed from the site.

== New structure ==

The Internet Tablet Talk [http://www.internettablettalk.com/ news], [http://www.internettablettalk.com/wiki/index.php?title=Main_Page wiki] and [http://www.internettablettalk.com/software/ software] sections will be deprecated in favor of the maemo.org [http://maemo.org/news/ News] [[Main Page|Wiki]], and [http://downloads.maemo.org/ Downloads]. Reggie and Roger will continue blogging from either Midgard or a new forum feature.

== Moderators and administrators ==

New moderators (to be chosen, likely by Reggie with some community input) and administrators (likely people with root access to maemo.org) will be added to [[Talk_moderators|the team]] to help manage spam; move, merge and (where necessary) lock threads; and generally keep the forums clean, fun, and friendly. Reggie will still remain in control, though.

== Forum software and maemo.org integration ==

itT's current version of vBulletin is a few releases old, so a software upgrade should be part of the move. A new theme will need to be developed to integrate the forums with the rest of maemo.org (hopefully transparently).

== Downloads integration ==

With the forums coming under the maemo.org banner, the [http://www.internettablettalk.com/forums/showthread.php?t=20261 itTSS] will be restarted with tighter integration with Downloads.


[[Category:Community]]
[[Category:Talk]]</text>
    </revision>
  </page>
  <page>
    <title>Tear</title>
    <id>2121</id>
    <revision>
      <id>38864</id>
      <timestamp>2010-09-22T08:56:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>{{out of date}}</comment>
      <text xml:space="preserve">{{out of date}}

Tear is a WebKit browser. It is currently under heavy development, so expect occasional bugs (including freezes &amp; crashes) and quirks. However, because of Tear's speed, and the benefits of being WebKit based (such as perfect rendering of the Acid 3 test!) it's becoming a popular option. 

Track and file bugs [http://bugs.bundyo.org/ here]. Garage page [https://garage.maemo.org/projects/tear here]. Latest Talk Maemo thread [http://talk.maemo.org/showthread.php?t=28539 here]. Please search these links before posting questions. 

This wiki document applies to Tear version 0.3.5. You can see which version of Tear you're running by tapping menu -&gt; Help -&gt; About.

== Installing Tear ==

Tear can be installed from [[extras-devel]] for [[Open development/Maemo roadmap/Fremantle|Fremantle]]. There are barriers that are currently preventing Tear from being in the official repositories (even extras-devel) for [[Open development/Maemo roadmap/Diablo|Diablo]]. Therefore, the easiest way to install Tear right now using Diablo is using [http://qole.org/ Qole's] repository. 

=== Adding Qole's Repository to Application manager (Diablo) ===

*Go into the Application manager.
*Tap the menu -&gt; Tools -&gt; Application catalog...
*Tap New and enter the following information:
   Catalogue Name: Qole
   Web address: http://qole.org/repository
   Distribution: maemo
   Components: main
*Click OK and then Close.

This method doesn't work if you have a 770 [http://talk.maemo.org/showpost.php?p=281989&amp;postcount=30 *]. Problems? Try [http://talk.maemo.org/showthread.php?t=30180 this]. Sources [http://talk.maemo.org/showpost.php?p=281889&amp;postcount=1 *] [http://talk.maemo.org/showpost.php?p=301447&amp;postcount=4 *] [http://talk.maemo.org/showpost.php?p=298680&amp;postcount=10 *]

=== Installing From Qole's Repository (Diablo) ===

With the Application manager, search for &quot;Tear&quot; and install.
If the Application Manager does not find it, don't panic - it probably just needs to download the update for Qole's repository; goto Main View, then hit the  &quot;Check for updates&quot; button, and try again.

=== Alternate Installation Method (Diablo) ===

You could install Tear using Bundyo's link [http://talk.maemo.org/showpost.php?p=281889&amp;postcount=1 here], but then you would need to separately install some associated library files. See [http://talk.maemo.org/showpost.php?p=298698&amp;postcount=12 this] for commands.

== Installing TearBookmarks Side Panel ==

TearBookmarks is currently in Qole's repository. This information applies to version 0.3.1-4. 

If you have enabled Qole's repository using the above steps, you can install TearBookmarks using the Application manager. Now you need to get it to appear on the left panel. Steps to do that:

*Go into the Control Panel.
*Tap &quot;Panels&quot;. 
*You should see an option for &quot;Tear Bookmarks&quot;. Uncheck one of the existing options and check &quot;Tear Bookmarks&quot;.
*Hit OK and close the Control Panel.

A Tear icon should appear on the left panel. Tapping this allows you to do such things as open a new page of Tear, open a bookmark manager, or open one of your bookmarks in Tear.

== Tear FAQ ==

=== What are some of Tear's core functionalities? ===
Tear observes the tablet's hardware fullscreen button and the zoom button. Use the D-Pad arrows to scroll. Drag the stylus to drag the web page, flick the stylus to scroll, tap and hold the stylus to cause a context menu to appear. 

Tear uses separate windows rather than tabs. Tap and hold on a link to get a choice to open up that link in another window.

=== How do I set/clear/access bookmarks? ===
Within Tear, navigate to the web page in question and tap the grey or yellow star on the toolbar. You can also set bookmarks using menu -&gt; Page -&gt; Add bookmark... You can also manage bookmarks from the side panel by selecting the &quot;Bookmarks&quot; option in that panel (see below for more info).

Access bookmarks within Tear by clicking the ^ symbol on the far right of the toolbar or via the Dashboard's &quot;Bookmarks&quot; tab.

See also [http://talk.maemo.org/showpost.php?p=364833&amp;postcount=942 this tip] for integrating Tear with Google Bookmarks.

=== Can I switch the built-in bookmark panel to call Tear instead? ===
Yes, using the [http://browser-switch.garage.maemo.org/ Browser Switchboard] program! Saving bookmarks into the built-in panel from Tear, however, can't be done at present.

=== Can I get other programs to call Tear? ===
Probably. Try installing [http://browser-switch.garage.maemo.org/ Browser Switchboard] and setting your default browser to Tear.

=== Can I transfer bookmarks into Tear? ===
Tear currently has no way to import bookmarks. However, if another browser allows you to export bookmarks as an HTML file, you can open this HTML file within Tear [http://talk.maemo.org/showpost.php?p=287210&amp;postcount=246 *].

For [[MicroB_tweaks|MicroB]], the steps are these:
*Within MicroB, tap the menu -&gt; Navigation -&gt; Bookmarks. The bookmark manager will open.
*Tap the menu -&gt; Tools -&gt; Export...
*Choose a filename and location and hit OK. 
*Within Tear, tap the menu -&gt; Page -&gt; Open file... and select the file you exported.

You can bookmark this page within Tear. Or you can make it your home page by going to menu -&gt; Page -&gt; Set home page (or set home_page in menu -&gt; Tools -&gt; Options...).

=== How can I get the toolbar to appear in fullscreen mode? ===
You can make it appear on demand by holding and releasing the DPad Enter key [http://talk.maemo.org/showpost.php?p=281889&amp;postcount=1 *]. You can make it always visible by selecting:

menu -&gt; View -&gt; Toolbar -&gt; Show Toolbar in Fullscreen

=== How do I select text? Dragging the stylus drags the page. ===
Hold down the menu button as you drag [http://talk.maemo.org/showpost.php?p=281889&amp;postcount=1 *]. Additionally, as with MicroB, you can double-tap to select a word of text or triple-tap to select a block of text.

Serendipitously, holding down the menu key also you to do drag-scrolling on Google Maps[http://talk.maemo.org/showthread.php?t=28539&amp;page=39 *] and presumably other similar sites that co-opt the drag action.

=== Does Tear have adblocking functionality (e.g., a plugin)? ===
No, but see [http://talk.maemo.org/showpost.php?p=128028&amp;postcount=20 this hack].

=== Can Tear clear browsing history? ===
Yes, see options under menu -&gt; Tools. (Previously, the only option was to delete [http://talk.maemo.org/showpost.php?p=277972&amp;postcount=811 this file].)

=== How do I change the User Agent? ===
Aka user agent spoofing. The purpose is to make a website think Tear is a different browser in order to hack past incompatibility problems or to trigger different behavior (e.g., the mobile version of a site).

Go to menu -&gt; Tools -&gt; Options and change user_agent [http://talk.maemo.org/showpost.php?p=281889&amp;postcount=1 *] [http://talk.maemo.org/showpost.php?p=282166&amp;postcount=51 *]. If you clear the field and click OK, the default user-agent will be restored.

Default agent:
 Mozilla/5.0 (X11; U; Linux armv6l; en-us) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) tear

iPhone user agent (for iPhone spoofing -- [http://www.mattcutts.com/blog/iphone-user-agent/ reference] -- for trouble-shooting see [http://talk.maemo.org/showthread.php?t=28539&amp;page=6 this] &amp; [http://talk.maemo.org/showthread.php?t=28152 this]):
 Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3

iPad user agent (for iPad spoofing -- [http://developer.apple.com/safari/library/technotes/tn2010/tn2262.html#TNTAG4/ reference] -- for trouble-shooting see [http://talk.maemo.org/showthread.php?t=28539&amp;page=6 this] &amp; [http://talk.maemo.org/showthread.php?t=28152 this]):
 Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10

[[Category:Web]]
[[Category:Software]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Telephony Stack</title>
    <id>4661</id>
    <revision>
      <id>41270</id>
      <timestamp>2011-01-21T10:06:53Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly and categorize</comment>
      <text xml:space="preserve">This article is a collection of telephony stack definitions relavent to Cell Broadcast support

== definitions from /usr/lib/libisi.so.1.4.0 ==
&lt;source lang=&quot;c&quot;&gt;
struct isi_client_t {
	void *clientptr; //opaque pointer
	int unk; //unknown
};
struct comm_channel_info_t {
	void *commptrs; //opaque pointer
};
struct callbacks {
	void *func1; //function pointer, unknown prototype
	void *unk1;
	void *unk2;
	void *func2; //function pointer, unknown prototype
	void *func3; //function pointer, unknown prototype
	void *func4; //function pointer, unknown prototype
};

void isi_client_cancel_timeout(isi_client_t *self);
void isi_client_cleanup(isi_client_t *self);
void isi_client_run(isi_client_t *self);
int isi_client_init(isi_client_t *self, callbacks *callbackptrs, comm_channel_info_t *cinfo, int channel);
void isi_client_set_timeout(isi_client_t *self, int timeout);
void isi_client_start(isi_client_t *self);
void isi_client_stop(isi_client_t *self);
void socket_cinfo_init(comm_channel_info_t *cinfo);
int isi_client_sendto_resource(isi_client_t *self, void *buffer, char unknown, char resource);
int isi_client_process_isi_version_resp(isi_client_t *self, int version);
int isi_client_subscribe_indications(isi_client_t *self, char unknown, void *data, signed int size);
int isi_client_cancel_indications(isi_client_t *self, char unknown);
int sb_id_get(void *buf);
int sb_length_get(void *buf);
void *msgbuf_init(void *buffer, unsigned int size, int unknown);
void *msgbuf_add_ptr(void *buffer, unsigned int size);
void *msgbuf_get_ptr(void *buffer, unsigned int size);

pn_route_subscribe //definition not identified yet
pn_route_unsubscribe //definition not identified yet
&lt;/source&gt;

== definitions from /usr/sbin/csd ==

&lt;source lang=&quot;c&quot;&gt;
struct CSDResourceContext {
	int unknown;
	DBusConnection *connection;
	DBusPreallocatedSend *send;
	DBusMessage *message;
};

struct CSDObject { //guessed definition, not sure about the size or layout of this one
	int unknown;
	char *path;
	int unknown2;
	int unknown3;
	int unknown4;
};

struct CSDPlugin { //size may be wrong
	char *name;
	void *configure; //function pointer, unknown prototype	
	void *start; //function pointer, unknown prototype	
	void *stop; //function pointer, unknown prototype	
	int unknown1;
	int unknown2;
	int unknown3;
	int unknown4;
};

int csd_dbus_error(DBusError *error, const char *format, const char *name);
void csd_dbus_free_resource_context(CSDResourceContext *context);
unsigned int csd_dbus_register_object(DBusConnection *connection, CSDObject *object);
unsigned int csd_dbus_unregister_object(DBusConnection *connection, CSDObject *object);
void csd_dbus_save_resource_context(CSDResourceContext *context1, CSDResourceContext *context2)
void csd_dbus_send_message(CSDResourceContext *context);
DBusConnection *csd_get_dbus_connection();
void csd_service_started(const char **bus);
void csd_service_stopped(const char **bus, char *service);

csd_dbus_introspectable_interface //a pointer to an unknown data structure

// All csd plugins export a function install which looks like this:
CSDPlugin *install();
&lt;/source&gt;

== libsms.so.0 notes ==

Functions &lt;code&gt;sms_gsm_cb_routing_ntf&lt;/code&gt;, &lt;code&gt;sms_gsm_cb_routing_req&lt;/code&gt; and &lt;code&gt;sms_gsm_cb_routing_resp&lt;/code&gt; may also be of value for Cell Broadcast. Analysis of &lt;code&gt;libsms.so.0&lt;/code&gt; and &lt;code&gt;libcsd-sms.so&lt;/code&gt; may reveal just how high up the stack the Cell Broadcast support goes and how much work is needed to make it work (references exist in &lt;code&gt;libsms.so.0&lt;/code&gt; to strings like &quot;Incoming cell broadcast&quot; so &lt;code&gt;libsms.so.0&lt;/code&gt; at least must be doing something with cell broadcast messages. Unclear what &lt;code&gt;libsms.so.0&lt;/code&gt; is doing with those messages or whether &lt;code&gt;libcsd-sms.so&lt;/code&gt; is doing anything with them (and what has to be done at the higher levels to get working CBSMS support)

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>Template:100Days agenda</title>
    <id>101</id>
    <revision>
      <id>34449</id>
      <timestamp>2010-05-18T18:59:47Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">{{ambox
| type = notice
| image =
| text = '''This article is continued discussion from the [http://maemo.org/news/announcements/maemo-brainstorm/ maemo.org brainstorm]'''&lt;br /&gt;&lt;small&gt;Please see the [[100Days|100 Days agenda]] for more.&lt;/small&gt;
}}&lt;includeonly&gt;[[Category:Brainstorm]]&lt;/includeonly&gt;
&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:2010 agenda</title>
    <id>102</id>
    <revision>
      <id>3266</id>
      <timestamp>2008-06-28T21:20:45Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve">{{ambox
| type = notice
| image =
| text = '''This article is continued discussion from the [http://maemo.org/news/announcements/view/maemo-brainstorm.html maemo.org brainstorm]'''&lt;br /&gt;&lt;small&gt;Please see the [[2010 Agenda]] for more.&lt;/small&gt;
}}&lt;includeonly&gt;[[Category:Brainstorm]]&lt;/includeonly&gt;
&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Ambox</title>
    <id>601</id>
    <revision>
      <id>3273</id>
      <timestamp>2008-06-28T21:38:15Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve">&lt;table class=&quot;ambox 
{{#switch:{{{type|}}}
| speedy     = ambox-speedy
| delete        &lt;!-- delete = serious --&gt;
| serious    = ambox-delete
| content    = ambox-content
| style      = ambox-style
| move          &lt;!-- move = merge --&gt;
| merge      = ambox-move
| protection = ambox-protection
| notice        &lt;!-- notice = default --&gt;
| #default   = ambox-notice
}}&quot; style=&quot;{{{style|}}}&quot;&gt;
&lt;tr&gt;
{{#ifeq:{{{image|}}}|none
| &lt;!-- No image. Cell with some width or padding necessary for text cell to have 100% width. --&gt;&lt;td style=&quot;border: none; padding: 1px;&quot;&gt;&lt;/td&gt;
| &lt;td class=&quot;ambox-image&quot;&gt;&lt;div style=&quot;width: 52px;&quot;&gt;
  {{#ifeq:{{{image|}}}|blank
  | &amp;nbsp;
  | {{#if:{{{image|}}}
    | {{{image}}}
    | {{#switch:{{{type|}}}
      | speedy     = [[Image:Ambox_speedy_deletion.png]]
      | delete    = [[Image:Ambox_speedy_deletion.png]]
      | serious    = 
      | content    = [[Image:Ambox_content.png]]
      | style      = 
      | move
      | merge      = 
      | protection = 
      | notice          &lt;!-- notice = default --&gt;
      | #default   = [[Image:Ambox_notice.png]]
      }}
    }}
  }}&lt;/div&gt;&lt;/td&gt;
}}
&lt;td class=&quot;ambox-text&quot; style=&quot;{{{textstyle|}}}&quot;&gt; {{{text}}} &lt;/td&gt;
{{#if:{{{imageright|}}}
| &lt;td class=&quot;ambox-imageright&quot;&gt;&lt;div style=&quot;width: 100px;&quot;&gt; {{{imageright}}} &lt;/div&gt;&lt;/td&gt;
}}
&lt;/tr&gt;
&lt;/table&gt;&lt;noinclude&gt;
[[Category:Template]]
&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Basics</title>
    <id>2874</id>
    <revision>
      <id>38012</id>
      <timestamp>2010-08-23T12:01:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>direct link</comment>
      <text xml:space="preserve">* [[New users]]
* [[Downloading applications]]
* [[User FAQ|Frequently asked questions]]
* [[Extras|Maemo Software]]

&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Beginners</title>
    <id>2890</id>
    <revision>
      <id>33027</id>
      <timestamp>2010-04-19T10:37:19Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>link directly applications page</comment>
      <text xml:space="preserve">* [[New users]]
* [[Downloading applications]]
* [[Troubleshooting | Repairing Maemo]]

&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Brainstorm 2010</title>
    <id>4101</id>
    <revision>
      <id>34455</id>
      <timestamp>2010-05-18T19:05:28Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">{{ambox
| type = notice
| image =
| text = '''This article is continued discussion from the [http://talk.maemo.org/showthread.php?p=664650 Maemo brainstorm 2010]'''&lt;br /&gt;&lt;small&gt;Please see the [[Brainstorm 2010|Brainstorm 2010 agenda]] for more.&lt;/small&gt;
}}&lt;includeonly&gt;[[Category:Brainstorm]][[Category:Community]]&lt;/includeonly&gt;
&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Clear</title>
    <id>4704</id>
    <revision>
      <id>41680</id>
      <timestamp>2011-02-07T15:19:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add description</comment>
      <text xml:space="preserve">&lt;br style=&quot;clear:both;&quot; /&gt;&lt;noinclude&gt;Makes content wait until existing content is completed in all columns. Often used to stop text from flowing next to unrelated images.[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Community</title>
    <id>16</id>
    <revision>
      <id>48119</id>
      <timestamp>2012-06-04T09:17:49Z</timestamp>
      <contributor>
        <username>mrsellout</username>
        <id>3603</id>
      </contributor>
      <comment>Removed outdated &quot;Changed 2010 agenda&quot;</comment>
      <text xml:space="preserve">* [[Community news]]
* [[Community_Council|Maemo Community Council]]
* [[maemo.org team]]
* [[Community mailing lists]]
* [[Open development/Upstream projects|Community projects we depend on]]
* [[Maemo professionals]]
* [[People|Maemo people]]
* [[Getting involved]]

&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Danger</title>
    <id>3626</id>
    <revision>
      <id>33559</id>
      <timestamp>2010-04-27T10:28:52Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <text xml:space="preserve">{{ambox
| type = notice
| image= 
| text = '''Some instructions here may cause serious problems. When unsure, see [[General precautions]]'''&lt;br /&gt;
'''Backing up your data is recommended.''' In case of trouble you might need to [[Updating the firmware|re-flash your device]].
}}

&lt;noinclude&gt;
[[Category:Template]]
&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Delete</title>
    <id>620</id>
    <revision>
      <id>38218</id>
      <timestamp>2010-08-30T15:19:55Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add &lt;includeonly&gt; and &lt;noinclude&gt;</comment>
      <text xml:space="preserve">{{ambox
| type = delete
| image= 
| text = '''This article has been marked for potential deletion.'''&lt;br /&gt;&lt;small&gt;Please see the &lt;includeonly&gt;[[{{TALKPAGENAME}}#{{#if:{{{talksection|}}}|{{anchorencode:{{{talksection}}}}}}}|&lt;/includeonly&gt;&lt;noinclude&gt;'''&lt;/noinclude&gt;talk page&lt;noinclude&gt;'''&lt;/noinclude&gt;&lt;includeonly&gt;]]&lt;/includeonly&gt; for discussion.&lt;/small&gt;
}}&lt;includeonly&gt;[[Category:Articles marked for deletion]]&lt;/includeonly&gt;&lt;noinclude&gt;Use this template to tag articles for deletion.
[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Development</title>
    <id>18</id>
    <revision>
      <id>38011</id>
      <timestamp>2010-08-23T11:50:54Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Mer]] is no longer relevant</comment>
      <text xml:space="preserve">&lt;!--
  It makes sense to link to the reference material here, even if it is not in the wiki.
--&gt;
* [[Documentation|Maemo 5.0 (Fremantle) documentation]]
* [[Documentation/Maemo 5 Developer Guide/Porting Software|Porting your application]]
* [http://mxr.maemo.org/ Maemo Cross Reference]
* [[Developer FAQ|Developer frequently asked questions]]
* [[Bugs:Stock answers|Help create stock answers for bugs]]


&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Devices</title>
    <id>4084</id>
    <revision>
      <id>34277</id>
      <timestamp>2010-05-12T11:34:22Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>initial devices template</comment>
      <text xml:space="preserve">{| class=&quot;wikitable&quot; style=&quot;width:100%;text-align:center&quot;
! [[Comparison of tablet models|Nokia Internet Tablets]]
|-
| [[Nokia 770|770]] · [[Nokia N800|N800]] · [[Nokia N810|N810]] ([[Nokia N810WME|WME]]) · [[Nokia N900|N900]]
|}

[[Category:Devices]]

&lt;noinclude&gt;
[[Category:Template]]
&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Devtools</title>
    <id>3746</id>
    <revision>
      <id>30964</id>
      <timestamp>2010-03-11T15:00:08Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add devtools template</comment>
      <text xml:space="preserve">{{ambox
| type = content
| image= 
| text = '''This article documents a ''[[Documentation/devtools|developer tool]]''.'''&lt;br /&gt;&lt;small&gt;A [[Documentation/devtools/maemo5#Categories|list of available devtools]] is available, together with [[Documentation/devtools/maemo5#Installation|installation instructions]].&lt;/small&gt;
}}
&lt;includeonly&gt;[[Category:Devtools]]&lt;/includeonly&gt;&lt;noinclude&gt;Use this template to tag articles as developer tools, in the tools repository.
&lt;!-- TODO: Make some generic installation instructions and devtools article. A better image for the template would be nice. --&gt;
[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Edit help</title>
    <id>3202</id>
    <revision>
      <id>29763</id>
      <timestamp>2010-02-19T08:11:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>do not delete this template</comment>
      <text xml:space="preserve">Learn more about [[Contributing to the wiki]]. 

&lt;noinclude&gt;''This template is included on every Edit page, and should not be deleted.''
[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Events</title>
    <id>2956</id>
    <revision>
      <id>48130</id>
      <timestamp>2012-06-04T13:04:42Z</timestamp>
      <contributor>
        <username>mrsellout</username>
        <id>3603</id>
      </contributor>
      <comment>Added Qt summit</comment>
      <text xml:space="preserve">&lt;!--
For maintenance of this entry please see Discussion page!
--&gt;

* [[BlackBerry Jam World Tour 2012]]
* [https://metalab.at/wiki/Hack-A-N9 Hack-A-N9]
* [http://summit.devaamo.fi/ Devaamo Summit]
* [http://qt-project.org/groups/qt-contributors-summit-2012/wiki Qt Contributors Summit 2012] 

&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Expand</title>
    <id>150</id>
    <revision>
      <id>38521</id>
      <timestamp>2010-09-13T12:02:29Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>close &lt;noinclude&gt; correctly</comment>
      <text xml:space="preserve">{{ambox
| type = notice
| image= 
| text = '''This article does not provide ''enough information'', and needs to be expanded to more fully cover the topic.'''&lt;br /&gt;&lt;small&gt;Please see the &lt;includeonly&gt;[[{{TALKPAGENAME}}#{{#if:{{{talksection|}}}|{{anchorencode:{{{talksection}}}}}}}|&lt;/includeonly&gt;&lt;noinclude&gt;'''&lt;/noinclude&gt;talk page&lt;noinclude&gt;'''&lt;/noinclude&gt;&lt;includeonly&gt;]]&lt;/includeonly&gt; for discussion.&lt;/small&gt;
}}&lt;includeonly&gt;[[Category:Articles in need of expansion]]&lt;/includeonly&gt;&lt;noinclude&gt;Use this template to tag articles in need of expansion.
[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Extras-testing</title>
    <id>3652</id>
    <revision>
      <id>33040</id>
      <timestamp>2010-04-19T12:07:09Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>direct link</comment>
      <text xml:space="preserve">{{ambox
| type = notice
| image= 
| text = '''The software hosted in [[extras-testing]] is not ready for normal users!'''&lt;br /&gt;&lt;small&gt;PLEASE use it only for testing purposes. Be ready to [http://maemo.org/development/bugs/ file proper bug reports] instead of posting complaints.
'''Potential problems''': crashes, battery drain, poor system performance, full disk space &amp; more - SERIOUSLY!
'''Backing up your data is recommended.''' In case of trouble you might need to [[Updating the firmware|re-flash your device]].&lt;/small&gt;
}}

&lt;noinclude&gt;
[[Category:Template]]
&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Firmware update</title>
    <id>3614</id>
    <revision>
      <id>41699</id>
      <timestamp>2011-02-08T10:28:10Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>update with new troubleshooting information</comment>
      <text xml:space="preserve">{{ambox
| type = content
| image= 
| text = '''This article describes a ''[[Updating the firmware#N900|firmware update]]''.'''&lt;br /&gt;&lt;small&gt;If you have problems installing the firmware update, there is an article that describes some [[Cannot install firmware update|known problems and solutions]] as well as an article on [[Free up rootfs space|freeing up rootfs space]].&lt;/small&gt;
}}
&lt;includeonly&gt;[[Category:Firmware update]][[Category:Documentation]]&lt;/includeonly&gt;&lt;noinclude&gt;Use this template to tag articles as (N900) firmware updates.
[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Hot Topics</title>
    <id>95</id>
    <revision>
      <id>48118</id>
      <timestamp>2012-06-04T09:14:21Z</timestamp>
      <contributor>
        <username>mrsellout</username>
        <id>3603</id>
      </contributor>
      <comment>Updated Hot Topics</comment>
      <text xml:space="preserve">* [[2012 Device Program]]
* [[Community Awards]]
* [[Summer'12 Device Program/Qt 5 Mobile Projects]]
* [[Community Council]]
* [[Testing Squad]]

&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:LaTeX2HTML2Wiki</title>
    <id>1480</id>
    <revision>
      <id>30502</id>
      <timestamp>2010-03-04T15:35:21Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use [[Template:Ambox]]</comment>
      <text xml:space="preserve">{{ambox
| type = notice
| image= 
| text = This article was originally imported from HTML generated by ''latex2html'' with the help of ''HTML::WikiConvert'' -tool, and is still in its ''draft'' phase, not to be considered as the '''final version'''. Because of the limitations of the import tools, some formatting might not be displayed as it should.&lt;br /&gt;'''[[Meta:Problems in the LaTeX2HTML2Wiki import process#How to help|You can help by editing the article!]]'''&lt;br /&gt;&lt;small&gt;if you have edited this article to conform with the [[Contributing to the wiki|style guide of the Maemo wiki]], you may remove this template.&lt;/small&gt;
}}

&lt;includeonly&gt;[[Category:Imported from LaTeX via HTML|{{PAGENAME}}]]&lt;/includeonly&gt;
&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Legacy documentation</title>
    <id>3581</id>
    <revision>
      <id>29188</id>
      <timestamp>2010-02-12T09:35:49Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Legacy documentation]] from [[Catagory:Documentation]]</comment>
      <text xml:space="preserve">{{ambox
| type = content
| image= 
| text = '''This article is ''legacy documentation'', and is superseded by Forum Nokia documentation.'''&lt;br /&gt;&lt;small&gt;The Forum Nokia documentation is available as the [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], [http://www.forum.nokia.com/info/sw.nokia.com/id/e778ba1f-2507-4672-be45-798359a3aea7/Fremantle_Master_Layout_Guide.html Fremantle master layout guide] and the [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;/small&gt;
}}
&lt;includeonly&gt;[[Category:Out of date]][[Category:Legacy documentation]]&lt;/includeonly&gt;&lt;noinclude&gt;Use this template to tag articles as legacy documentation.
[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Lowercase</title>
    <id>1163</id>
    <revision>
      <id>6836</id>
      <timestamp>2008-08-28T03:02:01Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>New page: {{DISPLAYTITLE:{{#if:{{NAMESPACE}}|{{NAMESPACE}}:|}}{{lcfirst:{{PAGENAME}}}}}}&lt;noinclude&gt; [[Category:Template]] &lt;/noinclude&gt;</comment>
      <text xml:space="preserve">{{DISPLAYTITLE:{{#if:{{NAMESPACE}}|{{NAMESPACE}}:|}}{{lcfirst:{{PAGENAME}}}}}}&lt;noinclude&gt;
[[Category:Template]]
&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:MADDE</title>
    <id>3973</id>
    <revision>
      <id>33220</id>
      <timestamp>2010-04-21T12:39:43Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add talk thread</comment>
      <text xml:space="preserve">{{ambox
| type = notice
| text = [[MADDE]] is currently a '''technology preview'''.&lt;br /&gt;
&lt;small&gt;These instructions are liable to change as development progresses. If some of the components do not work as expected, please add your question to the [http://talk.maemo.org/showthread.php?t=46570 MADDE talk thread] and follow up the discussion.&lt;/small&gt;}}

[[Category:MADDE]]

&lt;noinclude&gt;
Add this template to all articles relating to MADDE, and when it is no longer a technology preview, simply remove the notice.

[[Category:Template]]
&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:MCC Concept 001</title>
    <id>2798</id>
    <revision>
      <id>20779</id>
      <timestamp>2009-10-22T05:14:28Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <text xml:space="preserve">&lt;li&gt;[[Maemo Co-Creation/MCC Concept 001 Session Results|Session Results]]&lt;/li&gt;
&lt;li&gt;[[Maemo Co-Creation/MCC Concept 001 Workshop Results|Workshop Results]]&lt;/li&gt;
&lt;li&gt;[[Maemo Co-Creation/MCC Concept 001 Feedback|Feedback &amp; New Ideas]]&lt;/li&gt;
&lt;li&gt;[[Maemo Co-Creation/MCC Concept 001 Realization|Realization]]&lt;/li&gt;
&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:MCC Concept 002</title>
    <id>2799</id>
    <revision>
      <id>20762</id>
      <timestamp>2009-10-22T04:23:38Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <text xml:space="preserve">&lt;li&gt;[[Maemo Co-Creation/MCC Concept 002 Session Results|Session Results]]&lt;/li&gt;
&lt;li&gt;[[Maemo Co-Creation/MCC Concept 002 Workshop Results|Workshop Results]]&lt;/li&gt;
&lt;li&gt;[[Maemo Co-Creation/MCC Concept 002 Feedback|Feedback &amp; New Ideas]]&lt;/li&gt;
&lt;li class=&quot;help&quot;&gt;[[Maemo Co-Creation/MCC Concept 002 Realization|Realization]]&lt;/li&gt;
&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:MCC Concept 003</title>
    <id>2800</id>
    <revision>
      <id>20755</id>
      <timestamp>2009-10-22T04:16:06Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>New page: &lt;li&gt;[[Maemo Co-Creation/MCC Concept 003 Session Results|Session Results]]&lt;/li&gt; &lt;li&gt;[[Maemo Co-Creation/MCC Concept 003 Workshop Results|Workshop Results]]&lt;/li&gt; &lt;li&gt;[[Maemo Co-Creation/MCC ...</comment>
      <text xml:space="preserve">&lt;li&gt;[[Maemo Co-Creation/MCC Concept 003 Session Results|Session Results]]&lt;/li&gt;
&lt;li&gt;[[Maemo Co-Creation/MCC Concept 003 Workshop Results|Workshop Results]]&lt;/li&gt;
&lt;li&gt;[[Maemo Co-Creation/MCC Concept 003 Feedback|Feedback &amp; New Ideas]]&lt;/li&gt;
&lt;li&gt;[[Maemo Co-Creation/MCC Concept 003 Realization|Realization]]&lt;/li&gt;
&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:MCC Concept 004</title>
    <id>2801</id>
    <revision>
      <id>20756</id>
      <timestamp>2009-10-22T04:16:24Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>New page: &lt;li&gt;[[Maemo Co-Creation/MCC Concept 004 Session Results|Session Results]]&lt;/li&gt; &lt;li&gt;[[Maemo Co-Creation/MCC Concept 004 Workshop Results|Workshop Results]]&lt;/li&gt; &lt;li&gt;[[Maemo Co-Creation/MCC ...</comment>
      <text xml:space="preserve">&lt;li&gt;[[Maemo Co-Creation/MCC Concept 004 Session Results|Session Results]]&lt;/li&gt;
&lt;li&gt;[[Maemo Co-Creation/MCC Concept 004 Workshop Results|Workshop Results]]&lt;/li&gt;
&lt;li&gt;[[Maemo Co-Creation/MCC Concept 004 Feedback|Feedback &amp; New Ideas]]&lt;/li&gt;
&lt;li&gt;[[Maemo Co-Creation/MCC Concept 004 Realization|Realization]]&lt;/li&gt;
&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:MCC Detail</title>
    <id>2796</id>
    <revision>
      <id>30495</id>
      <timestamp>2010-03-04T15:00:14Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Template]]</comment>
      <text xml:space="preserve">Maemo Co-Creation project explanation content goes here.

&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:MCC Intro</title>
    <id>2795</id>
    <revision>
      <id>30494</id>
      <timestamp>2010-03-04T14:59:28Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Template]]</comment>
      <text xml:space="preserve">Maemo Co-Creation introduction content goes here.

&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:MCC Links</title>
    <id>2804</id>
    <revision>
      <id>20766</id>
      <timestamp>2009-10-22T04:30:52Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>New page: &lt;li&gt;[http://# Link 1]&lt;/li&gt; &lt;li&gt;[http://# Link 2]&lt;/li&gt; &lt;li&gt;[http://# Link 3]&lt;/li&gt; &lt;li&gt;[http://# Etc.]&lt;/li&gt; &lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</comment>
      <text xml:space="preserve">&lt;li&gt;[http://# Link 1]&lt;/li&gt;
&lt;li&gt;[http://# Link 2]&lt;/li&gt;
&lt;li&gt;[http://# Link 3]&lt;/li&gt;
&lt;li&gt;[http://# Etc.]&lt;/li&gt;
&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:MCC Media</title>
    <id>2803</id>
    <revision>
      <id>20765</id>
      <timestamp>2009-10-22T04:28:44Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>New page: &lt;li&gt;[[Maemo Co-Creation/MCC Session Photos|Co-Creation Session Photos]]&lt;/li&gt; &lt;li&gt;[[Maemo Co-Creation/MCC Summit Photos|Maemo Summit Co-Creation Photos]]&lt;/li&gt; &lt;li&gt;[[Maemo Co-Creation/MCC Mo...</comment>
      <text xml:space="preserve">&lt;li&gt;[[Maemo Co-Creation/MCC Session Photos|Co-Creation Session Photos]]&lt;/li&gt;
&lt;li&gt;[[Maemo Co-Creation/MCC Summit Photos|Maemo Summit Co-Creation Photos]]&lt;/li&gt;
&lt;li&gt;[[Maemo Co-Creation/MCC Movie|Maemo Co-Creation Movie]]&lt;/li&gt;
&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:MCC Other Concepts</title>
    <id>2802</id>
    <revision>
      <id>20764</id>
      <timestamp>2009-10-22T04:26:43Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>New page: &lt;li&gt;[[Maemo Co-Creation/MCC IFS|Ideas for Sharing]]&lt;/li&gt; &lt;li&gt;[[Maemo Co-Creation/MCC TTF|The Trust Factor]]&lt;/li&gt; &lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</comment>
      <text xml:space="preserve">&lt;li&gt;[[Maemo Co-Creation/MCC IFS|Ideas for Sharing]]&lt;/li&gt;
&lt;li&gt;[[Maemo Co-Creation/MCC TTF|The Trust Factor]]&lt;/li&gt;
&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Maemo 5 firmware updates</title>
    <id>4691</id>
    <revision>
      <id>43576</id>
      <timestamp>2011-05-20T19:47:55Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <comment>Add link to Community SSU (even though it's not an &quot;official&quot; firmware update)</comment>
      <text xml:space="preserve">{| class=&quot;wikitable&quot; style=&quot;width:100%;text-align:center&quot;
! List of [[Updating_the_firmware#N900|firmware updates]] for [[Open development/Maemo roadmap/Fremantle|Maemo 5]]
|-
| [[Maemo 5/PR1.0|PR1.0]] · PR1.0.1 (OTA only) · [[Maemo 5/PR1.1|PR1.1]] · [[Maemo 5/PR1.1.1|PR1.1.1]] · [[Maemo 5/PR1.2|PR1.2]] · [[Maemo 5/PR1.3|PR1.3]] · [[Community SSU]]
|}

[[Category:Firmware update]]
[[Category:Fremantle]]

&lt;noinclude&gt;
[[Category:Template]]
&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Main</title>
    <id>87</id>
    <revision>
      <id>41246</id>
      <timestamp>2011-01-20T17:15:06Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>Make {main} template more consistent with wikipedia</comment>
      <text xml:space="preserve">&lt;div style=&quot;font-style: italic; padding-left:20px;&quot;&gt;
Main article: [[{{{1}}}]]
&lt;/div&gt;
&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Man</title>
    <id>3736</id>
    <revision>
      <id>41675</id>
      <timestamp>2011-02-07T13:40:59Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>correct section headings</comment>
      <text xml:space="preserve">[http://maemo.org/packages/view/APP_NAME/ APP_TITLE] is a widget/application (for the Maemo desktop) which allows your [[Nokia N900|N900]] to DESCRIPTION.
THEFEATURES

==Help==
HELPFUL HINTS, TIPS &amp; TRICKS

==Screenshot==
ADDASCREENSHOT

==Authors==
* Main author: [[User:wikiusername|wikiusername]] OR [http://maemo.org/profile/view/maemousername/ maemousername]
* Contributors: ZZ
* Thanks to...

==ChangeLog==
The [http://maemo.org/packages/view/APP_NAME/ current changelog] is available through the package viewer.
* 0.2.0: ExampleText
* 0.1.0: ExampleText

==Roadmap==
* PlannedFeature1

==Wishlist==
Use this space to add possible feature wishes:
* WISH (YOUR NAME)

==Bugs==
Use this paragraph to report possible bugs:
* None known for now (YOUR NAME)

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Template:Mer</title>
    <id>4463</id>
    <revision>
      <id>45507</id>
      <timestamp>2011-10-07T14:18:43Z</timestamp>
      <contributor>
        <ip>78.32.229.233</ip>
      </contributor>
      <comment>update Mer template (lbt)</comment>
      <text xml:space="preserve">{{ambox
|image=[[Image:Mer infobox icon.png]]
|text=[[Mer]] is back : Please visit http://www.merproject.org to learn more about this news.}}
&lt;includeonly&gt;[[Category:Mer]]
[[Category:Out of date]]&lt;/includeonly&gt;
&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Midgard article</title>
    <id>151</id>
    <revision>
      <id>38238</id>
      <timestamp>2010-08-31T07:52:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use &lt;noinclude and &lt;includeonly&gt;</comment>
      <text xml:space="preserve">{{ambox
| type = content
| image= 
| imageright = [[Image:Logo-midgard.gif|44px]]
| text = '''This is an article from the old ''midgard wiki'' that hasn't yet been fully updated for this wiki, please update it.'''&lt;br /&gt;&lt;small&gt;Please see the &lt;includeonly&gt;[[{{TALKPAGENAME}}#{{#if:{{{talksection|}}}|{{anchorencode:{{{talksection}}}}}}}|&lt;/includeonly&gt;&lt;noinclude&gt;'''&lt;/noinclude&gt;talk page&lt;noinclude&gt;'''&lt;/noinclude&gt;&lt;includeonly&gt;]]&lt;/includeonly&gt; for discussion.&lt;/small&gt;
}}
&lt;noinclude&gt;This template is used to tag ex-midgard articles to indicate to readers that it may need special attention. If you come across one of these, please check and update the page, if necessary, then delete the tag when the page has been brought up to speed.
[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Miniature</title>
    <id>4999</id>
    <revision>
      <id>45071</id>
      <timestamp>2011-08-27T18:39:45Z</timestamp>
      <contributor>
        <username>mikhas</username>
        <id>1376</id>
      </contributor>
      <comment>New page: {| class=&quot;wikitable&quot; style=&quot;width:100%;text-align:center&quot; ! Miniature - Play chess everywhere you go! |- | .: [[Miniature|Home]] : [[Miniature/Releases|Releases]] : [[Miniature/Wishlist|Wi...</comment>
      <text xml:space="preserve">{| class=&quot;wikitable&quot; style=&quot;width:100%;text-align:center&quot;
! Miniature - Play chess everywhere you go!
|-
| .: [[Miniature|Home]] : [[Miniature/Releases|Releases]] : [[Miniature/Wishlist|Wish list]] : [[Miniature/Development|Development]] : [[Miniature/Development/CodingStyle|Coding style]] :.
|}

[[Category:Miniature]]</text>
    </revision>
  </page>
  <page>
    <title>Template:More topics</title>
    <id>183</id>
    <revision>
      <id>1316</id>
      <timestamp>2008-06-10T21:04:34Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve">[[:Category:{{{1}}}|More {{lc:{{#if:{{{2|}}}|{{{2}}}|{{{1}}}}}}} topics...]]
&lt;noinclude&gt;
* Usage &lt;nowiki&gt;{{&lt;/nowiki&gt;More topics|''Category name''}} or &lt;nowiki&gt;{{&lt;/nowiki&gt;More topics|''Category name''|''Display name''}}
* Result {{More topics|Category name}} or {{More topics|Category name|Display name}}
[[Category:Template]]
&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:No</title>
    <id>4569</id>
    <revision>
      <id>40184</id>
      <timestamp>2010-11-19T10:23:45Z</timestamp>
      <contributor>
        <username>henkka</username>
        <id>2019</id>
      </contributor>
      <comment>New page: &lt;noinclude&gt;{| class=&quot;wikitable&quot; |- |&lt;/noinclude&gt;style=&quot;background:#ff9090; color:black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-no&quot; | {{{1|No}}}&lt;...</comment>
      <text xml:space="preserve">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background:#ff9090; color:black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-no&quot; | {{{1|No}}}&lt;noinclude&gt;
[[Category:Template]]
&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Official</title>
    <id>602</id>
    <revision>
      <id>38246</id>
      <timestamp>2010-08-31T08:53:10Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add &lt;noinclude&gt; and &lt;includeonly&gt;</comment>
      <text xml:space="preserve">{{ambox
| type = notice
| image= 
| imageright= [[Image:Nokia-logo.gif]]
| text = '''This is a Nokia page and may only be edited by [[Special:Listusers/nokiaeditors|Nokia contributors]].'''&lt;br /&gt;&lt;small&gt;Please see the &lt;includeonly&gt;[[{{TALKPAGENAME}}#{{#if:{{{talksection|}}}|{{anchorencode:{{{talksection}}}}}}}|&lt;/includeonly&gt;&lt;noinclude&gt;'''&lt;/noinclude&gt;talk page&lt;noinclude&gt;'''&lt;/noinclude&gt;&lt;includeonly&gt;]]&lt;/includeonly&gt; for discussion.&lt;/small&gt;
}}&lt;includeonly&gt;[[Category:Nokia]]&lt;/includeonly&gt;&lt;noinclude&gt;[[Category:Template]]
&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Out of date</title>
    <id>149</id>
    <revision>
      <id>29169</id>
      <timestamp>2010-02-12T09:12:21Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>includeonly for category</comment>
      <text xml:space="preserve">{{ambox
| type = content
| image= 
| text = '''This article is ''out-of-date'', and needs to be updated.'''&lt;br /&gt;&lt;small&gt;Please see the [[{{TALKPAGENAME}}#{{#if:{{{talksection|}}}|{{anchorencode:{{{talksection}}}}}}}|talk page]] for discussion.&lt;/small&gt;
}}&lt;includeonly&gt;[[Category:Out of date]]&lt;/includeonly&gt;&lt;noinclude&gt;Use this template to tag articles as outdated (especially ex-midgard articles).
[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Petitionexists</title>
    <id>489</id>
    <revision>
      <id>2573</id>
      <timestamp>2008-06-23T18:29:55Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve">[[Source petition for {{lc:{{{1}}}}}|Yes]]
&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Plan metadata</title>
    <id>122</id>
    <revision>
      <id>940</id>
      <timestamp>2008-06-05T20:40:05Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve">{| colspacing=&quot;0&quot; border=&quot;1&quot;
! Leader
| {{{leader|''none''}}}
|-
! Team
|
* {{{2|}}}
* {{{4|}}}
* {{{6|}}}
* {{{8|}}}
* {{{10|}}}
* {{{12|}}}
* {{{14|}}}
|-
! Sign-off
| {{{signoff|''none''}}}
|}

&lt;noinclude&gt;
Embed this template with the following syntax:
&lt;pre&gt;
{{Plan metadata
        |leader=~~~~|
        |~~~~|
        |~~~~|
        |~~~~|
        |~~~~|
        |signoff=~~~~|}}
&lt;/pre&gt;
[[Category:Template]]
&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Power users</title>
    <id>2891</id>
    <revision>
      <id>33025</id>
      <timestamp>2010-04-19T10:30:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>link directly to firmware update page</comment>
      <text xml:space="preserve">* [[Help testing software]]
* [[Root access|Getting root access]]
* [[Extras|Extras repository]]
* [[Updating the firmware|Updating the tablet firmware]]
* [[Tutorials | More tutorials]]
* [[Installing unstable applications]]

&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Quotation</title>
    <id>311</id>
    <revision>
      <id>41830</id>
      <timestamp>2011-02-15T10:58:34Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut some newlines</comment>
      <text xml:space="preserve">&lt;blockquote class=&quot;toccolours&quot; style=&quot;float:none; padding: 10px 15px 10px 15px; display:table;&quot;&gt; {{{1&lt;noinclude&gt;|&amp;nbsp;&amp;nbsp;This is an example quotation, blah blah blah&lt;/noinclude&gt;}}}

{{#if:{{{2|&lt;noinclude&gt;x&lt;/noinclude&gt;}}}|&lt;p style=&quot;text-align: right;&quot;&gt; &amp;ndash; &lt;cite&gt;{{{2}}}{{#if:{{{3|&lt;noinclude&gt;x&lt;/noinclude&gt;}}}|, ''{{{3}}}''}}{{#if:{{{4|&lt;noinclude&gt;x&lt;/noinclude&gt;}}}|, {{{4}}}}}&lt;/cite&gt;&lt;/p&gt;}}&lt;/blockquote&gt;&lt;noinclude&gt;

[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Recommended phone usage</title>
    <id>3439</id>
    <revision>
      <id>30485</id>
      <timestamp>2010-03-04T14:46:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>use Template:Ambox</comment>
      <text xml:space="preserve">{{ambox
| type = notice
| image= 
| text = '''Please be aware that the recommended way to use the phone functionality is Telepathy:'''&lt;br /&gt;&lt;small&gt;
* [http://telepathy.freedesktop.org/wiki/ Telepathy wiki]
* [http://maemo.org/api_refs/5.0/5.0-final/telepathy-glib/ Telepathy-glib API]
* [[Documentation/Maemo_5_Developer_Guide/Architecture/RTCOM|RTCOM architecture]]&lt;/small&gt;
}}

&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Release history table</title>
    <id>228</id>
    <revision>
      <id>50181</id>
      <timestamp>2012-10-14T16:08:00Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <comment>Added Harmattan releases - sources: http://wiki.meego.com/N950_landing_page and http://en.wikipedia.org/wiki/Nokia_N9#Released_updates</comment>
      <text xml:space="preserve">{| class=&quot;wikitable&quot;
! ITOS Version !! [[Maemo]] !! Codename !! Release !! Release date !! Notes
|----
|-
! rowspan=&quot;3&quot; | OS2005
| rowspan=&quot;3&quot; | 1.1
| rowspan=&quot;3&quot; | -
| 2.2005.45-1
| November 2005
| 
|-
| 3.2005.51-13
| December 2005
| 
|-
| 5.2006.13-7
| April 2006
| 
|-
! rowspan=&quot;4&quot; | OS2006
| rowspan=&quot;2&quot; | 2.0
| rowspan=&quot;2&quot; | Mistral
| 0.2006.22-21
| May 2006
| Beta release
|-
| 1.2006.26-8
| May 2006
| 
|-
| 2.1
| Scirocco
| 2.2006.39-14
| November 2006
| 
|-
| 2.2
| Gregale
| 3.2006.49-2
| January 2007
| 
|-
! rowspan=&quot;4&quot; | OS2007
| 3.0
| rowspan=&quot;4&quot; | Bora
| 2.2006.51-6
| January 2007
| 
|-
| 3.1
| 3.2007.10-7
| March 2007
| 
|-
| rowspan=&quot;2&quot; | 3.2
| 4.2007.26-8
| July 2007
| 
|-
| 4.2007.38-2
| October 2007
| SDHC corruption fix
|-
! rowspan=&quot;9&quot; | [[:Category:OS2008|OS2008]]
| rowspan=&quot;5&quot; | 4.0
| rowspan=&quot;5&quot; | Chinook
| 1.2007.42-18
| November 2007
| ([[Nokia N810|N810]] only)
|-
| 1.2007.42-19
| November 2007
| Kernel upgrade only (N810 only)
|-
| 1.2007.44-4
| November 2007
| Beta release ([[Nokia N800|N800]] only)
|-
| 2.2007.50-2
| November 2007
| 
|-
| 2.2007.51-3
| January 2008
| NOLO upgrade only
|-
| 4.1
| rowspan=&quot;4&quot; | [[Open development/Maemo roadmap/Diablo|Diablo]]
| 4.2008.23-14
| June 2008
| Adds [[Seamless Software Update|SSU]] support
|-
| 4.1.1
| 4.2008.30-2
| August 2008
| First SSU update
|-
| 4.1.2
| 4.2008.36-5
| September 2008
| Second SSU update
|-
| 4.1.3
| 5.2008.43-7
| December 2008
| Third SSU update
|-
! rowspan=&quot;8&quot; | [[Open development/Maemo roadmap/Fremantle|Maemo 5]]
| 5.0 [[Maemo 5/PR1.0|PR1.0]]
| rowspan=&quot;8&quot; | [[Open development/Maemo roadmap/Fremantle|Fremantle]]
| 1.2009.42-11
| November 2009
| Bundled community-supported [[Qt-Maemo|Qt libraries]]
|-
| 5.0 PR1.0.1
| 1.2009.44-1
| January 2010
| OTA-only preparatory update for [[Maemo 5/PR1.1|PR1.1]]
|-
| 5.0 [[Maemo 5/PR1.1|PR1.1]]
| 2.2009.51-1
| January 2010
| 3UK SIM and MS Exchange 2003 support
|-
| 5.0 [[Maemo 5/PR1.1.1|PR1.1.1]]
| 3.2010.02-8
| February 2010
| 
|-
| 5.0 [[Maemo 5/PR1.2|PR1.2]]
| 10.2010.19-1
| May 2010
| Bundled officially-supported Qt libraries
|-
| 5.0 [[Maemo 5/PR1.3|PR1.3]]
| 20.2010.36-2
| October 2010
| Updated Qt and Qt Mobility libraries
|-
| 5.0 PR1.3.1
| 21.2011.38-1
| October 2011
| Security update - updated SSL certificates
|-
| 5.0 [[Community SSU|CSSU]]
| -
| January 2011
| Community-supported updates for Fremantle
|-
! rowspan=&quot;8&quot; | MeeGo 1.2 Harmattan
| Beta 1
! rowspan=&quot;8&quot; | [[Open development/Maemo roadmap/Harmattan|Harmattan]]
| 1.2011.22-6
| June 2011
| First Beta release ([[N950]] only)
|-
| Beta 2
| 1.2011.34-2
| September 2011
| Second Beta release ([[N950]] only)
|-
| PR 1.0
| 10.2011.34-1
| September 2011
| First official release (N9 only)
|-
| rowspan=&quot;2&quot; | PR 1.1
| 2.2011.39-5
| October 2011
| [[N950]] only
|-
| 20.2011.40-4
| November 2011
| [http://conversations.nokia.com/2011/11/21/nokia-n9-software-update-v1-1-rolls-out/ announcement] (N9 only)
|-
| PR 1.2 beta
| 3.2012.02-6
| January 2012
| Last official N950 release ([[N950]] only)
|-
| PR 1.2
| 30.2012.07-1
| March 2012
| [http://conversations.nokia.com/2012/03/06/the-nokia-n9-software-update-you-must-have/ announcement] (N9 only)
|-
| PR 1.3
| 40.2012.21-3
| July 2012
| [http://www.developer.nokia.com/Community/Wiki/Nokia_firmware_change_logs#N9 change log] (N9 only)
|}

&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Server admins</title>
    <id>3467</id>
    <revision>
      <id>28909</id>
      <timestamp>2010-02-11T13:05:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Template]]</comment>
      <text xml:space="preserve">* Hosting server: {{{1}}}
* Admins: {{{2}}}

&lt;noinclude&gt;
Usage:
 {{Server admins | maintenance.maemo.org | Niels, Ferenc, Daniel}}
Result:
{{Server admins | maintenance.maemo.org | Niels, Ferenc, Daniel}}

[[Category:Template]]
&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Sprint</title>
    <id>4049</id>
    <revision>
      <id>33803</id>
      <timestamp>2010-05-04T09:49:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>remove more newlines</comment>
      <text xml:space="preserve">&lt;includeonly&gt;[[Category:Sprints]]
[[Category:maemo.org]]
[[Category:Community]]&lt;/includeonly&gt;
&lt;noinclude&gt;Template for adding to [[maemo.org sprints|maemo.org sprint pages]] for consistent categorisation.
[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Stub</title>
    <id>2849</id>
    <revision>
      <id>30491</id>
      <timestamp>2010-03-04T14:54:16Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Template]]</comment>
      <text xml:space="preserve">:''This is a stub.  Please click edit and write some more.''

&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Summit 2009 Attendees</title>
    <id>2650</id>
    <revision>
      <id>19720</id>
      <timestamp>2009-10-09T10:02:17Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <text xml:space="preserve">&lt;li&gt;[http://maemo.org/news/events/maemo_summit_2009/#participants Over 400 people attending!]&lt;/li&gt;
&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Summit 2009 Location</title>
    <id>2492</id>
    <revision>
      <id>38215</id>
      <timestamp>2010-08-30T14:49:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>add &lt;includeonly&gt;</comment>
      <text xml:space="preserve">&lt;includeonly&gt;&lt;li&gt;[[/Location|WesterGasFabriek]]&lt;/li&gt;&lt;/includeonly&gt;
&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Summit 2009 Organization</title>
    <id>2494</id>
    <revision>
      <id>18933</id>
      <timestamp>2009-09-29T18:25:09Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <text xml:space="preserve">&lt;li&gt;[[Maemo Summit 2009/Organization|Organization Sandbox]]&lt;/li&gt;
&lt;li&gt;[[Maemo Summit 2009/Accommodation|Accommodation]]&lt;/li&gt;
&lt;li&gt;[[Maemo Summit 2009/Travel|Travel]]&lt;/li&gt;
&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Summit 2009 Schedule</title>
    <id>2491</id>
    <revision>
      <id>38244</id>
      <timestamp>2010-08-31T08:31:15Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add &lt;includeonly&gt;</comment>
      <text xml:space="preserve">&lt;includeonly&gt;&lt;li&gt;[[/Schedule|Final Schedule]]&lt;/li&gt;&lt;/includeonly&gt;
&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Task</title>
    <id>612</id>
    <revision>
      <id>9589</id>
      <timestamp>2009-01-07T20:57:21Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve">{{ambox
| type = notice
| image= {{#switch:{{{1}}}
| proposed = [[Image:Ambox_notice.png]]
| accepted = [[Image:Ambox_notice.png]]
| ongoing = [[Image:Ambox_notice.png]]
| completed = [[Image:Ambox_notice.png]]
| #default = [[Image:Ambox_notice.png]]
}}
| imageright = {{#switch:{{{1}}}
| proposed = [[Image:Pictogram_comment.png|40px]]
| accepted = [[Image:Pictogram_info.png|40px]]
| ongoing = [[Image:Pictogram_wait.png|40px]]
| completed = [[Image:Pictogram_tick.png|40px]]
| #default = [[Image:Pictogram_comment.png|40px]]
}}
| text = '''{{#switch:{{{1}}}
| proposed = This task is in the [[Maemo.org_proposals|list of maemo.org development proposals]], please help planning and getting it ready for a sprint. Put a note on the [[{{TALKPAGENAME}}#{{#if:{{{talksection|}}}|{{anchorencode:{{{talksection}}}}}}}|talk page]] if you're interested in helping work on this task.
| accepted = This is an accepted task and it is currently in the [[Maemo.org_backlog|maemo.org development backlog]]. Probably nothing is stopping you from starting on it, though.
| ongoing = This is an ongoing task, planned to be completed during the [[maemo.org Sprints|current maemo.org development sprint]]. Any help is appreciated!
| completed = This task is completed and this page stays here for documentation purposes only. Please file bugs or propose a new, related task if you want to push this forward.
| #default   = This task is in the [[Maemo.org_proposals|list of maemo.org development proposals]], please help planning and getting it ready for a sprint. Put a note on the [[{{TALKPAGENAME}}#{{#if:{{{talksection|}}}|{{anchorencode:{{{talksection}}}}}}}|talk page]] if you're interested in helping work on this task.
}}'''&lt;br /&gt;&lt;small&gt;Please see the [[{{TALKPAGENAME}}#{{#if:{{{talksection|}}}|{{anchorencode:{{{talksection}}}}}}}|talk page]] for discussion.&lt;/small&gt;
}}&lt;includeonly&gt;[[Category:Tasks]] {{#switch:{{{1}}}
| proposed = [[Category:Proposed]]
| accepted = [[Category:Accepted]]
| ongoing = [[Category:Ongoing]]
| completed = [[Category:Completed]]
| #default = 
}}&lt;/includeonly&gt;&lt;noinclude&gt;Task template, use like &lt;nowiki&gt;{{task|proposed}}, {{task|accepted}}, {{task|ongoing}}, or {{task|completed}}&lt;/nowiki&gt;. If no argument is provided, then it defaults to &quot;proposed&quot;.
[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:User-cc-by-sa</title>
    <id>2843</id>
    <revision>
      <id>30490</id>
      <timestamp>2010-03-04T14:53:42Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix</comment>
      <text xml:space="preserve">:All my contributions on this wiki are available under the Creative Commons ShareAlike Attribution license.

&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Users</title>
    <id>184</id>
    <revision>
      <id>33031</id>
      <timestamp>2010-04-19T10:57:32Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wkify</comment>
      <text xml:space="preserve">* [[New users]]
* [[Root access|Getting root access]]
* [[Extras|Extras repository]]
* [[Updating the firmware|Updating the tablet firmware]]
* [[Fremantle_Unsupported_Bluetooth_profiles|Enable unsupported Bluetooth profiles in Fremantle]]

&lt;noinclude&gt;[[Category:Template]]&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Wikify</title>
    <id>4062</id>
    <revision>
      <id>33948</id>
      <timestamp>2010-05-06T12:05:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>include self</comment>
      <text xml:space="preserve">&lt;includeonly&gt;''This article should include information from this [{{{1}}} external resource]. Please help to copy the relevant information to the wiki.''&lt;br /&gt;
[[Category:Wikify]]&lt;/includeonly&gt;
&lt;noinclude&gt;
Use this template to add wikify text to a page. For example:
&lt;pre&gt;&lt;nowiki&gt;{{wikify|1=http://talk.maemo.org/showpost.php?p=645897&amp;postcount=25}}&lt;/nowiki&gt;&lt;/pre&gt;
which results in:&lt;br /&gt;
{{wikify|1=http://talk.maemo.org/showpost.php?p=645897&amp;postcount=25}}
[[Category:Template]]
&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template:Yes</title>
    <id>4568</id>
    <revision>
      <id>40183</id>
      <timestamp>2010-11-19T10:22:35Z</timestamp>
      <contributor>
        <username>henkka</username>
        <id>2019</id>
      </contributor>
      <text xml:space="preserve">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #90ff90; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-yes&quot;|{{{1|Yes}}}&lt;noinclude&gt;
[[Category:Template]]
&lt;/noinclude&gt;</text>
    </revision>
  </page>
  <page>
    <title>Template talk:100Days agenda</title>
    <id>613</id>
    <revision>
      <id>21000</id>
      <timestamp>2009-10-26T01:55:20Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <comment>Please someone fix the link to the maemo.org brainstorm :) ~~~~</comment>
      <text xml:space="preserve">&lt;!-- Would it be possible to make that this template and the sister &quot;2010 Agenda&quot; create automatically a category for 100Days and 2010Ageda? This way we could list all the pages related to each. --&gt;

Please someone fix the link to the maemo.org brainstorm :) [[User:guaka|guaka]] 01:55, 26 October 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Template talk:Events</title>
    <id>2957</id>
    <revision>
      <id>23563</id>
      <timestamp>2009-11-30T12:03:56Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Maintenance */</comment>
      <text xml:space="preserve">== Target data ==
''Upcoming'' Maemo-related events.

== Purpose of Template ==
Increase both community awareness as well as community participation by outlining them visibly on wiki main page.

== Maintenance ==
* Sorted method: chronologic.
* Once the events are over they are manually moved to [[Events#Past_events]].
* Manually, 2-way synchronized with [http://maemo.org/news/events/ maemo.org/news/events].
* All events, past and future, are always available in [[:Category:Events]], and in [[Events]].

== Maintainers ==
* allnameswereout</text>
    </revision>
  </page>
  <page>
    <title>Template talk:Release history table</title>
    <id>229</id>
    <revision>
      <id>1511</id>
      <timestamp>2008-06-13T00:56:33Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>/* Version number Diablo onwards */</comment>
      <text xml:space="preserve">== Version number Diablo onwards ==

Oh, thanks for this very needed timetable. As far as I'm aware though, there are no version numbers announced for Diablo, Fremantle and Harmattan. Same for this OS2009. I'd take them out before people start especulating, thinking that this page in maemo.org is some kind of official word. Since the table is so complete and looks so good (congratulations!) I wouldn't be surprised. Also, what about having maemo as a first column? Being this site maemo.org it would make sense to show a maemo centric table. Also you could start properly with 1.0.--[[User:qgil|qgil]] 19:08, 12 June 2008 (UTC)
:Will remove the version speculation. Well, except for Diablo. I mean, c'mon now it ''is'' OS2008 and it ''is'' 4.1. ;) As for the OS2005/1.x releases, this is the way it is due to a lack of information about a lot of the early maemo releases. If you (or somebody else) could get me some version numbers and dates for it I'd be more than happy to flesh it out. —[[User:generalantilles|GeneralAntilles]] 00:56, 13 June 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>Tenminutecore</title>
    <id>5278</id>
    <revision>
      <id>50578</id>
      <timestamp>2012-10-30T21:44:15Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>/* Changelog */</comment>
      <text xml:space="preserve">=Introduction=

Ten Minute Core Workout or &quot;tenminutecore&quot; is an application written using Qt SDK

It is an exercise utility to help increase your body's core muscle strength.

Using Espeak it will instruct you through a 10 minute, no rest core exercise. It's main purpose is to keep time during your workout and call the next position. 

Designed for building your core muscles for bouldering but is a good core based exercise applcation.

===Under the Hood===

tenminutecore is basically a GUI for triggering a shell script I wrote via QProcess.

===More===

More information on the package can be found ...

[http://talk.maemo.org/showthread.php?t=87451 talk.maemo.org Ten Minute Core Workout]

[http://maemo.org/packages/view/Tenminutecore Package Page]

==Installation==

The latest versions can be found in the devel repository and can be installed using the N900 Application Manager (HAM). 

==Operation==

Come on, it's one button!

==The Exercises==
Explains or shows how to perform each exercise.
For best results exercises should be done smoothly and '''not''' as fast as possible. 

===Dish aka V-sit Hold or powerboat hold===
[[Image:Dish.gif]]

===Sit up's===
[[Image:Sit-up.gif]]

===Cycling in the air===
[[Image:Cycling.gif]]

===Tabletop position===
Static Exercise

Lay on your back and hold your legs and hips at right angles.

===Crunches on right===
[[Image:Side crunch.gif]]

===Crunches on left===
As Above but on opposite (left) side.

===Ab Crunches aka Dead Fish===
[[Image:ABCrunch.gif]]

===Push up's===
Basic Push ups

===Plank===
[[Image:Plank.gif]]

===Double Leg Pressouts===
[[Image:Double leg pressouts.gif]]

==Bugs==

Please report bugs to the [http://talk.maemo.org/showthread.php?t=87451 talk.maemo.org thread] page.


===FAQ===

&lt;none&gt;

==License/Disclaimer==

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (Version 2) as published by the Free Software. 

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 

==To-Do==
&lt;none&gt;

==Changelog==

'''0.0.6'' (Current Testing) (Current Devel)'''''

* Added MenuBar
* Added new About and Help dialogs
* Removed help button on MainWindow

'''0.0.5'''
* Fixed memory leak, thanks to Marxian.
* Fixed typo in Control file
* Removed Stop button (Now close app to kill script)
* Added help button link to new wiki page
* Rotation should now work

'''0.0.4'''
* Another bugfix to buttons, should work now.

'''0.0.3'''
* Another bugfix to buttons, should work now.


'''0.0.2'''
* Hopefully fix buttons to work.
* Fix Bugtracker
* Fix Homepage typo
* Fix Pretty Name on MainWindow
* Remove un-used MenuBar


'''0.0.1'''
* Initial Release

==Wiki Update==

:sixwheeledbeast - 19 Oct 2012 18:42 UTC</text>
    </revision>
  </page>
  <page>
    <title>Terminal</title>
    <id>3134</id>
    <revision>
      <id>49013</id>
      <timestamp>2012-08-10T02:08:01Z</timestamp>
      <contributor>
        <username>sifo</username>
        <id>5350</id>
      </contributor>
      <comment>/* Debian package management */</comment>
      <text xml:space="preserve">This page is for beginners to Linux that would like to try the terminal. Below are some basic commands you can use in the terminal app to get you started.

== Opening the terminal ==

=== N900 ===

# Navigate to the application menu
#* If using a firmware release older than [[Maemo 5/PR1.2|PR1.2]], navigate to ‘More...’
# Tap ‘X Terminal’

Alternatively, use the Ctrl+Shift+X key combination even without opening the application menu.

=== N800 and N810 ===

# Click the command button on the main page
# Select ‘Utilities’
# Select ‘X Terminal’

=== 770 ===
Terminal is not installed by default on the 770. You need to install it from the Application manager first. After that it will be available in the same menu as on the N8X0.

== Using the terminal ==

'''Before you start, backup your data'''
So long as your data is backed up, then you can start to try out the terminal without any fears of losing any data. This page does not cover gaining '[[Root access|root]]' on your device so you should come to no harm. If you are gaining root, then it would best to not only have a backup before you start tinkering, but also to familiarise yourself with how to reflash your device in extreme cases where you need to get back to where you started. 

But don't be afraid of the terminal and command line, it can be a fast and powerful tool when used correctly and non-destructive commands will not harm your device or your data.

'''Understand what a command does before you type it'''
Fundamentally you should understand what a command does before typing it in and pressing enter. If you have a linux installed on your desktop PC, there you can normally type the command with the parameter &lt;code&gt;--help&lt;/code&gt; to get a list of options, i.e. &lt;code&gt;ls --help&lt;/code&gt;, or look up manual pages if installed, with the most helpful linux command &lt;code&gt;man&lt;/code&gt; for &quot;manual&quot;, like:

 man ls [enter]

or
 
 man man [enter]

to find out what a command does and what are and the options it allows. 

However on maemo the default shell is busybox which has lots of commands like &lt;code&gt;ls&lt;/code&gt; built in, and most of them are crippled in functionality so don't support a really helpful --help function. Also the &lt;code&gt;man&lt;/code&gt; command is not available on standard maemo. So maemo NITs are basically a hostile environment for beginners to learn about linux.

There are ways to mitigate this:
* install man. The pkg is available e.g. here:[http://maemo.org/packages/view/man-db-n900/] and also in your application manager when you got the extras-devel catalog enabled.
* install bash (version 3 or 4), a proper fullsize shell though without many builtins. (http://maemo.org/packages/view/bash3/ http://maemo.org/packages/view/bash4/, again also in your application manager, from extras catalog.
* install proper original tools to replace the crippled ones of busybox, when you  already installed bash. Refer to e.g. [[User:Joerg_rw/tools]]

WARNING: You might feel like getting rid of supposedly useless busybox when you did the above suggested installation of bash and tools. ''DO NOT uninstall busybox'', it's needed for maemo bootup!

If you're reluctant to do all of the above (installing man package mandb-N900 is strongly recommended anyway), you may look up general linux cmdline help here: [http://ss64.com/bash Linux commands], and details about crippled busybox here: [http://www.busybox.net/downloads/BusyBox.html list of Busybox Linux commands and options for each one]. Man pages online you'll find at [http://manpages.courier-mta.org/manpageindex.html], further links are listed at [http://tldp.org/manpages/man.html].

You find more links that give you easy as well as ambitious starts on linux shell here: [http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_01_01.html Bash-Beginners-Guide] [http://tldp.org/LDP/abs/html/why-shell.html &quot;Shell Programming!&quot;] [http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_01_01.html Common shell programs] [http://www.faqs.org/docs/bashman/bashref_toc.html#SEC_Contents Bash reference] [http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html BASH Programming - Introduction HOW-TO] and generally under http://tldp.org/

=== Basics ===

One of the most useful yet unknown to beginners: &lt;TAB&gt; completes anything at any moment, If there are ambiguities, &lt;TAB&gt; will complete only the unambiguous part. Two times &lt;TAB&gt; shows all alternatives when there are ambiguities. 

Try &lt;TAB&gt;&lt;TAB&gt; on an empty line to get a list of all commands that are &quot;known&quot; to the shell (will not find commands that are not in $PATH and so would need full pathname to invoke them)

==== Basic commands ====

Some example commands, all here are non-destructive. Press enter after each command to execute it.

The terminal should open with a 

 ~ $

To exit the terminal at any time type, exit and enter, so

 ~ $ exit

&lt;code&gt;echo&lt;/code&gt; outputs/prints text to &lt;code&gt;stdout&lt;/code&gt;:

 ~ $ echo &quot;hello world&quot;

 hello world

Echo can also be used with variables, such as &lt;code&gt;USER&lt;/code&gt;, which contains the current user’s username. Variables are prefixed with a '&lt;code&gt;$&lt;/code&gt;':

 ~ $ echo $USER

 user

Use &lt;code&gt;uname&lt;/code&gt; to list the kernel version, and use the &lt;code&gt;-a&lt;/code&gt; argument to output all known information:

 ~ $ uname -a

 2.6.21-omap1

&lt;code&gt;cat&lt;/code&gt; spits out an entire text file to terminal. &lt;code&gt;resolv.conf&lt;/code&gt; (remember *NIX is case-sensitive) is where DNS servers are stored. The &lt;code&gt;#&lt;/code&gt; hash/pound character is a [[:wikipedia:Comment (computer programming)|comment]], which means that the rest of the line is ignored.

 ~ $ cat /etc/resolv.conf

 #nameserver 127.0.0.1
 
 nameserver 192.168.1.1
 
 #nameserver 4.2.2.2

Basic example of a variable:

 ~ $ foobar='example'; echo $foobar'''

 example

Example of directing output to a file. Files stored in &lt;code&gt;/dev/shm&lt;/code&gt; are stored directly in RAM and thus are deleted on shutdown:

 ~ $ uname -s &gt; /dev/shm/os; cat /dev/shm/os

==== Tab autocompletion ====

In the bottom of the X terminal you find the &quot;tab-key&quot; (it does not exist on the hardware keyboard. The tab-key will autocomplete commands/directory/files when pressed. If you want to see what is in a specific directory you could double-tab. The tab function is a very good way and should be a habit. It not only makes using the terminal faster. It also makes sure you spelt everything correctly.
 ls /home/opt/themes/sun[tab] 
will finish the word as &quot;&lt;code&gt;sunset&lt;/code&gt;&quot;. 
 ls /home/opt/[tab][tab] 
shows you what is in the &lt;code&gt;opt&lt;/code&gt; folder, for example the &quot;&lt;code&gt;themes&lt;/code&gt;&quot; folder

Another good tip is &quot;ctrl+c&quot;. You will find Ctrl-key on the keyboard. Together with &quot;c&quot; it will cancel (interrupt) any previously given command (NOTE: can also be used in DOS terminals)
 [Ctrl-key] c
For example, if you write &quot;&lt;code&gt;find /&lt;/code&gt;&quot; it will start listing all the files on the N900. If you press ctrl+c it will stop.

=== Managing Files ===

==== Listing files ====
To list files in a directory type ls and hit enter, so

 ~ $ ls

To list files in a directory with permissions, owners, time, the use the long format with &lt;code&gt;ls&lt;/code&gt;, which is &lt;code&gt;ls -l&lt;/code&gt;:

 ~ $ ls -l

To list hidden files and directories

 ~ $ ls -la

To list all mp3 files on memory card mmc1

 ~ $ ls -l /media/mmc1/*.mp3

==== Copying files ====
To copy files use cp, so 

 ~ $ cp file file2

This would make a copy of file and call it file2. Note that &quot;file2&quot; can be a whole other path (like &lt;code&gt;/home/user/MyDocs/afolder/file2&lt;/code&gt;).  If file2 already exists it will be overwritten.

You can also copy multiple files in one go, like so:

 ~ $ cp file1 file2 file3 /the/destination

Where the destination must be a directory.

==== Moving files ====
To move files use &lt;code&gt;mv&lt;/code&gt;

 ~ $ mv file2 mydirectory/file2

moving file2 to mydirectory directory

You can also use &lt;code&gt;mv&lt;/code&gt; to rename a file

 ~ $ mv file newname

But what happens if I want to copy stuff into the directory I am already in do I have to type out the whole directory tree again. Well you can but it is much simpler to do the following:

 ~ $ mv mydirectory/file .

The dot at the end of the command means the current directory.

You can also move multiple files in one go, like so:

 ~ $ mv file1 file2 file3 /the/destination

==== Removing files ====

To delete a file, use the &lt;code&gt;rm&lt;/code&gt; command:

 ~ $ rm file

To delete a directory and all of its subdirectories and files, use the recursive option with &lt;code&gt;rm&lt;/code&gt;:

 ~ $ rm -r directory

Be careful when you use the recursive delete, it will remove everything under the given directory without asking you for a confirmation.

==== Directories ====

To change directory use &lt;code&gt;cd&lt;/code&gt;, so

 ~ $ cd MyDocs

To go back a level on a directory

 ~/MyDocs $ cd ..

To go back two levels on a directory

 ~ $ cd ../..

To go back three... I think you get the idea

By the way, the bit before the $, tells you the directory you are in. The symbol &lt;code&gt;~&lt;/code&gt; means your home directory, however to find out which directory you are in

 ~ $ pwd

&lt;code&gt;pwd&lt;/code&gt; stands for present working directory

To create a directory, use &lt;code&gt;mkdir&lt;/code&gt;

 mkdir mydirectory

And to remove an empty directory, use &lt;code&gt;rmdir&lt;/code&gt;

 rmdir mydirectory

=== Directory structure ===

One thing to note is the directory structure on a Maemo device. When you open the terminal on the device you are in the directory &lt;code&gt;/home/user&lt;/code&gt; Equivalent to MyDocuments in Windows. The top level directory like C: drive on Windows is a &lt;code&gt;/&lt;/code&gt; known as a root directory. Try and stay in the &lt;code&gt;/home/user&lt;/code&gt; directory at first, or look at your memory cards which is in the directory &lt;code&gt;/media&lt;/code&gt;. Further information about filesystem can be found at an article named [[N900 filesystem]].

=== Finding files ===

 find /media -name &quot;*.jpg&quot;

Finds all files ending with a .jpg, i.e. photo files in &lt;code&gt;/media&lt;/code&gt; directory, memory card. The &lt;code&gt;*&lt;/code&gt; is a wildcard.

=== Wildcards ===
 
* &lt;code&gt;*&lt;/code&gt; means any number (zero or more) of characters
* &lt;code&gt;?&lt;/code&gt; means exactly one character
* &lt;code&gt;[a-d]&lt;/code&gt; means exactly one character from the range 'a' to 'd' (ie 'a', 'b', 'c' or 'd')
* &lt;code&gt;[xyz]&lt;/code&gt; means exactly one character from the set 'x', 'y' and 'z'
* &lt;code&gt;[a-ckp1-3]&lt;/code&gt; means one of 'a', 'b', 'c', 'k', 'p', '1', '2' or '3' and so on...

So

 find . -name &quot;birthday?[bg]*&quot;

Will find any files starting with birthday, followed by any one character,  then either a lowercase b or g, with &lt;code&gt;*&lt;/code&gt; meaning any other characters if any. 

If you want to stop a search, or any command for that matter press and hold Ctrl and then press c:

 &lt;Ctrl&gt; c

To find a word in a file you use &lt;code&gt;grep&lt;/code&gt;. For example, if you want to find the word Maemo in file mydocument you type

 grep &quot;Maemo&quot; mydocument

=== Opening tar.gz files ===

To open a tar.gz you need to unpack it, it is an archive file, like zip files. I recommend creating a new directory before unpacking, so

 mkdir mynewdirectory
 cd mynewdirectory/
 tar -xvfz myarchive.tar.gz
 
This will unpack &lt;code&gt;myarchive.tar.gz&lt;/code&gt; into &lt;code&gt;mynewdirectory/&lt;/code&gt;

=== Starting a GUI application ===

Everything is run from a terminal in *NIX. A GUI program is a running instance of a terminal process. Therefore the camera program can be launched. The &lt;code&gt;&amp;&lt;/code&gt; (ampersand) tells the shell to run the command as a [[:wikipedia:Job control (Unix)#Unix shell|background job]]:

 ~ $ /usr/bin/camera &amp;

=== Show disk usage in megabytes ===

 ~ $ du -m

To show disk (memory cards, etc.) partitions and their space

 ~ $ df -h

To show only rootfs partition
 ~ $ df -h /

=== Show a list of installed packages ===

Show a list of all your programmes installed including those not visible in the Application Manager&quot;

 dpkg -l

=== Piping ===

You can do fancy things and link commands together with what is called a pipe (this symbol: | ). Press Chr on the [[Nokia N810|N810]] or Fn on the [[Nokia N900|N900]] to find the pipe | symbol. You can program the terminal to show the pipe symbol, by going to tools-&gt;settings and entering bar as a toolbar shortcut. What the pipe does is that it takes one program's output and gives it to another as input.

So using &lt;code&gt;du&lt;/code&gt; with the sort command you can list files and sort in order of megabytes,

 ~ $ du -m | sort -r -n | more

&lt;code&gt;du -m&lt;/code&gt; lists files in megabytes then pipes it to sort to sort it in order of megabytes, largest first, then the more command shows you one page of the screen at a time, pressing enter to show more pages.

Show Linux Kernel messages:

 ~ $ dmesg | more

&lt;code&gt;ps&lt;/code&gt; lists running processes, you might also be interested in the interactive &lt;code&gt;top&lt;/code&gt; command. Piped to &lt;code&gt;awk&lt;/code&gt; which in this case says to only show the 5th column (separated by tab characters)

 ~ $ ps | awk '{ print $5 }'

 /usr/bin/osso-xterm
 /usr/libexec/gnome-vfs-daemon
 bash
 ps
 awk

=== Networking ===

The user PATH does not include /sbin for some reason by default on NITs, which is annoying as you need to type in &lt;code&gt;/sbin/ifconfig&lt;/code&gt; when normally just &lt;code&gt;ifconfig&lt;/code&gt; would be sufficient. You can create a symlink to &lt;code&gt;/usr/bin&lt;/code&gt; to make things easier:

 ~ $ ln -s /sbin/ifconfig /usr/bin/ifconfig

Example use of &lt;code&gt;grep&lt;/code&gt;, which outputs the entire line matching the pattern, in this case &quot;inet addr&quot; which is piped into it from the output of &lt;code&gt;ifconfig&lt;/code&gt;:

 ~ $ ifconfig | grep &quot;inet addr&quot;

This advanced example pipes from &lt;code&gt;ifconfig&lt;/code&gt; to &lt;code&gt;grep&lt;/code&gt; to &lt;code&gt;awk&lt;/code&gt; and finally to &lt;code&gt;cut&lt;/code&gt; to output the clean IP address which can then be fed into something else if desired:

 ~ $ ifconfig | grep &quot;inet addr&quot; | awk '{ print $2 }' | cut -d : -f2

=== Writing a shell function ===

A simple shell function that uses a variable and if/then/else logic:

 ~ $ minute() { foo=`date +%S`; echo $foo; if [ &quot;$foo&quot; -lt &quot;30&quot; ]; then echo &quot;under half&quot;; else echo &quot;over half&quot;; fi; }
 ~ $ minute

 29
 under half

Using the shell function we just wrote, outputs the current time in seconds (only the seconds part) and whether it is closer to the last minute or next minute. Shell functions are only available for the terminal session. Save in &lt;code&gt;.bashrc&lt;/code&gt; or &lt;code&gt;.profile&lt;/code&gt; to be persistent.

== Gain root access ==

You might need [[root access]] in order to make some advanced changes.

=== Debian package management ===

Update local metadata detailing what apps are available in the [[repository|repositories]]. This is important so apt-get can find the latest software:
 apt-get update 

&lt;s&gt;Upgrade any installed apps with newer versions (the &lt;code&gt;-y&lt;/code&gt; is optional and just avoids it prompting you as to whether or not to proceed):
 apt-get upgrade -y &lt;/s&gt; DEPRECATED!

Remove any downloaded package archives. Once the package is installed the downloaded file is no longer needed. The Application Manager does this automatically but if you are using &quot;apt-get&quot; you'll have to do it manually:
 apt-get clean

The same as &quot;&lt;code&gt;apt-get clean&lt;/code&gt;&quot; but only remove package archives which are obsolete (no longer in repsitories). Having run &quot;&lt;code&gt;apt-get clean&lt;/code&gt;&quot; it is pointless to run this command:
 apt-get autoclean

&lt;s&gt;Remove any packages which are no longer needed. These are applications/libraries which were automatically installed because of dependencies but are no longer required:
 apt-get autoremove
&lt;/s&gt; DEPRECATED! May remove essential pkgs, see http://talk.maemo.org/showthread.php?t=70875

Install any missing dependencies (which should fix the broken packages issue I had):
 apt-get -f install

Search repositories for packages by keyword:

 ~ $ apt-cache search nano

 nano-tiny - free Pico clone
 traceroute-nanog - Determine route of packets
 nano - nano editor

Install the &lt;code&gt;nano&lt;/code&gt; package (an easy to use CLI text editor):

 ~ $ apt-get install nano

Instead of using the repos, use &lt;code&gt;wget&lt;/code&gt; to download a .deb package from a website:

 ~ $ wget http://nitstuff.appspot.com/dists/chinook/user/binary-armel/nano_2.0.6_armel.deb

Install a locally-stored Debian package:

 ~ $ dpkg -i nano_2.0.6_armel.deb
 
To extract the .deb file for any reason
 ~ $ dpkg -x nano_2.0.6_armel.deb /path/to/extraction/directory

To extract the control file from the .deb file 
 ~ $ dpkg-deb -e nano_2.0.6_armel.deb
then you will find the control file named as &quot;control&quot; in &quot;/home/user&quot; if you used &quot;sudo gainroot&quot; to gain root access or in &quot;/root&quot; if you used &quot;root&quot; command to gain root access

== Further reading ==

There are infinite possibilities with the terminal, I'd recommend using google if you want to find out more or look at [http://www.busybox.net/downloads/BusyBox.html Busybox commands] or [http://linuxcommand.org/learning_the_shell.php learning the shell]. Again to reiterate please make sure you backup your data before tinkering and when you want to try a new command, make sure you understand what it does first.

[[Category:HowTo]]
[[Category:Wiki page of the day]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Terminal</title>
    <id>3134</id>
    <revision>
      <id>49013</id>
      <timestamp>2012-08-10T02:08:01Z</timestamp>
      <contributor>
        <username>sifo</username>
        <id>5350</id>
      </contributor>
      <comment>/* Debian package management */</comment>
      <text xml:space="preserve">This page is for beginners to Linux that would like to try the terminal. Below are some basic commands you can use in the terminal app to get you started.

== Opening the terminal ==

=== N900 ===

# Navigate to the application menu
#* If using a firmware release older than [[Maemo 5/PR1.2|PR1.2]], navigate to ‘More...’
# Tap ‘X Terminal’

Alternatively, use the Ctrl+Shift+X key combination even without opening the application menu.

=== N800 and N810 ===

# Click the command button on the main page
# Select ‘Utilities’
# Select ‘X Terminal’

=== 770 ===
Terminal is not installed by default on the 770. You need to install it from the Application manager first. After that it will be available in the same menu as on the N8X0.

== Using the terminal ==

'''Before you start, backup your data'''
So long as your data is backed up, then you can start to try out the terminal without any fears of losing any data. This page does not cover gaining '[[Root access|root]]' on your device so you should come to no harm. If you are gaining root, then it would best to not only have a backup before you start tinkering, but also to familiarise yourself with how to reflash your device in extreme cases where you need to get back to where you started. 

But don't be afraid of the terminal and command line, it can be a fast and powerful tool when used correctly and non-destructive commands will not harm your device or your data.

'''Understand what a command does before you type it'''
Fundamentally you should understand what a command does before typing it in and pressing enter. If you have a linux installed on your desktop PC, there you can normally type the command with the parameter &lt;code&gt;--help&lt;/code&gt; to get a list of options, i.e. &lt;code&gt;ls --help&lt;/code&gt;, or look up manual pages if installed, with the most helpful linux command &lt;code&gt;man&lt;/code&gt; for &quot;manual&quot;, like:

 man ls [enter]

or
 
 man man [enter]

to find out what a command does and what are and the options it allows. 

However on maemo the default shell is busybox which has lots of commands like &lt;code&gt;ls&lt;/code&gt; built in, and most of them are crippled in functionality so don't support a really helpful --help function. Also the &lt;code&gt;man&lt;/code&gt; command is not available on standard maemo. So maemo NITs are basically a hostile environment for beginners to learn about linux.

There are ways to mitigate this:
* install man. The pkg is available e.g. here:[http://maemo.org/packages/view/man-db-n900/] and also in your application manager when you got the extras-devel catalog enabled.
* install bash (version 3 or 4), a proper fullsize shell though without many builtins. (http://maemo.org/packages/view/bash3/ http://maemo.org/packages/view/bash4/, again also in your application manager, from extras catalog.
* install proper original tools to replace the crippled ones of busybox, when you  already installed bash. Refer to e.g. [[User:Joerg_rw/tools]]

WARNING: You might feel like getting rid of supposedly useless busybox when you did the above suggested installation of bash and tools. ''DO NOT uninstall busybox'', it's needed for maemo bootup!

If you're reluctant to do all of the above (installing man package mandb-N900 is strongly recommended anyway), you may look up general linux cmdline help here: [http://ss64.com/bash Linux commands], and details about crippled busybox here: [http://www.busybox.net/downloads/BusyBox.html list of Busybox Linux commands and options for each one]. Man pages online you'll find at [http://manpages.courier-mta.org/manpageindex.html], further links are listed at [http://tldp.org/manpages/man.html].

You find more links that give you easy as well as ambitious starts on linux shell here: [http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_01_01.html Bash-Beginners-Guide] [http://tldp.org/LDP/abs/html/why-shell.html &quot;Shell Programming!&quot;] [http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_01_01.html Common shell programs] [http://www.faqs.org/docs/bashman/bashref_toc.html#SEC_Contents Bash reference] [http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html BASH Programming - Introduction HOW-TO] and generally under http://tldp.org/

=== Basics ===

One of the most useful yet unknown to beginners: &lt;TAB&gt; completes anything at any moment, If there are ambiguities, &lt;TAB&gt; will complete only the unambiguous part. Two times &lt;TAB&gt; shows all alternatives when there are ambiguities. 

Try &lt;TAB&gt;&lt;TAB&gt; on an empty line to get a list of all commands that are &quot;known&quot; to the shell (will not find commands that are not in $PATH and so would need full pathname to invoke them)

==== Basic commands ====

Some example commands, all here are non-destructive. Press enter after each command to execute it.

The terminal should open with a 

 ~ $

To exit the terminal at any time type, exit and enter, so

 ~ $ exit

&lt;code&gt;echo&lt;/code&gt; outputs/prints text to &lt;code&gt;stdout&lt;/code&gt;:

 ~ $ echo &quot;hello world&quot;

 hello world

Echo can also be used with variables, such as &lt;code&gt;USER&lt;/code&gt;, which contains the current user’s username. Variables are prefixed with a '&lt;code&gt;$&lt;/code&gt;':

 ~ $ echo $USER

 user

Use &lt;code&gt;uname&lt;/code&gt; to list the kernel version, and use the &lt;code&gt;-a&lt;/code&gt; argument to output all known information:

 ~ $ uname -a

 2.6.21-omap1

&lt;code&gt;cat&lt;/code&gt; spits out an entire text file to terminal. &lt;code&gt;resolv.conf&lt;/code&gt; (remember *NIX is case-sensitive) is where DNS servers are stored. The &lt;code&gt;#&lt;/code&gt; hash/pound character is a [[:wikipedia:Comment (computer programming)|comment]], which means that the rest of the line is ignored.

 ~ $ cat /etc/resolv.conf

 #nameserver 127.0.0.1
 
 nameserver 192.168.1.1
 
 #nameserver 4.2.2.2

Basic example of a variable:

 ~ $ foobar='example'; echo $foobar'''

 example

Example of directing output to a file. Files stored in &lt;code&gt;/dev/shm&lt;/code&gt; are stored directly in RAM and thus are deleted on shutdown:

 ~ $ uname -s &gt; /dev/shm/os; cat /dev/shm/os

==== Tab autocompletion ====

In the bottom of the X terminal you find the &quot;tab-key&quot; (it does not exist on the hardware keyboard. The tab-key will autocomplete commands/directory/files when pressed. If you want to see what is in a specific directory you could double-tab. The tab function is a very good way and should be a habit. It not only makes using the terminal faster. It also makes sure you spelt everything correctly.
 ls /home/opt/themes/sun[tab] 
will finish the word as &quot;&lt;code&gt;sunset&lt;/code&gt;&quot;. 
 ls /home/opt/[tab][tab] 
shows you what is in the &lt;code&gt;opt&lt;/code&gt; folder, for example the &quot;&lt;code&gt;themes&lt;/code&gt;&quot; folder

Another good tip is &quot;ctrl+c&quot;. You will find Ctrl-key on the keyboard. Together with &quot;c&quot; it will cancel (interrupt) any previously given command (NOTE: can also be used in DOS terminals)
 [Ctrl-key] c
For example, if you write &quot;&lt;code&gt;find /&lt;/code&gt;&quot; it will start listing all the files on the N900. If you press ctrl+c it will stop.

=== Managing Files ===

==== Listing files ====
To list files in a directory type ls and hit enter, so

 ~ $ ls

To list files in a directory with permissions, owners, time, the use the long format with &lt;code&gt;ls&lt;/code&gt;, which is &lt;code&gt;ls -l&lt;/code&gt;:

 ~ $ ls -l

To list hidden files and directories

 ~ $ ls -la

To list all mp3 files on memory card mmc1

 ~ $ ls -l /media/mmc1/*.mp3

==== Copying files ====
To copy files use cp, so 

 ~ $ cp file file2

This would make a copy of file and call it file2. Note that &quot;file2&quot; can be a whole other path (like &lt;code&gt;/home/user/MyDocs/afolder/file2&lt;/code&gt;).  If file2 already exists it will be overwritten.

You can also copy multiple files in one go, like so:

 ~ $ cp file1 file2 file3 /the/destination

Where the destination must be a directory.

==== Moving files ====
To move files use &lt;code&gt;mv&lt;/code&gt;

 ~ $ mv file2 mydirectory/file2

moving file2 to mydirectory directory

You can also use &lt;code&gt;mv&lt;/code&gt; to rename a file

 ~ $ mv file newname

But what happens if I want to copy stuff into the directory I am already in do I have to type out the whole directory tree again. Well you can but it is much simpler to do the following:

 ~ $ mv mydirectory/file .

The dot at the end of the command means the current directory.

You can also move multiple files in one go, like so:

 ~ $ mv file1 file2 file3 /the/destination

==== Removing files ====

To delete a file, use the &lt;code&gt;rm&lt;/code&gt; command:

 ~ $ rm file

To delete a directory and all of its subdirectories and files, use the recursive option with &lt;code&gt;rm&lt;/code&gt;:

 ~ $ rm -r directory

Be careful when you use the recursive delete, it will remove everything under the given directory without asking you for a confirmation.

==== Directories ====

To change directory use &lt;code&gt;cd&lt;/code&gt;, so

 ~ $ cd MyDocs

To go back a level on a directory

 ~/MyDocs $ cd ..

To go back two levels on a directory

 ~ $ cd ../..

To go back three... I think you get the idea

By the way, the bit before the $, tells you the directory you are in. The symbol &lt;code&gt;~&lt;/code&gt; means your home directory, however to find out which directory you are in

 ~ $ pwd

&lt;code&gt;pwd&lt;/code&gt; stands for present working directory

To create a directory, use &lt;code&gt;mkdir&lt;/code&gt;

 mkdir mydirectory

And to remove an empty directory, use &lt;code&gt;rmdir&lt;/code&gt;

 rmdir mydirectory

=== Directory structure ===

One thing to note is the directory structure on a Maemo device. When you open the terminal on the device you are in the directory &lt;code&gt;/home/user&lt;/code&gt; Equivalent to MyDocuments in Windows. The top level directory like C: drive on Windows is a &lt;code&gt;/&lt;/code&gt; known as a root directory. Try and stay in the &lt;code&gt;/home/user&lt;/code&gt; directory at first, or look at your memory cards which is in the directory &lt;code&gt;/media&lt;/code&gt;. Further information about filesystem can be found at an article named [[N900 filesystem]].

=== Finding files ===

 find /media -name &quot;*.jpg&quot;

Finds all files ending with a .jpg, i.e. photo files in &lt;code&gt;/media&lt;/code&gt; directory, memory card. The &lt;code&gt;*&lt;/code&gt; is a wildcard.

=== Wildcards ===
 
* &lt;code&gt;*&lt;/code&gt; means any number (zero or more) of characters
* &lt;code&gt;?&lt;/code&gt; means exactly one character
* &lt;code&gt;[a-d]&lt;/code&gt; means exactly one character from the range 'a' to 'd' (ie 'a', 'b', 'c' or 'd')
* &lt;code&gt;[xyz]&lt;/code&gt; means exactly one character from the set 'x', 'y' and 'z'
* &lt;code&gt;[a-ckp1-3]&lt;/code&gt; means one of 'a', 'b', 'c', 'k', 'p', '1', '2' or '3' and so on...

So

 find . -name &quot;birthday?[bg]*&quot;

Will find any files starting with birthday, followed by any one character,  then either a lowercase b or g, with &lt;code&gt;*&lt;/code&gt; meaning any other characters if any. 

If you want to stop a search, or any command for that matter press and hold Ctrl and then press c:

 &lt;Ctrl&gt; c

To find a word in a file you use &lt;code&gt;grep&lt;/code&gt;. For example, if you want to find the word Maemo in file mydocument you type

 grep &quot;Maemo&quot; mydocument

=== Opening tar.gz files ===

To open a tar.gz you need to unpack it, it is an archive file, like zip files. I recommend creating a new directory before unpacking, so

 mkdir mynewdirectory
 cd mynewdirectory/
 tar -xvfz myarchive.tar.gz
 
This will unpack &lt;code&gt;myarchive.tar.gz&lt;/code&gt; into &lt;code&gt;mynewdirectory/&lt;/code&gt;

=== Starting a GUI application ===

Everything is run from a terminal in *NIX. A GUI program is a running instance of a terminal process. Therefore the camera program can be launched. The &lt;code&gt;&amp;&lt;/code&gt; (ampersand) tells the shell to run the command as a [[:wikipedia:Job control (Unix)#Unix shell|background job]]:

 ~ $ /usr/bin/camera &amp;

=== Show disk usage in megabytes ===

 ~ $ du -m

To show disk (memory cards, etc.) partitions and their space

 ~ $ df -h

To show only rootfs partition
 ~ $ df -h /

=== Show a list of installed packages ===

Show a list of all your programmes installed including those not visible in the Application Manager&quot;

 dpkg -l

=== Piping ===

You can do fancy things and link commands together with what is called a pipe (this symbol: | ). Press Chr on the [[Nokia N810|N810]] or Fn on the [[Nokia N900|N900]] to find the pipe | symbol. You can program the terminal to show the pipe symbol, by going to tools-&gt;settings and entering bar as a toolbar shortcut. What the pipe does is that it takes one program's output and gives it to another as input.

So using &lt;code&gt;du&lt;/code&gt; with the sort command you can list files and sort in order of megabytes,

 ~ $ du -m | sort -r -n | more

&lt;code&gt;du -m&lt;/code&gt; lists files in megabytes then pipes it to sort to sort it in order of megabytes, largest first, then the more command shows you one page of the screen at a time, pressing enter to show more pages.

Show Linux Kernel messages:

 ~ $ dmesg | more

&lt;code&gt;ps&lt;/code&gt; lists running processes, you might also be interested in the interactive &lt;code&gt;top&lt;/code&gt; command. Piped to &lt;code&gt;awk&lt;/code&gt; which in this case says to only show the 5th column (separated by tab characters)

 ~ $ ps | awk '{ print $5 }'

 /usr/bin/osso-xterm
 /usr/libexec/gnome-vfs-daemon
 bash
 ps
 awk

=== Networking ===

The user PATH does not include /sbin for some reason by default on NITs, which is annoying as you need to type in &lt;code&gt;/sbin/ifconfig&lt;/code&gt; when normally just &lt;code&gt;ifconfig&lt;/code&gt; would be sufficient. You can create a symlink to &lt;code&gt;/usr/bin&lt;/code&gt; to make things easier:

 ~ $ ln -s /sbin/ifconfig /usr/bin/ifconfig

Example use of &lt;code&gt;grep&lt;/code&gt;, which outputs the entire line matching the pattern, in this case &quot;inet addr&quot; which is piped into it from the output of &lt;code&gt;ifconfig&lt;/code&gt;:

 ~ $ ifconfig | grep &quot;inet addr&quot;

This advanced example pipes from &lt;code&gt;ifconfig&lt;/code&gt; to &lt;code&gt;grep&lt;/code&gt; to &lt;code&gt;awk&lt;/code&gt; and finally to &lt;code&gt;cut&lt;/code&gt; to output the clean IP address which can then be fed into something else if desired:

 ~ $ ifconfig | grep &quot;inet addr&quot; | awk '{ print $2 }' | cut -d : -f2

=== Writing a shell function ===

A simple shell function that uses a variable and if/then/else logic:

 ~ $ minute() { foo=`date +%S`; echo $foo; if [ &quot;$foo&quot; -lt &quot;30&quot; ]; then echo &quot;under half&quot;; else echo &quot;over half&quot;; fi; }
 ~ $ minute

 29
 under half

Using the shell function we just wrote, outputs the current time in seconds (only the seconds part) and whether it is closer to the last minute or next minute. Shell functions are only available for the terminal session. Save in &lt;code&gt;.bashrc&lt;/code&gt; or &lt;code&gt;.profile&lt;/code&gt; to be persistent.

== Gain root access ==

You might need [[root access]] in order to make some advanced changes.

=== Debian package management ===

Update local metadata detailing what apps are available in the [[repository|repositories]]. This is important so apt-get can find the latest software:
 apt-get update 

&lt;s&gt;Upgrade any installed apps with newer versions (the &lt;code&gt;-y&lt;/code&gt; is optional and just avoids it prompting you as to whether or not to proceed):
 apt-get upgrade -y &lt;/s&gt; DEPRECATED!

Remove any downloaded package archives. Once the package is installed the downloaded file is no longer needed. The Application Manager does this automatically but if you are using &quot;apt-get&quot; you'll have to do it manually:
 apt-get clean

The same as &quot;&lt;code&gt;apt-get clean&lt;/code&gt;&quot; but only remove package archives which are obsolete (no longer in repsitories). Having run &quot;&lt;code&gt;apt-get clean&lt;/code&gt;&quot; it is pointless to run this command:
 apt-get autoclean

&lt;s&gt;Remove any packages which are no longer needed. These are applications/libraries which were automatically installed because of dependencies but are no longer required:
 apt-get autoremove
&lt;/s&gt; DEPRECATED! May remove essential pkgs, see http://talk.maemo.org/showthread.php?t=70875

Install any missing dependencies (which should fix the broken packages issue I had):
 apt-get -f install

Search repositories for packages by keyword:

 ~ $ apt-cache search nano

 nano-tiny - free Pico clone
 traceroute-nanog - Determine route of packets
 nano - nano editor

Install the &lt;code&gt;nano&lt;/code&gt; package (an easy to use CLI text editor):

 ~ $ apt-get install nano

Instead of using the repos, use &lt;code&gt;wget&lt;/code&gt; to download a .deb package from a website:

 ~ $ wget http://nitstuff.appspot.com/dists/chinook/user/binary-armel/nano_2.0.6_armel.deb

Install a locally-stored Debian package:

 ~ $ dpkg -i nano_2.0.6_armel.deb
 
To extract the .deb file for any reason
 ~ $ dpkg -x nano_2.0.6_armel.deb /path/to/extraction/directory

To extract the control file from the .deb file 
 ~ $ dpkg-deb -e nano_2.0.6_armel.deb
then you will find the control file named as &quot;control&quot; in &quot;/home/user&quot; if you used &quot;sudo gainroot&quot; to gain root access or in &quot;/root&quot; if you used &quot;root&quot; command to gain root access

== Further reading ==

There are infinite possibilities with the terminal, I'd recommend using google if you want to find out more or look at [http://www.busybox.net/downloads/BusyBox.html Busybox commands] or [http://linuxcommand.org/learning_the_shell.php learning the shell]. Again to reiterate please make sure you backup your data before tinkering and when you want to try a new command, make sure you understand what it does first.

[[Category:HowTo]]
[[Category:Wiki page of the day]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Testing Squad</title>
    <id>3528</id>
    <revision>
      <id>37355</id>
      <timestamp>2010-07-28T22:56:08Z</timestamp>
      <contributor>
        <username>achipa</username>
        <id>954</id>
      </contributor>
      <comment>testingsquad-comments mailing list</comment>
      <text xml:space="preserve">==What is a Testing Squad?==

Testing Squad is a team of Maemo community members that are involved in testing applications queued in [[Extras-testing]] repository in regular and systematic manner. The idea is to ensure high quality applications are promoted to end-user oriented Extras repository, instead of being stuck in Extras-testing forever, just because there is nobody willing to put enough effort to test these apps and make sure they are mature enough to hit Extras for everyone to use.

==How everybody can help==

* You can help testing beta software available in the [[Extras-testing]] repository, in order to provide high quality software to the Maemo users.
* If you don't feel ready to join the testing Squad or don't have enough skills, you can still help by testing the applications from a user point of view (functionalities, description, etc...). For more information read article [[Help testing software]].
* Don't be shy to give feedback (both positive and negative) to author of an application, using [http://maemo.org/packages/ packages interface] or [http://bugs.maemo.org Bugzilla] if you've found obvious bugs. Such activity does not require you to become Testing Squad member.

==How to join the Testing Squad==
* Read the &quot;[[Testing Squad#How_everybody_can_help|How everybody can help]]&quot; section above.
* Subscribe the Testing Squad [https://garage.maemo.org/mail/?group_id=1273 mailing list].
* Attend QA team meetings
** Read minutes of [[QA meeting | our last meeting]]
* Welcome to the team! :-)

==Mailing list==

Mailing list for Testing Squad members is meant to keep track of apps in testing queue, so every member is aware which apps require most attention at given time. If you want to become Testing Squad member, [https://garage.maemo.org/mail/?group_id=1273 subscribing] to mailing list is essential.

There is also a mailing [https://garage.maemo.org/mailman/listinfo/testingsquad-comments comments list] that contains all the traffic from the comments on QA pages - it is a good reference to see how testing communication works, what the common issues are, etc.

==How Testing Squad works==

The Testing Squad follows a very simple process:

* Each week a member of the Testing Squad posts a list of applications that should be tested during that week.
* The testers test the applications freely in their free time.
* In the end of the week a evaluation is made and any pending issue is discussed among the team.

==Super-testers==

Super-testers are members of the testing-squad with a proven track record (currently testers with more than 100 package testing karma). Their votes (can) count a bit differently than those of regular testers. Three (3) votes down from the testers will demote an application when the 20 day limit is reached. This should take care of the obviously broken lingering packages. When 3 super-tester votes are up and 20 days have passed -&gt; promotion unlock. This will only be able to influence promote/reject when at least 3 votes are the same and less than 3 differ.

See https://garage.maemo.org/pipermail/testingsquad-list/2010-July/000089.html for more details on the initial setup and some procedural detail on super-testers.

==Packages marked for demotion==

Let's keep the testing queue clean: 
[[/Packages Marked for Demotion| Packages Marked for Demotion]].
So everyone please spend couple seconds and give thumbs down for those.

== Code of Conduct ==

* Don't vote up an application before having a good understanding of its quality.
* Don't vote an application based in others comments, test it by yourself.
* Leave a comment or fill a bug report (preferred) every time you vote down an application.
* Don't vote down an application based in your personal preferences, always respect the [[Extras-testing/QA_Checklist|Q&amp;A rules]].

==Testers FAQ==

=== '''Do I need special skills to become a tester?''' ===

No, anyone could become a tester (in fact you already are if you for example report bugs or give thumbs up/down to certain applications), however before becoming a member of Testing Squad you need to be ready to test various [[Extras-testing]] applications on more regular basis.

=== '''How to test applications properly?''' ===

Follow instructions at [[Extras-testing/QA_Checklist| Q&amp;A Checklist]] to ensure consistent testing procedure.

[[Help testing software]] is more thorough article about the same matter.

=== '''The application has a usable but very ugly UI, should I thumb it down?''' ===

No, developers are encouraged to adopt the Maemo 5 UI guidelines and optimize their application to finger use. However, lack of Maemo 5 UI optimization is not a reason to block an application in its way to Extras unless it is unusable even with stylus. 

=== '''The application has no bugtracker, or an invalid one, should I thumb it down?''' ===

Yes: the bugtracker field is mandatory, applications without that field or with an invalid one can't be promoted to extras. 

=== '''How should I decide if a bugtracker link is valid?''' ===

We are currently deciding some objective criteria for answering this question. Read article [[Tracking bugs in Extras]] for more info.

=== '''I found a critical bug during testing, what should I do? ===

First you should report the bug in the application bugtracker, after that ask the developer to thumb down the application(in order to demote it) and add it to this [[/Packages Marked for Demotion|list]].

=== '''Where to report bugs?''' ===

If the application has a regular product section in [http://bugs.maemo.org Maemo bugzilla], just use it: ''Enter a new bug report -&gt; Extras -&gt; application-name''.
Otherwise follow the link in the application bugtracker (or write an email to the developer if it contains a mailto link).

=== '''Should I always comment?''' ===

You don't need to comment if you don't have anything to add to the discussion; for example if someone already commented that the package needs a bugtracker or is not optified, you don't need to repeat the same, just vote down.

[[Category:Community]]
[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Testing Squad/Packages Marked for Demotion</title>
    <id>3529</id>
    <revision>
      <id>30124</id>
      <timestamp>2010-02-24T18:03:26Z</timestamp>
      <contributor>
        <username>torpedo48</username>
        <id>2090</id>
      </contributor>
      <text xml:space="preserve">List of packages that should be removed from the testing queue.

{| class=&quot;wikitable&quot; border=&quot;2&quot;
! Name
! Version
! Reason
! Link
|-
| Magyar Hosszú Ékezetek
| 0.0.1
| Package is obsolete according to the maintainer.
| http://tinyurl.com/ykxafvc
|-
|VectorMine
|1.0.2-3
|There's a newer version in Extras-Testing
|http://tinyurl.com/y9tcspd
|}

[[Category:Community]]
[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>The Good Patch</title>
    <id>1350</id>
    <revision>
      <id>41579</id>
      <timestamp>2011-02-02T13:16:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add wikipedia link</comment>
      <text xml:space="preserve">== Characteristics of a good patch ==
A good patch should:
* be in [[:wikipedia:Diff#Unified_format|unified context format]] (&lt;code&gt;diff -u&lt;/code&gt;)
** alternatively, be generated with &lt;pre&gt;git format-patch&lt;/pre&gt;
* only include related changes
* not introduce any compile time warnings
* have test code (if any) separate from the added/changed functionality
* not add any extra debug printing, unless absolutely necessary
* match the coding style of the existing source file, for example with regard to indentation and whitespace

When attaching a patch to a bug at https://bugs.maemo.org/, add the &quot;patch&quot; keyword to the bug report.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>The One Ring</title>
    <id>4496</id>
    <revision>
      <id>41851</id>
      <timestamp>2011-02-16T22:19:14Z</timestamp>
      <contributor>
        <username>timeless</username>
        <id>139</id>
      </contributor>
      <minor/>
      <comment>minor cleanup</comment>
      <text xml:space="preserve">So you might be using Dialcentral and be thinking &quot;the chat system is horrible and I want to use my system's contacts. Why can't it be integrated with my phone software like Skype?

You are in luck. The One Ring is a way for you to integrate That One Number to Rule Them All.

The One Ring lets you setup an account with the system similar to Google Talk, SIP, or Skype. You can then use the same chat interface you use with GoogleTalk as you use to Text through GoogleVoice. You also can initiate callbacks using the dialpad. 

== Features ==

Basic features:
* Support for GV Contacts w/ names
** Can be disabled by setting the contact polling time to -1
* Support for people not on your contact list.
* Support for system contacts (Maemo 5 only)
* Setting of presence: Available, Away (check for messages less often), and Do Not Disturb (disables in-bound phone calls)
* Sending and receiving texts/voicemail
** Receiving texts can be disabled by setting the polling time to -1
* Initiating a GoogleVoice callback

== Getting The One Ring ==

Getting The One Ring
* Maemo 4.1: Available in [[extras-devel]] through the Application Manager.  This requires [http://rtcomm.garage.maemo.org/ RTComm] to be configured.
* [http://maemo.org/downloads/product/Maemo5/telepathy-theonering Maemo 5] or available in extras through the Application Manager.
* [http://theonering.garage.maemo.org/telepathy-theonering.deb Ubuntu]

The One Ring has been tested on:
* Ubuntu 10.04
* Maemo 4.1
* Maemo 5

== Contribute ==

* [https://bugs.maemo.org/enter_bug.cgi?product=The%20One%20Ring File a bug]
* [https://bugs.maemo.org/buglist.cgi?bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;content=&amp;field-1-0-0=bug_status&amp;field-1-1-0=product&amp;field0-0-0=content&amp;field0-0-1=short_desc&amp;field1-0-0=content&amp;field1-0-1=short_desc&amp;field2-0-0=content&amp;field2-0-1=short_desc&amp;field3-0-0=content&amp;field3-0-1=short_desc&amp;field4-0-0=content&amp;field4-0-1=short_desc&amp;product=The%20One%20Ring&amp;query_format=specific&amp;remaction=&amp;type-1-0-0=anyexact&amp;type-1-1-0=anyexact&amp;type0-0-0=matches&amp;type0-0-1=allwords&amp;type1-0-0=matches&amp;type1-0-1=allwords&amp;type2-0-0=matches&amp;type2-0-1=allwords&amp;type3-0-0=matches&amp;type3-0-1=allwords&amp;type4-0-0=matches&amp;type4-0-1=allwords&amp;value-1-0-0=UNCONFIRMED%2CNEW%2CASSIGNED%2CREOPENED&amp;value-1-1-0=The%20One%20Ring&amp;value0-0-0=&amp;value0-0-1=&amp;value1-0-0=&amp;value1-0-1=&amp;value2-0-0=&amp;value2-0-1=&amp;value3-0-0=&amp;value3-0-1=&amp;value4-0-0=&amp;value4-0-1=&amp;order=bugs.priority%2Cbugs.votes%2Cbugs.bug_severity%2Cbugs.priority&amp;query_based_on= View existing bug reports]
* [http://talk.maemo.org/showthread.php?p=488632 talk.maemo.org thread]
* [https://garage.maemo.org/projects/theonering/ Garage Project (including code)] or [https://github.com/epage/The-One-Ring github]
* Learn about [[extras-testing]] and checkout the [http://maemo.org/packages/view/telepathy-theonering/ Package page (including voting)]

The One Ring is available under the [http://www.gnu.org/licenses/lgpl-2.1.html LGPL v2.1 license]

== Troubleshooting and Reporting of Bugs ==

=== When Reporting a bug ===

Please report an approximate percentage of how reproducible the issue is

Please include what device and/or version of OS/software you are using

Does what you are doing work in Dialcentral?

==== Debug Prompt ====

Try out the Debug Prompt.
* Start a chat session with your account number
* Type &quot;help&quot; for a list of available commands
* Type &quot;help COMMAND&quot; for information on that command
* Report back the result of various commands

==== Log ====

Please include a log (will include sensitive information) when reporting issues. The log can be found at
Code:

 ~/.telepathy-theonering/theonering.log

or be saved to a nicer location through the command prompt
Code:

 save_log ~/MyDocs/.documents

==== DBus ====

It would be really helpful if some DBus output was captured. To do that run the following command, reproduce the bug in The One Ring, and then stop logging by hitting Ctrl+c
(Experienced DBUS people, is there a more specific command to filter for TOR only?)
Code:

 dbus-monitor --session &gt; dbus.log

Note: '''DBus logs might include your password'''. I recommend grepping for and censoring it before sending it in.

==== Raw GV Data ====

If things are looking really bad I might request you also throw in this added little bundle of joy:

 python /opt/telepathy-theonering/lib/gvoice/backend.py USERNAME PASSWORD

Whatever directory you are in it will dump a lot of files with '''sensitive information'''.

=== Internal Behavior ===

''' Checking for new Texts, Voicemail, and Contacts: '''

I know of no official API for Google Voice nor any way to reuse a connection. People have gotten push notifications to work but that was through hacks requiring forwarding texts to an email address that supported push notifications.

The One Ring has a master state machine with a state per presence. There are then state machines per item (contact list, texts, voicemail).

The contact list refreshes on a set schedule (every X minutes)

Voicemail refreshes on a set schedule (every X minutes) or every Y minutes for N times when you reject or miss a call.

When &quot;Available&quot; Texts refresh from every X seconds to every Y minutes, depending on how long its been since you've sent or last received a text. When &quot;Away&quot; texts refresh every Z minutes.

When configuring polling times, setting a value to &quot;0&quot; means &quot;chose default&quot; and &quot;-1&quot; means &quot;never poll&quot;.

''' Sending a Text '''

On Maemo 5 there is an interface for texting and one for IM. The One Ring operates through the IM interface.

''' Callback Number '''

To provide flexibility with how Telepathy clients implement account configuration and screen names, you can set your callback number one of two ways

* In the account settings (usually under &quot;Advanced&quot;)
* Through your screenname (sometimes called Nickname)

If you do not configure it in your account settings, The One Ring will guess which callback number to use and set your screen name accordingly. The priority in how it guesses which callback number to use is

* Area code is 747 (gizmo)
* Phone name includes &quot;gizmo&quot;
* Phone name includes &quot;computer&quot;
* Phone name includes &quot;sip&quot;
* anything else

'''Calls'''

When you make a call (whether through the dialpad or other means), a &quot;phone call&quot; will be started and immediately disconnect. This informed GV to start a call. Immediately after you should have the call connected.

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Themes</title>
    <id>1904</id>
    <revision>
      <id>41483</id>
      <timestamp>2011-01-28T11:02:06Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">==What are themes?==

Themes are used by the maemo phones and tablets to determine what the interface looks like. If you change the theme, the appearance of the interface changes.
* The [[Nokia N900|N900]] ([[Open development/Maemo roadmap/Fremantle|Maemo 5]]) includes two default themes, which you can select using the Settings/Themes popup.
* The [[Nokia N800|N800]] and [[Nokia N810|N810]] tablets ([[:Category:OS2008|OS2008]]) come with four built-in themes to choose from, which you can do from the desktop's &quot;Home&quot; menu at the top of the desktop screen.
Now if you're bored with the built-in designs, you can install extra themes, which is what this article is about.

==Available themes==

The following two pages list a number of available themes with screenshots. Pick one you like, then read the next section on how to get and install it.
* [[List_of_Themes_for_Maemo5|List of Themes for Maemo5]]
* [[List_of_Themes_for_OS2008|List of Themes for OS2008]]

==How to find and install extra themes==

By far the easiest way to find and install themes is to use the maemo.org website, which is the official site for internet tablet software development.

# On your tablet, click on the globe on the left, open a new browser window and go to the address maemo.org Don't worry if the site is a bit slow sometimes.
# Click on the &quot;Downloads&quot; link at the top of the screen, and make sure you're in the &quot;OS 2008&quot; section.
# Click on the search box in the top right hand corner, enter the word &quot;theme&quot; and click on the search button.
# Scroll through the results, if you see a theme you like you can find out more about it by clicking on its title. If you want to install a theme, click on the large green arrow next to its name.
# During the installation, say &quot;yes&quot; or &quot;ok&quot; to all the questions, and eventually the tablet should tell you that the theme has been installed successfully. You can now close the Application Manager and browser if you want to.
# To activate the theme, click on the &quot;Home&quot; menu link at the top of the desktop screen, then &quot;Set Theme&quot;, then select your new theme from the list. Click on &quot;Apply&quot; to activate it and &quot;Close&quot; to close the theme box. If you want to go back to a previous theme, simply repeat this process and choose the previous theme instead.

Note that the theme doesn't replace the wallpaper, that's a quite separate option in the &quot;Home&quot; menu called &quot;Set Background Image&quot;.

==How to uninstall themes==

It is VERY IMPORTANT that you do NOT uninstall a theme you are currently using. If you uninstall a theme currently in use, this can cause your tablet to malfunction.

The way to avoid problems is to switch to a theme you want to keep before you uninstall a theme you want to remove.

To uninstall a theme:

# Click on the Applications icon (the green squares on the left).
# Click on &quot;Settings&quot;, then &quot;Applications Manager&quot;, then &quot;Show Installed Applications&quot;.
# Highlight the name of the theme you want to remove, and click on &quot;Uninstall&quot; at the bottom of the screen. The theme should now be removed from the tablet's memory.


==Make your own theme==

Creating a theme is very easy, all you need is an image editing program and some creativity. Follow [[Making_themes|the guide]] and get going!

==Distribute your own theme==

You created a nice theme? Please go the extra step and make it available to other users through the &quot;extras repository&quot;. This is the place where all 3rd party applications are centrally stored and where the Application Manager goes to give you the list of apps and themes that can be installed on your system.
[[How_to_-_Build_an_OS2008_Theme_Source_Package|This guide helps]] you create a theme package and upload it.

[[Category:Users]]
[[Category:Themes]]</text>
    </revision>
  </page>
  <page>
    <title>Token based access restriction</title>
    <id>2483</id>
    <revision>
      <id>28925</id>
      <timestamp>2010-02-11T14:34:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:maemo.org]]</comment>
      <text xml:space="preserve">= Token based access to repositories of files on maemo.org =
== Use cases ==
=== Alternate Distribution ===
'''Story:''' Alice has created an alternate distribution for the her device, but in order to fully take advantage of the hardware, she needs to use some proprietary binary drivers that only the hardware vendor has the right to redistribute. Now she wants to provide her distribution to users.

'''She needs:''' a way to upload fs images that include proprietary binary drivers.

=== Maemo Remix ===
'''Story:''' Bob wants to fix some bugs the open source parts of Maemo 4 and distribute a complete flashable image. Because he's replacing system libraries he can't distribute his fixes through extras.

'''He needs''': a way to upload an fs image that includes proprietary binary drivers as well as user-level applications that originally came with the device, such as Adobe Flash and &quot;Map.&quot;

=== User of Alice's AlternateDistro or Bob's MaemoRemix ===
'''Story:''' Claire has an N800 and wants to try out Alice's AlternateDistro and Bob's MaemoRemix.

'''She needs:''' a way to provide a token that proves she has a device from the hardware vendor and thus has the rights to access the proprietary binaries included in the downloads provided by Alice and Bob.

== Proposal: ==
=== Part 1 ===
Create a section of the site that can only be accessed through a unique token. Users would be able to access this section of the site by submitting a serial number that uniquely identifies their device (such as the WLAN MAC address or BT MAC address) and then agreeing to an EULA. This serial number would be used to generate a permanent token (maybe an MD5 hash) that they could use to download files that are only licensed to be distributed to people who own such a device. 

If the token generated for the user was &quot;SDFKJSDFHDSF&quot; then the structure of the URL would (conceptually) look something like this: http://maemo.org/hw_vendor-closed/N800/SDFKJSDFHDSF/N8x0-3D-drivers.tar.gz

=== Part 2 ===
Allow developers to distribute complete OS images that include the hardware vendor's &quot;closed&quot; binaries, by letting them upload these images to a subsection of the &quot;token protected&quot; area of the site. If necessary, users could request their own subsection, under which they could create as many sub-directories as necessary, and this could be granted on a case by case basis by someone inside the hardware vendor. If Alice (the developer mentioned above) uploads a new image of her distribution to her own section, the resulting URL for that image could look something like this: http://maemo.org/hw_vendor-closed/N800/SDFKJSDFHDSF/~Alice/AD1/AlternateDistro.img

=== Implementation ===

* Administration interface (web, script) for token area
** Creation
*** Input: maemo.org user M which can upload to this area
*** Input: authentication method A (770 user, n800 user, n810 user, n810w user with EULA.. etc)
*** Creates /area-name/originaltoken/original and allows M to WebDAV upload (important - mkdir permission is needed) to this place. uniquetoken is kept secret.
*** Sets up /area-name/gettoken which is using authentication method A to give out tokens

* Token interface (/area-name/gettoken). 
** Asks user to input according to authentication method needs.
** If OK: Creates unique token T 
** Creates /area-name/token/original symlink to /area-name/originaltoken/original
** Creates all other symlinks for ~username areas in /area-name/token/~username/

* Request form for creation of user token areas
** Input: maemo.org username N, token T (indicating the user has legal access to the token area)
** Input: intended usage for area
** After moderation by user M or other admin:
*** Create /area-name/T/~N/ and allow N to upload by WebDAV (important, mkdir permission is needed)
*** Create /area-name/*/~N/ symlink in all tokens

[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>TrackingPackaging</title>
    <id>1615</id>
    <revision>
      <id>10996</id>
      <timestamp>2009-02-17T12:36:05Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[TrackingPackaging]] moved to [[Tracking packaging]]: No camelCase :P</comment>
      <text xml:space="preserve">#REDIRECT [[Tracking packaging]]</text>
    </revision>
  </page>
  <page>
    <title>Tracking bugs in Extras</title>
    <id>3646</id>
    <revision>
      <id>47620</id>
      <timestamp>2012-05-26T11:00:32Z</timestamp>
      <contributor>
        <username>sim6</username>
        <id>4903</id>
      </contributor>
      <text xml:space="preserve">'''Note: Work in progress'''

A bugtracker is a software application used by developers for keeping tracks of reported bugs in their work.

== Bugtrackers benefits ==
Bugtrackers give both developers and users a lot of benefits.

''Developers'':
* They are notified when a bug is found in their applications
* They keep track of reported bugs so that they can organize their work
* They can easily communicate with reporters if they need more information or further testing 

''Users'':
* They can easily report the bugs they find and help to fix them
* They can give developers tips and suggestions

== Bugtracker location ==

You can find more info about how to add a bugtracker field in your application [[Packaging#Bugtracker_location|here]].

== Validity criteria for bugtrackers and bugtrackers links ==

Actually, these bugtrackers links are considered valid:

* A link to a product dedicated page in bugs.maemo.org (e.g. https://bugs.maemo.org/enter_bug.cgi?product=xxx)
** See [[Bugs:Adding Extra products]] for how to add a product
* A link to a product dedicated page in another known bugtracker (e.g. Google Code, Gitorious, etc.)
* A link to a Garage bugtracker (e.g. https://garage.maemo.org/tracker/?group_id=xxxx)
* A mailto link (just for small applications)
* A link to an opened thread about the application in talk.maemo.org (e.g. http://talk.maemo.com/showthread=xxxxxx)

The following bugtracker links are NOT considered valid:

* General links that do not lead to a dedicated page (e.g. http://talk.maemo.org or https://bugs.maemo.org)
* Misspelled links (e.g. links starting with &quot;xsbc-bugtracker&quot;)

Proposals have been moved to [[Talk:Tracking_bugs_in_Extras]] -section. --[[User:ossipena|ossipena]] 10:46, 3 March 2010 (UTC)
[[Category:Quality Assurance]]</text>
    </revision>
  </page>
  <page>
    <title>Tracking packaging</title>
    <id>1614</id>
    <revision>
      <id>33475</id>
      <timestamp>2010-04-26T11:04:38Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify</comment>
      <text xml:space="preserve">This page is designed to help [[User:jeremiah]] track packaging issues in Maemo. Feel free to add an issue, comments or something you want packaged. 

# Python packaging tutorial (also take a look at the [[Py2deb]] article)
# Links and info about my talk at Maemo summit on packaging.

[[Category:Packaging]]</text>
    </revision>
  </page>
  <page>
    <title>Training material/Getting Started</title>
    <id>1670</id>
    <revision>
      <id>11413</id>
      <timestamp>2009-03-03T10:24:06Z</timestamp>
      <contributor>
        <username>myrtti</username>
        <id>518</id>
      </contributor>
      <comment>[[Training material/Getting Started]] moved to [[Maemo training material/Getting Started]]</comment>
      <text xml:space="preserve">#REDIRECT [[Maemo training material/Getting Started]]</text>
    </revision>
  </page>
  <page>
    <title>Troubleshooting</title>
    <id>2754</id>
    <revision>
      <id>49005</id>
      <timestamp>2012-08-08T22:03:15Z</timestamp>
      <contributor>
        <username>sifo</username>
        <id>5350</id>
      </contributor>
      <comment>/* Last straw */</comment>
      <text xml:space="preserve">This page is a collection of problems you might encounter with your Maemo device, and suggestions for resolving them. Steps go from mildest to the most extreme solution in order. 

== Could your problems be bugs? ==

Very first thing to do, is to check if you have encountered a known bug. Bug jars can be found at [http://talk.maemo.org/showthread.php?t=37106 Extras], [http://talk.maemo.org/showthread.php?t=37105 Official applications] and [http://talk.maemo.org/showthread.php?t=26001 Official platform]. The last post for each thread should be enough. If you can't find your issues there but think that you have a bug, you can contact [[Greeters]] and ask for help with filing a bug to [http://bugs.maemo.org Maemo Bugzilla]

== Boot issues ==

See [[troubleshooting boot issues]]

== Menu issues ==

If, after installing an application, there are no applications in your main application menu, try [[troubleshooting menu issues]].

== Performance issues ==

Is your device sluggish and unresponsive?

Check if you have any applications installed that are known to be [[battery consuming and memory leaking applications]]. Also, check the [[batteries]] and [[make your battery last longer]] pages for general tips on improving your autonomy and making your batteries last longer.

Open terminal and see what following command tells you:
 top

The program lists the programs that use the most of devices resources.

If you see Tracker, that means that device is indexing your data, searching your music, etc. It reads metadata from media files, improving your search user experience later on when browsing media. Tracker can take several hours to index all your data, but this should only occur once.

== Disk space issues ==

If your rootfs is full, see article [[free up rootfs space]]
One can test it with a command in terminal:
 df -h |grep rootfs

output will be something like: 
 rootfs               227.8M    XXX.XM     YY.YM    ZZ.Z%  /

XXX.X is amount of space used, YY.Y is amount of space free, ZZ.Z is amount of space free in percentages.


=== Check if unnecessary applications run in background ===

Run the task switcher and close all applications that aren't needed.
You can open the task switcher by tapping menu icon or pressing Ctrl + delete simultaneously.

=== Uninstall or remove applets ===

Applets running on your desktop, or in the system tray, can affect the battery life and performance adversely. If in doubt, remove applets and widgets you have installed, restart your device, and see if the performance has improved.

=== Remove possible unstable applications  ===

If you have enabled Extras-devel -repository, you should look at the [http://maemo.org/packages/repository/qa/fremantle_extras-testing/ list of extras-devel programs] and see if you have something installed from there.

Programs can interfere with each other. The cause of the problems are most probably newly installed application so those should be uninstalled in an inverted order: most recently installed first. After each uninstall, check if the problem disappears before uninstalling other software.

For power users only:
If application manager is unable to remove some of the applications, you can always use terminal and command
 &lt;code&gt;apt-get remove ''applicationname''&lt;/code&gt;

== Last straw ==

[[Updating the firmware|Updating the tablet firmware]] is the last straw. It deletes all user data and reverts all settings to default. The eMMC (MyDocs) partition will be untouched unless you decide to flash that as well. Your settings and application list can be preserved through the application 'Backup'.

== USB mass storage issues ==

sime times you might be unable to connect to massstorage mode due to some issues like : 
-You are using the file manager and copying or removing something from MyDocs.

-A window in terminal might be opened and you used this command 
 cd /home/user/MyDocs
in this case you need to close the terminal window.

-Sometimes fAircrack causes such a problem because it is using files from myDocs partition.

-If non of the above issues you have and stil cant connect you may want to check if your cable is fine so do USB port, in some cases refreshing hildon desktop may work
 killall hildon-desktop 

[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>Troubleshooting boot issues</title>
    <id>1123</id>
    <revision>
      <id>40602</id>
      <timestamp>2010-12-07T10:29:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>recategorize</comment>
      <text xml:space="preserve">{{out of date}}

You'll need bootmenu [http://fanoush.wz.cz/maemo/#initfs] with a telnet or ssh server installed. I'll suppose that a telnet server is used:

* Boot Nxx0 and start the telnet/ssh server
* Connect USB cable to PC
* In your Linux PC run:
 modprobe usbnet
 ifconfig usb0 up
 ip addr add dev usb0 192.168.10.2/24
 telnet 192.168.10.1
(where  192.168.10.1 is the IP address of the Nxx0 device and 192.168.10.2 is an IP address in the same subnet to be used by your PC)

* You're now connected. Load required modules for accessing your root partition (not all of them are required):
 insmod /lib/modules/2.6.21-omap1/jbd.ko 
 insmod /lib/modules/2.6.21-omap1/mbcache.ko 
 insmod /lib/modules/2.6.21-omap1/ext2.ko 
 insmod /lib/modules/2.6.21-omap1/ext3.ko

* And mount the root partition (suppose it is /dev/mmcblk0p2):
 mount /dev/mmcblk0p2 /mnt/new_root -t ext3 -o noatime

* Now run:
 cd /mnt/new_root
 mount -obind /tmp /mnt/new_root/tmp
 pivot_root . mnt/initfs
 
 export OSSO_VERSION=$(cat /etc/osso_software_version)
 
* And you're ready to manually boot it:
 cd /etc/init.d
 ./rcS
 ./rc 2

This will do the whole bootup procedure (not exactly, but the interresting part) and you'll be able to watch all bootup messages.

Don't forget that the watchdog will reboot the machine after a some time.

== Reporting reboot issues ==

When reporting strange booting/rebooting issues here is a list of information that is helpful in debugging:

* Output of &lt;code&gt;/proc/bootreason&lt;/code&gt;
* Output of &lt;code&gt;/var/lib/dsme/stats/lifeguard_resets&lt;/code&gt;
* Application running when the reboot occurred
* State of device - idle with cover, idle without cover, turned off, in use, etc.
* Mode of device - R&amp;D or production mode
* &lt;code&gt;dmesg&lt;/code&gt; after a successful boot. This will show whether the OOM (out of memory) killer is reaping processes.

&lt;code&gt;/proc/bootreason&lt;/code&gt; can have the following values:
 pwr_key 	Power key was pressed to switch on device
 32wd_to 	Watchdog reset - something was consuming too much CPU causing a watchdog reset, or kernel crashed
 sw_rst 	Software reset (critical system application crashing or being killed by the kernel OOM-killer)
 rtc_alarm 	An alarm woke up the device

You need to install XTerm or [[SSH]] to get a console. Then use &lt;code&gt;cat&lt;/code&gt; to get the contents of a particular file.

You can create a &lt;code&gt;core-dumps&lt;/code&gt; directory on the internal flash card, then crashing applications will leave core files in it. Use &lt;code&gt;file core.*&lt;/code&gt; to find out the name of the crashed application. In theory, you can use &lt;code&gt;gdb&lt;/code&gt; to get the stack trace, but without debug symbols it wont be any use. If you copy &lt;code&gt;*.core&lt;/code&gt; files to your Linux PC you can use &lt;code&gt;gdb&lt;/code&gt; see what program crashed, use &lt;code&gt;gdp -core core.xxxx&lt;/code&gt; where &lt;code&gt;xxxx&lt;/code&gt; is the number of the file.

And finally, file [http://bugs.maemo.org bugs] against the problem applications!

[[Category:N8x0]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Troubleshooting menu issues</title>
    <id>1553</id>
    <revision>
      <id>21448</id>
      <timestamp>2009-11-01T12:05:53Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <text xml:space="preserve">'''If all your application menu icons and programs disappeared after installing a new app''', check that the space on your root filesystem has not been (almost) completely filled. You can see the remaining space by opening an xterm window and issuing the command

 df -h

Check the output line where the column &quot;Mounted on&quot; corresponds to &quot;/&quot;. If that partition has been used by 99% or 100%, chances are your menu has disappeared for this reason.

The next thing is to free some space. Most likely, you will be able to get rid of some multimedia files in /home/user/MyDocs/.images or /home/user/MyDocs/.sounds - but check also .documents and .videos. 

After this step, the right command to see your menu again will be 

 cp /etc/xdg/menus/applications.menu /home/user/.osso/menus/ ; update-desktop-database

NOTE: this must be issued as root. You have a root enabling package installed, haven't you? See [[Root access]] for details.

After that, you'll have a menu again. Though, it will be quite messed, and the majority of items will be in the Extras menu: you'll have to exercise your patience by tiding it all again. The quickest way is going to the Control Panel, into the Panels submenu, where you'll be able to move all those applications from Extras to other cathegories, or create/modify/cancel the submenus.

Thanks for this tip to Faheem (qwerty12 on internettablettalk.com forums).

[[Category:Users]]


[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Tutorials</title>
    <id>3085</id>
    <revision>
      <id>37594</id>
      <timestamp>2010-08-08T07:43:18Z</timestamp>
      <contributor>
        <username>reflektorfalke</username>
        <id>3210</id>
      </contributor>
      <minor/>
      <comment>/* Bluetooth and USB Networking */ Added link to Bluetooth PBAP</comment>
      <text xml:space="preserve">There are dozens of tutorials in the Maemo wiki on subjects ranging from [[USB networking | sharing a network connection from your device over USB]] to [[accessing Windows CIFS | accessing network file shares]]. This page will keep track of these as we collect them, grouped by category.

== Applications ==

* [[Extras]]
* [[Installing applications]]
** [[Package management|Advanced package management]]
* [[Easy Debian]]
* [[Application menu]]
* [[Personal Menu tips and tricks]]
* [[Seamless Software Update]]
* [[Remote desktop | Viewing a remote desktop on the device]]
* [[Services | System services available on Maemo]]
* [[Keep a safe copy of your favorite applications]]
* [[Digital compass | Using your device as a digital compass]]
* [[Install PC Connectivity on a 64 bit host]]
* [[Showing album art in the Media Player]]
* [[Adding holidays to Calendar]]

== The Internet ==
* [[Ad blocking]]
* [[MicroB tweaks]]
* [[Location bar tricks]]

== Audio and Video ==
* [[Customizing sounds]]
* [[Bluetooth stereo audio with XMMS]]
* [[Playing OGG files]]
* [[Manual video encoding]]
* [[Streaming video from built-in webcam]]
* [[Streaming with MythTV]]
* [[Recording phonecalls]]

== File systems, back-ups and security ==
* [[Manual backup and restore]]
* [[Resetting the device to factory defaults]]
* [[Partitioning a flash card]]
* [[Swap on microSD]]
* [[Accessing Windows CIFS]]
* [[Setting up NFS]]
* [[Sync]]

== Bluetooth and USB Networking ==
* [[Bluetooth]]
* [[Bluetooth PAN]]
* [[USB networking]]
* [[USB to ethernet networking]]
* [[Bluetooth_PBAP]]

== Boot ==
* [[Advanced booting]]
* [[Troubleshooting boot issues]]
* [[Booting from a flash card]]

== Hardware ==
* [[Batteries]]
* [[Bluetooth HID | Getting Blueooth input devices working]]
* [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5| Reflashing your device]]
* [[Using touch screen pressure data]]

== Customization ==
* [[Special characters view | Special characters view / symbol table (Fn+Ctrl)]]
* [[Remapping keyboard | Remapping the keyboard]]

[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>UPVNET2G</title>
    <id>4742</id>
    <revision>
      <id>41907</id>
      <timestamp>2011-02-20T03:02:59Z</timestamp>
      <contributor>
        <username>sebas</username>
        <id>1517</id>
      </contributor>
      <minor/>
      <comment>/* Video tutorial */</comment>
      <text xml:space="preserve">== Motivation ==

UPVNET2G is a wifi network located at the Polytechnic University of Valencia. So this wiki is going to be really useful for people working or studying at UPV, but it may also be useful for anyone trying to access any wifi network with WPA2.

The following is the information (in Spanish) given at the website of the UPV: 
[http://www.upv.es/pls/oalu/sic_miweb2.MicroWeb?p_ver=NORMAL&amp;P_IDWEB=497097&amp;P_VISTA=&amp;P_IDIOMA=C&amp;p_id=714124&amp;p_verids= INFOACCESS]

''La red inalámbrica UPVNET2G permite conectar un equipo WiFi a la red de la UPV de manera rápida y directa, ofreciéndole acceso a Internet y a los y recursos informáticos propios de esta universidad. Los requisitos son dos: que su equipo disponga de una tarjeta inalámbrica 802.11b u 802.11g con tecnología WPA, y que su sistema operativo soporte el estandar 802.1x (Microsoft Windows XP SP2 lo soporta y hay actualizaciones para Windows 2000. También los sistemas operativos Linux y MAC OS X.). La velocidad máxima de conexión es de 54Mbps desde distancias muy cercanas al punto de acceso. A diferencia de la red inalámbrica UPVNET, no necesita la creación posterior de un túnel VPN para acceder a los servicios de la red. Desde el punto de vista de la seguridad, la autenticación se basa en el estándar 802.1x y el cifrado de datos en WPA2. Técnicamente hablando, el cifrado se realiza mediante AES y la autenticación del usuario mediante PEAP, utilizándose certificados para garantizar la identidad de los servidores RADIUS. Una vez el usuario se valide mediante su usuario y contraseña, estará autorizado para acceder a la red y dispondrá de una dirección IP pública con la que se puede navegar directamente por Internet, si bien su equipo no podrá ofrecer ningún servicio público a Internet.''

== Video Tutorial ==

In the following link there's a video tutorial showing how to configure your Nokia N900 to set up a wifi connection to UPVNET2G:

:[http://www.youtube.com/watch?v=Ow8FJRKT3Cw How to connect N900 to UPVNET2G]

== Further Questions ==

If you have further questions, do not hesitate to place the question here in this section, and it will be answered in short.

You may also ask for help sending me an [mailto:n900@academia-online.org  e-mail]

[[Category:WiFi]]
[[Category:HowTo]]</text>
    </revision>
  </page>
  <page>
    <title>URL Handler</title>
    <id>2364</id>
    <revision>
      <id>39611</id>
      <timestamp>2010-10-19T14:20:42Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">The main purpose of the wiki page is to describe the way to register an application as URL handler. The idea is, that an application test would be launched by using the url: test://foo Therefore it provides:
* Description of the Hildon URI API
* Step-by-step example based on the implementation of Cornelius Hald

== Hildon URI API ==

The most updated revision of the API is revision 2, but it bases on the first revision. So please take both documents into account. The API descriptions, with some examples you will find here:

Up to date revision:
: '''[[/API_rev2|Hildon URI API, revision 2]]'''
Revision 2 is based on:
: '''[[/API_rev1|Hildon URI API, revision 1]]'''

This information might be needed to understand the following example.

== Example ==

The example is based on a discussion in [http://talk.maemo.org/showthread.php?t=30772 talk.maemo.org] and gives an overview of the result of the discussion. Conboy is used as an example application, with the goal to create an URL handler for &quot;conboy://&quot;. The following steps has to be taken:

* '''Modification of the .desktop file'''
:Add a X-Osso-URI-Actions line to the Desktop Entry group and add a X-Osso-URI-Action Handler group. For example:
&lt;pre&gt;
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=Conboy
Exec=@prefix@/bin/conboy
Icon=conboy
X-Window-Icon=conboy
X-Window-Icon-Dimmed=conboy
X-Osso-Service=de.zwong.conboy
X-Osso-Type=application/x-executable
X-Osso-URI-Actions=conboy

[X-Osso-URI-Action Handler conboy]
Method=load_url
Name=some_name
TranslationDomain=conboy
&lt;/pre&gt;
:'''Important:''' Set a value for all three keys ('Method', 'Name' and 'TranslationDomain') otherwise it won't work. Still, the only value of these that you get passed to your callback function is the value of 'Method'.

* '''Update the changes in your .desktop file:'''

 update-desktop-database

* '''Implement a callback in your code:'''
&lt;source lang=&quot;c&quot;&gt;
gint dbus_handler(const gchar *interface,
                        const gchar *method,
                        GArray *arguments,
                        gpointer data,
                        osso_rpc_t *retval);
&lt;/source&gt;
* '''Register the callback:'''
&lt;source lang=&quot;c&quot;&gt;
if (osso_rpc_set_cb_f(osso_context,
       &quot;de.zwong.conboy&quot;,
       &quot;/de/zwong/conboy&quot;,
       &quot;de.zwong.conboy&quot;,
       dbus_handler,
       NULL) != OSSO_OK) {
   g_printerr(&quot;Failed to set callback\n&quot;);
}
&lt;/source&gt;
* '''Call it from the browser:'''
:Now lets assume in the browser we click on the following link:  
 conboy://1234567 

:In this case the application is started and the provided callback is called with the following parameters.

 interface = &quot;de.zwong.conboy&quot;
 method = &quot;load_url&quot;
 first element of arguments = &quot;conboy://1234567&quot;

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>URL Handler/API rev1</title>
    <id>2366</id>
    <revision>
      <id>42798</id>
      <timestamp>2011-03-23T13:56:04Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">{{out of date}}

This document describes the first revision of the &lt;code&gt;hildon_uri_*&lt;/code&gt; API that was added in IT-2007. It has been revised and expanded in rev 2, see [[URL Handler/API rev2|API revision 2]] for information about that.

The API brings functionality for actions to be performed based on the scheme in the URI, such as &quot;http&quot; or &quot;callto&quot;. There can be one or more actions for a scheme, and a default action for each scheme.

This setup closely follows the &lt;code&gt;hildon_mime_*&lt;/code&gt; API setup, and the Freedesktop standard for desktop files is reused here as well.
 
This is be done by adding custom sections to the desktop files, listing the URI actions for the application. This has the advantage that applications already have the build and Debian packaging mechanisms in place.

Make sure to read the desktop entry [http://standards.freedesktop.org/desktop-entry-spec/latest/ specification]

The utility &lt;code&gt;update-desktop-database&lt;/code&gt; from desktop-file-utils is used to handle the new fields that have been added.

== Desktop file format ==

See the following example:

 [Desktop Entry]
 Version=1.0
 Type=Application
 Encoding=UTF-8
 Name=Instant messenger
 Comment=Talk to your friends
 Icon=im.png
 X-Osso-Service=com.nokia.im
 X-Osso-URI-Actions=callto;jabber;msn;

 [X-Osso-URI-Action Handler callto]
 Method=call_to
 Name=call_this_contact
 TranslationDomain=some_app 
 
 [X-Osso-URI-Action Handler jabber]
 Method=jabber_chat
 Name=send_message
 TranslationDomain=some_app 

 [X-Osso-URI-Action Handler msn]
 Method=msn_chat
 Name=send_message
 TranslationDomain=some_app

The X-Osso-URI-Actions key in the [Desktop Entry] specifies the available actions that the application provides. Then for each action there is a corresponding groups, that specifies the properties of that action.

The keys are:
* '''Method:''' the D-Bus method to call on the service
* '''Name:''' the name of the action
* '''TranslationDomain:''' the translation domain to use when translating the name

== Default action ==

Just like for the MIME open functionality in upstream GNOME and in Maemo, there is a way to specify which application is the default if there are many that support the same URI scheme. The defaults file is located in $(prefix)/share/applications/uri-action-defaults.list.


== Updating the desktop database ==

The 'update-desktop-database' command parses all the *.desktop files pointed to and generates a cache for them to speed up the lookup. This generation is usually done in the post-inst phase in a Debian package, in addition to &quot;make install&quot; in the makefile target:

  update-desktop-database $prefix/share/applications

Note that the update-desktop-database tool in Maemo has been patched to generate the cache for the added data. An example of a cache file, that resides in $(prefix)/share/applications: 

 [X-Osso-URI-Action Cache]
 callto=im.desktop;gossip.desktop;gaim.desktop;
 http=browser.desktop
 https=browser.desktop

== Implementation details ==

When activating an action, the corresponding desktop file is used to lookup the D-Bus message and service name. The message is sent to the service. The arguments to the message consist of a an array of strings, which are the URIs passed. Note that the current implementation only sends one URI in the array, since the API only allows for one.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>URL Handler/API rev2</title>
    <id>2365</id>
    <revision>
      <id>39614</id>
      <timestamp>2010-10-19T16:21:27Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* Example */</comment>
      <text xml:space="preserve">This document describes the second revision of the &lt;code&gt;hildon_uri_*&lt;/code&gt; API that was added in rev 2. Please see [[URL Handler/API rev1|revision 1 of the API]] for the background and also information about the basic file format used.

Make sure to read the desktop entry [http://standards.freedesktop.org/desktop-entry-spec/latest/ specification].

The utility &lt;code&gt;update-desktop-database&lt;/code&gt; from desktop-file-utils is used to handle the new fields that have been added.

== Backwards compatibility ==

This new version of the framework is still compatible with the older version. This means that the old format for URI action in desktop files can still be used. See the rev1 for information about that.

The code uses the existance of the new key 'X-Osso-URI-Actions' in the [Desktop Entry] group. If the key is missing, the file is interpreted using the old format, otherwise using the new format. It is an error to mix those two versions of the format in the same file.

== Changes to the format ==

The previous framework only had a way to handle URIs based on the scheme, not MIME type. One application would handle callto:// URIs, one http://, etc. The new version has been extended to add support for mapping the scheme and MIME type pair to an action. Each application can implement one or more actions.

To support this, the desktop file format for actions has been changed. A new group, [X-Osso-URI-Actions], is used to list all the available actions, and their corresponding schemes. This is added to a normal desktop file, that is, you still need to regular [Desktop Entry] group. An example:

 [Desktop Entry]
 &lt;... regular desktop file keys ...&gt;

  [X-Osso-URI-Actions]
  http=X-Osso-URI-Action-Add-Bookmark;X-Osso-URI-Action-Open-Browser;X-Osso-URI-Action-Open-Media;
  ftp=X-Osso-URI-Action-Open-Browser;

  [X-Osso-URI-Action-Add-Bookmark]
  Type=Neutral
  MimeType=text/html;...;
  Name=Add Bookmark
  X-Osso-Service=com.nokia.browser
  Method=add_bookmark
  TranslationDomain=browser

  [X-Osso-URI-Action-Open-Browser]
  &lt;... another action described here...&gt;

As you can see, first in the [X-Osso-URI-Actions] group, each scheme supported by the application is listed as a key, and is associated with a list of actions. Each action is then listed as a separate group with the details for the action.

The keys used in each action group are:
* '''Type:''' specifes the type of the action
* '''MimeType:''' lists the MIME types handled by this action
* '''Name:''' the name of the action
* '''X-Osso-Service:''' the D-Bus service name to call when performing the action
* '''Method:''' the D-Bus method to call
* '''TranslationDomain:''' the translation domain to use when translation the name

The keys 'Type', 'X-Osso-Service', 'MimeType', and 'TranslationDomain' are optional.

The keys 'X-Osso-Service' and 'MimeType' are both inherited from the regular [Desktop Entry] group, which means that if you don't specify them in the action group, the values used in the [Desktop Entry] group will be used. If you specify them, the values will override the ones from the [Desktop Entry] group.

The key 'Type' can be one of three values:
* '''Normal:''' the default if 'Type' is not specified
:A Normal action is the default, and means that the action is mapped to a pair of scheme and MIME type, for example &quot;http&quot; AND &quot;image/png&quot;. This type of action will be listed when you ask for actions for a URI that matches the exact pair.

* '''Neutral:''' the action applies to ALL mime types, even if none is given
:A Neutral action means that it is MIME type neutral, and the action applies to any URI that has the right scheme. Note: this corresponds to the &quot;URI actions&quot; from the older revision of this system, since only the scheme is used to get the actions.

* '''Fallback:''' the action applies only when the MIME type is unknown
:A Fallback action means that the action applies only when no other action could be found. Currently there is only one intended usecase for this, the &quot;Save Target As...&quot; kind of action in a browser.

== Default actions ==

The &lt;code&gt;uri-default-action.list&lt;/code&gt; format as described on the rev-1 fie has been extended as well, but also remains compatible so older files will still work. It now looks like this:

  [X-Osso-URI-Scheme &lt;scheme&gt;]
  &lt;MIME type&gt;=&lt;desktop file&gt;:&lt;action name&gt;
	
:An example of the new and old formats together would look like:

  # For supporting older actions
  [Default Actions]
  https=hildon-browser.desktop;

  # For new actions
  [X-Osso-URI-Scheme http]
  image-png=hildon-browser.desktop:X-Osso-URI-Action-Open
  image-jpeg=hildon-image-viewer.desktop:X-Osso-URI-Action-Open

:As you can see, the MIME type needs to have the slashes ('/') replaced by dashes ('-') to comply with the keyfile format that is used.

:In addition to this, any fallback actions will use the old [Default Actions] group because you only know the scheme in that case, since the MIME type is unknown. To make sure that this doesn't break existing defaults files, the action name can be added to the end of the desktop file filename, for example:
 
  [Default Actions]
  &lt;scheme&gt;=&lt;desktop file&gt;:&lt;action name&gt; 

:This means it would look like this:

  [Default Actions]
  http=test/browser.desktop:X-Osso-URI-Action-Fallback

  [X-Osso-URI-Scheme http]
  image-gif=test/osso-addressbook.desktop:X-Osso-URI-Action-Add-Bookmark

:The added action name can be left out, when referring to old format desktop files, of course, since they don't have the notion of action names.

== Example ==

Here we have some made up examples, first showing files using the older URI action format, then the new one.

Old format VOIP desktop file:

  [Desktop Entry]
  Encoding=UTF-8
  Version=1.0
  Type=Application
  Name=voip_ap_feature_name
  Comment=voip_ap_feature_name_thumb
  Exec=/usr/bin/osso-voip-ui
  Icon=qgn_list_voip
  X-Osso-Service=osso_voip_ui
  X-Osso-Type=application/x-executable
  X-Osso-URI-Actions=voipto;callto;videovoip
  
  [X-Osso-URI-Action Handler voipto]
  Method=voip_to
  Name=tana_fi_new_call
  TranslationDomain=osso-contact-plugin
  
  [X-Osso-URI-Action Handler callto]
  Method=voip_to
  Name=tana_fi_new_call
  TranslationDomain=osso-contact-plugin
  
  [X-Osso-URI-Action Handler videovoip]
  Method=video_voip
  Name=tana_fi_new_call
  TranslationDomain=osso-contact-plugin


:New format VOIP desktop file:

  [Desktop Entry]
  Encoding=UTF-8
  Version=1.0
  Type=Application
  Name=voip_ap_feature_name
  Comment=voip_ap_feature_name_thumb
  Exec=/usr/bin/osso-voip-ui
  Icon=general_application_call
  X-Osso-Service=osso_voip_ui
  X-Osso-Type=application/x-executable
  	
  [X-Osso-URI-Actions]
  voipto=X-Osso-URI-Action-Voip-To;
  callto=X-Osso-URI-Action-Voip-To;
  videovoip=X-Osso-URI-Action-Video-Voip-To;
  
  [X-Osso-URI-Action-Voip-To]
  Method=voip_to
  Name=tana_fi_new_call
  TranslationDomain=osso-contact-plugin
  
  [X-Osso-URI-Action-Video-Voip-To]
  Method=video_voip
  Name=tana_fi_new_call
  TranslationDomain=osso-contact-plugin


:Old format address book desktop file:

  [Desktop Entry]
  Encoding=UTF-8
  Version=1.0
  Type=Application
  Name=addr_ap_address_book
  Comment=addr_ap_address_book_thumb
  Exec=/usr/bin/osso-addressbook
  X-Osso-Service=osso_addressbook
  Icon=qgn_list_addressbook
  StartupWMClass=osso-addressbook
  X-Osso-URI-Actions=mailto;xmpp;sipto;
  MimeType=text/x-vcard
  	
  [X-Osso-URI-Action Handler mailto]
  Method=add_account
  Name=addr_me_cs_addtocontacts
  TranslationDomain=osso-addressbook
  
  [X-Osso-URI-Action Handler xmpp]
  Method=add_account
  Name=addr_ap_address_book
  TranslationDomain=osso-addressbook
  	
  [X-Osso-URI-Action Handler sipto]
  Method=add_account
  Name=addr_ap_address_book
  TranslationDomain=osso-addressbook


:New format address book desktop file:

  [Desktop Entry]
  Encoding=UTF-8
  Version=1.0
  Type=Application
  Name=addr_ap_address_book
  Comment=addr_ap_address_book_thumb
  Exec=/usr/bin/osso-addressbook
  X-Osso-Service=osso_addressbook
  Icon=general_contacts
  StartupWMClass=osso-addressbook
  MimeType=text/x-vcard
  	
  [X-Osso-URI-Actions]
  mailto=X-Osso-URI-Action-Add-Contact;
  xmpp=X-Osso-URI-Action-Add-Account;
  sipto=X-Osso-URI-Action-Add-Account;
  
  [X-Osso-URI-Action-Add-Contact]
  Method=add_account
  Name=addr_me_cs_addtocontacts
  TranslationDomain=osso-addressbook
  	
  [X-Osso-URI-Action-Add-Account]
  Method=add_account
  Name=addr_ap_address_book
  TranslationDomain=osso-addressbook


:Old format browser desktop file:

  [Desktop Entry]
  Encoding=UTF-8
  Version=0.1
  Type=Application
  Name=weba_ap_web_browser
  Comment=weba_ap_web_browser_thumb
  Exec=/usr/bin/browser
  Icon=qgn_list_browser
  X-Window-Icon=qgn_list_browser
  X-Window-Icon-Dimmed=qgn_list_browser
  X-Osso-Service=osso_browser
  X-HildonDesk-ShowInToolbar=true
  X-Osso-Type=application/x-executable
  MimeType=text/html;text/css;text/sgml;text/x-dtd;application/x-javascript;image/gif;image/jpeg;image/png;image/vnd.wap.wbmp;image/pjpeg;image/bmp;image/x-windows-bmp;image/x-ms-bmp;image/xbm;image/ico;image/x-ico;image/x-xbitmap;text/plain;application/x-shockwave-flash;
  X-Osso-URI-Actions=http;https;ftp;file;
  
  [X-Osso-URI-Action Handler http]
  Method=load_url
  Name=uri_link_open_link
  TranslationDomain=osso-uri
  	
  [X-Osso-URI-Action Handler https]
  Method=load_url
  Name=uri_link_open_link
  TranslationDomain=osso-uri
  	
  [X-Osso-URI-Action Handler ftp]
  Method=load_url
  Name=uri_link_open_link
  TranslationDomain=osso-uri
  	
  [X-Osso-URI-Action Handler file]
  Method=load_url
  Name=uri_link_open_link
  TranslationDomain=osso-uri

:New format browser desktop file (with new &quot;neutral&quot; and &quot;fallback&quot; features):

  [Desktop Entry]
  Encoding=UTF-8
  Version=0.1
  Type=Application
  Name=weba_ap_web_browser
  Comment=weba_ap_web_browser_thumb
  Exec=/usr/bin/browser
  Icon=general_web
  X-Window-Icon=general_web
  X-Window-Icon-Dimmed=general_web
  X-Osso-Service=osso_browser
  X-HildonDesk-ShowInToolbar=true
  X-Osso-Type=application/x-executable
  MimeType=text/html;text/css;text/sgml;text/x-dtd;application/x-javascript;image/gif;image/jpeg;image/png;image/vnd.wap.wbmp;image/pjpeg;image/bmp;image/x-windows-bmp;image/x-ms-bmp;image/xbm;image/ico;image/x-ico;image/x-xbitmap;text/plain;application/x-shockwave-flash;
  
  [X-Osso-URI-Actions]
  http=X-Osso-URI-Action-Open;X-Osso-URI-Action-Save;X-Osso-URI-Action-Fallback
  https=X-Osso-URI-Action-Open;X-Osso-URI-Action-Save;X-Osso-URI-Action-Fallback
  ftp=X-Osso-URI-Action-Open;X-Osso-URI-Action-Save;X-Osso-URI-Action-Fallback
  file=X-Osso-URI-Action-Open;X-Osso-URI-Action-Save;X-Osso-URI-Action-Fallback;
  
  [X-Osso-URI-Action-Open]
  Method=load_url
  Name=uri_link_open_link
  TranslationDomain=osso-uri
  
  [X-Osso-URI-Action-Save]
  Type=Neutral
  Method=save_url
  Name=uri_link_save_link
  TranslationDomain=osso-uri
  
  [X-Osso-URI-Action-Fallback]
  Type=Fallback
  Method=load_url_fallback
  Name=uri_link_open_link_fallback
  TranslationDomain=osso-uri


:Old format media player desktop file:

  [Desktop Entry]
  Encoding=UTF-8
  Version=1.0
  Type=Application
  Name=medi_ap_mediaplayer_name
  Exec=/usr/bin/mediaplayer-ui
  Icon=qgn_list_medi
  X-Icon-path=/usr/share/pixmaps/
  X-Window-Icon=tn-bookmarks-link
  X-Window-Icon-Dimmed=tn-bookmarks-link-dimmed
  X-HildonDesk-ShowInToolbar=true
  X-Osso-Service=mediaplayer
  X-Osso-Type=application/x-executable
  X-Osso-URI-Actions=rtsp
  MimeType=video/x-msvideo;audio/x-mp3;video/mpeg;audio/x-wav;audio/x-real;video/x-real;audio/x-m4a;audio/x-amr;video/x-mp4;video/3gpp;audio/x-mp2;audio/x-ms-wma;audio/x-mpegurl;audio/x-scpls;audio/x-pn-realaudio;audio/x-pn-realaudio-plugin;video/x-ms-asf;audio/x-ms-wax;video/x-ms-wvx;application/vnd.ms-wpl;audio/mp3;video/avi;audio/wav;audio/mpeg;
  Comment=medi_ap_mediaplayer_name_thumb
  
  [X-Osso-URI-Action Handler rtsp]
  Method=mime_open
  Name=medi_ap_mediaplayer_name
  TranslationDomain=mediaplayer


:New format media player desktop file:

  [Desktop Entry]
  Encoding=UTF-8
  Version=1.0
  Type=Application
  Name=medi_ap_mediaplayer_name
  Exec=/usr/bin/mediaplayer-ui
  Icon=tasklaunch_media_player
  X-Icon-path=/usr/share/pixmaps/
  X-Window-Icon=tn-bookmarks-link
  X-Window-Icon-Dimmed=tn-bookmarks-link-dimmed
  X-HildonDesk-ShowInToolbar=true
  X-Osso-Service=mediaplayer
  X-Osso-Type=application/x-executable
  MimeType=video/x-msvideo;audio/x-mp3;video/mpeg;audio/x-wav;audio/x-real;video/x-real;audio/x-m4a;audio/x-amr;video/x-mp4;video/3gpp;audio/x-mp2;audio/x-ms-wma;audio/x-mpegurl;audio/x-scpls;audio/x-pn-realaudio;audio/x-pn-realaudio-plugin;video/x-ms-asf;audio/x-ms-wax;video/x-ms-wvx;application/vnd.ms-wpl;audio/mp3;video/avi;audio/wav;audio/mpeg;
  Comment=medi_ap_mediaplayer_name_thumb
  
  [X-Osso-URI-Actions]
  rtsp=X-Osso-URI-Action-Open;
  
  [X-Osso-URI-Action-Open]
  Method=mime_open
  Name=medi_ap_mediaplayer_name
  TranslationDomain=mediaplayer

==Implementation details==

The schemeinfo.cache file that is a cache for faster lookups, remains unchanged from the old revision. It is used to make scheme-&gt;desktop file lookups.

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>USB</title>
    <id>1145</id>
    <revision>
      <id>35176</id>
      <timestamp>2010-05-31T22:06:24Z</timestamp>
      <contributor>
        <ip>83.31.50.107</ip>
      </contributor>
      <comment>/* Host mode */  Updated information about N900 and host mode</comment>
      <text xml:space="preserve">Maemo devices come equipped with a USB port that will allow you to connect your device to your computer for flashing the device, mounting the memory cards, and use USB networking. N800 and N810 can use USB host mode to connect USB peripherals to your tablet. N900 also uses the USB port for charging.

(Host mode on the N900 is [[N900_Hardware_USB_Host|being developed by users]]).

== Flashing ==
{{main|Updating the firmware}}
The USB port can be used for flashing a new OS image onto the device.

== Host mode ==
{{main|USB host mode}}
N800 and N810 are able to function in either client or host-mode. Host-mode will allow you to use USB peripherals like keyboards, flash drives, card readers, external hard drives, and external [[USB CDROM|CD drives]] with your tablet. N900 also can be used in USB host-mode. [[N900_Hardware_USB_Host | Look here]].

== Networking ==
{{main|USB networking}}
USB networking allows you to use the device's USB port to connect to a computer and network with that computer over USB. This can provide you with an internet connection for your device in environments without Wi-Fi or cellular access.

[[Category:Users]]
[[Category:Connectivity]]
[[Category:USB]]

[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>USB CDROM</title>
    <id>1134</id>
    <revision>
      <id>28803</id>
      <timestamp>2010-02-10T14:00:10Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify, tidy</comment>
      <text xml:space="preserve">== Purpose ==
To be able to mount a USB CDROM drive on a tablet running OS 2008.

== How TO ==

# Download the modules: http://penguinbait.com/modules.tar
# Load the modules: &lt;pre&gt;insmod cdrom.ko&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;insmod sg.ko&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;insmod sr_mod.ko&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;insmod udf.ko&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;insmod isofs.ko&lt;/pre&gt;
# Plug in a USB CDROM
# Use (or where ever you want to mount it)&lt;br /&gt;&lt;pre&gt;mount /dev/scd0 /root/mnt -t iso9660&lt;/pre&gt;&lt;br/&gt;or&lt;br/&gt;&lt;pre&gt;mount /dev/scd0 /root/mnt -t udf&lt;/pre&gt;

[[Category:USB]]
[[Category:OS2008]]
[[Category:Power users]]
[[Category:HowTo]]</text>
    </revision>
  </page>
  <page>
    <title>USB Ethernet and Host Mode</title>
    <id>5276</id>
    <revision>
      <id>50174</id>
      <timestamp>2012-10-14T13:54:28Z</timestamp>
      <contributor>
        <username>stuart23</username>
        <id>4177</id>
      </contributor>
      <text xml:space="preserve">== USB Ethernet And Host Mode ==

=== h-e-n ===

The Apple A1277 Ethernet Adapter works for about 3 hours when powered by a N900 starting with a full battery using h-e-n. [[Users:stuart23]]</text>
    </revision>
  </page>
  <page>
    <title>USB GPRS</title>
    <id>889</id>
    <revision>
      <id>42915</id>
      <timestamp>2011-04-03T06:34:13Z</timestamp>
      <contributor>
        <username>jcharpak</username>
        <id>1064</id>
      </contributor>
      <comment>corrected urls</comment>
      <text xml:space="preserve">This guide covers using external USB 3G HSDPA GPRS modems with Maemo Diablo.

== Steps ==

# Enable [[USB host mode]].
# Get a powered USB hub.
# Connect the hub to your tablet.
# Connect your modem to the USB hub.
# Get the SCSI kernel module from [http://fanoush.wz.cz/maemo/modules-diablo-2.6.21-200842maemo1.tar.gz Fanoush's kernel modules] (the &lt;code&gt;/drivers/scsi/sg.ko&lt;/code&gt; file in the archive).
# Load the SCSI generic Linux kernel module. [[root access|As root]]:&lt;pre&gt;insmod sg.ko&lt;/pre&gt;

== Option HSDPA Modem ==

# Compile the &quot;HSO&quot; Option Modem kernel module (Greg Kroah-Hartman is in the process of integrating the kernel module into the mainline kernel, but check [http://www.pharscape.org/component/option,com_forum/Itemid,68/page,viewtopic/t,445/ HSO] in the meantime or use this [http://www.scratchpost.org/software/Nokia/N8x0/Modem/ working directory] which includes compiled modules).
# Compile the [http://www.pharscape.org/component/option,com_forum/Itemid,68/page,viewtopic/t,425/ Rezero] Option mode switch application.
# Run the Option mode switch application.&lt;pre&gt;./rezero /dev/sg0&lt;/pre&gt;
# Load the &quot;HSO&quot; kernel module.&lt;pre&gt;insmod hso.ko&lt;/pre&gt;
# Edit the &lt;code&gt;connect.sh&lt;/code&gt; script (from HSO) to actually ''do'' the changes in the routing table.
# Run the &lt;code&gt;connect.sh&lt;/code&gt; script.&lt;pre&gt;./connect.sh up&lt;/pre&gt;
# or use debian packages there: [[http://scratchpost.dreamhosters.com/software/Nokia/N8x0/Modem/DEB/]].
# Enjoy!

== TODO ==

* Use the udev script to automate the loading when the device is plugged (both for &quot;rezero&quot; and for &quot;HSO&quot;).

[[Category:Connectivity]]
[[Category:Cellular]]
[[Category:USB]]
[[Category:Power users]]
[[Category:Diablo]]</text>
    </revision>
  </page>
  <page>
    <title>USB host mode</title>
    <id>1118</id>
    <revision>
      <id>40500</id>
      <timestamp>2010-12-05T20:12:07Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">''Note: This is '''about pre-N900 devices''', i.e. OS2008. The '''N900''' does not support full OTG, but '''has a hostmode''' that's quite a bit different to that of older devices. See [http://talk.maemo.org/showthread.php?t=31921 discussion] for details, implementation of [http://talk.maemo.org/showthread.php?p=866309#post866309 h-e-n], as well as [[N900_Hardware_USB| usb on the n900]]''

USB host mode allows you to connect various USB devices (external hard drives, digital cameras, card readers, input devices, etc.) to your device just like a regular computer. There are, however, a few limitations. The device must draw under 100mA (this can be bypassed by using a powered hub), and you will need a hardware adaptor to plug a fullsize USB cable into the tablet's undersized one.


== USB On-The-Go ==

The USB port on the tablets is a [http://en.wikipedia.org/wiki/USB_On-The-Go USB OTG], this means that they can be switched between client- (where you plug the tablet into a computer—for flashing and mounting cards on the computer), and host- (where the tablet acts like a computer) mode with the correct hardware adaptor.

You can find a USB OTG adapter designed specifically for the [http://www.electronicproductonline.com/catalog/product_info.php?products_id=1781 N800] and the [http://www.electronicproductonline.com/catalog/product_info.php?cPath=35_67&amp;products_id=2004 N810] (N810 owners will need to buy both adaptors until a custom N810 adaptor is manufactured). These OTG adaptors will automatically switch the tablet into host-mode when plugged in.

You can also buy a &quot;dumb&quot; adapter that will provide the correct connections, but will not automatically switch the tablet into host-mode from most online and some in-store retailers. Then you can simply switch into host-mode manually.

== Switching modes with software ==

There are two options for switching between client- and host-mode in software. If you want to switch modes using a statusbar application, install the [https://garage.maemo.org/projects/usb-otg-plugin/ usb-otg-plugin], if you prefer to use a separate application for switching modes, then install [http://maemo.org/downloads/product/OS2008/usbcontrol/ USB Control]. Both pieces of software accomplish the same thing, they just provide slightly different interfaces to do it.

== Switching modes manually ==

To manually switch USB modes, you must first have [[Root_access#rootsh|rootsh]] installed, then open xterm and type:
 sudo gainroot
 echo host &gt; /sys/devices/platform/musb_hdrc/mode

The tablet will then be in host-mode and you can use your USB peripherals. To set the tablet back to client mode, open xterm again and type:
 echo otg &gt; /sys/devices/platform/musb_hdrc/mode


[[Category:Users]]
[[Category:USB]]

[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>USB networking</title>
    <id>108</id>
    <revision>
      <id>37990</id>
      <timestamp>2010-08-21T20:29:20Z</timestamp>
      <contributor>
        <username>mcow</username>
        <id>1002</id>
      </contributor>
      <comment>removed incorrect &quot;bad link&quot; comment; the link is fine.</comment>
      <text xml:space="preserve">This page describes how the maemo platform can be turned into a [[USB]] network device. The first part describes how to configure the Nokia tablet as a USB pluggable network device. The second part describes how to configure various platforms to use the Nokia tablet as a network device. This article is based loosely on the Maemo 3.x [http://maemo.org/development/documentation/manuals/3-x/howto_usb_networking_bora/ configuring USB networking HOWTO].

You might want to use the tablet as a USB network device to log into your tablet remotely, or to transfer data from your tablet to another computer, in a situation where wifi or bluetooth are not an option. If you wish to connect your tablet to a Linux machine over TCP/IP, the [http://maemo.org/development/documentation/pc_connectivity/ PC connectivity] section in the Maemo SDK documentation also contains useful information.

'''WARNING'''
Currently there is a bug in the g_ether.ko driver of OS2008 (both 4.0.1 and 4.1) which prevents USB networking from working correctly with Windows machines (but not with Linux machines). See [https://bugs.maemo.org/show_bug.cgi?id=3243 bug #3243] for details. The bug was introduced somewhere between kernels 2.6.18 and 2.6.21, so Maemo versions based on 2.6.18 kernels (e.g. OS2007 and earlier) will work.

== USB networking for N900 ==

Please visit [[N900 USB networking]].

== Tablet USB network configuration ==

=== USB statusbar plugin ===

The [http://garage.maemo.org/projects/usb-otg-plugin/ usb-otg-plugin] applet lets you set up USB networking tablet-side, and switch between host and client mode. This is the easy way to do things and no other tablet-side configuration is required.

Alternatively you could try the usb networking applet found here:
  http://repository.maemo.org/extras-devel/pool/diablo/free/m/maemo-control/

=== Behind the scenes ===

In normal circumstances, the USB Mass storage driver had control of the USB hardware. USBNet allows the g_ether network driver to take control of the USB interface.

After installing USB networking, set up a dummy access point by running the following:
 gconftool-2 -s -t string /system/osso/connectivity/IAP/DUMMY/type DUMMY
 gconftool-2 -s -t string /system/osso/connectivity/IAP/DUMMY/name 'Dummy network'
 gconftool-2 -s -t boolean /system/osso/connectivity/IAP/DUMMY/autoconnect true

You should see a &quot;DEFAULT&quot; connection appear in the connection manager.

'''WARNING'''
Currently there is a bug in Diablo that causes DUMMY connections not to show up in connection manager, a semi-official fix is outlined in [https://bugs.maemo.org/show_bug.cgi?id=3306#c23 bug #3306].

=== Starting and stopping USB network mode ===

To easily start &amp; stop USB network mode, place the following script in /etc/init.d/usbnet on your tablet. To do this, you will need [[root access]] to the device.

While switching between modes by running the script, it is important to disconnect the USB cable.

&lt;pre&gt;
#! /bin/sh
#
# Startup script for USBnet (networking, instead of USB Mass Storage behaviour)
# Author: Michael Mlivoncic

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=usbnet
DESC=&quot;USB Networking for Nokia Internet Tablets&quot;
INITFILE=/etc/init.d/$NAME

case &quot;$1&quot; in
start)
        umount /media/mmc1
        umount /media/mmc2
        sleep 2
        USBNET=&quot;`lsmod | grep g_ether`&quot;
        KERNEL_VERSION=&quot;`uname -r`&quot;
        if [ &quot;$USBNET&quot; = &quot;&quot; ]
        then
           echo &quot;Entering Ethernet via USB mode (g_ether)...&quot;
           insmod /mnt/initfs/lib/modules/$KERNEL_VERSION/g_ether.ko
           echo &quot;Waiting, then bringing up the usb0 interface..&quot;
           sleep 1
           /sbin/ifup usb0
        else
          echo &quot;Already in Ethernet-via-USB mode...&quot;
          echo &quot;Try ping 192.168.2.15&quot;
        fi
        ;;
stop)
         echo &quot;switching back to USB Mass Storage mode...&quot;
         echo &quot;removing module g_ether&quot;
         /sbin/ifdown usb0
         sleep 2
         rmmod g_ether
        ;;
*)
        printf &quot;Usage: $INITFILE {start|stop}\n&quot; &gt;&amp;2
        exit 1
        ;;
esac

exit 0
&lt;/pre&gt;
The script needs to have executable permissions, which you can give with 
 sudo chmod a+x /etc/init.d/usbnet

The script is quite basic, but can be run automatically at start-up, or manually using the command:
 sudo /etc/init.d/usbnet [start|stop]
to activate or deactivate USB networking.

There is a default USB network interface configuration on Nokia N800 and 770 tablets. In the file /etc/network/interfaces, you should see a section which looks like this:
&lt;pre&gt;
auto usb0
iface usb0 inet static
       address 192.168.2.15
       netmask 255.255.255.0
       gateway 192.168.2.14
&lt;/pre&gt;

With this default configuration, the tablet interface will have the IP address 192.168.2.15, and the remote end will have the IP address 192.168.2.14.

== Host USB Network Configuration ==

=== Windows ===

====Requirements====

* For Windows 2000, you will need to download [ RNDIS drivers] from Microsoft.
* Download the file &quot;Nokia770 USB Ethernet RNDIS.inf&quot; from [http://homepage.hispeed.ch/mlivoncic/Nokia770%20USB%20Ethernet%20RNDIS.inf here] or [http://homepage.sunrise.ch/mysunrise/mlivoncic/Nokia770%20USB%20Ethernet%20RNDIS.inf here]. This allows to recognise that the RNDIS driver can be used with the Nokia device, and other Linux USB devices.
* [http://appcheck.net.temp.realssl.com/storage/Nokia900%20USB%20Ethernet%20RNDIS.inf Here] is an updated inf that should work on newer (32 or 64) bit Windows. It's not really tested much so please report results on the talk page!
* If you are using an N800, skip all the steps below which apply to the N770; the bora distribution supplies a control panel applet called &quot;maemo-statusbar-usbnet&quot;. Once installed, the control panel &quot;Maemo-DM&quot; will allow you to change the function of the USB port from &quot;MMC emulation&quot; to a RNDIS emulation of a USB ethernet interface. You will also need to set the WinXP side's IP address to be fixed at 192.168.2.14.

==== Preparing the Windows host ====

On Windows 2000, dowload &amp; unpack RNDIS-USB-Kit_05.exe [http://www.microsoft.com/whdc/device/network/NDIS/rndis.mspx on the Microsoft web site]. You need to copy rndismpy.sys (30 KB) and usb8023y.sys (14 KB) from 
 RNDIS USB kit 2005\Drivers\x86fre\sys files
to a folder of your choice, e.g. c:\Drivers\Nokia770_RNDIS. Add &quot;Nokia770 USB Ethernet RNDIS.inf&quot; to the same folder; this will complete your driver set.

When you connect the Nokia to the PC, it will look for a suitable driver. As opposed to the USB mass device mode, Windows will not find a suitable driver by default. Windows supports so-called RNDIS devices, but it does not know that the N770 will act as such. Therefore, we need to instruct it to do so: In the driver dialog, provide the driver's location. Point it to the directory where you previously downloaded the &quot;Nokia770 USB Ethernet RNDIS.inf&quot; (or linux.inf) file. It will show you a driver called ''Linux USB Ethernet/RNDIS Gadget''. Install it.

A new network card with this name will become visible afterwards, which you can configure normally. Set the IP address to 192.168.2.14. Optionally activate ICS (Internet Connection Sharing) on your network adapter to share the outside world with your little Nokia.

=== Linux ===

==== Kernel Configuration ====
You should have the usbnet module available for your Linux kernel. On most distributions, this is the case by default. If this is not the case for your distribution, you will need to enable USB networking support in the kernel.
If you build your own kernel then you want 'CDC Ethernet support' in USB Network adaptors.

&lt;pre&gt;
#
# USB Network Adapters
#
...
CONFIG_USB_USBNET=m
...
CONFIG_USB_NET_CDCETHER=m
...
&lt;/pre&gt;

==== NetworkManager based ====

A recent NetworkManager (at in least Fedora 12 and Ubuntu Karmic Koala) supports Ethernet USB gadgets out-of-the-box. However the 'auto usb0' entry that it creates amongst your connection list is configured for DHCP and the tablet will not provide that, so it will time out.

The easiest/cleanest way to get it to work is probably to create a new connection using the same MAC address as 'auto usb0' has, and then providing a fixed IP address: 192.168.2.14/255.255.255.0 for example, or change settings on the connection created by network-manager.

==== Fedora ====

Older Fedora versions also supports Ethernet USB gadgets out-of-the-box. To configure the USB networking:

* Connect the tablet with g_ether.ko loaded to your Linux PC
* Open System -&gt; Administrate -&gt; Network (or run system-config-network from command line).
* Press the &quot;New&quot; button to create a new network interface. Select &quot;Ethernet&quot; network card type.
* On the next screen, select the &quot;Netchip Technology, Inc. Linux-USB Ethernet/RNDIS Gadget (usb0)&quot; or &quot;Nokia Mobile Phones N900 (PC-Suite Mode)&quot;.
* Choose &quot;Static IP address&quot; and enter the IP address 192.168.2.15 for your PC, if you are using the default usb0 configuration on your tablet. Don't fill the gateway field on the Fedora side.
* Fill other settings (DNS etc) if you want to, then press &quot;Finish&quot;.

Now reconnect the tablet to PC and the interface should automatically configure.

==== Debian ====

Ensure that the usbnet module is available to your kernel (try ''modprobe usbnet'', then ''lsmod'' to check).

Add the following to /etc/network/interfaces:
&lt;pre&gt;
allow-hotplug usb0

mapping hotplug
        script grep
        map usb0

iface usb0 inet static
       address 192.168.2.14
       netmask 255.255.255.0
       broadcast 192.168.2.255
       up iptables -I INPUT 1 -s 192.168.2.15 -j ACCEPT
&lt;/pre&gt;

After plugging in the tablet, you can bring up the network interface with the command ''ifup usb0''.

==== Configuring the host as a gateway ====
If your host has no firewalling rules, you can set the gateway rules by modifying /etc/interfaces file.

&lt;pre&gt;
iface usb0 inet static
        address 192.168.2.14
        netmask 255.255.255.0
        up echo 1 &gt; /proc/sys/net/ipv4/ip_forward
        up iptables -P FORWARD ACCEPT
        up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.2.0/24
        down echo 0 &gt; /proc/sys/net/ipv4/ip_forward
        down iptables -t nat -F POSTROUTING
&lt;/pre&gt;
Else add the necessary MASQUERADE rules to normal firewall rules.

If you get the following error:
&lt;pre&gt;
iptables v1.2.11: can't initialize iptables table `NAT': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
&lt;/pre&gt;
You need verify that your kernel has the relevant iptables modules included, and hotplug or udev is set up properly on your computer.

==== Configuring the host as a bridge ====
Normally eth0 is on dhcp. This configuration allows my tablet to be on the same LAN as the rest of my boxes. You need the '''bridge''' module for 802.1d Ethernet Bridging installed.

 iface br0 inet dhcp
          hostname ash
          pre-up   echo     &quot;Adding ethernet bridge between LAN and PAN&quot;
          pre-up   ifconfig eth0 0.0.0.0
          pre-up   brctl    addbr br3
          pre-up   brctl    setfd br3 0
          pre-up   brctl    stp br3 off
          pre-up   brctl    addif br3 eth0         
          pre-down echo     &quot;Removing ethernet bridge between LAN and PAN&quot;
          post-down brctl    delif br3 eth0
          post-down brctl    delbr br3
          post-down ifdown eth0
          post-down ifup eth0

I do
  ifup br0

And the tablet is then on the LAN.

==== Configuring the host firewall ====

If you have your Linux host configured with a strict firewall, you may need to modify your iptables to allow the tablet to access the internet over USB networking.

To allow access both to &amp; from the tablet, the following iptables rules are required:

  iptables -A OUTPUT -o usb0 -j ACCEPT
  iptables -A INPUT -i usb0 -j ACCEPT

=== Testing the connection ===
To test the connection, you can either type ''ping 192.168.2.15'' on your PC or ''ping 192.168.2.14'' in an xterm on your tablet.

For troubleshooting, use ''ifconfig -a'' and ''route'' to verify on the Nokia and on a Linux or Unix PC, and ''ipconfig /all'' and ''route print'' on Windows.

=== Known issues ===
When unplugging and replugging the USB cable between the two devices, Windows will indicate a code 10-error indicating that the device could not start properly. The problem appears to be with the Nokia tablet, since after rebooting the device, networking works again. Remember to first initialize g_ether before plugging your tablet into the USB host.

This seems to be the case with Ubuntu too. Replugging causes following messages appear in the kernel log:

&lt;pre&gt;
[182104.412082] usb 3-1: new full speed USB device using uhci_hcd and address 29
[182104.824071] usb 3-1: device not accepting address 29, error -71
[182104.824100] hub 3-0:1.0: unable to enumerate USB device on port 1
&lt;/pre&gt;

Rebooting the tablet seems to work.

=== Frequently asked questions ===
# So if we have already plugged in our 770 into XP, and it recognized it as a drive, do we need to remove the driver software that makes it appear as a USB drive, and replace it with the USBNet drivers? 
#* No, windows registers the tablet in network mode as a different device. 
#* However, as stated above: you have to insmod the kernel module on your tablet before you connect the cable!
# When I try to do the above, I get an error stating that the driver I am trying to choose doesn't have anything to do with my hardware.
#* Make sure you have activated USB networking on the Nokia side correctly.
# My tablet can now talk to my XP machine, but how do I get out to the rest of the network?
#:First, set up a dummy access point, as described above, so that you can configure the network settings in connection manager for your usbnet connection. This will allow you to configure proxy server access. Secondly, install a proxy on your local machine. Examples include [http://www.proxomitron.info/ proxomitron] or [http://www.handcraftedsoftware.org/ freeproxy].
# How do I set up DNS once I have connected the tablet and the host?
#* Install and configure pdnsd on your host computer, and add nameserver 192.168.2.14 to the file /etc/resolv.conf on your tablet.
#* or configure the host as a gateway, and use the same DNS servers as your host (without messing up /etc/resolv.conf and the dnsmasq server):
#::echo &quot;nameserver xxx.xxx.xxx.xxx&quot; &gt;&gt; /tmp/resolv.conf.ppp0 
#::where xxx.xxx.xxx.xxx is the dns server of the host (  as found in /etc/resolv.conf on the host linux box )
#::echo again the second address if required.
#::Don't forget to choose &quot;dummy&quot; from the wireless connection manager on the tablet and do 'ifup usb0' on the Linux box.
#How do I keep my SD memory cards from being unmounted?
#* Before you plug in the usb cable; open two xterminals and cd one to /media/mmc1 and the other to /media/mmc2 and leave them there. By keeping a foot in the door the cards are kept available ... the usbnet will still succeed.

[[Category:Users]]
[[Category:Wiki page of the day]]
[[Category:Connectivity]]
[[Category:USB]]

[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>USB to ethernet networking</title>
    <id>1851</id>
    <revision>
      <id>50178</id>
      <timestamp>2012-10-14T13:59:19Z</timestamp>
      <contributor>
        <username>stuart23</username>
        <id>4177</id>
      </contributor>
      <minor/>
      <comment>/* Apple USB Ethernet Adapter: Model No. A1277 EMC No. 2147, 825-7098-A */</comment>
      <text xml:space="preserve">With [[USB host mode]] it's possible to setup and utilize a wired network connection for times when you don't have access to WiFi (e.g., hotel rooms). Although it's possible to carry around a small WiFi router, it's frequently more cost effective and convenient to connect the tablet to the wired connection directly.

== Pre-requisites ==

In order to do use a USB ethernet adaptor, you'll need to make sure that you have [http://wiki.maemo.org/USB_host_mode USB host mode] up and working properly (with an OTG cable or a software switch). OS2008 natively supports USB adapters based upon the RTL8150 chipset such as the [http://i.i.com.com/cnwk.1d/sc/7767395-2-200-0.gif Linksys USB100M]; however it's possible to find other devices that are supported by custom compiled modules.

If you're looking for a &quot;ready to go&quot; solution  simply  pick up a supported USB100M along with your [http://www.electronicproductonline.com/catalog/product_info.php?cPath=35_67&amp;products_id=2043 USB OTG adapter].

== Setup ==

Once you've got some compatible hardware ready to go, the easiest step is to next install the [http://www.electronicproductonline.com/~electron/catalog/supportFiles/usbLAN_0.4.6_armel.deb USB LAN package]. The updated version of the package utilizes the [http://www.electronicproductonline.com/~electron/catalog/supportFiles/dbus-scripts_1.0.3_armel.deb dbus-scripts package], which can also be easily installed by following this.

The package will setup a few scripts and install all of the additional USB LAN drivers that are available for the OS:

 catc.ko
 dm9601.ko
 kaweth.ko
 mcs7830.ko
 pegasus.ko
 rt73.ko ''(Added in 0.4.6 for external USB Wifi adapters)''

&lt;small&gt;''Note: anyone who knows of other commonly supported and tested working devices using these drivers, please add them to the end of this entry.''&lt;/small&gt;

=== Step by step ===
&lt;ol&gt;
&lt;li&gt;Install the [http://www.electronicproductonline.com/~electron/catalog/supportFiles/dbus-scripts_1.0.3_armel.deb dbus-scripts package].&lt;/li&gt;
&lt;li&gt;Install the [http://www.electronicproductonline.com/~electron/catalog/supportFiles/usbLAN_0.4.6_armel.deb USB LAN package].&lt;/li&gt;
&lt;/ol&gt;

&lt;ol&gt;
&lt;/ol&gt;

Once the packages are installed any RTL8150 device will operate as follows:

&lt;ol&gt;
&lt;li&gt;Connect USB device to LAN cabling.&lt;/li&gt;
&lt;li&gt;Connect USB device to the tablet.&lt;/li&gt;
&lt;li&gt;Wait for the USB messages to popup (&quot;USB Device Not Supported&quot;, &quot;No Filesystem Found&quot;).&lt;/li&gt;
&lt;li&gt;Launch your web browser or whatever application you want to use.&lt;/li&gt;
&lt;li&gt;Surf and enjoy.&lt;/li&gt;
&lt;/ol&gt;

&lt;ol&gt;
&lt;/ol&gt;

''For devices other than those based on the RTL8150 you'll manually need to call &lt;code&gt;'''usbEthUp.sh'''&lt;/code&gt; after you connect your device, and &lt;code&gt;'''usbEthDown.sh'''&lt;/code&gt; after you remove it to get the network settings in place. These scrips can be found in &lt;code&gt;/usr/sbin&lt;/code&gt;.
''
&lt;ol&gt;
&lt;/ol&gt;
When you're done with your wired connection simply unplug the network adapter from the USB host cable (this lets the tablet recognize that the adapter has been unplugged), then disconnect your host cable from the tablet (and manually set it out of host mode if required). Also, don't forget to choose &quot;Disconnect&quot; from the connection window (click on the little WiFi icon), or your tablet will try to stay connected to &quot;'''WIRED'''&quot; until you restart or manually force a new connection.

== Performance ==

Do not expect a wired connection to help you gain faster transfer speeds. In testing, it has been found that the CPU on the tablet maxes out at approximate 5-7Mbps, well beneath the threshold of wired networks or USB connectivity.

There is also an important consideration regarding the type of network adapter you select to use. The Linksys USB100M for example is only listed as USB 1.1, not USB 2.0, but still functions above the maximum sustainable speed of the tablet. Conversely, while the USB 2.0 version of the same device should work, it required additional drivers and actually requests more power than the USB OTG bus on the tablet is willing to provide, so you'd end up needing an externally powered USB hub to use it. Thus while the USB 2.0 adapter might seem better, in actually for the tablets it's actually a worse choice.

== Tested Devices ==

How to test:

# Make sure you have the latest driver and scripts installed as noted above. You will also need [[root access]] installed.
# Open XTerm.
# Connect your USB adapters (including OTG adapter if you are using that product).
# Connect your USB ethernet device.
#You will see error messages that can be ignored.
# Run &lt;code&gt;sudo becomeroot&lt;/code&gt; in XTerm.
# Run &lt;code&gt;/usr/sbin/usbEthUp.sh&lt;/code&gt;.
# Note messages.  A successful connection will be indicated by an acquired IP address (&lt;cod&gt;Lease ''xxx''.''xxx''.''xxx''.''xxx'' obtained&lt;/code&gt;, where &lt;code&gt;''xxx''&lt;/code&gt; represents parts of an IP address).
# Run &lt;code&gt;dmesg&lt;/code&gt;.
# Scroll up through messages until you discover text describing the ethernet adapter, containing codes prefixed by v (vendor code) and p (product code). The characters following v and p will be entered into the appropriate fields as shown below.
# Any unknown information should be added after the corresponding field as ''Unknown''.

The following USB ethernet devices have been tested:

==== Crystal Blue USB to Ethernet 10/100 LAN Adapter ====

* '''Ethernet chipset:''' [http://www.davicom.com.tw/page1.aspx?no=143762 Davicom DM9601 USB Ethernet]
* '''Vendor ID:''' 0a46
* '''Product ID:''' 9601
* '''External power required:''' No
* '''Functionality:''' Success is sporadic with these; they are technically okay, but lacking in reliability.  Out of 4 tested by me, only 2 worked.
* '''Cost:''' Low to very low
* '''Status:''' &lt;font color=red&gt;Not recommended&lt;/font&gt;
* '''Notes:''' This adapter is seen all over eBay, usually in translucent blue but variants are also found in clear, white and black.  FYI, there is a [http://readlist.com/lists/freebsd.org/freebsd-current/10/52177.html FreeBSD patch] to get it to work on that OS.
* '''Tested by:''' Texrat

==== SMC EZ Connect USB 2202USB/ETH ====

* '''Ethernet chipset:''' ADMtek ADM8511
* '''Vendor ID:''' 0707
* '''Product ID:''' 0200
* '''External power required:''' No
* '''Functionality:''' Works very well, very quick internet access
* '''Cost:''' Moderate to low
* '''Status:''' &lt;font color=green&gt;Highly recommended&lt;/font&gt;
* '''Notes:''' Adapter did not work with earlier releases of tablet driver.  Uses detachable USB pigtail.
* '''Tested by:''' Texrat

==== Targus ACP50 universal notebook hub ====

* '''Ethernet chipset:''' ADMtek 8515
* '''Vendor ID:''' 0451 (hub)
* '''Product ID:''' 2036 (hub)
* '''Vendor ID:''' 07a6 (ethernet)
* '''Product ID:''' 8515 (ethernet)
* '''External power required:''' Yes
* '''Functionality:''' Works well, very stable
* '''Cost:''' High to moderately high
* '''Status:''' &lt;font color=green&gt;Recommended&lt;/font&gt;
* '''Notes:''' Hub loses ethernet and USB functionality if it is simultaneously used as USB charging solution for the tablet.
* '''Tested by:''' Texrat

==== Trendnet TU-ET100C ====

* '''Ethernet chipset:''' ADMtek ADM8511 &quot;Pegasus II&quot;
* '''Vendor ID:''' 07a6
* '''Product ID:''' 8511
* '''External power required:''' No
* '''Functionality:''' Works well, very stable
* '''Cost:''' US$15-25 as of October 2008
* '''Status:''' &lt;font color=green&gt;Recommended&lt;/font&gt;
* '''Notes:''' Non-detachable tail, approximately 3 feet long.  Only one light.  Addendum by Texrat: [http://talk.maemo.org/forums/showpost.php?p=242053&amp;postcount=88 noted by one tester] as drawing an unusually high amount of current (&quot;more than N810's 192 mA limit&quot;).
* '''Tested by:''' SKarp

==== Netgear EA101 USB Ethernet ====

* '''Ethernet chipset:''' Kawasaki LSI KL5KLUSB101B 
* '''Vendor ID:''' 0846
* '''Product ID:''' 1001
* '''External power required:''' No
* '''Functionality:''' Works well, quick internet access
* '''Cost:''' Moderate to low
* '''Status:''' &lt;font color=green&gt;Recommended&lt;/font&gt;
* '''Notes:''' Form factor is a bit bulky, but it has indicator lights for power, link/activity and packet collisions.  Uses detachable USB pigtail.  [http://www.mavetju.org/mail/view_message.php?list=freebsd-doc&amp;id=1493000 Other adapters] that use this chipset are the LinkSys USB10T, the 3Com 3c19250, the ADS Technologies USB-10BT, the Peracom USB Ethernet Adapter, the Entrega NET-USB-E45 and NET-HUB-3U1E, the ATen UC10T, the D-Link DSB-650, Corega USB-T and the SMC 2102USB and 2104USB.
* '''Tested by:''' Texrat

==== DIGITUS 10/100 Mbps Fast Ethernet USB adapter DN-3015 ====

* '''Ethernet chipset:''' RTL8150 Fast Ethernet Adapter
* '''Vendor ID:''' 0x0bda Realtek Semiconductor Corp
* '''Product ID:''' 0x8150 RTL8150 Fast Ethernet Adapter
* '''External power required:''' No
* '''Functionality:''' Works well
* '''Cost:''' EUR 13.- (Feb. 2009)
* '''Status:''' &lt;font color=green&gt;Recommended&lt;/font&gt;
* '''Tested by:''' walto

==== Apple USB Ethernet Adapter: Model No. A1277 EMC No. 2147, 825-7098-A ====

* '''Ethernet chipset:'''  ASIX AX88772 USB 2.0 Ethernet
* '''Vendor ID:''' 0x05ac Apple, Inc.
* '''Product ID:''' 0x1402 Ethernet Adapter [A1277]
* '''External power required:''' No (works for 3 hours starting a full battery with h-e-n)
* '''Functionality:''' Works well [[USB Ethernet and Host Mode]]
* '''Status:''' &lt;font color=green&gt;Recommended&lt;/font&gt;
* '''Tested by:''' [[Users:stuart23]]

== Wishlist ==

* Automatic detection and activation of all devices passing functionality test (i.e., plug and play).
* advanced control panel configuration (helpful for static IP, etc).
*Working links and specific instructions for H-E-N, N900 scripts, and kernel modules.


[[Category:USB]]
[[Category:Connectivity]]
[[Category:OS2008]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>UX</title>
    <id>3941</id>
    <revision>
      <id>33938</id>
      <timestamp>2010-05-06T11:31:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add wikify links</comment>
      <text xml:space="preserve">UX-Week is a community initiative started by [http://maemo.org/users/view/thp/ Thomas Perl] to have co-ordinated design effort brought to bear on one problem per week, on the [http://talk.maemo.org talk.maemo.org forums].

This is an archive of UX-Week content. For more detail, see the [http://talk.maemo.org/showpost.php?p=604054&amp;postcount=77 original idea on talk.maemo.org] and the announcements for each weekly sprint:

* [http://talk.maemo.org/showthread.php?t=49769 Week 1] Preferences dialogs&lt;br /&gt;{{wikify|1=http://talk.maemo.org/showthread.php?t=49769}}
* [http://talk.maemo.org/showthread.php?t=50353 Week 2] Icons (Application icons and icons in the UI)
** [[UX/Icons]]
* [http://talk.maemo.org/showthread.php?t=51053 Week 3] Names, descriptions and screenshots&lt;br /&gt;{{wikify|1=http://talk.maemo.org/showthread.php?t=51053}}

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>UX/Icons</title>
    <id>3942</id>
    <revision>
      <id>33936</id>
      <timestamp>2010-05-06T10:31:46Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix link</comment>
      <text xml:space="preserve">{{wikify|1=http://talk.maemo.org/showthread.php?t=50353}}

{|
!style=&quot;padding: 5px;&quot;|Application
!style=&quot;padding: 5px;&quot;|Problem
!style=&quot;padding: 5px;&quot; width=&quot;150&quot;|Current icons
!style=&quot;padding: 5px;&quot; width=&quot;150&quot;|Proposed icons
!style=&quot;padding: 5px;&quot;|Status
|-
|[http://maemo.org/packages/view/brainparty/ Brain Party]
|blurry icons; too small
|[[Image:Brainparty-old.png]]
|[[Image:Brainparty-48x48.png]] [[Image:Brainparty-64x64.png]]
|MERGED in Brain Party 0.5.91-1 (by [http://talk.maemo.org/showpost.php?p=613581&amp;postcount=118 infected69])
|-
|[http://maemo.org/packages/view/wiicontrol/ Wiicontrol]
|icon missing
|[[Image:Missing-app-icon-small.png]] [[Image:Missing-app-icon.png]]
|[http://talk.maemo.org/showpost.php?p=618178&amp;postcount=16] and [http://talk.maemo.org/showpost.php?p=618244&amp;postcount=20]
|FINISHED (by [http://talk.maemo.org/member.php?u=23814 biggzy])
|-
|[http://maemo.org/packages/view/numptyphysics/ Numpty Physics]
|blurry icon; &quot;dirty&quot; in upper left corner (when viewed on dark background)
|[[Image:Numptyphysics.png]]
|...
|TAKEN (wazd working on it)
|-
|[http://maemo.org/packages/view/gltron/ GLtron]
|pixelated icon; too small
|[[Image:Gltron.png]]
|...
|NEW
|-
|[http://maemo.org/packages/view/fahrplan/ Fahrplan]
|64x64 icon size (for the menu) is missing
|[[Image:Fahrplan.png]]
|...
|TAKEN (wazd working on it)
|-
|[http://maemo.org/packages/view/liqflow/ liqflow]
|only 26x26 icon available - needs 48x48 + 64x64 icon
|[[Image:Liqflow.png]]
|...
|NEW
|-
|[http://maemo.org/packages/view/unzip-fm/ Unzip add-on for the File Manager]
|no icon in the application manager
|[[Image:Missing-app-icon-small.png]] [[Image:Missing-app-icon.png]]
|[[Image:ZipV2-48.png]] [[Image:ZipV2-64.png]]
|FINISHED (by [http://talk.maemo.org/showpost.php?p=616215&amp;postcount=11 biggzy])
|-
|[http://maemo.org/packages/view/mplayer/ MPlayer]
|no icon in the application manager
|[[Image:Missing-app-icon-small.png]] [[Image:Missing-app-icon.png]]
|[[Image:Mplayer_48.png]][[Image:Mplayer_48_commandline.png‎]]
|FINISHED -joppu
|-
|[http://maemo.org/packages/view/decoders-support/ Extra Decoders Support]
|white background
|[http://static.maemo.org/static/b/ba3b2fc2dc3d11de98cca585efb231ca31ca_decoders-support_icon]
|[http://talk.maemo.org/attachment.php?attachmentid=9084&amp;d=1271700873] [http://talk.maemo.org/attachment.php?attachmentid=9085&amp;d=1271700880]
|FINISHED (by [http://talk.maemo.org/showpost.php?p=618108&amp;postcount=15 biggzy])
|-
|[http://maemo.org/packages/view/mmagnetic/ MMagnetic]
|Pixellated icon; probably too small
|[[Image:Mmagnetic.png]]
|...
|NEW
|-
|''insert app name + link to maemo.org/packages here''
|''describe what's wrong with the current icons''
|''embed current app manager + menu icons here''
|''upload and link proposed icons here (64x64 for menu, 48x48 for app mgr)''
|''one of: NEW (needs designer), TAKEN (designer works on it - add your name), FINISHED (work is finished and submitted), MERGED (developer has merged the new icons into the package)''
|}

[[Category:Community]]
[[Category:Design]]</text>
    </revision>
  </page>
  <page>
    <title>University Course</title>
    <id>3261</id>
    <revision>
      <id>30328</id>
      <timestamp>2010-02-28T18:05:31Z</timestamp>
      <contributor>
        <ip>88.192.34.59</ip>
      </contributor>
      <comment>/* Course project list */</comment>
      <text xml:space="preserve">This page will always be under construction.

An intensive university course for two weeks in which to get familiar with Qt programming on Maemo and the tools used for that.

== Preparations ==

* [[Getting_started_with_Maemo_Garage | How to set up a garage account and project]]
* Think of a simple app that can be coded in about a week (doesn't matter if there is already an app out there that does what you think is cool, it's supposed to be a learning experience for you)
* Form small 3 person teams
* Use garage for project tracking
* Get the tools and go!

== Course format ==

* Small teams for the projects, preferably about 3 people per team
* Run in a SCRUM way - but this is up to the teams
* Sprints last for about three days
* Course mentors visit as possible and needed in the afternoons

== Schedule ==

Week 1.

{| class=&quot;wikitable&quot;
|- style=&quot;&quot;
|
| Monday
| Tuesday
| Wednesday
| Thursday
| Friday
|- style=&quot;&quot;
| Morning 9.30 -
| What is Maemo?
What is Qt?
| Setting up continued.
| 
| 
| 
|- style=&quot;&quot;
| Afternoon 14 -
| Getting the tools.
Setting up.
| 
| Sprint review 12-14
| 
| 
|}


Week 2.

{| class=&quot;wikitable&quot;
|- style=&quot;&quot;
|
| Monday
| Tuesday
| Wednesday
| Thursday
| Friday
|- style=&quot;&quot;
| Morning 9.30 -
| 
| 
| 
| 
| Last minute polish
|- style=&quot;&quot;
| Afternoon 14 -
| Sprint review
| 
| Sprint review
| Packaging applications
| Project review
|}

== Useful links ==

=== Getting the tools ===

Choose either [http://wiki.maemo.org/MADDE MADDE] or [http://www.forum.nokia.com/info/sw.nokia.com/id/c05693a1-265c-4c7f-a389-fc227db4c465/Maemo_5_SDK.html full SDK]
* Decision - use MADDE

=== Qt docs ===
[http://www.forum.nokia.com/Tools_Docs_and_Code/Documentation/Maemo.xhtml Qt &amp; Maemo examples, Forum Nokia]

[http://doc.trolltech.com/ Trolltech official Qt docs.]
Excellent source. Use the version recommended (4.5 or 4.6) on the course.

[[Packaging_a_Qt_application | Qt packaging guide]] and 
[http://wiki.maemo.org/MADDE/Qt_Example simpler packaging using Madde.] 

[http://cartan.cas.suffolk.edu/oopdocbook/opensource/ Design Patterns with Qt4]

[http://doc.trolltech.com/4.5/signalsandslots.html Signals and slots tutorial]

[http://wiki.forum.nokia.com/index.php/Qt_for_Maemo:_Location_Example Location Example]

=== Getting help ===

* Irc channel #maemo or freenode.net (and the course specific one too)
* Maemo-developers mailing list on maemo.org
* Course mentors directly by mail or IM

== Course project list ==

* [http://github.com/Meelo/MaeRemote MaeRemote] Niko Hämäläinen(Milo/Meelo), Markku Velinen(Dzarg), Daniel Suni(Izmo)
* [https://garage.maemo.org/projects/locationtracker/ GPS Location Tracker]
* [http://github.com/jamssi/maemo/tree/master/bogui-0.2/ Breakout klooni] ja lähes toimivat törmäykset
* [https://garage.maemo.org/projects/metropoliamap/ MetropoliaMap] by Jarmo Pihlajaniemi(Pihlis), Teemu Jaakola(tejaa), Aarne Relander(Taarne)
* [https://garage.maemo.org/projects/reittiopas/ Reittiopas] by Lari (Plektra), Janne (janvi) and Miku (ryokale)
* [http://github.com/zmyrgel/MeegoMPC MeegoMPC] by Timo Myyrä(zmyrgel), Juho Esselström(Juhise), Juho Rautio(spaideri)

== Afterwards ==

Continue the project if you think it's fun.

Publishing on extras.

[[Category:Users]]</text>
    </revision>
  </page>
  <page>
    <title>Unrestricted-system-ui</title>
    <id>5214</id>
    <revision>
      <id>50539</id>
      <timestamp>2012-10-29T01:17:11Z</timestamp>
      <contributor>
        <username>wikiwide</username>
        <id>3163</id>
      </contributor>
      <minor/>
      <comment>[[Category:N9]]</comment>
      <text xml:space="preserve">[http://talk.maemo.org/showthread.php?p=1214016#post1214016 unrestricted-system-ui] is a modified system-ui package that allows developers and users to load plugins the Harmattan status menu.

== How to install ==
To install unrestricted-system-ui you will need to have [https://endno.de/~itsnotabigtruck/inception/ Inception] or an open mode kernel installed.

== PR1.3 ==
=== N9 Users ===
===== Inception method =====
&lt;source lang=&quot;bash&quot;&gt;
wget http://mohammadag.xceleo.org/public/Harmattan/system-ui_1.3.2-1+0m8_armel.deb -O system-ui_1.3.2-1+0m8_armel.deb
/usr/sbin/incept system-ui_1.3.2-1+0m8_armel.deb #enter root pass
&lt;/source&gt;

===== Open mode method =====
&lt;source lang=&quot;bash&quot;&gt;
devel-su #enter pass
wget http://mohammadag.xceleo.org/public/Harmattan/system-ui_1.3.2-1+0m8_armel.deb -O system-ui_1.3.2-1+0m8_armel.deb
export AEGIS_FIXED_ORIGIN=com.nokia.maemo
dpkg -i system-ui_1.3.2-1+0m8_armel.deb
&lt;/source&gt;

=== N950 Users ===
As of the last edit, PR1.3 is not available for the N950.

== PR1.2 ==
==== N9 Users ====
===== Inception method =====
&lt;source lang=&quot;bash&quot;&gt;
wget http://mohammadag.xceleo.org/public/Harmattan/system-ui_1.2.24-2+0m7_armel.deb -O system-ui_1.2.24-2+0m7_armel.deb
/usr/sbin/incept system-ui_1.2.24-2+0m7_armel.deb #enter root pass
&lt;/source&gt;

===== Open mode method =====
&lt;source lang=&quot;bash&quot;&gt;
devel-su #enter pass
wget http://mohammadag.xceleo.org/public/Harmattan/system-ui_1.2.24-2+0m7_armel.deb -O system-ui_1.2.24-2+0m7_armel.deb
export AEGIS_FIXED_ORIGIN=com.nokia.maemo
dpkg -i system-ui_1.2.24-2+0m7_armel.deb
&lt;/source&gt;

==== N950 Users ====
===== Inception method =====
&lt;source lang=&quot;bash&quot;&gt;
wget http://mohammadag.xceleo.org/public/Harmattan/system-ui_1.2.23-1+0m7_armel.deb -O system-ui_1.2.23-1+0m7_armel.deb
/usr/sbin/incept system-ui_1.2.23-1+0m7_armel.deb #enter root pass
&lt;/source&gt;

===== Open mode method =====
&lt;source lang=&quot;bash&quot;&gt;
devel-su #enter pass
wget http://mohammadag.xceleo.org/public/Harmattan/system-ui_1.2.23-1+0m7_armel.deb -O system-ui_1.2.23-1+0m7_armel.deb
export AEGIS_FIXED_ORIGIN=com.nokia.maemo
dpkg -i system-ui_1.2.23-1+0m7_armel.deb
&lt;/source&gt;


== Removing the alarms plugin ==
Nokia seem to have included an unfinished applet that opens the clock app, to hide it, you may move the .desktop file
&lt;source lang=&quot;bash&quot;&gt;
devel-su #enter root pass
mv /usr/share/meegotouch/applicationextensions/statusindicatormenu-alarms.desktop /usr/share/meegotouch/applicationextensions/statusindicatormenu-alarms.disabled
&lt;/source&gt;

To make it visible again:
&lt;source lang=&quot;bash&quot;&gt;
devel-su #enter root pass
mv /usr/share/meegotouch/applicationextensions/statusindicatormenu-alarms.disabled /usr/share/meegotouch/applicationextensions/statusindicatormenu-alarms.desktop
&lt;/source&gt;

== Enabling battery percentage in status area ==
To enable battery percentage you'll need to set a gconf key:
&lt;source lang= &quot;bash&quot;&gt;
gconftool-2 -s /desktop/meego/status_area/display_percentage -t bool true
&lt;/source&gt;
To disable it, replace true with false in the previous command.

== Plugins ==
Here is a list of plugins currently available for unrestricted-system-ui:&lt;br&gt;
*[http://talk.maemo.org/showthread.php?p=1214014#post1214014 Brightness applet]&lt;br&gt;
*[http://talk.maemo.org/showthread.php?t=85165 Hacky Brightness Controller]&lt;br&gt;
*[http://talk.maemo.org/showthread.php?t=84725 MT-Toggles | A toggles platform ]&lt;br&gt;
*[http://talk.maemo.org/showthread.php?t=84912 Quick Status Updater]&lt;br&gt;
*[http://talk.maemo.org/showthread.php?p=1237566#post1237566 Music Controls | A player controls platform]&lt;br&gt;
*[http://talk.maemo.org/showthread.php?t=85163 PresenceX | A online/offline availability widget]&lt;br&gt;

== Developers ==
Developers who plan to make status menu plugins should have '''unrestricted-system-ui''' in their debian/control Depends: line, this is to prevent user confusion and make it easier for the developer to support the user.&lt;br&gt;&lt;br&gt;

Plugins need to be installed in /usr/lib/meegotouch/applicationextensions/&lt;br&gt;
.desktop files for the plugins need to be installed in /usr/share/meegotouch/applicationextensions&lt;br&gt;&lt;br&gt;

Please follow this naming scheme so it's easier for the user to distinguish plugins.&lt;br&gt;
For the lib: libstatusindicatormenu-foobar.so&lt;br&gt;
For the desktop file: statusindicatormenu-foobar.desktop&lt;br&gt;
where foobar can be replaced with anything.&lt;br&gt;&lt;br&gt;

Here's a sample .desktop file
&lt;source lang=&quot;ini&quot;&gt;
[Desktop Entry]
Type=X-MeeGoApplicationExtension
Name=Foo Bar Status menu plugin

[X-MeeGoApplicationExtension]
Interface=com.meego.core.MStatusIndicatorMenuExtensionInterface/1.0
Extension=libstatusindicatormenu-foobar.so
&lt;/source&gt;&lt;br&gt;

You will need to restart the status menu in postinst and postrm. Refer to the section below (as root) for how to do that.

== Rearranging status menu plugins ==

As of the latest version, unrestricted-system-ui allows you to rearrange items in the status menu through a config file.&lt;br&gt;
The file is /etc/status-menu-items-order.conf&lt;br&gt;
Items that aren't in the file will be loaded in alphabatical order.&lt;br&gt;
After modifying the file with your favorite text editor, you'll need to restart the status menu (see below)&lt;br&gt;&lt;br&gt;

.desktop file names can be found with
&lt;source lang=&quot;bash&quot;&gt;
for files in $(ls /usr/share/meegotouch/applicationextensions/statusindicatormenu-*desktop); do basename &quot;$files&quot;; done
&lt;/source&gt;

== Restarting the status menu ==
At certain times, you may want to restart the status menu. Please be aware that restarting it successively may result in a reboot (by dsme/watchdog). You can restart the applet as user or root, the method to do that differs for each user.

=== As root ===
&lt;source lang=&quot;bash&quot;&gt;
/sbin/initctl restart xsession/sysuid
&lt;/source&gt;

=== As user ===
&lt;source lang=&quot;bash&quot;&gt;
killall sysuid
&lt;/source&gt;

== Safe Mode ==
As of 25.07.2012, unrestricted-system-ui has a safe mode feature, this prevents your device from going into a boot loop, caused for example, by a faulty plugin.&lt;br&gt;
This feature had some bugs, a reboot would cause it to show up because system-ui crashes once every startup (thanks to Nokia), this was fixed in a version released on 03.08.2012&lt;br&gt;
To get out of safe mode, tap the applet and follow the on screen instructions.&lt;br&gt;
If trying to exit safe mode fails the first time, try to uninstall plugins you've recently installed and exit safe mode again. Keep doing this until safe mode doesn't come back.&lt;br&gt;
=== Technical details ===
system-ui enters safe mode when it receives SIGSEGV or SIGABRT, it does this by writing two files to /tmp (system-ui-crashed and system-ui-crashed-again), the second file is a workaround to system-ui crashing at startup, if the first file exists when system-ui crashes, the second one will be created. unrestricted-system-ui checks for the second file at startup, if it exists, it restores Nokia's limitation while allowing another applet, the safe mode one, to show. To exit safe mode, the applet deletes both files and kills system-ui to restart it.
[[Category:N9]]</text>
    </revision>
  </page>
  <page>
    <title>Unusual install instructions</title>
    <id>2979</id>
    <revision>
      <id>42555</id>
      <timestamp>2011-03-09T10:57:02Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Developer applications */ add checkinstall link</comment>
      <text xml:space="preserve">This will be some day a place for instructions to every unconventional installation procedure. This article belongs heavily to power users, and doing something wrong can break your device!

== User applications ==

* [[How to Install Octave]]
* [[Installing PyKaraoke]]
* [[Citrix Receiver]]
* [[Nitdroid easy install on EMMC|Nitdroid]]

== Developer applications ==

* [[distcc]]
* [[Compile FreePascal on device|FreePascal programming language]]
* [[GoLang|Go programming language]]
* [[Mono|Mono programming language]]
* [[Checkinstall on Maemo|Checkinstall package creator]]

[[category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Update the firmware</title>
    <id>3786</id>
    <revision>
      <id>31578</id>
      <timestamp>2010-03-25T11:58:45Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <comment>Redirecting to [[Updating the firmware]]</comment>
      <text xml:space="preserve">#REDIRECT [[Updating the firmware]]</text>
    </revision>
  </page>
  <page>
    <title>Updating firmware</title>
    <id>3599</id>
    <revision>
      <id>29537</id>
      <timestamp>2010-02-14T19:49:58Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <comment>Redirecting to [[Updating the firmware]]</comment>
      <text xml:space="preserve">#REDIRECT [[Updating the firmware]]</text>
    </revision>
  </page>
  <page>
    <title>Updating the firmware</title>
    <id>77</id>
    <revision>
      <id>49809</id>
      <timestamp>2012-09-22T17:27:09Z</timestamp>
      <contributor>
        <ip>122.172.0.249</ip>
      </contributor>
      <comment>Installing a firmware from somother region sim not detected</comment>
      <text xml:space="preserve">This page has seen massive edits to get it in line with N900 details of flashing. N8x0 owners might want to have a look to older versions, like http://wiki.maemo.org/index.php?title=Updating_the_firmware&amp;oldid=17120

'''Video Tutorials:'''

http://www.youtube.com/watch?v=E1zvRjL-2cM

http://www.youtube.com/watch?v=O54KdLvTA2U

== What does it do? ==

===N9===
Please see the main article [[Flashing N9]].

===N900===
''These descriptions assume that you are using the latest official images. This page is not exactly a step-by-step instruction, so better '''read the whole page''' prior to starting the flashing process.''

While talking about flashing, there are exactly two distinct processes and related files (also called images) frequently mentioned:
* (flashing the) '''FIASCO''' aka '''*COMBINED*''', also referred to as &quot;'''rootfs'''&quot; though this file and flashing process also consists of / affects NOLO bootloader (the several stages), the kernel, and usually the GSM modem firmware, in addition to the root filesystem which is basically the content of your 240 MB NAND flash storage and implements the Linux operating system.
* (flashing the) '''eMMC''' aka '''*VANILLA*''', which will replace the complete content of [[Nokia N900|N900's]] internal 32 GB eMMC storage ('''e'''mbedded '''MMC'''), which is: the &lt;code&gt;/home&lt;/code&gt; partition which has your stored browser passwords and game highscores and calendar and contacts etc. &lt;code&gt;/home&lt;/code&gt; is also containing &lt;code&gt;/opt&lt;/code&gt;. Plus eMMC stores all the content of the MyDocs 28 GB VFAT partition, where all the media and docs and other user content lives.

Often people use the term &quot;firmware&quot; for either or both of those images. It's misleading.

Flashing the '''rootfs''' on your N900 will reset the device's linux system back to factory settings, meaning all additional applications will vanish, and some configuration details (e.g. LED patterns) are reset to the original configuration, with the exception of the lock code; if you have already set a custom lock code, it will remain intact, instead of reverting to the default &quot;12345.&quot; Also, all information contained in &lt;code&gt;/home&lt;/code&gt; (except &lt;code&gt;/home/opt&lt;/code&gt;) will remain intact. This means the information stored in &lt;code&gt;/home/user/MyDocs&lt;/code&gt; which is the area visible in the default file manager (or when connecting to a computer), will remain intact. Your external memory (microSD), will also be unaffected.

Flashing the '''eMMC and rootfs''' on your N900 will completely reset the device to factory settings, reverting ''everything'' to factory settings, including /home with all (app-)preferences, bookmarks, contacts, communications, but again, excluding the external memory on micro-SD card and the lockcode. (you MUST flash rootfs as well, when flashing eMMC (because of &lt;code&gt;/opt&lt;/code&gt; deletion)

It is strongly advised you regularly use the Backup application to create backups of your settings and data to a safe storage. You will want to configure the Backup application in such a way it stores the backups to your microSD card - alternatively when creating manual backup of MyDocs as suggested below, backups stored to default location &quot;N900&quot; will be included and thus safe.

The Backup application will save:

*'''Communication and Calendar''': Stored conversations, accounts, contacts, and calendar entries. Only applies to content used with stock applications. (i.e. not Pidgin, or other third-party applications)
*'''Bookmarks''': Bookmarks stored via MicroB. (Default browser only)
*'''Settings''': Your current settings in the Settings &quot;application.&quot; (Settings in &lt;code&gt;/home/user&lt;/code&gt;, GConf, &lt;code&gt;/etc&lt;/code&gt;.) Third party settings applets will also be backed up and restored once installed. Manually created shell scripts or other files (except those in eMMC/MyDocs) must be manually backed up prior to a rootfs flash.
*'''Application List''': A list of repositories and installed applications to be re-activated and installed after flashing. (Only applies to applications and repositories installed via the included Application Manager)

When using Backup application to ''restore from'' some backup, you can select which of the above listed groups of data shall be restored. For Application List you even can select on a per-application granularity, i.e. exclude an arbitrary number of applications from restore.
(NOTE: it is a good idea to do a new backup of the system immediately ''prior'' to any restore - of course you don't overwrite an existing backup file for that, instead give the new backup a new descriptive name, like &quot;system_broken-foobar__prior_to_restore&quot;)

When flashing the eMMC, all user-created content on MyDocs (&quot;N900&quot;) must also be backed up manually to an external location in order to be preserved (i.e. computer or microSD). You can use Mass-Storage-mode via USB for this, or copy the whole content of MyDocs with Filemanager or similar tools. The eMMC image will contain and restore the MyDocs factory setting files and folders (.documents, .images, icons, etc.).

===N800/N810===

Upgrading wipes out your &lt;code&gt;/home&lt;/code&gt; directory. All of it. Make sure you backup all your data before upgrading.

== Updating &amp; Flashing your device ==

 {{ambox
|type=notice
|text=If you are flashing the N900 with the eMMC image, follow the [[#Flashing_the_eMMC_in_the_N900|instructions below]]. Also see [[#Troubleshooting|troubleshooting section, bullet 6:&quot;If you cannot establish...&quot;]]}}

 {{ambox
|type=notice
|text=MAKE SURE YOU KNOW YOUR LOCK CODE (default: 12345)
There has been at least one report where a device '''started''' to ask for lock code after reflashing!}}

=== All Systems ===
For Windows, Mac or Linux you can use flasher-3.5 which can be download from the [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php tablets-dev] page. This page contains all installation packages include documentation for using the flasher.

# Download the [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5|Flasher]] for your device model: [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php N900, N810, N800] or [http://tablets-dev.nokia.com/d3.php 770]
# Download the latest firmware image for your device model:
#* for [http://tablets-dev.nokia.com/nokia_N900.php N900]
#** for [[Maemo_UK_variant_firmware|UK devices]]
#* for [http://tablets-dev.nokia.com/nokia_N810wimax.php N810 WiMAX Edition]
#* for [http://tablets-dev.nokia.com/nokia_N810.php N810]
#* for [http://tablets-dev.nokia.com/nokia_N800.php N800]
#* for [http://tablets-dev.nokia.com/nokia_770.php 770] (or, for the Hacker Editions, [http://tablets-dev.nokia.com/os2007_hacker_edition.php OS2007HE] and [http://tablets-dev.nokia.com/os2008_hacker_edition.php OS2008HE])
# '''Ensure the battery is fully charged'''. Connect to charger until green light when screen locked! Don't say &quot;I already did it this morning&quot;! ''(this point obviously only applies when your device is not &quot;bricked&quot; or bootlooping.)''
# Unplug the charger and switch off the device. 

=== Linux PC ===

# Download the [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5|Flasher]] for your device model: [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php N900, N810, N800] or [http://tablets-dev.nokia.com/d3.php 770]
# Download the latest firmware image for your device model: [http://tablets-dev.nokia.com/nokia_N900.php N900](For UK N900 Devices: [[Maemo_UK_variant_firmware|Maemo 5 UK Firmware]]), [http://tablets-dev.nokia.com/nokia_N810wimax.php N810 WiMAX Edition], [http://tablets-dev.nokia.com/nokia_N810.php N810], [http://tablets-dev.nokia.com/nokia_N800.php N800], or [http://tablets-dev.nokia.com/nokia_770.php 770] (Hacker Editions: [http://tablets-dev.nokia.com/os2007_hacker_edition.php OS2007HE], [http://tablets-dev.nokia.com/os2008_hacker_edition.php OS2008HE])
# Ensure the battery of Nokia device is fully charged.
# Unplug the USB cable if present, and switch off the device. 
# If you downloaded the '''.deb''' version of the Flasher, install it with: &lt;br /&gt;&lt;pre&gt;sudo dpkg -i &lt;flasher-package-name&gt;&lt;/pre&gt;If you are using '''64-bit''' Linux, you'll need to force installation as follows:&lt;pre&gt;sudo dpkg -i --force-architecture &lt;flasher-package-name&gt;&lt;/pre&gt;
# If you downloaded the '''.tar.gz''' version instead, you should untar it manually. The instructions below assume you have untarred it to the current directory.
# If you installed the '''.deb''' version, run:&lt;pre&gt;sudo flasher-3.5 -F &lt;firmware-image&gt; -f -R&lt;/pre&gt;If you are using the '''.tar.gz package''', use:&lt;pre&gt;sudo ./flasher-3.5 -F &lt;firmware-image&gt; -f -R&lt;/pre&gt;
# It will say:&lt;br /&gt;&lt;pre&gt;Suitable USB device not found, waiting&lt;/pre&gt;
#* '''N900''': While holding the '''u''' key, connect the N900 to your computer via USB. Wait until you see a dim screen on your N900 with a Nokia logo in the middle of your screen with an USB icon in the top right corner. Note: You may not need to hold the U key - it seems to automatically flash if the flasher is ready at boot time.
#*# If the USB logo does not appear, and the device turns off - ensure the battery is charged by connecting to the wall charger for an hour and try again. Bear in mind that neither the wall charger nor the USB cable will charge the N900 battery if the N900 cannot boot the OS.
#* '''N810 WiMAX, N810, N800 and 770''': Connect your device to your computer via USB.  While holding the Home/Swap button (It's a house on the [[Nokia 770|770]] and [[Nokia N800|N800]], and two overlapping rectangles on the [[Nokia N810|N810]]), power on the device by holding the power button. You should see a Nokia logo in the middle of the screen, and a USB icon in the top right corner.
# You don't need to continue to hold any buttons once flashing starts.
# It should start flashing and then reboot. You can remove the USB cable when the flasher program exits back to the shell prompt.
'''Some notes''':
# If you get this error while trying to run flasher-3.5 &lt;br /&gt;&lt;pre&gt;./flasher-3.5: error while loading shared libraries: libusb-0.1.so.4: cannot open shared object file: No such file or directory&lt;/pre&gt; you are probably on 64 bit and you need to install a libusb compatibility package.  For example, on openSUSE 11.4 you just run &lt;br /&gt;&lt;pre&gt;zypper in libusb-0_1-4-32bit&lt;/pre&gt;&lt;br /&gt;On a debian based system you can download and install the 32-bit version in a separate location (don't install it on your system itself) &lt;br /&gt;First download the libusb-0.1-4_0.1.12-13_i386.deb library (google is your friend) and then:&lt;br/&gt;&lt;pre&gt;dpkg-deb -c libusb-0.1-4_0.1.12-13_i386.deb&lt;/pre&gt;&lt;pre&gt;sudo dpkg -x libusb-0.1-4_0.1.12-13_i386.deb libusb-0.1-4_0.1.12-13_i386&lt;/pre&gt;&lt;pre&gt;sudo mv libusb-0.1-4_0.1.12-13_i386/lib/* /lib32&lt;/pre&gt;&lt;pre&gt;cd /usr/lib32&lt;/pre&gt;&lt;pre&gt;sudo ln -s /lib32/libusb-0.1.so.4&lt;/pre&gt;&lt;br/&gt;Now Set the library path (as su):&lt;pre&gt;sudo su&lt;/pre&gt;&lt;pre&gt;export LD_LIBRARY_PATH=/usr/lib32/:$PATH&lt;/pre&gt;Now you can run the flasher application (as su)&lt;br/&gt;
# If flasher runs but exits when you plug in the phone saying &lt;br/&gt;
&lt;pre&gt;Unable to enumerate USB buses!&lt;/pre&gt; 
the problem usually is the kernel module cdc_phonet that is automatically loaded.  The solution is to temporarily blacklist it, until you are done flashing.  On openSUSE this can be done by creating a file like this:&lt;br /&gt;&lt;pre&gt;echo &quot;blacklist cdc_phonet&quot; &gt;/etc/modprobe.d/00-blacklist-cdcphonet.conf&lt;/pre&gt;When you finish flashing, remove the file.&lt;br /&gt;&lt;br /&gt;
There are other, probably timing, reasons causing occasional &quot;unable to enumerate USB&quot;. Immediately issue the flasher command again, up-arrow usually helps fetching last command to re-issue it.

=== Mac OS X ===
There are two methods for flashing the device on OS X, using the GUI, with the 770Flasher application or using the console, much like the Linux flashing method. ''Both methods work fine for both the 770 and the N800/N810.''

==== GUI with 770Flasher ====
This is the easier of the two methods, and should be used by most people.

# Download the [http://maemo.org/downloads/product/PC/770flasher/ 770Flasher] (yes, it will work fine for flashing an N800 or N810). Latest flashers (Linux/Mac), which work also for N900,  are also available on [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Latest Official Maemo Development Environment Page]
# Follow the [[#Flashing_your_Nokia_tablet|steps above]] to get the appropriate firmware image.
# Drag the firmware image (will end in .bin) onto 770Flasher.  Or open 770Flasher and select the image.
#The image may have a ,attachments ending.  Remove this to get to .bin
# Follow the on-screen prompts.
# You should now see ''Suitable USB device not found, waiting'', plug in the usb cable.  Switch on your device while holding the Home-button. Note for N810 users: switch on your device while holding the Swap button. Note for N900 users: Unplug USB cable. Switch of your device. Press and hold &quot;U&quot; key then plug in the USB cable. If the USB symbol in the top right corner shows up or the flashing starts let go the &quot;U&quot; key.
# Watch the messages as the image loads to the device after which it reboots automatically.

==== Console with Flasher-3.5 ====
These steps cover flashing the device with OS X using the Terminal. This is the more difficult than using [[#GUI_with_770Flasher|770Flasher]], but gives you access to the advanced options flasher-3.5 provides (like setting R&amp;D flags, flashing only parts of the image, unpacking the image, etc).

# Follow the [[#Updating_&amp;_Flashing_your_device|steps above]] to get the appropriate firmware image and flasher.
# Turn off your device (''make sure you unplug the charger or else the device wont power down completely'') and plug in the USB cable to a port on the computer and the port on your device. N900 users cannot plug in the usb cable yet, as it would start recharging the battery.
# Open up the Terminal (located in /Applications/Utilities/) and run:&lt;pre&gt;sudo /usr/bin/flasher-3.5 -F &lt;firmware-image&gt; -f -R&lt;/pre&gt;''You will be asked for an administrator password, enter it.''
# It will say:&lt;pre&gt;Suitable USB device not found, waiting&lt;/pre&gt;
# Unplug the power cord from the device, as this will prevent it from updating. Then take your device, and hold down the Home/Swap button (looks like a little house on the N800 and 770, and two overlapping rectangles on the N810 users do not need to hold down anything), and while holding down the Home/Swap button press the power button to turn it on. N900 users press ‘u’ button and plug the USB cable. Release button when flashing process begins.&lt;br /&gt;''If the device does not boot and start flashing, make sure the USB cable is plugged in.''
# It should start flashing and then reboot. You can remove the USB cable after it has booted to a normal desktop (just make sure to eject any cards that may have mounted on your Mac).

=== Windows ===

====N900====

=====Updating the firmware using the Nokia Software Updater=====

Microsoft Windows users who wish to '''update''' their N900 can use the [http://europe.nokia.com/support/download-software/device-software-update Nokia Software Updater (aka NSU)], or use the Flasher (see section below).

The Nokia Software Updater is compatible with Windows XP Service Pack 3, Windows Vista Service Pack 2, and Windows 7. (Some users may encounter problems due to varying causes.)

The Nokia Software Updater can now be used when updating from a previous firmware to a new one or re-flashing.

=====Updating or re-flashing the firmware using the Flasher=====

''Note: This method is fully compatible with 32-bit versions of Windows; 64-bit users may encounter problems. There is a workaround that is reported working though at [http://talk.maemo.org/showpost.php?p=849980&amp;postcount=20 talk.maemo.org] Also note you need administrator rights to run flasher (somebody with a clue about windows may want to check the procedure regarding this aspect - shift-run?)''

To flash from the Windows (XP, Vista, or 7) command line,

# [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Download] and install the latest version of the Flasher. 
# [http://tablets-dev.nokia.com/nokia_N900.php Download] the latest firmware (.bin) file for your region and save it to &lt;code&gt; %ProgramFiles%\maemo\flasher-3.5\&lt;/code&gt; (the default path), or wherever you installed the Flasher.
# Ensure the battery is full.
# Unplug USB cable if present, and switch off the device.
# Run the Flasher from the Start menu
# '''This is an alternate to step 5, if you have already opened the Flasher, ignore this step.''' Open the Command Prompt (Start then Run or Windows Logo key + R) and type '''cmd''' then press Enter. Change the directory to where you installed the Flasher (TIP: Use the TAB key to auto-complete commands and file-names)&lt;pre&gt;cd &quot;%ProgramFiles%\maemo\flasher-3.5&quot;&lt;/pre&gt;
# Hold the '''u''' key on the '''device''' keyboard and connect the USB cable at the same time. See the [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo_Flasher-3.5#Setting_Maemo_device_to_flashing_mode|Flasher documentation]] for more information. (TIP: Hold the u key until Windows has successfully installed the driver.)
# Run the following command (TIP: Do not include '-R' if you are flashing EMMC as well, see below):&lt;pre&gt;flasher-3.5.exe -F RX-51_2009SE_2.2009.51-1_PR_COMBINED_MR0_ARM.bin -f -R&lt;/pre&gt;

'''Replace ''RX-51_2009SE_2.2009.51-1_PR_COMBINED_MR0_ARM.bin'' with the firmware you wish to update.''' (Make sure you have downloaded the actual corresponding file.) The latest PR1.3 official (rootfs) images are listed below:

'''USA'''
&lt;pre&gt;RX-51_2009SE_20.2010.36-2.002_PR_COMBINED_002_ARM.bin&lt;/pre&gt;

'''Middle East and North Africa'''
&lt;pre&gt;RX-51_2009SE_20.2010.36-2.003_PR_COMBINED_003_ARM.bin&lt;/pre&gt;

'''India'''
&lt;pre&gt;RX-51_2009SE_20.2010.36-2.004_PR_COMBINED_004_ARM.bin&lt;/pre&gt;

'''UK''' (not the vodafone firmware, but fully compatible with vodafone devices).
&lt;pre&gt;RX-51_2009SE_20.2010.36-2.203.1_PR_COMBINED_203_ARM.bin&lt;/pre&gt;

'''Global'''
&lt;pre&gt;RX-51_2009SE_20.2010.36-2_PR_COMBINED_MR0_ARM.bin&lt;/pre&gt;

The flash will take approximately 2-5 minutes after which the N900 will reboot and display the Welcome Screen with Regional settings. After booting, you may use the backup utility to restore your settings.

===== Issues with 64-bit Windows and Workarounds =====
According to [http://talk.maemo.org/showpost.php?p=411019&amp;postcount=67 this] post, Windows driver signing can cause problems. You either need to turn on the loading of unsigned drivers or boot your computer to whole another OS. There are a few workarounds:

===== Workaround for &quot;no suitable device found&quot; problem on Windows 7 x64 =====
Once this message appears, run &lt;code&gt;inf-wizard.exe&lt;/code&gt; from libusb-win32 package and create an inf file for &quot;N900 (PC Suite Mode)&quot; and install this inf driver. Then go to Device Manager and update the driver for N900 Phone Parent and the flasher should spring to life...

====== Option 1 ======
Disabling signed driver detection is done by choosing the option &quot;Boot without checking for signed drivers&quot; (or something similar) in the Windows boot-menu. To display the boot-menu press the &quot;F8&quot; key as soon as the Windows boot process starts (i.e. after the BIOS has loaded, and after GRUB or other ''non-Windows bootloaders'' have passed). 

====== Option 2 ======
Alternatively you can permanently disable driver checking via command line in Windows 7. [http://www.killertechtips.com/2009/05/05/disable-driver-signing-windows-7/ Instructions.] (Non-maemo.org site).

====== Option 3 ======
You can use  [http://www.microsoft.com/windows/virtual-pc/download.aspx Microsoft Virtual PC] - Also known as XP Mode. Professional, Enterprise, and Ultimate editions of Windows 7 come with Windows XP mode, but must be downloaded and installed before use.
# Connect your N900 in flasher mode; Hold '''u''' on the '''device''' keyboard, then connect the USB cable.
# Wait for Windows to install the appropriate drivers.
# Start Microsoft Virtual PC / Windows XP mode/
# Allow the Virtual PC to have access to your N900: (On the top bar): USB &gt; Nokia N900 (Update mode) (Attach). ''(If it doesn't say (update mode), you didn't enter update mode correctly by pressing &quot;u&quot;. Remove the cable and try again.)''
# Wait for Windows to install the appropriate drivers.
# When it is finished, proceed with the normal flashing steps above.

There have been numerous reports on the forums of people trying to flash the rootfs/FIASCO and eMMC with Windows 7 64 bit XP Mode/Virtual PC, where the rootfs/FIASCO image flashed just fine, but the eMMC image stays at &quot;no suitable device found. Waiting&quot;. Again allow the Virtual PC to have access to your N900: (On the top bar): USB &gt; Nokia N900 but *NOTICE* now it will be Nokia N900 (PC-Suite mode) (Attach). Now the flashing will start normally.

====== Option 4 ======

An alternative approach is to use an [http://www.ubuntu.com/getubuntu/download Ubuntu LiveCD] or a [https://wiki.ubuntu.com/LiveUsbPendrivePersistent Persistent USB installation]. This way, you are essentially using Ubuntu without installing it directly on your hard drive. Have ready [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php maemo_flasher-3.5_2.5.2.2_i386.deb], which is the Debian Linux equivalent of a setup/installation file, the firmware files you need, and optionally, this page, if you don't have access to an internet connection on the LiveCD/USB.

After booting into your LiveCD/USB, follow the instructions from the Linux section of this page.

====== Option 5 ======

Install other version of update drivers. Step by step instructions can be found at [http://talk.maemo.org/showpost.php?p=849980&amp;postcount=20 talk.maemo.org]. Video tutorial for setting up/installing the necessary drivers to enable flashing on Windows 7 64-bit OS can be found here: [http://www.youtube.com/watch?v=OkhjA9rztz0&amp;hd=1]

====== Option 6 ======

The Flasher (version 3.5) uses the libUSB drivers it finds in it's installed folder. Download the libusb library, and simply copy the right libusb.dll version to the folder you've installed Flasher to. So, rename libusb0_x86.dll to libusb0.dll for x86-systems (32-bit) or copy libusb0.dll from the amd64-folder for 64-bit systems.

==== 770/N800/N810/N810 WiMAX ====
Internet Tablet users can go to the appropriate support page for their device ([https://www.nokiausa.com/A41271130 N810 WiMAX Edition], [https://www.nokiausa.com/A4686323 N810], [https://www.nokiausa.com/A4410958 N800], or [http://europe.nokia.com/A4144790 770]), download and install the Software Update Wizard, run it and follow the on-screen prompts. This will work both for updating and re-flashing the same firmware image.

===Flashing only the kernel from a FIASCO image (expert topic!)===

If you only want to flash a kernel from a FIASCO image without overwriting your rootfs (e.g. because you tried out a different kernel and that didn't work) you can use the following flasher command instead of the one above:

 sudo ./flasher-3.5 -F ''&lt;firmware-image&gt;'' --flash-only=kernel -f -R

This will flash the kernel from the FIASCO image and then reboot your device. The rootfs will not be touched by this. NB a kernel usually needs matching modules in rootfs, so odds are your kernel from FIASCO image won't work either, if you messed up the modules in rootfs - you need to flash whole COMBINED/FIASCO image then to recover.

=== Flashing the eMMC in the N900 ===

{{ambox
|type=notice
|text=When flashing the eMMC content, the safe way is flash the eMMC/VANILLA image first, then remove battery for a moment, and then flash the FIASCO/Rootfs image. Do '''not''' boot up the device between the two i.e do NOT use the -R parameter at the end! 

Also see [[#Troubleshooting|troubleshooting section, bullet 6:&quot;If you cannot establish...&quot;]]

Rationale: on accidental booting in between the 2 flash processes, the sequence formerly suggested (rootfs first) will result in a broken system. The sequence &quot;eMMC first, then rootfs&quot; is checked back with Nokia affiliates and is proven to work as long as your rootfs still is somewhat functional. Note however that eMMC flashing will fail when your rootfs is completely messed up, the recommended flash sequence then is rootfs, eMMC, rootfs *again*.

''For users '''familiar with flashing''' and interested in a smooth fast process: you can flash combined first, and then *immediately* after that - without one 10th of a second of booting - directly continue with flashing the vanilla. The other way round doesn't work due to a bug in NOLO - so after flashing vanilla you need to remove battery to recover''}}
&lt;!-- PLEASE! Before editing above text, please look here: http://wiki.maemo.org/Talk:Updating_the_firmware --&gt;

Flashing the eMMC resets the MyDocs folder contents to factory settings. N900 users don't need to reflash the eMMC of their device when updating firmware but can do so to clear all data from the device. You may need to do so if you have a pre-production device e.g. in the Maemo Summit. If you have a sales unit and you have problems with your eMMC you should contact Nokia Care.
However there are cases known where for instance the desktop widget configuration data which is stored in user's home directory gets corrupted and causes bootloops on hildon desktop startup failing. In this case you'll actually need to reflash your eMMC to recover system from bootlooping (there are other more involved methods to recover too, search for &quot;backupmenu&quot;, &quot;watchdogs&quot;, &quot;rescueOS&quot;)

Also note that '''any backups created in your MyDocs area will need to be copied off the device to be safe across an eMMC flash''' as the MyDocs area and other partitions on &lt;code&gt;/dev/mmcblk0&lt;/code&gt; will be erased.

'''Note that flashing eMMC will delete the &lt;code&gt;/opt&lt;/code&gt; directory, so you *always* need to reflash your rootfs (the COMBINED image) after - or same time as - flashing eMMC (VANILLA img)'''

Note that the eMMC images available do not contain pre-loaded maps. If you reflash your eMMC you will lose them (the Maps application will work as usual but you will need to download the maps needed).

In order to flash the eMMC, follow these steps:
&lt;ol&gt;
&lt;li&gt;
Fully charge the battery (IMPORTANT!!)
&lt;/li&gt;
&lt;li&gt;
Install [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5|Flasher]] for your OS (Linux, Mac OS X or MS Windows)
&lt;/li&gt;
&lt;li&gt;
Grab the recent Vanilla eMMC image (.bin file) from [http://tablets-dev.nokia.com/nokia_N900.php the Nokia repository]. There isn't always a new eMMC image for a new COMBINED image, as usually the content of eMMC doesn't change with new versions of the system.
&lt;/li&gt;
&lt;li&gt;Navigate to the directory where the image file was saved (Windows users: if you don't know the full path to the image, copy it to the flasher directory)
&lt;/li&gt;
&lt;li&gt;
Execute the following command (in Linux you have to be root! On windows you have to be admin!):

''Replace RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin with the name of the most recent VANILLA file you downloaded''
&lt;ol&gt;
&lt;li&gt;
Windows:&lt;pre&gt;flasher-3.5.exe -F RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin -f&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Linux (Replace /path/to/ with the correct full pathname to the binary. Using tab-completion helps ;-) ):&lt;pre&gt;/path/to/flasher-3.5 -F RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin -f&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Debian based Linux (e.g Ubuntu):&lt;pre&gt;flasher-3.5 -F RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin -f&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
Text similar to the following will be displayed on the computer:
&lt;pre&gt;
flasher v2.5.2 (Oct 21 2009)

Image 'mmc', size 255947 kB
	Version RX-51_2009SE_10.2010.13-2.VANILLA
Suitable USB device not found, waiting.
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Plug in the '''powered down''' N900 while holding 'u' key
&lt;/li&gt;
&lt;li&gt;
The dim Nokia screen will be displayed for a few seconds followed by progression dots. Text similar to the following will be displayed on the computer:
&lt;pre&gt;
USB device found found at bus 002, device address 014.
Raw data transfer EP found at EP2.
Image(s) flashed successfully in 4.711 s (9199 kB/s)!
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
The flash will take a minute or so.
&lt;/li&gt;
&lt;li&gt;
When flashing of eMMC completed without errors: Switch off device by shortly removing battery.
&lt;/li&gt;
&lt;li&gt;'''Now flash the ''FIASCO/rootfs'' image using''' the [[#Updating_.26_Flashing_your_device|above commands]] with -R parameter.
&lt;/li&gt;
&lt;li&gt;
If you used the -R parameter, then N900 will reboot automatically, otherwise you need to reboot manually. The bright Nokia screen will come up, followed by progression dots with yellow LED blinking for a few seconds, first boot will be slow as the device would be optifying files.
&lt;/li&gt;
&lt;/ol&gt;

Experienced users still may want to follow the rootfs-then-eMMC scheme, which doesn't need the battery removal, but is way less &quot;fool-proof&quot; wrt accidental boots. A boot in this context is defined as any activity of the device (flashing LED, some display on screen) that doesn't result in and stop at the NOKIA boot screen with USB icon. Especially &quot;charging&quot; actually also implies a boot of the system, and there's no lower limit for duration of such an accidental boot, 5s are more than enough to ruin your freshly flashed system.

== Seamless Software Update ==

{{main|Seamless Software Update}}
[[:wikipedia:Maemo_(operating_system)#SSU|SSU]] is Nokia's new method for upgrading the devices over-the-air without requiring a reflash. When Nokia pushes an update over SSU, you will see an update notification and be given the option to install the update—just like with your computer.

Generally speaking, SSU updates should be relatively pain-free, but there are a few issues to watch out for:
* If you have an aftermarket kernel or initfs installed (like the rotation support kernel or [[Booting_from_a_flash_card#Install_bootmenu|fanoush's bootmenu]]) and a kernel or initfs upgrade is pushed, they will be overwritten and you'll need to wait for your kernel or the bootmenu to be updated to reinstall them.
* If you have extensively modified the home directory for user &quot;user&quot;, such as moved all the documents to a memory card or removing or leaving empty some of the subdirectories

If the update doesn't show up for you at all, you may have accidentally (or intentionally) uninstalled osso-software-version-rx*4, which is required to update. You can get it back by simply running an &lt;code&gt;apt-get install osso-software-version-rx34&lt;/code&gt;, for the N800, and an &lt;code&gt;apt-get install osso-software-version-rx44&lt;/code&gt;, for the N810. Then updating your repository list in Application manager.

If the packages that caused osso-software-version-rx*4 to be removed are still installed, they will need to be removed completely (in the case of conflicting packages). Alternatively, for packages which are simply newer than those specified by osso-software-version-rx*4, you can install osso-software-version-rx*4-unlocked, which does not have strict dependencies.

On N900 (probably also previous devices), it is possible that the application manager ends up with a message stating that it is required to upgrade using the Nokia PC application. In this case please read the article on [[cannot install firmware update|known problems and possible solutions]].

You can show the list of packages that are not going to be ugraded with &lt;code&gt;apt-get update &amp;&amp; apt-get upgrade&lt;/code&gt;. In that case, you can try using &lt;code&gt;apt-get dist-upgrade&lt;/code&gt; command (as root, the app manager has to be shut down) to override. '''This is not supported because you can break future updates. Several users had to reflash after apt-get dist-upgrade!'''.

== Troubleshooting ==

* '''Make sure your battery is (completely) charged!''' Flashing will fail when battery is too low, and battery will not charge if your system does not boot up correctly. You can find yourself trapped in a deadlock, when flashing fails due to battery depleting during flashing! '''If your device does not enter and stay in flashing mode (NOKIA + USB-icon on screen) despite you holding the &quot;U&quot; key while plugging it in to charger/PC, then battery is too low'''. If your device does not boot to a proper system, then you usually have to find a way to [http://europe.nokia.com/find-products/accessories/all-accessories/power/batteries/nokia-battery-bl-5j/compatibility charge battery externally] - a bootlooping or stalled boot will '''not charge''' battery! So better completely charge your battery prior to any attempt to flash the device.
* If you get a &quot;Permission denied&quot; error and have access to a linux box, then &lt;pre&gt;chmod +x flasher-2.0&lt;/pre&gt; or &lt;pre&gt;chmod +x flasher-3.0&lt;/pre&gt; or actually &lt;pre&gt;chmod +x flasher-3.5 &lt;/pre&gt; nowadays to make the flasher tool executable. You may also need root permissions, run command with sudo or su to root. (Tip: If your flash only gets to 19% then produces &quot;Permission denied,&quot;  try the &quot;global&quot; version of the image file instead. The US version has produced this problem.)
* If you need to flash your Nokia 770 with an image from 2005 then use the [http://tablets-dev.nokia.com/d3.php older flasher] called &quot;flasher&quot; with no number in the name
* If you get &quot;Error claiming USB interface: Device or resource busy&quot; error, make sure you run the flasher with sudo. If this does not fix the problem, as root, run &lt;pre&gt;modprobe -r cdc_phonet&lt;/pre&gt;

* If flashing stops with &quot;Write failed after 1048576 bytes usb_bulk_write: Resource temporarily unavailable&quot;, do not disconnect your N900 from usb and try again the flasher command.
* If you cannot establish a connection with N900, or got any other problems during starting or completing the flashing process, do the following steps which describe '''the complete foolproof flashing procedure''' again in terse form: ''(use a Linux machine to flash! Windows isn't really backed up with much support from community, for obvious reasons.)''
*# blacklist cdc_phonet (see above)! Run modprobe -r cdc_phonet 
*#(try to) Turn off the device - if nothing else helps, holding power key for &gt;8s is the ultimate means (except next point 2.) to do this.
*#Remove the battery - even if you were not able to shut device down in 1.
*#Start flasher with above mentioned command to flash (without -R, it's a useless convenience thing). It says &quot;Suitable device not found... waiting&quot; 
*#Plug the device to computer with a good USB cable.
*#Insert battery while holding &quot;u&quot; key. You can release the key as soon as screen turns on and shows the USB logo. Flashing shall start automatically. ''(If flasher answers &quot;unable to enumerate USB buses!&quot; as soon as N900 gets battery, just re-issue same flasher cmd immediately - cursor-up helps ;-D). If flasher doesn't detect the device, a Ctrl+C abort and re-issuing of the flasher command may help''
*#Check for correct diagnostic output of flasher, as quoted above. After flashing has finished, remove battery -&gt;(2.) 3.)
*#Repeat same procedure (2. - 7.) for each image to flash (sequence: eMMC first, then rootfs - some mess on rootfs may break eMMC flashing and require sequence rootfs eMMC rootfs again). ''So far this procedure always worked, given your PC side has no problems. Many known problems on PC side - esp &quot;waits forever&quot; / &quot;doesn't find N900&quot; - get fixed with a reboot *immediately prior* to doing the flashing.''
*#After flashing unplug your device from PC prior to first boot. First boot can take several minutes, and screen may turn dark during that. You may try lock-slider switch, but '''do not power down''' device during first boot, until it finally finished - I.E. do not touch power button after flashing, unless you're *sure* device hasn't already started to boot. Usually device will power down when unplugged from PC in flashing mode, you can tell this from white LED fading out, not even any dim backlight, and device not reacting to lockslider and kbd-open. Power it up from battery then, using the power button. ''Only then'' plugging in the wallcharger is a good idea. Make sure device charges and recharge battery while you're at it. After battery got fully charged again, it's probably safe to switch off your N900, as first boot setup should have finished.

* After re flashing if the sim is not detected (symbol of the sim card with a red slash across near battery meter) make sure that you have downloaded  the proper [http://tablets-dev.nokia.com/nokia_N900.php Firmware Download] (.bin) file for your region. If you have downloaded another .bin from some other region the sim may not be detected.

===Flashed but still getting only &quot;5 white dots going back and forth&quot;===
 
This can be caused by various problems. Known problems are:
* If boot finds a corrupted FAT32, it may decide to run fsck against it, which may take like hours to complete.
* System is trying to run corrupted ~/.profile file with wrong commands which interrupt complete boot.

Solution can be to use rescueOS: http://talk.maemo.org/showthread.php?t=75369 , which can help you to mount rootfs, home (mount /dev/mmcblk0p2 /mnt/free1) and edit files or &quot;do other useful rescue stuff&quot;.

===USB===

It may help to connect directly to the computer USB ports, avoiding the use of a hub - which includes the USB ports on laptop docking stations.  The USB ports in the back of a laptop may also be better than using those in the front.

Some distributions do not present the USB device in the way that it expects it.  First, see if it is necessary to &quot;mount&quot; USB:

 mount -t usbfs usbfs /proc/bus/usb

If that does not work, try patching the ''flasher'' code.  This replaces the use of &lt;code&gt;/proc/bus/usb&lt;/code&gt; with the newer &lt;code&gt;/dev/bus/usb&lt;/code&gt; filesystem:

 perl -pi -e 's-/proc/bus/usb-/dev/bus/usb\000-;' -i.backup $FLASHER

Replace &lt;code&gt;$FLASHER&lt;/code&gt; with the path to your flasher-2.0 or flasher-3.0 Linux binary.

[[Category:Users]]
[[Category:HowTo]]
[[Category:USB]]
[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Updating the firmware</title>
    <id>77</id>
    <revision>
      <id>49809</id>
      <timestamp>2012-09-22T17:27:09Z</timestamp>
      <contributor>
        <ip>122.172.0.249</ip>
      </contributor>
      <comment>Installing a firmware from somother region sim not detected</comment>
      <text xml:space="preserve">This page has seen massive edits to get it in line with N900 details of flashing. N8x0 owners might want to have a look to older versions, like http://wiki.maemo.org/index.php?title=Updating_the_firmware&amp;oldid=17120

'''Video Tutorials:'''

http://www.youtube.com/watch?v=E1zvRjL-2cM

http://www.youtube.com/watch?v=O54KdLvTA2U

== What does it do? ==

===N9===
Please see the main article [[Flashing N9]].

===N900===
''These descriptions assume that you are using the latest official images. This page is not exactly a step-by-step instruction, so better '''read the whole page''' prior to starting the flashing process.''

While talking about flashing, there are exactly two distinct processes and related files (also called images) frequently mentioned:
* (flashing the) '''FIASCO''' aka '''*COMBINED*''', also referred to as &quot;'''rootfs'''&quot; though this file and flashing process also consists of / affects NOLO bootloader (the several stages), the kernel, and usually the GSM modem firmware, in addition to the root filesystem which is basically the content of your 240 MB NAND flash storage and implements the Linux operating system.
* (flashing the) '''eMMC''' aka '''*VANILLA*''', which will replace the complete content of [[Nokia N900|N900's]] internal 32 GB eMMC storage ('''e'''mbedded '''MMC'''), which is: the &lt;code&gt;/home&lt;/code&gt; partition which has your stored browser passwords and game highscores and calendar and contacts etc. &lt;code&gt;/home&lt;/code&gt; is also containing &lt;code&gt;/opt&lt;/code&gt;. Plus eMMC stores all the content of the MyDocs 28 GB VFAT partition, where all the media and docs and other user content lives.

Often people use the term &quot;firmware&quot; for either or both of those images. It's misleading.

Flashing the '''rootfs''' on your N900 will reset the device's linux system back to factory settings, meaning all additional applications will vanish, and some configuration details (e.g. LED patterns) are reset to the original configuration, with the exception of the lock code; if you have already set a custom lock code, it will remain intact, instead of reverting to the default &quot;12345.&quot; Also, all information contained in &lt;code&gt;/home&lt;/code&gt; (except &lt;code&gt;/home/opt&lt;/code&gt;) will remain intact. This means the information stored in &lt;code&gt;/home/user/MyDocs&lt;/code&gt; which is the area visible in the default file manager (or when connecting to a computer), will remain intact. Your external memory (microSD), will also be unaffected.

Flashing the '''eMMC and rootfs''' on your N900 will completely reset the device to factory settings, reverting ''everything'' to factory settings, including /home with all (app-)preferences, bookmarks, contacts, communications, but again, excluding the external memory on micro-SD card and the lockcode. (you MUST flash rootfs as well, when flashing eMMC (because of &lt;code&gt;/opt&lt;/code&gt; deletion)

It is strongly advised you regularly use the Backup application to create backups of your settings and data to a safe storage. You will want to configure the Backup application in such a way it stores the backups to your microSD card - alternatively when creating manual backup of MyDocs as suggested below, backups stored to default location &quot;N900&quot; will be included and thus safe.

The Backup application will save:

*'''Communication and Calendar''': Stored conversations, accounts, contacts, and calendar entries. Only applies to content used with stock applications. (i.e. not Pidgin, or other third-party applications)
*'''Bookmarks''': Bookmarks stored via MicroB. (Default browser only)
*'''Settings''': Your current settings in the Settings &quot;application.&quot; (Settings in &lt;code&gt;/home/user&lt;/code&gt;, GConf, &lt;code&gt;/etc&lt;/code&gt;.) Third party settings applets will also be backed up and restored once installed. Manually created shell scripts or other files (except those in eMMC/MyDocs) must be manually backed up prior to a rootfs flash.
*'''Application List''': A list of repositories and installed applications to be re-activated and installed after flashing. (Only applies to applications and repositories installed via the included Application Manager)

When using Backup application to ''restore from'' some backup, you can select which of the above listed groups of data shall be restored. For Application List you even can select on a per-application granularity, i.e. exclude an arbitrary number of applications from restore.
(NOTE: it is a good idea to do a new backup of the system immediately ''prior'' to any restore - of course you don't overwrite an existing backup file for that, instead give the new backup a new descriptive name, like &quot;system_broken-foobar__prior_to_restore&quot;)

When flashing the eMMC, all user-created content on MyDocs (&quot;N900&quot;) must also be backed up manually to an external location in order to be preserved (i.e. computer or microSD). You can use Mass-Storage-mode via USB for this, or copy the whole content of MyDocs with Filemanager or similar tools. The eMMC image will contain and restore the MyDocs factory setting files and folders (.documents, .images, icons, etc.).

===N800/N810===

Upgrading wipes out your &lt;code&gt;/home&lt;/code&gt; directory. All of it. Make sure you backup all your data before upgrading.

== Updating &amp; Flashing your device ==

 {{ambox
|type=notice
|text=If you are flashing the N900 with the eMMC image, follow the [[#Flashing_the_eMMC_in_the_N900|instructions below]]. Also see [[#Troubleshooting|troubleshooting section, bullet 6:&quot;If you cannot establish...&quot;]]}}

 {{ambox
|type=notice
|text=MAKE SURE YOU KNOW YOUR LOCK CODE (default: 12345)
There has been at least one report where a device '''started''' to ask for lock code after reflashing!}}

=== All Systems ===
For Windows, Mac or Linux you can use flasher-3.5 which can be download from the [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php tablets-dev] page. This page contains all installation packages include documentation for using the flasher.

# Download the [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5|Flasher]] for your device model: [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php N900, N810, N800] or [http://tablets-dev.nokia.com/d3.php 770]
# Download the latest firmware image for your device model:
#* for [http://tablets-dev.nokia.com/nokia_N900.php N900]
#** for [[Maemo_UK_variant_firmware|UK devices]]
#* for [http://tablets-dev.nokia.com/nokia_N810wimax.php N810 WiMAX Edition]
#* for [http://tablets-dev.nokia.com/nokia_N810.php N810]
#* for [http://tablets-dev.nokia.com/nokia_N800.php N800]
#* for [http://tablets-dev.nokia.com/nokia_770.php 770] (or, for the Hacker Editions, [http://tablets-dev.nokia.com/os2007_hacker_edition.php OS2007HE] and [http://tablets-dev.nokia.com/os2008_hacker_edition.php OS2008HE])
# '''Ensure the battery is fully charged'''. Connect to charger until green light when screen locked! Don't say &quot;I already did it this morning&quot;! ''(this point obviously only applies when your device is not &quot;bricked&quot; or bootlooping.)''
# Unplug the charger and switch off the device. 

=== Linux PC ===

# Download the [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5|Flasher]] for your device model: [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php N900, N810, N800] or [http://tablets-dev.nokia.com/d3.php 770]
# Download the latest firmware image for your device model: [http://tablets-dev.nokia.com/nokia_N900.php N900](For UK N900 Devices: [[Maemo_UK_variant_firmware|Maemo 5 UK Firmware]]), [http://tablets-dev.nokia.com/nokia_N810wimax.php N810 WiMAX Edition], [http://tablets-dev.nokia.com/nokia_N810.php N810], [http://tablets-dev.nokia.com/nokia_N800.php N800], or [http://tablets-dev.nokia.com/nokia_770.php 770] (Hacker Editions: [http://tablets-dev.nokia.com/os2007_hacker_edition.php OS2007HE], [http://tablets-dev.nokia.com/os2008_hacker_edition.php OS2008HE])
# Ensure the battery of Nokia device is fully charged.
# Unplug the USB cable if present, and switch off the device. 
# If you downloaded the '''.deb''' version of the Flasher, install it with: &lt;br /&gt;&lt;pre&gt;sudo dpkg -i &lt;flasher-package-name&gt;&lt;/pre&gt;If you are using '''64-bit''' Linux, you'll need to force installation as follows:&lt;pre&gt;sudo dpkg -i --force-architecture &lt;flasher-package-name&gt;&lt;/pre&gt;
# If you downloaded the '''.tar.gz''' version instead, you should untar it manually. The instructions below assume you have untarred it to the current directory.
# If you installed the '''.deb''' version, run:&lt;pre&gt;sudo flasher-3.5 -F &lt;firmware-image&gt; -f -R&lt;/pre&gt;If you are using the '''.tar.gz package''', use:&lt;pre&gt;sudo ./flasher-3.5 -F &lt;firmware-image&gt; -f -R&lt;/pre&gt;
# It will say:&lt;br /&gt;&lt;pre&gt;Suitable USB device not found, waiting&lt;/pre&gt;
#* '''N900''': While holding the '''u''' key, connect the N900 to your computer via USB. Wait until you see a dim screen on your N900 with a Nokia logo in the middle of your screen with an USB icon in the top right corner. Note: You may not need to hold the U key - it seems to automatically flash if the flasher is ready at boot time.
#*# If the USB logo does not appear, and the device turns off - ensure the battery is charged by connecting to the wall charger for an hour and try again. Bear in mind that neither the wall charger nor the USB cable will charge the N900 battery if the N900 cannot boot the OS.
#* '''N810 WiMAX, N810, N800 and 770''': Connect your device to your computer via USB.  While holding the Home/Swap button (It's a house on the [[Nokia 770|770]] and [[Nokia N800|N800]], and two overlapping rectangles on the [[Nokia N810|N810]]), power on the device by holding the power button. You should see a Nokia logo in the middle of the screen, and a USB icon in the top right corner.
# You don't need to continue to hold any buttons once flashing starts.
# It should start flashing and then reboot. You can remove the USB cable when the flasher program exits back to the shell prompt.
'''Some notes''':
# If you get this error while trying to run flasher-3.5 &lt;br /&gt;&lt;pre&gt;./flasher-3.5: error while loading shared libraries: libusb-0.1.so.4: cannot open shared object file: No such file or directory&lt;/pre&gt; you are probably on 64 bit and you need to install a libusb compatibility package.  For example, on openSUSE 11.4 you just run &lt;br /&gt;&lt;pre&gt;zypper in libusb-0_1-4-32bit&lt;/pre&gt;&lt;br /&gt;On a debian based system you can download and install the 32-bit version in a separate location (don't install it on your system itself) &lt;br /&gt;First download the libusb-0.1-4_0.1.12-13_i386.deb library (google is your friend) and then:&lt;br/&gt;&lt;pre&gt;dpkg-deb -c libusb-0.1-4_0.1.12-13_i386.deb&lt;/pre&gt;&lt;pre&gt;sudo dpkg -x libusb-0.1-4_0.1.12-13_i386.deb libusb-0.1-4_0.1.12-13_i386&lt;/pre&gt;&lt;pre&gt;sudo mv libusb-0.1-4_0.1.12-13_i386/lib/* /lib32&lt;/pre&gt;&lt;pre&gt;cd /usr/lib32&lt;/pre&gt;&lt;pre&gt;sudo ln -s /lib32/libusb-0.1.so.4&lt;/pre&gt;&lt;br/&gt;Now Set the library path (as su):&lt;pre&gt;sudo su&lt;/pre&gt;&lt;pre&gt;export LD_LIBRARY_PATH=/usr/lib32/:$PATH&lt;/pre&gt;Now you can run the flasher application (as su)&lt;br/&gt;
# If flasher runs but exits when you plug in the phone saying &lt;br/&gt;
&lt;pre&gt;Unable to enumerate USB buses!&lt;/pre&gt; 
the problem usually is the kernel module cdc_phonet that is automatically loaded.  The solution is to temporarily blacklist it, until you are done flashing.  On openSUSE this can be done by creating a file like this:&lt;br /&gt;&lt;pre&gt;echo &quot;blacklist cdc_phonet&quot; &gt;/etc/modprobe.d/00-blacklist-cdcphonet.conf&lt;/pre&gt;When you finish flashing, remove the file.&lt;br /&gt;&lt;br /&gt;
There are other, probably timing, reasons causing occasional &quot;unable to enumerate USB&quot;. Immediately issue the flasher command again, up-arrow usually helps fetching last command to re-issue it.

=== Mac OS X ===
There are two methods for flashing the device on OS X, using the GUI, with the 770Flasher application or using the console, much like the Linux flashing method. ''Both methods work fine for both the 770 and the N800/N810.''

==== GUI with 770Flasher ====
This is the easier of the two methods, and should be used by most people.

# Download the [http://maemo.org/downloads/product/PC/770flasher/ 770Flasher] (yes, it will work fine for flashing an N800 or N810). Latest flashers (Linux/Mac), which work also for N900,  are also available on [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Latest Official Maemo Development Environment Page]
# Follow the [[#Flashing_your_Nokia_tablet|steps above]] to get the appropriate firmware image.
# Drag the firmware image (will end in .bin) onto 770Flasher.  Or open 770Flasher and select the image.
#The image may have a ,attachments ending.  Remove this to get to .bin
# Follow the on-screen prompts.
# You should now see ''Suitable USB device not found, waiting'', plug in the usb cable.  Switch on your device while holding the Home-button. Note for N810 users: switch on your device while holding the Swap button. Note for N900 users: Unplug USB cable. Switch of your device. Press and hold &quot;U&quot; key then plug in the USB cable. If the USB symbol in the top right corner shows up or the flashing starts let go the &quot;U&quot; key.
# Watch the messages as the image loads to the device after which it reboots automatically.

==== Console with Flasher-3.5 ====
These steps cover flashing the device with OS X using the Terminal. This is the more difficult than using [[#GUI_with_770Flasher|770Flasher]], but gives you access to the advanced options flasher-3.5 provides (like setting R&amp;D flags, flashing only parts of the image, unpacking the image, etc).

# Follow the [[#Updating_&amp;_Flashing_your_device|steps above]] to get the appropriate firmware image and flasher.
# Turn off your device (''make sure you unplug the charger or else the device wont power down completely'') and plug in the USB cable to a port on the computer and the port on your device. N900 users cannot plug in the usb cable yet, as it would start recharging the battery.
# Open up the Terminal (located in /Applications/Utilities/) and run:&lt;pre&gt;sudo /usr/bin/flasher-3.5 -F &lt;firmware-image&gt; -f -R&lt;/pre&gt;''You will be asked for an administrator password, enter it.''
# It will say:&lt;pre&gt;Suitable USB device not found, waiting&lt;/pre&gt;
# Unplug the power cord from the device, as this will prevent it from updating. Then take your device, and hold down the Home/Swap button (looks like a little house on the N800 and 770, and two overlapping rectangles on the N810 users do not need to hold down anything), and while holding down the Home/Swap button press the power button to turn it on. N900 users press ‘u’ button and plug the USB cable. Release button when flashing process begins.&lt;br /&gt;''If the device does not boot and start flashing, make sure the USB cable is plugged in.''
# It should start flashing and then reboot. You can remove the USB cable after it has booted to a normal desktop (just make sure to eject any cards that may have mounted on your Mac).

=== Windows ===

====N900====

=====Updating the firmware using the Nokia Software Updater=====

Microsoft Windows users who wish to '''update''' their N900 can use the [http://europe.nokia.com/support/download-software/device-software-update Nokia Software Updater (aka NSU)], or use the Flasher (see section below).

The Nokia Software Updater is compatible with Windows XP Service Pack 3, Windows Vista Service Pack 2, and Windows 7. (Some users may encounter problems due to varying causes.)

The Nokia Software Updater can now be used when updating from a previous firmware to a new one or re-flashing.

=====Updating or re-flashing the firmware using the Flasher=====

''Note: This method is fully compatible with 32-bit versions of Windows; 64-bit users may encounter problems. There is a workaround that is reported working though at [http://talk.maemo.org/showpost.php?p=849980&amp;postcount=20 talk.maemo.org] Also note you need administrator rights to run flasher (somebody with a clue about windows may want to check the procedure regarding this aspect - shift-run?)''

To flash from the Windows (XP, Vista, or 7) command line,

# [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Download] and install the latest version of the Flasher. 
# [http://tablets-dev.nokia.com/nokia_N900.php Download] the latest firmware (.bin) file for your region and save it to &lt;code&gt; %ProgramFiles%\maemo\flasher-3.5\&lt;/code&gt; (the default path), or wherever you installed the Flasher.
# Ensure the battery is full.
# Unplug USB cable if present, and switch off the device.
# Run the Flasher from the Start menu
# '''This is an alternate to step 5, if you have already opened the Flasher, ignore this step.''' Open the Command Prompt (Start then Run or Windows Logo key + R) and type '''cmd''' then press Enter. Change the directory to where you installed the Flasher (TIP: Use the TAB key to auto-complete commands and file-names)&lt;pre&gt;cd &quot;%ProgramFiles%\maemo\flasher-3.5&quot;&lt;/pre&gt;
# Hold the '''u''' key on the '''device''' keyboard and connect the USB cable at the same time. See the [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo_Flasher-3.5#Setting_Maemo_device_to_flashing_mode|Flasher documentation]] for more information. (TIP: Hold the u key until Windows has successfully installed the driver.)
# Run the following command (TIP: Do not include '-R' if you are flashing EMMC as well, see below):&lt;pre&gt;flasher-3.5.exe -F RX-51_2009SE_2.2009.51-1_PR_COMBINED_MR0_ARM.bin -f -R&lt;/pre&gt;

'''Replace ''RX-51_2009SE_2.2009.51-1_PR_COMBINED_MR0_ARM.bin'' with the firmware you wish to update.''' (Make sure you have downloaded the actual corresponding file.) The latest PR1.3 official (rootfs) images are listed below:

'''USA'''
&lt;pre&gt;RX-51_2009SE_20.2010.36-2.002_PR_COMBINED_002_ARM.bin&lt;/pre&gt;

'''Middle East and North Africa'''
&lt;pre&gt;RX-51_2009SE_20.2010.36-2.003_PR_COMBINED_003_ARM.bin&lt;/pre&gt;

'''India'''
&lt;pre&gt;RX-51_2009SE_20.2010.36-2.004_PR_COMBINED_004_ARM.bin&lt;/pre&gt;

'''UK''' (not the vodafone firmware, but fully compatible with vodafone devices).
&lt;pre&gt;RX-51_2009SE_20.2010.36-2.203.1_PR_COMBINED_203_ARM.bin&lt;/pre&gt;

'''Global'''
&lt;pre&gt;RX-51_2009SE_20.2010.36-2_PR_COMBINED_MR0_ARM.bin&lt;/pre&gt;

The flash will take approximately 2-5 minutes after which the N900 will reboot and display the Welcome Screen with Regional settings. After booting, you may use the backup utility to restore your settings.

===== Issues with 64-bit Windows and Workarounds =====
According to [http://talk.maemo.org/showpost.php?p=411019&amp;postcount=67 this] post, Windows driver signing can cause problems. You either need to turn on the loading of unsigned drivers or boot your computer to whole another OS. There are a few workarounds:

===== Workaround for &quot;no suitable device found&quot; problem on Windows 7 x64 =====
Once this message appears, run &lt;code&gt;inf-wizard.exe&lt;/code&gt; from libusb-win32 package and create an inf file for &quot;N900 (PC Suite Mode)&quot; and install this inf driver. Then go to Device Manager and update the driver for N900 Phone Parent and the flasher should spring to life...

====== Option 1 ======
Disabling signed driver detection is done by choosing the option &quot;Boot without checking for signed drivers&quot; (or something similar) in the Windows boot-menu. To display the boot-menu press the &quot;F8&quot; key as soon as the Windows boot process starts (i.e. after the BIOS has loaded, and after GRUB or other ''non-Windows bootloaders'' have passed). 

====== Option 2 ======
Alternatively you can permanently disable driver checking via command line in Windows 7. [http://www.killertechtips.com/2009/05/05/disable-driver-signing-windows-7/ Instructions.] (Non-maemo.org site).

====== Option 3 ======
You can use  [http://www.microsoft.com/windows/virtual-pc/download.aspx Microsoft Virtual PC] - Also known as XP Mode. Professional, Enterprise, and Ultimate editions of Windows 7 come with Windows XP mode, but must be downloaded and installed before use.
# Connect your N900 in flasher mode; Hold '''u''' on the '''device''' keyboard, then connect the USB cable.
# Wait for Windows to install the appropriate drivers.
# Start Microsoft Virtual PC / Windows XP mode/
# Allow the Virtual PC to have access to your N900: (On the top bar): USB &gt; Nokia N900 (Update mode) (Attach). ''(If it doesn't say (update mode), you didn't enter update mode correctly by pressing &quot;u&quot;. Remove the cable and try again.)''
# Wait for Windows to install the appropriate drivers.
# When it is finished, proceed with the normal flashing steps above.

There have been numerous reports on the forums of people trying to flash the rootfs/FIASCO and eMMC with Windows 7 64 bit XP Mode/Virtual PC, where the rootfs/FIASCO image flashed just fine, but the eMMC image stays at &quot;no suitable device found. Waiting&quot;. Again allow the Virtual PC to have access to your N900: (On the top bar): USB &gt; Nokia N900 but *NOTICE* now it will be Nokia N900 (PC-Suite mode) (Attach). Now the flashing will start normally.

====== Option 4 ======

An alternative approach is to use an [http://www.ubuntu.com/getubuntu/download Ubuntu LiveCD] or a [https://wiki.ubuntu.com/LiveUsbPendrivePersistent Persistent USB installation]. This way, you are essentially using Ubuntu without installing it directly on your hard drive. Have ready [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php maemo_flasher-3.5_2.5.2.2_i386.deb], which is the Debian Linux equivalent of a setup/installation file, the firmware files you need, and optionally, this page, if you don't have access to an internet connection on the LiveCD/USB.

After booting into your LiveCD/USB, follow the instructions from the Linux section of this page.

====== Option 5 ======

Install other version of update drivers. Step by step instructions can be found at [http://talk.maemo.org/showpost.php?p=849980&amp;postcount=20 talk.maemo.org]. Video tutorial for setting up/installing the necessary drivers to enable flashing on Windows 7 64-bit OS can be found here: [http://www.youtube.com/watch?v=OkhjA9rztz0&amp;hd=1]

====== Option 6 ======

The Flasher (version 3.5) uses the libUSB drivers it finds in it's installed folder. Download the libusb library, and simply copy the right libusb.dll version to the folder you've installed Flasher to. So, rename libusb0_x86.dll to libusb0.dll for x86-systems (32-bit) or copy libusb0.dll from the amd64-folder for 64-bit systems.

==== 770/N800/N810/N810 WiMAX ====
Internet Tablet users can go to the appropriate support page for their device ([https://www.nokiausa.com/A41271130 N810 WiMAX Edition], [https://www.nokiausa.com/A4686323 N810], [https://www.nokiausa.com/A4410958 N800], or [http://europe.nokia.com/A4144790 770]), download and install the Software Update Wizard, run it and follow the on-screen prompts. This will work both for updating and re-flashing the same firmware image.

===Flashing only the kernel from a FIASCO image (expert topic!)===

If you only want to flash a kernel from a FIASCO image without overwriting your rootfs (e.g. because you tried out a different kernel and that didn't work) you can use the following flasher command instead of the one above:

 sudo ./flasher-3.5 -F ''&lt;firmware-image&gt;'' --flash-only=kernel -f -R

This will flash the kernel from the FIASCO image and then reboot your device. The rootfs will not be touched by this. NB a kernel usually needs matching modules in rootfs, so odds are your kernel from FIASCO image won't work either, if you messed up the modules in rootfs - you need to flash whole COMBINED/FIASCO image then to recover.

=== Flashing the eMMC in the N900 ===

{{ambox
|type=notice
|text=When flashing the eMMC content, the safe way is flash the eMMC/VANILLA image first, then remove battery for a moment, and then flash the FIASCO/Rootfs image. Do '''not''' boot up the device between the two i.e do NOT use the -R parameter at the end! 

Also see [[#Troubleshooting|troubleshooting section, bullet 6:&quot;If you cannot establish...&quot;]]

Rationale: on accidental booting in between the 2 flash processes, the sequence formerly suggested (rootfs first) will result in a broken system. The sequence &quot;eMMC first, then rootfs&quot; is checked back with Nokia affiliates and is proven to work as long as your rootfs still is somewhat functional. Note however that eMMC flashing will fail when your rootfs is completely messed up, the recommended flash sequence then is rootfs, eMMC, rootfs *again*.

''For users '''familiar with flashing''' and interested in a smooth fast process: you can flash combined first, and then *immediately* after that - without one 10th of a second of booting - directly continue with flashing the vanilla. The other way round doesn't work due to a bug in NOLO - so after flashing vanilla you need to remove battery to recover''}}
&lt;!-- PLEASE! Before editing above text, please look here: http://wiki.maemo.org/Talk:Updating_the_firmware --&gt;

Flashing the eMMC resets the MyDocs folder contents to factory settings. N900 users don't need to reflash the eMMC of their device when updating firmware but can do so to clear all data from the device. You may need to do so if you have a pre-production device e.g. in the Maemo Summit. If you have a sales unit and you have problems with your eMMC you should contact Nokia Care.
However there are cases known where for instance the desktop widget configuration data which is stored in user's home directory gets corrupted and causes bootloops on hildon desktop startup failing. In this case you'll actually need to reflash your eMMC to recover system from bootlooping (there are other more involved methods to recover too, search for &quot;backupmenu&quot;, &quot;watchdogs&quot;, &quot;rescueOS&quot;)

Also note that '''any backups created in your MyDocs area will need to be copied off the device to be safe across an eMMC flash''' as the MyDocs area and other partitions on &lt;code&gt;/dev/mmcblk0&lt;/code&gt; will be erased.

'''Note that flashing eMMC will delete the &lt;code&gt;/opt&lt;/code&gt; directory, so you *always* need to reflash your rootfs (the COMBINED image) after - or same time as - flashing eMMC (VANILLA img)'''

Note that the eMMC images available do not contain pre-loaded maps. If you reflash your eMMC you will lose them (the Maps application will work as usual but you will need to download the maps needed).

In order to flash the eMMC, follow these steps:
&lt;ol&gt;
&lt;li&gt;
Fully charge the battery (IMPORTANT!!)
&lt;/li&gt;
&lt;li&gt;
Install [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5|Flasher]] for your OS (Linux, Mac OS X or MS Windows)
&lt;/li&gt;
&lt;li&gt;
Grab the recent Vanilla eMMC image (.bin file) from [http://tablets-dev.nokia.com/nokia_N900.php the Nokia repository]. There isn't always a new eMMC image for a new COMBINED image, as usually the content of eMMC doesn't change with new versions of the system.
&lt;/li&gt;
&lt;li&gt;Navigate to the directory where the image file was saved (Windows users: if you don't know the full path to the image, copy it to the flasher directory)
&lt;/li&gt;
&lt;li&gt;
Execute the following command (in Linux you have to be root! On windows you have to be admin!):

''Replace RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin with the name of the most recent VANILLA file you downloaded''
&lt;ol&gt;
&lt;li&gt;
Windows:&lt;pre&gt;flasher-3.5.exe -F RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin -f&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Linux (Replace /path/to/ with the correct full pathname to the binary. Using tab-completion helps ;-) ):&lt;pre&gt;/path/to/flasher-3.5 -F RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin -f&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Debian based Linux (e.g Ubuntu):&lt;pre&gt;flasher-3.5 -F RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin -f&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
Text similar to the following will be displayed on the computer:
&lt;pre&gt;
flasher v2.5.2 (Oct 21 2009)

Image 'mmc', size 255947 kB
	Version RX-51_2009SE_10.2010.13-2.VANILLA
Suitable USB device not found, waiting.
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Plug in the '''powered down''' N900 while holding 'u' key
&lt;/li&gt;
&lt;li&gt;
The dim Nokia screen will be displayed for a few seconds followed by progression dots. Text similar to the following will be displayed on the computer:
&lt;pre&gt;
USB device found found at bus 002, device address 014.
Raw data transfer EP found at EP2.
Image(s) flashed successfully in 4.711 s (9199 kB/s)!
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
The flash will take a minute or so.
&lt;/li&gt;
&lt;li&gt;
When flashing of eMMC completed without errors: Switch off device by shortly removing battery.
&lt;/li&gt;
&lt;li&gt;'''Now flash the ''FIASCO/rootfs'' image using''' the [[#Updating_.26_Flashing_your_device|above commands]] with -R parameter.
&lt;/li&gt;
&lt;li&gt;
If you used the -R parameter, then N900 will reboot automatically, otherwise you need to reboot manually. The bright Nokia screen will come up, followed by progression dots with yellow LED blinking for a few seconds, first boot will be slow as the device would be optifying files.
&lt;/li&gt;
&lt;/ol&gt;

Experienced users still may want to follow the rootfs-then-eMMC scheme, which doesn't need the battery removal, but is way less &quot;fool-proof&quot; wrt accidental boots. A boot in this context is defined as any activity of the device (flashing LED, some display on screen) that doesn't result in and stop at the NOKIA boot screen with USB icon. Especially &quot;charging&quot; actually also implies a boot of the system, and there's no lower limit for duration of such an accidental boot, 5s are more than enough to ruin your freshly flashed system.

== Seamless Software Update ==

{{main|Seamless Software Update}}
[[:wikipedia:Maemo_(operating_system)#SSU|SSU]] is Nokia's new method for upgrading the devices over-the-air without requiring a reflash. When Nokia pushes an update over SSU, you will see an update notification and be given the option to install the update—just like with your computer.

Generally speaking, SSU updates should be relatively pain-free, but there are a few issues to watch out for:
* If you have an aftermarket kernel or initfs installed (like the rotation support kernel or [[Booting_from_a_flash_card#Install_bootmenu|fanoush's bootmenu]]) and a kernel or initfs upgrade is pushed, they will be overwritten and you'll need to wait for your kernel or the bootmenu to be updated to reinstall them.
* If you have extensively modified the home directory for user &quot;user&quot;, such as moved all the documents to a memory card or removing or leaving empty some of the subdirectories

If the update doesn't show up for you at all, you may have accidentally (or intentionally) uninstalled osso-software-version-rx*4, which is required to update. You can get it back by simply running an &lt;code&gt;apt-get install osso-software-version-rx34&lt;/code&gt;, for the N800, and an &lt;code&gt;apt-get install osso-software-version-rx44&lt;/code&gt;, for the N810. Then updating your repository list in Application manager.

If the packages that caused osso-software-version-rx*4 to be removed are still installed, they will need to be removed completely (in the case of conflicting packages). Alternatively, for packages which are simply newer than those specified by osso-software-version-rx*4, you can install osso-software-version-rx*4-unlocked, which does not have strict dependencies.

On N900 (probably also previous devices), it is possible that the application manager ends up with a message stating that it is required to upgrade using the Nokia PC application. In this case please read the article on [[cannot install firmware update|known problems and possible solutions]].

You can show the list of packages that are not going to be ugraded with &lt;code&gt;apt-get update &amp;&amp; apt-get upgrade&lt;/code&gt;. In that case, you can try using &lt;code&gt;apt-get dist-upgrade&lt;/code&gt; command (as root, the app manager has to be shut down) to override. '''This is not supported because you can break future updates. Several users had to reflash after apt-get dist-upgrade!'''.

== Troubleshooting ==

* '''Make sure your battery is (completely) charged!''' Flashing will fail when battery is too low, and battery will not charge if your system does not boot up correctly. You can find yourself trapped in a deadlock, when flashing fails due to battery depleting during flashing! '''If your device does not enter and stay in flashing mode (NOKIA + USB-icon on screen) despite you holding the &quot;U&quot; key while plugging it in to charger/PC, then battery is too low'''. If your device does not boot to a proper system, then you usually have to find a way to [http://europe.nokia.com/find-products/accessories/all-accessories/power/batteries/nokia-battery-bl-5j/compatibility charge battery externally] - a bootlooping or stalled boot will '''not charge''' battery! So better completely charge your battery prior to any attempt to flash the device.
* If you get a &quot;Permission denied&quot; error and have access to a linux box, then &lt;pre&gt;chmod +x flasher-2.0&lt;/pre&gt; or &lt;pre&gt;chmod +x flasher-3.0&lt;/pre&gt; or actually &lt;pre&gt;chmod +x flasher-3.5 &lt;/pre&gt; nowadays to make the flasher tool executable. You may also need root permissions, run command with sudo or su to root. (Tip: If your flash only gets to 19% then produces &quot;Permission denied,&quot;  try the &quot;global&quot; version of the image file instead. The US version has produced this problem.)
* If you need to flash your Nokia 770 with an image from 2005 then use the [http://tablets-dev.nokia.com/d3.php older flasher] called &quot;flasher&quot; with no number in the name
* If you get &quot;Error claiming USB interface: Device or resource busy&quot; error, make sure you run the flasher with sudo. If this does not fix the problem, as root, run &lt;pre&gt;modprobe -r cdc_phonet&lt;/pre&gt;

* If flashing stops with &quot;Write failed after 1048576 bytes usb_bulk_write: Resource temporarily unavailable&quot;, do not disconnect your N900 from usb and try again the flasher command.
* If you cannot establish a connection with N900, or got any other problems during starting or completing the flashing process, do the following steps which describe '''the complete foolproof flashing procedure''' again in terse form: ''(use a Linux machine to flash! Windows isn't really backed up with much support from community, for obvious reasons.)''
*# blacklist cdc_phonet (see above)! Run modprobe -r cdc_phonet 
*#(try to) Turn off the device - if nothing else helps, holding power key for &gt;8s is the ultimate means (except next point 2.) to do this.
*#Remove the battery - even if you were not able to shut device down in 1.
*#Start flasher with above mentioned command to flash (without -R, it's a useless convenience thing). It says &quot;Suitable device not found... waiting&quot; 
*#Plug the device to computer with a good USB cable.
*#Insert battery while holding &quot;u&quot; key. You can release the key as soon as screen turns on and shows the USB logo. Flashing shall start automatically. ''(If flasher answers &quot;unable to enumerate USB buses!&quot; as soon as N900 gets battery, just re-issue same flasher cmd immediately - cursor-up helps ;-D). If flasher doesn't detect the device, a Ctrl+C abort and re-issuing of the flasher command may help''
*#Check for correct diagnostic output of flasher, as quoted above. After flashing has finished, remove battery -&gt;(2.) 3.)
*#Repeat same procedure (2. - 7.) for each image to flash (sequence: eMMC first, then rootfs - some mess on rootfs may break eMMC flashing and require sequence rootfs eMMC rootfs again). ''So far this procedure always worked, given your PC side has no problems. Many known problems on PC side - esp &quot;waits forever&quot; / &quot;doesn't find N900&quot; - get fixed with a reboot *immediately prior* to doing the flashing.''
*#After flashing unplug your device from PC prior to first boot. First boot can take several minutes, and screen may turn dark during that. You may try lock-slider switch, but '''do not power down''' device during first boot, until it finally finished - I.E. do not touch power button after flashing, unless you're *sure* device hasn't already started to boot. Usually device will power down when unplugged from PC in flashing mode, you can tell this from white LED fading out, not even any dim backlight, and device not reacting to lockslider and kbd-open. Power it up from battery then, using the power button. ''Only then'' plugging in the wallcharger is a good idea. Make sure device charges and recharge battery while you're at it. After battery got fully charged again, it's probably safe to switch off your N900, as first boot setup should have finished.

* After re flashing if the sim is not detected (symbol of the sim card with a red slash across near battery meter) make sure that you have downloaded  the proper [http://tablets-dev.nokia.com/nokia_N900.php Firmware Download] (.bin) file for your region. If you have downloaded another .bin from some other region the sim may not be detected.

===Flashed but still getting only &quot;5 white dots going back and forth&quot;===
 
This can be caused by various problems. Known problems are:
* If boot finds a corrupted FAT32, it may decide to run fsck against it, which may take like hours to complete.
* System is trying to run corrupted ~/.profile file with wrong commands which interrupt complete boot.

Solution can be to use rescueOS: http://talk.maemo.org/showthread.php?t=75369 , which can help you to mount rootfs, home (mount /dev/mmcblk0p2 /mnt/free1) and edit files or &quot;do other useful rescue stuff&quot;.

===USB===

It may help to connect directly to the computer USB ports, avoiding the use of a hub - which includes the USB ports on laptop docking stations.  The USB ports in the back of a laptop may also be better than using those in the front.

Some distributions do not present the USB device in the way that it expects it.  First, see if it is necessary to &quot;mount&quot; USB:

 mount -t usbfs usbfs /proc/bus/usb

If that does not work, try patching the ''flasher'' code.  This replaces the use of &lt;code&gt;/proc/bus/usb&lt;/code&gt; with the newer &lt;code&gt;/dev/bus/usb&lt;/code&gt; filesystem:

 perl -pi -e 's-/proc/bus/usb-/dev/bus/usb\000-;' -i.backup $FLASHER

Replace &lt;code&gt;$FLASHER&lt;/code&gt; with the path to your flasher-2.0 or flasher-3.0 Linux binary.

[[Category:Users]]
[[Category:HowTo]]
[[Category:USB]]
[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Updating the firmware</title>
    <id>77</id>
    <revision>
      <id>49809</id>
      <timestamp>2012-09-22T17:27:09Z</timestamp>
      <contributor>
        <ip>122.172.0.249</ip>
      </contributor>
      <comment>Installing a firmware from somother region sim not detected</comment>
      <text xml:space="preserve">This page has seen massive edits to get it in line with N900 details of flashing. N8x0 owners might want to have a look to older versions, like http://wiki.maemo.org/index.php?title=Updating_the_firmware&amp;oldid=17120

'''Video Tutorials:'''

http://www.youtube.com/watch?v=E1zvRjL-2cM

http://www.youtube.com/watch?v=O54KdLvTA2U

== What does it do? ==

===N9===
Please see the main article [[Flashing N9]].

===N900===
''These descriptions assume that you are using the latest official images. This page is not exactly a step-by-step instruction, so better '''read the whole page''' prior to starting the flashing process.''

While talking about flashing, there are exactly two distinct processes and related files (also called images) frequently mentioned:
* (flashing the) '''FIASCO''' aka '''*COMBINED*''', also referred to as &quot;'''rootfs'''&quot; though this file and flashing process also consists of / affects NOLO bootloader (the several stages), the kernel, and usually the GSM modem firmware, in addition to the root filesystem which is basically the content of your 240 MB NAND flash storage and implements the Linux operating system.
* (flashing the) '''eMMC''' aka '''*VANILLA*''', which will replace the complete content of [[Nokia N900|N900's]] internal 32 GB eMMC storage ('''e'''mbedded '''MMC'''), which is: the &lt;code&gt;/home&lt;/code&gt; partition which has your stored browser passwords and game highscores and calendar and contacts etc. &lt;code&gt;/home&lt;/code&gt; is also containing &lt;code&gt;/opt&lt;/code&gt;. Plus eMMC stores all the content of the MyDocs 28 GB VFAT partition, where all the media and docs and other user content lives.

Often people use the term &quot;firmware&quot; for either or both of those images. It's misleading.

Flashing the '''rootfs''' on your N900 will reset the device's linux system back to factory settings, meaning all additional applications will vanish, and some configuration details (e.g. LED patterns) are reset to the original configuration, with the exception of the lock code; if you have already set a custom lock code, it will remain intact, instead of reverting to the default &quot;12345.&quot; Also, all information contained in &lt;code&gt;/home&lt;/code&gt; (except &lt;code&gt;/home/opt&lt;/code&gt;) will remain intact. This means the information stored in &lt;code&gt;/home/user/MyDocs&lt;/code&gt; which is the area visible in the default file manager (or when connecting to a computer), will remain intact. Your external memory (microSD), will also be unaffected.

Flashing the '''eMMC and rootfs''' on your N900 will completely reset the device to factory settings, reverting ''everything'' to factory settings, including /home with all (app-)preferences, bookmarks, contacts, communications, but again, excluding the external memory on micro-SD card and the lockcode. (you MUST flash rootfs as well, when flashing eMMC (because of &lt;code&gt;/opt&lt;/code&gt; deletion)

It is strongly advised you regularly use the Backup application to create backups of your settings and data to a safe storage. You will want to configure the Backup application in such a way it stores the backups to your microSD card - alternatively when creating manual backup of MyDocs as suggested below, backups stored to default location &quot;N900&quot; will be included and thus safe.

The Backup application will save:

*'''Communication and Calendar''': Stored conversations, accounts, contacts, and calendar entries. Only applies to content used with stock applications. (i.e. not Pidgin, or other third-party applications)
*'''Bookmarks''': Bookmarks stored via MicroB. (Default browser only)
*'''Settings''': Your current settings in the Settings &quot;application.&quot; (Settings in &lt;code&gt;/home/user&lt;/code&gt;, GConf, &lt;code&gt;/etc&lt;/code&gt;.) Third party settings applets will also be backed up and restored once installed. Manually created shell scripts or other files (except those in eMMC/MyDocs) must be manually backed up prior to a rootfs flash.
*'''Application List''': A list of repositories and installed applications to be re-activated and installed after flashing. (Only applies to applications and repositories installed via the included Application Manager)

When using Backup application to ''restore from'' some backup, you can select which of the above listed groups of data shall be restored. For Application List you even can select on a per-application granularity, i.e. exclude an arbitrary number of applications from restore.
(NOTE: it is a good idea to do a new backup of the system immediately ''prior'' to any restore - of course you don't overwrite an existing backup file for that, instead give the new backup a new descriptive name, like &quot;system_broken-foobar__prior_to_restore&quot;)

When flashing the eMMC, all user-created content on MyDocs (&quot;N900&quot;) must also be backed up manually to an external location in order to be preserved (i.e. computer or microSD). You can use Mass-Storage-mode via USB for this, or copy the whole content of MyDocs with Filemanager or similar tools. The eMMC image will contain and restore the MyDocs factory setting files and folders (.documents, .images, icons, etc.).

===N800/N810===

Upgrading wipes out your &lt;code&gt;/home&lt;/code&gt; directory. All of it. Make sure you backup all your data before upgrading.

== Updating &amp; Flashing your device ==

 {{ambox
|type=notice
|text=If you are flashing the N900 with the eMMC image, follow the [[#Flashing_the_eMMC_in_the_N900|instructions below]]. Also see [[#Troubleshooting|troubleshooting section, bullet 6:&quot;If you cannot establish...&quot;]]}}

 {{ambox
|type=notice
|text=MAKE SURE YOU KNOW YOUR LOCK CODE (default: 12345)
There has been at least one report where a device '''started''' to ask for lock code after reflashing!}}

=== All Systems ===
For Windows, Mac or Linux you can use flasher-3.5 which can be download from the [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php tablets-dev] page. This page contains all installation packages include documentation for using the flasher.

# Download the [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5|Flasher]] for your device model: [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php N900, N810, N800] or [http://tablets-dev.nokia.com/d3.php 770]
# Download the latest firmware image for your device model:
#* for [http://tablets-dev.nokia.com/nokia_N900.php N900]
#** for [[Maemo_UK_variant_firmware|UK devices]]
#* for [http://tablets-dev.nokia.com/nokia_N810wimax.php N810 WiMAX Edition]
#* for [http://tablets-dev.nokia.com/nokia_N810.php N810]
#* for [http://tablets-dev.nokia.com/nokia_N800.php N800]
#* for [http://tablets-dev.nokia.com/nokia_770.php 770] (or, for the Hacker Editions, [http://tablets-dev.nokia.com/os2007_hacker_edition.php OS2007HE] and [http://tablets-dev.nokia.com/os2008_hacker_edition.php OS2008HE])
# '''Ensure the battery is fully charged'''. Connect to charger until green light when screen locked! Don't say &quot;I already did it this morning&quot;! ''(this point obviously only applies when your device is not &quot;bricked&quot; or bootlooping.)''
# Unplug the charger and switch off the device. 

=== Linux PC ===

# Download the [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5|Flasher]] for your device model: [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php N900, N810, N800] or [http://tablets-dev.nokia.com/d3.php 770]
# Download the latest firmware image for your device model: [http://tablets-dev.nokia.com/nokia_N900.php N900](For UK N900 Devices: [[Maemo_UK_variant_firmware|Maemo 5 UK Firmware]]), [http://tablets-dev.nokia.com/nokia_N810wimax.php N810 WiMAX Edition], [http://tablets-dev.nokia.com/nokia_N810.php N810], [http://tablets-dev.nokia.com/nokia_N800.php N800], or [http://tablets-dev.nokia.com/nokia_770.php 770] (Hacker Editions: [http://tablets-dev.nokia.com/os2007_hacker_edition.php OS2007HE], [http://tablets-dev.nokia.com/os2008_hacker_edition.php OS2008HE])
# Ensure the battery of Nokia device is fully charged.
# Unplug the USB cable if present, and switch off the device. 
# If you downloaded the '''.deb''' version of the Flasher, install it with: &lt;br /&gt;&lt;pre&gt;sudo dpkg -i &lt;flasher-package-name&gt;&lt;/pre&gt;If you are using '''64-bit''' Linux, you'll need to force installation as follows:&lt;pre&gt;sudo dpkg -i --force-architecture &lt;flasher-package-name&gt;&lt;/pre&gt;
# If you downloaded the '''.tar.gz''' version instead, you should untar it manually. The instructions below assume you have untarred it to the current directory.
# If you installed the '''.deb''' version, run:&lt;pre&gt;sudo flasher-3.5 -F &lt;firmware-image&gt; -f -R&lt;/pre&gt;If you are using the '''.tar.gz package''', use:&lt;pre&gt;sudo ./flasher-3.5 -F &lt;firmware-image&gt; -f -R&lt;/pre&gt;
# It will say:&lt;br /&gt;&lt;pre&gt;Suitable USB device not found, waiting&lt;/pre&gt;
#* '''N900''': While holding the '''u''' key, connect the N900 to your computer via USB. Wait until you see a dim screen on your N900 with a Nokia logo in the middle of your screen with an USB icon in the top right corner. Note: You may not need to hold the U key - it seems to automatically flash if the flasher is ready at boot time.
#*# If the USB logo does not appear, and the device turns off - ensure the battery is charged by connecting to the wall charger for an hour and try again. Bear in mind that neither the wall charger nor the USB cable will charge the N900 battery if the N900 cannot boot the OS.
#* '''N810 WiMAX, N810, N800 and 770''': Connect your device to your computer via USB.  While holding the Home/Swap button (It's a house on the [[Nokia 770|770]] and [[Nokia N800|N800]], and two overlapping rectangles on the [[Nokia N810|N810]]), power on the device by holding the power button. You should see a Nokia logo in the middle of the screen, and a USB icon in the top right corner.
# You don't need to continue to hold any buttons once flashing starts.
# It should start flashing and then reboot. You can remove the USB cable when the flasher program exits back to the shell prompt.
'''Some notes''':
# If you get this error while trying to run flasher-3.5 &lt;br /&gt;&lt;pre&gt;./flasher-3.5: error while loading shared libraries: libusb-0.1.so.4: cannot open shared object file: No such file or directory&lt;/pre&gt; you are probably on 64 bit and you need to install a libusb compatibility package.  For example, on openSUSE 11.4 you just run &lt;br /&gt;&lt;pre&gt;zypper in libusb-0_1-4-32bit&lt;/pre&gt;&lt;br /&gt;On a debian based system you can download and install the 32-bit version in a separate location (don't install it on your system itself) &lt;br /&gt;First download the libusb-0.1-4_0.1.12-13_i386.deb library (google is your friend) and then:&lt;br/&gt;&lt;pre&gt;dpkg-deb -c libusb-0.1-4_0.1.12-13_i386.deb&lt;/pre&gt;&lt;pre&gt;sudo dpkg -x libusb-0.1-4_0.1.12-13_i386.deb libusb-0.1-4_0.1.12-13_i386&lt;/pre&gt;&lt;pre&gt;sudo mv libusb-0.1-4_0.1.12-13_i386/lib/* /lib32&lt;/pre&gt;&lt;pre&gt;cd /usr/lib32&lt;/pre&gt;&lt;pre&gt;sudo ln -s /lib32/libusb-0.1.so.4&lt;/pre&gt;&lt;br/&gt;Now Set the library path (as su):&lt;pre&gt;sudo su&lt;/pre&gt;&lt;pre&gt;export LD_LIBRARY_PATH=/usr/lib32/:$PATH&lt;/pre&gt;Now you can run the flasher application (as su)&lt;br/&gt;
# If flasher runs but exits when you plug in the phone saying &lt;br/&gt;
&lt;pre&gt;Unable to enumerate USB buses!&lt;/pre&gt; 
the problem usually is the kernel module cdc_phonet that is automatically loaded.  The solution is to temporarily blacklist it, until you are done flashing.  On openSUSE this can be done by creating a file like this:&lt;br /&gt;&lt;pre&gt;echo &quot;blacklist cdc_phonet&quot; &gt;/etc/modprobe.d/00-blacklist-cdcphonet.conf&lt;/pre&gt;When you finish flashing, remove the file.&lt;br /&gt;&lt;br /&gt;
There are other, probably timing, reasons causing occasional &quot;unable to enumerate USB&quot;. Immediately issue the flasher command again, up-arrow usually helps fetching last command to re-issue it.

=== Mac OS X ===
There are two methods for flashing the device on OS X, using the GUI, with the 770Flasher application or using the console, much like the Linux flashing method. ''Both methods work fine for both the 770 and the N800/N810.''

==== GUI with 770Flasher ====
This is the easier of the two methods, and should be used by most people.

# Download the [http://maemo.org/downloads/product/PC/770flasher/ 770Flasher] (yes, it will work fine for flashing an N800 or N810). Latest flashers (Linux/Mac), which work also for N900,  are also available on [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Latest Official Maemo Development Environment Page]
# Follow the [[#Flashing_your_Nokia_tablet|steps above]] to get the appropriate firmware image.
# Drag the firmware image (will end in .bin) onto 770Flasher.  Or open 770Flasher and select the image.
#The image may have a ,attachments ending.  Remove this to get to .bin
# Follow the on-screen prompts.
# You should now see ''Suitable USB device not found, waiting'', plug in the usb cable.  Switch on your device while holding the Home-button. Note for N810 users: switch on your device while holding the Swap button. Note for N900 users: Unplug USB cable. Switch of your device. Press and hold &quot;U&quot; key then plug in the USB cable. If the USB symbol in the top right corner shows up or the flashing starts let go the &quot;U&quot; key.
# Watch the messages as the image loads to the device after which it reboots automatically.

==== Console with Flasher-3.5 ====
These steps cover flashing the device with OS X using the Terminal. This is the more difficult than using [[#GUI_with_770Flasher|770Flasher]], but gives you access to the advanced options flasher-3.5 provides (like setting R&amp;D flags, flashing only parts of the image, unpacking the image, etc).

# Follow the [[#Updating_&amp;_Flashing_your_device|steps above]] to get the appropriate firmware image and flasher.
# Turn off your device (''make sure you unplug the charger or else the device wont power down completely'') and plug in the USB cable to a port on the computer and the port on your device. N900 users cannot plug in the usb cable yet, as it would start recharging the battery.
# Open up the Terminal (located in /Applications/Utilities/) and run:&lt;pre&gt;sudo /usr/bin/flasher-3.5 -F &lt;firmware-image&gt; -f -R&lt;/pre&gt;''You will be asked for an administrator password, enter it.''
# It will say:&lt;pre&gt;Suitable USB device not found, waiting&lt;/pre&gt;
# Unplug the power cord from the device, as this will prevent it from updating. Then take your device, and hold down the Home/Swap button (looks like a little house on the N800 and 770, and two overlapping rectangles on the N810 users do not need to hold down anything), and while holding down the Home/Swap button press the power button to turn it on. N900 users press ‘u’ button and plug the USB cable. Release button when flashing process begins.&lt;br /&gt;''If the device does not boot and start flashing, make sure the USB cable is plugged in.''
# It should start flashing and then reboot. You can remove the USB cable after it has booted to a normal desktop (just make sure to eject any cards that may have mounted on your Mac).

=== Windows ===

====N900====

=====Updating the firmware using the Nokia Software Updater=====

Microsoft Windows users who wish to '''update''' their N900 can use the [http://europe.nokia.com/support/download-software/device-software-update Nokia Software Updater (aka NSU)], or use the Flasher (see section below).

The Nokia Software Updater is compatible with Windows XP Service Pack 3, Windows Vista Service Pack 2, and Windows 7. (Some users may encounter problems due to varying causes.)

The Nokia Software Updater can now be used when updating from a previous firmware to a new one or re-flashing.

=====Updating or re-flashing the firmware using the Flasher=====

''Note: This method is fully compatible with 32-bit versions of Windows; 64-bit users may encounter problems. There is a workaround that is reported working though at [http://talk.maemo.org/showpost.php?p=849980&amp;postcount=20 talk.maemo.org] Also note you need administrator rights to run flasher (somebody with a clue about windows may want to check the procedure regarding this aspect - shift-run?)''

To flash from the Windows (XP, Vista, or 7) command line,

# [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Download] and install the latest version of the Flasher. 
# [http://tablets-dev.nokia.com/nokia_N900.php Download] the latest firmware (.bin) file for your region and save it to &lt;code&gt; %ProgramFiles%\maemo\flasher-3.5\&lt;/code&gt; (the default path), or wherever you installed the Flasher.
# Ensure the battery is full.
# Unplug USB cable if present, and switch off the device.
# Run the Flasher from the Start menu
# '''This is an alternate to step 5, if you have already opened the Flasher, ignore this step.''' Open the Command Prompt (Start then Run or Windows Logo key + R) and type '''cmd''' then press Enter. Change the directory to where you installed the Flasher (TIP: Use the TAB key to auto-complete commands and file-names)&lt;pre&gt;cd &quot;%ProgramFiles%\maemo\flasher-3.5&quot;&lt;/pre&gt;
# Hold the '''u''' key on the '''device''' keyboard and connect the USB cable at the same time. See the [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo_Flasher-3.5#Setting_Maemo_device_to_flashing_mode|Flasher documentation]] for more information. (TIP: Hold the u key until Windows has successfully installed the driver.)
# Run the following command (TIP: Do not include '-R' if you are flashing EMMC as well, see below):&lt;pre&gt;flasher-3.5.exe -F RX-51_2009SE_2.2009.51-1_PR_COMBINED_MR0_ARM.bin -f -R&lt;/pre&gt;

'''Replace ''RX-51_2009SE_2.2009.51-1_PR_COMBINED_MR0_ARM.bin'' with the firmware you wish to update.''' (Make sure you have downloaded the actual corresponding file.) The latest PR1.3 official (rootfs) images are listed below:

'''USA'''
&lt;pre&gt;RX-51_2009SE_20.2010.36-2.002_PR_COMBINED_002_ARM.bin&lt;/pre&gt;

'''Middle East and North Africa'''
&lt;pre&gt;RX-51_2009SE_20.2010.36-2.003_PR_COMBINED_003_ARM.bin&lt;/pre&gt;

'''India'''
&lt;pre&gt;RX-51_2009SE_20.2010.36-2.004_PR_COMBINED_004_ARM.bin&lt;/pre&gt;

'''UK''' (not the vodafone firmware, but fully compatible with vodafone devices).
&lt;pre&gt;RX-51_2009SE_20.2010.36-2.203.1_PR_COMBINED_203_ARM.bin&lt;/pre&gt;

'''Global'''
&lt;pre&gt;RX-51_2009SE_20.2010.36-2_PR_COMBINED_MR0_ARM.bin&lt;/pre&gt;

The flash will take approximately 2-5 minutes after which the N900 will reboot and display the Welcome Screen with Regional settings. After booting, you may use the backup utility to restore your settings.

===== Issues with 64-bit Windows and Workarounds =====
According to [http://talk.maemo.org/showpost.php?p=411019&amp;postcount=67 this] post, Windows driver signing can cause problems. You either need to turn on the loading of unsigned drivers or boot your computer to whole another OS. There are a few workarounds:

===== Workaround for &quot;no suitable device found&quot; problem on Windows 7 x64 =====
Once this message appears, run &lt;code&gt;inf-wizard.exe&lt;/code&gt; from libusb-win32 package and create an inf file for &quot;N900 (PC Suite Mode)&quot; and install this inf driver. Then go to Device Manager and update the driver for N900 Phone Parent and the flasher should spring to life...

====== Option 1 ======
Disabling signed driver detection is done by choosing the option &quot;Boot without checking for signed drivers&quot; (or something similar) in the Windows boot-menu. To display the boot-menu press the &quot;F8&quot; key as soon as the Windows boot process starts (i.e. after the BIOS has loaded, and after GRUB or other ''non-Windows bootloaders'' have passed). 

====== Option 2 ======
Alternatively you can permanently disable driver checking via command line in Windows 7. [http://www.killertechtips.com/2009/05/05/disable-driver-signing-windows-7/ Instructions.] (Non-maemo.org site).

====== Option 3 ======
You can use  [http://www.microsoft.com/windows/virtual-pc/download.aspx Microsoft Virtual PC] - Also known as XP Mode. Professional, Enterprise, and Ultimate editions of Windows 7 come with Windows XP mode, but must be downloaded and installed before use.
# Connect your N900 in flasher mode; Hold '''u''' on the '''device''' keyboard, then connect the USB cable.
# Wait for Windows to install the appropriate drivers.
# Start Microsoft Virtual PC / Windows XP mode/
# Allow the Virtual PC to have access to your N900: (On the top bar): USB &gt; Nokia N900 (Update mode) (Attach). ''(If it doesn't say (update mode), you didn't enter update mode correctly by pressing &quot;u&quot;. Remove the cable and try again.)''
# Wait for Windows to install the appropriate drivers.
# When it is finished, proceed with the normal flashing steps above.

There have been numerous reports on the forums of people trying to flash the rootfs/FIASCO and eMMC with Windows 7 64 bit XP Mode/Virtual PC, where the rootfs/FIASCO image flashed just fine, but the eMMC image stays at &quot;no suitable device found. Waiting&quot;. Again allow the Virtual PC to have access to your N900: (On the top bar): USB &gt; Nokia N900 but *NOTICE* now it will be Nokia N900 (PC-Suite mode) (Attach). Now the flashing will start normally.

====== Option 4 ======

An alternative approach is to use an [http://www.ubuntu.com/getubuntu/download Ubuntu LiveCD] or a [https://wiki.ubuntu.com/LiveUsbPendrivePersistent Persistent USB installation]. This way, you are essentially using Ubuntu without installing it directly on your hard drive. Have ready [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php maemo_flasher-3.5_2.5.2.2_i386.deb], which is the Debian Linux equivalent of a setup/installation file, the firmware files you need, and optionally, this page, if you don't have access to an internet connection on the LiveCD/USB.

After booting into your LiveCD/USB, follow the instructions from the Linux section of this page.

====== Option 5 ======

Install other version of update drivers. Step by step instructions can be found at [http://talk.maemo.org/showpost.php?p=849980&amp;postcount=20 talk.maemo.org]. Video tutorial for setting up/installing the necessary drivers to enable flashing on Windows 7 64-bit OS can be found here: [http://www.youtube.com/watch?v=OkhjA9rztz0&amp;hd=1]

====== Option 6 ======

The Flasher (version 3.5) uses the libUSB drivers it finds in it's installed folder. Download the libusb library, and simply copy the right libusb.dll version to the folder you've installed Flasher to. So, rename libusb0_x86.dll to libusb0.dll for x86-systems (32-bit) or copy libusb0.dll from the amd64-folder for 64-bit systems.

==== 770/N800/N810/N810 WiMAX ====
Internet Tablet users can go to the appropriate support page for their device ([https://www.nokiausa.com/A41271130 N810 WiMAX Edition], [https://www.nokiausa.com/A4686323 N810], [https://www.nokiausa.com/A4410958 N800], or [http://europe.nokia.com/A4144790 770]), download and install the Software Update Wizard, run it and follow the on-screen prompts. This will work both for updating and re-flashing the same firmware image.

===Flashing only the kernel from a FIASCO image (expert topic!)===

If you only want to flash a kernel from a FIASCO image without overwriting your rootfs (e.g. because you tried out a different kernel and that didn't work) you can use the following flasher command instead of the one above:

 sudo ./flasher-3.5 -F ''&lt;firmware-image&gt;'' --flash-only=kernel -f -R

This will flash the kernel from the FIASCO image and then reboot your device. The rootfs will not be touched by this. NB a kernel usually needs matching modules in rootfs, so odds are your kernel from FIASCO image won't work either, if you messed up the modules in rootfs - you need to flash whole COMBINED/FIASCO image then to recover.

=== Flashing the eMMC in the N900 ===

{{ambox
|type=notice
|text=When flashing the eMMC content, the safe way is flash the eMMC/VANILLA image first, then remove battery for a moment, and then flash the FIASCO/Rootfs image. Do '''not''' boot up the device between the two i.e do NOT use the -R parameter at the end! 

Also see [[#Troubleshooting|troubleshooting section, bullet 6:&quot;If you cannot establish...&quot;]]

Rationale: on accidental booting in between the 2 flash processes, the sequence formerly suggested (rootfs first) will result in a broken system. The sequence &quot;eMMC first, then rootfs&quot; is checked back with Nokia affiliates and is proven to work as long as your rootfs still is somewhat functional. Note however that eMMC flashing will fail when your rootfs is completely messed up, the recommended flash sequence then is rootfs, eMMC, rootfs *again*.

''For users '''familiar with flashing''' and interested in a smooth fast process: you can flash combined first, and then *immediately* after that - without one 10th of a second of booting - directly continue with flashing the vanilla. The other way round doesn't work due to a bug in NOLO - so after flashing vanilla you need to remove battery to recover''}}
&lt;!-- PLEASE! Before editing above text, please look here: http://wiki.maemo.org/Talk:Updating_the_firmware --&gt;

Flashing the eMMC resets the MyDocs folder contents to factory settings. N900 users don't need to reflash the eMMC of their device when updating firmware but can do so to clear all data from the device. You may need to do so if you have a pre-production device e.g. in the Maemo Summit. If you have a sales unit and you have problems with your eMMC you should contact Nokia Care.
However there are cases known where for instance the desktop widget configuration data which is stored in user's home directory gets corrupted and causes bootloops on hildon desktop startup failing. In this case you'll actually need to reflash your eMMC to recover system from bootlooping (there are other more involved methods to recover too, search for &quot;backupmenu&quot;, &quot;watchdogs&quot;, &quot;rescueOS&quot;)

Also note that '''any backups created in your MyDocs area will need to be copied off the device to be safe across an eMMC flash''' as the MyDocs area and other partitions on &lt;code&gt;/dev/mmcblk0&lt;/code&gt; will be erased.

'''Note that flashing eMMC will delete the &lt;code&gt;/opt&lt;/code&gt; directory, so you *always* need to reflash your rootfs (the COMBINED image) after - or same time as - flashing eMMC (VANILLA img)'''

Note that the eMMC images available do not contain pre-loaded maps. If you reflash your eMMC you will lose them (the Maps application will work as usual but you will need to download the maps needed).

In order to flash the eMMC, follow these steps:
&lt;ol&gt;
&lt;li&gt;
Fully charge the battery (IMPORTANT!!)
&lt;/li&gt;
&lt;li&gt;
Install [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5|Flasher]] for your OS (Linux, Mac OS X or MS Windows)
&lt;/li&gt;
&lt;li&gt;
Grab the recent Vanilla eMMC image (.bin file) from [http://tablets-dev.nokia.com/nokia_N900.php the Nokia repository]. There isn't always a new eMMC image for a new COMBINED image, as usually the content of eMMC doesn't change with new versions of the system.
&lt;/li&gt;
&lt;li&gt;Navigate to the directory where the image file was saved (Windows users: if you don't know the full path to the image, copy it to the flasher directory)
&lt;/li&gt;
&lt;li&gt;
Execute the following command (in Linux you have to be root! On windows you have to be admin!):

''Replace RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin with the name of the most recent VANILLA file you downloaded''
&lt;ol&gt;
&lt;li&gt;
Windows:&lt;pre&gt;flasher-3.5.exe -F RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin -f&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Linux (Replace /path/to/ with the correct full pathname to the binary. Using tab-completion helps ;-) ):&lt;pre&gt;/path/to/flasher-3.5 -F RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin -f&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Debian based Linux (e.g Ubuntu):&lt;pre&gt;flasher-3.5 -F RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin -f&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
Text similar to the following will be displayed on the computer:
&lt;pre&gt;
flasher v2.5.2 (Oct 21 2009)

Image 'mmc', size 255947 kB
	Version RX-51_2009SE_10.2010.13-2.VANILLA
Suitable USB device not found, waiting.
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
Plug in the '''powered down''' N900 while holding 'u' key
&lt;/li&gt;
&lt;li&gt;
The dim Nokia screen will be displayed for a few seconds followed by progression dots. Text similar to the following will be displayed on the computer:
&lt;pre&gt;
USB device found found at bus 002, device address 014.
Raw data transfer EP found at EP2.
Image(s) flashed successfully in 4.711 s (9199 kB/s)!
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
The flash will take a minute or so.
&lt;/li&gt;
&lt;li&gt;
When flashing of eMMC completed without errors: Switch off device by shortly removing battery.
&lt;/li&gt;
&lt;li&gt;'''Now flash the ''FIASCO/rootfs'' image using''' the [[#Updating_.26_Flashing_your_device|above commands]] with -R parameter.
&lt;/li&gt;
&lt;li&gt;
If you used the -R parameter, then N900 will reboot automatically, otherwise you need to reboot manually. The bright Nokia screen will come up, followed by progression dots with yellow LED blinking for a few seconds, first boot will be slow as the device would be optifying files.
&lt;/li&gt;
&lt;/ol&gt;

Experienced users still may want to follow the rootfs-then-eMMC scheme, which doesn't need the battery removal, but is way less &quot;fool-proof&quot; wrt accidental boots. A boot in this context is defined as any activity of the device (flashing LED, some display on screen) that doesn't result in and stop at the NOKIA boot screen with USB icon. Especially &quot;charging&quot; actually also implies a boot of the system, and there's no lower limit for duration of such an accidental boot, 5s are more than enough to ruin your freshly flashed system.

== Seamless Software Update ==

{{main|Seamless Software Update}}
[[:wikipedia:Maemo_(operating_system)#SSU|SSU]] is Nokia's new method for upgrading the devices over-the-air without requiring a reflash. When Nokia pushes an update over SSU, you will see an update notification and be given the option to install the update—just like with your computer.

Generally speaking, SSU updates should be relatively pain-free, but there are a few issues to watch out for:
* If you have an aftermarket kernel or initfs installed (like the rotation support kernel or [[Booting_from_a_flash_card#Install_bootmenu|fanoush's bootmenu]]) and a kernel or initfs upgrade is pushed, they will be overwritten and you'll need to wait for your kernel or the bootmenu to be updated to reinstall them.
* If you have extensively modified the home directory for user &quot;user&quot;, such as moved all the documents to a memory card or removing or leaving empty some of the subdirectories

If the update doesn't show up for you at all, you may have accidentally (or intentionally) uninstalled osso-software-version-rx*4, which is required to update. You can get it back by simply running an &lt;code&gt;apt-get install osso-software-version-rx34&lt;/code&gt;, for the N800, and an &lt;code&gt;apt-get install osso-software-version-rx44&lt;/code&gt;, for the N810. Then updating your repository list in Application manager.

If the packages that caused osso-software-version-rx*4 to be removed are still installed, they will need to be removed completely (in the case of conflicting packages). Alternatively, for packages which are simply newer than those specified by osso-software-version-rx*4, you can install osso-software-version-rx*4-unlocked, which does not have strict dependencies.

On N900 (probably also previous devices), it is possible that the application manager ends up with a message stating that it is required to upgrade using the Nokia PC application. In this case please read the article on [[cannot install firmware update|known problems and possible solutions]].

You can show the list of packages that are not going to be ugraded with &lt;code&gt;apt-get update &amp;&amp; apt-get upgrade&lt;/code&gt;. In that case, you can try using &lt;code&gt;apt-get dist-upgrade&lt;/code&gt; command (as root, the app manager has to be shut down) to override. '''This is not supported because you can break future updates. Several users had to reflash after apt-get dist-upgrade!'''.

== Troubleshooting ==

* '''Make sure your battery is (completely) charged!''' Flashing will fail when battery is too low, and battery will not charge if your system does not boot up correctly. You can find yourself trapped in a deadlock, when flashing fails due to battery depleting during flashing! '''If your device does not enter and stay in flashing mode (NOKIA + USB-icon on screen) despite you holding the &quot;U&quot; key while plugging it in to charger/PC, then battery is too low'''. If your device does not boot to a proper system, then you usually have to find a way to [http://europe.nokia.com/find-products/accessories/all-accessories/power/batteries/nokia-battery-bl-5j/compatibility charge battery externally] - a bootlooping or stalled boot will '''not charge''' battery! So better completely charge your battery prior to any attempt to flash the device.
* If you get a &quot;Permission denied&quot; error and have access to a linux box, then &lt;pre&gt;chmod +x flasher-2.0&lt;/pre&gt; or &lt;pre&gt;chmod +x flasher-3.0&lt;/pre&gt; or actually &lt;pre&gt;chmod +x flasher-3.5 &lt;/pre&gt; nowadays to make the flasher tool executable. You may also need root permissions, run command with sudo or su to root. (Tip: If your flash only gets to 19% then produces &quot;Permission denied,&quot;  try the &quot;global&quot; version of the image file instead. The US version has produced this problem.)
* If you need to flash your Nokia 770 with an image from 2005 then use the [http://tablets-dev.nokia.com/d3.php older flasher] called &quot;flasher&quot; with no number in the name
* If you get &quot;Error claiming USB interface: Device or resource busy&quot; error, make sure you run the flasher with sudo. If this does not fix the problem, as root, run &lt;pre&gt;modprobe -r cdc_phonet&lt;/pre&gt;

* If flashing stops with &quot;Write failed after 1048576 bytes usb_bulk_write: Resource temporarily unavailable&quot;, do not disconnect your N900 from usb and try again the flasher command.
* If you cannot establish a connection with N900, or got any other problems during starting or completing the flashing process, do the following steps which describe '''the complete foolproof flashing procedure''' again in terse form: ''(use a Linux machine to flash! Windows isn't really backed up with much support from community, for obvious reasons.)''
*# blacklist cdc_phonet (see above)! Run modprobe -r cdc_phonet 
*#(try to) Turn off the device - if nothing else helps, holding power key for &gt;8s is the ultimate means (except next point 2.) to do this.
*#Remove the battery - even if you were not able to shut device down in 1.
*#Start flasher with above mentioned command to flash (without -R, it's a useless convenience thing). It says &quot;Suitable device not found... waiting&quot; 
*#Plug the device to computer with a good USB cable.
*#Insert battery while holding &quot;u&quot; key. You can release the key as soon as screen turns on and shows the USB logo. Flashing shall start automatically. ''(If flasher answers &quot;unable to enumerate USB buses!&quot; as soon as N900 gets battery, just re-issue same flasher cmd immediately - cursor-up helps ;-D). If flasher doesn't detect the device, a Ctrl+C abort and re-issuing of the flasher command may help''
*#Check for correct diagnostic output of flasher, as quoted above. After flashing has finished, remove battery -&gt;(2.) 3.)
*#Repeat same procedure (2. - 7.) for each image to flash (sequence: eMMC first, then rootfs - some mess on rootfs may break eMMC flashing and require sequence rootfs eMMC rootfs again). ''So far this procedure always worked, given your PC side has no problems. Many known problems on PC side - esp &quot;waits forever&quot; / &quot;doesn't find N900&quot; - get fixed with a reboot *immediately prior* to doing the flashing.''
*#After flashing unplug your device from PC prior to first boot. First boot can take several minutes, and screen may turn dark during that. You may try lock-slider switch, but '''do not power down''' device during first boot, until it finally finished - I.E. do not touch power button after flashing, unless you're *sure* device hasn't already started to boot. Usually device will power down when unplugged from PC in flashing mode, you can tell this from white LED fading out, not even any dim backlight, and device not reacting to lockslider and kbd-open. Power it up from battery then, using the power button. ''Only then'' plugging in the wallcharger is a good idea. Make sure device charges and recharge battery while you're at it. After battery got fully charged again, it's probably safe to switch off your N900, as first boot setup should have finished.

* After re flashing if the sim is not detected (symbol of the sim card with a red slash across near battery meter) make sure that you have downloaded  the proper [http://tablets-dev.nokia.com/nokia_N900.php Firmware Download] (.bin) file for your region. If you have downloaded another .bin from some other region the sim may not be detected.

===Flashed but still getting only &quot;5 white dots going back and forth&quot;===
 
This can be caused by various problems. Known problems are:
* If boot finds a corrupted FAT32, it may decide to run fsck against it, which may take like hours to complete.
* System is trying to run corrupted ~/.profile file with wrong commands which interrupt complete boot.

Solution can be to use rescueOS: http://talk.maemo.org/showthread.php?t=75369 , which can help you to mount rootfs, home (mount /dev/mmcblk0p2 /mnt/free1) and edit files or &quot;do other useful rescue stuff&quot;.

===USB===

It may help to connect directly to the computer USB ports, avoiding the use of a hub - which includes the USB ports on laptop docking stations.  The USB ports in the back of a laptop may also be better than using those in the front.

Some distributions do not present the USB device in the way that it expects it.  First, see if it is necessary to &quot;mount&quot; USB:

 mount -t usbfs usbfs /proc/bus/usb

If that does not work, try patching the ''flasher'' code.  This replaces the use of &lt;code&gt;/proc/bus/usb&lt;/code&gt; with the newer &lt;code&gt;/dev/bus/usb&lt;/code&gt; filesystem:

 perl -pi -e 's-/proc/bus/usb-/dev/bus/usb\000-;' -i.backup $FLASHER

Replace &lt;code&gt;$FLASHER&lt;/code&gt; with the path to your flasher-2.0 or flasher-3.0 Linux binary.

[[Category:Users]]
[[Category:HowTo]]
[[Category:USB]]
[[Category:Power users]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Updating the firmware/Cold Flashing</title>
    <id>4564</id>
    <revision>
      <id>40138</id>
      <timestamp>2010-11-14T19:17:43Z</timestamp>
      <contributor>
        <username>mohammad7410</username>
        <id>2135</id>
      </contributor>
      <text xml:space="preserve">=== Cold flashing (N900) ===

If the bootloader is deleted/destroyed with dd, then it is possible to recover it with a cold flash, get the COMBINED image and extract it.
 flasher-3.5 -F image.bin -u

Run the following command for 2101 hardware revisions:
 flasher-3.5 -c -h RX-51:2101 -2 2nd.bin-RX-51\:2101\,2102\,2103 -s secondary.bin-RX-51\:2101\,2102\,2103 -S usb

You will see output similar to this:
 flasher v2.5.2 (Oct 21 2009)
 
 Using serial port usb
 Suitable USB device not found, waiting.
 USB device found found at bus 005, device address 004.
 Waiting for ASIC id...
 Got 69 bytes.
 ASIC ID:
 05 01 05 01 34 30 07 57  13 02 01 00 12 15 01 3f
 8f 41 14 07 41 48 49 d9  b5 94 4b 98 89 00 fb df
 40 a2 89 14 15 01 87 3b  4d cd ca f5 44 4d 24 ec
 b2 ac 95 53 88 41 4f ab  cd 66 15 09 01 f7 48 8f
 28 a0 27 e5 b3
 Sending 2nd image (14720 bytes)... done.
 Sending ping... timeout!
 failed.
 Sending ping... pong.
 Sending secondary (109440 bytes)... done.

This should boot up the N900 with a temporary bootloader, proceed to flash the device with the following command:

 flasher-3.5 -F image.bin --flash-only=nolo -f

Thanks to jacekowski for the above explanation.</text>
    </revision>
  </page>
  <page>
    <title>Updating the tablet firmware</title>
    <id>3025</id>
    <revision>
      <id>22711</id>
      <timestamp>2009-11-16T09:16:24Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Updating the tablet firmware]] moved to [[Updating the firmware]]: shorter and wider</comment>
      <text xml:space="preserve">#REDIRECT [[Updating the firmware]]</text>
    </revision>
  </page>
  <page>
    <title>Upgrading tablet OS</title>
    <id>828</id>
    <revision>
      <id>27444</id>
      <timestamp>2010-01-26T14:29:17Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Updating the firmware]]</text>
    </revision>
  </page>
  <page>
    <title>Uploading to Extras</title>
    <id>2859</id>
    <revision>
      <id>21118</id>
      <timestamp>2009-10-27T06:31:48Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Uploading to Extras]] moved to [[Uploading to Extras-devel]]: more precise</comment>
      <text xml:space="preserve">#REDIRECT [[Uploading to Extras-devel]]</text>
    </revision>
  </page>
  <page>
    <title>Uploading to Extras-devel</title>
    <id>561</id>
    <revision>
      <id>49587</id>
      <timestamp>2012-09-09T21:20:05Z</timestamp>
      <contributor>
        <username>drax</username>
        <id>5383</id>
      </contributor>
      <comment>/* &quot;non-free&quot; packages */</comment>
      <text xml:space="preserve">[[Extras]] is the recommended home for all Maemo software. It provides an easy mechanism for users to discover new applications, and can help ensure quality and continued support for applications and their authors. Before an application can get to Extras, it must be uploaded to [[Extras-devel]] and promoted to [[Extras-testing]]. Community testing will begin, and finally the package can be promoted to Extras.

== Pre-requisites ==
Three things are necessary to upload to maemo.org Extras:
* A [http://garage.maemo.org/ Garage] account: [[https://garage.maemo.org/account/register.php signup]]
* An &quot;invitation&quot; to upload: [[https://garage.maemo.org/extras-assistant/index.php?target=invitation_request request]]
* &lt;code&gt;ssh-keygen&lt;/code&gt; ('''optional:''' not needed if only going to use the web-based upload)

== Setup ==
=== Setting up SSH to upload to extras ===
&lt;small&gt;''This step is unnecessary if you are only going to use the web-based [https://garage.maemo.org/extras-assistant/index.php Extras Assistant] wizard to upload.''&lt;/small&gt;

Put your [http://kimmo.suominen.com/docs/ssh/#ssh-keygen SSH key] online:

* If you need to create an RSA SSH key (make sure it is an RSA key):
*# &lt;code&gt;ssh-keygen -t rsa&lt;/code&gt; (enter, enter, passphrase (if desired), enter). This can be done from within MADDE as well.
* Copy the contents of &lt;code&gt;~/.ssh/id_rsa.pub&lt;/code&gt; in the &quot;Public SSH keys&quot; section of your [https://garage.maemo.org/account/ garage account maintenance] page. This will be available once your upload-invitation request has been accepted

'''NOTE: If you modify public key in garage account, server will need some time to refresh that information (it should be done in few hours) otherwise you might get message &quot;''Server refused our key''&quot; (when you try to upload package).'''

=== Setting up Scratchbox to use the Extras repository ===
Add the extras repository to your Scratchbox install:
# Login to Scratchbox
# Create &lt;code&gt;/etc/apt/sources.list.d/extras-repo.list&lt;/code&gt;
# Update &lt;code&gt;apt&lt;/code&gt;'s information.

'''Note:''' this should be done in both your ARMEL and x86 targets.

 /scratchbox/login
 cat &gt;/etc/apt/sources.list.d/extras-repo.list &lt;&lt;EOT
 #Maemo extras
 deb http://repository.maemo.org/extras/ fremantle free non-free
 deb-src http://repository.maemo.org/extras/ fremantle free
 EOT
 fakeroot apt-get update

== Preparing a source package ==

{{main|Packaging}}

There are three main routes to creating source packages:
# Using Debian tooling directly.
# Using [[User:Jaffa/mud design|mud-builder]] to help repackage existing upstream sources.
# Using [[Py2deb|py2deb]] for Python applications.

=== Debian tooling ===

{{main|Documentation/Maemo_5_Developer_Guide/Packaging%2C_Deploying_and_Distributing#Creating_Debian_Packages}}

=== mud-builder ===
[http://mud-builder.garage.maemo.org/ mud-builder] uses a simple XML file to define an upstream source location (such as an svn location, web-based tarball or existing Debian package), it then handles the Maemo packaging specifics, builds a source package ready to upload and can even upload directly to Extras using a few simple commands:

 mud build vim
 mud upload vim

=== py2deb ===
Python applications can be developed inside or outside of Scratchbox. [http://wiki.maemo.org/Py2deb py2deb] makes it easy to build packages ready for upload from a Python script.

=== PyPackager ===
[http://wiki.maemo.org/PyPackager PyPackager] essentially replaces py2deb and provides the capabilities to build both a finished Debian Package (.deb) file as well as the source tarball and control files required by the garage build queues as py2deb does.

== Upload ==
=== &quot;free&quot; packages ===
There are three mechanisms for uploading packages:
# The [https://garage.maemo.org/extras-assistant/index.php Extras Assistant] is a web-based wizard, which guides you through the process
# Debian's &lt;code&gt;[http://extras-cauldron.garage.maemo.org/HOWTO.html#how-to-prepare-and-upload-source-packages-for-build dput]&lt;/code&gt; tool
# SSH directly (using &lt;code&gt;[http://lists.maemo.org/pipermail/maemo-users/2006-September/002080.html scp]&lt;/code&gt;

==== dput ====
The &lt;code&gt;/etc/dput.cf&lt;/code&gt; (or &lt;code&gt;~/.dput.cf&lt;/code&gt;) sections for free packages are:

 [DEFAULT]
 default_host_main = fremantle-extras-builder
 
 [fremantle-extras-builder]
 login = &lt;your_garage_login_name&gt;
 fqdn = drop.maemo.org
 method = scp
 hash = md5
 allow_unsigned_uploads = 1
 incoming = /var/www/extras-devel/incoming-builder/fremantle
 
 [diablo-extras-builder]
 login = &lt;your_garage_login_name&gt;
 fqdn = drop.maemo.org
 method = scp
 hash = md5
 allow_unsigned_uploads = 1
 incoming = /var/www/extras-devel/incoming-builder/diablo
 
 [chinook-extras-builder]
 login = &lt;your_garage_login_name&gt;
 fqdn = drop.maemo.org
 method = scp
 hash = md5
 allow_unsigned_uploads = 1
 incoming = /var/www/extras-devel/incoming-builder/chinook
 
 [gregale-extras-direct-binary-upload]
 login = &lt;your_garage_login_name&gt;
 fqdn = drop.maemo.org
 method = scp
 hash = md5
 allow_unsigned_uploads = 1
 incoming = /var/www/extras/incoming/gregale

Then run:
 dput -f fremantle-extras-builder PACKAGE_VERSION_*.changes
 dput -f diablo-extras-builder PACKAGE_VERSION_*.changes
 dput -f chinook-extras-builder PACKAGE_VERSION_*.changes


For the single default case you should be able to do:
 dput PACKAGE_VERSION_source.changes

and it should go to fremantle-extras-builder (because of the DEFAULT:default_host_main setting.

==== scp ====
Using scp directly is trivial:

 scp *.tar.gz *.diff.gz *.changes *.dsc &lt;your_garage_login_name&gt;@drop.maemo.org:/var/www/extras-devel/incoming-builder/chinook/
 scp *.tar.gz *.diff.gz *.changes *.dsc &lt;your_garage_login_name&gt;@drop.maemo.org:/var/www/extras-devel/incoming-builder/diablo/
 scp *.tar.gz *.diff.gz *.changes *.dsc &lt;your_garage_login_name&gt;@drop.maemo.org:/var/www/extras-devel/incoming-builder/fremantle/


''Note: Make sure you upload your .dsc files last. The .dsc file triggers a build and the autobuider might reject the package because of missing files.''

=== &quot;non-free&quot; packages ===

Publishing non-free packages in the Maemo Extras Devel repository for Fremantle is done via dput. Direct upload of binary packages is allowed for non-free packages only.

Settings for &lt;code&gt;dput.cf&lt;/code&gt; for Fremantle Extras-Devel non-free:

 [fremantle-extras-devel-non-free]
 login = &lt;your_garage_login_name&gt;
 fqdn = drop.maemo.org
 method = scp
 hash = md5
 allow_unsigned_uploads = 1
 incoming = /var/www/extras-devel/incoming-nonfree/fremantle
 
Upload with &lt;code&gt;dput&lt;/code&gt;:

 dput -f fremantle-extras-devel-non-free PACKAGE_VERSION_*.changes

The packages are imported into the repository once per hour. 

Please make sure your dependencies are correct. Should there be a dependency problem between a free and a non-free package, the non-free package will most likely be removed first. This is because we can recompile free packages, but cannot recompile non-free packages since we do not have the source.




'''For Windows 7'''

You will need these programs:

1) [http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe puttygen.exe]

2) [http://the.earth.li/~sgtatham/putty/latest/x86/pageant.exe pageant.exe]

3) [http://the.earth.li/~sgtatham/putty/latest/x86/pscp.exe pscp.exe]


First run puttygen.exe, and make private and public keys ('''RSA'''). Save public and '''private key''' as files somewhere (and remember location!).

Open public key file with some text editor (notepad will do job), and now copy key.

This is how public key file should look like:
 ---- BEGIN SSH2 PUBLIC KEY ----
 Comment: &quot;rsa-key-20120905&quot;
 asdasdasda+dasdasdasdasasda3dasdasdasdasdasda/dasd=sdasd9asdasdas
 asdasdasda+dasdasdasdasasda3dasdasdasdasdasda/dasd=sdasd9asdasdas
 asdasdasda+dasdasdasdasasda3dasdasdasdasdasda/dasd=sdasd9asdasdas
 asdasdas
 ---- END SSH2 PUBLIC KEY ----
You only need:
 asdasdasda+dasdasdasdasasda3dasdasdasdasdasda/dasd=sdasd9asdasdasasdasdasda+dasdasdasdasasda3dasdasdasdasdasda/dasd=sdasd9asdasdasasdasdasda+dasdasdasdasasda3dasdasdasdasdasda/dasd=sdasd9asdasdasasdasdas
Just make sure that doesn't contain blank characters - eg. new line or space.
Now you can put that in garage account with prefix &quot;ssh-rsa&quot;, so at the end it should look like this:
 '''ssh-rsa''' asdasdasda+dasdasdasdasasda3dasdasdasdasdasda/dasd=sdasd9asdasdasasdasdasda+dasdasdasdasasda3dasdasdasdasdasda/dasd=sdasd9asdasdasasdasdasda+dasdasdasdasasda3dasdasdasdasdasda/dasd=sdasd9asdasdasasdasdas


Now start pageant.exe and add that private key.

Open console (click on windows logo, and in search filed type &quot;cmd&quot; - without quotes - and press enter). Now go to folder where did you downloaded/putted pscp.exe file.


To upload file, run this command:

 pscp -v -scp '''&lt;deb_full_path&gt;''' '''&lt;username&gt;'''@drop.maemo.org:/var/www/extras-devel/incoming-nonfree/fremantle/

Where you need to replace:

- '''&lt;deb_full_path&gt;''' - with absolute file path (example: ''C:\MyWork\my_app.deb'')

- '''&lt;username&gt;''' - your maemo garage username


After that, wait for package to be uploaded and thats it :)

== Autobuilder special considerations ==
If it builds under your local Scratchbox but doesn't on the autobuilder, you need to do the above dependency check (&lt;code&gt;dpkg-depcheck&lt;/code&gt;) and/or otherwise correct the &lt;code&gt;Build-Depends&lt;/code&gt; field: the builder uses the minimal rootstrap and only adds extra packages if they are mentioned in this field. This includes most &lt;code&gt;-dev&lt;/code&gt; versions which include the special libraries and includes, and the &lt;code&gt;pkg-config&lt;/code&gt; metadata; so applies to almost everything.

See [[Building packages with sbdmock]] for information on using the &lt;code&gt;sbdmock&lt;/code&gt; tool to test your package build in a clean scratchbox environment before submitting to the autobuilder.

If you do not know what to write in the Build-Depends field, then in your scratchbox, install devscripts (&lt;code&gt;''apt-get install devscripts''&lt;/code&gt;) and then run &lt;code&gt;''dpkg-genbuilddeps -rfakeroot''&lt;/code&gt; in your source directory. The package will build in scratchbox and at the end, you will see a list of Build-Depends. Use common sense to figure out which Build-Depends you need to add. &lt;code&gt;-dev&lt;/code&gt; packages are usually a good bet.

Also make sure the &lt;code&gt;Section:&lt;/code&gt; in the control file is '''all lowercase''', e.g. &quot;user/navigation&quot; not &quot;user/Navigation&quot;, otherwise after building it will silently fail and NOT be moved to extras-devel.

The Autobuilder supports automatic [[Documentation/Maemo_5_Developer_Guide/Packaging%2C_Deploying_and_Distributing/Installing_under_opt_and_MyDocs|Optification]] of packages, using the tool [http://maemo.org/packages/view/maemo-optify/ maemo-optify]. You just need to create the file &quot;debian/optify&quot; containing the word &quot;auto&quot; to trigger maemo-optify during build.
To predetermine the results of enabling maemo-optify, you can install this package from the Extras-devel repository inside your scratchbox and run maemo-optify-deb on a precompiled package.

If you have problems with the autobuilder, ask for help on the [[Community mailing lists|maemo-developers mailing list]], and possibly contact the [[debmaster]] if you are sure that the problem is with the autobuilder and not your package.

''In addition, one additional idea to increase package quality is to introduce [[Maemian]], a [http://en.wikipedia.org/wiki/Lintian lintian]-like tool for Maemo . This would help in doing additional checks for common inconsistencies and errors.''

== Promotion ==
After the autobuilder builds a package, it will be available in Extras-Devel. This is the experimental repository. 

Please make sure your package is ready for users by testing:
* if it installs without problems
* if it uninstalls without problems
* if it doesn't introduce dependency problems for other packages.

You can promote your package to Extras with the promotion interface.

* [https://garage.maemo.org/promoter/chinook chinook] - Maemo 4.0
* [https://garage.maemo.org/promoter/diablo diablo] - Maemo 4.1

Promotion from Fremantle Extras-devel to Extras-testing and Extras-testing to Extras is done through the [http://maemo.org/packages/ maemo.org package interface] and the process is described in the [[Extras-testing#Promotion_.2F_Demotion_NOT_FINAL_FIXME|Extras-testing documentation]].

== Additional information ==
* [https://garage.maemo.org/extras-assistant/index.php Extras assistant]
* [[Extras repository process definition]]
* [https://garage.maemo.org/account/ Garage SSH key]
* Build logs: [http://garage.maemo.org/builder/chinook/ chinook], [http://garage.maemo.org/builder/diablo/ diablo], [http://garage.maemo.org/builder/fremantle/ fremantle]
* [[Debmaster|The debmaster]] is responsible for any problems with the autobuilder

[[Category:Packaging]]</text>
    </revision>
  </page>
  <page>
    <title>Uploading to extras</title>
    <id>663</id>
    <revision>
      <id>27443</id>
      <timestamp>2010-01-26T14:28:16Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>extras→extras-devel</comment>
      <text xml:space="preserve">#REDIRECT [[Uploading to Extras-devel]]</text>
    </revision>
  </page>
  <page>
    <title>Uqm</title>
    <id>3475</id>
    <revision>
      <id>29962</id>
      <timestamp>2010-02-22T11:47:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Category:Games]]</comment>
      <text xml:space="preserve">See the maintainer's [http://talk.maemo.org/showthread.php?t=40868 app homepage] on Talk.

Resources:

A starmap for The Ur-Quan Masters game. This is a user-created map that includes the same information that was found on the poster map in the Star Control 2 box. Licensed for free distribution by creator tomt on [http://forum.uqm.stack.nl/index.php?topic=2043.0 the uqm forum].


[[Image:Ur-Quan_Masters-starmap.png|500px]]

[[Category:Games]]</text>
    </revision>
  </page>
  <page>
    <title>Use a 64bit Linux as PC Connectivity host</title>
    <id>3511</id>
    <revision>
      <id>28171</id>
      <timestamp>2010-02-02T16:52:52Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Use a 64bit Linux as PC Connectivity host]] moved to [[Install PC Connectivity on a 64 bit host]]</comment>
      <text xml:space="preserve">#REDIRECT [[Install PC Connectivity on a 64 bit host]]</text>
    </revision>
  </page>
  <page>
    <title>Useful Mobile URLs</title>
    <id>4068</id>
    <revision>
      <id>47527</id>
      <timestamp>2012-05-21T21:03:18Z</timestamp>
      <contributor>
        <ip>84.157.158.94</ip>
      </contributor>
      <comment>Added Google+ link</comment>
      <text xml:space="preserve">Why use the mobile version or at least a simpler version of a web site when Maemo devices are capable of accessing the full version? Some reasons:

* Speed -- simpler versions may be considerably faster because they lack Flash and JavaScript. Full versions of websites are sometimes designed to run on desktop processors using browsers with JavaScript optimizations.
* Focus -- simpler versions are often to the point, more in keeping with the spirit of mobile apps vs. desktop apps.
* Compatibility -- sometimes the full version of a web site doesn't support Maemo devices properly.

On talk.maemo.org, there are periodic requests for mobile versions of sites.

== Shopping Sites ==

{| class=&quot;wikitable sortable&quot;
|+ Mobile shopping sites
|-
! Site
! URL
! class=&quot;unsortable&quot; | Notes
|-
| Amazon || http://www.amazon.com/mobile ||
|}

== Application providers ==

{| class=&quot;wikitable sortable&quot;
|+ Mobile application providers
|-
! Site
! URL
! class=&quot;unsortable&quot; | Notes
|-
| Ovi store || http://www.ovi.mobi/ ||
|}

== Various Google Services ==

{| class=&quot;wikitable sortable&quot;
|+ Mobile Google services
|-
! Site
! URL
! class=&quot;unsortable&quot; | Notes
|-
| Google Calendar || http://www.google.com/calendar/m || Lists appointments.
|-
| Google Calendar (Domain) || &lt;nowiki&gt;http://www.google.com/calendar/hosted/[your domain]/m&lt;/nowiki&gt; || Lists appointments.
|-
| Google Docs || http://docs.google.com/m || Some features are view-only. Spreadsheet can only view a column at a time. Opera Mobile user agent enables basic spreadsheet editing.
|-
| Google Maps || http://maps.google.com/m || Look up a place. View a map in simple HTML with links for zooming and shifting the display
|-
| Google News || http://news.google.com/m || May direct you to mobile version of news site
|-
| Google Reader || http://www.google.com/reader/m || Displays simple text version of article
|-
| Google Reader &quot;Chunky&quot; || http://www.google.com/reader/i/ || More touch friendly
|-
| Google Search || http://www.google.com/m || May direct you to mobile version of searched-for site
|-
| Google Tasks || http://mail.google.com/tasks/m || part of Gmail
|-
| Google Tasks &quot;Chunky&quot; || https://mail.google.com/tasks/android || More touch friendly
|-
| Google Voice || http://www.google.com/voice/m ||
|-
| Gmail || http://m.gmail.com/ || Can also click &quot;Simple HTML&quot; link for more functionality
|-
| Gmail &quot;Chunky&quot; || http://mail.google.com/mail/x/gdlakb-/gp/ || More touch friendly 
|-
| Gmail &quot;Chunky&quot; (Domain) || &lt;nowiki&gt;https://mail.google.com/a/[your domain]/x/1gjikl11t3cl1&lt;/nowiki&gt; || More touch friendly 
|}

== WebMail / Social ==

{| class=&quot;wikitable sortable&quot;
|+ Mobile webmail/social sites
|-
! Site
! URL
! class=&quot;unsortable&quot; | Notes
|-
| Facebook || http://m.facebook.com/ || mobile site
|-
| Facebook || http://0.facebook.com/ || mobile site without photos, free on some mobile networks (eg 3UK).
|-
| Facebook || http://touch.facebook.com/ || Touch site
|-
| FriendFeed || http://friendfeed.com/iphone ||
|-
| Google+ || https://plus.google.com/app/plus/mp/ ||
|-
| Gmail || http://m.gmail.com/ || Can also click &quot;Simple HTML&quot; link for more functionality
|-
| Gmail &quot;Chunky&quot; || http://mail.google.com/mail/x/gdlakb-/gp/ || 
|-
| Hotmail Mobile || http://mail.live.com/m ||
|-
| Hotmail Mobile Alt || http://mobile.live.com/hm ||
|-
| MySpace || http://m.myspace.com/ ||
|-
| Twitter || http://mobile.twitter.com/ ||
|-
| Yahoo || http://m.yahoo.com/ || &quot;Mail&quot; link is in upper right
|}

== News / Information Sites ==

{| class=&quot;wikitable&quot;
|+ Modile news/information sites
|-
! Site
! URL
! class=&quot;unsortable&quot; | Notes
|-
| Ars Technica || http://arstechnica.com || recognizes some user agents
|-
| CNet || http://m.cnet.com ||
|-
| Google News || http://news.google.com/m || May direct you to mobile version of news site
|}

== Search ==

{| class=&quot;wikitable sortable&quot;
|+ Mobile search sites
|-
! Site
! URL
! Notes
|-
| Bing || http://m.bing.com/ || 
|-
| Google || http://www.google.com/m || 
|-
| Yahoo || http://m.yahoo.com/ || 
|-
|}

== Common Patterns ==

A quick glance at this table shows you that mobile-friendly URLs often fall into certain patterns:
* m.site.com
* www.site.mobi
* www.site.com/m
* www.site.com/mobile
Knowing these patterns, you can discover other mobile-friendly sites.

[[Category:Web]]</text>
    </revision>
  </page>
  <page>
    <title>User:192.198.151.37</title>
    <id>4133</id>
    <revision>
      <id>34816</id>
      <timestamp>2010-05-25T13:16:06Z</timestamp>
      <contributor>
        <ip>192.198.151.36</ip>
      </contributor>
      <comment>New page: Hi</comment>
      <text xml:space="preserve">Hi</text>
    </revision>
  </page>
  <page>
    <title>User:82.210.136.245</title>
    <id>3789</id>
    <revision>
      <id>31623</id>
      <timestamp>2010-03-26T14:11:00Z</timestamp>
      <contributor>
        <ip>82.210.136.245</ip>
      </contributor>
      <comment>New page: Apart of my IP, I'll stay anonymous for some time, because after creating three accounts on maemo.org (each one: maemo.org, talk.maemo.org, bugs.maemo.org and now wiki.maemo.org needs diff...</comment>
      <text xml:space="preserve">Apart of my IP, I'll stay anonymous for some time, because after creating three accounts on maemo.org (each one: maemo.org, talk.maemo.org, bugs.maemo.org and now wiki.maemo.org needs different account. Why?), I am a bit fed up with it.</text>
    </revision>
  </page>
  <page>
    <title>User:Aaditya025</title>
    <id>3750</id>
    <revision>
      <id>31147</id>
      <timestamp>2010-03-15T16:38:35Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <comment>New page: Hey,  you should read the instructions here[1] in order to become a GSoC mentor, we don't know you, so we can't accept just a name in the wiki page, and please stop spamming this page[2], ...</comment>
      <text xml:space="preserve">Hey,

you should read the instructions here[1] in order to become a GSoC mentor, we don't know you, so we can't accept just a name in the wiki page, and please stop spamming this page[2], that's for the approved projects, not for the project ideas.

[1] - http://wiki.maemo.org/GSoC_2010/Mentors#How_to_become_a_mentor
[2] - http://wiki.maemo.org/GSoC_2010/Projects

--[[User:vdvsx|VDVsx]] 16:38, 15 March 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>User:Acedip</title>
    <id>3697</id>
    <revision>
      <id>30482</id>
      <timestamp>2010-03-04T14:21:35Z</timestamp>
      <contributor>
        <username>acedip</username>
        <id>2252</id>
      </contributor>
      <text xml:space="preserve">== Contact ==
* acedip@fedoraproject.org
* [http://acedip.in webpage]</text>
    </revision>
  </page>
  <page>
    <title>User:Allnameswereout</title>
    <id>1282</id>
    <revision>
      <id>8715</id>
      <timestamp>2008-11-12T23:08:46Z</timestamp>
      <contributor>
        <username>allnameswereout</username>
        <id>212</id>
      </contributor>
      <minor/>
      <comment>thanks</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>User:Almehdi</title>
    <id>3918</id>
    <revision>
      <id>33700</id>
      <timestamp>2010-05-01T23:12:51Z</timestamp>
      <contributor>
        <username>almehdi</username>
        <id>2525</id>
      </contributor>
      <comment>/* My installed programs */</comment>
      <text xml:space="preserve">==My kernel settings==
Script and Conf can be taken from [http://talk.maemo.org/showpost.php?p=609382&amp;postcount=2659 Maemo22], 
[http://talk.maemo.org/showpost.php?p=610967&amp;postcount=2718 Maemo23], [http://talk.maemo.org/showpost.php?p=608126&amp;postcount=2586 Voltage settings]:
 :XLV is: &quot;20 20 30 33 38 38 45 45 48 48 54 54 60 67 72&quot;
 :ideal: 30 30 30 30 33 38 45 45 48 48 54 54 60 67 72 (first three ignored)
 :ULV: 25 25 25 33 38 38 45 45 48 48 54 54 60 67 72
 :LV: 30 30 38 48 48 54 54 54 54 54 54 54 60 67 72

===My stable/unstable kernel settings===
 Stock 250-600 volt=&quot;&quot; 
 OC-250-805 volt=&quot;30 30 30 33 38 38 45 45 48 48 54 54 60 67 72&quot;
 OC-250-850 volt=&quot;30 30 30 33 38 38 45 45 48 48 54 54 60 67 72&quot; (unstable)
 OC-250-900 volt=&quot;30 30 30 33 38 38 45 45 48 48 54 54 60 67 72&quot; (unstable)
 OC-250-950 volt=&quot;30 30 30 33 38 38 45 45 48 48 54 54 60 67 72&quot; (unstable)
 
 current mhz/volt= 125/20 0.850V
                  *250/30 0.975V
                  *500/33 1.012V
                  *550/33 1.012V
                  *600/38 1.075V
                  *700/38 1.075V
                  *750/45 1.163V
                  *805/45 1.163V
                  *850/48 1.200V
                  *900/54 1.275V
                  *950/54 1.275V
                  1000/60 1.350V
                  1010/60 1.350V
                  1015/72 
 
 17 = 0x11 = 0.812V
 20 = 0x14 = 0.850V 
 30 = 0x1e = 0.975V 
 33 = 0x21 = 1.012V 
 35 = 0x23 = 1.038V
 38 = 0x26 = 1.075V 
 40 = 0x28 = 1.100V
 43 = 0x2b = 1.137V
 45 = 0x2d = 1.163V
 47 = 0x2f = 1.188V 
 48 = 0x30 = 1.200V 
 50 = 0x32 = 1.225V
 53 = 0x35 = 1.263V
 54 = 0x36 = 1.275V
 58 = 0x3a = 1.325V 
 60 = 0x3c = 1.350V
 64 = 0x40 = 1.400V
 70 = 0x46 = 1.475V



== '''Install nbench:''' ==
1. Install rootsh if you havent

2. Open terminal and write: 
 cd /home/user/MyDocs/Downloads/

3. Download by writing:
 wget http://my.arava.co.il/~matan/770/n900/nbench
 wget http://my.arava.co.il/~matan/770/n900/COM.DAT
 wget http://my.arava.co.il/~matan/770/n900/NNET.DAT

(If you don't have wget: apt-get install wget)

4. write: 
 root

5. Make a directory:
 mkdir /home/opt/nbench

6. Move the files to a better location:
 mv /home/user/MyDocs/Downloads/nbench /home/opt/nbench
 mv /home/user/MyDocs/Downloads/COM.DAT /home/opt/nbench
 mv /home/user/MyDocs/Downloads/NNET.DAT /home/opt/nbench
(a tip is to use tab-key to finish easy.. like /h[tab] to make /home/)

7. To get permission:
 chmod 777 /home/opt/nbench/nbench

8. Run and wait for it to finnish:
 /home/opt/nbench/./nbench

 or 
 cd /home/opt/nbench/
 ./nbench

==My installed programs==

 '''Interesting but not installed:'''
 CuteExplorer, Desktop Activity Manager, gTranslate, gvsms, Headphone deamon, healtcheck, Knots2, Panucci, Phototranslator, QTrapids-gui

 '''First:'''
 apt-get install decoders-support

 '''Second:'''
 apt-get install adblock-plus-1.0 array-theme batterygraph callnotify catorise chromium conky cpumem-applet cpufrequtils wget currencyconverter erminig file-roller fmradio p7zip-full tar-gnu

 '''Third:'''
 apt-get install led-pattern-editor lzma telepathy-msn-pecan openssh-client petrovich psswitcher powatool quick-launch tweakr wifi-switcher xarchiver zip 3g2g-mode-selection-applet leafpad xournal desktop-cmd-exec diskusage qtirreco  maemo-mapper

 '''Own repos'''
 [http://maintenance.maemo.org/news/planet-maemo/demo_of_enna_media_center_on_the_n900/ Enna Media Center], [http://toshl.com/expense-tracker-app/maemo/#download Toshl]

==n900 as a Webcam==
http://talk.maemo.org/showpost.php?p=610339&amp;postcount=9</text>
    </revision>
  </page>
  <page>
    <title>User:Amigadave</title>
    <id>3520</id>
    <revision>
      <id>43958</id>
      <timestamp>2011-06-13T09:31:23Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>no longer working on Maemo</comment>
      <text xml:space="preserve">* http://maemo.org/profile/view/amigadave
* &lt;s&gt;[http://maemo.org Maemo.org] developer documentation for [http://www.openismus.com Openismus]&lt;/s&gt;

=== Contact ===

* ''amigadave'' on ''Freenode'' IRC (#maemo-devel, #maemo)
* mailto: davidk \AT/ openismus DOT com
* XMPP: amigadave \AT/ gmail DOT com
* [http://amigadave.blogspot.com/ Blog]</text>
    </revision>
  </page>
  <page>
    <title>User:Andre</title>
    <id>145</id>
    <revision>
      <id>46117</id>
      <timestamp>2011-12-28T15:21:59Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">[http://bugs.maemo.org maemo.org] Bugmaster

{| style=&quot;text-align: center;&quot;
!width=&quot;100&quot;| [[Image:Bm-andre_klapper.jpg|72px]]
|}


Taking care of [https://bugs.maemo.org maemo.org Bugzilla], mainly:
* &lt;del&gt;Triage/Clean up reports and get them into a valuable state whenever needed&lt;/del&gt;
* &lt;del&gt;Import and keep in sync with Nokia's internal bug database&lt;/del&gt;
* Maintenance (Adding / setting new products, milestones, 3rd party apps etc)
* &lt;del&gt;Bugsquad community building (e.g. having Bugdays, #maemo-bugs on IRC)&lt;/del&gt;

Also see http://maemo.org/profile/view/andre

== Other stuff ==

* [http://bugs.maemo.org maemo.org] Bugmaster
* a [http://bugzilla.gnome.org GNOME Bugzilla] Maintainer, member of the [http://live.gnome.org/Bugsquad GNOME Bugsquad], [http://gnome.org/projects/evolution/ GNOME Evolution] Bugmaster Emeritus
* member of the [http://live.gnome.org/ReleasePlanning/ GNOME Release Team] (mostly QA and Schedule)
* member of the [https://live.gnome.org/TranslationProject/CoordinationTeam GNOME Translation Project Coordination team]
* member of the [http://l10n.gnome.org/languages/cs/ Czech GNOME translation team]
* main author and maintainer of the [http://library.gnome.org/users/evolution/3.2/ GNOME Evolution user documentation]
* yet another student</text>
    </revision>
  </page>
  <page>
    <title>User:Andre/Presentations</title>
    <id>1198</id>
    <revision>
      <id>7180</id>
      <timestamp>2008-09-11T15:21:59Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <comment>New page: =[[Maemo Summit 2008]]=  Plans for our 30min Bugsquad [[Maemo Summit 2008#Saturday 20|Maemo Summit]] talk: * [http://www.gnome.org/~aklapper/maemo/bugmastery-presentation-200808.pdf Presen...</comment>
      <text xml:space="preserve">=[[Maemo Summit 2008]]=

Plans for our 30min Bugsquad [[Maemo Summit 2008#Saturday 20|Maemo Summit]] talk:
* [http://www.gnome.org/~aklapper/maemo/bugmastery-presentation-200808.pdf Presentation] (that I already gave in front of Nokia's Maemo Error Management) presenting our work, plans and problems
* The Maemo [[Bugsquad]]: How you can get involved and help
* Questions and discussion</text>
    </revision>
  </page>
  <page>
    <title>User:Andre/bug3846</title>
    <id>1421</id>
    <revision>
      <id>10551</id>
      <timestamp>2009-01-30T10:04:02Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">* [https://bugs.maemo.org/show_bug.cgi?id=3846 Corresponding bug report]
* [http://bonsai.mozilla.org/rview.cgi?dir=mozilla/webtools/bugzilla&amp;cvsroot=/cvsroot Upstream Bugzilla Code Browse interface]
* [http://www.bugzilla.org/download/#cvs Bugzilla CVS checkout howto]

=Diff's=

==Diff against subfolders only==

Complete folders existing only in our SVN:
* docs
* t
* template_maemo

==Diff sizes between Debian upstream package and our SVN rev 1:==
Total size: 146329

    8407 23. Jan 15:05 Bugzilla.diff
    3082 23. Jan 15:05 contrib.diff
       0 23. Jan 15:08 data.diff
       0 23. Jan 15:06 js.diff
   27259 23. Jan 15:06 skins.diff
  104025 23. Jan 15:10 template2template_maemo.diff
    3556 23. Jan 15:09 template2template.diff

=== Bugzilla.diff===
=== contrib.diff===
* contrib/bugzilla.procmailrc
DOES NOT EXIST UPSTREAM, CUSTOM ADDITION
* contrib/bugzilla_ldapsync.rb
FIXED UPSTREAM: http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla%2Fwebtools%2Fbugzilla%2Fcontrib%2Fbugzilla_ldapsync.rb&amp;rev=&amp;cvsroot=%2Fcvsroot
* contrib/gnatsparse/gnatsparse.py
FIXED UPSTREAM: http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla%2Fwebtools%2Fbugzilla%2Fcontrib%2Fgnatsparse%2Fgnatsparse.py&amp;rev=&amp;cvsroot=%2Fcvsroot
* contrib/gnatsparse/magic.py
FIXED UPSTREAM: http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla%2Fwebtools%2Fbugzilla%2Fcontrib%2Fgnatsparse%2Fmagic.py&amp;rev=&amp;cvsroot=%2Fcvsroot
* contrib/jb2bz.py
FIXED UPSTREAM http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla%2Fwebtools%2Fbugzilla%2Fcontrib%2Fjb2bz.py&amp;rev=&amp;cvsroot=%2Fcvsroot
=== skins.diff===
* All *additions* were created in skins/maemo/
* Changes in skins/standard/ are FIXED UPSTREAM by https://bugzilla.mozilla.org/show_bug.cgi?id=274134
=== template2template_maemo.diff===

* VERY TRIVIAL:
** small &quot;title&quot;-&gt;&quot;h1&quot; tag changes and additions, &quot;h3&quot;-&gt;&quot;h4&quot; etc. =&gt; IGNORE!
*** /en/default/admin/fieldvalues/created.html.tmpl
*** /en/default/admin/fieldvalues/edit.html.tmpl
*** /en/default/admin/fieldvalues/list.html.tmpl
*** /en/default/admin/fieldvalues/select-field.html.tmpl
*** /en/default/admin/fieldvalues/updated.html.tmpl
*** /en/default/admin/flag-type/edit.html.tmpl
*** /en/default/admin/flag-type/list.html.tmpl
*** /en/default/admin/groups/created.html.tmpl
*** /en/default/admin/groups/create.html.tmpl
*** /en/default/admin/groups/delete.html.tmpl
*** /en/default/admin/groups/edit.html.tmpl
*** /en/default/admin/keywords/confirm-delete.html.tmpl
*** /en/default/admin/keywords/created.html.tmpl
*** /en/default/admin/keywords/create.html.tmpl
*** /en/default/admin/keywords/edit.html.tmpl
*** /en/default/admin/keywords/list.html.tmpl
*** /en/default/admin/keywords/rebuild-cache.html.tmpl
*** /en/default/admin/products/edit.html.tmpl
*** /en/default/admin/products/list.html.tmpl
*** /en/default/admin/users/create.html.tmpl
*** /en/default/admin/users/edit.html.tmpl
*** /en/default/admin/users/search.html.tmpl
*** /en/default/bug/create/created.html.tmpl
*** /en/default/global/messages.html.tmpl
*** /en/default/pages/bug-writing.html.tmpl
*** /en/default/pages/linked.html.tmpl
*** /en/default/pages/quicksearchhack.html.tmpl
*** /en/default/pages/quicksearch.html.tmpl
*** /en/default/pages/voting.html.tmpl
*** /en/default/reports/create-chart.html.tmpl
*** /en/default/reports/keywords.html.tmpl
*** /en/default/reports/menu.html.tmpl
*** /en/default/request/queue.html.tmpl
*** /en/default/search/search-advanced.html.tmpl
*** /en/default/search/search-create-series.html.tmpl
*** /en/default/search/search-report-graph.html.tmpl
*** /en/default/search/search-report-table.html.tmpl
*** /en/default/whine/schedule.html.tmpl

** &quot;skins/standard/&quot; -&gt; &quot;skins/custom/&quot; string changes in
*** /en/default/sidebar.xul.tmpl
*** /en/default/admin/confirm-action.html.tmpl
*** /en/default/admin/fieldvalues/confirm-delete.html.tmpl
*** /en/default/admin/params/editparams.html.tmpl
*** /en/default/admin/products/confirm-delete.html.tmpl
*** /en/default/admin/products/create.html.tmpl
*** /en/default/admin/products/updated.html.tmpl
*** /en/default/admin/sudo.html.tmpl
*** /en/default/admin/users/confirm-delete.html.tmpl
*** /en/default/admin/users/list.html.tmpl
*** /en/default/admin/users/search.html.tmpl
*** /en/default/bug/summarize-time.html.tmpl
*** /en/default/list/list-simple.html.tmpl
*** /en/default/admin/products/edit.html.tmpl
*** /en/default/admin/users/create.html.tmpl
*** /en/default/admin/users/edit.html.tmpl

* TRIVIAL:
* NONTRIVIAL:

* OBSOLETE/NONEXISTING:
*** /en/default/admin/groups/change.html.tmpl

=== template2template.diff===
* template/en/default/bug/show.xml.tmpl
FIXED UPSTREAM: http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla%2Fwebtools%2Fbugzilla%2Ftemplate%2Fen%2Fdefault%2Fbug%2Fshow.xml.tmpl&amp;rev=&amp;cvsroot=%2Fcvsroot
* template/en/default/global/header.html.tmpl
FIXED UPSTREAM: http://bonsai.mozilla.org/cvsview2.cgi?diff_mode=context&amp;whitespace_mode=show&amp;root=/cvsroot&amp;subdir=mozilla/webtools/bugzilla/template/en/default/global&amp;command=DIFF_FRAMESET&amp;file=header.html.tmpl&amp;rev2=1.58&amp;rev1=1.57 and http://bonsai.mozilla.org/cvsview2.cgi?diff_mode=context&amp;whitespace_mode=show&amp;root=/cvsroot&amp;subdir=mozilla/webtools/bugzilla/template/en/default/global&amp;command=DIFF_FRAMESET&amp;file=header.html.tmpl&amp;rev2=1.45&amp;rev1=1.44
* template/en/default/global/useful-links.html.tmpl
OBSOLETE

=Commit logs=

Get only filenames of changed files listed:
svn log -v -r revision1 https://garage.maemo.org/svn/bugs/trunk

Get diffs:
svn diff -r revision1:revision2 https://garage.maemo.org/svn/bugs/trunk


------------------------------------------------------------------------
r50 | andre | 2009-01-08 12:59:54 +0100 (Thu, 08 Jan 2009) | 7 lines

2009-01-08  Andre Klapper  &lt;&lt;aklapper openismus comm&gt;&gt;

	* template_maemo/en/default/index.html.tmpl: 
	Add link to Bugsquad wiki page on Bugzilla front page.
	Fixes bug 3711.

=&gt; CUSTOM =&gt; NEEDS PORTING; TRIVIAL


------------------------------------------------------------------------
r49 | andre | 2008-11-19 20:09:24 +0100 (Wed, 19 Nov 2008) | 7 lines

2008-11-19  Andre Klapper  &lt;&lt;aklapper openismus comm&gt;&gt;

	* template_maemo/en/default/pages/fields.html.tmpl: 
	Update descriptions to reality.
	Fixes bug 3870.

=&gt; CUSTOM =&gt; NEEDS PORTING; TRIVIAL


------------------------------------------------------------------------
r48 | andre | 2008-11-19 19:16:53 +0100 (Wed, 19 Nov 2008) | 7 lines

2008-11-19  Andre Klapper  &lt;&lt;aklapper openismus comm&gt;&gt;

	* template_maemo/en/default/bug/create.html.tmpl: 
	Add more explanation to default bug filing template.
	Fixes bug 3651.

=&gt; CUSTOM =&gt; NEEDS PORTING; TRIVIAL


------------------------------------------------------------------------
r47 | andre | 2008-11-19 16:50:40 +0100 (Wed, 19 Nov 2008) | 7 lines

2008-11-19  Andre Klapper  &lt;&lt;aklapper openismus comm&gt;&gt;

	* skins/maemo/maemo_org_style.css:
	Fix wrong comment style from // to /* */.
	Fixes bug 3390.

=&gt; CUSTOM =&gt; NEEDS PORTING; TRIVIAL


------------------------------------------------------------------------
r46 | feri | 2008-09-17 16:11:11 +0200 (Wed, 17 Sep 2008) | 1 line

updating debian changelogs for new packaging

=&gt; IGNORE (only ChangeLog changes)


------------------------------------------------------------------------
r45 | karstenb | 2008-09-16 22:58:05 +0200 (Tue, 16 Sep 2008) | 25 lines

2008-09-16  Karsten Braeckelmann  &lt;&lt;karstenb openismus comm&gt;&gt;

        Disable resolution LATER and REMIND, since they are deprecated,
        considered harmful and not used by maemo.org.

        Fixes bug 3664.

        * template_maemo/en/default/pages/fields.html.tmpl: 
        Remove the obsolete resolution descriptions.

        * checksetup.pl: 
        Disable resolution LATER and REMIND in the resolution table.  This
        will be run on installation during the package's postinstall script.

        Note: This is kind of a hack.  It would be sufficient to disable
        these resolutions in the database and drop bugzilla's internal
        cache once.  Alas, no direct life database access.  Anyway, this
	does the trick, ensures these resoltions are disabled, and
	documents the fact nicely.  Doesn't impose much overhead either.

	See also upstream bugzilla bug 13534 for discussion and reasons not
	to ship these by default.  The fix doesn't apply to existing bugzilla
	installations, though.

=&gt; FIXED UPSTREAM BY https://bugzilla.mozilla.org/show_bug.cgi?id=13534

=&gt; FIXED UPSTREAM BY https://bugzilla.mozilla.org/show_bug.cgi?id=94534


------------------------------------------------------------------------
r44 | karstenb | 2008-09-16 21:36:03 +0200 (Tue, 16 Sep 2008) | 7 lines

2008-09-16  Karsten Braeckelmann  &lt;&lt;karstenb openismus comm&gt;&gt;

        * template_maemo/en/default/pages/bug-writing.html.tmpl: 
        Correct a bad phrase in the Bug Writing Guidelines &quot;good&quot; example.
        Follow up to bug 1288.

=&gt; CUSTOM =&gt; NEEDS PORTING; TRIVIAL


------------------------------------------------------------------------
r43 | karstenb | 2008-09-15 19:10:49 +0200 (Mon, 15 Sep 2008) | 12 lines

2008-09-15  Karsten Braeckelmann  &lt;&lt;karstenb openismus comm&gt;&gt;

        * template_maemo/en/default/bug/edit.html.tmpl: 
        Minor tweak.  Add some missing space after the last comment.

        * template_maemo/en/default/pages/bug-writing.html.tmpl: 
        * template_maemo/en/default/index.html.tmpl: 
        Some string changes to comply with the branding guidelines for
        Maemo and maemo.org, as defined during the maemo.org brainstorm.
        Fixes bug 3577.

=&gt; CUSTOM =&gt; NEEDS PORTING; TRIVIAL


------------------------------------------------------------------------
r42 | karstenb | 2008-09-02 02:11:28 +0200 (Tue, 02 Sep 2008) | 6 lines

2008-09-02  Karsten Braeckelmann  &lt;&lt;karstenb openismus comm&gt;&gt;

        * template_maemo/en/default/bug/knob.html.tmpl: 
        Add id to the Commit button, to support scripting.  Fixes bug 3657.

=&gt; FIXED UPSTREAM BY https://bugzilla.mozilla.org/show_bug.cgi?id=317694


------------------------------------------------------------------------
r41 | karstenb | 2008-09-02 01:34:49 +0200 (Tue, 02 Sep 2008) | 8 lines

2008-09-02  Karsten Braeckelmann  &lt;&lt;karstenb openismus comm&gt;&gt;

        * template_maemo/en/default/bug/knob.html.tmpl: 
        Show the &quot;Clone This Bug&quot; option only for users with canconfirm or
        editbugs (implies canconfirm) privileges.  Also, do not show it,
        unless the user actually is logged in.  Fixes bug 3350.

=&gt; CUSTOM =&gt; NEEDS PORTING; TRIVIAL (2 liner)


------------------------------------------------------------------------
r40 | karstenb | 2008-09-01 22:10:55 +0200 (Mon, 01 Sep 2008) | 19 lines

2008-08-24  Karsten Braeckelmann  &lt;&lt;karstenb openismus comm&gt;&gt;

        Preference to automatically add the user to the Cc list when
        changing bugs.  See upstream bugzilla bug 7710.

        Fixes bug 1417.

        * template_maemo/en/default/bug/edit.html.tmpl: 
        Set the state of the addselfcc checkbox according to the preferences.

        * template_maemo/en/default/global/setting-descs.none.tmpl: 
        * checksetup.pl: 
        User configurable preference to automatically add the user to the
        Cc list when changing a bug (includes comments).

        Note: This patch requires running checksetup.pl once.  Done during
        the packages postinstall script.

=&gt; FIXED UPSTREAM BY https://bugzilla.mozilla.org/show_bug.cgi?id=7710 ?


------------------------------------------------------------------------
r39 | karstenb | 2008-08-23 19:54:54 +0200 (Sat, 23 Aug 2008) | 15 lines

2008-08-23  Karsten Braeckelmann  &lt;&lt;karstenb openismus comm&gt;&gt;

        Make the Version item a descriptive link re-using the existing
        Target Milestone URL.

        Fixes bug 3625 and partially bug 3623.

        * template_maemo/en/default/bug/create/create.html.tmpl: 
        * enter_bug.cgi: 
        Linkify Version item for enter_bug.cgi, file New bug report form.

        * template_maemo/en/default/bug/edit.html.tmpl: 
        Linkify Version item for show_bug.cgi, Edit bug report form.

=&gt; CUSTOM =&gt; NEEDS PORTING; TRIVIAL (2 liner)
=&gt; Note: milestoneurl is defined on per-product basis


------------------------------------------------------------------------
r38 | karstenb | 2008-08-21 23:04:31 +0200 (Thu, 21 Aug 2008) | 13 lines

2008-08-21  Karsten Braeckelmann  &lt;&lt;karstenb openismus comm&gt;&gt;

        Implement maemo.org group membership hints, displayed in show_bug.cgi.

        * Bugzilla/Bug.pm (GetComments): 
        Rewrite SQL statement handle for arbitrary group membership queries.
        Adjust the Nokia group lookup, add maemo.org group lookup and hash.

        * template_maemo/en/default/bug/comments.html.tmpl: 
        Rewrite the hints display logic, to support any number of possible
        hints.  Add maemo.org hint to comment headers.

=&gt; CUSTOM =&gt; NEEDS PORTING (22 lines)


------------------------------------------------------------------------
r37 | karstenb | 2008-08-21 22:00:45 +0200 (Thu, 21 Aug 2008) | 7 lines

2008-08-21  Karsten Braeckelmann  &lt;&lt;karstenb openismus comm&gt;&gt;

	* template_maemo/en/default/attachment/edit.html.tmpl: 
	Add some space for the currently shown attachment number in the list.
	Patch by Andre Klapper, fixes bug 3596.

=&gt; FIXED UPSTREAM BY https://bugzilla.mozilla.org/show_bug.cgi?id=364167


------------------------------------------------------------------------
r36 | karstenb | 2008-08-17 17:03:25 +0200 (Sun, 17 Aug 2008) | 17 lines

2008-08-17  Karsten Braeckelmann  &lt;&lt;karstenb openismus comm&gt;&gt;

        Quote replies, visually highlighting quoted text.  See upstream
        bugzilla bug 313045.

        * globals.pl (quoteUrls): 
        Implement color quoted text, abusing quoteUrls() while we're there.

        * skins/maemo/maemo_org_style.css: 
        Add color for quoted text, grayed-out.

        * skins/maemo/maemo_org_style.css: 
        * skins/maemo/index.css: 
        Use a slightly darker text color, defining it once and inheriting
        the color, rather than setting it redundantly.

=&gt; CUSTOM =&gt; NEEDS PORTING; TRIVIAL


------------------------------------------------------------------------
r35 | feri | 2008-08-11 19:06:55 +0200 (Mon, 11 Aug 2008) | 1 line

new debian build after upstream changes

=&gt; IGNORE (only ChangeLog changes)


------------------------------------------------------------------------
r34 | feri | 2008-08-11 17:09:12 +0200 (Mon, 11 Aug 2008) | 1 line

older debian changelog committed

=&gt; IGNORE (only ChangeLog changes)


------------------------------------------------------------------------
r31 | karstenb | 2008-08-11 13:03:59 +0200 (Mon, 11 Aug 2008) | 12 lines

2008-08-11  Karsten Braeckelmann  &lt;&lt;karstenb openismus comm&gt;&gt;

        * template_maemo/en/default/pages/fields.html.tmpl: 
        Resolution LATER and REMIND documented.  Deprecated and Obsolete.
        Fixes bug 2365.

        * template_maemo/en/default/pages/bug-writing.html.tmpl: 
        Modiefied the Bug Writing Guidelines to better suit maemo.org
        Bugzilla.  Or rather [% terms.Bugzilla %].  *sigh*
        Based on the text by Andre Klapper, fixes bug 1288.

=&gt; CUSTOM =&gt; NEEDS PORTING; TRIVIAL


------------------------------------------------------------------------
r30 | karstenb | 2008-06-29 19:52:19 +0200 (Sun, 29 Jun 2008) | 4 lines

Adjust ChangeLog to reflect the recent svn mv, getting rid of the version
prefixed dir.

=&gt; IGNORE (only ChangeLog changes)


------------------------------------------------------------------------
r29 | feri | 2008-06-27 23:30:24 +0200 (Fri, 27 Jun 2008) | 1 line

   Changed paths:
   M /trunk/Bugzilla/Config.pm
   M /trunk/Bugzilla/Constants.pm
   M /trunk/Bugzilla/Template.pm
   M /trunk/Bugzilla/User.pm
   M /trunk/attachment.cgi
   M /trunk/buglist.cgi
   M /trunk/chart.cgi
   M /trunk/checksetup.pl
   M /trunk/colchange.cgi
   M /trunk/collectstats.pl
   M /trunk/config.cgi
   M /trunk/contrib/bugzilla_ldapsync.rb
   M /trunk/contrib/gnatsparse/gnatsparse.py
   M /trunk/contrib/gnatsparse/magic.py
   M /trunk/contrib/jb2bz.py
   M /trunk/createaccount.cgi
   M /trunk/debian/changelog
   M /trunk/debian/patched/01_libpath.dpatch
   M /trunk/debian/patched/02_checksetup.dpatch
   M /trunk/debian/patched/03_webpath.dpatch
   M /trunk/debian/patched/04_Config.pm.dpatch
   M /trunk/debian/patched/05_Bugzilla_User.pm.dpatch
   M /trunk/debian/patched/06_contrib.dpatch
   M /trunk/debian/patched/08_showdependencygraph.dpatch
   M /trunk/debian/patched/09_homelink.dpatch
   M /trunk/debian/patched/10_perl_scripts_shebang.dpatch
   M /trunk/debian/patched/11_collectstats.pl.dpatch
   M /trunk/debian/patched/12_enter_bug_cgi.dpatch
   M /trunk/debian/patched/13_report_cgi.dpatch
   M /trunk/debian/patched/14_User_pm.dpatch
   M /trunk/debian/patched/15_Constants_pm.dpatch
   M /trunk/debian/patched/buglist.css.dpatch
   M /trunk/describecomponents.cgi
   M /trunk/describekeywords.cgi
   M /trunk/duplicates.cgi
   M /trunk/editclassifications.cgi
   M /trunk/editcomponents.cgi
   M /trunk/editflagtypes.cgi
   M /trunk/editgroups.cgi
   M /trunk/editkeywords.cgi
   M /trunk/editmilestones.cgi
   M /trunk/editparams.cgi
   M /trunk/editproducts.cgi
   M /trunk/editsettings.cgi
   M /trunk/editusers.cgi
   M /trunk/editvalues.cgi
   M /trunk/editversions.cgi
   M /trunk/editwhines.cgi
   M /trunk/enter_bug.cgi
   M /trunk/globals.pl
   M /trunk/index.cgi
   M /trunk/long_list.cgi
   M /trunk/page.cgi
   M /trunk/post_bug.cgi
   M /trunk/process_bug.cgi
   M /trunk/query.cgi
   M /trunk/quips.cgi
   M /trunk/relogin.cgi
   M /trunk/report.cgi
   M /trunk/reports.cgi
   M /trunk/request.cgi
   M /trunk/sanitycheck.cgi
   M /trunk/show_activity.cgi
   M /trunk/show_bug.cgi
   M /trunk/showattachment.cgi
   M /trunk/showdependencygraph.cgi
   M /trunk/showdependencytree.cgi
   M /trunk/sidebar.cgi
   M /trunk/skins/standard/buglist.css
   M /trunk/summarize_time.cgi
   M /trunk/template/en/default/bug/show.xml.tmpl
   M /trunk/template/en/default/global/header.html.tmpl
   M /trunk/template/en/default/global/useful-links.html.tmpl
   M /trunk/testserver.pl
   M /trunk/token.cgi
   M /trunk/userprefs.cgi
   M /trunk/votes.cgi
   M /trunk/whine.pl
   M /trunk/whineatnews.pl
   M /trunk/xml.cgi

reverting attempt again


------------------------------------------------------------------------
r27 | feri | 2008-06-27 22:56:34 +0200 (Fri, 27 Jun 2008) | 1 line

   Changed paths:
   D /trunk/debian/patches/16_Karsten_changes_1.dpatch

this patch file was accidentally committed previously


------------------------------------------------------------------------
r26 | feri | 2008-06-27 22:55:55 +0200 (Fri, 27 Jun 2008) | 1 line

   Changed paths:
   M /trunk/Bugzilla/Config.pm
   M /trunk/Bugzilla/Constants.pm
   M /trunk/Bugzilla/Template.pm
   M /trunk/Bugzilla/User.pm
   M /trunk/attachment.cgi
   M /trunk/buglist.cgi
   M /trunk/chart.cgi
   M /trunk/checksetup.pl
   M /trunk/colchange.cgi
   M /trunk/collectstats.pl
   M /trunk/config.cgi
   M /trunk/contrib/bugzilla_ldapsync.rb
   M /trunk/contrib/gnatsparse/gnatsparse.py
   M /trunk/contrib/gnatsparse/magic.py
   M /trunk/contrib/jb2bz.py
   M /trunk/createaccount.cgi
   M /trunk/debian/changelog
   A /trunk/debian/patched
   A /trunk/debian/patched/01_libpath.dpatch
   A /trunk/debian/patched/02_checksetup.dpatch
   A /trunk/debian/patched/03_webpath.dpatch
   A /trunk/debian/patched/04_Config.pm.dpatch
   A /trunk/debian/patched/05_Bugzilla_User.pm.dpatch
   A /trunk/debian/patched/06_contrib.dpatch
   A /trunk/debian/patched/08_showdependencygraph.dpatch
   A /trunk/debian/patched/09_homelink.dpatch
   A /trunk/debian/patched/10_perl_scripts_shebang.dpatch
   A /trunk/debian/patched/11_collectstats.pl.dpatch
   A /trunk/debian/patched/12_enter_bug_cgi.dpatch
   A /trunk/debian/patched/13_report_cgi.dpatch
   A /trunk/debian/patched/14_User_pm.dpatch
   A /trunk/debian/patched/15_Constants_pm.dpatch
   A /trunk/debian/patched/buglist.css.dpatch
   A /trunk/debian/patches/16_Karsten_changes_1.dpatch
   M /trunk/describecomponents.cgi
   M /trunk/describekeywords.cgi
   M /trunk/duplicates.cgi
   M /trunk/editclassifications.cgi
   M /trunk/editcomponents.cgi
   M /trunk/editflagtypes.cgi
   M /trunk/editgroups.cgi
   M /trunk/editkeywords.cgi
   M /trunk/editmilestones.cgi
   M /trunk/editparams.cgi
   M /trunk/editproducts.cgi
   M /trunk/editsettings.cgi
   M /trunk/editusers.cgi
   M /trunk/editvalues.cgi
   M /trunk/editversions.cgi
   M /trunk/editwhines.cgi
   M /trunk/enter_bug.cgi
   M /trunk/globals.pl
   M /trunk/index.cgi
   M /trunk/long_list.cgi
   M /trunk/page.cgi
   M /trunk/post_bug.cgi
   M /trunk/process_bug.cgi
   M /trunk/query.cgi
   M /trunk/quips.cgi
   M /trunk/relogin.cgi
   M /trunk/report.cgi
   M /trunk/reports.cgi
   M /trunk/request.cgi
   M /trunk/sanitycheck.cgi
   M /trunk/show_activity.cgi
   M /trunk/show_bug.cgi
   M /trunk/showattachment.cgi
   M /trunk/showdependencygraph.cgi
   M /trunk/showdependencytree.cgi
   M /trunk/sidebar.cgi
   M /trunk/skins/standard/buglist.css
   M /trunk/summarize_time.cgi
   M /trunk/template/en/default/bug/show.xml.tmpl
   M /trunk/template/en/default/global/header.html.tmpl
   M /trunk/template/en/default/global/useful-links.html.tmpl
   M /trunk/testserver.pl
   M /trunk/token.cgi
   M /trunk/userprefs.cgi
   M /trunk/votes.cgi
   M /trunk/whine.pl
   M /trunk/whineatnews.pl
   M /trunk/xml.cgi

committing the debian patches to our trunk


------------------------------------------------------------------------
r25 | feri | 2008-06-27 17:47:42 +0200 (Fri, 27 Jun 2008) | 1 line

   Changed paths:
   A /trunk/Bugzilla
   A /trunk/Bugzilla/Attachment.pm
   A /trunk/Bugzilla/Auth
   A /trunk/Bugzilla/Auth/Login
   A /trunk/Bugzilla/Auth/Login/WWW
   A /trunk/Bugzilla/Auth/Login/WWW/CGI
   A /trunk/Bugzilla/Auth/Login/WWW/CGI/Cookie.pm
   A /trunk/Bugzilla/Auth/Login/WWW/CGI.pm
   A /trunk/Bugzilla/Auth/Login/WWW/Env.pm
   A /trunk/Bugzilla/Auth/Login/WWW.pm
   A /trunk/Bugzilla/Auth/README
   A /trunk/Bugzilla/Auth/Verify
   A /trunk/Bugzilla/Auth/Verify/DB.pm
   A /trunk/Bugzilla/Auth/Verify/LDAP.pm
   A /trunk/Bugzilla/Auth.pm
   A /trunk/Bugzilla/Bug.pm
   A /trunk/Bugzilla/BugMail.pm
   A /trunk/Bugzilla/CGI.pm
   A /trunk/Bugzilla/Chart.pm
   A /trunk/Bugzilla/Classification.pm
   A /trunk/Bugzilla/Component.pm
   A /trunk/Bugzilla/Config
   A /trunk/Bugzilla/Config/Admin.pm
   A /trunk/Bugzilla/Config/Attachment.pm
   A /trunk/Bugzilla/Config/Auth.pm
   A /trunk/Bugzilla/Config/BugChange.pm
   A /trunk/Bugzilla/Config/BugFields.pm
   A /trunk/Bugzilla/Config/BugMove.pm
   A /trunk/Bugzilla/Config/Common.pm
   A /trunk/Bugzilla/Config/Core.pm
   A /trunk/Bugzilla/Config/DependencyGraph.pm
   A /trunk/Bugzilla/Config/GroupSecurity.pm
   A /trunk/Bugzilla/Config/L10n.pm
   A /trunk/Bugzilla/Config/LDAP.pm
   A /trunk/Bugzilla/Config/MTA.pm
   A /trunk/Bugzilla/Config/PatchViewer.pm
   A /trunk/Bugzilla/Config/Query.pm
   A /trunk/Bugzilla/Config/ShadowDB.pm
   A /trunk/Bugzilla/Config/UserMatch.pm
   A /trunk/Bugzilla/Config.pm
   A /trunk/Bugzilla/Constants.pm
   A /trunk/Bugzilla/DB
   A /trunk/Bugzilla/DB/Mysql.pm
   A /trunk/Bugzilla/DB/Pg.pm
   A /trunk/Bugzilla/DB/Schema
   A /trunk/Bugzilla/DB/Schema/Mysql.pm
   A /trunk/Bugzilla/DB/Schema/Pg.pm
   A /trunk/Bugzilla/DB/Schema.pm
   A /trunk/Bugzilla/DB.pm
   A /trunk/Bugzilla/Error.pm
   A /trunk/Bugzilla/Field.pm
   A /trunk/Bugzilla/Flag.pm
   A /trunk/Bugzilla/FlagType.pm
   A /trunk/Bugzilla/Group.pm
   A /trunk/Bugzilla/Milestone.pm
   A /trunk/Bugzilla/Product.pm
   A /trunk/Bugzilla/Search
   A /trunk/Bugzilla/Search/Quicksearch.pm
   A /trunk/Bugzilla/Search.pm
   A /trunk/Bugzilla/Series.pm
   A /trunk/Bugzilla/Template
   A /trunk/Bugzilla/Template/Plugin
   A /trunk/Bugzilla/Template/Plugin/Bugzilla.pm
   A /trunk/Bugzilla/Template/Plugin/Hook.pm
   A /trunk/Bugzilla/Template/Plugin/User.pm
   A /trunk/Bugzilla/Template.pm
   A /trunk/Bugzilla/Token.pm
   A /trunk/Bugzilla/User
   A /trunk/Bugzilla/User/Setting.pm
   A /trunk/Bugzilla/User.pm
   A /trunk/Bugzilla/Util.pm
   A /trunk/Bugzilla/Version.pm
   A /trunk/Bugzilla.pm
   A /trunk/Makefile
   A /trunk/QUICKSTART
   A /trunk/README
   A /trunk/UPGRADING
   A /trunk/UPGRADING-pre-2.8
   A /trunk/attachment.cgi
   A /trunk/buglist.cgi
   A /trunk/bugzilla.dtd
   A /trunk/build_scripts/builder.sh
   A /trunk/build_scripts/cron_autobuilder.sh
   D /trunk/builder.sh
   A /trunk/chart.cgi
   A /trunk/checksetup.pl
   A /trunk/colchange.cgi
   A /trunk/collectstats.pl
   A /trunk/config.cgi
   A /trunk/contrib
   A /trunk/contrib/BugzillaEmail.pm
   A /trunk/contrib/README
   A /trunk/contrib/README.Mailif
   A /trunk/contrib/bug_email.pl
   A /trunk/contrib/bugmail_help.html
   A /trunk/contrib/bugzilla-submit
   A /trunk/contrib/bugzilla-submit/README
   A /trunk/contrib/bugzilla-submit/bugdata.txt
   A /trunk/contrib/bugzilla-submit/bugzilla-submit
   A /trunk/contrib/bugzilla-submit/bugzilla-submit.xml
   A /trunk/contrib/bugzilla.procmailrc
   A /trunk/contrib/bugzilla_email_append.pl
   A /trunk/contrib/bugzilla_ldapsync.rb
   A /trunk/contrib/bzdbcopy.pl
   A /trunk/contrib/cmdline
   A /trunk/contrib/cmdline/bugcount
   A /trunk/contrib/cmdline/bugids
   A /trunk/contrib/cmdline/buglist
   A /trunk/contrib/cmdline/bugs
   A /trunk/contrib/cmdline/bugslink
   A /trunk/contrib/cmdline/makequery
   A /trunk/contrib/cmdline/query.conf
   A /trunk/contrib/cvs-update.pl
   A /trunk/contrib/gnats2bz.pl
   A /trunk/contrib/gnatsparse
   A /trunk/contrib/gnatsparse/README
   A /trunk/contrib/gnatsparse/gnatsparse.py
   A /trunk/contrib/gnatsparse/magic.py
   A /trunk/contrib/gnatsparse/specialuu.py
   A /trunk/contrib/jb2bz.py
   A /trunk/contrib/merge-users.pl
   A /trunk/contrib/mysqld-watcher.pl
   A /trunk/contrib/sendbugmail.pl
   A /trunk/contrib/sendunsentbugmail.pl
   A /trunk/contrib/syncLDAP.pl
   A /trunk/contrib/yp_nomail.sh
   A /trunk/createaccount.cgi
   D /trunk/cron_autobuilder.sh
   A /trunk/debian
   A /trunk/debian/README.Debian
   A /trunk/debian/bugzilla-doc.copyright
   A /trunk/debian/bugzilla-doc.doc-base
   A /trunk/debian/bugzilla-doc.docs
   A /trunk/debian/bugzilla-doc.files
   A /trunk/debian/bugzilla.config
   A /trunk/debian/bugzilla.copyright
   A /trunk/debian/bugzilla.cron.daily
   A /trunk/debian/bugzilla.dirs
   A /trunk/debian/bugzilla.docs
   A /trunk/debian/bugzilla.links
   A /trunk/debian/bugzilla.lintian
   A /trunk/debian/bugzilla.postinst
   A /trunk/debian/bugzilla.postrm
   A /trunk/debian/bugzilla.preinst
   A /trunk/debian/bugzilla.prerm
   A /trunk/debian/bugzilla.templates
   A /trunk/debian/changelog
   A /trunk/debian/compat
   A /trunk/debian/control
   A /trunk/debian/copyright
   A /trunk/debian/default-files
   A /trunk/debian/default-files/index.html
   A /trunk/debian/default-files/localconfig
   A /trunk/debian/default-files/params
   A /trunk/debian/dirs
   A /trunk/debian/examples
   A /trunk/debian/examples/vh-basic.conf
   A /trunk/debian/examples/vh-custom-static.conf
   A /trunk/debian/patches
   A /trunk/debian/patches/00list
   A /trunk/debian/patches/01_VERSION.dpatch
   A /trunk/debian/patches/01_libpath.dpatch
   A /trunk/debian/patches/02_checksetup.dpatch
   A /trunk/debian/patches/03_webpath.dpatch
   A /trunk/debian/patches/04_Config.pm.dpatch
   A /trunk/debian/patches/05_Bugzilla_User.pm.dpatch
   A /trunk/debian/patches/06_contrib.dpatch
   A /trunk/debian/patches/07_virtualhosting.dpatch
   A /trunk/debian/patches/08_showdependencygraph.dpatch
   A /trunk/debian/patches/09_homelink.dpatch
   A /trunk/debian/patches/101_Config.diff
   A /trunk/debian/patches/10_perl_scripts_shebang.dpatch
   A /trunk/debian/patches/11_collectstats.pl.dpatch
   A /trunk/debian/patches/12_enter_bug_cgi.dpatch
   A /trunk/debian/patches/13_report_cgi.dpatch
   A /trunk/debian/patches/14_User_pm.dpatch
   A /trunk/debian/patches/15_Constants_pm.dpatch
   A /trunk/debian/patches/buglist.css.dpatch
   A /trunk/debian/po
   A /trunk/debian/po/POTFILES.in
   A /trunk/debian/po/ca.po
   A /trunk/debian/po/cs.po
   A /trunk/debian/po/de.po
   A /trunk/debian/po/es.po
   A /trunk/debian/po/fr.po
   A /trunk/debian/po/ja.po
   A /trunk/debian/po/nl.po
   A /trunk/debian/po/pt.po
   A /trunk/debian/po/pt_BR.po
   A /trunk/debian/po/sv.po
   A /trunk/debian/po/templates.pot
   A /trunk/debian/po/vi.po
   A /trunk/debian/rules
   A /trunk/describecomponents.cgi
   A /trunk/describekeywords.cgi
   A /trunk/docs
   A /trunk/docs/README.docs
   A /trunk/docs/html
   A /trunk/docs/html/Bugzilla-Guide.html
   A /trunk/docs/html/about.html
   A /trunk/docs/html/administration.html
   A /trunk/docs/html/bug_page.html
   A /trunk/docs/html/bugreports.html
   A /trunk/docs/html/classifications.html
   A /trunk/docs/html/cmdline-bugmail.html
   A /trunk/docs/html/cmdline.html
   A /trunk/docs/html/components.html
   A /trunk/docs/html/configuration.html
   A /trunk/docs/html/conventions.html
   A /trunk/docs/html/copyright.html
   A /trunk/docs/html/credits.html
   A /trunk/docs/html/cust-change-permissions.html
   A /trunk/docs/html/cust-hooks.html
   A /trunk/docs/html/cust-templates.html
   A /trunk/docs/html/customization.html
   A /trunk/docs/html/dbdoc.html
   A /trunk/docs/html/dbmodify.html
   A /trunk/docs/html/disclaimer.html
   A /trunk/docs/html/extraconfig.html
   A /trunk/docs/html/faq.html
   A /trunk/docs/html/flags-overview.html
   A /trunk/docs/html/flags.html
   A /trunk/docs/html/general-advice.html
   A /trunk/docs/html/gfdl-0.html
   A /trunk/docs/html/gfdl-1.html
   A /trunk/docs/html/gfdl-10.html
   A /trunk/docs/html/gfdl-2.html
   A /trunk/docs/html/gfdl-3.html
   A /trunk/docs/html/gfdl-4.html
   A /trunk/docs/html/gfdl-5.html
   A /trunk/docs/html/gfdl-6.html
   A /trunk/docs/html/gfdl-7.html
   A /trunk/docs/html/gfdl-8.html
   A /trunk/docs/html/gfdl-9.html
   A /trunk/docs/html/gfdl-howto.html
   A /trunk/docs/html/gfdl.html
   A /trunk/docs/html/glossary.html
   A /trunk/docs/html/groups.html
   A /trunk/docs/html/hintsandtips.html
   A /trunk/docs/html/index.html
   A /trunk/docs/html/install-perlmodules-manual.html
   A /trunk/docs/html/installation.html
   A /trunk/docs/html/installing-bugzilla.html
   A /trunk/docs/html/integration.html
   A /trunk/docs/html/lifecycle.html
   A /trunk/docs/html/list.html
   A /trunk/docs/html/milestones.html
   A /trunk/docs/html/modules-manual-download.html
   A /trunk/docs/html/modules-manual-instructions.html
   A /trunk/docs/html/modules-manual-optional.html
   A /trunk/docs/html/myaccount.html
   A /trunk/docs/html/newversions.html
   A /trunk/docs/html/nonroot.html
   A /trunk/docs/html/os-specific.html
   A /trunk/docs/html/parameters.html
   A /trunk/docs/html/paranoid-security.html
   A /trunk/docs/html/patches.html
   A /trunk/docs/html/patchviewer.html
   A /trunk/docs/html/products.html
   A /trunk/docs/html/query.html
   A /trunk/docs/html/quips.html
   A /trunk/docs/html/reporting.html
   A /trunk/docs/html/security-bugzilla.html
   A /trunk/docs/html/security-mysql.html
   A /trunk/docs/html/security-os.html
   A /trunk/docs/html/security-webserver.html
   A /trunk/docs/html/security.html
   A /trunk/docs/html/trbl-bundlebugzilla.html
   A /trunk/docs/html/trbl-dbdsponge.html
   A /trunk/docs/html/trbl-index.html
   A /trunk/docs/html/trbl-passwd-encryption.html
   A /trunk/docs/html/trbl-perlmodule.html
   A /trunk/docs/html/trbl-relogin-everyone.html
   A /trunk/docs/html/trbl-relogin-some.html
   A /trunk/docs/html/trbl-testserver.html
   A /trunk/docs/html/trouble-filetemp.html
   A /trunk/docs/html/troubleshooting.html
   A /trunk/docs/html/upgrading.html
   A /trunk/docs/html/useradmin.html
   A /trunk/docs/html/userpreferences.html
   A /trunk/docs/html/using-intro.html
   A /trunk/docs/html/using.html
   A /trunk/docs/html/versions.html
   A /trunk/docs/html/voting.html
   A /trunk/docs/html/whining.html
   A /trunk/docs/html/x3269.html
   A /trunk/docs/html/x757.html
   A /trunk/docs/images
   A /trunk/docs/images/bzLifecycle.png
   A /trunk/docs/images/bzLifecycle.xml
   A /trunk/docs/images/callouts
   A /trunk/docs/images/callouts/1.gif
   A /trunk/docs/images/callouts/2.gif
   A /trunk/docs/images/callouts/3.gif
   A /trunk/docs/images/caution.gif
   A /trunk/docs/images/note.gif
   A /trunk/docs/images/tip.gif
   A /trunk/docs/images/warning.gif
   A /trunk/docs/makedocs.pl
   A /trunk/docs/pdf
   A /trunk/docs/pdf/Bugzilla-Guide.pdf
   A /trunk/docs/rel_notes.txt
   A /trunk/docs/txt
   A /trunk/docs/txt/Bugzilla-Guide.txt
   A /trunk/docs/xml
   A /trunk/docs/xml/Bugzilla-Guide.xml
   A /trunk/docs/xml/about.xml
   A /trunk/docs/xml/administration.xml
   A /trunk/docs/xml/conventions.xml
   A /trunk/docs/xml/customization.xml
   A /trunk/docs/xml/dbschema.mysql
   A /trunk/docs/xml/faq.xml
   A /trunk/docs/xml/filetemp.patch
   A /trunk/docs/xml/gfdl.xml
   A /trunk/docs/xml/glossary.xml
   A /trunk/docs/xml/index.xml
   A /trunk/docs/xml/installation.xml
   A /trunk/docs/xml/integration.xml
   A /trunk/docs/xml/introduction.xml
   A /trunk/docs/xml/modules.xml
   A /trunk/docs/xml/patches.xml
   A /trunk/docs/xml/requiredsoftware.xml
   A /trunk/docs/xml/security.xml
   A /trunk/docs/xml/troubleshooting.xml
   A /trunk/docs/xml/using.xml
   A /trunk/duplicates.cgi
   A /trunk/duplicates.xul
   A /trunk/editclassifications.cgi
   A /trunk/editcomponents.cgi
   A /trunk/editflagtypes.cgi
   A /trunk/editgroups.cgi
   A /trunk/editkeywords.cgi
   A /trunk/editmilestones.cgi
   A /trunk/editparams.cgi
   A /trunk/editproducts.cgi
   A /trunk/editsettings.cgi
   A /trunk/editusers.cgi
   A /trunk/editvalues.cgi
   A /trunk/editversions.cgi
   A /trunk/editwhines.cgi
   A /trunk/enter_bug.cgi
   A /trunk/globals.pl
   A /trunk/images
   A /trunk/images/padlock.png
   A /trunk/importxml.pl
   A /trunk/index.cgi
   A /trunk/js
   A /trunk/js/TUI.js
   A /trunk/js/duplicates.js
   A /trunk/js/productform.js
   A /trunk/long_list.cgi
   A /trunk/page.cgi
   A /trunk/post_bug.cgi
   A /trunk/process_bug.cgi
   A /trunk/productmenu.js
   A /trunk/query.cgi
   A /trunk/quips.cgi
   A /trunk/relogin.cgi
   A /trunk/report.cgi
   A /trunk/reports.cgi
   A /trunk/request.cgi
   A /trunk/robots.txt
   A /trunk/runtests.pl
   A /trunk/sanitycheck.cgi
   A /trunk/show_activity.cgi
   A /trunk/show_bug.cgi
   A /trunk/showattachment.cgi
   A /trunk/showdependencygraph.cgi
   A /trunk/showdependencytree.cgi
   A /trunk/sidebar.cgi
   A /trunk/skins
   A /trunk/skins/maemo
   A /trunk/skins/maemo/admin.css
   A /trunk/skins/maemo/buglist.css
   A /trunk/skins/maemo/duplicates.css
   A /trunk/skins/maemo/editusers.css
   A /trunk/skins/maemo/global
   A /trunk/skins/maemo/global/background-header.png
   A /trunk/skins/maemo/global/background_gradient.png
   A /trunk/skins/maemo/global/body-back.gif
   A /trunk/skins/maemo/global/corner-top-left.png
   A /trunk/skins/maemo/global/corner-top-right.png
   A /trunk/skins/maemo/global/header.png
   A /trunk/skins/maemo/global.css
   A /trunk/skins/maemo/index
   A /trunk/skins/maemo/index/front.png
   A /trunk/skins/maemo/index.css
   A /trunk/skins/maemo/maemo_org_style.css
   A /trunk/skins/maemo/panel.css
   A /trunk/skins/maemo/params.css
   A /trunk/skins/maemo/show_multiple.css
   A /trunk/skins/maemo/summarize-time.css
   A /trunk/skins/maemo/voting.css
   A /trunk/skins/standard
   A /trunk/skins/standard/admin.css
   A /trunk/skins/standard/buglist.css
   A /trunk/skins/standard/duplicates.css
   A /trunk/skins/standard/editusers.css
   A /trunk/skins/standard/global
   A /trunk/skins/standard/global/body-back.gif
   A /trunk/skins/standard/global/header.png
   A /trunk/skins/standard/global.css
   A /trunk/skins/standard/index
   A /trunk/skins/standard/index/front.png
   A /trunk/skins/standard/index.css
   A /trunk/skins/standard/panel.css
   A /trunk/skins/standard/params.css
   A /trunk/skins/standard/show_multiple.css
   A /trunk/skins/standard/summarize-time.css
   A /trunk/skins/standard/voting.css
   A /trunk/summarize_time.cgi
   A /trunk/t
   A /trunk/t/001compile.t
   A /trunk/t/002goodperl.t
   A /trunk/t/003safesys.t
   A /trunk/t/004template.t
   A /trunk/t/005no_tabs.t
   A /trunk/t/006spellcheck.t
   A /trunk/t/007util.t
   A /trunk/t/008filter.t
   A /trunk/t/009bugwords.t
   A /trunk/t/011pod.t
   A /trunk/t/012throwables.t
   A /trunk/t/Support
   A /trunk/t/Support/Files.pm
   A /trunk/t/Support/Systemexec.pm
   A /trunk/t/Support/Templates.pm
   A /trunk/template
   A /trunk/template/en
   A /trunk/template/en/default
   A /trunk/template/en/default/account
   A /trunk/template/en/default/account/auth
   A /trunk/template/en/default/account/auth/ldap-error.html.tmpl
   A /trunk/template/en/default/account/auth/login-small.html.tmpl
   A /trunk/template/en/default/account/auth/login.html.tmpl
   A /trunk/template/en/default/account/cancel-token.txt.tmpl
   A /trunk/template/en/default/account/create.html.tmpl
   A /trunk/template/en/default/account/created.html.tmpl
   A /trunk/template/en/default/account/email
   A /trunk/template/en/default/account/email/change-new.txt.tmpl
   A /trunk/template/en/default/account/email/change-old.txt.tmpl
   A /trunk/template/en/default/account/email/confirm.html.tmpl
   A /trunk/template/en/default/account/exists.html.tmpl
   A /trunk/template/en/default/account/password
   A /trunk/template/en/default/account/password/forgotten-password.txt.tmpl
   A /trunk/template/en/default/account/password/set-forgotten-password.html.tmpl
   A /trunk/template/en/default/account/prefs
   A /trunk/template/en/default/account/prefs/account.html.tmpl
   A /trunk/template/en/default/account/prefs/email.html.tmpl
   A /trunk/template/en/default/account/prefs/footer.html.tmpl
   A /trunk/template/en/default/account/prefs/permissions.html.tmpl
   A /trunk/template/en/default/account/prefs/prefs.html.tmpl
   A /trunk/template/en/default/account/prefs/saved-searches.html.tmpl
   A /trunk/template/en/default/account/prefs/settings.html.tmpl
   A /trunk/template/en/default/admin
   A /trunk/template/en/default/admin/classifications
   A /trunk/template/en/default/admin/classifications/add.html.tmpl
   A /trunk/template/en/default/admin/classifications/del.html.tmpl
   A /trunk/template/en/default/admin/classifications/delete.html.tmpl
   A /trunk/template/en/default/admin/classifications/edit.html.tmpl
   A /trunk/template/en/default/admin/classifications/new.html.tmpl
   A /trunk/template/en/default/admin/classifications/reclassify.html.tmpl
   A /trunk/template/en/default/admin/classifications/select.html.tmpl
   A /trunk/template/en/default/admin/classifications/update.html.tmpl
   A /trunk/template/en/default/admin/components
   A /trunk/template/en/default/admin/components/confirm-delete.html.tmpl
   A /trunk/template/en/default/admin/components/create.html.tmpl
   A /trunk/template/en/default/admin/components/created.html.tmpl
   A /trunk/template/en/default/admin/components/deleted.html.tmpl
   A /trunk/template/en/default/admin/components/edit.html.tmpl
   A /trunk/template/en/default/admin/components/footer.html.tmpl
   A /trunk/template/en/default/admin/components/list.html.tmpl
   A /trunk/template/en/default/admin/components/select-product.html.tmpl
   A /trunk/template/en/default/admin/components/updated.html.tmpl
   A /trunk/template/en/default/admin/confirm-action.html.tmpl
   A /trunk/template/en/default/admin/fieldvalues
   A /trunk/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl
   A /trunk/template/en/default/admin/fieldvalues/create.html.tmpl
   A /trunk/template/en/default/admin/fieldvalues/created.html.tmpl
   A /trunk/template/en/default/admin/fieldvalues/deleted.html.tmpl
   A /trunk/template/en/default/admin/fieldvalues/edit.html.tmpl
   A /trunk/template/en/default/admin/fieldvalues/footer.html.tmpl
   A /trunk/template/en/default/admin/fieldvalues/list.html.tmpl
   A /trunk/template/en/default/admin/fieldvalues/select-field.html.tmpl
   A /trunk/template/en/default/admin/fieldvalues/updated.html.tmpl
   A /trunk/template/en/default/admin/flag-type
   A /trunk/template/en/default/admin/flag-type/confirm-delete.html.tmpl
   A /trunk/template/en/default/admin/flag-type/edit.html.tmpl
   A /trunk/template/en/default/admin/flag-type/list.html.tmpl
   A /trunk/template/en/default/admin/groups
   A /trunk/template/en/default/admin/groups/change.html.tmpl
   A /trunk/template/en/default/admin/groups/create.html.tmpl
   A /trunk/template/en/default/admin/groups/created.html.tmpl
   A /trunk/template/en/default/admin/groups/delete.html.tmpl
   A /trunk/template/en/default/admin/groups/deleted.html.tmpl
   A /trunk/template/en/default/admin/groups/edit.html.tmpl
   A /trunk/template/en/default/admin/groups/list.html.tmpl
   A /trunk/template/en/default/admin/groups/remove.html.tmpl
   A /trunk/template/en/default/admin/keywords
   A /trunk/template/en/default/admin/keywords/confirm-delete.html.tmpl
   A /trunk/template/en/default/admin/keywords/create.html.tmpl
   A /trunk/template/en/default/admin/keywords/created.html.tmpl
   A /trunk/template/en/default/admin/keywords/edit.html.tmpl
   A /trunk/template/en/default/admin/keywords/list.html.tmpl
   A /trunk/template/en/default/admin/keywords/rebuild-cache.html.tmpl
   A /trunk/template/en/default/admin/milestones
   A /trunk/template/en/default/admin/milestones/confirm-delete.html.tmpl
   A /trunk/template/en/default/admin/milestones/create.html.tmpl
   A /trunk/template/en/default/admin/milestones/created.html.tmpl
   A /trunk/template/en/default/admin/milestones/deleted.html.tmpl
   A /trunk/template/en/default/admin/milestones/edit.html.tmpl
   A /trunk/template/en/default/admin/milestones/footer.html.tmpl
   A /trunk/template/en/default/admin/milestones/list.html.tmpl
   A /trunk/template/en/default/admin/milestones/select-product.html.tmpl
   A /trunk/template/en/default/admin/milestones/updated.html.tmpl
   A /trunk/template/en/default/admin/params
   A /trunk/template/en/default/admin/params/admin.html.tmpl
   A /trunk/template/en/default/admin/params/attachment.html.tmpl
   A /trunk/template/en/default/admin/params/auth.html.tmpl
   A /trunk/template/en/default/admin/params/bugchange.html.tmpl
   A /trunk/template/en/default/admin/params/bugfields.html.tmpl
   A /trunk/template/en/default/admin/params/bugmove.html.tmpl
   A /trunk/template/en/default/admin/params/common.html.tmpl
   A /trunk/template/en/default/admin/params/core.html.tmpl
   A /trunk/template/en/default/admin/params/dependencygraph.html.tmpl
   A /trunk/template/en/default/admin/params/editparams.html.tmpl
   A /trunk/template/en/default/admin/params/groupsecurity.html.tmpl
   A /trunk/template/en/default/admin/params/index.html.tmpl
   A /trunk/template/en/default/admin/params/l10n.html.tmpl
   A /trunk/template/en/default/admin/params/ldap.html.tmpl
   A /trunk/template/en/default/admin/params/mta.html.tmpl
   A /trunk/template/en/default/admin/params/patchviewer.html.tmpl
   A /trunk/template/en/default/admin/params/query.html.tmpl
   A /trunk/template/en/default/admin/params/shadowdb.html.tmpl
   A /trunk/template/en/default/admin/params/usermatch.html.tmpl
   A /trunk/template/en/default/admin/products
   A /trunk/template/en/default/admin/products/confirm-delete.html.tmpl
   A /trunk/template/en/default/admin/products/create.html.tmpl
   A /trunk/template/en/default/admin/products/created.html.tmpl
   A /trunk/template/en/default/admin/products/deleted.html.tmpl
   A /trunk/template/en/default/admin/products/edit-common.html.tmpl
   A /trunk/template/en/default/admin/products/edit.html.tmpl
   A /trunk/template/en/default/admin/products/footer.html.tmpl
   A /trunk/template/en/default/admin/products/groupcontrol
   A /trunk/template/en/default/admin/products/groupcontrol/confirm-edit.html.tmpl
   A /trunk/template/en/default/admin/products/groupcontrol/edit.html.tmpl
   A /trunk/template/en/default/admin/products/groupcontrol/updated.html.tmpl
   A /trunk/template/en/default/admin/products/list-classifications.html.tmpl
   A /trunk/template/en/default/admin/products/list.html.tmpl
   A /trunk/template/en/default/admin/products/updated.html.tmpl
   A /trunk/template/en/default/admin/settings
   A /trunk/template/en/default/admin/settings/edit.html.tmpl
   A /trunk/template/en/default/admin/settings/updated.html.tmpl
   A /trunk/template/en/default/admin/sudo.html.tmpl
   A /trunk/template/en/default/admin/table.html.tmpl
   A /trunk/template/en/default/admin/users
   A /trunk/template/en/default/admin/users/confirm-delete.html.tmpl
   A /trunk/template/en/default/admin/users/create.html.tmpl
   A /trunk/template/en/default/admin/users/edit.html.tmpl
   A /trunk/template/en/default/admin/users/list.html.tmpl
   A /trunk/template/en/default/admin/users/listselectvars.html.tmpl
   A /trunk/template/en/default/admin/users/search.html.tmpl
   A /trunk/template/en/default/admin/users/userdata.html.tmpl
   A /trunk/template/en/default/admin/versions
   A /trunk/template/en/default/admin/versions/confirm-delete.html.tmpl
   A /trunk/template/en/default/admin/versions/create.html.tmpl
   A /trunk/template/en/default/admin/versions/created.html.tmpl
   A /trunk/template/en/default/admin/versions/deleted.html.tmpl
   A /trunk/template/en/default/admin/versions/edit.html.tmpl
   A /trunk/template/en/default/admin/versions/footer.html.tmpl
   A /trunk/template/en/default/admin/versions/list.html.tmpl
   A /trunk/template/en/default/admin/versions/select-product.html.tmpl
   A /trunk/template/en/default/admin/versions/updated.html.tmpl
   A /trunk/template/en/default/attachment
   A /trunk/template/en/default/attachment/choose.html.tmpl
   A /trunk/template/en/default/attachment/content-types.html.tmpl
   A /trunk/template/en/default/attachment/create.html.tmpl
   A /trunk/template/en/default/attachment/created.html.tmpl
   A /trunk/template/en/default/attachment/diff-file.html.tmpl
   A /trunk/template/en/default/attachment/diff-footer.html.tmpl
   A /trunk/template/en/default/attachment/diff-header.html.tmpl
   A /trunk/template/en/default/attachment/edit.html.tmpl
   A /trunk/template/en/default/attachment/list.html.tmpl
   A /trunk/template/en/default/attachment/show-multiple.html.tmpl
   A /trunk/template/en/default/attachment/updated.html.tmpl
   A /trunk/template/en/default/bug
   A /trunk/template/en/default/bug/activity
   A /trunk/template/en/default/bug/activity/show.html.tmpl
   A /trunk/template/en/default/bug/activity/table.html.tmpl
   A /trunk/template/en/default/bug/choose.html.tmpl
   A /trunk/template/en/default/bug/comments.html.tmpl
   A /trunk/template/en/default/bug/create
   A /trunk/template/en/default/bug/create/comment-guided.txt.tmpl
   A /trunk/template/en/default/bug/create/comment.txt.tmpl
   A /trunk/template/en/default/bug/create/create-guided.html.tmpl
   A /trunk/template/en/default/bug/create/create.html.tmpl
   A /trunk/template/en/default/bug/create/created.html.tmpl
   A /trunk/template/en/default/bug/create/make-template.html.tmpl
   A /trunk/template/en/default/bug/create/user-message.html.tmpl
   A /trunk/template/en/default/bug/dependency-graph.html.tmpl
   A /trunk/template/en/default/bug/dependency-tree.html.tmpl
   A /trunk/template/en/default/bug/edit.html.tmpl
   A /trunk/template/en/default/bug/knob.html.tmpl
   A /trunk/template/en/default/bug/navigate.html.tmpl
   A /trunk/template/en/default/bug/process
   A /trunk/template/en/default/bug/process/bugmail.html.tmpl
   A /trunk/template/en/default/bug/process/confirm-duplicate.html.tmpl
   A /trunk/template/en/default/bug/process/header.html.tmpl
   A /trunk/template/en/default/bug/process/midair.html.tmpl
   A /trunk/template/en/default/bug/process/results.html.tmpl
   A /trunk/template/en/default/bug/process/verify-new-product.html.tmpl
   A /trunk/template/en/default/bug/show-multiple.html.tmpl
   A /trunk/template/en/default/bug/show.html.tmpl
   A /trunk/template/en/default/bug/show.xml.tmpl
   A /trunk/template/en/default/bug/summarize-time.html.tmpl
   A /trunk/template/en/default/bug/time.html.tmpl
   A /trunk/template/en/default/bug/votes
   A /trunk/template/en/default/bug/votes/delete-all.html.tmpl
   A /trunk/template/en/default/bug/votes/list-for-bug.html.tmpl
   A /trunk/template/en/default/bug/votes/list-for-user.html.tmpl
   A /trunk/template/en/default/config.js.tmpl
   A /trunk/template/en/default/config.rdf.tmpl
   A /trunk/template/en/default/email
   A /trunk/template/en/default/email/sudo.txt.tmpl
   A /trunk/template/en/default/filterexceptions.pl
   A /trunk/template/en/default/flag
   A /trunk/template/en/default/flag/list.html.tmpl
   A /trunk/template/en/default/global
   A /trunk/template/en/default/global/banner.html.tmpl
   A /trunk/template/en/default/global/choose-classification.html.tmpl
   A /trunk/template/en/default/global/choose-product.html.tmpl
   A /trunk/template/en/default/global/code-error.html.tmpl
   A /trunk/template/en/default/global/confirm-user-match.html.tmpl
   A /trunk/template/en/default/global/field-descs.none.tmpl
   A /trunk/template/en/default/global/footer.html.tmpl
   A /trunk/template/en/default/global/header.html.tmpl
   A /trunk/template/en/default/global/help-header.html.tmpl
   A /trunk/template/en/default/global/help.html.tmpl
   A /trunk/template/en/default/global/hidden-fields.html.tmpl
   A /trunk/template/en/default/global/initialize.none.tmpl
   A /trunk/template/en/default/global/message.html.tmpl
   A /trunk/template/en/default/global/message.txt.tmpl
   A /trunk/template/en/default/global/messages.html.tmpl
   A /trunk/template/en/default/global/per-bug-queries.html.tmpl
   A /trunk/template/en/default/global/select-menu.html.tmpl
   A /trunk/template/en/default/global/setting-descs.none.tmpl
   A /trunk/template/en/default/global/site-navigation.html.tmpl
   A /trunk/template/en/default/global/tabs.html.tmpl
   A /trunk/template/en/default/global/useful-links.html.tmpl
   A /trunk/template/en/default/global/user-error.html.tmpl
   A /trunk/template/en/default/global/userselect.html.tmpl
   A /trunk/template/en/default/global/variables.none.tmpl
   A /trunk/template/en/default/index.html.tmpl
   A /trunk/template/en/default/list
   A /trunk/template/en/default/list/change-columns.html.tmpl
   A /trunk/template/en/default/list/edit-multiple.html.tmpl
   A /trunk/template/en/default/list/list-simple.html.tmpl
   A /trunk/template/en/default/list/list.atom.tmpl
   A /trunk/template/en/default/list/list.csv.tmpl
   A /trunk/template/en/default/list/list.html.tmpl
   A /trunk/template/en/default/list/list.ics.tmpl
   A /trunk/template/en/default/list/list.js.tmpl
   A /trunk/template/en/default/list/list.rdf.tmpl
   A /trunk/template/en/default/list/quips.html.tmpl
   A /trunk/template/en/default/list/server-push.html.tmpl
   A /trunk/template/en/default/list/table.html.tmpl
   A /trunk/template/en/default/pages
   A /trunk/template/en/default/pages/bug-writing.html.tmpl
   A /trunk/template/en/default/pages/fields.html.tmpl
   A /trunk/template/en/default/pages/linked.html.tmpl
   A /trunk/template/en/default/pages/linkify.html.tmpl
   A /trunk/template/en/default/pages/quicksearch.html.tmpl
   A /trunk/template/en/default/pages/quicksearchhack.html.tmpl
   A /trunk/template/en/default/pages/sudo.html.tmpl
   A /trunk/template/en/default/pages/voting.html.tmpl
   A /trunk/template/en/default/reports
   A /trunk/template/en/default/reports/chart.csv.tmpl
   A /trunk/template/en/default/reports/chart.html.tmpl
   A /trunk/template/en/default/reports/chart.png.tmpl
   A /trunk/template/en/default/reports/components.html.tmpl
   A /trunk/template/en/default/reports/create-chart.html.tmpl
   A /trunk/template/en/default/reports/duplicates-simple.html.tmpl
   A /trunk/template/en/default/reports/duplicates-table.html.tmpl
   A /trunk/template/en/default/reports/duplicates.html.tmpl
   A /trunk/template/en/default/reports/duplicates.rdf.tmpl
   A /trunk/template/en/default/reports/edit-series.html.tmpl
   A /trunk/template/en/default/reports/keywords.html.tmpl
   A /trunk/template/en/default/reports/menu.html.tmpl
   A /trunk/template/en/default/reports/report-bar.png.tmpl
   A /trunk/template/en/default/reports/report-line.png.tmpl
   A /trunk/template/en/default/reports/report-pie.png.tmpl
   A /trunk/template/en/default/reports/report-simple.html.tmpl
   A /trunk/template/en/default/reports/report-table.csv.tmpl
   A /trunk/template/en/default/reports/report-table.html.tmpl
   A /trunk/template/en/default/reports/report.csv.tmpl
   A /trunk/template/en/default/reports/report.html.tmpl
   A /trunk/template/en/default/reports/series-common.html.tmpl
   A /trunk/template/en/default/reports/series.html.tmpl
   A /trunk/template/en/default/request
   A /trunk/template/en/default/request/email.txt.tmpl
   A /trunk/template/en/default/request/queue.html.tmpl
   A /trunk/template/en/default/search
   A /trunk/template/en/default/search/boolean-charts.html.tmpl
   A /trunk/template/en/default/search/form.html.tmpl
   A /trunk/template/en/default/search/knob.html.tmpl
   A /trunk/template/en/default/search/search-advanced.html.tmpl
   A /trunk/template/en/default/search/search-create-series.html.tmpl
   A /trunk/template/en/default/search/search-help.html.tmpl
   A /trunk/template/en/default/search/search-report-graph.html.tmpl
   A /trunk/template/en/default/search/search-report-select.html.tmpl
   A /trunk/template/en/default/search/search-report-table.html.tmpl
   A /trunk/template/en/default/search/search-specific.html.tmpl
   A /trunk/template/en/default/search/tabs.html.tmpl
   A /trunk/template/en/default/sidebar.xul.tmpl
   A /trunk/template/en/default/whine
   A /trunk/template/en/default/whine/mail.html.tmpl
   A /trunk/template/en/default/whine/mail.txt.tmpl
   A /trunk/template/en/default/whine/multipart-mime.txt.tmpl
   A /trunk/template/en/default/whine/schedule.html.tmpl
   A /trunk/template/en/extension
   A /trunk/template/en/extension/filterexceptions.pl
   A /trunk/template_maemo
   A /trunk/template_maemo/en
   A /trunk/template_maemo/en/custom
   A /trunk/template_maemo/en/custom/account
   A /trunk/template_maemo/en/custom/account/auth
   A /trunk/template_maemo/en/custom/account/auth/login.html.tmpl
   A /trunk/template_maemo/en/custom/bug
   A /trunk/template_maemo/en/custom/bug/create
   A /trunk/template_maemo/en/custom/bug/create/create-documentation-guided.html.tmpl
   A /trunk/template_maemo/en/default
   A /trunk/template_maemo/en/default/account
   A /trunk/template_maemo/en/default/account/auth
   A /trunk/template_maemo/en/default/account/auth/ldap-error.html.tmpl
   A /trunk/template_maemo/en/default/account/auth/login-small.html.tmpl
   A /trunk/template_maemo/en/default/account/auth/login.html.tmpl
   A /trunk/template_maemo/en/default/account/cancel-token.txt.tmpl
   A /trunk/template_maemo/en/default/account/create.html.tmpl
   A /trunk/template_maemo/en/default/account/created.html.tmpl
   A /trunk/template_maemo/en/default/account/email
   A /trunk/template_maemo/en/default/account/email/change-new.txt.tmpl
   A /trunk/template_maemo/en/default/account/email/change-old.txt.tmpl
   A /trunk/template_maemo/en/default/account/email/confirm.html.tmpl
   A /trunk/template_maemo/en/default/account/exists.html.tmpl
   A /trunk/template_maemo/en/default/account/password
   A /trunk/template_maemo/en/default/account/password/forgotten-password.txt.tmpl
   A /trunk/template_maemo/en/default/account/password/set-forgotten-password.html.tmpl
   A /trunk/template_maemo/en/default/account/prefs
   A /trunk/template_maemo/en/default/account/prefs/account.html.tmpl
   A /trunk/template_maemo/en/default/account/prefs/email.html.tmpl
   A /trunk/template_maemo/en/default/account/prefs/footer.html.tmpl
   A /trunk/template_maemo/en/default/account/prefs/permissions.html.tmpl
   A /trunk/template_maemo/en/default/account/prefs/prefs.html.tmpl
   A /trunk/template_maemo/en/default/account/prefs/saved-searches.html.tmpl
   A /trunk/template_maemo/en/default/account/prefs/settings.html.tmpl
   A /trunk/template_maemo/en/default/admin
   A /trunk/template_maemo/en/default/admin/classifications
   A /trunk/template_maemo/en/default/admin/classifications/add.html.tmpl
   A /trunk/template_maemo/en/default/admin/classifications/del.html.tmpl
   A /trunk/template_maemo/en/default/admin/classifications/delete.html.tmpl
   A /trunk/template_maemo/en/default/admin/classifications/edit.html.tmpl
   A /trunk/template_maemo/en/default/admin/classifications/new.html.tmpl
   A /trunk/template_maemo/en/default/admin/classifications/reclassify.html.tmpl
   A /trunk/template_maemo/en/default/admin/classifications/select.html.tmpl
   A /trunk/template_maemo/en/default/admin/classifications/update.html.tmpl
   A /trunk/template_maemo/en/default/admin/components
   A /trunk/template_maemo/en/default/admin/components/confirm-delete.html.tmpl
   A /trunk/template_maemo/en/default/admin/components/create.html.tmpl
   A /trunk/template_maemo/en/default/admin/components/created.html.tmpl
   A /trunk/template_maemo/en/default/admin/components/deleted.html.tmpl
   A /trunk/template_maemo/en/default/admin/components/edit.html.tmpl
   A /trunk/template_maemo/en/default/admin/components/footer.html.tmpl
   A /trunk/template_maemo/en/default/admin/components/list.html.tmpl
   A /trunk/template_maemo/en/default/admin/components/select-product.html.tmpl
   A /trunk/template_maemo/en/default/admin/components/updated.html.tmpl
   A /trunk/template_maemo/en/default/admin/confirm-action.html.tmpl
   A /trunk/template_maemo/en/default/admin/fieldvalues
   A /trunk/template_maemo/en/default/admin/fieldvalues/confirm-delete.html.tmpl
   A /trunk/template_maemo/en/default/admin/fieldvalues/create.html.tmpl
   A /trunk/template_maemo/en/default/admin/fieldvalues/created.html.tmpl
   A /trunk/template_maemo/en/default/admin/fieldvalues/deleted.html.tmpl
   A /trunk/template_maemo/en/default/admin/fieldvalues/edit.html.tmpl
   A /trunk/template_maemo/en/default/admin/fieldvalues/footer.html.tmpl
   A /trunk/template_maemo/en/default/admin/fieldvalues/list.html.tmpl
   A /trunk/template_maemo/en/default/admin/fieldvalues/select-field.html.tmpl
   A /trunk/template_maemo/en/default/admin/fieldvalues/updated.html.tmpl
   A /trunk/template_maemo/en/default/admin/flag-type
   A /trunk/template_maemo/en/default/admin/flag-type/confirm-delete.html.tmpl
   A /trunk/template_maemo/en/default/admin/flag-type/edit.html.tmpl
   A /trunk/template_maemo/en/default/admin/flag-type/list.html.tmpl
   A /trunk/template_maemo/en/default/admin/groups
   A /trunk/template_maemo/en/default/admin/groups/change.html.tmpl
   A /trunk/template_maemo/en/default/admin/groups/create.html.tmpl
   A /trunk/template_maemo/en/default/admin/groups/created.html.tmpl
   A /trunk/template_maemo/en/default/admin/groups/delete.html.tmpl
   A /trunk/template_maemo/en/default/admin/groups/deleted.html.tmpl
   A /trunk/template_maemo/en/default/admin/groups/edit.html.tmpl
   A /trunk/template_maemo/en/default/admin/groups/list.html.tmpl
   A /trunk/template_maemo/en/default/admin/groups/remove.html.tmpl
   A /trunk/template_maemo/en/default/admin/keywords
   A /trunk/template_maemo/en/default/admin/keywords/confirm-delete.html.tmpl
   A /trunk/template_maemo/en/default/admin/keywords/create.html.tmpl
   A /trunk/template_maemo/en/default/admin/keywords/created.html.tmpl
   A /trunk/template_maemo/en/default/admin/keywords/edit.html.tmpl
   A /trunk/template_maemo/en/default/admin/keywords/list.html.tmpl
   A /trunk/template_maemo/en/default/admin/keywords/rebuild-cache.html.tmpl
   A /trunk/template_maemo/en/default/admin/milestones
   A /trunk/template_maemo/en/default/admin/milestones/confirm-delete.html.tmpl
   A /trunk/template_maemo/en/default/admin/milestones/create.html.tmpl
   A /trunk/template_maemo/en/default/admin/milestones/created.html.tmpl
   A /trunk/template_maemo/en/default/admin/milestones/deleted.html.tmpl
   A /trunk/template_maemo/en/default/admin/milestones/edit.html.tmpl
   A /trunk/template_maemo/en/default/admin/milestones/footer.html.tmpl
   A /trunk/template_maemo/en/default/admin/milestones/list.html.tmpl
   A /trunk/template_maemo/en/default/admin/milestones/select-product.html.tmpl
   A /trunk/template_maemo/en/default/admin/milestones/updated.html.tmpl
   A /trunk/template_maemo/en/default/admin/params
   A /trunk/template_maemo/en/default/admin/params/admin.html.tmpl
   A /trunk/template_maemo/en/default/admin/params/attachment.html.tmpl
   A /trunk/template_maemo/en/default/admin/params/auth.html.tmpl
   A /trunk/template_maemo/en/default/admin/params/bugchange.html.tmpl
   A /trunk/template_maemo/en/default/admin/params/bugfields.html.tmpl
   A /trunk/template_maemo/en/default/admin/params/bugmove.html.tmpl
   A /trunk/template_maemo/en/default/admin/params/common.html.tmpl
   A /trunk/template_maemo/en/default/admin/params/core.html.tmpl
   A /trunk/template_maemo/en/default/admin/params/dependencygraph.html.tmpl
   A /trunk/template_maemo/en/default/admin/params/editparams.html.tmpl
   A /trunk/template_maemo/en/default/admin/params/groupsecurity.html.tmpl
   A /trunk/template_maemo/en/default/admin/params/index.html.tmpl
   A /trunk/template_maemo/en/default/admin/params/l10n.html.tmpl
   A /trunk/template_maemo/en/default/admin/params/ldap.html.tmpl
   A /trunk/template_maemo/en/default/admin/params/mta.html.tmpl
   A /trunk/template_maemo/en/default/admin/params/patchviewer.html.tmpl
   A /trunk/template_maemo/en/default/admin/params/query.html.tmpl
   A /trunk/template_maemo/en/default/admin/params/shadowdb.html.tmpl
   A /trunk/template_maemo/en/default/admin/params/usermatch.html.tmpl
   A /trunk/template_maemo/en/default/admin/products
   A /trunk/template_maemo/en/default/admin/products/confirm-delete.html.tmpl
   A /trunk/template_maemo/en/default/admin/products/create.html.tmpl
   A /trunk/template_maemo/en/default/admin/products/created.html.tmpl
   A /trunk/template_maemo/en/default/admin/products/deleted.html.tmpl
   A /trunk/template_maemo/en/default/admin/products/edit-common.html.tmpl
   A /trunk/template_maemo/en/default/admin/products/edit.html.tmpl
   A /trunk/template_maemo/en/default/admin/products/footer.html.tmpl
   A /trunk/template_maemo/en/default/admin/products/groupcontrol
   A /trunk/template_maemo/en/default/admin/products/groupcontrol/confirm-edit.html.tmpl
   A /trunk/template_maemo/en/default/admin/products/groupcontrol/edit.html.tmpl
   A /trunk/template_maemo/en/default/admin/products/groupcontrol/updated.html.tmpl
   A /trunk/template_maemo/en/default/admin/products/list-classifications.html.tmpl
   A /trunk/template_maemo/en/default/admin/products/list.html.tmpl
   A /trunk/template_maemo/en/default/admin/products/updated.html.tmpl
   A /trunk/template_maemo/en/default/admin/settings
   A /trunk/template_maemo/en/default/admin/settings/edit.html.tmpl
   A /trunk/template_maemo/en/default/admin/settings/updated.html.tmpl
   A /trunk/template_maemo/en/default/admin/sudo.html.tmpl
   A /trunk/template_maemo/en/default/admin/table.html.tmpl
   A /trunk/template_maemo/en/default/admin/users
   A /trunk/template_maemo/en/default/admin/users/confirm-delete.html.tmpl
   A /trunk/template_maemo/en/default/admin/users/create.html.tmpl
   A /trunk/template_maemo/en/default/admin/users/edit.html.tmpl
   A /trunk/template_maemo/en/default/admin/users/list.html.tmpl
   A /trunk/template_maemo/en/default/admin/users/listselectvars.html.tmpl
   A /trunk/template_maemo/en/default/admin/users/search.html.tmpl
   A /trunk/template_maemo/en/default/admin/users/userdata.html.tmpl
   A /trunk/template_maemo/en/default/admin/versions
   A /trunk/template_maemo/en/default/admin/versions/confirm-delete.html.tmpl
   A /trunk/template_maemo/en/default/admin/versions/create.html.tmpl
   A /trunk/template_maemo/en/default/admin/versions/created.html.tmpl
   A /trunk/template_maemo/en/default/admin/versions/deleted.html.tmpl
   A /trunk/template_maemo/en/default/admin/versions/edit.html.tmpl
   A /trunk/template_maemo/en/default/admin/versions/footer.html.tmpl
   A /trunk/template_maemo/en/default/admin/versions/list.html.tmpl
   A /trunk/template_maemo/en/default/admin/versions/select-product.html.tmpl
   A /trunk/template_maemo/en/default/admin/versions/updated.html.tmpl
   A /trunk/template_maemo/en/default/attachment
   A /trunk/template_maemo/en/default/attachment/choose.html.tmpl
   A /trunk/template_maemo/en/default/attachment/content-types.html.tmpl
   A /trunk/template_maemo/en/default/attachment/create.html.tmpl
   A /trunk/template_maemo/en/default/attachment/created.html.tmpl
   A /trunk/template_maemo/en/default/attachment/diff-file.html.tmpl
   A /trunk/template_maemo/en/default/attachment/diff-footer.html.tmpl
   A /trunk/template_maemo/en/default/attachment/diff-header.html.tmpl
   A /trunk/template_maemo/en/default/attachment/edit.html.tmpl
   A /trunk/template_maemo/en/default/attachment/list.html.tmpl
   A /trunk/template_maemo/en/default/attachment/show-multiple.html.tmpl
   A /trunk/template_maemo/en/default/attachment/updated.html.tmpl
   A /trunk/template_maemo/en/default/bug
   A /trunk/template_maemo/en/default/bug/activity
   A /trunk/template_maemo/en/default/bug/activity/show.html.tmpl
   A /trunk/template_maemo/en/default/bug/activity/table.html.tmpl
   A /trunk/template_maemo/en/default/bug/choose.html.tmpl
   A /trunk/template_maemo/en/default/bug/comments.html.tmpl
   A /trunk/template_maemo/en/default/bug/create
   A /trunk/template_maemo/en/default/bug/create/comment-guided.txt.tmpl
   A /trunk/template_maemo/en/default/bug/create/comment.txt.tmpl
   A /trunk/template_maemo/en/default/bug/create/create-guided.html.tmpl
   A /trunk/template_maemo/en/default/bug/create/create.html.tmpl
   A /trunk/template_maemo/en/default/bug/create/created.html.tmpl
   A /trunk/template_maemo/en/default/bug/create/make-template.html.tmpl
   A /trunk/template_maemo/en/default/bug/create/user-message.html.tmpl
   A /trunk/template_maemo/en/default/bug/dependency-graph.html.tmpl
   A /trunk/template_maemo/en/default/bug/dependency-tree.html.tmpl
   A /trunk/template_maemo/en/default/bug/edit.html.tmpl
   A /trunk/template_maemo/en/default/bug/knob.html.tmpl
   A /trunk/template_maemo/en/default/bug/navigate.html.tmpl
   A /trunk/template_maemo/en/default/bug/process
   A /trunk/template_maemo/en/default/bug/process/bugmail.html.tmpl
   A /trunk/template_maemo/en/default/bug/process/confirm-duplicate.html.tmpl
   A /trunk/template_maemo/en/default/bug/process/header.html.tmpl
   A /trunk/template_maemo/en/default/bug/process/midair.html.tmpl
   A /trunk/template_maemo/en/default/bug/process/results.html.tmpl
   A /trunk/template_maemo/en/default/bug/process/verify-new-product.html.tmpl
   A /trunk/template_maemo/en/default/bug/show-multiple.html.tmpl
   A /trunk/template_maemo/en/default/bug/show.html.tmpl
   A /trunk/template_maemo/en/default/bug/show.xml.tmpl
   A /trunk/template_maemo/en/default/bug/summarize-time.html.tmpl
   A /trunk/template_maemo/en/default/bug/time.html.tmpl
   A /trunk/template_maemo/en/default/bug/votes
   A /trunk/template_maemo/en/default/bug/votes/delete-all.html.tmpl
   A /trunk/template_maemo/en/default/bug/votes/list-for-bug.html.tmpl
   A /trunk/template_maemo/en/default/bug/votes/list-for-user.html.tmpl
   A /trunk/template_maemo/en/default/config.js.tmpl
   A /trunk/template_maemo/en/default/config.rdf.tmpl
   A /trunk/template_maemo/en/default/email
   A /trunk/template_maemo/en/default/email/sudo.txt.tmpl
   A /trunk/template_maemo/en/default/filterexceptions.pl
   A /trunk/template_maemo/en/default/flag
   A /trunk/template_maemo/en/default/flag/list.html.tmpl
   A /trunk/template_maemo/en/default/global
   A /trunk/template_maemo/en/default/global/banner.html.tmpl
   A /trunk/template_maemo/en/default/global/choose-classification.html.tmpl
   A /trunk/template_maemo/en/default/global/choose-product.html.tmpl
   A /trunk/template_maemo/en/default/global/code-error.html.tmpl
   A /trunk/template_maemo/en/default/global/confirm-user-match.html.tmpl
   A /trunk/template_maemo/en/default/global/field-descs.none.tmpl
   A /trunk/template_maemo/en/default/global/footer.html.tmpl
   A /trunk/template_maemo/en/default/global/header.html.tmpl
   A /trunk/template_maemo/en/default/global/help-header.html.tmpl
   A /trunk/template_maemo/en/default/global/help.html.tmpl
   A /trunk/template_maemo/en/default/global/hidden-fields.html.tmpl
   A /trunk/template_maemo/en/default/global/initialize.none.tmpl
   A /trunk/template_maemo/en/default/global/message.html.tmpl
   A /trunk/template_maemo/en/default/global/message.txt.tmpl
   A /trunk/template_maemo/en/default/global/messages.html.tmpl
   A /trunk/template_maemo/en/default/global/per-bug-queries.html.tmpl
   A /trunk/template_maemo/en/default/global/select-menu.html.tmpl
   A /trunk/template_maemo/en/default/global/setting-descs.none.tmpl
   A /trunk/template_maemo/en/default/global/site-navigation.html.tmpl
   A /trunk/template_maemo/en/default/global/tabs.html.tmpl
   A /trunk/template_maemo/en/default/global/useful-links.html.tmpl
   A /trunk/template_maemo/en/default/global/user-error.html.tmpl
   A /trunk/template_maemo/en/default/global/userselect.html.tmpl
   A /trunk/template_maemo/en/default/global/variables.none.tmpl
   A /trunk/template_maemo/en/default/index.html.tmpl
   A /trunk/template_maemo/en/default/list
   A /trunk/template_maemo/en/default/list/change-columns.html.tmpl
   A /trunk/template_maemo/en/default/list/edit-multiple.html.tmpl
   A /trunk/template_maemo/en/default/list/list-simple.html.tmpl
   A /trunk/template_maemo/en/default/list/list.atom.tmpl
   A /trunk/template_maemo/en/default/list/list.csv.tmpl
   A /trunk/template_maemo/en/default/list/list.html.tmpl
   A /trunk/template_maemo/en/default/list/list.ics.tmpl
   A /trunk/template_maemo/en/default/list/list.js.tmpl
   A /trunk/template_maemo/en/default/list/list.rdf.tmpl
   A /trunk/template_maemo/en/default/list/quips.html.tmpl
   A /trunk/template_maemo/en/default/list/server-push.html.tmpl
   A /trunk/template_maemo/en/default/list/table.html.tmpl
   A /trunk/template_maemo/en/default/pages
   A /trunk/template_maemo/en/default/pages/bug-writing.html.tmpl
   A /trunk/template_maemo/en/default/pages/fields.html.tmpl
   A /trunk/template_maemo/en/default/pages/linked.html.tmpl
   A /trunk/template_maemo/en/default/pages/linkify.html.tmpl
   A /trunk/template_maemo/en/default/pages/quicksearch.html.tmpl
   A /trunk/template_maemo/en/default/pages/quicksearchhack.html.tmpl
   A /trunk/template_maemo/en/default/pages/sudo.html.tmpl
   A /trunk/template_maemo/en/default/pages/voting.html.tmpl
   A /trunk/template_maemo/en/default/reports
   A /trunk/template_maemo/en/default/reports/chart.csv.tmpl
   A /trunk/template_maemo/en/default/reports/chart.html.tmpl
   A /trunk/template_maemo/en/default/reports/chart.png.tmpl
   A /trunk/template_maemo/en/default/reports/components.html.tmpl
   A /trunk/template_maemo/en/default/reports/create-chart.html.tmpl
   A /trunk/template_maemo/en/default/reports/duplicates-simple.html.tmpl
   A /trunk/template_maemo/en/default/reports/duplicates-table.html.tmpl
   A /trunk/template_maemo/en/default/reports/duplicates.html.tmpl
   A /trunk/template_maemo/en/default/reports/duplicates.rdf.tmpl
   A /trunk/template_maemo/en/default/reports/edit-series.html.tmpl
   A /trunk/template_maemo/en/default/reports/keywords.html.tmpl
   A /trunk/template_maemo/en/default/reports/menu.html.tmpl
   A /trunk/template_maemo/en/default/reports/report-bar.png.tmpl
   A /trunk/template_maemo/en/default/reports/report-line.png.tmpl
   A /trunk/template_maemo/en/default/reports/report-pie.png.tmpl
   A /trunk/template_maemo/en/default/reports/report-simple.html.tmpl
   A /trunk/template_maemo/en/default/reports/report-table.csv.tmpl
   A /trunk/template_maemo/en/default/reports/report-table.html.tmpl
   A /trunk/template_maemo/en/default/reports/report.csv.tmpl
   A /trunk/template_maemo/en/default/reports/report.html.tmpl
   A /trunk/template_maemo/en/default/reports/series-common.html.tmpl
   A /trunk/template_maemo/en/default/reports/series.html.tmpl
   A /trunk/template_maemo/en/default/request
   A /trunk/template_maemo/en/default/request/email.txt.tmpl
   A /trunk/template_maemo/en/default/request/queue.html.tmpl
   A /trunk/template_maemo/en/default/search
   A /trunk/template_maemo/en/default/search/boolean-charts.html.tmpl
   A /trunk/template_maemo/en/default/search/form.html.tmpl
   A /trunk/template_maemo/en/default/search/knob.html.tmpl
   A /trunk/template_maemo/en/default/search/search-advanced.html.tmpl
   A /trunk/template_maemo/en/default/search/search-create-series.html.tmpl
   A /trunk/template_maemo/en/default/search/search-help.html.tmpl
   A /trunk/template_maemo/en/default/search/search-report-graph.html.tmpl
   A /trunk/template_maemo/en/default/search/search-report-select.html.tmpl
   A /trunk/template_maemo/en/default/search/search-report-table.html.tmpl
   A /trunk/template_maemo/en/default/search/search-specific.html.tmpl
   A /trunk/template_maemo/en/default/search/tabs.html.tmpl
   A /trunk/template_maemo/en/default/sidebar.xul.tmpl
   A /trunk/template_maemo/en/default/whine
   A /trunk/template_maemo/en/default/whine/mail.html.tmpl
   A /trunk/template_maemo/en/default/whine/mail.txt.tmpl
   A /trunk/template_maemo/en/default/whine/multipart-mime.txt.tmpl
   A /trunk/template_maemo/en/default/whine/schedule.html.tmpl
   A /trunk/template_maemo/en/extension
   A /trunk/template_maemo/en/extension/filterexceptions.pl
   A /trunk/testagent.cgi
   A /trunk/testserver.pl
   A /trunk/token.cgi
   A /trunk/userprefs.cgi
   A /trunk/votes.cgi
   A /trunk/whine.pl
   A /trunk/whineatnews.pl
   A /trunk/xml.cgi

hmm.. trying again


------------------------------------------------------------------------
r24 | feri | 2008-06-27 17:42:38 +0200 (Fri, 27 Jun 2008) | 1 line

   Changed paths:
   D /trunk/bugzilla-2.22.1-3
   A /trunk/build_scripts

major reorg to get rid off an extra level of directories


------------------------------------------------------------------------
r23 | feri | 2008-06-27 17:28:39 +0200 (Fri, 27 Jun 2008) | 1 line

   Changed paths:
   A /trunk/bugzilla-2.22.1-3/template (from /trunk/bugzilla-2.22.1-3/template.orig:21)
   D /trunk/bugzilla-2.22.1-3/template.orig

moving back template.orig to template to keep the debian build happy


------------------------------------------------------------------------
r22 | feri | 2008-06-27 17:28:06 +0200 (Fri, 27 Jun 2008) | 1 line

   Changed paths:
   D /trunk/bugzilla-2.22.1-3/template
   A /trunk/bugzilla-2.22.1-3/template_maemo (from /trunk/bugzilla-2.22.1-3/template:21)

moving back template to template_maemo to keep the debian build happy


------------------------------------------------------------------------
r19 | karstenb | 2008-06-20 23:04:29 +0200 (Fri, 20 Jun 2008) | 6 lines

2008-06-20  Karsten Braeckelmann  &lt;&lt;karstenb openismus comm&gt;&gt;

	* bugzilla-2.22.1-3/template/en/default/search/search-advanced.html.tmpl: 
	Fix trivial upstream typo.  Pointed out by Ryan Abel.

=&gt; FIXED UPSTREAM BY https://bugzilla.mozilla.org/show_bug.cgi?id=365256


------------------------------------------------------------------------
r18 | karstenb | 2008-06-20 22:57:48 +0200 (Fri, 20 Jun 2008) | 17 lines

2008-06-20  Karsten Braeckelmann  &lt;&lt;karstenb openismus comm&gt;&gt;

	Tweak comment headers.

	* bugzilla-2.22.1-3/template/en/default/bug/comments.html.tmpl: 
	Tweak ordinary comment headers visually, to better destinct
	between different comments and more easily spot the important
	data.
	Implement similar style comment 0 reporter header, to provide the
	most important data at a glance at all.

	* bugzilla-2.22.1-3/skins/maemo/maemo_org_style.css: 
	* bugzilla-2.22.1-3/skins/maemo/global.css: 
	Nicen up comment headers and horizontal rulers.  Ajust spacing to
	maintain constant line heights (for scrolling), to easy comparing.

=&gt; CUSTOM =&gt; NEEDS PORTING; TRIVIAL


------------------------------------------------------------------------
r17 | karstenb | 2008-06-20 22:54:04 +0200 (Fri, 20 Jun 2008) | 2 lines

Add missing info about fixed bugs.

=&gt; IGNORE (only ChangeLog changes)


------------------------------------------------------------------------
r16 | karstenb | 2008-06-20 22:12:30 +0200 (Fri, 20 Jun 2008) | 14 lines

2008-06-20  Karsten Braeckelmann  &lt;&lt;karstenb openismus comm&gt;&gt;

	Implement Nokia group membership and reporter hints for comments,
	displayed in show_bug.cgi.

	* bugzilla-2.22.1-3/Bugzilla/Bug.pm (GetComments): 
	SQL query to get Nokia group membership.  Maintain a hash by
	commenter ID and add it to the comment data.

	* bugzilla-2.22.1-3/template/en/default/bug/comments.html.tmpl: 
	Add Nokia and reporter hints to (ordinary) comment headers in
	clear text, after the name.

=&gt; CUSTOM =&gt; NEEDS PORTING; TRIVIAL


------------------------------------------------------------------------
r15 | karstenb | 2008-06-09 23:43:32 +0200 (Mon, 09 Jun 2008) | 3 lines

   Changed paths:
   D /trunk/bugzilla-2.22.1-3/data

Clean out the /data stuff.


------------------------------------------------------------------------
r14 | karstenb | 2008-06-09 23:23:12 +0200 (Mon, 09 Jun 2008) | 3 lines

   Changed paths:
   A /trunk/bugzilla-2.22.1-3/template (from /trunk/bugzilla-2.22.1-3/template_maemo:12)
   D /trunk/bugzilla-2.22.1-3/template_maemo

And move maemo.org templates in place.


------------------------------------------------------------------------
r13 | karstenb | 2008-06-09 23:21:52 +0200 (Mon, 09 Jun 2008) | 3 lines

   Changed paths:
   D /trunk/bugzilla-2.22.1-3/template
   A /trunk/bugzilla-2.22.1-3/template.orig (from /trunk/bugzilla-2.22.1-3/template:12)

Move vanilla bugzilla templates.


------------------------------------------------------------------------
r12 | feri | 2008-05-11 01:16:49 +0200 (Sun, 11 May 2008) | 1 line
r11 | feri | 2008-05-11 01:15:57 +0200 (Sun, 11 May 2008) | 1 line
r10 | feri | 2008-05-11 01:03:39 +0200 (Sun, 11 May 2008) | 1 line
r9 | feri | 2008-05-11 00:55:37 +0200 (Sun, 11 May 2008) | 1 line
r8 | feri | 2008-05-11 00:52:09 +0200 (Sun, 11 May 2008) | 1 line

   Changed paths:
   A /trunk/cron_autobuilder.sh

r12-r8: Several hacks on /trunk/cron_autobuilder.sh only


------------------------------------------------------------------------
r7 | feri | 2008-05-10 23:47:13 +0200 (Sat, 10 May 2008) | 1 line
r6 | feri | 2008-05-10 23:21:05 +0200 (Sat, 10 May 2008) | 1 line
r5 | feri | 2008-05-10 23:16:50 +0200 (Sat, 10 May 2008) | 1 line
r4 | feri | 2008-05-10 22:54:32 +0200 (Sat, 10 May 2008) | 1 line

   Changed paths:
   M /trunk/builder.sh

r7-r4: Several hacks on /trunk/builder.sh only


------------------------------------------------------------------------
r3 | feri | 2008-05-10 22:32:35 +0200 (Sat, 10 May 2008) | 1 line

   Changed paths:
   A /trunk/builder.sh

first version of the builder script


------------------------------------------------------------------------
r2 | feri | 2008-05-09 12:01:54 +0200 (Fri, 09 May 2008) | 1 line

   Changed paths:
   A /trunk/bugzilla-2.22.1-3 (from /trunk/bugzilla-2.22.3:1)
   D /trunk/bugzilla-2.22.3

renaming directory


------------------------------------------------------------------------
r1 | feri | 2008-05-09 11:49:23 +0200 (Fri, 09 May 2008) | 1 line

   Changed paths:
   A /tags
   A /trunk
   A /trunk/bugzilla-2.22.3
   A /trunk/bugzilla-2.22.3/Bugzilla
   A /trunk/bugzilla-2.22.3/Bugzilla/Attachment.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Auth
   A /trunk/bugzilla-2.22.3/Bugzilla/Auth/Login
   A /trunk/bugzilla-2.22.3/Bugzilla/Auth/Login/WWW
   A /trunk/bugzilla-2.22.3/Bugzilla/Auth/Login/WWW/CGI
   A /trunk/bugzilla-2.22.3/Bugzilla/Auth/Login/WWW/CGI/Cookie.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Auth/Login/WWW/CGI.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Auth/Login/WWW/Env.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Auth/Login/WWW.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Auth/README
   A /trunk/bugzilla-2.22.3/Bugzilla/Auth/Verify
   A /trunk/bugzilla-2.22.3/Bugzilla/Auth/Verify/DB.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Auth/Verify/LDAP.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Auth.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Bug.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/BugMail.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/CGI.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Chart.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Classification.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Component.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Config
   A /trunk/bugzilla-2.22.3/Bugzilla/Config/Admin.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Config/Attachment.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Config/Auth.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Config/BugChange.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Config/BugFields.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Config/BugMove.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Config/Common.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Config/Core.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Config/DependencyGraph.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Config/GroupSecurity.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Config/L10n.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Config/LDAP.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Config/MTA.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Config/PatchViewer.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Config/Query.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Config/ShadowDB.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Config/UserMatch.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Config.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Constants.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/DB
   A /trunk/bugzilla-2.22.3/Bugzilla/DB/Mysql.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/DB/Pg.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/DB/Schema
   A /trunk/bugzilla-2.22.3/Bugzilla/DB/Schema/Mysql.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/DB/Schema/Pg.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/DB/Schema.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/DB.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Error.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Field.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Flag.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/FlagType.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Group.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Milestone.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Product.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Search
   A /trunk/bugzilla-2.22.3/Bugzilla/Search/Quicksearch.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Search.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Series.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Template
   A /trunk/bugzilla-2.22.3/Bugzilla/Template/Plugin
   A /trunk/bugzilla-2.22.3/Bugzilla/Template/Plugin/Bugzilla.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Template/Plugin/Hook.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Template/Plugin/User.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Template.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Token.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/User
   A /trunk/bugzilla-2.22.3/Bugzilla/User/Setting.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/User.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Util.pm
   A /trunk/bugzilla-2.22.3/Bugzilla/Version.pm
   A /trunk/bugzilla-2.22.3/Bugzilla.pm
   A /trunk/bugzilla-2.22.3/Makefile
   A /trunk/bugzilla-2.22.3/QUICKSTART
   A /trunk/bugzilla-2.22.3/README
   A /trunk/bugzilla-2.22.3/UPGRADING
   A /trunk/bugzilla-2.22.3/UPGRADING-pre-2.8
   A /trunk/bugzilla-2.22.3/attachment.cgi
   A /trunk/bugzilla-2.22.3/buglist.cgi
   A /trunk/bugzilla-2.22.3/bugzilla.dtd
   A /trunk/bugzilla-2.22.3/chart.cgi
   A /trunk/bugzilla-2.22.3/checksetup.pl
   A /trunk/bugzilla-2.22.3/colchange.cgi
   A /trunk/bugzilla-2.22.3/collectstats.pl
   A /trunk/bugzilla-2.22.3/config.cgi
   A /trunk/bugzilla-2.22.3/contrib
   A /trunk/bugzilla-2.22.3/contrib/BugzillaEmail.pm
   A /trunk/bugzilla-2.22.3/contrib/README
   A /trunk/bugzilla-2.22.3/contrib/README.Mailif
   A /trunk/bugzilla-2.22.3/contrib/bug_email.pl
   A /trunk/bugzilla-2.22.3/contrib/bugmail_help.html
   A /trunk/bugzilla-2.22.3/contrib/bugzilla-submit
   A /trunk/bugzilla-2.22.3/contrib/bugzilla-submit/README
   A /trunk/bugzilla-2.22.3/contrib/bugzilla-submit/bugdata.txt
   A /trunk/bugzilla-2.22.3/contrib/bugzilla-submit/bugzilla-submit
   A /trunk/bugzilla-2.22.3/contrib/bugzilla-submit/bugzilla-submit.xml
   A /trunk/bugzilla-2.22.3/contrib/bugzilla.procmailrc
   A /trunk/bugzilla-2.22.3/contrib/bugzilla_email_append.pl
   A /trunk/bugzilla-2.22.3/contrib/bugzilla_ldapsync.rb
   A /trunk/bugzilla-2.22.3/contrib/bzdbcopy.pl
   A /trunk/bugzilla-2.22.3/contrib/cmdline
   A /trunk/bugzilla-2.22.3/contrib/cmdline/bugcount
   A /trunk/bugzilla-2.22.3/contrib/cmdline/bugids
   A /trunk/bugzilla-2.22.3/contrib/cmdline/buglist
   A /trunk/bugzilla-2.22.3/contrib/cmdline/bugs
   A /trunk/bugzilla-2.22.3/contrib/cmdline/bugslink
   A /trunk/bugzilla-2.22.3/contrib/cmdline/makequery
   A /trunk/bugzilla-2.22.3/contrib/cmdline/query.conf
   A /trunk/bugzilla-2.22.3/contrib/cvs-update.pl
   A /trunk/bugzilla-2.22.3/contrib/gnats2bz.pl
   A /trunk/bugzilla-2.22.3/contrib/gnatsparse
   A /trunk/bugzilla-2.22.3/contrib/gnatsparse/README
   A /trunk/bugzilla-2.22.3/contrib/gnatsparse/gnatsparse.py
   A /trunk/bugzilla-2.22.3/contrib/gnatsparse/magic.py
   A /trunk/bugzilla-2.22.3/contrib/gnatsparse/specialuu.py
   A /trunk/bugzilla-2.22.3/contrib/jb2bz.py
   A /trunk/bugzilla-2.22.3/contrib/merge-users.pl
   A /trunk/bugzilla-2.22.3/contrib/mysqld-watcher.pl
   A /trunk/bugzilla-2.22.3/contrib/sendbugmail.pl
   A /trunk/bugzilla-2.22.3/contrib/sendunsentbugmail.pl
   A /trunk/bugzilla-2.22.3/contrib/syncLDAP.pl
   A /trunk/bugzilla-2.22.3/contrib/yp_nomail.sh
   A /trunk/bugzilla-2.22.3/createaccount.cgi
   A /trunk/bugzilla-2.22.3/data
   A /trunk/bugzilla-2.22.3/data/duplicates
   A /trunk/bugzilla-2.22.3/data/webdot
   A /trunk/bugzilla-2.22.3/debian
   A /trunk/bugzilla-2.22.3/debian/README.Debian
   A /trunk/bugzilla-2.22.3/debian/bugzilla-doc.copyright
   A /trunk/bugzilla-2.22.3/debian/bugzilla-doc.doc-base
   A /trunk/bugzilla-2.22.3/debian/bugzilla-doc.docs
   A /trunk/bugzilla-2.22.3/debian/bugzilla-doc.files
   A /trunk/bugzilla-2.22.3/debian/bugzilla.config
   A /trunk/bugzilla-2.22.3/debian/bugzilla.copyright
   A /trunk/bugzilla-2.22.3/debian/bugzilla.cron.daily
   A /trunk/bugzilla-2.22.3/debian/bugzilla.dirs
   A /trunk/bugzilla-2.22.3/debian/bugzilla.docs
   A /trunk/bugzilla-2.22.3/debian/bugzilla.links
   A /trunk/bugzilla-2.22.3/debian/bugzilla.lintian
   A /trunk/bugzilla-2.22.3/debian/bugzilla.postinst
   A /trunk/bugzilla-2.22.3/debian/bugzilla.postrm
   A /trunk/bugzilla-2.22.3/debian/bugzilla.preinst
   A /trunk/bugzilla-2.22.3/debian/bugzilla.prerm
   A /trunk/bugzilla-2.22.3/debian/bugzilla.templates
   A /trunk/bugzilla-2.22.3/debian/changelog
   A /trunk/bugzilla-2.22.3/debian/compat
   A /trunk/bugzilla-2.22.3/debian/control
   A /trunk/bugzilla-2.22.3/debian/copyright
   A /trunk/bugzilla-2.22.3/debian/default-files
   A /trunk/bugzilla-2.22.3/debian/default-files/index.html
   A /trunk/bugzilla-2.22.3/debian/default-files/localconfig
   A /trunk/bugzilla-2.22.3/debian/default-files/params
   A /trunk/bugzilla-2.22.3/debian/dirs
   A /trunk/bugzilla-2.22.3/debian/examples
   A /trunk/bugzilla-2.22.3/debian/examples/vh-basic.conf
   A /trunk/bugzilla-2.22.3/debian/examples/vh-custom-static.conf
   A /trunk/bugzilla-2.22.3/debian/patches
   A /trunk/bugzilla-2.22.3/debian/patches/00list
   A /trunk/bugzilla-2.22.3/debian/patches/01_VERSION.dpatch
   A /trunk/bugzilla-2.22.3/debian/patches/01_libpath.dpatch
   A /trunk/bugzilla-2.22.3/debian/patches/02_checksetup.dpatch
   A /trunk/bugzilla-2.22.3/debian/patches/03_webpath.dpatch
   A /trunk/bugzilla-2.22.3/debian/patches/04_Config.pm.dpatch
   A /trunk/bugzilla-2.22.3/debian/patches/05_Bugzilla_User.pm.dpatch
   A /trunk/bugzilla-2.22.3/debian/patches/06_contrib.dpatch
   A /trunk/bugzilla-2.22.3/debian/patches/07_virtualhosting.dpatch
   A /trunk/bugzilla-2.22.3/debian/patches/08_showdependencygraph.dpatch
   A /trunk/bugzilla-2.22.3/debian/patches/09_homelink.dpatch
   A /trunk/bugzilla-2.22.3/debian/patches/101_Config.diff
   A /trunk/bugzilla-2.22.3/debian/patches/10_perl_scripts_shebang.dpatch
   A /trunk/bugzilla-2.22.3/debian/patches/11_collectstats.pl.dpatch
   A /trunk/bugzilla-2.22.3/debian/patches/12_enter_bug_cgi.dpatch
   A /trunk/bugzilla-2.22.3/debian/patches/13_report_cgi.dpatch
   A /trunk/bugzilla-2.22.3/debian/patches/14_User_pm.dpatch
   A /trunk/bugzilla-2.22.3/debian/patches/15_Constants_pm.dpatch
   A /trunk/bugzilla-2.22.3/debian/patches/buglist.css.dpatch
   A /trunk/bugzilla-2.22.3/debian/po
   A /trunk/bugzilla-2.22.3/debian/po/POTFILES.in
   A /trunk/bugzilla-2.22.3/debian/po/ca.po
   A /trunk/bugzilla-2.22.3/debian/po/cs.po
   A /trunk/bugzilla-2.22.3/debian/po/de.po
   A /trunk/bugzilla-2.22.3/debian/po/es.po
   A /trunk/bugzilla-2.22.3/debian/po/fr.po
   A /trunk/bugzilla-2.22.3/debian/po/ja.po
   A /trunk/bugzilla-2.22.3/debian/po/nl.po
   A /trunk/bugzilla-2.22.3/debian/po/pt.po
   A /trunk/bugzilla-2.22.3/debian/po/pt_BR.po
   A /trunk/bugzilla-2.22.3/debian/po/sv.po
   A /trunk/bugzilla-2.22.3/debian/po/templates.pot
   A /trunk/bugzilla-2.22.3/debian/po/vi.po
   A /trunk/bugzilla-2.22.3/debian/rules
   A /trunk/bugzilla-2.22.3/describecomponents.cgi
   A /trunk/bugzilla-2.22.3/describekeywords.cgi
   A /trunk/bugzilla-2.22.3/docs
   A /trunk/bugzilla-2.22.3/docs/README.docs
   A /trunk/bugzilla-2.22.3/docs/html
   A /trunk/bugzilla-2.22.3/docs/html/Bugzilla-Guide.html
   A /trunk/bugzilla-2.22.3/docs/html/about.html
   A /trunk/bugzilla-2.22.3/docs/html/administration.html
   A /trunk/bugzilla-2.22.3/docs/html/bug_page.html
   A /trunk/bugzilla-2.22.3/docs/html/bugreports.html
   A /trunk/bugzilla-2.22.3/docs/html/classifications.html
   A /trunk/bugzilla-2.22.3/docs/html/cmdline-bugmail.html
   A /trunk/bugzilla-2.22.3/docs/html/cmdline.html
   A /trunk/bugzilla-2.22.3/docs/html/components.html
   A /trunk/bugzilla-2.22.3/docs/html/configuration.html
   A /trunk/bugzilla-2.22.3/docs/html/conventions.html
   A /trunk/bugzilla-2.22.3/docs/html/copyright.html
   A /trunk/bugzilla-2.22.3/docs/html/credits.html
   A /trunk/bugzilla-2.22.3/docs/html/cust-change-permissions.html
   A /trunk/bugzilla-2.22.3/docs/html/cust-hooks.html
   A /trunk/bugzilla-2.22.3/docs/html/cust-templates.html
   A /trunk/bugzilla-2.22.3/docs/html/customization.html
   A /trunk/bugzilla-2.22.3/docs/html/dbdoc.html
   A /trunk/bugzilla-2.22.3/docs/html/dbmodify.html
   A /trunk/bugzilla-2.22.3/docs/html/disclaimer.html
   A /trunk/bugzilla-2.22.3/docs/html/extraconfig.html
   A /trunk/bugzilla-2.22.3/docs/html/faq.html
   A /trunk/bugzilla-2.22.3/docs/html/flags-overview.html
   A /trunk/bugzilla-2.22.3/docs/html/flags.html
   A /trunk/bugzilla-2.22.3/docs/html/general-advice.html
   A /trunk/bugzilla-2.22.3/docs/html/gfdl-0.html
   A /trunk/bugzilla-2.22.3/docs/html/gfdl-1.html
   A /trunk/bugzilla-2.22.3/docs/html/gfdl-10.html
   A /trunk/bugzilla-2.22.3/docs/html/gfdl-2.html
   A /trunk/bugzilla-2.22.3/docs/html/gfdl-3.html
   A /trunk/bugzilla-2.22.3/docs/html/gfdl-4.html
   A /trunk/bugzilla-2.22.3/docs/html/gfdl-5.html
   A /trunk/bugzilla-2.22.3/docs/html/gfdl-6.html
   A /trunk/bugzilla-2.22.3/docs/html/gfdl-7.html
   A /trunk/bugzilla-2.22.3/docs/html/gfdl-8.html
   A /trunk/bugzilla-2.22.3/docs/html/gfdl-9.html
   A /trunk/bugzilla-2.22.3/docs/html/gfdl-howto.html
   A /trunk/bugzilla-2.22.3/docs/html/gfdl.html
   A /trunk/bugzilla-2.22.3/docs/html/glossary.html
   A /trunk/bugzilla-2.22.3/docs/html/groups.html
   A /trunk/bugzilla-2.22.3/docs/html/hintsandtips.html
   A /trunk/bugzilla-2.22.3/docs/html/index.html
   A /trunk/bugzilla-2.22.3/docs/html/install-perlmodules-manual.html
   A /trunk/bugzilla-2.22.3/docs/html/installation.html
   A /trunk/bugzilla-2.22.3/docs/html/installing-bugzilla.html
   A /trunk/bugzilla-2.22.3/docs/html/integration.html
   A /trunk/bugzilla-2.22.3/docs/html/lifecycle.html
   A /trunk/bugzilla-2.22.3/docs/html/list.html
   A /trunk/bugzilla-2.22.3/docs/html/milestones.html
   A /trunk/bugzilla-2.22.3/docs/html/modules-manual-download.html
   A /trunk/bugzilla-2.22.3/docs/html/modules-manual-instructions.html
   A /trunk/bugzilla-2.22.3/docs/html/modules-manual-optional.html
   A /trunk/bugzilla-2.22.3/docs/html/myaccount.html
   A /trunk/bugzilla-2.22.3/docs/html/newversions.html
   A /trunk/bugzilla-2.22.3/docs/html/nonroot.html
   A /trunk/bugzilla-2.22.3/docs/html/os-specific.html
   A /trunk/bugzilla-2.22.3/docs/html/parameters.html
   A /trunk/bugzilla-2.22.3/docs/html/paranoid-security.html
   A /trunk/bugzilla-2.22.3/docs/html/patches.html
   A /trunk/bugzilla-2.22.3/docs/html/patchviewer.html
   A /trunk/bugzilla-2.22.3/docs/html/products.html
   A /trunk/bugzilla-2.22.3/docs/html/query.html
   A /trunk/bugzilla-2.22.3/docs/html/quips.html
   A /trunk/bugzilla-2.22.3/docs/html/reporting.html
   A /trunk/bugzilla-2.22.3/docs/html/security-bugzilla.html
   A /trunk/bugzilla-2.22.3/docs/html/security-mysql.html
   A /trunk/bugzilla-2.22.3/docs/html/security-os.html
   A /trunk/bugzilla-2.22.3/docs/html/security-webserver.html
   A /trunk/bugzilla-2.22.3/docs/html/security.html
   A /trunk/bugzilla-2.22.3/docs/html/trbl-bundlebugzilla.html
   A /trunk/bugzilla-2.22.3/docs/html/trbl-dbdsponge.html
   A /trunk/bugzilla-2.22.3/docs/html/trbl-index.html
   A /trunk/bugzilla-2.22.3/docs/html/trbl-passwd-encryption.html
   A /trunk/bugzilla-2.22.3/docs/html/trbl-perlmodule.html
   A /trunk/bugzilla-2.22.3/docs/html/trbl-relogin-everyone.html
   A /trunk/bugzilla-2.22.3/docs/html/trbl-relogin-some.html
   A /trunk/bugzilla-2.22.3/docs/html/trbl-testserver.html
   A /trunk/bugzilla-2.22.3/docs/html/trouble-filetemp.html
   A /trunk/bugzilla-2.22.3/docs/html/troubleshooting.html
   A /trunk/bugzilla-2.22.3/docs/html/upgrading.html
   A /trunk/bugzilla-2.22.3/docs/html/useradmin.html
   A /trunk/bugzilla-2.22.3/docs/html/userpreferences.html
   A /trunk/bugzilla-2.22.3/docs/html/using-intro.html
   A /trunk/bugzilla-2.22.3/docs/html/using.html
   A /trunk/bugzilla-2.22.3/docs/html/versions.html
   A /trunk/bugzilla-2.22.3/docs/html/voting.html
   A /trunk/bugzilla-2.22.3/docs/html/whining.html
   A /trunk/bugzilla-2.22.3/docs/html/x3269.html
   A /trunk/bugzilla-2.22.3/docs/html/x757.html
   A /trunk/bugzilla-2.22.3/docs/images
   A /trunk/bugzilla-2.22.3/docs/images/bzLifecycle.png
   A /trunk/bugzilla-2.22.3/docs/images/bzLifecycle.xml
   A /trunk/bugzilla-2.22.3/docs/images/callouts
   A /trunk/bugzilla-2.22.3/docs/images/callouts/1.gif
   A /trunk/bugzilla-2.22.3/docs/images/callouts/2.gif
   A /trunk/bugzilla-2.22.3/docs/images/callouts/3.gif
   A /trunk/bugzilla-2.22.3/docs/images/caution.gif
   A /trunk/bugzilla-2.22.3/docs/images/note.gif
   A /trunk/bugzilla-2.22.3/docs/images/tip.gif
   A /trunk/bugzilla-2.22.3/docs/images/warning.gif
   A /trunk/bugzilla-2.22.3/docs/makedocs.pl
   A /trunk/bugzilla-2.22.3/docs/pdf
   A /trunk/bugzilla-2.22.3/docs/pdf/Bugzilla-Guide.pdf
   A /trunk/bugzilla-2.22.3/docs/rel_notes.txt
   A /trunk/bugzilla-2.22.3/docs/txt
   A /trunk/bugzilla-2.22.3/docs/txt/Bugzilla-Guide.txt
   A /trunk/bugzilla-2.22.3/docs/xml
   A /trunk/bugzilla-2.22.3/docs/xml/Bugzilla-Guide.xml
   A /trunk/bugzilla-2.22.3/docs/xml/about.xml
   A /trunk/bugzilla-2.22.3/docs/xml/administration.xml
   A /trunk/bugzilla-2.22.3/docs/xml/conventions.xml
   A /trunk/bugzilla-2.22.3/docs/xml/customization.xml
   A /trunk/bugzilla-2.22.3/docs/xml/dbschema.mysql
   A /trunk/bugzilla-2.22.3/docs/xml/faq.xml
   A /trunk/bugzilla-2.22.3/docs/xml/filetemp.patch
   A /trunk/bugzilla-2.22.3/docs/xml/gfdl.xml
   A /trunk/bugzilla-2.22.3/docs/xml/glossary.xml
   A /trunk/bugzilla-2.22.3/docs/xml/index.xml
   A /trunk/bugzilla-2.22.3/docs/xml/installation.xml
   A /trunk/bugzilla-2.22.3/docs/xml/integration.xml
   A /trunk/bugzilla-2.22.3/docs/xml/introduction.xml
   A /trunk/bugzilla-2.22.3/docs/xml/modules.xml
   A /trunk/bugzilla-2.22.3/docs/xml/patches.xml
   A /trunk/bugzilla-2.22.3/docs/xml/requiredsoftware.xml
   A /trunk/bugzilla-2.22.3/docs/xml/security.xml
   A /trunk/bugzilla-2.22.3/docs/xml/troubleshooting.xml
   A /trunk/bugzilla-2.22.3/docs/xml/using.xml
   A /trunk/bugzilla-2.22.3/duplicates.cgi
   A /trunk/bugzilla-2.22.3/duplicates.xul
   A /trunk/bugzilla-2.22.3/editclassifications.cgi
   A /trunk/bugzilla-2.22.3/editcomponents.cgi
   A /trunk/bugzilla-2.22.3/editflagtypes.cgi
   A /trunk/bugzilla-2.22.3/editgroups.cgi
   A /trunk/bugzilla-2.22.3/editkeywords.cgi
   A /trunk/bugzilla-2.22.3/editmilestones.cgi
   A /trunk/bugzilla-2.22.3/editparams.cgi
   A /trunk/bugzilla-2.22.3/editproducts.cgi
   A /trunk/bugzilla-2.22.3/editsettings.cgi
   A /trunk/bugzilla-2.22.3/editusers.cgi
   A /trunk/bugzilla-2.22.3/editvalues.cgi
   A /trunk/bugzilla-2.22.3/editversions.cgi
   A /trunk/bugzilla-2.22.3/editwhines.cgi
   A /trunk/bugzilla-2.22.3/enter_bug.cgi
   A /trunk/bugzilla-2.22.3/globals.pl
   A /trunk/bugzilla-2.22.3/images
   A /trunk/bugzilla-2.22.3/images/padlock.png
   A /trunk/bugzilla-2.22.3/importxml.pl
   A /trunk/bugzilla-2.22.3/index.cgi
   A /trunk/bugzilla-2.22.3/js
   A /trunk/bugzilla-2.22.3/js/TUI.js
   A /trunk/bugzilla-2.22.3/js/duplicates.js
   A /trunk/bugzilla-2.22.3/js/productform.js
   A /trunk/bugzilla-2.22.3/long_list.cgi
   A /trunk/bugzilla-2.22.3/page.cgi
   A /trunk/bugzilla-2.22.3/post_bug.cgi
   A /trunk/bugzilla-2.22.3/process_bug.cgi
   A /trunk/bugzilla-2.22.3/productmenu.js
   A /trunk/bugzilla-2.22.3/query.cgi
   A /trunk/bugzilla-2.22.3/quips.cgi
   A /trunk/bugzilla-2.22.3/relogin.cgi
   A /trunk/bugzilla-2.22.3/report.cgi
   A /trunk/bugzilla-2.22.3/reports.cgi
   A /trunk/bugzilla-2.22.3/request.cgi
   A /trunk/bugzilla-2.22.3/robots.txt
   A /trunk/bugzilla-2.22.3/runtests.pl
   A /trunk/bugzilla-2.22.3/sanitycheck.cgi
   A /trunk/bugzilla-2.22.3/show_activity.cgi
   A /trunk/bugzilla-2.22.3/show_bug.cgi
   A /trunk/bugzilla-2.22.3/showattachment.cgi
   A /trunk/bugzilla-2.22.3/showdependencygraph.cgi
   A /trunk/bugzilla-2.22.3/showdependencytree.cgi
   A /trunk/bugzilla-2.22.3/sidebar.cgi
   A /trunk/bugzilla-2.22.3/skins
   A /trunk/bugzilla-2.22.3/skins/maemo
   A /trunk/bugzilla-2.22.3/skins/maemo/admin.css
   A /trunk/bugzilla-2.22.3/skins/maemo/buglist.css
   A /trunk/bugzilla-2.22.3/skins/maemo/duplicates.css
   A /trunk/bugzilla-2.22.3/skins/maemo/editusers.css
   A /trunk/bugzilla-2.22.3/skins/maemo/global
   A /trunk/bugzilla-2.22.3/skins/maemo/global/background-header.png
   A /trunk/bugzilla-2.22.3/skins/maemo/global/background_gradient.png
   A /trunk/bugzilla-2.22.3/skins/maemo/global/body-back.gif
   A /trunk/bugzilla-2.22.3/skins/maemo/global/corner-top-left.png
   A /trunk/bugzilla-2.22.3/skins/maemo/global/corner-top-right.png
   A /trunk/bugzilla-2.22.3/skins/maemo/global/header.png
   A /trunk/bugzilla-2.22.3/skins/maemo/global.css
   A /trunk/bugzilla-2.22.3/skins/maemo/index
   A /trunk/bugzilla-2.22.3/skins/maemo/index/front.png
   A /trunk/bugzilla-2.22.3/skins/maemo/index.css
   A /trunk/bugzilla-2.22.3/skins/maemo/maemo_org_style.css
   A /trunk/bugzilla-2.22.3/skins/maemo/panel.css
   A /trunk/bugzilla-2.22.3/skins/maemo/params.css
   A /trunk/bugzilla-2.22.3/skins/maemo/show_multiple.css
   A /trunk/bugzilla-2.22.3/skins/maemo/summarize-time.css
   A /trunk/bugzilla-2.22.3/skins/maemo/voting.css
   A /trunk/bugzilla-2.22.3/skins/standard
   A /trunk/bugzilla-2.22.3/skins/standard/admin.css
   A /trunk/bugzilla-2.22.3/skins/standard/buglist.css
   A /trunk/bugzilla-2.22.3/skins/standard/duplicates.css
   A /trunk/bugzilla-2.22.3/skins/standard/editusers.css
   A /trunk/bugzilla-2.22.3/skins/standard/global
   A /trunk/bugzilla-2.22.3/skins/standard/global/body-back.gif
   A /trunk/bugzilla-2.22.3/skins/standard/global/header.png
   A /trunk/bugzilla-2.22.3/skins/standard/global.css
   A /trunk/bugzilla-2.22.3/skins/standard/index
   A /trunk/bugzilla-2.22.3/skins/standard/index/front.png
   A /trunk/bugzilla-2.22.3/skins/standard/index.css
   A /trunk/bugzilla-2.22.3/skins/standard/panel.css
   A /trunk/bugzilla-2.22.3/skins/standard/params.css
   A /trunk/bugzilla-2.22.3/skins/standard/show_multiple.css
   A /trunk/bugzilla-2.22.3/skins/standard/summarize-time.css
   A /trunk/bugzilla-2.22.3/skins/standard/voting.css
   A /trunk/bugzilla-2.22.3/summarize_time.cgi
   A /trunk/bugzilla-2.22.3/t
   A /trunk/bugzilla-2.22.3/t/001compile.t
   A /trunk/bugzilla-2.22.3/t/002goodperl.t
   A /trunk/bugzilla-2.22.3/t/003safesys.t
   A /trunk/bugzilla-2.22.3/t/004template.t
   A /trunk/bugzilla-2.22.3/t/005no_tabs.t
   A /trunk/bugzilla-2.22.3/t/006spellcheck.t
   A /trunk/bugzilla-2.22.3/t/007util.t
   A /trunk/bugzilla-2.22.3/t/008filter.t
   A /trunk/bugzilla-2.22.3/t/009bugwords.t
   A /trunk/bugzilla-2.22.3/t/011pod.t
   A /trunk/bugzilla-2.22.3/t/012throwables.t
   A /trunk/bugzilla-2.22.3/t/Support
   A /trunk/bugzilla-2.22.3/t/Support/Files.pm
   A /trunk/bugzilla-2.22.3/t/Support/Systemexec.pm
   A /trunk/bugzilla-2.22.3/t/Support/Templates.pm
   A /trunk/bugzilla-2.22.3/template
   A /trunk/bugzilla-2.22.3/template/en
   A /trunk/bugzilla-2.22.3/template/en/default
   A /trunk/bugzilla-2.22.3/template/en/default/account
   A /trunk/bugzilla-2.22.3/template/en/default/account/auth
   A /trunk/bugzilla-2.22.3/template/en/default/account/auth/ldap-error.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/account/auth/login-small.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/account/auth/login.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/account/cancel-token.txt.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/account/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/account/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/account/email
   A /trunk/bugzilla-2.22.3/template/en/default/account/email/change-new.txt.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/account/email/change-old.txt.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/account/email/confirm.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/account/exists.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/account/password
   A /trunk/bugzilla-2.22.3/template/en/default/account/password/forgotten-password.txt.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/account/password/set-forgotten-password.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/account/prefs
   A /trunk/bugzilla-2.22.3/template/en/default/account/prefs/account.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/account/prefs/email.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/account/prefs/footer.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/account/prefs/permissions.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/account/prefs/prefs.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/account/prefs/saved-searches.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/account/prefs/settings.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin
   A /trunk/bugzilla-2.22.3/template/en/default/admin/classifications
   A /trunk/bugzilla-2.22.3/template/en/default/admin/classifications/add.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/classifications/del.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/classifications/delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/classifications/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/classifications/new.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/classifications/reclassify.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/classifications/select.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/classifications/update.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/components
   A /trunk/bugzilla-2.22.3/template/en/default/admin/components/confirm-delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/components/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/components/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/components/deleted.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/components/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/components/footer.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/components/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/components/select-product.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/components/updated.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/confirm-action.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/fieldvalues
   A /trunk/bugzilla-2.22.3/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/fieldvalues/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/fieldvalues/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/fieldvalues/deleted.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/fieldvalues/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/fieldvalues/footer.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/fieldvalues/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/fieldvalues/select-field.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/fieldvalues/updated.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/flag-type
   A /trunk/bugzilla-2.22.3/template/en/default/admin/flag-type/confirm-delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/flag-type/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/flag-type/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/groups
   A /trunk/bugzilla-2.22.3/template/en/default/admin/groups/change.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/groups/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/groups/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/groups/delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/groups/deleted.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/groups/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/groups/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/groups/remove.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/keywords
   A /trunk/bugzilla-2.22.3/template/en/default/admin/keywords/confirm-delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/keywords/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/keywords/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/keywords/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/keywords/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/keywords/rebuild-cache.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/milestones
   A /trunk/bugzilla-2.22.3/template/en/default/admin/milestones/confirm-delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/milestones/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/milestones/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/milestones/deleted.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/milestones/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/milestones/footer.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/milestones/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/milestones/select-product.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/milestones/updated.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/admin.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/attachment.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/auth.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/bugchange.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/bugfields.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/bugmove.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/common.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/core.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/dependencygraph.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/editparams.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/groupsecurity.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/index.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/l10n.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/ldap.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/mta.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/patchviewer.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/query.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/shadowdb.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/params/usermatch.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/products
   A /trunk/bugzilla-2.22.3/template/en/default/admin/products/confirm-delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/products/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/products/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/products/deleted.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/products/edit-common.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/products/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/products/footer.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/products/groupcontrol
   A /trunk/bugzilla-2.22.3/template/en/default/admin/products/groupcontrol/confirm-edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/products/groupcontrol/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/products/groupcontrol/updated.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/products/list-classifications.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/products/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/products/updated.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/settings
   A /trunk/bugzilla-2.22.3/template/en/default/admin/settings/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/settings/updated.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/sudo.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/table.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/users
   A /trunk/bugzilla-2.22.3/template/en/default/admin/users/confirm-delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/users/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/users/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/users/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/users/listselectvars.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/users/search.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/users/userdata.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/versions
   A /trunk/bugzilla-2.22.3/template/en/default/admin/versions/confirm-delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/versions/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/versions/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/versions/deleted.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/versions/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/versions/footer.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/versions/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/versions/select-product.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/admin/versions/updated.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/attachment
   A /trunk/bugzilla-2.22.3/template/en/default/attachment/choose.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/attachment/content-types.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/attachment/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/attachment/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/attachment/diff-file.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/attachment/diff-footer.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/attachment/diff-header.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/attachment/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/attachment/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/attachment/show-multiple.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/attachment/updated.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug
   A /trunk/bugzilla-2.22.3/template/en/default/bug/activity
   A /trunk/bugzilla-2.22.3/template/en/default/bug/activity/show.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/activity/table.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/choose.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/comments.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/create
   A /trunk/bugzilla-2.22.3/template/en/default/bug/create/comment-guided.txt.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/create/comment.txt.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/create/create-guided.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/create/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/create/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/create/make-template.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/create/user-message.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/dependency-graph.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/dependency-tree.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/knob.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/navigate.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/process
   A /trunk/bugzilla-2.22.3/template/en/default/bug/process/bugmail.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/process/confirm-duplicate.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/process/header.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/process/midair.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/process/results.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/process/verify-new-product.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/show-multiple.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/show.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/show.xml.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/summarize-time.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/time.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/votes
   A /trunk/bugzilla-2.22.3/template/en/default/bug/votes/delete-all.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/votes/list-for-bug.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/bug/votes/list-for-user.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/config.js.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/config.rdf.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/email
   A /trunk/bugzilla-2.22.3/template/en/default/email/sudo.txt.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/filterexceptions.pl
   A /trunk/bugzilla-2.22.3/template/en/default/flag
   A /trunk/bugzilla-2.22.3/template/en/default/flag/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global
   A /trunk/bugzilla-2.22.3/template/en/default/global/banner.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/choose-classification.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/choose-product.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/code-error.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/confirm-user-match.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/field-descs.none.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/footer.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/header.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/help-header.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/help.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/hidden-fields.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/initialize.none.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/message.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/message.txt.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/messages.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/per-bug-queries.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/select-menu.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/setting-descs.none.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/site-navigation.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/tabs.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/useful-links.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/user-error.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/userselect.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/global/variables.none.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/index.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/list
   A /trunk/bugzilla-2.22.3/template/en/default/list/change-columns.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/list/edit-multiple.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/list/list-simple.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/list/list.atom.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/list/list.csv.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/list/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/list/list.ics.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/list/list.js.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/list/list.rdf.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/list/quips.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/list/server-push.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/list/table.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/pages
   A /trunk/bugzilla-2.22.3/template/en/default/pages/bug-writing.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/pages/fields.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/pages/linked.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/pages/linkify.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/pages/quicksearch.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/pages/quicksearchhack.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/pages/sudo.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/pages/voting.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports
   A /trunk/bugzilla-2.22.3/template/en/default/reports/chart.csv.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/chart.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/chart.png.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/components.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/create-chart.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/duplicates-simple.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/duplicates-table.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/duplicates.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/duplicates.rdf.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/edit-series.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/keywords.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/menu.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/report-bar.png.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/report-line.png.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/report-pie.png.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/report-simple.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/report-table.csv.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/report-table.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/report.csv.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/report.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/series-common.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/reports/series.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/request
   A /trunk/bugzilla-2.22.3/template/en/default/request/email.txt.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/request/queue.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/search
   A /trunk/bugzilla-2.22.3/template/en/default/search/boolean-charts.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/search/form.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/search/knob.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/search/search-advanced.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/search/search-create-series.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/search/search-help.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/search/search-report-graph.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/search/search-report-select.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/search/search-report-table.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/search/search-specific.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/search/tabs.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/sidebar.xul.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/whine
   A /trunk/bugzilla-2.22.3/template/en/default/whine/mail.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/whine/mail.txt.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/whine/multipart-mime.txt.tmpl
   A /trunk/bugzilla-2.22.3/template/en/default/whine/schedule.html.tmpl
   A /trunk/bugzilla-2.22.3/template/en/extension
   A /trunk/bugzilla-2.22.3/template/en/extension/filterexceptions.pl
   A /trunk/bugzilla-2.22.3/template_maemo
   A /trunk/bugzilla-2.22.3/template_maemo/en
   A /trunk/bugzilla-2.22.3/template_maemo/en/custom
   A /trunk/bugzilla-2.22.3/template_maemo/en/custom/account
   A /trunk/bugzilla-2.22.3/template_maemo/en/custom/account/auth
   A /trunk/bugzilla-2.22.3/template_maemo/en/custom/account/auth/login.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/custom/bug
   A /trunk/bugzilla-2.22.3/template_maemo/en/custom/bug/create
   A /trunk/bugzilla-2.22.3/template_maemo/en/custom/bug/create/create-documentation-guided.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/auth
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/auth/ldap-error.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/auth/login-small.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/auth/login.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/cancel-token.txt.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/email
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/email/change-new.txt.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/email/change-old.txt.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/email/confirm.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/exists.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/password
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/password/forgotten-password.txt.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/password/set-forgotten-password.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/prefs
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/prefs/account.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/prefs/email.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/prefs/footer.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/prefs/permissions.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/prefs/prefs.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/prefs/saved-searches.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/account/prefs/settings.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/classifications
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/classifications/add.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/classifications/del.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/classifications/delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/classifications/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/classifications/new.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/classifications/reclassify.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/classifications/select.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/classifications/update.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/components
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/components/confirm-delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/components/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/components/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/components/deleted.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/components/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/components/footer.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/components/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/components/select-product.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/components/updated.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/confirm-action.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/fieldvalues
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/fieldvalues/confirm-delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/fieldvalues/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/fieldvalues/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/fieldvalues/deleted.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/fieldvalues/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/fieldvalues/footer.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/fieldvalues/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/fieldvalues/select-field.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/fieldvalues/updated.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/flag-type
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/flag-type/confirm-delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/flag-type/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/flag-type/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/groups
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/groups/change.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/groups/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/groups/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/groups/delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/groups/deleted.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/groups/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/groups/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/groups/remove.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/keywords
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/keywords/confirm-delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/keywords/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/keywords/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/keywords/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/keywords/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/keywords/rebuild-cache.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/milestones
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/milestones/confirm-delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/milestones/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/milestones/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/milestones/deleted.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/milestones/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/milestones/footer.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/milestones/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/milestones/select-product.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/milestones/updated.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/admin.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/attachment.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/auth.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/bugchange.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/bugfields.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/bugmove.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/common.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/core.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/dependencygraph.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/editparams.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/groupsecurity.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/index.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/l10n.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/ldap.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/mta.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/patchviewer.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/query.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/shadowdb.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/params/usermatch.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/products
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/products/confirm-delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/products/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/products/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/products/deleted.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/products/edit-common.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/products/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/products/footer.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/products/groupcontrol
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/products/groupcontrol/confirm-edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/products/groupcontrol/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/products/groupcontrol/updated.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/products/list-classifications.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/products/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/products/updated.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/settings
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/settings/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/settings/updated.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/sudo.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/table.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/users
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/users/confirm-delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/users/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/users/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/users/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/users/listselectvars.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/users/search.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/users/userdata.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/versions
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/versions/confirm-delete.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/versions/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/versions/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/versions/deleted.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/versions/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/versions/footer.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/versions/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/versions/select-product.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/admin/versions/updated.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/attachment
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/attachment/choose.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/attachment/content-types.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/attachment/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/attachment/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/attachment/diff-file.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/attachment/diff-footer.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/attachment/diff-header.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/attachment/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/attachment/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/attachment/show-multiple.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/attachment/updated.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/activity
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/activity/show.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/activity/table.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/choose.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/comments.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/create
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/create/comment-guided.txt.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/create/comment.txt.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/create/create-guided.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/create/create.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/create/created.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/create/make-template.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/create/user-message.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/dependency-graph.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/dependency-tree.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/edit.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/knob.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/navigate.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/process
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/process/bugmail.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/process/confirm-duplicate.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/process/header.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/process/midair.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/process/results.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/process/verify-new-product.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/show-multiple.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/show.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/show.xml.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/summarize-time.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/time.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/votes
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/votes/delete-all.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/votes/list-for-bug.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/bug/votes/list-for-user.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/config.js.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/config.rdf.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/email
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/email/sudo.txt.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/filterexceptions.pl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/flag
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/flag/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/banner.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/choose-classification.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/choose-product.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/code-error.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/confirm-user-match.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/field-descs.none.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/footer.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/header.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/help-header.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/help.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/hidden-fields.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/initialize.none.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/message.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/message.txt.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/messages.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/per-bug-queries.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/select-menu.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/setting-descs.none.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/site-navigation.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/tabs.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/useful-links.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/user-error.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/userselect.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/global/variables.none.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/index.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/list
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/list/change-columns.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/list/edit-multiple.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/list/list-simple.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/list/list.atom.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/list/list.csv.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/list/list.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/list/list.ics.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/list/list.js.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/list/list.rdf.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/list/quips.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/list/server-push.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/list/table.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/pages
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/pages/bug-writing.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/pages/fields.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/pages/linked.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/pages/linkify.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/pages/quicksearch.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/pages/quicksearchhack.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/pages/sudo.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/pages/voting.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/chart.csv.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/chart.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/chart.png.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/components.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/create-chart.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/duplicates-simple.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/duplicates-table.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/duplicates.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/duplicates.rdf.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/edit-series.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/keywords.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/menu.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/report-bar.png.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/report-line.png.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/report-pie.png.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/report-simple.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/report-table.csv.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/report-table.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/report.csv.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/report.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/series-common.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/reports/series.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/request
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/request/email.txt.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/request/queue.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/search
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/search/boolean-charts.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/search/form.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/search/knob.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/search/search-advanced.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/search/search-create-series.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/search/search-help.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/search/search-report-graph.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/search/search-report-select.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/search/search-report-table.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/search/search-specific.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/search/tabs.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/sidebar.xul.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/whine
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/whine/mail.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/whine/mail.txt.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/whine/multipart-mime.txt.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/default/whine/schedule.html.tmpl
   A /trunk/bugzilla-2.22.3/template_maemo/en/extension
   A /trunk/bugzilla-2.22.3/template_maemo/en/extension/filterexceptions.pl
   A /trunk/bugzilla-2.22.3/testagent.cgi
   A /trunk/bugzilla-2.22.3/testserver.pl
   A /trunk/bugzilla-2.22.3/token.cgi
   A /trunk/bugzilla-2.22.3/userprefs.cgi
   A /trunk/bugzilla-2.22.3/votes.cgi
   A /trunk/bugzilla-2.22.3/whine.pl
   A /trunk/bugzilla-2.22.3/whineatnews.pl
   A /trunk/bugzilla-2.22.3/xml.cgi

initial commit with all maemo specific changes


------------------------------------------------------------------------</text>
    </revision>
  </page>
  <page>
    <title>User:Andrei1089</title>
    <id>1914</id>
    <revision>
      <id>13629</id>
      <timestamp>2009-05-23T10:06:56Z</timestamp>
      <contributor>
        <username>andrei1089</username>
        <id>876</id>
      </contributor>
      <comment>New page: See http://maemo.org/profile/view/andrei1089/</comment>
      <text xml:space="preserve">See http://maemo.org/profile/view/andrei1089/</text>
    </revision>
  </page>
  <page>
    <title>User:Andy80</title>
    <id>804</id>
    <revision>
      <id>4678</id>
      <timestamp>2008-07-17T14:59:39Z</timestamp>
      <contributor>
        <username>andy80</username>
        <id>199</id>
      </contributor>
      <text xml:space="preserve">My name is '''Andrea Grandi''', I’m 28 and I live in '''Pistoia (Tuscany - Italy)'''. I’m a programmer in particular very interested in '''Linux''' and opensource.

I’ve been working for some years as computer programmer, then I decided to begin university, and currently I’m attending at “''Università degli studi di Firenze''” to get the Computer Science degree.

I spend lot of my time to manage the [http://www.ptlug.org Pistoia Linux User Group] I founded in 2001. 

== Contact ==

* email: a.grandi AT gmail.com
* website: http://www.andreagrandi.it
* linkedin: http://www.linkedin.com/in/andreagrandi
* facebook: http://www.facebook.com/profile.php?id=646016164
* irc: Andy80 @ FreeNode on #maemo</text>
    </revision>
  </page>
  <page>
    <title>User:Apopelo</title>
    <id>1926</id>
    <revision>
      <id>18357</id>
      <timestamp>2009-09-20T09:30:21Z</timestamp>
      <contributor>
        <username>apopelo</username>
        <id>882</id>
      </contributor>
      <minor/>
      <comment>/* Andrey Popelo */ minor edit</comment>
      <text xml:space="preserve">== Andrey Popelo ==

Currently I'm working on [https://garage.maemo.org/projects/canola-rtm/ Remember The Milk plugin for Canola2] and supporting [http://userscripts.org/scripts/show/47573 Better Google for iPhone v2] greasemonkey script.

[http://maemo.org/profile/view/apopelo/ maemo.org profile]

[http://popelo.com/ Personal website]</text>
    </revision>
  </page>
  <page>
    <title>User:Aranelsurion</title>
    <id>4545</id>
    <revision>
      <id>39842</id>
      <timestamp>2010-10-28T13:41:12Z</timestamp>
      <contributor>
        <username>aranelsurion</username>
        <id>3546</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">Maemo/MeeGo GNU/Linux User and a proud member of Maemo.org.  Member since 2009-12-20.

'''My Blog (in Turkish):''' http://www.aranelsurion.org

'''Twitter Account (in Turkish):''' http://twitter.com/AranelSurion

'''Turkish Localization (turkish-l10n):''' http://maemo.org/packages/view/turkish-l10n/

'''MeeGo Turkey:''' http://www.meegoturkiye.org</text>
    </revision>
  </page>
  <page>
    <title>User:Arrancamos</title>
    <id>4843</id>
    <revision>
      <id>43254</id>
      <timestamp>2011-04-28T03:02:17Z</timestamp>
      <contributor>
        <username>arrancamos</username>
        <id>4232</id>
      </contributor>
      <text xml:space="preserve">04/10/2011

Hi, I was here! will post additional information hopefully! :)
At this time am learning all about Qt Creator and its API in order to start my little project. This is very ineteresting for me, so the motivation is there, and will let me move on, on this phase... 
Regards my friends :)


04/26/2011
Okey, here I show the first beta preview:

[[Media:Media Purge.png]]

[[Image:Media Purge.png]]
''(This is the first preview of my GUI, the layout is a working one, simulated on Maemo, Symbian^1,^3,Touch,NonTouch :)... not bad for a Qt newbie eh!)''


Follow me @ Twitter: [http://twitter.com/#!/Arrancamos Arrancamos]

Reading about QML...</text>
    </revision>
  </page>
  <page>
    <title>User:Avinrude</title>
    <id>5037</id>
    <revision>
      <id>45578</id>
      <timestamp>2011-10-18T09:16:26Z</timestamp>
      <contributor>
        <username>avinrude</username>
        <id>4720</id>
      </contributor>
      <comment>New page:  == The Advantages and Disadvantages of the Three Main Web Hosting Options ==  More and more persons are realizing that having an online presence is a great way to get persons all over the...</comment>
      <text xml:space="preserve">
== The Advantages and Disadvantages of the Three Main Web Hosting Options ==

More and more persons are realizing that having an online presence is a great way to get persons all over the world to know about various products and services that they offer. Of course to do this one must first have a website on the internet. You need to however bear in mind that having a website on the internet will not be possible without first choosing the best method of web hosting for your website. Here are the three main options along with their advantages and disadvantages for you to consider.

'''Shared Hosting'''

Shared hosting refers to the option in which many websites are made to run on the same web server. As a result clients are in effect sharing the server. This is made possible by allocating different storage space and features to each user. In this case, the provider is responsible for the maintenance of the server and also provides technical support to each client. It is therefore perfect for those persons who are not very technological savvy or those who do not have a staff dedicated to technical support.

The main advantage of this type of [http://www.anchor.com.au/ web hosting] is that it is very affordable; it is actually the cheapest of the three options. Also due to the fact that the provider is in charge of the maintenance of the server, you will not have to be concerned with the general keep up. It is the provider who would now be responsible for uploading the latest updates and ensuring that the site is as secure as possible to protect from malicious attackers and hackers. In addition, once your website is uploaded to your shared hosting site, the support staff will be there to offer you assistance in configuring the website.

Unfortunately, the actions of the other clients on your shared server can have a impact on your website. For instance, if you are sharing server with clients that end up using too much of the RAM on the CPU you could actually see a slower response in certain request made on your website. Also, if their website happens to be hacked in, or contracts a virus this can also be passed on to your website.

'''VPS/Virtual Private Server Hosting'''

If you have outgrown a shared server but are not able to afford a dedicated server, or are not in need of all that a dedicated server has to offer, you can opt for a Virtual Private Server or VPS. This type of website hosting allows you to have your own virtual server for a price that is much less than that for a dedicated server. It does this by creating multiple virtual servers on one physical machine. Even though you essentially share the physical machine, your virtual server is dedicated just to your websites. This allows you to get all the flexibility and independence that a dedicated server would give. You can therefore not be affected by the actions of the other clients on the server and you also get more control over your account.

On the other hand this option though attractive is not for everyone. If your website doesn’t have a lot of graphic and doesn’t require a lot of memory the shared server is good enough for you. Also, if your business is very big and receives a high amount of traffic on a regular basis this would also not be the best option for you. This option is therefore suited to persons with small to medium sized companies who have outgrown their shared accounts but are not in need of all the features of a dedicated server or have websites that do not generate enough cash to finance a dedicated server.

'''Dedicated Server'''

Companies which are very large with a booming business will more than likely be receiving traffic regularly and on a daily basis. Persons in this case should definitely consider a dedicated server. As the name suggests, the server is not shared in any way and is only dedicated toward your website/s. With this [http://www.anchor.com.au/ website hosting] option persons will enjoy a lot of flexibility both as it relates to storage, types of software being used and level of management. Due to the fact that the server is not shared you will have increased security and the actions of other clients belonging to the same provider cannot have a negative impact on your account. You will also have root or administration access to your dedicated server giving you the opportunity to install anything you want and also have the website customized in any way you want. The only major disadvantage of this option is that it is extremely expensive.</text>
    </revision>
  </page>
  <page>
    <title>User:Avs</title>
    <id>2864</id>
    <revision>
      <id>45544</id>
      <timestamp>2011-10-09T08:55:02Z</timestamp>
      <contributor>
        <username>avs</username>
        <id>1356</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">Used to be a product security guy at Nokia. Since 2011, not in that role any more.

[http://www.iki.fi/avs/ Private home page]</text>
    </revision>
  </page>
  <page>
    <title>User:Awwaiid</title>
    <id>3232</id>
    <revision>
      <id>28329</id>
      <timestamp>2010-02-04T03:55:38Z</timestamp>
      <contributor>
        <ip>68.50.128.67</ip>
      </contributor>
      <comment>/* Notes */</comment>
      <text xml:space="preserve">Greetings!

I am the proud owner of an n900, and an opensource user and advocate. My regular website is at [http://thelackthereof.org/ thelackthereof.org], but I'm putting my maemo/n900 notes here.

Check out [[User:Jebba]] for another user with great info.

== n900 Config ==

* Repartitioned
** switched home and MyDocs
** Left MyDocs as vfat so camera and disk export will work.
* Modified keymap
** Added Home, End, PgUp, PgDown to left, right up, down
** blue+enter: tab
** blue+backspace: escape
** changed euro to pipe &quot;|&quot;
* installed easy debian
** modified to use /home/debian as base of the chroot

[[User:Awwaiid/rx-51]]

== Notes ==
* [http://talk.maemo.org/showpost.php?p=446890&amp;postcount=48 Set transmitting FM power to max]
** echo 118 &gt; /sys/class/i2c-adapter/i2c-2/2-0063/power_level
* Increase number of ptys
** Edit /etc/init.d/rcS
** echo 16 &gt; /proc/sys/kernel/pty/max</text>
    </revision>
  </page>
  <page>
    <title>User:Awwaiid/rx-51</title>
    <id>3278</id>
    <revision>
      <id>25399</id>
      <timestamp>2009-12-30T21:09:45Z</timestamp>
      <contributor>
        <username>awwaiid</username>
        <id>1689</id>
      </contributor>
      <text xml:space="preserve">Contents of my /usr/share/X11/xkb/symbols/nokia_vndr/rx-51

Remaps:
* meta+left - home
* meta+right  end
* meta+up - pgup
* meta+down - pgdown
* euro - pipe
* meta+enter - tab
* meta+backspac- esc

&lt;pre&gt;

default partial alphanumeric_keys
xkb_symbols &quot;common&quot; {
    include &quot;nokia_vndr/rx-51(common_keys)&quot;
    include &quot;nokia_vndr/rx-51(modifiers)&quot;

    // This section should not be included by any other section.
    // It's referenced only once by rule file to allow multiple layout configurations.

    // More than one layout at the same time could be set for instance as follows:
    // setxkbmap -rules evdev \
    //           -model nokiarx51 \
    //           -option grp:ctrl_shift_toggle \
    //           -layout us,cz \
    //           -variant &quot;,qwerty&quot;

    // Notice the similarity:
    //   &quot;pc+us+cz(qwerty):2+grp:XYZ&quot; vs.
    //   &quot;nokia_vndr/rx-51(common)+nokia_vndr/rx-51(us)+nokia_vndr/rx-51(cz_qwerty):2+grp:XYZ&quot;
    // where XYZ is one of xkb_symbols section usually located in file symbols/group.

    // Bear in mind that option XYZ could replace current keys configuration!!!

    // For instance using symbols/group(ctrl_shift_toggle) redefines LCTL and LFSH keys
    // which may disallow opening of virtual symbol table (Multi_key).
    // Fortunately the Multi_key is defined in 3rd and 4th level a ctrl_shift_toggle
    // redefines first two levels only. But RX-51 has not right Ctrl nor Shift therefore
    // pressing Ctrl+Shift will switch to previous layout, not to the next one.

    // For RX-51 device there is a lot of restrictions if more than one layout is
    // is configured at the same time because some modifiers and special cases are
    // handled by hildon layer (especially with eight-level layout):
    //  - settings may be done from terminal only (GUI doesn't and won't support it)
    //  - virtual symbol table is not updated according to current layout
    //  - for unknown reasons the eight-level layout (nordic,ru) works properly
    //    only if it's configured as first layout (e.g. &quot;ru,us,cz&quot; not &quot;us,cz,ru&quot;)
    //    otherwise it's not possible to access levels 5-8
    //  - Ctrl+Space related problems:
    //     - If eight-level layout is used as first layout one of eight-level layouts has to
    //       be also chosen in GUI - otherwise the Ctrl+Space &quot;switch&quot; is disabled
    //     - Ctrl+Space has no effect if only four-level layouts are chosen
    //       (don't forget the layout configured in GUI - despite of it's not reachable)
    //     - a few keys in 2nd layer could be mixed with other layouts when Ctrl+Space is &quot;turned on&quot; (why?)
    //       in case eight- and four-level layouts are configured simultaneously
    //     - Ctrl+Space is &quot;turned on&quot; by default and has to be &quot;turned off&quot; for four-level layouts
    //       in case eight- and four-level layouts are configured simultaneously
    //     - four-level layout on first place doesn't work at all when Ctrl+Space is &quot;turned on&quot;
    //       in case the 2nd, 3rd or 4th layout is eight-level layout
};

////////////////////////////////////////////////////////////////////////////////

partial alphanumeric_keys
xkb_symbols &quot;us&quot; {
    include &quot;nokia_vndr/rx-51(english_base)&quot;
    include &quot;nokia_vndr/rx-51(arrows_4btns)&quot;

    name[Group1] = &quot;U.S. English&quot;;
};



partial alphanumeric_keys
xkb_symbols &quot;pl&quot; {
    include &quot;nokia_vndr/rx-51(english_base)&quot;
    include &quot;nokia_vndr/rx-51(arrows_4btns)&quot;

    name[Group1] = &quot;Polish&quot;;
};



partial alphanumeric_keys
xkb_symbols &quot;fise&quot; {
    include &quot;nokia_vndr/rx-51(nordic_base)&quot;
    include &quot;nokia_vndr/rx-51(arrows_2btns)&quot;

    name[Group1] = &quot;Finnish/Swedish&quot;;

    // 2. row
    key &lt;AB09&gt;    { [    odiaeresis,    Odiaeresis,    exclam,        exclam        ] };
    key &lt;UP&gt;    { [    adiaeresis,    Adiaeresis,    question,    question    ] };
};



partial alphanumeric_keys
xkb_symbols &quot;dano&quot; {
    include &quot;nokia_vndr/rx-51(nordic_base)&quot;
    include &quot;nokia_vndr/rx-51(arrows_2btns)&quot;

    name[Group1] = &quot;Danish/Norwegian&quot;;

    // 2. row
    key &lt;AB09&gt;    { [    oslash,        Oslash,        exclam,        exclam        ] };
    key &lt;UP&gt;    { [    ae,        AE,        question,    question    ] };
};



partial alphanumeric_keys
xkb_symbols &quot;nordic&quot; {
    include &quot;nokia_vndr/rx-51(nordic_base)&quot;
    include &quot;nokia_vndr/rx-51(arrows_2btns)&quot;

    name[Group1] = &quot;Danish/Finnish/Norwegian/Swedish&quot;;

    key.type[Group1] = &quot;EIGHT_LEVEL_SEMIALPHABETIC&quot;;

    // 2. row
    key &lt;AB09&gt;    { [    odiaeresis,    Odiaeresis,    exclam,        exclam,        oslash,        Oslash,        exclam,        exclam        ] };
    key &lt;UP&gt;    { [    adiaeresis,    Adiaeresis,    question,    question,    ae,        AE,        question,    question    ] };
};



partial alphanumeric_keys
xkb_symbols &quot;ptes&quot; {
    include &quot;nokia_vndr/rx-51(english_base)&quot;
    include &quot;nokia_vndr/rx-51(arrows_2btns)&quot;

    name[Group1] = &quot;Portuguese/Spanish&quot;;

    // 1. row
    key &lt;AB08&gt;    { [    dead_acute,    dead_acute,    dead_grave,    dead_grave    ] };

    // 2. row
    key &lt;AC05&gt;    { [    g,        G,        exclamdown,    exclamdown    ] };
    key &lt;AC06&gt;    { [    h,        H,        exclam,        exclam        ] };
    key &lt;AC07&gt;    { [    j,        J,        questiondown,    questiondown    ] };
    key &lt;AC08&gt;    { [    k,        K,        question,    question    ] };
    key &lt;AC09&gt;    { [    l,        L,        dead_diaeresis,    dead_diaeresis    ] };
    key &lt;AB09&gt;    { [    ntilde,        Ntilde,        dead_tilde,    dead_tilde    ] };
    key &lt;UP&gt;    { [    ccedilla,    Ccedilla,    dead_circumflex,dead_circumflex    ] };

    // 3. row
    key &lt;AB01&gt;    { [    z,        Z,        parenleft,    parenleft    ] };
    key &lt;AB02&gt;    { [    x,        X,        parenright,    parenright     ] };
    key &lt;AB03&gt;    { [    c,        C,        slash,        slash        ] };
    key &lt;AB04&gt;    { [    v,        V,        quotedbl,    quotedbl    ] };
    key &lt;AB05&gt;    { [    b,        B,        apostrophe,    apostrophe    ] };
    key &lt;AB06&gt;    { [    n,        N,        colon,        colon        ] };
    key &lt;AB07&gt;    { [    m,        M,        semicolon,    semicolon    ] };
    key &lt;LEFT&gt;    { [    period,        comma,        comma,        comma        ] };
};



partial alphanumeric_keys
xkb_symbols &quot;fr&quot; {
    include &quot;nokia_vndr/rx-51(english_base)&quot;
    include &quot;nokia_vndr/rx-51(arrows_2btns)&quot;

    name[Group1] = &quot;French&quot;;

    // 1. row
    key &lt;AD01&gt;    { [    a,        A,        1,        1        ] };
    key &lt;AD02&gt;    { [    z,        Z,        2,        2        ] };
    key &lt;AB08&gt;    { [    agrave,        Agrave,        ccedilla,    Ccedilla    ] };

    // 2. row
    key &lt;AC01&gt;    { [    q,        Q,        asterisk,    asterisk    ] };
    key &lt;AC02&gt;    { [    s,        S,        plus,        plus        ] };
    key &lt;AC03&gt;    { [    d,        D,        numbersign,    numbersign    ] };
    key &lt;AC04&gt;    { [    f,        F,        minus,      minus        ] };
    key &lt;AC05&gt;    { [    g,        G,        underscore,    underscore    ] };
    key &lt;AC06&gt;    { [    h,        H,        exclam,        exclam        ] };
    key &lt;AC07&gt;    { [    j,        J,        question,    question    ] };
    key &lt;AC08&gt;    { [    k,        K,        colon,        colon        ] };
    key &lt;AC09&gt;    { [    l,        L,        dead_circumflex,dead_circumflex    ] };
    key &lt;AB09&gt;    { [    m,        M,        ugrave,        Ugrave        ] };
    key &lt;UP&gt;    { [    eacute,        Eacute,        egrave,        Egrave        ] };

    // 3. row
    key &lt;AB01&gt;    { [    w,        W,        EuroSign,       EuroSign    ] };
    key &lt;AB03&gt;    { [    c,        C,        parenleft,    parenleft    ] };
    key &lt;AB04&gt;    { [    v,        V,        parenright,    parenright    ] };
    key &lt;AB05&gt;    { [    b,        B,        slash,        slash        ] };
    key &lt;AB07&gt;    { [    comma,        comma,        apostrophe,    apostrophe    ] };
    key &lt;LEFT&gt;    { [    semicolon,    period,        period,        period        ] };
};



partial alphanumeric_keys
xkb_symbols &quot;de&quot; {
    include &quot;nokia_vndr/rx-51(english_base)&quot;
    include &quot;nokia_vndr/rx-51(arrows_2btns)&quot;

    name[Group1] = &quot;German&quot;;

    // 1. row
    key &lt;AD06&gt;    { [    z,        Z,        6,        6        ] };
    key &lt;AB08&gt;    { [    udiaeresis,    Udiaeresis,    ssharp,        ssharp        ] };

    // 2. row
    key &lt;AC08&gt;    { [    k,        K,        semicolon,    semicolon    ] };
    key &lt;AC09&gt;    { [    l,        L,        colon,        colon        ] };
    key &lt;AB09&gt;    { [    odiaeresis,    Odiaeresis,    exclam,        exclam        ] };
    key &lt;UP&gt;    { [    adiaeresis,    Adiaeresis,    question,    question    ] };

    // 3. row
    key &lt;AB01&gt;    { [    y,        Y,        EuroSign,    EuroSign    ] };
    key &lt;AB03&gt;    { [    c,        C,        equal,        equal        ] };
    key &lt;LEFT&gt;    { [    period,        comma,        comma,        comma        ] };
};


// Levels 5-8 are Russian, levels 1-4 US English, for shortcut reasons.
partial alphanumeric_keys
xkb_symbols &quot;ru&quot; {
    include &quot;nokia_vndr/rx-51(english_base)&quot;
    include &quot;nokia_vndr/rx-51(arrows_2btns)&quot;

    name[Group1] = &quot;Russian&quot;;

    key.type[Group1] = &quot;EIGHT_LEVEL_SEMIALPHABETIC&quot;;

    // 1. row
    key &lt;AD01&gt;    { [    q,        Q,        1,            1,            Cyrillic_shorti,    Cyrillic_SHORTI,    1,            1            ] };
    key &lt;AD02&gt;    { [    w,        W,        2,            2,            Cyrillic_tse,        Cyrillic_TSE,        2,            2            ] };
    key &lt;AD03&gt;    { [    e,        E,        3,            3,            Cyrillic_u,        Cyrillic_U,        3,            3            ] };
    key &lt;AD04&gt;    { [    r,        R,        4,            4,            Cyrillic_ka,        Cyrillic_KA,        4,            4            ] };
    key &lt;AD05&gt;    { [    t,        T,        5,            5,            Cyrillic_ie,        Cyrillic_IE,        5,            5            ] };
    key &lt;AD06&gt;    { [    y,        Y,        6,            6,            Cyrillic_en,        Cyrillic_EN,        6,            6            ] };
    key &lt;AD07&gt;    { [    u,        U,        7,            7,            Cyrillic_ghe,        Cyrillic_GHE,        7,            7            ] };
    key &lt;AD08&gt;    { [    i,        I,        8,            8,            Cyrillic_sha,        Cyrillic_SHA,        8,            8            ] };
    key &lt;AD09&gt;    { [    o,        O,        9,            9,            Cyrillic_shcha,        Cyrillic_SHCHA,        9,            9            ] };
    key &lt;AD10&gt;    { [    p,        P,        0,            0,            Cyrillic_ze,        Cyrillic_ZE,        0,            0            ] };
    key &lt;AB08&gt;  { [    Cyrillic_ha,    Cyrillic_HA,    Cyrillic_hardsign,    Cyrillic_HARDSIGN,    Cyrillic_ha,        Cyrillic_HA,        Cyrillic_hardsign,    Cyrillic_HARDSIGN    ] };

    // 2. row
    key &lt;AC01&gt;    { [    a,        A,        asterisk,        asterisk,        Cyrillic_ef,        Cyrillic_EF,        asterisk,        asterisk        ] };
    key &lt;AC02&gt;    { [    s,        S,        plus,            plus,            Cyrillic_yeru,        Cyrillic_YERU,        plus,            plus            ] };
    key &lt;AC03&gt;    { [    d,        D,        numbersign,        numbersign,        Cyrillic_ve,        Cyrillic_VE,        numbersign,        numbersign        ] };
    key &lt;AC04&gt;    { [    f,        F,        minus,            minus,            Cyrillic_a,        Cyrillic_A,        minus,            minus            ] };
    key &lt;AC05&gt;    { [    g,        G,        underscore,        underscore,        Cyrillic_pe,        Cyrillic_PE,        underscore,        underscore        ] };
    key &lt;AC06&gt;    { [    h,        H,        exclam,            exclam,            Cyrillic_er,        Cyrillic_ER,        exclam,            exclam            ] };
    key &lt;AC07&gt;    { [    j,        J,        question,        question,        Cyrillic_o,        Cyrillic_O,        question,        question        ] };
    key &lt;AC08&gt;    { [    k,        K,        semicolon,        semicolon,        Cyrillic_el,        Cyrillic_EL,        semicolon,        semicolon        ] };
    key &lt;AC09&gt;    { [    l,        L,        colon,            colon,            Cyrillic_de,        Cyrillic_DE,        colon,            colon            ] };
    key &lt;AB09&gt;    { [    comma,        comma,        comma,            comma,            Cyrillic_zhe,        Cyrillic_ZHE,        comma,            comma            ] };
    key &lt;UP&gt;    { [    period,        period,        period,            period,            Cyrillic_e,        Cyrillic_E,        period,            period            ] };

    // 3. row
    key &lt;AB01&gt;    { [    z,        Z,        dollar,            dollar,            Cyrillic_ya,        Cyrillic_YA,        dollar,            dollar            ] };
    key &lt;AB02&gt;    { [    x,        X,        EuroSign,        EuroSign,        Cyrillic_che,        Cyrillic_CHE,        EuroSign,        EuroSign        ] };
    key &lt;AB03&gt;    { [    c,        C,        slash,            slash,            Cyrillic_es,        Cyrillic_ES,        slash,            slash            ] };
    key &lt;AB04&gt;    { [    v,        V,        parenleft,        parenleft,        Cyrillic_em,        Cyrillic_EM,        parenleft,        parenleft        ] };
    key &lt;AB05&gt;    { [    b,        B,        parenright,        parenright,        Cyrillic_i,        Cyrillic_I,        parenright,        parenright        ] };
    key &lt;AB06&gt;    { [    n,        N,        quotedbl,        quotedbl,        Cyrillic_te,        Cyrillic_TE,        quotedbl,        quotedbl        ] };
    key &lt;AB07&gt;    { [    m,        M,        apostrophe,        apostrophe,        Cyrillic_softsign,    Cyrillic_SOFTSIGN,    apostrophe,        apostrophe        ] };
    key &lt;LEFT&gt;    { [    Cyrillic_be,    Cyrillic_BE,    Cyrillic_yu,        Cyrillic_YU,        Cyrillic_be,        Cyrillic_BE,        Cyrillic_yu,        Cyrillic_YU        ] };
};



partial alphanumeric_keys
xkb_symbols &quot;it&quot; {
    include &quot;nokia_vndr/rx-51(english_base)&quot;
    include &quot;nokia_vndr/rx-51(arrows_2btns)&quot;

    name[Group1] = &quot;Italian&quot;;

    // 1. row
    key &lt;AB08&gt;    { [    egrave,        Egrave,        eacute,        Eacute        ] };

    // 2. row
    key &lt;AC06&gt;    { [    h,        H,        semicolon,    semicolon    ] };
    key &lt;AC07&gt;    { [    j,        J,        colon,        colon        ] };
    key &lt;AC08&gt;    { [    k,        K,        exclam,        exclam        ] };
    key &lt;AC09&gt;    { [    l,        L,        question,    question    ] };
    key &lt;AB09&gt;    { [    ograve,        Ograve,        igrave,        Igrave        ] };
    key &lt;UP&gt;    { [    agrave,        Agrave,        ugrave,        Ugrave        ] };

    // 3. row
    key &lt;AB01&gt;    { [    z,        Z,        EuroSign,    EuroSign    ] };
    key &lt;AB02&gt;    { [    x,        X,        parenleft,    parenleft    ] };
    key &lt;AB03&gt;    { [    c,        C,        parenright,    parenright    ] };
    key &lt;LEFT&gt;    { [    period,        comma,        comma,        comma        ] };
};



partial alphanumeric_keys
xkb_symbols &quot;cz&quot; {
    include &quot;nokia_vndr/rx-51(english_base)&quot;
    include &quot;nokia_vndr/rx-51(arrows_2btns)&quot;

    name[Group1] = &quot;Czech&quot;;

    // 1. row
    key &lt;AD06&gt;    { [    z,        Z,        6,        6        ] };
    key &lt;AB08&gt;    { [    dead_acute,    dead_acute,    sterling,    sterling    ] };

    // 2. row
    key &lt;AC08&gt;    { [    k,        K,        semicolon,    semicolon    ] };
    key &lt;AC09&gt;    { [    l,        L,        colon,        colon        ] };
    key &lt;AB09&gt;    { [    uring,        Uring,        EuroSign,    EuroSign    ] };
    key &lt;UP&gt;    { [    dead_caron,    dead_caron,    dollar,        dollar        ] };

    // 3. row
    key &lt;AB01&gt;    { [    y,        Y,        equal,        equal        ] };
    key &lt;AB02&gt;    { [    x,        X,        slash,        slash        ] };
    key &lt;AB03&gt;    { [    c,        C,        backslash,    backslash    ] };
    key &lt;AB04&gt;    { [    v,        V,        apostrophe,    apostrophe    ] };
    key &lt;AB05&gt;    { [    b,        B,        quotedbl,    quotedbl    ] };
    key &lt;AB06&gt;    { [    n,        N,        exclam,        exclam        ] };
    key &lt;AB07&gt;    { [    m,        M,        question,    question    ] };
    key &lt;LEFT&gt;    { [    period,        comma,        comma,        comma        ] };
};

partial alphanumeric_keys
xkb_symbols &quot;cz_qwerty&quot; {
    include &quot;nokia_vndr/rx-51(cz)&quot;

    name[Group1] = &quot;Czech - qwerty&quot;;

    // Do not use the layout &quot;cz_qwerty&quot; directly if it is the only layout and compat rules enabled.
    // There is one compat rule that converts &quot;cz_qwerty&quot; to &quot;pc+cz(qwerty)&quot; which is not correct for RX-51.
    // Use either the layout &quot;cz(qwerty)&quot; or the general &quot;cz&quot; with variant &quot;qwerty&quot;.

    // 1. row
    key &lt;AD06&gt;    { [    y,        Y,        6,        6        ] };

    // 3. row
    key &lt;AB01&gt;    { [    z,        Z,        percent,    percent        ] };
};



////////////////////////////////////////////////////////////////////////////////

partial hidden alphanumeric_keys
xkb_symbols &quot;nordic_base&quot; {
    include &quot;nokia_vndr/rx-51(english_base)&quot;

    // 1. row
    key &lt;AB08&gt;    { [    aring,        Aring,        equal,        equal        ] };

    // 2. row
    key &lt;AC08&gt;    { [    k,        K,        semicolon,    semicolon    ] };
    key &lt;AC09&gt;    { [    l,        L,        colon,        colon        ] };

    // 3. row
    key &lt;AB01&gt;    { [    z,        Z,        EuroSign,    EuroSign    ] };
    key &lt;AB03&gt;    { [    c,        C,        sterling,    sterling    ] };
    key &lt;LEFT&gt;    { [    period,        comma,        comma,        comma        ] };
};

partial hidden alphanumeric_keys
xkb_symbols &quot;english_base&quot; {

    // 1. row
    key &lt;AD01&gt;    { [    q,        Q,        1,        1        ] };
    key &lt;AD02&gt;    { [    w,        W,        2,        2        ] };
    key &lt;AD03&gt;    { [    e,        E,        3,        3        ] };
    key &lt;AD04&gt;    { [    r,        R,        4,        4        ] };
    key &lt;AD05&gt;    { [    t,        T,        5,        5        ] };
    key &lt;AD06&gt;    { [    y,        Y,        6,        6        ] };
    key &lt;AD07&gt;    { [    u,        U,        7,        7        ] };
    key &lt;AD08&gt;    { [    i,        I,        8,        8        ] };
    key &lt;AD09&gt;    { [    o,        O,        9,        9        ] };
    key &lt;AD10&gt;    { [    p,        P,        0,        0        ] };
    key &lt;AB08&gt;    { [    comma,        semicolon,    equal,        equal        ] };

    // 2. row
    key &lt;AC01&gt;    { [    a,        A,        asterisk,    asterisk    ] };
    key &lt;AC02&gt;    { [    s,        S,        plus,        plus        ] };
    key &lt;AC03&gt;    { [    d,        D,        numbersign,    numbersign    ] };
    key &lt;AC04&gt;    { [    f,        F,        minus,        minus        ] };
    key &lt;AC05&gt;    { [    g,        G,        underscore,    underscore    ] };
    key &lt;AC06&gt;    { [    h,        H,        parenleft,    parenleft    ] };
    key &lt;AC07&gt;    { [    j,        J,        parenright,    parenright    ] };
    key &lt;AC08&gt;    { [    k,        K,        ampersand,    ampersand    ] };
    key &lt;AC09&gt;    { [    l,        L,        exclam,        exclam        ] };
    key &lt;AB09&gt;    { [    period,        colon,        question,    question    ] };

    // 3. row
    key &lt;AB01&gt;    { [    z,        Z,        caret,    caret] };
    key &lt;AB02&gt;    { [    x,        X,        dollar,        dollar        ] };
    key &lt;AB03&gt;    { [    c,        C,        bar,        bar        ] };
    key &lt;AB04&gt;    { [    v,        V,        slash,        slash        ] };
    key &lt;AB05&gt;    { [    b,        B,        backslash,    backslash    ] };
    key &lt;AB06&gt;    { [    n,        N,        quotedbl,    quotedbl    ] };
    key &lt;AB07&gt;    { [    m,        M,        apostrophe,    apostrophe    ] };
    key &lt;SPCE&gt;    { [    space,        Tab,        at,        at        ] };
};

partial hidden alphanumeric_keys
xkb_symbols &quot;common_keys&quot; {
    // all other common keys

    // key &lt;BKSP&gt;    { [    BackSpace    ] };
    key &lt;BKSP&gt;    { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [    BackSpace,Escape        ] };
    key &lt;TAB&gt;    { [    Tab        ] };

    // broken UI spec.
    // key &lt;RTRN&gt;    { [    KP_Enter    ] };
    key &lt;RTRN&gt;    { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [    KP_Enter,Tab        ] };


    key &lt;KPEN&gt;    { [    Return, Escape, Escape, Escape        ] };
    key &lt;ESC&gt;    { [    Escape        ] };

    key &lt;FK01&gt;    { [    F1    ] };
    key &lt;FK02&gt;    { [    F2    ] };
    key &lt;FK03&gt;    { [    F3    ] };
    key &lt;FK04&gt;    { [    F4    ] };
    key &lt;FK05&gt;    { [    F5    ] };
    key &lt;FK06&gt;    { [    F6    ] };

    // Swap +/- keys intentionally. The VOL+/VOL- keys are located physically
    // on left/right and up/down in landscape/portrait orientation. This does
    // not feel natural for the user and therefore we want the VOL+/VOL- keys
    // map to -/+.
    //
    // The only exception is an active call in portrait mode where we want to
    // use the real meanings of the keys. This special case and management of
    // +/- keys in general is handled in maemo-statusmenu-volume.
    key &lt;FK07&gt;    { [    F8    ] };
    key &lt;FK08&gt;    { [    F7    ] };

    key &lt;FK09&gt;    { [    F9    ] };
    key &lt;FK10&gt;    { [    F10    ] };
    key &lt;FK11&gt;    { [    F11    ] };
};

partial hidden alphanumeric_keys modifier_keys
xkb_symbols &quot;modifiers&quot; {
    // Shift switches between current level and level+1
    key &lt;LFSH&gt;    {
    type[Group1] = &quot;ONE_LEVEL&quot;,
    symbols[Group1] = [    Shift_L    ]
    };
    modifier_map Shift { Shift_L };

    // Fn+Ctrl virtual symbol table (Multi_key)
    // Ctrl+Space switches between 1st and 5th level (hardcoded in hildon)
    key &lt;LCTL&gt;    {
    type[Group1] = &quot;FOUR_LEVEL&quot;,
    symbols[Group1] = [    Control_L,    Control_L,    Multi_key,    Multi_key    ]
    };
    modifier_map Control { Control_L };

    // Fn key (right alt) switches to 3rd level
    include &quot;level3(ralt_switch)&quot;
};

partial hidden alphanumeric_keys
xkb_symbols &quot;arrows_2btns&quot; {
    // rx-51 specific arrows mapping
    // normal 2nd level must not be enumerated to allow text selection with Shift key
    key &lt;DOWN&gt;    { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [    Left,    Up    ] };
    key &lt;RGHT&gt;    { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [    Right,    Down    ] };
};

partial hidden alphanumeric_keys
xkb_symbols &quot;arrows_4btns&quot; {
    // standard arrows mapping
    // normal 2nd level must not be enumerated to allow text selection with Shift key
    key &lt;UP&gt;    { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [    Up,Page_Up    ] };
    key &lt;LEFT&gt;    { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [    Left,Home    ] };
    key &lt;DOWN&gt;    { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [    Down,Page_Down    ] };
    key &lt;RGHT&gt;    { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [    Right,End    ] };
};
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:B0unc3</title>
    <id>1091</id>
    <revision>
      <id>6390</id>
      <timestamp>2008-08-06T23:28:29Z</timestamp>
      <contributor>
        <username>b0unc3</username>
        <id>267</id>
      </contributor>
      <text xml:space="preserve">My name is '''Daniele Maio''', I’m 24 and I live in '''Milazzo (Sicily - Italy)'''. I'm interested in open source and application development for embedded device.

I'm attending at “'' &quot;La Cittadella&quot; Università degli studi di Catania''” to get the Computer Science degree.

== Contact ==

* email: daniele.maio AT gmail.com
* irc: b0unc3 @ FreeNode on #maemo
* linkedin: http://www.linkedin.com/in/DanieleMaio
* facebook: http://www.facebook.com/profile.php?id=1004559120

== Maemo Apps ==

* [http://garage,maemo.org/projects/wizard-mounter Wizard Mounter]
* [http://garage.maemo.org/projects/idea IDEA]
* [http://garage.maemo.org/projects/smp System Monitor Plugin]</text>
    </revision>
  </page>
  <page>
    <title>User:Baksiidaa</title>
    <id>358</id>
    <revision>
      <id>2075</id>
      <timestamp>2008-06-20T02:34:54Z</timestamp>
      <contributor>
        <username>baksiidaa</username>
        <id>99</id>
      </contributor>
      <text xml:space="preserve">[https://maemo.org/profile/view/baksiidaa.html Maemo profile]

[http://www.internettablettalk.com/forums/member.php?u=11284 itT profile]</text>
    </revision>
  </page>
  <page>
    <title>User:Baloo</title>
    <id>514</id>
    <revision>
      <id>38214</id>
      <timestamp>2010-08-30T14:37:02Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Contact */ drop wikilink</comment>
      <text xml:space="preserve">My name is Jamie Bennett and I'm from Bath in the UK [http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=bath,+uk&amp;ie=UTF8&amp;t=h&amp;z=13]. I've been using Linux since installing Slackware in 1995 and maemo since buying a 770 some time back. Currently I'm using an n800.

== Information ==
 * Homepage: [http://www.linuxuk.org LinuxUK]
 * Launchpad: [https://edge.launchpad.net/~jamie-bennett-gmail Jamie Bennett]
 * Member of [https://edge.launchpad.net/~ubuntu-uk Ubuntu UK]
 * Member of Blog Aggregators:
   * [http://maemo.org/news/planet-maemo/ Planet Maemo] 
   * [http://planet.ubuntu-uk.org/ Planet Ubuntu-UK]
 * Commercial and free open source contributor for [http://www.linuxuk.org LinuxUK]

== Contact ==
 * IRC : JamieBennett on freenode
 * Email : MailTo(jamie -AT- SPAMFREE linuxuk -DOT- org)
 * Jaiku : [http://jamiebennett.jaiku.com/]

== Current Contributions ==
 * My List of Reported/Subscribed [https://bugs.launchpad.net/~jamie-bennett-gmail Bugs]
 * My List of Contributed [https://launchpad.net/~jamie-bennett-gmail/+packages Packages]

== Past Projects ==
 * [http://www.linuxfromscratch.org Linux from Scratch] Head developer for the ALFS (Automated Linux from Scratch) tools.</text>
    </revision>
  </page>
  <page>
    <title>User:Barbieri</title>
    <id>824</id>
    <revision>
      <id>4813</id>
      <timestamp>2008-07-19T02:08:21Z</timestamp>
      <contributor>
        <username>barbieri</username>
        <id>206</id>
      </contributor>
      <comment>New page: Gustavo Sverzut Barbieri  Software Architect at ProFUSION embedded systems, working with Maemo and other GNU/Linux devices, mainly with Graphical User Interfaces and Multimedia. See more a...</comment>
      <text xml:space="preserve">Gustavo Sverzut Barbieri

Software Architect at ProFUSION embedded systems, working with Maemo and other GNU/Linux devices, mainly with Graphical User Interfaces and Multimedia. See more at:

http://blog.gustavobarbieri.com.br/about/</text>
    </revision>
  </page>
  <page>
    <title>User:Bergie</title>
    <id>2634</id>
    <revision>
      <id>19590</id>
      <timestamp>2009-10-07T12:42:01Z</timestamp>
      <contributor>
        <username>bergie</username>
        <id>260</id>
      </contributor>
      <comment>New page: [http://maemo.org/profile/view/bergie/ 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 i...</comment>
      <text xml:space="preserve">[http://maemo.org/profile/view/bergie/ 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 [http://www.midgard-project.org/ Midgard] toolkit.</text>
    </revision>
  </page>
  <page>
    <title>User:Biquillo</title>
    <id>3122</id>
    <revision>
      <id>23796</id>
      <timestamp>2009-12-03T03:22:26Z</timestamp>
      <contributor>
        <username>biquillo</username>
        <id>1475</id>
      </contributor>
      <comment>New page: '''Name''' Victor Diaz</comment>
      <text xml:space="preserve">'''Name''' Victor Diaz</text>
    </revision>
  </page>
  <page>
    <title>User:Blaxnux</title>
    <id>504</id>
    <revision>
      <id>2607</id>
      <timestamp>2008-06-23T23:23:21Z</timestamp>
      <contributor>
        <username>blaxnux</username>
        <id>124</id>
      </contributor>
      <comment>New page: ''a.k.a'' Black_Claw ''a.k.a'' zappytanx. A stupid one from funny country. :D</comment>
      <text xml:space="preserve">''a.k.a'' Black_Claw ''a.k.a'' zappytanx. A stupid one from funny country. :D</text>
    </revision>
  </page>
  <page>
    <title>User:Bman</title>
    <id>2482</id>
    <revision>
      <id>18753</id>
      <timestamp>2009-09-25T03:29:37Z</timestamp>
      <contributor>
        <username>b-man</username>
        <id>507</id>
      </contributor>
      <comment>My Profile</comment>
      <text xml:space="preserve">I am a high school student who is an open source software enthusiast and a software developer/hacker/porter for Maemo and Mer.

Website:
http://b-man.xceleo.org/

Ubuntu-N8X0 repository:
http://b-man.xceleo.org/repo/ubuntu-n8x0/

Ports/projects:
http://b-man.xceleo.org/projects/

Enjoy! :)</text>
    </revision>
  </page>
  <page>
    <title>User:Brianez21</title>
    <id>3176</id>
    <revision>
      <id>48744</id>
      <timestamp>2012-07-13T23:53:56Z</timestamp>
      <contributor>
        <username>brianez21</username>
        <id>1594</id>
      </contributor>
      <text xml:space="preserve">'''Name:''' Brian Nez

'''Nokia N-series Devices:''' N900

'''Website:''' [http://www.nezzen.net http://NEZzen.net]</text>
    </revision>
  </page>
  <page>
    <title>User:Brontide</title>
    <id>839</id>
    <revision>
      <id>5515</id>
      <timestamp>2008-07-25T19:00:48Z</timestamp>
      <contributor>
        <username>brontide</username>
        <id>200</id>
      </contributor>
      <text xml:space="preserve">[[Image:EricWarnke.jpg]]

Eric Warnke &lt;ericew@gmail.com&gt;

I am currently wrangling the Saturday schedule.

The projects I am demo-ing at mameo summit are as follows

* 2 way sync between &quot;Notes&quot; and Google Documents.
* Download a copy of picasaweb albums for any number of users</text>
    </revision>
  </page>
  <page>
    <title>User:Bunanson</title>
    <id>935</id>
    <revision>
      <id>5559</id>
      <timestamp>2008-07-26T02:31:14Z</timestamp>
      <contributor>
        <username>bunanson</username>
        <id>152</id>
      </contributor>
      <text xml:space="preserve">[http://nittv.blogspot.com bunanson]</text>
    </revision>
  </page>
  <page>
    <title>User:Caco3</title>
    <id>4919</id>
    <revision>
      <id>44258</id>
      <timestamp>2011-06-30T17:09:19Z</timestamp>
      <contributor>
        <username>caco3</username>
        <id>2824</id>
      </contributor>
      <text xml:space="preserve">This is a list of my MAEMO projects and ports. I am planning to port them to MEEGO if I can get my hands onto a MEEGO device.

More infos about me and moy projects are available on my blog/website: [http://www.ruinelli.ch www.ruinelli.ch]

==My apps==
[http://maemo.org/packages/view/sleepanalyser/ SleepAnalyser]

[http://maemo.org/packages/view/shiprolling/ Ship's Rolling]

[http://maemo.org/packages/view/passwordmaker-frontend/ Password Maker Frontend]

===Work in progress===
A location (GPS) based alert system. It can be used to remind you about something once you get close to a coordination. See post for details: [http://talk.maemo.org/showthread.php?t=64681]

===Other apps I am involved in===
[http://maemo.org/packages/view/fahrplan/ Fahrplan]

==My ports==
[http://maemo.org/packages/view/shedskin/ Shedskin]

[http://maemo.org/packages/view/passwordmaker/ Password Maker]

Also I am willing to port other apps/libs if requested/needed.</text>
    </revision>
  </page>
  <page>
    <title>User:Cas07</title>
    <id>3406</id>
    <revision>
      <id>27084</id>
      <timestamp>2010-01-21T19:08:48Z</timestamp>
      <contributor>
        <username>cas07</username>
        <id>1601</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">[https://garage.maemo.org/users/cas07/ Garage]

[http://talk.maemo.org/member.php?u=28417 Talk]

[http://maemo.org/profile/view/cas07/ maemo.org]


=== [[User:Cas07/Sandbox|Sandbox]] ===

=== [[User:Cas07/N900_Wiki|N900 Wiki Thoughts]]===</text>
    </revision>
  </page>
  <page>
    <title>User:Cas07/N900 Wiki</title>
    <id>3408</id>
    <revision>
      <id>38239</id>
      <timestamp>2010-08-31T07:59:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Page names more readable */ drop some non-existent links</comment>
      <text xml:space="preserve">Random thoughts i have about changes to the wiki. They are slightly biased towards N900 as thats the device i own.

==Pages needed written==

===Software===
Ovi Maps &amp; Maploader: http://talk.maemo.org/showthread.php?t=38872

WoL or Magic Packet: http://talk.maemo.org/showthread.php?t=38785

====Media====
uPNP

====Sensors====
Haptic Feedback
http://talk.maemo.org/showthread.php?t=39320

Proximity Sensor

Camera Door Sensor

Battery Cover 

Keyboard Slide Sensor

Ambient Light Sensor

Source: Nokia Service L3&amp;4 Page 6–16

===Hardware ===
Battery Details

These would be part of the N900 hardware category.


==Page names more readable== 

Currently: [[N900 CPU]]

Suggestions:

* Microprocessor (N900)
* Microprocessor/N900
* Microprocessor:N900

This can then be entered into categories, Hardware, N900 Hardware


===Tweaks/Modding/Hacks===
Some consolidation



===Page Layout Test===
[[User:Cas07/N900 Wiki/Accelerometer]]
[[User:Cas07/N900 Wiki/Accelerometer/N900]]

[[:Category:N900]]

http://en.wikipedia.org/wiki/Template:Catmore</text>
    </revision>
  </page>
  <page>
    <title>User:Cas07/N900 Wiki/Accelerometer</title>
    <id>3413</id>
    <revision>
      <id>26765</id>
      <timestamp>2010-01-17T00:55:56Z</timestamp>
      <contributor>
        <username>cas07</username>
        <id>1601</id>
      </contributor>
      <comment>New page: test page</comment>
      <text xml:space="preserve">test page</text>
    </revision>
  </page>
  <page>
    <title>User:Cas07/N900 Wiki/Accelerometer/N900</title>
    <id>3412</id>
    <revision>
      <id>26772</id>
      <timestamp>2010-01-17T02:40:40Z</timestamp>
      <contributor>
        <username>cas07</username>
        <id>1601</id>
      </contributor>
      <comment>Removing all content from page</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>User:Cas07/Sandbox</title>
    <id>3407</id>
    <revision>
      <id>27032</id>
      <timestamp>2010-01-20T17:37:36Z</timestamp>
      <contributor>
        <username>cas07</username>
        <id>1601</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">My sandbox Page


[[User:Cas07/Sandbox/Front page|Front page idea]]

[[User:Cas07/Sandbox/Customise:N900]]</text>
    </revision>
  </page>
  <page>
    <title>User:Cas07/Sandbox/Customise:N900</title>
    <id>3417</id>
    <revision>
      <id>36831</id>
      <timestamp>2010-07-14T18:54:45Z</timestamp>
      <contributor>
        <username>henriknordstrom</username>
        <id>3102</id>
      </contributor>
      <comment>/* IPv6 */</comment>
      <text xml:space="preserve">'''I am undecided if a whole new page should be created. I have included links below that are on similar topics, to help prevent duplication. The material in my page could be moved to relevant pages and/or new pages created.

Similar pages that should be taken into consideration:'''

[[How_to_personalize_your_N900]]

[[Customizing_maemo_for_power_users]]

[[Customizing_Maemo]]

[[Customizing_sounds]]

[[List_of_Themes_for_Maemo5]]

[[Remapping_keyboard]]



P.S. I have been thinking that a separate page should be created to list the icons, images and screenshots created by everyone in the forum so as to keep the details of modifications less cluttered.



----

'''When using the X-Terminal with root access enabled, be EXTREMELY CAUTIOUS! '''
*Root access enables you to modify (and thus also DAMAGE) all system files, which can even result in BRICKING the device. If you don't know what you are doing, better don't do it.

'''Backup files before editing from console: cp filename.conf filename.conf.bak'''

*Recommended Apps for File Editing from console:
**vi (built-in)
**Vim 
**mc (Midnight Commander)
**leadpad (can be launched from root console)

'''Link to root access howto:''' (sudo gainroot or ssh -lroot)

=Software=

== Skinning ==


=== Startup &amp; Shutdown ===

'''Startup Video'''

*Original video: /usr/share/hildon-welcome/media

*Config File: /etc/hildon-welcome.d/default.conf

Cite: http://talk.maemo.org/showthread.php?t=32935
Second cite: http://talk.maemo.org/showthread.php?t=40803

'''Shutdown Image'''
put the png image you want to use in:

Folder: /usr/share/icons/hicolor/scalable/hildon

Ini File or Filename: startup_nokia_logo

Reboot phone

=== Conversations ===
Originally Posted by b666m (Post 479324)
modded the sms conversation window.
1. moved contact's avatar to the right
2. added own avatar on the left
3. changed some alignments to fit the screen :)



=== Icons ===


you can install them into ~/.local/share/icons/hicolor/scalable/hildon and they'll override the system icons, but leave them in place. [Does this apply to all icons adn images??]

*/usr/share/icons/hicolor/scalable/hildon
**Signal images
**Battery1 images 
&lt;pre&gt;
statusarea_battery_full13.png
statusarea_battery_full25.png
statusarea_battery_full38.png
statusarea_battery_full50.png
statusarea_battery_full63.png
statusarea_battery_full75.png
statusarea_battery_full88.png
statusarea_battery_full100.png
&lt;/pre&gt;

*/usr/share/icons/hicolor/48x48/hildon/
** Battery2 images
** Availability images

*/usr/share/icons/hicolor/16x16/hildon
** Availability (Small) images

To install the bootup icons place the icons here (make sure you backup the original icons first!): /usr/share/icons/hicolor/scalable/hildon/ 

&lt;pre&gt;
indicator_update1.png
indicator_update2.png
indicator_update3.png
indicator_update4.png
indicator_update5.png
indicator_update6.png
indicator_update7.png
indicator_update8.png
&lt;/pre&gt;

=== Transition Effect ===

The effect when zooming out or closing web pages 
*/usr/share/themes/?????/images
**wmWhiteSparkle
Cite: http://talk.maemo.org/showpost.php?p=478938&amp;postcount=189

== Sounds ==

*/usr/share/sounds/
*Offline Notify: presence-offline.wav
*Online Notify: presence-online.wav
*Installation Complete: ui-information_note.wav
*General Warning: ui-general_warning.wav
*Charging: ui-charging_started.wav
*Shutdown: ui-shutdown.wav

== Transition Control ==
transitioncontrol app

Smoother Transition Example
&lt;pre&gt;
Rotate% = 85
Rotate In = 25
Rotate Out = 25
Blank min = 0
Blank max = 0
&lt;/pre&gt;


== Power Button Menu ==
Add Reboot Option

Warning about &gt;50 reboot count:
*Check count: &lt;code&gt;cat /var/lib/dsme/boot_count&lt;/code&gt;
*Increases by 3 each reboot ''(Need verified)''
*Make sure to shutdown and only then boot (all this without being connected to a power source) before it reaches 48 (at 51 you're device won't boot!)
* this has been fixed in PR1.1 update (?)

Edit: /ect/systemui/systemui.xml  
Uncomment MenuSelection for Reboot
[Link to more details]

== App Menu ==

- MyMenu

- Catorise

== Profiles ==

profile presets

tweakr

== Desktop ==



=== Status Bar ===

CPU &amp; Memory Icon
&quot;cpumem-applet&quot; or &quot;load applet&quot;

POWATOOL: easily remove boot video, and change what is displayed in status bar


=== Operator Logo ===
Just install &quot;custom operator name widget&quot; from extras to edit the operator name.

=== Shortcuts ===

Folders on the desktop
*Using the browser file:/// then bookmark the selected folder

Webradio
http://talk.maemo.org/showthread.php?t=39858


== MultiMedia ==

Extra Decoders

=== Fonts ===
Droid Fonts


== Xterm ==
===Fullscreen Mode===
&lt;pre&gt;gconftool-2 -s /apps/osso/xterm/toolbar -t bool &quot;false&quot;&lt;/pre&gt;
===Keybar===
The following works to add the &quot;|&quot; button on the Fremantle osso-xterm bar:
&lt;pre&gt;
~ $ gconftool-2 -s /apps/osso/xterm/key_labels -t list --list-type=string &quot;[Tab,Esc,PgUp,PgDn,|]&quot;
~ $ gconftool-2 -s /apps/osso/xterm/keys -t list --list-type=string &quot;[Tab,Escape,Page_Up,Page_Down,bar]&quot;
&lt;/pre&gt;

likewise to also add a nondead tilde:

&lt;pre&gt;
~ $ gconftool-2 -s /apps/osso/xterm/key_labels -t list --list-type=string &quot;[Tab,Esc,PgUp,PgDn,|,~]&quot;
~ $ gconftool-2 -s /apps/osso/xterm/keys -t list --list-type=string &quot;[Tab,Escape,Page_Up,Page_Down,bar,asciitilde]&quot;
&lt;/pre&gt;

=Hardware=

This section is for modifications that directly associate with the hardware of the N900. E.g. LEDs, Buttons, Keyboard. 

== Buttons ==

=== Volume Key ===

=== Keyboard ===

==== how to swap the Fn and Shift keys ====
This makes the shift key behave as FN.
Edit the file /usr/share/X11/xkb/symbols/nokia_vndr/rx-51
find:
&lt;pre&gt;
key &lt;LFSH&gt; {
type[Group1] = &quot;ONE_LEVEL&quot;,
symbols[Group1] = [ Shift_L ]
};
modifier_map Shift { Shift_L };
&lt;/pre&gt;
Replace LFSH with RALT. This makes FN behave like shift.
find
&lt;pre&gt;
include &quot;level3(ralt_switch)&quot;
&lt;/pre&gt;
remove line, and replace it with:
&lt;pre&gt;
key &lt;LFSH&gt; {
type[Group1]=&quot;ONE_LEVEL&quot;,
symbols[Group1] = [ ISO_Level3_Shift ]
};
modifier_map Mod5 { ISO_Level3_Shift };
&lt;/pre&gt;
After editing rx-51, use the command &quot;setxkbmap&quot; in xterm to activate it.

==== Extended keyboard shortcuts MOD ====

The easy way to do this now is to download &quot;keyboard-shortcuts&quot; from extras-devel, adds many extra keyboard shortcuts.





-on the desktop, left and right direction keys change desktops

-CTRL+SHIFT+B opens browser window




The keyboard related behaviour of hildon-desktop is now configured by 7 gconf boolean keys:

    * /apps/osso/hildon-desktop/key-actions/default_launcher_positions
      If this key is false, the default positions of the icons in the launcher are disabled, so you can reorder them arbitrarily.
    * /apps/osso/hildon-desktop/key-actions/home_contacts_phone
      If this key is false, the phones and contacts applications will not be called when a key is pressed while in the home screen.
    * /apps/osso/hildon-desktop/key-actions/ctrl_backspace
      If this key is false then ctrl-backspace is free for applications to use, instead of the default behaviour of jumping to task navigator.
    * /apps/osso/hildon-desktop/key-actions/preset_shift_ctrl
      If this key is true, ctrl-shift-x opens an xterm, ctrl-shift-p saves an image of the screen, ctrl-shift-n toggles composite mode and ctrl-shift-h jumps to home screen.
    * /apps/osso/hildon-desktop/key-actions/dbus_shift_ctrl
      If this key is true, then ctrl-shift-letter combinations are reported on the d-bus, allowing implementation of global shortcut keys. H,N,P,X are reported on the dbus only if the previous key is false.
    * /apps/osso/hildon-desktop/key-actions/launcher_navigator_accel
      If this is true, icons in the launcher and task navigator can be selected by pressing corresponding keys:
          o q selects leftmost icon in top row.
          o w selects second icon from left in top row.
          o t selects fifth icon from left in top row.
          o s selects second from left icon in second row.
          o z selects leftmost icon in third row.
          o v selects fourth icon from left in the third row.
      etc.
      In the task navigator, if the letter is pressed with shift or FN, the corresponding task is closed, instead of switched to.
    * /apps/osso/hildon-desktop/key-actions/dbus_launcher_navigator
      If this key is true, a press of a letter key while in task navigator or launcher is reported on the d-bus. If the previous key is true, only letters not corresponding to icons are reported. If home_contacts_phone key is false, then also keys pressed while in home screen are reported.
#  ctrl+. ctrl+, ctrl+Space are now also global short cut keys.
# Added signals:

    * activate_window with one integer argument, activates the nth window ordered as in the task navigator display.
    * activate_window_time with one integer argument, activates the nth window ordered by the last time window was activated. Use negative numbers to count from newer, instead of older.
    * Same calls with close instead of activate, to close the window.

Those signals can only work when the task navigator is displayed.
    * Non-configurable changes:
          o Left and right arrows change desktops in the home screen.
          o A d-bus signal set_state allows other programs to select the state (application, home screen, task navigator, launcher).

=== Camera Button ===

====== Change function out-with Camera app ======
Camkeyd or Shortcutd

== Sensors ==

===Proximity Sensor===
Proximityd or Shortcutd

=== Ambient Light Sensor ===

== Screen ==

=== Backlight ===
Link to Brightness App

=== Battery Info ===
Desktop Command Execution Widget

=== Cellular Control ===
Cellular Modem Control 
2G/3G Switcher

== Notification LEDs==

edit the file &quot;etc/mce/mce.ini&quot;
What kind of combinations do work? Does blue&amp;amp;green work?
RGB_illumination.jpg
red yellow blue white green
purple = rb
lightblue = bg

red for missed call and power off
blue for sms/email/im
green for on/ full charge
white for device on/charge

For much more detail please see [[LED_patterns]]

== FM Transmitter ==

Simple fmtx desktop widget

===Increase Power ===
Install fm boost which is a script to boost fm transmitter power to 118.

===RDS Output===
PR1.1 Added a basic version of this feature 

&quot;RDS Notify&quot; has more options such as output screen size

===Tune FM transmitter to something below 88.1 MHz===
Using this guide you may be able to tune your FM transmitter so a value below 88.1 MHz.
http://talk.maemo.org/showpost.php?p=585212&amp;postcount=34

== Camera ==

=== LEDs as Flashlight ===
Flashlight App

=== Shutter Sound ===
usr/share/sounds
the files are camera_snd_title_1, 2 and 3
1 is the camera shutter sound, 2 is the video recording sound and 3 is the
focus sound, just replace them with any working wav sound file.


== Bluetooth ==
switchOnBT

== Other ==

==Network==
=== IPv6 ===

Automatically detects IPv6 router advertisements.

== Control PC over Wifi using VNC Viewer ==



1.  download and install a vnc viewer on PC (eg.  tightvnc:  http://www.tightvnc.com/download.php)

2.  install &quot;vnc viewer&quot; on N900 (from extras repo)

3.  on PC, in vnc prog settings (in tightvnc &quot;Show user settings&quot; ), set primary password

4.  on PC run vnc server(in tightvnc &quot;Launch TightVNC Server&quot;)

5.  retrieve your wifi connections IP address

(in XP click start &gt; run &gt; and type &quot;ipconfig&quot; )

6.  run 'vnc viewer' on N900 and enter IP address [enter] then password

7.  you should now see and have control of your PC through your N900!

== Updating / Flashing / Formatting Firmware ==


http://wiki.maemo.org/Updating_the_firmware

== Using OneDotZero with N900 and PC over Wifi ==




1. make sure you have an N900

2. make sure you have a PC (windows XP or linux - vista and W7 will not work)

3. make sure you have a Wifi connection

4. for output, it is preferable to have a big monitor, TV or a projector

5. on the N900, install &quot;onedotzero&quot; app from extras-devel repository

6. download onedotzero PC app:  http://code.google.com/p/onedotzero-ident/downloads/list

7. extract zip file to any folder (and configure - optional)

8. run 'onedotzero' app on N900

9. run 'run.bat' on PC

10. on N900 touch screen, type some words, press send..

11. and they should appear on the screen...



- ensure PC app is NOT blocked by firewall

- screen size can be increased to fill monitor also, edit &quot;app.properties&quot;

- more info here:  http://code.google.com/p/onedotzero-ident/wiki/userInstallationConfig


-----------
For Shortcuts Wiki: tapping and holding the Back arrow button (in the upper right corner of the screen) switches to the main view of that application
-------------

== See Also ==
Shortcuts &amp; Gestures

Tweaks

Personalise

== Reference ==
http://my-maemo.com

http://talk.maemo.org/showpost.php?p=429079

http://talk.maemo.org/showthread.php?t=39565

http://talk.maemo.org/showpost.php?p=429079&amp;postcount=27

http://talk.maemo.org/showthread.php?t=34926</text>
    </revision>
  </page>
  <page>
    <title>User:Cas07/Sandbox/Front page</title>
    <id>3409</id>
    <revision>
      <id>26755</id>
      <timestamp>2010-01-16T23:44:49Z</timestamp>
      <contributor>
        <username>cas07</username>
        <id>1601</id>
      </contributor>
      <text xml:space="preserve">&lt;div style=&quot;font-size: 1em;&quot;&gt;
&lt;!-- ==== &quot;Welcome to maemo.org Wiki&quot; and article count ======== --&gt;
Welcome to the Maemo Wiki, currently featuring [[Special:Statistics|{{NUMBEROFARTICLES}}]] articles. Read [[Special:Newpages|new]] ones, 
browse the [[Special:Categories|categories]], follow the [http://wiki.maemo.org/index.php?title=Special%3ACategoryTree&amp;target=content&amp;mode=categories&amp;dotree=Show+Tree category tree], jump to a [[Special:Random|random page]] or select your favorite topic from the list below.

&lt;div class=&quot;sections&quot;&gt;
&lt;div class=&quot;column&quot;&gt;
&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Hot Topics&lt;/h2&gt;
&lt;ul class=&quot;document&quot;&gt;{{Hot Topics}}
&lt;/ul&gt;&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Our Community&lt;/h2&gt;
&lt;ul class=&quot;help&quot;&gt;{{Community}}
&lt;/ul&gt;&lt;h2&gt;Upcoming [[Events]]&lt;/h2&gt;
&lt;ul class=&quot;document&quot;&gt;{{Events}}
&lt;span style=&quot;font-size: 0.9em; margin-left: 3em;&quot;&gt;&lt;em&gt;{{More topics|Community|community}}&lt;/em&gt;&lt;/span&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;column&quot;&gt;
&lt;div class=&quot;section&quot;&gt;
&lt;!--&gt;Audience specific topics&lt;--&gt;
&lt;div class=&quot;section&quot;&gt;
==[[:category:Devices|Devices]]==
&lt;ul class=&quot;document&quot;&gt;{{:User:Cas07/Sandbox/Front page/Template/Devices}}
&lt;/ul&gt;&lt;/div&gt;
==[[:category:beginners|Beginner]]==
&lt;ul class=&quot;help&quot;&gt;{{Basics}}
&lt;/ul&gt;&lt;span style=&quot;font-size: 0.9em; margin-left: 3em;&quot;&gt;&lt;em&gt;{{More topics|Beginners|beginner}}&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
==[[:category:power_users|Power User]]==
&lt;ul class=&quot;help&quot;&gt;{{Power users}}
&lt;/ul&gt;&lt;span style=&quot;font-size: 0.9em; margin-left: 3em;&quot;&gt;&lt;em&gt;{{More topics|Power users|power user}}&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
==[[:category:development|Developer]]==
&lt;ul class=&quot;document&quot;&gt;{{Development}}
&lt;/ul&gt;&lt;span style=&quot;font-size: 0.9em; margin-left: 3em;&quot;&gt;&lt;em&gt;{{More topics|Development|developer}}&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;



__NOEDITSECTION__ &lt;!-- disables the [edit] links from being shown --&gt;
__NOTOC__ &lt;!-- disable the table of contents from ever being shown --&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Cas07/Sandbox/Front page/Template/Devices</title>
    <id>3411</id>
    <revision>
      <id>26756</id>
      <timestamp>2010-01-16T23:51:50Z</timestamp>
      <contributor>
        <username>cas07</username>
        <id>1601</id>
      </contributor>
      <text xml:space="preserve">&lt;!-- * [[Help testing software]]
* [[Root access|Getting root access]]
* [[Extras|Extras repository]]
* [[Updating the tablet firmware]]
* [[Tutorials | More tutorials]]

* [[Nokia 770]]
* [[Nokia N800]]
* [[Nokia N810]]
* [[Nokia N810WME]]
* [[Nokia N900]]

&lt;categorytree mode=pages&gt;Devices&lt;/categorytree&gt;

{{#categorytree:Devices}}
--&gt;

* [[Nokia 770]]
* [[:Category:N8x0|Nokia N800 &amp; N810]]
* [[:Category:N900|Nokia N900]]</text>
    </revision>
  </page>
  <page>
    <title>User:Caze</title>
    <id>3758</id>
    <revision>
      <id>35174</id>
      <timestamp>2010-05-31T19:15:24Z</timestamp>
      <contributor>
        <username>caze</username>
        <id>2354</id>
      </contributor>
      <comment>+1 note to self: update trouble</comment>
      <text xml:space="preserve">Here I will note some things concerning diverse stuff around maemo on n900 that might come in handy later for me. Or maybe for you.

== root ==
to gain root superuser privileges, which you need e.g. for manual package installation etc, install [[Root_access#rootsh|rootsh]], in [[Terminal#Opening_the_terminal|xTerminal]] type:
 root

== partitions ==
the [[N900 filesystem]] is, to my liking, inconveniently set up.

as root:
 sfdisk -l
 cat /etc/fstab 
informs you that you have
&lt;pre&gt;
Device               Boot   Start     End      #cyls #blocks   Id  System
/dev/mmcblk0p1          1  884864  884864   28315648    c      W95 FAT32 (LBA)
/dev/mmcblk0p2     884865  950400   65536    2097152   83      Linux
/dev/mmcblk0p3     950401  974976   24576     786432   82      Linux swap / Solaris
/dev/mmcblk0p4          0       -       0          0    0      Empty
&lt;/pre&gt;

mounted as
&lt;pre&gt;
rootfs / rootfs defaults,errors=remount-ro,noatime 0 0
/dev/mmcblk0p1 /home/user/MyDocs vfat noauto,nodev,noexec,nosuid,noatime,nodiratime,utf8,uid=29999,shortname=mixed,dmask=000,fmask=0133,rodir 0 0
/dev/mmcblk0p2 /home ext3 rw,noatime,errors=continue,commit=1,data=writeback 0 0
/dev/mmcblk0p3 none swap sw 0 0
&lt;/pre&gt;

vfat cannot handle file attributes like being executable, as set by 
 chmod +x
thus, you can only run binaries and scripts if they are in root (227mb; physically, they are on a 256MB OneNAND chip) or in /home (2gb) and not in /home/user/MyDocs (28gb)! (Physically, the latter plus the swap partition reside in a 32GB EMMC, which is capable of [http://mobipre.com/n900-partitions-management-rootfs/ about a third] the reading speed of the OneNAND.)

what to do about that? you could [http://talk.maemo.org/showthread.php?t=35122&amp;page=6 repartition] the whole device. or just [http://talk.maemo.org/showpost.php?p=425224&amp;postcount=20 format your microsd card] as ext2 or ext3. problem with the last option is that it will not be automounted. you could, [http://talk.maemo.org/showpost.php?p=438325&amp;postcount=25 of course], [http://talk.maemo.org/showpost.php?p=438339&amp;postcount=27 mount it manually], or modify the etc init scripts to do it upon every reboot. if you go for manual mount, you might also want to restart tracker (see below), as it would not scan the sdcard otherwise.

== optification ==
Several apps in maemo [[Extras-devel|extra devel]] repository will install to rootfs, where you have only 227mb. Nice apps (and system components) don't behave like that, they install to /home/opt and are called &quot;optified&quot; when [http://www.nokiausers.net/forum/nokia-n900/34039-optifying-applications-necessity-if-you-have-devel-enabled.html having] [http://wiki.maemo.org/User:Jebba/Package_Building_HOWTO#Optify_.deb learned] to behave well like that, or are just [http://talk.maemo.org/showthread.php?p=565610 forced out] and merely symbolically linked to their original place.

== rootfs size problems ==
The filesystem rootfs, mounted in /, is a speciel partition of 227,8 mb containing some preinstalled programs, global configuration info and data. Some apps from &quot;maemo [[Extras-devel|extra devel]]&quot; will also install there. A notable example is Abiword, which, sadly being unoptified yet, [http://talk.maemo.org/showpost.php?p=568907&amp;postcount=32 currently] uses up 10mb on rootfs. You can check how much space is consumed totally by entering &quot;df -h&quot; in xTerminal (usually the first line of output). 

Even better, use storageuse, which shows a red circle and via &quot;Scan Packages&quot; function shows also which apps use what, where rootfs usage is in red. When you come close to 100%, a lot of [http://forums.internettablettalk.com/showthread.php?t=33362 mischief] can happen, e.g., you may get &quot;write error - write (28 no space left on device)&quot; when trying to access extras devel in Program Manager.

How to free space? When you reflash, rootfs will be reset also (of course). But you would rather try the methods suggested in [[Free up rootfs space]], e.g., having [[Root_access#rootsh|rootsh]] installed, in xTerminal:

 root
 apt-get clean
 apt-get autoclean

There is also a nice script by [[User:Tanner]] (see also [http://talk.maemo.org/showpost.php?p=429142&amp;postcount=6 another one], and a [http://sumoudou.org/%E7%9B%B8%E6%92%B2%E5%A4%96%EF%BC%9ARepartition%20the%20Nokia%20N900.html more radical] repartitioning method), which i have modified to include some more directories:

 #!/bin/sh
 # N900 script to safely free space on rootfs
 # (c) 2010 by Thomas Tanner &lt;tanner@maemory.com&gt;, modified by Caze (http://wiki.maemo.org/User:Caze)
 # licensed under GPLv3
 # move root stuff to /home
 dirs=&quot;usr/share/icons usr/share/nokia-maps usr/share/pixmaps usr/share/hildon-welcome usr/share/themes usr/share/fonts usr/share/locale usr/lib/locale var/lib/apt&quot;
 #optional: var/lib/dpkg
 if test -d /home/var/cache/apt; then
   # keep existing apt cache
   rm -rf /var/cache/apt
   ln -s /home/var/cache/apt /var/cache/apt
 else
   dirs=&quot;$dirs var/cache/apt&quot;
 fi
 (cd / &amp;&amp; du -sc $dirs)
 for d in $dirs; do
     test -L /$d &amp;&amp; continue
     echo moving /$d
     rm -rf /home/$d
     mkdir -p /home/$d
     cp -a /$d /home/$d/..
     rm -rf /$d
     ln -s /home/$d /$d
 done

i suggest you copy this to in some texteditor on your pc, save it, copy it to n900 connected via usb (don't save on fat partition on sd card but on ext3 partition somewhere else), disconnect, having installed rootsh, start xTerminal on n900, cd to where you saved the script,
 
 root
 chmod +x thisscript.sh
 ./thisscript.sh

== install further apps ==
in older firmware, you could put the Application Manager in a mode that supports &quot;Install from file&quot;, which is, for trivial reasons, called &quot;[[Red_Pill_mode|Red Pill]]&quot; mode. It is [http://my-maemo.com/faq/showquestion.php?faq=5&amp;fldAuto=6 activated] by selecting &quot;Application catalogues&quot; from the drop-down menu, tapping &quot;New&quot;, entering &quot;matrix&quot; as URL, tapping outside the focus window, selecting &quot;Red&quot;.

this does no more than
 dpkg -i thusandso.deb

but might be a bit faster when you just have no xterm open. note it does not check package dependencies, as opposed to
 apt-get install thusandso

== remote desktop ==
ssh, telnet, vnc (multiple alternatives) and rdesktop (for w2k/nt) work (among others, i suppose). also, logmein [http://community.logmein.com/logmein/board/message?board.id=30&amp;view=by_date_ascending&amp;message.id=776#M776 should].

== java ==
n900 comes with ThumbEE, a proprietary java optimizer (general JIT, not JVM-specific), a successor of Jazelle which came with N770, N800 and N810. You can have Sun [[Java]] SE (for applets, not J2ME, which is what mobile phone games etc in .jar files use) from Easy Debian. for J2ME over J2SE, use [http://www.microemu.org/maemo/ MicroEmulator]. You could also apt-get netbeans from debian/lenny. See also [http://talk.maemo.org/showthread.php?t=37405&amp;page=5], [http://talk.maemo.org/showthread.php?p=435335#post435335] and [http://talk.maemo.org/showthread.php?t=37405&amp;page=2].

== android ==
you should be able to install [https://sites.google.com/site/nitdroid/n900-port nitroid]. or wait for [http://www.youtube.com/watch?v=UNo6pn-dnSQ vmware on n900]?

== (older) mac emulation ==
basilisk II [http://forums.internettablettalk.com/showthread.php?p=507862 should work].

== amiga emulation ==
is [http://talk.maemo.org/showthread.php?t=5298&amp;page=7 work in progress].

== tracker ==
the media on your phone is automatically catalogued by a [http://projects.gnome.org/tracker/ tracker] daemon called trackerd. it is [http://linux.die.net/man/5/tracker.cfg  configured] by /home/user/.config/tracker/tracker.cfg . applications like the media player use the information tracker collects. you can change the paths that are searched by manually editing this cfg file, e.g. to include subfolders on your microsd card (mounted as /media/mmc1) or to exclude stuff you want to keep a bit more private. you could use e.g. vi or leafpad for the editing of this file or use tracker-cfg in extras-devel. to restart tracker:
 tracker-processes -r
 /usr/lib/tracker/trackerd &amp;

== shortcuts ==
there are several [[N900_shortcuts_and_gestures]]. note also, in the form of context - action - result:
* anywhere - double press power button - lock
* anywhere - ctrl+backspace - task switcher 
* menu/multitasing shortcut/icon - long press - back to desktop
* text input - double tap ctrl - hold upper case
* text input - double tap function key - hold numerics input
* text input - ctrl+shift+p - screenshot
* text input - ctrl + x/c/c - cut/copy/paste
* anywhere - turn phone - open phone (must be activated in phone menu: turning control)

== sms ==
you can send sms to [[SMS_Multiple_Contacts|multiple]] contacts.

== simple customizations ==
if you like, there are plenty of ways in [[Customizing Maemo]], such as:
* ringtones:  settings / profiles / ringing tone
* desktop shortcut to folder: go to file:/// in browser, ctrl+d, add desktop shortcut
* rearrange stuff in menu etc: you can [http://talk.maemo.org/showpost.php?p=442281&amp;postcount=5 change] /etc/xdg/menus/hildon.menu
* [http://wiki.maemo.org/Remapping_keyboard remap keyboard]
* play with [[Themes]]
* [http://talk.maemo.org/showpost.php?p=457128&amp;postcount=3 add a] [http://my-maemo.com/faq/showquestion.php?faq=5&amp;fldAuto=2 reboot button]

== update to PR 1.2 ==
first of all, you DID JUST BACKUP all your things on you n900, didn't you (using nokia content copier, e.g.)?! now, as was often the case, the nokia software update (nsu) will in lots of cases prove to be total crap. it will probably complain &quot;Nokia Software Updater has attempted to connect to the internet but has failed three times. This could be because of a poor-quality, slow or intermittent internet connection, or restrictions due to a firewall.&quot; actually, it is because of the programmers' incompetence. so help yourself. check your imei under settings / device information or below you battery. go to http://tablets-dev.nokia.com/nokia_N900.php and provide this number. then download a file like RX-51_2009SE_10.2010.19-1_PR_COMBINED_MR0_ARM.bin (this one is 187.721.717 bytes in size, but size differs for different localisations). while it downloads, find the place to then put it, probably C:\Documents and Settings\All Users\Application Data\Nokia\Nokia Service Layer\A\nsl_service_module_00001\vpls\www.dsut.online.nokia.com.oti.caresuite\Products\rx-51\ . of course, the path will differ if you don't have an english version of windows or installed it anywhere else than on c: . now you can restart nsu and test your luck, or rather other corrupt routines of nsu. for example, experiment with the right sequence of starting nsu / connecting cable / processing nsu's dialogs. for me, after several retries, involving removing the battery etc, it worked after first having connected with all those n900 devices auto-recognized (usb modem etc), then removing usb cable, then putting it back, not (!) selecting &quot;pc suite mode&quot; but not selecting any of both options, just clicking &quot;try again&quot;, after which it loaded a certain Nokia Service Layer A driver. you can realize that it actually does work when on your n900 there begins a green line on the bottom of the white NOKIA start screen, which will be finished after about 3min. oh, and you DID backup all your stuff, didn't you?!</text>
    </revision>
  </page>
  <page>
    <title>User:Cckwes</title>
    <id>5210</id>
    <revision>
      <id>48341</id>
      <timestamp>2012-06-12T04:56:36Z</timestamp>
      <contributor>
        <username>cckwes</username>
        <id>5320</id>
      </contributor>
      <comment>a brief introduction to myself</comment>
      <text xml:space="preserve">= Wesley Chong =

I'm currently a Mechanical Engineering undergraduate at University Science of Malaysia. I'm a part time programmer for websites and applications for Fremantle and Harmattan. [http://blog.linux4us.org This is the website] i use to blog my development progress as well as my finding in a number of linux distribution (Mageia, Fedora and etc)</text>
    </revision>
  </page>
  <page>
    <title>User:Chanda402</title>
    <id>4128</id>
    <revision>
      <id>44210</id>
      <timestamp>2011-06-27T13:58:01Z</timestamp>
      <contributor>
        <ip>91.224.160.146</ip>
      </contributor>
      <comment>YpfeBFzEq</comment>
      <text xml:space="preserve">comment3, &lt;a href=&quot;http://forums.mapletip.com/index.php?/user/101983-valiumcheap/&quot;&gt;ultram testimonies&lt;/a&gt;,  okh, &lt;a href=&quot;http://forums.mapletip.com/index.php?/user/101983-valiumcheap/&quot;&gt;head bleed valium&lt;/a&gt;,  &gt;:D, &lt;a href=&quot;http://forums.mapletip.com/index.php?/user/101983-valiumcheap/&quot;&gt;valium fda&lt;/a&gt;,  9057, &lt;a href=&quot;http://forums.mapletip.com/index.php?/user/101983-valiumcheap/&quot;&gt;damien hirst valium ebay&lt;/a&gt;,  lyr, &lt;a href=&quot;http://forums.mapletip.com/index.php?/user/101983-valiumcheap/&quot;&gt;does valium help with alchol withdrawals&lt;/a&gt;,  nwozv,</text>
    </revision>
  </page>
  <page>
    <title>User:Chomar</title>
    <id>4066</id>
    <revision>
      <id>39371</id>
      <timestamp>2010-10-05T09:20:24Z</timestamp>
      <contributor>
        <username>chomar</username>
        <id>2713</id>
      </contributor>
      <comment>/* tuning event.d */</comment>
      <text xml:space="preserve">Hi im ChoMar (yeah, maybe ill post my RL name later)&lt;br /&gt;
Im from Germany, therefor my English is a bit rough. &lt;br /&gt;
I'll try to contribute the Wiki anyway (as soon as i have a bit of time.) &lt;br /&gt;
Feel free to edit whatever I typed. (Language AND Content, of course)&lt;br /&gt;


== Maemo Tuning ==

=== Power Kernel ===
Installed [[Kernel_Power | Power Kernel]]
used ideal setting 500-950 Mhz

=== tuning event.d ===

added a little script to /etc/event.d with the following content

&lt;pre&gt;
script
description &quot;N900 tuning&quot;
author &quot;VA&quot;

console output

start on started rcS-late

script
       echo &quot;30&quot; &gt; /proc/sys/vm/swappiness
       echo &quot;0&quot; &gt; /proc/sys/vm/page-cluster
       echo &quot;1&quot; &gt; /proc/sys/vm/laptop_mode
       echo &quot;1&quot; &gt; /proc/sys/vm/oom_kill_allocating_task
       echo &quot;0&quot; &gt; /proc/sys/vm/dirty_expire_centisecs
       echo &quot;0&quot; &gt; /proc/sys/vm/dirty_writeback_centisecs
       echo &quot;60&quot; &gt; /proc/sys/vm/dirty_background_ratio
       echo &quot;95&quot; &gt; /proc/sys/vm/dirty_ratio
       echo &quot;0&quot; &gt; /proc/sys/net/ipv4/tcp_timestamps
       echo &quot;1&quot; &gt; /proc/sys/net/ipv4/tcp_no_metrics_save
end script

&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Clasificado</title>
    <id>4070</id>
    <revision>
      <id>34693</id>
      <timestamp>2010-05-22T19:25:54Z</timestamp>
      <contributor>
        <username>clasificado</username>
        <id>2720</id>
      </contributor>
      <text xml:space="preserve">===Random links:===

*[[Vpn]]
*[[User:Jebba]]
*[[Kernel_Power]]
*[http://talk.maemo.org/showthread.php?t=15742&amp;highlight=lvm encrypt partition diablo]
*[[Fremantle_Bluetooth_Keyboard_Layout]]</text>
    </revision>
  </page>
  <page>
    <title>User:Claudius</title>
    <id>1779</id>
    <revision>
      <id>12492</id>
      <timestamp>2009-04-12T22:31:57Z</timestamp>
      <contributor>
        <username>claudius</username>
        <id>843</id>
      </contributor>
      <comment>Initial setup</comment>
      <text xml:space="preserve">Interested in general localization optimization and german translation in particular. Actively translating several maemo projects and Skype for several platforms.

* Real-world: [http://nurfast.broadbox.de/ Claudius Henrichs]
* maemo.org: [http://maemo.org/profile/view/claudius/ claudius]
* Garage: [https://garage.maemo.org/users/claudius/ claudius]</text>
    </revision>
  </page>
  <page>
    <title>User:Cven</title>
    <id>924</id>
    <revision>
      <id>5452</id>
      <timestamp>2008-07-25T10:35:54Z</timestamp>
      <contributor>
        <username>cven</username>
        <id>234</id>
      </contributor>
      <comment>contact</comment>
      <text xml:space="preserve">=contact=
irc freenode #c-base</text>
    </revision>
  </page>
  <page>
    <title>User:Detronizator</title>
    <id>2438</id>
    <revision>
      <id>18421</id>
      <timestamp>2009-09-21T08:25:46Z</timestamp>
      <contributor>
        <username>detronizator</username>
        <id>1109</id>
      </contributor>
      <comment>/* Who */</comment>
      <text xml:space="preserve">= Who =
'''Ivan De Marino''' (aka ''Detro'', aka ''Detronizator'')&lt;br /&gt;
Software Engineer (Mobile and Web)&lt;br /&gt;
&lt;span style=&quot;color: rgb(205, 106, 0);&quot;&gt;'''France Telecom R&amp;D - Orange Labs UK'''&lt;/span&gt;&lt;br /&gt;
London

= Where =
* http://www.linkedin.com/in/ivandemarino
* http://www.detronizator.org/
* http://www.twitter.com/detronizator</text>
    </revision>
  </page>
  <page>
    <title>User:Dik</title>
    <id>674</id>
    <revision>
      <id>3810</id>
      <timestamp>2008-07-02T09:34:51Z</timestamp>
      <contributor>
        <ip>127.0.0.1</ip>
      </contributor>
      <text xml:space="preserve">* maemo.org: [http://maemo.org/profile/view/dik/ dik]
* Garage: [https://garage.maemo.org/users/dik/ dik]


* russian it phorum: [http://n8xx.com/ n8xx]
* russian it wiki: [http://wiki.internet-tablet.com/ wiki]
* blog: [http://internet-tablet.com/ internet-tablet.com]</text>
    </revision>
  </page>
  <page>
    <title>User:Dlmiles</title>
    <id>3137</id>
    <revision>
      <id>24037</id>
      <timestamp>2009-12-05T11:27:56Z</timestamp>
      <contributor>
        <username>dlmiles</username>
        <id>1554</id>
      </contributor>
      <comment>New page: ==== Random notes on N900 ====  How to open a browser window from another application by executing DBUS helper script:  &lt;code&gt;browser_dbuscmd.sh load_url &quot;http://foobar.com&quot;&lt;/code&gt;  Which ...</comment>
      <text xml:space="preserve">==== Random notes on N900 ====

How to open a browser window from another application by executing DBUS helper script:

&lt;code&gt;browser_dbuscmd.sh load_url &quot;http://foobar.com&quot;&lt;/code&gt;

Which is the similar to doing:

&lt;code&gt;dbus-send --session --dest=com.nokia.osso_browser /com/nokia/osso_browser/request com.nokia.osso_browser.load_url &quot;string:http://foobar.com&quot;&lt;/code&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Dneary</title>
    <id>130</id>
    <revision>
      <id>28416</id>
      <timestamp>2010-02-05T13:38:54Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>/* &quot;Edit help&quot; extension */</comment>
      <text xml:space="preserve">Hi, I'm Dave Neary, the maemo.org docsmaster. That means I'm at the service of the maemo.org community. My role is to help improve existing documentation, facilitate the community in situations where they need help getting infrastructure or information, and in general make myself useful.

Here I host some drafts for content which will go &quot;live&quot; later.

== Documenting maemo.org ==
A list of community processes that need better documentation:

* [[Maemo.org team/Updating maemo.org sites | How does the live website get updated from maemo2midgard SVN?]]
* Where does the information for the user profile page come from in the Midgard database?
* Which pages in maemo.org have custom templates associated, and where are they in maemo2midgard SVN?
* In general, what is the process for publishing/displaying a Midgard page?
* Autobuilder documentation
* extras-testing infrastructure documentation
* Web configuration (which directories can be touched, which cannot, and why)
* Servers and services, logins and roles

== &quot;Edit help&quot; extension ==

I created a very simple extension for Mediawiki to allow us to add a &quot;help getting started in the wiki&quot; text at the top of every editing page. Here are the instructions for installing it:

1. Add the following line to LocalSettings.php:
 require_once(&quot;$IP/extensions/EditHelp.php&quot;);
2. Put the following in a file in mediawiki's extensions directory, in a file called EditHelp.php (we use the page hook [http://www.mediawiki.org/wiki/Manual:Hooks/EditPage::showEditForm:initial editFormTextTop] to insert the text into the page):
&lt;pre&gt;
&lt;?php
if ( !defined( 'MEDIAWIKI' ) )
        die ();
 
$wgHooks['EditPage::showEditForm:initial'][] = 'editHelp';
 
function editHelp($editPage) {
        global $wgOut;
 
	$editPage-&gt;editFormTextTop .= $wgOut-&gt;parse( '{{Edit help}}' );
 
        return true;
}
&lt;/pre&gt;
3. Put the editing help instructions in a template called [[Template:Edit help]]</text>
    </revision>
  </page>
  <page>
    <title>User:Dneary/MaemoCompanies</title>
    <id>651</id>
    <revision>
      <id>4886</id>
      <timestamp>2008-07-19T21:28:16Z</timestamp>
      <contributor>
        <username>baloo</username>
        <id>128</id>
      </contributor>
      <minor/>
      <comment>/* Third Party Commercial Developers */</comment>
      <text xml:space="preserve">=From [[People]]=

==Third Party Commercial Developers==

;RealNetworks
:Developers of [[Rhapsody]]
;SIPphone
:Developers of [[Gizmo Project]]
;Skype
:Developers of the [[Skype]] client
;MP3tunes
:Developers of the [[MP3tunes]] application
;Wayfinder
:Developers of [[Wayfinder]] Navigator (and previously [[Navicore]])
;Opera
: Developers of the browser for the Nokia 770

= From [[Task:Maemo contributions]] =

=== Collaboration with upstream related companies ===
* Collabora
* Fluendo
* Igalia
* Imendio
* OpenedHand
* Openismus
** Andre Klapper
** Karsten Bräckelmann

Also worth mentioning
* Instituto Nokia de Tecnologia (INdT), non-profit.
* Nemein (Midgard CMS)


= Others not mentioned yet =
* Dave Neary
* Niels Breet
* Philip Van Hoof
* Kernel Concepts</text>
    </revision>
  </page>
  <page>
    <title>User:Dob</title>
    <id>1025</id>
    <revision>
      <id>5762</id>
      <timestamp>2008-07-27T17:08:18Z</timestamp>
      <contributor>
        <username>dob</username>
        <id>245</id>
      </contributor>
      <comment>New page: '''Doug Petkanics'''  I am one of the original developers at [http://frogmetrics.com/ Frogmetrics]. We're building a better way for businesses to gain feedback and insight from their custo...</comment>
      <text xml:space="preserve">'''Doug Petkanics'''

I am one of the original developers at [http://frogmetrics.com/ Frogmetrics]. We're building a better way for businesses to gain feedback and insight from their customers, and we're doing it on the Maemo platform.</text>
    </revision>
  </page>
  <page>
    <title>User:Dobi/Sandbox/Mer homepage</title>
    <id>1511</id>
    <revision>
      <id>10231</id>
      <timestamp>2009-01-24T01:35:49Z</timestamp>
      <contributor>
        <username>dobi</username>
        <id>512</id>
      </contributor>
      <text xml:space="preserve">__NOTOC__
&lt;div style=&quot;position: absolute; z-index: 0&quot;&gt;
&lt;imagemap&gt;Image:Mer-faded-background.png|631px
rect 0 0 0 0 [[Mer]]
desc none
&lt;/imagemap&gt;
&lt;div style=&quot;z-index: 3; position: absolute; top: 42px; left: 180px; color: #fff; font-style: italic; font-family: Georgia, serif; line-height: 1.5em; font-size: 1.8em; width: 360px&quot;&gt;An open, community-led, Linux distribution for mobile devices&lt;/div&gt;
&lt;/div&gt;

&lt;div style=&quot;margin-left: 18px; z-index: 4; margin-right: 4em&quot;&gt;

&lt;div style=&quot;position: relative; padding-top: 120px; margin-right: 10em; margin-bottom: 2em&quot;&gt;
== Goals ==
*Improving and developing parts of Maemo that are of interest to the Maemo community.
*Making it easier to port existing desktop applications by hildonizing and adjusting them to the tablet form factor.
*Encouraging third party experimentation and development.
*Supporting tablet hardware no longer receiving updated OS software by Nokia.
*Making Maemo a generic platform for all tablet devices, including non-Nokia ones.
*Focusing Maemo community efforts in platform-related areas
&lt;/div&gt;

&lt;div style=&quot;float: right; clear: both; width: 35%&quot;&gt;
== Latest activity ==
&lt;div style=&quot;font-size: 85%; line-height: 1.3em&quot;&gt;
From [http://jaiku.com/channel/mer #mer on Jaiku]:
&lt;rss title=&quot;off&quot; desc=&quot;off&quot; number=&quot;8&quot; time=&quot;3600&quot;&gt;http://pipes.yahoo.com/pipes/pipe.run?_id=qJEaF4Xp3RGPv3S1rLQIDg&amp;_render=rss&lt;/rss&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div style=&quot;float: left; clear: left; width: 60%; border-right: 1px solid #bbb; padding-right: 2em&quot;&gt;

== What next? ==
&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:Mer-button-about.png|255px
rect 0 0 255 106 [[Mer/About]]
desc none&lt;/imagemap&gt;&lt;/div&gt;
&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:Mer-button-download.png|255px
rect 0 0 255 106 [[Mer/Releases]]
desc none&lt;/imagemap&gt;&lt;/div&gt;
&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:Mer-button-people.png|255px
rect 0 0 255 106 [[Mer/People]]
desc none&lt;/imagemap&gt;&lt;/div&gt;
&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:Mer-button-development.png|255px
rect 0 0 255 106 [[Mer/Sprints]]
desc none&lt;/imagemap&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;div style=&quot;height: 60em&quot;&gt;&amp;nbsp;&lt;/div&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Dov</title>
    <id>3405</id>
    <revision>
      <id>27813</id>
      <timestamp>2010-01-31T08:48:08Z</timestamp>
      <contributor>
        <username>dov</username>
        <id>1508</id>
      </contributor>
      <comment>/* Ideas */</comment>
      <text xml:space="preserve">== About me ==

I'm a very experienced Gtk hacker who now is a pride owner of a N900.

== Ideas ==

=== QMod ===

I got the idea that perhaps it would be possible to simplify the input of European (and other) on the maemo keyboard by stealing one of the rarer characters of the US keyboard and making it into the a modifier key. My plan was to use the &quot;Q&quot; character as it is both rare and close to the other modifier keys. I would then use xkbcomp and turn it into the key Multi_key. To type the character q, the user would have to do &quot;qk&quot; or &quot;qK&quot;. Other combinations would be up to the user. E.g. I need to type occasional Swedish, but I don't want to use the Swedish layout. I could then use the following mapping:

 q[ - å
 q; - ä
 q- - ö

where the positions for [, ;, and - correspond to the positions of the corresponding characters in the Swedish layout.

The problem was that I couldn't get it to work in Xephyr. I did the following:

 xkbcomp $DISPLAY foo.xkb
 edit foo.xkb to make Q into a modifier
 xkbcomp foo.xkb $DISPLAY

But neither xterm nor vim that I downloaded would honor the multi key combinations. Q would just be a dead key.

On the other hand, if I ran any other program from the my fedora desktop and redirected the output to Xephyr, the multi key would work.

Thus I conclude that Maemo has been setup to disregard this key. :-(

=== Anti theft ===

A program that periodically would check a website for an indication that it has been stolen. If the stolen flag is turned on the N900 should go into stealth mode and transmit its GPS coordinates, pictures taken from the front camera, telephone number of sim, telephone numbers called, and anything else that may help in retrieving the phone to a remote web site.

=== Burgler alarm ===

During the night the phone would use the camera to do motion detection and if motion was detected start recording sound and/or call a phone number.

=== Offline Wikipedia ===

A system that:

* Allows viewing wikipedia (or any other MediaWiki?) for read only on the device without the redundant margins etc.
* Allows saving a page with images, but without history to device.
* Allows visiting a category and saving all referenced pages to device.
* Allows popping up a check list of pages referenced from a page that should be downloaded.
* Allows refreshing all saved pages.

== Programs in progress ==

Hebrew calendar

== Tutorials etc ==

=== Python desktop widget ===

I have rewritten the hello-world.py button so that it may be tested on a plain PyGtk system (e.g. Linux/X11 or Windows). All that is needed is:

* Make the entire contents of the widget a subclass of some other widget. E.g. a GtkLabel for widgets only displaying info or GtkButton for widgets that launch a dialog or other windows.

* Wrap all the hildon stuff in a python try/except and in the except clause launch a normal Gtk.Window and add the custom widget.</text>
    </revision>
  </page>
  <page>
    <title>User:Eccenux</title>
    <id>5293</id>
    <revision>
      <id>50568</id>
      <timestamp>2012-10-30T11:46:23Z</timestamp>
      <contributor>
        <username>eccenux</username>
        <id>5499</id>
      </contributor>
      <comment>New page: [http://talk.maemo.org/member.php?u=57154 Talk.Maemo.org profile]</comment>
      <text xml:space="preserve">[http://talk.maemo.org/member.php?u=57154 Talk.Maemo.org profile]</text>
    </revision>
  </page>
  <page>
    <title>User:Ecksun</title>
    <id>4329</id>
    <revision>
      <id>36612</id>
      <timestamp>2010-07-11T18:15:59Z</timestamp>
      <contributor>
        <username>ecksun</username>
        <id>1811</id>
      </contributor>
      <comment>Creation</comment>
      <text xml:space="preserve">{|
|Name
|Linus Wallgren
|-
|Email
|I use gmail with the name above :)
|-
|IRC
|xun at quakenet and linknet and ecksun at freenode
|-
|Homepage
|http://ecksun.com
|-
|Profile
|http://maemo.org/profile/view/ecksun/
|}

If you wonder anything feel free to contact me.</text>
    </revision>
  </page>
  <page>
    <title>User:Eipi</title>
    <id>2421</id>
    <revision>
      <id>18139</id>
      <timestamp>2009-09-14T13:02:32Z</timestamp>
      <contributor>
        <username>eipi</username>
        <id>150</id>
      </contributor>
      <comment>New page: http://maemo.org/profile/view/eipi/</comment>
      <text xml:space="preserve">http://maemo.org/profile/view/eipi/</text>
    </revision>
  </page>
  <page>
    <title>User:Elinor919</title>
    <id>4245</id>
    <revision>
      <id>35654</id>
      <timestamp>2010-06-11T16:12:41Z</timestamp>
      <contributor>
        <username>elinor919</username>
        <id>2972</id>
      </contributor>
      <comment>New page: List of Links&lt;br&gt; [http://www.mysolutionspot.com/pilotsmall1/ pilotsmall1]&lt;br&gt; [http://trac.symfony-project.org/wiki/akifbayram5?version=1 akifbayram5]&lt;br&gt; [http://share.triangle.com/node/...</comment>
      <text xml:space="preserve">List of Links&lt;br&gt;
[http://www.mysolutionspot.com/pilotsmall1/ pilotsmall1]&lt;br&gt;
[http://trac.symfony-project.org/wiki/akifbayram5?version=1 akifbayram5]&lt;br&gt;
[http://share.triangle.com/node/32464 glendahooper]&lt;br&gt;
[http://www.wordorigins.org/index.php/forums/member/11184/ rustyg8]&lt;br&gt;
[http://www.zazzle.com/magdastephens magdastephens]&lt;br&gt;
&lt;br&gt;
[http://www.st-andrew-umc.com/index.php/member/238/ whatsnews9no]
[http://www.americanpoems.com/members/lexesvyg/lexesvyg/ lexesvyg]
[http://z298-p255.itcilo.org/esd/tyep/Members/essellewohcds/essellewohcds essellewohcds]
[http://www.zazzle.com/jasonlowjygu jasonlowjygu]
[http://www.waterteck.com/index.php/member/1168/ mikefnk]
[http://fuckabees.com/?q=node/4007 capecoralmkg]
[http://www.fibrewales.com/?/member/1363/ sexystackeddl]
[http://huntsasquatch.com/pg/profile/jkbowmankj jkbowmankj]
[http://www.filminfocus.comeditblog?bid=skitsoyde skitsoyde]
[http://www.muri-belpstrasse.ch/member/1340/ archosea]
[http://www.shared-care.com/Members/deathproofuy/deathproofuy deathproofuy]
[http://www.newreleasetuesday.com/nrteam/sunlightlabsgn sunlightlabsgn]
[http://www.commissionedpastor.org/elgg/toilnaaoh/weblog/1029.html toilnaaoh]
[http://cs18.co.cc/node/4693 dadesidernd]
[http://www.novahotboard.com/member/1291/ mattcoxonlinegl]
[http://www.scmug.net/forum/scmug-presentation-ideas-and-needs/984488229 davidblogcomha]
[http://pointsa.co.za/node/32095 kedirianyu]
[http://americanwoodworker.com/blogs/aidenagjg/archive/2010/06/03/aidenagjg.aspx aidenagjg]
[http://www.london.umb.edu/index.php/member/1495/ tanalizaja]
[http://naskool.com/pg/pages/view/1696/ onesaintia]
[http://elgg.dsv.su.se/pg/pages/view/2374/ philbutlerhn]
[http://www.wilberforcetrail.co.uk/index.php?/forums/member/2846/ emhani]
[http://www.mymobilephone.in/blog/karinanl-3654.html karinanl]
[http://www.spokanejug.com/Members/bobointexasyj/bobointexasyj bobointexasyj]
[http://nowinters.com/elgg/pg/profile/universal12iy universal12iy]
[http://www.alaskafarmersmarkets.org/index.php/communicate/member/4566/ nippykj]
[http://www.tonelab.net/node/16841 aalaapys]
[http://www.flartoolkitdocs.org/node/3034 stuntdublje]
[http://www.attadalebombers.com.au/index.php/member/1137/ poulencgo]
[http://www.livinggenealogy.com/node/3116 sanemanhl]
[http://carrierambo.com/index.php/member/2199/ amy28713dn]
[http://fcducati.com/forums/general-discussion/gear/987029771 antorobertsondk]
[http://www.cybersecurityinstitute.com/index.php/member/1577/ sumptuousdigshy]
[http://infosecawareness.in/Members/moonkhanou/moonkhanou moonkhanou]
[http://www.nyorthocare.com/index.php/member/868/ gizmothe1sd]
[http://haveyouvisithere.com/?q=node/2341 johnneffkf]
[http://jastadd.org/jastadd-forums/general-board/688022661 eagleeyehj]
[http://pandagon.net/index.php/member/19217/ jimdozeoo]
[http://rollface.com/content/gigidawgdy gigidawgdy]
[http://www.taniec.org.pl/Members/watsoninced/watsoninced watsoninced]
[http://www.stablecomfort.com/index.php/forums/member/2535/ adaguyej]
[http://thedailysheep.com/Members/uncledavekl/uncledavekl/view uncledavekl]
[http://www.treatmentequipment.com/index.php/member/1986/ helenephotoha]
[http://www.tuxisalive.com/Members/geekoak/geekoak geekoak]
[http://tulanecf.org/index.php/member/915/ theobel]
[http://volunteerlouisiana.gov/member/4879/ nackersonoa]
[http://whatdoyouconsiderlethal.com/forum/member/3372/ joebloweuy]
[http://www.aitaa.ait.ac.th/Members/zplanyl/zplanyl.html zplanyl]
[http://fargoautomation.com/index.php/member/648/ not2needyil]
[http://www.bradrobertsondds.com/member/1468/ tod396ih]
[http://www.livetheatreleague.org/forum/member/13077/ brucebehsi]
[http://elgg.mysmt.net/pg/blog/htcoolge/read/4087/htcoolge htcoolge]
[http://sinotext.org/sinotext/pg/pages/view/1230/ extremusne]
[http://www.social-network-blog.com/elgg/pg/pages/view/4317/ jjmanoe]
[http://www.mountainviewtalk.com/pg/profile/dondavisoi dondavisoi]
[http://myownstylist.com/pg/profile/starshinedivayi starshinedivayi]
[http://www.nouvelleagora.com/pg/groups/205/deidrejj/ deidrejj]
[http://www.ravesquare.com/pg/pages/view/6240/ foxylanakl]
[http://www.grinme.com/pg/pages/view/1533/ duzinslj]
&lt;br&gt;
[http://mylifethinking.com/social/pg/pages/view/3380/ zoloft]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.buy-provera-medroxyprogesterone-acetate provera]&lt;br&gt;
[http://sitemap.wikispaces.com/ventricular_tachycardia_cardioversion tenormin]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2066/ reglan]&lt;br&gt;
[http://www.prempanicker.com/index.php?/forums/member/4178/ compazine]&lt;br&gt;
[http://whatdoyouconsiderlethal.com/forum/member/1430/ avodart]&lt;br&gt;
[http://elgg.khi.is/pharmacy/weblog/10179.html zestril]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.prescription-etodolac-ul-li etodolac]&lt;br&gt;
[http://www.alaskafarmersmarkets.org/index.php/communicate/member/801/ augmentin]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21682/order-pulmicort-collaborates pulmicort]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/3041/ hyzaar]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21870/order-ranitidine-believes ranitidine]&lt;br&gt;
[http://www.jpolitis.com/index.php/member/680/ strattera]&lt;br&gt;
[http://elgg.khi.is/pharmacy/weblog/10164.html calcium carbonate]&lt;br&gt;
[http://volunteerlouisiana.gov/member/940/ naprosyn]&lt;br&gt;
[http://socialcommerce.in/pg/profile/jordanig antabuse]&lt;br&gt;
[http://pandagon.net/index.php/member/9286/ cleocin]&lt;br&gt;
[http://carrierambo.com/index.php/member/939/ zestril]&lt;br&gt;
[http://www.cybersecurityinstitute.com/index.php/member/350/ zithromax]&lt;br&gt;
[http://carrierambo.com/index.php/member/851/ pyridium]&lt;br&gt;
[http://www.dews.ing.univaq.it/dews/Members/pharmacy/nausea-book meclizine]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1138/ uroxatral]&lt;br&gt;
[http://sitemap.wikispaces.com/prescription_keppra_lowest_prices keppra]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1373/ bactroban]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6643/ seroquel]&lt;br&gt;
[http://www.popsyndicate.com/member/4613/ aggrenox]&lt;br&gt;
[http://volunteerlouisiana.gov/member/577/ zithromax]&lt;br&gt;
[http://www.social-network-blog.com/elgg/pg/pages/view/1138/ plavix]&lt;br&gt;
[http://www.treatmentequipment.com/index.php/member/489/ zantac]&lt;br&gt;
[http://pandagon.net/index.php/member/9508/ avandia]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2480/ imuran]&lt;br&gt;
[http://sitemap.wikispaces.com/cluster_headache ibuprofen]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/3062/ detrol]&lt;br&gt;
[http://whatdoyouconsiderlethal.com/forum/member/1512/ vasotec]&lt;br&gt;
[http://sitemap.wikispaces.com/trigeminal_neuralgia_tic_douloureux topamax]&lt;br&gt;
[http://www.treatmentequipment.com/index.php/member/901/ adalat]&lt;br&gt;
[http://socialcommerce.in/pg/profile/natureboyis diamox]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.high-blood-pressure-hypertension zestril]&lt;br&gt;
[http://volunteerlouisiana.gov/member/1343/ lotensin]&lt;br&gt;
[http://sitemap.wikispaces.com/generic_tricor tricor]&lt;br&gt;
[http://aapdp.org/index.php/forum/forum/member/1510/ viagra]&lt;br&gt;
[http://www.treatmentequipment.com/index.php/member/173/ biaxin]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1244/ atacand]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6647/ risperdal]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/2875/ altace]&lt;br&gt;
[http://elgg.khi.is/pharmacy/weblog/10107.html avelox]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6316/ robaxin]&lt;br&gt;
[http://community.brandrepublic.com/members/2680290.aspx risperdal]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21705/generic-tetracycline-symptoms-of tetracycline]&lt;br&gt;
[http://sitemap.wikispaces.com/prevention_of_osteoporosis_bone_mineral_density actonel]&lt;br&gt;
[http://politicalzen.com/node/822/ calan]&lt;br&gt;
[http://aapdp.org/index.php/forum/forum/member/1164/ propecia]&lt;br&gt;
[http://myownstylist.com/pg/profile/scarlett426hn cialis]&lt;br&gt;
[http://elgg.khi.is/pharmacy/weblog/10137.html glucophage]&lt;br&gt;
[http://mylifethinking.com/social/pg/pages/view/2996/ zyprexa]&lt;br&gt;
[http://www.alaskafarmersmarkets.org/index.php/communicate/member/1048/ pepcid]&lt;br&gt;
[http://socialcommerce.in/pg/profile/blackacereturnoh minocycline]&lt;br&gt;
[http://www.popsyndicate.com/member/4561/ singulair]&lt;br&gt;
[http://www.popsyndicate.com/member/4508/ bystolic]&lt;br&gt;
[http://whatdoyouconsiderlethal.com/forum/member/1395/ tamiflu]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/22076/online-adalat adalat]&lt;br&gt;
[http://www.popsyndicate.com/member/4518/ zantac]&lt;br&gt;
[http://socialcommerce.in/pg/profile/shawnblancnu voltaren]&lt;br&gt;
[http://sitemap.wikispaces.com/roe_v_wade cytotec]&lt;br&gt;
[http://community.brandrepublic.com/members/2680174.aspx flagyl]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.generic-skelaxin skelaxin]&lt;br&gt;
[http://sitemap.wikispaces.com/multiple_sclerosis_erectile_dysfunction kamagra]&lt;br&gt;
[http://myownstylist.com/pg/profile/mickoleonyl lasix]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/3249/ depakote]&lt;br&gt;
[http://politicalzen.com/node/627/ aciphex]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.buy-lipitor-online lipitor]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2450/ calan]&lt;br&gt;
[http://sitemap.wikispaces.com/relenza_swine_flu tamiflu]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1566/ cardizem]&lt;br&gt;
[http://www.alaskafarmersmarkets.org/index.php/communicate/member/968/ coreg]&lt;br&gt;
[http://www.social-network-blog.com/elgg/pg/pages/view/1062/ citalopram]&lt;br&gt;
[http://www.popsyndicate.com/member/4453/ zithromax]&lt;br&gt;
[http://carrierambo.com/index.php/member/148/ tylenol]&lt;br&gt;
[http://politicalzen.com/node/622/ altace]&lt;br&gt;
[http://politicalzen.com/node/644/ coumadin]&lt;br&gt;
[http://thedailysheep.com/Members/pharmacy/nausea-after-eating/view atarax]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21887/order-zocor zocor]&lt;br&gt;
[http://www.jpolitis.com/index.php/member/1343/ urso]&lt;br&gt;
[http://sitemap.wikispaces.com/order_buy_generic_clarinex clarinex]&lt;br&gt;
[http://socialcommerce.in/pg/profile/watsonincgh singulair]&lt;br&gt;
[http://whatdoyouconsiderlethal.com/forum/member/1471/ periactin]&lt;br&gt;
[http://aapdp.org/index.php/forum/forum/member/846/ celexa]&lt;br&gt;
[http://www.popsyndicate.com/member/4534/ methotrexate]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.generic-famvir famvir]&lt;br&gt;
[http://mylifethinking.com/social/pg/pages/view/2932/ zyrtec]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2234/ buspar]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21837/online-hydrochlorothiazide-order hydrochlorothiazide]&lt;br&gt;
[http://politicalzen.com/node/499/ xeloda]&lt;br&gt;
[http://politicalzen.com/node/470/ gemfibrozil]&lt;br&gt;
[http://www.treatmentequipment.com/index.php/member/269/ celexa]&lt;br&gt;
[http://www.alaskafarmersmarkets.org/index.php/communicate/member/1475/ hyzaar]&lt;br&gt;
[http://volunteerlouisiana.gov/member/749/ cardizem]&lt;br&gt;
[http://myownstylist.com/pg/profile/firehawkzau baclofen]&lt;br&gt;
[http://www.treatmentequipment.com/index.php/member/899/ prandin]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/3145/ cellcept]&lt;br&gt;
[http://www.alaskafarmersmarkets.org/index.php/communicate/member/1217/ alli]&lt;br&gt;
[http://myownstylist.com/pg/profile/lizavetagi mircette]&lt;br&gt;
[http://www.prempanicker.com/index.php?/forums/member/3808/ pulmicort]&lt;br&gt;
[http://carrierambo.com/index.php/member/914/ mircette]&lt;br&gt;
[http://socialcommerce.in/pg/profile/ronideutchsd erythromycin]&lt;br&gt;
[http://mylifethinking.com/social/pg/pages/view/2944/ decadron]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.prescription-clomid-clomiphene-citrate clomid]&lt;br&gt;
[http://sitemap.wikispaces.com/anti_inflammatory_pain tylenol]&lt;br&gt;
[http://www.dews.ing.univaq.it/dews/Members/pharmacy/small-intestine-intubation-acute-diseases reglan]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/3159/ benadryl]&lt;br&gt;
[http://carrierambo.com/index.php/member/675/ strattera]&lt;br&gt;
[http://whatdoyouconsiderlethal.com/forum/member/834/ lexapro]&lt;br&gt;
[http://www.cybersecurityinstitute.com/index.php/member/1085/ floxin]&lt;br&gt;
[http://community.brandrepublic.com/members/2680214.aspx lasix]&lt;br&gt;
[http://www.cybersecurityinstitute.com/index.php/member/937/ claritin]&lt;br&gt;
[http://myownstylist.com/pg/profile/pepetideofe topamax]&lt;br&gt;
[http://www.treatmentequipment.com/index.php/member/346/ lasix]&lt;br&gt;
[http://www.social-network-blog.com/elgg/pg/pages/view/1196/ coumadin]&lt;br&gt;
[http://politicalzen.com/node/873/ lipitor]&lt;br&gt;
[http://myownstylist.com/pg/profile/crespiai calan]&lt;br&gt;
[http://pandagon.net/index.php/member/9328/ cialis]&lt;br&gt;
[http://myownstylist.com/pg/profile/ownagesi lotensin]&lt;br&gt;
[http://myownstylist.com/pg/profile/nathanlaanel keflex]&lt;br&gt;
[http://myownstylist.com/pg/profile/monteggi lipitor]&lt;br&gt;
[http://politicalzen.com/node/619/ astelin]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1187/ remeron]&lt;br&gt;
[http://pandagon.net/index.php/member/9283/ macrobid]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1607/ imodium]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6931/ glucophage]&lt;br&gt;
[http://politicalzen.com/node/620/ skelaxin]&lt;br&gt;
[http://volunteerlouisiana.gov/member/1182/ synthroid]&lt;br&gt;
[http://myownstylist.com/pg/profile/pimpsalladoj kamagra]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.buy-crestor-ldl-cholesterol crestor]&lt;br&gt;
[http://sitemap.wikispaces.com/androgenetic_alopecia_male_pattern propecia]&lt;br&gt;
[http://www.treatmentequipment.com/index.php/member/716/ allegra]&lt;br&gt;
[http://mylifethinking.com/social/pg/pages/view/3185/ prednisone]&lt;br&gt;
[http://mylifethinking.com/social/pg/pages/view/3363/ motrin]&lt;br&gt;
[http://www.jpolitis.com/index.php/member/661/ tenormin]&lt;br&gt;
[http://thedailysheep.com/Members/pharmacy/obesity-drug-treatment/view hoodia]&lt;br&gt;
[http://socialcommerce.in/pg/profile/uncogitoui inderal]&lt;br&gt;
[http://volunteerlouisiana.gov/member/1120/ requip]&lt;br&gt;
[http://myownstylist.com/pg/profile/badgergravlinghu bactroban]&lt;br&gt;
[http://socialcommerce.in/pg/profile/amazingandrexdl prometrium]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21730/buy-calcium calcium carbonate]&lt;br&gt;
[http://sitemap.wikispaces.com/buy_generic_cozaar cozaar]&lt;br&gt;
[http://elgg.khi.is/pharmacy/weblog/9816.html accutane]&lt;br&gt;
[http://myownstylist.com/pg/profile/somnambulatorad echinacea]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/22081/online-xenical-orlistat xenical]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.order-buy-levitra levitra]&lt;br&gt;
[http://socialcommerce.in/pg/profile/marengond zocor]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/3400/ tizanidine]&lt;br&gt;
[http://www.cybersecurityinstitute.com/index.php/member/660/ clonidine]&lt;br&gt;
[http://www.dews.ing.univaq.it/dews/Members/pharmacy/tetanus-treatment-clostridium-tetani thorazine]&lt;br&gt;
[http://politicalzen.com/node/819/ cardizem]&lt;br&gt;
[http://www.popsyndicate.com/member/4478/ citalopram]&lt;br&gt;
[http://www.jpolitis.com/index.php/member/1419/ atrovent]&lt;br&gt;
[http://www.paulpottsofficial.com/gb/forums/member/108834/ aleve]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/1973/ pulmicort]&lt;br&gt;
[http://carrierambo.com/index.php/member/933/ cleocin]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1176/ singulair]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1104/ zantac]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.heart-failure-blood vasotec]&lt;br&gt;
[http://www.popsyndicate.com/member/4565/ benadryl]&lt;br&gt;
[http://thedailysheep.com/Members/pharmacy/endometriosis/view metformin]&lt;br&gt;
[http://sitemap.wikispaces.com/lisinopril_without_prescription lisinopril]&lt;br&gt;
[http://pandagon.net/index.php/member/9379/ uroxatral]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/2620/ revatio]&lt;br&gt;
[http://www.popsyndicate.com/member/4606/ pyridium]&lt;br&gt;
[http://sitemap.wikispaces.com/high_cholesterol_treatment vytorin]&lt;br&gt;
[http://aapdp.org/index.php/forum/forum/member/1438/ avalide]&lt;br&gt;
[http://www.cybersecurityinstitute.com/index.php/member/371/ biaxin]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2503/ rogaine]&lt;br&gt;
[http://pandagon.net/index.php/member/9565/ detrol]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1461/ prednisolone]&lt;br&gt;
[http://elgg.khi.is/pharmacy/weblog/10058.html aricept]&lt;br&gt;
[http://pandagon.net/index.php/member/9367/ glucophage]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6422/ flonase]&lt;br&gt;
[http://sitemap.wikispaces.com/generic_famvir_genital famvir]&lt;br&gt;
[http://pandagon.net/index.php/member/9297/ zetia]&lt;br&gt;
[http://myownstylist.com/pg/profile/cliffosakajapanej strattera]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2325/ detrol]&lt;br&gt;
[http://whatdoyouconsiderlethal.com/forum/member/1379/ asacol]&lt;br&gt;
[http://www.paulpottsofficial.com/gb/forums/member/108468/ cialis]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21923/generic-cheap-naprosyn naprosyn]&lt;br&gt;
[http://elgg.khi.is/pharmacy/weblog/10162.html gemfibrozil]&lt;br&gt;
[http://aapdp.org/index.php/forum/forum/member/1449/ crestor]&lt;br&gt;
[http://volunteerlouisiana.gov/member/699/ fluoxetine]&lt;br&gt;
[http://thedailysheep.com/Members/pharmacy/obesity-treatment-weight-loss/view wellbutrin]&lt;br&gt;
[http://volunteerlouisiana.gov/member/547/ tylenol]&lt;br&gt;
[http://sitemap.wikispaces.com/cheap_claritin_buy claritin]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1599/ amantadine]&lt;br&gt;
[http://elgg.khi.is/pharmacy/weblog/9230.html strattera]&lt;br&gt;
[http://volunteerlouisiana.gov/member/1332/ floxin]&lt;br&gt;
[http://pandagon.net/index.php/member/9396/ strattera]&lt;br&gt;
[http://www.treatmentequipment.com/index.php/member/372/ diovan]&lt;br&gt;
[http://www.alaskafarmersmarkets.org/index.php/communicate/member/1556/ calan]&lt;br&gt;
[http://www.jpolitis.com/index.php/member/832/ zocor]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1219/ keppra]&lt;br&gt;
[http://www.jpolitis.com/index.php/member/1452/ sinemet]&lt;br&gt;
[http://www.treatmentequipment.com/index.php/member/195/ tetracycline]&lt;br&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Emesem</title>
    <id>3343</id>
    <revision>
      <id>44686</id>
      <timestamp>2011-07-28T19:35:21Z</timestamp>
      <contributor>
        <username>emesem</username>
        <id>1649</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">[http://sites.google.com/site/markusscharnowski/ My Homepage]

[http://sites.google.com/site/oeffnungszeitenwiki/ Öffnungszeiten wiki]

= My maemo projects =

== Push-It ==

* [http://sites.google.com/site/markusscharnowski/n/pushit Push-It Website]
* [http://code.google.com/p/push-it/ Push-It Project Webiste]
* [http://maemo.org/packages/view/push-it/ Push-It packages from maemo.org]
* [http://talk.maemo.org/showthread.php?t=59134 Announce in talk.maemo.org]

=Quick links=

==Bugzilla==

  https://bugs.maemo.org/show_bug.cgi?id=6615#c119 solution for wlan battery drain bug
  http://bugreports.qt.nokia.com/secure/Dashboard.jspa bugs for nokia qt sdk - the link is to hard to find -.-

==Talk==
  http://talk.maemo.org/showthread.php?t=37354 howto import SMS from other Nokia devices (with the help of csv files)
  http://talk.maemo.org/showthread.php?p=433889 battery level information for conky
  http://talk.maemo.org/showthread.php?t=35122 Repartioning thread
  http://talk.maemo.org/showthread.php?t=37808 Resetting lock code
  http://talk.maemo.org/showthread.php?p=518099#post518099 Emergency sheel at boot
  http://talk.maemo.org/showthread.php?p=512772#post512772 automounting ext3 formated microSD card on boot
  http://talk.maemo.org/showthread.php?p=504854#post504854 vnc setup outside off the home network

==Wiki==
  http://wiki.maemo.org/Installing_applications
  http://wiki.maemo.org/N900_Accessories  Nokia CP-321 vs. Raedan Blackberry &amp; Basil 
  http://wiki.maemo.org/N900_USB_networking
  http://wiki.maemo.org/User:Rlinfati#Jave_SE_and_Java_ME
  http://wiki.maemo.org/User:Jebba
  http://wiki.maemo.org/User:Ruskie
  http://repository.maemo.org/
  http://wiki.maemo.org/N900_Shortcuts_and_Gestures
  http://wiki.maemo.org/Evopedia
  http://wiki.maemo.org/Category:Power_users
  http://wiki.maemo.org/Repartitioning_the_flash

==Ovi maps offline==
  http://talk.maemo.org/showpost.php?p=428531&amp;postcount=20
  http://handphone-solution.blogspot.com/2009/07/direct-download-for-ovi-maps-30-without.html
  http://www.ovi.com/services/support/subpage?id=services_support_maps_faqs
  http://talk.maemo.org/showthread.php?p=447608 not used, but seems ok or at least it could help ;)

==Others==
  http://thehandheldblog.com/2010/07/27/how-to-easily-overclock-your-n900-in-under-two-minutes/
  http://talk.maemo.org/showpost.php?p=595582&amp;postcount=774

=Read first=

''' These are my personal notes - nothing comes with warranty! Use at your own risk'''

=My N900 setup=

==Reparitioning==

'''THIS CAN MAKE IT A BRICK SO BE PREPARED TO RESTORE FROM FLASHER OR ANY OTHER WAY YOU CAN THINK OF
'''


What I did to get a 50/50 sharing of memory and  /dev/mmcblk0p2 still be ext3. '''Be extra careful because I've never made it to get it done with one shot''' (after I had it successfully set up, I have never done it again ;)). So it is more a guideline than a &quot;how to&quot;.

Minor benefit of this setup is that memory is equally shared between ext3 and vfat and that vfat and ext3 are still on the same partition. Other reparitioning guides swap them, then you will need to edit some scripts for usb exporting the discs - which is easy but I didn't want that.

# do full backup on desktop computer with rsync. For an example see  [[User:Jebba/Backups]]
# flash eMMC. See [[Updating_the_firmware | Updating tablet firmware]] and [[User:Jebba/Flash]]
# flash device. See [[Updating_the_firmware | Updating tablet firmware]] and [[User:Jebba/Flash]]
# install rootsh

  cp -a MyDocs/ /media/mmc1/tmp
  root
  umount /home/user/MyDocs
  sfdisk -d &gt; sf.org
  cp sf.org sf.1
  vi sf.1 # set 1st partition to 83 and size to 30412800
  sfdisk --force /dev/mmcblk0 &lt; sf.1
  mkfs.ext3 /dev/mmcblk0p1
  mount /dev/mmcblk0p1 /mnt
  cp -a /home/* /mnt
  umount /mnt
  reboot (maybe flashing required)
  sfdisk -d &gt; sf.2
  vi sf.2 # resize 2nd partition to 30412800 and set start to 30412864
  sfdisk --force /dev/mmcblk0 &lt; sf.2
  mkfs.ext3 /dev/mmcblk0p2
  mount /dev/mmcblk0p2 /mnt
  cp -a /home/* /mnt/
  umount /mnt
  umount -fl /home
  mount /dev/mmcblk0p2 /home
  sfdisk -d &gt; sf.3
  vi sf.3 # set partition 1 to type c
  sfdisk --force /dev/mmcblk0 &lt; sf.3
  reboot (maybe flashing required)
  mkfs.vfat -F 32 /dev/mmcblk0p1
  mount /dev/mmcblk0p1 /home/user/MyDocs
  cp -a /media/mmc1/tmp/MyDocs/* /home/user/MyDocs
  reboot

==Make space on rootfs==
cat cleanRootfs.sh

  #Create folder in /opt for /usr/share
  mkdir -p /opt/usr/share
  #enter in /usr folder
  cd /usr/ 
  #cycle. FILE will have different value depend from step 
  for FILE in games include local src var
  do
    #if it is no symlink
    if [ -h $FILE ]
    then 
      echo &quot;Omitting $FILE because it is a symbolic link&quot;
    else
      #move folder (games include local src var) to /opt/usr
      echo &quot;Moving $FILE&quot;
      mv $FILE /opt/usr/
      #create soft link for moved folders
      ln -s /opt/usr/$FILE /usr/
    fi
  done
  #end of cycle
  
  mkdir -p /opt/var/cache
  cd /var/cache/
  for FILE in apt
  do
    if [ -h $FILE ]
    then 
      echo &quot;Omitting $FILE because it is a symbolic link&quot;
    else
      echo &quot;Moving $FILE&quot;
      mv $FILE /opt/var/cache/
      ln -s /opt/var/cache/$FILE /var/cache/
    fi
  done
  
  cd /usr/share/
  for FILE in fonts icons locale mime nokia-maps pixmaps sounds themes tutorial-applet zoneinfo
  do    
    if [ -h $FILE ]
    then
      echo &quot;Omitting $FILE because it is a symbolic link&quot;
    else
      echo &quot;Moving $FILE&quot;
      mv $FILE /opt/usr/share/
      ln -s /opt/usr/share/$FILE /usr/share/
    fi
  done
  
  exit 0

== Remove boot video ==
  vi /etc/hildon-welcome.d/default.conf
Put and # at the beginning of the second line

== Customize media tracker ==
  vi /home/user/.config/tracker/tracker.cfg
  /home/user/.config/tracker/tracker.cfg #restarting tracker afterwards
  tracker-processes -r #or even
  tracker-processes --hard-reset
E.g. I disabled /media/mmc1 tracking.

==Customized program list==
Source: http://talk.maemo.org/showthread.php?t=37874&amp;highlight=hildon.menu

You can add folders an rearrange the icons application launcher by editing the file
'''/etc/xdg/menus/hildon.menu''' or '''/home/user/.config/menus/hildon.menu''' for newer versions of maemo.
The &lt;Filename&gt;'s in the Include section set the icons to display, so you can rearrange them or remove the ones you don't want. Adding more Menu sections will add folders (the one there represents the More..). Replace the OnlyUnallocated/ and All/ with a list of filenames for the apps you want in the folder (see the files in''' /usr/share/applications/hildon''' ).

Icons can be found under '''/usr/share/icons/hicolor/48x48/hildon/'''.

== Customized power button menu ==
  vi /etc/systemui/systemui.xml
Search for e.g. reboot and enable the reboot entry, by setting the comments to a different place.

=Not optified?=
Some programs that I think, that could not be optified (df checking).
  ogg support - maybe okay ^^
  libqt - maybe okay ^^
  fbreader
  qalculate gtk version

=Scribble=
  cat /var/lib/dsme/boot_count
  You tried deleting everything in /var/cache/apt/archives/ yet ?
  apt-get autoremove

==Keepassx database issue==
You can give the database filename as the command line argument. For example, if you want it to open the file /home/user/MyDocs/Database.kdb automatically, you can do that by changing the Exec line in /usr/share/applications/hildon/keepassx.desktop to

  Exec=keepassx /home/user/MyDocs/Database.kdb

=Tracker=

Tracker is the process that tracks all media librarys of maemo.

  tracker-processes -r #will reset the tracker databases, useful when changing the tracked directories

=maemo development=

==Building a package for maemo==

Currently I only collect links. Maybe when I'm more experienced in building a package I write a guide - currently I'm happy to get it somehow to work.

  http://wiki.maemo.org/Documentation/Maemo5_Final_Installation follow x86-64 and then x64-32 instruction (adding nokia repository for nokia binaries)
  http://wiki.maemo.org/Scratchbox_repositories Add maemo-extras-devel repository
  http://wiki.maemo.org/Packaging_a_Qt_application
  http://wiki.maemo.org/User:Jebba/Package_Building_HOWTO

=Speed up the N900=

==CPU speed/power consumption==

  http://thehandheldblog.com/2010/07/27/how-to-easily-overclock-your-n900-in-under-two-minutes/
  http://talk.maemo.org/showpost.php?p=595582&amp;postcount=774


  sudo gainroot
  kernel-config load ideal
  kernel-config limits 500 1150
  kernel-config save ideal500-1150
  kernel-config default ideal500-1150 #make it default on power on

==Swapiness==

  echo 30 &gt; /proc/sys/vm/swappiness

  # /etc/event.d/rcS-late-swappiness fix
  start on started rcS-late
  script
         echo 30 &gt; /proc/sys/vm/swappiness
  end script

  http://talk.maemo.org/showpost.php?p=806769&amp;postcount=34
  http://talk.maemo.org/showthread.php?t=48966&amp;highlight=swappiness

==Performance parameters==

Source http://talk.maemo.org/showthread.php?p=948572#post948572

===Get the defaults===
  echo -n &quot;#dirty_ratio: &quot; ; cat /proc/sys/vm/dirty_ratio
  #dirty_ratio: 40
  echo -n &quot;#dirty_background_ratio: &quot; ; cat /proc/sys/vm/dirty_background_ratio
  #dirty_background_ratio: 10
  echo -n &quot;#dirty_writeback_centisecs: &quot; ; cat /proc/sys/vm/dirty_writeback_centisecs 
  #dirty_writeback_centisecs: 500
  echo -n &quot;#dirty_expire_centisecs: &quot; ; cat /proc/sys/vm/dirty_expire_centisecs 
  #dirty_expire_centisecs: 500
  echo -n &quot;#min_free_kbytes: &quot; ; cat /proc/sys/vm/min_free_kbytes 
  #min_free_kbytes: 2039
  echo -n &quot;#swappiness: &quot; ; cat /proc/sys/vm/swappiness 
  #swappiness: 30
  echo -n &quot;#vfs_cache_pressure: &quot; ; cat /proc/sys/vm/vfs_cache_pressure 
  #vfs_cache_pressure: 100
  echo -n &quot;#onboard_nr_requests: &quot; ; cat /sys/block/mmcblk0/queue/nr_requests
  #onboard_nr_requests: 128
  echo -n &quot;#sd_nr_requests: &quot; ; cat /sys/block/mmcblk1/queue/nr_requests
  #sd_nr_requests: 128
  
===Change that stuff===

    echo 3 &gt; /proc/sys/vm/dirty_ratio
    echo 3 &gt; /proc/sys/vm/dirty_background_ratio
    echo 100 &gt; /proc/sys/vm/dirty_writeback_centisecs 
    echo 100 &gt; /proc/sys/vm/dirty_expire_centisecs 
    echo 4096 &gt; /proc/sys/vm/min_free_kbytes 
    echo 50 &gt; /proc/sys/vm/swappiness 
    echo 200 &gt; /proc/sys/vm/vfs_cache_pressure 
    echo 8 &gt; /proc/sys/vm/page-cluster
    echo 4 &gt; /sys/block/mmcblk0/queue/nr_requests
    echo 4 &gt; /sys/block/mmcblk1/queue/nr_requests</text>
    </revision>
  </page>
  <page>
    <title>User:Epage</title>
    <id>1943</id>
    <revision>
      <id>44320</id>
      <timestamp>2011-07-02T01:20:18Z</timestamp>
      <contributor>
        <ip>99.62.38.62</ip>
      </contributor>
      <comment>Switching over to MeeGo</comment>
      <text xml:space="preserve">See my [http://wiki.meego.com/User:Epage MeeGo Profile].</text>
    </revision>
  </page>
  <page>
    <title>User:Epage/Branding</title>
    <id>2221</id>
    <revision>
      <id>15678</id>
      <timestamp>2009-07-15T14:32:23Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <text xml:space="preserve">My focus would be on getting basic branding done, updating mer-cpa-about to use it, and then writing mer-cpa-hwbuttons to take advantage of device-branding

Structure
* Seperate settings from branding
** Unlike Ubuntu
** Allows multiple brandings in the system, settable through /etc/alternatives
*** Makes testing easier
* Packages Types
** distribution-branding
*** File with name and version
*** Images with light/dark, big/small, multiple resolution logos
** device-branding
*** File with vendor, model
*** Images with vendor logo
*** Images with model logo, if applicable
*** Images with model rendering
*** File that maps keycodes to names or images of the HW buttons
** distribution-settings
*** Default plugins choices, like HIM
** device-settings
*** Default setxkbd settings for HW keyboard
*** Default for if softkeyboard launches
*** Default xmodmap settings for HW Buttons
*** first-boot.d behavior, like load blobs from Maemo</text>
    </revision>
  </page>
  <page>
    <title>User:Epage/Lock Screen</title>
    <id>2220</id>
    <revision>
      <id>15671</id>
      <timestamp>2009-07-15T12:17:30Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <comment>Initial ideas</comment>
      <text xml:space="preserve">Android Style Lock Screen

Multiple taps or drags
* Allowing more passwords than what android offers
* Allows it to be used as a numeric pad, to draw multiple shapes (like instead of just M, doing M E R), or both 

dot-grid behavior
* As each dot is selected, highlight and then dim with age
* If user dragged to the dot, highlight the line to it and dim with age

Settings
* Allow use of system password rather than dot-grid
* Blank, arabic numerals, roman numerals, dots
* Telephone or keyboard style (if numbering)
** If they swap it, does it swap their password?
* Single stroke password or multi-stroke
** Single stroke allows quick unlock like android, upon successful completion, unlock without any other buttons pressed

Unlock Dialog
* dot-grid
* Ok/Clear (if multi-stroke set)

Settings Dialog
* Allow replay of password</text>
    </revision>
  </page>
  <page>
    <title>User:Etrunko</title>
    <id>1158</id>
    <revision>
      <id>6810</id>
      <timestamp>2008-08-25T20:17:34Z</timestamp>
      <contributor>
        <username>etrunko</username>
        <id>193</id>
      </contributor>
      <comment>New page: [http://maemo.org/profile/view/etrunko.html Eduardo Lima]  [http://openbossa.org Openbossa Labs] - INdT</comment>
      <text xml:space="preserve">[http://maemo.org/profile/view/etrunko.html Eduardo Lima]

[http://openbossa.org Openbossa Labs] - INdT</text>
    </revision>
  </page>
  <page>
    <title>User:Ewheelerinc</title>
    <id>4412</id>
    <revision>
      <id>37957</id>
      <timestamp>2010-08-20T03:15:19Z</timestamp>
      <contributor>
        <username>ewheelerinc</username>
        <id>3289</id>
      </contributor>
      <comment>New page: = Eric Wheeler =  Eric Wheeler is a Linux consultant and security professional available for hire at [http://www.GlobalLinuxSecurity.com http://www.GlobalLinuxSecurity.com].  He has 14 yea...</comment>
      <text xml:space="preserve">= Eric Wheeler =

Eric Wheeler is a Linux consultant and security professional available for hire at [http://www.GlobalLinuxSecurity.com http://www.GlobalLinuxSecurity.com].  He has 14 years of experience in Linux since 1996 with a great breadth of knowledge.  Eric is currently working on a PhD in Computer Science at Portland  State University.  

== Other Projects ==

Eric presently holds the office of President at [http://www.TechSupplyShop.com Sustainable Systems Inc dba TechSupplyShop.com] and [http://www.GlobalLinuxSecurity.com/ eWheeler Inc dba Global Linux Security]</text>
    </revision>
  </page>
  <page>
    <title>User:Felipebzr</title>
    <id>3386</id>
    <revision>
      <id>26442</id>
      <timestamp>2010-01-13T10:37:08Z</timestamp>
      <contributor>
        <username>felipebzr</username>
        <id>1170</id>
      </contributor>
      <comment>New page: [http://www.felipeandrade.org/blog/ Felipe Andrade] is chief technology officer and cofounder of [http://www.i2tecnologia.com.br i2 tecnologia], a company based in Brazil focused on web an...</comment>
      <text xml:space="preserve">[http://www.felipeandrade.org/blog/ Felipe Andrade] is chief technology officer and cofounder of [http://www.i2tecnologia.com.br i2 tecnologia], a company based in Brazil focused on web and mobile services. For more information go to
[http://www.forum.nokia.com/main/forum_nokia_champion/forum_nokia_champions/Felipe_Andrade.html Forum Nokia Champion Personal Introduction Page]

== Contributions ==

* Forum Nokia Wiki Admin&lt;br /&gt;
* Forum Nokia Developer Summit Hackathon Participant, Monaco, 2009&lt;br /&gt;
* Nokia Sem Limites Winner, 2009&lt;br /&gt;
* Forum Nokia Champion, 2008-2009&lt;br /&gt;
* Forum Nokia Champion, 2007-2008&lt;br /&gt;
* Forum Nokia Developer Advisory Council Member, 2007-2009&lt;br /&gt;
* Forum Nokia Champion of the Month, June, 2008&lt;br /&gt;
* Forum Nokia 2008 Code Example Challenge Winner, 2008&lt;br /&gt;
* Nokia Mobile Rules'08 Finalist (Business Plan)

== Find Me ==

*Twitter : [http://www.twitter.com/felipeandrade www.twitter.com/felipeandrade]&lt;br /&gt;
*Gtalk: felipebzr[at]gmail.com&lt;br /&gt;
*i2tecnologia: [http://i2tecnologia.com.br i2tecnologia.com.br]</text>
    </revision>
  </page>
  <page>
    <title>User:Feri</title>
    <id>486</id>
    <revision>
      <id>36665</id>
      <timestamp>2010-07-12T11:12:35Z</timestamp>
      <contributor>
        <username>feri</username>
        <id>2</id>
      </contributor>
      <comment>/* Testing #9833 */</comment>
      <text xml:space="preserve">[http://maemo.org/profile/view/feri/ maemo.org sysadmin, developer]

email: ferenc at maemo.org

gtalk: ferenc.szekely at gmail.com

irc:   sopi on #maemo (freenode)

----
=== Testing [https://bugs.maemo.org/show_bug.cgi?id=10095 #10095] ===

* [http://nemein.com Simple external link]
* [http://en.wikipedia.org/wiki/.avi video] 
* [http://en.wikipedia.org/wiki/.ogg sound] 
* [http://en.wikipedia.org/wiki/.pdf document]

----
=== Testing [https://bugs.maemo.org/show_bug.cgi?id=10094 #10094] ===

==== Bullet list ====

* one
* two
* three
** three point one
** three point two

==== Numbered list ====

# one
# two&lt;br /&gt;spanning more lines&lt;br /&gt;doesn't break numbering
# three
## three point one
## three point two


----
=== Testing [https://bugs.maemo.org/show_bug.cgi?id=9833 #9833] ===

[[Image:1.png]]

* Changed 1 to 2: [[User:feri|feri]] 15:44, 30 June 2010 (UTC)

* Retested again: [[User:feri|feri]] 16:24, 30 June 2010 (UTC)

* Changed 2 to 1: [[User:feri|feri]] 15:10, 8 July 2010 (UTC) 

* Retested again: [[User:feri|feri]] 08:59, 12 July 2010 (UTC)

Everything is ok, the image shows 1.

----

[[Image:test.png]]

* Uploading a new test image (test.png filled in red; 256x256 px): [[User:feri|feri]] 09:02, 12 July 2010 (UTC)
* Overwritten with new image (test.png filled in green; 256x256 px): [[User:feri|feri]] 09:07, 12 July 2010 (UTC)
* Retested [[User:feri|feri]] 11:12, 12 July 2010 (UTC)

The image is still green. I can't reproduce this bug. 
----

=== Notes on checking Nokia bugzilla patches ===

[https://garage.maemo.org/plugins/scmsvn/viewcvs.php/tags/bugzilla-2.22.1-3/debian/patches/?root=bugs Nokia custom debian patch files in svn]

{| class=&quot;wikitable sortable&quot;
|-
! Patch
! What the patch is for?
! Comments on applying
|-
| 11_collectstats.pl.dpatch
| Fix the path of a script.
| This path issue was changed in bugzilla 3.4.
|-
| 12_enter_bug_cgi.dpatch
| This feature preselected the browser and OS version if the reporter used a Maemo device.
| Considering not important. 
|-
| 13_report_cgi.dpatch
| Displays different values for assigned, reporter and qa_contact in reports in case user has an id.. Can't see the point..
| Doesn't make sense since this script is not available for anonymous users.
|-
| 14_User_pm.dpatch
| Do not show email address of &quot;assigned to&quot; person for anonymous users
| Applied
|-
| 15_Constants_pm.dpatch
| Do not show &quot;assigned to&quot; details in search lists. One can get this info when viewing the bug itself.
| Applied
|}

----

=== [http://www.mediawiki.org/wiki/Extension:BugzillaReports My Bugs] ===

{{#bugzilla:
  |to=ferenc@maemo.org
  |columns=id,priority,severity,product,status,summary
  |status=NEW,REOPENED,ASSIGNED,UNCONFIRMED
  |sort=priority,severity
}}</text>
    </revision>
  </page>
  <page>
    <title>User:Feri</title>
    <id>486</id>
    <revision>
      <id>36665</id>
      <timestamp>2010-07-12T11:12:35Z</timestamp>
      <contributor>
        <username>feri</username>
        <id>2</id>
      </contributor>
      <comment>/* Testing #9833 */</comment>
      <text xml:space="preserve">[http://maemo.org/profile/view/feri/ maemo.org sysadmin, developer]

email: ferenc at maemo.org

gtalk: ferenc.szekely at gmail.com

irc:   sopi on #maemo (freenode)

----
=== Testing [https://bugs.maemo.org/show_bug.cgi?id=10095 #10095] ===

* [http://nemein.com Simple external link]
* [http://en.wikipedia.org/wiki/.avi video] 
* [http://en.wikipedia.org/wiki/.ogg sound] 
* [http://en.wikipedia.org/wiki/.pdf document]

----
=== Testing [https://bugs.maemo.org/show_bug.cgi?id=10094 #10094] ===

==== Bullet list ====

* one
* two
* three
** three point one
** three point two

==== Numbered list ====

# one
# two&lt;br /&gt;spanning more lines&lt;br /&gt;doesn't break numbering
# three
## three point one
## three point two


----
=== Testing [https://bugs.maemo.org/show_bug.cgi?id=9833 #9833] ===

[[Image:1.png]]

* Changed 1 to 2: [[User:feri|feri]] 15:44, 30 June 2010 (UTC)

* Retested again: [[User:feri|feri]] 16:24, 30 June 2010 (UTC)

* Changed 2 to 1: [[User:feri|feri]] 15:10, 8 July 2010 (UTC) 

* Retested again: [[User:feri|feri]] 08:59, 12 July 2010 (UTC)

Everything is ok, the image shows 1.

----

[[Image:test.png]]

* Uploading a new test image (test.png filled in red; 256x256 px): [[User:feri|feri]] 09:02, 12 July 2010 (UTC)
* Overwritten with new image (test.png filled in green; 256x256 px): [[User:feri|feri]] 09:07, 12 July 2010 (UTC)
* Retested [[User:feri|feri]] 11:12, 12 July 2010 (UTC)

The image is still green. I can't reproduce this bug. 
----

=== Notes on checking Nokia bugzilla patches ===

[https://garage.maemo.org/plugins/scmsvn/viewcvs.php/tags/bugzilla-2.22.1-3/debian/patches/?root=bugs Nokia custom debian patch files in svn]

{| class=&quot;wikitable sortable&quot;
|-
! Patch
! What the patch is for?
! Comments on applying
|-
| 11_collectstats.pl.dpatch
| Fix the path of a script.
| This path issue was changed in bugzilla 3.4.
|-
| 12_enter_bug_cgi.dpatch
| This feature preselected the browser and OS version if the reporter used a Maemo device.
| Considering not important. 
|-
| 13_report_cgi.dpatch
| Displays different values for assigned, reporter and qa_contact in reports in case user has an id.. Can't see the point..
| Doesn't make sense since this script is not available for anonymous users.
|-
| 14_User_pm.dpatch
| Do not show email address of &quot;assigned to&quot; person for anonymous users
| Applied
|-
| 15_Constants_pm.dpatch
| Do not show &quot;assigned to&quot; details in search lists. One can get this info when viewing the bug itself.
| Applied
|}

----

=== [http://www.mediawiki.org/wiki/Extension:BugzillaReports My Bugs] ===

{{#bugzilla:
  |to=ferenc@maemo.org
  |columns=id,priority,severity,product,status,summary
  |status=NEW,REOPENED,ASSIGNED,UNCONFIRMED
  |sort=priority,severity
}}</text>
    </revision>
  </page>
  <page>
    <title>User:Feri/bug3846</title>
    <id>2238</id>
    <revision>
      <id>16008</id>
      <timestamp>2009-07-31T10:00:14Z</timestamp>
      <contributor>
        <username>feri</username>
        <id>2</id>
      </contributor>
      <comment>/* Plan -- We are at step 10 now */</comment>
      <text xml:space="preserve">== Plan -- We are at step 10 now ==

1. Install vanilla Bugzilla 3.4 on test.maemo.org to see what new dependencies we will have to provide

2. Check the SQL schema diff between 3.4 and our own bugzilla

2. Check out rev 1 of the [https://garage.maemo.org/svn/bugs bugs project] from garage

3. Get the debian source package of [http://packages.debian.org/source/oldstable/bugzilla Bugzilla 2.22-1], which was the version we started branching

4. Get the diff between our rev 1 bugzilla and the debian upstream 2.22-1

5. Analyze the diffs and see if there is any major patch that is not provided as a &quot;debian patch&quot; (dpatch)

6. Take a break

7. Check out the latest rev of the [https://garage.maemo.org/svn/bugs bugs project]

8. Analyze the changed files in svn with svn log -v

9. Take a closer look to those changes that are made outside of:

 * template_maemo
 * skins/maemo

 These will be the changes we have to carefully apply to bugzilla 3.4, if they are needed there

10. template_maemo and skins/maemo will be just simply copied to the new bugzilla 3.4 installation or we can create a custom dpatch file

11. Start applying the changes found in step 9 to the 3.4 tree

== DB schema diff ==

Bugzilla 3.4 has numerous diffs in the DB schema compared to 2.22. However bugzilla's ''checksetup.pl'' is able to handle the schema update on an existing database.

== Analyzing Nokia patches ==

Luckily the most important Nokia changes are in forms of debian patch files. The outstanding parts can be quicly and easily applied by hand.</text>
    </revision>
  </page>
  <page>
    <title>User:Florian</title>
    <id>1686</id>
    <revision>
      <id>11722</id>
      <timestamp>2009-03-12T11:13:01Z</timestamp>
      <contributor>
        <username>florian</username>
        <id>48</id>
      </contributor>
      <comment>One line about myself.</comment>
      <text xml:space="preserve">This is Florian Boor - some details can be found in my [http://maemo.org/profile/view/florian/ public profile].</text>
    </revision>
  </page>
  <page>
    <title>User:Foolegg</title>
    <id>3447</id>
    <revision>
      <id>27599</id>
      <timestamp>2010-01-28T06:52:36Z</timestamp>
      <contributor>
        <username>foolegg</username>
        <id>1982</id>
      </contributor>
      <text xml:space="preserve">a foolish egg...

'''Un'''professional programer.

Simplified Chinese Document translator.</text>
    </revision>
  </page>
  <page>
    <title>User:Framstag</title>
    <id>264</id>
    <revision>
      <id>6240</id>
      <timestamp>2008-08-04T17:15:46Z</timestamp>
      <contributor>
        <username>framstag</username>
        <id>42</id>
      </contributor>
      <text xml:space="preserve">See http://www.anderenen.de/anderenende/index.html</text>
    </revision>
  </page>
  <page>
    <title>User:Frethop</title>
    <id>871</id>
    <revision>
      <id>5145</id>
      <timestamp>2008-07-22T18:09:41Z</timestamp>
      <contributor>
        <username>frethop</username>
        <id>220</id>
      </contributor>
      <text xml:space="preserve">[[Image:Farnsworth.jpg]]</text>
    </revision>
  </page>
  <page>
    <title>User:Gcobb</title>
    <id>1199</id>
    <revision>
      <id>7196</id>
      <timestamp>2008-09-11T23:06:25Z</timestamp>
      <contributor>
        <username>gcobb</username>
        <id>49</id>
      </contributor>
      <comment>New page: = Graham Cobb =  * Maemo Projects: GPE, OpenSync, Xsisusb, MUD * Maemo Profile: http://maemo.org/profile/view/gcobb * Home page: http://www.cobb.uk.net/NokiaIT</comment>
      <text xml:space="preserve">= Graham Cobb =

* Maemo Projects: GPE, OpenSync, Xsisusb, MUD
* Maemo Profile: http://maemo.org/profile/view/gcobb
* Home page: http://www.cobb.uk.net/NokiaIT</text>
    </revision>
  </page>
  <page>
    <title>User:GeneralAntilles/Improving the Application manager</title>
    <id>1307</id>
    <revision>
      <id>8161</id>
      <timestamp>2008-10-30T12:05:40Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[User:GeneralAntilles/Improving the Application manager]] moved to [[Task:Improving the Application manager]]: Moving out of userspace</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Improving the Application manager]]</text>
    </revision>
  </page>
  <page>
    <title>User:Generalantilles</title>
    <id>104</id>
    <revision>
      <id>26732</id>
      <timestamp>2010-01-16T21:56:45Z</timestamp>
      <contributor>
        <username>cas07</username>
        <id>1601</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">[[Community Council|Maemo Community Council]] chair

* maemo.org: [http://maemo.org/profile/view/generalantilles/ generalantilles]
* Internet Tablet Talk: [http://www.internettablettalk.com/forums/member.php?u=1121 GeneralAntilles]
* Garage: [https://garage.maemo.org/users/generalantilles/ generalantilles]
* Bugzilla: [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailreporter1=1&amp;emailqa_contact1=1&amp;emailcc1=1&amp;emaillongdesc1=1&amp;emailtype1=exact&amp;email1=rabelg5%40gmail.com&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfield=%5BBug+creation%5D&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= Ryan Abel]

=== [[User:Generalantilles/Sandbox|Sandbox]] ===</text>
    </revision>
  </page>
  <page>
    <title>User:Generalantilles/Sandbox</title>
    <id>105</id>
    <revision>
      <id>20599</id>
      <timestamp>2009-10-20T07:50:39Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">* [[User:Generalantilles/Sandbox/Front page|Front page]]
* [[User:Generalantilles/Sandbox/Timeline|Maemo Timeline]]
* [[User:Generalantilles/Sandbox/Bug Jar|Bug Jar]]</text>
    </revision>
  </page>
  <page>
    <title>User:Generalantilles/Sandbox/Bug Jar</title>
    <id>417</id>
    <revision>
      <id>4626</id>
      <timestamp>2008-07-17T08:15:22Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve">{|
|[[User:Generalantilles/Sandbox/Bug Jar/1|Bug Jar #1 - April 23rd, 2008]]
|-
|[[User:Generalantilles/Sandbox/Bug Jar/2|Bug Jar #2 - April 30th, 2008]]
|-
|[[User:Generalantilles/Sandbox/Bug Jar/3|Bug Jar #3 - May 7th, 2008]]
|-
|[[User:Generalantilles/Sandbox/Bug Jar/4|Bug Jar #4 - May 14th, 2008]]
|-
|[[User:Generalantilles/Sandbox/Bug Jar/testing|Bug Jar Testing]]|}</text>
    </revision>
  </page>
  <page>
    <title>User:Generalantilles/Sandbox/Bug Jar/1</title>
    <id>418</id>
    <revision>
      <id>2281</id>
      <timestamp>2008-06-22T02:16:01Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve">= [[User:Generalantilles/Sandbox/Bug Jar|Maemo Bug Jar]] =

2008.04.17 through 2008.04.23

Bug activity this week:
*[https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=2008-04-17&amp;chfieldto=2008-04-24&amp;chfield=%5BBug+creation%5D&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Bug+Number&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= 17 new bugs] were opened.
*[https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=2008-04-17&amp;chfieldto=2008-04-24&amp;chfield=everconfirmed&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Bug+Number&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= 3 bugs] were confirmed.
*[https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=2008-04-17&amp;chfieldto=2008-04-24&amp;chfield=bug_status&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Bug+Number&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= 14 bugs] were closed.

Ten biggest bugs by number of votes:
# [https://bugs.maemo.org/show_bug.cgi?id=176 176 - Support for OGG Vorbis / Theora missing] - 96 votes
# [https://bugs.maemo.org/show_bug.cgi?id=2878 2878 - Very poor satellite acquisition with internal GPS] - 58 votes
# [https://bugs.maemo.org/show_bug.cgi?id=667 667 - A2DP and AVRCP Bluetooth profile wanted] - 42 votes
# [https://bugs.maemo.org/show_bug.cgi?id=1833 1833 - N800 to PC video calls] - 42 votes
# [https://bugs.maemo.org/show_bug.cgi?id=1889 1889 - Add Camera support to Flash plug-in] - 41 votes
# [https://bugs.maemo.org/show_bug.cgi?id=1695 1695 - Request tabs be included] - 31 votes
# [https://bugs.maemo.org/show_bug.cgi?id=1046 1046 - RFE: Power Management Profiles...] - 30 votes
# [https://bugs.maemo.org/show_bug.cgi?id=2639 2639 - Home View needs to have an option to lock...] - 29 votes
# [https://bugs.maemo.org/show_bug.cgi?id=368 368 - USB mode selection on control panel] - 27 votes
# [https://bugs.maemo.org/show_bug.cgi?id=1017 1017 - need 802.1X/PEAPv0/MS-CHAPv2...] - 23 votes

Previous - [[User:Generalantilles/Sandbox/Bug Jar/2|Next]]</text>
    </revision>
  </page>
  <page>
    <title>User:Generalantilles/Sandbox/Bug Jar/2</title>
    <id>419</id>
    <revision>
      <id>2282</id>
      <timestamp>2008-06-22T02:17:18Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve">= [[User:Generalantilles/Sandbox/Bug Jar|Maemo Bug Jar]] =
2008.04.24 through 2008.04.30

6 new bugs were opened:
*3118 - Mail lists digest frequency
*3119 - Missing documentation on maemo 4.x: libosso
*3120 - Never contacts STUN server in auto/manual setup, doesn't...
*3121 - concurrent use of a given plugin in gst-plugins-dsp cause...
*3122 - The RSS Feed Reader is too basic to use on a daily basis
*3123 - Patch to kernel to allow DSP framebuffer sharing on N8x0...

2 bugs were confirmed:
*2896 - Busybox prevents installing full versions of tools packag...
*3122 - The RSS Feed Reader is too basic to use on a daily basis

6 bugs were closed:
*2232 - Estimated time remaining is very erratic
*3015 - doesn't work with Samsung SCH-W320 bluetooth dun
*3080 - https redirect download.maemo.org doesn't work
*3083 - lists.maemo.org has an invalid security certificate
*3098 - Upload ssh public key without linefeed blocks login repos...
*3120 - Never contacts STUN server in auto/manual setup, doesn't...

Ten biggest open bugs by number of votes:
#176 - Support for OGG Vorbis / Theora missing
#2878 - Very poor satellite acquisition with internal GPS
#1833 - N800 to PC video calls (+1)
#667 - A2DP and AVRCP Bluetooth profile wanted (-1)
#1889 - Add Camera support to Flash plug-in.
#1695 - Request tabs be included.
#1046 - RFE: Power Management Profiles (AC/Battery, Timed, Enviro...
#2639 - Home View needs to have an option to lock widgets into place
#368 - USB mode selection on control panel
#303 - Clock should allow configurable 12h/24h display (+1)

Ten biggest open bugs by importance*:
#2400 - Soft poweroff non-functional
#2557 - Keep Sent and Drafts on IMAP server
#2526 - Under OS2008 bluetooth headsets and stereo headsets are p...
#2940 - oversized partition on N810 internal card from factory
#2640 - Can no longer pair bluetooth keyboard after upgrade to OS...
#2877 - Incorrect GPS timestamps reported over D-BUS
#298 - Hildon specific GTK extensions should default to be disabled
#2597 - No stylus keyboard when restoring N810 backup on N800
#2667 - Bluetooth DUN not working with Nokia E60 phone
#2621 - Finger keyboard does not launch with finger tap
&lt;nowiki&gt;*&lt;/nowiki&gt; in select categories: Applications, Browser, Communication, Connectivity, Desktop, Games, Multimedia, System management, and System software

[[User:Generalantilles/Sandbox/Bug Jar/1|Previous]] - [[User:Generalantilles/Sandbox/Bug Jar/3|Next]]</text>
    </revision>
  </page>
  <page>
    <title>User:Generalantilles/Sandbox/Front page</title>
    <id>188</id>
    <revision>
      <id>12782</id>
      <timestamp>2009-04-23T17:11:02Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve">__NOTOC__

&lt;div id=&quot;main&quot; style=&quot;font-size: 1em;&quot;&gt;
    &lt;div id=&quot;main-wrapper&quot;&gt;
&lt;!-- ==== &quot;Welcome to maemo.org Wiki&quot; and article count ======== --&gt;
&lt;h1 style=&quot;margin: 0; padding: 0;&quot;&gt;Wiki&lt;/h1&gt;
&lt;div id=&quot;articlecount&quot; style=&quot;width:100%; font-size:85%;&quot;&gt;[[Special:Statistics|{{NUMBEROFARTICLES}}]] articles. Watch the [[Special:Newpages|new]] ones.&lt;/div&gt;

&lt;div class=&quot;sections&quot;&gt;
&lt;div class=&quot;column&quot;&gt;
&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Hot Topics&lt;/h2&gt;
&lt;ul class=&quot;document&quot;&gt;{{Hot Topics}}
&lt;/ul&gt;&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Community&lt;/h2&gt;
&lt;ul class=&quot;help&quot;&gt;{{Community}}
&lt;span style=&quot;font-size: 0.9em; margin-left: 3em;&quot;&gt;''{{More topics|Community|community}}''&lt;/span&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;column&quot;&gt;
&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Users&lt;/h2&gt;
&lt;ul class=&quot;help&quot;&gt;{{Users}}
&lt;span style=&quot;font-size: 0.9em; margin-left: 3em;&quot;&gt;''{{More topics|Users|user}}''&lt;/span&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Developers&lt;/h2&gt;
&lt;ul class=&quot;document&quot;&gt;{{Development}}
&lt;span style=&quot;font-size: 0.9em; margin-left: 3em;&quot;&gt;''{{More topics|Development|developer}}''&lt;/span&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;!-- /sections --&gt;
&lt;/div&gt;&lt;/div&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Generalantilles/Sandbox/Front page HTML</title>
    <id>7</id>
    <revision>
      <id>9181</id>
      <timestamp>2008-12-04T05:38:49Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Changing &quot;Maemo Wiki&quot;</comment>
      <text xml:space="preserve">&lt;!-- ==== &quot;Welcome to maEmo.org Wiki&quot; and article count ======== --&gt;
{| style=&quot;width:400px; border:solid 0px; background:none;&quot; 
|style=&quot;width:400px; text-align:left; white-space:nowrap; color:#000;&quot; |
 &lt;div style=&quot;font-size:200%; border:none; margin:0; color:#000;&quot;&gt;Welcome to the [[maemo|community]] wiki.&lt;/div&gt;
&lt;div id=&quot;articlecount&quot; style=&quot;width:100%; text-align:center; font-size:85%;&quot;&gt;[[Special:Statistics|{{NUMBEROFARTICLES}}]] articles.&lt;/div&gt;
|}

This wiki is to replace [http://maemo.org/community/wiki/ old one]. There is no registration form, just use your login information from [http://garage.maemo.org/ Garage].

&lt;!-- quick ref --&gt;
&lt;!--
    All links added to a quick ref list should point to existing pages.
    For a quick reference to be useful, a page will usually be long. Since this
    page will never be long, I think that a quick reference of links isn't useful.
--&gt;
&lt;!--
{|style=&quot;width: 100%; margin:0; padding:0; border-collapse: collapse;&quot;
|style=&quot;width: 25%;&quot;|
[[Help:Contents|Help]]&lt;br/&gt;
[[Help:About|About Us]]&lt;br&gt;
[[Help:About|About Us]]&lt;br&gt;
|style=&quot;width: 25%;&quot;|
[http://en.wikipedia.org/wiki/How_to_edit_a_page#Wiki_markup Editing Help]&lt;br/&gt;
[http://meta.wikimedia.org/wiki/Help:TemplateWanted Templates Help]&lt;br&gt;
[[Help:About|About Us]]
|style=&quot;width: 25%;&quot;|
[[Maemo_Linux_Wiki:Mailing List|Mailing List]]&lt;br/&gt;
[[Maemo Linux Wiki:Irc|IRC]]&lt;br&gt;
[[Help:About|About Us]]
|style=&quot;width: 25%;&quot;|
[[FAQ_Who_are_the_admins|Admin Listing]]&lt;br/&gt;
[[News|News Listing]]&lt;br&gt;
[[Docs:Wanted|Articles Wanted!]]
|style=&quot;width: 25%;&quot;|
|}
----
--&gt;

&lt;div style=&quot;width: 100%; margin: 0 0 20px 0; padding: 0;&quot;&gt;
&lt;div style=&quot;height: 100%; width: auto; border:1px solid #e2dbd2; background: #fff0df;&quot;&gt;
&lt;div style=&quot;font-size: larger; font-weight: bold; width: auto%; background: #ffd9ac; margin: 10px; padding: 8px; align: center; border: 1px solid #aea395&quot;&gt;Hot Topic&lt;/div&gt;
&lt;div style=&quot;padding: 0 10px 10px 10px&quot;&gt;
{{Hot Topics}}
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- Top Tier Subject Selections --&gt;
&lt;!-- Community--&gt;
&lt;div style=&quot;height: auto; width: 100%; margin: 10px 0 10px 0; padding: 0;&quot;&gt;
&lt;div style=&quot;height: 100%; width: auto; float: left; border:1px solid #e2dbd2; background: #fff0df; margin-right: 10px;&quot;&gt;
&lt;div style=&quot;font-size: larger; font-weight: bold; width: auto; background: #ffd9ac; margin: 10px; padding: 8px; align: center; border: 1px solid #aea395&quot;&gt;Community&lt;/div&gt;
&lt;div style=&quot;padding: 0 10px 10px 10px; margin: 0;&quot;&gt;
{{Community}}
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;height: 100%; width: auto; float: left; border:1px solid #e2dbd2; background: #fff0df; margin-right: 10px;&quot;&gt;
&lt;div style=&quot;font-size: larger; font-weight: bold; width: auto; background: #ffd9ac; margin: 10px; padding: 8px; align: center; border: 1px solid #aea395&quot;&gt;Troubleshooting&lt;/div&gt;
&lt;div style=&quot;padding: 0 10px 10px 10px; margin: 0;&quot;&gt;
{{Troubleshooting}}
&lt;/div&gt;
&lt;/div&gt;


__NOEDITSECTION__ &lt;!-- disables the [edit] links from being shown --&gt;
__NOTOC__ &lt;!-- disable the table of contents from ever being shown --&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Generalantilles/Sandbox/More topics</title>
    <id>185</id>
    <revision>
      <id>1231</id>
      <timestamp>2008-06-09T23:04:47Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <text xml:space="preserve">* {{{1}}} defined, {{{2}}} undefined
:{{More topics|Users}}
* {{{1}}} defined, {{{2}}} defined
:{{More topics|Users|user}}
* None defined
:{{More topics}}</text>
    </revision>
  </page>
  <page>
    <title>User:Generalantilles/Sandbox/Timeline</title>
    <id>176</id>
    <revision>
      <id>8796</id>
      <timestamp>2008-11-18T19:35:02Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>Origins of maemo and maemo.org</comment>
      <text xml:space="preserve">Maemo timeline

= Prehistory =
* [http://stezz.blogspot.com/2008/10/where-maemo-is-coming-from.html &quot;maemo&quot; got its name from pwgen]

= 2005 =
== February==
* 7th - Nokia registers the maemo.org domain.

== May ==
* 25th - Nokia 770 announced at Linuxworld

== November ==
* 7th - Nokia 770 begins shipping

= 2006 =
== January ==
Users start using GPS software

== May ==
* 16th - Internet Tablet OS 2006 released

== June ==
* 19th - Media Converter 0.97 added to Garage

== July ==
* 14th - Gizmo Project available

== October ==
* 29th - First details of the N800

== November ==
First Canola release

* 16th - First leaked photo of N800

== December ==
* 11th - [http://www.linuxdevices.com/articles/AT7621761066.html Building consumer products with open source], article by Ari Jaaksi.
* 15th - Puppy Robot software first added to Garage

= 2007 =
== January ==
* 8th - N800 released
* 27th - N800 gets dissected

== February ==
* 3rd - Internet Tablet OS2007 Hacker Edition for 770 released
* 7th - N800 FM Radio and USB OTG support discovered
* 18th - Carman released by INdT

== March ==
* 21st - First discussion of WiMAX Internet Tablet

== April ==
* 16th - Orb introduced for Internet Tablets

== May ==
* 15th - N800 Navigation Kit released

== July ==
* 10th - First leaked photos of N810
* 11th - Skype gets official on N800

== September ==
Users experiment with porting desktop Linux environments to maemo

* 1st - N800 is cover story on Linux Journal
* 25th - First FCC filing of the N810

== October ==
* 2nd - MP3tunes client available for N800
* 17th - OS2008 announced
* 26th - N810 awarded Best Overall Product at CTIA

== November ==
* 13th - ACCESS Garnet (Palm OS) emulator
* 20th - Internet Tablet Video Converter released
* 26th - OS2008 officially released

= 2008 =
== April ==
* 1st - N810 WiMAX Edition officially announced&lt;br&gt;
:HAVA announces client for maemo

== April ==
* 29th - First pricing shows up on N810 WiMAX Edition</text>
    </revision>
  </page>
  <page>
    <title>User:Generalantilles/myskin.css</title>
    <id>1682</id>
    <revision>
      <id>11523</id>
      <timestamp>2009-03-06T13:58:48Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>New page: body {     background: #eaeaea url('../img/top_bg.jpg') repeat-x top left;     color: #404040;     font-size: 62.5%; /* Reset font to 10px */     font-family: &quot;Arial&quot;, sans-serif;     text...</comment>
      <text xml:space="preserve">body
{
    background: #eaeaea url('../img/top_bg.jpg') repeat-x top left;
    color: #404040;
    font-size: 62.5%; /* Reset font to 10px */
    font-family: &quot;Arial&quot;, sans-serif;
    text-align: center;
}

a
{
    text-decoration: none;
    color: #fa8700;
}

a:hover
{
    text-decoration: underline;
}

h1, h2, h3
{
    margin: 0.5em 0;
}

img
{
    border: none;
}

input
{
    font-family: &quot;Arial&quot;, sans-serif;
}

p
{
    margin-bottom: 0.5em;
}


span.normal
{
    font-weight: normal;
}

#container
{
    min-width: 766px;
    width: 95%;
    margin: 0 auto;
    text-align: left;
}

#container #header
{
    height: 67px;
    width: 100%;
}

#container #header #logo a
{
    float: left;
    border: none;
}

/** Login-box **/

#container #header #user-login
{
    float: right;
    margin-top: 11px;
    margin-right: 0;
}

#container #header #user-login form
{
	margin: 0;
	padding: 0;
}

#container #header input
{
	border: 0;
	color: #a5a5a6;
	font-size: 1.4em;
	font-weight: bold;
	padding: 8px 0 7px 10px;
	display: block;
    float: left;
    margin: 0;
}

#container #header #user-login #username
{
    background: url('../img/username-box-bg.gif') no-repeat top left;
    height: 20px;
	width: 82px;
	margin-right: 7px;
}

#container #header #user-login #password
{
    background: url('../img/password-box-bg.gif') no-repeat top left;
	width: 81px;
    height: 20px;
}

#container #header #user-login .submit
{
	background: url('../img/search-button.gif') no-repeat top left;
	width: 49px;
	height: 31px;
	text-indent: -1000px;
    font-size: 0;
}


#container #header #register
{
    float: right;
    margin: 11px 15px 0 0;
    height: 31px;
}

#container #header #register h3
{
   clear: none;
   display: none;   
}

#container #navigation
{
	background: url(../img/header_navigation_middle.gif) repeat-x scroll right bottom;
	clear: both;
	height: 66px;
}

#container #navigation #navigation-left-wrapper
{
	height: 66px;
	background: url(../img/header_navigation_left.gif) no-repeat left bottom;
}

#container #navigation #navigation-right-wrapper
{
	height: 66px;
	background: url(../img/header_navigation_right.gif) no-repeat right bottom;
}

#container #navigation ul
{
	list-style-type: none;
	margin: 0;
	padding: 0;
	float: left;
}

#container #navigation ul li
{
	margin: 0;
	height: 66px;
	float: left;
}

#container #navigation ul li.selected
{
	background: url('../img/navigation-selected.gif') no-repeat bottom center;
}

#container #navigation ul li a
{
	background: url('../img/navigation-separator.gif') no-repeat top left;
	text-transform: uppercase;
	display: block;
    font-size: 1.3em;
	color: #ffffff;
	float: left;
	padding: 21px 10px 19px 10px;
	font-weight: bold;
}

#container #navigation ul li.selected a,
#container #navigation ul li a:hover {
	background-color: #686868;
	text-decoration: none;
}

/** Search-box **/

#container #navigation #search
{
    float: right;
    margin-top: 11px;
    margin-right: 0;
}

#container #navigation #search input
{
	border: 0;
	float: left;
	margin: 0;
	display: block;
}

#container #navigation #search #query
{
    background: url('../img/search-box-bg.gif') no-repeat top left;
	width: 181px;
    height: 20px;
	color: #a5a5a6;
	font-size: 1.4em;
	font-weight: bold;
	padding: 8px 0 7px 10px;
}

#container #navigation #search .submit
{
	background: url('../img/search-button.gif') no-repeat top left;
	width: 49px;
	padding: 31px 0 0 0;
	text-indent: -1000px;
    font-size: 0;
}

/* Self-clearing floats */
/*
#container #content:after,
#container #content #products:after,
#container #content .sections:after { content: &quot;.&quot;; display: block; height: 0; clear: left; visibility: hidden; }
#container #content,
#container #content #products,
#container #content .sections { display: inline-block; }
#container #content,
#container #content #products,
#container #content .sections { display: block; }
*/
/* Self-clearing floats */

#container #content
{
    min-width: 766px;
    line-height: 1.2;
}

#container #content a.more
{
    background: url('../img/icon-more.gif') no-repeat top right;
    width: 69px;
    height: 19px;
    text-indent: -1000em;
    float: right;
    clear: left;
    margin-top: 10px;
    margin-bottom: 10px;
}

#container #content a.feed
{
    background: url('../img/icon-rss.gif') no-repeat top left;
    width: 19px;
    height: 19px;
    text-indent: -1000em;
    float: right;
    margin-top: -32px;
}

#container #content #news a.feed
{
    margin-top: 0.5em;
}

/* Main */

#container #content #main
{
    margin-right: 270px;
    padding-right: 10px;
    font-size: 1.4em;
    border: 1px solid #eaeaea;
}

#container #content #main #main-wrapper
{
   overflow: hidden;
   width: 99%;
   margin: 0px 10px;
   float: left;
   border: 1px solid #eaeaea;
}

#container #content #main h1
{
    font-size: 1.72em;
    padding-bottom: 0.375em;
    max-width: 70%;
}

#container #content #main h2
{
    font-size: 1.571em;
}

#container #content #main h3
{
    font-size: 1.2857em;
}

#container #content #main ul
{
    list-style-type: disc;
    color: #fa8700;
    margin: 0.5em 0 0.5em 1em;
}

#container #content #main li
{
    color: #404040;
}

#container #content #main #main-wrapper #fp-app-wrapper
{
    background: url('../img/main-divider.gif') no-repeat bottom center;
    float: left;
    width: 100%;
}

#container #content #main #fp-app-wrapper #featured,
#container #content #main #fp-app-wrapper #updated
{
    width: 48%;
    float: left;
}

#container #content #main #fp-app-wrapper #updated
{
    margin-left: 15px;
}

#container #content #main #products
{
/*    min-width: 500px;
    max-width: 65%;*/
    padding-bottom: 40px;
    background: url('../img/main-divider.gif') no-repeat bottom left;
}

#container #content #main #products .product
{
    margin-right: 5px;
    width: 30%;
    min-width: 240px;
    float: left;
}

#container #content #main .sections
{
    width: 100%;
    float: left;
    clear: left;
    margin-top: 20px;
}

#container #content #main .sections a
{
    color: #404040;
}

#container #content #main .sections li
{
    background: url('../img/column-item-divider.gif') no-repeat bottom left;
    margin-top: 1px;
}

#container #content #main .sections .column
{
    margin-right: 5px;
/*    min-width: 238px;
    max-width: 32%;*/
    width: 30%;
    min-width: 240px;
    float: left;
}

#container #content #main .sections ul.document li a
{
    background: url('../img/icon-document.gif') no-repeat top left;
    padding: 2px 0 7px 25px;
    display: block;
}

#container #content #main .sections ul.help li a
{
    background: url('../img/icon-help.gif') no-repeat top left;
    padding: 2px 0 7px 30px;
    display: block;
}

#container #content #main .sections ul.started li a
{
    padding: 4px 0 10px 35px;
    display: block;
}

#container #content #main .sections ul.started li.download a
{
    background: url('../img/icon-started-download.gif') no-repeat top left;
}

#container #content #main .sections ul.started li.help a
{
    background: url('../img/icon-started-help.gif') no-repeat top left;
}

#container #content #main .sections ul.started li.start a
{
    background: url('../img/icon-started-start.gif') no-repeat top left;
}

#container #content #main .sections ul.started li.tools a
{
    background: url('../img/icon-started-tools.gif') no-repeat top left;
}

#container #content #main .sections ul.started li.code a
{
    background: url('../img/icon-started-code.gif') no-repeat top left;
}

#container #content #main #news
{
    width: 100%;
	float: left;
	clear: left;
}

.tl
{
    background: url(../img/box-tl.gif) 0 0 no-repeat;
}

.tr
{
    background: url(../img/box-tr.gif) 100% 0 no-repeat;
}

.tm
{
    background: url(../img/box-tm.gif) 0 0 repeat-x;
}

.bl
{
    background: url(../img/box-bl.gif) 0 100% no-repeat;
}

.br
{
    background: url(../img/box-br.gif) 100% 100% no-repeat;
    padding: 10px;
}

.bm
{
    background: url(../img/box-bm.gif) 0 100% repeat-x;
}

.lm
{
    background: url(../img/box-lm.gif) 0 0 repeat-y;
}

.rm
{
    background: url(../img/box-rm.gif) 100% 0 repeat-y;
}


#container #content #main #news ul.recent
{
    padding: 0 1px;
    background-color: #fff;
    margin: 0;
    list-style-type:none !important;
}

#container #content #main #news ul.recent li
{
    padding: 5px 12px;
    border-top: 1px solid #d9d9d9;
    font-size: 1.1em;
}

#container #content #main #news ul.recent li h3
{
    margin: 0 0 0.25em;
    font-size: 1.2727em;
}

#container #content #main #news ul.recent li.first
{
    border: none;
    padding-top: 0;
}

#container #content #main #news ul.recent li.last
{
    padding-bottom: 0;
}

/* Sidebar */

#container #content #sidebar
{
    float: right;
    width: 239px; /* 256 */
}

#container #content #sidebar h2
{
    font-size: 2.2em;
}

#container #content #sidebar h2 a, #container #content #sidebar h3 a
{
    color: #404040;
}

#container #content #sidebar h3
{
    font-size: 1.4em;
}

#container #content #sidebar p
{
    font-size: 1.4em;
    margin: 0.5em 0;
}

#container #content #sidebar #nav-sub
{
/*    margin-left: -10px; */
}

#container #content #sidebar #nav-sub ul
{
    list-style-type: none;
}

#container #content #sidebar #nav-sub li
{
    background: url('../img/nav-li-normal.gif') no-repeat top left;
    padding: 1px 0px 0px 11px;
    /* min-height: 30px; */
    margin: 1px 0;
}

#container #content #sidebar #nav-sub li a
{
    background: url(../img/nav-divider.gif) no-repeat scroll left bottom;
    color: #4f5050;
    font-size: 1.4em;
    font-weight: normal;
    display: block;
    padding: 6px 0 6px 12px;
    margin: 0 0 2px 0px
}

#container #content #sidebar #nav-sub li a:hover
{
    /* background: url('../img/nav-anchor-normal-hover.gif') no-repeat top left; */
    background-color: #bbb;
}

#container #content #sidebar #nav-sub li.selected
{
    background: url('../img/nav-li-active.gif') no-repeat top left;
    /* min-height: 31px; */
}

#container #content #sidebar #nav-sub li.active
{
    font-weight: bold;
}


#container #content #sidebar #nav-sub li.active a
{
   /*  background-color: #bbb; */
   font-weight: bold;
}

#container #content #sidebar #nav-sub li.selected a:hover
{
    background: url('../img/nav-anchor-active-hover.gif') no-repeat top left;    
}

#container #content #sidebar .wrapper_top_recent
{
    background: url('../img/bg-side-recent-top.gif') no-repeat top left;
    padding-top: 11px;
}

#container #content #sidebar .wrapper_bottom_recent
{
    background: url('../img/bg-side-recent-bottom.jpg') no-repeat bottom left;
    padding-bottom: 11px;
}

#container #content #sidebar ul.recent
{
    padding: 0 3px;
    background: #fff url('../img/bg-side-recent-middle.gif') repeat-y top left;
}

#container #content #sidebar ul.recent li
{
    padding: 5px 12px;
    border-top: 1px solid #d9d9d9;
    font-size: 1.1em;
}

#container #content #sidebar ul.recent li h3
{
    margin: 0 0 0.25em;
    font-size: 1.2727em;
}

#container #content #sidebar ul.recent li.first
{
    border: none;
    padding-top: 0;
}

#container #content #sidebar ul.recent li.last
{
    padding-bottom: 0;
}

#container #content #sidebar #get-involved a
{
    background: url('../img/banner-get-involved.gif') no-repeat top left;
    width: 239px;
    height: 45px;
    text-indent: -1000em;
    display: block;
}

#container #content #sidebar #get-help a
{
    background: url('../img/banner-get-help.gif') no-repeat top left;
    width: 239px;
    height: 36px;
    text-indent: -1000em;
    display: block;
}

#container #content #sidebar #announcements ul
{
    list-style-type: disc;
    margin-left: 15px;
    color: #FA8700;
    font-size: 1.4em;
}

#container #content #sidebar #announcements ul a
{
    color: #404040;
    padding-bottom: 4px;
}

#container #content #sidebar #events ul
{
    font-size: 1.4em;
}

#container #content #sidebar .people li
{
    display: inline;
}

#container #content #sidebar .people li a
{
    padding: 2px;
    background: url('../img/bg-sidebar-people.gif') no-repeat top left;
    float: left;
    margin: 0 9px 8px 0;
}

#container #content #sidebar .people a.more
{
    margin-right: 15px;
}

#container #content #sidebar #shortcut
{
    background: url('../img/sidebar-divider.gif') no-repeat bottom center;
    padding-bottom: 40px;
}

/* Footer */

#container #footer
{
    clear: both;
    color: #fff;
    font-size: 1.2em;
    background: url('../img/footer_middle.png') repeat-x top left;
    height: 46px;
    margin-top: 20px;
    min-width: 766px;
    width: 100%;
}

#container #footer #footer-wrapper-left
{
	height: 46px;
	background: url(../img/footer_left.png) no-repeat left bottom;
}

#container #footer #footer-wrapper-right
{
	height: 46px;
	background: url(../img/footer_right.png) no-repeat right bottom;
}

#container #footer ul
{
    padding: 14px 0 0 10px;
    position: relative;
}

#container #footer li
{
    color: #fff;
    display: inline;
    padding: 0 5px;
}

#container #footer li.first
{
    border-right: 1px solid #fff;
    padding-right: 7px;
}

#container #footer a
{
    text-decoration: underline;
}

#container #footer li.sponsored
{
    position: absolute;
    right: 15px;
}



/* extra stuff */

.net_nehmer_comments_comment
{
	background-color: #fff;
	padding: 2px 0 9px 9px;
}

#container #content #main div.hentry .net_nemein_favourites 
{
    display: block;
}

/* Icons */

#container #content .net_nemein_favourites
{
    margin-left: 1px;
    text-align: center;
    padding-bottom: 20px;
}

#container #content .net_nemein_favourites .fav_btn
{
	float: left;
}

#container #content .net_nemein_favourites .bury_btn
{
	float: left;
}

#container #content .net_nemein_favourites .fav_btn,
#container #content .net_nemein_favourites .bury_btn
{
    width: 34px;
    height: 18px;
	background-position: left top;
	background-repeat: no-repeat;
	cursor: pointer;
}
#container #content .net_nemein_favourites .fav_btn span,
#container #content .net_nemein_favourites .bury_btn span
{
    line-height: 18px;
	float: right;
	font-weight: normal;
}

#container #content .net_nemein_favourites .fav_btn
{
    background-image: url('../img/icons/favourite.png');
}
#container #content .net_nemein_favourites .fav_btn_hover
{
    background-image: url('../img/icons/favourite-hover.png');
}
#container #content .net_nemein_favourites .bury_btn
{
    background-image: url('../img/icons/buried.png');
}
#container #content .net_nemein_favourites .bury_btn_hover
{
    background-image: url('../img/icons/buried-hover.png');
}

#container #content .net_nemein_favourites_clearfix {
	clear: left;
	height: 0;
	line-height: 0;
	margin: 0;
	padding: 0;
}</text>
    </revision>
  </page>
  <page>
    <title>User:Generalantilles/rm you</title>
    <id>94</id>
    <revision>
      <id>3281</id>
      <timestamp>2008-06-28T21:57:32Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <minor/>
      <comment>[[Rm you]] moved to [[User:Generalantilles/rm you]]</comment>
      <text xml:space="preserve">Hey, it's rm_you!

Check out [http://adv-backlight.garage.maemo.org Advanced Backlight Statusbar Applet]! 





===IRC with Timeless concerning GTK stuff with the sound applet:===

rm_you: open the official sound statusbar applet code

rm_you: search for hildon_hvolumebar_new

timeless: Searching...

timeless: ok

timeless: Found one matching line

rm_you: and then once you know what the name of that object is, find what container they add it to

rm_you: then all I need to know is what type of container it is

timeless: it gets munged by gtk_box_pack_start

rm_you: gtk_box_pack_start... ok

rm_you: into what kind of box

rm_you: and what does that box get added to

timeless: gtk_vbox_new (false, 5)

timeless: and into the soundwindow, whatever that is

rm_you: ok, so they put the &quot;hildon_hvolumebar_new&quot; object into a &quot;gtk_vbox_new&quot; object

rm_you: and that gets added to... a &quot;soundwindow&quot;?

timeless: g_object_new (... &quot;statusbar-item&quot; ...)

rm_you: ... what?

timeless: yeah a SOUND_TYPE_WINDOW

rm_you: can you do a search for &quot;gtk_menu&quot;

timeless: oh. yeah, essentially this re-implements and delegates to things :)

rm_you: ?

timeless: basically the sound_window thing acts almost like a gtkmenu container

timeless: and special handles things to make it all work :)

rm_you: ....

timeless: e.g. it has a set_focus method which will call gtk_menu_item_(de)select on things

rm_you: so

rm_you: but

rm_you: but

rm_you: but

rm_you: WHAT!?

timeless: sorry, I'm definitely not copying the rest of the code

timeless: but yeah, pretty much, that's it :)

timeless: oh yeah... the window calls gtk_window_set_type_hint(...., GDK_WINDOW_TYPE_HINT_MENU)

rm_you: yeah but... there must be something special... I *tried* putting the hildon_hvolumebar_new object into a vbox into a GtkMenu/GtkMenuItem

rm_you: it doesn't work

rm_you: so they have a custom implementation of GtkMenu?

timeless: yep

rm_you: that's... ridiculous

rm_you: is it in the statusbar code? or is it in a library?

timeless: it's in the same file as far as I can tell

rm_you: &lt;_&lt;

timeless: but there's no way I can justify sharing it

rm_you: how long is it 

rm_you: &lt;_&lt;

timeless: you should just instrument gtk

rm_you: just tell me as much as you can ABOUT it

timeless: it's not that hard

rm_you: I tried asking people in #gtk+

rm_you: multiple people told me either that what I wanted to do wasn't possible without some serious hackage, or that I would have to rewrite my own gtkmenu system

timeless: I mean, this should be fairly easy... you either use a perl script to rewrite the library entry points

timeless: or use a debugger to dynamically do it

timeless: either way, it's fairly trivial

timeless: all you need is for each gtk method to spit out at entry all strings and all pointers, and at exit to spit out any returned pointers

timeless: from there since everything is a gtk call, you can find out which methods are called in order for each object

rm_you: htm

timeless: it is &quot;serious&quot; hackage, but it's fairly automatable

timeless: so it's not &quot;hard&quot; hackage

timeless: more like &quot;thorough&quot;

rm_you: hrm. I don't think I know enough about GTK to do that though. :(

rm_you: I'll have to find help

rm_you: though duplicating that is ridiculous

rm_you: Nokia has no reason to keep that closed

rm_you: in fact, it should probably be a separate library, eg HildonMenu

* timeless nods

rm_you: and be put into libhildon

timeless: I might give you perl that would hack gtk_ for this...

timeless: it really shouldn't be that bad

rm_you: I tried rewriting GtkMenu / GtkMenuItem last week

rm_you: it turned into a nightmare

rm_you: I don't know nearly enough about the inner workings of GTK to mess with that stuff &lt;_&lt;

timeless: well... you'd want something like:


#!/usr/bin/perl

unless (/^gtk_.*_set_/) { print; next; }

if (/\((.*)\)/) {

# one line case - not implemented because afaict, gtk doesn't use it

} elseif (/\((.*)/) {

#multi line case

my @args = ();

some_looping_here:

/\((?:const\s+|)(\S+)\s+(\*|)(\S+)([.)])/;

my ($type, $pointer, $name, $more) = ($1, $2, $3, $4);

push @args, $name;

$types{$name} = $type;

$pointers{$name} = $pointer;

goto some_looping_here if ($more eq ',');

#oops, probably would have been a good idea to read another line from input before doing that goto :)

#some perl assembly required ;-)

#at this point we've reached a line that ends in )

#we probably should have been printing the lines somewhere too... oh well, more assembly required

#eat the next line

&lt;&gt;;

die &quot;i was really hoping to see an open brace ...&quot; unless /^[{]/;

foreach my $arg (@args) {

if ($pointers{$arg}) { print qq#fprintf(stderr, &quot;$arg %p &quot;, $arg);\n#; }

elseif ($types{$arg} =~ /int$/i) { print qq#fprintf(stderr, &quot;$arg %d, &quot;, $arg);\n#; }

else {

#hrm, better work could be used here, you'll have to figure out what other creatures there are... you probably wanted to special case char before pointer :)

print qq#fprintf(stderr, &quot;$arg %p, &quot;, &amp; $arg);\n#; }

}

print qq#fprintf(stderr, &quot;\n&quot;);\n#;

#ok... thats a draft for the head

#in theory you'd want to deal w/ gtk_new and anything else that creates a pointer, but in practice, you won't really need it

#the goal is basically perl myscript.pl &lt; gtkmenu.c &gt; gtkmenu-evil.c

===Emails from Timeless concerning GTK stuff with applets:===





On Wed, May 7, 2008 at 7:38 AM, Adam Harwell &lt;aharwell at trinity.edu&gt; wrote:

&gt;&gt; The binary package osso-statusbar-sound contains a statusbar applet that can

&gt;&gt; be used to control the volume level of the system. It consists primarily of

&gt;&gt; some GtkContainer or HildonContainer object that can be used as a

&gt;&gt; popup/popdown menu. That object then contains a &quot;hildon_hvolumebar&quot; as well

&gt;&gt; as a menu item of some kind that launches the sound configuration

&gt;&gt; controlpanel applet.

&gt;&gt;

&gt;&gt;  Currently I am using a &quot;hildon_desktop_popup_window&quot;. This sort of works,


what follows is JavaScript notation based on C GObject code.



function SoundWindow() {

var box = new gtk[&quot;vbox&quot;];

gtk[&quot;container&quot;].add (this, box);

box.pack([volumebar, ...]);

}

SoundWindow.prototype = {

type_hint: GDK_WINDOW_TYPE_HINT_MENU,

name: &quot;hildon-status-bar-popup&quot;,

resizable: false,

decorated: false,

/* i think this is the cute border you're asking about, and yes, it

seems like it's just hard coded into the C */

border_width: 20,

keep_above: true

}




fwiw, the same general approach is used by the display applet.

&gt;&gt; but it lacks the nice thick border and rounded corners that the default

&gt;&gt; sound applet uses, as well as some intelligent autoclose functions. Can you

&gt;&gt; find out if there is some kind of hildon container that is being used for

&gt;&gt; the default sound applet?</text>
    </revision>
  </page>
  <page>
    <title>User:Giannoug</title>
    <id>3314</id>
    <revision>
      <id>36602</id>
      <timestamp>2010-07-11T16:35:05Z</timestamp>
      <contributor>
        <username>giannoug</username>
        <id>1739</id>
      </contributor>
      <comment>/* How to remove unused config files for unistalled programs */</comment>
      <text xml:space="preserve">=== How to remove unused config files for unistalled programs ===
&lt;pre&gt;
dpkg -l | awk '/^rc/ {print $2}' | xargs dpkg -P
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Gnuton</title>
    <id>896</id>
    <revision>
      <id>5278</id>
      <timestamp>2008-07-24T08:03:14Z</timestamp>
      <contributor>
        <username>gnuton</username>
        <id>225</id>
      </contributor>
      <comment>New page: == Antonio Aloisio == [[Image:Gnuton.png]] == Information == '''My Blog:''' [http://www.gnuton.org]   == Contacts == '''Email''': antonio.aloisio AT gmail.com&lt;br&gt; '''Email:''' gnuton AT gn...</comment>
      <text xml:space="preserve">== Antonio Aloisio ==
[[Image:Gnuton.png]]
== Information ==
'''My Blog:''' [http://www.gnuton.org]


== Contacts ==
'''Email''': antonio.aloisio AT gmail.com&lt;br&gt;
'''Email:''' gnuton AT gnuton.org&lt;br&gt;
'''IRC:''' GNUton channel: #maemo on freenode&lt;br&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Gregoranderson</title>
    <id>5095</id>
    <revision>
      <id>46456</id>
      <timestamp>2012-01-19T15:45:12Z</timestamp>
      <contributor>
        <username>gregoranderson</username>
        <id>4954</id>
      </contributor>
      <comment>New page:  == Camera UI Problems. ==  Camera UI goes into blind panic with ext3/4 formatted MyDocs.  For yonks I've struggled with a solution for this, other than sym-linking like a lunatic.  http:/...</comment>
      <text xml:space="preserve">
== Camera UI Problems. ==

Camera UI goes into blind panic with ext3/4 formatted MyDocs.  For yonks I've struggled with a solution for this, other than sym-linking like a lunatic.

http://talk.maemo.org/showpost.php?p=1152438&amp;postcount=820

The above link accounts for gconf settings to try.</text>
    </revision>
  </page>
  <page>
    <title>User:Guaka</title>
    <id>2838</id>
    <revision>
      <id>25915</id>
      <timestamp>2010-01-05T23:53:13Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <text xml:space="preserve">[http://guaka.org/ Kasper Souren]

{{user-cc-by-sa}}


Cool stuff:
* [[User:Jebba/NAT]]
* [[User:Jebba/Kernel]]</text>
    </revision>
  </page>
  <page>
    <title>User:Handful</title>
    <id>1231</id>
    <revision>
      <id>7468</id>
      <timestamp>2008-09-26T20:15:33Z</timestamp>
      <contributor>
        <ip>200.184.118.136</ip>
      </contributor>
      <comment>New page: Handful of Nothing --- The fact that I don’t know where I will be next month is the best thing ever!  My Name is Marcelo Eduardo Moraes de Oliveira and I’m a 28 (ok I finally updated i...</comment>
      <text xml:space="preserve">Handful of Nothing
---
The fact that I don’t know where I will be next month is the best thing ever!

My Name is Marcelo Eduardo Moraes de Oliveira and I’m a 28 (ok I finally updated it alright? :) ) years old User Experience Designer and really amateur Guitar player. Currently I live in Recife working as Lead of Concept Design and Development with edgy Mobile Phones and Internet tablet devices. I help a incredible team of Designers and Developers develop great solutions for small (and not so small) problems. My job includes something that I really love: Games. Some of this passion can be checked out on my Videogame collections page. There’s also a non-frequent post enabled blog, in my native language, Portuguese: UxMe

www.marceloeduardo.com</text>
    </revision>
  </page>
  <page>
    <title>User:Harbaum</title>
    <id>1284</id>
    <revision>
      <id>7934</id>
      <timestamp>2008-10-25T12:55:08Z</timestamp>
      <contributor>
        <username>harbaum</username>
        <id>161</id>
      </contributor>
      <text xml:space="preserve">* Spare time Maemo hacker
* Projects incl. kwarto, tiltstick hardware project, gpxview, osm2go, ...

Details about these projects can be found on [http://www.harbaum.org/till/maemo my Maemo projects page]</text>
    </revision>
  </page>
  <page>
    <title>User:Henkka</title>
    <id>3568</id>
    <revision>
      <id>28801</id>
      <timestamp>2010-02-10T12:58:58Z</timestamp>
      <contributor>
        <username>henkka</username>
        <id>2019</id>
      </contributor>
      <text xml:space="preserve">---
Orginal
http://talk.maemo.org/showthread.php?t=43663
Fatalsaint tutorial 2
http://talk.maemo.org/showpost.php?p=515218&amp;postcount=59
Mikec calculator
http://talk.maemo.org/showpost.php?p=516874&amp;postcount=69
attila about pyqt install
http://talk.maemo.org/showpost.php?p=515107&amp;postcount=45
Fatalsaint more
http://talk.maemo.org/showpost.php?p=514988&amp;postcount=29
fatalsaint about IDE
http://talk.maemo.org/showpost.php?p=516911&amp;postcount=75
----

==Qt Designer/Python for Windows XP in 30 Mins==

This is guide for noobs who would like to get started in Qt development using Python on Windows XP. The great news about using Python is there is no need to install the Maemo SDK. Python runs on Windows, MAC and Linux as is, and it's just a matter of copying your Python Scripts to your N900 and run.


===Install the Tools===

* Get Python 2.6 from Python.org http://python.org/download/releases/2.6.4/ &lt;br /&gt; This will install the Python interpreter and associated tools. Access from your start menu:
:[[Image:Pic01_python_install.jpg]]
* Get the Binary Packages for PyQt from Riverbank computing http://www.riverbankcomputing.co.uk/software/pyqt/download &lt;br /&gt; Select the Python 2.6 version which is the latest version compatible with Python on the N900. This will install a number of tools, but in particular the ones we are interested in for this Tutorial.

:* '''PyQt''' 4.7 The Python Qt bindings (note 4.7 is not the Qt Release version).
:* '''Qt4 Designer''' , the GUI editor and layout manager for Qt GUIs.
:* '''PyUIC4''' , Converts your Qt Designer files to PyQt.

When you have this package installed you will have an entry in your start menu like this

:[[Image:Pic02_Pyqt_install_winxp.jpg]]

Let's do a quick hello world that uses the above tools and links it all together.


===Create UI with Qt Designer===

On Your Desktop machine

* Qt Designer from your start Menu.
* Create a Main Window Form and set its size to '''800x400'''
* Add a Label Widget, set the font to a 24 point, resize as needed.
* Double click on the Label Widget to change its name to Hello World ! Use Control R to see how it will look.
* Add buttons text and other widgets as you want by drag and drop from the widget menu.
* Now save your form. File-&gt;Save As ''helloworld.ui''

:[[Image:Qt_designer_winxp.jpg]]


===Generate your Python code===

Open a command window from your start menu-&gt;accessories (also winkey+r type '''cmd''') and cd into the directory where you stored the ui file, and type in the following.

 pyuic4 -x helloworld.ui -o helloworld.py

the '''-x''' generates additional code to allow you to test the ui element the '''-o''' tells it where to store the python &quot;executable&quot;.

You now have a full python Qt4 GUI application ready to rock!!

Just double Click your helloworld.py file in the file manager and presto you have your first PtQt app up and running.


===Deploy to your N900===

Make sure you have installed Python and PyQt on your n900. Easiest way of doing this is to install the ''PyQt examples and documentation'' package from the application manager. This will pull in all the dependencies that you will need. Don't forget you will need to [[Extras-devel#How_to_activate_Extras-devel|enable extras development repository]].

To get full file system access follow guide [http://talk.maemo.org/showpost.php?p=482844&amp;postcount=1 Here]. ( this method uses WinSCP to do a secure copy to N900)

After setting up your N900 and Windows run WinSCp and enter your ip address and root login details.

To query your N900's ip address run in terminal (''sudo gainroot'' command comes with package rootsh):

 $ sudo gainroot
   #  ifconfig | grep inet

You will get a GUI to SCP like this. make sure that you drop files to the''' /opt''' directory on your N900

[[Image: ]]

* Drag and drop files from your desktop to your N900.
* Copy your helloworld.py file to your N900 '''/home/opt''' directory
Once your helloworld.py file is on your opt directory on your n900 you can execute it from the Xterm:  ('''run as user''')

 $ python helloworld.py

[[Image:]]

If your helloworld does not have the look and feel of Fremantle &lt;u&gt;make sure that you have installed latest PyQt from the application manager&lt;/u&gt; (Thanks Atilla)

===Connecting UI to your Application===

OK now that you have done your first prog, you will want to create an app that actually does something with the UI. Jump to Fatalsaints post in this thread for your next tutorial

http://talk.maemo.org/showpost.php?p=515218&amp;postcount=59


===Integrating into a Main Program===

The above technique will allow you to prototype quickly and let you play with the QT Designer. However you should not edit the python file generated by pyuic4 (why not?). To build a real application you want to create a Main.py programme that has your gui generated file included.
First generate the file without the -x option in windows command window.

 pyuic4 helloworld.ui -o helloworld.py

Now we create a Main.py program that calls the generated file.

Sample ''Main.py'' (may not work depending what you called your form)
 &lt;nowiki&gt;
 ==============Main.py==================================
 #!/usr/bin/env python
 import sys

 #Now we include our helloworld.py generated from pyuic4.
 from helloworld import *

 # We instantiate a QApplication passing the arguments of the script to it:
 app = QtGui.QApplication(sys.argv)
 MainWindow = QtGui.QMainWindow()
 ui = Ui_MainWindow()
 ui.setupUi(MainWindow)

 MainWindow.show()

 # Now we can start it.
 sys.exit(app.exec_())

 ===================================================
 &lt;/nowiki&gt;

Now just run the main.py from your n900 
 python main.py

'''Using PySide'''

Pyside is not quit ready for Windows yet
(confusing what is this?)

'''Bringing it all together into a Graphical IDE'''

Now you have your helloworld working it's time to dive into a full-blown IDE(Integrated development environment) (Wiki) and do a serious example.

First we need to install an IDE that will pull all of our tools together. '''Eric4''' works really well with Qt Designer. Install from here

http://eric-ide.python-projects.org/

Using eric4 build your own browser in an Hour!! Heres the tutorial

http://eric-ide.python-projects.org/tutorials/MiniBrowser/index.html

'''Additional Resources'''

some other tutorials I found helpful

http://www.rkblog.rk.edu.pl/w/p/introduction-pyqt4/

http://lateral.netmanagers.com.ar/stories/BBS47.html

And the Qt4 Design manual
http://doc.trolltech.com/4.0/designe...component.html

The Maemo Python Wiki Pages

http://wiki.maemo.org/PyMaemo</text>
    </revision>
  </page>
  <page>
    <title>User:Henkka.MMS</title>
    <id>4567</id>
    <revision>
      <id>40194</id>
      <timestamp>2010-11-19T20:43:52Z</timestamp>
      <contributor>
        <username>henkka</username>
        <id>2019</id>
      </contributor>
      <comment>Removing all content from page</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>User:Henkka/MMS</title>
    <id>4570</id>
    <revision>
      <id>40205</id>
      <timestamp>2010-11-20T09:54:42Z</timestamp>
      <contributor>
        <ip>94.237.86.79</ip>
      </contributor>
      <comment>/* External Links */</comment>
      <text xml:space="preserve">====[[fMMS]] ICS (Implementation Conformance Specifications)====
{| class=&quot;wikitable&quot; width=&quot;450&quot;
! style=&quot;width: 350px;&quot; align=&quot;center&quot;| Feature 
! [[fMMS]]
|-
!SMIL 
| 
|-
!Portrait layout 
|{{No}}
|-
!Landscape layout 
|{{Yes}}
|-
!In-loop deblocking filter 
| 
|-
!Can set different page timings in SMIL presentation 
| 
|-
!Can set different page timings when media as video or audio is added to a page 
| 
|-
!UTF-8 encoding of Subject field  
| 
|-
!US-ACII for text input 
| 
|-
!UTF-8 charset encoding sending/receiving 
| 
|-
!CAVLC entropy coding 
| 
|-
!UTF-16 encoding 
| 
|-
!Content class Text 
| 
|-
!Content class Image Basic 
| 
|-
!Content class image Rich 
| 
|-
!Content class Video Basic 
| 
|-
!Content class Video Rich 
| 
|-
!Content class Megapixel 
| 
|-
!Content class Content Basic 
| 
|-
!Content class Content Rich 
| 
|-
!Client supports Postcard service 
| 
|-
!Client supports Hyperlinks 
| 
|-
!AMR audio 
| 
|-
!video /3gpp 
| 
|-
!13k Audio 
| 
|-
!MPEG4 
| 
|-
!H.263 
| 
|-
!Client support Huffmann code in JPEG 
| 
|-
!vCard 
| 
|-
!vCalendar 
| 
|-
!Delivery report request 
| 
|-
!Read reports request 
| 
|-
!Display of Delivery Report 
| 
|-
!Can send/receive Read Reports as PDU 
| 
|-
!Can send Read-Reply reports 
| 
|-
!dur attribute is set according to media length in a slide 
| 
|-
!dur attribute can be set manually by the user 
| 
|-
!Immediate retrieval mode 
| 
|-
!Deferred Retrieval mode 
| 
|-
!Rejected Retrieval mode 
| 
|-
!Setting (relative) Expiry Time of a Forwarded message 
| 
|-
!Forwarding without prior retrieval 
| 
|-
!Interpreting Message-ID field 
| 
|-
!DRM Forward Lock 
| 
|-
!DRM combined right delivery 
| 
|-
!DRM separate right delivery 
| 
|-
!Date field 
| 
|-
!Generation of “Auto” class MM 
| 
|-
!Relative expiry time 
| 
|-
!Absolute expiry time 
| 
|-
!Relative delivery time 
| 
|-
!Absolute delivery time 
| 
|-
!Priority can be set to low 
| 
|-
!Priority can be set to normal 
| 
|-
!Priority can be set to high 
| 
|-
!Subject field 
| 
|-
!To field 
| 
|-
!Cc field 
| 
|-
!Cc field 
| 
|-
!Supports the Cancel transaction 
| 
|-
!Continues functioning normally when unsupported or corrupt content is received 
| 
|-
!Resubmission mode Free 
| 
|-
!Resubmission mode Warning 
| 
|-
!Resubmission mode Restricted 
| 
|-
!Has access to a photo camera to take pictures and attach them in a MM 
| 
|-
!Is able to resize a picture taken with a built in camera to fit to Core domain 
| 
|-
!Supports MMS Templates 
| 
|-
!Supports a wizard for templates 
| 
|-
!Validates Template Documents 
| 
|-
!Can set the X-Adaptation-Field 
| 
|-
!supports EXIF in JPEG files 
| 
|-
!Support restricted MMS creation 
| 
|}

&lt;br&gt;

====[[fMMS]] IXIT (protocol implementation extra information)====
{| class=&quot;wikitable&quot; width=&quot;450&quot; 
! style=&quot;width: 350px;&quot; scope=&quot;col&quot; align=&quot;center&quot;| Feature
! scope=&quot;col&quot; align=&quot;center&quot;| [[fMMS]]
|-
!10 or maximum number of pages allowed by the client if less than 10.(1-10) 
| 
|-
!100ms or minimum page timing allowed by the client if greater than 100ms.(100ms-8000ms) 
| 
|-
!20secs or maximum page timing allowed by the client if less than 20s. (1ms-20ms) 
| 
|-
!40 or maximum subject field length allowed by the client if less than 40. (1-40) 
| 
|-
!Maximum message size (sending) 
| 
|-
!Maximum message size (receiving) 
| 
|}
&lt;br&gt;

====External Links====
* [http://www.openmobilealliance.org/Technical/release_program/mms_v1_3.aspx Multimedia Messaging Service 1.3] Open Mobile Alliance
*[http://www.openmobilealliance.org/Technical/release_program/docs/CopyrightClick.aspx?pck=ETS&amp;file=OMA-ETS-MMS_CON-V1_3-20090518-C.pdf Enabler Test Specification for (Conformance) for MMS] ''Candidate Version 1.3 – 18 May 2009''&lt;br&gt;
**Mandatory test cases on page 232&lt;br&gt;
**ICS on page 232-235&lt;br&gt;
**IXIT on page 235-236&lt;br&gt;
**ICS/IXIT test cases on pages 236-243&lt;br&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Hhedberg</title>
    <id>1066</id>
    <revision>
      <id>6140</id>
      <timestamp>2008-08-01T12:52:17Z</timestamp>
      <contributor>
        <username>hhedberg</username>
        <id>262</id>
      </contributor>
      <comment>Initial info</comment>
      <text xml:space="preserve">== Henrik Hedberg ==

[http://www.henrikhedberg.net/ Homepage]

=== Some Maemo stuff ===

* [http://mauku.henrikhedberg.com/ Mauku]
* [http://miaouw.henrikhedberg.com/ Miaouw Library]</text>
    </revision>
  </page>
  <page>
    <title>User:Hitler446</title>
    <id>5100</id>
    <revision>
      <id>46596</id>
      <timestamp>2012-02-11T13:39:28Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>@adim: please ban user!</comment>
      <text xml:space="preserve">SPAMMER idiot</text>
    </revision>
  </page>
  <page>
    <title>User:Hleinone</title>
    <id>4041</id>
    <revision>
      <id>33640</id>
      <timestamp>2010-04-30T01:15:49Z</timestamp>
      <contributor>
        <username>hleinone</username>
        <id>2675</id>
      </contributor>
      <comment>New page: = Hannu Leinonen = Check out my [http://www.google.com/profiles/hleinone Google profile], I've tried to gather some generic information about me there.</comment>
      <text xml:space="preserve">= Hannu Leinonen =
Check out my [http://www.google.com/profiles/hleinone Google profile], I've tried to gather some generic information about me there.</text>
    </revision>
  </page>
  <page>
    <title>User:Hrw</title>
    <id>3</id>
    <revision>
      <id>826</id>
      <timestamp>2008-06-04T10:52:24Z</timestamp>
      <contributor>
        <username>hrw</username>
        <id>9</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">&lt;dl&gt;
&lt;dt&gt;Real name
&lt;dd&gt;Marcin Juszkiewicz

&lt;dt&gt;Websites
&lt;dd&gt;[http://blog.haerwu.biz/ Hrw website]
&lt;dd&gt;[http://www.linkedin.com/in/marcinjuszkiewicz LinkedIn profile]

&lt;dt&gt;Contact
&lt;dd&gt;Jabber: hrw@jabber.org

&lt;dt&gt;Owned Nokia devices
&lt;dd&gt;Nokia 770 (running OS2006 or Poky), Nokia N810 (OS2008)

&lt;dt&gt;Interests in
&lt;dd&gt;running non-Maemo systems on tablets without using Maemo initfs


&lt;/dl&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Iancumihai</title>
    <id>1281</id>
    <revision>
      <id>7906</id>
      <timestamp>2008-10-24T07:29:56Z</timestamp>
      <contributor>
        <ip>80.97.12.163</ip>
      </contributor>
      <comment>New page: gadget freak ;).  tinkering with bluetooth profiles.  from time to time pushing updates from mytube.</comment>
      <text xml:space="preserve">gadget freak ;).

tinkering with bluetooth profiles.

from time to time pushing updates from mytube.</text>
    </revision>
  </page>
  <page>
    <title>User:Ifrade</title>
    <id>3899</id>
    <revision>
      <id>32380</id>
      <timestamp>2010-04-10T06:26:07Z</timestamp>
      <contributor>
        <ip>114.255.40.140</ip>
      </contributor>
      <comment>New page: Good afternoon,sir. We are two students from chinese university. We have recently studing how to do a global search in n900.And we find tracker is a good tool for us to search everything b...</comment>
      <text xml:space="preserve">Good afternoon,sir.
We are two students from chinese university.
We have recently studing how to do a global search in n900.And we find tracker is a good tool for us to search everything both metedata and text in n900.It's known to tracker can do full-text search if add extractor which is not plenty now.We heard from out fellow brother there is a good event of google summer code recently.So we hope to do a tracker full-text extractor in this chance.
It is known you are the famous expert of tracker in maemo community.We long for you can be our mentor in the project and tutor us.
Because we are master in bupt and my teacher is the top science in bejing nokia research center.So it's no worry about the facility in our search.
Actually we have coden in maemo in two years.But we got to tracker just now.so 
fiercely hope you can tutor us.
If you have some information to us,please contact with sunyi0225@163.com.
thank you very much.


                                                SunYi,WangGuan</text>
    </revision>
  </page>
  <page>
    <title>User:Ilkka</title>
    <id>3757</id>
    <revision>
      <id>31340</id>
      <timestamp>2010-03-19T07:21:03Z</timestamp>
      <contributor>
        <username>ilkka</username>
        <id>2346</id>
      </contributor>
      <comment>New page: Software Lead Engineer at Sasken Finland.</comment>
      <text xml:space="preserve">Software Lead Engineer at Sasken Finland.</text>
    </revision>
  </page>
  <page>
    <title>User:Imrahil</title>
    <id>1840</id>
    <revision>
      <id>38220</id>
      <timestamp>2010-08-30T15:26:40Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Contact */ drop dead link</comment>
      <text xml:space="preserve">==About==
Jarek Szczepański

==Contact==
*E-mail: imrahil (at) imrahil (dot) com

== Links ==
*http://flex.imrahil.com</text>
    </revision>
  </page>
  <page>
    <title>User:Ivgalvez</title>
    <id>5182</id>
    <revision>
      <id>47709</id>
      <timestamp>2012-05-28T10:49:20Z</timestamp>
      <contributor>
        <username>ivgalvez</username>
        <id>2039</id>
      </contributor>
      <text xml:space="preserve">Current member of the [[Community_Council|Maemo Community Council]].

Member of the Maemo Testing Squad (Tester at maemo.org QA).

You can contact with me at TMO or via PM as my availability on IRC (mainly #maemo and #maemo-ssu) is more limited.</text>
    </revision>
  </page>
  <page>
    <title>User:Jade</title>
    <id>4810</id>
    <revision>
      <id>46825</id>
      <timestamp>2012-02-25T01:52:03Z</timestamp>
      <contributor>
        <username>jade</username>
        <id>4121</id>
      </contributor>
      <minor/>
      <comment>Replacing page with 'nothing here.'</comment>
      <text xml:space="preserve">nothing here.</text>
    </revision>
  </page>
  <page>
    <title>User:Jaffa</title>
    <id>393</id>
    <revision>
      <id>47470</id>
      <timestamp>2012-05-10T12:33:16Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[User:Jaffa]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">* #maemo: Jaffa
* Real-world: [http://www.bleb.org/ Andrew Flegg]
* maemo.org: [http://maemo.org/profile/view/jaffa/ jaffa]
* Internet Tablet Talk: [http://www.internettablettalk.com/forums/member.php?u=15155 Jaffa], previously [http://www.internettablettalk.com/forums/member.php?u=79 aflegg]
* Garage: [https://garage.maemo.org/users/jaffa/ jaffa]
* Bugzilla: [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailreporter1=1&amp;emailqa_contact1=1&amp;emailcc1=1&amp;emaillongdesc1=1&amp;emailtype1=exact&amp;email1=andrew%40bleb.org&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfield=%5BBug+creation%5D&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= Andrew Flegg]</text>
    </revision>
  </page>
  <page>
    <title>User:Jaffa/Developing with Vala</title>
    <id>781</id>
    <revision>
      <id>14541</id>
      <timestamp>2009-06-21T21:33:18Z</timestamp>
      <contributor>
        <username>bundyo</username>
        <id>21</id>
      </contributor>
      <comment>/* Monodevelop 2.0 */</comment>
      <text xml:space="preserve">== Installing in Scratchbox ==
# Add extras and extras-devel to /etc/apt/sources.list.d in Scratchbox
# Install valac (and, optionally, libgee).

For example:
 /scratchbox/login
 for j in '' '-src'; do for i in '' '-devel'; do
   echo &quot;deb$j http://repository.maemo.org/extras$i diablo free non-free&quot; &gt;&gt;/etc/apt/sources.list.d/extras-repo.list
 done; done
 apt-get update &amp;&amp; apt-get install valac libgee

== IDE ==
=== MonoDevelop 2.0 ===
MonoDevelop 2.0 is out and stable. The Vala plugin is still not top notch usability (completion is not always working) but the editor is good and easy to use.
* RPMs at http://download.opensuse.org/repositories/Mono/openSUSE_Factory/ for openSUSE 11.2 Factory
* RPMs at http://download.opensuse.org/repositories/Mono/openSUSE_11.1/ for openSUSE 11.1 Stable
* [http://www.internettablettalk.com/forums/showthread.php?p=201170#post201170 Setup instructions] by Bundyo

=== Eclipse ===
* [https://launchpad.net/valable Valable] is Eclipse plugin
* '''TODO''' How to install
* [http://www.internettablettalk.com/forums/showthread.php?p=203154#post206712 Screenshots]</text>
    </revision>
  </page>
  <page>
    <title>User:Jaffa/Hermes plugins</title>
    <id>3302</id>
    <revision>
      <id>25634</id>
      <timestamp>2010-01-03T11:56:12Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>/* Unanswered questions */ UI building blocks</comment>
      <text xml:space="preserve">== Background ==
[http://hermes.garage.maemo.org/ Hermes] currently supports two services: Facebook and Twitter. However, there are patches for both Hyves&lt;ref&gt;[https://bugs.maemo.org/show_bug.cgi?id=6995 #6995] - Request for Hyves as a data source&lt;/ref&gt; and Gravatar&lt;ref&gt;[https://bugs.maemo.org/show_bug.cgi?id=5983 #5983] - Pull down images from gravatar.com...&lt;/ref&gt;, as well as requests for LinkedIn&lt;ref&gt;[https://bugs.maemo.org/show_bug.cgi?id=6990 #6990] - Request for LinkedIn as a data source&lt;/ref&gt;, MySpace&lt;ref&gt;[https://bugs.maemo.org/show_bug.cgi?id=6994 #6994] - Request for MySpace as a data source&lt;/ref&gt;, Plaxo&lt;ref&gt;[https://bugs.maemo.org/show_bug.cgi?id=6991 #6991] - Request for Plaxo as a data source&lt;/ref&gt; and LiveJournal&lt;ref&gt;[https://bugs.maemo.org/show_bug.cgi?id=6992 #6992] - Request for LiveJournal as a data source&lt;/ref&gt;. Further services will almost certainly be required.

The existing Hermes [https://garage.maemo.org/plugins/ggit/browse.php/?p=hermes source] is fairly geared towards Facebook and Twitter, and so there are both architectural and UI challenges in supporting many more services.

== Requirements ==
# Ability for the user to select which services to use and the priority of them&lt;ref&gt;[https://bugs.maemo.org/show_bug.cgi?id=6990#c4 #6990.c4], Fredrik Wendt&lt;/ref&gt;
# Optional configuration screen for each service, e.g. authentication information
# UI shouldn't be overly generic to avoid same mistakes of Microfeed.

== UI design ==
* Change the &quot;Accounts&quot; dialogue to be like the sharing plugins: a list of icon-containing services which are enabled, with an &quot;Add&quot; button, a &quot;Remove&quot; button, &quot;Move Up/Down&quot; buttons and an &quot;Edit&quot; button which is enabled when an item is selected and further preferences are available.
* Each service needs to provide an interface for opening the preferences for it, if any. For Facebook this'd be &quot;Create birthday-only contacts&quot;, an &quot;Authorise&quot;/&quot;Deauthorise&quot; button.
* The existing &quot;Fetching friends' info&quot; would be changed to a progress-bar: &quot;Initialising services&quot; with information on each service being initialised.

== Code design ==
''See early discussion on [https://bugs.maemo.org/show_bug.cgi?id=6990#c3 #6990].''

The existing code in &lt;code&gt;contacts.py&lt;/code&gt; would be migrated into a &lt;code&gt;Contact&lt;/code&gt; class. This would, in addition to providing access to the various fields of concern, cache the name variants and provide a method for checking matches:

&lt;syntaxhighlight lang=python&gt;
  def matches_identifier(id):
    &quot;&quot;&quot;Returns true if the Unicode-normalised, lower-case, non-alphabetic
       stripped characters of 'id' matches a name variant of this contact.
       Fields included in the name variants are:
         * First name
         * Last name
         * Nickname
         * Email address (with post-@ dot-suffices removed.&quot;&quot;&quot;
&lt;/syntaxhighlight&gt;

A &lt;code&gt;Friend&lt;/code&gt; class would be introduced to give better defined access to name, service and picture. This is used in manual mapping, and for communication between the controller and the service. It would also store the contacts to which it was mapped, if any.

A root class provides meta-data about the service (such as name and icon) and access to the further UI configuration dialogue (if any) and the backend of the service.

The service backend will implement an interface based on a visitor pattern:

&lt;syntaxhighlight lang=python&gt;
  def get_friends(self):
    &quot;&quot;&quot;Return a list of friends from this service, or 'None' if manual mapping
       is not supported.&quot;&quot;&quot;

  def process_contact(self, contact, overwrite = false, friend = None):
    &quot;&quot;&quot;Called for each contact in the address book. Any friends linked to
       from the contact should have their matching updated. The backend should 
       enrich the contact with any meta-data it can; and return 'True' if any
       information was updated. If 'friend' is provided, the information should
       be retrieved from friend. This will be one of the entries from 
       'get_friends' when manual mapping is being done.&quot;&quot;&quot;

  def finalise(self, updated, overwrite = false):
    &quot;&quot;&quot;Once all contacts have been processed, allows for any tidy-up/additional
       enrichment. If any contacts are updated at this stage, 'updated' should
       be added to.&quot;&quot;&quot;
&lt;/syntaxhighlight&gt;

The main engine, &lt;code&gt;Hermes&lt;/code&gt;, would then do something like the following pseudo-code:

&lt;syntaxhighlight lang=python&gt;
  friends = ()
  for service in services:
    for friend in service.get_friends():
      friends.add(friend)

  all_contacts = get_contacts_as_set()
  contacts = set()
  updated_contacts = set()
  for econtact in addressbook.get_all_contacts():
    contact = Contact(addressbook, econtact)
    contacts.add(contact)
    for service in something.get_services_by_prioritisation():
      if service.process_contact(contact):
        updated_contacts.add(contact)

  for service in something.get_services_by_prioritisation():
    service.finalise(updated_contacts)

  for contact in updated_contacts:
    contact.save()
&lt;/syntaxhighlight&gt;

Some kind of mapping to a dict would then be made of &lt;code&gt;friends&lt;/code&gt; when showing the GUI.

=== Unanswered questions ===
* Should some &lt;code&gt;X-HERMES-...&lt;/code&gt; fields be used to indicate what Hermes can overwrite&lt;ref&gt;[https://bugs.maemo.org/show_bug.cgi?id=5452 #5452] - Don't overwrite pre-existing contact info&lt;/ref&gt;; if so, what if the user ''does'' want to overwrite some info? For matching, URLs should be sufficient for most services.
* Should &lt;code&gt;process_contact&lt;/code&gt; return a dict of updated fields? Then the engine can decide what to update based on prioritisation etc.
* Do we need a collection of UI building blocks to help plugin developers create their dialogs in a consistent way? (Ralph)
*:Such as 'browser-based authentication notification', username/password etc? Certainly wouldn't do any harm :-) --[[User:jaffa|Jaffa]] 11:56, 3 January 2010 (UTC)

=== Notional implementations ===
Services such as Facebook, Twitter, Hyves and LinkedIn would contact upstream during construction (similar to the existing model).

Services such as Gravatar would contact upstream during finalisation, once the set of contacts with email addresses (and without photos if ''overwrite'' is false) has been identified.

== References ==
&lt;references/&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Jaffa/Jumpstart</title>
    <id>3901</id>
    <revision>
      <id>35433</id>
      <timestamp>2010-06-06T20:56:30Z</timestamp>
      <contributor>
        <username>fredrik_wendt</username>
        <id>1469</id>
      </contributor>
      <comment>not on gconf-key for browser</comment>
      <text xml:space="preserve">{|
! TODO
|-
|
# Move workspace to &lt;code&gt;/scratchbox/users/maemo/home/maemo/workspace&lt;/code&gt; and symlink back to &lt;code&gt;~/workspace&lt;/code&gt;
# Install Hermes through HAM in Scratchbox
## or fix dependencies: python-twitter python-facebook python-evolution python-simplejson
## and postinst: gconf-key for browser
# Install &lt;code&gt;git-core git-gui gitk community-themes&lt;/code&gt; in VM
# Change theme to ''New Wave''
# Right Hermes starting instructions (works from within ESBox)
# Get GUI working again on master
|}


== Getting started ==
The Hermes repository needs &quot;cloning&quot; to your environment. Open ''Terminal'' and type:

  $ cd workspace
  $ git clone git://bleb.org/ hermes.git

We then need to tell git about you:

  $ git config --global user.name &quot;'''Joe Bloggs'''&quot;
  $ git config --global user.email &quot;'''jbloggs@example.com'''&quot;

Finally, we import the project into Eclipse:

# Start ''ESBox''
# Select ''File &gt; Import... &gt; General &gt; Existing project into workspace...''
# Browse to &lt;code&gt;~/workspace/hermes.git&lt;/code&gt;
# Ensure ''Hermes'' is checked.
# Click ''Finish''.

== Starting Maemo ==
From within ''ESBox'' click the drop down next to the Maemo '''ae''' and select ''Start''.


== Starting Hermes ==
TBC!


== Development ==
=== Committing changes ===
When there are changes in your working copy. git needs to be told that you want to commit the changes to these files (and that &quot;Usage.txt&quot; is a new file it should care about):

  $ cd ~/src/hermes.git
  $ git status
  $ git add Logos/Usage.txt Logos/bg-transparent.png
  $ git status

Finally, commit the changes to your local branch with an appropriate commit message:

  $ git commit -m &quot;Tweak PNG logo, and add usage guidelines&quot;

You can use &lt;code&gt;git log&lt;/code&gt; and GUI tools like &lt;code&gt;gitk&lt;/code&gt; to explore the branch on your harddisk, and see the changes over time.

'''When should you commit?'''

Commit when a &quot;chunk&quot; of work has been completed, and make each commit contain files which are related.

=== Pushing changes ===
It is important to ''push'' your changes back up to the master repo, as this then makes them available for &quot;pulling&quot; by anyone else on the project:

  $ git push origin master

''origin'' is the name of your local branch, and ''master'' is the name of the remote branch.

=== Pulling changes ===
Similarly, other people may have made changes which you should be aware of. You can retrieve them by doing:

 $ git pull origin master</text>
    </revision>
  </page>
  <page>
    <title>User:Jaffa/Jumpstart/</title>
    <id>3902</id>
    <revision>
      <id>32397</id>
      <timestamp>2010-04-10T10:40:05Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>[[User:Jaffa/Jumpstart/]] moved to [[User:Jaffa/Jumpstart]]</comment>
      <text xml:space="preserve">#REDIRECT [[User:Jaffa/Jumpstart]]</text>
    </revision>
  </page>
  <page>
    <title>User:Jaffa/Mer homepage</title>
    <id>1498</id>
    <revision>
      <id>10145</id>
      <timestamp>2009-01-23T10:51:57Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>[[User:Jaffa/Mer homepage]] moved to [[User:Jaffa/Sandbox/Mer homepage]]: Move to my sandbox</comment>
      <text xml:space="preserve">#REDIRECT [[User:Jaffa/Sandbox/Mer homepage]]</text>
    </revision>
  </page>
  <page>
    <title>User:Jaffa/Sandbox</title>
    <id>123</id>
    <revision>
      <id>816</id>
      <timestamp>2008-06-03T22:20:23Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <minor/>
      <comment>Testing plan template</comment>
      <text xml:space="preserve">{{Plan metadata
        |leader=[[User:jaffa|jaffa]] 22:20, 3 June 2008 (UTC)|
        |a|
        |b|
        |c|
        |d|
        |signoff=[[User:jaffa|jaffa]] 22:20, 3 June 2008 (UTC)|}}</text>
    </revision>
  </page>
  <page>
    <title>User:Jaffa/Sandbox/Activity log</title>
    <id>3175</id>
    <revision>
      <id>24478</id>
      <timestamp>2009-12-12T14:49:44Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>Final version for now</comment>
      <text xml:space="preserve">== Activity log ==
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;rss title=&quot;off&quot; desc=&quot;off&quot; text time=&quot;3600&quot;&gt;http://pipes.yahoo.com/pipes/pipe.run?_id=b517f9f63b700b37c72fd42ebda3bca3&amp;_render=rss&amp;channel=maemork&amp;v=6&lt;/rss&gt;

[[Category:Community]]
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>User:Jaffa/Sandbox/Mer homepage</title>
    <id>1482</id>
    <revision>
      <id>10201</id>
      <timestamp>2009-01-23T19:58:38Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <comment>Replacing page with 'See [[Mer]]'</comment>
      <text xml:space="preserve">See [[Mer]]</text>
    </revision>
  </page>
  <page>
    <title>User:Jaffa/mud design</title>
    <id>614</id>
    <revision>
      <id>45652</id>
      <timestamp>2011-11-01T08:56:50Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/67.180.227.180|67.180.227.180]] ([[User talk:67.180.227.180|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">With the new [[Extras repository process definition|extras process]], [http://mud-builder.garage.maemo.org/ mud-builder] should be re-focused&lt;ref&gt;[https://garage.maemo.org/pipermail/mud-builder-users/2008-June/000255.html MUD Direction?], ''Andrew Flegg'', 26 June 2008&lt;/ref&gt; and re-invigorated to help packaging in accordance with the Maemo Packaging Policy&lt;ref&gt;[https://maemo.org/forrest-images/pdf/maemo-policy.pdf Maemo Packaging Policy], ''Eero Tamminen'', 28 May 2008&lt;/ref&gt; and [[Uploading to Extras-devel]].

== Requirements ==
* Taking an upstream project (from somewhere) and applying zero or more patches for Maemo.
** Automate creation of projects.
** Take URL of upstream source deb info page (fish out .dsc, .diff.gz and .tar.gz).
** Take URL of upstream tarball &lt;strike&gt;done&lt;/strike&gt;
* Provide easy in-life management, e.g. changelogs and maintaining the patch.
* Proper debification and Maemo additions (like &lt;code&gt;Section: user/&lt;/code&gt; and the icon) &lt;strike&gt;done&lt;/strike&gt;
* Conformant with the Maemo Packaging Policy:
** Any package patched, or not from a existing deb source, needs to have a ''maemo'' version suffix.
*** For example, if the base version is 7.0, the package version from mud should be '''7.0-0maemo1''' for the first upload, '''7.0-0maemo2''' for the second, etc.
*** If the upstream package comes from Debian (with version 3.5-7) and is unpatched, the package uploaded from mud is also '''3.5-7'''.
*** If the upstream package comes from Debian (with version 3.5-7) and ''is'' patched, the package uploaded from mud is '''3.5-7maemo1''' for the first upload, '''3.5-7maemo2''' for the second, etc.
** Warnings should be given when uploading a package with &quot;Section: user/(.*)&quot; where &lt;code&gt;$1&lt;/code&gt; is not in the accepted list.
** It is an error to try and upload a package with no description.
* Auto-sign &amp; upload to ...-extras-builder in one-step
** Use scp to upload all the files, uploading .changes and .dsc ''last'', to avoid auto-builder issues (driven by .dsc files and [https://bugs.maemo.org/show_bug.cgi?id=3354 #3354])
* Auto-determine Build-Depends &lt;strike&gt;r234&lt;/strike&gt;

== Examples ==
Create new packages within mud's &lt;code&gt;packages/&lt;/code&gt; directory. They can then be manipulated, built, edited and uploaded:
 mud create http://packages.debian.org/source/lenny/cal
 mud create http://packages.ubuntu.com/source/hardy/libgee
 mud create http://download.gnome.org/sources/vala/0.3/vala-0.3.4.tar.bz2
 mud create new-package

Take a package (for example, from the upstream deb source - in the above case - Ubuntu Hardy), build it; sign it and upload it to diablo-extras-builder:
 mud build libgee
 mud upload libgee

Typical workflow for getting a package, unpacking the source, editing it, checking the result and then cleaning out the working copy:
 mud get vala
 mud compile vala
 ...
 mud diff vala
 ...
 mud compile vala
 mud clean vala

== Workflow ==
Use quilt&lt;ref&gt;[http://www.suse.de/~agruen/quilt.pdf &quot;Introduction to Quilt&quot;, ''Andreas Gr¨unbacher'', June 12 2005&lt;/ref&gt;?

TBC

== Internals ==

=== Package structure ===
Instead of having &lt;code&gt;''package''.xml&lt;/code&gt;, &lt;code&gt;patches/''package''.patch&lt;/code&gt; and &lt;code&gt;icon/''package''&lt;/code&gt;, v2.0 of mud should have more consolidation:

 ''package''.pkg/
   mud.xml - required
   ''package''.png - optional icon, used if -nn not present
   ''package''-26.png - optional, if present copied to right place
   ''package''-64.png - optional, if present copied to right place
   ''package''.desktop - if present, auto-copied to right place
   ''package''.service - if present, auto-copied to right place
   extras.xml- optional specification of file destinations, modes, owners, groups etc.
   extras/ - copied to ''build-dir''/mud-extras
     ...
   patches/ - contains quilt patch set
     ...
     ...

Icon files, desktop and service files are auto-considered part of 'extras' with implicit rules for their destination.

&lt;pre&gt;
&amp;lt;extras&amp;gt;
  &amp;lt;file name=&quot;foo.sh&quot;&amp;gt;
    &amp;lt;destination path=&quot;/usr/bin/foo.sh&quot; [mode=&quot;auto|0755&quot; ][owner=&quot;...&quot;][group=&quot;...&quot; ]/&amp;gt;
    &amp;lt;destination path=&quot;/usr/bin/foo2.sh&quot; /&amp;gt;
  &amp;lt;/file&amp;gt;
&amp;lt;/extras&amp;gt;
&lt;/pre&gt;

Mode is optional (set to 0644 if unspecified, unless the file starts #!). Owner and group default to root. &lt;code&gt;install -D&lt;/code&gt; lines are auto-added to end of &lt;code&gt;debian/rules:install&lt;/code&gt;.

=== Install steps ===
# Add extras and extras-devel to /etc/apt/sources.list.d in Scratchbox
# Install mud.
# Create &lt;code&gt;~/.mudrc&lt;/code&gt; containing garage username and gnupg key to use

For example:
 /scratchbox/login
 for j in '' '-src'; do for i in '' '-devel'; do
   echo &quot;deb$j http://repository.maemo.org/extras$i diablo free non-free&quot; &gt;&gt;/etc/apt/sources.list.d/extras-repo.list
 done; done
 apt-get update &amp;&amp; apt-get install mud
 cat &gt;~/.mudrc &lt;&lt;EOM
 USERNAME=jaffa
 GPG_KEY=FC11178D
 EOM

=== Extras package ===
mud should be in Extras, and needs dependencies on:
* xsltproc
* devscripts
* gnupg
* sharutils

Suggests:
* imagemagick

== Notes ==

&lt;references /&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Jakemaheu</title>
    <id>247</id>
    <revision>
      <id>1849</id>
      <timestamp>2008-06-18T02:56:07Z</timestamp>
      <contributor>
        <username>jakemaheu</username>
        <id>65</id>
      </contributor>
      <comment>removed unqualified images</comment>
      <text xml:space="preserve">My name is Jake Maheu, I run jakemaheu.com, and I am a NIT enthusiast!

AFAIK, I think that I am the youngest registered user on InternetTabletTalk and this wiki.

I have owned a N770, and currently have an N800.</text>
    </revision>
  </page>
  <page>
    <title>User:Jamesr</title>
    <id>4477</id>
    <revision>
      <id>39088</id>
      <timestamp>2010-09-24T13:05:10Z</timestamp>
      <contributor>
        <username>jamesr</username>
        <id>3411</id>
      </contributor>
      <comment>New page: Handy notes:  Application catalogue update is about 9.2MB as of 2010-09-24, on roaming data, auto updates of the app manager application catalogues gets expensive. I can't find a UI way of...</comment>
      <text xml:space="preserve">Handy notes:

Application catalogue update is about 9.2MB as of 2010-09-24,
on roaming data, auto updates of the app manager application
catalogues gets expensive. I can't find a UI way of disabling
auto updates.

From X terminal / sshing into the device

&lt;pre&gt;
sudo gainroot
gconftool -g /apps/hildon/update-notifier/check_interval
gconftool -st int /apps/hildon/update-notifier/check_interval 144000
&lt;/pre&gt;

NB
Default is 1440 minutes (24 hours)
144000 is 100 days
max is 2147483647 is (2^31)-1  (4085.something years)



More useful UK keyboard mapping

/usr/share/X11/xkb/symbols/nokia_vndr/rx-51

To add home/end/pgup/pgdown on the arrow keys with Fn, and without
breaking shift to select text, replace the final section with

&lt;pre&gt;
xkb_symbols &quot;arrows_4btns&quot; {
    key &lt;UP&gt;   { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Up, Page_Up ] };
    key &lt;LEFT&gt; { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Left, Home ] };
    key &lt;DOWN&gt; { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Down, Page_Down ] };
    key &lt;RGHT&gt; { type[Group1] = &quot;PC_FN_LEVEL2&quot;, symbols[Group1] = [ Right, End ] };
};
&lt;/pre&gt;

and to activate it

&lt;pre&gt;
setxkbmap
&lt;/pre&gt;


For remapping Fn+shift keys, j k z x have issues - try on a non modified
mapping, they'll each give two symbols..</text>
    </revision>
  </page>
  <page>
    <title>User:Japolinario</title>
    <id>2396</id>
    <revision>
      <id>17697</id>
      <timestamp>2009-09-08T10:55:08Z</timestamp>
      <contributor>
        <username>japolinario</username>
        <id>1121</id>
      </contributor>
      <text xml:space="preserve">[[Image:profile_pic.jpg|100 px]]

Japolinario have been quite busy studying Computer Science and Information Systems in Portugal, France, Finland and The Netherlands. He likes studying and continues doing it ... he is writing a PHD dissertation on open-source. 

Besides studying, he worked in the corporate world in a set companies that include [http://www.sonae.pt/en/home.asp Sonae], [http://www.wipro.com Wipro], [http://www.tesco.com Tesco] and [http://www.dhl.com DHL]. In June 2008 he joined the Maemo team at the [http://research.nokia.com/locations/index.html Nokia Research Center in Helsinki], where he had a lot of fun. 

Right now, he his a full-time researcher, teaching IT in a [http://www.tse.fi/EN/units/departmentsandunits/tjt/Pages/default.aspx Finnish university] as well. On his free-time, he contributes to open-source projects and incite many others to to the same.</text>
    </revision>
  </page>
  <page>
    <title>User:Jaskatyni</title>
    <id>4194</id>
    <revision>
      <id>35170</id>
      <timestamp>2010-05-31T16:47:15Z</timestamp>
      <contributor>
        <username>jaskatyni</username>
        <id>2855</id>
      </contributor>
      <text xml:space="preserve">[[User:Jaskatyni/Locale hack]]

[[User:Jaskatyni/pycallblock fix]]</text>
    </revision>
  </page>
  <page>
    <title>User:Jaskatyni/Locale hack</title>
    <id>4195</id>
    <revision>
      <id>35062</id>
      <timestamp>2010-05-28T15:27:52Z</timestamp>
      <contributor>
        <username>jaskatyni</username>
        <id>2855</id>
      </contributor>
      <text xml:space="preserve">Stupid hack to get sbox localedef an en_DK definition file it can handle.


 in sbox:
 paste stuff between lines to: /usr/share/i18n/locales/en_DK
 localedef --no-archive -i en_DK -c -f UTF-8 -A /usr/share/locale/locale.alias en_DK
 then copy the /usr/lib/locale/en_DK directory to device
 then change /etc/osso-af-init/locale line LC_TIME


if file is messed, try [http://sprunge.us/ZMUK en_DK]


----

 escape_char  /
 comment_char  %
 %
 % Idiotic hacks performed by jaska.tyni@gmail.com to use en_DK:s LC_TIME 
 %
 % English language locale for Britain
 % Source: RAP
 % Address: Sankt Jo//rgens Alle 8
 %    DK-1615 Ko//benhavn V, Danmark
 % Contact: Keld Simonsen
 % Email: Keld.Simonsen@dkuug.dk
 % Tel: +45 - 31226543
 % Fax: +45 - 33256543
 % Language: en
 % Territory: GB
 % Revision: 4.3
 % Date: 1996-10-15
 % Users: general
 % Repertoiremap: mnemonic.ds
 % Charset: ISO-8859-1
 % Distribution and use is free, also
 % for commercial purposes.
 %
 LC_IDENTIFICATION
 title      &quot;English locale for Britain - Faked to en_DK LC_TIME&quot;
 source     &quot;RAP&quot;
 address    &quot;Sankt J&lt;U00F8&gt;rgens Alle 8, DK-1615 K&lt;U00F8&gt;benhavn V, Danmark&quot;
 contact    &quot;Keld Simonsen&quot;
 email      &quot;bug-glibc-locales@gnu.org&quot;
 tel        &quot;&quot;
 fax        &quot;&quot;
 language   &quot;English&quot;
 territory  &quot;Denmark&quot;
 revision   &quot;1.0&quot;
 date       &quot;2000-06-28&quot;
 %
 category  &quot;en_DK:2000&quot;;LC_IDENTIFICATION
 category  &quot;en_DK:2000&quot;;LC_CTYPE
 category  &quot;en_DK:2000&quot;;LC_COLLATE
 category  &quot;en_DK:2000&quot;;LC_TIME
 category  &quot;en_DK:2000&quot;;LC_NUMERIC
 category  &quot;en_DK:2000&quot;;LC_MONETARY
 category  &quot;en_DK:2000&quot;;LC_MESSAGES
 category  &quot;en_DK:2000&quot;;LC_PAPER
 category  &quot;en_DK:2000&quot;;LC_NAME
 category  &quot;en_DK:2000&quot;;LC_ADDRESS
 category  &quot;en_DK:2000&quot;;LC_TELEPHONE
 %
 END LC_IDENTIFICATION
 %
 LC_CTYPE
 copy &quot;i18n&quot;
 %
 translit_start
 include &quot;translit_combining&quot;;&quot;&quot;
 translit_end
 END LC_CTYPE
 %
 LC_COLLATE
 % Copy the template from ISO/IEC 14651
 copy &quot;iso14651_t1&quot;
 END LC_COLLATE
 %
 LC_MONETARY
 int_curr_symbol         &quot;&lt;U0047&gt;&lt;U0042&gt;&lt;U0050&gt;&lt;U0020&gt;&quot;
 currency_symbol         &quot;&lt;U00A3&gt;&quot;
 mon_decimal_point       &quot;&lt;U002E&gt;&quot;
 mon_thousands_sep       &quot;&lt;U002C&gt;&quot;
 mon_grouping            3;3
 positive_sign           &quot;&quot;
 negative_sign           &quot;&lt;U002D&gt;&quot;
 int_frac_digits         2
 frac_digits             2
 p_cs_precedes           1
 p_sep_by_space          0
 n_cs_precedes           1
 n_sep_by_space          0
 p_sign_posn             1
 n_sign_posn             1
 END LC_MONETARY
 %
 LC_NUMERIC
 decimal_point           &quot;&lt;U002E&gt;&quot;
 thousands_sep           &quot;&lt;U002C&gt;&quot;
 grouping                3;3
 END LC_NUMERIC
 %
 LC_TIME
 abday    &quot;&lt;U0053&gt;&lt;U0075&gt;&lt;U006E&gt;&quot;;&quot;&lt;U004D&gt;&lt;U006F&gt;&lt;U006E&gt;&quot;;/
          &quot;&lt;U0054&gt;&lt;U0075&gt;&lt;U0065&gt;&quot;;&quot;&lt;U0057&gt;&lt;U0065&gt;&lt;U0064&gt;&quot;;/
          &quot;&lt;U0054&gt;&lt;U0068&gt;&lt;U0075&gt;&quot;;&quot;&lt;U0046&gt;&lt;U0072&gt;&lt;U0069&gt;&quot;;/
          &quot;&lt;U0053&gt;&lt;U0061&gt;&lt;U0074&gt;&quot;
 day      &quot;&lt;U0053&gt;&lt;U0075&gt;&lt;U006E&gt;&lt;U0064&gt;&lt;U0061&gt;&lt;U0079&gt;&quot;;/
          &quot;&lt;U004D&gt;&lt;U006F&gt;&lt;U006E&gt;&lt;U0064&gt;&lt;U0061&gt;&lt;U0079&gt;&quot;;/
          &quot;&lt;U0054&gt;&lt;U0075&gt;&lt;U0065&gt;&lt;U0073&gt;&lt;U0064&gt;&lt;U0061&gt;&lt;U0079&gt;&quot;;/
          &quot;&lt;U0057&gt;&lt;U0065&gt;&lt;U0064&gt;&lt;U006E&gt;&lt;U0065&gt;&lt;U0073&gt;&lt;U0064&gt;&lt;U0061&gt;&lt;U0079&gt;&quot;;/
          &quot;&lt;U0054&gt;&lt;U0068&gt;&lt;U0075&gt;&lt;U0072&gt;&lt;U0073&gt;&lt;U0064&gt;&lt;U0061&gt;&lt;U0079&gt;&quot;;/
          &quot;&lt;U0046&gt;&lt;U0072&gt;&lt;U0069&gt;&lt;U0064&gt;&lt;U0061&gt;&lt;U0079&gt;&quot;;/
          &quot;&lt;U0053&gt;&lt;U0061&gt;&lt;U0074&gt;&lt;U0075&gt;&lt;U0072&gt;&lt;U0064&gt;&lt;U0061&gt;&lt;U0079&gt;&quot;
 abmon    &quot;&lt;U004A&gt;&lt;U0061&gt;&lt;U006E&gt;&quot;;&quot;&lt;U0046&gt;&lt;U0065&gt;&lt;U0062&gt;&quot;;/
          &quot;&lt;U004D&gt;&lt;U0061&gt;&lt;U0072&gt;&quot;;&quot;&lt;U0041&gt;&lt;U0070&gt;&lt;U0072&gt;&quot;;/
          &quot;&lt;U004D&gt;&lt;U0061&gt;&lt;U0079&gt;&quot;;&quot;&lt;U004A&gt;&lt;U0075&gt;&lt;U006E&gt;&quot;;/
          &quot;&lt;U004A&gt;&lt;U0075&gt;&lt;U006C&gt;&quot;;&quot;&lt;U0041&gt;&lt;U0075&gt;&lt;U0067&gt;&quot;;/
          &quot;&lt;U0053&gt;&lt;U0065&gt;&lt;U0070&gt;&quot;;&quot;&lt;U004F&gt;&lt;U0063&gt;&lt;U0074&gt;&quot;;/
          &quot;&lt;U004E&gt;&lt;U006F&gt;&lt;U0076&gt;&quot;;&quot;&lt;U0044&gt;&lt;U0065&gt;&lt;U0063&gt;&quot;
 mon      &quot;&lt;U004A&gt;&lt;U0061&gt;&lt;U006E&gt;&lt;U0075&gt;&lt;U0061&gt;&lt;U0072&gt;&lt;U0079&gt;&quot;;/
          &quot;&lt;U0046&gt;&lt;U0065&gt;&lt;U0062&gt;&lt;U0072&gt;&lt;U0075&gt;&lt;U0061&gt;&lt;U0072&gt;&lt;U0079&gt;&quot;;/
          &quot;&lt;U004D&gt;&lt;U0061&gt;&lt;U0072&gt;&lt;U0063&gt;&lt;U0068&gt;&quot;;/
          &quot;&lt;U0041&gt;&lt;U0070&gt;&lt;U0072&gt;&lt;U0069&gt;&lt;U006C&gt;&quot;;/
          &quot;&lt;U004D&gt;&lt;U0061&gt;&lt;U0079&gt;&quot;;/
          &quot;&lt;U004A&gt;&lt;U0075&gt;&lt;U006E&gt;&lt;U0065&gt;&quot;;/
          &quot;&lt;U004A&gt;&lt;U0075&gt;&lt;U006C&gt;&lt;U0079&gt;&quot;;/
          &quot;&lt;U0041&gt;&lt;U0075&gt;&lt;U0067&gt;&lt;U0075&gt;&lt;U0073&gt;&lt;U0074&gt;&quot;;/
          &quot;&lt;U0053&gt;&lt;U0065&gt;&lt;U0070&gt;&lt;U0074&gt;&lt;U0065&gt;&lt;U006D&gt;&lt;U0062&gt;&lt;U0065&gt;&lt;U0072&gt;&quot;;/
          &quot;&lt;U004F&gt;&lt;U0063&gt;&lt;U0074&gt;&lt;U006F&gt;&lt;U0062&gt;&lt;U0065&gt;&lt;U0072&gt;&quot;;/
          &quot;&lt;U004E&gt;&lt;U006F&gt;&lt;U0076&gt;&lt;U0065&gt;&lt;U006D&gt;&lt;U0062&gt;&lt;U0065&gt;&lt;U0072&gt;&quot;;/
          &quot;&lt;U0044&gt;&lt;U0065&gt;&lt;U0063&gt;&lt;U0065&gt;&lt;U006D&gt;&lt;U0062&gt;&lt;U0065&gt;&lt;U0072&gt;&quot;
 % date formats following ISO 8601-1988
 d_t_fmt &quot;&lt;U0025&gt;&lt;U0059&gt;&lt;U002D&gt;&lt;U0025&gt;&lt;U006D&gt;&lt;U002D&gt;&lt;U0025&gt;&lt;U0064&gt;&lt;U0054&gt;&lt;U0025&gt;&lt;U0054&gt;&lt;U0020&gt;&lt;U0025&gt;&lt;U005A&gt;&quot;
 d_fmt    &quot;&lt;U0025&gt;&lt;U0059&gt;&lt;U002D&gt;&lt;U0025&gt;&lt;U006D&gt;&lt;U002D&gt;&lt;U0025&gt;&lt;U0064&gt;&quot;
 t_fmt    &quot;&lt;U0025&gt;&lt;U0054&gt;&quot;
 am_pm    &quot;&quot;;&quot;&quot;
 t_fmt_ampm  &quot;&quot;
 date_fmt        &quot;&lt;U0025&gt;&lt;U0061&gt;&lt;U0020&gt;&lt;U0025&gt;&lt;U0062&gt;&lt;U0020&gt;&lt;U0025&gt;&lt;U0065&gt;/
 &lt;U0020&gt;&lt;U0025&gt;&lt;U0048&gt;&lt;U003A&gt;&lt;U0025&gt;&lt;U004D&gt;&lt;U003A&gt;&lt;U0025&gt;&lt;U0053&gt;&lt;U0020&gt;/
 &lt;U0025&gt;&lt;U005A&gt;&lt;U0020&gt;&lt;U0025&gt;&lt;U0059&gt;&quot;
 week    7;19971130;4
 first_weekday 2
 first_workday 2
 END LC_TIME
 %
 %
 LC_MESSAGES
 yesexpr     &quot;&lt;U005E&gt;&lt;U005B&gt;&lt;U0079&gt;&lt;U0059&gt;&lt;U005D&gt;&lt;U002E&gt;&lt;U002A&gt;&quot;
 noexpr      &quot;&lt;U005E&gt;&lt;U005B&gt;&lt;U006E&gt;&lt;U004E&gt;&lt;U005D&gt;&lt;U002E&gt;&lt;U002A&gt;&quot;
 END LC_MESSAGES
 %
 LC_PAPER
 height   297
 width    210
 END LC_PAPER
 %
 LC_TELEPHONE
 tel_int_fmt    &quot;&lt;U002B&gt;&lt;U0025&gt;&lt;U0063&gt;&lt;U0020&gt;&lt;U0025&gt;&lt;U0061&gt;&lt;U0020&gt;&lt;U0025&gt;/
 &lt;U006C&gt;&quot;
 tel_dom_fmt    &quot;&lt;U0025&gt;&lt;U0061&gt;&lt;U0020&gt;&lt;U0025&gt;&lt;U006C&gt;&quot;
 int_select     &quot;&lt;U0030&gt;&lt;U0030&gt;&quot;
 int_prefix     &quot;&lt;U0034&gt;&lt;U0034&gt;&quot;
 END LC_TELEPHONE
 %
 LC_MEASUREMENT
 measurement    1
 END LC_MEASUREMENT
 %
 LC_NAME
 copy &quot;en_US&quot;
 END LC_NAME
 %
 LC_ADDRESS
 postal_fmt    &quot;&lt;U0025&gt;&lt;U0066&gt;&lt;U0025&gt;&lt;U004E&gt;&lt;U0025&gt;&lt;U0061&gt;&lt;U0025&gt;&lt;U004E&gt;/
 &lt;U0025&gt;&lt;U0064&gt;&lt;U0025&gt;&lt;U004E&gt;&lt;U0025&gt;&lt;U0062&gt;&lt;U0025&gt;&lt;U004E&gt;&lt;U0025&gt;&lt;U0073&gt;/
 &lt;U0020&gt;&lt;U0025&gt;&lt;U0068&gt;&lt;U0020&gt;&lt;U0025&gt;&lt;U0065&gt;&lt;U0020&gt;&lt;U0025&gt;&lt;U0072&gt;&lt;U0025&gt;/
 &lt;U004E&gt;&lt;U0025&gt;&lt;U0025&gt;&lt;U007A&gt;&lt;U0020&gt;&lt;U0025&gt;&lt;U0054&gt;&lt;U0025&gt;/
 &lt;U004E&gt;&lt;U0025&gt;&lt;U0063&gt;&lt;U0025&gt;&lt;U004E&gt;&quot;
 country_ab2   &quot;&lt;U0047&gt;&lt;U0042&gt;&quot;
 country_ab3   &quot;&lt;U0047&gt;&lt;U0042&gt;&lt;U0052&gt;&quot;
 country_num   826
 END LC_ADDRESS

----</text>
    </revision>
  </page>
  <page>
    <title>User:Jaskatyni/pycallblock fix</title>
    <id>4199</id>
    <revision>
      <id>35171</id>
      <timestamp>2010-05-31T16:47:47Z</timestamp>
      <contributor>
        <username>jaskatyni</username>
        <id>2855</id>
      </contributor>
      <comment>New page:  --- callblocker-daemon.py.orig  2010-02-25 19:13:00.000000000 +0200  +++ callblocker-daemon.py       2010-05-31 19:44:08.250021112 +0300  @@ -10,7 +10,7 @@       if callernumber in blockl...</comment>
      <text xml:space="preserve"> --- callblocker-daemon.py.orig  2010-02-25 19:13:00.000000000 +0200
 +++ callblocker-daemon.py       2010-05-31 19:44:08.250021112 +0300
 @@ -10,7 +10,7 @@
      if callernumber in blocklist:
         print 'I have to block %s' %callernumber
         bus = dbus.SystemBus()
 -       callobject = bus.get_object('com.nokia.csd.Call', '/com/nokia/csd/call/1')
 +       callobject = bus.get_object('com.nokia.csd.Call', obj_path)
         smsiface = dbus.Interface(callobject, 'com.nokia.csd.Call.Instance')
         smsiface.Release()</text>
    </revision>
  </page>
  <page>
    <title>User:Javispedro</title>
    <id>3764</id>
    <revision>
      <id>44097</id>
      <timestamp>2011-06-21T23:52:23Z</timestamp>
      <contributor>
        <username>javispedro</username>
        <id>1087</id>
      </contributor>
      <text xml:space="preserve">Yet another mostly harmless user.

*[http://maemo.org/profile/view/javispedro/ maemo.org profile]

Some of my applications:
* [http://maemo.org/downloads/product/Maemo5/drnoksnes DrNokSnes], a SNES emulator for the N800/N810 and N900, based on DrPocketSnes and many others.
* [http://maemo.org/packages/view/cfmradio/ C FM Radio], a very simple FM Radio player application for the N900.
* [[Preenv]], a set of libraries that allows SDL WebOS games to run on a N900.
* [[User:Javispedro/SDL-GLES|SDL-GLES]], a library to ease development of OpenGL ES games using Maemo's SDL.
And numerous straight game ports with specific Maemo enhacements: CorsixTH, OpenTTD, DOSBox, Mupen64Plus...

Stuff I developed but no longer use:
* [http://libicd-wpa.garage.maemo.org/ libicd-network-wpa] A library to use wpa_supplicant with icd2. Developed for the N8x0, but works on the N900 (though it is hard to setup).

The places I dump my source code and/or changes:
* [http://maemo.org/packages/ maemo.org Extras] (source repository)
* [http://gitorious.org/~javispedro/]
* [https://garage.maemo.org/users/javispedro/]</text>
    </revision>
  </page>
  <page>
    <title>User:Javispedro/Community Council</title>
    <id>3809</id>
    <revision>
      <id>45164</id>
      <timestamp>2011-09-06T16:28:34Z</timestamp>
      <contributor>
        <ip>50.19.251.32</ip>
      </contributor>
      <comment>FYXoDxvMjmQhhkx</comment>
      <text xml:space="preserve">Heck of a job there, it ablsoteuly helps me out.</text>
    </revision>
  </page>
  <page>
    <title>User:Javispedro/IRC Entry Point</title>
    <id>4777</id>
    <revision>
      <id>42469</id>
      <timestamp>2011-03-08T12:08:00Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Things you should know */ wikify slightly</comment>
      <text xml:space="preserve">__NOTOC__

== Things you should know ==

'''What is Maemo?''' 
Maemo is a software platform developed by Nokia for smartphones and Internet tablets. [[:wikipedia:Maemo|Maemo]] [http://maemo.nokia.com] [[Open development|source code]]

'''What is maemo.org?'''
An open source community of contributors  around the Maemo platform. [http://maemo.org/intro/]

'''Who is the Maemo Community Council?'''
a five-person body chosen by the Maemo community whose mission is to &quot;represent the Maemo community's best interests to Nokia, and to act as a community conduit for Nokia-generated information.&quot;. [[Community Council]]

=== As a user ===

'''What devices does Maemo run on?''' [[Comparison of tablet models]]

[[User FAQ|More...]]

=== As a developer ===

'''What can I use to develop for Maemo?''' [http://www.forum.nokia.com/Develop/Qt/ Qt C++] [http://www.forum.nokia.com/Library/Tools_and_downloads/Other/Maemo/ Gtk+, other languages]

'''Where can I read the source of any open Maemo component or application?''' [[Open development|Sources]].

[[Developer FAQ|More...]]

=== As a IRC user ===

'''Are there specific Maemo IRC channels for specific topics?''' [[IRC#List of IRC channels|Yes]].

'''Are the channels logged somewhere?''' Also yes. [http://mg.pov.lt/maemo-irclog main #maemo chanlogs]. [[IRC#Logs|other maemo channels' logs]].</text>
    </revision>
  </page>
  <page>
    <title>User:Javispedro/OBS notes</title>
    <id>5229</id>
    <revision>
      <id>49155</id>
      <timestamp>2012-08-17T17:43:48Z</timestamp>
      <contributor>
        <username>javispedro</username>
        <id>1087</id>
      </contributor>
      <comment>/* Perl LANG issues */</comment>
      <text xml:space="preserve">Some stuff &amp; links I need to remember to research about OBS+Harmattan issues

=== AEGIS_HASH_FDS issue ===

https://bugs.meego.com/show_bug.cgi?id=23952

Is the variable defined under Sbox? Are aegis-*-hook et all patched not to show the prompt? 

Possibly use dpkg* stuff from devkit.

=== Aegis manifest ===

https://bugs.meego.com/show_bug.cgi?id=21885

Probably related with the above. aegis-manifest is not run automatically, breaking all apps that rely on automatic manifest generation. 
Apart from this, dpkg-deb doesn't add the _manifest inside the .deb package, so it has to be done manually inside debian/rules in a hacky way.

This will be fixed if we use dpkg* from devkit.

=== Parallelism ===

OBS used to call dpkg-buildpackage -jN which sets MAKEFLAGS+=-jN . This breaks packages as debian/rules is parallelized. Who did this ... ?

Currently, it is commented out in build.deb . So the current situation is no parallelism at all.

The proper way is to set env 

DEB_BUILD_OPTIONS=parallel=N

inside build.deb:build script I see something about sourcing
$BUILD_ROOT/$TOPDIR/SOURCES/build.script
where one could potentially define an env var. But I suspect there won't be a way to access $DSC_BUILD_JOBS from there.

=== Perl LANG issues ===

Some warning about locale en_US.UTF-8 not being installed. They seem to only appear on my system doing local builds. Scratchbox defaults to C locale anyway so maybe build env could be changed too.</text>
    </revision>
  </page>
  <page>
    <title>User:Javispedro/SDL-GLES</title>
    <id>3765</id>
    <revision>
      <id>44094</id>
      <timestamp>2011-06-21T18:42:49Z</timestamp>
      <contributor>
        <username>javispedro</username>
        <id>1087</id>
      </contributor>
      <text xml:space="preserve">You can use SDL 1.2 and a small addon I made, SDL-GLES, to ease development of OpenGL ES (1.1 and 2.0) applications in Maemo.

== Get started ==

=== OpenGL ES 2.0 ===

# In any of the SDK targets, download and install SDL and SDL-GLES packages.
#: &lt;code&gt;fakeroot apt-get install libsdl-gles1.2-dev libsdl1.2-dev&lt;/code&gt;
# If you are in the FREMANTLE_ARMEL target, install libgles2-sgx-img-dev (which contains the OpenGL ES 2.0 required libraries and headers)
#: &lt;code&gt;fakeroot apt-get install libgles2-sgx-img-dev&lt;/code&gt;
# But if you are in the FREMANTLE_X86 target, install libgles2-dev instead (which contains the OpenGL ES 2.0 emulation libraries).
#: &lt;code&gt;fakeroot apt-get install libgles2-dev&lt;/code&gt;
# Now to get a simple skeleton for your app. Download [http://git.maemo.org/git?p=sdlhildon;a=blob_plain;f=sdlgles/test/gles2.c;h=d13ee1ef5505af8ee51a68250f3016ea4ce5f5d3;hb=HEAD gles2.c] and put it in your working directory.
#: &lt;code&gt;wget &quot;http://git.maemo.org/git?p=sdlhildon;a=blob_plain;f=sdlgles/test/gles2.c;h=d13ee1ef5505af8ee51a68250f3016ea4ce5f5d3&quot; -O gles2.c&lt;/code&gt;
#: ''Note that this is just a skeletion application; if you want samples, look at the nehegles package in extras.''
# Build gles2 with 
#: &lt;code&gt;gcc `sdl-config --cflags --libs` -o gles2 gles2.c -lSDL_gles -lEGL -lGLESv2&lt;/code&gt;
# Now run it. Ensure the SDK interface is up (this is out of the scope for this little tutorial).
#: &lt;code&gt;./gles2&lt;/code&gt;

=== OpenGL ES 1.1 ===

# In any of the SDK targets, download and install SDL and SDL-GLES packages.
#: &lt;code&gt;fakeroot apt-get install libsdl-gles1.2-dev libsdl1.2-dev&lt;/code&gt;
# If you are in the FREMANTLE_ARMEL target, install libgles1-sgx-img-dev (which contains the OpenGL ES 1.1 required libraries and headers)
#: &lt;code&gt;fakeroot apt-get install libgles1-sgx-img-dev&lt;/code&gt;
# But if you are in the FREMANTLE_X86 target, currently there's not an easy way to install the emulation 1.1 libraries and headers. You will need to get the N900 OpenGL ES 1.1 PowerVR Insider SDK from [http://www.imgtec.com/powervr/insider/sdkdownloads/index.asp#GLES1b Imagination], and install it. Note that you will need to unpack the library files on the usual paths manually.
# Now to get a simple skeleton for your app. Download [http://git.maemo.org/git?p=sdlhildon;a=blob_plain;f=sdlgles/test/gles1.c;h=0756be5b8979868a4a9ac4c3d8497e56b18bb276 gles1.c] and put it in your working directory.
#: &lt;code&gt;wget &quot;http://git.maemo.org/git?p=sdlhildon;a=blob_plain;f=sdlgles/test/gles1.c;h=0756be5b8979868a4a9ac4c3d8497e56b18bb276&quot; -O gles1.c&lt;/code&gt;
#: ''Note that this is just a skeletion application; if you want samples, look at the nehegles package in extras.''
# Build gles1 with 
#: &lt;code&gt;gcc `sdl-config --cflags --libs` -o gles1 gles1.c -lSDL_gles -lEGL -lGLES_CM&lt;/code&gt;
# Now run it. Ensure the SDK interface is up (this is out of the scope for this little tutorial).
#: &lt;code&gt;./gles1&lt;/code&gt;

== In detail ==

== Questions &amp; Answers ==

Feel free to edit here.

For the ES 2.0 example you wrote: &quot;''Note that this is not a proper skeleton, work in progress''&quot;. What needs to be done to call it &quot;proper&quot;? --[[User:goshki|goshki]] 11:03, 8 March 2011 (UTC)

Because it is mostly a test instead of a proper game skeleton, with the game logic -&gt; render logic event loop, etc. The test is fine for learning how to initialize SDL_GLES but I would like something that also teaches a prospective developer general game development with SDL + OpenGL.
However, harbaum has since contributed a lot of proper OpenGL ES 2.0 samples in his NeHeGLES package: http://maemo.org/downloads/product/Maemo5/nehegles/ .
--[[User:javispedro|javispedro]] 13:40, 8 March 2011 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>User:Javispedro/Scrapbook</title>
    <id>3922</id>
    <revision>
      <id>32721</id>
      <timestamp>2010-04-14T22:00:46Z</timestamp>
      <contributor>
        <username>javispedro</username>
        <id>1087</id>
      </contributor>
      <comment>Removing all content from page</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>User:Jbenc</title>
    <id>1033</id>
    <revision>
      <id>5829</id>
      <timestamp>2008-07-28T13:27:52Z</timestamp>
      <contributor>
        <username>jbenc</username>
        <id>250</id>
      </contributor>
      <text xml:space="preserve">== Jiri Benc ==

Profile at maemo.org: http://maemo.org/profile/view/jbenc/

Home page: http://upir.cz/maemo/</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba</title>
    <id>3123</id>
    <revision>
      <id>47389</id>
      <timestamp>2012-05-01T14:50:57Z</timestamp>
      <contributor>
        <ip>70.90.113.25</ip>
      </contributor>
      <comment>Undo revision 43821 by [[Special:Contributions/49.201.160.205|49.201.160.205]] ([[User talk:49.201.160.205|Talk]])</comment>
      <text xml:space="preserve">* Name: Jeff Moe

* Email: moe@blagblagblag.org

* Nick: jebba, jebbajeb, jebba900, etc...


I have stopped development on Meego/Maemo, so these pages are getting quickly dated. Ciao!


* [http://maemo.org/profile/view/jebba/ Maemo profile]

* [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailreporter1=1&amp;emailqa_contact1=1&amp;emailcc1=1&amp;emaillongdesc1=1&amp;emailtype1=exact&amp;email1=moe%40blagblagblag.org&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Bug+Number&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= &quot;My&quot; bugs]

[[Image:Jebba-oldfone.jpg|left|thumb|alt=My old nokia|My old Nokia phone, replaced by N900. Makes a nice background :)]]


* Usually I dot my laptop with READMEs in various ~/devel/ subdirs, but in this case I decided to write up some notes here. These are mostly for my own reference, but perhaps they will be of use to you.

* Feel free to take any of these pages and copy them over to the main wiki namespace (here or in any other wiki, for that matter).

=Package Building HOWTO=

The [[User:Jebba/Package Building HOWTO|Package Building HOWTO]] now has its own page. :)

=Kernel=
The new [[User:Jebba/Kernel|kernel page]]

=Freemoe git=
* [http://gitorious.org/freemoe freemoe git repo at gitorious.org]

 git clone git://gitorious.org/freemoe/freemoe.git

=SDK=

[[User:Jebba/SDK| The SDK page]].

=Repositories=

* [[User:Jebba/Repositories|Info about repositories]]

* [[User:Jebba/Etch]] - The Debian Etch rebuild.

=Flashing=

Separate [[User:Jebba/Flash| page about flashing]], for your perusal.

Note, the [[User:Jebba/Flash|flash]] page has the info about &quot;debricking&quot; easily.

=Wifi Hotspot=
How to set up your N900 as a [[User:Jebba/NAT|wifi hotspot]] to share it's connection with other computers. :)

=Mer=

[[User:Jebba/Mer| Jebba Mer]]

=Fedora=

[[User:Jebba/Fedora| Fedora 12 on Nokia N900]] (!!)


=VNC=

Over at [[User:Jebba/VNC]].

=Backups=

See [[User:Jebba/Backups]]

=Video=

More space for talking about [[User:Jebba/Video|video]] at the new page.

=Mirrors=
I have shut down my mirrors.

A [[User:Jebba/Mirror| mini-HOWTO set up mirroring maemo repository content]]

=DBUS=

Now at [[User:Jebba/DBUS]].

=Gripes=

I [[User:Jebba/Gripes| gripe over here now]].


=Freemoe=
I have a server co-located at [http://www.netdepot.com NetDepot] with a SDK installed. If you would like an account on there send me an email at moe@blagblagblag.org.

* [[User:Jebba/Freemoe|Freemoe wiki]]

* [http://www.freemoe.org/ Freemoe web server]

=Bugs=

[[User:Jebba/Bugs|Bugs]] now has its own page.

=My Packages=

There is now a separate [[User:Jebba/Packages by Jebba|Packages by Jebba]] page.


=VoIP=

See: [[User:Jebba/VoIP]].

=ofono=
[[User:Jebba/Ofono]]

=Cryptsetup=
[[User:Jebba/Cryptsetup]] - HOWTO use crypto filesystem on N900.

=Setup=

I have [[User:Jebba/Setup| move setup]] to its own page. A bit antiquated already!

=sbdmock=

My [[User:Jebba/Sbdmock|sbdmock page]].

=Tweaklets=

* [[User:Jebba/Tweaks|Simple changes that make everything better.]]

* [[User:Jebba/Keymap|Keymap]]

=Random=

Punted over to [[User:Jebba/Random| the new Random page]].</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Backups</title>
    <id>3255</id>
    <revision>
      <id>36575</id>
      <timestamp>2010-07-09T21:06:01Z</timestamp>
      <contributor>
        <ip>88.67.79.67</ip>
      </contributor>
      <comment>/* Backups */</comment>
      <text xml:space="preserve">=Backups=
Thankfully, pre-bricking, I had made a backup. There are a billion different ways to do this, but one quick way is good old rsync. This script backs up everything except the --excluded directories which are either things I don't want to back up (cities) or things you can't/shouldn't back up (/proc).

 #!/bin/sh
 
 rsync \
        -avv -ult --progress --stats \
        --numeric-ids \
        --rsh=ssh \
        --exclude /home/user/MyDocs/cities \
        --exclude /home/user/MyDocs/.sounds \
        --exclude /proc \
        --exclude /dev \
        --exclude /sys \
        --exclude /syspart \
        root@burger:/ \
        /home/jebba/BACKUPS/burger/</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Bugs</title>
    <id>3245</id>
    <revision>
      <id>25205</id>
      <timestamp>2009-12-28T22:25:24Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>New Bugs page</comment>
      <text xml:space="preserve">=Bugs=

==Bugs to file==
===Broken===

* [http://talk.maemo.org/showthread.php?t=38342&amp;goto=newpost no makedev]

* Alarms not getting backed up with settings.

* Per FSH:
 ln -s /etc/opt /opt/etc

* After reflash, extra apps are still in /opt, but are &quot;missing&quot; since the symlinks from /usr/bin are gone.
** More steps needed - which exact apps, did you restore from Backup? --andre

* Saving preferences in xchat crashes.
** I can confirm this, but I don't know if the Maemo port of xchat  has a separate bugtracker in garage.maemo.org  --andre

* &quot;Clear private data on exit&quot; in Midori doesn't actually clear ~/.cache/midori/web (!). I spoke to packager ([http://maemo.org/profile/view/kalikiana/ kalikiana]) on IRC and he said he would look into it.
 `rm  -rf ~/.cache/midori ; rm -rf ~/.config/midori`       Start midori.  Go to some website.  Click &quot;Tools&quot;.  Click &quot;Clear Private Data&quot;.    Check &quot;Clear private data when quitting Midori&quot;  (but DON'T click &quot;Clear private data&quot; button).   Tap blurry part at top to close private data window.   Exit Midori.   `ls -R ~/.cache/midori/web`  and see the .pngs or whatever.

* `less`, `vim` etc. don't see to like $TERM=rxvt-unicode. Using $TERM=xterm-color works fine. Probably not worth filing a bug...
** vi is available via default, but not vim. Feel free to file a bug report with exact steps. --andre

* lcuk: package liqcontrolpanel's summary is &quot;short description&quot;. Package should be removed entirely.

* Image viewer: 1) rotate image 2) view thumbnail. Image doesn't get rotated in thumbnail in *some* cases.

* Maps viewer (OVI): The program is running ok in Spanish, but map data is in English (e.g. &quot;South Pacific Ocean&quot; &quot;South America&quot;). I first ran the program in English, but have subsequently set the system to Spanish.

===RFEs===
* Alarm clock should show ''current'' time, not time alarm was set for, or when you hit snooze, you can't see current time (and think it is alarm time!).

* Package manager can only install one package at a time (in contrast to how synaptic does it, for example).
** https://bugs.maemo.org/show_bug.cgi?id=601 . Feel free to vote. --andre

* In package manager you have to keep scrolling down to the package you want. You can't just hit &quot;r&quot; for example and have it scroll to &quot;r&quot; in the list of packages. This is actually pervasive throughout Maemo 5. It seems to only really do this in Contacts app.
** https://bugs.maemo.org/show_bug.cgi?id=5388 . Feel free to vote. --andre

* It totally sucks that if someone steals your phone, they pretty much own you. At least /home/user/MyDocs should be encrypted. Ideally this would be done with LUKS and decrypt at boot with a password. Perhaps [https://launchpad.net/ecryptfs encryptfs]
** https://bugs.maemo.org/show_bug.cgi?id=6030 is related for Mail storage - feel free to file a new enhancement request --andre

* In Contacts app, it always shows a SMS button for phone numbers, even if they are landlines.
** https://bugs.maemo.org/show_bug.cgi?id=6375 - probably WONTFIX for convenience reasons --andre

* Need a #maemo-devel channel too, as #maemo is noisy...

* xchat is totally not tweaked for maemo, such as scrolling...

* mplayer should use pulsebarfaudio by default, not alsa:
 echo &quot;ao = pulse&quot; &gt; ~/.mplayer/config

* Media Player doesn't thumbnail videos after they are taken with the N900 camera/video app. It didn't after closing and re-opening app, but I see they are now thumbnailed (post flashing). Anyway, it should do them &quot;immediately&quot;.

* Lots of internationalization packages are taking up space needlessly. But if, for example, Swedish Calendar support is removed, it wants to remove the whole calendar. The i10n packages should be removable without removing the whole app.

* OGG support out-of-the-box. I mean, c'mon now...
** Political reasons - see https://bugs.maemo.org/show_bug.cgi?id=176 --andre

* App Manager should include $LICENSE in Description.
** Worth an enhancement request, explaining why you want this --andre

* qik.com doesn't work with gnash (I mailed them and they mailed back saying, uh, ya, sorry).

* Continual autofocus on camera (apparently hardware limitation??)
** Sounds like https://bugs.maemo.org/show_bug.cgi?id=5688 ? Fixed after 42-11 release. --andre

==Bugs of Note==
Here's a few [https://bugs.maemo.org/ bugs] of interest to [https://bugs.maemo.org/buglist.cgi?bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=moe%40blagblagblag.org&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;emailreporter1=1 me]. Please [https://bugs.maemo.org/votes.cgi?action=show_user vote] for them. :)

===No Source Code===
* [https://bugs.maemo.org/show_bug.cgi?id=7019 Please release source code to getbootstate]
* [https://bugs.maemo.org/show_bug.cgi?id=6604 Provide source for libspeex, libspeexdsp]

===Builder===
* [https://bugs.maemo.org/show_bug.cgi?id=3354 Publishing packages to garage.maemo.org oftens results in &quot;lost connection&quot; and &quot;permission denied&quot; from scp]

* [https://bugs.maemo.org/show_bug.cgi?id=6723 Would be great if it would be possible to see build log of in-progress build]

* [https://bugs.maemo.org/show_bug.cgi?id=5818 We need servers]

===Argentina Time Zone===
* [https://bugs.maemo.org/show_bug.cgi?id=6481 Buenos Aires, Argentina time off by 1 hour]
* [https://bugs.maemo.org/show_bug.cgi?id=6534 Inital setup time zone: America Latina only lists cities in Mexico]

===Calendar/Tasks===
* [https://bugs.maemo.org/show_bug.cgi?id=6518 RFE: Show calendar when selecting dates in Tasks/Calendar]
* [https://bugs.maemo.org/show_bug.cgi?id=6505 Provide bi-daily/weekly/monthly recurrences]
* [https://bugs.maemo.org/show_bug.cgi?id=5955 Add option to select multiple days on weekly repeating events.]
* [https://bugs.maemo.org/show_bug.cgi?id=5954 Add relative day option for monthly repeating events (e.g. &quot;1st Monday of month&quot;)]
* [https://bugs.maemo.org/show_bug.cgi?id=5296 Day picker shows no daynames - hard to enter recurrence for e.g. 5 days only]

===Chat &amp; Call &amp; SMS===
* [https://bugs.maemo.org/show_bug.cgi?id=5624 Zoom in/out in IM chat does not reflow contents] (&quot;Carolina's bug&quot;)
* [https://bugs.maemo.org/show_bug.cgi?id=6548 Google Talk Video Chat crash &amp; lack of interoperability]


===Contacts===
* [https://bugs.maemo.org/show_bug.cgi?id=5742 Contacts: Provide &quot;Fax&quot; field(s)]
* [https://bugs.maemo.org/show_bug.cgi?id=6083 Edit/Rename field names or being able to add remarks]

===Canola===
* [https://bugs.maemo.org/show_bug.cgi?id=6511 Canola last.fm plugin doesn't allow you to enter username/password]

===Desktop===
* [https://bugs.maemo.org/show_bug.cgi?id=6632 Background image does not show correct rotation]

===Mailing Lists===
* [https://bugs.maemo.org/show_bug.cgi?id=6565 maemo-announce should be used or shut down]

===diff/busybox===
* [https://bugs.maemo.org/show_bug.cgi?id=3032 missing diff utility (required by the GNU Coding Standards)]

===wiki===
* [https://bugs.maemo.org/show_bug.cgi?id=6569 clicking on wiki username *edits* their page instead of viewing it]

===lsb-core===
* [https://bugs.maemo.org/show_bug.cgi?id=6606 No getopts, called by init-functions (lsb-core)] - breaks `/etc/init.d/asterisk start` (asterisk 1.6)

===ringtones===
* [https://bugs.maemo.org/show_bug.cgi?id=5356 Assign a ring tone and ring volume on a per-contact level]</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Cryptsetup</title>
    <id>3379</id>
    <revision>
      <id>26455</id>
      <timestamp>2010-01-13T12:56:20Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>todo</comment>
      <text xml:space="preserve">=Intro=
Cryptsetup is a good way to use an encrypted filesystem with a gnulinux system. I have made kernel modules and built the cryptsetup program so it can be used with Maemo.

=Kernel=
You need some kernel modules to use cryptsetup. You can build your own kernel or use mine. This wiki has [[User:Jebba/Kernel#Installing_my_custom_kernel|instructions on installing my custom kernel]].

=Userspace tools=
You'll need to install cryptsetup from the extras-devel repository.


=Create cryptfile=
Set up a file to use:

 #!/bin/sh
 set -x
 CRYPTSIZE=4
 LOOPFILE=/dev/loop0
 CRYPTNAME=cryptfooz
 CRYPTFILE=/home/user/MyDocs/$CRYPTNAME
 echo &quot;warning going to erase $CRYPTFILE&quot;
 read ok
 dd if=/dev/urandom of=$CRYPTFILE bs=1M count=$CRYPTSIZE
 cryptsetup remove $CRYPTNAME
 losetup -d $LOOPFILE
 losetup $LOOPFILE $CRYPTFILE
 cryptsetup -v \
 	--key-size=256 \
 	--cipher=twofish-cbc-essiv:sha256 \
 	create \
 	$CRYPTNAME \
 	$LOOPFILE
 mkfs.ext3 -j -m0 /dev/mapper/$CRYPTNAME
 mkdir -p /mnt/$CRYPTNAME
 mount -o noatime /dev/mapper/$CRYPTNAME /mnt/$CRYPTNAME
 chown user:users /mnt/$CRYPTNAME
 ls -la /mnt/$CRYPTNAME

With this, you can now copy files to /mnt/cryptfooz and they'll be encrypted.

=Umount=
(Untested, but should just be like this)

 # cryptfooz or whatever you named it above
 umount /mnt/cryptfooz
 
 # Then remove it from cryptsetup
 cryptsetup remove cryptofooz
 
 # Then freeup the loopback
 losetup -d /dev/loop0

=Mount=
So the next time you want to mount it, just run:

 #!/bin/sh
 set -x
 CRYPTSIZE=4
 LOOPFILE=/dev/loop0
 CRYPTNAME=cryptfooz
 CRYPTFILE=/home/user/MyDocs/$CRYPTNAME
 cryptsetup remove $CRYPTNAME
 losetup -d $LOOPFILE
 losetup $LOOPFILE $CRYPTFILE
 cryptsetup -v \
 	--key-size=256 \
 	--cipher=twofish-cbc-essiv:sha256 \
 	create \
 	$CRYPTNAME \
 	$LOOPFILE
 mount -o noatime /dev/mapper/$CRYPTNAME /mnt/$CRYPTNAME
 ls -la /mnt/$CRYPTNAME

=See Also=

* http://wiki.blagblagblag.org/Encrypting_Root_Filesystem - old, but lots of copying from my old page there.

=TODO=
May be possible, may not be possible:

* Encrypted /home/user

* Encrypted /home/user/MyDocs

* Encrypted root

* Encrypted swap

* Way to prompt for password</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/DBUS</title>
    <id>3251</id>
    <revision>
      <id>40355</id>
      <timestamp>2010-11-28T03:55:47Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <minor/>
      <comment>/* dbus-send-vibrate */</comment>
      <text xml:space="preserve">=DBUS=

This section is being merged to form a new, better, more powerful [[Phone_control|Phone control]] page. See also [https://garage.maemo.org/plugins/wiki/index.php?Tools&amp;id=1106&amp;type=g call forward] &amp; [https://garage.maemo.org/plugins/wiki/index.php?Tools&amp;id=1106&amp;type=g CSD].

Here's a number of dbus examples that can be run as simple shell scripts. When running them they should be run with `run-standalone.sh` in front of them to set up the environment correctly. Otherwise they may barf when run from cron, startup, install scripts, etc. They run fine when run as user &quot;user&quot; without `run-standalone.sh`. Example:
 run-standalone.sh dbus-send /foo bar 'boo'

===dbus-send-call===
 dbus-send --system --dest=com.nokia.csd.Call --type=method_call --print-reply \
 /com/nokia/csd/call com.nokia.csd.Call.CreateWith string:&quot;$1&quot; uint32:0

With this fantastic command you can make a fone call from the command line. Change $1 to whatever number you want, or if you put this in a shell script, run it and use the number you want to call as the option, ala:
 dbus-send-call 15555551234

===dbus-send-call-start-ui===
 dbus-send --print-reply --type=method_call --dest=com.nokia.HildonDesktop.AppMgr /com/nokia/HildonDesktop/AppMgr com.nokia.HildonDesktop.AppMgr.LaunchApplication string:'rtcom-call-ui'

===dbus-send-tick===
Vibrates like the &quot;tick&quot; when you tap or somethig.
 dbus-send --print-reply --system --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_vibrator_pattern_activate string:'PatternTouchscreen'

===dbus-send-vibrate===
Vibrate the phone  :)
 dbus-send --print-reply --system --dest=com.nokia.mce /com/nokia/mce/request  com.nokia.mce.request.req_vibrator_pattern_activate string:'PatternChatAndEmail'
is a little bit longer

===dbus-send-activate-led===
 dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_led_pattern_activate string:PatternCommunicationIM

===dbus-send-deactivate-led===
 dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_led_pattern_deactivate string:PatternCommunicationIM

===dbus-send-disconnect-net===
 dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true

===dbus-send-email-new===
 dbus-send --print-reply --type=method_call --dest=com.nokia.modest /com/nokia/modest com.nokia.modest.MailTo string:mailto:

===dbus-send-email-tx-rx===
Doesn't work
 dbus-send --session --type=method_call --dest=com.nokia.osso_email /com/nokia/osso_email com.nokia.osso_email.send_and_receive

===dbus-send-get-imei===
 dbus-send --system --print-reply --type=method_call --dest=com.nokia.phone.SIM /com/nokia/phone/SIM/security Phone.Sim.Security.get_imei

===dbus-send-google===
 dbus-send --system --type=method_call --dest=&quot;com.nokia.osso_browser&quot; --print-reply /com/nokia/osso_browser/request com.nokia.osso_browser.load_url string:&quot;google.com&quot;

===dbus-send-hello-world===
 dbus-send --print-reply  \
 --type=method_call --dest=org.freedesktop.Notifications  \
 /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteDialog  \
 string:'Hello, world!' uint32:0 string:'NAO OK!'

===dbus-send-im-here===
 dbus-send --type=method_call --print-reply --dest=org.freedesktop.Telepathy.MissionControl /org/freedesktop/Telepathy/MissionControl org.freedesktop.Telepathy.MissionControl.SetPresence uint32:2 string:&quot;I'm here&quot;

===dbus-send-media-play===
 dbus-send --print-reply --dest=com.nokia.mediaplayer /com/nokia/mediaplayer com.nokia.mediaplayer.mime_open string:&quot;file:///$1&quot;

===dbus-send-music-pause===
 dbus-send --dest=com.nokia.osso_media_server /com/nokia/osso_media_server com.nokia.osso_media_server.music.pause



===dbus-send-pause-panucci===
 dbus-send --type=&quot;method_call&quot; --dest=org.panucci.panucciInterface /panucciInterface org.panucci.panucciInterface.playPause

===dbus-send-reboot===
 dbus-send --system --type=method_call --dest=&quot;com.nokia.dsme&quot; --print-reply &quot;/com/nokia/dsme/request&quot; com.nokia.dsme.request.req_reboot

===dbus-send-GSM-radio-on-off===
 dbus-send --system --type=method_call --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.set_radio boolean:false
switch off (false) and on (true) the &quot;phone&quot;/modem

===dbus-send-regist-status===
 dbus-send --system --print-reply --type=method_call --dest='com.nokia.phone.net' /com/nokia/phone/net Phone.Net.get_registration_status

===dbus-send-show_conn===
 dbus-send --print-reply --system --dest=com.nokia.icd_ui /com/nokia/icd_ui com.nokia.icd_ui.show_conn_dlg boolean:true

===dbus-send-shutdown===
 dbus-send --system --type=method_call --dest=&quot;com.nokia.dsme&quot; --print-reply &quot;/com/nokia/dsme/request&quot; com.nokia.dsme.request.req_shutdown

===dbus-send-speaker-off===
 dbus-send --type=method_call --dest=com.nokia.osso_hp_ls_controller /com/nokia/osso_hp_ls_controller com.nokia.osso_hp_ls_controller.loudspeaker.force_ loudspeaker_off

===dbus-send-speaker-on===
 dbus-send --type=method_call --dest=com.nokia.osso_hp_ls_controller /com/nokia/osso_hp_ls_controller com.nokia.osso_hp_ls_controller.loudspeaker.force_ loudspeaker_on

===dbus-send-task-switcher===
 dbus-send --type=signal --session /com/nokia/hildon_desktop com.nokia.hildon_desktop.exit_app_view

===dbus-send-lock===
 dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_tklock_mode_change string:&quot;locked&quot;

===dbus-send-unlock===
 dbus-send --system --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_tklock_mode_change string:&quot;unlocked&quot;

===dbus-send-lock2 (with code)===
 dbus-send --print-reply --system --type=method_call --dest=com.nokia.system_ui /com/nokia/system_ui/request com.nokia.system_ui.request.devlock_open string:'com.nokia.mce' string:'/com/nokia/mce/request' string:'com.nokia.mce.request' string:'devlock_callback' uint32:'3'

===dbus-send-unlock2 (with code)===
 dbus-send --print-reply --system --type=method_call --dest=com.nokia.system_ui /com/nokia/system_ui/request com.nokia.system_ui.request.devlock_close string:'com.nokia.mce' string:'/com/nokia/mce/request' string:'com.nokia.mce.request' string:'devlock_callback' uint32:'0'

===dbus-send-switch-profile===
 dbus-send --session --dest=com.nokia.profiled --type=method_call /com/nokia/profiled com.nokia.profiled.set_profile string:&quot;silent&quot;

===dbus-send-switch-to-offline-mode===
 dbus-send --system --dest=com.nokia.mce --type=method_call /com/nokia/mce/request com.nokia.mce.request.req_device_mode_change string:&quot;offline&quot;

===dbus-send-disable-vibration-in-silent-profile===
 dbus-send --session --dest=com.nokia.profiled --type=method_call /com/nokia/profiled com.nokia.profiled.set_value string:&quot;silent&quot; string:&quot;vibrating.alert.enabled&quot;  string:&quot;Off&quot;

===dbus-send-launch-application===
 dbus-send --session --dest=com.nokia.HildonDesktop.AppMgr --type=method_call /com/nokia/HildonDesktop/AppMgr com.nokia.HildonDesktop.AppMgr.LaunchApplication string:MyApp
Launch an application. MyApp is the application name.</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Espejo</title>
    <id>3317</id>
    <revision>
      <id>26776</id>
      <timestamp>2010-01-17T02:57:11Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>/* vsftpd */ gone</comment>
      <text xml:space="preserve">=Overview=
Espejo is a temporary virtual computer set up to mirror the Maemo 5 (Fremantle) repository.

* Hostname: espejo.freemoe.org

* Admins:
** [[User:Jebba|jebba]] &lt;moe@blagblagblag.org&gt;
** [[User:Jeremiah|jeremiah]]

* Location: USA @ [http://www.netdepot.com NetDepot]

* Services:
** [http://espejo.freemoe.org http://espejo.freemoe.org]
** rsync://espejo.freemoe.org

=Usage=
If you would like to use this mirror, you can add any of these lines to your /etc/apt/sources.list or add them via tap tap tap with the Hildon Application Manager:

 # Extras
 deb http://espejo.freemoe.org/repository.maemo.org/extras/ fremantle free
 # Extras source
 deb-src http://espejo.freemoe.org/repository.maemo.org/extras/ fremantle free
 
 # Extras Testing
 deb http://espejo.freemoe.org/repository.maemo.org/extras-testing/ fremantle free
 # Extras Testing source
 deb-src http://espejo.freemoe.org/repository.maemo.org/extras-testing/ fremantle free
 
 # Extras Development
 deb http://espejo.freemoe.org/repository.maemo.org/extras-devel/ fremantle free
 # Extras Development Source
 deb-src http://espejo.freemoe.org/repository.maemo.org/extras-devel/fremantle free
 
 
 # SDK
 deb http://espejo.freemoe.org/repository.maemo.org/ fremantle/sdk free
 # SDK Source
 deb-src http://espejo.freemoe.org/repository.maemo.org/ fremantle/sdk free
 
 # Tools
 deb http://espejo.freemoe.org/repository.maemo.org/ fremantle/tools free
 # Tools Source
 deb-src http://espejo.freemoe.org/repository.maemo.org/ fremantle/tools free


=Server Details=
The server is a Debian Lenny [http://www.linux-kvm.org/ KVM] (QEMU) within a Debian Squeeze/Sid host server.


==Host Hardware==
* (8) 2GHz Processors (E5405)
* 4 Gig RAM
* 750G SATA (ST3750330AS)
* (3) 30G SCSI RAID-0


==Guest Hardware==
Virtual, of course. :)

* 4 CPU
* 1 Gig RAM
* Disk:
 $ df -h
 Filesystem            Size  Used Avail Use% Mounted on
 /dev/vda1             4.0G  758M  3.0G  20% /
 /dev/vde1              50G  183M   50G   1% /var/www/repository.maemo.org
 /dev/vdb1              50G  951M   49G   2% /var/www/repository.maemo.org/extras
 /dev/vdc1              50G  2.5G   47G   5% /var/www/repository.maemo.org/extras-testing
 /dev/vdd1              99G   16G   84G  16% /var/www/repository.maemo.org/extras-devel
 /dev/vdf1              50G  2.3G   48G   5% /var/www/repository.maemo.org/pool

==Daemons==
===apache2===
No modperl, modphp, etc. installed. Other than that, total stock install.


===rsync===
Stock Debian Lenny.

 $ cat /etc/rsyncd.conf
 
 [repository.maemo.org]
   path = /var/www/repository.maemo.org
   comment = Extras Repositories for Maemo 5 (Fremantle)
   read only = yes
   use chroot = yes
   max connections=256
   list = yes
   uid = nobody
   gid = rsync
   dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

 cat /etc/default/rsync  # relevent tidbit:
 RSYNC_ENABLE=true

* I added group &quot;rsync&quot; as Debian doesn't come stock with a group nobody. Don't think it matters &quot;too&quot; much.



==Guest inital setup==
This is quite crude, but gives you an idea:

 After install, log in as root via VNC
 
 apt-get install git-core
 apt-get install openssh-server openssh-client
 
 then ssh in remotely as jebba
 
 # faster way to do this but wtf
 jebba@espejo:~$ ssh localhost
 jebba@espejo:~$ logout
 
 jebba@donald:~$ scp -p .ssh/id_rsa.pub espejo.freemoe.org:.ssh/authorized_keys
 
 jebba@donald:~$ ssh jebba@espejo.freemoe.org
 
 topo:~$ cat /etc/.gitignore 
 ld.so.cache
 prelink.cache
 *.swp
 ld.so.cache
 adjtime
 blkid.tab
 blkid.tab.old
 mtab
 adjtime
 sv/dnscache/log
 sv/dnscache/seed
 ld.so.cache
 
 
 espejo:~# cd /etc/
 espejo:/etc# git init
 Initialized empty Git repository in /etc/.git/
 espejo:/etc# chmod og-rwx .git
 espejo:/etc# git add .
 espejo:/etc# EDITOR=vim git commit -a
 
 blow out unwanted apache shit, just reinstall to get rid of too much crap
 espejo:/etc# /etc/init.d/apache2 stop
 
 espejo:/etc# apt-get remove libapache2-mod-perl2 libapache2-mod-php5 libapache2-mod-python ; apt-get autoremove
 
 espejo:/etc# apt-get remove apache2-doc apache2-mpm-prefork apache2-utils apache2.2-common
 
 gah, it installs mysql shit too. Should have started with a bare install
 apt-get autoremove
 
 gah, clean up poo
 dpkg -l|grep ^rc
 
 espejo:/etc# dpkg --purge apache2-doc apache2.2-common libapache2-mod-perl2 libapache2-mod-php5 libapache2-mod-python libapr1 libaprutil1 libmysqlclient15off libpq5 mysql-common php5-common
 
 rm -rf /etc/php5
 
 update-rc.d -f exim4  remove
 update-rc.d -f rsync remove
 update-rc.d -f nfs-common remove
 update-rc.d -f openbsd-inetd remove
 
 apt-get install apache2
 gah, drags in libmysqlclient15off libpq5 mysql-common
 reboot
 
 
 espejo:~# cd /etc/
 espejo:/etc# git add .
 espejo:/etc# git c
 espejo:/etc# EDITOR=vim git commit -a
 
 apt-get install sudo
 
 # shoulda set up gitconfig earlier
 $ cat ~/.gitconfig 
 [user]
 	name = Jeff Moe
 	email = moe@blagblagblag.org
 [color]
   branch = auto
   diff = auto
   status = auto
 
 
 mkdir /var/www/repository.maemo.org
 
 
 setup  new drives in startup script and POWEROFF (not reboot--need to restart script to read in new drives)
 
 
 sudo fdisk /dev/vdb
 sudo fdisk /dev/vdc
 sudo fdisk /dev/vdd
 
 and give them one fat partition
 # format
 sudo /sbin/mkfs.ext3 -j -m0 /dev/vdb1
 sudo /sbin/mkfs.ext3 -j -m0 /dev/vdc1
 sudo /sbin/mkfs.ext3 -j -m0 /dev/vdd1
 
 mkdir -p /var/www/repository.maemo.org/extras /var/www/repository.maemo.org/extras-testing /var/www/repository.maemo.org/extras-devel
 
 add them to fstab
 sudo mount -a
 
 chown them to jebba:jebba
 sudo chown jebba:jebba /var/www/repository.maemo.org/extras /var/www/repository.maemo.org/extras-testing /var/www/repository.maemo.org/extras-deveel
 
 rsync over from topo what you already downloaded:
 rsync -ault --rsh=ssh /HUGE/mirrors/repository.maemo.org/ espejo.freemoe.org:/var/www/repository.maemo.org/
 
 
 sudo apt-get install reprepro
 
 add rsyncd conf
 turn of fucking portmap ? why that starting.
 sudo /usr/sbin/update-rc.d -f portmap remove
 sudo /usr/sbin/update-rc.d -f mountnfs.sh remove
 sudo /usr/sbin/update-rc.d -f mountnfs-bootclean.sh remove
 sudo /usr/sbin/update-rc.d -f x11-common remove
 
 
 turn on rsyncd
 
 set up vsftpd
 
 sudo apt-get install reprepro gpgsm inoticoming
 
  reprepro -vv --basedir=/var/www/repository.maemo.org/


==Host Server==
===Initial setup===
* Latest kernel with virtio etc. (Include relevant kernel .config).

* Create disk images:

Example:
 qemu-img create -f qcow2 -o cluster_size=2097152,preallocation=metadata /HUGE/kvm/espejo/espejo-FOO.qcow2 50G



===Daily Use===

* Start kvm on boot via good ol' rc.local:

 /usr/local/bin/kvm-start-espejo &gt;&gt; /tmp/espejo-kvm-err 2&gt;&amp;1 &amp;

Startup script:
 $ cat /usr/local/bin/kvm-start-espejo 
 #!/bin/sh
 
 /usr/local/bin/qemu-system-x86_64 \
        -drive \
         file=/HUGE/kvm/espejo/espejo.qcow2,index=0,if=virtio,cache=writeback,boot=on \
        -drive \
         file=/HUGE/kvm/espejo/espejo-extras.qcow2,index=1,if=virtio,cache=writeback \
        -drive \
         file=/HUGE/kvm/espejo/espejo-extras-testing.qcow2,index=2,if=virtio,cache=writeback \
        -drive \
         file=/HUGE/kvm/espejo/espejo-extras-devel.qcow2,index=3,if=virtio,cache=writeback \
        -drive \
         file=/HUGE/kvm/espejo/espejo-pool.qcow2,index=4,if=virtio,cache=writeback \
        -drive \
         file=/HUGE/kvm/espejo/espejo-maemo.qcow2,index=5,if=virtio,cache=writeback \
        -cpu kvm64 \
        -m 1024 \
        -vnc :6 \
        -daemonize \
        -enable-kvm \
        -name espejo \
        -net nic,vlan=0,model=virtio \
        -net user,hostfwd=tcp:63.247.92.156:22-:22,hostfwd=tcp:63.247.92.156:80-:80,hostfwd=tcp:63.247.92.156:873-:873,hostfwd=tcp:63.247.92.156:20-:20,hostfwd=tcp:63.247.92.156:21-:21 \
        -smp 4 \
        -runas jebba &amp;

=TODO=
* Could set up separate partitions for /tmp and such, but probably not worth it.

* Build latest/greatest kernel on guest to take advantage of latest virtio code to improve disk performance.

* Set up puppet for configs (worthwhile?).</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Etch</title>
    <id>3514</id>
    <revision>
      <id>28221</id>
      <timestamp>2010-02-03T05:37:29Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>formatting</comment>
      <text xml:space="preserve">* I rebuilt all Debian Etch source packages with the Maemo 5 SDK and sdbmock.

* 10,220 Source packages processed.

*  6,451 .debs produced.

* The job ran for 8 days.

* They have not been run through maemo-optify yet--I will test the fix for the recursive symlink bug[1] when ready.

* They were compiled against the current maemos-extras repository. They have no dependencies other than that. In other words, no package within the rebuild depends on anything else in the rebuild--this is the first pass.

* I could batch import packages that don't already exist in extras-devel. I think this would be rad.

* Download locations (temporary):
Directory:
 http://obra.freemoe.org/freemoe-etch/

Install file for N900:
 http://obra.freemoe.org/obra.install

/etc/apt/sources.list:
 deb http://obra.freemoe.org/ freemoe-etch/

* http://talk.maemo.org/showthread.php?t=43188

* http://thread.gmane.org/gmane.comp.handhelds.maemo.devel/24237</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Fedora</title>
    <id>3306</id>
    <revision>
      <id>46683</id>
      <timestamp>2012-02-17T22:24:42Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <minor/>
      <comment>Undo revision 46649 by [[Special:Contributions/124.124.85.243|124.124.85.243]] ([[User talk:124.124.85.243|Talk]]) undo unclear deletes</comment>
      <text xml:space="preserve">I have installed Fedora 12 on my Nokia N900.

[[Image:N900-fedora-f12.jpg|left|thumb|alt=Jebba's N900 Fedora 12|Fedora 12 on N900]]

Screen reads:

 Fedora release 12 (Constantine)
 Kernel 2.6.28-omap1-jebba5 on an arm7l (tty1)
 
 fedora-arm login: _

=HOWTO Install Fedora 12 on Nokia N900=
It boots up happily. No GUI, no phonecalls, no battery charging support, etc. Wifi works. Testing xorg RSN.

==Kernel==
You will need to install a kernel that has a framebuffer console. You can use your own or use mine. See: [[User:Jebba/Kernel#Installing_my_custom_kernel | Installing my custom kernel]] if you would like to use mine. Version 2.6.28-omap1-jebba5 is known to &quot;work&quot;.



==bootmenu==
You need to have getbootstate version 1.0.35+0m5 or greater for this to work. These docs are basically the same as installing [[User:Jebba/Mer | Mer]].

 dpkg -l getbootstate

(As a side note, [https://bugs.maemo.org/show_bug.cgi?id=7019 getbootstate is closed software]. Please vote for this bug and/or clamour for it to be released as free software.)

* [http://talk.maemo.org/showpost.php?p=372885&amp;postcount=22 discussion on t.m.o]

I have four partitions on my MicroSD card. The first one is 100M of VFAT just to shut up fremantle. The second is 1G of swap. The third is 7G of space for fremantle. The remaining space is around 7G of space for Fedora. You can install it in far less space, but I have a 16G card, so that's what I did. These docs assume you use my partitioning.


 # Boot up into Maemo / Fremantle
 
 # Grab this package:
 wget http://www.daimi.au.dk/~cvm/bootmenu_1.6_armel.deb
 
 # Be root
 sudo gainroot
 
 # Install bootmenu
 dpkg -i bootmenu_1.6_armel.deb

Then tappy tap tap the bootmenu install icon and answer yes.

Now you need to set up Fedora in the menu for bootmenu. See also: [[Mer/Documentation/Bootmenu| Mer bootmenu docs]].

I put everything on the forth partition on an ext3 formatted &quot;external&quot; MicroSD card (the one that's right next to the camera).

 # edit/create this file to create a boot menu item for Fedora:
 vim /etc/bootmenu.d/fedora.ext.item
 
 # Make it look justa lika thisa:
 
 ITEM_NAME=&quot;Fedora 12 (external SD, partition 4)&quot;
 ITEM_ID=&quot;fedora&quot;
 ITEM_DEVICE=&quot;${EXT_CARD}p4&quot;
 ITEM_MODULES=&quot;mbcache jbd ext3&quot;
 ITEM_FSTYPE=&quot;ext3&quot;
 ITEM_FSOPTIONS=&quot;noatime,rw&quot;

Then shutoff the phone and reboot with KEYBOARD SLID OUT, so you get the bootmenu.

==rootfs==

Boot into your system like &quot;normal&quot; into Maemo fremantle.

Set up and download the needed files:

 # This will be a nice place to keep things
 mkdir -p /home/user/MyDocs/Fedora/rootfs
 
 # go hence
 cd /home/user/MyDocs/Fedora/rootfs
 
 # grab the root image
 wget http://ftp.linux.org.uk/pub/linux/arm/fedora/rootfs/rootfs-f12.tar.bz2

===fedora-setup-in-chroot===
Make this file and put it here:
/home/user/MyDocs/Fedora/fedora-setup-in-chroot

Note, in future revisions, I will have more in this script, this is just a starting point for now.

 #!/bin/sh
 
 set -x
 
 echo &quot;uh, set a root password!&quot;
 passwd


===freemoe-fedora-install===
Make &amp; run this script; adjust the partition numbers to match your own setup.

 #!/bin/sh
 
 set -x
 
 echo &quot;this is going to format your microsd, take care!&quot;
 
 echo &quot;THIS FORMATS PARTITION 4 ON YOUR MICROSD&quot;
 
 read ok
 read ok
 exit 0 # you get this i hope
 
 echo
 
 sudo umount /dev/mmcblk1p4
 
 sudo mkfs.ext3 -j -m1 /dev/mmcblk1p4
 
 sudo fsck -vvv /dev/mmcblk1p4
 
 sudo mkdir -p /media/mmc4
 
 sudo mount -o noatime /dev/mmcblk1p4 /media/mmc4/
 
 cd /media/mmc4/
 
 bzcat /home/user/MyDocs/Fedora/rootfs/rootfs-f12.tar.bz2 | sudo tar x
 
 sudo mv rootfs-f12/* .
 sudo rmdir rootfs-f12
 
 sudo cp -a /lib/modules/*  /media/mmc4/lib/modules/
 
 echo &quot;WARNING WARNING WARNING!!!!&quot;
 echo &quot;Copying over NON-FREE FIRMWARE&quot;
 echo &quot;PAY PENANCE!!!!&quot;
 sudo cp -a /lib/firmware/*  /media/mmc4/lib/firmware/
 
 sudo cp -p /home/user/MyDocs/Fedora/fedora-setup-in-chroot ./
 
 sudo chmod +x fedora-setup-in-chroot
 
 sync
 
 echo
 echo &quot;now run ./fedora-setup-in-chroot after you enter the chroot&quot;
 echo &quot;this is convenient too:&quot;
 echo &quot;export HOME=/root&quot;
 echo
 
 sudo chroot /media/mmc4 /bin/bash

==Disable watchdog==
You have to disable the watchdog with the flasher tool or the system will just shut down on bootup:

 ./flasher-3.5 --set-rd-flags=no-omap-wd
 
 ./flasher-3.5 --set-rd-flags=no-ext-wd
 
 ./flasher-3.5 --enable-rd-mode

=Wifi=

You'll also need to add &quot;.&quot; to root's PATH or put that somewhere it root's PATH.

 [root@fedora-arm ~]# tail -1 /root/.bashrc 

Here's a crufty crappy script to get wifi and net:

 # cat wlanon 
 #!/bin/sh
 
 WLAN=`iwconfig |grep wlan | cut -f 1 -d &quot; &quot;`
 echo &quot;$WLAN&quot;
 
 ifconfig $WLAN down
 sleep 1
 iwconfig $WLAN mode managed
 sleep 1
 ifconfig $WLAN up
 sleep 1
 iwconfig $WLAN essid consume
 sleep 1
 ifconfig $WLAN 10.0.0.3 netmask 255.255.255.0 up
 
 iwconfig $WLAN
 sleep 2
 ifconfig $WLAN
 
 route add default gw 10.0.0.2

==OLD==

(Will add this to script later)

I got wifi going by writing a simple script that I can run at boot. Can't use many of the keys, so no &quot;0&quot;, &quot;/&quot; etc. I used iwconfig which I yum installed in the chroot, but this could easily be done with the more modern &quot;iw&quot; which comes installed.

 [root@fedora-arm ~]# cat startiwconfig
 #!/bin/sh
 
 iwconfig wlan0 essid consume
 dhclient wlan0

 PATH=$PATH:.

 # cat /etc/sysconfig/network-scripts/ifcfg-wlan0 
 # WLAN Interface
 DEVICE=wlan0
 #HWADDR=00:00:00:00:00:00
 ONBOOT=no
 BOOTPROTO=dhcp
 TYPE=Wireless
 NM_CONTROLLED=no
 USERCTL=yes
 PEERDNS=yes
 IPV6INIT=no
 #MODE=Master
 RATE=auto
 ESSID=consume
 CHANNEL=


Note: I had wifi working fine, then I installed a bunch of apps and network config broke and can't find the device anymore. :(

Note 2: If you reboot without powering off or perhaps yanking the battery, your device may appear as wlan2 or wlan3 etc.


'''EDIT: UPDATE:''' by SimonGie 28/07/2010

This works for a network that has no encryption but will not connect to one that does.
Boot into Maemo and chroot into the Fedora install. Then yum install wpa_supplicant.
Then edit your wpa_supplicant.conf to something like this:

This config below is for two wireless networks...I have one at home and at work that I could connect to. Obviously you need to change the SSID and passkeys to your relevant info. If you only need to connect to one wlan, then leave the 2nd one off.


        ap_scan=1
        ctrl_interface=/var/run/wpa_supplicant
        network={
        ssid=&quot;network SSID 1&quot;
        scan_ssid=1
        proto=WPA
        key_mgmt=WPA-PSK
        psk=&quot;Passkey1&quot;
        pairwise=TKIP
        group=TKIP
        }
        network={
        ssid=&quot;network SSID 2&quot;
        scan_ssid=1
        proto=WPA
        key_mgmt=WPA-PSK
        psk=&quot;Passkey2&quot;
        pairwise=TKIP
        group=TKIP
        }


Save that. Then make a little initialisation script:

        vim wlanon

Put this in the file:

        wpa_supplicant -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf -Dwext
        rhclient wlan0


and save it
Then 

        chmod +x wlanon
 
Then reboot the phone and boot into Fedora desktop 
Once logged in, run the script wlanon
This should initialise the wlan card, you can check this by typing iwconfig

If you have device does not exist errors, boot into Maemo, mount the Fedora partition and delete the file 

        /etc/udev/rules.d/70-persistent-net.rules

Because the wireless MAC address changes for some reason and Udev assigns it a different name. Deleting that file will make Udev redetect it as wlan0

You should now have internet access.

Do a yum install NetworkManager-gnome and let it install. When eventually you boot into the desktop, NetworkManager should start and you will be able to connect to any wireless network, regarless of wpa_supplicant.conf

If NetworkManager complains about required resources, run this command from the terminal

       gtk-update-icon-cache -f /usr/share/icons/hicolor

NetworkManager is working flawlessly with my install.
--[[Special:Contributions/77.101.61.5|77.101.61.5]] 20:49, 27 July 2010 (UTC)

=X.org=
X is up and running with XFCE &amp; openbox. I have the touchscreen working. I can do touchscreen calibration.

 # as root, I did this via ssh when networking was working
 yum groupinstall Base-X
 
 # grab a desktop. No openbox or lxde available at the moment for ARM.
 yum groupinstall XFCE
 
 # Screen config.
 yum install tslib xorg-x11-apps
 
 # fix /etc/hosts to this so XFCE doesn't complain:
 127.0.0.1       localhost localhost.localdomain fedora-arm
 
 # since keyboard isn't working you have to set up this script from
 # chroot or ssh in:
 echo &quot;TSLIB_TSDEVICE=/dev/input/event3 TSLIB_CONFFILE=/etc/ts.conf ts_calibrate&quot; &gt; /root/ts
 chmod +x /root/ts
 
 # then next time you boot up, log in as root and run &quot;ts&quot; to calibrate.
 
 # Uncomment this line in /etc/ts.conf:
 module_raw input

=Misc=

In a chroot I wanted to do a `yum update` and installs. Did a `mount -a` and needed to create a device:

 cd /dev
 MAKEDEV urandom

 yum update
 yum install wireless-tools openssh-clients git

 route add default gw 192.168.1.1

* disable /etc/sysconfig/network-scripts/ifcfg-eth0

* Have lame network startup script run at boot.

* stop startup stuff

 chkconfig abrtd off
 chkconfig auditd off
 chkconfig ip6tables off
 chkconfig iptables off
 chkconfig netconsole off
 chkconfig netfs off
 chkconfig restorecond off

* Build tools:

 yum groupinstall --skip-broken &quot;Development Tools&quot;


yum install -y vim-enhanced file gqview xorg-x11-apps xterm

* Auto login, edit /etc/gdm/custom.conf
 [daemon]
 AutomaticLoginEnable=true
 AutomaticLogin=jebba

* Edit /etc/inittab to set default runlevel to 5.

To get X pointer and keyboard working:

* Mount up Maemo root partition:

 mkdir -p /mnt/maemo
 mount -t ubifs ubi0:rootfs /mnt/maemo

* /usr/share/hal/fdi/* stuff from maemo to get touchscreen working in X. Copy it to /etc/hal/...

* Copy over xkb stuff to get numbers etc from keyboard working:

 mv /usr/share/X11/xkb /usr/share/X11/xkb.f12
 cp -a /mnt/maemo/usr/share/X11/xkb /usr/share/X11/xkb

* ofono

 yum -y install glib2-devel dbus-devel libudev-devel

To initialize modem, you need to run this non-free command:

 /mnt/initfs/sbin/phonet -a 0x6C -i phonet0
 ifconfig phonet0 up # or:
 ip link set dev phonet0 up

* misc misc misc

 yum -y install openbox rxvt-unicode alsa-utils sox

'''UPDATE'''

I had issues updating via yum, and I had to rebuild the database. Boot into Maemo and mount and chroot the Fedora partition. Then run 
      rm -f /var/lib/__db*
and then
      rpm --rebuilddb

Once it's done you should be able to run yum
--[[Special:Contributions/77.101.61.5|77.101.61.5]] 20:49, 27 July 2010 (UTC)

=Battery?=
Copying over the script from Mer to get the battery working appears to run, not certain how it is working yet.

 cp -p /mnt/mer/etc/init.d/n900-support /etc/init.d/
 # edit n900-support, adding this line:
 # chkconfig: - 58 74
 chkconfig --level 35 n900-support on

=watchdog=
To disable R&amp;D mode, try this:

 yum -y install watchdog
 wget http://atorkhov.fedorapeople.org/n900_wd-1-1.noarch.rpm
 rpm -Uvh n900_wd-1-1.noarch.rpm

==kludge up symlinks==

 chroot /mnt/initfs/
 ln -s /f12/tmp/bme-dbus-socket /tmp/bme-dbus-socket

Outside chroot:
 ln -s /mnt/initfs/tmp/dsmesock /tmp/
 sudo ln -s /mnt/initfs/tmp/.bmesrv /tmp/
 
 cp -p /mnt/initfs/usr/lib/libbmeipc.so.0 /usr/lib
 cp -p /mnt/initfs/usr/lib/hal/hald-addon-bme /usr/libexec/hald-addon-bme
 cp -p /mnt/initfs/usr/share/hal/fdi/policy/10osvendor/10-bme.fdi /etc/hal/fdi/policy/10osvendor/

==watchdog other==
Here's some scripts that I got from somewhere, i think another fedora/n900 user. :)  It is another way to disable the watchdog without having to enter R&amp;D mode.

===n900_wd===
 #!/bin/sh
 #
 # chkconfig: 12345 01 99
 # description: N900 watchdog kicker
 #
 
 # Source function library.
 . /etc/rc.d/init.d/functions
 
 [ -x /usr/sbin/wd_keepalive ] || exit 0
 
 RETVAL=0
 prog=wd_keepalive
 pidfile=/var/run/wd_keepalive.pid
 lockfile=/var/lock/subsys/n900_wd
 
 start() {
 	echo -n $&quot;Starting $prog: &quot;
 	/usr/sbin/${prog} -c /etc/watchdog-omap.conf
 	RETVAL=$?
 	[ $RETVAL -ne 0 ] &amp;&amp; (echo_failure; echo; return $RETVAL)
 	/usr/sbin/${prog} -c /etc/watchdog-twl4030.conf
 	RETVAL=$?
 	[ $RETVAL -eq 0 ] &amp;&amp; touch $lockfile
 	[ $RETVAL -eq 0 ] &amp;&amp; echo_success
 	[ $RETVAL -ne 0 ] &amp;&amp; echo_failure
 	echo
 	return $RETVAL
 }
 
 stop() {
 	rm -f $lockfile $pidfile
 }
 
 case &quot;$1&quot; in
   start)
 	start
 	;;
   stop)
 	stop
 	;;
   status)
 	status $prog
 	RETVAL=$?
 	;;
   *)
 	echo $&quot;Usage: $0 {start|status}&quot;
 	exit 1
 esac

===watchdog-twl4030.conf===

 watchdog-device		= /dev/twl4030_wdt
 interval		= 10
 realtime		= yes
 priority		= 1

===watchdog-omap.conf===

 watchdog-device		= /dev/watchdog
 interval		= 10
 realtime		= yes
 priority		= 1

=See also=

* [http://talk.maemo.org/showthread.php?t=38987 Thread about Fedora 12 on talk.maemo.org]

* [http://fedoraproject.org/wiki/Architectures/ARM ARM at Fedora wiki]

* [http://fedora-arm.blogspot.com/ Fedora ARM blog]

* [https://www.redhat.com/archives/fedora-arm/ Fedora ARM mailing list archives]

* [https://bugzilla.redhat.com/show_bug.cgi?id=ARMTracker Fedora ARM bug tracker]

* [http://ftp.linux.org.uk/pub/linux/arm/fedora/rootfs/?C=M;O=D Fedora ARM roots]

* [[User:Jebba/Mer | My docs on installing Mer, which is similar procedure]]

* [http://alexeytorkhov.blogspot.com/2010/02/running-fedora-arm-on-nokia-n900.html Another N900/Fedora user]</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Flash</title>
    <id>3254</id>
    <revision>
      <id>25548</id>
      <timestamp>2010-01-01T17:49:03Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>whoops had it twice</comment>
      <text xml:space="preserve">=Try this before reflashing!=

==The easiest way==
This may be the easiest way to debrick a device. Try this first:

* take battery out
* insert USB cable (to boot device with charging boot reason)
* insert battery &amp; put back cover back
* remove USB cable


=Debrick=
Another more complicated way to restore your bricked device without reflashing...

==Debrick without reflashing!==
[http://talk.maemo.org/showthread.php?t=37420 Try this before reflashing!]


I have found a way to &quot;de-brick&quot; a device that does not require reflashing.

If your device is booting up and hung with the second dot lit, like:

 *  (*)  *  *  *

this may solve your problem.

1) Get the proprietary (gah!) Nokia firmware flashing program.

2) Power off your phone.

3) Hold down &quot;u&quot; on your fone and plug the USB cable into your phone and your GNU/Linux laptop. This will put it in the same mode as you need when you are flashing it.

4) Run this command as root (or preface with &quot;sudo&quot;). It will only take a second or two.

 ./flasher-3.5 --enable-rd-mode

5) Unplug cables and your system will reboot (or poweroff).

6) Boot up your system, it is now in R&amp;D mode. :)  It will (possibly?) prompt you to enter time/data again.

7) Now that everything is fine, power off the system normally again. DO NOT LEAVE YOUR SYSTEM IN R&amp;D MODE, as it eats babies.

8) With your phone powered off hold down &quot;u&quot; on the phone, and plug in the USB cables to the phone and your GNU/Linux laptop.

9) Run this command as root (or preface with &quot;sudo&quot;). It will only take a second or two.

 ./flasher-3.5 --disable-rd-mode

10) Unplug cables and your system will reboot (or poweroff).

11) Boot up your system, it is now recovered and NO DATA LOSS! Yippeee.


More info
-----------
Photos of what the hang looks like using a kernel that has the framebuffer console enabled:
[http://www.freemoe.org/users/jebba/MALF/]


Some bugs, maybe related:
[https://bugs.maemo.org/show_bug.cgi?id=5450]
[https://bugs.maemo.org/show_bug.cgi?id=6350]


If you found this post helpful, please vote for this bug:
[https://bugs.maemo.org/show_bug.cgi?id=7019]


==Too mucha programmaz==
I bricked my N900 (December 3rd) by adding the extras-testing + extras-devel repos and then installing lots of applications. I hit 100% on / (root filesystem) and on reboot the system hung at the &quot;dots&quot; part, ala:

   * (*) * * *

I had filled up to 100% a number of times before and rebooting the phone had '''cleared''' up space (e.g. 100% full before reboot, 96% full after reboot). This is likely because 5% or so is reserved for root. Anyway, the most recent time it didn't come back alive...

===Gah, bricked again===
I was &quot;participating&quot; in the &quot;[http://talk.maemo.org/showthread.php?p=414650 Bug] [[Bugsquad#Bugdays|day]]&quot;, when someone suggested installing gettext to look at translations. I installed this, but got up to 99% full. I then did an `apt-get clean` to empty the cache and this dropped me to 98% full. I've often booted gnulinux boxes with 99% (or even 100%) full, so I figured 98% was fine. I wanted to reboot because often when you reboot the N900, you get space freed, due to the icon cache being liberated. Anyway, on reboot, I got a brick exactly as described above with the second dot more lit than the others (which I have seen reported by others):

   * (*) * * *

This time I have my handy kernel with a console, so I can actually see WTF is going on. [http://www.freemoe.org/users/jebba/MALF/ The images here show some details]. In sum, things booted up and the root filesystem check went fine. Then it got an error right after &quot;Freeing Init memory 152K&quot; like this:

 getbootstate: Unexpected reset count 50 exceeds maximum (51)
 getbootstate: Entering state 'MALF'.
 getbootstate: Houston, we have a problem, powering off...

The /sbin/getbootstate program is in the package &quot;getbootstate&quot;. But look at this and hold back the tears:

 [sbox-FREMANTLE_ARMEL: ~/getbootstate] &gt; apt-get source getbootstate
 Reading package lists... Done
 Building dependency tree... Done
 E: Unable to find a source package for getbootstate

The getbootstate package appears to be closed source. :( That pretty much ends the debugging and my bug day. Gah.

==Flashing N900 with 0xFFFF==
Many parts of the N900 are Free Software, but lamentably, many parts are still closed proprietary shit. Nokia's maemo_flasher program is an example of a closed application that Nokia makes for use with the N900. I understand why some parts of their suite are still closed (e.g. pre-ofono GSM stack), but why the flasher has to be closed I have no idea. Gar.

Thankfully, there is [http://www.nopcode.org/0xFFFF/ The 0pen Free Fiasco Firmware Flasher], which is designed for flashing Nokia tablets and is [http://www.gnu.org/philosophy/free-sw.html Free Software] (GPLv3). Unfortunately, 0xFFFF doesn't work with the N900. There is [http://www.mail-archive.com/0xffff@lists.nopcode.org/msg00072.html some progress to support the device]. You can grab the most recent code from the mercurial repository thusly:
 hg clone http://hg.youterm.com/0xFFFF

I sent the author of 0xFFFF the output of my crash. Hopefully it will soon be a usable tool for flashing the N900. I built RPMs for Fedora 12 x86_64 running the latest mercurial code--the ones in the Fedora repo aren't even the lastest tarball release (0.3.9 vs. 0.4.0).

===0xFFFF for Fedora===
* NOTE: recently I checked out the code via Mercurial and saw that the 0xFFFF developer has added much more N900 specific code, but I haven't tried it yet.

* UPDATE: I have built the latest and greatest code of 0xFFFF from today and made a Fedora 12 package. You can grab it here:

Binary:
* [http://www.freemoe.org/users/jebba/fedora/12/x86_64/0xFFFF-0.4.0-0jebba.fc12.x86_64.rpm 0xFFFF-0.4.0-0jebba.fc12.x86_64.rpm]

Source:
* [http://www.freemoe.org/users/jebba/fedora/12/SRPMS/0xFFFF-0.4.0-0jebba.fc12.src.rpm 0xFFFF-0.4.0-0jebba.fc12.src.rpm]

* The 0xFFFF GUI uses [http://code.google.com/p/gtkaml/ gtkamlc]. This is not packaged in Fedora. I built it, but compiling the GUI is still barfing.

==Flashing with Nokia's Proprietary maemo_flasher==
I [http://wiki.blagblagblag.org/Roadmap now] have ONE non-free program installed on my computer  :(   It's the only way I know how to debrick the phone.

See also: [[Updating_the_firmware | Updating tablet firmware]] on this wiki.

* To get the most recent image from Nokia, go here: http://tablets-dev.nokia.com/nokia_N900.php
* Enter product ID inside the phone (without &quot;/&quot;s)
* Grab RX-51_2009SE_1.2009.42-11_PR_COMBINED_MR0_ARM.bin or whatever is current.
* To get the proprietary stinking pile of poo, go here: http://tablets-dev.nokia.com/maemo-dev-env-downloads.php
* Grab maemo_flasher-3.5_2.5.2.2.tar.gz or most recent.
* In Fedora 12 x86_64 I had to install some i686 libraries since my system is 64-bit. So:
 yum -y install glibc.i686 libusb.i686
* Untar the files....
* Power off phone and unplug USB.
* Hold down &quot;u&quot; on N900 keyboard and plug in USB cable between computer and N900. A USB icon will appear in the upper right corner--you can let go of &quot;u&quot; on the keyboard at this point.
* Run this as root:
 ./flasher-3.5 -F ~/devel/maemo/FLASH/RX-51_2009SE_1.2009.42-11_PR_COMBINED_MR0_ARM.bin -f -R
* Done.

===Info from flasher===
 sudo ./flasher-3.5 --query-rd-mode
 flasher v2.5.2 (Oct 21 2009)
 
 USB device found found at bus 002, device address 008.
 Found device RX-51, hardware revision 2101
 NOLO version 1.4.13
 Version of 'sw-release': RX-51_2009SE_1.2009.42-11_PR_MR0
 The device is in production mode

===Unpacking flash image===

 $ mkdir RX-51_2009SE_1.2009.42-11_PR_COMBINED_MR0_ARM-UNPACKED
 
 $ cd RX-51_2009SE_1.2009.42-11_PR_COMBINED_MR0_ARM-UNPACKED/
 
 $ sudo flasher-3.5 -u -F ../RX-51_2009SE_1.2009.42-11_PR_COMBINED_MR0_ARM.bin</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Flauta</title>
    <id>3433</id>
    <revision>
      <id>27289</id>
      <timestamp>2010-01-24T17:14:15Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>/* rysnc */ hostfwd=tcp:63.247.92.157:873-</comment>
      <text xml:space="preserve">Flauta is the box hosting SDK users.


=QEMU=
The build server is running as a qemu guest. It is launched from the host thusly:

 #!/bin/sh
 
 /usr/local/bin/qemu-system-x86_64 \
         -drive \
         file=/kvm/flauta.qcow2,index=0,if=virtio,cache=writeback,boot=on \
     -drive \
         file=/kvm/www-freemoe.qcow2,index=1,if=virtio,cache=writeback \
     -drive \
         file=/kvm/scratchbox1.qcow2,index=2,if=virtio,cache=writeback \
         -cpu qemu32 \
         -m 2048 \
         -vnc :5 \
         -daemonize \
     -enable-kvm \
     -name flauta \
     -net nic,vlan=0,model=virtio \
     -net user,hostfwd=tcp:63.247.92.155:22-:22,hostfwd=tcp:63.247.92.155:80-:80 \
     -smp 8 \
     -runas jebba

* It is running the &quot;current&quot; QEMU git (d0be2513d5eefb47a83f9a303fe142dd8ef72848).

* Host kernel is custom 2.6.32.

* Guest is running Debian Lenny with stock Lenny kernel.

* The guest is running a custom 2.6.32 kernel now. A good sample .config optimized for qemu would be fantastic. Currently only seeing 883M (before seeing 2G) likely due to turning off 4G/4G which I turned off for speed per QEMU docs. Not sure if lots of memory will speed things up anyway--the filesystem will just get cached on the host.

* The guest panicked once (when building a kernel.deb for ARM running `dpkg-buildpackage -j8 -rfakeroot -b`...), hence the drive to run a more recent guest kernel.

=rysnc=

==status==
* KVM needs restart before rsync is running. Need to find a way to add this on the fly to the live kvm:
  hostfwd=tcp:63.247.92.157:873-

Flauta is running an rsync server of the website, which includes SDK user's web directories (typically the .debs themselves--they can be their own repositories).

==config==
 [www.freemoe.org]
   path = /var/www/
   comment = Freemoe public
   read only = yes
   use chroot = yes
   max connections=256
   list = yes
   uid = nobody
   gid = rsync
   dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Freemoe</title>
    <id>3273</id>
    <revision>
      <id>27571</id>
      <timestamp>2010-01-28T02:21:17Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>/* Free Development Box */ obra</comment>
      <text xml:space="preserve">=Freemoe Package=
A package with various scripts is available in the maemo.org extras-devel repository.

==git==
* [http://gitorious.org/freemoe/ Git archive]
* Git clone:
 git clone git://gitorious.org/freemoe/freemoe.git
* [http://gitorious.org/freemoe/freemoe/trees/master Git tree]

==maemo.org==
* [http://maemo.org/packages/view/freemoe/ Freemoe package overview]
* [http://talk.maemo.org/showthread.php?t=41914 Talk thread]

=Mirrors=
There are a number of boxes mirroring the [[Free Software]] content of maemo.org.

* [[User:Jebba/Espejo  | Espejo setup]]

=Free Development Box=
I have set up a server for folks to use that don't have access to a /scratchbox, can't set one up, want a faster one, etc. If you would like access to it, drop me a note at moe@blagblagblag.org

==Website==
* [http://www.freemoe.org/ Free devel box]

The website has subdirs for users if they want to share the .debs they make. I have made mine a repository so packages can be grabbed with the Hildon Application Manager or apt-get.

===buildrepo===
This is my [http://www.freemoe.org/users/jebba/buildrepo buildrepo] script. I think I may change the repository setup so I have fremantle, harmattan, etc. sub-directories. It is not generating .diffs, which would make `apt-get update`s faster, but then again, it's a teeny repo right now so that probably doesn't matter. Tips welcome.

 #!/bin/sh
 
 # Binary Packages
 dpkg-scanpackages dists/unstable/main/binary-armel /dev/null | gzip -9c &gt; dists/unstable/main/binary-armel/Packages.gz
 
 # Source Packages
 dpkg-scansources dists/unstable/main/source /dev/null | gzip -9c &gt; dists/unstable/main/source/Sources.gz

==Server: Flauta==
* [[User:Jebba/Flauta]] is the box hosting the SDK.

=Build Server=
==Server: Obra==

[[Image:Obra-etch.jpg|left|thumb|alt=Obra building etch|Obra building etch]]</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Gripes</title>
    <id>3250</id>
    <revision>
      <id>25215</id>
      <timestamp>2009-12-28T22:30:45Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>New Gripes page</comment>
      <text xml:space="preserve">=Gripes=
* Not all Free Software....
* 256M of NAND is way too little if it is going to be the root filesystem (/). It is way to easy to fill up. I see that they need to do this for reflashing, but since on reflash all the applications in /opt get lost anyway, what good does it do to have them there? Seems they could have mounted /usr on the 32G, or even better just put /boot on NAND and in that case NAND could even be smaller. Seems very dumb to have 32G+ of space on the device, yet still fill up the rootfs! The vast majority of users are going to have ''no'' clue how to repartition (which I will do here shortly) and aren't going to be able to install many applications, which should be a great ''strength'' of this device since it can multitask so well and the repositories are going to blossom
* 4 rows of keys would have been a lifesaver.
* No | (pipe) or tab key
* The camera doesn't autofocus, or at least not when you need it to.
* When charging the phone and talking on it, the power cable is sticking out the top, not the bottom.
* No dictionary/translation program (!)
* Docs, info, contacts, etc. are spewed all over the place. For instance, try to find out info about Canola. Some on this wiki, some in garage, some at their site, etc. Where does one file a bug? I've been told to ignore garage and do most at *.maemo.org, but then they should ditch those parts at garage to make things cleaner.
* SDK pretty much assumes you are running 32-bit Debian or Ubuntu. It's not really cooperating nicely in a Debian Lenny install inside qemu.</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Kernel</title>
    <id>3243</id>
    <revision>
      <id>31160</id>
      <timestamp>2010-03-15T23:03:04Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>/* Installing my custom kernel */</comment>
      <text xml:space="preserve">=Kernel=
Stock kernel:
 uname -a
 Linux Nokia-N900-42-11 2.6.28-omap1 #1 PREEMPT Wed Oct 28 15:32:55 EET 2009 armv7l unknown

kernel, kernel-modules, kernel-flasher: 2.6.28-20094102.3+0m5

==Custom Kernel Modules==
I have built a pile of kernel modules which should work with the stock N900 kernel. See here:

[http://www.freemoe.org/users/jebba/kernel/modules/ http://www.freemoe.org/users/jebba/kernel/modules/]

==Installing my custom kernel==


 Linux Nokia-N900-42-11 2.6.28-omap1-jebba9-g649dffc #1 PREEMPT Mon Jan 11 16:25:16 MST 2010 armv7l unknown


I have built custom kernel packages closely based on the standard kernel that ships with the N900. Differences:

* NOTE: this kernel now has NAT and a bunch of filesystems and other misc. See [http://www.freemoe.org/users/jebba/dists/unstable/main/source/kernel_2.6.28-20094102.6+0m14/kernel_2.6.28-20094102.6+0m14_armel.changes the latest changes]

* FRAMEBUFFER_CONSOLE=y - This fantastic option means you can see console when the kernel boots up, so you see all the text you usually see when booting up a Linux kernel.

* IKCONFIG, IKCONFIG_PROC=y - The kernel configuration is available in /proc. To grab it:
 zcat /proc/config.gz

* CONFIG_LOGO=y, CONFIG_LOGO_LINUX_CLUT224=y - Tux, the Linux penguin, at boot! :)

* The kernel name is 2.6.28-omap1-jebba9 so as to not confuse it with the stock kernel.

You can install this kernel via my repo with apt-get (untested), or manually, which is recommended for now. Procedure (assuming you are running the kernel that ships with the device):

* Make a backup of your current kernel's modules. That way if you want to revert, you can flash it via USB cable and the modules will be there. (You can also revert via dpkg, but this is just in case of &quot;emergencies&quot;).
 cp -a /lib/modules/2.6.28-omap1 /lib/modules/2.6.28-omap1.orig

* Grab my kernels with wget or whatever (check the dir for more recent versions too).
 wget \
 http://www.freemoe.org/users/jebba/dists/unstable/main/binary-armel/kernel_2.6.28-20094102.6+0m14_armel.deb \
 http://www.freemoe.org/users/jebba/dists/unstable/main/binary-armel/kernel-modules_2.6.28-20094102.6+0m14_armel.deb \
 http://www.freemoe.org/users/jebba/dists/unstable/main/binary-armel/kernel-flasher_2.6.28-20094102.6+0m14_armel.deb

* Install the .debs with dpkg. Note the flasher has to be installed last. If you install them with dpkg all at once, dpkg will prioritize the flasher first, so it won't move the kernel into place. Point of no return:
 dpkg -i \
 kernel_2.6.28-20094102.6+0m14_armel.deb \
 kernel-modules_2.6.28-20094102.6+0m14_armel.deb

* Now install the flasher, which will automatically flash when installed:
 dpkg -i kernel-flasher_2.6.28-20094102.6+0m14_armel.deb 

* Ok, so the kernel is there, but lets move the original stock modules back into place so you can flash the zImage via flasher-3.5 and USB cable should it be necessary. First we need to remove the mostly empty old dir, then copy the backup:
 rm -rf /lib/modules/2.6.28-omap1
 cp -a /lib/modules/2.6.28-omap1.orig /lib/modules/2.6.28-omap1

* Now just reboot, yee haw!
 sudo reboot

* Enjoy. :)

==Flashing Kernel==
===Notes===

* The docs I can find about this all look pretty antiquated.

* The stock system runs with 62 kernel modules loaded, including things like ext3 and fat.

* The kernel debs that are installed are: kernel, kernel-flasher (&quot;Linux kernel updater&quot;), kernel-modules.


===Compile custom kernel===
I followed the procedure in the [[Documentation/Maemo_5_Developer_Guide/Kernel_and_Debugging_Guide/Maemo_Kernel_Guide|Maemo Kernel Guide]], without making changes. This gave me a bootable kernel. :)

 sb-conf select FREMANTLE_ARMEL
 
 sb-conf setup MaemoKernel \
 -c cs2007q3-glibc2.5-arm7 \
 -d qemu:perl:svn:apt-https -t /scratchbox/devkits/qemu/bin/qemu-arm-sb
 
 sb-conf select MaemoKernel
 
 sb-conf rs MaemoKernel \
 /home/jebba/maemo-sdk-rootstrap_5.0_armel.tgz
 
 sb-conf in MaemoKernel -edFL
 
 # disable other stuff in apt sources.list
 
 mkdir ~/maemo_kernel
 
 sb-conf select MaemoKernel
 fakeroot apt-get update
 cd ~/maemo_kernel
 apt-get source kernel
 cd kernel-2.6.28
 
 make EXTRAVERSION=-omap1 bzImage
 ls -lh arch/arm/boot/zImage
 
 # flash the thing
 flasher-3.5 -f -k /scratchbox/users/jebba/home/jebba/\
 maemo_kernel/kernel-2.6.28/arch/arm/boot/zImage
 
 # wow, sure flashes fast, like in 1 second


* To unbrick if something goes wrong, unpack the main N900 .bin flash image and flash with the kernel from there. See [[User:Jebba#Unpacking_flash_image|unpacking flash image]] section.

* The MaemoKernel sandbox has apt [https://bugs.maemo.org/show_bug.cgi?id=7598 broken out-of-the-box]

* stskeeps, the Mer developer, says he builds his kernels fine in FREMANTLE_ARMEL, so perhaps you don't even need to switch to MaemoKernel sandbox. In other words, just build in here:
 sb-conf select FREMANTLE_ARMEL

==My build scripts and .configs==
I set up a little git repo of the lame scripts I use to build kernel .debs and the configs. You can clone it thusly:

 git clone http://www.freemoe.org/users/jebba/scratchbox/kernel/.git/


==Random kernel notes==
* &quot;SmartReflex can perform continuous dynamic voltage scaling around the nominal operating point voltage according to silicon characteristics and operating conditions. Enabling SmartReflex reduces power consumption. Please note, that by default SmartReflex is only initialized. To enable the automatic voltage compensation for VDD1 and VDD2, user must write 1 to /sys/power/sr_vddX_autocomp, where X is 1 or 2.
 ~ $ cat  /sys/power/sr_vdd1_autocomp
 0
 ~ $ cat  /sys/power/sr_vdd2_autocomp
 0


* Enable framebuffer console so bootup messages can be seen.

* [http://news.gmane.org/gmane.linux.ports.arm.omap linux-omap mailing list archives]

===See Also===
* [[Documentation/Maemo_5_Developer_Guide/Kernel_and_Debugging_Guide/Maemo_Kernel_Guide|Maemo Kernel Guide]]

* [[Compiling the kernel]] - &quot;This is an article from the old midgard wiki that hasn't yet been fully updated for this wiki, please update it.&quot;</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Keymap</title>
    <id>3315</id>
    <revision>
      <id>25687</id>
      <timestamp>2010-01-03T23:12:41Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>/* Console on Maemo */ gotox</comment>
      <text xml:space="preserve">=Keymap=
Random notes.

 xkbprint -label name $DISPLAY - &gt; rx-51-keymap.ps


==My Maemo Keymap==
Makes things nicer so sterling and pound become pipe and tab.

/usr/share/X11/xkb/symbols/nokia_vndr/rx-51

 --- rx-51.orig	2009-10-07 10:39:13.000000000 -0300
 +++ rx-51	2009-12-31 20:00:22.000000000 -0300
 @@ -376,9 +376,11 @@
     key &lt;AB09&gt;	{ [	period,		colon,		question,	question	] };
  
     // 3. row
 -    key &lt;AB01&gt;	{ [	z,		Z,		sterling,	sterling	] };
 +//  key &lt;AB01&gt;	{ [	z,		Z,		sterling,	sterling	] };
 +    key &lt;AB01&gt;	{ [	z,		Z,		bar,		bar		] };
     key &lt;AB02&gt;	{ [	x,		X,		dollar,		dollar		] };
 -    key &lt;AB03&gt;	{ [	c,		C,		EuroSign,	EuroSign	] };
 +//  key &lt;AB03&gt;	{ [	c,		C,		EuroSign,	EuroSign	] };
 +    key &lt;AB03&gt;	{ [	c,		C,		Tab,		Tab		] };
     key &lt;AB04&gt;	{ [	v,		V,		slash,		slash		] };
     key &lt;AB05&gt;	{ [	b,		B,		backslash,	backslash	] };
     key &lt;AB06&gt;	{ [	n,		N,		quotedbl,	quotedbl	] };

==xbindkeys==
I think i submitted this to the builder, who knows if it made it thru, too frustrated to even bother to look.

~/.xbindkeysrc
 &quot;freemoe-xterm-toolbar&quot;
  control + comma

freemoe-xterm-toolbar:
 #!/bin/sh
 
 SETTING=`gconftool-2 --get \
 	/apps/osso/xterm/toolbar`
 
 if [ $SETTING == &quot;true&quot; ]
 	then NEWSETTING=&quot;false&quot;
 	else NEWSETTING=&quot;true&quot;
 fi
 
 gconftool-2 --set --type bool \
 	/apps/osso/xterm/toolbar \
 	$NEWSETTING

==kernel==
I'm trying to work up a patch so the keymap works when you boot into Mer or Fedora in the console. I did one patch of arch/arm/mach-omap2/board-rx51-peripherals.c, but I definitely foobar'd it. There's probably an easier way to do it with console-tools too.


==upstream patch==
Hints, perhaps.

 commit acf442dc560437858e6a4c904678052616f8226e
 Author: Amit Kucheria &lt;amit.kucheria@verdurent.com&gt;
 Date:   Mon Oct 5 21:43:44 2009 -0700
 
    Input: fix rx51 board keymap
 
    The original driver was written with the KEY() macro defined as (col,
    row) instead of (row, col) as defined by the matrix keypad
    infrastructure. So the keymap was defined accordingly. Since the
    driver that was merged upstream uses the matrix keypad infrastructure,
    modify the keymap accordingly.
 
    While we are at it, fix the comments in twl4030.h and define
    PERSISTENT_KEY as (r,c) instead of (c, r)
 
    Tested on a RX51 (N900) device.
 
    Signed-off-by: Amit Kucheria &lt;amit.kucheria@verdurent.com&gt;
    Acked-by: Tony Lindgren &lt;tony@atomide.com&gt;
    Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;


==Console on Maemo==
With my framebuffer console-enabled kernel, to get a console on the N900 with Maemo 5:

 sudo /sbin/getty 38400 tty3
 sudo chvt 3

To switch back:

 sudo chvt 2

You may want to open up a big black image or xterm or something in X or it will keep obscuring what you write.

Run &quot;gotox&quot; to get out if you aren't ssh'd in.
 ~ # cat /sbin/gotox 
 #!/bin/sh
 
 chvt 2

==TODO==

  cehteh: jebba: S-Space works nice for tab</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/LEDS</title>
    <id>3431</id>
    <revision>
      <id>27159</id>
      <timestamp>2010-01-22T05:48:00Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>Removing all content from page</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>User:Jebba/Mer</title>
    <id>3286</id>
    <revision>
      <id>36801</id>
      <timestamp>2010-07-14T01:25:44Z</timestamp>
      <contributor>
        <ip>94.10.155.86</ip>
      </contributor>
      <comment>/* Disable watchdog */</comment>
      <text xml:space="preserve">=N900 Install=
Note, this is still in a *very* rough state. Currently, you can't recharge the battery while using Mer, nor even draw power when plugged in, so developing on it means you have to reboot just to recharge your battery. No phone calls are possible yet. Grabbing binaries of the proprietary crock from Nokia requires rebuilding packages and jumping through hoops. On the positive side, it boots. :)

You can do this without erasing your main install, FYI...

* [[Mer/Documentation/Installation|Mer installation]]

* [http://mer-project.blogspot.com/2010/01/dual-booting-mer-on-nokia-n900.html More recent blog post about installing Mer 0.17testing10]


==Mer Image==
The latest release as of this post is 0.17testing4.

'''NOTE: Earlier versions of this &quot;howto&quot; used partition 1. I now have everything on partition 3!!!! Update your scripts as needed!'''

 # you need an ext3 formated MicroSD card.
 mount -o noatime /dev/mmcblk1p3 /media/mmc3/
 
 # go hence
 cd /media/mmc3/
 
 wget http://stskeeps.subnetmask.net/mer/0.17testing4/mer-armel-generic-image-v0.17testing4.tar.gz
 
 # Untar it verbosely to see the majick.
 # Note this will create dirs like ./usr and ./lib etc, so you don't want stuff pre-existing in those dirs.
 tar zxvf mer-armel-generic-image-v0.17testing4.tar.gz
 
 # sync and live free!
 sync

==bootmenu==

'''NOTE: Earlier versions of this &quot;howto&quot; used partition 1. I now have everything on partition 3!!!! Update your scripts as needed!'''

You need to have getbootstate version 1.0.35+0m5 or greater for this to work.

 dpkg -l getbootstate

(As a side note, [https://bugs.maemo.org/show_bug.cgi?id=7019 getbootstate is closed software]. Please vote for this bug and/or clamour for it to be released as free software.)

* [http://talk.maemo.org/showpost.php?p=372885&amp;postcount=22 discussion on t.m.o]

 # Grab this package:
 wget http://www.daimi.au.dk/~cvm/bootmenu_1.6_armel.deb
 
 # Be root
 sudo gainroot
 
 # Install bootmenu
 dpkg -i bootmenu_1.6_armel.deb

Then tappy tap tap the bootmenu install icon and answer yes.

Now you need to set up Mer in the menu for bootmenu. See also: [[Mer/Documentation/Bootmenu| Mer bootmenu docs]].

I put everything on the third partition on an ext3 formatted &quot;external&quot; MicroSD card (the one that's right next to the camera).

 # edit/create this file to create a boot menu item for Mer:
 vim /etc/bootmenu.d/mer.ext.item
 
 # Make it look justa lika thisa:
 
 ITEM_NAME=&quot;Mer (external SD, partition 3)&quot;
 ITEM_ID=&quot;mer&quot;
 ITEM_DEVICE=&quot;${EXT_CARD}p3&quot;
 ITEM_MODULES=&quot;mbcache jbd ext3&quot;
 ITEM_FSTYPE=&quot;ext3&quot;
 ITEM_FSOPTIONS=&quot;noatime,ro&quot;


(Note: why jbd module needed?)

Then shutoff the phone and reboot with KEYBOARD SLID OUT, so you get the bootmenu.

==Disable watchdog==

You have to disable the watchdog with the flasher tool or the system will just shut down on bootup:

 ./flasher-3.5 --set-rd-flags=no-omap-wd
 
 ./flasher-3.5 --set-rd-flags=no-ext-wd
 
 ./flasher-3.5 --enable-rd-mode
'''
''If you want to revert back and disbale R%D mode, do:
 ./flasher-3.5 --disable-rd-mode''

==0.17testing4 fixes for N900==

'''NOTE: Earlier versions of this &quot;howto&quot; used partition 1. I now have everything on partition 3!!!! Update your scripts as needed!'''

 # root does all
 sudo gainroot
 
 # mount up the MicroSD
 mount -o noatime /dev/mmcblk1p3 /media/mmc3/
 
 # go hence
 cd /media/mmc3
 
===Missing dir needed at boot===
 # create a missing directory
 mkdir mnt/initfs


===Need modules from kernel===
  
 # copy over modules from main OS:
 cp -a /lib/modules/*  /media/mmc3/lib/modules/


===Fix touchscreen===
I STILL DON'T HAVE THIS WORKING.

====auto-startx====
To get the touchscreen working you have to edit this file: /media/mmc3/etc/init.d/auto-startx. Patch it ala:

 --- etc/init.d/auto-startx.orig	2009-10-20 12:39:30.000000000 -0300
 +++ etc/init.d/auto-startx	2009-12-31 13:46:06.000000000 -0300
 @@ -8,6 +8,7 @@
  start)
  	if [ ! -f /etc/default/autologin ] ; then
  		if [ -x /usr/sbin/first-boot-wizard.sh ] ; then
 +			TSLIB_TSDEVICE=/dev/input/event3 TSLIB_CONFFILE=/etc/ts.conf ts_calibrate
  			/usr/bin/xinit /usr/sbin/first-boot-wizard.sh 2&gt;&amp;1 &gt; /var/log/first-boot-wizard.log
  		else
  			echo -n &quot;No user specified for auto login. Creating...&quot;


Note to self: I have a copy of this in /home/user/MyDocs/Mer, so when copying back over be sure to chmod because VFAT loses perms gah:

 chmod +x /media/mmc3/etc/init.d/auto-startx

====remove synaptics driver====

 sudo gainroot
 
 chroot /media/mmc3 /bin/bash
 
 dpkg --remove \
 xserver-xorg-input-synaptics \
 xserver-xorg-input-all

====Add xserver-xorg-input-tslib====

 sudo gainroot
 
 apt-get update
 
 apt-get install xserver-xorg-input-tslib

===upgrade===
Note sure if it's needed, but:

 chroot /media/mmc3 /bin/bash
 apt-get update
 apt-get upgrade

This got me new updates:
 hildon-input-method libclutter-0.8-0 libetpan13 libhildon-im-ui3

The first one sounds helpful.

===Set root password===
Might as well set one in the chroot. I had X not come up once, but couldn't log in.

 sudo gainroot
 chroot /media/mmc3 /bin/bash
 passwd

==Misc==
When you are booted up into Fremantle, it wouldn't hurt to fsck your MicroSD too....

 umount /dev/mmcblk1p3 &amp;&amp; fsck.ext3 -vvv /dev/mmcblk1p3

=Automated install=
Ok, here's dodgy scripts to automatically do lots of the above. I set these up because in the process of doing this I corrupted the filesystem on the MicroSD card enough times that I kept having to do this. If you don't understand what these scripts are doing, don't run them. Ah, and I use sudo lots, so you probably want do add this to /etc/sudoers:

 user ALL = NOPASSWD: ALL



==freemoe-mer-install==

'''NOTE: Earlier versions of this &quot;howto&quot; used partition 1. I now have everything on partition 3!!!! Update your scripts as needed!'''

 #!/bin/sh
 
 set -x
 
 echo &quot;this is going to format your microsd, take care!&quot;

 echo &quot;EARLIER VERSIONS OF THIS SCRIPT USED PARTITION 1&quot;
 echo &quot;IT IS NOW USING PARITION 3! BEWARE AND UPDATE YOUR SCRIPT AS NEEDED!&quot;
 
 read ok
 read ok
 exit 0  # you get this right?
 
 echo
  
 sudo umount /dev/mmcblk1p3
 
 sudo mkfs.ext3 -j -m1 /dev/mmcblk1p3
 
 sudo fsck -vvv /dev/mmcblk1p3
 
 sudo mount -o noatime /dev/mmcblk1p3 /media/mmc3/
 
 cd /media/mmc3/
 
 sudo tar zxf /home/user/MyDocs/Mer/mer-armel-generic-image-v0.17testing4.tar.gz
 
 sudo mkdir mnt/initfs
 
 sudo cp -a /lib/modules/*  /media/mmc3/lib/modules/
 
 echo &quot;WARNING WARNING WARNING!!!!&quot;
 echo &quot;Copying over NON-FREE FIRMWARE&quot;
 echo &quot;PAY PENANCE!!!!&quot;
 sudo cp -a /lib/firmware/*  /media/mmc3/lib/firmware/
 
 sudo patch -p0 &lt; /home/user/MyDocs/Mer/auto-startx-n900.patch
 
 # not needed
 sudo chmod +x etc/init.d/auto-startx
 
 sudo cp -p /home/user/MyDocs/Mer/mer-setup-in-chroot ./
 
 sudo chmod +x mer-setup-in-chroot
 
 #echo &quot;add . to root's PATH to help with debugging&quot;
 #sudo cp -p /home/user/MyDocs/Mer/root-bashrc /media/mmc3/root/.bashrc
 
 #echo &quot;copy over some scripts to help with debug&quot;
 #sudo cp -p /home/user/MyDocs/Mer/root/* /media/mmc3/root/
 
 #echo &quot;WARNING: this leaves /root with less-than-optimal perms&quot;
 #sudo chmod -R +x /media/mmc3/root/
 
 sudo cp -p /etc/apt/auth /media/mmc3/etc/apt/
 
 sync
 
 echo
 echo &quot;now run ./mer-setup-in-chroot after you enter the chroot&quot;
 echo &quot;this is convenient too:&quot;
 echo &quot;export HOME=/root&quot;
 echo
 
 sudo chroot /media/mmc3 /bin/bash

==mer-setup-in-chroot==

 #!/bin/sh
 
 # run this chrooted
 
 set -x
 
 apt-get update
 
 apt-get upgrade
 
 apt-get remove xserver-xorg-input-synaptics xserver-xorg-input-all
 
 apt-get install xserver-xorg-input-tslib
 
 sync

==auto-startx-n900.patch==

 --- etc/init.d/auto-startx.orig	2009-10-20 12:39:30.000000000 -0300
 +++ etc/init.d/auto-startx	2009-12-31 13:46:06.000000000 -0300
 @@ -8,6 +8,7 @@
  start)
  	if [ ! -f /etc/default/autologin ] ; then
  		if [ -x /usr/sbin/first-boot-wizard.sh ] ; then
 +			TSLIB_TSDEVICE=/dev/input/event3 TSLIB_CONFFILE=/etc/ts.conf ts_calibrate
  			/usr/bin/xinit /usr/sbin/first-boot-wizard.sh 2&gt;&amp;1 &gt; /var/log/first-boot-wizard.log
  		else
  			echo -n &quot;No user specified for auto login. Creating...&quot;

=Installing Fremantle Packages=
Mer is missing some key parts, such as charging from battery and making phone calls. The first is killer, the second is a major drawback... Nokia decided to keep these parts proprietary which makes Mer on the N900 pretty pointless actually. Gar.

So I thought I would try to install (most begrudgingly) their proprietary Fremantle battery and cell phone applications under Mer. I was able to get the battery applet and some of the hal stuff going, but I don't think it was actually *doing* andything. I then installed the cell phone application, which pretty much screwed up the install.

So, in sum, the following doesn't work, but is a possible starting point for getting battery charging working under Mer.

I didn't have access to the original .debs, so I decided to just reconstruct them from the ones already installed under fremantle. It's a bit out there, but this is how I did it:

 # boot into Mer
 
 # We'll use dpkg-repack to rebuild the .debs
 apt-get install dpkg-repack
 
 # set up nice working space:
 mkdir -p /mnt/fremantle
 
 # umount the read/write of the NAND since we crash all the time and run out of battery
 umount /mnt/initfs
 
 # Remount it read-only some place nicer
 mount -o ro -t ubifs ubi0:rootfs /mnt/fremantle/
 
 # And put /home and the infamous /opt there too
 mount -o ro /dev/mmcblk1p2 /mnt/fremantle/home/
 
 # ...and MyDocs under that
 mount -o ro /dev/mmcblk1p1 /mnt/fremantle/home/user/MyDocs/
 
 # Set up stupid symlink for the /opt mess
 cd /home
 ln -s /mnt/fremantle/home/opt .
 
 # create a nice place to put the .debs we'll create
 mkdir /root/REPACKS 
 
 # go hence
 cd /root/REPACKS
 
 # take a look all those fremantle applications
 dpkg -l --root=/mnt/fremantle/
 
 # Repack some random single package
 dpkg-repack --root=/mnt/fremantle/ burgerspace
 
 # rebuild the local repo
 cd /root/REPACKS
 dpkg-scanpackages . /dev/null | gzip -9c &gt; Packages.gz
 
 # Add this to /etc/apt/sources.list and perhaps comment out all the others
 deb file:///root/REPACKS ./
 
 # update from our new local repo
 apt-get update
 
 # and see that it works
 apt-cache search burgerspace
 
 # if that works, you can do them one at a time, or repack all of the 
 # fremantle debs with this:
 for i in `dpkg -l --root=/mnt/fremantle/ |grep ii | cut -f 3 -d &quot; &quot;` ;
 do echo $i
 	dpkg-repack --root=/mnt/fremantle/ $i
 done
 
 # Then re-run the archiverthinger
 cd /root/REPACKS
 dpkg-scanpackages . /dev/null | gzip -9c &gt; Packages.gz
 
 # update
 apt-get update
 
 # now install whatever
 apt-get install foo
 
 # This will get you a battery applet. It appears in the notification
 # area, but I'm not sure if it is working or not. Perhaps try rebooting
 # after installing it, and don't install other stuff which may pooch it
 apt-get install hald-addon-bme bme-rx-51 status-area-applet-battery
 
 # After I installed this, I had a mess
 apt-get install rtcom-call-ui

Oh, and I guess I should also point out, that all of this needs to be done because nokia is doing something funky with apt-transport-https. I tried rebuilding theirs and using it under Mer, but it barfed on libraries. I tried using the Ubuntu one but that didn't work with the Nokia repos, even after copying over /etc/apt/auth.

Another way to do this would perhaps be to apt-get mirror the repos, if possible or a --download-only type approach. I didn't have apt-transport-https working so I just did this. Time for bed.

=Build Packages=
Packages are built using OpenSUSE's Build Service

* [http://en.opensuse.org/Build_Service Build Service]

* [http://en.wikipedia.org/wiki/OpenSUSE_Build_Service wikipedia on OBS]

* [http://en.opensuse.org/Build_Service/Tutorial Build Service Tutorial]

* [http://forge.novell.com/modules/xfmod/project/?opensuse Build Service source]

* Sign up for account on OBS: jebbajeb

*  [https://build.opensuse.org/]

* [https://build.opensuse.org/project/show?project=Maemo%3AMer Maemo Community distribution (Maemo:Mer)]

* [https://build.opensuse.org/project/show?project=Maemo%3AMer%3ADevel%3AHW%3AN900%3ADevel Development repository (Maemo:Mer:Devel:HW:N900:Devel)]</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Mirror</title>
    <id>3311</id>
    <revision>
      <id>38115</id>
      <timestamp>2010-08-27T15:44:23Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>no mas</comment>
      <text xml:space="preserve">I have shut down my mirrors.

=Freemoe Mirror=
See:
* [http://espejo.freemoe.org/ Freemoe mirror info]
* [[User:Jebba/Espejo|Espejo server info]]

=Mirroring Maemo Repositories=
This is a mini-HOWTO explaining how to mirror the Maemo repositories.

==Install apt-mirror==
In Debian/Ubuntu/etc:

 apt-get update
 apt-get install apt-mirror

In Fedora/RPM-based systems:

 yum install apt-mirror

==Configure apt-mirror==
Edit the mirror list.

In Debian:
 /etc/apt/mirror.list

In Fedora:
 /etc/apt-mirror.list

The file should look like this--update the mirror_path to where you would like them to point:

 set defaultarch    armel
 set nthreads     20
 set _tilde 0
 set mirror_path    /var/www/mirrors
 deb http://repository.maemo.org/extras/ fremantle free
 deb http://repository.maemo.org/extras-testing/ fremantle free
 deb http://repository.maemo.org/extras-devel/ fremantle free

==Run apt-mirror==
Then simply run apt-mirror as root (or with sudo):

 apt-mirror

If you changed your config file name, run it like this example:
 
 apt-mirror /etc/apt/mirror-maemo-arm.list

==TODO==
This only shows how to mirror ARM extras*.

* Add mirroring source

* Add mirroring i386

* Add mirroring downloads.maemo.nokia.com

* Add automation (cron) notes

* Howto set up your device to use mirror</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/NAT</title>
    <id>3309</id>
    <revision>
      <id>25627</id>
      <timestamp>2010-01-03T05:44:32Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>/* NAT */ howtolet</comment>
      <text xml:space="preserve">=NAT=
This is a micro HOWTO, perhaps someday to be longer about how to turn your N900 into a wifi hotspot. In other words, you connect to the Internet via the GPRS (telephone data) connection, then share your connection via wifi with everyone within reach.  :)


==kernel==
You will need a kernel with NAT modules. I have one available. See my [[User:Jebba/Kernel#Installing_my_custom_kernel|installing my custom kernel]] to get a usable kernel if you don't feel like building one. The 2.6.28-omap1-jebba6 kernel is known to work (2.6.28-20094102.3+0m11).


==iptables / iwconfig==
You need iptables and iwconfig to use this script. Thankfully they are in the extras-devel repository:

 apt-get install iptables wireless-tools


==freemoe-nat==
Create and run this script:

 #!/bin/sh
 # Run this script to share your Internet connection.
 # Activate your gprs0 (fone data) connection with the GUI
 # Then run this  :)
 
 set -x
 
 # insert masquerade module
 sudo modprobe ipt_MASQUERADE
 
 # flush old rules
 sudo iptables -F
 sudo iptables -t nat -F
 
 sudo iptables -t nat -A POSTROUTING -o gprs0 -j MASQUERADE
 
 # forward IPs
 echo -n 1 | sudo tee /proc/sys/net/ipv4/ip_forward
 
 sudo ifconfig wlan0 down
 sudo iwconfig wlan0 mode ad-hoc
 sudo ifconfig wlan0 up
 sudo iwconfig wlan0 essid freemoe
 sudo ifconfig wlan0 10.0.0.1 netmask 255.255.255.0 up


==Set up Guests==
Right now the above doesn't provide DHCP or DNS services, which means you have to set up a static IP and set up DNS in your clients. Just use a static IP from 10.0.0.2 to 10.0.0.254, use 8.8.8.8 for your DNS servers, and set your gateway to 10.0.0.1. You'll need to set your client in ad-hoc mode and use ESSID freemoe.</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Ofono</title>
    <id>3331</id>
    <revision>
      <id>26177</id>
      <timestamp>2010-01-09T01:56:11Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>/* Thanks */</comment>
      <text xml:space="preserve">=Using oFono on N900=
The ofono package is now in extras-devel, so just install it via that.

==Starting for first time==
To start the first time, reboot, or run:

 sudo gainroot
 
 /etc/init.d/ofono start

==Start on boot (or not)==
It appears oFono will start on boot. If you *don't* want this, run:

 sudo gainroot
 
 update-rc.d -f ofono remove

==Test==
To see if you can communicate with the device (*not* as root):

 dbus-send --system --print-reply --dest=org.ofono /isimodem0  org.ofono.Modem.GetProperties

==f1rst call==
To make a call, run this as root:

 dbus-send --print-reply --system --dest=org.ofono /isimodem0 org.ofono.VoiceCallManager.Dial string:&quot;5551212&quot; string:&quot;&quot;

==More to come==
An early first taste, have fun!

==See also==
* [http://talk.maemo.org/showthread.php?t=39400 oFono thread on talk]

* [http://lists.maemo.org/pipermail/maemo-developers/2010-January/023450.html thread on maemo-devel]

=Using oFono in Pass thru mode=
You probably don't want to use this mode if you just want to use oFono on N900 to make calls.

In this mode, you use a laptop that connect to your N900 via USB. This is kind of pointless &quot;now&quot; that oFono is working directly on the device, but perhaps there is a thing or two that can be done this way that can't be done directly (such as SMS ???).

* Quick and dirty.

* [http://ofono.org/ oFono] website.

==Build ofono==
On laptop.

Check build deps, and make sure your ./bootstrap-configure finds them all.

 git clone git://git.kernel.org/pub/scm/network/ofono/ofono.git
 
 cd ofono
 
 ./bootstrap-configure
 
 make


==modem.conf==
On laptop.

You need a modem.conf file like this. I put it in /etc/ofono/modem.conf and /usr/local/etc/ofono/modem.conf... (havent confirmed which it's using, depends if you make install or not i think).

 [atgen]
 Driver=atgen
 Device=/dev/ttyACM0
 Baud=115200

==dbus==
On laptop.

If not doing make install, you'll need to copy this file over:

 cd ofono
 
 cp -p ./src/ofono.conf /etc/dbus-1/system.d/ofono.conf

* You then need to reload dbus. Reboot is a lame way to restart it. Heh. Or reload messagebus or whatever.


==Connect N900==
Plug in fone to laptop via USB. Select &quot;PC Suite&quot; mode.

==ofonod==
On laptop.

Run this as root:

 cd ofono
 
 export OFONO_AT_DEBUG=1
 
 ./src/ofonod -nd

Now ofonod daemon is running, so you can watch wtf is going on in that xterm.


==enable modem==
On laptop, in different xterm as the ofonod is happily running in other xterm.

DO *NOT* run this as root. Run as regular user:

 cd ofono
 
 ./test/enable-modem

You can watch the fun go by in the other terminal.

==Make f1rst fone call==
On laptop.

DO *NOT* run this as root. Run as regular user, substituing 5551212 for who you want to call:

 ./test/test-voicecall 5551212

==Chill==
Ok, so that works. Now you can try some other scripts in test/

==dbus-send==
Here's a few dbus sends, I've only tested one so far.

ofono-dial
 #!/bin/sh
 
 sudo dbus-send --print-reply --system --dest=org.ofono /atgen0 org.ofono.VoiceCallManager.Dial string:&quot;48990591&quot; string:&quot;&quot;
 

ofono-get-properties
 #/bin/sh
 
 sudo dbus-send --system --print-reply --dest=org.ofono /atgen0 org.ofono.Modem.GetProperties


ofono-get-properties-sms
 #!/bin/sh
 
 sudo dbus-send --system --print-reply --dest=org.ofono /atgen0 org.ofono.SmsManager.GetProperties
 

ofono-power-on
 #!/bin/sh
 
  sudo dbus-send --system --type=method_call --print-reply \
  --dest=org.ofono  /atgen0 org.ofono.Modem.SetProperty string:&quot;Powered&quot; \
  variant:boolean:true

 
ofono-register
 #!/bin/sh
 
 sudo dbus-send --system --print-reply --type=method_call --dest=org.ofono /atgen0 org.ofono.NetworkRegistration.Register

=Thanks=
Much thanks to zhenhua in #ofono for his help and to Aki Niemi for N900 packages and hints.</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Package Building HOWTO</title>
    <id>3244</id>
    <revision>
      <id>27386</id>
      <timestamp>2010-01-26T00:19:28Z</timestamp>
      <contributor>
        <username>blfgomes</username>
        <id>1938</id>
      </contributor>
      <comment>/* Upload to Builder */</comment>
      <text xml:space="preserve">=Package Building HOWTO=
Here's how to build a &quot;standard&quot; ./configuresque package for Maemo 5, using &quot;foo&quot; as an example. This is a command line application...

==Environment==
First set up your initial environment in the scratchbox to save future keystrokes. This only has to be set up once.

 # log in to development/SDK server:
 ssh -C flauta.freemoe.org
 
 # Enter scratchbox
 /scratchbox/login
 
 # Set up your full name for debianization (enter your name, not mine!):
 echo 'export DEBFULLNAME=&quot;Jeff Moe&quot;' &gt;&gt; ~/.bashrc
 
 # Set up email address for debianization (enter your email, not mine!):
  echo 'export DEBEMAIL=&quot;moe@blagblagblag.org&quot;' &gt;&gt; ~/.bashrc
 
 # Re-read bashrc to drag in above:
 . ~/.bashrc
  
 # Check that all looks cool:
 echo $DEBEMAIL ; echo $DEBFULLNAME

==Package Setup==
Now do the actual creation of the package:

 # Set up some dirs for workingspace:
 mkdir -p ~/foo/freemoe
 
 # go there
 cd ~/foo/freemoe
 
 # grab source from upstream
 wget http://foo.googlecode.com/files/foo-1.2.3.tar.bz2
 
 # Untar the source
 tar jxf foo-1.2.3.tar.bz2
 
 # Upstream doesn't have .gz in this case, \
 # so re-tar because the version of debhelper in Maemo 5 doesn't support .bz2 (!)
 tar zcf foo-1.2.3.tar.gz foo-1.2.3
 
 # Enter source dir
 cd foo-1.2.3
 
 # Check WTF the LICENSE is
 less COPYING
 
 # Initial setup of package
 dh_make --single \
   --copyright gpl \
   --file ../foo-1.2.3.tar.gz
 
 # Set up for maemo-optification:
 echo auto &gt; debian/optify

==debian/control==
debian/control defines info about the package that is read in such places as the application installer.

* Don't put libraries and other non-user packages in the user section!

* In the Description:, lines MUST be preceded by a space. Blank lines must have a space and then a period.

* Check this to find a [[Documentation/Maemo_5_Developer_Guide/Packaging%2C_Deploying_and_Distributing#Sections|valid Section:]]

* Figuring out Build-Depends: is currently left as an exercise for the reader. Hints:
 fakeroot apt-get update
 fakeroot apt-cache search bar
 fakeroot apt-get install bar

 Here is a sample debian/control:

 Source: foo
 Section: user/multimedia
 Priority: extra
 Maintainer: Jeff Moe &lt;moe@blagblagblag.org&gt;
 Build-Depends: debhelper (&gt;= 5), autotools-dev, maemo-optify
 Standards-Version: 3.7.2
 
 Package: foo
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
 XB-Maemo-Display-Name: Foo Package Name in the App Manager
 XB-Maemo-Display-Name-pl_PL: Polish translation of the name in the App Manager
 XB-Description: Foo does everything you want.
  Foo does everything. It is fantastic.
  .
  Be sure to explore all of Foo, especially the clone x-fade tool.
  .
  There is so much to Foo!
 XB-Description-pl_PL: Polish translation of the description
 XB-Maemo-Upgrade-Description: upgrade description shows up in place of the standard one when a user updates a package
 XB-Maemo-Upgrade-Description-pl_PL: Polish translation of the description
 XSBC-Bugtracker: Mandatory field if you want to enter Extras, put bugtracker URL here.
 XB-Maemo-Icon-26:
 Put a base64 encoded 48x48px image here.
 This means &quot;uuencode -m icon.png icon.png &gt; icon.png.en&quot;, then paste the
 output here, but do not forget to put a white space at the beginning of each line containing the icon-encoded text.

==debian/changelog==
Edit changelog:
 dch -i

Edit debian/changelog to read:
 foo (1.2.3-1) unstable; urgency=low
 
  * Initial release for Maemo 5 (Nokia N900).
 
 -- Jeff Moe &lt;moe@blagblagblag.org&gt;  Tue, 22 Dec 2009 17:00:02 -0300

==Build Binary X86 Package==
Now you're ready to actually build the package. This may help you find out what the Build-Depends: are as well.

===X86===
Now see if it works in x86:

 # Switch to X86
 sb-conf select FREMANTLE_X86
 
 # Go to the correct dir:
 cd ~/foo/freemoe/foo-1.2.3
 
 # Compile!
 dpkg-buildpackage -rfakeroot -b -uc


===Optify .deb===
If that all went cool, &quot;optify&quot; the package (am I doing this right?--I was doing it differently before, but this was recommended by upstream and is how the Maemo builder box does it):

 # Go to correct dir
 cd ~/foo/freemoe
  
 # Optify X86 package:
 maemo-optify-deb foo_1.2.3-1_i386.deb
 
 # Optify non-binary package (if any):
 maemo-optify-deb foo_1.2.3-1_all.deb
 
 # Or if you have a bunch of packages and you're lazy, just
 for i in *.deb
  do echo $i
  maemo-optify-deb $i
 done
 
 # Check optification results:
 dpkg -c foo_1.2.3-1_i386.deb

==Test in scratchbox==
You can test your package in the scratchbox:

 # Install in scratchbox
 fakeroot dpkg -i foo_1.2.3-1_i386.deb
 
 # Run it!
 foo

==Build Binary ARMEL Package==
Now you're ready to actually build the package that will run on the phone.

===ARMEL===
 # Switch to ARMEL
 sb-conf select FREMANTLE_ARMEL
 
 # Go to the correct dir:
 cd ~/foo/freemoe/foo-1.2.3
 
 # Compile!
 dpkg-buildpackage -rfakeroot -b -uc


===Optify .deb===
If that all went cool, &quot;optify&quot; the package (am I doing this right?--I was doing it differently before, but this was recommended by upstream and is how the Maemo builder box does it):

 # Go to correct dir
 cd ~/foo/freemoe
 
 # Optify ARMEL package:
 maemo-optify-deb foo_1.2.3-1_armel.deb
  
 # Optify non-binary package (if any):
 maemo-optify-deb foo_1.2.3-1_all.deb
 
 # Or if you have a bunch of packages and you're lazy, just
 for i in *.deb
  do echo $i
  maemo-optify-deb $i
 done
 
 # Check optification results:
 dpkg -c foo_1.2.3-1_armel.deb


==Build Source Package==
Build a source package for uploading to builder (I'm not 100% this is the optimal command, but worksforme).

 # cd to dir
 cd ~/foo/freemoe/foo-1.2.3
 dpkg-buildpackage -rfakeroot -S -uc -us -sa

==Put Package in Personal Repository==
Now that it's all built and cool, copy the file over to your N900. I put it in my own repo and install it with apt on my N900. You don't have to set up a repo to do all this, but it's nice

 # Exit from scratchbox
 logout
 
 # Create source dir on web server:
 mkdir -p /var/www/users/jebba/dists/unstable/main/source/foo_1.2.3-1
 
 # Create binary dirs on web server:
 mkdir -p /var/www/users/jebba/dists/unstable/main/binary-armel
 mkdir -p /var/www/users/jebba/dists/unstable/main/binary-i386
 
 # Copy over orig tarball:
 cp -p /scratchbox/users/jebba/home/jebba/foo/freemoe/*.diff.orig.tar.gz \
 /var/www/users/jebba/dists/unstable/main/source/foo_1.2.3-1/
 
 # Copy over diff:
 cp -p /scratchbox/users/jebba/home/jebba/foo/freemoe/*.diff.gz \
 /var/www/users/jebba/dists/unstable/main/source/foo_1.2.3-1/
 
 # Copy over dsc:
 cp -p /scratchbox/users/jebba/home/jebba/foo/freemoe/*.dsc \
 /var/www/users/jebba/dists/unstable/main/source/foo_1.2.3-1/
 
 # Copy over changes:
 cp -p /scratchbox/users/jebba/home/jebba/foo/freemoe/*.changes \
 /var/www/users/jebba/dists/unstable/main/source/foo_1.2.3-1/
 
 # Copy over ARMEL binary:
 cp -p /scratchbox/users/jebba/home/jebba/foo/freemoe/*_armel.deb \
 /var/www/users/jebba/dists/unstable/main/binary-armel/
 
 # Copy over X86 binary:
 cp -p /scratchbox/users/jebba/home/jebba/foo/freemoe/*_i386.deb \
 /var/www/users/jebba/dists/unstable/main/binary-i386/
 
 # Regenerate repository headers:
 cd /var/www/users/jebba/
 
 # Binary ARMEL Packages
 dpkg-scanpackages dists/unstable/main/binary-armel /dev/null \
 | gzip -9c &gt; dists/unstable/main/binary-armel/Packages.gz
 
 # Binary X86 Packages
 dpkg-scanpackages dists/unstable/main/binary-i386 /dev/null \
 | gzip -9c &gt; dists/unstable/main/binary-i386/Packages.gz
 
 # Source Packages
 dpkg-scansources dists/unstable/main/source /dev/null \
 | gzip -9c &gt; dists/unstable/main/source/Sources.gz

==Install Package==
Install the sucker.

===Testing via manual copying===
If you don't have your own personal repository, do something like this, where 10.0.0.2 is the IP address of your N900:

 # copy file to N900
 scp -p /scratchbox/users/jebba/home/jebba/foo/freemoe/*_armel.deb \
 10.0.0.2:MyDocs/
 
 # ssh into N900
 ssh user@10.0.0.2
 
 # Install .deb
 sudo gainroot
 dpkg -i /home/user/MyDocs/foo_1.2.3-1_armel.deb

===Testing via personal repo===
If you have your own repo, enable it, ala:

 # edit sources to enable personal repo:
 sudo gainroot
 vim /etc/apt/sources.list
 
 # In my case, I add the line:
 deb http://www.freemoe.org/users/jebba unstable main
 
 # Update repo
 apt-get update -o dir::cache=/home/user/MyDocs/.apt-archive-cache
 
 # Install package
 apt-get install -o dir::cache=/home/user/MyDocs/.apt-archive-cache foo

==Test Package==
Now time to actually test it. Just run it :)

 foo

Also helpful commands, like:
 dpkg -I foo
 dpkg -l foo
 dpkg -l | grep foo
 dpkg -L foo

==Upload to Builder==
If your package works well, time to upload to Maemo's builder to put it in extras-devel. Note, you'll need to have set up an ssh key on garage to do this.

 # go to the dir, from outside the scratchbox
 # (if your ~/.ssh key isn't in the scratchbox)
 cd /scratchbox/users/jebba/home/jebba/foo/freemoe
 
Uh, just run this script:

 #!/bin/sh
 
 echo
 echo &quot;Uploading:&quot;
 ls *.tar.gz *.diff.gz *.changes *.dsc
 echo
 
 echo -n &quot;All look ok? ctrl-c to quit &quot; ; read ok
 echo
 
 scp -p *.tar.gz *.diff.gz *.changes *.dsc \
 jebba@drop.maemo.org:/var/www/extras-devel/incoming-builder/fremantle/

==Chill==
Now just wait for the package to finish. You can repeatedly hit &lt;reload&gt; in your browser, or ctrl-5 here:

* [https://garage.maemo.org/builder/fremantle/?C=M;O=D Builder directory]

* [https://garage.maemo.org/extras-assistant/index.php Package queue]

* [http://maemo.org/packages Packages (search)]

==sources.list==
Here's a sample sources.list you can use which has a bit more than the defaults:

 # This is default upstream, but mirror is much faster
 # SDK
 #deb http://repository.maemo.org/ fremantle/sdk free
 #deb-src http://repository.maemo.org/ fremantle/sdk free
 # Tools
 #deb http://repository.maemo.org/ fremantle/tools free
 #deb-src http://repository.maemo.org/ fremantle/tools free
 
 # This is default upstream, but mirror is much faster
 # Extras
 #deb http://repository.maemo.org/extras/ fremantle free
 #deb-src http://repository.maemo.org/extras/ fremantle free
 # Extras-Testing
 #deb http://repository.maemo.org/extras-testing/ fremantle free
 #deb-src http://repository.maemo.org/extras-testing/ fremantle free
 # Extras-Devel
 #deb http://repository.maemo.org/extras-devel/ fremantle free
 #deb-src http://repository.maemo.org/extras-devel/ fremantle free
 
 # This is a local mirror
 # SDK
 deb http://espejo.freemoe.org/repository.maemo.org/ fremantle/sdk free
 deb-src http://espejo.freemoe.org/repository.maemo.org/ fremantle/sdk free
 # Tools
 deb http://espejo.freemoe.org/repository.maemo.org/ fremantle/tools free
 deb-src http://espejo.freemoe.org/repository.maemo.org/ fremantle/tools free
 
 # This is a local mirror
 # Extras
 deb http://espejo.freemoe.org/repository.maemo.org/extras/ fremantle free
 deb-src http://espejo.freemoe.org/repository.maemo.org/extras/ fremantle free
 # Extras-Testing
 deb http://espejo.freemoe.org/repository.maemo.org/extras-testing/ fremantle free
 deb-src http://espejo.freemoe.org/repository.maemo.org/extras-testing/ fremantle free
 # Extras-Devel
 deb http://espejo.freemoe.org/repository.maemo.org/extras-devel/ fremantle free
 deb-src http://espejo.freemoe.org/repository.maemo.org/extras-devel/ fremantle free
 
 # good luck with these
 #deb https://downloads.maemo.nokia.com/fremantle/apps/ ./
 #deb https://downloads.maemo.nokia.com/fremantle/mr0 ./
 
 # Non-free crap, you need a majick key (substitute 000000)
 #deb http://repository.maemo.org/ fremantle/00000000000000000000000000000000 nokia-binaries
 
 # This is jebba's repo
 #deb http://www.freemoe.org/users/jebba unstable main
 #deb-src http://www.freemoe.org/users/jebba unstable main
 
 # These are debian repos. Handy to grab source packages if they exist alreay
 # Etch
 #deb-src http://ftp.us.debian.org/debian/ etch main contrib
 # Etch Backports
 #deb-src http://www.backports.org/debian etch-backports main contrib
 # Stable Lenny
 #deb-src http://ftp.us.debian.org/debian/ lenny main contrib
 # Testing Squeeze
 #deb-src http://ftp.us.debian.org/debian/ squeeze main contrib
 # Unstable Sid
 #deb-src http://ftp.us.debian.org/debian/ sid main contrib
 
 # mozilla / firefox / fennec
 #deb http://moff.mozilla.com/ chinook release
 #deb-src http://moff.mozilla.com/ chinook release
 
 # ubuntu for mer
 #deb-src http://ports.ubuntu.com/ubuntu-ports jaunty main restricted universe multiverse

==See Also==
* [[Extras-testing/QA_Checklist| QA Checklist]]

* [http://pkg-perl.alioth.debian.org/howto/quilt.html Quilt for Debian Maintainers]

* [[Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections| Valid Sections:]]

* [http://hildon-app-mgr.garage.maemo.org/packaging-stable.html How to make a package for the Hildon Application Manager]</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Packages by Jebba</title>
    <id>3246</id>
    <revision>
      <id>27366</id>
      <timestamp>2010-01-25T14:58:13Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>/* Mas y mas y mas */ icecast2</comment>
      <text xml:space="preserve">=My Packages=
These are packages I have built and are available in the maemo repository, packages I've built and are in my repository or packages I'd like to see built.

Uh, I actually have quite a few other packages submitted to the builder, but I need to go through someday (when maemo.org/packages isn't painfully slow to use) and see what the status is. I don't know of a way to even search packages by packager, but perhaps there is a way.

==In Maemo Repository==
===Burgerspace===

* Currently in extras.

* [http://maemo.org/packages/view/burgerspace/ BurgerSpace package overview]

* [http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/burgerspace/1.8.3-18 BurgerSpace latest release package instance]

* [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;classification=Extras&amp;product=BurgerSpace&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= Bugzilla]

* [http://talk.maemo.org/showthread.php?t=37573 Talk discussion thread]

===libflatzebra===

* BurgerSpace dependency.

* Currently in extras.

* Weird version numbering inherited from upstream Debian.

* [http://maemo.org/packages/view/libflatzebra-0.1-2 libflatzebra package overview]

* [http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/libflatzebra-0.1-2/0.1.3-3 Latest libflatzebra package instance]

* [http://maemo.org/packages/view/libflatzebra-dev libflatzebra-dev package overview]

* [http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/libflatzebra-dev/0.1.3-3 libflatzebra-dev latest package instance]

* [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;classification=Extras&amp;product=BurgerSpace&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= Bugzilla (BurgerSpace)]

* [http://talk.maemo.org/showthread.php?t=37573 Talk discussion thread (BurgerSpace)]

===Asterisk===
I have asterisk packages in extras-testing.

 Connected to Asterisk 1.6.2.0-3 currently running on Nokia-N900-42-11 (pid = 1692)

====Asterisk Packages in Maemo extras-testing====
* [http://maemo.org/packages/view/asterisk/ asterisk]
* [http://maemo.org/packages/view/asterisk-config/ asterisk-config]
* [http://maemo.org/packages/view/asterisk-dbg asterisk-dbg]
* [http://maemo.org/packages/view/asterisk-dev asterisk-dev]
* [http://maemo.org/packages/view/asterisk-doc asterisk-doc]
* [http://maemo.org/packages/view/asterisk-sounds-main asterisk-sounds-main]

====Asterisk Bugzilla====
* [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;classification=Extras&amp;product=asterisk&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= asterisk bugzilla]

===diffmo!===
ok, out of sheer frustration with [https://bugs.maemo.org/show_bug.cgi?id=3032 missing diff utility (required by the GNU Coding Standards)] I have packaged up &quot;diffmo&quot;, which is diff, diff3, sdiff, and cmp, but renamed to diffmo, diff3mo, sdiffmo, and cmpmo. :)

* [http://maemo.org/packages/view/diffmo/ maemo packages page]
* [http://talk.maemo.org/showthread.php?t=37602 diffmo thread on talk]
* [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;classification=Extras&amp;product=diffmo&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;emailassigned_to1=1&amp;emailtype1=substring&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailcc2=1&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= Bugzilla]

===colordiffmo!===
colordiff - using diffmo

=Mas y mas y mas=
Various packages I have in maemo-testing or maemo-devel.

* [http://maemo.org/packages/view/freemoe/ freemoe]

* [http://maemo.org/packages/view/ffmpeg/ FFMPEG]:
* libavutil49
* libpostproc51
* libavdevice52
* libavutil49
* libavdevice52
* libpostproc51
* libavfilter0
* libavformat52
* libswscale0
* libavcodec52
* libavfilter0

* [http://maemo.org/packages/view/libwxgtk2.6-0 wxwidgets 2.6]

* [http://maemo.org/packages/view/libwxgtk2.8-0 wxwidgets 2.8]

* [http://maemo.org/packages/view/libotr2/ libotr2]
* libotr2-bin
* libotr2-dev

* [http://maemo.org/packages/view/pidgin-otr/ pidgin-otr]

* [http://maemo.org/packages/view/d-feet/ d-feet]

* [http://maemo.org/packages/view/xbindkeys/ xbindkeys]

* [http://maemo.org/packages/view/cryptsetup/ cryptsetup]

* [http://maemo.org/packages/view/libportaudio2/ portaudio19]:
* portaudio19-dev
* libportaudio2
* libportaudiocpp0
* libportaudio2
* libportaudiocpp0
* portaudio19-doc
* portaudio19-dev

* guile-1.8

* [http://maemo.org/packages/view/celt/ celt]

* [http://maemo.org/packages/view/libgsm1/ libgsm1]
* libgsm-tools
* libgsm1-dbg

* [http://maemo.org/packages/view/libexosip2 libexosip2]
* libexosip2-dev

* [http://maemo.org/packages/view/libosip2 libosip2]
* libosip2-dev

* jack-audio-connection-kit
* [http://maemo.org/packages/view/jackd/ jackd]
* [http://maemo.org/packages/view/libjack-dev/ libjack-dev]
* [http://maemo.org/packages/view/libjack0/ libjack0]
* [http://maemo.org/packages/view/qjackctl/ qjackctl]

* [http://maemo.org/packages/view/libresample1/ libresample1]

* [http://maemo.org/packages/view/dov4l dov4l]

* [http://maemo.org/packages/view/libv4l-0/ libv4l]

* [http://maemo.org/packages/view/icecast2 icecast2]

=Packages in My Repository=
I have set up a package repository. To use it you need to add my repo. In the application manager, add it thusly (I'm translating from Spanish, so the words may be slightly different.)

* Catalog name:
 jebba
* Web address:
 http://www.freemoe.org/users/jebba
* Distribution
 unstable
* Components
 main

=Packages TODO=
Package these or get someone to do it.

* some video conferencing app (telepathy-gabble), jingle etc.

* [http://www.tangogps.org tangogps] - &quot;an easy to use, fast and lightweight mapping application for use with or without GPS.&quot;

* Take a look at the various [http://wiki.openmoko.org/wiki/Applications OpenMoko (OpenSnot) applications]

* boa - lightweight webserver (cute). Using lighttpd, which seems to fit the bill already tho.

* lshw - wants PCI stuff, so maybe won't work very well anyway. It doesn't show too much on my Sharp Netwalker.

* gobby

* gtg

* icecast</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Random</title>
    <id>3249</id>
    <revision>
      <id>27160</id>
      <timestamp>2010-01-22T05:48:27Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>/* Random */ LEDs</comment>
      <text xml:space="preserve">=Random=
Things to file/organize.

* [[User:Jebba/Keymap]]

* List of packages sorted by size ala pupnik
 dpkg-query --show --showformat='${Package;-50}\t${Installed-Size}\n' | sort -k2 -n

* [[PyMaemo]]

* [http://www.natisbad.org/N900/ FANTASIC page with lots &amp; lots of info about the hardware and more] - A must see.

* [[Free_Maemo|Free Maemo]]

* [http://wiki.debian.org/Projects/DebSrc3.0 Debian packaging] - next generation, ala quilt etc.

* [http://www.debian.org/doc/maint-guide/ Debian New Maintainers' Guide]

* [http://mud-builder.garage.maemo.org/ mud-builder] - repackage upstream sources. [[User:Jaffa/mud_design | Mud design]]

* [[Reprepro|Reprepro - managing repos]]

* [http://wiki.maemo.org/Maemo.org_team]

* [http://mg.pov.lt/maemo-irclog/latest.log.html #maemo IRC logs] - [http://mg.pov.lt/maemo-devel-irclog/ #maemo-devel IRC logs]

* irc.freenode.net #maemo #canola

* [http://t0x.in/xchatsetvars.html xchat vars]

* [[Troubleshooting_boot_issues]]

* [[Booting_from_a_flash_card]]

* Under the battery there are two sets of gold &quot;dots&quot; on the motherboard. What are these for? JTAG? USB? Serial???

* SDK hung forever after download at: &quot;Preconfiguring packages&quot;.

* Can Maemo be installed on Sharp Netwalker, since Ubuntu on that thing is a terrible dog by comparison?

* [http://davestechshop.net/sites/davestechshop.net/files/Nokia_N900_Rover_en-US_es-LAM.pdf PDF N900 doc] - [http://nds1.nokia.com/phones/files/guides/Nokia_N900_UG_en.pdf More recent PDF doc] (I think)

* lshal

* [http://lists.maemo.org/pipermail/maemo-developers/ Maemo developers mailing list]

* [https://garage.maemo.org/builder/fremantle/?C=M;O=D Packages uploaded to Builder]

* [https://garage.maemo.org/extras-assistant/index.php Extras Builder assistant] - Lists a few things in the queue

* [https://garage.maemo.org/pipermail/extras-cauldron-builds/ The extras-cauldron-builds Archives]

* [http://maemo.org/packages/repository/builds/fremantle_extras-devel_free_source/all/ Latest builds: extras-devel]

* [http://planet.maemo.org Maemo blog aggregation]

* [http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Architecture/Core_Domain] - Core domain architecture

* http://wiki.maemo.org/N900_Shortcuts_and_Gestures

* [http://wiki.ekiga.org/index.php/Fun_Numbers Numbers to test SIP]

* Turn on camera LEDs (e.g. for flashlight):
 SpeedEvil: jebba: you open the camera file descriptor and send a ioctl(V4L2_TORCH_ON)
 SpeedEvil: jebba: well, there may be a dbus thingy for it - there is no need though. mplayer could do it if it could control arbitrary v4l2 controls - but it can't
 (07:39:24 PM) cehteh: SpeedEvil: V4L2_CID_INDICATOR_INTENSITY  ... the dim mode is supported in the driver

* http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Packaging%2C_Deploying_and_Distributing#Making_Application_Packages

* [http://www.bu3sch.de/joomla/index.php/nokia-n810-serial-console N810 Serial Console] - need one of these for the N900. Nokia doesn't document it though. :(

* Icons:
 (05:13:43 PM) VDVsx: 48x48 for the app menu and 64x64 for the desktop shortcuts

* To make an icon to be put in debian/control (MUST be 48x48):

 openssl base64 -in emacs-48x48.png | sed -e 's/^/ /' &gt;&gt; control

* Accelerometer:
 (12:34:03 PM) DocScrutinizer51: jebba: (accel) it's a lis302. I'm sure on wiki.openmoko.org you find quite some details, and link to datasheet

* [http://blogs.igalia.com/berto/2009/12/17/remapping-the-n900-arrow-keys/ remap keys]

* HOWTO ignore lamers on talk.maemo.org: click their Username, click &quot;View Public Profile&quot;, click &quot;User lists&quot;, click &quot;Add to Ignore list&quot;, click &quot;yes&quot; to confirm.  (OrangeBox for starters)

* [http://www.topflashers.com/maemo/misc/removetrolls.maemo.user.js Greasemonkey script to ignore talk.maemo.org trolls]

* LEDs:
 * /sys/class/leds # echo 255 &gt; lp5523\:r/brightness  ; while true ; do echo 255 &gt; lp5523\:g/brightness  ; sleep 1 ; echo 0 &gt; lp5523\:g/brightness  ; sleep 1 ; done</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Repositories</title>
    <id>3258</id>
    <revision>
      <id>47451</id>
      <timestamp>2012-05-08T07:14:29Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[User:Jebba/Repositories]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">Various repositories... I only include the free sections.

=Nokia Official=
Uh, I've made so many changes, I can't be certain, but I think these are the repositories that come with the phone:

 deb https://downloads.maemo.nokia.com/fremantle/apps/ ./ 
 deb https://downloads.maemo.nokia.com/fremantle/mr0 ./

[[User:rlinfati|rlinfati]] 23:41, 3 January 2010 (UTC) also exist 002, 003, 203 update repositories (mr0 = generic fw)

=Extras=
This is the repo that is set up when you get the phone, but disabled by default:

 deb http://repository.maemo.org/extras/ fremantle free

=Extras-Testing=
Extras-testing is the staging area where repos get the thumbs up or thumbs down. If they have good karma, they make it into the main extras repository where they are easily available by every noob with the phone.

 deb http://repository.maemo.org/extras-testing/ fremantle free

=Extras-Devel=
This repo is where all sorts of stuff is uploaded by anyone that can figure out how to build a package and make an ssh key. All sorts of brokenness abounds and many packages are not &quot;optified&quot; so you can easily brick your phone if you are not careful when playing here:

 deb http://repository.maemo.org/extras-devel/ fremantle free

=Tools=
The tools repo has various development tools for geeks.

 deb http://repository.maemo.org/ fremantle/tools free

=SDK=
The SDK repo is used by developing Maemo applications and is usually installed on a development box, not the phone. I *think* I've grabbed packages from there and installed them on the phone...

 deb http://repository.maemo.org/ fremantle/sdk free

=Grabbing Source Code=
To grab source code from a repository is very easy. You just need to change teh &quot;deb&quot; part of the line to &quot;deb-src&quot;. For instance here's the tools repository and it's source repository:

  deb http://repository.maemo.org/ fremantle/tools free
  deb-src http://repository.maemo.org/ fremantle/tools free

The to install something you can just run:

 apt-get update
 apt-get source foo


=Developer Repositories=
One of the great things about the Maemo/N900 is that anyone can set up a repo. You're not stuck in a jail. The repositories below are set up by random folks, just like me. :)

Note, the Maemo community wants to have as few external repositories as possible, to keep things sane and easy. See [[Task:Reducing_number_of_external_repositories]].

==Jebba==
This is my own private repo where I upload things before I upload them to maemo.org. I also have some random things in there that I likely will never upload to maemo.org (such as the kernel).

 deb http://www.freemoe.org/users/jebba unstable main

===Debian Etch===
I [[User:Jebba/Etch|rebuilt Debian Etch]]:

  deb http://obra.freemoe.org/ freemoe-etch/

==[[User:Ruskie|ruskie]]==
Note, this repository does not &quot;optify&quot; the packages so they will take up space on your root filesystem unless you've repartitioned.

 https://repo.codemages.net/ nonopt/

Here's the same repo, but with &quot;optified&quot; versions:

 https://repo.codemages.net/ opt/

==ali1234==
Has cool shakeandroll

 deb http://al.robotfuzz.com/~al/maemo/fremantle /

==Rygel==
* http://live.gnome.org/Rygel

 deb http://fatal.se/pub/ah-maemo-repo/ fremantle free non-free
 deb-src http://fatal.se/pub/ah-maemo-repo/ fremantle free non-free

==Thomas Tanner==
* http://www.maemory.com/N900/ python2.6, numpy, scipy, sympy, lapack, blas, perl5.10 and other up to date stuff
DANGEROUS! partially not optified or overwrites core components
 
 deb http://www.maemory.com/N900/ fremantle free incompatible
 deb-src http://www.maemory.com/N900/ fremantle free incompatible

==Qole==
* http://qole.org/

 deb http://qole.org/repository/ maemo fremantle

==matan==
http://wiki.maemo.org/Modified_Hildon_Desktop

 deb http://my.arava.co.il/~matan/repo/binary/ ./</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Repositories</title>
    <id>3258</id>
    <revision>
      <id>47451</id>
      <timestamp>2012-05-08T07:14:29Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[User:Jebba/Repositories]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">Various repositories... I only include the free sections.

=Nokia Official=
Uh, I've made so many changes, I can't be certain, but I think these are the repositories that come with the phone:

 deb https://downloads.maemo.nokia.com/fremantle/apps/ ./ 
 deb https://downloads.maemo.nokia.com/fremantle/mr0 ./

[[User:rlinfati|rlinfati]] 23:41, 3 January 2010 (UTC) also exist 002, 003, 203 update repositories (mr0 = generic fw)

=Extras=
This is the repo that is set up when you get the phone, but disabled by default:

 deb http://repository.maemo.org/extras/ fremantle free

=Extras-Testing=
Extras-testing is the staging area where repos get the thumbs up or thumbs down. If they have good karma, they make it into the main extras repository where they are easily available by every noob with the phone.

 deb http://repository.maemo.org/extras-testing/ fremantle free

=Extras-Devel=
This repo is where all sorts of stuff is uploaded by anyone that can figure out how to build a package and make an ssh key. All sorts of brokenness abounds and many packages are not &quot;optified&quot; so you can easily brick your phone if you are not careful when playing here:

 deb http://repository.maemo.org/extras-devel/ fremantle free

=Tools=
The tools repo has various development tools for geeks.

 deb http://repository.maemo.org/ fremantle/tools free

=SDK=
The SDK repo is used by developing Maemo applications and is usually installed on a development box, not the phone. I *think* I've grabbed packages from there and installed them on the phone...

 deb http://repository.maemo.org/ fremantle/sdk free

=Grabbing Source Code=
To grab source code from a repository is very easy. You just need to change teh &quot;deb&quot; part of the line to &quot;deb-src&quot;. For instance here's the tools repository and it's source repository:

  deb http://repository.maemo.org/ fremantle/tools free
  deb-src http://repository.maemo.org/ fremantle/tools free

The to install something you can just run:

 apt-get update
 apt-get source foo


=Developer Repositories=
One of the great things about the Maemo/N900 is that anyone can set up a repo. You're not stuck in a jail. The repositories below are set up by random folks, just like me. :)

Note, the Maemo community wants to have as few external repositories as possible, to keep things sane and easy. See [[Task:Reducing_number_of_external_repositories]].

==Jebba==
This is my own private repo where I upload things before I upload them to maemo.org. I also have some random things in there that I likely will never upload to maemo.org (such as the kernel).

 deb http://www.freemoe.org/users/jebba unstable main

===Debian Etch===
I [[User:Jebba/Etch|rebuilt Debian Etch]]:

  deb http://obra.freemoe.org/ freemoe-etch/

==[[User:Ruskie|ruskie]]==
Note, this repository does not &quot;optify&quot; the packages so they will take up space on your root filesystem unless you've repartitioned.

 https://repo.codemages.net/ nonopt/

Here's the same repo, but with &quot;optified&quot; versions:

 https://repo.codemages.net/ opt/

==ali1234==
Has cool shakeandroll

 deb http://al.robotfuzz.com/~al/maemo/fremantle /

==Rygel==
* http://live.gnome.org/Rygel

 deb http://fatal.se/pub/ah-maemo-repo/ fremantle free non-free
 deb-src http://fatal.se/pub/ah-maemo-repo/ fremantle free non-free

==Thomas Tanner==
* http://www.maemory.com/N900/ python2.6, numpy, scipy, sympy, lapack, blas, perl5.10 and other up to date stuff
DANGEROUS! partially not optified or overwrites core components
 
 deb http://www.maemory.com/N900/ fremantle free incompatible
 deb-src http://www.maemory.com/N900/ fremantle free incompatible

==Qole==
* http://qole.org/

 deb http://qole.org/repository/ maemo fremantle

==matan==
http://wiki.maemo.org/Modified_Hildon_Desktop

 deb http://my.arava.co.il/~matan/repo/binary/ ./</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/SDK</title>
    <id>3247</id>
    <revision>
      <id>25668</id>
      <timestamp>2010-01-03T21:16:28Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>see also</comment>
      <text xml:space="preserve">=SDK=
There are a couple different SDKs (at least) that can be used. I have the main/standard SDK up and running on Fedora 12 x86_64. It is based on Scratchbox 1. There is another SDK, Maemo SDK+, which is based on Scratchbox 2, but I don't have that working yet.


==Installing Maemo 5 SDK on Fedora 12 x86_64==

===Prepare host system===
Add &quot;vdso32=0&quot; to your kernel bootline so it looks something like this (I also have selinux disabled). Edit /boot/grub/grub.conf. You have to reboot for it to take effect.
 kernel /vmlinuz-2.6.31.6-145.fc12.x86_64 ro root=/dev/sda2 selinux=0 quiet rhgb nompath nodmraid SYSFONT=latarcyrheb-sun16 LANG=en_US.UTF-8 KEYTABLE=la-latin1 vdso32=0

Install Xephyr
 sudo yum -y install Xephyr

===Download and patch wizard===
Grab the wizard script.
 wget http://repository.maemo.org/stable/5.0/maemo-sdk-install-wizard_5.0.py
 chmod +x maemo-sdk-install-wizard_5.0.py

Apply this patch to maemo-sdk-install-wizard_5.0.py:
 --- maemo-sdk-install-wizard_5.0.py.orig    2009-11-16 08:16:39.000000000 -0300
 +++ maemo-sdk-install-wizard_5.0.py    2009-12-04 17:29:00.905719892 -0300
 @@ -2308,7 +2308,7 @@
         tries = 2
         while (True):
             try:
 -                exec_cmd(sb_installer_fn + opt)
 +                exec_cmd(sb_installer_fn + opt + &quot;-s &quot; + SB_PATH)
             except:
                 tries -= 1
                 if tries:
 @@ -2348,7 +2348,7 @@
 
 
         # do the installation thing
 -        cmd = &quot;%s -d -m %s&quot; % (sdk_installer_fn, self.__sdk_inst_m_opt_arg)
 +        cmd = &quot;%s -d -m %s -s %s&quot; % (sdk_installer_fn, self.__sdk_inst_m_opt_arg, SB_PATH)
 
         if self.__targets_exist:
             if self.__remove_targets:

===Run wizard, run===
Then start up the install wizard:
 sudo ./maemo-sdk-install-wizard_5.0.py

In SDK install wizard GUI:
# Next
# Custom Installation, Commit
# Gar, Next
# Install anyway, Next
# User jebba, Next
# Install options, Next
# VDSO suport, I accept, Next  (though I did boot with vdso=32 ...)
# Development environment, Next
# Accept barf, Next (gah)
# It will then download everything and install. Perhaps a couple Nexts and it is done.


===&quot;No dpkg&quot; error===
If you get the following error, it is because your maemo-sdk-install-wizard_5.0.py script didn't get patched correctly, as above.
 which: no dpkg in (/usr/bin:/bin)
 dpkg tool in path... no
 E: This script requires dpkg to install .deb files.
 V [17:19:35 04.12.2009]: Installer execution failed
 V [17:19:35 04.12.2009]: ----- Begin logging exception -----
 Traceback (most recent call last):
  File &quot;./maemo-sdk-install-wizard_5.0.py&quot;, line 2705, in run
    task( )
  File &quot;./maemo-sdk-install-wizard_5.0.py&quot;, line 2318, in __taskInstallScratchbox
     raise Exception(&quot;Installer execution failed&quot;)
 Exception: Installer execution failed
 V [17:19:35 04.12.2009]: ----- End logging exception -----
 V [17:19:35 04.12.2009]: Executor set exit status to (status_error)


See also:
* [[Documentation/Maemo_5_Final_SDK_Installation| SDK Installation]]
* [http://blog.gbraad.nl/2009/11/maemo-5-sdk-on-fedora-12.html Maemo 5 SDK on Fedora 12]
* [http://talk.maemo.org/showthread.php?p=410602 Maemo 5 SDK on Fedora] on Maemo talk.

==Running Maemo 5 SDK on Fedora 12 x86_64==
Now that the SDK is happily installed, you can run it.

===New Group sbox===
In the terminals where you will be running commands you need to run this to show up in the sbox group. Any subsequent times you log out and in you don't need to run it again (in other words, you just have to run this when you first set things up):
 newgrp sbox

===Start Scratchbox &amp; Xephyr &amp; Login===
After installation scratchbox is &quot;booted&quot; up. Subsequently (e.g. after a reboot of your laptop) you will need to start it thusly:
 sudo ~/devel/maemo/scratchbox/sbin/sbox_ctl start


Get Xephyr going, which is the X server. Note the Fedora 12 version doesn't have the &quot;-kb&quot; optioned mentioned in other docs.
 Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac


Log in to Scratchbox:
 ~/devel/maemo/scratchbox/login

This should give you a prompt like this:
 [sbox-FREMANTLE_X86: ~] &gt; 

Then to launch the emulated GUI, run this at the above prompt:
 af-sb-init.sh start

Then you should have the emulator up and running! :)

===Using SDK===

====Frequently Used Commands====

Build binary package:
 cd foo-1.2.3
 dpkg-buildpackage -rfakeroot -b -uc

Build source package:
 cd foo-1.2.3
 dpkg-buildpackage -rfakeroot

Switch to build for ARM:
 sb-conf select FREMANTLE_ARMEL

Switch to build for x86:
 sb-conf select FREMANTLE_X86

Kill off things running if it won't let you switch between ARM/x86:
 sb-conf killall

Grab and start building a source package:
 apt-get -b source foo

File that describes package being built:
 vim foo-1.2.3/debian/control

File that has build rules (e.g. where ./configure is):
 vim foo-1.2.3/debian/rules

File that lists patches to be used:
 vim foo-1.2.3/debian/patches/series



====Source Repositories====
One of the &quot;easiest&quot; ways to get things built is to just check to see if it is in any of the Debian repositories and just pillage it from there. Grabbing it from an &quot;old&quot; repository and building it will be easiest because the dependencies are more likely to be the same. Grabbing it from the latest and greatest repository means you will get the most recent version of the package, but will probably have to go through and sort out more dependencies.

Note, you (or I) probably don't want to add the binary repositories to your build environment or you may cause some total chaos in your system. In this case, I am only adding the ''source'' repositories.

These are the source repos I added to /etc/apt/sources.list. Note that you have to do this within ''both'' architectures (x86/ARM) as they don't share the same sources.list.

 # Etch
 #deb-src http://ftp.ccc.uba.ar/pub/linux/debian/debian/ etch main contrib
 
 # Etch Backports
 #deb-src http://www.backports.org/debian etch-backports main contrib
 
 # Stable Lenny
 #deb-src http://ftp.ccc.uba.ar/pub/linux/debian/debian/ stable main contrib
 #deb-src http://ftp.ccc.uba.ar/pub/linux/debian/debian/ lenny main contrib
 
 # Testing Squeeze
 #deb-src http://ftp.ccc.uba.ar/pub/linux/debian/debian/ testing main contrib
 deb-src http://ftp.ccc.uba.ar/pub/linux/debian/debian/ squeeze main contrib
 
 # Unstable sid
 #deb-src http://ftp.ccc.uba.ar/pub/linux/debian/debian/ unstable main contrib
 #deb-src http://ftp.ccc.uba.ar/pub/linux/debian/debian/ sid main contrib

Some of the same repos above are listed twice, just to help me keep straight all of [http://en.wikipedia.org/wiki/Debian#Release_history Debian's releases]. For example &quot;sid&quot; and &quot;unstable&quot; are the same thing. Explanation:

* Etch - This is what the SDK is based on. It was released in 2007. Version 4.0. (&quot;oldstable&quot;).

* Etch Backports - These are packages which aren't in Etch, or at least not updated to the latest and greatest in Etch, but people &quot;outside&quot; of the Debian project maintain more recent packages. For example, they may have a more recent version of a web browser when Debian's Etch just backports patches to an ancient version.

* Lenny - This is the &quot;stable&quot; version of Debian. Version 5.0. Released February 2009.

* Squeeze - This is the &quot;testing&quot; version of Debian and when it is fully done will be the &quot;stable&quot; release and will be version 6.0.

* Sid - This version will ''never'' be stable nor &quot;released&quot; and is always on the bleeding edge. The latest, most recent packages are in this repository. This is like &quot;rawhide&quot; in Fedora and -current in OpenBSD.

====maemo-optify====
ANOTHER NOTE:  I'm not using maemo-optify anymore since VDVsx said it wasn't the real proper way... Now just doing --prefix=/opt and such...

QUICK NOTE (XXX FIX):

 From: Marius Vollmer &lt;marius.vollmer@nokia.com&gt; 
 Jeff Moe &lt;moe@blagblagblag.org&gt; writes: 
 
 &gt; I installed the maemo-optify 0.2 package from extras-devel but it is missing 
 &gt; the  maemo-optify-buildpackage script. I see it in git. 
 
 Ahh, right.  The maemo-optify-buildpackage script is not used any
 longer.  I have removed it from Git to reduce the confusion.
 
 The real dpkg-buildpackage in the SDK has been modified directly to call
 maemo-optify.


Tools to make using /opt convenient for Debian packages.
* [http://maemo.gitorious.org/maemo-af/maemo-optify/blobs/master/README maemo-optify README]
 git clone git://gitorious.org/maemo-af/maemo-optify.git

Maemo-optify is available in the repos and you can apt-get it from within scratchbox, but the .deb is missing the maemo-optify-buildpackage script. I emailed the author to let him know. In the interim, grab it from git, and:
 cp -p maemo-optify-buildpackage /usr/local/bin

To use it is super-simple, and worked for me without hassle with asterisk:
 echo auto &gt; asterisk-1.6.1.11/debian/optify
 maemo-optify-buildpackage -rfakeroot -b -uc
 maemo-optify-buildpackage -rfakeroot -S


Uh, I also want files of ''all'' sizes to be moved to /opt, not just ones above 2048 bytes. Asterisk has 600k of files still, since it has lots of sound files smaller than 2k. There is a forthcoming option to define this in debian/optify, but that feature isn't in place yet. So in the interim remove the maemo-optify packages (from both X86 and ARM), and use this &quot;patch&quot;:

 --- maemo-optify/maemo-optify    2009-12-04 21:30:51.770927951 -0300
 +++ /usr/local/bin/maemo-optify    2009-12-06 17:39:22.000017316 -0300
 @@ -127,7 +127,7 @@
         dbg &quot;link, nope\n&quot;;
     } elsif (! ($entry eq &quot;.&quot; || $entry =~ /^.\/usr/)) {
         dbg &quot;not in /usr, nope\n&quot;;
 -    } elsif ($size &gt;= 2048) {
 +    } elsif ($size &gt;= 0) {
         if (!blacklisted ($entry)) {
             dbg &quot;yes, saved $size bytes\n&quot;;
             $total_count += 1;

====Upload to extras-devel====

* [[Uploading_to_Extras-devel | Uploading to extras-devel]] - I got permission to upload to extras. Yee haw.

* [https://garage.maemo.org/builder/fremantle/ builder logs]

====Maemian====
Lint tool for Maemo packages. Gotta do no ssl verify to clone things from git.maemo.org

 GIT_SSL_NO_VERIFY=0 git clone https://git.maemo.org/projects/maemian

====See also====
* [[Documentation/Maemo_5_Developer_Guide|Maemo 5 Developer Guide]]

* [https://garage.maemo.org/svn/maemoexamples/trunk/ Maemo Examples]

* [[Documentation/Maemo_5_Developer_Guide/Graphical_UI_Tutorial/Getting_started|Getting started UI Tutorial]] (legacy?)

* [https://maemo.org/forrest-images/pdf/maemo-policy.pdf Maemo Packaging Policy] - Still current?

* [http://maemo.org/development/sdks/maemo_5_api_documentation/ API docs]

* [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]

* [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]


===Configure Scratchbox environment===
Within scratchbox:
 echo &quot;:syntax on&quot; &gt; ~/.vimrc
 echo &quot;:set paste&quot; &gt;&gt; ~/.vimrc
 echo &quot;:set nobackup&quot; &gt;&gt; ~/.vimrc
 echo &quot;export TERM=xterm-color&quot; &gt;&gt; ~/.bashrc

I still feel like a total noob sometimes in that I don't even know how to get my fkn Home/End keys to work in the scratchbox. heh. Hint anyone? :)

===SDK Errors===
If you get this:
 ERROR: Scratchbox is not properly set up!

Run this:
 sudo /scratchbox/sbin/sbox_ctl start

==SDK+==
This is the &quot;alternative&quot; SDK based on Scratchbox 2. I don't have it working yet on Fedora 12 x86_64. It complains and says it just works on i386 ARCH.

[http://maemo-sdk.garage.maemo.org/ Maemo SDK+] - Alternative SDK for Maemo based on [http://www.freedesktop.org/wiki/Software/sbox2 Scratchbox 2].

 http://maemo-sdk.garage.maemo.org/maemo-sdk-installer.py
 chmod +x maemo-sdk-installer.py
 sudo ./maemo-sdk-installer.py install -g

Hmm. Well, this is crashing and burning on x86_64:

 $ sudo ./maemo-sdk-installer.py install -g
 Operating system's machine or word size (x86_64) is not supported.
 These are supported: ['i386', 'i686']
 System check failed!


Things possibly needed:
 yum -y install redhat-lsb

===debootstrap===
Perhaps I should install this sucker in an etch chroot...

 yum -y install debootstrap
 debootstrap --arch=i386 etch /home/jebba/devel/etch-i386 http://ftp.ccc.uba.ar/pub/linux/debian/debian/


==See Also==
* [http://pkg-perl.alioth.debian.org/howto/quilt.html Quilt for Debian Maintainers]
* [[Documentation/Maemo_5_Developer_Guide/Packaging,_Deploying_and_Distributing#Sections| Valid Sections:]]</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Sbdmock</title>
    <id>3256</id>
    <revision>
      <id>27382</id>
      <timestamp>2010-01-25T22:44:03Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>/* sbdmock */</comment>
      <text xml:space="preserve">=sbdmock=
Build tool

* Install on topo

* http://wiki.maemo.org/Building_packages_with_sbdmock

* http://bifh.org/wiki/sbdmock

* http://github.com/kad/sbdmock

* http://lists.maemo.org/pipermail/maemo-developers/2009-December/023155.html

 (05:44:08 PM) tbf: jebba: just make sure to always run the beast with &quot;--debug&quot; switch to see what breaks


You can find current production version of buildme (builder for Maemo
Extras) here:
https://garage.maemo.org/plugins/scmsvn/viewcvs.php/tags/buildme/1.5.1/?root=extras-cauldron

=git repo=
I have this running on obra.freemoe.org. See scripts here:

[http://gitorious.org/freemoe/freemoe/trees/master/servers/obra obra config]</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Setup</title>
    <id>3253</id>
    <revision>
      <id>25223</id>
      <timestamp>2009-12-28T22:34:34Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>new setup page</comment>
      <text xml:space="preserve">=Setup=
Now that the device is debricked, I can use the thing again and &quot;all&quot; my data is there, but the repository setup is back to default and the applications I want are gone, amongst other things. To re-setup:


==ssh server &amp; keys==
* Enable [[Extras]] [http://repository.maemo.org/ repository]: tap, tap, tap...
* Install openssh client/server package
* Install rootsh package
* Set up keys and such for easy access (my device hostname is burger):
* On laptop, ssh into the sucker:
 ssh root@burger
* As root on N900, ssh to localhost as a quick/dirty way to setup /root/.ssh:
 ssh localhost
* On laptop, copy over ssh key and log back in:
 scp -p ~/.ssh/id_rsa.pub root@burger:.ssh/authorized_keys
 ssh root@burger
*To allow ssh access for user &quot;user&quot;, the passwd file needs to be edited.
 vi /etc/passwd
* Change
 user:!:
to
 user:*:
* Set a password for user &quot;user&quot; (I couldn't ssh in without doing this, but someone on IRC said it wasn't necessary):
 passwd user
* Switch user to &quot;user&quot; and blow out the old known_hosts (or at least edit it) to remove the now bogus &quot;localhost&quot; entry:
 su - user
 rm .ssh/known_hosts
* Quick/dirty way to set up /home/user/.ssh:
 ssh localhost
* Then GTFO:
 exit
 exit
* This should work happily
 ssh user@burger

==Packages==
===Set up Repositories===
* Configure the repositories to set up things I like:
 # vi /etc/apt/sources.list.d/hildon-application-manager.list
 
 deb https://downloads.maemo.nokia.com/fremantle/apps/ ./ 
 deb https://downloads.maemo.nokia.com/fremantle/mr0 ./ 
 deb http://repository.maemo.org/extras/ fremantle free non-free
 deb http://repository.maemo.org/extras-testing/ fremantle free
 deb http://repository.maemo.org/extras-devel/ fremantle free
 deb http://repository.maemo.org fremantle/tools free
 
 apt-get update

Apparently the above gets blown out if you run the hildon application manager, so the repos need to be added via tap tap tap.

===Install Needed Packages===
 apt-get install x11vnc
 apt-get clean &amp;&amp; sync

Mas y mas y mas

 apt-get install vim bash htop ogg-support less file strace
 apt-get clean &amp;&amp; sync

Perhaps

 apt-get install python-dbus python-gobject sysklogd klogd
 apt-get clean &amp;&amp; sync

Mas y mas y mas y mas y mas. The really big list...

 mkdir /home/user/MyDocs/.apt-archive-cache/archives/
 mkdir -p /home/user/MyDocs/.apt-archive-cache/archives/partial
 apt-get -o dir::cache=/home/user/MyDocs/.apt-archive-cache    etc...


 account-plugin-idle
 adblock-plus
 anki
 ankimaemi
 ankiqt
 attitude
 canola2
 canola2-lastfm-plugin
 canola2-tuning-plugin
 canola2-youtube-plugin
 canola-thumbnailer
 conboy
 decoders-support
 easy-deb-chroot
 emerillon
 espeak
 fmradio
 gcompris
 gcompris-sound-en
 gcompris-sound-es
 gonvert
 google-album-art-downloader
 gpxview
 horizon
 kmplayer
 leafpad
 maemo-mancala
 maemo-mapper
 maemo-recorder
 maemo-recorder
 mancala
 mbarcode
 midori
 miniature
 mirror
 mplayer
 mtracker
 mytube
 pastebinit
 pidgin
 qik
 raeddit
 rapier
 recorder
 rsync
 sib
 supertux
 tuxpaint
 vncviewer
 xchat
 xournal
 zbar
 zoutube

==Configuration==
Here's some configuration settings that got lost on reflash. I'm not sure where they are stored, so they need to be re-setup via tap tap tap.  Note: if you do a backup on the device you may be able to then run restore which refreshes this, making the below unnecessary; untested.

The below are mostly stored in gconf under /system/osso/dsm/display, I believe these should be restored as per the back-up/restore application. - codeMonkey

===Display===
* Settings--&gt;Display--&gt;Backlight time-out: 2 minutes
* Settings--&gt;Display--&gt;Lock screen automatically: uncheck
* Settings--&gt;Display--&gt;Display stays lit when charging: check

===Text input===
* Settings--&gt;Text input--&gt;Word completion: uncheck
* Settings--&gt;Text input--&gt;Auto-capitalization: uncheck
* Settings--&gt;Text input--&gt;Insert space after word: uncheck
* Settings--&gt;Text input--&gt;2nd language: Español (América Latina)
* Settings--&gt;Text input--&gt;Use dual dictionaries: check


===Time Zone===
* Settings--&gt;Date and time--&gt;Time Zone: Buenos Aires (this is unfortunately wrong due to incompetence of Argentine government)
* Settings--&gt;Date and time--&gt;Update automatically: leave unchecked for now. When timezone data gets fixed, check it.

===Connectivity===
* Settings--&gt;Connectivity--&gt;Internet connections--&gt;Search interval: 5 minutes

===General===
* Settings--&gt;General--&gt;Device lock--&gt;Change lock code (default is 12345)

===Email Accounts===
* Region: Argentina
* Service Provider: Gmail -- I broke down and got a gmail acct :(
* Account title: Gmail
* Name: Jeff Moe
* User name: jebbasan
* Password: foo

==Misc==
 echo &quot;:syntax on&quot; &gt; ~/.vimrc

* Uh, where should this be put, if no bash? In ~/.profile for busybox.
 export TERM=xterm-color

* To remove the overcute hands shaking at bootup (and therefore boot faster), edit /etc/hildon-welcome.d/default.conf thusly:
 [hildon-welcome]
 #filename=Hands-v32-h264.avi
You could also put in a different movie (playable by gstreamer), but a still image will not work.</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Tweaks</title>
    <id>3280</id>
    <revision>
      <id>26960</id>
      <timestamp>2010-01-19T22:38:14Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>desktop backgrounds</comment>
      <text xml:space="preserve">=Main Application Set=
(Someone give me a better word for this--I'm mangling the description).

When you hit the button in the upper left corner twice you get a bunch of icons to launch applications. Odds are that this is not the exact set you wanted. Mine currently looks like this:

[[Image:Screenshot-jebba-custom-iconset.png|left|thumb|alt=Custom application set|Custom application set]]


The default set is like this:

[[Image:Default-application-icon-set.png|right|thumb|alt=Default application set|Default application set]]


To customize your icon set, edit this file:
 /etc/xdg/menus/hildon.menu

Then add the .desktop files for the applications you want, and remove (or comment out with &lt;nowiki&gt;&lt;!-- foo --&gt;&lt;/nowiki&gt;) applications you don't want. See this directory to find out the name of your .desktop file: /usr/share/applications/hildon

Here is my hildon.menu file, as an example:

 &lt;nowiki&gt;&lt;!DOCTYPE Menu PUBLIC &quot;-//freedesktop//DTD Menu 1.0//EN&quot;
  &quot;http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd&quot;&gt;
 
 &lt;Menu&gt;
 
   &lt;Name&gt;Main&lt;/Name&gt;
 
   &lt;!-- Search the default locations --&gt;
   &lt;AppDir&gt;/usr/share/applications/hildon&lt;/AppDir&gt;
   &lt;DirectoryDir&gt;/usr/share/applications/hildon&lt;/DirectoryDir&gt;
 
   &lt;Include&gt;
     &lt;Filename&gt;osso-xterm.desktop&lt;/Filename&gt;
     &lt;Filename&gt;browser.desktop&lt;/Filename&gt;
     &lt;Filename&gt;mediaplayer.desktop&lt;/Filename&gt;
     &lt;Filename&gt;calendar.desktop&lt;/Filename&gt;
     &lt;Filename&gt;image-viewer.desktop&lt;/Filename&gt;
     &lt;Filename&gt;osso-addressbook.desktop&lt;/Filename&gt;
 &lt;!--    &lt;Filename&gt;rtcom-call-ui.desktop&lt;/Filename&gt; --&gt;
 &lt;!--    &lt;Filename&gt;nokia-maps.desktop&lt;/Filename&gt; --&gt;
 &lt;!--    &lt;Filename&gt;camera-ui.desktop&lt;/Filename&gt; --&gt;
     &lt;Filename&gt;modest.desktop&lt;/Filename&gt;
     &lt;Filename&gt;rtcom-messaging-ui.desktop&lt;/Filename&gt;
 &lt;!--    &lt;Filename&gt;worldclock.desktop&lt;/Filename&gt; --&gt;
 &lt;!--    &lt;Filename&gt;osso_calculator.desktop&lt;/Filename&gt; --&gt;
 &lt;!--    &lt;Filename&gt;ovi.desktop&lt;/Filename&gt; --&gt;
     &lt;Filename&gt;maep.desktop&lt;/Filename&gt;
     &lt;Filename&gt;midori.desktop&lt;/Filename&gt;
     &lt;Filename&gt;xchat.desktop&lt;/Filename&gt;
     &lt;Filename&gt;burgerspace.desktop&lt;/Filename&gt;
     &lt;Filename&gt;maemo_recorder.desktop&lt;/Filename&gt;
     &lt;Filename&gt;hildon-control-panel.desktop&lt;/Filename&gt;
   &lt;/Include&gt;
 
   &lt;Menu&gt;
     &lt;Name&gt;Applications&lt;/Name&gt;
     &lt;Directory&gt;applications.directory&lt;/Directory&gt;
     &lt;OnlyUnallocated/&gt;
     &lt;Include&gt;
       &lt;All/&gt;
     &lt;/Include&gt;
   &lt;/Menu&gt;
 &lt;/Menu&gt;&lt;/nowiki&gt;

=desktop backgrounds=
1 = desktop number
 gconftool -s --type string /apps/osso/hildon-desktop/views/1/bg-image $PATHTOIMAGE</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/VNC</title>
    <id>3257</id>
    <revision>
      <id>25232</id>
      <timestamp>2009-12-28T22:39:18Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>new vncpage</comment>
      <text xml:space="preserve">=VNC=
[http://en.wikipedia.org/wiki/Virtual_Network_Computing VNC] allows you to view the screen of the N900 on your laptop so you can do things more easily that having to use the tiny little thing if you are working on it all day.

* Set up the [[Extras-testing]] repository
* Install x11vnc (I ''think'' it's in -testing).
* Set up a password for VNC on on the N900:
 x11vnc -storepasswd
* Run this script on your laptop (my hostname is burger and my laptop's IP is 10.0.0.3):

 ssh -n user@burger \
        &quot;x11vnc \
        -usepw \
        -display :0 \
        -desktop burger \
        -allow 10.0.0.3 \
        -nolookup \
        -q \
        -bg \
        -o /home/user/vnc-log \
        &quot;
* This works fine with tigervnc on Fedora 12.

* Running x11vnc with &quot;-ssl&quot; does not work--I think the problem there may be with tigervnc as x11vnc starts with it OK.

* I usually do VNC in an ssh tunnel--I don't know if this would create too much of a load on the N900 or not. Will test.

* VNC behaves differently whether the keyboard is slid out or not. Basically, you want the keyboard out.</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/Video</title>
    <id>3252</id>
    <revision>
      <id>25221</id>
      <timestamp>2009-12-28T22:33:13Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>New video page</comment>
      <text xml:space="preserve">=Video=
==Encoding Video==
I had some video which played way too slow on the N900, so I re-encoded with this pile of cruft:

 #!/bin/sh
 
 mencoder $1 -oac mp3lame -ovc lavc \
        -lavcopts vcodec=mpeg4:mbd=1:vbitrate=300 -vf scale=352:208 \
        -ffourcc DIVX -o $1-out.avi
Run thusly:

 burger-encode ralf.mov

And it will give you &quot;ralf-out.mov.avi&quot;...Uh, I will have the output file get a reasonable name, of course... Works for now. This does ''not'' work on the N900 at the moment because the mencoder in the mplayer package is compiled without mp3lame support. Bah.

See also (where I got above from): [[Manual_video_encoding]].

Ok, here's a far better script than the above that I took and slightly modified to work with gpac instead of mp4creator.

 #!/bin/bash
 # n900-encode
 # Encode videos for N900...
 #
 # On Fedora 12 (rpmfusion.org) needs packages:
 # gpac, mplayer, mencoder, x264, faac
 # Run thusly:
 # n900-encode [in video] [out video] [options]
 # Example:
 # n900-encode cabezon.mp4 cabezon.avi
 #
 # Largely taken from:
 # http://www.seiichiro0185.org/doku.php/n800:mp4encoding
 
 _INFILE=&quot;$1&quot;
 _OUTFILE=&quot;$2&quot;
 _MPOPTS=&quot;$3&quot;
 
 identifySource()
 {
   mplayer -identify -ao null -vo null -endpos 2 ${_MPOPTS} &quot;${_INFILE}&quot; | grep ID_ &gt; /tmp/n800-encode.$$.ident
  FPS=$(cat /tmp/n800-encode.$$.ident | grep ID_VIDEO_FPS | uniq | cut -d '=' -f 2)
   ASPECT=$(cat /tmp/n800-encode.$$.ident | grep ID_VIDEO_ASPECT | tail -n 1 | cut -d '=' -f 2 | cut -d ' ' -f 2)
 
   WS=`expr $ASPECT \&gt; 1.6 \&amp; $ASPECT \&lt; 1.9`
   
   if [[ `expr $ASPECT \&gt; 2.0` -eq 1 ]]
   then
     WS=2
   fi
   case ${WS} in
     0) SCALE=&quot;320:240&quot;
       echo &quot;encoding for standard&quot;
       ;;
     1) SCALE=&quot;400:224&quot;
       echo &quot;encoding for widescreen&quot;
       ;;
     2) SCALE=&quot;400:192&quot;
       echo &quot;encoding for extra-widescreen&quot;
       ;;
   esac
 }
 
 encode()
 {
   x264 -o &quot;$PWD/n800-encode.$$/video.264&quot; &quot;$PWD/n800-encode.$$/video.y4m&quot; --threads 3 --no-cabac --bitrate 250 -A i4x4,p4x4,p8x8,b8x8 --level 1.2 &gt;/dev/null 2&gt;/dev/null &amp;
   faac -b 96 --mpeg-vers 4 -o &quot;$PWD/n800-encode.$$/audio.aac&quot; &quot;$PWD/n800-encode.$$/audio.wav&quot; 2&gt;/dev/null &gt;/dev/null&amp;
   sleep 1
   mplayer -vf scale=${SCALE},unsharp=c4x4:0.3:l5x5:0.5 -ao pcm:file=&quot;$PWD/n800-encode.$$/audio.wav&quot; -vo yuv4mpeg:file=&quot;$PWD/n800-encode.$$/video.y4m&quot; -ass -embeddedfonts -noframedrop ${_MPOPTS} &quot;${_INFILE}&quot;
   rm -f &quot;${_OUTFILE}&quot;
 
   MP4Box -new -add &quot;$PWD/n800-encode.$$/video.264&quot; -add &quot;$PWD/n800-encode.$$/audio.aac&quot; -fps ${FPS} &quot;${_OUTFILE}&quot;
 }
 
 prepareTemp()
 {
   mkdir -p &quot;$PWD/n800-encode.$$&quot;
   mkfifo &quot;$PWD/n800-encode.$$/video.y4m&quot;
   mkfifo &quot;$PWD/n800-encode.$$/audio.wav&quot;
 }
 
 cleanupTemp()
 {
   rm -Rf &quot;$PWD/n800-encode.$$&quot;
   rm -f /tmp/n800-encode.$$.ident
 }
 
 trap cleanupTemp SIGINT SIGTERM
 
 identifySource
 prepareTemp
 encode
 cleanupTemp

==mplayer==
Play video from main &quot;good&quot; back camera:
 mplayer tv:// -tv device=/dev/video0

Play video from front camera (next to screen):
 mplayer tv:// -tv device=/dev/video1

Note, the front camera looks absolutely terrible like there is far too much gain or something and has a huge band across the right side. I'm hoping this is just a kernel driver issue and it will contain less suck in the future.

More extensive scriptlet:
 mplayer \
         -fs \
         -v \
         -nosound \
         -ao null \
         -nojoystick \
         -nolirc \
         -ontop \
         -framedrop \
         -stop-xscreensaver \
         -nocache \
         -noslices \
         -vo xv \
         -tv device=/dev/video0 \
         tv://

The -tv option can take many more options, like:

 -tv brightness=50:contrast=50:hue=0:saturation=-0:gain=0:device=/dev/video0

If your camera settings get weird (e.g. like everybody looks like a green monster), just quit mplayer, close the camera and re-open it. The default/stock program will reset it.

===See also===
[http://talk.maemo.org/showthread.php?t=26288 use cam as desktop webcam with gstreamer]</text>
    </revision>
  </page>
  <page>
    <title>User:Jebba/VoIP</title>
    <id>3248</id>
    <revision>
      <id>25211</id>
      <timestamp>2009-12-28T22:28:42Z</timestamp>
      <contributor>
        <username>jebba</username>
        <id>1536</id>
      </contributor>
      <comment>New VoIP page</comment>
      <text xml:space="preserve">=VoIP=
==SIP Configuration==
Right now, I can make calls out ok, but the other end can't hear me... It's almost certainly due to NAT and how SIP works. Here's my configuration with [http://www.ekiga.net/ Ekiga]:

[[Image:Sip-conf-1.png|thumb|alt=SIP Configuration 1|SIP Configuration 1]]

[[Image:Sip-conf-2.png|thumb|alt=SIP Configuration 2|SIP Configuration 2]]

[[Image:Sip-conf-3.png|thumb|alt=SIP Configuration 3|SIP Configuration 3]]

[[Image:Sip-conf-4.png|thumb|alt=SIP Configuration 4|SIP Configuration 4]]</text>
    </revision>
  </page>
  <page>
    <title>User:Jeremiah</title>
    <id>1562</id>
    <revision>
      <id>43690</id>
      <timestamp>2011-05-31T09:18:33Z</timestamp>
      <contributor>
        <username>jeremiah</username>
        <id>585</id>
      </contributor>
      <text xml:space="preserve">[[Image:Jeremiah.jpg|frame|right|alt=Portrait of Jeremiah Foster|Jeremiah]]

'''OHAI!'''

This is the Maemo wiki page for Jeremiah C. Foster. I served maemo.org in the position of '[[debmaster]]' until the end of June 2010. As you may know, Maemo became MeeGo and along with that change in names comes a change in packaging format to rpm. Since rpm based systems don't use deb packages, a &quot;debmaster&quot; is not really needed, at least not for the modern version of MeeGo.

'''Packaging Policy and related'''

[[Documentation/Maemo_5_Developer_Guide/Packaging%2C_Deploying_and_Distributing|Maemo 5 developer guide: Packaging]]&lt;br&gt;
[https://maemo.org/forrest-images/pdf/maemo-policy.pdf Policy Manual (PDF)]&lt;br&gt;
[[Packaging_a_Qt_application|Package a Qt app]]&lt;br&gt;
[[Task:Packaging_Policy_proposed_changes|Packaging Policy proposals]]&lt;br&gt;

[http://www.slideshare.net/miahfost/packaging-for-the-maemo-platform My Maemo Summit 2009 talk]

'''QA'''

[[Maemian]]&lt;br&gt;
[[Extras-testing#Maemian.2FMinimae_checks_after_builds Minimae build checks.]]&lt;br&gt;
[[Uploading to Extras-devel]]&lt;br&gt;
[[Extras repository process definition]]&lt;br /&gt;
[[Diablo Community Project]]

''' Repositories'''


[[reprepro|reprepro documentation for maemo.org]]&lt;br&gt;
[[Mirrors]]

''' Developer links '''

[http://qt4.garage.maemo.org/ Qt on maemo]&lt;br&gt;
[[Perl|Perl on maemo]]&lt;br&gt;
[[Documentation/Maemo_5_Developer_Guide/Architecture/Top_Level_Architecture|Free / Non-free]]

'''Administrivia'''

[http://www.qaiku.com/channels/show/maemork/ Maemork]&lt;br&gt;
[[Maemo.org_Sprints/November_09|November sprint]]&lt;br&gt;
[http://mg.pov.lt/maemo-irclog/latest.log.html Latest #maemo.org log]</text>
    </revision>
  </page>
  <page>
    <title>User:Jhsmith40</title>
    <id>3919</id>
    <revision>
      <id>32651</id>
      <timestamp>2010-04-14T08:13:07Z</timestamp>
      <contributor>
        <username>jhsmith40</username>
        <id>2526</id>
      </contributor>
      <comment>New page: [http://google.com/ google]</comment>
      <text xml:space="preserve">[http://google.com/ google]</text>
    </revision>
  </page>
  <page>
    <title>User:Joebl86</title>
    <id>1896</id>
    <revision>
      <id>13524</id>
      <timestamp>2009-05-21T13:22:45Z</timestamp>
      <contributor>
        <username>joebl86</username>
        <id>919</id>
      </contributor>
      <comment>New page: website [http://jlbproductions.gotdns.com JLBProductions]</comment>
      <text xml:space="preserve">website [http://jlbproductions.gotdns.com JLBProductions]</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw</title>
    <id>4423</id>
    <revision>
      <id>48462</id>
      <timestamp>2012-06-15T23:16:22Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">[[User:Joerg_rw/tools]]

[[User:Joerg_rw/jrbme/]]

[[User:Joerg_rw/xchat/]]

[[User:Joerg_rw/dbus]]

[[User:Joerg_rw/usb-networking]] transcript of a simple usb-networking setup

[[User:Joerg_rw/N950]] unsorted dump of remarks on N950 and harmattan</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/</title>
    <id>4424</id>
    <revision>
      <id>38233</id>
      <timestamp>2010-08-31T07:14:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[User:Joerg rw/]] moved to [[User:Joerg rw]]: drop trailing slash</comment>
      <text xml:space="preserve">#REDIRECT [[User:Joerg rw]]</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/N950</title>
    <id>4922</id>
    <revision>
      <id>44399</id>
      <timestamp>2011-07-08T16:45:30Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve"> *#0000# == V1.2011.22-6_PR_RM680  (as shipped with device, but received one small (xx kb) OTA &quot;update&quot;)

* character &quot;9&quot; missing on lockscreen time display
* map and drive app doesn't work due to Nokia account &quot;Service unavailable&quot;
* indicator breathing light doesn't work frequently, so device *looks* like off

* indicator light quite surely is a monocolor white LED</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/dbus</title>
    <id>4774</id>
    <revision>
      <id>42360</id>
      <timestamp>2011-03-07T02:34:21Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">&lt;pre&gt;
MDBUS2&gt; com.nokia.
com.nokia.alarmd                                              
com.nokia.albumart                                            
com.nokia.asmodest                                            
com.nokia.assingleton                                         
com.nokia.as-status-applet                                    
com.nokia.asstatusapplet                                      
com.nokia.calendar                                            
com.nokia.CallUI                                              
com.nokia.cameraui                                            
com.nokia.clock_status_area_plugin                            
com.nokia.clock.status_plugin                                 
com.nokia.connui_bluetooh_status_menu_item                    
com.nokia.connui_cellular_operator_home_item                  
com.nokia.connui_cellular_status_item                         
com.nokia.connui_internet_status_menu_item                    
com.nokia.flashlight-applet                                   
com.nokia.google-search-widget                                
com.nokia.ham_updates_status_menu_item                        
com.nokia.HildonDesktop.AppMgr      
com.nokia.HildonDesktop.Home
com.nokia.HildonHome
com.nokia.hildon_input_method
com.nokia.hildon_sb_sync
com.nokia.HildonSVNotificationDaemon
com.nokia.hildon_update_notifier
com.nokia.image_viewer
com.nokia.ke_recv
com.nokia.load_applet_status_area_item
com.nokia.location-sb
com.nokia.maesync_controller
com.nokia.mafw-gst-renderer
com.nokia.mafw.playlist
com.nokia.mafw.renderer.Mafw-Gst-Renderer-Plugin.gstrenderer
com.nokia.mafw.source.MAFW-Grilo-Source.grl_filesystem
com.nokia.mafw.source.MAFW-Grilo-Source.grl_jamendo
com.nokia.mafw.source.MAFW-Grilo-Source.grl_shoutcast
com.nokia.mafw.source.MAFW-Grilo-Source.grl_youtube
com.nokia.mafw.source.MAFW-IRadio-Source.iradiosource
com.nokia.mafw.source.Mafw-Tracker-Source-Plugin.localtagfs
com.nokia.mafw.source.MAFW-UPnP-Source.upnpcontrolsource
com.nokia.mediaplayerhomeapplet
com.nokia.MessagingUI
com.nokia.microb-engine
com.nokia.modest
com.nokia.osso_abook_home_applet
com.nokia.osso_addressbook
com.nokia.osso_browser
com.nokia.osso_connectivity_ui_conndlgs
com.nokia.osso-mission-control
com.nokia.ovi-promotion-widget
com.nokia.policy.telephony
com.nokia.PresenceUI
com.nokia.profiled
com.nokia.Qtm.Modest.Plugin
com.nokia.rtcom-notification-ui
com.nokia.sharing.manager.status
com.nokia.simple-brightness-applet
com.nokia.statusbar_bluetooth_transfer
com.nokia.statusmenu-fmtx
com.nokia.syncd
com.nokia.xchat
MDBUS2&gt; org.
org.freedesktop.DBus
org.freedesktop.Notifications
org.freedesktop.Telepathy.AccountManager
org.freedesktop.Telepathy.ChannelDispatcher
org.freedesktop.Telepathy.Client.CallUI
org.freedesktop.Telepathy.Client.MessagingUI
org.freedesktop.Telepathy.Client.NotificationUI
org.freedesktop.Telepathy.Connection.ring.tel.ring
org.freedesktop.Telepathy.Connection.sofiasip.sip._32991895_40sipgate_2ede
org.freedesktop.Telepathy.ConnectionManager.ring
org.freedesktop.Telepathy.ConnectionManager.sofiasip
org.freedesktop.Telepathy.MissionControl5
org.freedesktop.Tracker
org.freedesktop.Tracker.Indexer
org.freedesktop.ohm_session_agent
org.freedesktop.thumbnailer
org.gnome.GnomeVFS.Daemon
org.gnome.evolution.dataserver.AddressBook
org.gtk.Private.HalVolumeMonitor
org.gtk.vfs.Daemon
org.maemo.Playback
org.maemo.Playback.Manager
org.maemo.XInputSounds
org.maemo.flashlight_applet
org.openobex
org.xchat.service
MDBUS2&gt;
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/hostmode/summary</title>
    <id>4486</id>
    <revision>
      <id>41587</id>
      <timestamp>2011-02-02T23:31:17Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">&lt;pre&gt;
N900 (rx51) hostmode notes

There were several (semi-) successful encounters of using the
hostmode, some via tricking the OTG statemachine, some via
implementing the FORCE_HOST testmode properly, we'll concentrate on
the latter

* Hardware
The detailed overview is at http://wiki.maemo.org/N900_Hardware_USB

** There're leaked schematics

** There're datasheets for SoC (spurf98d is the best version) and
ISP1707/1074

** Comparision with N8x0
*** Same USB core
*** N8x0 uses a discrete component TUSB6010 that integrates musb core and phy
while N900 uses SoC-integrated musb with ISP1707 PHY via ULPI link
*** ID pin of the USB core on N8x0 can be forcibly grounded
programmatically, thus activating the host mode in the core, not
possible with ISP1707
*** ID pin is connected to the micro-usb receptable on N8x0, but some
stupid decided to not route it to ISP1707 on N900 (he routed it to
TWL4030 instead)

** The battery charger chip is controlled via i2c and can
supply 5V/200mA on usb vbus when asked to.
** twl4030 has connection to the ID pin and can sense it
OTG-like operation (at least automatic switching to/from hostmode)
possible?


* Software
** Driver
*** Shitty
*** There's a considerably improved version at linux-omap
(nobody's tried to use it on N900 so far)
*** Needs implementation of forced hostmode via one of the testmodes
See the patchsets in the repository, there're no incremental patches
accompanied by the meaningful logs (yet); when it starts working,
implement it in a separate file as a &quot;platform&quot; function for ``echo
host &gt;/sys/devices/platform/musb_hdrc/mode'' to start working.
*** Needs (why?) disabling of some current limiting features
diff --git a/drivers/usb/core/generic.c b/drivers/usb/core/generic.c
index 7e912f2..b51e5ea 100644
--- a/drivers/usb/core/generic.c
+++ b/drivers/usb/core/generic.c
@@ -97,10 +97,10 @@ int usb_choose_configuration(struct usb_device *udev)
                 */
 
                /* Rule out configs that draw too much bus current */
-               if (c-&gt;desc.bMaxPower * 2 &gt; udev-&gt;bus_mA) {
+               /*if (c-&gt;desc.bMaxPower * 2 &gt; udev-&gt;bus_mA) {
                        insufficient_power++;
                        continue;
-               }
+               }*/
 
                /* When the first config's first interface is one of Microsoft's
                 * pet nonstandard Ethernet-over-USB protocols, ignore it unless
@@ -132,10 +132,10 @@ int usb_choose_configuration(struct usb_device *udev)
                        best = c;
        }
 
-       if (insufficient_power &gt; 0)
+       /*if (insufficient_power &gt; 0)
                dev_info(&amp;udev-&gt;dev, &quot;rejected %d configuration%s &quot;
                        &quot;due to insufficient available bus power\n&quot;,
-                       insufficient_power, plural(insufficient_power));
+                       insufficient_power, plural(insufficient_power));*/
 
        if (best) {
                i = best-&gt;desc.bConfigurationValue;

*** Needs (why?) disabling of some suspend features
diff --git a/drivers/usb/otg/twl4030-usb.c b/drivers/usb/otg/twl4030-usb.c
index ecffb2a..1577e7a 100644
--- a/drivers/usb/otg/twl4030-usb.c
+++ b/drivers/usb/otg/twl4030-usb.c
@@ -480,7 +480,7 @@ extern void musb_restore_ctx_and_resume(struct usb_gadget *gadget);
 
 static void twl4030_phy_suspend(struct twl4030_usb *twl, int controller_off)
 {
-       if (twl-&gt;asleep)
+       if (!twl-&gt;asleep)
                return;
 
        twl4030_phy_power(twl, 0);

*** Needs (why?) manual step-through to get device recognised, enumerated, etc
pcsuite-enable.sh
echo H &gt;/proc/driver/musb_hdrc
echo host &gt;/sys/devices/platform/musb_hdrc/mode
echo e &gt; /proc/driver/musb_hdrc
echo F &gt; /proc/driver/musb_hdrc
echo host &gt;/sys/devices/platform/musb_hdrc/mode
echo H &gt;/proc/driver/musb_hdrc
echo I &gt; /proc/driver/musb_hdrc
echo host &gt;/sys/devices/platform/musb_hdrc/mode
echo H &gt;/proc/driver/musb_hdrc
echo &quot;Done echo'ing&quot;
#echo &quot;Connect the flash drive in 3 seconds!&quot;
stop bme; sleep 3; i2cset -y -m 0x07 2 0x6b 0x01 0x05; while true; do sleep 28; i2cset -y -m 0x80 2 0x6b 0x00 0x80; done

*** How can it switch out of &quot;waiting Vbus to rise&quot; state?
*** No way to distinguish between full-speed and high-speed modes
by just looking at the D+, D- states (via debug register of isp1704),
needs special care

** BME
*** Messes with charging so should be disabled
stop bme
*** Incapable of providing VBUS to external device
One can use ``i2cset -y -m 0x07 2 0x6b 0x01 0x05'' instead to enable
the reverse boost converter and ``i2cset -y -m 0x80 2 0x6b 0x00 0x80''
to disable

** twl4030-usb.c
*** Gets in the way by switching states behind your back
Switches state to b_idle if the ID pin is not grounded), so should be
(at least partially) disabled.
*** Is registered as an OTG controller
Should we provide a minimal OTG driver for isp1407 instead? Or should
we rather get the whole stuff somehow working and then try to port the
upstream driver (it's supposed to be saner)?

** musb
*** SESSREQ (Session request) interrupt preconditions?
*** CONNECT interrupt preconditions?
&lt;pre&gt;
N900 (rx51) hostmode notes

There were several (semi-) successful encounters of using the
hostmode, some via tricking the OTG statemachine, some via
implementing the FORCE_HOST testmode properly, we'll concentrate on
the latter

* Hardware
The detailed overview is at http://wiki.maemo.org/N900_Hardware_USB

** There're leaked schematics

** There're datasheets for SoC (spurf98d is the best version) and
ISP1707/1074

** Comparision with N8x0
*** Same USB core
*** N8x0 uses a discrete component TUSB6010 that integrates musb core and phy
while N900 uses SoC-integrated musb with ISP1707 PHY via ULPI link
*** ID pin of the USB core on N8x0 can be forcibly grounded
programmatically, thus activating the host mode in the core, not
possible with ISP1707
*** ID pin is connected to the micro-usb receptable on N8x0, but some
stupid decided to not route it to ISP1707 on N900 (he routed it to
TWL4030 instead)

** The battery charger chip is controlled via i2c and can
supply 5V/200mA on usb vbus when asked to.
** twl4030 has connection to the ID pin and can sense it
OTG-like operation (at least automatic switching to/from hostmode)
possible?


* Software
** Driver
*** Shitty
*** There's a considerably improved version at linux-omap
(nobody's tried to use it on N900 so far)
*** Needs implementation of forced hostmode via one of the testmodes
See the patchsets in the repository, there're no incremental patches
accompanied by the meaningful logs (yet); when it starts working,
implement it in a separate file as a &quot;platform&quot; function for ``echo
host &gt;/sys/devices/platform/musb_hdrc/mode'' to start working.
*** Needs (why?) disabling of some current limiting features
diff --git a/drivers/usb/core/generic.c b/drivers/usb/core/generic.c
index 7e912f2..b51e5ea 100644
--- a/drivers/usb/core/generic.c
+++ b/drivers/usb/core/generic.c
@@ -97,10 +97,10 @@ int usb_choose_configuration(struct usb_device *udev)
                 */
 
                /* Rule out configs that draw too much bus current */
-               if (c-&gt;desc.bMaxPower * 2 &gt; udev-&gt;bus_mA) {
+               /*if (c-&gt;desc.bMaxPower * 2 &gt; udev-&gt;bus_mA) {
                        insufficient_power++;
                        continue;
-               }
+               }*/
 
                /* When the first config's first interface is one of Microsoft's
                 * pet nonstandard Ethernet-over-USB protocols, ignore it unless
@@ -132,10 +132,10 @@ int usb_choose_configuration(struct usb_device *udev)
                        best = c;
        }
 
-       if (insufficient_power &gt; 0)
+       /*if (insufficient_power &gt; 0)
                dev_info(&amp;udev-&gt;dev, &quot;rejected %d configuration%s &quot;
                        &quot;due to insufficient available bus power\n&quot;,
-                       insufficient_power, plural(insufficient_power));
+                       insufficient_power, plural(insufficient_power));*/
 
        if (best) {
                i = best-&gt;desc.bConfigurationValue;

*** Needs (why?) disabling of some suspend features
diff --git a/drivers/usb/otg/twl4030-usb.c b/drivers/usb/otg/twl4030-usb.c
index ecffb2a..1577e7a 100644
--- a/drivers/usb/otg/twl4030-usb.c
+++ b/drivers/usb/otg/twl4030-usb.c
@@ -480,7 +480,7 @@ extern void musb_restore_ctx_and_resume(struct usb_gadget *gadget);
 
 static void twl4030_phy_suspend(struct twl4030_usb *twl, int controller_off)
 {
-       if (twl-&gt;asleep)
+       if (!twl-&gt;asleep)
                return;
 
        twl4030_phy_power(twl, 0);

*** Needs (why?) manual step-through to get device recognised, enumerated, etc
pcsuite-enable.sh
echo H &gt;/proc/driver/musb_hdrc
echo host &gt;/sys/devices/platform/musb_hdrc/mode
echo e &gt; /proc/driver/musb_hdrc
echo F &gt; /proc/driver/musb_hdrc
echo host &gt;/sys/devices/platform/musb_hdrc/mode
echo H &gt;/proc/driver/musb_hdrc
echo I &gt; /proc/driver/musb_hdrc
echo host &gt;/sys/devices/platform/musb_hdrc/mode
echo H &gt;/proc/driver/musb_hdrc
echo &quot;Done echo'ing&quot;
#echo &quot;Connect the flash drive in 3 seconds!&quot;
stop bme; sleep 3; i2cset -y -m 0x07 2 0x6b 0x01 0x05; while true; do sleep 28; i2cset -y -m 0x80 2 0x6b 0x00 0x80; done

*** How can it switch out of &quot;waiting Vbus to rise&quot; state?
*** No way to distinguish between full-speed and high-speed modes
by just looking at the D+, D- states (via debug register of isp1704),
needs special care

** BME
*** Messes with charging so should be disabled
stop bme
*** Incapable of providing VBUS to external device
One can use ``i2cset -y -m 0x07 2 0x6b 0x01 0x05'' instead to enable
the reverse boost converter and ``i2cset -y -m 0x80 2 0x6b 0x00 0x80''
to disable

** twl4030-usb.c
*** Gets in the way by switching states behind your back
Switches state to b_idle if the ID pin is not grounded), so should be
(at least partially) disabled.
*** Is registered as an OTG controller
Should we provide a minimal OTG driver for isp1407 instead? Or should
we rather get the whole stuff somehow working and then try to port the
upstream driver (it's supposed to be saner)?

** musb
*** SESSREQ (Session request) interrupt preconditions?
*** CONNECT interrupt preconditions?

&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/jrbme/</title>
    <id>4685</id>
    <revision>
      <id>48939</id>
      <timestamp>2012-08-06T17:02:18Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">[[User:Joerg_rw/jrbme/bme_microcycle_log]]

[[User:Joerg_rw/jrbme/bme_chargefloat_log]]

[[User:Joerg_rw/jrbme/bme_chargefloat2_log]] another example with slightly more info in it

[[User:Joerg_rw/jrbme/bme_discharge_learn_log]]

[[User:Joerg_rw/jrbme/bq27200]]</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/jrbme/bme chargefloat2 log</title>
    <id>5225</id>
    <revision>
      <id>48938</id>
      <timestamp>2012-08-06T17:00:59Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>New page: another example done by marginally augmented bq27200.sh 5, on a system on fastcharger, idle, screen locked:  &lt;pre&gt;       mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP 18:10 4180 100 ...</comment>
      <text xml:space="preserve">another example done by marginally augmented bq27200.sh 5, on a system on fastcharger, idle, screen locked:

&lt;pre&gt;
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:10 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:10 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:10 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:10 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:10 4180 100  100  -1   1167 1167 1167 65535 65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:10 4180 100  100  -4   1167 1167 1167 65535 35980 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:10 4180 100  100  1    1167 1167 1167 0     15420 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:10 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:10 4180 100  100  -4   1167 1167 1167 65535 65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:10 4180 100  100  0    1167 1167 1167 0     16606 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:10 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:11 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:11 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:11 4180 100  100  -8   1167 1167 1167 65535 65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:11 4180 100  100  -1   1167 1167 1167 65535 7850  32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:11 4180 100  100  1    1167 1167 1167 0     47973 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:11 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:11 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:11 4180 100  100  0    1167 1167 1167 65535 65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:11 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:11 4180 100  100  -3   1167 1167 1167 65535 65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:11 4180 100  100  1    1167 1167 1167 0     20560 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:11 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:12 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:12 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:12 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:12 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:12 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:12 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:12 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:12 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:12 4180 100  100  -4   1167 1167 1167 65535 65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:12 4180 100  100  1    1167 1167 1167 0     14888 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:12 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:12 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:13 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:13 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:13 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:13 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:13 4180 100  100  0    1167 1167 1167 65535 65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:13 4180 100  100  -7   1167 1167 1167 65535 65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:13 4180 100  100  1    1167 1167 1167 0     9813  32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:13 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:13 4175 100  100  -7   1167 1167 1167 65535 65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:13 4180 100  100  1    1167 1167 1167 0     9186  32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:13 4180 100  100  0    1167 1167 1167 65535 65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:14 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:14 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:14 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:14 4177 100  100  -1   1167 1167 1167 65535 65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:14 4180 100  100  1    1167 1167 1167 0     61680 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:14 4180 100  100  -1   1167 1167 1167 65535 65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:14 4180 100  100  0    1167 1167 1167 65535 53970 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:14 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:14 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:14 4180 100  100  -3   1167 1167 1167 65535 65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:14 4180 100  100  1    1167 1167 1167 0     18772 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:14 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:15 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:15 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:15 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:15 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:15 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:15 4180 100  100  -3   1167 1167 1167 65535 65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:15 4180 100  100  0    1167 1167 1167 65535 19625 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:15 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:15 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:15 4180 100  100  -1   1167 1167 1167 65535 65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:15 4180 100  100  1    1167 1167 1167 0     35980 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:15 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:16 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:16 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:16 4177 100  100  -5   1167 1167 1167 65535 65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:16 4180 100  100  -1   1167 1167 1167 65535 12336 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:16 4180 100  100  -6   1167 1167 1167 65535 47973 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:16 4180 100  100  2    1167 1167 1167 0     10531 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:16 4180 100  100  -3   1167 1167 1167 65535 65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:16 4180 100  100  0    1167 1167 1167 0     21588 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:16 4180 100  100  -4   1167 1167 1167 65535 65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:16 4177 100  100  -1   1167 1167 1167 65535 15991 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:16 4180 100  100  -1   1167 1167 1167 65535 35980 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:16 4180 100  100  0    1167 1167 1167 0     61680 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:17 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:17 4180 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:17 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:17 4180 100  100  -1   1167 1167 1167 65535 65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:17 4180 100  100  2    1167 1167 1167 0     61680 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:17 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:17 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:17 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:17 4175 100  100  -4   1167 1167 1167 65535 65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:17 4180 100  100  2    1167 1167 1167 0     15991 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:17 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:18 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:18 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:18 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:18 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:18 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:18 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:18 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:18 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:18 4180 100  100  -1   1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:18 4180 100  100  -3   1167 1167 1167 0     61680 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:18 4180 100  100  -3   1167 1167 1167 0     22724 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:18 4177 100  100  -1   1167 1167 1167 65535 28784 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:19 4180 100  100  -1   1167 1167 1167 0     47973 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:19 4180 100  100  -1   1167 1167 1167 0     43176 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:19 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:19 4180 100  100  -4   1167 1167 1167 0     16606 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:19 4180 100  100  2    1167 1167 1167 0     30840 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:19 4177 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:19 4180 100  100  -1   1167 1167 1167 0     61680 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:19 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:19 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:19 4180 100  100  -1   1167 1167 1167 0     61680 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:19 4180 100  100  -2   1167 1167 1167 0     28784 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:19 4180 100  100  -5   1167 1167 1167 0     13493 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:20 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:20 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:20 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:20 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:20 4175 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:20 4177 100  100  -3   1167 1167 1167 0     22724 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:20 4177 100  100  -1   1167 1167 1167 0     47973 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:20 4180 100  100  -2   1167 1167 1167 0     33212 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:20 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:20 4180 100  100  -3   1167 1167 1167 0     17990 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:20 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:20 4177 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:21 4180 100  100  -4   1167 1167 1167 0     14888 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:21 4180 100  100  -3   1167 1167 1167 0     21588 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:21 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:21 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:21 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:21 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:21 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:21 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:21 4175 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:21 4180 100  100  -3   1167 1167 1167 0     18772 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:21 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:22 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:22 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:22 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:22 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:22 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:22 4180 100  100  -1   1167 1167 1167 0     47973 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:22 4180 100  100  -3   1167 1167 1167 0     17990 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:22 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:22 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:22 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:22 4180 100  100  -2   1167 1167 1167 0     25398 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:22 4177 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:23 4180 100  100  -3   1167 1167 1167 0     22724 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:23 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:23 4180 100  100  -1   1167 1167 1167 0     43176 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:23 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:23 4177 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:23 4180 100  100  -1   1167 1167 1167 0     61680 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:23 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:23 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:23 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:23 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:23 4180 100  100  -4   1167 1167 1167 0     17270 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:23 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:24 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:24 4180 100  100  -6   1167 1167 1167 0     10041 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:24 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:24 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:24 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:24 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:24 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:24 4180 100  100  -3   1167 1167 1167 0     17990 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:24 4180 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:24 4180 100  100  -4   1167 1167 1167 0     15420 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:24 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:24 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:25 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:25 4180 100  100  -2   1167 1167 1167 0     28784 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:25 4180 100  100  -2   1167 1167 1167 0     25398 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:25 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:25 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:25 4180 100  100  -1   1167 1167 1167 0     43176 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:25 4180 100  100  -2   1167 1167 1167 0     26985 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:25 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:25 4175 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:25 4180 100  100  -3   1167 1167 1167 0     21588 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:25 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:26 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:26 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:26 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:26 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:26 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:26 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:26 4180 100  100  -1   1167 1167 1167 0     39251 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:26 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:26 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:26 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:26 4180 100  100  -4   1167 1167 1167 0     16606 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:26 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:27 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:27 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:27 4180 100  100  -2   1167 1167 1167 0     30840 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:27 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:27 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:27 4180 100  100  -1   1167 1167 1167 0     53970 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:27 4180 100  100  -3   1167 1167 1167 0     18772 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:27 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:27 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:27 4180 100  100  -3   1167 1167 1167 0     19625 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:27 4180 100  100  -1   1167 1167 1167 0     35980 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:27 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:28 4180 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:28 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:28 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:28 4177 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:28 4180 100  100  -2   1167 1167 1167 0     26985 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:28 4177 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:28 4177 100  100  -1   1167 1167 1167 0     47973 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:28 4180 100  100  -1   1167 1167 1167 0     61680 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:28 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:28 4180 100  100  -9   1167 1167 1167 0     7196  32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:28 4180 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:28 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:29 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:29 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:29 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:29 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:29 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:29 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:29 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:29 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:29 4175 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:29 4180 100  100  -3   1167 1167 1167 0     20560 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:29 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:30 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:30 4180 100  100  -1   1167 1167 1167 0     61680 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:30 4180 100  100  -12  1167 1167 1167 0     5465  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:30 4180 100  100  -1   1167 1167 1167 0     39251 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:30 4180 100  100  -1   1167 1167 1167 0     39251 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:30 4180 100  100  -5   1167 1167 1167 0     13493 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:30 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:30 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:30 4180 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:30 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:30 4180 100  100  -4   1167 1167 1167 0     14888 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:30 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:31 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:31 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:31 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:31 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:31 4177 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:31 4180 100  100  -4   1167 1167 1167 0     15991 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:31 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:31 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:31 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:31 4180 100  100  -3   1167 1167 1167 0     18772 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:31 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:31 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:32 4175 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:32 4180 100  100  -8   1167 1167 1167 0     7850  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:32 4180 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:32 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:32 4180 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:32 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:32 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:32 4180 100  100  -2   1167 1167 1167 0     33212 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:32 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:32 4180 100  100  -2   1167 1167 1167 0     30840 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:32 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:33 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:33 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:33 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:33 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:33 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:33 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:33 4180 100  100  -2   1167 1167 1167 0     26985 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:33 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:33 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:33 4175 100  100  -1   1167 1167 1167 65535 43176 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:33 4180 100  100  -6   1167 1167 1167 0     11362 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:33 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:34 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:34 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:34 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:34 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:34 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:34 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:34 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:34 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:34 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:34 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:34 4177 100  100  -4   1167 1167 1167 0     16606 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:34 4180 100  100  -4   1167 1167 1167 0     15420 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:35 4180 100  100  -1   1167 1167 1167 0     61680 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:35 4177 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:35 4180 100  100  -10  1167 1167 1167 65535 6746  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:35 4180 100  100  -1   1167 1167 1167 0     35980 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:35 4180 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:35 4180 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:35 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:35 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:35 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:35 4180 100  100  -4   1167 1167 1167 0     15420 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:35 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:35 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:36 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:36 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:36 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:36 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:36 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:36 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:36 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:36 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:36 4175 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:36 4180 100  100  -10  1167 1167 1167 0     6746  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:36 4180 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:37 4180 100  100  -3   1167 1167 1167 0     19625 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:37 4180 100  100  -1   1167 1167 1167 0     61680 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:37 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:37 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:37 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:37 4177 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:37 4180 100  100  -4   1167 1167 1167 0     17270 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:37 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:37 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:37 4175 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:37 4180 100  100  -3   1167 1167 1167 0     20560 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:37 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:38 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:38 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:38 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:38 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:38 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:38 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:38 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:38 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:38 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:38 4177 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:38 4180 100  100  -4   1167 1167 1167 0     15991 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:38 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:39 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:39 4180 100  100  -1   1167 1167 1167 0     53970 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:39 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:39 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:39 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:39 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:39 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:39 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:39 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:39 4177 100  100  -6   1167 1167 1167 0     10041 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:39 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:39 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:40 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:40 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:40 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:40 4177 100  100  -3   1167 1167 1167 0     20560 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:40 4177 100  100  -3   1167 1167 1167 0     22724 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:40 4180 100  100  -1   1167 1167 1167 0     39251 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:40 4180 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:40 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:40 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:40 4180 100  100  -1   1167 1167 1167 0     47973 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:40 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:41 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:41 4180 100  100  -1   1167 1167 1167 0     61680 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:41 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:41 4180 100  100  -4   1167 1167 1167 0     17270 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:41 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:41 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:41 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:41 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:41 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:41 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:41 4180 100  100  -3   1167 1167 1167 65535 19623 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:41 4180 100  100  1    1167 1167 1167 7     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:42 4177 100  100  -15  1167 1167 1167 65535 4497  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:42 4180 100  100  -3   1167 1167 1167 65535 20557 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:42 4172 100  100  -11  1167 1167 1167 65535 6257  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:42 4180 100  100  -15  1167 1167 1167 65535 4544  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:42 4180 100  100  2    1167 1167 1167 4     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:42 4180 100  100  0    1167 1167 1167 65535 65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:42 4180 100  100  1    1167 1167 1167 7     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:42 4180 100  100  2    1167 1167 1167 6     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:42 4180 100  100  1    1167 1167 1167 9     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:42 4177 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:42 4180 100  100  -2   1167 1167 1167 0     26985 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:42 4175 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:43 4180 100  100  -3   1167 1167 1167 0     20560 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:43 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:43 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:43 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:43 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:43 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:43 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:43 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:43 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:43 4175 100  100  -4   1167 1167 1167 65535 14392 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:43 4180 100  100  -16  1167 1167 1167 0     4275  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:43 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:44 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:44 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:44 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:44 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:44 4172 100  100  -12  1167 1167 1167 65535 5607  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:44 4180 100  100  -12  1167 1167 1167 0     5835  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:44 4180 100  100  -1   1167 1167 1167 65535 35980 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:44 4180 100  100  -21  1167 1167 1167 65535 3246  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:44 4175 100  100  -14  1167 1167 1167 65535 4745  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:44 4172 100  100  -30  1167 1167 1167 65535 2321  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:44 4180 100  100  -13  1167 1167 1167 65535 5330  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:45 4180 100  100  4    1167 1167 1167 3     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:45 4180 100  100  3    1167 1167 1167 3     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:45 4180 100  100  2    1167 1167 1167 6     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:45 4180 100  100  0    1167 1167 1167 30    65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:45 4180 100  100  2    1167 1167 1167 6     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:45 4169 100  100  0    1167 1167 1167 22    65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:45 4180 100  100  -7   1167 1167 1167 65535 9593  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:45 4180 100  100  2    1167 1167 1167 4     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:45 4180 100  100  3    1167 1167 1167 4     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:45 4180 100  100  2    1167 1167 1167 4     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:45 4180 100  100  -2   1167 1167 1167 65535 23983 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:45 4167 100  100  -12  1167 1167 1167 65535 5606  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:46 4167 100  100  -29  1167 1167 1167 65535 2385  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:46 4180 100  100  -16  1167 1167 1167 65535 4274  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:46 4180 100  100  4    1167 1167 1167 3     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:46 4180 100  100  3    1167 1167 1167 3     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:46 4180 100  100  3    1167 1167 1167 4     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:46 4180 100  100  3    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:46 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:46 4180 100  100  3    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:46 4180 100  100  3    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:46 4177 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:46 4180 100  100  -2   1167 1167 1167 0     25398 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:46 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:47 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:47 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:47 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:47 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:47 4180 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:47 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:47 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:47 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:47 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:47 4180 100  100  -2   1167 1167 1167 0     23987 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:47 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:47 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:48 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:48 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:48 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:48 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:48 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:48 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:48 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:48 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:48 4177 100  100  -1   1167 1167 1167 0     47973 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:48 4180 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:48 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:49 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:49 4180 100  100  -1   1167 1167 1167 0     43176 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:49 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:49 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:49 4180 100  100  0    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:49 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:49 4180 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:49 4180 100  100  -6   1167 1167 1167 0     11669 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:49 4180 100  100  -2   1167 1167 1167 0     23987 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:49 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:49 4180 100  100  -2   1167 1167 1167 0     23987 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:49 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:50 4177 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:50 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:50 4180 100  100  -1   1167 1167 1167 0     47973 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:50 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:50 4180 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:50 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:50 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:50 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:50 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:50 4175 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:50 4180 100  100  -3   1167 1167 1167 0     20560 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:50 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:51 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:51 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:51 4180 100  100  -5   1167 1167 1167 65535 11992 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:51 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:51 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:51 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:51 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:51 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:51 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:51 4180 100  100  -5   1167 1167 1167 0     13084 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:51 4177 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:51 4180 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:52 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:52 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:52 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:52 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:52 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:52 4177 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:52 4175 100  100  -5   1167 1167 1167 65535 11993 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:52 4177 100  100  -13  1167 1167 1167 65535 5330  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:52 4180 100  100  -6   1167 1167 1167 65535 11069 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:52 4177 100  100  0    1167 1167 1167 65535 65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:52 4177 100  100  -7   1167 1167 1167 65535 8810  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:53 4180 100  100  -13  1167 1167 1167 65535 5201  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:53 4175 100  100  0    1167 1167 1167 65535 65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:53 4180 100  100  -7   1167 1167 1167 65535 9811  33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:53 4180 100  100  2    1167 1167 1167 4     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:53 4180 100  100  2    1167 1167 1167 4     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:53 4180 100  100  2    1167 1167 1167 4     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:53 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:53 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:53 4180 100  100  -2   1167 1167 1167 0     25398 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:53 4180 100  100  0    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:53 4180 100  100  -2   1167 1167 1167 0     33212 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:53 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:54 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:54 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:54 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:54 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:54 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:54 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:54 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:54 4180 100  100  1    1167 1167 1167 0     65535 33  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:54 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:54 4175 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:54 4180 100  100  -3   1167 1167 1167 0     17990 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:54 4180 100  100  2    1167 1167 1167 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
18:55 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:55 4180 100  100  1    1167 1167 1167 0     65535 32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:55 4180 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
18:55 4177 100  100  2    1167 1167 1167 0     65535 32  NOACT:0 IMIN:1 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/jrbme/bme chargefloat log</title>
    <id>4495</id>
    <revision>
      <id>39252</id>
      <timestamp>2010-10-02T04:10:18Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">this is bme charging with screen always on - as an instance of arbitrary consumers increasing system current intake above the charge end detection threshold of bq24150 charger chip. Charging will never stop, keeping cell floating a max voltage, with current oscillating around zero in both directions charging and discharging, depending on minimal charge voltage changes caused by system intake current variations. This, from a cell maintenance POV, is the worst case - see comment in http://wiki.maemo.org/User:Joerg_rw/jrbme/bme_microcycle_log

&lt;pre&gt;
Nokia-N900-02-8:~# # discharging in preparation for next charge, screen always on
Nokia-N900-02-8:~# bin/bq27200.sh 
LOOPMODE=0                        
Reading values...........................done.

CSOC: 99 % RSOC: 99 %
Average Current: 193 mA
TTF: 65535 minutes TTE: 477 minutes
NAC: 1538 mAh CACD: 1538 mAh CACT: 1538 mAh 
SI: 26 mA STTE: 3495 minutes                
MLI: 1028 mA MLTTE: 88 minutes              
AR: 0 mA ARTTE: 65535 minutes               
Last Measured Discharge: 1553 mAh           
Cycle Count since Learning: 1 Total Cycle Count since last full reset: 29
Reported Battery Voltage: 4033 mV                                        
Battery Gauge die Temperature: 27 C                                      
Flags:   0x04                                                            
         Charge:0 NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF: 0       
eeprom data:                                                             
         ILMD=2056 EDVF=3000 EDV1=3248 ISLC=20                           
         DMF=14700 nanoVolt SD=201 thousandths of percent per day        
         AGELMD=1 TAPER=102 mA                                           
         IMLC=1028 mA                                                    
Nokia-N900-02-8:~# bin/bq27200.sh 30                                     
LOOPMODE=30                                                              
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW       
03:45 4036 99   99   -250 1538 1538 1538 65535 369   27  0               
03:45 4036 99   99   -187 1536 1536 1536 65535 492   27  0               
03:46 4033 99   99   -185 1535 1535 1535 65535 497   27  0               
03:46 4036 99   99   -184 1533 1533 1533 65535 498   27  0               
03:47 4033 99   99   -185 1532 1532 1532 65535 495   27  0               
03:47 4033 98   98   -185 1530 1530 1530 65535 495   27  0               
03:48 4031 98   98   -184 1528 1528 1528 65535 498   27  0               
03:48 4031 98   98   -184 1527 1527 1527 65535 494   27  0               
03:49 4031 98   98   -184 1525 1525 1525 65535 497   27  0               
03:49 4028 98   98   -185 1524 1524 1524 65535 494   27  0               
03:50 4028 98   98   -185 1522 1522 1522 65535 491   27  0               
03:50 4028 98   98   -185 1520 1520 1520 65535 492   27  0               
03:51 4025 98   98   -185 1519 1519 1519 65535 491   28  0               
03:52 4025 98   98   -184 1517 1517 1517 65535 494   28  0               
03:52 4023 98   98   -194 1516 1516 1516 65535 469   28  0               
03:53 4023 97   97   -185 1514 1514 1514 65535 490   28  0               
03:53 4023 97   97   -184 1512 1512 1512 65535 490   28  0               
03:54 4020 97   97   -185 1511 1511 1511 65535 489   28  0               
03:54 4020 97   97   -184 1509 1509 1509 65535 491   28  0               
03:55 4017 97   97   -185 1508 1508 1508 65535 488   28  0               
03:55 4017 97   97   -185 1506 1506 1506 65535 486   28  0               
03:56 4017 97   97   -185 1505 1505 1505 65535 487   28  0               
03:56 4017 97   97   -185 1503 1503 1503 65535 486   28  0               
03:57 4015 97   97   -185 1501 1501 1501 65535 484   28  0               
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW       
03:57 4015 96   96   -186 1500 1500 1500 65535 482   29  0               
03:58 4012 96   96   -184 1498 1498 1498 65535 486   29  0               
03:58 4012 96   96   -194 1497 1497 1497 65535 461   29  0               
03:59 4009 96   96   -185 1495 1495 1495 65535 483   29  0               
03:59 4009 96   96   -185 1493 1493 1493 65535 483   29  0               
04:00 4009 96   96   -187 1492 1492 1492 65535 477   29  0               
04:00 4009 96   96   -185 1490 1490 1490 65535 481   29  0               
04:01 4004 96   96   -186 1488 1488 1488 65535 478   29  0               
04:01 4004 96   96   -186 1486 1486 1486 65535 478   29  0               
04:02 4004 96   96   -189 1485 1485 1485 65535 478   29  0               
04:02 4004 96   96   -185 1483 1483 1483 65535 479   29  0               
04:03 4001 95   95   -188 1482 1482 1482 65535 473   29  0               
04:03 4001 95   95   -185 1480 1480 1480 65535 478   29  0               
04:04 4001 95   95   -186 1479 1479 1479 65535 475   29  0               
04:04 3999 95   95   -185 1477 1477 1477 65535 478   29  0               
04:05 3999 95   95   -188 1475 1475 1475 65535 470   29  0               
04:05 3999 95   95   -186 1474 1474 1474 65535 475   29  0               
04:06 3996 95   95   -187 1472 1472 1472 65535 471   29  0               
04:06 3996 95   95   -186 1471 1471 1471 65535 474   29  0               
04:07 3996 95   95   -187 1469 1469 1469 65535 470   29  0               
04:07 3996 94   94   -186 1467 1467 1467 65535 473   29  0               
04:08 3993 94   94   -186 1466 1466 1466 65535 471   29  0               
04:08 3993 94   94   -186 1464 1464 1464 65535 472   29  0               
04:09 3993 94   94   -188 1463 1463 1463 65535 467   30  0               
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW       
04:09 3991 94   94   -185 1461 1461 1461 65535 472   30  0               
04:10 3991 94   94   -187 1459 1459 1459 65535 467   30  0               
04:10 3988 94   94   -186 1458 1458 1458 65535 471   30  0               
04:11 3988 94   94   -187 1456 1456 1456 65535 465   30  0               
^CNokia-N900-02-8:~# # now plugging in charger ###################################################################
Nokia-N900-02-8:~# bin/bq27200.sh 5
LOOPMODE=5                         
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
04:12 3983 93   93   -225 1453 1453 1453 65535 386   30  0        
04:12 3983 93   93   -223 1452 1452 1452 65535 390   30  0        
04:12 3983 93   93   -200 1452 1452 1452 65535 435   30  0        
04:12 4087 93   93   -50  1452 1452 1452 65535 1719  30  0        
04:12 4105 93   93   331  1453 1453 1453 27    65535 31  0        
04:12 4113 94   94   389  1454 1454 1454 22    65535 31  0        
04:12 4116 94   94   398  1454 1454 1454 21    65535 31  0        
04:12 4118 94   94   405  1455 1455 1455 21    65535 31  0
04:12 4121 94   94   400  1455 1455 1455 21    65535 31  0
04:12 4124 94   94   398  1456 1456 1456 21    65535 31  0
04:12 4126 94   94   405  1457 1457 1457 21    65535 31  0
04:13 4126 94   94   405  1457 1457 1457 21    65535 31  0
04:13 4126 94   94   398  1458 1458 1458 21    65535 31  0
04:13 4126 94   94   394  1458 1458 1458 21    65535 31  0
04:13 4129 94   94   390  1459 1459 1459 21    65535 31  0
04:13 4129 94   94   386  1459 1459 1459 21    65535 31  0
04:13 4129 94   94   385  1460 1460 1460 21    65535 31  0
04:13 4129 94   94   377  1461 1461 1461 21    65535 31  0
04:13 4129 94   94   373  1461 1461 1461 21    65535 31  0
^C
Nokia-N900-02-8:~# #changing sampling rate to 30
Nokia-N900-02-8:~# bin/bq27200.sh 30
LOOPMODE=30
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
04:14 4126 94   94   353  1463 1463 1463 22    65535 32  0
04:14 4132 94   94   358  1466 1466 1466 21    65535 31  0
04:15 4132 95   95   350  1469 1469 1469 21    65535 31  0
04:15 4134 95   95   342  1472 1472 1472 21    65535 31  0
04:16 4134 95   95   337  1475 1475 1475 21    65535 32  0
04:16 4134 95   95   329  1478 1478 1478 19    65535 32  0
04:17 4137 95   95   324  1481 1481 1481 19    65535 32  0
04:17 4137 95   95   318  1483 1483 1483 19    65535 32  0
04:18 4137 96   96   312  1486 1486 1486 19    65535 32  0
04:18 4137 96   96   307  1488 1488 1488 18    65535 32  0
04:19 4137 96   96   301  1491 1491 1491 18    65535 32  0
04:19 4140 96   96   297  1493 1493 1493 18    65535 32  0
04:20 4140 96   96   292  1496 1496 1496 16    65535 32  0
04:20 4140 96   96   288  1498 1498 1498 16    65535 32  0
04:21 4140 97   97   284  1501 1501 1501 16    65535 32  0
04:21 4142 97   97   279  1503 1503 1503 15    65535 32  0
04:22 4142 97   97   273  1505 1505 1505 15    65535 32  0
04:22 4142 97   97   270  1507 1507 1507 15    65535 32  0
04:23 4142 97   97   265  1510 1510 1510 13    65535 32  0
04:23 4142 97   97   261  1512 1512 1512 13    65535 32  0
04:24 4145 97   97   257  1514 1514 1514 13    65535 32  0
04:24 4145 98   98   253  1516 1516 1516 12    65535 32  0
04:25 4145 98   98   250  1518 1518 1518 12    65535 32  0
04:25 4145 98   98   245  1520 1520 1520 12    65535 32  0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
04:26 4145 98   98   241  1522 1522 1522 10    65535 32  0
04:26 4145 98   98   238  1524 1524 1524 10    65535 32  0
04:27 4148 98   98   234  1526 1526 1526 9     65535 32  0
04:27 4148 98   98   231  1528 1528 1528 9     65535 32  0
04:28 4148 98   98   227  1530 1530 1530 9     65535 32  0
04:28 4148 99   99   223  1532 1532 1532 7     65535 32  0
04:29 4148 99   99   220  1534 1534 1534 7     65535 32  0
04:29 4148 99   99   216  1536 1536 1536 6     65535 32  0
04:30 4148 99   99   214  1537 1537 1537 6     65535 32  0
04:30 4150 99   99   207  1539 1539 1539 6     65535 33  0
04:31 4150 99   99   207  1541 1541 1541 4     65535 32  0
04:31 4150 99   99   203  1543 1543 1543 4     65535 32  0
04:32 4150 99   99   200  1544 1544 1544 3     65535 32  0
04:32 4150 100  100  197  1546 1546 1546 3     65535 32  0
04:33 4150 100  100  194  1548 1548 1548 1     65535 32  0
04:33 4150 100  100  191  1549 1549 1549 1     65535 32  0
04:34 4153 100  100  188  1551 1551 1551 0     65535 32  0
04:34 4153 100  100  185  1552 1552 1552 0     65535 32  0
04:35 4153 100  100  183  1553 1553 1553 0     65535 32  0
04:35 4153 100  100  179  1553 1553 1553 0     65535 32  0
04:36 4153 100  100  176  1553 1553 1553 0     65535 32  0
04:36 4153 100  100  174  1553 1553 1553 0     65535 32  0
# battery applet still signalling 'charging'
04:37 4153 100  100  171  1553 1553 1553 0     65535 32  0
04:37 4153 100  100  168  1553 1553 1553 0     65535 32  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
04:38 4156 100  100  166  1553 1553 1553 0     65535 32  0        
04:38 4156 100  100  163  1553 1553 1553 0     65535 32  0        
04:39 4156 100  100  161  1553 1553 1553 0     65535 32  0        
04:39 4156 100  100  158  1553 1553 1553 0     65535 32  0        
04:40 4156 100  100  156  1553 1553 1553 0     65535 32  0        
04:40 4156 100  100  153  1553 1553 1553 0     65535 32  0        
04:41 4156 100  100  150  1553 1553 1553 0     65535 32  0        
04:41 4156 100  100  148  1553 1553 1553 0     65535 32  0        
04:42 4158 100  100  146  1553 1553 1553 0     65535 32  0        
04:42 4158 100  100  144  1553 1553 1553 0     65535 32  0
04:43 4158 100  100  141  1553 1553 1553 0     65535 32  0
04:43 4158 100  100  139  1553 1553 1553 0     65535 32  0
04:44 4158 100  100  137  1553 1553 1553 0     65535 32  0
04:44 4158 100  100  134  1553 1553 1553 0     65535 32  0
04:45 4158 100  100  132  1553 1553 1553 0     65535 32  0
04:45 4156 100  100  98   1553 1553 1553 0     65535 32  0
# any time around here, battery applet changed to status &quot;charged&quot;
04:46 4158 100  100  128  1553 1553 1553 0     65535 32  0
04:46 4158 100  100  126  1553 1553 1553 0     65535 32  0
04:47 4161 100  100  124  1553 1553 1553 0     65535 32  0
04:47 4161 100  100  122  1553 1553 1553 0     65535 32  0
04:48 4161 100  100  120  1553 1553 1553 0     65535 32  0
04:48 4161 100  100  118  1553 1553 1553 0     65535 32  0
04:49 4161 100  100  116  1553 1553 1553 0     65535 32  0
04:49 4161 100  100  114  1553 1553 1553 0     65535 32  0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
04:50 4161 100  100  113  1553 1553 1553 0     65535 32  0
04:50 4161 100  100  111  1553 1553 1553 0     65535 32  0
04:51 4161 100  100  110  1553 1553 1553 0     65535 32  0
04:51 4161 100  100  108  1553 1553 1553 0     65535 32  0
04:52 4161 100  100  106  1553 1553 1553 0     65535 32  0
04:52 4164 100  100  104  1553 1553 1553 0     65535 32  0
04:53 4164 100  100  103  1553 1553 1553 0     65535 32  0
04:53 4164 100  100  101  1553 1553 1553 0     65535 32  0
04:54 4164 100  100  100  1553 1553 1553 0     65535 32  0
04:54 4164 100  100  98   1553 1553 1553 0     65535 32  0
04:55 4164 100  100  97   1553 1553 1553 0     65535 32  0
04:56 4164 100  100  95   1553 1553 1553 0     65535 32  0
04:56 4164 100  100  94   1553 1553 1553 0     65535 32  0
04:57 4164 100  100  92   1553 1553 1553 0     65535 32  0
04:57 4164 100  100  91   1553 1553 1553 0     65535 32  0
04:58 4164 100  100  90   1553 1553 1553 0     65535 32  0
04:58 4164 100  100  85   1553 1553 1553 0     65535 32  0
04:59 4164 100  100  87   1553 1553 1553 0     65535 32  0
04:59 4164 100  100  86   1553 1553 1553 0     65535 32  0
05:00 4164 100  100  83   1553 1553 1553 0     65535 32  0
05:00 4164 100  100  83   1553 1553 1553 0     65535 32  0
05:01 4164 100  100  81   1553 1553 1553 0     65535 33  0
05:01 4164 100  100  83   1553 1553 1553 0     65535 32  0
05:02 4164 100  100  80   1553 1553 1553 0     65535 32  0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
05:02 4166 100  100  79   1553 1553 1553 0     65535 32  0
05:03 4166 100  100  77   1553 1553 1553 0     65535 32  0
05:03 4166 100  100  77   1553 1553 1553 0     65535 32  0
05:04 4166 100  100  75   1553 1553 1553 0     65535 32  0
05:04 4166 100  100  72   1553 1553 1553 0     65535 32  0
05:05 4166 100  100  74   1553 1553 1553 0     65535 32  0
05:05 4166 100  100  73   1553 1553 1553 0     65535 32  0
05:06 4166 100  100  71   1553 1553 1553 0     65535 32  0
05:06 4166 100  100  71   1553 1553 1553 0     65535 32  0
05:07 4166 100  100  69   1553 1553 1553 0     65535 32  0
05:07 4166 100  100  68   1553 1553 1553 0     65535 32  0
05:08 4166 100  100  66   1553 1553 1553 0     65535 32  0
05:08 4166 100  100  67   1553 1553 1553 0     65535 32  0
05:09 4166 100  100  64   1553 1553 1553 0     65535 32  0
05:09 4166 100  100  64   1553 1553 1553 0     65535 32  0
05:10 4166 100  100  63   1553 1553 1553 0     65535 32  0
05:10 4166 100  100  63   1553 1553 1553 0     65535 32  0
05:11 4166 100  100  62   1553 1553 1553 0     65535 32  0
05:11 4166 100  100  61   1553 1553 1553 0     65535 32  0
05:12 4166 100  100  58   1553 1553 1553 0     65535 32  0
05:12 4169 100  100  61   1553 1553 1553 0     65535 32  0
05:13 4169 100  100  59   1553 1553 1553 0     65535 32  0
05:13 4169 100  100  59   1553 1553 1553 0     65535 32  0
05:14 4169 100  100  58   1553 1553 1553 0     65535 32  0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
05:14 4169 100  100  57   1553 1553 1553 0     65535 32  0
05:15 4169 100  100  56   1553 1553 1553 0     65535 32  0
05:15 4169 100  100  56   1553 1553 1553 0     65535 32  0
05:16 4169 100  100  55   1553 1553 1553 0     65535 32  0
05:16 4169 100  100  55   1553 1553 1553 0     65535 32  0
05:17 4169 100  100  54   1553 1553 1553 0     65535 32  0
05:17 4169 100  100  53   1553 1553 1553 0     65535 32  0
05:18 4169 100  100  52   1553 1553 1553 0     65535 32  0
05:18 4169 100  100  51   1553 1553 1553 0     65535 32  0
05:19 4169 100  100  51   1553 1553 1553 0     65535 32  0
05:19 4169 100  100  50   1553 1553 1553 0     65535 32  0
05:20 4169 100  100  49   1553 1553 1553 0     65535 32  0
05:20 4169 100  100  48   1553 1553 1553 0     65535 32  0
05:21 4169 100  100  47   1553 1553 1553 0     65535 32  0
05:21 4169 100  100  47   1553 1553 1553 0     65535 32  0
05:22 4169 100  100  46   1553 1553 1553 0     65535 32  0
05:22 4169 100  100  46   1553 1553 1553 0     65535 32  0
05:23 4169 100  100  46   1553 1553 1553 0     65535 32  0
05:23 4169 100  100  45   1553 1553 1553 0     65535 32  0
05:24 4169 100  100  45   1553 1553 1553 0     65535 32  0
05:24 4169 100  100  44   1553 1553 1553 0     65535 32  0
05:25 4169 100  100  43   1553 1553 1553 0     65535 32  0
05:25 4169 100  100  43   1553 1553 1553 0     65535 32  0
05:26 4169 100  100  42   1553 1553 1553 0     65535 32  0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
05:26 4172 100  100  42   1553 1553 1553 0     65535 32  0
05:27 4172 100  100  41   1553 1553 1553 0     65535 32  0
05:27 4172 100  100  40   1553 1553 1553 0     65535 32  0
05:28 4172 100  100  40   1553 1553 1553 0     65535 32  0
05:28 4172 100  100  39   1553 1553 1553 0     65535 32  0
05:29 4172 100  100  39   1553 1553 1553 0     65535 32  0
05:29 4172 100  100  38   1553 1553 1553 0     65535 32  0
05:30 4172 100  100  38   1553 1553 1553 0     65535 32  0
05:30 4172 100  100  32   1553 1553 1553 0     65535 32  0
05:31 4172 100  100  38   1553 1553 1553 0     65535 32  0
# some shell activity over wlan and ssh taking place in another process 
# from here on. So system power consumption is varying caused by WLAN TX &amp; CPU
05:31 4172 100  100  37   1553 1553 1553 0     65535 32  0
05:32 4172 100  100  36   1553 1553 1553 0     65535 32  0
05:32 4172 100  100  34   1553 1553 1553 0     65535 32  0
05:33 4172 100  100  36   1553 1553 1553 0     65535 32  0
05:33 4172 100  100  23   1553 1553 1553 0     65535 32  0
05:34 4156 100  100  -16  1553 1553 1553 65535 5616  33  0
05:34 4156 100  100  32   1553 1553 1553 0     65535 34  0
05:35 4156 100  100  -27  1553 1553 1553 65535 3391  34  0
05:35 4161 100  100  -21  1553 1553 1553 65535 4281  34  0
05:36 4169 100  100  43   1553 1553 1553 0     65535 34  0
05:36 4172 100  100  40   1553 1553 1553 0     65535 33  0
05:37 4172 100  100  38   1553 1553 1553 0     65535 33  0
05:37 4172 100  100  37   1553 1553 1553 0     65535 33  0
05:38 4172 100  100  36   1553 1553 1553 0     65535 33  0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
05:38 4164 100  100  30   1553 1553 1553 0     65535 32  0
05:39 4169 100  100  23   1553 1553 1553 0     65535 33  0
05:39 4172 100  100  35   1553 1553 1553 0     65535 33  0
05:40 4169 100  100  22   1553 1553 1553 0     65535 33  0
05:40 4169 100  100  17   1553 1553 1553 0     65535 33  0
05:41 4172 100  100  36   1553 1553 1553 0     65535 33  0
05:41 4161 100  100  -14  1553 1553 1553 65535 6370  33  0
05:42 4172 100  100  30   1553 1553 1553 0     65535 34  0
# activity in other shell finished
# watch the temperature rise in bq27200 die, which indicates there
# has been quite some power consumprion during those periods, which might
# go unnoticed by sampling 5s out of 30s window
05:42 4172 100  100  34   1553 1553 1553 0     65535 33  0
05:43 4172 100  100  33   1553 1553 1553 0     65535 33  0
05:43 4172 100  100  32   1553 1553 1553 0     65535 33  0
05:44 4172 100  100  32   1553 1553 1553 0     65535 32  0
05:45 4172 100  100  31   1553 1553 1553 0     65535 32  0
05:45 4172 100  100  30   1553 1553 1553 0     65535 32  0
05:46 4172 100  100  13   1553 1553 1553 0     65535 32  0
05:46 4172 100  100  28   1553 1553 1553 0     65535 32  0
05:47 4172 100  100  30   1553 1553 1553 0     65535 32  0
05:47 4172 100  100  29   1553 1553 1553 0     65535 32  0
05:48 4172 100  100  29   1553 1553 1553 0     65535 32  0
05:48 4172 100  100  28   1553 1553 1553 0     65535 32  0
05:49 4172 100  100  28   1553 1553 1553 0     65535 32  0
05:49 4172 100  100  28   1553 1553 1553 0     65535 32  0
05:50 4172 100  100  27   1553 1553 1553 0     65535 32  0
05:50 4172 100  100  26   1553 1553 1553 0     65535 32  0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
05:51 4172 100  100  26   1553 1553 1553 0     65535 32  0
05:51 4172 100  100  26   1553 1553 1553 0     65535 32  0
05:52 4172 100  100  25   1553 1553 1553 0     65535 32  0
05:52 4172 100  100  24   1553 1553 1553 0     65535 32  0
05:53 4172 100  100  24   1553 1553 1553 0     65535 32  0
05:53 4172 100  100  24   1553 1553 1553 0     65535 32  0
05:54 4172 100  100  24   1553 1553 1553 0     65535 32  0
05:54 4172 100  100  24   1553 1553 1553 0     65535 32  0
05:55 4172 100  100  23   1553 1553 1553 0     65535 32  0
05:55 4172 100  100  23   1553 1553 1553 0     65535 32  0
05:56 4172 100  100  22   1553 1553 1553 0     65535 32  0
05:56 4172 100  100  23   1553 1553 1553 0     65535 32  0
05:57 4172 100  100  22   1553 1553 1553 0     65535 32  0
05:57 4172 100  100  22   1553 1553 1553 0     65535 32  0
05:58 4172 100  100  22   1553 1553 1553 0     65535 32  0
05:58 4172 100  100  22   1553 1553 1553 0     65535 32  0
05:59 4172 100  100  21   1553 1553 1553 0     65535 32  0
05:59 4172 100  100  21   1553 1553 1553 0     65535 32  0
06:00 4172 100  100  20   1553 1553 1553 0     65535 32  0
06:00 4161 100  100  17   1553 1553 1553 0     65535 32  0
06:01 4172 100  100  18   1553 1553 1553 0     65535 33  0
06:01 4172 100  100  22   1553 1553 1553 0     65535 32  0
06:02 4172 100  100  21   1553 1553 1553 0     65535 32  0
06:02 4172 100  100  21   1553 1553 1553 0     65535 32  0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
06:03 4172 100  100  20   1553 1553 1553 0     65535 32  0
06:03 4172 100  100  20   1553 1553 1553 0     65535 32  0
06:04 4172 100  100  20   1553 1553 1553 0     65535 32  0
06:04 4174 100  100  20   1553 1553 1553 0     65535 32  0
06:05 4174 100  100  19   1553 1553 1553 0     65535 32  0
06:05 4174 100  100  19   1553 1553 1553 0     65535 32  0
06:06 4174 100  100  18   1553 1553 1553 0     65535 32  0
06:06 4174 100  100  19   1553 1553 1553 0     65535 32  0
06:07 4172 100  100  18   1553 1553 1553 0     65535 32  0
06:07 4174 100  100  18   1553 1553 1553 0     65535 32  0
06:08 4174 100  100  18   1553 1553 1553 0     65535 32  0
06:08 4174 100  100  18   1553 1553 1553 0     65535 32  0
06:09 4174 100  100  17   1553 1553 1553 0     65535 32  0
06:09 4174 100  100  17   1553 1553 1553 0     65535 32  0
06:10 4174 100  100  16   1553 1553 1553 0     65535 32  0
06:10 4174 100  100  17   1553 1553 1553 0     65535 32  0
06:11 4174 100  100  16   1553 1553 1553 0     65535 32  0
06:11 4174 100  100  16   1553 1553 1553 0     65535 32  0
06:12 4174 100  100  16   1553 1553 1553 0     65535 32  0
06:12 4174 100  100  16   1553 1553 1553 0     65535 32  0
06:13 4174 100  100  15   1553 1553 1553 0     65535 32  0
06:13 4174 100  100  15   1553 1553 1553 0     65535 32  0
06:14 4174 100  100  15   1553 1553 1553 0     65535 32  0
06:14 4174 100  100  15   1553 1553 1553 0     65535 32  0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
06:15 4174 100  100  15   1553 1553 1553 0     65535 32  0
06:15 4174 100  100  15   1553 1553 1553 0     65535 32  0
06:16 4174 100  100  15   1553 1553 1553 0     65535 32  0
06:16 4174 100  100  15   1553 1553 1553 0     65535 32  0
06:17 4174 100  100  14   1553 1553 1553 0     65535 32  0
06:17 4174 100  100  14   1553 1553 1553 0     65535 32  0
06:18 4174 100  100  14   1553 1553 1553 0     65535 32  0
06:18 4174 100  100  14   1553 1553 1553 0     65535 32  0
06:19 4174 100  100  14   1553 1553 1553 0     65535 32  0
06:19 4174 100  100  14   1553 1553 1553 0     65535 32  0
06:20 4174 100  100  14   1553 1553 1553 0     65535 32  0
06:20 4174 100  100  13   1553 1553 1553 0     65535 32  0
06:21 4174 100  100  13   1553 1553 1553 0     65535 32  0
06:21 4174 100  100  13   1553 1553 1553 0     65535 32  0
06:22 4174 100  100  13   1553 1553 1553 0     65535 32  0
06:22 4174 100  100  13   1553 1553 1553 0     65535 32  0
06:23 4174 100  100  13   1553 1553 1553 0     65535 32  0        
06:23 4174 100  100  13   1553 1553 1553 0     65535 32  0        
06:24 4174 100  100  12   1553 1553 1553 0     65535 32  0        
06:24 4174 100  100  12   1553 1553 1553 0     65535 32  0        
06:25 4174 100  100  12   1553 1553 1553 0     65535 32  0        
06:25 4174 100  100  12   1553 1553 1553 0     65535 32  0        
06:26 4174 100  100  12   1553 1553 1553 0     65535 32  0        
06:26 4174 100  100  12   1553 1553 1553 0     65535 32  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
06:27 4174 100  100  12   1553 1553 1553 0     65535 32  0        
06:27 4174 100  100  11   1553 1553 1553 0     65535 32  0        
06:28 4174 100  100  11   1553 1553 1553 0     65535 32  0        
06:28 4174 100  100  11   1553 1553 1553 0     65535 32  0        
06:29 4174 100  100  11   1553 1553 1553 0     65535 32  0        
06:29 4174 100  100  11   1553 1553 1553 0     65535 32  0        
06:30 4174 100  100  11   1553 1553 1553 0     65535 32  0        
06:30 4174 100  100  12   1553 1553 1553 0     65535 32  0        
06:31 4174 100  100  11   1553 1553 1553 0     65535 32  0        
06:31 4174 100  100  11   1553 1553 1553 0     65535 32  0        
06:32 4174 100  100  11   1553 1553 1553 0     65535 32  0        
06:32 4174 100  100  11   1553 1553 1553 0     65535 32  0        
06:33 4174 100  100  11   1553 1553 1553 0     65535 32  0        
06:34 4174 100  100  10   1553 1553 1553 0     65535 32  0        
06:34 4174 100  100  10   1553 1553 1553 0     65535 32  0        
06:35 4174 100  100  10   1553 1553 1553 0     65535 32  0        
06:35 4174 100  100  10   1553 1553 1553 0     65535 32  0        
06:36 4174 100  100  10   1553 1553 1553 0     65535 32  0        
06:36 4174 100  100  10   1553 1553 1553 0     65535 32  0        
06:37 4174 100  100  10   1553 1553 1553 0     65535 32  0        
06:37 4174 100  100  10   1553 1553 1553 0     65535 32  0        
06:38 4174 100  100  8    1553 1553 1553 0     65535 32  0        
06:38 4174 100  100  10   1553 1553 1553 0     65535 32  0        
06:39 4174 100  100  9    1553 1553 1553 0     65535 32  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
06:39 4174 100  100  9    1553 1553 1553 0     65535 32  0        
06:40 4174 100  100  9    1553 1553 1553 0     65535 32  0        
06:40 4174 100  100  9    1553 1553 1553 0     65535 32  0        
06:41 4174 100  100  9    1553 1553 1553 0     65535 32  0        
06:41 4174 100  100  9    1553 1553 1553 0     65535 32  0        
06:42 4174 100  100  7    1553 1553 1553 0     65535 32  0        
06:42 4174 100  100  9    1553 1553 1553 0     65535 32  0        
06:43 4174 100  100  7    1553 1553 1553 0     65535 32  0        
06:43 4174 100  100  9    1553 1553 1553 0     65535 32  0        
06:44 4174 100  100  8    1553 1553 1553 0     65535 32  0        
06:44 4174 100  100  8    1553 1553 1553 0     65535 32  0        
06:45 4174 100  100  8    1553 1553 1553 0     65535 32  0        
06:45 4174 100  100  8    1553 1553 1553 0     65535 32  0        
06:46 4174 100  100  8    1553 1553 1553 0     65535 32  0        
06:46 4174 100  100  8    1553 1553 1553 0     65535 32  0        
06:47 4174 100  100  8    1553 1553 1553 0     65535 32  0        
06:47 4174 100  100  8    1553 1553 1553 0     65535 32  0        
06:48 4174 100  100  7    1553 1553 1553 0     65535 32  0        
06:48 4174 100  100  8    1553 1553 1553 0     65535 32  0        
06:49 4174 100  100  7    1553 1553 1553 0     65535 32  0        
06:49 4174 100  100  7    1553 1553 1553 0     65535 32  0        
06:50 4174 100  100  7    1553 1553 1553 0     65535 32  0        
06:50 4174 100  100  7    1553 1553 1553 0     65535 32  0        
06:51 4174 100  100  7    1553 1553 1553 0     65535 32  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
06:51 4174 100  100  7    1553 1553 1553 0     65535 32  0        
06:52 4174 100  100  6    1553 1553 1553 0     65535 32  0        
06:52 4174 100  100  7    1553 1553 1553 0     65535 32  0        
06:53 4174 100  100  7    1553 1553 1553 0     65535 32  0        
06:53 4174 100  100  7    1553 1553 1553 0     65535 32  0        
06:54 4174 100  100  7    1553 1553 1553 0     65535 32  0        
06:54 4174 100  100  7    1553 1553 1553 0     65535 31  0        
06:55 4174 100  100  6    1553 1553 1553 0     65535 31  0        
06:55 4174 100  100  7    1553 1553 1553 0     65535 31  0        
06:56 4174 100  100  6    1553 1553 1553 0     65535 31  0        
06:56 4174 100  100  6    1553 1553 1553 0     65535 31  0        
06:57 4174 100  100  6    1553 1553 1553 0     65535 31  0        
06:57 4174 100  100  6    1553 1553 1553 0     65535 31  0        
06:58 4174 100  100  6    1553 1553 1553 0     65535 31  0        
06:58 4174 100  100  6    1553 1553 1553 0     65535 31  0        
06:59 4174 100  100  6    1553 1553 1553 0     65535 31  0        
06:59 4174 100  100  6    1553 1553 1553 0     65535 31  0        
07:00 4174 100  100  6    1553 1553 1553 0     65535 31  0        
07:00 4174 100  100  8    1553 1553 1553 1     65535 32  0        
07:01 4174 100  100  7    1553 1553 1553 0     65535 32  0        
07:01 4174 100  100  7    1553 1553 1553 0     65535 32  0        
07:02 4174 100  100  7    1553 1553 1553 0     65535 32  0        
07:02 4174 100  100  7    1553 1553 1553 0     65535 32  0        
07:03 4174 100  100  6    1553 1553 1553 0     65535 32  0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
07:03 4174 100  100  6    1553 1553 1553 0     65535 32  0
07:04 4174 100  100  6    1553 1553 1553 0     65535 32  0
07:04 4174 100  100  6    1553 1553 1553 0     65535 32  0
07:05 4174 100  100  6    1553 1553 1553 0     65535 32  0
07:05 4174 100  100  6    1553 1553 1553 0     65535 32  0
07:06 4174 100  100  6    1553 1553 1553 0     65535 32  0
07:06 4174 100  100  6    1553 1553 1553 0     65535 32  0
07:07 4174 100  100  6    1553 1553 1553 0     65535 32  0
07:07 4174 100  100  6    1553 1553 1553 0     65535 32  0
07:08 4174 100  100  6    1553 1553 1553 0     65535 32  0
07:08 4174 100  100  6    1553 1553 1553 0     65535 32  0
07:09 4174 100  100  6    1553 1553 1553 0     65535 32  0
07:09 4174 100  100  6    1553 1553 1553 0     65535 31  0
07:10 4174 100  100  5    1553 1553 1553 0     65535 32  0
07:10 4174 100  100  5    1553 1553 1553 0     65535 31  0
07:11 4174 100  100  5    1553 1553 1553 0     65535 31  0
07:11 4174 100  100  5    1553 1553 1553 0     65535 31  0
07:12 4174 100  100  5    1553 1553 1553 0     65535 31  0
07:12 4174 100  100  5    1553 1553 1553 0     65535 31  0
07:13 4174 100  100  5    1553 1553 1553 0     65535 31  0
07:13 4174 100  100  5    1553 1553 1553 0     65535 31  0
07:14 4174 100  100  5    1553 1553 1553 0     65535 31  0
07:14 4174 100  100  5    1553 1553 1553 0     65535 31  0
07:15 4174 100  100  5    1553 1553 1553 0     65535 31  0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
07:15 4174 100  100  5    1553 1553 1553 0     65535 31  0
07:16 4174 100  100  5    1553 1553 1553 0     65535 32  0
07:16 4174 100  100  5    1553 1553 1553 0     65535 31  0
07:17 4174 100  100  4    1553 1553 1553 0     65535 31  0
07:17 4174 100  100  4    1553 1553 1553 0     65535 31  0
07:18 4174 100  100  4    1553 1553 1553 0     65535 31  0
07:18 4174 100  100  4    1553 1553 1553 0     65535 31  0
07:19 4174 100  100  4    1553 1553 1553 0     65535 31  0
07:19 4174 100  100  4    1553 1553 1553 0     65535 31  0
07:20 4174 100  100  4    1553 1553 1553 0     65535 31  0
07:20 4174 100  100  4    1553 1553 1553 0     65535 31  0
07:21 4174 100  100  4    1553 1553 1553 0     65535 31  0        
07:21 4174 100  100  4    1553 1553 1553 0     65535 31  0        
07:22 4174 100  100  4    1553 1553 1553 0     65535 31  0        
07:23 4174 100  100  4    1553 1553 1553 0     65535 31  0        
07:23 4174 100  100  4    1553 1553 1553 0     65535 31  0        
07:24 4174 100  100  4    1553 1553 1553 0     65535 31  0        
07:24 4174 100  100  4    1553 1553 1553 0     65535 31  0        
07:25 4174 100  100  4    1553 1553 1553 0     65535 31  0        
07:25 4174 100  100  4    1553 1553 1553 0     65535 31  0        
07:26 4174 100  100  4    1553 1553 1553 0     65535 31  0        
07:26 4174 100  100  4    1553 1553 1553 0     65535 31  0        
07:27 4174 100  100  4    1553 1553 1553 0     65535 31  0        
07:27 4174 100  100  4    1553 1553 1553 0     65535 31  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
07:28 4174 100  100  4    1553 1553 1553 0     65535 31  0        
07:28 4174 100  100  4    1553 1553 1553 0     65535 31  0        
07:29 4174 100  100  3    1553 1553 1553 0     65535 31  0        
07:29 4174 100  100  4    1553 1553 1553 0     65535 31  0        
07:30 4174 100  100  1    1553 1553 1553 0     65535 31  0
07:30 4174 100  100  4    1553 1553 1553 0     65535 31  0
07:31 4174 100  100  6    1553 1553 1553 1     65535 32  0
07:31 4174 100  100  5    1553 1553 1553 0     65535 32  0
07:32 4174 100  100  3    1553 1553 1553 0     65535 32  0
07:32 4174 100  100  4    1553 1553 1553 0     65535 32  0
07:33 4174 100  100  3    1553 1553 1553 0     65535 32  0
07:33 4174 100  100  4    1553 1553 1553 0     65535 32  0
07:34 4174 100  100  4    1553 1553 1553 0     65535 31  0
07:34 4174 100  100  3    1553 1553 1553 0     65535 31  0
07:35 4174 100  100  3    1553 1553 1553 0     65535 31  0
07:35 4174 100  100  4    1553 1553 1553 0     65535 31  0
07:36 4174 100  100  4    1553 1553 1553 0     65535 31  0
07:36 4174 100  100  4    1553 1553 1553 0     65535 31  0
07:37 4174 100  100  3    1553 1553 1553 0     65535 31  0
07:37 4174 100  100  4    1553 1553 1553 0     65535 31  0
07:38 4174 100  100  3    1553 1553 1553 0     65535 31  0
07:38 4174 100  100  4    1553 1553 1553 0     65535 31  0
07:39 4174 100  100  4    1553 1553 1553 0     65535 31  0
07:39 4174 100  100  4    1553 1553 1553 0     65535 31  0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
07:40 4174 100  100  3    1553 1553 1553 0     65535 31  0
07:40 4174 100  100  4    1553 1553 1553 0     65535 31  0
07:41 4174 100  100  3    1553 1553 1553 0     65535 31  0
07:41 4174 100  100  3    1553 1553 1553 0     65535 31  0
07:42 4174 100  100  3    1553 1553 1553 0     65535 31  0
07:42 4174 100  100  3    1553 1553 1553 0     65535 31  0
07:43 4174 100  100  3    1553 1553 1553 0     65535 31  0
07:43 4174 100  100  3    1553 1553 1553 0     65535 31  0
07:44 4174 100  100  3    1553 1553 1553 0     65535 31  0
07:44 4174 100  100  3    1553 1553 1553 0     65535 31  0
07:45 4174 100  100  3    1553 1553 1553 0     65535 31  0
07:45 4174 100  100  3    1553 1553 1553 0     65535 31  0
07:46 4174 100  100  4    1553 1553 1553 0     65535 32  0
07:46 4174 100  100  4    1553 1553 1553 0     65535 31  0
07:47 4174 100  100  3    1553 1553 1553 0     65535 31  0
07:47 4174 100  100  3    1553 1553 1553 0     65535 31  0
07:48 4174 100  100  3    1553 1553 1553 0     65535 31  0
...
...
08:25 4174 100  100  2    1553 1553 1553 0     65535 31  0        
08:25 4174 100  100  2    1553 1553 1553 0     65535 31  0        
08:26 4174 100  100  1    1553 1553 1553 0     65535 31  0        
08:26 4174 100  100  2    1553 1553 1553 0     65535 31  0        
08:27 4174 100  100  2    1553 1553 1553 0     65535 31  0        
08:27 4174 100  100  2    1553 1553 1553 0     65535 31  0        
08:28 4174 100  100  1    1553 1553 1553 0     65535 31  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
08:28 4174 100  100  2    1553 1553 1553 0     65535 31  0        
08:29 4174 100  100  2    1553 1553 1553 0     65535 31  0        
08:29 4174 100  100  2    1553 1553 1553 0     65535 31  0        
08:30 4174 100  100  1    1553 1553 1553 0     65535 31  0        
08:30 4174 100  100  4    1553 1553 1553 3     65535 32  0        
08:31 4174 100  100  3    1553 1553 1553 0     65535 32  0        
08:31 4174 100  100  3    1553 1553 1553 0     65535 32  0        
08:32 4174 100  100  2    1553 1553 1553 0     65535 32  0        
08:32 4174 100  100  3    1553 1553 1553 0     65535 32  0        
08:33 4174 100  100  2    1553 1553 1553 0     65535 31  0        
08:33 4174 100  100  3    1553 1553 1553 0     65535 31  0        
08:34 4174 100  100  2    1553 1553 1553 0     65535 31  0        
08:34 4174 100  100  2    1553 1553 1553 0     65535 31  0  
...
...
08:56 4174 100  100  2    1553 1553 1553 0     65535 31  0
08:56 4174 100  100  2    1553 1553 1553 0     65535 31  0
08:57 4174 100  100  2    1553 1553 1553 0     65535 31  0
08:57 4174 100  100  2    1553 1553 1553 0     65535 31  0
08:58 4174 100  100  2    1553 1553 1553 0     65535 31  0
08:58 4174 100  100  2    1553 1553 1553 0     65535 31  0
08:59 4174 100  100  2    1553 1553 1553 0     65535 31  0
08:59 4174 100  100  1    1553 1553 1553 0     65535 31  0
09:00 4174 100  100  2    1553 1553 1553 0     65535 31  0
09:00 4164 100  100  -58  1553 1553 1553 65535 1674  32  0
09:01 4174 100  100  1    1553 1553 1553 22    65535 32  0
09:01 4174 100  100  3    1553 1553 1553 0     65535 32  0
09:02 4174 100  100  3    1553 1553 1553 0     65535 31  0
09:02 4174 100  100  2    1553 1553 1553 0     65535 31  0
09:03 4174 100  100  2    1553 1553 1553 0     65535 31  0
09:04 4174 100  100  3    1553 1553 1553 0     65535 31  0
09:04 4174 100  100  2    1553 1553 1553 0     65535 31  0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
09:05 4174 100  100  2    1553 1553 1553 0     65535 31  0
09:05 4174 100  100  2    1553 1553 1553 0     65535 31  0
...
...
11:55 4174 100  100  1    1553 1553 1553 0     65535 31  0
11:55 4174 100  100  1    1553 1553 1553 0     65535 31  0
11:56 4174 100  100  1    1553 1553 1553 0     65535 31  0
11:56 4174 100  100  1    1553 1553 1553 0     65535 31  0
11:57 4174 100  100  0    1553 1553 1553 0     65535 31  0
11:57 4174 100  100  1    1553 1553 1553 0     65535 31  0
11:58 4174 100  100  1    1553 1553 1553 0     65535 31  0
11:58 4174 100  100  0    1553 1553 1553 0     65535 31  0
11:59 4174 100  100  1    1553 1553 1553 0     65535 31  0
11:59 4174 100  100  1    1553 1553 1553 0     65535 31  0
...
...
14:25 4174 100  100  1    1553 1553 1553 0     65535 32  0
14:26 4174 100  100  0    1553 1553 1553 0     65535 32  0
14:26 4174 100  100  1    1553 1553 1553 0     65535 32  0
14:27 4174 100  100  1    1553 1553 1553 0     65535 32  0
14:27 4174 100  100  1    1553 1553 1553 0     65535 32  0
14:28 4174 100  100  1    1553 1553 1553 0     65535 32  0
14:28 4174 100  100  1    1553 1553 1553 0     65535 32  0
14:29 4174 100  100  1    1553 1553 1553 0     65535 32  0
14:29 4174 100  100  1    1553 1553 1553 0     65535 32  0
14:30 4174 100  100  1    1553 1553 1553 0     65535 32  0
14:30 4174 100  100  1    1553 1553 1553 0     65535 32  0
14:31 4174 100  100  1    1553 1553 1553 0     65535 32  0
14:31 4174 100  100  1    1553 1553 1553 0     65535 32  0
### locking screen
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
14:32 4172 100  100  -21  1553 1553 1553 65535 4352  31  0
14:32 4172 100  100  -11  1553 1553 1553 65535 8422  30  0
14:33 4172 100  100  -9   1553 1553 1553 65535 9669  30  0
14:33 4172 100  100  -10  1553 1553 1553 65535 9002  30  0
      




&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/jrbme/bme discharge learn log</title>
    <id>4781</id>
    <revision>
      <id>42460</id>
      <timestamp>2011-03-08T03:57:19Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">The device got normally discharged until bme shuts down. Screen always on and initially at 80%, then at full brightness, the process took some 5h from a full battery to shutdown. Below you see head and tail of log created by a slightly modified bq27200.sh 5, as c&amp;p from PC ssh session.

Watch the bq27200 chip learn immediately prior to bme shutdown. The period time for one logline was 5 seconds. 

It's quite unlikely bme just incidentally shut down the device exactly same moment the bq27200 reached EDV1 battery threshold of 3248mV and thus learnt about true battery capacity. Also note about the remaining ~17..20min until battery would reach EDVF, the final discharge voltage at which the device should shut down unconditionally


&lt;pre&gt;
LOOPMODE=5 RS=22
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP
06:33 4164 100  100  -4   1380 1380 1380 0     18900 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
06:33 4169 100  100  -5   1380 1380 1380 0     15947 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
06:33 4169 100  100  1    1380 1380 1380 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
06:33 4169 100  100  6    1380 1380 1380 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
06:33 4169 100  100  0    1380 1380 1380 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
06:33 4169 100  100  5    1380 1380 1380 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
06:33 4169 100  100  1    1380 1380 1380 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
06:34 4169 100  100  6    1379 1379 1379 0     65535 33  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
06:34 4135 100  100  -120 1379 1379 1379 65535 688   32  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
06:34 4140 100  100  -141 1379 1379 1379 65535 586   31  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
06:34 4140 100  100  -131 1379 1379 1379 65535 629   31  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
06:34 4138 100  100  -150 1379 1379 1379 65535 550   31  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
06:34 4138 100  100  -192 1378 1378 1378 65535 431   31  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
06:34 4140 100  100  -134 1378 1378 1378 65535 614   31  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
06:34 4140 100  100  -119 1378 1378 1378 65535 693   31  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0

.....

      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP                                               
12:07 3296 15   15   -273 201  201  201  65535 44    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
12:07 3272 15   15   -252 201  201  201  65535 48    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
12:07 3286 15   15   -270 200  200  200  65535 45    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
12:07 3286 14   14   -275 200  200  200  65535 44    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
12:07 3267 14   14   -258 200  200  200  65535 46    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
12:07 3270 14   14   -276 199  199  199  65535 43    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
12:07 3246 14   14   -289 199  199  199  65535 41    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
12:08 3248 14   14   -312 198  198  198  65535 38    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
12:08 3270 14   14   -285 198  198  198  65535 42    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
12:08 3267 14   14   -247 198  198  198  65535 48    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
12:08 3267 14   14   -254 197  197  197  65535 47    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
12:08 3248 14   14   -251 197  197  197  65535 47    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
12:08 3262 14   14   -273 196  196  196  65535 46    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
12:08 3256 14   14   -277 196  196  196  65535 43    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
12:08 3254 14   14   -255 196  196  196  65535 43    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
12:08 3235 14   14   -275 195  195  195  65535 46    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
12:08 3246 14   14   -287 195  195  195  65535 43    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
12:08 3227 14   14   -297 194  194  194  65535 41    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF:0
12:08 3214 7    7    -299 85   85   85   65535 17    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:0 EDV1:1 EDVF:0
12:09 3222 7    7    -269 85   85   85   65535 17    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:0 EDV1:1 EDVF:0
12:09 3230 7    7    -265 85   85   85   65535 19    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:0 EDV1:1 EDVF:0
12:09 3230 7    7    -254 84   84   84   65535 20    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:0 EDV1:1 EDVF:0
12:09 3211 7    7    -256 84   84   84   65535 20    30  NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:0 EDV1:1 EDVF:0
Read from remote host IroN900: Connection reset by peer                                                 
Connection to IroN900 closed.                                                                           
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/jrbme/bme microcycle log</title>
    <id>4494</id>
    <revision>
      <id>40091</id>
      <timestamp>2010-11-12T21:31:55Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">This is a log of a normal bme controlled charging and maintenance process.

It shows how bme is doing microcycling to keep battery at 100%. According to datasheets of various battery charger chips and also to information from a LiIon cell manufacturer I received during my time at OM, this might not be exactly the ideal thing to do to a cell, regarding longevity and wear minimization. LiIon cells don't like to be charged continuously, and I'd consider a pause of 2 minutes to be close to irrelevant to distinguish this scheme from continuous charging. Notibly bme does 'the right thing' directly after finishing the initial charging

Note that this microcycling scheme only kicks in when system power consumption is low enough, otherwise too much current adds on top of that charging current shown by bq27200, and thus bq24150 charger chip's charge end threshold never triggers and charging continues infinitely. See http://wiki.maemo.org/User:Joerg_rw/jrbme/bme_chargefloat_log for an example

* 21:35 - charging complete and stopped, starting to discharge cell. That's actually recommended way to treat cells
* 01:25 - refresh charging kicks in. Still recommended
* 01:26 - cell back to 100%, allegedly
* 01:28 - another micro refresh cycle. Here bme madness starts
* 01:31 01:34 01:37 - regular refresh cycles
* 01:41 ' changed interval from 30s to 5s (bin/bq27200.sh 5). Watch consumption rising from avrg 10mA to 25mA. That's what the script is using
* 01:43 01:46 01:49 - further more detailed records of refresh cycles

&lt;pre&gt;
Nokia-N900-02-8:~# bin/bq27200.sh 
LOOPMODE=0                        
Reading values...........................done.

CSOC: 92 % RSOC: 92 %
Average Current: 407 mA
TTF: 27 minutes TTE: 65535 minutes
NAC: 1426 mAh CACD: 1426 mAh CACT: 1426 mAh 
SI: 8 mA STTE: 9590 minutes                 
MLI: 1028 mA MLTTE: 81 minutes              
AR: 0 mA ARTTE: 65535 minutes               
Last Measured Discharge: 1553 mAh           
Cycle Count since Learning: 1 Total Cycle Count since last full reset: 29
Reported Battery Voltage: 4129 mV                                        
Battery Gauge die Temperature: 25 C                                      
Flags:   0x84                                                            
         Charge:1 NOACT:0 IMIN:0 CI:0 CALIP:0 VDQ:1 EDV1:0 EDVF: 0       
eeprom data:                                                             
         ILMD=2056 EDVF=3000 EDV1=3248 ISLC=20                           
         DMF=14700 nanoVolt SD=201 thousandths of percent per day        
         AGELMD=1 TAPER=102 mA                                           
         IMLC=1028 mA                                                    
Nokia-N900-02-8:~# bin/bq27200.sh 30
LOOPMODE=30                         
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
20:40 4132 92   92   413  1428 1428 1428 27    65535 25  0        
20:40 4137 92   92   396  1431 1431 1431 27    65535 25  0        
20:41 4140 92   92   383  1434 1434 1434 27    65535 25  0        
20:41 4140 92   92   373  1437 1437 1437 27    65535 25  0        
20:42 4148 93   93   402  1440 1440 1440 27    65535 25  0        
20:42 4150 93   93   394  1444 1444 1444 24    65535 24  0        
20:43 4150 93   93   386  1447 1447 1447 24    65535 24  0        
20:43 4153 93   93   378  1450 1450 1450 24    65535 24  0        
20:44 4153 93   93   371  1453 1453 1453 24    65535 24  0        
20:44 4153 94   94   366  1456 1456 1456 22    65535 24  0        
20:45 4145 94   94   340  1459 1459 1459 22    65535 24  0        
20:45 4153 94   94   354  1462 1462 1462 22    65535 24  0        
20:46 4156 94   94   350  1465 1465 1465 22    65535 24  0        
20:46 4156 94   94   345  1468 1468 1468 21    65535 24  0        
20:47 4156 95   95   339  1471 1471 1471 21    65535 24  0        
20:47 4156 95   95   334  1474 1474 1474 21    65535 24  0        
20:48 4158 95   95   329  1476 1476 1476 21    65535 24  0        
20:48 4158 95   95   324  1479 1479 1479 19    65535 24  0        
20:49 4158 95   95   319  1482 1482 1482 19    65535 24  0        
20:49 4158 96   96   315  1484 1484 1484 19    65535 24  0        
20:50 4161 96   96   310  1487 1487 1487 18    65535 24  0        
20:50 4161 96   96   306  1489 1489 1489 18    65535 24  0        
20:51 4161 96   96   301  1492 1492 1492 18    65535 24  0        
20:51 4161 96   96   297  1494 1494 1494 16    65535 24  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
20:52 4161 96   96   292  1497 1497 1497 16    65535 24  0        
20:52 4164 96   96   289  1499 1499 1499 16    65535 24  0        
20:53 4164 97   97   284  1502 1502 1502 15    65535 24  0        
20:53 4164 97   97   280  1504 1504 1504 15    65535 24  0        
20:54 4164 97   97   276  1506 1506 1506 15    65535 24  0        
20:54 4164 97   97   272  1509 1509 1509 13    65535 24  0        
20:55 4164 97   97   268  1511 1511 1511 13    65535 24  0        
20:55 4166 97   97   265  1513 1513 1513 13    65535 24  0        
20:56 4166 97   97   261  1515 1515 1515 12    65535 24  0        
20:56 4166 98   98   257  1517 1517 1517 12    65535 24  0        
20:57 4166 98   98   253  1520 1520 1520 12    65535 24  0        
20:58 4166 98   98   250  1522 1522 1522 10    65535 24  0        
20:58 4166 98   98   245  1524 1524 1524 10    65535 24  0        
20:59 4169 98   98   244  1526 1526 1526 9     65535 24  0        
20:59 4169 98   98   240  1528 1528 1528 9     65535 24  0        
21:00 4169 98   98   236  1530 1530 1530 9     65535 24  0        
21:00 4166 99   99   200  1531 1531 1531 12    65535 25  0        
21:01 4169 99   99   231  1533 1533 1533 7     65535 24  0        
21:01 4169 99   99   228  1535 1535 1535 6     65535 24  0        
21:02 4169 99   99   224  1537 1537 1537 6     65535 24  0        
21:02 4169 99   99   217  1539 1539 1539 4     65535 24  0        
21:03 4172 99   99   218  1541 1541 1541 4     65535 24  0        
21:03 4172 99   99   214  1543 1543 1543 4     65535 24  0        
21:04 4172 99   99   211  1544 1544 1544 3     65535 24  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
21:04 4172 100  100  207  1546 1546 1546 3     65535 24  0        
21:05 4172 100  100  205  1548 1548 1548 1     65535 24  0        
21:05 4172 100  100  202  1550 1550 1550 1     65535 24  0        
21:06 4172 100  100  199  1551 1551 1551 0     65535 24  0        
21:06 4174 100  100  197  1553 1553 1553 0     65535 24  0        
21:07 4174 100  100  194  1553 1553 1553 0     65535 24  0        
21:07 4174 100  100  191  1553 1553 1553 0     65535 24  0        
21:08 4174 100  100  188  1553 1553 1553 0     65535 24  0        
21:08 4174 100  100  186  1553 1553 1553 0     65535 24  0        
21:09 4174 100  100  184  1553 1553 1553 0     65535 24  0        
21:09 4174 100  100  181  1553 1553 1553 0     65535 24  0        
21:10 4177 100  100  179  1553 1553 1553 0     65535 24  0        
21:10 4177 100  100  176  1553 1553 1553 0     65535 24  0        
21:11 4177 100  100  172  1553 1553 1553 0     65535 24  0        
21:11 4177 100  100  171  1553 1553 1553 0     65535 24  0        
21:12 4177 100  100  168  1553 1553 1553 0     65535 24  0        
21:12 4177 100  100  166  1553 1553 1553 0     65535 24  0        
21:13 4177 100  100  164  1553 1553 1553 0     65535 24  0        
21:13 4177 100  100  162  1553 1553 1553 0     65535 24  0        
21:14 4177 100  100  159  1553 1553 1553 0     65535 24  0        
21:14 4177 100  100  156  1553 1553 1553 0     65535 24  0        
21:15 4177 100  100  155  1553 1553 1553 0     65535 24  0        
21:15 4180 100  100  153  1553 1553 1553 0     65535 24  0        
21:16 4180 100  100  152  1553 1553 1553 0     65535 24  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
21:16 4180 100  100  149  1553 1553 1553 0     65535 24  0        
21:17 4180 100  100  147  1553 1553 1553 0     65535 24  0        
21:17 4180 100  100  145  1553 1553 1553 0     65535 24  0        
21:18 4180 100  100  143  1553 1553 1553 0     65535 24  0        
21:18 4180 100  100  141  1553 1553 1553 0     65535 24  0        
21:19 4180 100  100  139  1553 1553 1553 0     65535 24  0        
21:19 4180 100  100  136  1553 1553 1553 0     65535 24  0        
21:20 4180 100  100  135  1553 1553 1553 0     65535 24  0        
21:20 4180 100  100  133  1553 1553 1553 0     65535 24  0        
21:21 4182 100  100  132  1553 1553 1553 0     65535 24  0        
21:21 4182 100  100  130  1553 1553 1553 0     65535 24  0        
21:22 4182 100  100  128  1553 1553 1553 0     65535 24  0        
21:22 4182 100  100  126  1553 1553 1553 0     65535 24  0        
21:23 4182 100  100  124  1553 1553 1553 0     65535 24  0        
21:23 4182 100  100  123  1553 1553 1553 0     65535 24  0        
21:24 4182 100  100  122  1553 1553 1553 0     65535 24  0        
21:24 4182 100  100  120  1553 1553 1553 0     65535 24  0        
21:25 4182 100  100  118  1553 1553 1553 0     65535 24  0        
21:25 4182 100  100  117  1553 1553 1553 0     65535 24  0        
21:26 4182 100  100  116  1553 1553 1553 0     65535 24  0        
21:26 4182 100  100  113  1553 1553 1553 0     65535 24  0        
21:27 4182 100  100  111  1553 1553 1553 0     65535 24  0        
21:27 4182 100  100  110  1553 1553 1553 0     65535 24  0        
21:28 4182 100  100  109  1553 1553 1553 0     65535 24  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
21:28 4185 100  100  107  1553 1553 1553 0     65535 24  0        
21:29 4185 100  100  106  1553 1553 1553 0     65535 24  0        
21:29 4185 100  100  106  1553 1553 1553 0     65535 24  0        
21:30 4174 100  100  93   1553 1553 1553 0     65535 24  0        
21:30 4185 100  100  103  1553 1553 1553 0     65535 24  0        
21:31 4185 100  100  101  1553 1553 1553 0     65535 24  0        
21:31 4185 100  100  100  1553 1553 1553 0     65535 24  0        
21:32 4185 100  100  99   1553 1553 1553 0     65535 24  0        
21:32 4185 100  100  98   1553 1553 1553 0     65535 24  0        
21:33 4185 100  100  96   1553 1553 1553 0     65535 24  0        
21:33 4185 100  100  95   1553 1553 1553 0     65535 24  0        
21:34 4185 100  100  93   1553 1553 1553 0     65535 24  0        
21:34 4185 100  100  93   1553 1553 1553 0     65535 24  0        
21:35 4158 100  100  -11  1553 1553 1553 65535 8290  24  0        
21:35 4158 100  100  -11  1553 1553 1553 65535 8290  24  0        
21:36 4156 100  100  -13  1553 1553 1553 65535 6871  24  0        
21:36 4156 100  100  -12  1553 1553 1553 65535 7567  24  0        
21:37 4156 100  100  -10  1553 1553 1553 65535 8702  24  0        
21:37 4153 100  100  -12  1553 1553 1553 65535 7677  23  0        
21:38 4153 100  100  -12  1552 1552 1552 65535 9667  23  0        
21:38 4153 100  100  -11  1552 1552 1552 65535 8031  23  0        
21:39 4150 100  100  -14  1552 1552 1552 65535 6214  23  0        
21:39 4150 100  100  -11  1552 1552 1552 65535 8154  23  0        
21:40 4150 100  100  -13  1552 1552 1552 65535 6958  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
21:40 4150 100  100  -9   1552 1552 1552 65535 9317  23  0        
21:41 4150 100  100  -12  1552 1552 1552 65535 7349  23  0        
21:41 4150 100  100  -13  1552 1552 1552 65535 8842  23  0        
21:42 4150 100  100  -12  1551 1551 1551 65535 7560  23  0        
21:42 4148 100  100  -14  1551 1551 1551 65535 6440  23  0        
21:43 4148 100  100  -12  1551 1551 1551 65535 7670  23  0        
21:43 4148 100  100  -12  1551 1551 1551 65535 7345  23  0        
21:44 4148 100  100  -12  1551 1551 1551 65535 7345  23  0        
21:44 4148 100  100  -10  1551 1551 1551 65535 8549  23  0        
21:45 4148 100  100  -10  1551 1551 1551 65535 8276  23  0        
21:45 4148 100  100  -10  1550 1550 1550 65535 8836  23  0        
21:46 4148 100  100  -10  1550 1550 1550 65535 8546  23  0        
21:46 4148 100  100  -9   1550 1550 1550 65535 10220 23  0        
21:47 4148 100  100  -11  1550 1550 1550 65535 8406  23  0        
21:47 4148 100  100  -10  1550 1550 1550 65535 8686  23  0        
21:48 4145 100  100  -9   1550 1550 1550 65535 10021 23  0        
21:48 4145 100  100  -11  1550 1550 1550 65535 8405  23  0        
21:49 4148 100  100  -9   1550 1550 1550 65535 9304  23  0        
21:49 4145 100  100  -10  1549 1549 1549 65535 8541  23  0        
21:50 4145 100  100  -11  1549 1549 1549 65535 8139  23  0        
21:50 4145 100  100  -10  1549 1549 1549 65535 8540  23  0        
21:51 4145 100  100  -11  1549 1549 1549 65535 8138  23  0        
21:51 4145 100  100  -11  1549 1549 1549 65535 8400  23  0        
21:52 4145 100  100  -11  1549 1549 1549 65535 7773  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
21:52 4142 100  100  -12  1549 1549 1549 65535 10014 23  0        
21:53 4142 100  100  -12  1549 1549 1549 65535 7232  23  0        
21:53 4142 100  100  -10  1548 1548 1548 65535 8678  23  0        
21:54 4145 100  100  -10  1548 1548 1548 65535 8535  23  0        
21:54 4145 100  100  -12  1548 1548 1548 65535 7655  23  0        
21:55 4145 100  100  -12  1548 1548 1548 65535 7331  23  0        
21:55 4142 100  100  -11  1548 1548 1548 65535 7769  23  0        
21:56 4142 100  100  -12  1548 1548 1548 65535 8261  23  0        
21:56 4142 100  100  -12  1548 1548 1548 65535 7329  23  0        
21:57 4142 100  100  -13  1548 1548 1548 65535 7128  23  0        
21:57 4142 100  100  -12  1547 1547 1547 65535 7541  23  0        
21:58 4142 100  100  -13  1547 1547 1547 65535 7127  23  0        
21:58 4142 100  100  -11  1547 1547 1547 65535 8003  23  0        
21:59 4142 100  100  -10  1547 1547 1547 65535 8528  23  0        
21:59 4142 100  100  -11  1547 1547 1547 65535 7881  23  0        
22:00 4142 100  100  -10  1547 1547 1547 65535 9287  23  0        
22:00 4140 100  100  -11  1546 1546 1546 65535 7759  24  0        
22:01 4140 100  100  -10  1546 1546 1546 65535 8522  23  0        
22:01 4140 100  100  -12  1546 1546 1546 65535 7644  23  0        
22:02 4140 99   99   -10  1546 1546 1546 65535 8520  23  0        
22:02 4140 99   99   -9   1545 1545 1545 65535 9280  23  0        
22:03 4140 99   99   -11  1545 1545 1545 65535 7995  23  0        
22:03 4140 99   99   -11  1545 1545 1545 65535 8660  23  0        
22:04 4137 99   99   -11  1545 1545 1545 65535 8118  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
22:05 4140 99   99   -15  1545 1545 1545 65535 5837  23  0        
22:05 4140 99   99   -10  1545 1545 1545 65535 8804  23  0        
22:06 4140 99   99   -13  1545 1545 1545 65535 6834  23  0        
22:06 4140 99   99   -13  1545 1545 1545 65535 7115  23  0        
22:07 4140 99   99   -12  1544 1544 1544 65535 7419  23  0        
22:07 4140 99   99   -12  1544 1544 1544 65535 7418  23  0        
22:08 4140 99   99   -12  1544 1544 1544 65535 6743  23  0        
22:08 4140 99   99   -13  1544 1544 1544 65535 6922  23  0        
22:09 4140 99   99   -11  1544 1544 1544 65535 7865  23  0        
22:09 4140 99   99   -11  1544 1544 1544 65535 7986  23  0        
22:10 4140 99   99   -14  1544 1544 1544 65535 6330  23  0        
22:10 4137 99   99   -20  1544 1544 1544 65535 4553  23  0        
22:11 4140 99   99   -12  1543 1543 1543 65535 7521  23  0        
22:11 4137 99   99   -12  1543 1543 1543 65535 8108  23  0        
22:12 4137 99   99   -11  1543 1543 1543 65535 8108  23  0        
22:12 4137 99   99   -13  1543 1543 1543 65535 6827  23  0        
22:13 4137 99   99   -11  1543 1543 1543 65535 8106  23  0        
22:13 4137 99   99   -12  1543 1543 1543 65535 7306  23  0        
22:14 4137 99   99   -10  1543 1543 1543 65535 8645  23  0        
22:14 4137 99   99   -11  1542 1542 1542 65535 7858  23  0        
22:15 4137 99   99   -12  1542 1542 1542 65535 8643  23  0        
22:15 4137 99   99   -68  1542 1542 1542 65535 1343  23  0        
22:16 4137 99   99   -11  1542 1542 1542 65535 7855  23  0        
22:16 4137 99   99   -19  1542 1542 1542 65535 4845  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
22:17 4137 99   99   -11  1542 1542 1542 65535 7737  23  0        
22:17 4137 99   99   -10  1542 1542 1542 65535 8497  23  0        
22:18 4137 99   99   -12  1541 1541 1541 65535 7622  23  0        
22:18 4137 99   99   -11  1541 1541 1541 65535 8098  23  0        
22:19 4137 99   99   -11  1541 1541 1541 65535 8495  23  0        
22:19 4134 99   99   -12  1541 1541 1541 65535 7402  23  0        
22:20 4134 99   99   -10  1541 1541 1541 65535 8781  23  0        
22:20 4137 99   99   -11  1541 1541 1541 65535 7733  23  0        
22:21 4137 99   99   -11  1541 1541 1541 65535 7849  23  0        
22:21 4137 99   99   -10  1540 1540 1540 65535 8633  23  0        
22:22 4137 99   99   -11  1540 1540 1540 65535 7617  23  0        
22:22 4137 99   99   -11  1540 1540 1540 65535 6474  23  0        
22:23 4134 99   99   -12  1540 1540 1540 65535 7193  23  0        
22:23 4137 99   99   -11  1540 1540 1540 65535 8091  23  0        
22:24 4137 99   99   -12  1540 1540 1540 65535 7504  23  0        
22:24 4134 99   99   -12  1540 1540 1540 65535 7503  23  0        
22:25 4134 99   99   -10  1540 1540 1540 65535 8628  23  0        
22:25 4134 99   99   -11  1540 1540 1540 65535 8089  23  0        
22:26 4134 99   99   -10  1539 1539 1539 65535 8486  23  0        
22:26 4134 99   99   -10  1539 1539 1539 65535 8485  23  0        
22:27 4134 99   99   -12  1539 1539 1539 65535 7500  23  0        
22:27 4134 99   99   -9   1539 1539 1539 65535 9241  23  0        
22:28 4134 99   99   -12  1539 1539 1539 65535 7499  23  0        
22:28 4134 99   99   -11  1539 1539 1539 65535 8345  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
22:29 4134 99   99   -13  1539 1539 1539 65535 6808  23  0        
22:29 4134 99   99   -12  1539 1539 1539 65535 8211  23  0        
22:30 4134 99   99   -14  1538 1538 1538 65535 6466  23  0        
22:30 4134 99   99   -12  1538 1538 1538 65535 7605  23  0        
22:31 4132 99   99   -11  1538 1538 1538 65535 8080  23  0        
22:31 4134 99   99   -11  1538 1538 1538 65535 8340  23  0        
22:32 4134 99   99   -11  1538 1538 1538 65535 7834  23  0        
22:32 4132 99   99   -11  1537 1537 1537 65535 8078  23  0        
22:33 4134 99   99   -11  1537 1537 1537 65535 7953  23  0        
22:33 4134 99   99   -10  1537 1537 1537 65535 9068  23  0        
22:34 4132 99   99   -12  1537 1537 1537 65535 7601  23  0        
22:34 4132 99   99   -11  1537 1537 1537 65535 8203  23  0        
22:35 4134 99   99   -11  1537 1537 1537 65535 8335  23  0        
22:35 4132 99   99   -11  1537 1537 1537 65535 7950  23  0        
22:36 4132 99   99   -10  1537 1537 1537 65535 8908  23  0        
22:36 4132 99   99   -11  1537 1537 1537 65535 7828  23  0        
22:37 4132 99   99   -11  1536 1536 1536 65535 8907  23  0        
22:37 4132 99   99   -11  1536 1536 1536 65535 7826  23  0        
22:38 4132 99   99   -10  1536 1536 1536 65535 8468  23  0        
22:38 4132 99   99   -11  1536 1536 1536 65535 8070  23  0        
22:39 4132 99   99   -11  1536 1536 1536 65535 8329  23  0        
22:39 4132 99   99   -14  1536 1536 1536 65535 6222  23  0        
22:40 4132 99   99   -14  1536 1536 1536 65535 6297  23  0        
22:40 4132 99   99   -11  1535 1535 1535 65535 8605  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
22:41 4132 99   99   -11  1535 1535 1535 65535 8066  23  0        
22:41 4132 99   99   -11  1535 1535 1535 65535 7705  23  0        
22:42 4132 99   99   -9   1535 1535 1535 65535 9559  23  0        
22:42 4132 99   99   -12  1535 1535 1535 65535 7373  23  0        
22:43 4132 99   99   -10  1535 1535 1535 65535 8461  23  0        
22:43 4132 99   99   -10  1535 1535 1535 65535 8898  23  0        
22:44 4132 99   99   -11  1535 1535 1535 65535 7938  23  0        
22:44 4132 99   99   -11  1534 1534 1534 65535 8323  23  0        
22:45 4129 99   99   -11  1534 1534 1534 65535 8062  23  0        
22:45 4129 99   99   -12  1534 1534 1534 65535 7164  23  0        
22:46 4129 99   99   -10  1534 1534 1534 65535 8456  23  0        
22:46 4132 99   99   -11  1534 1534 1534 65535 8059  23  0        
22:47 4132 99   99   -9   1534 1534 1534 65535 9209  23  0        
22:47 4129 99   99   -10  1534 1534 1534 65535 8454  23  0        
22:48 4132 99   99   -10  1534 1534 1534 65535 8453  23  0        
22:48 4129 99   99   -13  1533 1533 1533 65535 7812  23  0        
22:49 4129 99   99   -11  1533 1533 1533 65535 7931  23  0        
22:49 4132 99   99   -9   1533 1533 1533 65535 9547  23  0        
22:50 4129 99   99   -11  1533 1533 1533 65535 7693  23  0        
22:50 4129 99   99   -10  1533 1533 1533 65535 8449  23  0        
22:51 4129 99   99   -11  1533 1533 1533 65535 7808  23  0        
22:51 4129 99   99   -11  1533 1533 1533 65535 8312  23  0        
22:52 4129 99   99   -12  1532 1532 1532 65535 6062  23  0        
22:52 4129 99   99   -10  1532 1532 1532 65535 8587  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
22:53 4129 99   99   -10  1532 1532 1532 65535 9039  23  0        
22:53 4129 99   99   -10  1532 1532 1532 65535 8732  23  0        
22:54 4129 99   99   -11  1532 1532 1532 65535 7925  23  0        
22:54 4129 99   99   -9   1532 1532 1532 65535 9539  23  0        
22:55 4129 99   99   -11  1532 1532 1532 65535 8048  23  0        
22:55 4129 99   99   -11  1532 1532 1532 65535 8306  23  0        
22:56 4126 99   99   -11  1531 1531 1531 65535 7463  23  0        
22:56 4129 99   99   -10  1531 1531 1531 65535 8582  23  0        
22:57 4129 99   99   -11  1531 1531 1531 65535 8045  23  0        
22:57 4126 99   99   -10  1531 1531 1531 65535 8580  23  0        
22:58 4129 99   99   -10  1531 1531 1531 65535 8580  23  0        
22:58 4126 99   99   -11  1531 1531 1531 65535 8170  23  0        
22:59 4129 99   99   -11  1531 1531 1531 65535 7918  23  0        
22:59 4129 99   99   -10  1530 1530 1530 65535 8301  23  0        
23:00 4129 98   98   -12  1530 1530 1530 65535 7568  23  0        
23:00 4097 98   98   -185 1530 1530 1530 65535 496   24  0        
23:01 4126 98   98   -11  1529 1529 1529 65535 7676  23  0        
23:01 4126 98   98   -11  1529 1529 1529 65535 7791  23  0        
23:02 4126 98   98   -13  1529 1529 1529 65535 6856  23  0        
23:02 4126 98   98   -20  1529 1529 1529 65535 4394  23  0        
23:03 4126 98   98   -10  1529 1529 1529 65535 8568  23  0        
23:03 4126 98   98   -10  1529 1529 1529 65535 8427  23  0        
23:04 4126 98   98   -10  1529 1529 1529 65535 9018  23  0        
23:04 4126 98   98   -11  1529 1529 1529 65535 7907  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
23:05 4126 98   98   -11  1528 1528 1528 65535 8289  23  0        
23:05 4126 98   98   -10  1528 1528 1528 65535 8424  23  0        
23:06 4126 98   98   -10  1528 1528 1528 65535 8424  23  0        
23:06 4126 98   98   -12  1528 1528 1528 65535 8858  23  0        
23:07 4126 98   98   -11  1528 1528 1528 65535 7784  23  0        
23:07 4126 98   98   -11  1528 1528 1528 65535 7784  23  0        
23:08 4126 98   98   -11  1528 1528 1528 65535 8026  23  0        
23:08 4126 98   98   -12  1527 1527 1527 65535 7553  23  0        
23:09 4126 98   98   -10  1527 1527 1527 65535 8705  23  0        
23:09 4126 98   98   -12  1527 1527 1527 65535 7552  23  0        
23:10 4121 98   98   -22  1527 1527 1527 65535 8150  23  0        
23:10 4126 98   98   -12  1527 1527 1527 65535 7551  23  0        
23:11 4126 98   98   -11  1527 1527 1527 65535 7779  23  0        
23:11 4126 98   98   -11  1527 1527 1527 65535 8280  23  0        
23:12 4124 98   98   -11  1527 1527 1527 65535 8020  23  0        
23:13 4126 98   98   -11  1527 1527 1527 65535 8020  23  0        
23:13 4124 98   98   -11  1526 1526 1526 65535 8278  23  0        
23:14 4124 98   98   -11  1526 1526 1526 65535 7659  23  0        
23:14 4126 98   98   -11  1526 1526 1526 65535 6183  23  0        
23:15 4124 98   98   -11  1526 1526 1526 65535 7775  23  0        
23:15 4089 98   98   -10  1526 1526 1526 65535 8846  23  0        
23:16 4124 98   98   -11  1526 1526 1526 65535 8274  23  0        
23:16 4124 98   98   -22  1525 1525 1525 65535 4007  23  0        
23:17 4124 98   98   -10  1525 1525 1525 65535 8694  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
23:17 4124 98   98   -11  1525 1525 1525 65535 7655  23  0        
23:18 4124 98   98   -12  1525 1525 1525 65535 8013  23  0        
23:18 4124 98   98   -12  1525 1525 1525 65535 7541  23  0        
23:19 4124 98   98   -11  1525 1525 1525 65535 7653  23  0        
23:19 4124 98   98   -12  1525 1525 1525 65535 7324  23  0        
23:20 4124 98   98   -12  1525 1525 1525 65535 7220  23  0        
23:20 4124 98   98   -10  1525 1525 1525 65535 8404  23  0        
23:21 4124 98   98   -13  1524 1524 1524 65535 7022  23  0        
23:21 4124 98   98   -12  1524 1524 1524 65535 7219  23  0        
23:22 4124 98   98   -12  1524 1524 1524 65535 7428  23  0        
23:22 4124 98   98   -22  1524 1524 1524 65535 4004  23  0        
23:23 4124 98   98   -9   1524 1524 1524 65535 9316  23  0        
23:23 4124 98   98   -12  1524 1524 1524 65535 7534  23  0        
23:24 4124 98   98   -12  1524 1524 1524 65535 7319  23  0        
23:24 4124 98   98   -12  1524 1524 1524 65535 7318  23  0        
23:25 4124 98   98   -11  1523 1523 1523 65535 7645  23  0        
23:25 4121 98   98   -11  1523 1523 1523 65535 7880  23  0        
23:26 4124 98   98   -12  1523 1523 1523 65535 7532  23  0        
23:26 4124 98   98   -10  1523 1523 1523 65535 8395  23  0        
23:27 4124 98   98   -11  1523 1523 1523 65535 7878  23  0        
23:27 4124 98   98   -11  1523 1523 1523 65535 7758  23  0        
23:28 4121 98   98   -10  1523 1523 1523 65535 8678  23  0        
23:28 4121 98   98   -11  1522 1522 1522 65535 7756  23  0        
23:29 4121 98   98   -12  1522 1522 1522 65535 8677  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
23:29 4121 98   98   -12  1522 1522 1522 65535 7418  23  0        
23:30 4121 98   98   -13  1522 1522 1522 65535 6916  23  0        
23:30 4121 98   98   -93  1522 1522 1522 65535 973   23  0        
23:31 4121 98   98   -11  1522 1522 1522 65535 7752  23  0        
23:31 4121 98   98   -10  1521 1521 1521 65535 8526  23  0        
23:32 4121 98   98   -12  1521 1521 1521 65535 7205  23  0        
23:32 4121 98   98   -20  1521 1521 1521 65535 4448  23  0        
23:33 4121 98   98   -11  1521 1521 1521 65535 7633  23  0        
23:33 4121 98   98   -12  1521 1521 1521 65535 7305  23  0        
23:34 4121 98   98   -11  1521 1521 1521 65535 8117  23  0        
23:34 4121 98   98   -11  1521 1521 1521 65535 8247  23  0        
23:35 4121 98   98   -12  1520 1520 1520 65535 7201  23  0        
23:35 4121 98   98   -12  1520 1520 1520 65535 7100  23  0        
23:36 4121 98   98   -12  1520 1520 1520 65535 7200  23  0        
23:36 4121 98   98   -9   1520 1520 1520 65535 7864  23  0        
23:37 4118 98   98   -11  1520 1520 1520 65535 7863  23  0        
23:37 4121 98   98   -10  1520 1520 1520 65535 8966  23  0        
23:38 4121 98   98   -12  1520 1520 1520 65535 7300  23  0        
23:38 4121 98   98   -11  1520 1520 1520 65535 8241  23  0        
23:39 4118 98   98   -11  1520 1520 1520 65535 7861  23  0        
23:39 4118 98   98   -11  1519 1519 1519 65535 8240  23  0        
23:40 4121 98   98   -11  1519 1519 1519 65535 8658  23  0        
23:40 4118 98   98   -11  1519 1519 1519 65535 8238  23  0        
23:41 4118 98   98   -10  1519 1519 1519 65535 8513  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
23:41 4121 98   98   -12  1519 1519 1519 65535 7511  23  0        
23:42 4118 98   98   -11  1519 1519 1519 65535 7856  23  0        
23:42 4118 98   98   -10  1519 1519 1519 65535 8804  23  0        
23:43 4118 98   98   -11  1519 1519 1519 65535 8235  23  0        
23:43 4118 98   98   -12  1518 1518 1518 65535 7508  23  0        
23:44 4118 98   98   -10  1518 1518 1518 65535 7854  23  0        
23:44 4118 98   98   -11  1518 1518 1518 65535 7976  23  0        
23:45 4118 98   98   -9   1518 1518 1518 65535 9115  23  0        
23:45 4118 98   98   -11  1518 1518 1518 65535 7617  23  0        
23:46 4118 98   98   -10  1518 1518 1518 65535 8798  23  0        
23:46 4118 98   98   -11  1517 1517 1517 65535 7731  23  0        
23:47 4118 98   98   -10  1517 1517 1517 65535 8364  23  0        
23:47 4118 98   98   -10  1517 1517 1517 65535 8647  23  0        
23:48 4118 98   98   -11  1517 1517 1517 65535 8228  23  0        
23:48 4118 98   98   -11  1517 1517 1517 65535 8227  23  0        
23:49 4118 98   98   -11  1517 1517 1517 65535 8096  23  0        
23:49 4118 98   98   -11  1517 1517 1517 65535 7727  23  0        
23:50 4118 98   98   -11  1517 1517 1517 65535 7611  23  0        
23:50 4118 98   98   -11  1517 1517 1517 65535 7726  23  0        
23:51 4118 98   98   -9   1516 1516 1516 65535 9105  23  0        
23:51 4118 98   98   -10  1516 1516 1516 65535 8092  23  0        
23:52 4118 98   98   -11  1516 1516 1516 65535 7725  23  0        
23:52 4118 98   98   -11  1516 1516 1516 65535 7842  23  0        
23:53 4118 98   98   -11  1516 1516 1516 65535 7964  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
23:53 4116 98   98   -9   1516 1516 1516 65535 9101  23  0        
23:54 4116 98   98   -12  1516 1516 1516 65535 7386  23  0        
23:54 4118 98   98   -11  1516 1516 1516 65535 7962  23  0        
23:55 4116 97   97   -10  1515 1515 1515 65535 8218  23  0        
23:55 4118 97   97   -11  1515 1515 1515 65535 8218  23  0        
23:56 4116 97   97   -11  1515 1515 1515 65535 8217  23  0        
23:56 4118 97   97   -10  1515 1515 1515 65535 8490  23  0        
23:57 4116 97   97   -10  1515 1515 1515 65535 8937  23  0        
23:57 4118 97   97   -10  1515 1515 1515 65535 8489  23  0        
23:58 4116 97   97   -11  1515 1515 1515 65535 7716  23  0        
23:58 4116 97   97   -9   1514 1514 1514 65535 7601  23  0        
23:59 4116 97   97   -11  1514 1514 1514 65535 7957  23  0        
23:59 4116 97   97   -11  1514 1514 1514 65535 7956  23  0        
00:00 4116 97   97   -11  1514 1514 1514 65535 7832  23  0        
00:00 4113 97   97   -10  1513 1513 1513 65535 8481  24  0        
00:01 4116 97   97   -12  1513 1513 1513 65535 7482  23  0        
00:01 4116 97   97   -10  1513 1513 1513 65535 8479  23  0        
00:02 4116 97   97   -10  1513 1513 1513 65535 8479  23  0        
00:02 4113 97   97   -11  1513 1513 1513 65535 4348  23  0        
00:03 4116 97   97   -9   1513 1513 1513 65535 9781  23  0        
00:03 4116 97   97   -11  1512 1512 1512 65535 7947  23  0        
00:04 4116 97   97   -11  1512 1512 1512 65535 7946  23  0        
00:04 4113 97   97   -9   1512 1512 1512 65535 9080  23  0        
00:05 4116 97   97   -12  1512 1512 1512 65535 7477  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
00:05 4116 97   97   -12  1512 1512 1512 65535 7369  23  0        
00:06 4116 97   97   -11  1512 1512 1512 65535 8200  23  0        
00:06 4116 97   97   -11  1512 1512 1512 65535 7702  23  0        
00:07 4113 97   97   -11  1512 1512 1512 65535 8199  23  0        
00:07 4116 97   97   -10  1512 1512 1512 65535 8471  23  0        
00:08 4113 97   97   -10  1511 1511 1511 65535 8331  23  0        
00:08 4113 97   97   -13  1511 1511 1511 65535 6686  23  0        
00:09 4113 97   97   -11  1511 1511 1511 65535 7699  23  0        
00:09 4116 97   97   -11  1511 1511 1511 65535 8468  23  0        
00:10 4110 97   97   -11  1511 1511 1511 65535 7816  23  0        
00:10 4113 97   97   -10  1511 1511 1511 65535 8912  23  0        
00:11 4113 97   97   -11  1511 1511 1511 65535 7815  23  0        
00:11 4113 97   97   -11  1511 1511 1511 65535 7581  23  0        
00:12 4113 97   97   -12  1510 1510 1510 65535 7468  23  0        
00:12 4113 97   97   -11  1510 1510 1510 65535 7695  23  0        
00:13 4113 97   97   -10  1510 1510 1510 65535 7812  23  0        
00:13 4113 97   97   -11  1510 1510 1510 65535 8189  23  0        
00:14 4113 97   97   -10  1510 1510 1510 65535 8323  23  0        
00:14 4113 97   97   -11  1510 1510 1510 65535 8058  23  0        
00:15 4113 97   97   -11  1510 1510 1510 65535 7809  23  0        
00:15 4113 97   97   -10  1509 1509 1509 65535 8320  23  0        
00:16 4110 97   97   -20  1509 1509 1509 65535 4491  23  0        
00:16 4113 97   97   -11  1509 1509 1509 65535 8903  23  0        
00:17 4113 97   97   -12  1509 1509 1509 65535 7249  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
00:17 4113 97   97   -11  1509 1509 1509 65535 7928  23  0        
00:18 4113 97   97   -11  1509 1509 1509 65535 7805  23  0        
00:18 4113 97   97   -11  1509 1509 1509 65535 7686  23  0        
00:19 4113 97   97   -9   1509 1509 1509 65535 9058  23  0        
00:20 4110 97   97   -10  1508 1508 1508 65535 8314  23  0        
00:20 4113 97   97   -12  1508 1508 1508 65535 7459  23  0        
00:21 4113 97   97   -9   1508 1508 1508 65535 7245  23  0        
00:21 4113 97   97   -11  1508 1508 1508 65535 7568  23  0        
00:22 4113 97   97   -10  1508 1508 1508 65535 8896  23  0        
00:22 4110 97   97   -22  1508 1508 1508 65535 4089  23  0        
00:23 4113 97   97   -10  1508 1508 1508 65535 8310  23  0        
00:23 4110 97   97   -11  1507 1507 1507 65535 7680  23  0        
00:24 4113 97   97   -11  1507 1507 1507 65535 7920  23  0        
00:24 4110 97   97   -10  1507 1507 1507 65535 7919  23  0        
00:25 4113 97   97   -11  1507 1507 1507 65535 7678  23  0        
00:25 4110 97   97   -10  1507 1507 1507 65535 8308  23  0        
00:26 4110 97   97   -12  1507 1507 1507 65535 7451  23  0        
00:26 4110 97   97   -10  1507 1507 1507 65535 8306  23  0        
00:27 4113 97   97   -9   1507 1507 1507 65535 9212  23  0        
00:27 4110 97   97   -12  1507 1507 1507 65535 7036  23  0        
00:28 4110 97   97   -11  1506 1506 1506 65535 7793  23  0        
00:28 4110 97   97   -21  1506 1506 1506 65535 4186  23  0        
00:29 4110 97   97   -11  1506 1506 1506 65535 7674  23  0        
00:29 4110 97   97   -11  1506 1506 1506 65535 8038  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
00:30 4110 97   97   -13  1506 1506 1506 65535 6663  23  0        
00:30 4073 97   97   -136 1506 1506 1506 65535 664   23  0        
00:31 4110 97   97   -11  1506 1506 1506 65535 7910  23  0        
00:31 4110 97   97   -11  1505 1505 1505 65535 7669  23  0        
00:32 4110 97   97   -11  1505 1505 1505 65535 7030  23  0        
00:32 4110 97   97   -11  1505 1505 1505 65535 7554  23  0        
00:33 4110 97   97   -12  1505 1505 1505 65535 7442  23  0        
00:33 4110 97   97   -12  1505 1505 1505 65535 7228  23  0        
00:34 4110 97   97   -11  1505 1505 1505 65535 7783  23  0        
00:34 4108 97   97   -12  1505 1505 1505 65535 7126  23  0        
00:35 4110 97   97   -11  1504 1504 1504 65535 7904  23  0        
00:35 4110 97   97   -9   1504 1504 1504 65535 6744  23  0        
00:36 4110 97   97   -11  1504 1504 1504 65535 8158  23  0        
00:36 4110 97   97   -10  1504 1504 1504 65535 8291  23  0        
00:37 4110 97   97   -11  1504 1504 1504 65535 7901  23  0        
00:37 4110 97   97   -11  1504 1504 1504 65535 8027  23  0        
00:38 4110 97   97   -9   1504 1504 1504 65535 9029  23  0        
00:38 4108 97   97   -11  1504 1504 1504 65535 8025  23  0        
00:39 4108 97   97   -11  1504 1504 1504 65535 9192  23  0        
00:39 4110 97   97   -11  1503 1503 1503 65535 7898  23  0        
00:40 4108 97   97   -11  1503 1503 1503 65535 7544  23  0        
00:40 4110 97   97   -11  1503 1503 1503 65535 7657  23  0        
00:41 4110 97   97   -11  1503 1503 1503 65535 7897  23  0        
00:41 4108 97   97   -9   1503 1503 1503 65535 9024  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
00:42 4108 97   97   -12  1503 1503 1503 65535 7323  23  0        
00:42 4108 97   97   -10  1503 1503 1503 65535 8421  23  0        
00:43 4108 97   97   -10  1502 1502 1502 65535 8563  23  0        
00:43 4108 97   97   -11  1502 1502 1502 65535 7771  23  0        
00:44 4108 97   97   -9   1502 1502 1502 65535 9531  23  0        
00:44 4108 97   97   -11  1502 1502 1502 65535 8146  23  0        
00:45 4108 97   97   -11  1502 1502 1502 65535 7652  23  0        
00:45 4105 97   97   -95  1502 1502 1502 65535 946   23  0        
00:46 4108 97   97   -11  1502 1502 1502 65535 8144  23  0        
00:46 4108 97   97   -9   1501 1501 1501 65535 8144  23  0        
00:47 4108 97   97   -11  1501 1501 1501 65535 7888  23  0        
00:47 4108 97   97   -9   1501 1501 1501 65535 9014  23  0        
00:48 4108 97   97   -11  1501 1501 1501 65535 7534  23  0        
00:48 4108 97   97   -11  1501 1501 1501 65535 7765  23  0        
00:49 4108 97   97   -11  1501 1501 1501 65535 8010  23  0        
00:49 4108 97   97   -11  1501 1501 1501 65535 7884  23  0        
00:50 4108 97   97   -12  1501 1501 1501 65535 7421  23  0        
00:50 4108 97   97   -11  1501 1501 1501 65535 8552  23  0        
00:51 4108 97   97   -11  1500 1500 1500 65535 7530  23  0        
00:51 4105 97   97   -11  1500 1500 1500 65535 8137  23  0        
00:52 4108 96   96   -12  1500 1500 1500 65535 7206  23  0        
00:52 4108 96   96   -10  1500 1500 1500 65535 8406  23  0        
00:53 4108 96   96   -12  1500 1500 1500 65535 7205  23  0        
00:53 4105 96   96   -12  1500 1500 1500 65535 7416  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
00:54 4105 96   96   -9   1500 1500 1500 65535 7415  23  0        
00:54 4105 96   96   -5   1499 1499 1499 65535 15280 23  0        
00:55 4108 96   96   -11  1499 1499 1499 65535 7757  23  0        
00:55 4108 96   96   -11  1499 1499 1499 65535 7877  23  0        
00:56 4105 96   96   -10  1499 1499 1499 65535 8691  23  0        
00:56 4105 96   96   -11  1499 1499 1499 65535 7755  23  0        
00:57 4105 96   96   -10  1499 1499 1499 65535 8690  23  0        
00:57 4105 96   96   -10  1499 1499 1499 65535 6999  23  0        
00:58 4105 96   96   -12  1499 1499 1499 65535 7199  23  0        
00:58 4105 96   96   -11  1499 1499 1499 65535 7752  23  0        
00:59 4105 96   96   -10  1498 1498 1498 65535 8397  23  0        
00:59 4105 96   96   -12  1498 1498 1498 65535 7095  23  0        
01:00 4105 96   96   -9   1498 1498 1498 65535 8996  23  0        
01:00 4102 96   96   -12  1497 1497 1497 65535 7297  24  0        
01:01 4105 96   96   -10  1497 1497 1497 65535 8832  23  0        
01:01 4105 96   96   -11  1497 1497 1497 65535 8390  23  0        
01:02 4105 96   96   -9   1497 1497 1497 65535 8988  23  0        
01:02 4105 96   96   -11  1497 1497 1497 65535 8117  23  0        
01:03 4102 96   96   -11  1497 1497 1497 65535 7989  23  0        
01:03 4102 96   96   -11  1497 1497 1497 65535 7988  23  0        
01:04 4105 96   96   -10  1496 1496 1496 65535 8249  23  0        
01:04 4105 96   96   -11  1496 1496 1496 65535 7741  23  0        
01:05 4102 96   96   -11  1496 1496 1496 65535 7623  23  0        
01:05 4102 96   96   -10  1496 1496 1496 65535 8384  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
01:06 4105 96   96   -10  1496 1496 1496 65535 8825  23  0        
01:06 4105 96   96   -10  1496 1496 1496 65535 8246  23  0        
01:07 4105 96   96   -9   1496 1496 1496 65535 8981  23  0        
01:07 4105 96   96   -10  1496 1496 1496 65535 8245  23  0        
01:08 4105 96   96   -11  1496 1496 1496 65535 7982  23  0        
01:08 4105 96   96   -9   1496 1496 1496 65535 7857  23  0        
01:09 4102 96   96   -11  1495 1495 1495 65535 7735  23  0        
01:09 4105 96   96   -9   1495 1495 1495 65535 9141  23  0        
01:10 4102 96   96   -10  1495 1495 1495 65535 8378  23  0        
01:10 4102 96   96   -10  1495 1495 1495 65535 8241  23  0        
01:11 4102 96   96   -11  1495 1495 1495 65535 7978  23  0        
01:11 4102 96   96   -10  1495 1495 1495 65535 8518  23  0        
01:12 4102 96   96   -10  1494 1494 1494 65535 8375  23  0        
01:12 4102 96   96   -11  1494 1494 1494 65535 7500  23  0        
01:13 4102 96   96   -11  1494 1494 1494 65535 7500  23  0        
01:13 4102 96   96   -11  1494 1494 1494 65535 8104  23  0        
01:14 4102 96   96   -11  1494 1494 1494 65535 7613  23  0        
01:14 4102 96   96   -10  1494 1494 1494 65535 8662  23  0        
01:15 4102 96   96   -12  1494 1494 1494 65535 6977  23  0        
01:15 4102 96   96   -12  1494 1494 1494 65535 65535 23  0        
01:16 4102 96   96   -11  1494 1494 1494 65535 8102  23  0        
01:16 4102 96   96   -11  1494 1494 1494 65535 8101  23  0        
01:17 4102 96   96   -11  1494 1494 1494 65535 7726  23  0        
01:17 4102 96   96   -11  1494 1494 1494 65535 7726  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
01:18 4102 96   96   -11  1493 1493 1493 65535 7970  23  0        
01:18 4102 96   96   -11  1493 1493 1493 65535 7970  23  0        
01:19 4102 96   96   -12  1493 1493 1493 65535 7384  23  0        
01:19 4102 96   96   -11  1493 1493 1493 65535 65535 23  0        
01:20 4102 96   96   -12  1493 1493 1493 65535 7173  23  0        
01:20 4102 96   96   -10  1493 1493 1493 65535 8656  23  0        
01:21 4102 96   96   -12  1493 1493 1493 65535 7172  23  0        
01:21 4102 96   96   -11  1493 1493 1493 65535 7722  23  0        
01:22 4097 96   96   -14  1493 1493 1493 65535 6047  23  0        
01:22 4102 96   96   -12  1492 1492 1492 65535 7273  23  0        
01:23 4102 96   96   -10  1492 1492 1492 65535 8226  23  0        
01:23 4102 96   96   -10  1492 1492 1492 65535 7603  23  0        
01:24 4102 96   96   -12  1492 1492 1492 65535 7271  23  0        
01:24 4102 96   96   -12  1492 1492 1492 65535 7270  23  0        
01:25 4102 96   96   32   1553 1553 1553 0     65535 23  0        
01:25 4102 100  100  -11  1553 1553 1553 65535 8160  23  0        
01:26 4102 100  100  -11  1553 1553 1553 65535 8290  23  0        
01:26 4102 100  100  -11  1553 1553 1553 65535 8159  23  0        
01:27 4102 100  100  -9   1553 1553 1553 65535 7911  23  0        
01:28 4102 100  100  -10  1553 1553 1553 65535 8559  23  0        
01:28 4100 100  100  12   1553 1553 1553 0     65535 23  0        
01:29 4102 100  100  -11  1553 1553 1553 65535 8035  23  0        
01:29 4102 100  100  -10  1553 1553 1553 65535 9004  23  0        
01:30 4102 100  100  -44  1553 1553 1553 65535 2080  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
01:30 4102 100  100  -11  1553 1553 1553 65535 8033  23  0        
01:31 4100 100  100  -11  1552 1552 1552 65535 8417  24  0        
01:31 4126 100  100  94   1553 1553 1553 0     65535 23  0        
01:32 4102 100  100  -11  1553 1553 1553 65535 8290  23  0        
01:32 4102 100  100  -11  1553 1553 1553 65535 8160  23  0        
01:33 4102 100  100  -11  1553 1553 1553 65535 8289  23  0        
01:33 4100 100  100  -11  1553 1553 1553 65535 7912  23  0        
01:34 4102 100  100  -12  1553 1553 1553 65535 7354  23  0        
01:34 4126 100  100  95   1553 1553 1553 0     65535 23  0        
01:35 4102 100  100  -11  1553 1553 1553 65535 7914  23  0        
01:35 4102 100  100  -9   1553 1553 1553 65535 10240 23  0        
01:36 4102 100  100  -11  1553 1553 1553 65535 8290  23  0        
01:36 4102 100  100  -10  1553 1553 1553 65535 9003  23  0        
01:37 4100 100  100  -10  1553 1553 1553 65535 9002  23  0        
01:37 4126 100  100  96   1553 1553 1553 0     65535 23  0        
01:38 4102 100  100  -11  1553 1553 1553 65535 8424  23  0        
01:38 4102 100  100  -11  1553 1553 1553 65535 8561  23  0        
01:39 4102 100  100  -11  1553 1553 1553 65535 8423  23  0        
01:39 4100 100  100  -10  1553 1553 1553 65535 8560  23  0        
01:40 4102 100  100  -11  1553 1553 1553 65535 7793  23  0        
01:40 4126 100  100  96   1553 1553 1553 0     65535 23  0        
01:41 4102 100  100  -10  1553 1553 1553 65535 8561  23  0        
01:41 4102 100  100  -11  1553 1553 1553 65535 7912  23  0        
^CNokia-N900-02-8:~# bin/bq27200.sh 5
LOOPMODE=5                           
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
01:41 4097 100  100  -41  1553 1553 1553 65535 2251  23  0        
01:41 4100 100  100  -39  1553 1553 1553 65535 2374  23  0        
01:41 4102 100  100  -25  1553 1553 1553 65535 3703  23  0        
01:42 4100 100  100  -24  1553 1553 1553 65535 3783  23  0        
01:42 4100 100  100  -24  1553 1553 1553 65535 3811  23  0        
01:42 4100 100  100  -26  1553 1553 1553 65535 3528  23  0        
01:42 4100 100  100  -25  1553 1553 1553 65535 3677  23  0        
01:42 4100 100  100  -26  1553 1553 1553 65535 3527  23  0        
01:42 4100 100  100  -25  1553 1553 1553 65535 3676  23  0        
01:42 4100 100  100  -24  1553 1553 1553 65535 3729  23  0        
01:42 4100 100  100  -28  1553 1553 1553 65535 3304  23  0        
01:42 4100 100  100  -24  1553 1553 1553 65535 3839  23  0        
01:42 4100 100  100  -26  1552 1552 1552 65535 3551  23  0        
01:42 4100 100  100  -25  1552 1552 1552 65535 3676  23  0        
01:42 4100 100  100  -26  1552 1552 1552 65535 3575  23  0        
01:43 4100 100  100  -27  1552 1552 1552 65535 3412  23  0        
01:43 4100 100  100  -25  1552 1552 1552 65535 3702  23  0        
01:43 4100 100  100  -24  1552 1552 1552 65535 3755  23  0        
01:43 4100 100  100  -25  1552 1552 1552 65535 3702  23  0        
01:43 4124 100  100  -2   1552 1552 1552 65535 43495 23  0        
01:43 4126 100  100  96   1552 1552 1552 0     65535 23  0        
01:43 4126 100  100  94   1553 1553 1553 0     65535 23  0        
01:43 4126 100  100  91   1553 1553 1553 0     65535 23  0        
01:43 4126 100  100  89   1553 1553 1553 0     65535 23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
01:43 4105 100  100  88   1553 1553 1553 0     65535 23  0        
01:43 4102 100  100  -24  1553 1553 1553 65535 3869  23  0        
01:44 4102 100  100  -25  1553 1553 1553 65535 3704  23  0        
01:44 4102 100  100  -24  1553 1553 1553 65535 3757  23  0        
01:44 4102 100  100  -25  1553 1553 1553 65535 3627  23  0        
01:44 4102 100  100  -24  1553 1553 1553 65535 3757  23  0        
01:44 4100 100  100  -31  1553 1553 1553 65535 2967  23  0        
01:44 4100 100  100  -27  1553 1553 1553 65535 3413  23  0        
01:44 4100 100  100  -34  1553 1553 1553 65535 2734  23  0        
01:44 4100 100  100  -26  1553 1553 1553 65535 3458  23  0        
01:44 4100 100  100  -24  1553 1553 1553 65535 3840  23  0        
01:44 4100 100  100  -26  1553 1553 1553 65535 3504  23  0        
01:44 4100 100  100  -25  1553 1553 1553 65535 3703  23  0        
01:45 4100 100  100  -24  1553 1553 1553 65535 3783  23  0        
01:45 4100 100  100  -26  1553 1553 1553 65535 3552  23  0        
01:45 4100 100  100  -24  1553 1553 1553 65535 3756  23  0        
01:45 4100 100  100  -34  1553 1553 1553 65535 2705  23  0        
01:45 4100 100  100  -23  1553 1553 1553 65535 3896  23  0        
01:45 4100 100  100  -25  1553 1553 1553 65535 3651  23  0        
01:45 4100 100  100  -25  1553 1553 1553 65535 3625  23  0        
01:45 4100 100  100  -23  1552 1552 1552 65535 3896  23  0        
01:45 4097 100  100  -22  1552 1552 1552 65535 4110  24  0        
01:45 4100 100  100  -76  1552 1552 1552 65535 1220  24  0        
01:45 4100 100  100  -22  1552 1552 1552 65535 4078  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
01:45 4100 100  100  -24  1552 1552 1552 65535 4078  23  0        
01:46 4100 100  100  -26  1552 1552 1552 65535 3755  23  0        
01:46 4097 100  100  -34  1552 1552 1552 65535 3551  23  0        
01:46 4100 100  100  -25  1552 1552 1552 65535 2677  23  0        
01:46 4100 100  100  -24  1552 1552 1552 65535 3676  23  0        
01:46 4100 100  100  -26  1552 1552 1552 65535 3837  23  0        
01:46 4097 100  100  -36  1552 1552 1552 65535 3456  23  0        
01:46 4100 100  100  -28  1552 1552 1552 65535 2533  23  0        
01:46 4124 100  100  14   1552 1552 1552 65535 65535 23  0        
01:46 4124 100  100  98   1552 1552 1552 7     65535 23  0        
01:46 4126 100  100  95   1552 1552 1552 0     65535 23  0        
01:46 4126 100  100  93   1552 1552 1552 0     65535 23  0        
01:47 4126 100  100  88   1553 1553 1553 0     65535 23  0        
01:47 4126 100  100  89   1553 1553 1553 0     65535 23  0        
01:47 4126 100  100  88   1553 1553 1553 0     65535 23  0        
01:47 4105 100  100  31   1553 1553 1553 0     65535 23  0        
01:47 4102 100  100  -24  1553 1553 1553 65535 3731  23  0        
01:47 4102 100  100  -26  1553 1553 1553 65535 3459  23  0        
01:47 4102 100  100  -23  1553 1553 1553 65535 3927  23  0        
01:47 4102 100  100  -25  1553 1553 1553 65535 3602  23  0        
01:47 4102 100  100  -24  1553 1553 1553 65535 3757  23  0        
01:47 4102 100  100  -24  1553 1553 1553 65535 3757  23  0        
01:47 4102 100  100  -25  1553 1553 1553 65535 3678  23  0        
01:47 4102 100  100  -25  1553 1553 1553 65535 3678  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
01:48 4100 100  100  -28  1553 1553 1553 65535 3264  23  0        
01:48 4100 100  100  -24  1553 1553 1553 65535 3757  23  0        
01:48 4100 100  100  -25  1553 1553 1553 65535 3601  23  0        
01:48 4100 100  100  -24  1553 1553 1553 65535 3784  23  0        
01:48 4100 100  100  -26  1553 1553 1553 65535 3505  23  0        
01:48 4100 100  100  -24  1553 1553 1553 65535 3868  23  0        
01:48 4100 100  100  -24  1553 1553 1553 65535 3729  23  0        
01:48 4100 100  100  -29  1553 1553 1553 65535 3164  23  0        
01:48 4100 100  100  -24  1553 1553 1553 65535 3783  23  0        
01:48 4100 100  100  -24  1553 1553 1553 65535 3729  23  0        
01:48 4100 100  100  -25  1553 1553 1553 65535 3626  23  0        
01:49 4100 100  100  -24  1553 1553 1553 65535 3729  23  0        
01:49 4100 100  100  -24  1553 1553 1553 65535 3811  23  0        
01:49 4100 100  100  -24  1553 1553 1553 65535 3783  23  0        
01:49 4100 100  100  -28  1553 1553 1553 65535 3263  23  0        
01:49 4100 100  100  -24  1552 1552 1552 65535 3838  23  0        
01:49 4100 100  100  -25  1552 1552 1552 65535 3676  23  0        
01:49 4100 100  100  -25  1552 1552 1552 65535 3676  23  0        
01:49 4100 100  100  -25  1552 1552 1552 65535 3625  23  0        
01:49 4100 100  100  -25  1552 1552 1552 65535 3676  23  0        
01:49 4100 100  100  -23  1552 1552 1552 65535 3895  23  0        
01:49 4100 100  100  -28  1552 1552 1552 65535 3324  23  0        
01:49 4124 100  100  45   1552 1552 1552 1     65535 23  0        
01:50 4126 100  100  97   1553 1553 1553 0     65535 23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
01:50 4126 100  100  94   1553 1553 1553 0     65535 23  0        
01:50 4126 100  100  92   1553 1553 1553 0     65535 23  0        
01:50 4126 100  100  90   1553 1553 1553 0     65535 23  0        
01:50 4126 100  100  89   1553 1553 1553 0     65535 23  0        
01:50 4102 100  100  46   1553 1553 1553 0     65535 23  0        
01:50 4102 100  100  -24  1553 1553 1553 65535 3731  23  0        
01:50 4102 100  100  -25  1553 1553 1553 65535 3704  23  0        
01:50 4102 100  100  -26  1553 1553 1553 65535 3459  23  0        
01:50 4102 100  100  -25  1553 1553 1553 65535 3652  23  0        
01:50 4102 100  100  -25  1553 1553 1553 65535 3704  23  0        
01:51 4102 100  100  -24  1553 1553 1553 65535 3868  23  0        
01:51 4100 100  100  -26  1553 1553 1553 65535 3528  23  0        
01:51 4100 100  100  -26  1553 1553 1553 65535 3577  23  0        
01:51 4102 100  100  -26  1553 1553 1553 65535 3552  23  0        
01:51 4100 100  100  -23  1553 1553 1553 65535 3897  23  0        
01:51 4100 100  100  -18  1553 1553 1553 65535 4926  23  0        
01:51 4100 100  100  -21  1553 1553 1553 65535 4280  23  0        
01:51 4100 100  100  -23  1553 1553 1553 65535 4047  23  0        
01:51 4100 100  100  -28  1553 1553 1553 65535 3896  23  0        
01:51 4100 100  100  -25  1553 1553 1553 65535 3305  23  0        
01:51 4100 100  100  -24  1553 1553 1553 65535 3703  23  0        
01:51 4100 100  100  -24  1553 1553 1553 65535 3839  23  0        
01:52 4100 100  100  -25  1553 1553 1553 65535 3676  23  0        
01:52 4100 100  100  -25  1553 1553 1553 65535 3703  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
01:52 4100 100  100  -26  1553 1553 1553 65535 3527  23  0        
01:52 4100 100  100  -31  1552 1552 1552 65535 2966  23  0        
01:52 4100 100  100  -25  1552 1552 1552 65535 3702  23  0        
01:52 4100 100  100  -35  1552 1552 1552 65535 2636  23  0        
01:52 4100 100  100  -23  1552 1552 1552 65535 3896  23  0        
01:52 4100 100  100  -25  1552 1552 1552 65535 3702  23  0        
01:52 4100 100  100  -25  1552 1552 1552 65535 3625  23  0        
01:52 4100 100  100  -25  1552 1552 1552 65535 3702  23  0        
01:52 4100 100  100  -29  1552 1552 1552 65535 3202  23  0        
01:53 4100 100  100  -24  1552 1552 1552 65535 3782  23  0        
01:53 4097 100  100  -25  1552 1552 1552 65535 3675  23  0        
01:53 4124 100  100  64   1552 1552 1552 0     65535 23  0        
01:53 4124 100  100  97   1552 1552 1552 0     65535 23  0        
01:53 4126 100  100  95   1553 1553 1553 0     65535 23  0        
01:53 4126 100  100  92   1553 1553 1553 0     65535 23  0        
01:53 4126 100  100  90   1553 1553 1553 0     65535 24  0        
01:53 4126 100  100  89   1553 1553 1553 0     65535 24  0        
01:53 4105 100  100  88   1553 1553 1553 0     65535 24  0        
01:53 4102 100  100  -8   1553 1553 1553 65535 10446 24  0        
01:53 4102 100  100  -23  1553 1553 1553 65535 3898  24  0        
01:54 4102 100  100  -26  1553 1553 1553 65535 3505  24  0        
01:54 4102 100  100  -24  1553 1553 1553 65535 3758  24  0        
01:54 4102 100  100  -26  1553 1553 1553 65535 3553  24  0        
01:54 4100 100  100  -24  1553 1553 1553 65535 3757  24  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
01:54 4102 100  100  -24  1553 1553 1553 65535 3757  24  0        
01:54 4102 100  100  -26  1553 1553 1553 65535 3459  24  0        
01:54 4102 100  100  -24  1553 1553 1553 65535 3812  23  0        
01:54 4100 100  100  -24  1553 1553 1553 65535 3730  23  0        
01:54 4100 100  100  -24  1553 1553 1553 65535 3730  23  0        
01:54 4100 100  100  -28  1553 1553 1553 65535 3223  23  0        
01:54 4100 100  100  -23  1553 1553 1553 65535 3956  23  0        
01:54 4100 100  100  -25  1553 1553 1553 65535 3601  23  0        
01:55 4100 100  100  -26  1553 1553 1553 65535 3576  24  0        
01:55 4087 100  100  -24  1553 1553 1553 65535 3811  23  0        
01:55 4100 100  100  -25  1553 1553 1553 65535 3677  24  0        
01:55 4100 100  100  -25  1553 1553 1553 65535 3677  23  0        
01:55 4100 100  100  -24  1553 1553 1553 65535 3783  23  0        
01:55 4100 100  100  -27  1553 1553 1553 65535 3435  23  0        
01:55 4100 100  100  -25  1553 1553 1553 65535 3676  24  0        
01:55 4100 100  100  -24  1553 1553 1553 65535 3783  23  0        
01:55 4100 100  100  -23  1553 1553 1553 65535 3985  23  0        
01:55 4100 100  100  -17  1552 1552 1552 65535 5273  23  0        
01:55 4100 100  100  -21  1552 1552 1552 65535 4279  23  0        
01:56 4100 100  100  -23  1552 1552 1552 65535 3955  23  0        
01:56 4100 100  100  -26  1552 1552 1552 65535 3925  23  0        
01:56 4100 100  100  -25  1552 1552 1552 65535 3575  23  0        
01:56 4100 100  100  -24  1552 1552 1552 65535 3650  23  0        
01:56 4100 100  100  -24  1552 1552 1552 65535 3810  23  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
01:56 4124 100  100  77   1552 1552 1552 65535 65535 23  0        
01:56 4124 100  100  97   1553 1553 1553 0     65535 24  0        
01:56 4126 100  100  94   1553 1553 1553 0     65535 24  0        
01:56 4126 100  100  92   1553 1553 1553 0     65535 24  0        
01:56 4126 100  100  91   1553 1553 1553 0     65535 24  0        
01:56 4126 100  100  89   1553 1553 1553 0     65535 24  0        
01:56 4126 100  100  88   1553 1553 1553 0     65535 24  0        
01:57 4102 100  100  29   1553 1553 1553 0     65535 24  0        
01:57 4102 100  100  -25  1553 1553 1553 65535 3602  24  0        
01:57 4102 100  100  -25  1553 1553 1553 65535 3678  24  0        
01:57 4102 100  100  -31  1553 1553 1553 65535 3001  24  0        
01:57 4102 100  100  -25  1553 1553 1553 65535 3602  24  0        
01:57 4102 100  100  -24  1553 1553 1553 65535 3812  24  0        
01:57 4100 100  100  -25  1553 1553 1553 65535 3601  24  0        
01:57 4102 100  100  -24  1553 1553 1553 65535 3812  24  0        
01:57 4100 100  100  -25  1553 1553 1553 65535 3677  24  0        
01:57 4100 100  100  -24  1553 1553 1553 65535 3730  24  0        
01:57 4100 100  100  -23  1553 1553 1553 65535 3896  24  0        
01:58 4100 100  100  -32  1553 1553 1553 65535 2838  24  0        
01:58 4100 100  100  -24  1553 1553 1553 65535 3839  24  0        
01:58 4100 100  100  -26  1553 1553 1553 65535 3552  24  0        
01:58 4100 100  100  -24  1553 1553 1553 65535 3868  24  0        
01:58 4100 100  100  -25  1553 1553 1553 65535 3703  24  0        
01:58 4097 100  100  -26  1553 1553 1553 65535 3457  24  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
01:58 4100 100  100  -34  1553 1553 1553 65535 2705  24  0        
01:58 4100 100  100  -25  1553 1553 1553 65535 3676  24  0        
01:58 4100 100  100  -28  1552 1552 1552 65535 3283  24  0        
01:58 4100 100  100  -25  1552 1552 1552 65535 3625  24  0        
01:58 4100 100  100  -23  1552 1552 1552 65535 3955  24  0        
01:58 4097 100  100  -26  1552 1552 1552 65535 3575  24  0        
01:59 4100 100  100  -26  1552 1552 1552 65535 3527  24  0        
01:59 4100 100  100  -25  1552 1552 1552 65535 3625  24  0        
01:59 4100 100  100  -25  1552 1552 1552 65535 3676  24  0        
01:59 4097 100  100  -25  1552 1552 1552 65535 3650  24  0        
01:59 4100 100  100  -26  1552 1552 1552 65535 3527  24  0        
01:59 4100 100  100  -25  1552 1552 1552 65535 3676  24  0        
01:59 4100 100  100  -24  1552 1552 1552 65535 3782  24  0        
01:59 4124 100  100  -23  1552 1552 1552 65535 3924  24  0        
01:59 4124 100  100  100  1552 1552 1552 0     65535 24  0        
01:59 4124 100  100  97   1552 1552 1552 0     65535 24  0        
01:59 4124 100  100  95   1553 1553 1553 0     65535 24  0        
02:00 4126 100  100  92   1553 1553 1553 0     65535 24  0        
02:00 4126 100  100  89   1553 1553 1553 0     65535 24  0        
02:00 4126 100  100  90   1553 1553 1553 0     65535 24  0        
02:00 4116 100  100  81   1553 1553 1553 0     65535 24  0        
02:00 4121 100  100  41   1553 1553 1553 0     65535 24  0        
02:00 4102 100  100  22   1553 1553 1553 0     65535 24  0        
02:00 4102 100  100  -28  1553 1553 1553 65535 3244  24  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
02:00 4102 100  100  -25  1553 1553 1553 65535 3627  24  0        
02:00 4102 100  100  -24  1553 1553 1553 65535 3730  24  0        
02:00 4102 100  100  -25  1553 1553 1553 65535 3678  24  0        
02:00 4100 100  100  -18  1553 1553 1553 65535 5171  24  0        
02:00 4100 100  100  -23  1553 1553 1553 65535 4212  24  0        
02:01 4100 100  100  -25  1553 1553 1553 65535 3927  24  0        
02:01 4100 100  100  -24  1553 1553 1553 65535 3626  24  0        
02:01 4100 100  100  -25  1553 1553 1553 65535 3757  24  0        
02:01 4100 100  100  -24  1553 1553 1553 65535 3626  24  0        
02:01 4100 100  100  -25  1553 1553 1553 65535 3757  24  0        
02:01 4100 100  100  -25  1553 1553 1553 65535 3703  24  0        
02:01 4100 100  100  -25  1553 1553 1553 65535 3626  24  0        
02:01 4100 100  100  -26  1553 1553 1553 65535 3677  24  0        
02:01 4100 100  100  -24  1553 1553 1553 65535 3552  24  0        
02:01 4100 100  100  -25  1553 1553 1553 65535 3729  24  0        
02:01 4100 100  100  -24  1553 1553 1553 65535 3651  24  0        
02:02 4100 100  100  -24  1553 1553 1553 65535 3839  24  0        
02:02 4100 100  100  -24  1553 1553 1553 65535 3729  24  0        
02:02 4100 100  100  -27  1553 1553 1553 65535 3390  24  0        
02:02 4092 100  100  -34  1552 1552 1552 65535 2691  24  0        
02:02 4092 100  100  -33  1552 1552 1552 65535 2806  24  0        
02:02 4100 100  100  -25  1552 1552 1552 65535 3676  24  0        
02:02 4100 100  100  -24  1552 1552 1552 65535 3783  24  0        
02:02 4097 100  100  -25  1552 1552 1552 65535 3676  24  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
02:02 4100 100  100  -23  1552 1552 1552 65535 3924  24  0        
02:02 4100 100  100  -26  1552 1552 1552 65535 3527  24  0        
02:02 4121 100  100  -6   1552 1552 1552 65535 14498 24  0        
02:03 4124 100  100  100  1552 1552 1552 0     65535 24  0        
02:03 4124 100  100  96   1553 1553 1553 0     65535 24  0        
02:03 4126 100  100  94   1553 1553 1553 0     65535 24  0        
02:03 4126 100  100  92   1553 1553 1553 0     65535 24  0        
02:03 4126 100  100  91   1553 1553 1553 0     65535 24  0        
02:03 4126 100  100  89   1553 1553 1553 0     65535 24  0        
02:03 4126 100  100  88   1553 1553 1553 0     65535 24  0        
02:03 4102 100  100  -20  1553 1553 1553 65535 4464  24  0        
02:03 4102 100  100  -26  1553 1553 1553 65535 3553  24  0        
02:03 4102 100  100  -24  1553 1553 1553 65535 3812  24  0        
02:03 4102 100  100  -25  1553 1553 1553 65535 3678  24  0        
02:03 4100 100  100  -24  1553 1553 1553 65535 3840  24  0        
02:04 4102 100  100  -25  1553 1553 1553 65535 3652  24  0        
02:04 4102 100  100  -25  1553 1553 1553 65535 3704  24  0        
02:04 4102 100  100  -25  1553 1553 1553 65535 3627  24  0        
02:04 4102 100  100  -25  1553 1553 1553 65535 3602  24  0        
02:04 4100 100  100  -25  1553 1553 1553 65535 3626  24  0        
02:04 4100 100  100  -30  1553 1553 1553 65535 3018  24  0        
02:04 4100 100  100  -32  1553 1553 1553 65535 2901  24  0        
02:04 4100 100  100  -23  1553 1553 1553 65535 3926  24  0        
02:04 4100 100  100  -25  1553 1553 1553 65535 3677  24  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
02:04 4100 100  100  -24  1553 1553 1553 65535 3756  24  0        
02:04 4100 100  100  -26  1553 1553 1553 65535 3458  24  0        
02:05 4100 100  100  -26  1553 1553 1553 65535 3576  24  0        
02:05 4100 100  100  -25  1553 1553 1553 65535 3703  24  0        
02:05 4100 100  100  -25  1553 1553 1553 65535 3676  24  0        
02:05 4100 100  100  -25  1553 1553 1553 65535 3625  24  0        
02:05 4097 100  100  -25  1553 1553 1553 65535 3600  24  0        
02:05 4100 100  100  -25  1553 1553 1553 65535 3625  24  0        
02:05 4100 100  100  -25  1553 1553 1553 65535 3651  24  0        
02:05 4100 100  100  -26  1552 1552 1552 65535 3457  24  0        
02:05 4100 100  100  -26  1552 1552 1552 65535 3503  24  0        
02:05 4100 100  100  -25  1552 1552 1552 65535 3625  24  0        
02:05 4100 100  100  -24  1552 1552 1552 65535 3810  24  0        
02:05 4100 100  100  -24  1552 1552 1552 65535 3838  24  0        
02:06 4100 100  100  -24  1552 1552 1552 65535 3755  24  0        
02:06 4100 100  100  -24  1552 1552 1552 65535 3728  24  0        
02:06 4124 100  100  26   1552 1552 1552 3     65535 24  0        
02:06 4124 100  100  99   1553 1553 1553 0     65535 24  0        
02:06 4126 100  100  97   1553 1553 1553 0     65535 24  0        
02:06 4126 100  100  94   1553 1553 1553 0     65535 24  0        
02:06 4126 100  100  93   1553 1553 1553 0     65535 24  0        
02:06 4126 100  100  91   1553 1553 1553 0     65535 24  0        
02:06 4126 100  100  77   1553 1553 1553 0     65535 24  0        
02:06 4102 100  100  -24  1553 1553 1553 65535 65535 24  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
02:06 4102 100  100  -24  1553 1553 1553 65535 3840  24  0        
02:07 4102 100  100  -27  1553 1553 1553 65535 3730  24  0        
02:07 4102 100  100  -23  1553 1553 1553 65535 3436  24  0        
02:07 4102 100  100  -25  1553 1553 1553 65535 3956  24  0        
02:07 4100 100  100  -26  1553 1553 1553 65535 3652  24  0        
02:07 4102 100  100  -26  1553 1553 1553 65535 3505  24  0        
02:07 4102 100  100  -25  1553 1553 1553 65535 3677  24  0        
02:07 4102 100  100  -24  1553 1553 1553 65535 3812  24  0        
02:07 4100 100  100  -25  1553 1553 1553 65535 3601  24  0        
02:07 4100 100  100  -28  1553 1553 1553 65535 3305  24  0        
02:07 4100 100  100  -24  1553 1553 1553 65535 3839  24  0        
02:07 4100 100  100  -25  1553 1553 1553 65535 3703  24  0        
02:07 4100 100  100  -25  1553 1553 1553 65535 3601  24  0        
02:08 4100 100  100  -24  1553 1553 1553 65535 3811  24  0        
02:08 4100 100  100  -25  1553 1553 1553 65535 3676  24  0        
02:08 4100 100  100  -28  1553 1553 1553 65535 3283  24  0        
02:08 4100 100  100  -25  1553 1553 1553 65535 3651  24  0        
02:08 4100 100  100  -24  1553 1553 1553 65535 3783  24  0        
02:08 4100 100  100  -25  1552 1552 1552 65535 3600  24  0        
02:08 4100 100  100  -24  1552 1552 1552 65535 3838  24  0        
02:08 4100 100  100  -26  1552 1552 1552 65535 3503  24  0        
02:08 4100 100  100  -26  1552 1552 1552 65535 3575  24  0        
02:08 4100 100  100  -26  1552 1552 1552 65535 3575  24  0        
02:08 4100 100  100  -24  1552 1552 1552 65535 3755  24  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
02:09 4097 100  100  -24  1552 1552 1552 65535 3782  24  0        
02:09 4100 100  100  -25  1552 1552 1552 65535 3600  24  0        
02:09 4100 100  100  -25  1552 1552 1552 65535 3625  24  0        
02:09 4100 100  100  -28  1552 1552 1552 65535 3262  24  0        
02:09 4100 100  100  -24  1552 1552 1552 65535 3837  24  0        
02:09 4124 100  100  42   1552 1552 1552 1     65535 24  0        
02:09 4124 100  100  98   1552 1552 1552 0     65535 24  0        
02:09 4124 100  100  95   1553 1553 1553 0     65535 24  0        
02:09 4126 100  100  94   1553 1553 1553 0     65535 24  0        
02:09 4126 100  100  90   1553 1553 1553 0     65535 24  0        
02:09 4126 100  100  91   1553 1553 1553 0     65535 24  0        
02:09 4126 100  100  89   1553 1553 1553 0     65535 24  0        
02:10 4102 100  100  87   1553 1553 1553 0     65535 24  0        
02:10 4102 100  100  -16  1553 1553 1553 65535 5740  24  0        
02:10 4102 100  100  -25  1553 1553 1553 65535 3652  24  0        
02:10 4102 100  100  -25  1553 1553 1553 65535 3678  24  0        
02:10 4102 100  100  -25  1553 1553 1553 65535 3678  24  0        
02:10 4102 100  100  -31  1553 1553 1553 65535 2918  24  0        
02:10 4102 100  100  -29  1553 1553 1553 65535 3184  24  0        
02:10 4100 100  100  -23  1553 1553 1553 65535 3927  24  0        
02:10 4100 100  100  -25  1553 1553 1553 65535 3652  24  0        
02:10 4100 100  100  -26  1553 1553 1553 65535 3528  24  0        
02:10 4100 100  100  -24  1553 1553 1553 65535 3784  24  0        
02:11 4100 100  100  -24  1553 1553 1553 65535 3840  24  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
02:11 4100 100  100  -24  1553 1553 1553 65535 3756  24  0        
02:11 4100 100  100  -26  1553 1553 1553 65535 3552  24  0        
02:11 4100 100  100  -24  1553 1553 1553 65535 3729  24  0        
02:11 4100 100  100  -27  1553 1553 1553 65535 3435  24  0        
02:11 4100 100  100  -25  1553 1553 1553 65535 3626  24  0        
02:11 4100 100  100  -26  1553 1553 1553 65535 3576  24  0        
02:11 4100 100  100  -19  1553 1553 1553 65535 4661  24  0        
02:11 4097 100  100  -20  1553 1553 1553 65535 4620  24  0        
02:11 4100 100  100  -25  1553 1553 1553 65535 4047  24  0        
02:11 4100 100  100  -30  1553 1553 1553 65535 3651  24  0        
02:11 4100 100  100  -24  1552 1552 1552 65535 3071  24  0        
02:12 4100 100  100  -24  1552 1552 1552 65535 3755  24  0        
02:12 4100 100  100  -24  1552 1552 1552 65535 3810  24  0        
02:12 4100 100  100  -24  1552 1552 1552 65535 3838  24  0        
02:12 4100 100  100  -24  1552 1552 1552 65535 3755  24  0        
02:12 4100 100  100  -29  1552 1552 1552 65535 3729  24  0        
02:12 4100 100  100  -23  1552 1552 1552 65535 3924  24  0        
02:12 4100 100  100  -24  1552 1552 1552 65535 3755  24  0        
02:12 4124 100  100  52   1552 1552 1552 65535 65535 24  0        
02:12 4124 100  100  98   1552 1552 1552 0     65535 24  0        
02:12 4126 100  100  96   1553 1553 1553 0     65535 24  0        
02:12 4126 100  100  94   1553 1553 1553 0     65535 24  0        
02:13 4126 100  100  91   1553 1553 1553 0     65535 24  0        
02:13 4126 100  100  91   1553 1553 1553 0     65535 24  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
02:13 4126 100  100  88   1553 1553 1553 0     65535 24  0        
02:13 4110 100  100  78   1553 1553 1553 0     65535 24  0        
02:13 4102 100  100  -25  1553 1553 1553 65535 3678  24  0        
02:13 4102 100  100  -24  1553 1553 1553 65535 3731  24  0        
02:13 4102 100  100  -26  1553 1553 1553 65535 3529  24  0        
02:13 4102 100  100  -26  1553 1553 1553 65535 3553  24  0        
02:13 4100 100  100  -24  1553 1553 1553 65535 3757  24  0        
02:13 4100 100  100  -23  1553 1553 1553 65535 3927  24  0        
02:13 4100 100  100  -24  1553 1553 1553 65535 3730  24  0        
02:14 4102 100  100  -24  1553 1553 1553 65535 3730  24  0        
02:14 4100 100  100  -24  1553 1553 1553 65535 3784  24  0        
02:14 4102 100  100  -26  1553 1553 1553 65535 3552  24  0        
02:14 4100 100  100  -25  1553 1553 1553 65535 3626  24  0        
02:14 4100 100  100  -24  1553 1553 1553 65535 3730  24  0        
02:14 4100 100  100  -24  1553 1553 1553 65535 3812  24  0        
02:14 4100 100  100  -24  1553 1553 1553 65535 3812  24  0        
02:14 4100 100  100  -25  1553 1553 1553 65535 3677  24  0        
02:14 4100 100  100  -25  1553 1553 1553 65535 3601  24  0        
02:14 4100 100  100  -23  1553 1553 1553 65535 3955  24  0        
02:14 4100 100  100  -25  1553 1553 1553 65535 3626  24  0        
02:14 4100 100  100  -24  1553 1553 1553 65535 3756  24  0        
02:15 4100 100  100  -35  1553 1553 1553 65535 2650  24  0        
02:15 4100 100  100  -24  1553 1553 1553 65535 3756  24  0        
02:15 4100 100  100  -25  1553 1553 1553 65535 3625  24  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
02:15 4100 100  100  -25  1553 1553 1553 65535 3600  24  0        
02:15 4100 100  100  -24  1552 1552 1552 65535 3811  24  0        
02:15 4100 100  100  -26  1552 1552 1552 65535 3480  24  0        
02:15 4100 100  100  -24  1552 1552 1552 65535 3755  24  0        
02:15 4100 100  100  -24  1552 1552 1552 65535 3729  24  0        
02:15 4097 100  100  -38  1552 1552 1552 65535 2417  24  0        
02:15 4097 100  100  -69  1552 1552 1552 65535 1331  24  0        
02:15 4100 100  100  -25  1552 1552 1552 65535 3625  24  0        
02:16 4100 100  100  -25  1552 1552 1552 65535 3625  24  0        
02:16 4100 100  100  -24  1552 1552 1552 65535 3809  24  0        
02:16 4100 100  100  -24  1552 1552 1552 65535 3728  24  0        
02:16 4097 100  100  -25  1552 1552 1552 65535 3599  24  0        
02:16 4097 100  100  -35  1552 1552 1552 65535 2596  24  0        
02:16 4095 100  100  -25  1552 1552 1552 65535 3624  24  0        
02:16 4100 100  100  -30  1552 1552 1552 65535 3088  24  0        
02:16 4097 100  100  -21  1552 1552 1552 65535 4242  24  0        
02:16 4124 100  100  -7   1552 1552 1552 65535 12727 24  0        
02:16 4124 100  100  103  1552 1552 1552 0     65535 24  0        
02:16 4124 100  100  96   1552 1552 1552 0     65535 24  0        
02:16 4126 100  100  95   1552 1552 1552 0     65535 24  0        
02:17 4126 100  100  92   1553 1553 1553 0     65535 24  0        
02:17 4126 100  100  91   1553 1553 1553 0     65535 24  0        
02:17 4126 100  100  90   1553 1553 1553 0     65535 24  0        
02:17 4126 100  100  89   1553 1553 1553 0     65535 24  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
02:17 4126 100  100  60   1553 1553 1553 0     65535 24  0        
02:17 4102 100  100  -26  1553 1553 1553 65535 3577  24  0        
02:17 4102 100  100  -24  1553 1553 1553 65535 3757  24  0        
02:17 4102 100  100  -25  1553 1553 1553 65535 3627  24  0        
02:17 4102 100  100  -25  1553 1553 1553 65535 3627  24  0        
02:17 4100 100  100  -25  1553 1553 1553 65535 3602  24  0        
02:17 4102 100  100  -23  1553 1553 1553 65535 3926  24  0        
02:18 4102 100  100  -24  1553 1553 1553 65535 3868  24  0        
02:18 4100 100  100  -25  1553 1553 1553 65535 3626  24  0        
02:18 4100 100  100  -23  1553 1553 1553 65535 3986  24  0        
02:18 4100 100  100  -26  1553 1553 1553 65535 3577  24  0        
02:18 4100 100  100  -24  1553 1553 1553 65535 3783  24  0        
02:18 4100 100  100  -33  1553 1553 1553 65535 2822  24  0        
02:18 4100 100  100  -24  1553 1553 1553 65535 3811  24  0        
02:18 4100 100  100  -25  1553 1553 1553 65535 3677  24  0        
02:18 4100 100  100  -25  1553 1553 1553 65535 3703  24  0        
02:18 4097 100  100  -24  1553 1553 1553 65535 3756  24  0        
02:18 4100 100  100  -24  1553 1553 1553 65535 3783  24  0        
02:18 4100 100  100  -24  1553 1553 1553 65535 3729  24  0        
02:19 4100 100  100  -24  1553 1553 1553 65535 3729  24  0        
02:19 4097 100  100  -28  1552 1552 1552 65535 3325  24  0        
02:19 4100 100  100  -25  1552 1552 1552 65535 3650  24  0        
02:19 4100 100  100  -24  1552 1552 1552 65535 3810  24  0        
02:19 4100 100  100  -34  1552 1552 1552 65535 2733  24  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
02:19 4097 100  100  -24  1552 1552 1552 65535 3810  24  0        
02:19 4100 100  100  -26  1552 1552 1552 65535 3527  24  0        
02:19 4100 100  100  -25  1552 1552 1552 65535 3625  24  0        
02:19 4097 100  100  -25  1552 1552 1552 65535 3702  24  0        
02:19 4097 100  100  -26  1552 1552 1552 65535 3480  24  0        
02:19 4100 100  100  -25  1552 1552 1552 65535 3625  24  0        
02:20 4100 100  100  -24  1552 1552 1552 65535 3837  24  0        
02:20 4097 100  100  -24  1552 1552 1552 65535 3728  24  0        
02:20 4124 100  100  20   1552 1552 1552 4     65535 24  0        
02:20 4124 100  100  100  1552 1552 1552 0     65535 24  0        
02:20 4124 100  100  97   1552 1552 1552 0     65535 24  0        
02:20 4126 100  100  95   1553 1553 1553 0     65535 24  0        
02:20 4126 100  100  92   1553 1553 1553 0     65535 24  0        
02:20 4126 100  100  92   1553 1553 1553 0     65535 24  0        
02:20 4126 100  100  90   1553 1553 1553 0     65535 24  0        
02:20 4126 100  100  89   1553 1553 1553 0     65535 24  0        
02:20 4102 100  100  88   1553 1553 1553 0     65535 24  0        
02:20 4102 100  100  -13  1553 1553 1553 65535 6696  24  0        
02:21 4102 100  100  -24  1553 1553 1553 65535 3731  24  0        
02:21 4102 100  100  -24  1553 1553 1553 65535 3785  24  0        
02:21 4102 100  100  -26  1553 1553 1553 65535 3459  24  0        
02:21 4102 100  100  -25  1553 1553 1553 65535 3652  24  0        
02:21 4102 100  100  -24  1553 1553 1553 65535 3868  24  0        
02:21 4100 100  100  -25  1553 1553 1553 65535 3652  24  0        
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
02:21 4102 100  100  -25  1553 1553 1553 65535 3652  24  0        
02:21 4100 100  100  -25  1553 1553 1553 65535 3627  24  0        
02:21 4100 100  100  -24  1553 1553 1553 65535 3868  24  0        
02:21 4097 100  100  -24  1553 1553 1553 65535 3757  24  0        
02:21 4100 100  100  -29  1553 1553 1553 65535 3165  24  0        
02:22 4100 100  100  -23  1553 1553 1553 65535 4048  24  0        
02:22 4100 100  100  -18  1553 1553 1553 65535 4973  24  0        
02:22 4100 100  100  -24  1553 1553 1553 65535 4111  24  0
02:22 4100 100  100  -24  1553 1553 1553 65535 3868  24  0
02:22 4100 100  100  -23  1553 1553 1553 65535 3868  24  0
02:22 4095 100  100  -36  1553 1553 1553 65535 3896  24  0
02:22 4100 100  100  -25  1553 1553 1553 65535 2559  24  0
02:22 4100 100  100  -25  1553 1553 1553 65535 3676  24  0
02:22 4100 100  100  -25  1553 1553 1553 65535 3600  24  0
02:22 4097 100  100  -25  1553 1553 1553 65535 3625  24  0
02:22 4097 100  100  -26  1553 1553 1553 65535 3676  24  0
02:22 4100 100  100  -23  1552 1552 1552 65535 3576  24  0
02:23 4100 100  100  -25  1552 1552 1552 65535 3925  24  0
02:23 4097 100  100  -25  1552 1552 1552 65535 3702  24  0
02:23 4097 100  100  -24  1552 1552 1552 65535 3810  24  0
02:23 4100 100  100  -32  1552 1552 1552 65535 2852  24  0
02:23 4124 100  100  35   1552 1552 1552 65535 65535 24  0
02:23 4124 100  100  100  1553 1553 1553 1     65535 24  0
02:23 4124 100  100  97   1553 1553 1553 0     65535 24  0
      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP EDV1 LOW
02:23 4126 100  100  95   1553 1553 1553 0     65535 24  0
02:23 4126 100  100  92   1553 1553 1553 0     65535 24  0
02:23 4126 100  100  91   1553 1553 1553 0     65535 24  0
02:23 4126 100  100  89   1553 1553 1553 0     65535 24  0
02:24 4126 100  100  88   1553 1553 1553 0     65535 24  0
02:24 4105 100  100  59   1553 1553 1553 0     65535 24  0
02:24 4102 100  100  -24  1553 1553 1553 65535 3785  24  0
02:24 4102 100  100  -25  1553 1553 1553 65535 3704  24  0
02:24 4102 100  100  -24  1553 1553 1553 65535 3731  24  0
02:24 4102 100  100  -25  1553 1553 1553 65535 3704  24  0
02:24 4100 100  100  -24  1553 1553 1553 65535 3868  24  0
02:24 4100 100  100  -25  1553 1553 1553 65535 3627  24  0
02:24 4100 100  100  -27  1553 1553 1553 65535 3413  24  0
02:24 4100 100  100  -25  1553 1553 1553 65535 3704  24  0
02:24 4100 100  100  -24  1553 1553 1553 65535 3868  24  0
02:25 4100 100  100  -25  1553 1553 1553 65535 3677  24  0
02:25 4100 100  100  -24  1553 1553 1553 65535 3757  24  0
02:25 4100 100  100  -24  1553 1553 1553 65535 3840  24  0
02:25 4100 100  100  -25  1553 1553 1553 65535 3652  24  0
02:25 4100 100  100  -24  1553 1553 1553 65535 3812  24  0
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/jrbme/bq27200</title>
    <id>4921</id>
    <revision>
      <id>44378</id>
      <timestamp>2011-07-06T17:44:20Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>bq27200.sh script as of shadowJK, with slight modifications</comment>
      <text xml:space="preserve">&lt;pre&gt;
#!/bin/sh                                                                           

# Assuming 30 mOhm sense resistance
RS=${RS:-22}                       

debugecho()
{          
        if [ $LOOPMODE -eq 0 ]; then
                echo $*             
        fi                          
}                                   
debugechon()                        
{                                   
        if [ $LOOPMODE -eq 0 ]; then
                echo -n $*          
        fi                          
}                                   
dot()                               
{                                   
        debugechon &quot;.&quot;              
}                                   

#if [ ! -e i2cget ] ; then
#       echo &quot;Need i2cget&quot;
#       return            
#fi                       

LOOPMODE=0
LOOPCOUNT=0
if [ -n &quot;$1&quot; ] ; then
        if [ $(($1)) -gt 5 ] ; then
                LOOPMODE=$(($1))   
        else                       
                LOOPMODE=5         
        fi                         
fi                                 

echo &quot;LOOPMODE=$LOOPMODE RS=$RS&quot;

doit=1
while [ $doit -eq 1 ] ; do ## MAIN LOOP ##

doit=0
############## Data acquisition ##############

#debugechon &quot;About to stop bme. &quot;
#killall -STOP bme_RX-51         
#debugecho &quot;Bme stopped.&quot;        
# sleep 1;                       
debugechon &quot;Reading values&quot;      

AR=$(i2cget -y 2 0x55 0x02 w) ; dot
ARTTE=$(i2cget -y 2 0x55 0x04 w); dot
VOLT=$(i2cget -y 2 0x55 0x08 w) ; dot
TEMP=$(i2cget -y 2 0x55 0x06 w) ; dot
CSOC=$(i2cget -y 2 0x55 0x2c)  ; dot 
RSOC=$(i2cget -y 2 0x55 0x0b)  ; dot 
NAC=$(i2cget -y 2 0x55 0x0c w) ; dot 
CACD=$(i2cget -y 2 0x55 0x0e w) ; dot
CACT=$(i2cget -y 2 0x55 0x10 w); dot 
AI=$(i2cget -y 2 0x55 0x14 w)  ; dot 
TTF=$(i2cget -y 2 0x55 0x18 w) ; dot 
TTE=$(i2cget -y 2 0x55 0x16 w) ; dot 
FLAGS=$(i2cget -y 2 0x55 0x0A) ; dot 


if [ $LOOPMODE -eq 0 ] ; then
CYCL=$(i2cget -y 2 0x55 0x28 w) ; dot
CYCLTL=$(i2cget -y 2 0x55 0x2a w) ; dot
SI=$(i2cget -y 2 0x55 0x1A w) ; dot    
STTE=$(i2cget -y 2 0x55 0x1C w); dot   
MLI=$(i2cget -y 2 0x55 0x1e w) ; dot   
MLTTE=$(i2cget -y 2 0x55 0x20 w); dot  
LMD=$(i2cget -y 2 0x55 0x12 w) ; dot   

ILMD=$(i2cget -y 2 0x55 0x76); dot
EDVF=$(i2cget -y 2 0x55 0x77); dot
EDV1=$(i2cget -y 2 0x55 0x78); dot
ISLC=$(i2cget -y 2 0x55 0x79); dot
DMFSD=$(i2cget -y 2 0x55 0x7A); dot
TAPER=$(i2cget -y 2 0x55 0x7B); dot
#TODO: PKCFG                       
IMLC=$(i2cget -y 2 0x55 0x7D); dot 
fi                                 

debugecho &quot;done.&quot;
#debugechon  &quot;Waking up bme.&quot;
#killall -CONT bme_RX-51     
#debugecho &quot;Done. &quot;          
debugecho &quot;&quot;                 

############## Calculate ##############

CSOC=$(($CSOC))                      # CSOC Compensated state of charge %. CACT/LMD * 100
RSOC=$(($RSOC))                      # RSOC Relative state of charge %. NAC/LMD * 100    
NAC=$(($NAC * 3570 / $RS / 1000))    # NAC Nominal available capaciy, mAh.               
CACD=$(($CACD * 3570 / $RS / 1000))  # CACD Discharge rate compensated available capacity, mAh.
CACT=$(($CACT * 3570 / $RS / 1000))  # CACT Temperature compensated CACD, mAh.                 
AI=$(($AI * 3570 / $RS / 1000))      # AI Average (last 5.12 seconds) current, mA.             
VOLT=$(($VOLT))                      # VOLT Battery voltage, mV.                               
TTF=$(($TTF))                        # TTF Time to Full minutes. 65535 if no charging.         
TTE=$(($TTE))                        # TTE Time to Empty minutes. 65535 if charging.           

F=$(($FLAGS))
FLAGS_CHARGE=$(($F/128))             # There is charging activity. AI is measuring charge current.
F=$(($F-$F/128*128))                                                                              
FLAGS_NOACT=$(($F/64))               # No charge/discharge activity detected.                     
F=$(($F-$F/64*64))                                                                                
FLAGS_IMIN=$(($F/32))                # Charge current has tapered off (battery charge is near/at completion)
F=$(($F-$F/32*32))                                                                                          
FLAGS_CI=$(($F/16))                  # Capacity inaccurate. &gt;32 cycles since last learning cycle.           
F=$(($F-$F/16*16))                                                                                          
FLAGS_CALIP=$(($F/8))                # External offset calibration in progress.                             
F=$(($F-$F/8*8))                                                                                            
FLAGS_VDQ=$(($F/4))                  # Valid discharge. All requirements met for learning the battery's capacity when reaching EDV1                                                                                                                       
F=$(($F-$F/4*4))                                                                                                             
FLAGS_EDV1=$(($F/2))                 # First end of discharge-voltage flag. Battery voltage is at or below preprogrammed EDV1 threshold. If VDQ is 1, LMD is updated and VDQ set to 0.                                                                    
F=$(($F-$F/2*2))                                                                                                             
FLAGS_EDVF=$F                        # Final end of discharge-voltage flag. The battery has discharged to 0% threshold.      


if [ $LOOPMODE -eq 0 ] ; then
AR=$(($AR * 3570 / $RS / 1000))      # AR At-rate
ARTTE=$(($ARTTE))                    # At-rate time to empty
LMD=$(($LMD * 3570 / $RS / 1000))    # LM Last measured discharge, mAh.
SI=$(($SI * 3570/ $RS / 1000))       # SI Standby Current, mA.         
STTE=$(($STTE))                      # STTE Time to empty at standby, minutes.
MLI=$(($MLI * 3570 / $RS / 1000))    # MLI Maximum Load Current, mA.          
MLTTE=$(($MLTTE))                    # MLTTE Time to empty at maximum load, minutes.
CYCL=$(($CYCL))                      # CYCL Cycles since last learning cycle (last time LMD was updated)
CYCLTL=$(($CYCLTL))                  # CYCLTL Cycles since last full reset.                             

ILMD=$(($ILMD * 913920 / $RS / 1000)) # eeprom Initial Last Measured Discharge. LMD = ILMD if no valid learning cycle has been completed.                                                                                                                 
EDVF=$(($EDVF * 8 + 8*256))           # eeprom End of discharge voltage threshold.                                           
EDV1=$(($EDV1 * 8 + 8*256))           # eeprom 6.25% Capacity voltage threshold.                                             
ISLC=$(($ISLC * 7140 / $RS / 1000))   # eeprom Initial standby load current.                                                 

# DMF in bits 4:7
DMF=$(($DMFSD/16))
# SD in bits 0:3  
SD=$(($DMFSD-$DMF*16))
DMF=$(($DMF * 4900))                 # eeprom Digital Magnitude Filter, nanoVolts
SD=$((1610 / $SD))                   # eeprom Self Discharge rate, thousandth of percent (1/1000 %) per day at 25 degrees celcius                                                                                                                         

AGELMD=$(($TAPER/128))               # eeprom Battery capacity aging estimation on/off
TAPER=$(($TAPER-$AGELMD*128))                                                         
TAPER=$(($TAPER * 228000 / $RS / 1000))  # eeprom Taper current mA                    

IMLC=$(($IMLC * 457000 / $RS / 1000))    # eeprom Initial Max Load Current

fi

############## Display ##############

if [ $LOOPMODE -eq 0 ] ; then 

echo -n CSOC: $CSOC &quot;% &quot;
echo RSOC: $RSOC &quot;%&quot;    
echo Average Current: $AI mA
echo -n TTF: $(($TTF)) &quot;minutes &quot;
echo TTE: $(($TTE)) minutes      

echo -n NAC: $NAC &quot;mAh &quot;
echo -n CACD: $CACD &quot;mAh &quot;
echo CACT: $CACT &quot;mAh &quot;   

echo -n SI: $SI &quot;mA &quot;
echo  STTE: $STTE &quot;minutes&quot;

echo -n MLI: $MLI &quot;mA &quot;
echo  MLTTE: $MLTTE &quot;minutes&quot;

echo -n AR: $AR &quot;mA &quot;
echo ARTTE: $ARTTE &quot;minutes&quot;

echo Last Measured Discharge: $LMD mAh
echo Cycle Count since Learning: $CYCL Total Cycle Count since last full reset: $CYCLTL
echo Reported Battery Voltage: $VOLT mV
echo Battery Gauge die Temperature: $(($TEMP * 250 / 1000 - 273)) C
echo -e &quot;Flags:\t&quot; $FLAGS
echo -e &quot;\t&quot; Charge:$FLAGS_CHARGE NOACT:$FLAGS_NOACT IMIN:$FLAGS_IMIN CI:$FLAGS_CI CALIP:$FLAGS_CALIP VDQ:$FLAGS_VDQ EDV1:$FLAGS_EDV1 EDVF: $FLAGS_EDVF
echo -e &quot;eeprom data:&quot;
echo -e &quot;\t&quot; ILMD=$ILMD EDVF=$EDVF EDV1=$EDV1 ISLC=$ISLC
echo -e &quot;\t&quot; DMF=$DMF nanoVolt SD=$SD thousandths of percent per day
echo -e &quot;\t&quot; AGELMD=$AGELMD TAPER=$TAPER mA
echo -e &quot;\t&quot; IMLC=$IMLC mA

else # loopmode

if [ $LOOPCOUNT -eq 0 ] ; then
        LOOPCOUNT=24
        echo -e &quot;      mv   RSOC CSOC mA   NAC  CACD CACT TTF   TTE   TEMP&quot;
fi
LOOPCOUNT=$(($LOOPCOUNT-1))

C=$AI
if [ $FLAGS_CHARGE -eq 0 ] ; then
        C=&quot;-&quot;$C
fi
printf &quot;$(date +%H:%M) %4d %-3d  %-3d  %-4d %-4d %-4d %-4d %-5d %-5d %-3d &quot; $VOLT $RSOC $CSOC $C $NAC $CACD $CACT $TTF $TTE $(($TEMP * 250 /1000 - 273))
echo NOACT:$FLAGS_NOACT IMIN:$FLAGS_IMIN CI:$FLAGS_CI CALIP:$FLAGS_CALIP VDQ:$FLAGS_VDQ EDV1:$FLAGS_EDV1 EDVF:$FLAGS_EDVF
sleep $LOOPMODE
doit=1
fi # if loopmode

done # main
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/jrbme/n950 bmr rx-71 typical</title>
    <id>4931</id>
    <revision>
      <id>44494</id>
      <timestamp>2011-07-14T17:34:04Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">This log seems to suggest the device when idle and screen blanked, no SIM but WLAN session, uses an average of 14mA  (Please anybody with a clue feel free to edit this page so the text below won't get linewrapped, I.E. replace the pre tags with sth better)

&lt;pre&gt;
RM680-22-6_PR_RM680:~# bmedatalogger --interval=15
TIME, CHARGER_STATE, CHARGER_TYPE, CHARGING_STATE, CHARGING_TIME, BATTERY_STATE, BATTERY_TEMP, LEVEL_NOW, LEVEL_PCT, CAPA_NOW, VOLT_NOW, BATTERY_CURRENT, BATTERY_AVG_CURRENT, COULOMB_COUNTER                                                            
14 Jul 2011 17:38:06, DISCONNECTED, NONE, STOPPED, 0, OK, 31, 8, 92, 1109, 4083, 6, 6, -202                                  
14 Jul 2011 17:38:21, DISCONNECTED, NONE, STOPPED, 0, OK, 31, 8, 92, 1109, 4083, 7, 10, -202                                 
14 Jul 2011 17:38:36, DISCONNECTED, NONE, STOPPED, 0, OK, 31, 8, 92, 1109, 4083, 7, 7, -202                                  
14 Jul 2011 17:38:51, DISCONNECTED, NONE, STOPPED, 0, OK, 31, 8, 92, 1109, 4083, 6, 9, -202                                  
14 Jul 2011 17:39:06, DISCONNECTED, NONE, STOPPED, 0, OK, 30, 8, 92, 1109, 4083, 6, 11, -202                                 
14 Jul 2011 17:39:21, DISCONNECTED, NONE, STOPPED, 0, OK, 30, 8, 92, 1109, 4083, 7, 9, -202                                  
#enabling screen                                                                                                             
14 Jul 2011 17:39:36, DISCONNECTED, NONE, STOPPED, 0, OK, 30, 8, 92, 1109, 4059, 98, 76, -202                                
14 Jul 2011 17:39:51, DISCONNECTED, NONE, STOPPED, 0, OK, 30, 8, 92, 1109, 4054, 107, 114, -201                              
14 Jul 2011 17:40:06, DISCONNECTED, NONE, STOPPED, 0, OK, 30, 8, 92, 1109, 4071, 102, 106, -201                              
14 Jul 2011 17:40:21, DISCONNECTED, NONE, STOPPED, 0, OK, 30, 8, 92, 1109, 4077, 11, 76, -201                                
#locked again                                                                                                                
14 Jul 2011 17:40:36, DISCONNECTED, NONE, STOPPED, 0, OK, 30, 8, 92, 1107, 4083, 7, 19, -201                                 
14 Jul 2011 17:40:51, DISCONNECTED, NONE, STOPPED, 0, OK, 30, 8, 92, 1107, 4083, 7, 8, -201                                  
14 Jul 2011 17:41:06, DISCONNECTED, NONE, STOPPED, 0, OK, 30, 8, 92, 1107, 4083, 9, 8, -201                                  
14 Jul 2011 17:41:21, DISCONNECTED, NONE, STOPPED, 0, OK, 30, 8, 92, 1107, 4083, 6, 7, -200                                  
14 Jul 2011 17:41:36, DISCONNECTED, NONE, STOPPED, 0, OK, 30, 8, 92, 1107, 4083, 7, 10, -200                                 
14 Jul 2011 17:41:51, DISCONNECTED, NONE, STOPPED, 0, OK, 29, 8, 92, 1107, 4083, 6, 7, -200                                  
14 Jul 2011 17:42:06, DISCONNECTED, NONE, STOPPED, 0, OK, 29, 8, 92, 1107, 4083, 7, 12, -200                                 
14 Jul 2011 17:42:21, DISCONNECTED, NONE, STOPPED, 0, OK, 29, 8, 92, 1107, 4083, 7, 8, -200                                  
14 Jul 2011 17:42:36, DISCONNECTED, NONE, STOPPED, 0, OK, 29, 8, 92, 1107, 4083, 6, 9, -200                                  
#attaching charger                                                                                                           
14 Jul 2011 17:42:51, CONNECTED, USBWALL, STARTED, 30, OK, 29, 8, 92, 1107, 4182, -421, -46, -200                            
14 Jul 2011 17:43:06, CONNECTED, USBWALL, STARTED, 30, OK, 29, 8, 92, 1107, 4182, -409, -420, -202                           
14 Jul 2011 17:43:21, CONNECTED, USBWALL, STARTED, 30, OK, 29, 8, 92, 1107, 4187, -387, -397, -204                           
14 Jul 2011 17:43:36, CONNECTED, USBWALL, STARTED, 29, OK, 29, 8, 92, 1111, 4187, -372, -378, -205                           
14 Jul 2011 17:43:51, CONNECTED, USBWALL, STARTED, 29, OK, 29, 8, 92, 1111, 4187, -361, -365, -207                           
14 Jul 2011 17:44:06, CONNECTED, USBWALL, STARTED, 29, OK, 29, 8, 92, 1111, 4182, -352, -355, -208                           
14 Jul 2011 17:44:21, CONNECTED, USBWALL, STARTED, 29, OK, 29, 8, 92, 1111, 4187, -344, -347, -210                           
14 Jul 2011 17:44:36, CONNECTED, USBWALL, STARTED, 27, OK, 29, 8, 93, 1117, 4187, -338, -340, -211                           
14 Jul 2011 17:44:51, CONNECTED, USBWALL, STARTED, 27, OK, 29, 8, 93, 1117, 4187, -332, -334, -213                           
14 Jul 2011 17:45:06, CONNECTED, USBWALL, STARTED, 27, OK, 29, 8, 93, 1117, 4187, -326, -328, -214                           
14 Jul 2011 17:45:21, CONNECTED, USBWALL, STARTED, 27, OK, 29, 8, 93, 1117, 4187, -321, -323, -215                           
14 Jul 2011 17:45:36, CONNECTED, USBWALL, STARTED, 31, OK, 29, 8, 93, 1123, 4187, -316, -318, -217                           
14 Jul 2011 17:45:51, CONNECTED, USBWALL, STARTED, 31, OK, 29, 8, 93, 1123, 4187, -311, -313, -218                           
14 Jul 2011 17:46:06, CONNECTED, USBWALL, STARTED, 31, OK, 29, 8, 93, 1123, 4187, -307, -308, -219                           
14 Jul 2011 17:46:21, CONNECTED, USBWALL, STARTED, 31, OK, 29, 8, 93, 1123, 4187, -302, -304, -221                           
14 Jul 2011 17:46:36, CONNECTED, USBWALL, STARTED, 35, OK, 28, 8, 94, 1128, 4187, -298, -299, -222                           
14 Jul 2011 17:46:51, CONNECTED, USBWALL, STARTED, 35, OK, 28, 8, 94, 1128, 4187, -294, -295, -223                           
14 Jul 2011 17:47:06, CONNECTED, USBWALL, STARTED, 35, OK, 28, 8, 94, 1128, 4187, -290, -291, -224                           
14 Jul 2011 17:47:21, CONNECTED, USBWALL, STARTED, 35, OK, 28, 8, 94, 1128, 4187, -286, -287, -226                           
14 Jul 2011 17:47:36, CONNECTED, USBWALL, STARTED, 39, OK, 28, 8, 94, 1133, 4187, -281, -283, -227                           
14 Jul 2011 17:47:51, CONNECTED, USBWALL, STARTED, 39, OK, 28, 8, 94, 1133, 4187, -278, -279, -228                           
14 Jul 2011 17:48:06, CONNECTED, USBWALL, STARTED, 39, OK, 28, 8, 94, 1133, 4187, -274, -275, -229                           
14 Jul 2011 17:48:21, CONNECTED, USBWALL, STARTED, 39, OK, 28, 8, 94, 1133, 4187, -270, -271, -230                           
14 Jul 2011 17:48:36, CONNECTED, USBWALL, STARTED, 43, OK, 28, 8, 94, 1137, 4187, -266, -267, -231                           
14 Jul 2011 17:48:51, CONNECTED, USBWALL, STARTED, 43, OK, 28, 8, 94, 1137, 4187, -262, -263, -232                           
14 Jul 2011 17:49:06, CONNECTED, USBWALL, STARTED, 43, OK, 28, 8, 94, 1137, 4187, -258, -260, -233                           
14 Jul 2011 17:49:21, CONNECTED, USBWALL, STARTED, 43, OK, 28, 8, 94, 1137, 4187, -255, -256, -235                           
14 Jul 2011 17:49:36, CONNECTED, USBWALL, STARTED, 47, OK, 28, 8, 95, 1142, 4187, -251, -253, -236                           
14 Jul 2011 17:49:51, CONNECTED, USBWALL, STARTED, 47, OK, 28, 8, 95, 1142, 4187, -248, -249, -237                           
14 Jul 2011 17:50:06, CONNECTED, USBWALL, STARTED, 47, OK, 28, 8, 95, 1142, 4187, -244, -246, -238                           
14 Jul 2011 17:50:21, CONNECTED, USBWALL, STARTED, 47, OK, 28, 8, 95, 1142, 4187, -241, -242, -239                           
14 Jul 2011 17:50:36, CONNECTED, USBWALL, STARTED, 45, OK, 28, 8, 95, 1146, 4187, -238, -223, -240                           
14 Jul 2011 17:50:51, CONNECTED, USBWALL, STARTED, 45, OK, 28, 8, 95, 1146, 4187, -235, -236, -241                           
14 Jul 2011 17:51:06, CONNECTED, USBWALL, STARTED, 45, OK, 28, 8, 95, 1146, 4182, -231, -232, -242                           
14 Jul 2011 17:51:21, CONNECTED, USBWALL, STARTED, 45, OK, 28, 8, 95, 1146, 4187, -228, -229, -242                           
14 Jul 2011 17:51:36, CONNECTED, USBWALL, STARTED, 44, OK, 28, 8, 95, 1150, 4187, -225, -226, -243                           
14 Jul 2011 17:51:51, CONNECTED, USBWALL, STARTED, 44, OK, 28, 8, 95, 1150, 4187, -222, -223, -244                           
14 Jul 2011 17:52:06, CONNECTED, USBWALL, STARTED, 44, OK, 27, 8, 95, 1150, 4187, -219, -220, -245                           
14 Jul 2011 17:52:21, CONNECTED, USBWALL, STARTED, 44, OK, 27, 8, 95, 1150, 4187, -214, -217, -246                           
14 Jul 2011 17:52:36, CONNECTED, USBWALL, STARTED, 42, OK, 27, 8, 96, 1153, 4187, -213, -214, -247                           
14 Jul 2011 17:52:51, CONNECTED, USBWALL, STARTED, 42, OK, 27, 8, 96, 1153, 4187, -210, -211, -248                           
14 Jul 2011 17:53:06, CONNECTED, USBWALL, STARTED, 42, OK, 27, 8, 96, 1153, 4187, -207, -208, -249                           
14 Jul 2011 17:53:21, CONNECTED, USBWALL, STARTED, 42, OK, 27, 8, 96, 1153, 4187, -204, -191, -250                           
14 Jul 2011 17:53:36, CONNECTED, USBWALL, STARTED, 40, OK, 27, 8, 96, 1157, 4187, -201, -202, -250                           
14 Jul 2011 17:53:51, CONNECTED, USBWALL, STARTED, 40, OK, 27, 8, 96, 1157, 4187, -199, -199, -251                           
14 Jul 2011 17:54:06, CONNECTED, USBWALL, STARTED, 40, OK, 27, 8, 96, 1157, 4187, -195, -197, -252                           
14 Jul 2011 17:54:21, CONNECTED, USBWALL, STARTED, 40, OK, 27, 8, 96, 1157, 4187, -193, -194, -253                           
14 Jul 2011 17:54:36, CONNECTED, USBWALL, STARTED, 39, OK, 27, 8, 96, 1160, 4187, -190, -191, -254                           
14 Jul 2011 17:54:51, CONNECTED, USBWALL, STARTED, 39, OK, 27, 8, 96, 1160, 4187, -188, -189, -255                           
14 Jul 2011 17:55:06, CONNECTED, USBWALL, STARTED, 39, OK, 27, 8, 96, 1160, 4187, -185, -186, -255                           
14 Jul 2011 17:55:21, CONNECTED, USBWALL, STARTED, 39, OK, 27, 8, 96, 1160, 4187, -182, -183, -256                           
14 Jul 2011 17:55:36, CONNECTED, USBWALL, STARTED, 37, OK, 27, 8, 96, 1163, 4187, -180, -181, -257                           
14 Jul 2011 17:55:51, CONNECTED, USBWALL, STARTED, 37, OK, 27, 8, 96, 1163, 4187, -178, -178, -258                           
14 Jul 2011 17:56:06, CONNECTED, USBWALL, STARTED, 37, OK, 27, 8, 96, 1163, 4187, -175, -176, -258                           
14 Jul 2011 17:56:21, CONNECTED, USBWALL, STARTED, 37, OK, 27, 8, 96, 1163, 4187, -173, -173, -259                           
14 Jul 2011 17:56:36, CONNECTED, USBWALL, STARTED, 36, OK, 27, 8, 97, 1166, 4187, -170, -170, -260                           
14 Jul 2011 17:56:51, CONNECTED, USBWALL, STARTED, 36, OK, 27, 8, 97, 1166, 4187, -168, -168, -260                           
14 Jul 2011 17:57:06, CONNECTED, USBWALL, STARTED, 36, OK, 27, 8, 97, 1166, 4187, -166, -166, -261                           
14 Jul 2011 17:57:21, CONNECTED, USBWALL, STARTED, 36, OK, 27, 8, 97, 1166, 4187, -163, -164, -262                           
14 Jul 2011 17:57:36, CONNECTED, USBWALL, STARTED, 34, OK, 27, 8, 97, 1169, 4187, -161, -161, -262                           
14 Jul 2011 17:57:51, CONNECTED, USBWALL, STARTED, 34, OK, 27, 8, 97, 1169, 4187, -159, -159, -263                           
14 Jul 2011 17:58:06, CONNECTED, USBWALL, STARTED, 34, OK, 27, 8, 97, 1169, 4187, -156, -157, -264                           
14 Jul 2011 17:58:21, CONNECTED, USBWALL, STARTED, 34, OK, 27, 8, 97, 1169, 4187, -154, -155, -264                           
14 Jul 2011 17:58:36, CONNECTED, USBWALL, STARTED, 32, OK, 27, 8, 97, 1171, 4187, -152, -153, -265                           
14 Jul 2011 17:58:51, CONNECTED, USBWALL, STARTED, 32, OK, 27, 8, 97, 1171, 4187, -150, -150, -266                           
14 Jul 2011 17:59:06, CONNECTED, USBWALL, STARTED, 32, OK, 27, 8, 97, 1171, 4187, -148, -148, -266                           
14 Jul 2011 17:59:21, CONNECTED, USBWALL, STARTED, 32, OK, 27, 8, 97, 1171, 4187, -146, -146, -267                           
14 Jul 2011 17:59:36, CONNECTED, USBWALL, STARTED, 31, OK, 27, 8, 97, 1174, 4187, -144, -134, -267                           
14 Jul 2011 17:59:51, CONNECTED, USBWALL, STARTED, 31, OK, 27, 8, 97, 1174, 4187, -142, -142, -268                           
14 Jul 2011 18:00:06, CONNECTED, USBWALL, STARTED, 31, OK, 27, 8, 97, 1174, 4193, -139, -140, -269                           
14 Jul 2011 18:00:21, CONNECTED, USBWALL, STARTED, 31, OK, 26, 8, 97, 1174, 4187, -138, -138, -269                           
14 Jul 2011 18:00:36, CONNECTED, USBWALL, STARTED, 29, OK, 26, 8, 98, 1176, 4187, -136, -136, -270                           
14 Jul 2011 18:00:51, CONNECTED, USBWALL, STARTED, 29, OK, 26, 8, 98, 1176, 4187, -134, -134, -270                           
14 Jul 2011 18:01:06, CONNECTED, USBWALL, STARTED, 29, OK, 26, 8, 98, 1176, 4187, -132, -132, -271                           
14 Jul 2011 18:01:21, CONNECTED, USBWALL, STARTED, 29, OK, 26, 8, 98, 1176, 4187, -130, -131, -271                           
14 Jul 2011 18:01:36, CONNECTED, USBWALL, STARTED, 27, OK, 26, 8, 98, 1178, 4187, -128, -129, -272                           
14 Jul 2011 18:01:51, CONNECTED, USBWALL, STARTED, 27, OK, 26, 8, 98, 1178, 4187, -127, -127, -273                           
14 Jul 2011 18:02:06, CONNECTED, USBWALL, STARTED, 27, OK, 26, 8, 98, 1178, 4187, -125, -125, -273                           
14 Jul 2011 18:02:21, CONNECTED, USBWALL, STARTED, 27, OK, 26, 8, 98, 1178, 4187, -123, -124, -274                           
14 Jul 2011 18:02:36, CONNECTED, USBWALL, STARTED, 26, OK, 26, 8, 98, 1180, 4187, -121, -122, -274                           
14 Jul 2011 18:02:51, CONNECTED, USBWALL, STARTED, 26, OK, 26, 8, 98, 1180, 4187, -120, -112, -275                           
14 Jul 2011 18:03:06, CONNECTED, USBWALL, STARTED, 26, OK, 26, 8, 98, 1180, 4193, -118, -118, -275                           
14 Jul 2011 18:03:21, CONNECTED, USBWALL, STARTED, 26, OK, 26, 8, 98, 1180, 4187, -117, -117, -276                           
14 Jul 2011 18:03:36, CONNECTED, USBWALL, STARTED, 24, OK, 26, 8, 98, 1182, 4187, -115, -115, -276                           
14 Jul 2011 18:03:51, CONNECTED, USBWALL, STARTED, 24, OK, 26, 8, 98, 1182, 4187, -113, -113, -277                           
14 Jul 2011 18:04:06, CONNECTED, USBWALL, STARTED, 24, OK, 26, 8, 98, 1182, 4187, -112, -112, -277                           
14 Jul 2011 18:04:21, CONNECTED, USBWALL, STARTED, 24, OK, 26, 8, 98, 1182, 4187, -111, -110, -277                           
14 Jul 2011 18:04:36, CONNECTED, USBWALL, STARTED, 22, OK, 26, 8, 98, 1184, 4187, -109, -109, -278                           
14 Jul 2011 18:04:51, CONNECTED, USBWALL, STARTED, 22, OK, 26, 8, 98, 1184, 4187, -107, -107, -278                           
14 Jul 2011 18:05:06, CONNECTED, USBWALL, STARTED, 22, OK, 26, 8, 98, 1184, 4187, -106, -106, -279                           
14 Jul 2011 18:05:21, CONNECTED, USBWALL, STARTED, 22, OK, 26, 8, 98, 1184, 4187, -105, -104, -279                           
14 Jul 2011 18:05:36, CONNECTED, USBWALL, STARTED, 21, OK, 26, 8, 98, 1186, 4187, -103, -103, -280                           
14 Jul 2011 18:05:51, CONNECTED, USBWALL, STARTED, 21, OK, 26, 8, 98, 1186, 4187, -102, -95, -280                            
14 Jul 2011 18:06:06, CONNECTED, USBWALL, STARTED, 21, OK, 26, 8, 98, 1186, 4187, -100, -100, -280                           
14 Jul 2011 18:06:21, CONNECTED, USBWALL, STARTED, 21, OK, 26, 8, 98, 1186, 4187, -99, -99, -281                             
14 Jul 2011 18:06:36, CONNECTED, USBWALL, STARTED, 19, OK, 26, 8, 99, 1188, 4187, -97, -97, -281                             
14 Jul 2011 18:06:51, CONNECTED, USBWALL, STARTED, 19, OK, 26, 8, 99, 1188, 4182, -96, -96, -282                             
14 Jul 2011 18:07:06, CONNECTED, USBWALL, STARTED, 19, OK, 26, 8, 99, 1188, 4187, -94, -95, -282                             
14 Jul 2011 18:07:21, CONNECTED, USBWALL, STARTED, 19, OK, 26, 8, 99, 1188, 4187, -93, -93, -282                             
14 Jul 2011 18:07:36, CONNECTED, USBWALL, STARTED, 17, OK, 26, 8, 99, 1189, 4187, -92, -92, -283                             
14 Jul 2011 18:07:51, CONNECTED, USBWALL, STARTED, 17, OK, 26, 8, 99, 1189, 4187, -90, -91, -283                             
14 Jul 2011 18:08:06, CONNECTED, USBWALL, STARTED, 17, OK, 26, 8, 99, 1189, 4187, -89, -90, -284                             
14 Jul 2011 18:08:21, CONNECTED, USBWALL, STARTED, 17, OK, 26, 8, 99, 1189, 4187, -88, -88, -284                             
14 Jul 2011 18:08:36, CONNECTED, USBWALL, STARTED, 15, OK, 26, 8, 99, 1191, 4187, -87, -87, -284                             
14 Jul 2011 18:08:51, CONNECTED, USBWALL, STARTED, 15, OK, 26, 8, 99, 1191, 4187, -85, -80, -285                             
14 Jul 2011 18:09:06, CONNECTED, USBWALL, STARTED, 15, OK, 26, 8, 99, 1191, 4193, -85, -85, -285                             
14 Jul 2011 18:09:21, CONNECTED, USBWALL, STARTED, 15, OK, 26, 8, 99, 1191, 4193, -83, -84, -285                             
14 Jul 2011 18:09:36, CONNECTED, USBWALL, STARTED, 13, OK, 26, 8, 99, 1192, 4187, -82, -83, -286                             
14 Jul 2011 18:09:51, CONNECTED, USBWALL, STARTED, 13, OK, 26, 8, 99, 1192, 4187, -81, -82, -286                             
14 Jul 2011 18:10:06, CONNECTED, USBWALL, STARTED, 13, OK, 26, 8, 99, 1192, 4187, -80, -80, -286                             
14 Jul 2011 18:10:21, CONNECTED, USBWALL, STARTED, 13, OK, 26, 8, 99, 1192, 4187, -79, -79, -287                             
14 Jul 2011 18:10:36, CONNECTED, USBWALL, STARTED, 12, OK, 26, 8, 99, 1194, 4187, -78, -78, -287                             
14 Jul 2011 18:10:51, CONNECTED, USBWALL, STARTED, 12, OK, 26, 8, 99, 1194, 4187, -77, -77, -287                             
14 Jul 2011 18:11:06, CONNECTED, USBWALL, STARTED, 12, OK, 26, 8, 99, 1194, 4187, -77, -76, -288                             
14 Jul 2011 18:11:21, CONNECTED, USBWALL, STARTED, 12, OK, 26, 8, 99, 1194, 4187, -75, -75, -288                             
14 Jul 2011 18:11:36, CONNECTED, USBWALL, STARTED, 10, OK, 26, 8, 99, 1195, 4187, -75, -74, -288                             
14 Jul 2011 18:11:51, CONNECTED, USBWALL, STARTED, 10, OK, 26, 8, 99, 1195, 4187, -73, -68, -289                             
14 Jul 2011 18:12:06, CONNECTED, USBWALL, STARTED, 10, OK, 26, 8, 99, 1195, 4187, -73, -72, -289                             
14 Jul 2011 18:12:21, CONNECTED, USBWALL, STARTED, 10, OK, 26, 8, 99, 1195, 4187, -72, -72, -289                             
14 Jul 2011 18:12:36, CONNECTED, USBWALL, STARTED, 8, OK, 26, 8, 99, 1196, 4187, -71, -71, -290                              
14 Jul 2011 18:12:51, CONNECTED, USBWALL, STARTED, 8, OK, 26, 8, 99, 1196, 4187, -70, -70, -290                              
14 Jul 2011 18:13:06, CONNECTED, USBWALL, STARTED, 8, OK, 26, 8, 99, 1196, 4187, -69, -69, -290                              
14 Jul 2011 18:13:21, CONNECTED, USBWALL, STARTED, 8, OK, 26, 8, 99, 1196, 4193, -68, -68, -290                              
14 Jul 2011 18:13:36, CONNECTED, USBWALL, STARTED, 6, OK, 26, 8, 99, 1197, 4187, -67, -67, -291                              
14 Jul 2011 18:13:51, CONNECTED, USBWALL, STARTED, 6, OK, 26, 8, 99, 1197, 4187, -66, -66, -291                              
14 Jul 2011 18:14:06, CONNECTED, USBWALL, STARTED, 6, OK, 26, 8, 99, 1197, 4187, -66, -65, -291                              
14 Jul 2011 18:14:21, CONNECTED, USBWALL, STARTED, 6, OK, 26, 8, 99, 1197, 4187, -65, -65, -292                              
14 Jul 2011 18:14:36, CONNECTED, USBWALL, STARTED, 5, OK, 26, 8, 99, 1198, 4187, -64, -59, -292                              
14 Jul 2011 18:14:51, CONNECTED, USBWALL, STARTED, 5, OK, 26, 8, 99, 1198, 4187, -63, -63, -292                              
14 Jul 2011 18:15:06, CONNECTED, USBWALL, STARTED, 5, OK, 26, 8, 99, 1198, 4187, -62, -62, -292                              
14 Jul 2011 18:15:21, CONNECTED, USBWALL, STARTED, 5, OK, 26, 8, 99, 1198, 4187, -62, -61, -293                              
14 Jul 2011 18:15:36, CONNECTED, USBWALL, STARTED, 3, OK, 26, 8, 99, 1199, 4187, -61, -61, -293                              
14 Jul 2011 18:15:51, CONNECTED, USBWALL, STARTED, 3, OK, 26, 8, 99, 1199, 4187, -60, -60, -293                              
14 Jul 2011 18:16:06, CONNECTED, USBWALL, STARTED, 3, OK, 25, 8, 99, 1199, 4187, -59, -59, -293                              
14 Jul 2011 18:16:21, CONNECTED, USBWALL, STARTED, 3, OK, 26, 8, 99, 1199, 4187, -59, -59, -294                              
14 Jul 2011 18:16:36, CONNECTED, USBWALL, STARTED, 2, OK, 25, 8, 100, 1200, 4187, -57, -57, -294                             
14 Jul 2011 18:16:51, CONNECTED, USBWALL, STARTED, 2, OK, 25, 8, 100, 1200, 4187, -57, -57, -294                             
14 Jul 2011 18:17:06, CONNECTED, USBWALL, STARTED, 2, OK, 25, 8, 100, 1200, 4182, -56, -56, -294                             
14 Jul 2011 18:17:21, CONNECTED, USBWALL, STARTED, 2, OK, 25, 8, 100, 1200, 4182, -56, -52, -294                             
14 Jul 2011 18:17:36, CONNECTED, USBWALL, STARTED, 1, OK, 25, 8, 100, 1200, 4182, -55, -55, -295                             
14 Jul 2011 18:17:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 100, 1200, 4164, 13, -44, -295                            
14 Jul 2011 18:18:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 100, 1200, 4164, 12, 22, -295                             
14 Jul 2011 18:18:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 100, 1200, 4164, 12, 17, -295                             
14 Jul 2011 18:18:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 100, 1200, 4164, 13, 12, -295                             
14 Jul 2011 18:18:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 13, 16, -295                              
14 Jul 2011 18:19:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 13, 14, -295                              
14 Jul 2011 18:19:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4164, 12, 15, -294                              
14 Jul 2011 18:19:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 13, 16, -294                              
14 Jul 2011 18:19:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 13, 16, -294                              
14 Jul 2011 18:20:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 12, 14, -294                              
14 Jul 2011 18:20:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 12, 18, -294                              
14 Jul 2011 18:20:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 12, 15, -294                              
14 Jul 2011 18:20:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 12, 17, -294                              
14 Jul 2011 18:21:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 12, 15, -294                              
14 Jul 2011 18:21:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 13, 17, -294                              
14 Jul 2011 18:21:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 12, 15, -294                              
14 Jul 2011 18:21:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 13, 16, -294                              
14 Jul 2011 18:22:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 13, 14, -294                              
14 Jul 2011 18:22:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 12, 15, -294                              
14 Jul 2011 18:22:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 12, 14, -294                              
14 Jul 2011 18:22:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 12, 16, -294                              
14 Jul 2011 18:23:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 12, 14, -293                              
14 Jul 2011 18:23:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 39, 20, -293                              
14 Jul 2011 18:23:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 12, 16, -293                              
14 Jul 2011 18:23:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 12, 15, -293                              
14 Jul 2011 18:24:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 12, 19, -293                              
14 Jul 2011 18:24:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4147, 12, 13, -293                              
14 Jul 2011 18:24:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 12, 15, -293                              
14 Jul 2011 18:24:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 13, 14, -293                              
14 Jul 2011 18:25:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 13, 16, -293                              
14 Jul 2011 18:25:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 13, 17, -293                              
14 Jul 2011 18:25:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 12, 15, -293                              
14 Jul 2011 18:25:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 12, 13, -293                              
14 Jul 2011 18:26:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 13, 16, -293                              
14 Jul 2011 18:26:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 12, 14, -293                              
14 Jul 2011 18:26:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 12, 17, -293                              
14 Jul 2011 18:26:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4158, 13, 14, -292                              
14 Jul 2011 18:27:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 12, 18, -292                              
14 Jul 2011 18:27:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 12, 15, -292                              
14 Jul 2011 18:27:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 12, 18, -292                              
14 Jul 2011 18:27:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 12, 14, -292                              
14 Jul 2011 18:28:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 12, 17, -292                              
14 Jul 2011 18:28:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 13, 15, -292                              
14 Jul 2011 18:28:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 13, 16, -292                              
14 Jul 2011 18:28:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 12, 15, -292                              
14 Jul 2011 18:29:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 13, 18, -292                              
14 Jul 2011 18:29:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 12, 13, -292                              
14 Jul 2011 18:29:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 13, 18, -292                              
14 Jul 2011 18:29:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 12, 15, -292                              
14 Jul 2011 18:30:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 12, 19, -292                              
14 Jul 2011 18:30:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 13, 15, -292                              
14 Jul 2011 18:30:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1199, 4152, 13, 18, -291                              
14 Jul 2011 18:30:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1198, 4152, 12, 14, -291                              
14 Jul 2011 18:31:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1198, 4152, 12, 15, -291                              
14 Jul 2011 18:31:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1198, 4152, 12, 14, -291                              
14 Jul 2011 18:31:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1198, 4152, 13, 18, -291                              
14 Jul 2011 18:31:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1197, 4152, 13, 15, -291                              
14 Jul 2011 18:32:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1197, 4152, 12, 15, -291                              
14 Jul 2011 18:32:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1197, 4152, 13, 15, -291                              
14 Jul 2011 18:32:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1197, 4152, 13, 15, -291                              
14 Jul 2011 18:32:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1196, 4152, 12, 14, -291                              
14 Jul 2011 18:33:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1196, 4152, 12, 16, -291                              
14 Jul 2011 18:33:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1196, 4152, 12, 16, -291                              
14 Jul 2011 18:33:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1196, 4152, 14, 14, -291                              
14 Jul 2011 18:33:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1196, 4147, 12, 15, -291                              
14 Jul 2011 18:34:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1196, 4152, 14, 15, -291                              
14 Jul 2011 18:34:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1196, 4152, 12, 14, -290                              
14 Jul 2011 18:34:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1196, 4135, 12, 14, -290                              
14 Jul 2011 18:34:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1195, 4152, 13, 15, -290                              
14 Jul 2011 18:35:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1195, 4152, 12, 14, -290                              
14 Jul 2011 18:35:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1195, 4152, 12, 18, -290                              
14 Jul 2011 18:35:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1195, 4152, 12, 15, -290                              
14 Jul 2011 18:35:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1195, 4152, 12, 18, -290                              
14 Jul 2011 18:36:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1195, 4147, 13, 17, -290                              
14 Jul 2011 18:36:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1195, 4152, 12, 15, -290                              
14 Jul 2011 18:36:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1195, 4152, 12, 14, -290                              
14 Jul 2011 18:36:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1195, 4152, 12, 15, -290                              
14 Jul 2011 18:37:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1195, 4152, 12, 14, -290                              
14 Jul 2011 18:37:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1195, 4152, 12, 15, -290                              
14 Jul 2011 18:37:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1195, 4147, 12, 14, -290                              
14 Jul 2011 18:37:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1195, 4152, 12, 15, -290                              
14 Jul 2011 18:38:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1195, 4147, 13, 15, -290                              
14 Jul 2011 18:38:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1195, 4152, 12, 15, -289                              
14 Jul 2011 18:38:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1195, 4152, 12, 14, -289                              
14 Jul 2011 18:38:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1195, 4152, 44, 18, -289                              
14 Jul 2011 18:39:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1195, 4152, 12, 16, -289                              
14 Jul 2011 18:39:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1194, 4152, 13, 14, -289                              
14 Jul 2011 18:39:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1194, 4152, 12, 12, -289                              
14 Jul 2011 18:39:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1194, 4147, 12, 15, -289                              
14 Jul 2011 18:40:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1194, 4152, 13, 15, -289                              
14 Jul 2011 18:40:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1194, 4147, 13, 15, -289                              
14 Jul 2011 18:40:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1194, 4147, 12, 15, -289                              
14 Jul 2011 18:40:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1194, 4152, 12, 15, -289                              
14 Jul 2011 18:41:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1194, 4135, 12, 13, -289                              
14 Jul 2011 18:41:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1194, 4152, 14, 14, -289                              
14 Jul 2011 18:41:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1194, 4147, 12, 15, -289                              
14 Jul 2011 18:41:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1194, 4147, 12, 15, -289                              
14 Jul 2011 18:42:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1194, 4152, 12, 19, -288                              
14 Jul 2011 18:42:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1194, 4147, 13, 14, -288                              
14 Jul 2011 18:42:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1193, 4147, 13, 13, -288                              
14 Jul 2011 18:42:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1193, 4152, 12, 15, -288                              
14 Jul 2011 18:43:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1193, 4152, 12, 14, -288                              
14 Jul 2011 18:43:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1193, 4152, 13, 13, -288                              
14 Jul 2011 18:43:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1193, 4147, 15, 17, -288                              
14 Jul 2011 18:43:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1193, 4147, 12, 14, -288                              
14 Jul 2011 18:44:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1193, 4147, 13, 15, -288                              
14 Jul 2011 18:44:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1193, 4147, 12, 14, -288                              
14 Jul 2011 18:44:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1192, 4147, 14, 13, -288                              
14 Jul 2011 18:44:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1192, 4147, 12, 15, -288                              
14 Jul 2011 18:45:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1192, 4147, 13, 15, -288                              
14 Jul 2011 18:45:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1192, 4147, 13, 15, -288                              
14 Jul 2011 18:45:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1192, 4147, 12, 15, -288                              
14 Jul 2011 18:45:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1192, 4147, 13, 14, -288                              
14 Jul 2011 18:46:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1192, 4147, 13, 19, -287                              
14 Jul 2011 18:46:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1192, 4147, 13, 15, -287                              
14 Jul 2011 18:46:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1192, 4147, 13, 16, -287                              
14 Jul 2011 18:46:51, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1191, 4147, 12, 15, -287                              
14 Jul 2011 18:47:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1191, 4147, 12, 15, -287                              
14 Jul 2011 18:47:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1191, 4147, 12, 14, -287                              
14 Jul 2011 18:47:36, CONNECTED, USBWALL, STARTED, 0, FULL, 24, 8, 99, 1191, 4147, 44, 17, -287                              
14 Jul 2011 18:47:51, CONNECTED, USBWALL, STARTED, 0, FULL, 24, 8, 99, 1191, 4147, 12, 13, -287                              
#starting some consuming                                                                                                     
14 Jul 2011 18:48:06, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1191, 4141, 14, 45, -287                              
#like drive with BL on                                                                                                       
14 Jul 2011 18:48:21, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1191, 4141, 12, 32, -287                              
14 Jul 2011 18:48:36, CONNECTED, USBWALL, STARTED, 0, FULL, 25, 8, 99, 1191, 4083, 312, 178, -286                            
14 Jul 2011 18:48:51, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 99, 1189, 4094, 305, 291, -285                            
14 Jul 2011 18:49:06, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 99, 1189, 4071, 371, 309, -283                            
14 Jul 2011 18:49:21, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 99, 1189, 4071, 303, 212, -283                            
14 Jul 2011 18:49:36, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 99, 1189, 4100, 278, 195, -282                            
14 Jul 2011 18:49:51, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 99, 1189, 4106, 330, 155, -281                            
14 Jul 2011 18:50:06, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 98, 1184, 4100, 131, 201, -280                            
14 Jul 2011 18:50:21, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 98, 1184, 4112, 102, 137, -280                            
14 Jul 2011 18:50:36, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 98, 1184, 4106, 126, 160, -279                            
14 Jul 2011 18:50:51, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 98, 1184, 4118, 104, 153, -278                            
14 Jul 2011 18:51:06, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 98, 1182, 4100, 109, 137, -278                            
14 Jul 2011 18:51:21, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 98, 1182, 4100, 126, 147, -277                            
14 Jul 2011 18:51:36, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 98, 1182, 4112, 140, 115, -277                            
14 Jul 2011 18:51:51, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 98, 1182, 4065, 240, 140, -276                            
14 Jul 2011 18:52:06, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 98, 1182, 4065, 145, 166, -275                            
14 Jul 2011 18:52:21, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 98, 1179, 4100, 203, 162, -275                            
14 Jul 2011 18:52:36, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 98, 1179, 4106, 111, 123, -274                            
14 Jul 2011 18:52:51, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 98, 1179, 4094, 130, 134, -274                            
14 Jul 2011 18:53:06, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 98, 1179, 4106, 164, 150, -273                            
14 Jul 2011 18:53:21, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 98, 1177, 4106, 128, 132, -273                            
14 Jul 2011 18:53:36, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 98, 1177, 4106, 128, 137, -272                            
14 Jul 2011 18:53:51, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 98, 1177, 4059, 316, 187, -271                            
14 Jul 2011 18:54:06, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 98, 1177, 4065, 224, 193, -270                            
14 Jul 2011 18:54:21, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 97, 1174, 4100, 194, 173, -270                            
14 Jul 2011 18:54:36, CONNECTED, USBWALL, STARTED, 0, FULL, 26, 8, 97, 1174, 4106, 191, 164, -269                            
14 Jul 2011 18:54:51, CONNECTED, USBWALL, STARTED, 0, FULL, 27, 8, 97, 1174, 4106, 179, 156, -268                            
14 Jul 2011 18:55:06, CONNECTED, USBWALL, STARTED, 0, FULL, 27, 8, 97, 1174, 4100, 136, 204, -267                            
14 Jul 2011 18:55:21, CONNECTED, USBWALL, STARTED, 0, FULL, 27, 8, 97, 1171, 4083, 122, 139, -267                            
14 Jul 2011 18:55:36, CONNECTED, USBWALL, STARTED, 0, FULL, 27, 8, 97, 1171, 4100, 122, 154, -266                            
14 Jul 2011 18:55:51, CONNECTED, USBWALL, STARTED, 0, FULL, 27, 8, 97, 1171, 4100, 122, 137, -266                            
14 Jul 2011 18:56:06, CONNECTED, USBWALL, STARTED, 0, FULL, 27, 8, 97, 1171, 4100, 127, 147, -265                            
14 Jul 2011 18:56:21, CONNECTED, USBWALL, STARTED, 0, FULL, 27, 8, 97, 1168, 4100, 122, 133, -264                            
14 Jul 2011 18:56:36, CONNECTED, USBWALL, STARTED, 0, FULL, 27, 8, 97, 1168, 4077, 128, 147, -264                            
14 Jul 2011 18:56:51, CONNECTED, USBWALL, STARTED, 0, FULL, 27, 8, 97, 1168, 4065, 363, 201, -263                            
14 Jul 2011 18:57:06, CONNECTED, USBWALL, STARTED, 0, FULL, 27, 8, 97, 1168, 4094, 168, 187, -262                            
14 Jul 2011 18:57:21, CONNECTED, USBWALL, STARTED, 0, FULL, 27, 8, 97, 1168, 4077, 259, 223, -261                            
14 Jul 2011 18:57:36, CONNECTED, USBWALL, STARTED, 0, FULL, 27, 8, 97, 1165, 4071, 162, 220, -260                            
14 Jul 2011 18:57:51, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 97, 1165, 4059, 234, 237, -259                            
14 Jul 2011 18:58:06, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 97, 1165, 4077, 181, 198, -259                            
14 Jul 2011 18:58:21, CONNECTED, USBWALL, STARTED, 0, FULL, 27, 8, 97, 1165, 4094, 164, 168, -258                            
14 Jul 2011 18:58:36, CONNECTED, USBWALL, STARTED, 0, FULL, 27, 8, 96, 1162, 4042, 267, 169, -257                            
14 Jul 2011 18:58:51, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 96, 1162, 4048, 438, 314, -256                            
14 Jul 2011 18:59:06, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 96, 1162, 4083, 168, 222, -255                            
14 Jul 2011 18:59:21, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 96, 1162, 4083, 160, 174, -254                            
14 Jul 2011 18:59:36, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 96, 1158, 4065, 227, 195, -253                            
14 Jul 2011 18:59:51, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 96, 1158, 4054, 210, 193, -253                            
14 Jul 2011 19:00:06, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 96, 1158, 4088, 162, 174, -252                            
14 Jul 2011 19:00:21, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 96, 1158, 4065, 157, 160, -251                            
14 Jul 2011 19:00:36, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 96, 1155, 4065, 159, 159, -251                            
14 Jul 2011 19:00:51, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 96, 1155, 4088, 157, 158, -250                            
14 Jul 2011 19:01:06, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 96, 1155, 4088, 160, 159, -249                            
14 Jul 2011 19:01:21, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 96, 1155, 4083, 157, 157, -249                            
14 Jul 2011 19:01:36, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 96, 1152, 4088, 184, 167, -248                            
14 Jul 2011 19:01:51, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 96, 1152, 4065, 186, 186, -247                            
14 Jul 2011 19:02:06, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 96, 1152, 4065, 227, 189, -246                            
14 Jul 2011 19:02:21, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 96, 1152, 4065, 189, 188, -245                            
14 Jul 2011 19:02:36, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1149, 4083, 191, 197, -245                            
14 Jul 2011 19:02:51, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1149, 4059, 189, 189, -244                            
14 Jul 2011 19:03:06, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1149, 4059, 185, 188, -243                            
14 Jul 2011 19:03:21, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1149, 4059, 190, 188, -242                            
14 Jul 2011 19:03:36, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1145, 4054, 189, 185, -242                            
14 Jul 2011 19:03:51, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1145, 4071, 189, 204, -241                            
14 Jul 2011 19:04:06, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1145, 4054, 187, 189, -240                            
14 Jul 2011 19:04:21, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1145, 4054, 190, 187, -239                            
14 Jul 2011 19:04:36, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1145, 4054, 158, 163, -238                            
14 Jul 2011 19:04:51, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1142, 4077, 159, 160, -238                            
14 Jul 2011 19:05:06, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1142, 4054, 157, 159, -237                            
14 Jul 2011 19:05:21, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1142, 4042, 160, 160, -236                            
14 Jul 2011 19:05:36, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1142, 4054, 158, 161, -236                            
14 Jul 2011 19:05:51, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 94, 1139, 4071, 160, 161, -235                            
14 Jul 2011 19:06:06, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 94, 1139, 4077, 157, 161, -234                            
14 Jul 2011 19:06:21, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 94, 1139, 4141, -190, 122, -234                           
14 Jul 2011 19:06:36, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 94, 1139, 4152, -157, -168, -235                          
14 Jul 2011 19:06:51, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 94, 1139, 4147, -142, -148, -235                          
14 Jul 2011 19:07:06, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 94, 1139, 4147, -132, -136, -236                          
14 Jul 2011 19:07:21, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 94, 1139, 4147, -126, -128, -236                          
14 Jul 2011 19:07:36, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 94, 1139, 4141, -120, -122, -237                          
14 Jul 2011 19:07:51, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1141, 4147, -116, -117, -237                          
14 Jul 2011 19:08:06, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1141, 4147, -113, -114, -238                          
14 Jul 2011 19:08:21, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1141, 4147, -110, -110, -238                          
14 Jul 2011 19:08:36, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1141, 4147, -107, -108, -239                          
14 Jul 2011 19:08:51, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1143, 4147, -105, -106, -239                          
14 Jul 2011 19:09:06, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1143, 4147, -103, -104, -240                          
14 Jul 2011 19:09:21, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1143, 4147, -102, -102, -240                          
14 Jul 2011 19:09:36, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1143, 4147, -100, -100, -240                          
14 Jul 2011 19:09:51, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1145, 4147, -98, -99, -241                            
14 Jul 2011 19:10:06, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1145, 4147, -97, -97, -241                            
14 Jul 2011 19:10:21, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1145, 4147, -96, -96, -242                            
14 Jul 2011 19:10:36, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1145, 4135, -94, -95, -242                            
14 Jul 2011 19:10:51, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1146, 4147, -93, -93, -242                            
14 Jul 2011 19:11:06, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1146, 4147, -92, -92, -243                            
14 Jul 2011 19:11:21, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1146, 4147, -90, -91, -243                            
14 Jul 2011 19:11:36, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1146, 4147, -89, -89, -244                            
14 Jul 2011 19:11:51, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1148, 4147, -88, -88, -244                            
14 Jul 2011 19:12:06, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1148, 4141, -87, -87, -244                            
14 Jul 2011 19:12:21, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1148, 4147, -86, -86, -245                            
14 Jul 2011 19:12:36, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1148, 4147, -85, -79, -245                            
14 Jul 2011 19:12:51, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1149, 4141, -84, -84, -245                            
14 Jul 2011 19:13:06, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1149, 4147, -83, -83, -246                            
14 Jul 2011 19:13:21, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1149, 4147, -82, -82, -246                            
14 Jul 2011 19:13:36, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1149, 4147, -80, -80, -246                            
14 Jul 2011 19:13:51, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1151, 4147, -79, -80, -247                            
14 Jul 2011 19:14:06, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1151, 4147, -79, -78, -247                            
14 Jul 2011 19:14:21, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1151, 4147, -78, -78, -247                            
14 Jul 2011 19:14:36, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1151, 4152, -77, -77, -248                            
14 Jul 2011 19:14:51, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1152, 4147, -75, -76, -248                            
14 Jul 2011 19:15:06, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1152, 4147, -75, -74, -248                            
14 Jul 2011 19:15:21, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1152, 4147, -74, -74, -249                            
14 Jul 2011 19:15:36, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1152, 4147, -73, -73, -249                            
14 Jul 2011 19:15:51, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1153, 4152, -72, -72, -249                            
14 Jul 2011 19:16:06, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1153, 4147, -58, -70, -250                            
14 Jul 2011 19:16:21, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1153, 4147, -70, -69, -250                            
14 Jul 2011 19:16:36, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1153, 4147, -69, -69, -250                            
14 Jul 2011 19:16:51, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1154, 4135, -69, -69, -250                            
14 Jul 2011 19:17:06, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1154, 4147, -68, -68, -251                            
14 Jul 2011 19:17:21, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1154, 4147, -67, -67, -251                            
14 Jul 2011 19:17:36, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1154, 4147, -66, -66, -251                            
14 Jul 2011 19:17:51, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1155, 4147, -65, -65, -252                            
14 Jul 2011 19:18:06, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1155, 4147, -64, -64, -252                            
14 Jul 2011 19:18:21, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1155, 4147, -63, -63, -252                            
14 Jul 2011 19:18:36, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1155, 4135, -62, -63, -252                            
14 Jul 2011 19:18:51, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1156, 4147, -62, -61, -253                            
14 Jul 2011 19:19:06, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1156, 4135, -61, -61, -253                            
14 Jul 2011 19:19:21, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1156, 4158, -60, -60, -253                            
14 Jul 2011 19:19:36, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1156, 4135, -60, -59, -253                            
14 Jul 2011 19:19:51, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1157, 4147, -59, -59, -254
14 Jul 2011 19:20:06, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1157, 4147, -58, -58, -254
14 Jul 2011 19:20:21, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1157, 4083, 161, -37, -254
14 Jul 2011 19:20:36, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1157, 4065, 160, 160, -253
14 Jul 2011 19:20:51, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1157, 4100, 166, 165, -253
14 Jul 2011 19:21:06, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1157, 4088, 167, 167, -252
14 Jul 2011 19:21:21, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1157, 4077, 163, 167, -251
14 Jul 2011 19:21:36, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1157, 4094, 165, 166, -251
14 Jul 2011 19:21:51, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1157, 4088, 164, 167, -250
14 Jul 2011 19:22:06, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1154, 4088, 164, 164, -249
14 Jul 2011 19:22:21, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1154, 4088, 169, 167, -248
14 Jul 2011 19:22:36, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1154, 4088, 164, 168, -248
14 Jul 2011 19:22:51, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 96, 1154, 4065, 162, 166, -247
#one charge cycle above
14 Jul 2011 19:23:06, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1151, 4088, 158, 181, -246
#now stopping consumers and locking screen
14 Jul 2011 19:23:21, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1151, 4077, 159, 194, -245
14 Jul 2011 19:23:36, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1151, 4100, 31, 169, -245
14 Jul 2011 19:23:51, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1151, 4106, 12, 21, -245
14 Jul 2011 19:24:06, CONNECTED, USBWALL, STARTED, 0, FULL, 29, 8, 95, 1149, 4106, 12, 18, -245
14 Jul 2011 19:24:21, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1149, 4106, 12, 14, -245
14 Jul 2011 19:24:36, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1149, 4112, 12, 13, -244
14 Jul 2011 19:24:51, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1149, 4112, 13, 12, -244
#notice voltage *rising*
14 Jul 2011 19:25:06, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1149, 4106, 13, 34, -244
14 Jul 2011 19:25:21, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1148, 4112, 14, 19, -244
14 Jul 2011 19:25:36, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1148, 4106, 12, 13, -244
14 Jul 2011 19:25:51, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1148, 4112, 13, 16, -244
14 Jul 2011 19:26:06, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1148, 4112, 13, 16, -244
14 Jul 2011 19:26:21, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1148, 4112, 14, 13, -244
14 Jul 2011 19:26:36, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1148, 4112, 13, 14, -244
14 Jul 2011 19:26:51, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1148, 4106, 13, 15, -244
14 Jul 2011 19:27:06, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1148, 4106, 14, 19, -244
14 Jul 2011 19:27:21, CONNECTED, USBWALL, STARTED, 0, FULL, 28, 8, 95, 1148, 4106, 12, 15, -244
14 Jul 2011 19:27:36, CONNECTED, USBWALL, STARTED, 0, FULL, 27, 8, 95, 1148, 4106, 13, 13, -244
14 Jul 2011 19:27:51, CONNECTED, USBWALL, STARTED, 0, FULL, 27, 8, 95, 1148, 4112, 14, 13, -244
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/tools</title>
    <id>4355</id>
    <revision>
      <id>50214</id>
      <timestamp>2012-10-16T23:28:28Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">&lt;s&gt;All these hacks are tested on PR1.2(!!), but the cmdlines here are just off top of my head, so maybe typos or sth can be found. Lots of it will work on PR1.3 as well, but I haven't tested anything for PR1.3 yet.&lt;/s&gt; &quot;Tested&quot; on CSSU-Tmaemo5.1
Please report on http://wiki.maemo.org/index.php?title=User_talk:Joerg_rw/tools&amp;action=edit . Thanks!
&lt;s&gt;Actually recent switching to PR1.3 + Community-SSU resulted in a quite similar set of system properties. So most of the things below are not needed anymore, &lt;/s&gt;except of course the gnu sanitizing of busybox crap.

So first '''install CSSU!'''  http://wiki.maemo.org/Community_SSU -- EDIT: no, first read next paragraph about patching eMMC image prior to flashing, since obviously you should flash ''before'' installing anything, not after ;-)

You did that? Fine, let's go on...

To make the plastic case melt and burn your fingers and your cat, click http://joerg.cloud-7.de/repositories.install (includes the catalogs aka repositories '''test, devel, and tools'''. Attention, will create dups, so check your '''catalog list''' in HAM anyway. You should keep all three catalogs usually disabled in HAM!)


If you feel like, patch eMMC aka *VANILLA* image file for '''larger /home partition''' (/opt is a bindmount to /home/opt, so this is also a way to have more free space to install apps) - much easier than repartitioning the N900 *after* flashing. So if that's not obvious, this part is meant to be done on your linux desktop PC, prior to fresh full flash of N900):
&lt;pre&gt;
NEW-HOME-SIZE=4096
# Size is in MB, tested up to 8192, changing number of chars known to 
# break things, so for 5digit values you might need more sophisticated edits.
# Theoretical limit ~28GB
sed -e &quot;s/2048/$NEW-HOME-SIZE/&quot; path/to/*VANILLA*.bin &gt;patched-VANILLA.bin
&lt;/pre&gt;

''the section in this image file is close to the head of file and looks like:''
&lt;pre&gt;
mmc {
        name = &quot;internal&quot;;
        partition {
                fs_type = &quot;vfat&quot;;
                prefix = &quot;mydocs&quot;;
                no_create = true;
        }
        partition {
                size = 2048;
                fs_type = &quot;ext3&quot;;
                prefix = &quot;home&quot;;
        }
        partition {
                size = 768;
                fs_type = &quot;swap&quot;;
        }
}
&lt;/pre&gt;
''as this looks like a format free grammar, it's probably possible to &quot;steal&quot; whitespace from start of line to allow for 5 digit numbers ''. Something like:
&lt;pre&gt;
sed -e &quot;s/.size = 2048/size = 16192/&quot; path/to/*VANILLA*.bin &gt;patched-VANILLA.bin
&lt;/pre&gt;


Miniwrapper for '''apt-get logs'''.
The text below is intended to c&amp;p to N900 xterm, or ssh session to N900 on your PC (all in a root account where not mentioned otherwise - first snippet takes care of this by the first line &quot;root&quot;). You should highlight a whole white box or at least a whole § beginning with ####line and insert the whole text as one chunk to your N900 or ssh remote terminal. I took care about long lines by continuation\
marks\
so don't break up a block that consists of lines ending with \


&lt;pre&gt;
root
cat &gt;/usr/local/bin/apt-get &lt;&lt;&quot;wikiETX&quot;
#! /bin/sh
## file /usr/local/bin/apt-get
## due to $PATH will override original apt-get cmd and create
## a file installed-aps.sh in ~root/ which can be sourced to redo
## all the apps installed via `apt-get install &lt;app&gt;`

ag=/usr/bin/apt-get
case &quot;$1&quot; in
 &quot;install&quot;)
    echo '############ logged install ###########'
    $ag &quot;$@&quot; &amp;&amp; echo &quot;$ag $@ ;#`date`&quot; &gt;&gt;$HOME/installed-aps.sh
    ;;
 &quot;dist-upgrade&quot;|&quot;autoremove&quot;)
    # autoremove kills rtcom-accounts-voip-support
    # see http://talk.maemo.org/showthread.php?t=70875
    echo &quot;NONONO!! Don't do that!&quot;
    exit 5
    ;;
 *)
    $ag &quot;$@&quot;
esac
wikiETX
chmod a+x /usr/local/bin/apt-get
&lt;/pre&gt;



proper '''bash and tools'''
&lt;pre&gt;
apt-get install bash3

cat &lt;&lt;&quot;wikietx&quot; &gt;/home/user/.bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.

PATH=/usr/bin/gnu:$PATH
export PS1='\h:\w\$ '
umask 022

# You may uncomment the following lines if you want `ls' to be colorized:
export LS_OPTIONS='--color=auto'
#### for unclear reasons messybox feels obliged to source .bashrc &gt;:-(
#### so this will break the messy ls, and you'll need to use bash
eval &quot;`dircolors`&quot;
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
#alias rm='rm -i'
#alias cp='cp -i'
#alias mv='mv -i'
wikietx

cp /home/user/.bashrc /root/

chown user /home/user/.bashrc

apt-get install coreutils-gnu

### breaks cssu-t5.1 MP, so it's commented out. Use on own peril: 
### apt-get install procps

apt-get install less
apt-get install findutils
apt-get install locate

###obsolete since repo pkg fixed:
####patch updatedb to avoid borked messybox find:
###sed -i 's@{BINDIR}/find@{BINDIR}/gfind@' /usr/bin/gnu/updatedb

apt-get install man-db-n900
&lt;/pre&gt;

random stuff to config / fix 'things' (c&amp;p to shell)
&lt;pre&gt;

###########################################
# disable annoying xchat notifications introduced with some more recent update
# goes along with 'undocumented' command /notify_mode -vl - thanks cehteh :-/
mv /usr/lib/xchat/plugins /usr/lib/xchat/plugins_disabled


###########################################
# master device name, replace with iroN900 *your* fav name
echo IroN900 &gt;/etc/hostname


############################################ 
# kill that cherry PITA, before it sends SMS  --  STILL ACTUAL!
# see http://wiki.maemo.org/PR1.2_compulsory_My_Nokia_subscription
touch /home/user/.cherry_state


###########################################
##   OBSOLETE with CSSU, so now commented out #o#   #####
# fix annoying hildon-desktop cpu hog bug
## new: with ctrl-BS for nice taskswitching, see
## http://my.arava.co.il/~matan/repo/Modified_Hildon_Desktop.html
## and http://share.ovi.com/media/joerg900.screenshots/joerg900.10092 video

#o#cd ~user/MyDocs/tmp/

##wget http://mohammadag.xceleo.org/repo/pool/\
##free/h/hildon-desktop/hildon-desktop_2.2.142-1_armel.deb
#o#wget http://my.svgalib.org/770/n900/hd-2.2.141/\
#o#modified-hildon-desktop_3.1_armel.deb

##dpkg -i hildon-desktop_2.2.142-1_armel.deb
#o#dpkg -i modified-hildon-desktop_3.1_armel.deb

#o#killall hildon-desktop

# set ctl-BS to my preferred operation mode, '
##     also for CSSU!!'   ##
#
# As it seems I haven't documented it elsewhere, here are the nifty 
# keypress-sequences.
#      (C=control, B=backspace, Cd=control-press-and-hold, Cu=control-release)
# Cd,Bd = open taskswitcher; Bu,Bd = roll forward; Cu,Cd = roll-backward
# Bu,Cu = select upper leftmost / Cu,Bu = keep taskswitcher open
# with taskswitcher open: 
#  &quot;q&quot;|&quot;w&quot;|&quot;e&quot;\&quot;a&quot;|&quot;s&quot;|&quot;f&quot;... select app at that pos
#  Shift+&quot;q&quot;|&quot;w&quot;... close that app

gconftool-2 -s \
 /apps/osso/hildon-desktop/key-actions/ctrl_backspace_in_tasknav -t int 5

##   OBSOLETE with CSSU   #o# #####
#... and restore apt-get install (it's a metapkg, 
# so nothing bad seems to happen)
# might want to apt-get install it prior to next SSU to PR1.3
#o#apt-get remove mp-fremantle-generic-pr



###########################################
# fix NOPASSWD for root / sudo gainroot
# this will allow your N900 to ask for ROOT password on &quot;root&quot; 
# and &quot;sudo gainroot&quot; as it's supposed to be
# MAKE SURE YOU'VE SET PROPER ROOT PASSWORD PRIOR TO THIS! In expression
# type
#    root
#    passwd
# and enter your root password two times, then (as root) do
sed -e &quot;s/Defaults env_reset/Defaults env_reset\nDefaults targetpw/;\
 s+user ALL = NOPASSWD: /usr/sbin/gainroot+user ALL =\
 PASSWD: /usr/sbin/gainroot+&quot; \
 -i  /etc/sudoers.d/01sudo
update-sudoers
#this is how my 01sudo looks after the edit (excerpt):
# Defaults env_reset
# Defaults targetpw
# user ALL = PASSWD: /usr/sbin/gainroot
# user ALL = NOPASSWD: /usr/sbin/mmc-mount /dev/mmcblk0 /media/mmc1




###########################################
# nice trackerd, doesn't exactly make it bearable, but somewhat less sucking
sed -i -e &quot;s/Throttle=0/Throttle=10/&quot; /home/user/.config/tracker/tracker.cfg

###########################################
# &quot;fix&quot; the hold-key=sym nonsense
# http://wiki.maemo.org/Customizing_Maemo#Keyboard_Sym_on_auto_hold
gconftool-2 -s /apps/osso/inputmethod/ext_kb_repeat_enabled --type boolean true


###########################################
##   OBSOLETE with CSSU   #o######
# NK-Enter bug, putting less +/, htop &quot;search&quot;, and many other back to proper
# https://bugs.maemo.org/show_bug.cgi?id=6009
## PR1.3: [2010-10-25 19:05:34] &lt;agi&gt; chem|st: seems to work just fine (re: libvte4)
#o#cd ~user/MyDocs/tmp/
#o#wget --no-check-certificate \
#o# https://bugs.maemo.org/attachment.cgi?id=2705 \
#o# -O libvte4_0.16.14-0mh9.m5_armel.deb
#o#dpkg -i libvte4_0.16.14-0mh9.m5_armel.deb


#!/bin/sh
# execute or source this to fix the missing end-times in eventslogger db
# thanks hcm @ http://talk.maemo.org/showpost.php?p=690253&amp;postcount=20
## find original at http://maemo.cloud-7.de/maemo5/patches_n_tools/eventsdb_calllog_triggers.sh
sqlite3 -batch /home/user/.rtcom-eventlogger/el-v1.db &lt;&lt;ETX
DROP TRIGGER IF EXISTS call_duration_inbound;
CREATE TRIGGER call_duration_inbound AFTER UPDATE OF inbound_gsm ON call_duration FOR EACH ROW WHEN new.inbound_gsm &gt; 0
BEGIN
	update events set end_time = (case when end_time=0 then start_time else end_time end) + ((select new.inbound_gsm) - (select old.inbound_gsm))
	where id = (select id from events where event_type_id = 1 and outgoing = 0 and service_id = 1 and local_uid='ring/tel/ring' order by start_time desc limit 1);
END;


DROP TRIGGER IF EXISTS call_duration_outbound;
CREATE TRIGGER call_duration_outbound AFTER UPDATE OF outbound_gsm ON call_duration FOR EACH ROW WHEN new.outbound_gsm &gt; 0
BEGIN
	update events set end_time = (case when end_time=0 then start_time else end_time end) + ((select new.outbound_gsm) - (select old.outbound_gsm))
	where id = (select id from events where event_type_id = 1 and outgoing = 1 and service_id = 1 and local_uid='ring/tel/ring' order by start_time desc limit 1);
END;


DROP TRIGGER IF EXISTS call_duration_voip_in;
CREATE TRIGGER call_duration_voip_in AFTER UPDATE OF inbound_voip ON call_duration FOR EACH ROW WHEN new.inbound_voip &gt; 0
BEGIN
	update events set end_time = (case when end_time=0 then start_time else end_time end) + ((select new.inbound_voip) - (select old.inbound_voip))
	where id = (select id from events where event_type_id = 1 and outgoing = 0 and service_id = 1 and local_uid!='ring/tel/ring' order by start_time desc limit 1);
END;


DROP TRIGGER IF EXISTS call_duration_voip_out;
CREATE TRIGGER call_duration_voip_out AFTER UPDATE OF outbound_voip ON call_duration FOR EACH ROW WHEN new.outbound_voip &gt; 0
BEGIN
	update events set end_time = (case when end_time=0 then start_time else end_time end) + ((select new.outbound_voip) - (select old.outbound_voip))
	where id = (select id from events where event_type_id = 1 and outgoing = 1 and service_id = 1 and local_uid!='ring/tel/ring' order by start_time desc limit 1);
END;
ETX

&lt;/pre&gt;


/etc/X11/Xsession.d/10hildon_welcome  = starter for video
/opt/usr/share/hildon-welcome/media/Hands-v32-h264.avi = shaking-hands-video

http://maemo.cloud-7.de/maemo5/bootvideo-DONTPANIC/ (the original author please holler - I forgot your name :-/ )

tracker fixing index for .ogg: 
sudo /var/lib/dpkg/info/decoders-support.postinst

==things (not only) for CSSU==
I currently updated to &lt;s&gt;16.5&lt;/s&gt;CSSU-Tmaemo5.1.

fix a bug that re-appears with each new CSSU upgrade:
&lt;pre&gt;
apt-get install rtcom-accounts-voip-support 
&lt;/pre&gt;

To get rid of the ubiquitous autorotating while still allowing dialer to switch to portrait mode (doesn't lock microB, for now I will live with it):
&lt;pre&gt;
gconftool-2 --set /apps/osso/hildon-desktop/ui_can_rotate -t bool false
reboot
&lt;/pre&gt;

&lt;pre&gt;
#replace Hands by DONT_PANIC! bootmovie
cd /opt/usr/share/hildon-welcome/media
wget http://maemo.cloud-7.de/maemo5/bootvideo-DONTPANIC/dontpanic.avi
#cp /etc/hildon-welcome.d/default.conf \
# /etc/hildon-welcome.d/default.conf_backup #makes BOTH videos play at boot :)
## to &quot;uninstall&quot; simply edit the file below 
## to read  &quot;filename=Hands-v32-h264.avi&quot;
echo -e &quot;[hildon-welcome]\nfilename=dontpanic.avi&quot; &gt;/etc/hildon-welcome.d/default.conf
&lt;/pre&gt;



A job I start on my PC every day, via cron, like 'N900-rsync IroN900' (IroN900 is resolving to my N900's local IP in WLAN, via /etc/hosts. You as well can use a numerical IP). It automatically creates and keeps up-to-date a backup of N900's / (root) and /home/ (user data and opt). If my N900 is &quot;not at home&quot;, the job will sleep until it becomes available again (I probably could handle better the rare case where I'm away for &gt;24h, but it doesn't create too much trouble, just a bit of useless wlan traffic):
&lt;pre&gt;
#!/bin/sh
## call with parameter &lt;IP of maemo device to sync&gt;
## NB this has a path relative to $HOME of user calling the job

while ! rsync -vaRzx --fake-super root@$1:/ ~/Documents/N900/backup/$1; do 
  echo &quot;$1 not available via ssh, retrying in 30 minutes&quot;; 
  sleep 1800; 
done
echo &quot;########## rootfs synced, now syncing /home&quot;

while ! rsync -vaRzx --fake-super root@$1:/home ~/Documents/N900/backup/$1/home; do 
  echo &quot;$1 not available via ssh, retrying in 30 minutes&quot;; 
  sleep 1800; 
done
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/usb-networking</title>
    <id>5212</id>
    <revision>
      <id>48463</id>
      <timestamp>2012-06-15T23:26:42Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">connect via USB cable - stop/kill networkmanager if it turns out it interferes with manual setup on your PC
&lt;pre&gt;
laptop:~ # tail -f /var/log/syslog
##click &quot;PC suite mode, on N900 -&gt;

Jun 15 23:43:34 HaleBopp kernel: [171995.846433] usb 1-1: USB disconnect, device number 9
Jun 15 23:43:34 HaleBopp dbus-daemon[1069]: **** REMOVING /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-1/1-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb
Jun 15 23:43:34 HaleBopp dbus-daemon[1069]: **** EMITTING REMOVED for /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-1/1-1:1.0/host7/target7:0:0/7:0:0:0/block/sdb
Jun 15 23:43:34 HaleBopp dbus-daemon[1069]: **** REMOVING /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-1/1-1:1.0/host7/target7:0:0/7:0:0:1/block/sdc
Jun 15 23:43:34 HaleBopp dbus-daemon[1069]: **** EMITTING REMOVED for /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-1/1-1:1.0/host7/target7:0:0/7:0:0:1/block/sdc
Jun 15 23:43:34 HaleBopp dbus-daemon[1069]: **** scsi_host IGNORING REMOVE /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-1/1-1:1.0/host7/scsi_host/host7
Jun 15 23:43:35 HaleBopp kernel: [171996.849156] usb 1-1: new high speed USB device number 10 using ehci_hcd
Jun 15 23:43:35 HaleBopp kernel: [171996.964379] usb 1-1: New USB device found, idVendor=0421, idProduct=01c8
Jun 15 23:43:35 HaleBopp kernel: [171996.964383] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Jun 15 23:43:35 HaleBopp kernel: [171996.964387] usb 1-1: Product: N900 (PC-Suite Mode)
Jun 15 23:43:35 HaleBopp kernel: [171996.964390] usb 1-1: Manufacturer: Nokia
Jun 15 23:43:35 HaleBopp kernel: [171996.989324] cdc_acm 1-1:1.6: This device cannot do calls on its own. It is not a modem.
Jun 15 23:43:35 HaleBopp kernel: [171996.989448] cdc_acm 1-1:1.6: ttyACM0: USB ACM device
Jun 15 23:43:35 HaleBopp kernel: [171996.990659] usbcore: registered new interface driver cdc_acm
Jun 15 23:43:35 HaleBopp kernel: [171996.990661] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Jun 15 23:43:35 HaleBopp kernel: [171997.001495] cdc_ether 1-1:1.8: usb0: register 'cdc_ether' at usb-0000:00:1a.7-1, CDC Ethernet Device, fe:3c:f6:21:f9:97
Jun 15 23:43:35 HaleBopp kernel: [171997.002233] usbcore: registered new interface driver cdc_ether
Jun 15 23:43:35 HaleBopp modem-manager[1425]: &lt;info&gt;  (ttyACM0) opening serial port...
Jun 15 23:43:35 HaleBopp dbus-daemon[1069]: modem-manager[1425]: &lt;info&gt;  (ttyACM0) opening serial port...
Jun 15 23:43:35 HaleBopp ifup[14725]: Service network not started and mode 'auto' -&gt; skipping
Jun 15 23:43:35 HaleBopp ifup[14724]: Service network not started and mode 'auto' -&gt; skipping
Jun 15 23:43:40 HaleBopp modem-manager[1425]: &lt;info&gt;  (ttyACM0) closing serial port...
Jun 15 23:43:40 HaleBopp dbus-daemon[1069]: modem-manager[1425]: &lt;info&gt;  (ttyACM0) closing serial port...
Jun 15 23:43:40 HaleBopp modem-manager[1425]: &lt;info&gt;  (ttyACM0) serial port closed
Jun 15 23:43:40 HaleBopp dbus-daemon[1069]: modem-manager[1425]: &lt;info&gt;  (ttyACM0) serial port closed
Jun 15 23:43:40 HaleBopp modem-manager[1425]: &lt;info&gt;  (ttyACM0) opening serial port...
Jun 15 23:43:40 HaleBopp dbus-daemon[1069]: modem-manager[1425]: &lt;info&gt;  (ttyACM0) opening serial port...
Jun 15 23:43:40 HaleBopp modem-manager[1425]: &lt;info&gt;  (Nokia): GSM modem /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-1 claimed port ttyACM0
Jun 15 23:43:40 HaleBopp dbus-daemon[1069]: modem-manager[1425]: &lt;info&gt;  (Nokia): GSM modem /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-1 claimed port ttyACM0
Jun 15 23:43:40 HaleBopp modem-manager[1425]: &lt;info&gt;  (ttyACM0) closing serial port...
Jun 15 23:43:40 HaleBopp dbus-daemon[1069]: modem-manager[1425]: &lt;info&gt;  (ttyACM0) closing serial port...
Jun 15 23:43:40 HaleBopp modem-manager[1425]: &lt;info&gt;  (ttyACM0) serial port closed
Jun 15 23:43:40 HaleBopp dbus-daemon[1069]: modem-manager[1425]: &lt;info&gt;  (ttyACM0) serial port closed
laptop:~ # ^C
laptop:~ # ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:24:7E:DA:92:BA  
          inet addr:192.168.1.32  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:864130 errors:0 dropped:0 overruns:0 frame:0
          TX packets:860517 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:662287573 (631.6 Mb)  TX bytes:175300050 (167.1 Mb)
          Interrupt:20 Memory:fc200000-fc220000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:142 errors:0 dropped:0 overruns:0 frame:0
          TX packets:142 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:18498 (18.0 Kb)  TX bytes:18498 (18.0 Kb)

usb0      Link encap:Ethernet  HWaddr FE:3C:F6:21:F9:97  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

usbpn0    Link encap:UNSPEC  HWaddr 1B-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          POINTOPOINT NOARP  MTU:65541  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

wlan0     Link encap:Ethernet  HWaddr 00:1E:65:CF:8F:5C  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
&lt;/pre&gt;

now on N900 (need xterm installed for that, and rootsh):
&lt;pre&gt;
~&gt; root
password:

Nokia-N900:~# ifconfig -a
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:33 errors:0 dropped:0 overruns:0 frame:0
          TX packets:33 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3991 (3.8 KiB)  TX bytes:3991 (3.8 KiB)

phonet0   Link encap:UNSPEC  HWaddr 15-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          UP POINTOPOINT RUNNING NOARP  MTU:4000  Metric:1
          RX packets:197 errors:0 dropped:0 overruns:0 frame:0
          TX packets:226 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:3952 (3.8 KiB)  TX bytes:3129 (3.0 KiB)

upnlink0  Link encap:UNSPEC  HWaddr 1B-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          UP POINTOPOINT RUNNING NOARP  MTU:49152  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

usb0      Link encap:Ethernet  HWaddr AA:91:D6:60:5A:E0  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr 2C:D2:E7:0C:76:60  
          inet addr:192.168.1.34  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4381 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2645 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6118630 (5.8 MiB)  TX bytes:275129 (268.6 KiB)

wmaster0  Link encap:UNSPEC  HWaddr 00-1F-DF-A5-C1-A7-00-00-00-00-00-00-00-00-00-00  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Nokia-N900:~# 

Nokia-N900:~# 
Nokia-N900:~# ifconfig usb0 192.168.5.111 netmask 255.255.255.0
Nokia-N900:~# ifconfig usb0                                    
usb0      Link encap:Ethernet  HWaddr AA:91:D6:60:5A:E0  
          inet addr:192.168.5.111  Bcast:192.168.5.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Nokia-N900:~# 
&lt;/pre&gt;


on PC:
&lt;pre&gt;

HaleBopp:~ # ifconfig usb0 192.168.5.110 netmask 255.255.255.0
HaleBopp:~ # /sbin/route add -host 192.168.5.111/32 dev usb0
HaleBopp:~ # route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
192.168.1.0     *               255.255.255.0   U     1      0        0 eth0
192.168.5.0     *               255.255.255.0   U     0      0        0 usb0
wap11.kicker.de *               255.255.255.255 UH    0      0        0 usb0
HaleBopp:~ # ifconfig usb0
usb0      Link encap:Ethernet  HWaddr FE:3C:F6:21:F9:97  
          inet addr:192.168.5.110  Bcast:192.168.5.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:4241 (4.1 Kb)

HaleBopp:~ # ping 192.168.5.111
PING 192.168.5.111 (192.168.5.111) 56(84) bytes of data.
64 bytes from 192.168.5.111: icmp_seq=1 ttl=64 time=0.792 ms
64 bytes from 192.168.5.111: icmp_seq=2 ttl=64 time=0.495 ms
64 bytes from 192.168.5.111: icmp_seq=3 ttl=64 time=0.357 ms
64 bytes from 192.168.5.111: icmp_seq=4 ttl=64 time=0.499 ms
^C
--- 192.168.5.111 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.357/0.535/0.792/0.161 ms
HaleBopp:~ # 
#### I also installed sshd and set password via the dialog that pops up during installation
HaleBopp:~ # ssh 192.168.5.111
The authenticity of host '192.168.5.111 (192.168.5.111)' can't be established.
RSA key fingerprint is 5d:16:83:dd:37:c9:26:04:2c:2e:d8:67:44:b3:1f:89.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.5.111' (RSA) to the list of known hosts.
root@192.168.5.111's password: 


BusyBox v1.10.2 (Debian 3:1.10.2.legal-1osso30+0m5) built-in shell (ash)
Enter 'help' for a list of built-in commands.

Nokia-N900:~# 
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/xchat/</title>
    <id>4686</id>
    <revision>
      <id>41564</id>
      <timestamp>2011-02-01T21:34:01Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">[[User:Joerg_rw/xchat/colors.conf]]

[[User:Joerg_rw/xchat/keybindings.conf]]

[[User:Joerg_rw/xchat/xchat.conf]]


[[User:Joerg_rw/xchat/loginhost.xsh]]

[[User:Joerg_rw/xchat/notify.sh]]</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/xchat/colors.conf</title>
    <id>4506</id>
    <revision>
      <id>39287</id>
      <timestamp>2010-10-03T12:55:25Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>New page: &lt;pre&gt; color_0 = cccc cccc cccc color_1 = 3030 3030 3030 color_2 = 35c2 35c2 b332 color_3 = 2a3d 8ccc 2a3d color_4 = c3c3 3b3b 3b3b color_5 = c7c7 3232 3232 color_6 = 8000 2666 7fff color_7...</comment>
      <text xml:space="preserve">&lt;pre&gt;
color_0 = cccc cccc cccc
color_1 = 3030 3030 3030
color_2 = 35c2 35c2 b332
color_3 = 2a3d 8ccc 2a3d
color_4 = c3c3 3b3b 3b3b
color_5 = c7c7 3232 3232
color_6 = 8000 2666 7fff
color_7 = 6666 3636 1f1f
color_8 = d999 a6d3 4147
color_9 = 3d70 cccc 3d70
color_10 = 199a 5555 5555
color_11 = 2eef 8ccc 74df
color_12 = 451e 451e e666
color_13 = b0b0 3737 b0b0
color_14 = 4c4c 4c4c 4c4c
color_15 = 9595 9595 9595
color_16 = cccc cccc cccc
color_17 = 3030 3030 3030
color_18 = 35c2 35c2 b332
color_19 = 2a3d 8ccc 2a3d
color_20 = c3c3 3b3b 3b3b
color_21 = c7c7 3232 3232
color_22 = 8000 2666 7fff
color_23 = 6666 3636 1f1f
color_24 = d999 a6d3 4147
color_25 = 3d70 cccc 3d70
color_26 = 199a 5555 5555
color_27 = 2eef 8ccc 74df
color_28 = 451e 451e e666
color_29 = b0b0 3737 b0b0
color_30 = 4c4c 4c4c 4c4c
color_31 = 9595 9595 9595
color_256 = 0000 0000 0000
color_257 = 62c0 62c0 eaaa
color_258 = 0000 0000 0000
color_259 = ffff ffff ffff
color_260 = cccc 1010 1010
color_261 = 9999 0000 0000
color_262 = 0000 0000 ffff
color_263 = ffff 0000 0000
color_264 = 9595 9595 9595
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/xchat/keybindings.conf</title>
    <id>4505</id>
    <revision>
      <id>48692</id>
      <timestamp>2012-07-07T01:56:15Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <text xml:space="preserve">&lt;pre&gt;
# XChat key bindings config file

S
Down
Next Command
D1!
D2!

None
Down
Scroll Page
D1:+1
D2!

None
Up
Scroll Page
D1:-1
D2!

None
KP_Enter
Check For Replace
D1!
D2!

S
space
Complete nick/command
D1:Up
D2!

S
Up
Last Command
D1!
D2!

C
F7
Change Page
D1:1
D2:Relative

C
F8
Change Page
D1:-1
D2:Relative

C
Page_Up
Scroll Page
D1:-1
D2:Relative

C
Page_Down
Change Page
D1:1
D2:Relative

A
9
Change Page
D1:9
D2!

A
8
Change Page
D1:8
D2!

A
7
Change Page
D1:7
D2!

A
6
Change Page
D1:6
D2!

A
5
Change Page
D1:5
D2!

A
4
Change Page
D1:4
D2!

A
3
Change Page
D1:3
D2!

A
2
Change Page
D1:2
D2!

A
1
Change Page
D1:1
D2!

C
o
Insert in Buffer
D1:�
D2!

C
b
Insert in Buffer
D1:�
D2!

C
k
Insert in Buffer
D1:�
D2!

S
Page_Down
Change Selected Nick
D1!
D2!

S
Page_Up
Change Selected Nick
D1:Up
D2!

None
Page_Down
Scroll Page
D1:Down
D2!

None
Page_Up
Scroll Page
D1:Up
D2!

None
Tab
Complete nick/command
D1!
D2!

None
Return
Check For Replace
D1!
D2!

A
Left
Move front tab left
D1!
D2!

A
Right
Move front tab right
D1!
D2!

CS
Page_Up
Move tab family left
D1!
D2!

CS
Page_Down
Move tab family right
D1!
D2!

None
F9
Run Command
D1:/GUI MENU TOGGLE
D2!

C
KP_Enter
Toggle fullscreen
D1!
D2!

&lt;/pre&gt;


a more recent version:
&lt;pre&gt;
IroN900:~# cat ~user/.xchat2/keybindings.conf 
# XChat key bindings config file

None
Up
Scroll Page
D1:-1
D2!

S
space
Complete nick/command
D1:Up
D2!

None
Down
Scroll Page
D1:+1                                                                                                                                                                 
D2!                                                                                                                                                                   
                                                                                                                                                                      
S                                                                                                                                                                     
Up                                                                                                                                                                    
Last Command                                                                                                                                                          
D1!
D2!

None
F8
Change Page
D1:-1
D2:Relative

None
F7
Change Page
D1:1
D2:Relative

S
Down
Next Command
D1!
D2!

C
o
Insert in Buffer
D1:
D2!

C
b
Insert in Buffer
D1:
D2!

C
Page_Up
Scroll Page
D1:-1
D2:Relative

C
Page_Down
Change Page
D1:1
D2:Relative

A
9
Change Page
D1:9
D2!

A
8
Change Page
D1:8
D2!

A
7
Change Page
D1:7
D2!

A
6
Change Page
D1:6
D2!

A
5
Change Page
D1:5
D2!

A
4
Change Page
D1:4
D2!

A
3
Change Page
D1:3
D2!

A
2
Change Page
D1:2
D2!

A
1
Change Page
D1:1
D2!

C
k
Insert in Buffer
D1:
D2!

None
Tab
Complete nick/command
D1!
D2!

None
Return
Check For Replace
D1!
D2!

A
Left
Move front tab left
D1!
D2!

A
Right
Move front tab right
D1!
D2!

CS
Page_Up
Move tab family left
D1!
D2!

CS
Page_Down
Move tab family right
D1!
D2!

None
F9
Run Command
D1:/GUI MENU TOGGLE
D2!

C
KP_Enter
Toggle fullscreen
D1!
D2!

IroN900:~# 
&lt;/pre&gt;

actually there are some weird things in there:
&lt;pre&gt;
                                                                                                                                                                     
C                                                                                                                                                                     
o                                                                                                                                                                     
Insert in Buffer                                                                                                                                                      
D1:^O                                                                                                                                                                 
D2!                                                                                                                                                                   
                                                                                                                                                                      
C                                                                                                                                                                     
b                                                                                                                                                                     
Insert in Buffer                                                                                                                                                      
D1:^B                                                                                                                                                                 
D2!                                                                                                                                                                   

...

                                                                                                                                                                      
C                                                                                                                                                                     
k                                                                                                                                                                     
Insert in Buffer                                                                                                                                                      
D1:^C                                                                                                                                                                 
D2!                                                                                                                                                                   
 &lt;/pre&gt;
no idea about those (above is a copy from mcedit)

probably editing the file manually to just have those keys, should suffice:
&lt;pre&gt;
S
space
Complete nick/command
D1:Up
D2!

None
Up
Scroll Page
D1:-1
D2!

None
Down
Scroll Page
D1:+1                                                                                                                                                                 
D2!                                                                                                                                                                   
                                                                                                                                                                      
S                                                                                                                                                                     
Up                                                                                                                                                                    
Last Command                                                                                                                                                          
D1!
D2!

S
Down
Next Command
D1!
D2!

None
F8
Change Page
D1:-1
D2:Relative

None
F7
Change Page
D1:1
D2:Relative
&lt;/pre&gt;

in sequence they are: 
 shift-space for nick-completion
 scroll back/forth with up/down-cursor key
 navigate thru history with shift-up/down
 navigate tabs/channels with volume keys</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/xchat/loginhost.xsh</title>
    <id>4504</id>
    <revision>
      <id>39285</id>
      <timestamp>2010-10-03T12:47:42Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>New page: &lt;pre&gt; nick Docscrutemp msg nickserv ghost DocScrutinizer51 mypassword timer 6 nick DocScrutinizer51 msg nickserv id joerg_rw mypassword &lt;/pre&gt;</comment>
      <text xml:space="preserve">&lt;pre&gt;
nick Docscrutemp
msg nickserv ghost DocScrutinizer51 mypassword
timer 6 nick DocScrutinizer51
msg nickserv id joerg_rw mypassword
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/xchat/notify.sh</title>
    <id>4503</id>
    <revision>
      <id>39284</id>
      <timestamp>2010-10-03T12:44:43Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>New page: &lt;pre&gt; #!/bin/sh play-sound $1 dbus-send --print-reply --system --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_vibrator_pattern_activate string:PatternChatAndEmail &lt;/...</comment>
      <text xml:space="preserve">&lt;pre&gt;
#!/bin/sh
play-sound $1
dbus-send --print-reply --system --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_vibrator_pattern_activate string:PatternChatAndEmail
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Joerg rw/xchat/xchat.conf</title>
    <id>4502</id>
    <revision>
      <id>39283</id>
      <timestamp>2010-10-03T12:41:40Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>New page: &lt;pre&gt; version = 2.8.6 auto_save = 1 auto_save_url = 0 away_auto_unmark = 0 away_reason = I'm busy away_show_message = 0 away_show_once = 1 away_size_max = 300 away_timeout = 60 away_track ...</comment>
      <text xml:space="preserve">&lt;pre&gt;
version = 2.8.6
auto_save = 1
auto_save_url = 0
away_auto_unmark = 0
away_reason = I'm busy
away_show_message = 0
away_show_once = 1
away_size_max = 300
away_timeout = 60
away_track = 1
completion_amount = 5
completion_auto = 0
completion_sort = 1
completion_suffix = :
completion_cinsens = 0
dcc_auto_chat = 0
dcc_auto_resume = 1
dcc_auto_send = 2
dcc_blocksize = 1024
dcc_completed_dir = 
dcc_dir = /home/user/MyDocs/DCC_Downloads
dcc_fast_send = 1
dcc_global_max_get_cps = 0
dcc_global_max_send_cps = 0
dcc_ip = 
dcc_ip_from_server = 0
dcc_max_get_cps = 0
dcc_max_send_cps = 0
dcc_permissions = 384
dcc_port_first = 0
dcc_port_last = 0
dcc_remove = 0
dcc_save_nick = 0
dcc_send_fillspaces = 0
dcc_stall_timeout = 60
dcc_timeout = 180
dnsprogram = host
flood_ctcp_num = 5
flood_ctcp_time = 30
flood_msg_num = 5
flood_msg_time = 30
gui_auto_open_chat = 1
gui_auto_open_dialog = 1
gui_auto_open_recv = 1
gui_auto_open_send = 1
gui_dialog_height = 256
gui_dialog_left = 0
gui_dialog_top = 0
gui_dialog_width = 500
gui_hide_menu = 0
gui_input_spell = 1
gui_input_style = 0
gui_join_dialog = 0
gui_lagometer = 3
gui_mode_buttons = 0
gui_pane_left_size = 111
gui_pane_right_size = 494
gui_quit_dialog = 1
gui_slist_select = 29
gui_slist_skip = 1
gui_throttlemeter = 3
gui_topicbar = 0
gui_tray = 0
gui_tray_flags = 0
gui_tweaks = 0
gui_ulist_buttons = 0
gui_ulist_doubleclick = QUOTE WHOIS %s %s
gui_ulist_hide = 1
gui_ulist_left = 0
gui_ulist_pos = 3
gui_ulist_resizable = 1
gui_ulist_show_hosts = 0
gui_ulist_sort = 0
gui_ulist_style = 0
gui_url_mod = 4
gui_usermenu = 0
gui_win_height = 424
gui_win_left = 0
gui_win_save = 1
gui_win_state = 0
gui_win_top = 0
gui_win_width = 800
input_balloon_chans = 0
input_balloon_hilight = 0
input_balloon_priv = 0
input_beep_chans = 0
input_beep_hilight = 0
input_beep_msg = 1
input_command_char = /
input_filter_beep = 0
input_flash_chans = 0
input_flash_hilight = 0
input_flash_priv = 0
input_perc_ascii = 0
input_perc_color = 0
input_tray_chans = 0
input_tray_hilight = 0
input_tray_priv = 0
irc_auto_rejoin = 0
irc_ban_type = 2
irc_conf_mode = 0
irc_extra_hilight = joerg,doc:,doc*izer
irc_hide_version = 0
irc_id_ntext = 
irc_id_ytext = 
irc_invisible = 0
irc_join_delay = 3
irc_logging = 0
irc_logmask = %n-%c.log
irc_nick1 = DocScrutinizer51
irc_nick2 = xxxxxxx
irc_nick3 = yyyyyyy
irc_nick_hilight = 
irc_no_hilight = NickServ,ChanServ
irc_part_reason = Leaving
irc_quit_reason = xchat sucks and needs a kick
irc_raw_modes = 0
irc_real_name = Joerg Reisenweber on N900
irc_servernotice = 0
irc_skip_motd = 0
irc_user_name = DocScrutemp
irc_wallops = 0
irc_who_join = 1
irc_whois_front = 0
net_auto_reconnect = 1
net_auto_reconnectonfail = 0
net_bind_host = 
net_ping_timeout = 240
net_proxy_auth = 0
net_proxy_host = 
net_proxy_pass = 
net_proxy_port = 0
net_proxy_type = 0
net_proxy_use = 0
net_proxy_user = 
net_reconnect_delay = 10
net_throttle = 1
notify_timeout = 15
notify_whois_online = 0
perl_warnings = 0
sound_command = /home/user/.xchat2/notify.sh
sound_dir = /usr/share/sounds
stamp_log = 1
stamp_log_format = %b %d %H:%M:%S 
stamp_text = 1
stamp_text_format = %H%M%S 
tab_chans = 1
tab_dialogs = 1
tab_layout = 0
tab_new_to_front = 2
tab_notices = 0
tab_pos = 1
tab_position = 2
tab_server = 1
tab_small = 1
tab_sort = 1
tab_trunc = 11
tab_utils = 0
text_background = 
text_color_nicks = 1
text_font = Nokia Sans 13
text_indent = 0
text_max_indent = 256
text_max_lines = 1500
text_replay = 1
text_show_marker = 1
text_show_sep = 1
text_stripcolor = 0
text_thin_sep = 1
text_tint_blue = 195
text_tint_green = 255
text_tint_red = 195
text_transparent = 0
text_wordwrap = 1
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Josefdk</title>
    <id>2876</id>
    <revision>
      <id>28268</id>
      <timestamp>2010-02-03T15:15:16Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Bookmarks */ remove link to page, content moved to [[Qt4 Hildon]]</comment>
      <text xml:space="preserve">Josef's page. Won't be anything interesting here, but I'll be creating subpages for mocking up pages.

[[User:josefdk/Main_Page_mockup|Mockup for the main page]]

[[User:josefdk/Intro_Mockup|Mockup for Intro wiki page]]

[[User:josefdk/App_List|Testing autogenerated applications list]]

== Bookmarks ==

[[Maemo.org_sprints|sprints]]

[[Qt4_Hildon]]</text>
    </revision>
  </page>
  <page>
    <title>User:Josefdk/App List</title>
    <id>3036</id>
    <revision>
      <id>43632</id>
      <timestamp>2011-05-27T17:42:54Z</timestamp>
      <contributor>
        <username>mrsellout</username>
        <id>3603</id>
      </contributor>
      <comment>Removed spam: '[http://www.resumewritingservice.biz/ resume writing service] [http://www.discount-lenses.com/halloween-contact-lenses.php halloween contacts] [http://www.diamondlinks.net/ link bui...'</comment>
      <text xml:space="preserve">Th contents of this table are (mostly) autogenerated from a python script which spiders [http://www.maemo.org/downloads/ Maemo downloads]. I'll upload it at some point.


{| border=&quot;1&quot; style=&quot;border: solid 1px;&quot;
! Application || OS Availability || Description
|-
| [[Super Mario War]] ||  OS2008 || Super Mario War is a Super Mario multiplayer game.
The goal is to stomp as many other Marios as possible to win the game.
|-
| [[Apache webserver]] ||  OS2008 || The Apache webserver, ported to OS2008.
|-
| [[Openssh-client]] ||  Maemo5 || Secure shell client, an rlogin/rsh/rcp replacement
|-
| [[GPE Summary]] ||  OS2007 OS2008 || Home applet to show gpe calendar events, birthdays and todos. Please install the gpe suite first (from cobb.uk.net; see the apps in this category).
|-
| [[Kagu Media Player]] ||  OS2006 OS2007 OS2008 || Kagu is a music player with A2DP and maemoscrobbler support, finger friendly inertial scrolling, theme engine, and intelligent screen/battery usage optimizations.
|-
| [[moreDimmingOptions]] ||  OS2007 OS2008 || An easy way to add more options to the Settings/Screen menu in Maemo (OS2007/Bora). Simply launches an appropriate .sh script to add more options for screen dimming and blanking timeouts (10, 30, 60 minutes, 8 hours, 24 hours).
|-
| [[Sokoban]] ||  OS2007 OS2008 || Still yet another Sokoban with many, many easy, medium and very difficult levels.
|-
| [[Bluetooth OBEX server]] ||  OS2006 || OBEX push/pull and ftp (folder listing, etc...) server. It allows you to send, receive and browse the files on your 770 from your desktop.
|-
| [[sayhoo]] ||  OS2008 || Sayhoo is an audio navigation help for urban bicycle use with some Velib' related features (station position and timers).
|-
| [[Descent II: First Person 3D Shoot&amp;#039;em up]] ||  OS2006 || Descent is (with Doom) one of the historic break-throughs in the 3d shoot'em up panorama.
|-
| [[btscanner]] ||  OS2006 || Simple, console based tool designed specifically to extract as much information as possible from a Bluetooth device without the requirement to pair.
|-
| [[GnomeSword Bible Study Software]] ||  OS2006 OS2007 || GnomeSword is a Bible study application. It is based on The SWORD Project by the CrossWire Bible Society.
|-
| [[findutils (find, xargs)]] ||  OS2006 || Full-featured version of 'find' and 'xargs' to replace the feature-reduced busybox find and xargs (e.g. supports case-insensitive find, '-iname').
|-
| [[pptpclient]] ||  OS2006 OS2007 || PPTP Client is a Linux client for the proprietary Microsoft Point-to-Point Tunneling Protocol, PPTP. Allows connection to a PPTP based Virtual Private Network (VPN).
|-
| [[Additional Maemo Internet Search Engines]] ||  OS2006 || The mis-*.deb packages in this repository add additional search engines to the Maemo Internet Search (MIS) applet: yahoo.com, amazon.com, maemo.org, maemo.org/bugzilla, postbank.de
|-
| [[Graphicsmagick]] ||  OS2008 || Collection of image processing tools image files. It is a fork of the ImageMagick project and therefore offers a similar set of features, but puts a larger emphasis on stability.
|-
| [[TiMidity++]] ||  OS2008 || TiMidity++ is a software synthesizer. It can play MIDI files by converting them into PCM waveform data; give it a MIDI data along with digital instrument data files, then it synthesizes them in real-time, and plays. It can not only play sounds, but also can save the generated waveforms into hard disks as various audio file formats.
|-
| [[ROXTerm]] ||  OS2008 || multi-tabbed GTK+2 terminal emulator application
|-
| [[Simple Launcher]] ||  OS2006 OS2007 || Simple launcher is an home applet for Maemo based systems. This small applet allows you to run your favourite applications with just one click (one click seems to be quite popular these days :)).
|-
| [[wirelesstools]] ||  OS2007 || Linux wireless tools: iwconfig iwpriv iwlist
|-
| [[iTablet]] ||  OS2007 || iTablet is an application launcher designed to mimic the iPhone's interface. Python is required to run. Please see &lt;a href=&quot;http://youtube.com/watch?v=SBII_P3EZiI&quot;&gt;this video&lt;/a&gt; for basic usage. Download link: &lt;a href=&quot;https://garage.maemo.org/frs/download.php/2907/itablet_0.08-1_armel.deb&quot;&gt;here&lt;/a&gt;.
|-
| [[cadaver]] ||  OS2006 || Cadaver is a nice command line WebDAV client. Plain rebuild of the Debian package.
|-
| [[Linux Nokia770-26 + IPv6 + Ext2 + MMC 2GB support]] ||  OS2006 || Another replacement for OS2006 kernel. This one has IPv6 support and Ext2 compiled in and supports 2GB MMC cards (not new for the November Release).
|-
| [[VNC Viewer]] ||  OS2006 OS2007 OS2008 || Virtual Network Computing (VNC) is a system which allows the user to view a 'desktop' environment from anywhere on the Internet.
|-
| [[Tuner]] ||  Maemo5 || Tuner is a helper tool for tuning musical instruments.
|-
| [[otpCalc]] ||  OS2006 || otpCalc is an RFC2289 and RFC1760 compliant OTP and S/Key calculator, usable for example to generate one time passwords to authenticate against services running OPIE
|-
| [[EasyChem Chemical Structures Editor]] ||  OS2006 OS2007 OS2008 || EasyChem is a program that helps you creating high quality diagrams of molecules and 2D chemical formulas that can be exported to PS, and fig.
|-
| [[Sopwith]] ||  OS2008 || port of the 1980's side-scrolling WWI dogfighting game
|-
| [[Grsync]] ||  OS2006 OS2007 OS2008 || Maemo 2.x / IT2006 porting of Grsync, a GUI for rsync (which can be obtained from this Application Catalog).
It works well under Maemo 3.x &quot;bora&quot; / IT2007 too.
|-
| [[Mauku]] ||  Maemo5 OS2006 OS2007 OS2008 || The micro-blogging client for Maemo devices (application)
|-
| [[Gnutar]] ||  OS2008 || 
|-
| [[Maemo-control]] ||  OS2008 || Metapackage to install extra control panel applets using USB Networking and controlling init.d services.
|-
| [[advoid]] ||  OS2008 || Provides adblocking for any browser/program using hostfile based adblocking.
|-
| [[TuioTablet TUIO Simulator]] ||  OS2008 || TuioTablet allows users of devices running Maemo to use their touchscreen as TUIO input device. TUIO messages are transported using UDP on the local network. This allows users to control TUIO-based multi-touch applications over the network.
|-
| [[Mediabox-internet-radio]] ||  OS2008 || Internet radio plugin for MediaBox with ShoutCast directory
|-
| [[Ttf-dejavu]] ||  OS2008 || Vera font family derivate with additional characters quality and broader Unicode coverage while retaining the original Vera style. DejaVu currently works towards conformance with the Multilingual European Standards (MES-1 and MES-2) for Unicode coverage. The DejaVu fonts provide serif, sans and monospaced variants.
|-
| [[Homecalendar]] ||  OS2008 || HomeCalendar is a home hildon desktop applet which display your current mCalendar event.
|-
| [[Shadow Warrior]] ||  OS2008 || Shadow Warrior is a first-person shooter game. It was originally developed by 3D Realms in 1997 and in 2005 source code was released under terms of GPL.
|-
| [[Quicknote]] ||  OS2007 OS2008 || Quicknote is a simple note taking program. It's written in python and optimised for quick usage. It supports categories and uses a sqlite db as backend.
|-
| [[aircrack-ng]] ||  OS2007 || 802.11 Wireless Security testing tool
|-
| [[WifiInfo]] ||  OS2006 OS2007 OS2008 || Shows some detailed information about your current WLAN connection.
|-
| [[LCARS PADD (Star Trek) Theme]] ||  OS2006 OS2007 || A theme to make the 770 and N800 look more like other Personal Access Display Devices on the Library Computer Access and Retrieval System
|-
| [[Fish Fillets]] ||  OS2008 || Fish Fillets is strictly a puzzle game. The goal in every of the seventy levels is always the same: find a safe way out. The fish utter witty remarks about their surroundings, the various inhabitants of their underwater realm quarrel among themselves or comment on the efforts of your fish. The whole game is accompanied by quiet, comforting music.
|-
| [[Test]] ||  OS2008 || test
|-
| [[Lybniz]] ||  Maemo5 OS2006 OS2007 OS2008 || Lybniz is a simple mathematical function graph plotter.
|-
| [[Comix]] ||  OS2008 || Comix is a user-friendly, customizable image viewer specifically designed to handle comic books. It reads images in ZIP, RAR or tar archives (also gzip or bzip2 compressed) as well as plain image files. This version is modified for better use with maemo.
|-
| [[Canola2-upnp-plugin]] ||  OS2008 || UPnP plugin for Canola2. Provides a plugin to browse and play media remotely from UPnP servers.
|-
| [[fMSX - MSX Home Computer Emulator]] ||  OS2008 || fMSX emulates MSX, MSX2, and MSX2+ home computers that have been popular in Japan, Netherlands, Russia, and Brazil. This version of fMSX has been specifically adapted for Nokia tablets. It supports joypad simulation with a stylus (or finger) input and will automatically open *.rom and *.dsk files from the file manager.
|-
| [[Isearch-edit]] ||  OS2008 || Edit and add new searches to you search applet searches to your internet search applet.
|-
| [[Gtk Shishen Sho Mahjongg]] ||  OS2008 || Shishen Sho Mahjongg is a board game similar to Mahjongg. The goal is to remove all the tile pairs.  Two tiles can be removed if a line with a maximum of three segments can be drawn between them.
|-
| [[nano]] ||  OS2006 OS2007 || Nano, the tiny text editor.  Needs xterm/ssh.
|-
| [[zToDo - Manage To Do lists]] ||  OS2008 || ToDo list manager that can sync with Outlook.
If sqlite does not install automatically, install it from http://repository.maemo.org/extras-devel/pool/diablo/free/source/p/pysqlite/pysqlite_2.4.1-1maemo0.dsc
|-
| [[IpHome homepage-plugin]] ||  OS2006 || hildon homepage plugin that shows current IP and TX/RX bytes and errors. Version 0.2 supports cycling through interfaces by tapping the plugin display panel.
|-
| [[SpotYah]] ||  OS2006 OS2007 || LocalSearch GUI for the Yahoo Search Web Services
|-
| [[OpenNTPD]] ||  OS2007 OS2008 || OpenNTPD is a FREE, easy to use implementation of the Network Time Protocol. It provides the ability to sync the local clock to remote NTP servers and can act as NTP server itself, redistributing the local clock.
|-
| [[HomeIP]] ||  OS2008 || HomeIP is a small widget which display your current IP on your desktop.
|-
| [[Wireless Tools]] ||  OS2006 || The Wireless Tools (WT) is a set of tools allowing to manipulate the Wireless Extensions.
|-
| [[sdcv with LightStar -- very light-weight dictionary]] ||  OS2007 || sdcv is a lightweight version of stardict dictionary, which runs on console.
|-
| [[Conboy - Note Taking Application (Tomboy Clone)]] ||  OS2008 || Conboy is a note taking application. It is designed to be easy to use - yet powerful. It can read and write the Tomboy file format to be compatible with Tomboy on Linux, Mac and Windows.
|-
| [[Barrage]] ||  OS2008 || Barrage is a artillery action game with the objective to kill and destroy as many targets as possible within 3 minutes. You control a gun that may either fire small or large grenades at soldiers, jeeps and tanks. Targets are fast paced and require careful aiming as it takes half a second to reload the gun. Additionally you have to keep an eye on your ammo and reload in time. Useful to kill some minutes of idle time. :)
|-
| [[Enigma]] ||  OS2007 OS2008 || Author's description : Enigma is a puzzle game inspired by Oxyd on the Atari ST and Rock'n'Roll on the Amiga. The object of the game is to find uncover pairs of identically colored Oxyd stones. Simple? Yes. Easy? Certainly not! Hidden traps, vast mazes, laser beams, and, most of all, countless hairy puzzles usually block your direct way to the Oxyd stones
|-
| [[Openssh]] ||  Maemo5 || Secure shell client and server
|-
| [[14pt Hildon Theme Plankton]] ||  OS2006 OS2007 || A modified set of the excellent theme just with 14pt default fonts
|-
| [[doc Reader]] ||  OS2006 OS2007 OS2008 || doc Reader is a graphic utility that lets you view MS Word documents as plaintext or export them in text or PDF format using antiword utility.
|-
| [[Iconset Shiny for OMWeather]] ||  Maemo5 || Shiny iconset
|-
| [[Mad Bomber]] ||  OS2008 || &quot;Mad Bomber&quot; is a clone of Activision's classic Atari 2600 console game, &quot;Kaboom!,&quot; by Larry Kaplan, with spruced-up graphics and sound effects, and music.
|-
| [[CPU/Mem/Screenshot applet]] ||  OS2006 || Load applet
|-
| [[Python-EFL demos]] ||  OS2007 || Demo of python-efl capabilities. This demos contains:
 - iPhone-like virtual keyboard.
 - Application launcher.
|-
| [[Old Time Radio Audio Player - otrplayer]] ||  OS2008 || Otrplayer is an audio player for MP3/OGG audio files. It is designed specifically for those who listen to Old Time Radio (OTR) shows. It is not for listening to music files. Its features include a pitch control, last played location saved, and fast advance and reverse. If you are new to OTR then go to archive.org and click on the audio section. Then search for the word &quot;OTR&quot;. You will find thousands of radio shows to listen to. Give it a try.
|-
| [[Mc]] ||  OS2008 || midnight commander - a powerful file manager uses a two panel interface and a subshell for command execution. It includes an internal editor with syntax highlighting and an internal viewer with support for binary files. Also included is Virtual Filesystem (VFS), that allows files on remote systems (e.g. FTP, SSH, SMB servers) and files inside archives to be manipulated like real files.
|-
| [[Maemo Blog]] ||  OS2006 OS2007 || A blogger client still very much under development.
|-
| [[Vista Sounds Effects]] ||  OS2008 || Vista sounds effect for OS2008
|-
| [[AlmostTI - TI Graphing Calculators Emulator]] ||  OS2008 || AlmostTI turns your internet tablet into an almost perfect copy of the TI82, TI83, TI83+, TI85, or TI86 programmable scientific calculator from Texas Instruments. You can use it exactly the same way as you would use any calculator application. ATI uses beautiful artwork from Andrew Zhilin (aka wazd).
|-
| [[Load Applet]] ||  OS2008 || Load applet shows CPU load, memory usage, SWAP activation and allows you to take screenshots in a convenient way
|-
| [[gpsd]] ||  OS2006 || GPS (Global Positioning System) service daemon
|-
| [[Evince Document Viewer]] ||  OS2006 OS2007 OS2008 || Evince is a document viewer for multiple document formats. It currently supports pdf, postscript, djvu, tiff and dvi.
|-
| [[Kobayashi theme]] ||  OS2008 || Monochrome LCD theme
|-
| [[pyculator home applet]] ||  OS2008 || Pyculator is a small calculator applet written in python.
|-
| [[Nicotine]] ||  OS2006 OS2007 OS2008 || Nicotine is a client for the Soulseek p2p protocol.
|-
| [[Nako - simple memory game]] ||  OS2008 || Nako is a simple memory game. Flip tiles in pairs, try to match them and clean the board.
|-
| [[Free42 HP calculator]] ||  Maemo5 OS2008 || HP RPN style calculator based on Free42.
|-
| [[Minimo/Mozilla Web Browser]] ||  OS2006 OS2007 || MiniMo (Mini Mozilla) Web browser is a slimmed down version of mozilla browser aiming resource reduced devices.
|-
| [[Duke Nukem 3D CD]] ||  OS2008 || Duke Nukem 3D is a first-person shooter computer game originally developed by 3D Realms and published by Apogee Software. This is a CD version of the game and it requires DUKE3D.GRP from the original game disk.
|-
| [[The Doorman]] ||  OS2006 || The doorman daemon &quot;guards the door&quot; of a host, admitting only recognized parties.
|-
| [[Borg]] ||  OS2008 || hildon borg theme
|-
| [[PySnippet]] ||  OS2006 OS2007 || PySnippet is a code snippet manager for any language. It features an user defined folder hierarchy, syntax highlighting, automatic clipboard copying and XML based data file.
|-
| [[Galculator]] ||  OS2008 || galculator is a GTK 2 based calculator with ordinary notation/reverse polish notation, a formula entry mode, different number bases (DEC, HEX, OCT, BIN) and different units of angular measure (DEG, RAD, GRAD).
|-
| [[Aard Dictionary]] ||  OS2008 || Aard Dictionary is a multiplatform dictionary and offline Wikipedia reader.
|-
| [[BRisa UPnP A/V Framework for Maemo]] ||  OS2007 || Brisa is written in Python and enables to create MediaServer/MediaRenderer devices allowing users to share and search content from UPnP A/V devices.
|-
| [[GPE Todo]] ||  OS2006 OS2007 OS2008 || A to-do list application, simple but known to be fast and stable.  Part of the GPE suite.
|-
| [[nmap]] ||  OS2007 || Nmap (&quot;Network Mapper&quot;) is a free and open source (license) utility for network exploration or security auditing. Many systems and network administrators also find it useful for tasks such as network inventory, managing service upgrade schedules, and monitoring host or service uptime.
|-
| [[GPS-Camera]] ||  OS2007 OS2008 || Gps-camera takes photos which can include gps-data (latitude and longitude) if application receives gps-data successfully. User can browse, delete and upload photos to Flickr. This camera is developed for N800 and bora.
|-
| [[vim]] ||  Maemo5 OS2008 || Powerful console text editor
|-
| [[Dali Clock]] ||  OS2008 || Hildonized and maemo-ized port of xdaliclock - fullscreen digital clock. When a digit changes, it &quot;melts&quot; into its new shape. The date is displayed when you touch the screen.
|-
| [[Midori]] ||  OS2008 || Midori is a lightweight web browser based on WebKit.
|-
| [[Conboy]] ||  Maemo5 || Conboy is a note taking application. It is a port of the famous Tomboy written in C.
|-
| [[Vncviewer]] ||  Maemo5 || A VNC viewer for maemo
|-
| [[Copernicium]] ||  Maemo5 || Periodic table of chemical elements.
|-
| [[Clock applet]] ||  OS2006 || Clock applet
|-
| [[bulldog58]] ||  OS2008 || as required.
|-
| [[LCARS Modern (Star Trek) theme]] ||  OS2008 || Blue theme, based on latest LCARS seen on NCC-1701-E
|-
| [[Kerez]] ||  OS2007 OS2008 || Kerez allows to store and execute the most commands used without using osso-xterm.
|-
| [[Maptile Loader]] ||  OS2008 || Maptile-loader is program that takes care that GPS City Guide gets maptiles needed.
|-
| [[MathJinni]] ||  OS2006 OS2007 OS2008 || A simple function calculator and plotter.
|-
| [[Labyrinth]] ||  OS2008 || Labyrinth is a lightweight mind-mapping tool, written in Python using Gtk
and Cairo to do the drawing. It is intended to be as light and intuitive as
possible, but still provide a wide range of powerful features.
|-
| [[Grisbi]] ||  OS2006 || Grisbi is a personnal accounting application running under GNU/Linux and Windows, released under the GPL licence.
|-
| [[Linux N800 with Ext2/3, smbfs and nfs]] ||  OS2007 || This is replacement for OS2007 kernel. Additional to orginal: Ext2/3 smbfs NFS
|-
| [[Descent 2x]] ||  OS2008 || D2X (Descent 2) compiled ready-to-run with demo data for maemo 8x0.  Uses pixel doubling but is also only 320x200 so graphics are still inset.
|-
| [[GPE PIM]] ||  OS2006 OS2007 || GPE is a personal information manager application suite that includes calendar, contacts, todo list, timesheet, file manager, music player. Please search for &quot;GPE&quot; to install each application.
|-
| [[IpHome]] ||  OS2008 || Shows current IP address on desktop
|-
| [[Tip Calculator]] ||  OS2008 || A tip calculator written in python/pygtk.  Features include:
* Separating tax and tip
* Splitting the bill
|-
| [[A1.net WebSMS Sender (smpy)]] ||  OS2008 || You need an A1.net account for this application.
|-
| [[Bash: GNU Bourne-Again Shell]] ||  OS2006 || Bash, the GNU Bourne-Again Shell, is a POSIX compliant but souped-up Bourne shell (UNIX command interpreter), with features missing from the Busybox shell such as command history substitution.
|-
| [[Linux Nokia770 + IPv6 + Ext2 + MMC 2GB + MMCPlus52Mhz support]] ||  OS2006 || Yet another replacement for OS2006 kernel. This one has IPv6 support and Ext2 compiled in and supports 2GB MMC cards with high-speed mode.
|-
| [[Mozilla based browser]] ||  OS2007 || MicroB Browser.
The Mozilla based browser for Maemo. Based on mozilla.org's current Gecko layout engine which will be version 1.9 when it is released with Firefox 3.0.
|-
| [[Tkabber]] ||  OS2007 || Tkabber is a GUI client for XMPP (Jabber) instant messaging protocol.  It provides full support of basic XMPP specifications as well as many  protocol extensions (XEPs), such as multi-user conferencing, file transfers, extensive handling of privacy lists and much more.
|-
| [[Nast]] ||  OS2006 || Network Analyzer Sniffer Tool
|-
| [[MCEGuru]] ||  OS2007 OS2008 || MCEGuru allows you to fully control your Windows Vista Media Center system. The Nokia tablet will act as a full featured bi-directionnal remote control (Supports TV, Movies, Photos, Music and much more).
|-
| [[Personal IP Address]] ||  Maemo5 || Personal IP Address for your desktop
|-
| [[EMUTools - Emulation Tools]] ||  OS2008 || EMUTools is a collection of command line utilities that help dealing with ROM images, disk images, soundtrack recordings, old assembly code, and so on. This package is mainly targeted at emulation and computer history enthusiasts.
|-
| [[Pyrecipe]] ||  Maemo5 || Pyrecipe Recipe Manager
|-
| [[AutoScan]] ||  OS2006 || AutoScan is an application designed to explore and manage your network. It features OS detection, automatic network discovery, a port scanner, ...
|-
| [[Xbill Maemo]] ||  OS2006 || Xbill Maemo
|-
| [[EmelFM2 File Manager]] ||  OS2007 OS2008 || A one or two pane file manager compiled for maemo.  Has built in file viewer and editor. Targeted towards advanced users, although beginners could find value if used carefully.
|-
| [[Stardict]] ||  OS2008 || Stardict is an international dictionary written in Gtk2. It has powerful features such as &quot;Glob-style pattern matching&quot;, &quot;Scan selection word,&quot; &quot;Fuzzy query,&quot; etc.
|-
| [[Kandis]] ||  OS2006 OS2007 OS2008 || A simple tea steeping timer.
|-
| [[Vista Theme]] ||  OS2008 || Vista Theme for OS2008
(this theme is just a funny theme, not an OS.
|-
| [[Blobby Volley 2]] ||  OS2008 || Arcade volley ball game
|-
| [[Quick Clip]] ||  OS2008 || A Status bar plugin to copy and save information. Quick Clip is a statusbar plugin that allows you to easily save information into a file for later reference. Whether that information is the current text-selection or something you just want to jot down, Quick Clip automates the whole process.
|-
| [[Mabugz]] ||  OS2006 OS2007 || Mabugz is a client to search in Bugzilla. It's specially designed to search in the maemo Bugzilla but it's useful with any other Bugzilla.
|-
| [[gTodo]] ||  OS2008 || gTodo is a simple GNOME todo list manager.
|-
| [[OpenSSH server]] ||  OS2006 OS2007 OS2008 || This is the portable version of OpenSSH, a free implementation of the Secure Shell protocol
|-
| [[FM Radio]] ||  OS2007 || Nokia FM Radio desktop applet. Listen to your favorite radio stations with your N800.
|-
| [[12pt Hildon Theme Plankton]] ||  OS2006 OS2007 || A modified set of the excellent theme just with 12pt default fonts
|-
| [[boafm]] ||  OS2008 || boaFM is an FM-radio application for Nokia N800 devices.
|-
| [[OpenLieroX]] ||  OS2008 || OpenLierox is an extremely addictive realtime worms shoot-em-up backed by an active gamers community.
Dozens of levels and mods are available to provide endless gaming pleasure.
|-
| [[Crimson Fields]] ||  OS2007 OS2008 || A tactical game in the style of Battle Isle.&lt;br /&gt;
Requires installation of libsdlttf and libsdl_net over &lt;a href=&quot;http://hildon-app-mgr.garage.maemo.org/redpill.html&quot;&gt;Red     Pill Mode&lt;/a&gt;.
|-
| [[Maemopicasa]] ||  OS2007 OS2008 || A Python application to upload photos from the tablet to your Picasa web album.
|-
| [[Sid support]] ||  OS2008 || C64 sid support for n800. Includes mime types and icons for sid. The meta package depends of sidplay library and the corresponding gst plugin.
|-
| [[PontMiller]] ||  OS2006 OS2007 || PontMiller is a quick and easy drawing program with 700+ small clipart files.
|-
| [[Buildtorrent]] ||  OS2008 || command line torrent creation program input file or directory, buildtorrent generates an output .torrent file that can be used by torrent clients.
|-
| [[Culmus]] ||  OS2008 || Type1 Hebrew Fonts for X11 fonts.
|-
| [[Joe&amp;#039;s Own Editor (joe)]] ||  OS2006 || Joe is a full featured terminal-based editor.
|-
| [[Powermanga]] ||  OS2006 OS2008 || Powermanga is an arcade 2D shoot-em-up game with 41 levels and more than 200 sprites.
|-
| [[XMaeme]] ||  OS2008 || Xmaeme is a graphical launcher for multiple emulators, including:
|-
| [[Mediabox-worldtv]] ||  OS2008 || Watch TV stations from around the world (using worldtv99)
|-
| [[give]] ||  OS2008 || Statusbar plugin for easy drag &amp;amp; drop data sending via Bluetooth.
|-
| [[OMWeather database for weather.com]] ||  Maemo5 || Stations database and source lib for weather.com
|-
| [[tnftp (lukemftp)]] ||  OS2006 || tnftp is a port of the NetBSD FTP command line client.
|-
| [[Dictzip]] ||  OS2008 || Compression utility for dictionary databases manner which is completely compatible with the gzip file format.  An extension to the gzip file format allows for random access to chunks of about 57kb without the overhead of decompressing the entire file. This package also includes dictunzip to decompress dictzipped files and dictzcat for viewing dictzipped files.
|-
| [[mogg: Ogg Vorbis support for maemo]] ||  OS2006 OS2007 OS2008 || mogg provides Ogg Vorbis support for the Nokia 770, N800 and N810.
|-
| [[mCalendar]] ||  OS2008 || mCalendar is a small calendar pim designed for thumb use on maemo. Of course mCalendar can sync with your google agenda.
|-
| [[socat]] ||  OS2006 || socat the Multipurpose relay
|-
| [[Iptables-ext]] ||  OS2008 || The rest of the iptables extensions.
|-
| [[EightyOne]] ||  OS2006 OS2007 OS2008 || A simple Sudoku clone. Creates new Sudokus on the fly. Current version now also supports generating riddles with a user defined complexity.
|-
| [[Wizard Mounter]] ||  OS2007 OS2008 || Wizard Mounter allow you to mount remote resources like NFS or SAMBA. It let you manage different bookmarks so you can save different profile for different network. Read the 'README_FIRST' on the project page.
Feedback is welcome.
|-
| [[Bluetooth plugin]] ||  OS2006 || A Maemo statusbar plugin that allows you to connect Bluetooth keyboards and GPS modules to the Nokia 770 Internet Tablet.
|-
| [[Dropbear SSH Server and Client]] ||  OS2006 OS2008 || Dropbear is a relatively small SSH 2 server and client.
|-
| [[Media Streamer for N800]] ||  OS2007 || Media Streamer is a UPnP AV control point and player application. This version works with the Nokia N800 Internet Tablet.
|-
| [[Pingus]] ||  OS2008 || Pingus is a free Lemmings-like game covered under the GNU GPL. It features currently 22 playable levels and runs under a wide variety of operating systems (Linux, Windows, etc.)
|-
| [[Mgcal]] ||  OS2008 || A Home Screen applet to display your google calendar
|-
| [[RulerJinni]] ||  OS2008 || On screen ruler for measuring small distances.
|-
| [[Navit]] ||  OS2008 || Navit is a car navigation system with routing engine.
It's modular design is capable of using vector maps of various formats for routing and rendering of the displayed map. It's even possible to use multiple maps at a time.
This is a very active project with an extensive thread at http://www.internettablettalk.com/forums/showthread.php?t=18093
|-
| [[Advanced Power Monitor]] ||  OS2008 || Daemon providing info via D-Bus: battery state, active time left, idle time left, OS version, free RAM, free swap, free disk space, internal temperature, light sensor (N810), uptime, cpu control (governor control, frequency info), device mode (flight/normal mode, reboot, shutdown, lock screen and keys), bluetooth mode (off, discoverable, connectable), USB mode (otg, host), wrappers for different backends (Nokia's BME, Nokia's MCE, Powerlaunch, Bluez)
|-
| [[Peekaboo]] ||  OS2007 || Peekaboo is a video streamer. With Peekaboo you can use your N800 tablet for example as a security cam.
|-
| [[Rapier]] ||  OS2007 OS2008 || Rapier is a python bible reader application for maemo. It uses the Sword library to access bible translations, as well as to search text occurences in the available books.
|-
| [[X11vnc]] ||  OS2008 || VNC server to allow remote access to an existing X session display corresponding to a physical monitor, keyboard, and mouse) with any VNC viewer. It has built-in SSL encryption and authentication, UNIX account and password support, server-side scaling, single port HTTPS and VNC, mDNS service advertising, and TightVNC and UltraVNC file-transfer.
|-
| [[Q]] ||  OS2007 || Port of an addictive game from an mobile phone to the Nokia world.&lt;br /&gt;
Requires installation of libsdlttf over &lt;a href=&quot;http://hildon-app-mgr.garage.maemo.org/redpill.html&quot;&gt;Red    Pill Mode&lt;/a&gt;.
|-
| [[Python Launcher]] ||  OS2008 || Python Launcher is a daemon to speed up Python applications, specially those using PyGTK.
|-
| [[Simple Mapper]] ||  OS2008 || Simple Mapper is simple mapper software to browse maps. It use Maptile-loader, so that program must be installed.
|-
| [[pYsearch]] ||  OS2006 OS2007 || Yahoo Search Web Services SDK for Python
|-
| [[GPXView - Geocaching with Maemo]] ||  OS2008 || GPXView is a complete offline geocaching solution incl. GPS support and built-in map.
|-
| [[WhoAmI]] ||  OS2006 OS2007 OS2008 || Simple &quot;guess what is shown in the image&quot; game.
|-
| [[Digia @scene]] ||  OS2008 || Digia @scene is a highly optimized application for superior consumption and contribution of video content of YouTube.
|-
| [[Linux Nokia770 + IPv6 + NFS v3/v4 client support]] ||  OS2006 || This is replacement for OS2006 kernel. Additional to orginal: IPv6 support is compiled in and so is NFS v3/v4 clients. Flash with &quot;flasher-2.0 -k  -f -R&quot;.
|-
| [[OpenVPN Applet]] ||  OS2008 || OpenVPN Applet is a desktop plugin for controlling OpenVPN connections. OpenVPN Applet features are:
- Import openvpn settings through gui
- Needs only standard openvpn configuration files, no extra configuration
- Supports multiple connections
- Supports username and password authentication
|-
| [[Omweather-weather-com-stations-db]] ||  OS2008 || Stations database (weather.com) © 2006-2008 by Vlad Vasiliev and Pavel Fialko
|-
| [[Bullshit Bingo]] ||  Maemo5 || Bingo-style game perfect for boring meetings or calls
|-
| [[Enhanced CTorrent]] ||  OS2006 || CTorrent is a linux console BitTorrent client implemented in C++ to be lightweight and quick.
|-
| [[Vectoroids]] ||  OS2006 || &quot;Vectoroids&quot; is a clone of the classic arcade game &quot;Asteroids&quot; by Atari.
|-
| [[Klingon PADD]] ||  OS2008 || Klingon PADD theme, based on the LCARS PADD themes.
|-
| [[Nako]] ||  Maemo5 || Nako (Näkö) is a pexeso-like single player game
|-
| [[Flipclock]] ||  OS2008 || Full screen finger friendly alarm clock. Full AlarmD Integration and customization
|-
| [[Slysics]] ||  OS2008 || Slysics is a physics simulation game which involves the user drawing lines in which a figure then sleds or slides down. Keep in mind that simulations may not be completely similar and therefore require a robust track.
|-
| [[Zip]] ||  OS2006 OS2008 || Archiver for .zip files. Port of InfoZIP's zip program.
|-
| [[Maemo Debugging Tools]] ||  OS2008 || A meta-package for installing some essential C debugging tools
|-
| [[Geany]] ||  OS2008 || Geany is a small and lightweight integrated development environment. It was developed to provide a small and fast IDE.
Basic Geany features:
 * syntax highlighting
 * code completion
 * call tips
 * many supported filetypes like C, Python
 * symbol lists
|-
| [[OpenSSH Server]] ||  Maemo5 || Secure shell server, an rshd replacement
|-
| [[Handwriting Calculator from Nokia]] ||  OS2008 || A usefull calculator created by Nokia.
|-
| [[ipHome]] ||  OS2007 || A hildon homepage plugin that shows the current IP address and RX/TX bytes and errors. It's very simple and without config options. Its something like my first homepage plugin, also I like to know what IP address I got assigned and if the network is being used.
|-
| [[flashcards(granule)]] ||  OS2008 || Granule is a Leitner flashcards program. It runs on Nokia Internet Tablet as well as on Linux and Windows desktops and GPE-based PDAs.
|-
| [[liqbase]] ||  OS2008 || liqbase is a graphical playground for the Nokia Internet Tablets running Maemo.
|-
| [[Ruby Maemo]] ||  OS2007 OS2008 || An effort to bring the powerful Ruby programming language to the maemo platform.
|-
| [[Knots 2]] ||  OS2008 || Knots is a media streaming webapp for Windows, OS X, Linux and FreeBSD. It allows you to listen to music and watch videos with your tablet from your desktop computer. Media is transcoded on-the-fly to play well on your tablet. Supports VDR recordings/Live-TV and MythTV-recordings in Linux. Requires additional server software available from http://wiki.maemo.org/Knots2
|-
| [[Blitzkrieg Onslaught]] ||  OS2006 || A tank artillery game similar to the classic scorched earth (or other open source clones such as Xscorch and Atanks).
|-
| [[Maemo Plazer]] ||  OS2007 OS2008 || Maemo Plazer is a client for the &lt;a href=&quot;http://www.plazes.com&quot;&gt;Plazes&lt;/a&gt; network that connects WiFi access points to physical locations. Please visit our homepage if single click installation fails!
|-
| [[Audio Tag Tool]] ||  OS2008 || Audio Tag Tool is a program to manage the information fields in MP3 and Ogg Vorbis files (commonly called 'tags').
|-
| [[Pecomato]] ||  OS2008 || Pecomato is a processor for metadata embedded in picture files. It can check, display such metadata, but it also has editing capabilities. It can process JFIF, IPTC, Exif, Adobe and Fotostation data in JPEG/JFIF, Adobe PSD and FFO, raw IPTC file types.
|-
| [[PluThon]] ||  OS2008 || Meta package for installing the needed runtime and debugging environment for developing Python applications using the PluThon Eclipse plug-in.
|-
| [[Pyring]] ||  OS2008 || Pyrng is a python keyring. It can import &quot;Keyring for PalmOS&quot; and &quot;Cryptinfo&quot; databases.
|-
| [[MaemoBlocks]] ||  OS2006 || Every platform must have it's own blocks game. For the 770 you can drag pieces with the stylus! Pretty fun
|-
| [[Advanced Backlight]] ||  OS2008 || Advanced Backlight is a statusbar applet that combines the volume and backlight applets, and gives access to the full 128 levels of backlight (127 on the N800), as opposed to the 5 levels provided by the Nokia applet.
|-
| [[Dropbear SSH Client]] ||  OS2008 || Dropbear is a smaller SSH client and server. This package provides only the client binary.
|-
| [[GPE Contacts]] ||  OS2006 OS2007 OS2008 || The GPE contacts manager, small and easy to use.
|-
| [[Mediabox-krazybat-theme]] ||  OS2008 || An evening theme
|-
| [[friendscard]] ||  OS2008 || a browser-less, gesture-based facebook client.
|-
| [[SmallBASIC]] ||  OS2006 || SmallBASIC is designed to be a simple, lightweight programming environment for experimentation, featuring strong mathematical and high level graphics commands.
|-
| [[Crawl]] ||  OS2008 || Dungeon Crawl, a text-based roguelike game Moria. Your objective is to travel deep into a subterranean cave complex and retrieve the Orb of Zot, which is guarded by many horrible and hideous creatures.
|-
| [[gpe-sudoku]] ||  OS2006 || The popular math puzzle.
|-
| [[MediaBox Media Center]] ||  OS2007 OS2008 || MediaBox is a media center for the N800. Features include: mplayer embedded, video player with video thumbnails, music player with album cover art, image viewer with image thumbnails, FM radio, smooth kinetic scrolling.
|-
| [[MPlayer-Plugin for MicroB/Tear]] ||  OS2008 || mplayerplug-in is a browser plugin that uses mplayer to play digital media from websites.
|-
| [[Mirage Image Viewer]] ||  OS2006 OS2007 OS2008 || Mirage is a fast and simple GTK+ image viewer.
Features: Supports png, jpg, xpm, gif, bmp, tiff, and others. Rotating, zooming, flipping, resizing, cropping. More features.
|-
| [[nginx http server]] ||  OS2006 OS2007 || nginx [engine x] is a HTTP server and IMAP/POP3 proxy server written by Igor Sysoev.
It has been running on many heavily loaded Russian sites for more than two years.
|-
| [[Strace]] ||  OS2008 || A system call tracer a trace of all the system calls made by a another process/program. The program to be traced need not be recompiled for this, so you can use it on binaries for which you don't have source.
|-
| [[Connect Four]] ||  OS2006 OS2007 || Port of a Python Connect Four game to Maemo.  Nice implementation.  Be sure to visit the homepage for more information and my other Maemo applications.
|-
| [[GiveMeFive]] ||  OS2006 OS2007 OS2008 || Simple &quot;Five in a row&quot; game.
|-
| [[FCE Ultra]] ||  OS2006 OS2007 OS2008 || FCE Ultra is an emulator of the original  NES.
|-
| [[Iptraf]] ||  OS2008 || Interactive Colorful IP LAN Monitor various network statistics including TCP info, UDP counts, ICMP and OSPF information, Ethernet load info, node stats, IP checksum errors, and others.
|-
| [[MPlayer]] ||  OS2006 OS2007 OS2008 || MPlayer (a popular video player for linux) package for maemo. A simple GUI is also included. Provides the best playback performance for mpeg4/divx/xvid video on Nokia 770/N800, can use subtitles.
|-
| [[live-f1]] ||  OS2006 || live-f1 is a native Linux client for viewing the official Formula-1 &quot;Live Timing&quot; stream.
|-
| [[Rfk]] ||  Maemo5 || The story of a robot who must find a kitten
|-
| [[OSSO Help Plugin for Serna XML editor]] ||  PC || Syntext Serna XML editor customization to deliver new experience in creating Maemo help files and documentation. Adds support of OSSO (Maemo) Help files format to Serna editor.
|-
| [[Tcl/Tk with Gnocl]] ||  OS2007 || This is a port of Tcl/Tk8.5 and Gnocl for N800.
Gnocl implements GTK+ and Gnome bindings for the program language Tcl with special emphasize on ease of use. Tk widgets work on a gnocl window.
|-
| [[Simsu]] ||  OS2008 || A basic Sudoku game written in Qt (pencil mode), or filling in answers (pen mode).
|-
| [[OpenVPN: SSL VPN solution]] ||  OS2006 || OpenVPN is a full-featured SSL VPN solution.
|-
| [[Canola]] ||  OS2006 OS2007 || Turns your internet tablet into the ultimate media player. Canola is a media consumer: photos, music, videos...local or remote, you name it.
|-
| [[gpsbabel]] ||  OS2006 OS2007 || gpsbabel is a command line tool for GPS file conversion plus transfer to/from GPS units.
|-
| [[OpenSSH Server and client (obsolete)]] ||  OS2007 || OpenSSH is a FREE version of the SSH connectivity tools that technical users of the Internet rely on.
|-
| [[TiltStick]] ||  OS2008 || This is a demo application for the tiltstick accelerometer for the Maemo plattform.
|-
| [[VIM]] ||  OS2006 OS2007 || VIM, the hardcore text editor.  This package supports syntax highlighting, xterm mouse, spell checking, online help, UTF-8, etc.
|-
| [[Thummim Reader]] ||  OS2006 OS2007 || LDS Scripture reader written in Python.  Includes a companion application for scraping the King James Bible, Book of Mormon and other documents off the web.
|-
| [[DiceJinni]] ||  OS2008 || DiceJinni is a small application to simulate the rolling of dices.
|-
| [[Pipepanic]] ||  OS2006 OS2008 || Pipepanic is a pipe connecting game. Connect as many different shaped pipes together as possible within the time given.
|-
| [[Scopa-cards-extra]] ||  OS2008 || Extra cards for scopa card game
|-
| [[Bluetooth port scanning suite]] ||  OS2006 || Bt_Audit is a Bluetooth port scanning suite.
|-
| [[Mobizines for Internet Tablet]] ||  OS2006 || Mobizines is a Flash application which runs in the browser of the Nokia 770 Internet Tablet.
|-
| [[Chaos Strikes Back]] ||  OS2006 || As well as running the original data files from Dungeon Master and Chaos Strikes Back, there are other dungeons created by a large user community.
|-
| [[Rsync]] ||  OS2008 || rsync is an open source utility that provides fast incremental file transfer.
|-
| [[EggTimer]] ||  OS2007 OS2008 || A small egg-timer program. You just choose on the hour, minutes and seconds scalebar the values and it counts down, playing a selected soundfile after time has passed. Feedback very appreciated.
|-
| [[AutoScan Network]] ||  OS2008 || Description:
AutoScan-Network is a network discovering and managing application. No configuration is required to scan your network. The main goal is to print the list of connected equipments in your network.
|-
| [[TechnopodMan&amp;#039;s (Matrix) Theme]] ||  OS2006 || A theme for fans of The Matrix trilogy for use on the Nokia 770.
|-
| [[PackageView]] ||  OS2008 || Using PackageView you get a list of all installed packages. Packages can be filtered by name. Double click opens a detail dialog, showing further details like a number of package attributes, package contents and a list of dependencies.
|-
| [[SpeedcamAlerter]] ||  OS2008 || Using FoxyTag speedcams database, SpeedcamAlerter alerts you when speedcam approaching.
&lt;br /&gt;FoxyTag service is only an &lt;b&gt;online service&lt;/b&gt; so you must have a mobile phone with data access.
|-
| [[iNES]] ||  Maemo5 || Nintendo NES/Famicom emulator
|-
| [[Maemo Music Player Client]] ||  OS2006 OS2006 OS2007 OS2008 || MMPC is a frontend for the Music Player Daemon. The player interface got replaced and the new one is especially designed for maximum screen usage and specialised to be used as a remote control.
|-
| [[Dropbear-scp]] ||  OS2008 || lightweight SSH2 scp be used in small memory environments, while still being functional and secure enough for general use.
|-
| [[TuxPaint]] ||  OS2006 || TuxPaint is a drawing program for young children.
|-
| [[Droid Fonts]] ||  Maemo5 || Font, used by Google's Android, with extensive style and language support
|-
| [[Multilist]] ||  OS2008 || Multilist aims to handle multiple list with subcategories. For example used as shoppinglist it holds a number of products which can only exists in database, be needed or already in shopping cart.
|-
| [[Xmaeme]] ||  OS2006 OS2007 || Xmaeme is a graphical launcher for multiple emulators, including:
|-
| [[Mythetomer]] ||  OS2008 || Mythetomer is a remote controller for MythTV taking advantage of wireless technologies such as Bluetooth and WLAN. You, as a user, can choose your preferred connection method in order to be able to control your MythTV with no cables and hassle.
|-
| [[UKMP]] ||  OS2006 OS2007 || UKMP is a media player. It focuses on fast response, ease of use and visualizing your music and video collection in an intuitive way. UKMP requires python (and mplayer for videos). Includes UKTUBE.
|-
| [[Maemo Periodic]] ||  OS2006 OS2007 OS2008 || Maemo Periodic is a periodic table that shows a great quantity of information about chemical elements.
|-
| [[SplitTheTab]] ||  OS2008 || SplitTheTab allows to track expenses for a group of people in multiple currencies.
|-
| [[Personal Dataplan Monitor]] ||  Maemo5 || Personal GPRS Monitor for your desktop
|-
| [[less: reversible text file viewer]] ||  OS2006 || Less is like More but better: it can go backward in the file, it can show your line number, it can emulate tail -f, and many more useful features. Depends on libncurses5 and ncurses-base.
|-
| [[lcars-complete (Star Trek themes)]] ||  OS2008 || This is a set of LCARS-style user interface modifications for ITOS2008, consisting of four themes, replacement sound effects, and some other extras.
|-
| [[Larmy]] ||  OS2008 || An advanced alarm clock featuring a large digital display and a finger friendly interface.&lt;br /&gt;
Allows setting alarms to recur based on weekdays.
|-
| [[CPU/Mem/Screenshot applet with Swapon/off]] ||  OS2006 || Modified version of Jakub Pavelek's original CPU/Mem/Screenshot applet. It has an additional configuration parameter 'swap device' and can swapon and swapoff the swap device.
|-
| [[mSideShow]] ||  OS2008 || mSideShow is a Python application for Nokia Internet Tablets that allows them to act as a Windows SideShow device. The device connects wirelessly using Bluetooth to your Windows Vista or Windows 7 PC.
|-
| [[Ogg Vorbis Player]] ||  OS2006 || A player for music files in Ogg Vorbis format.
|-
| [[Doom]] ||  OS2006 OS2007 || This is the demo version of doom 1. If you have the full doom1, you can copy your .wad to the device and play the full game.
|-
| [[Beneath a Steel Sky]] ||  OS2008 || A science fiction adventure game
|-
| [[Perl MySQL DBD module]] ||  OS2008 || A module which allows your Perl scripts to connect to MySQL databases.
|-
| [[ATHF Startup Screen]] ||  OS2008 || Replacement startup images with an Aqua Teen Hunger Force theme. Includes LITE-BRITE versions of Err, and the progress bar.
|-
| [[SDL Quake]] ||  OS2006 OS2007 OS2008 || Port of ID Software's popular Quake 3-D shooter game to maemo devices.
|-
| [[Classify Tasks]] ||  OS2007 OS2008 || Classify tasks will help you manage your task and todo lists easily from where you want.
|-
| [[Midnight Commander]] ||  OS2006 || GNU Midnight Commander is a file manager for free operating systems.
|-
| [[TechnopodMan&amp;#039;s (MAC OSX) Themes (Safari)]] ||  OS2006 || A Theme of MAC OSX for use on the Nokia 770 with Safari icon.
|-
| [[Car Mileage Calculator]] ||  OS2008 || This is a car mileage calculator. This will keep track of mileage, activity, alerts, and trips for your cars. It will plot historical information on a graph. It will also import data from other programs in CSV format.
|-
| [[Carman-is-plugin]] ||  OS2008 || Carman Infosharing Daemon
|-
| [[IRSSI IRC client]] ||  OS2006 || Irssi is a terminal based IRC client for UNIX systems.
|-
| [[Maemopad+]] ||  OS2006 OS2007 OS2008 || Maemopad+ Tree-based notes and sketching application, a'la Treepad.
|-
| [[Blob Wars : Metal Blob Solid]] ||  OS2008 || A sidescrolling platform game.
|-
| [[fring]] ||  OS2008 || fring™ is a mobile internet service and community that lets you interact with your online social networks on-the-go, make free calls, live chat, swap files and  more over their handset’s internet connection.
|-
| [[Gringotts]] ||  OS2008 || Gringotts is a small utility for Linux and other unices that allows you to jot down sensitive data (passwords, credit card numbers, PINs, friends' addresses) in an easy-to-read, easy-to-access, and most of all very secure form.
For encryptions, Gringotts makes use of the libGringotts library, that is based upon libMCrypt and MHash by Nikos Mavroyanopoulos; in addition, it uses GTK+ 2 for the interface.
|-
| [[WorldTV99]] ||  OS2008 || Playlist file for KMPlayer
|-
| [[Dsniff]] ||  OS2006 || Dsniff is a collection of tools for network auditing and penetration testing.
|-
| [[mTasks]] ||  OS2008 || mTasks is a small tasks manager where tasks are managed in a text area with few some tools to help management.
|-
| [[HomeMemFree]] ||  OS2008 || HomeMemFree is a applet to display the current free memory on your desktop.
|-
| [[Bazaar NG (bzr)]] ||  OS2008 || Bazaar, the next-generation distributed version control system. Open source distributed version  control system that is powerful, friendly, and scalable.
|-
| [[Panucci Resuming Audiobook Player]] ||  OS2008 || Panucci is a resuming audiobook/podcast player application for your internet tablet with support for bookmarking. It's the application you have been searching for when other media player don't support resuming and bookmarking of long-running audio files.
|-
| [[xmodmap]] ||  OS2006 OS2007 || xmodmap and xev, to do keyboard manipulations
|-
| [[Rdesktop]] ||  OS2006 OS2007 || RDP client, port from rdesktop.org. Lacks text input, zooming, etc.
|-
| [[Biloba]] ||  OS2007 OS2008 || Biloba is an abstract strategy board game for 1 to 4 players. At each turn the player moves pawns on a octogonal shaped board (but squared cells) trying to remove opponent's pawns from it. It includes an AI opponent for single player mode, and supports local or network play for 2 or more (up to 4) players.
|-
| [[NuvoPearl Theme]] ||  OS2008 || Nuvo Pearl is a simplistic and light theme.
|-
| [[Mirror]] ||  Maemo5 || Displays a real-time mirror image from the internal camera
|-
| [[elkeyboard]] ||  OS2008 || Αγγλικό/Ελληνικό slide πληκτρολόγιο.
Οποιαδήποτε έκδοση της εφαρμογής &quot;ukeyboard&quot; εγκατεστημένη στο σύστημα, θα πρέπει πρώτα να απεγκατασταθεί.
Εγκατάσταση εφαρμογής-Settings-Control panel-Personalisation-Text input settings-Hardware Keyboard layout = Αγγλικά/Ελληνικά
Για περισσότερα...Homepage :-)
|-
| [[ColEm - ColecoVision Emulator]] ||  OS2008 || ColEm will run software written for ColecoVision videogame console produced by Coleco in the 80s. This version of ColEm has been specifically optimized for Maemo, with touch screen support and ARM assembler optimizations.
|-
| [[Moon-lander]] ||  OS2008 || Moonlander is a fun and enjoyable modern graphical version (with sound) of the classic moonlander game. The objective is to land your rocketship safely using a limited amount of fuel while fighting gravity.
|-
| [[UKMP - Music Player for Maemo]] ||  OS2008 || UKMP is a easy and fast music player for the maemo. It has good looking and intuitive UI.
|-
| [[Pidgin On Maemo]] ||  OS2006 OS2007 OS2008 || With Pidgin, you can instant-message your buddies from one buddy list, whatever network they may use. Big green button installs only Pidgin. Installation help: http://pidgin.garage.maemo.org/
|-
| [[Subversion a.k.a. SVN]] ||  OS2006 OS2007 || Subversion, also known as svn, is a version control system much like the Concurrent Versions System (CVS).
|-
| [[Erminig]] ||  OS2006 OS2007 OS2008 || Erminig is an application to sync GPE Calendar and Google Calendar.
|-
| [[Mutt for N800]] ||  OS2007 || Mutt is a small but very powerful text-based mail client for Unix operating systems. The current stable public release version is 1.4.2.3; the current development release version is 1.5.17. For more information, see the following: http://www.mutt.org/
|-
| [[GPE Timesheet]] ||  OS2006 OS2007 OS2008 || Simple task-based time tracker application.  Part of the GPE suite.
|-
| [[IDEA]] ||  OS2006 OS2007 || IDEA is an home plugin that act like an 'application launcher'. It can be highly personalized through a control panel applet.
|-
| [[GPE FIlemanager]] ||  OS2008 || GPE Filemanager is a small application to provide access to the files on your Internet Tablet.
|-
| [[3D Mania Theme Grigio]] ||  OS2008 || A Theme with a 3d twist and big finger friendly scroolbars.
A decent looking onscreen keyboards, a flip clock  and some sweet eyecandies.
|-
| [[DejaDesktop]] ||  OS2006 || DejaDesktop is a personal information manager that includes Contact and Calendar applications.
|-
| [[NuvoPearl theme]] ||  OS2006 OS2007 || A simple white theme for maemo. After install, you need to go to Control panel and open themes from there.
|-
| [[Berusky]] ||  OS2008 || Berusky is a free logic game, it's based on an ancient puzzle named Sokoban.
|-
| [[Mozilla Fennec Browser]] ||  OS2008 || New Mozilla Web Browser (conamed Fennec) build for Chinook and Diablo
|-
| [[Reverzi]] ||  OS2006 || An Othello (tm) clone ported to Maemo 2.0
|-
| [[PushIt]] ||  OS2006 OS2007 OS2008 || A simple Sokoban clone.
|-
| [[Puchi]] ||  OS2006 || Puchi is a program that creates a color variation (new theme) based on existing theme on the device. It will colorize this theme according to user settings.
|-
| [[USB Host/Otg for Maemo]] ||  OS2008 || UsbHost is a couple of scripts based on the ones described by Mara's post at the internet tablet talk. They allow to switch among usb host and otg mode on the N8x0 using OS2008.
|-
| [[Maemo C++ Development]] ||  OS2008 || Metapackage for running and debugging C++ applications on the device
|-
| [[Perl DBI module]] ||  OS2008 || The main Perl module needed so your scripts can connect to databases. It is generally a pre-requisite of DBD modules such as dbd-mysql. Will be installed automatically if you install dbd-mysql.
|-
| [[Vista-Startup]] ||  OS2008 || Vista startup for OS 2008, just for fun.
|-
| [[Dropbear-keyutils]] ||  OS2008 || lightweight SSH2, key management utilities be used in small memory environments, while still being functional and secure enough for general use.
|-
| [[Osso Xterm (advanced)]] ||  OS2006 OS2007 || The enhanced version of osso-xterm from maemo-hackers. It adds font and color selection support, URL opening through context menu, and a sidebar with additional keys such as Ctrl+letters.
|-
| [[Pine: mail and news reader for terminal window]] ||  OS2006 || Pine is a mail and news reader using ncurses (text mode) in an xterm.
|-
| [[Pool for maemo]] ||  OS2008 || This pool game is made in school project.
Programming language is Python. It is quite slow, but it works :)
|-
| [[Freeciv for Maemo]] ||  OS2006 || Freeciv is a free turn-based multiplayer strategy game, in which each player becomes the leader of a civilization, fighting to obtain the ultimate goal:
To become the greatest civilization.
|-
| [[Weightwatcherseurope]] ||  OS2008 || Just a simple program to calculate weightwatchers points in Europe.
|-
| [[Mediabox-darkbox-theme]] ||  OS2008 || A dark theme to match your expensive HiFi equipment
|-
| [[Turbo Easy Debian for Everyone]] ||  OS2008 || Run OpenOffice.org 3, the Gimp 2.6, Firefox 3, Java apps, the LXDE environment and many other Debian applications right in OS2008 by installing this package and then downloading a &lt;a href=&quot;http://qole.org/files/debian-squeeze-img.tar.bz2&quot;&gt;big image file&lt;/a&gt; to your SD card. You'll need 1.5 GB available.
|-
| [[Escape from Pong]] ||  OS2006 OS2007 || Escape from Pong is a small, Free NES game.&lt;br /&gt;
You will need an NES emulator (e.g. FCE Ultra) to play.
|-
| [[Bloglines 770: RSS reader]] ||  OS2006 || Bloglines 770 is a lightweight RSS reader that uses Bloglines' Sync API. You can read your RSS off-line and get synchronized with Bloglines.
|-
| [[radare]] ||  OS2006 || Command line hexadecimal editor with advanced features. http://radare.nopcode.org/get/radare_0.7.2_armel.deb
|-
| [[Maemo GAIM: Instant Messenger]] ||  OS2006 || Gaim is a multi-protocol instant messaging (IM) client for Linux, BSD, MacOS X, and Windows.
|-
| [[pysqlite2]] ||  OS2006 || Pysqlite is a Python DB-API 2.0 interface for the SQLite embedded relational database engine.
|-
| [[VNC server]] ||  OS2006 || VNC server
|-
| [[Bomberman]] ||  OS2006 OS2007 OS2007 || A hildonized port of the famous game Bomberman. It was very popular in the eighties. Multiplayer over network, as well as standalone with computer steered enemies.
|-
| [[eCoach]] ||  Maemo5 || eCoach is an application for managing sport and exercise activities.
|-
| [[tree]] ||  OS2006 || Simple directory 'tree view' utility.
|-
| [[Xchat]] ||  OS2008 || IRC client, Maemo flavour. similar to AmIRC for the Amiga. Special features include the mIRC extension DCC RESUME and mIRC color, multiple server/channel windows, dialog windows, and a plugin API.
|-
| [[Starling]] ||  OS2006 OS2007 OS2008 || Starling is the audio player from the GPE suite
|-
| [[delete_me]] ||  OS2008 || Delete me please.
|-
| [[Sudser]] ||  OS2008 || Allow user to execute commands with root priviledges. makes it work similar to Ubuntu. Unlike most similar packages (becomeroot, easyroot, rootsh), it can provide additional security by protecting root access with a password.
|-
| [[Variations on Rockdodger]] ||  Maemo5 OS2008 || Dodge the rocks until you die
|-
| [[Bzip2]] ||  OS2008 || high-quality block-sorting file compressor - utilities It typically compresses files to within 10% to 15% of the best available techniques, whilst being around twice as fast at compression and six times faster at decompression.
|-
| [[RoadMap for Maemo]] ||  OS2008 || RoadMap for Maemo is a vector mapping application for the n800/n810. It can use maps compiled from U.S. Census Bureau Tiger Data, ESRI shapefiles or openstreetmap.org binary protocol map data. 
It can also import/export route data in GPX format for use by other apps like Maemo-Mapper.
Roadmap features include- 2D/3D views, openstreetmap.org download based on GPS position, highly configurable UI, auto-start of gpsd, voice notifications, address lookup and more! (requires wget)
|-
| [[Fuelpad]] ||  OS2008 || Fuelpad is a tool to record your car fuel and other expenses. It calculates the fuel consumption for each entry, the overall distance, average fuel consumption and total cost. It can track the expenses of several cars. It also has a reminder system for regular maintenance recording.
|-
| [[SyncEvolution]] ||  OS2006 OS2007 OS2008 || SyncEvolution synchronizes the system address book
via the SyncML standard. The command-line tool 'syncevolution' (also available for Evolution, iPhone and Mac OS X) executes the synchronization.
|-
| [[Maemo Mind]] ||  OS2006 OS2007 OS2008 || Maemo Mind is free Mastermind clone specially designed for Nokia Internet Tablets.
|-
| [[Bos Wars]] ||  OS2008 || Bos Wars is a futuristic real time strategy game (RTS). Bos Wars has a dynamic rate based economy. Energy is produced by power plants and magma gets pumped from hot spots. Buildings and mobile units are also built at a continuous rate. Control of larger parts of the map creates the potential to increase your economy throughput. Holding key points like roads and passages allow for different strategies.
|-
| [[Linux N800 with MPPE]] ||  OS2007 || This is replacement for OS2007 kernel. Additional to orginal: MPPE
|-
| [[LeafPad]] ||  OS2006 OS2007 || Leafpad is a simple GTK+ text editor that emphasizes simplicity.
|-
| [[OMWeather]] ||  Maemo5 || Weather Forecast on Nokia N900. Ultra-customisable weather widget for showing forecast the way you want.
|-
| [[Fuse: The Free Unix Spectrum Emulator]] ||  OS2008 || Fuse is a Sinclair ZX Spectrum emulator. It supports several models (including 16K/48K/128K/+2/+2A/+3 and some Russian clones), with quite faithful emulation of the display and sound. It can load Z80, SZX and SNA snapshots, TAP and TZX virtual-tape files, MDR microdrive images and DSK floppy disk images, among many others.
|-
| [[TiEmu2 Port]] ||  OS2008 || A port of TiEmu2, a Ti-89, 92 and V200 Texas Instrument calculators emulator.
|-
| [[Mediabox-fmradio]] ||  OS2008 || FM radio plugin for MediaBox (N800 only)
|-
| [[OpenVPN - Virtual Private Network daemon]] ||  OS2008 || An application to securely tunnel IP networks over a single UDP or TCP port.
It can be used to access remote sites, make secure point to point connections, enhance WiFi security, etc.
|-
| [[kwarto]] ||  OS2008 || Kwarto is the maemo version of the Quarto two player board game.
|-
| [[Freecell 4 Maemo]] ||  OS2006 OS2007 OS2008 || A python-based implementation of the classic Freecell cardgame for the Maemo platform.
|-
| [[Maemo PC Connectivity]] ||  OS2008 || maemo-pc-connectivity SDK control UI package for Internet tablets.
|-
| [[Xkb Keyboard Layout Switcher]] ||  OS2007 || A Status Bar plugin that can be used to change between two keyboard layouts for your hardware keyboard.
|-
| [[Othello]] ||  OS2008 || The classic game of othello/reversi
|-
| [[Gregale SDK Repository]] ||  OS2006 || The install file for maemo 2.2 'gregale' SDK repository.
|-
| [[Maemo Mapper]] ||  OS2006 OS2007 OS2008 || Maemo Mapper is geographical mapping visualization software specifically designed for the Maemo platform and the Nokia 770/N800/N810 form factor.  It uses raster maps downloaded from the internet from various online repositories (such as OpenStreetMap).  It supports tracking, routing, POI, and other features found in personal navigation devices.
|-
| [[Exif Translations]] ||  OS2008 || Additional languages for the exif command line utility:
Translations in German, Spanish, French
and (only incomplete) Russian and Swedish
|-
| [[Expedite]] ||  OS2007 || Expedite - Evas Benchmark suite
Official Homepage: http://www.enlightenment.org/
|-
| [[Knips]] ||  OS2007 OS2008 || Simple photo taking camera application based on gstreamer and Illumination.
|-
| [[VGB - GameBoy and GameBoy Color Emulator]] ||  OS2008 || VGB will run software written for Nintendo GameBoy and GameBoy Color videogame handhelds. It will also emulate Super GameBoy, GameLink, Pocket Printer, and other GameBoy addons. Please note that VGB &lt;em&gt;will not&lt;/em&gt; emulate GameBoy Advance. You will need VGBA for that.
|-
| [[AQUA OS Theme]] ||  OS2006 || Turn your nokia 770 into the MAC you always wanted.
|-
| [[busybox with ipv6,iproute,netcat,ping,ping6,telnet,traceroute and wget]] ||  OS2006 || busybox with ipv6,iproute,netcat,ping,ping6,telnet,traceroute and wget
|-
| [[System Monitor Plugin]] ||  OS2006 || System Monitor Plugin version 1.2, now with a dialog that contain full detailed information.
|-
| [[C-Dogs]] ||  OS2008 || C-Dogs is an arcade shoot-em-up which lets players work alone and cooperatively during missions or fight against each other in the “dogfight” deathmatch mode.
|-
| [[vpnc - client for cisco3000 VPN Concentrator]] ||  OS2006 OS2007 OS2008 || vpnc is a VPN client compatible with cisco3000 VPN Concentrator (aka Cisco's EasyVPN equipment).
|-
| [[Ttf-droid]] ||  OS2008 || handheld device font with extensive style and language support Droid Serif. Each contains extensive character set coverage including Western Europe, Eastern/Central Europe, Baltic, Cyrillic, Greek and Turkish support. The Droid Sans regular font also includes support for Simplified and Traditional Chinese, Japanese and Korean support for the GB2312, Big 5, JIS 0208 and KSC 5601 character sets respectively. Droid was designed by Ascender's Steve Matteson to provide optimal quality and comfort on a mobile handset when rendered in application menus, web browsers and for other screen text. - Ascender Press Release, http://www.ascendercorp.com/pr/2007-11-12/
|-
| [[Nethack]] ||  OS2006 OS2007 OS2008 || NetHack is a roguelike computer game originally released in 1987.
|-
| [[VGBA]] ||  Maemo5 || Nintendo GameBoy Advance emulator
|-
| [[Titan Theme for OS2008]] ||  OS2008 || An origianl metallic theme that strives for completeness.  All elements should be properly themed including desktop applets, media player, window decorations, and all other Maemo-specific and generic elements.
|-
| [[Shopper]] ||  OS2008 || Provides a shopping list with aisles/categories and a UI that's useful whilst shopping.  The list can be flicked and scrolled using your fingers and the items are crossed of the list with a left-right scribbling gesture.
|-
| [[NumptyPhysics]] ||  OS2008 || Harness gravity with your crayon and set about creating blocks, ramps,  levers, pulleys and whatever else you fancy to get the little red thing  to the little yellow thing.
|-
| [[webcam_server]] ||  OS2006 OS2007 || This program serves a JPEG stream from the N770, 800, or 810 camera, suitable for viewing in a web browser. Use the provided applet or simply point your browser to http://IP_ADDRESS:8888 to view a live capture from the camera.
|-
| [[MooBox]] ||  Maemo5 || Very basic MooBox implementation
|-
| [[Free42: HP 42S RPN Calculator Emulator]] ||  OS2006 OS2007 || This is a port of Free42, an HP 42S emulator.
|-
| [[gAnyRemote]] ||  OS2008 || With anyRemote, desktop applications can be remote-controlled via many modern mobile phones that support Bluetooth using a J2ME client.
It supports wide range of modern cell phones e.g Nokia, SonyEricsson and others.
|-
| [[GNU Screen]] ||  OS2006 || Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells.
|-
| [[Speedometer]] ||  OS2008 || Shows your current speed on the screen using GPS. speed on the screen in different units. Supported units are km/h, mph, m/s and f/s. Mount it to your car, boat or bicycle and you'll get as accurate speed as possible.
|-
| [[Qt4 for os2008]] ||  OS2008 || As the n810 owns a keyboard, Qt can work fine on the tablet. This project is to provide the Trolltech Qt4 packages on the tablet and to use Qt applications.
|-
| [[Gpstracer]] ||  OS2008 || During your trip, Gpstracer stores waypoints and generate a KML file for Google Maps.
No .install file, go to the homepage to download it.
|-
| [[Python development environment]] ||  OS2008 || Meta package for installing Python development components and tools to the Tablet, including the needed runtime and debugging environment.
|-
| [[XGalaga]] ||  OS2006 || Maemo port of the classic game Galaga. Based on Xgalaga, a space-invader like game with additional features to produce a more interesting game.
|-
| [[SolarWolf]] ||  Maemo5 OS2008 || Collect the boxes and don't become mad
|-
| [[Ogg Support]] ||  Maemo5 OS2008 || Ogg support for n900
|-
| [[Gconf-Editor]] ||  OS2006 OS2007 OS2008 || GConf-Editor is a tool used for editing the GConf configuration database.
|-
| [[Maemo Package Icons]] ||  OS2008 || Create package icons easily:
|-
| [[Media Streamer]] ||  OS2006 || Media Streamer is a UPnP AV control point and player application. This version works with the Nokia 770 Internet Tablet.
|-
| [[DT-Talkie]] ||  OS2008 || DT-Talkie is a voice messaging application that enables mobile users to communicate over infrastructure-less and challenged environments in the walkie-talkie fashion. DT-Talkie supports both one-to-one and group communication. Delay-Tolerant Networking (DTN) infrastructure is used to transport voice messages.
|-
| [[Rdesktop-cli]] ||  OS2008 || RDP client for Windows NT/2000 Terminal Server of natively speaking its Remote Desktop Protocol (RDP) in order to present the user's NT/2000 desktop. Unlike Citrix ICA, no server extensions are required.
|-
| [[MySQL]] ||  OS2007 OS2008 || MySQL is one of the most popular database management systems. This has been tested on the Nokia N800 but as it has no graphical components, should work on other arml platforms.
|-
| [[OpenSSH Server and client]] ||  OS2006 || OpenSSH is a FREE version of the SSH connectivity tools that technical users of the Internet rely on.
(You need to enable red-pill mode to install it.)
|-
| [[Simple Brightness Applet]] ||  Maemo5 || Simple brightness statusarea applet
|-
| [[Recorder]] ||  Maemo5 || Voice Recorder
|-
| [[WeightJinni]] ||  OS2007 OS2008 || WeightJinni is a small program that allows you to track all the things you eat and drink together with your current weight.
|-
| [[Rootsh - Get root easily.]] ||  OS2008 || Allows you to use &quot;sudo gainroot&quot; without having to enable RD-Mode.
|-
| [[Command line MP3/OGG Splitter - mp3splt]] ||  OS2008 || This is the port of the command line utility designed to split mp3 and ogg audio files. It is a port of the app at mp3splt.sourceforge.net
|-
| [[Fred]] ||  OS2007 OS2008 || Fred is a logical arcade game. The goal is to navigate a little pink spider through a system of platforms. Fred can not die–you can touch whatever objects you like and fall from arbitrary height.
|-
| [[pyplucker]] ||  OS2006 OS2007 || Plucks stuff from the web (or any URL), and encodes them appropriately for viewing on a PalmOS device. Very flexible in the way sites are plucked, e.g. link depth, images etc.
|-
| [[Guile Scheme]] ||  OS2006 || Guile is the GNU Project's Scheme interpreter.
|-
| [[thttpd-util]] ||  OS2006 || Support utilites for the thttpd web server (ssi, redirect, etc.).
gpsd
|-
| [[Abuse]] ||  OS2008 || Abuse is a side scrolling shoot-em-up action game from Crack dot Com.
|-
| [[Claws-Mail-PGP]] ||  OS2008 || &lt;b&gt;NOTE:&lt;/b&gt; Claws Mail PGP plugins are now merged with the official claws packages. Download it from extras repository!
PGP plugins for Claws Mail 3.7.0
|-
| [[Personal Photo Frame]] ||  Maemo5 || Display a photo or slideshow on your desktop
|-
| [[SUPERTUX]] ||  OS2008 || SuperTux is a classic 2D jump'n run sidescroller game in a style similar to the original SuperMario games.
|-
| [[HomeBank]] ||  OS2008 || HomeBank is a fast, simple and easy to use program to manage your accounts.
It differs from gnucash for the better look and feel, and for the greatest
 start-up speed. It has a lot of features such as easy analysis with
 graphical charts (statistics, budget, overdrawn, car cost), multi-accounts
 support, budget management, reminder, import from  OFX/QFX-CSV files,
 visual status of operations. It is based on GTK2.
|-
| [[fakeweb web ad filtering]] ||  OS2007 || Fakeweb is a web server that returns a 404 http error to every request. It should be used with a hosts file that redirects http requests to known ad servers to fakeweb.
|-
| [[ePDFView]] ||  OS2008 || ePDFView is a free lightweight PDF document viewer using Poppler and GTK+ libraries.
|-
| [[GNU Wget]] ||  OS2006 OS2007 || Wget is an utility for non-interactive download of files from the Web.
|-
| [[Ctorrent]] ||  OS2008 || BitTorrent Client written in C++ require any graphical component, such as an X server. Original ctorrent's upstream has stopped its development and now it's kept updated with new releases/bug fixes by a new developer. It's built as a console program and it can be even used remotely in a machine that provides outside ssh access. Other main features are:
|-
| [[FBReader -- e-book reader]] ||  OS2008 || FBReader is a e-book reader originally written for Zaurus platform. Supported formats are: FB2, plain text, html, rtf, chm, plucker
|-
| [[TuxPuck]] ||  OS2006 OS2007 OS2008 || Simple TuxPuck port.
|-
| [[MasterGear - MasterSystem/GameGear Emulator]] ||  OS2008 || MasterGear runs software written for 8bit SEGA gaming consoles: Master System, GameGear, SG-1000, Mark2, and Mark3. It will also emulate SC-3000 home computer and SF-7000 disk drive extension.
|-
| [[LBreakout2]] ||  OS2008 || LBreakout2 is a game similar to the classics Breakout and Arkanoid, featuring a number of added graphical enhancements and effects. You control a paddle at the bottom of the playing-field, and must destroy bricks at the top by bouncing balls against them.
|-
| [[Stardict-common]] ||  OS2008 || International dictionary - data files It has powerful features such as &quot;Glob-style pattern matching&quot;, &quot;Scan selection word&quot;, &quot;Fuzzy search&quot;, etc.
|-
| [[Privoxy]] ||  OS2006 OS2008 || Privoxy is a versatile proxy gateway; used to filter ads, popups, and other trash encountered during browsing.
|-
| [[Gutenbrowse]] ||  OS2007 OS2008 || Gutenbrowse is a small utility to easily find and download ebooks from the Project Gutenberg catalog.
|-
| [[notap]] ||  OS2008 || Quick thumb-driven contacts viewer
|-
| [[Pastebinit]] ||  OS2008 || command-line pastebin client which allows its users to upload snippets of text for public viewing.
|-
| [[Sonata MPD Client]] ||  OS2008 || Sonata is an elegant GTK+ music client for the Music Player Daemon (MPD).  Controls a music server connected to your big stereo system over wifi.
|-
| [[SuperTux]] ||  Maemo5 OS2006 || Classic 2D jump 'n run sidescroller with Tux
|-
| [[770Flasher.app]] ||  PC || A GUI interface for upgrading the firmware of Nokia 770, N800 and N810 devices from Mac OS X.
|-
| [[Image Viewer]] ||  OS2008 || An image viewer application which is able to load images and  switch to other images back and forth. It also performs the functions like zoom-in/zoom-out nicely.
|-
| [[Bluetooth xfer (OBEX OPUSH send and receive)]] ||  OS2006 || A simple Bluetooth xfer utility for doing send and receive of files from and to bluetooth devices supporting OBEX OPUSH profile.
|-
| [[Xmame]] ||  OS2006 OS2007 OS2008 || Xmame is a multiple arcade machine emulator.  
&lt;br /&gt;This port has been configured and optimized for Nokia internet tablets.
|-
| [[Slide Rule - Advanced Graphing Calculator]] ||  OS2008 || At the surface, the Slide Rule is just another scientific calculator for your tablet. In addition to the usual arithmetic duties, Slide Rule can do much more though:
|-
| [[mYTube - youtube browser]] ||  OS2008 || An youtube browsing/downloading/playing application.
It makes use of youtube-dl and mplayer and provides
a gtk based gui to browse/watch/store videos.
|-
| [[NuvoBlack theme]] ||  OS2006 OS2007 || A simple black theme for maemo. After install, you need to go to Control panel and open themes from there.
|-
| [[PhoneLink : dial &amp;amp; sms from 770 | N800]] ||  OS2006 || A tool that uses the GPE Contact Database and libgnokii to dial numbers from the IT to your mobile phone via bluetooth
you have to create a valid .gnokiirc file in /home/user
|-
| [[unison]] ||  OS2006 || Unison is a file-synchronization tool for Unix and Windows.
|-
| [[Gnokii]] ||  OS2008 || Datasuite for the mobile phones (console) communication with the phones. It currently supports the most mobile phones, all AT capable mobiles as well as Symbian phones.
|-
| [[xword]] ||  OS2006 OS2007 OS2008 || xword is a crossword puzzle program which can read Across Lite &quot;.puz&quot; files.
|-
| [[TechnopodMan&amp;#039;s (MAC OSX) Themes (Nescape)]] ||  OS2006 || A Theme of MAC OSX for use on the Nokia 770 with Nescape icon.
|-
| [[FloboPuyo]] ||  OS2008 || Clone of the PuyoPuyo game. 
The goal of FloboPuyo is to make groups of four or more Puyos (coloured bubbles) to make them explode and send bad ghost Puyos to your opponent. You win the game if your opponent reaches the top of the board. You can play against computer or another human.
|-
| [[AlmostTI Graphing Calc Emulator]] ||  Maemo5 || TI programmable calculator emulator
|-
| [[Duke Nukem 3D Shareware]] ||  OS2008 || Duke Nukem 3D (v1.5 Shareware version) by 3D Realms and published by Apogee Software.
|-
| [[ContactInfos]] ||  OS2008 || DBus Services that allow the use of your contact informations (stored in GPE or Contacts) in any applications : - addresses or GPS coordinates in MaemoMapper - email in a mail client - phone numbers in phonelink - ...
|-
| [[Rescue1]] ||  OS2008 || Objectives: kill the enemies, save red cross ambulances and return them to the base (you will earn money for that)See homepage for instructions how to create new levels and helicopters.
Arrows for moving around, space - machine gun, return (N800 back) - bombs.
|-
| [[FriendStatus IM Statuses Aggregator]] ||  Maemo5 || FriendStatus collects and stores IM presence status messages
|-
| [[gPodder Podcast Client]] ||  Maemo5 || A usable podcast aggregator for the Nokia N900
|-
| [[Maemo-pan]] ||  OS2008 || Connect to Internet via PAN
|-
| [[Irreco - Ir Remote Control]] ||  OS2008 || Irreco is a remote control application for Nokia Internet Tablets. With Irreco and the help of external IR transceiver you can control IR compatible devices like televisions, DVD players and AV Receivers. Irreco also has a remote editor which you can use to place buttons to the screen and build the kind of remote you want to use. Irreco supports expanding features with backends. More info about backends at the Irreco homepage.
|-
| [[NFlick]] ||  OS2006 || NFlick is an application to quickly browse your flickr photo collection from N770.
|-
| [[HomeDiskFree]] ||  OS2008 || HomeDiskFree is a simple applet to display the free space available for home and your sd card.
|-
| [[Personal Launcher]] ||  OS2008 || Personal Launcher allows you to launch applications from the desktop easily and stylishly.  Features configurable icons size and transparency, auto layout, and simple way to add applications.
|-
| [[USB Control]] ||  OS2008 || usbcontrol gives you easy to use access to the powerful host mode of the n810 and n800. Run usbcontrol, switch to host mode and attach any keyboard or usb drive to your device. Keyboards don't need extra power, usb drives usually do.
|-
| [[Iconset Tango for OMWeather]] ||  Maemo5 || Tango iconset
|-
| [[MaemoTtH]] ||  OS2006 || A port of tth to the 2006 software environment
|-
| [[Gnumeric Spreadsheet]] ||  OS2006 OS2007 OS2008 || The Gnumeric spreadsheet is part of the GNOME desktop environment.
|-
| [[Maemo screen grabber]] ||  OS2008 || Simple screenshot wrapper for osso-screenshot-tool. Click from the application menu and a screenshot is saved to your MyDocs/Images.
|-
| [[CoverFinder]] ||  OS2008 || This is a tool to find cover images via the Amazon Web Services API and to save them locally. It's written in C and needs Gtk+2 and libxml2. The search box allows specifying the artist and title in the following format:
artist:search artist;title:search title
|-
| [[maemoscrobbler]] ||  OS2006 OS2007 OS2008 || maemoscrobbler is an audioscrobbler (http://last.fm) plugin that keeps track of listened audio tracks and reports them to last.fm. It requires individual media player support at this point.
|-
| [[Carman]] ||  OS2008 || Carman is the ultimate open-source application that connects you to your car data and to your own way of moving with it, including map views, GPS features, trip recordings, information sharing with friends, gauge screens, speed alert and more. It's the private storage of where you go and how you go.
|-
| [[Hex-a-hop]] ||  OS2006 OS2007 OS2008 || Hex-a-hop is a puzzle game based on hexagonal tiles. There is no time limit and no real-time elements.
|-
| [[12pt &amp;amp; 14pt OS 2007 Themes]] ||  OS2007 || Just copied, modified (just made all fonts smaller) and repacked skins from the original OS 2007! Simply download, install and select in the Thememanager.
|-
| [[Hike]] ||  OS2008 || GPS location on maps stored in jpg or png files.
Hike is a simple application for displaying GPS location on a map provided as an image file, typically obtained with a digital camera. Conversion from longitude/latitude to pixel coordinates is based on some reference points (at least 2) entered directly in Hike.
Typical usage is for places where good electronic maps aren't easily available, such as hiking paths.
|-
| [[Battlegweled]] ||  OS2006 OS2007 || A Gweled based bejeweled clone for Maemo, if the optional multiplayer battle mode. Wi-fi only.
|-
| [[VGB]] ||  Maemo5 || Nintendo GameBoy emulator
|-
| [[Apache Web Server]] ||  OS2007 || The Apache webserver, ported to the N800.
|-
| [[Dictd]] ||  OS2008 || Dictionary Server definitions from a set of natural language dictionary databases.
|-
| [[Virtual PC Image - Maemo SDK]] ||  PC || Virtual PC Linux Image - Linux Ubuntu (Jaunty) distribution.  Includes patches to make Ubuntu to work nicely in a VM.   Includes scripts to install the Scratchbox, Sdk, and Nokia Binaries.   Optional scripts to install QT/QT Creator, Python and Geany.
Has ability to pull &quot;update&quot; scripts to fix any issues after the issue.
|-
| [[Streamtuner]] ||  OS2006 OS2007 OS2007 OS2008 || Streamtuner (maemo port) is a point-and-click GUI browser for the thousands of Internet radio streams available today. It lets you play streams and manage your favorites in a single window -- like a Linux tuner for Internet radio.
|-
| [[Trafficcounter Applet]] ||  OS2008 || A traffic counter applet for hildon desktop.
It can count the traffic amount for bluetooth, wlan and virtual cable connections.
|-
| [[Rootsh]] ||  Maemo5 || Enable root access, via the &quot;sudo gainroot&quot; command
|-
| [[Gosmore for Maemo]] ||  OS2008 || Gosmore is an offline viewer of the OpenStreetmap.org XML data.
|-
| [[Headphone daemon]] ||  OS2008 || The headphone daemon sits in the background and watches the connection state of headphones on the N800/N810. Whenever the headphones are unplugged, headphoned will send a &quot;pause&quot; signal to the mediaplayer to avoid &quot;public transport situations&quot;.
|-
| [[Wmlbrowser]] ||  OS2008 || Simulate WAP browsing by viewing WML (Wireless Markup Language) pages.
|-
| [[gtktide]] ||  OS2008 || Tides and Current Prediction
|-
| [[GCompris Educational Suite for Kids]] ||  OS2007 || Port of gcompris educational suite to Nokia Internet Tablets. Please see the home page for installation notes.
|-
| [[DialCentral]] ||  OS2008 || A simple, lightweight interface to the Google's GrandCentral (tm) service.
|-
| [[Tennix 2009 World Tennis Championship Tour]] ||  OS2008 || Tennis is a simple bird-perspective tennis game available for PCs and Nokia Internet Tablets. This is the 2009 Edition where you can play in several locations all over the world with different weather conditions and multiple AI opponents.
|-
| [[Video center]] ||  OS2007 || Video Center is an application used for streaming, downloading, storing and playing video clips from various services.
|-
| [[HomeNetStat]] ||  OS2008 || HomeNetStat is a simple applet which display your Network upload and download statiscs of your tablet.
|-
| [[maemo 3.x Bora SDK Repository]] ||  OS2007 || The install file for maemo 3.x Bora SDK repository.
|-
| [[The Daily Pluck]] ||  OS2006 || The daily pluck is a python command line program that takes a list of RSS feeds and produces a single Plucker format &quot;eNewsPaper&quot; suitble for reading with FBReader.
|-
| [[Canola2 Media Player]] ||  OS2008 || Turns your internet tablet into the ultimate media player.
Canola is a media consumer: photos, music, videos...local or remote, you name it.
|-
| [[MaQii (Maemo QuakeII)]] ||  OS2008 || MaQii is a Quake2-compatible game engine for Maemo. It's focus is simplicity, security, stability, and speed.
|-
| [[Exif (command line utility)]] ||  OS2008 || Command-line utility to show EXIF information in JPEG files.
|-
| [[Maemo-control-usb]] ||  OS2008 || USB mode control panel applet host modes. Supports switching between file storage, RNDIS/Ethernet networking device and USB host mode.
|-
| [[Ntpdate]] ||  OS2006 || Ntpdate sets your clock once from the NTP server on other machine(s).
|-
| [[a simple way to locally capture root]] ||  OS2008 || easily setup your device to allow ssh root@device.
|-
| [[Tuxtype]] ||  OS2008 || TuxTyping is an educational typing tutorial game
|-
| [[Dummy Project]] ||  OS2007 || This is a dummy project for documentation purposes.
|-
| [[SnowBall]] ||  OS2006 || SnowBall
|-
| [[Openafs]] ||  OS2008 || AFS distributed filesystem client support
|-
| [[Freemap-il]] ||  OS2008 || GPS based car navigation system integrated with freemap.co.il
|-
| [[LogMeIn Browser plugin]] ||  OS2008 || LogMeIn gives you fast, easy remote access to your PC or Mac from your N800/N810 device.
|-
| [[Espeak]] ||  OS2008 || Text to Speech tool.
|-
| [[Hometasks]] ||  OS2008 || HomeTasks is a home hildon desktop applet which display undone tasks of mTasks
|-
| [[Quiver Image Viewer]] ||  OS2006 OS2007 OS2008 || &lt;b&gt;quiver&lt;/b&gt; - an image and photo viewer for the Nokia 770, N800, and N810.
|-
| [[Battle for Wesnoth]] ||  OS2008 || A port of the Battle for Wesnoth (http://www.wesnoth.org) to OS2008.
|-
| [[HomeTools]] ||  OS2008 || HomeTools is a desktop hildon widget applet which display in one block the cpu average use (1min), Free Memory and free swap, the network ip, the power of the wifi signal and the free space on your mount point.
|-
| [[Qtmapper]] ||  OS2008 || Qt Mapper is GPS navigation application developed for the Nokia N810 Internet Tablet
|-
| [[TechnopodMan&amp;#039;s (MAC OSX) Themes (Firefox)]] ||  OS2006 || A Theme of MAC OSX for use on the Nokia 770 with Firefox icon.
|-
| [[Ruby-Maemo]] ||  OS2007 || Ruby-Maemo is an effort to bring the powerful Ruby programming language to the Maemo platform.
|-
| [[vpnc-gui]] ||  OS2006 OS2007 OS2008 || A simple frontend for vpnc, no need for root access or editing config-files. Just configure it trough the dialog or import a PCF-File.
|-
| [[Zapys - Livejournal client]] ||  OS2008 || Zapys LiveJournal Client with markdown syntax
|-
| [[Ukbdcreator]] ||  OS2008 || Ukeyboard Creator
|-
| [[naruto]] ||  OS2008 || games
|-
| [[VGBA - GameBoy Advance Emulator]] ||  OS2008 || VGBA will run games written for Nintendo GameBoy Advance on your internet tablet. This version of VGBA has been specifically adapted for Nokia internet tablets, runs games at almost the original speed, and will simulate joypad with the touchscreen input.
|-
| [[MilkyTracker]] ||  OS2008 || MilkyTracker is an open source, multi-platform music application for creating .MOD and .XM module files. It attempts to recreate the module replay and user experience of the popular DOS program Fasttracker II, with special playback modes available for improved Amiga ProTracker 2/3 compatibility.
|-
| [[La Pulga]] ||  OS2006 || This little game was born in the Sinclair ZX81 times and now I have rewritten it for PDAs devices.
|-
| [[Ogg-support-lightmediascanner]] ||  OS2008 || Lightmediascanner ogg support for n8x0 Metapackage to install ligthtmediascanner ogg plugin.
|-
| [[becomeroot]] ||  OS2006 || A faster way to get root access on Nokia 770 (without R&amp;amp;D mode).
|-
| [[PLCreator]] ||  OS2006 || PLCreator finds mp3 files on your 770 and creates a playlist for them.
|-
| [[Mtr]] ||  OS2008 || Full screen ncurses and X11 traceroute tool in a single network diagnostic tool.
|-
| [[Obscura Photo Manager]] ||  OS2006 OS2007 || Obscura is the companion for your digicam. Organize, sort, annotate, and show around your photos using your Nokia internet tablet.
|-
| [[KMPlayer]] ||  OS2008 || Media player front end for MPlayer, Osso-media-server and Netscape plugins.
|-
| [[Jooleem]] ||  OS2007 || Jooleem is a simple yet extremely addictive puzzle game.&lt;br /&gt;
Requires installation of libsdlttf over &lt;a href=&quot;http://hildon-app-mgr.garage.maemo.org/redpill.html&quot;&gt;Red    Pill Mode&lt;/a&gt;.
|-
| [[Canola2-lastfm-plugin]] ||  OS2008 || Last.fm plugin for Canola2. Provides a plugin to use Last.fm in Canola2.
|-
| [[Unrar]] ||  OS2008 || Unarchiver for .rar files (non-free version) archives, install package rar.
|-
| [[subversion a.k.a. SVN]] ||  OS2008 || Subversion, also known as svn, is a version control system much like the Concurrent Versions System (CVS).
|-
| [[Freemap-IL]] ||  OS2008 || Roadmap_editor based application for mapping and navigating in Israel. The map data used is gathered by users of the application.
|-
| [[Maemo Recorder]] ||  OS2006 OS2007 OS2008 || A simple media recorder utility for Maemo platform. WAVs can now saved as .wav. Added mime type for wav
|-
| [[Pyrecipe Recipe Manager]] ||  OS2008 || Pyrecipe is a recipe manager for your Internet Tablet. 
It can create, edit and show recipes in your Internet Tablet. Actually it can import recipes in the Gourmet and Krecipes formats. It can export to HTML, Gourmet, Krecipes and Mealmaster formats.
|-
| [[SlideRule]] ||  Maemo5 || Advanced graphing calculator
|-
| [[DiskUsage]] ||  OS2006 OS2007 OS2008 || Shows usage of all storage devices.
|-
| [[Carman-theme-eclipse]] ||  OS2008 || Carman Eclipse theme
|-
| [[Visual Saliency algorithm]] ||  OS2008 || Saliency implements the bottom-up visual saliency model of Itti,
Koch &amp;amp; Niebur (IEEE PAMI, 1998) to run on the Nokia N810 Internet
Tablet. Given an input image or video stream, this neuromorphic vision
system attempts to predict which locations in the images will
automatically and unconsciously attract your attention and eyes towards them. Are you salient? Do you attract attention? Something conspicuous about you? Find out with Saliency!
|-
| [[Mediabox-youtube]] ||  OS2008 || YouTube plugin for MediaBox
|-
| [[X-Moto]] ||  OS2006 OS2007 || X-Moto is a challenging 2D motocross platform game, where physics play an all important role in the gameplay. This version does not contain a startup file so you need to type xmoto at the command line
|-
| [[Aircrack-ng]] ||  OS2006 || Wireless network sniffer and password cracker.
|-
| [[Additional Internet Search Applet Plugins]] ||  OS2008 || Additional search engines for the desktop search applet. Most of the searches are powered by Google and are tablet browser friendly. Included are plugins for searching:
|-
| [[DrNokSnes]] ||  OS2008 || DrNokSnes is a Super Nintendo Entertainment System emulator, based on DrPocketSnes. It allows you to play some games designed for the SNES and Super Famicom Nintendo game systems on your tablet.
|-
| [[Macuco Gmail Client]] ||  OS2008 || Macuco is a lightweight specialized browser to google web apps. It was primarily developed to be a Gmail client, but you can use other google products with it too.
|-
| [[StockThis]] ||  OS2008 || StockThis is a simple application to show quotes from the most important world markets. Also, it shows graphs with the changes in different amount of time. It gets data from Yahoo Finance.
|-
| [[WordByWord]] ||  OS2008 || WordByWord is a simple vocabulary trainer that takes an ordered list of words in two languages
and presents the words in random order to the user. You may guess each word and then click to display the solution.
WordByWord supports several modes for learning: you may just display the words, answer multiple
choice questions or input the correct translation for the given word. The program is based on &lt;a href=&quot;http://pyqt.garage.maemo.org&quot;&gt;PyQt for Maemo&lt;/a&gt;.
|-
| [[Kilikali]] ||  OS2007 OS2008 || Kilikali is a music player for Maemo/Gnome. The main goal is a nice looking open source player for the most common audio files.
|-
| [[Command line MP3 player - madplay]] ||  OS2008 || This is a command line MP3 player that uses the esd daemon. It is not very useful by itself unless you really like a command line MP3 player. It is useful for other apps that which to use it to play MP3 files.
|-
| [[Linux Kiss Server]] ||  OS2007 OS2008 || Linux Kiss Server is Linux daemon for DVD Kiss player. It is an alternative for PC-LINK software and is compatible with Kiss player DP-600.
|-
| [[pyRDesktop]] ||  OS2008 || A new frontend for rdesktop/RDP.  This version, written in python, allows for multiple remote desktop profiles.
|-
| [[SharePy]] ||  OS2008 || SharePy is a all-in-one Multimedia uploader.
At the moment it supports Facebook, Flickr, Picasa, Youtube, Blip.tv and SlideShare services.
|-
| [[LCARS Bridge (Star Trek) theme]] ||  OS2008 || Yellow theme, based on NCC-1701-D bridge controls
|-
| [[GPSJinni]] ||  OS2008 || A small tool to read fundamental data from the GPS device. Shows altitude, speed and similar basic calues. But has also a compass mode showing current direction and history mode showing changes in altitude and speed over time.
|-
| [[hexedit]] ||  OS2008 || hexedit shows a file both in ASCII and in hexadecimal. The file can be a device as the file is read a piece at a time. You can modify the file and search through it.
|-
| [[HomeCPUSpeed]] ||  OS2008 || As you know since chinook, cpu can change his speed. This simple applet will display the current speed of your CPU on the desktop.
|-
| [[canoe]] ||  OS2006 OS2007 || A lightweight filebrowser in GTK2
|-
| [[Digia @Web]] ||  OS2008 || Digia @Web is a modern, fully finger touch controllable, web browser for Maemo. Made with Qt it leverages the industry leading webkit browser engine and latest Qt UI framework.
|-
| [[Countdown Home Plugin]] ||  OS2008 || Displays the time remaining to (or passed since) a number of easily configurable target dates and times.  Follows the appearance of your theme, and allows overrides for font settings.
|-
| [[Cumulus]] ||  OS2008 || Full featured on-board navigation software for glider pilots (and everyone else moving through the air). Moving vector map (fully configurable), airspace display and warning, reachable airfields, task management, IGC logging, approach calculator and much more.
|-
| [[Claws Mail]] ||  OS2006 OS2007 OS2007 OS2008 || Claws Mail is an email client (and news reader), based on GTK+, featuring
|-
| [[IceBreaker]] ||  OS2006 OS2007 OS2008 || Simple port of the original IceBreaker game.
|-
| [[GPE Calendar]] ||  OS2006 OS2007 OS2008 || A small but functional calendar application.  Part of the GPE suite.
|-
| [[Okuda (Star Trek) theme]] ||  OS2008 || Blue and green theme, based on 23rd-century UIs
|-
| [[Python]] ||  OS2006 || Python is the best supported language, with bindings for almost every library available on maemo: GTK, Hildon, GStreamer, Bluetooth (bluez), SDL (pygame), Numeric and DBus.
|-
| [[Stylus Friendly RSS Home Applet]] ||  OS2008 || This application is for you if you love Nokia's RSS home screen applet but wish it would display more headlines (or need less space). In fact, this application is Nokia's RSS home screen applet, copypasted and republished, with only a few lines of code changed.
|-
| [[Leafpad]] ||  OS2008 || Leafpad is a simple GTK+ based text editor, the user interface is similar to Notepad. It aims to be lighter than GEdit &amp;amp; KWrite, and to be as useful as them.
|-
| [[MasterGear]] ||  Maemo5 || SEGA 8bit console emulator
|-
| [[Search-memory-alpha]] ||  OS2008 || memory-alpha.org/en/ search plugin for hildon-desktop
|-
| [[XGngeo, Frontend for gngeo.]] ||  OS2008 || XGngeo is a frontend providing a complete, practical and user-friendly GTK+ interface over ``Gngeo&quot; which is a fast and powerful command line Neo Geo emulator for the Unix platforms(GNU/Linux, FreeBSD.).
|-
| [[PasswordSafe]] ||  OS2008 || Password safe is a utility to keep a list of usernames and passwords encrypted with a single password. Its file format is from Bruce Schneier's utility of the same name.
Originally ported to Maemo by Peter Weston.
|-
| [[Dropbear SSH Server]] ||  OS2008 || Dropbear is a smaller SSH client and server. This package provides only the server binary (and key generation utilities).
|-
| [[Maemo screengrabber]] ||  OS2007 || Maemo screengrabber is a simple wrapper for osso-screenshot-tool. It is started from the Others menu and after a 5 second delay it takes a screenshot and saves it to Images folder.
|-
| [[Pydes]] ||  OS2008 || This algorithm is a pure python implementation of the DES algorithm.
|-
| [[Czech keyboard for N800]] ||  OS2007 || Czech QWERTY layout for the on-screen keyboard for N800. Available also in a QWERTZ version, see the homepage.
|-
| [[zSync - Sync files between PC and Nokia]] ||  OS2008 || This application support zToDo syncing with Outlook.
|-
| [[dcraw]] ||  OS2008 || Port of the dcraw program to Maemo tablets. dcraw is able to read numerous raw image formats produced by digital cameras. dcraw converts these images into the standard PPM and TIFF image formats.
|-
| [[mClock]] ||  OS2007 OS2008 || mClock is a fullscreen clock with a day/night world map. For usage help, check the details tab in the program Manager when installing.
|-
| [[Transmission]] ||  OS2007 OS2008 || BitTorrent client built for OS2007.
Original project is at : http://transmissionbt.com/
(OS 2007 users should grab file with 'bora' in name) Note : initial freezing on larger downloads is normal as the file is allocated or extended on memory card.
|-
| [[Xgalaga]] ||  OS2008 || Maemo port of the classic game Galaga. Based on Xgalaga, a space-invader like game with additional features to produce a more interesting game.
|-
| [[Minigpsd]] ||  OS2008 || Faster, more efficient gpsd replacement which includes support for logging to kml, gpsgate, extra (OBD2) data, integrated google maps and webpage or kml server, and simultaneous internal/bluetooth GPS.
|-
| [[Lineo]] ||  OS2007 || This is an addictive 4-in-arow variant with simple but fascinating rules.&lt;br /&gt;
Requires installation of libsdlttf over &lt;a href=&quot;http://hildon-app-mgr.garage.maemo.org/redpill.html&quot;&gt;Red    Pill Mode&lt;/a&gt;.
|-
| [[gpesyncd]] ||  OS2006 OS2007 OS2008 || This is a small tool to handle the exchange between the gpe databases and the vcard, vevent, vtodo formats.  This allows synchronisation with other devices using Opensync.
|-
| [[mDictionary (WhiteStork) dictionary]] ||  OS2006 OS2007 OS2008 || mDictionary (known as WhiteStork) is a multilingual dictionary enabling its users to use many dictionary formats. Its dedicated platforms are Nokia N770, N800 and N810 internet tablets. Our final goal is to use many search engines so that different file formats could be used. They will be in a form of dynamically loadable modules. Currently there are engines available for the XDXF and StarDict dictionaries. There is also support for user bookmarks and tar.gz files.
|-
| [[gpsd-clients]] ||  OS2006 || 33-1_armel.deb
|-
| [[mNotes]] ||  OS2008 || mNotes is a small PIM Notes applications designed for Maemo and finger friendly use.
|-
| [[OpenTTD]] ||  OS2008 || OpenTTD is a open source reimplementation of the Transport Tycoon Deluxe game engine.
|-
| [[TwinDistress]] ||  OS2007 || A nice puzzle game with different tile sets, sound and highscore table.
|-
| [[Pokerth]] ||  OS2008 || free implementation of the Texas hold'em poker game Texas hold'em is easy to learn but needs a good strategy to win and a lot of luck. This package helps you when practicing or just playing for fun.
|-
| [[OSM2Go]] ||  Maemo5 OS2008 || A mobile OpenStreetMap Editor
|-
| [[TapiocaUI]] ||  OS2006 || TapiocaUI is a GoogleTalk client with VoIP and Instant messaging capabilities, with a simple user interface.
|-
| [[Borg StartUp]] ||  OS2008 || Replacement startup images with a Borg flavor. Includes a Borg startup, a Borg progress bar, and a Maemo Borgized logo
|-
| [[tabletSearch MIS applet]] ||  OS2008 || This is a plugin for the Internet Search Applet on the Maemo desktop (Home screen). It uses &quot;tabletSearch&quot;, a internet search based on the Google Custom Search Engine (CSE). It's the &quot;perfect&quot; search plugin for anything Nokia Internet Tablet and Maemo related.
|-
| [[Tuner Tool]] ||  OS2006 OS2008 || Tuner Tool is an artifact to tune instruments with Nokia 770.
|-
| [[GPS City Guide for maemo]] ||  OS2008 || GPS City Guide is travel guide program. It shows your place and POIs in map. When you go near enough POI it shows information about POI. Maptile-loader must be installed. (http://gpscityguide.garage.maemo.org/maptile.html)
|-
| [[Osso Xterm]] ||  OS2006 || X Terminal emulator
|-
| [[Maemo Port of GNU OCR]] ||  OS2008 || Optical character recognition application based on opensource GNU OCR.
http://jocr.sourceforge.net/
|-
| [[FM Radio Player]] ||  Maemo5 || Turn the N900 into a FM radio
|-
| [[Cairoclock applet]] ||  OS2008 || This is a conversion of cairoclock, a borderless and transparent clock that uses the cairo library to draw the clock. The clock is completely scalable by dragging from the bottom right corner of rectangle surrounding the clock.
|-
| [[MobiKid 800]] ||  OS2008 || MobiKid is a time-and place-independent singing tool for small children aged 4-6. This karaoke mobile application allow children to choose, listen and send a song. Other functionalities are recording and playback a song
|-
| [[SDict Viewer]] ||  OS2006 OS2007 OS2008 || SDict Viewer is a viewer for dictionaries in open format developed by AXMA Soft. Primary goal of the project is to provide usable dictionary application for Nokia Internet Tablets running Maemo.
|-
| [[Scopa]] ||  OS2006 OS2007 OS2008 || Nice implementation of the classic italian card game. Play against the computer.
|-
| [[Load-applet]] ||  Maemo5 || Show CPU and memory usage, take screenshots, record screencasts.
|-
| [[Gngeo]] ||  OS2007 OS2008 || GnGeo is a fast and powerful Neo Geo emulator.
|-
| [[Glom]] ||  OS2008 || With Glom you can design database systems - the database and the user interface. Glom has high-level features such as fields, relationships, lookups, related fields, related records, calculated fields, drop-down choices, searching, reports, users and groups, and translation.
|-
| [[MaemoDrac]] ||  OS2006 OS2007 OS2008 || Simple Solitaire like game. Based on Drac.
|-
| [[Boxar]] ||  OS2008 || Boxes on the screen. Each has a note. Tap to play for the Nokia Internet Tablet (N810, N800).
|-
| [[Hildon Input Method for Hebrew]] ||  OS2008 || A Hebrew virtual keyboard with stylus gesture support.
|-
| [[maemo.org Startup Screen]] ||  OS2008 || Replacement startup images with a maemo.org theme. Includes a maemo.org logo, an orange progress bar, and a Maemo 4 &quot;logo&quot;.
|-
| [[i2c-tiny-usb]] ||  OS2008 || This is a simple demo application demonstrating the use of the i2c-tiny-usb converter on the internet tablets.
|-
| [[Pengupop]] ||  OS2006 OS2008 || Pengupop maemo port. Pengupop is a networked multiplayer game in the vein of the puzzle classic Bust a Move/Puzzle Bobble! On screen buttons allow to play with fingers.
|-
| [[gFTP]] ||  OS2008 || gFTP is a file transfer client.
|-
| [[Wormux]] ||  OS2008 || War is declared !
|-
| [[Expense Assistant]] ||  OS2008 || Free software to track your travel expenses.
|-
| [[Hebrew language package]] ||  OS2008 || This package includes a Hebrew keyboard definition file (vkb) for the default on screen keyboard, and an xkb Hebrew configuration file for the N810 internal keyboard.
|-
| [[4-string chords]] ||  OS2006 OS2007 OS2008 || Tool that displays chords for any four-string instrument. Ukulele and mandolin is predefined but it is possible to specify tuning for other instruments.
|-
| [[Netcat]] ||  OS2006 OS2008 || Netcat is a featured networking utility which reads and writes data across network connections, using the TCP/IP protocol.
|-
| [[Hermes]] ||  Maemo5 || Enrich contacts' information from social networks.
|-
| [[Four Rivers]] ||  OS2006 OS2007 || Four Rivers is a puzzle game inspired from Shisensho/Kyodai. The board consists of 7x12 tiles which must be removed in pairs following some simple rules to complete the board.
|-
| [[Xkbd-btHID]] ||  OS2006 || This is a soft-HID device. A software implementation of a Bluetooth HID Keyboard. This will turn your Nokia770 into a Bluetooth keyboard.
|-
| [[Tile World]] ||  OS2008 || Tile World is an emulation of the game &quot;Chip's Challenge&quot;. &quot;Chip's Challenge&quot; was originally written for the Atari Lynx by Chuck Sommerville, and was later ported to MS Windows by Microsoft (among other ports).
|-
| [[Maemo-control-services]] ||  OS2008 || Services control panel applet are run.
|-
| [[Glurp]] ||  OS2006 || Glurp is a Music Player Daemon client. It supports key bindings and full screen mode of operation.
|-
| [[Winzig]] ||  OS2006 OS2008 || Winzig is a suite of PIM style applications written in Python/GTK.
|-
| [[Search-qurgh-mughom]] ||  OS2008 || http://mughom.wizage.net Klingon dictionary search plugin for hildon-desktop
|-
| [[MaemoSweeper]] ||  OS2006 OS2007 OS2008 || Simple mine sweeper clone. simple fun =)
|-
| [[Octave 2.1]] ||  OS2006 || Octave is a (mostly Matlab (R) compatible) high-level language, primarily intended for numerical computations.
|-
| [[Speccy - Sinclair ZX Spectrum Emulator]] ||  OS2008 || Speccy will emulate different models of Sinclair ZX Spectrum and its clones, such as Timex Sinclair, Pentagon, Scorpion, Didaktik, etc. This version of Speccy has been specifically adapted for Nokia tablets. It supports joypad simulation with a stylus (or finger) input and will automatically open *.z80, *.sna, *.tap, *.tzx, *.trd, *.scl, *.fdi, and *.dsk files from the file manager.
|-
| [[GPE Filemanager]] ||  OS2006 OS2007 || GPE Filemanager is a small application to provide access to the files on your Internet Tablet.
|-
| [[conler -- Wi-Fi Connection Handler]] ||  OS2008 || Conler is a Wi-Fi Connection Handler. It is an application which allows user to configure a sequence of commands which will be executed on connections with Wi-Fi access points.
|-
| [[mr]] ||  OS2008 || fox2
|-
| [[Vagalume]] ||  OS2006 OS2007 OS2008 || Vagalume is a Last.fm client
|-
| [[Bootmenu]] ||  OS2006 || A simple boot-time menu that let's you select whether to boot the OS from internal flash or from the MMC. It requires the initfs described on the BootMenu page.
|-
| [[iNES - NES/Famicom Emulator]] ||  OS2008 || iNES runs Nintendo Entertainment System (NES) and Famicom games on your tablet. It will also emulate Famicom Disk System (FDS), VS System arcade box, FamilyBASIC keyboard, Zapper light gun, and other NES addons.
|-
| [[dsniff]] ||  OS2007 || dsniff is a collection of tools for network auditing and penetration testing. dsniff, filesnarf, mailsnarf, msgsnarf, urlsnarf, and webspy passively monitor a network for interesting data (passwords, e-mail, files, etc.).
|-
| [[The Ur-Quan Masters]] ||  OS2007 OS2008 || Star Control II, the sequel to the original Star Control, is a space adventure game that features role-playing elements alongside a robust 2D combat system. The player assumes the role of the captain of a single starship wandering a detailed environment of solar systems, gradually gathering information and resources in order to defeat a mysterious and implacable enemy.
|-
| [[Crazyparking]] ||  OS2006 OS2007 OS2008 || Simple Rush-hour based game with 12 levels.
|-
| [[WebHTTrack]] ||  OS2008 || Copy websites to your tablet, httrack with a Web interface.
|-
| [[Peg-e]] ||  OS2008 || Peg-E is a peg solitaire game to remove them from the board, ultimately trying to eliminate all but one. The boards are randomly generated, with 100 levels of difficulty. The game auto-saves, and has undo-redo capability. Pieces can move horizontally, vertically, and diagonally.
|-
| [[Gnokii Gconf Control Panel Applet]] ||  OS2008 || This provides a way to configure gnokii without editing a file and with gnokii telling you what model is your phone ...
There is also a -dev package that provide acces to the lib part (check out a use example in phonelink)
|-
| [[Him-arabic]] ||  OS2008 || Arabic HIM plugin
|-
| [[EBoard and Crafty Chess Programs]] ||  OS2006 OS2007 || EBoard and Crafty Chess Programs for the N800/N770
|-
| [[GCompris Education Suite for Kids]] ||  OS2008 || Port of gcompris educational suite to N900.
|-
| [[GNURobbo for Maemo]] ||  OS2008 || It's old popular Atari XE/XL game ported to Linux. Robbo the robot is trying to get out of the planet. He must collect all parts of his capsule to move to the next level.
|-
| [[Password Safe]] ||  Maemo5 OS2006 OS2007 || Password Safe - keeps a blowfish encrypted password list
|-
| [[OpenSSH client and server]] ||  OS2006 OS2007 OS2008 || This is the portable version of OpenSSH, a free implementation of the Secure Shell protocol
|-
| [[HomeSensors]] ||  OS2008 || HomeSensors is a home hildon desktop applet which displays battery status (with estimated maximum running time on full load), current temperature and light from the Nokia N810 sensors.
|-
| [[rsync]] ||  OS2006 || rsync is an open source utility that provides fast incremental file transfer.
|-
| [[VisualBoy Advance]] ||  OS2006 OS2007 OS2008 || VisualBoyAdvance is a Game Boy Advance emulator.&lt;br /&gt;
This port is built and optimized for Nokia tablets.&lt;br /&gt;
It does, however, run &lt;strong&gt;extremely slowly&lt;/strong&gt; (under 10 fps).
|-
| [[kismet]] ||  OS2006 || Kismet is an 802.11 layer2 wireless network detector, sniffer, and intrusion detection system.
|-
| [[MaemoTeX]] ||  OS2006 || MaemoTeX enables you to work with the latest versions of pdflatex and metapost.
|-
| [[Formido]] ||  OS2008 || Formido is one of those games, where you are loaded with some guns and you go shooting different things. 'Things' in this case are big, ugly, - not green though - alien insects. The idea is to kill as many of those bastards as possible. Eventually they will overcome you, but struggle as long as you can. There are some power-ups to aid you in your honorable quest. Keep in mind, that those critters are rather tough and generally do nasty things when in close range of any player-characters.
|-
| [[Quetoo (Quake2)]] ||  OS2007 || Quetoo is a Quake2-compatible game engine for GNU/Linux and FreeBSD. It's focus is simplicity, security, stability, and speed.
|-
| [[Nmap, the port scanner]] ||  OS2006 || Nmap (&quot;Network Mapper&quot;) is a free open source utility for network exploration or security auditing.
|-
| [[Notification Area (System Tray)]] ||  OS2007 || Notification Area for the Fremantle desktop. VERY EARLY VERSION!
|-
| [[opreco]] ||  OS2008 || opreco - Open Presentation Control
|-
| [[Python2.5 for Maemo - [PyMaemo]]] ||  OS2007 OS2008 || Note: use this install file ONLY to do an update. More info at PyMaemo website.
|-
| [[Maemo X-Chat]] ||  OS2007 || X-Chat is an IRC client.
|-
| [[bc]] ||  OS2006 || The manual pages states: bc is a language that supports arbitrary precision numbers with interactive execution of statements. For me, bc simply is the best line-oriented calculator tool.
|-
| [[Mmagnetic]] ||  OS2008 || Maemo GUI for Magnetic This is a port for the Maemo platform of GtkMagnetic by Torbjörn Andersson. You can find more information about Magnetic and Magnetic Scroll's games at http://msmemorial.if-legends.org
|-
| [[HTTrack]] ||  OS2008 || HTTrack is an offline browser utility, allowing you to download a website from the Internet to a local directory and to browse the site from link to link, as if you were viewing it online. It's a port with small modifications for work well on the tablet.
|-
| [[maemoWoL]] ||  OS2008 || Simple program to mantain a list of hosts and turn them on via Wake On Lan technology.
|-
| [[Anagramarama]] ||  OS2008 || Like anagrams? You'll love Anagramarama! The aim is to find as many words as possible in the time available. Get the longest word and you'll advance to the next level.
|-
| [[Maemo Google Reader]] ||  OS2006 OS2007 || A terminal-based offline Google Reader client.
|-
| [[GPE Sudoku]] ||  OS2008 || GPE Sudoku is the popular &quot;math&quot; game. It currently supports Maemo 3.x, 4.x, GPE and gtk+.
|-
| [[Stylus-rss-feed-reader-applet]] ||  OS2008 || RSS Reader applet with reduced line height
|-
| [[Image Magick]] ||  OS2008 || Imagemagick is a set of programs to manipulate various image formats (JPEG, TIFF, PhotoCD, PBM, XPM, etc...). All manipulations can be achieved through shell commands.
|-
| [[FBReader: e-book reader]] ||  OS2006 OS2007 || FBreader is a e-book reader originally written for Zaurus platform. Supported formats are: FB2, plain text, html, rtf, chm, plucker
|-
| [[DateJinni]] ||  OS2006 OS2007 OS2008 || Small program to convert unix time (time_t) to human readable format and back.
|-
| [[Hex-a-Hop]] ||  Maemo5 || puzzle game based on hexagonal tiles
|-
| [[Tasks]] ||  OS2006 OS2007 || Tasks is a simple To Do list application that eschews complicated features for a lean interface and functionality that just does the right thing.
|-
| [[btaudit]] ||  OS2007 || Bluetooth port scanning suit.
|-
| [[Other Maemo Weather]] ||  OS2006 OS2007 OS2008 || Other Maemo Weather - home-page applet for World Weather on Nokia 770/N800. Use data from weather.com.
|-
| [[gvdown Video-Downloader]] ||  OS2008 || gvdown is an application that can download videos from video sharing websites like YouTube, Google Video, MyVideo and so on.
|-
| [[Hedgehopper demo]] ||  OS2006 || 2D sidescrolling platform-game made for 770!
|-
| [[PyGTKEditor]] ||  OS2006 OS2006 OS2007 OS2008 || PyGTKEditor is a text editor with a small screen footprint, fast syntax highlight for Python and PyGTK, fullscreen capable, regulars expressions search and many more.
|-
| [[StarDict]] ||  OS2007 || StarDict is a international dictionary written in Gtk2. It has powerful features such as &quot;Glob-style pattern matching&quot;, &quot;Scan selection word,&quot; &quot;Fuzzy query,&quot; etc.
|-
| [[Python-launcher]] ||  OS2008 || A daemon to speedup python applications.
|-
| [[gWorld Clock]] ||  OS2008 || This program displays the time and date of specified time zones using a GTK+ interface. It also allows the zones to be synchronised to a time other than the current time.
|-
| [[Denemo]] ||  OS2008 || A music score editor capable of importing midi and lilypond files and playing the scores via timidity (midi player) if installed
|-
| [[OpenSSH client]] ||  OS2006 OS2007 OS2008 || This is the portable version of OpenSSH, a free implementation of the Secure Shell protocol
|-
| [[Canola2-flickr-plugin]] ||  OS2008 || Flickr plugin for Canola2. Provides a plugin to browse and view photos from Flickr.
|-
| [[Eyes Widget]] ||  Maemo5 || Eyes Widget for the desktop
|-
| [[Contacts]] ||  OS2006 OS2007 || Contacts is a small, lightweight addressbook that uses EDS, so it uses the same addressbook data as the standard addressbook on the N800.
|-
| [[Dates]] ||  OS2006 OS2007 OS2007 || Dates is a small, lightweight calendar, featuring an innovative, unified, zooming view and is designed primarily for use on hand-held devices.
|-
| [[Countdown Home Desktop Widget]] ||  Maemo5 || Countdown Widget for your desktop
|-
| [[Yellow Notes Applet]] ||  OS2006 OS2007 OS2008 || This home applet lets you organize your ideas with a yellow sticky note in your Maemo desktop (770 or N800). Yellow Notes is totally configurable (doesn't have to be yellow!!!).
|-
| [[Maemo Krypt]] ||  OS2006 || A GUI to perform Folder and File encryption and decryption using OpenSSL Encryption algorithms. This Utility allows user to encrypt and decrypt folders and files stored in the Nokia 770 filesystem.
|-
| [[AisleRiot Solitaire]] ||  OS2007 OS2008 || AisleRiot Solitaire is a compilation of over eighty different solitaire card games. Everything from favourites like Freecell, Spider and Klondike through to the hopelessly pointless Clock Patience.
|-
| [[hildon-ssh-askpass]] ||  OS2006 OS2007 || Hildonized ssh-askpass(1) replacement
|-
| [[Bash2]] ||  OS2008 || The GNU Bourne Again SHell branch 2.x, tuned for maemo commands read from the standard input or from a file.  Bash also incorporates useful features from the Korn and C shells (ksh and csh).
|-
| [[YouAmp]] ||  OS2008 || YouAmp is a small and fast music player inspired by rhythmbox. It is meant as an alternative to the spiffy UI centric players like UKMP or Canola and thus it concentrates on the playback capabilities.
|-
| [[Prism for maemo]] ||  OS2008 || Prism-Maemo is a port of the Mozilla Prism [1] project that implements both site specific browser and distraction free browser concepts.
|-
| [[gPodder podcast client]] ||  OS2008 || Download audio and video podcasts directly on your Internet Tablet using a finger-friendly, simple to use interface. It integrates with Nokia's Media Player, but can also use MPlayer and Panucci as the Video or Audio Player. Also supports synchronizing of your podcast list to gPodder on your Linux Desktop.
|-
| [[Unzip]] ||  OS2006 OS2007 OS2008 || De-archiver for .zip files. Port of InfoZIP's unzip program.
|-
| [[12pt &amp;amp; 14pt OS 2006 Themes]] ||  OS2006 OS2007 || Just copied, modified (just made all fonts smaller) and repacked skins from the original OS 2006! Simply download, install and select in the Thememanager. These themes also work on the n800.
|-
| [[TechnopodMan&amp;#039;s (MAC OSX) Themes (Opera)]] ||  OS2006 || A Theme of MAC OSX for use on the Nokia 770 with Opera icon.
|-
| [[LXDoom]] ||  OS2008 || LxDoom is a version of the classic fps game Doom by id Software. This port is provided by INdT team.
|-
| [[Cbrpager]] ||  OS2008 || A fast, lightweight comic book archive (cbz, cbr) reader This is a Maemo-specific port that was modified to minimize dependencies and provide a tablet-friendly interface.  Note that you will need to install unrar to read cbr/rar files.
|-
| [[antiword]] ||  OS2006 || Antiword, a MS Word document reader - really a converter from MS Word to plain text, PS and PDF. Run from xterm. Invoke without arguments to see help.
|-
| [[Remote Connection Manager]] ||  OS2008 || Based on GRCM, it manage your connections (in fact anything that can be launch). With it you can memorize your ssh/ftp/... commands with parameters. The command can be launch in xterm or directly ...
Don't forget to install open-ssh client or whatever tool you want to use ...
Osso-xterm is installed by default on OS2008
Enjoy !
|-
| [[Tritanium theme]] ||  OS2008 || Greyscale theme
|-
| [[tcpdump]] ||  OS2007 || The TCP/IP package dumper.
|-
| [[Personal Menu]] ||  OS2008 || A sidebar plugin for a customizable menu for launching installed applications or arbitrary commands.  You can easily fit 36 or more (depending on your settings) all viewable at the same time.  No more scrolling through multiple categories!
|-
| [[BlueMaemo]] ||  OS2007 OS2008 || BlueMaemo is a remote controller program for the Maemo-powered devices. With BlueMaemo you can turn your Maemo-powered device in a mixed Bluetooth keyboard-and-mouse device through the HID Bluetooth profile.
|-
| [[Weightwatchers]] ||  OS2008 || Just a simple program to calculate weightwatchers points.
|-
| [[Ruby-1.8.5 for Bora]] ||  OS2006 OS2007 || Scriptable object-orientired programming language. Compilation for Bora/N800. Also works on N770.
|-
| [[CPU/Mem/Screenshot applet with run command]] ||  OS2006 || John Costigan's 'load-applet-run' is a modified version of Jakub Pavelek's original CPU/Mem/Screenshot applet. It can execute and store arbitrary commands. This can also be used for swapon/off.
|-
| [[Geoclue status applet]] ||  OS2007 || Geoclue service provides applications location information from various sources. This package includes a statusbar applet for selecting the location source Geoclue uses.
|-
| [[LCARS PADD (Star Trek) theme]] ||  OS2008 || Original LCARS theme, based on various PADDs
|-
| [[Gnuzip]] ||  OS2008 || The GNU compression utility (gzip) compression tool for Debian.  It typically operates on files with names ending in '.gz'.
|-
| [[Carman-theme-offroad]] ||  OS2008 || Carman Offroad theme
|-
| [[thttpd]] ||  OS2006 || thttpd is a simple, small, portable, fast, and secure HTTP server.
|-
| [[Gjiten]] ||  OS2006 OS2007 OS2008 || A port of the GNOME Japanese dictionary, to the Hildon Framework for the N800. Japanese input support from maemocjk (http://maemocjk.garage.maemo.org/) is highly recommended for use with this program.
|-
| [[Maemo Theremin]] ||  OS2008 || Theremin is a musical instrument which allows controlling sound pitch and volume continuously. This application is an analogue of real theremin, it plays sound of different pitch and volume depending on what screen area you tap.
|-
| [[N-Speed]] ||  OS2008 || N-Speed is a futuristic 3D racing game.
|-
| [[Borg Sounds]] ||  OS2008 || Borg sounds for ITOS2008
|-
| [[TabletBridge]] ||  OS2006 OS2007 OS2008 || Control and view your Roku Soundbridge M1000, M2000/Soundbridge Radio R1000 via Wifi with your Nokia 770/N800 (OS2006/OS2007) Internet Tablet. Also remotely control your Roku Soundbridge M500.
|-
| [[BattleGweled]] ||  OS2008 || Battle Gweled game
|-
| [[Task Manager]] ||  OS2006 || Display information about user processes, like CPU and memory usage, also allows you to kill desired processes.
|-
| [[Large Statusbar Clock]] ||  OS2008 || A configurable digital clock for the statusbar.  You must enable both the minutes and the hours plugin from the control panel to display it correctly.
|-
| [[Attitude]] ||  Maemo5 || An artificial horizon and spirit level.
|-
| [[maemochron]] ||  OS2006 OS2007 || An Event and countdown chronograph for the Nokia 770 &amp;amp; n800. Time events with it, use it as a programmer's task and project timer, as a clock, or just use it as a plain old egg timer.
|-
| [[Socat]] ||  OS2008 || multipurpose relay for bidirectional data transfer and transfers data between them. Data channels may be files, pipes, devices (terminal or modem, etc.), or sockets (Unix, IPv4, IPv6, raw, UDP, TCP, SSL). It provides forking, logging and tracing, different modes for interprocess communication and many more options.
|-
| [[mpuzzle]] ||  OS2008 || Simple puzzle game
How to Play?
Click on the number to move.  If you able to sort numbers from 1 to 15 then you will won the game!
|-
| [[Maemo WordPy]] ||  OS2006 OS2007 OS2008 || Maemo WordPy is a Wordpress and Blogger client for Internet Tablets.
|-
| [[Classic Gaming Wallpapers]] ||  Maemo5 || Panoramic wallpapers made from classic videogames
|-
| [[RsBackup]] ||  OS2008 || RsBackup is a simple C++/Qt4 front end to rsync.
|-
| [[Gnuplot]] ||  OS2006 || Package for making 2D and 3D graphs from data and functions.
|-
| [[GTK G-Rays 2]] ||  OS2006 OS2007 || GTK G-Rays 2 is a configuration and log download tool for the Wintec WBT-201 (G-Rays 2) Bluetooth GPS datalogger.
|-
| [[Seqretary - a PIM suite for handheld devices]] ||  OS2008 || Seqretary is a PIM suite for handheld devices with the following design goals:
|-
| [[Freeciv]] ||  OS2008 || Freeciv is a Free and Open Source empire-building strategy game inspired by the history of human civilization. The game commences in prehistory and your mission is to lead your tribe from the stone age to the space age...
|-
| [[PhoneLink]] ||  OS2007 OS2008 || A tool that allows you to dial your contacts (from the GPE database) on your phone via bluetooth and send them smses.
uses libgnokii (www.gnokii.org)
|-
| [[FindMine]] ||  OS2006 OS2007 OS2008 || A simple MineSweeper clone.
|-
| [[Feed Handler for the Maemo Browser]] ||  OS2008 || The Feed Handler allows you to choose the application with which to open a RSS feed in the web browser (Using the &quot;Subscribe to feed&quot; feature). This allows you to add feeds to local applications (e.g. the built-in RSS reader), to web services (e.g. Google Reader) and to special-purpose applications (e.g. gPodder for podcast feeds).
|-
| [[Links terminal www browser]] ||  OS2006 || Links is a terminal based www browser.
|-
| [[Canola2-tuning-plugin]] ||  OS2008 || Canola tuning plugin for Canola2. and generate video thumbnails.
|-
| [[Mtr-tiny]] ||  OS2008 || Full screen ncurses traceroute tool in a single network diagnostic tool.
|-
| [[CGoban Maemo]] ||  OS2006 || CGoban Maemo is a port of cgoban1 to the Nokia 770 Internet Tablet.
|-
| [[SQLite]] ||  OS2006 || SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine.
|-
| [[Advanced Power]] ||  OS2008 || Frontend for Advanced Power Monitor.
Statusbar applet with information about: battery percent, active/idle time left, OS version, free RAM/swap/disk space, internal temperature, light sensor (N810), uptime, CPU control (governor control, frequency info), device mode (flight/normal mode, reboot, shutdown, lock screen and keys), bluetooth mode (off, discoverable, connectable), USB mode (otg, host), GTK themes support, run shell commands.
|-
| [[GFrotz]] ||  OS2006 || An interpreter for all Infocom games and other Z-machine games.
|-
| [[OLSRd]] ||  OS2006 || The olsr.org OLSR daemon is an implementation of the Optimized Link State Routing protocol.
|-
| [[Qt-maemo-example]] ||  OS2008 || A simple Qt text editor You can analize this package in order to understand how to package a Qt application for maemo.
|-
| [[Homeuptime]] ||  OS2008 || HomeUptime is a home hildon desktop applet which display the free space available on your disk
|-
| [[USB-GPS]] ||  OS2008 || use usb gps on the n800 with os2008. this is the cypress_m8 usb gps drivers so you can use your old delorme lt-20 gps ln your car with the n800.
|-
| [[Map Downloader]] ||  OS2008 || Map Downloader is a program that helps you to download maptiles into the device.
It use Maptile-loader, so that program must be installed. Map Downloader can be used to load
different kind of maps. If map source is defined to Maptile-loader, Map Downloader can load that
kind of maptiles
|-
| [[Personal password manager]] ||  OS2008 || Tiny and handy personal password manager. Usernames and passwords are copied into the clipboard on mouseclick for your convenience. Gpasman stores its data in a file encrypted using the rc2 algorithm described in RFC2268.
|-
| [[Zenmap]] ||  OS2008 || Zenmap is the official Nmap Security Scanner GUI. It is meant to be useful for advanced users and to make Nmap easy to use by beginners.
|-
| [[PyPackager]] ||  OS2006 OS2007 OS2008 || PyPackager is a small gui tool to create debian package on a maemo device. PyPackager is based on modified script : bdist_maemo.
|-
| [[Feed Circuit]] ||  OS2008 || FeedCircuit grabs rss and atom feeds and convert them to html for offline reading in tablet's browser. It may also cache web pages referenced by feeds and adapt them for tablet's screen size.
|-
| [[RubyBox]] ||  OS2008 || RubyBox is a DOSBox frontend written in Ruby. It allows you to run old DOS games and applications easily. You can import/export application settings using the online database and download freeware/shareware games from the application. It also scans your memory cards for new applications without complicated Linux/DOS commands.
|-
| [[Granule]] ||  OS2006 || Granule is a Leitner flashcards program with built-in methodology for learning new words effectively.
|-
| [[Flight of the Amazon Queen]] ||  OS2008 || Flight of the Amazon Queen is a 2D point-and-click adventure game set in the 1940s, originally published for DOS and the Amiga.
|-
| [[pwgen : generation of pronounceable passwords]] ||  OS2006 || Pwgen is a small, GPL'ed password generator which creates passwords which can be easily memorized by a human.
|-
| [[Bomberman IT2008]] ||  OS2008 || A hildonized port of the famous game Bomberman. It was very popular in the eighties. Multiplayer over network, as well as standalone with computer steered enemies. Updated for OS2008
|-
| [[Canola2-youtube-plugin]] ||  OS2008 || Youtube plugin for Canola2. Provides a plugin to watch Youtube videos in Canola2.
|-
| [[Xarchiver]] ||  OS2008 || A port of Xarchiver, which is a frontend for several compression utilities, like tar, rar, or zip. It supports mime-open and is tested &amp;amp; developed on the n800 with os2008/chinook.
|-
| [[Meta theme]] ||  OS2008 || White on blue theme
|-
| [[I-am-free]] ||  OS2008 || A shiny gem that costs you nothing
|-
| [[GNU Go]] ||  OS2006 || GNU Go is a free program that plays the game of Go.
|-
| [[AdBlock Plus]] ||  Maemo5 || Ad blocking plugin for Maemo Browser
|-
| [[OS2008 Polish UI translation]] ||  OS2008 || Project contains tranlated strings of all OS2008 apps and UIs, Polish regional settings and onscreen keyboard plugin.
|-
| [[Ogg support]] ||  OS2007 || ogg-support is a simple package for registering application/ogg and audio/x-ogg mime types and adding the corresponding GnomeVFS icons. The codecs are inserted as dependencies.
|-
| [[Penguintv]] ||  OS2008 || A full-featured RSS reader with built-in podcast support
|-
| [[Xournal]] ||  Maemo5 OS2006 OS2008 || Maemo Application for note taking
|-
| [[Tablet Encode]] ||  PC || This powerful application guarantees to convert your videos to formats which will play on your Internet Tablet. By using a system of presets, you can choose the trade-off between size and quality. Runs on Linux, Mac OS X, Unix and Windows PCs.
|-
| [[Additional keyboard layouts]] ||  OS2008 || Additional keyboard layouts.
|-
| [[xkbd-bthid]] ||  OS2007 || This is a software Bluetooth keyboard it turns your Nokia N800 into a Bluetooth HID keyboard.
|-
| [[Irtrans-irserver]] ||  OS2008 || IRTrans irserver.
|-
| [[MTetrinet]] ||  OS2008 || A tetrinet client for maemo/hildon. Based on &quot;tetrinet for linux&quot;.
|-
| [[ScummVM]] ||  OS2006 OS2007 OS2008 || ScummVM is a program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files.

|}</text>
    </revision>
  </page>
  <page>
    <title>User:Josefdk/Intro Mockup</title>
    <id>2882</id>
    <revision>
      <id>32680</id>
      <timestamp>2010-04-14T12:53:40Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix links</comment>
      <text xml:space="preserve">{| id=&quot;mp-topbanner&quot; style=&quot;width:100%; background:#fcfcfc; margin-top:1.2em; border:1px solid #ccc;&quot;
| style=&quot;width:56%; color:#000;&quot; |
&lt;!--        &quot;WELCOME TO MAEMO.ORG&quot; AND ARTICLE COUNT        --&gt;
{| style=&quot;width:70%; border:none; background:none;&quot;
| style=&quot;width:280px; text-align:center; white-space:#nowrap; color:#000;&quot; |
&lt;div style=&quot;font-size:162%; border:none; margin:0; padding:.1em; color:#000;&quot;&gt;Welcome to [[Maemo]],&lt;/div&gt;
&lt;div style=&quot;top:+0.2em; font-size:95%;&quot;&gt;the open source community developing software around the Maemo platform&lt;/div&gt;
&lt;div id=&quot;articlecount&quot; style=&quot;width:100%; text-align:center; font-size:85%;&quot;&gt;We have [[Special:Statistics|{{NUMBEROFARTICLES}}]] articles&lt;/div&gt;
|}
&lt;!--        PORTAL LIST ON RIGHT-HAND SIDE        --&gt;
| style=&quot;width:11%; font-size:95%;&quot; |
* [http://www.nokia.com/about-nokia/support N900 support]
* [[:Category:Community|Community]]
* [[:Category:Development|Development]]
| style=&quot;width:11%; font-size:95%;&quot; |
* [[2010_Agenda|2010 Agenda]]
* [[:Category:Brainstorm|Brainstorm]]
* [[:Category:HowTo|HOWTO]]
| style=&quot;width:11%; font-size:95%;&quot; |
* [[Maemo.org_sprints|Sprints]]
* [[:Category:Tasks|Tasks]]
* '''[[:Special:Categories|All&amp;nbsp;categories]]'''
|}
&lt;!--        STRAPLINE IMMEDIATELY BELOW BANNER        --&gt;
{| id=&quot;mp-strapline&quot; style=&quot;width:100%; background:none; margin:-.8em 0 -.7em 0;&quot;
| style=&quot;font-size:95%; padding:10px 0; margin:0; text-align:left; white-space:nowrap; color:#000;&quot; |[[Wikipedia:Tutorial|Editing]]&amp;nbsp;'''·''' [[New_users|Questions]]&amp;nbsp;'''·''' [[Maemo_basics|The Maemo Basics]]
| style=&quot;font-size:95%; padding:10px 0; margin:0; text-align:right; white-space:nowrap; color:#000;&quot; |
[[Special:Popularpages|Popular Pages]]&amp;nbsp;'''·''' [http://bugs.maemo.org Bug reports and feature requests]&amp;nbsp;'''·''' [http://wiki.maemo.org/index.php?title=Special%3AAllpages&amp;from=&amp;namespace=0 A–Z index]
|}
&lt;!--        WHAT IS MAEMO? BOX        --&gt;
{| style=&quot;margin:0; background:none;&quot;

| style=&quot;width:55%; border:1px solid #cef2e0; background:#fcfcfc; vertical-align:top; color:#000;&quot; |
{| style=&quot;width:100%; vertical-align:top; background:#fcfcfc;&quot;
! style=&quot;padding:10px&quot; | &lt;h2 style=&quot;margin:3px; background:#424345; font-size:120%; font-weight:bold; border:1px solid #fb9100; text-align:left; color:#ffffff; padding:0.2em 0.4em;&quot;&gt;What is Maemo?&lt;/h2&gt;
&lt;div style=&quot;font-weight:normal;font-size:100%;padding-left:10px;padding-right:10px;&quot;&gt;
Maemo is an open source community developing software around the Maemo platform. Maemo has over 18.000 members that contribute to more than 600 development projects. We work with open source tools and processes. We develop new software for both the platform itself and on top of the platform. Applications developed with the Maemo SDK are used today by thousands of consumers.

&lt;div style=&quot;float:left;padding-right:10px;&quot;&gt;[[Image:Maemo-stock-000.jpg|link=]]&lt;/div&gt; Maemo is a software platform that is based on open source code and powers mobile devices such as the [[Nokia N810]] Internet Tablet. Maemo platform has been developed by Nokia in collaboration with many open source projects such as the Linux kernel, Debian, [[Qt-Maemo|Qt]], GNOME, and many more.

If you have questions or would like to see what we think is most relevant for you to know first, look on our [[New_users|new users page]]. There's also a [[Maemo5_101|Maemo5 101]] page to help you get started.

Wondering what Maemo actually looks like? The Maemo UI team have posted some [http://www.youtube.com/user/Maemo5UITeam excellent video walkthroughs].
&lt;/div&gt;
&lt;!--        HOT TOPICS        --&gt;
|-
! style=&quot;padding:10px&quot; | &lt;h2 style=&quot;margin:3px; background:#424345; font-size:120%; font-weight:bold; border:1px solid #fb9100; text-align:left; color:#ffffff; padding:0.2em 0.4em;&quot;&gt;Hot Topics&lt;/h2&gt;
&lt;div style=&quot;padding:10px;font-weight:normal;&quot;&gt;
* We just got done with our [[Maemo_Summit_2009|2009 Maemo Summit]]&lt;div style=&quot;float:right;padding:10px;&quot;&gt;[[Image:Flame.gif|50px|link=]]&lt;/div&gt;
* We have a number of [[Maemo.org_Sprints/October_09|ongoing sprints]]
* Work is progressing on [[Task:Improving_the_Application_manager|improving the Application Manager]]
* [[Mer]] is the community-led Maemo Linux distribution for mobile devices
&lt;/div&gt;
|}
| style=&quot;border:1px solid transparent;&quot; |
&lt;!--        THE MAEMO COMMUNITY        --&gt;
| style=&quot;width:45%; border:1px solid #cedff2; background:#fcfcfc; vertical-align:top;&quot;|
{| style=&quot;width:100%; vertical-align:top; background:#fcfcfc;&quot;
! style=&quot;padding:10px&quot; | &lt;h2 id=&quot;mp-itn-h2&quot; style=&quot;margin:3px; background:#424345; font-size:120%; font-weight:bold; border:1px solid #fb9100; text-align:left; color:#ffffff; padding:0.2em 0.4em;&quot;&gt;The Maemo Community&lt;/h2&gt;
&lt;div style=&quot;padding:10px;font-weight:normal;&quot;&gt;
&lt;div style=&quot;float:left;padding-right:5px;&quot;&gt;[[Image:Icon-community.gif|link=]]&lt;/div&gt;Maemo is a community of [[People|people]] working together to make better mobile technology through open source. We are inclusive and welcoming; when you started reading this page, we already considered you one of us, so [[Getting_involved|get involved]].
Come and [http://talk.maemo.org say hi on our forums], or join us on our [[Community_mailing_lists|mailing lists]].
Maemo has a [[Community_Council|Community-elected Council]] chosen to represent our opinions and positions.
&lt;/div&gt;
&lt;!--        FOR DEVELOPERS        --&gt;
|-
! style=&quot;padding:10px&quot; | &lt;h2 style=&quot;margin:3px; background:#424345; font-size:120%; font-weight:bold; border:1px solid #fb9100; text-align:left; color:#ffffff; padding:0.2em 0.4em;&quot;&gt;For Developers&lt;/h2&gt;
|-
| style=&quot;color:#000;padding: 2px 5px 5px&quot; | &lt;div style=&quot;padding:10px;&quot;&gt;
&lt;div style=&quot;float:left;padding-right:10px;&quot;&gt;[[Image:Maemo xterm icon-fade.png]]&lt;/div&gt;Developing on and for the Maemo platform is straightforward; most newcomers to Maemo platform development will be up and running in an hour or two.

Once you have the [[Documentation/Maemo5_Final_Installation|Maemo SDK installed]], the [[Documentation/Maemo_5_Developer_Guide|Developer Guide]] is a great initial starting point. We also maintain a [http://mxr.maemo.org platform cross-reference].

When you've got a taste of Maemo platform, you'll have a better sense of what specifically you'd like to do next and the [[:Category:Development|Developer Portal]] will be the place for you.

Maemo platform based on and extends on a lot of the [[Task:Upstream_projects|best open source]] has to offer.

You can see what others are coding on and contribute your own code at [http://garage.maemo.org garage].

&lt;/div&gt;
|}
|}
&lt;!--        QUOTE OF THE DAY        --&gt;
{| style=&quot;margin:4px 0 0 0; width:100%; background:none;&quot;
| style=&quot;width:100%; border:1px solid #ddcef2; background:#faf5ff; vertical-align:top; color:#000;&quot;|
{| style=&quot;vertical-align:top; background:#faf5ff; color:#000; width:100%&quot;
! style=&quot;padding:10px&quot; | &lt;h2  id=&quot;mp-tfp-h2&quot; style=&quot;margin:3px; background:#424345; font-size:120%; font-weight:bold; border:1px solid #fb9100; text-align:left; color:#ffffff; padding:0.2em 0.4em&quot;&gt;Community Quote of the Day&lt;/h2&gt;
|-
| style=&quot;color:#000;padding: 10px&quot; | 

''&quot;Up yours Jayonthabeat! You're a sissy for staying away.&quot;'' - texrat, esteemed Community Council representative

|}
|}

__NOEDITSECTION__ &lt;!-- disables the [edit] links from being shown --&gt;
__NOTOC__ &lt;!-- disable the table of contents from ever being shown --&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Josefdk/Main Page mockup</title>
    <id>2877</id>
    <revision>
      <id>21383</id>
      <timestamp>2009-10-30T19:44:44Z</timestamp>
      <contributor>
        <username>josefdk</username>
        <id>1273</id>
      </contributor>
      <text xml:space="preserve">{| id=&quot;mp-topbanner&quot; style=&quot;width:100%; background:#fcfcfc; margin-top:1.2em; border:1px solid #ccc;&quot;
| style=&quot;width:56%; color:#000;&quot; |
&lt;!--        &quot;WELCOME TO WIKIPEDIA&quot; AND ARTICLE COUNT        --&gt;
{| style=&quot;width:280px; border:none; background:none;&quot;
| style=&quot;width:280px; text-align:center; white-space:nowrap; color:#000;&quot; |
&lt;div style=&quot;font-size:162%; border:none; margin:0; padding:.1em; color:#000;&quot;&gt;Welcome to [[Maemo]],&lt;/div&gt;
&lt;div style=&quot;top:+0.2em; font-size:95%;&quot;&gt;the open source community developing software around the Maemo platform&lt;/div&gt;
&lt;div id=&quot;articlecount&quot; style=&quot;width:100%; text-align:center; font-size:85%;&quot;&gt;We have [[Special:Statistics|{{NUMBEROFARTICLES}}]] articles&lt;/div&gt;
|}
&lt;!--        PORTAL LIST ON RIGHT-HAND SIDE        --&gt;
| style=&quot;width:11%; font-size:95%;&quot; |
* [http://www.nokia.com/about-nokia/support N900 support]
* [[Portal:Biography|Biography]]
* [[Portal:Geography|Geography]]
| style=&quot;width:11%; font-size:95%;&quot; |
* [[Portal:History|History]]
* [[Portal:Mathematics|Mathematics]]
* [[Portal:Science|Science]]
| style=&quot;width:11%; font-size:95%;&quot; |
* [[Portal:Society|Society]]
* [[Portal:Technology|Technology]]
* '''[[Portal:Contents/Portals|All&amp;nbsp;portals]]'''
|}
&lt;!--        STRAPLINE IMMEDIATELY BELOW BANNER        --&gt;
{| id=&quot;mp-strapline&quot; style=&quot;width:100%; background:none; margin:-.8em 0 -.7em 0;&quot;
| style=&quot;font-size:95%; padding:10px 0; margin:0; text-align:left; white-space:nowrap; color:#000;&quot; | [[Wikipedia:About|Overview]]&amp;nbsp;'''·''' [[Wikipedia:Tutorial|Editing]]&amp;nbsp;'''·''' [[Wikipedia:Questions|Questions]]&amp;nbsp;'''·''' [[Help:Contents|Help]]
| style=&quot;font-size:95%; padding:10px 0; margin:0; text-align:right; white-space:nowrap; color:#000;&quot; |
[[Portal:Contents|Contents]]&amp;nbsp;'''·''' [[Portal:Contents/Categorical index|Categories]]&amp;nbsp;'''·''' [[Portal:Featured content|Featured content]]&amp;nbsp;'''·''' [[Portal:Contents/Quick index|A–Z index]]
|}
&lt;!--        TODAY'S FEATURED ARTICLE; DID YOU KNOW        --&gt;
{| id=&quot;mp-upper&quot; style=&quot;margin:0; background:none;&quot;

| class=&quot;MainPageBG&quot; style=&quot;width:55%; border:1px solid #cef2e0; background:#f5fffa; vertical-align:top; color:#000;&quot; |
{| id=&quot;mp-left&quot; style=&quot;width:100%; vertical-align:top; background:#f5fffa;&quot;
! style=&quot;padding:2px&quot; | &lt;h2 id=&quot;mp-tfa-h2&quot; style=&quot;margin:3px; background:#cef2e0; font-size:120%; font-weight:bold; border:1px solid #a3bfb1; text-align:left; color:#000; padding:0.2em 0.4em;&quot;&gt;New and experienced users&lt;/h2&gt;
&lt;div style=&quot;font-weight:normal;font-size:100%;&quot;&gt;
Whether you just got yourself a Maemo-powered device or are looking for something specific, we always recommend starting with the [http://maemo.org/Intro Intro].

foo
* foo
* fop
* foo
&lt;/div&gt;
|-
| style=&quot;color:#000;&quot; | &lt;div id=&quot;mp-tfa&quot; style=&quot;padding:2px 5px&quot;&gt;foo&lt;/div&gt;
|-
! style=&quot;padding:2px&quot; | &lt;h2 id=&quot;mp-dyk-h2&quot; style=&quot;margin:3px; background:#cef2e0; font-size:120%; font-weight:bold; border:1px solid #a3bfb1; text-align:left; color:#000; padding:0.2em 0.4em;&quot;&gt;New and experienced developers&lt;/h2&gt;
|-
| style=&quot;color:#000;padding:2px 5px 5px&quot; | &lt;span style=&quot;font-size:110%;font-weight:bold;&quot;&gt; Getting Started &lt;/span&gt;
|}
| style=&quot;border:1px solid transparent;&quot; |
&lt;!--        IN THE NEWS; ON THIS DAY        --&gt;
| class=&quot;MainPageBG&quot; style=&quot;width:45%; border:1px solid #cedff2; background:#f5faff; vertical-align:top;&quot;|
{| id=&quot;mp-right&quot; style=&quot;width:100%; vertical-align:top; background:#f5faff;&quot;
! style=&quot;padding:2px&quot; | &lt;h2 id=&quot;mp-itn-h2&quot; style=&quot;margin:3px; background:#cedff2; font-size:120%; font-weight:bold; border:1px solid #a3b0bf; text-align:left; color:#000; padding:0.2em 0.4em;&quot;&gt;Hot right now&lt;/h2&gt;
|-
| style=&quot;color:#000;padding:2px 5px&quot; | &lt;div id=&quot;mp-itn&quot;&gt;hot&lt;/div&gt;
|-
! style=&quot;padding:2px&quot; | &lt;h2 id=&quot;mp-otd-h2&quot; style=&quot;margin:3px; background:#cedff2; font-size:120%; font-weight:bold; border:1px solid #a3b0bf; text-align:left; color:#000; padding:0.2em 0.4em;&quot;&gt;We the people&lt;/h2&gt;
|-
| style=&quot;color:#000;padding:2px 5px 5px&quot; | &lt;div id=&quot;mp-otd&quot;&gt;community&lt;/div&gt;
|}
|}
&lt;!--        TODAY'S FEATURED PICTURE        --&gt;
{| id=&quot;mp-tfp&quot; style=&quot;margin:4px 0 0 0; width:100%; background:none;&quot;
| class=&quot;MainPageBG&quot; style=&quot;width:100%; border:1px solid #ddcef2; background:#faf5ff; vertical-align:top; color:#000;&quot;|
{| style=&quot;vertical-align:top; background:#faf5ff; color:#000; width:100%&quot;
! style=&quot;padding:2px&quot; | &lt;h2  id=&quot;mp-tfp-h2&quot; style=&quot;margin:3px; background:#ddcef2; font-size:120%; font-weight:bold; border:1px solid #afa3bf; text-align:left; color:#000; padding:0.2em 0.4em&quot;&gt;Today's featured picture&lt;/h2&gt;
|-
| style=&quot;color:#000;padding: 2px&quot; | POTD
|}
|}

__NOEDITSECTION__ &lt;!-- disables the [edit] links from being shown --&gt;
__NOTOC__ &lt;!-- disable the table of contents from ever being shown --&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Josh</title>
    <id>2356</id>
    <revision>
      <id>17099</id>
      <timestamp>2009-08-31T11:22:43Z</timestamp>
      <contributor>
        <username>josh</username>
        <id>1071</id>
      </contributor>
      <comment>New page: == External Homepage == [http://joshtriplett.org Josh Triplett's homepage]</comment>
      <text xml:space="preserve">== External Homepage ==
[http://joshtriplett.org Josh Triplett's homepage]</text>
    </revision>
  </page>
  <page>
    <title>User:Jprobichaud</title>
    <id>4861</id>
    <revision>
      <id>43441</id>
      <timestamp>2011-05-12T04:04:30Z</timestamp>
      <contributor>
        <username>jprobichaud</username>
        <id>3538</id>
      </contributor>
      <comment>/* What to do after a reflash */</comment>
      <text xml:space="preserve">=== What to do after a reflash ===

# Install the following right away, with the regular app manager (HAM):
## rootfs
## fapman (FAM)
# do the following configuration changes:
## set the ringtone to &quot;Low&quot; instead of &quot;Nokia Tune&quot;
## set HAM auto-updating of the catalogs to false (where what that again?)
## in FAM:
### set &quot;never auto-update catalogs&quot; to true
### set &quot;automatically remove un-needed packages&quot; to false
## in &quot;Parameters&quot; disable the auto-updating of the packages when a network connection is established
## put XTerm shortcut on the desktop
## fix xterm custom keys bar (from http://talk.maemo.org/showpost.php?p=387901&amp;postcount=11): run the following as the regular user:
### &lt;pre&gt;gconftool-2 -s /apps/osso/xterm/key_labels -t list --list-type=string &quot;[Tab,Esc,PgUp,PgDn,|,~,&gt;,\`,CR]&quot;&lt;/pre&gt;
### &lt;pre&gt; gconftool-2 -s /apps/osso/xterm/keys -t list --list-type=string &quot;[Tab,Escape,Page_Up,Page_Down,bar,asciitilde,greater,grave,KP_Enter]&quot;&lt;/pre&gt;
### &lt;pre&gt; sed -i -e &quot;s/Throttle=0/Throttle=10/&quot; /home/user/.config/tracker/tracker.cfg &lt;/pre&gt;
## better trackerd, doesn't exactly make it bearable, but somewhat less sucking
## In config panel, change the following:
### display
#### screen always on while charging
### profiles
#### add vibration to &quot;silent&quot;
### text input
#### use virtual keyboard -&gt; true
#### 1st language: french/quebec
#### 2nd language: english/usa
#### use both dictionaries -&gt; true
### tv-out
#### output mode: ntsc
# Initial cleanup
## start FAM and remove:
### document to go installer
### ap news installer
### amazon installer
### facebook installer
### tutorial home applet
## from the desktops
### the useless shortcuts (google, facebook, ovi store)
### the tutorial applet
# repositories setup
## add the following  repositories in both HAM &amp; FAM
### extras-testing
### extras-devel
### community-ssu testing
# Getting back a decent system
## Install the following packages:
### starhash enabler
### adblock plus
### adflashblock-css
### app search widget
### batterygraph
### community SSU enabler
### enhanced busybox shell
### fm radio player
### linux kernel for power users (v47 as of May 2011)
### opera mobile (v11)
### openssh server/client
### x11vnc
### presence vnc
### katana (and some bibles...)
## setup USB networking: http://wiki.maemo.org/N900_USB_networking
## install CSSU: http://wiki.maemo.org/Cssu
## setup /etc/hosts
### desktop 192.168.0.145
### laptop 192.168.0.135
### projection 192.168.1.121
# further tweaks
## reload contacts from backup
## set a password for &quot;user&quot; (for better ssh usage...)
### root -&gt; &quot;passwd user&quot;
## setup rsa keys
### create a pub key on the n900
#### &lt;pre&gt; ssh-keygen -t rsa &lt;/pre&gt;
### &lt;pre&gt; cat ~/.ssh/id_rsa.pub | ssh user@n900-126 &quot;cat &gt;&gt; ~/.ssh/authorized_keys&quot; &lt;/pre&gt;
## reconfigure email accounts:
### axess
### hotmail
### exchange
## reconfigure google calendar sync</text>
    </revision>
  </page>
  <page>
    <title>User:Jprvita</title>
    <id>5200</id>
    <revision>
      <id>48162</id>
      <timestamp>2012-06-05T16:37:38Z</timestamp>
      <contributor>
        <username>jprvita</username>
        <id>5303</id>
      </contributor>
      <comment>New page: I’m Computer Engineer working with embedded devices since 2008, mostly with connectivity and media, but also with fancy GUIs. You can find more about me on http://about.me/jprvita.  I ha...</comment>
      <text xml:space="preserve">I’m Computer Engineer working with embedded devices since 2008, mostly with connectivity and media, but also with fancy GUIs. You can find more about me on http://about.me/jprvita.

I have been accepted on the QtonPi program to develop the following project:

&quot;I'm a developer of the QtWebkit project and have personal interest on writing a smart-tv platform with media center control capabilities and an integrate webbrowser that could be attached to any regular TV. The Raspberry Pi is an ideal hardware platform for that because of its reduced size and HDMI + RCA video jack and audio jack, and Qt with QtWebkit is the ideal software platform for this project. The project will be released under an open source license so anyone with a Raspberry Pi will be able to use it at home. Also, since there will be a graphical designer working with me on this project it will serve as an awesome showcase for Qt5 on embedded devices.&quot;</text>
    </revision>
  </page>
  <page>
    <title>User:Jsmanrique</title>
    <id>852</id>
    <revision>
      <id>7853</id>
      <timestamp>2008-10-22T08:30:24Z</timestamp>
      <contributor>
        <username>jsmanrique</username>
        <id>191</id>
      </contributor>
      <text xml:space="preserve">Info for jsmanrique user:
{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot;
! Photo
! Description
|-
| [[Image:jsm-256.jpg | Manrique]]
|
* [https://maemo.org/profile/view/jsmanrique/ Maemo profile]
* [http://jsmanrique.es/ Personal website (Spanish)]
* [http://jsmanrique.jaiku.com/ Jaiku site]
* [http://www.new.facebook.com/home.php#/profile.php?id=768814602&amp;ref=profile Facebook profile]
Maemo projects:
* [http://elisator.garage.maemo.org Elisator], an [http://en.wikipedia.org/wiki/ELISA Elisa assays] software for blood analyzer.
|}</text>
    </revision>
  </page>
  <page>
    <title>User:Jtukkine</title>
    <id>1072</id>
    <revision>
      <id>6255</id>
      <timestamp>2008-08-05T10:08:40Z</timestamp>
      <contributor>
        <username>jtukkine</username>
        <id>28</id>
      </contributor>
      <comment>New page: Hi,  I'm working as Research Manager in Maemo Software / Nokia.  Public profile at maemo.org: [http://maemo.org/profile/view/jtukkine/ jtukkine]   - Juha</comment>
      <text xml:space="preserve">Hi,

I'm working as Research Manager in Maemo Software / Nokia.

Public profile at maemo.org: [http://maemo.org/profile/view/jtukkine/ jtukkine]

 - Juha</text>
    </revision>
  </page>
  <page>
    <title>User:Juhak</title>
    <id>2659</id>
    <revision>
      <id>19823</id>
      <timestamp>2009-10-11T15:40:31Z</timestamp>
      <contributor>
        <username>juhak</username>
        <id>1265</id>
      </contributor>
      <text xml:space="preserve">I'm currently trying to set up the Maemo 5 SDK in KVM. I decided to write down my notes as I proceed; basing that page here until there's a better place for it:

* [[Running Scratchbox in KVM]]

(If a guide for this already exists somewhere, please let me know and spare me from some effort...)</text>
    </revision>
  </page>
  <page>
    <title>User:Juke</title>
    <id>3644</id>
    <revision>
      <id>30308</id>
      <timestamp>2010-02-28T11:30:20Z</timestamp>
      <contributor>
        <ip>82.245.128.56</ip>
      </contributor>
      <comment>/* Comment devenir root */</comment>
      <text xml:space="preserve">''' Comment devenir root '''

installer rootsh
 sudo gainroot 
ou 
 root</text>
    </revision>
  </page>
  <page>
    <title>User:Jukey</title>
    <id>90</id>
    <revision>
      <id>32633</id>
      <timestamp>2010-04-13T16:28:37Z</timestamp>
      <contributor>
        <username>jukey</username>
        <id>22</id>
      </contributor>
      <comment>/* Articles to work on */</comment>
      <text xml:space="preserve">Uwe Kaminski from [http://de.wikipedia.org/wiki/Potsdam-Babelsberg Potsdam (Babelsberg), Germany]&lt;br&gt;
jukey*@*ju-key.de&lt;br&gt;
*[http://internettabletblog.de jukey's blog (internettabletblog.de)]
*[http://maemo.org/profile/view/jukey/ jukey's maemo.org profile]
==Articles to work on==
===in a good condition===
*[[Sync]] (updated 2010-04-13)
*[[Chess]]
===to check===
*[[Accessing_Windows_CIFS]]
*[[Opt_Problem/Non-Optified_packages]]</text>
    </revision>
  </page>
  <page>
    <title>User:Karatchov</title>
    <id>3801</id>
    <revision>
      <id>31885</id>
      <timestamp>2010-04-02T18:52:24Z</timestamp>
      <contributor>
        <username>karatchov</username>
        <id>878</id>
      </contributor>
      <text xml:space="preserve">I'm a med student, making my way through the 5th year.

I've always been interested in computers and programming.

I was introduced to the Maemo platform more than 1 year ago thanks to my N800.


I discovered Qt and python, and I think I can rule the world with them.</text>
    </revision>
  </page>
  <page>
    <title>User:Karstenb</title>
    <id>1070</id>
    <revision>
      <id>6222</id>
      <timestamp>2008-08-04T10:19:20Z</timestamp>
      <contributor>
        <username>karstenb</username>
        <id>265</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">&lt;br&gt; ''One of these days I'll unify all these pages...''


=== Karsten Bräckelmann ===

: [http://bugs.maemo.org maemo.org] bugmaster for the Community and [http://openismus.com/ Openismus]

==== Some stuff I work on ====

* [http://live.gnome.org/Bugsquad GNOME Bugsquad] volunteer, lurker and former heavy load triager
* member of the [http://live.gnome.org/ReleasePlanning/ GNOME Release Team] and &lt;br&gt; maintainer of [http://www.gnome.org/projects/garnome/ GARNOME], the build utility for the GNOME desktop
* [http://www.gnome.org/projects/evolution/ Evolution] bugging master and interactive FAQ answering bot
* Apache [http://spamassassin.apache.org/ SpamAssassin] rules hacking

==== Contact ====

* ''guenther'' on GimpNet IRC and Freenode (#maemo)
* eMail: [mailto:karstenb@openismus.com karstenb@openismus.com] and others
* my [http://blogs.gnome.org/kbrae/ blog], syndicated on [http://planet.gnome.org/ Planet GNOME] and [http://planet.gnome.org/ Planet Maemo]


  -- 
  A: No.
  Q: Should I put my reply above quoted text?</text>
    </revision>
  </page>
  <page>
    <title>User:Kate</title>
    <id>851</id>
    <revision>
      <id>5056</id>
      <timestamp>2008-07-21T09:18:07Z</timestamp>
      <contributor>
        <username>kate</username>
        <id>215</id>
      </contributor>
      <comment>New page: &lt;h1&gt;Kate Alhola&lt;/h1&gt;   Maemo Chief Engineer in Forum Nokia  TSC Technology development  My blog: [http://blogs.forum.nokia.com/blog/kate-alholas-forum-nokia-blog]</comment>
      <text xml:space="preserve">&lt;h1&gt;Kate Alhola&lt;/h1&gt;


Maemo Chief Engineer in Forum Nokia  TSC Technology development

My blog: [http://blogs.forum.nokia.com/blog/kate-alholas-forum-nokia-blog]</text>
    </revision>
  </page>
  <page>
    <title>User:Khertan</title>
    <id>1067</id>
    <revision>
      <id>6147</id>
      <timestamp>2008-08-01T14:02:31Z</timestamp>
      <contributor>
        <username>khertan</username>
        <id>26</id>
      </contributor>
      <text xml:space="preserve">== Benoît HERVIER (Khertan) ==
[[Image:logo Khertan.png | Khertan]]
----

== Information : ==

* Web Site : http://khertan.net/

----

== Contact : ==

* Email : khertan@khertan.net
* AIM : Khertan
* MSN : msn@khertan.net
* IRC : Khertan or Khertan_n810 on #maemo on irc.freenode.net</text>
    </revision>
  </page>
  <page>
    <title>User:Krisse</title>
    <id>934</id>
    <revision>
      <id>5550</id>
      <timestamp>2008-07-25T23:00:43Z</timestamp>
      <contributor>
        <username>krisse</username>
        <id>233</id>
      </contributor>
      <comment>New page: I run [http://tabletschool.blogspot.com/2008/01/contents-page.html the Internet Tablet School], a tutorial site for casual users and people new to Nokia's internet tablets.</comment>
      <text xml:space="preserve">I run [http://tabletschool.blogspot.com/2008/01/contents-page.html the Internet Tablet School], a tutorial site for casual users and people new to Nokia's internet tablets.</text>
    </revision>
  </page>
  <page>
    <title>User:Krk969/Maemo Coding Competition 1</title>
    <id>4120</id>
    <revision>
      <id>34639</id>
      <timestamp>2010-05-21T14:03:20Z</timestamp>
      <contributor>
        <username>krk969</username>
        <id>1678</id>
      </contributor>
      <comment>New page: == Welcome to the first App development Contest for Maemo devices. ==   Are you bored waiting for new games to be released for your n900? Is your forehead wrinkled stressing about the lack...</comment>
      <text xml:space="preserve">== Welcome to the first App development Contest for Maemo devices. ==


Are you bored waiting for new games to be released for your n900? Is your forehead wrinkled stressing about the lack of applications in the extras repository? Does the emptiness of the Ovi store make you urinate in your sleep? And do you call out your mother's name when making love to your girlfriend because of step 4 of 5 disappointment and unrelated mental issues?

Well now YOU can change that, my friends! Introducing the first ever N900 Coding Competition!

This is a professional competition, and no expense has been spared to create the following soul stirring poster.



If you are new to programming or want to learn, here's the excuse to finally make something. Anything. Particularly crap or stupid apps are particularly welcome, and I, in particular, will be particularly focusing on making such an stupid crappy app in particular.

Qt, PyQt, PyGTK, whatever language you like as long as it's functionally complete, runs safely and easily on the n900. Don't make a virus kthx.

There are 6 main categories for judging:

* Desktop
* System &amp; Utilities
* Games
* Graphics &amp; Multimedia
* Location &amp; Navigation
* Other


Every good competition has prizes, and I'm starting the bounty at $50 or equivalent to the developer(s) of the best overall app. If you would like to add to the prize fund please reply and let me know.. $5, $10, anything would be gratefully received. Why not sponsor your favourite category?

'''The winning application(s) will be decided by forum poll after the closing date of June 21st, 2010.''' Good luck and most of all have fun!

Entrants can join at any time.</text>
    </revision>
  </page>
  <page>
    <title>User:Kup</title>
    <id>1699</id>
    <revision>
      <id>11875</id>
      <timestamp>2009-03-19T10:30:32Z</timestamp>
      <contributor>
        <username>kup</username>
        <id>686</id>
      </contributor>
      <comment>New page: Hello :)</comment>
      <text xml:space="preserve">Hello :)</text>
    </revision>
  </page>
  <page>
    <title>User:Kvalo</title>
    <id>803</id>
    <revision>
      <id>4671</id>
      <timestamp>2008-07-17T14:12:33Z</timestamp>
      <contributor>
        <username>kvalo</username>
        <id>204</id>
      </contributor>
      <comment>Created the page</comment>
      <text xml:space="preserve">== Kalle Valo ==

See [http://maemo.org/profile/view/kvalo/ my maemo.org profile] for more.</text>
    </revision>
  </page>
  <page>
    <title>User:Lardman</title>
    <id>794</id>
    <revision>
      <id>4542</id>
      <timestamp>2008-07-16T08:23:12Z</timestamp>
      <contributor>
        <username>lardman</username>
        <id>60</id>
      </contributor>
      <comment>Created my page</comment>
      <text xml:space="preserve">lardman on irc
aka Simon Pickering on the mailing lists.

I do some DSP hacking, some wondering about the IVA and general pestering about the PowerVR.

Other interests: A2DP, GPS (inner workings), barcodes!</text>
    </revision>
  </page>
  <page>
    <title>User:Lars</title>
    <id>3065</id>
    <revision>
      <id>23332</id>
      <timestamp>2009-11-25T12:22:30Z</timestamp>
      <contributor>
        <username>lars</username>
        <id>1477</id>
      </contributor>
      <comment>/* Set up mDNS (aka Bonjour, aka Rendezvous) */</comment>
      <text xml:space="preserve">== Random N900/MAEMO Tips ==
I'm going to be using this page to jot down some notes about doing stuff on the N900 that I've just gotten. Maybe someone else will find this useful.

__TOC__


=== Speed up the Application Manager ===

The application manager uses apt-get, and the default network-related timeouts are rather long. Add this to the end of your &lt;tt&gt;/etc/apt/apt.conf.d/00maemo&lt;/tt&gt; file to speed things up when servers are unreachable:
&lt;pre&gt;
// Be more aggressive in timing out stuck network connection attempts.          
//                                                                              
Acquire::Retries &quot;1&quot;;                                                           
Acquire::http::Timeout &quot;3&quot;;                                                     
Acquire::https::Timeout &quot;3&quot;;                                                    
Acquire::ftp::Timeout &quot;3&quot;;                                                      
&lt;/pre&gt;


=== Set up mDNS (aka Bonjour, aka Rendezvous) ===

As described [http://thpmaemo.blogspot.com/2008/11/get-avahi-working-on-maemo.html here], you can install [http://avahi.org/ avahi], an open-source mDNS client.

Since the N900 uses upstart, the information [http://thpmaemo.blogspot.com/2008/11/get-avahi-working-on-maemo.html here] about changing the service startup order is no longer relevant. Instead, you need to create two files for upstart as follows:

==== /etc/event.d/avahi-daemon ====
&lt;pre&gt;
start on started dbus
console output
respawn
exec /usr/sbin/avahi-daemon -D
&lt;/pre&gt;

==== /etc/event.d/avahi-dnsconfd ====
&lt;pre&gt;
start on started dbus
console output
respawn
exec /usr/sbin/avahi-dnsconfd -D
&lt;/pre&gt;

If you're running an SSH service on the N900, you can announce it via mDNS by creating the following file:

==== /etc/avahi/services/ssh.service ====
&lt;pre&gt;
&lt;?xml version=&quot;1.0&quot; standalone='no'?&gt;
&lt;!DOCTYPE service-group SYSTEM &quot;avahi-service.dtd&quot;&gt;
&lt;service-group&gt;
  &lt;name replace-wildcards=&quot;yes&quot;&gt;%h&lt;/name&gt;
  &lt;service&gt;
    &lt;type&gt;_ssh._tcp&lt;/type&gt;
    &lt;port&gt;22&lt;/port&gt;
  &lt;/service&gt;
&lt;/service-group&gt;
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Lbt</title>
    <id>221</id>
    <revision>
      <id>21802</id>
      <timestamp>2009-11-04T00:03:07Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>/* Projects */</comment>
      <text xml:space="preserve">==Me==
I'm a longtime linux user:
* My TV runs linux (MythTV)
* My desktop is linux (Debian)
* My '''wife's''' desktop is linux (Debian)
* My dom0 is linux and so are my domUs
* My car stereos run linux (Empegs)
* My PDAs run linux (Zaurus, N800)
* My hifi runs off linux (Squeezebox, Rio Receiver)
* One day my pictureframe will run linux

Things I've done elsewhere:
* I help run the http://linux-raid.osdl.org/ wiki
* I started the git documentation

I'm a strong believer in the social value of OpenSource to the community of people and the economic value to a community of businesses.

contact me at david at dgreaves dot com

== Projects ==
* [http://maemo.org/downloads/product/OS2008/shopper/ Shopper] - A very useful shopping list application.
* [[Mer]]
* [[Qt]]

* I am the Mer Build Tools Mentor too. If you need anything OBS related then please ask. I started most of the [[Mer/Build]] area.

* I am currently working on getting OBS to build Fremantle packages.


===Shopper===
This was my N800 development SDK intro project.

A small but useful shopping list app. No need for python etc. Tailored for wandering round a supermarket.</text>
    </revision>
  </page>
  <page>
    <title>User:Leandro</title>
    <id>1697</id>
    <revision>
      <id>11864</id>
      <timestamp>2009-03-19T00:24:34Z</timestamp>
      <contributor>
        <username>leandro</username>
        <id>689</id>
      </contributor>
      <text xml:space="preserve">[[Image:Leandro.jpg]]

'''Leandro Melo de Sales''' is a Software Engineer at the Embedded Systems and Pervasive Laboratory at Federal University of Campina Grande, Brazil, where he is a PhD candidate in Computer Science. He has been developing embedded systems mainly for Nokia platforms through Nokia Institute of Technology in Brazil. He focuses his efforts in technologies/platforms such as Symbian and maemo in areas like Universal Plug and Play (UPnP), Location Based Systems, Semantic Web Services, VoIP and DCCP Internet protocol and development of DCCP for the Linux kernel. Currently he is the BRisa and E-Phone projects team leader.</text>
    </revision>
  </page>
  <page>
    <title>User:Leoz</title>
    <id>1203</id>
    <revision>
      <id>7304</id>
      <timestamp>2008-09-17T07:53:48Z</timestamp>
      <contributor>
        <ip>192.100.124.218</ip>
      </contributor>
      <comment>New page: [http://maemo.org/profile/view/leoz.html]</comment>
      <text xml:space="preserve">[http://maemo.org/profile/view/leoz.html]</text>
    </revision>
  </page>
  <page>
    <title>User:Ljakob</title>
    <id>4226</id>
    <revision>
      <id>35430</id>
      <timestamp>2010-06-06T19:10:38Z</timestamp>
      <contributor>
        <username>ljakob</username>
        <id>2919</id>
      </contributor>
      <minor/>
      <comment>/* ssh via Bluetooth */</comment>
      <text xml:space="preserve">{{Leif Jakob}}

= Tweaks =

I've done some &quot;tweaking&quot;:

* repartitioning MMC (with parted)
* change from vfat to ext3 (camera and USB mass storage still work)
* enable usb networking in PC suite-mode

= Great Apps =

* iodine gets you online without using your credit card at airports :)
* openvpn give you access to your asterisk while staying in insecure WLANs

= RescueMenu =

Tired of bricking your N900? Don't want to lose your changes in the root-fs? Here's my solution: RescueMenu

[[Image:Ljakob_rescuemenu_Sceenshot.png]]

Download it from

http://www.jakob.weite-welt.com/RescueMenu/RescueMenu.item

&lt;code&gt;apt-get install bootmenu-n900&lt;/code&gt;

and place &lt;code&gt;RescueMenu.item&lt;/code&gt; at 
&lt;code&gt;/etc/bootmenu.d/RescueMenu.item&lt;/code&gt;. This file breaks all
functionality of bootmenu.sh but it's broken anyway (IMHO).

Next time you reboot your device with open keyboard you get all this features

* access with USB networking via ssh
* access to your whole 32 GB MMC as an usb-storage device
* shell access via USB console (e.g. minicom)
* rsync daemon
* it does not need [[R%26D_mode|R&amp;D-Mode]] to be enabled

= ssh via Bluetooth =

Just place this file into &lt;code&gt;/etc/bluetooth/serial.conf&lt;/code&gt;:

 [Proxy DUN]
 UUID=00001103-0000-1000-8000-00805F9B34FB
 Address=localhost:22

as root run on your N900:
 stop bluetoothd
 start bluetoothd

On your client run:
 rfcomm bind /dev/rfcomm0 &lt;MyPhonesBTAddressHere&gt;

And use ser2net to attach the device to a listening socket again...

What this is good for?

* use 3G from a notebook without USB cable
* use your N900 as a &quot;WLAN2BT repeater&quot;</text>
    </revision>
  </page>
  <page>
    <title>User:Lma</title>
    <id>1254</id>
    <revision>
      <id>7622</id>
      <timestamp>2008-10-03T06:33:23Z</timestamp>
      <contributor>
        <username>lma</username>
        <id>37</id>
      </contributor>
      <comment>New page: == Contact ==  maemo at subs dot maneos dot org</comment>
      <text xml:space="preserve">== Contact ==

maemo at subs dot maneos dot org</text>
    </revision>
  </page>
  <page>
    <title>User:Lucianomw</title>
    <id>2243</id>
    <revision>
      <id>16117</id>
      <timestamp>2009-08-03T19:31:04Z</timestamp>
      <contributor>
        <username>lucianomw</username>
        <id>1018</id>
      </contributor>
      <text xml:space="preserve">Under construction :)

Take a look at [http://maemo.org/profile/view/lucianomw/ profile] page by now.</text>
    </revision>
  </page>
  <page>
    <title>User:Ludovicus</title>
    <id>35</id>
    <revision>
      <id>1724</id>
      <timestamp>2008-06-15T21:13:03Z</timestamp>
      <contributor>
        <username>ludovicus</username>
        <id>13</id>
      </contributor>
      <comment>/* Present Maemo Wiki Project(s) */</comment>
      <text xml:space="preserve">=Welcome to MyTalk Page=

I currently use the nokia810 as of 5/22/08 have implemented the sdk environment using ubuntu 7.10.
--[[User:ludovicus|ludovicus]] 16:33, 22 May 2008 (UTC)

==Maemo WikiGoals:==  
#help transition transition http://maemo.org/community/wiki/ to https://wiki.maemo.org
#increase my wiki skills 
#collaborate with the maemo community to increase documentatin and communication level
#help create a logical structure for navigation for new users
#proof read pages and help maintain consistency in language and terminology</text>
    </revision>
  </page>
  <page>
    <title>User:Luovanto</title>
    <id>1031</id>
    <revision>
      <id>5810</id>
      <timestamp>2008-07-28T11:21:35Z</timestamp>
      <contributor>
        <username>luovanto</username>
        <id>249</id>
      </contributor>
      <text xml:space="preserve">Jussi Mäkinen / 
Maemo Product &amp; Consumer Marketing @ Nokia</text>
    </revision>
  </page>
  <page>
    <title>User:Lxp</title>
    <id>4650</id>
    <revision>
      <id>42462</id>
      <timestamp>2011-03-08T06:27:13Z</timestamp>
      <contributor>
        <username>lxp</username>
        <id>3840</id>
      </contributor>
      <comment>osso-xterm toolbar added</comment>
      <text xml:space="preserve">Welcome to my Maemo notes page.

== osso-xterm toolbar ==

Get current keys:

  gconftool -g /apps/osso/xterm/keys
  gconftool -g /apps/osso/xterm/key_labels

Set keys:

  gconftool -s /apps/osso/xterm/keys -t list --list-type=string &quot;[Tab,Escape,Page_Up,Page_Down,bar,greater]&quot;
  gconftool -s /apps/osso/xterm/key_labels -t list --list-type=string &quot;[Tab,Esc,PgUp,PgDn,|,&gt;]&quot;


== wlancond debug level ==

Get current debug level:

  gconftool -g /system/osso/connectivity/IAP/wlancond_debug_level

Set debug level:

  gconftool -s /system/osso/connectivity/IAP/wlancond_debug_level -t int 2

Unset debug level:

  gconftool -u /system/osso/connectivity/IAP/wlancond_debug_level

After changing the debug level you have to restart wlancond:

  stop wlancond
  start wlancond</text>
    </revision>
  </page>
  <page>
    <title>User:M750</title>
    <id>4615</id>
    <revision>
      <id>40910</id>
      <timestamp>2010-12-26T08:40:20Z</timestamp>
      <contributor>
        <username>m750</username>
        <id>3749</id>
      </contributor>
      <comment>New page: http://maemo.org/profile/view/M750/</comment>
      <text xml:space="preserve">http://maemo.org/profile/view/M750/</text>
    </revision>
  </page>
  <page>
    <title>User:Macr0t0r</title>
    <id>1357</id>
    <revision>
      <id>8959</id>
      <timestamp>2008-11-24T21:34:38Z</timestamp>
      <contributor>
        <ip>192.31.106.35</ip>
      </contributor>
      <comment>New page: This is a test.</comment>
      <text xml:space="preserve">This is a test.</text>
    </revision>
  </page>
  <page>
    <title>User:Macron</title>
    <id>3648</id>
    <revision>
      <id>30113</id>
      <timestamp>2010-02-24T13:19:04Z</timestamp>
      <contributor>
        <username>macron</username>
        <id>2205</id>
      </contributor>
      <comment>New page: '''Real Name:''' Ronan Mac Laverty  '''Title:''' Maemo Developer Advocate  '''Experience:''' 9 years at Nokia Research Center, 2 years at GE Healthcare, 2008- Nokia (Services &amp; Maemo Devic...</comment>
      <text xml:space="preserve">'''Real Name:''' Ronan Mac Laverty

'''Title:''' Maemo Developer Advocate

'''Experience:''' 9 years at Nokia Research Center, 2 years at GE Healthcare, 2008- Nokia (Services &amp; Maemo Devices), mainly software development (but some management too).

I am an experienced software development professional who has worked on software development for the past 20 years (started at home on a ZX81 with a gigantic 1kB of memory).  My role here is listen and to represent the developer community both within and external to Nokia.  I am an engineer by training, and although I would not consider myself an expert on any particular technology I am interested in problems, especially solving problems.</text>
    </revision>
  </page>
  <page>
    <title>User:Magick777</title>
    <id>4340</id>
    <revision>
      <id>40625</id>
      <timestamp>2010-12-08T14:34:20Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>direct links</comment>
      <text xml:space="preserve">Welcome to my user page on the Maemo wiki. I've just jumped on the N900 bandwagon, I'm new to Maemo but have 10+ years experience with Debian on the desktop. I'll be using this page to document those aspects of my personal setup that don't merit a Wiki page in their own right, but may be of interest to a select few, and will also attempt to improve the Wiki in general when I have relevant content.

== Works in progress ==

* [[Migrating to N900 from Series 60]]
* [[Manual backup and restore]]
* Additions to [[N900 Accessories]]
* [[Adventures with D-Bus]]

== My personal pages ==

Pages in this section may be in beta or may not be sufficiently noteworthy to justify linking into the wider Wiki, but if it's N900 or Maemo related, it probably ends up in here.

*[[User:Magick777/My_N900_Changelog|My N900 Changelog]]
*[[User:Magick777/My_N900_Scheduling|My N900 Scheduling]]
* [[User:Magick777/Dial via SIP|Dial via SIP]]
*[[User:Magick777/Opportunistic_Power_Saving|Opportunistic power saving]]</text>
    </revision>
  </page>
  <page>
    <title>User:Magick777/Adventures with D-Bus</title>
    <id>4459</id>
    <revision>
      <id>43725</id>
      <timestamp>2011-06-02T07:07:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>[[Adventures with D-Bus]] moved to [[User:Magick777/Adventures with D-Bus]]</comment>
      <text xml:space="preserve">This page started because I'm trying to figure out D-Bus, as a relative newbie to Python and Telepathy, and the documentation is, shall we say, &quot;fragmented&quot;. All the D-Bus recipes on the Wiki don't seem to include a simple way to place a call via the sofiasip client. The Telepathy documentation speaks to a vague architecture, not to my [[Nokia N900|N900]]'s implementation of it, and seems better for someone who wants to write a whole new interface than someone who just wants to use an existing one. I've read more source code and more forum posts than you can shake a stick at and I'm still none the wiser. So, this is a generic HOWTO for newbies (written by one) on how to track down an existing application's behaviour on D-Bus and replicate it. Work in progress September 2010.

== Step 1: dbus-monitor ==

After some playing around with &lt;code&gt;dbus-monitor&lt;/code&gt;, I've established that when I make a SIP call via the inbuilt Phone application, the first thing that happens on the session bus is:

&lt;pre&gt;
method call sender=:1.121 -&gt;
dest=org.freedesktop.Telepathy.AccountManager
serial=439
path=/org/freedesktop/Telepathy/Account/sofiasip/sip/_31030137_40sipgate_2eco_2euk0;
interface=com.nokia.Account.Interface.ChannelRequests;
member=Create
   array [
      dict entry(
         string &quot;org.freedesktop.Telepathy.Channel.TargetHandleType&quot;
         variant             uint32 1
      )
      dict entry(
         string &quot;org.freedesktop.Telepathy.Channel.TargetID&quot;
         variant             string &quot;sip:50000@sipgate.co.uk&quot;
      )
      dict entry(
         string &quot;org.freedesktop.Telepathy.Channel.ChannelType&quot;
         variant             string &quot;org.freedesktop.Telepathy.Channel.Type.StreamedMedia&quot;
      )
   ]
   uint64 14701758
   string &quot;&quot;
&lt;/pre&gt;

and, for a call to a PSTN number, via a different SIP account:

&lt;pre&gt;
method call sender=:1.191 -&gt;
dest=org.freedesktop.Telepathy.AccountManager
serial=500
path=/org/freedesktop/Telepathy/Account/sofiasip/sip/_330147398_40sip_2evoipfone_2eco_2euk0; 
interface=com.nokia.Account.Interface.ChannelRequests; 
member=Create
   array [
      dict entry(
         string &quot;org.freedesktop.Telepathy.Channel.TargetHandleType&quot;
         variant             uint32 1
      )
      dict entry(
         string &quot;org.freedesktop.Telepathy.Channel.ChannelType&quot;
         variant             string &quot;org.freedesktop.Telepathy.Channel.Type.StreamedMedia&quot;
      )
      dict entry(
         string &quot;org.freedesktop.Telepathy.Channel.TargetID&quot;
         variant             string &quot;08081703703&quot;
      )
   ]
   uint64 1284595510
   string &quot;&quot;
&lt;/pre&gt;

From this, we can deduce that:

* we need to make a method call over D-Bus to initiate the SIP call
* we need to send it to &lt;code&gt;org.freedesktop.Telepathy.AccountManager&lt;/code&gt;
* our path is &lt;code&gt;/org/freedesktop/Telepathy/Account/&lt;/code&gt; plus SofiaSIP account path
** which can be found via &quot;mc-tool list&quot; (package libmissioncontrol-utils)
** or, no doubt, via D-Bus, but we'll worry about that later
* our interface is &lt;code&gt;com.nokia.Account.Interface.ChannelRequests&lt;/code&gt;
* the action we must take on that interface is to Create (a new channel)
* for which we must supply an array of dicts, a number and an empty string
** TargetHandleType is 1
** ChannelType is StreamedMedia
** Target ID contains our destination SIP address or phone number
** not sure what that &lt;code&gt;uint64&lt;/code&gt; is about, some kind of timestamp?

and we can hope that, if we can pack up that set of instructions and deliver it to telepathy-sofiasip, it will (hopefully) place a call for us.

== Step 2: dbus-send (actually, a false step) ==

I spent a while playing with dbus-send and reading the forums, until a thread led me to the following statement in the (fine) manual page: 

'''&quot;dbus-send does not permit empty containers or nested containers (e.g. arrays of variants)&quot;'''

We can assume that &lt;code&gt;dbus-send&lt;/code&gt; isn't going to like an array of dicts any more than it likes an array of variants, ergo, that what we want to do cannot be done with &lt;code&gt;dbus-send&lt;/code&gt;. That would explain why there's no simple recipe on the Wiki, then. Well, if we can't use &lt;code&gt;dbus-send&lt;/code&gt;, I guess we'll have to resort to Python. That's going to be fun; I'm not in the habit of conversing with reptiles.

== Step 3: python ==

The only example I could find of a shell script making a D-Bus method call is the &quot;athome&quot; script on the [[DbusScripts]] page, which in theory should act as a starting point for what I want to do.

&lt;source lang=&quot;python&quot;&gt;
#!/usr/bin/python 

import dbus
import sys
import re
import telepathy

# This gets us a connnection to the session bus
bus = dbus.SessionBus()

# This would seem to set up a proxy object, referring to our target SIP  account
account = bus.get_object('org.freedesktop.Telepathy.AccountManager',
                         '/org/freedesktop/Telepathy/Account/sofiasip/sip/_309517129090')

# This would seem to make a method call on the object
#account.Set('org.freedesktop.Telepathy.Account', 'RequestedPresence', \
#               dbus.Struct(( dbus.UInt32( presence_const) ,  presence_text,  &quot;&quot;), signature='uss'),
#               dbus_interface='org.freedesktop.DBus.Properties')

# We need to make a method call to Create a new channel

account.Set('org.freedesktop.Telepathy.Account', 'RequestedPresence', \
               dbus.Struct(( dbus.UInt32( presence_const) ,  presence_text,  &quot;&quot;), signature='uss'),
               dbus_interface='org.freedesktop.DBus.Properties')
&lt;/source&gt;

[[Category:Python]]</text>
    </revision>
  </page>
  <page>
    <title>User:Magick777/Dial via SIP</title>
    <id>4457</id>
    <revision>
      <id>40623</id>
      <timestamp>2010-12-08T14:29:14Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>[[Dial via SIP]] moved to [[User:Magick777/Dial via SIP]]: stub page</comment>
      <text xml:space="preserve">== What am I trying to do ==

Be able to dial a SIP call from the command line or a script. Preferably, be able to dial a SIP call and send DTMF to use calling card services.

== Why am I trying to do this? ==

I would like fully-functional [[least cost routing]] on my phone, including routes provided by telepathy as well as calling-card options. [http://maemo.org/packages/view/vicar/ VICaR] does a good job of providing the &quot;calling-card&quot; functionality over the GSM channel and provides a nice interface to route calls via LCR.</text>
    </revision>
  </page>
  <page>
    <title>User:Magick777/My N900 Changelog</title>
    <id>4348</id>
    <revision>
      <id>36828</id>
      <timestamp>2010-07-14T17:32:42Z</timestamp>
      <contributor>
        <username>magick777</username>
        <id>3129</id>
      </contributor>
      <text xml:space="preserve">This page is created mainly for my own reference, it documents the steps that I have taken in setting up my N900 on Vodafone in the UK. It does not constitute a recommendation that anybody else should follow these steps; your mileage may vary.

'''20100714'''
*1829 set up Facebook chat account
*1828 set up Skype account
*1825 set up primary IMAP/SMTP e-mail account
*1815 set up wireless LAN connection
*1800 phone rebooted into sw version 10.2010.19-1.203.1
*1745 started flashing with (MD5-verified) [[Maemo_5/PR1.2]] UK firmware
*1742 product version was found to be 2.2009.51-1.205.1 (shame on you, Vodafone!)
*1740 contacts &amp; calendar data migrated in from N96
*1730 found option to synchronise contacts from old phone via Bluetooth
*1725 received the phone, installed SIM &amp; battery, connected charger, powered on, set time &amp; date

'''20100713 - preparation for new phone'''
*Downloaded [[Maemo_5/PR1.2]] UK firmware + flasher tool, installed flasher on Ubuntu desktop</text>
    </revision>
  </page>
  <page>
    <title>User:Magick777/My N900 Scheduling</title>
    <id>4353</id>
    <revision>
      <id>36972</id>
      <timestamp>2010-07-18T12:22:20Z</timestamp>
      <contributor>
        <username>magick777</username>
        <id>3129</id>
      </contributor>
      <comment>/* Opportunistic power saving */</comment>
      <text xml:space="preserve">= What do I need to schedule =

== Backups ==
* Regular backups to be scheduled from alarmed at such time as I have a suitable backup script.

== Maintenance ==
* Perform any software or network updates that may be required
* Reset GPRS data counters monthly (done via Alarmed)

== Profiles ==
* Minimise annoyances overnight (but allow alarms to work)
** Turn off e-mail checking &amp; notifications overnight

== Optimisations ==
* Power management - maximise battery life opportunistically
** force 2G mode when phone is in pocket/not being actively used
* Perform updates when on WLAN to minimise transfer via GPRS

= Criteria for scheduling events =

== Time-based scheduling ==

Certain actions need to be scheduled according to time of day, week or month, i.e. as per the scheduling behaviour of the Unix cron daemon. There seem to be two viable ways of achieving this, via [[fcron]] and [http://talk.maemo.org/showthread.php?t=46594 Alarmed]. The [fcron] page is well-written and useful, but I think [http://talk.maemo.org/showthread.php?t=46594 Alarmed] is the better tool for the job, partly on the strength of the GUI and partly because it uses an existing daemon rather than adding another one.

== Phone status &amp; event scheduling ==

=== Charger plugged in / removed ===

When charging starts, it usually means that the phone is at home and therefore that we want to cancel power saving measures, enable WiFi and so forth. However, this may not always be correct and it would be nice to incorporate some sort of test that we actually are at home and that the actions taken are correct. So, what we need is a script that enables WiFi but sets a timer to disable it again after a fixed amount of time, plus a script that reacts to a successful connection to the home WiFi network by disabling the timer and letting WiFi remain.

This way, if I'm charging from an external power pack in the field, it'll trigger and have a look for WiFi, then decide after one minute that it can't reach my home network so it'll turn WiFi off until I explicitly ask for it. We'll handle the WiFi switching in the same way as the existing WiFi Switcher applet (by nicking the scripts from it), meaning that the existing switcher application can also be used as a manual override to our automations.

The end result of all this will be:

* Using dbus-scripts, when charging commences run the script wifi-enable-home. This will enable the WiFi (if disabled) but also run the script /opt/usr/bin/wifi-kill which, after sleeping for 60 seconds, will disable WiFi again.

* When we get a connection to my home Wifi, run /opt/usr/bin/wifi-unkill which will kill the script that was set to disable WiFi.

=== Device locked / unlocked ===
=== Display on / off ===
=== Specific WLAN connected / disconnected ===

== Calendar-based scheduling ==
== Location-based scheduling ==

* When not at home, turn WiFi off unless and until explicitly requested
* When at home, turn WiFi on and autoconnect

= Changelog for scheduled events =

This will be moved to the bottom of the page later.

2010-07-15 

* Installed 'alarmed' from extras-devel, had to ln -sf python2.5 to /usr/bin/python
* Configured alarmed to reset GPRS data at 0000 on 1st of each month

= What have I scheduled? =

== Opportunistic power saving ==

I am working on [[User:Magick777/OPS]].

=== CPU frequency scaling ===
More or less as described in [[Overclocking#Underclock.2FOverclock_when_phone_is_Locked.2FUnlocked__.28by_Fecn.29| this script]], though I implemented it with dbus-scripts-settings. On phone locked we set &quot;kernel-config limits 250 500&quot; and on unlock we set &quot;kernel-config limits 500 850&quot;.

=== Set 2G radio mode ===

For battery life, I want the phone to put itself into 2G mode except when I am intensively using the data connection. It would seem sensible to trigger the switch to 2G any time that the phone is locked and remains so for a minute or two, in the assumption that it is in my pocket. But, I would not want this to happen if a) I am on a call b) the phone locked unintentionally and I unlock it again c) the phone is on charge or d) it was in 2G mode in the first place. I do not want it to be constantly switching between the two; it should change when it has good reason.

So, the phone locking should trigger a script that 
*tests whether it should take action and 
**if so, waits a minute to see if I unlock the phone again and 
***if I don't, goes ahead and kills 3G.

This would be achieved by running a script on lock that will sleep for 60 seconds and then switch to 2G mode. On an immediate unlock, we can test if that script is running and kill it thus leaving the dual mode intact.

By what criteria to restore 3G is more difficult; it is by no means automatic that I require 3G because I unlock the phone or plug in a charger. However, as soon as I want to access e-mail, Web or VoIP, 3G will be required. Therefore my options are

*never automate the switch to dual mode and switch manually when required
*automate the switch based simply on using the phone
*automate the switch when I launch any application that requires it
*automate the switch based on data traffic flow</text>
    </revision>
  </page>
  <page>
    <title>User:Magick777/OPS</title>
    <id>4359</id>
    <revision>
      <id>36973</id>
      <timestamp>2010-07-18T12:22:45Z</timestamp>
      <contributor>
        <username>magick777</username>
        <id>3129</id>
      </contributor>
      <comment>New page: = Opportunistic Power Saving Scripts =</comment>
      <text xml:space="preserve">= Opportunistic Power Saving Scripts =</text>
    </revision>
  </page>
  <page>
    <title>User:Magick777/Opportunistic Power Saving</title>
    <id>4360</id>
    <revision>
      <id>37118</id>
      <timestamp>2010-07-21T00:57:21Z</timestamp>
      <contributor>
        <username>magick777</username>
        <id>3129</id>
      </contributor>
      <comment>/* Disable WiFi when not needed */</comment>
      <text xml:space="preserve">= Opportunistic Power Saving =

This page aims to set forth a design for opportunistic power saving on the Nokia N900. Existing power-saver scripts and applets allow the user to toggle settings manually and much has been written about automation of certain events through DBUS. This page is an attempt to tie it all together.

== CPU frequency scaling / underclocking ==

This is already documented on the [[Overclocking]] page and is my starting point for building an opportunistic power saving script, based on phone lock / unlock. Credits and thanks to Fecn for getting us this far.

== Maintain phone in GSM mode by default when on battery ==

=== Status ===

* Switch to 2G on lock done, works for me, needs review for more blockers
* Switch back to 3G works for browser but needs some work
** Move from detecting browser launch to a generic application launch handler

=== Function specification ===

* Switch to GSM mode opportunistically when all seems to be quiet
** trigger analysis on phone locked
** first check for blockers, most common first
*** don't change anything if we're in the desired radio mode
*** don't change anything if we're on charge and not saving battery
*** don't change anything if we're on a GSM call
*** don't change anything if we have blocker applications or connections running
**** but blockers don't apply if we're on WiFi
**** if we're on 3G then check for following blockers
***** location-daemon active (GPS in use) NOT DONE YET
***** SIP / Skype / GTalk calls (VoIP in use) NOT DONE YET
*** don't change anything if the user didn't want the phone to lock anyway
**** cooling off period during which device unlock cancels radio switch
** perform any final sanity checks
*** recheck that we're still not on a call after our cooling off period
** then make the switch to GSM mode


* Switch automatically to 3G or dual mode (which?) when something requires it
** no sense in triggering on device unlock, wait until needed
** check for blockers
*** don't change anything if we're already in the target radio mode
*** don't change anything if we're already using WiFi
*** don't change anything if we're on a voice call
** trigger on events that may require a data connection i.e.
*** launch pplication (via hildon desktop) - which apps?
**** browser
**** SIP client 
**** maps 
*** set presence to Online
*** open Modest e-mail account
*** access Internet radio stream

== Disable WiFi when not needed ==

=== Take down WiFi when not needed ===



=== Restore WiFi ===

There are few circumstances in which I want the phone to decide for itself to reenable WiFi, however it would be helpful to do so when I arrive home and put it on charge. 

So we need to

* trigger when the phone is placed on charge
* enable WiFi interface
* attempt autoconnect to home wireless network
* consider whether to disable WiFi if not successful in reaching home network</text>
    </revision>
  </page>
  <page>
    <title>User:Manuel</title>
    <id>3347</id>
    <revision>
      <id>48352</id>
      <timestamp>2012-06-12T13:30:24Z</timestamp>
      <contributor>
        <username>manuel</username>
        <id>1557</id>
      </contributor>
      <text xml:space="preserve">I am using this partition scheme:
&lt;ul&gt;
&lt;li&gt;/usr - 2gb ext3&lt;/li&gt;
&lt;li&gt;/.debian 5gb ext3&lt;/li&gt;
&lt;li&gt;/home/user/MyDocs - 22gb vfat&lt;/li&gt;
&lt;/ul&gt;
I am using following programs on my N900:
&lt;ul&gt;
&lt;li&gt;Kile (LaTeX)&lt;/li&gt;
&lt;li&gt;Dia (Diagrams)&lt;/li&gt;
&lt;li&gt;Inkscape (SVG)&lt;/li&gt;
&lt;/ul&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Marcell</title>
    <id>870</id>
    <revision>
      <id>5127</id>
      <timestamp>2008-07-22T12:45:32Z</timestamp>
      <contributor>
        <username>marcell</username>
        <id>3</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">Hi,

I am working in the Developer Platform team at Nokia, I am responsible for the maemo SDK testing, various maemo.org related subcontracting projects and I am helping out [[User:xfade|Niels]] and Ferenc with the maemo.org servers administration.

Public profile at maemo.org: [http://maemo.org/profile/view/marcell/ marcell]</text>
    </revision>
  </page>
  <page>
    <title>User:Marcus</title>
    <id>4867</id>
    <revision>
      <id>43552</id>
      <timestamp>2011-05-19T20:46:55Z</timestamp>
      <contributor>
        <username>marcus</username>
        <id>4356</id>
      </contributor>
      <comment>New page: ==One Square at a Time==  See [http://wiki.maemo.org/User:Marcus/One_Square_at_a_Time One Square at a Time]</comment>
      <text xml:space="preserve">==One Square at a Time==

See [http://wiki.maemo.org/User:Marcus/One_Square_at_a_Time One Square at a Time]</text>
    </revision>
  </page>
  <page>
    <title>User:Marcus/One Square at a Time</title>
    <id>4868</id>
    <revision>
      <id>43559</id>
      <timestamp>2011-05-19T21:20:58Z</timestamp>
      <contributor>
        <username>marcus</username>
        <id>4356</id>
      </contributor>
      <comment>/* About */</comment>
      <text xml:space="preserve">==General==
IndieDB: http://www.indiedb.com/games/one-square-at-a-time

Licensed under GPLv3

==Credits==
Ubuntu-Title.tff

- http://www.fontsquirrel.com/fonts/Ubuntu-Title


annoyingbeat.wav

- iam

==About==
&quot;One Square at a Time&quot; is programmed in Python 2.7 using the pygame module.
It is a very basic copy of the flash game &quot;Space is Key&quot; by Chris Jeffrey.

It is far from its final stage, but development isn't that fast.

Feel free to modify and learn from the source code, but please respect the GPLv3 license.


'''Goal'''

The goal of the game is to complete the maps with the least amount of deaths.

==Download==
Download on the IndieDB profile:

http://www.indiedb.com/games/one-square-at-a-time/downloads

Remember to download the MAEMO EDITION.

==Install==
There is no automatic install (or launcher what so ever), so you'll have to manage with the terminal for now.

1. Place the &quot;One Square at a Time&quot; directory somewhere in your /MyDocs/ folder.

2. Locate the &quot;One Square at a Time&quot; directory with the terminal

3a. Either execute Launcher.sh, which will automatically start SpaceIsKey.map or

3b. Start the game using this code:

$ python CApp.py MAPNAME.map

This will load MAPNAME.map as the map

==Controls==
Key | Function

m | Mute sound **Sound isn't working for some reason though**

q | Quits game

space | Jump</text>
    </revision>
  </page>
  <page>
    <title>User:Marcus/Prey</title>
    <id>4887</id>
    <revision>
      <id>47232</id>
      <timestamp>2012-04-11T17:25:27Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <comment>Undo revision 47205: Please do not insert user support questions in instructions - contact the author instead directly</comment>
      <text xml:space="preserve">==Forum topic==
http://talk.maemo.org/showthread.php?p=1021829

==Prey==
[[:wikipedia:Prey_(software)|Prey article at Wikipedia]]

Prey is a free and open source laptop tracking software developed by Fork Ltd, that helps recover computers by tracing their location through the remote retrieval of information. The software is activated from the outside by using a URL as a checking method, and phones home by sending a detailed report either to a centralized control panel or directly to the computer owner's mailbox.

Prey is almost purely written in Bash, and runs on various versions of GNU/Linux, Mac OS X and Microsoft Windows. Its source code is hosted on GitHub and is free software, released under the GNU GPLv3.

Latest Prey features include Wi-Fi autoconnect, an alarm system, remote messaging, screenshot grabbing, screen locking, data securing, hardware scanning and webcam capturing, if the computer includes one. All of these functions are managed as modules, which can be activated on demand by the user, and new functions can be added by adding new modules.

The application was originally released for Linux and Mac OS X on March 24, 2009, and on April 19, 2009 the Windows port was released as well. The current stable release is 0.5.3.

==General==
Basically I've modified the source of Prey to make most of its features work for the N900.
Since it's been a little trial-and-error procedure, I might have forgot some dependencies. But you will figure out when you run into errors!

==Dependencies==
* fcron
* curl
* traceroute
* wireless-tools
* imagemagick
* espeak

==Download Link==
http://www.mediafire.com/?u4ytvcid49f8cmi

==What's working==
* Geolocation info
* Network info
* Take screenshot
* List of running programs
* Take picture with front camera
* Alarm feature
* Alert feature
* Lock feature

===Alarm feature===
Uses the default Maemo 5 media player to start the alarm sound. Hopefully this won't be necassary later on.

===Alert feature===
Puts up a notification and if espeak is installed it will say it out aloud as well.

===Lock feature===
Uses the default Maemo 5 lock system, so please remember your lock code if you are using this.

==What's not working at the moment==
* Secure feature

==Installation==
MUST BE DONE AS ROOT!

===Manual (RECOMMENDED)===
* Download the MAEMOPREY folder here: http://www.mediafire.com/?u4ytvcid49f8cmi
* Make sure dependencies are installed
* Copy all of the contents within the prey folder (the folder with the core, modules etc. folders inside) to the folder &lt;code&gt;/usr/share/prey&lt;/code&gt;
* Add /usr/share/prey/prey.sh to fcron with this code:&lt;pre&gt;(fcrontab -l | grep -v prey; echo &quot;*/20 * * * * /usr/share/prey/prey.sh &gt; /var/log/prey.log&quot;) | crontab -&lt;/pre&gt;

===Automatic===
* Download the MAEMOPREY folder here: http://www.mediafire.com/?u4ytvcid49f8cmi
* Run &lt;code&gt;INSTALLER.sh&lt;/code&gt; as root

&lt;code&gt;INSTALLER.sh&lt;/code&gt; should install Prey on the N900 for you automatically. If any problem occurs or you simply want to do it manually learn from the file instead of running it.

==Configuration==
===Control Panel===
I do not know if this is too important, but this is what I did.
Add a new device and use these settings:
* Device type: Laptop
* Operating System: Debian
* OS Version: Squeeze (6.0)

===Prey===
Edit config at &lt;code&gt;/usr/share/prey/config&lt;/code&gt;

==FAQ==
* Why fcron and not cron?
** It seems that cron is not supported by Maemo 5.

[[Category:Software]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>User:Markwaters</title>
    <id>549</id>
    <revision>
      <id>2823</id>
      <timestamp>2008-06-26T08:23:58Z</timestamp>
      <contributor>
        <username>markwaters</username>
        <id>138</id>
      </contributor>
      <text xml:space="preserve">* HomePage : [http://weloveit.info weloveit.info]
* EMail : [mailto:mark@weloveit.info mark@weloveit.info]
* Jabber : [xmpp:mark_waters@chat.gizmoproject.com mark_waters@chat.gizmoproject.com]
* VOIP : [sip:mark_waters@proxy01.sipphone.com mark_waters@proxy01.sipphone.com]</text>
    </revision>
  </page>
  <page>
    <title>User:Marmistrz</title>
    <id>5078</id>
    <revision>
      <id>46985</id>
      <timestamp>2012-03-15T17:44:15Z</timestamp>
      <contributor>
        <username>marmistrz</username>
        <id>4691</id>
      </contributor>
      <minor/>
      <comment>/* List of packages */</comment>
      <text xml:space="preserve">== My repository ==

See [http://marmistrz.net63.net link] for details

=== List of packages ===

{| class=&quot;wikitable sortable&quot;
| Package
| Full name
| Version
| Component
| Notes
|-
| libtinyxml2.5.3 || libtinyxml || 2.5.3-3maemo2-2 || stable || Though in stable, not tested
|-
| microemu-s60-skin || Microemulator S60 Skin || 1.0-1 || stable, testing || Will be updated soon, now see [http://talk.maemo.org/showpost.php?p=1146143&amp;postcount=25 fix]
|}</text>
    </revision>
  </page>
  <page>
    <title>User:Mat</title>
    <id>3310</id>
    <revision>
      <id>25909</id>
      <timestamp>2010-01-05T21:35:11Z</timestamp>
      <contributor>
        <username>matiasm</username>
        <id>1736</id>
      </contributor>
      <text xml:space="preserve">maemo.org &gt; Talk &gt; Software  &gt; Applications  &gt; How to Distribute? (TrueCrypt, Cifs.ko, ntfs.ko, mount.cifs)

http://forums.internettablettalk.com/showthread.php?p=442672





High load !  01/05/2010

'''Caused by maemo-xinput-sounds at 100%'''

[[Image:screenshot2010010518062.png]]







Mat
mat(@)riseup.net</text>
    </revision>
  </page>
  <page>
    <title>User:Matan</title>
    <id>3429</id>
    <revision>
      <id>28021</id>
      <timestamp>2010-02-01T22:24:02Z</timestamp>
      <contributor>
        <username>matan</username>
        <id>493</id>
      </contributor>
      <comment>/* Packages in the repository */</comment>
      <text xml:space="preserve">My repository:

&lt;pre&gt;
Name: Matan's repository
Web address: http://my.arava.co.il/~matan/repo/binary/
Distribution: ./
Components: 
&lt;/pre&gt;

Or by editing /etc/apt/sources.list:
&lt;pre&gt;
deb http://my.arava.co.il/~matan/repo/binary/ ./
&lt;/pre&gt;

= Packages in the repository =

* hebrew-keymap - Xkb configuration files for Hebrew on N900 hardware keyboard&lt;br /&gt;See [[Hebrew_N900]] for details.
* modified-hildon-desktop - An enhanced version of hildon-desktop.&lt;br /&gt;See [[Modified_Hildon_Desktop]] for details.
* keyboard-shortcuts - A package that adds keyboard shortcuts for launching applications.&lt;br /&gt;See [http://talk.maemo.org/showthread.php?t=41389 here] for details.
* longpress - A small script to enable toggle of silent mode (or offline mode) by a long press of the lock key.
* rescue-boot - Allow recovery from reboot loops without reflash.&lt;br /&gt; See [http://talk.maemo.org/showthread.php?t=41166] for details.
* bluetooth-dun-client - Packaging of the configuration files needed for using another phone as a modem over bluetooth DUN.&lt;br /&gt;See [http://talk.maemo.org/showthread.php?p=434772] for details.
* kernel-modules-ppp - kernel modules necessary for ppp.&lt;br /&gt;Compiled from Nokia's kernel source with one [http://talk.maemo.org/showpost.php?p=434772&amp;postcount=4 patch].
* libicd-network-null - a free replacement for libicd-network-dummy.&lt;br /&gt;Available in extras-devel.
* ppp&lt;br /&gt;Available in extras-devel.
* dbus-scripts&lt;br /&gt;Available in extras-devel

''Packages that are available also in extras devel are in my repository in order to allow installation of other packages without using extras-devel for dependencies.''</text>
    </revision>
  </page>
  <page>
    <title>User:Matthew exon</title>
    <id>1590</id>
    <revision>
      <id>10948</id>
      <timestamp>2009-02-17T06:00:34Z</timestamp>
      <contributor>
        <username>matthew_exon</username>
        <id>628</id>
      </contributor>
      <comment>New page: [http://mat.exon.name Matthew Exon]</comment>
      <text xml:space="preserve">[http://mat.exon.name Matthew Exon]</text>
    </revision>
  </page>
  <page>
    <title>User:Mee</title>
    <id>175</id>
    <revision>
      <id>1147</id>
      <timestamp>2008-06-07T14:11:52Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>New page: Your mistake was making a sarcastic unproductive complaint in a brainstorm not intended for whining. If you wanted to elaborate more on improving the login system, then there's already a t...</comment>
      <text xml:space="preserve">Your mistake was making a sarcastic unproductive complaint in a brainstorm not intended for whining. If you wanted to elaborate more on improving the login system, then there's already a topic up discussing that, all you need to do is drop the sarcasm and try to keep it productive. For instance,

&quot;The Garage registration process takes too long to perform and too long to sync with the other login systems, this process needs to be improved —mee&quot;

As for the wiki, I'm already on top of that. It's been on my list for a little over a week now, I just haven't had the time to poke at the Mediawiki: namespace to make the changes (partly due to having to micromanage the brainstorm pages to try and keep things productive :)). Anyway, part of your point was already addressed in the single-sign-on discussion.

Just try to keep edits productive and in the right places. :) —[[User:generalantilles|GeneralAntilles]] 14:11, 7 June 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>User:Mfrasca</title>
    <id>925</id>
    <revision>
      <id>5464</id>
      <timestamp>2008-07-25T12:52:20Z</timestamp>
      <contributor>
        <username>mfrasca</username>
        <id>210</id>
      </contributor>
      <comment>New page: hi, my name is Mario Frasca, I am a linux user since ... when was it...  version 1.0.9 I believe.  was it 1993?  and I enjoy working and playing with it.  the linux community is a beautifu...</comment>
      <text xml:space="preserve">hi, my name is Mario Frasca, I am a linux user since ... when was it...  version 1.0.9 I believe.  was it 1993?  and I enjoy working and playing with it.  the linux community is a beautiful place to ask questions and have them answered.  when I first saw there was a handheld based on linux I had to think a bit about buying it: 15s.  

things I like or use:
* the fon community
* cygwin (at work I am expected to work using the videogame)
* debian
* ubuntu
* vi
* emacs
* python</text>
    </revision>
  </page>
  <page>
    <title>User:Mgedmin</title>
    <id>671</id>
    <revision>
      <id>3786</id>
      <timestamp>2008-07-01T22:59:53Z</timestamp>
      <contributor>
        <username>mgedmin</username>
        <id>30</id>
      </contributor>
      <comment>New page: Marius Gedminas, mgedmin on IRC.  * maintains IRC logs at http://mg.pov.lt/maemo-irclog/ * plays around with scratchbox sometimes * needs a good kick in the nether regions to dismantle [ht...</comment>
      <text xml:space="preserve">Marius Gedminas, mgedmin on IRC.

* maintains IRC logs at http://mg.pov.lt/maemo-irclog/
* plays around with scratchbox sometimes
* needs a good kick in the nether regions to dismantle [http://mg.pov.lt/770/ his private repository] and upload all packages into extras</text>
    </revision>
  </page>
  <page>
    <title>User:Michael</title>
    <id>667</id>
    <revision>
      <id>3738</id>
      <timestamp>2008-07-01T14:56:53Z</timestamp>
      <contributor>
        <username>michael</username>
        <id>113</id>
      </contributor>
      <comment>New page: Hello!  My name is Michael and I write from Italy.   I'm a student of Computer Science Engineering.   For more infos and to take a look on my stuff try to put an eye on [http://ga.netsons....</comment>
      <text xml:space="preserve">Hello!

My name is Michael and I write from Italy. 

I'm a student of Computer Science Engineering.


For more infos and to take a look on my stuff try to put an eye on [http://ga.netsons.org my Blog(folio)].
 
Bye &lt;nowiki&gt;:-)&lt;/nowiki&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Microe</title>
    <id>3043</id>
    <revision>
      <id>48435</id>
      <timestamp>2012-06-14T18:09:57Z</timestamp>
      <contributor>
        <username>microe</username>
        <id>603</id>
      </contributor>
      <comment>/* Current Set-up */</comment>
      <text xml:space="preserve">== A Short History ==
I am a bit of a computer hobbyist. Especially small computers. Even more important that those small computers run Linux. I started this hobby way back in the stone age when I received an HP h5550 and ran WinCE just long enough to bootstrap Familiar onto it. From there I have ended up using Opie extensively. So much so that I began hacking it to make sure it worked through each Familiar release. I also tried to fix some bugs in the kernel that was used on the h5550.

Sadly the handhelds.org and Familiar itself stopped being a community for the most part. The Opie project still exists. But Qt had moved on. So had small computers. All of this happened round about this time that the Nokia N800 had come out. I asked for a developer discount, Nokia granted that and suddenly I found a new community! Now we have more small computers of many types that run Linux. I still like the size that Nokia seems to be targeting and the openness of the Maemo platform. Which is why I tend to hack on maemo and use my N900 extensively.

==Current Set-up==
The Nokia N900 running Maemo5 w/ CSSU, using primarily [http://fbreader.org fbreader], [http://shopper.garage.maemo.org Shopper], [http://pwsafe.garage.maemo.org pwsafe] and the built-in web browser.</text>
    </revision>
  </page>
  <page>
    <title>User:Microjo</title>
    <id>5038</id>
    <revision>
      <id>45584</id>
      <timestamp>2011-10-19T09:38:03Z</timestamp>
      <contributor>
        <username>microjo</username>
        <id>3887</id>
      </contributor>
      <comment>/* Debhelper 7 */</comment>
      <text xml:space="preserve">=== Debhelper 7 ===

Since the Autobuilder's [http://www.gossamer-threads.com/lists/maemo/developers/60704 use] of the Squeeze devkit, debhelper 7 is supported natively by it.

Follow the steps on that link to also make your FREMANTLE_* target use the Squeeze devkit.

Note: dh_make doesn't seem to be provided by the Squeeze devkit, so you'll have to run it outside of Scratchbox to get a debian/ folder based on debhelper 7.

----

A backport of Debhelper 7 for Fremantle is available in extras-devel. 

 $ fakeroot apt-get install debhelper7 

命令行使用的话，设置如下PATH

 export PATH=/usr/bin/dh7:$PATH

It works transparently and can coexist with debhelper 5 in the SDK. It even works on the autobuilder, if the package specifies the correct build-dependency of &lt;code&gt;debhelper7&lt;/code&gt;. The following lines in &lt;code&gt;debian/rules&lt;/code&gt; are necessary to use the new debhelper:

 PATH:=/usr/bin/dh7:/usr/bin:$(PATH)
 export PATH
 SBOX_REDIRECT_IGNORE=/usr/bin/perl
 export SBOX_REDIRECT_IGNORE

In debian/control change:

 Build-Depends: debhelper (&gt;= 7) [...]

to

 Build-Depends: debhelper'''7''' (&gt;= 7) [...]

Further information about the updated debhelper is available at [[User:Tanner#debhelper7]].

If you also need a more recent [http://build-common.alioth.debian.org/ CDBS], then use the package [http://maemo.org/packages/view/cdbs-dh7/ cdbs-dh7], which conflicts with the standard CDBS and does not work on autobuilder yet.

Alternatively, you can try to use debhelper 5. Debian packages that require level 7 need some changes, for example:
* debian/compat: 7 -&gt; 5
* debian/control: Build-Depends: debhelper (&gt;= 7) -&gt; debhelper (&gt;= 5)
* Possibly, comment out a few dh_* calls from debian/rules, which might not exist on level 5

Things might get complex if the packaging already uses some new features of level 7, like CDBS-style helper rules. In such cases, looking at versions of packages written prior to the compatibility level upgrade might help doing the downgrade (and most Debian packages are kept in public SCMs like svn.debian.org).</text>
    </revision>
  </page>
  <page>
    <title>User:Mikecy</title>
    <id>2914</id>
    <revision>
      <id>21695</id>
      <timestamp>2009-11-03T08:44:53Z</timestamp>
      <contributor>
        <username>mikecy</username>
        <id>1355</id>
      </contributor>
      <comment>New page: My website is http://www.acaciaclose.co.uk</comment>
      <text xml:space="preserve">My website is http://www.acaciaclose.co.uk</text>
    </revision>
  </page>
  <page>
    <title>User:Mikhas</title>
    <id>2983</id>
    <revision>
      <id>23490</id>
      <timestamp>2009-11-28T17:46:28Z</timestamp>
      <contributor>
        <username>mikhas</username>
        <id>1376</id>
      </contributor>
      <text xml:space="preserve">Hi internet,

I was one of those lucky 300 to get a N900 during the Maemo Summit 2009 in Amsterdam. In November 2009 I got involved with my first Maemo pet project - [[Miniature]].

Might as well put more wiki links for my personal use here:
* [[:Special:Watchlist]]
* [http://talk.maemo.org/subscription.php t.m.o subscribed threads]
* [http://maemo.org/packages/view/miniature/ Miniature packages for Maemo]
* [https://launchpad.net/~michael-hasselmann/+archive/miniature Miniature packages in my Launchpad PPA]</text>
    </revision>
  </page>
  <page>
    <title>User:Millenomi</title>
    <id>2971</id>
    <revision>
      <id>22178</id>
      <timestamp>2009-11-08T21:57:48Z</timestamp>
      <contributor>
        <username>millenomi</username>
        <id>1403</id>
      </contributor>
      <comment>New page: Mac/ObjC developer that is very interested in the mobile applications space. The schemer behind the ARM port of [http://cocotron.org The Cocotron].  [http://infinite-labs.net/me Can be con...</comment>
      <text xml:space="preserve">Mac/ObjC developer that is very interested in the mobile applications space. The schemer behind the ARM port of [http://cocotron.org The Cocotron].

[http://infinite-labs.net/me Can be contacted! At any time!] (With moderation, of course.)</text>
    </revision>
  </page>
  <page>
    <title>User:Mindy608</title>
    <id>4134</id>
    <revision>
      <id>34839</id>
      <timestamp>2010-05-25T17:32:31Z</timestamp>
      <contributor>
        <username>mindy608</username>
        <id>2821</id>
      </contributor>
      <comment>New page: List of Links&lt;br&gt; [http://www.cuelc.eu/Members/webmacster873/webmacster873 webmacster873]&lt;br&gt; [http://community.eldis.org/ilsehickman/.59d7c310/.59d7c314 ilsehickman]&lt;br&gt; [http://www.mysol...</comment>
      <text xml:space="preserve">List of Links&lt;br&gt;
[http://www.cuelc.eu/Members/webmacster873/webmacster873 webmacster873]&lt;br&gt;
[http://community.eldis.org/ilsehickman/.59d7c310/.59d7c314 ilsehickman]&lt;br&gt;
[http://www.mysolutionspot.com/lordbee3/ lordbee3]&lt;br&gt;
[http://trac.symfony-project.org/wiki/gilg6?version=1 gilg6]&lt;br&gt;
[http://share.triangle.com/node/32239 virgiemueller]&lt;br&gt;
[http://www.wordorigins.org/index.php/forums/member/10752/ mundane2]&lt;br&gt;
[http://www.zazzle.com/gerrysnow gerrysnow]&lt;br&gt;
&lt;br&gt;
[http://fuckabees.com/?q=node/3280 blkdykegoddesssk]
[http://www.americanpoems.com/members/zenagainls/zenagainls/ zenagainls]
[http://www.st-andrew-umc.com/index.php/member/171/ acer454he]
[http://z298-p255.itcilo.org/esd/tyep/Members/msaleemnl/msaleemnl msaleemnl]
[http://www.zazzle.com/mndocihg mndocihg]
[http://youngsexyintellects.com/pg/profile/jonrhodesukdk jonrhodesukdk]
[http://www.uaeasy.com/index.php/member/1135/ rousehouseed]
[http://cs18.co.cc/node/4213 grrrul]
[http://www.shared-care.com/Members/joewhyteel/joewhyteel joewhyteel]
[http://www.waterteck.com/index.php/member/1124/ whalesaladoy]
[http://pointsa.co.za/node/28114 hannibalbarcahs]
[http://www.dabawegnu.org/Members/clickherejk/clickherejk clickherejk]
[http://community.eldis.org/koranagirljn/.59d7c2d7/.59d7c2db koranagirljn]
[http://huntsasquatch.com/pg/profile/evectraas evectraas]
[http://www.fibrewales.com/?/member/1197/ obiefrommuskogeeaj]
[http://www.filminfocus.com/account/rudygiulianieg?include=blog&amp;blogid=rudygiulianieg rudygiulianieg]
[http://www.scmug.net/forum/scmug-presentation-ideas-and-needs/111854737 resilienths]
[http://www.mymobilephone.in/blog/ecotourusaas-3093.html ecotourusaas]
[http://www.commissionedpastor.org/elgg/yum9mejs/weblog/1014.html yum9mejs]
[http://www.newreleasetuesday.com/nrteam/eugenegerardyh eugenegerardyh]
[http://www.tonelab.net/node/9659 netblogssu]
[http://www.windyhillscaledon.org/index.php/member/881/ ksendrikhk]
[http://elgg.dsv.su.se/pg/pages/view/2240/ searchrankfl]
[http://www.muri-belpstrasse.ch/member/1227/ sintaed]
[http://www.flartoolkitdocs.org/node/1546 silverakj]
[http://nowinters.com/elgg/pg/profile/vondruskale vondruskale]
[http://www.spokanejug.com/Members/kutchiid/kutchiid kutchiid]
[http://www.novahotboard.com/member/1234/ bjtjyy]
[http://www.livinggenealogy.com/node/2719 chrisallendj]
[http://www.inner-growth.info/community/html/elgg/pg/pages/view/3146/ lordcfa]
[http://www.london.umb.edu/index.php/member/1364/ gilbertzod]
[http://www.wilberforcetrail.co.uk/index.php?/forums/member/2532/ rickydawkinsoj]
[http://www.alaskafarmersmarkets.org/index.php/communicate/member/4074/ diffeeonlinehi]
[http://davaochamber.com/dcccii-forum/business-permits/85593256 mccarronuo]
[http://www.moneybonanzas.com/elgg/pg/pages/view/1678/ sevnhf]
[http://haveyouvisithere.com/?q=node/1926 monkeybizjk]
[http://rollface.com/content/alphagnosisuf alphagnosisuf]
[http://elgg.mysmt.net/pg/blog/mesodudeei/read/3708/mesodudeei mesodudeei]
[http://fcducati.com/forums/general-discussion/gear/271532541 memeggieee]
[http://www.nwarkrnr.com/node/1606 coolchickkol]
[http://www.attadalebombers.com.au/index.php/member/1009/ gregdgd]
[http://sinotext.org/sinotext/pg/pages/view/1179/ hotfanssd]
[http://infosecawareness.in/Members/rrustemals/rrustemals rrustemals]
[http://inspirationtree.org/content/peterscos peterscos]
[http://jastadd.org/jastadd-forums/general-board/688022656 emhaih]
[http://carrierambo.com/index.php/member/2123/ papawolfny]
[http://www.poker3k.net/hotfansfd hotfansfd]
[http://www.cybersecurityinstitute.com/index.php/member/1381/ varadinumle]
[http://www.taniec.org.pl/Members/rigelyk/rigelyk rigelyk]
[http://www.nyorthocare.com/index.php/member/828/ elebrioln]
[http://www.social-network-blog.com/elgg/pg/pages/view/4139/ glutnixon]
[http://pandagon.net/index.php/member/16785/ antorobertsonnh]
[http://www.mountainviewtalk.com/pg/profile/redneckns redneckns]
[http://thedailysheep.com/Members/hotgamelivegl/hotgamelivegl/view hotgamelivegl]
[http://www.tuxisalive.com/Members/resilienths/resilienths resilienths]
[http://myownstylist.com/pg/profile/askbjoernhansendy askbjoernhansendy]
[http://www.stablecomfort.com/index.php/forums/member/2167/ molnatisigu]
[http://www.nouvelleagora.com/pg/groups/146/hitandrunkn/ hitandrunkn]
[http://www.treatmentequipment.com/index.php/member/1937/ neoknightud]
[http://tulanecf.org/index.php/member/875/ richieforemanja]
[http://mediacloisters.vassar.edu/index.php/member/15825/ endtyrannyiu]
[http://volunteerlouisiana.gov/member/4409/ spectracidead]
[http://whatdoyouconsiderlethal.com/forum/member/2853/ itsnjmhf]
[http://fargoautomation.com/index.php/member/484/ fudgiell]
[http://www.bradrobertsondds.com/member/1415/ limlomhi]
[http://www.livetheatreleague.org/forum/member/10578/ tessyloig]
[http://www.paulpottsofficial.com/gb/forums/member/154227/ andynd]
&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21755/order-relenza-zanamivir relenza]&lt;br&gt;
[http://www.prempanicker.com/index.php?/forums/member/3795/ tamiflu]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1122/ voltaren]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/22028/generic-medrol medrol]&lt;br&gt;
[http://mylifethinking.com/social/pg/pages/view/3240/ cardura]&lt;br&gt;
[http://sitemap.wikispaces.com/idiopathic_hypertrophic_subaortic_stenosis_children verapamil]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2515/ diflucan]&lt;br&gt;
[http://politicalzen.com/node/776/ ventolin]&lt;br&gt;
[http://mylifethinking.com/social/pg/pages/view/3147/ lipitor]&lt;br&gt;
[http://pandagon.net/index.php/member/9543/ aciphex]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1648/ keftab]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.tegretol-online-prescription tegretol]&lt;br&gt;
[http://www.paulpottsofficial.com/gb/forums/member/108943/ flonase]&lt;br&gt;
[http://mylifethinking.com/social/pg/pages/view/3207/ lamisil]&lt;br&gt;
[http://community.brandrepublic.com/members/2680172.aspx decadron]&lt;br&gt;
[http://sitemap.wikispaces.com/generic_flomax_alpha_blockers flomax]&lt;br&gt;
[http://sitemap.wikispaces.com/buy_atrovent_nasal_spray atrovent]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2351/ avapro]&lt;br&gt;
[http://www.paulpottsofficial.com/gb/forums/member/108709/ benicar]&lt;br&gt;
[http://www.prempanicker.com/index.php?/forums/member/4118/ metformin]&lt;br&gt;
[http://sitemap.wikispaces.com/cheap_voltaren_generic voltaren]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2150/ altace]&lt;br&gt;
[http://pandagon.net/index.php/member/9771/ orlistat]&lt;br&gt;
[http://politicalzen.com/node/470/ gemfibrozil]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/3214/ augmentin]&lt;br&gt;
[http://politicalzen.com/node/771/ arava]&lt;br&gt;
[http://www.popsyndicate.com/member/4625/ avodart]&lt;br&gt;
[http://pandagon.net/index.php/member/9239/ prevacid]&lt;br&gt;
[http://community.brandrepublic.com/members/2680201.aspx macrobid]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2163/ provera]&lt;br&gt;
[http://community.brandrepublic.com/members/2680250.aspx actos]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/2846/ clarinex]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6916/ rogaine]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6923/ imuran]&lt;br&gt;
[http://pandagon.net/index.php/member/9531/ antabuse]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21689/buy-decadron-walks decadron]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2070/ pyridium]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2057/ requip]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/3299/ dramamine]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/2812/ floxin]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1223/ bupropion]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/22017/order-ditropan-prescription ditropan]&lt;br&gt;
[http://www.prempanicker.com/index.php?/forums/member/4414/ cardura]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.tinea-versicolor-fungal-infection selsun]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/22066/online-dramamine-uk dramamine]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/2742/ elavil]&lt;br&gt;
[http://www.popsyndicate.com/member/4469/ paxil]&lt;br&gt;
[http://community.brandrepublic.com/members/2680286.aspx maxalt]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.bupropion-without-prescription bupropion]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6937/ flomax]&lt;br&gt;
[http://mylifethinking.com/social/pg/pages/view/3029/ periactin]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6226/ sinemet]&lt;br&gt;
[http://mylifethinking.com/social/pg/pages/view/3352/ inderal]&lt;br&gt;
[http://sitemap.wikispaces.com/prescription_lamictal_fedex_shipping lamictal]&lt;br&gt;
[http://www.popsyndicate.com/member/4508/ bystolic]&lt;br&gt;
[http://sitemap.wikispaces.com/prescription_buy_crestor crestor]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21852/order-reglan-without-prescription-buy reglan]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/1972/ erythromycin]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.generic-viagra-cialis-levitra viagra]&lt;br&gt;
[http://politicalzen.com/node/809/ diflucan]&lt;br&gt;
[http://sitemap.wikispaces.com/cheap_kamagra_sildenafil_citrate kamagra]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2091/ imodium]&lt;br&gt;
[http://pandagon.net/index.php/member/9273/ diltiazem]&lt;br&gt;
[http://mylifethinking.com/social/pg/pages/view/3054/ urso]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.generic-omnicef-300mg omnicef]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1286/ cleocin]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6959/ diflucan]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1085/ seroquel]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1220/ periactin]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1670/ tenormin]&lt;br&gt;
[http://sitemap.wikispaces.com/abnormal_uterine_bleeding_pdf alesse]&lt;br&gt;
[http://pandagon.net/index.php/member/9777/ prometrium]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.generic-mircette-oral-contraceptive mircette]&lt;br&gt;
[http://pandagon.net/index.php/member/9093/ lexapro]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6170/ astelin]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2059/ zithromax]&lt;br&gt;
[http://www.prempanicker.com/index.php?/forums/member/4364/ cymbalta]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2417/ prednisolone]&lt;br&gt;
[http://www.prempanicker.com/index.php?/forums/member/4394/ retin a]&lt;br&gt;
[http://www.prempanicker.com/index.php?/forums/member/4343/ zestril]&lt;br&gt;
[http://politicalzen.com/node/507/ luvox]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21730/buy-calcium calcium carbonate]&lt;br&gt;
[http://www.paulpottsofficial.com/gb/forums/member/108618/ keppra]&lt;br&gt;
[http://www.prempanicker.com/index.php?/forums/member/4634/ prozac]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/2922/ amoxil]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/3245/ lamictal]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/22071/generic-premarin-conjugated-estrogens premarin]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6203/ paroxetine]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1507/ bactroban]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/22105/online-effexor-overnight-shipping effexor]&lt;br&gt;
[http://www.popsyndicate.com/member/4651/ calcium carbonate]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21707/buy-lyrica-prescription-online lyrica]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21668/revatio-without-prescription-revatio revatio]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.zyrtec-without-prescription zyrtec]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/2799/ propecia]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/2901/ prevacid]&lt;br&gt;
[http://pandagon.net/index.php/member/9070/ zyprexa]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/22008/prescription-effects-antabuse antabuse]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21793/generic-detrol-drug-interactions detrol]&lt;br&gt;
[http://www.paulpottsofficial.com/gb/forums/member/108755/ zantac]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6948/ enalapril]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.generic-claritin claritin]&lt;br&gt;
[http://community.brandrepublic.com/members/2680312.aspx arimidex]&lt;br&gt;
[http://www.paulpottsofficial.com/gb/forums/member/108920/ femara]&lt;br&gt;
[http://sitemap.wikispaces.com/online_zetia_no_prescription_required zetia]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21898/generic-skelaxin-muscle-relaxant skelaxin]&lt;br&gt;
[http://www.popsyndicate.com/member/4573/ echinacea]&lt;br&gt;
[http://sitemap.wikispaces.com/cluster_headache ibuprofen]&lt;br&gt;
[http://www.prempanicker.com/index.php?/forums/member/4158/ prednisone]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.risperdal-without-prescription risperdal]&lt;br&gt;
[http://politicalzen.com/node/532/ nizoral]&lt;br&gt;
[http://politicalzen.com/node/678/ sinemet]&lt;br&gt;
[http://pandagon.net/index.php/member/9074/ celexa]&lt;br&gt;
[http://www.paulpottsofficial.com/gb/forums/member/108489/ erythromycin]&lt;br&gt;
[http://sitemap.wikispaces.com/buy_citalopram_hydrobromide citalopram]&lt;br&gt;
[http://mylifethinking.com/social/pg/pages/view/2946/ verapamil]&lt;br&gt;
[http://sitemap.wikispaces.com/androgenetic_alopecia_male_pattern propecia]&lt;br&gt;
[http://politicalzen.com/node/591/ ranitidine]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2335/ claritin]&lt;br&gt;
[http://www.prempanicker.com/index.php?/forums/member/3860/ tetracycline]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/3145/ cellcept]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6773/ zanaflex]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2453/ lexapro]&lt;br&gt;
[http://pandagon.net/index.php/member/9286/ cleocin]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2154/ zoloft]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6237/ viagra]&lt;br&gt;
[http://pandagon.net/index.php/member/9589/ flomax]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1171/ zyban]&lt;br&gt;
[http://sitemap.wikispaces.com/prescription_remeron_fedex_shipping remeron]&lt;br&gt;
[http://pandagon.net/index.php/member/9198/ proscar]&lt;br&gt;
[http://www.paulpottsofficial.com/gb/forums/member/108947/ allegra]&lt;br&gt;
[http://www.prempanicker.com/index.php?/forums/member/4139/ zanaflex]&lt;br&gt;
[http://politicalzen.com/node/792/ amantadine]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2210/ lisinopril]&lt;br&gt;
[http://mylifethinking.com/social/pg/pages/view/3274/ requip]&lt;br&gt;
[http://www.prempanicker.com/index.php?/forums/member/4205/ femara]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.prescription-depakote-buy depakote]&lt;br&gt;
[http://community.brandrepublic.com/members/2680244.aspx zocor]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.buy-lipitor-online lipitor]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2542/ lipitor]&lt;br&gt;
[http://pandagon.net/index.php/member/9536/ ibuprofen]&lt;br&gt;
[http://politicalzen.com/node/707/ prevacid]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2446/ cardizem]&lt;br&gt;
[http://mylifethinking.com/social/pg/pages/view/3206/ indocin]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1451/ lopressor]&lt;br&gt;
[http://mylifethinking.com/social/pg/pages/view/3278/ allegra]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21734/generic-luvox-without-prescription luvox]&lt;br&gt;
[http://pandagon.net/index.php/member/9551/ prograf]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2459/ exelon]&lt;br&gt;
[http://www.popsyndicate.com/member/4589/ keflex]&lt;br&gt;
[http://pandagon.net/index.php/member/9483/ amantadine]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2011/ uroxatral]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1350/ bactrim]&lt;br&gt;
[http://politicalzen.com/node/461/ maxalt]&lt;br&gt;
[http://www.popsyndicate.com/member/4531/ maxalt]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2211/ viagra]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/2612/ levitra]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2339/ cipro]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6632/ synthroid]&lt;br&gt;
[http://medialab.sissa.it/THE/Members/mapsite/document.buy-generic-estrace estrace]&lt;br&gt;
[http://www.paulpottsofficial.com/gb/forums/member/108903/ prometrium]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/3226/ atacand]&lt;br&gt;
[http://pandagon.net/index.php/member/9084/ pulmicort]&lt;br&gt;
[http://pandagon.net/index.php/member/9728/ metformin]&lt;br&gt;
[http://www.livetheatreleague.org/forum/member/3275/ synthroid]&lt;br&gt;
[http://www.popsyndicate.com/member/4621/ zetia]&lt;br&gt;
[http://politicalzen.com/node/554/ aldactone]&lt;br&gt;
[http://community.brandrepublic.com/members/2680185.aspx elavil]&lt;br&gt;
[http://politicalzen.com/node/832/ propecia]&lt;br&gt;
[http://pandagon.net/index.php/member/9546/ zestril]&lt;br&gt;
[http://pandagon.net/index.php/member/9102/ vytorin]&lt;br&gt;
[http://politicalzen.com/node/515/ norvasc]&lt;br&gt;
[http://pandagon.net/index.php/member/9460/ nizoral]&lt;br&gt;
[http://www.paulpottsofficial.com/gb/forums/member/108955/ claritin]&lt;br&gt;
[http://mylifethinking.com/social/pg/pages/view/2993/ risperdal]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6510/ pyridium]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21761/cheap-zithromax-antibiotics zithromax]&lt;br&gt;
[http://politicalzen.com/node/511/ bupropion]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/22069/cheap-amantadine-mg amantadine]&lt;br&gt;
[http://cram.whitematter.ca/index.php/forums/member/2316/ evista]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6319/ skelaxin]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1365/ zovirax]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21770/buy-macrobid-nitrofurantoin macrobid]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1348/ zetia]&lt;br&gt;
[http://www.prempanicker.com/index.php?/forums/member/4374/ etodolac]&lt;br&gt;
[http://www.prempanicker.com/index.php?/forums/member/3936/ citalopram]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6921/ inderal]&lt;br&gt;
[http://politicalzen.com/node/425/ singulair]&lt;br&gt;
[http://www.popsyndicate.com/member/4447/ viagra]&lt;br&gt;
[http://www.mandozine.com/index.php/forums/member/6901/ lexapro]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21948/online-lopressor-treat-high-blood-pressure lopressor]&lt;br&gt;
[http://community.brandrepublic.com/members/2680299.aspx valtrex]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21901/prescription-zanaflex-overnight zanaflex]&lt;br&gt;
[http://www.budokin.com/pg/article/sitemap/read/21814/online-benicar-hct benicar]&lt;br&gt;
[http://sitemap.wikispaces.com/managing_cluster_headaches tizanidine]&lt;br&gt;
[http://politicalzen.com/node/572/ hyzaar]&lt;br&gt;
[http://www.prempanicker.com/index.php?/forums/member/4499/ exelon]&lt;br&gt;
[http://www.satansfriends.com/pg/pages/view/1131/ tetracycline]&lt;br&gt;
[http://www.paulpottsofficial.com/gb/forums/member/108849/ voltaren]&lt;br&gt;
[http://mylifethinking.com/social/pg/pages/view/3243/ bactroban]&lt;br&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Mohammad7410</title>
    <id>4295</id>
    <revision>
      <id>40501</id>
      <timestamp>2010-12-05T21:08:36Z</timestamp>
      <contributor>
        <username>mohammad7410</username>
        <id>2135</id>
      </contributor>
      <comment>/* Work on maemo */</comment>
      <text xml:space="preserve">* maemo.org profile page: [http://maemo.org/profile/view/mohammad7410/ mohammad7410]
* talk.maemo.org profile page: [http://talk.maemo.org/member.php?u=25578 MohammadAG]
* Garage user page: [https://garage.maemo.org/users/mohammad7410/ mohammad7410]
* Bugzilla - My bug reports: [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;emailreporter1=1&amp;emailtype1=exact&amp;email1=mohammad7410@hotmail.com&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= Mohammad Abu-Garbeyyeh]
* IRC Nickname: MohammadAG | MohammadAG51 on [http://webchat.freenode.net/ Freenode]
* Twitter [http://twitter.com/MohammadAG MohammadAG] - I haven't been on twitter much ever since I left Symbian.
* PSN ID: MohammadAG


==Ubuntu on the N900==

See main page here [http://wiki.maemo.org/User:Mohammad7410/Ubuntu Ubuntu on the N900]



==Random notes==

sed script to add spaces before each line in a file, thanks to [http://maemo.org/profile/view/joerg_rw/ joerg_rw] [http://mg.pov.lt/maemo-irclog/%23maemo.2010-04-19.log.html#t2010-04-19T02:13:48]
 cat icon|sed 's/^/ /' &gt; iconedited


==Packaging==

I've written a small wiki page on how to package apps for maemo, it might be easier to understand than the main Packaging tutorial found on the wiki, it can be found here [http://wiki.maemo.org/User:Mohammad7410/Packaging]


==Work on maemo==

This list isn't complete as I never logged what I did.
* hildon-desktop with faster scrolling [http://talk.maemo.org/showthread.php?t=60599]
* hildon-status-menu with 6 rows instead of 5 [http://talk.maemo.org/showpost.php?p=884348&amp;postcount=8]
* h-e-n GUI (GUI ONLY!) [http://talk.maemo.org/showthread.php?t=65232]
* PSFreedom UI (again, UI only!) [http://talk.maemo.org/showthread.php?p=811829]
* Maemo 5 Community SSU (not yet announced officially) [http://lists.maemo.org/pipermail/maemo-developers/2010-November/027830.html]
* man-db on the N900 [http://talk.maemo.org/showthread.php?p=703347]
* aptitude package manager [http://maemo.org/packages/view/aptitude/] (needs library fix(!))
* Synaptic package manager [http://maemo.org/packages/view/synaptic/]
* Ubuntu on the N900 [http://talk.maemo.org/showthread.php?p=745610] (status = Stalled)
* Flashing KB LED Patterns [http://talk.maemo.org/showthread.php?t=52239]
* hildon-status-menu in portrait mode [http://talk.maemo.org/showthread.php?t=66586]
* Basic QtBrowser [http://gitorious.org/qtbrowser/qtbrowser]

==Qt examples==

I'd like to thank whoever helped me with Qt; alterego, Venemo, and w00t :)

I've written some (one, for now) examples on Qt apps, you can find them here (licensed under GPLv3):

'''Qt Countdown''', a UI, with a label in the centre, and a status bar that shows the status of the countdown, the label is updated with a countdown from 10 to 0 [http://mohammadag.xceleo.org/Qt-examples/Countdown.tar.gz]</text>
    </revision>
  </page>
  <page>
    <title>User:Mohammad7410/Packaging</title>
    <id>4561</id>
    <revision>
      <id>40141</id>
      <timestamp>2010-11-15T02:10:22Z</timestamp>
      <contributor>
        <username>mohammad7410</username>
        <id>2135</id>
      </contributor>
      <comment>/* Additional files */</comment>
      <text xml:space="preserve">Packaging is the simplest, yet not exactly clearly documented well part of software development. This tutorial should hopefully cover everything you need to start making simple, working packages for Maemo.

This tutorial assumes you're running on Linux (or a virtual machine of one) and that you have Scratchbox installed as per http://wiki.maemo.org/Documentation/Maemo5_Final_Installation

== Qt Creator users ==

A project made with QtCreator usually creates two (or more) folders, one contains a clean source, and the other contains an architecture specific build, for the purpose of this tutorial, we will not be using Qt Creator's package builder (as imo, it's crap compared to the manual one).

Copy the files in the clean source directory to somewhere in your scratchbox $home directory (or just copy the whole folder into ~ on scratchbox) and follow the steps below.

== Scratchbox users ==

Packaging an application involves two things, getting the source itself, and making the debian/ directory and writing its contents. The debian/ directory is needed to make .deb packages, everything related to the package (i.e. .deb file) is there, with the sources outside it, the sources and the debian/ directory should be in one main directory, which is the source directory for the package.

Example hierarchy (Package name is maemodeb):
 maemodeb/ (main source dir, a version number can be appended (e.g maemodeb-0.1)
   src/ (usually contains sources, sources can also be put in the main dir without a subfolder)
   data/ (usually contains data, i.e icons/images)
   debian/ (contains the files needed to build the package)

'''The debian directory should contain at least this basic set of files, without them, a package cannot be built''':

A '''control''' file, this holds information such as name of package(s - multiple packages can be built from one source), description, maintainer name, section, packages needed to build the source, and the dependencies, and (for Maemo), icons for the application manager and &quot;pretty&quot; names, also for the application manager.

A '''changelog''' file, this holds again, the name of the source (not the separate packages), the version number, the changes in that version number, and a signature with the name and email for the person who edited the old source, as well as a timestamp, this file can be auto-generated with dch.

A '''compat''' file, which contains the version of debhelper needed, only a number is held in this file, usually 5.

A '''rules''' file, which contains the build instructions.

'''What should these files contain?'''
These files can be generated using dh_make, however, I find cleaning the examples it generates a bit tedious, so I copy the files from my own sample debian/ folder.

control file:
 Source: source_name
 Section: section_goes_here, possible sections listed here http://wiki.maemo.org/Packaging#Sections
 Priority: extra
 Maintainer: Your_FULL_REAL_name &lt;email_must_NOT_be_fake&gt;
 Build-Depends: debhelper (&gt;= 5) # deps needed to build the package (e.g libqt4-dev for 
 Standards-Version: 3.7.2
 
 Package: first_package_name
 XB-Maemo-Display-Name: Name to be displayed in HAM
 Architecture: architecture, can be all/i386/armel
 Depends: dependencies for the package
 Description: short description here
  hildon-theme-alpha's boxes have a black border around theme, this package fixes the size 70 one.

Example:

 Source: maemodeb
 Section: user/system
 Priority: extra
 Maintainer: Mohammad Abu-Garbeyyeh &lt;mohammad7410@gmail.com&gt;
 Build-Depends: debhelper (&gt;= 5)
 Standards-Version: 3.7.2
 
 Package: maemodeb
 XB-Maemo-Display-Name: Maemo Deb
 Architecture: all
 Depends: apt, ${shlibs:Depends}
 Description: Sample package to show how packaging works
  Long description of the application to be shown if a user clicks Description in HAM

changelog:
 source_name (version_number) unstable; urgency=low
 
   * Initial release.
 
  -- Mohammad Abu-Garbeyyeh &lt;mohammad7410@gmail.com&gt;  Sun, 10 Oct 2010 23:31:54 +0200

Example:
 maemodeb (0.1) unstable; urgency=low
 
   * Initial release.
 
  -- Mohammad Abu-Garbeyyeh &lt;mohammad7410@gmail.com&gt;  Sun, 10 Oct 2010 23:31:54 +0200

This file can further be edited using dch, part of the package devscripts, apt-get install devscripts.

compat file:
 5

rules file:
This is the only part of packaging where you have to think what to do, you will need to add the parts needed to configure-stamp, for example ./configure should be added there, or qmake if you're using Qt and a .pro file.

You will need to add the parts to compile the files to build-stamp, e.g make.

And finally, the parts needed to install the file, e.g $(MAKE) DESTDIR=$(CURDIR)/debian/package_name install.
If your make file does not handle file installations, you can use an install file in debian/ and keep dh_install in the rules file, as per below.
 #!/usr/bin/make -f
 # -*- makefile -*-
 # Sample debian/rules that uses debhelper.
 # This file was originally written by Joey Hess and Craig Small.
 # As a special exception, when this file is copied by dh-make into a
 # dh-make output file, you may use that output file without restriction.
 # This special exception was added by Craig Small in version 0.37 of dh-make.
 
 # Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
 
 CFLAGS = -Wall -g
 
 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
  	CFLAGS += -O0
 else
 	CFLAGS += -O2
 endif
 
 configure: configure-stamp
 configure-stamp:
 	dh_testdir
 	# Add here commands to configure the package.
 
 	touch configure-stamp
 
 
 build: build-stamp
 
 build-stamp: configure-stamp
 	dh_testdir
 	touch build-stamp
 
 clean:
 	dh_testdir
 	dh_testroot
 	rm -f build-stamp configure-stamp
 	dh_clean
 
 install: build
 	dh_testdir
 	dh_testroot
 	dh_clean -k
 	dh_installdirs
 
 # Build architecture-independent files here.
 binary-indep: build install
 # We have nothing to do by default.
 
 # Build architecture-dependent files here.
 binary-arch: build install
 	dh_testdir
 	dh_testroot
 	dh_installchangelogs debian/changelog
  	dh_install
 #	dh_installmenu
 #	dh_installdebconf
 #	dh_installpam
 #	dh_installmime
 #	dh_installinit
 	dh_installman
 	dh_link
 	dh_strip
 	dh_compress
 	dh_fixperms
 #	dh_perl
 #	dh_makeshlibs
 	dh_installdeb
 	dh_shlibdeps
 	dh_gencontrol
 	dh_md5sums
 	dh_builddeb
 
 binary: binary-indep binary-arch
 .PHONY: build clean binary-indep binary-arch binary install configure

Sample install file:
 bin/psfreedom-enable-n900.sh		usr/sbin
 bin/psfreedom-disable-n900.sh		usr/sbin
 bin/psfreedommoduledetection.sh		usr/sbin
 bin/psfreedom				usr/bin
 src/ui/PSFreedom			opt/psfreedom
 data/psfreedom.sudoers			etc/sudoers.d
 data/psfreedomicon.png			usr/share/pixmaps
 data/psfreedom.desktop			usr/share/applications/hildon

== Additional files ==
Although basic packaging was covered above, you might need extra files such as:

A '''postinst''' file, which is a file that is run post installation (Setting up &lt;packagename&gt; ...), these files should be normal shell scripts that run the commands you need (such as chmod +x, update-sudoers etc...). Variations exist such as postinst/postrm/preinst/prerm, post is after, pre is before, inst is installation, rm is removal. Keep in mind that these are all run as root (with sudo!), so dbus-send commands should be run with run-standalone.sh(!!!), and permissions have to be kept in mind.

 #!/bin/sh
 
 echo &quot;Updating sudoers&quot;
 update-sudoers
 
 exit 0

A '''.desktop''' file, which is a menu icon, this is installed to /usr/share/applications/hildon/, either by an install file, or a makefile.

 [Desktop Entry]
 Encoding=UTF-8
 Version=0.1
 Type=Application
 Name=PSFreedom # As shown in the menu.
 Icon=psfreedomicon # Icon file, e.g psfreedomicon.png in /usr/share/pixmaps/
 Exec=psfreedom # What to run, full path needed if not in $PATH (i.e if it's run from /opt)
 X-Osso-Service=org.maemo.psfreedom # (Fully optional! Should only be added if a .service file exists.

A '''.service''' file, this is not normally needed, except if you want to launch your application via dbus and if you want to load a splash screen with hildon-desktop, again, this is optional. This is installed/copied to /usr/share/dbus-1/services/

 [D-BUS Service]
 Name=org.maemo.psfreedom # Name of service file, you decide what you want it to be.
 Exec=/usr/bin/psfreedom # What to execute.</text>
    </revision>
  </page>
  <page>
    <title>User:Mohammad7410/Ubuntu</title>
    <id>4309</id>
    <revision>
      <id>36953</id>
      <timestamp>2010-07-17T16:29:36Z</timestamp>
      <contributor>
        <username>mohammad7410</username>
        <id>2135</id>
      </contributor>
      <text xml:space="preserve">Got Ubuntu 9.10 (Karmic) running on the N900.

[[Image:Ubuntu9.10_N900.jpg|right|thumb|alt=Ubuntu on the N900|Ubuntu 9.10 on the N900]]

Working:
* X, with GNOME and GNOME netbook launcher.
* Keyboard keymap
* Touchscreen
* Wi-Fi
* Mounting the Maemo rootfs partition (ubi0:rootfs)
* LEDs
[[Image:Ubuntu9.10_N900_Launcher.png|right|thumb|alt=Ubuntu Netbook Launher|Ubuntu Netbook Launcher]]
* Bluetooth
* (Emergency) Charging (bq24150 module included in image)
* Charging using i2c
[[Image:Ubuntu9.10_N900_LED_blue.jpg|right|thumb|alt=Ubuntu with LEDs on|Ubuntu with LEDs on]]

Not working:

* Sound not tested.
* Watchdog kicker (bah, forgot to save how I did it, will worry about that later)
* Accelerated X, working on it, won't be redistributable/part of image.
* Cellular modem (I wouldn't hold my breath - maybe when MeeGo's out)


Image and instructions [http://talk.maemo.org/showpost.php?p=752676&amp;postcount=51 here]</text>
    </revision>
  </page>
  <page>
    <title>User:Mr pingu</title>
    <id>5156</id>
    <revision>
      <id>50635</id>
      <timestamp>2012-11-03T14:50:23Z</timestamp>
      <contributor>
        <username>mr_pingu</username>
        <id>4402</id>
      </contributor>
      <text xml:space="preserve">In this page I post all my snippets of tweak and mods, I made this for the reference of all tweaks I did and might need after a reflash



== Repositories ==
/etc/apt/sources.list.d/hildon-application-manager.list 

&lt;pre&gt;
deb https://downloads.maemo.nokia.com/fremantle/ssu/apps/ ./ 
deb https://downloads.maemo.nokia.com/fremantle/ssu/mr0 ./ 
deb https://downloads.maemo.nokia.com/fremantle1.2/ovi/ ./ 
deb http://repository.maemo.org/extras/ fremantle-1.3 free non-free
deb http://repository.maemo.org/community-testing/ fremantle free non-free
deb http://repository.maemo.org/extras-devel/ fremantle free non-free
deb http://my-maemo.com/repository/ fremantle user
deb http://repository.maemo.org/ fremantle/sdk free
deb http://repository.maemo.org/ fremantle/tools free
deb http://repository.maemo.org/extras-testing/ fremantle free non-free
deb http://qole.org/repository/ maemo fremantle
&lt;/pre&gt;


== Setting up the device ==


----

'''Setting up the most important applications'''

&lt;pre&gt;apt-get update 
apt-get install  kernel-power-flasher backupmenu busybox-power powertop shortcutd tracker-cfg wpakey-editor powertop sudser phone-control nano-opt gconf-editor procps bash3 &lt;/pre&gt;



'''improve performance'''

* Tracker-cfg tick lowmemorymode and set throttle to 10
* Use proposed swappolube settings, except swappiness should be 50
* Turn off swap on eMMC, enable on uSD (use ereswap)

Boot script placed in /etc/event.d/iosettings

These settings are mixed swapolube and freemangordons settings. 

&lt;pre&gt;
start on started hildon-desktop
stop on starting shutdown
console none
service

script


echo 50 &gt; /proc/sys/vm/swappiness        
echo 0 &gt; /proc/sys/vm/page-cluster        
echo 1 &gt; /proc/sys/vm/laptop_mode        
echo 1 &gt; /proc/sys/vm/oom_kill_allocating_task        
echo 0 &gt; /proc/sys/vm/dirty_expire_centisecs        
echo 0 &gt; /proc/sys/vm/dirty_writeback_centisecs       
echo 60 &gt; /proc/sys/vm/dirty_background_ratio        
echo 95 &gt; /proc/sys/vm/dirty_ratio        
echo 0 &gt; /proc/sys/net/ipv4/tcp_timestamps        
echo 1 &gt; /proc/sys/net/ipv4/tcp_no_metrics_save
echo 4096 &gt; /sys/block/mmcblk0/queue/nr_requests
echo 4096 &gt; /sys/block/mmcblk1/queue/nr_requests
echo 0 &gt; /sys/block/mmcblk0/queue/iosched/slice_idle
echo 0 &gt; /sys/block/mmcblk1/queue/iosched/slice_idle
echo 32 &gt; /sys/block/mmcblk0/queue/iosched/quantum
echo 32 &gt; /sys/block/mmcblk1/queue/iosched/quantum
echo 80 &gt; /sys/block/mmcblk0/queue/iosched/fifo_expire_sync
echo 80 &gt; /sys/block/mmcblk1/queue/iosched/fifo_expire_sync
echo 180 &gt; /sys/block/mmcblk0/queue/iosched/fifo_expire_async
echo 180 &gt; /sys/block/mmcblk1/queue/iosched/fifo_expire_async


end script
&lt;/pre&gt;


----

* '''Installing handy tools'''

&lt;pre&gt;apt-get install conkylayoutswitcher flashlight-applet alarmed ssh-status clipman led-pattern-editor cl-launcher hostmode-gui extkbd extmou  extended-contacts-search gconf-editor less simple-brightness-applet&lt;/pre&gt;

* '''Installing some garbage I like to use'''

&lt;pre&gt;apt-get install aircrack-ng stkeys brainparty cutetube-qml dosbox supertux-stable frogatto colorflood pierogi telepathy-msn-pecan leafpad opera filebox irggu macchanger easy-deb-chroot&lt;/pre&gt;

* Install widgets and themes
&lt;pre&gt; apt-get install awoken-icon-theme black-plastic-theme plastic-addon-pack-1 cal-home-widget connectnow-home-widget queen-beecon quick-launch&lt;/pre&gt;

----
'''Tweaks'''
* Use sudo while already root. Sometimes when I am root I still type sudo in-front of a command and it spits out the help of sudo. This will add root to sudoers and solve that. Not very useful but it's a small and convenient tweak

&lt;pre&gt;
sudo gainroot
echo &quot;user ALL=(ALL) NOPASSWD: ALL&quot; &gt;&gt; everybody.sudoers
echo &quot;root ALL=(ALL) NOPASSWD: ALL&quot; &gt;&gt; everybody.sudoers
mv everybody.sudoers /etc/sudoers.d
update-sudoers&lt;/pre&gt;

'''Fix Wifite.py'''

&lt;pre&gt; sudo sed -i &quot;s/(prefix='wifite')/(prefix='wifite',dir='\/opt\/tmp')/g&quot; /home/user/MyDocs/MyScripts/wifite.py; sudo if [ ! -d &quot;/opt/tmp&quot; ]; then mkdir /opt/tmp; fi &lt;/pre&gt;

* Make the FMTX applet always visible
 gconftool-2 -s /apps/osso/maemo-statusmenu-fmtx/always_visible -t bool true

'''Record video with Gstreamers and take Screenshot'''

&lt;pre&gt; Enable SDK and tools repo
apt-get install gst-tools gstreamer0.10-plugins-good-extra

http://forum.meego.com/showthread.php?t=4833

&lt;/pre&gt;

Screenshot makes a screenshot every x times in the current directory named frame0000x.png

&lt;pre&gt; gst-launch-0.10 ximagesrc ! video/x-raw-rgb,framerate=1/10 ! ffmpegcolorspace ! pngenc snapshot=false ! multifilesink location=&quot;frame%05d.png&quot;

&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Mrrhq</title>
    <id>5169</id>
    <revision>
      <id>48492</id>
      <timestamp>2012-06-16T18:21:10Z</timestamp>
      <contributor>
        <ip>67.160.138.174</ip>
      </contributor>
      <comment>/* About my descision to purchase the N900 */</comment>
      <text xml:space="preserve">== Introduction ==

Hello, I am an pseudo-anonymous Maemo 5 user. I go by the name Mr. R, or by my username and IRC chat name: mrrhq

The first part of my name &quot;mrr&quot; means &quot;Mr. R&quot;, and &quot;hq&quot; means &quot;headquarters&quot;. So the full title of my username is read as &quot;Mr. R Headquarters&quot;.

== About my descision to purchase the N900 ==

When deciding if the N900 should be my first Linux-based smartphone, I has a few factors to decide: Functionality, FOSS, and cost.

What was really the key descision was cost and functionality. Consider this: The OpenMoko smartphone and the OpenPandora device, are basically two seperate devices, with their own intended purpouse, while the N900 has hybrid functionality of these two devices.

The OpenPandora has an 800x480 screen, and the OpenMoko phone does not.
The OpenPandora has dual speakers, and the OpenMoko phone does not.
The OpenPandora has a full '''physical''' keyboard, and the OpenMoko phone does not.

The OpenMoko has GSM/HSDPA functionality '''built-in''', and the OpenPandora device does not.

Both devices have a 600Mhz (or close to 600Mhz) CPU, stylus, resistive touchscreen (for higher prescision, unlike capacitive), an audio port and USB ports.

The N900 has higher pixel density, and it fits in your pocket (unlike the Pandora). But the Pandora has 10 hours of battery life to compensate for this.

On top of that, the N900 even has an FM transmitter and reciever, and IR transmitter, TV Out. a kickstand and a dual-flash 5MP camera.

The N900 is even cheaper on eBay ebcause of the Android/iOS market share and price deflation. It's only $200! And the OpenPandora is around 550$, and the even ''less'' functional (overall) OpenMoko smartphone is around $700!

'''The only catch is that the N900 is not completely FOSS (yet)!'''

Also, The N900 is currently, even in 2012, '''the most functional portable device in the entire world.''' No other device in the entire world matches its functionality.

Which is so absurd, it makes me want to kill people (don't worry, I'm not ''that'' insane), Why are people so stupid such that they cannot handle or understand the N900's true potential and capabilities? The marketing ploy of Apple, Android, Blackberry, and others, makes me sick to a limitless extent.

Humanity is really stupid in my opinion. So if you own an N900, you should not be crippled with technology illeteracy, (unless you have an OpenMoko. I support those too).

But the N900 is not FOSS, so I have to live with that. I have sinned against Richard Stallman's philosophy: that all software should be FOSS. But that should change. What fun is it for proprietary software to not exist for hackers to work around? It's true that even RMS has used proprietary software in the past, and hacked with it to create free software.

Let's do the same thing with Maemo 5. Let's no longer be controlled by corprotocracy and the now shunned views from Nokia, whom no longer supports Maemo 5. Let's use ethical ways to make money, to support Maemo developers and get Maemo completely open source, while avoiding the burdens of software patent and trade laws. Let's make Maemo free and open source software for everyone who uses the N900!

I plan to spend my remaining time on the Maemo community website helping to make the Maemo 5 OS 100% libre and open source, or even helping Mer/Nemo to achieve the same goal!

== removebloat.sh ==

Removebloat.sh has been removed because I want to focus more on this article instead: [[Fremantle closed packages]]. Which includes some of the &quot;bloatware&quot; I was discussing about

== Contribute to Open Source ==

I hightly urge you to contribute FOSS to Maemo 5, to make the N900 a 100% libre and open source device, or to the extent permitted by law (because some juristictions require proprietary GSM firmware, and more).</text>
    </revision>
  </page>
  <page>
    <title>User:Msoini</title>
    <id>2675</id>
    <revision>
      <id>20013</id>
      <timestamp>2009-10-14T09:14:14Z</timestamp>
      <contributor>
        <username>msoini</username>
        <id>1023</id>
      </contributor>
      <text xml:space="preserve">Mox Soini

* [[GUI Design Template]]



* [[Legacy Maemo 5 Documentation]]</text>
    </revision>
  </page>
  <page>
    <title>User:Munk</title>
    <id>943</id>
    <revision>
      <id>5577</id>
      <timestamp>2008-07-26T08:56:16Z</timestamp>
      <contributor>
        <username>munk</username>
        <id>237</id>
      </contributor>
      <comment>New page: I've bought seven N800's and one N810 so far.  Let's hope the mythical N900 at least doubles its performance in RAM, processing power, built-in camera and GPS sensitivity.  That's my two c...</comment>
      <text xml:space="preserve">I've bought seven N800's and one N810 so far.  Let's hope the mythical N900 at least doubles its performance in RAM, processing power, built-in camera and GPS sensitivity.  That's my two cents at least.  The screen is already awesome and the N810 keyboard is good enough.

Where I work:  [http://www.nationaldatestamp.com link National Date Stamp]
My old hobby page: [http://www.xbox1.com link Xbox1]
Website I recently launched  [http://www.loreals.com link Loreals.com]</text>
    </revision>
  </page>
  <page>
    <title>User:Myriam411</title>
    <id>4110</id>
    <revision>
      <id>34506</id>
      <timestamp>2010-05-19T12:20:36Z</timestamp>
      <contributor>
        <username>myriam411</username>
        <id>2782</id>
      </contributor>
      <comment>New page: List of Links&lt;br&gt; [http://www.cuelc.eu/Members/nospindave6/nospindave6 nospindave6]&lt;br&gt; [http://community.eldis.org/lorenzabacon/.59d73427/.59d7342b lorenzabacon]&lt;br&gt; [https://discussions....</comment>
      <text xml:space="preserve">List of Links&lt;br&gt;
[http://www.cuelc.eu/Members/nospindave6/nospindave6 nospindave6]&lt;br&gt;
[http://community.eldis.org/lorenzabacon/.59d73427/.59d7342b lorenzabacon]&lt;br&gt;
[https://discussions.nessus.org/thread/2427 jamie062600]&lt;br&gt;
[http://trac.symfony-project.org/wiki/kutchi2?version=1 kutchi2]&lt;br&gt;
[http://share.triangle.com/node/32163 kellikatz]&lt;br&gt;
[http://www.washingtontimes.com/weblogs/altheacotton/2010/may/19/altheacotton/ altheacotton]&lt;br&gt;
[http://www.wordorigins.org/index.php/forums/member/10595/ flyinace20001]&lt;br&gt;
[http://www.zazzle.com/cathrinevega cathrinevega]&lt;br&gt;
&lt;br&gt;
[http://www.zazzle.com/jimmessengeraf jimmessengeraf]
[http://www.st-andrew-umc.com/index.php/member/141/ jumpmasterhg]
[http://z298-p255.itcilo.org/esd/tyep/Members/orfilmsfa/orfilmsfa orfilmsfa]
[http://www.shared-care.com/Members/infinityproyh/infinityproyh infinityproyh]
[http://www.uaeasy.com/index.php/member/1093/ privatemilitarydo]
[http://www.dabawegnu.org/Members/lovemylibsuf/lovemylibsuf lovemylibsuf]
[http://www.waterteck.com/index.php/member/1101/ watsonincol]
[http://www.scmug.net/forum/scmug-presentation-ideas-and-needs/66545924 halofourteenhg]
[http://www.fibrewales.com/?/member/1163/ funnyplanetue]
[http://www.windyhillscaledon.org/index.php/member/860/ kitschedio]
[http://www.muri-belpstrasse.ch/member/1178/ netblogshl]
[http://www.spokanejug.com/Members/seoimagefk/seoimagefk seoimagefk]
[http://www.novahotboard.com/member/1212/ adholdenyu]
[http://www.london.umb.edu/index.php/member/1334/ askpattykd]
[http://www.wilberforcetrail.co.uk/index.php?/forums/member/2427/ dwalters65di]
[http://rpg-research.com/forum/technical-support/735446688 auer1816sj]
[http://www.alaskafarmersmarkets.org/index.php/communicate/member/3888/ karlycfs]
[http://www.attadalebombers.com.au/index.php/member/954/ russencrantzkj]
[http://fcducati.com/forums/general-discussion/gear/656924027 redbarinyj]
[http://carrierambo.com/index.php/member/2081/ bestgameboyld]
[http://fuckabees.com/?q=node/3037 rachiekosa]
[http://infosecawareness.in/Members/slatelh/slatelh slatelh]
[http://huntsasquatch.com/pg/profile/shallomya shallomya]
[http://jastadd.org/jastadd-forums/general-board/688022655 jadedhalokj]
[http://youngsexyintellects.com/pg/profile/greenmacon greenmacon]
[http://www.commissionedpastor.org/elgg/wayjerni/weblog/1009.html wayjerni]
[http://www.phpzealots.com/node/13164 vandal31593jd]
[http://naskool.com/pg/pages/view/1432/ unixjunkieul]
[http://pointsa.co.za/node/26588 arbiterofcoolle]
[http://www.ntlis.nt.gov.au/forum/Members/universal12lo/universal12lo universal12lo]
[http://www.mymobilephone.in/blog/blinkershj-2976.html blinkershj]
[http://www.tonelab.net/node/9536 mudkipzou]
[http://www.flartoolkitdocs.org/node/1477 russencrantzkj]
[http://www.taniec.org.pl/Members/charlsonei/charlsonei charlsonei]
[http://elgg.dsv.su.se/pg/pages/view/2228/ cristianmezeias]
[http://www.cybersecurityinstitute.com/index.php/member/1319/ jenifferayks]
[http://www.tuxisalive.com/Members/grendelboogieue/grendelboogieue grendelboogieue]
[http://haveyouvisithere.com/?q=node/1745 bruhahanf]
[http://inthekitchenwithfriends.com/index.php/member/930/ cristianmezeias]
[http://nowinters.com/elgg/pg/profile/stuntdublkk stuntdublkk]
[http://rollface.com/content/kpearceaf kpearceaf]
[http://www.jpolitis.com/index.php/member/1690/ stuntdublkk]
[http://www.nyorthocare.com/index.php/member/806/ darkwizardeu]
[http://www.inner-growth.info/community/html/elgg/pg/pages/view/2996/ darkwizardeu]
[http://pandagon.net/index.php/member/15885/ rider87dy]
[http://www.moneybonanzas.com/elgg/pg/pages/view/1619/ rider87dy]
[http://www.aitaa.ait.ac.th/Members/followmeod/followmeod.html followmeod]
[http://elgg.mysmt.net/pg/blog/russencrantzfi/read/3541/russencrantzfi russencrantzfi]
[http://www.stablecomfort.com/index.php/forums/member/2049/ bumbaklotartattackky]
[http://sinotext.org/sinotext/pg/pages/view/1166/ lenwoodhu]
[http://www.treatmentequipment.com/index.php/member/1910/ karlycoe]
[http://tulanecf.org/index.php/member/859/ jamie06260jy]
[http://www.social-network-blog.com/elgg/pg/pages/view/4113/ sexystackedus]
[http://mediacloisters.vassar.edu/index.php/member/14870/ michaelrhodentedd]
[http://www.mountainviewtalk.com/pg/profile/isamurailo isamurailo]
[http://volunteerlouisiana.gov/member/4218/ tusharmsy]
[http://myownstylist.com/pg/profile/sarahgilbertui sarahgilbertui]
[http://whatdoyouconsiderlethal.com/forum/member/2658/ games1989lj]
[http://inspirationtree.org/content/lenwoodhu lenwoodhu]
[http://www.poker3k.net/sexystackedus sexystackedus]
[http://fargoautomation.com/index.php/member/424/ theattacksji]
[http://www.bradrobertsondds.com/member/1394/ marc2242ad]
[http://www.livetheatreleague.org/forum/member/9619/ engineerih]
[http://www.paulpottsofficial.com/gb/forums/member/151844/ pirana0nk]
&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=79025 yasmin]&lt;br&gt;
[http://evolt.org/user/84345 clonidine]&lt;br&gt;
[http://evolt.org/user/84228 alli]&lt;br&gt;
[http://evolt.org/user/83654 zithromax]&lt;br&gt;
[http://evolt.org/user/84570 aldactone]&lt;br&gt;
[http://evolt.org/user/84246 evista]&lt;br&gt;
[http://evolt.org/user/84080 famvir]&lt;br&gt;
[http://evolt.org/user/84501 detrol]&lt;br&gt;
[http://evolt.org/user/84032 lopressor]&lt;br&gt;
[http://evolt.org/user/83758 zyban]&lt;br&gt;
[http://evolt.org/user/84421 singulair]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=79022 fosamax]&lt;br&gt;
[http://evolt.org/user/83712 voltaren]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=78982 aciphex]&lt;br&gt;
[http://evolt.org/user/83840 fluoxetine]&lt;br&gt;
[http://evolt.org/user/83814 paroxetine]&lt;br&gt;
[http://evolt.org/user/84741 glucophage]&lt;br&gt;
[http://evolt.org/user/84343 allegra]&lt;br&gt;
[http://evolt.org/user/84647 aspirin]&lt;br&gt;
[http://evolt.org/user/84124 prednisone]&lt;br&gt;
[http://evolt.org/user/84095 keflex]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=78987 zovirax]&lt;br&gt;
[http://evolt.org/user/83914 lipitor]&lt;br&gt;
[http://www.work.com/buy-evista-online-50694/ evista]&lt;br&gt;
[http://evolt.org/user/83875 lisinopril]&lt;br&gt;
[http://evolt.org/user/84388 cellcept]&lt;br&gt;
[http://evolt.org/user/84830 cardura]&lt;br&gt;
[http://evolt.org/user/83873 micardis]&lt;br&gt;
[http://evolt.org/user/84136 ranitidine]&lt;br&gt;
[http://evolt.org/user/84662 actonel]&lt;br&gt;
[http://evolt.org/user/83627 tenormin]&lt;br&gt;
[http://evolt.org/user/83759 tricor]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=79057 propecia]&lt;br&gt;
[http://evolt.org/user/84266 provera]&lt;br&gt;
[http://evolt.org/user/84425 imodium]&lt;br&gt;
[http://evolt.org/user/84433 flonase]&lt;br&gt;
[http://evolt.org/user/84648 zyvox]&lt;br&gt;
[http://www.work.com/online-order-generic-cipro-50595/ cipro]&lt;br&gt;
[http://evolt.org/user/84789 benadryl]&lt;br&gt;
[http://evolt.org/user/84673 accutane]&lt;br&gt;
[http://evolt.org/user/84295 medrol]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=79051 trileptal]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=79034 januvia]&lt;br&gt;
[http://www.work.com/buy-provera-generic-50697/ provera]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=78924 cephalexin]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=79045 amantadine]&lt;br&gt;
[http://evolt.org/user/83852 bupropion]&lt;br&gt;
[http://evolt.org/user/83677 wellbutrin]&lt;br&gt;
[http://www.work.com/buy-cytotec-drug-50653/ cytotec]&lt;br&gt;
[http://www.work.com/generic-synthroid-xanax-50730/ synthroid]&lt;br&gt;
[http://evolt.org/user/84748 flomax]&lt;br&gt;
[http://evolt.org/user/84057 carafate]&lt;br&gt;
[http://www.work.com/online-buy-claritin-50709/ claritin]&lt;br&gt;
[http://evolt.org/user/84104 skelaxin]&lt;br&gt;
[http://evolt.org/user/83747 paxil]&lt;br&gt;
[http://www.work.com/cheap-buy-bactroban-online-50665/ bactroban]&lt;br&gt;
[http://www.work.com/orlistat-without-prescription-50690/ orlistat]&lt;br&gt;
[http://www.work.com/coreg-hair-loss-50640/ coreg]&lt;br&gt;
[http://evolt.org/user/83898 prevacid]&lt;br&gt;
[http://evolt.org/user/84172 prednisone]&lt;br&gt;
[http://evolt.org/user/84313 dilantin]&lt;br&gt;
[http://evolt.org/user/83998 maxalt]&lt;br&gt;
[http://evolt.org/user/84663 tamiflu]&lt;br&gt;
[http://evolt.org/user/84437 levaquin]&lt;br&gt;
[http://evolt.org/user/83768 effexor]&lt;br&gt;
[http://evolt.org/user/84599 topamax]&lt;br&gt;
[http://www.work.com/tegretol-without-prescription-50672/ tegretol]&lt;br&gt;
[http://evolt.org/user/84186 exelon]&lt;br&gt;
[http://evolt.org/user/83735 seroquel]&lt;br&gt;
[http://evolt.org/user/84829 lotensin]&lt;br&gt;
[http://www.work.com/rogaine-without-prescription-50715/ rogaine]&lt;br&gt;
[http://evolt.org/user/84608 detrol]&lt;br&gt;
[http://www.work.com/order-prednisone-without-prescription-50679/ prednisone]&lt;br&gt;
[http://evolt.org/user/84094 skelaxin]&lt;br&gt;
[http://evolt.org/user/84289 avapro]&lt;br&gt;
[http://www.work.com/online-trileptal-cod-50727/ trileptal]&lt;br&gt;
[http://evolt.org/user/84278 fosamax]&lt;br&gt;
[http://evolt.org/user/83748 effexor]&lt;br&gt;
[http://evolt.org/user/84720 apri]&lt;br&gt;
[http://www.work.com/buy-generic-imodium-50723/ imodium]&lt;br&gt;
[http://www.work.com/prescription-detrol-cod-50731/ detrol]&lt;br&gt;
[http://evolt.org/user/84016 nexium]&lt;br&gt;
[http://evolt.org/user/84151 prednisone]&lt;br&gt;
[http://evolt.org/user/84073 famvir]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=78983 protonix]&lt;br&gt;
[http://evolt.org/user/83928 lipitor]&lt;br&gt;
[http://evolt.org/user/83652 bactrim]&lt;br&gt;
[http://evolt.org/user/84506 levitra]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=79049 depakote]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=78917 kamagra]&lt;br&gt;
[http://evolt.org/user/83630 revatio]&lt;br&gt;
[http://evolt.org/user/84831 arava]&lt;br&gt;
[http://evolt.org/user/83974 bystolic]&lt;br&gt;
[http://evolt.org/user/84216 prednisolone]&lt;br&gt;
[http://evolt.org/user/83797 citalopram]&lt;br&gt;
[http://www.work.com/aciphex-without-prescription-50658/ aciphex]&lt;br&gt;
[http://evolt.org/user/84284 femara]&lt;br&gt;
[http://evolt.org/user/83885 plavix]&lt;br&gt;
[http://evolt.org/user/84751 uroxatral]&lt;br&gt;
[http://evolt.org/user/83668 zithromax]&lt;br&gt;
[http://evolt.org/user/84787 ventolin]&lt;br&gt;
[http://evolt.org/user/83770 tetracycline]&lt;br&gt;
[http://www.work.com/elavil-without-prescription-50620/ elavil]&lt;br&gt;
[http://evolt.org/user/83718 buspar]&lt;br&gt;
[http://evolt.org/user/84512 apri]&lt;br&gt;
[http://evolt.org/user/84586 aggrenox]&lt;br&gt;
[http://www.work.com/revatio-cheap-revatio-cialis-50594/ revatio]&lt;br&gt;
[http://evolt.org/user/84708 estrace]&lt;br&gt;
[http://evolt.org/user/84338 claritin]&lt;br&gt;
[http://evolt.org/user/84575 hyzaar]&lt;br&gt;
[http://evolt.org/user/83869 vytorin]&lt;br&gt;
[http://evolt.org/user/83785 elavil]&lt;br&gt;
[http://evolt.org/user/84742 pamelor]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=78926 omnicef]&lt;br&gt;
[http://evolt.org/user/83968 benicar]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=78945 citalopram]&lt;br&gt;
[http://evolt.org/user/84826 zestril]&lt;br&gt;
[http://evolt.org/user/84191 evista]&lt;br&gt;
[http://evolt.org/user/84429 requip]&lt;br&gt;
[http://evolt.org/user/84531 aldactone]&lt;br&gt;
[http://evolt.org/user/83763 risperdal]&lt;br&gt;
[http://www.work.com/celebrex-without-prescription-50675/ celebrex]&lt;br&gt;
[http://evolt.org/user/83619 keflex]&lt;br&gt;
[http://evolt.org/user/84423 meclizine]&lt;br&gt;
[http://evolt.org/user/84571 baclofen]&lt;br&gt;
[http://evolt.org/user/83636 kamagra]&lt;br&gt;
[http://evolt.org/user/83632 revatio]&lt;br&gt;
[http://evolt.org/user/84321 flonase]&lt;br&gt;
[http://evolt.org/user/84330 imodium]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=78979 nexium]&lt;br&gt;
[http://evolt.org/user/83730 lexapro]&lt;br&gt;
[http://evolt.org/user/84207 fosamax]&lt;br&gt;
[http://evolt.org/user/84329 alli]&lt;br&gt;
[http://evolt.org/user/84717 phenergan]&lt;br&gt;
[http://evolt.org/user/84424 boniva]&lt;br&gt;
[http://evolt.org/user/84021 avapro]&lt;br&gt;
[http://evolt.org/user/84796 verapamil]&lt;br&gt;
[http://evolt.org/user/83728 minocycline]&lt;br&gt;
[http://evolt.org/user/83664 zantac]&lt;br&gt;
[http://www.work.com/prescription-actos-de-fe-50710/ actos]&lt;br&gt;
[http://evolt.org/user/84771 relafen]&lt;br&gt;
[http://evolt.org/user/84366 benicar]&lt;br&gt;
[http://www.work.com/keppra-without-prescription-50627/ keppra]&lt;br&gt;
[http://evolt.org/user/84105 tegretol]&lt;br&gt;
[http://evolt.org/user/83826 abilify]&lt;br&gt;
[http://evolt.org/user/84671 avodart]&lt;br&gt;
[http://evolt.org/user/84754 cleocin]&lt;br&gt;
[http://evolt.org/user/84399 atarax]&lt;br&gt;
[http://www.work.com/order-aleve-overnight-shipping-50680/ aleve]&lt;br&gt;
[http://evolt.org/user/84206 zocor]&lt;br&gt;
[http://evolt.org/user/84539 actos]&lt;br&gt;
[http://evolt.org/user/83861 plavix]&lt;br&gt;
[http://www.work.com/atacand-without-prescription-50637/ atacand]&lt;br&gt;
[http://evolt.org/user/83660 cipro]&lt;br&gt;
[http://evolt.org/user/83782 celexa]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=78974 benicar]&lt;br&gt;
[http://evolt.org/user/84775 imuran]&lt;br&gt;
[http://evolt.org/user/84510 decadron]&lt;br&gt;
[http://evolt.org/user/83940 toprol]&lt;br&gt;
[http://evolt.org/user/84724 gemfibrozil]&lt;br&gt;
[http://evolt.org/user/84383 januvia]&lt;br&gt;
[http://evolt.org/user/84059 clonidine]&lt;br&gt;
[http://evolt.org/user/84499 avandia]&lt;br&gt;
[http://evolt.org/user/84554 skelaxin]&lt;br&gt;
[http://evolt.org/user/84628 lotensin]&lt;br&gt;
[http://evolt.org/user/84746 avodart]&lt;br&gt;
[http://evolt.org/user/84307 requip]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=78919 cipro]&lt;br&gt;
[http://evolt.org/user/84555 accutane]&lt;br&gt;
[http://evolt.org/user/84349 aricept]&lt;br&gt;
[http://evolt.org/user/84111 methotrexate]&lt;br&gt;
[http://evolt.org/user/84409 nexium]&lt;br&gt;
[http://evolt.org/user/84505 asacol]&lt;br&gt;
[http://evolt.org/user/84669 avelox]&lt;br&gt;
[http://evolt.org/user/83793 remeron]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=79000 methotrexate]&lt;br&gt;
[http://evolt.org/user/84163 motrin]&lt;br&gt;
[http://evolt.org/user/84232 hoodia]&lt;br&gt;
[http://evolt.org/user/83808 abilify]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=78973 hydrochlorothiazide]&lt;br&gt;
[http://evolt.org/user/84054 levoxyl]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=78941 zyprexa]&lt;br&gt;
[http://evolt.org/user/84438 depakote]&lt;br&gt;
[http://evolt.org/user/83614 tylenol]&lt;br&gt;
[http://evolt.org/user/83665 revatio]&lt;br&gt;
[http://evolt.org/user/83810 citalopram]&lt;br&gt;
[http://evolt.org/user/84726 prometrium]&lt;br&gt;
[http://evolt.org/user/84657 geodon]&lt;br&gt;
[http://www.work.com/generic-tetracycline-birth-control-50605/ tetracycline]&lt;br&gt;
[http://evolt.org/user/84632 diltiazem]&lt;br&gt;
[http://evolt.org/user/84106 imitrex]&lt;br&gt;
[http://evolt.org/user/84498 asacol]&lt;br&gt;
[http://evolt.org/user/83892 abilify]&lt;br&gt;
[http://www.work.com/keflex-without-prescription-50732/ keflex]&lt;br&gt;
[http://evolt.org/user/84018 pepcid]&lt;br&gt;
[http://evolt.org/user/84483 zantac]&lt;br&gt;
[http://evolt.org/user/84621 cytoxan]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=79014 alli]&lt;br&gt;
[http://www.tickerspy.com/member.php?mid=79048 lamictal]&lt;br&gt;
[http://evolt.org/user/83655 kamagra]&lt;br&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Myrtti</title>
    <id>1437</id>
    <revision>
      <id>38638</id>
      <timestamp>2010-09-15T23:29:38Z</timestamp>
      <contributor>
        <username>myrtti</username>
        <id>518</id>
      </contributor>
      <minor/>
      <comment>/* Links */</comment>
      <text xml:space="preserve">__NOTOC__
&lt;div style=&quot;background-color:#FFEBE0; border:2px dashed #FFCBCE; padding:2px; height:100%;&quot;&gt;
I'm Miia Ranta, I'm also known on the Internet as &quot;Myrtti&quot;. I'm 28 years old female, I live in Tampere, Finland, where I also work from home.

I've been an admin on the Finnish Wikipedia and currently am member of the [http://fi.wikipedia.org/wiki/Wikipedia:V%C3%A4lityslautakunta Finnish Arbitration Committee].

If you need to contact me via my discussion page, I beg you, do so in English, Finnish or Swedish. I do understand German, French, Italian and Latin to some degree, but if you want me to understand everything you're saying...

=== Links ===
*[http://fi.wikipedia.org/wiki/K%C3%A4ytt%C3%A4j%C3%A4:Myrtti My user page in fi.wikipedia]
*[http://en.wikipedia.org/wiki/User:Myrtti My user page in en.wikipedia]
*[http://myrtti.fi I am] [http://www.last.fm/user/myrtti/ I listen] [http://nomovok.com I work]
* [http://irc.fi/Myrtti irc-galleria.net], [http://www.flickr.com/photos/myrtti/ flickr]
* [http://twitter.com/myrtti Twitter] [http://identi.ca/myrtti identi.ca] [http://www.facebook.com/miia.ranta Facebook] [http://fi.linkedin.com/in/myrtti Linked.in] [http://launchpad.net/~myrtti Launchpad]
&lt;/div&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Nbc</title>
    <id>3651</id>
    <revision>
      <id>40477</id>
      <timestamp>2010-12-05T01:25:57Z</timestamp>
      <contributor>
        <username>gritchok</username>
        <id>2147</id>
      </contributor>
      <minor/>
      <comment>/* agenda synchronization with kronolith/funambol */</comment>
      <text xml:space="preserve">Just some notes to keep things somewhere

= Some scripts =

* [[User:Nbc/W32g]] auto toggle to 2g/3g when wifi is connected/disconnected

=Customizations =

== agenda synchronization with kronolith/funambol ==

At work we use horde/kronolith for webmail/agenda and funambol 7 to
sync with mobile. The funambol link is
https://synchro.ddg.fr/sync. I've no access to the funambol
configuration and I know almost nothing about calendar
synchronization. After some tries I have a good syncevolution configuration

- install [http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/syncevolution/0.9.2-4/  syncevolution].

Be careful, as you need to use extra-testing or extra-devel dangerous repositories you must read carefully [http://wiki.maemo.org/Extras-testing the wiki page about them].

- use the gui to create a new source,
we will use these parameters :

 Service name : garone (just a private pun)
 Template : Funambol
 username : ...
 password : ...

after creation, finish

- enter this source and edit it (in the menu)

 Sync URL : https://synchro.ddg.fr/sync 
 Web URL  : https://synchro.ddg.fr/
 ...
 Contacts, Tasks and Notes synchronization : Disabled
 ...
 Calendar database : ical
 Calendar source : N900 (or another one if you've created it)
 Calendar synchronization : Normal sync

Last but not least, here comes the last steps in order to be able to Verify the server certificate against the CA cert.

 $ cd /home/user/.config/syncevolution/garone \
   &amp;&amp; wget -OCA.pem --no-check-certificate https://url_of_CA_cert \
   &amp;&amp; perl -pi -e 's|^(SSLVerifyServer\s*=\s*)0|${1}1|' config.ini \
   &amp;&amp; perl -pi -e 's|^(SSLServerCertificates\s*=\s*).*|$1/home/user/.config/syncevolution/garone/CA.pem|' config.ini

You can check the whole thing with:

 $ grep ^SSL config.ini
 SSLServerCertificates = /home/user/.config/syncevolution/garone/CA.pem
 SSLVerifyServer = 1

...and obviously if you fire up a synchronization. Starting with MicroB, you'll be able to browse sync logs at file:///home/user/.cache/syncevolution/

At the moment I've seen no problem. Recurring events work, two way (normal) sync works quite well too.

That's all folks

== automatic OTA sync with fcron ==

I like automation. When I wake up I want to take my n900 with fresh podcasts, a calendar synced without thinking about it. Thanks to [[User:Ruskie]] it's very easy to do that with fcron.

  cat /home/user/bin/night_sync
  #!/bin/sh
  
  # TODO: find a way to test against the wifi ESSID/network name
  HOMEIP=&quot;192.168.0.4&quot;
  IP=`/sbin/ifconfig wlan0 | grep &quot;inet addr&quot; | awk -F: '{print $2}' | awk '{print $1}'`
  
  # exit if it's not my wifi network
  if [ &quot;X$IP&quot; != &quot;X$HOMEIP&quot; ]; then
  	echo &quot;`date` not at home&quot;
  	exit 0
  fi
  
  echo &quot;`date` at home&quot;
  
  # add things here
  /usr/bin/syncevolution --quiet agenor
  /usr/bin/gpo update
  /usr/bin/gpo download

and in fcron (fcrontab -e) :

  %nightly,mail(no) * 5-6 su - user -c &quot;/home/user/bin/night_sync &gt; /tmp/night_sync.log 2&gt;&amp;1&quot;

== Icons placement ==

Change snap_to_grid to 16 in /usr/share/hildon-desktop/transitions.ini to easily align icons.

Ref: http://talk.maemo.org/showpost.php?p=472332&amp;postcount=6

=D-Bus=

==Various Commands==

* automatically connect
  # find the connection name
  gconftool-2 -R /system/osso/connectivity/IAP
  # connect it
  dbus-send --type=method_call --system --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:&quot;IAP&quot; uint32:0

* is there a phone call now ? 

 dbus-send --system --dest=&quot;com.nokia.csd.Call&quot; --print-reply=literal &quot;/com/nokia/csd/call/1&quot; &quot;com.nokia.csd.Call.Instance.GetStatus&quot;
   uint32 0

If this command return is 0 there's a call online.

* [[User:Jebba/DBUS]]

= Reminders =

Some things I want to keep in mind

== un-ignore package update ==

  rm ~/.hildon-application-manager/{seen,tapped}-updates

== how to not index podcast in mediaplayer

Add /home/user/MyDocs/Podcasts/ to the NoWatchDirectory line in the tracker config file/home/user/.config/tracker/tracker.cfg

Ref: http://www.gossamer-threads.com/lists/maemo/users/62052#62052</text>
    </revision>
  </page>
  <page>
    <title>User:Nbc/W32g</title>
    <id>3767</id>
    <revision>
      <id>32367</id>
      <timestamp>2010-04-09T20:32:16Z</timestamp>
      <contributor>
        <ip>169.232.246.21</ip>
      </contributor>
      <comment>/* Script */</comment>
      <text xml:space="preserve">= What is it =

w32g is a dbus script to toggle 2g/3g when connected/disconnected to wifi.

If there's a call, it will delay the toggling.

= Configuration =

The configuration documentation is at the beginning w32g.conf. You can copy it to /home/user/.w32g.conf and modify it :

  [w32g]
  
  ### the comment reflect the default configuration
  ### true is true (case insensitive), everything else is false
  
  ### the command used to test the wifi connection before downgrading to 2g
  ### if you don't want to do test just delete after =
  # connection_test = sudo /bin/ping -c 1 www.google.com
  
  ### notification message when going to 3g
  # message_on_idle = 3G cellular mode set
  ### notification message when going to 2g
  # message_on_connected = 2G (GSM) cellular mode set
  
  ### shall we go back to 3g when wlan disconnect ?
  #### if you want to have false just delete after =
  # change_on_idle = true
  ### shall we go back to dual or 3g ?
  # change_to_dual = true
  
  ### if wait_on_call is a integer greater than 0, the program will wait
  ### all this time to toggle to 2g/3g. After this time it will exit
  ### without toggling.
  ### if wait_on_call is 0 or lesser, w32g will exit without toggling
  # wait_on_call = 90
  
  ### if you want go to 2g only when connected to some wlan you can add their wlan id here
  ### you can find the wlan id using the command 
  ### gconftool-2 -R /system/osso/connectivity/IAP
  ### For example :
  ### wifi = 91f493fb-7c89-4fc6-ac2c-b822923dde45 9ee5dd55-9a32-4ee9-9131-c464ad31d907
  # wifi =

= Script = 

And you must copy the program to /home/user/bin/w32g and follow instruction below :

  #!/usr/bin/python
  
  # You need to install dbus-scripts (BE CAREFUL, it's a devel package)
  # 
  # as root you need to create a file /etc/sudoers.d/w32g
  # with this line :
  #   user ALL = NOPASSWD: /bin/ping
  # and run the command update-sudoers because only root can use ping
  # 
  # always as root and you need to create another file
  # /etc/dbus-scripts/w32g with the following line : 
  #
  #   /home/user/bin/w32g * * com.nokia.icd status_changed * WLAN_INFRA *
  #
  # and copy this script in /home/user/bin/w32g
  
  import sys
  import os
  import ConfigParser
  import re
  import commands
  import time 
  
  debug = False
  
  conf_file = '/home/user/.w32g.conf'
  
  config = { 'message_on_idle': '3G cellular mode set',
    'message_on_connected': '2G (GSM) cellular mode set',
    'connection_test': 'sudo /bin/ping -c 1 www.google.com',
    'change_on_idle': 'true',
    'change_to_dual': 'true',
    'wait_on_call': 10,
    'wifi': ''
  }
  
  config_parser = ConfigParser.SafeConfigParser()
  
  try:
      config_parser.read(conf_file)
      for item in config_parser.items('w32g'):
          config[ item[0] ] = item[1]
  except ConfigParser.NoSectionError:
      pass
  
  def to_bool(string):
      if re.search('true', string, re.IGNORECASE):
          return True
  
  config['change_on_idle'] = to_bool(config['change_on_idle'])
  config['change_to_dual'] = to_bool(config['change_to_dual'])
  config['wait_on_call']   = int(config['wait_on_call'])
  
  wifi_id,state = sys.argv[5],sys.argv[7]
  
  # if we are not on the good wifi network we do nothing and exit
  if config['wifi'] and not re.search(wifi_id, config['wifi'], re.IGNORECASE):
      if debug: print &quot;not the good wifi network, exit&quot;
      sys.exit(0)
  
  dbus_wifi = &quot;dbus-send --system --type=method_call --print-reply --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology&quot;;
  
  dbus_notif = &quot;dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint&quot;;
  
  dbus_test_call = &quot;dbus-send --system --dest=com.nokia.csd.Call --print-reply=literal /com/nokia/csd/call/1 com.nokia.csd.Call.Instance.GetStatus&quot;
  
  def is_on_call():
      output = commands.getoutput(dbus_test_call)
      return &quot;uint32 0&quot; in output
  
  def wait_or_exit_on_call():
      if debug: print &quot;in wait or exit on call&quot;
      choice = config['wait_on_call']
      if choice &gt; 0:
          end = time.time() + choice
          while end &gt; time.time():
              if is_on_call(): return
              if debug: print &quot;wait&quot;
              time.sleep(1)
          sys.exit()
      else:
          sys.exit()
          
  if state == 'CONNECTED':
      if debug: print &quot;CONNECTED STATE&quot;
      # we verified that the connection works
      if config['connection_test']:
          ret = os.system(config['connection_test']);
      else:
          ret = 0
  
      # we wait or exit if there's a call
      wait_or_exit_on_call()
  
      if ret == 0:
          os.system(dbus_wifi + &quot; byte:1&quot;);
          os.system(dbus_notif + &quot; string:'&quot; + config['message_on_connected'] + &quot;'&quot;)
  
  elif state == 'IDLE' and config['change_on_idle']:
      if debug: print &quot;IDLE STATE&quot;
      dual = &quot;2&quot;
      if config['change_to_dual']: dual = &quot;0&quot;
      print dual
  
      # we wait or exit if there's a call
      wait_or_exit_on_call()
  
      os.system(dbus_wifi + &quot; byte:&quot; + dual);
      os.system(dbus_notif + &quot; string:'&quot; + config['message_on_idle'] + &quot;'&quot;)
  
  print state
  
  if debug: print &quot;end here&quot;</text>
    </revision>
  </page>
  <page>
    <title>User:Nicolai</title>
    <id>4366</id>
    <revision>
      <id>37296</id>
      <timestamp>2010-07-27T08:51:34Z</timestamp>
      <contributor>
        <username>nicolai</username>
        <id>1212</id>
      </contributor>
      <comment>New page: My contributions:  * [http://maemo.org/packages/view/desktop-clock-widget Desktop Clock Widget] * [http://maemo.org/packages/view/cal-home-widget Calendar Home Widget] * [http://maemo.org/...</comment>
      <text xml:space="preserve">My contributions:

* [http://maemo.org/packages/view/desktop-clock-widget Desktop Clock Widget]
* [http://maemo.org/packages/view/cal-home-widget Calendar Home Widget]
* [http://maemo.org/packages/view/lens-cover-reminder-sp Lens Cover Reminder]
* [http://maemo.org/packages/view/connectnow-home-widget ConnectNow]
* [http://maemo.org/packages/view/scout scout]
* [http://maemo.org/packages/view/app-search-widget App Search Widget]

If you like my work and want to support me, feel free to 
[https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=67VDA9C6AUJGN donation]</text>
    </revision>
  </page>
  <page>
    <title>User:Nieldk</title>
    <id>5173</id>
    <revision>
      <id>48079</id>
      <timestamp>2012-06-02T07:46:26Z</timestamp>
      <contributor>
        <username>nieldk</username>
        <id>5106</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">[[Image:3D03C5DC-655D-418C-98F0-919B1EAF4FAB.JPG]]

My thoughts on &quot;Questions a candidate might want to answer&quot;

1. What are your thoughts on integrating Harmattan and potentially even Meltemi/other-open-Qt+Linux Nokia/other manufacturer devices into the Maemo community and maemo.org?

This community should be open to all Nokia platforms, and should work on creating better relations with Nokia on all of the platforms, I believe there is room for all.

2. There is a thread on TMO highlighting some of the problems the current council has had. Do you agree with the assertions in that thread that there's been a breakdown in communication between Nokia, Nemein and the council; and the council and the community? If so, how do we fix it? Actually I feel the community and council are quite open and accepting, but surely there is room to improve. Council needs to open ears, and listen to the community input for improvements or changes.

3. Do You agree, that lack of devices (hardware) is one of major roadblocks for Open mobility we would like to have? If yes, which way should Council focus on supporting:

Creating better connections with Nokia hopefully can make this better.

a) Cooperation with big companies (Nokia?), hoping that they'll finally release &quot;device of our dreams&quot; (or thing close to)?

This is needed, and what I will try to accomplish

b) Starting hard, demanding and somewhat costly (without guarantee of success) path of creating own device via donations, which - if succeed - may result in totally, or almost totally open device (way of Open Pandora, Raspberry Pi, etc)?

I think this road is doomed for failure, better connections with Nokia, is the way to help.

Sponsoring is the only feasible way forward, either by Nokia supporting us, letting the community in the development process (design ideas, platform, HW etc), or by obtaining sponsorships by funding. Now second one may be harder, we need to think quite deep on where it is feasible and likely to get sponsored, there are many options. The most likely in my point of view, is sponsoring by Nokia. (please do start commenting LOL) as hard as this may seem, I do not think it is unobtainable. But we need to think out a win-win situation. I believe Nokia would likely be open to design ideas, and also input for a platform that would attract not only the devs of the community, but also, through unique UI ideas, the general user. now, in order to develop a new device. this is practically possible, without zillions of $$. Prototyping boards with all the necessary HW is available. Now, when it comes to finish the product (design, custom mainboard, chips, screen etc) to a smaller, usable device, this is where it will start costing, probably hunfreds of thousands $. THAT is where we need to look for sponsoring. Chip manufacturers, cell phone manufacturers or whoever would be interrested in sponsoring.

If you believe I am 'only talking' I don't really blame you. Those who might have seen me on other forums for other platforms will know this is not the case. As for Nokia as a registered charity company, no they are not, but they are one of two who are (somwewhat) open for input. In other platforms community have a great cooperation with the phone manufacturers. Allowing some openness, but surely not complete (other companies play the hinder here - Nokia can not release sources for eg wireless network cards). This does NOT stand in the way for a more open platform, but we need Nokia to be up to speed (Sony is a pretty good example here) and actively help us developing binary blobs for where it is needed. So yes, I still say it is possible. And I will do my best to take part of the discussions with Nokia (also my employment situation makes this the more likely place for me to participate) I will try this no matter the election fall-out. But surely to speak on the behalf of the community, this election is the proper way to go. Otherwise it would only be 'me' single person speaking, making it much harder (still, not impossible)</text>
    </revision>
  </page>
  <page>
    <title>User:Nilli</title>
    <id>5053</id>
    <revision>
      <id>45820</id>
      <timestamp>2011-11-23T16:20:35Z</timestamp>
      <contributor>
        <username>nilli</username>
        <id>4819</id>
      </contributor>
      <comment>short summary of my skills, to know what level I'm on if you need to talk tech with me</comment>
      <text xml:space="preserve">I'm nilli, an end-user of a Nokia N900. Head-over-heals in love with the device.


=== Skills ===
* English (high)
* XHTML 1.0 Strict (high)
* CSS2 (intermediate)
* PHP with MySQL (intermediate or low)
* regexp (low)
* command line (intermediate: Gentoo user)
* object oriented programming (none)</text>
    </revision>
  </page>
  <page>
    <title>User:Nin101</title>
    <id>4953</id>
    <revision>
      <id>45609</id>
      <timestamp>2011-10-25T20:48:00Z</timestamp>
      <contributor>
        <username>nin101</username>
        <id>4525</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">Encrypted the /home/ partition (mmcblk0p2) by using LUKS and fbcon. Some of you guys might find this interesting. More about this, [http://216.189.8.164/N900/crypto/encrypted_home/ here]. 

Developing an N900 rescueOS [http://talk.maemo.org/showthread.php?t=75369 here]. 

[http://talk.maemo.org/showthread.php?t=68419 TrueCrypt 7 with GUI and Kernel Crypto] and [http://216.189.8.164/N900/software/truecrypt/ here]</text>
    </revision>
  </page>
  <page>
    <title>User:Nin101/N900 Rescue OS</title>
    <id>5003</id>
    <revision>
      <id>45129</id>
      <timestamp>2011-09-02T12:50:00Z</timestamp>
      <contributor>
        <ip>93.210.137.233</ip>
      </contributor>
      <comment>/* Current version: 0.4 (2011-09-02) */</comment>
      <text xml:space="preserve">rescueOS is a rescue solution for the N900, distributed as a tarball and as an initrd image. It has several features, most notable:

* Mounting maemo root filesystem
* Mounting EMMC partitions (maemo home and MyDocs)
* USB mass-storage mode
* USB networking
* WiFi Support
* Battery charging

= Installation &amp; Booting =
== tarball == 
The installation of the tarball is rather easy and is in many ways compareable with the installation of meego-ce. The only difference is that a microsd card won't get completely overwritten as we only need one partition and do not overwrite the whole card and it's partition table.
While it is recommended to create an ext4 partition, the kernel can actually handle ext2 and ext3.

We assume that you only need this if maemo is broken on your device, therefore we do not want to describe how to install it on the N900.

# Plug your microsd (through an adapter) into your computer.
# Find the device node of the first partition. For example, if it /dev/sdf1, run mkfs.ext4 /dev/sdf1. WARNING: All data on this partition will be deleted. It is possible to use a different partition. If you use the second, replace the &quot;mmcblk0p1&quot; in the kernel command line to mmclbk0p2.
# mount /dev/sdf1 /mnt/
# tar xfvjp rescueOS-0.X.tar.bz2  -C /mnt/
# umount /mnt/


That's it! You can now proceed with &quot;Booting&quot;

=== Booting tarball === 
After you have unpacked the tarball, we can boot it. You need [[flasher|flasher-3.5]].&lt;pre&gt;
flasher-3.5 -l -k 2.6.37 -b&quot;root=/dev/mmcblk0p1 rootwait rw console=ttyO2,115200n8 console=tty0 mtdoops.mtddev=2&quot; wait for &quot;suitable device not found&quot;...&lt;/pre&gt;
Connect your N900 with USB to your computer.  
Once the kernel is send, unplug the USB. RescueOS is booting now. 

== initrd ==
&lt;pre&gt;flasher-3.5 -k 2.6.37 -n initrd.img -l -b&quot;rootdelay root=/dev/ram0&quot;&lt;/pre&gt;
Connect your N900 with USB to your computer. 
Once the kernel is sent, unplug the USB. RescueOS should be booting now. 


= Releases =
New versions are released from time to time. 

=== Current version: 0.4 (2011-09-02) === 
e2fsprogs and dosfstools. 

'''Download'''&lt;br&gt;
[http://nin101.uni.cx/N900/rescueOS/rescueOS-0.4.tar.bz2 tarball] [http://nin101.uni.cx/N900/rescueOS/rescueOS-0.4.tar.bz2.sig sig]

[http://nin101.uni.cx/N900/rescueOS/resos-0.4.img initrd] 

[http://nin101.uni.cx/N900/rescueOS/2.6.37 Kernel] [http://nin101.uni.cx/N900/rescueOS/2.6.37.sig Sig]

= Usage =
''To be written''

You basically get a bash shell right after the bootup. However, some scripts in the directory /rescueOS/ want to simplify some tasks. Currently most of them are in an early stage, so if in doubt, '''do not rely''' on them. 

'''Shutdown'''&lt;br&gt;
* unmount the maemo rootfs if you mounted it
* detach it (ubidetach -m 5)
* poweroff -f

'''WiFi support'''&lt;br&gt;
It has wpa_supplicant, but without EAP support. This should be ok for most home networks which use a PSK.

Give the following a try:

&lt;pre&gt;wpa_passphrase [essid] [password] &gt; /wlan.conf
sh /rescueOS/setup-wpa-wifi.sh&lt;/pre&gt;

For DHCP, use udhcpc -i wlan0.

'''Charging'''&lt;br&gt;
bash /rescueOS/charge21.bash</text>
    </revision>
  </page>
  <page>
    <title>User:Nononoyes</title>
    <id>4239</id>
    <revision>
      <id>35562</id>
      <timestamp>2010-06-10T07:46:17Z</timestamp>
      <contributor>
        <ip>62.77.56.16</ip>
      </contributor>
      <comment>New page: [Process] Type=Edit file Engine=MediaWiki Script=http://wiki.maemo.org/index.php Server=http://wiki.maemo.org Path= Special namespace=Special  [File] Extension=jpg URL=http://wiki.maemo.or...</comment>
      <text xml:space="preserve">[Process]
Type=Edit file
Engine=MediaWiki
Script=http://wiki.maemo.org/index.php
Server=http://wiki.maemo.org
Path=
Special namespace=Special

[File]
Extension=jpg
URL=http://wiki.maemo.org/images/5/50/Qbwmrltb.jpg</text>
    </revision>
  </page>
  <page>
    <title>User:Nsuffys</title>
    <id>5211</id>
    <revision>
      <id>48358</id>
      <timestamp>2012-06-12T18:14:31Z</timestamp>
      <contributor>
        <username>nsuffys</username>
        <id>5292</id>
      </contributor>
      <comment>New page: Owner of Nokia N9 White and Black 64 GB, 2 Nokia N900 (azerty &amp; qwerty), 1 Nokia N950.   Follow me on Twitter : @nsuffys  My French Nokia Blog - Nokians.fr : [http://nokians.fr/]  My frenc...</comment>
      <text xml:space="preserve">Owner of Nokia N9 White and Black 64 GB, 2 Nokia N900 (azerty &amp; qwerty), 1 Nokia N950.


Follow me on Twitter : @nsuffys

My French Nokia Blog - Nokians.fr : [http://nokians.fr/]

My french open-source smartphone blog : [http://nsuffys.blogspot.com/]</text>
    </revision>
  </page>
  <page>
    <title>User:Ntsourak</title>
    <id>1034</id>
    <revision>
      <id>5836</id>
      <timestamp>2008-07-28T17:04:14Z</timestamp>
      <contributor>
        <username>ntsourak</username>
        <id>251</id>
      </contributor>
      <comment>New page: I am a Researcher at ISSCO/TIM - University of Geneva. http://www.issco.unige.ch/staff/tsourakis/index.html</comment>
      <text xml:space="preserve">I am a Researcher at ISSCO/TIM - University of Geneva.
http://www.issco.unige.ch/staff/tsourakis/index.html</text>
    </revision>
  </page>
  <page>
    <title>User:Onion</title>
    <id>2540</id>
    <revision>
      <id>19128</id>
      <timestamp>2009-10-02T07:50:14Z</timestamp>
      <contributor>
        <username>onion</username>
        <id>10</id>
      </contributor>
      <comment>/me \o/</comment>
      <text xml:space="preserve">=Kaj-Michael Lang aka Onion=
* irc: onion (when some a**hole hasn't stolen my nick...)
* OSM: onion
* maemo.org: [http://maemo.org/profile/view/onion/ profile]
* e-mail: milang(at)tal.org
* Computer [http://computers.tal.org/ collector] 

==Maemo related projects==
* Major project include [http://mapper.tal.org/ Mapper], fork from maemo-mapper with OSM integration. Currently doing a rewrite of most of it, while mainting a somewhat stable branch.
* Other projects include packaging of Maelstrom, xhyperoid and modplug support for the media player.

==Other==
* Active OSM contributor since end of 2006, using Mapper to collect data
* [http://talinux.tal.org/ TA-Linux], my own minor distro</text>
    </revision>
  </page>
  <page>
    <title>User:Ossipena</title>
    <id>2811</id>
    <revision>
      <id>50503</id>
      <timestamp>2012-10-27T07:05:10Z</timestamp>
      <contributor>
        <ip>109.235.60.74</ip>
      </contributor>
      <comment>CoeteSKSUWSBfxaRjDs</comment>
      <text xml:space="preserve">First time commentor, long time rdeaer and transit nut.  Just like to back you up on a couple items. Your comments regarding the LRT to the University of Toronto Scarborough campus. The two kilometers south from the Sheppard LRT makes great sense regarding cost and availability and the direct link from Pearson to Union is a missed opportunity to service all points in between. And only 20% of the users need to go down-town. I guess 20% of 15,000,000 make it worth while. That is about 20,000 per day.</text>
    </revision>
  </page>
  <page>
    <title>User:Ossipena/todo</title>
    <id>3041</id>
    <revision>
      <id>29164</id>
      <timestamp>2010-02-12T05:25:04Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <text xml:space="preserve">todo -list

always:
[[Special:Lonelypages]]


http://talk.maemo.org/showthread.php?t=38230
article


others:
[[Navigation Tools]]

[[Killer Apps]] -what is this for?


[[IRC rtcomm]] - should this be changed to beginners -category?!?

[[Application list]] -waiting for the script!


[[Asking for help]] -For example, saying &quot;I can't start a program&quot;, versus &quot;I can't start a program because it's not in the app menu&quot; or &quot;xterm says I don't have permission to start this program?&quot;</text>
    </revision>
  </page>
  <page>
    <title>User:Ototo</title>
    <id>4316</id>
    <revision>
      <id>36521</id>
      <timestamp>2010-07-08T12:38:36Z</timestamp>
      <contributor>
        <username>ototo</username>
        <id>1214</id>
      </contributor>
      <minor/>
      <comment>Link to profile page.</comment>
      <text xml:space="preserve">See [http://maemo.org/profile/view/ototo/].</text>
    </revision>
  </page>
  <page>
    <title>User:Peremen</title>
    <id>1125</id>
    <revision>
      <id>6675</id>
      <timestamp>2008-08-18T12:14:30Z</timestamp>
      <contributor>
        <username>peremen</username>
        <id>293</id>
      </contributor>
      <comment>New page: I'm just a Korean KDE translator, and just writing some lines of codes. I got an N810 during Akademy 2008, started to work with it.  == External links == * [http://peremen.name Website]</comment>
      <text xml:space="preserve">I'm just a Korean KDE translator, and just writing some lines of codes. I got an N810 during Akademy 2008, started to work with it.

== External links ==
* [http://peremen.name Website]</text>
    </revision>
  </page>
  <page>
    <title>User:Peterschneider</title>
    <id>213</id>
    <revision>
      <id>16473</id>
      <timestamp>2009-08-14T05:13:29Z</timestamp>
      <contributor>
        <username>peterschneider</username>
        <id>29</id>
      </contributor>
      <comment>/* Biography */</comment>
      <text xml:space="preserve">== Biography ==

Peter Schneider is currently heading the global marketing team for Maemo Devices at Nokia responsible for communication to the open source community, the business ecosystem, and lead consumers.

He has over 12 years of experience in product management, product marketing, and business development functions in the telecommunications and software industry. Before his current position, he has been heading for over 2 years the strategic product marketing team of S60 software for operators in Nokia.

During his career, Peter Schneider has been responsible for various product management teams for browsing, payment, DRM, and download solutions in Nokia since October 2000. Before working at Nokia, Mr. Schneider worked as Business Development Manager for Siemens. As Business Development Manager being responsible for the business planning and product marketing in the mobile commerce competence center, Mr. Schneider initiated the development of key mobile commerce applications. He also worked as Product Manager at Siemens responsible for mobile enterprise communication solutions in the Nordic Countries for three years. 

Mr. Schneider holds a B.Sc. in Computer Engineering from the University of Applied Sciences in Frankfurt, Germany and a MBA degree in General Management from the Helsinki School of Economics and Business Administration, Finland.</text>
    </revision>
  </page>
  <page>
    <title>User:Peterschneider/community overview</title>
    <id>233</id>
    <revision>
      <id>2348</id>
      <timestamp>2008-06-22T21:19:18Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <minor/>
      <comment>/* The Maemo Community */</comment>
      <text xml:space="preserve">== The Maemo Community ==

The Maemo community is made by contributors interested in all kinds of collaboration around Maemo software. Here you will find developers working openly on the Maemo platform and compatible applications, as well as users with different levels of experience and expertise. Maemo community is a non-profit organization sponsored by Nokia, which is an active and equal member.  

By end of May 2008, the Maemo community included over 12.000 registered members, more than 600 projects in the Maemo garage, and over 200 applications available for download. Anybody can join the Maemo community, contribute to the work, and provide transparent feedback. All members should be equal independent from their profit or non-profit background. Signing up to the community is as easy as registering to maemo.org.

[[Image:Maemo_contact_icon.png]]

The home of the community is maemo.org. Announcements, news, views, and ideas of the community are aggregated and rated . The Maemo community meets at least once a year in the Maemo Summit (starting in 2008) and also in open source-related events such as GUADEC, LinuxTag, and Open Source in Mobile (OSIM).

Work on the Maemo platform is not exclusively happening through projects in the Maemo garage. In fact, most of the actual source code of the Maemo platform is created in open source projects such as the Linux kernel, GStreamer, Telepathy, GNOME or Mozilla. Therefore, members of the Maemo community are also contributors in other open source projects.</text>
    </revision>
  </page>
  <page>
    <title>User:Peterschneider/develop overview</title>
    <id>298</id>
    <revision>
      <id>2482</id>
      <timestamp>2008-06-23T11:07:28Z</timestamp>
      <contributor>
        <username>peterschneider</username>
        <id>29</id>
      </contributor>
      <comment>/* Developing Applications */</comment>
      <text xml:space="preserve">== Developing on Maemo Platform ==

Innovation on Maemo platform can be divided into two categories: application development and platform development.

== Developing Applications ==
Developing applications for Maemo is done with the Maemo SDK. The process from creating the first prototype of your application to distributing to a wide audience consists basically of three steps:

* share your application project in the Maemo Garage
* make your application easy to install and put in the Application Catalog
* once your application has a high quality - be promoted on Nokia user site
[[Image:Applicationdevelopment.png]]

The Maemo garage provides hosting services to get contribution to your application project from experienced developers. While your application might be still be in alpha quality, the first technology-savvy people start using your application. Once your application is maturing, achieves beta quality, and is easy to install to a device, then you can post it to the Application Catalog on maemo.org. The Application Catalog does not make it only easy to install applications for less advanced users, but also provides means for users to rate and comment your application providing your valuable feedback to fine tune your application. Nokia selects from the Application Catalog in agreement with the inventor(s) of the application which applications are promoted on Nokia's user site for devices running on the Maemo platform. Applications selected by Nokia have typically a novelty factor, are of high end-user perceived quality, and are fun to use.

Starting to develop applications for Maemo is easy if you are used to programming desktop applications, and fairly simple if you already know about Linux and GTK+. The Maemo SDK is the tool to build applications. Download the Maemo SDK to create, port and test applications using a regular PC that will behave just like a device running Maemo. The Maemo SDK provides all of its development tools inside Scratchbox. As the Scratchbox environment is practically a full GNU/Linux system, it includes the standard GNU/Linux development tools. Debugging is done with tools like GDB, valgrind, ltrace and strace. Performance profiling can be done with tools like htop, oprofile and time and compiling with the GCC toolchain. Some of these tools offer graphical user interfaces which can also be used. Of course this isn’t a comprehensive list of the tools and if the tools shipped with the SDK don’t suit to needs or personal preferences, most utilities can be easily run practically unchanged in Scratchbox.

You will find step-by-step on instructions on how to build your own application in the &quot;How to build application page&quot;. Also tutorials and a complete online training are available on maemo.org. The Maemo Tutorial is a good introduction to development using Scratchbox and debugging tools are described in depth in the Maemo Debugging Guide.

== Improving the Maemo platform ==

Great parts of the Maemo platform are open source code and it is easy to enhance or improve the software stack. The tutorials on maemo.org provide help on how to work with the different open source components of the Maemo platform. Platform development is possible both for enhancements of components developed in open source projects in other communities such as D-Bus and for Maemo-specific components such as the Maemo libraries. Contributions to open source components that are managed through existing open source projects should be shared always to the upstream projects to ensure that your work is consider in future releases of the Maemo platform. Contributions to Maemo-specific software components can also be managed and developed through the Maemo garage.


== Resources available for Maemo developers ==

A wide range of resources are available for developers, mostly on maemo.org, but also from Forum Nokia, the developer organization of Nokia. The following resources summarize the current offering:

* Maemo SDK: The Maemo SDK creates a sandboxed development environment on a GNU/Linux desktop system largely built on the Scratchbox cross-compilation toolkit.
* Maemo.org: Maemo.org website has a lot of different repositories that are meant to be used with standard Debian package installation tools. Documentation include tutorials, API references, manuals and several other guides.
* Maemo online training: Maemo training courses provide an efficient overview of the tools and methodologies needed when developing applications and platform services. 
* Forum Nokia: Consulting and technical service for application development on Maemo.</text>
    </revision>
  </page>
  <page>
    <title>User:Peterschneider/maemo garage</title>
    <id>222</id>
    <revision>
      <id>1461</id>
      <timestamp>2008-06-12T12:20:36Z</timestamp>
      <contributor>
        <username>peterschneider</username>
        <id>29</id>
      </contributor>
      <comment>/* What's happening in the Maemo Garage? */</comment>
      <text xml:space="preserve">== What's happening in the Maemo Garage? ==

The Garage is a place for working on various software projects related to the Maemo platform. There are several hundrets of projects ongoing in the Garage.


For every project in the garage you can find information on:
* what the project is about
* who is working on it
* what the status of the project is
* which bugs have been reported
* the related mailing list
* and of course the source code of the software itself


Anybody can join the Maemo Garage, start working on an existing project, or start opening a new project.


There are two steps in creating a Maemo Garage project. The first step is that you must have a user account within the Garage. The user registration page can be found at the top of the Garage's homepage. The second step after logging in is to create a project.

If you are ready to create your own project then enter the [http://garage.maemo.org Maemo Garage]</text>
    </revision>
  </page>
  <page>
    <title>User:Peterschneider/maemo history</title>
    <id>455</id>
    <revision>
      <id>2427</id>
      <timestamp>2008-06-23T05:09:47Z</timestamp>
      <contributor>
        <username>peterschneider</username>
        <id>29</id>
      </contributor>
      <comment>New page: == Evolution of Maemo ==  A series of Internet Tablets with touch screen have been built until today with the Maemo platform. The first device was the Nokia 770 Internet Tablet that was la...</comment>
      <text xml:space="preserve">== Evolution of Maemo ==

A series of Internet Tablets with touch screen have been built until today with the Maemo platform. The first device was the Nokia 770 Internet Tablet that was launched in November 2005. The Nokia 770 Internet Tablet allowed Internet access over WLAN connection. It had an Opera Internet browser and allowed consumers to stream files, tune in to Internet radio, and play favorite videos and music.

The next device on the Maemo platform was the Nokia N800 Internet Tablet built on Maemo 3 release. It added Skype/VoIP-calls over WLAN and had an integrated camera.

Another step forward was the Nokia N810 using Maemo 4. It has also a full QWERTY keyboard beside the touch screen, a Mozilla technology-based Internet browser, GoogleTalk support, and GPS onboard.

The latest device on the Maemo platform is the Nokia 810 WIMAX Edition on Diablo release, which added WiMAX connectivity to the software.

[[Image:N810wimax.jpg]]

Figure: Latest announced device on the Maemo platform - the Nokia N810 WiMAX Edition</text>
    </revision>
  </page>
  <page>
    <title>User:Peterschneider/maemo software</title>
    <id>235</id>
    <revision>
      <id>2480</id>
      <timestamp>2008-06-23T11:01:26Z</timestamp>
      <contributor>
        <username>peterschneider</username>
        <id>29</id>
      </contributor>
      <comment>/* Maemo Platform */</comment>
      <text xml:space="preserve">== Maemo Platform ==

The Maemo platform is the core software stack that runs on mobile devices such as the Nokia N810. The Maemo platform is built in large parts of open source components. The Maemo SDK provides an open development environment for applications on top of the Maemo platform.

The Maemo platform consists of the software stack from the Linux kernel to the Maemo APIs and the Hildon UI framework. Commercially available devices running on Maemo come with the pre-installed Hildon UI and a set of applications delivered by Nokia. It is possible to develop other UIs on top of the Hildon UI framework. As an example, the Maemo SDK is delivered with a generic UI, the so-called Plankton theme.

[[Image:MaemoArchitecture.png]]

Maemo platform is based on Linux operating system which itself inherits its architecture from the Unix operating system. Linux and other open source projects contributing to the Maemo platform embrace sharing of source code, collaboration and open development model. The Maemo community promotes these values by keeping the Maemo platform wherever feasible open, by sharing source code, and by contributing code directly to the upstream projects.

== Key Components of the Maemo Platform ==

The Maemo platform is based on the Linux operating system kernel. Linux is a monolithic kernel that supports multiple hardware platforms and is able to support a wide range of different kinds of devices from wrist watches to large server systems. Currently all devices running on the Maemo platform have an OMAP chipset, which contain a general-purpose ARM processor and a DSP unit.

The user interface architecture of Maemo 4 is based on GNOME framework, especially the GTK+ widget set. GNOME is a leading application framework for desktop Linux systems. Maemo platform has inherited many central components such as GTK+, the GStreamer multimedia framework, the GConf configuration management, and the XML library. The Maemo platform extends GTK+/GNOME technologies by providing extensions for a mobile desktop.

=== Linux kernel ===

The Linux kernel is the central software component of the system. It provides the hardware abstraction layer for the system devices, memory management, process management, networking services including link and transport layer protocols like TCP/IP, file management including file systems and various other services. Maemo 4 is based on Linux 2.6 operating system.

The ARM/OMAP-based Linux kernel of the Maemo platform implement hardware-specific device and bus drivers on top of the core kernel's virtual services. The device drivers include USB, LCD, WLAN, camera and audio, for instance. The bus drivers include Flash bus, SPI, I2C, and serial bus, for instance.

=== System Libraries ===

Maemo platform is based on the standard GNU C library. For networking, Maemo platform uses a OpenSSL library that provides network security and libcurl that provides the HTTP access for applications.

For hardware abstraction, the Maemo platform provides a Hardware Abstraction Layer (HAL). The HAL provides a shared library that has an API for device objects. A device object has properties and it is up to an actual device driver which properties it supports. HAL is thus capable of loading the right device driver when a new device is detected, creating and maintaining /dev files, tracking the status of devices and providing a means to uses each device.

=== Debian Package Management ===

The package management framework, the file system hierarchy, and general design policies are derived from the Debian distribution.

=== System Services ===

The primary communication channel between applications is DBUS. DBUS also provides a channel for interaction between the system and applications. DBUS is used to invoke all the applications by sending messages.

System Services provide a SQL database (SQLite 3) that can be used to store user application data. SQLite database is accessed through a library interface.

System Services provides also system-wide services to applications and end users. The services include device state management (DSM), mode control (MCE), battery management (BME) and few graphical user interface elements to manage the behavior of the services.

=== Maemo Launcher ===

Maemo Launcher launches all applications on the Maemo platform. It is there to speed up application startup by sharing some of the initialization data of an application startup. Maemo Launcher is composed of two parts: (i) the Maemo-invoker, which is executed by a DBUS daemon or scripts to start the given (application) service, and (ii) Maemo-launcher, a server that has initialized most of the data used by the applications. The Maemo-invoker asks Maemo-launcher to start the actual application.

=== Hildon UI Framework ===

The user interface framework is based on the X Window System having the Matchbox window manager. The API on top of X is the GTK+ widget toolkit with so-called Hildon extensions. GTK+ is the UI framework developed in the GNOME project. The Hildon UI framework provides components on top of the GNOME components to support control panel, status bar, task navigator, and home applets.

=== Maemo SDK ===

The Maemo SDK contains the tools needed to create and port integrated applications, replicating the Maemo platform environment in your PC. Supported Maemo APIs are provided for the C language. The Maemo community also has C++ and Python bindings for the core Maemo APIs.

The cross-compilation environment of the Maemo SDK is based on Scratchbox. Cross-compilation is a problematic issue in Linux systems, since build scripts typically utilize Autotools which have not been designed well for cross-compilation in mind. Thus, many Linux distributors solve the cross-compilation problem by avoiding it, and use dedicated hardware to run native compilations. This is a big limitation since sometimes native hardware build environment is difficult to arrange. And even if it were available builds run typically multiple times slower than in cross-compilation. Scratchbox solves this problem problem by totally isolating the target and host environments. Autotools based build scripts can be run on Scratchbox without modifications to build target platform binaries on a host system having a hardware platform other than the target.</text>
    </revision>
  </page>
  <page>
    <title>User:Pgrodt</title>
    <id>3383</id>
    <revision>
      <id>26415</id>
      <timestamp>2010-01-12T19:39:16Z</timestamp>
      <contributor>
        <username>pgrodt</username>
        <id>1824</id>
      </contributor>
      <comment>created page</comment>
      <text xml:space="preserve">Hello.  I'm a software engineer, Nokia N900 owner, and wiki addict.  I have over 5000 edits on Wikipedia with a heavy focus on cleanup, organization, and policy.</text>
    </revision>
  </page>
  <page>
    <title>User:Pierlux</title>
    <id>1196</id>
    <revision>
      <id>10558</id>
      <timestamp>2009-01-30T11:44:35Z</timestamp>
      <contributor>
        <username>pierlux</username>
        <id>550</id>
      </contributor>
      <comment>Update url</comment>
      <text xml:space="preserve">* #maemo: pierlux
* Real-world: [http://www.pierlux.com/ Pierre-Luc Beaudoin]
* Blog: [http://blog.pierlux.com/ Pierre-Luc Beaudoin]
* maemo.org: [http://maemo.org/profile/view/pierlux/ pierlux]
* garage: [http://garage.maemo.org/users/pierlux/ pierlux]</text>
    </revision>
  </page>
  <page>
    <title>User:Prometoys</title>
    <id>2370</id>
    <revision>
      <id>20150</id>
      <timestamp>2009-10-14T16:41:01Z</timestamp>
      <contributor>
        <username>prometoys</username>
        <id>792</id>
      </contributor>
      <text xml:space="preserve">Keywan Najafi Tonekaboni

see http://www.prometoys.net or google for prometoys resp. keywan :D</text>
    </revision>
  </page>
  <page>
    <title>User:Pycage</title>
    <id>3092</id>
    <revision>
      <id>23481</id>
      <timestamp>2009-11-28T11:33:05Z</timestamp>
      <contributor>
        <username>pycage</username>
        <id>278</id>
      </contributor>
      <comment>New page: See http://maemo.org/profile/view/pycage/</comment>
      <text xml:space="preserve">See http://maemo.org/profile/view/pycage/</text>
    </revision>
  </page>
  <page>
    <title>User:Qgil</title>
    <id>96</id>
    <revision>
      <id>33073</id>
      <timestamp>2010-04-19T14:19:03Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify</comment>
      <text xml:space="preserve">Hi there,

Quim Gil
marketing manager, open source
maemo software @ Nokia

* http://maemo.org/profile/view/qgil.html
* http://flors.wordpress.com/bio/

[[Task:Sprint progress|Sprint progress]]</text>
    </revision>
  </page>
  <page>
    <title>User:Qgil/Sprint progress</title>
    <id>640</id>
    <revision>
      <id>3452</id>
      <timestamp>2008-06-30T13:53:40Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[User:Qgil/Sprint progress]] moved to [[Task:Sprint progress]]: Moving to proper Task location</comment>
      <text xml:space="preserve">#REDIRECT [[Task:Sprint progress]]</text>
    </revision>
  </page>
  <page>
    <title>User:Qole</title>
    <id>765</id>
    <revision>
      <id>35842</id>
      <timestamp>2010-06-15T17:34:46Z</timestamp>
      <contributor>
        <username>qole</username>
        <id>57</id>
      </contributor>
      <comment>/* What Is A Qole? */</comment>
      <text xml:space="preserve">==What Is A Qole?==

[[Image:Qole-n800-by-elia.png]] 

I love my N800 Internet Tablets and N900 &quot;Maemo device&quot;. More than any other computers I've owned since I got my Vic-20.

I was a two-time member of the [[Community_Council|maemo.org Community Council]].

My web page is at [http://qole.org qole.org].

My [http://maemo.org/profile/view/qole maemo.org profile] and my [http://talk.maemo.org/member.php?u=10410 talk.maemo.org profile]

Go put [http://maemo.org/downloads/product/Maemo5/easy-deb-chroot Easy Debian] on your phone or tablet!</text>
    </revision>
  </page>
  <page>
    <title>User:Qwerty12</title>
    <id>2917</id>
    <revision>
      <id>25126</id>
      <timestamp>2009-12-27T23:25:57Z</timestamp>
      <contributor>
        <username>qwerty12</username>
        <id>59</id>
      </contributor>
      <minor/>
      <comment>Sound less drunk.</comment>
      <text xml:space="preserve">=== Faheem Pervez ===

&lt;br&gt; ''Um, yeah. Not much here...''

* maemo.org profile page: [http://maemo.org/profile/view/qwerty12/ qwerty12]
* talk.maemo.org profile page: [http://maemo.org/profile/view/qwerty12/ qwerty12]
* Garage user page: [https://garage.maemo.org/users/qwerty12/ qwerty12]
* Bugzilla: [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailreporter1=1&amp;emailqa_contact1=1&amp;emailcc1=1&amp;emaillongdesc1=1&amp;emailtype1=exact&amp;email1=trippin1%40gmail.com&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Bug+Number&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= Faheem Pervez]

You was able to [http://mg.pov.lt/maemo-irclog/search?q=qwerty12 find] me on the FreeNode IRC network, in the #maemo channel, under the nickname of qwerty12. But not anymore.

You can find programs I've written and programs I've ported in Extras-devel (provided they are not already in Extras).</text>
    </revision>
  </page>
  <page>
    <title>User:R2d2rogers/Sandbox/Mer/770Notes</title>
    <id>1508</id>
    <revision>
      <id>10487</id>
      <timestamp>2009-01-28T04:36:59Z</timestamp>
      <contributor>
        <username>r2d2rogers</username>
        <id>350</id>
      </contributor>
      <text xml:space="preserve">Xorg Synaptic input Driver conflicts with tslib touchscreen driver. 
sudo dpkg -P xserver-xorg-input-all xserver-xorg-input-synaptics

Install notes for Mer on 770


Partition MMC to:
 Large ext3 partition first
 256 MB swap partition second


 http://packages.tspre.org/pool/user/b/bootmenu/bootmenu_1.2-1_armel.deb
 wget http://repository.maemo.org/pool/gregale/free/b/binutils/binutils_2.16.   91cs2005q3.2-5.osso1_armel.deb
 dpkg -i binutils_2.16.91cs2005q3.2-5.osso1_armel.deb
 wget http://ftp.dk.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.  10_all.deb
 dpkg -i debootstrap_1.0.10_all.deb
 insmod /mnt/initfs/lib/modules/current/mbcache.ko
 insmod /mnt/initfs/lib/modules/current/jbd.ko
 insmod /mnt/initfs/lib/modules/current/ext3.ko
 mkfs.ext3 /dev/mmcblk0p1
 mkswap /dev/mmcblk0p2 
 swapon /dev/mmcblk0p2
 mkdir -p /mnt/mer
 mount -t ext3 /dev/mmcblk0p1 /mnt/mer
 wget http://trac.tspre.org/svn/deblet/trunk/packages/installer/deblet-installer/usr/libexec/deblet/md5sum
 cp md5sum /bin
 chmod a+x /bin/md5sum
 copy imager check out from lp:~mer-committers/m-r/imager to /root
 cd imager
 chmod u+x imager
 ./imager targets/mer-770-fs-only /mnt/mer</text>
    </revision>
  </page>
  <page>
    <title>User:R2d2rogers/ToDo</title>
    <id>1509</id>
    <revision>
      <id>10203</id>
      <timestamp>2009-01-23T20:26:22Z</timestamp>
      <contributor>
        <username>r2d2rogers</username>
        <id>350</id>
      </contributor>
      <comment>Tasks listed</comment>
      <text xml:space="preserve">
20090114 08:46:17 [ Stskeeps] r2d2rogers: added to builder, use #merbuilder on
                              jaiku, build sourcepackage=packageversion
20090114 08:47:35 [ r2d2rogers] Stskeeps: thanks'
20090114 08:47:58 [ Stskeeps] bzr export lp-path packagename; cd packagename;
                              dpkg-buildpackage -S -us -uc; upload .tar.gz,
                              .dsc, .changes to trac.tspre.org:~/incoming , ssh
                              trac.tspre.org /import-new-changes, and then
                              build on jaiku

cx3110x compile.
20090122 10:02:47 [ qwerty12] r2d2rogers, if you get symbol errors when
                              compiling, apply http://pastebin.com/d7d5370b0 
                              to the source, put umac.ko in the top-level 
                              Makefile and edit the Makefile to change 
                              /scratchbox/users/faheem/... to your current 
                              kernel source</text>
    </revision>
  </page>
  <page>
    <title>User:Rajeshlal</title>
    <id>2355</id>
    <revision>
      <id>17081</id>
      <timestamp>2009-08-31T04:46:30Z</timestamp>
      <contributor>
        <username>rajeshlal</username>
        <id>1061</id>
      </contributor>
      <comment>About the Author</comment>
      <text xml:space="preserve">
Rajesh lal is a Nokia Research Engineer, Author, Technology Evangelist, and a Developer based in Mountain View, California. He has been involved in Widget development for last 5 years and have authored two books on Gadgets, and Widgets, namely Professional Web Widgets by Wrox Publications and Creating Vista Gadgets from Sams Publication. Rajesh also holds a Master's degree in Computer Science, a Code Project MVP and is an Active member of ACM, with experience in a variety of Mobile devices, namely Sony Mylo, Window's Mobile, Apple's Iphone, and Maemo devices.</text>
    </revision>
  </page>
  <page>
    <title>User:Rasmus</title>
    <id>3078</id>
    <revision>
      <id>29509</id>
      <timestamp>2010-02-13T14:30:59Z</timestamp>
      <contributor>
        <ip>95.166.99.83</ip>
      </contributor>
      <text xml:space="preserve">unfinished notes below,
non-user-specific parts to be merged with general pages when more complete.
= Configuration checklist  =
* danish keyboard (english language)
* uninstall amazon, ap news, documents to go, facebook, foreca, tutorial
* install openssh server/client
* repartion, restore backups
* increase number of ptys: edit /etc/init.d/rcS  ( /proc/sys/kernel/pty/max )
* restrict trackerd - /home/user/.config/tracker/tracker.cfg followed by tracker-processes --hard-reset
* &lt;tt&gt;ln /usr/bin/vi /bin/vi&lt;/tt&gt;  - needed for visudo to work
* visudo ( user ALL = NOPASSWD: ALL )


== Repartitioning ==
Done via sfdisk, ie.:
&lt;pre&gt;
sfdisk &gt; parttable
vi parttable
sfdisk --force &lt; parttable
&lt;/pre&gt;
see http://linux.die.net/man/8/sfdisk

Use &lt;tt&gt;mkfs&lt;/tt&gt;.* as usual.

Nokia autogenerates &lt;tt&gt;/etc/fstab&lt;/tt&gt;, so edit
&lt;tt&gt;/etc/event.d/rcS-late&lt;/tt&gt;, or make the partitioning conform to that one.


==== Default setup ====
&lt;pre&gt;
Disk /dev/mmcblk0: 977024 cylinders, 4 heads, 16 sectors/track
Units = cylinders of 32768 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/mmcblk0p1          1  884864  884864   28315648    c  W95 FAT32 (LBA)
/dev/mmcblk0p2     884865  950400   65536    2097152   83  Linux
/dev/mmcblk0p3     950401  974976   24576     786432   82  Linux swap / Solaris
/dev/mmcblk0p4          0       -       0          0    0  Empty
&lt;/pre&gt;

sfdisk parttable
&lt;pre&gt;
# partition table of /dev/mmcblk0
unit: sectors

/dev/mmcblk0p1 : start=       64, size= 56631296, Id= c
/dev/mmcblk0p2 : start= 56631360, size=  4194304, Id=83
/dev/mmcblk0p3 : start= 60825664, size=  1572864, Id=82
/dev/mmcblk0p4 : start=        0, size=        0, Id= 0
&lt;/pre&gt;

== Setup openvpn ==
  apt-get install openvpn
  update-rc.d -f openvpn remove
extract keys in /etc/openvpn and add 
  172.17.20.31 plan
  172.16.4.25 rje
to hosts

== Files in default homedir == 
&lt;pre&gt;
.                            .cache                       .gnome2                      .maemosec-secure             .osso                        .pulse-cookie
..                           .calendar                    .gstreamer-0.10              .maesync                     .osso-abook                  .rtcom-accounts
.backgrounds                 .clock                       .hildon-application-manager  .mafw.db                     .osso-cud-scripts            .rtcom-eventlogger
.bookmarks                   .clockd.conf                 .intellisyncd                .modest                      .osso_rss_feed_reader        .ssh
.browser                     .config                      .local                       .mozilla                     .profiled                    .thumbnails
.browser_typed_urls          .dbus                        .maemosec-certs              .obex-root                   .pulse                       MyDocs
&lt;/pre&gt;
= Remote access =
keepalive:
&lt;pre&gt;
sudo ping -f -s 0.1  address
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Redatim</title>
    <id>4363</id>
    <revision>
      <id>37197</id>
      <timestamp>2010-07-21T23:25:20Z</timestamp>
      <contributor>
        <username>redatim</username>
        <id>1617</id>
      </contributor>
      <comment>/* Raw Kernel Commands */</comment>
      <text xml:space="preserve">== Raw Kernel Commands ==

'''Get the internal kernel size:'''
 xxd -ps -s 2092 -l 4 /dev/mtd3 | sed 's/\(..\)\(..\)\(..\)\(..\)/0x\4\3\2\1/'

'''Dump the internal kernel:'''
 dd if=/dev/mtd3 of=vmlinuz-`uname -r` bs=1 skip=2048 count=$((`xxd -ps -s 2092 -l 4 /dev/mtd3ro | sed 's/\(..\)\(..\)\(..\)\(..\)/0x\4\3\2\1/'`))

'''Reflash a dumped kernel:'''
 dd if=vmlinuz-xxx of=/dev/mtd3 bs=2048 seek=1</text>
    </revision>
  </page>
  <page>
    <title>User:Rfrvbc</title>
    <id>4315</id>
    <revision>
      <id>36515</id>
      <timestamp>2010-07-07T22:23:39Z</timestamp>
      <contributor>
        <username>rfrvbc</username>
        <id>3100</id>
      </contributor>
      <comment>on the aire?</comment>
      <text xml:space="preserve">[http://www.rfrvbc.twitter.com rfrvbc go twitter go ]



--[[User:rfrvbc|lesxejets]] 22:20, 7 July 2010 (UTC) radiofree riverview broadcasting corps</text>
    </revision>
  </page>
  <page>
    <title>User:Riussi</title>
    <id>2635</id>
    <revision>
      <id>19609</id>
      <timestamp>2009-10-07T14:44:31Z</timestamp>
      <contributor>
        <username>riussi</username>
        <id>1120</id>
      </contributor>
      <minor/>
      <comment>New page: Mobile SW professional working at [http://www.futurice.com/ Futurice] in Tampere, Finland.  Maemo-enthusiast since the beginning.  Maemo devices: N770, N810, soon N900</comment>
      <text xml:space="preserve">Mobile SW professional working at [http://www.futurice.com/ Futurice] in Tampere, Finland.

Maemo-enthusiast since the beginning.

Maemo devices: N770, N810, soon N900</text>
    </revision>
  </page>
  <page>
    <title>User:Rlinfati</title>
    <id>3316</id>
    <revision>
      <id>33877</id>
      <timestamp>2010-05-05T08:57:01Z</timestamp>
      <contributor>
        <username>rlinfati</username>
        <id>1473</id>
      </contributor>
      <comment>Undo revision 33876 by [[Special:Contributions/rlinfati|rlinfati]] ([[User talk:rlinfati|Talk]])</comment>
      <text xml:space="preserve">'''[http://maemo.org/profile/view/rlinfati/ Rodrigo Linfati]'''

Articles:

[[Mapdata]]

[[Microemulator]]</text>
    </revision>
  </page>
  <page>
    <title>User:Robbiethe1st</title>
    <id>4356</id>
    <revision>
      <id>37060</id>
      <timestamp>2010-07-20T00:25:18Z</timestamp>
      <contributor>
        <ip>174.31.32.209</ip>
      </contributor>
      <comment>/* BackupMenu for N900/Maemo 5 */</comment>
      <text xml:space="preserve">==BackupMenu for N900/Maemo 5==

My current project, BackupMenu is a bootloader-based application that allows you to backup &amp; restore images of your RootFS and OptFS, so you can entirely restore your N900 if you brick it - without starting from scratch.

Currently, to install:
# Install &quot;[http://maemo.org/packages/view/bootmenu-n900/ bootmenu-n900]&quot; from the &quot;extras-devel&quot; repository
# Download [http://robbiethe1st.afraid.org/BackupMenu/BackupMenu.item BackupMenu.item]
# Copy the file to the &quot;/etc/bootloader.d/&quot; directory(requires root access)

To run:
# Reboot with keyboard slide out.

===Forum Topic===
http://talk.maemo.org/showthread.php?p=754837#post754837

===Current Status===
Mainly working, just finding bugs and fixing them.
Beta testers needed.

===Known Bugs===

Potential rootFS restore issue:
If, after restoring, the device is &quot;bricked&quot; or doesn't work correctly:
1. Flash the default PR1.2 image to the device
2. Using the flasher utility, flash your backup rootfs image(-r option).
Not sure why this works, but it seems to solve all manner of problems.</text>
    </revision>
  </page>
  <page>
    <title>User:Rolfok</title>
    <id>3220</id>
    <revision>
      <id>45557</id>
      <timestamp>2011-10-12T11:03:43Z</timestamp>
      <contributor>
        <username>rolfok</username>
        <id>1657</id>
      </contributor>
      <comment>/* Notizen von Rolfok */</comment>
      <text xml:space="preserve">= Notizen von Rolfok =

N900 arrived 22.01.2010

----

 Remapped keyboard (ä ö ü and pipe (bar))
 /usr/share/X11/xkb/symbols/nokia_vndr/rx-51
 http://wiki.maemo.org/Remapping_keyboard

 ssh-keygen

 apt-get install wget

 cd /usr/share/sounds
 mv camera_snd_title_1.wav camera_snd_title_1.ori.wav
 mv camera_snd_title_2.wav camera_snd_title_2.ori.wav
 mv camera_snd_title_3.wav camera_snd_title_3.ori.wav
 http://talk.maemo.org/showthread.php?p=462484#post462484

 http://wiki.maemo.org/MMS
 fMMS: http://talk.maemo.org/showthread.php?t=39737

 Fremantle tools repository
 http://wiki.maemo.org/Documentation/devtools/maemo5
 apt-get install less nano netcat

 old zip/unzip tools (?)
 https://garage.maemo.org/projects/zip-unzip/

 http://wiki.maemo.org/Accelerometers
 watch &quot;/sys/class/i2c-adapter/i2c-3/3-001d/coord&quot;

----

N900 #2 arrived 23.02.2011

----

N9 bought 11.10.2011

----


== PirateBox ==


addition to [http://wiki.maemo.org/Maemo_PirateBox]

to avoid &quot;Address already in use&quot; I added after &quot;...down&quot; line the following:

  iwconfig $IFACE mode ad-hoc

Then I replaced all numbers 23 by 1 in the script: makes shorter addresses, less typing...

'''Instructions''' (this was tested with two N900, one as client, the other as server, then order reversed)

1) after starting the script as root, check in another terminal as root with ifconfig that at wlan0 the address 1.1.1.1 was assigned.

2) on client machine, connect to the ad-hoc network. On server side, this will be displayed by DHCP messages in the terminal. On client, check with ifconfig as root that an address like 1.1.1.x was assigned.

3) check that ping works to the other host (1.1.1.1 resp. 1.1.1.x)

4) on server, start mini webserver (no root rights needed): python -m SimpleHTTPServer 1111

5) on client, open browser and enter 1.1.1.1:1111

6) the contents of the remote host will be displayed


Bonus: The above allows downloading from server. For uploading, use the script woof.py ([http://www.home.unix-ag.org/simon/woof.html]) instead of SimpleHTTPServer:

  ./woof.py -i 1.1.1.1 -p 1111 -U</text>
    </revision>
  </page>
  <page>
    <title>User:Rolfok</title>
    <id>3220</id>
    <revision>
      <id>45557</id>
      <timestamp>2011-10-12T11:03:43Z</timestamp>
      <contributor>
        <username>rolfok</username>
        <id>1657</id>
      </contributor>
      <comment>/* Notizen von Rolfok */</comment>
      <text xml:space="preserve">= Notizen von Rolfok =

N900 arrived 22.01.2010

----

 Remapped keyboard (ä ö ü and pipe (bar))
 /usr/share/X11/xkb/symbols/nokia_vndr/rx-51
 http://wiki.maemo.org/Remapping_keyboard

 ssh-keygen

 apt-get install wget

 cd /usr/share/sounds
 mv camera_snd_title_1.wav camera_snd_title_1.ori.wav
 mv camera_snd_title_2.wav camera_snd_title_2.ori.wav
 mv camera_snd_title_3.wav camera_snd_title_3.ori.wav
 http://talk.maemo.org/showthread.php?p=462484#post462484

 http://wiki.maemo.org/MMS
 fMMS: http://talk.maemo.org/showthread.php?t=39737

 Fremantle tools repository
 http://wiki.maemo.org/Documentation/devtools/maemo5
 apt-get install less nano netcat

 old zip/unzip tools (?)
 https://garage.maemo.org/projects/zip-unzip/

 http://wiki.maemo.org/Accelerometers
 watch &quot;/sys/class/i2c-adapter/i2c-3/3-001d/coord&quot;

----

N900 #2 arrived 23.02.2011

----

N9 bought 11.10.2011

----


== PirateBox ==


addition to [http://wiki.maemo.org/Maemo_PirateBox]

to avoid &quot;Address already in use&quot; I added after &quot;...down&quot; line the following:

  iwconfig $IFACE mode ad-hoc

Then I replaced all numbers 23 by 1 in the script: makes shorter addresses, less typing...

'''Instructions''' (this was tested with two N900, one as client, the other as server, then order reversed)

1) after starting the script as root, check in another terminal as root with ifconfig that at wlan0 the address 1.1.1.1 was assigned.

2) on client machine, connect to the ad-hoc network. On server side, this will be displayed by DHCP messages in the terminal. On client, check with ifconfig as root that an address like 1.1.1.x was assigned.

3) check that ping works to the other host (1.1.1.1 resp. 1.1.1.x)

4) on server, start mini webserver (no root rights needed): python -m SimpleHTTPServer 1111

5) on client, open browser and enter 1.1.1.1:1111

6) the contents of the remote host will be displayed


Bonus: The above allows downloading from server. For uploading, use the script woof.py ([http://www.home.unix-ag.org/simon/woof.html]) instead of SimpleHTTPServer:

  ./woof.py -i 1.1.1.1 -p 1111 -U</text>
    </revision>
  </page>
  <page>
    <title>User:Rsperberg</title>
    <id>653</id>
    <revision>
      <id>3553</id>
      <timestamp>2008-06-30T21:54:56Z</timestamp>
      <contributor>
        <username>rsperberg</username>
        <id>93</id>
      </contributor>
      <comment>New page: Internet Tablet User blogger since October 2005. Email: firstinitial lastname at gmail or at [http://internettablettalk.com/ Internet Tablet Talk].</comment>
      <text xml:space="preserve">Internet Tablet User blogger since October 2005. Email: firstinitial lastname at gmail or at [http://internettablettalk.com/ Internet Tablet Talk].</text>
    </revision>
  </page>
  <page>
    <title>User:Ruskie</title>
    <id>3283</id>
    <revision>
      <id>38323</id>
      <timestamp>2010-09-06T09:58:02Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Repartitioning */ use &lt;source&gt; and &lt;pre&gt;</comment>
      <text xml:space="preserve">= About me =
Sometime

= My repos =

 non-optified repo: deb https://repo.codemages.net/ nonopt/
 optified repo: deb https://repo.codemages.net/ opt/

What do the repos contain?
* zsh - just don't set it as your default shell
* xmms2 with wavpack, mpg123, mpcdec, ogg, flac, etc... support - also updated to not start at max loud
* fcron - requires some manual work after the install(I'll try to give it an event.d script and do that stuff after the fact but not just yet)
* gcoreutils and gtar
* rsyslog
* curl
* djmount
* tinc
* xset and xrdb

 create a fcron user
 chown fcron:fcron /etc/fcron.*
 chown -R fcron:fcron /var/spool/fcron
 
 Then edit /etc/event.d/rcS-late
 
 And after initctl emit MOUNTS_OK
 
 put:
 /etc/init.d/fcron start

= Repartitioning =
Here is what I did to repartition:
http://talk.maemo.org/showpost.php?p=411490&amp;postcount=51

Copied from the post by request:


&lt;source lang=&quot;bash&quot;&gt;
#!/bin/bash

echo &quot;Not for running only REFERENCE!!!&quot;
exit

### THIS ALL APPLIES TO ALL PR 1.0 PR 1.0.1 PR 1.1 ###

# backup your user
mount /dev/mmcblk1p1 /media/mmc1
cp -a /home/user /media/mmc1/

# partitioning
sfdisk -uM --no-reread /dev/mmcblk0 &lt;&lt; FDSK
0 2048 c
2049 20544 83
22593 768 82
23361 7170 5
23362 2048 83
25410 5120 83

FDSK

# REBOOT

# do this sometime
mkfs.ext2 /dev/mmcblk0p5
mkfs.ext2 /dev/mmcblk0p2
mkfs.ext2 /dev/mmcblk0p6
mkfs.vfat /dev/mmcblk0p1
mkswap /dev/mmcblk0p3

# change /etc/event.d/rcS-late
# comment out generation of fstab
# the following sed command will add a comment character &quot;#&quot;
# at the start of lines 10-20 
sed &quot;10,20s:\(.*\):#\1:&quot; /etc/event.d/rcS-late &gt; /etc/event.d/rcS-late.new
cp /etc/event.d/rcS-late.new /etc/event.d/rcS-late

# add mount /home/user/MyDocs
# this sed command inserts /bin/mount /home/user/MyDocs || echo 'Failed to mount' on line 23
sed &quot;23i/bin/mount /home/user/MyDocs || echo 'Failed to mount /home/user/MyDocs partition.'&quot; /etc/event.d/rcS-late &gt; /etc/event.d/rcS-late.new
cp /etc/event.d/rcS-late.new /etc/event.d/rcS-late
rm /etc/event.d/rcS-late.new
# change /etc/init.d/rcS
# this sed command starts on line 197 and if it finds: load_extra_module
# it will replace it with: load_extra_module newline and a mount for usr and opt
sed &quot;197s:load_extra_modules:load_extra_modules\nmount /usr || echo 'Failed to mount /usr'\nmount /opt || echo 'Failed to mount /opt':&quot; /etc/init.d/rcS &gt; /etc/init.d/rcS.new
cp /etc/init.d/rcS.new /etc/init.d/rcS
rm /etc/init.d/rcS.new
# fstab
cat &lt;&lt; FSTAB &gt; /etc/fstab
rootfs / rootfs defaults,errors=remount-ro,noatime 0 0
/dev/mmcblk0p6 /usr ext2 rw,noatime,nodiratime,errors=continue 0 0
/dev/mmcblk0p5 /opt ext2 rw,noatime,nodiratime,errors=continue 0 0
/dev/mmcblk0p3 none swap sw 0 0
/dev/mmcblk0p2 /home ext2 rw,noatime,nodiratime,errors=continue 0 0
/dev/mmcblk0p1 /home/user/MyDocs vfat noauto,nodev,noexec,nosuid,noatime,nodiratime,utf8,uid=29999,shortname=mixed,dmask=000,fmask=0133,rodir 0 0

FSTAB
mkdir /usra
mount /dev/mmcblk0p6 /usra
cp -a /usr/* /usra/
mount /home
mount /home/user/MyDocs
mount /dev/mmcblk1p1 /media/mmc1
cp -a /media/mmc1/user /home/

mkdir /tmproot
mount -o bind / /tmproot
&lt;/source&gt;

Output of df -h
&lt;pre&gt;
Filesystem                Size      Used Available Use% Mounted on
rootfs                  227.8M    142.0M     81.6M  64% /
/dev/mmcblk0p6            4.9G    293.1M      4.4G   6% /usr
/dev/mmcblk0p5            2.0G    198.1M      1.7G  10% /opt
/dev/mmcblk0p2           19.7G      1.2G     17.5G   6% /home
/dev/mmcblk0p1            2.0G    287.4M      1.7G  14% /home/user/MyDocs
&lt;/pre&gt;

= Setting profile from the terminal =
The reason for fcron in my case was that I wanted the ability to have it set a specific profile at a specific time. This is the script that does this:
cat /home/user/setprofile.sh 
 #!/bin/sh
 profile=$1
 
 dbus-send \
            --print-reply \
            --type=method_call \
            --dest=com.nokia.profiled \
            /com/nokia/profiled com.nokia.profiled.set_profile \
            string:$profile &gt; /dev/null
 echo &quot;$(date +%Y-%m-%dT%H:%M) Set profile to $profile&quot; &gt; /tmp/setprofile.sh.log

= My remove list =
Stuff I removed by default

 adobe-flashplayer
 amazon-installer
 ap-installer
 as-config-applet-0
 as-daemon-0
 camel-as-provider-0
 camelisync
 ezitext-czech
 ezitext-danish
 ezitext-dutch
 ezitext-english-gb
 ezitext-english-us
 ezitext-essential-plugins
 ezitext-finnish
 ezitext-french-ca
 ezitext-french-fr
 ezitext-german
 ezitext-greek
 ezitext-italian
 ezitext-norwegian
 ezitext-polish
 ezitext-portuguese-pt
 ezitext-russian
 ezitext-spanish-es
 ezitext-spanish-us
 ezitext-swedish
 facebook-installer
 foreca-installer
 google-search-widget
 hildon-welcome
 hildon-welcome-default-logo
 libas-common-utils-0
 libas-protocol-0
 libas-storage-0
 libezitext
 libtinymail-1.0-0
 libtinymail-camel-1.0-0
 libtinymail-gnomevfs-1.0-0
 libtinymail-maemo-1.0-0
 libtinymailui-1.0-0
 libtinymailui-gtk-1.0-0
 modest
 modest-as-plugin-0
 modest-l10n-cscz 
 modest-l10n-dadk 
 modest-l10n-dede
 modest-l10n-engb
 modest-l10n-enus
 modest-l10n-eses
 modest-l10n-esmx
 modest-l10n-fifi
 modest-l10n-frca
 modest-l10n-frfr
 modest-l10n-itit
 modest-l10n-mr0
 modest-l10n-nlnl
 modest-l10n-nono
 modest-l10n-plpl
 modest-l10n-ptpt
 modest-l10n-ruru
 modest-l10n-svse
 modest-nokiamessaging-plugin-l10n-cscz
 modest-nokiamessaging-plugin-l10n-dadk
 modest-nokiamessaging-plugin-l10n-dede
 modest-nokiamessaging-plugin-l10n-engb
 modest-nokiamessaging-plugin-l10n-enus
 modest-nokiamessaging-plugin-l10n-eses
 modest-nokiamessaging-plugin-l10n-esmx
 modest-nokiamessaging-plugin-l10n-fifi
 modest-nokiamessaging-plugin-l10n-frca
 modest-nokiamessaging-plugin-l10n-frfr
 modest-nokiamessaging-plugin-l10n-itit
 modest-nokiamessaging-plugin-l10n-mr0
 modest-nokiamessaging-plugin-l10n-nlnl
 modest-nokiamessaging-plugin-l10n-nono
 modest-nokiamessaging-plugin-l10n-plpl
 modest-nokiamessaging-plugin-l10n-ptpt
 modest-nokiamessaging-plugin-l10n-ruru
 modest-nokiamessaging-plugin-l10n-svse
 modest-providers-data
 nokiamessaging
 osso-startup-wizard
 osso-tutorial-l10n-cscz
 osso-tutorial-l10n-dadk
 osso-tutorial-l10n-dede
 osso-tutorial-l10n-engb
 osso-tutorial-l10n-enus
 osso-tutorial-l10n-eses
 osso-tutorial-l10n-esmx
 osso-tutorial-l10n-fifi
 osso-tutorial-l10n-frca
 osso-tutorial-l10n-frfr
 osso-tutorial-l10n-itit
 osso-tutorial-l10n-mr0
 osso-tutorial-l10n-nlnl
 osso-tutorial-l10n-nono
 osso-tutorial-l10n-plpl
 osso-tutorial-l10n-ptpt
 osso-tutorial-l10n-ruru
 osso-tutorial-l10n-svse
 ovi-promotion-widget
 rtcom-accounts-plugin-gtalk
 rtcom-accounts-plugin-nokiachat
 sharing-rtcom
 sharing-service-flickr
 sharing-service-ovi
 skyhost-bin
 skyhost-vengine
 status-area-applet-activesync-0
 telepathy-spirit
 tutorial-home-applet
 dtg-installer
 osso-accounts-plugin-skype
 rtcom-abook-skype-plugin
 hildon-desktop-application-shortcuts-mr0

You can check what any of these are with: apt-cache show name


= Bootmenu =

The following is my setup for /bootmenu.sh

It is still a work in progress and requires FBCON to be actually usable.

 umask 022
 PATH=/sbin:/bin:/usr/sbin:/usr/bin
 MODULES=&quot;twl4030-vibra
 dspbridge
 iommu2
 omap3-iommu
 omap34xxcam-mod
 omap_previewer_hack
 board-rx51-camera
 et8ek8
 ad5820
 adp1653
 vs6555
 uinput&quot;
 
 if [ -L /var/run ]
 then
 	rm -f /var/run
 	mkdir /var/run
 fi
 
 mount -n -t proc proc /proc
 mount -n -t sysfs sysfs /sys
 mount -n -t tmpfs -o size=1M,noatime tmpfs /tmp
 mount -n -t tmpfs -o size=256k,mode=0755,nosuid,noatime tmpfs /var/run
 
 
 mount_devpts() {
 	TTYGRP=5
 	TTYMODE=620
 
 	if [ ! -d /dev/pts ]
 	then
 	    mkdir /dev/pts
 	fi
 
 	if [ ! -c /dev/ptmx ]
 	then
 	    mknod /dev/ptmx c 5 2
 		chmod 666 /dev/ptmx
 	fi
 
 	mount -n -t devpts -ogid=$TTYGRP,mode=$TTYMODE devpts /dev/pts
 	rm -rf /var/tmp/*
 }
 
 # I hate this hack.  -- Md
 make_extra_nodes () {
     if [ &quot;$(echo /lib/udev/devices/*)&quot; != &quot;/lib/udev/devices/*&quot; ]; then
 	cp -a /lib/udev/devices/* /dev/
     fi
   grep '^[^#]' /etc/udev/links.conf | \
   while read type name arg1; do
     [ &quot;$type&quot; -a &quot;$name&quot; -a ! -e &quot;/dev/$name&quot; -a ! -L &quot;/dev/$name&quot; ] ||continue
     case &quot;$type&quot; in
     L)
       ln -s $arg1 /dev/$name
       ;;
     D)
       mkdir -p /dev/$name
       ;;
     M)
       mknod /dev/$name $arg1 &amp;&amp; chmod 600 /dev/$name
       ;;
     *)
       echo &quot;unparseable line ($type $name $arg1)&quot;
       ;;
     esac
   done
 }
 
 load_extra_modules () {
     echo -n &quot;Loading extra modules...&quot;
     for i in $MODULES; do
 	echo &quot;Loading $i&quot;
 	modprobe -q $i ||:
     done
     echo &quot;done.&quot;
 }
 
 # Mount home and paging partitions if they are available
 mount_mmc(){
    device=$1
    swap=$device&quot;p1&quot;
    home=$device&quot;p2&quot;
    test=$device&quot;p3&quot;
 
    if [ -e $test ]
    then
       echo &quot;Mounting partition $swap for paging&quot;
       # swap disabled as a workaround for Xorg bug, per NB#111807.
       swapon $swap
       modprobe ext3
       echo &quot;Mounting partition $home as home directory&quot;
       mount -t ext3 -o noatime,commit=1,data=writeback $home /home
    else
       echo &quot;No paging partition available as $swap&quot;
       echo &quot;No home partition available as $home&quot;
    fi
 }
 
 prepare_start_udev()
 {
 	. /etc/udev/udev.conf
 
 	if [ -z &quot;$tmpfs_size&quot; ]; then
 		tmpfs_size=&quot;1M&quot;
 	fi
 
 	ACTION=add
 	echo -n &quot;Mounting a tmpfs over /dev...&quot;
 	mount -n -o size=$tmpfs_size,mode=0755,noatime -t tmpfs none /dev
 	echo &quot;done.&quot;
 	mkdir -p /dev/.udev/db /dev/.udev/queue
 	echo &quot;&quot; &gt; /sys/kernel/uevent_helper
 	echo -n &quot;Creating extra device nodes... &quot;
 	make_extra_nodes
 	echo &quot;done.&quot;
 }
 
 start_udev()
 {
     	prepare_start_udev
 	/sbin/udevd --daemon
 }
 
 make_nodes()
 {
 	echo -n &quot;Creating device nodes... &quot;
 
 	if [ -x /sbin/udevtrigger ]; then
 		/sbin/udevtrigger
 	else
 		/sbin/udevadm trigger
 		#wait for all events
 		/sbin/udevadm settle
 	fi
 	echo &quot;done.&quot;
 }
 
 	start_udev
 	make_nodes
 	load_extra_modules
 export BOOTSTATE=LOCAL
 touch /tmp/$BOOTSTATE
 echo $BOOTSTATE &gt; /tmp/STATE
 source /etc/resource_limits.conf
 echo &quot;About to exec dsme in state '$BOOTSTATE'.&quot;
 /sbin/dsme -p /usr/lib/dsme/libstartup.so &amp;
 e2fsck -vvv -f /dev/mmcblk0p1
 e2fsck -vvv -f /dev/mmcblk0p2
 e2fsck -vvv -f /dev/mmcblk0p5
 e2fsck -vvv -f /dev/mmcblk0p6
 mount /usr/local || echo 'Failed to mount /usr/local'
 mount /opt || echo 'Failed to mount /opt'
 
 mount_devpts
 mount -n -o size=64M,nosuid,nodev,noatime -t tmpfs tmpfs /dev/shm
 
 /sbin/hwclock -s || true
 
 
 hostname -F /etc/hostname
 ifup lo &amp;
 ifup usb0 &amp;
 
 echo 0 &gt; /proc/sys/net/ipv4/conf/default/accept_redirects
 echo 1 &gt; /proc/sys/net/ipv4/conf/all/rp_filter
 echo 1 &gt; /proc/sys/net/ipv4/conf/default/rp_filter
 echo 1 &gt; /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
 echo 1 &gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
 echo &quot;49152 65535&quot; &gt; /proc/sys/net/ipv4/ip_local_port_range
 echo 6000 &gt; /sys/class/bluetooth/hci0/idle_timeout
 
 # adjust other kernel parameters to minimize memory consumption
 # and optimize IO pressure
 echo 8 &gt; /proc/sys/kernel/pty/max
 echo 1024 &gt; /proc/sys/kernel/threads-max
 echo 8192 &gt; /proc/sys/fs/file-max
 echo 100 &gt; /proc/sys/vm/swappiness
 echo 5 &gt; /proc/sys/vm/page-cluster
 echo 500 &gt; /proc/sys/vm/dirty_expire_centisecs
 echo 65536 &gt; /proc/sys/net/core/rmem_default
 echo 16384 &gt; /proc/sys/net/core/wmem_default
 
 # Disable sysrq to avoid accidental console-carbage resets.
 echo 0 &gt; /proc/sys/kernel/sysrq
 
 echo &quot;/what/me/worry&quot; &gt; /proc/sys/kernel/core_pattern
 echo 1 &gt; /proc/sys/kernel/panic
 echo 1 &gt; /proc/sys/kernel/panic_on_oops
 
 export BOOTSTATE=LOCAL
 touch /tmp/$BOOTSTATE
 echo $BOOTSTATE &gt; /tmp/STATE
 source /etc/resource_limits.conf
 echo &quot;About to exec dsme in state '$BOOTSTATE'.&quot;
 /sbin/dsme -p /usr/lib/dsme/libstartup.so &amp;
 if [ ! -d /var/run/sshd ] ; then
   mkdir /var/run/sshd
   chmod 755 /var/run/sshd
   /usr/sbin/sshd -D &amp;
 fi
 
 exec /bin/sh</text>
    </revision>
  </page>
  <page>
    <title>User:Ruskie</title>
    <id>3283</id>
    <revision>
      <id>38323</id>
      <timestamp>2010-09-06T09:58:02Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Repartitioning */ use &lt;source&gt; and &lt;pre&gt;</comment>
      <text xml:space="preserve">= About me =
Sometime

= My repos =

 non-optified repo: deb https://repo.codemages.net/ nonopt/
 optified repo: deb https://repo.codemages.net/ opt/

What do the repos contain?
* zsh - just don't set it as your default shell
* xmms2 with wavpack, mpg123, mpcdec, ogg, flac, etc... support - also updated to not start at max loud
* fcron - requires some manual work after the install(I'll try to give it an event.d script and do that stuff after the fact but not just yet)
* gcoreutils and gtar
* rsyslog
* curl
* djmount
* tinc
* xset and xrdb

 create a fcron user
 chown fcron:fcron /etc/fcron.*
 chown -R fcron:fcron /var/spool/fcron
 
 Then edit /etc/event.d/rcS-late
 
 And after initctl emit MOUNTS_OK
 
 put:
 /etc/init.d/fcron start

= Repartitioning =
Here is what I did to repartition:
http://talk.maemo.org/showpost.php?p=411490&amp;postcount=51

Copied from the post by request:


&lt;source lang=&quot;bash&quot;&gt;
#!/bin/bash

echo &quot;Not for running only REFERENCE!!!&quot;
exit

### THIS ALL APPLIES TO ALL PR 1.0 PR 1.0.1 PR 1.1 ###

# backup your user
mount /dev/mmcblk1p1 /media/mmc1
cp -a /home/user /media/mmc1/

# partitioning
sfdisk -uM --no-reread /dev/mmcblk0 &lt;&lt; FDSK
0 2048 c
2049 20544 83
22593 768 82
23361 7170 5
23362 2048 83
25410 5120 83

FDSK

# REBOOT

# do this sometime
mkfs.ext2 /dev/mmcblk0p5
mkfs.ext2 /dev/mmcblk0p2
mkfs.ext2 /dev/mmcblk0p6
mkfs.vfat /dev/mmcblk0p1
mkswap /dev/mmcblk0p3

# change /etc/event.d/rcS-late
# comment out generation of fstab
# the following sed command will add a comment character &quot;#&quot;
# at the start of lines 10-20 
sed &quot;10,20s:\(.*\):#\1:&quot; /etc/event.d/rcS-late &gt; /etc/event.d/rcS-late.new
cp /etc/event.d/rcS-late.new /etc/event.d/rcS-late

# add mount /home/user/MyDocs
# this sed command inserts /bin/mount /home/user/MyDocs || echo 'Failed to mount' on line 23
sed &quot;23i/bin/mount /home/user/MyDocs || echo 'Failed to mount /home/user/MyDocs partition.'&quot; /etc/event.d/rcS-late &gt; /etc/event.d/rcS-late.new
cp /etc/event.d/rcS-late.new /etc/event.d/rcS-late
rm /etc/event.d/rcS-late.new
# change /etc/init.d/rcS
# this sed command starts on line 197 and if it finds: load_extra_module
# it will replace it with: load_extra_module newline and a mount for usr and opt
sed &quot;197s:load_extra_modules:load_extra_modules\nmount /usr || echo 'Failed to mount /usr'\nmount /opt || echo 'Failed to mount /opt':&quot; /etc/init.d/rcS &gt; /etc/init.d/rcS.new
cp /etc/init.d/rcS.new /etc/init.d/rcS
rm /etc/init.d/rcS.new
# fstab
cat &lt;&lt; FSTAB &gt; /etc/fstab
rootfs / rootfs defaults,errors=remount-ro,noatime 0 0
/dev/mmcblk0p6 /usr ext2 rw,noatime,nodiratime,errors=continue 0 0
/dev/mmcblk0p5 /opt ext2 rw,noatime,nodiratime,errors=continue 0 0
/dev/mmcblk0p3 none swap sw 0 0
/dev/mmcblk0p2 /home ext2 rw,noatime,nodiratime,errors=continue 0 0
/dev/mmcblk0p1 /home/user/MyDocs vfat noauto,nodev,noexec,nosuid,noatime,nodiratime,utf8,uid=29999,shortname=mixed,dmask=000,fmask=0133,rodir 0 0

FSTAB
mkdir /usra
mount /dev/mmcblk0p6 /usra
cp -a /usr/* /usra/
mount /home
mount /home/user/MyDocs
mount /dev/mmcblk1p1 /media/mmc1
cp -a /media/mmc1/user /home/

mkdir /tmproot
mount -o bind / /tmproot
&lt;/source&gt;

Output of df -h
&lt;pre&gt;
Filesystem                Size      Used Available Use% Mounted on
rootfs                  227.8M    142.0M     81.6M  64% /
/dev/mmcblk0p6            4.9G    293.1M      4.4G   6% /usr
/dev/mmcblk0p5            2.0G    198.1M      1.7G  10% /opt
/dev/mmcblk0p2           19.7G      1.2G     17.5G   6% /home
/dev/mmcblk0p1            2.0G    287.4M      1.7G  14% /home/user/MyDocs
&lt;/pre&gt;

= Setting profile from the terminal =
The reason for fcron in my case was that I wanted the ability to have it set a specific profile at a specific time. This is the script that does this:
cat /home/user/setprofile.sh 
 #!/bin/sh
 profile=$1
 
 dbus-send \
            --print-reply \
            --type=method_call \
            --dest=com.nokia.profiled \
            /com/nokia/profiled com.nokia.profiled.set_profile \
            string:$profile &gt; /dev/null
 echo &quot;$(date +%Y-%m-%dT%H:%M) Set profile to $profile&quot; &gt; /tmp/setprofile.sh.log

= My remove list =
Stuff I removed by default

 adobe-flashplayer
 amazon-installer
 ap-installer
 as-config-applet-0
 as-daemon-0
 camel-as-provider-0
 camelisync
 ezitext-czech
 ezitext-danish
 ezitext-dutch
 ezitext-english-gb
 ezitext-english-us
 ezitext-essential-plugins
 ezitext-finnish
 ezitext-french-ca
 ezitext-french-fr
 ezitext-german
 ezitext-greek
 ezitext-italian
 ezitext-norwegian
 ezitext-polish
 ezitext-portuguese-pt
 ezitext-russian
 ezitext-spanish-es
 ezitext-spanish-us
 ezitext-swedish
 facebook-installer
 foreca-installer
 google-search-widget
 hildon-welcome
 hildon-welcome-default-logo
 libas-common-utils-0
 libas-protocol-0
 libas-storage-0
 libezitext
 libtinymail-1.0-0
 libtinymail-camel-1.0-0
 libtinymail-gnomevfs-1.0-0
 libtinymail-maemo-1.0-0
 libtinymailui-1.0-0
 libtinymailui-gtk-1.0-0
 modest
 modest-as-plugin-0
 modest-l10n-cscz 
 modest-l10n-dadk 
 modest-l10n-dede
 modest-l10n-engb
 modest-l10n-enus
 modest-l10n-eses
 modest-l10n-esmx
 modest-l10n-fifi
 modest-l10n-frca
 modest-l10n-frfr
 modest-l10n-itit
 modest-l10n-mr0
 modest-l10n-nlnl
 modest-l10n-nono
 modest-l10n-plpl
 modest-l10n-ptpt
 modest-l10n-ruru
 modest-l10n-svse
 modest-nokiamessaging-plugin-l10n-cscz
 modest-nokiamessaging-plugin-l10n-dadk
 modest-nokiamessaging-plugin-l10n-dede
 modest-nokiamessaging-plugin-l10n-engb
 modest-nokiamessaging-plugin-l10n-enus
 modest-nokiamessaging-plugin-l10n-eses
 modest-nokiamessaging-plugin-l10n-esmx
 modest-nokiamessaging-plugin-l10n-fifi
 modest-nokiamessaging-plugin-l10n-frca
 modest-nokiamessaging-plugin-l10n-frfr
 modest-nokiamessaging-plugin-l10n-itit
 modest-nokiamessaging-plugin-l10n-mr0
 modest-nokiamessaging-plugin-l10n-nlnl
 modest-nokiamessaging-plugin-l10n-nono
 modest-nokiamessaging-plugin-l10n-plpl
 modest-nokiamessaging-plugin-l10n-ptpt
 modest-nokiamessaging-plugin-l10n-ruru
 modest-nokiamessaging-plugin-l10n-svse
 modest-providers-data
 nokiamessaging
 osso-startup-wizard
 osso-tutorial-l10n-cscz
 osso-tutorial-l10n-dadk
 osso-tutorial-l10n-dede
 osso-tutorial-l10n-engb
 osso-tutorial-l10n-enus
 osso-tutorial-l10n-eses
 osso-tutorial-l10n-esmx
 osso-tutorial-l10n-fifi
 osso-tutorial-l10n-frca
 osso-tutorial-l10n-frfr
 osso-tutorial-l10n-itit
 osso-tutorial-l10n-mr0
 osso-tutorial-l10n-nlnl
 osso-tutorial-l10n-nono
 osso-tutorial-l10n-plpl
 osso-tutorial-l10n-ptpt
 osso-tutorial-l10n-ruru
 osso-tutorial-l10n-svse
 ovi-promotion-widget
 rtcom-accounts-plugin-gtalk
 rtcom-accounts-plugin-nokiachat
 sharing-rtcom
 sharing-service-flickr
 sharing-service-ovi
 skyhost-bin
 skyhost-vengine
 status-area-applet-activesync-0
 telepathy-spirit
 tutorial-home-applet
 dtg-installer
 osso-accounts-plugin-skype
 rtcom-abook-skype-plugin
 hildon-desktop-application-shortcuts-mr0

You can check what any of these are with: apt-cache show name


= Bootmenu =

The following is my setup for /bootmenu.sh

It is still a work in progress and requires FBCON to be actually usable.

 umask 022
 PATH=/sbin:/bin:/usr/sbin:/usr/bin
 MODULES=&quot;twl4030-vibra
 dspbridge
 iommu2
 omap3-iommu
 omap34xxcam-mod
 omap_previewer_hack
 board-rx51-camera
 et8ek8
 ad5820
 adp1653
 vs6555
 uinput&quot;
 
 if [ -L /var/run ]
 then
 	rm -f /var/run
 	mkdir /var/run
 fi
 
 mount -n -t proc proc /proc
 mount -n -t sysfs sysfs /sys
 mount -n -t tmpfs -o size=1M,noatime tmpfs /tmp
 mount -n -t tmpfs -o size=256k,mode=0755,nosuid,noatime tmpfs /var/run
 
 
 mount_devpts() {
 	TTYGRP=5
 	TTYMODE=620
 
 	if [ ! -d /dev/pts ]
 	then
 	    mkdir /dev/pts
 	fi
 
 	if [ ! -c /dev/ptmx ]
 	then
 	    mknod /dev/ptmx c 5 2
 		chmod 666 /dev/ptmx
 	fi
 
 	mount -n -t devpts -ogid=$TTYGRP,mode=$TTYMODE devpts /dev/pts
 	rm -rf /var/tmp/*
 }
 
 # I hate this hack.  -- Md
 make_extra_nodes () {
     if [ &quot;$(echo /lib/udev/devices/*)&quot; != &quot;/lib/udev/devices/*&quot; ]; then
 	cp -a /lib/udev/devices/* /dev/
     fi
   grep '^[^#]' /etc/udev/links.conf | \
   while read type name arg1; do
     [ &quot;$type&quot; -a &quot;$name&quot; -a ! -e &quot;/dev/$name&quot; -a ! -L &quot;/dev/$name&quot; ] ||continue
     case &quot;$type&quot; in
     L)
       ln -s $arg1 /dev/$name
       ;;
     D)
       mkdir -p /dev/$name
       ;;
     M)
       mknod /dev/$name $arg1 &amp;&amp; chmod 600 /dev/$name
       ;;
     *)
       echo &quot;unparseable line ($type $name $arg1)&quot;
       ;;
     esac
   done
 }
 
 load_extra_modules () {
     echo -n &quot;Loading extra modules...&quot;
     for i in $MODULES; do
 	echo &quot;Loading $i&quot;
 	modprobe -q $i ||:
     done
     echo &quot;done.&quot;
 }
 
 # Mount home and paging partitions if they are available
 mount_mmc(){
    device=$1
    swap=$device&quot;p1&quot;
    home=$device&quot;p2&quot;
    test=$device&quot;p3&quot;
 
    if [ -e $test ]
    then
       echo &quot;Mounting partition $swap for paging&quot;
       # swap disabled as a workaround for Xorg bug, per NB#111807.
       swapon $swap
       modprobe ext3
       echo &quot;Mounting partition $home as home directory&quot;
       mount -t ext3 -o noatime,commit=1,data=writeback $home /home
    else
       echo &quot;No paging partition available as $swap&quot;
       echo &quot;No home partition available as $home&quot;
    fi
 }
 
 prepare_start_udev()
 {
 	. /etc/udev/udev.conf
 
 	if [ -z &quot;$tmpfs_size&quot; ]; then
 		tmpfs_size=&quot;1M&quot;
 	fi
 
 	ACTION=add
 	echo -n &quot;Mounting a tmpfs over /dev...&quot;
 	mount -n -o size=$tmpfs_size,mode=0755,noatime -t tmpfs none /dev
 	echo &quot;done.&quot;
 	mkdir -p /dev/.udev/db /dev/.udev/queue
 	echo &quot;&quot; &gt; /sys/kernel/uevent_helper
 	echo -n &quot;Creating extra device nodes... &quot;
 	make_extra_nodes
 	echo &quot;done.&quot;
 }
 
 start_udev()
 {
     	prepare_start_udev
 	/sbin/udevd --daemon
 }
 
 make_nodes()
 {
 	echo -n &quot;Creating device nodes... &quot;
 
 	if [ -x /sbin/udevtrigger ]; then
 		/sbin/udevtrigger
 	else
 		/sbin/udevadm trigger
 		#wait for all events
 		/sbin/udevadm settle
 	fi
 	echo &quot;done.&quot;
 }
 
 	start_udev
 	make_nodes
 	load_extra_modules
 export BOOTSTATE=LOCAL
 touch /tmp/$BOOTSTATE
 echo $BOOTSTATE &gt; /tmp/STATE
 source /etc/resource_limits.conf
 echo &quot;About to exec dsme in state '$BOOTSTATE'.&quot;
 /sbin/dsme -p /usr/lib/dsme/libstartup.so &amp;
 e2fsck -vvv -f /dev/mmcblk0p1
 e2fsck -vvv -f /dev/mmcblk0p2
 e2fsck -vvv -f /dev/mmcblk0p5
 e2fsck -vvv -f /dev/mmcblk0p6
 mount /usr/local || echo 'Failed to mount /usr/local'
 mount /opt || echo 'Failed to mount /opt'
 
 mount_devpts
 mount -n -o size=64M,nosuid,nodev,noatime -t tmpfs tmpfs /dev/shm
 
 /sbin/hwclock -s || true
 
 
 hostname -F /etc/hostname
 ifup lo &amp;
 ifup usb0 &amp;
 
 echo 0 &gt; /proc/sys/net/ipv4/conf/default/accept_redirects
 echo 1 &gt; /proc/sys/net/ipv4/conf/all/rp_filter
 echo 1 &gt; /proc/sys/net/ipv4/conf/default/rp_filter
 echo 1 &gt; /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
 echo 1 &gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
 echo &quot;49152 65535&quot; &gt; /proc/sys/net/ipv4/ip_local_port_range
 echo 6000 &gt; /sys/class/bluetooth/hci0/idle_timeout
 
 # adjust other kernel parameters to minimize memory consumption
 # and optimize IO pressure
 echo 8 &gt; /proc/sys/kernel/pty/max
 echo 1024 &gt; /proc/sys/kernel/threads-max
 echo 8192 &gt; /proc/sys/fs/file-max
 echo 100 &gt; /proc/sys/vm/swappiness
 echo 5 &gt; /proc/sys/vm/page-cluster
 echo 500 &gt; /proc/sys/vm/dirty_expire_centisecs
 echo 65536 &gt; /proc/sys/net/core/rmem_default
 echo 16384 &gt; /proc/sys/net/core/wmem_default
 
 # Disable sysrq to avoid accidental console-carbage resets.
 echo 0 &gt; /proc/sys/kernel/sysrq
 
 echo &quot;/what/me/worry&quot; &gt; /proc/sys/kernel/core_pattern
 echo 1 &gt; /proc/sys/kernel/panic
 echo 1 &gt; /proc/sys/kernel/panic_on_oops
 
 export BOOTSTATE=LOCAL
 touch /tmp/$BOOTSTATE
 echo $BOOTSTATE &gt; /tmp/STATE
 source /etc/resource_limits.conf
 echo &quot;About to exec dsme in state '$BOOTSTATE'.&quot;
 /sbin/dsme -p /usr/lib/dsme/libstartup.so &amp;
 if [ ! -d /var/run/sshd ] ; then
   mkdir /var/run/sshd
   chmod 755 /var/run/sshd
   /usr/sbin/sshd -D &amp;
 fi
 
 exec /bin/sh</text>
    </revision>
  </page>
  <page>
    <title>User:Rzr</title>
    <id>1968</id>
    <revision>
      <id>44283</id>
      <timestamp>2011-06-30T17:49:07Z</timestamp>
      <contributor>
        <username>rzr</username>
        <id>946</id>
      </contributor>
      <text xml:space="preserve">@url: http://rzr.online.fr/contact.htm

switched to meego :

http://wiki.meego.com/User:Rzr

http://rzr.online.fr/q/maemo
--[[User:rzr|rzr]] 17:49, 30 June 2011 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>User:Sasan201014</title>
    <id>4884</id>
    <revision>
      <id>43798</id>
      <timestamp>2011-06-03T11:52:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>[[Sasan201014]] moved to [[User:Sasan201014]]: move to user namespace</comment>
      <text xml:space="preserve">sasan201014</text>
    </revision>
  </page>
  <page>
    <title>User:Sbir</title>
    <id>3798</id>
    <revision>
      <id>31706</id>
      <timestamp>2010-03-29T10:26:05Z</timestamp>
      <contributor>
        <username>sbir</username>
        <id>1522</id>
      </contributor>
      <comment>New page: = My projects =  * [[User:Sbir/QStarDict|QStarDict port]]</comment>
      <text xml:space="preserve">= My projects =

* [[User:Sbir/QStarDict|QStarDict port]]</text>
    </revision>
  </page>
  <page>
    <title>User:Sbir/QStarDict</title>
    <id>3799</id>
    <revision>
      <id>38503</id>
      <timestamp>2010-09-13T09:12:45Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/180.190.169.255|180.190.169.255]] ([[User talk:180.190.169.255|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">= About project =

Project garage page: https://garage.maemo.org/projects/qstardict/

Download page: http://maemo.org/downloads/product/Maemo5/qstardict/

Bug tracker: https://garage.maemo.org/tracker/?group_id=1199

Discussion: http://talk.maemo.org/showthread.php?t=38984

= Overview =

QStarDict is a simple dictionary program. It is a StarDict clone written with using Qt4. It can use DICT files as a word database for translation. QStarDict supports plugins. It can also pronounce the translated word using festival or espeak.

Currently there are plugins to support multitran, stardict, swac and web based dictionary databases.

By default only stardict and web plugins are built.
I will only provide support for basic functionality of QStarDict on Maemo. For more support please contact QStarDict developer.

= Installation =

= Usage =

== Adding StarDict dictionary ==

By default QStarDict is installed without any dictionary databases. You should download and install dictionary database after installing QStarDict. Some free dictionary databases can be found on the Internet.

After downloading dictionary you should unpack it on your computer. Then you should copy &quot;dic&quot; folder with dictionary database to your device. For example MyDocs can be used to store dictionary database.

After that on your device you should configure the path to your dictionary. To do so go to Menu-&gt;Settings-&gt;Configure. Select the Plugins tab. Select stardict plugin and click the configuration button at the bottom of the screen. Make sure that stardict plugin is enabled. In opened dialog click Add button and chose &quot;dic&quot; folder that you copied to your device. Now you can exit from configuration dialog.

To activate added dictionary you should go to Menu-&gt;Settings-&gt;Configure. Select the Dictionaries tab. Then select desired dictionaries. You can then select their search order using Up and Down buttons at the bottom of the screen. When finished selecting dictionaries you can close configuration dialog and start using the dictionary.

== Adding Web dictionary ==

With the help of web plugin you can use web sites as dictionary source. You can use nearly any site that provides search functionality as a source.
To add web based dictionary go to Menu-&gt;Settings-&gt;Configure. Select the Plugins tab. Select web plugin and click the configuration button at the bottom of the screen.

In opened menu click the add button. Enter the dictionary name and URL and select the html charset. Other fields are optional.

While entering URL %s can be used in it. During the search %s in URL will be replaced by the searched word.

To activate added dictionary you should go to Menu-&gt;Settings-&gt;Configure. Select the Dictionaries tab. Then select desired dictionaries. You can then select their search order using Up and Down buttons at the bottom of the screen. When finished selecting dictionaries you can close configuration dialog and start using the dictionary.

== Word translations pronunciation ==

For word translations pronunciation to work espeak package is required. It can be installed from Extras-testing repository.
After installing espeak package to use word translations pronunciation go to Menu-&gt;Settings-&gt;Configure. Select the Global tab. In the field Pronounce words using this command enter espeak. Close configuration dialog. Now you can use word translations pronunciation button or menu item to pronounce words.</text>
    </revision>
  </page>
  <page>
    <title>User:Silpol</title>
    <id>261</id>
    <revision>
      <id>3805</id>
      <timestamp>2008-07-02T09:13:18Z</timestamp>
      <contributor>
        <username>silpol</username>
        <id>69</id>
      </contributor>
      <comment>more or less personal-ish page content</comment>
      <text xml:space="preserve">* maemo.org: [http://maemo.org/profile/view/silpol/ silpol]
* Internet Tablet Talk: [http://www.internettablettalk.com/forums/member.php?u=1006 silpol]
* Garage: [https://garage.maemo.org/users/silpol/ silpol]
* Bugzilla: [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;emailassigned_to1=1&amp;emailreporter1=1&amp;emailtype1=exact&amp;email1=silpol%40yahoo.com&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= silpol]</text>
    </revision>
  </page>
  <page>
    <title>User:Sixwheeledbeast</title>
    <id>5213</id>
    <revision>
      <id>48695</id>
      <timestamp>2012-07-07T12:39:07Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <text xml:space="preserve">[[User:Sixwheeledbeast/Created_Wikis]]

[[User:Sixwheeledbeast/Useful_Links]]</text>
    </revision>
  </page>
  <page>
    <title>User:Sixwheeledbeast/Created Wikis</title>
    <id>5218</id>
    <revision>
      <id>48694</id>
      <timestamp>2012-07-07T12:15:07Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>New page: [http://wiki.maemo.org/Community_SSU/Features/hildon-desktop Transistions.ini Wiki]   [http://wiki.maemo.org/Pierogi Pierogi] by Copernicus - Universal Infrared Remote Control for N900  Do...</comment>
      <text xml:space="preserve">[http://wiki.maemo.org/Community_SSU/Features/hildon-desktop Transistions.ini Wiki]


[http://wiki.maemo.org/Pierogi Pierogi]
by Copernicus - Universal Infrared Remote Control for N900

Don't forget to add your working devices or requests to the 
[http://wiki.maemo.org/Pierogi_Device_Compatibility_List Pierogi Device Compatibility List]


[http://wiki.maemo.org/Ereswap Ereswap]by Estel - Swap defragmentation management</text>
    </revision>
  </page>
  <page>
    <title>User:Sixwheeledbeast/Useful Links</title>
    <id>5219</id>
    <revision>
      <id>48696</id>
      <timestamp>2012-07-07T12:39:25Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>New page: TBA</comment>
      <text xml:space="preserve">TBA</text>
    </revision>
  </page>
  <page>
    <title>User:Sjgadsby</title>
    <id>783</id>
    <revision>
      <id>39599</id>
      <timestamp>2010-10-18T23:26:00Z</timestamp>
      <contributor>
        <username>sjgadsby</username>
        <id>23</id>
      </contributor>
      <text xml:space="preserve">According to GeneralAntilles, sjgadsby is &quot;some horrible little fairy&quot; that follows people around correcting grammar. This is a reasonably accurate assessment.

* maemo.org: [http://maemo.org/profile/view/sjgadsby/ sjgadsby]
* talk.maemo.org: [http://talk.maemo.org/forums/member.php?u=5991 sjgadsby]
* Garage: [https://garage.maemo.org/users/sjgadsby/ sjgadsby]</text>
    </revision>
  </page>
  <page>
    <title>User:Skg</title>
    <id>4131</id>
    <revision>
      <id>34781</id>
      <timestamp>2010-05-24T19:23:01Z</timestamp>
      <contributor>
        <username>skg</username>
        <id>2815</id>
      </contributor>
      <text xml:space="preserve">I'm Sunil, a Maemo Google Summer of Code 2010 student! I will be working on to bridge UPnP networks.

Email Id : sunilkrghai@gmail.com</text>
    </revision>
  </page>
  <page>
    <title>User:Skywalker</title>
    <id>4552</id>
    <revision>
      <id>39964</id>
      <timestamp>2010-11-04T09:40:17Z</timestamp>
      <contributor>
        <username>skywalker</username>
        <id>3578</id>
      </contributor>
      <comment>Removing all content from page</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>User:Smancke</title>
    <id>1092</id>
    <revision>
      <id>6411</id>
      <timestamp>2008-08-07T12:11:00Z</timestamp>
      <contributor>
        <username>smancke</username>
        <id>269</id>
      </contributor>
      <text xml:space="preserve">[[Image:SebastianMancke.jpg]]

* [http://smancke.blogs.evolvis.org/about/ Some info]
* [http://smancke.blogs.evolvis.org/ Blog]
* [http://maemo.org/profile/view/smancke.html Maemo Profile]</text>
    </revision>
  </page>
  <page>
    <title>User:Smarsh</title>
    <id>2946</id>
    <revision>
      <id>22046</id>
      <timestamp>2009-11-07T14:07:58Z</timestamp>
      <contributor>
        <username>smarsh</username>
        <id>1349</id>
      </contributor>
      <text xml:space="preserve">Steve works in Ottawa for 'them' (you know, 'them'...) and is a trust scientist and HCI researcher with computer science and psychology backgrounds.

He uses his N810 as a complete laptop replacement, and hasn't looked back since leaving behind that old macbook (his back especially thanks him).

The only reasons he's getting an N900 are:

* It's capable of the same, faster.
* It has a bit more storage
* It has TV Out so he can do his presentations on the fly without the need for an additional machine
* It's quite cool

But he'll still keep his N810 cos it's pretty cool too, and although the N900 is a one box solution, the N810 tagging along adds little weight and lots of capabilities for multitasking.

He is currently working on the [[new_users|new users]] page and figuring out what a new user FAQ page might look like (in his [http://wiki.maemo.org/User:smarsh/Ideas ideas page]).

Steve's t.m.o. page is at [http://talk.maemo.org/member.php?u=13643]</text>
    </revision>
  </page>
  <page>
    <title>User:Smarsh/Ideas</title>
    <id>2947</id>
    <revision>
      <id>21970</id>
      <timestamp>2009-11-06T15:45:15Z</timestamp>
      <contributor>
        <username>smarsh</username>
        <id>1349</id>
      </contributor>
      <comment>Replacing page with '==Steve's Ideas Bits ==

===FAQ Ideas ===

There are a few FAQs, and as Dave points out, this is a few too many. The suggestion was a user faq and a developer faq. I'm thinking...'</comment>
      <text xml:space="preserve">==Steve's Ideas Bits ==

===FAQ Ideas ===

There are a few FAQs, and as Dave points out, this is a few too many. The suggestion was a user faq and a developer faq. I'm thinking about the former. 

Steps: 
* 6/11/09: bring in all other FAQ pages here
* (tbd) remove duplication from each.
* (tbd) integrate into proper structure.

See under progress [http://wiki.maemo.org/index.php?title=User:Smarsh/Ideas/FAQIdea here]</text>
    </revision>
  </page>
  <page>
    <title>User:Smarsh/Ideas/FAQIdea</title>
    <id>2948</id>
    <revision>
      <id>33045</id>
      <timestamp>2010-04-19T12:25:07Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>direct link</comment>
      <text xml:space="preserve">'''THIS PAGE IS CONTINUALLY UNDER DEVELOPMENT. NEW QUESTIONS AND ANSWERS ARE ALWAYS WELCOME!'''

==Principles of FAQ ==
* No more than 2 page lengths per, well, page. (Okay, the front page breaks this rule in this structure. Sorry!)
* No more than 3 clicks from this page to get an answer
* Use links to maemo.org content where possible (including talk.maemo.org)
** Especially if the answer is more than a couple of sentences (one paragraph max) - in this case, make a wiki.maemo.org page if necessary and point to it.
* Continually update (needs a FAQ editor)

Open to suggestions...

----

== Frequently Asked Questions - Users ==
Please note, you can also use the search facilities:
*[http://talk.maemo.org/search.php  talk.maemo.org search]
* [http://tinyurl.com/q7btxk maemo.org google custom search]

Note that there is a separate FAQ for those interested in Development.

== I can't read through this! I'm in big trouble... Need big help... ==
Are you sure? You might want to check below in the [http://wiki.maemo.org/User:Smarsh/Ideas/FAQIdea#Troubleshooting_and_Optimization Troubleshooting] section. 

But... If all else fails, and you just can't see a way out, [[updating the firmware]] is the last straw. It deletes all user data and reverts all settings to default.

== Hardware==
=== N900 ===
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]]

=== (Older) Internet Tablets ===

The Nokia N810 Wimax Editionhardware page can be found [[Nokia_N810WME|here]]

The Nokia N810 hardware page can be found [[Nokia_N810|here]]

The Nokia N800 hardware page can be found [[Nokia_N800|here]]

The Nokia 770 Internet tablet hardware page can be found [[Nokia_770|here]]

===Battery===

====Do I have to charge it fully before first use?====

''No. It will come with some battery charge so you can play.'' 

====Do I have to discharge it fully each time?====

''No, n900 has a LIon battery, which doesn't need this. Older NiCad batteries did.'' 

====Can I use the device while it’s charging?====

''Yes.'' 

====Is it safe to leave it charging overnight? Will it stop charging itself when it’s full?====

''Yes''

== Software==
===Operating System===
The Nokia devices run on the [[Maemo_basics|Maemo Operating System]], but there are alternatives. 

====Maemo====

The N900 runs Maemo5 out of the box. See the [[Maemo5_101|Maemo5_101 pages]] for details, movies, and advice.

Maemo5 is also known as [[Task:Maemo roadmap/Fremantle|Fremantle]]

==== Will Maemo 5 run on the Previous Internet Tablets? ====
[http://maemo.org/news/announcements/first_maemo_5_sdk_release_targeting_platform_developers/ Not officially] but perhaps through the [[Mer]] community project. Maemo 5 is optimized for the [http://en.wikipedia.org/wiki/Texas_Instruments_OMAP OMAP3 architecture], the N810 and N800 are based in OMAP2 and the 770 in OMAP1 ([http://talk.maemo.org/showthread.php?t=28179 discussion]).

Earlier tablets ran earlier versions of Maemo. Links to details will be provided as time progresses.
* [http://nokia.com/os2008 OS2008] / Maemo 4.1 / Diablo

====What are the 'Alternatives' to Maemo====
* [[Mer]]
* [[Easy_Debian]]

===[http://wiki.maemo.org/User:Smarsh/Ideas/FAQIdeaSoftwareGames Games]===
Click on the link above for more questions and answers.

===Other Applications===

==== Where do I get Software (apps) from?====
See also [[Downloading_apps]] page.

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.

There are multiple repositories available for the N900:

# [http://maemo.nokia.com/maemo-select/applications/ovi-store/ Nokia's Ovi Store]
# Commercial Application Vendors
#  [http://wiki.maemo.org/Installing_applications Community Applications]

The Application Manager also allows you to uninstall applications as well as keep you notified of updates to your installed applications.

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.

If you can't find what you want, 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'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'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...] and there's a separate Developer FAQ on this site.

=== How can I encode video files for playback on the device? ===

See [[video encoding]] for information on encoding media for playback (or streaming to) the Maemo device.

=== How do I get more memory to install applications? ===

See [[booting from a flash card]] to find out how to gain extra room by moving the system to a flash card.

=== How do I get root access? ===

See [[root access]] for information on how to get superuser permissions.

====How can I monitor my disk usage and how much space I have left?====
''To be answered''

====Can I edit Office files?====
N900 comes with datavz's Office 'Office to Go' reader, so you can read office files.

Editing them is a slightly more interesting prospect, but has become a much more exciting one with KOffice from [http://sureshchande.blogspot.com/2009/10/mobile-office-based-on-koffice-for.html here].

[[Easy_Debian]] has OpenOffice installed and on the N810 (at least for this author) has been used very successfully to edit Office files.

====Does n900 view pdf files?====
There's a built in application for that.

====Does n900 have a book reader? Will it run Kindle?====
''To be answered''

==== Can I do email? ====
If you're using an N900, the [[N900_Email_Options]] page can help.

== Community==
=== What is the difference between Maemo and maemo.org? ===
Maemo refers to the Open source software platform for mobile devices developed by Nokia in collaboration with the Maemo community and some of the best open source upstream projects. maemo.org is the home of the Maemo community, and is a gathering place for people interested in this platform and related software and devices ([[Task:Maemo_brand|more]]).

=== Where should I report problems? ===
Software problems are reported as [http://maemo.org/community/bugs_and_features/ bugs] - please be gentle with the [[Bugsquad]] team. Contact [http://europe.nokia.com/get-support-and-software Nokia Support] for serious problems with your device during the warranty period. In case of doubt [http://talk.maemo.org/showthread.php?t=27900 use the Talk forum].

=== What is the Community Council? ===

The [[Community Council]] is a team of volunteers representing the community and interfacing with Nokia.

== Troubleshooting and Optimization==
=== How can I get root access? ===

=== How can I improve battery life? ===

=== My tablet is slow and unresponsive. What can I do? ===
Look at the [[Troubleshooting]] page for help.

=== I have run out of disk space. How can I add more? ===

=== My system is unstable and applications crash a lot. What's wrong? ===
Look at the [[Troubleshooting]] page for help.

=== I have trouble connecting to the internet over wifi ===

=== I installed something and now my n900 isn’t working right. ===

=== I installed something and now my n900 isn’t working at all. ===

===There’s a light flashing on my n900===
''Look at [[Maemo5 101]] for further info about what different colour and blinking means''

===How often do I need to update? And why?===

''N900 is 'updatable software', 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's beter to download - for example your using your home netwrk rather than your data plan.''


----

See [http://wiki.maemo.org/index.php?title=User:Smarsh/Ideas/FAQIdeaOrig here] for original stuff...


----</text>
    </revision>
  </page>
  <page>
    <title>User:Smarsh/Ideas/FAQIdeaCommunity</title>
    <id>2954</id>
    <revision>
      <id>22001</id>
      <timestamp>2009-11-06T20:24:03Z</timestamp>
      <contributor>
        <username>smarsh</username>
        <id>1349</id>
      </contributor>
      <comment>New page:  === What is the difference between Maemo and maemo.org? === Maemo refers to the Open source software platform for mobile devices developed by Nokia in collaboration with the Maemo communi...</comment>
      <text xml:space="preserve">
=== What is the difference between Maemo and maemo.org? ===
Maemo refers to the Open source software platform for mobile devices developed by Nokia in collaboration with the Maemo community and some of the best open source upstream projects. maemo.org is the home of the Maemo community, and is a gathering place for people interested in this platform and related software and devices ([[Task:Maemo_brand|more]]).

=== Where should I report problems? ===
Software problems are reported as [http://maemo.org/community/bugs_and_features/ bugs] - please be gentle with the [[Bugsquad]] team. Contact [http://europe.nokia.com/get-support-and-software Nokia Support] for serious problems with your device during the warranty period. In case of doubt [http://talk.maemo.org/showthread.php?t=27900 use the Talk forum].

=== What is the Community Council? ===

The [[Community Council]] is a team of volunteers representing the community and interfacing with Nokia.</text>
    </revision>
  </page>
  <page>
    <title>User:Smarsh/Ideas/FAQIdeaHardware</title>
    <id>2951</id>
    <revision>
      <id>21993</id>
      <timestamp>2009-11-06T19:57:39Z</timestamp>
      <contributor>
        <username>smarsh</username>
        <id>1349</id>
      </contributor>
      <comment>/* Hardware QUestions and Answers */</comment>
      <text xml:space="preserve">== Hardware Overview ==

=== N900 ===
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]]

=== (Older) Internet Tablets ===

The Nokia N810 Wimax Editionhardware page can be found [[Nokia_N810WME|here]]

The Nokia N810 hardware page can be found [[Nokia_N810|here]]

The Nokia N800 hardware page can be found [[Nokia_N800|here]]

The Nokia 770 Internet tablet hardware page can be found [[Nokia_770|here]]

==Battery==

===Do I have to charge it fully before first use?===

''No. It will come with some battery charge so you can play.'' 

===Do I have to discharge it fully each time?===

''No, n900 has a LIon battery, which doesn't need this. Older NiCad batteries did.'' 

===Can I use the device while it’s charging?===

''Yes.'' 

===Is it safe to leave it charging overnight? Will it stop charging itself when it’s full?===

''Yes''</text>
    </revision>
  </page>
  <page>
    <title>User:Smarsh/Ideas/FAQIdeaOrig</title>
    <id>2949</id>
    <revision>
      <id>41473</id>
      <timestamp>2011-01-27T15:58:18Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>better N900 link</comment>
      <text xml:space="preserve">==N900 FAQ original (at [http://wiki.maemo.org/N900_FAQ]) ==

==== Hardware ====
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]]

==== Operating System ====
The N900 runs the Maemo 5 Operating System. Maemo 5 is often referred to by its release name &quot;Fremantle&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.

If there'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.

If you want an easy intro to many of Maemo5's features you might enjoy the videos on the [[Maemo5_101|Maemo5 101 page]]

====Applications====
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.

There are multiple repositories available for the N900:

1.[http://maemo.nokia.com/maemo-select/applications/ovi-store/ Nokia's Ovi Store]

2. Commercial Application Vendors

3. [http://wiki.maemo.org/Installing_applications Community Applications]

The Application Manager also allows you to uninstall applications as well as keep you notified of updates to your installed applications.

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.

====Emulators====
As well as native applications via the repositories Maemo also supports applications from a range of Emulators.

-Flash Games. As the N900 supports Flash 9 and has a hardware keyboard, many flash games should just work

-Garnet the Palm Emulator

-SNES Nintendo Emulation. nice video [http://www.youtube.com/watch?v=E0wbLaMXeu4 here]

====Other Applications====

How can I monitor my disk usage and how much space I have left?

Does n900 run Office files?

''N900 comes with datavz's Office 'Office to Go' reader, so you can read office files. It's not clear yet whether they will release a paid-for upgrade with editing facility. KOffice is available here'' (need link!) '' and will view and edit Office files.''

Can I edit Office files?

''Yes, using KOffice from [http://sureshchande.blogspot.com/2009/10/mobile-office-based-on-koffice-for.html here].''

Does n900 view pdf files?

''Yes''

Does n900 have a book reader? Will it run Kindle?

Where do I find other applications and widgets for n900?

What do I do if the app I want isn’t there?

''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'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'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...]

====Battery====

Do I have to charge it fully before first use?

''No. It will come with some battery charge so you can play.'' 

Do I have to discharge it fully each time?

''No, n900 has a LIon battery, which doesn't need this. Older NiCad batteries did.'' 

Can I use the device while it’s charging?

''Yes.'' 

Is it safe to leave it charging overnight? Will it stop charging itself when it’s full?

''Yes''

====EMail====

''See the page on [[N900 Email Options]]''

====Games====

What games run on n900?

I’ve heard it can be used as a wiimote: how do I do that?

Will n900 play games from big companies?

What if I want a game not yet available?

All my previous phones have run java games: why can’t I play them on n900?

''Java is not currently available for the N900. You can follow the discussion [http://talk.maemo.org/showthread.php?t=31678  here]''

====GPS====

How good is the GPS on n900?

What’s the difference between GPS and a-GPS?

''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.
''

If I only use GPS (not a-GPS) will I still burn my data plan?

''Only if you have to download Map information''

What map programmes can I use?

''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 ''

''As of October 2009, none of the &quot;big names&quot;--Garmin, Google, TomTom, etc.--have announced any plans to release software for the N900.''

Does n900 support google maps?

''You can use google maps directly from the browser, or you can try [http://talk.maemo.org/showthread.php?t=33645 MaeMaps]''

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?

See also...
''[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].''

====Internet====

Does n900 need a firewall?

''No.''

Does n900 need an anti-virus?

''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's unlikely a (mostly theoretical) virus for desktop Linux could infect the N900.''

Can I block adverts?

''Adblock Plus is being developed for the Maemo browser on the N900 and will be available as a free download.''

Does n900 play YouTube?

''Yes.''

Does n900 play video from places other than YouTube?

Does n900 run BBC iplayer?

Does n900 have any ‘parental control’ settings?



====Media player====

Does n900 support itunes?

Will n900 play all my downloaded music? What if it has DRM?

How does n900 get the album art?

''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]
''

What video codec does n900 support?

How do I rip a dvd for playing on n900? 

How big a file would an hour of dvd be?

Can I download other video to play?

Are there ways of securing the video I’ve downloaded, so I can still give my n900 to others?

What connectors do I need to connect to a TV? What if my TV doesn’t have the right connections?

''The N900 comes with a cable to connect it to a composite input on a television. This connection is sometimes called an &quot;RCA&quot; connection and uses a yellow connector for video and a pair of connectors (red and white) for stereo audio.''

''The video out on the N900 may be switched between NTSC and PAL via &quot;TV out&quot; in the Settings application.''

''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.''

What can I play over TV out? Will it only play video, or can I view whatever is on screen?

====MSN Messenger====

Please see [[MSN messenger]] -article.


====Phone use====

Does n900 have speed dial?

''You can put contact shortcuts on the desktop...

Does n900 have voice dialing?

''No.''

How do I access my carrier’s answering service - it used to be speed dial set in my old phone?

''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.''

Does n900 log calls for length?

''Yes.''

Can I sort calls by received/sent/missed?

''No.''

I can use the phone in portrait mode: why can’t I use that for other things?

''N900 doesn't '''currently''' 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. '''Watch this space'''.''

====Texts====

I hear n900 doesn’t have MMS: is this true?

''N900 doesn't support MMS at release. This is because MMS uses the old 'WAP' form of connection, which n900 doesn't do. It only has GPRS internet connection. There are developers working on finding a work-around right now. '''Watch this space'''.''

Does n900 have message receipt?

''Conversations, the SMS and IM application, can optionally &quot;Receive text message delivery reports&quot;. This option is disabled by default, but may be enabled in the Settings area of Conversations.''

Can I use an onscreen keyboard?

''An on-screen keyboard is available. It is disabled by default, but may enabled via &quot;Text input&quot; in the Settings application.''

''The on-screen keyboard is landscape in orientation and alphanumeric. Its layout is QWERTY, QWERTZ, etc. as is regionally appropriate.'' 

Is there a portrait mode keyboard?

''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.''

Is there T9 entry?

''No, though this could be added by a third party developer later.''


====Troubleshooting====

I installed something and now my n900 isn’t working right.

I installed something and now my n900 isn’t working at all.

''In case of trouble, you should start by reading article [[Troubleshooting]] through. It has both cases &lt;bove covered. ''

There’s a light flashing on my n900
''Look at [[Maemo5 101]] for further info about what different colour and blinking means''

How often do I need to update? And why?

''N900 is 'updatable software', 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's beter to download - for example your using your home netwrk rather than your data plan.''


==== original FAQ (at [http://wiki.maemo.org/Frequently_asked_questions]) ====


If your question is not posted here, try the search tool in this wiki, [http://search.maemo.org/search?access=p&amp;output=xml_no_dtd&amp;sort=date%3AD%3AL%3Ad1&amp;site=maemo-org&amp;ie=UTF-8&amp;btnG=Search&amp;client=maemo-org&amp;oe=UTF-8&amp;proxystylesheet=maemo-org&amp;q=&amp;q=(site%3Agarage.maemo.org+%7C+site%3Adownloads.maemo.org+%7C+site%3Amaemo.org+%7C+site%3Awiki.maemo.org+%7C+site%3Abugs.maemo.org+%7C+site%3Arepository.maemo.org+%7C+site%3Astage.maemo.org+%7C+site%3Alists.maemo.org+)&amp;ip=207.6.250.238&amp;proxycustom=%3CADVANCED/%3E full maemo.org search], [http://talk.maemo.org/search.php talk.maemo.org search], or [http://www.google.com/cse?cx=005981223421171304650%3Awt9tjwf2kd4 Google ITT search] (or your preferred Internet search engine).

If you are looking for information about the Autobuilder, try the [[Autobuilder FAQ]].

== Usage ==

=== How should I encode video files for playback on the device? ===

See [[video encoding]] for information on encoding media for playback (or streaming to) the Maemo device.

=== How do I get more memory to install applications? ===

See [[booting from a flash card]] to find out how to gain extra room by moving the system to a flash card.

=== How do I get root access? ===

See [[root access]] for information on how to get superuser permissions.

=== What alternative operating systems are available? ===

See [[alternative operating systems]] for information about other OSes that can be run on Maemo devices.

== Troubleshooting ==

=== How can I improve battery life? ===

=== My tablet is slow and unresponsive. What can I do? ===

=== I have run out of disk space. How can I add more? ===

=== My system is unstable and applications crash a lot. What's wrong? ===

=== I have trouble connecting to the internet over wifi ===

== Community ==

=== What is the difference between Maemo and maemo.org? ===
Maemo refers to the Open source software platform for mobile devices developed by Nokia in collaboration with the Maemo community and some of the best open source upstream projects. maemo.org is the home of the Maemo community, and is a gathering place for people interested in this platform and related software and devices ([[Task:Maemo_brand|more]]).

=== Where should I report problems? ===
Software problems are reported as [http://maemo.org/community/bugs_and_features/ bugs] - please be gentle with the [[Bugsquad]] team. Contact [http://europe.nokia.com/get-support-and-software Nokia Support] for serious problems with your device during the warranty period. In case of doubt [http://talk.maemo.org/showthread.php?t=27900 use the Talk forum].

=== What is the Community Council? ===

The [[Community Council]] is a team of volunteers representing the community and interfacing with Nokia.

== Future ==

=== What is Maemo 5 / Fremantle? ===
[[Open development/Maemo roadmap/Fremantle|Fremantle]] is the codename of Maemo 5, which is the next major release after [http://nokia.com/os2008 OS2008] / Maemo 4.1 / Diablo

=== Will Maemo 5 run on the Internet Tablets? ===
[http://maemo.org/news/announcements/first_maemo_5_sdk_release_targeting_platform_developers/ Not officially] but perhaps through the [[Mer]] community project. Maemo 5 is optimized for the [http://en.wikipedia.org/wiki/Texas_Instruments_OMAP OMAP3 architecture], the N810 and N800 are based in OMAP2 and the 770 in OMAP1 ([http://talk.maemo.org/showthread.php?t=28179 discussion]).

== Original Troubleshooting (from [http://wiki.maemo.org/Troubleshooting]) ==

This page is a collection of problems you might encounter with your Maemo device, and suggestions for resolving them. Steps go from mildest to the most extreme solution in order. 

== Performance issues ==

Is your device sluggish and unresponsive?

=== Check if unnecessary applications run in background ===

Run the task switcher and close all applications that aren't needed.
: How do you run the task switcher? I can't find any application by that name. --[[User:dneary|Dave Neary]] 17:11, 5 November 2009 (UTC)

=== Uninstall or remove applets ===

Applets running on your desktop, or in the system tray, can affect the battery life and performance adversely. If in doubt, remove applets and widgets you have installed, restart your device, and see if the performance has improved.

=== Remove possible unstable applications  ===

If you have enabled Extras-devel -repository, you should look at the [http://maemo.org/packages/repository/qa/fremantle_extras-testing/ list of extras-devel programs] and see if you have something installed from there.

Programs can interfere with each other. The cause of the problems are most probably newly installed application so those should be uninstalled at inverted order: most recently installed first. After each uninstall, check if the problem disappears before uninstalling other software.

== Last straw ==

[[Updating the firmware]] is the last straw. It deletes all user data and reverts all settings to default.

== Original Q&amp;A (from [http://wiki.maemo.org/Questions_and_answers]) ==
This is a compilations of questions and answers, mostly about the [[Nokia N900|N900]] and [[Open development/Maemo roadmap/Fremantle|Maemo 5]]. Most of these questions came from the talk.maemo.org thread [http://talk.maemo.org/showthread.php?t=32513 New User or enquirer start here].

=General software=
===Can the N900 record sound files (like an mp3 recorder)?===
Not out of the box. The [http://maemo.org/downloads/product/OS2008/maemo-recorder Recorder] hasn't been ported to Maemo 5 yet. You can ask the developers or create a [http://maemo.org/community/brainstorm/ Brainstorm] proposal. Or you could use the video camera and ignore the picture. 

===Is it true that 'rapier' Bible software will run on an N900 out of the box? Is it very hard to achieve?===
A. Not out of the box. You can ask the developer of [http://maemo.org/downloads/product/OS2007/rapier/ Rapier for Maemo 4] to port the application or submit a [http://maemo.org/community/brainstorm/ Brainstorm] proposal.

===Please describe the simplest, most user friendly and most function-rich ways an N900 can view and edit office type documents so I can choose between them.===
I guess this would be the commercial Documents To Go software that exists for a bunch of mobile phones already. Viewing documents is free, editing documents requires you to pay for the software (the Android version is about 20 €, if I recall correctly, so the Maemo version should be priced similarly).

===The N900 manual seems to imply I can't add or edit playlists in the media player: does this mean I can't categorise my music by type (classical, jazz, rock) to play according to my mood?===
The Media Player provides &quot;Genres&quot; playlists automatically based on the metadata of the audio files. The community application [http://maemo.org/packages/view/mussorgsky/ Mussorgsky/] allows you to edit the metadata in the device itself. Currently in extras-devel (alpha-ish) and hopefully available in Extras soon.

===If I buy a N900 with qwerty keyboard, how do I type &quot;é&quot; or &quot;à&quot;?===
There's a symbol menu you can bring up to enter any of these. 

===With the exception of handwriting recognition, do I need the stylus to do anything on the N900? If so, where? How finger/touch friendly is the device?===
Using normal Maemo apps you should be ok without stylus. There is no handwriting recognition on the device.

===Where should I download apps?===
Please see the [[Downloading apps]] wiki page.

===Will the N900 be upgradeable to Maemo 6?===
At the moment no announcement about this has been made by Nokia.

=Community=
===Why are there are two different login systems for talk.maemo.org and the other maemo.org sites like Development, Community etc.?===
This is an issue that's being worked on. Historically, the maemo.org sites run on different servers, hosted by different people, and only share the same look. Single sign-on is to be expected within the next few months, though.

=Networking, internet and telephony=
===As it is 'always connected' does the N900 consume data just 'staying in touch' even when I'm not using it? If so, how much?===
Not a lot. It really depends on what you're running that consumes data in the background. E-Mail or instant messaging only consume a few kBytes when idle. There is a GPRS monitor applet with which you can exactly see how much data is transferred.

===In the browser, does the size of the text adjust depending of the &quot;importance&quot; of the text, like on safari mobile (i.e. on talk.maemo.org, the discussions are written bigger than the &quot;edit&quot;, &quot;quote&quot;, &quot;join date&quot; etc, and I don't need to zoom at all to read the forum)===
No, sites are displayed as they were intended by the designer. They appear as on your desktop PC.

===All my data - pics, music and documents - is on a network drive accessed via wifi, so I can access it whichever computer I'm on. I'd assumed that an N900 can also access them - can it?===
If you have a uPnP/DNLA-Server, it will show up in the Media Player and you can then access all your media for replay/viewing.

===Will the device give a summary of things upon a single slide, like number of missed phone called, number of unread SMSes, unread emails, upcoming appointments?===
No. But there is probably nothing technically stopping a developer creating such a widget.

===What happens when I'm listening to music and a phone call comes in?===
The music is paused, the device switches to the phone app and the ringtone sounds. After ending the call, it resumes music playing.

===How does the device handle SMS?===
You can configure the message alerting in various ways. On my device, I just get a short vibrations (also for emails). Next time I turn on the display, the app switcher in the top left is glowing to remind me of events. When selecting the switcher, it show the overview of current programs and events/reminders: this includes missed calls and received messages.

===Will it support OTA syncing of Google contacts, calendar?===
It supports the OTA sync of Google Contacts and Calendar using the Mail for Exchange mechanism.

===What is the length of the A/V cable that comes in the box?===
The cable is a Nokia CA-75U and is 150 cm long.

===Is there an app to download Youtube videos for offline viewing?===
There is a 3rd party app named mYTube that can do all that. Search online / Download to local storage / Replay offline.</text>
    </revision>
  </page>
  <page>
    <title>User:Smarsh/Ideas/FAQIdeaSoftware</title>
    <id>2952</id>
    <revision>
      <id>22006</id>
      <timestamp>2009-11-06T20:32:30Z</timestamp>
      <contributor>
        <username>smarsh</username>
        <id>1349</id>
      </contributor>
      <comment>/* Can I edit Office files? */</comment>
      <text xml:space="preserve">==Operating System==
The Nokia devices run on the [[Maemo_basics|Maemo Operating System]], but there are alternatives. 

===Maemo===

The N900 runs Maemo5 out of the box. See the [[Maemo5_101|Maemo5_101 pages]] for details, movies, and advice.

Maemo5 is also known as [[Task:Maemo roadmap/Fremantle|Fremantle]]

=== Will Maemo 5 run on the Previous Internet Tablets? ===
[http://maemo.org/news/announcements/first_maemo_5_sdk_release_targeting_platform_developers/ Not officially] but perhaps through the [[Mer]] community project. Maemo 5 is optimized for the [http://en.wikipedia.org/wiki/Texas_Instruments_OMAP OMAP3 architecture], the N810 and N800 are based in OMAP2 and the 770 in OMAP1 ([http://talk.maemo.org/showthread.php?t=28179 discussion]).

Earlier tablets ran earlier versions of Maemo. Links to details will be provided as time progresses.
* [http://nokia.com/os2008 OS2008] / Maemo 4.1 / Diablo

====[[Maemo5_101]]====

===[[Mer]]===

===[[Easy_Debian]]===

==[http://wiki.maemo.org/User:Smarsh/Ideas/FAQIdeaSoftwareGames Games]==
Click on the link above for more questions and answers.

==Other Applications==

=== Where do I get Software (apps) from?===
See also [[Downloading_apps]] page.

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.

There are multiple repositories available for the N900:

# [http://maemo.nokia.com/maemo-select/applications/ovi-store/ Nokia's Ovi Store]
# Commercial Application Vendors
#  [http://wiki.maemo.org/Installing_applications Community Applications]

The Application Manager also allows you to uninstall applications as well as keep you notified of updates to your installed applications.

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.

If you can't find what you want, 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'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'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...] and there's a separate Developer FAQ on this site.

===How can I monitor my disk usage and how much space I have left?===


===Can I edit Office files?===
N900 comes with datavz's Office 'Office to Go' reader, so you can read office files.

Editing them is a slightly more interesting prospect, but has become a much more exciting one with KOffice from [http://sureshchande.blogspot.com/2009/10/mobile-office-based-on-koffice-for.html here].

[[Easy_Debian]] has OpenOffice installed and on the N810 (at least for this author) has been used very successfully to edit Office files.

===Does n900 view pdf files?===
There's a built in app for that.

===Does n900 have a book reader? Will it run Kindle?===

=== Can I do email? ===
If you're using an N900, the [[N900_Email_Options]] page can help.</text>
    </revision>
  </page>
  <page>
    <title>User:Smarsh/Ideas/FAQIdeaSoftwareGames</title>
    <id>2953</id>
    <revision>
      <id>22756</id>
      <timestamp>2009-11-16T19:57:32Z</timestamp>
      <contributor>
        <username>mikecy</username>
        <id>1355</id>
      </contributor>
      <text xml:space="preserve">Smarsh I have moved the contents here to a dedicated games page

http://wiki.maemo.org/N900_Games</text>
    </revision>
  </page>
  <page>
    <title>User:Smarsh/Ideas/FAQIdeaTroubleshooting</title>
    <id>2950</id>
    <revision>
      <id>21991</id>
      <timestamp>2009-11-06T19:50:06Z</timestamp>
      <contributor>
        <username>smarsh</username>
        <id>1349</id>
      </contributor>
      <text xml:space="preserve">== Troubleshooting and Optimization ==

=== How can I get root access? ===

=== How can I improve battery life? ===

=== My tablet is slow and unresponsive. What can I do? ===
Look at the [[Troubleshooting]] page for help.

=== I have run out of disk space. How can I add more? ===

=== My system is unstable and applications crash a lot. What's wrong? ===
Look at the [[Troubleshooting]] page for help.

=== I have trouble connecting to the internet over wifi ===

=== I installed something and now my n900 isn’t working right. ===

=== I installed something and now my n900 isn’t working at all. ===

===There’s a light flashing on my n900===
''Look at [[Maemo5 101]] for further info about what different colour and blinking means''

===How often do I need to update? And why?===

''N900 is 'updatable software', 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's beter to download - for example your using your home netwrk rather than your data plan.''</text>
    </revision>
  </page>
  <page>
    <title>User:Speedevil</title>
    <id>3630</id>
    <revision>
      <id>38098</id>
      <timestamp>2010-08-26T09:34:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add link to N900 software rescue disk</comment>
      <text xml:space="preserve">[[image:speedevil_picture.gif]]


=Computing history=
ZX81, ZX Spectrum, PCW8512, Amstrad 386/4M, various PCs, Openmoko neo1973, N900.

=Biog=
I was born. 

During primary school I caught Glandular Fever - which is usually mostly harmless

This however lead to [http://en.wikipedia.org/wiki/Post_Viral_Fatigue_Syndrome Post Viral Fatigue Syndrome] which hasn't really gone away in the past years.

I am lacking in energy to do creative projects much of the time, and tasks which would be simple if I could rely on being able to do them for several hours straight get challenging if they have to be broken up over several days.

I'm currently on a very small income from the state, as I'm unable to work.

I funded my n900 partially through a reduction in my food budget/diet.

The results [http://www.mauve.plus.com/weight.gif have been quite good!] (graph).

[[User:Speedevil/N900 software rescue disk|N900 software recsue disk instructions]]</text>
    </revision>
  </page>
  <page>
    <title>User:Speedevil/N900 software rescue disk</title>
    <id>4079</id>
    <revision>
      <id>38095</id>
      <timestamp>2010-08-26T09:32:40Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>[[N900 Software RescueDisk]] moved to [[User:Speedevil/N900 software rescue disk]]: orphaned page with no usable instructions</comment>
      <text xml:space="preserve">This is a brief page outlining thoughts on rescue disks.

If you've bootlooped your device, and it sort-of-comes up - but not all the way - what can you do?
Well - flash it of course.

None of this is tested - it's hypothetical to get my thoughts in order.

Alternatives?

==Booting from mmc==

This doesn't work - the MeeGo kernel doesn't support MMC.

# Download [http://repo.meego.com/MeeGo/devel/n900/images/meego-codedrop-arm-n900-201003311626.tar.gz the MeeGo code-drop] and [http://repo.meego.com/MeeGo/devel/n900/images/zImage-arm-n900 the ARM kernel image]
# Flash the kernel to the device.
#: ''How?'' --[[User:dneary|Dave Neary]] 12:49, 13 May 2010 (UTC)
# Untar the image to the first partition of a microSD.
# Use flasher to boot it.
#: ''How?'' --[[User:dneary|Dave Neary]] 12:49, 13 May 2010 (UTC)
# Correct any oopses in script editing or stuff.
# Reflash original kernel.

==A better way==
Work out how to boot a fs from MyDocs - which is a vfat partition.
Plug n900 in - when off - it will now present MyDocs as a vfat device you can mount. Clear 500M or so of space (if needed).

Place boot filesystem on MyDocs.
boot it using flasher, as above, to pass appropriate parameters to kernel.

[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>User:Spenap</title>
    <id>2390</id>
    <revision>
      <id>17498</id>
      <timestamp>2009-09-05T12:21:48Z</timestamp>
      <contributor>
        <username>spenap</username>
        <id>1085</id>
      </contributor>
      <comment>New page: My profiles * maemo.org: [http://maemo.org/profile/view/spenap/ spenap] * Maemo Talk: [http://talk.maemo.org/member.php?u=19644 Bulfaiter]</comment>
      <text xml:space="preserve">My profiles
* maemo.org: [http://maemo.org/profile/view/spenap/ spenap]
* Maemo Talk: [http://talk.maemo.org/member.php?u=19644 Bulfaiter]</text>
    </revision>
  </page>
  <page>
    <title>User:Sre</title>
    <id>4508</id>
    <revision>
      <id>39354</id>
      <timestamp>2010-10-05T07:09:37Z</timestamp>
      <contributor>
        <username>sre</username>
        <id>3455</id>
      </contributor>
      <minor/>
      <comment>add interested in section</comment>
      <text xml:space="preserve">I'm a 20 year old guy living in Oldenburg, Germany. You will find more information on the links below.

= Interested in the following wiki articles =
* [[N900_GPS_Reverse_Engineering]]
* [[N900_Hardware_USB_Host]]
* [[N900_Hardware_Schematic]]

= Links =
* [https://ring0.de Blog]
* [https://elektranox.org/n900 Homepage]
* [https://elektranox.org/n900 Debian on N900 Project]</text>
    </revision>
  </page>
  <page>
    <title>User:Stezz</title>
    <id>1140</id>
    <revision>
      <id>6703</id>
      <timestamp>2008-08-18T14:16:05Z</timestamp>
      <contributor>
        <username>stezz</username>
        <id>294</id>
      </contributor>
      <comment>New page: My profile: http://www.linkedin.com/in/stezz</comment>
      <text xml:space="preserve">My profile: http://www.linkedin.com/in/stezz</text>
    </revision>
  </page>
  <page>
    <title>User:Stskeeps/Draft Mer Blueprint</title>
    <id>1430</id>
    <revision>
      <id>9772</id>
      <timestamp>2009-01-16T15:39:30Z</timestamp>
      <contributor>
        <username>stskeeps</username>
        <id>140</id>
      </contributor>
      <text xml:space="preserve">The Mer platform is a Linux distribution for mobile devices based on the Maemo platform from Nokia. Mer goals include:

*Improving and developing parts of Maemo that are of interest to the Maemo community.
*Making it easier to port existing desktop applications by hildonizing and adjusting them to the tablet form factor.
*Encouraging third party experimentation and development.
*Supporting tablet hardware no longer receiving updated OS software by Nokia.
*Making Maemo a generic platform for all tablet devices, including non-Nokia ones.
*Focusing Maemo community efforts in platform-related areas

Mer platform development will be done in the open, with public SCM repository, bugtrackers, and Wiki-based blueprint discussion.

We should stop seeing the tablets as strictly under-powered embedded systems, and see them for what they really are: powerful, power-efficient, economical handheld computers.

Historically, the Mer platform came from a discussion on [[Maemo_Reconstructed|reconstructing Maemo]] and a desire to make a proof of concept system of the thoughts in this proposal (M-R PoC), which developed into Mer after realization that it was a viable direction of development.

== Sprints ==

We employ the [[Maemo.org_Sprints|Maemo.org sprints]] method as development method for Mer. That means, get yourself a maemo.org account, and read this document through if you would like to contribute :)

Most Mer development talk goes on in #maemo on irc.freenode.net. If you do not have an IRC client, use www.mibbit.com. We currently use https://launchpad.net/m-r for collaboration, but will move to maemo.org eventually. Our current status is that we have a N8x0 image with nm-applet, advanced backlight, load-applet on top of a hildon-desktop using Fremantle components, on top of Xorg and Ubuntu Jaunty. Previous progress can be viewed at http://jaiku.com/channel/reconstructedPOC

We have fringe projects in 770, Zaurus, x86, Wii ports, and as such, code will be built first on x86 to ensure cross-platform, and then in our cross-compilers.

= Sprint January 2008 and before: Basic installable image =

The purpose of this milestone:
* To provide a basic installable firmware image, both through installer and through flashing, for N8x0 tablets. 
* The image must include a basic user interface and ability to connect to Wi-Fi networks.
* To provide a installer and image for 770 tablets.
* To provide initial developer tools so we can start developing for the tablets.
* Begin initial talks with Nokia and maemo.org on how to distribute full firmware images.
* Prepare for next milestone in terms of collaborative technologies. 

If you have a task that needs to be done to fullfill the purposes of this milestone, add it to the table below, set it to 'Just standing' status, and with no commit date and owner. 

If you want to take on a task, set the initial commit date, your nickname, and update your progress as you go, and update highlights of your work (including what gets added) as you work on it. Update your activity log each day you've performed something related to Mer.

If you encounter any bugs in Maemo platform software while developing for Maemo, report them on bugs.maemo.org , and add the bug number to the sprint bug overview.


{| class=&quot;wikitable&quot;
| style=&quot;background:LightGreen&quot; | Completed
| style=&quot;background:LightBlue&quot; | Good progress
| Just standing
| style=&quot;background:Orange&quot; | Some help needed!
| style=&quot;background:Tomato&quot; | Really stuck/delayed
|}

{| class=&quot;wikitable sortable&quot;
|-
! Committed
! Task
! Owner
! %
! Highlights
|- style=&quot;background:LightBlue&quot;
| December || [[Task:Community_firmware_image_distribution|Proposal for distribution of firmware images including closed-source bits needed for community editions]] || Stskeeps || 10% || First proposal involving initfs bits proposed through maemo-community.
|- style=&quot;background:LightGreen&quot;
| December || Initial imager - script to debootstrap and putting Mer on top of Ubuntu Jaunty minbase (x86, armel) for Mer/x86, Mer/armv5te (770,n8x0) || Stskeeps || 100% || [https://code.launchpad.net/~mer-committers/m-r/imager Provided here]
|- style=&quot;background:LightGreen&quot;
| December || Basic hildon-desktop up on Xorg, running with advanced-backlight and load-applet || Stskeeps, johnx, etc. || 100% || In repository
|- style=&quot;background:LightGreen&quot;
| December || Initial Scratchbox1 SDK for Mer/armv5te || Stskeeps || 100% || [[#SDK|Provided here]]
|- style=&quot;background:LightBlue&quot;
| 2008-15-12 || [[#Mer_Installer|Installer for Mer on Diablo]] || b-man || 70% || [http://trac.tspre.org/meiz Initial versions]
|- style=&quot;background:LightGreen&quot;
| 2008-17-12 || cx3110x-umac-module (symlink to umac.ko module || qwerty12 || 100% || Now in repository
|- style=&quot;background:LightGreen&quot;
| 2008-17-12 || nokia-n8x0-firmware (symlink to firmwares in initfs) || qwerty12 || 100% || Now in repository
|- style=&quot;background:LightGreen&quot;
| 2008-17-12 || hildon-desktop-env with hildon-input-method setup || qwerty12 || 100% || Now in repository
|- style=&quot;background:LightGreen&quot;
| January || Diablo kernel that boots from rootfs instead of initfs, and runs /sbin/tablet-init instead of init || qwerty12 || 100% || [http://trac.tspre.org/qwerty12 Provided here]
|- style=&quot;background:LightGreen&quot;
| January || Mer logo, (rescue menu) artwork, wallpaper, theme (titan) || wazd, Stskeeps || 100% || Now in repository (mer-omap-fb-splash, mer-rescue-menu, titan), also see [http://tabletui.wordpress.com/2009/01/12/repos-a-la-mer/ here]
|- style=&quot;background:LightBlue&quot;
| January || Missing localization strings in Hildon, (#4001) || Stskeeps || 50% ||
|- style=&quot;background:LightGreen&quot;
| January || Document how to get packages included in repository || Stskeeps || 100% || [[#Getting_your_package_included_in_the_Repository|provided here]]
|- style=&quot;&quot;
| || [[#qemu-eabi_cputransp_for_Scratchbox|qemu-eabi cputransp for Scratchbox]]|| none || 0% ||
|- style=&quot;&quot;
| || Fix backspace and enter kills Xorg bug || none || 0% ||
|- style=&quot;&quot;
| || Upload new themes to repository (we only have titan and plankton atm) || none || 0% ||
|- style=&quot;&quot;
| || Open system sounds (startup chime, touchscreen tap, etc) || none || 0% ||
|- style=&quot;&quot;
| || Replacing SDK icons with more modern ones || none || 0% ||
|- style=&quot;&quot;
| || Include dsme-tools from Deblet || none || 0% ||
|- style=&quot;&quot;
| || Include wifi power saving from Deblet || none || 0% ||
|- style=&quot;&quot;
| || Working X-terminal with hildon input method working || none || 0% ||
|}

Bug reports in bugzilla discovered through or related to Mer development in this sprint:

{{#bugzilla:id=4001,3858,3939,3997
  |columns=id,severity,product,status,resolution,summary,to
}}

=== Activity log ===

16th January

* stskeeps: remade Mer blueprint to fit more into maemo.org processes

= Documentation and tasks =

== SDK ==

First, install Fremantle SDK, and add yourself as a user to scratchbox.

As user:
* wget -c http://stskeeps.subnetmask.net/mer/arm-linux-cs2008q3-72-libtool2_1.0.11_i386.deb
* sudo dpkg -i arm-linux-cs2008q3-72-libtool2_1.0.11_i386.deb (run as root)
* wget -c http://stskeeps.subnetmask.net/mer/scratchbox-devkit-mer_1.0.11_i386.deb
* sudo dpkg -i scratchbox-devkit-mer_1.0.11_i386.deb
**You can optionally get qemu-arm-eabi and use that here instead. It is very good for your use of the SDK
* sb-conf setup MER-ARMEL --compiler=arm-linux-cs2008q3-72-libtool2 --devkits=debian-etch:cputransp:perl:mer --cputransp=qemu-arm-cvs-m -f
* sb-conf reset -f MER-ARMEL
* sb-conf select MER-ARMEL
* sb-conf rootstrap MER-ARMEL http://stskeeps.subnetmask.net/mer/mer-armel-rootstrap-v8.tar.gz
* sb-conf install MER-ARMEL --etc --devkits --fakeroot

ISSUES:
* You might have to do export PKG_CONFIG_PATH=/usr/share/pkgconfig:/usr/lib/pkgconfig to get some pkg-config stuff going
* You might have to set cpu right and such to target armv5el (no vfp)
* You probably need to get EABI cpu transparency target too
* 'not safe for cross-compilation' warnings (not true, i think)
* fakeroot apt-get dist-upgrade is good once in a while to keep up to date.

== Mer Installer ==

Make installer for Maemo/Diablo that does the following:

* Depends on bootmenu (bootmenu with bootmenu.d item)
* Allows simple installation (partition my internal/external MMC to 50mb FAT, 128mb swap, rest linux), or advanced (choose my own partition)
* Partitions, mkfs.ext3's and unpacks a downloaded tar.gz (built by the imager, uploaded to some http.). Should support resume of dls (wget -c?)
* Sets up the bootmenu item for Mer.

== qemu-eabi cputransp for Scratchbox ==

See http://maemogeek.blogspot.com/2007/11/installing-qemu-arm-eabi-patch-into.html

Make a debian package with this binary (for i386), installing into /scratchbox/devkits/cputransp/bin/qemu-arm-eabi-sb2 
and adding 'qemu-arm-eabi-sb2' to /scratchbox/devkits/cputransp/etc/cputransp-methods when installing, and removing when
removing (sed -i?)

Edit [[#SDK||SDK]] to make instructions use qemu-arm-eabi-sb2 instead, and getting your .deb package.

== Getting your package included in the Repository ==

* Make sure it compiles after getting your build dependancies, dpkg-buildpackage. 
* Ideally test both dpkg-buildpackage -S -us -uc, dpkg-buildpackage -b -us -uc, dpkg-buildpackage -B (some packages may not build any arch-dep packages, so that's ok. Microdocument it on Jaiku.)
* bzr export &lt;source package name&gt; lp:~yourusername/m-r/&lt;source package name&gt; (gives you a checked out version, without metadata)
* cd &lt;source package name&gt;
* dpkg-buildpackage -S -us -uc, to generate a source package
* Upload the resulting source package (*.changes, *.tar.gz, possibly *.diff.gz) to your ~/incoming on the repo server.
* ssh yourlogin@reposerver /import-new-packages

(This will add the source package to repository)

* You need access to merbuilder &amp; repository upload for the following, ask Stskeeps on Jaiku/IRC for this. Or refer on Jaiku to the source package and some may pick it up
* On http://jaiku.com/channel/merbuilder , write &quot;build &lt;SOURCE PACKAGE NAME&gt;=&lt;package version&gt;&quot;
* Monitor progress at http://merbuilder.jaiku.com
* An LP player notes that it has picked up a package for building at a certain builder
* A toast means it baked properly on this architecture. And is uploaded to repository.
* A heart means it built properly on all architectures. And is uploaded to the repository
* A bomb means it failed to build on an architecture.
* A shopping wagon means it has noticed your build request and queued it.</text>
    </revision>
  </page>
  <page>
    <title>User:Stskeeps/Harmattan collaboration proposal</title>
    <id>2273</id>
    <revision>
      <id>16500</id>
      <timestamp>2009-08-14T20:27:51Z</timestamp>
      <contributor>
        <username>lbt</username>
        <id>47</id>
      </contributor>
      <comment>Category Mer</comment>
      <text xml:space="preserve">'''(work in progress, a proposal/idea and not complete at all)'''

== Now: Mer-as-distro and Mer-as-upstream ==

We operate with the terms 'Mer-as-distro' and 'Mer-as-upstream' in the Mer project. 

This refers to two views on Mer. Mer-as-distro is the distribution / the mix of packages + the hardware support packages which represents the open and portable OS developed by the maemo.org community.

Mer-as-upstream represents the target-agnostic set of software. It's the current set of Maemo Fremantle packages, modified to build on top of modern distributions and not rely on being compiled in Scratchbox, or installed on a Nokia Internet Tablet.

== Future: Maemo Platform ==

Maemo Platform is defined as a set of software implementing the Maemo platform that is target-agnostic. This would be APIs, UI, reference themes, sounds, daemons, applications and data making together the basic Maemo platform that developers target. 

The Maemo Platform should be able to 'stand on it's own' on top of a reference distribution and hence be complete and usable in itself. The goal is that an application built for Maemo Platform will build on any Maemo Platform implementers.

=== Platform development ===

Software in the Maemo platform would be developed in the public. There would be a shared collaboration space (Gitorious, for instance) hosting the software, with clear directions in maemo.org web on where to find the DVCS repositories. The Maemo platform would have a public roadmap for future development.

Each piece of software would have one or more maemo.org members (Maemo Devices developers are included in this set) as gatekeepers for what contributed patches gets merged in to the software. Each team of gatekeepers determines who to add or remove as additional gatekeepers.

Each piece of software would be considered separately released and not focused onto specific releases of either Mer or Maemo - when you have a fix and you consider the current state release-worthy, a release is tagged.

Each piece of software would have a public roadmap determined by the gatekeepers based on the public roadmap. Gatekeepers would generate tasks based on this roadmap which contributors can choose to take upon him/herself to do (see maemo.org sprint process, Mer sprintweb) in cooperation with gatekeepers &amp; mentors.

Each piece of software would have reference packaging (seperated in branches) to base distro-specific packaging on.

All bugs related to Maemo Platform would be maintained in bugs.maemo.org. 

== Future: Mer ==

The future Mer distribution (previously Mer-as-distro) would be based on Maemo Platform and be considered a mix of software with community-specific patches. It would be fully open source, usable and adaptable by any user or vendor.

Mer gatekeeper(s) would maintain a cloned repository of a Maemo Platform package with a branch for Mer packaging, and a branch for Mer-specific patches, if any difference exists between Mer packaging and reference packaging.

== Future: Maemo Harmattan ==

The future Maemo Harmattan would be based on Maemo Platform. Vendor differentiation for certain devices would then be applied on top of Maemo platform and distribution of choice (Themes, applications, services, added value software, icons, firmware, device-specific APIs, etc.)

Maemo gatekeeper(s) would maintain a cloned repository (possibly internal) of a Maemo Platform package with a branch for Maemo packaging, and a branch for Maemo-specific patches, if any difference exists between Maemo packaging and reference packaging.

[[Category:Mer]]</text>
    </revision>
  </page>
  <page>
    <title>User:Stskeeps/Sandbox/Nokia Wishlist</title>
    <id>1512</id>
    <revision>
      <id>10715</id>
      <timestamp>2009-02-06T11:51:00Z</timestamp>
      <contributor>
        <username>jaffa</username>
        <id>14</id>
      </contributor>
      <minor/>
      <comment>Clarify initfs image intention</comment>
      <text xml:space="preserve">=== Background ===
This is a wishlist of items, following from [[Task:Community_firmware_image_distribution]], to allow Maemo-based operating systems like Mer to be viable alternatives for both developers and end-users.

Nokia-closed items are not part of this list, unless there was doubt about if they were fully Nokia-closed items. Distribution of Nokia-closed items is to be decided how this could be done in a proper way through maemo.org (see [http://lists.maemo.org/pipermail/maemo-community/2009-January/002946.htm this] and [http://internettablettalk.com/forums/showpost.php?p=261619&amp;postcount=26 this, which clarifies statement]) .

=== Intent ===
* Creation and distribution of firmware images for Nokia Internet Tablets containing the components below.
* Distribution of these components would be from a central server (maemo.org/tablets-dev.nokia.com) behind a MAC identification, as per the existing Nokia-created images.
* The closed source binaries and libraries to be shipped unchanged.
* Modification of secondary files (such as installation and start-up scripts) for these components to integrate them into non-Maemo systems, where required.
* Support of all Nokia Internet Tablet devices: Nokia 770, N800, N810 and N810W.

=== 3rd party wishlist === 
The [https://garage.maemo.org/docman/view.php/106/354/maemopackages-20080725.ods maemo packages overview] has been reviewed as the basis of this list.

When a package contains links to files contained in initfs, the wish is for the actual files pointed to.

{| class=&quot;wikitable&quot;
| style=&quot;background:PaleGreen&quot; | Useful for advanced similar experience as to Maemo 4 on tablets, could be downloaded from a Nokia package repository (MAC-locked)
| style=&quot;background:LightSteelBlue&quot; | Useful for basic similar experience as to Maemo 4 on tablets, could be downloaded from a Nokia package repository (MAC-locked)
| style=&quot;background:LightYellow&quot; | Useful for basic similar experience as to Maemo 4 on tablets, should be part of firmware image as to function properly
| style=&quot;background:Tomato&quot; | Important for proper hardware interfacing for community firmware images
|}

{| class=&quot;wikitable sortable&quot;
|-
! Priority
! Package
! Files
! Description
! Reasoning
! Response from Nokia
|- style=&quot;background:Tomato&quot;
| rowspan=&quot;2&quot; | 1
| wlan-firmware
| 
| rowspan=&quot;2&quot; | Firmware (and SoftMAC) for the Sputnik WLAN 
| rowspan=&quot;2&quot; | Hardware interfacing for N8x0(W) (&amp; 770): WiFi (is listed as Nokia-closed but is it?)
| rowspan=&quot;2&quot; | ?
|- style=&quot;background:Tomato&quot;
|
| umac.ko from initfs
|- style=&quot;background:Tomato&quot;
| 1
| bt-firmware
|
| Firmware for the Sputnik BT
| Hardware interfacing for N8x0W: Bluetooth
| ?
|- style=&quot;background:Tomato&quot;
| 2
|
| /mnt/initfs/usr/lib/hotplug/firmware/brf6150fw.bin
| Firmware for 770 bluetooth
| Hardware interfacing for 770: Bluetooth
| ?
|- style=&quot;background:Tomato&quot;
| 1
| osso-dsp-modules-rx-44
|
| DSP modules for OSSO Multimedia framework
| Hardware interfacing for 770, N8x0(W): DSP Sound and codecs (listed as Texas Instruments owned on [[Why_the_closed_packages]])
| ?
|- style=&quot;background:Tomato&quot;
| 2
| gpsdriver
|
| Driver for GPS5300 GPS chip
| Hardware interfacing for N810(W): GPS driver (listed as nokia-closed but uncertain?)
| ?
|- style=&quot;background:LightSteelBlue&quot;
| rowspan=&quot;2&quot; | 3
| rowspan=&quot;2&quot; | hildon-input-method-plugins
| Simpliwrite (art)
| Handwriting recognition
| Useful for similar experience to Maemo 4 on tablets
| ?
|- style=&quot;background:LightSteelBlue&quot;
| Ezitext (zi)
| Word completion for input method
| Useful for similar experience to Maemo 4 on tablets
| ?
|- style=&quot;background:LightSteelBlue&quot;
| 2
| adobe-flashplayer
|
| Adobe Flash browser plugin
| Flash is a key web experience
| ?
|- style=&quot;background:PaleGreen&quot;
| 3
| gstreamer0.10-hantro
|
| Codecs for GStreamer, optimized for the tablets
| Useful for proper performance of video decoding on tablets
| ?
|}</text>
    </revision>
  </page>
  <page>
    <title>User:Sunyi0225</title>
    <id>3834</id>
    <revision>
      <id>32211</id>
      <timestamp>2010-04-09T08:42:56Z</timestamp>
      <contributor>
        <username>sunyi0225</username>
        <id>2495</id>
      </contributor>
      <comment>New page: we want to do a tracker extractor support full-text index like text,sms,email in n900.we hope use lucene's full-text index extractor for reference,and improve the manner on sms,email consi...</comment>
      <text xml:space="preserve">we want to do a tracker extractor support full-text index like text,sms,email in n900.we hope use lucene's full-text index extractor for reference,and improve the manner on sms,email considering their characteristic.because our mother languege is chinese,so if time is comfortable ,we will also do a Analyzer for chinese.
we hope it is helper for others and can unite the metedata  extractor and full-text extractor in tracker.

SunYi and WangGuan</text>
    </revision>
  </page>
  <page>
    <title>User:Tanner</title>
    <id>3494</id>
    <revision>
      <id>36113</id>
      <timestamp>2010-06-21T06:50:14Z</timestamp>
      <contributor>
        <username>tanner</username>
        <id>1712</id>
      </contributor>
      <comment>domain change maemory.com</comment>
      <text xml:space="preserve">= Packages =

info about some of the packages I've uploaded to extras-devel

== [http://maemo.org/packages/view/debhelper7/ debhelper7] ==

see also http://wiki.maemo.org/Packaging

A backport of Debhelper 7 for Fremantle is available in extras-devel.
It works transparently and can coexist with debhelper 5 in the SDK.
It also works on the autobuilder, if you specify
 Build-Depends: debhelper7
in debian/control.
The following lines in debian/rules are necessary to use it:

 PATH:=/usr/bin/dh7:/usr/bin:$(PATH)
 export PATH
 SBOX_REDIRECT_IGNORE=/usr/bin/perl
 export SBOX_REDIRECT_IGNORE

We are working on enhancement to make optification is easier, i.e. direct installation of files in the /opt hierarchy.

If you also need a more recent cdbs, then use the package [http://maemo.org/packages/view/cdbs-dh7/ cdbs-dh7],
which conflicts with the standard cdbs and does not work on autobuilder yet.

To replace several tools in scratchbox you can also use the following line as a template
 SBOX_REDIRECT_IGNORE:=$(shell echo /usr/bin/{perl,dh_*} | sed &quot;s/ /:/g&quot;)

== CLI icon ==

For your convenience I have uuencoded Tim Samoff's [http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html CLI icon]
which is supposed to be added to the debian/control file of CLI apps. You can download it [http://n900.tannerlab.com/tools/cli.icon.txt here].

== [http://maemo.org/packages/view/kernel-flasher-maemo/ custom Linux kernel] ==

My custom kernel which contains probably everything one could need on the N900:

 This custom kernel contains additional modules for IPv6, packet filtering,
 NAT, tunneling, kernel configuration, Wifi mesh networking,
 ext4, XFS, reiserfs, NTFS reading, NILFS2, ISO9660, UDF, CIFS, automounter,
 UNIONFS, device mapper and dmloop, cryptography, cryptoloop,
 EFI partitions, UTF8 codepages, mouse+joystick input,
 USB/IP and generic USB device drivers.
 It shows a boot logo.

Just install the package &quot;kernel-flasher-maemo&quot; from extras-devel/non-free (section System) and reboot.
Reverting to the original kernel is simple:  &quot;apt-get install --reinstall kernel kernel-flasher&quot;  or reflash only the original kernel image.
see [http://talk.maemo.org/showthread.php?t=43420 TMO page] for more details.

== GNU tools ==
the crippled busybox is installed on the N900.
command line users prefer the real GNU tools.
these are the optified packages for the device.
Most of them do not take use more RAM than busybox (a few KBs)!
[http://maemo.org/packages/view/coreutils-gnu/ coreutils-gnu]
[http://maemo.org/packages/view/diffutils-gnu/ diffutils-gnu]
[http://maemo.org/packages/view/findutils-gnu/ findutils-gnu]
[http://maemo.org/packages/view/grep-gnu/ grep-gnu]
[http://maemo.org/packages/view/sed-gnu/ sed-gnu]
[http://maemo.org/packages/view/tar-gnu/ tar-gnu]

== [http://maemo.org/packages/view/texlive-latex-base/ TeXLive 2009] ==
[http://talk.maemo.org/showthread.php?t=42087 talk page]

== [http://maemo.org/packages/view/r-base-core/ R] (statistics) ==

bug: installation fails with ucfr missing
solution: wait or edit r-base-core.postinst and comment line 44 out

== [http://maemo.org/packages/view/libblas3gf/ BLAS] [http://maemo.org/packages/view/liblapack3gf/ LAPACK] [http://maemo.org/packages/view/libsuitesparse-3.1.0/ suitesparse] ==

bug: linking against BLAS and LAPACK currently hardcodes the links found in the -dev package.

== [http://maemo.org/packages/view/python-numpy/ numpy], [http://maemo.org/packages/view/python-scipy/ scipy], [http://maemo.org/packages/view/python-sympy/ sympy] ==

[http://talk.maemo.org/showthread.php?t=33020 some discussion]

== [http://maemo.org/packages/view/bonnie++/ bonnie++] (filesystem benchmarks) ==
see [http://talk.maemo.org/showpost.php?p=504332&amp;postcount=76 post and ff]

== [http://maemo.org/packages/view/tcl8.5/ tcl8.5] [http://maemo.org/packages/view/tk8.5/ tk8.5] [http://maemo.org/packages/view/python-tk/ python-tk] ==

== [http://maemo.org/packages/view/lzma/ lzma] and its successor [http://maemo.org/packages/view/xz-utils/ xz-utils] ==

an extremely efficient compressor. it is much faster than bzip2 for decompression and yields about 30% smaller files.

== [http://maemo.org/packages/view/xskat/ xskat] ==

bug: keyboard doesn't work.
bug: window close button is not visible

== experimental packages ==

some experimental ports which I have not yet uploaded to extras-devel can be found in my repository

 deb http://n900.tannerlab.com/ fremantle free incompatible

currently: python2.6, perl5.10, GNU compiler collection 4.4.3, autoconf 2.64, automake1.10

----

= Ideas/plans: =

== [https://garage.maemo.org/projects/moebian/ Moebian]: Maemo/MeeGo on Debian ==

[http://wiki.maemo.org/Maemo_on_Debian Wiki] and [http://talk.maemo.org/showthread.php?t=44967 discussion]

== Brainstorm: [https://maemo.org/community/brainstorm/view/more_efficient_and_flexible_use_of_internal_flash Repartitioning] ==

[http://talk.maemo.org/showthread.php?t=37869 brainstorm discussion]
[http://talk.maemo.org/showthread.php?t=35122 repartitioning thread]

== Brainstorm: [http://maemo.org/community/brainstorm/view/stylus_and_finger_friendly_uis/ Stylus and finger friendly UIs] == 

[http://talk.maemo.org/showthread.php?p=525854 brainstorm discussion]

== alternative USB host solution ==

[http://talk.maemo.org/showthread.php?t=41870 USB/IP]

== full [http://wiki.maemo.org/Opt_Problem optification] ==

Ideally addon software should be installed only in /opt without any symlinks in / (NAND)
in accordance with [http://www.pathname.com/fhs/2.2/fhs-3.12.html FHS].
/usr/local should be moved and symlinked to /opt/local and is reserved for own programs not maintained by dpkg.

A package may either install its files directly (for small packages) in the /opt/maemo hierarchy (bin,etc,lib,man,share)
or in a separate directory /opt/&lt;package&gt; with its own hierarchy (bin,etc,lib,man,share).
For the latter solution packages should symlink all non-private files to /opt/maemo/{bin,etc,lib,man,share}
and the search paths of Maemo need to be adjusted in /etc/profile and  /etc/osso-af-init/af-defines.sh:

* PATH=$PATH:/opt/maemo/bin  (and sbin for root)
* ld.so.conf: add /opt/maemo/lib
* locales: [https://bugs.maemo.org/show_bug.cgi?id=8363 LOCPATH]=LOCPATH=/usr/share/locale:/opt/maemo/share/locale
* MANPATH=/opt/maemo/share/man
* pkgconfig: /usr/share/pkgconfig:/opt/maemo/share/pkgconfig
* info in info?: /usr/share/info:/opt/maemo/share/info
* apps in hildon: [https://bugs.maemo.org/show_bug.cgi?id=10531 Bug about Application Menu] /usr/share/applications:/opt/maemo/share/applications
* icons in hildon ?: /usr/share/icons:/opt/maemo/share/icons
this list may be incomplete - please help to complete it

As NAND is much faster than eMMC a cache manager could mantain a list
of very often used binaries and libraries in /opt and automatically
copy them and symlink them to a fixed size cache in NAND.

TMPDIR=/var/tmp should be moved to /opt/tmp
or /var/opt should symlink to /opt/var and contain a larger tmp directory.

A package for Maemo (tested on N800) that allows a package to set environment variables like XDG_DATA_DIRS is available: [http://svn.nomike.org/playground/trunk/opt-support/ opt-support]. I propose packages depend on opt-support and in their postinst add their variables to the file &quot;/etc/profile.env&quot;. -- dannym

== chroot instead of /opt ==
I have described my currently preferred [http://maemo.org/community/brainstorm/view/remove_256mb_limitation_of_the_rootfs_partition_in_the_n900/ solution as #5]
----

= Tips and tricks: =

== fresh builds ==

[http://maemo.org/packages/repository/latest/fremantle_extras-devel_free_armel/all/ latest packages]

[https://garage.maemo.org/builder/fremantle/?C=M;O=D autobuilder current builds]

== [[Repartitioning the flash]] ==

[http://talk.maemo.org/showpost.php?p=424811&amp;postcount=66 how to swap FAT and ext3 parition]
[http://talk.maemo.org/showpost.php?p=425359&amp;postcount=68 how to implement USB mass storage with a loopback file]

== Setting up a repository mirror on your server ==

[http://n900.tannerlab.com/mirror/repro-maemo.tgz reprepro configuration]

== Safely free some space on rootfs ==

[http://n900.tannerlab.com/tools/moveroot.sh This script] shows you how much space is freed.
It can also detect whether some directories have already been moved.
WARNING: Although this script works for most users, you should always perform a backup before running it.
Do not use this script if you have already used some other methods or scripts from [[Free_up_rootfs_space]]!
In this case reflashing is recommended.

# install the rootsh package from extras
# download the [http://n900.tannerlab.com/tools/moveroot.sh script] to your MyDocs (or upload it via SSH)
# in Terminal run
 sudo gainroot
 sh /home/user/MyDocs/moveroot.sh

It should have freed about 95MB on your rootfs.
Upgrading the firmware OTA after using the script is supposed to work.
If you reflash the firmware the script will automatically remove the files from the old firmware
when you run it again.

[http://n900.tannerlab.com/tools/unmoveroot.sh This untested script] reverts the modifications and moves as many as possible files back to rootfs.
Make sure that you have enough space on rootfs for that. Otherwise it will abort the operation. Instructions are the same as for moveroot.sh,
except that you call unmoveroot.sh.

== On-device flashing of a custom kernel image ==

This how to flash a kernel on-device (without USB/flasher 3.5):

# you have a kernel image /path/zImage (with it's modules installed)
# install the package &quot;sdk-fiasco-gen&quot; from SDK
# become root: &quot;sudo gainroot&quot;
# make a &quot;fiasco&quot; :)
 fiasco-gen -o /path/zImage.fiasco -g -k /path/zImage
# flash it
 /sbin/fiasco-image-update /path/zImage.fiasco 

== Reflashing &amp; Restore ==

this is a slightly modified version of the script I use to restore my N900 after a reflash.
My reflashing procedure is:

# store all settings with Backup on my SD card
# reflash with standard http://wiki.maemo.org/Updating_the_firmware, i.e.
 sudo flasher-3.5 -F ''&lt;current firmware image&gt;''.bin -f -R
# restore old backup except programs
# install rootsh from System
# in Terminal:
 sudo sh /home/backup/restore.sh
with [http://n900.tannerlab.com/tools/restore.sh this script (for PR&lt;1.2] or  [http://n900.tannerlab.com/tools/restore1.2.sh this script (PR1.2)] in /home/backup (feedback and patches are welcome).
It expects that you made a backup of /root and your selected modified files (e.g. /etc/ssh) in /home/backup.
The file &quot;pkgs&quot; should contain a list (line by line) of the package names you want to install.</text>
    </revision>
  </page>
  <page>
    <title>User:Tanner</title>
    <id>3494</id>
    <revision>
      <id>36113</id>
      <timestamp>2010-06-21T06:50:14Z</timestamp>
      <contributor>
        <username>tanner</username>
        <id>1712</id>
      </contributor>
      <comment>domain change maemory.com</comment>
      <text xml:space="preserve">= Packages =

info about some of the packages I've uploaded to extras-devel

== [http://maemo.org/packages/view/debhelper7/ debhelper7] ==

see also http://wiki.maemo.org/Packaging

A backport of Debhelper 7 for Fremantle is available in extras-devel.
It works transparently and can coexist with debhelper 5 in the SDK.
It also works on the autobuilder, if you specify
 Build-Depends: debhelper7
in debian/control.
The following lines in debian/rules are necessary to use it:

 PATH:=/usr/bin/dh7:/usr/bin:$(PATH)
 export PATH
 SBOX_REDIRECT_IGNORE=/usr/bin/perl
 export SBOX_REDIRECT_IGNORE

We are working on enhancement to make optification is easier, i.e. direct installation of files in the /opt hierarchy.

If you also need a more recent cdbs, then use the package [http://maemo.org/packages/view/cdbs-dh7/ cdbs-dh7],
which conflicts with the standard cdbs and does not work on autobuilder yet.

To replace several tools in scratchbox you can also use the following line as a template
 SBOX_REDIRECT_IGNORE:=$(shell echo /usr/bin/{perl,dh_*} | sed &quot;s/ /:/g&quot;)

== CLI icon ==

For your convenience I have uuencoded Tim Samoff's [http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html CLI icon]
which is supposed to be added to the debian/control file of CLI apps. You can download it [http://n900.tannerlab.com/tools/cli.icon.txt here].

== [http://maemo.org/packages/view/kernel-flasher-maemo/ custom Linux kernel] ==

My custom kernel which contains probably everything one could need on the N900:

 This custom kernel contains additional modules for IPv6, packet filtering,
 NAT, tunneling, kernel configuration, Wifi mesh networking,
 ext4, XFS, reiserfs, NTFS reading, NILFS2, ISO9660, UDF, CIFS, automounter,
 UNIONFS, device mapper and dmloop, cryptography, cryptoloop,
 EFI partitions, UTF8 codepages, mouse+joystick input,
 USB/IP and generic USB device drivers.
 It shows a boot logo.

Just install the package &quot;kernel-flasher-maemo&quot; from extras-devel/non-free (section System) and reboot.
Reverting to the original kernel is simple:  &quot;apt-get install --reinstall kernel kernel-flasher&quot;  or reflash only the original kernel image.
see [http://talk.maemo.org/showthread.php?t=43420 TMO page] for more details.

== GNU tools ==
the crippled busybox is installed on the N900.
command line users prefer the real GNU tools.
these are the optified packages for the device.
Most of them do not take use more RAM than busybox (a few KBs)!
[http://maemo.org/packages/view/coreutils-gnu/ coreutils-gnu]
[http://maemo.org/packages/view/diffutils-gnu/ diffutils-gnu]
[http://maemo.org/packages/view/findutils-gnu/ findutils-gnu]
[http://maemo.org/packages/view/grep-gnu/ grep-gnu]
[http://maemo.org/packages/view/sed-gnu/ sed-gnu]
[http://maemo.org/packages/view/tar-gnu/ tar-gnu]

== [http://maemo.org/packages/view/texlive-latex-base/ TeXLive 2009] ==
[http://talk.maemo.org/showthread.php?t=42087 talk page]

== [http://maemo.org/packages/view/r-base-core/ R] (statistics) ==

bug: installation fails with ucfr missing
solution: wait or edit r-base-core.postinst and comment line 44 out

== [http://maemo.org/packages/view/libblas3gf/ BLAS] [http://maemo.org/packages/view/liblapack3gf/ LAPACK] [http://maemo.org/packages/view/libsuitesparse-3.1.0/ suitesparse] ==

bug: linking against BLAS and LAPACK currently hardcodes the links found in the -dev package.

== [http://maemo.org/packages/view/python-numpy/ numpy], [http://maemo.org/packages/view/python-scipy/ scipy], [http://maemo.org/packages/view/python-sympy/ sympy] ==

[http://talk.maemo.org/showthread.php?t=33020 some discussion]

== [http://maemo.org/packages/view/bonnie++/ bonnie++] (filesystem benchmarks) ==
see [http://talk.maemo.org/showpost.php?p=504332&amp;postcount=76 post and ff]

== [http://maemo.org/packages/view/tcl8.5/ tcl8.5] [http://maemo.org/packages/view/tk8.5/ tk8.5] [http://maemo.org/packages/view/python-tk/ python-tk] ==

== [http://maemo.org/packages/view/lzma/ lzma] and its successor [http://maemo.org/packages/view/xz-utils/ xz-utils] ==

an extremely efficient compressor. it is much faster than bzip2 for decompression and yields about 30% smaller files.

== [http://maemo.org/packages/view/xskat/ xskat] ==

bug: keyboard doesn't work.
bug: window close button is not visible

== experimental packages ==

some experimental ports which I have not yet uploaded to extras-devel can be found in my repository

 deb http://n900.tannerlab.com/ fremantle free incompatible

currently: python2.6, perl5.10, GNU compiler collection 4.4.3, autoconf 2.64, automake1.10

----

= Ideas/plans: =

== [https://garage.maemo.org/projects/moebian/ Moebian]: Maemo/MeeGo on Debian ==

[http://wiki.maemo.org/Maemo_on_Debian Wiki] and [http://talk.maemo.org/showthread.php?t=44967 discussion]

== Brainstorm: [https://maemo.org/community/brainstorm/view/more_efficient_and_flexible_use_of_internal_flash Repartitioning] ==

[http://talk.maemo.org/showthread.php?t=37869 brainstorm discussion]
[http://talk.maemo.org/showthread.php?t=35122 repartitioning thread]

== Brainstorm: [http://maemo.org/community/brainstorm/view/stylus_and_finger_friendly_uis/ Stylus and finger friendly UIs] == 

[http://talk.maemo.org/showthread.php?p=525854 brainstorm discussion]

== alternative USB host solution ==

[http://talk.maemo.org/showthread.php?t=41870 USB/IP]

== full [http://wiki.maemo.org/Opt_Problem optification] ==

Ideally addon software should be installed only in /opt without any symlinks in / (NAND)
in accordance with [http://www.pathname.com/fhs/2.2/fhs-3.12.html FHS].
/usr/local should be moved and symlinked to /opt/local and is reserved for own programs not maintained by dpkg.

A package may either install its files directly (for small packages) in the /opt/maemo hierarchy (bin,etc,lib,man,share)
or in a separate directory /opt/&lt;package&gt; with its own hierarchy (bin,etc,lib,man,share).
For the latter solution packages should symlink all non-private files to /opt/maemo/{bin,etc,lib,man,share}
and the search paths of Maemo need to be adjusted in /etc/profile and  /etc/osso-af-init/af-defines.sh:

* PATH=$PATH:/opt/maemo/bin  (and sbin for root)
* ld.so.conf: add /opt/maemo/lib
* locales: [https://bugs.maemo.org/show_bug.cgi?id=8363 LOCPATH]=LOCPATH=/usr/share/locale:/opt/maemo/share/locale
* MANPATH=/opt/maemo/share/man
* pkgconfig: /usr/share/pkgconfig:/opt/maemo/share/pkgconfig
* info in info?: /usr/share/info:/opt/maemo/share/info
* apps in hildon: [https://bugs.maemo.org/show_bug.cgi?id=10531 Bug about Application Menu] /usr/share/applications:/opt/maemo/share/applications
* icons in hildon ?: /usr/share/icons:/opt/maemo/share/icons
this list may be incomplete - please help to complete it

As NAND is much faster than eMMC a cache manager could mantain a list
of very often used binaries and libraries in /opt and automatically
copy them and symlink them to a fixed size cache in NAND.

TMPDIR=/var/tmp should be moved to /opt/tmp
or /var/opt should symlink to /opt/var and contain a larger tmp directory.

A package for Maemo (tested on N800) that allows a package to set environment variables like XDG_DATA_DIRS is available: [http://svn.nomike.org/playground/trunk/opt-support/ opt-support]. I propose packages depend on opt-support and in their postinst add their variables to the file &quot;/etc/profile.env&quot;. -- dannym

== chroot instead of /opt ==
I have described my currently preferred [http://maemo.org/community/brainstorm/view/remove_256mb_limitation_of_the_rootfs_partition_in_the_n900/ solution as #5]
----

= Tips and tricks: =

== fresh builds ==

[http://maemo.org/packages/repository/latest/fremantle_extras-devel_free_armel/all/ latest packages]

[https://garage.maemo.org/builder/fremantle/?C=M;O=D autobuilder current builds]

== [[Repartitioning the flash]] ==

[http://talk.maemo.org/showpost.php?p=424811&amp;postcount=66 how to swap FAT and ext3 parition]
[http://talk.maemo.org/showpost.php?p=425359&amp;postcount=68 how to implement USB mass storage with a loopback file]

== Setting up a repository mirror on your server ==

[http://n900.tannerlab.com/mirror/repro-maemo.tgz reprepro configuration]

== Safely free some space on rootfs ==

[http://n900.tannerlab.com/tools/moveroot.sh This script] shows you how much space is freed.
It can also detect whether some directories have already been moved.
WARNING: Although this script works for most users, you should always perform a backup before running it.
Do not use this script if you have already used some other methods or scripts from [[Free_up_rootfs_space]]!
In this case reflashing is recommended.

# install the rootsh package from extras
# download the [http://n900.tannerlab.com/tools/moveroot.sh script] to your MyDocs (or upload it via SSH)
# in Terminal run
 sudo gainroot
 sh /home/user/MyDocs/moveroot.sh

It should have freed about 95MB on your rootfs.
Upgrading the firmware OTA after using the script is supposed to work.
If you reflash the firmware the script will automatically remove the files from the old firmware
when you run it again.

[http://n900.tannerlab.com/tools/unmoveroot.sh This untested script] reverts the modifications and moves as many as possible files back to rootfs.
Make sure that you have enough space on rootfs for that. Otherwise it will abort the operation. Instructions are the same as for moveroot.sh,
except that you call unmoveroot.sh.

== On-device flashing of a custom kernel image ==

This how to flash a kernel on-device (without USB/flasher 3.5):

# you have a kernel image /path/zImage (with it's modules installed)
# install the package &quot;sdk-fiasco-gen&quot; from SDK
# become root: &quot;sudo gainroot&quot;
# make a &quot;fiasco&quot; :)
 fiasco-gen -o /path/zImage.fiasco -g -k /path/zImage
# flash it
 /sbin/fiasco-image-update /path/zImage.fiasco 

== Reflashing &amp; Restore ==

this is a slightly modified version of the script I use to restore my N900 after a reflash.
My reflashing procedure is:

# store all settings with Backup on my SD card
# reflash with standard http://wiki.maemo.org/Updating_the_firmware, i.e.
 sudo flasher-3.5 -F ''&lt;current firmware image&gt;''.bin -f -R
# restore old backup except programs
# install rootsh from System
# in Terminal:
 sudo sh /home/backup/restore.sh
with [http://n900.tannerlab.com/tools/restore.sh this script (for PR&lt;1.2] or  [http://n900.tannerlab.com/tools/restore1.2.sh this script (PR1.2)] in /home/backup (feedback and patches are welcome).
It expects that you made a backup of /root and your selected modified files (e.g. /etc/ssh) in /home/backup.
The file &quot;pkgs&quot; should contain a list (line by line) of the package names you want to install.</text>
    </revision>
  </page>
  <page>
    <title>User:Tanner</title>
    <id>3494</id>
    <revision>
      <id>36113</id>
      <timestamp>2010-06-21T06:50:14Z</timestamp>
      <contributor>
        <username>tanner</username>
        <id>1712</id>
      </contributor>
      <comment>domain change maemory.com</comment>
      <text xml:space="preserve">= Packages =

info about some of the packages I've uploaded to extras-devel

== [http://maemo.org/packages/view/debhelper7/ debhelper7] ==

see also http://wiki.maemo.org/Packaging

A backport of Debhelper 7 for Fremantle is available in extras-devel.
It works transparently and can coexist with debhelper 5 in the SDK.
It also works on the autobuilder, if you specify
 Build-Depends: debhelper7
in debian/control.
The following lines in debian/rules are necessary to use it:

 PATH:=/usr/bin/dh7:/usr/bin:$(PATH)
 export PATH
 SBOX_REDIRECT_IGNORE=/usr/bin/perl
 export SBOX_REDIRECT_IGNORE

We are working on enhancement to make optification is easier, i.e. direct installation of files in the /opt hierarchy.

If you also need a more recent cdbs, then use the package [http://maemo.org/packages/view/cdbs-dh7/ cdbs-dh7],
which conflicts with the standard cdbs and does not work on autobuilder yet.

To replace several tools in scratchbox you can also use the following line as a template
 SBOX_REDIRECT_IGNORE:=$(shell echo /usr/bin/{perl,dh_*} | sed &quot;s/ /:/g&quot;)

== CLI icon ==

For your convenience I have uuencoded Tim Samoff's [http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html CLI icon]
which is supposed to be added to the debian/control file of CLI apps. You can download it [http://n900.tannerlab.com/tools/cli.icon.txt here].

== [http://maemo.org/packages/view/kernel-flasher-maemo/ custom Linux kernel] ==

My custom kernel which contains probably everything one could need on the N900:

 This custom kernel contains additional modules for IPv6, packet filtering,
 NAT, tunneling, kernel configuration, Wifi mesh networking,
 ext4, XFS, reiserfs, NTFS reading, NILFS2, ISO9660, UDF, CIFS, automounter,
 UNIONFS, device mapper and dmloop, cryptography, cryptoloop,
 EFI partitions, UTF8 codepages, mouse+joystick input,
 USB/IP and generic USB device drivers.
 It shows a boot logo.

Just install the package &quot;kernel-flasher-maemo&quot; from extras-devel/non-free (section System) and reboot.
Reverting to the original kernel is simple:  &quot;apt-get install --reinstall kernel kernel-flasher&quot;  or reflash only the original kernel image.
see [http://talk.maemo.org/showthread.php?t=43420 TMO page] for more details.

== GNU tools ==
the crippled busybox is installed on the N900.
command line users prefer the real GNU tools.
these are the optified packages for the device.
Most of them do not take use more RAM than busybox (a few KBs)!
[http://maemo.org/packages/view/coreutils-gnu/ coreutils-gnu]
[http://maemo.org/packages/view/diffutils-gnu/ diffutils-gnu]
[http://maemo.org/packages/view/findutils-gnu/ findutils-gnu]
[http://maemo.org/packages/view/grep-gnu/ grep-gnu]
[http://maemo.org/packages/view/sed-gnu/ sed-gnu]
[http://maemo.org/packages/view/tar-gnu/ tar-gnu]

== [http://maemo.org/packages/view/texlive-latex-base/ TeXLive 2009] ==
[http://talk.maemo.org/showthread.php?t=42087 talk page]

== [http://maemo.org/packages/view/r-base-core/ R] (statistics) ==

bug: installation fails with ucfr missing
solution: wait or edit r-base-core.postinst and comment line 44 out

== [http://maemo.org/packages/view/libblas3gf/ BLAS] [http://maemo.org/packages/view/liblapack3gf/ LAPACK] [http://maemo.org/packages/view/libsuitesparse-3.1.0/ suitesparse] ==

bug: linking against BLAS and LAPACK currently hardcodes the links found in the -dev package.

== [http://maemo.org/packages/view/python-numpy/ numpy], [http://maemo.org/packages/view/python-scipy/ scipy], [http://maemo.org/packages/view/python-sympy/ sympy] ==

[http://talk.maemo.org/showthread.php?t=33020 some discussion]

== [http://maemo.org/packages/view/bonnie++/ bonnie++] (filesystem benchmarks) ==
see [http://talk.maemo.org/showpost.php?p=504332&amp;postcount=76 post and ff]

== [http://maemo.org/packages/view/tcl8.5/ tcl8.5] [http://maemo.org/packages/view/tk8.5/ tk8.5] [http://maemo.org/packages/view/python-tk/ python-tk] ==

== [http://maemo.org/packages/view/lzma/ lzma] and its successor [http://maemo.org/packages/view/xz-utils/ xz-utils] ==

an extremely efficient compressor. it is much faster than bzip2 for decompression and yields about 30% smaller files.

== [http://maemo.org/packages/view/xskat/ xskat] ==

bug: keyboard doesn't work.
bug: window close button is not visible

== experimental packages ==

some experimental ports which I have not yet uploaded to extras-devel can be found in my repository

 deb http://n900.tannerlab.com/ fremantle free incompatible

currently: python2.6, perl5.10, GNU compiler collection 4.4.3, autoconf 2.64, automake1.10

----

= Ideas/plans: =

== [https://garage.maemo.org/projects/moebian/ Moebian]: Maemo/MeeGo on Debian ==

[http://wiki.maemo.org/Maemo_on_Debian Wiki] and [http://talk.maemo.org/showthread.php?t=44967 discussion]

== Brainstorm: [https://maemo.org/community/brainstorm/view/more_efficient_and_flexible_use_of_internal_flash Repartitioning] ==

[http://talk.maemo.org/showthread.php?t=37869 brainstorm discussion]
[http://talk.maemo.org/showthread.php?t=35122 repartitioning thread]

== Brainstorm: [http://maemo.org/community/brainstorm/view/stylus_and_finger_friendly_uis/ Stylus and finger friendly UIs] == 

[http://talk.maemo.org/showthread.php?p=525854 brainstorm discussion]

== alternative USB host solution ==

[http://talk.maemo.org/showthread.php?t=41870 USB/IP]

== full [http://wiki.maemo.org/Opt_Problem optification] ==

Ideally addon software should be installed only in /opt without any symlinks in / (NAND)
in accordance with [http://www.pathname.com/fhs/2.2/fhs-3.12.html FHS].
/usr/local should be moved and symlinked to /opt/local and is reserved for own programs not maintained by dpkg.

A package may either install its files directly (for small packages) in the /opt/maemo hierarchy (bin,etc,lib,man,share)
or in a separate directory /opt/&lt;package&gt; with its own hierarchy (bin,etc,lib,man,share).
For the latter solution packages should symlink all non-private files to /opt/maemo/{bin,etc,lib,man,share}
and the search paths of Maemo need to be adjusted in /etc/profile and  /etc/osso-af-init/af-defines.sh:

* PATH=$PATH:/opt/maemo/bin  (and sbin for root)
* ld.so.conf: add /opt/maemo/lib
* locales: [https://bugs.maemo.org/show_bug.cgi?id=8363 LOCPATH]=LOCPATH=/usr/share/locale:/opt/maemo/share/locale
* MANPATH=/opt/maemo/share/man
* pkgconfig: /usr/share/pkgconfig:/opt/maemo/share/pkgconfig
* info in info?: /usr/share/info:/opt/maemo/share/info
* apps in hildon: [https://bugs.maemo.org/show_bug.cgi?id=10531 Bug about Application Menu] /usr/share/applications:/opt/maemo/share/applications
* icons in hildon ?: /usr/share/icons:/opt/maemo/share/icons
this list may be incomplete - please help to complete it

As NAND is much faster than eMMC a cache manager could mantain a list
of very often used binaries and libraries in /opt and automatically
copy them and symlink them to a fixed size cache in NAND.

TMPDIR=/var/tmp should be moved to /opt/tmp
or /var/opt should symlink to /opt/var and contain a larger tmp directory.

A package for Maemo (tested on N800) that allows a package to set environment variables like XDG_DATA_DIRS is available: [http://svn.nomike.org/playground/trunk/opt-support/ opt-support]. I propose packages depend on opt-support and in their postinst add their variables to the file &quot;/etc/profile.env&quot;. -- dannym

== chroot instead of /opt ==
I have described my currently preferred [http://maemo.org/community/brainstorm/view/remove_256mb_limitation_of_the_rootfs_partition_in_the_n900/ solution as #5]
----

= Tips and tricks: =

== fresh builds ==

[http://maemo.org/packages/repository/latest/fremantle_extras-devel_free_armel/all/ latest packages]

[https://garage.maemo.org/builder/fremantle/?C=M;O=D autobuilder current builds]

== [[Repartitioning the flash]] ==

[http://talk.maemo.org/showpost.php?p=424811&amp;postcount=66 how to swap FAT and ext3 parition]
[http://talk.maemo.org/showpost.php?p=425359&amp;postcount=68 how to implement USB mass storage with a loopback file]

== Setting up a repository mirror on your server ==

[http://n900.tannerlab.com/mirror/repro-maemo.tgz reprepro configuration]

== Safely free some space on rootfs ==

[http://n900.tannerlab.com/tools/moveroot.sh This script] shows you how much space is freed.
It can also detect whether some directories have already been moved.
WARNING: Although this script works for most users, you should always perform a backup before running it.
Do not use this script if you have already used some other methods or scripts from [[Free_up_rootfs_space]]!
In this case reflashing is recommended.

# install the rootsh package from extras
# download the [http://n900.tannerlab.com/tools/moveroot.sh script] to your MyDocs (or upload it via SSH)
# in Terminal run
 sudo gainroot
 sh /home/user/MyDocs/moveroot.sh

It should have freed about 95MB on your rootfs.
Upgrading the firmware OTA after using the script is supposed to work.
If you reflash the firmware the script will automatically remove the files from the old firmware
when you run it again.

[http://n900.tannerlab.com/tools/unmoveroot.sh This untested script] reverts the modifications and moves as many as possible files back to rootfs.
Make sure that you have enough space on rootfs for that. Otherwise it will abort the operation. Instructions are the same as for moveroot.sh,
except that you call unmoveroot.sh.

== On-device flashing of a custom kernel image ==

This how to flash a kernel on-device (without USB/flasher 3.5):

# you have a kernel image /path/zImage (with it's modules installed)
# install the package &quot;sdk-fiasco-gen&quot; from SDK
# become root: &quot;sudo gainroot&quot;
# make a &quot;fiasco&quot; :)
 fiasco-gen -o /path/zImage.fiasco -g -k /path/zImage
# flash it
 /sbin/fiasco-image-update /path/zImage.fiasco 

== Reflashing &amp; Restore ==

this is a slightly modified version of the script I use to restore my N900 after a reflash.
My reflashing procedure is:

# store all settings with Backup on my SD card
# reflash with standard http://wiki.maemo.org/Updating_the_firmware, i.e.
 sudo flasher-3.5 -F ''&lt;current firmware image&gt;''.bin -f -R
# restore old backup except programs
# install rootsh from System
# in Terminal:
 sudo sh /home/backup/restore.sh
with [http://n900.tannerlab.com/tools/restore.sh this script (for PR&lt;1.2] or  [http://n900.tannerlab.com/tools/restore1.2.sh this script (PR1.2)] in /home/backup (feedback and patches are welcome).
It expects that you made a backup of /root and your selected modified files (e.g. /etc/ssh) in /home/backup.
The file &quot;pkgs&quot; should contain a list (line by line) of the package names you want to install.</text>
    </revision>
  </page>
  <page>
    <title>User:Tanner</title>
    <id>3494</id>
    <revision>
      <id>36113</id>
      <timestamp>2010-06-21T06:50:14Z</timestamp>
      <contributor>
        <username>tanner</username>
        <id>1712</id>
      </contributor>
      <comment>domain change maemory.com</comment>
      <text xml:space="preserve">= Packages =

info about some of the packages I've uploaded to extras-devel

== [http://maemo.org/packages/view/debhelper7/ debhelper7] ==

see also http://wiki.maemo.org/Packaging

A backport of Debhelper 7 for Fremantle is available in extras-devel.
It works transparently and can coexist with debhelper 5 in the SDK.
It also works on the autobuilder, if you specify
 Build-Depends: debhelper7
in debian/control.
The following lines in debian/rules are necessary to use it:

 PATH:=/usr/bin/dh7:/usr/bin:$(PATH)
 export PATH
 SBOX_REDIRECT_IGNORE=/usr/bin/perl
 export SBOX_REDIRECT_IGNORE

We are working on enhancement to make optification is easier, i.e. direct installation of files in the /opt hierarchy.

If you also need a more recent cdbs, then use the package [http://maemo.org/packages/view/cdbs-dh7/ cdbs-dh7],
which conflicts with the standard cdbs and does not work on autobuilder yet.

To replace several tools in scratchbox you can also use the following line as a template
 SBOX_REDIRECT_IGNORE:=$(shell echo /usr/bin/{perl,dh_*} | sed &quot;s/ /:/g&quot;)

== CLI icon ==

For your convenience I have uuencoded Tim Samoff's [http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html CLI icon]
which is supposed to be added to the debian/control file of CLI apps. You can download it [http://n900.tannerlab.com/tools/cli.icon.txt here].

== [http://maemo.org/packages/view/kernel-flasher-maemo/ custom Linux kernel] ==

My custom kernel which contains probably everything one could need on the N900:

 This custom kernel contains additional modules for IPv6, packet filtering,
 NAT, tunneling, kernel configuration, Wifi mesh networking,
 ext4, XFS, reiserfs, NTFS reading, NILFS2, ISO9660, UDF, CIFS, automounter,
 UNIONFS, device mapper and dmloop, cryptography, cryptoloop,
 EFI partitions, UTF8 codepages, mouse+joystick input,
 USB/IP and generic USB device drivers.
 It shows a boot logo.

Just install the package &quot;kernel-flasher-maemo&quot; from extras-devel/non-free (section System) and reboot.
Reverting to the original kernel is simple:  &quot;apt-get install --reinstall kernel kernel-flasher&quot;  or reflash only the original kernel image.
see [http://talk.maemo.org/showthread.php?t=43420 TMO page] for more details.

== GNU tools ==
the crippled busybox is installed on the N900.
command line users prefer the real GNU tools.
these are the optified packages for the device.
Most of them do not take use more RAM than busybox (a few KBs)!
[http://maemo.org/packages/view/coreutils-gnu/ coreutils-gnu]
[http://maemo.org/packages/view/diffutils-gnu/ diffutils-gnu]
[http://maemo.org/packages/view/findutils-gnu/ findutils-gnu]
[http://maemo.org/packages/view/grep-gnu/ grep-gnu]
[http://maemo.org/packages/view/sed-gnu/ sed-gnu]
[http://maemo.org/packages/view/tar-gnu/ tar-gnu]

== [http://maemo.org/packages/view/texlive-latex-base/ TeXLive 2009] ==
[http://talk.maemo.org/showthread.php?t=42087 talk page]

== [http://maemo.org/packages/view/r-base-core/ R] (statistics) ==

bug: installation fails with ucfr missing
solution: wait or edit r-base-core.postinst and comment line 44 out

== [http://maemo.org/packages/view/libblas3gf/ BLAS] [http://maemo.org/packages/view/liblapack3gf/ LAPACK] [http://maemo.org/packages/view/libsuitesparse-3.1.0/ suitesparse] ==

bug: linking against BLAS and LAPACK currently hardcodes the links found in the -dev package.

== [http://maemo.org/packages/view/python-numpy/ numpy], [http://maemo.org/packages/view/python-scipy/ scipy], [http://maemo.org/packages/view/python-sympy/ sympy] ==

[http://talk.maemo.org/showthread.php?t=33020 some discussion]

== [http://maemo.org/packages/view/bonnie++/ bonnie++] (filesystem benchmarks) ==
see [http://talk.maemo.org/showpost.php?p=504332&amp;postcount=76 post and ff]

== [http://maemo.org/packages/view/tcl8.5/ tcl8.5] [http://maemo.org/packages/view/tk8.5/ tk8.5] [http://maemo.org/packages/view/python-tk/ python-tk] ==

== [http://maemo.org/packages/view/lzma/ lzma] and its successor [http://maemo.org/packages/view/xz-utils/ xz-utils] ==

an extremely efficient compressor. it is much faster than bzip2 for decompression and yields about 30% smaller files.

== [http://maemo.org/packages/view/xskat/ xskat] ==

bug: keyboard doesn't work.
bug: window close button is not visible

== experimental packages ==

some experimental ports which I have not yet uploaded to extras-devel can be found in my repository

 deb http://n900.tannerlab.com/ fremantle free incompatible

currently: python2.6, perl5.10, GNU compiler collection 4.4.3, autoconf 2.64, automake1.10

----

= Ideas/plans: =

== [https://garage.maemo.org/projects/moebian/ Moebian]: Maemo/MeeGo on Debian ==

[http://wiki.maemo.org/Maemo_on_Debian Wiki] and [http://talk.maemo.org/showthread.php?t=44967 discussion]

== Brainstorm: [https://maemo.org/community/brainstorm/view/more_efficient_and_flexible_use_of_internal_flash Repartitioning] ==

[http://talk.maemo.org/showthread.php?t=37869 brainstorm discussion]
[http://talk.maemo.org/showthread.php?t=35122 repartitioning thread]

== Brainstorm: [http://maemo.org/community/brainstorm/view/stylus_and_finger_friendly_uis/ Stylus and finger friendly UIs] == 

[http://talk.maemo.org/showthread.php?p=525854 brainstorm discussion]

== alternative USB host solution ==

[http://talk.maemo.org/showthread.php?t=41870 USB/IP]

== full [http://wiki.maemo.org/Opt_Problem optification] ==

Ideally addon software should be installed only in /opt without any symlinks in / (NAND)
in accordance with [http://www.pathname.com/fhs/2.2/fhs-3.12.html FHS].
/usr/local should be moved and symlinked to /opt/local and is reserved for own programs not maintained by dpkg.

A package may either install its files directly (for small packages) in the /opt/maemo hierarchy (bin,etc,lib,man,share)
or in a separate directory /opt/&lt;package&gt; with its own hierarchy (bin,etc,lib,man,share).
For the latter solution packages should symlink all non-private files to /opt/maemo/{bin,etc,lib,man,share}
and the search paths of Maemo need to be adjusted in /etc/profile and  /etc/osso-af-init/af-defines.sh:

* PATH=$PATH:/opt/maemo/bin  (and sbin for root)
* ld.so.conf: add /opt/maemo/lib
* locales: [https://bugs.maemo.org/show_bug.cgi?id=8363 LOCPATH]=LOCPATH=/usr/share/locale:/opt/maemo/share/locale
* MANPATH=/opt/maemo/share/man
* pkgconfig: /usr/share/pkgconfig:/opt/maemo/share/pkgconfig
* info in info?: /usr/share/info:/opt/maemo/share/info
* apps in hildon: [https://bugs.maemo.org/show_bug.cgi?id=10531 Bug about Application Menu] /usr/share/applications:/opt/maemo/share/applications
* icons in hildon ?: /usr/share/icons:/opt/maemo/share/icons
this list may be incomplete - please help to complete it

As NAND is much faster than eMMC a cache manager could mantain a list
of very often used binaries and libraries in /opt and automatically
copy them and symlink them to a fixed size cache in NAND.

TMPDIR=/var/tmp should be moved to /opt/tmp
or /var/opt should symlink to /opt/var and contain a larger tmp directory.

A package for Maemo (tested on N800) that allows a package to set environment variables like XDG_DATA_DIRS is available: [http://svn.nomike.org/playground/trunk/opt-support/ opt-support]. I propose packages depend on opt-support and in their postinst add their variables to the file &quot;/etc/profile.env&quot;. -- dannym

== chroot instead of /opt ==
I have described my currently preferred [http://maemo.org/community/brainstorm/view/remove_256mb_limitation_of_the_rootfs_partition_in_the_n900/ solution as #5]
----

= Tips and tricks: =

== fresh builds ==

[http://maemo.org/packages/repository/latest/fremantle_extras-devel_free_armel/all/ latest packages]

[https://garage.maemo.org/builder/fremantle/?C=M;O=D autobuilder current builds]

== [[Repartitioning the flash]] ==

[http://talk.maemo.org/showpost.php?p=424811&amp;postcount=66 how to swap FAT and ext3 parition]
[http://talk.maemo.org/showpost.php?p=425359&amp;postcount=68 how to implement USB mass storage with a loopback file]

== Setting up a repository mirror on your server ==

[http://n900.tannerlab.com/mirror/repro-maemo.tgz reprepro configuration]

== Safely free some space on rootfs ==

[http://n900.tannerlab.com/tools/moveroot.sh This script] shows you how much space is freed.
It can also detect whether some directories have already been moved.
WARNING: Although this script works for most users, you should always perform a backup before running it.
Do not use this script if you have already used some other methods or scripts from [[Free_up_rootfs_space]]!
In this case reflashing is recommended.

# install the rootsh package from extras
# download the [http://n900.tannerlab.com/tools/moveroot.sh script] to your MyDocs (or upload it via SSH)
# in Terminal run
 sudo gainroot
 sh /home/user/MyDocs/moveroot.sh

It should have freed about 95MB on your rootfs.
Upgrading the firmware OTA after using the script is supposed to work.
If you reflash the firmware the script will automatically remove the files from the old firmware
when you run it again.

[http://n900.tannerlab.com/tools/unmoveroot.sh This untested script] reverts the modifications and moves as many as possible files back to rootfs.
Make sure that you have enough space on rootfs for that. Otherwise it will abort the operation. Instructions are the same as for moveroot.sh,
except that you call unmoveroot.sh.

== On-device flashing of a custom kernel image ==

This how to flash a kernel on-device (without USB/flasher 3.5):

# you have a kernel image /path/zImage (with it's modules installed)
# install the package &quot;sdk-fiasco-gen&quot; from SDK
# become root: &quot;sudo gainroot&quot;
# make a &quot;fiasco&quot; :)
 fiasco-gen -o /path/zImage.fiasco -g -k /path/zImage
# flash it
 /sbin/fiasco-image-update /path/zImage.fiasco 

== Reflashing &amp; Restore ==

this is a slightly modified version of the script I use to restore my N900 after a reflash.
My reflashing procedure is:

# store all settings with Backup on my SD card
# reflash with standard http://wiki.maemo.org/Updating_the_firmware, i.e.
 sudo flasher-3.5 -F ''&lt;current firmware image&gt;''.bin -f -R
# restore old backup except programs
# install rootsh from System
# in Terminal:
 sudo sh /home/backup/restore.sh
with [http://n900.tannerlab.com/tools/restore.sh this script (for PR&lt;1.2] or  [http://n900.tannerlab.com/tools/restore1.2.sh this script (PR1.2)] in /home/backup (feedback and patches are welcome).
It expects that you made a backup of /root and your selected modified files (e.g. /etc/ssh) in /home/backup.
The file &quot;pkgs&quot; should contain a list (line by line) of the package names you want to install.</text>
    </revision>
  </page>
  <page>
    <title>User:Tanner</title>
    <id>3494</id>
    <revision>
      <id>36113</id>
      <timestamp>2010-06-21T06:50:14Z</timestamp>
      <contributor>
        <username>tanner</username>
        <id>1712</id>
      </contributor>
      <comment>domain change maemory.com</comment>
      <text xml:space="preserve">= Packages =

info about some of the packages I've uploaded to extras-devel

== [http://maemo.org/packages/view/debhelper7/ debhelper7] ==

see also http://wiki.maemo.org/Packaging

A backport of Debhelper 7 for Fremantle is available in extras-devel.
It works transparently and can coexist with debhelper 5 in the SDK.
It also works on the autobuilder, if you specify
 Build-Depends: debhelper7
in debian/control.
The following lines in debian/rules are necessary to use it:

 PATH:=/usr/bin/dh7:/usr/bin:$(PATH)
 export PATH
 SBOX_REDIRECT_IGNORE=/usr/bin/perl
 export SBOX_REDIRECT_IGNORE

We are working on enhancement to make optification is easier, i.e. direct installation of files in the /opt hierarchy.

If you also need a more recent cdbs, then use the package [http://maemo.org/packages/view/cdbs-dh7/ cdbs-dh7],
which conflicts with the standard cdbs and does not work on autobuilder yet.

To replace several tools in scratchbox you can also use the following line as a template
 SBOX_REDIRECT_IGNORE:=$(shell echo /usr/bin/{perl,dh_*} | sed &quot;s/ /:/g&quot;)

== CLI icon ==

For your convenience I have uuencoded Tim Samoff's [http://lists.maemo.org/pipermail/maemo-community/2010-January/003870.html CLI icon]
which is supposed to be added to the debian/control file of CLI apps. You can download it [http://n900.tannerlab.com/tools/cli.icon.txt here].

== [http://maemo.org/packages/view/kernel-flasher-maemo/ custom Linux kernel] ==

My custom kernel which contains probably everything one could need on the N900:

 This custom kernel contains additional modules for IPv6, packet filtering,
 NAT, tunneling, kernel configuration, Wifi mesh networking,
 ext4, XFS, reiserfs, NTFS reading, NILFS2, ISO9660, UDF, CIFS, automounter,
 UNIONFS, device mapper and dmloop, cryptography, cryptoloop,
 EFI partitions, UTF8 codepages, mouse+joystick input,
 USB/IP and generic USB device drivers.
 It shows a boot logo.

Just install the package &quot;kernel-flasher-maemo&quot; from extras-devel/non-free (section System) and reboot.
Reverting to the original kernel is simple:  &quot;apt-get install --reinstall kernel kernel-flasher&quot;  or reflash only the original kernel image.
see [http://talk.maemo.org/showthread.php?t=43420 TMO page] for more details.

== GNU tools ==
the crippled busybox is installed on the N900.
command line users prefer the real GNU tools.
these are the optified packages for the device.
Most of them do not take use more RAM than busybox (a few KBs)!
[http://maemo.org/packages/view/coreutils-gnu/ coreutils-gnu]
[http://maemo.org/packages/view/diffutils-gnu/ diffutils-gnu]
[http://maemo.org/packages/view/findutils-gnu/ findutils-gnu]
[http://maemo.org/packages/view/grep-gnu/ grep-gnu]
[http://maemo.org/packages/view/sed-gnu/ sed-gnu]
[http://maemo.org/packages/view/tar-gnu/ tar-gnu]

== [http://maemo.org/packages/view/texlive-latex-base/ TeXLive 2009] ==
[http://talk.maemo.org/showthread.php?t=42087 talk page]

== [http://maemo.org/packages/view/r-base-core/ R] (statistics) ==

bug: installation fails with ucfr missing
solution: wait or edit r-base-core.postinst and comment line 44 out

== [http://maemo.org/packages/view/libblas3gf/ BLAS] [http://maemo.org/packages/view/liblapack3gf/ LAPACK] [http://maemo.org/packages/view/libsuitesparse-3.1.0/ suitesparse] ==

bug: linking against BLAS and LAPACK currently hardcodes the links found in the -dev package.

== [http://maemo.org/packages/view/python-numpy/ numpy], [http://maemo.org/packages/view/python-scipy/ scipy], [http://maemo.org/packages/view/python-sympy/ sympy] ==

[http://talk.maemo.org/showthread.php?t=33020 some discussion]

== [http://maemo.org/packages/view/bonnie++/ bonnie++] (filesystem benchmarks) ==
see [http://talk.maemo.org/showpost.php?p=504332&amp;postcount=76 post and ff]

== [http://maemo.org/packages/view/tcl8.5/ tcl8.5] [http://maemo.org/packages/view/tk8.5/ tk8.5] [http://maemo.org/packages/view/python-tk/ python-tk] ==

== [http://maemo.org/packages/view/lzma/ lzma] and its successor [http://maemo.org/packages/view/xz-utils/ xz-utils] ==

an extremely efficient compressor. it is much faster than bzip2 for decompression and yields about 30% smaller files.

== [http://maemo.org/packages/view/xskat/ xskat] ==

bug: keyboard doesn't work.
bug: window close button is not visible

== experimental packages ==

some experimental ports which I have not yet uploaded to extras-devel can be found in my repository

 deb http://n900.tannerlab.com/ fremantle free incompatible

currently: python2.6, perl5.10, GNU compiler collection 4.4.3, autoconf 2.64, automake1.10

----

= Ideas/plans: =

== [https://garage.maemo.org/projects/moebian/ Moebian]: Maemo/MeeGo on Debian ==

[http://wiki.maemo.org/Maemo_on_Debian Wiki] and [http://talk.maemo.org/showthread.php?t=44967 discussion]

== Brainstorm: [https://maemo.org/community/brainstorm/view/more_efficient_and_flexible_use_of_internal_flash Repartitioning] ==

[http://talk.maemo.org/showthread.php?t=37869 brainstorm discussion]
[http://talk.maemo.org/showthread.php?t=35122 repartitioning thread]

== Brainstorm: [http://maemo.org/community/brainstorm/view/stylus_and_finger_friendly_uis/ Stylus and finger friendly UIs] == 

[http://talk.maemo.org/showthread.php?p=525854 brainstorm discussion]

== alternative USB host solution ==

[http://talk.maemo.org/showthread.php?t=41870 USB/IP]

== full [http://wiki.maemo.org/Opt_Problem optification] ==

Ideally addon software should be installed only in /opt without any symlinks in / (NAND)
in accordance with [http://www.pathname.com/fhs/2.2/fhs-3.12.html FHS].
/usr/local should be moved and symlinked to /opt/local and is reserved for own programs not maintained by dpkg.

A package may either install its files directly (for small packages) in the /opt/maemo hierarchy (bin,etc,lib,man,share)
or in a separate directory /opt/&lt;package&gt; with its own hierarchy (bin,etc,lib,man,share).
For the latter solution packages should symlink all non-private files to /opt/maemo/{bin,etc,lib,man,share}
and the search paths of Maemo need to be adjusted in /etc/profile and  /etc/osso-af-init/af-defines.sh:

* PATH=$PATH:/opt/maemo/bin  (and sbin for root)
* ld.so.conf: add /opt/maemo/lib
* locales: [https://bugs.maemo.org/show_bug.cgi?id=8363 LOCPATH]=LOCPATH=/usr/share/locale:/opt/maemo/share/locale
* MANPATH=/opt/maemo/share/man
* pkgconfig: /usr/share/pkgconfig:/opt/maemo/share/pkgconfig
* info in info?: /usr/share/info:/opt/maemo/share/info
* apps in hildon: [https://bugs.maemo.org/show_bug.cgi?id=10531 Bug about Application Menu] /usr/share/applications:/opt/maemo/share/applications
* icons in hildon ?: /usr/share/icons:/opt/maemo/share/icons
this list may be incomplete - please help to complete it

As NAND is much faster than eMMC a cache manager could mantain a list
of very often used binaries and libraries in /opt and automatically
copy them and symlink them to a fixed size cache in NAND.

TMPDIR=/var/tmp should be moved to /opt/tmp
or /var/opt should symlink to /opt/var and contain a larger tmp directory.

A package for Maemo (tested on N800) that allows a package to set environment variables like XDG_DATA_DIRS is available: [http://svn.nomike.org/playground/trunk/opt-support/ opt-support]. I propose packages depend on opt-support and in their postinst add their variables to the file &quot;/etc/profile.env&quot;. -- dannym

== chroot instead of /opt ==
I have described my currently preferred [http://maemo.org/community/brainstorm/view/remove_256mb_limitation_of_the_rootfs_partition_in_the_n900/ solution as #5]
----

= Tips and tricks: =

== fresh builds ==

[http://maemo.org/packages/repository/latest/fremantle_extras-devel_free_armel/all/ latest packages]

[https://garage.maemo.org/builder/fremantle/?C=M;O=D autobuilder current builds]

== [[Repartitioning the flash]] ==

[http://talk.maemo.org/showpost.php?p=424811&amp;postcount=66 how to swap FAT and ext3 parition]
[http://talk.maemo.org/showpost.php?p=425359&amp;postcount=68 how to implement USB mass storage with a loopback file]

== Setting up a repository mirror on your server ==

[http://n900.tannerlab.com/mirror/repro-maemo.tgz reprepro configuration]

== Safely free some space on rootfs ==

[http://n900.tannerlab.com/tools/moveroot.sh This script] shows you how much space is freed.
It can also detect whether some directories have already been moved.
WARNING: Although this script works for most users, you should always perform a backup before running it.
Do not use this script if you have already used some other methods or scripts from [[Free_up_rootfs_space]]!
In this case reflashing is recommended.

# install the rootsh package from extras
# download the [http://n900.tannerlab.com/tools/moveroot.sh script] to your MyDocs (or upload it via SSH)
# in Terminal run
 sudo gainroot
 sh /home/user/MyDocs/moveroot.sh

It should have freed about 95MB on your rootfs.
Upgrading the firmware OTA after using the script is supposed to work.
If you reflash the firmware the script will automatically remove the files from the old firmware
when you run it again.

[http://n900.tannerlab.com/tools/unmoveroot.sh This untested script] reverts the modifications and moves as many as possible files back to rootfs.
Make sure that you have enough space on rootfs for that. Otherwise it will abort the operation. Instructions are the same as for moveroot.sh,
except that you call unmoveroot.sh.

== On-device flashing of a custom kernel image ==

This how to flash a kernel on-device (without USB/flasher 3.5):

# you have a kernel image /path/zImage (with it's modules installed)
# install the package &quot;sdk-fiasco-gen&quot; from SDK
# become root: &quot;sudo gainroot&quot;
# make a &quot;fiasco&quot; :)
 fiasco-gen -o /path/zImage.fiasco -g -k /path/zImage
# flash it
 /sbin/fiasco-image-update /path/zImage.fiasco 

== Reflashing &amp; Restore ==

this is a slightly modified version of the script I use to restore my N900 after a reflash.
My reflashing procedure is:

# store all settings with Backup on my SD card
# reflash with standard http://wiki.maemo.org/Updating_the_firmware, i.e.
 sudo flasher-3.5 -F ''&lt;current firmware image&gt;''.bin -f -R
# restore old backup except programs
# install rootsh from System
# in Terminal:
 sudo sh /home/backup/restore.sh
with [http://n900.tannerlab.com/tools/restore.sh this script (for PR&lt;1.2] or  [http://n900.tannerlab.com/tools/restore1.2.sh this script (PR1.2)] in /home/backup (feedback and patches are welcome).
It expects that you made a backup of /root and your selected modified files (e.g. /etc/ssh) in /home/backup.
The file &quot;pkgs&quot; should contain a list (line by line) of the package names you want to install.</text>
    </revision>
  </page>
  <page>
    <title>User:Test user</title>
    <id>1148</id>
    <revision>
      <id>6751</id>
      <timestamp>2008-08-20T00:26:58Z</timestamp>
      <contributor>
        <username>test_user</username>
        <id>303</id>
      </contributor>
      <comment>New page: sadhadhkas</comment>
      <text xml:space="preserve">sadhadhkas</text>
    </revision>
  </page>
  <page>
    <title>User:Texrat</title>
    <id>2385</id>
    <revision>
      <id>18002</id>
      <timestamp>2009-09-10T16:11:40Z</timestamp>
      <contributor>
        <username>texrat</username>
        <id>24</id>
      </contributor>
      <text xml:space="preserve">Sorry, I've used up my allotment of clever catch phrases (see: user [http://wiki.maemo.org/User:Sjgadsby sjgadsby]) and all cute photos (see: user [http://wiki.maemo.org/User:Timsamoff timsamoff]) were lost in a hard drive meltdown so nothing to see here other than some tired old links.

Hey, what do you expect for free?

* maemo.org: [http://maemo.org/profile/view/texrat/ texrat]
* blog: [http://tabulacrypticum.wordpress.com Tabula Crypticum]</text>
    </revision>
  </page>
  <page>
    <title>User:Tgalal</title>
    <id>3800</id>
    <revision>
      <id>31722</id>
      <timestamp>2010-03-29T17:26:06Z</timestamp>
      <contributor>
        <username>tgalal</username>
        <id>2431</id>
      </contributor>
      <comment>/* -----------=============----------=================---------= */</comment>
      <text xml:space="preserve">'''Tarek Galal''': Student at the German University in Cairo, Studying Digital Media Engineering and Tech, and digging into the Open Source World..
&lt;br /&gt;
&lt;br /&gt;
===========-----------=============----------=================---------============
&lt;br /&gt;

Step 0: Use Linux .. Done;&lt;br /&gt;
Step 1: Learn What Open Source means .. Done;&lt;br /&gt;
Step 2: Learn Open Source Devel Tools .. Done;&lt;br /&gt;
Step 3: Establish first Open Source Project .. Done;&lt;br /&gt;
Step 4: Learn from other Open Source project .. Done;&lt;br /&gt;
Step 5: Package, release and maintain first Open Source Project .. Done;&lt;br /&gt;
Step 6: Contribute and Participate&lt;br/&gt;
Step 7: Increment first;&lt;br /&gt;
jump Step 3;</text>
    </revision>
  </page>
  <page>
    <title>User:Thp</title>
    <id>1190</id>
    <revision>
      <id>7042</id>
      <timestamp>2008-09-05T14:17:44Z</timestamp>
      <contributor>
        <username>thp</username>
        <id>257</id>
      </contributor>
      <comment>link to maemo profile</comment>
      <text xml:space="preserve">See http://maemo.org/profile/view/thp/</text>
    </revision>
  </page>
  <page>
    <title>User:Timeless</title>
    <id>1188</id>
    <revision>
      <id>44379</id>
      <timestamp>2011-07-06T21:04:12Z</timestamp>
      <contributor>
        <ip>208.54.64.226</ip>
      </contributor>
      <comment>/* Contact */</comment>
      <text xml:space="preserve">* Engineer working on [http://browser.garage.maemo.org MicroB] for Maemo Software.
* Contributor to [http://mozilla.org mozilla.org]

=== Contact ===

* ''timeless'' on ''Freenode'' IRC (#maemo)
* [http://www.timeless.justdave.net/blog Blog]</text>
    </revision>
  </page>
  <page>
    <title>User:Timsamoff</title>
    <id>482</id>
    <revision>
      <id>42444</id>
      <timestamp>2011-03-07T21:15:55Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <minor/>
      <comment>/* Information */</comment>
      <text xml:space="preserve">== Tim Samoff ==

[[Image:Goofy_samoff.jpg | Tim Samoff]]

== Information ==

 * [http://samoff.com samoff.com]
 * [http://twitter.com/timsamoff Twitter]
 * [http://www.facebook.com/timsamoff Facebook]
 * [http://timsamoff.jaiku.com/ Jaiku]
 * [http://flickr.com/photos/timsamoff Flickr]
 * [http://youtube.com/user/timsamoff YouTube]

== Contact ==

 * [http://maemo.org/profile/view/timsamoff/ Via maemo.org]
 * [mailto:moc.ffomas@mit moc.ffomas@mit] (use a mirror)</text>
    </revision>
  </page>
  <page>
    <title>User:Timsamoff/Sandbox</title>
    <id>2791</id>
    <revision>
      <id>20742</id>
      <timestamp>2009-10-22T03:26:00Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <text xml:space="preserve">* [[User:Timsamoff/Sandbox/Maemo Co-Creation Outline Maemo|Maemo Co-Creation Outline]]
* [[User:Timsamoff/Sandbox/Maemo Co-Creation Sandbox|Maemo Co-Creation Sandbox]]</text>
    </revision>
  </page>
  <page>
    <title>User:Timsamoff/Sandbox/Maemo Co-Creation Outline Maemo</title>
    <id>2793</id>
    <revision>
      <id>20743</id>
      <timestamp>2009-10-22T03:27:15Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <comment>New page:  Proposed Sections    1 Introduction  1.1 Project Explanation    2 Concept 1: Contagious Content  2.1 Results co-creation session  2.2 Results Maemo Summit Workshops  2.3 Feedback &amp; New Id...</comment>
      <text xml:space="preserve"> Proposed Sections
 
 1 Introduction
 1.1 Project Explanation
 
 2 Concept 1: Contagious Content
 2.1 Results co-creation session
 2.2 Results Maemo Summit Workshops
 2.3 Feedback &amp; New Ideas: how to make this really happening?
 
 3 Concept 2: N-Rich
 3.1 Results co-creation session
 3.2 Results Maemo Summit Workshops
 3.3 Feedback &amp; New Ideas: how to make this really happening?
 
 4 Concept 3: MAEmoments - Live Editing
 4.1 Results co-creation session
 4.2 Results Maemo Summit Workshops
 4.3 Feedback &amp; New Ideas: how to make this really happening?
 
 5 Concept 4: Joining the Band - Collaborative Experiences
 5.1 Results co-creation session
 5.2 Results Maemo Summit Workshops
 5.3 Feedback &amp; New Ideas: how to make this really happening?
 
 6 Other Concepts
 6.1 Ideas for Sharing
 6.2 The Trust Factor
 
 7 Photos &amp; Movies
 7.1 Photos co-creation session
 7.2 Photos Maemo Summit co-creation
 7.3 Movie 
 
 8 Interesting links</text>
    </revision>
  </page>
  <page>
    <title>User:Timsamoff/Sandbox/Maemo Co-Creation Sandbox</title>
    <id>2794</id>
    <revision>
      <id>20771</id>
      <timestamp>2009-10-22T04:52:40Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <text xml:space="preserve">&lt;div style=&quot;font-size: 1em;&quot;&gt;

[[Image:Mcc2009_pic0001.jpg‎|Maemo Co-Creation Day 2009]]

''(Photo by [http://www.flickr.com/photos/iskosalminen/ Isko Salminen].)''

&lt;h2&gt;Maemo Co-Creation 2009&lt;/h2&gt;
&lt;div style=&quot;width:100%;&quot;&gt;{{MCC Intro}}&lt;/div&gt;

&lt;h3&gt;The Purpose&lt;/h3&gt;
&lt;div style=&quot;width:100%;&quot;&gt;{{MCC Detail}}&lt;/div&gt;

&lt;div class=&quot;sections&quot;&gt;

&lt;div class=&quot;column&quot;&gt;

&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Concept #1&lt;/h2&gt;
&lt;h3&gt;&lt;em&gt;Contagious Content (Content Flu)&lt;/em&gt;&lt;/h3&gt;
&lt;ul class=&quot;document&quot;&gt;{{MCC Concept 001}}&lt;/ul&gt;
&lt;/div&gt;

&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Concept #2&lt;/h2&gt;
&lt;h3&gt;&lt;em&gt;Smart Tags (N-rich)&lt;/em&gt;&lt;/h3&gt;
&lt;ul class=&quot;document&quot;&gt;{{MCC Concept 002}}&lt;/ul&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&quot;column&quot;&gt;

&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Concept #3&lt;/h2&gt;
&lt;h3&gt;&lt;em&gt;Live Editing (MAEmoments)&lt;/em&gt;&lt;/h3&gt;
&lt;ul class=&quot;document&quot;&gt;{{MCC Concept 003}}&lt;/ul&gt;
&lt;/div&gt;

&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Concept #4&lt;/h2&gt;
&lt;h3&gt;&lt;em&gt;Collaborative Experiences (Join the Band)&lt;/em&gt;&lt;/h3&gt;
&lt;ul class=&quot;document&quot;&gt;{{MCC Concept 004}}&lt;/ul&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&quot;sections&quot;&gt;

&lt;div class=&quot;column&quot;&gt;

&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Additional Concepts&lt;/h2&gt;
&lt;ul class=&quot;document&quot;&gt;{{MCC Other Concepts}}&lt;/ul&gt;
&lt;/div&gt;

&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Photos &amp; Movies&lt;/h2&gt;
&lt;ul class=&quot;document&quot;&gt;{{MCC Media}}&lt;/ul&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&quot;column&quot;&gt;

&lt;div class=&quot;section&quot;&gt;
&lt;h2&gt;Interesting Links&lt;/h2&gt;
&lt;ul class=&quot;document&quot;&gt;{{MCC Links}}&lt;/ul&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;

[[Image:Mcc2009_pic0002.jpg‎‎|Maemo Co-Creation Day 2009]]

''(Photo by [http://www.flickr.com/photos/iskosalminen/ Isko Salminen].)''

&lt;/div&gt;

__NOEDITSECTION__ &lt;!-- disables the [edit] links from being shown --&gt;
__NOTOC__ &lt;!-- disable the table of contents from ever being shown --&gt;

[[Category:Community]]
[[Category:Co-Creation]]</text>
    </revision>
  </page>
  <page>
    <title>User:Toggles</title>
    <id>2017</id>
    <revision>
      <id>14818</id>
      <timestamp>2009-06-29T16:42:58Z</timestamp>
      <contributor>
        <ip>64.85.164.44</ip>
      </contributor>
      <text xml:space="preserve">'''The toggle FAQ'''&lt;br&gt;
&lt;br&gt;&lt;br&gt;
'''Battery monitor via bme n8x0'''

Thanks to qwerty12 for all the help

&lt;pre&gt;
sudo echo &quot;deb http://download.opensuse.org/repositories/Maemo://Mer://Devel://HW://N8x0://Devel/MerDevel_Ubuntu_9.04/ /&quot; &gt; /etc/apt/sources.list.d/mer-n8x0-devel.list
sudo apt-get update
sudo apt-get install hald-addon-bme advanced-power-monitor advanced-power
&lt;/pre&gt;
&lt;pre&gt;
old instructions (use the above)

wget http://trac.tspre.org/qwerty12/Toggles-hald-bme/hald-addon-bme_0.1-1_armel.deb
sudo dpkg -i hald-addon-bme_0.1-1_armel.deb
sudo apt-get install advanced-power-monitor advanced-power
&lt;/pre&gt;
There is an issue right now with python/advanced-power-monitor, you need to do the following
&lt;pre&gt;
cd /usr/lib/python2.6/dist-packages
sudo ln -sf ../site-packages/hildondesktop.* .
&lt;/pre&gt;

Start the advanced-power applet&lt;br&gt;
Mer-&gt;Settings-&gt;Settings&lt;br&gt;
Panels&lt;br&gt;
Status Bar&lt;br&gt;
Advanced Power&lt;br&gt;
&lt;br&gt;
Ok and reboot and you should see your battery info.
&lt;br&gt;If you experience problems installing advanced power or monitor (&lt; 0.14 or you upgrade) you may need to do this:
&lt;pre&gt;
sudo echo &quot;deb http://catalogue.tableteer.nokia.com/updates/diablo-2/ ./&quot; &gt; /etc/apt/sources.list.d/temp_updates.list
&lt;/pre&gt;


'''Battery monitor via bme smartq'''
(currently broken)&lt;br&gt;
Thanks to zenvoid and qwerty12 for all the help&lt;br&gt;
(as of 0.14 you need to upgrade to Devel)&lt;br&gt;
As root
&lt;pre&gt;
cd
wget http://tommywatson.com/Mer/hald-addon-smartq_0.02_armel.deb
dpkg -i hald-addon-smartq_0.02_armel.deb
apt-get install advanced-power
wget http://tommywatson.com/Mer/AdvancedPowerMonitor.tgz
cd /
tar -zxf /root/AdvancedPowerMonitor.tgz
&lt;/pre&gt;
Enable advanced power as above and reboot.&lt;br&gt;
This is currently broken and I would appreciate some help from anyone who has python experience that could help me debug the applet as it's not starting yet.

&lt;br&gt;&lt;br&gt;
'''Remove onscreen keyboard on n810'''
&lt;br&gt;
  12:33 &lt; rhuskjr&gt; That reminds me for the n810 is there a way to disable the 
                 onscreen keyboard
  12:34 &lt; Stskeeps&gt; yeah, removing hildon-input-method from /usr/bin/start-hildon 
                  but we're working on a better way.

&lt;br&gt;&lt;br&gt;
'''Debian armel virtual machine for development'''
&lt;br&gt;
  https://wiki.ubuntu.com/ARM/RootfsFromScratch
  http://people.ubuntu.com/~ogra/arm/qemu/README
  http://wiki.maemo.org/Mer/Hardware/Freerunner#Debian_Armel_Virtual_Machine_for_Mer_development
  
&lt;br&gt;&lt;br&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Torpedo48</title>
    <id>3647</id>
    <revision>
      <id>30186</id>
      <timestamp>2010-02-25T15:49:05Z</timestamp>
      <contributor>
        <username>torpedo48</username>
        <id>2090</id>
      </contributor>
      <text xml:space="preserve">Hi everyone, I'm Emanuele Cassioli (nickname: torpedo48). 
I had never used anything related to Linux or open-source, but since I bought my N900 I decided to enter this new world. 

It took me just a few weeks for understanding that open-source is the future and the Nokia N900 it's just a springboard into that world. 

I'm starting learning some coding and helping at Maemo.org. I love testing applications in Extras-Testing and keeping the Wiki up-to-date.

Please feel free to contact me for any reason!

*Maemo.org account: http://maemo.org/profile/view/torpedo48/
*Talk.maemo.org account: http://talk.maemo.org/member.php?u=29278</text>
    </revision>
  </page>
  <page>
    <title>User:Tstaerk</title>
    <id>3238</id>
    <revision>
      <id>28393</id>
      <timestamp>2010-02-05T08:46:19Z</timestamp>
      <contributor>
        <username>tstaerk</username>
        <id>1691</id>
      </contributor>
      <comment>/* gpgme */</comment>
      <text xml:space="preserve">= Incubator =
Here I prepare articles for this wiki to come.

== how to add an application to the menu ==
 cd /usr/share/applications/hildon/ 
Here you copy a desktop file.
/etc/xdg/menus/hildon.menu:
 &lt;Filename&gt;blah&lt;/Filename&gt;
einfügen

== maemo 5 ==
Installing maemo 5 (freemantle, see [[codenames]]) for N900 (maemo 5 does not run on the N810) in a SUSE Linux 11.2 x32 virtual machine resulted in
 Processing was halted because there were too many errors.
So trying SUSE 11.1 (where maemo 4 worked):
 root@i386 # useradd -m scratchboxuser
 root@i386 # passwd scratchboxuser
 root@i386 # wget http://repository.maemo.org/stable/fremantle/maemo-scratchbox-install_5.0.sh
 root@i386 # chmod 777 maemo-scratchbox-install_5.0.sh
 root@i386 # ./maemo-scratchbox-install_5.0.sh -s /scratchbox
 root@i386 # /scratchbox/sbin/sbox_adduser scratchboxuser
 root@i386 # su - scratchboxuser
 scratchboxuser@i386 $ wget http://repository.maemo.org/stable/fremantle/maemo-sdk-install_5.0.sh
 scratchboxuser@i386 $ sh maemo-sdk-install_5.0.sh
results in
 Happy hacking!

 scratchboxuser@i386 $ /scratchbox/login
 scratchboxuser@i386 $ sb-conf select FREEMANTEL_ARMEL

=== cmake ===
 [sbox-FREMANTLE_ARMEL: ~] &gt; cd
 [sbox-FREMANTLE_ARMEL: ~] &gt; wget http://www.cmake.org/files/v2.6/cmake-2.6.2.tar.gz
 [sbox-FREMANTLE_ARMEL: ~/cmake-2.6.2] &gt; tar xvzf cmake-2.6.2.tar.gz
 [sbox-FREMANTLE_ARMEL: ~/cmake-2.6.2] &gt; cd cmake-2.6.2
 [sbox-FREMANTLE_ARMEL: ~/cmake-2.6.2] &gt; ./bootstrap &amp;&amp; make -j4 &amp;&amp; make install

=== subversion ===
 [sbox-FREMANTLE_ARMEL: ~] &gt; apt-get install subversion

=== Qt ===
Download Qt everywhere 4.6 and build it using
 ./configure --prefix=/usr &amp;&amp; make -j2 &amp;&amp; make install

=== libical ===
libical is needed for kdepimlibs
 cd
 wget http://downloads.sourceforge.net/project/freeassociation/libical/libical-0.44/libical-0.44.tar.gz?use_mirror=switch
 tar xvzf libical-0.44.tar.gz
 cd libical-0.44
 ./configure &amp;&amp; make -j2 &amp;&amp; make install

=== gpgme ===
gpgme is needed for kdepimlibs
 curl ftp://ftp.gnupg.org/gcrypt/gpgme/gpgme-1.1.8.tar.bz2 &gt; gpgme-1.1.8.tar.bz2
 bunzip2  gpgme-1.1.8.tar.bz2
 tar xvf gpgme-1.1.8.tar
 cd gpgme-1.1.8
 ./configure &amp;&amp; make -j2 &amp;&amp; make install

=== boost ===
libboost is needed for kdepimlibs
 apt-get install libboost-graph-dev

=== giflib ===
 wget http://downloads.sourceforge.net/project/giflib/giflib%204.x/giflib-4.1.6/giflib-4.1.6.tar.bz2?use_mirror=switch

== Xephyr ==
SUSE 11.2: xorg-x11-server-extra

'''main.cpp'''
 #include &lt;QApplication&gt;
 #include &lt;QPushButton&gt;
 int main(int argc, char ** argv)
 {
   QApplication qa(argc,argv);
   QPushButton* qp=new QPushButton(&quot;hello world&quot;);
   qp-&gt;show();
   return qa.exec();
 }

Build and run it:

 export DISPLAY=:4
 qmake -project &amp;&amp; qmake &amp;&amp; make &amp;&amp; ./qttest

== Compiling on the N810 ==
* [[install openssh on the N810]]
* Find out what maemo version you have. Choose Settings -&gt; Control Panel -&gt; About. If you get &quot;Product maemo Linux based OS2008 Version:5.2008.43-7&quot; this means maemo 4.1. So you have maemo, os2008 and diablo ([http://wiki.maemo.org/Codenames more info]).
* download wget from http://repository.maemo.org/pool/maemo4.1.2/free/w/wget/. Copy it to your computer and scp it to your N810.
* get glibc
 wget http://repository.maemo.org/pool/maemo4.1.2/free/g/glibc/libc6-dev_2.5.0-1osso10_armel.deb
* get linux kernel headers
 wget http://repository.maemo.org/pool/maemo4.1.2/free/l/linux-kernel-headers/linux-kernel-headers_2.6.16.osso11-1_armel.deb
* get libgcc
 wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/libgcc1_3.4.4cs2005q3.2-5.osso8_armel.deb
* install everything
 dpkg -i gcc-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb libc6-dev_2.5.0-1osso10_armel.deb linux-kernel-headers/linux-kernel-headers_2.6.16.osso11-1_armel.deb
* do the usual test
 Nokia-N810-43-7:~# cat main.c
 #include &lt;stdio.h&gt;
 
 int main()
 { printf(&quot;hello world&quot;); }
 
 Nokia-N810-43-7:~# gcc-3.4 -o greeter main.c
 Nokia-N810-43-7:~# ./greeter
 hello worldNokia-N810-43-7:~#

== C++ ==
* Try to compile a C++ program
 Nokia-N810-43-7:/media/mmc1# cat main.cpp
 #include &lt;iostream&gt;
 int main()
 {
   std::cout &lt;&lt; &quot;hello C++&quot; &lt;&lt; std::endl;
 }
 Nokia-N810-43-7:/media/mmc1# gcc-3.4 main.cpp
 &lt;unknown&gt; tried to exec cc1plus but failed (No such file or directory)

* download g++
 wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/g++-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb

* download lib standard C++
 wget http://repository.maemo.org/pool/maemo4.1.2/free/g/gcc-3.4/libstdc++6-dev_3.4.4cs2005q3.2-5.osso8_armel.deb

* install g++
 dpkg -i libstdc++6-dev_3.4.4cs2005q3.2-5.osso8_armel.deb g++-3.4_3.4.4cs2005q3.2-5.osso8_armel.deb

* try to compile main.cpp again
 gcc-3.4 main.cpp
 /var/tmp/ccQkm9NS.o: In function `std::__verify_grouping...

* ok, but do it right
 gcc-3.4 -lstdc++ main.cpp
 ./a.out
 hello C++

== Compiling software with automake ==
Does not work.

== Compiling Qt software ==
&lt;pre&gt;
Nokia-N810-43-7:~# cat /etc/apt/sources.list
deb http://repository.maemo.org/extras/ diablo free
deb-src http://repository.maemo.org/extras/ diablo free
Nokia-N810-43-7:~# apt-get install libqtcore4 
&lt;/pre&gt;
 apt-get install libqt4-dev
&lt;pre&gt;
# cat qttest2.cpp 
#include &lt;QApplication&gt;
#include &lt;QPushButton&gt;
int main(int argc, char ** argv)
{
  QApplication qa(argc,argv);
  QPushButton* qp=new QPushButton(&quot;hello world&quot;);
  qp-&gt;show();
  return qa.exec();
}

# g\+\+-3.4 -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. qttest2.cpp  -lQtCore -lQtGui
# ./a.out
&lt;/pre&gt;

= Contributions =
Here are the contributions I am proud of
* [[Compiling_on_the_N810]]
* [[KDE]]
* [[KDE on scratchbox]]
* [[Install openssh on the N810]]
* [[open a console]]</text>
    </revision>
  </page>
  <page>
    <title>User:Tuminoid</title>
    <id>3262</id>
    <revision>
      <id>32552</id>
      <timestamp>2010-04-13T05:48:14Z</timestamp>
      <contributor>
        <username>tuminoid</username>
        <id>1588</id>
      </contributor>
      <comment>/* Jobs at Nomovok Ltd */</comment>
      <text xml:space="preserve">=Who am I?=

Known in web as [http://www.tumi.fi/ Tumi] or [http://maemo.org/profile/view/tuminoid/ Tuminoid]. In the real world I'm known as [http://www.tuomotanskanen.fi/ Tuomo Tanskanen], nice to meet you!

Employed by: [http://www.nomovok.com/ Nomovok Ltd] as Team Manager &amp; Sr. Software Developer

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]

=Maemo Projects=
My Maemo projects residing at Garage: 

==CPU/Mem Applet==

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.

[http://maemo.org/downloads/product/Maemo5/cpumem-applet/ CPU/Mem Applet @ Extras]

[https://garage.maemo.org/projects/cpumem-applet/ CPU/Mem Applet @ Garage]

[http://maemo.org/packages/view/cpumem-applet/ cpumem-applet @ Package interface]

==Cellular Modem Control Buttons==

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).

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 ''in your own language''!

[http://maemo.org/downloads/product/Maemo5/cell-modem-ui/ Cellular Modem Control Buttons @ Extras]

[https://garage.maemo.org/projects/cell-modem-ui/ Cellular Modem Control buttons @ Garage]

[http://maemo.org/packages/view/cell-modem-ui/ cell-modem-ui @ Package interface]

[http://www.transifex.net/projects/p/cell-modem-control/ Cellular Modem Control translation project @ Transifex.net]

==Now Playing Notifications==

'''In development - beta quality'''

Displays notifications similar to &quot;new email&quot; messages when currently playing song changes. See more information in Garage and/or Talk thread.

''The reboot after installation is _not_ intended, but caused by a problem with dsmetool, so if you try nowplayingd from -devel, save your work before installation!''

[https://garage.maemo.org/projects/nowplayingd/ Now Playing Notifications @ Garage], see [http://talk.maemo.org/showthread.php?p=548242#post548242 &quot;brainstorm&quot;]

[http://maemo.org/packages/view/nowplayingd/ nowplayingd @ Package Interface]

''Development has been delayed due PR1.2 issues.''

==Custom Powerkeymenu==

My newest, pre-alpha stage project that will allow you to customize powerkeymenu.

[https://garage.maemo.org/projects/custom-pwkmenu/ Custom Powerkeymenu @ Garage]


----

=Events=

==MobileDevCamp Helsinki 2010==
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!

Definitely gonna attend the event next year too, maybe I'd have time to attend the 48h coding competition as well and take one of the prize-phones home with me!


==TechDays Helsinki 2010==

I'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!

So I went TechDays and oh boy it sure was made clear it is a M$ event :/ The topics were all sounding nice, but obviously skewed to MS products alone, so the day one for me was mostly for socializing with the few guys I knew and who were there too. 

Oh, the non-MS seminars about [http://www.videonet.fi/microsoft/techdays2010/206/6/ multicore processing by Intel guys] was great and D3D11-infested seminar about [http://www.videonet.fi/microsoft/techdays2010/207/7/ using graphics chip for generic processing] by Nixu was ok.

Day two was more interesting. It was still MS branded and all, but the mobile development track begun. It was somewhat about new [http://www.videonet.fi/microsoft/techdays2010/207/ke1/ Windows Phone 7 Series] [http://www.videonet.fi/microsoft/techdays2010/207/ke2/ [2]], but the keynotes by [http://www.videonet.fi/microsoft/techdays2010/207/ke4/ Sami Paihonen about crossplatform UX creation], and [http://www.videonet.fi/microsoft/techdays2010/207/ke5/ Jouni Mannonen about Crossplatform mobile development] were truly worth it.

The event in general were very nicely organized, the premises were nice, the food and servings were great and the evening program was ok too. There was a lot of stands with lots of giveaways and competitions etc. Kudos to organizers!

----

=Job offers=

==Jobs at Nomovok Ltd==

If you need more details about a position, please don't hesitate to contact me.

'''Linux Developer''' - good guys are always wanted! Send an open application to Nomovok, more details from me. ''This offer does not expire.''


===Expired offers (but still appreciated...)===
'''Linux Kernel Developer''' - 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. ''Offer expires at the end of March 2010.''</text>
    </revision>
  </page>
  <page>
    <title>User:Tuxsavvy</title>
    <id>4807</id>
    <revision>
      <id>45752</id>
      <timestamp>2011-11-19T06:36:52Z</timestamp>
      <contributor>
        <ip>115.131.2.241</ip>
      </contributor>
      <comment>/* My /etc/apt/mirror.list */</comment>
      <text xml:space="preserve">== List of my known application catalogues/repositories ==
&lt;pre&gt;
Catalogue name: Nokia Applications
Web address: https://downloads.maemo.nokia.com/fremantle/ssu/apps/&lt;/nowiki&gt;
Distribution: ./
Components:
[Notes]: Nokia supplied application catalogue/repository

Catalogue name: Nokia System Software Updates
Web address: https://downloads.maemo.nokia.com/fremantle/ssu/mr0
Distribution: ./
Components: 
[Notes]: Nokia supplied application catalogue/repository

Catalogue name: Ovi
Web address: https://downloads.maemo.nokia.com/fremantle1.2/ovi/
Distribution: ./
Components:
[Notes]: Nokia supplied application catalogue/repository

Catalogue name: maemo.org
Web address: http://repository.maemo.org/extras/
Distribution fremantle-1.3
Components: free non-free
[Notes]: Nokia supplied application catalogue/repository

Catalogue name: Community SSU (testing)
Web address: http://repository.maemo.org/community-testing
Distribution: fremantle
Components: free non-free
[Notes]: http://wiki.maemo.org/Community_SSU

Catalogue name: Geexbox
Web address: http://packages.geexbox.org
Distribution: fremantle
Components: main
[Notes]: http://www.geexbox.org/2010/03/21/enna-for-nokia-n900-is-out/

Catalogue name: Joikuspot
Web address: http://www.joikushop.com/maemospot/
Distribution: /
Components:
[Notes]: http://www.joikushop.com/index.php?action=products&amp;mode=productDetails&amp;product_id=1061

Catalogue name: Matan's repository
Web address: http://my.arava.co.il/~matan/repo/binary
Distribution: ./
Components:
[Notes]: http://wiki.maemo.org/index.php?title=User:Matan

Catalogue name: Mozilla trunk fremantle QT en-US catalog
Web address: http://ftp.mozilla.org/pub/mozilla.org/mobile/repos/trunk_en-US
Distribution: fremantle-qt
Components: extras
[Notes]: QT dependent nightly builds of Mozilla Fennec

Catalogue name: Mozilla trunk fremantle en-US catalog
Web address: http://ftp.mozilla.org/pub/mozilla.org/mobile/repos/trunk_en-US
Distribution: fremantle
Components: extras
[Notes]: QT independent nightly builds of Mozilla Fennec

Catalogue name: My maemo
Web address: http://my-maemo.com/repository
Distribution: fremantle
Components: user
[Notes]: http://www.my-maemo.com/download/index.php

Catalogue name: Nintendo emulators
Web address: http://b-man.xceleo.org/repo/maemo-nintendo-emulators/
Distribution: fremantle
Components: main

Catalogue name: Nokia Applications
Web address: https://downloads.maemo.nokia.com/fremantle/apps/
Distribution: ./
Components:
[Notes]: http://maemo.nokia.com/maemo-select/applications/

Catalogue name: Qole's repository
Web address: http://qole.org/repository
Distribution: maemo/fremantle
Components: ./
[Notes]: http://qole.org/

Catalogue name: aMSN
Web address: http://www.amsn-project.net/maemo
Distribution: fremantle
Components: amsn tcltk
[Notes]: http://www.amsn-project.net/maemo-downloads.php

Catalogue name: ali1234's repository
Web address: http://al.robotfuzz.com/~al/maemo/fremantle
Distribution: /
Components:

Catalogue name: Ruskie's non-opt repository
Web address: http://repo.codemages.net/nonopt/
Distribution: /
Components:
[Notes]: http://wiki.maemo.org/index.php?title=User:Ruskie

Catalogue name: Ruskie's opt repository
Web address: http://repo.codemages.net/opt/
Distribution: /
Components:
[Notes]: http://wiki.maemo.org/index.php?title=User:Ruskie

Catalogue name: maemo.org extras-devel
Web address: http://repository.maemo.org/extras-devel
Distribution: fremantle
Components: free non-free
[Notes]: http://wiki.maemo.org/Extras-devel

Catalogue name: maemo.org extras-testing
Web address: http://repository.maemo.org/extras-testing
Distribution: fremantle
Components: free non-free
[Notes]: http://wiki.maemo.org/Extras-testing

Catalogue name: maemo.org qa-tools
Web address: http://repository.maemo.org
Distribution: fremantle/tools
Components: free non-free
[Notes]: http://wiki.maemo.org/Documentation/devtools/maemo5

Catalogue name: maemo.org scratchbox SDK
Web address: http://repository.maemo.org
Distribution: fremantle/sdk
Components: free non-free
[Notes]: http://wiki.maemo.org/Scratchbox_repositories&lt;/pre&gt;

== My /etc/apt/mirror.list ==
Some things to note here:

* Any lines indicated with a single asterisk (#) means that the link is either not a repository (probably due to missing Packages.gz file for instance) or the Packages.gz file is corrupt and that would inhibit apt-mirror from mirroring cleanly.
* Any lines indicated with a double asterisk (##) are only for comments, do not remove these double asterisk lines without removing the comment after the asterisk as they are not suitable for use with apt-mirror.
* This is a huge list of all the known maemo repositories. It contains literally all variants of maemo platform as well as sources and i386 packages.
* &lt;nowiki&gt; nokia-binaries for fremantle line shows the word &lt;code&gt;. The word &lt;code&gt; means you must read and accept the end user license agreement. Once you have accepted the agreement and have entered the code as requested. You must replace the &lt;code&gt; with the code that you were being given. For example if the code is abc123 you must replace &lt;code&gt; with abc123. &lt;/nowiki&gt;
* downloads.maemo.nokia.com does not authorise user-less, password-less logins neither does the site have a valid certificate. A few patches is needed within apt-mirror in order to be able to get apt-mirror to work with that site.
&lt;pre&gt;
## Fremantle Extras
deb-i386 http://repository.maemo.org/extras/ fremantle free non-free
deb-armel http://repository.maemo.org/extras/ fremantle free non-free
deb-src http://repository.maemo.org/extras/ fremantle free
deb-i386 http://repository.maemo.org/extras/ fremantle-1.2 free non-free
deb-armel http://repository.maemo.org/extras/ fremantle-1.2 free non-free

## Diablo Extras
deb-i386 http://repository.maemo.org/extras/ diablo free non-free
deb-armel http://repository.maemo.org/extras/ diablo free non-free
deb-src http://repository.maemo.org/extras/ diablo free

## Gregale Extras
deb-i386 http://repository.maemo.org/extras/ gregale free non-free
deb-armel http://repository.maemo.org/extras/ gregale free non-free
deb-src http://repository.maemo.org/extras/ gregale free

## Chinook Extras
deb http://repository.maemo.org/extras/ chinook free non-free
#deb-src http://repository.maemo.org/extras/ chinook free

## Bora Extras
deb-i386 http://repository.maemo.org/extras/ bora free non-free
deb-armel http://repository.maemo.org/extras/ bora free non-free
deb-src http://repository.maemo.org/extras/ bora free

## Scirocco Extras
deb-i386 http://repository.maemo.org/extras/ scirocco free non-free
deb-armel http://repository.maemo.org/extras/ scirocco free non-free
deb-src http://repository.maemo.org/extras/ scirocco free

## Mistral Extras
deb-i386 http://repository.maemo.org/extras/ mistral free non-free
deb-armel http://repository.maemo.org/extras/ mistral free non-free
deb-src http://repository.maemo.org/extras/ mistral free

## 2.0 Extras
deb-i386 http://repository.maemo.org/extras/ 2.0 free non-free
deb-armel http://repository.maemo.org/extras/ 2.0 free non-free
deb-src http://repository.maemo.org/extras/ 2.0 free

## 2.1 Extras
deb-i386 http://repository.maemo.org/extras/ 2.1 free non-free
deb-armel http://repository.maemo.org/extras/ 2.1 free non-free
deb-src http://repository.maemo.org/extras/ 2.1 free

## 2.2 Extras
deb-i386 http://repository.maemo.org/extras/ 2.2 free non-free
deb-armel http://repository.maemo.org/extras/ 2.2 free non-free
deb-src http://repository.maemo.org/extras/ 2.2 free

## 3.0 Extras
deb-i386 http://repository.maemo.org/extras/ 3.0 free non-free
deb-armel http://repository.maemo.org/extras/ 3.0 free non-free
deb-src http://repository.maemo.org/extras/ 3.0 free

## 3.1 Extras
deb-i386 http://repository.maemo.org/extras/ 3.1 free non-free
deb-armel http://repository.maemo.org/extras/ 3.1 free non-free
deb-src http://repository.maemo.org/extras/ 3.1 free

## 3.2 Extras
deb-i386 http://repository.maemo.org/extras/ 3.2 free non-free
deb-armel http://repository.maemo.org/extras/ 3.2 free non-free
deb-src http://repository.maemo.org/extras/ 3.2 free

## 4.0 Extras
deb http://repository.maemo.org/extras/ 4.0 free non-free
#deb-src http://repository.maemo.org/extras/ 4.0 free

## 4.1 Extras
deb-i386 http://repository.maemo.org/extras/ 4.1 free non-free
deb-armel http://repository.maemo.org/extras/ 4.1 free non-free
deb-src http://repository.maemo.org/extras/ 4.1 free

## Sardine Extras
deb-i386 http://repository.maemo.org/extras/ sardine free non-free
deb-armel http://repository.maemo.org/extras/ sardine free non-free

## Scirocco Extras
deb-i386 http://repository.maemo.org/extras/ scirocco free non-free
deb-armel http://repository.maemo.org/extras/ scirocco free non-free
deb-src http://repository.maemo.org/extras/ scirocco free

## Fremantle Extras-testing
deb-i386 http://repository.maemo.org/extras-testing/ fremantle free non-free
deb-armel http://repository.maemo.org/extras-testing/ fremantle free non-free
deb-src http://repository.maemo.org/extras-testing/ fremantle free

## Fremantle Extras-devel
deb-i386 http://repository.maemo.org/extras-devel/ fremantle free non-free
deb-armel http://repository.maemo.org/extras-devel/ fremantle free non-free
deb-src http://repository.maemo.org/extras-devel/ fremantle free


## Diablo Extras-devel
deb-i386 http://repository.maemo.org/extras-devel/ diablo free non-free
deb-armel http://repository.maemo.org/extras-devel/ diablo free non-free
deb-src http://repository.maemo.org/extras-devel/ diablo free

## Gregale Extras-devel
deb-i386 http://repository.maemo.org/extras-devel/ gregale free non-free
deb-armel http://repository.maemo.org/extras-devel/ gregale free non-free
deb-src http://repository.maemo.org/extras-devel/ gregale free

## Chinook Extras-devel
deb http://repository.maemo.org/extras-devel/ chinook free non-free
#deb-src http://repository.maemo.org/extras-devel/ chinook free

## emdebian
deb-i386 http://repository.maemo.org/ emdebian target/glibc target/uclibc 
tools/glibc tools/uclibc
deb-arm http://repository.maemo.org/ emdebian target/glibc target/uclibc tools/glibc tools/uclibc
deb-src http://repository.maemo.org/ emdebian target/glibc target/uclibc tools/glibc tools/uclibc

## Bora Extras-devel
deb-i386 http://repository.maemo.org/extras-devel/ bora free non-free
deb-armel http://repository.maemo.org/extras-devel/ bora free non-free
deb-src http://repository.maemo.org/extras-devel/ bora free

## Maemo 5.0 Fremantle
deb-i386 http://repository.maemo.org/ fremantle/sdk free non-free
deb-armel http://repository.maemo.org/ fremantle/sdk free non-free
deb-src http://repository.maemo.org/ fremantle/sdk free
deb-i386 http://repository.maemo.org/ fremantle/tools free non-free
deb-armel http://repository.maemo.org/ fremantle/tools free non-free
deb-src http://repository.maemo.org/ fremantle/tools free
deb http://repository.maemo.org/ fremantle/&lt;code&gt; nokia-binaries

## Maemo 4.1 Diablo
deb-i386 http://repository.maemo.org/ diablo sdk/free sdk/non-free tools/free tools/non-free
deb-armel http://repository.maemo.org/ diablo sdk/free sdk/non-free tools/free tools/non-free
deb-src http://repository.maemo.org/ diablo sdk/free sdk/non-free tools/free tools/non-free

## Maemo 2.2 Gregale
deb-i386 http://repository.maemo.org/ gregale free non-free
deb-arm http://repository.maemo.org/ gregale free non-free
deb-armel http://repository.maemo.org/ gregale free non-free
deb-src http://repository.maemo.org/ gregale free non-free

## Maemo 4.0 Chinook
deb-i386 http://repository.maemo.org/ chinook free non-free
deb-armel http://repository.maemo.org/ chinook free non-free
deb-src http://repository.maemo.org/ chinook free non-free
deb-i386 http://repository.maemo.org/ chinook-beta free non-free extras
deb-armel http://repository.maemo.org/ chinook-beta free non-free extras
deb-src http://repository.maemo.org/ chinook-beta free non-free extras
deb-i386 http://repository.maemo.org/ maemo4.0 free non-free extras
deb-armel http://repository.maemo.org/ maemo4.0 free non-free extras
deb-src http://repository.maemo.org/ maemo4.0 free non-free extras
deb-i386 http://repository.maemo.org/ maemo4.0-beta free non-free extras
deb-armel http://repository.maemo.org/ maemo4.0-beta free non-free extras
deb-src http://repository.maemo.org/ maemo4.0-beta free non-free extras
deb-i386 http://repository.maemo.org/ maemo4.0.1 free non-free
deb-armel http://repository.maemo.org/ maemo4.0.1 free non-free
deb-src http://repository.maemo.org/ maemo4.0.1 free non-free
deb-i386 http://repository.maemo.org/ maemo4.1/sdk free non-free
deb-armel http://repository.maemo.org/ maemo4.1/sdk free non-free
deb-src http://repository.maemo.org/ maemo4.1/sdk free non-free
deb-i386 http://repository.maemo.org/ maemo4.1/tools free non-free
deb-armel http://repository.maemo.org/ maemo4.1/tools free non-free
deb-src http://repository.maemo.org/ maemo4.1/tools free non-free
deb-i386 http://repository.maemo.org/ maemo4.1.1/sdk free non-free
deb-armel http://repository.maemo.org/ maemo4.1.1/sdk free non-free
deb-src http://repository.maemo.org/ maemo4.1.1/sdk free non-free
deb-i386 http://repository.maemo.org/ maemo4.1.1/tools free non-free
deb-armel http://repository.maemo.org/ maemo4.1.1/tools free non-free
deb-src http://repository.maemo.org/ maemo4.1.1/tools free non-free
deb-i386 http://repository.maemo.org/ maemo4.1.2/sdk free non-free
deb-armel http://repository.maemo.org/ maemo4.1.2/sdk free non-free
deb-src http://repository.maemo.org/ maemo4.1.2/sdk free non-free
deb-i386 http://repository.maemo.org/ maemo4.1.2/tools free non-free
deb-armel http://repository.maemo.org/ maemo4.1.2/tools free non-free
deb-src http://repository.maemo.org/ maemo4.1.2/tools free non-free

## Maemo 3.x Bora
deb-i386 http://repository.maemo.org/ bora free non-free extras
deb-armel http://repository.maemo.org/ bora free non-free extras
deb-src http://repository.maemo.org/ bora free non-free extras
deb-i386 http://repository.maemo.org/ maemo3.0 free non-free
deb-armel http://repository.maemo.org/ maemo3.0 free non-free
deb-src http://repository.maemo.org/ maemo3.0 free non-free
deb-i386 http://repository.maemo.org/ maemo3.1 free non-free extras
deb-armel http://repository.maemo.org/ maemo3.1 free non-free extras
deb-src http://repository.maemo.org/ maemo3.1 free non-free extras
deb-i386 http://repository.maemo.org/ maemo3.2 free non-free extras
deb-armel http://repository.maemo.org/ maemo3.2 free non-free extras
deb-src http://repository.maemo.org/ maemo3.2 free non-free extras

## Maemo 2.1 Scirocco
deb-i386 http://repository.maemo.org/ scirocco free non-free
deb-arm http://repository.maemo.org/ scirocco free non-free
deb-armel http://repository.maemo.org/ scirocco free non-free
deb-src http://repository.maemo.org/ scirocco free non-free
deb-i386 http://repository.maemo.org/ maemo2.1 free non-free
deb-arm http://repository.maemo.org/ maemo2.1 free non-free
deb-armel http://repository.maemo.org/ maemo2.1 free non-free
deb-src http://repository.maemo.org/ maemo2.1 free non-free
deb-i386 http://repository.maemo.org/ maemo2.2 free non-free
deb-arm http://repository.maemo.org/ maemo2.2 free non-free
deb-armel http://repository.maemo.org/ maemo2.2 free non-free
deb-src http://repository.maemo.org/ maemo2.2 free non-free

## Maemo 2.0 Mistral
deb-i386 http://repository.maemo.org/ mistral free non-free
deb-armel http://repository.maemo.org/ mistral free non-free
deb-src http://repository.maemo.org/ mistral free non-free
deb-i386 http://repository.maemo.org/ maemo2.0 free non-free
deb-arm http://repository.maemo.org/ maemo2.0 free non-free
deb-armel http://repository.maemo.org/ maemo2.0 free non-free
deb-src http://repository.maemo.org/ maemo2.0 free non-free
deb-i386 http://repository.maemo.org/ maemo2.0rc22 free non-free
deb-arm http://repository.maemo.org/ maemo2.0rc22 free non-free
deb-armel http://repository.maemo.org/ maemo2.0rc22 free non-free
deb-src http://repository.maemo.org/ maemo2.0rc22 free non-free

## OS2008 (Maemo 2.0 Pre-Mistral)
deb-i386 http://repository.maemo.org/ os2008 free non-free extras
deb-armel http://repository.maemo.org/ os2008 free non-free extras
deb-src http://repository.maemo.org/ os2008 free non-free extras

## Maemo 1.1
deb-i386 http://repository.maemo.org/ maemo1.1 free non-free
deb-arm http://repository.maemo.org/ maemo1.1 free non-free
deb-src http://repository.maemo.org/ maemo1.1 free non-free
deb-i386 http://repository.maemo.org/ maemo1.1-extras free non-free
deb-arm http://repository.maemo.org/ maemo1.1-extras free non-free
deb-src http://repository.maemo.org/ maemo1.1-extras free non-free

## Maemo 1.0
deb-i386 http://repository.maemo.org/ maemo ossw
deb-arm http://repository.maemo.org/ maemo ossw
deb-src http://repository.maemo.org/ maemo ossw

## Maemo ?.? Sardine (13.11.2007 14:55)
deb-i386 http://repository.maemo.org/ sardine/old main non-free
deb-armel http://repository.maemo.org/ sardine/old main non-free
deb-i386 http://repository.maemo.org/ sardine-experimental/old main non-free
deb-armel http://repository.maemo.org/ sardine-experimental/old main non-free

## Maemo ?.? Herring (25.02.2009 07:15)
deb-i386 http://repository.maemo.org/ herring main non-free
deb-armel http://repository.maemo.org/ herring main non-free
deb-src http://repository.maemo.org/ herring main non-free

## Others
deb http://b-man.xceleo.org/repo/maemo-nintendo-emulators/ fremantle main
deb http://my.arava.co.il/~matan/repo/binary/ ./
deb-armel http://www.math.ucla.edu/~jimc/nokia770 gregale user
deb-armel http://www.math.ucla.edu/~jimc/nokia770 mistral user
#deb-armel http://www.math.ucla.edu/~jimc/nokia770 sciorocco user
deb-arm http://downloads.kernelconcepts.de/ kcmaemo/main/ ./
deb-i386 http://downloads.kernelconcepts.de/ kcmaemo/main/ ./
#deb-src http://downloads.kernelconcepts.de/ kcmaemo/main/ ./source
deb-armel http://downloads.kernelconcepts.de/maemo2/ mistral free
deb-armel http://downloads.kernelconcepts.de/maemo3/ bora free
deb-armel http://www.mulliner.org/nokia770/repository/ bora free
deb-armel http://www.mulliner.org/nokia770/repository/ chinook free
deb-armel http://www.mulliner.org/nokia770/repository/ maemo2 free
deb http://maemo.o-hand.com/packages/bora ./
deb http://maemo.o-hand.com/packages/chinook ./
deb http://maemo.o-hand.com/packages/diablo ./
deb http://maemo.o-hand.com/packages/gregale ./
deb-arm http://marceloeduardo.com/apt mistral games
deb-armel http://marceloeduardo.com/apt mistral games
deb-i386 http://marceloeduardo.com/apt mistral games
deb-armel http://armin-warda.de/maemo/ bora user
deb-armel http://armin-warda.de/maemo/ chinook user
deb-armel http://armin-warda.de/maemo/ diablo user
deb-armel http://armin-warda.de/maemo/ elephanta user
deb-armel http://armin-warda.de/maemo/ gregale user
deb-armel http://armin-warda.de/maemo/ herring user
deb-armel http://armin-warda.de/maemo/ mistral user
deb-armel http://armin-warda.de/maemo/ sardine user
deb-armel http://armin-warda.de/maemo/ scirocco user
deb-armel http://maemo-hackers.org/apt/ bora main
deb-i386 http://maemo-hackers.org/apt/ bora main
deb-src http://maemo-hackers.org/apt/ bora/main ./
deb-armel http://maemo-hackers.org/apt/ chinook main
deb-i386 http://maemo-hackers.org/apt/ chinook main
deb-src http://maemo-hackers.org/apt/ chinook/main ./
deb-arm http://maemo-hackers.org/apt/ maemo main
deb-i386 http://maemo-hackers.org/apt/ maemo main
deb-src http://maemo-hackers.org/apt/ maemo/main ./
deb-armel http://maemo-hackers.org/apt/ mistral main
deb-i386 http://maemo-hackers.org/apt/ mistral main
deb-src http://maemo-hackers.org/apt/ mistral/main ./
deb-arm http://maemo-hackers.org/apt/ scowp main
deb-i386 http://maemo-hackers.org/apt/ scowp main
deb-src http://maemo-hackers.org/apt/ scowp/main ./
#deb http://aeracode.org/maemo/2006/./
#deb http://aeracode.org/maemo/2007/./
#deb http://aeracode.org/maemo/2008/./
deb-armel http://www.cobb.uk.net/apt/ bora daily
deb-armel http://www.cobb.uk.net/apt/ bora experimental
deb-armel http://www.cobb.uk.net/apt/ bora user 
deb-src http://www.cobb.uk.net/apt/ bora daily
deb-src http://www.cobb.uk.net/apt/ bora experimental
deb-src http://www.cobb.uk.net/apt/ bora user
deb-armel http://www.cobb.uk.net/apt/ chinook daily
deb-armel http://www.cobb.uk.net/apt/ chinook experimental
deb-armel http://www.cobb.uk.net/apt/ chinook user
#deb-i386 http://www.cobb.uk.net/apt/ chinook user
deb-src http://www.cobb.uk.net/apt/ chinook daily
deb-src http://www.cobb.uk.net/apt/ chinook experimental
deb-src http://www.cobb.uk.net/apt/ chinook user
deb-armel http://www.cobb.uk.net/apt/ diablo daily
deb-armel http://www.cobb.uk.net/apt/ diablo experimental
deb-armel http://www.cobb.uk.net/apt/ diablo user
#deb-i386 http://www.cobb.uk.net/apt/ diablo user
deb-src http://www.cobb.uk.net/apt/ diablo daily
deb-src http://www.cobb.uk.net/apt/ diablo experimental
deb-src http://www.cobb.uk.net/apt/ diablo user
deb-armel http://www.cobb.uk.net/apt/ fremantle daily
deb-armel http://www.cobb.uk.net/apt/ fremantle experimental
deb-armel http://www.cobb.uk.net/apt/ fremantle user
deb-src http://www.cobb.uk.net/apt/ fremantle daily
deb-src http://www.cobb.uk.net/apt/ fremantle experimental
deb-src http://www.cobb.uk.net/apt/ fremantle user
#deb-armel http://www.cobb.uk.net/apt/ gregale archive
deb-armel http://www.cobb.uk.net/apt/ gregale daily
deb-armel http://www.cobb.uk.net/apt/ gregale experimental
deb-armel http://www.cobb.uk.net/apt/ gregale user
deb-src http://www.cobb.uk.net/apt/ gregale daily
deb-src http://www.cobb.uk.net/apt/ gregale experimental
#deb-src http://www.cobb.uk.net/apt/ gregale ./
deb-src http://www.cobb.uk.net/apt/ gregale user
deb-armel http://www.cobb.uk.net/apt/ mistral daily
deb-armel http://www.cobb.uk.net/apt/ mistral experimental
deb-armel http://www.cobb.uk.net/apt/ mistral user
deb-src http://www.cobb.uk.net/apt/ mistral daily
deb-src http://www.cobb.uk.net/apt/ mistral experimental
deb-src http://www.cobb.uk.net/apt/ mistral user
deb-armel http://mg.pov.lt/770 bora experimental
#deb-src http://mg.pov.lt/770 bora/experimental/
deb-armel http://mg.pov.lt/770 bora other
#deb-src http://mg.pov.lt/770 bora/other
deb-armel http://mg.pov.lt/770 bora user
#deb-src http://mg.pov.lt/770 bora/user
deb-armel http://mg.pov.lt/770 chinook experimental
#deb-src http://mg.pov.lt/770 chinook/experimental
deb-armel http://mg.pov.lt/770 chinook other
#deb-src http://mg.pov.lt/770 chinook/other
deb-armel http://mg.pov.lt/770 chinook user
#deb-src http://mg.pov.lt/770 chinook/user
deb-armel http://mg.pov.lt/770 diablo other
#deb-src http://mg.pov.lt/770 diablo/other
deb-armel http://mg.pov.lt/770 diablo user
#deb-src http://mg.pov.lt/770 diablo/user
deb-armel http://mg.pov.lt/770 fremantle other
deb-armel http://mg.pov.lt/770 fremantle user
#deb-src http://mg.pov.lt/770 fremantle/user
deb-armel http://mg.pov.lt/770 mistral experimental
deb-i386 http://mg.pov.lt/770 mistral experimental
#deb-src http://mg.pov.lt/770 mistral/experimental
deb-armel http://mg.pov.lt/770 mistral obsolete
deb-armel http://mg.pov.lt/770 mistral other
#deb-src http://mg.pov.lt/770 mistral/other
deb-armel http://mg.pov.lt/770 mistral user
deb-i386 http://mg.pov.lt/770 mistral user
#deb-src http://mg.pov.lt/770 mistral/user
#deb http://my-maemo.com/repository/ fremantle user
#deb http://qole.org/repository maemo fremantle

## Nokia repository
#deb https://downloads.maemo.nokia.com/fremantle/ssu/apps/ ./
#deb https://downloads.maemo.nokia.com/fremantle/ssu/mr0/ ./
#deb https://downloads.maemo.nokia.com/fremantle1.2/ovi/ ./
#deb https://downloads.maemo.nokia.com/fremantle/apps/ ./
deb http://catalogue.tableteer.nokia.com/certified/ bora user
deb http://catalogue.tableteer.nokia.com/certified/ chinook user
deb http://catalogue.tableteer.nokia.com/certified/ diablo user
deb http://catalogue.tableteer.nokia.com/certified/ mistral user
deb http://catalogue.tableteer.nokia.com/non-certified/ bora user
deb http://catalogue.tableteer.nokia.com/non-certified/ chinook user
deb http://catalogue.tableteer.nokia.com/non-certified/ diablo user
deb http://catalogue.tableteer.nokia.com/non-certified/ mistral user&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Twaelti</title>
    <id>3209</id>
    <revision>
      <id>42681</id>
      <timestamp>2011-03-17T19:17:28Z</timestamp>
      <contributor>
        <username>twaelti</username>
        <id>197</id>
      </contributor>
      <text xml:space="preserve">My WebApps:
*[http://www.tomch.com/maemaps.html maeMaps (Google Maps)]
 
My applications:
*[http://maemo.org/downloads/product/Maemo5/mclock mclock]
*moodlight (Only Extras-Devel)

My widgets
*[http://maemo.org/downloads/product/Maemo5/bluezwitch bluezwitch]
*[http://maemo.org/downloads/product/Maemo5/sleeper sleeper ]
*[http://maemo.org/downloads/product/Maemo5/shutter shutter]
*[http://maemo.org/downloads/product/Maemo5/recaller recaller]

In total over 700'000 downloads from Extras!</text>
    </revision>
  </page>
  <page>
    <title>User:User1</title>
    <id>690</id>
    <revision>
      <id>3925</id>
      <timestamp>2008-07-03T18:24:57Z</timestamp>
      <contributor>
        <username>user1</username>
        <id>158</id>
      </contributor>
      <minor/>
      <comment>New page: just a maemo user</comment>
      <text xml:space="preserve">just a maemo user</text>
    </revision>
  </page>
  <page>
    <title>User:V6sa</title>
    <id>2044</id>
    <revision>
      <id>18891</id>
      <timestamp>2009-09-29T07:42:49Z</timestamp>
      <contributor>
        <username>v6sa</username>
        <id>934</id>
      </contributor>
      <text xml:space="preserve">v6sa is Google Summer of Code developer. He works on [http://wiki.maemo.org/GSoC_2009/Projects/BitTorrent_plugin_for_Canola Canola2 Torrent Plugin]


You can contact me here:

[http://v6sa.itcollege.ee v6sa.itcollege.ee]

[mailto:lauri.vosandi@gmail.com lauri.vosandi@gmail.com]</text>
    </revision>
  </page>
  <page>
    <title>User:Vdvsx</title>
    <id>1171</id>
    <revision>
      <id>39979</id>
      <timestamp>2010-11-04T17:44:32Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <text xml:space="preserve">Hi,

my name is Valério Domingos Valério and my nickname is VDVsx. I’m a Portuguese Open Source enthusiastic.

My interests are technology, science, football, extreme sports, cinema and music. I like the open source philosophy, so I help on several open source projects and I’m always trying to spread the word of open source among my friend’s.

I was chair of the Maemo Community council for a term.

Currently I’m living in Helsinki, Finland.

You can check my blog at http://www.valeriovalerio.org</text>
    </revision>
  </page>
  <page>
    <title>User:Venomrush</title>
    <id>3703</id>
    <revision>
      <id>30567</id>
      <timestamp>2010-03-05T10:26:03Z</timestamp>
      <contributor>
        <username>venomrush</username>
        <id>1430</id>
      </contributor>
      <text xml:space="preserve">* maemo.org profile page: [http://maemo.org/profile/view/Venomrush/ Venomrush]
* talk.maemo.org profile page: [http://talk.maemo.org/member.php?u=25743 Venomrush]
* Garage user page: [https://garage.maemo.org/users/Venomrush/ Venomrush]
* Bugzilla - My bug reports: [https://bugs.maemo.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;emailreporter1=1&amp;emailtype1=exact&amp;email1=tri%40bcs.org.uk&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= Venomrush]</text>
    </revision>
  </page>
  <page>
    <title>User:Vetalik</title>
    <id>693</id>
    <revision>
      <id>3990</id>
      <timestamp>2008-07-04T11:34:49Z</timestamp>
      <contributor>
        <username>vetalik</username>
        <id>179</id>
      </contributor>
      <comment>New page: Hello! I'm happy owner of Nokia N810 tablet. I'm from Latvia. My spoken langueges are Russian, Latvian and English. But native is Russian.  I'm using mostly Windows, but Linux is also my d...</comment>
      <text xml:space="preserve">Hello! I'm happy owner of Nokia N810 tablet.
I'm from Latvia. My spoken langueges are Russian, Latvian and English. But native is Russian. 
I'm using mostly Windows, but Linux is also my desctop OS.</text>
    </revision>
  </page>
  <page>
    <title>User:Vivainio</title>
    <id>3751</id>
    <revision>
      <id>31175</id>
      <timestamp>2010-03-16T08:17:08Z</timestamp>
      <contributor>
        <username>vivainio</username>
        <id>421</id>
      </contributor>
      <comment>New page: Ville Vainio's private place(holder).  Insert more uninteresting lines here.</comment>
      <text xml:space="preserve">Ville Vainio's private place(holder).

Insert more uninteresting lines here.</text>
    </revision>
  </page>
  <page>
    <title>User:W00t/MerDevelopmentProcess</title>
    <id>2835</id>
    <revision>
      <id>20961</id>
      <timestamp>2009-10-25T12:18:54Z</timestamp>
      <contributor>
        <username>w00t</username>
        <id>1331</id>
      </contributor>
      <minor/>
      <comment>start getting my thoughts organised.</comment>
      <text xml:space="preserve">= Introduction =
This section of the wiki is specifically targeted at the developer ecosystem of the Mer project.

== Developers ==
If you're working on patching software directly inside Mer, this is for you.

== Upstream ==
If you're working on software included in Mer, this is for you.

== Downstream ==
If you're looking at reusing some of the work we've done on software inside Mer (patches, etc) - this is for you.</text>
    </revision>
  </page>
  <page>
    <title>User:Wazd/Sandbox/Mer</title>
    <id>1522</id>
    <revision>
      <id>10443</id>
      <timestamp>2009-01-27T16:29:58Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <text xml:space="preserve">&lt;table width=&quot;100%&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
  &lt;tr&gt;
    &lt;td width=&quot;20&quot; height=&quot;20&quot; valign=&quot;top&quot;&gt;&lt;imagemap&gt;Image:Mer wazd test corner tl.png
rect 0 0 0 0 [[Mer]]
desc none
&lt;/imagemap&gt;&lt;/td&gt;
    &lt;td rowspan=&quot;2&quot; bgcolor=&quot;#000&quot; align=&quot;center&quot;&gt;&lt;imagemap&gt;Image:Mer_wazd_test_header.jpg
rect 0 0 0 0 [[Mer]]
desc none
&lt;/imagemap&gt;&lt;/td&gt;
    &lt;td width=&quot;20&quot; height=&quot;20&quot; valign=&quot;top&quot;&gt;&lt;imagemap&gt;Image:Mer wazd test corner tr.png
rect 0 0 0 0 [[Mer]]
desc none
&lt;/imagemap&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td rowspan=&quot;3&quot; bgcolor=&quot;#000000&quot;&gt;&amp;nbsp;&lt;/td&gt;
    &lt;td bgcolor=&quot;#000&quot;&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td bgcolor=&quot;#000&quot;&gt;&lt;div style=&quot;width: 592px; margin-left: auto; margin-right: auto&quot;&gt;&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:Mer wazd test btn ov.jpg
rect 0 0 148 47 [[Mer/About]]
desc none
&lt;/imagemap&gt;&lt;/div&gt;&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:Mer wazd test btn com-.jpg
rect 0 0 148 47 [[Mer/People]]
desc none
&lt;/imagemap&gt;&lt;/div&gt;&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:Mer wazd test btn dev.jpg
rect 0 0 148 47 [[Mer/Sprints]]
desc none
&lt;/imagemap&gt;&lt;/div&gt;&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:Mer wazd test btn dwn.jpg
rect 0 0 148 47 [[Mer/Releases]]
desc none
&lt;/imagemap&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td bgcolor=&quot;#000&quot;&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td bgcolor=&quot;#000&quot;&gt;


== &lt;imagemap&gt;Image:Mer wazd test goals.jpg
rect 0 0 0 0 [[Mer]]
desc none
&lt;/imagemap&gt; == 
&lt;div style=&quot;color:#ffffff&quot;&gt;
*Improving and developing parts of Maemo that are of interest to the Maemo community. 
*Making it easier to port existing desktop applications by hildonizing and adjusting them to the tablet form factor. *Encouraging third party experimentation and development. 
*Supporting tablet hardware no longer receiving updated OS software by Nokia. 
*Making Maemo a generic platform for all tablet devices, including non-Nokia ones. 
*Focusing Maemo community efforts in platform-related areas&lt;/div&gt;

==&lt;imagemap&gt;Image:Mer wazd test act.jpg
rect 0 0 0 0 [[Mer]]
desc none
&lt;/imagemap&gt;==
&lt;div style=&quot;line-height: 1.3em; color:#fff; bgcolor:#000&quot;&gt;
&lt;imagemap&gt;Image:RSS_feed.png|12px|left
rect 0 0 12 12 [http://pipes.yahoo.com/pipes/pipe.run?_id=qJEaF4Xp3RGPv3S1rLQIDg&amp;_render=rss]
desc none
&lt;/imagemap&gt;
From [http://jaiku.com/channel/mer #mer on Jaiku] and [http://maemo.org/news/planet/ planet.maemo.org]:
&lt;rss title=&quot;off&quot; desc=&quot;off&quot; number=&quot;8&quot; time=&quot;3600&quot; bgcolor=&quot;#000&quot;&gt;http://pipes.yahoo.com/pipes/pipe.run?_id=qJEaF4Xp3RGPv3S1rLQIDg&amp;_render=rss&lt;/rss&gt;

&lt;/div&gt;&lt;/td&gt;
    &lt;td bgcolor=&quot;#000&quot;&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td width=&quot;20&quot; height=&quot;20&quot; valign=&quot;bottom&quot;&gt;&lt;imagemap&gt;Image:Mer wazd_test_corner_bl2.png
rect 0 0 0 0  [[Mer]]
desc none
&lt;/imagemap&gt;&lt;/td&gt;
    &lt;td bgcolor=&quot;#000&quot;&gt;&amp;nbsp;&lt;/td&gt;
    &lt;td width=&quot;20&quot; height=&quot;20&quot; valign=&quot;bottom&quot;&gt;&lt;imagemap&gt;Image:Mer_wazd_test_corner_br.png
rect 0 0 0 0  [[Mer]]
desc none
&lt;/imagemap&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Wazd/Sandbox/Mer/Community</title>
    <id>1543</id>
    <revision>
      <id>10484</id>
      <timestamp>2009-01-27T23:32:34Z</timestamp>
      <contributor>
        <username>wazd</username>
        <id>90</id>
      </contributor>
      <text xml:space="preserve">&lt;table width=&quot;100%&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
  &lt;tr&gt;
    &lt;td width=&quot;20&quot; height=&quot;20&quot; valign=&quot;top&quot;&gt;&lt;imagemap&gt;Image:Mer wazd test corner tl.png
rect 0 0 0 0 [[Mer]]
desc none
&lt;/imagemap&gt;&lt;/td&gt;
    &lt;td rowspan=&quot;2&quot; bgcolor=&quot;#000&quot; align=&quot;center&quot;&gt;&lt;imagemap&gt;Image:Mer_wazd_test_header.jpg
rect 0 0 0 0 [[Mer]]
desc none
&lt;/imagemap&gt;&lt;/td&gt;
    &lt;td width=&quot;20&quot; height=&quot;20&quot; valign=&quot;top&quot;&gt;&lt;imagemap&gt;Image:Mer wazd test corner tr.png
rect 0 0 0 0 [[Mer]]
desc none
&lt;/imagemap&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td rowspan=&quot;3&quot; bgcolor=&quot;#000000&quot;&gt;&amp;nbsp;&lt;/td&gt;
    &lt;td bgcolor=&quot;#000&quot;&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td bgcolor=&quot;#000&quot;&gt;&lt;div style=&quot;width: 592px; margin-left: auto; margin-right: auto&quot;&gt;&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:Mer wazd test btn ov.jpg
rect 0 0 148 47 [[Mer/About]]
desc none
&lt;/imagemap&gt;&lt;/div&gt;&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:Mer wazd test btn com_1.jpg
rect 0 0 148 47 [[Mer/People]]
desc none
&lt;/imagemap&gt;&lt;/div&gt;&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:Mer wazd test btn dev.jpg
rect 0 0 148 47 [[Mer/Sprints]]
desc none
&lt;/imagemap&gt;&lt;/div&gt;&lt;div style=&quot;float: left&quot;&gt;&lt;imagemap&gt;Image:Mer wazd test btn dwn.jpg
rect 0 0 148 47 [[Mer/Releases]]
desc none
&lt;/imagemap&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
    &lt;td bgcolor=&quot;#000&quot;&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td bgcolor=&quot;#000&quot;&gt;


== &lt;imagemap&gt;Image:Mer wazd test involv.jpg
rect 0 0 0 0 [[Mer]]
desc none
&lt;/imagemap&gt; == 
&lt;div style=&quot;color:#fff; background-color:#000&quot;&gt;
Send an e-mail to carsten.munk at gmail.com, listing a nickname, name and optional affilation/occupation, area of interests, and where you are from. Name will be put along with affilation and area of interests (unless explicitly told not to show parts of this information) in a table in the blueprint. You will get a Jaiku invite as well, that you're encouraged to use and post in #mer to keep the rest of us updated on what you're doing. &lt;/div&gt;

==&lt;imagemap&gt;Image:Mer wazd test partic.jpg
rect 0 0 0 0 [[Mer]]
desc none
&lt;/imagemap&gt;==

&lt;table width=&quot;100%&quot; border=&quot;0&quot; cellpadding=&quot;4&quot; cellspacing=&quot;0&quot;&gt;
  &lt;tr style=&quot;background-color:#000; color:#666; font-family:Verdana, Geneva, sans-serif; font-weight:bold; font-size:12px; &quot;&gt;
    &lt;td width=&quot;10%&quot;&gt;Nickname&lt;/td&gt;
    &lt;td width=&quot;12%&quot;&gt;Name &lt;/td&gt;
    &lt;td width=&quot;30%&quot;&gt;Affiliation (employer) or occupation &lt;/td&gt;
    &lt;td width=&quot;10%&quot; align=&quot;center&quot;&gt;Registered since &lt;/td&gt;
    &lt;td width=&quot;12%&quot;&gt;Location &lt;/td&gt;
    &lt;td width=&quot;26%&quot;&gt;Areas of interest &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr style=&quot;background:#16232f; color:#fff&quot;&gt;
    &lt;td&gt;[[User:Stskeeps| Stskeeps]]&lt;/td&gt;
    &lt;td&gt;Carsten V. Munk&lt;/td&gt;
    &lt;td&gt;Centre for Pervasive Healthcare, University of Aarhus. MSc. comp.sci. student&lt;/td&gt;
    &lt;td align=&quot;center&quot;&gt;Beginning&lt;/td&gt;
    &lt;td&gt;Aarhus, Denmark&lt;/td&gt;
    &lt;td&gt;Community, genericity of mobile platform.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr style=&quot;background:#000; color:#fff&quot;&gt;
    &lt;td&gt;[[User:johnx|JohnX]]&lt;/td&gt;
    &lt;td&gt;John R. Bloom&lt;/td&gt;
    &lt;td&gt;English Teacher &lt;/td&gt;
    &lt;td align=&quot;center&quot;&gt;Beginning&lt;/td&gt;
    &lt;td&gt;Yokohama, Japan &lt;/td&gt;
    &lt;td&gt;Hacking, packaging, fixing stuff &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr style=&quot;background:#16232f; color:#fff&quot;&gt;
    &lt;td&gt;[[User:Jaffa|Jaffa]]&lt;/td&gt;
    &lt;td&gt;Andrew Flegg &lt;/td&gt;
    &lt;td&gt;Systems' Architect &lt;/td&gt;
    &lt;td align=&quot;center&quot;&gt;2009-01-18 &lt;/td&gt;
    &lt;td&gt;UK &lt;/td&gt;
    &lt;td&gt;Upstream (Ubuntu/Maemo) compatibility, user-experience &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr style=&quot;background:#000; color:#fff&quot;&gt;
    &lt;td&gt;[[User:GeneralAntilles| GeneralAntilles]]&lt;/td&gt;
    &lt;td&gt;Ryan Abel&lt;/td&gt;
    &lt;td&gt;Student &lt;/td&gt;
    &lt;td align=&quot;center&quot;&gt;2009-01-22 &lt;/td&gt;
    &lt;td&gt;US &lt;/td&gt;
    &lt;td&gt;Public relations, documentation, maemo.org infrastructure &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr style=&quot;background:#16232f; color:#fff&quot;&gt;
    &lt;td&gt;[[User:Andrewfblack| Andrewfblack]]&lt;/td&gt;
    &lt;td&gt;Andrew F. Black &lt;/td&gt;
    &lt;td&gt;Radiation Protection Technician &lt;/td&gt;
    &lt;td align=&quot;center&quot;&gt;2009-01-22&lt;/td&gt;
    &lt;td&gt;Alabama, US &lt;/td&gt;
    &lt;td&gt;Theme Development &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr style=&quot;background:#000; color:#fff&quot;&gt;
    &lt;td&gt;[[User:qwerty12|qwerty12]]&lt;/td&gt;
    &lt;td&gt;Faheem Pervez &lt;/td&gt;
    &lt;td&gt;Student &lt;/td&gt;
    &lt;td align=&quot;center&quot;&gt;2009-01-22&lt;/td&gt;
    &lt;td&gt;London, UK&lt;/td&gt;
    &lt;td&gt;Mer packager. Porter of apps with basic hildonizing knowledge. &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr style=&quot;background:#16232f; color:#fff&quot;&gt;
    &lt;td&gt;[[User:Meizirkki|Meizirkki]]&lt;/td&gt;
    &lt;td&gt;Roope Kuisma &lt;/td&gt;
    &lt;td&gt;Student &lt;/td&gt;
    &lt;td align=&quot;center&quot;&gt;2009-01-22 &lt;/td&gt;
    &lt;td&gt;Finland &lt;/td&gt;&lt;td width=&quot;26%&quot;&gt;Testing &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr style=&quot;background:#000; color:#fff&quot;&gt;
    &lt;td&gt;[[User:vdvsx|vdvsx]]&lt;/td&gt;
    &lt;td&gt;Valério Valério&lt;/td&gt;
    &lt;td&gt;MSc Student &lt;/td&gt;
    &lt;td align=&quot;center&quot;&gt;2009-01-22&lt;/td&gt;
    &lt;td&gt;Évora, Portugal &lt;/td&gt;
    &lt;td&gt;User interfaces, communication, testing, Kernel &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr  style=&quot;background:#16232f; color:#fff&quot;&gt;
    &lt;td&gt;[[User:b-man|b-man]]&lt;/td&gt;
    &lt;td&gt;Brian McKenzie&lt;/td&gt;
    &lt;td&gt;Hacker/Porter/Student &lt;/td&gt;
    &lt;td align=&quot;center&quot;&gt;2009-01-22 &lt;/td&gt;
    &lt;td&gt;Ohio, US &lt;/td&gt;
    &lt;td&gt;Hacker/Porter and also the developer of the Mer Project Installer &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr style=&quot;background:#000; color:#fff&quot;&gt;
    &lt;td&gt;[[User:r2d2rogers|r2d2rogers]]&lt;/td&gt;
    &lt;td&gt;Rob Rogers &lt;/td&gt;
    &lt;td&gt;Web App Developer &lt;/td&gt;
    &lt;td align=&quot;center&quot;&gt;2009-01-22&lt;/td&gt;
    &lt;td&gt;Louisiana, US&lt;/td&gt;
    &lt;td&gt;Older hardware (770), QA/Bugs, Social media &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr  style=&quot;background:#16232f; color:#fff&quot;&gt;
    &lt;td&gt;[[User:lcuk|lcuk]]&lt;/td&gt;
    &lt;td&gt;Gary Birkett &lt;/td&gt;
    &lt;td&gt;widget set designer &lt;/td&gt;
    &lt;td align=&quot;center&quot;&gt;2009-01-23&lt;/td&gt;
    &lt;td&gt;Manchester, UK&lt;/td&gt;
    &lt;td&gt;optimizing UI interactions and experience &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr style=&quot;background:#000; color:#fff&quot;&gt;
    &lt;td&gt;[[User:wazd|wazd]]&lt;/td&gt;
    &lt;td&gt;Andrew Zhilin&lt;/td&gt;
    &lt;td&gt;Web Designer &lt;/td&gt;
    &lt;td align=&quot;center&quot;&gt;2009-01-26 &lt;/td&gt;
    &lt;td&gt;Moscow, Russia&lt;/td&gt;
    &lt;td&gt;visual design, user interface design &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;
    &lt;td bgcolor=&quot;#000&quot;&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td width=&quot;20&quot; height=&quot;20&quot; valign=&quot;bottom&quot;&gt;&lt;imagemap&gt;Image:Mer wazd_test_corner_bl2.png
rect 0 0 0 0  [[Mer]]
desc none
&lt;/imagemap&gt;&lt;/td&gt;
    &lt;td bgcolor=&quot;#000&quot;&gt;&amp;nbsp;&lt;/td&gt;
    &lt;td width=&quot;20&quot; height=&quot;20&quot; valign=&quot;bottom&quot;&gt;&lt;imagemap&gt;Image:Mer_wazd_test_corner_br.png
rect 0 0 0 0  [[Mer]]
desc none
&lt;/imagemap&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;</text>
    </revision>
  </page>
  <page>
    <title>User:Woody14619</title>
    <id>3162</id>
    <revision>
      <id>47556</id>
      <timestamp>2012-05-24T18:03:02Z</timestamp>
      <contributor>
        <username>woody14619</username>
        <id>1579</id>
      </contributor>
      <text xml:space="preserve">[[Image:Mcc-woody14619.png]]

Happy N900 owner in Rochester, NY (USA).

I am available on IRC (freenode.net/#maemo) most weekdays from 10:00 to 19:00 EST/EDT.  I'm also quite active on TMO, and reply to direct private messages there.</text>
    </revision>
  </page>
  <page>
    <title>User:Xfade</title>
    <id>97</id>
    <revision>
      <id>624</id>
      <timestamp>2008-06-02T07:23:33Z</timestamp>
      <contributor>
        <username>xfade</username>
        <id>15</id>
      </contributor>
      <comment>Created personal page</comment>
      <text xml:space="preserve">Niels Breet
maemo.org webmaster

[http://maemo.org/profile/view/xfade/ Profile page on maemo.org]</text>
    </revision>
  </page>
  <page>
    <title>User:Xfade/test</title>
    <id>782</id>
    <revision>
      <id>4645</id>
      <timestamp>2008-07-17T10:56:33Z</timestamp>
      <contributor>
        <username>xfade</username>
        <id>15</id>
      </contributor>
      <minor/>
      <comment>test</comment>
      <text xml:space="preserve">== ID 101 ==
{{#bugzilla:id=101
 |lastcomment=1
}}


== Votes ==
{{#bugzilla:columns=+votes|votes=+
 |status=!(RESOLVED,CLOSED)
 |maxrows=20
}}


== Bugs for downloads ==
{{#bugzilla:
 |maxrows=20
 |component=Downloads
 |status=!(RESOLVED,CLOSED)
 |order=priority
}}


== High priority bugs for Browser ==
{{#bugzilla:
 |maxrows=20
 |product=Browser
 |status=!(RESOLVED,CLOSED)
 |priority=High
 |order=priority
}}

Test</text>
    </revision>
  </page>
  <page>
    <title>User:Xfade/tst</title>
    <id>1743</id>
    <revision>
      <id>12206</id>
      <timestamp>2009-04-02T14:43:52Z</timestamp>
      <contributor>
        <username>xfade</username>
        <id>15</id>
      </contributor>
      <minor/>
      <comment>1 revision</comment>
      <text xml:space="preserve">test321</text>
    </revision>
  </page>
  <page>
    <title>User:Xomm</title>
    <id>3717</id>
    <revision>
      <id>30668</id>
      <timestamp>2010-03-07T16:15:53Z</timestamp>
      <contributor>
        <username>xomm</username>
        <id>2155</id>
      </contributor>
      <comment>Created Page</comment>
      <text xml:space="preserve">== Background ==

I've been a lurker in the Maemo community ever since I got my N800 in mid-2008.

I've only recently began actively participating in the Maemo community. My goals are not necessarily only to begin learning how to program (in various languages), but to help users who may not have much experience with Linux.

I'm still a minor in the United States, so I won't be going to any Summits or anything, and you probably won't see me outside of the Wiki or Talk forums (for now ;))

== Devices owned ==

Nokia N900
Nokia N800

Several family computers that run various Linux Distributions.

== Experience ==

Member of the Academy of Information Technology at my school (within the top 50 in the USA, by the way).

First Contact with Linux: Late 2007
First Programming Experience: 2009
First C++ class (not yet): Mid-2010 to Mid-2011
First Java class (not yet): Mid-2011 to Mid-2013

Hope to be an active developer in the MeeGo community by 2011.</text>
    </revision>
  </page>
  <page>
    <title>User:Yanli</title>
    <id>3747</id>
    <revision>
      <id>43163</id>
      <timestamp>2011-04-20T23:30:44Z</timestamp>
      <contributor>
        <username>yanli</username>
        <id>2289</id>
      </contributor>
      <comment>Clean up</comment>
      <text xml:space="preserve">Yan Li is working in Intel's MeeGo distribution team. He is also a [http://foundation.gnome.org/ GNOME Foundation Member]. He is living at [http://www.lonelyplanet.com/china/beijing Beijing] now. Come to me and have coffee together when you are at Beijing!

* Email: yan.i.li AT SPAMFREE intel DOT com, yanli AT SPAMFREE gnome DOT org
* OpenPGP key: 5C6C31EF
* IRC: yanli on network irc.freenode.net
* Flickr: http://www.flickr.com/photos/elliotli/
* Blog: http://elliotli.blogspot.com/

He's working on the following areas:
* [http://meego.com MeeGo] distribution, packaging, OS optimization, etc.
* Power management
* [http://www.gnome.org/projects/evolution/ Evolution]

He worked on the following projects:
* Graphics ([http://x.org X.org])
* [http://live.gnome.org/Anjal Anjal] (the mail client for small form factor devices)
* [http://packages.qa.debian.org/a/anjal.html Anjal packaging for Debian]</text>
    </revision>
  </page>
  <page>
    <title>User:Yerga</title>
    <id>562</id>
    <revision>
      <id>39992</id>
      <timestamp>2010-11-05T08:58:08Z</timestamp>
      <contributor>
        <username>yerga</username>
        <id>110</id>
      </contributor>
      <text xml:space="preserve">I am Daniel Martin Yerga.

I am a chemist. I live in Asturias in that multicultural state called Spain. 

I bought a 770 at the beginning of 2006, I had a n800, and now I have a n810. 

In the maemo.org world, I have ported some programs as Nicotine, Mirage, Lybniz and Easychem. Also I have done some application specially designed for the tablets as Maemo WordPy, Maemo Periodic, Mabugz, and Pyrecipe.


[http://maemo.org/profile/view/yerga/ My maemo.org profile]

[https://garage.maemo.org/users/yerga/ My garage profile]

[http://www.internettablettalk.com/forums/member.php?u=2069 My Talk profile]

[http://yerga.net My web page]</text>
    </revision>
  </page>
  <page>
    <title>User:Ymb</title>
    <id>2552</id>
    <revision>
      <id>19314</id>
      <timestamp>2009-10-05T20:44:44Z</timestamp>
      <contributor>
        <username>ymb</username>
        <id>1216</id>
      </contributor>
      <comment>New page: =Mike Bradshaw=  Playing with Technology</comment>
      <text xml:space="preserve">=Mike Bradshaw=

Playing with Technology</text>
    </revision>
  </page>
  <page>
    <title>User:Zgold550</title>
    <id>2549</id>
    <revision>
      <id>19251</id>
      <timestamp>2009-10-05T04:52:34Z</timestamp>
      <contributor>
        <ip>68.32.201.2</ip>
      </contributor>
      <comment>New page: I'm a student working on a project to help extend the functionality of GUPnP.</comment>
      <text xml:space="preserve">I'm a student working on a project to help extend the functionality of GUPnP.</text>
    </revision>
  </page>
  <page>
    <title>User:Smarsh/Ideas</title>
    <id>2947</id>
    <revision>
      <id>21970</id>
      <timestamp>2009-11-06T15:45:15Z</timestamp>
      <contributor>
        <username>smarsh</username>
        <id>1349</id>
      </contributor>
      <comment>Replacing page with '==Steve's Ideas Bits ==

===FAQ Ideas ===

There are a few FAQs, and as Dave points out, this is a few too many. The suggestion was a user faq and a developer faq. I'm thinking...'</comment>
      <text xml:space="preserve">==Steve's Ideas Bits ==

===FAQ Ideas ===

There are a few FAQs, and as Dave points out, this is a few too many. The suggestion was a user faq and a developer faq. I'm thinking about the former. 

Steps: 
* 6/11/09: bring in all other FAQ pages here
* (tbd) remove duplication from each.
* (tbd) integrate into proper structure.

See under progress [http://wiki.maemo.org/index.php?title=User:Smarsh/Ideas/FAQIdea here]</text>
    </revision>
  </page>
  <page>
    <title>User FAQ</title>
    <id>1780</id>
    <revision>
      <id>49187</id>
      <timestamp>2012-08-22T10:32:02Z</timestamp>
      <contributor>
        <ip>93.37.82.130</ip>
      </contributor>
      <comment>/* What map programmes can I use? */</comment>
      <text xml:space="preserve">'''THIS PAGE IS CONTINUALLY UNDER DEVELOPMENT. NEW QUESTIONS AND ANSWERS ARE ALWAYS WELCOME!'''

For development topics, please see the [[Developer FAQ|Developer frequently asked questions]].

==Principles of frequently asked questions ==

* No more than 2 page lengths per, well, page. (Okay, the front page breaks this rule in this structure. Sorry!)
* No more than 3 clicks from this page to get an answer
* Use links to maemo.org content where possible (including talk.maemo.org)
** Especially if the answer is more than a couple of sentences (one paragraph max) - in this case, make a wiki.maemo.org page if necessary and point to it.
* Continually update (needs a FAQ editor)

Open to suggestions...

== Tips for finding answers ==

Please note, you can also use the search facilities:
* [http://talk.maemo.org/search.php  talk.maemo.org search]
* [http://tinyurl.com/q7btxk maemo.org google custom search]

Note that there is a [[Developer FAQ|separate FAQ]] for those interested in Development.

New to Maemo? There's a [[New users|New Users page]], [[Maemo basics]] article and a [[Greeters]] organization.

== I can't read through this! I'm in big trouble... Need big help... ==

Are you sure? You might want to check below in the [[#Troubleshooting_and_Optimization|Troubleshooting]] section. 

But... If all else fails, and you just can't see a way out, [[updating the firmware]] is the last straw. It deletes all user data and reverts all settings to default.

== Hardware==

''Note: device links will direct you to specific hardware pages''

=== N900 ===

The [[Nokia N900|N900]] is a pocketable computer with plenty of power (speed and memory) for running many demanding applications. 

Users report a total of five hardware versions for the N900. Two are reported as being pre-release loan devices (1801, 2001) and three are reported as sourced through retail channels (2101, 2104, 2204). See the [http://talk.maemo.org/showthread.php?t=46314 discussion]at talk.maemo.org for the differences noted.

Take a look at [[N900 Accessories]] if you are in a need of screen protector, carrying case or similar.

=== (Older) Internet Tablets ===

* [[Nokia N810WME|Nokia N810 WiMax Edition]]
* [[Nokia N810]]
* [[Nokia N800]]
* [[Nokia 770|Nokia 770 Internet tablet]]

===Battery===

====Do I have to charge it fully before first use?====

No. It will come with about 50% of the full battery charge so you can tinker around and set your initial preferences out of the box.

====Do I have to discharge it fully each time?====

No, the N900 has a Li-Ion (Lithium-Ion) battery, which doesn't need this. Older NiCad (Nickel-Cadmium) batteries did.

====Can I use the device while it’s charging?====

Yes. Your files stored in 'MyDocs' (also known as the folder 'Nokia N900') will not be available in 'Mass Storage mode' or 'PC Suite mode' when connected to the computer. Clicking outside the prompt when connecting to a computer leaves it in 'Charging mode' and leaves your files accessible from the device.

====Is it safe to leave it charging overnight? Will it stop charging itself when it’s full?====

Yes. By default, the notification light (when the screen is off) glows Yellow to indicate 'Charging', and is a steady green to indicate 'Battery Full'.

==== How can I extend my battery life? ====

To ensure that your batteries last longer, check out [[Batteries#Extend_Battery_Lifetime|extending battery lifetime]]. For tips on making a single battery charge last longer, read how to [[make your battery last longer]].

==Software and Usage==

===Operating System===

The Nokia devices run on the [[Maemo basics|Maemo Operating System]], but there are alternatives (see alternatives below).

====Maemo====

{{main|Codenames#Maemo}}

The N900 runs Maemo 5 out of the box. See the [[Maemo5 101|Maemo 5 Introductory pages]] for details, movies, and advice. [[Open development/Maemo roadmap/Fremantle|Fremantle]] is the codename of Maemo 5, which is the current version of Maemo.

Maemo 4, also known as OS2008, was the operating system used on the Nokia N800, N810, and N810 WiMAX Edition. The original, version 4.0, release was codenamed &quot;Chinook&quot;. A later, version 4.1, upgrade was codenamed &quot;[[Open development/Maemo roadmap/Diablo|Diablo]]&quot;.

====Maemo 5 Revision History====

Maemo 5 has gone through five updates as of December 2010.

See the individual change-logs for more information.

# [[Maemo 5/PR1.0|1.2009.42-11]], aka PR1.0, the N900's original (for production units) firmware.
# 1.2009.44-1, aka PR1.0.1, was a preparatory release for PR1.1. It was only released Over-The-Air (meaning the flasher was not updated) to devices with the original firmware.
# [[Maemo 5/PR1.1|2.2009.51-1]], aka PR1.1, was the first major firmware revision for Maemo 5.
# [[Maemo 5/PR1.1.1|3.2010.02-8]], aka PR1.1.1, is the preparatory release for PR1.2.
# [[Maemo 5/PR1.2|10.2010.19-1]], aka PR1.2 was released in May 2010
# [[Maemo 5/PR1.3|20.2010.36-2]], aka PR1.3 was released in October 2010 and is the current version of Maemo 5

==== Will Maemo 5 run on the Previous Internet Tablets? ====

[http://maemo.org/news/announcements/first_maemo_5_sdk_release_targeting_platform_developers/ Not officially] but perhaps through the [[Mer]] community project. Maemo 5 is optimized for the [[:wikipedia:Texas_Instruments_OMAP|OMAP3 architecture]], the N810 and N800 are based in OMAP2 and the 770 on OMAP1.

Earlier tablets ran earlier versions of Maemo. See the [[Codenames#Release Table|release history]] for more details.

====What are the 'Alternatives' to Maemo====

* [[Mer]]
* [[Easy Debian]]
* See also [http://talk.maemo.org/forumdisplay.php?f=36 the talk.maemo.org Alternatives forum]

====How can I reset my device to factory settings?====

The device must be reflashed, by [[updating the firmware]].

=== General Usage ===

==== How do I lock and unlock the touchscreen? ====

A nice overview of locking and unlocking is available on this [http://www.youtube.com/user/Maemo5UITeam#p/u/5/eq9tIZwJV6w MaemoUI Team video].

==== Are there shortcuts for the keyboard and gestures? ====

Yes. See the full list of [[N900 shortcuts and gestures]].

==== Can I do email? ====

Yes, the N900 has an integrated e-mail client (Modest). See [[N900 Email Options]] for more help.

==== How can I sync personal data? ====

The [[Sync]] article will tell you more.

==== Which music files can be played in Maemo? ====

{{main|N900 Media Support}}

mp3, m4a (without copy protection), [[Playing OGG files|OGG]], aac, eaac and wav.

==== Can I install and use new themes? ====

Yes, look at [[Themes]] article.

==== How can I find files from my home directory with terminal? ====

The [[MyDocs folder]] article describes the locations.

==== How do I take a screenshot? ====

#Open the keyboard.
#Make sure the screen you wish to capture is the screen showing.
#Press Ctrl + Shift + P
#Open the Photos Application.
#The screen shot is the last picture taken.


Or you can install Load applet, it will allow taking screenshots and recording videos using the new applet in the hildon status menu.

==== How do I get to the task switcher using the the keyboard? ====

Press Ctrl + backspace.

==== How do I add recurring appointments to the calendar? ====

See the [[repeating entries in Calendar]] article.

==== How do I use the Video Camera? ====

See the article on basic use of the [[Video camera]].

==== TV Out ====

The N900 comes with a cable to connect it to a composite input on a television. This connection is sometimes called an &quot;RCA&quot; connection and uses a yellow connector for video and a pair of connectors (red and white) for stereo audio. 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.

Make sure that you check Settings/TV Out and change the video format to PAL or NTSC for your local TV system, prior to connecting it to the TV.

==== Why doesn't X forwarding over ssh work? ====

See the article on [[X forwarding over ssh]]. The short answer is that you need to install the [http://pc-connectivity.garage.maemo.org/2nd_edition/index.html PC Connectivity] package.

=== Phone usage ===

==== Does the N900 have speed dial? ====

You can put contact shortcuts on the desktop...

==== Does the N900 have voice dialing? ====

No.

==== How do I access my carrier’s answering service - it used to be speed dial set in my old phone? ====

If it is in the simcard, it should be imported into the address book, if it is not, then you probably want to copy it from your old phone manually.

==== Does the N900 log calls for length? ====

Yes.

==== Can I sort calls by received/sent/missed? ====

No.

==== I can use the phone in portrait mode: why can’t I use that for other things? ====

There is no an official Nokia update which supports portrait mode, for now it is only available throughout [http://wiki.maemo.org/CSSU CSSU] ( community seamless software update ).


And most of the applications in the [http://wiki.maemo.org/Repository repositories] now supports portrait mode.

=== Texts ===

====I hear that the N900 doesn’t have MMS: is this true?====

The N900 doesn't support MMS at release. However, you can install [[fMMS]] for [[MMS]] support.

====Does the N900 have message receipt?====

Conversations, the SMS and IM application, can optionally &quot;Receive text message delivery reports&quot;. This option is disabled by default, but may be enabled in the Settings area of Conversations.

====Can I use an onscreen keyboard?====

An on-screen keyboard is available. It is disabled by default, but may enabled via &quot;Text input&quot; in the Settings application.

The on-screen keyboard is landscape in orientation and alphanumeric. Its layout is QWERTY, QWERTZ, etc. as is regionally appropriate.

====Is there a portrait mode keyboard?====

There is a portrait mode dialing pad for making calls. Now the portrait keyboard can be found in Maemo [http://wiki.maemo.org/Repository repositories]

====Is there T9 entry?====

No, though this could be added by a third party developer later. See [[VertSMS]], for instance.

==== Can I send SMS to more than one person at once? ====

Yes. See how to [[SMS Multiple Contacts|send an SMS to multiple contacts]].

=== GPS ===

==== What can I do with GPS? ====

[http://maemo.nokia.com/features/ovi-maps/ Ovi Maps] comes preinstalled to the N900 and there are ways to go [[Geocaching]] with Maemo devices too. You can also make use of the maps provided by the [http://openstreetmap.org OpenStreetMap] project.

==== What’s the difference between GPS and a-GPS? ====

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.

==== If I only use GPS (not a-GPS) will I still burn my data plan? ====

Only if you have to download Map information

==== What map programmes can I use? ====

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

As of October 2009, none of the &quot;big names&quot;--Garmin, Google, TomTom, etc.--have announced any plans to release software for the N900.

There exists a Maemo version of Sygic Navigator.

==== Does the N900 support google maps? ====

''You can use Google maps directly from the browser, or you can try [http://talk.maemo.org/showthread.php?t=33645 MaeMaps] or [http://talk.maemo.org/showthread.php?t=63747 GeePS] A native front end for Google maps''

==== 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? ====
Yes: [http://www.hpsblog.com/2009/07/direct-download-for-ovi-maps-30-without.html] (&lt;- dead link : blog talking about iPhones now! See symbian.clanteam.com [http://symbian.clanteam.com/indexmaps.htm] or europe.nokia.com [http://europe.nokia.com/support/product-support/maps-support/compatibility-and-download#/nokia-n900/]). Or you can use [http://talk.maemo.org/showpost.php?p=820369&amp;postcount=11 Mappero] and Google maps.

=== Internet ===

====Does the N900 need a firewall?====

Maybe not.

====Does the N900 need anti-virus?====

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's unlikely a (mostly theoretical) virus for desktop Linux could infect the N900.

====Can I block adverts?====

Adblock Plus works on the N900 and is available as a free download. See the [http://maemo.org/packages/view/adblock-plus-1.0/ package page] for more information.

====Does the N900 play YouTube videos?====

Yes. You might wish to try [http://talk.maemo.org/showthread.php?t=65854 CuteTube] a feature rich Youtube client.

====Can I use MSN Messenger on the N900====

Yes. See the [[MSN messenger]] article for more details.

=== Games ===

Go to the [[Games]] page to find more about gaming with the N900.

=== Customization ===

Go to the [[Customizing Maemo]] page to find more about customization in the N900.

==== Can the N900 be deployed in the enterprise environment? ====

Yes, there is a guide on [[Enterprise Deployment Guide|Enterprise provisioning]].

===Other Applications===

==== Where do I get software (apps) from?====

Open application manager and start searching for useful software. You can learn more about [[downloading apps|downloading applications]] and [[installing applications]].

You can browse Extras and Ovi applications online with [http://maemo.nokia.com/maemo-select/ Maemo Select]

Apps fall into one of several categories.

* ''[[Extras]]'' - stable and tested applications suitable for anyone to install
* ''[[Extras-testing]]'' - possibly unstable apps, which are undergoing a quality assurance process before being moved to [[extras]]. Generally should be installed by the more experienced user as they can cause issues with your N900.
* ''[[Extras-devel]]'' - beta or even alpha level software. Should only be installed by very experienced or suicidal users, who know what to do if software breaks their device

If dont find the application that you want you can register you interest in the [[applications you wish were ported from other platforms]] article.

====Can I edit Office files?====

N900 comes with dataviz's Office 'Office to Go' reader, so you can read office files. It is only a 30-day trial, and must be purchased after the promotional period.

Editing them is a slightly more interesting prospect, but has become a much more exciting one with [http://sureshchande.blogspot.com/2009/10/mobile-office-based-on-koffice-for.html KOffice].

[[Easy Debian]], which also provides a LXDE desktop environment, has OpenOffice.org Writer (Word Processor), Impress (Presentation Editor), and Calc (Spreadsheet Editor) installed. It is available for Maemo 5, as well as OS2008.

[http://maemo.org/packages/view/gnuplot/ Gnuplot] is also avaliable as a native application for charts/graphs/spreasheets.

====Does the N900 view pdf files?====

There's a built in application for that.

====Does Maemo 5 have a book reader? Will it run Kindle?====

[http://maemo.org/downloads/product/Maemo5/fbreader/ FBReader] is available. Although it cannot read DRM-encrypted ebooks (like Kindle), it can read nearly any un-encrypted ebook format.

== Community ==

=== What is the difference between Maemo and maemo.org? ===

Maemo refers to the Open source software platform for mobile devices developed by Nokia in collaboration with the Maemo community and some of the best open source upstream projects. maemo.org is the home of the Maemo community, and is a gathering place for people interested in this platform and related software and devices ([[Task:Maemo brand|more]]).

=== Where should I report problems? ===

Software problems are reported as [http://maemo.org/community/bugs_and_features/ bugs] - please be gentle with the [[Bugsquad]] team. Contact [http://europe.nokia.com/get-support-and-software Nokia Support] for serious problems with your device during the warranty period. 

In case of doubt [http://talk.maemo.org/showthread.php?t=27900 use the Talk forum]. Being blunt when reporting bugs on talk.maemo.org is highly discouraged (for example: Internet won't open. What do I do?). Describe the problem as detailed as you can without being overly elaborate. 

See [[Maemo Talk Do's and Don'ts]] (page under construction) for more information.

=== What is the Community Council? ===

The [[Community Council]] is a team of volunteers representing the community and interfacing with Nokia.

=== How can I help with software development ===

Read instructions from the [[Help testing software]] article. Please read the disclaimer first.

== Troubleshooting and Optimization ==

''Note: all short answers to tables!''

The most important part: read the article [[General precautions]] to stay out of trouble. Hope you read this before all hope is gone!

=== Troubleshooting ===

{|class=&quot;wikitable&quot; border=&quot;0&quot;
|-
!Trouble
!Solution
|-
|My system is unstable and applications crash a lot. What's wrong?
|rowspan=&quot;4&quot; align=&quot;right&quot;|See [[Troubleshooting]]
|-
|My tablet is slow and unresponsive. What can I do?
|-
|I installed something and now my N900 isn’t working right.
|-
|I installed something and now my N900 isn’t working at all.
|-
|I have run out of disk space. How can I add more?
|align=&quot;right&quot;|See [[Booting from a flash card]]
|-
|I have trouble connecting to the internet over wifi
|align=&quot;right&quot;|See [[Network settings]]
|-
|}

=== Optimization ===

{|class=&quot;wikitable&quot; border=&quot;0&quot;
|-
!Trouble
!Solution
|-
|There’s a light flashing on my N900
|align=&quot;right&quot;|See [[Maemo5 101]]
|-
|How can I encode video files for playback on the device?
|align=&quot;right&quot;|See [[video encoding]]
|-
|How can I improve battery life?
|align=&quot;right&quot;|See [[How To Make Your Battery Last Longer]]
|-
|How do I get root access?
|align=&quot;right&quot;|See [[root access]]
|-
|I have run out of disk space. How can I add more?
|align=&quot;right&quot;|See [[Booting from a flash card]]
|-
|I have trouble connecting to the internet over wifi
|align=&quot;right&quot;|See [[Network settings]]
|-
|}

===How can I monitor my disk usage and how much space I have left?===

Via the ‘memory’ applet in the Settings application. Or in the [[terminal]] do:
 df -h
for all in fstab or do
 du -hs &lt;dir&gt;
for a specific folder.

The applications 'Disk Usage' and 'Storage Usage' also provide different methods of measuring usage.

===How often do I need to update? And why?===

N900 is 'updatable software', 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's better to download - for example your using your home network rather than your data plan.

== Future ==

=== Can I Plug in USB devices to my N900? ===

Not yet. See the article on [[N900 Hardware USB Host]] for some more details on efforts to make this work. The current status is that it works, but a user friendly solution is some way off.

=== What is MeeGo / Maemo 6 / Harmattan? ===

Maemo 6 is the next incarnation of the Maemo operating system. Originally, it was simply to be completely open-sourced, and the official transition from GTK+ to Qt (GUI styles).

But with the announcement of the Intel Moblin and Nokia Maemo merge to form MeeGo, [[Open development/Maemo roadmap/Harmattan|Harmattan]] is now the &quot;stepping stone&quot; for the merge.

=== Will Harmattan work on my N900? ===

The &quot;official&quot; answer from Nokia as of 2010 is [[What can we realistically expect#Will Harmattan/Meego be supported on the N900 for the average consumer and not just for for developers ?|&quot;We don't Know.&quot;]]

[[Category:Users]]
[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>User FAQ</title>
    <id>1780</id>
    <revision>
      <id>49187</id>
      <timestamp>2012-08-22T10:32:02Z</timestamp>
      <contributor>
        <ip>93.37.82.130</ip>
      </contributor>
      <comment>/* What map programmes can I use? */</comment>
      <text xml:space="preserve">'''THIS PAGE IS CONTINUALLY UNDER DEVELOPMENT. NEW QUESTIONS AND ANSWERS ARE ALWAYS WELCOME!'''

For development topics, please see the [[Developer FAQ|Developer frequently asked questions]].

==Principles of frequently asked questions ==

* No more than 2 page lengths per, well, page. (Okay, the front page breaks this rule in this structure. Sorry!)
* No more than 3 clicks from this page to get an answer
* Use links to maemo.org content where possible (including talk.maemo.org)
** Especially if the answer is more than a couple of sentences (one paragraph max) - in this case, make a wiki.maemo.org page if necessary and point to it.
* Continually update (needs a FAQ editor)

Open to suggestions...

== Tips for finding answers ==

Please note, you can also use the search facilities:
* [http://talk.maemo.org/search.php  talk.maemo.org search]
* [http://tinyurl.com/q7btxk maemo.org google custom search]

Note that there is a [[Developer FAQ|separate FAQ]] for those interested in Development.

New to Maemo? There's a [[New users|New Users page]], [[Maemo basics]] article and a [[Greeters]] organization.

== I can't read through this! I'm in big trouble... Need big help... ==

Are you sure? You might want to check below in the [[#Troubleshooting_and_Optimization|Troubleshooting]] section. 

But... If all else fails, and you just can't see a way out, [[updating the firmware]] is the last straw. It deletes all user data and reverts all settings to default.

== Hardware==

''Note: device links will direct you to specific hardware pages''

=== N900 ===

The [[Nokia N900|N900]] is a pocketable computer with plenty of power (speed and memory) for running many demanding applications. 

Users report a total of five hardware versions for the N900. Two are reported as being pre-release loan devices (1801, 2001) and three are reported as sourced through retail channels (2101, 2104, 2204). See the [http://talk.maemo.org/showthread.php?t=46314 discussion]at talk.maemo.org for the differences noted.

Take a look at [[N900 Accessories]] if you are in a need of screen protector, carrying case or similar.

=== (Older) Internet Tablets ===

* [[Nokia N810WME|Nokia N810 WiMax Edition]]
* [[Nokia N810]]
* [[Nokia N800]]
* [[Nokia 770|Nokia 770 Internet tablet]]

===Battery===

====Do I have to charge it fully before first use?====

No. It will come with about 50% of the full battery charge so you can tinker around and set your initial preferences out of the box.

====Do I have to discharge it fully each time?====

No, the N900 has a Li-Ion (Lithium-Ion) battery, which doesn't need this. Older NiCad (Nickel-Cadmium) batteries did.

====Can I use the device while it’s charging?====

Yes. Your files stored in 'MyDocs' (also known as the folder 'Nokia N900') will not be available in 'Mass Storage mode' or 'PC Suite mode' when connected to the computer. Clicking outside the prompt when connecting to a computer leaves it in 'Charging mode' and leaves your files accessible from the device.

====Is it safe to leave it charging overnight? Will it stop charging itself when it’s full?====

Yes. By default, the notification light (when the screen is off) glows Yellow to indicate 'Charging', and is a steady green to indicate 'Battery Full'.

==== How can I extend my battery life? ====

To ensure that your batteries last longer, check out [[Batteries#Extend_Battery_Lifetime|extending battery lifetime]]. For tips on making a single battery charge last longer, read how to [[make your battery last longer]].

==Software and Usage==

===Operating System===

The Nokia devices run on the [[Maemo basics|Maemo Operating System]], but there are alternatives (see alternatives below).

====Maemo====

{{main|Codenames#Maemo}}

The N900 runs Maemo 5 out of the box. See the [[Maemo5 101|Maemo 5 Introductory pages]] for details, movies, and advice. [[Open development/Maemo roadmap/Fremantle|Fremantle]] is the codename of Maemo 5, which is the current version of Maemo.

Maemo 4, also known as OS2008, was the operating system used on the Nokia N800, N810, and N810 WiMAX Edition. The original, version 4.0, release was codenamed &quot;Chinook&quot;. A later, version 4.1, upgrade was codenamed &quot;[[Open development/Maemo roadmap/Diablo|Diablo]]&quot;.

====Maemo 5 Revision History====

Maemo 5 has gone through five updates as of December 2010.

See the individual change-logs for more information.

# [[Maemo 5/PR1.0|1.2009.42-11]], aka PR1.0, the N900's original (for production units) firmware.
# 1.2009.44-1, aka PR1.0.1, was a preparatory release for PR1.1. It was only released Over-The-Air (meaning the flasher was not updated) to devices with the original firmware.
# [[Maemo 5/PR1.1|2.2009.51-1]], aka PR1.1, was the first major firmware revision for Maemo 5.
# [[Maemo 5/PR1.1.1|3.2010.02-8]], aka PR1.1.1, is the preparatory release for PR1.2.
# [[Maemo 5/PR1.2|10.2010.19-1]], aka PR1.2 was released in May 2010
# [[Maemo 5/PR1.3|20.2010.36-2]], aka PR1.3 was released in October 2010 and is the current version of Maemo 5

==== Will Maemo 5 run on the Previous Internet Tablets? ====

[http://maemo.org/news/announcements/first_maemo_5_sdk_release_targeting_platform_developers/ Not officially] but perhaps through the [[Mer]] community project. Maemo 5 is optimized for the [[:wikipedia:Texas_Instruments_OMAP|OMAP3 architecture]], the N810 and N800 are based in OMAP2 and the 770 on OMAP1.

Earlier tablets ran earlier versions of Maemo. See the [[Codenames#Release Table|release history]] for more details.

====What are the 'Alternatives' to Maemo====

* [[Mer]]
* [[Easy Debian]]
* See also [http://talk.maemo.org/forumdisplay.php?f=36 the talk.maemo.org Alternatives forum]

====How can I reset my device to factory settings?====

The device must be reflashed, by [[updating the firmware]].

=== General Usage ===

==== How do I lock and unlock the touchscreen? ====

A nice overview of locking and unlocking is available on this [http://www.youtube.com/user/Maemo5UITeam#p/u/5/eq9tIZwJV6w MaemoUI Team video].

==== Are there shortcuts for the keyboard and gestures? ====

Yes. See the full list of [[N900 shortcuts and gestures]].

==== Can I do email? ====

Yes, the N900 has an integrated e-mail client (Modest). See [[N900 Email Options]] for more help.

==== How can I sync personal data? ====

The [[Sync]] article will tell you more.

==== Which music files can be played in Maemo? ====

{{main|N900 Media Support}}

mp3, m4a (without copy protection), [[Playing OGG files|OGG]], aac, eaac and wav.

==== Can I install and use new themes? ====

Yes, look at [[Themes]] article.

==== How can I find files from my home directory with terminal? ====

The [[MyDocs folder]] article describes the locations.

==== How do I take a screenshot? ====

#Open the keyboard.
#Make sure the screen you wish to capture is the screen showing.
#Press Ctrl + Shift + P
#Open the Photos Application.
#The screen shot is the last picture taken.


Or you can install Load applet, it will allow taking screenshots and recording videos using the new applet in the hildon status menu.

==== How do I get to the task switcher using the the keyboard? ====

Press Ctrl + backspace.

==== How do I add recurring appointments to the calendar? ====

See the [[repeating entries in Calendar]] article.

==== How do I use the Video Camera? ====

See the article on basic use of the [[Video camera]].

==== TV Out ====

The N900 comes with a cable to connect it to a composite input on a television. This connection is sometimes called an &quot;RCA&quot; connection and uses a yellow connector for video and a pair of connectors (red and white) for stereo audio. 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.

Make sure that you check Settings/TV Out and change the video format to PAL or NTSC for your local TV system, prior to connecting it to the TV.

==== Why doesn't X forwarding over ssh work? ====

See the article on [[X forwarding over ssh]]. The short answer is that you need to install the [http://pc-connectivity.garage.maemo.org/2nd_edition/index.html PC Connectivity] package.

=== Phone usage ===

==== Does the N900 have speed dial? ====

You can put contact shortcuts on the desktop...

==== Does the N900 have voice dialing? ====

No.

==== How do I access my carrier’s answering service - it used to be speed dial set in my old phone? ====

If it is in the simcard, it should be imported into the address book, if it is not, then you probably want to copy it from your old phone manually.

==== Does the N900 log calls for length? ====

Yes.

==== Can I sort calls by received/sent/missed? ====

No.

==== I can use the phone in portrait mode: why can’t I use that for other things? ====

There is no an official Nokia update which supports portrait mode, for now it is only available throughout [http://wiki.maemo.org/CSSU CSSU] ( community seamless software update ).


And most of the applications in the [http://wiki.maemo.org/Repository repositories] now supports portrait mode.

=== Texts ===

====I hear that the N900 doesn’t have MMS: is this true?====

The N900 doesn't support MMS at release. However, you can install [[fMMS]] for [[MMS]] support.

====Does the N900 have message receipt?====

Conversations, the SMS and IM application, can optionally &quot;Receive text message delivery reports&quot;. This option is disabled by default, but may be enabled in the Settings area of Conversations.

====Can I use an onscreen keyboard?====

An on-screen keyboard is available. It is disabled by default, but may enabled via &quot;Text input&quot; in the Settings application.

The on-screen keyboard is landscape in orientation and alphanumeric. Its layout is QWERTY, QWERTZ, etc. as is regionally appropriate.

====Is there a portrait mode keyboard?====

There is a portrait mode dialing pad for making calls. Now the portrait keyboard can be found in Maemo [http://wiki.maemo.org/Repository repositories]

====Is there T9 entry?====

No, though this could be added by a third party developer later. See [[VertSMS]], for instance.

==== Can I send SMS to more than one person at once? ====

Yes. See how to [[SMS Multiple Contacts|send an SMS to multiple contacts]].

=== GPS ===

==== What can I do with GPS? ====

[http://maemo.nokia.com/features/ovi-maps/ Ovi Maps] comes preinstalled to the N900 and there are ways to go [[Geocaching]] with Maemo devices too. You can also make use of the maps provided by the [http://openstreetmap.org OpenStreetMap] project.

==== What’s the difference between GPS and a-GPS? ====

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.

==== If I only use GPS (not a-GPS) will I still burn my data plan? ====

Only if you have to download Map information

==== What map programmes can I use? ====

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

As of October 2009, none of the &quot;big names&quot;--Garmin, Google, TomTom, etc.--have announced any plans to release software for the N900.

There exists a Maemo version of Sygic Navigator.

==== Does the N900 support google maps? ====

''You can use Google maps directly from the browser, or you can try [http://talk.maemo.org/showthread.php?t=33645 MaeMaps] or [http://talk.maemo.org/showthread.php?t=63747 GeePS] A native front end for Google maps''

==== 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? ====
Yes: [http://www.hpsblog.com/2009/07/direct-download-for-ovi-maps-30-without.html] (&lt;- dead link : blog talking about iPhones now! See symbian.clanteam.com [http://symbian.clanteam.com/indexmaps.htm] or europe.nokia.com [http://europe.nokia.com/support/product-support/maps-support/compatibility-and-download#/nokia-n900/]). Or you can use [http://talk.maemo.org/showpost.php?p=820369&amp;postcount=11 Mappero] and Google maps.

=== Internet ===

====Does the N900 need a firewall?====

Maybe not.

====Does the N900 need anti-virus?====

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's unlikely a (mostly theoretical) virus for desktop Linux could infect the N900.

====Can I block adverts?====

Adblock Plus works on the N900 and is available as a free download. See the [http://maemo.org/packages/view/adblock-plus-1.0/ package page] for more information.

====Does the N900 play YouTube videos?====

Yes. You might wish to try [http://talk.maemo.org/showthread.php?t=65854 CuteTube] a feature rich Youtube client.

====Can I use MSN Messenger on the N900====

Yes. See the [[MSN messenger]] article for more details.

=== Games ===

Go to the [[Games]] page to find more about gaming with the N900.

=== Customization ===

Go to the [[Customizing Maemo]] page to find more about customization in the N900.

==== Can the N900 be deployed in the enterprise environment? ====

Yes, there is a guide on [[Enterprise Deployment Guide|Enterprise provisioning]].

===Other Applications===

==== Where do I get software (apps) from?====

Open application manager and start searching for useful software. You can learn more about [[downloading apps|downloading applications]] and [[installing applications]].

You can browse Extras and Ovi applications online with [http://maemo.nokia.com/maemo-select/ Maemo Select]

Apps fall into one of several categories.

* ''[[Extras]]'' - stable and tested applications suitable for anyone to install
* ''[[Extras-testing]]'' - possibly unstable apps, which are undergoing a quality assurance process before being moved to [[extras]]. Generally should be installed by the more experienced user as they can cause issues with your N900.
* ''[[Extras-devel]]'' - beta or even alpha level software. Should only be installed by very experienced or suicidal users, who know what to do if software breaks their device

If dont find the application that you want you can register you interest in the [[applications you wish were ported from other platforms]] article.

====Can I edit Office files?====

N900 comes with dataviz's Office 'Office to Go' reader, so you can read office files. It is only a 30-day trial, and must be purchased after the promotional period.

Editing them is a slightly more interesting prospect, but has become a much more exciting one with [http://sureshchande.blogspot.com/2009/10/mobile-office-based-on-koffice-for.html KOffice].

[[Easy Debian]], which also provides a LXDE desktop environment, has OpenOffice.org Writer (Word Processor), Impress (Presentation Editor), and Calc (Spreadsheet Editor) installed. It is available for Maemo 5, as well as OS2008.

[http://maemo.org/packages/view/gnuplot/ Gnuplot] is also avaliable as a native application for charts/graphs/spreasheets.

====Does the N900 view pdf files?====

There's a built in application for that.

====Does Maemo 5 have a book reader? Will it run Kindle?====

[http://maemo.org/downloads/product/Maemo5/fbreader/ FBReader] is available. Although it cannot read DRM-encrypted ebooks (like Kindle), it can read nearly any un-encrypted ebook format.

== Community ==

=== What is the difference between Maemo and maemo.org? ===

Maemo refers to the Open source software platform for mobile devices developed by Nokia in collaboration with the Maemo community and some of the best open source upstream projects. maemo.org is the home of the Maemo community, and is a gathering place for people interested in this platform and related software and devices ([[Task:Maemo brand|more]]).

=== Where should I report problems? ===

Software problems are reported as [http://maemo.org/community/bugs_and_features/ bugs] - please be gentle with the [[Bugsquad]] team. Contact [http://europe.nokia.com/get-support-and-software Nokia Support] for serious problems with your device during the warranty period. 

In case of doubt [http://talk.maemo.org/showthread.php?t=27900 use the Talk forum]. Being blunt when reporting bugs on talk.maemo.org is highly discouraged (for example: Internet won't open. What do I do?). Describe the problem as detailed as you can without being overly elaborate. 

See [[Maemo Talk Do's and Don'ts]] (page under construction) for more information.

=== What is the Community Council? ===

The [[Community Council]] is a team of volunteers representing the community and interfacing with Nokia.

=== How can I help with software development ===

Read instructions from the [[Help testing software]] article. Please read the disclaimer first.

== Troubleshooting and Optimization ==

''Note: all short answers to tables!''

The most important part: read the article [[General precautions]] to stay out of trouble. Hope you read this before all hope is gone!

=== Troubleshooting ===

{|class=&quot;wikitable&quot; border=&quot;0&quot;
|-
!Trouble
!Solution
|-
|My system is unstable and applications crash a lot. What's wrong?
|rowspan=&quot;4&quot; align=&quot;right&quot;|See [[Troubleshooting]]
|-
|My tablet is slow and unresponsive. What can I do?
|-
|I installed something and now my N900 isn’t working right.
|-
|I installed something and now my N900 isn’t working at all.
|-
|I have run out of disk space. How can I add more?
|align=&quot;right&quot;|See [[Booting from a flash card]]
|-
|I have trouble connecting to the internet over wifi
|align=&quot;right&quot;|See [[Network settings]]
|-
|}

=== Optimization ===

{|class=&quot;wikitable&quot; border=&quot;0&quot;
|-
!Trouble
!Solution
|-
|There’s a light flashing on my N900
|align=&quot;right&quot;|See [[Maemo5 101]]
|-
|How can I encode video files for playback on the device?
|align=&quot;right&quot;|See [[video encoding]]
|-
|How can I improve battery life?
|align=&quot;right&quot;|See [[How To Make Your Battery Last Longer]]
|-
|How do I get root access?
|align=&quot;right&quot;|See [[root access]]
|-
|I have run out of disk space. How can I add more?
|align=&quot;right&quot;|See [[Booting from a flash card]]
|-
|I have trouble connecting to the internet over wifi
|align=&quot;right&quot;|See [[Network settings]]
|-
|}

===How can I monitor my disk usage and how much space I have left?===

Via the ‘memory’ applet in the Settings application. Or in the [[terminal]] do:
 df -h
for all in fstab or do
 du -hs &lt;dir&gt;
for a specific folder.

The applications 'Disk Usage' and 'Storage Usage' also provide different methods of measuring usage.

===How often do I need to update? And why?===

N900 is 'updatable software', 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's better to download - for example your using your home network rather than your data plan.

== Future ==

=== Can I Plug in USB devices to my N900? ===

Not yet. See the article on [[N900 Hardware USB Host]] for some more details on efforts to make this work. The current status is that it works, but a user friendly solution is some way off.

=== What is MeeGo / Maemo 6 / Harmattan? ===

Maemo 6 is the next incarnation of the Maemo operating system. Originally, it was simply to be completely open-sourced, and the official transition from GTK+ to Qt (GUI styles).

But with the announcement of the Intel Moblin and Nokia Maemo merge to form MeeGo, [[Open development/Maemo roadmap/Harmattan|Harmattan]] is now the &quot;stepping stone&quot; for the merge.

=== Will Harmattan work on my N900? ===

The &quot;official&quot; answer from Nokia as of 2010 is [[What can we realistically expect#Will Harmattan/Meego be supported on the N900 for the average consumer and not just for for developers ?|&quot;We don't Know.&quot;]]

[[Category:Users]]
[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>User frequently asked questions</title>
    <id>3141</id>
    <revision>
      <id>24063</id>
      <timestamp>2009-12-05T15:20:49Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>[[User frequently asked questions]] moved to [[User FAQ]]</comment>
      <text xml:space="preserve">#REDIRECT [[User FAQ]]</text>
    </revision>
  </page>
  <page>
    <title>User talk:Amigadave</title>
    <id>3594</id>
    <revision>
      <id>47424</id>
      <timestamp>2012-05-04T10:00:57Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Changed protection level for &quot;[[User talk:Amigadave]]&quot;: continuous vandalism - making readonly [edit=sysop:move=sysop]</comment>
      <text xml:space="preserve">I am the author of much of the content of the N900 hardware pages.

I have been in the process of editing these pages into a coherent whole, and systematically adding links to the rest of the wiki, as well as originating new content when I see gaps, based on the kernel, documentation, and other sources.

Many of the newer pages are admittedly stubs, which I was planning on fixing today.

Unfortunately, your bulk move of pages has made this task much harder, as I now cannot simply type a remembered page title.
A separate name-space - N900 Hardware* was chosen for a reason.

There were existing pages that may conflict with some items, and for some items, a separate page for the software side of the problem makes sense.

As I am planning to add significantly more content in the near future, and this move makes that process harder, can you please revert the moves.

If you feel that there is a strong case why the pages must be moved, can this be postponed for a month or two, while I get them into a state where I will not be constantly adding new crossreferences that I have to look up.

Thanks.
--[[User:speedevil|speedevil]] 00:32, 17 June 2010 (UTC)

:First of all, sorry for treading on your changes, that was unintentional. However, I made sure to leave the old page names as redirects to the new locations, so you should be able to use the same link destinations without a problem. I tidied away links to the old pages to ensure no problems if the pages got moved again (double redirects, for example). I was using [[Contributing to the wiki#Style]] as my guide, which suggests to use sentence capitalization for page titles, so I was both fixing the capitalization and knocking the ’hardware’ off where it made sense, which is not uniformly the case, as you pointed out.
:I do not mind holding off on the page moves for a while, if you feel that it would be easier, and I would be happy to go through your additions and fix any links and other minor things now or once you are finished. I look forward to your contributions! -- [[User:amigadave|amigadave]] 08:33, 17 June 2010 (UTC)

Why did you delete &quot;N900 Bluetooth DUN Client&quot; — Preceding '''unsigned''' comment added by [[User:matan|matan]] 16:58, 12 February 2010 (UTC)

:There were several reasons:
:# The information was too complicated compared to the existing [[Bluetooth DUN]] page
:# The instructions suggested that a user should download binaries (that would be difficult to verify) from an external server
:# The page was orphaned and so could not be easily found from within the wiki
:I am happy to add a redirect, if the URL is found on an external page where the URL cannot be changed. — [[User:amigadave|amigadave]] 19:03, 12 February 2010 (UTC)

::# The operation is complicated.
::# So?
::# Is that a reason to delete? — Preceding '''unsigned''' comment added by [[User:matan|matan]] 20:05, 14 February 2010 (UTC)

:::# The current Bluetooth DUN page is simple compared to the complex instructions that were on [[N900 Bluetooth DUN Client]]. The deleted page was simply adding noise
:::# The source code of packages in [[Extras]] can be downloaded to verify that the package is not malware or worse. A tarball containing only binaries cannot be easily verified in this way, not to mention the licensing problems of distributing binaries built from Linux kernel source code without an accompanying license or offer of source code
:::# If the page was not linked from anywhere within the wiki, then it must have been quite difficult to find for potential users
::: These reasons, taken together, provide good justification for deleting the page. — [[User:amigadave|amigadave]] 09:55, 18 February 2010 (UTC)

::::# The instructions on the page &quot;Bluetooth DUN&quot; are for '''BT DUN SERVER on N900'''. They have absolutely nothing to do with the page you deleted, which is about '''BT DUN CLIENT on N900'''.
::::# The page [[Easy_Debian]] also suggests &quot;that a user should download binaries (that would be difficult to verify) from an external server&quot;. And there are many other such pages.
::::# The page was linked from t.m.o. Is the wiki some kind of standalone?
::::# Please undelete the page. — Preceding '''unsigned''' comment added by [[User:matan|matan]] 22:27, 19 February 2010 (UTC)

:::::# OK, but this was quite unclear from the content of both pages, and could have been mentioned at the start of the discussion. I have updated the [[Bluetooth DUN]] page to reflect that the package currently in Extras is for a DUN server only
:::::# Then [[Easy Debian]] is also violating the GPL and potentially other licenses that are used on a Debian installation, and links to the binary images should also be removed. If there are other instances of this on the wiki, then please let me know. However, this does not fix the licensing problem with the Bluetooth DUN client kernel modules (on the deleted page). Maybe it would be possible to make a small package containing the necessary kernel modules and upload it to [[Extras]]? I would certainly like to help, if you think that this would be useful.
:::::# It is difficult to check whether a wiki page is used from outside the wiki, but as I said in my first response, I would be happy to add a redirect if the page was accessed from an external resource, such as talk.maemo.org. I have now added the redirect.
:::::# The page content should not be restored until the licensing problems are fixed. Providing the license (GPL-2 for the kernel modules?) together with the binaries, and a link to the source code should be sufficient, although a package for [[Extras]] would be even better. — [[User:amigadave|amigadave]] 09:38, 22 February 2010 (UTC)

::::::#It is not a GPL violation to link to a binary without linking to the source in the same page. See for example Nokia's firmware download page, as well as millions of others pages. Source for everything that was linked in that page is available, but it has no place what is essentially a HOWTO page.
::::::#Please undelete the page, and either correct what you think needs correction, or ask for correction's in the page's discussion page. That is proper wiki course of action. Deleting a page without a warning and without a valid reason is not. — Preceding '''unsigned''' comment added by [[User:matan|matan]] 21:37, 24 February 2010 (UTC)

:::::::# According to section 3 of the [http://www.gnu.org/licenses/gpl-2.0.html GPL 2] (which is the license for the Linux kernel modules that were linked from the offending page), a binary built from GPL 2 source code must either come with the sources, a written offer of the sources or the same offer as was present in an existing GPL 2 binary distribution. Offering source code from the same page is explicitly mentioned in Section 3 as ‘distribution of the source code’, which would comply with requirements of the GPL 2. Nokia binary images come with a written offer of source code (in the ‘About product’ applet of the Settings application), thus fulfilling the requirements of the GPL 2 and other open source licenses.
:::::::# The page should not be undeleted until the binaries linked from it are corrected so as to comply with the GPL 2. The reasoning is valid and I have explained it to you in detail the requirements of the license and how you might correct the problem. In short, supply the license along with the binaries and provide a written offer of the source code. I reiterate my offer to help in making a package that could be uploaded to [[Extras]], fixing all of these problems. — [[User:amigadave|amigadave]] 09:00, 25 February 2010 (UTC)

#Please delete the following pages immediately for GPL violations:
#*[[Mer/Releases/0.16]]
#*[[Mer/Releases/0.15testing9]]
#*[[Mer/Releases/0.15testing6]]
#*[[Mer/Releases/0.14testing7]] — Preceding '''unsigned''' comment added by [[User:matan|matan]] 12:52, 25 February 2010 (UTC)

:# The packages that you linked to contain an Ubuntu-derived operating system, which in &lt;code&gt;/etc/motd.tail&lt;/code&gt; explains where to locate the license files for each included package. The copyright files included in the packages give the location of the source code, for example &lt;code&gt;./usr/share/doc/bash/copyright&lt;/code&gt;. Thus, there is no GPL violation. Please do not make unfounded claims. — [[User:amigadave|amigadave]] 13:44, 25 February 2010 (UTC)

Hi amiga, regarding
https://wiki.maemo.org/index.php?title=KDE_on_scratchbox_for_maemo_5&amp;diff=31075&amp;oldid=30681 I have to say the article is much more to read now and I no longer find my way through it. Can you revert? --[[User:tstaerk|tstaerk]] 03:48, 16 March 2010 (UTC)

:Hi tstaerk!
:I do not understand what you mean. I removed the scratchbox installation instructions as they already exist on the wiki, in the article that I linked to. The installation page is long, but it covers many different distributions, and also installation of scratchbox on x86-64, which was claimed to not work by the information that I removed. A lot of the other information was not relevant because there are now packages available, so compiling the software manually is not necessary.
:The article as it stands is a lot shorter than before, but links to other documentation. I think that it is better to not duplicate this information, but keep it in a central place and up-to-date.
:A simple revert would add back the incorrect and redundant information, but if there was anything specific that you think I missed out, please add it, or let me know and I will be happy to update the page. — [[User:amigadave|amigadave]] 10:32, 16 March 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>User talk:Cas07/Sandbox/Front page</title>
    <id>3410</id>
    <revision>
      <id>34318</id>
      <timestamp>2010-05-12T20:44:10Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">I am considering how to add the Devices into this page without increase it size too much --[[User:cas07|cas07]] 22:46, 16 January 2010 (UTC)

::*Prominent link to Wiki involvement [[Wiki gardeners]]
::*Along with [[Contributing_to_the_wiki]] that seems to be not linked to very much
::*Remove Community links that are duplicating existing site pages links.
--[[User:cas07|cas07]] 18:36, 21 January 2010 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>User talk:Dneary</title>
    <id>3515</id>
    <revision>
      <id>50511</id>
      <timestamp>2012-10-27T12:13:09Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Re-removing old useless conversation &amp; bug number related test. Sorry I didn't log in last time.</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>User talk:Feri</title>
    <id>294</id>
    <revision>
      <id>31613</id>
      <timestamp>2010-03-26T09:10:10Z</timestamp>
      <contributor>
        <username>feri</username>
        <id>2</id>
      </contributor>
      <comment>Reorg</comment>
      <text xml:space="preserve">== Bug Fix Tests ==

=== [https://bugs.maemo.org/show_bug.cgi?id=8791 #8791] ===

hello



=== [https://bugs.maemo.org/show_bug.cgi?id=7545 #7545] ===

&lt;syntaxhighlight lang=&quot;php&quot;&gt;
&lt;?php
    v = &quot;string&quot;;    // sample initialization
?&gt;
html text
&lt;?
    echo v;         // end of php code
?&gt;
&lt;/syntaxhighlight&gt;



=== [https://bugs.maemo.org/show_bug.cgi?id=7528 #7528] ===

Text here [[Image:Maemo.jpg|border]] [[Image:Maemo.jpg|border]] and text there.


Picture goes to the right: [[Image:Maemo.jpg|border|right]]</text>
    </revision>
  </page>
  <page>
    <title>User talk:Generalantilles</title>
    <id>174</id>
    <revision>
      <id>1153</id>
      <timestamp>2008-06-08T16:46:27Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>Removing all content from page</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>User talk:Guaka</title>
    <id>2846</id>
    <revision>
      <id>21066</id>
      <timestamp>2009-10-26T10:15:09Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <text xml:space="preserve">Hi yes, I'm aware of signatures and usual wiki netiquette. But nobody is perfect. :) What was the page with my edits bothering you? Just curious.--[[User:qgil|qgil]] 05:11, 26 October 2009 (UTC)

http://talk.maemo.org/forumdisplay.php?f=16 is the right place to discuss wiki &amp; karma related things. --[[User:qgil|qgil]] 10:15, 26 October 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>User talk:Jebba</title>
    <id>3221</id>
    <revision>
      <id>44226</id>
      <timestamp>2011-06-28T12:46:52Z</timestamp>
      <contributor>
        <username>nandro</username>
        <id>4448</id>
      </contributor>
      <comment>/* oFono - n900 modem - exist ? */ new section</comment>
      <text xml:space="preserve">Feel free to ask questions/make comments here, if you happened to have found this page. ;)

=spontaneous reboots=
Hi Jebba, I was excited to get your kernel running on my N900, but now it's [[User talk:Jebba/NAT|rebooting whenever I ping through it]]. [[User:guaka|guaka]] 19:36, 6 January 2010 (UTC)

:Odd, I haven't heard that behaviour with my kernel *in particular* but it has been known to happen to other devices. You can revert to the old kernel and check it out. Suerte! [[User:jebba|jebba]] 00:18, 7 January 2010 (UTC)

::Well, I like tux and the startup messages.  Plus, I'll be out in the bush next week with probably just internet on my phone, so I would love to see this work somehow soonish :)  Is there something I could do that might lead to a solution to the problem? [[User:guaka|guaka]] 16:59, 7 January 2010 (UTC)

:::You can check the various threads and bugzilla tickets about spontaneous reboots. You're not alone, for sure. Again, it's not something particular to my kernel as it is hitting many people that are running stock systems. Good luck! :)  [[User:jebba|jebba]] 22:19, 7 January 2010 (UTC)

==Ofono==
Thank you so much for your ofono user-page! Being new to Maemo, Ofono, and DBus, it helped me over some HUGE hurdles. Is there any reason why the page is in your user space and not in the main namespace? -[[User:pgrodt|pgrodt]] 22:29, 19 February 2010 (UTC)

: Glad to hear it helped. :)  It is in my namespace because they are kind of my random notes. Feel free to copy and/all content from my namespace to appropriate places in the main wikispace if you so desire. [[User:jebba|jebba]] 22:56, 19 February 2010 (UTC)

== oFono - n900 modem - exist ? ==

Hello Jebba,

I have followed step by step your guide to setup ofono on n900 and on a notebook ( ubuntu 10.10 x64 ).

But in all cases the n900 modem is invisible by ofono.

Really, all is ok but I can't find the modem.

Do you think to help me in this desperate search ?

Thanks in advance ... Nandro</text>
    </revision>
  </page>
  <page>
    <title>User talk:Jeremiah</title>
    <id>1735</id>
    <revision>
      <id>12124</id>
      <timestamp>2009-03-28T03:12:58Z</timestamp>
      <contributor>
        <username>jeremiah</username>
        <id>585</id>
      </contributor>
      <comment>New page: Hello!</comment>
      <text xml:space="preserve">Hello!</text>
    </revision>
  </page>
  <page>
    <title>User talk:Joerg rw</title>
    <id>4390</id>
    <revision>
      <id>37668</id>
      <timestamp>2010-08-10T19:43:03Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>why doesn't wiki edit notification work?</comment>
      <text xml:space="preserve">test
&quot;watch this page&quot; is useless</text>
    </revision>
  </page>
  <page>
    <title>User talk:Josefdk/Intro Mockup</title>
    <id>2889</id>
    <revision>
      <id>21544</id>
      <timestamp>2009-11-01T15:11:15Z</timestamp>
      <contributor>
        <username>josefdk</username>
        <id>1273</id>
      </contributor>
      <minor/>
      <comment>/* Complaints */</comment>
      <text xml:space="preserve">== Complaints ==

* cramped layout (NEEDINFO)
* Better QoTD (WONTFIX)</text>
    </revision>
  </page>
  <page>
    <title>User talk:Jsmanrique</title>
    <id>1279</id>
    <revision>
      <id>7848</id>
      <timestamp>2008-10-22T08:12:48Z</timestamp>
      <contributor>
        <username>generalantilles</username>
        <id>7</id>
      </contributor>
      <comment>New page: Just, fyi, the Fremantle Stars proposals are already being added to [[Task:Remarkable community projects]], you should move the proposals on your page over there. :) —~~~~</comment>
      <text xml:space="preserve">Just, fyi, the Fremantle Stars proposals are already being added to [[Task:Remarkable community projects]], you should move the proposals on your page over there. :) —[[User:generalantilles|GeneralAntilles]] 08:12, 22 October 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>User talk:Lardman</title>
    <id>1216</id>
    <revision>
      <id>7397</id>
      <timestamp>2008-09-22T10:04:27Z</timestamp>
      <contributor>
        <username>lardman</username>
        <id>60</id>
      </contributor>
      <comment>New page: Current projects:  =DSP=  ==Get dsp-tremor working==  Have moved back to almost original lowmem-no-byte code, and back to sparse buffers (i.e. 8bits in each 16bit char) The problem is that...</comment>
      <text xml:space="preserve">Current projects:

=DSP=

==Get dsp-tremor working==

Have moved back to almost original lowmem-no-byte code, and back to sparse buffers (i.e. 8bits in each 16bit char)
The problem is that I'm running out of memory, need to see what can be saved, and perhaps move some not-often-used stuff back to the original slab-allocator (which I thought was causing problems with buffer corruption, and I didn't think it would be too fast)

==Get dsp-mp3 working==

I was forwarded some code by Siarhei Siamashka for a c55 mp3 decoder. Am working to get this plumbed in with the DSP Gateway

==EAP sink==

Reverse engineer the EAP functions from, e.g. the pcm sink pcm.o, and create a stand along PCM sink.

==OpenMAX-style changes to decoder tasks==

With a stand alone pcm sink, and an existing sbc sink (see my dsp-sbc Garage project), it would be possible (once a decoder of some sort is finished, i.e. mp3 or tremor) to keep all of the data on the DSP to avoid repeatedly copying back and forth to the ARM. I hope this will improve the usability of the sbc encoder task and allow it to be used with mplayer (atm it kills the video framerate; sound works fine though ;)

==Maemo summit presentation==

Make this available somewhere (http://people.bath.ac.uk/enpsgp/nokia770/dsp/linux_summit.odp)
Make my longer explanation available somewhere too, once finished.


=Mapping=

OSM tile and route server to use with maemo-mapper

=VGA output=

Look at how the XServer works, how to only update regions of the screen which have changed
Look at the speed of the usb connection, if this is the limitation and it could be improved, there would be little need of the above.</text>
    </revision>
  </page>
  <page>
    <title>User talk:Matan</title>
    <id>3428</id>
    <revision>
      <id>27059</id>
      <timestamp>2010-01-21T16:01:34Z</timestamp>
      <contributor>
        <username>matan</username>
        <id>493</id>
      </contributor>
      <comment>Removing all content from page</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>User talk:Mohammad7410</title>
    <id>4308</id>
    <revision>
      <id>36417</id>
      <timestamp>2010-07-01T14:53:42Z</timestamp>
      <contributor>
        <username>mohammad7410</username>
        <id>2135</id>
      </contributor>
      <comment>Removing all content from page</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>User talk:Myrtti</title>
    <id>3545</id>
    <revision>
      <id>28590</id>
      <timestamp>2010-02-07T12:07:28Z</timestamp>
      <contributor>
        <username>myrtti</username>
        <id>518</id>
      </contributor>
      <minor/>
      <comment>confirming a bug</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>User talk:Ossipena</title>
    <id>2812</id>
    <revision>
      <id>20791</id>
      <timestamp>2009-10-22T06:48:00Z</timestamp>
      <contributor>
        <username>ossipena</username>
        <id>1259</id>
      </contributor>
      <text xml:space="preserve">Hi, you can use 'Preview' instead of 'Save'. This way you can overview your changes. It may still make sense to sometimes save if you write a lot but there is no need to modify an entry 7 times in a small time with only minor modifications. Just my 2cts, no offense! --[[User:allnameswereout|allnameswereout]] 06:46, 22 October 2009 (UTC)

ok haven't seen that button, but will use it for now on.</text>
    </revision>
  </page>
  <page>
    <title>User talk:Peterschneider</title>
    <id>215</id>
    <revision>
      <id>6049</id>
      <timestamp>2008-07-31T04:37:25Z</timestamp>
      <contributor>
        <username>peterschneider</username>
        <id>29</id>
      </contributor>
      <text xml:space="preserve">Hi Peter,

I read some of your comments on the logo shortlist page. Is it out of place to respond and motivate why things are done the way they are?

Thanks,

--[[User:jussi|jussi]] 11:45, 30 July 2008 (UTC)

The artists view and story behind the work is always appreciated. --[[User:peterschneider|peterschneider]] 04:37, 31 July 2008 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>User talk:Qgil</title>
    <id>467</id>
    <revision>
      <id>21064</id>
      <timestamp>2009-10-26T09:53:02Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <text xml:space="preserve">Hi, 
I read you're message and youre right.
The logos are manly two, the orange ones and the green one.
I just tried some different ways for the orange ones 'cause fitting right a 16x16 favicon could be so hard. I think the number 02 is the best one for this proposal.
Anyway, after your suggestion, I can now see that my gallery is maybe too long. Will a reorganization help? I can maybe group submitted logos in a 3x2 (or at least 4x2) gallery instead of the actual seven lines one...

Thanks for the attention,

Michael.


Hi Quim!
Did you know you can use &lt;nowiki&gt;~~~~&lt;/nowiki&gt; to &quot;sign&quot; your messages on MediaWiki talk pages? (Or you can click the squibbly button on top of the editing textarea.) Really useful.  Also, it's often better to leave old comments and questions for the future. [[User:guaka|guaka]] 01:56, 26 October 2009 (UTC)

:Great!  It wasn't really bothering me, but... [[Template talk:100Days agenda]].
:BTW, I'll be going through some of the stuff on [[Special:SpecialPages]], for fixing redirects, adding more internal links and such. [[User:guaka|guaka]] 09:21, 26 October 2009 (UTC)

I'm curious about the answer to these [[Talk:Karma|Karma questions]].  And, I often find it useful to have a [http://wiki.maemo.org/index.php?title=MediaWiki:Sidebar&amp;action=history community portal] on wikis.  Or is there a part of the forum where wiki stuff is discussed? [[User:guaka|guaka]] 09:52, 26 October 2009 (UTC)</text>
    </revision>
  </page>
  <page>
    <title>User talk:Ruskie</title>
    <id>3352</id>
    <revision>
      <id>26179</id>
      <timestamp>2010-01-09T08:19:18Z</timestamp>
      <contributor>
        <username>ruskie</username>
        <id>1210</id>
      </contributor>
      <text xml:space="preserve">Ruskie,
I tried zsh from your optified repo.
Command completion does not work for me, except the basic command-name and filename completion. 
The data is there in /opt/maemo/usr/share/zsh/4.3.2/functions/Completion , but does not seem to work.
Any ideas please? Is it just an opt problem?
[[User:myk|myk]] 08:11, 9 January 2010 (UTC)

The optified repo is completly untested and provided as-is. Do you have a /usr/share/zsh/4.3.2/functions/Completion If not that is the problem which means the optification went wrong.
Try using the nonopt zsh in this case. Though from what I understand it should work with all.

Another possibility is that permissions aren't setup correctly on that. But zsh should have warned you about that.</text>
    </revision>
  </page>
  <page>
    <title>User talk:Speedevil</title>
    <id>4222</id>
    <revision>
      <id>40792</id>
      <timestamp>2010-12-19T15:58:11Z</timestamp>
      <contributor>
        <username>speedevil</username>
        <id>1226</id>
      </contributor>
      <text xml:space="preserve">Random thoughts on accounting package.

Core features would be similar to [http://buddi.digitalcave.ca/] .

Several use-cases.

I am out shopping, and want to know how much I can spend before having
next weeks bills bounce.

I want to track how much I've been spending on petrol over time.

I want to look at payments to my power company, to check they have billed me correctly.

I want to enter my upcoming bills, and their amounts, as well as income, so I can keep track of them.

There may be multiple accounts - and it should be able to handle transfers between them - say I transfer $47 on the 3rd of the month from my current account to my savings account.

Warnings of upcoming balances falling below limits, to avoid fees.



Some notes on sound.

Edit /etc/asound.conf to add the latter half referring to the real soundcard.

 pcm.!default {
    type pulse
    hint {
        description &quot;PulseAudio (default)&quot;
    }
 }

 ctl.!default {
    type pulse
    hint {
        description &quot;PulseAudio (default)&quot;
    }
 }

 pcm.real {
        type hw
        card 0
 }

 ctl.real {
        type hw
        card 0
 }

Play sound through the media player with headphones.
 alsactl -f headphonestate store 0

stop media player.

Kill pulseaudio.

 stop pulseaudio

Now, you can do 

 aplay audiodump.wav -D real

&lt;imagemap&gt;
Image:JoshuaReynoldsParty.jpg|thumb|center|400px|alt=Dining room with nine men seated around a table. The dinner has been finished, and a large man at the head talks and gesticulates while the others eagerly listen. The men wear wigs and clothing of late 18th century Britain, and the furniture, hangings, and chandelier are of similar vintage. A liveried servant is entering with a tray bearing two high-shouldered decanters of wine.|Image map example. Clicking on a person in the picture causes the browser to load the appropriate article.

poly 133 343 124 287 159 224 189 228 195 291 222 311 209 343 209 354 243 362 292 466 250 463 [[w:Samuel Johnson|Dr Johnson - Dictionary writer]]
poly 76 224 84 255 43 302 62 400 123 423 121 361 137 344 122 290 111 234 96 225 [[w:James Boswell|Boswell - Biographer]]
poly 190 276 208 240 229 228 247 238 250 258 286 319 282 323 223 323 220 301 200 295 [[w:Joshua Reynolds|Sir Joshua Reynolds - Host]]
poly 308 317 311 270 328 261 316 246 320 228 343 227 357 240 377 274 366 284 352 311 319 324 [[w:David Garrick|David Garrick - actor]]
poly 252 406 313 343 341 343 366 280 383 273 372 251 378 222 409 228 414 280 420 292 390 300 374 360 359 437 306 418 313 391 272 415 [[w:Edmund Burke|Edmund Burke - statesman]]
rect 418 220 452 287 [[w:Pasquale Paoli|Pasqual Paoli - Corsican patriot]]
poly 455 238 484 253 505 303 495 363 501 377 491 443 429 439 423 375 466 352 [[w:Charles Burney|Charles Burney - music historian]]
poly 501 279 546 237 567 239 572 308 560 326 537 316 530 300 502 289 [[w:Thomas Warton|Thomas Warton - poet laureate]]
poly 572 453 591 446 572 373 603 351 562 325 592 288 573 260 573 248 591 243 615 254 637 280 655 334 705 396 656 419 625 382 609 391 613 453 [[w:Oliver Goldsmith|Oliver Goldsmith - writer]]
rect 450 86 584 188 [[w:Joshua Reynolds|prob.The Infant Academy 1782]]
rect 286 87 376 191 [[w:Joshua Reynolds|unknown painting]]
circle 100 141 20 [[w:Joshua Reynolds|An unknown portrait]]
poly 503 192 511 176 532 176 534 200 553 219 554 234 541 236 525 261 506 261 511 220 515 215 [[w:Francis Barber|servant - poss. Francis Barber]]
rect 12 10 702 500 [[w:The Club (Literary Club)|Use button to enlarge or use hyperlinks]]
&lt;/imagemap&gt;</text>
    </revision>
  </page>
  <page>
    <title>User talk:Sunyi0225</title>
    <id>3895</id>
    <revision>
      <id>32347</id>
      <timestamp>2010-04-09T13:59:36Z</timestamp>
      <contributor>
        <username>sunyi0225</username>
        <id>2495</id>
      </contributor>
      <text xml:space="preserve">we want to do a tracker extractor support full-text index like text,sms,email in n900.we hope use lucene's full-text index extractor for reference,and improve the manner on sms,email considering their characteristic.because our mother languege is chinese,so if time is comfortable ,we will also do a Analyzer for chinese. 

we hope it is helper for others and can unite the metedata extractor and full-text extractor in tracker.

we are two master in beijing univerity of post and  telecommunication .we have being coding in maemo in two years.we also want to achieve a search system for everything in maemo.we know tracker is a  built-in index tool in maemo,but it doesn't support full-text search(or just there is not extractor).so we want to do a extractor for it.

if can any help for us,please contact will us in sunyi0225@163.com.

thanks.  



SunYi and WangGuan</text>
    </revision>
  </page>
  <page>
    <title>User talk:Tanner</title>
    <id>4111</id>
    <revision>
      <id>34633</id>
      <timestamp>2010-05-21T07:35:48Z</timestamp>
      <contributor>
        <username>tanner</username>
        <id>1712</id>
      </contributor>
      <comment>reply</comment>
      <text xml:space="preserve">Hi,
I downloaded Moveroot.sh on my phone but when i type this command &quot;sh /home/user/mydocs/moveroot,sh&quot; it's write &quot;sh: can't open home.../moveroot.sh&quot; what am i going to do with ? 
how can i download the script to my &quot;MyDocs&quot; ?
i've just downloaded it to my &quot;nokia n900&quot; directory - 28Gb device

--
the commands and filenames are case-sensitive.
please do not use this page but PM me on TMO (titan)</text>
    </revision>
  </page>
  <page>
    <title>User talk:Timsamoff</title>
    <id>560</id>
    <revision>
      <id>5385</id>
      <timestamp>2008-07-25T02:50:11Z</timestamp>
      <contributor>
        <username>timsamoff</username>
        <id>122</id>
      </contributor>
      <minor/>
      <comment>deleted content</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>User talk:Vdvsx</title>
    <id>2367</id>
    <revision>
      <id>23607</id>
      <timestamp>2009-11-30T17:45:06Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <comment>Replacing page with ''''Note:''' The information in this page is just for discussion/test propose, none of the information below should be considered official.'</comment>
      <text xml:space="preserve">'''Note:''' The information in this page is just for discussion/test propose, none of the information below should be considered official.</text>
    </revision>
  </page>
  <page>
    <title>User talk:Vdvsx/MemVenatus</title>
    <id>3111</id>
    <revision>
      <id>23785</id>
      <timestamp>2009-12-03T00:10:03Z</timestamp>
      <contributor>
        <username>vdvsx</username>
        <id>312</id>
      </contributor>
      <comment>/* MemVenatus */</comment>
      <text xml:space="preserve">== MemVenatus ==

Multi-player [http://en.wikipedia.org/wiki/Pexeso memory game] based on Qt.

== Game Modes ==

=== Solitaire ===

Match all pairs in the fewest number of turns.

=== Two players ===

Two players using in same screen, the one that pairs more cards wons.

=== Two players over the network ===

* Standard - Two players using different screens with the same cards, the one that pairs more cards wons.

* Tags - In each turn one of the players choose a 'secret' tag, images with that tag are pulled from the web (flickr,...) to populate the game screens for both players.

== Deck of cards ==

=== Standard ===

Collection of images stored locally with a small description/theme. Images from contacts/cam can be also used.

=== Tags ===

Collection of images temporarily pulled from the web related to a given tag.</text>
    </revision>
  </page>
  <page>
    <title>User talk:Xfade</title>
    <id>200</id>
    <revision>
      <id>9055</id>
      <timestamp>2008-11-28T09:10:25Z</timestamp>
      <contributor>
        <username>xfade</username>
        <id>15</id>
      </contributor>
      <comment>Removing all content from page</comment>
      <text xml:space="preserve" />
    </revision>
  </page>
  <page>
    <title>Users:stuart23</title>
    <id>5277</id>
    <revision>
      <id>50184</id>
      <timestamp>2012-10-14T16:32:43Z</timestamp>
      <contributor>
        <username>stuart23</username>
        <id>4177</id>
      </contributor>
      <comment>/* Stuart's Page */</comment>
      <text xml:space="preserve">== Stuart's Page ==

Installed the testing Community SSU [[CSSU]]

=== usbmode package from pali ===

http://talk.maemo.org/showthread.php?t=85658

=== auto configure eth0 when a USB EThernet adapter is plugged in ===

I failed to get ifupdown to work so:

https://github.com/stuart12/n900_files/blob/master/etc/udev/rules.d/z98_USB-Ethernet-stuart.rules
https://github.com/stuart12/n900_files/blob/master/usr/local/sbin/usb-ethernet
https://github.com/stuart12/n900_files/blob/master/etc/udhcpc/default.script
https://github.com/stuart12/n900_files/blob/master/etc/udhcpc/stuart.bound

=== TODO ===
install 
make the usb0 interface come up automatically again</text>
    </revision>
  </page>
  <page>
    <title>Using Fremantle Widgets</title>
    <id>3016</id>
    <revision>
      <id>22618</id>
      <timestamp>2009-11-13T17:24:00Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Using Fremantle Widgets]] moved to [[Using Fremantle widgets]]: Capitalisation</comment>
      <text xml:space="preserve">#REDIRECT [[Using Fremantle widgets]]</text>
    </revision>
  </page>
  <page>
    <title>Using Fremantle widgets</title>
    <id>1976</id>
    <revision>
      <id>43317</id>
      <timestamp>2011-05-04T08:51:24Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Testing Hardware Orientation In Scratchbox */ copy information from [[ForceRotation]]</comment>
      <text xml:space="preserve">This document should help developers to port the user interface from [[Open development/Maemo roadmap/Diablo|Diablo]] to [[Open development/Maemo roadmap/Fremantle|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. In addition, please check the growing [[Documentation/Maemo_5_Developer_Guide/Human_Interface_Guidelines|Human Interface Guidelines]] and the official hildon documentation:
* [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]
* [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]
* [http://www.forum.nokia.com/info/sw.nokia.com/id/e778ba1f-2507-4672-be45-798359a3aea7/Fremantle_Master_Layout_Guide.html Fremantle Master Layout Guide]

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!

Note: The casts of all code examples have been removed for better readability.

== Toggle Buttons Vs. Radio Buttons ==

The use of radio buttons in Fremantle is discouraged because they don't fit the visual style quite well. Instead you should use toggle buttons.

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 &lt;code&gt;gtk_toggle_button_set_mode()&lt;/code&gt;. This will create a button that acts like a radio button, but is displayed as a toggle button.

Example:
&lt;source lang=&quot;c&quot;&gt;
GtkWidget *b1 = gtk_radio_button_new_with_label(&quot;One&quot;);
GtkWidget *b2 = gtk_radio_button_new_with_label_from_widget(b1, &quot;Two&quot;);
gtk_toggle_button_set_mode(b1, FALSE);
gtk_toggle_button_set_mode(b2, FALSE);
&lt;/source&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.]]

[[image:Fle_tut_toggle_buttons.jpg|frame|Here you can see four radio buttons which are displayed as toggle buttons using the &lt;code&gt;gtk_toggle_button_set_mode()&lt;/code&gt; function mentioned above.]]

== Widget Sizes ==

For some widgets there is now an enum which provides three different values: &lt;code&gt;HILDON_SIZE_FINGER_HEIGHT&lt;/code&gt;, &lt;code&gt;HILDON_SIZE_THUMB_HEIGHT&lt;/code&gt; and &lt;code&gt;HILDON_SIZE_AUTO_HEIGHT&lt;/code&gt;. You can use them, for example, like that:
&lt;source lang=&quot;c&quot;&gt;
GtkWidget but* = hildon_gtk_button_new(HILDON_SIZE_FINGER_HEIGHT);
&lt;/source&gt;
You should always use the finger or the thumb size, don't use &lt;code&gt;HILDON_SIZE_AUTO_HEIGHT&lt;/code&gt; as the outcome is not totally clear (see below for screenshots).

If you have a button where you cannot provide a size with the constructor, for example, a stock button, then you can use &lt;code&gt;hildon_gtk_widget_set_theme_size()&lt;/code&gt; to set the code afterwards. Like in this small example:
&lt;source lang=&quot;c&quot;&gt;
GtkWidget *but = gtk_button_new_from_stock(GTK_STOCK_COPY);
hildon_gtk_widget_set_theme_size(but, HILDON_SIZE_THUMB_HEIGHT);
&lt;/source&gt;

Now to get a feeling for the different sizes here are some screenshots that show a &lt;code&gt;HildonEntry&lt;/code&gt; together with a &lt;code&gt;GtkButton&lt;/code&gt; using different sizes.

[[Image:Fle_tut_button_auto_finger.jpg|frame|A &lt;code&gt;HildonEntry&lt;/code&gt; with &lt;code&gt;HILDON_SIZE_AUTO_HEIGHT&lt;/code&gt; and a &lt;code&gt;GtkButton&lt;/code&gt; with &lt;code&gt;HILDON_SIZE_FINGER_HEIGHT&lt;/code&gt;. Looks inconsistent.]]


[[Image:Fle_tut_button_finger_finger.jpg|frame|Both widget with &lt;code&gt;HILDON_SIZE_FINGER_HEIGHT&lt;/code&gt;. Looks more consistent now.]]


[[Image:Fle_tut_button_finger_thumb.jpg|frame|For comparison reasons the HildonEntry with &lt;code&gt;HILDON_SIZE_FINGER_HEIGHT&lt;/code&gt; and the &lt;code&gt;GtkButton&lt;/code&gt; with &lt;code&gt;HILDON_SIZE_THUMB_HEIGHT&lt;/code&gt;.]]

== Window Menu ==

In Fremantle it is not encouraged to use &lt;code&gt;GtkMenu&lt;/code&gt; as window menu anymore. Instead you should use the &lt;code&gt;HildonAppMenu&lt;/code&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 &lt;code&gt;HildonAppMenu&lt;/code&gt;.
* It has big / finger friendly menu items.
* It holds a maximum of ten menu items.
* It does not support sub menues.
* The first row can be used for Filters. (Filters are explained in more details below.)
* In landscape mode the menu items are displayed in two rows.
* In portrait mode the menu items are automatically displayed in one row.
* There are no separators, so you cannot group your menu items.
* The menu items are &lt;code&gt;GtkButton&lt;/code&gt;s and not &lt;code&gt;GtkMenuItem&lt;/code&gt;s.

The &lt;code&gt;HildonAppMenu&lt;/code&gt; is meant to be displayed when the user clicks the title bar of the window, but it is possible to have several other &lt;code&gt;HildonAppMenu&lt;/code&gt;s in your application and activate them for example on button press.

As you can see the &lt;code&gt;HildonAppMenu&lt;/code&gt; differs quite a lot from the old &lt;code&gt;GtkMenu&lt;/code&gt;. The main difference is surely that you cannot have more then 10 menu items inside the new menu. The Hildon HIG gives an overview on how to deal with that.

[[Image:Fle_tut_app_menu_with_filters.jpg‎|frame|A &lt;code&gt;HildonAppMenu&lt;/code&gt; with two filters at the top and four buttons]]

== Using HildonAppMenu with GtkActions ==

As said earlier, the menu items are not &lt;code&gt;GtkMenuItem&lt;/code&gt;s anymore but instead they are normal &lt;code&gt;GtkButton&lt;/code&gt;s. So you´re using &lt;code&gt;GtkAction&lt;/code&gt;s in your code, you´ll probably miss a replacement for &lt;code&gt;gtk_action_create_menu_item()&lt;/code&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;source lang=&quot;c&quot;&gt;
GtkButton *menu_item = gtk_button_new();
gtk_action_connect_proxy(action, menu_item);
&lt;/source&gt;
This is also possible with &lt;code&gt;GtkToggleAction&lt;/code&gt; and &lt;code&gt;GtkRadioAction&lt;/code&gt;. But remember that your &lt;code&gt;GtkRadioButton&lt;/code&gt;s should look like &lt;code&gt;GtkToggleButton&lt;/code&gt;s as mentioned above. So a complete example for a &lt;code&gt;HildonAppMenu&lt;/code&gt; that should display three &lt;code&gt;GtkRadioAction&lt;/code&gt;s would look like this:

&lt;source lang=&quot;c&quot;&gt;
GSList *group = NULL;
GtkAction *a1, *a2, *a3;
GtkWidget *b1, *b2, *b3;
GtkWidget *menu;

/* Create the actions */
a1 = gtk_radio_action_new(&quot;small&quot;, &quot;Small&quot;, NULL, NULL, 0);
a2 = gtk_radio_action_new(&quot;normal&quot;, &quot;Normal&quot;, NULL, NULL, 1);
a3 = gtk_radio_action_new(&quot;large&quot;, &quot;Large&quot;, NULL, NULL, 2);

/* Build the radio action group */
gtk_radio_action_set_group(a1, group);
group = gtk_radio_action_get_group(a1);

gtk_radio_action_set_group(a2, group);
group = gtk_radio_action_get_group(a2);

gtk_radio_action_set_group(a3, group);
group = gtk_radio_action_get_group(a3);

/* Create the toggle buttons */
b1 = gtk_toggle_button_new();
b2 = gtk_toggle_button_new();
b3 = gtk_toggle_button_new();

/* Connect the buttons and the actions */
gtk_action_connect_proxy(a1, b1);
gtk_action_connect_proxy(a2, b2);
gtk_action_connect_proxy(a3, b3);

/* Create the menu */
menu = hildon_app_menu_new();

/* Add the buttons to the menu */
hildon_app_menu_append(menu, b1);
hildon_app_menu_append(menu, b2);
hildon_app_menu_append(menu, b3);
&lt;/source&gt;

== Finger Friendly GtkTreeView ==

To get a finger friendly &lt;code&gt;GtkTreeView&lt;/code&gt; it´s not enough to call &lt;code&gt;hildon_gtk_tree_view_new()&lt;/code&gt; instead of &lt;code&gt;gtk_tree_view_new()&lt;/code&gt; but you also have to put the tree view inside a &lt;code&gt;HildonPannableArea&lt;/code&gt; to get finger friendly sizes. If you have your tree view inside a &lt;code&gt;GtkScrolledWindow&lt;/code&gt; it will be displayed with stylus-style (like in Diablo).

Also if you´re displaying icons in your tree view you probably should use the 40×40 pixel version for Fremantle if you used the 26×26 pixel version in Diablo.

=== Normal Vs. Edit Mode ===

There are now two different modes for the tree view. Those modes affect how the rows in a tree view react to finger taps.

You should use &lt;code&gt;HILDON_UI_MODE_NORMAL&lt;/code&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 &lt;code&gt;row-activated&lt;/code&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 &lt;code&gt;HILDON_UI_MODE_NORMAL&lt;/code&gt;.

If the user should be able to select or edit rows then you should use &lt;code&gt;HILDON_UI_MODE_EDIT&lt;/code&gt;.

=== Using Filters For Sorting ===

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'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'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.

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;source lang=&quot;c&quot;&gt;
/* Remove the header row */
gtk_tree_view_set_headers_visible(view, FALSE);

/* Create two radio buttons for sorting */
GtkWidget *b1, *b2;
b1 = gtk_radio_button_new_with_label(NULL, &quot;Sort By Title&quot;);
b2 = gtk_radio_button_new_with_label_from_widget(b1, &quot;Sort By Date&quot;);

/* Draw them as toggle buttons not as radio buttons */
gtk_toggle_button_set_mode(b1, FALSE);
gtk_toggle_button_set_mode(b2, FALSE);

/* Add the buttons as filters to the menu */
hildon_app_menu_add_filter(menu, b1);
hildon_app_menu_add_filter(menu, b2);
&lt;/source&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;source lang=&quot;c&quot;&gt;
void on_sort_filter_clicked(GtkToggleButton *button, GtkTreeSortable *sortable)
{
  if (gtk_toggle_button_get_active(button)) {
    gtk_tree_sortable_set_sort_column_id(sortable, TITLE_COLUMN, GTK_SORT_ASCENDING);
  }
}
&lt;/source&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.
If you, for example have two rows, one with a title and one with a date you could offer the user:
* Sort ascending by date
* Sort descending by date
* Sort ascending by title
* Sort descending by title
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:
* Sort by title (which sorts by title ascending - A before B)
* Sort by date (which sorts by date descending - newest on top)
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.

[[Image:Fle_tut_tree_view.jpg‎|frame|A tree view without the title row. Sorting is now done with filters]]


[[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]]


[[Image:Fle_tut_filter_long_strings.jpg|frame|Long strings get truncated]]

== Context Menus ==

To display finger friendly context menues there is a hildon helper function called &lt;code&gt;hildon_gtk_menu_new()&lt;/code&gt;. Just call this instead of &lt;code&gt;gtk_menu_new()&lt;/code&gt; and you´re done.
Example:
&lt;source lang=&quot;c&quot;&gt;
GtkWidget *menu = hildon_gtk_menu_new();

GtkWidget *item1 = gtk_menu_item_new_with_label(&quot;Bla&quot;);
GtkWidget *item2 = gtk_menu_item_new_with_label(&quot;Blablabla&quot;);

gtk_menu_shell_append(GTK_MENU_SHELL(menu), item1);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), item2);

gtk_widget_show_all(menu);
gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 0,
gtk_get_current_event_time());
&lt;/source&gt;
''Note that in the Beta SDK there is a bug. If you´re using &lt;code&gt;GtkImageMenuItem&lt;/code&gt;s instead of &lt;code&gt;GtkMenuItem&lt;/code&gt;s 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 .''

[[Image:Fle_tut_context_menu.jpg‎|frame|Finger friendly context menu which is showing four stock items]]

== Panning ==

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.

In Fremantle both kinds of scrollbars are still available, but there is also a third option. &lt;code&gt;HildonPannableArea&lt;/code&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;code&gt;HildonPannableArea&lt;/code&gt; can be used as a replacement for &lt;code&gt;GtkScrolledWindow&lt;/code&gt; but there are things you have to keep in mind when doing so.

=== GtkTextView Inside HildonPannableArea ===

Panning does not work with a &lt;code&gt;GtkTextView&lt;/code&gt;. Instead you can use a &lt;code&gt;HildonTextView&lt;/code&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

=== GtkHtml Inside HildonPannableArea ===

When using &lt;code&gt;GtkHtml&lt;/code&gt; inside a &lt;code&gt;HildonPannableArea&lt;/code&gt; the panning is not smooth. The problem seems to be that &lt;code&gt;GtkHtml&lt;/code&gt; 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

== Portrait Mode ==

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'll might have:
* The toolbar is not wide enough to hold all items anymore.
* The columns of your tree view get too small.
* You cannot enter text because there´s no onscreen keyboard.  (Actually the FKB works perfectly, but it will switch to landscape and then back to portrait when closed.)
* Dialogs are not shown correctly (see https://bugs.maemo.org/show_bug.cgi?id=4618 ).
* Probably more...

This means you have to listen to changes in the orientation and hide/show/change widgets to make the UI functional in portrait mode.

[[Image:Fle_tut_app_menu_portrait.jpg|frame|The &lt;code&gt;HildonAppMenu&lt;/code&gt; with filters in portrait mode. The final version will cover the complete screen width, so there is a bit more space for the filters.]]

=== Listening To Screen Orientation Changes ===

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 is greater than height you are in landscape mode and if height is greater than 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;source lang=&quot;c&quot;&gt;
gboolean is_portrait()
{
  GdkScreen *screen = gdk_screen_get_default();
  int width = gdk_screen_get_width(screen);
  int height = gdk_screen_get_height(screen);
  if (width &gt; height) {
    return FALSE;
  } else {
    return TRUE;
  }
}

void on_orientation_changed(GdkScreen *screen, GtkWidget *widget)
{
  if (is_portrait()) {
    gtk_widget_hide(widget);
    /* Hide/Show other things */
  } else {
    gtk_widget_show(widget);
    /* Hide/Show other things */
  }
}
&lt;/source&gt;

Then inside your UI code you should listen to the &lt;code&gt;size-changed&lt;/code&gt; signal of &lt;code&gt;GdkScreen&lt;/code&gt;. For example:
&lt;source lang=&quot;c&quot;&gt;
g_signal_connect(screen, &quot;size-changed&quot;, on_orientation_changed, widget);
&lt;/source&gt;

=== Testing Screen Orientation Changes In Scratchbox ===

For testing your code you can execute the following commands outside scratchbox:
&lt;pre&gt;
xrandr -display :2 -o left
xrandr -display :2 -o normal
&lt;/pre&gt;

=== Automatic Screen Rotation ===

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:
* 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.
* You have to listen to all changes in the devices orientation while your application is running and adapt accordingly.

Whether or not your application is rotated depends on a couple of things:
* There are two X window properties which you can set on your windows.
* Those tell the system what to do.  The type of the value of the properties is &lt;code&gt;XA_CARDINAL&lt;/code&gt; where 0 means &quot;off&quot;, and 1 stands for &quot;on&quot;.  Other values may get other meaning in the future.
** &lt;code&gt;HILDON_PORTRAIT_MODE_SUPPORT&lt;/code&gt; tells the system that your application can be rotated, so it won't prevent any other application from rotating.
** &lt;code&gt;HILDON_PORTRAIT_MODE_REQUEST&lt;/code&gt; tells the system that your application wants to be rotated.
* Rotation only happens when all visible windows are ok with being rotated.

That means that to get a rotated desktop all visible windows must have the &lt;code&gt;HILDON_PORTRAIT_MODE_SUPPORT&lt;/code&gt; flag set to 1 and at least one of them must have the &lt;code&gt;HILDON_PORTRAIT_MODE_REQUEST&lt;/code&gt; flag set to true.  The flags are inherited through the transiency chain, so you needn't set the SUPPORT flag on your transient dialogs for example, nor on all stackable windows.

It's important that you set the flags correctly on all windows that you open. If you or another application opens a window with the &lt;code&gt;HILDON_PORTRAIT_MODE_SUPPORT&lt;/code&gt; flag not set, the whole UI is rotated to landscape mode.

So here are the steps you have to do to make correct use of the portrait mode:
* On all windows that support portrait mode, set the &lt;code&gt;HILDON_PORTRAIT_MODE_SUPPORT&lt;/code&gt; flag.
* During startup check the hardware orientation. If the hardware orientation is portrait mode, then set the &lt;code&gt;HILDON_PORTRAIT_MODE_REQUEST&lt;/code&gt; flag on at least one visible window.
* While running your application, listen to changes in the orientation of the device. If it is rotated to landscape mode set the &lt;code&gt;HILDON_PORTRAIT_MODE_SUPPORT&lt;/code&gt; flag. If it's rotated to portrait mode set the &lt;code&gt;HILDON_PORTRAIT_MODE_REQUEST&lt;/code&gt; flag. 
It is not necessary to set 'request' together with 'support' as 'request' implies 'support', provided that 'support' is unset (as opposed to set to 0).

==== Finding Out The Current Hardware Orientation ====

In order to find out whether or not the device currently is in portrait you need to ask the MCE (Mode Control Entity) via D-Bus. The parameters of the call are the following and can be found as constants in '&lt;code&gt;mce/dbus-names.h&lt;/code&gt;'.

;Service:
: &lt;code&gt;com.nokia.mce&lt;/code&gt;
;Path:
: &lt;code&gt;/com/nokia/mce/request&lt;/code&gt;
;Interface:
: &lt;code&gt;com.nokia.mce.request&lt;/code&gt;
;Member:
: &lt;code&gt;get_device_orientation&lt;/code&gt;

This method returns several values:
* &lt;code&gt;gchar *&lt;/code&gt; portrait/landscape orientation (see &lt;code&gt;mce/mode-names.h&lt;/code&gt; for valid portrait/landscape states)
* &lt;code&gt;gchar *&lt;/code&gt; on/off stand (see mce/mode-names.h for valid stand states)
* &lt;code&gt;gchar *&lt;/code&gt; face up/face down (see mce/mode-names.h for valid facing states)
* &lt;code&gt;dbus_int32_t&lt;/code&gt; x axis (unit mG)
* &lt;code&gt;dbus_int32_t&lt;/code&gt; y axis (unit mG)
* &lt;code&gt;dbus_int32_t&lt;/code&gt; z axis (unit mG) 

In our case we are only interested in the first return value which will be 'portrait' or 'landscape'. Because we only need to know the first value here we can use the &lt;code&gt;osso_rpc_run_system()&lt;/code&gt; function for making this call to D-Bus. It's a convenience function provided by libosso for making D-Bus 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;source lang=&quot;c&quot;&gt;
#include &lt;mce/dbus-names.h&gt;
#include &lt;mce-dev/mode-names.h

gboolean
device_is_portrait_mode(osso_context_t* ctx)
{
    osso_rpc_t ret;
    gboolean result = FALSE;

    if (osso_rpc_run_system(ctx, MCE_SERVICE, MCE_REQUEST_PATH,
        MCE_REQUEST_IF, MCE_DEVICE_ORIENTATION_GET, &amp;ret, DBUS_TYPE_INVALID) == OSSO_OK) {
        g_printerr(&quot;INFO: DBus said orientation is: %s\n&quot;, ret.value.s);

        if (strcmp(ret.value.s, MCE_ORIENTATION_PORTRAIT) == 0) {
            result = TRUE;
        }

        osso_rpc_free_val(&amp;ret);

    } else {
        g_printerr(&quot;ERROR: Call do DBus failed\n&quot;);
    }

    return result;
}
&lt;/source&gt;

==== Listening To Hardware Orientation Changes ====

So now you know how to ask the device for its orientation. Now let's see how to connect a signal handler to listen to changes in the orientation.

First here is again the signature:

;Service:
: &lt;code&gt;com.nokia.mce&lt;/code&gt;
;Path:
: /com/nokia/mce/signal&lt;/code&gt;
;Interface:
: &lt;code&gt;com.nokia.mce.signal&lt;/code&gt;
;Member:
: &lt;code&gt;sig_device_orientation_ind&lt;/code&gt;

The signal transports three values:
* &lt;code&gt;gchar *&lt;/code&gt; portrait/landscape orientation (see mce/mode-names.h for valid portrait/landscape states)
* &lt;code&gt;gchar *&lt;/code&gt; on/off stand (see mce/mode-names.h for valid stand states)
* &lt;code&gt;gchar *&lt;/code&gt; face up/face down (see mce/mode-names.h for valid facing states) 

Again we are only interested in the first value which is 'portrait' or 'landscape'. Unfortunately there is no libosso convenience function for listening to D-Bus signals, so we have to use the raw D-Bus API.

&lt;source lang=&quot;c&quot;&gt;
static DBusHandlerResult
dbus_handle_mce_message(DBusConnection *con, DBusMessage *msg, gpointer data)
{
    DBusMessageIter iter;
    const gchar *mode = NULL;

    if (dbus_message_is_signal(msg, MCE_SIGNAL_IF, MCE_DEVICE_ORIENTATION_SIG)) {
        if (dbus_message_iter_init(msg, &amp;iter)) {
            dbus_message_iter_get_basic(&amp;iter, &amp;mode);
            g_printerr(&quot;INFO: New orientation is now: %s\n&quot;, mode);
        }
    }
    return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
}
&lt;/source&gt;

Now we need to register this signal handler.

&lt;source lang=&quot;c&quot;&gt;
#define MCE_MATCH_RULE &quot;type='signal',interface='&quot; MCE_SIGNAL_IF &quot;',member='&quot; MCE_DEVICE_ORIENTATION_SIG &quot;'&quot;

/* Get the system DBus connection */
DBusConnection *con = osso_get_sys_dbus_connection(osso_context);

/* Add the callback, which should be called, once the device is rotated */
dbus_bus_add_match(con, MCE_MATCH_RULE, NULL);
dbus_connection_add_filter(con, dbus_handle_mce_message, NULL, NULL);
&lt;/source&gt;

==== Listening To Hardware Orientation Changes (Python example) ====

This short snippet should get you started (you only need the &lt;code&gt;gobject.MainLoop&lt;/code&gt; if you are writing a console application). &quot;handler&quot; will be called every time the orientation changes, and the first parameter is the important one (compare it to &quot;landscape&quot; and &quot;portrait&quot;).

&lt;source lang=&quot;python&quot;&gt;
import dbus
import dbus.glib

# Again, this is only needed for console apps
import gobject
mainloop = gobject.MainLoop()

# Define some constants
MCE_SIGNAL_NAME = 'sig_device_orientation_ind'
MCE_SIGNAL_IFACE = 'com.nokia.mce.signal'
MCE_SIGNAL_PATH = '/com/nokia/mce/signal'

# Get the system bus
system_bus = dbus.Bus.get_system()

# Define a callback that gets called for orientation changes
def handler(orientation, stand, face, x, y, z):
    print orientation

# Connect the &quot;handler&quot; to the orientation changed signal of mce
system_bus.add_signal_receiver(handler, signal_name=MCE_SIGNAL_NAME, \
        dbus_interface=MCE_SIGNAL_IFACE, path=MCE_SIGNAL_PATH)

# Start the main loop - only needed for console apps
mainloop.run()
&lt;/source&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.

=== Forcing screen rotation ===

If you need a way to force some rotation of your N900 screen, this is for you.

&lt;source lang=&quot;c&quot;&gt;
/*
gcc rotate.c -lX11 -lXrandr
*/
#include &lt;X11/Xlib.h&gt;
#include &lt;X11/extensions/Xrandr.h&gt;

static void set_rotation (Rotation r_to) {
   Rotation r;
   int screen = -1;
   XRRScreenConfiguration* config;
   int current_size=0;

   Display* display;
   Window rootWindow;
   
       display = XOpenDisplay(&quot;:0&quot;);
       if (display == NULL) {
        return;
       }

       screen = DefaultScreen(display);
       rootWindow = RootWindow(display, screen);
       XRRRotations(display, screen, &amp;r);
       config = XRRGetScreenInfo(display, rootWindow);
       current_size = XRRConfigCurrentConfiguration (config, &amp;r);
       XRRSetScreenConfig(display, config, rootWindow, current_size, r_to, CurrentTime);
}

int main (int argc, char *argv[]) {
 set_rotation(RR_Rotate_90);
 //set_rotation(RR_Rotate_270);
 //set_rotation(RR_Rotate_180);
 //set_rotation(RR_Rotate_0);
}
&lt;/source&gt;

=== Testing Hardware Orientation In Scratchbox ===

Testing whether or not your D-Bus signal handler for device orientation change works is easy. Just run the following commands inside scratchbox while your application is running.

Device was rotated into portrait mode:
&lt;pre&gt;
run-standalone.sh dbus-send --system --type=signal /com/nokia/mce/signal com.nokia.mce.signal.sig_device_orientation_ind string:'portrait'
&lt;/pre&gt;

Device was rotated into landscape mode:
&lt;pre&gt;
run-standalone.sh dbus-send --system --type=signal /com/nokia/mce/signal com.nokia.mce.signal.sig_device_orientation_ind string:'landscape'
&lt;/pre&gt;

For testing the call to the MCE you first have to install the MCE because it's not part of the default SDK installation. Simply do:
&lt;pre&gt;fakeroot apt-get install mce&lt;/pre&gt;
Now start it using the debug mode. It won't start without the '--debug-mode' flag. You'll get lots of debug output on the terminal, just ignore it:
&lt;pre&gt;mce --debug-mode&lt;/pre&gt;

Now the D-Bus call to the MCE should return 'landscape'. It probably will always return 'landscape' when run inside the SDK as it is not possible to really rotated the &quot;device&quot; there.

== References ==

In no particular order

* http://maemo.org/api_refs/5.0/beta/tutorial/html
* http://maemo.org/api_refs/5.0/beta/hig/html
* http://lists.maemo.org/pipermail//maemo-developers/2009-May/019368.html
* http://lists.maemo.org/pipermail//maemo-developers/2009-May/019144.html
* http://lists.maemo.org/pipermail//maemo-developers/2009-June/019426.html
* http://lists.maemo.org/pipermail//maemo-developers/2009-June/019579.html
* http://lists.maemo.org/pipermail//maemo-developers/2009-August/020202.html
* https://bugs.maemo.org/show_bug.cgi?id=4617
* https://bugs.maemo.org/show_bug.cgi?id=4618
* https://bugs.maemo.org/show_bug.cgi?id=4619
* https://bugs.maemo.org/show_bug.cgi?id=4654
* https://bugs.maemo.org/show_bug.cgi?id=4637
* https://bugs.maemo.org/show_bug.cgi?id=4648

[[Category:Development]]
[[Category:Fremantle]]</text>
    </revision>
  </page>
  <page>
    <title>Using Maemo Theme Maker</title>
    <id>2757</id>
    <revision>
      <id>32175</id>
      <timestamp>2010-04-08T14:17:02Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Making themes]]</text>
    </revision>
  </page>
  <page>
    <title>Using Valgrind and gdb in Scratchbox</title>
    <id>44</id>
    <revision>
      <id>33479</id>
      <timestamp>2010-04-26T12:31:56Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Documentation/Maemo_5_Developer_Guide/Kernel_and_Debugging_Guide/Maemo_Debugging_Guide]]</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo_5_Developer_Guide/Kernel_and_Debugging_Guide/Maemo_Debugging_Guide]]</text>
    </revision>
  </page>
  <page>
    <title>Using accelerometer by Qt application</title>
    <id>2393</id>
    <revision>
      <id>28124</id>
      <timestamp>2010-02-02T15:30:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Programming Environments/Using Maemo 5 specific APIs in Qt application]]</text>
    </revision>
  </page>
  <page>
    <title>Using memory cards with the Nokia N800</title>
    <id>1886</id>
    <revision>
      <id>41710</id>
      <timestamp>2011-02-08T14:16:30Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>wikify sections headings</comment>
      <text xml:space="preserve">The [[Nokia N800|N800]] has 256 megabytes of on-board memory, but you can greatly expand this using memory cards. The N800 has two memory card slots, one at the front below the stand and one inside under the back cover, both of which can be used at once with any combination of cards.

If you're going to remove memory cards, try to do so with the N800 switched off. This protects the card from any possible damage. However, you can insert cards whenever you want.

The N800 can use many different types of memory card:

* SD (Secure Digital) up to 2 gigabytes
* SDHC (Secure Digital High Capacity) up to 8 gigabytes
* miniSD up to 2 gigabytes
* microSD (also known as TransFlash) up to 2 gigabytes
* MMC (MultiMedia Card) up to 2 gigabytes
* RS-MMC up to 2 gigabytes

However, only the SD, SDHC and MMC cards can be inserted straight into the N800. The miniSD, microSD and RS-MMC cards require special adapters that make them the same physical size as the larger cards. You can see all these adapters in action in the video above.

The maximum capacity of compatible SDHC cards is 8 gigabytes, the maximum capacity of the other types of compatible card is 2 gigabytes.

By using SDHC 8 gig cards in both card slots, you can have a maximum storage space of 16 gigabytes. This is enough for about 4000 to 8000 music tracks, or absolutely anything else you want to store such as photos, videos, text, applications, games etc.

==How to get the memory card out of the N800's external card slot==

A surprising number of people think that their memory card is stuck in the card slot under the N800's stand. The card isn't stuck though, the slot just isn't spring-loaded so the card doesn't pop out automatically.

To get the card out, open the slot's door and put your fingernail or thumbnail against the slot, perpendicular to the card. Press your nail down onto the card, and you should feel a ridge that makes it easier to pull the card out. Pull the card towards you with your nail, and it should come out very easily.

A more difficult problem may arise if you use miniSD or microSD cards with SD-sized adaptors in the external card slot. When using the method above to remove such cards, sometimes the actual card may come out of its adaptor and leave the adaptor stranded inside the slot. However, you can easily remove the adaptor using a pair of small tweezers, especially if you use them to get hold of the bottom of the adaptor.

==Where to buy memory cards==

The N800 can use cards of any brand. You do NOT have to use Nokia-brand cards. In fact the Internet Tablet School recommends the SanDisk brand instead as they're significantly cheaper but just as reliable.

The best place to buy a memory card is at a major electronics chain. Make sure the card is still in its packaging, and if it's a smaller card make sure it comes with an adapter that can make it full-size (watch the video above if you're unsure about this).

Try not to buy cards from online auctions, even if they seem to be a reliable brand. These cards may be fakes which work to begin with but go wrong fairly quickly.

[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>Using the N8x0</title>
    <id>4729</id>
    <revision>
      <id>42331</id>
      <timestamp>2011-03-03T14:32:47Z</timestamp>
      <contributor>
        <username>ljl</username>
        <id>3948</id>
      </contributor>
      <comment>/* Using YouTube */ -f 5</comment>
      <text xml:space="preserve">== Upgrading to the latest firmware ==

There are [[Updating_the_firmware|instructions]] for upgrading to the latest version of &quot;Diablo&quot;, the final Maemo release for the N800/N810.

After following them, you can continue upgrading to the [[Diablo_Community_Project#Upgrading_to_the_.22stable.22_version|Diablo community project]], which fixes some bugs found in the latest official firmware.

== Obtaining root access ==

Use [[Root_access|rootsh to obtain root access]]. Parts of this guide assume you have root enabled.

You may also want to install the package 'sudser' to enable use of the ''sudo'' command in the shell.

== Enabling more repositories ==

A lot of the instructions in this guide ask you to install programs for the Extras repository, so [[Extras|enable it]].

Other repositories are listed, and can be directly enabled, [http://www.gronmayer.com/it/ here]. It's recommended to add ''Browser Extras'' and ''FBReader Repository''.

You should also temporarily enable ''Maemo Extras-Devel'' to perform some tasks explained on this page, but it's best to disable it when you're finished (go to the Application Manager's menu, ...).

== Asian languages support ==

If you need to use Chinese, Japanese, or Korean, you will find that there is no such provision built into Maemo.

Fortunately, there is a third-party project: just [http://maemocjk.garage.maemo.org/os2008.html download the relevant package], reboot, and you'll be able to type in your language.

== Icons on the home screen ==

A useful applet for your home screen is Personal Launcher, which lets you have an arbitrary number of icons for arbitrary programs. You can find it in the Extras repository.

After installing it, click on the ''Home'' menu, ''Applet settings'', ''Personal launcher'' to add and organize icons for the applet.

Note that the applet is resizable by gripping the small triangle visible at the bottom right.

== Improving the browser ==

The standard Maemo browser, MicroB, is still usable, but you might want something different and more modern.

One choice is [[Tear]], a WebKit-based browser that comes with kinetic scrolling and other goodies. You can install the 'tearbookmarks' package, and then go to the ''Panels'' settings of Control Panel to enable it, to replace the standard Maemo bookmarks icon. You may need to reboot before this works.

If you want WebKit but like MicroB, you can install the 'webkit-eal' package (from the same repository as Tear, so follow [[Tear#Adding_Qole.27s_Repository_to_Application_manager_.28Diablo.29|its instructions]] to enable it), then go to its settings and enable WebKit. Note, however, that this project is abandoned.

You can potentially improve your browsing experience, on both MicroB and Tear, by changing your useragent string: for instance, you could pretend to be an iPhone or an Android devices, and have mobile-optimized pages automatically sent to you. With Tear, you can achieve it by going to the menu, ''Tools'', ''Options'', ''user_agent''; with MicroB, you need to install the [http://browser-extras.garage.maemo.org/news/8/ User Agent Switcher].

Common strings:
* iPhone: ''Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3''
* iPad: ''Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10''
* Android: ''Mozilla/5.0 (Linux; U; Android 1.5; en-us; T-Mobile G1 Build/CRB43) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1''

== Using YouTube ==

YouTube can be used from MicroB (but it may not work in WebKit mode, or under Tear), but it's awkward to use and doesn't play smoothly.

There are plug-ins for various media players in Extras, but none of them work correctly at present. A solution involves installing the MyTube player and then patching one of its files.

# Download [http://talk.maemo.org/attachment.php?attachmentid=16817&amp;d=1294429937 this file]
# Open an [[terminal|X terminal]]
# Untar the file:&lt;pre&gt;tar xf /home/user/MyDocs/.documents/youtube-dl-x.tar&lt;/pre&gt;
# Gain root access:&lt;pre&gt;sudo gainroot&lt;/pre&gt;
# Copy the file to its destination location:&lt;pre&gt;cp /home/user/MyDocs/.documents/youtube-dl-x /usr/bin/&lt;/pre&gt;
# Copy the text found [http://talk.maemo.org/showpost.php?p=405435 here]
# Paste it into its destination location by typing:&lt;pre&gt;cat &gt;/usr/lib/python2.5/getpass.py&lt;/pre&gt;then going to the menu, selecting ''Edit'', ''Paste'', and then hitting Ctrl+D
# Start MyTube, go to the menu, ''Settings'', ''more...'', ''youtube-dl'', and add the option « -f 5 », making the command line as follows:&lt;pre&gt;youtube-dl-x -f 5 -o %d -- %s&lt;/pre&gt;Then hit ''apply''.

You need the package 'mplayer' for MyTube to play your videos.

TODO: make a fixed package of MyTube

== Using more IM protocols ==

Maemo supports Jabber natively, which has provisions for gateways to other protocols.

However, it is also possible to enable more protocols (MSN, AIM...) directly in the Chat application, by installing the package 'account-plugin-haze' from the Maemo Extras Devel repository. Alternatively, you can follow [http://rtcomm.garage.maemo.org/#install2 these instructions] to obtain a more recent version of it, that includes more protocols (including IRC).

== Links ==

Hard-to-find software not on maemo.org's list (not everything actually works!):

* http://guest.lunatech.com/~neil/maemo/maemo/
* http://pupnik.de/software.html (lots of programs and games, some packaged some not, some working some not)
* https://garage.maemo.org/projects/tangogps-me/ (works on OS2008, needs to be installed using 'dpkg', not Application Manager)
* https://garage.maemo.org/projects/supertux/ (works on OS2008)
* https://garage.maemo.org/projects/gboggle/ (works if installed with 'dpkg', and if you install one of the dictionaries first)
* https://garage.maemo.org/projects/lightmeter/

[[Category:N8x0]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Using touch screen pressure data</title>
    <id>49</id>
    <revision>
      <id>41507</id>
      <timestamp>2011-01-29T21:31:49Z</timestamp>
      <contributor>
        <username>scyzor</username>
        <id>3394</id>
      </contributor>
      <text xml:space="preserve">This code snippet demonstrates how to get pressure data to xlib application.
Xsp extension provides 'rawmode' which is used when touchscreen is calibrated, in this mode it is possible to receive pressure information. This can be used as a workaround because we don't have Xi there (at least yet).
&lt;source lang=&quot;c&quot;&gt;
#include &lt;X11/X.h&gt;
#include &lt;X11/Xlib.h&gt;
#include &lt;X11/Xatom.h&gt;
#include &lt;X11/keysym.h&gt;

#include &lt;X11/extensions/Xsp.h&gt;

#define uint unsigned int

Display *dpy;
Window win;
int screen;
int xres;
int yres;

/* device specific data */
#define DEV_X_DELTA 3378
#define DEV_Y_DELTA 3080
#define DEV_X_CORRECTION -300
#define DEV_Y_CORRECTION -454

/**
   translate raw device coordinates to screen coordinates
*/
#define TRANSLATE_RAW_COORDS(x, y) \
{ \
  * x += DEV_X_CORRECTION;\
  * y += DEV_Y_CORRECTION;\
  * x = xres - (xres * *x) / DEV_X_DELTA;\
  * y = yres - (yres * *y) / DEV_Y_DELTA;\
}

/**
   set foreground color of default gc
*/
static void
setcolor(uint r, uint g, uint b)
{
  XColor col;
  col.red   = r;
  col.green = g;
  col.blue  = b;
  XAllocColor(dpy,
              DefaultColormap (dpy, screen),
              &amp;col);
  XSetForeground(dpy,
                 DefaultGC (dpy, screen),
                 col.pixel);
}

/**
   main program
*/
int
main (int argc, char *argv)
{
  long key_pressed;

  XEvent event;
  XSPRawTouchscreenEvent xsp_event;

  int xsp_event_base=-1;
  int xsp_error_base=-1;
  int xsp_major=-1;
  int xsp_minor=-1;

  int t_x=0;
  int t_y=0;

  int circle_angle = 360*64;

  uint radius=0;
  uint done = 0;

  Atom atoms_WINDOW_STATE;
  Atom atoms_WINDOW_STATE_FULLSCREEN;

  /* open X display */
  dpy = XOpenDisplay(0);

  if (!dpy)
    goto exit;

  screen = DefaultScreen   (dpy);
  xres   = ScreenOfDisplay (dpy, DefaultScreen(dpy))-&gt;width;
  yres   = ScreenOfDisplay (dpy, DefaultScreen(dpy))-&gt;height;

  atoms_WINDOW_STATE
    = XInternAtom(dpy, &quot;_NET_WM_STATE&quot;,False);
  atoms_WINDOW_STATE_FULLSCREEN
    = XInternAtom(dpy, &quot;_NET_WM_STATE_FULLSCREEN&quot;,False);

  /* create the Window */
  win = XCreateSimpleWindow(dpy, RootWindow(dpy, screen), 0, 0,
                            xres, yres, 0,
                            BlackPixel(dpy, screen),
                            WhitePixel(dpy, screen));

  /* Set the wmhints needed for fullscreen */
  XChangeProperty(dpy, win, atoms_WINDOW_STATE, XA_ATOM, 32,
                  PropModeReplace,
                  (unsigned char *) &amp;atoms_WINDOW_STATE_FULLSCREEN, 1);

  /* get xsp event base */
  XSPQueryExtension(dpy,
                    &amp;xsp_event_base,
                    &amp;xsp_error_base,
                    &amp;xsp_major,
                    &amp;xsp_minor);

  if (xsp_event_base &lt; 0)
    goto exit;

  /* activate raw touchscreen data */
  XSPSetTSRawMode(dpy, True);

  XSelectInput(dpy, win, StructureNotifyMask | ExposureMask | KeyPressMask);
  XMapWindow(dpy, win);
  XClearWindow(dpy, win);

  XFlush(dpy);

  /* clean queue */
  XSync(dpy, True);

  setcolor(0, 0, 0);
  while (!done)
  {
    /* if there are events */
    if (XEventsQueued(dpy, QueuedAfterReading) &gt; 0)
    {
      XNextEvent(dpy, &amp;event);

      /* if it's xsp event */
      if (event.type == xsp_event_base)
        {
          memcpy(&amp;xsp_event, &amp;event,
                 sizeof(XSPRawTouchscreenEvent));

          t_x = xsp_event.x;
          t_y = xsp_event.y;

          /* translate raw coordinates */
          TRANSLATE_RAW_COORDS(&amp;t_x, &amp;t_y);

          /* draw filled circle in translated coords,
             using pressure for size */
          radius = xsp_event.pressure - 100;
          if (radius &lt; 0)
            radius = 1;

          XFillArc(dpy,
                   win,
                   DefaultGC(dpy, screen),
                   t_x-radius,
                   t_y-radius,
                   radius+radius,
                   radius+radius,
                   0 ,
                   circle_angle);

          XFlush(dpy);
        }
      else
        {
          /* some other event */
          switch (event.type)
            {
            case KeyPress :
              done = 1;
              break;

            default :
              break;

            }
        }
    }
  }

  exit :

  /* set back normal event mode */
  XSPSetTSRawMode(dpy, False);

  XCloseDisplay(dpy);
  return 0;
}
&lt;/source&gt;

[[Category: Development]]</text>
    </revision>
  </page>
  <page>
    <title>VLC</title>
    <id>1558</id>
    <revision>
      <id>41488</id>
      <timestamp>2011-01-28T12:37:50Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">[http://videolan.org/vlc VLC] is a codec-less media player, capable of many useful multimedia functions. This article will focus on its streaming capabilities.

== Why VLC? ==

Because the VLC paradigm involves no codecs, and very little user interaction needed, it is considered optimal for this task. It packs a 13-30 megabyte footprint on the host machine (depending on OS). It is also able to transcode your video/audio files for saving onto devices such as the [[Nokia N800]]. It's ability to stream live content, as well as most video/audio formats makes it ideal for the mobile device's needs.

== Simple instructions ==

First, download the software &quot;VLC&quot; from [http://videolan.org/vlc http://videolan.org/vlc] for your OS, and install it normally.

Second, start the software, and regularly open the file you wish to stream. This is to ensure that VLC will play the file back with no errors. In the tools menu, select &quot;Messages&quot;, and set the verbosity to 1 or 2, instead of 0. This will allow you to see any codec/streaming errors in real time.

Next, stop playback - and go to the &quot;Media&quot; menu, and select &quot;Streaming&quot;

Choose your desired media file in that window, making sure that &quot;advanced options&quot; is not set (this ticks off VLC on Windows Vista x64, unverified on other OSes). 

=== Stream Output Settings ===

[[Image:Stream_output_window.jpg|frame|center|alt=Screenshot of the stream output settings dialog|Stream output settings]] 

In the stream output window you can see the options for your stream. The small red square marked off on &quot;play locally&quot; is your choice whether to set that or not. Leaving it off may improve performance. The highlighted rectangle area shows the HTTP server settings. VLC comes with an httpd server built-in, so you don't have to install any additional software. You want to set the &quot;IP Address&quot; to the IP address of the machine VLC is running on (in the example, 192.168.1.2). You may set the port to whatever legal port you wish. Select &quot;Custom&quot; in the drop down menu of the next section.

=== Encapsulation Settings ===

[[Image:VLC-Encapsulation.jpg|frame|center|alt=Screenshot of encapsulation settings tab|Encapsulation settings]]

Radio button labeled &quot;MPEG-TS&quot; should be selected.

=== Video Codec Settings ===

[[Image:VLC-video-codec.jpg|frame|center|alt=Screenshot of video codec settings tab|Video codec settings]]

Ensure that the &quot;Video&quot; checkbox is checked. Under &quot;Codec&quot; drop-down menu, select &quot;MPEG-2&quot;; for bitrate, select 500 kb/s; for scale, pick 0.5.

These settings are explicit to the video you are trying to stream. Larger format video files (720p/1080p blu-ray movies, etc) may need some tinkering, as the 0.5 Scale setting may be too large to stream without dropped frames. For these, try 0.25. For smaller videos, you may want to try setting scale to 0.75 or even 1.

The bitrate setting is dependent on your network environment. 1000 kb/s = 1 megabit, roughly. Wireless-B technology should be able to stream 1 megabit throughout the average home, although you may find that you have to decrease this number to prevent framerate drop with larger format video files. 500 kb/s is about average for a clean-looking video stream, and most wifi networks will support this without issue.

Other Codecs to try are H264 - when you're transcoding from an existing h/x264(3) source; and MPEG-4 if your file is an mp4 or m4v file to begin with. The other settings should remain the same, following the guidelines in this section.

=== Audio Codec Settings ===

[[Image:VLC-audio-codec.jpg|frame|center|alt=Screenshot of audio codec settings tab|Audio codec settings]]

Ensure that the &quot;Audio&quot; checkbox is checked. In the Codec dropdown, choose &quot;MPEG Audio&quot;; for bitrate, choose &quot;128 kb/s&quot;; for channels, choose &quot;2&quot;.
This took some tinkering. MP3 is of course the standard audio format for most encoded video, however, without a lengthy discussion on why the mp3 format isn't easily transcoded without additional software on the computer - you should choose MPEG Audio. This guarantees that the audio of your file will get transcoded and streamed properly.

If you are trying to stream a video that has audio that needs to be higher quality, change the bitrate to 320 kb/s, or any multiple of 16 in the range.

The 2 channel setting is self-evident. Two speakers, two audio channels.

=== The &quot;lazy&quot; copy and paste ===

If you're in a hurry, or don't want to tinker, here are the settings to paste into the very bottom of the window. First, clear the line from :sout to the last character, and delete it. then, paste in this snippet:

 &lt;nowiki&gt;:sout=#transcode{vcodec=mp2v,vb=500,scale=0.5,acodec=mpga,ab=128,channels=2}:duplicate{dst=std{access=http,mux=ts,dst=&lt;/nowiki&gt;'''192.168.1.2:8080'''}}

Making sure to change the '''bold text''' in that line to your computer's IP address and port you wish to use. Hit stream and be on your way!

== On your N8x0 device: settings/apps ==
On the device you will need &quot;mplayer&quot;; you can get this from the application manager. This also installs GMPlayer, which is a loader for mplayer which we will not be using here.

=== Using the Terminal ===
Open a terminal window by tapping menu, utilities, and then scrolling to the X Terminal application - tapping it once.

Once the terminal is open, tap inside it to bring up your keypad, and type the following:

 mplayer http://'''192.168.1.2:8080''' -cache 8192

where the '''192.168.1.2:8080''' is the VLC stream's IP address and port you set in the previous steps.

Press the carriage return button on the keypad to execute the command - the terminal window will scroll a bunch of text, and with any luck, should say &quot;Cache fill: &quot; on a line, and then &quot;TS file format detected&quot;

Simply wait for mplayer to bring up the video window (this can take several seconds to half a minute, depending on the stream and available CPU/RAM on the device) - and watch away!

Closing the video window will bring you back to the terminal; you can either run mplayer again, or close this window now.

[[Category:Software]]
[[Category:Media]]</text>
    </revision>
  </page>
  <page>
    <title>VPN</title>
    <id>4069</id>
    <revision>
      <id>38865</id>
      <timestamp>2010-09-22T08:59:31Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>[[Vpn]] moved to [[VPN]]: capitalization</comment>
      <text xml:space="preserve">This page describes setting up several VPN alternatives on a [[Nokia N900|N900]].

==N900==

===PPTP===
*You need to install a custom kernel module package, like Titan's [[Kernel_Power]] Kernel
* {{wikify|1=http://talk.maemo.org/showthread.php?t=36172&amp;highlight=openvpn}}

===ssh===
*[[SSH]]

===openvpn===
*[[OpenVPN]]

[[Category:Connectivity]]</text>
    </revision>
  </page>
  <page>
    <title>Vcs bat</title>
    <id>3329</id>
    <revision>
      <id>34228</id>
      <timestamp>2010-05-11T09:50:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>categorize</comment>
      <text xml:space="preserve">== Basic Acceptance Tests for vcs.maemo.org ==

This is a short list of some basic tests I perform against vcs.maemo.org, our new subversion and git server. The list is by far complete.

== Current Status ==

{| class=&quot;wikitable&quot;
| style=&quot;background:Green; color:white&quot; | GO
|}

== Failed Cases ==

None

&lt;pre&gt;
== Setup ==

Added to /etc/hosts: 80.248.164.246 git.maemo.org
  
Using command line tools: lynx, git, svn, curl, openssl

Using desktop tools: Firefox 3.5.6, wireshark


Test 1 - PASSED
------
1. Request https://vcs.maemo.org/git from Firefox

Result:
   Page loads fine
   SSL certificate OK


Test 2 - PASSED
------
1. Request https://git.maemo.org/git from Firefox

Result:
   Page loads fine
   SSL certificate OK

   Server shows that the request arrived to port 80 on the backend, so 
   this test basically failed, although the browser seems to be happy.

Test 3 - PASSED
------
1. Request https://vcs.maemo.org/git with lynx from command line

Test 4 - PASSED
------
1. Request https://vcs.maemo.org/git from Firefox
2. Click any of the links on the page, e.g. 'projects' on the top left
   Browser redirected to http://vcs.maemo.org/git,
   although the URL was pointing to http://.....

Test 5 - PASSED
------
1. Request https://git.maemo.org/git from Firefox
2. Click any of the links on the page, e.g. 'projects' on the top left

Test 6 - PASSED
------
1. Request https://git.maemo.org/git from Firefox
2. Click any of the project links there, e.g. &quot;anki&quot;

Test 7 - PASSED
------
1. git clone test from command line

 git clone https://vcs.maemo.org/git/gittest or
 git clone https://git.maemo.org/git/gittest

Test 8 - PASSED
------
1. git push

Result:
 The MOVE Webdav method returns HTTP 502, which means:
 &quot;The destination URI is located on a different server, which refuses to
accept the resource.&quot;

Expected result:
 The push goes through without errors.

Suspected reason:
  Due to HTTPS -&gt; HTTP rewrites the WebDAV MOVE method fails. Trying to find a workaround on the server side.  

Test 9 - PASSED
-------
1. Repeat test 8 within the DMZ, ie. bypass the load balancer

Result:
 Push goes through, without errors.

Test 10 - PASSED
-------
1. svn checkout testing from command line

 svn co https://vcs.maemo.org/svn/svntest or
 svn co http://vcs.maemo.org/svn/svntest

Result:
 Repo is checked out nicely.

Test 11 - PASSED
-------
1. svn check in  testing from command line

 svn ci https://vcs.maemo.org/svn/svntest

Result:
 Changes committed, session remained encrypted all the time.
&lt;/pre&gt;

[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>VertSMS</title>
    <id>4053</id>
    <revision>
      <id>47038</id>
      <timestamp>2012-03-23T09:04:02Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Reverted edits by [[Special:Contributions/23.21.187.247|23.21.187.247]] ([[User talk:23.21.187.247|Talk]]); changed back to last version by [[User:Amigadave|Amigadave]]</comment>
      <text xml:space="preserve">[[Image:VertSMS.jpg|thumb|alt=Screenshot of VertSMS message composition|VertSMS]]

This page is for vertical SMS app called [http://maemo.org/packages/view/vertsms/ VertSMS].

==Version history==

=== 0.7-1 ===

* Fixed dependency list

=== 0.7 ===

* Changed SMS sending from D-Bus to QtMobility

=== 0.6 ===

* Added QWERTY keyboard, thanks to frals for the code.
* Can detect which file to edit (PR1.2 vs pre-PR1.2), thanks to frals.
* Removed rtcom-messaging-ui from the Depends field.

=== 0.5-1 ===

* Added rtcom-messaging-ui version 1.2.22-1+0m5 as a dependency so this doesn't break pre-1.2 devices	(only change in 0.5-1)
* Changed rtcom-eventlogger lib for PR 1.2
* Modified PDU string that should fix problems with some operators.
* Characters are inputted to cursor position instead to the end of the message.

=== 0.4 ===

* Writing message to conversations is done by an official API so there shouldn't be risk of database corruption anymore.
* Adding multiple receivers possible. Separator for numbers is semicolon [;] (both buttons * and # input it while typing a number)

=== 0.3 ===

* sent message is saved to conversations (MIGHT DESTROY YOUR RTCOM-EVENTLOGGER DATABASE!!!)
* osk keyboard popping up disabled (works in PR1.2 and newer firmwares, not earlier!)

=== 0.1-1 ===

* added python-dbus to dependencies

=== 0.1 ===

* Initial release. Things that work:
** Add number via address book selector
** Type text
** Send message (depends on operator and address book receiver's phone number format!)

==Links==

* [http://talk.maemo.org/showthread.php?t=51635 Thread for development]
* [http://talk.maemo.org/showthread.php?p=643862 Thread for testing, ideas etc from users]
* [https://bugs.maemo.org/buglist.cgi?query_format=specific&amp;order=relevance+desc&amp;bug_status=__open__&amp;product=VertSMS&amp;content= Open bugs/feature requests already reported]
* [https://bugs.maemo.org/enter_bug.cgi?product=VertSMS Add bugreport]
* [[VertSMS/Feature requests|Feature requests]]


[[Category:Software]]
[[Category:VertSMS]]</text>
    </revision>
  </page>
  <page>
    <title>VertSMS/0.1</title>
    <id>4059</id>
    <revision>
      <id>36712</id>
      <timestamp>2010-07-13T12:19:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect</comment>
      <text xml:space="preserve">#REDIRECT [[VertSMS#0.1]]</text>
    </revision>
  </page>
  <page>
    <title>VertSMS/0.1-1</title>
    <id>4060</id>
    <revision>
      <id>36713</id>
      <timestamp>2010-07-13T12:21:26Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect</comment>
      <text xml:space="preserve">#REDIRECT [[VertSMS#0.1-1]]</text>
    </revision>
  </page>
  <page>
    <title>VertSMS/0.2</title>
    <id>4075</id>
    <revision>
      <id>38248</id>
      <timestamp>2010-08-31T10:01:37Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>fix double redirect</comment>
      <text xml:space="preserve">#REDIRECT [[VertSMS#0.3]]</text>
    </revision>
  </page>
  <page>
    <title>VertSMS/0.3</title>
    <id>4074</id>
    <revision>
      <id>36724</id>
      <timestamp>2010-07-13T14:16:12Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect</comment>
      <text xml:space="preserve">#REDIRECT [[VertSMS#0.3]]</text>
    </revision>
  </page>
  <page>
    <title>VertSMS/0.4</title>
    <id>4118</id>
    <revision>
      <id>36714</id>
      <timestamp>2010-07-13T12:23:02Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect</comment>
      <text xml:space="preserve">#REDIRECT [[VertSMS#0.4]]</text>
    </revision>
  </page>
  <page>
    <title>VertSMS/0.5-1</title>
    <id>4135</id>
    <revision>
      <id>36715</id>
      <timestamp>2010-07-13T12:23:39Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect</comment>
      <text xml:space="preserve">#REDIRECT [[VertSMS#0.5-1]]</text>
    </revision>
  </page>
  <page>
    <title>VertSMS/Bugs</title>
    <id>4054</id>
    <revision>
      <id>36717</id>
      <timestamp>2010-07-13T12:28:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect</comment>
      <text xml:space="preserve">#REDIRECT [[VertSMS#Links]]</text>
    </revision>
  </page>
  <page>
    <title>VertSMS/Feature requests</title>
    <id>4055</id>
    <revision>
      <id>34424</id>
      <timestamp>2010-05-18T13:14:32Z</timestamp>
      <contributor>
        <ip>72.252.150.81</ip>
      </contributor>
      <comment>/* Open */</comment>
      <text xml:space="preserve">== Open ==

* Integrate sent messages with Conversations --[[User:ossipena|ossipena]] 04:13, 5 May 2010 (UTC)
 the sms conversations are stored on a SQLite3 database (“/home/user/.rtcom-eventlogger/el.db” if i remember right) so it should be possible to read and write messages from other apps to there.  http://talk.maemo.org/showpost.php?p=640046&amp;postcount=31

* Add a setting to switch application outlook (123 vs qwerty keypad, other phone imitations, ...) --[[User:ossipena|ossipena]] 04:13, 5 May 2010 (UTC)

* SMS over google voice --[[User:ossipena|ossipena]] 04:22, 5 May 2010 (UTC)
** See Dialcentral or The One Ring. --[[User:epage|epage]]
** One challenge is having to implement polling for receiving texts, The One Ring does geometricly growing polling times, Dialcentral is constant
** If instead you used telepathy to and made it more of a portrait IM program, then you could get SMS (I think), GV, and more for free.

* Sending message to multiple recipients --[[User:ossipena|ossipena]] 07:27, 5 May 2010 (UTC)

* Integration to conversations --[[User:ossipena|ossipena]] 04:51, 6 May 2010 (UTC)
new sms from conversations, dbus output:
 method return sender=:1.30-&gt; dest=:1.615 reply_serial xxx

* change style similar to conversations --[[User:ossipena|ossipena]] 04:51, 6 May 2010 (UTC)

* add padding to buttons --[[User:ossipena|ossipena]] 04:21, 5 May 2010 (UTC)

* implement arrows to ui --[[User:ossipena|ossipena]] 04:21, 5 May 2010 (UTC)

* status report for sent message --[[User:ossipena|ossipena]] 07:25, 5 May 2010 (UTC)

* disable built in vkb --[[User:ossipena|ossipena]] 04:55, 6 May 2010 (UTC)

* holding backspace only removes one character instead of amount of characters that depends on the time you hold the button down --[[User:ossipena|ossipena]] 04:07, 5 May 2010 (UTC)

* holding a key long enough should input a number --[[User:ossipena|ossipena]] 06:03, 6 May 2010 (UTC)
* T9 predictive text input

== Implemented ==


== Released ==

[[Category:VertSMS]]</text>
    </revision>
  </page>
  <page>
    <title>VertSMS/Todo</title>
    <id>4056</id>
    <revision>
      <id>36718</id>
      <timestamp>2010-07-13T12:28:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect</comment>
      <text xml:space="preserve">#REDIRECT [[VertSMS#Links]]</text>
    </revision>
  </page>
  <page>
    <title>VertSMS/secret</title>
    <id>4883</id>
    <revision>
      <id>43720</id>
      <timestamp>2011-06-01T13:49:57Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[VertSMS/secret]] moved to [[Talk:VertSMS]]: moving to talk page</comment>
      <text xml:space="preserve">#REDIRECT [[Talk:VertSMS]]</text>
    </revision>
  </page>
  <page>
    <title>VideoEditor</title>
    <id>3530</id>
    <revision>
      <id>28479</id>
      <timestamp>2010-02-06T17:14:47Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[VideoEditor]] moved to [[Video editor]]: Naming conventions</comment>
      <text xml:space="preserve">#REDIRECT [[Video editor]]</text>
    </revision>
  </page>
  <page>
    <title>Video Encoding Basic Guide</title>
    <id>3531</id>
    <revision>
      <id>28483</id>
      <timestamp>2010-02-06T17:23:54Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Video Encoding Basic Guide]] moved to [[Ripping DVDs with Handbrake]]: Better description - avoids needless redundancy with [[Video encoding]] and [[Manual video encoding]]</comment>
      <text xml:space="preserve">#REDIRECT [[Ripping DVDs with Handbrake]]</text>
    </revision>
  </page>
  <page>
    <title>Video camera</title>
    <id>3150</id>
    <revision>
      <id>41438</id>
      <timestamp>2011-01-26T11:12:35Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>add link</comment>
      <text xml:space="preserve">== Using the Video Camera ==

This page describes how to activate video mode of your [[Nokia N900|N900]] camera and record a video.

# Open the camera shutter, or start the Camera application in the applications menu
# The capital &quot;A&quot; icon on the right-hand side indicates that the camera is currently in automatic photo mode.[[Image:Video_1.png|center|thumb|400px|alt=&quot;N900 camera default set-up&quot;|N900 camera default set-up]]
# By tapping the video mode indicator, you can select &quot;Automatic video&quot; mode, setting your camera in video mode.[[Image:video2.png|center|thumb|400px|alt=&quot;Selecting camera mode&quot;|Selecting camera mode]]
# The Mode button now shows a video camera, indicating that the camera is in video mode.
# Lightly press the capture button on your device (the button with a camera icon) to focus on your subject[[Image:video3.png|center|thumb|400px|alt=&quot;Video recorder mode&quot;|Video recorder mode]]
# Firmly press the capture button to start recording. Press it again to stop recording. You will have the opportunity to tag or share your video.
# Your video can be viewed in the media player.

[[Category:Beginners]]
[[Category:N900]]</text>
    </revision>
  </page>
  <page>
    <title>Video editor</title>
    <id>3527</id>
    <revision>
      <id>40067</id>
      <timestamp>2010-11-11T18:55:21Z</timestamp>
      <contributor>
        <username>lcuk</username>
        <id>43</id>
      </contributor>
      <comment>please convert to inline</comment>
      <text xml:space="preserve">At the [[Maemo-Barcelona Long Weekend]], there was a concepting session for a video editor. We had fantastic work contributed from that. Here are the scans of all of them:


== Please convert these pages below to inline photos? ==
(I do not know how to do wiki formatting)



* [http://dl.dropbox.com/u/219349/1.pdf 1.pdf]
* [http://dl.dropbox.com/u/219349/2.pdf 2.pdf]
* [http://dl.dropbox.com/u/219349/3.pdf 3.pdf]
* [http://dl.dropbox.com/u/219349/4.pdf 4.pdf]
* [http://dl.dropbox.com/u/219349/5.pdf 5.pdf]
* [http://dl.dropbox.com/u/219349/6.pdf 6.pdf]
* [http://dl.dropbox.com/u/219349/7.pdf 7.pdf]
* [http://dl.dropbox.com/u/219349/8.pdf 8.pdf]
* [http://dl.dropbox.com/u/219349/9.pdf 9.pdf]
* [http://dl.dropbox.com/u/219349/10.pdf 10.pdf]
* [http://dl.dropbox.com/u/219349/11.pdf 11.pdf]
* [http://dl.dropbox.com/u/219349/12.pdf 12.pdf]
* [http://dl.dropbox.com/u/219349/13.pdf 13.pdf]
* [http://dl.dropbox.com/u/219349/14.pdf 14.pdf]
* [http://dl.dropbox.com/u/219349/15.pdf 15.pdf]
* [http://dl.dropbox.com/u/219349/16.pdf 16.pdf]
* [http://dl.dropbox.com/u/219349/17.pdf 17.pdf]
* [http://dl.dropbox.com/u/219349/18.pdf 18.pdf]
* [http://dl.dropbox.com/u/219349/19.pdf 19.pdf]
* [http://dl.dropbox.com/u/219349/20.pdf 20.pdf]
* [http://dl.dropbox.com/u/219349/21.pdf 21.pdf]
* [http://dl.dropbox.com/u/219349/22.pdf 22.pdf]

Alisson from OpenBossa was there and he gave me an swf of a mockup of a video editor that was done at OpenBossa by Glaubert Oliveira. The credits for this mockup are to those people. They have kindly allowed this mockup to be used in whatever way as long as OpenBossa and Glaubert's name are mentioned. [http://dl.dropbox.com/u/219349/mkp.swf View the swf file here]

Patricia collated ideas from the gesture based cutting idea table and created [http://dl.dropbox.com/u/219349/videoeditor.pdf a lovely presentation].

[[Category:Development]]
[[Category:Media]]</text>
    </revision>
  </page>
  <page>
    <title>Video encoding</title>
    <id>178</id>
    <revision>
      <id>47014</id>
      <timestamp>2012-03-20T18:23:05Z</timestamp>
      <contributor>
        <ip>115.73.14.62</ip>
      </contributor>
      <comment>/* Encoding Software */</comment>
      <text xml:space="preserve">== Introduction ==
The [[Nokia N900|N900]] is a huge step up from the previous Internet Tablets when it comes to playing video files. It is capable of playing full 480p (854x480 pixels) files encoded with a variety of codecs, particuarly H.263 (MPEG4 Part 2/Xvid) and H.264 (MPEG4 Part 10). However, it still has some limitations which you need to be aware of to successfully transcode files to play back on the N900.

The native resolution of previous tablets is 800x480 pixels. Unfortunately, due to hardware limitations, tablets prior to the N900 cannot play videos at that native resolution. Because of this, most videos will need re-encoding for use on the tablets.

== Encoding Software ==
These converters provide fairly simply interfaces to easily convert video to a NIT-friendly format for those who don't want to invest a lot of time or need a lot of customization options.

=== Handbrake ===
{{main|Ripping DVDs with Handbrake}}

[http://www.handbrake.fr Handbrake] is a free and open source multiplatform, multithreaded DVD to MPEG-4 converter, available for Linux, Mac OS X, and Windows. HandBrake is intended primarily to convert VOB files from DVDs. 

While Handbrake's 'Universal' and 'iPhone' profile will produce compatible files, it will do so at a lower quality level than the N900 supports, so it is worth using settings more closely tailored to the device's capabilities.

* Handbrake Preset 1: [http://intr.overt.org/misc/Baseline@3.0.plist N900 Optimized HandBrake Preset]. (for Handbrake 0.9.4)&lt;br&gt;
 {{ambox
|type=notice
|text=Note for more recent builds of Handbrake you must disable &quot;Weighted P-frames&quot; or the output will be Main Profile.}}
* Handbrake Preset 2: [http://dl.dropbox.com/u/9311656/N900.plist N900 Fast x264 800x480]

=== Arista ===
[http://www.transcoder.org/ Arista] is a video conveter supporting out-of-the-box N900. It works basing on presets, among which are presets for N900. No need to download anything more.

It's only known to support Linux. But, because it is written in PyGTK, it may be set up to run on Windows &amp; MacOSX as well.

=== tablet-encode ===

[http://mediautils.garage.maemo.org/tablet-encode.html tablet-encode] is a [http://www.mplayerhq.hu/ mencoder] wrapper that offers a number of presets designed for the tablets. Additional presets can be set by the user for greater quality, as the default set is generally optimized for streaming.

=== Media Converter ===

[http://garage.maemo.org/projects/mediaconverter/ MediaConverter] is a Java graphical application with several presets for transcoding video for the [[Nokia N800|N800]] or [[Nokia 770|770]]. Because it is a Java application it will run on many platforms, including Linux, Windows and Mac. You can select a batch of files, a preset encoding method and let it go. You can also have it produce 30 second samples for trying out different settings. Like [[#tablet-encode|tablet-encode]] it uses mencoder. On Windows, it comes with a setup.exe for easy install, and there are distributions for Linux and the Mac on the [http://garage.maemo.org/frs/?group_id=26 download page.]

=== viDrop ===

[http://vidrop.learnfree.eu/ viDrop] is a free and open-source GUI frontend for mencoder originally designed for Rockchip MP4 players but is able to encode to a variety of custom resolutions and bitrates. It works on Linux and Windows, and supports batch processing, profiles and embedding subtitles, among other features.

=== Nokia Internet Tablet Video Converter ===

{{main|ITVC architecture}}

[http://www.nokia.com/A4688059 Internet Tablet Video Converter] is the official Nokia video conversion application for N800 and N810 devices, available for [http://nds1.nokia.com/NOKIA_COM_1/Microsites/BetaLabs/applications/apps/Internet_Tablet_Video_Converter-0.32.pkg.zip Mac OS X] and [http://nds1.nokia.com/NOKIA_COM_1/Microsites/BetaLabs/applications/apps/Internet_Tablet_Video_Converter-0.32.exe Windows].

The application is designed to be a simple drag-n-drop bulk converter of videos, with minimal configuration option to be simple and fast to use. In addition, it provides a [http://maemo.org/community/wiki/internettabletvideoconverter/ developer API] for hooking into the conversion process so that 3rd party developers can modify what gets converted and how.

The built in video player on the N8x0 devices should be used if videos were converted with this tool, versus mplayer.

Development of the official Nokia Internet Tablet Video Converter has ceased as of 25 March 2008.


=== Avidemux ===

Avidemux is an open source video processing program. It works on almost all known operating systems. The Windows and Linux (qt) versions support preset config files for x264 encoding.

[http://depeje.net/maemo/N900_x264.xml N900 optimized preset for avidemux x264] will encode for the N900. It is essentially a baseline profile for h264.
*In Windows: put this file in Application Data/avidemux/x264/
*In linux: put the file in ~/.avidemux/x264/

Set the video codec: &quot;MPEG-4 AVC&quot;, click the &quot;configure&quot; button underneath it and choose the downloaded &quot;Configuration&quot;. Using the &quot;Filters&quot; button add a resize filter to your video if needed (800x448 is optimal). Finally set MP4 as &quot;Format&quot;.

== General Notes on Codec Usage ==

Two of the most popular codecs are H.263/XVid and H.264. As the Xvid and AVI container formats have become deprecated, the latest version of Handbrake (0.9.4) has dropped support for these formats. DivX have also switched to H.264 since version 7. At a given file size, H.264 will result in better looking video, at a cost in increased encoding time. If you wish to encode in Xvid, you can still download the older Handbrake 0.9.3 or other Xvid encoding-software.

=== Supported Codecs ===

A full list of supported codecs can be found in the [[N900 Media Support]] page.

==== H.264 ====

H.264 video (MPEG4 Part 10) is supported natively by the N900. The format has a variety of profiles; the N900 supports the Baseline 3.0 profile, which is what Handbrake will encode at by default.

More information on H.264 can be found on [[:wikipedia:H.264/MPEG-4_AVC|Wikipedia]]

=== Anamorphic Video ===

The native Media Player in the N900 does not support Anamorphic Video. DVDs are stored at a resolution of 720x480 (NTSC) or 720x576 (PAL) but displayed at either 640x480 (for 4:3 video) or 854x480 (for 16:9 video). This means that video frames are stored 'anamorphically' - meaning that they are displayed at a different size from what they are stored at. Particularly, this means that the video frames have non-square pixels. Unfortunately, the media player doesn't understand this and will display the video at 720x480, resulting in squashed or stretched video. So, you must resize the video in Handbrake to ensure pixels are square, or you can disable Anamorphic encoding entirely.

=== Streaming Video ===

The media player supports streaming video from http URLs, but you must be aware of two things. First, in Handbrake you must ensure the 'Web Optimized' checkbox is ticked for mp4 files. This is already in my preset. Without it, you cannot stream the files. Secondly, the buffering algorithm is not designed to handle high bitrate files that would play normally from local storage. This means that you will see a lot of pausing and buffering messages. It seems that the highest bitrate it will stream happily is about 1 MBit/s including audio. The preset is optimized for local storage - you can tweak it to produce smaller files if you need to stream.

=== Resolution ===

As mentioned above, you will have to resize all DVDs you try to transcode, and maybe other files too. So it's good to know what target resolutions to use.

==== 4:3 DVDs (Aspect Ratio 1.33) ====

4:3 DVD video is easy to handle. Just resize to 640x480.

==== 16:9 DVDs (Aspect Ratio 1.78) ====

For 16:9 DVDs, it is harder. 854x480 is a valid choice, but the N900 will have to scale it down to display, so a better choice is 800x448 - which exactly fits on the N900 display. This means you are throwing away vertical detail and bloating the file horizontally but it's the least worst choice without anamorphic support.  If you want smaller file sizes, you can choose to encode your video at other 16:9 compatible resolutions such as 720x416, 704x400 or 640x368 and the N900 will scale the display back up to 800x448, although there may be some loss of image quality.  Please note, these resolutions are not perfect 1.78 aspect ratio, but are the nearest to whilst maintaining widths and heights that are divisible by 16, which improves encoding efficiency.

==== Letter box DVDs ====

Occasionally, you will see a DVD with widescreen content inside a 4:3 frame - so the black borders are in the actual video. To make the video display nicely, you will need to use handbrake's crop feature to cut out the black bars. This is a pretty involved process because you are cropping the original anamorphic frame but need to store it with square pixels. So you might crop to 720x360 (16:9 inside 4:3) and then store it as 720x408 to get square pixels. For even wider movie content, the vertical resolution will be even lower (272 and 306 respectively for 2.35:1 content)

==== SD sources ====

SD sources will generally have square pixels and 480p or less. You can keep the source resolution unchanged or if you have a true 854x480 source, or shrink it to 800x448 as with DVDs.

==== HD sources ====

If you are scaling down an HD source, you will want to target 800x448 as well. If the file is a movie that is wider than 16:9, the vertical resolution will be lower than 448 pixels - just set the width to 800 and maintain the aspect ratio. Essentially all HD content has square pixels.

=== N900 Notes ===

The N900 supports a native resolution of 854x480 and does not support 1280x720. The actual limit is unknown, but using a resolution larger than the native resolution is not recommended as the resolution would be larger than the screen and therefore inefficient.

=== N770, N800/810 Notes ===

To encode video that will scale nicely to the screen aspect ratio, you can use either 240x144 (slightly larger than QCIF), 352x208 (slightly smaller than CIF) or 400x240 (N800/N810 only). Of course if your source video is in a 4:3 aspect ratio, then you should stick with CIF (352x288) or QCIF (176x144). The video player will letterbox or pillar box as needed.

The demo video that comes with the N800 is encoded at 600 kbps, with a frame rate of 30 fps and a resolution of 400x240 pixels. To calculate the pixels per second, the equation is 400x240x30 = 2.88 Megapixels/second.

[http://talk.maemo.org/showthread.php?p=287229#post287229 Some recent tests] have found that in some cases, higher resolutions can produce good results on the N800/N810. Specifically, 576x352 @ 24/25 fps or 480x288 @ 30 fps have been reported to work well if the bitrate is kept around 600 kbps.

For the Nokia 770, 1.52 Megapixels/second is achievable, but again, this depends on the complexity of the action.

The standard media player has some limitations:

* Horizontal and vertical dimensions must be multiples of 16.
* Video data rate and resolution is limited to about 800 kbps and 400x240 pixels (352x288 on the 770).
* Audio must be at 44.1 kHz or lower (performance drops dramatically with 48 kHz audio).
* It does not support external subtitles, so they must be hardcoded.
* DivXs need a FOURCC of &quot;DIVX&quot; rather than &quot;DX50&quot;.

== Audio Encoding ==

=== Standard Audio Codecs ===

==== AAC ====

AAC is supported natively by the Media Player in the N900. AAC is better than MP3 at the same bitrate, so you should generally choose AAC unless you require backwards-compatability to older devices.

The N900 will playback without difficulty a 48 kHz, 160 kbit/sec Dolby Prologic II stream in AAC format (encoded from an AC3 5.1 source).

==== MP3 ====

MP3 is supported natively by the Media Player in the N900.

=== Extra Audio Codecs ===

It is possible to add extra audio codec support to the N900 by installing the   [http://maemo.org/downloads/product/Maemo5/decoders-support/ Decoders Support] package from Maemo Extras.

==== AC3 ====

The Decoders Support package adds AC3 audio support. AC3 audio is interesting because most DVD audio tracks are encoded in this format. This would allow you to copy the audio track without transcoding it. However, this is not necessarily ideal. Firstly, AC3 decoding will be done by the CPU, while AAC decoding is offloaded to a DSP which reduces power consumption. Secondly, you are not going to be able to take advantage of surround sound - meaning that storing a full 5.1 audio track wastes space.

=== Older devices ===

As for the audio subsystem, MP3 at 128 kbps works well with older tablets like the N700 and N800/810. You can reduce the bitrate if you want to limit the file size and if you plan to play the file with the internal speaker only.

== Container Formats ==

The &quot;container&quot; is what holds the video and audio together and instructs the playing software what to do with them. Different types of audio and video formats exist in one container package, which you will see as for example &quot;.avi&quot; for the Audio-Video Interleave container.

=== Supported Container Formats ===

==== MP4 ====

Supported out of the box in the N900 and is the preference for video container formats. MP4 files can be played natively using the built-in Media Player. MP4 also supports chapters which are encoded by default in Handbrake. 

While Media Player does not support seeking through an MP4 video file by chapter, it has no problem playing MP4s that contain them. It is better therefore to leave them in, as Chapter support may be included in future updates to Media Player.

==== AVI ====

AVI is supported out of the box on the N900; however, MP4 is superior in many ways and should be your preference unless you require backwards compatability. AVI is deprecated as a container and support has been dropped by Handbrake since version 0.9.4. DivX also switched to using the MKV container since 2008. AVI files can be played natively using the built-in Media Player.

==== MKV ====

MKV is a superior format to both AVI and MP4, but is not fully supported as yet by the native Media Player in the N900. It supports multiple audio tracks, multiple subtitle tracks along with chapter support and more features. 

Support can be added by [http://maemo.org/downloads/product/Maemo5/decoders-support/ downloading the Decoders Support package] from Maemo Extras. However, MKV files will only play with mplayer which is still in development for Maemo 5/ N900. As such, it is not recommended at this time and there are significant performance costs when not using the built-in Media Player. 

== Subtitles ==

Subtitle support is one area where options are severely limited - the tablet's media player does not handle them. So, the only choice available is 'burned' subtitles - where Handbrake renders them into the video stream.

== Media Players ==

=== Media Player ===

Media Player is the native N900 media player and has the primary advantage of being integrated into the UI and have DSP hardware acceleration. If you choose one of the alternatives, you lose this advantage and have to deal with increased battery usage and other problems. It is preferential for your video file to be playable on the native Media Player.

=== mplayer ===

mplayer is currently in development for the N900. It supports MKV playback and subtitles, but must be used from either the command-line or using a front-end like SiB or KMPlayer. However, despite its support for MKV, there is a significant increase in CPU usage due to the lack of hardware acceleration compared to the native player at this time.

== Manual conversion instructions ==

{{main|Manual video encoding}}
These tools offer manual conversion for those who need lots of customization options or just like getting down to the nitty-gritty.

== Further reading ==
* [http://www.aneesoft.com/tutorials/video-converter-tutorials.html Convert videos for Nokia Phones]
* [http://www.ifunia.com/how-tos/handbrake-presets-for-ipad-iphone4.html Handbrake Presets for iPhone 4 and iPad]
* [http://www.ipodvideosconverter.com/ Ipod Video Converter]
* [http://www.icoolsoft.com/ipad-video-converter/ Ipad Video Converter]
* [[Manual video encoding]]

[[Category:Media]]
[[Category:Wiki page of the day]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Vim</title>
    <id>4866</id>
    <revision>
      <id>43701</id>
      <timestamp>2011-05-31T11:58:42Z</timestamp>
      <contributor>
        <username>priomsrb</username>
        <id>4350</id>
      </contributor>
      <minor/>
      <text xml:space="preserve">Vim is a text editor based off the classic [[Documentation/devtools/maemo5/vi|vi editor]]. It is different from other text editors in that it has different modes of operation. You can learn about vim through [http://www.google.com/search?q=vim+tutorial various websites].

Vim is a very capable editor for mobile devices because of its low footprint and efficiency of key strokes.

== Installation ==
Vim can be installed from the [[Extras|extras repository]].

== Configuration ==

Vim can be configured through the &lt;code&gt;~/.vimrc&lt;/code&gt; file. Here are some items that make it easier to use vim on the [[Nokia N900|N900]].

&lt;pre&gt;
&quot; Map the comma key to colon
map , :


&quot; Press jj while in insert mode to press escape
inoremap jj &lt;esc&gt;


&quot; CTRL+Up to page up, CTRL+Down to page down
map &lt;c-up&gt; &lt;c-u&gt;
map &lt;c-down&gt; &lt;c-d&gt;


&quot; Use 256 colors
set t_Co=256

&quot; Ctrl-Space (layout switcher) does nothing
imap &lt;Nul&gt; &lt;Nop&gt;
map &lt;Nul&gt; &lt;Nop&gt;
vmap &lt;Nul&gt; &lt;Nop&gt;
cmap &lt;Nul&gt; &lt;Nop&gt;
nmap &lt;Nul&gt; &lt;Nop&gt;
&lt;/pre&gt;

== Finger scrolling ==

Add the following to your &lt;code&gt;~/.vimrc&lt;/code&gt; to enable scrolling by dragging the screen.

&lt;pre&gt;
&quot; Drag scrolling. Taken from the ez_scroll vim script
&quot; http://www.vim.org/scripts/script.php?script_id=3141

func! MScroll()
  let l:done=0
  let l:n = -1
  let l:w0 = line(&quot;w0&quot;)
  let l:last = line(&quot;$&quot;)
  while done!=1
    let l:g = getchar()
    if l:g != &quot;\&lt;LeftDrag&gt;&quot;
      let done = 1
    else
      if l:n == -1
        let l:n = v:mouse_lnum
        let l:fln = v:mouse_lnum
      else
        let l:new = l:w0 - v:mouse_lnum + l:n
        if l:new&lt;1
          let l:new = 1
        endif

        let l:diff = -v:mouse_lnum + l:n
        let l:nd = line(&quot;w$&quot;)
        if l:nd+l:diff&gt;l:last
          let l:new = l:last - winheight(0) + 1
          if l:new&lt;1
            let l:new = 1
          endif
        end

        let l:wn = &quot;normal &quot;.string(l:new).&quot;zt&quot;
        if (l:n != v:mouse_lnum)
          exec(l:wn)
          redraw
        endif
        let l:w0 = line(&quot;w0&quot;)
        let l:n = v:mouse_lnum + l:diff
      endif
    endif
  endwhile
  :call cursor(v:mouse_lnum,v:mouse_col)
endfunc
:set mouse=a
:noremap &lt;silent&gt; &lt;LeftMouse&gt; :call MScroll()&lt;CR&gt;
:noremap &lt;LeftRelease&gt; &lt;Nop&gt;
:noremap &lt;LeftDrag&gt; &lt;Nop&gt;
&lt;/pre&gt;


[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Vlc</title>
    <id>2842</id>
    <revision>
      <id>21008</id>
      <timestamp>2009-10-26T02:00:44Z</timestamp>
      <contributor>
        <username>guaka</username>
        <id>1156</id>
      </contributor>
      <comment>[[Vlc]] moved to [[VLC]]</comment>
      <text xml:space="preserve">#REDIRECT [[VLC]]</text>
    </revision>
  </page>
  <page>
    <title>Vpn</title>
    <id>4462</id>
    <revision>
      <id>38866</id>
      <timestamp>2010-09-22T08:59:31Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[Vpn]] moved to [[VPN]]: capitalization</comment>
      <text xml:space="preserve">#REDIRECT [[VPN]]</text>
    </revision>
  </page>
  <page>
    <title>Waters Of Shiloah</title>
    <id>4507</id>
    <revision>
      <id>39348</id>
      <timestamp>2010-10-04T17:36:27Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Waters of Shiloah]]</text>
    </revision>
  </page>
  <page>
    <title>Waters of Shiloah</title>
    <id>4501</id>
    <revision>
      <id>41827</id>
      <timestamp>2011-02-15T00:46:22Z</timestamp>
      <contributor>
        <username>epage</username>
        <id>932</id>
      </contributor>
      <comment>/* Contribute */</comment>
      <text xml:space="preserve">5 The Lord spake also unto me again, saying,
 6 Forasmuch as this people refuseth the waters of Shiloah that go softly, and rejoice in Rezin and Remaliah's son;
 7 Now therefore, behold, the Lord bringeth up upon them the waters of the river, strong and many, even the king of Assyria, and all his glory: and he shall come up over all his channels, and go over all his banks:
 8 And he shall pass through Judah; he shall overflow and go over, he shall rech even to the neck; and the stretching out of his wings shall fill the breadth of thy land, O Immanuel.
 9 Associate yourselves, O ye people, and ye shall be broken in pieces; and give ear, all ye of far countries: gird yourselves, and ye shall be broken in pieces; gird yourselves, and ye shall be broken in pieces.
 10 Take acounsel together, and it shall come to nought; speak the word, and it shall not stand: for God is with us.
 Isaiah 8:5-10 (KJV)

Waters of Shiloah is named after the beautiful imagery used in describing the Lord and His counsels. It is meant to be in imitation of the [http://radio.lds.org/eng/how-to-listen/mobile-applications Mormon Channel clients] that the [https://tech.lds.org/wiki/index.php/LDS_Mobile_application LDSTech community] has developed on behalf of the Church of Jesus Christ of Latter-day Saints. Waters of Shiloah is not endorsed, supported, or affiliated to the LDS Church in any other way besides imitation of existing applications. 

== Features ==

Basic features:
* Supports streaming
** Mormon Channel
** General Conference Precedings
** LDS Magazines
** LDS edition of the scriptures (include KJV of the Bible)
* Automatic advance to the next item
* Quick jump to previous item, next item, the main screen, and currently playing item
* Auto-pause on incoming call
* Background images for the item screens

Keyboard Shortcuts
* Ctrl+Enter - toggle between fullscreen
* Ctrl+o - Rotate the screen orientation
* Ctrl+w - Close the current window (goes up one level)
* Ctrl+q - quit
* Ctrl+l - Copy the debug log contents

Gesture Support
* In the following places:
** Anywhere on item screen
** Bottom of radio screen
** Play/pause button on the &quot;Currently Playing&quot; item
* Gesture
** Tap to play/pause
** Drag left to go to the next item
** Drag right to go to the previous item
** Drag down to go to the main screen
** Drag up to cancel
* In the following place:
** Title area in the currently-playing display
* Gesture
** Tap to jump to that item screen

== Getting Waters of Shiloah ==

Getting Waters of Shiloa
* Maemo 4.1: Currently only available in [[extras-devel]] &lt;!--Available in [[extras]] through the Application Manager.--&gt;
* Maemo 5: Currently only available in extras-testing &lt;!--[http://maemo.org/downloads/product/Maemo5/watersofshiloah/ Maemo 5] or available in extras through the Application Manager.--&gt;
* [http://watersofshiloah.garage.maemo.org/watersofshiloah.deb Ubuntu]

Waters of Shiloah has been tested on:
* Ubuntu 10.04
* Maemo 4.1
* Maemo 5

== Contribute ==

* [https://bugs.maemo.org/enter_bug.cgi?product=Waters%20Of%20Shiloah File a bug]
* [https://bugs.maemo.org/buglist.cgi?query_format=specific&amp;order=relevance+desc&amp;bug_status=__open__&amp;product=Waters%20Of%20Shiloah&amp;content= View existing bug reports]
* [http://talk.maemo.org/showthread.php?p=829768 talk.maemo.org thread]
* [https://garage.maemo.org/projects/watersofshiloah/ Garage Project (including code)] or [https://github.com/epage/Waters-of-Shiloah github]
* Learn about [[extras-testing]] and checkout the [http://maemo.org/packages/view/watersofshiloah/ Package page (including voting)]

Waters of Shiloah is available under the [http://www.gnu.org/licenses/lgpl-2.1.html LGPL v2.1 license]

Artwork under a variety of licenses
* [http://chrfb.deviantart.com/ Homescreen icons] CC-A-NC-SA 3.0 Unported
* [http://www.mirkku.com/ Navigation buttons] Free for Commercial Use
* [http://iconka.com/2008/03/05/319/ Application icon] Free for public use with link to site
* [http://www.flickr.com/photos/sufw/4085028851/ background_magazines_p.jpg] CC-A-SA 2.0 Generic
* [http://www.flickr.com/photos/jdsumsion/90539373/ background_magazines_l.jpg] CC-A-SA 2.0 Generic
* [http://www.flickr.com/photos/twopoos/46251335/ background_conference_p.png] CC-A-SA 2.0 Generic
* [http://www.flickr.com/photos/cbrown1023/2668350108/ background_conference_l.png] CC-A 2.0 Generic
* [http://www.flickr.com/photos/jmwk/3517372902/ background_scriptures_l.png] CC-A 2.0 Generic
* [http://www.flickr.com/photos/29811338@N05/4949956227/ background_scriptures_p.png] CC-A 2.0 Generic

== Trouble Shooting and Reporting of Bugs ==

A very beneficial log can be found at &quot;&lt;code&gt;~/.watersofshiloah/watersofshiloah.log&lt;/code&gt;&quot;

[[Category:Media]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wazapp</title>
    <id>5247</id>
    <revision>
      <id>50690</id>
      <timestamp>2012-11-06T09:52:15Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <minor/>
      <comment>added danish</comment>
      <text xml:space="preserve">= About Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Wazapp logo created by [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp is an IM application for N9 that allows you to chat with your Whatsapp buddies.
Wazapp consists of 2 parts, the IM application (wazapp), which is in Python, and the accounts plugin (waxmppplugin) in C++. The accounts plugin should be rewritten in python soon.

Despite thousands of Nokia N9 users signing an online petition, WhatsApp Inc. ignored all demands for releasing a version for the MeeGo. Tarek Galal released the first version of Wazapp for public beta testing on May 18, 2012. On May 25, 2012 Wazapp was made open source on GitHub. As of September 2012, Wazapp supports almost all features of the official WhatsApp client and languages (see features and languages comparison below).

The source code can be [https://github.com/tgalal/wazapp obtained from github].

* Official homepage: http://www.wazapp.im
* Contact: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp in action==

A tribute to our heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] and [http://talk.maemo.org/member.php?u=59645 knobtviker] for the beautiful UI and full emoji support!

&lt;gallery&gt;
Image:Wazapp-loading.png|Loading screen
Image:Wazapp-main.png|Main screen
Image:Wazapp-conversation.png|Normal chat
Image:Wazapp-main-messages-pending.png|Unread messages
Image:Wazapp-group-create.png|Create group
Image:Wazapp-group-chat.png|Group chat
Image:Wazapp-synching-contacts.png|Contact synchronisation
Image:Wazapp-settings-01.png|Misc options
Image:Wazapp-settings-02.png|Theme and orientation
Image:Wazapp-settings-03.png|Notification
Image:Wazapp-settings-04.png|Profile setup
Image:Wazapp-settings-05-credits.png|About
&lt;/gallery&gt;

==Feature comparison==

{| class=&quot;wikitable mw-datatable&quot;
! Feature !! Original WhatsApp !! Wazapp
|-
| Chat
| x
| x
|-
| Group Chat
| x
| x
|-
| Location sharing
| x
| x
|-
| Media sharing
| x
| x
|-
| Exchange contacts
| x
| x
|-
| Broadcast messages
| x
| not yet, [https://github.com/tgalal/wazapp/issues/114 see GitHub issue]
|-
| Broadcast media
| x
| not yet
|-
| Chat history
| x
| x
|-
| Message timestamps
| x
| x
|-
| Profile picture
| x
| x
|-
| Status update
| x
| x
|-
| IOS 6 Emoji (846)
| x
| x
|-
| Contact synchronisation
| x
| x
|-
| Account registration
| x
| x
|-
| Resize images before sending
| x
| x
|-
| Landscape mode
| x
| x
|-
| Change language
| no
| '''x'''
|-
| Custom theme colours
| x
| x
|-
| Custom background
| x
| x
|-
| Custom notification sounds
| x
| x
|-
| Block contacts
| x
| x
|-
| Audio recording
| x
| x
|-
| Push notifications
| x
| x
|-
| Daily database backup (7 days total)
| x
| work in progress
|-
| No international charges
| x
| x
|-
| User interface
| ''good''
| '''''awesome ;)'''''
|-
| Price
| ''$0.99''
| '''''free'''''
|-
| License
| ''proprietary (closed source)''
| '''''open source (GNU GPL)'''''
|-
|}

==Supported Languages==

Big thanks to all translators on [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Language !! Original WhatsApp !! Wazapp
|-
| Albanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabic
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Basque (Spain)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Bulgarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalan
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chinese
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chinese (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chinese (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croatian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Czech
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danish
| x
| [https://www.transifex.com/projects/p/wazapp/language/da/ x]
|-
| Dutch
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| English (United Kingdom)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| English (United States)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonian
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ x]
|-
| Finnish
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| French (France)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| French (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| German (Germany)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| German (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Greek
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebrew
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindi
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Hungarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ x]
|-
| Indonesian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Italian
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japanese
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Korean
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Macedonian
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malay
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Norwegian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Persian
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polish
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ x]
|-
| Portuguese (Brazil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portuguese (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Romanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Russian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Slovak
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Spanish (Spain)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Spanish (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Spanish (Mexico)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Swedish (Finland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Swedish (Sweden)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Thai
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turkish
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ukrainian
| x
| [https://www.transifex.com/projects/p/wazapp/language/uk_UA/ x]
|-
| Urdu
| no
| [https://www.transifex.com/projects/p/wazapp/language/ur/ x]
|-
| Vietnamese
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Latest Upstream build ==
[[Image:Qr.png|thumb|86px|QR-Code]]
The latest wazapp version is 0.9.12
* Download deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Source: https://github.com/tgalal/wazapp/zipball/0.9.12
* Changelog: http://wazapp.im/changelog
&lt;br style=&quot;clear:both&quot;/&gt;
[[Image:QR_nightly_0.9.12~nightly_05112012.png|thumb|86px|QR-Nightly]]
Below is the latest nightly build by [http://talk.maemo.org/showpost.php?p=1290731&amp;postcount=7154 developer].
* Download nightly deb: https://dl.dropbox.com/u/26659227/harmattan/wazapp/wazapp_0.9.12~nightly_05112012_armel.deb
* Changelog: 
&lt;pre&gt;* Translations
* Better performance with background image selected
* Emoji pressAndHold add new emoji without closing dialog
* Can show yourself in contacts
* Recent tab in emoji dialog
* Bubble colors selector in settings
* Another splash screen (Cepi asked to change it)
* Small changes &lt;/pre&gt;
&lt;br style=&quot;clear:both&quot;/&gt;

==Suitable terminals for N9==

You do not need developer mode enabled in order to be able to have a terminal.
Typing this will add terminal to your apps permanently, even when not in developer mode:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Suitable terminals are (non exclusive list):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Terminal commands==

===Enter superuser / root mode===
 devel-su
Type the root password (default: '''rootme''')

''Note: The cursor will not move when you are typing the password, it is normal.''

===How to backup your Wazapp database===
This should be done prior to anything else. Just in case things get bad (and they will sooner or later).


====GUI solution====

# Disconnect USB cable in case phone is connected to computer.
# Activate &quot;Show root filesystem&quot; '''AND''' &quot;Show hidden files&quot; in Filebox settings menu.
# Navigate to folder
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# You should see a file similar to
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Select and copy it (long keypress)
# Navigate to
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:and paste the file here
# Close Filebox and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


====Terminal solution====

# Disconnect USB cable in case phone is connected to computer.
# Open your favourite terminal
# Type
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Close terminal and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


===Install a new wazapp build===
Download the deb file to your downloads folder (default: /home/user/MyDocs/Downloads/), then disconnect the phone from your computer (if previously connected by usb).
 devel-su
Type the root password (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(filename obviously is the name of your deb file)


===Kill / exit a stuck wazapp process===
 killall wazapp
 kill `pidof wazapp`


===Deleting your wazapp database===
'''Warning''': you will lose all chat history and messages!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Create a logfile for troubleshooting===
If developers asks for a log, you will send them one ;)

This is how it's done.

'''Note: wazapp must not be running!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Once you're done capturing your log, you can find it on your usb storage when connected to pc via usb.
Post it on [http://pastebin.com Pastebin], attach the logfile as txt to your post or send it to CepiPerez if asked.

===Autostart Wazapp on phone boot===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

===Completely purge Wazapp from your Nokia N9===
 devel-su
 {enter your password}
 apt-get --purge autoremove wazapp
 rm -rf /opt/waxmppplugin/
 exit
 rm -rf /home/user/.wazapp/
 Then reboot, &amp; then install new version (if wanted).

==Common errors and their solutions==

=== Stays Offline ===
 You need to open your phone Settings -&gt; Internet Connection -&gt; Switch on &quot;Allow background connections&quot;. Otherwise Wazapp doesn't detect connection to Internet.

=== Connection error===
Error Message:
 status shows &quot;Connecting…&quot; when Wazapp is running.
Solution:
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Registration fail-too-many error===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:

If you are already using dev versions, update to the [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], it should fix that issue. If not, follow the steps below:

# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open

=== Registration fail-too-recent:XXX===
Error Message:
 &quot;Failed. Server said: fail-too-recent:XXX&quot;
Solution:
There are various solutions for this situation
&lt;pre&gt;* You recently registered or logged in, please wait for about XXX minutes before trying to re-register.
* You are using multiple devices with the same number on WhatsApp. WhatsApp meant for one device per session. Please remove WhatsApp completely from your previous device and re-register after mentioned XXX minutes&lt;/pre&gt;

===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
 Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]
# Restart phone
# Start Wazapp

=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.

&lt;pre&gt;Possible solution thanx to fenix_86
1   Uninstall Wazapp
2   Reboot the phone
3   Remove (preferably rename) the folder .wazapp in home/user/...
4   Remove (preferably rename) the folder Wazapp in home/user/MyDocs..
5   Install the latest version of Wazapp
6   Reboot the phone
7   Launch Wazapp and syncronize contact list
8   Reboot the phone (incase standby icons are red squares)
9   Relaunch Wazapp
10  Delete the old renamed folders (renamed in steps 3 and 4)&lt;/pre&gt;

=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
 CepiPerez dev builds don't include language files other than English, even though other languages are visible in the settings menu. However, if you want to use a language other than English in &quot;development&quot; builds, follow these directions: http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
 You need to receive a voice recording from your contact fist.

=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
 This is expected and that is how it works in WhatsApp official client.

=== No conversation bubble notification for one message ===

 As per [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], developer [http://forums.internettablettalk.com/showpost.php?p=1290257&amp;postcount=6946 said that] this is how it will work. 

[[Category:N9]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wazapp</title>
    <id>5247</id>
    <revision>
      <id>50690</id>
      <timestamp>2012-11-06T09:52:15Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <minor/>
      <comment>added danish</comment>
      <text xml:space="preserve">= About Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Wazapp logo created by [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp is an IM application for N9 that allows you to chat with your Whatsapp buddies.
Wazapp consists of 2 parts, the IM application (wazapp), which is in Python, and the accounts plugin (waxmppplugin) in C++. The accounts plugin should be rewritten in python soon.

Despite thousands of Nokia N9 users signing an online petition, WhatsApp Inc. ignored all demands for releasing a version for the MeeGo. Tarek Galal released the first version of Wazapp for public beta testing on May 18, 2012. On May 25, 2012 Wazapp was made open source on GitHub. As of September 2012, Wazapp supports almost all features of the official WhatsApp client and languages (see features and languages comparison below).

The source code can be [https://github.com/tgalal/wazapp obtained from github].

* Official homepage: http://www.wazapp.im
* Contact: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp in action==

A tribute to our heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] and [http://talk.maemo.org/member.php?u=59645 knobtviker] for the beautiful UI and full emoji support!

&lt;gallery&gt;
Image:Wazapp-loading.png|Loading screen
Image:Wazapp-main.png|Main screen
Image:Wazapp-conversation.png|Normal chat
Image:Wazapp-main-messages-pending.png|Unread messages
Image:Wazapp-group-create.png|Create group
Image:Wazapp-group-chat.png|Group chat
Image:Wazapp-synching-contacts.png|Contact synchronisation
Image:Wazapp-settings-01.png|Misc options
Image:Wazapp-settings-02.png|Theme and orientation
Image:Wazapp-settings-03.png|Notification
Image:Wazapp-settings-04.png|Profile setup
Image:Wazapp-settings-05-credits.png|About
&lt;/gallery&gt;

==Feature comparison==

{| class=&quot;wikitable mw-datatable&quot;
! Feature !! Original WhatsApp !! Wazapp
|-
| Chat
| x
| x
|-
| Group Chat
| x
| x
|-
| Location sharing
| x
| x
|-
| Media sharing
| x
| x
|-
| Exchange contacts
| x
| x
|-
| Broadcast messages
| x
| not yet, [https://github.com/tgalal/wazapp/issues/114 see GitHub issue]
|-
| Broadcast media
| x
| not yet
|-
| Chat history
| x
| x
|-
| Message timestamps
| x
| x
|-
| Profile picture
| x
| x
|-
| Status update
| x
| x
|-
| IOS 6 Emoji (846)
| x
| x
|-
| Contact synchronisation
| x
| x
|-
| Account registration
| x
| x
|-
| Resize images before sending
| x
| x
|-
| Landscape mode
| x
| x
|-
| Change language
| no
| '''x'''
|-
| Custom theme colours
| x
| x
|-
| Custom background
| x
| x
|-
| Custom notification sounds
| x
| x
|-
| Block contacts
| x
| x
|-
| Audio recording
| x
| x
|-
| Push notifications
| x
| x
|-
| Daily database backup (7 days total)
| x
| work in progress
|-
| No international charges
| x
| x
|-
| User interface
| ''good''
| '''''awesome ;)'''''
|-
| Price
| ''$0.99''
| '''''free'''''
|-
| License
| ''proprietary (closed source)''
| '''''open source (GNU GPL)'''''
|-
|}

==Supported Languages==

Big thanks to all translators on [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Language !! Original WhatsApp !! Wazapp
|-
| Albanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabic
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Basque (Spain)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Bulgarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalan
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chinese
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chinese (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chinese (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croatian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Czech
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danish
| x
| [https://www.transifex.com/projects/p/wazapp/language/da/ x]
|-
| Dutch
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| English (United Kingdom)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| English (United States)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonian
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ x]
|-
| Finnish
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| French (France)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| French (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| German (Germany)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| German (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Greek
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebrew
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindi
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Hungarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ x]
|-
| Indonesian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Italian
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japanese
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Korean
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Macedonian
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malay
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Norwegian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Persian
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polish
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ x]
|-
| Portuguese (Brazil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portuguese (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Romanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Russian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Slovak
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Spanish (Spain)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Spanish (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Spanish (Mexico)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Swedish (Finland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Swedish (Sweden)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Thai
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turkish
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ukrainian
| x
| [https://www.transifex.com/projects/p/wazapp/language/uk_UA/ x]
|-
| Urdu
| no
| [https://www.transifex.com/projects/p/wazapp/language/ur/ x]
|-
| Vietnamese
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Latest Upstream build ==
[[Image:Qr.png|thumb|86px|QR-Code]]
The latest wazapp version is 0.9.12
* Download deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Source: https://github.com/tgalal/wazapp/zipball/0.9.12
* Changelog: http://wazapp.im/changelog
&lt;br style=&quot;clear:both&quot;/&gt;
[[Image:QR_nightly_0.9.12~nightly_05112012.png|thumb|86px|QR-Nightly]]
Below is the latest nightly build by [http://talk.maemo.org/showpost.php?p=1290731&amp;postcount=7154 developer].
* Download nightly deb: https://dl.dropbox.com/u/26659227/harmattan/wazapp/wazapp_0.9.12~nightly_05112012_armel.deb
* Changelog: 
&lt;pre&gt;* Translations
* Better performance with background image selected
* Emoji pressAndHold add new emoji without closing dialog
* Can show yourself in contacts
* Recent tab in emoji dialog
* Bubble colors selector in settings
* Another splash screen (Cepi asked to change it)
* Small changes &lt;/pre&gt;
&lt;br style=&quot;clear:both&quot;/&gt;

==Suitable terminals for N9==

You do not need developer mode enabled in order to be able to have a terminal.
Typing this will add terminal to your apps permanently, even when not in developer mode:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Suitable terminals are (non exclusive list):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Terminal commands==

===Enter superuser / root mode===
 devel-su
Type the root password (default: '''rootme''')

''Note: The cursor will not move when you are typing the password, it is normal.''

===How to backup your Wazapp database===
This should be done prior to anything else. Just in case things get bad (and they will sooner or later).


====GUI solution====

# Disconnect USB cable in case phone is connected to computer.
# Activate &quot;Show root filesystem&quot; '''AND''' &quot;Show hidden files&quot; in Filebox settings menu.
# Navigate to folder
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# You should see a file similar to
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Select and copy it (long keypress)
# Navigate to
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:and paste the file here
# Close Filebox and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


====Terminal solution====

# Disconnect USB cable in case phone is connected to computer.
# Open your favourite terminal
# Type
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Close terminal and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


===Install a new wazapp build===
Download the deb file to your downloads folder (default: /home/user/MyDocs/Downloads/), then disconnect the phone from your computer (if previously connected by usb).
 devel-su
Type the root password (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(filename obviously is the name of your deb file)


===Kill / exit a stuck wazapp process===
 killall wazapp
 kill `pidof wazapp`


===Deleting your wazapp database===
'''Warning''': you will lose all chat history and messages!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Create a logfile for troubleshooting===
If developers asks for a log, you will send them one ;)

This is how it's done.

'''Note: wazapp must not be running!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Once you're done capturing your log, you can find it on your usb storage when connected to pc via usb.
Post it on [http://pastebin.com Pastebin], attach the logfile as txt to your post or send it to CepiPerez if asked.

===Autostart Wazapp on phone boot===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

===Completely purge Wazapp from your Nokia N9===
 devel-su
 {enter your password}
 apt-get --purge autoremove wazapp
 rm -rf /opt/waxmppplugin/
 exit
 rm -rf /home/user/.wazapp/
 Then reboot, &amp; then install new version (if wanted).

==Common errors and their solutions==

=== Stays Offline ===
 You need to open your phone Settings -&gt; Internet Connection -&gt; Switch on &quot;Allow background connections&quot;. Otherwise Wazapp doesn't detect connection to Internet.

=== Connection error===
Error Message:
 status shows &quot;Connecting…&quot; when Wazapp is running.
Solution:
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Registration fail-too-many error===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:

If you are already using dev versions, update to the [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], it should fix that issue. If not, follow the steps below:

# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open

=== Registration fail-too-recent:XXX===
Error Message:
 &quot;Failed. Server said: fail-too-recent:XXX&quot;
Solution:
There are various solutions for this situation
&lt;pre&gt;* You recently registered or logged in, please wait for about XXX minutes before trying to re-register.
* You are using multiple devices with the same number on WhatsApp. WhatsApp meant for one device per session. Please remove WhatsApp completely from your previous device and re-register after mentioned XXX minutes&lt;/pre&gt;

===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
 Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]
# Restart phone
# Start Wazapp

=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.

&lt;pre&gt;Possible solution thanx to fenix_86
1   Uninstall Wazapp
2   Reboot the phone
3   Remove (preferably rename) the folder .wazapp in home/user/...
4   Remove (preferably rename) the folder Wazapp in home/user/MyDocs..
5   Install the latest version of Wazapp
6   Reboot the phone
7   Launch Wazapp and syncronize contact list
8   Reboot the phone (incase standby icons are red squares)
9   Relaunch Wazapp
10  Delete the old renamed folders (renamed in steps 3 and 4)&lt;/pre&gt;

=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
 CepiPerez dev builds don't include language files other than English, even though other languages are visible in the settings menu. However, if you want to use a language other than English in &quot;development&quot; builds, follow these directions: http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
 You need to receive a voice recording from your contact fist.

=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
 This is expected and that is how it works in WhatsApp official client.

=== No conversation bubble notification for one message ===

 As per [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], developer [http://forums.internettablettalk.com/showpost.php?p=1290257&amp;postcount=6946 said that] this is how it will work. 

[[Category:N9]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wazapp</title>
    <id>5247</id>
    <revision>
      <id>50690</id>
      <timestamp>2012-11-06T09:52:15Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <minor/>
      <comment>added danish</comment>
      <text xml:space="preserve">= About Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Wazapp logo created by [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp is an IM application for N9 that allows you to chat with your Whatsapp buddies.
Wazapp consists of 2 parts, the IM application (wazapp), which is in Python, and the accounts plugin (waxmppplugin) in C++. The accounts plugin should be rewritten in python soon.

Despite thousands of Nokia N9 users signing an online petition, WhatsApp Inc. ignored all demands for releasing a version for the MeeGo. Tarek Galal released the first version of Wazapp for public beta testing on May 18, 2012. On May 25, 2012 Wazapp was made open source on GitHub. As of September 2012, Wazapp supports almost all features of the official WhatsApp client and languages (see features and languages comparison below).

The source code can be [https://github.com/tgalal/wazapp obtained from github].

* Official homepage: http://www.wazapp.im
* Contact: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp in action==

A tribute to our heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] and [http://talk.maemo.org/member.php?u=59645 knobtviker] for the beautiful UI and full emoji support!

&lt;gallery&gt;
Image:Wazapp-loading.png|Loading screen
Image:Wazapp-main.png|Main screen
Image:Wazapp-conversation.png|Normal chat
Image:Wazapp-main-messages-pending.png|Unread messages
Image:Wazapp-group-create.png|Create group
Image:Wazapp-group-chat.png|Group chat
Image:Wazapp-synching-contacts.png|Contact synchronisation
Image:Wazapp-settings-01.png|Misc options
Image:Wazapp-settings-02.png|Theme and orientation
Image:Wazapp-settings-03.png|Notification
Image:Wazapp-settings-04.png|Profile setup
Image:Wazapp-settings-05-credits.png|About
&lt;/gallery&gt;

==Feature comparison==

{| class=&quot;wikitable mw-datatable&quot;
! Feature !! Original WhatsApp !! Wazapp
|-
| Chat
| x
| x
|-
| Group Chat
| x
| x
|-
| Location sharing
| x
| x
|-
| Media sharing
| x
| x
|-
| Exchange contacts
| x
| x
|-
| Broadcast messages
| x
| not yet, [https://github.com/tgalal/wazapp/issues/114 see GitHub issue]
|-
| Broadcast media
| x
| not yet
|-
| Chat history
| x
| x
|-
| Message timestamps
| x
| x
|-
| Profile picture
| x
| x
|-
| Status update
| x
| x
|-
| IOS 6 Emoji (846)
| x
| x
|-
| Contact synchronisation
| x
| x
|-
| Account registration
| x
| x
|-
| Resize images before sending
| x
| x
|-
| Landscape mode
| x
| x
|-
| Change language
| no
| '''x'''
|-
| Custom theme colours
| x
| x
|-
| Custom background
| x
| x
|-
| Custom notification sounds
| x
| x
|-
| Block contacts
| x
| x
|-
| Audio recording
| x
| x
|-
| Push notifications
| x
| x
|-
| Daily database backup (7 days total)
| x
| work in progress
|-
| No international charges
| x
| x
|-
| User interface
| ''good''
| '''''awesome ;)'''''
|-
| Price
| ''$0.99''
| '''''free'''''
|-
| License
| ''proprietary (closed source)''
| '''''open source (GNU GPL)'''''
|-
|}

==Supported Languages==

Big thanks to all translators on [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Language !! Original WhatsApp !! Wazapp
|-
| Albanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabic
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Basque (Spain)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Bulgarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalan
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chinese
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chinese (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chinese (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croatian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Czech
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danish
| x
| [https://www.transifex.com/projects/p/wazapp/language/da/ x]
|-
| Dutch
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| English (United Kingdom)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| English (United States)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonian
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ x]
|-
| Finnish
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| French (France)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| French (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| German (Germany)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| German (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Greek
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebrew
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindi
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Hungarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ x]
|-
| Indonesian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Italian
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japanese
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Korean
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Macedonian
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malay
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Norwegian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Persian
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polish
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ x]
|-
| Portuguese (Brazil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portuguese (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Romanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Russian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Slovak
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Spanish (Spain)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Spanish (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Spanish (Mexico)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Swedish (Finland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Swedish (Sweden)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Thai
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turkish
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ukrainian
| x
| [https://www.transifex.com/projects/p/wazapp/language/uk_UA/ x]
|-
| Urdu
| no
| [https://www.transifex.com/projects/p/wazapp/language/ur/ x]
|-
| Vietnamese
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Latest Upstream build ==
[[Image:Qr.png|thumb|86px|QR-Code]]
The latest wazapp version is 0.9.12
* Download deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Source: https://github.com/tgalal/wazapp/zipball/0.9.12
* Changelog: http://wazapp.im/changelog
&lt;br style=&quot;clear:both&quot;/&gt;
[[Image:QR_nightly_0.9.12~nightly_05112012.png|thumb|86px|QR-Nightly]]
Below is the latest nightly build by [http://talk.maemo.org/showpost.php?p=1290731&amp;postcount=7154 developer].
* Download nightly deb: https://dl.dropbox.com/u/26659227/harmattan/wazapp/wazapp_0.9.12~nightly_05112012_armel.deb
* Changelog: 
&lt;pre&gt;* Translations
* Better performance with background image selected
* Emoji pressAndHold add new emoji without closing dialog
* Can show yourself in contacts
* Recent tab in emoji dialog
* Bubble colors selector in settings
* Another splash screen (Cepi asked to change it)
* Small changes &lt;/pre&gt;
&lt;br style=&quot;clear:both&quot;/&gt;

==Suitable terminals for N9==

You do not need developer mode enabled in order to be able to have a terminal.
Typing this will add terminal to your apps permanently, even when not in developer mode:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Suitable terminals are (non exclusive list):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Terminal commands==

===Enter superuser / root mode===
 devel-su
Type the root password (default: '''rootme''')

''Note: The cursor will not move when you are typing the password, it is normal.''

===How to backup your Wazapp database===
This should be done prior to anything else. Just in case things get bad (and they will sooner or later).


====GUI solution====

# Disconnect USB cable in case phone is connected to computer.
# Activate &quot;Show root filesystem&quot; '''AND''' &quot;Show hidden files&quot; in Filebox settings menu.
# Navigate to folder
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# You should see a file similar to
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Select and copy it (long keypress)
# Navigate to
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:and paste the file here
# Close Filebox and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


====Terminal solution====

# Disconnect USB cable in case phone is connected to computer.
# Open your favourite terminal
# Type
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Close terminal and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


===Install a new wazapp build===
Download the deb file to your downloads folder (default: /home/user/MyDocs/Downloads/), then disconnect the phone from your computer (if previously connected by usb).
 devel-su
Type the root password (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(filename obviously is the name of your deb file)


===Kill / exit a stuck wazapp process===
 killall wazapp
 kill `pidof wazapp`


===Deleting your wazapp database===
'''Warning''': you will lose all chat history and messages!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Create a logfile for troubleshooting===
If developers asks for a log, you will send them one ;)

This is how it's done.

'''Note: wazapp must not be running!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Once you're done capturing your log, you can find it on your usb storage when connected to pc via usb.
Post it on [http://pastebin.com Pastebin], attach the logfile as txt to your post or send it to CepiPerez if asked.

===Autostart Wazapp on phone boot===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

===Completely purge Wazapp from your Nokia N9===
 devel-su
 {enter your password}
 apt-get --purge autoremove wazapp
 rm -rf /opt/waxmppplugin/
 exit
 rm -rf /home/user/.wazapp/
 Then reboot, &amp; then install new version (if wanted).

==Common errors and their solutions==

=== Stays Offline ===
 You need to open your phone Settings -&gt; Internet Connection -&gt; Switch on &quot;Allow background connections&quot;. Otherwise Wazapp doesn't detect connection to Internet.

=== Connection error===
Error Message:
 status shows &quot;Connecting…&quot; when Wazapp is running.
Solution:
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Registration fail-too-many error===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:

If you are already using dev versions, update to the [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], it should fix that issue. If not, follow the steps below:

# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open

=== Registration fail-too-recent:XXX===
Error Message:
 &quot;Failed. Server said: fail-too-recent:XXX&quot;
Solution:
There are various solutions for this situation
&lt;pre&gt;* You recently registered or logged in, please wait for about XXX minutes before trying to re-register.
* You are using multiple devices with the same number on WhatsApp. WhatsApp meant for one device per session. Please remove WhatsApp completely from your previous device and re-register after mentioned XXX minutes&lt;/pre&gt;

===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
 Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]
# Restart phone
# Start Wazapp

=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.

&lt;pre&gt;Possible solution thanx to fenix_86
1   Uninstall Wazapp
2   Reboot the phone
3   Remove (preferably rename) the folder .wazapp in home/user/...
4   Remove (preferably rename) the folder Wazapp in home/user/MyDocs..
5   Install the latest version of Wazapp
6   Reboot the phone
7   Launch Wazapp and syncronize contact list
8   Reboot the phone (incase standby icons are red squares)
9   Relaunch Wazapp
10  Delete the old renamed folders (renamed in steps 3 and 4)&lt;/pre&gt;

=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
 CepiPerez dev builds don't include language files other than English, even though other languages are visible in the settings menu. However, if you want to use a language other than English in &quot;development&quot; builds, follow these directions: http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
 You need to receive a voice recording from your contact fist.

=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
 This is expected and that is how it works in WhatsApp official client.

=== No conversation bubble notification for one message ===

 As per [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], developer [http://forums.internettablettalk.com/showpost.php?p=1290257&amp;postcount=6946 said that] this is how it will work. 

[[Category:N9]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wazapp</title>
    <id>5247</id>
    <revision>
      <id>50690</id>
      <timestamp>2012-11-06T09:52:15Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <minor/>
      <comment>added danish</comment>
      <text xml:space="preserve">= About Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Wazapp logo created by [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp is an IM application for N9 that allows you to chat with your Whatsapp buddies.
Wazapp consists of 2 parts, the IM application (wazapp), which is in Python, and the accounts plugin (waxmppplugin) in C++. The accounts plugin should be rewritten in python soon.

Despite thousands of Nokia N9 users signing an online petition, WhatsApp Inc. ignored all demands for releasing a version for the MeeGo. Tarek Galal released the first version of Wazapp for public beta testing on May 18, 2012. On May 25, 2012 Wazapp was made open source on GitHub. As of September 2012, Wazapp supports almost all features of the official WhatsApp client and languages (see features and languages comparison below).

The source code can be [https://github.com/tgalal/wazapp obtained from github].

* Official homepage: http://www.wazapp.im
* Contact: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp in action==

A tribute to our heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] and [http://talk.maemo.org/member.php?u=59645 knobtviker] for the beautiful UI and full emoji support!

&lt;gallery&gt;
Image:Wazapp-loading.png|Loading screen
Image:Wazapp-main.png|Main screen
Image:Wazapp-conversation.png|Normal chat
Image:Wazapp-main-messages-pending.png|Unread messages
Image:Wazapp-group-create.png|Create group
Image:Wazapp-group-chat.png|Group chat
Image:Wazapp-synching-contacts.png|Contact synchronisation
Image:Wazapp-settings-01.png|Misc options
Image:Wazapp-settings-02.png|Theme and orientation
Image:Wazapp-settings-03.png|Notification
Image:Wazapp-settings-04.png|Profile setup
Image:Wazapp-settings-05-credits.png|About
&lt;/gallery&gt;

==Feature comparison==

{| class=&quot;wikitable mw-datatable&quot;
! Feature !! Original WhatsApp !! Wazapp
|-
| Chat
| x
| x
|-
| Group Chat
| x
| x
|-
| Location sharing
| x
| x
|-
| Media sharing
| x
| x
|-
| Exchange contacts
| x
| x
|-
| Broadcast messages
| x
| not yet, [https://github.com/tgalal/wazapp/issues/114 see GitHub issue]
|-
| Broadcast media
| x
| not yet
|-
| Chat history
| x
| x
|-
| Message timestamps
| x
| x
|-
| Profile picture
| x
| x
|-
| Status update
| x
| x
|-
| IOS 6 Emoji (846)
| x
| x
|-
| Contact synchronisation
| x
| x
|-
| Account registration
| x
| x
|-
| Resize images before sending
| x
| x
|-
| Landscape mode
| x
| x
|-
| Change language
| no
| '''x'''
|-
| Custom theme colours
| x
| x
|-
| Custom background
| x
| x
|-
| Custom notification sounds
| x
| x
|-
| Block contacts
| x
| x
|-
| Audio recording
| x
| x
|-
| Push notifications
| x
| x
|-
| Daily database backup (7 days total)
| x
| work in progress
|-
| No international charges
| x
| x
|-
| User interface
| ''good''
| '''''awesome ;)'''''
|-
| Price
| ''$0.99''
| '''''free'''''
|-
| License
| ''proprietary (closed source)''
| '''''open source (GNU GPL)'''''
|-
|}

==Supported Languages==

Big thanks to all translators on [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Language !! Original WhatsApp !! Wazapp
|-
| Albanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabic
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Basque (Spain)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Bulgarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalan
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chinese
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chinese (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chinese (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croatian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Czech
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danish
| x
| [https://www.transifex.com/projects/p/wazapp/language/da/ x]
|-
| Dutch
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| English (United Kingdom)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| English (United States)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonian
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ x]
|-
| Finnish
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| French (France)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| French (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| German (Germany)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| German (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Greek
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebrew
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindi
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Hungarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ x]
|-
| Indonesian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Italian
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japanese
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Korean
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Macedonian
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malay
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Norwegian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Persian
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polish
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ x]
|-
| Portuguese (Brazil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portuguese (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Romanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Russian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Slovak
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Spanish (Spain)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Spanish (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Spanish (Mexico)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Swedish (Finland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Swedish (Sweden)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Thai
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turkish
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ukrainian
| x
| [https://www.transifex.com/projects/p/wazapp/language/uk_UA/ x]
|-
| Urdu
| no
| [https://www.transifex.com/projects/p/wazapp/language/ur/ x]
|-
| Vietnamese
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Latest Upstream build ==
[[Image:Qr.png|thumb|86px|QR-Code]]
The latest wazapp version is 0.9.12
* Download deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Source: https://github.com/tgalal/wazapp/zipball/0.9.12
* Changelog: http://wazapp.im/changelog
&lt;br style=&quot;clear:both&quot;/&gt;
[[Image:QR_nightly_0.9.12~nightly_05112012.png|thumb|86px|QR-Nightly]]
Below is the latest nightly build by [http://talk.maemo.org/showpost.php?p=1290731&amp;postcount=7154 developer].
* Download nightly deb: https://dl.dropbox.com/u/26659227/harmattan/wazapp/wazapp_0.9.12~nightly_05112012_armel.deb
* Changelog: 
&lt;pre&gt;* Translations
* Better performance with background image selected
* Emoji pressAndHold add new emoji without closing dialog
* Can show yourself in contacts
* Recent tab in emoji dialog
* Bubble colors selector in settings
* Another splash screen (Cepi asked to change it)
* Small changes &lt;/pre&gt;
&lt;br style=&quot;clear:both&quot;/&gt;

==Suitable terminals for N9==

You do not need developer mode enabled in order to be able to have a terminal.
Typing this will add terminal to your apps permanently, even when not in developer mode:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Suitable terminals are (non exclusive list):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Terminal commands==

===Enter superuser / root mode===
 devel-su
Type the root password (default: '''rootme''')

''Note: The cursor will not move when you are typing the password, it is normal.''

===How to backup your Wazapp database===
This should be done prior to anything else. Just in case things get bad (and they will sooner or later).


====GUI solution====

# Disconnect USB cable in case phone is connected to computer.
# Activate &quot;Show root filesystem&quot; '''AND''' &quot;Show hidden files&quot; in Filebox settings menu.
# Navigate to folder
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# You should see a file similar to
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Select and copy it (long keypress)
# Navigate to
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:and paste the file here
# Close Filebox and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


====Terminal solution====

# Disconnect USB cable in case phone is connected to computer.
# Open your favourite terminal
# Type
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Close terminal and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


===Install a new wazapp build===
Download the deb file to your downloads folder (default: /home/user/MyDocs/Downloads/), then disconnect the phone from your computer (if previously connected by usb).
 devel-su
Type the root password (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(filename obviously is the name of your deb file)


===Kill / exit a stuck wazapp process===
 killall wazapp
 kill `pidof wazapp`


===Deleting your wazapp database===
'''Warning''': you will lose all chat history and messages!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Create a logfile for troubleshooting===
If developers asks for a log, you will send them one ;)

This is how it's done.

'''Note: wazapp must not be running!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Once you're done capturing your log, you can find it on your usb storage when connected to pc via usb.
Post it on [http://pastebin.com Pastebin], attach the logfile as txt to your post or send it to CepiPerez if asked.

===Autostart Wazapp on phone boot===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

===Completely purge Wazapp from your Nokia N9===
 devel-su
 {enter your password}
 apt-get --purge autoremove wazapp
 rm -rf /opt/waxmppplugin/
 exit
 rm -rf /home/user/.wazapp/
 Then reboot, &amp; then install new version (if wanted).

==Common errors and their solutions==

=== Stays Offline ===
 You need to open your phone Settings -&gt; Internet Connection -&gt; Switch on &quot;Allow background connections&quot;. Otherwise Wazapp doesn't detect connection to Internet.

=== Connection error===
Error Message:
 status shows &quot;Connecting…&quot; when Wazapp is running.
Solution:
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Registration fail-too-many error===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:

If you are already using dev versions, update to the [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], it should fix that issue. If not, follow the steps below:

# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open

=== Registration fail-too-recent:XXX===
Error Message:
 &quot;Failed. Server said: fail-too-recent:XXX&quot;
Solution:
There are various solutions for this situation
&lt;pre&gt;* You recently registered or logged in, please wait for about XXX minutes before trying to re-register.
* You are using multiple devices with the same number on WhatsApp. WhatsApp meant for one device per session. Please remove WhatsApp completely from your previous device and re-register after mentioned XXX minutes&lt;/pre&gt;

===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
 Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]
# Restart phone
# Start Wazapp

=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.

&lt;pre&gt;Possible solution thanx to fenix_86
1   Uninstall Wazapp
2   Reboot the phone
3   Remove (preferably rename) the folder .wazapp in home/user/...
4   Remove (preferably rename) the folder Wazapp in home/user/MyDocs..
5   Install the latest version of Wazapp
6   Reboot the phone
7   Launch Wazapp and syncronize contact list
8   Reboot the phone (incase standby icons are red squares)
9   Relaunch Wazapp
10  Delete the old renamed folders (renamed in steps 3 and 4)&lt;/pre&gt;

=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
 CepiPerez dev builds don't include language files other than English, even though other languages are visible in the settings menu. However, if you want to use a language other than English in &quot;development&quot; builds, follow these directions: http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
 You need to receive a voice recording from your contact fist.

=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
 This is expected and that is how it works in WhatsApp official client.

=== No conversation bubble notification for one message ===

 As per [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], developer [http://forums.internettablettalk.com/showpost.php?p=1290257&amp;postcount=6946 said that] this is how it will work. 

[[Category:N9]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wazapp</title>
    <id>5247</id>
    <revision>
      <id>50690</id>
      <timestamp>2012-11-06T09:52:15Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <minor/>
      <comment>added danish</comment>
      <text xml:space="preserve">= About Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Wazapp logo created by [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp is an IM application for N9 that allows you to chat with your Whatsapp buddies.
Wazapp consists of 2 parts, the IM application (wazapp), which is in Python, and the accounts plugin (waxmppplugin) in C++. The accounts plugin should be rewritten in python soon.

Despite thousands of Nokia N9 users signing an online petition, WhatsApp Inc. ignored all demands for releasing a version for the MeeGo. Tarek Galal released the first version of Wazapp for public beta testing on May 18, 2012. On May 25, 2012 Wazapp was made open source on GitHub. As of September 2012, Wazapp supports almost all features of the official WhatsApp client and languages (see features and languages comparison below).

The source code can be [https://github.com/tgalal/wazapp obtained from github].

* Official homepage: http://www.wazapp.im
* Contact: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp in action==

A tribute to our heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] and [http://talk.maemo.org/member.php?u=59645 knobtviker] for the beautiful UI and full emoji support!

&lt;gallery&gt;
Image:Wazapp-loading.png|Loading screen
Image:Wazapp-main.png|Main screen
Image:Wazapp-conversation.png|Normal chat
Image:Wazapp-main-messages-pending.png|Unread messages
Image:Wazapp-group-create.png|Create group
Image:Wazapp-group-chat.png|Group chat
Image:Wazapp-synching-contacts.png|Contact synchronisation
Image:Wazapp-settings-01.png|Misc options
Image:Wazapp-settings-02.png|Theme and orientation
Image:Wazapp-settings-03.png|Notification
Image:Wazapp-settings-04.png|Profile setup
Image:Wazapp-settings-05-credits.png|About
&lt;/gallery&gt;

==Feature comparison==

{| class=&quot;wikitable mw-datatable&quot;
! Feature !! Original WhatsApp !! Wazapp
|-
| Chat
| x
| x
|-
| Group Chat
| x
| x
|-
| Location sharing
| x
| x
|-
| Media sharing
| x
| x
|-
| Exchange contacts
| x
| x
|-
| Broadcast messages
| x
| not yet, [https://github.com/tgalal/wazapp/issues/114 see GitHub issue]
|-
| Broadcast media
| x
| not yet
|-
| Chat history
| x
| x
|-
| Message timestamps
| x
| x
|-
| Profile picture
| x
| x
|-
| Status update
| x
| x
|-
| IOS 6 Emoji (846)
| x
| x
|-
| Contact synchronisation
| x
| x
|-
| Account registration
| x
| x
|-
| Resize images before sending
| x
| x
|-
| Landscape mode
| x
| x
|-
| Change language
| no
| '''x'''
|-
| Custom theme colours
| x
| x
|-
| Custom background
| x
| x
|-
| Custom notification sounds
| x
| x
|-
| Block contacts
| x
| x
|-
| Audio recording
| x
| x
|-
| Push notifications
| x
| x
|-
| Daily database backup (7 days total)
| x
| work in progress
|-
| No international charges
| x
| x
|-
| User interface
| ''good''
| '''''awesome ;)'''''
|-
| Price
| ''$0.99''
| '''''free'''''
|-
| License
| ''proprietary (closed source)''
| '''''open source (GNU GPL)'''''
|-
|}

==Supported Languages==

Big thanks to all translators on [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Language !! Original WhatsApp !! Wazapp
|-
| Albanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabic
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Basque (Spain)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Bulgarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalan
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chinese
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chinese (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chinese (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croatian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Czech
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danish
| x
| [https://www.transifex.com/projects/p/wazapp/language/da/ x]
|-
| Dutch
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| English (United Kingdom)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| English (United States)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonian
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ x]
|-
| Finnish
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| French (France)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| French (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| German (Germany)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| German (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Greek
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebrew
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindi
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Hungarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ x]
|-
| Indonesian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Italian
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japanese
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Korean
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Macedonian
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malay
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Norwegian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Persian
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polish
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ x]
|-
| Portuguese (Brazil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portuguese (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Romanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Russian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Slovak
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Spanish (Spain)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Spanish (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Spanish (Mexico)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Swedish (Finland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Swedish (Sweden)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Thai
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turkish
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ukrainian
| x
| [https://www.transifex.com/projects/p/wazapp/language/uk_UA/ x]
|-
| Urdu
| no
| [https://www.transifex.com/projects/p/wazapp/language/ur/ x]
|-
| Vietnamese
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Latest Upstream build ==
[[Image:Qr.png|thumb|86px|QR-Code]]
The latest wazapp version is 0.9.12
* Download deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Source: https://github.com/tgalal/wazapp/zipball/0.9.12
* Changelog: http://wazapp.im/changelog
&lt;br style=&quot;clear:both&quot;/&gt;
[[Image:QR_nightly_0.9.12~nightly_05112012.png|thumb|86px|QR-Nightly]]
Below is the latest nightly build by [http://talk.maemo.org/showpost.php?p=1290731&amp;postcount=7154 developer].
* Download nightly deb: https://dl.dropbox.com/u/26659227/harmattan/wazapp/wazapp_0.9.12~nightly_05112012_armel.deb
* Changelog: 
&lt;pre&gt;* Translations
* Better performance with background image selected
* Emoji pressAndHold add new emoji without closing dialog
* Can show yourself in contacts
* Recent tab in emoji dialog
* Bubble colors selector in settings
* Another splash screen (Cepi asked to change it)
* Small changes &lt;/pre&gt;
&lt;br style=&quot;clear:both&quot;/&gt;

==Suitable terminals for N9==

You do not need developer mode enabled in order to be able to have a terminal.
Typing this will add terminal to your apps permanently, even when not in developer mode:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Suitable terminals are (non exclusive list):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Terminal commands==

===Enter superuser / root mode===
 devel-su
Type the root password (default: '''rootme''')

''Note: The cursor will not move when you are typing the password, it is normal.''

===How to backup your Wazapp database===
This should be done prior to anything else. Just in case things get bad (and they will sooner or later).


====GUI solution====

# Disconnect USB cable in case phone is connected to computer.
# Activate &quot;Show root filesystem&quot; '''AND''' &quot;Show hidden files&quot; in Filebox settings menu.
# Navigate to folder
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# You should see a file similar to
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Select and copy it (long keypress)
# Navigate to
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:and paste the file here
# Close Filebox and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


====Terminal solution====

# Disconnect USB cable in case phone is connected to computer.
# Open your favourite terminal
# Type
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Close terminal and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


===Install a new wazapp build===
Download the deb file to your downloads folder (default: /home/user/MyDocs/Downloads/), then disconnect the phone from your computer (if previously connected by usb).
 devel-su
Type the root password (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(filename obviously is the name of your deb file)


===Kill / exit a stuck wazapp process===
 killall wazapp
 kill `pidof wazapp`


===Deleting your wazapp database===
'''Warning''': you will lose all chat history and messages!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Create a logfile for troubleshooting===
If developers asks for a log, you will send them one ;)

This is how it's done.

'''Note: wazapp must not be running!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Once you're done capturing your log, you can find it on your usb storage when connected to pc via usb.
Post it on [http://pastebin.com Pastebin], attach the logfile as txt to your post or send it to CepiPerez if asked.

===Autostart Wazapp on phone boot===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

===Completely purge Wazapp from your Nokia N9===
 devel-su
 {enter your password}
 apt-get --purge autoremove wazapp
 rm -rf /opt/waxmppplugin/
 exit
 rm -rf /home/user/.wazapp/
 Then reboot, &amp; then install new version (if wanted).

==Common errors and their solutions==

=== Stays Offline ===
 You need to open your phone Settings -&gt; Internet Connection -&gt; Switch on &quot;Allow background connections&quot;. Otherwise Wazapp doesn't detect connection to Internet.

=== Connection error===
Error Message:
 status shows &quot;Connecting…&quot; when Wazapp is running.
Solution:
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Registration fail-too-many error===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:

If you are already using dev versions, update to the [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], it should fix that issue. If not, follow the steps below:

# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open

=== Registration fail-too-recent:XXX===
Error Message:
 &quot;Failed. Server said: fail-too-recent:XXX&quot;
Solution:
There are various solutions for this situation
&lt;pre&gt;* You recently registered or logged in, please wait for about XXX minutes before trying to re-register.
* You are using multiple devices with the same number on WhatsApp. WhatsApp meant for one device per session. Please remove WhatsApp completely from your previous device and re-register after mentioned XXX minutes&lt;/pre&gt;

===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
 Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]
# Restart phone
# Start Wazapp

=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.

&lt;pre&gt;Possible solution thanx to fenix_86
1   Uninstall Wazapp
2   Reboot the phone
3   Remove (preferably rename) the folder .wazapp in home/user/...
4   Remove (preferably rename) the folder Wazapp in home/user/MyDocs..
5   Install the latest version of Wazapp
6   Reboot the phone
7   Launch Wazapp and syncronize contact list
8   Reboot the phone (incase standby icons are red squares)
9   Relaunch Wazapp
10  Delete the old renamed folders (renamed in steps 3 and 4)&lt;/pre&gt;

=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
 CepiPerez dev builds don't include language files other than English, even though other languages are visible in the settings menu. However, if you want to use a language other than English in &quot;development&quot; builds, follow these directions: http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
 You need to receive a voice recording from your contact fist.

=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
 This is expected and that is how it works in WhatsApp official client.

=== No conversation bubble notification for one message ===

 As per [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], developer [http://forums.internettablettalk.com/showpost.php?p=1290257&amp;postcount=6946 said that] this is how it will work. 

[[Category:N9]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wazapp</title>
    <id>5247</id>
    <revision>
      <id>50690</id>
      <timestamp>2012-11-06T09:52:15Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <minor/>
      <comment>added danish</comment>
      <text xml:space="preserve">= About Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Wazapp logo created by [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp is an IM application for N9 that allows you to chat with your Whatsapp buddies.
Wazapp consists of 2 parts, the IM application (wazapp), which is in Python, and the accounts plugin (waxmppplugin) in C++. The accounts plugin should be rewritten in python soon.

Despite thousands of Nokia N9 users signing an online petition, WhatsApp Inc. ignored all demands for releasing a version for the MeeGo. Tarek Galal released the first version of Wazapp for public beta testing on May 18, 2012. On May 25, 2012 Wazapp was made open source on GitHub. As of September 2012, Wazapp supports almost all features of the official WhatsApp client and languages (see features and languages comparison below).

The source code can be [https://github.com/tgalal/wazapp obtained from github].

* Official homepage: http://www.wazapp.im
* Contact: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp in action==

A tribute to our heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] and [http://talk.maemo.org/member.php?u=59645 knobtviker] for the beautiful UI and full emoji support!

&lt;gallery&gt;
Image:Wazapp-loading.png|Loading screen
Image:Wazapp-main.png|Main screen
Image:Wazapp-conversation.png|Normal chat
Image:Wazapp-main-messages-pending.png|Unread messages
Image:Wazapp-group-create.png|Create group
Image:Wazapp-group-chat.png|Group chat
Image:Wazapp-synching-contacts.png|Contact synchronisation
Image:Wazapp-settings-01.png|Misc options
Image:Wazapp-settings-02.png|Theme and orientation
Image:Wazapp-settings-03.png|Notification
Image:Wazapp-settings-04.png|Profile setup
Image:Wazapp-settings-05-credits.png|About
&lt;/gallery&gt;

==Feature comparison==

{| class=&quot;wikitable mw-datatable&quot;
! Feature !! Original WhatsApp !! Wazapp
|-
| Chat
| x
| x
|-
| Group Chat
| x
| x
|-
| Location sharing
| x
| x
|-
| Media sharing
| x
| x
|-
| Exchange contacts
| x
| x
|-
| Broadcast messages
| x
| not yet, [https://github.com/tgalal/wazapp/issues/114 see GitHub issue]
|-
| Broadcast media
| x
| not yet
|-
| Chat history
| x
| x
|-
| Message timestamps
| x
| x
|-
| Profile picture
| x
| x
|-
| Status update
| x
| x
|-
| IOS 6 Emoji (846)
| x
| x
|-
| Contact synchronisation
| x
| x
|-
| Account registration
| x
| x
|-
| Resize images before sending
| x
| x
|-
| Landscape mode
| x
| x
|-
| Change language
| no
| '''x'''
|-
| Custom theme colours
| x
| x
|-
| Custom background
| x
| x
|-
| Custom notification sounds
| x
| x
|-
| Block contacts
| x
| x
|-
| Audio recording
| x
| x
|-
| Push notifications
| x
| x
|-
| Daily database backup (7 days total)
| x
| work in progress
|-
| No international charges
| x
| x
|-
| User interface
| ''good''
| '''''awesome ;)'''''
|-
| Price
| ''$0.99''
| '''''free'''''
|-
| License
| ''proprietary (closed source)''
| '''''open source (GNU GPL)'''''
|-
|}

==Supported Languages==

Big thanks to all translators on [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Language !! Original WhatsApp !! Wazapp
|-
| Albanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabic
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Basque (Spain)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Bulgarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalan
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chinese
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chinese (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chinese (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croatian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Czech
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danish
| x
| [https://www.transifex.com/projects/p/wazapp/language/da/ x]
|-
| Dutch
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| English (United Kingdom)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| English (United States)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonian
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ x]
|-
| Finnish
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| French (France)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| French (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| German (Germany)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| German (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Greek
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebrew
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindi
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Hungarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ x]
|-
| Indonesian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Italian
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japanese
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Korean
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Macedonian
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malay
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Norwegian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Persian
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polish
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ x]
|-
| Portuguese (Brazil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portuguese (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Romanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Russian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Slovak
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Spanish (Spain)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Spanish (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Spanish (Mexico)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Swedish (Finland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Swedish (Sweden)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Thai
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turkish
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ukrainian
| x
| [https://www.transifex.com/projects/p/wazapp/language/uk_UA/ x]
|-
| Urdu
| no
| [https://www.transifex.com/projects/p/wazapp/language/ur/ x]
|-
| Vietnamese
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Latest Upstream build ==
[[Image:Qr.png|thumb|86px|QR-Code]]
The latest wazapp version is 0.9.12
* Download deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Source: https://github.com/tgalal/wazapp/zipball/0.9.12
* Changelog: http://wazapp.im/changelog
&lt;br style=&quot;clear:both&quot;/&gt;
[[Image:QR_nightly_0.9.12~nightly_05112012.png|thumb|86px|QR-Nightly]]
Below is the latest nightly build by [http://talk.maemo.org/showpost.php?p=1290731&amp;postcount=7154 developer].
* Download nightly deb: https://dl.dropbox.com/u/26659227/harmattan/wazapp/wazapp_0.9.12~nightly_05112012_armel.deb
* Changelog: 
&lt;pre&gt;* Translations
* Better performance with background image selected
* Emoji pressAndHold add new emoji without closing dialog
* Can show yourself in contacts
* Recent tab in emoji dialog
* Bubble colors selector in settings
* Another splash screen (Cepi asked to change it)
* Small changes &lt;/pre&gt;
&lt;br style=&quot;clear:both&quot;/&gt;

==Suitable terminals for N9==

You do not need developer mode enabled in order to be able to have a terminal.
Typing this will add terminal to your apps permanently, even when not in developer mode:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Suitable terminals are (non exclusive list):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Terminal commands==

===Enter superuser / root mode===
 devel-su
Type the root password (default: '''rootme''')

''Note: The cursor will not move when you are typing the password, it is normal.''

===How to backup your Wazapp database===
This should be done prior to anything else. Just in case things get bad (and they will sooner or later).


====GUI solution====

# Disconnect USB cable in case phone is connected to computer.
# Activate &quot;Show root filesystem&quot; '''AND''' &quot;Show hidden files&quot; in Filebox settings menu.
# Navigate to folder
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# You should see a file similar to
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Select and copy it (long keypress)
# Navigate to
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:and paste the file here
# Close Filebox and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


====Terminal solution====

# Disconnect USB cable in case phone is connected to computer.
# Open your favourite terminal
# Type
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Close terminal and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


===Install a new wazapp build===
Download the deb file to your downloads folder (default: /home/user/MyDocs/Downloads/), then disconnect the phone from your computer (if previously connected by usb).
 devel-su
Type the root password (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(filename obviously is the name of your deb file)


===Kill / exit a stuck wazapp process===
 killall wazapp
 kill `pidof wazapp`


===Deleting your wazapp database===
'''Warning''': you will lose all chat history and messages!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Create a logfile for troubleshooting===
If developers asks for a log, you will send them one ;)

This is how it's done.

'''Note: wazapp must not be running!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Once you're done capturing your log, you can find it on your usb storage when connected to pc via usb.
Post it on [http://pastebin.com Pastebin], attach the logfile as txt to your post or send it to CepiPerez if asked.

===Autostart Wazapp on phone boot===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

===Completely purge Wazapp from your Nokia N9===
 devel-su
 {enter your password}
 apt-get --purge autoremove wazapp
 rm -rf /opt/waxmppplugin/
 exit
 rm -rf /home/user/.wazapp/
 Then reboot, &amp; then install new version (if wanted).

==Common errors and their solutions==

=== Stays Offline ===
 You need to open your phone Settings -&gt; Internet Connection -&gt; Switch on &quot;Allow background connections&quot;. Otherwise Wazapp doesn't detect connection to Internet.

=== Connection error===
Error Message:
 status shows &quot;Connecting…&quot; when Wazapp is running.
Solution:
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Registration fail-too-many error===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:

If you are already using dev versions, update to the [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], it should fix that issue. If not, follow the steps below:

# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open

=== Registration fail-too-recent:XXX===
Error Message:
 &quot;Failed. Server said: fail-too-recent:XXX&quot;
Solution:
There are various solutions for this situation
&lt;pre&gt;* You recently registered or logged in, please wait for about XXX minutes before trying to re-register.
* You are using multiple devices with the same number on WhatsApp. WhatsApp meant for one device per session. Please remove WhatsApp completely from your previous device and re-register after mentioned XXX minutes&lt;/pre&gt;

===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
 Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]
# Restart phone
# Start Wazapp

=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.

&lt;pre&gt;Possible solution thanx to fenix_86
1   Uninstall Wazapp
2   Reboot the phone
3   Remove (preferably rename) the folder .wazapp in home/user/...
4   Remove (preferably rename) the folder Wazapp in home/user/MyDocs..
5   Install the latest version of Wazapp
6   Reboot the phone
7   Launch Wazapp and syncronize contact list
8   Reboot the phone (incase standby icons are red squares)
9   Relaunch Wazapp
10  Delete the old renamed folders (renamed in steps 3 and 4)&lt;/pre&gt;

=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
 CepiPerez dev builds don't include language files other than English, even though other languages are visible in the settings menu. However, if you want to use a language other than English in &quot;development&quot; builds, follow these directions: http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
 You need to receive a voice recording from your contact fist.

=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
 This is expected and that is how it works in WhatsApp official client.

=== No conversation bubble notification for one message ===

 As per [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], developer [http://forums.internettablettalk.com/showpost.php?p=1290257&amp;postcount=6946 said that] this is how it will work. 

[[Category:N9]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wazapp</title>
    <id>5247</id>
    <revision>
      <id>50690</id>
      <timestamp>2012-11-06T09:52:15Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <minor/>
      <comment>added danish</comment>
      <text xml:space="preserve">= About Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Wazapp logo created by [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp is an IM application for N9 that allows you to chat with your Whatsapp buddies.
Wazapp consists of 2 parts, the IM application (wazapp), which is in Python, and the accounts plugin (waxmppplugin) in C++. The accounts plugin should be rewritten in python soon.

Despite thousands of Nokia N9 users signing an online petition, WhatsApp Inc. ignored all demands for releasing a version for the MeeGo. Tarek Galal released the first version of Wazapp for public beta testing on May 18, 2012. On May 25, 2012 Wazapp was made open source on GitHub. As of September 2012, Wazapp supports almost all features of the official WhatsApp client and languages (see features and languages comparison below).

The source code can be [https://github.com/tgalal/wazapp obtained from github].

* Official homepage: http://www.wazapp.im
* Contact: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp in action==

A tribute to our heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] and [http://talk.maemo.org/member.php?u=59645 knobtviker] for the beautiful UI and full emoji support!

&lt;gallery&gt;
Image:Wazapp-loading.png|Loading screen
Image:Wazapp-main.png|Main screen
Image:Wazapp-conversation.png|Normal chat
Image:Wazapp-main-messages-pending.png|Unread messages
Image:Wazapp-group-create.png|Create group
Image:Wazapp-group-chat.png|Group chat
Image:Wazapp-synching-contacts.png|Contact synchronisation
Image:Wazapp-settings-01.png|Misc options
Image:Wazapp-settings-02.png|Theme and orientation
Image:Wazapp-settings-03.png|Notification
Image:Wazapp-settings-04.png|Profile setup
Image:Wazapp-settings-05-credits.png|About
&lt;/gallery&gt;

==Feature comparison==

{| class=&quot;wikitable mw-datatable&quot;
! Feature !! Original WhatsApp !! Wazapp
|-
| Chat
| x
| x
|-
| Group Chat
| x
| x
|-
| Location sharing
| x
| x
|-
| Media sharing
| x
| x
|-
| Exchange contacts
| x
| x
|-
| Broadcast messages
| x
| not yet, [https://github.com/tgalal/wazapp/issues/114 see GitHub issue]
|-
| Broadcast media
| x
| not yet
|-
| Chat history
| x
| x
|-
| Message timestamps
| x
| x
|-
| Profile picture
| x
| x
|-
| Status update
| x
| x
|-
| IOS 6 Emoji (846)
| x
| x
|-
| Contact synchronisation
| x
| x
|-
| Account registration
| x
| x
|-
| Resize images before sending
| x
| x
|-
| Landscape mode
| x
| x
|-
| Change language
| no
| '''x'''
|-
| Custom theme colours
| x
| x
|-
| Custom background
| x
| x
|-
| Custom notification sounds
| x
| x
|-
| Block contacts
| x
| x
|-
| Audio recording
| x
| x
|-
| Push notifications
| x
| x
|-
| Daily database backup (7 days total)
| x
| work in progress
|-
| No international charges
| x
| x
|-
| User interface
| ''good''
| '''''awesome ;)'''''
|-
| Price
| ''$0.99''
| '''''free'''''
|-
| License
| ''proprietary (closed source)''
| '''''open source (GNU GPL)'''''
|-
|}

==Supported Languages==

Big thanks to all translators on [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Language !! Original WhatsApp !! Wazapp
|-
| Albanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabic
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Basque (Spain)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Bulgarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalan
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chinese
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chinese (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chinese (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croatian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Czech
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danish
| x
| [https://www.transifex.com/projects/p/wazapp/language/da/ x]
|-
| Dutch
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| English (United Kingdom)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| English (United States)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonian
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ x]
|-
| Finnish
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| French (France)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| French (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| German (Germany)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| German (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Greek
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebrew
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindi
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Hungarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ x]
|-
| Indonesian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Italian
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japanese
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Korean
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Macedonian
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malay
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Norwegian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Persian
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polish
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ x]
|-
| Portuguese (Brazil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portuguese (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Romanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Russian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Slovak
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Spanish (Spain)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Spanish (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Spanish (Mexico)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Swedish (Finland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Swedish (Sweden)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Thai
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turkish
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ukrainian
| x
| [https://www.transifex.com/projects/p/wazapp/language/uk_UA/ x]
|-
| Urdu
| no
| [https://www.transifex.com/projects/p/wazapp/language/ur/ x]
|-
| Vietnamese
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Latest Upstream build ==
[[Image:Qr.png|thumb|86px|QR-Code]]
The latest wazapp version is 0.9.12
* Download deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Source: https://github.com/tgalal/wazapp/zipball/0.9.12
* Changelog: http://wazapp.im/changelog
&lt;br style=&quot;clear:both&quot;/&gt;
[[Image:QR_nightly_0.9.12~nightly_05112012.png|thumb|86px|QR-Nightly]]
Below is the latest nightly build by [http://talk.maemo.org/showpost.php?p=1290731&amp;postcount=7154 developer].
* Download nightly deb: https://dl.dropbox.com/u/26659227/harmattan/wazapp/wazapp_0.9.12~nightly_05112012_armel.deb
* Changelog: 
&lt;pre&gt;* Translations
* Better performance with background image selected
* Emoji pressAndHold add new emoji without closing dialog
* Can show yourself in contacts
* Recent tab in emoji dialog
* Bubble colors selector in settings
* Another splash screen (Cepi asked to change it)
* Small changes &lt;/pre&gt;
&lt;br style=&quot;clear:both&quot;/&gt;

==Suitable terminals for N9==

You do not need developer mode enabled in order to be able to have a terminal.
Typing this will add terminal to your apps permanently, even when not in developer mode:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Suitable terminals are (non exclusive list):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Terminal commands==

===Enter superuser / root mode===
 devel-su
Type the root password (default: '''rootme''')

''Note: The cursor will not move when you are typing the password, it is normal.''

===How to backup your Wazapp database===
This should be done prior to anything else. Just in case things get bad (and they will sooner or later).


====GUI solution====

# Disconnect USB cable in case phone is connected to computer.
# Activate &quot;Show root filesystem&quot; '''AND''' &quot;Show hidden files&quot; in Filebox settings menu.
# Navigate to folder
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# You should see a file similar to
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Select and copy it (long keypress)
# Navigate to
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:and paste the file here
# Close Filebox and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


====Terminal solution====

# Disconnect USB cable in case phone is connected to computer.
# Open your favourite terminal
# Type
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Close terminal and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


===Install a new wazapp build===
Download the deb file to your downloads folder (default: /home/user/MyDocs/Downloads/), then disconnect the phone from your computer (if previously connected by usb).
 devel-su
Type the root password (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(filename obviously is the name of your deb file)


===Kill / exit a stuck wazapp process===
 killall wazapp
 kill `pidof wazapp`


===Deleting your wazapp database===
'''Warning''': you will lose all chat history and messages!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Create a logfile for troubleshooting===
If developers asks for a log, you will send them one ;)

This is how it's done.

'''Note: wazapp must not be running!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Once you're done capturing your log, you can find it on your usb storage when connected to pc via usb.
Post it on [http://pastebin.com Pastebin], attach the logfile as txt to your post or send it to CepiPerez if asked.

===Autostart Wazapp on phone boot===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

===Completely purge Wazapp from your Nokia N9===
 devel-su
 {enter your password}
 apt-get --purge autoremove wazapp
 rm -rf /opt/waxmppplugin/
 exit
 rm -rf /home/user/.wazapp/
 Then reboot, &amp; then install new version (if wanted).

==Common errors and their solutions==

=== Stays Offline ===
 You need to open your phone Settings -&gt; Internet Connection -&gt; Switch on &quot;Allow background connections&quot;. Otherwise Wazapp doesn't detect connection to Internet.

=== Connection error===
Error Message:
 status shows &quot;Connecting…&quot; when Wazapp is running.
Solution:
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Registration fail-too-many error===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:

If you are already using dev versions, update to the [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], it should fix that issue. If not, follow the steps below:

# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open

=== Registration fail-too-recent:XXX===
Error Message:
 &quot;Failed. Server said: fail-too-recent:XXX&quot;
Solution:
There are various solutions for this situation
&lt;pre&gt;* You recently registered or logged in, please wait for about XXX minutes before trying to re-register.
* You are using multiple devices with the same number on WhatsApp. WhatsApp meant for one device per session. Please remove WhatsApp completely from your previous device and re-register after mentioned XXX minutes&lt;/pre&gt;

===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
 Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]
# Restart phone
# Start Wazapp

=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.

&lt;pre&gt;Possible solution thanx to fenix_86
1   Uninstall Wazapp
2   Reboot the phone
3   Remove (preferably rename) the folder .wazapp in home/user/...
4   Remove (preferably rename) the folder Wazapp in home/user/MyDocs..
5   Install the latest version of Wazapp
6   Reboot the phone
7   Launch Wazapp and syncronize contact list
8   Reboot the phone (incase standby icons are red squares)
9   Relaunch Wazapp
10  Delete the old renamed folders (renamed in steps 3 and 4)&lt;/pre&gt;

=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
 CepiPerez dev builds don't include language files other than English, even though other languages are visible in the settings menu. However, if you want to use a language other than English in &quot;development&quot; builds, follow these directions: http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
 You need to receive a voice recording from your contact fist.

=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
 This is expected and that is how it works in WhatsApp official client.

=== No conversation bubble notification for one message ===

 As per [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], developer [http://forums.internettablettalk.com/showpost.php?p=1290257&amp;postcount=6946 said that] this is how it will work. 

[[Category:N9]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wazapp</title>
    <id>5247</id>
    <revision>
      <id>50690</id>
      <timestamp>2012-11-06T09:52:15Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <minor/>
      <comment>added danish</comment>
      <text xml:space="preserve">= About Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Wazapp logo created by [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp is an IM application for N9 that allows you to chat with your Whatsapp buddies.
Wazapp consists of 2 parts, the IM application (wazapp), which is in Python, and the accounts plugin (waxmppplugin) in C++. The accounts plugin should be rewritten in python soon.

Despite thousands of Nokia N9 users signing an online petition, WhatsApp Inc. ignored all demands for releasing a version for the MeeGo. Tarek Galal released the first version of Wazapp for public beta testing on May 18, 2012. On May 25, 2012 Wazapp was made open source on GitHub. As of September 2012, Wazapp supports almost all features of the official WhatsApp client and languages (see features and languages comparison below).

The source code can be [https://github.com/tgalal/wazapp obtained from github].

* Official homepage: http://www.wazapp.im
* Contact: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp in action==

A tribute to our heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] and [http://talk.maemo.org/member.php?u=59645 knobtviker] for the beautiful UI and full emoji support!

&lt;gallery&gt;
Image:Wazapp-loading.png|Loading screen
Image:Wazapp-main.png|Main screen
Image:Wazapp-conversation.png|Normal chat
Image:Wazapp-main-messages-pending.png|Unread messages
Image:Wazapp-group-create.png|Create group
Image:Wazapp-group-chat.png|Group chat
Image:Wazapp-synching-contacts.png|Contact synchronisation
Image:Wazapp-settings-01.png|Misc options
Image:Wazapp-settings-02.png|Theme and orientation
Image:Wazapp-settings-03.png|Notification
Image:Wazapp-settings-04.png|Profile setup
Image:Wazapp-settings-05-credits.png|About
&lt;/gallery&gt;

==Feature comparison==

{| class=&quot;wikitable mw-datatable&quot;
! Feature !! Original WhatsApp !! Wazapp
|-
| Chat
| x
| x
|-
| Group Chat
| x
| x
|-
| Location sharing
| x
| x
|-
| Media sharing
| x
| x
|-
| Exchange contacts
| x
| x
|-
| Broadcast messages
| x
| not yet, [https://github.com/tgalal/wazapp/issues/114 see GitHub issue]
|-
| Broadcast media
| x
| not yet
|-
| Chat history
| x
| x
|-
| Message timestamps
| x
| x
|-
| Profile picture
| x
| x
|-
| Status update
| x
| x
|-
| IOS 6 Emoji (846)
| x
| x
|-
| Contact synchronisation
| x
| x
|-
| Account registration
| x
| x
|-
| Resize images before sending
| x
| x
|-
| Landscape mode
| x
| x
|-
| Change language
| no
| '''x'''
|-
| Custom theme colours
| x
| x
|-
| Custom background
| x
| x
|-
| Custom notification sounds
| x
| x
|-
| Block contacts
| x
| x
|-
| Audio recording
| x
| x
|-
| Push notifications
| x
| x
|-
| Daily database backup (7 days total)
| x
| work in progress
|-
| No international charges
| x
| x
|-
| User interface
| ''good''
| '''''awesome ;)'''''
|-
| Price
| ''$0.99''
| '''''free'''''
|-
| License
| ''proprietary (closed source)''
| '''''open source (GNU GPL)'''''
|-
|}

==Supported Languages==

Big thanks to all translators on [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Language !! Original WhatsApp !! Wazapp
|-
| Albanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabic
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Basque (Spain)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Bulgarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalan
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chinese
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chinese (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chinese (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croatian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Czech
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danish
| x
| [https://www.transifex.com/projects/p/wazapp/language/da/ x]
|-
| Dutch
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| English (United Kingdom)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| English (United States)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonian
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ x]
|-
| Finnish
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| French (France)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| French (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| German (Germany)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| German (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Greek
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebrew
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindi
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Hungarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ x]
|-
| Indonesian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Italian
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japanese
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Korean
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Macedonian
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malay
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Norwegian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Persian
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polish
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ x]
|-
| Portuguese (Brazil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portuguese (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Romanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Russian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Slovak
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Spanish (Spain)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Spanish (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Spanish (Mexico)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Swedish (Finland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Swedish (Sweden)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Thai
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turkish
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ukrainian
| x
| [https://www.transifex.com/projects/p/wazapp/language/uk_UA/ x]
|-
| Urdu
| no
| [https://www.transifex.com/projects/p/wazapp/language/ur/ x]
|-
| Vietnamese
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Latest Upstream build ==
[[Image:Qr.png|thumb|86px|QR-Code]]
The latest wazapp version is 0.9.12
* Download deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Source: https://github.com/tgalal/wazapp/zipball/0.9.12
* Changelog: http://wazapp.im/changelog
&lt;br style=&quot;clear:both&quot;/&gt;
[[Image:QR_nightly_0.9.12~nightly_05112012.png|thumb|86px|QR-Nightly]]
Below is the latest nightly build by [http://talk.maemo.org/showpost.php?p=1290731&amp;postcount=7154 developer].
* Download nightly deb: https://dl.dropbox.com/u/26659227/harmattan/wazapp/wazapp_0.9.12~nightly_05112012_armel.deb
* Changelog: 
&lt;pre&gt;* Translations
* Better performance with background image selected
* Emoji pressAndHold add new emoji without closing dialog
* Can show yourself in contacts
* Recent tab in emoji dialog
* Bubble colors selector in settings
* Another splash screen (Cepi asked to change it)
* Small changes &lt;/pre&gt;
&lt;br style=&quot;clear:both&quot;/&gt;

==Suitable terminals for N9==

You do not need developer mode enabled in order to be able to have a terminal.
Typing this will add terminal to your apps permanently, even when not in developer mode:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Suitable terminals are (non exclusive list):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Terminal commands==

===Enter superuser / root mode===
 devel-su
Type the root password (default: '''rootme''')

''Note: The cursor will not move when you are typing the password, it is normal.''

===How to backup your Wazapp database===
This should be done prior to anything else. Just in case things get bad (and they will sooner or later).


====GUI solution====

# Disconnect USB cable in case phone is connected to computer.
# Activate &quot;Show root filesystem&quot; '''AND''' &quot;Show hidden files&quot; in Filebox settings menu.
# Navigate to folder
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# You should see a file similar to
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Select and copy it (long keypress)
# Navigate to
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:and paste the file here
# Close Filebox and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


====Terminal solution====

# Disconnect USB cable in case phone is connected to computer.
# Open your favourite terminal
# Type
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Close terminal and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


===Install a new wazapp build===
Download the deb file to your downloads folder (default: /home/user/MyDocs/Downloads/), then disconnect the phone from your computer (if previously connected by usb).
 devel-su
Type the root password (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(filename obviously is the name of your deb file)


===Kill / exit a stuck wazapp process===
 killall wazapp
 kill `pidof wazapp`


===Deleting your wazapp database===
'''Warning''': you will lose all chat history and messages!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Create a logfile for troubleshooting===
If developers asks for a log, you will send them one ;)

This is how it's done.

'''Note: wazapp must not be running!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Once you're done capturing your log, you can find it on your usb storage when connected to pc via usb.
Post it on [http://pastebin.com Pastebin], attach the logfile as txt to your post or send it to CepiPerez if asked.

===Autostart Wazapp on phone boot===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

===Completely purge Wazapp from your Nokia N9===
 devel-su
 {enter your password}
 apt-get --purge autoremove wazapp
 rm -rf /opt/waxmppplugin/
 exit
 rm -rf /home/user/.wazapp/
 Then reboot, &amp; then install new version (if wanted).

==Common errors and their solutions==

=== Stays Offline ===
 You need to open your phone Settings -&gt; Internet Connection -&gt; Switch on &quot;Allow background connections&quot;. Otherwise Wazapp doesn't detect connection to Internet.

=== Connection error===
Error Message:
 status shows &quot;Connecting…&quot; when Wazapp is running.
Solution:
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Registration fail-too-many error===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:

If you are already using dev versions, update to the [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], it should fix that issue. If not, follow the steps below:

# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open

=== Registration fail-too-recent:XXX===
Error Message:
 &quot;Failed. Server said: fail-too-recent:XXX&quot;
Solution:
There are various solutions for this situation
&lt;pre&gt;* You recently registered or logged in, please wait for about XXX minutes before trying to re-register.
* You are using multiple devices with the same number on WhatsApp. WhatsApp meant for one device per session. Please remove WhatsApp completely from your previous device and re-register after mentioned XXX minutes&lt;/pre&gt;

===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
 Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]
# Restart phone
# Start Wazapp

=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.

&lt;pre&gt;Possible solution thanx to fenix_86
1   Uninstall Wazapp
2   Reboot the phone
3   Remove (preferably rename) the folder .wazapp in home/user/...
4   Remove (preferably rename) the folder Wazapp in home/user/MyDocs..
5   Install the latest version of Wazapp
6   Reboot the phone
7   Launch Wazapp and syncronize contact list
8   Reboot the phone (incase standby icons are red squares)
9   Relaunch Wazapp
10  Delete the old renamed folders (renamed in steps 3 and 4)&lt;/pre&gt;

=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
 CepiPerez dev builds don't include language files other than English, even though other languages are visible in the settings menu. However, if you want to use a language other than English in &quot;development&quot; builds, follow these directions: http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
 You need to receive a voice recording from your contact fist.

=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
 This is expected and that is how it works in WhatsApp official client.

=== No conversation bubble notification for one message ===

 As per [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], developer [http://forums.internettablettalk.com/showpost.php?p=1290257&amp;postcount=6946 said that] this is how it will work. 

[[Category:N9]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wazapp</title>
    <id>5247</id>
    <revision>
      <id>50690</id>
      <timestamp>2012-11-06T09:52:15Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <minor/>
      <comment>added danish</comment>
      <text xml:space="preserve">= About Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Wazapp logo created by [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp is an IM application for N9 that allows you to chat with your Whatsapp buddies.
Wazapp consists of 2 parts, the IM application (wazapp), which is in Python, and the accounts plugin (waxmppplugin) in C++. The accounts plugin should be rewritten in python soon.

Despite thousands of Nokia N9 users signing an online petition, WhatsApp Inc. ignored all demands for releasing a version for the MeeGo. Tarek Galal released the first version of Wazapp for public beta testing on May 18, 2012. On May 25, 2012 Wazapp was made open source on GitHub. As of September 2012, Wazapp supports almost all features of the official WhatsApp client and languages (see features and languages comparison below).

The source code can be [https://github.com/tgalal/wazapp obtained from github].

* Official homepage: http://www.wazapp.im
* Contact: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp in action==

A tribute to our heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] and [http://talk.maemo.org/member.php?u=59645 knobtviker] for the beautiful UI and full emoji support!

&lt;gallery&gt;
Image:Wazapp-loading.png|Loading screen
Image:Wazapp-main.png|Main screen
Image:Wazapp-conversation.png|Normal chat
Image:Wazapp-main-messages-pending.png|Unread messages
Image:Wazapp-group-create.png|Create group
Image:Wazapp-group-chat.png|Group chat
Image:Wazapp-synching-contacts.png|Contact synchronisation
Image:Wazapp-settings-01.png|Misc options
Image:Wazapp-settings-02.png|Theme and orientation
Image:Wazapp-settings-03.png|Notification
Image:Wazapp-settings-04.png|Profile setup
Image:Wazapp-settings-05-credits.png|About
&lt;/gallery&gt;

==Feature comparison==

{| class=&quot;wikitable mw-datatable&quot;
! Feature !! Original WhatsApp !! Wazapp
|-
| Chat
| x
| x
|-
| Group Chat
| x
| x
|-
| Location sharing
| x
| x
|-
| Media sharing
| x
| x
|-
| Exchange contacts
| x
| x
|-
| Broadcast messages
| x
| not yet, [https://github.com/tgalal/wazapp/issues/114 see GitHub issue]
|-
| Broadcast media
| x
| not yet
|-
| Chat history
| x
| x
|-
| Message timestamps
| x
| x
|-
| Profile picture
| x
| x
|-
| Status update
| x
| x
|-
| IOS 6 Emoji (846)
| x
| x
|-
| Contact synchronisation
| x
| x
|-
| Account registration
| x
| x
|-
| Resize images before sending
| x
| x
|-
| Landscape mode
| x
| x
|-
| Change language
| no
| '''x'''
|-
| Custom theme colours
| x
| x
|-
| Custom background
| x
| x
|-
| Custom notification sounds
| x
| x
|-
| Block contacts
| x
| x
|-
| Audio recording
| x
| x
|-
| Push notifications
| x
| x
|-
| Daily database backup (7 days total)
| x
| work in progress
|-
| No international charges
| x
| x
|-
| User interface
| ''good''
| '''''awesome ;)'''''
|-
| Price
| ''$0.99''
| '''''free'''''
|-
| License
| ''proprietary (closed source)''
| '''''open source (GNU GPL)'''''
|-
|}

==Supported Languages==

Big thanks to all translators on [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Language !! Original WhatsApp !! Wazapp
|-
| Albanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabic
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Basque (Spain)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Bulgarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalan
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chinese
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chinese (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chinese (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croatian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Czech
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danish
| x
| [https://www.transifex.com/projects/p/wazapp/language/da/ x]
|-
| Dutch
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| English (United Kingdom)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| English (United States)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonian
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ x]
|-
| Finnish
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| French (France)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| French (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| German (Germany)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| German (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Greek
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebrew
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindi
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Hungarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ x]
|-
| Indonesian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Italian
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japanese
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Korean
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Macedonian
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malay
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Norwegian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Persian
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polish
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ x]
|-
| Portuguese (Brazil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portuguese (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Romanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Russian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Slovak
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Spanish (Spain)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Spanish (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Spanish (Mexico)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Swedish (Finland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Swedish (Sweden)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Thai
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turkish
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ukrainian
| x
| [https://www.transifex.com/projects/p/wazapp/language/uk_UA/ x]
|-
| Urdu
| no
| [https://www.transifex.com/projects/p/wazapp/language/ur/ x]
|-
| Vietnamese
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Latest Upstream build ==
[[Image:Qr.png|thumb|86px|QR-Code]]
The latest wazapp version is 0.9.12
* Download deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Source: https://github.com/tgalal/wazapp/zipball/0.9.12
* Changelog: http://wazapp.im/changelog
&lt;br style=&quot;clear:both&quot;/&gt;
[[Image:QR_nightly_0.9.12~nightly_05112012.png|thumb|86px|QR-Nightly]]
Below is the latest nightly build by [http://talk.maemo.org/showpost.php?p=1290731&amp;postcount=7154 developer].
* Download nightly deb: https://dl.dropbox.com/u/26659227/harmattan/wazapp/wazapp_0.9.12~nightly_05112012_armel.deb
* Changelog: 
&lt;pre&gt;* Translations
* Better performance with background image selected
* Emoji pressAndHold add new emoji without closing dialog
* Can show yourself in contacts
* Recent tab in emoji dialog
* Bubble colors selector in settings
* Another splash screen (Cepi asked to change it)
* Small changes &lt;/pre&gt;
&lt;br style=&quot;clear:both&quot;/&gt;

==Suitable terminals for N9==

You do not need developer mode enabled in order to be able to have a terminal.
Typing this will add terminal to your apps permanently, even when not in developer mode:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Suitable terminals are (non exclusive list):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Terminal commands==

===Enter superuser / root mode===
 devel-su
Type the root password (default: '''rootme''')

''Note: The cursor will not move when you are typing the password, it is normal.''

===How to backup your Wazapp database===
This should be done prior to anything else. Just in case things get bad (and they will sooner or later).


====GUI solution====

# Disconnect USB cable in case phone is connected to computer.
# Activate &quot;Show root filesystem&quot; '''AND''' &quot;Show hidden files&quot; in Filebox settings menu.
# Navigate to folder
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# You should see a file similar to
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Select and copy it (long keypress)
# Navigate to
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:and paste the file here
# Close Filebox and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


====Terminal solution====

# Disconnect USB cable in case phone is connected to computer.
# Open your favourite terminal
# Type
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Close terminal and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


===Install a new wazapp build===
Download the deb file to your downloads folder (default: /home/user/MyDocs/Downloads/), then disconnect the phone from your computer (if previously connected by usb).
 devel-su
Type the root password (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(filename obviously is the name of your deb file)


===Kill / exit a stuck wazapp process===
 killall wazapp
 kill `pidof wazapp`


===Deleting your wazapp database===
'''Warning''': you will lose all chat history and messages!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Create a logfile for troubleshooting===
If developers asks for a log, you will send them one ;)

This is how it's done.

'''Note: wazapp must not be running!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Once you're done capturing your log, you can find it on your usb storage when connected to pc via usb.
Post it on [http://pastebin.com Pastebin], attach the logfile as txt to your post or send it to CepiPerez if asked.

===Autostart Wazapp on phone boot===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

===Completely purge Wazapp from your Nokia N9===
 devel-su
 {enter your password}
 apt-get --purge autoremove wazapp
 rm -rf /opt/waxmppplugin/
 exit
 rm -rf /home/user/.wazapp/
 Then reboot, &amp; then install new version (if wanted).

==Common errors and their solutions==

=== Stays Offline ===
 You need to open your phone Settings -&gt; Internet Connection -&gt; Switch on &quot;Allow background connections&quot;. Otherwise Wazapp doesn't detect connection to Internet.

=== Connection error===
Error Message:
 status shows &quot;Connecting…&quot; when Wazapp is running.
Solution:
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Registration fail-too-many error===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:

If you are already using dev versions, update to the [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], it should fix that issue. If not, follow the steps below:

# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open

=== Registration fail-too-recent:XXX===
Error Message:
 &quot;Failed. Server said: fail-too-recent:XXX&quot;
Solution:
There are various solutions for this situation
&lt;pre&gt;* You recently registered or logged in, please wait for about XXX minutes before trying to re-register.
* You are using multiple devices with the same number on WhatsApp. WhatsApp meant for one device per session. Please remove WhatsApp completely from your previous device and re-register after mentioned XXX minutes&lt;/pre&gt;

===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
 Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]
# Restart phone
# Start Wazapp

=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.

&lt;pre&gt;Possible solution thanx to fenix_86
1   Uninstall Wazapp
2   Reboot the phone
3   Remove (preferably rename) the folder .wazapp in home/user/...
4   Remove (preferably rename) the folder Wazapp in home/user/MyDocs..
5   Install the latest version of Wazapp
6   Reboot the phone
7   Launch Wazapp and syncronize contact list
8   Reboot the phone (incase standby icons are red squares)
9   Relaunch Wazapp
10  Delete the old renamed folders (renamed in steps 3 and 4)&lt;/pre&gt;

=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
 CepiPerez dev builds don't include language files other than English, even though other languages are visible in the settings menu. However, if you want to use a language other than English in &quot;development&quot; builds, follow these directions: http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
 You need to receive a voice recording from your contact fist.

=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
 This is expected and that is how it works in WhatsApp official client.

=== No conversation bubble notification for one message ===

 As per [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], developer [http://forums.internettablettalk.com/showpost.php?p=1290257&amp;postcount=6946 said that] this is how it will work. 

[[Category:N9]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wazapp</title>
    <id>5247</id>
    <revision>
      <id>50690</id>
      <timestamp>2012-11-06T09:52:15Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <minor/>
      <comment>added danish</comment>
      <text xml:space="preserve">= About Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Wazapp logo created by [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp is an IM application for N9 that allows you to chat with your Whatsapp buddies.
Wazapp consists of 2 parts, the IM application (wazapp), which is in Python, and the accounts plugin (waxmppplugin) in C++. The accounts plugin should be rewritten in python soon.

Despite thousands of Nokia N9 users signing an online petition, WhatsApp Inc. ignored all demands for releasing a version for the MeeGo. Tarek Galal released the first version of Wazapp for public beta testing on May 18, 2012. On May 25, 2012 Wazapp was made open source on GitHub. As of September 2012, Wazapp supports almost all features of the official WhatsApp client and languages (see features and languages comparison below).

The source code can be [https://github.com/tgalal/wazapp obtained from github].

* Official homepage: http://www.wazapp.im
* Contact: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp in action==

A tribute to our heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] and [http://talk.maemo.org/member.php?u=59645 knobtviker] for the beautiful UI and full emoji support!

&lt;gallery&gt;
Image:Wazapp-loading.png|Loading screen
Image:Wazapp-main.png|Main screen
Image:Wazapp-conversation.png|Normal chat
Image:Wazapp-main-messages-pending.png|Unread messages
Image:Wazapp-group-create.png|Create group
Image:Wazapp-group-chat.png|Group chat
Image:Wazapp-synching-contacts.png|Contact synchronisation
Image:Wazapp-settings-01.png|Misc options
Image:Wazapp-settings-02.png|Theme and orientation
Image:Wazapp-settings-03.png|Notification
Image:Wazapp-settings-04.png|Profile setup
Image:Wazapp-settings-05-credits.png|About
&lt;/gallery&gt;

==Feature comparison==

{| class=&quot;wikitable mw-datatable&quot;
! Feature !! Original WhatsApp !! Wazapp
|-
| Chat
| x
| x
|-
| Group Chat
| x
| x
|-
| Location sharing
| x
| x
|-
| Media sharing
| x
| x
|-
| Exchange contacts
| x
| x
|-
| Broadcast messages
| x
| not yet, [https://github.com/tgalal/wazapp/issues/114 see GitHub issue]
|-
| Broadcast media
| x
| not yet
|-
| Chat history
| x
| x
|-
| Message timestamps
| x
| x
|-
| Profile picture
| x
| x
|-
| Status update
| x
| x
|-
| IOS 6 Emoji (846)
| x
| x
|-
| Contact synchronisation
| x
| x
|-
| Account registration
| x
| x
|-
| Resize images before sending
| x
| x
|-
| Landscape mode
| x
| x
|-
| Change language
| no
| '''x'''
|-
| Custom theme colours
| x
| x
|-
| Custom background
| x
| x
|-
| Custom notification sounds
| x
| x
|-
| Block contacts
| x
| x
|-
| Audio recording
| x
| x
|-
| Push notifications
| x
| x
|-
| Daily database backup (7 days total)
| x
| work in progress
|-
| No international charges
| x
| x
|-
| User interface
| ''good''
| '''''awesome ;)'''''
|-
| Price
| ''$0.99''
| '''''free'''''
|-
| License
| ''proprietary (closed source)''
| '''''open source (GNU GPL)'''''
|-
|}

==Supported Languages==

Big thanks to all translators on [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Language !! Original WhatsApp !! Wazapp
|-
| Albanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabic
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Basque (Spain)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Bulgarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalan
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chinese
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chinese (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chinese (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croatian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Czech
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danish
| x
| [https://www.transifex.com/projects/p/wazapp/language/da/ x]
|-
| Dutch
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| English (United Kingdom)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| English (United States)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonian
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ x]
|-
| Finnish
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| French (France)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| French (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| German (Germany)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| German (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Greek
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebrew
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindi
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Hungarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ x]
|-
| Indonesian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Italian
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japanese
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Korean
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Macedonian
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malay
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Norwegian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Persian
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polish
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ x]
|-
| Portuguese (Brazil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portuguese (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Romanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Russian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Slovak
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Spanish (Spain)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Spanish (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Spanish (Mexico)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Swedish (Finland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Swedish (Sweden)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Thai
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turkish
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ukrainian
| x
| [https://www.transifex.com/projects/p/wazapp/language/uk_UA/ x]
|-
| Urdu
| no
| [https://www.transifex.com/projects/p/wazapp/language/ur/ x]
|-
| Vietnamese
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Latest Upstream build ==
[[Image:Qr.png|thumb|86px|QR-Code]]
The latest wazapp version is 0.9.12
* Download deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Source: https://github.com/tgalal/wazapp/zipball/0.9.12
* Changelog: http://wazapp.im/changelog
&lt;br style=&quot;clear:both&quot;/&gt;
[[Image:QR_nightly_0.9.12~nightly_05112012.png|thumb|86px|QR-Nightly]]
Below is the latest nightly build by [http://talk.maemo.org/showpost.php?p=1290731&amp;postcount=7154 developer].
* Download nightly deb: https://dl.dropbox.com/u/26659227/harmattan/wazapp/wazapp_0.9.12~nightly_05112012_armel.deb
* Changelog: 
&lt;pre&gt;* Translations
* Better performance with background image selected
* Emoji pressAndHold add new emoji without closing dialog
* Can show yourself in contacts
* Recent tab in emoji dialog
* Bubble colors selector in settings
* Another splash screen (Cepi asked to change it)
* Small changes &lt;/pre&gt;
&lt;br style=&quot;clear:both&quot;/&gt;

==Suitable terminals for N9==

You do not need developer mode enabled in order to be able to have a terminal.
Typing this will add terminal to your apps permanently, even when not in developer mode:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Suitable terminals are (non exclusive list):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Terminal commands==

===Enter superuser / root mode===
 devel-su
Type the root password (default: '''rootme''')

''Note: The cursor will not move when you are typing the password, it is normal.''

===How to backup your Wazapp database===
This should be done prior to anything else. Just in case things get bad (and they will sooner or later).


====GUI solution====

# Disconnect USB cable in case phone is connected to computer.
# Activate &quot;Show root filesystem&quot; '''AND''' &quot;Show hidden files&quot; in Filebox settings menu.
# Navigate to folder
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# You should see a file similar to
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Select and copy it (long keypress)
# Navigate to
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:and paste the file here
# Close Filebox and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


====Terminal solution====

# Disconnect USB cable in case phone is connected to computer.
# Open your favourite terminal
# Type
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Close terminal and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


===Install a new wazapp build===
Download the deb file to your downloads folder (default: /home/user/MyDocs/Downloads/), then disconnect the phone from your computer (if previously connected by usb).
 devel-su
Type the root password (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(filename obviously is the name of your deb file)


===Kill / exit a stuck wazapp process===
 killall wazapp
 kill `pidof wazapp`


===Deleting your wazapp database===
'''Warning''': you will lose all chat history and messages!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Create a logfile for troubleshooting===
If developers asks for a log, you will send them one ;)

This is how it's done.

'''Note: wazapp must not be running!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Once you're done capturing your log, you can find it on your usb storage when connected to pc via usb.
Post it on [http://pastebin.com Pastebin], attach the logfile as txt to your post or send it to CepiPerez if asked.

===Autostart Wazapp on phone boot===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

===Completely purge Wazapp from your Nokia N9===
 devel-su
 {enter your password}
 apt-get --purge autoremove wazapp
 rm -rf /opt/waxmppplugin/
 exit
 rm -rf /home/user/.wazapp/
 Then reboot, &amp; then install new version (if wanted).

==Common errors and their solutions==

=== Stays Offline ===
 You need to open your phone Settings -&gt; Internet Connection -&gt; Switch on &quot;Allow background connections&quot;. Otherwise Wazapp doesn't detect connection to Internet.

=== Connection error===
Error Message:
 status shows &quot;Connecting…&quot; when Wazapp is running.
Solution:
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Registration fail-too-many error===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:

If you are already using dev versions, update to the [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], it should fix that issue. If not, follow the steps below:

# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open

=== Registration fail-too-recent:XXX===
Error Message:
 &quot;Failed. Server said: fail-too-recent:XXX&quot;
Solution:
There are various solutions for this situation
&lt;pre&gt;* You recently registered or logged in, please wait for about XXX minutes before trying to re-register.
* You are using multiple devices with the same number on WhatsApp. WhatsApp meant for one device per session. Please remove WhatsApp completely from your previous device and re-register after mentioned XXX minutes&lt;/pre&gt;

===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
 Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]
# Restart phone
# Start Wazapp

=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.

&lt;pre&gt;Possible solution thanx to fenix_86
1   Uninstall Wazapp
2   Reboot the phone
3   Remove (preferably rename) the folder .wazapp in home/user/...
4   Remove (preferably rename) the folder Wazapp in home/user/MyDocs..
5   Install the latest version of Wazapp
6   Reboot the phone
7   Launch Wazapp and syncronize contact list
8   Reboot the phone (incase standby icons are red squares)
9   Relaunch Wazapp
10  Delete the old renamed folders (renamed in steps 3 and 4)&lt;/pre&gt;

=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
 CepiPerez dev builds don't include language files other than English, even though other languages are visible in the settings menu. However, if you want to use a language other than English in &quot;development&quot; builds, follow these directions: http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
 You need to receive a voice recording from your contact fist.

=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
 This is expected and that is how it works in WhatsApp official client.

=== No conversation bubble notification for one message ===

 As per [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], developer [http://forums.internettablettalk.com/showpost.php?p=1290257&amp;postcount=6946 said that] this is how it will work. 

[[Category:N9]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wazapp</title>
    <id>5247</id>
    <revision>
      <id>50690</id>
      <timestamp>2012-11-06T09:52:15Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <minor/>
      <comment>added danish</comment>
      <text xml:space="preserve">= About Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Wazapp logo created by [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp is an IM application for N9 that allows you to chat with your Whatsapp buddies.
Wazapp consists of 2 parts, the IM application (wazapp), which is in Python, and the accounts plugin (waxmppplugin) in C++. The accounts plugin should be rewritten in python soon.

Despite thousands of Nokia N9 users signing an online petition, WhatsApp Inc. ignored all demands for releasing a version for the MeeGo. Tarek Galal released the first version of Wazapp for public beta testing on May 18, 2012. On May 25, 2012 Wazapp was made open source on GitHub. As of September 2012, Wazapp supports almost all features of the official WhatsApp client and languages (see features and languages comparison below).

The source code can be [https://github.com/tgalal/wazapp obtained from github].

* Official homepage: http://www.wazapp.im
* Contact: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp in action==

A tribute to our heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] and [http://talk.maemo.org/member.php?u=59645 knobtviker] for the beautiful UI and full emoji support!

&lt;gallery&gt;
Image:Wazapp-loading.png|Loading screen
Image:Wazapp-main.png|Main screen
Image:Wazapp-conversation.png|Normal chat
Image:Wazapp-main-messages-pending.png|Unread messages
Image:Wazapp-group-create.png|Create group
Image:Wazapp-group-chat.png|Group chat
Image:Wazapp-synching-contacts.png|Contact synchronisation
Image:Wazapp-settings-01.png|Misc options
Image:Wazapp-settings-02.png|Theme and orientation
Image:Wazapp-settings-03.png|Notification
Image:Wazapp-settings-04.png|Profile setup
Image:Wazapp-settings-05-credits.png|About
&lt;/gallery&gt;

==Feature comparison==

{| class=&quot;wikitable mw-datatable&quot;
! Feature !! Original WhatsApp !! Wazapp
|-
| Chat
| x
| x
|-
| Group Chat
| x
| x
|-
| Location sharing
| x
| x
|-
| Media sharing
| x
| x
|-
| Exchange contacts
| x
| x
|-
| Broadcast messages
| x
| not yet, [https://github.com/tgalal/wazapp/issues/114 see GitHub issue]
|-
| Broadcast media
| x
| not yet
|-
| Chat history
| x
| x
|-
| Message timestamps
| x
| x
|-
| Profile picture
| x
| x
|-
| Status update
| x
| x
|-
| IOS 6 Emoji (846)
| x
| x
|-
| Contact synchronisation
| x
| x
|-
| Account registration
| x
| x
|-
| Resize images before sending
| x
| x
|-
| Landscape mode
| x
| x
|-
| Change language
| no
| '''x'''
|-
| Custom theme colours
| x
| x
|-
| Custom background
| x
| x
|-
| Custom notification sounds
| x
| x
|-
| Block contacts
| x
| x
|-
| Audio recording
| x
| x
|-
| Push notifications
| x
| x
|-
| Daily database backup (7 days total)
| x
| work in progress
|-
| No international charges
| x
| x
|-
| User interface
| ''good''
| '''''awesome ;)'''''
|-
| Price
| ''$0.99''
| '''''free'''''
|-
| License
| ''proprietary (closed source)''
| '''''open source (GNU GPL)'''''
|-
|}

==Supported Languages==

Big thanks to all translators on [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Language !! Original WhatsApp !! Wazapp
|-
| Albanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabic
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Basque (Spain)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Bulgarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalan
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chinese
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chinese (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chinese (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croatian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Czech
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danish
| x
| [https://www.transifex.com/projects/p/wazapp/language/da/ x]
|-
| Dutch
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| English (United Kingdom)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| English (United States)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonian
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ x]
|-
| Finnish
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| French (France)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| French (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| German (Germany)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| German (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Greek
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebrew
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindi
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Hungarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ x]
|-
| Indonesian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Italian
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japanese
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Korean
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Macedonian
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malay
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Norwegian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Persian
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polish
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ x]
|-
| Portuguese (Brazil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portuguese (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Romanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Russian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Slovak
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Spanish (Spain)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Spanish (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Spanish (Mexico)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Swedish (Finland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Swedish (Sweden)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Thai
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turkish
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ukrainian
| x
| [https://www.transifex.com/projects/p/wazapp/language/uk_UA/ x]
|-
| Urdu
| no
| [https://www.transifex.com/projects/p/wazapp/language/ur/ x]
|-
| Vietnamese
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Latest Upstream build ==
[[Image:Qr.png|thumb|86px|QR-Code]]
The latest wazapp version is 0.9.12
* Download deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Source: https://github.com/tgalal/wazapp/zipball/0.9.12
* Changelog: http://wazapp.im/changelog
&lt;br style=&quot;clear:both&quot;/&gt;
[[Image:QR_nightly_0.9.12~nightly_05112012.png|thumb|86px|QR-Nightly]]
Below is the latest nightly build by [http://talk.maemo.org/showpost.php?p=1290731&amp;postcount=7154 developer].
* Download nightly deb: https://dl.dropbox.com/u/26659227/harmattan/wazapp/wazapp_0.9.12~nightly_05112012_armel.deb
* Changelog: 
&lt;pre&gt;* Translations
* Better performance with background image selected
* Emoji pressAndHold add new emoji without closing dialog
* Can show yourself in contacts
* Recent tab in emoji dialog
* Bubble colors selector in settings
* Another splash screen (Cepi asked to change it)
* Small changes &lt;/pre&gt;
&lt;br style=&quot;clear:both&quot;/&gt;

==Suitable terminals for N9==

You do not need developer mode enabled in order to be able to have a terminal.
Typing this will add terminal to your apps permanently, even when not in developer mode:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Suitable terminals are (non exclusive list):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Terminal commands==

===Enter superuser / root mode===
 devel-su
Type the root password (default: '''rootme''')

''Note: The cursor will not move when you are typing the password, it is normal.''

===How to backup your Wazapp database===
This should be done prior to anything else. Just in case things get bad (and they will sooner or later).


====GUI solution====

# Disconnect USB cable in case phone is connected to computer.
# Activate &quot;Show root filesystem&quot; '''AND''' &quot;Show hidden files&quot; in Filebox settings menu.
# Navigate to folder
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# You should see a file similar to
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Select and copy it (long keypress)
# Navigate to
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:and paste the file here
# Close Filebox and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


====Terminal solution====

# Disconnect USB cable in case phone is connected to computer.
# Open your favourite terminal
# Type
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Close terminal and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


===Install a new wazapp build===
Download the deb file to your downloads folder (default: /home/user/MyDocs/Downloads/), then disconnect the phone from your computer (if previously connected by usb).
 devel-su
Type the root password (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(filename obviously is the name of your deb file)


===Kill / exit a stuck wazapp process===
 killall wazapp
 kill `pidof wazapp`


===Deleting your wazapp database===
'''Warning''': you will lose all chat history and messages!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Create a logfile for troubleshooting===
If developers asks for a log, you will send them one ;)

This is how it's done.

'''Note: wazapp must not be running!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Once you're done capturing your log, you can find it on your usb storage when connected to pc via usb.
Post it on [http://pastebin.com Pastebin], attach the logfile as txt to your post or send it to CepiPerez if asked.

===Autostart Wazapp on phone boot===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

===Completely purge Wazapp from your Nokia N9===
 devel-su
 {enter your password}
 apt-get --purge autoremove wazapp
 rm -rf /opt/waxmppplugin/
 exit
 rm -rf /home/user/.wazapp/
 Then reboot, &amp; then install new version (if wanted).

==Common errors and their solutions==

=== Stays Offline ===
 You need to open your phone Settings -&gt; Internet Connection -&gt; Switch on &quot;Allow background connections&quot;. Otherwise Wazapp doesn't detect connection to Internet.

=== Connection error===
Error Message:
 status shows &quot;Connecting…&quot; when Wazapp is running.
Solution:
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Registration fail-too-many error===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:

If you are already using dev versions, update to the [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], it should fix that issue. If not, follow the steps below:

# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open

=== Registration fail-too-recent:XXX===
Error Message:
 &quot;Failed. Server said: fail-too-recent:XXX&quot;
Solution:
There are various solutions for this situation
&lt;pre&gt;* You recently registered or logged in, please wait for about XXX minutes before trying to re-register.
* You are using multiple devices with the same number on WhatsApp. WhatsApp meant for one device per session. Please remove WhatsApp completely from your previous device and re-register after mentioned XXX minutes&lt;/pre&gt;

===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
 Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]
# Restart phone
# Start Wazapp

=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.

&lt;pre&gt;Possible solution thanx to fenix_86
1   Uninstall Wazapp
2   Reboot the phone
3   Remove (preferably rename) the folder .wazapp in home/user/...
4   Remove (preferably rename) the folder Wazapp in home/user/MyDocs..
5   Install the latest version of Wazapp
6   Reboot the phone
7   Launch Wazapp and syncronize contact list
8   Reboot the phone (incase standby icons are red squares)
9   Relaunch Wazapp
10  Delete the old renamed folders (renamed in steps 3 and 4)&lt;/pre&gt;

=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
 CepiPerez dev builds don't include language files other than English, even though other languages are visible in the settings menu. However, if you want to use a language other than English in &quot;development&quot; builds, follow these directions: http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
 You need to receive a voice recording from your contact fist.

=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
 This is expected and that is how it works in WhatsApp official client.

=== No conversation bubble notification for one message ===

 As per [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], developer [http://forums.internettablettalk.com/showpost.php?p=1290257&amp;postcount=6946 said that] this is how it will work. 

[[Category:N9]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wazapp</title>
    <id>5247</id>
    <revision>
      <id>50690</id>
      <timestamp>2012-11-06T09:52:15Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <minor/>
      <comment>added danish</comment>
      <text xml:space="preserve">= About Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Wazapp logo created by [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp is an IM application for N9 that allows you to chat with your Whatsapp buddies.
Wazapp consists of 2 parts, the IM application (wazapp), which is in Python, and the accounts plugin (waxmppplugin) in C++. The accounts plugin should be rewritten in python soon.

Despite thousands of Nokia N9 users signing an online petition, WhatsApp Inc. ignored all demands for releasing a version for the MeeGo. Tarek Galal released the first version of Wazapp for public beta testing on May 18, 2012. On May 25, 2012 Wazapp was made open source on GitHub. As of September 2012, Wazapp supports almost all features of the official WhatsApp client and languages (see features and languages comparison below).

The source code can be [https://github.com/tgalal/wazapp obtained from github].

* Official homepage: http://www.wazapp.im
* Contact: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp in action==

A tribute to our heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] and [http://talk.maemo.org/member.php?u=59645 knobtviker] for the beautiful UI and full emoji support!

&lt;gallery&gt;
Image:Wazapp-loading.png|Loading screen
Image:Wazapp-main.png|Main screen
Image:Wazapp-conversation.png|Normal chat
Image:Wazapp-main-messages-pending.png|Unread messages
Image:Wazapp-group-create.png|Create group
Image:Wazapp-group-chat.png|Group chat
Image:Wazapp-synching-contacts.png|Contact synchronisation
Image:Wazapp-settings-01.png|Misc options
Image:Wazapp-settings-02.png|Theme and orientation
Image:Wazapp-settings-03.png|Notification
Image:Wazapp-settings-04.png|Profile setup
Image:Wazapp-settings-05-credits.png|About
&lt;/gallery&gt;

==Feature comparison==

{| class=&quot;wikitable mw-datatable&quot;
! Feature !! Original WhatsApp !! Wazapp
|-
| Chat
| x
| x
|-
| Group Chat
| x
| x
|-
| Location sharing
| x
| x
|-
| Media sharing
| x
| x
|-
| Exchange contacts
| x
| x
|-
| Broadcast messages
| x
| not yet, [https://github.com/tgalal/wazapp/issues/114 see GitHub issue]
|-
| Broadcast media
| x
| not yet
|-
| Chat history
| x
| x
|-
| Message timestamps
| x
| x
|-
| Profile picture
| x
| x
|-
| Status update
| x
| x
|-
| IOS 6 Emoji (846)
| x
| x
|-
| Contact synchronisation
| x
| x
|-
| Account registration
| x
| x
|-
| Resize images before sending
| x
| x
|-
| Landscape mode
| x
| x
|-
| Change language
| no
| '''x'''
|-
| Custom theme colours
| x
| x
|-
| Custom background
| x
| x
|-
| Custom notification sounds
| x
| x
|-
| Block contacts
| x
| x
|-
| Audio recording
| x
| x
|-
| Push notifications
| x
| x
|-
| Daily database backup (7 days total)
| x
| work in progress
|-
| No international charges
| x
| x
|-
| User interface
| ''good''
| '''''awesome ;)'''''
|-
| Price
| ''$0.99''
| '''''free'''''
|-
| License
| ''proprietary (closed source)''
| '''''open source (GNU GPL)'''''
|-
|}

==Supported Languages==

Big thanks to all translators on [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Language !! Original WhatsApp !! Wazapp
|-
| Albanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabic
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Basque (Spain)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Bulgarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalan
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chinese
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chinese (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chinese (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croatian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Czech
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danish
| x
| [https://www.transifex.com/projects/p/wazapp/language/da/ x]
|-
| Dutch
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| English (United Kingdom)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| English (United States)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonian
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ x]
|-
| Finnish
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| French (France)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| French (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| German (Germany)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| German (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Greek
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebrew
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindi
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Hungarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ x]
|-
| Indonesian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Italian
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japanese
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Korean
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Macedonian
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malay
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Norwegian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Persian
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polish
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ x]
|-
| Portuguese (Brazil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portuguese (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Romanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Russian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Slovak
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Spanish (Spain)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Spanish (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Spanish (Mexico)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Swedish (Finland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Swedish (Sweden)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Thai
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turkish
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ukrainian
| x
| [https://www.transifex.com/projects/p/wazapp/language/uk_UA/ x]
|-
| Urdu
| no
| [https://www.transifex.com/projects/p/wazapp/language/ur/ x]
|-
| Vietnamese
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Latest Upstream build ==
[[Image:Qr.png|thumb|86px|QR-Code]]
The latest wazapp version is 0.9.12
* Download deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Source: https://github.com/tgalal/wazapp/zipball/0.9.12
* Changelog: http://wazapp.im/changelog
&lt;br style=&quot;clear:both&quot;/&gt;
[[Image:QR_nightly_0.9.12~nightly_05112012.png|thumb|86px|QR-Nightly]]
Below is the latest nightly build by [http://talk.maemo.org/showpost.php?p=1290731&amp;postcount=7154 developer].
* Download nightly deb: https://dl.dropbox.com/u/26659227/harmattan/wazapp/wazapp_0.9.12~nightly_05112012_armel.deb
* Changelog: 
&lt;pre&gt;* Translations
* Better performance with background image selected
* Emoji pressAndHold add new emoji without closing dialog
* Can show yourself in contacts
* Recent tab in emoji dialog
* Bubble colors selector in settings
* Another splash screen (Cepi asked to change it)
* Small changes &lt;/pre&gt;
&lt;br style=&quot;clear:both&quot;/&gt;

==Suitable terminals for N9==

You do not need developer mode enabled in order to be able to have a terminal.
Typing this will add terminal to your apps permanently, even when not in developer mode:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Suitable terminals are (non exclusive list):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Terminal commands==

===Enter superuser / root mode===
 devel-su
Type the root password (default: '''rootme''')

''Note: The cursor will not move when you are typing the password, it is normal.''

===How to backup your Wazapp database===
This should be done prior to anything else. Just in case things get bad (and they will sooner or later).


====GUI solution====

# Disconnect USB cable in case phone is connected to computer.
# Activate &quot;Show root filesystem&quot; '''AND''' &quot;Show hidden files&quot; in Filebox settings menu.
# Navigate to folder
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# You should see a file similar to
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Select and copy it (long keypress)
# Navigate to
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:and paste the file here
# Close Filebox and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


====Terminal solution====

# Disconnect USB cable in case phone is connected to computer.
# Open your favourite terminal
# Type
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Close terminal and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


===Install a new wazapp build===
Download the deb file to your downloads folder (default: /home/user/MyDocs/Downloads/), then disconnect the phone from your computer (if previously connected by usb).
 devel-su
Type the root password (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(filename obviously is the name of your deb file)


===Kill / exit a stuck wazapp process===
 killall wazapp
 kill `pidof wazapp`


===Deleting your wazapp database===
'''Warning''': you will lose all chat history and messages!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Create a logfile for troubleshooting===
If developers asks for a log, you will send them one ;)

This is how it's done.

'''Note: wazapp must not be running!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Once you're done capturing your log, you can find it on your usb storage when connected to pc via usb.
Post it on [http://pastebin.com Pastebin], attach the logfile as txt to your post or send it to CepiPerez if asked.

===Autostart Wazapp on phone boot===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

===Completely purge Wazapp from your Nokia N9===
 devel-su
 {enter your password}
 apt-get --purge autoremove wazapp
 rm -rf /opt/waxmppplugin/
 exit
 rm -rf /home/user/.wazapp/
 Then reboot, &amp; then install new version (if wanted).

==Common errors and their solutions==

=== Stays Offline ===
 You need to open your phone Settings -&gt; Internet Connection -&gt; Switch on &quot;Allow background connections&quot;. Otherwise Wazapp doesn't detect connection to Internet.

=== Connection error===
Error Message:
 status shows &quot;Connecting…&quot; when Wazapp is running.
Solution:
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Registration fail-too-many error===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:

If you are already using dev versions, update to the [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], it should fix that issue. If not, follow the steps below:

# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open

=== Registration fail-too-recent:XXX===
Error Message:
 &quot;Failed. Server said: fail-too-recent:XXX&quot;
Solution:
There are various solutions for this situation
&lt;pre&gt;* You recently registered or logged in, please wait for about XXX minutes before trying to re-register.
* You are using multiple devices with the same number on WhatsApp. WhatsApp meant for one device per session. Please remove WhatsApp completely from your previous device and re-register after mentioned XXX minutes&lt;/pre&gt;

===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
 Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]
# Restart phone
# Start Wazapp

=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.

&lt;pre&gt;Possible solution thanx to fenix_86
1   Uninstall Wazapp
2   Reboot the phone
3   Remove (preferably rename) the folder .wazapp in home/user/...
4   Remove (preferably rename) the folder Wazapp in home/user/MyDocs..
5   Install the latest version of Wazapp
6   Reboot the phone
7   Launch Wazapp and syncronize contact list
8   Reboot the phone (incase standby icons are red squares)
9   Relaunch Wazapp
10  Delete the old renamed folders (renamed in steps 3 and 4)&lt;/pre&gt;

=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
 CepiPerez dev builds don't include language files other than English, even though other languages are visible in the settings menu. However, if you want to use a language other than English in &quot;development&quot; builds, follow these directions: http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
 You need to receive a voice recording from your contact fist.

=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
 This is expected and that is how it works in WhatsApp official client.

=== No conversation bubble notification for one message ===

 As per [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], developer [http://forums.internettablettalk.com/showpost.php?p=1290257&amp;postcount=6946 said that] this is how it will work. 

[[Category:N9]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wazapp</title>
    <id>5247</id>
    <revision>
      <id>50690</id>
      <timestamp>2012-11-06T09:52:15Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <minor/>
      <comment>added danish</comment>
      <text xml:space="preserve">= About Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Wazapp logo created by [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp is an IM application for N9 that allows you to chat with your Whatsapp buddies.
Wazapp consists of 2 parts, the IM application (wazapp), which is in Python, and the accounts plugin (waxmppplugin) in C++. The accounts plugin should be rewritten in python soon.

Despite thousands of Nokia N9 users signing an online petition, WhatsApp Inc. ignored all demands for releasing a version for the MeeGo. Tarek Galal released the first version of Wazapp for public beta testing on May 18, 2012. On May 25, 2012 Wazapp was made open source on GitHub. As of September 2012, Wazapp supports almost all features of the official WhatsApp client and languages (see features and languages comparison below).

The source code can be [https://github.com/tgalal/wazapp obtained from github].

* Official homepage: http://www.wazapp.im
* Contact: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp in action==

A tribute to our heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] and [http://talk.maemo.org/member.php?u=59645 knobtviker] for the beautiful UI and full emoji support!

&lt;gallery&gt;
Image:Wazapp-loading.png|Loading screen
Image:Wazapp-main.png|Main screen
Image:Wazapp-conversation.png|Normal chat
Image:Wazapp-main-messages-pending.png|Unread messages
Image:Wazapp-group-create.png|Create group
Image:Wazapp-group-chat.png|Group chat
Image:Wazapp-synching-contacts.png|Contact synchronisation
Image:Wazapp-settings-01.png|Misc options
Image:Wazapp-settings-02.png|Theme and orientation
Image:Wazapp-settings-03.png|Notification
Image:Wazapp-settings-04.png|Profile setup
Image:Wazapp-settings-05-credits.png|About
&lt;/gallery&gt;

==Feature comparison==

{| class=&quot;wikitable mw-datatable&quot;
! Feature !! Original WhatsApp !! Wazapp
|-
| Chat
| x
| x
|-
| Group Chat
| x
| x
|-
| Location sharing
| x
| x
|-
| Media sharing
| x
| x
|-
| Exchange contacts
| x
| x
|-
| Broadcast messages
| x
| not yet, [https://github.com/tgalal/wazapp/issues/114 see GitHub issue]
|-
| Broadcast media
| x
| not yet
|-
| Chat history
| x
| x
|-
| Message timestamps
| x
| x
|-
| Profile picture
| x
| x
|-
| Status update
| x
| x
|-
| IOS 6 Emoji (846)
| x
| x
|-
| Contact synchronisation
| x
| x
|-
| Account registration
| x
| x
|-
| Resize images before sending
| x
| x
|-
| Landscape mode
| x
| x
|-
| Change language
| no
| '''x'''
|-
| Custom theme colours
| x
| x
|-
| Custom background
| x
| x
|-
| Custom notification sounds
| x
| x
|-
| Block contacts
| x
| x
|-
| Audio recording
| x
| x
|-
| Push notifications
| x
| x
|-
| Daily database backup (7 days total)
| x
| work in progress
|-
| No international charges
| x
| x
|-
| User interface
| ''good''
| '''''awesome ;)'''''
|-
| Price
| ''$0.99''
| '''''free'''''
|-
| License
| ''proprietary (closed source)''
| '''''open source (GNU GPL)'''''
|-
|}

==Supported Languages==

Big thanks to all translators on [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Language !! Original WhatsApp !! Wazapp
|-
| Albanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabic
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Basque (Spain)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Bulgarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalan
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chinese
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chinese (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chinese (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croatian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Czech
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danish
| x
| [https://www.transifex.com/projects/p/wazapp/language/da/ x]
|-
| Dutch
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| English (United Kingdom)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| English (United States)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonian
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ x]
|-
| Finnish
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| French (France)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| French (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| German (Germany)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| German (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Greek
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebrew
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindi
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Hungarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ x]
|-
| Indonesian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Italian
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japanese
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Korean
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Macedonian
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malay
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Norwegian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Persian
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polish
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ x]
|-
| Portuguese (Brazil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portuguese (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Romanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Russian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Slovak
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Spanish (Spain)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Spanish (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Spanish (Mexico)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Swedish (Finland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Swedish (Sweden)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Thai
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turkish
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ukrainian
| x
| [https://www.transifex.com/projects/p/wazapp/language/uk_UA/ x]
|-
| Urdu
| no
| [https://www.transifex.com/projects/p/wazapp/language/ur/ x]
|-
| Vietnamese
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Latest Upstream build ==
[[Image:Qr.png|thumb|86px|QR-Code]]
The latest wazapp version is 0.9.12
* Download deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Source: https://github.com/tgalal/wazapp/zipball/0.9.12
* Changelog: http://wazapp.im/changelog
&lt;br style=&quot;clear:both&quot;/&gt;
[[Image:QR_nightly_0.9.12~nightly_05112012.png|thumb|86px|QR-Nightly]]
Below is the latest nightly build by [http://talk.maemo.org/showpost.php?p=1290731&amp;postcount=7154 developer].
* Download nightly deb: https://dl.dropbox.com/u/26659227/harmattan/wazapp/wazapp_0.9.12~nightly_05112012_armel.deb
* Changelog: 
&lt;pre&gt;* Translations
* Better performance with background image selected
* Emoji pressAndHold add new emoji without closing dialog
* Can show yourself in contacts
* Recent tab in emoji dialog
* Bubble colors selector in settings
* Another splash screen (Cepi asked to change it)
* Small changes &lt;/pre&gt;
&lt;br style=&quot;clear:both&quot;/&gt;

==Suitable terminals for N9==

You do not need developer mode enabled in order to be able to have a terminal.
Typing this will add terminal to your apps permanently, even when not in developer mode:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Suitable terminals are (non exclusive list):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Terminal commands==

===Enter superuser / root mode===
 devel-su
Type the root password (default: '''rootme''')

''Note: The cursor will not move when you are typing the password, it is normal.''

===How to backup your Wazapp database===
This should be done prior to anything else. Just in case things get bad (and they will sooner or later).


====GUI solution====

# Disconnect USB cable in case phone is connected to computer.
# Activate &quot;Show root filesystem&quot; '''AND''' &quot;Show hidden files&quot; in Filebox settings menu.
# Navigate to folder
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# You should see a file similar to
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Select and copy it (long keypress)
# Navigate to
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:and paste the file here
# Close Filebox and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


====Terminal solution====

# Disconnect USB cable in case phone is connected to computer.
# Open your favourite terminal
# Type
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Close terminal and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


===Install a new wazapp build===
Download the deb file to your downloads folder (default: /home/user/MyDocs/Downloads/), then disconnect the phone from your computer (if previously connected by usb).
 devel-su
Type the root password (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(filename obviously is the name of your deb file)


===Kill / exit a stuck wazapp process===
 killall wazapp
 kill `pidof wazapp`


===Deleting your wazapp database===
'''Warning''': you will lose all chat history and messages!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Create a logfile for troubleshooting===
If developers asks for a log, you will send them one ;)

This is how it's done.

'''Note: wazapp must not be running!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Once you're done capturing your log, you can find it on your usb storage when connected to pc via usb.
Post it on [http://pastebin.com Pastebin], attach the logfile as txt to your post or send it to CepiPerez if asked.

===Autostart Wazapp on phone boot===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

===Completely purge Wazapp from your Nokia N9===
 devel-su
 {enter your password}
 apt-get --purge autoremove wazapp
 rm -rf /opt/waxmppplugin/
 exit
 rm -rf /home/user/.wazapp/
 Then reboot, &amp; then install new version (if wanted).

==Common errors and their solutions==

=== Stays Offline ===
 You need to open your phone Settings -&gt; Internet Connection -&gt; Switch on &quot;Allow background connections&quot;. Otherwise Wazapp doesn't detect connection to Internet.

=== Connection error===
Error Message:
 status shows &quot;Connecting…&quot; when Wazapp is running.
Solution:
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Registration fail-too-many error===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:

If you are already using dev versions, update to the [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], it should fix that issue. If not, follow the steps below:

# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open

=== Registration fail-too-recent:XXX===
Error Message:
 &quot;Failed. Server said: fail-too-recent:XXX&quot;
Solution:
There are various solutions for this situation
&lt;pre&gt;* You recently registered or logged in, please wait for about XXX minutes before trying to re-register.
* You are using multiple devices with the same number on WhatsApp. WhatsApp meant for one device per session. Please remove WhatsApp completely from your previous device and re-register after mentioned XXX minutes&lt;/pre&gt;

===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
 Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]
# Restart phone
# Start Wazapp

=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.

&lt;pre&gt;Possible solution thanx to fenix_86
1   Uninstall Wazapp
2   Reboot the phone
3   Remove (preferably rename) the folder .wazapp in home/user/...
4   Remove (preferably rename) the folder Wazapp in home/user/MyDocs..
5   Install the latest version of Wazapp
6   Reboot the phone
7   Launch Wazapp and syncronize contact list
8   Reboot the phone (incase standby icons are red squares)
9   Relaunch Wazapp
10  Delete the old renamed folders (renamed in steps 3 and 4)&lt;/pre&gt;

=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
 CepiPerez dev builds don't include language files other than English, even though other languages are visible in the settings menu. However, if you want to use a language other than English in &quot;development&quot; builds, follow these directions: http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
 You need to receive a voice recording from your contact fist.

=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
 This is expected and that is how it works in WhatsApp official client.

=== No conversation bubble notification for one message ===

 As per [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], developer [http://forums.internettablettalk.com/showpost.php?p=1290257&amp;postcount=6946 said that] this is how it will work. 

[[Category:N9]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wazapp</title>
    <id>5247</id>
    <revision>
      <id>50690</id>
      <timestamp>2012-11-06T09:52:15Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <minor/>
      <comment>added danish</comment>
      <text xml:space="preserve">= About Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Wazapp logo created by [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp is an IM application for N9 that allows you to chat with your Whatsapp buddies.
Wazapp consists of 2 parts, the IM application (wazapp), which is in Python, and the accounts plugin (waxmppplugin) in C++. The accounts plugin should be rewritten in python soon.

Despite thousands of Nokia N9 users signing an online petition, WhatsApp Inc. ignored all demands for releasing a version for the MeeGo. Tarek Galal released the first version of Wazapp for public beta testing on May 18, 2012. On May 25, 2012 Wazapp was made open source on GitHub. As of September 2012, Wazapp supports almost all features of the official WhatsApp client and languages (see features and languages comparison below).

The source code can be [https://github.com/tgalal/wazapp obtained from github].

* Official homepage: http://www.wazapp.im
* Contact: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp in action==

A tribute to our heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] and [http://talk.maemo.org/member.php?u=59645 knobtviker] for the beautiful UI and full emoji support!

&lt;gallery&gt;
Image:Wazapp-loading.png|Loading screen
Image:Wazapp-main.png|Main screen
Image:Wazapp-conversation.png|Normal chat
Image:Wazapp-main-messages-pending.png|Unread messages
Image:Wazapp-group-create.png|Create group
Image:Wazapp-group-chat.png|Group chat
Image:Wazapp-synching-contacts.png|Contact synchronisation
Image:Wazapp-settings-01.png|Misc options
Image:Wazapp-settings-02.png|Theme and orientation
Image:Wazapp-settings-03.png|Notification
Image:Wazapp-settings-04.png|Profile setup
Image:Wazapp-settings-05-credits.png|About
&lt;/gallery&gt;

==Feature comparison==

{| class=&quot;wikitable mw-datatable&quot;
! Feature !! Original WhatsApp !! Wazapp
|-
| Chat
| x
| x
|-
| Group Chat
| x
| x
|-
| Location sharing
| x
| x
|-
| Media sharing
| x
| x
|-
| Exchange contacts
| x
| x
|-
| Broadcast messages
| x
| not yet, [https://github.com/tgalal/wazapp/issues/114 see GitHub issue]
|-
| Broadcast media
| x
| not yet
|-
| Chat history
| x
| x
|-
| Message timestamps
| x
| x
|-
| Profile picture
| x
| x
|-
| Status update
| x
| x
|-
| IOS 6 Emoji (846)
| x
| x
|-
| Contact synchronisation
| x
| x
|-
| Account registration
| x
| x
|-
| Resize images before sending
| x
| x
|-
| Landscape mode
| x
| x
|-
| Change language
| no
| '''x'''
|-
| Custom theme colours
| x
| x
|-
| Custom background
| x
| x
|-
| Custom notification sounds
| x
| x
|-
| Block contacts
| x
| x
|-
| Audio recording
| x
| x
|-
| Push notifications
| x
| x
|-
| Daily database backup (7 days total)
| x
| work in progress
|-
| No international charges
| x
| x
|-
| User interface
| ''good''
| '''''awesome ;)'''''
|-
| Price
| ''$0.99''
| '''''free'''''
|-
| License
| ''proprietary (closed source)''
| '''''open source (GNU GPL)'''''
|-
|}

==Supported Languages==

Big thanks to all translators on [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Language !! Original WhatsApp !! Wazapp
|-
| Albanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabic
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Basque (Spain)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Bulgarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalan
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chinese
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chinese (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chinese (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croatian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Czech
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danish
| x
| [https://www.transifex.com/projects/p/wazapp/language/da/ x]
|-
| Dutch
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| English (United Kingdom)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| English (United States)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonian
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ x]
|-
| Finnish
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| French (France)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| French (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| German (Germany)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| German (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Greek
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebrew
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindi
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Hungarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ x]
|-
| Indonesian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Italian
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japanese
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Korean
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Macedonian
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malay
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Norwegian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Persian
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polish
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ x]
|-
| Portuguese (Brazil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portuguese (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Romanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Russian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Slovak
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Spanish (Spain)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Spanish (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Spanish (Mexico)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Swedish (Finland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Swedish (Sweden)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Thai
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turkish
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ukrainian
| x
| [https://www.transifex.com/projects/p/wazapp/language/uk_UA/ x]
|-
| Urdu
| no
| [https://www.transifex.com/projects/p/wazapp/language/ur/ x]
|-
| Vietnamese
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Latest Upstream build ==
[[Image:Qr.png|thumb|86px|QR-Code]]
The latest wazapp version is 0.9.12
* Download deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Source: https://github.com/tgalal/wazapp/zipball/0.9.12
* Changelog: http://wazapp.im/changelog
&lt;br style=&quot;clear:both&quot;/&gt;
[[Image:QR_nightly_0.9.12~nightly_05112012.png|thumb|86px|QR-Nightly]]
Below is the latest nightly build by [http://talk.maemo.org/showpost.php?p=1290731&amp;postcount=7154 developer].
* Download nightly deb: https://dl.dropbox.com/u/26659227/harmattan/wazapp/wazapp_0.9.12~nightly_05112012_armel.deb
* Changelog: 
&lt;pre&gt;* Translations
* Better performance with background image selected
* Emoji pressAndHold add new emoji without closing dialog
* Can show yourself in contacts
* Recent tab in emoji dialog
* Bubble colors selector in settings
* Another splash screen (Cepi asked to change it)
* Small changes &lt;/pre&gt;
&lt;br style=&quot;clear:both&quot;/&gt;

==Suitable terminals for N9==

You do not need developer mode enabled in order to be able to have a terminal.
Typing this will add terminal to your apps permanently, even when not in developer mode:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Suitable terminals are (non exclusive list):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Terminal commands==

===Enter superuser / root mode===
 devel-su
Type the root password (default: '''rootme''')

''Note: The cursor will not move when you are typing the password, it is normal.''

===How to backup your Wazapp database===
This should be done prior to anything else. Just in case things get bad (and they will sooner or later).


====GUI solution====

# Disconnect USB cable in case phone is connected to computer.
# Activate &quot;Show root filesystem&quot; '''AND''' &quot;Show hidden files&quot; in Filebox settings menu.
# Navigate to folder
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# You should see a file similar to
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Select and copy it (long keypress)
# Navigate to
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:and paste the file here
# Close Filebox and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


====Terminal solution====

# Disconnect USB cable in case phone is connected to computer.
# Open your favourite terminal
# Type
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Close terminal and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


===Install a new wazapp build===
Download the deb file to your downloads folder (default: /home/user/MyDocs/Downloads/), then disconnect the phone from your computer (if previously connected by usb).
 devel-su
Type the root password (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(filename obviously is the name of your deb file)


===Kill / exit a stuck wazapp process===
 killall wazapp
 kill `pidof wazapp`


===Deleting your wazapp database===
'''Warning''': you will lose all chat history and messages!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Create a logfile for troubleshooting===
If developers asks for a log, you will send them one ;)

This is how it's done.

'''Note: wazapp must not be running!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Once you're done capturing your log, you can find it on your usb storage when connected to pc via usb.
Post it on [http://pastebin.com Pastebin], attach the logfile as txt to your post or send it to CepiPerez if asked.

===Autostart Wazapp on phone boot===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

===Completely purge Wazapp from your Nokia N9===
 devel-su
 {enter your password}
 apt-get --purge autoremove wazapp
 rm -rf /opt/waxmppplugin/
 exit
 rm -rf /home/user/.wazapp/
 Then reboot, &amp; then install new version (if wanted).

==Common errors and their solutions==

=== Stays Offline ===
 You need to open your phone Settings -&gt; Internet Connection -&gt; Switch on &quot;Allow background connections&quot;. Otherwise Wazapp doesn't detect connection to Internet.

=== Connection error===
Error Message:
 status shows &quot;Connecting…&quot; when Wazapp is running.
Solution:
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Registration fail-too-many error===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:

If you are already using dev versions, update to the [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], it should fix that issue. If not, follow the steps below:

# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open

=== Registration fail-too-recent:XXX===
Error Message:
 &quot;Failed. Server said: fail-too-recent:XXX&quot;
Solution:
There are various solutions for this situation
&lt;pre&gt;* You recently registered or logged in, please wait for about XXX minutes before trying to re-register.
* You are using multiple devices with the same number on WhatsApp. WhatsApp meant for one device per session. Please remove WhatsApp completely from your previous device and re-register after mentioned XXX minutes&lt;/pre&gt;

===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
 Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]
# Restart phone
# Start Wazapp

=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.

&lt;pre&gt;Possible solution thanx to fenix_86
1   Uninstall Wazapp
2   Reboot the phone
3   Remove (preferably rename) the folder .wazapp in home/user/...
4   Remove (preferably rename) the folder Wazapp in home/user/MyDocs..
5   Install the latest version of Wazapp
6   Reboot the phone
7   Launch Wazapp and syncronize contact list
8   Reboot the phone (incase standby icons are red squares)
9   Relaunch Wazapp
10  Delete the old renamed folders (renamed in steps 3 and 4)&lt;/pre&gt;

=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
 CepiPerez dev builds don't include language files other than English, even though other languages are visible in the settings menu. However, if you want to use a language other than English in &quot;development&quot; builds, follow these directions: http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
 You need to receive a voice recording from your contact fist.

=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
 This is expected and that is how it works in WhatsApp official client.

=== No conversation bubble notification for one message ===

 As per [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], developer [http://forums.internettablettalk.com/showpost.php?p=1290257&amp;postcount=6946 said that] this is how it will work. 

[[Category:N9]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wazapp</title>
    <id>5247</id>
    <revision>
      <id>50690</id>
      <timestamp>2012-11-06T09:52:15Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <minor/>
      <comment>added danish</comment>
      <text xml:space="preserve">= About Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Wazapp logo created by [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp is an IM application for N9 that allows you to chat with your Whatsapp buddies.
Wazapp consists of 2 parts, the IM application (wazapp), which is in Python, and the accounts plugin (waxmppplugin) in C++. The accounts plugin should be rewritten in python soon.

Despite thousands of Nokia N9 users signing an online petition, WhatsApp Inc. ignored all demands for releasing a version for the MeeGo. Tarek Galal released the first version of Wazapp for public beta testing on May 18, 2012. On May 25, 2012 Wazapp was made open source on GitHub. As of September 2012, Wazapp supports almost all features of the official WhatsApp client and languages (see features and languages comparison below).

The source code can be [https://github.com/tgalal/wazapp obtained from github].

* Official homepage: http://www.wazapp.im
* Contact: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp in action==

A tribute to our heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] and [http://talk.maemo.org/member.php?u=59645 knobtviker] for the beautiful UI and full emoji support!

&lt;gallery&gt;
Image:Wazapp-loading.png|Loading screen
Image:Wazapp-main.png|Main screen
Image:Wazapp-conversation.png|Normal chat
Image:Wazapp-main-messages-pending.png|Unread messages
Image:Wazapp-group-create.png|Create group
Image:Wazapp-group-chat.png|Group chat
Image:Wazapp-synching-contacts.png|Contact synchronisation
Image:Wazapp-settings-01.png|Misc options
Image:Wazapp-settings-02.png|Theme and orientation
Image:Wazapp-settings-03.png|Notification
Image:Wazapp-settings-04.png|Profile setup
Image:Wazapp-settings-05-credits.png|About
&lt;/gallery&gt;

==Feature comparison==

{| class=&quot;wikitable mw-datatable&quot;
! Feature !! Original WhatsApp !! Wazapp
|-
| Chat
| x
| x
|-
| Group Chat
| x
| x
|-
| Location sharing
| x
| x
|-
| Media sharing
| x
| x
|-
| Exchange contacts
| x
| x
|-
| Broadcast messages
| x
| not yet, [https://github.com/tgalal/wazapp/issues/114 see GitHub issue]
|-
| Broadcast media
| x
| not yet
|-
| Chat history
| x
| x
|-
| Message timestamps
| x
| x
|-
| Profile picture
| x
| x
|-
| Status update
| x
| x
|-
| IOS 6 Emoji (846)
| x
| x
|-
| Contact synchronisation
| x
| x
|-
| Account registration
| x
| x
|-
| Resize images before sending
| x
| x
|-
| Landscape mode
| x
| x
|-
| Change language
| no
| '''x'''
|-
| Custom theme colours
| x
| x
|-
| Custom background
| x
| x
|-
| Custom notification sounds
| x
| x
|-
| Block contacts
| x
| x
|-
| Audio recording
| x
| x
|-
| Push notifications
| x
| x
|-
| Daily database backup (7 days total)
| x
| work in progress
|-
| No international charges
| x
| x
|-
| User interface
| ''good''
| '''''awesome ;)'''''
|-
| Price
| ''$0.99''
| '''''free'''''
|-
| License
| ''proprietary (closed source)''
| '''''open source (GNU GPL)'''''
|-
|}

==Supported Languages==

Big thanks to all translators on [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Language !! Original WhatsApp !! Wazapp
|-
| Albanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabic
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Basque (Spain)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Bulgarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalan
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chinese
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chinese (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chinese (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croatian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Czech
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danish
| x
| [https://www.transifex.com/projects/p/wazapp/language/da/ x]
|-
| Dutch
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| English (United Kingdom)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| English (United States)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonian
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ x]
|-
| Finnish
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| French (France)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| French (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| German (Germany)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| German (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Greek
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebrew
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindi
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Hungarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ x]
|-
| Indonesian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Italian
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japanese
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Korean
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Macedonian
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malay
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Norwegian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Persian
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polish
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ x]
|-
| Portuguese (Brazil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portuguese (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Romanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Russian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Slovak
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Spanish (Spain)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Spanish (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Spanish (Mexico)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Swedish (Finland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Swedish (Sweden)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Thai
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turkish
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ukrainian
| x
| [https://www.transifex.com/projects/p/wazapp/language/uk_UA/ x]
|-
| Urdu
| no
| [https://www.transifex.com/projects/p/wazapp/language/ur/ x]
|-
| Vietnamese
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Latest Upstream build ==
[[Image:Qr.png|thumb|86px|QR-Code]]
The latest wazapp version is 0.9.12
* Download deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Source: https://github.com/tgalal/wazapp/zipball/0.9.12
* Changelog: http://wazapp.im/changelog
&lt;br style=&quot;clear:both&quot;/&gt;
[[Image:QR_nightly_0.9.12~nightly_05112012.png|thumb|86px|QR-Nightly]]
Below is the latest nightly build by [http://talk.maemo.org/showpost.php?p=1290731&amp;postcount=7154 developer].
* Download nightly deb: https://dl.dropbox.com/u/26659227/harmattan/wazapp/wazapp_0.9.12~nightly_05112012_armel.deb
* Changelog: 
&lt;pre&gt;* Translations
* Better performance with background image selected
* Emoji pressAndHold add new emoji without closing dialog
* Can show yourself in contacts
* Recent tab in emoji dialog
* Bubble colors selector in settings
* Another splash screen (Cepi asked to change it)
* Small changes &lt;/pre&gt;
&lt;br style=&quot;clear:both&quot;/&gt;

==Suitable terminals for N9==

You do not need developer mode enabled in order to be able to have a terminal.
Typing this will add terminal to your apps permanently, even when not in developer mode:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Suitable terminals are (non exclusive list):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Terminal commands==

===Enter superuser / root mode===
 devel-su
Type the root password (default: '''rootme''')

''Note: The cursor will not move when you are typing the password, it is normal.''

===How to backup your Wazapp database===
This should be done prior to anything else. Just in case things get bad (and they will sooner or later).


====GUI solution====

# Disconnect USB cable in case phone is connected to computer.
# Activate &quot;Show root filesystem&quot; '''AND''' &quot;Show hidden files&quot; in Filebox settings menu.
# Navigate to folder
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# You should see a file similar to
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Select and copy it (long keypress)
# Navigate to
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:and paste the file here
# Close Filebox and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


====Terminal solution====

# Disconnect USB cable in case phone is connected to computer.
# Open your favourite terminal
# Type
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Close terminal and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


===Install a new wazapp build===
Download the deb file to your downloads folder (default: /home/user/MyDocs/Downloads/), then disconnect the phone from your computer (if previously connected by usb).
 devel-su
Type the root password (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(filename obviously is the name of your deb file)


===Kill / exit a stuck wazapp process===
 killall wazapp
 kill `pidof wazapp`


===Deleting your wazapp database===
'''Warning''': you will lose all chat history and messages!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Create a logfile for troubleshooting===
If developers asks for a log, you will send them one ;)

This is how it's done.

'''Note: wazapp must not be running!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Once you're done capturing your log, you can find it on your usb storage when connected to pc via usb.
Post it on [http://pastebin.com Pastebin], attach the logfile as txt to your post or send it to CepiPerez if asked.

===Autostart Wazapp on phone boot===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

===Completely purge Wazapp from your Nokia N9===
 devel-su
 {enter your password}
 apt-get --purge autoremove wazapp
 rm -rf /opt/waxmppplugin/
 exit
 rm -rf /home/user/.wazapp/
 Then reboot, &amp; then install new version (if wanted).

==Common errors and their solutions==

=== Stays Offline ===
 You need to open your phone Settings -&gt; Internet Connection -&gt; Switch on &quot;Allow background connections&quot;. Otherwise Wazapp doesn't detect connection to Internet.

=== Connection error===
Error Message:
 status shows &quot;Connecting…&quot; when Wazapp is running.
Solution:
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Registration fail-too-many error===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:

If you are already using dev versions, update to the [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], it should fix that issue. If not, follow the steps below:

# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open

=== Registration fail-too-recent:XXX===
Error Message:
 &quot;Failed. Server said: fail-too-recent:XXX&quot;
Solution:
There are various solutions for this situation
&lt;pre&gt;* You recently registered or logged in, please wait for about XXX minutes before trying to re-register.
* You are using multiple devices with the same number on WhatsApp. WhatsApp meant for one device per session. Please remove WhatsApp completely from your previous device and re-register after mentioned XXX minutes&lt;/pre&gt;

===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
 Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]
# Restart phone
# Start Wazapp

=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.

&lt;pre&gt;Possible solution thanx to fenix_86
1   Uninstall Wazapp
2   Reboot the phone
3   Remove (preferably rename) the folder .wazapp in home/user/...
4   Remove (preferably rename) the folder Wazapp in home/user/MyDocs..
5   Install the latest version of Wazapp
6   Reboot the phone
7   Launch Wazapp and syncronize contact list
8   Reboot the phone (incase standby icons are red squares)
9   Relaunch Wazapp
10  Delete the old renamed folders (renamed in steps 3 and 4)&lt;/pre&gt;

=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
 CepiPerez dev builds don't include language files other than English, even though other languages are visible in the settings menu. However, if you want to use a language other than English in &quot;development&quot; builds, follow these directions: http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
 You need to receive a voice recording from your contact fist.

=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
 This is expected and that is how it works in WhatsApp official client.

=== No conversation bubble notification for one message ===

 As per [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], developer [http://forums.internettablettalk.com/showpost.php?p=1290257&amp;postcount=6946 said that] this is how it will work. 

[[Category:N9]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wazapp</title>
    <id>5247</id>
    <revision>
      <id>50690</id>
      <timestamp>2012-11-06T09:52:15Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <minor/>
      <comment>added danish</comment>
      <text xml:space="preserve">= About Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Wazapp logo created by [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp is an IM application for N9 that allows you to chat with your Whatsapp buddies.
Wazapp consists of 2 parts, the IM application (wazapp), which is in Python, and the accounts plugin (waxmppplugin) in C++. The accounts plugin should be rewritten in python soon.

Despite thousands of Nokia N9 users signing an online petition, WhatsApp Inc. ignored all demands for releasing a version for the MeeGo. Tarek Galal released the first version of Wazapp for public beta testing on May 18, 2012. On May 25, 2012 Wazapp was made open source on GitHub. As of September 2012, Wazapp supports almost all features of the official WhatsApp client and languages (see features and languages comparison below).

The source code can be [https://github.com/tgalal/wazapp obtained from github].

* Official homepage: http://www.wazapp.im
* Contact: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp in action==

A tribute to our heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] and [http://talk.maemo.org/member.php?u=59645 knobtviker] for the beautiful UI and full emoji support!

&lt;gallery&gt;
Image:Wazapp-loading.png|Loading screen
Image:Wazapp-main.png|Main screen
Image:Wazapp-conversation.png|Normal chat
Image:Wazapp-main-messages-pending.png|Unread messages
Image:Wazapp-group-create.png|Create group
Image:Wazapp-group-chat.png|Group chat
Image:Wazapp-synching-contacts.png|Contact synchronisation
Image:Wazapp-settings-01.png|Misc options
Image:Wazapp-settings-02.png|Theme and orientation
Image:Wazapp-settings-03.png|Notification
Image:Wazapp-settings-04.png|Profile setup
Image:Wazapp-settings-05-credits.png|About
&lt;/gallery&gt;

==Feature comparison==

{| class=&quot;wikitable mw-datatable&quot;
! Feature !! Original WhatsApp !! Wazapp
|-
| Chat
| x
| x
|-
| Group Chat
| x
| x
|-
| Location sharing
| x
| x
|-
| Media sharing
| x
| x
|-
| Exchange contacts
| x
| x
|-
| Broadcast messages
| x
| not yet, [https://github.com/tgalal/wazapp/issues/114 see GitHub issue]
|-
| Broadcast media
| x
| not yet
|-
| Chat history
| x
| x
|-
| Message timestamps
| x
| x
|-
| Profile picture
| x
| x
|-
| Status update
| x
| x
|-
| IOS 6 Emoji (846)
| x
| x
|-
| Contact synchronisation
| x
| x
|-
| Account registration
| x
| x
|-
| Resize images before sending
| x
| x
|-
| Landscape mode
| x
| x
|-
| Change language
| no
| '''x'''
|-
| Custom theme colours
| x
| x
|-
| Custom background
| x
| x
|-
| Custom notification sounds
| x
| x
|-
| Block contacts
| x
| x
|-
| Audio recording
| x
| x
|-
| Push notifications
| x
| x
|-
| Daily database backup (7 days total)
| x
| work in progress
|-
| No international charges
| x
| x
|-
| User interface
| ''good''
| '''''awesome ;)'''''
|-
| Price
| ''$0.99''
| '''''free'''''
|-
| License
| ''proprietary (closed source)''
| '''''open source (GNU GPL)'''''
|-
|}

==Supported Languages==

Big thanks to all translators on [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Language !! Original WhatsApp !! Wazapp
|-
| Albanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabic
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Basque (Spain)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Bulgarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalan
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chinese
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chinese (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chinese (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croatian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Czech
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danish
| x
| [https://www.transifex.com/projects/p/wazapp/language/da/ x]
|-
| Dutch
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| English (United Kingdom)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| English (United States)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonian
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ x]
|-
| Finnish
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| French (France)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| French (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| German (Germany)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| German (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Greek
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebrew
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindi
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Hungarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ x]
|-
| Indonesian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Italian
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japanese
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Korean
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Macedonian
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malay
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Norwegian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Persian
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polish
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ x]
|-
| Portuguese (Brazil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portuguese (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Romanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Russian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Slovak
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Spanish (Spain)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Spanish (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Spanish (Mexico)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Swedish (Finland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Swedish (Sweden)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Thai
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turkish
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ukrainian
| x
| [https://www.transifex.com/projects/p/wazapp/language/uk_UA/ x]
|-
| Urdu
| no
| [https://www.transifex.com/projects/p/wazapp/language/ur/ x]
|-
| Vietnamese
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Latest Upstream build ==
[[Image:Qr.png|thumb|86px|QR-Code]]
The latest wazapp version is 0.9.12
* Download deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Source: https://github.com/tgalal/wazapp/zipball/0.9.12
* Changelog: http://wazapp.im/changelog
&lt;br style=&quot;clear:both&quot;/&gt;
[[Image:QR_nightly_0.9.12~nightly_05112012.png|thumb|86px|QR-Nightly]]
Below is the latest nightly build by [http://talk.maemo.org/showpost.php?p=1290731&amp;postcount=7154 developer].
* Download nightly deb: https://dl.dropbox.com/u/26659227/harmattan/wazapp/wazapp_0.9.12~nightly_05112012_armel.deb
* Changelog: 
&lt;pre&gt;* Translations
* Better performance with background image selected
* Emoji pressAndHold add new emoji without closing dialog
* Can show yourself in contacts
* Recent tab in emoji dialog
* Bubble colors selector in settings
* Another splash screen (Cepi asked to change it)
* Small changes &lt;/pre&gt;
&lt;br style=&quot;clear:both&quot;/&gt;

==Suitable terminals for N9==

You do not need developer mode enabled in order to be able to have a terminal.
Typing this will add terminal to your apps permanently, even when not in developer mode:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Suitable terminals are (non exclusive list):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Terminal commands==

===Enter superuser / root mode===
 devel-su
Type the root password (default: '''rootme''')

''Note: The cursor will not move when you are typing the password, it is normal.''

===How to backup your Wazapp database===
This should be done prior to anything else. Just in case things get bad (and they will sooner or later).


====GUI solution====

# Disconnect USB cable in case phone is connected to computer.
# Activate &quot;Show root filesystem&quot; '''AND''' &quot;Show hidden files&quot; in Filebox settings menu.
# Navigate to folder
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# You should see a file similar to
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Select and copy it (long keypress)
# Navigate to
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:and paste the file here
# Close Filebox and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


====Terminal solution====

# Disconnect USB cable in case phone is connected to computer.
# Open your favourite terminal
# Type
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Close terminal and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


===Install a new wazapp build===
Download the deb file to your downloads folder (default: /home/user/MyDocs/Downloads/), then disconnect the phone from your computer (if previously connected by usb).
 devel-su
Type the root password (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(filename obviously is the name of your deb file)


===Kill / exit a stuck wazapp process===
 killall wazapp
 kill `pidof wazapp`


===Deleting your wazapp database===
'''Warning''': you will lose all chat history and messages!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Create a logfile for troubleshooting===
If developers asks for a log, you will send them one ;)

This is how it's done.

'''Note: wazapp must not be running!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Once you're done capturing your log, you can find it on your usb storage when connected to pc via usb.
Post it on [http://pastebin.com Pastebin], attach the logfile as txt to your post or send it to CepiPerez if asked.

===Autostart Wazapp on phone boot===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

===Completely purge Wazapp from your Nokia N9===
 devel-su
 {enter your password}
 apt-get --purge autoremove wazapp
 rm -rf /opt/waxmppplugin/
 exit
 rm -rf /home/user/.wazapp/
 Then reboot, &amp; then install new version (if wanted).

==Common errors and their solutions==

=== Stays Offline ===
 You need to open your phone Settings -&gt; Internet Connection -&gt; Switch on &quot;Allow background connections&quot;. Otherwise Wazapp doesn't detect connection to Internet.

=== Connection error===
Error Message:
 status shows &quot;Connecting…&quot; when Wazapp is running.
Solution:
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Registration fail-too-many error===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:

If you are already using dev versions, update to the [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], it should fix that issue. If not, follow the steps below:

# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open

=== Registration fail-too-recent:XXX===
Error Message:
 &quot;Failed. Server said: fail-too-recent:XXX&quot;
Solution:
There are various solutions for this situation
&lt;pre&gt;* You recently registered or logged in, please wait for about XXX minutes before trying to re-register.
* You are using multiple devices with the same number on WhatsApp. WhatsApp meant for one device per session. Please remove WhatsApp completely from your previous device and re-register after mentioned XXX minutes&lt;/pre&gt;

===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
 Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]
# Restart phone
# Start Wazapp

=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.

&lt;pre&gt;Possible solution thanx to fenix_86
1   Uninstall Wazapp
2   Reboot the phone
3   Remove (preferably rename) the folder .wazapp in home/user/...
4   Remove (preferably rename) the folder Wazapp in home/user/MyDocs..
5   Install the latest version of Wazapp
6   Reboot the phone
7   Launch Wazapp and syncronize contact list
8   Reboot the phone (incase standby icons are red squares)
9   Relaunch Wazapp
10  Delete the old renamed folders (renamed in steps 3 and 4)&lt;/pre&gt;

=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
 CepiPerez dev builds don't include language files other than English, even though other languages are visible in the settings menu. However, if you want to use a language other than English in &quot;development&quot; builds, follow these directions: http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
 You need to receive a voice recording from your contact fist.

=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
 This is expected and that is how it works in WhatsApp official client.

=== No conversation bubble notification for one message ===

 As per [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], developer [http://forums.internettablettalk.com/showpost.php?p=1290257&amp;postcount=6946 said that] this is how it will work. 

[[Category:N9]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wazapp</title>
    <id>5247</id>
    <revision>
      <id>50690</id>
      <timestamp>2012-11-06T09:52:15Z</timestamp>
      <contributor>
        <username>brkn</username>
        <id>5439</id>
      </contributor>
      <minor/>
      <comment>added danish</comment>
      <text xml:space="preserve">= About Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Wazapp logo created by [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp is an IM application for N9 that allows you to chat with your Whatsapp buddies.
Wazapp consists of 2 parts, the IM application (wazapp), which is in Python, and the accounts plugin (waxmppplugin) in C++. The accounts plugin should be rewritten in python soon.

Despite thousands of Nokia N9 users signing an online petition, WhatsApp Inc. ignored all demands for releasing a version for the MeeGo. Tarek Galal released the first version of Wazapp for public beta testing on May 18, 2012. On May 25, 2012 Wazapp was made open source on GitHub. As of September 2012, Wazapp supports almost all features of the official WhatsApp client and languages (see features and languages comparison below).

The source code can be [https://github.com/tgalal/wazapp obtained from github].

* Official homepage: http://www.wazapp.im
* Contact: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp in action==

A tribute to our heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] and [http://talk.maemo.org/member.php?u=59645 knobtviker] for the beautiful UI and full emoji support!

&lt;gallery&gt;
Image:Wazapp-loading.png|Loading screen
Image:Wazapp-main.png|Main screen
Image:Wazapp-conversation.png|Normal chat
Image:Wazapp-main-messages-pending.png|Unread messages
Image:Wazapp-group-create.png|Create group
Image:Wazapp-group-chat.png|Group chat
Image:Wazapp-synching-contacts.png|Contact synchronisation
Image:Wazapp-settings-01.png|Misc options
Image:Wazapp-settings-02.png|Theme and orientation
Image:Wazapp-settings-03.png|Notification
Image:Wazapp-settings-04.png|Profile setup
Image:Wazapp-settings-05-credits.png|About
&lt;/gallery&gt;

==Feature comparison==

{| class=&quot;wikitable mw-datatable&quot;
! Feature !! Original WhatsApp !! Wazapp
|-
| Chat
| x
| x
|-
| Group Chat
| x
| x
|-
| Location sharing
| x
| x
|-
| Media sharing
| x
| x
|-
| Exchange contacts
| x
| x
|-
| Broadcast messages
| x
| not yet, [https://github.com/tgalal/wazapp/issues/114 see GitHub issue]
|-
| Broadcast media
| x
| not yet
|-
| Chat history
| x
| x
|-
| Message timestamps
| x
| x
|-
| Profile picture
| x
| x
|-
| Status update
| x
| x
|-
| IOS 6 Emoji (846)
| x
| x
|-
| Contact synchronisation
| x
| x
|-
| Account registration
| x
| x
|-
| Resize images before sending
| x
| x
|-
| Landscape mode
| x
| x
|-
| Change language
| no
| '''x'''
|-
| Custom theme colours
| x
| x
|-
| Custom background
| x
| x
|-
| Custom notification sounds
| x
| x
|-
| Block contacts
| x
| x
|-
| Audio recording
| x
| x
|-
| Push notifications
| x
| x
|-
| Daily database backup (7 days total)
| x
| work in progress
|-
| No international charges
| x
| x
|-
| User interface
| ''good''
| '''''awesome ;)'''''
|-
| Price
| ''$0.99''
| '''''free'''''
|-
| License
| ''proprietary (closed source)''
| '''''open source (GNU GPL)'''''
|-
|}

==Supported Languages==

Big thanks to all translators on [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Language !! Original WhatsApp !! Wazapp
|-
| Albanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabic
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Basque (Spain)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Bulgarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalan
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chinese
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chinese (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chinese (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croatian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Czech
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danish
| x
| [https://www.transifex.com/projects/p/wazapp/language/da/ x]
|-
| Dutch
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| English (United Kingdom)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| English (United States)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonian
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ x]
|-
| Finnish
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| French (France)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| French (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| German (Germany)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| German (Switzerland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Greek
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebrew
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindi
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Hungarian
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ x]
|-
| Indonesian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Italian
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japanese
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Korean
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Macedonian
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malay
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Norwegian
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Persian
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polish
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ x]
|-
| Portuguese (Brazil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portuguese (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Romanian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Russian
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Slovak
| x
| [https://www.transifex.com/projects/p/wazapp/ Request on Transifex]
|-
| Spanish (Spain)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Spanish (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Spanish (Mexico)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Swedish (Finland)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Swedish (Sweden)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Thai
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turkish
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ukrainian
| x
| [https://www.transifex.com/projects/p/wazapp/language/uk_UA/ x]
|-
| Urdu
| no
| [https://www.transifex.com/projects/p/wazapp/language/ur/ x]
|-
| Vietnamese
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Latest Upstream build ==
[[Image:Qr.png|thumb|86px|QR-Code]]
The latest wazapp version is 0.9.12
* Download deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Source: https://github.com/tgalal/wazapp/zipball/0.9.12
* Changelog: http://wazapp.im/changelog
&lt;br style=&quot;clear:both&quot;/&gt;
[[Image:QR_nightly_0.9.12~nightly_05112012.png|thumb|86px|QR-Nightly]]
Below is the latest nightly build by [http://talk.maemo.org/showpost.php?p=1290731&amp;postcount=7154 developer].
* Download nightly deb: https://dl.dropbox.com/u/26659227/harmattan/wazapp/wazapp_0.9.12~nightly_05112012_armel.deb
* Changelog: 
&lt;pre&gt;* Translations
* Better performance with background image selected
* Emoji pressAndHold add new emoji without closing dialog
* Can show yourself in contacts
* Recent tab in emoji dialog
* Bubble colors selector in settings
* Another splash screen (Cepi asked to change it)
* Small changes &lt;/pre&gt;
&lt;br style=&quot;clear:both&quot;/&gt;

==Suitable terminals for N9==

You do not need developer mode enabled in order to be able to have a terminal.
Typing this will add terminal to your apps permanently, even when not in developer mode:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Suitable terminals are (non exclusive list):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Terminal commands==

===Enter superuser / root mode===
 devel-su
Type the root password (default: '''rootme''')

''Note: The cursor will not move when you are typing the password, it is normal.''

===How to backup your Wazapp database===
This should be done prior to anything else. Just in case things get bad (and they will sooner or later).


====GUI solution====

# Disconnect USB cable in case phone is connected to computer.
# Activate &quot;Show root filesystem&quot; '''AND''' &quot;Show hidden files&quot; in Filebox settings menu.
# Navigate to folder
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# You should see a file similar to
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Select and copy it (long keypress)
# Navigate to
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:and paste the file here
# Close Filebox and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


====Terminal solution====

# Disconnect USB cable in case phone is connected to computer.
# Open your favourite terminal
# Type
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Close terminal and connect your phone by USB cable.
# You should find your backup copy in the MyDocs folder.


===Install a new wazapp build===
Download the deb file to your downloads folder (default: /home/user/MyDocs/Downloads/), then disconnect the phone from your computer (if previously connected by usb).
 devel-su
Type the root password (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(filename obviously is the name of your deb file)


===Kill / exit a stuck wazapp process===
 killall wazapp
 kill `pidof wazapp`


===Deleting your wazapp database===
'''Warning''': you will lose all chat history and messages!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Create a logfile for troubleshooting===
If developers asks for a log, you will send them one ;)

This is how it's done.

'''Note: wazapp must not be running!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Once you're done capturing your log, you can find it on your usb storage when connected to pc via usb.
Post it on [http://pastebin.com Pastebin], attach the logfile as txt to your post or send it to CepiPerez if asked.

===Autostart Wazapp on phone boot===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

===Completely purge Wazapp from your Nokia N9===
 devel-su
 {enter your password}
 apt-get --purge autoremove wazapp
 rm -rf /opt/waxmppplugin/
 exit
 rm -rf /home/user/.wazapp/
 Then reboot, &amp; then install new version (if wanted).

==Common errors and their solutions==

=== Stays Offline ===
 You need to open your phone Settings -&gt; Internet Connection -&gt; Switch on &quot;Allow background connections&quot;. Otherwise Wazapp doesn't detect connection to Internet.

=== Connection error===
Error Message:
 status shows &quot;Connecting…&quot; when Wazapp is running.
Solution:
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Registration fail-too-many error===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:

If you are already using dev versions, update to the [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], it should fix that issue. If not, follow the steps below:

# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open

=== Registration fail-too-recent:XXX===
Error Message:
 &quot;Failed. Server said: fail-too-recent:XXX&quot;
Solution:
There are various solutions for this situation
&lt;pre&gt;* You recently registered or logged in, please wait for about XXX minutes before trying to re-register.
* You are using multiple devices with the same number on WhatsApp. WhatsApp meant for one device per session. Please remove WhatsApp completely from your previous device and re-register after mentioned XXX minutes&lt;/pre&gt;

===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
 Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]

=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# Update to [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta]
# Restart phone
# Start Wazapp

=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.

&lt;pre&gt;Possible solution thanx to fenix_86
1   Uninstall Wazapp
2   Reboot the phone
3   Remove (preferably rename) the folder .wazapp in home/user/...
4   Remove (preferably rename) the folder Wazapp in home/user/MyDocs..
5   Install the latest version of Wazapp
6   Reboot the phone
7   Launch Wazapp and syncronize contact list
8   Reboot the phone (incase standby icons are red squares)
9   Relaunch Wazapp
10  Delete the old renamed folders (renamed in steps 3 and 4)&lt;/pre&gt;

=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
 CepiPerez dev builds don't include language files other than English, even though other languages are visible in the settings menu. However, if you want to use a language other than English in &quot;development&quot; builds, follow these directions: http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
 You need to receive a voice recording from your contact fist.

=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
 This is expected and that is how it works in WhatsApp official client.

=== No conversation bubble notification for one message ===

 As per [http://wiki.maemo.org/Wazapp#Latest_Upstream_build latest Beta], developer [http://forums.internettablettalk.com/showpost.php?p=1290257&amp;postcount=6946 said that] this is how it will work. 

[[Category:N9]]
[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wazapp(spanish)</title>
    <id>5275</id>
    <revision>
      <id>50664</id>
      <timestamp>2012-11-05T04:03:10Z</timestamp>
      <contributor>
        <ip>187.176.243.252</ip>
      </contributor>
      <comment>/* Última compilación oficial */</comment>
      <text xml:space="preserve">this is wazapp spanish wiki page

= Sobre Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Logo de Wazapp creado por [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp es una aplicación de mensajería para el N9 que permite chatear con los contactos de Whatsapp.
Wazapp consta de 2 partes, la aplicación de mensajería (wazapp), la cual está escrita en Python, y el plugin de cuentas(waxmppplugin) escrito en C++. El plugin de cuentas será reescrito en python pronto.

A pesar de los miles de usuarios del Nokia N9 que firmaron la petición online, WhatsApp Inc. ignoró todas las demandas para liberar una versión para MeeGo. Tarek Galal liberó la primera versión de Wazapp beta pública de pruebas el 18 de Mayo del 2012. El 25 de Mayo de 2012 Wazapp se hizo open source en GitHub. A partir de Septiembre del 2012, Wazapp soporta casi todas las características y lenguajes del cliente oficial WhatsApp ( ver la comparación de características y lenguajes más abajo).

El código fuente se puede obtener de github en [https://github.com/tgalal/wazapp].

* Página oficial: http://www.wazapp.im
* Contacto: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp en acción==

Un tributo a nuestros heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] y [http://talk.maemo.org/member.php?u=59645 knobtviker]  por la magnifica UI y total soporte de emoji!

&lt;gallery&gt;
Image:Wazapp-loading.png|Pantalla de carga
Image:Wazapp-main.png|Pantalla principal
Image:Wazapp-conversation.png|Chat normal
Image:Wazapp-main-messages-pending.png|Mensajes sin leer
Image:Wazapp-group-create.png|Crear grupo
Image:Wazapp-group-chat.png|Chat de grupo
Image:Wazapp-synching-contacts.png|Sincronización de contactos
Image:Wazapp-settings-01.png|Opciones varias
Image:Wazapp-settings-02.png|Temas y orientación
Image:Wazapp-settings-03.png|Notificación
Image:Wazapp-settings-04.png|Configuración de pérfil
Image:Wazapp-settings-05-credits.png|Acerca
&lt;/gallery&gt;

==Comparación de características==

{| class=&quot;wikitable mw-datatable&quot;
! Característica !! WhatsApp Original !! Wazapp
|-
| Chat
| x
| x
|-
| Chat de grupo
| x
| x
|-
| Compartir ubicación
| x
| x
|-
| Compartir medios
| x
| x
|-
| Intercambiar contactos
| x
| x
|-
| Difundir mensajes
| x
| todavía no, [https://github.com/tgalal/wazapp/issues/114 ver problema en GitHub]
|-
| Difundir medios
| x
| todavía no
|-
| Historial de chat
| x
| x
|-
| Fecha y hora de mensajes
| x
| x
|-
| Imágen de pérfil
| x
| x
|-
| Actualizar estado
| x
| x
|-
| Emoticons
| x
| x
|-
| Sincronizar contactos
| x
| x
|-
| Registrar cuenta
| x
| x
|-
| Cambiar tamaño antes de enviar
| x
| x
|-
| Modo horizontal
| x
| x
|-
| Cambiar lenguaje
| no
| '''x'''
|-
| Colores de tema personalizado
| x
| x
|-
| Imágen de fondo personalizado
| x
| x
|-
| Sonidos de notificaciones personalidos
| x
| x
|-
| Blloquear contactos
| x
| x
|-
| Grabar audio
| x
| x
|-
| Notificaciones Push
| x
| x
|-
| Respaldo de base de datos diaria(7 dias total)
| x
| trabajo en progreso
|-
| Sin cargos internaciones
| x
| x
|-
| Interfaz de usuario
| ''buena''
| '''''Magnifica ;)'''''
|-
| Precio
| ''$0.99''
| '''''Gratis'''''
|-
| Licecia
| ''propietaria (codigo cerrado)''
| '''''open source (GNU GPL)'''''
|-
|}

==Idiomas soportados==

Muchas gracias a todos los traductores en [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Lenguaje !! WhatsApp Original !! Wazapp
|-
| Albanés
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabigo
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Vasco (España)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Solicitar en Transifex]
|-
| Búlgaro
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalán
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chino
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chino (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chino (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croata
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Checo
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danés
| x
| [https://www.transifex.com/projects/p/wazapp/ Solicitar en Transifex]
|-
| Holandés
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| Inglés (Reino Unido)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| Inglés (Estados Unidos)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonia
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ 16% traducido]
|-
| Finlandés
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| Frances (Francia)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| Frances (Suiza)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| Alemán (Alemania)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| Alemán (Suiza)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Griego
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebreo
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindú
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Húngaro
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ 91% traducido]
|-
| Indonesio
| x
| [https://www.transifex.com/projects/p/wazapp/ Solicitar en Transifex]
|-
| Italiano
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japonés
| x
| [https://www.transifex.com/projects/p/wazapp/ Solicitar en Transifex]
|-
| Coreano
| x
| [https://www.transifex.com/projects/p/wazapp/ Solicitar en Transifex]
|-
| Macedonio
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malayo
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Noruego
| x
| [https://www.transifex.com/projects/p/wazapp/ Solicitar en Transifex]
|-
| Persa
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polaco
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ 91% traducido]
|-
| Portugués (Brasil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portugués (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Rumano
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Ruso
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Eslovaco
| x
| [https://www.transifex.com/projects/p/wazapp/ Solicitar en Transifex]
|-
| Español (España)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Español (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Español (México)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Sueco (Finlandia)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Sueco (Suecia)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Tailandés
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turco
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ucranio
| x
| [https://www.transifex.com/projects/p/wazapp/ Solicitar en Transifex]
|-
| Vietnames
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Última compilación oficial ==
[[Image:Wazapp_027.png|thumb|86px|QR-Code]]
La última versión de Wazapp es la 0.9.12 
* Descargar deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Codigo fuente:  https://github.com/tgalal/wazapp/zipball/0.9.12
&lt;br style=&quot;clear:both&quot;/&gt;

==Última versión de desarrollo(compilación de CepiPerez)==
[[Image:QR-wazapp-08102012-2200.png|thumb|86px|QR-Code]]
La última versión de CepiPerez es &quot;wazapp-08102012-2200.deb&quot;
* Descargar deb: http://dl.dropbox.com/u/12134784/MEEGO/wazapp-08102012-2200.deb/
&lt;br style=&quot;clear: both&quot; /&gt;

==Terminales adecuadas para N9==

No necesitas activar el modo desarrollador para tener una terminal.
Teclear esto agregará una terminal a tus aplicaciones permanentemente, incluso cuando no estés en modo desarrollador:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Terminales adecuadas son (lista no exclusiva):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Comandos para la Terminal==

===Ingresar como superusuario / modo root===
 devel-su
Type the root password (default: rootme)


===Como respaldar tu base de datos Wazapp===
Esto se debe hacer antes de cualquier otra cosa. Solo en caso de que las cosas salgan mal (y saldrán tarde o temprano)



====Solución por medio de GUI====

# Desconectar el cable USB en caso de que el teléfono este conectado a la computadora.
# Activar &quot;Show root filesystem&quot; '''Y''' &quot;Show hidden files&quot; en el menú de configuraciones de Filebox.
# Navegar a la carpeta
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# Verás un archivo similar a
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Seleccionar y copiar (pulsación larga)
# Navegar a
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:y pegar el archivo aquí
# Cerrar Filebox y conectar tu teléfono con el cable USB.
# Ahí en la carpeta MyDocs podras encontrar tu copia de seguridad.

====Solución por medio de Terminal====

# Desconectar el cable USB en caso de que el teléfono este conectado a la computadora.
# Abre tu terminal favorita
# Escribe
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Cierra la terminal y conecta el cable USB.
# Ahí en la carpeta MyDocs podras encontrar tu copia de seguridad.

===Instalar una nueva versión de Wazapp===
Descarga el archivo deb a tu carpeta de descargas (por default es: /home/user/MyDocs/Downloads/), despues desconecta el teléfono de tu computadora (si estaba conectado anteriormente).
 devel-su
Escribe la contraseña de root (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(El filename es por supuesto el nombre del archivo deb)

===Matar / cerrar un proceso atascado de Wazapp===
 killall wazapp
 kill `pidof wazapp`


===Borrar tu base de datos de Wazapp===
'''Precaución''': perderas todo tu historial de chat y mensajes!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Crear un archivo de registro para solución de problemas===
Si CepiPerez pregunta por un archivo de registro, debes enviarle uno ;)

Así es como se hace.

'''Nota: Wazapp no deberá estar corriendo!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Una vez que terminaste de capturar tu archivo de registro, podrás encontrarlo en tu carpeta de almacenamiento (/home/user/MyDocs) cuando lo conectes a tu computadora por medio de USB.
Publicalo en [http://pastebin.com Pastebin], agrega el archivo de registro como txt a tu publicación o enviaselo a CepiPerez si te pregunta.

===Autocomienzo de Wazapp al iniciarce el teléfono===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

==Errores comunes y sus soluciones==

=== Error de conexión===
Mensaje de error:
 el estado muestra &quot;Conectando…&quot; cuando Wazapp esta corriendo.
Solución:
# Borrar la carpeta (''si vas a utilizar Filebox: la carpeta esta escondida'')
 /home/user/.wazapp
# [http://wiki.maemo.org/Wazapp#Latest_version_.28CepiPerez_build.29 Actualiza a una nueva versión de Wazapp]


===Error de Registration fail-too-many===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:
# Uninstall Wazapp
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
and 
 /opt/waxmppplugin
# Reboot phone
# [http://wiki.maemo.org/Wazapp#Latest_version_.28CepiPerez_build.29 Install latest Wazapp build]
# Start Wazapp, re-register
# Reboot phone
# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open.


===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
[http://wiki.maemo.org/Wazapp#Latest_version_.28CepiPerez_build.29 Update your Wazapp build]


=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# [http://wiki.maemo.org/Wazapp#Latest_version_.28CepiPerez_build.29 Install new Wazapp build]
# Restart phone
# Start Wazapp



=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.



=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
CepiPerez development builds do not include any language files other then English, even though languages will be visible in the settings menu.
However... If you want to use a language other than English in &quot;development&quot; builds, follow these directions:
http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
You need to receive a voice recording from your contact fist.


=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
This is expected and that is how it works in WhatsApp official client.</text>
    </revision>
  </page>
  <page>
    <title>Wazapp(spanish)</title>
    <id>5275</id>
    <revision>
      <id>50664</id>
      <timestamp>2012-11-05T04:03:10Z</timestamp>
      <contributor>
        <ip>187.176.243.252</ip>
      </contributor>
      <comment>/* Última compilación oficial */</comment>
      <text xml:space="preserve">this is wazapp spanish wiki page

= Sobre Wazapp =

[[Image:Wazapp-logo.png|thumb|128px|Logo de Wazapp creado por [http://talk.maemo.org/member.php?u=59328 The Best Isaac]]]Wazapp es una aplicación de mensajería para el N9 que permite chatear con los contactos de Whatsapp.
Wazapp consta de 2 partes, la aplicación de mensajería (wazapp), la cual está escrita en Python, y el plugin de cuentas(waxmppplugin) escrito en C++. El plugin de cuentas será reescrito en python pronto.

A pesar de los miles de usuarios del Nokia N9 que firmaron la petición online, WhatsApp Inc. ignoró todas las demandas para liberar una versión para MeeGo. Tarek Galal liberó la primera versión de Wazapp beta pública de pruebas el 18 de Mayo del 2012. El 25 de Mayo de 2012 Wazapp se hizo open source en GitHub. A partir de Septiembre del 2012, Wazapp soporta casi todas las características y lenguajes del cliente oficial WhatsApp ( ver la comparación de características y lenguajes más abajo).

El código fuente se puede obtener de github en [https://github.com/tgalal/wazapp].

* Página oficial: http://www.wazapp.im
* Contacto: Tarek Galal tarek@wazapp.im
&lt;br style=&quot;clear: both&quot; /&gt;


==Wazapp en acción==

Un tributo a nuestros heroes [http://talk.maemo.org/member.php?u=34540 CepiPerez] y [http://talk.maemo.org/member.php?u=59645 knobtviker]  por la magnifica UI y total soporte de emoji!

&lt;gallery&gt;
Image:Wazapp-loading.png|Pantalla de carga
Image:Wazapp-main.png|Pantalla principal
Image:Wazapp-conversation.png|Chat normal
Image:Wazapp-main-messages-pending.png|Mensajes sin leer
Image:Wazapp-group-create.png|Crear grupo
Image:Wazapp-group-chat.png|Chat de grupo
Image:Wazapp-synching-contacts.png|Sincronización de contactos
Image:Wazapp-settings-01.png|Opciones varias
Image:Wazapp-settings-02.png|Temas y orientación
Image:Wazapp-settings-03.png|Notificación
Image:Wazapp-settings-04.png|Configuración de pérfil
Image:Wazapp-settings-05-credits.png|Acerca
&lt;/gallery&gt;

==Comparación de características==

{| class=&quot;wikitable mw-datatable&quot;
! Característica !! WhatsApp Original !! Wazapp
|-
| Chat
| x
| x
|-
| Chat de grupo
| x
| x
|-
| Compartir ubicación
| x
| x
|-
| Compartir medios
| x
| x
|-
| Intercambiar contactos
| x
| x
|-
| Difundir mensajes
| x
| todavía no, [https://github.com/tgalal/wazapp/issues/114 ver problema en GitHub]
|-
| Difundir medios
| x
| todavía no
|-
| Historial de chat
| x
| x
|-
| Fecha y hora de mensajes
| x
| x
|-
| Imágen de pérfil
| x
| x
|-
| Actualizar estado
| x
| x
|-
| Emoticons
| x
| x
|-
| Sincronizar contactos
| x
| x
|-
| Registrar cuenta
| x
| x
|-
| Cambiar tamaño antes de enviar
| x
| x
|-
| Modo horizontal
| x
| x
|-
| Cambiar lenguaje
| no
| '''x'''
|-
| Colores de tema personalizado
| x
| x
|-
| Imágen de fondo personalizado
| x
| x
|-
| Sonidos de notificaciones personalidos
| x
| x
|-
| Blloquear contactos
| x
| x
|-
| Grabar audio
| x
| x
|-
| Notificaciones Push
| x
| x
|-
| Respaldo de base de datos diaria(7 dias total)
| x
| trabajo en progreso
|-
| Sin cargos internaciones
| x
| x
|-
| Interfaz de usuario
| ''buena''
| '''''Magnifica ;)'''''
|-
| Precio
| ''$0.99''
| '''''Gratis'''''
|-
| Licecia
| ''propietaria (codigo cerrado)''
| '''''open source (GNU GPL)'''''
|-
|}

==Idiomas soportados==

Muchas gracias a todos los traductores en [https://www.transifex.com/projects/p/wazapp/ Transifex]!

{| class=&quot;wikitable mw-datatable&quot;
! Lenguaje !! WhatsApp Original !! Wazapp
|-
| Albanés
| x
| [https://www.transifex.com/projects/p/wazapp/language/sq_AL/ x]
|-
| Arabigo
| x
| [https://www.transifex.com/projects/p/wazapp/language/ar/ x]
|-
| Vasco (España)
| no
| [https://www.transifex.com/projects/p/wazapp/language/eu_ES/ x]
|-
| Bokmål
| x
| [https://www.transifex.com/projects/p/wazapp/ Solicitar en Transifex]
|-
| Búlgaro
| x
| [https://www.transifex.com/projects/p/wazapp/language/bg/ x]
|-
| Catalán
| x
| [https://www.transifex.com/projects/p/wazapp/language/ca/ x]
|-
| Chino
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh/ x]
|-
| Chino (Hong Kong)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_HK/ x]
|-
| Chino (Taiwan)
| x
| [https://www.transifex.com/projects/p/wazapp/language/zh_TW/ x]
|-
| Croata
| x
| [https://www.transifex.com/projects/p/wazapp/language/hr/ x]
|-
| Checo
| x
| [https://www.transifex.com/projects/p/wazapp/language/cs/ x]
|-
| Danés
| x
| [https://www.transifex.com/projects/p/wazapp/ Solicitar en Transifex]
|-
| Holandés
| x
| [https://www.transifex.com/projects/p/wazapp/language/nl/ x]
|-
| Inglés (Reino Unido)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_GB/ x]
|-
| Inglés (Estados Unidos)
| x
| [https://www.transifex.com/projects/p/wazapp/language/en_US/ x]
|-
| Estonia
| x
| [https://www.transifex.com/projects/p/wazapp/language/et/ 16% traducido]
|-
| Finlandés
| x
| [https://www.transifex.com/projects/p/wazapp/language/fi/ x]
|-
| Frances (Francia)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_FR/ x]
|-
| Frances (Suiza)
| x
| [https://www.transifex.com/projects/p/wazapp/language/fr_CH/ x]
|-
| Alemán (Alemania)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_DE/ x]
|-
| Alemán (Suiza)
| x
| [https://www.transifex.com/projects/p/wazapp/language/de_CH/ x]
|-
| Griego
| x
| [https://www.transifex.com/projects/p/wazapp/language/el/ x]
|-
| Hebreo
| x
| [https://www.transifex.com/projects/p/wazapp/language/he/ x]
|-
| Hindú
| no
| [https://www.transifex.com/projects/p/wazapp/language/hi/ x]
|-
| Húngaro
| x
| [https://www.transifex.com/projects/p/wazapp/language/hu_HU/ 91% traducido]
|-
| Indonesio
| x
| [https://www.transifex.com/projects/p/wazapp/ Solicitar en Transifex]
|-
| Italiano
| x
| [https://www.transifex.com/projects/p/wazapp/language/it/ x]
|-
| Japonés
| x
| [https://www.transifex.com/projects/p/wazapp/ Solicitar en Transifex]
|-
| Coreano
| x
| [https://www.transifex.com/projects/p/wazapp/ Solicitar en Transifex]
|-
| Macedonio
| no
| [https://www.transifex.com/projects/p/wazapp/language/mk/ x]
|-
| Malayo
| x
| [https://www.transifex.com/projects/p/wazapp/ms x]
|-
| Noruego
| x
| [https://www.transifex.com/projects/p/wazapp/ Solicitar en Transifex]
|-
| Persa
| x
| [https://www.transifex.com/projects/p/wazapp/language/fa/ x]
|-
| Polaco
| x
| [https://www.transifex.com/projects/p/wazapp/language/pl/ 91% traducido]
|-
| Portugués (Brasil)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_BR/ x]
|-
| Portugués (Portugal)
| x
| [https://www.transifex.com/projects/p/wazapp/language/pt_PT/ x]
|-
| Rumano
| x
| [https://www.transifex.com/projects/p/wazapp/language/ro/ x]
|-
| Ruso
| x
| [https://www.transifex.com/projects/p/wazapp/language/ru/ x]
|-
| Eslovaco
| x
| [https://www.transifex.com/projects/p/wazapp/ Solicitar en Transifex]
|-
| Español (España)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es/ x]
|-
| Español (Argentina)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_AR/ x]
|-
| Español (México)
| x
| [https://www.transifex.com/projects/p/wazapp/language/es_MX/ x]
|-
| Sueco (Finlandia)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_FI/ x]
|-
| Sueco (Suecia)
| x
| [https://www.transifex.com/projects/p/wazapp/language/sv_SE/ x]
|-
| Tailandés
| x
| [https://www.transifex.com/projects/p/wazapp/language/th/ x]
|-
| Turco
| x
| [https://www.transifex.com/projects/p/wazapp/language/tr/ x]
|-
| Ucranio
| x
| [https://www.transifex.com/projects/p/wazapp/ Solicitar en Transifex]
|-
| Vietnames
| x
| [https://www.transifex.com/projects/p/wazapp/language/vi/ x]
|-
|}

==Última compilación oficial ==
[[Image:Wazapp_027.png|thumb|86px|QR-Code]]
La última versión de Wazapp es la 0.9.12 
* Descargar deb: https://github.com/downloads/tgalal/wazapp/wazapp_0.9.12_armel.deb
* Codigo fuente:  https://github.com/tgalal/wazapp/zipball/0.9.12
&lt;br style=&quot;clear:both&quot;/&gt;

==Última versión de desarrollo(compilación de CepiPerez)==
[[Image:QR-wazapp-08102012-2200.png|thumb|86px|QR-Code]]
La última versión de CepiPerez es &quot;wazapp-08102012-2200.deb&quot;
* Descargar deb: http://dl.dropbox.com/u/12134784/MEEGO/wazapp-08102012-2200.deb/
&lt;br style=&quot;clear: both&quot; /&gt;

==Terminales adecuadas para N9==

No necesitas activar el modo desarrollador para tener una terminal.
Teclear esto agregará una terminal a tus aplicaciones permanentemente, incluso cuando no estés en modo desarrollador:
 cp /usr/share/applications/meego-terminal.desktop ~/.local/share/applications/terminal.desktop

Terminales adecuadas son (lista no exclusiva):

* [http://store.ovi.com/content/252482 FingerTerm]
* [http://store.ovi.com/content/258644 BTinput Terminal]
* [http://store.ovi.com/content/283645 MTermite]

==Comandos para la Terminal==

===Ingresar como superusuario / modo root===
 devel-su
Type the root password (default: rootme)


===Como respaldar tu base de datos Wazapp===
Esto se debe hacer antes de cualquier otra cosa. Solo en caso de que las cosas salgan mal (y saldrán tarde o temprano)



====Solución por medio de GUI====

# Desconectar el cable USB en caso de que el teléfono este conectado a la computadora.
# Activar &quot;Show root filesystem&quot; '''Y''' &quot;Show hidden files&quot; en el menú de configuraciones de Filebox.
# Navegar a la carpeta
#:&lt;pre&gt;/home/user/.wazapp&lt;/pre&gt;
# Verás un archivo similar a
#:&lt;pre&gt;123456789012345.db&lt;/pre&gt;
# Seleccionar y copiar (pulsación larga)
# Navegar a
#:&lt;pre&gt;/home/user/MyDocs&lt;/pre&gt;
#:y pegar el archivo aquí
# Cerrar Filebox y conectar tu teléfono con el cable USB.
# Ahí en la carpeta MyDocs podras encontrar tu copia de seguridad.

====Solución por medio de Terminal====

# Desconectar el cable USB en caso de que el teléfono este conectado a la computadora.
# Abre tu terminal favorita
# Escribe
#:&lt;pre&gt;cp ~/.wazapp/*.db ~/MyDocs/&lt;/pre&gt;
# Cierra la terminal y conecta el cable USB.
# Ahí en la carpeta MyDocs podras encontrar tu copia de seguridad.

===Instalar una nueva versión de Wazapp===
Descarga el archivo deb a tu carpeta de descargas (por default es: /home/user/MyDocs/Downloads/), despues desconecta el teléfono de tu computadora (si estaba conectado anteriormente).
 devel-su
Escribe la contraseña de root (default: rootme)
 cd /home/user/MyDocs/Downloads/
 dpkg -i filename.deb
(El filename es por supuesto el nombre del archivo deb)

===Matar / cerrar un proceso atascado de Wazapp===
 killall wazapp
 kill `pidof wazapp`


===Borrar tu base de datos de Wazapp===
'''Precaución''': perderas todo tu historial de chat y mensajes!
 rm -rf ~/.wazapp/*.db
 rm -rf home/user/.wazapp/*.db

===Crear un archivo de registro para solución de problemas===
Si CepiPerez pregunta por un archivo de registro, debes enviarle uno ;)

Así es como se hace.

'''Nota: Wazapp no deberá estar corriendo!'''
 /opt/waxmppplugin/bin/wazapp/wazapp_init &gt;/home/user/MyDocs/wazapp-logfile.txt
Una vez que terminaste de capturar tu archivo de registro, podrás encontrarlo en tu carpeta de almacenamiento (/home/user/MyDocs) cuando lo conectes a tu computadora por medio de USB.
Publicalo en [http://pastebin.com Pastebin], agrega el archivo de registro como txt a tu publicación o enviaselo a CepiPerez si te pregunta.

===Autocomienzo de Wazapp al iniciarce el teléfono===
 devel-su
 wget http://pastebin.com/raw.php?i=VfxNtsYg -O /etc/init/apps/wazapp.conf &amp;&amp; /sbin/reboot

==Errores comunes y sus soluciones==

=== Error de conexión===
Mensaje de error:
 el estado muestra &quot;Conectando…&quot; cuando Wazapp esta corriendo.
Solución:
# Borrar la carpeta (''si vas a utilizar Filebox: la carpeta esta escondida'')
 /home/user/.wazapp
# [http://wiki.maemo.org/Wazapp#Latest_version_.28CepiPerez_build.29 Actualiza a una nueva versión de Wazapp]


===Error de Registration fail-too-many===
Error Message:
 &quot;Failed. Server said: fail-too-many&quot;
Solution:
# Uninstall Wazapp
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Delete folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp
and 
 /opt/waxmppplugin
# Reboot phone
# [http://wiki.maemo.org/Wazapp#Latest_version_.28CepiPerez_build.29 Install latest Wazapp build]
# Start Wazapp, re-register
# Reboot phone
# Open Wazapp on N9 and start registration
# Download and install [http://bluestacks.com/ BlueStacks]
# Start BlueStacks and install WhatsApp
# Start Whatsapp and register your phone number
# Wait for verification code. Wazapp should register automatically if left open.


===Need to re-register===
Error message:
 &quot;need to remove your account from accounts manager and re-register&quot;
# Remove account: Accounts – Wazapp – menu at bottom right – Delete Account
# Start Wazapp
# Follow registration path

If registration fails, follow the [http://wiki.maemo.org/Wazapp#Registration_fail-too-many_error the fail-too-many instructions]

=== Can't sync all contacts===
Error:
 Unable to sync all contacts to Wazapp
Solution:
[http://wiki.maemo.org/Wazapp#Latest_version_.28CepiPerez_build.29 Update your Wazapp build]


=== Unable to receive messages===
Error:
 Unable to receive messages from contacts
Solution:
# Uninstall Wazapp (''do not remove Wazapp account'')
# Restart phone
# Remove folder (''if you intend to use Filebox: folder is hidden'')
 /home/user/.wazapp/
# [http://wiki.maemo.org/Wazapp#Latest_version_.28CepiPerez_build.29 Install new Wazapp build]
# Restart phone
# Start Wazapp



=== Notifications Are Silent on Ringing Profile ===

 As of 24/09/12, there is a bug in Wazapp whereby new messages only vibrate instead of ringing with the chat notification.


 The developers are currently working to fix this. This section will be updated once the bug is fixed.



=== Wazapp Notifications Icon covers SMS Notification Icon ===

 When you have an unread Wazapp message as well as an unread SMS, you might see only a Wazapp Notification Icon.

 This is NOT a bug but a feature in Harmattan whereby SMS/IM/Wazapp are displayed by the latest Notification icon only!



=== Wazapp media is NOT found in Gallery ===

 By default, all Wazapp media using Tarek's build is stored in '''/home/user/MyDocs/.wazapp/'''
 
Navigate to this location by using a file manager like Filebox to view the media.

 In CepiPerez's build all Wazapp media are stored in '''/home/user/MyDocs/Wazapp/media''' and should appear in the Gallery



=== Last Seen Time for a Contact is Inaccurate ===

Error:

 When Opening a Chat with a Contact, the last seen time is Inaccurate. Mostly, it is the time when you last sent a message to the contact.


Work-around:

 Return to the Chat menu and Open the Chat with the Contact again. The Last Seen time will now be updated to be reflected accurately.



=== Red Dots Appear instead of Notification Icons ===

Error: 

 On the Low-Power Screen, Status Bar and Lockscreen instead of the green Wazapp Notification Icon, a Red Square/Box/Dot appears.


Solution:

 Reboot your phone. Most probably you have done a fresh installation and have not rebooted your phone.



=== Pictures not Appearing for Selecting Profile Picture ===

Error:

 When choosing a Profile Picture, the selection screen has an ever-spinning spinner.


Solution:
 Quit Wazapp and re-start it. If it still isn't fixed, uninstall Wazapp from your system and delete all files in '''/opt/waxmppplugin/''' before rebooting your device and re-installing the latest version of Wazapp


=== Changing language does not work ===

Error:
 When changing the language and restarting Wazapp, the language is still english.

Solution:
CepiPerez development builds do not include any language files other then English, even though languages will be visible in the settings menu.
However... If you want to use a language other than English in &quot;development&quot; builds, follow these directions:
http://talk.maemo.org/showthread.php?p=1277303#post1277303

=== Sending voice recordings does not work ===

Error:
 When sending voice recordings nothing happens.

Solution:
You need to receive a voice recording from your contact fist.


=== Conversation missing and need to re-register after swapped SIM card ===

Error:
 After swapped sim card, Wazapp will ask user to re-register and previous conversation is missing.

Solution:
This is expected and that is how it works in WhatsApp official client.</text>
    </revision>
  </page>
  <page>
    <title>Web browser</title>
    <id>5165</id>
    <revision>
      <id>49883</id>
      <timestamp>2012-09-25T16:34:39Z</timestamp>
      <contributor>
        <ip>89.27.97.135</ip>
      </contributor>
      <comment>dillo doesn't have javascript</comment>
      <text xml:space="preserve">{| class=&quot;wikitable sortable&quot; border=1
! Name !! link !!  portrait !! finger !! libre !!  [http://www.webkit.org/perf/sunspider/sunspider.html Sunspider] !! [http://www.html5test.com html5test]
|-
| MicroB || default || no || yes || || [http://talk.maemo.org/showpost.php?p=1272054&amp;postcount=49 31938.9] ||
|-
| Opera-mobile  || http://maemo.org/downloads/product/Maemo5/opera-mobile/ || yes || yes || no || ||
|-
| Digia@Web || http://maemo.org/packages/view/digiaatweb/ || yes || yes || no || ||
|-
| Crochik Macuco || http://maemo.org/downloads/product/Maemo5/macuco2/ || yes || yes || || ||
|-
| Fennec ([[Firefox mobile|Mozilla Firefox]]) || http://maemo.org/packages/view/fennec/ || yes || yes || yes || ||
|-
| Firefox nightly 12a1 ||  || yes || yes || yes ||[http://talk.maemo.org/showpost.php?p=1272054&amp;postcount=49 7041.9 ] || 
|-
| Midori || http://maemo.org/packages/view/midori/ || yes || yes || yes|| ||
|-
| Tear || http://maemo.org/packages/view/tear/ || no || yes || yes || ||
|-
| Chromium || http://maemo.org/packages/view/chromium/ || no || no || ||
|-
| Dillo || http://maemo.org/packages/view/dillo/ || no || no || yes || No support for JavaScript || No JavaScript
|-
| Helium Mobile Browser || http://maemo.org/packages/view/heliummobilebrowser/ || || || || [http://talk.maemo.org/showpost.php?p=1272054&amp;postcount=49 11663.2] ||
|-
| Dooble (1.36+svn4766)|| http://maemo.org/packages/view/dooble/ || no || no || yes|| [http://talk.maemo.org/showpost.php?p=1272085&amp;postcount=1 10379.8 ] || [http://talk.maemo.org/showpost.php?p=1272085&amp;postcount=1 243 ]
|-
|}

You can change the default browser using [http://maemo.org/downloads/product/Maemo5/browser-switchboard/ Browser Switchboard]</text>
    </revision>
  </page>
  <page>
    <title>Webapplications and websites</title>
    <id>1115</id>
    <revision>
      <id>50038</id>
      <timestamp>2012-10-01T11:25:30Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Webapplications and websites]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">Webapplications and Websites is a collection of useful URLs for tablets. There is a version for mobile-specific sites in the [[Useful Mobile URLs]] article. They are used simply by surfing to this page with a tablet and clicking a link.

; Games
* Bejeweled [http://static.popcap.com/iphone/]


;Personal Information Management
* TabletOS (All around PIM) [http://www.tabletos.org]
* Tadalist (To-do List) [http://tadalist.com/]
* 30boxes Calendar (displays better than GCal) [http://30boxes.com/] 


;News, Weather and Information
* Weather Underground for iPod - looks great on n800 [http://i.wund.com/]


;WAP Emulators
* Wapsilon [http://www.wapsilon.com/]
* TTEmulator [http://www.inetis.com/index.php?module=ttemulator]
* MobileRunner (emulates WAP, imode, PDA, J2ME) [http://mobilerunner.wap3.net/emu_wap3/p/wap3/]


;Translation Services
* pda.leo.org [http://www.wapsilon.com/] - (German to/from English, Spanish, French) - the &quot;big&quot; version dict.leo.org also covers Italian and Chinese and is totally usable on the Nokia (not many grapics, not much ads etc.).


; Travelling and Hotels
* Bahn.de [http://mobile.bahn.de] - travel information for German railways and more (in German)
* Wikitravel [http://wikitravel.org/en/Main_Page] - &quot;Wikitravel is a project to create a free, complete, up-to-date, and reliable worldwide travel guide.&quot;

;Miscellaneous iPhone Webapps
* Ebook Reader (optimized for iPhone, requires more scrolling on n800) [http://scrollbox.org/]
* Guitar Chords (works well on n800) [http://modguitars.com/chords/]
* Radio Song List (works pretty well on n800) [http://www.iradioapp.com/]
* Bartender iPhone Webapp (works very well on n800)    [http://www.shotson.us/iphone/]
* Movies iPhone Webapp (works but not great) [http://www.moviesapp.com/]
* Directory of Restaurant Menus (works well) [http://www.menulizard.com/mobile/]
* Question and Answer Site (works ok) [http://answers.nobosh.com/iphone/]
* Netvibes (works perfectly) [http://iphone.netvibes.com/]
* Facebook (works perfectly) [http://iphone.facebook.com/]
* Hotel Widgets Hotel/Flight/Car Reservations [http://www.hotelwidgets.com/iphonetravel/] 
* Travelocity iPhone Webapp (works very well) [http://iphone.travelocity.com/]
* Box File Storage [http://i.box.net/]
* Free SMS Text Messages [http://sms.dynadel.com/]
* Shopping List “We can't be out of eggs -I just went to the store.” [http://onetrip.org/]


;Easy access wap info
*http://wap.4info.net/

;Miscellaneous online services
* Upload and share files up to 10M, optimized for mobile devices [http://qfs.mobi]
* Convert a web page to a pdf file [http://www.html-to-pdf.net]
* HTML5 sketching app (use Hover mode) [http://mugtug.com/sketchpad]
* HTML5 photo editor app (use Hover mode) [http://mugtug.com/darkroom/]

[[Category:Web]]
[[Category:Beginners]]</text>
    </revision>
  </page>
  <page>
    <title>What can we realistically expect</title>
    <id>3694</id>
    <revision>
      <id>42831</id>
      <timestamp>2011-03-28T09:15:04Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Can we expect Java support in Maemo 5 ? */ reformat note</comment>
      <text xml:space="preserve">== Introduction ==

This wiki page was created following a lot of hot-topic questions being asked without answer which resulted in a general bad mood on Talk. It was suggested by Qgil in this [http://talk.maemo.org/showpost.php?p=550967&amp;postcount=1 post].

The purpose of this page is to compile known information and open questions into one and easy to read source.

=== Be realistic ! ===

Questions that would break a [[:wikipedia:Non-disclosure_agreement|NDA]] (non-disclosure agreement), business related questions, certain other sensitive questions and questions that have no answers at the moment can't and won't be answered.

Some examples by Quim Gil : 

{{quotation|
'''N900 hardware''', '''&quot;Official support&quot;''', '''upgrading kernel drivers''', '''Ovi Maps''', '''Flash''', '''Nokia apps''', '''industry certifications'''... most of this discussion is about '''commercial topics''', even when they sit on top of open source code.

''Emphasis added by editor''
|2=[http://talk.maemo.org/showpost.php?p=551636&amp;postcount=70 Quim Gil (Nokia)]|3=Cleaning N900 FUD|4=talk.maemo.org post}}

{{quotation|
I discuss about open source software and developer offering. I might discuss about Nokia proprietary software if that is useful. I avoid as much as possible discussions about Nokia hardware and 3rd party commercial software, just because this is totally out of my scope. Harmattan/MeeGo officially supported in the N900, Ovi Maps with free navigation, etc are business topics to be discussed with business owners. People like Peter, Janne, Ari...
|2=[http://talk.maemo.org/showpost.php?p=551703&amp;postcount=88 Quim Gil (Nokia)]|3=Cleaning N900 FUD|4=talk.maemo.org post}}

=== Reference ===

Quim Gil ([http://maemo.org/profile/view/qgil/ qgil]) : Job title - Open source advocate, Maemo Devices @ Nokia.

Ari Jaaksi ([http://maemo.org/profile/view/jaaksi/ jaaksi]) : Job title - Vice President of Maemo Software @ Nokia.

Urho Konttori ([http://maemo.org/profile/view/konttori/ konttori]) : Job title - Project Manager @ Nokia.

Tomas Junnonen ([[Maemo_Summit_2009/Day_2#Introducing_the_Harmattan_UI_framework|tomasj]]) : Job title - Developer 
@ Nokia.

Peter Schneider ([http://maemo.org/profile/view/peterschneider/ peterschneider]): Job title - Head of the global marketing team for Maemo Devices @ Nokia.

Valtteri Halla ([http://meego.com/users/valhalla valhalla]) : Job title - Director, Nokia Meego @ Nokia.

=== Disclamer ===

Please do not, and I repeat, do not take any of those answers as definitive.  This is a first draft.  Thank you for you comprehension.
Ready to dive in?

[[#top|top]]

== Questions &amp; Answers about the Nokia N900 ==

=== When will the development for the N900 be finished ? ===

{{quotation|
And in regards to finishing the work on the [[Nokia N900]], I can't put down a day either because we are not done yet either but still work on further improvements and enhancements.
|2=[http://mobiletablets.blogspot.com/2010/03/nokia-spotlight-interview-with-peter.html Peter Schneider (Nokia)]
|3=Nokia Spotlight: Interview with Peter Schneider - Part 1
|4=mobiletablets.blogspot.com post}}

=== Will Nokia support the front-facing camera on the N900 ? ===

''From'' [http://mobiletablets.blogspot.com/2010/03/nokia-spotlight-interview-with-peter.html ''mobiletablets.blogspot.com''] :

{{quotation|
At this point of time, I don't have anything to share on an application making use of forward-facing camera. I wouldn't like to speculate on things we have not announced yet.
|2=[http://mobiletablets.blogspot.com/2010/03/nokia-spotlight-interview-with-peter.html Peter Schneider (Nokia)]
|3=Nokia Spotlight: Interview with Peter Schneider - Part 1
|4=mobiletablets.blogspot.com post}}

Editor note: Video calling, using the front-facing camera, was introduced in [[Maemo 5/PR1.2#New_Features|PR1.2]]

=== What is the point of buying the N900 now that we know something else &quot;better&quot; is coming ? ===

=== Why should I start developing applications for the N900 ? ===

{{quotation|
What I want to say is: even if you are interested in the N900 alone here and now, developers (specially commercial developers) are interested in volumes and future plans. The perspectives of MeeGo with it's [[:wikipedia:API|API]] compatibility across MeeGo devices + Symbian devices is much more interesting than the focus on the N900 alone. Today there is still no MeeGo release, no MeeGo [[:wikipedia:SDK|SDK]] and no reference hardware announced, but you can get the N900 with Qt 4.6 official around the corner and a decent development environment. With your apps developed targetting the N900 you can also start practising the Ovi Store game and etc.
|2=[http://talk.maemo.org/showpost.php?p=533959&amp;postcount=179 Quim Gil (Nokia)]
|3=Nokia promies N900 will get MeeGo! Or perhaps not.
|4=talk.maemo.org post}}

{{quotation|
The MeeGo prospects are already awaking more interest from software vendors and application developers. Many already came to the Nokia floor next to Mobile World Congress asking where to start. The answer is: go get an N900 and start developing on Qt with it. This is the best and fastest path to target forthcoming MeeGo handsets.
|2=[http://talk.maemo.org/showpost.php?p=533778&amp;postcount=169 Quim Gil (Nokia)]
|3=Nokia promies N900 will get MeeGo! Or perhaps not.
|4=talk.maemo.org post}}

=== The MeeGo project has announced support for the N900.  What does it really mean for my N900 ? ===

{{quotation|
What that [http://meego.com/community/blogs/valhalla/2010/towards-day-one blog post] talks about is MeeGo [[:wikipedia:Vanilla_software|vanilla]] support announced by the MeeGo project. This is not Harmattan support with Harmattan apps by Nokia. It's Nokia and not the MeeGo project who has the word on Nokia deliveries.

Still, N900 users concerned about &quot;the future of the N900&quot; now know that their hardware is in the real track for future support. More answers to come as the Harmattan [[:wikipedia:Alpha_release|alpha release]] approaches.
|2=[http://talk.maemo.org/showpost.php?p=555026&amp;postcount=9 Quim Gil (Nokia)]
|3=MeeGo: Towards Day One
|4=talk.maemo.org post}}

{{quotation|
MeeGo will come with a reference [[:wikipedia:User_experience|UX]] and reference [[:wikipedia:Open-source_software|OSS]] apps. If someone is expecting official Nokia apps then this is another story. The story of 'Harmattan running in the N900'. We have dicussed this. Nothing new on that front.
|2=[http://talk.maemo.org/showpost.php?p=555535&amp;postcount=54 Quim Gil (Nokia)]
|3=MeeGo: Towards Day One
|4=talk.maemo.org post}}

{{quotation|
That said, please do not take this yet as a commitment to fully productise MeeGo on N900. I am quite confident that we will end up having a really good developer distro for N900 already but committing to stabilise a consumer-grade MeeGo 1.0 (first half this year) for N900 is another story. That is a product business decision beyond my scope. Also, we do not yet know about MeeGo 1 release content. I am not yet sure if I would be personally ready to let my Maemo5 go for the first MeeGo release in my daily N900 use.
|2=[http://meego.com/community/blogs/valhalla/2010/towards-day-one Valtteri Halla (Nokia)]
|3=Towards Day One
|4=MeeGo community blog post}}

{{quotation|
Making MeeGo work on the N900 is costing money already now. There is a team working on this as we speak, and as MeeGo first code release is taking shape.

The N900 was announced as official ARM hardware platform for MeeGo. This means that you can expect an open source operating system working on the N900 with a MeeGo API allowing you to install and run MeeGo applications.

The open source evolution path of the N900 is quite clear and looking good.

What Nokia hasn't announced yet is the commercial evolution path beyond the Maemo 5 official updates that it is granted that will keep coming. Yes, this is the same old question &quot;Harmattan / MeeGo officially supported for the N900&quot; and the [[#When_will_you_release_any_news_on_Harmattan_.3F|same answer still prevails]].
|2=[http://talk.maemo.org/showpost.php?p=568759&amp;postcount=151 Quim Gil (Nokia)]
|3=N900 NOT upgradeable to MeeGo
|4=talk.maemo.org post}}

=== Will Harmattan/Meego be supported on the N900 for the average consumer and not just for for developers ? ===

{{quotation|
Put this MeeGo support in perspective:

* From unstable to stable, if MeeGo doesn't make developers happy it will never make users happy. Developer happiness is a required milestone no matter what.

* Leaving aside the Nokia-centric perspective, if MeeGo doesn't make users happy by own merits it will give a hard time to device vendors making happy their customers. So again user happiness is basically a milestone for MeeGo no matter what.

Sure, still this doesn't answer the question of Nokia's Harmattan official support and Nokia proprietary apps, but maybe these two axis help you figuring out worst case scenarios.
|2=[http://talk.maemo.org/showpost.php?p=569428&amp;postcount=223 Quim Gil (Nokia)]
|3=N900 NOT upgradeable to MeeGo
|4=talk.maemo.org post}}

{{quotation|
What Nokia hasn't announced yet is the commercial evolution path beyond the Maemo 5 official updates that it is granted that will keep coming. Yes, this is the same old question &quot;Harmattan / MeeGo officially supported for the N900&quot; and the [[#When_will_you_release_any_news_on_Harmattan_.3F|same answer still prevails]].
|2=[http://talk.maemo.org/showpost.php?p=568759&amp;postcount=151 Quim Gil (Nokia)]
|3=N900 NOT upgradeable to MeeGo
|4=talk.maemo.org post}}

=== How many application running on MeeGo 1 will be able to run on Maemo 5 ? ===

{{quotation|
And I repeat -- for what of the new software runs on N900 -- I simply do not know. Looking at the characteristics of our hardware and other plans, not all, I'm sure! But certainly many many apps will run.
|2=[https://www.blogger.com/comment.g?blogID=16130344&amp;postID=78857428363981643 Ari Jaaksi (Nokia)]
|3=N900, MeeGo, and Barcelona
|4=blog comment}}

=== Is there any designed obsolescence for the N900 ? ===

=== Nokia only sell hardware why would they considering device backward compatibility. ===

{{quotation|
This argument combined with the argument of the 'designed obsolescence' also pops up regularly.

It is true that 'Nokia sells hardware' but this is just part of the story. Nokia develops a consumer offering based on devices, software and services. Hardware is very important in this strategy and so are the software platforms, the application developer ecosystem and the Ovi services. As opposed to a specific device, software and services can be continuous and evolutionary. They can support very well the very important job of customer retention.

If the owners of a Nokia XXX are happy with this offering, one day they will move to Nokia XXY, or perhaps Nokia YYY. They will recommend Nokia to their relatives and friends, etc.

If the owner of a Nokia XXX is unhappy because one or more of the pieces described above doesn't work, they will start their walk away to other competitors.

So you might get WONTFIXES and FIXED in [next release], and that [next release] might or might not be available for your next device. But don't think that Nokia doesn't care about bugs in current releases and about the satisfaction of the users getting those bugs.
|2=[http://talk.maemo.org/showpost.php?p=553499&amp;postcount=175 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

=== Why can't we get all the drivers for the N900 ? ===

{{quotation|
Setting pure [[:wikipedia:Open-source_software|OSS]] expectations on Maemo/N900 ignoring the business aspects Nokia has to deal with (e.g. giving away interesting information to competitors) is probably not a good business.
|2=[http://talk.maemo.org/showpost.php?p=551636&amp;postcount=70 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

=== Why can't Nokia promise the N900 will get MeeGo ? ===

{{quotation|
Intel and Nokia are still discussing the last details about the MeeGo architecture. In technical terms this means that still today nobody knows what exactly the MeeGo OS will consist of. Imagine a month ago, two months ago, three...

... (You have to consider) the jump from Maemo 5 to Harmattan/MeeGo, which represents a deep change in the OS plus a total rewrite of the applications.

Still, the chance is there. The sooner you demand an answer the easiest is to get a conservative silence. The closer we get to Harmattan / MeeGo stable releases the easiest is to give accurate technical and business answers.
|2=[http://talk.maemo.org/showpost.php?p=551680&amp;postcount=82 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

{{quotation|
As per August 2010 &quot;it’s possible for power testers to install and run MeeGo 1.1 unstable in the Nokia N900.&quot;
|2=[http://flors.wordpress.com/2010/08/10/running-meego-1-1-unstable-in-your-n900/ Quim Gil (Nokia)]
|3=Running MeeGo 1.1 unstable in your N900
|4=blog post comment}}

=== The N900 has a OMAP3 and it has been said that the next device will be using the same.  What technical reasons are there that would make the availability of MeeGo 1 on N900 an unreasonable expectation? ===

{{quotation|
Nobody is saying the expectation is unreasonable. Only the timing could be more reasonable.

For instance, &quot;pretty much the same hardware&quot; is a guess before the hardware details of a new device are announced. Yes, it will be based on OMAP but there are more elements in the hardware equation.
|2=[http://talk.maemo.org/showpost.php?p=552071&amp;postcount=137 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

=== How is Nokia marketing the N900 ?  Is it a phone ? ===

{{quotation|
It is sold as a mobile computer with the Internet in its heart, and it was introduced as 'step 4 of 5' for tech leaders / lovers. If you want a mature Nokia mobile phone with extensive Java support and full SIM features then there are plenty of choices based on Series40 and Symbian. I think Nokia has been clear on that since http://maemo.nokia.com was launched this Summer.
|2=[http://talk.maemo.org/showpost.php?p=551740&amp;postcount=94 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

=== A blogger on cnet asia claimed Nokia says no MeeGo for N900.  True? ===

{{quotation|
[http://asia.cnet.com/crave/2010/03/15/nokia-n900-not-upgradeable-to-meego/ The blogger misunderstood] an alleged Nokia source quote, which was &quot;Maemo on Nokia N900 is not upgradeable to MeeGo&quot;, to mean that the N900 will not get MeeGo. What it actually means is that there is no direct OS upgrade path (ie, SSU). As Valtteri Halla stated, the N900 will get a developer build of MeeGo (and it will have to be installed fresh).  There has been no official word yet on whether a commercial version will or will not be released.
|2=[http://meego.com/community/blogs/valhalla/2010/towards-day-one Valtteri Halla (Nokia)]
|3=Towards Day One
|4=MeeGo community blog post}}


[[#top|top]]

== Questions &amp; Answers about Maemo 5 ==

=== Will Nokia official support MMS in Maemo 5 ? ===

{{quotation|
... (W)e have no intention of supporting MMS in Fremantle ourselves. That was and is our plan.
|2=[http://talk.maemo.org/showpost.php?p=486420&amp;postcount=367 Quim Gil (Nokia)]
|3=[Announce] fMMS for N900
|4=talk.maemo.org post}}

Editor note: Community member Frals has developed an application ([[fMMS]]) for sending and receiving MMS.

{{quotation|1=
We have contacted frals to congratulate him for his work, and to offer him concrete help in areas where help is missing. Nothing new, we have been doing this with other [[Fremantle Stars]] (I guess nobody doubts that frals is a Star).

We will help him with the [[:wikipedia:User_interface|UI]] in the lines of the [http://talk.maemo.org/showthread.php?p=393329 UX Meets Code] hackfest, and we will also help dealing with some Maemo interfaces fMMS needs (the release of the wappushd-dev package in the last Maemo SDK update was a first step).
|2=[http://talk.maemo.org/showpost.php?p=486420&amp;postcount=367 Quim Gil (Nokia)]
|3=[Announce] fMMS for N900
|4=talk.maemo.org post}}

=== Why should I report bugs for Maemo 5, everything is marked as WONTFIX or will be fixed in Harmattan ? ===

=== Is Nokia still working on bugs fixing for Maemo 5 ? ===

Since its launch date on November 22, 2009, Maemo 5 (official platform and applications) has received 698 patches (as of August 2, 2010) 

&lt;u&gt;August 2, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=10371 1]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=7735,10206 2]

&lt;u&gt;July 26, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4520,5589,9389 3]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=8830 1]

&lt;u&gt;July 19, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=9127,10828 2]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=10423,10900 2]

&lt;u&gt;July 12, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=6694,9534,9640,10403,10470,10850 6]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5522,6807,6898,8394,9214,10283,10357,10390,10435,10792 10]

&lt;u&gt;July 05, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=7017,7256,10497,10762 4]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=7184,9334,10290,10424,10442,10495 6]

&lt;u&gt;June 28, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4339,4583,4589,5637,6183,6302,6739,6931,7733,9209,9527,9562,10734 13]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5766,6052,6835,7190,8747,10345,10404,10410,10613,10708 10]

&lt;u&gt;June 21, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=6632,8944,9370,9743,10310,10393 6]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=6876,8555,9557 3]

&lt;u&gt;June 14, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4564,9664,9722,9977,10005 5]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=3941,5501,5717,8441,8903,10448,10557 7]

&lt;u&gt;June 7, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=5903,6099,6996,7130,7514,9786,9948,10114,10280,10476 10]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5218,6696,8066,9361,9680,10216,10443 7]

&lt;u&gt;May 31, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=6816,7465,9102,9368,10270,10352,10376 7]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=6016,6859,7052,8828,8829,9922,10137 7]

&lt;u&gt;May 26, 2010&lt;/u&gt;

[[Maemo_5/PR1.2|PR 1.2]] is released to the public.

&lt;u&gt;May 24, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=10207 1]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5480,7691,8958 3]

&lt;u&gt;May 17, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=8671,9296 2]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=9973 1]

&lt;u&gt;May 10, 2010&lt;/u&gt; - Corresponding, approximately, to Version 10.2010.19-1.002(PR 1.2)

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=2918,10041 2]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=9702,9732,10101,10108 4]

&lt;u&gt;May 3, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=8947,9270,9350,9651,9854,9951 6]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=6016,6375,7275,8954 4]

&lt;u&gt;April 26, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=7234,7971 2]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=6570,7952,8481,9242,9926 5]

&lt;u&gt;April 19, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=8373 1]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=7802 1]

&lt;u&gt;April 12, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=6576,9459,9662,9822,9849 5]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5033,6067,6687,8050,8332,8448,9809 7]

&lt;u&gt;April 5, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4637,5982,6558,8715,9688 5]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=8082,9376,9621,9738 4]

&lt;u&gt;March 29, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=5917,6144,6878,7147,9624 5]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=7559,7926,7996,9566 4]

&lt;u&gt;March 22, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=2501,5712,6176,7151,7432,7844,8553,9272,9433,9552,9577 11]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5510,6503,7168,7701,8091,9084,9231,9243,9308,9501,9555 11]

&lt;u&gt;March 15, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=3323,3890,5420,8958,9057,9237,9430 7]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=3441,6553,6748,8036,8194,9449,9460,9504,9532 9]

&lt;u&gt;March 8, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4789,5168,5554,5694,5723,5838,6059,6193,6582,7054,7322,7743,8207,8552,9117,9144,9426 17]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5705,5746,5783,8335,8653,8678,8889,9020,9182,9362,9365 11]

&lt;u&gt;March 1, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4729,5516,5674,6746,7133,7954,8011,8052,8268,8396,8713,9073,9194 13]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=3748,3832,5276,5337,5391,5560,5810,5905,6194,6907,7235,7335,8129,8454,8573,9229 16]

&lt;u&gt;February 22, 2010&lt;/u&gt; 

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=2501,4845,5496,6099,6233,6703,6931,6993,7843,7852,7972,8004,8133,9050,9059 15]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5503,5894,6066,6342,6692,6823,7160,7394,7536,8022,8495,8854,8913,9048,9080 15]

&lt;u&gt;February 16, 2010&lt;/u&gt;

[[Maemo_5/PR1.1.1|PR 1.1.1]] is released to the public.

&lt;u&gt;February 15, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=5524,6197,6450,6699,6895,7552,7642,7668,7694,7773,8069 11]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=304,2962,4053,5546,6273,6372,6396,6431,6760,7052,7470,7758,8002,8035,8104,8159,8169,8175,8189,8310,8463,8581,8604,8606,8877,8920,8940,8954,9005,9010 30]

&lt;u&gt;February 8, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4608,5173,5457,5550,6365,6467,7350,7637,7707,7774,7807,7821,8038,8390,8415,8623,8727,8731,8742,8773 20]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5847,6317,6412,6598,6673,6702,6743,6769,6920,6936,7227,7375,7480,7794,7933,8022,8115,8117,8276,8383,8495,8525,8574,8594,8683,8763,8784,8845 28]

&lt;u&gt;February 1, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=1635,3659,4579,4638,4658,4695,5284,6069,6088,6148,6149,6615,7285,7477,7687,7843,7852,8257,8560 19]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=3387,3766,5318,5334,5526,5894,6095,6493,6521,6857,7124,7364,7445,7683,7886,8087,8252,8441,8499,8670,8696,8698 22]

&lt;u&gt;January 25, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4640,6275,6502,6940,6982,7029,7283,7345,7476,7757,7803,8172 12]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=1801,3307,5566,5836,5869,6048,6184,6481,6578,6616,6641,6819,6909,7167,7177,7200,7211,7212,7416,7446,7483,7518,7555,7634,7806,7848,7923,8136,8230,8320,8362,8385,8428 33]

&lt;u&gt;January 18, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4619,4718,5530,5609,6284,6334,6470,6476,6517,6545,6662,6715,6734,6816,6997,7101,7126,7282,7321,7327,7411,7444,7513,7516,7521,7766,7844,7849,7882,7893 30]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=3675,4834,4876,5285,5417,5485,5505,5663,5684,5720,5829,5894,6153,6575,6671,6677,6692,6733,6737,6838,6876,6882,6907,7060,7174,7279,7337,7359,7469,7485,7566,7567,7568,7620,7718,7736,7795,7832,7856,7858,7890,7910,7914,7958,7995,8010,8027,8043 48]

&lt;u&gt;January 14, 2010&lt;/u&gt;

[[Maemo 5/PR1.1|PR 1.1]] is released to the public.

&lt;u&gt;January 11, 2010&lt;/u&gt; - Corresponding, approximately, to Version 3.2010.02-8.002 (PR 1.1.1)

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4161,6868,6931,7215,7315,7388,7603,7639 8]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=2987,5305,5670,6270,6384,7464,7515 11]

&lt;u&gt;January 4, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=1163,3987,4035,4190,4577,5152,5419,5421,5716,5819,5820,6060,6350,6416,6494,6506,7001,7271,7274,7280,7357 21]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=1800,2627,3941,4852,5522,5824,6201,6351,6945,7236,7353,7469,7525 13]

&lt;u&gt;December 28, 2009&lt;/u&gt; - Corresponding, approximately, to Version 2.2009.51-1 (PR 1.1)

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=6410,6506,7079,7222 4]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=1112,5353,5357,5380,5805,5901,6107,7220,7339 9]

&lt;u&gt;December 21, 2009&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=5388,6017,6060,6207,6312,6361,6594,6675,6752,6792,6878,6932,6953,7067,7073,7082 16]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=4976,5634,5868,5870,5945,6269,6279,6300,6651,6669,6700,6770,6771,6807,6811,6950,6984,7027,7048,7139 20]

&lt;u&gt;December 14, 2009&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=3957,4785,4851,5597,5899,5996,6025,6101,6470,6530,6608,6736,6877 13]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5341,6541,6570,6622,6644,6787,6795 7]

&lt;u&gt;December 7, 2009&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : 0

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=3941,4843,5450,6349,6544,6612 6]

&lt;u&gt;November 30, 2009&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=5518,5601,5761,6203,6268 5]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5790,6027,6100,6219,6404 5]

&lt;u&gt;November 23, 2009&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=5315,5626,5858,5911,5993,6145,6261 7]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=3675,3762,5347,5440,5493,5527,5545,5558,5783,5894,6138 11]

Source : http://www.octofish.net/bugjar/

=== Can Nokia really works on two different OS (Maemo 5 and MeeGo) at the same time ? ===

{{quotation|
Maemo 5 has a whole separate team focused right now on bringing you lots of goodies in the already announced upcoming PR1.2 release for Maemo 5. Nokia is a pretty big company and Maemo's not so small either anymore, we're capable of multitasking and just throwing more people at one task doesn't necessarily make it go any faster (as those who have developed software surely can testify to)
|2=[http://talk.maemo.org/showpost.php?p=527595&amp;postcount=12 Tomas Junnonen (Nokia)]
|3=Harmattan UI framework development is opened
|4=talk.maemo.org post}}

Editor note : Also, keep in mind that Nokia is also working on Symbian at the same time.

=== Anything new coming to Ovi Store for Maemo 5 ? ===

{{quotation|
Updates coming here, too ....
|2=[https://www.blogger.com/comment.g?blogID=16130344&amp;postID=78857428363981643  Ari Jaaksi (Nokia)]
|3=N900, MeeGo, Bercelona
|4=blog post comment}}

=== Why is Ovi Suite still not working with Maemo 5 ? ===

{{quotation|
Improving all the time. N900 is still young, and as a new platform not everything works. Symbian has been around for years, so it is further in many areas.
|2=[https://www.blogger.com/comment.g?blogID=16130344&amp;postID=78857428363981643  Ari Jaaksi (Nokia)]
|3=N900, MeeGo, Bercelona
|4=blog post comment}}

{{quotation|
Nokia N900 supports a range of Ovi services including Ovi Store, Contacts on Ovi, Ovi Share, Nokia Messaging, and Ovi Maps. Comes with Music and other services that require platform-wide support of DRM will be supported in our MeeGo-based devices which we intend to provide with Microsoft PlayReady-based DRM technology. Naturally, we'll be working to increase support for all Ovi services as we go forward with MeeGo.
|2=[http://mobiletablets.blogspot.com/2010/03/nokia-spotlight-interview-with-peter.html Peter Schneider (Nokia)]
|3=Nokia Spotlight: Interview with Peter Schneider - Part 1
|4=mobiletablets.blogspot.com post
}}

{{quotation|
&quot;We are especially looking for Nokia N900 and MS Outlook 2010 users. We will tell more about the new features and improvements in Nokia Ovi Suite 2.2 when the testing starts.&quot;
|2=[http://discussions.europe.nokia.com/t5/Nokia-Ovi-Suite/Registration-for-Beta-Test-of-Nokia-Ovi-Suite-release-2-2-has/td-p/666912 Kale (Nokia Ovi Suite Beta Test Team)]
|3=Registration for Beta Test of Nokia Ovi Suite release 2.2 has started!
|4=Nokia Support post}}

Editor note: Ovi Suite support was integrated in [[Maemo 5/PR1.3#New features|PR1.3]]

=== Can we expect Java support in Maemo 5 ? ===

{{quotation|
Not officially supported in Maemo 5. If someone brings it fine, but not us. We have been always consistent on this.
|2=[http://talk.maemo.org/showpost.php?p=553534&amp;postcount=179 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

Editor note: the Maemo community has added [[Java|Java support]] via icedtea and micro emulator.

=== Can we expect hardware accelerated flash 10 in Maemo 5 ? ===

{{quotation|
We can't happily add to our roadmaps technologies owned by others. In a normal world the first one announcing support plans of Adobe Flash in ARM platforms would be Adobe.
|2=[http://talk.maemo.org/showpost.php?p=552116&amp;postcount=141 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

=== Why free Ovi Maps for Symbian has been annouced and there is still nothing for Maemo 5 ? ===

{{quotation|
In developer terms, Symbian had already navigation implemented and removing the payment step was simple. Maemo didn't have navigation implemented so no matter what new policies come, the implementation must be developed first.
|2=[http://talk.maemo.org/showpost.php?p=552027&amp;postcount=133 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=tak.maemo.org post}}

=== Are there still applications being developed at Nokia for Maemo 5 ? ===

YouTube video of a new game. (See source)

Source : [http://www.youtube.com/watch?v=K7lHPX_iHKs Nokia Conversation]

{{quotation|
We haven't been very forthcoming about the content being created for the next releases of Maemo 5. I can assure you, there is a lot of great content being developed, and you should be able to get your hands on it soonish.
|2=[http://talk.maemo.org/showpost.php?p=551416&amp;postcount=48 Urho Konttori (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

{{quotation|
The Fremantle team, lead by people like konttori, keeps working on new updates. Fixing, polishing and bringing new features to Maemo 5.

Of course we put a lot of attention on Harmattan/MeeGo/Step 5 since this is what we need to do in order to be and stay in the premier league.
|2=[http://talk.maemo.org/showpost.php?p=552027&amp;postcount=133 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

{{quotation|
We just launched N900. It is a brand new device. More updates and new software coming all the time. Even more now because of MeeGo, I strongly believe.

Honestly, I'm a bit puzzled why this MeeGo announcement was interpreted so that we would be abandoning N900. Who said so? What is it in the MeeGo that makes you think so? -- I'm trying to do my best to explain why the opposite is true.
|2=[https://www.blogger.com/comment.g?blogID=16130344&amp;postID=78857428363981643&amp;pli=1 Ari Jaaksi (Nokia)]
|3=N900, Meego, and Barcelona
|4=blog post comment}}

=== Is there a roadmap for Maemo 5 ===

{{quotation|
Somewhat related update on the roadmap, I still haven't received green light from marketing to publish it.
|2=[http://talk.maemo.org/showpost.php?p=556030&amp;postcount=203 Urho Konttori (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

{{quotation|
Roadmap page is a great idea in my opinion, the only issue being in it the dates, which we don't want to commit to. But I'm sure a roadmap can be built without such. I'll take the action of following that up.
|2=[http://talk.maemo.org/showpost.php?p=551416&amp;postcount=48 Urho Konttori (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

{{quotation|
There are official plans and there are tentative plans. They haven't been communicated, but they exist.
|2=[http://talk.maemo.org/showpost.php?p=551584&amp;postcount=64 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

=== Maemo 5 is still new.  Why was MeeGo announced so quickly after Maemo 5 release ? ===

{{quotation|1=
Welcome to open source and open development. Actually the Maemo team and now MeeGo are just putting some toes of one foot in the open pool, so get used to this. Public roadmaps will tell you about features you currently don't have in your device, there will be always something apparently cooler making you think if you are buying your product in the right time. 

[http://flors.wordpress.com/2008/06/01/maemo-linuxtag-update Harmattan] with Qt officially supported were announced in June 2008. [http://flors.wordpress.com/2009/07/05/maemo-harmattan-keynote-at-gcds/ Harmattan based on Qt and the cross-platform strategy with Symbian] were announced in July 2009. In the Maemo Summit (still before sales start) we gave [[Maemo_Summit_2009|more details]] about Harmattan, Qt, the changes and the transition path. This forum, Planet Maemo and the tech media have been reporting about this horizon of changes that was coming. 

MeeGo is a culmination of that, but in terms of technical changes affecting N900 users or Maemo 5 application developers it doesn't bring much that wasn't already in the pipeline (Qt and Web Runtime API, with its consequences).

But really, all this is good news. Like any structural change it gives some short term noise, insecurity and hassle but I'm sure it will pay off. Maemo 5 is great and the Fremantle team keeps working in updates. But if Maemo 5 and its linear evolution would be the only plan of Nokia, then I believe that N900 would have reasons to worry about the future.

By the way, the basics of the Fremantle game (except Telephony) were mostly announced in the [[Maemo_Summit_2008|Maemo Summit 2008]] and the [http://maemo.org/news/announcements/first_maemo_5_sdk_release_targeting_platform_developers/ first release] (totally targeted to hardcore developers) went out in December 2008 (with the announcement of lack of support for OMAP2 devices = N810 and N800). That also created a hassle in the community, but if we wouldn't have made those steps at that time then you wouldn't have got the Maemo 5 you are enjoying. There was plenty of signal-no-noise feedback got during the Fremantle unstable phase that helped improving the stable releases you are using. We are taking the same open approach with Harmattan and even deeper (thanks to http://maemo.gitorious.org and MeeGo). Don't feel part of a problem because already now you are part of a solution.
|2=[http://talk.maemo.org/showpost.php?p=556430&amp;postcount=215 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

=== What are the officially-confirmed major feature in future Maemo 5 release ? ===

==== PR1.2 ====

# QT 4.6. Source: [Confirmed by Qgil, Trolltech, etc.]
# Live wallpaper. Source: [https://bugs.maemo.org/show_bug.cgi?id=3910#c5 Bug 3910]
# Customizable single menu, no more &quot;More&quot;. Source: [https://bugs.maemo.org/show_bug.cgi?id=5349 Bug 5349] 

==== PR1.3 ====

# QT Mobility. Source: [http://talk.maemo.org/showpost.php?p=561617&amp;postcount=4 Urho Konttori (Nokia)]


Editor note: PR1.2 and PR1.3 were released in May and October 2010, respectively.

[[#top|top]]

== Questions &amp; Answers about Meego ==

Please refer to the [http://meego.com/about/faq MeeGo faq] for more information.

=== Who is responsible for MeeGo ? ===

{{quotation|
The MeeGo project is the responsible of the MeeGo releases and hardware *they* support for *their* releases.  The current supporters of MeeGo are Intel, Nokia and the Linux Foundation.
|2=[http://talk.maemo.org/showpost.php?p=555005&amp;postcount=7 Quim Gil (Nokia)]
|3=MeeGo: Towards Day One
|4=talk.maemo.org post}}

{{quotation|
Get this thing straight: this is http://meego.com - a free software project hosted by the Linux Foundation. Yes, Nokia has a big involvement there. No, it is not a Nokia project.
|2=[http://talk.maemo.org/showpost.php?p=555111&amp;postcount=23 Quim Gil (Nokia)]
|3=MeeGo: Towards Day One
|4=talk.maemo.org post}}

=== What devices will be supported by MeeGo ? ===

{{quotation|
The current supporters of MeeGo are Intel, Nokia and the Linux Foundation. The (Linux Fondation) has no own hardware so has nothing to support. Intel has chipsets and development boards (there is no Netbook from Intel, they are from vendors using Intel chipsets) and Nokia has devices (no ARM development board from Nokia). Hence the logical conclusion of [http://meego.com/community/blogs/valhalla/2010/towards-day-one announcing support for Atom boards and the N900] at this point. This will change if other vendors appear offering official support for the hardware they are responsible of.
|2=[http://talk.maemo.org/showpost.php?p=555005&amp;postcount=7 Quim Gil (Nokia)]
|3=MeeGo: Towards Day One
|4=talk.maemo.org post}}

=== What steps is Nokia taking for open source drivers on MeeGo ? ===

{{quotation|
Basically, Nokia puts considerable effort pushing hardware vendors in that direction. Open source drivers play well with the Nokia chipset strategy and with Linux development. But of course these companies need to make business, so asking them to open their [[:wikipedia:Intellectual_Property_Rights|IPR]] without suggesting any alternative is not the best approach.

MeeGo, with Intel as initial founder (a company with good track offering open drivers), is one of the biggest and most concrete public actions Nokia could push in that direction.
|2=[http://talk.maemo.org/showpost.php?p=554051&amp;postcount=14 Quim Gil (Nokia)]
|3=Will MeeGo finally end the Rapid Obsolescence Syndrome (ROS)
|4=talk.maemo.org post}}

{{quotation|
Closed hardware driver are problematic only when the owners don't provide updated versions for new releases. The MeeGo project is working hard to have those drivers owners on board.
|2=[http://talk.maemo.org/showpost.php?p=553750&amp;postcount=6 Quim Gil (Nokia)]
|3=Will MeeGo finally end the Rapid Obsolescence Syndrome (ROS)
|4=talk.maemo.org post}}

=== Is the UX Componant of MeeGo device-specific ? ===

{{quotation|
No matter how many [[:wikipedia:User_experience|UX]] changes vendors do, they need to provide the official MeeGo [[:wikipedia:API|API]] if they want to call their product a MeeGo device.
|2=[http://talk.maemo.org/showpost.php?p=553750&amp;postcount=6 Quim Gil (Nokia)]
|3=Will MeeGo finally end the Rapid Obsolescence Syndrome (ROS)
|4=talk.maemo.org post}}

=== How many application written for Maemo 5 will be able to run in MeeGo 1 ? ===

{{quotation|
... (T)he MeeGo API is based on Qt (and Web Runtime), so Qt apps for Maemo 5 will work there with little effort. The rest depends on how fast MeeGo devices and Harmattan show up in the market.
|2=[http://talk.maemo.org/showpost.php?p=555470&amp;postcount=50 Quim Gil (Nokia)]
|3=MeeGo: Towards Day One
|4=talk.maemo.org post}}

=== Will my favorite Maemo 5 GTK+ application run on MeeGo 1 ? ===

{{quotation|
[http://mail.gnome.org/archives/mobile-devel-list/2010-February/msg00010.html Up to the GTK+ and Hildon maintainers] in the first place. They are the first ones to decide whether it's worth the effort of aligning the GTK+ approaches of Moblin and Maemo, get the Hildon libraries running on top, try or try not to work on adapted bindings to give to GTK+/Hildon apps a MeeGo native look&amp;feel...

GTK+ and Clutter are maintained as official platform libraries in MeeGo but the API is not supported officially. This means that the APIs are there to be used but the project doesn't make any promise on maintenance, completeness, quality, API management across releases... This doesn't mean much if there is a good community maintenance. For example, Python has been never officially supported, and I bet the average user of a Python apps in Extras is not aware about the support status and probably not even aware whether the app is based on Python or not. That could be the case for GTK+/Hildon apps in MeeGo, but is really not up to the MeeGo project.

fwiw the Maemo team is in talks with the GNOME Foundation to bring more GTK+/Hildon apps to Maemo 5 and to help on the kick-off of the 'GTK+ community support'. We started the talks in the context of Harmattan and we are just continuing in the context of MeeGo. We hope to get something concrete to explain soon.
|2=[http://talk.maemo.org/showpost.php?p=556430&amp;postcount=215 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org}}

=== A network provider in my country has announced support for MeeGo. Is it a good thing ? ===

{{quotation|
Expect to see more announcements like this, some from partners you like, some of partners you dislike. Any new announcement adds more developers and users to MeeGo so, really, you should be happy about each one of them.
|2=[http://talk.maemo.org/showpost.php?p=555057&amp;postcount=30 Quim Gil (Nokia)]
|3=Orange is getting into MeeGo!
|4=talk.maemo.org}}

=== Network provider adapts OS to their needs.  Should I be worried that my network provider cripple MeeGo ? ===

{{quotation|
So it looks like (network provider) will take MeeGo [[:wikipedia:Vanilla_software|vanilla]] and will adapt it to their needs. Great! This is what MeeGo is meant for, btw. If this means that they will put developers to tweak their own [[:wikipedia:User_experience|UX]] variant and create their own (Qt / Web Runtime based?) apps, great! All this will bring useful feedback about the UX layers and the [[:wikipedia:API|API]], for sure. Whatever else they do to adapt MeeGo will be also useful feedback for the platform development.

Then I guess MeeGo apps will be installable on these MeeGo based (network provider) devices? How can this be bad news for the developers and the users of those apps in other devices?

If you don't like what (network provider) does with MeeGo then don't get a MeeGo device from (network provider). I really don't understand the point of whining.
|2=[http://talk.maemo.org/showpost.php?p=555057&amp;postcount=30 Quim Gil (Nokia)]
|3=Orange is getting into MeeGo!
|4=talk.maemo.org post}}

Editor note: this discussion was about Orange

=== Would it be possible for a MeeGo partner to have too much influence on the platform ? ===

{{quotation|
&quot;Too much influence over the platform&quot;, what would this mean in practice? Please figure this out before worrying, otherwise you don't really know what you are worrying about. Bringing plenty of bugfixes in the form of patches? Contributing new features? Proposing better alternatives for software components that they would maintain?
|2=[http://talk.maemo.org/showpost.php?p=555057&amp;postcount=30 Quim Gil (Nokia)]
|3=Orange is getting into MeeGo!
|4=talk.maemo.org post}}

[[#top|top]]

== Questions &amp; Answers about Harmattan ==

=== I am confused. What is Harmattan and what is MeeGo? What is the difference between both? Do they share common features? ===

{{quotation|
So what’s with (Harmattan)? (Harmattan) will be MeeGo compatible.....consider (Harmattan) already a MeeGo instance.
|2=[https://www.blogger.com/comment.g?blogID=16130344&amp;postID=78857428363981643&amp;pli=1 Ari Jaaksi (Nokia)]
|3=N900, MeeGo, and Barcelona
|4=blog post comment}}

{{quotation|1=
Harmattan is the name of the software program that comes after Fremantle / Maemo 5. In the Maemo Summit we already announced it as &quot;Maemo 6&quot; in order to bring a clear signal about the major update, change of toolkit, etc.

Now MeeGo comes to the picture. &quot;Maemo 6&quot; will not be used by Nokia as a brand since all the marketing effort around the software platform will be around MeeGo.

To be clear: this is not about &quot;ditching&quot; or &quot;abandoning&quot; any platform. The Harmattan program keeps working with the same plans than last week, no matter the name of the product they will deliver. Maemo 6 and Moblin 2.x merge and have a successor called MeeGo. Current Maemo people will look at it and will say &quot;looks like his mother!&quot;. Current Moblin people will look at it and will say &quot;looks like his father!&quot; (or choose your preferred gender) Of course you will see changes compared to Maemo 5, but these changes were coming anyway with Maemo 6.

What does this mean exactly for Harmattan/MeeGo? It means different things for different people:

* For end users nothing really changes, apart from a name most of them were not aware of anyway.
* For application developers not much changes. Harmattan's developer offering is based on Qt 4.6 + Qt Creator, Web Runtime + Aptana. Same for MeeGo and by the way same for Symbian. Harmattan might have extended APIs unique to Nokia devices (e.g. Ovi [[:wikipedia:API|APIs]]), but we'll see and this is part of the MeeGo flexibility anyway. Wait for the [[:wikipedia:SDK|SDKs]] to be released and then we can discuss in more detail. There will be also the APIs available for those willing to use them, provided directly by other open source components in the platform (e.g. GStreamer). Developers will be of course free to use them, at the expense of loosing compatibility with Symbian, and with MeeGo... depends on the component and to be seen as soon as there is a detailed MeeGo architecture public. Then there will be the obvious difference in packaging (deb still for Harmattan, rpm for MeeGo) but this won't be the big issue and anyway compatibility with Symbian implies specific packaging as well.
* For those caring about the platform in depth, Harmattan =! MeeGo. If we would make Harmattan identical to MeeGo then we would need to postpone dates and, really not for a good reason. Not a reason for application developers (the API is there anyway) and not a good reason for end users, who could not care less about packaging and some obscure middleware components. This is the only reason making Ari Jaaksi refer to Harmattan as a &quot;MeeGo instance&quot; instead of just &quot;MeeGo product&quot;.

This is why we are dropping the &quot;Maemo 6&quot; brand while keeping all the Harmattan development full speed and in the same direction that it was. 
|2=[http://talk.maemo.org/showpost.php?p=529073&amp;postcount=14 Quim Gil (Nokia)]
|3=Renaming &quot;Maemo 6&quot; to MeeGo / Harmattan
|4=talk.maemo.org post}}

{{quotation|
Harmattan and MeeGo come with a whole Qt based application and [[:wikipedia:User_interaction|UI]] framework and a Qt style API. Maemo 5 is a different story, with a GTK+ based applications and UI framework and GNOME style API.

This is what makes Harmattan quite close to MeeGo in platform terms, while Maemo 5 is really something different. That said you can reach very similar APIs with Maemo 5, and you can also add more libraries to Maemo 5 in order to fine tune the compatibility. You can also do so with Symbian, yet you don't have problems seeing that it's pointless to call Symbian MeeGo.

We can discuss this in more details once we have a MeeGo and a Harmattan list of components to compare.

PS: about the packaging... we are talking here about API compatibility.
|2=[http://talk.maemo.org/showpost.php?p=534188&amp;postcount=107 Quim Gil (Nokia)]
|3=Renaming &quot;Maemo 6&quot; to MeeGo / Harmattan
|4=talk.maemo.org post}}

{{quotation|
# There is Nokia Maemo 5 / Fremantle now. The next release would have been Nokia Maemo 6 / Harmattan. Now, it is called Meego / Harmattan instead, but it's still the same Harmattan that it was going to be. This would be way clearer if they didn't rebrand it as MeeGo yet, but they wanted to get the marketing behind that brand already. You can think of Harmattan as half MeeGo. The next release after Harmattan will be Nokia's first full MeeGo.
# You need to understand the layers, which together form an operating system. It may be difficult if you come from Windows/OS X world because they both only have one user interface. UI and applications, however are only the top of the OS pyramid. Underneath them there are a lot of stuff that actually make it all tick. That's what Meego is about, providing a common base for user interfaces and applications to be built on. When you think of Meego in general, think of everything you as an end user don't see.
# What you actually see, the UI, applications, services etc. can and will vary depending on who made the Meego device. LG's UI may look totally different from Nokia UI. You'll only see Ovi applications and services on Nokia devices. These manufacturer specific applications on top of Meego won't necessarily be open source either. But the base on which they are built on is the same.
|2='''(UNOFFICIAL)''' [http://talk.maemo.org/showpost.php?p=555158&amp;postcount=33 jsa]
|3=MeeGo: Towards Day One
|4=talk.maemo.org post}}

{{quotation|
(Harmattan) will be compatible with MeeGo.. but it is not  MeeGo.

(Harmattan) will still use Deb.. MeeGo uses RPM. 
|2='''(UNOFFICIAL)''' [http://talk.maemo.org/showpost.php?p=541972&amp;postcount=249 fatalsaint]
|3=Nokia promises N900 will get MeeGo! Or perhaps not.
|4=talk.maemo.org post}}

=== Harmattan is still using deb, will it mean it is less compatible with other MeeGo instances ? ===

{{quotation|
I bet the MeeGo build infrastructure ([[:wikipedia:OpenSUSE_Build_Service|OBS]]) will minimize the rpm/deb hassle for developers. I expect the average user not to even bother about this.
|2=[http://talk.maemo.org/showpost.php?p=553750&amp;postcount=6 Quim Gil (Nokia)]
|3=Will MeeGo finally end the Rapid Obsolescence Syndrome (ROS)
|4=talk.maemo.org post}}

=== When will you release any news on Harmattan ? ===

{{quotation|
... I said in the oldest 'Harmattan in the N900' thread that there were new things in the pipeline and that before a Harmattan alpha release (promised for 1Q2010, working on it) it was really premature to discuss or announce anything.

Harmattan/MeeGo are in pre-alpha state, we haven't even put together an early [[:wikipedia:SDK|SDK]] for the most adventurous developers, we haven't given any hardware details about the next device...
|2=[http://talk.maemo.org/showpost.php?p=551987&amp;postcount=127 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

{{quotation|
I cannot tell you when do we ship the next device. I cannot tell you how much it costs. I cannot tell the exact features because we are still working on them. I cannot tell you what is the delta between Maemo5 and (Harmattan)/MeeGo 1.0 because it is not fully clear yet. And we tell you about the new products when we are ready to tell. Business decisions. I cannot tell you how much of the (Harmattan) characteristics will run on old devices when the new devices finally ship. But go and follow Harmattan plans at maemo.org. See also the new [[:wikipedia:User_interface|UI]] framework forming up.
|2=[https://www.blogger.com/comment.g?blogID=16130344&amp;postID=78857428363981643&amp;pli=1 Ari Jaaksi (Nokia)]
|3=N900, MeeGo, and Barcelona
|4=blog post comment}}

=== Is Harmattan a transitional release toward pure MeeGo ? ===

{{quotation|
Harmattan will be the base for Nokia’s MeeGo-based devices in 2010. From an app developer’s point of view, it will be fully compatible with other MeeGo-based devices. There might be differences under the hood concerning some middleware components and, therefore, it has been referred to as transitional release, but that’s only relevant for those few that participate in the low level platform development. Qt Creator with the necessary cross-compilation toolkits will make these differences invisible to the bulk of application developers.
|2=[http://mobiletablets.blogspot.com/2010/03/nokia-spotlight-interview-with-peter.html Peter Schneider (Nokia)]
|3=Nokia Spotlight: Interview with Peter Schneider - Part 1
|4=mobiletablets.blogspot.com post}}

=== Will Nokia release their official Meego UX, applications like Ovi Maps, Mail for Exchange, Nokia Messaging etc to the community-supported Meego for N900? ===

{{quotation|1=
There will not be an official MeeGo-Harmattan release for the N900, but there is a possibility that the Nokia official UX and apps for MeeGo-Harmattan are made available to N900 users through a community effort discussed in ([http://talk.maemo.org/showthread.php?t=53551 this thread]). At this point nobody knows what and will not work. Technical discussion, R&amp;D experimentation and official MeeGo-Harmattan releases need to come first in order to tell. 
|2=[http://talk.maemo.org/showpost.php?p=677722&amp;postcount=70 Quim Gil (Nokia)]
|3=Meego-Harmattan HE
|4=talk.maemo.org post}}

[[#top|top]]

== Questions &amp; Answers about the community, Maemo.org and MeeGo.com ==

=== What will happen to maemo.org now that MeeGo has been announced ? ===

{{quotation|
The destiny of Maemo.org depends on the Maemo community (yes, you). In the meantime we keep funding the hosting and nobody is thinking of unpluggin servers or taking radical measures to stop anything here.
|2=[http://talk.maemo.org/showpost.php?p=556430&amp;postcount=215 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

=== What will happen to the council ? ===

{{quotation|
About the council, ask the current candidates. Nokia has nothing to say about this. The community created the council and the community is the one deciding what to do now and in the MeeGo context. fwiw we supported Jaffa's idea of an elected body representing 'the community' towards Nokia and somehow we think the core concept might make sense at MeeGo as well. Said that, the MeeGo project is fundamentally different since it is aimed to be an open project participated by individuals and organizations. The purpose of a Council for MeeGo needs to re-evaluated.
|2=[http://talk.maemo.org/showpost.php?p=556430&amp;postcount=215 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

The 2010 maemo.org community council has been challenged to identify what role(s) a MeeGo community council might have.  We are working on defining this and welcome input.  Meanwhile, we continue to support this community while helping establish MeeGo.com.

Source: [[User:texrat|texrat]] 20:54, 18 April 2010 (UTC) (maemo.org community council)

=== What will happen to those who work on the Maemo infrastructure and code base - there already exists a MeeGo code base and infrastructure ? ===

{{quotation|
We keep funding the Maemo.org pro development team, reviewing contracts every 6 months as we have been doing since we started 'liberating' these *master roles. Note that the Maemo.org development team decide their priorities and tasks through a public process, so it is also up to them process to decide where to invest their time. Now they are finding their counterparts in the Moblin project and the Linux Foundation, and we all will need to find the place for all of us (Nokians included e.g. Tero and myself). Giving roles implies giving admin rights on tools and servers, all this is based on trust and this takes a bit of time, as sysadmins know.
|2=[http://talk.maemo.org/showpost.php?p=556430&amp;postcount=215 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

=== What will happen to Maemo Summit ? ===

{{quotation|
The direct face-to-face time with the community remains an important part of reaching out to the community. I'm rather confident that we will have at least one get-together this year for the community. It's going to be a MeeGo community get-together and everybody is invited.
|2=[http://mobiletablets.blogspot.com/2010/03/nokia-spotlight-interview-with-peter.html Peter Schneider (Nokia)]
|3=Nokia Spotlight: Interview with Peter Schneider - Part 1
|4=mobiletablets.blogspot.com}}

[[#top|top]]

== Questions &amp; Answers about the next Harmattan/MeeGo device from Nokia ==

{{quotation|
We never ever speculate about devices before they are launched.
|2=[http://talk.maemo.org/showpost.php?p=556439&amp;postcount=217 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

[[#top|top]]

[[Category:N900]]
[[Category:Users]]</text>
    </revision>
  </page>
  <page>
    <title>What can we realistically expect</title>
    <id>3694</id>
    <revision>
      <id>42831</id>
      <timestamp>2011-03-28T09:15:04Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>/* Can we expect Java support in Maemo 5 ? */ reformat note</comment>
      <text xml:space="preserve">== Introduction ==

This wiki page was created following a lot of hot-topic questions being asked without answer which resulted in a general bad mood on Talk. It was suggested by Qgil in this [http://talk.maemo.org/showpost.php?p=550967&amp;postcount=1 post].

The purpose of this page is to compile known information and open questions into one and easy to read source.

=== Be realistic ! ===

Questions that would break a [[:wikipedia:Non-disclosure_agreement|NDA]] (non-disclosure agreement), business related questions, certain other sensitive questions and questions that have no answers at the moment can't and won't be answered.

Some examples by Quim Gil : 

{{quotation|
'''N900 hardware''', '''&quot;Official support&quot;''', '''upgrading kernel drivers''', '''Ovi Maps''', '''Flash''', '''Nokia apps''', '''industry certifications'''... most of this discussion is about '''commercial topics''', even when they sit on top of open source code.

''Emphasis added by editor''
|2=[http://talk.maemo.org/showpost.php?p=551636&amp;postcount=70 Quim Gil (Nokia)]|3=Cleaning N900 FUD|4=talk.maemo.org post}}

{{quotation|
I discuss about open source software and developer offering. I might discuss about Nokia proprietary software if that is useful. I avoid as much as possible discussions about Nokia hardware and 3rd party commercial software, just because this is totally out of my scope. Harmattan/MeeGo officially supported in the N900, Ovi Maps with free navigation, etc are business topics to be discussed with business owners. People like Peter, Janne, Ari...
|2=[http://talk.maemo.org/showpost.php?p=551703&amp;postcount=88 Quim Gil (Nokia)]|3=Cleaning N900 FUD|4=talk.maemo.org post}}

=== Reference ===

Quim Gil ([http://maemo.org/profile/view/qgil/ qgil]) : Job title - Open source advocate, Maemo Devices @ Nokia.

Ari Jaaksi ([http://maemo.org/profile/view/jaaksi/ jaaksi]) : Job title - Vice President of Maemo Software @ Nokia.

Urho Konttori ([http://maemo.org/profile/view/konttori/ konttori]) : Job title - Project Manager @ Nokia.

Tomas Junnonen ([[Maemo_Summit_2009/Day_2#Introducing_the_Harmattan_UI_framework|tomasj]]) : Job title - Developer 
@ Nokia.

Peter Schneider ([http://maemo.org/profile/view/peterschneider/ peterschneider]): Job title - Head of the global marketing team for Maemo Devices @ Nokia.

Valtteri Halla ([http://meego.com/users/valhalla valhalla]) : Job title - Director, Nokia Meego @ Nokia.

=== Disclamer ===

Please do not, and I repeat, do not take any of those answers as definitive.  This is a first draft.  Thank you for you comprehension.
Ready to dive in?

[[#top|top]]

== Questions &amp; Answers about the Nokia N900 ==

=== When will the development for the N900 be finished ? ===

{{quotation|
And in regards to finishing the work on the [[Nokia N900]], I can't put down a day either because we are not done yet either but still work on further improvements and enhancements.
|2=[http://mobiletablets.blogspot.com/2010/03/nokia-spotlight-interview-with-peter.html Peter Schneider (Nokia)]
|3=Nokia Spotlight: Interview with Peter Schneider - Part 1
|4=mobiletablets.blogspot.com post}}

=== Will Nokia support the front-facing camera on the N900 ? ===

''From'' [http://mobiletablets.blogspot.com/2010/03/nokia-spotlight-interview-with-peter.html ''mobiletablets.blogspot.com''] :

{{quotation|
At this point of time, I don't have anything to share on an application making use of forward-facing camera. I wouldn't like to speculate on things we have not announced yet.
|2=[http://mobiletablets.blogspot.com/2010/03/nokia-spotlight-interview-with-peter.html Peter Schneider (Nokia)]
|3=Nokia Spotlight: Interview with Peter Schneider - Part 1
|4=mobiletablets.blogspot.com post}}

Editor note: Video calling, using the front-facing camera, was introduced in [[Maemo 5/PR1.2#New_Features|PR1.2]]

=== What is the point of buying the N900 now that we know something else &quot;better&quot; is coming ? ===

=== Why should I start developing applications for the N900 ? ===

{{quotation|
What I want to say is: even if you are interested in the N900 alone here and now, developers (specially commercial developers) are interested in volumes and future plans. The perspectives of MeeGo with it's [[:wikipedia:API|API]] compatibility across MeeGo devices + Symbian devices is much more interesting than the focus on the N900 alone. Today there is still no MeeGo release, no MeeGo [[:wikipedia:SDK|SDK]] and no reference hardware announced, but you can get the N900 with Qt 4.6 official around the corner and a decent development environment. With your apps developed targetting the N900 you can also start practising the Ovi Store game and etc.
|2=[http://talk.maemo.org/showpost.php?p=533959&amp;postcount=179 Quim Gil (Nokia)]
|3=Nokia promies N900 will get MeeGo! Or perhaps not.
|4=talk.maemo.org post}}

{{quotation|
The MeeGo prospects are already awaking more interest from software vendors and application developers. Many already came to the Nokia floor next to Mobile World Congress asking where to start. The answer is: go get an N900 and start developing on Qt with it. This is the best and fastest path to target forthcoming MeeGo handsets.
|2=[http://talk.maemo.org/showpost.php?p=533778&amp;postcount=169 Quim Gil (Nokia)]
|3=Nokia promies N900 will get MeeGo! Or perhaps not.
|4=talk.maemo.org post}}

=== The MeeGo project has announced support for the N900.  What does it really mean for my N900 ? ===

{{quotation|
What that [http://meego.com/community/blogs/valhalla/2010/towards-day-one blog post] talks about is MeeGo [[:wikipedia:Vanilla_software|vanilla]] support announced by the MeeGo project. This is not Harmattan support with Harmattan apps by Nokia. It's Nokia and not the MeeGo project who has the word on Nokia deliveries.

Still, N900 users concerned about &quot;the future of the N900&quot; now know that their hardware is in the real track for future support. More answers to come as the Harmattan [[:wikipedia:Alpha_release|alpha release]] approaches.
|2=[http://talk.maemo.org/showpost.php?p=555026&amp;postcount=9 Quim Gil (Nokia)]
|3=MeeGo: Towards Day One
|4=talk.maemo.org post}}

{{quotation|
MeeGo will come with a reference [[:wikipedia:User_experience|UX]] and reference [[:wikipedia:Open-source_software|OSS]] apps. If someone is expecting official Nokia apps then this is another story. The story of 'Harmattan running in the N900'. We have dicussed this. Nothing new on that front.
|2=[http://talk.maemo.org/showpost.php?p=555535&amp;postcount=54 Quim Gil (Nokia)]
|3=MeeGo: Towards Day One
|4=talk.maemo.org post}}

{{quotation|
That said, please do not take this yet as a commitment to fully productise MeeGo on N900. I am quite confident that we will end up having a really good developer distro for N900 already but committing to stabilise a consumer-grade MeeGo 1.0 (first half this year) for N900 is another story. That is a product business decision beyond my scope. Also, we do not yet know about MeeGo 1 release content. I am not yet sure if I would be personally ready to let my Maemo5 go for the first MeeGo release in my daily N900 use.
|2=[http://meego.com/community/blogs/valhalla/2010/towards-day-one Valtteri Halla (Nokia)]
|3=Towards Day One
|4=MeeGo community blog post}}

{{quotation|
Making MeeGo work on the N900 is costing money already now. There is a team working on this as we speak, and as MeeGo first code release is taking shape.

The N900 was announced as official ARM hardware platform for MeeGo. This means that you can expect an open source operating system working on the N900 with a MeeGo API allowing you to install and run MeeGo applications.

The open source evolution path of the N900 is quite clear and looking good.

What Nokia hasn't announced yet is the commercial evolution path beyond the Maemo 5 official updates that it is granted that will keep coming. Yes, this is the same old question &quot;Harmattan / MeeGo officially supported for the N900&quot; and the [[#When_will_you_release_any_news_on_Harmattan_.3F|same answer still prevails]].
|2=[http://talk.maemo.org/showpost.php?p=568759&amp;postcount=151 Quim Gil (Nokia)]
|3=N900 NOT upgradeable to MeeGo
|4=talk.maemo.org post}}

=== Will Harmattan/Meego be supported on the N900 for the average consumer and not just for for developers ? ===

{{quotation|
Put this MeeGo support in perspective:

* From unstable to stable, if MeeGo doesn't make developers happy it will never make users happy. Developer happiness is a required milestone no matter what.

* Leaving aside the Nokia-centric perspective, if MeeGo doesn't make users happy by own merits it will give a hard time to device vendors making happy their customers. So again user happiness is basically a milestone for MeeGo no matter what.

Sure, still this doesn't answer the question of Nokia's Harmattan official support and Nokia proprietary apps, but maybe these two axis help you figuring out worst case scenarios.
|2=[http://talk.maemo.org/showpost.php?p=569428&amp;postcount=223 Quim Gil (Nokia)]
|3=N900 NOT upgradeable to MeeGo
|4=talk.maemo.org post}}

{{quotation|
What Nokia hasn't announced yet is the commercial evolution path beyond the Maemo 5 official updates that it is granted that will keep coming. Yes, this is the same old question &quot;Harmattan / MeeGo officially supported for the N900&quot; and the [[#When_will_you_release_any_news_on_Harmattan_.3F|same answer still prevails]].
|2=[http://talk.maemo.org/showpost.php?p=568759&amp;postcount=151 Quim Gil (Nokia)]
|3=N900 NOT upgradeable to MeeGo
|4=talk.maemo.org post}}

=== How many application running on MeeGo 1 will be able to run on Maemo 5 ? ===

{{quotation|
And I repeat -- for what of the new software runs on N900 -- I simply do not know. Looking at the characteristics of our hardware and other plans, not all, I'm sure! But certainly many many apps will run.
|2=[https://www.blogger.com/comment.g?blogID=16130344&amp;postID=78857428363981643 Ari Jaaksi (Nokia)]
|3=N900, MeeGo, and Barcelona
|4=blog comment}}

=== Is there any designed obsolescence for the N900 ? ===

=== Nokia only sell hardware why would they considering device backward compatibility. ===

{{quotation|
This argument combined with the argument of the 'designed obsolescence' also pops up regularly.

It is true that 'Nokia sells hardware' but this is just part of the story. Nokia develops a consumer offering based on devices, software and services. Hardware is very important in this strategy and so are the software platforms, the application developer ecosystem and the Ovi services. As opposed to a specific device, software and services can be continuous and evolutionary. They can support very well the very important job of customer retention.

If the owners of a Nokia XXX are happy with this offering, one day they will move to Nokia XXY, or perhaps Nokia YYY. They will recommend Nokia to their relatives and friends, etc.

If the owner of a Nokia XXX is unhappy because one or more of the pieces described above doesn't work, they will start their walk away to other competitors.

So you might get WONTFIXES and FIXED in [next release], and that [next release] might or might not be available for your next device. But don't think that Nokia doesn't care about bugs in current releases and about the satisfaction of the users getting those bugs.
|2=[http://talk.maemo.org/showpost.php?p=553499&amp;postcount=175 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

=== Why can't we get all the drivers for the N900 ? ===

{{quotation|
Setting pure [[:wikipedia:Open-source_software|OSS]] expectations on Maemo/N900 ignoring the business aspects Nokia has to deal with (e.g. giving away interesting information to competitors) is probably not a good business.
|2=[http://talk.maemo.org/showpost.php?p=551636&amp;postcount=70 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

=== Why can't Nokia promise the N900 will get MeeGo ? ===

{{quotation|
Intel and Nokia are still discussing the last details about the MeeGo architecture. In technical terms this means that still today nobody knows what exactly the MeeGo OS will consist of. Imagine a month ago, two months ago, three...

... (You have to consider) the jump from Maemo 5 to Harmattan/MeeGo, which represents a deep change in the OS plus a total rewrite of the applications.

Still, the chance is there. The sooner you demand an answer the easiest is to get a conservative silence. The closer we get to Harmattan / MeeGo stable releases the easiest is to give accurate technical and business answers.
|2=[http://talk.maemo.org/showpost.php?p=551680&amp;postcount=82 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

{{quotation|
As per August 2010 &quot;it’s possible for power testers to install and run MeeGo 1.1 unstable in the Nokia N900.&quot;
|2=[http://flors.wordpress.com/2010/08/10/running-meego-1-1-unstable-in-your-n900/ Quim Gil (Nokia)]
|3=Running MeeGo 1.1 unstable in your N900
|4=blog post comment}}

=== The N900 has a OMAP3 and it has been said that the next device will be using the same.  What technical reasons are there that would make the availability of MeeGo 1 on N900 an unreasonable expectation? ===

{{quotation|
Nobody is saying the expectation is unreasonable. Only the timing could be more reasonable.

For instance, &quot;pretty much the same hardware&quot; is a guess before the hardware details of a new device are announced. Yes, it will be based on OMAP but there are more elements in the hardware equation.
|2=[http://talk.maemo.org/showpost.php?p=552071&amp;postcount=137 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

=== How is Nokia marketing the N900 ?  Is it a phone ? ===

{{quotation|
It is sold as a mobile computer with the Internet in its heart, and it was introduced as 'step 4 of 5' for tech leaders / lovers. If you want a mature Nokia mobile phone with extensive Java support and full SIM features then there are plenty of choices based on Series40 and Symbian. I think Nokia has been clear on that since http://maemo.nokia.com was launched this Summer.
|2=[http://talk.maemo.org/showpost.php?p=551740&amp;postcount=94 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

=== A blogger on cnet asia claimed Nokia says no MeeGo for N900.  True? ===

{{quotation|
[http://asia.cnet.com/crave/2010/03/15/nokia-n900-not-upgradeable-to-meego/ The blogger misunderstood] an alleged Nokia source quote, which was &quot;Maemo on Nokia N900 is not upgradeable to MeeGo&quot;, to mean that the N900 will not get MeeGo. What it actually means is that there is no direct OS upgrade path (ie, SSU). As Valtteri Halla stated, the N900 will get a developer build of MeeGo (and it will have to be installed fresh).  There has been no official word yet on whether a commercial version will or will not be released.
|2=[http://meego.com/community/blogs/valhalla/2010/towards-day-one Valtteri Halla (Nokia)]
|3=Towards Day One
|4=MeeGo community blog post}}


[[#top|top]]

== Questions &amp; Answers about Maemo 5 ==

=== Will Nokia official support MMS in Maemo 5 ? ===

{{quotation|
... (W)e have no intention of supporting MMS in Fremantle ourselves. That was and is our plan.
|2=[http://talk.maemo.org/showpost.php?p=486420&amp;postcount=367 Quim Gil (Nokia)]
|3=[Announce] fMMS for N900
|4=talk.maemo.org post}}

Editor note: Community member Frals has developed an application ([[fMMS]]) for sending and receiving MMS.

{{quotation|1=
We have contacted frals to congratulate him for his work, and to offer him concrete help in areas where help is missing. Nothing new, we have been doing this with other [[Fremantle Stars]] (I guess nobody doubts that frals is a Star).

We will help him with the [[:wikipedia:User_interface|UI]] in the lines of the [http://talk.maemo.org/showthread.php?p=393329 UX Meets Code] hackfest, and we will also help dealing with some Maemo interfaces fMMS needs (the release of the wappushd-dev package in the last Maemo SDK update was a first step).
|2=[http://talk.maemo.org/showpost.php?p=486420&amp;postcount=367 Quim Gil (Nokia)]
|3=[Announce] fMMS for N900
|4=talk.maemo.org post}}

=== Why should I report bugs for Maemo 5, everything is marked as WONTFIX or will be fixed in Harmattan ? ===

=== Is Nokia still working on bugs fixing for Maemo 5 ? ===

Since its launch date on November 22, 2009, Maemo 5 (official platform and applications) has received 698 patches (as of August 2, 2010) 

&lt;u&gt;August 2, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=10371 1]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=7735,10206 2]

&lt;u&gt;July 26, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4520,5589,9389 3]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=8830 1]

&lt;u&gt;July 19, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=9127,10828 2]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=10423,10900 2]

&lt;u&gt;July 12, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=6694,9534,9640,10403,10470,10850 6]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5522,6807,6898,8394,9214,10283,10357,10390,10435,10792 10]

&lt;u&gt;July 05, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=7017,7256,10497,10762 4]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=7184,9334,10290,10424,10442,10495 6]

&lt;u&gt;June 28, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4339,4583,4589,5637,6183,6302,6739,6931,7733,9209,9527,9562,10734 13]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5766,6052,6835,7190,8747,10345,10404,10410,10613,10708 10]

&lt;u&gt;June 21, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=6632,8944,9370,9743,10310,10393 6]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=6876,8555,9557 3]

&lt;u&gt;June 14, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4564,9664,9722,9977,10005 5]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=3941,5501,5717,8441,8903,10448,10557 7]

&lt;u&gt;June 7, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=5903,6099,6996,7130,7514,9786,9948,10114,10280,10476 10]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5218,6696,8066,9361,9680,10216,10443 7]

&lt;u&gt;May 31, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=6816,7465,9102,9368,10270,10352,10376 7]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=6016,6859,7052,8828,8829,9922,10137 7]

&lt;u&gt;May 26, 2010&lt;/u&gt;

[[Maemo_5/PR1.2|PR 1.2]] is released to the public.

&lt;u&gt;May 24, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=10207 1]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5480,7691,8958 3]

&lt;u&gt;May 17, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=8671,9296 2]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=9973 1]

&lt;u&gt;May 10, 2010&lt;/u&gt; - Corresponding, approximately, to Version 10.2010.19-1.002(PR 1.2)

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=2918,10041 2]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=9702,9732,10101,10108 4]

&lt;u&gt;May 3, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=8947,9270,9350,9651,9854,9951 6]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=6016,6375,7275,8954 4]

&lt;u&gt;April 26, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=7234,7971 2]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=6570,7952,8481,9242,9926 5]

&lt;u&gt;April 19, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=8373 1]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=7802 1]

&lt;u&gt;April 12, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=6576,9459,9662,9822,9849 5]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5033,6067,6687,8050,8332,8448,9809 7]

&lt;u&gt;April 5, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4637,5982,6558,8715,9688 5]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=8082,9376,9621,9738 4]

&lt;u&gt;March 29, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=5917,6144,6878,7147,9624 5]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=7559,7926,7996,9566 4]

&lt;u&gt;March 22, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=2501,5712,6176,7151,7432,7844,8553,9272,9433,9552,9577 11]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5510,6503,7168,7701,8091,9084,9231,9243,9308,9501,9555 11]

&lt;u&gt;March 15, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=3323,3890,5420,8958,9057,9237,9430 7]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=3441,6553,6748,8036,8194,9449,9460,9504,9532 9]

&lt;u&gt;March 8, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4789,5168,5554,5694,5723,5838,6059,6193,6582,7054,7322,7743,8207,8552,9117,9144,9426 17]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5705,5746,5783,8335,8653,8678,8889,9020,9182,9362,9365 11]

&lt;u&gt;March 1, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4729,5516,5674,6746,7133,7954,8011,8052,8268,8396,8713,9073,9194 13]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=3748,3832,5276,5337,5391,5560,5810,5905,6194,6907,7235,7335,8129,8454,8573,9229 16]

&lt;u&gt;February 22, 2010&lt;/u&gt; 

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=2501,4845,5496,6099,6233,6703,6931,6993,7843,7852,7972,8004,8133,9050,9059 15]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5503,5894,6066,6342,6692,6823,7160,7394,7536,8022,8495,8854,8913,9048,9080 15]

&lt;u&gt;February 16, 2010&lt;/u&gt;

[[Maemo_5/PR1.1.1|PR 1.1.1]] is released to the public.

&lt;u&gt;February 15, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=5524,6197,6450,6699,6895,7552,7642,7668,7694,7773,8069 11]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=304,2962,4053,5546,6273,6372,6396,6431,6760,7052,7470,7758,8002,8035,8104,8159,8169,8175,8189,8310,8463,8581,8604,8606,8877,8920,8940,8954,9005,9010 30]

&lt;u&gt;February 8, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4608,5173,5457,5550,6365,6467,7350,7637,7707,7774,7807,7821,8038,8390,8415,8623,8727,8731,8742,8773 20]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5847,6317,6412,6598,6673,6702,6743,6769,6920,6936,7227,7375,7480,7794,7933,8022,8115,8117,8276,8383,8495,8525,8574,8594,8683,8763,8784,8845 28]

&lt;u&gt;February 1, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=1635,3659,4579,4638,4658,4695,5284,6069,6088,6148,6149,6615,7285,7477,7687,7843,7852,8257,8560 19]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=3387,3766,5318,5334,5526,5894,6095,6493,6521,6857,7124,7364,7445,7683,7886,8087,8252,8441,8499,8670,8696,8698 22]

&lt;u&gt;January 25, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4640,6275,6502,6940,6982,7029,7283,7345,7476,7757,7803,8172 12]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=1801,3307,5566,5836,5869,6048,6184,6481,6578,6616,6641,6819,6909,7167,7177,7200,7211,7212,7416,7446,7483,7518,7555,7634,7806,7848,7923,8136,8230,8320,8362,8385,8428 33]

&lt;u&gt;January 18, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4619,4718,5530,5609,6284,6334,6470,6476,6517,6545,6662,6715,6734,6816,6997,7101,7126,7282,7321,7327,7411,7444,7513,7516,7521,7766,7844,7849,7882,7893 30]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=3675,4834,4876,5285,5417,5485,5505,5663,5684,5720,5829,5894,6153,6575,6671,6677,6692,6733,6737,6838,6876,6882,6907,7060,7174,7279,7337,7359,7469,7485,7566,7567,7568,7620,7718,7736,7795,7832,7856,7858,7890,7910,7914,7958,7995,8010,8027,8043 48]

&lt;u&gt;January 14, 2010&lt;/u&gt;

[[Maemo 5/PR1.1|PR 1.1]] is released to the public.

&lt;u&gt;January 11, 2010&lt;/u&gt; - Corresponding, approximately, to Version 3.2010.02-8.002 (PR 1.1.1)

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=4161,6868,6931,7215,7315,7388,7603,7639 8]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=2987,5305,5670,6270,6384,7464,7515 11]

&lt;u&gt;January 4, 2010&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=1163,3987,4035,4190,4577,5152,5419,5421,5716,5819,5820,6060,6350,6416,6494,6506,7001,7271,7274,7280,7357 21]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=1800,2627,3941,4852,5522,5824,6201,6351,6945,7236,7353,7469,7525 13]

&lt;u&gt;December 28, 2009&lt;/u&gt; - Corresponding, approximately, to Version 2.2009.51-1 (PR 1.1)

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=6410,6506,7079,7222 4]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=1112,5353,5357,5380,5805,5901,6107,7220,7339 9]

&lt;u&gt;December 21, 2009&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=5388,6017,6060,6207,6312,6361,6594,6675,6752,6792,6878,6932,6953,7067,7073,7082 16]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=4976,5634,5868,5870,5945,6269,6279,6300,6651,6669,6700,6770,6771,6807,6811,6950,6984,7027,7048,7139 20]

&lt;u&gt;December 14, 2009&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=3957,4785,4851,5597,5899,5996,6025,6101,6470,6530,6608,6736,6877 13]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5341,6541,6570,6622,6644,6787,6795 7]

&lt;u&gt;December 7, 2009&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : 0

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=3941,4843,5450,6349,6544,6612 6]

&lt;u&gt;November 30, 2009&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=5518,5601,5761,6203,6268 5]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=5790,6027,6100,6219,6404 5]

&lt;u&gt;November 23, 2009&lt;/u&gt;

* Number of bugs fixed for Maemo official platform : [https://bugs.maemo.org/buglist.cgi?bug_id=5315,5626,5858,5911,5993,6145,6261 7]

* Number of bugs fixed for Maemo official applications : [https://bugs.maemo.org/buglist.cgi?bug_id=3675,3762,5347,5440,5493,5527,5545,5558,5783,5894,6138 11]

Source : http://www.octofish.net/bugjar/

=== Can Nokia really works on two different OS (Maemo 5 and MeeGo) at the same time ? ===

{{quotation|
Maemo 5 has a whole separate team focused right now on bringing you lots of goodies in the already announced upcoming PR1.2 release for Maemo 5. Nokia is a pretty big company and Maemo's not so small either anymore, we're capable of multitasking and just throwing more people at one task doesn't necessarily make it go any faster (as those who have developed software surely can testify to)
|2=[http://talk.maemo.org/showpost.php?p=527595&amp;postcount=12 Tomas Junnonen (Nokia)]
|3=Harmattan UI framework development is opened
|4=talk.maemo.org post}}

Editor note : Also, keep in mind that Nokia is also working on Symbian at the same time.

=== Anything new coming to Ovi Store for Maemo 5 ? ===

{{quotation|
Updates coming here, too ....
|2=[https://www.blogger.com/comment.g?blogID=16130344&amp;postID=78857428363981643  Ari Jaaksi (Nokia)]
|3=N900, MeeGo, Bercelona
|4=blog post comment}}

=== Why is Ovi Suite still not working with Maemo 5 ? ===

{{quotation|
Improving all the time. N900 is still young, and as a new platform not everything works. Symbian has been around for years, so it is further in many areas.
|2=[https://www.blogger.com/comment.g?blogID=16130344&amp;postID=78857428363981643  Ari Jaaksi (Nokia)]
|3=N900, MeeGo, Bercelona
|4=blog post comment}}

{{quotation|
Nokia N900 supports a range of Ovi services including Ovi Store, Contacts on Ovi, Ovi Share, Nokia Messaging, and Ovi Maps. Comes with Music and other services that require platform-wide support of DRM will be supported in our MeeGo-based devices which we intend to provide with Microsoft PlayReady-based DRM technology. Naturally, we'll be working to increase support for all Ovi services as we go forward with MeeGo.
|2=[http://mobiletablets.blogspot.com/2010/03/nokia-spotlight-interview-with-peter.html Peter Schneider (Nokia)]
|3=Nokia Spotlight: Interview with Peter Schneider - Part 1
|4=mobiletablets.blogspot.com post
}}

{{quotation|
&quot;We are especially looking for Nokia N900 and MS Outlook 2010 users. We will tell more about the new features and improvements in Nokia Ovi Suite 2.2 when the testing starts.&quot;
|2=[http://discussions.europe.nokia.com/t5/Nokia-Ovi-Suite/Registration-for-Beta-Test-of-Nokia-Ovi-Suite-release-2-2-has/td-p/666912 Kale (Nokia Ovi Suite Beta Test Team)]
|3=Registration for Beta Test of Nokia Ovi Suite release 2.2 has started!
|4=Nokia Support post}}

Editor note: Ovi Suite support was integrated in [[Maemo 5/PR1.3#New features|PR1.3]]

=== Can we expect Java support in Maemo 5 ? ===

{{quotation|
Not officially supported in Maemo 5. If someone brings it fine, but not us. We have been always consistent on this.
|2=[http://talk.maemo.org/showpost.php?p=553534&amp;postcount=179 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

Editor note: the Maemo community has added [[Java|Java support]] via icedtea and micro emulator.

=== Can we expect hardware accelerated flash 10 in Maemo 5 ? ===

{{quotation|
We can't happily add to our roadmaps technologies owned by others. In a normal world the first one announcing support plans of Adobe Flash in ARM platforms would be Adobe.
|2=[http://talk.maemo.org/showpost.php?p=552116&amp;postcount=141 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

=== Why free Ovi Maps for Symbian has been annouced and there is still nothing for Maemo 5 ? ===

{{quotation|
In developer terms, Symbian had already navigation implemented and removing the payment step was simple. Maemo didn't have navigation implemented so no matter what new policies come, the implementation must be developed first.
|2=[http://talk.maemo.org/showpost.php?p=552027&amp;postcount=133 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=tak.maemo.org post}}

=== Are there still applications being developed at Nokia for Maemo 5 ? ===

YouTube video of a new game. (See source)

Source : [http://www.youtube.com/watch?v=K7lHPX_iHKs Nokia Conversation]

{{quotation|
We haven't been very forthcoming about the content being created for the next releases of Maemo 5. I can assure you, there is a lot of great content being developed, and you should be able to get your hands on it soonish.
|2=[http://talk.maemo.org/showpost.php?p=551416&amp;postcount=48 Urho Konttori (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

{{quotation|
The Fremantle team, lead by people like konttori, keeps working on new updates. Fixing, polishing and bringing new features to Maemo 5.

Of course we put a lot of attention on Harmattan/MeeGo/Step 5 since this is what we need to do in order to be and stay in the premier league.
|2=[http://talk.maemo.org/showpost.php?p=552027&amp;postcount=133 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

{{quotation|
We just launched N900. It is a brand new device. More updates and new software coming all the time. Even more now because of MeeGo, I strongly believe.

Honestly, I'm a bit puzzled why this MeeGo announcement was interpreted so that we would be abandoning N900. Who said so? What is it in the MeeGo that makes you think so? -- I'm trying to do my best to explain why the opposite is true.
|2=[https://www.blogger.com/comment.g?blogID=16130344&amp;postID=78857428363981643&amp;pli=1 Ari Jaaksi (Nokia)]
|3=N900, Meego, and Barcelona
|4=blog post comment}}

=== Is there a roadmap for Maemo 5 ===

{{quotation|
Somewhat related update on the roadmap, I still haven't received green light from marketing to publish it.
|2=[http://talk.maemo.org/showpost.php?p=556030&amp;postcount=203 Urho Konttori (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

{{quotation|
Roadmap page is a great idea in my opinion, the only issue being in it the dates, which we don't want to commit to. But I'm sure a roadmap can be built without such. I'll take the action of following that up.
|2=[http://talk.maemo.org/showpost.php?p=551416&amp;postcount=48 Urho Konttori (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

{{quotation|
There are official plans and there are tentative plans. They haven't been communicated, but they exist.
|2=[http://talk.maemo.org/showpost.php?p=551584&amp;postcount=64 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

=== Maemo 5 is still new.  Why was MeeGo announced so quickly after Maemo 5 release ? ===

{{quotation|1=
Welcome to open source and open development. Actually the Maemo team and now MeeGo are just putting some toes of one foot in the open pool, so get used to this. Public roadmaps will tell you about features you currently don't have in your device, there will be always something apparently cooler making you think if you are buying your product in the right time. 

[http://flors.wordpress.com/2008/06/01/maemo-linuxtag-update Harmattan] with Qt officially supported were announced in June 2008. [http://flors.wordpress.com/2009/07/05/maemo-harmattan-keynote-at-gcds/ Harmattan based on Qt and the cross-platform strategy with Symbian] were announced in July 2009. In the Maemo Summit (still before sales start) we gave [[Maemo_Summit_2009|more details]] about Harmattan, Qt, the changes and the transition path. This forum, Planet Maemo and the tech media have been reporting about this horizon of changes that was coming. 

MeeGo is a culmination of that, but in terms of technical changes affecting N900 users or Maemo 5 application developers it doesn't bring much that wasn't already in the pipeline (Qt and Web Runtime API, with its consequences).

But really, all this is good news. Like any structural change it gives some short term noise, insecurity and hassle but I'm sure it will pay off. Maemo 5 is great and the Fremantle team keeps working in updates. But if Maemo 5 and its linear evolution would be the only plan of Nokia, then I believe that N900 would have reasons to worry about the future.

By the way, the basics of the Fremantle game (except Telephony) were mostly announced in the [[Maemo_Summit_2008|Maemo Summit 2008]] and the [http://maemo.org/news/announcements/first_maemo_5_sdk_release_targeting_platform_developers/ first release] (totally targeted to hardcore developers) went out in December 2008 (with the announcement of lack of support for OMAP2 devices = N810 and N800). That also created a hassle in the community, but if we wouldn't have made those steps at that time then you wouldn't have got the Maemo 5 you are enjoying. There was plenty of signal-no-noise feedback got during the Fremantle unstable phase that helped improving the stable releases you are using. We are taking the same open approach with Harmattan and even deeper (thanks to http://maemo.gitorious.org and MeeGo). Don't feel part of a problem because already now you are part of a solution.
|2=[http://talk.maemo.org/showpost.php?p=556430&amp;postcount=215 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

=== What are the officially-confirmed major feature in future Maemo 5 release ? ===

==== PR1.2 ====

# QT 4.6. Source: [Confirmed by Qgil, Trolltech, etc.]
# Live wallpaper. Source: [https://bugs.maemo.org/show_bug.cgi?id=3910#c5 Bug 3910]
# Customizable single menu, no more &quot;More&quot;. Source: [https://bugs.maemo.org/show_bug.cgi?id=5349 Bug 5349] 

==== PR1.3 ====

# QT Mobility. Source: [http://talk.maemo.org/showpost.php?p=561617&amp;postcount=4 Urho Konttori (Nokia)]


Editor note: PR1.2 and PR1.3 were released in May and October 2010, respectively.

[[#top|top]]

== Questions &amp; Answers about Meego ==

Please refer to the [http://meego.com/about/faq MeeGo faq] for more information.

=== Who is responsible for MeeGo ? ===

{{quotation|
The MeeGo project is the responsible of the MeeGo releases and hardware *they* support for *their* releases.  The current supporters of MeeGo are Intel, Nokia and the Linux Foundation.
|2=[http://talk.maemo.org/showpost.php?p=555005&amp;postcount=7 Quim Gil (Nokia)]
|3=MeeGo: Towards Day One
|4=talk.maemo.org post}}

{{quotation|
Get this thing straight: this is http://meego.com - a free software project hosted by the Linux Foundation. Yes, Nokia has a big involvement there. No, it is not a Nokia project.
|2=[http://talk.maemo.org/showpost.php?p=555111&amp;postcount=23 Quim Gil (Nokia)]
|3=MeeGo: Towards Day One
|4=talk.maemo.org post}}

=== What devices will be supported by MeeGo ? ===

{{quotation|
The current supporters of MeeGo are Intel, Nokia and the Linux Foundation. The (Linux Fondation) has no own hardware so has nothing to support. Intel has chipsets and development boards (there is no Netbook from Intel, they are from vendors using Intel chipsets) and Nokia has devices (no ARM development board from Nokia). Hence the logical conclusion of [http://meego.com/community/blogs/valhalla/2010/towards-day-one announcing support for Atom boards and the N900] at this point. This will change if other vendors appear offering official support for the hardware they are responsible of.
|2=[http://talk.maemo.org/showpost.php?p=555005&amp;postcount=7 Quim Gil (Nokia)]
|3=MeeGo: Towards Day One
|4=talk.maemo.org post}}

=== What steps is Nokia taking for open source drivers on MeeGo ? ===

{{quotation|
Basically, Nokia puts considerable effort pushing hardware vendors in that direction. Open source drivers play well with the Nokia chipset strategy and with Linux development. But of course these companies need to make business, so asking them to open their [[:wikipedia:Intellectual_Property_Rights|IPR]] without suggesting any alternative is not the best approach.

MeeGo, with Intel as initial founder (a company with good track offering open drivers), is one of the biggest and most concrete public actions Nokia could push in that direction.
|2=[http://talk.maemo.org/showpost.php?p=554051&amp;postcount=14 Quim Gil (Nokia)]
|3=Will MeeGo finally end the Rapid Obsolescence Syndrome (ROS)
|4=talk.maemo.org post}}

{{quotation|
Closed hardware driver are problematic only when the owners don't provide updated versions for new releases. The MeeGo project is working hard to have those drivers owners on board.
|2=[http://talk.maemo.org/showpost.php?p=553750&amp;postcount=6 Quim Gil (Nokia)]
|3=Will MeeGo finally end the Rapid Obsolescence Syndrome (ROS)
|4=talk.maemo.org post}}

=== Is the UX Componant of MeeGo device-specific ? ===

{{quotation|
No matter how many [[:wikipedia:User_experience|UX]] changes vendors do, they need to provide the official MeeGo [[:wikipedia:API|API]] if they want to call their product a MeeGo device.
|2=[http://talk.maemo.org/showpost.php?p=553750&amp;postcount=6 Quim Gil (Nokia)]
|3=Will MeeGo finally end the Rapid Obsolescence Syndrome (ROS)
|4=talk.maemo.org post}}

=== How many application written for Maemo 5 will be able to run in MeeGo 1 ? ===

{{quotation|
... (T)he MeeGo API is based on Qt (and Web Runtime), so Qt apps for Maemo 5 will work there with little effort. The rest depends on how fast MeeGo devices and Harmattan show up in the market.
|2=[http://talk.maemo.org/showpost.php?p=555470&amp;postcount=50 Quim Gil (Nokia)]
|3=MeeGo: Towards Day One
|4=talk.maemo.org post}}

=== Will my favorite Maemo 5 GTK+ application run on MeeGo 1 ? ===

{{quotation|
[http://mail.gnome.org/archives/mobile-devel-list/2010-February/msg00010.html Up to the GTK+ and Hildon maintainers] in the first place. They are the first ones to decide whether it's worth the effort of aligning the GTK+ approaches of Moblin and Maemo, get the Hildon libraries running on top, try or try not to work on adapted bindings to give to GTK+/Hildon apps a MeeGo native look&amp;feel...

GTK+ and Clutter are maintained as official platform libraries in MeeGo but the API is not supported officially. This means that the APIs are there to be used but the project doesn't make any promise on maintenance, completeness, quality, API management across releases... This doesn't mean much if there is a good community maintenance. For example, Python has been never officially supported, and I bet the average user of a Python apps in Extras is not aware about the support status and probably not even aware whether the app is based on Python or not. That could be the case for GTK+/Hildon apps in MeeGo, but is really not up to the MeeGo project.

fwiw the Maemo team is in talks with the GNOME Foundation to bring more GTK+/Hildon apps to Maemo 5 and to help on the kick-off of the 'GTK+ community support'. We started the talks in the context of Harmattan and we are just continuing in the context of MeeGo. We hope to get something concrete to explain soon.
|2=[http://talk.maemo.org/showpost.php?p=556430&amp;postcount=215 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org}}

=== A network provider in my country has announced support for MeeGo. Is it a good thing ? ===

{{quotation|
Expect to see more announcements like this, some from partners you like, some of partners you dislike. Any new announcement adds more developers and users to MeeGo so, really, you should be happy about each one of them.
|2=[http://talk.maemo.org/showpost.php?p=555057&amp;postcount=30 Quim Gil (Nokia)]
|3=Orange is getting into MeeGo!
|4=talk.maemo.org}}

=== Network provider adapts OS to their needs.  Should I be worried that my network provider cripple MeeGo ? ===

{{quotation|
So it looks like (network provider) will take MeeGo [[:wikipedia:Vanilla_software|vanilla]] and will adapt it to their needs. Great! This is what MeeGo is meant for, btw. If this means that they will put developers to tweak their own [[:wikipedia:User_experience|UX]] variant and create their own (Qt / Web Runtime based?) apps, great! All this will bring useful feedback about the UX layers and the [[:wikipedia:API|API]], for sure. Whatever else they do to adapt MeeGo will be also useful feedback for the platform development.

Then I guess MeeGo apps will be installable on these MeeGo based (network provider) devices? How can this be bad news for the developers and the users of those apps in other devices?

If you don't like what (network provider) does with MeeGo then don't get a MeeGo device from (network provider). I really don't understand the point of whining.
|2=[http://talk.maemo.org/showpost.php?p=555057&amp;postcount=30 Quim Gil (Nokia)]
|3=Orange is getting into MeeGo!
|4=talk.maemo.org post}}

Editor note: this discussion was about Orange

=== Would it be possible for a MeeGo partner to have too much influence on the platform ? ===

{{quotation|
&quot;Too much influence over the platform&quot;, what would this mean in practice? Please figure this out before worrying, otherwise you don't really know what you are worrying about. Bringing plenty of bugfixes in the form of patches? Contributing new features? Proposing better alternatives for software components that they would maintain?
|2=[http://talk.maemo.org/showpost.php?p=555057&amp;postcount=30 Quim Gil (Nokia)]
|3=Orange is getting into MeeGo!
|4=talk.maemo.org post}}

[[#top|top]]

== Questions &amp; Answers about Harmattan ==

=== I am confused. What is Harmattan and what is MeeGo? What is the difference between both? Do they share common features? ===

{{quotation|
So what’s with (Harmattan)? (Harmattan) will be MeeGo compatible.....consider (Harmattan) already a MeeGo instance.
|2=[https://www.blogger.com/comment.g?blogID=16130344&amp;postID=78857428363981643&amp;pli=1 Ari Jaaksi (Nokia)]
|3=N900, MeeGo, and Barcelona
|4=blog post comment}}

{{quotation|1=
Harmattan is the name of the software program that comes after Fremantle / Maemo 5. In the Maemo Summit we already announced it as &quot;Maemo 6&quot; in order to bring a clear signal about the major update, change of toolkit, etc.

Now MeeGo comes to the picture. &quot;Maemo 6&quot; will not be used by Nokia as a brand since all the marketing effort around the software platform will be around MeeGo.

To be clear: this is not about &quot;ditching&quot; or &quot;abandoning&quot; any platform. The Harmattan program keeps working with the same plans than last week, no matter the name of the product they will deliver. Maemo 6 and Moblin 2.x merge and have a successor called MeeGo. Current Maemo people will look at it and will say &quot;looks like his mother!&quot;. Current Moblin people will look at it and will say &quot;looks like his father!&quot; (or choose your preferred gender) Of course you will see changes compared to Maemo 5, but these changes were coming anyway with Maemo 6.

What does this mean exactly for Harmattan/MeeGo? It means different things for different people:

* For end users nothing really changes, apart from a name most of them were not aware of anyway.
* For application developers not much changes. Harmattan's developer offering is based on Qt 4.6 + Qt Creator, Web Runtime + Aptana. Same for MeeGo and by the way same for Symbian. Harmattan might have extended APIs unique to Nokia devices (e.g. Ovi [[:wikipedia:API|APIs]]), but we'll see and this is part of the MeeGo flexibility anyway. Wait for the [[:wikipedia:SDK|SDKs]] to be released and then we can discuss in more detail. There will be also the APIs available for those willing to use them, provided directly by other open source components in the platform (e.g. GStreamer). Developers will be of course free to use them, at the expense of loosing compatibility with Symbian, and with MeeGo... depends on the component and to be seen as soon as there is a detailed MeeGo architecture public. Then there will be the obvious difference in packaging (deb still for Harmattan, rpm for MeeGo) but this won't be the big issue and anyway compatibility with Symbian implies specific packaging as well.
* For those caring about the platform in depth, Harmattan =! MeeGo. If we would make Harmattan identical to MeeGo then we would need to postpone dates and, really not for a good reason. Not a reason for application developers (the API is there anyway) and not a good reason for end users, who could not care less about packaging and some obscure middleware components. This is the only reason making Ari Jaaksi refer to Harmattan as a &quot;MeeGo instance&quot; instead of just &quot;MeeGo product&quot;.

This is why we are dropping the &quot;Maemo 6&quot; brand while keeping all the Harmattan development full speed and in the same direction that it was. 
|2=[http://talk.maemo.org/showpost.php?p=529073&amp;postcount=14 Quim Gil (Nokia)]
|3=Renaming &quot;Maemo 6&quot; to MeeGo / Harmattan
|4=talk.maemo.org post}}

{{quotation|
Harmattan and MeeGo come with a whole Qt based application and [[:wikipedia:User_interaction|UI]] framework and a Qt style API. Maemo 5 is a different story, with a GTK+ based applications and UI framework and GNOME style API.

This is what makes Harmattan quite close to MeeGo in platform terms, while Maemo 5 is really something different. That said you can reach very similar APIs with Maemo 5, and you can also add more libraries to Maemo 5 in order to fine tune the compatibility. You can also do so with Symbian, yet you don't have problems seeing that it's pointless to call Symbian MeeGo.

We can discuss this in more details once we have a MeeGo and a Harmattan list of components to compare.

PS: about the packaging... we are talking here about API compatibility.
|2=[http://talk.maemo.org/showpost.php?p=534188&amp;postcount=107 Quim Gil (Nokia)]
|3=Renaming &quot;Maemo 6&quot; to MeeGo / Harmattan
|4=talk.maemo.org post}}

{{quotation|
# There is Nokia Maemo 5 / Fremantle now. The next release would have been Nokia Maemo 6 / Harmattan. Now, it is called Meego / Harmattan instead, but it's still the same Harmattan that it was going to be. This would be way clearer if they didn't rebrand it as MeeGo yet, but they wanted to get the marketing behind that brand already. You can think of Harmattan as half MeeGo. The next release after Harmattan will be Nokia's first full MeeGo.
# You need to understand the layers, which together form an operating system. It may be difficult if you come from Windows/OS X world because they both only have one user interface. UI and applications, however are only the top of the OS pyramid. Underneath them there are a lot of stuff that actually make it all tick. That's what Meego is about, providing a common base for user interfaces and applications to be built on. When you think of Meego in general, think of everything you as an end user don't see.
# What you actually see, the UI, applications, services etc. can and will vary depending on who made the Meego device. LG's UI may look totally different from Nokia UI. You'll only see Ovi applications and services on Nokia devices. These manufacturer specific applications on top of Meego won't necessarily be open source either. But the base on which they are built on is the same.
|2='''(UNOFFICIAL)''' [http://talk.maemo.org/showpost.php?p=555158&amp;postcount=33 jsa]
|3=MeeGo: Towards Day One
|4=talk.maemo.org post}}

{{quotation|
(Harmattan) will be compatible with MeeGo.. but it is not  MeeGo.

(Harmattan) will still use Deb.. MeeGo uses RPM. 
|2='''(UNOFFICIAL)''' [http://talk.maemo.org/showpost.php?p=541972&amp;postcount=249 fatalsaint]
|3=Nokia promises N900 will get MeeGo! Or perhaps not.
|4=talk.maemo.org post}}

=== Harmattan is still using deb, will it mean it is less compatible with other MeeGo instances ? ===

{{quotation|
I bet the MeeGo build infrastructure ([[:wikipedia:OpenSUSE_Build_Service|OBS]]) will minimize the rpm/deb hassle for developers. I expect the average user not to even bother about this.
|2=[http://talk.maemo.org/showpost.php?p=553750&amp;postcount=6 Quim Gil (Nokia)]
|3=Will MeeGo finally end the Rapid Obsolescence Syndrome (ROS)
|4=talk.maemo.org post}}

=== When will you release any news on Harmattan ? ===

{{quotation|
... I said in the oldest 'Harmattan in the N900' thread that there were new things in the pipeline and that before a Harmattan alpha release (promised for 1Q2010, working on it) it was really premature to discuss or announce anything.

Harmattan/MeeGo are in pre-alpha state, we haven't even put together an early [[:wikipedia:SDK|SDK]] for the most adventurous developers, we haven't given any hardware details about the next device...
|2=[http://talk.maemo.org/showpost.php?p=551987&amp;postcount=127 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

{{quotation|
I cannot tell you when do we ship the next device. I cannot tell you how much it costs. I cannot tell the exact features because we are still working on them. I cannot tell you what is the delta between Maemo5 and (Harmattan)/MeeGo 1.0 because it is not fully clear yet. And we tell you about the new products when we are ready to tell. Business decisions. I cannot tell you how much of the (Harmattan) characteristics will run on old devices when the new devices finally ship. But go and follow Harmattan plans at maemo.org. See also the new [[:wikipedia:User_interface|UI]] framework forming up.
|2=[https://www.blogger.com/comment.g?blogID=16130344&amp;postID=78857428363981643&amp;pli=1 Ari Jaaksi (Nokia)]
|3=N900, MeeGo, and Barcelona
|4=blog post comment}}

=== Is Harmattan a transitional release toward pure MeeGo ? ===

{{quotation|
Harmattan will be the base for Nokia’s MeeGo-based devices in 2010. From an app developer’s point of view, it will be fully compatible with other MeeGo-based devices. There might be differences under the hood concerning some middleware components and, therefore, it has been referred to as transitional release, but that’s only relevant for those few that participate in the low level platform development. Qt Creator with the necessary cross-compilation toolkits will make these differences invisible to the bulk of application developers.
|2=[http://mobiletablets.blogspot.com/2010/03/nokia-spotlight-interview-with-peter.html Peter Schneider (Nokia)]
|3=Nokia Spotlight: Interview with Peter Schneider - Part 1
|4=mobiletablets.blogspot.com post}}

=== Will Nokia release their official Meego UX, applications like Ovi Maps, Mail for Exchange, Nokia Messaging etc to the community-supported Meego for N900? ===

{{quotation|1=
There will not be an official MeeGo-Harmattan release for the N900, but there is a possibility that the Nokia official UX and apps for MeeGo-Harmattan are made available to N900 users through a community effort discussed in ([http://talk.maemo.org/showthread.php?t=53551 this thread]). At this point nobody knows what and will not work. Technical discussion, R&amp;D experimentation and official MeeGo-Harmattan releases need to come first in order to tell. 
|2=[http://talk.maemo.org/showpost.php?p=677722&amp;postcount=70 Quim Gil (Nokia)]
|3=Meego-Harmattan HE
|4=talk.maemo.org post}}

[[#top|top]]

== Questions &amp; Answers about the community, Maemo.org and MeeGo.com ==

=== What will happen to maemo.org now that MeeGo has been announced ? ===

{{quotation|
The destiny of Maemo.org depends on the Maemo community (yes, you). In the meantime we keep funding the hosting and nobody is thinking of unpluggin servers or taking radical measures to stop anything here.
|2=[http://talk.maemo.org/showpost.php?p=556430&amp;postcount=215 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

=== What will happen to the council ? ===

{{quotation|
About the council, ask the current candidates. Nokia has nothing to say about this. The community created the council and the community is the one deciding what to do now and in the MeeGo context. fwiw we supported Jaffa's idea of an elected body representing 'the community' towards Nokia and somehow we think the core concept might make sense at MeeGo as well. Said that, the MeeGo project is fundamentally different since it is aimed to be an open project participated by individuals and organizations. The purpose of a Council for MeeGo needs to re-evaluated.
|2=[http://talk.maemo.org/showpost.php?p=556430&amp;postcount=215 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

The 2010 maemo.org community council has been challenged to identify what role(s) a MeeGo community council might have.  We are working on defining this and welcome input.  Meanwhile, we continue to support this community while helping establish MeeGo.com.

Source: [[User:texrat|texrat]] 20:54, 18 April 2010 (UTC) (maemo.org community council)

=== What will happen to those who work on the Maemo infrastructure and code base - there already exists a MeeGo code base and infrastructure ? ===

{{quotation|
We keep funding the Maemo.org pro development team, reviewing contracts every 6 months as we have been doing since we started 'liberating' these *master roles. Note that the Maemo.org development team decide their priorities and tasks through a public process, so it is also up to them process to decide where to invest their time. Now they are finding their counterparts in the Moblin project and the Linux Foundation, and we all will need to find the place for all of us (Nokians included e.g. Tero and myself). Giving roles implies giving admin rights on tools and servers, all this is based on trust and this takes a bit of time, as sysadmins know.
|2=[http://talk.maemo.org/showpost.php?p=556430&amp;postcount=215 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

=== What will happen to Maemo Summit ? ===

{{quotation|
The direct face-to-face time with the community remains an important part of reaching out to the community. I'm rather confident that we will have at least one get-together this year for the community. It's going to be a MeeGo community get-together and everybody is invited.
|2=[http://mobiletablets.blogspot.com/2010/03/nokia-spotlight-interview-with-peter.html Peter Schneider (Nokia)]
|3=Nokia Spotlight: Interview with Peter Schneider - Part 1
|4=mobiletablets.blogspot.com}}

[[#top|top]]

== Questions &amp; Answers about the next Harmattan/MeeGo device from Nokia ==

{{quotation|
We never ever speculate about devices before they are launched.
|2=[http://talk.maemo.org/showpost.php?p=556439&amp;postcount=217 Quim Gil (Nokia)]
|3=Cleaning N900 FUD
|4=talk.maemo.org post}}

[[#top|top]]

[[Category:N900]]
[[Category:Users]]</text>
    </revision>
  </page>
  <page>
    <title>What comes with the nokia n800 and how to replace anything broken or lost</title>
    <id>1908</id>
    <revision>
      <id>28894</id>
      <timestamp>2010-02-11T12:31:21Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify, [[Category:N8x0]]</comment>
      <text xml:space="preserve">[[Nokia N800]] Internet Tablet sales packages may vary slightly from region to region, but all of them should contain the following. If you buy an N800 second hand, you may not get everything that the sales package contains, so I've provided some hints for how to replace each item just in case you have to.

* The N800 itself, including a battery cover and stylus (plastic pen) tucked into a compartment. I'm not going to tell you how to replace this. ;-)
* Nokia BP-5L battery, which is the same as the battery used in the Nokia E61 smartphone (but not the E61i). You can buy or order a replacement BP-5L from most phone shops or electronics stores.
* A standard Nokia 2mm charger, the same charger which has come with all their new phone models since 2006. If you have a new Nokia phone, you can use the same charger on your N800. There are different Nokia chargers for different parts of the world (Continental Europe, UK &amp; Ireland, USA etc) but they all have the same 2mm prong on the end which plugs into your N800.
* A spare stylus. You don't actually NEED a stylus to use the N800, speaking personally I prefer to use my fingers, but if you prefer using a stylus then you can use any stylus from any touchscreen device. One drawback though: if you don't use an official N800 stylus, it won't fit into the N800's stylus compartment.
* An SD (Secure Digital) memory card, which is used for storing any kind of data such as music, videos, photos, documents, programs, games etc. The exact type of card will vary depending on when and where you buy your N800. SD cards are very cheap and easy to buy yourself, and if you intend to store a lot of stuff on your N800 then it would probably be a very good idea to replace the sales package card. You do NOT need to use a Nokia brand SD card, other brands (especially San Disk) are just as reliable and significantly cheaper. You can use any capacity card, including a brand new standard of SD card called SDHC which has a higher capacity than normal SD cards. You can use any physical size of SD card, including miniSD and microSD, as long as you use the SD adaptor that comes with the card (for example, the card in the video is a miniSD card within an SD adaptor). You can also use a slightly different kind of memory card called MMC, which is roughly the same shape and size as SD cards. The N800 has two memory card slots, one inside and one outside, and you can use two memory cards at once.
* A 3.5mm handsfree stereo headset, which is used for listening to things such as music, radio, video etc, and also allows you privacy when using the N800 as an internet phone through services like Skype and Google Talk. If you have to replace this, you have two options which depend on how you want to use the headset: if you just want to listen to things such as music, video, radio etc, then you can just use ordinary 3.5mm headphones (which are the most common kind of headphone, and used in practically all music gadgets such as Walkmans, iPods etc). If you want to use the N800's phone facilities in private, without everyone hearing your conversations through the speakers, then any replacement for the headset will have to be another headset. You can't just buy any old headset though, because most phone headsets have 2.5mm prongs instead of 3.5mm, so they won't fit in the N800. If you can get a 3.5mm phone headset (ask at your nearest phone or electronics shop), this should work fine in the N800.
* A cloth or leather case for the N800. The cases included with N800s seem to vary greatly depending on where you buy them, but all of them seem to be fairly soft and not the kind of thing that would protect the tablet from many knocks. However, there's a VERY cheap and easy way of buying a replacement case with proper padding: the N800 is very slightly smaller than the PlayStation Portable games console, and cases made for the PSP work just as well protecting the N800. You can buy PSP cases for extremely low prices on eBay, and they are also widely available at video game and electronics stores.
* A miniUSB cable. The miniUSB cable that comes with the N800 has a miniUSB connector at one end which plugs into the N800, and a normal USB connector at the other which plugs into your PC. This cable is very very useful, it lets you transfer all kinds of information such as photos, music, videos, documents etc between your tablet and your computer. The cable also performs an extremely important function, it lets you update the firmware on your N800, but that's a huge topic of its own. The miniUSB cable is cheap and easy to replace, it's the same kind of cable that's used on many mobile phones and digital cameras. You can buy them in any electronics store, they're usually available at a low price, and they don't have to be Nokia branded. One thing to be careful of though, make sure you use a miniUSB cable and not a microUSB cable. MicroUSB cables look very similar to miniUSB but they have a slightly smaller connector so they can't be plugged into the N800.

[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>What comes with the nokia n810 and how to replace anything broken or lost</title>
    <id>1907</id>
    <revision>
      <id>28353</id>
      <timestamp>2010-02-04T14:11:13Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <minor/>
      <comment>add category</comment>
      <text xml:space="preserve">The [[Nokia N810|N810]] internet tablet comes with various bits and bobs in its sales package. The exact makeup of the sales package may vary from country to country, but they're usually very similar.

This tutorial is going to take a look at the N810 sales package for the United Kingdom. The point of this tutorial is to help people who've lost or broken something that came with the N810, or are buying one second hand that doesn't come with all the accessories.

===Contents of typical N810 Sales Package===

* Nokia BP-4L Battery: This is very easy to replace, it's the same battery used by the Nokia E61i and E90 smartphones, and should be available from any Nokia dealer. Please please please try to buy the genuine Nokia batteries, not unofficial third party or counterfeit ones, because the unofficial batteries sometimes have a habit of exploding. Sites such as Ebay are NOT a good source of genuine batteries.
* A Spare Stylus: If you lose both the original stylus (plastic pen) AND the replacement stylus, you have a couple of options. You could use the N810 with your fingers, or you could use the stylus from another device. Bear in mind though that other devices' styli are unlikely to fit neatly into the N810's stylus storage slot.
* Nokia Charger: VERY easy to replace, this is simply a completely standard Nokia charger sold with all their phones and smartphones. You can use any standard Nokia charger with the N810, as long as it has the 2mm thin round plug used on their current models. If you're travelling in another country, you can use local Nokia chargers.
* Soft Carrying Case: Thin carrying cases designed for the pocket are still quite hard to get for the N810 as it's such a new model. However, if you don't mind a bit of bulk it's very easy to find thick padded cases that suit it. For example padded cases intended for the Nintendo DS Lite or Sony PSP more or less fit the N810, and can be bought extremely cheaply on eBay.
* 3.5mm Stereo Headset: These aren't just headphones, they're headphones with a built-in microphone and call control button. They can be used for making private internet calls if you want to keep the tablet in your pocket and just wear the headset. However, you can also use normal 3.5mm (walkman/ipod) headphones if you're willing to speak into the tablet's built-in microphone. If you just want to make calls in private, you can replace it with a wireless Bluetooth headset, which has good enouch sound quality for calls but (at the moment) not good enough for music etc.
* MicroUSB cable: If you need to replace this, you can use any standard microUSB cable, BUT DO NOT BUY A MINIUSB BY ACCIDENT! MiniUSB cables use a much larger plug than microUSB, so they will not fit into the N810's USB socket. MicroUSBs are a fairly new standard so you will find miniUSB cables are more common at the moment, but that situation will probably change over time. Note that the N800 tablet uses miniUSB, but the N810 uses microUSB.
* Microfibre Cloth: This is very easily replaced if required, simply go down to your local opticians or glasses shop and buy the kind of cloth you use to clean a pair of glasses. Microfibre cloths are much less likely to scratch a surface than normal cloths, that's why they're recommended for use on delicate things like screens or lenses.
* Nokia CR-89 Car Holder: Perhaps the trickiest thing to replace, as in theory the N810 can only be fixed to a car using this particular kit and it doesn't seem to be available separately yet. However, you may be able to find a third party universal car holder which can cope with a wide range of devices.

===A word about memory cards on the N810===

The UK sales package didn't include one, but the N810 has a miniSD memory card slot so if the 2 gigabytes of on-board storage aren't enough you can add any miniSD card (officially the N810 can use cards up to 8 gigabytes, but unofficially larger cards may work too). MicroSD cards can also be used if you have a miniSD-sized adaptor.

You do NOT need to buy Nokia-brand memory cards, in fact they're usually overpriced so we recommend you avoid them for that reason. The most trusted brand is probably SanDisk, and the best place to buy them is in a reputable electronics store. Try to avoid buying memory cards on eBay, because of the risk of buying counterfeits that stop working after a short while.

[[Category:N8x0]]</text>
    </revision>
  </page>
  <page>
    <title>Who is doing what</title>
    <id>4416</id>
    <revision>
      <id>42325</id>
      <timestamp>2011-03-03T10:57:47Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>/* Get involved! */ add table captions, make some columns unsortable</comment>
      <text xml:space="preserve">There have been '''lots''' of things going on for Maemo and related projects nowadays, and we [the Community] feel that '''it is now our turn to prove that we can improve the Maemo experience for everyone''' by collaborating and creating outstanding quality software together!

'''Help us forge the future!'''
We ask '''you''' to join us and collaborate with us to shape the destiny of Maemo(/MeeGo) with an open heart and in the spirit of Open Source development.

If you are an end user, you can also help us with testing and [https://bugs.maemo.org/ reporting bugs].

== Purpose ==

The purpose of this page is to keep track of who is doing what. That is with regards of Maemo (or perhaps MeeGo) and related open source projects.

== So what's this? ==

The objective of this page is to encourage collaboration and prevent people from creating a conflictiong set of patches or starting to work on the same issues. (So, we'd like to keep you from &quot;reinventing the wheel&quot; all over again.)

== Get involved! ==

If you start a project that you think may be sought after by others, fill in the appropriate table below with your name and some information about what you're doing. Please provide a link as well.

Thus, when someone is interested in doing the same, he doesn't have to start from scratch but can cooperate with you. This holds obvious benefits for developers and end users, too.

So, anyone who would like to work on the same thing as you can find you and your project and contribute to it. End-users will also enjoy the feeling of having professionally crafted software with multiple people working on it instead of redundant ones.

What are you waiting for?
The tables are waiting on you impatiently to fill them.

=== System-related software ===

Different packages (or forks) from official repositories and SSUs, hardware-close software, platform components and shared libraries.

{| class=&quot;sortable wikitable&quot;
|+ People working on system-related software
|-
! scope=&quot;col&quot; width=&quot;120&quot; | Project
! scope=&quot;col&quot; width=&quot;220&quot; | People
! class=&quot;unsortable&quot; | Description
! class=&quot;unsortable&quot; scope=&quot;col&quot; width=&quot;100&quot; | Link
|-
| N900 GPS
| [http://talk.maemo.org/member.php?u=22395 Luke Dashjr (luke-jr)]
| Direct hardware interface for N900 GPS
|
|-
| Hildon-Extras
| [http://talk.maemo.org/member.php?u=12007 Andrew Olmsted (Fiferboy)]&lt;br&gt;
[http://talk.maemo.org/member.php?u=21446 Cornelius Hald (Conny)]&lt;br&gt;
[http://talk.maemo.org/member.php?u=9523 Faheem Pervez (qwerty12)]&lt;br&gt;
[http://talk.maemo.org/member.php?u=9673 Thomas Perl (thp)]&lt;br&gt;
[http://talk.maemo.org/member.php?u=23763 Timur Kristóf (Venemo)]&lt;br&gt;
[http://talk.maemo.org/member.php?u=6270 Gabriel Schulhof (Nix_nix)]
| A set of community-contributed Hildon/Gtk widgets and dialogs that provide application developers with the means to create usable and well-balanced user interfaces.
| [[Hildon-Extras|Wiki page]]
|-
| Hildon-Desktop (kinetic)
| [http://talk.maemo.org/member.php?u=25578 Mohammad Abu-Garbeyyeh (MohammadAG)]
| Hildon-Desktop package with the application menu kinetic scrolling change from PR 1.2 improved, plus every post-PR 1.2 fix applied.
| [http://talk.maemo.org/showthread.php?t=60599 Talk thread]
|-
| Maemo 5 Community SSU
| [http://talk.maemo.org/member.php?u=25578 Mohammad Abu-Garbeyyeh (MohammadAG)]&lt;br&gt;
[http://talk.maemo.org/member.php?u=15861 Gary Birkett (Lcuk)]&lt;br&gt;
[http://talk.maemo.org/member.php?u=15155 Andrew Flegg (Jaffa)]&lt;br&gt;
[http://talk.maemo.org/member.php?u=15860 Sebastian Lauwers (CrashandDie)]&lt;br&gt;
[http://talk.maemo.org/member.php?u=15466 Niels Breet (X-Fade)]&lt;br&gt;
[http://talk.maemo.org/member.php?u=23763 Timur Kristóf (Venemo)]&lt;br&gt;
[http://talk.maemo.org/member.php?u=10760 Lucas Maneos (lma)]&lt;br&gt;
Marat Fayzullin (RST38h)
| Community-supported seamless software update for the [[Nokia N900]].&lt;br&gt;
See [[Community_SSU_notes]] and [[Community_SSU/Fremantle/Notes]]. (The former is to be moved to the latter.)
| [[Community_SSU_notes|Wiki page]]
|}

You can also change the style or appearance of the table (such as column widths) if it doesn't fit your content well.

=== User applications ===

Applications and other such pieces of software.
Add your own application here!

{| class=&quot;sortable wikitable&quot;
|+ People working on user applications
|-
! scope=&quot;col&quot; width=&quot;120&quot; | Project
! scope=&quot;col&quot; width=&quot;220&quot; | People
! class=&quot;unsortable&quot; | Description
! class=&quot;unsortable&quot; scope=&quot;col&quot; width=&quot;100&quot; | Link
|-
| Sticky Notes
| [http://talk.maemo.org/member.php?u=23763 Timur Kristóf (Venemo)]
| An easy-to-use note-taking [[homescreen widget]] for the [[Fremantle]] [[Hildon Desktop]]. Written using [[Qt]] and uses the [[Hildon-Extras]] library to enrich user experience. Supports basic text formatting.
| [http://talk.maemo.org/showthread.php?t=57049 Talk thread]
|-
| Your app
| You
| Please add your application to this table (before this row) if you are developing something.
| [[Who_is_doing_what|This page]]
|}

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Why the closed packages</title>
    <id>2708</id>
    <revision>
      <id>20063</id>
      <timestamp>2009-10-14T11:02:51Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Why the closed packages]] moved to [[Open development/Why the closed packages]]: move</comment>
      <text xml:space="preserve">#REDIRECT [[Open development/Why the closed packages]]</text>
    </revision>
  </page>
  <page>
    <title>Why the closed packages</title>
    <id>2708</id>
    <revision>
      <id>20063</id>
      <timestamp>2009-10-14T11:02:51Z</timestamp>
      <contributor>
        <username>qgil</username>
        <id>4</id>
      </contributor>
      <comment>[[Why the closed packages]] moved to [[Open development/Why the closed packages]]: move</comment>
      <text xml:space="preserve">#REDIRECT [[Open development/Why the closed packages]]</text>
    </revision>
  </page>
  <page>
    <title>WifiAssistant</title>
    <id>4651</id>
    <revision>
      <id>41134</id>
      <timestamp>2011-01-18T09:42:36Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>[[WifiAssistant]] moved to [[Wifi Assistant]]: space</comment>
      <text xml:space="preserve">#REDIRECT [[Wifi Assistant]]</text>
    </revision>
  </page>
  <page>
    <title>Wifi Assistant</title>
    <id>4630</id>
    <revision>
      <id>49372</id>
      <timestamp>2012-09-01T23:37:07Z</timestamp>
      <contributor>
        <ip>171.236.229.184</ip>
      </contributor>
      <comment>/* Daemon Settings */</comment>
      <text xml:space="preserve">[[Image:Wifi-assistant-icon.png]]
This page is about the application known as Wifi Assistant.
 
==About==

===What?===
 
This application aims to help make life easier when connecting your [[Nokia N900]] to wifi networks (WLAN) that requires you to visit a captive portal (login) page before you can access the Internet.

===Why?=== 
 
I got tired of not being able to connect easily to networks guarded by a login page, so I created this app to scratch that itch. Nokia doesn't supply this feature and when asked for, it's out of scope for the N900.

==How it works and Screenshots==

===Connected to network===
 
When you're connected to a &quot;new&quot; network, you get this popup which asks you if you want to launch a browser. Simply press Yes or No to open a new browser window. The next time you connect to that network, the same action will be take (open or not open a browser window), 
unless you untick the &quot;Remember this decision&quot; checkbox. (You'd get the same popup each time instead.)

[[Image:wifi-assistant-screenshot-popup.jpg|frame|center|alt=Screenshot of Wifi Assistant popup|Wifi Assistant popup]]

===Network Settings===
 
If you fire up the configuration/settings GUI (it's called Wifi Assistant and the icon looks like the one at the top this page) you get a list of all the networks we've used and whether to launch a browser or not. You can change the settings by tapping the line you want to change.

[[Image:wifi-assistant-screenshot-launch-list.png|frame|center|alt=Screenshot of Wifi Assistant launch list|Launch list]]

[[Image:wifi-assistant-screenshot-launch-settings.png|frame|center|alt=Screenshot of Wifi Assistant launch settings|Launch settings]]

===Daemon Settings===
 
You can turn the daemon off (kind of) so that it won't show popups. It'll still open a new browser window when you connect to networks where you've selected &quot;Yes&quot; previously. 

[[Image:wifi-assistant-screenshot-daemon-settings.png|frame|center|alt=Screenshot of Wifi Assistant daemon settings|Daemon settings]]

==Download and Install==

&lt;div style=&quot;float:right&quot;&gt;
&lt;imagemap&gt;
Image:ClickToInstall.png
desc none
default [http://maemo.org/downloads/product/raw/Maemo5/wifi-assistant/?get_installfile Install]
&lt;/imagemap&gt;
&lt;/div&gt;

The package is available in maemo.org [[Extras]]. It can be found under &quot;Networking&quot; in Application Manager, or [http://maemo.org/downloads/product/raw/Maemo5/wifi-assistant/?get_installfile directly installed] from [http://maemo.org/downloads/product/Maemo5/wifi-assistant/ maemo.org Downloads].

===Alternative===

You could also get the latest version from
[https://garage.maemo.org/projects/wifi-assistant this projects' garage (home)]. This is where I put the packages I test myself. It should not differ at all from the ones built by the Maemo build site.

==Roadmap==

* &lt;del&gt;Daemon that launches browser&lt;/del&gt;
* &lt;del&gt;GUI app where you can change settings&lt;/del&gt; 
* &lt;del&gt;Add and remove settings&lt;/del&gt; 
* &lt;del&gt;Upload wifi-assistant to Extras, put up a note on maemo.org forum&lt;/del&gt;
* &lt;del&gt;Handle SSID/Network names with spaces in them&lt;/del&gt;
* Ability to specify URL to launch, per SSID/Network name (&lt;del&gt;add backend support&lt;/del&gt;, add GUI for easy configuration)
* Detect if the net is locked down or not (useful for networks which gives you one day access - you only want the browser launched once per day)  
* &lt;del&gt;Have the network settings sorted alphabetically&lt;/del&gt;
* Daemon work:
** Let the GUI app launch daemon if it's not running  
** Change listenting to changes in gconf to using dbus (only if this consumes less power)
* Implement Ideas (below)

==Bugs==
 
Comes included from the start ...
 
If you've found a bug I'd love to hear about it and have it fixed so the application improves! There are basically three way in which you can contribute:
 
* Send me an email (fredrik&amp;#64;wendt&amp;#46;se)
* Put up a post about it [http://talk.maemo.org/showpost.php?p=782524 on this thread] at talk.maemo.org (a forum)
* Enter a bug or feature request in the [https://bugs.maemo.org/enter_bug.cgi?product=Wifi%20Assistant bug tracking system]
 
Either way - your contribution is greatly appreciated!

==Source==

It's all written in Python and the source is available for download - you can either get it with 
&lt;pre&gt;git clone https://vcs.maemo.org/git/wifi-assistant&lt;/pre&gt; or 
[https://garage.maemo.org/plugins/ggit/browse.php/?p=wifi-assistant browse it online].  

Contributions are of course very welcome! 

==License== 

This application is free to use, inspect, adapt and share, licensed under a BSD type license.

==Thanks== 
 
To Lisa, Anton and Leia who support me (kind of) while I'm up late etc.   
  
A big thanks to Andrew Flegg (Jaffa) - the build files for this application are extremely similar to those used to build the excellent anti &quot;blue man syndrome&quot; application [http://hermes.garage.maemo.org/ Hermes].
 
==Donate==

You could either simply donate via PayPal, or Flattr this project - either way: thanks for your support!

[[Image:Flattr-badge-large.png|link=http://flattr.com/thing/41709/Wifi-Jail-Breakout-Assistant]] (if the link doesn't work, please use http://flattr.com/thing/41709/Wifi-Jail-Breakout-Assistant - MediaWiki awkwardness)

If you want me to directly implement a feature you can't live without - contact me and we'll see if I can find the time.  

==Ideas== 

===Detect login page when connected to new network===

This is fairly easy to do - simply make a HTTP HEAD request for a known static resource on the web. If you get anything but a HTTP 200 in return, that network has a captive portal (or the connection was lost etc), or maybe the server is down  (if it fails could try another one first, trying to avoid one in the same country/network route; or try )

===Detect URL needed to autologin===

The best idea I have right now is to setup a local proxy. The way to operate this would be to:
* &quot;Open browser and record URLs&quot; button clicked
* a HTTP proxy is setup, the browser is setup to use that proxy
* browser is launched
* user logs in at the portal page
* user switches to Wifi Assistant, clicks &quot;Turn off URL recording&quot;
* proxy is shut down, browser (system) settings reverted to previous settings
* user looks at list of recorded URLs
* user selects URL to use when being connected to this network next time

==More Screenshots==
 
These are not really needed to explain how the program works. 

&lt;gallery&gt;
Image:wifi-assistant-screenshot-menu.png|Menu
Image:wifi-assistant-screenshot-delete.png|Delete
Image:wifi-assistant-screenshot-launch-settings-empty.png|Launch settings
Image:wifi-assistant-screenshot-about.png|About
&lt;/gallery&gt;

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Wifi PSM</title>
    <id>2943</id>
    <revision>
      <id>21915</id>
      <timestamp>2009-11-05T16:44:24Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>Redirecting to [[Wifi power saving mode]]</comment>
      <text xml:space="preserve">#REDIRECT [[Wifi power saving mode]]</text>
    </revision>
  </page>
  <page>
    <title>Wifi Power Saving Mode (PSM)</title>
    <id>2942</id>
    <revision>
      <id>21913</id>
      <timestamp>2009-11-05T16:43:13Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Wifi Power Saving Mode (PSM)]] moved to [[Wifi power saving mode]]: Remove abbreviation, and consistent capitalisation. Will create a second redirect from Wifi PSM</comment>
      <text xml:space="preserve">#REDIRECT [[Wifi power saving mode]]</text>
    </revision>
  </page>
  <page>
    <title>Wifi power saving mode</title>
    <id>119</id>
    <revision>
      <id>44873</id>
      <timestamp>2011-08-16T18:29:34Z</timestamp>
      <contributor>
        <username>joerg_rw</username>
        <id>1934</id>
      </contributor>
      <comment>/* Ad-hoc prevents PSM */</comment>
      <text xml:space="preserve">The tablets support what is called Wifi Power Saving Mode (PSM). PSM allows the tablet to switch its wifi radio on and off several times a second to save battery. While this does greatly improve battery life  (6-8 hours idle on Wifi without PSM, 3-4 days with), there are still many routers on the market which do not support PSM or have a buggy implementation and this can cause problems for the tablets.

Because using PSM introduces extra latency for incoming packets, the tablets try to optimize performance by remaining in Constant Active Mode (CAM) if there is constant traffic. On the other hand, CAM consumes a lot of power, so the timeout should be as short as possible. For more detailed description, see [http://lists.maemo.org/pipermail/maemo-users/2008-July/034755.html this posting on the subject].

== Issues ==

Though PSM does greatly increase idle battery life (meaning leaving the tablet connected to a Wifi network at all times is a reality), poor support in some routers and certain network issues can crop up that cause trouble. In the case of routers with non-existent or buggy support, battery life while connected to Wifi may be greatly reduced or, at worst, connection difficulties may arise.

PSM can cause some network issues even on routers with good support. Particularly with PC-to-tablet stuff like [[SSH]], connections may be dropped while idle or lag severely. There are two ways to reduce the negative impact of aggressive PSM in these situations. Either have an active network process running on the tablet (XChat in an active channel, ping to google.com, etc), or [[#Configuration|disable PSM completely]] on connections where you'll be doing a lot of work over SSH.

The default values were tightened in Diablo release, which might be the reason that some people started seing problems then. The problems with PSM are typically random in nature, so with a bit of luck the connection works just fine sometimes, but sometimes problems are seen. The probability depends on the used timeout values.

== Configuration ==

PSM can be configured on a per-connection basis in the Connectivity control panel (Application menu -&gt; Settings  -&gt; Control panel  -&gt; Connectivity). Under the Other tab of Advanced settings when editing a saved connection. There are 3 options available: On (Maximum), On (Intermediate), and Off (note, the WLAN transmission power setting will not significantly impact battery life—though it will impact Wifi roaming distance—and is simply there for legislative reasons). Maximum and Intermediate change the timeout period (200ms and 1000ms, respectively), and Off turns off PSM entirely.

== &lt;s&gt;Ad-hoc prevents PSM&lt;/s&gt; ==

&lt;s&gt;Ad-hoc mode cannot use power-saving modes other than reduce transmit power - since there's no master or slave where the slave can spend a lot of time &quot;asleep&quot;, it prevents power saving modes.&lt;/s&gt; (This is false and needs fixed.  The stations trade off acting as &quot;master&quot;. [http://books.google.com/books?id=9rHnRzzMHLIC&amp;pg=PA193&amp;lpg=PA193&amp;dq=ibss+power+management&amp;source=bl&amp;ots=3wzOD62aBr&amp;sig=lUehrHBabk4WX8NT6_XEyIjxy5Y&amp;hl=en&amp;ei=9zVNTOjWD4z4sAPg2PhI&amp;sa=X&amp;oi=book_result&amp;ct=result&amp;resnum=7&amp;ved=0CC0Q6AEwBg#v=onepage&amp;q=ibss%20power%20management&amp;f=false 802.11 ibss psm])

== Routers known to be incompatible with PSM mode ==

* La Fonera (FON2100, FON2200)
* French ISP Free.fr Freebox ([https://bugs.maemo.org/show_bug.cgi?id=3481 Maemo #3481] and [http://bugs.freeplayer.org/task/2538 Free #2538])

[[Category:Connectivity]]
[[Category:WiFi]]
[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Wii remote</title>
    <id>4612</id>
    <revision>
      <id>41437</id>
      <timestamp>2011-01-26T11:04:55Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>wikify slightly</comment>
      <text xml:space="preserve">There are numerous ways to achieve control of the [[Nokia N900|N900]] using a wii remote. Please have a look at this [http://talk.maemo.org/showthread.php?t=19658 talk.maemo.org thread].

The method described here uses cwiid and wminput. This method is an expansion on the instructions provided [http://talk.maemo.org/showthread.php?t=19658&amp;page=13 here] by the user thp, who re-packaged cwiid.

&lt;ol&gt;
&lt;li&gt;
gain [[root access]]:
&lt;pre&gt;root&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
install [http://maemo.org/packages/view/cwiid-utils/ cwiid-utils] from [[extras-devel]]:
&lt;pre&gt;apt-get install cwiid-utils&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
if not already installed, install [http://maemo.org/packages/view/python-cwiid/ python-cwiid]:
&lt;pre&gt;apt-get install python-cwiid&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
execute the following two commands:
&lt;pre&gt;
modprobe uinput
chmod a+rw /dev/input/uinput
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
create a config file. The file below is for controlling the built-in media player
&lt;pre&gt;
Wiimote.Left    = KEY_LEFT
Wiimote.Right   = KEY_RIGHT

Wiimote.A       = KEY_SPACE
Wiimote.B       = KEY_SPACE

Wiimote.Minus   = KEY_F7
Wiimote.Plus    = KEY_F8
&lt;/pre&gt;

The code was saved in &lt;code&gt;/home/user/.cwiid/wminput/mediaplayer&lt;/code&gt;. This is one of the places that gets searched by wminput as detailed [http://abstrakraft.org/cwiid/wiki/wminput here]
&lt;/li&gt;
&lt;li&gt;
once saved, ensure Bluetooth is on and simply execute:
&lt;pre&gt;wminput -c mediaplayer&lt;/pre&gt;
from the command line. Then press the 1 and 2 buttons on thhe wii remote and the command line should say ready after a little while. Once done simply start the media player. Once started simply use the wii remote buttons to control it. You can skip songs (forward and backward), pause/play and change volume.
&lt;/li&gt;
&lt;/ol&gt;

If you want to carry out some coding using python and wii remote look [http://talk.maemo.org/showthread.php?t=60178 here]

Here is also some further useful links:
* http://abstrakraft.org/cwiid/browser/wminput/action_enum.txt
* http://abstrakraft.org/cwiid/wiki

[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Wiki Gardeners</title>
    <id>4092</id>
    <revision>
      <id>34307</id>
      <timestamp>2010-05-12T20:07:45Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <comment>[[Wiki Gardeners]] moved to [[Wiki gardeners]]</comment>
      <text xml:space="preserve">#REDIRECT [[Wiki gardeners]]</text>
    </revision>
  </page>
  <page>
    <title>Wiki application template</title>
    <id>5185</id>
    <revision>
      <id>47758</id>
      <timestamp>2012-05-28T18:07:54Z</timestamp>
      <contributor>
        <username>sixwheeledbeast</username>
        <id>5014</id>
      </contributor>
      <comment>New Page - quick template for application wiki's</comment>
      <text xml:space="preserve">Blank application wiki template.

Will hopefully save some time creating new wiki pages for applications.

----


=Introduction=


===More===

More information on the package can be found ...

[http://talk.maemo.org/showthread.php?t=________ talk.maemo.org ____________]

[http://maemo.org/packages/view/________/ _______ Package Page]

==Installation==

The latest versions can be found in the ________ repository and can be installed using the N900 Application Manager (HAM). 

==Operation==



==Bugs==

Link to Maintainer's Bugtracker information is available here


===FAQ===


==License/Disclaimer==


==Credits==


=Versions/Change Log=

'''1.0  ''(Current Devel)'''''
* Initial Release.

=Wiki Update Info=
:'''''Last Updated - sixwheeledbeast - 28 May 2012 18:05 UTC'''''
:''Wiki Created - sixwheeledbeast - 28 May 2012 18:04 UTC''</text>
    </revision>
  </page>
  <page>
    <title>Wiki gardeners</title>
    <id>2762</id>
    <revision>
      <id>47472</id>
      <timestamp>2012-05-10T12:33:32Z</timestamp>
      <contributor>
        <username>andre</username>
        <id>53</id>
      </contributor>
      <minor/>
      <comment>Protected &quot;[[Wiki gardeners]]&quot; [edit=autoconfirmed:move=autoconfirmed]</comment>
      <text xml:space="preserve">The '''Wiki Gardeners''' (previously the Maemowiki Action Group) was originally founded as a focusing point for the migration and editing of content from an older wiki to this one. Our job is to fight the entropy, to keep order in a wild, wild world. A lot like gardening.

Our current mission is to be a centralized organization point for all [[Main Page|Maemo wiki]] related improvement efforts.

Our primary goal is to ensure that we make sure that the wiki is a nice place for Maemo users and developers to come to find and share information.

For general guidelines on editing wiki pages, please read [[contributing to the wiki]].

In addition:
* The front page must remain clean. Each section will have 4 to 5 front-page links, with a category link (hidden behind &quot;More topics&quot;) to all of the other pages in the category.
* Pages should be split or consolidated to ensure that they are neither too long or too short.
* Synthesize collections of content in the wiki, but link to relevant articles or official documentation, rather than copying them into the wiki.

== Tasks ==
This is a summary of the group's current tasks and TODO list. This list will evolve over time.

=== Pruning ===

* Edit old pages to update them for [[Open development/Maemo roadmap/Fremantle|Fremantle]] and Harmattan
* Start grouping [[Open development/Maemo roadmap/Diablo|Diablo]] and Bora information together behind version-specific sections, to clean up primary navigation path for visitors
* Identify pages with information that could be organized differently, rewritten or edited, and open bugs for the changes against [https://bugs.maemo.org/enter_bug.cgi?product=Tutorials&amp;component=maemo.org%20wiki the Tutorials] product in Bugzilla, with the Wiki component

=== Weeding ===

* Identify duplicate or redundant pages, and merge them or create bugs about the pages against [https://bugs.maemo.org/enter_bug.cgi?product=Tutorials&amp;component=maemo.org%20wiki the Tutorials] product in Bugzilla, with the Wiki component
* Create a list of pages which people can merge if they have a few minutes
** [[Networking (Diablo)]], [[USB networking]], [[Bluetooth PAN]], [[Bluetooth DUN]], [[USB to ethernet networking]] - suggest merging to a new [[Networking]] article or folding [[Networking (Diablo)]] into the USB and Bluetooth articles.
** [[Maemo5 101]], [[Maemo For Beginners]], [[Os2008 101]]
** [http://wiki.maemo.org/index.php?title=Special%3APrefixindex&amp;from=N900+Hardware&amp;namespace=0 N900 Hardware* pages]

Done:
* [[Developer_FAQ#Maemo_SDK_and_Scratchbox|Q&amp;A - SDK and Scratchbox]], [[Q&amp;A Porting to Fremantle]] and [[Autobuilder FAQ]] - I suggest merging these to a developer FAQ (name &quot;Developer Frequently Asked Questions&quot;, and a redirect from &quot;Developer FAQ&quot;)
* [[Companies in Maemo development]] and [[Maemo professionals]] (same thing)
* [[Questions and answers]], [[Frequently asked questions]], [[N900 FAQ]], [[Troubleshooting]] - these should be merged to a user FAQ (with the name &quot;Frequently Asked Questions&quot;)
* [[Customizing Maemo]], [[customizing maemo for power users]] and [[how to personalize your N900]]
* See [[Task:Consolidation of Extras]] for a list of pages related to building, packaging &amp; distributing packages which have been consolidated.

=== Landscaping ===

* Revisit navigation in wiki for the top 3 levels of links (front page, and pages linked to from front page) to improve discoverability of useful documentation, tutorials and team workspaces.
* Help various teams using wiki for web content to make their content more visible &amp; better organised (Sprints, Mer, etc)
* Ensure that all [[Special:Lonelypages | orphaned pages]] are linked from somewhere or deleted (articles can be [[Template:Delete|marked for deletion with a template]]). As a guideline, under 20 orphan pages is a good place to be.

Candidates for merging or organising under a hierarchy:

* New users pages, including [[Maemo basics]], [[Questions and answers]], [[Frequently asked questions]], setting up an email account, and so on. Basic subjects gathered under here would be thinks like getting started with the N810 and N900, migrating old data to new devices, simple stuff like playing media, typing special characters, user interface quirks, using wifi in universities, ...
* Project roadmap - bringing together [[100Days | the 100 days initiative]], [[2010 Agenda | the 2010 agenda]], [http://wiki.maemo.org/Special:Search?search=Objective%3A&amp;go=Go Objectives] and [http://wiki.maemo.org/Special:Search?search=Task%3A&amp;go=Go Tasks]
* Summer of Code participation - past participations, link to project pages, description of who's who (admins, students), collect reports on completed projects...

DONE:
* Everything to do with the organisation of [[maemo.org team | maemo.org staff]] - [[Maemo.org Sprints | sprints]], roles, bios
* Mer - in pretty good shape now
* [[Community Council]] - governance, role, election material, rules, news, etc

=== Planting ===
* See [[Documentation wishlist]]
* Add documentation from external resources, such as [http://talk.maemo.org talk.maemo.org]
** Use the [[Template:Wikify|wikify template]] to tag articles with a link to information outside the wiki, like so:&lt;br /&gt;&lt;pre&gt;{{wikify|1=&lt;nowiki&gt;http://talk.maemo.org/showthread.php?t=51053}}&lt;/nowiki&gt;&lt;/pre&gt; and replace the URL with the URL of the documentation. Do not forget to leave the ’1=‘!

=== Templates ===
{{main|MAG:Templates}}
* Put together a set of [http://www.mediawiki.org/wiki/Help:Templates templates] to assist in the categorization, tagging and expansion of articles, and help maintain a uniform style and format across the wiki.
* Set up a template reference page.
* Categorize all templates.

=== Categorization ===
{{main|MAG:Categorization}}
* Revise categories to aid the organization of articles.
* Place articles into the correct categories.
* Put together an categorical index with cover content/article.

=== Other ===
Check maintenance stuff in [[Special:Specialpages]]:
* Create [[Special:Wantedpages|wanted pages]], even as ''stubs''
* Fix [[Special:Doubleredirects|double redirects]]
* Add links to [[Special:Lonelypages | orphan pages]]
* And more...

== Members ==
New members should simply add their name to the bottom of the list and jump right into the project. We strongly suggest following the wiki@documentation.maemo.bugs user in Bugzilla to be notified of all change to wiki content related bugs.

# [[User:generalantilles|generalantilles]] 21:41, 2 June 2008 (UTC)
# [[User:dneary|dneary]] 10:16, 3 June 2008 (UTC)
# [[User:qgil|qgil]] 19:45, 4 June 2008 (UTC)
# [[User:lcuk|lcuk]] 22:27, 4 June 2008 (UTC)
# [[User:jaffa|jaffa]] 07:09, 5 June 2008 (UTC)
# [[User:andrewfblack|andrewfblack]] 10:36, 11 June 2008 (UTC)
# [[User:baloo|Baloo]] 22:26, 19 July 2008 (UTC)
# [[User:timsamoff|Tim Samoff]] 02:37, 24 July 2008 (UTC)
# [[User:crashanddie| Sebastian Lauwers]] 00:32, 13 September 2008 (UTC)
# [[User:qole|Qole]] June 2009
# [[User:texrat|Randall Arnold]] 19:24, 14 October 2009 (UTC)
# [[User:kaithomsen|Kai Thomsen]] 19:36, 14 October 2009 (UTC)
# [[User:twaelti|Tom &quot;tom2&quot; Waelti]] 20:20, 14 October 2009 (UTC)
# [[User:guaka|guaka]] 10:40, 26 October 2009 (UTC)
# [[User:allnameswereout|allnameswereout]] 14:03, 29 October 2009 (UTC)
# [[User:smarsh|smarsh]] 15:39, 6 November 2009 (UTC)
# [[User:ossipena|ossipena]] 20:04, 9 November 2009 (UTC)
# [[User:YoDude|YoDude]] December 2009
# [[User:pepitoe|pepitoe]] January 2010
# [[User:pgrodt|pgrodt]] 19:36, 12 January 2010 (UTC)
# [[User:renegadefanboy|renegadefanboy]] 17 February 2010 (UTC)
# [[USER:jukey|Uwe Kaminski]] May 2010
# [[USER:chomar|ChoMar]] May 2010

[[Category:Community]]</text>
    </revision>
  </page>
  <page>
    <title>Wl1251-cal</title>
    <id>4681</id>
    <revision>
      <id>41520</id>
      <timestamp>2011-01-30T18:19:24Z</timestamp>
      <contributor>
        <username>jonwil</username>
        <id>3875</id>
      </contributor>
      <text xml:space="preserve">&lt;pre&gt;
rough pseudocode for what wl1251-cal seems to be doing:
wl1251str *handle = libwl1251_init(&quot;wlan0&quot;,0);
send dbus message &quot;com.nokia.phone.net&quot; &quot;/com/nokia/phone/net&quot; &quot;Phone.Net&quot; &quot;get_registration_status&quot;
set country code to uint32 argument 5 of dbus message

wlan-tx-cost3_0 cal data is the nvs data
default nvs data is in /lib/firmware/wl1251-nvs.bin

flag in r9 controls special change to nvs data.
If there is a dbus error/problem or if country code is 0, r9 is set to 2

if country code is obtained then it checks for FCC country (302, 310, 311, 316, 312, 313, 314, 315, 332, 466, 724, 722, 334, 732) and if so, sets r9 to 2 else it sets r9 to 1

If r9 is not set to 1, nvs data is changed as follows:
nvsdata[151] = 2
nvsdata[154] = 9
nvsdata[179] = 2
nvsdata[17C] = 9

nvs data is sent via 
libwl1251_nvs_push(handle,nvsdata+4,0x2F0) //return value &lt;= 0 indicates error)

after nvs stuff this is done
dbus message is sent &quot;com.nokia.SystemInfo&quot; &quot;/com/nokia/SystemInfo&quot; &quot;com.nokia.SystemInfo&quot; &quot;GetConfigValue&quot; with argument passed in &quot;/certs/npc/esn/wlan_id&quot;

Also able to read wlan mac address from cal by reading wlan-mac
Then it uses SIOCSIFHWADDR ioctl to set MAC address.

next, if r9 is 1, set r10 to &quot;EU&quot; else set r10 to &quot;US&quot;

Then its calling nl functions and sending a command (via genlmsg_put) with message 27. &quot;nl80211&quot; is passed to genl_ctrl_search_by_name and then genl_family_get_id to obtain family ID.
Flags, seq, hdrlen and version parameters for genlmsg_put are all zero.
pid comes from getpid.
Its calling nla_put(33,3,r10) before it sends the message
Its registering some callbacks via nl_cb_err and nl_cb_set
It then appears to loop around with a nl_recvmsgs call in the middle waiting for a callback to trip.
none of the 3 handlers seem to be doing anything specifically fancy.

After the nl_recvmsgs loop finishes, the function ends.

libwl1251_nvs_push simply loads the nvs data to the card.
not sure whether anything special is done by libwl1251_init
&lt;/pre&gt;</text>
    </revision>
  </page>
  <page>
    <title>Wl1251/Development</title>
    <id>4701</id>
    <revision>
      <id>41888</id>
      <timestamp>2011-02-18T20:14:23Z</timestamp>
      <contributor>
        <username>lxp</username>
        <id>3840</id>
      </contributor>
      <text xml:space="preserve">== Firmware testing ==
Testing driver: Maemo Fremantle 2.6.28 / wireless-testing 2011-02-06

External monitor:
Ubuntu 10.04 / Wireshark / Alfa AWUS036H (rtl8187) in monitor mode (single vif)

=== Monitor mode channel switching ===
==== JOIN ====

Parameters

{| class=&quot;wikitable&quot;
! bssid !! beacon_int !! dtim_period !! bss_type !! ctrl !! Result
|-
| 00:00:00:00:00:00 || 100 || 1 || BSS_TYPE_STA_BSS || JOIN_CMD_CTRL_TX_FLUSH || CTS
|-
| 00:00:00:00:00:00 || 100 || 1 || BSS_TYPE_STA_BSS || 0 || CTS
|-
| 00:00:00:00:00:00 || 100 || 0 || BSS_TYPE_STA_BSS || JOIN_CMD_CTRL_TX_FLUSH || CTS
|-
| 00:00:00:00:00:00 || 0 || 1 || BSS_TYPE_STA_BSS || JOIN_CMD_CTRL_TX_FLUSH || CTS
|-
| 00:00:00:00:00:00 || 0 || 0 || BSS_TYPE_STA_BSS || 0 || CTS
|-
|}

CTS: Emits some CTS frames

==== ACX_CTS_PROTECTION / JOIN ====

{| class=&quot;wikitable&quot;
! bssid !! beacon_int !! dtim_period !! bss_type !! ctrl !! ACX_CTS_PROTECTION !! Result
|-
| 00:00:00:00:00:00 || 100 || 1 || BSS_TYPE_STA_BSS || JOIN_CMD_CTRL_TX_FLUSH || CTSPROTECT_DISABLE || CTS
|-
| 00:00:00:00:00:00 || 100 || 1 || BSS_TYPE_STA_BSS || JOIN_CMD_CTRL_TX_FLUSH || CTSPROTECT_ENABLE || CTS
|-
| 00:00:00:00:00:00 || 0 || 0 || BSS_TYPE_STA_BSS || 0 || CTSPROTECT_DISABLE || CTS
|-
| 00:00:00:00:00:00 || 0 || 0 || BSS_TYPE_STA_BSS || 0 || CTSPROTECT_ENABLE || CTS
|-
| 00:00:00:00:00:00 || 0 || 0 || MAX_BSS_TYPE || 0 || CTSPROTECT_DISABLE || No channel change
|-
| 00:00:00:00:00:00 || 0 || 0 || 1 || 0 || CTSPROTECT_DISABLE || CTS
|-
| 00:00:00:00:00:00 || 0 || 0 || 4 || 0 || CTSPROTECT_DISABLE || CTS
|-
| ff:ff:ff:ff:ff:ff || 0 || 0 || BSS_TYPE_STA_BSS || 0 || CTSPROTECT_DISABLE || CTS
|}

==== JOIN / ACX_CTS_PROTECTION ====

{| class=&quot;wikitable&quot;
! bssid !! beacon_int !! dtim_period !! bss_type !! ctrl !! ACX_CTS_PROTECTION !! Result
|-
| 00:00:00:00:00:00 || 100 || 1 || BSS_TYPE_STA_BSS || 0 || CTSPROTECT_DISABLE || CTS
|-
| 00:00:00:00:00:00 || 100 || 1 || BSS_TYPE_STA_BSS || 0 || CTSPROTECT_ENABLE || CTS
|-
| 00:00:00:00:00:00 || 0 || 0 || BSS_TYPE_STA_BSS || 0 || CTSPROTECT_DISABLE || CTS
|-
| 00:00:00:00:00:00 || 0 || 0 || BSS_TYPE_STA_BSS || 0 || CTSPROTECT_ENABLE || CTS
|-
|}

==== TX_DISABLE / JOIN ====

{| class=&quot;wikitable&quot;
! bssid !! beacon_int !! dtim_period !! bss_type !! ctrl !! Result
|-
| 00:00:00:00:00:00 || 100 || 1 || BSS_TYPE_STA_BSS || JOIN_CMD_CTRL_TX_FLUSH || WORKS!
|-
| 00:00:00:00:00:00 || 100 || 1 || BSS_TYPE_STA_BSS || 0 || WORKS!
|-
| 00:00:00:00:00:00 || 0 || 0 || BSS_TYPE_STA_BSS || 0 || WORKS!
|-
|}

==== JOIN / TX_DISABLE ====

{| class=&quot;wikitable&quot;
! bssid !! beacon_int !! dtim_period !! bss_type !! ctrl !! Result
|-
| 00:00:00:00:00:00 || 100 || 1 || BSS_TYPE_STA_BSS || JOIN_CMD_CTRL_TX_FLUSH || TX/RX not working
|-
|}

==== JOIN / DISCONNECT ====

{| class=&quot;wikitable&quot;
! bssid !! beacon_int !! dtim_period !! bss_type !! ctrl !! Result
|-
| 00:00:00:00:00:00 || 100 || 1 || BSS_TYPE_STA_BSS || 0 || some CTS/TX path disabled
|-
| 00:00:00:00:00:00 || 0 || 0 || BSS_TYPE_STA_BSS || 0 || some CTS/TX path disabled
|-
|}

==== TX_ENABLE ====

{| class=&quot;wikitable&quot;
! Result
|-
| TX path disabled
|-
|}

==== RX_ENABLE ====

{| class=&quot;wikitable&quot;
! Result
|-
| TX path disabled
|-
|}

==== TX_DISABLE ====

{| class=&quot;wikitable&quot;
! Result
|-
| No channel change?/TX path disabled
|-
|}

==== RX_DISABLE ====

{| class=&quot;wikitable&quot;
! Result
|-
| Firmware lockup on TX
|-
|}

==== New proposal: ====

Start with DISABLE_TX.
Let op_add_interface do ENABLE_TX and op_remove_interface do DISABLE_TX.
Use JOIN for every channel change.</text>
    </revision>
  </page>
  <page>
    <title>Wl151/Development</title>
    <id>4703</id>
    <revision>
      <id>41665</id>
      <timestamp>2011-02-07T01:06:40Z</timestamp>
      <contributor>
        <username>lxp</username>
        <id>3840</id>
      </contributor>
      <comment>[[Wl151/Development]] moved to [[Wl1251/Development]]: Correct typo</comment>
      <text xml:space="preserve">#REDIRECT [[Wl1251/Development]]</text>
    </revision>
  </page>
  <page>
    <title>Writing maemo.org content</title>
    <id>923</id>
    <revision>
      <id>38770</id>
      <timestamp>2010-09-20T00:50:33Z</timestamp>
      <contributor>
        <username>pir2</username>
        <id>3387</id>
      </contributor>
      <comment>/* Account and permissions */</comment>
      <text xml:space="preserve">{{lowercase}}

'''This page is a DRAFT''' being discussed in the maemo-community list.

All Maemo contributors are invited to contribute in the improvement of [http://maemo.org maemo.org] content. Here we explain how to get editing rights and work on the basic stuff.

== Blogs &amp; Garage news ==
If you want to blog about your Maemo related work you can [http://maemo.org/news/planet-maemo/aggregate_your_blog/ get your own blog aggregated to Planet Maemo]. If you have a Garage project you are encouraged to report the novelties through the News tool.

== Events ==
'''(Instructions for publishing events are missing)'''

The events can be:
# Maemo-centric activities: training courses, workshops, meet-ups, summits...
# Events with Maemo activities in the agenda: talks, BOFs, demos...
# Open project meetings count as well, also online and/or around garage projects.

== Downloadable software ==
'''(Instructions for publishing and updating pages at Downloads are missing)'''

== Job offers ==
If you have job offers and are expecting to have them more than once, you can request access to the jobs section editor by sending a mail to jobs @ maemo.

New jobs can be [https://maemo.org/news/jobs/create/default.html created] by clicking in the floating bar on '''Folder-&gt;Create Article''' while in the [https://maemo.org/news/jobs/ jobs section].

Please make sure you follow the same style as other job offers, so we get a uniform look.

== Announcements and static pages ==
As opposed to this wiki, you need to obtain editing permissions in order to write and edit pages in the main site. Before requesting permissions you should have gained a (good) reputation as a writer in this wiki, the [http://maemo.org/news News] section, [http://internettablettalk.com Internet Tablet Talk]... or anywhere else we can go and check.

In the meantime you can work on any texts using this wiki and contacting the editors in the maemo-community list for proposals, text changes or new pages.

=== Account and permissions ===
When you think it's the time do the following:
# [https://garage.maemo.org/account/register.php Get a maemo account] (aka &quot;garage account&quot;) if you don't have it already. Make sure the email address used is @nokia.com.
# [https://maemo.org/profile/edit/ Edit your profile] introducing yourself. Feel free adding more information. Your profile might be linked from the announcements and comments you publish, that's why. An avatar is also recommended.
# [https://garage.maemo.org/project/request.php?group_id=198 Request to join] the [https://garage.maemo.org/projects/webeditors/ webeditors] group.

Done? Now you can start editing.
:'''Question to Midgard maintainers''': now all editors get full access to everything. Would it be possible to grant access only to certain sections?--[[User:qgil|qgil]] 10:28, 25 July 2008 (UTC)
::This can be done by making different groups for different tasks and giving rights to a different group on each folder. --[[Special:Contributions/85.147.201.170|85.147.201.170]] 13:15, 30 July 2008 (UTC)

=== Announcements ===
You are encouraged to publish maemo.org announcements s when they are relevant to the community. The recommended step-by-step process is:
# Agree the announcement in the maemo-community list.
# Go to https://maemo.org/news/announcements/ and click '''Folder-&gt;Create article''' in the floating bar.
# Write your announcement and publish. It will go live immediately, in the maemo.org homepage and the Announcements section.

=== Basic editing ===
* Login, go to the page you want to edit and select '''Page-&gt;Edit''' in the floating bar. 
* Documentation pages deal directly with pure HTML. 
* Announcements and other static pages have a WYSIWYG editor with a toolbar with the typical features: bold, italics, links, insert image...

See the '''Advanced''' section below if you need more.

=== Create a public document ===
* [https://maemo.org Login] to maemo.org.
* Create the document in correct folder with '''Folder-&gt;Create Article'''. Enter a meaningful title and content. Press Save when you are done.

=== Create a hidden document ===
If you want to prepare a document and release it only when it's ready you can do this:

* Create the document as described above.
* Hide the document by changing permissions. 
 * Go to '''Page-&gt;Manage Object'''.
 * Choose '''Permissions'''
 * Add group '''webeditors members'''. Choose '''Allow''' for '''Owner'''.
 * Add group '''Everyone'''. Choose '''Deny''' for '''Read'''.
 * Click '''Save'''.
* Continue with editing.

Once you are done you can publish it following these steps:

* Go to '''Page-&gt;Manage Object'''.
* Choose '''Permissions'''
* Remove group '''Everyone'''.
* Click '''Save'''.

=== Advanced ===

If you want more there is a lot more you can do. The relevant documentation:

* For brave content editors '''(missing attachment MidCOM_documentation PDF)'''
* For even more brave sysadmins: '''(missing attachment Asgard_documentation_3 PDF)'''
* More at http://www.midgard-project.org/


[[Category:Community]]
[[Category:maemo.org]]</text>
    </revision>
  </page>
  <page>
    <title>X11 Extension tutorial</title>
    <id>204</id>
    <revision>
      <id>35777</id>
      <timestamp>2010-06-14T08:47:48Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut down to just a link</comment>
      <text xml:space="preserve">This tutorial was moved to http://www.x.org/wiki/X11_Extension_tutorial

[[Category:Development]]</text>
    </revision>
  </page>
  <page>
    <title>X Terminal for Beginners</title>
    <id>4492</id>
    <revision>
      <id>39314</id>
      <timestamp>2010-10-04T09:51:37Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect to [[Terminal#Using the terminal]]</comment>
      <text xml:space="preserve">#REDIRECT [[Terminal#Using the terminal]]</text>
    </revision>
  </page>
  <page>
    <title>X forwarding over ssh</title>
    <id>3573</id>
    <revision>
      <id>28848</id>
      <timestamp>2010-02-11T09:35:54Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">''For more information on running desktop applications on your device over X, see [[Remote desktop#X11 | the remote desktop]] page''

''Information on installing xauth, to allow remote X clients to connect to your device, is available in [[root access#OpenSSH]]''

''The same information is duplicated, but slightly different, in [[Streaming video from built-in webcam#Streaming_over_ssh_N900 | this page describing streaming video from the webcam on N900 to the desktop]]''
 
''[https://bugs.maemo.org/show_bug.cgi?id=2494 Bug #2494] provides all the information you need to export N900 X clients to your Linux desktop display''


This page will describe how to install and configure xauth using the PC Connectivity package, allowing you to display N900 applications on your Linux desktop and desktop applications on your N900 over an SSH tunnel using X11 forwarding.

See the links above, and this thread from the maemo-users mailing list: http://lists.maemo.org/pipermail/maemo-users/2010-February/015351.html

Short answer: Install the [[http://pc-connectivity.garage.maemo.org/2nd_edition/index.html PC Connectivity]] package and ssh -X should work.

[[Category:Power users]]</text>
    </revision>
  </page>
  <page>
    <title>Xscreensaver</title>
    <id>4406</id>
    <revision>
      <id>39389</id>
      <timestamp>2010-10-05T17:00:30Z</timestamp>
      <contributor>
        <username>mmichielin</username>
        <id>1241</id>
      </contributor>
      <text xml:space="preserve">Port Xscreensaver for Maemo 

[http://www.jwz.org/xscreensaver/ Home]

[https://garage.maemo.org/projects/xscreensaver/  Home page of port for Maemo]

This port adapted for using with [http://maemo.org/downloads/product/Maemo5/live-wallpaper/ LiveWallpaper]

Type of CPU use can be:

- &quot;Continuous&quot;, meaning that the screensaver never stop

- &quot;Discontinuous&quot;, meaning that the screensaver pause for few second before starting a new draw

Level of CPU use is simply detected via cpumem-applet:

- 0 or 1 blocks: low

- 2 blocks: medium

- 3 or 4 blocks: high

{| class=&quot;wikitable sortable&quot; border=1
|-
! Theme !! Working? !! Type of CPU use !! Level of CPU use !! Comments
|-  
| abstractile  || Yes || Discontinuous || Medium ||
|-
| anemone      || Yes|| Continuous || High ||
|-
| anemotaxis   || Yes || Continuous || High ||
|-
| apollonian   || Yes || Discontinuous || Low ||
|-
| attraction   || Yes || Continuous || High ||
|-
| barcode      || Yes || Continuous || Medium ||
|-
| blaster      || Yes || Continuous || High ||
|-
| boxfit       || Yes || Discontinuous || High ||
|-
| braid        || Yes || Continuous || High ||
|-
| bsod         || Yes || Discontinuous || Low ||
|-
| bumps        || Yes || Continuous || Low ||
|-
| ccurve       || Yes || Discontinuous || Low ||
|-
| celtic       || Yes || Discontinuous || High ||
|-
| cloudlife    || Yes || Continuous || High ||
|-
| compass      || Yes || Continuous || High ||
|-
| coral        || Yes || Discontinuous || High ||
|-
| crystal      || Yes || Continuous || High ||
|-
| cwaves       || Yes || Continuous || Medium ||
|-
| cynosure     || Yes || Continuous || Medium ||
|-
| decayscreen  || Yes || Continuous || Medium ||
|-
| deco         || Yes || Discontinuous || Low ||
|-
| deluxe       || Yes || Continuous || High ||
|-
| demon        || Yes || Continuous || Low ||
|-
| discrete     || Yes || Continuous || High ||
|-
| distort      || Yes || Continuous || Medium || 
|-
| drift        || Yes || Continuous || High ||
|-
| epicycle     || Yes || Continuous || Low ||
|-
| eruption     || Yes || Continuous || High ||
|-
| euler2d      || Yes || Continuous || High ||
|-
| fadeplot     || Yes || Continuous || Medium ||
|-
| fiberlamp    || Yes || Continuous || High ||
|-
| fireworkx    || Yes || Continuous || High ||
|-
| flame        || Yes || Discontinuous || High ||
|-
| flow         || Yes || Continuous || High ||
|-
| fluidballs   || Yes || Continuous || High ||
|-
| fuzzyflakes  || Yes || Continuous || High ||
|-
| galaxy       || Yes || Continuous || High ||
|-
| goop         || Yes || Continuous || High ||
|-
| grav         || Yes || Continuous || High ||
|-
| greynetic    || Yes || Continuous || High ||
|-
| halftone     || Yes || Continuous || High ||
|-
| halo         || Yes || Discontinuous || Low ||
|-
| helix        || Yes || Discontinuous || Medium ||
|-
| hopalong     || Yes || Continuous || High ||
|-
| ifs          || Yes || Continuous || Medium ||
|-
| imsmap       || Yes || Discontinuous || High ||
|-
| interaggregate|| Yes || Continuous || High ||
|-
| interference  || Yes || Continuous || High ||
|-
| intermomentary|| Yes || Continuous || High ||
|-
| julia         || Yes || Continuous || High ||
|-
| kaleidescope  || Yes || Continuous || High ||
|-
| kumppa        || Yes || Continuous || High ||
|-
| lcdscrub      || Yes || Continuous || Low ||
|-
| loop          || Yes || Continuous || Low ||
|-
| m6502         || Yes || Continuous || High ||
|-
| maze          || Yes || Discontinuous || Medium ||
|-
| memscroller   || Yes || Continuous || Medium ||
|-
| metaballs     || Yes || Continuous || High ||
|-
| moire         || Yes || Discontinuous || Medium ||
|-
| moire2        || Yes || Continuous || Medium ||
|-
| mountain      || Yes || Discontinuous || Low ||
|-
| munch         || Yes || Continuous || High ||
|-
| nerverot      || Yes || Continuous || Medium ||
|-
| pacman        || Yes || Continuous || Medium ||
|-
| pedal         || Yes || Discontinuous || Low ||
|-
| penetrate     || Yes || Continuous || Medium ||
|-
| penrose       || Yes || Discontinuous || Medium ||
|-
| petri         || Yes || Continuous || High ||
|-
| phosphor      || Yes || Discontinuous || Low || 
|-
| piecewise     || Yes || Continuous || High ||
|-
| polyominoes   || Yes || Continuous || High ||
|-
| pong          || Yes || Continuous || High ||
|-
| popsquares    || Yes || Continuous || Medium ||
|-
| pyro          || Yes || Continuous || High ||
|-
| qix           || Yes || Continuous || Medium ||
|-
| rd-bomb       || Yes || Continuous || Medium ||
|-
| ripples       || Yes || Continuous || Medium ||
|-
| rocks         || Yes || Continuous || Medium ||
|-
| rorschach     || Yes || Discontinuous || Medium ||
|-
| rotzoomer     || Yes || Continuous || High ||
|-
| shadebobs     || Yes || Continuous || Medium ||
|-
| sierpinski    || Yes || Discontinuous || Low ||
|-
| slidescreen   || Yes || Continuous || Low || 
|-
| slip          || Yes || Continuous || High || 
|-
| speedmine     || Yes || Continuous || High ||
|-
| spotlight     || Yes || Continuous || High ||
|-
| squiral       || Yes || Continuous || Medium ||
|-
| starfish      || Yes || Continuous || High ||
|-
| strange       || Yes || Continuous || High ||
|-
| substrate     || Yes || Continuous || High ||
|-
| swirl         || Yes || Continuous || High ||
|-
| thornbird     || Yes || Continuous || High ||
|-
| triangle      || Yes || Continuous || High ||
|-
| truchet       || Yes || Continuous || Low ||
|-
| twang         || Yes || Continuous || High ||
|-
| vermiculate   || Yes || Continuous || High ||
|-
| wander        || Yes || Continuous || Medium ||
|-
| whirlwindwarp || Yes || Continuous || High ||
|-
| wormhole      || Yes || Continuous || High ||
|-
| xflame        || Yes || Continuous || High ||
|-
| xlyap         || Yes || Discontinuous || High ||
|-
| xmatrix       || Yes || Continuous || High ||
|-
| xrayswarm     || Yes || Continuous || High ||
|-
| xspirograph   || Yes || Discontinuous || Medium ||
|-
| zoom          || Yes || Continuous || High || 
|}

[[Category:Software]]</text>
    </revision>
  </page>
  <page>
    <title>Xterm</title>
    <id>4298</id>
    <revision>
      <id>36321</id>
      <timestamp>2010-06-28T10:39:33Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>cut screen information (but see [[Documentation/devtools/maemo5/screen]]), redirect to [[terminal]]</comment>
      <text xml:space="preserve">#REDIRECT [[Terminal]]</text>
    </revision>
  </page>
  <page>
    <title>Xterm for beginners</title>
    <id>4491</id>
    <revision>
      <id>39300</id>
      <timestamp>2010-10-04T08:31:01Z</timestamp>
      <contributor>
        <username>amigadave</username>
        <id>978</id>
      </contributor>
      <comment>redirect</comment>
      <text xml:space="preserve">#REDIRECT [[Terminal#Using the terminal]]</text>
    </revision>
  </page>
  <page>
    <title>maemo.org wiki:About</title>
    <id>3509</id>
    <revision>
      <id>34319</id>
      <timestamp>2010-05-12T20:45:18Z</timestamp>
      <contributor>
        <username>dneary</username>
        <id>5</id>
      </contributor>
      <text xml:space="preserve">[[Main_Page | wiki.maemo.org]] is a stock [http://www.mediawiki.org/ Mediawiki] install, with some additional modules enabled.

There are a number of policies related to the Maemo wiki which newcomers should read:
* [[Contributing to the wiki]] describes naming conventions and style guides
* [[Help:Contents]] will point you to lots of help material if you need more information (but check the above link first!)
* [[Meta:Anonymous editing]] describes the current status of anonymous editing for the wiki. We recommend that you create a Maemo account before editing.
* [[Getting involved]] - there's lots to do outside of the wiki
* [[Wiki gardeners]] lists our top wiki priorities for content and clean-ups
* Check out the [[documentation wishlist]] for documents we'd like to see created.

[[Category:Community]]
[[Category:Wiki]]</text>
    </revision>
  </page>
</mediawiki>
